diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d5a796d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,29 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.25" + + - name: Install Task + uses: arduino/setup-task@v2 + with: + version: 3.x + + - name: Install tools + run: task tools:install + + - name: Run CI + run: task ci diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5c8ad5d --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# Binaries +bin/ +*.exe +*.exe~ +*.dll +*.so +*.dylib +scaf-lsp + +# Test binary +*.test + +# Output of go coverage +*.out + +# Go workspace +go.work +go.work.sum + +# IDE +.idea/ +.vscode/ +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Local config (contains credentials) +.scaf.yaml diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..4cb4a61 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,62 @@ +version: "3" + +tasks: + default: + desc: Run all CI checks + cmds: + - task: ci + + ci: + desc: Run full CI pipeline (build, test, lint, format check) + cmds: + - task: build + - task: test + - task: fmt:check + - task: build:examples + + build: + desc: Build all packages and binaries + cmds: + - go build ./... + - go build -o bin/scaf ./cmd/scaf + - go build -o bin/scaf-lsp ./cmd/scaf-lsp + + build:examples: + desc: Build example modules + dir: example + cmds: + - go build ./... + + test: + desc: Run all tests + cmds: + - go test ./... + + fmt: + desc: Format code with gofumpt and goimports + cmds: + - gofumpt -w . + - goimports -w . + + fmt:check: + desc: Check code formatting + cmds: + - test -z "$(gofumpt -l .)" || (echo "Run 'task fmt' to fix formatting" && gofumpt -d . && exit 1) + - test -z "$(goimports -l .)" || (echo "Run 'task fmt' to fix imports" && goimports -d . && exit 1) + + lint: + desc: Run golangci-lint + cmds: + - golangci-lint run ./... + + tools:install: + desc: Install required development tools + cmds: + - go install mvdan.cc/gofumpt@latest + - go install golang.org/x/tools/cmd/goimports@latest + - go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest + + clean: + desc: Clean build artifacts + cmds: + - rm -rf bin/ diff --git a/adapters/neogo/binding.go b/adapters/neogo/binding.go index e3e0b9f..f00c106 100644 --- a/adapters/neogo/binding.go +++ b/adapters/neogo/binding.go @@ -5,7 +5,7 @@ import ( "strings" "github.com/rlch/scaf" - "github.com/rlch/scaf/language/go" + golang "github.com/rlch/scaf/language/go" ) // Binding implements golang.Binding for neogo. diff --git a/adapters/neogo/binding_test.go b/adapters/neogo/binding_test.go index 6c22909..cc2b651 100644 --- a/adapters/neogo/binding_test.go +++ b/adapters/neogo/binding_test.go @@ -3,7 +3,7 @@ package neogo import ( "testing" - "github.com/rlch/scaf/language/go" + golang "github.com/rlch/scaf/language/go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/adapters/neogo/neogo_test.go b/adapters/neogo/neogo_test.go index 3832e3a..3507452 100644 --- a/adapters/neogo/neogo_test.go +++ b/adapters/neogo/neogo_test.go @@ -95,7 +95,7 @@ type PointsTo struct { type Owner struct { neogo.Node `neo4j:"Owner"` - Name string `neo4j:"name"` + Name string `neo4j:"name"` Pet neogo.One[Pet] `neo4j:"->"` } diff --git a/analysis/analyzer.go b/analysis/analyzer.go index 99b77b9..44a686f 100644 --- a/analysis/analyzer.go +++ b/analysis/analyzer.go @@ -135,7 +135,7 @@ func (a *Analyzer) Analyze(path string, content []byte) *AnalyzedFile { // Convert parse errors to diagnostics result.Diagnostics = append(result.Diagnostics, parseErrorsToDiagnostics(err)...) // Don't return early - continue with partial AST for better LSP support - + // Also do a recovery parse for completion context. // This may give us better information about what the user was typing // even though it might misparse valid syntax elsewhere. diff --git a/analysis/analyzer_test.go b/analysis/analyzer_test.go index 52ef6ce..15b39da 100644 --- a/analysis/analyzer_test.go +++ b/analysis/analyzer_test.go @@ -206,8 +206,8 @@ Q { wantError: true, }, { - name: "mid-query error still gets earlier queries", - input: "fn Valid1() `Q1`\nfn Valid2() `Q2`\nfn Broken() `incomplete", + name: "mid-query error still gets earlier queries", + input: "fn Valid1() `Q1`\nfn Valid2() `Q2`\nfn Broken() `incomplete", wantQueries: []string{"Valid1", "Valid2"}, wantError: true, }, diff --git a/analysis/position_test.go b/analysis/position_test.go index c00cca9..d3539d2 100644 --- a/analysis/position_test.go +++ b/analysis/position_test.go @@ -37,16 +37,16 @@ func TestPrevTokenAtPosition(t *testing.T) { wantType: scaf.TokenRParen, }, { - name: "after setup keyword with inline query", - input: "fn Q() `Q`\nQ {\n\tsetup `CREATE (n)`\n}\n", + name: "after setup keyword with inline query", + input: "fn Q() `Q`\nQ {\n\tsetup `CREATE (n)`\n}\n", line: 3, col: 8, // right after "setup " (at position of backtick) wantValue: "setup", wantType: scaf.TokenSetup, }, { - name: "after dot in module reference", - input: "import fixtures \"./fixtures\"\nfn Q() `Q`\nQ {\n\tsetup fixtures.CreateUser()\n}\n", + name: "after dot in module reference", + input: "import fixtures \"./fixtures\"\nfn Q() `Q`\nQ {\n\tsetup fixtures.CreateUser()\n}\n", line: 4, col: 17, // right after "fixtures." (at position of 'C') wantValue: ".", @@ -61,48 +61,48 @@ func TestPrevTokenAtPosition(t *testing.T) { wantType: scaf.TokenImport, }, { - name: "after test keyword", - input: "fn Q() `Q`\nQ {\n\ttest \"my test\" {\n\t}\n}\n", + name: "after test keyword", + input: "fn Q() `Q`\nQ {\n\ttest \"my test\" {\n\t}\n}\n", line: 3, col: 7, // right after "test " (at position of quote) wantValue: "test", wantType: scaf.TokenTest, }, { - name: "after group keyword", - input: "fn Q() `Q`\nQ {\n\tgroup \"my group\" {\n\t}\n}\n", + name: "after group keyword", + input: "fn Q() `Q`\nQ {\n\tgroup \"my group\" {\n\t}\n}\n", line: 3, col: 8, // right after "group " (at position of quote) wantValue: "group", wantType: scaf.TokenGroup, }, { - name: "after assert keyword", - input: "fn Q() `Q`\nQ {\n\ttest \"t\" {\n\t\tassert { (true) }\n\t}\n}\n", + name: "after assert keyword", + input: "fn Q() `Q`\nQ {\n\ttest \"t\" {\n\t\tassert { (true) }\n\t}\n}\n", line: 4, col: 10, // right after "assert " (at position of '{') wantValue: "assert", wantType: scaf.TokenAssert, }, { - name: "after open brace in test", - input: "fn Q() `Q`\nQ {\n\ttest \"t\" {\n\t\t$id: 1\n\t}\n}\n", + name: "after open brace in test", + input: "fn Q() `Q`\nQ {\n\ttest \"t\" {\n\t\t$id: 1\n\t}\n}\n", line: 4, col: 3, // at start of "$id" line wantValue: "{", wantType: scaf.TokenLBrace, }, { - name: "after colon in statement", - input: "fn Q() `Q`\nQ {\n\ttest \"t\" {\n\t\t$id: 1\n\t}\n}\n", + name: "after colon in statement", + input: "fn Q() `Q`\nQ {\n\ttest \"t\" {\n\t\t$id: 1\n\t}\n}\n", line: 4, col: 8, // right after ": " (at position of '1') wantValue: ":", wantType: scaf.TokenColon, }, { - name: "after parameter name", - input: "fn Q() `Q`\nQ {\n\ttest \"t\" {\n\t\t$id: 1\n\t}\n}\n", + name: "after parameter name", + input: "fn Q() `Q`\nQ {\n\ttest \"t\" {\n\t\t$id: 1\n\t}\n}\n", line: 4, col: 6, // right after "$id" (at position of ':') wantValue: "$id", diff --git a/analysis/recovery.go b/analysis/recovery.go index 98a3e52..ab068a8 100644 --- a/analysis/recovery.go +++ b/analysis/recovery.go @@ -60,7 +60,7 @@ const ( // This is the main entry point for recovery-based completions. // // Strategy: -// 1. Look for nodes with RecoveredTokens in RecoverySuite (parser recovery) +// 1. Look for nodes with RecoveredTokens in RecoverySuite (parser recovery) // 2. Look at parse error position and preceding tokens // 3. Use token context at cursor position func GetRecoveryCompletionContext(f *AnalyzedFile, pos lexer.Position) *RecoveryCompletionContext { @@ -101,7 +101,7 @@ func GetRecoveryCompletionContext(f *AnalyzedFile, pos lexer.Position) *Recovery } else { ctx.PrevToken = PrevTokenAtPosition(f, errorPos) } - + // If cursor is at or near error position, use error context if isNearPosition(pos, errorPos) { analyzeErrorContext(ctx, f.Symbols) @@ -210,13 +210,13 @@ func getErrorPosition(err error) lexer.Position { return perr.Position() } } - + // Check for single participle error var perr participle.Error if errors.As(err, &perr) { return perr.Position() } - + return lexer.Position{} } @@ -245,7 +245,7 @@ func analyzeErrorContext(ctx *RecoveryCompletionContext, symbols *SymbolTable) { if ctx.PrevToken == nil { return } - + // Check what token precedes the error switch ctx.PrevToken.Type { case scaf.TokenSetup: @@ -286,19 +286,19 @@ func analyzeTokenContext(ctx *RecoveryCompletionContext, pos lexer.Position, sui if ctx.PrevToken == nil { return } - + // Determine context from surrounding structure for _, scope := range suite.Scopes { if ContainsPosition(scope.Span(), pos) { ctx.QueryScope = scope.FunctionName - + // Check if we're in setup context (after "setup" keyword) if ctx.PrevToken.Type == scaf.TokenSetup { ctx.InSetup = true ctx.Kind = RecoveryCompletionSetupAlias return } - + // Check if previous token is a DOT - need to find module alias before it if ctx.PrevToken.Type == scaf.TokenDot { // Find the token before the dot @@ -311,7 +311,7 @@ func analyzeTokenContext(ctx *RecoveryCompletionContext, pos lexer.Position, sui } } } - + // Check if previous token is an import alias (cursor might be ON the dot) if ctx.PrevToken.Type == scaf.TokenIdent && symbols != nil { if _, ok := symbols.Imports[ctx.PrevToken.Value]; ok { diff --git a/analysis/rules.go b/analysis/rules.go index 505d032..e4c6e3b 100644 --- a/analysis/rules.go +++ b/analysis/rules.go @@ -38,16 +38,16 @@ func DefaultRules() []*Rule { duplicateQueryRule, duplicateImportRule, undefinedAssertQueryRule, - undefinedSetupQueryRule, // Cross-file validation - paramTypeMismatchRule, // Type checking for function parameters - returnTypeMismatchRule, // Type checking for return value assertions - undeclaredQueryParamRule, // Parameters used in query body but not declared - unknownParameterRule, // Using a parameter that doesn't exist in the query - duplicateTestRule, // Duplicate test names cause conflicts - duplicateGroupRule, // Duplicate group names cause conflicts - missingRequiredParamsRule, // Missing params will cause runtime failures - invalidExpressionRule, // Expression syntax/type errors (compile-time) - invalidTypeAnnotationRule, // Invalid type names in function signatures + undefinedSetupQueryRule, // Cross-file validation + paramTypeMismatchRule, // Type checking for function parameters + returnTypeMismatchRule, // Type checking for return value assertions + undeclaredQueryParamRule, // Parameters used in query body but not declared + unknownParameterRule, // Using a parameter that doesn't exist in the query + duplicateTestRule, // Duplicate test names cause conflicts + duplicateGroupRule, // Duplicate group names cause conflicts + missingRequiredParamsRule, // Missing params will cause runtime failures + invalidExpressionRule, // Expression syntax/type errors (compile-time) + invalidTypeAnnotationRule, // Invalid type names in function signatures // Warning-level checks. unusedImportRule, @@ -2066,4 +2066,4 @@ func checkItemReturnTypes(f *AnalyzedFile, items []*scaf.TestOrGroup, returnType checkItemReturnTypes(f, item.Group.Items, returnTypes, queryName) } } -} \ No newline at end of file +} diff --git a/cmd/scaf-lsp/main.go b/cmd/scaf-lsp/main.go index 879fb9c..62b72c9 100644 --- a/cmd/scaf-lsp/main.go +++ b/cmd/scaf-lsp/main.go @@ -90,7 +90,7 @@ func run(ctx context.Context, startupLogger *zap.Logger, in io.Reader, out io.Wr var stderrCore zapcore.Core if logfile != "" { // Log to file - file, err := os.OpenFile(logfile, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) + file, err := os.OpenFile(logfile, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0o644) if err != nil { startupLogger.Warn("Failed to open logfile, falling back to stderr", zap.Error(err)) stderrCore = createStderrCore(level) diff --git a/cmd/scaf/generate.go b/cmd/scaf/generate.go index 1ee6019..cd110f8 100644 --- a/cmd/scaf/generate.go +++ b/cmd/scaf/generate.go @@ -12,7 +12,7 @@ import ( "github.com/rlch/scaf" "github.com/rlch/scaf/analysis" "github.com/rlch/scaf/language" - "github.com/rlch/scaf/language/go" + golang "github.com/rlch/scaf/language/go" "github.com/urfave/cli/v3" // Register bindings and dialects. @@ -67,8 +67,8 @@ func generateCommand() *cli.Command { Aliases: []string{"s"}, Usage: "path to schema HCL file (e.g., .scaf-schema.hcl)", }, - }, - Action: runGenerate, + }, + Action: runGenerate, } } diff --git a/cmd/scaf/test.go b/cmd/scaf/test.go index 7d85e28..258fc6a 100644 --- a/cmd/scaf/test.go +++ b/cmd/scaf/test.go @@ -321,4 +321,4 @@ func collectTestFiles(args []string) ([]string, error) { } return files, nil -} \ No newline at end of file +} diff --git a/dialect.go b/dialect.go index c021ada..7767a4f 100644 --- a/dialect.go +++ b/dialect.go @@ -40,8 +40,6 @@ type QueryAnalyzer interface { AnalyzeQuery(query string) (*QueryMetadata, error) } - - // QueryAnalyzerFactory creates a QueryAnalyzer for a dialect. type QueryAnalyzerFactory func() QueryAnalyzer diff --git a/dialects/cypher/analyzer.go b/dialects/cypher/analyzer.go index 9b0eb94..3ccf8c8 100644 --- a/dialects/cypher/analyzer.go +++ b/dialects/cypher/analyzer.go @@ -1376,5 +1376,7 @@ func checkNodePatternForUnique(node *cyphergrammar.NodePattern, schema *analysis } // Ensure Analyzer implements scaf.QueryAnalyzer and analysis.SchemaAwareAnalyzer. -var _ scaf.QueryAnalyzer = (*Analyzer)(nil) -var _ analysis.SchemaAwareAnalyzer = (*Analyzer)(nil) +var ( + _ scaf.QueryAnalyzer = (*Analyzer)(nil) + _ analysis.SchemaAwareAnalyzer = (*Analyzer)(nil) +) diff --git a/dialects/cypher/analyzer_test.go b/dialects/cypher/analyzer_test.go index 6f26c5f..9701ad1 100644 --- a/dialects/cypher/analyzer_test.go +++ b/dialects/cypher/analyzer_test.go @@ -457,9 +457,9 @@ func TestAnalyzer_AnalyzeQueryWithSchema_ReturnsOne(t *testing.T) { } tests := []struct { - name string - query string - wantOne bool + name string + query string + wantOne bool }{ { name: "filter on unique id field", diff --git a/dialects/cypher/function_types.go b/dialects/cypher/function_types.go index 337c6a0..ca6eb34 100644 --- a/dialects/cypher/function_types.go +++ b/dialects/cypher/function_types.go @@ -33,16 +33,16 @@ var cypherFunctionTypes = map[string]*analysis.Type{ "percentiledisc": analysis.TypeFloat64, // Type conversion functions - "tostring": analysis.TypeString, - "tostringornull": analysis.TypeString, - "toboolean": analysis.TypeBool, - "tobooleanornull": analysis.TypeBool, - "tobool": analysis.TypeBool, - "tointeger": analysis.TypeInt, - "tointegerornull": analysis.TypeInt, - "toint": analysis.TypeInt, - "tofloat": analysis.TypeFloat64, - "tofloatornull": analysis.TypeFloat64, + "tostring": analysis.TypeString, + "tostringornull": analysis.TypeString, + "toboolean": analysis.TypeBool, + "tobooleanornull": analysis.TypeBool, + "tobool": analysis.TypeBool, + "tointeger": analysis.TypeInt, + "tointegerornull": analysis.TypeInt, + "toint": analysis.TypeInt, + "tofloat": analysis.TypeFloat64, + "tofloatornull": analysis.TypeFloat64, // List conversion functions "tobooleanlist": analysis.SliceOf(analysis.TypeBool), @@ -105,23 +105,23 @@ var cypherFunctionTypes = map[string]*analysis.Type{ "haversin": analysis.TypeFloat64, // String functions - "left": analysis.TypeString, - "right": analysis.TypeString, - "ltrim": analysis.TypeString, - "rtrim": analysis.TypeString, - "btrim": analysis.TypeString, - "trim": analysis.TypeString, - "tolower": analysis.TypeString, - "toupper": analysis.TypeString, - "replace": analysis.TypeString, - "substring": analysis.TypeString, - "reverse": analysis.TypeString, - "split": analysis.SliceOf(analysis.TypeString), - "normalize": analysis.TypeString, - "lpad": analysis.TypeString, - "rpad": analysis.TypeString, - "repeat": analysis.TypeString, - "concat": analysis.TypeString, + "left": analysis.TypeString, + "right": analysis.TypeString, + "ltrim": analysis.TypeString, + "rtrim": analysis.TypeString, + "btrim": analysis.TypeString, + "trim": analysis.TypeString, + "tolower": analysis.TypeString, + "toupper": analysis.TypeString, + "replace": analysis.TypeString, + "substring": analysis.TypeString, + "reverse": analysis.TypeString, + "split": analysis.SliceOf(analysis.TypeString), + "normalize": analysis.TypeString, + "lpad": analysis.TypeString, + "rpad": analysis.TypeString, + "repeat": analysis.TypeString, + "concat": analysis.TypeString, // Temporal functions "date": analysis.NamedType("time", "Time"), @@ -165,137 +165,137 @@ var cypherFunctionTypes = map[string]*analysis.Type{ // ============================================================================ // APOC - Text functions - "apoc.text.join": analysis.TypeString, - "apoc.text.replace": analysis.TypeString, - "apoc.text.regexgroups": analysis.SliceOf(analysis.SliceOf(analysis.TypeString)), - "apoc.text.split": analysis.SliceOf(analysis.TypeString), - "apoc.text.capitalize": analysis.TypeString, - "apoc.text.capitalizall": analysis.TypeString, - "apoc.text.decapitalize": analysis.TypeString, - "apoc.text.decapitalizeall": analysis.TypeString, - "apoc.text.swapcase": analysis.TypeString, - "apoc.text.camelcase": analysis.TypeString, - "apoc.text.snakecase": analysis.TypeString, - "apoc.text.uppercamelcase": analysis.TypeString, - "apoc.text.lowercamelcase": analysis.TypeString, - "apoc.text.random": analysis.TypeString, - "apoc.text.format": analysis.TypeString, - "apoc.text.lpad": analysis.TypeString, - "apoc.text.rpad": analysis.TypeString, - "apoc.text.clean": analysis.TypeString, - "apoc.text.compareclean": analysis.TypeInt, - "apoc.text.distance": analysis.TypeInt, - "apoc.text.levenshtein": analysis.TypeFloat64, - "apoc.text.jarowinklerdistance": analysis.TypeFloat64, + "apoc.text.join": analysis.TypeString, + "apoc.text.replace": analysis.TypeString, + "apoc.text.regexgroups": analysis.SliceOf(analysis.SliceOf(analysis.TypeString)), + "apoc.text.split": analysis.SliceOf(analysis.TypeString), + "apoc.text.capitalize": analysis.TypeString, + "apoc.text.capitalizall": analysis.TypeString, + "apoc.text.decapitalize": analysis.TypeString, + "apoc.text.decapitalizeall": analysis.TypeString, + "apoc.text.swapcase": analysis.TypeString, + "apoc.text.camelcase": analysis.TypeString, + "apoc.text.snakecase": analysis.TypeString, + "apoc.text.uppercamelcase": analysis.TypeString, + "apoc.text.lowercamelcase": analysis.TypeString, + "apoc.text.random": analysis.TypeString, + "apoc.text.format": analysis.TypeString, + "apoc.text.lpad": analysis.TypeString, + "apoc.text.rpad": analysis.TypeString, + "apoc.text.clean": analysis.TypeString, + "apoc.text.compareclean": analysis.TypeInt, + "apoc.text.distance": analysis.TypeInt, + "apoc.text.levenshtein": analysis.TypeFloat64, + "apoc.text.jarowinklerdistance": analysis.TypeFloat64, "apoc.text.sorensendicecoefficent": analysis.TypeFloat64, - "apoc.text.fuzzymatch": analysis.TypeBool, - "apoc.text.urlencode": analysis.TypeString, - "apoc.text.urldecode": analysis.TypeString, - "apoc.text.bytes": analysis.SliceOf(analysis.TypeInt), - "apoc.text.regreplace": analysis.TypeString, - "apoc.text.indexof": analysis.TypeInt, + "apoc.text.fuzzymatch": analysis.TypeBool, + "apoc.text.urlencode": analysis.TypeString, + "apoc.text.urldecode": analysis.TypeString, + "apoc.text.bytes": analysis.SliceOf(analysis.TypeInt), + "apoc.text.regreplace": analysis.TypeString, + "apoc.text.indexof": analysis.TypeInt, // APOC - Date/time functions - "apoc.date.format": analysis.TypeString, - "apoc.date.parse": analysis.TypeInt, + "apoc.date.format": analysis.TypeString, + "apoc.date.parse": analysis.TypeInt, "apoc.date.parseaszondeddatetime": analysis.NamedType("time", "Time"), - "apoc.date.currenttimestamp": analysis.TypeInt, - "apoc.date.toiso8601": analysis.TypeString, - "apoc.date.fromiso8601": analysis.TypeInt, - "apoc.date.fields": analysis.MapOf(analysis.TypeString, analysis.TypeInt), - "apoc.date.field": analysis.TypeInt, - "apoc.date.add": analysis.TypeInt, - "apoc.date.convert": analysis.TypeInt, - "apoc.temporal.format": analysis.TypeString, - "apoc.temporal.tozonedtemporal": analysis.NamedType("time", "Time"), + "apoc.date.currenttimestamp": analysis.TypeInt, + "apoc.date.toiso8601": analysis.TypeString, + "apoc.date.fromiso8601": analysis.TypeInt, + "apoc.date.fields": analysis.MapOf(analysis.TypeString, analysis.TypeInt), + "apoc.date.field": analysis.TypeInt, + "apoc.date.add": analysis.TypeInt, + "apoc.date.convert": analysis.TypeInt, + "apoc.temporal.format": analysis.TypeString, + "apoc.temporal.tozonedtemporal": analysis.NamedType("time", "Time"), // APOC - Collection functions - "apoc.coll.sum": analysis.TypeFloat64, - "apoc.coll.avg": analysis.TypeFloat64, - "apoc.coll.min": nil, - "apoc.coll.max": nil, - "apoc.coll.sumlongs": analysis.TypeInt64, - "apoc.coll.sort": nil, - "apoc.coll.sortnodes": analysis.SliceOf(nil), - "apoc.coll.sortmaps": analysis.SliceOf(analysis.MapOf(analysis.TypeString, nil)), - "apoc.coll.reverse": nil, - "apoc.coll.contains": analysis.TypeBool, - "apoc.coll.containsall": analysis.TypeBool, - "apoc.coll.containssorted": analysis.TypeBool, - "apoc.coll.containsallsorted": analysis.TypeBool, - "apoc.coll.union": nil, - "apoc.coll.unionall": nil, - "apoc.coll.subtract": nil, - "apoc.coll.removeall": nil, - "apoc.coll.intersection": nil, - "apoc.coll.disjunction": nil, - "apoc.coll.shuffle": nil, - "apoc.coll.randomitem": nil, - "apoc.coll.randomitems": nil, - "apoc.coll.toset": nil, - "apoc.coll.duplicates": nil, - "apoc.coll.duplicateswithcount": analysis.SliceOf(analysis.MapOf(analysis.TypeString, nil)), - "apoc.coll.frequencies": analysis.MapOf(nil, analysis.TypeInt), - "apoc.coll.frequenciesasmap": analysis.MapOf(nil, analysis.TypeInt), - "apoc.coll.occurrences": analysis.TypeInt, - "apoc.coll.flatten": nil, - "apoc.coll.combinations": analysis.SliceOf(nil), - "apoc.coll.different": analysis.TypeBool, + "apoc.coll.sum": analysis.TypeFloat64, + "apoc.coll.avg": analysis.TypeFloat64, + "apoc.coll.min": nil, + "apoc.coll.max": nil, + "apoc.coll.sumlongs": analysis.TypeInt64, + "apoc.coll.sort": nil, + "apoc.coll.sortnodes": analysis.SliceOf(nil), + "apoc.coll.sortmaps": analysis.SliceOf(analysis.MapOf(analysis.TypeString, nil)), + "apoc.coll.reverse": nil, + "apoc.coll.contains": analysis.TypeBool, + "apoc.coll.containsall": analysis.TypeBool, + "apoc.coll.containssorted": analysis.TypeBool, + "apoc.coll.containsallsorted": analysis.TypeBool, + "apoc.coll.union": nil, + "apoc.coll.unionall": nil, + "apoc.coll.subtract": nil, + "apoc.coll.removeall": nil, + "apoc.coll.intersection": nil, + "apoc.coll.disjunction": nil, + "apoc.coll.shuffle": nil, + "apoc.coll.randomitem": nil, + "apoc.coll.randomitems": nil, + "apoc.coll.toset": nil, + "apoc.coll.duplicates": nil, + "apoc.coll.duplicateswithcount": analysis.SliceOf(analysis.MapOf(analysis.TypeString, nil)), + "apoc.coll.frequencies": analysis.MapOf(nil, analysis.TypeInt), + "apoc.coll.frequenciesasmap": analysis.MapOf(nil, analysis.TypeInt), + "apoc.coll.occurrences": analysis.TypeInt, + "apoc.coll.flatten": nil, + "apoc.coll.combinations": analysis.SliceOf(nil), + "apoc.coll.different": analysis.TypeBool, "apoc.coll.dropduplicateneighbors": nil, - "apoc.coll.fill": nil, - "apoc.coll.indexof": analysis.TypeInt, - "apoc.coll.insert": nil, - "apoc.coll.insertall": nil, - "apoc.coll.isempty": analysis.TypeBool, - "apoc.coll.pairsmin": analysis.SliceOf(analysis.SliceOf(nil)), - "apoc.coll.pairs": analysis.SliceOf(analysis.SliceOf(nil)), - "apoc.coll.partition": analysis.SliceOf(analysis.SliceOf(nil)), - "apoc.coll.remove": nil, - "apoc.coll.split": analysis.MapOf(analysis.TypeString, analysis.SliceOf(nil)), - "apoc.coll.ziptorows": analysis.SliceOf(nil), + "apoc.coll.fill": nil, + "apoc.coll.indexof": analysis.TypeInt, + "apoc.coll.insert": nil, + "apoc.coll.insertall": nil, + "apoc.coll.isempty": analysis.TypeBool, + "apoc.coll.pairsmin": analysis.SliceOf(analysis.SliceOf(nil)), + "apoc.coll.pairs": analysis.SliceOf(analysis.SliceOf(nil)), + "apoc.coll.partition": analysis.SliceOf(analysis.SliceOf(nil)), + "apoc.coll.remove": nil, + "apoc.coll.split": analysis.MapOf(analysis.TypeString, analysis.SliceOf(nil)), + "apoc.coll.ziptorows": analysis.SliceOf(nil), // APOC - Map functions - "apoc.map.flatten": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.fromlists": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.frompairs": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.fromnodes": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.fromvalues": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.merge": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.mergelist": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.setkey": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.setentry": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.setlists": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.setpairs": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.setvalues": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.removekey": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.removekeys": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.clean": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.groupby": analysis.MapOf(analysis.TypeString, analysis.SliceOf(nil)), - "apoc.map.groupbymulti": analysis.MapOf(analysis.TypeString, analysis.SliceOf(nil)), + "apoc.map.flatten": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.fromlists": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.frompairs": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.fromnodes": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.fromvalues": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.merge": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.mergelist": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.setkey": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.setentry": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.setlists": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.setpairs": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.setvalues": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.removekey": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.removekeys": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.clean": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.groupby": analysis.MapOf(analysis.TypeString, analysis.SliceOf(nil)), + "apoc.map.groupbymulti": analysis.MapOf(analysis.TypeString, analysis.SliceOf(nil)), "apoc.map.sortedproperties": analysis.SliceOf(analysis.SliceOf(nil)), - "apoc.map.updatetree": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.values": analysis.SliceOf(nil), - "apoc.map.submap": analysis.MapOf(analysis.TypeString, nil), - "apoc.map.mget": analysis.SliceOf(nil), - "apoc.map.get": nil, + "apoc.map.updatetree": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.values": analysis.SliceOf(nil), + "apoc.map.submap": analysis.MapOf(analysis.TypeString, nil), + "apoc.map.mget": analysis.SliceOf(nil), + "apoc.map.get": nil, // APOC - Conversion functions - "apoc.convert.tomap": analysis.MapOf(analysis.TypeString, nil), - "apoc.convert.tolist": analysis.SliceOf(nil), - "apoc.convert.tonode": nil, - "apoc.convert.torelationship": nil, - "apoc.convert.toset": analysis.SliceOf(nil), - "apoc.convert.tosortedjsonmap": analysis.TypeString, - "apoc.convert.tojson": analysis.TypeString, - "apoc.convert.fromjsonmap": analysis.MapOf(analysis.TypeString, nil), - "apoc.convert.fromjsonlist": analysis.SliceOf(nil), - "apoc.convert.getjsonproperty": nil, + "apoc.convert.tomap": analysis.MapOf(analysis.TypeString, nil), + "apoc.convert.tolist": analysis.SliceOf(nil), + "apoc.convert.tonode": nil, + "apoc.convert.torelationship": nil, + "apoc.convert.toset": analysis.SliceOf(nil), + "apoc.convert.tosortedjsonmap": analysis.TypeString, + "apoc.convert.tojson": analysis.TypeString, + "apoc.convert.fromjsonmap": analysis.MapOf(analysis.TypeString, nil), + "apoc.convert.fromjsonlist": analysis.SliceOf(nil), + "apoc.convert.getjsonproperty": nil, "apoc.convert.getjsonpropertymap": analysis.MapOf(analysis.TypeString, nil), - "apoc.convert.setjsonproperty": nil, - "apoc.convert.toboolean": analysis.TypeBool, - "apoc.convert.tofloat": analysis.TypeFloat64, - "apoc.convert.tointeger": analysis.TypeInt, - "apoc.convert.tostring": analysis.TypeString, + "apoc.convert.setjsonproperty": nil, + "apoc.convert.toboolean": analysis.TypeBool, + "apoc.convert.tofloat": analysis.TypeFloat64, + "apoc.convert.tointeger": analysis.TypeInt, + "apoc.convert.tostring": analysis.TypeString, // APOC - Math functions "apoc.math.maxlong": analysis.TypeInt64, @@ -316,21 +316,21 @@ var cypherFunctionTypes = map[string]*analysis.Type{ "apoc.util.sha512": analysis.TypeString, // APOC - Node/Relationship functions - "apoc.node.id": analysis.TypeInt, - "apoc.node.labels": analysis.SliceOf(analysis.TypeString), - "apoc.node.degree": analysis.TypeInt, - "apoc.node.degree.in": analysis.TypeInt, - "apoc.node.degree.out": analysis.TypeInt, + "apoc.node.id": analysis.TypeInt, + "apoc.node.labels": analysis.SliceOf(analysis.TypeString), + "apoc.node.degree": analysis.TypeInt, + "apoc.node.degree.in": analysis.TypeInt, + "apoc.node.degree.out": analysis.TypeInt, "apoc.node.relationship.exists": analysis.TypeBool, "apoc.node.relationships.exist": analysis.MapOf(analysis.TypeString, analysis.TypeBool), - "apoc.nodes.connected": analysis.TypeBool, - "apoc.nodes.isdense": analysis.TypeBool, - "apoc.rel.id": analysis.TypeInt, - "apoc.rel.type": analysis.TypeString, - "apoc.rel.startnode": nil, - "apoc.rel.endnode": nil, - "apoc.any.property": nil, - "apoc.any.properties": analysis.MapOf(analysis.TypeString, nil), + "apoc.nodes.connected": analysis.TypeBool, + "apoc.nodes.isdense": analysis.TypeBool, + "apoc.rel.id": analysis.TypeInt, + "apoc.rel.type": analysis.TypeString, + "apoc.rel.startnode": nil, + "apoc.rel.endnode": nil, + "apoc.any.property": nil, + "apoc.any.properties": analysis.MapOf(analysis.TypeString, nil), // APOC - Path functions "apoc.path.elements": analysis.SliceOf(nil), @@ -346,16 +346,16 @@ var cypherFunctionTypes = map[string]*analysis.Type{ "apoc.bitwise.op": analysis.TypeInt64, // APOC - Number functions - "apoc.number.format": analysis.TypeString, - "apoc.number.parsefloat": analysis.TypeFloat64, - "apoc.number.parseint": analysis.TypeInt, - "apoc.number.exact.add": analysis.TypeString, - "apoc.number.exact.sub": analysis.TypeString, - "apoc.number.exact.mul": analysis.TypeString, - "apoc.number.exact.div": analysis.TypeString, - "apoc.number.exact.tointeger": analysis.TypeInt, - "apoc.number.exact.tofloat": analysis.TypeFloat64, - "apoc.number.exact.toexact": analysis.TypeString, + "apoc.number.format": analysis.TypeString, + "apoc.number.parsefloat": analysis.TypeFloat64, + "apoc.number.parseint": analysis.TypeInt, + "apoc.number.exact.add": analysis.TypeString, + "apoc.number.exact.sub": analysis.TypeString, + "apoc.number.exact.mul": analysis.TypeString, + "apoc.number.exact.div": analysis.TypeString, + "apoc.number.exact.tointeger": analysis.TypeInt, + "apoc.number.exact.tofloat": analysis.TypeFloat64, + "apoc.number.exact.toexact": analysis.TypeString, // APOC - JSON functions "apoc.json.path": nil, diff --git a/dialects/cypher/grammar/parser.go b/dialects/cypher/grammar/parser.go index 0e2a692..785f440 100644 --- a/dialects/cypher/grammar/parser.go +++ b/dialects/cypher/grammar/parser.go @@ -10,7 +10,7 @@ import ( var Parser = participle.MustBuild[Script]( participle.Lexer(CypherLexer), participle.Elide("Whitespace", "BlockComment", "LineComment"), - participle.UseLookahead(10), // Higher lookahead for nested property access + function calls + participle.UseLookahead(10), // Higher lookahead for nested property access + function calls participle.CaseInsensitive("Ident"), // Cypher keywords are case-insensitive ) diff --git a/dialects/cypher/grammar/parser_test.go b/dialects/cypher/grammar/parser_test.go index cf86b6e..8977b1d 100644 --- a/dialects/cypher/grammar/parser_test.go +++ b/dialects/cypher/grammar/parser_test.go @@ -3,7 +3,7 @@ package cyphergrammar_test import ( "testing" - "github.com/rlch/scaf/dialects/cypher/grammar" + cyphergrammar "github.com/rlch/scaf/dialects/cypher/grammar" ) func TestParse_BasicQueries(t *testing.T) { diff --git a/example/basic/scaf.go b/example/basic/scaf.go index a31b526..be61920 100644 --- a/example/basic/scaf.go +++ b/example/basic/scaf.go @@ -4,11 +4,12 @@ package basic import ( "context" + "github.com/rlch/neogo" ) type getUserResult struct { - Name any + Name any Email any } @@ -31,7 +32,7 @@ func getUserProd(ctx context.Context, db neogo.Driver, userId any) ([]*getUserRe results := make([]*getUserResult, len(rowsName)) for i := range rowsName { results[i] = &getUserResult{ - Name: rowsName[i], + Name: rowsName[i], Email: rowsEmail[i], } } diff --git a/example/basic/scaf_test.go b/example/basic/scaf_test.go index cc4beb3..4d36ef5 100644 --- a/example/basic/scaf_test.go +++ b/example/basic/scaf_test.go @@ -5,6 +5,7 @@ package basic import ( "context" + "github.com/rlch/neogo" ) @@ -15,17 +16,17 @@ func init() { func getUserMock(ctx context.Context, db neogo.Driver, userId any) ([]*getUserResult, error) { if userId == 1 { return []*getUserResult{{ - Name: "Alice", + Name: "Alice", Email: "alice@example.com", }}, nil } else if userId == 2 { return []*getUserResult{{ - Name: "Bob", + Name: "Bob", Email: "bob@example.com", }}, nil } else if userId == 1 { return []*getUserResult{{ - Name: "Alice", + Name: "Alice", Email: nil, }}, nil } diff --git a/example/basic/shared/scaf.go b/example/basic/shared/scaf.go index 40b4423..b9f236e 100644 --- a/example/basic/shared/scaf.go +++ b/example/basic/shared/scaf.go @@ -4,6 +4,7 @@ package shared import ( "context" + "github.com/rlch/neogo" ) diff --git a/example/go.mod b/example/go.mod index 822a2e1..f160795 100644 --- a/example/go.mod +++ b/example/go.mod @@ -3,20 +3,19 @@ module github.com/rlch/scaf/example go 1.25.1 require ( - github.com/rlch/neogo v0.0.0 + github.com/rlch/neogo v0.0.0-20251222040623-d3268222ee8e github.com/rlch/scaf v0.0.0 ) require ( github.com/alecthomas/participle/v2 v2.1.4 // indirect + github.com/expr-lang/expr v1.17.6 // indirect github.com/neo4j/neo4j-go-driver/v5 v5.28.4 // indirect github.com/oklog/ulid/v2 v2.1.0 // indirect golang.org/x/sync v0.16.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace github.com/rlch/neogo => ../../neogo - replace github.com/rlch/scaf => .. -replace github.com/alecthomas/participle/v2 => ../../participle +replace github.com/alecthomas/participle/v2 => github.com/rlch/participle/v2 v2.1.5-0.20251126160008-edf31da19af2 diff --git a/example/go.sum b/example/go.sum index 7f6e3d4..bb9c6d5 100644 --- a/example/go.sum +++ b/example/go.sum @@ -8,8 +8,6 @@ github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8v github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc= github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= -github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= -github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= @@ -34,6 +32,8 @@ github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4 github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw= github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/expr-lang/expr v1.17.6 h1:1h6i8ONk9cexhDmowO/A64VPxHScu7qfSl2k8OlINec= +github.com/expr-lang/expr v1.17.6/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= @@ -85,6 +85,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rlch/neogo v0.0.0-20251222040623-d3268222ee8e h1:7lZT/5kqp0g5OH872geU8mS3EEKjHfAfGXIaR3gy3aM= +github.com/rlch/neogo v0.0.0-20251222040623-d3268222ee8e/go.mod h1:BSrmNPHRbsAKj9uYpgu8jpsiaGCa8tx1uC2nsMmeAgI= +github.com/rlch/participle/v2 v2.1.5-0.20251126160008-edf31da19af2 h1:zNzaTUnrkONPGqyX2vDCtTI1XXo7mybOCbX3TDLjweU= +github.com/rlch/participle/v2 v2.1.5-0.20251126160008-edf31da19af2/go.mod h1:8tqVbpTX20Ru4NfYQgZf4mP18eXPTBViyMWiArNEgGI= github.com/shirou/gopsutil/v4 v4.25.6 h1:kLysI2JsKorfaFPcYmcJqbzROzsBWEOAtw6A7dIfqXs= github.com/shirou/gopsutil/v4 v4.25.6/go.mod h1:PfybzyydfZcN+JMMjkF6Zb8Mq1A/VcogFFg7hj50W9c= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -113,8 +117,6 @@ go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mx go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0= golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= diff --git a/example/neogo/scaf.go b/example/neogo/scaf.go index cd39295..8d8c556 100644 --- a/example/neogo/scaf.go +++ b/example/neogo/scaf.go @@ -4,24 +4,25 @@ package movies import ( "context" + "github.com/rlch/neogo" ) type findActorsResult struct { - Name string + Name string Title string Roles []string } type findDirectorsResult struct { - Name string + Name string Title string } type findReviewsResult struct { - Name string + Name string Summary string - Rating int + Rating int } func FindActors(ctx context.Context, db neogo.Driver, name string) ([]*findActorsResult, error) { @@ -45,7 +46,7 @@ func findActorsProd(ctx context.Context, db neogo.Driver, name string) ([]*findA results := make([]*findActorsResult, len(rowsName)) for i := range rowsName { results[i] = &findActorsResult{ - Name: rowsName[i], + Name: rowsName[i], Title: rowsTitle[i], Roles: rowsRoles[i], } @@ -72,7 +73,7 @@ func findDirectorsProd(ctx context.Context, db neogo.Driver) ([]*findDirectorsRe results := make([]*findDirectorsResult, len(rowsName)) for i := range rowsName { results[i] = &findDirectorsResult{ - Name: rowsName[i], + Name: rowsName[i], Title: rowsTitle[i], } } @@ -100,9 +101,9 @@ func findReviewsProd(ctx context.Context, db neogo.Driver, title string) ([]*fin results := make([]*findReviewsResult, len(rowsName)) for i := range rowsName { results[i] = &findReviewsResult{ - Name: rowsName[i], + Name: rowsName[i], Summary: rowsSummary[i], - Rating: rowsRating[i], + Rating: rowsRating[i], } } return results, nil diff --git a/example/neogo/scaf_test.go b/example/neogo/scaf_test.go index 45cfb29..0f63e34 100644 --- a/example/neogo/scaf_test.go +++ b/example/neogo/scaf_test.go @@ -5,6 +5,7 @@ package movies import ( "context" + "github.com/rlch/neogo" ) @@ -15,9 +16,9 @@ func init() { } func findActorsMock(ctx context.Context, db neogo.Driver, name string) ([]*findActorsResult, error) { - if name == "Tom Hanks" { + if name == 2 { return []*findActorsResult{{ - Name: "Tom Hanks", + Name: "Tom Hanks", Title: "Forrest Gump", Roles: nil, }}, nil @@ -28,7 +29,7 @@ func findActorsMock(ctx context.Context, db neogo.Driver, name string) ([]*findA func findDirectorsMock(ctx context.Context, db neogo.Driver) ([]*findDirectorsResult, error) { if true { return []*findDirectorsResult{{ - Name: "Robert Zemeckis", + Name: "Robert Zemeckis", Title: "Forrest Gump", }}, nil } @@ -38,9 +39,9 @@ func findDirectorsMock(ctx context.Context, db neogo.Driver) ([]*findDirectorsRe func findReviewsMock(ctx context.Context, db neogo.Driver, title string) ([]*findReviewsResult, error) { if title == "The Matrix" { return []*findReviewsResult{{ - Name: "", + Name: "", Summary: "", - Rating: 5, + Rating: 5, }}, nil } panic("no matching test case") diff --git a/example/vendor/github.com/alecthomas/participle/v2/.golangci.yml b/example/vendor/github.com/alecthomas/participle/v2/.golangci.yml deleted file mode 100644 index dbcadd2..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/.golangci.yml +++ /dev/null @@ -1,88 +0,0 @@ -run: - tests: true - skip-dirs: - - _examples - -output: - print-issued-lines: false - -linters: - enable-all: true - disable: - - maligned - - lll - - gocyclo - - gochecknoglobals - - wsl - - whitespace - - godox - - funlen - - gocognit - - gomnd - - goerr113 - - godot - - nestif - - testpackage - - nolintlint - - exhaustivestruct - - wrapcheck - - gci - - gofumpt - - gocritic - - nlreturn - - errorlint - - nakedret - - forbidigo - - revive - - cyclop - - ifshort - - paralleltest - - interfacer - - scopelint - - golint - - wastedassign - - forcetypeassert - - gomoddirectives - - varnamelen - - exhaustruct - - ireturn - - nonamedreturns - - errname - - nilnil - - maintidx - - unused # Does not work with type parameters - - dupword - - depguard - - mnd - - recvcheck - - perfsprint - - predeclared - -linters-settings: - govet: - check-shadowing: true - gocyclo: - min-complexity: 10 - dupl: - threshold: 100 - goconst: - min-len: 8 - min-occurrences: 3 - exhaustive: - default-signifies-exhaustive: true - -issues: - max-per-linter: 0 - max-same: 0 - exclude-use-default: false - exclude: - # Captured by errcheck. - - '^(G104|G204|G307):' - # Very commonly not checked. - - 'Error return value of .(.*\.Help|.*\.MarkFlagRequired|(os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked' - - 'exported method `(.*\.MarshalJSON|.*\.UnmarshalJSON|.*\.EntityURN|.*\.GoString|.*\.Pos)` should have comment or be unexported' - - 'uses unkeyed fields' - - 'declaration of "err" shadows declaration' - - 'bad syntax for struct tag key' - - 'bad syntax for struct tag pair' - - '^ST1012' diff --git a/example/vendor/github.com/alecthomas/participle/v2/.goreleaser.yml b/example/vendor/github.com/alecthomas/participle/v2/.goreleaser.yml deleted file mode 100644 index 4018712..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/.goreleaser.yml +++ /dev/null @@ -1,37 +0,0 @@ -project_name: participle -release: - github: - owner: alecthomas - name: participle -brews: - - - install: bin.install "participle" -env: - - CGO_ENABLED=0 -builds: -- goos: - - linux - - darwin - - windows - goarch: - - arm64 - - amd64 - - "386" - goarm: - - "6" - dir: ./cmd/participle - main: . - ldflags: -s -w -X main.version={{.Version}} - binary: participle -archives: - - - format: tar.gz - name_template: '{{ .Binary }}-{{ .Version }}-{{ .Os }}-{{ .Arch }}{{ if .Arm }}v{{ - .Arm }}{{ end }}' - files: - - COPYING - - README* -snapshot: - name_template: SNAPSHOT-{{ .Commit }} -checksum: - name_template: '{{ .ProjectName }}-{{ .Version }}-checksums.txt' diff --git a/example/vendor/github.com/alecthomas/participle/v2/CHANGES.md b/example/vendor/github.com/alecthomas/participle/v2/CHANGES.md deleted file mode 100644 index a7e8887..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/CHANGES.md +++ /dev/null @@ -1,36 +0,0 @@ - - -- [v2](#v2) - - - - -## v2 - -v2 was released in November 2020. It contains the following changes, some of -which are backwards-incompatible: - -- Added optional `LexString()` and `LexBytes()` methods that lexer - definitions can implement to fast-path lexing of bytes and strings. -- A new stateful lexer has been added. -- A `filename` must now be passed to all `Parse*()` and `Lex*()` methods. -- The `text/scanner` lexer no longer automatically unquotes strings or - supports arbitary length single quoted strings. The tokens it produces are - identical to that of the `text/scanner` package. Use `Unquote()` to remove - quotes. -- `Tok` and `EndTok` will no longer be populated. -- If a field named `Token []lexer.Token` exists it will be populated with the - raw tokens that the node parsed from the lexer. -- Support capturing directly into lexer.Token fields. eg. - - type ast struct { - Head lexer.Token `@Ident` - Tail []lexer.Token `@(Ident*)` - } -- Add an `experimental/codegen` for stateful lexers. This provides ~10x - performance improvement with zero garbage when lexing strings. -- The `regex` lexer has been removed. -- The `ebnf` lexer has been removed. -- All future work on lexing will be put into the stateful lexer. -- The need for `DropToken` has been removed. - diff --git a/example/vendor/github.com/alecthomas/participle/v2/COPYING b/example/vendor/github.com/alecthomas/participle/v2/COPYING deleted file mode 100644 index 44fed8b..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/COPYING +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2022 Alec Thomas - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/example/vendor/github.com/alecthomas/participle/v2/README.md b/example/vendor/github.com/alecthomas/participle/v2/README.md deleted file mode 100644 index 9b9b576..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/README.md +++ /dev/null @@ -1,732 +0,0 @@ -# A dead simple parser package for Go - - -[![PkgGoDev](https://pkg.go.dev/badge/github.com/alecthomas/participle/v2)](https://pkg.go.dev/github.com/alecthomas/participle/v2) [![GHA Build](https://github.com/alecthomas/participle/actions/workflows/ci.yml/badge.svg)](https://github.com/alecthomas/participle/actions) - [![Go Report Card](https://goreportcard.com/badge/github.com/alecthomas/participle/v2)](https://goreportcard.com/report/github.com/alecthomas/participle/v2) [![Slack chat](https://img.shields.io/static/v1?logo=slack&style=flat&label=slack&color=green&message=gophers)](https://gophers.slack.com/messages/CN9DS8YF3) - - - -- [V2](#v2) -- [Introduction](#introduction) -- [Tutorial](#tutorial) -- [Tag syntax](#tag-syntax) -- [Overview](#overview) -- [Grammar syntax](#grammar-syntax) -- [Capturing](#capturing) - - [Capturing boolean value](#capturing-boolean-value) -- ["Union" types](#union-types) -- [Custom parsing](#custom-parsing) -- [Lexing](#lexing) - - [Stateful lexer](#stateful-lexer) - - [Example stateful lexer](#example-stateful-lexer) - - [Example simple/non-stateful lexer](#example-simplenon-stateful-lexer) - - [Experimental - code generation](#experimental---code-generation) -- [Options](#options) -- [Examples](#examples) -- [Performance](#performance) -- [Concurrency](#concurrency) -- [Error reporting](#error-reporting) -- [Error recovery](#error-recovery) - - [Recovery strategies](#recovery-strategies) - - [AST metadata fields](#ast-metadata-fields) - - [Additional options](#additional-options) -- [Comments](#comments) -- [Limitations](#limitations) -- [EBNF](#ebnf) -- [Syntax/Railroad Diagrams](#syntaxrailroad-diagrams) - - - -## V2 - -This is version 2 of Participle. - -It can be installed with: - -```shell -$ go get github.com/alecthomas/participle/v2@latest -``` - -The latest version from v0 can be installed via: - -```shell -$ go get github.com/alecthomas/participle@latest -``` - -## Introduction - -The goal of this package is to provide a simple, idiomatic and elegant way of -defining parsers in Go. - -Participle's method of defining grammars should be familiar to any Go -programmer who has used the `encoding/json` package: struct field tags define -what and how input is mapped to those same fields. This is not unusual for Go -encoders, but is unusual for a parser. - -## Tutorial - -A [tutorial](TUTORIAL.md) is available, walking through the creation of an .ini parser. - -## Tag syntax - -Participle supports two forms of struct tag grammar syntax. - -The easiest to read is when the grammar uses the entire struct tag content, eg. - -```go -Field string `@Ident @("," Ident)*` -``` - -However, this does not coexist well with other tags such as JSON, etc. and -may cause issues with linters. If this is an issue then you can use the -`parser:""` tag format. In this case single quotes can be used to quote -literals making the tags somewhat easier to write, eg. - -```go -Field string `parser:"@ident (',' Ident)*" json:"field"` -``` - - - -## Overview - -A grammar is an annotated Go structure used to both define the parser grammar, -and be the AST output by the parser. As an example, following is the final INI -parser from the tutorial. - - ```go - type INI struct { - Properties []*Property `@@*` - Sections []*Section `@@*` - } - - type Section struct { - Identifier string `"[" @Ident "]"` - Properties []*Property `@@*` - } - - type Property struct { - Key string `@Ident "="` - Value *Value `@@` - } - - type Value struct { - String *string ` @String` - Float *float64 `| @Float` - Int *int `| @Int` - } - ``` - -> **Note:** Participle also supports named struct tags (eg. Hello string `parser:"@Ident"`). - -A parser is constructed from a grammar and a lexer: - -```go -parser, err := participle.Build[INI]() -``` - -Once constructed, the parser is applied to input to produce an AST: - -```go -ast, err := parser.ParseString("", "size = 10") -// ast == &INI{ -// Properties: []*Property{ -// {Key: "size", Value: &Value{Int: &10}}, -// }, -// } -``` - -## Grammar syntax - -Participle grammars are defined as tagged Go structures. Participle will -first look for tags in the form `parser:"..."`. It will then fall back to -using the entire tag body. - -The grammar format is: - -- `@` Capture expression into the field. -- `@@` Recursively capture using the fields own type. -- `` Match named lexer token. -- `( ... )` Group. -- `"..."` or `'...'` Match the literal (note that the lexer must emit tokens matching this literal exactly). -- `"...":` Match the literal, specifying the exact lexer token type to match. -- ` ...` Match expressions. -- ` | | ...` Match one of the alternatives. Each alternative is tried in order, with backtracking. -- `~` Match any token that is _not_ the start of the expression (eg: `@~";"` matches anything but the `;` character into the field). -- `(?= ... )` Positive lookahead group - requires the contents to match further input, without consuming it. -- `(?! ... )` Negative lookahead group - requires the contents not to match further input, without consuming it. - -The following modifiers can be used after any expression: - -- `*` Expression can match zero or more times. -- `+` Expression must match one or more times. -- `?` Expression can match zero or once. -- `!` Require a non-empty match (this is useful with a sequence of optional matches eg. `("a"? "b"? "c"?)!`). - -Notes: - -- Each struct is a single production, with each field applied in sequence. -- `@` is the mechanism for capturing matches into the field. -- if a struct field is not keyed with "parser", the entire struct tag - will be used as the grammar fragment. This allows the grammar syntax to remain - clear and simple to maintain. - -## Capturing - -Prefixing any expression in the grammar with `@` will capture matching values -for that expression into the corresponding field. - -For example: - -```go -// The grammar definition. -type Grammar struct { - Hello string `@Ident` -} - -// The source text to parse. -source := "world" - -// After parsing, the resulting AST. -result == &Grammar{ - Hello: "world", -} -``` - -For slice and string fields, each instance of `@` will accumulate into the -field (including repeated patterns). Accumulation into other types is not -supported. - -For integer and floating point types, a successful capture will be parsed -with `strconv.ParseInt()` and `strconv.ParseFloat()` respectively. - -A successful capture match into a `bool` field will set the field to true. - -Tokens can also be captured directly into fields of type `lexer.Token` and -`[]lexer.Token`. - -Custom control of how values are captured into fields can be achieved by a -field type implementing the `Capture` interface (`Capture(values []string) -error`). - -Additionally, any field implementing the `encoding.TextUnmarshaler` interface -will be capturable too. One caveat is that `UnmarshalText()` will be called once -for each captured token, so eg. `@(Ident Ident Ident)` will be called three times. - -### Capturing boolean value - -By default, a boolean field is used to indicate that a match occurred, which -turns out to be much more useful and common in Participle than parsing true -or false literals. For example, parsing a variable declaration with a -trailing optional syntax: - -```go -type Var struct { - Name string `"var" @Ident` - Type string `":" @Ident` - Optional bool `@"?"?` -} -``` - -In practice this gives more useful ASTs. If bool were to be parsed literally -then you'd need to have some alternate type for Optional such as string or a -custom type. - -To capture literal boolean values such as `true` or `false`, implement the -Capture interface like so: - -```go -type Boolean bool - -func (b *Boolean) Capture(values []string) error { - *b = values[0] == "true" - return nil -} - -type Value struct { - Float *float64 ` @Float` - Int *int `| @Int` - String *string `| @String` - Bool *Boolean `| @("true" | "false")` -} -``` - -## "Union" types - -A very common pattern in parsers is "union" types, an example of which is -shown above in the `Value` type. A common way of expressing this in Go is via -a sealed interface, with each member of the union implementing this -interface. - -eg. this is how the `Value` type could be expressed in this way: - -```go -type Value interface { value() } - -type Float struct { Value float64 `@Float` } -func (f Float) value() {} - -type Int struct { Value int `@Int` } -func (f Int) value() {} - -type String struct { Value string `@String` } -func (f String) value() {} - -type Bool struct { Value Boolean `@("true" | "false")` } -func (f Bool) value() {} -``` - -Thanks to the efforts of [Jacob Ryan McCollum](https://github.com/mccolljr), Participle -now supports this pattern. Simply construct your parser with the `Union[T](member...T)` -option, eg. - -```go -parser := participle.MustBuild[AST](participle.Union[Value](Float{}, Int{}, String{}, Bool{})) -``` - -Custom parsers may also be defined for union types with the [ParseTypeWith](https://pkg.go.dev/github.com/alecthomas/participle/v2#ParseTypeWith) option. - -## Custom parsing - -There are three ways of defining custom parsers for nodes in the grammar: - -1. Implement the [Capture](https://pkg.go.dev/github.com/alecthomas/participle/v2#Capture) interface. -2. Implement the [Parseable](https://pkg.go.dev/github.com/alecthomas/participle/v2#Parseable) interface. -3. Use the [ParseTypeWith](https://pkg.go.dev/github.com/alecthomas/participle/v2#ParseTypeWith) option to specify a custom parser for union interface types. - - -## Lexing - -Participle relies on distinct lexing and parsing phases. The lexer takes raw -bytes and produces tokens which the parser consumes. The parser transforms -these tokens into Go values. - -The default lexer, if one is not explicitly configured, is based on the Go -`text/scanner` package and thus produces tokens for C/Go-like source code. This -is surprisingly useful, but if you do require more control over lexing the -included stateful [`participle/lexer`](#markdown-stateful-lexer) lexer should -cover most other cases. If that in turn is not flexible enough, you can -implement your own lexer. - -Configure your parser with a lexer using the `participle.Lexer()` option. - -To use your own Lexer you will need to implement two interfaces: -[Definition](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#Definition) -(and optionally [StringDefinition](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#StringDefinition) and [BytesDefinition](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#BytesDefinition)) and [Lexer](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#Lexer). - -### Stateful lexer - -In addition to the default lexer, Participle includes an optional -stateful/modal lexer which provides powerful yet convenient -construction of most lexers. (Notably, indentation based lexers cannot -be expressed using the `stateful` lexer -- for discussion of how these -lexers can be implemented, see [#20](https://github.com/alecthomas/participle/issues/20)). - -It is sometimes the case that a simple lexer cannot fully express the tokens -required by a parser. The canonical example of this is interpolated strings -within a larger language. eg. - -```go -let a = "hello ${name + ", ${last + "!"}"}" -``` - -This is impossible to tokenise with a normal lexer due to the arbitrarily -deep nesting of expressions. To support this case Participle's lexer is now -stateful by default. - -The lexer is a state machine defined by a map of rules keyed by the state -name. Each rule within the state includes the name of the produced token, the -regex to match, and an optional operation to apply when the rule matches. - -As a convenience, any `Rule` starting with a lowercase letter will be elided -from output, though it is recommended to use `participle.Elide()` instead, as it -better integrates with the parser. - -Lexing starts in the `Root` group. Each rule is matched in order, with the first -successful match producing a lexeme. If the matching rule has an associated Action -it will be executed. - -A state change can be introduced with the Action `Push(state)`. `Pop()` will -return to the previous state. - -To reuse rules from another state, use `Include(state)`. - -A special named rule `Return()` can also be used as the final rule in a state -to always return to the previous state. - -As a special case, regexes containing backrefs in the form `\N` (where `N` is -a digit) will match the corresponding capture group from the immediate parent -group. This can be used to parse, among other things, heredocs. See the -[tests](https://github.com/alecthomas/participle/blob/master/lexer/stateful_test.go#L59) -for an example of this, among others. - -### Example stateful lexer - -Here's a cut down example of the string interpolation described above. Refer to -the [stateful example](https://github.com/alecthomas/participle/tree/master/_examples/stateful) -for the corresponding parser. - -```go -var def = lexer.Must(lexer.Rules{ - "Root": { - {`String`, `"`, lexer.Push("String")}, - }, - "String": { - {"Escaped", `\\.`, nil}, - {"StringEnd", `"`, lexer.Pop()}, - {"Expr", `\${`, lexer.Push("Expr")}, - {"Char", `[^$"\\]+`, nil}, - }, - "Expr": { - lexer.Include("Root"), - {`whitespace`, `\s+`, nil}, - {`Oper`, `[-+/*%]`, nil}, - {"Ident", `\w+`, nil}, - {"ExprEnd", `}`, lexer.Pop()}, - }, -}) -``` - -### Example simple/non-stateful lexer - -Other than the default and stateful lexers, it's easy to define your -own _stateless_ lexer using the `lexer.MustSimple()` and -`lexer.NewSimple()` functions. These functions accept a slice of -`lexer.SimpleRule{}` objects consisting of a key and a regex-style pattern. - -> **Note:** The stateful lexer replaces the old regex lexer. - -For example, the lexer for a form of BASIC: - -```go -var basicLexer = lexer.MustSimple([]lexer.SimpleRule{ - {"Comment", `(?i)rem[^\n]*`}, - {"String", `"(\\"|[^"])*"`}, - {"Number", `[-+]?(\d*\.)?\d+`}, - {"Ident", `[a-zA-Z_]\w*`}, - {"Punct", `[-[!@#$%^&*()+_={}\|:;"'<,>.?/]|]`}, - {"EOL", `[\n\r]+`}, - {"whitespace", `[ \t]+`}, -}) -``` - -### Experimental - code generation - -Participle v2 now has experimental support for generating code to perform -lexing. - -This will generally provide around a 10x improvement in lexing performance -while producing O(1) garbage. - -To use: -1. Serialize the `stateful` lexer definition to a JSON file (pass to `json.Marshal`). -2. Run the `participle` command (see `scripts/participle`) to generate go code from the lexer JSON definition. For example: -``` -participle gen lexer [--name SomeCustomName] < mylexer.json | gofmt > mypackage/mylexer.go -``` -(see `genLexer` in `conformance_test.go` for a more detailed example) - -3. When constructing your parser, use the generated lexer for your lexer definition, such as: -``` -var ParserDef = participle.MustBuild[someGrammer](participle.Lexer(mylexer.SomeCustomnameLexer)) -``` - -Consider contributing to the tests in `conformance_test.go` if they do not -appear to cover the types of expressions you are using the generated -lexer. - -**Known limitations of the code generated lexer:** - -* The lexer is always greedy. e.g., the regex `"[A-Z][A-Z][A-Z]?T"` will not match `"EST"` in the generated lexer because the quest operator is a greedy match and does not "give back" to try other possibilities; you can overcome by using `|` if you have a non-greedy match, e.g., `"[A-Z][A-Z]|(?:[A-Z]T|T)"` will produce correct results in both lexers (see [#276](https://github.com/alecthomas/participle/issues/276) for more detail); this limitation allows the generated lexer to be very fast and memory efficient -* Backreferences in regular expressions are not currently supported - -## Options - -The Parser's behaviour can be configured via [Options](https://pkg.go.dev/github.com/alecthomas/participle/v2#Option). - -## Examples - -There are several [examples included](https://github.com/alecthomas/participle/tree/master/_examples), -some of which are linked directly here. These examples should be run from the -`_examples` subdirectory within a cloned copy of this repository. - -Example | Description ---------|--------------- -[BASIC](https://github.com/alecthomas/participle/tree/master/_examples/basic) | A lexer, parser and interpreter for a [rudimentary dialect](https://caml.inria.fr/pub/docs/oreilly-book/html/book-ora058.html) of BASIC. -[EBNF](https://github.com/alecthomas/participle/tree/master/_examples/ebnf) | Parser for the form of EBNF used by Go. -[Expr](https://github.com/alecthomas/participle/tree/master/_examples/expr) | A basic mathematical expression parser and evaluator. -[GraphQL](https://github.com/alecthomas/participle/tree/master/_examples/graphql) | Lexer+parser for GraphQL schemas -[HCL](https://github.com/alecthomas/participle/tree/master/_examples/hcl) | A parser for the [HashiCorp Configuration Language](https://github.com/hashicorp/hcl). -[INI](https://github.com/alecthomas/participle/tree/master/_examples/ini) | An INI file parser. -[Protobuf](https://github.com/alecthomas/participle/tree/master/_examples/protobuf) | A full [Protobuf](https://developers.google.com/protocol-buffers/) version 2 and 3 parser. -[SQL](https://github.com/alecthomas/participle/tree/master/_examples/sql) | A *very* rudimentary SQL SELECT parser. -[Stateful](https://github.com/alecthomas/participle/tree/master/_examples/stateful) | A basic example of a stateful lexer and corresponding parser. -[Thrift](https://github.com/alecthomas/participle/tree/master/_examples/thrift) | A full [Thrift](https://thrift.apache.org/docs/idl) parser. -[TOML](https://github.com/alecthomas/participle/tree/master/_examples/toml) | A [TOML](https://github.com/toml-lang/toml) parser. -[Recovery](https://github.com/alecthomas/participle/tree/master/_examples/recovery) | Demonstrates error recovery strategies for robust parsing. - -Included below is a full GraphQL lexer and parser: - -```go -package main - -import ( - "fmt" - "os" - - "github.com/alecthomas/kong" - "github.com/alecthomas/repr" - - "github.com/alecthomas/participle/v2" - "github.com/alecthomas/participle/v2/lexer" -) - -type File struct { - Entries []*Entry `@@*` -} - -type Entry struct { - Type *Type ` @@` - Schema *Schema `| @@` - Enum *Enum `| @@` - Scalar string `| "scalar" @Ident` -} - -type Enum struct { - Name string `"enum" @Ident` - Cases []string `"{" @Ident* "}"` -} - -type Schema struct { - Fields []*Field `"schema" "{" @@* "}"` -} - -type Type struct { - Name string `"type" @Ident` - Implements string `( "implements" @Ident )?` - Fields []*Field `"{" @@* "}"` -} - -type Field struct { - Name string `@Ident` - Arguments []*Argument `( "(" ( @@ ( "," @@ )* )? ")" )?` - Type *TypeRef `":" @@` - Annotation string `( "@" @Ident )?` -} - -type Argument struct { - Name string `@Ident` - Type *TypeRef `":" @@` - Default *Value `( "=" @@ )` -} - -type TypeRef struct { - Array *TypeRef `( "[" @@ "]"` - Type string ` | @Ident )` - NonNullable bool `( @"!" )?` -} - -type Value struct { - Symbol string `@Ident` -} - -var ( - graphQLLexer = lexer.MustSimple([]lexer.SimpleRule{ - {"Comment", `(?:#|//)[^\n]*\n?`}, - {"Ident", `[a-zA-Z]\w*`}, - {"Number", `(?:\d*\.)?\d+`}, - {"Punct", `[-[!@#$%^&*()+_={}\|:;"'<,>.?/]|]`}, - {"Whitespace", `[ \t\n\r]+`}, - }) - parser = participle.MustBuild[File]( - participle.Lexer(graphQLLexer), - participle.Elide("Comment", "Whitespace"), - participle.UseLookahead(2), - ) -) - -var cli struct { - EBNF bool `help"Dump EBNF."` - Files []string `arg:"" optional:"" type:"existingfile" help:"GraphQL schema files to parse."` -} - -func main() { - ctx := kong.Parse(&cli) - if cli.EBNF { - fmt.Println(parser.String()) - ctx.Exit(0) - } - for _, file := range cli.Files { - r, err := os.Open(file) - ctx.FatalIfErrorf(err) - ast, err := parser.Parse(file, r) - r.Close() - repr.Println(ast) - ctx.FatalIfErrorf(err) - } -} -``` - -## Performance - -One of the included examples is a complete Thrift parser -(shell-style comments are not supported). This gives -a convenient baseline for comparing to the PEG based -[pigeon](https://github.com/PuerkitoBio/pigeon), which is the parser used by -[go-thrift](https://github.com/samuel/go-thrift). Additionally, the pigeon -parser is utilising a generated parser, while the participle parser is built at -run time. - -You can run the benchmarks yourself, but here's the output on my machine: - - BenchmarkParticipleThrift-12 5941 201242 ns/op 178088 B/op 2390 allocs/op - BenchmarkGoThriftParser-12 3196 379226 ns/op 157560 B/op 2644 allocs/op - -On a real life codebase of 47K lines of Thrift, Participle takes 200ms and go- -thrift takes 630ms, which aligns quite closely with the benchmarks. - -## Concurrency - -A compiled `Parser` instance can be used concurrently. A `LexerDefinition` can be used concurrently. A `Lexer` instance cannot be used concurrently. - -## Error reporting - -There are a few areas where Participle can provide useful feedback to users of your parser. - -1. Errors returned by [Parser.Parse*()](https://pkg.go.dev/github.com/alecthomas/participle/v2#Parser.Parse) will be: - 1. Of type [Error](https://pkg.go.dev/github.com/alecthomas/participle/v2#Error). This will contain positional information where available. - 2. May either be [ParseError](https://pkg.go.dev/github.com/alecthomas/participle/v2#ParseError) or [lexer.Error](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#Error) -2. Participle will make a best effort to return as much of the AST up to the error location as possible. -3. Any node in the AST containing a field `Pos lexer.Position` [^1] will be automatically - populated from the nearest matching token. -4. Any node in the AST containing a field `EndPos lexer.Position` [^1] will be - automatically populated from the token at the end of the node. -5. Any node in the AST containing a field `Tokens []lexer.Token` will be automatically - populated with _all_ tokens captured by the node, _including_ elided tokens. - -[^1]: Either the concrete type or a type convertible to it, allowing user defined types to be used. - -These related pieces of information can be combined to provide fairly comprehensive error reporting. - -## Error recovery - -Participle supports error recovery, allowing the parser to continue after encountering errors, -collect multiple errors, and produce a partial AST. This is useful for IDE integration, linters, -and comprehensive error reporting. The recovery system is inspired by -[Chumsky](https://github.com/zesterer/chumsky). - -Enable recovery by passing strategies to `Recover()`: - -```go -ast, err := parser.ParseString("", input, - participle.Recover(participle.SkipPast(";")), -) - -// Check for recovered errors -var recErr *participle.RecoveryError -if errors.As(err, &recErr) { - for _, e := range recErr.Errors { - fmt.Println(e) - } -} -``` - -### Recovery strategies - -| Strategy | Description | -|----------|-------------| -| `SkipUntil(tokens...)` | Skip tokens until a sync token, leaving it unconsumed | -| `SkipPast(tokens...)` | Skip tokens until a sync token and consume it | -| `NestedDelimiters(start, end, others...)` | Skip to balanced delimiters, respecting nesting | -| `SkipThenRetryUntil(tokens...)` | Skip one token at a time, retrying parse at each position | -| `TryStrategies(strategies...)` | Try multiple strategies in order | - -**Choosing a strategy:** -- Statement-based languages (`;` terminated): `SkipPast(";")` -- Expressions with parentheses/brackets: `NestedDelimiters("(", ")")` -- Complex languages: combine multiple strategies - -### AST metadata fields - -Add optional fields to capture recovery information: - -```go -type Statement struct { - Pos lexer.Position // Standard position - RecoveredSpan lexer.Position // Where recovery started (non-zero if recovered) - RecoveredEnd lexer.Position // Where recovery ended - RecoveredTokens []lexer.Token // Tokens consumed during recovery - // ... grammar fields -} -``` - -### Additional options - -- `MaxRecoveryErrors(n)` - Stop after n errors (default 100) -- `TraceRecovery(w)` - Write recovery debug info to w - -## Comments - -Comments can be difficult to capture as in most languages they may appear almost -anywhere. There are three ways of capturing comments, with decreasing fidelity. - -The first is to elide tokens in the parser, then add `Tokens []lexer.Token` as a -field to each AST node. Comments will be included. This has the downside that -there's no straightforward way to know where the comments are relative to -non-comment tokens in that node. - -The second way is to _not_ elide comment tokens, and explicitly capture them at -every location in the AST where they might occur. This has the downside that -unless you place these captures in every possible valid location, users might -insert valid comments that then fail to parse. - -The third way is to elide comment tokens and capture them where they're -semantically meaningful, such as for documentation comments. Participle supports -explicitly matching elided tokens for this purpose. - -## Limitations - -Internally, Participle is a recursive descent parser with backtracking (see -`UseLookahead(K)`). - -Among other things, this means that Participle grammars do not support left -recursion. Left recursion must be eliminated by restructuring your grammar. - -## EBNF - -The old `EBNF` lexer was removed in a major refactoring at -[362b26](https://github.com/alecthomas/participle/commit/362b26640fa3dc406aa60960f7d9a5b9a909414e) --- if you have an EBNF grammar you need to implement, you can either translate -it into regex-style `lexer.Rule{}` syntax or implement your own EBNF lexer -you might be able to use [the old EBNF lexer](https://github.com/alecthomas/participle/blob/2403858c8b2068b4b0cf96a6b36dd7069674039b/lexer/ebnf/ebnf.go) --- as a starting point. - -Participle supports outputting an EBNF grammar from a Participle parser. Once -the parser is constructed simply call `String()`. - -Participle also [includes a parser](https://pkg.go.dev/github.com/alecthomas/participle/v2/ebnf) for this form of EBNF (naturally). - -eg. The [GraphQL example](https://github.com/alecthomas/participle/blob/master/_examples/graphql/main.go#L15-L62) -gives in the following EBNF: - -```ebnf -File = Entry* . -Entry = Type | Schema | Enum | "scalar" ident . -Type = "type" ident ("implements" ident)? "{" Field* "}" . -Field = ident ("(" (Argument ("," Argument)*)? ")")? ":" TypeRef ("@" ident)? . -Argument = ident ":" TypeRef ("=" Value)? . -TypeRef = "[" TypeRef "]" | ident "!"? . -Value = ident . -Schema = "schema" "{" Field* "}" . -Enum = "enum" ident "{" ident* "}" . -``` - -## Syntax/Railroad Diagrams - -Participle includes a [command-line utility](https://github.com/alecthomas/participle/tree/master/cmd/railroad) to take an EBNF representation of a Participle grammar -(as returned by `Parser.String()`) and produce a Railroad Diagram using -[tabatkins/railroad-diagrams](https://github.com/tabatkins/railroad-diagrams). - -Here's what the GraphQL grammar looks like: - -![EBNF Railroad Diagram](railroad.png) diff --git a/example/vendor/github.com/alecthomas/participle/v2/TUTORIAL.md b/example/vendor/github.com/alecthomas/participle/v2/TUTORIAL.md deleted file mode 100644 index 9c33ae9..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/TUTORIAL.md +++ /dev/null @@ -1,299 +0,0 @@ -# Participle parser tutorial - - - -- [Introduction](#introduction) -- [The complete grammar](#the-complete-grammar) -- [Root of the .ini AST (structure, fields)](#root-of-the-ini-ast-structure-fields) -- [.ini properties (named tokens, capturing, literals)](#ini-properties-named-tokens-capturing-literals) -- [.ini property values (alternates, recursive structs, sequences)](#ini-property-values-alternates-recursive-structs-sequences) -- [Complete, but limited, .ini grammar (top-level properties only)](#complete-but-limited-ini-grammar-top-level-properties-only) -- [Extending our grammar to support sections](#extending-our-grammar-to-support-sections) -- [(Optional) Source positional information](#optional-source-positional-information) -- [Parsing using our grammar](#parsing-using-our-grammar) - - - - -## Introduction - -Writing a parser in Participle typically involves starting from the "root" of -the AST, annotating fields with the grammar, then recursively expanding until -it is complete. The AST is expressed via Go data types and the grammar is -expressed through struct field tags, as a form of EBNF. - -The parser we're going to create for this tutorial parses .ini files -like this: - -```ini -age = 21 -name = "Bob Smith" - -[address] -city = "Beverly Hills" -postal_code = 90210 -``` - - -## The complete grammar - -I think it's useful to see the complete grammar first, to see what we're -working towards. Read on below for details. - - ```go - type INI struct { - Properties []*Property `@@*` - Sections []*Section `@@*` - } - - type Section struct { - Identifier string `"[" @Ident "]"` - Properties []*Property `@@*` - } - - type Property struct { - Key string `@Ident "="` - Value Value `@@` - } - -type Value interface{ value() } - -type String struct { - String string `@String` -} - -func (String) value() {} - -type Number struct { - Number float64 `@Float | @Int` -} - -func (Number) value() {} - ``` - - -## Root of the .ini AST (structure, fields) - -The first step is to create a root struct for our grammar. In the case of our -.ini parser, this struct will contain a sequence of properties: - -```go -type INI struct { - Properties []*Property -} - -type Property struct { -} -``` - - -## .ini properties (named tokens, capturing, literals) - -Each property in an .ini file has an identifier key: - -```go -type Property struct { - Key string -} -``` - -The default lexer tokenises Go source code, and includes an `Ident` token type -that matches identifiers. To match this token we simply use the token type -name: - -```go -type Property struct { - Key string `Ident` -} -``` - -This will *match* identifiers, but not *capture* them into the `Key` field. To -capture input tokens into AST fields, prefix any grammar node with `@`: - -```go -type Property struct { - Key string `@Ident` -} -``` - -In .ini files, each key is separated from its value with a literal `=`. To -match a literal, enclose the literal in double quotes: - -```go -type Property struct { - Key string `@Ident "="` -} -``` - -> Note: literals in the grammar must match tokens from the lexer *exactly*. In -> this example if the lexer does not output `=` as a distinct token the -> grammar will not match. - - -## .ini property values (alternates, recursive structs, sequences) - -For the purposes of our example we are only going to support quoted string -and numeric property values. As each value can be *either* a string or a float -we'll need something akin to a sum type. Participle supports this via the -`Union[T any](members...T) Option` parser option. This tells the parser that -when a field of interface type `T` is encountered, it should try to match each -of the `members` in turn, and return the first successful match. - -```go -type Value interface{ value() } - -type String struct { - String string `@String` -} - -func (String) value() {} - -type Number struct { - Number float64 `@Float` -} - -func (Number) value() {} -``` - -Since we want to also parse integers and the default lexer differentiates -between floats and integers, we need to explicitly match either. To express -matching a set of alternatives such as this, we use the `|` operator: - -```go -type Number struct { - Number float64 `@Float | @Int` -} -``` - -> Note: the grammar can cross fields. - -Next, we'll match values and capture them into the `Property`. To recursively -capture structs use `@@` (capture self): - -```go -type Property struct { - Key string `@Ident "="` - Value Value `@@` -} -``` - -Now that we can parse a `Property` we need to go back to the root of the -grammar. We want to parse 0 or more properties. To do this, we use `*`. -Participle will accumulate each match into the slice until matching fails, -then move to the next node in the grammar. - -```go -type INI struct { - Properties []*Property `@@*` -} -``` - -> Note: tokens can also be accumulated into strings, appending each match. - - -## Complete, but limited, .ini grammar (top-level properties only) - -We now have a functional, but limited, .ini parser! - -```go -type INI struct { - Properties []*Property `@@*` -} - -type Property struct { - Key string `@Ident "="` - Value Value `@@` -} - -type Value interface{ value() } - -type String struct { - String string `@String` -} - -func (String) value() {} - -type Number struct { - Number float64 `@Float | @Int` -} - -func (Number) value() {} -``` - - -## Extending our grammar to support sections - -Adding support for sections is simply a matter of utilising the constructs -we've just learnt. A section consists of a header identifier, and a sequence -of properties: - -```go -type Section struct { - Identifier string `"[" @Ident "]"` - Properties []*Property `@@*` -} -``` - -Simple! - -Now we just add a sequence of `Section`s to our root node: - -```go -type INI struct { - Properties []*Property `@@*` - Sections []*Section `@@*` -} -``` - -And we're done! - - -## (Optional) Source positional information - -If a grammar node includes a field with the name `Pos` and type `lexer.Position`, it will be automatically populated by positional information. eg. - -```go -type String struct { - Pos lexer.Position - - String string `@String` -} - -type Number struct { - Pos lexer.Position - - Number float64 `@Float | @Int` -} -``` - -This is useful for error reporting. - - -## Parsing using our grammar - -To parse with this grammar we first construct the parser (we'll use the -default lexer for now): - -```go -parser, err := participle.Build[INI]( - participle.Unquote("String"), - participle.Union[Value](String{}, Number{}), -) -``` - -Then parse a new INI file with `parser.Parse{,String,Bytes}()`: - -```go -ini, err := parser.ParseString("", ` -age = 21 -name = "Bob Smith" - -[address] -city = "Beverly Hills" -postal_code = 90210 -`) -``` - -You can find the full example [here](_examples/ini/main.go), alongside -other examples including an SQL `SELECT` parser and a full -[Thrift](https://thrift.apache.org/) parser. diff --git a/example/vendor/github.com/alecthomas/participle/v2/api.go b/example/vendor/github.com/alecthomas/participle/v2/api.go deleted file mode 100644 index 1fbcbc2..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/api.go +++ /dev/null @@ -1,19 +0,0 @@ -package participle - -import ( - "github.com/alecthomas/participle/v2/lexer" -) - -// Capture can be implemented by fields in order to transform captured tokens into field values. -type Capture interface { - Capture(values []string) error -} - -// The Parseable interface can be implemented by any element in the grammar to provide custom parsing. -type Parseable interface { - // Parse into the receiver. - // - // Should return NextMatch if no tokens matched and parsing should continue. - // Nil should be returned if parsing was successful. - Parse(lex *lexer.PeekingLexer) error -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/context.go b/example/vendor/github.com/alecthomas/participle/v2/context.go deleted file mode 100644 index 2cb4756..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/context.go +++ /dev/null @@ -1,271 +0,0 @@ -package participle - -import ( - "fmt" - "io" - "reflect" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -type contextFieldSet struct { - tokens []lexer.Token - strct reflect.Value - field structLexerField - fieldValue []reflect.Value -} - -// Context for a single parse. -type parseContext struct { - lexer.PeekingLexer - depth int - trace io.Writer - deepestError error - deepestErrorDepth int - lookahead int - caseInsensitive map[lexer.TokenType]bool - apply []*contextFieldSet - allowTrailing bool - - // Error recovery support - recovery *recoveryConfig - recoveryErrors []error -} - -func newParseContext(lex *lexer.PeekingLexer, lookahead int, caseInsensitive map[lexer.TokenType]bool) parseContext { - return parseContext{ - PeekingLexer: *lex, - caseInsensitive: caseInsensitive, - lookahead: lookahead, - } -} - -func (p *parseContext) DeepestError(err error) error { - if p.PeekingLexer.Cursor() >= p.deepestErrorDepth { - return err - } - if p.deepestError != nil { - return p.deepestError - } - return err -} - -// Defer adds a function to be applied once a branch has been picked. -func (p *parseContext) Defer(tokens []lexer.Token, strct reflect.Value, field structLexerField, fieldValue []reflect.Value) { - p.apply = append(p.apply, &contextFieldSet{tokens, strct, field, fieldValue}) -} - -// Apply deferred functions. -func (p *parseContext) Apply() error { - for _, apply := range p.apply { - if err := setField(apply.tokens, apply.strct, apply.field, apply.fieldValue); err != nil { - return err - } - } - p.apply = nil - return nil -} - -// Branch accepts the branch as the correct branch. -func (p *parseContext) Accept(branch *parseContext) { - p.apply = append(p.apply, branch.apply...) - p.PeekingLexer = branch.PeekingLexer - if branch.deepestErrorDepth >= p.deepestErrorDepth { - p.deepestErrorDepth = branch.deepestErrorDepth - p.deepestError = branch.deepestError - } - // Merge recovery errors from the branch - p.recoveryErrors = append(p.recoveryErrors, branch.recoveryErrors...) -} - -// Branch starts a new lookahead branch. -func (p *parseContext) Branch() *parseContext { - branch := &parseContext{} - *branch = *p - branch.apply = nil - branch.recoveryErrors = nil // Don't share slice with parent - return branch -} - -func (p *parseContext) MaybeUpdateError(err error) { - if p.PeekingLexer.Cursor() >= p.deepestErrorDepth { - p.deepestError = err - p.deepestErrorDepth = p.PeekingLexer.Cursor() - } -} - -// Stop returns true if parsing should terminate after the given "branch" failed to match. -// -// Additionally, track the deepest error in the branch - the deeper the error, the more useful it usually is. -// It could already be the deepest error in the branch (only if deeper than current parent context deepest), -// or it could be "err", the latest error on the branch (even if same depth; the lexer holds the position). -func (p *parseContext) Stop(err error, branch *parseContext) bool { - if branch.deepestErrorDepth > p.deepestErrorDepth { - p.deepestError = branch.deepestError - p.deepestErrorDepth = branch.deepestErrorDepth - } else if branch.PeekingLexer.Cursor() >= p.deepestErrorDepth { - p.deepestError = err - p.deepestErrorDepth = maxInt(branch.PeekingLexer.Cursor(), branch.deepestErrorDepth) - } - if !p.hasInfiniteLookahead() && branch.PeekingLexer.Cursor() > p.PeekingLexer.Cursor()+p.lookahead { - p.Accept(branch) - return true - } - return false -} - -func (p *parseContext) hasInfiniteLookahead() bool { return p.lookahead < 0 } - -func (p *parseContext) printTrace(n node) func() { - if p.trace != nil { - tok := p.PeekingLexer.Peek() - fmt.Fprintf(p.trace, "%s%q %s\n", strings.Repeat(" ", p.depth*2), tok, n.GoString()) - p.depth += 1 - return func() { p.depth -= 1 } - } - return func() {} -} - -func maxInt(a, b int) int { - if a > b { - return a - } - return b -} - -// Recovery support methods - -// recoveryEnabled returns true if error recovery is enabled. -func (p *parseContext) recoveryEnabled() bool { - return p.recovery != nil && len(p.recovery.strategies) > 0 -} - -// addRecoveryError records an error that occurred during recovery. -func (p *parseContext) addRecoveryError(err error) { - p.recoveryErrors = append(p.recoveryErrors, err) -} - -// tryRecover attempts to recover from a parse error using the configured strategies. -func (p *parseContext) tryRecover(err error, parent reflect.Value) recoveryResult { - if !p.recoveryEnabled() { - return recoveryResult{} - } - - // Check if we've exceeded max errors - if p.recovery.maxErrors > 0 && len(p.recoveryErrors) >= p.recovery.maxErrors { - p.traceRecovery("max errors (%d) reached, not attempting recovery", p.recovery.maxErrors) - return recoveryResult{} - } - - startPos := p.Peek().Pos - startCursor := p.RawCursor() - - p.traceRecoveryAttempt(startPos, err, "recovery") - - // Try each strategy in order - for _, strategy := range p.recovery.strategies { - if result, ok := p.tryStrategy(strategy, err, parent, startCursor); ok { - return result - } - } - - p.traceRecoveryAllFailed() - return recoveryResult{} -} - -// tryStrategy attempts a single recovery strategy, returning the result and whether it succeeded. -func (p *parseContext) tryStrategy(strategy RecoveryStrategy, err error, parent reflect.Value, startCursor lexer.RawCursor) (recoveryResult, bool) { - checkpoint := p.PeekingLexer.MakeCheckpoint() - currentPos := p.Peek().Pos - - strategyName := p.getStrategyName(strategy) - p.traceRecoveryStrategy(strategyName, currentPos) - - var recovered bool - var values []reflect.Value - var newErr error - var recoveredTokens []lexer.Token - - if enhanced, ok := strategy.(EnhancedRecoveryStrategy); ok { - result := enhanced.RecoverWithContext(p, err, parent) - recovered = result.recovered - values = result.values - newErr = result.err - recoveredTokens = result.recoveredTokens - strategyName = result.strategyName // Use actual name from result - } else { - recovered, values, newErr = strategy.Recover(p, err, parent) - } - - if recovered { - progressed := p.RawCursor() > startCursor - p.traceRecoverySuccess(strategyName, len(recoveredTokens), p.Peek().Pos) - p.addRecoveryError(newErr) - return recoveryResult{ - recovered: true, - values: values, - progressed: progressed, - recoveredTokens: recoveredTokens, - strategyName: strategyName, - }, true - } - - p.traceRecoveryFailed(strategyName, "strategy returned false") - p.PeekingLexer.LoadCheckpoint(checkpoint) - return recoveryResult{}, false -} - -// getStrategyName returns a human-readable name for tracing. -func (p *parseContext) getStrategyName(strategy RecoveryStrategy) string { - if enhanced, ok := strategy.(EnhancedRecoveryStrategy); ok { - return enhanced.Name() - } - return "unknown" -} - -// Recovery tracing methods - -// traceRecovery writes a trace message if recovery tracing is enabled. -func (p *parseContext) traceRecovery(format string, args ...interface{}) { - if p.recovery != nil && p.recovery.traceWriter != nil { - fmt.Fprintf(p.recovery.traceWriter, "[recovery] "+format+"\n", args...) - } -} - -// traceRecoveryAttempt logs when a recovery attempt begins. -func (p *parseContext) traceRecoveryAttempt(pos lexer.Position, err error, nodeName string) { - if p.recovery != nil && p.recovery.traceWriter != nil { - fmt.Fprintf(p.recovery.traceWriter, "[recovery] %s: attempting recovery for %q (error: %v)\n", - pos, nodeName, err) - } -} - -// traceRecoveryStrategy logs when a specific strategy is being tried. -func (p *parseContext) traceRecoveryStrategy(strategyName string, pos lexer.Position) { - if p.recovery != nil && p.recovery.traceWriter != nil { - fmt.Fprintf(p.recovery.traceWriter, "[recovery] trying strategy %q at %v\n", strategyName, pos) - } -} - -// traceRecoverySuccess logs when recovery succeeds. -func (p *parseContext) traceRecoverySuccess(strategyName string, skippedCount int, newPos lexer.Position) { - if p.recovery != nil && p.recovery.traceWriter != nil { - fmt.Fprintf(p.recovery.traceWriter, "[recovery] SUCCESS: %q skipped %d token(s), now at %v\n", - strategyName, skippedCount, newPos) - } -} - -// traceRecoveryFailed logs when a strategy fails. -func (p *parseContext) traceRecoveryFailed(strategyName string, reason string) { - if p.recovery != nil && p.recovery.traceWriter != nil { - fmt.Fprintf(p.recovery.traceWriter, "[recovery] FAILED: %q - %s\n", strategyName, reason) - } -} - -// traceRecoveryAllFailed logs when all strategies fail. -func (p *parseContext) traceRecoveryAllFailed() { - if p.recovery != nil && p.recovery.traceWriter != nil { - fmt.Fprintf(p.recovery.traceWriter, "[recovery] all strategies failed\n") - } -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/coverage.html b/example/vendor/github.com/alecthomas/participle/v2/coverage.html deleted file mode 100644 index 68bd81a..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/coverage.html +++ /dev/null @@ -1,5083 +0,0 @@ - - - - - - railroad: Go Coverage Report - - - -
- -
- not tracked - - not covered - covered - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - diff --git a/example/vendor/github.com/alecthomas/participle/v2/coverage.out b/example/vendor/github.com/alecthomas/participle/v2/coverage.out deleted file mode 100644 index cb44dc8..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/coverage.out +++ /dev/null @@ -1,1484 +0,0 @@ -mode: set -github.com/alecthomas/participle/v2/ebnf/ebnf.go:41.26,41.27 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:43.32,44.9 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:45.20,46.31 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:47.23,48.34 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:49.21,50.44 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:51.22,52.41 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:53.10,54.14 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:61.40,61.41 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:63.61,65.12 2 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:66.16,67.30 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:69.10,70.12 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:72.2,72.12 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:90.35,90.36 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:92.41,94.43 2 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:94.43,96.3 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:97.2,98.12 2 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:108.30,108.31 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:110.42,111.31 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:111.31,112.12 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:112.12,114.4 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:115.3,115.23 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:117.2,117.8 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:127.32,127.33 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:129.44,130.37 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:130.37,131.12 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:131.12,133.4 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:134.3,134.22 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:136.2,136.8 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:147.32,147.33 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:156.26,156.27 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:158.38,159.43 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:159.43,161.31 2 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:161.31,163.4 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:165.2,165.8 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:169.46,171.2 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:174.40,176.2 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:18.35,20.2 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:51.57,54.28 3 1 -github.com/alecthomas/participle/v2/lexer/api.go:54.28,56.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:57.2,57.12 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:61.41,62.50 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:62.50,64.3 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:65.2,65.11 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:74.49,75.16 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:75.16,76.13 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:78.2,78.12 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:82.47,84.6 2 1 -github.com/alecthomas/participle/v2/lexer/api.go:84.6,86.17 2 1 -github.com/alecthomas/participle/v2/lexer/api.go:86.17,88.4 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:89.3,90.24 2 1 -github.com/alecthomas/participle/v2/lexer/api.go:90.24,92.4 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:105.41,110.16 4 1 -github.com/alecthomas/participle/v2/lexer/api.go:110.16,112.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:112.8,114.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:120.46,122.18 2 0 -github.com/alecthomas/participle/v2/lexer/api.go:122.18,124.3 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:124.8,126.3 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:127.2,128.10 2 0 -github.com/alecthomas/participle/v2/lexer/api.go:131.37,134.2 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:136.35,138.20 2 1 -github.com/alecthomas/participle/v2/lexer/api.go:138.20,140.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:141.2,141.60 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:153.27,155.2 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:157.32,158.13 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:158.13,160.3 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:161.2,161.16 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:164.34,165.27 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:165.27,167.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:168.2,168.73 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:174.83,177.31 3 0 -github.com/alecthomas/participle/v2/lexer/api.go:177.31,179.10 2 0 -github.com/alecthomas/participle/v2/lexer/api.go:179.10,181.4 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:182.3,182.19 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:184.2,184.19 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:25.70,27.2 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:29.37,29.53 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:30.37,30.53 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:33.32,33.68 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:36.55,38.24 2 1 -github.com/alecthomas/participle/v2/lexer/errors.go:38.24,40.3 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:41.2,41.38 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:41.38,43.3 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:44.2,44.15 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:44.15,46.3 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:46.8,48.3 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:49.2,49.12 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:25.68,29.27 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:29.27,31.3 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:32.2,32.6 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:32.6,34.17 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:34.17,36.4 1 0 -github.com/alecthomas/participle/v2/lexer/peek.go:37.3,38.14 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:38.14,39.9 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:42.2,43.15 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:47.66,49.2 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:52.34,54.2 1 0 -github.com/alecthomas/participle/v2/lexer/peek.go:57.43,59.2 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:62.38,64.13 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:64.13,66.3 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:67.2,71.10 5 1 -github.com/alecthomas/participle/v2/lexer/peek.go:75.38,77.2 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:82.41,84.2 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:87.45,88.25 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:88.25,90.34 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:90.34,92.4 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:103.87,104.30 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:104.30,106.46 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:106.46,108.4 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:113.57,114.48 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:114.48,116.14 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:116.14,117.9 1 0 -github.com/alecthomas/participle/v2/lexer/peek.go:119.3,119.23 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:119.23,121.4 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:123.2,124.24 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:127.52,129.2 1 0 -github.com/alecthomas/participle/v2/lexer/peek.go:131.62,133.2 1 0 -github.com/alecthomas/participle/v2/lexer/simple.go:13.57,15.16 2 1 -github.com/alecthomas/participle/v2/lexer/simple.go:15.16,16.13 1 0 -github.com/alecthomas/participle/v2/lexer/simple.go:18.2,18.12 1 1 -github.com/alecthomas/participle/v2/lexer/simple.go:23.65,25.29 2 1 -github.com/alecthomas/participle/v2/lexer/simple.go:25.29,27.3 1 1 -github.com/alecthomas/participle/v2/lexer/simple.go:28.2,28.38 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:36.49,39.16 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:39.16,41.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:42.2,47.25 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:47.25,49.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:50.2,51.16 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:51.16,53.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:54.2,55.22 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:56.14,58.63 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:58.63,60.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:61.3,61.18 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:62.13,64.63 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:64.63,66.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:67.3,67.18 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:68.17,70.63 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:70.63,72.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:73.3,73.18 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:74.10,74.10 0 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:75.10,76.62 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:78.2,79.12 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:82.46,87.21 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:87.21,89.17 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:89.17,91.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:92.3,94.17 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:94.17,96.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:97.3,97.26 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:98.12,98.12 0 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:99.18,100.27 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:101.19,102.28 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:103.16,104.31 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:105.11,106.68 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:108.3,109.17 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:109.17,111.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:112.3,112.28 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:114.2,114.29 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:150.77,151.21 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:151.21,153.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:154.2,155.12 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:159.19,161.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:169.20,169.41 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:176.78,177.21 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:177.21,179.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:180.2,181.12 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:184.49,185.34 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:185.34,187.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:188.2,188.12 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:195.32,197.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:203.75,204.31 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:207.80,209.9 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:209.9,211.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:212.2,215.12 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:219.33,221.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:233.52,235.16 2 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:235.16,236.13 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:238.2,238.12 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:242.52,244.30 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:244.30,245.28 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:245.28,246.56 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:246.56,247.52 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:247.52,249.6 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:251.4,257.44 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:257.44,259.19 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:259.19,261.6 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:263.4,267.6 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:270.1,271.37 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:271.37,272.30 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:272.30,273.51 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:273.51,274.65 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:274.65,276.6 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:277.5,277.17 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:281.2,282.28 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:282.28,284.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:285.2,291.27 5 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:291.27,292.38 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:292.38,293.75 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:293.75,294.121 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:296.4,299.8 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:302.2,306.15 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:309.60,311.2 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:314.44,316.36 2 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:316.36,317.30 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:317.30,319.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:321.2,321.12 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:325.82,336.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:338.79,341.16 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:341.16,343.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:344.2,344.42 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:347.61,349.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:365.47,369.22 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:369.22,375.35 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:375.35,377.36 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:377.36,381.18 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:383.4,384.18 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:384.18,386.5 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:387.4,388.53 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:388.53,391.28 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:391.28,392.11 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:396.3,396.34 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:396.34,398.24 2 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:398.24,400.5 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:401.4,401.81 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:404.3,404.25 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:404.25,406.39 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:406.39,408.5 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:409.4,409.61 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:409.61,411.5 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:412.9,412.34 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:412.34,414.4 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:416.3,423.18 5 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:423.18,426.12 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:428.3,432.9 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:434.2,434.29 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:437.84,438.25 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:438.25,440.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:443.2,443.93 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:447.98,450.8 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:450.8,452.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:454.2,458.78 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:458.78,461.18 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:461.18,464.4 2 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:465.3,465.48 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:465.48,468.4 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:470.3,470.70 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:472.2,472.16 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:472.16,474.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:475.2,475.16 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:475.16,477.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:478.2,479.16 2 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:22.71,24.2 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:30.87,32.24 2 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:32.24,34.3 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:35.2,35.15 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:38.69,49.2 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:63.46,67.61 4 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:67.61,69.3 1 0 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:70.2,70.14 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:76.67,78.2 1 0 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:80.79,87.2 3 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:90.48,92.2 1 0 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:95.42,97.2 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:99.50,104.18 5 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:104.18,106.3 1 0 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:107.2,111.8 1 1 -github.com/alecthomas/participle/v2/context.go:36.117,42.2 1 1 -github.com/alecthomas/participle/v2/context.go:44.54,45.52 1 1 -github.com/alecthomas/participle/v2/context.go:45.52,47.3 1 1 -github.com/alecthomas/participle/v2/context.go:48.2,48.27 1 1 -github.com/alecthomas/participle/v2/context.go:48.27,50.3 1 1 -github.com/alecthomas/participle/v2/context.go:51.2,51.12 1 0 -github.com/alecthomas/participle/v2/context.go:55.125,57.2 1 1 -github.com/alecthomas/participle/v2/context.go:60.38,61.32 1 1 -github.com/alecthomas/participle/v2/context.go:61.32,62.92 1 1 -github.com/alecthomas/participle/v2/context.go:62.92,64.4 1 1 -github.com/alecthomas/participle/v2/context.go:66.2,67.12 2 1 -github.com/alecthomas/participle/v2/context.go:71.53,74.53 3 1 -github.com/alecthomas/participle/v2/context.go:74.53,77.3 2 1 -github.com/alecthomas/participle/v2/context.go:79.2,79.71 1 1 -github.com/alecthomas/participle/v2/context.go:83.47,89.2 5 1 -github.com/alecthomas/participle/v2/context.go:91.52,92.52 1 1 -github.com/alecthomas/participle/v2/context.go:92.52,95.3 2 1 -github.com/alecthomas/participle/v2/context.go:103.67,104.52 1 1 -github.com/alecthomas/participle/v2/context.go:104.52,107.3 2 1 -github.com/alecthomas/participle/v2/context.go:107.8,107.64 1 1 -github.com/alecthomas/participle/v2/context.go:107.64,110.3 2 1 -github.com/alecthomas/participle/v2/context.go:111.2,111.101 1 1 -github.com/alecthomas/participle/v2/context.go:111.101,114.3 2 1 -github.com/alecthomas/participle/v2/context.go:115.2,115.14 1 1 -github.com/alecthomas/participle/v2/context.go:118.52,118.78 1 1 -github.com/alecthomas/participle/v2/context.go:120.50,121.20 1 1 -github.com/alecthomas/participle/v2/context.go:121.20,125.17 4 1 -github.com/alecthomas/participle/v2/context.go:125.17,125.33 1 1 -github.com/alecthomas/participle/v2/context.go:127.2,127.16 1 1 -github.com/alecthomas/participle/v2/context.go:127.17,127.18 0 1 -github.com/alecthomas/participle/v2/context.go:130.27,131.11 1 1 -github.com/alecthomas/participle/v2/context.go:131.11,133.3 1 1 -github.com/alecthomas/participle/v2/context.go:134.2,134.10 1 1 -github.com/alecthomas/participle/v2/context.go:140.47,142.2 1 1 -github.com/alecthomas/participle/v2/context.go:145.52,147.2 1 1 -github.com/alecthomas/participle/v2/context.go:151.92,152.26 1 1 -github.com/alecthomas/participle/v2/context.go:152.26,154.3 1 1 -github.com/alecthomas/participle/v2/context.go:157.2,157.79 1 1 -github.com/alecthomas/participle/v2/context.go:157.79,159.3 1 1 -github.com/alecthomas/participle/v2/context.go:162.2,162.49 1 1 -github.com/alecthomas/participle/v2/context.go:162.49,165.16 3 1 -github.com/alecthomas/participle/v2/context.go:165.16,168.4 2 1 -github.com/alecthomas/participle/v2/context.go:170.3,170.44 1 1 -github.com/alecthomas/participle/v2/context.go:173.2,173.19 1 1 -github.com/alecthomas/participle/v2/ebnf.go:11.37,13.2 1 1 -github.com/alecthomas/participle/v2/ebnf.go:20.26,22.18 2 1 -github.com/alecthomas/participle/v2/ebnf.go:23.14,26.26 3 1 -github.com/alecthomas/participle/v2/ebnf.go:26.26,28.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:29.3,29.33 1 1 -github.com/alecthomas/participle/v2/ebnf.go:31.10,34.17 3 1 -github.com/alecthomas/participle/v2/ebnf.go:38.81,39.23 1 1 -github.com/alecthomas/participle/v2/ebnf.go:40.20,41.12 1 1 -github.com/alecthomas/participle/v2/ebnf.go:41.12,43.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:44.3,44.32 1 1 -github.com/alecthomas/participle/v2/ebnf.go:44.32,45.13 1 1 -github.com/alecthomas/participle/v2/ebnf.go:45.13,47.5 1 1 -github.com/alecthomas/participle/v2/ebnf.go:48.4,48.41 1 1 -github.com/alecthomas/participle/v2/ebnf.go:50.3,50.12 1 1 -github.com/alecthomas/participle/v2/ebnf.go:50.12,52.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:54.14,56.15 2 1 -github.com/alecthomas/participle/v2/ebnf.go:56.15,58.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:59.3,59.14 1 1 -github.com/alecthomas/participle/v2/ebnf.go:59.14,61.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:62.3,65.44 4 1 -github.com/alecthomas/participle/v2/ebnf.go:65.44,66.13 1 1 -github.com/alecthomas/participle/v2/ebnf.go:66.13,68.5 1 1 -github.com/alecthomas/participle/v2/ebnf.go:69.4,69.41 1 1 -github.com/alecthomas/participle/v2/ebnf.go:72.15,74.16 2 1 -github.com/alecthomas/participle/v2/ebnf.go:76.14,78.15 2 1 -github.com/alecthomas/participle/v2/ebnf.go:78.15,80.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:81.3,81.14 1 1 -github.com/alecthomas/participle/v2/ebnf.go:81.14,83.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:84.3,87.41 4 1 -github.com/alecthomas/participle/v2/ebnf.go:89.17,91.12 2 1 -github.com/alecthomas/participle/v2/ebnf.go:91.12,93.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:94.3,94.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:94.16,97.16 3 1 -github.com/alecthomas/participle/v2/ebnf.go:97.16,99.5 1 1 -github.com/alecthomas/participle/v2/ebnf.go:101.3,101.12 1 1 -github.com/alecthomas/participle/v2/ebnf.go:101.12,103.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:105.18,106.22 1 0 -github.com/alecthomas/participle/v2/ebnf.go:108.16,109.42 1 1 -github.com/alecthomas/participle/v2/ebnf.go:111.18,112.53 1 1 -github.com/alecthomas/participle/v2/ebnf.go:114.17,116.42 2 1 -github.com/alecthomas/participle/v2/ebnf.go:118.16,119.34 1 1 -github.com/alecthomas/participle/v2/ebnf.go:121.14,122.71 1 1 -github.com/alecthomas/participle/v2/ebnf.go:122.71,124.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:124.9,124.48 1 1 -github.com/alecthomas/participle/v2/ebnf.go:124.48,125.86 1 1 -github.com/alecthomas/participle/v2/ebnf.go:125.86,127.5 1 0 -github.com/alecthomas/participle/v2/ebnf.go:127.10,129.5 1 1 -github.com/alecthomas/participle/v2/ebnf.go:130.9,132.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:133.3,133.17 1 1 -github.com/alecthomas/participle/v2/ebnf.go:134.27,135.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:136.28,137.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:138.29,139.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:140.28,141.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:142.23,142.23 0 1 -github.com/alecthomas/participle/v2/ebnf.go:145.23,146.18 1 1 -github.com/alecthomas/participle/v2/ebnf.go:146.18,148.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:148.9,150.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:151.3,152.15 2 1 -github.com/alecthomas/participle/v2/ebnf.go:154.10,155.52 1 0 -github.com/alecthomas/participle/v2/error.go:23.36,26.24 3 1 -github.com/alecthomas/participle/v2/error.go:26.24,28.3 1 1 -github.com/alecthomas/participle/v2/error.go:29.2,29.38 1 1 -github.com/alecthomas/participle/v2/error.go:29.38,31.3 1 1 -github.com/alecthomas/participle/v2/error.go:32.2,32.15 1 1 -github.com/alecthomas/participle/v2/error.go:32.15,34.3 1 1 -github.com/alecthomas/participle/v2/error.go:34.8,36.3 1 1 -github.com/alecthomas/participle/v2/error.go:37.2,37.12 1 1 -github.com/alecthomas/participle/v2/error.go:49.47,49.72 1 1 -github.com/alecthomas/participle/v2/error.go:51.49,53.25 2 1 -github.com/alecthomas/participle/v2/error.go:53.25,55.3 1 1 -github.com/alecthomas/participle/v2/error.go:55.8,55.27 1 1 -github.com/alecthomas/participle/v2/error.go:55.27,57.3 1 0 -github.com/alecthomas/participle/v2/error.go:58.2,58.69 1 1 -github.com/alecthomas/participle/v2/error.go:60.58,60.85 1 1 -github.com/alecthomas/participle/v2/error.go:71.48,71.73 1 1 -github.com/alecthomas/participle/v2/error.go:72.48,72.64 1 1 -github.com/alecthomas/participle/v2/error.go:73.48,73.64 1 1 -github.com/alecthomas/participle/v2/error.go:76.75,78.2 1 1 -github.com/alecthomas/participle/v2/error.go:85.45,85.61 1 1 -github.com/alecthomas/participle/v2/error.go:93.85,95.33 2 1 -github.com/alecthomas/participle/v2/error.go:95.33,98.3 2 0 -github.com/alecthomas/participle/v2/error.go:98.8,100.3 1 1 -github.com/alecthomas/participle/v2/error.go:101.2,101.82 1 1 -github.com/alecthomas/participle/v2/grammar.go:17.66,23.2 1 1 -github.com/alecthomas/participle/v2/grammar.go:25.64,27.27 2 1 -github.com/alecthomas/participle/v2/grammar.go:27.27,28.48 1 1 -github.com/alecthomas/participle/v2/grammar.go:28.48,30.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:31.3,35.61 2 1 -github.com/alecthomas/participle/v2/grammar.go:37.2,37.27 1 1 -github.com/alecthomas/participle/v2/grammar.go:37.27,39.42 2 1 -github.com/alecthomas/participle/v2/grammar.go:39.42,41.18 2 1 -github.com/alecthomas/participle/v2/grammar.go:41.18,43.5 1 0 -github.com/alecthomas/participle/v2/grammar.go:44.4,44.81 1 1 -github.com/alecthomas/participle/v2/grammar.go:47.2,47.12 1 1 -github.com/alecthomas/participle/v2/grammar.go:50.66,51.27 1 1 -github.com/alecthomas/participle/v2/grammar.go:51.27,52.48 1 1 -github.com/alecthomas/participle/v2/grammar.go:52.48,54.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:55.3,55.69 1 1 -github.com/alecthomas/participle/v2/grammar.go:57.2,57.12 1 1 -github.com/alecthomas/participle/v2/grammar.go:61.84,63.33 2 1 -github.com/alecthomas/participle/v2/grammar.go:63.33,64.30 1 1 -github.com/alecthomas/participle/v2/grammar.go:64.30,66.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:67.3,67.16 1 1 -github.com/alecthomas/participle/v2/grammar.go:69.2,69.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:69.33,71.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:72.2,72.48 1 1 -github.com/alecthomas/participle/v2/grammar.go:72.48,74.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:75.2,75.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:76.34,78.33 2 0 -github.com/alecthomas/participle/v2/grammar.go:78.33,80.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:81.3,81.14 1 0 -github.com/alecthomas/participle/v2/grammar.go:83.22,85.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:85.17,87.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:88.3,90.29 3 1 -github.com/alecthomas/participle/v2/grammar.go:90.29,92.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:93.3,93.48 1 1 -github.com/alecthomas/participle/v2/grammar.go:93.48,93.78 1 1 -github.com/alecthomas/participle/v2/grammar.go:94.3,95.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:95.17,97.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:98.3,98.15 1 1 -github.com/alecthomas/participle/v2/grammar.go:98.15,100.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:101.3,101.46 1 1 -github.com/alecthomas/participle/v2/grammar.go:101.46,103.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:104.3,105.18 2 1 -github.com/alecthomas/participle/v2/grammar.go:107.2,107.96 1 0 -github.com/alecthomas/participle/v2/grammar.go:110.80,112.6 2 1 -github.com/alecthomas/participle/v2/grammar.go:112.6,114.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:114.17,116.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:117.3,117.15 1 1 -github.com/alecthomas/participle/v2/grammar.go:117.15,119.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:120.3,121.51 2 1 -github.com/alecthomas/participle/v2/grammar.go:121.51,122.9 1 1 -github.com/alecthomas/participle/v2/grammar.go:124.3,125.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:125.17,127.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:129.2,129.25 1 1 -github.com/alecthomas/participle/v2/grammar.go:129.25,131.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:132.2,132.17 1 1 -github.com/alecthomas/participle/v2/grammar.go:135.77,139.6 3 1 -github.com/alecthomas/participle/v2/grammar.go:139.6,140.46 1 1 -github.com/alecthomas/participle/v2/grammar.go:140.46,142.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:142.9,142.37 1 1 -github.com/alecthomas/participle/v2/grammar.go:142.37,143.14 1 1 -github.com/alecthomas/participle/v2/grammar.go:145.3,146.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:146.17,148.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:149.3,149.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:149.18,150.14 1 1 -github.com/alecthomas/participle/v2/grammar.go:152.3,152.25 1 1 -github.com/alecthomas/participle/v2/grammar.go:152.25,155.4 2 1 -github.com/alecthomas/participle/v2/grammar.go:155.9,158.4 2 1 -github.com/alecthomas/participle/v2/grammar.go:160.2,160.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:160.22,162.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:163.2,163.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:163.22,165.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:166.2,166.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:169.103,171.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:171.16,173.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:174.2,174.16 1 1 -github.com/alecthomas/participle/v2/grammar.go:175.11,176.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:177.55,178.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:179.16,180.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:181.11,182.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:183.11,184.35 1 1 -github.com/alecthomas/participle/v2/grammar.go:185.11,187.30 1 1 -github.com/alecthomas/participle/v2/grammar.go:188.21,189.34 1 1 -github.com/alecthomas/participle/v2/grammar.go:190.17,192.18 2 0 -github.com/alecthomas/participle/v2/grammar.go:193.10,194.19 1 1 -github.com/alecthomas/participle/v2/grammar.go:194.19,196.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:197.3,197.51 1 1 -github.com/alecthomas/participle/v2/grammar.go:201.92,203.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:203.16,205.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:206.2,206.37 1 1 -github.com/alecthomas/participle/v2/grammar.go:210.88,213.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:213.16,215.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:216.2,216.16 1 1 -github.com/alecthomas/participle/v2/grammar.go:217.11,218.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:219.11,220.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:221.11,222.34 1 1 -github.com/alecthomas/participle/v2/grammar.go:223.11,224.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:225.10,226.19 1 1 -github.com/alecthomas/participle/v2/grammar.go:228.2,229.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:233.76,236.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:236.16,238.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:239.2,240.23 2 1 -github.com/alecthomas/participle/v2/grammar.go:240.23,243.17 3 1 -github.com/alecthomas/participle/v2/grammar.go:243.17,245.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:246.3,246.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:248.2,249.144 2 1 -github.com/alecthomas/participle/v2/grammar.go:249.144,251.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:252.2,253.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:253.16,255.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:256.2,256.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:260.78,262.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:262.16,264.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:265.2,265.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:265.33,267.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:268.2,269.9 2 1 -github.com/alecthomas/participle/v2/grammar.go:269.9,271.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:272.2,272.59 1 1 -github.com/alecthomas/participle/v2/grammar.go:276.77,279.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:279.16,281.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:282.2,284.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:284.16,286.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:287.2,287.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:287.22,289.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:290.2,290.15 1 1 -github.com/alecthomas/participle/v2/grammar.go:294.79,297.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:297.16,299.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:300.2,302.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:302.16,304.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:305.2,305.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:305.22,307.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:308.2,308.15 1 1 -github.com/alecthomas/participle/v2/grammar.go:312.74,315.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:315.16,317.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:318.2,318.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:318.22,320.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:321.2,322.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:322.16,324.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:325.2,325.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:329.86,333.16 4 1 -github.com/alecthomas/participle/v2/grammar.go:333.16,335.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:336.2,336.19 1 1 -github.com/alecthomas/participle/v2/grammar.go:337.11,338.19 1 1 -github.com/alecthomas/participle/v2/grammar.go:339.11,340.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:341.10,342.61 1 1 -github.com/alecthomas/participle/v2/grammar.go:344.2,345.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:345.16,347.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:348.2,348.61 1 1 -github.com/alecthomas/participle/v2/grammar.go:352.77,354.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:354.16,356.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:357.2,358.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:358.16,360.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:361.2,361.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:361.22,363.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:364.2,364.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:370.77,373.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:373.16,375.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:376.2,376.29 1 1 -github.com/alecthomas/participle/v2/grammar.go:383.73,385.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:385.16,387.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:388.2,391.16 4 1 -github.com/alecthomas/participle/v2/grammar.go:391.16,393.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:394.2,394.23 1 1 -github.com/alecthomas/participle/v2/grammar.go:394.23,397.17 3 1 -github.com/alecthomas/participle/v2/grammar.go:397.17,399.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:400.3,400.34 1 1 -github.com/alecthomas/participle/v2/grammar.go:400.34,402.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:403.3,405.10 3 1 -github.com/alecthomas/participle/v2/grammar.go:405.10,407.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:409.2,409.57 1 1 -github.com/alecthomas/participle/v2/grammar.go:412.48,413.58 1 1 -github.com/alecthomas/participle/v2/grammar.go:413.58,415.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:416.2,416.10 1 1 -github.com/alecthomas/participle/v2/grammar.go:419.41,421.2 1 1 -github.com/alecthomas/participle/v2/map.go:24.51,25.38 1 1 -github.com/alecthomas/participle/v2/map.go:25.38,31.3 2 1 -github.com/alecthomas/participle/v2/map.go:37.38,38.21 1 1 -github.com/alecthomas/participle/v2/map.go:38.21,40.3 1 1 -github.com/alecthomas/participle/v2/map.go:41.2,41.54 1 1 -github.com/alecthomas/participle/v2/map.go:41.54,43.17 2 1 -github.com/alecthomas/participle/v2/map.go:43.17,45.4 1 0 -github.com/alecthomas/participle/v2/map.go:46.3,47.16 2 1 -github.com/alecthomas/participle/v2/map.go:51.40,55.14 4 1 -github.com/alecthomas/participle/v2/map.go:55.14,57.17 2 1 -github.com/alecthomas/participle/v2/map.go:57.17,59.4 1 0 -github.com/alecthomas/participle/v2/map.go:60.3,61.23 2 1 -github.com/alecthomas/participle/v2/map.go:63.2,63.17 1 1 -github.com/alecthomas/participle/v2/map.go:67.36,68.58 1 1 -github.com/alecthomas/participle/v2/map.go:68.58,71.3 2 1 -github.com/alecthomas/participle/v2/map.go:75.36,76.38 1 1 -github.com/alecthomas/participle/v2/map.go:76.38,79.3 2 1 -github.com/alecthomas/participle/v2/map.go:90.64,90.88 1 1 -github.com/alecthomas/participle/v2/map.go:92.82,94.16 2 1 -github.com/alecthomas/participle/v2/map.go:94.16,96.3 1 0 -github.com/alecthomas/participle/v2/map.go:97.2,97.40 1 1 -github.com/alecthomas/participle/v2/map.go:105.52,107.16 2 1 -github.com/alecthomas/participle/v2/map.go:107.16,109.3 1 0 -github.com/alecthomas/participle/v2/map.go:110.2,110.20 1 1 -github.com/alecthomas/participle/v2/nodes.go:43.47,44.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:44.17,46.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:47.2,47.36 1 1 -github.com/alecthomas/participle/v2/nodes.go:47.36,49.3 1 0 -github.com/alecthomas/participle/v2/nodes.go:49.8,51.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:59.39,59.57 1 0 -github.com/alecthomas/participle/v2/nodes.go:60.39,60.62 1 0 -github.com/alecthomas/participle/v2/nodes.go:62.101,67.16 5 1 -github.com/alecthomas/participle/v2/nodes.go:67.16,68.23 1 1 -github.com/alecthomas/participle/v2/nodes.go:68.23,70.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:71.3,71.18 1 0 -github.com/alecthomas/participle/v2/nodes.go:73.2,73.40 1 1 -github.com/alecthomas/participle/v2/nodes.go:82.36,82.54 1 0 -github.com/alecthomas/participle/v2/nodes.go:83.36,83.59 1 0 -github.com/alecthomas/participle/v2/nodes.go:85.98,88.58 3 1 -github.com/alecthomas/participle/v2/nodes.go:88.58,89.23 1 0 -github.com/alecthomas/participle/v2/nodes.go:89.23,91.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:92.3,92.18 1 0 -github.com/alecthomas/participle/v2/nodes.go:94.2,94.41 1 1 -github.com/alecthomas/participle/v2/nodes.go:103.35,103.53 1 0 -github.com/alecthomas/participle/v2/nodes.go:104.35,104.58 1 1 -github.com/alecthomas/participle/v2/nodes.go:106.97,109.16 3 1 -github.com/alecthomas/participle/v2/nodes.go:109.16,111.3 1 0 -github.com/alecthomas/participle/v2/nodes.go:112.2,112.22 1 1 -github.com/alecthomas/participle/v2/nodes.go:112.22,114.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:115.2,115.18 1 1 -github.com/alecthomas/participle/v2/nodes.go:128.40,134.50 3 1 -github.com/alecthomas/participle/v2/nodes.go:134.50,136.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:137.2,138.50 2 1 -github.com/alecthomas/participle/v2/nodes.go:138.50,140.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:141.2,142.36 2 1 -github.com/alecthomas/participle/v2/nodes.go:142.36,144.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:145.2,145.10 1 1 -github.com/alecthomas/participle/v2/nodes.go:148.35,148.53 1 1 -github.com/alecthomas/participle/v2/nodes.go:149.35,149.58 1 1 -github.com/alecthomas/participle/v2/nodes.go:151.97,157.50 6 1 -github.com/alecthomas/participle/v2/nodes.go:157.50,159.57 1 1 -github.com/alecthomas/participle/v2/nodes.go:159.57,167.4 6 1 -github.com/alecthomas/participle/v2/nodes.go:168.3,170.34 3 1 -github.com/alecthomas/participle/v2/nodes.go:171.8,171.23 1 1 -github.com/alecthomas/participle/v2/nodes.go:171.23,173.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:174.2,178.41 5 1 -github.com/alecthomas/participle/v2/nodes.go:181.76,182.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:182.28,184.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:185.2,186.53 2 1 -github.com/alecthomas/participle/v2/nodes.go:189.74,190.31 1 1 -github.com/alecthomas/participle/v2/nodes.go:190.31,192.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:193.2,194.53 2 1 -github.com/alecthomas/participle/v2/nodes.go:197.74,198.31 1 1 -github.com/alecthomas/participle/v2/nodes.go:198.31,200.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:201.2,201.65 1 1 -github.com/alecthomas/participle/v2/nodes.go:206.41,207.11 1 0 -github.com/alecthomas/participle/v2/nodes.go:208.22,209.13 1 0 -github.com/alecthomas/participle/v2/nodes.go:210.27,211.14 1 0 -github.com/alecthomas/participle/v2/nodes.go:212.28,213.14 1 0 -github.com/alecthomas/participle/v2/nodes.go:214.27,215.14 1 0 -github.com/alecthomas/participle/v2/nodes.go:216.26,217.14 1 0 -github.com/alecthomas/participle/v2/nodes.go:219.2,219.13 1 0 -github.com/alecthomas/participle/v2/nodes.go:242.35,242.53 1 1 -github.com/alecthomas/participle/v2/nodes.go:243.35,243.78 1 0 -github.com/alecthomas/participle/v2/nodes.go:244.97,249.16 4 1 -github.com/alecthomas/participle/v2/nodes.go:250.26,252.17 2 1 -github.com/alecthomas/participle/v2/nodes.go:252.17,254.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:255.3,255.20 1 1 -github.com/alecthomas/participle/v2/nodes.go:255.20,258.4 2 1 -github.com/alecthomas/participle/v2/nodes.go:259.3,259.18 1 1 -github.com/alecthomas/participle/v2/nodes.go:260.22,261.35 1 1 -github.com/alecthomas/participle/v2/nodes.go:262.27,263.10 1 1 -github.com/alecthomas/participle/v2/nodes.go:264.28,266.22 2 1 -github.com/alecthomas/participle/v2/nodes.go:267.27,269.22 2 1 -github.com/alecthomas/participle/v2/nodes.go:271.2,272.33 2 1 -github.com/alecthomas/participle/v2/nodes.go:272.33,275.17 3 1 -github.com/alecthomas/participle/v2/nodes.go:275.17,278.76 2 1 -github.com/alecthomas/participle/v2/nodes.go:278.76,281.33 2 1 -github.com/alecthomas/participle/v2/nodes.go:281.33,283.6 1 0 -github.com/alecthomas/participle/v2/nodes.go:284.5,285.13 2 1 -github.com/alecthomas/participle/v2/nodes.go:288.4,288.29 1 1 -github.com/alecthomas/participle/v2/nodes.go:288.29,291.5 2 1 -github.com/alecthomas/participle/v2/nodes.go:292.4,292.9 1 1 -github.com/alecthomas/participle/v2/nodes.go:294.3,296.15 3 1 -github.com/alecthomas/participle/v2/nodes.go:296.15,297.9 1 1 -github.com/alecthomas/participle/v2/nodes.go:301.2,302.30 2 1 -github.com/alecthomas/participle/v2/nodes.go:302.30,304.3 1 0 -github.com/alecthomas/participle/v2/nodes.go:306.2,306.34 1 1 -github.com/alecthomas/participle/v2/nodes.go:306.34,308.3 1 0 -github.com/alecthomas/participle/v2/nodes.go:310.2,310.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:310.28,312.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:313.2,313.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:322.44,322.62 1 0 -github.com/alecthomas/participle/v2/nodes.go:323.44,323.73 1 0 -github.com/alecthomas/participle/v2/nodes.go:325.106,332.40 6 1 -github.com/alecthomas/participle/v2/nodes.go:332.40,334.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:335.2,335.31 1 1 -github.com/alecthomas/participle/v2/nodes.go:343.41,343.59 1 0 -github.com/alecthomas/participle/v2/nodes.go:344.41,344.67 1 1 -github.com/alecthomas/participle/v2/nodes.go:346.103,353.28 3 1 -github.com/alecthomas/participle/v2/nodes.go:353.28,355.56 2 1 -github.com/alecthomas/participle/v2/nodes.go:355.56,357.29 1 1 -github.com/alecthomas/participle/v2/nodes.go:357.29,359.5 1 0 -github.com/alecthomas/participle/v2/nodes.go:362.4,362.39 1 1 -github.com/alecthomas/participle/v2/nodes.go:362.39,366.5 3 1 -github.com/alecthomas/participle/v2/nodes.go:367.9,367.26 1 1 -github.com/alecthomas/participle/v2/nodes.go:367.26,370.40 3 1 -github.com/alecthomas/participle/v2/nodes.go:370.40,371.115 1 0 -github.com/alecthomas/participle/v2/nodes.go:373.4,374.21 2 1 -github.com/alecthomas/participle/v2/nodes.go:377.2,377.23 1 1 -github.com/alecthomas/participle/v2/nodes.go:377.23,380.3 2 1 -github.com/alecthomas/participle/v2/nodes.go:381.2,381.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:391.38,391.56 1 1 -github.com/alecthomas/participle/v2/nodes.go:392.38,392.61 1 1 -github.com/alecthomas/participle/v2/nodes.go:394.100,396.35 2 1 -github.com/alecthomas/participle/v2/nodes.go:396.35,399.17 3 1 -github.com/alecthomas/participle/v2/nodes.go:399.17,401.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:402.3,402.19 1 1 -github.com/alecthomas/participle/v2/nodes.go:402.19,404.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:404.14,406.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:407.4,408.72 2 1 -github.com/alecthomas/participle/v2/nodes.go:413.3,413.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:413.17,415.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:417.2,417.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:426.37,426.55 1 0 -github.com/alecthomas/participle/v2/nodes.go:427.37,427.59 1 1 -github.com/alecthomas/participle/v2/nodes.go:429.99,433.14 4 1 -github.com/alecthomas/participle/v2/nodes.go:433.14,435.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:436.2,436.16 1 1 -github.com/alecthomas/participle/v2/nodes.go:436.16,438.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:439.2,439.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:439.14,441.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:442.2,442.37 1 1 -github.com/alecthomas/participle/v2/nodes.go:451.39,451.57 1 0 -github.com/alecthomas/participle/v2/nodes.go:452.39,452.92 1 1 -github.com/alecthomas/participle/v2/nodes.go:454.101,456.56 2 1 -github.com/alecthomas/participle/v2/nodes.go:456.56,458.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:459.2,459.25 1 1 -github.com/alecthomas/participle/v2/nodes.go:459.25,461.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:462.2,463.59 2 1 -github.com/alecthomas/participle/v2/nodes.go:473.37,473.55 1 0 -github.com/alecthomas/participle/v2/nodes.go:474.37,474.89 1 1 -github.com/alecthomas/participle/v2/nodes.go:476.99,478.36 2 1 -github.com/alecthomas/participle/v2/nodes.go:478.36,480.34 2 1 -github.com/alecthomas/participle/v2/nodes.go:480.34,482.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:482.9,484.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:485.3,485.54 1 1 -github.com/alecthomas/participle/v2/nodes.go:487.2,488.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:488.18,491.3 2 1 -github.com/alecthomas/participle/v2/nodes.go:492.2,492.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:499.38,499.56 1 0 -github.com/alecthomas/participle/v2/nodes.go:500.38,500.61 1 0 -github.com/alecthomas/participle/v2/nodes.go:502.100,508.18 4 1 -github.com/alecthomas/participle/v2/nodes.go:508.18,511.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:513.2,514.30 2 1 -github.com/alecthomas/participle/v2/nodes.go:514.30,517.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:520.2,521.58 2 1 -github.com/alecthomas/participle/v2/nodes.go:527.87,528.27 1 1 -github.com/alecthomas/participle/v2/nodes.go:528.27,529.75 1 1 -github.com/alecthomas/participle/v2/nodes.go:529.75,531.20 1 1 -github.com/alecthomas/participle/v2/nodes.go:531.20,533.5 1 0 -github.com/alecthomas/participle/v2/nodes.go:534.4,534.16 1 1 -github.com/alecthomas/participle/v2/nodes.go:538.3,538.27 1 1 -github.com/alecthomas/participle/v2/nodes.go:538.27,539.21 1 1 -github.com/alecthomas/participle/v2/nodes.go:539.21,541.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:542.4,543.12 2 1 -github.com/alecthomas/participle/v2/nodes.go:546.3,547.15 2 1 -github.com/alecthomas/participle/v2/nodes.go:548.79,550.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:550.18,552.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:553.4,554.15 2 1 -github.com/alecthomas/participle/v2/nodes.go:556.84,558.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:558.18,560.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:561.4,562.16 2 1 -github.com/alecthomas/participle/v2/nodes.go:564.21,565.29 1 1 -github.com/alecthomas/participle/v2/nodes.go:567.41,569.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:569.18,571.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:572.4,573.17 2 1 -github.com/alecthomas/participle/v2/nodes.go:576.3,576.23 1 1 -github.com/alecthomas/participle/v2/nodes.go:578.2,578.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:581.40,582.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:583.35,584.11 1 1 -github.com/alecthomas/participle/v2/nodes.go:585.37,586.12 1 1 -github.com/alecthomas/participle/v2/nodes.go:587.54,588.12 1 1 -github.com/alecthomas/participle/v2/nodes.go:589.54,590.12 1 1 -github.com/alecthomas/participle/v2/nodes.go:591.33,592.25 1 1 -github.com/alecthomas/participle/v2/nodes.go:594.2,594.44 1 0 -github.com/alecthomas/participle/v2/nodes.go:597.69,598.26 1 1 -github.com/alecthomas/participle/v2/nodes.go:598.26,600.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:601.2,601.32 1 1 -github.com/alecthomas/participle/v2/nodes.go:601.32,602.22 1 1 -github.com/alecthomas/participle/v2/nodes.go:602.22,604.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:605.3,607.13 3 0 -github.com/alecthomas/participle/v2/nodes.go:609.2,609.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:619.122,623.29 2 1 -github.com/alecthomas/participle/v2/nodes.go:623.29,624.16 1 1 -github.com/alecthomas/participle/v2/nodes.go:624.16,628.4 3 1 -github.com/alecthomas/participle/v2/nodes.go:628.9,630.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:633.2,634.21 2 1 -github.com/alecthomas/participle/v2/nodes.go:634.21,636.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:638.2,638.27 1 1 -github.com/alecthomas/participle/v2/nodes.go:638.27,641.3 2 1 -github.com/alecthomas/participle/v2/nodes.go:643.2,643.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:643.28,646.3 2 1 -github.com/alecthomas/participle/v2/nodes.go:648.2,648.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:648.17,649.50 1 1 -github.com/alecthomas/participle/v2/nodes.go:649.50,651.33 2 1 -github.com/alecthomas/participle/v2/nodes.go:651.33,653.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:654.4,655.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:655.18,657.5 1 0 -github.com/alecthomas/participle/v2/nodes.go:658.4,658.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:659.9,659.74 1 1 -github.com/alecthomas/participle/v2/nodes.go:659.74,660.33 1 1 -github.com/alecthomas/participle/v2/nodes.go:660.33,661.75 1 1 -github.com/alecthomas/participle/v2/nodes.go:661.75,663.6 1 0 -github.com/alecthomas/participle/v2/nodes.go:665.4,665.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:669.2,669.31 1 1 -github.com/alecthomas/participle/v2/nodes.go:669.31,671.100 2 1 -github.com/alecthomas/participle/v2/nodes.go:671.100,672.43 1 1 -github.com/alecthomas/participle/v2/nodes.go:672.43,674.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:675.4,675.33 1 1 -github.com/alecthomas/participle/v2/nodes.go:675.33,677.71 2 1 -github.com/alecthomas/participle/v2/nodes.go:677.71,679.6 1 0 -github.com/alecthomas/participle/v2/nodes.go:680.5,681.46 2 1 -github.com/alecthomas/participle/v2/nodes.go:681.46,683.6 1 1 -github.com/alecthomas/participle/v2/nodes.go:684.5,684.39 1 1 -github.com/alecthomas/participle/v2/nodes.go:686.9,688.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:688.18,690.5 1 0 -github.com/alecthomas/participle/v2/nodes.go:691.4,691.43 1 1 -github.com/alecthomas/participle/v2/nodes.go:693.3,693.13 1 1 -github.com/alecthomas/participle/v2/nodes.go:697.2,697.32 1 1 -github.com/alecthomas/participle/v2/nodes.go:697.32,699.17 2 1 -github.com/alecthomas/participle/v2/nodes.go:699.17,701.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:702.3,702.27 1 1 -github.com/alecthomas/participle/v2/nodes.go:702.27,704.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:705.3,706.32 2 1 -github.com/alecthomas/participle/v2/nodes.go:706.32,708.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:709.3,710.13 2 1 -github.com/alecthomas/participle/v2/nodes.go:715.2,715.25 1 1 -github.com/alecthomas/participle/v2/nodes.go:715.25,717.32 2 1 -github.com/alecthomas/participle/v2/nodes.go:717.32,719.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:720.3,720.71 1 1 -github.com/alecthomas/participle/v2/nodes.go:723.2,724.16 2 1 -github.com/alecthomas/participle/v2/nodes.go:724.16,726.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:727.2,727.26 1 1 -github.com/alecthomas/participle/v2/nodes.go:727.26,729.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:731.2,733.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:735.78,736.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:736.28,738.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:738.9,740.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:741.83,742.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:742.28,744.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:744.9,746.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:748.40,749.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:749.28,751.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:751.9,753.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:755.55,756.60 1 1 -github.com/alecthomas/participle/v2/nodes.go:756.60,758.9 2 1 -github.com/alecthomas/participle/v2/nodes.go:760.3,760.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:760.28,762.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:763.3,763.12 1 1 -github.com/alecthomas/participle/v2/nodes.go:765.10,766.85 1 0 -github.com/alecthomas/participle/v2/nodes.go:768.2,768.12 1 1 -github.com/alecthomas/participle/v2/options.go:20.41,21.38 1 1 -github.com/alecthomas/participle/v2/options.go:21.38,24.3 2 1 -github.com/alecthomas/participle/v2/options.go:41.33,42.38 1 1 -github.com/alecthomas/participle/v2/options.go:42.38,45.3 2 1 -github.com/alecthomas/participle/v2/options.go:52.47,53.38 1 1 -github.com/alecthomas/participle/v2/options.go:53.38,54.32 1 1 -github.com/alecthomas/participle/v2/options.go:54.32,56.4 1 1 -github.com/alecthomas/participle/v2/options.go:57.3,57.13 1 1 -github.com/alecthomas/participle/v2/options.go:72.80,73.38 1 1 -github.com/alecthomas/participle/v2/options.go:73.38,76.53 3 1 -github.com/alecthomas/participle/v2/options.go:76.53,78.4 1 0 -github.com/alecthomas/participle/v2/options.go:79.3,81.13 3 1 -github.com/alecthomas/participle/v2/options.go:99.40,100.38 1 1 -github.com/alecthomas/participle/v2/options.go:100.38,103.44 3 1 -github.com/alecthomas/participle/v2/options.go:103.44,105.4 1 0 -github.com/alecthomas/participle/v2/options.go:106.3,107.29 2 1 -github.com/alecthomas/participle/v2/options.go:107.29,109.4 1 1 -github.com/alecthomas/participle/v2/options.go:110.3,111.13 2 1 -github.com/alecthomas/participle/v2/options.go:119.37,120.31 1 1 -github.com/alecthomas/participle/v2/options.go:120.31,122.3 1 1 -github.com/alecthomas/participle/v2/options.go:128.41,129.31 1 1 -github.com/alecthomas/participle/v2/options.go:129.31,131.3 1 1 -github.com/alecthomas/participle/v2/options.go:151.58,152.31 1 1 -github.com/alecthomas/participle/v2/options.go:152.31,153.24 1 1 -github.com/alecthomas/participle/v2/options.go:153.24,157.4 1 1 -github.com/alecthomas/participle/v2/options.go:158.3,158.71 1 1 -github.com/alecthomas/participle/v2/options.go:164.45,165.31 1 1 -github.com/alecthomas/participle/v2/options.go:165.31,166.24 1 1 -github.com/alecthomas/participle/v2/options.go:166.24,168.4 1 1 -github.com/alecthomas/participle/v2/options.go:169.3,169.29 1 1 -github.com/alecthomas/participle/v2/parser.go:42.75,45.9 3 1 -github.com/alecthomas/participle/v2/parser.go:45.9,47.3 1 0 -github.com/alecthomas/participle/v2/parser.go:48.2,48.34 1 1 -github.com/alecthomas/participle/v2/parser.go:52.53,54.16 2 1 -github.com/alecthomas/participle/v2/parser.go:54.16,55.13 1 0 -github.com/alecthomas/participle/v2/parser.go:57.2,57.15 1 1 -github.com/alecthomas/participle/v2/parser.go:66.69,75.33 2 1 -github.com/alecthomas/participle/v2/parser.go:75.33,76.49 1 1 -github.com/alecthomas/participle/v2/parser.go:76.49,78.4 1 0 -github.com/alecthomas/participle/v2/parser.go:81.2,82.24 2 1 -github.com/alecthomas/participle/v2/parser.go:82.24,84.36 2 1 -github.com/alecthomas/participle/v2/parser.go:84.36,85.32 1 1 -github.com/alecthomas/participle/v2/parser.go:85.32,87.5 1 0 -github.com/alecthomas/participle/v2/parser.go:87.10,88.43 1 1 -github.com/alecthomas/participle/v2/parser.go:88.43,89.40 1 1 -github.com/alecthomas/participle/v2/parser.go:89.40,91.7 1 0 -github.com/alecthomas/participle/v2/parser.go:91.12,93.7 1 1 -github.com/alecthomas/participle/v2/parser.go:97.3,97.76 1 1 -github.com/alecthomas/participle/v2/parser.go:97.76,103.31 5 1 -github.com/alecthomas/participle/v2/parser.go:103.31,105.19 2 1 -github.com/alecthomas/participle/v2/parser.go:105.19,107.6 1 0 -github.com/alecthomas/participle/v2/parser.go:109.4,109.17 1 1 -github.com/alecthomas/participle/v2/parser.go:113.2,114.60 2 1 -github.com/alecthomas/participle/v2/parser.go:114.60,116.3 1 0 -github.com/alecthomas/participle/v2/parser.go:117.2,117.58 1 1 -github.com/alecthomas/participle/v2/parser.go:117.58,119.3 1 0 -github.com/alecthomas/participle/v2/parser.go:121.2,123.35 3 1 -github.com/alecthomas/participle/v2/parser.go:123.35,125.3 1 0 -github.com/alecthomas/participle/v2/parser.go:126.2,128.16 3 1 -github.com/alecthomas/participle/v2/parser.go:128.16,130.3 1 1 -github.com/alecthomas/participle/v2/parser.go:131.2,131.43 1 1 -github.com/alecthomas/participle/v2/parser.go:131.43,133.3 1 1 -github.com/alecthomas/participle/v2/parser.go:134.2,137.15 4 1 -github.com/alecthomas/participle/v2/parser.go:141.46,143.2 1 0 -github.com/alecthomas/participle/v2/parser.go:147.78,149.16 2 1 -github.com/alecthomas/participle/v2/parser.go:149.16,151.3 1 0 -github.com/alecthomas/participle/v2/parser.go:152.2,153.20 2 1 -github.com/alecthomas/participle/v2/parser.go:160.97,164.16 4 1 -github.com/alecthomas/participle/v2/parser.go:164.16,166.3 1 0 -github.com/alecthomas/participle/v2/parser.go:167.2,168.15 2 1 -github.com/alecthomas/participle/v2/parser.go:168.15,168.42 1 1 -github.com/alecthomas/participle/v2/parser.go:169.2,169.33 1 1 -github.com/alecthomas/participle/v2/parser.go:169.33,171.3 1 1 -github.com/alecthomas/participle/v2/parser.go:173.2,173.45 1 1 -github.com/alecthomas/participle/v2/parser.go:173.45,175.3 1 1 -github.com/alecthomas/participle/v2/parser.go:176.2,176.43 1 1 -github.com/alecthomas/participle/v2/parser.go:179.48,181.39 2 1 -github.com/alecthomas/participle/v2/parser.go:181.39,182.29 1 1 -github.com/alecthomas/participle/v2/parser.go:182.29,184.4 1 1 -github.com/alecthomas/participle/v2/parser.go:188.86,190.16 2 1 -github.com/alecthomas/participle/v2/parser.go:190.16,192.3 1 0 -github.com/alecthomas/participle/v2/parser.go:193.2,193.45 1 1 -github.com/alecthomas/participle/v2/parser.go:200.99,201.20 1 1 -github.com/alecthomas/participle/v2/parser.go:201.20,203.3 1 1 -github.com/alecthomas/participle/v2/parser.go:204.2,205.16 2 1 -github.com/alecthomas/participle/v2/parser.go:205.16,207.3 1 0 -github.com/alecthomas/participle/v2/parser.go:208.2,208.33 1 1 -github.com/alecthomas/participle/v2/parser.go:215.102,217.50 2 1 -github.com/alecthomas/participle/v2/parser.go:217.50,219.3 1 1 -github.com/alecthomas/participle/v2/parser.go:219.8,221.3 1 1 -github.com/alecthomas/participle/v2/parser.go:222.2,222.16 1 1 -github.com/alecthomas/participle/v2/parser.go:222.16,224.3 1 0 -github.com/alecthomas/participle/v2/parser.go:225.2,225.33 1 1 -github.com/alecthomas/participle/v2/parser.go:232.101,234.49 2 0 -github.com/alecthomas/participle/v2/parser.go:234.49,236.3 1 0 -github.com/alecthomas/participle/v2/parser.go:236.8,238.3 1 0 -github.com/alecthomas/participle/v2/parser.go:239.2,239.16 1 0 -github.com/alecthomas/participle/v2/parser.go:239.16,241.3 1 0 -github.com/alecthomas/participle/v2/parser.go:242.2,242.33 1 0 -github.com/alecthomas/participle/v2/parser.go:245.89,247.16 2 1 -github.com/alecthomas/participle/v2/parser.go:247.16,249.34 1 1 -github.com/alecthomas/participle/v2/parser.go:249.34,252.4 2 0 -github.com/alecthomas/participle/v2/parser.go:253.3,253.13 1 1 -github.com/alecthomas/participle/v2/parser.go:255.2,256.40 2 1 -github.com/alecthomas/participle/v2/parser.go:256.40,258.34 2 1 -github.com/alecthomas/participle/v2/parser.go:258.34,261.4 2 1 -github.com/alecthomas/participle/v2/parser.go:262.3,262.13 1 1 -github.com/alecthomas/participle/v2/parser.go:265.2,265.33 1 1 -github.com/alecthomas/participle/v2/parser.go:265.33,267.3 1 1 -github.com/alecthomas/participle/v2/parser.go:268.2,268.12 1 1 -github.com/alecthomas/participle/v2/parser.go:271.90,272.16 1 1 -github.com/alecthomas/participle/v2/parser.go:272.16,274.3 1 0 -github.com/alecthomas/participle/v2/parser.go:275.2,276.53 2 1 -github.com/alecthomas/participle/v2/parser.go:276.53,278.3 1 1 -github.com/alecthomas/participle/v2/parser.go:279.2,279.16 1 1 -github.com/alecthomas/participle/v2/parser.go:279.16,281.3 1 1 -github.com/alecthomas/participle/v2/parser.go:282.2,282.15 1 1 -github.com/alecthomas/participle/v2/parser.go:282.15,285.3 2 1 -github.com/alecthomas/participle/v2/parser.go:286.2,286.12 1 1 -github.com/alecthomas/participle/v2/parser.go:289.81,290.59 1 1 -github.com/alecthomas/participle/v2/parser.go:290.59,291.23 1 1 -github.com/alecthomas/participle/v2/parser.go:291.23,293.4 1 0 -github.com/alecthomas/participle/v2/parser.go:293.9,295.4 1 1 -github.com/alecthomas/participle/v2/parser.go:296.3,296.31 1 1 -github.com/alecthomas/participle/v2/parser.go:298.2,299.39 2 0 -github.com/alecthomas/participle/v2/parser.go:299.39,301.3 1 0 -github.com/alecthomas/participle/v2/parser.go:302.2,302.12 1 0 -github.com/alecthomas/participle/v2/parser.go:305.56,308.32 3 1 -github.com/alecthomas/participle/v2/parser.go:308.32,310.10 2 1 -github.com/alecthomas/participle/v2/parser.go:310.10,311.61 1 0 -github.com/alecthomas/participle/v2/parser.go:313.3,313.38 1 1 -github.com/alecthomas/participle/v2/parser.go:315.2,315.19 1 1 -github.com/alecthomas/participle/v2/parser.go:318.65,320.35 2 1 -github.com/alecthomas/participle/v2/parser.go:320.35,322.3 1 0 -github.com/alecthomas/participle/v2/parser.go:323.2,323.108 1 1 -github.com/alecthomas/participle/v2/parser.go:323.108,325.3 1 0 -github.com/alecthomas/participle/v2/parser.go:326.2,327.22 2 1 -github.com/alecthomas/participle/v2/parser.go:327.22,330.3 2 1 -github.com/alecthomas/participle/v2/parser.go:331.2,331.22 1 1 -github.com/alecthomas/participle/v2/parser.go:331.22,333.3 1 0 -github.com/alecthomas/participle/v2/parser.go:334.2,334.23 1 1 -github.com/alecthomas/participle/v2/recovery.go:46.40,47.24 1 1 -github.com/alecthomas/participle/v2/recovery.go:47.24,49.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:50.2,50.24 1 1 -github.com/alecthomas/participle/v2/recovery.go:50.24,52.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:53.2,54.37 2 1 -github.com/alecthomas/participle/v2/recovery.go:54.37,56.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:57.2,57.12 1 1 -github.com/alecthomas/participle/v2/recovery.go:61.40,62.24 1 1 -github.com/alecthomas/participle/v2/recovery.go:62.24,64.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:65.2,65.20 1 1 -github.com/alecthomas/participle/v2/recovery.go:91.53,96.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:100.52,105.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:108.83,111.2 2 1 -github.com/alecthomas/participle/v2/recovery.go:113.120,115.33 2 1 -github.com/alecthomas/participle/v2/recovery.go:115.33,117.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:120.2,120.6 1 1 -github.com/alecthomas/participle/v2/recovery.go:120.6,122.18 2 1 -github.com/alecthomas/participle/v2/recovery.go:122.18,124.4 1 1 -github.com/alecthomas/participle/v2/recovery.go:125.3,125.27 1 1 -github.com/alecthomas/participle/v2/recovery.go:125.27,126.26 1 1 -github.com/alecthomas/participle/v2/recovery.go:126.26,128.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:130.4,131.25 2 1 -github.com/alecthomas/participle/v2/recovery.go:131.25,133.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:134.4,134.28 1 1 -github.com/alecthomas/participle/v2/recovery.go:136.3,136.13 1 1 -github.com/alecthomas/participle/v2/recovery.go:158.76,163.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:166.87,169.2 2 1 -github.com/alecthomas/participle/v2/recovery.go:171.129,173.34 2 1 -github.com/alecthomas/participle/v2/recovery.go:173.34,175.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:178.2,179.42 2 1 -github.com/alecthomas/participle/v2/recovery.go:179.42,181.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:186.2,187.23 2 1 -github.com/alecthomas/participle/v2/recovery.go:211.89,217.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:220.97,223.2 2 1 -github.com/alecthomas/participle/v2/recovery.go:225.127,229.32 3 1 -github.com/alecthomas/participle/v2/recovery.go:229.32,232.3 2 1 -github.com/alecthomas/participle/v2/recovery.go:235.2,242.6 4 1 -github.com/alecthomas/participle/v2/recovery.go:242.6,244.18 2 1 -github.com/alecthomas/participle/v2/recovery.go:244.18,246.4 1 1 -github.com/alecthomas/participle/v2/recovery.go:249.3,249.57 1 1 -github.com/alecthomas/participle/v2/recovery.go:249.57,250.30 1 1 -github.com/alecthomas/participle/v2/recovery.go:250.30,252.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:252.10,254.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:258.3,258.27 1 1 -github.com/alecthomas/participle/v2/recovery.go:258.27,259.34 1 1 -github.com/alecthomas/participle/v2/recovery.go:259.34,261.19 2 1 -github.com/alecthomas/participle/v2/recovery.go:261.19,264.27 2 1 -github.com/alecthomas/participle/v2/recovery.go:264.27,266.7 1 1 -github.com/alecthomas/participle/v2/recovery.go:267.6,267.30 1 1 -github.com/alecthomas/participle/v2/recovery.go:269.10,269.38 1 1 -github.com/alecthomas/participle/v2/recovery.go:269.38,271.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:271.10,275.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:278.3,278.13 1 1 -github.com/alecthomas/participle/v2/recovery.go:296.67,301.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:303.120,305.33 2 1 -github.com/alecthomas/participle/v2/recovery.go:305.33,307.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:309.2,309.6 1 1 -github.com/alecthomas/participle/v2/recovery.go:309.6,311.18 2 1 -github.com/alecthomas/participle/v2/recovery.go:311.18,313.4 1 1 -github.com/alecthomas/participle/v2/recovery.go:314.3,314.26 1 1 -github.com/alecthomas/participle/v2/recovery.go:314.26,315.26 1 1 -github.com/alecthomas/participle/v2/recovery.go:315.26,317.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:318.4,319.25 2 1 -github.com/alecthomas/participle/v2/recovery.go:319.25,321.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:322.4,322.28 1 1 -github.com/alecthomas/participle/v2/recovery.go:324.3,324.13 1 1 -github.com/alecthomas/participle/v2/recovery.go:334.71,336.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:338.120,341.40 2 1 -github.com/alecthomas/participle/v2/recovery.go:341.40,343.16 2 1 -github.com/alecthomas/participle/v2/recovery.go:343.16,345.4 1 1 -github.com/alecthomas/participle/v2/recovery.go:347.3,347.36 1 1 -github.com/alecthomas/participle/v2/recovery.go:349.2,349.24 1 1 -github.com/alecthomas/participle/v2/recovery.go:355.58,357.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:360.63,362.2 1 1 -github.com/alecthomas/participle/v2/struct.go:22.54,24.16 2 1 -github.com/alecthomas/participle/v2/struct.go:24.16,26.3 1 0 -github.com/alecthomas/participle/v2/struct.go:27.2,31.27 2 1 -github.com/alecthomas/participle/v2/struct.go:31.27,34.17 3 1 -github.com/alecthomas/participle/v2/struct.go:34.17,36.4 1 0 -github.com/alecthomas/participle/v2/struct.go:38.2,38.18 1 1 -github.com/alecthomas/participle/v2/struct.go:42.38,44.2 1 1 -github.com/alecthomas/participle/v2/struct.go:52.48,54.2 1 1 -github.com/alecthomas/participle/v2/struct.go:56.60,57.29 1 1 -github.com/alecthomas/participle/v2/struct.go:57.29,59.3 1 0 -github.com/alecthomas/participle/v2/struct.go:60.2,63.3 1 1 -github.com/alecthomas/participle/v2/struct.go:66.52,69.6 3 1 -github.com/alecthomas/participle/v2/struct.go:69.6,71.19 2 1 -github.com/alecthomas/participle/v2/struct.go:71.19,74.4 2 1 -github.com/alecthomas/participle/v2/struct.go:75.3,76.28 2 1 -github.com/alecthomas/participle/v2/struct.go:76.28,79.4 2 1 -github.com/alecthomas/participle/v2/struct.go:80.3,84.17 5 1 -github.com/alecthomas/participle/v2/struct.go:84.17,86.4 1 0 -github.com/alecthomas/participle/v2/struct.go:90.52,92.18 2 1 -github.com/alecthomas/participle/v2/struct.go:92.18,95.3 2 1 -github.com/alecthomas/participle/v2/struct.go:96.2,96.31 1 1 -github.com/alecthomas/participle/v2/struct.go:96.31,99.3 2 1 -github.com/alecthomas/participle/v2/struct.go:100.2,105.16 6 1 -github.com/alecthomas/participle/v2/struct.go:105.16,107.3 1 0 -github.com/alecthomas/participle/v2/struct.go:108.2,108.17 1 1 -github.com/alecthomas/participle/v2/struct.go:111.54,112.47 1 1 -github.com/alecthomas/participle/v2/struct.go:112.47,114.3 1 1 -github.com/alecthomas/participle/v2/struct.go:115.2,115.26 1 1 -github.com/alecthomas/participle/v2/struct.go:119.67,120.32 1 1 -github.com/alecthomas/participle/v2/struct.go:120.32,122.3 1 0 -github.com/alecthomas/participle/v2/struct.go:123.2,124.36 2 1 -github.com/alecthomas/participle/v2/struct.go:124.36,126.10 2 1 -github.com/alecthomas/participle/v2/struct.go:127.55,129.18 2 1 -github.com/alecthomas/participle/v2/struct.go:129.18,131.5 1 0 -github.com/alecthomas/participle/v2/struct.go:132.4,132.33 1 1 -github.com/alecthomas/participle/v2/struct.go:132.33,134.5 1 1 -github.com/alecthomas/participle/v2/struct.go:136.24,137.12 1 1 -github.com/alecthomas/participle/v2/struct.go:139.31,140.30 1 1 -github.com/alecthomas/participle/v2/struct.go:143.2,143.8 1 1 -github.com/alecthomas/participle/v2/struct.go:153.57,160.61 4 1 -github.com/alecthomas/participle/v2/struct.go:160.61,162.46 1 1 -github.com/alecthomas/participle/v2/struct.go:162.46,164.4 1 0 -github.com/alecthomas/participle/v2/struct.go:166.2,166.14 1 1 -github.com/alecthomas/participle/v2/struct.go:169.48,174.18 5 1 -github.com/alecthomas/participle/v2/struct.go:174.18,176.3 1 0 -github.com/alecthomas/participle/v2/struct.go:177.2,181.4 1 1 -github.com/alecthomas/participle/v2/struct.go:184.67,186.20 1 1 -github.com/alecthomas/participle/v2/struct.go:187.20,191.14 2 1 -github.com/alecthomas/participle/v2/struct.go:192.22,194.17 2 1 -github.com/alecthomas/participle/v2/struct.go:194.17,196.4 1 0 -github.com/alecthomas/participle/v2/struct.go:197.3,198.66 2 1 -github.com/alecthomas/participle/v2/struct.go:198.66,200.4 1 1 -github.com/alecthomas/participle/v2/struct.go:201.25,202.52 1 0 -github.com/alecthomas/participle/v2/struct.go:204.10,204.10 0 1 -github.com/alecthomas/participle/v2/struct.go:206.2,206.19 1 1 -github.com/alecthomas/participle/v2/validate.go:11.29,15.56 3 1 -github.com/alecthomas/participle/v2/validate.go:15.56,16.30 1 1 -github.com/alecthomas/participle/v2/validate.go:16.30,17.41 1 1 -github.com/alecthomas/participle/v2/validate.go:17.41,19.5 1 1 -github.com/alecthomas/participle/v2/validate.go:20.4,21.15 2 1 -github.com/alecthomas/participle/v2/validate.go:21.15,23.5 1 1 -github.com/alecthomas/participle/v2/validate.go:25.3,26.16 2 1 -github.com/alecthomas/participle/v2/validate.go:30.48,31.15 1 1 -github.com/alecthomas/participle/v2/validate.go:31.15,31.32 1 1 -github.com/alecthomas/participle/v2/validate.go:32.2,33.61 2 1 -github.com/alecthomas/participle/v2/validate.go:33.61,34.12 1 1 -github.com/alecthomas/participle/v2/validate.go:34.12,36.4 1 1 -github.com/alecthomas/participle/v2/validate.go:37.3,37.24 1 1 -github.com/alecthomas/participle/v2/validate.go:38.15,39.25 1 1 -github.com/alecthomas/participle/v2/validate.go:39.25,41.5 1 1 -github.com/alecthomas/participle/v2/validate.go:43.18,44.15 1 1 -github.com/alecthomas/participle/v2/validate.go:44.15,45.18 1 1 -github.com/alecthomas/participle/v2/validate.go:48.3,48.14 1 1 -github.com/alecthomas/participle/v2/validate.go:48.14,50.4 1 0 -github.com/alecthomas/participle/v2/validate.go:51.3,52.16 2 1 -github.com/alecthomas/participle/v2/validate.go:54.2,54.8 1 1 -github.com/alecthomas/participle/v2/validate.go:57.30,59.2 1 1 -github.com/alecthomas/participle/v2/visit.go:8.73,9.33 1 1 -github.com/alecthomas/participle/v2/visit.go:9.33,10.24 1 1 -github.com/alecthomas/participle/v2/visit.go:11.21,12.34 1 1 -github.com/alecthomas/participle/v2/visit.go:12.34,13.49 1 1 -github.com/alecthomas/participle/v2/visit.go:13.49,15.6 1 0 -github.com/alecthomas/participle/v2/visit.go:17.4,17.14 1 1 -github.com/alecthomas/participle/v2/visit.go:18.15,19.33 1 1 -github.com/alecthomas/participle/v2/visit.go:20.16,21.14 1 1 -github.com/alecthomas/participle/v2/visit.go:22.15,23.47 1 1 -github.com/alecthomas/participle/v2/visit.go:23.47,24.50 1 1 -github.com/alecthomas/participle/v2/visit.go:24.50,26.6 1 0 -github.com/alecthomas/participle/v2/visit.go:28.4,28.14 1 1 -github.com/alecthomas/participle/v2/visit.go:29.18,30.49 1 1 -github.com/alecthomas/participle/v2/visit.go:30.49,32.5 1 0 -github.com/alecthomas/participle/v2/visit.go:33.4,33.21 1 1 -github.com/alecthomas/participle/v2/visit.go:33.21,35.5 1 1 -github.com/alecthomas/participle/v2/visit.go:36.4,36.14 1 1 -github.com/alecthomas/participle/v2/visit.go:37.19,38.14 1 1 -github.com/alecthomas/participle/v2/visit.go:39.17,40.33 1 1 -github.com/alecthomas/participle/v2/visit.go:41.19,42.14 1 1 -github.com/alecthomas/participle/v2/visit.go:43.18,44.33 1 1 -github.com/alecthomas/participle/v2/visit.go:45.17,46.14 1 1 -github.com/alecthomas/participle/v2/visit.go:47.15,48.33 1 1 -github.com/alecthomas/participle/v2/visit.go:49.24,50.33 1 1 -github.com/alecthomas/participle/v2/visit.go:51.11,52.31 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:32.75,33.23 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:34.18,50.35 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:50.35,52.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:53.3,53.19 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:55.24,56.58 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:56.58,57.9 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:59.3,64.21 6 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:66.24,68.36 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:68.36,69.13 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:69.13,71.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:72.4,72.33 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:74.3,74.11 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:76.27,78.49 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:78.49,80.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:82.22,84.29 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:84.29,85.13 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:85.13,87.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:88.4,88.33 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:90.3,90.11 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:92.18,93.23 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:94.12,95.22 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:96.12,97.21 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:98.12,99.20 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:101.3,101.10 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:102.21,104.34 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:104.34,106.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:106.10,108.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:110.23,111.39 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:113.24,114.47 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:116.22,117.48 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:119.11,120.25 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:123.3,123.25 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:123.25,125.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:126.3,126.17 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:126.17,128.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:130.10,131.24 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:133.2,133.8 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:136.83,137.23 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:138.18,139.35 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:139.35,141.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:142.3,142.35 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:142.35,144.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:145.3,145.35 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:145.35,146.60 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:146.60,148.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:150.24,151.79 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:152.24,153.36 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:153.36,155.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:156.27,157.48 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:158.22,159.29 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:159.29,161.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:162.18,163.19 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:163.19,166.4 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:166.9,166.28 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:166.28,168.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:168.9,170.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:171.10,172.24 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:174.2,174.8 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:177.13,187.11 8 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:187.11,191.3 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:193.2,194.16 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:194.16,195.13 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:198.2,202.23 4 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:202.23,204.17 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:204.17,205.14 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:208.3,208.19 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:208.19,210.18 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:210.18,211.15 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:213.9,215.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:217.3,217.64 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:218.8,221.3 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:224.36,226.16 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:226.16,228.3 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:230.2,230.26 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:230.26,233.17 3 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:233.17,235.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:236.3,237.17 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:237.17,239.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:240.3,240.61 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:243.2,243.8 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:26.79,37.2 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:39.100,49.2 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:51.101,53.2 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:55.99,58.16 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:58.16,60.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:61.2,61.42 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:76.63,77.21 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:77.21,79.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:80.2,85.20 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:86.14,87.100 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:87.100,90.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:90.9,90.107 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:90.107,93.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:93.9,93.106 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:93.106,96.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:96.9,96.106 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:96.106,99.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:99.9,99.104 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:99.104,102.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:102.9,102.108 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:102.108,105.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:105.9,105.111 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:105.111,108.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:110.2,110.19 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:110.19,112.23 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:112.23,114.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:115.3,115.90 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:117.2,125.8 5 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:128.65,130.39 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:130.39,132.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:133.2,133.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:137.84,139.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:139.34,140.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:140.32,142.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:143.3,143.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:146.2,146.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:146.34,147.42 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:147.42,149.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:150.3,150.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:153.2,153.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:153.34,154.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:154.18,156.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:157.3,161.27 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:161.27,163.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:163.9,165.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:166.3,166.10 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:167.34,168.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:169.40,170.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:172.3,172.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:175.2,175.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:175.34,176.31 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:176.31,178.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:179.3,179.31 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:179.31,181.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:182.3,182.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:185.2,185.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:185.34,187.15 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:187.15,190.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:191.3,191.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:194.2,194.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:194.34,195.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:195.18,196.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:196.32,198.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:198.10,200.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:202.3,202.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:205.2,205.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:205.34,206.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:206.28,208.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:209.3,209.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:209.28,211.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:212.3,212.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:212.28,214.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:215.3,215.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:217.2,218.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:218.14,220.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:221.2,223.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:227.84,229.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:229.34,230.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:230.18,232.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:233.3,234.29 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:234.29,236.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:237.3,237.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:240.2,240.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:240.34,241.31 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:241.31,243.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:244.3,244.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:247.2,247.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:247.34,248.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:248.18,250.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:251.3,252.10 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:253.31,254.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:256.3,256.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:259.2,259.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:259.34,260.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:260.18,261.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:261.32,263.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:263.10,265.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:267.3,267.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:270.2,270.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:270.34,271.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:271.32,273.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:274.3,274.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:277.2,277.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:277.34,278.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:278.28,280.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:281.3,281.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:281.28,283.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:284.3,284.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:287.2,287.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:287.34,289.15 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:289.15,292.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:293.3,293.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:296.2,296.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:296.34,297.31 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:297.31,299.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:300.3,300.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:303.2,303.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:303.34,304.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:304.28,306.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:307.3,307.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:307.18,308.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:308.32,310.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:310.10,312.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:314.3,314.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:317.2,317.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:317.34,318.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:318.28,320.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:321.3,321.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:321.28,323.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:324.3,324.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:324.28,326.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:327.3,327.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:329.2,330.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:330.14,332.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:333.2,335.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:339.83,341.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:341.34,342.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:342.18,344.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:345.3,346.10 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:347.31,348.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:349.18,350.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:351.31,352.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:354.3,354.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:357.2,357.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:357.34,358.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:358.18,360.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:361.3,362.10 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:363.31,364.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:365.31,366.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:367.18,368.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:369.31,370.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:372.3,372.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:375.2,375.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:375.34,376.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:376.18,377.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:377.32,379.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:379.10,381.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:383.3,383.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:386.2,386.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:386.34,387.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:387.28,389.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:390.3,390.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:390.28,392.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:393.3,393.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:395.2,396.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:396.14,398.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:399.2,401.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:405.83,407.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:407.34,408.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:408.18,410.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:411.3,412.10 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:413.31,414.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:415.31,416.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:417.31,418.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:419.31,420.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:422.3,422.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:425.2,425.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:425.34,426.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:426.28,428.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:429.3,429.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:429.18,430.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:430.32,432.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:432.10,434.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:436.3,436.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:438.2,439.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:439.14,441.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:442.2,444.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:448.81,449.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:449.32,452.3 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:453.2,453.8 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:457.85,459.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:459.34,460.58 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:460.58,462.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:463.3,463.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:466.2,466.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:466.34,467.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:467.18,469.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:470.3,474.27 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:474.27,476.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:476.9,478.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:479.3,479.10 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:480.35,481.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:482.41,483.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:485.3,485.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:488.2,488.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:488.34,489.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:489.18,490.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:490.32,492.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:492.10,494.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:496.3,496.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:499.2,499.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:499.34,500.33 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:500.33,502.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:503.3,503.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:506.2,506.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:506.34,507.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:507.28,509.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:510.3,510.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:510.28,512.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:513.3,513.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:513.28,515.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:516.3,516.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:518.2,519.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:519.14,521.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:522.2,524.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:528.88,530.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:530.34,531.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:531.18,533.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:534.3,535.30 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:535.30,537.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:538.3,538.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:541.2,541.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:541.34,542.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:542.28,544.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:545.3,545.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:545.18,546.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:546.32,548.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:548.10,550.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:552.3,552.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:554.2,555.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:555.14,557.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:558.2,560.8 3 0 diff --git a/example/vendor/github.com/alecthomas/participle/v2/doc.go b/example/vendor/github.com/alecthomas/participle/v2/doc.go deleted file mode 100644 index da12883..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/doc.go +++ /dev/null @@ -1,68 +0,0 @@ -// Package participle constructs parsers from definitions in struct tags and parses directly into -// those structs. The approach is philosophically similar to how other marshallers work in Go, -// "unmarshalling" an instance of a grammar into a struct. -// -// The supported annotation syntax is: -// -// - `@` Capture expression into the field. -// - `@@` Recursively capture using the fields own type. -// - `` Match named lexer token. -// - `( ... )` Group. -// - `"..."` Match the literal (note that the lexer must emit tokens matching this literal exactly). -// - `"...":` Match the literal, specifying the exact lexer token type to match. -// - ` ...` Match expressions. -// - ` | ` Match one of the alternatives. -// -// The following modifiers can be used after any expression: -// -// - `*` Expression can match zero or more times. -// - `+` Expression must match one or more times. -// - `?` Expression can match zero or once. -// - `!` Require a non-empty match (this is useful with a sequence of optional matches eg. `("a"? "b"? "c"?)!`). -// -// Here's an example of an EBNF grammar. -// -// type Group struct { -// Expression *Expression `"(" @@ ")"` -// } -// -// type Option struct { -// Expression *Expression `"[" @@ "]"` -// } -// -// type Repetition struct { -// Expression *Expression `"{" @@ "}"` -// } -// -// type Literal struct { -// Start string `@String` // lexer.Lexer token "String" -// End string `("…" @String)?` -// } -// -// type Term struct { -// Name string ` @Ident` -// Literal *Literal `| @@` -// Group *Group `| @@` -// Option *Option `| @@` -// Repetition *Expression `| "(" @@ ")"` -// } -// -// type Sequence struct { -// Terms []*Term `@@+` -// } -// -// type Expression struct { -// Alternatives []*Sequence `@@ ("|" @@)*` -// } -// -// type Expressions []*Expression -// -// type Production struct { -// Name string `@Ident "="` -// Expressions Expressions `@@+ "."` -// } -// -// type EBNF struct { -// Productions []*Production `@@*` -// } -package participle diff --git a/example/vendor/github.com/alecthomas/participle/v2/ebnf.go b/example/vendor/github.com/alecthomas/participle/v2/ebnf.go deleted file mode 100644 index cfdb6fe..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/ebnf.go +++ /dev/null @@ -1,161 +0,0 @@ -package participle - -import ( - "fmt" - "strings" -) - -// String returns the EBNF for the grammar. -// -// Productions are always upper cased. Lexer tokens are always lower case. -func (p *Parser[G]) String() string { - return ebnf(p.typeNodes[p.rootType]) -} - -type ebnfp struct { - name string - out string -} - -func ebnf(n node) string { - outp := []*ebnfp{} - switch n.(type) { - case *strct: - buildEBNF(true, n, map[node]bool{}, nil, &outp) - out := []string{} - for _, p := range outp { - out = append(out, fmt.Sprintf("%s = %s .", p.name, p.out)) - } - return strings.Join(out, "\n") - - default: - out := &ebnfp{} - buildEBNF(true, n, map[node]bool{}, out, &outp) - return out.out - } -} - -func buildEBNF(root bool, n node, seen map[node]bool, p *ebnfp, outp *[]*ebnfp) { - switch n := n.(type) { - case *disjunction: - if !root { - p.out += "(" - } - for i, next := range n.nodes { - if i > 0 { - p.out += " | " - } - buildEBNF(false, next, seen, p, outp) - } - if !root { - p.out += ")" - } - - case *union: - name := strings.ToUpper(n.typ.Name()[:1]) + n.typ.Name()[1:] - if p != nil { - p.out += name - } - if seen[n] { - return - } - p = &ebnfp{name: name} - *outp = append(*outp, p) - seen[n] = true - for i, next := range n.disjunction.nodes { - if i > 0 { - p.out += " | " - } - buildEBNF(false, next, seen, p, outp) - } - - case *custom: - name := strings.ToUpper(n.typ.Name()[:1]) + n.typ.Name()[1:] - p.out += name - - case *strct: - name := strings.ToUpper(n.typ.Name()[:1]) + n.typ.Name()[1:] - if p != nil { - p.out += name - } - if seen[n] { - return - } - seen[n] = true - p = &ebnfp{name: name} - *outp = append(*outp, p) - buildEBNF(true, n.expr, seen, p, outp) - - case *sequence: - group := n.next != nil && !root - if group { - p.out += "(" - } - for n != nil { - buildEBNF(false, n.node, seen, p, outp) - n = n.next - if n != nil { - p.out += " " - } - } - if group { - p.out += ")" - } - - case *parseable: - p.out += n.t.Name() - - case *capture: - buildEBNF(false, n.node, seen, p, outp) - - case *reference: - p.out += "<" + strings.ToLower(n.identifier) + ">" - - case *negation: - p.out += "~" - buildEBNF(false, n.node, seen, p, outp) - - case *literal: - p.out += fmt.Sprintf("%q", n.s) - - case *group: - if child, ok := n.expr.(*group); ok && child.mode == groupMatchOnce { - buildEBNF(false, child.expr, seen, p, outp) - } else if child, ok := n.expr.(*capture); ok { - if grandchild, ok := child.node.(*group); ok && grandchild.mode == groupMatchOnce { - buildEBNF(false, grandchild.expr, seen, p, outp) - } else { - buildEBNF(false, n.expr, seen, p, outp) - } - } else { - buildEBNF(false, n.expr, seen, p, outp) - } - switch n.mode { - case groupMatchNonEmpty: - p.out += "!" - case groupMatchZeroOrOne: - p.out += "?" - case groupMatchZeroOrMore: - p.out += "*" - case groupMatchOneOrMore: - p.out += "+" - case groupMatchOnce: - } - - case *lookaheadGroup: - if !n.negative { - p.out += "(?= " - } else { - p.out += "(?! " - } - buildEBNF(true, n.expr, seen, p, outp) - p.out += ")" - - case *recoveryNode: - // Recovery wrapper is transparent for EBNF generation - buildEBNF(root, n.inner, seen, p, outp) - - default: - panic(fmt.Sprintf("unsupported node type %T", n)) - } -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/error.go b/example/vendor/github.com/alecthomas/participle/v2/error.go deleted file mode 100644 index bcd62a7..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/error.go +++ /dev/null @@ -1,102 +0,0 @@ -package participle - -import ( - "fmt" - - "github.com/alecthomas/participle/v2/lexer" -) - -// Error represents an error while parsing. -// -// The format of an Error is in the form "[:][::] ". -// -// The error will contain positional information if available. -type Error interface { - error - // Unadorned message. - Message() string - // Closest position to error location. - Position() lexer.Position -} - -// FormatError formats an error in the form "[:][::] " -func FormatError(err Error) string { - msg := "" - pos := err.Position() - if pos.Filename != "" { - msg += pos.Filename + ":" - } - if pos.Line != 0 || pos.Column != 0 { - msg += fmt.Sprintf("%d:%d:", pos.Line, pos.Column) - } - if msg != "" { - msg += " " + err.Message() - } else { - msg = err.Message() - } - return msg -} - -// UnexpectedTokenError is returned by Parse when an unexpected token is encountered. -// -// This is useful for composing parsers in order to detect when a sub-parser has terminated. -type UnexpectedTokenError struct { - Unexpected lexer.Token - Expect string - expectNode node // Usable instead of Expect, delays creating the string representation until necessary -} - -func (u *UnexpectedTokenError) Error() string { return FormatError(u) } - -func (u *UnexpectedTokenError) Message() string { // nolint: golint - var expected string - if u.expectNode != nil { - expected = fmt.Sprintf(" (expected %s)", u.expectNode) - } else if u.Expect != "" { - expected = fmt.Sprintf(" (expected %s)", u.Expect) - } - return fmt.Sprintf("unexpected token %q%s", u.Unexpected, expected) -} -func (u *UnexpectedTokenError) Position() lexer.Position { return u.Unexpected.Pos } // nolint: golint - -// ParseError is returned when a parse error occurs. -// -// It is useful for differentiating between parse errors and other errors such -// as lexing and IO errors. -type ParseError struct { - Msg string - Pos lexer.Position -} - -func (p *ParseError) Error() string { return FormatError(p) } -func (p *ParseError) Message() string { return p.Msg } -func (p *ParseError) Position() lexer.Position { return p.Pos } - -// Errorf creates a new Error at the given position. -func Errorf(pos lexer.Position, format string, args ...interface{}) Error { - return &ParseError{Msg: fmt.Sprintf(format, args...), Pos: pos} -} - -type wrappingParseError struct { - err error - ParseError -} - -func (w *wrappingParseError) Unwrap() error { return w.err } - -// Wrapf attempts to wrap an existing error in a new message. -// -// If "err" is a participle.Error, its positional information will be used and -// "pos" will be ignored. -// -// The returned error implements the Unwrap() method supported by the errors package. -func Wrapf(pos lexer.Position, err error, format string, args ...interface{}) Error { - var msg string - if perr, ok := err.(Error); ok { - pos = perr.Position() - msg = fmt.Sprintf("%s: %s", fmt.Sprintf(format, args...), perr.Message()) - } else { - msg = fmt.Sprintf("%s: %s", fmt.Sprintf(format, args...), err.Error()) - } - return &wrappingParseError{err: err, ParseError: ParseError{Msg: msg, Pos: pos}} -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/grammar.go b/example/vendor/github.com/alecthomas/participle/v2/grammar.go deleted file mode 100644 index 142a450..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/grammar.go +++ /dev/null @@ -1,464 +0,0 @@ -package participle - -import ( - "fmt" - "reflect" - "text/scanner" - - "github.com/alecthomas/participle/v2/lexer" -) - -type generatorContext struct { - lexer.Definition - typeNodes map[reflect.Type]node - symbolsToIDs map[lexer.TokenType]string - typeRecoveries map[reflect.Type][]RecoveryStrategy -} - -func newGeneratorContext(lex lexer.Definition) *generatorContext { - return &generatorContext{ - Definition: lex, - typeNodes: map[reflect.Type]node{}, - symbolsToIDs: lexer.SymbolsByRune(lex), - typeRecoveries: map[reflect.Type][]RecoveryStrategy{}, - } -} - -func (g *generatorContext) addRecoveryDefs(defs []recoveryDef) error { - for _, def := range defs { - // Normalize pointer types to match how we store type nodes - t := def.typ - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - g.typeRecoveries[t] = append(g.typeRecoveries[t], def.strategies...) - } - return nil -} - -func (g *generatorContext) addUnionDefs(defs []unionDef) error { - unionNodes := make([]*union, len(defs)) - for i, def := range defs { - if _, exists := g.typeNodes[def.typ]; exists { - return fmt.Errorf("duplicate definition for interface or union type %s", def.typ) - } - unionNode := &union{ - unionDef: def, - disjunction: disjunction{nodes: make([]node, 0, len(def.members))}, - } - g.typeNodes[def.typ], unionNodes[i] = unionNode, unionNode - } - for i, def := range defs { - unionNode := unionNodes[i] - for _, memberType := range def.members { - memberNode, err := g.parseType(memberType) - if err != nil { - return err - } - unionNode.disjunction.nodes = append(unionNode.disjunction.nodes, memberNode) - } - } - return nil -} - -func (g *generatorContext) addCustomDefs(defs []customDef) error { - for _, def := range defs { - if _, exists := g.typeNodes[def.typ]; exists { - return fmt.Errorf("duplicate definition for interface or union type %s", def.typ) - } - g.typeNodes[def.typ] = &custom{typ: def.typ, parseFn: def.parseFn} - } - return nil -} - -// Takes a type and builds a tree of nodes out of it. -func (g *generatorContext) parseType(t reflect.Type) (_ node, returnedError error) { - t = indirectType(t) - if n, ok := g.typeNodes[t]; ok { - if s, ok := n.(*strct); ok { - s.usages++ - } - return n, nil - } - if t.Implements(parseableType) { - return &parseable{t.Elem()}, nil - } - if reflect.PtrTo(t).Implements(parseableType) { - return &parseable{t}, nil - } - switch t.Kind() { // nolint: exhaustive - case reflect.Slice, reflect.Ptr: - t = indirectType(t.Elem()) - if t.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected a struct but got %T", t) - } - fallthrough - - case reflect.Struct: - slexer, err := lexStruct(t) - if err != nil { - return nil, err - } - out := newStrct(t) - g.typeNodes[t] = out // Ensure we avoid infinite recursion. - if slexer.NumField() == 0 { - return nil, fmt.Errorf("can not parse into empty struct %s", t) - } - defer decorate(&returnedError, func() string { return slexer.Field().Name }) - e, err := g.parseDisjunction(slexer) - if err != nil { - return nil, err - } - if e == nil { - return nil, fmt.Errorf("no grammar found in %s", t) - } - if token, _ := slexer.Peek(); !token.EOF() { - return nil, fmt.Errorf("unexpected input %q", token.Value) - } - out.expr = e - return out, nil - } - return nil, fmt.Errorf("%s should be a struct or should implement the Parseable interface", t) -} - -func (g *generatorContext) parseDisjunction(slexer *structLexer) (node, error) { - out := &disjunction{} - for { - n, err := g.parseSequence(slexer) - if err != nil { - return nil, err - } - if n == nil { - return nil, fmt.Errorf("alternative expression %d cannot be empty", len(out.nodes)+1) - } - out.nodes = append(out.nodes, n) - if token, _ := slexer.Peek(); token.Type != '|' { - break - } - _, err = slexer.Next() // | - if err != nil { - return nil, err - } - } - if len(out.nodes) == 1 { - return out.nodes[0], nil - } - return out, nil -} - -func (g *generatorContext) parseSequence(slexer *structLexer) (node, error) { - head := &sequence{} - cursor := head -loop: - for { - if token, err := slexer.Peek(); err != nil { - return nil, err - } else if token.Type == lexer.EOF { - break loop - } - term, err := g.parseTerm(slexer, true) - if err != nil { - return nil, err - } - if term == nil { - break loop - } - if cursor.node == nil { - cursor.head = true - cursor.node = term - } else { - cursor.next = &sequence{node: term} - cursor = cursor.next - } - } - if head.node == nil { - return nil, nil - } - if head.next == nil { - return head.node, nil - } - return head, nil -} - -func (g *generatorContext) parseTermNoModifiers(slexer *structLexer, allowUnknown bool) (node, error) { - t, err := slexer.Peek() - if err != nil { - return nil, err - } - switch t.Type { - case '@': - return g.parseCapture(slexer) - case scanner.String, scanner.RawString, scanner.Char: - return g.parseLiteral(slexer) - case '!', '~': - return g.parseNegation(slexer) - case '[': - return g.parseOptional(slexer) - case '{': - return g.parseRepetition(slexer) - case '(': - // Also handles (? used for lookahead groups - return g.parseGroup(slexer) - case scanner.Ident: - return g.parseReference(slexer) - case lexer.EOF: - _, _ = slexer.Next() - return nil, nil - default: - if allowUnknown { - return nil, nil - } - return nil, fmt.Errorf("unexpected token %v", t) - } -} - -func (g *generatorContext) parseTerm(slexer *structLexer, allowUnknown bool) (node, error) { - out, err := g.parseTermNoModifiers(slexer, allowUnknown) - if err != nil { - return nil, err - } - return g.parseModifier(slexer, out) -} - -// Parse modifiers: ?, *, + and/or ! -func (g *generatorContext) parseModifier(slexer *structLexer, expr node) (node, error) { - out := &group{expr: expr} - t, err := slexer.Peek() - if err != nil { - return nil, err - } - switch t.Type { - case '!': - out.mode = groupMatchNonEmpty - case '+': - out.mode = groupMatchOneOrMore - case '*': - out.mode = groupMatchZeroOrMore - case '?': - out.mode = groupMatchZeroOrOne - default: - return expr, nil - } - _, _ = slexer.Next() - return out, nil -} - -// @ captures into the current field. -func (g *generatorContext) parseCapture(slexer *structLexer) (node, error) { - _, _ = slexer.Next() - token, err := slexer.Peek() - if err != nil { - return nil, err - } - field := slexer.Field() - - // Parse recovery tag if present - recoveryConfig, err := parseRecoveryTag(field.RecoveryTag()) - if err != nil { - return nil, fmt.Errorf("%s: invalid recover tag: %w", field.Name, err) - } - - // Apply label from separate tag if not set in recover tag - if recoveryConfig != nil && recoveryConfig.label == "" { - if labelTag := field.LabelTag(); labelTag != "" { - recoveryConfig.label = labelTag - } - } else if recoveryConfig == nil && field.LabelTag() != "" { - // Create config just for the label (useful for error context) - recoveryConfig = &nodeRecoveryConfig{label: field.LabelTag()} - } - - // Check for type-level recovery (from RecoverTypeWith) - fieldType := indirectType(field.Type) - if typeRecovery, ok := g.typeRecoveries[fieldType]; ok && len(typeRecovery) > 0 { - if recoveryConfig == nil { - recoveryConfig = &nodeRecoveryConfig{} - } - // Append type-level strategies (field-level tags take precedence) - recoveryConfig.strategies = append(recoveryConfig.strategies, typeRecovery...) - } - - if token.Type == '@' { - _, _ = slexer.Next() - n, err := g.parseType(field.Type) - if err != nil { - return nil, err - } - captureNode := &capture{field: field, node: n, recovery: recoveryConfig} - return captureNode, nil - } - ft := indirectType(field.Type) - if ft.Kind() == reflect.Struct && ft != tokenType && ft != tokensType && !implements(ft, captureType) && !implements(ft, textUnmarshalerType) { - return nil, fmt.Errorf("%s: structs can only be parsed with @@ or by implementing the Capture or encoding.TextUnmarshaler interfaces", ft) - } - n, err := g.parseTermNoModifiers(slexer, false) - if err != nil { - return nil, err - } - captureNode := &capture{field: field, node: n, recovery: recoveryConfig} - return captureNode, nil -} - -// A reference in the form refers to a named token from the lexer. -func (g *generatorContext) parseReference(slexer *structLexer) (node, error) { // nolint: interfacer - token, err := slexer.Next() - if err != nil { - return nil, err - } - if token.Type != scanner.Ident { - return nil, fmt.Errorf("expected identifier but got %q", token) - } - typ, ok := g.Symbols()[token.Value] - if !ok { - return nil, fmt.Errorf("unknown token type %q", token) - } - return &reference{typ: typ, identifier: token.Value}, nil -} - -// [ ] optionally matches . -func (g *generatorContext) parseOptional(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // [ - disj, err := g.parseDisjunction(slexer) - if err != nil { - return nil, err - } - n := &group{expr: disj, mode: groupMatchZeroOrOne} - next, err := slexer.Next() - if err != nil { - return nil, err - } - if next.Type != ']' { - return nil, fmt.Errorf("expected ] but got %q", next) - } - return n, nil -} - -// { } matches 0 or more repititions of -func (g *generatorContext) parseRepetition(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // { - disj, err := g.parseDisjunction(slexer) - if err != nil { - return nil, err - } - n := &group{expr: disj, mode: groupMatchZeroOrMore} - next, err := slexer.Next() - if err != nil { - return nil, err - } - if next.Type != '}' { - return nil, fmt.Errorf("expected } but got %q", next) - } - return n, nil -} - -// ( ) groups a sub-expression -func (g *generatorContext) parseGroup(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // ( - peek, err := slexer.Peek() - if err != nil { - return nil, err - } - if peek.Type == '?' { - return g.subparseLookaheadGroup(slexer) // If there was an error peeking, code below will handle it - } - expr, err := g.subparseGroup(slexer) - if err != nil { - return nil, err - } - return &group{expr: expr}, nil -} - -// (?[!=] ) requires a grouped sub-expression either matches or doesn't match, without consuming it -func (g *generatorContext) subparseLookaheadGroup(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // ? - the opening ( was already consumed in parseGroup - var negative bool - next, err := slexer.Next() - if err != nil { - return nil, err - } - switch next.Type { - case '=': - negative = false - case '!': - negative = true - default: - return nil, fmt.Errorf("expected = or ! but got %q", next) - } - expr, err := g.subparseGroup(slexer) - if err != nil { - return nil, err - } - return &lookaheadGroup{expr: expr, negative: negative}, nil -} - -// helper parsing ) to finish parsing groups or lookahead groups -func (g *generatorContext) subparseGroup(slexer *structLexer) (node, error) { - disj, err := g.parseDisjunction(slexer) - if err != nil { - return nil, err - } - next, err := slexer.Next() // ) - if err != nil { - return nil, err - } - if next.Type != ')' { - return nil, fmt.Errorf("expected ) but got %q", next) - } - return disj, nil -} - -// A token negation -// -// Accepts both the form !"some-literal" and !SomeNamedToken -func (g *generatorContext) parseNegation(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // advance the parser since we have '!' right now. - next, err := g.parseTermNoModifiers(slexer, false) - if err != nil { - return nil, err - } - return &negation{next}, nil -} - -// A literal string. -// -// Note that for this to match, the tokeniser must be able to produce this string. For example, -// if the tokeniser only produces individual characters but the literal is "hello", or vice versa. -func (g *generatorContext) parseLiteral(lex *structLexer) (node, error) { // nolint: interfacer - token, err := lex.Next() - if err != nil { - return nil, err - } - s := token.Value - t := lexer.TokenType(-1) - token, err = lex.Peek() - if err != nil { - return nil, err - } - if token.Type == ':' { - _, _ = lex.Next() - token, err = lex.Next() - if err != nil { - return nil, err - } - if token.Type != scanner.Ident { - return nil, fmt.Errorf("expected identifier for literal type constraint but got %q", token) - } - var ok bool - t, ok = g.Symbols()[token.Value] - if !ok { - return nil, fmt.Errorf("unknown token type %q in literal type constraint", token) - } - } - return &literal{s: s, t: t, tt: g.symbolsToIDs[t]}, nil -} - -func indirectType(t reflect.Type) reflect.Type { - if t.Kind() == reflect.Ptr || t.Kind() == reflect.Slice { - return indirectType(t.Elem()) - } - return t -} - -func implements(t, i reflect.Type) bool { - return t.Implements(i) || reflect.PtrTo(t).Implements(i) -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/lexer/api.go b/example/vendor/github.com/alecthomas/participle/v2/lexer/api.go deleted file mode 100644 index 2784dd8..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/lexer/api.go +++ /dev/null @@ -1,185 +0,0 @@ -package lexer - -import ( - "fmt" - "io" - "strings" - "unicode/utf8" -) - -type TokenType int - -const ( - // EOF represents an end of file. - EOF TokenType = -(iota + 1) -) - -// EOFToken creates a new EOF token at the given position. -func EOFToken(pos Position) Token { - return Token{Type: EOF, Pos: pos} -} - -// Definition is the main entry point for lexing. -type Definition interface { - // Symbols returns a map of symbolic names to the corresponding pseudo-runes for those symbols. - // This is the same approach as used by text/scanner. For example, "EOF" might have the rune - // value of -1, "Ident" might be -2, and so on. - Symbols() map[string]TokenType - // Lex an io.Reader. - Lex(filename string, r io.Reader) (Lexer, error) -} - -// StringDefinition is an optional interface lexer Definition's can implement -// to offer a fast path for lexing strings. -type StringDefinition interface { - LexString(filename string, input string) (Lexer, error) -} - -// BytesDefinition is an optional interface lexer Definition's can implement -// to offer a fast path for lexing byte slices. -type BytesDefinition interface { - LexBytes(filename string, input []byte) (Lexer, error) -} - -// A Lexer returns tokens from a source. -type Lexer interface { - // Next consumes and returns the next token. - Next() (Token, error) -} - -// SymbolsByRune returns a map of lexer symbol names keyed by rune. -func SymbolsByRune(def Definition) map[TokenType]string { - symbols := def.Symbols() - out := make(map[TokenType]string, len(symbols)) - for s, r := range symbols { - out[r] = s - } - return out -} - -// NameOfReader attempts to retrieve the filename of a reader. -func NameOfReader(r interface{}) string { - if nr, ok := r.(interface{ Name() string }); ok { - return nr.Name() - } - return "" -} - -// Must takes the result of a Definition constructor call and returns the definition, but panics if -// it errors -// -// eg. -// -// lex = lexer.Must(lexer.Build(`Symbol = "symbol" .`)) -func Must(def Definition, err error) Definition { - if err != nil { - panic(err) - } - return def -} - -// ConsumeAll reads all tokens from a Lexer. -func ConsumeAll(lexer Lexer) ([]Token, error) { - tokens := make([]Token, 0, 1024) - for { - token, err := lexer.Next() - if err != nil { - return nil, err - } - tokens = append(tokens, token) - if token.Type == EOF { - return tokens, nil - } - } -} - -// Position of a token. -type Position struct { - Filename string - Offset int - Line int - Column int -} - -// Advance the Position based on the number of characters and newlines in "span". -func (p *Position) Advance(span string) { - p.Offset += len(span) - lines := strings.Count(span, "\n") - p.Line += lines - // Update column. - if lines == 0 { - p.Column += utf8.RuneCountInString(span) - } else { - p.Column = utf8.RuneCountInString(span[strings.LastIndex(span, "\n"):]) - } -} - -// Add returns a new Position that is the sum of this position and "pos". -// -// This is useful when parsing values from a parent grammar. -func (p Position) Add(pos Position) Position { - p.Line += pos.Line - 1 - if pos.Line > 1 { - p.Column = pos.Column - } else { - p.Column += pos.Column - 1 - } - p.Offset += pos.Offset - return p -} - -func (p Position) GoString() string { - return fmt.Sprintf("Position{Filename: %q, Offset: %d, Line: %d, Column: %d}", - p.Filename, p.Offset, p.Line, p.Column) -} - -func (p Position) String() string { - filename := p.Filename - if filename == "" { - return fmt.Sprintf("%d:%d", p.Line, p.Column) - } - return fmt.Sprintf("%s:%d:%d", filename, p.Line, p.Column) -} - -// A Token returned by a Lexer. -type Token struct { - // Type of token. This is the value keyed by symbol as returned by Definition.Symbols(). - Type TokenType - Value string - Pos Position -} - -// EOF returns true if this Token is an EOF token. -func (t Token) EOF() bool { - return t.Type == EOF -} - -func (t Token) String() string { - if t.EOF() { - return "" - } - return t.Value -} - -func (t Token) GoString() string { - if t.Pos == (Position{}) { - return fmt.Sprintf("Token{%d, %q}", t.Type, t.Value) - } - return fmt.Sprintf("Token@%s{%d, %q}", t.Pos.String(), t.Type, t.Value) -} - -// MakeSymbolTable builds a lookup table for checking token ID existence. -// -// For each symbolic name in "types", the returned map will contain the corresponding token ID as a key. -func MakeSymbolTable(def Definition, types ...string) (map[TokenType]bool, error) { - symbols := def.Symbols() - table := make(map[TokenType]bool, len(types)) - for _, symbol := range types { - rn, ok := symbols[symbol] - if !ok { - return nil, fmt.Errorf("lexer does not support symbol %q", symbol) - } - table[rn] = true - } - return table, nil -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/lexer/doc.go b/example/vendor/github.com/alecthomas/participle/v2/lexer/doc.go deleted file mode 100644 index a038a16..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/lexer/doc.go +++ /dev/null @@ -1,28 +0,0 @@ -// Package lexer defines interfaces and implementations used by Participle to perform lexing. -// -// The primary interfaces are Definition and Lexer. There are two concrete implementations -// included. The first is one based on Go's text/scanner package. The second is Participle's -// default stateful/modal lexer. -// -// The stateful lexer is based heavily on the approach used by Chroma (and Pygments). -// -// It is a state machine defined by a map of rules keyed by state. Each rule -// is a named regex and optional operation to apply when the rule matches. -// -// As a convenience, any Rule starting with a lowercase letter will be elided from output. -// -// Lexing starts in the "Root" group. Each rule is matched in order, with the first -// successful match producing a lexeme. If the matching rule has an associated Action -// it will be executed. -// -// A state change can be introduced with the Action `Push(state)`. `Pop()` will -// return to the previous state. -// -// To reuse rules from another state, use `Include(state)`. -// -// As a special case, regexes containing backrefs in the form \N (where N is a digit) -// will match the corresponding capture group from the immediate parent group. This -// can be used to parse, among other things, heredocs. -// -// See the README, example and tests in this package for details. -package lexer diff --git a/example/vendor/github.com/alecthomas/participle/v2/lexer/errors.go b/example/vendor/github.com/alecthomas/participle/v2/lexer/errors.go deleted file mode 100644 index 6734a6c..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/lexer/errors.go +++ /dev/null @@ -1,50 +0,0 @@ -package lexer - -import "fmt" - -// This file exists to break circular imports. The types and functions in here -// mirror those in the participle package. - -type errorInterface interface { - error - Message() string - Position() Position -} - -// Error represents an error while lexing. -// -// It complies with the participle.Error interface. -type Error struct { - Msg string - Pos Position -} - -var _ errorInterface = &Error{} - -// Creates a new Error at the given position. -func errorf(pos Position, format string, args ...interface{}) *Error { - return &Error{Msg: fmt.Sprintf(format, args...), Pos: pos} -} - -func (e *Error) Message() string { return e.Msg } // nolint: golint -func (e *Error) Position() Position { return e.Pos } // nolint: golint - -// Error formats the error with FormatError. -func (e *Error) Error() string { return formatError(e.Pos, e.Msg) } - -// An error in the form "[:][::] " -func formatError(pos Position, message string) string { - msg := "" - if pos.Filename != "" { - msg += pos.Filename + ":" - } - if pos.Line != 0 || pos.Column != 0 { - msg += fmt.Sprintf("%d:%d:", pos.Line, pos.Column) - } - if msg != "" { - msg += " " + message - } else { - msg = message - } - return msg -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/lexer/peek.go b/example/vendor/github.com/alecthomas/participle/v2/lexer/peek.go deleted file mode 100644 index 8b81b21..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/lexer/peek.go +++ /dev/null @@ -1,133 +0,0 @@ -package lexer - -// PeekingLexer supports arbitrary lookahead as well as cloning. -type PeekingLexer struct { - Checkpoint - tokens []Token - elide map[TokenType]bool -} - -// RawCursor index in the token stream. -type RawCursor int - -// Checkpoint wraps the mutable state of the PeekingLexer. -// -// Copying and restoring just this state is a bit faster than copying the entire PeekingLexer. -type Checkpoint struct { - rawCursor RawCursor // The raw position of the next possibly elided token - nextCursor RawCursor // The raw position of the next non-elided token - cursor int // Index of the next non-elided token among other non-elided tokens -} - -// Upgrade a Lexer to a PeekingLexer with arbitrary lookahead. -// -// "elide" is a slice of token types to elide from processing. -func Upgrade(lex Lexer, elide ...TokenType) (*PeekingLexer, error) { - r := &PeekingLexer{ - elide: make(map[TokenType]bool, len(elide)), - } - for _, rn := range elide { - r.elide[rn] = true - } - for { - t, err := lex.Next() - if err != nil { - return r, err - } - r.tokens = append(r.tokens, t) - if t.EOF() { - break - } - } - r.advanceToNonElided() - return r, nil -} - -// Range returns the slice of tokens between the two cursor points. -func (p *PeekingLexer) Range(rawStart, rawEnd RawCursor) []Token { - return p.tokens[rawStart:rawEnd] -} - -// Cursor position in tokens, excluding elided tokens. -func (c Checkpoint) Cursor() int { - return c.cursor -} - -// RawCursor position in tokens, including elided tokens. -func (c Checkpoint) RawCursor() RawCursor { - return c.rawCursor -} - -// Next consumes and returns the next token. -func (p *PeekingLexer) Next() *Token { - t := &p.tokens[p.nextCursor] - if t.EOF() { - return t - } - p.nextCursor++ - p.rawCursor = p.nextCursor - p.cursor++ - p.advanceToNonElided() - return t -} - -// Peek ahead at the next non-elided token. -func (p *PeekingLexer) Peek() *Token { - return &p.tokens[p.nextCursor] -} - -// RawPeek peeks ahead at the next raw token. -// -// Unlike Peek, this will include elided tokens. -func (p *PeekingLexer) RawPeek() *Token { - return &p.tokens[p.rawCursor] -} - -// advanceToNonElided advances nextCursor to the closest non-elided token -func (p *PeekingLexer) advanceToNonElided() { - for ; ; p.nextCursor++ { - t := &p.tokens[p.nextCursor] - if t.EOF() || !p.elide[t.Type] { - return - } - } -} - -// PeekAny peeks forward over elided and non-elided tokens. -// -// Elided tokens will be returned if they match, otherwise the next -// non-elided token will be returned. -// -// The returned RawCursor position is the location of the returned token. -// Use FastForward to move the internal cursors forward. -func (p *PeekingLexer) PeekAny(match func(Token) bool) (t Token, rawCursor RawCursor) { - for i := p.rawCursor; ; i++ { - t = p.tokens[i] - if t.EOF() || match(t) || !p.elide[t.Type] { - return t, i - } - } -} - -// FastForward the internal cursors to this RawCursor position. -func (p *PeekingLexer) FastForward(rawCursor RawCursor) { - for ; p.rawCursor <= rawCursor; p.rawCursor++ { - t := &p.tokens[p.rawCursor] - if t.EOF() { - break - } - if !p.elide[t.Type] { - p.cursor++ - } - } - p.nextCursor = p.rawCursor - p.advanceToNonElided() -} - -func (p *PeekingLexer) MakeCheckpoint() Checkpoint { - return p.Checkpoint -} - -func (p *PeekingLexer) LoadCheckpoint(checkpoint Checkpoint) { - p.Checkpoint = checkpoint -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/lexer/simple.go b/example/vendor/github.com/alecthomas/participle/v2/lexer/simple.go deleted file mode 100644 index f120c2e..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/lexer/simple.go +++ /dev/null @@ -1,29 +0,0 @@ -package lexer - -// SimpleRule is a named regular expression. -type SimpleRule struct { - Name string - Pattern string -} - -// MustSimple creates a new Stateful lexer with only a single root state. -// The rules are tried in order. -// -// It panics if there is an error. -func MustSimple(rules []SimpleRule) *StatefulDefinition { - def, err := NewSimple(rules) - if err != nil { - panic(err) - } - return def -} - -// NewSimple creates a new Stateful lexer with only a single root state. -// The rules are tried in order. -func NewSimple(rules []SimpleRule) (*StatefulDefinition, error) { - fullRules := make([]Rule, len(rules)) - for i, rule := range rules { - fullRules[i] = Rule{Name: rule.Name, Pattern: rule.Pattern} - } - return New(Rules{"Root": fullRules}) -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/lexer/stateful.go b/example/vendor/github.com/alecthomas/participle/v2/lexer/stateful.go deleted file mode 100644 index 158eef1..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/lexer/stateful.go +++ /dev/null @@ -1,480 +0,0 @@ -package lexer - -import ( - "encoding/json" - "errors" - "fmt" - "io" - "regexp" - "sort" - "strconv" - "strings" - "sync" - "unicode" -) - -var ( - backrefReplace = regexp.MustCompile(`(\\+)(\d)`) -) - -// A Rule matching input and possibly changing state. -type Rule struct { - Name string `json:"name"` - Pattern string `json:"pattern"` - Action Action `json:"action"` -} - -var _ json.Marshaler = &Rule{} -var _ json.Unmarshaler = &Rule{} - -type jsonRule struct { - Name string `json:"name,omitempty"` - Pattern string `json:"pattern,omitempty"` - Action json.RawMessage `json:"action,omitempty"` -} - -func (r *Rule) UnmarshalJSON(data []byte) error { - jrule := jsonRule{} - err := json.Unmarshal(data, &jrule) - if err != nil { - return err - } - r.Name = jrule.Name - r.Pattern = jrule.Pattern - jaction := struct { - Kind string `json:"kind"` - }{} - if jrule.Action == nil { - return nil - } - err = json.Unmarshal(jrule.Action, &jaction) - if err != nil { - return fmt.Errorf("lexer: could not unmarshal action %q: %w", string(jrule.Action), err) - } - var action Action - switch jaction.Kind { - case "push": - actual := ActionPush{} - if err := json.Unmarshal(jrule.Action, &actual); err != nil { - return err - } - action = actual - case "pop": - actual := ActionPop{} - if err := json.Unmarshal(jrule.Action, &actual); err != nil { - return err - } - action = actual - case "include": - actual := include{} - if err := json.Unmarshal(jrule.Action, &actual); err != nil { - return err - } - action = actual - case "": - default: - return fmt.Errorf("lexer: unknown action %q", jaction.Kind) - } - r.Action = action - return nil -} - -func (r *Rule) MarshalJSON() ([]byte, error) { - jrule := jsonRule{ - Name: r.Name, - Pattern: r.Pattern, - } - if r.Action != nil { - actionData, err := json.Marshal(r.Action) - if err != nil { - return nil, fmt.Errorf("lexer: failed to map action: %w", err) - } - jaction := map[string]interface{}{} - err = json.Unmarshal(actionData, &jaction) - if err != nil { - return nil, fmt.Errorf("lexer: failed to map action: %w", err) - } - switch r.Action.(type) { - case nil: - case ActionPop: - jaction["kind"] = "pop" - case ActionPush: - jaction["kind"] = "push" - case include: - jaction["kind"] = "include" - default: - return nil, fmt.Errorf("lexer: unsupported action %T", r.Action) - } - actionJSON, err := json.Marshal(jaction) - if err != nil { - return nil, err - } - jrule.Action = actionJSON - } - return json.Marshal(&jrule) -} - -// Rules grouped by name. -type Rules map[string][]Rule - -// compiledRule is a Rule with its pattern compiled. -type compiledRule struct { - Rule - ignore bool - RE *regexp.Regexp -} - -// compiledRules grouped by name. -type compiledRules map[string][]compiledRule - -// A Action is applied when a rule matches. -type Action interface { - // Actions are responsible for validating the match. ie. if they consumed any input. - applyAction(lexer *StatefulLexer, groups []string) error -} - -// RulesAction is an optional interface that Actions can implement. -// -// It is applied during rule construction to mutate the rule map. -type RulesAction interface { - applyRules(state string, rule int, rules compiledRules) error -} - -type validatingRule interface { - validate(rules Rules) error -} - -// ActionPop pops to the previous state when the Rule matches. -type ActionPop struct{} - -func (p ActionPop) applyAction(lexer *StatefulLexer, groups []string) error { - if groups[0] == "" { - return errors.New("did not consume any input") - } - lexer.stack = lexer.stack[:len(lexer.stack)-1] - return nil -} - -// Pop to the previous state. -func Pop() Action { - return ActionPop{} -} - -// ReturnRule signals the lexer to return immediately. -var ReturnRule = Rule{"returnToParent", "", nil} - -// Return to the parent state. -// -// Useful as the last rule in a sub-state. -func Return() Rule { return ReturnRule } - -// ActionPush pushes the current state and switches to "State" when the Rule matches. -type ActionPush struct { - State string `json:"state"` -} - -func (p ActionPush) applyAction(lexer *StatefulLexer, groups []string) error { - if groups[0] == "" { - return errors.New("did not consume any input") - } - lexer.stack = append(lexer.stack, lexerState{name: p.State, groups: groups}) - return nil -} - -func (p ActionPush) validate(rules Rules) error { - if _, ok := rules[p.State]; !ok { - return fmt.Errorf("lexer: push to unknown state %q", p.State) - } - return nil -} - -// Push to the given state. -// -// The target state will then be the set of rules used for matching -// until another Push or Pop is encountered. -func Push(state string) Action { - return ActionPush{state} -} - -type include struct { - State string `json:"state"` -} - -func (i include) applyAction(lexer *StatefulLexer, groups []string) error { - panic("should not be called") -} - -func (i include) applyRules(state string, rule int, rules compiledRules) error { - includedRules, ok := rules[i.State] - if !ok { - return fmt.Errorf("lexer: invalid include state %q", i.State) - } - clone := make([]compiledRule, len(includedRules)) - copy(clone, includedRules) - rules[state] = append(rules[state][:rule], append(clone, rules[state][rule+1:]...)...) // nolint: makezero - return nil -} - -// Include rules from another state in this one. -func Include(state string) Rule { - return Rule{Action: include{state}} -} - -// StatefulDefinition is the lexer.Definition. -type StatefulDefinition struct { - rules compiledRules - symbols map[string]TokenType - // Map of key->*regexp.Regexp - backrefCache sync.Map - matchLongest bool -} - -// MustStateful creates a new stateful lexer and panics if it is incorrect. -func MustStateful(rules Rules) *StatefulDefinition { - def, err := New(rules) - if err != nil { - panic(err) - } - return def -} - -// New constructs a new stateful lexer from rules. -func New(rules Rules) (*StatefulDefinition, error) { - compiled := compiledRules{} - for key, set := range rules { - for i, rule := range set { - if validate, ok := rule.Action.(validatingRule); ok { - if err := validate.validate(rules); err != nil { - return nil, fmt.Errorf("lexer: invalid action for rule %q: %w", rule.Name, err) - } - } - pattern := "^(?:" + rule.Pattern + ")" - var ( - re *regexp.Regexp - err error - ) - var match = backrefReplace.FindStringSubmatch(rule.Pattern) - if match == nil || len(match[1])%2 == 0 { - re, err = regexp.Compile(pattern) - if err != nil { - return nil, fmt.Errorf("lexer: %s.%d: %s", key, i, err) - } - } - compiled[key] = append(compiled[key], compiledRule{ - Rule: rule, - ignore: len(rule.Name) > 0 && unicode.IsLower(rune(rule.Name[0])), - RE: re, - }) - } - } -restart: - for state, rules := range compiled { - for i, rule := range rules { - if action, ok := rule.Action.(RulesAction); ok { - if err := action.applyRules(state, i, compiled); err != nil { - return nil, fmt.Errorf("lexer: %s.%d: %s", state, i, err) - } - goto restart - } - } - } - keys := make([]string, 0, len(compiled)) - for key := range compiled { - keys = append(keys, key) - } - symbols := map[string]TokenType{ - "EOF": EOF, - } - sort.Strings(keys) - duplicates := map[string]compiledRule{} - rn := EOF - 1 - for _, key := range keys { - for i, rule := range compiled[key] { - if dup, ok := duplicates[rule.Name]; ok && rule.Pattern != dup.Pattern { - panic(fmt.Sprintf("lexer: duplicate key %q with different patterns %q != %q", rule.Name, rule.Pattern, dup.Pattern)) - } - duplicates[rule.Name] = rule - compiled[key][i] = rule - symbols[rule.Name] = rn - rn-- - } - } - d := &StatefulDefinition{ - rules: compiled, - symbols: symbols, - } - return d, nil -} - -func (d *StatefulDefinition) MarshalJSON() ([]byte, error) { - return json.Marshal(d.rules) -} - -// Rules returns the user-provided Rules used to construct the lexer. -func (d *StatefulDefinition) Rules() Rules { - out := Rules{} - for state, rules := range d.rules { - for _, rule := range rules { - out[state] = append(out[state], rule.Rule) - } - } - return out -} - -// LexString is a fast-path implementation for lexing strings. -func (d *StatefulDefinition) LexString(filename string, s string) (Lexer, error) { - return &StatefulLexer{ - def: d, - data: s, - stack: []lexerState{{name: "Root"}}, - pos: Position{ - Filename: filename, - Line: 1, - Column: 1, - }, - }, nil -} - -func (d *StatefulDefinition) Lex(filename string, r io.Reader) (Lexer, error) { // nolint: golint - w := &strings.Builder{} - _, err := io.Copy(w, r) - if err != nil { - return nil, err - } - return d.LexString(filename, w.String()) -} - -func (d *StatefulDefinition) Symbols() map[string]TokenType { // nolint: golint - return d.symbols -} - -// lexerState stored when switching states in the lexer. -type lexerState struct { - name string - groups []string -} - -// StatefulLexer implementation. -type StatefulLexer struct { - stack []lexerState - def *StatefulDefinition - data string - pos Position -} - -func (l *StatefulLexer) Next() (Token, error) { // nolint: golint - parent := l.stack[len(l.stack)-1] - rules := l.def.rules[parent.name] -next: - for len(l.data) > 0 { - var ( - rule *compiledRule - m []int - match []int - ) - for i, candidate := range rules { - // Special case "Return()". - if candidate.Rule == ReturnRule { - l.stack = l.stack[:len(l.stack)-1] - parent = l.stack[len(l.stack)-1] - rules = l.def.rules[parent.name] - continue next - } - re, err := l.getPattern(candidate) - if err != nil { - return Token{}, errorf(l.pos, "lexer: rule %q: %s", candidate.Name, err) - } - m = re.FindStringSubmatchIndex(l.data) - if m != nil && (match == nil || m[1] > match[1]) { - match = m - rule = &rules[i] - if !l.def.matchLongest { - break - } - } - } - if match == nil || rule == nil { - sample := []rune(l.data) - if len(sample) > 16 { - sample = append(sample[:16], []rune("...")...) - } - return Token{}, errorf(l.pos, "lexer: invalid input text %q", string(sample)) - } - - if rule.Action != nil { - groups := make([]string, 0, len(match)/2) - for i := 0; i < len(match); i += 2 { - groups = append(groups, l.data[match[i]:match[i+1]]) - } - if err := rule.Action.applyAction(l, groups); err != nil { - return Token{}, errorf(l.pos, "lexer: rule %q: %s", rule.Name, err) - } - } else if match[0] == match[1] { - return Token{}, errorf(l.pos, "lexer: rule %q did not match any input", rule.Name) - } - - span := l.data[match[0]:match[1]] - l.data = l.data[match[1]:] - // l.groups = groups - - // Update position. - pos := l.pos - l.pos.Advance(span) - if rule.ignore { - parent = l.stack[len(l.stack)-1] - rules = l.def.rules[parent.name] - continue - } - return Token{ - Type: l.def.symbols[rule.Name], - Value: span, - Pos: pos, - }, nil - } - return EOFToken(l.pos), nil -} - -func (l *StatefulLexer) getPattern(candidate compiledRule) (*regexp.Regexp, error) { - if candidate.RE != nil { - return candidate.RE, nil - } - // We don't have a compiled RE. This means there are back-references - // that need to be substituted first. - return BackrefRegex(&l.def.backrefCache, candidate.Pattern, l.stack[len(l.stack)-1].groups) -} - -// BackrefRegex returns a compiled regular expression with backreferences replaced by groups. -func BackrefRegex(backrefCache *sync.Map, input string, groups []string) (*regexp.Regexp, error) { - key := input + "\000" + strings.Join(groups, "\000") - cached, ok := backrefCache.Load(key) - if ok { - return cached.(*regexp.Regexp), nil - } - - var ( - re *regexp.Regexp - err error - ) - pattern := backrefReplace.ReplaceAllStringFunc(input, func(s string) string { - var rematch = backrefReplace.FindStringSubmatch(s) - n, nerr := strconv.ParseInt(rematch[2], 10, 64) - if nerr != nil { - err = nerr - return s - } - if len(groups) == 0 || int(n) >= len(groups) { - err = fmt.Errorf("invalid group %d from parent with %d groups", n, len(groups)) - return s - } - // concatenate the leading \\\\ which are already escaped to the quoted match. - return rematch[1][:len(rematch[1])-1] + regexp.QuoteMeta(groups[n]) - }) - if err == nil { - re, err = regexp.Compile("^(?:" + pattern + ")") - } - if err != nil { - return nil, fmt.Errorf("invalid backref expansion: %q: %s", pattern, err) - } - backrefCache.Store(key, re) - return re, nil -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/lexer/text_scanner.go b/example/vendor/github.com/alecthomas/participle/v2/lexer/text_scanner.go deleted file mode 100644 index 023287a..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/lexer/text_scanner.go +++ /dev/null @@ -1,112 +0,0 @@ -package lexer - -import ( - "bytes" - "io" - "strings" - "text/scanner" -) - -// TextScannerLexer is a lexer that uses the text/scanner module. -var ( - TextScannerLexer Definition = &textScannerLexerDefinition{} - - // DefaultDefinition defines properties for the default lexer. - DefaultDefinition = TextScannerLexer -) - -// NewTextScannerLexer constructs a Definition that uses an underlying scanner.Scanner -// -// "configure" will be called after the scanner.Scanner.Init(r) is called. If "configure" -// is nil a default scanner.Scanner will be used. -func NewTextScannerLexer(configure func(*scanner.Scanner)) Definition { - return &textScannerLexerDefinition{configure: configure} -} - -type textScannerLexerDefinition struct { - configure func(*scanner.Scanner) -} - -func (d *textScannerLexerDefinition) Lex(filename string, r io.Reader) (Lexer, error) { - l := Lex(filename, r) - if d.configure != nil { - d.configure(l.(*textScannerLexer).scanner) - } - return l, nil -} - -func (d *textScannerLexerDefinition) Symbols() map[string]TokenType { - return map[string]TokenType{ - "EOF": EOF, - "Char": scanner.Char, - "Ident": scanner.Ident, - "Int": scanner.Int, - "Float": scanner.Float, - "String": scanner.String, - "RawString": scanner.RawString, - "Comment": scanner.Comment, - } -} - -// textScannerLexer is a Lexer based on text/scanner.Scanner -type textScannerLexer struct { - scanner *scanner.Scanner - filename string - err error -} - -// Lex an io.Reader with text/scanner.Scanner. -// -// This provides very fast lexing of source code compatible with Go tokens. -// -// Note that this differs from text/scanner.Scanner in that string tokens will be unquoted. -func Lex(filename string, r io.Reader) Lexer { - s := &scanner.Scanner{} - s.Init(r) - lexer := lexWithScanner(filename, s) - lexer.scanner.Error = func(s *scanner.Scanner, msg string) { - lexer.err = errorf(Position(lexer.scanner.Pos()), "%s", msg) - } - return lexer -} - -// LexWithScanner creates a Lexer from a user-provided scanner.Scanner. -// -// Useful if you need to customise the Scanner. -func LexWithScanner(filename string, scan *scanner.Scanner) Lexer { - return lexWithScanner(filename, scan) -} - -func lexWithScanner(filename string, scan *scanner.Scanner) *textScannerLexer { - scan.Filename = filename - lexer := &textScannerLexer{ - filename: filename, - scanner: scan, - } - return lexer -} - -// LexBytes returns a new default lexer over bytes. -func LexBytes(filename string, b []byte) Lexer { - return Lex(filename, bytes.NewReader(b)) -} - -// LexString returns a new default lexer over a string. -func LexString(filename, s string) Lexer { - return Lex(filename, strings.NewReader(s)) -} - -func (t *textScannerLexer) Next() (Token, error) { - typ := t.scanner.Scan() - text := t.scanner.TokenText() - pos := Position(t.scanner.Position) - pos.Filename = t.filename - if t.err != nil { - return Token{}, t.err - } - return Token{ - Type: TokenType(typ), - Value: text, - Pos: pos, - }, nil -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/map.go b/example/vendor/github.com/alecthomas/participle/v2/map.go deleted file mode 100644 index c80290c..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/map.go +++ /dev/null @@ -1,111 +0,0 @@ -package participle - -import ( - "io" - "strconv" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -type mapperByToken struct { - symbols []string - mapper Mapper -} - -// Mapper function for mutating tokens before being applied to the AST. -type Mapper func(token lexer.Token) (lexer.Token, error) - -// Map is an Option that configures the Parser to apply a mapping function to each Token from the lexer. -// -// This can be useful to eg. upper-case all tokens of a certain type, or dequote strings. -// -// "symbols" specifies the token symbols that the Mapper will be applied to. If empty, all tokens will be mapped. -func Map(mapper Mapper, symbols ...string) Option { - return func(p *parserOptions) error { - p.mappers = append(p.mappers, mapperByToken{ - mapper: mapper, - symbols: symbols, - }) - return nil - } -} - -// Unquote applies strconv.Unquote() to tokens of the given types. -// -// Tokens of type "String" will be unquoted if no other types are provided. -func Unquote(types ...string) Option { - if len(types) == 0 { - types = []string{"String"} - } - return Map(func(t lexer.Token) (lexer.Token, error) { - value, err := unquote(t.Value) - if err != nil { - return t, Errorf(t.Pos, "invalid quoted string %q: %s", t.Value, err.Error()) - } - t.Value = value - return t, nil - }, types...) -} - -func unquote(s string) (string, error) { - quote := s[0] - s = s[1 : len(s)-1] - out := "" - for s != "" { - value, _, tail, err := strconv.UnquoteChar(s, quote) - if err != nil { - return "", err - } - s = tail - out += string(value) - } - return out, nil -} - -// Upper is an Option that upper-cases all tokens of the given type. Useful for case normalisation. -func Upper(types ...string) Option { - return Map(func(token lexer.Token) (lexer.Token, error) { - token.Value = strings.ToUpper(token.Value) - return token, nil - }, types...) -} - -// Elide drops tokens of the specified types. -func Elide(types ...string) Option { - return func(p *parserOptions) error { - p.elide = append(p.elide, types...) - return nil - } -} - -// Apply a Mapping to all tokens coming out of a Lexer. -type mappingLexerDef struct { - l lexer.Definition - mapper Mapper -} - -var _ lexer.Definition = &mappingLexerDef{} - -func (m *mappingLexerDef) Symbols() map[string]lexer.TokenType { return m.l.Symbols() } - -func (m *mappingLexerDef) Lex(filename string, r io.Reader) (lexer.Lexer, error) { - l, err := m.l.Lex(filename, r) - if err != nil { - return nil, err - } - return &mappingLexer{l, m.mapper}, nil -} - -type mappingLexer struct { - lexer.Lexer - mapper Mapper -} - -func (m *mappingLexer) Next() (lexer.Token, error) { - t, err := m.Lexer.Next() - if err != nil { - return t, err - } - return m.mapper(t) -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/nodes.go b/example/vendor/github.com/alecthomas/participle/v2/nodes.go deleted file mode 100644 index e7b8f5d..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/nodes.go +++ /dev/null @@ -1,959 +0,0 @@ -package participle - -import ( - "encoding" - "errors" - "fmt" - "reflect" - "strconv" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -var ( - // MaxIterations limits the number of elements capturable by {}. - MaxIterations = 1000000 - - positionType = reflect.TypeOf(lexer.Position{}) - tokenType = reflect.TypeOf(lexer.Token{}) - tokensType = reflect.TypeOf([]lexer.Token{}) - captureType = reflect.TypeOf((*Capture)(nil)).Elem() - textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() - parseableType = reflect.TypeOf((*Parseable)(nil)).Elem() - - // NextMatch should be returned by Parseable.Parse() method implementations to indicate - // that the node did not match and that other matches should be attempted, if appropriate. - NextMatch = errors.New("no match") // nolint: golint -) - -// A node in the grammar. -type node interface { - // Parse from scanner into value. - // - // Returned slice will be nil if the node does not match. - Parse(ctx *parseContext, parent reflect.Value) ([]reflect.Value, error) - - // Return a decent string representation of the Node. - fmt.Stringer - - fmt.GoStringer -} - -func decorate(err *error, name func() string) { - if *err == nil { - return - } - if perr, ok := (*err).(Error); ok { - *err = Errorf(perr.Position(), "%s: %s", name(), perr.Message()) - } else { - *err = &ParseError{Msg: fmt.Sprintf("%s: %s", name(), *err)} - } -} - -// A node that proxies to an implementation that implements the Parseable interface. -type parseable struct { - t reflect.Type -} - -func (p *parseable) String() string { return ebnf(p) } -func (p *parseable) GoString() string { return p.t.String() } - -func (p *parseable) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(p)() - rv := reflect.New(p.t) - v := rv.Interface().(Parseable) - err = v.Parse(&ctx.PeekingLexer) - if err != nil { - if err == NextMatch { - return nil, nil - } - return nil, err - } - return []reflect.Value{rv.Elem()}, nil -} - -// @@ (but for a custom production) -type custom struct { - typ reflect.Type - parseFn reflect.Value -} - -func (c *custom) String() string { return ebnf(c) } -func (c *custom) GoString() string { return c.typ.Name() } - -func (c *custom) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(c)() - results := c.parseFn.Call([]reflect.Value{reflect.ValueOf(&ctx.PeekingLexer)}) - if err, _ := results[1].Interface().(error); err != nil { - if err == NextMatch { - return nil, nil - } - return nil, err - } - return []reflect.Value{results[0]}, nil -} - -// @@ (for a union) -type union struct { - unionDef - disjunction disjunction -} - -func (u *union) String() string { return ebnf(u) } -func (u *union) GoString() string { return u.typ.Name() } - -func (u *union) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(u)() - vals, err := u.disjunction.Parse(ctx, parent) - if err != nil { - return nil, err - } - for i := range vals { - vals[i] = maybeRef(u.members[i], vals[i]).Convert(u.typ) - } - return vals, nil -} - -// @@ -type strct struct { - typ reflect.Type - expr node - tokensFieldIndex []int - posFieldIndex []int - endPosFieldIndex []int - recoveredSpanFieldIndex []int // For RecoveredSpan lexer.Position field (start of recovery) - recoveredEndFieldIndex []int // For RecoveredEnd lexer.Position field (end of recovery) - recoveredTokensFieldIndex []int // For RecoveredTokens []lexer.Token field - usages int -} - -func newStrct(typ reflect.Type) *strct { - s := &strct{ - typ: typ, - usages: 1, - } - field, ok := typ.FieldByName("Pos") - if ok && positionType.ConvertibleTo(field.Type) { - s.posFieldIndex = field.Index - } - field, ok = typ.FieldByName("EndPos") - if ok && positionType.ConvertibleTo(field.Type) { - s.endPosFieldIndex = field.Index - } - field, ok = typ.FieldByName("Tokens") - if ok && field.Type == tokensType { - s.tokensFieldIndex = field.Index - } - // Recovery metadata fields - field, ok = typ.FieldByName("RecoveredSpan") - if ok && positionType.ConvertibleTo(field.Type) { - s.recoveredSpanFieldIndex = field.Index - } - field, ok = typ.FieldByName("RecoveredEnd") - if ok && positionType.ConvertibleTo(field.Type) { - s.recoveredEndFieldIndex = field.Index - } - field, ok = typ.FieldByName("RecoveredTokens") - if ok && field.Type == tokensType { - s.recoveredTokensFieldIndex = field.Index - } - return s -} - -func (s *strct) String() string { return ebnf(s) } -func (s *strct) GoString() string { return s.typ.Name() } - -func (s *strct) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(s)() - sv := reflect.New(s.typ).Elem() - start := ctx.RawCursor() - t := ctx.Peek() - recoveryStartPos := t.Pos - s.maybeInjectStartToken(t, sv) - - out, err = s.expr.Parse(ctx, sv) - if err != nil { - return s.handleParseError(ctx, sv, err, start, recoveryStartPos) - } - if out == nil { - return nil, nil - } - - s.injectEndMetadata(ctx, sv, start) - return []reflect.Value{sv}, ctx.Apply() -} - -// handleParseError attempts recovery and returns an appropriate result. -func (s *strct) handleParseError(ctx *parseContext, sv reflect.Value, err error, start lexer.RawCursor, recoveryStartPos lexer.Position) ([]reflect.Value, error) { - result := ctx.tryRecover(err, sv) - - // Recovery succeeded - return partial struct with metadata - if result.recovered { - // If recovery didn't progress the lexer, we can't claim success. - // Returning a value without progressing would cause infinite loops - // or panics in the disjunction parser ("branch was accepted but did not progress"). - if !result.progressed { - ctx.MaybeUpdateError(err) - return nil, nil - } - _ = ctx.Apply() - s.injectEndMetadata(ctx, sv, start) - s.injectRecoveryMetadata(sv, recoveryStartPos, ctx.RawPeek().Pos, result.recoveredTokens) - return []reflect.Value{sv}, nil - } - - // Recovery failed - return partial struct with error - _ = ctx.Apply() - ctx.MaybeUpdateError(err) - return []reflect.Value{sv}, err -} - -// injectEndMetadata adds end position and token information to the struct. -func (s *strct) injectEndMetadata(ctx *parseContext, sv reflect.Value, start lexer.RawCursor) { - end := ctx.RawCursor() - t := ctx.RawPeek() - s.maybeInjectEndToken(t, sv) - s.maybeInjectTokens(ctx.Range(start, end), sv) -} - -// injectRecoveryMetadata marks the struct as recovered and records the recovery span and tokens. -func (s *strct) injectRecoveryMetadata(sv reflect.Value, startPos, endPos lexer.Position, recoveredTokens []lexer.Token) { - s.maybeInjectRecoveredSpan(startPos, sv) - s.maybeInjectRecoveredEnd(endPos, sv) - s.maybeInjectRecoveredTokens(recoveredTokens, sv) -} - -func (s *strct) maybeInjectStartToken(token *lexer.Token, v reflect.Value) { - if s.posFieldIndex == nil { - return - } - f := v.FieldByIndex(s.posFieldIndex) - f.Set(reflect.ValueOf(token.Pos).Convert(f.Type())) -} - -func (s *strct) maybeInjectEndToken(token *lexer.Token, v reflect.Value) { - if s.endPosFieldIndex == nil { - return - } - f := v.FieldByIndex(s.endPosFieldIndex) - f.Set(reflect.ValueOf(token.Pos).Convert(f.Type())) -} - -func (s *strct) maybeInjectTokens(tokens []lexer.Token, v reflect.Value) { - if s.tokensFieldIndex == nil { - return - } - v.FieldByIndex(s.tokensFieldIndex).Set(reflect.ValueOf(tokens)) -} - -func (s *strct) maybeInjectRecoveredSpan(pos lexer.Position, v reflect.Value) { - if s.recoveredSpanFieldIndex == nil { - return - } - f := v.FieldByIndex(s.recoveredSpanFieldIndex) - f.Set(reflect.ValueOf(pos).Convert(f.Type())) -} - -func (s *strct) maybeInjectRecoveredEnd(pos lexer.Position, v reflect.Value) { - if s.recoveredEndFieldIndex == nil { - return - } - f := v.FieldByIndex(s.recoveredEndFieldIndex) - f.Set(reflect.ValueOf(pos).Convert(f.Type())) -} - -func (s *strct) maybeInjectRecoveredTokens(tokens []lexer.Token, v reflect.Value) { - if s.recoveredTokensFieldIndex == nil { - return - } - v.FieldByIndex(s.recoveredTokensFieldIndex).Set(reflect.ValueOf(tokens)) -} - -type groupMatchMode int - -func (g groupMatchMode) String() string { - switch g { - case groupMatchOnce: - return "n" - case groupMatchZeroOrOne: - return "n?" - case groupMatchZeroOrMore: - return "n*" - case groupMatchOneOrMore: - return "n+" - case groupMatchNonEmpty: - return "n!" - } - panic("??") -} - -const ( - groupMatchOnce groupMatchMode = iota - groupMatchZeroOrOne = iota - groupMatchZeroOrMore = iota - groupMatchOneOrMore = iota - groupMatchNonEmpty = iota -) - -// ( ) - match once -// ( )* - match zero or more times -// ( )+ - match one or more times -// ( )? - match zero or once -// ( )! - must be a non-empty match -// -// The additional modifier "!" forces the content of the group to be non-empty if it does match. -type group struct { - expr node - mode groupMatchMode -} - -func (g *group) String() string { return ebnf(g) } -func (g *group) GoString() string { return fmt.Sprintf("group{%s}", g.mode) } -func (g *group) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(g)() - // Configure min/max matches. - min := 1 - max := 1 - switch g.mode { - case groupMatchNonEmpty: - out, err = g.expr.Parse(ctx, parent) - if err != nil { - return out, err - } - if len(out) == 0 { - t := ctx.Peek() - return out, Errorf(t.Pos, "sub-expression %s cannot be empty", g) - } - return out, nil - case groupMatchOnce: - return g.expr.Parse(ctx, parent) - case groupMatchZeroOrOne: - min = 0 - case groupMatchZeroOrMore: - min = 0 - max = MaxIterations - case groupMatchOneOrMore: - min = 1 - max = MaxIterations - } - matches := 0 - for ; matches < max; matches++ { - branch := ctx.Branch() - v, err := g.expr.Parse(branch, parent) - if err != nil { - ctx.MaybeUpdateError(err) - // Try to recover from the error - result := ctx.tryRecover(err, parent) - if result.recovered { - // Recovery succeeded - accept what we have and continue - out = append(out, v...) - ctx.Accept(branch) - continue // Try to parse more iterations after recovery - } - // Optional part failed to match. - if ctx.Stop(err, branch) { - out = append(out, v...) // Try to return as much of the parse tree as possible - return out, err - } - break - } - out = append(out, v...) - ctx.Accept(branch) - if v == nil { - break - } - } - // fmt.Printf("%d < %d < %d: out == nil? %v\n", min, matches, max, out == nil) - t := ctx.Peek() - if matches >= MaxIterations { - return nil, Errorf(t.Pos, "too many iterations of %s (> %d)", g, MaxIterations) - } - // avoid returning errors in parent nodes if the group is optional - if matches > 0 && matches < min { - return out, Errorf(t.Pos, "sub-expression %s must match at least once", g) - } - // The idea here is that something like "a"? is a successful match and that parsing should proceed. - if min == 0 && out == nil { - out = []reflect.Value{} - } - return out, nil -} - -// (?= ) for positive lookahead, (?! ) for negative lookahead; neither consumes input -type lookaheadGroup struct { - expr node - negative bool -} - -func (l *lookaheadGroup) String() string { return ebnf(l) } -func (l *lookaheadGroup) GoString() string { return "lookaheadGroup{}" } - -func (l *lookaheadGroup) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(l)() - // Create a branch to avoid advancing the parser as any match will be discarded - branch := ctx.Branch() - out, err = l.expr.Parse(branch, parent) - matchedLookahead := err == nil && out != nil - expectingMatch := !l.negative - if matchedLookahead != expectingMatch { - return nil, &UnexpectedTokenError{Unexpected: *ctx.Peek()} - } - return []reflect.Value{}, nil // Empty match slice means a match, unlike nil -} - -// {"|" } -type disjunction struct { - nodes []node -} - -func (d *disjunction) String() string { return ebnf(d) } -func (d *disjunction) GoString() string { return "disjunction{}" } - -func (d *disjunction) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(d)() - var ( - deepestError = 0 - firstError error - firstValues []reflect.Value - ) - for _, a := range d.nodes { - branch := ctx.Branch() - if value, err := a.Parse(branch, parent); err != nil { - // If this branch progressed too far and still didn't match, error out. - if ctx.Stop(err, branch) { - return value, err - } - // Show the closest error returned. The idea here is that the further the parser progresses - // without error, the more difficult it is to trace the error back to its root. - if branch.Cursor() >= deepestError { - firstError = err - firstValues = value - deepestError = branch.Cursor() - } - } else if value != nil { - bt := branch.RawPeek() - ct := ctx.RawPeek() - if bt == ct && bt.Type != lexer.EOF { - panic(Errorf(bt.Pos, "branch %s was accepted but did not progress the lexer at %s (%q)", a, bt.Pos, bt.Value)) - } - ctx.Accept(branch) - return value, nil - } - } - if firstError != nil { - ctx.MaybeUpdateError(firstError) - return firstValues, firstError - } - return nil, nil -} - -// ... -type sequence struct { - head bool // True if this is the head node. - node node - next *sequence -} - -func (s *sequence) String() string { return ebnf(s) } -func (s *sequence) GoString() string { return "sequence{}" } - -func (s *sequence) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(s)() - for n := s; n != nil; n = n.next { - child, err := n.node.Parse(ctx, parent) - out = append(out, child...) - if err != nil { - return out, err - } - if child == nil { - // Early exit if first value doesn't match, otherwise all values must match. - if n == s { - return nil, nil - } - token := ctx.Peek() - return out, &UnexpectedTokenError{Unexpected: *token, expectNode: n} - } - // Special-case for when children return an empty match. - // Appending an empty, non-nil slice to a nil slice returns a nil slice. - // https://go.dev/play/p/lV1Xk-IP6Ta - if out == nil { - out = []reflect.Value{} - } - } - return out, nil -} - -// @ -type capture struct { - field structLexerField - node node - recovery *nodeRecoveryConfig -} - -func (c *capture) String() string { return ebnf(c) } -func (c *capture) GoString() string { return "capture{}" } - -func (c *capture) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(c)() - start := ctx.RawCursor() - startPos := ctx.Peek().Pos - v, err := c.node.Parse(ctx, parent) - if v != nil { - ctx.Defer(ctx.Range(start, ctx.RawCursor()), parent, c.field, v) - } - if err != nil { - return []reflect.Value{parent}, err - } - if v == nil { - // Collect all applicable recovery strategies: - // 1. Node-level strategies (from struct tags or build-time RecoverTypeWith) - // 2. Parse-time type-specific strategies (from RecoverVia in Recover()) - var strategies []RecoveryStrategy - if c.recovery != nil { - strategies = append(strategies, c.recovery.strategies...) - } - - // Try recovery if we have strategies - if len(strategies) > 0 { - checkpoint := ctx.saveCheckpoint() - reportErr := &UnexpectedTokenError{Unexpected: *ctx.Peek(), expectNode: c.node} - - // Extract expected message (UnexpectedTokenError implements Error interface) - expectedMsg := reportErr.Message() - - for _, strategy := range strategies { - ctx.restoreCheckpoint(checkpoint) - - // Check if this is a retry strategy - if retryStrat, ok := strategy.(RetryStrategy); ok && retryStrat.IsRetryStrategy() { - recoveredValues, recoveredTokens, recovered := c.retryRecovery(ctx, retryStrat, parent) - if recovered { - endPos := ctx.Peek().Pos - c.recordEnhancedRecoveryError(ctx, startPos, endPos, expectedMsg, recoveredTokens, "skip_then_retry", reportErr) - if len(recoveredValues) > 0 { - ctx.Defer(ctx.Range(start, ctx.RawCursor()), parent, c.field, c.adaptValues(recoveredValues)) - } - return []reflect.Value{parent}, nil - } - continue - } - - // Try enhanced recovery if available - if enhanced, ok := strategy.(EnhancedRecoveryStrategy); ok { - result := enhanced.RecoverWithContext(ctx, reportErr, parent) - if result.recovered && len(result.values) > 0 { - endPos := ctx.Peek().Pos - c.recordEnhancedRecoveryError(ctx, startPos, endPos, expectedMsg, result.recoveredTokens, result.strategyName, reportErr) - ctx.Defer(ctx.Range(start, ctx.RawCursor()), parent, c.field, c.adaptValues(result.values)) - return []reflect.Value{parent}, nil - } - } - } - ctx.restoreCheckpoint(checkpoint) - } - return nil, nil - } - return []reflect.Value{parent}, nil -} - -// retryRecovery implements retry-at-each-position for capture nodes. -// Returns recovered values, recovered tokens, and whether recovery succeeded. -func (c *capture) retryRecovery(ctx *parseContext, strategy RetryStrategy, parent reflect.Value) ([]reflect.Value, []lexer.Token, bool) { - maxSkip := 100 - if stru, ok := strategy.(*SkipThenRetryUntilStrategy); ok && stru.MaxSkip > 0 { - maxSkip = stru.MaxSkip - } - - var recoveredTokens []lexer.Token - for len(recoveredTokens) < maxSkip { - if strategy.ShouldStop(ctx) { - return nil, recoveredTokens, false - } - recoveredTokens = append(recoveredTokens, *ctx.Next()) - values, err := c.node.Parse(ctx, parent) - if err == nil && values != nil { - return values, recoveredTokens, true - } - } - return nil, recoveredTokens, false -} - -// adaptValues adapts recovered values to the field type. -func (c *capture) adaptValues(recoveredValues []reflect.Value) []reflect.Value { - fieldType := c.field.Type - adaptedValues := make([]reflect.Value, 0, len(recoveredValues)) - for _, rv := range recoveredValues { - if rv.Kind() == reflect.Ptr && !rv.IsNil() { - if fieldType.Kind() == reflect.Ptr && rv.Type() == fieldType { - adaptedValues = append(adaptedValues, rv.Elem()) - } else { - adaptedValues = append(adaptedValues, rv) - } - } else { - adaptedValues = append(adaptedValues, rv) - } - } - return adaptedValues -} - -// recordEnhancedRecoveryError records a recovery error with rich context. -func (c *capture) recordEnhancedRecoveryError(ctx *parseContext, startPos, endPos lexer.Position, message string, recoveredTokens []lexer.Token, strategyName string, underlying error) { - var label string - if c.recovery != nil { - label = c.recovery.label - } - err := makeRecoveredError( - startPos, - endPos, - message, - label, - recoveredTokens, - strategyName, - underlying, - ) - ctx.addRecoveryError(err) -} - -// SetRecovery sets recovery configuration on the capture node. -func (c *capture) SetRecovery(config *nodeRecoveryConfig) { - c.recovery = config -} - -// GetRecovery returns the recovery configuration. -func (c *capture) GetRecovery() *nodeRecoveryConfig { - return c.recovery -} - -// - named lexer token reference -type reference struct { - typ lexer.TokenType - identifier string // Used for informational purposes. -} - -func (r *reference) String() string { return ebnf(r) } -func (r *reference) GoString() string { return fmt.Sprintf("reference{%s}", r.identifier) } - -func (r *reference) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(r)() - token, cursor := ctx.PeekAny(func(t lexer.Token) bool { - return t.Type == r.typ - }) - if token.Type != r.typ { - return nil, nil - } - ctx.FastForward(cursor) - return []reflect.Value{reflect.ValueOf(token.Value)}, nil -} - -// Match a token literal exactly "..."[:]. -type literal struct { - s string - t lexer.TokenType - tt string // Used for display purposes - symbolic name of t. -} - -func (l *literal) String() string { return ebnf(l) } -func (l *literal) GoString() string { return fmt.Sprintf("literal{%q, %q}", l.s, l.tt) } - -func (l *literal) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(l)() - match := func(t lexer.Token) bool { - var equal bool - if ctx.caseInsensitive[t.Type] { - equal = l.s == "" || strings.EqualFold(t.Value, l.s) - } else { - equal = l.s == "" || t.Value == l.s - } - return (l.t == lexer.EOF || l.t == t.Type) && equal - } - token, cursor := ctx.PeekAny(match) - if match(token) { - ctx.FastForward(cursor) - return []reflect.Value{reflect.ValueOf(token.Value)}, nil - } - return nil, nil -} - -type negation struct { - node node -} - -func (n *negation) String() string { return ebnf(n) } -func (n *negation) GoString() string { return "negation{}" } - -func (n *negation) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(n)() - // Create a branch to avoid advancing the parser, but call neither Stop nor Accept on it - // since we will discard a match. - branch := ctx.Branch() - notEOF := ctx.Peek() - if notEOF.EOF() { - // EOF cannot match a negation, which expects something - return nil, nil - } - - out, err = n.node.Parse(branch, parent) - if out != nil && err == nil { - // out being non-nil means that what we don't want is actually here, so we report nomatch - return nil, &UnexpectedTokenError{Unexpected: *notEOF} - } - - // Just give the next token - next := ctx.Next() - return []reflect.Value{reflect.ValueOf(next.Value)}, nil -} - -// Attempt to transform values to given type. -// -// This will dereference pointers, and attempt to parse strings into integer values, floats, etc. -func conform(t reflect.Type, values []reflect.Value) (out []reflect.Value, err error) { - for _, v := range values { - for t != v.Type() && t.Kind() == reflect.Ptr && v.Kind() != reflect.Ptr { - // This can occur during partial failure. - if !v.CanAddr() { - return - } - v = v.Addr() - } - - // Dereference pointer if target is non-pointer struct. - if v.Kind() == reflect.Ptr && t.Kind() == reflect.Struct && !v.IsNil() { - if v.Elem().Type() == t { - v = v.Elem() - } - } - - // Already of the right kind, don't bother converting. - if v.Kind() == t.Kind() { - if v.Type() != t { - v = v.Convert(t) - } - out = append(out, v) - continue - } - - kind := t.Kind() - switch kind { // nolint: exhaustive - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - n, err := strconv.ParseInt(v.String(), 0, sizeOfKind(kind)) - if err != nil { - return nil, err - } - v = reflect.New(t).Elem() - v.SetInt(n) - - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - n, err := strconv.ParseUint(v.String(), 0, sizeOfKind(kind)) - if err != nil { - return nil, err - } - v = reflect.New(t).Elem() - v.SetUint(n) - - case reflect.Bool: - v = reflect.ValueOf(true) - - case reflect.Float32, reflect.Float64: - n, err := strconv.ParseFloat(v.String(), sizeOfKind(kind)) - if err != nil { - return nil, err - } - v = reflect.New(t).Elem() - v.SetFloat(n) - } - - out = append(out, v) - } - return out, nil -} - -func sizeOfKind(kind reflect.Kind) int { - switch kind { // nolint: exhaustive - case reflect.Int8, reflect.Uint8: - return 8 - case reflect.Int16, reflect.Uint16: - return 16 - case reflect.Int32, reflect.Uint32, reflect.Float32: - return 32 - case reflect.Int64, reflect.Uint64, reflect.Float64: - return 64 - case reflect.Int, reflect.Uint: - return strconv.IntSize - } - panic("unsupported kind " + kind.String()) -} - -func maybeRef(tmpl reflect.Type, strct reflect.Value) reflect.Value { - if strct.Type() == tmpl { - return strct - } - if tmpl.Kind() == reflect.Ptr { - if strct.CanAddr() { - return strct.Addr() - } - ptr := reflect.New(tmpl) - ptr.Set(strct) - return ptr - } - return strct -} - -// Set field. -// -// If field is a pointer the pointer will be set to the value. If field is a string, value will be -// appended. If field is a slice, value will be appended to slice. -// -// For all other types, an attempt will be made to convert the string to the corresponding -// type (int, float32, etc.). -func setField(tokens []lexer.Token, strct reflect.Value, field structLexerField, fieldValue []reflect.Value) (err error) { // nolint: gocognit - f := strct.FieldByIndex(field.Index) - - // Any kind of pointer, hydrate it first. - if f.Kind() == reflect.Ptr { - if f.IsNil() { - fv := reflect.New(f.Type().Elem()).Elem() - f.Set(fv.Addr()) - f = fv - } else { - f = f.Elem() - } - } - - var pos lexer.Position - if len(tokens) > 0 { - pos = tokens[0].Pos - } - - if f.Type() == tokenType { - f.Set(reflect.ValueOf(tokens[0])) - return nil - } - - if f.Type() == tokensType { - f.Set(reflect.ValueOf(tokens)) - return nil - } - - if f.CanAddr() { - if d, ok := f.Addr().Interface().(Capture); ok { - ifv := make([]string, 0, len(fieldValue)) - for _, v := range fieldValue { - ifv = append(ifv, v.Interface().(string)) - } - err = d.Capture(ifv) - if err != nil { - return Wrapf(pos, err, "failed to capture") - } - return nil - } else if d, ok := f.Addr().Interface().(encoding.TextUnmarshaler); ok { - for _, v := range fieldValue { - if err := d.UnmarshalText([]byte(v.Interface().(string))); err != nil { - return Wrapf(pos, err, "failed to unmarshal text") - } - } - return nil - } - } - - if f.Kind() == reflect.Slice { - sliceElemType := f.Type().Elem() - if sliceElemType.Implements(captureType) || reflect.PtrTo(sliceElemType).Implements(captureType) { - if sliceElemType.Kind() == reflect.Ptr { - sliceElemType = sliceElemType.Elem() - } - for _, v := range fieldValue { - d := reflect.New(sliceElemType).Interface().(Capture) - if err := d.Capture([]string{v.Interface().(string)}); err != nil { - return Wrapf(pos, err, "failed to capture") - } - eltValue := reflect.ValueOf(d) - if f.Type().Elem().Kind() != reflect.Ptr { - eltValue = eltValue.Elem() - } - f.Set(reflect.Append(f, eltValue)) - } - } else { - fieldValue, err = conform(sliceElemType, fieldValue) - if err != nil { - return Wrapf(pos, err, "failed to conform") - } - f.Set(reflect.Append(f, fieldValue...)) - } - return nil - } - - // Strings concatenate all captured tokens. - if f.Kind() == reflect.String { - fieldValue, err = conform(f.Type(), fieldValue) - if err != nil { - return Wrapf(pos, err, "failed to conform") - } - if len(fieldValue) == 0 { - return nil - } - accumulated := f.String() - for _, v := range fieldValue { - accumulated += v.String() - } - f.SetString(accumulated) - return nil - } - - // Coalesce multiple tokens into one. This allows eg. ["-", "10"] to be captured as separate tokens but - // parsed as a single string "-10". - if len(fieldValue) > 1 { - out := []string{} - for _, v := range fieldValue { - out = append(out, v.String()) - } - fieldValue = []reflect.Value{reflect.ValueOf(strings.Join(out, ""))} - } - - fieldValue, err = conform(f.Type(), fieldValue) - if err != nil { - return Wrapf(pos, err, "failed to conform") - } - if len(fieldValue) == 0 { - return nil // Nothing to capture, can happen when trying to get a partial parse tree - } - - fv := fieldValue[0] - - switch f.Kind() { // nolint: exhaustive - // Numeric types will increment if the token can not be coerced. - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - if fv.Type() != f.Type() { - f.SetInt(f.Int() + 1) - } else { - f.Set(fv) - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - if fv.Type() != f.Type() { - f.SetUint(f.Uint() + 1) - } else { - f.Set(fv) - } - - case reflect.Float32, reflect.Float64: - if fv.Type() != f.Type() { - f.SetFloat(f.Float() + 1) - } else { - f.Set(fv) - } - - case reflect.Bool, reflect.Struct, reflect.Interface: - if f.Kind() == reflect.Bool && fv.Kind() == reflect.Bool { - f.SetBool(fv.Bool()) - break - } - if fv.Type() != f.Type() { - return Errorf(pos, "value %q is not correct type %s", fv, f.Type()) - } - f.Set(fv) - - default: - return Errorf(pos, "unsupported field type %s for field %s", f.Type(), field.Name) - } - return nil -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/options.go b/example/vendor/github.com/alecthomas/participle/v2/options.go deleted file mode 100644 index d96b449..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/options.go +++ /dev/null @@ -1,200 +0,0 @@ -package participle - -import ( - "fmt" - "io" - "reflect" - - "github.com/alecthomas/participle/v2/lexer" -) - -// MaxLookahead can be used with UseLookahead to get pseudo-infinite -// lookahead without the risk of pathological cases causing a stack -// overflow. -const MaxLookahead = 99999 - -// An Option to modify the behaviour of the Parser. -type Option func(p *parserOptions) error - -// Lexer is an Option that sets the lexer to use with the given grammar. -func Lexer(def lexer.Definition) Option { - return func(p *parserOptions) error { - p.lex = def - return nil - } -} - -// UseLookahead allows branch lookahead up to "n" tokens. -// -// If parsing cannot be disambiguated before "n" tokens of lookahead, parsing will fail. -// -// Note that increasing lookahead has a minor performance impact, but also -// reduces the accuracy of error reporting. -// -// If "n" is negative, it will be treated as "infinite" lookahead. -// This can have a large impact on performance, and does not provide any -// protection against stack overflow during parsing. -// In most cases, using MaxLookahead will achieve the same results in practice, -// but with a concrete upper bound to prevent pathological behavior in the parser. -// Using infinite lookahead can be useful for testing, or for parsing especially -// ambiguous grammars. Use at your own risk! -func UseLookahead(n int) Option { - return func(p *parserOptions) error { - p.useLookahead = n - return nil - } -} - -// CaseInsensitive allows the specified token types to be matched case-insensitively. -// -// Note that the lexer itself will also have to be case-insensitive; this option -// just controls whether literals in the grammar are matched case insensitively. -func CaseInsensitive(tokens ...string) Option { - return func(p *parserOptions) error { - for _, token := range tokens { - p.caseInsensitive[token] = true - } - return nil - } -} - -// ParseTypeWith associates a custom parsing function with some interface type T. -// When the parser encounters a value of type T, it will use the given parse function to -// parse a value from the input. -// -// The parse function may return anything it wishes as long as that value satisfies the interface T. -// However, only a single function can be defined for any type T. -// If you want to have multiple parse functions returning types that satisfy the same interface, you'll -// need to define new wrapper types for each one. -// -// This can be useful if you want to parse a DSL within the larger grammar, or if you want -// to implement an optimized parsing scheme for some portion of the grammar. -func ParseTypeWith[T any](parseFn func(*lexer.PeekingLexer) (T, error)) Option { - return func(p *parserOptions) error { - parseFnVal := reflect.ValueOf(parseFn) - parseFnType := parseFnVal.Type() - if parseFnType.Out(0).Kind() != reflect.Interface { - return fmt.Errorf("ParseTypeWith: T must be an interface type (got %s)", parseFnType.Out(0)) - } - prodType := parseFnType.Out(0) - p.customDefs = append(p.customDefs, customDef{prodType, parseFnVal}) - return nil - } -} - -// Union associates several member productions with some interface type T. -// Given members X, Y, Z, and W for a union type U, then the EBNF rule is: -// -// U = X | Y | Z | W . -// -// When the parser encounters a field of type T, it will attempt to parse each member -// in sequence and take the first match. Because of this, the order in which the -// members are defined is important. You must be careful to order your members appropriately. -// -// An example of a bad parse that can happen if members are out of order: -// -// If the first member matches A, and the second member matches A B, -// and the source string is "AB", then the parser will only match A, and will not -// try to parse the second member at all. -func Union[T any](members ...T) Option { - return func(p *parserOptions) error { - var t T - unionType := reflect.TypeOf(&t).Elem() - if unionType.Kind() != reflect.Interface { - return fmt.Errorf("union: union type must be an interface (got %s)", unionType) - } - memberTypes := make([]reflect.Type, 0, len(members)) - for _, m := range members { - memberTypes = append(memberTypes, reflect.TypeOf(m)) - } - p.unionDefs = append(p.unionDefs, unionDef{unionType, memberTypes}) - return nil - } -} - - - -// ParseOption modifies how an individual parse is applied. -type ParseOption func(p *parseContext) - -// Trace the parse to "w". -func Trace(w io.Writer) ParseOption { - return func(p *parseContext) { - p.trace = w - } -} - -// AllowTrailing tokens without erroring. -// -// That is, do not error if a full parse completes but additional tokens remain. -func AllowTrailing(ok bool) ParseOption { - return func(p *parseContext) { - p.allowTrailing = ok - } -} - -// Recover enables error recovery during parsing using the given strategies. -// -// When parsing encounters an error, the parser will attempt each recovery -// strategy in order. If a strategy succeeds, the error is recorded and parsing -// continues. This allows the parser to report multiple errors and produce a -// partial AST even when the input contains errors. -// -// Example usage: -// -// ast, err := parser.ParseString("", input, -// participle.Recover( -// participle.SkipUntil(";", "}"), -// participle.NestedDelimiters("(", ")", [2]string{"[", "]"}), -// )) -// -// If parsing succeeds with recovered errors, the returned error will be a -// *RecoveryError containing all accumulated errors. -func Recover(strategies ...RecoveryStrategy) ParseOption { - return func(p *parseContext) { - if p.recovery == nil { - p.recovery = &recoveryConfig{ - maxErrors: 100, // Default max errors - } - } - p.recovery.strategies = append(p.recovery.strategies, strategies...) - } -} - -// MaxRecoveryErrors sets the maximum number of errors to collect during recovery. -// Once this limit is reached, parsing will stop. Use 0 for unlimited errors. -func MaxRecoveryErrors(max int) ParseOption { - return func(p *parseContext) { - if p.recovery == nil { - p.recovery = &recoveryConfig{} - } - p.recovery.maxErrors = max - } -} - -// TraceRecovery enables detailed tracing of recovery attempts to the given writer. -// This is useful for debugging recovery strategies and understanding why -// certain inputs fail to recover properly. -// -// Output includes: -// - When recovery is attempted and why -// - Which strategies are tried -// - What tokens are skipped -// - Whether recovery succeeds or fails -// -// Example usage: -// -// ast, err := parser.ParseString("", input, -// participle.Recover(participle.SkipUntil(";")), -// participle.TraceRecovery(os.Stderr), -// ) -func TraceRecovery(w io.Writer) ParseOption { - return func(p *parseContext) { - if p.recovery == nil { - p.recovery = &recoveryConfig{ - maxErrors: 100, - } - } - p.recovery.traceWriter = w - } -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/parser.go b/example/vendor/github.com/alecthomas/participle/v2/parser.go deleted file mode 100644 index 4f1a259..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/parser.go +++ /dev/null @@ -1,345 +0,0 @@ -package participle - -import ( - "bytes" - "fmt" - "io" - "reflect" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -type unionDef struct { - typ reflect.Type - members []reflect.Type -} - -type customDef struct { - typ reflect.Type - parseFn reflect.Value -} - -// recoveryDef associates recovery strategies with a type. -type recoveryDef struct { - typ reflect.Type - strategies []RecoveryStrategy -} - -type parserOptions struct { - lex lexer.Definition - rootType reflect.Type - typeNodes map[reflect.Type]node - useLookahead int - caseInsensitive map[string]bool - caseInsensitiveTokens map[lexer.TokenType]bool - mappers []mapperByToken - unionDefs []unionDef - customDefs []customDef - recoveryDefs []recoveryDef - elide []string -} - -// A Parser for a particular grammar and lexer. -type Parser[G any] struct { - parserOptions -} - -// ParserForProduction returns a new parser for the given production in grammar G. -func ParserForProduction[P, G any](parser *Parser[G]) (*Parser[P], error) { - t := reflect.TypeOf(*new(P)) - _, ok := parser.typeNodes[t] - if !ok { - return nil, fmt.Errorf("parser does not contain a production of type %s", t) - } - return (*Parser[P])(parser), nil -} - -// MustBuild calls Build[G](options...) and panics if an error occurs. -func MustBuild[G any](options ...Option) *Parser[G] { - parser, err := Build[G](options...) - if err != nil { - panic(err) - } - return parser -} - -// Build constructs a parser for the given grammar. -// -// If "Lexer()" is not provided as an option, a default lexer based on text/scanner will be used. This scans typical Go- -// like tokens. -// -// See documentation for details. -func Build[G any](options ...Option) (parser *Parser[G], err error) { - // Configure Parser[G] struct with defaults + options. - p := &Parser[G]{ - parserOptions: parserOptions{ - lex: lexer.TextScannerLexer, - caseInsensitive: map[string]bool{}, - useLookahead: 1, - }, - } - for _, option := range options { - if err = option(&p.parserOptions); err != nil { - return nil, err - } - } - - symbols := p.lex.Symbols() - if len(p.mappers) > 0 { - mappers := map[lexer.TokenType][]Mapper{} - for _, mapper := range p.mappers { - if len(mapper.symbols) == 0 { - mappers[lexer.EOF] = append(mappers[lexer.EOF], mapper.mapper) - } else { - for _, symbol := range mapper.symbols { - if rn, ok := symbols[symbol]; !ok { - return nil, fmt.Errorf("mapper %#v uses unknown token %q", mapper, symbol) - } else { // nolint: golint - mappers[rn] = append(mappers[rn], mapper.mapper) - } - } - } - } - p.lex = &mappingLexerDef{p.lex, func(t lexer.Token) (lexer.Token, error) { - combined := make([]Mapper, 0, len(mappers[t.Type])+len(mappers[lexer.EOF])) - combined = append(combined, mappers[lexer.EOF]...) - combined = append(combined, mappers[t.Type]...) - - var err error - for _, m := range combined { - t, err = m(t) - if err != nil { - return t, err - } - } - return t, nil - }} - } - - context := newGeneratorContext(p.lex) - if err := context.addCustomDefs(p.customDefs); err != nil { - return nil, err - } - if err := context.addUnionDefs(p.unionDefs); err != nil { - return nil, err - } - if err := context.addRecoveryDefs(p.recoveryDefs); err != nil { - return nil, err - } - - var grammar G - v := reflect.ValueOf(&grammar) - if v.Kind() == reflect.Interface { - v = v.Elem() - } - p.rootType = v.Type() - rootNode, err := context.parseType(p.rootType) - if err != nil { - return nil, err - } - if err := validate(rootNode); err != nil { - return nil, err - } - p.typeNodes = context.typeNodes - p.typeNodes[p.rootType] = rootNode - p.setCaseInsensitiveTokens() - return p, nil -} - -// Lexer returns the parser's builtin lexer. -func (p *Parser[G]) Lexer() lexer.Definition { - return p.lex -} - -// Lex uses the parser's lexer to tokenise input. -// Parameter filename is used as an opaque prefix in error messages. -func (p *Parser[G]) Lex(filename string, r io.Reader) ([]lexer.Token, error) { - lex, err := p.lex.Lex(filename, r) - if err != nil { - return nil, err - } - tokens, err := lexer.ConsumeAll(lex) - return tokens, err -} - -// ParseFromLexer into grammar v which must be of the same type as the grammar passed to -// Build(). -// -// This may return a Error. -func (p *Parser[G]) ParseFromLexer(lex *lexer.PeekingLexer, options ...ParseOption) (*G, error) { - v := new(G) - rv := reflect.ValueOf(v) - parseNode, err := p.parseNodeFor(rv) - if err != nil { - return nil, err - } - ctx := newParseContext(lex, p.useLookahead, p.caseInsensitiveTokens) - defer func() { *lex = ctx.PeekingLexer }() - for _, option := range options { - option(&ctx) - } - // If the grammar implements Parseable, use it. - if parseable, ok := any(v).(Parseable); ok { - return v, p.rootParseable(&ctx, parseable) - } - return v, p.parseOne(&ctx, parseNode, rv) -} - -func (p *Parser[G]) setCaseInsensitiveTokens() { - p.caseInsensitiveTokens = map[lexer.TokenType]bool{} - for sym, tt := range p.lex.Symbols() { - if p.caseInsensitive[sym] { - p.caseInsensitiveTokens[tt] = true - } - } -} - -func (p *Parser[G]) parse(lex lexer.Lexer, options ...ParseOption) (v *G, err error) { - peeker, err := lexer.Upgrade(lex, p.getElidedTypes()...) - if err != nil { - return nil, err - } - return p.ParseFromLexer(peeker, options...) -} - -// Parse from r into grammar v which must be of the same type as the grammar passed to -// Build(). Parameter filename is used as an opaque prefix in error messages. -// -// This may return an Error. -func (p *Parser[G]) Parse(filename string, r io.Reader, options ...ParseOption) (v *G, err error) { - if filename == "" { - filename = lexer.NameOfReader(r) - } - lex, err := p.lex.Lex(filename, r) - if err != nil { - return nil, err - } - return p.parse(lex, options...) -} - -// ParseString from s into grammar v which must be of the same type as the grammar passed to -// Build(). Parameter filename is used as an opaque prefix in error messages. -// -// This may return an Error. -func (p *Parser[G]) ParseString(filename string, s string, options ...ParseOption) (v *G, err error) { - var lex lexer.Lexer - if sl, ok := p.lex.(lexer.StringDefinition); ok { - lex, err = sl.LexString(filename, s) - } else { - lex, err = p.lex.Lex(filename, strings.NewReader(s)) - } - if err != nil { - return nil, err - } - return p.parse(lex, options...) -} - -// ParseBytes from b into grammar v which must be of the same type as the grammar passed to -// Build(). Parameter filename is used as an opaque prefix in error messages. -// -// This may return an Error. -func (p *Parser[G]) ParseBytes(filename string, b []byte, options ...ParseOption) (v *G, err error) { - var lex lexer.Lexer - if sl, ok := p.lex.(lexer.BytesDefinition); ok { - lex, err = sl.LexBytes(filename, b) - } else { - lex, err = p.lex.Lex(filename, bytes.NewReader(b)) - } - if err != nil { - return nil, err - } - return p.parse(lex, options...) -} - -func (p *Parser[G]) parseOne(ctx *parseContext, parseNode node, rv reflect.Value) error { - err := p.parseInto(ctx, parseNode, rv) - if err != nil { - // If we had recovery errors but no final error, return the recovery errors - if len(ctx.recoveryErrors) > 0 { - ctx.recoveryErrors = append(ctx.recoveryErrors, err) - return &RecoveryError{Errors: ctx.recoveryErrors} - } - return err - } - token := ctx.Peek() - if !token.EOF() && !ctx.allowTrailing { - err = ctx.DeepestError(&UnexpectedTokenError{Unexpected: *token}) - if len(ctx.recoveryErrors) > 0 { - ctx.recoveryErrors = append(ctx.recoveryErrors, err) - return &RecoveryError{Errors: ctx.recoveryErrors} - } - return err - } - // Return accumulated recovery errors if any - if len(ctx.recoveryErrors) > 0 { - return &RecoveryError{Errors: ctx.recoveryErrors} - } - return nil -} - -func (p *Parser[G]) parseInto(ctx *parseContext, parseNode node, rv reflect.Value) error { - if rv.IsNil() { - return fmt.Errorf("target must be a non-nil pointer to a struct or interface, but is a nil %s", rv.Type()) - } - pv, err := p.typeNodes[rv.Type().Elem()].Parse(ctx, rv.Elem()) - if len(pv) > 0 && pv[0].Type() == rv.Elem().Type() { - rv.Elem().Set(reflect.Indirect(pv[0])) - } - if err != nil { - return err - } - if pv == nil { - token := ctx.Peek() - return ctx.DeepestError(&UnexpectedTokenError{Unexpected: *token}) - } - return nil -} - -func (p *Parser[G]) rootParseable(ctx *parseContext, parseable Parseable) error { - if err := parseable.Parse(&ctx.PeekingLexer); err != nil { - if err == NextMatch { - err = &UnexpectedTokenError{Unexpected: *ctx.Peek()} - } else { - err = &ParseError{Msg: err.Error(), Pos: ctx.Peek().Pos} - } - return ctx.DeepestError(err) - } - peek := ctx.Peek() - if !peek.EOF() && !ctx.allowTrailing { - return ctx.DeepestError(&UnexpectedTokenError{Unexpected: *peek}) - } - return nil -} - -func (p *Parser[G]) getElidedTypes() []lexer.TokenType { - symbols := p.lex.Symbols() - elideTypes := make([]lexer.TokenType, 0, len(p.elide)) - for _, elide := range p.elide { - rn, ok := symbols[elide] - if !ok { - panic(fmt.Errorf("Elide() uses unknown token %q", elide)) - } - elideTypes = append(elideTypes, rn) - } - return elideTypes -} - -func (p *Parser[G]) parseNodeFor(v reflect.Value) (node, error) { - t := v.Type() - if t.Kind() == reflect.Interface { - t = t.Elem() - } - if t.Kind() != reflect.Ptr || (t.Elem().Kind() != reflect.Struct && t.Elem().Kind() != reflect.Interface) { - return nil, fmt.Errorf("expected a pointer to a struct or interface, but got %s", t) - } - parseNode := p.typeNodes[t] - if parseNode == nil { - t = t.Elem() - parseNode = p.typeNodes[t] - } - if parseNode == nil { - return nil, fmt.Errorf("parser does not know how to parse values of type %s", t) - } - return parseNode, nil -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/railroad.png b/example/vendor/github.com/alecthomas/participle/v2/railroad.png deleted file mode 100644 index 3388484..0000000 Binary files a/example/vendor/github.com/alecthomas/participle/v2/railroad.png and /dev/null differ diff --git a/example/vendor/github.com/alecthomas/participle/v2/recovery.go b/example/vendor/github.com/alecthomas/participle/v2/recovery.go deleted file mode 100644 index 856c648..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/recovery.go +++ /dev/null @@ -1,1068 +0,0 @@ -package participle - -import ( - "fmt" - "io" - "reflect" - "regexp" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -// RecoveryStrategy defines a strategy for recovering from parse errors. -// -// Error recovery allows the parser to continue parsing after encountering an error, -// collecting multiple errors and producing a partial AST. This is inspired by -// Chumsky's recovery system in Rust and classic compiler panic-mode recovery. -// -// There is no silver bullet strategy for error recovery. By definition, if the input -// to a parser is invalid then the parser can only make educated guesses as to the -// meaning of the input. Different recovery strategies will work better for different -// languages, and for different patterns within those languages. -type RecoveryStrategy interface { - // Recover attempts to recover from a parse error. - // - // Parameters: - // - ctx: The parse context (positioned after the failed parse attempt) - // - err: The error that triggered recovery - // - parent: The parent value being parsed into - // - // Returns: - // - recovered: true if recovery was successful - // - values: any values recovered (may be nil/fallback for skip strategies) - // - newErr: the error to report (may be modified/wrapped) - Recover(ctx *parseContext, err error, parent reflect.Value) (recovered bool, values []reflect.Value, newErr error) -} - -// recoveryConfig holds recovery configuration for a parse context. -type recoveryConfig struct { - strategies []RecoveryStrategy // Recovery strategies - errors []error - maxErrors int - traceWriter io.Writer // If non-nil, write recovery trace to this writer -} - -// recoveryResult holds the result of a recovery attempt with additional context. -type recoveryResult struct { - recovered bool - values []reflect.Value - err error - recoveredTokens []lexer.Token // Tokens that were consumed during recovery - strategyName string - progressed bool // Whether the lexer position advanced during recovery -} - -// EnhancedRecoveryStrategy is an optional interface for strategies that provide -// enhanced recovery information including recovered tokens. -type EnhancedRecoveryStrategy interface { - RecoveryStrategy - // RecoverWithContext performs recovery and returns detailed information about - // what tokens were consumed. This is used for populating recovery metadata fields. - RecoverWithContext(ctx *parseContext, err error, parent reflect.Value) recoveryResult - // Name returns a human-readable name for this strategy (used in error messages). - Name() string -} - -// RecoveryError wraps multiple errors that occurred during parsing with recovery. -type RecoveryError struct { - Errors []error -} - -func (r *RecoveryError) Error() string { - if len(r.Errors) == 0 { - return "no errors" - } - if len(r.Errors) == 1 { - return r.Errors[0].Error() - } - msg := r.Errors[0].Error() - for i := 1; i < len(r.Errors); i++ { - msg += "\n" + r.Errors[i].Error() - } - return msg -} - -// Unwrap returns the first error for compatibility with errors.Is/As. -func (r *RecoveryError) Unwrap() error { - if len(r.Errors) == 0 { - return nil - } - return r.Errors[0] -} - -// RecoveredParseError represents a parse error that was recovered from, -// with additional context about what tokens were consumed during recovery and where. -type RecoveredParseError struct { - // Pos is the position where the error occurred. - Pos lexer.Position - // EndPos is the position where recovery ended (after recovered tokens). - EndPos lexer.Position - // Expected is the error message describing what was expected. - Expected string - // Label is a descriptive name for what was being parsed (e.g., "expression", "statement"). - Label string - // RecoveredTokens are the tokens that were consumed during recovery. - RecoveredTokens []lexer.Token - // Strategy is the name of the recovery strategy that succeeded. - Strategy string - // Underlying is the original error that triggered recovery. - Underlying error -} - -func (e *RecoveredParseError) Error() string { - return FormatError(e) -} - -func (e *RecoveredParseError) Position() lexer.Position { - return e.Pos -} - -// Message implements the Error interface, providing a richly formatted error message. -func (e *RecoveredParseError) Message() string { - return e.buildMessage() -} - -// formatRecoveredTokens returns a human-readable representation of recovered tokens. -func (e *RecoveredParseError) formatRecoveredTokens() string { - if len(e.RecoveredTokens) == 0 { - return "" - } - if len(e.RecoveredTokens) == 1 { - return fmt.Sprintf("%q", e.RecoveredTokens[0].Value) - } - if len(e.RecoveredTokens) <= 3 { - var parts []string - for _, t := range e.RecoveredTokens { - parts = append(parts, fmt.Sprintf("%q", t.Value)) - } - return strings.Join(parts, ", ") - } - // For longer sequences, show first 2 and count - return fmt.Sprintf("%q, %q, ... (%d tokens total)", - e.RecoveredTokens[0].Value, - e.RecoveredTokens[1].Value, - len(e.RecoveredTokens)) -} - -func (e *RecoveredParseError) buildMessage() string { - var parts []string - - // Start with label context if available - if e.Label != "" { - parts = append(parts, fmt.Sprintf("in %s", e.Label)) - } - - // Add the core error message - parts = append(parts, e.Expected) - - // Add information about what was recovered - if len(e.RecoveredTokens) > 0 { - parts = append(parts, fmt.Sprintf("(skipped %s)", e.formatRecoveredTokens())) - } - - return strings.Join(parts, ": ") -} - -// Unwrap returns the underlying error. -func (e *RecoveredParseError) Unwrap() error { - return e.Underlying -} - -// makeRecoveredError creates a RecoveredParseError with proper context. -func makeRecoveredError( - pos lexer.Position, - endPos lexer.Position, - expected string, - label string, - recoveredTokens []lexer.Token, - strategy string, - underlying error, -) *RecoveredParseError { - return &RecoveredParseError{ - Pos: pos, - EndPos: endPos, - Expected: expected, - Label: label, - RecoveredTokens: recoveredTokens, - Strategy: strategy, - Underlying: underlying, - } -} - -// SkipUntilStrategy skips tokens until one of the synchronization tokens is found. -// -// This is the classic "panic mode" recovery strategy from compiler theory. -// It's simple but effective for languages with clear statement terminators -// (like semicolons) or block delimiters. -// -// Example usage: -// -// parser.ParseString("", input, participle.Recover(SkipUntil(";", "}", ")"))) -type SkipUntilStrategy struct { - // Tokens to synchronize on (the parser will stop before these tokens) - SyncTokens []string - // If true, consume the sync token; if false, leave it for the next parse - ConsumeSyncToken bool - // Fallback returns a fallback value when recovery succeeds. - // If nil, an empty/zero value is used. - Fallback func() interface{} -} - -// SkipUntil creates a recovery strategy that skips tokens until a sync token is found. -// -// The sync tokens are typically statement terminators (";"), block delimiters ("}", ")"), -// or keywords that start new constructs ("if", "while", "func", etc.). -func SkipUntil(tokens ...string) *SkipUntilStrategy { - return &SkipUntilStrategy{ - SyncTokens: tokens, - ConsumeSyncToken: false, - } -} - -// SkipPast creates a recovery strategy that skips tokens until a sync token is found, -// then consumes the sync token. -func SkipPast(tokens ...string) *SkipUntilStrategy { - return &SkipUntilStrategy{ - SyncTokens: tokens, - ConsumeSyncToken: true, - } -} - -// WithFallback sets a fallback value generator for the skip strategy. -func (s *SkipUntilStrategy) WithFallback(f func() interface{}) *SkipUntilStrategy { - s.Fallback = f - return s -} - -func (s *SkipUntilStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - result := s.RecoverWithContext(ctx, err, parent) - return result.recovered, result.values, result.err -} - -// RecoverWithContext implements EnhancedRecoveryStrategy. -func (s *SkipUntilStrategy) RecoverWithContext(ctx *parseContext, err error, parent reflect.Value) recoveryResult { - syncSet := make(map[string]bool) - for _, t := range s.SyncTokens { - syncSet[t] = true - } - - var recoveredTokens []lexer.Token - - // Skip tokens until we find a sync token or EOF - for { - token := ctx.Peek() - if token.EOF() { - return recoveryResult{recovered: false, err: err, recoveredTokens: recoveredTokens, strategyName: s.Name()} - } - if syncSet[token.Value] { - if s.ConsumeSyncToken { - recoveredTokens = append(recoveredTokens, *ctx.Next()) - } - // Recovery successful - var values []reflect.Value - if s.Fallback != nil { - values = []reflect.Value{reflect.ValueOf(s.Fallback())} - } - return recoveryResult{ - recovered: true, - values: values, - err: err, - recoveredTokens: recoveredTokens, - strategyName: s.Name(), - } - } - recoveredTokens = append(recoveredTokens, *ctx.Next()) - } -} - -// Name implements EnhancedRecoveryStrategy. -func (s *SkipUntilStrategy) Name() string { - if s.ConsumeSyncToken { - return "skip_past" - } - return "skip_until" -} - -// SkipThenRetryUntilStrategy skips tokens and retries parsing until successful -// or a termination condition is met. -// -// This is more sophisticated than SkipUntil - it repeatedly: -// 1. Skips one token -// 2. Tries to parse again -// 3. If parsing succeeds without new errors, returns success -// 4. If parsing fails, repeats from step 1 -// -// This continues until a termination token is found or EOF is reached. -// -// Note: This strategy requires special handling in recoveryNode to actually -// retry the inner parser. When used via Recover(), it signals retry mode. -type SkipThenRetryUntilStrategy struct { - // Tokens that terminate the recovery attempt (stop trying) - UntilTokens []string - // Maximum tokens to skip before giving up (0 = unlimited) - MaxSkip int -} - -// SkipThenRetryUntil creates a strategy that skips tokens and retries parsing. -func SkipThenRetryUntil(untilTokens ...string) *SkipThenRetryUntilStrategy { - return &SkipThenRetryUntilStrategy{ - UntilTokens: untilTokens, - MaxSkip: 100, // Reasonable default to prevent infinite loops - } -} - -// WithMaxSkip sets the maximum number of tokens to skip. -func (s *SkipThenRetryUntilStrategy) WithMaxSkip(max int) *SkipThenRetryUntilStrategy { - s.MaxSkip = max - return s -} - -// Recover implements simple skip behavior. -// The actual retry logic is in recoveryNode.Parse for retry-capable strategies. -func (s *SkipThenRetryUntilStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - untilSet := make(map[string]bool) - for _, t := range s.UntilTokens { - untilSet[t] = true - } - - // Check if we're at a terminating token or EOF - token := ctx.Peek() - if token.EOF() || untilSet[token.Value] { - return false, nil, err - } - - // Skip one token - caller may retry - ctx.Next() - return true, nil, err -} - -// IsRetryStrategy returns true, indicating this strategy supports retry semantics. -func (s *SkipThenRetryUntilStrategy) IsRetryStrategy() bool { - return true -} - -// ShouldStop returns true if we've hit a termination condition. -func (s *SkipThenRetryUntilStrategy) ShouldStop(ctx *parseContext) bool { - token := ctx.Peek() - if token.EOF() { - return true - } - for _, t := range s.UntilTokens { - if token.Value == t { - return true - } - } - return false -} - -// RetryStrategy is an optional interface for strategies that support -// retry-at-each-position semantics (like Chumsky's skip_then_retry_until). -type RetryStrategy interface { - RecoveryStrategy - // IsRetryStrategy returns true for strategies that want retry behavior. - IsRetryStrategy() bool - // ShouldStop returns true when the strategy should give up. - ShouldStop(ctx *parseContext) bool -} - -// NestedDelimitersStrategy recovers by finding balanced delimiters. -// -// This is particularly useful for recovering from errors inside parenthesized -// expressions, function arguments, array indices, etc. It respects nesting, -// so it will correctly handle nested brackets. -// -// Example: If parsing `foo(bar(1, 2, err!@#), baz)` fails on `err!@#`, -// this strategy can skip to the closing `)` of `bar(...)` while respecting -// the nested parentheses. -type NestedDelimitersStrategy struct { - // Start delimiter (e.g., "(", "[", "{") - Start string - // End delimiter (e.g., ")", "]", "}") - End string - // Additional delimiter pairs to respect for nesting - Others [][2]string - // Fallback returns a fallback value when recovery succeeds. - Fallback func() interface{} -} - -// NestedDelimiters creates a strategy that skips to balanced delimiters. -func NestedDelimiters(start, end string, others ...[2]string) *NestedDelimitersStrategy { - return &NestedDelimitersStrategy{ - Start: start, - End: end, - Others: others, - } -} - -// WithFallback sets a fallback value generator for the nested delimiters strategy. -func (n *NestedDelimitersStrategy) WithFallback(f func() interface{}) *NestedDelimitersStrategy { - n.Fallback = f - return n -} - -func (n *NestedDelimitersStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - result := n.RecoverWithContext(ctx, err, parent) - return result.recovered, result.values, result.err -} - -// RecoverWithContext implements EnhancedRecoveryStrategy. -func (n *NestedDelimitersStrategy) RecoverWithContext(ctx *parseContext, err error, parent reflect.Value) recoveryResult { - // Build delimiter maps - openers := map[string]string{n.Start: n.End} - closers := map[string]bool{n.End: true} - for _, pair := range n.Others { - openers[pair[0]] = pair[1] - closers[pair[1]] = true - } - - // Track nesting depth for each delimiter type - depths := make(map[string]int) - var recoveredTokens []lexer.Token - - // We start inside the delimited region, so we're looking for the closing delimiter - // at depth 0 (or the matching closer for our opener) - targetClose := n.End - depth := 1 // We're inside one level of our target delimiters - - for { - token := ctx.Peek() - if token.EOF() { - return recoveryResult{recovered: false, err: err, recoveredTokens: recoveredTokens, strategyName: n.Name()} - } - - // Check if this opens a nested delimiter - if closer, isOpener := openers[token.Value]; isOpener { - if token.Value == n.Start { - depth++ - } else { - depths[closer]++ - } - } - - // Check if this closes a delimiter - if closers[token.Value] { - if token.Value == targetClose { - depth-- - if depth == 0 { - // Found our balanced closer - don't consume it - var values []reflect.Value - if n.Fallback != nil { - values = []reflect.Value{reflect.ValueOf(n.Fallback())} - } - return recoveryResult{ - recovered: true, - values: values, - err: err, - recoveredTokens: recoveredTokens, - strategyName: n.Name(), - } - } - } else if depths[token.Value] > 0 { - depths[token.Value]-- - } else { - // Mismatched closer - this is an error, but we can try to continue - // by treating it as the end of our recovery region - return recoveryResult{recovered: false, err: err, recoveredTokens: recoveredTokens, strategyName: n.Name()} - } - } - - recoveredTokens = append(recoveredTokens, *ctx.Next()) - } -} - -// Name implements EnhancedRecoveryStrategy. -func (n *NestedDelimitersStrategy) Name() string { - return "nested_delimiters" -} - -// TokenSyncStrategy synchronizes on specific token types rather than values. -// -// This is useful when you want to recover to any identifier, any string literal, -// or other token categories defined by your lexer. -type TokenSyncStrategy struct { - // Token types to synchronize on (use lexer symbol names) - SyncTypes []lexer.TokenType - // If true, consume the sync token - ConsumeSyncToken bool - // Fallback value generator - Fallback func() interface{} -} - -// SyncToTokenType creates a strategy that syncs on token types. -func SyncToTokenType(types ...lexer.TokenType) *TokenSyncStrategy { - return &TokenSyncStrategy{ - SyncTypes: types, - ConsumeSyncToken: false, - } -} - -func (t *TokenSyncStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - result := t.RecoverWithContext(ctx, err, parent) - return result.recovered, result.values, result.err -} - -// RecoverWithContext implements EnhancedRecoveryStrategy. -func (t *TokenSyncStrategy) RecoverWithContext(ctx *parseContext, err error, parent reflect.Value) recoveryResult { - syncSet := make(map[lexer.TokenType]bool) - for _, tt := range t.SyncTypes { - syncSet[tt] = true - } - - var recoveredTokens []lexer.Token - - for { - token := ctx.Peek() - if token.EOF() { - return recoveryResult{recovered: false, err: err, recoveredTokens: recoveredTokens, strategyName: t.Name()} - } - if syncSet[token.Type] { - if t.ConsumeSyncToken { - recoveredTokens = append(recoveredTokens, *ctx.Next()) - } - var values []reflect.Value - if t.Fallback != nil { - values = []reflect.Value{reflect.ValueOf(t.Fallback())} - } - return recoveryResult{ - recovered: true, - values: values, - err: err, - recoveredTokens: recoveredTokens, - strategyName: t.Name(), - } - } - recoveredTokens = append(recoveredTokens, *ctx.Next()) - } -} - -// Name implements EnhancedRecoveryStrategy. -func (t *TokenSyncStrategy) Name() string { - return "sync_to_token_type" -} - -// CompositeStrategy tries multiple strategies in order until one succeeds. -type CompositeStrategy struct { - Strategies []RecoveryStrategy -} - -// TryStrategies creates a composite strategy that tries each strategy in order. -func TryStrategies(strategies ...RecoveryStrategy) *CompositeStrategy { - return &CompositeStrategy{Strategies: strategies} -} - -func (c *CompositeStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - result := c.RecoverWithContext(ctx, err, parent) - return result.recovered, result.values, result.err -} - -// RecoverWithContext implements EnhancedRecoveryStrategy. -func (c *CompositeStrategy) RecoverWithContext(ctx *parseContext, err error, parent reflect.Value) recoveryResult { - checkpoint := ctx.saveCheckpoint() - - for _, strategy := range c.Strategies { - // Try enhanced recovery first if available - if enhanced, ok := strategy.(EnhancedRecoveryStrategy); ok { - result := enhanced.RecoverWithContext(ctx, err, parent) - if result.recovered { - return result - } - } else { - recovered, values, newErr := strategy.Recover(ctx, err, parent) - if recovered { - return recoveryResult{ - recovered: true, - values: values, - err: newErr, - strategyName: c.Name(), - } - } - } - // Reset cursor for next strategy attempt - ctx.restoreCheckpoint(checkpoint) - } - return recoveryResult{recovered: false, err: err, strategyName: c.Name()} -} - -// Name implements EnhancedRecoveryStrategy. -func (c *CompositeStrategy) Name() string { - return "composite" -} - -// Helper functions for checkpoint-based recovery - -// saveCheckpoint saves the current lexer position for potential restoration. -func (p *parseContext) saveCheckpoint() lexer.Checkpoint { - return p.PeekingLexer.MakeCheckpoint() -} - -// restoreCheckpoint restores the lexer to a previously saved position. -func (p *parseContext) restoreCheckpoint(cp lexer.Checkpoint) { - p.PeekingLexer.LoadCheckpoint(cp) -} - -// ============================================================================= -// Per-Node Recovery Configuration -// ============================================================================= - -// nodeRecoveryConfig holds recovery configuration attached to a grammar node. -// This enables Chumsky-style per-parser recovery strategies. -type nodeRecoveryConfig struct { - // Strategies to try for this node (in order) - strategies []RecoveryStrategy - // Label for error messages (e.g., "expression", "statement") - label string -} - -// recoverableNode is an optional interface that nodes can implement -// to support per-node recovery configuration. -type recoverableNode interface { - node - // SetRecovery sets the recovery configuration for this node. - SetRecovery(config *nodeRecoveryConfig) - // GetRecovery returns the recovery configuration, or nil if none. - GetRecovery() *nodeRecoveryConfig -} - -// ============================================================================= -// Recovery Tag Parsing -// ============================================================================= - -// recoveryTagPattern matches recovery tag expressions like: -// - skip_until(;) -// - skip_past(;, }) -// - nested((, )) -// - nested((, ), [(, )]) - with additional delimiters -// - retry_until(;) -var recoveryTagPattern = regexp.MustCompile(`^(\w+)\((.*)\)$`) - -// parseRecoveryTag parses a recovery struct tag into a RecoveryStrategy. -// -// Supported strategy formats: -// - skip_until(tok1, tok2, ...) - skip until one of the tokens, don't consume -// - skip_past(tok1, tok2, ...) - skip until and consume the sync token -// - nested(start, end) - skip to balanced delimiter -// - nested(start, end, [s1, e1]) - with additional delimiter pairs -// - retry(tok1, tok2, ...) - skip and retry until tokens (alias: retry_until) -// -// Multiple strategies are separated by semicolon (;): -// - "nested((, )); skip_until(;)" -// -// Legacy syntax with pipe (|) is also supported for backwards compatibility: -// - "nested((, ))|skip_until(;)" -// -// Labels should use a separate `label` struct tag for clarity: -// - `parser:"@@" recover:"skip_until(;)" label:"expression"` -// -// Legacy inline label syntax is still supported: -// - "label:name; skip_until(;)" -func parseRecoveryTag(tag string) (*nodeRecoveryConfig, error) { - if tag == "" { - return nil, nil - } - - config := &nodeRecoveryConfig{} - - // Normalize separators: support both ; and | for backwards compatibility - // Replace | with ; for uniform processing - tag = strings.ReplaceAll(tag, "|", ";") - - // Split by ; for multiple strategies - strategyStrs := splitStrategies(tag) - for _, stratStr := range strategyStrs { - stratStr = strings.TrimSpace(stratStr) - if stratStr == "" { - continue - } - - // Check for label prefix (legacy inline syntax) - if strings.HasPrefix(stratStr, "label:") { - config.label = strings.TrimSpace(stratStr[6:]) - continue - } - - strategy, err := parseSingleRecoveryStrategy(stratStr) - if err != nil { - return nil, err - } - if strategy != nil { - config.strategies = append(config.strategies, strategy) - } - } - - if len(config.strategies) == 0 && config.label == "" { - return nil, nil - } - return config, nil -} - -// splitStrategies splits a recover tag by semicolons, but respects parentheses. -// This allows tokens like ";" inside strategy arguments. -func splitStrategies(tag string) []string { - var result []string - var current strings.Builder - depth := 0 - - for _, r := range tag { - switch r { - case '(': - depth++ - current.WriteRune(r) - case ')': - depth-- - current.WriteRune(r) - case ';': - if depth == 0 { - result = append(result, current.String()) - current.Reset() - } else { - current.WriteRune(r) - } - default: - current.WriteRune(r) - } - } - - if current.Len() > 0 { - result = append(result, current.String()) - } - - return result -} - -// parseSingleRecoveryStrategy parses a single recovery strategy expression. -func parseSingleRecoveryStrategy(expr string) (RecoveryStrategy, error) { - matches := recoveryTagPattern.FindStringSubmatch(expr) - if matches == nil { - return nil, fmt.Errorf("invalid recovery strategy syntax: %q", expr) - } - - name := matches[1] - argsStr := matches[2] - - switch name { - case "skip_until": - tokens := parseTokenList(argsStr) - if len(tokens) == 0 { - return nil, fmt.Errorf("skip_until requires at least one token") - } - return SkipUntil(tokens...), nil - - case "skip_past": - tokens := parseTokenList(argsStr) - if len(tokens) == 0 { - return nil, fmt.Errorf("skip_past requires at least one token") - } - return SkipPast(tokens...), nil - - case "retry_until", "retry": - tokens := parseTokenList(argsStr) - if len(tokens) == 0 { - return nil, fmt.Errorf("retry requires at least one token") - } - return SkipThenRetryUntil(tokens...), nil - - case "nested": - return parseNestedStrategy(argsStr) - - default: - return nil, fmt.Errorf("unknown recovery strategy: %q", name) - } -} - -// parseTokenList parses a comma-separated list of tokens. -// Handles both quoted and unquoted tokens. -func parseTokenList(s string) []string { - var tokens []string - var current strings.Builder - inQuote := false - quoteChar := rune(0) - - for _, r := range s { - switch { - case !inQuote && (r == '"' || r == '\''): - inQuote = true - quoteChar = r - case inQuote && r == quoteChar: - inQuote = false - quoteChar = 0 - case !inQuote && r == ',': - if tok := strings.TrimSpace(current.String()); tok != "" { - tokens = append(tokens, tok) - } - current.Reset() - default: - current.WriteRune(r) - } - } - - if tok := strings.TrimSpace(current.String()); tok != "" { - tokens = append(tokens, tok) - } - - return tokens -} - -// parseNestedStrategy parses a nested() strategy expression. -// Formats: -// - nested(start, end) -// - nested(start, end, [s1, e1], [s2, e2], ...) -func parseNestedStrategy(argsStr string) (RecoveryStrategy, error) { - // Simple parsing: split by commas, handling brackets - args := parseNestedArgs(argsStr) - - if len(args) < 2 { - return nil, fmt.Errorf("nested requires at least start and end delimiters") - } - - start := strings.TrimSpace(args[0]) - end := strings.TrimSpace(args[1]) - - var others [][2]string - for i := 2; i < len(args); i++ { - // Parse [s, e] format - arg := strings.TrimSpace(args[i]) - if strings.HasPrefix(arg, "[") && strings.HasSuffix(arg, "]") { - inner := arg[1 : len(arg)-1] - parts := strings.SplitN(inner, ",", 2) - if len(parts) == 2 { - others = append(others, [2]string{ - strings.TrimSpace(parts[0]), - strings.TrimSpace(parts[1]), - }) - } - } - } - - return NestedDelimiters(start, end, others...), nil -} - -// parseNestedArgs splits arguments while respecting bracket nesting. -func parseNestedArgs(s string) []string { - var args []string - var current strings.Builder - depth := 0 - - for _, r := range s { - switch r { - case '[': - depth++ - current.WriteRune(r) - case ']': - depth-- - current.WriteRune(r) - case ',': - if depth == 0 { - args = append(args, current.String()) - current.Reset() - } else { - current.WriteRune(r) - } - default: - current.WriteRune(r) - } - } - - if current.Len() > 0 { - args = append(args, current.String()) - } - - return args -} - -// ============================================================================= -// Field Recovery Tag Extraction -// ============================================================================= - -// fieldRecoveryTag extracts the recovery tag from a struct field. -func fieldRecoveryTag(field reflect.StructField) string { - return field.Tag.Get("recover") -} - -// ============================================================================= -// Recovery-Aware Wrapper Node -// ============================================================================= - -// recoveryNode wraps another node with recovery configuration. -// This allows any node to have per-node recovery without modifying all node types. -type recoveryNode struct { - inner node - recovery *nodeRecoveryConfig -} - -func (r *recoveryNode) String() string { return r.inner.String() } -func (r *recoveryNode) GoString() string { return fmt.Sprintf("recovery{%s}", r.inner.GoString()) } - -func (r *recoveryNode) Parse(ctx *parseContext, parent reflect.Value) ([]reflect.Value, error) { - // Save checkpoint for potential recovery - checkpoint := ctx.saveCheckpoint() - startPos := ctx.Peek().Pos - - // Try parsing normally - values, err := r.inner.Parse(ctx, parent) - - // If parsing succeeded (values != nil, err == nil), return normally - if err == nil && values != nil { - return values, nil - } - - // If no recovery strategies configured, just return the result - if r.recovery == nil || len(r.recovery.strategies) == 0 { - return values, err - } - - // Check if we've exceeded max errors - if ctx.recovery != nil && ctx.recovery.maxErrors > 0 && len(ctx.recoveryErrors) >= ctx.recovery.maxErrors { - ctx.traceRecovery("max errors (%d) reached, not attempting recovery", ctx.recovery.maxErrors) - return values, err - } - - // Determine the error to report - // If there was no explicit error but also no match (nil, nil), create an error - reportErr := err - if reportErr == nil { - // Get current token to create a meaningful error - tok := ctx.Peek() - reportErr = &UnexpectedTokenError{Unexpected: *tok, expectNode: r.inner} - } - - // Extract expected message from the underlying error - var expectedMsg string - if perr, ok := reportErr.(Error); ok { - expectedMsg = perr.Message() - } else { - expectedMsg = reportErr.Error() - } - - // Trace recovery attempt - ctx.traceRecoveryAttempt(startPos, reportErr, r.inner.String()) - - // Try each recovery strategy - for _, strategy := range r.recovery.strategies { - ctx.restoreCheckpoint(checkpoint) - currentPos := ctx.Peek().Pos - - // Check if this is a retry strategy (like skip_then_retry_until) - if retryStrat, ok := strategy.(RetryStrategy); ok && retryStrat.IsRetryStrategy() { - ctx.traceRecoveryStrategy("skip_then_retry", currentPos) - // Retry strategy: skip tokens one at a time and retry parsing at each position - recoveredValues, recoveredTokens, recovered := r.retryRecovery(ctx, retryStrat, reportErr, parent) - if recovered { - endPos := ctx.Peek().Pos - ctx.traceRecoverySuccess("skip_then_retry", len(recoveredTokens), endPos) - r.recordEnhancedRecoveryError(ctx, startPos, endPos, expectedMsg, recoveredTokens, "skip_then_retry", reportErr) - if len(recoveredValues) > 0 { - return recoveredValues, nil - } - return []reflect.Value{}, nil - } - ctx.traceRecoveryFailed("skip_then_retry", "could not find valid parse position") - continue - } - - // Try enhanced recovery first if available - if enhanced, ok := strategy.(EnhancedRecoveryStrategy); ok { - strategyName := enhanced.Name() - ctx.traceRecoveryStrategy(strategyName, currentPos) - result := enhanced.RecoverWithContext(ctx, reportErr, parent) - if result.recovered { - endPos := ctx.Peek().Pos - ctx.traceRecoverySuccess(strategyName, len(result.recoveredTokens), endPos) - r.recordEnhancedRecoveryError(ctx, startPos, endPos, expectedMsg, result.recoveredTokens, result.strategyName, reportErr) - if len(result.values) > 0 { - return result.values, nil - } - return []reflect.Value{}, nil - } - ctx.traceRecoveryFailed(strategyName, "strategy returned false") - continue - } - - // Regular strategy (fallback) - ctx.traceRecoveryStrategy("unknown", currentPos) - recovered, recoveredValues, _ := strategy.Recover(ctx, reportErr, parent) - if recovered { - endPos := ctx.Peek().Pos - ctx.traceRecoverySuccess("unknown", 0, endPos) - r.recordEnhancedRecoveryError(ctx, startPos, endPos, expectedMsg, nil, "unknown", reportErr) - if len(recoveredValues) > 0 { - return recoveredValues, nil - } - return []reflect.Value{}, nil - } - ctx.traceRecoveryFailed("unknown", "strategy returned false") - } - - // No strategy succeeded, restore and return original result - ctx.traceRecoveryAllFailed() - ctx.restoreCheckpoint(checkpoint) - return values, err -} - -// retryRecovery implements the skip-then-retry-at-each-position behavior. -// Returns recovered values, recovered tokens, and whether recovery succeeded. -func (r *recoveryNode) retryRecovery(ctx *parseContext, strategy RetryStrategy, originalErr error, parent reflect.Value) ([]reflect.Value, []lexer.Token, bool) { - // Get max skip from the strategy if it's our SkipThenRetryUntilStrategy - maxSkip := 100 - if stru, ok := strategy.(*SkipThenRetryUntilStrategy); ok { - if stru.MaxSkip > 0 { - maxSkip = stru.MaxSkip - } - } - - var recoveredTokens []lexer.Token - for len(recoveredTokens) < maxSkip { - // Check if we should stop (hit termination token or EOF) - if strategy.ShouldStop(ctx) { - return nil, recoveredTokens, false - } - - // Skip one token - recoveredTokens = append(recoveredTokens, *ctx.Next()) - - // Try to parse again - values, err := r.inner.Parse(ctx, parent) - - // If parsing succeeded (values != nil, no error), we recovered! - if err == nil && values != nil { - return values, recoveredTokens, true - } - - // If we got an error but made progress, that's also recovery - // (we found a valid starting point even if parsing failed later) - } - - return nil, recoveredTokens, false -} - -// recordEnhancedRecoveryError records a recovery error with rich context. -func (r *recoveryNode) recordEnhancedRecoveryError(ctx *parseContext, startPos, endPos lexer.Position, message string, recoveredTokens []lexer.Token, strategyName string, underlying error) { - err := makeRecoveredError( - startPos, - endPos, - message, - r.recovery.label, - recoveredTokens, - strategyName, - underlying, - ) - ctx.addRecoveryError(err) -} - -// SetRecovery implements recoverableNode. -func (r *recoveryNode) SetRecovery(config *nodeRecoveryConfig) { - r.recovery = config -} - -// GetRecovery implements recoverableNode. -func (r *recoveryNode) GetRecovery() *nodeRecoveryConfig { - return r.recovery -} - -// wrapWithRecovery wraps a node with recovery configuration if provided. -func wrapWithRecovery(n node, config *nodeRecoveryConfig) node { - if config == nil || (len(config.strategies) == 0 && config.label == "") { - return n - } - return &recoveryNode{inner: n, recovery: config} -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/renovate.json5 b/example/vendor/github.com/alecthomas/participle/v2/renovate.json5 deleted file mode 100644 index 77c7b01..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/renovate.json5 +++ /dev/null @@ -1,18 +0,0 @@ -{ - $schema: "https://docs.renovatebot.com/renovate-schema.json", - extends: [ - "config:recommended", - ":semanticCommits", - ":semanticCommitTypeAll(chore)", - ":semanticCommitScope(deps)", - "group:allNonMajor", - "schedule:earlyMondays", // Run once a week. - ], - packageRules: [ - { - matchPackageNames: ["golangci-lint"], - matchManagers: ["hermit"], - enabled: false, - }, - ], -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/struct.go b/example/vendor/github.com/alecthomas/participle/v2/struct.go deleted file mode 100644 index a5a1ccd..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/struct.go +++ /dev/null @@ -1,218 +0,0 @@ -package participle - -import ( - "fmt" - "reflect" - "strconv" - "strings" - "text/scanner" - "unicode/utf8" - - "github.com/alecthomas/participle/v2/lexer" -) - -// A structLexer lexes over the tags of struct fields while tracking the current field. -type structLexer struct { - s reflect.Type - field int - indexes [][]int - lexer *lexer.PeekingLexer -} - -func lexStruct(s reflect.Type) (*structLexer, error) { - indexes, err := collectFieldIndexes(s) - if err != nil { - return nil, err - } - slex := &structLexer{ - s: s, - indexes: indexes, - } - if len(slex.indexes) > 0 { - tag := fieldLexerTag(slex.Field().StructField) - slex.lexer, err = lexer.Upgrade(newTagLexer(s.Name(), tag)) - if err != nil { - return nil, err - } - } - return slex, nil -} - -// NumField returns the number of fields in the struct associated with this structLexer. -func (s *structLexer) NumField() int { - return len(s.indexes) -} - -type structLexerField struct { - reflect.StructField - Index []int -} - -// RecoveryTag returns the recovery configuration tag for this field, if any. -func (f structLexerField) RecoveryTag() string { - return f.Tag.Get("recover") -} - -// LabelTag returns the label tag for this field, if any. -// Labels are used for better error messages during recovery. -func (f structLexerField) LabelTag() string { - return f.Tag.Get("label") -} - -// Field returns the field associated with the current token. -func (s *structLexer) Field() structLexerField { - return s.GetField(s.field) -} - -func (s *structLexer) GetField(field int) structLexerField { - if field >= len(s.indexes) { - field = len(s.indexes) - 1 - } - return structLexerField{ - StructField: s.s.FieldByIndex(s.indexes[field]), - Index: s.indexes[field], - } -} - -func (s *structLexer) Peek() (*lexer.Token, error) { - field := s.field - lex := s.lexer - for { - token := lex.Peek() - if !token.EOF() { - token.Pos.Line = field + 1 - return token, nil - } - field++ - if field >= s.NumField() { - t := lexer.EOFToken(token.Pos) - return &t, nil - } - ft := s.GetField(field).StructField - tag := fieldLexerTag(ft) - var err error - lex, err = lexer.Upgrade(newTagLexer(ft.Name, tag)) - if err != nil { - return token, err - } - } -} - -func (s *structLexer) Next() (*lexer.Token, error) { - token := s.lexer.Next() - if !token.EOF() { - token.Pos.Line = s.field + 1 - return token, nil - } - if s.field+1 >= s.NumField() { - t := lexer.EOFToken(token.Pos) - return &t, nil - } - s.field++ - ft := s.Field().StructField - tag := fieldLexerTag(ft) - var err error - s.lexer, err = lexer.Upgrade(newTagLexer(ft.Name, tag)) - if err != nil { - return token, err - } - return s.Next() -} - -func fieldLexerTag(field reflect.StructField) string { - if tag, ok := field.Tag.Lookup("parser"); ok { - return tag - } - return string(field.Tag) -} - -// Recursively collect flattened indices for top-level fields and embedded fields. -func collectFieldIndexes(s reflect.Type) (out [][]int, err error) { - if s.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected a struct but got %q", s) - } - defer decorate(&err, s.String) - for i := 0; i < s.NumField(); i++ { - f := s.Field(i) - switch { - case f.Anonymous && f.Type.Kind() == reflect.Struct: // Embedded struct. - children, err := collectFieldIndexes(f.Type) - if err != nil { - return nil, err - } - for _, idx := range children { - out = append(out, append(f.Index, idx...)) - } - - case f.PkgPath != "": - continue - - case fieldLexerTag(f) != "": - out = append(out, f.Index) - } - } - return -} - -// tagLexer is a Lexer based on text/scanner.Scanner -type tagLexer struct { - scanner *scanner.Scanner - filename string - err error -} - -func newTagLexer(filename string, tag string) *tagLexer { - s := &scanner.Scanner{} - s.Init(strings.NewReader(tag)) - lexer := &tagLexer{ - filename: filename, - scanner: s, - } - lexer.scanner.Error = func(s *scanner.Scanner, msg string) { - // This is to support single quoted strings. Hacky. - if !strings.HasSuffix(msg, "char literal") { - lexer.err = fmt.Errorf("%s: %s", lexer.scanner.Pos(), msg) - } - } - return lexer -} - -func (t *tagLexer) Next() (lexer.Token, error) { - typ := t.scanner.Scan() - text := t.scanner.TokenText() - pos := lexer.Position(t.scanner.Position) - pos.Filename = t.filename - if t.err != nil { - return lexer.Token{}, t.err - } - return textScannerTransform(lexer.Token{ - Type: lexer.TokenType(typ), - Value: text, - Pos: pos, - }) -} - -func textScannerTransform(token lexer.Token) (lexer.Token, error) { - // Unquote strings. - switch token.Type { - case scanner.Char: - // FIXME(alec): This is pretty hacky...we convert a single quoted char into a double - // quoted string in order to support single quoted strings. - token.Value = fmt.Sprintf("\"%s\"", token.Value[1:len(token.Value)-1]) - fallthrough - case scanner.String: - s, err := strconv.Unquote(token.Value) - if err != nil { - return lexer.Token{}, Errorf(token.Pos, "%s: %q", err.Error(), token.Value) - } - token.Value = s - if token.Type == scanner.Char && utf8.RuneCountInString(s) > 1 { - token.Type = scanner.String - } - case scanner.RawString: - token.Value = token.Value[1 : len(token.Value)-1] - - default: - } - return token, nil -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/validate.go b/example/vendor/github.com/alecthomas/participle/v2/validate.go deleted file mode 100644 index 3785e3c..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/validate.go +++ /dev/null @@ -1,59 +0,0 @@ -package participle - -import ( - "fmt" - "strings" -) - -// Perform some post-construction validation. This currently does: -// -// Checks for left recursion. -func validate(n node) error { - checked := map[*strct]bool{} - seen := map[node]bool{} - - return visit(n, func(n node, next func() error) error { - if n, ok := n.(*strct); ok { - if !checked[n] && isLeftRecursive(n) { - return fmt.Errorf("left recursion detected on\n\n%s", indent(n.String())) - } - checked[n] = true - if seen[n] { - return nil - } - } - seen[n] = true - return next() - }) -} - -func isLeftRecursive(root *strct) (found bool) { - defer func() { _ = recover() }() - seen := map[node]bool{} - _ = visit(root.expr, func(n node, next func() error) error { - if found { - return nil - } - switch n := n.(type) { - case *strct: - if root.typ == n.typ { - found = true - } - - case *sequence: - if !n.head { - panic("done") - } - } - if seen[n] { - return nil - } - seen[n] = true - return next() - }) - return -} - -func indent(s string) string { - return " " + strings.Join(strings.Split(s, "\n"), "\n ") -} diff --git a/example/vendor/github.com/alecthomas/participle/v2/visit.go b/example/vendor/github.com/alecthomas/participle/v2/visit.go deleted file mode 100644 index b67e666..0000000 --- a/example/vendor/github.com/alecthomas/participle/v2/visit.go +++ /dev/null @@ -1,57 +0,0 @@ -package participle - -import "fmt" - -// Visit all nodes. -// -// Cycles are deliberately not detected, it is up to the visitor function to handle this. -func visit(n node, visitor func(n node, next func() error) error) error { - return visitor(n, func() error { - switch n := n.(type) { - case *disjunction: - for _, child := range n.nodes { - if err := visit(child, visitor); err != nil { - return err - } - } - return nil - case *strct: - return visit(n.expr, visitor) - case *custom: - return nil - case *union: - for _, member := range n.disjunction.nodes { - if err := visit(member, visitor); err != nil { - return err - } - } - return nil - case *sequence: - if err := visit(n.node, visitor); err != nil { - return err - } - if n.next != nil { - return visit(n.next, visitor) - } - return nil - case *parseable: - return nil - case *capture: - return visit(n.node, visitor) - case *reference: - return nil - case *negation: - return visit(n.node, visitor) - case *literal: - return nil - case *group: - return visit(n.expr, visitor) - case *lookaheadGroup: - return visit(n.expr, visitor) - case *recoveryNode: - return visit(n.inner, visitor) - default: - panic(fmt.Sprintf("%T", n)) - } - }) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/LICENSE b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/LICENSE deleted file mode 100644 index 20e4bd8..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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 - - https://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. diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/aliases.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/aliases.go deleted file mode 100644 index 76df603..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/aliases.go +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype" -) - -// Aliases to simplify client usage (fewer imports) and to provide some backwards -// compatibility with 1.x driver. -// -// A separate dbtype package is needed to avoid circular package references and to avoid -// unnecessary copying/conversions between structs since serializing/deserializing is -// handled within bolt package and bolt package is used from this package. -type ( - Point2D = dbtype.Point2D - Point3D = dbtype.Point3D - Date = dbtype.Date - LocalTime = dbtype.LocalTime - LocalDateTime = dbtype.LocalDateTime - Time = dbtype.Time - OffsetTime = dbtype.Time - Duration = dbtype.Duration - Entity = dbtype.Entity - Node = dbtype.Node - Relationship = dbtype.Relationship - Path = dbtype.Path - Record = db.Record - InvalidValue = dbtype.InvalidValue -) - -// DateOf creates a neo4j.Date from time.Time. -// Hour, minute, second and nanoseconds are set to zero and location is set to UTC. -// -// Conversion can also be done by casting a time.Time to neo4j.Date but beware that time -// components and location will be left as is but ignored when used as query parameter. -func DateOf(t time.Time) Date { - y, m, d := t.Date() - t = time.Date(y, m, d, 0, 0, 0, 0, time.UTC) - return dbtype.Date(t) -} - -// LocalTimeOf creates a neo4j.LocalTime from time.Time. -// Year, month and day are set to zero and location is set to local. -// -// Conversion can also be done by casting a time.Time to neo4j.LocalTime but beware that date -// components and location will be left as is but ignored when used as query parameter. -func LocalTimeOf(t time.Time) LocalTime { - t = time.Date(0, 0, 0, t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.Local) - return dbtype.LocalTime(t) -} - -// LocalDateTimeOf creates a neo4j.Local from time.Time. -// -// Conversion can also be done by casting a time.Time to neo4j.LocalTime but beware that location -// will be left as is but interpreted as local when used as query parameter. -func LocalDateTimeOf(t time.Time) LocalDateTime { - t = time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.Local) - return dbtype.LocalDateTime(t) -} - -// OffsetTimeOf creates a neo4j.OffsetTime from time.Time. -// Year, month and day are set to zero and location is set to "Offset" using zone offset from -// time.Time. -// -// Conversion can also be done by casting a time.Time to neo4j.OffsetTime but beware that date -// components and location will be left as is but ignored when used as query parameter. Since -// location will contain the original value, the value "offset" will not be used by the driver -// but the actual name of the location in time.Time and that offset. -func OffsetTimeOf(t time.Time) OffsetTime { - _, offset := t.Zone() - l := time.FixedZone("Offset", int(offset)) - t = time.Date(0, 0, 0, t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), l) - return dbtype.Time(t) -} - -// DurationOf creates neo4j.Duration from specified time parts. -func DurationOf(months, days, seconds int64, nanos int) Duration { - return Duration{Months: months, Days: days, Seconds: seconds, Nanos: nanos} -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/auth.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/auth.go deleted file mode 100644 index 4c0b1ae..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/auth.go +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 auth - -import ( - "context" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" -) - -// TokenManager is an interface for components that can provide auth tokens. -// The `neo4j` package provides default implementations of `auth.TokenManager` for common authentication schemes. -// See `neo4j.NewDriverWithContext`. -// Custom implementations of this class can be used to provide more complex authentication refresh functionality. -// -// WARNING: -// -// The manager *must not* interact with the driver in any way as this can cause deadlocks and undefined behaviour. -// Furthermore, the manager is expected to be thread-safe. -type TokenManager interface { - // GetAuthToken retrieves an auth.Token or returns an error if the retrieval fails. - // auth.Token can be created with built-in functions such as: - // - `neo4j.NoAuth` - // - `neo4j.BasicAuth` - // - `neo4j.KerberosAuth` - // - `neo4j.BearerAuth` - // - `neo4j.CustomAuth` - // - // The token returned must always belong to the same identity. - // Switching identities using the `TokenManager` is undefined behavior. - GetAuthToken(ctx context.Context) (auth.Token, error) - - // HandleSecurityException is called when the server returns any `Neo.ClientError.Security.*` error. - // It should return true if the error was handled, in which case the driver will mark the error as retryable. - HandleSecurityException(context.Context, auth.Token, *db.Neo4jError) (bool, error) -} - -type authTokenProvider = func(context.Context) (auth.Token, error) - -type authTokenWithExpirationProvider = func(context.Context) (auth.Token, *time.Time, error) - -type neo4jAuthTokenManager struct { - provider authTokenWithExpirationProvider - token *auth.Token - expiration *time.Time - mutex racing.Mutex - handledSecurityCodes collections.Set[string] -} - -func (m *neo4jAuthTokenManager) GetAuthToken(ctx context.Context) (auth.Token, error) { - if !m.mutex.TryLock(ctx) { - return auth.Token{}, racing.LockTimeoutError( - "could not acquire lock in time when getting token in neo4jAuthTokenManager") - } - defer m.mutex.Unlock() - if m.token == nil || m.expiration != nil && itime.Now().After(*m.expiration) { - token, expiration, err := m.provider(ctx) - if err != nil { - return auth.Token{}, err - } - m.token = &token - m.expiration = expiration - } - return *m.token, nil -} - -func (m *neo4jAuthTokenManager) HandleSecurityException(ctx context.Context, token auth.Token, securityException *db.Neo4jError) (bool, error) { - if !m.handledSecurityCodes.Contains(securityException.Code) { - return false, nil - } - if !m.mutex.TryLock(ctx) { - return false, racing.LockTimeoutError( - "could not acquire lock in time when handling security exception in neo4jAuthTokenManager") - } - defer m.mutex.Unlock() - if m.token != nil && reflect.DeepEqual(token.Tokens, m.token.Tokens) { - m.token = nil - } - return true, nil -} - -// BasicTokenManager generates a TokenManager to manage basic auth password rotation. -// The provider is invoked solely when a new token instance is required, triggered by server -// rejection of the current token due to an authentication exception. -// -// WARNING: -// -// The provider function *must not* interact with the driver in any way as this can cause deadlocks and undefined -// behaviour. -// -// The provider function must only ever return auth information belonging to the same identity. -// Switching identities is undefined behavior. -func BasicTokenManager(provider authTokenProvider) TokenManager { - return &neo4jAuthTokenManager{ - provider: wrapWithNilExpiration(provider), - mutex: racing.NewMutex(), - handledSecurityCodes: collections.NewSet([]string{ - "Neo.ClientError.Security.Unauthorized", - }), - } -} - -// BearerTokenManager generates a TokenManager to manage possibly expiring authentication details. -// -// The provider is invoked when a new token instance is required, triggered by server -// rejection of the current token due to authentication or token expiration exceptions. -// -// WARNING: -// -// The provider function *must not* interact with the driver in any way as this can cause deadlocks and undefined -// behaviour. -// -// The provider function must only ever return auth information belonging to the same identity. -// Switching identities is undefined behavior. -func BearerTokenManager(provider authTokenWithExpirationProvider) TokenManager { - return &neo4jAuthTokenManager{ - provider: provider, - mutex: racing.NewMutex(), - handledSecurityCodes: collections.NewSet([]string{ - "Neo.ClientError.Security.TokenExpired", - "Neo.ClientError.Security.Unauthorized", - }), - } -} - -func wrapWithNilExpiration(provider authTokenProvider) authTokenWithExpirationProvider { - return func(ctx context.Context) (auth.Token, *time.Time, error) { - token, err := provider(ctx) - return token, nil, err - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/cert.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/cert.go deleted file mode 100644 index 942b503..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/cert.go +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 auth - -import ( - "crypto/tls" - "crypto/x509" - "encoding/pem" - "errors" - "os" - "sync" -) - -// ClientCertificate holds paths to a TLS certificate file and its corresponding private key file. -// This struct is used to load client certificate-key pairs for use in mutual TLS. -type ClientCertificate struct { - CertFile string // Path to the TLS certificate file. - KeyFile string // Path to the TLS private key file. - Password *string // Optional password for decrypting the private key file. Nil indicates no password is set. -} - -// ClientCertificateProvider defines an interface for retrieving a tls.Certificate. -// Implementations of this interface can provide static or dynamically updatable certificates. -type ClientCertificateProvider interface { - // GetCertificate returns a tls.Certificate for use in TLS connections. - // Implementations should ensure thread-safety and handle any necessary logic - // to provide the most up-to-date certificate. - // - // If a nil value is returned, it indicates that no client certificate is available for use in the TLS connection. - // This might be the case if the certificate is not yet available, or if no certificate is configured for use. - GetCertificate() *tls.Certificate -} - -// StaticClientCertificateProvider is an implementation of ClientCertificateProvider -// that provides a static, unchangeable tls.Certificate. It is intended for use cases -// where the certificate does not need to be updated over the lifetime of the application. -type StaticClientCertificateProvider struct { - certificate *tls.Certificate -} - -// NewStaticClientCertificateProvider creates a new StaticClientCertificateProvider given a ClientCertificate. -// This function loads the certificate-key pair specified in the ClientCertificate and returns -// a provider that will always return this loaded certificate. -func NewStaticClientCertificateProvider(cert ClientCertificate) (*StaticClientCertificateProvider, error) { - tlsCert, err := loadCertificate(cert.CertFile, cert.KeyFile, cert.Password) - if err != nil { - return nil, err - } - return &StaticClientCertificateProvider{certificate: &tlsCert}, nil -} - -func (p *StaticClientCertificateProvider) GetCertificate() *tls.Certificate { - return p.certificate -} - -// RotatingClientCertificateProvider is an implementation of ClientCertificateProvider -// that supports dynamic updates to the tls.Certificate it provides. It is useful for scenarios -// where certificates need to be rotated or updated without restarting the application. -type RotatingClientCertificateProvider struct { - mu sync.RWMutex - certificate *tls.Certificate -} - -// NewRotatingClientCertificateProvider creates a new RotatingClientCertificateProvider given a ClientCertificate. -// This function loads the certificate-key pair specified in the ClientCertificate and returns -// a provider that allows updating the certificate dynamically through its UpdateCertificate method. -func NewRotatingClientCertificateProvider(cert ClientCertificate) (*RotatingClientCertificateProvider, error) { - tlsCert, err := loadCertificate(cert.CertFile, cert.KeyFile, cert.Password) - if err != nil { - return nil, err - } - return &RotatingClientCertificateProvider{certificate: &tlsCert}, nil -} - -func (p *RotatingClientCertificateProvider) GetCertificate() *tls.Certificate { - p.mu.RLock() - defer p.mu.RUnlock() - return p.certificate -} - -// UpdateCertificate updates the certificate stored in the provider with a new certificate specified -// by the ClientCertificate. This method allows dynamic updates to the certificate used in TLS connections, -// facilitating use cases such as certificate rotation. -func (p *RotatingClientCertificateProvider) UpdateCertificate(cert ClientCertificate) error { - tlsCert, err := loadCertificate(cert.CertFile, cert.KeyFile, cert.Password) - if err != nil { - return err - } - - p.mu.Lock() - defer p.mu.Unlock() - p.certificate = &tlsCert - return nil -} - -// loadCertificate attempts to load a certificate and its corresponding private key -// from the given paths. If a password is provided, it will attempt to decrypt -// the private key assuming it is encrypted. -func loadCertificate(certFile string, keyFile string, password *string) (tls.Certificate, error) { - // Load certificate PEM block - certPEMBlock, err := os.ReadFile(certFile) - if err != nil { - return tls.Certificate{}, err - } - // Load private key PEM block - keyPEMBlock, err := os.ReadFile(keyFile) - if err != nil { - return tls.Certificate{}, err - } - // Decrypt the private key if a password is provided - if password != nil { - decodedKeyPEMBlock, _ := pem.Decode(keyPEMBlock) - if decodedKeyPEMBlock == nil { - return tls.Certificate{}, errors.New("failed to parse PEM block containing the key") - } - //lint:ignore SA1019 Using due to lack of stdlib alternatives; aware of RFC 1423's insecurity. - decryptedDERBlock, decryptErr := x509.DecryptPEMBlock(decodedKeyPEMBlock, []byte(*password)) - if decryptErr != nil { - return tls.Certificate{}, decryptErr - } - // Re-encode the decrypted block to PEM - keyPEMBlock = pem.EncodeToMemory(&pem.Block{Type: decodedKeyPEMBlock.Type, Bytes: decryptedDERBlock}) - } - // Create the tls.Certificate - return tls.X509KeyPair(certPEMBlock, keyPEMBlock) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth_tokens.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth_tokens.go deleted file mode 100644 index feac1d5..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth_tokens.go +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - -// AuthToken contains credentials to be sent over to the neo4j server. -type AuthToken = auth.Token - -const keyScheme = "scheme" -const schemeNone = "none" -const schemeBasic = "basic" -const schemeKerberos = "kerberos" -const schemeBearer = "bearer" -const keyPrincipal = "principal" -const keyCredentials = "credentials" -const keyRealm = "realm" - -// NoAuth generates an empty authentication token -func NoAuth() AuthToken { - return AuthToken{Tokens: map[string]any{ - keyScheme: schemeNone, - }} -} - -// BasicAuth generates a basic authentication token with provided username, password and realm -func BasicAuth(username string, password string, realm string) AuthToken { - tokens := map[string]any{ - keyScheme: schemeBasic, - keyPrincipal: username, - keyCredentials: password, - } - - if realm != "" { - tokens[keyRealm] = realm - } - - return AuthToken{Tokens: tokens} -} - -// KerberosAuth generates a kerberos authentication token with provided base-64 encoded kerberos ticket -func KerberosAuth(ticket string) AuthToken { - token := AuthToken{ - Tokens: map[string]any{ - keyScheme: schemeKerberos, - // Backwards compatibility: Neo4j servers pre 4.4 require the presence of the principal. - keyPrincipal: "", - keyCredentials: ticket, - }, - } - - return token -} - -// BearerAuth generates an authentication token with the provided base-64 value generated by a Single Sign-On provider -func BearerAuth(token string) AuthToken { - result := AuthToken{ - Tokens: map[string]any{ - keyScheme: schemeBearer, - keyCredentials: token, - }, - } - - return result -} - -// CustomAuth generates a custom authentication token with provided parameters -func CustomAuth(scheme string, username string, password string, realm string, parameters map[string]any) AuthToken { - tokens := map[string]any{ - keyScheme: scheme, - keyPrincipal: username, - } - - if password != "" { - tokens[keyCredentials] = password - } - - if realm != "" { - tokens[keyRealm] = realm - } - - if len(parameters) > 0 { - tokens["parameters"] = parameters - } - - return AuthToken{Tokens: tokens} -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/bookmarks.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/bookmarks.go deleted file mode 100644 index e1224fc..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/bookmarks.go +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections" - "sync" -) - -// Bookmarks is a holder for server-side bookmarks which are used for causally-chained sessions. -// See also CombineBookmarks. -// Note: this will be changed from being a type alias to being a struct in 6.0. Please use BookmarksFromRawValues for construction -// from raw values and BookmarksToRawValues for accessing the raw values. -type Bookmarks = []string - -// BookmarkManager centralizes bookmark manager supply and notification -type BookmarkManager interface { - // UpdateBookmarks updates the bookmark tracked by this bookmark manager - // previousBookmarks are the initial bookmarks of the bookmark holder (like a Session) - // newBookmarks are the bookmarks that are received after completion of the bookmark holder operation (like the end of a Session) - UpdateBookmarks(ctx context.Context, previousBookmarks, newBookmarks Bookmarks) error - - // GetBookmarks returns all the bookmarks tracked by this bookmark manager - // Note: the order of the returned bookmark slice does not need to be deterministic - GetBookmarks(ctx context.Context) (Bookmarks, error) -} - -type BookmarkManagerConfig struct { - // Initial bookmarks per database - InitialBookmarks Bookmarks - - // Supplier providing external bookmarks - BookmarkSupplier func(context.Context) (Bookmarks, error) - - // Hook called whenever bookmarks get updated - // The hook is called with the database and the new bookmarks - // Note: the order of the supplied bookmark slice is not guaranteed - BookmarkConsumer func(ctx context.Context, bookmarks Bookmarks) error -} - -type bookmarkManager struct { - bookmarks collections.Set[string] - supplyBookmarks func(context.Context) (Bookmarks, error) - consumeBookmarks func(context.Context, Bookmarks) error - mutex sync.RWMutex -} - -func (b *bookmarkManager) UpdateBookmarks(ctx context.Context, previousBookmarks, newBookmarks Bookmarks) error { - if len(newBookmarks) == 0 { - return nil - } - b.mutex.Lock() - defer b.mutex.Unlock() - var bookmarksToNotify Bookmarks - b.bookmarks.RemoveAll(previousBookmarks) - b.bookmarks.AddAll(newBookmarks) - bookmarksToNotify = b.bookmarks.Values() - if b.consumeBookmarks != nil { - return b.consumeBookmarks(ctx, bookmarksToNotify) - } - return nil -} - -func (b *bookmarkManager) GetBookmarks(ctx context.Context) (Bookmarks, error) { - var extraBookmarks Bookmarks - if b.supplyBookmarks != nil { - bookmarks, err := b.supplyBookmarks(ctx) - if err != nil { - return nil, err - } - extraBookmarks = bookmarks - } - b.mutex.RLock() - defer b.mutex.RUnlock() - if len(b.bookmarks) == 0 { - return extraBookmarks, nil - } - bookmarks := b.bookmarks.Copy() - if extraBookmarks == nil { - return bookmarks.Values(), nil - } - bookmarks.AddAll(extraBookmarks) - return bookmarks.Values(), nil -} - -func NewBookmarkManager(config BookmarkManagerConfig) BookmarkManager { - return &bookmarkManager{ - bookmarks: collections.NewSet(config.InitialBookmarks), - supplyBookmarks: config.BookmarkSupplier, - consumeBookmarks: config.BookmarkConsumer, - } -} - -// CombineBookmarks is a helper method to combine []Bookmarks into a single Bookmarks instance. -// Let s1, s2, s3 be Session interfaces. You can easily causally chain the sessions like so: -// ```go -// -// s4 := driver.NewSession(neo4j.SessionConfig{ -// Bookmarks: neo4j.CombineBookmarks(s1.LastBookmarks(), s2.LastBookmarks(), s3.LastBookmarks()), -// }) -// -// ``` -// The server will then make sure to execute all transactions in s4 after any that were already executed in s1, s2, or s3 -// at the time of calling LastBookmarks. -func CombineBookmarks(bookmarks ...Bookmarks) Bookmarks { - var lenSum int - for _, b := range bookmarks { - lenSum += len(b) - } - res := make([]string, lenSum) - var i int - for _, b := range bookmarks { - i += copy(res[i:], b) - } - return res -} - -// BookmarksToRawValues exposes the raw server-side bookmarks. -// You should not need to use this method unless you want to serialize bookmarks. -// See Session.LastBookmarks and CombineBookmarks for alternatives. -func BookmarksToRawValues(bookmarks Bookmarks) []string { - return bookmarks -} - -// BookmarksFromRawValues creates Bookmarks from raw server-side bookmarks. -// You should not need to use this method unless you want to de-serialize bookmarks. -// See Session.LastBookmarks and CombineBookmarks for alternatives. -func BookmarksFromRawValues(values ...string) Bookmarks { - return values -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config.go deleted file mode 100644 index 589fdae..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config.go +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/config" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" - "math" - "net/url" - "time" -) - -// Deprecated: please use config.Config directly. This alias will be removed in 6.0. -type Config = config.Config - -// Deprecated: please use config.ServerAddressResolver directly. This alias will be removed in 6.0. -type ServerAddressResolver = config.ServerAddressResolver - -// Deprecated: please use config.ServerAddress directly. This alias will be removed in 6.0. -type ServerAddress = config.ServerAddress - -func defaultConfig() *Config { - return &Config{ - AddressResolver: nil, - MaxTransactionRetryTime: 30 * time.Second, - MaxConnectionPoolSize: 100, - MaxConnectionLifetime: 1 * time.Hour, - ConnectionAcquisitionTimeout: 1 * time.Minute, - ConnectionLivenessCheckTimeout: pool.DefaultConnectionLivenessCheckTimeout, - SocketConnectTimeout: 5 * time.Second, - SocketKeepalive: true, - RootCAs: nil, - UserAgent: UserAgent, - FetchSize: FetchDefault, - NotificationsMinSeverity: notifications.DefaultLevel, - NotificationsDisabledCategories: notifications.NotificationDisabledCategories{}, - NotificationsDisabledClassifications: notifications.NotificationDisabledClassifications{}, - TelemetryDisabled: false, - ReadBufferSize: bolt.DefaultReadBufferSize, - } -} - -func validateAndNormaliseConfig(config *Config) error { - // Max Transaction Retry Time - if config.MaxTransactionRetryTime < 0 { - return &UsageError{Message: "Maximum transaction retry time cannot be smaller than 0"} - } - - // Max Connection Pool Size - if config.MaxConnectionPoolSize == 0 { - return &UsageError{Message: "Maximum connection pool cannot be 0"} - } - - if config.MaxConnectionPoolSize < 0 { - config.MaxConnectionPoolSize = math.MaxInt32 - } - - // Max Connection Lifetime - if config.MaxConnectionLifetime <= 0 { - config.MaxConnectionLifetime = 1<<63 - 1 - } - - // Connection Acquisition Timeout - if config.ConnectionAcquisitionTimeout < 0 { - config.ConnectionAcquisitionTimeout = -1 - } - - // Connection Liveness Check Timeout - if config.ConnectionLivenessCheckTimeout < 0 { - return &UsageError{Message: "Connection liveness check timeout cannot be smaller than 0"} - } - - // Socket Connect Timeout - if config.SocketConnectTimeout < 0 { - config.SocketConnectTimeout = 0 - } - - // Check notifications have not been configured with both categories and classifications. - if len(config.NotificationsDisabledCategories.DisabledCategories()) > 0 && - len(config.NotificationsDisabledClassifications.DisabledClassifications()) > 0 { - return &UsageError{Message: "Notifications cannot be disabled for both categories and classifications at the same time."} - } - - return nil -} - -func newServerAddressURL(hostname string, port string) *url.URL { - if hostname == "" { - return nil - } - - hostAndPort := hostname - if port != "" { - hostAndPort = hostAndPort + ":" + port - } - - return &url.URL{Host: hostAndPort} -} - -// NewServerAddress generates a ServerAddress with provided hostname and port information. -func NewServerAddress(hostname string, port string) ServerAddress { - return newServerAddressURL(hostname, port) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config/driver.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config/driver.go deleted file mode 100644 index a581960..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config/driver.go +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 config - -import ( - "crypto/tls" - "crypto/x509" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" - "time" -) - -// A Config contains options that can be used to customize certain -// aspects of the driver -type Config struct { - // RootCAs defines the set of certificate authorities that the driver trusts. If set - // to nil, the driver uses hosts system certificates. - // - // The trusted certificates are used to validate connections for URI schemes 'bolt+s' - // and 'neo4j+s'. - // - // Deprecated: RootCAs will be removed in 6.0. - // Please rely on TlsConfig's RootCAs attribute instead. - // RootCAs is ignored if TlsConfig is set. - RootCAs *x509.CertPool - // TlsConfig defines the TLS configuration of the driver. - // - // The configuration is only used for URI schemes 'bolt+s', 'bolt+ssc', - // 'neo4j+s' and 'neo4j+ssc'. - // - // The default MinVersion attribute is tls.VersionTLS12. This is overridable. - // The InsecureSkipVerify attribute of TlsConfig is always derived from the initial URI scheme. - // The ServerName attribute of TlsConfig is always derived from the initial URI host. - // - // This is considered an advanced setting, use it at your own risk. - // Introduced in 5.0. - TlsConfig *tls.Config - // ClientCertificateProvider specifies a provider for the client TLS certificate for mutual TLS authentication. - // Use auth.NewStaticClientCertificateProvider for static certificates, or auth.NewRotatingClientCertificateProvider - // for certificates that require runtime updates without application restart. - // - // Static certificate example: - // config.ClientCertificateProvider = auth.NewStaticClientCertificateProvider(auth.ClientCertificateProvider{ - // CertFile: "path/to/client.crt", - // KeyFile: "path/to/client.key", - // }) - // - // Rotatable certificate example: - // provider, _ := auth.NewRotatingClientCertificateProvider(auth.ClientCertificateProvider{ - // CertFile: "path/to/initial_client.crt", - // KeyFile: "path/to/initial_client.key", - // }) - // config.ClientCertificateProvider = provider - // // Dynamically update the certificate later without restarting the application. - // _ = provider.UpdateCertificate(auth.ClientCertificateProvider{ - // CertFile: "path/to/new_client.crt", - // KeyFile: "path/to/new_client.key", - // }) - // - // Note: This option is not applicable for 'bolt://' or 'neo4j://' schemes where encryption isn't used. - ClientCertificateProvider auth.ClientCertificateProvider - // Logging target the driver will send its log outputs - // - // Possible to use custom logger (implement log.Logger interface) or - // use neo4j.ConsoleLogger. - // - // default: No Op Logger (log.Void) - Log log.Logger - // Resolver that would be used to resolve initial router address. This may - // be useful if you want to provide more than one URL for initial router. - // If not specified, the URL provided to NewDriver or NewDriverWithContext - // is used as the initial router. - // - // default: nil - AddressResolver ServerAddressResolver - // Maximum amount of time a retryable operation would continue retrying. It - // cannot be specified as a negative value. - // - // default: 30 * time.Second - MaxTransactionRetryTime time.Duration - // Maximum number of connections per URL to allow on this driver. It - // cannot be specified as 0 and negative values are interpreted as - // math.MaxInt32. - // - // default: 100 - MaxConnectionPoolSize int - // Maximum connection lifetime on pooled connections. Values less than - // or equal to 0 disables the lifetime check. - // - // default: 1 * time.Hour - MaxConnectionLifetime time.Duration - // Maximum amount of time to either acquire an idle connection from the pool - // or create a new connection (when the pool is not full). Negative values - // result in an infinite wait time, whereas a 0 value results in no timeout. - // If no timeout is set, an immediate failure follows when there are no - // available connections. - // - // Since 4.3, this setting competes with connection read timeout hints, if - // the server-side option called - // "dbms.connector.bolt.connection_keep_alive_for_requests" is enabled. - // The read timeout is automatically applied and may result in connections - // being dropped if they are idle beyond the corresponding period. - // - // Since 5.0, this setting competes with the context-aware APIs. These APIs - // are discoverable through NewDriverWithContext. - // When a connection needs to be acquired from the internal driver - // connection pool and the user-provided context.Context carries a deadline - // (through context.WithTimeout or context.WithDeadline), the earliest - // deadline wins. Connections are still subject to early terminations if a read timeout - // hint is received. - // - // default: 1 * time.Minute - ConnectionAcquisitionTimeout time.Duration - // ConnectionLivenessCheckTimeout sets the timeout duration for idle connections in the pool. - // Connections idle longer than this timeout will be tested for liveliness before reuse. A low timeout value - // can increase network requests when acquiring a connection, impacting performance. Conversely, a high - // timeout may result in using connections that are no longer active, causing exceptions in your application. - // These exceptions typically resolve with a retry or using a driver API with automatic - // retries, assuming the database is operational. - // - // The parameter balances the likelihood of encountering connection issues against performance. - // Typically, adjustment of this parameter is not necessary. - // - // By default, no liveliness check is performed. A value of 0 ensures connections are always tested for - // validity, and negative values are not permitted. - // - // default: pool.DefaultConnectionLivenessCheckTimeout - ConnectionLivenessCheckTimeout time.Duration - // Connect timeout that will be set on underlying sockets. Values less than - // or equal to 0 results in no timeout being applied. - // - // Since 5.0, this setting competes with the context-aware APIs. These APIs - // are discoverable through NewDriverWithContext. - // If a connection needs to be created when one of these APIs is called - // and the user-provided context.Context carries a deadline (through - // context.WithTimeout or context.WithDeadline), the TCP dialer will pick - // the earliest between this setting and the context deadline. - // - // default: 5 * time.Second - SocketConnectTimeout time.Duration - // Whether to enable TCP keep alive on underlying sockets. - // - // default: true - SocketKeepalive bool - // Optionally override the user agent string sent to Neo4j server. - // - // default: neo4j.UserAgent - UserAgent string - // FetchSize defines how many records to pull from server in each batch. - // From Bolt protocol v4 (Neo4j 4+) records can be fetched in batches as - // compared to fetching all in previous versions. - // If the underlying protocol does not support FetchSize, it is ignored. - // - // If FetchSize is set to `FetchDefault`, the driver decides the appropriate size. - // If set to a positive value that size is used; negative values behaves as `FetchAll` (see below). - // - // To turn off fetching in batches and always fetch everything, set FetchSize to `FetchAll`. - // A limited FetchSize ensures the client is not overflown with records, - // and allows to bound memory usage. - FetchSize int - // NotificationsMinSeverity defines the minimum severity level of notifications the server should send. - // By default, the server's settings are used. - // Disabling severities allows the server to skip analysis for those, which can speed up query execution. - NotificationsMinSeverity notifications.NotificationMinimumSeverityLevel - // NotificationsDisabledCategories defines the categories of notifications the server should not send. - // By default, the server's settings are used. - // Disabling categories allows the server to skip analysis for those, which can speed up query execution. - NotificationsDisabledCategories notifications.NotificationDisabledCategories - // NotificationsDisabledClassifications is identical to NotificationsDisabledCategories. - // This alternative is provided for a consistent naming with neo4j.GqlStatusObject Classification. - // - // NotificationsDisabledClassifications is part of the GQL compliant notifications preview feature - // (see README on what it means in terms of support and compatibility guarantees) - NotificationsDisabledClassifications notifications.NotificationDisabledClassifications - // By default, if the server requests it, the driver will automatically transmit anonymous usage - // statistics to the server it is connected to. - // - // By configuring TelemetryDisabled=True, the driver will refrain from transmitting any telemetry data. - // - // Each time one of the specified APIs is utilized to execute a query for the first time, the driver - // informs the server of this action without providing additional details such as arguments or client identifiers: - // - // neo4j.ExecuteQuery - // SessionWithContext.Run - // SessionWithContext.BeginTransaction - // SessionWithContext.ExecuteRead - // SessionWithContext.ExecuteWrite - // - // default: true - TelemetryDisabled bool - // ReadBufferSize defines the size of the buffer used for reading data from the network connection. - // A larger buffer size can improve performance by reducing the number of read operations required - // for large data transfers. Currently, the default value is 8 KiB, but may change in the future. - // Set to 0 or below to disable buffering. - ReadBufferSize int -} - -// ServerAddressResolver is a function type that defines the resolver function used by the routing driver to -// resolve the initial address used to create the driver. -type ServerAddressResolver func(address ServerAddress) []ServerAddress - -// ServerAddress represents a host and port. Host can either be an IP address or a DNS name. -// Both IPv4 and IPv6 hosts are supported. -type ServerAddress interface { - // Hostname returns the host portion of this ServerAddress. - Hostname() string - // Port returns the port portion of this ServerAddress. - Port() string -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/consolelogger.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/consolelogger.go deleted file mode 100644 index 7325828..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/consolelogger.go +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// LogLevel is the type that default logging implementations use for available -// log levels -// -// Deprecated: use log.Level instead. -type LogLevel = log.Level - -const ( - // ERROR is the level that error messages are written - // - // Deprecated: use log.ERROR instead. - ERROR = log.ERROR - // WARNING is the level that warning messages are written - // - // Deprecated: use log.WARNING instead. - WARNING = log.WARNING - // INFO is the level that info messages are written - // - // Deprecated: use log.INFO instead. - INFO = log.INFO - // DEBUG is the level that debug messages are written - // - // Deprecated: use log.DEBUG instead. - DEBUG = log.DEBUG -) - -// Deprecated: use log.ToConsole() instead. -func ConsoleLogger(level log.Level) *log.Console { - return &log.Console{ - Errors: level >= log.ERROR, - Warns: level >= log.WARNING, - Infos: level >= log.INFO, - Debugs: level >= log.DEBUG, - } -} - -// Deprecated: use log.BoltToConsole() instead. -func ConsoleBoltLogger() *log.ConsoleBoltLogger { - return &log.ConsoleBoltLogger{} -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/errors.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/errors.go deleted file mode 100644 index 1fa7230..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/errors.go +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -import ( - "fmt" - "reflect" - "strings" -) - -type ErrorClassification string - -const ( - ClientError ErrorClassification = "CLIENT_ERROR" - DatabaseError ErrorClassification = "DATABASE_ERROR" - TransientError ErrorClassification = "TRANSIENT_ERROR" - UnknownError ErrorClassification = "UNKNOWN" -) - -// TODO: when we no longer need to support the old Neo4jError, rename the following fields: -// - Neo4jError -> GqlError -// - GqlStatusDescription -> StatusDescription -// - GqlClassification -> Classification -// - GqlRawClassification -> RawClassification -// - GqlDiagnosticRecord -> DiagnosticRecord -// - GqlCause -> Cause -// - GqlStatus to remain as-is to comply with GQLSTATUS. - -// Neo4jError is created when the database server fails to fulfill a request. -type Neo4jError struct { - // Code is the Neo4j-specific error code, to be deprecated in favor of GqlStatus. - Code string - // Msg is the specific error message describing the failure. - Msg string - // GqlStatus returns the GQLSTATUS. - // GqlStatus is the error code compliant with the GQL specification. - // - // GqlStatus is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlStatus string - // GqlStatusDescription provides a standard description for the associated GQLStatus code. - // - // GqlStatusDescription is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlStatusDescription string - // GqlClassification is a high-level categorization of the error, specific to GQL error handling. - // - // GqlClassification is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlClassification ErrorClassification - // GqlRawClassification holds the raw classification as received from the server. - // - // GqlRawClassification is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlRawClassification string - // GqlDiagnosticRecord returns further information about the status for diagnostic purposes. - // - // GqlDiagnosticRecord is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlDiagnosticRecord map[string]any - // GqlCause represents the underlying error, if any, which caused the current error. - // - // GqlCause is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlCause *Neo4jError - parsed bool - classification string // Legacy non-GQL classification - category string - title string - retriable bool -} - -func (e *Neo4jError) Error() string { - return fmt.Sprintf("Neo4jError: %s (%s)", e.Code, e.Msg) -} - -// TODO 6.0: remove in favour of GqlClassification -func (e *Neo4jError) Classification() string { - e.parse() - return e.classification -} - -func (e *Neo4jError) Category() string { - e.parse() - return e.category -} - -func (e *Neo4jError) Title() string { - e.parse() - return e.title -} - -// parse code from Neo4j into usable parts. -// Code Neo.ClientError.General.ForbiddenReadOnlyDatabase is split into: -// -// Classification: ClientError -// Category: General -// Title: ForbiddenReadOnlyDatabase -func (e *Neo4jError) parse() { - if e.parsed { - return - } - e.parsed = true - e.reclassify() - parts := strings.Split(e.Code, ".") - if len(parts) != 4 { - return - } - e.classification = parts[1] - e.category = parts[2] - e.title = parts[3] -} - -// reclassify classifies specific errors coming from pre-5.x servers into their -// 5.x classifications -// this function can be removed once support for pre-5.x servers is dropped -func (e *Neo4jError) reclassify() { - switch e.Code { - case "Neo.TransientError.Transaction.LockClientStopped": - e.Code = "Neo.ClientError.Transaction.LockClientStopped" - case "Neo.TransientError.Transaction.Terminated": - e.Code = "Neo.ClientError.Transaction.Terminated" - } -} - -func (e *Neo4jError) HasSecurityCode() bool { - return strings.HasPrefix(e.Code, "Neo.ClientError.Security.") -} - -func (e *Neo4jError) IsAuthenticationFailed() bool { - return e.Code == "Neo.ClientError.Security.Unauthorized" -} - -func (e *Neo4jError) IsRetriable() bool { - return e.retriable || - e.IsRetriableTransient() || - e.IsRetriableCluster() || - e.Code == "Neo.ClientError.Security.AuthorizationExpired" -} - -func (e *Neo4jError) IsRetriableTransient() bool { - e.parse() - return e.classification == "TransientError" -} - -func (e *Neo4jError) IsRetriableCluster() bool { - switch e.Code { - case "Neo.ClientError.Cluster.NotALeader", "Neo.ClientError.General.ForbiddenOnReadOnlyDatabase": - return true - } - return false -} - -func (e *Neo4jError) MarkRetriable() { - e.retriable = true -} - -type FeatureNotSupportedError struct { - Server string - Feature string - Reason string -} - -func (e *FeatureNotSupportedError) Error() string { - return fmt.Sprintf("Server %s does not support: %s (%s)", e.Server, e.Feature, e.Reason) -} - -type UnsupportedTypeError struct { - Type reflect.Type -} - -func (e *UnsupportedTypeError) Error() string { - return fmt.Sprintf("Usage of type '%s' is not supported", e.Type.String()) -} - -type ProtocolError struct { - MessageType string - Field string - Err string -} - -func (e *ProtocolError) Error() string { - if e.MessageType == "" { - return fmt.Sprintf("ProtocolError: %s", e.Err) - } - if e.Field == "" { - return fmt.Sprintf("ProtocolError: message %s could not be hydrated: %s", e.MessageType, e.Err) - } - return fmt.Sprintf("ProtocolError: field %s of message %s could not be hydrated: %s", - e.Field, e.MessageType, e.Err) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/record.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/record.go deleted file mode 100644 index 54ddbbf..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/record.go +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -type Record struct { - // Values contains all the values in the record. - Values []any - // Keys contains names of the values in the record. - // Should not be modified. Same instance is used for all records within the same result. - Keys []string -} - -// Get returns the value corresponding to the given key along with a boolean that is true if -// a value was found and false if there were no key with the given name. -// -// If there are a lot of keys in combination with a lot of records to iterate, consider to retrieve -// values from Values slice directly or make a key -> index map before iterating. This implementation -// does not make or use a key -> index map since the overhead of making the map might not be beneficial -// for small and few records. -func (r Record) Get(key string) (any, bool) { - for i, ckey := range r.Keys { - if key == ckey { - return r.Values[i], true - } - } - return nil, false -} - -// AsMap returns a dictionary copy made of the record keys and the corresponding values -func (r Record) AsMap() map[string]any { - result := make(map[string]any, len(r.Keys)) - for i, key := range r.Keys { - result[key] = r.Values[i] - } - return result -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/summary.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/summary.go deleted file mode 100644 index 698a81c..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/summary.go +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -// Definitions of these should correspond to public API -type StatementType int - -const ( - StatementTypeUnknown StatementType = 0 - StatementTypeRead StatementType = 1 - StatementTypeReadWrite StatementType = 2 - StatementTypeWrite StatementType = 3 - StatementTypeSchemaWrite StatementType = 4 -) - -// Counter key names -const ( - NodesCreated = "nodes-created" - NodesDeleted = "nodes-deleted" - RelationshipsCreated = "relationships-created" - RelationshipsDeleted = "relationships-deleted" - PropertiesSet = "properties-set" - LabelsAdded = "labels-added" - LabelsRemoved = "labels-removed" - IndexesAdded = "indexes-added" - IndexesRemoved = "indexes-removed" - ConstraintsAdded = "constraints-added" - ConstraintsRemoved = "constraints-removed" - SystemUpdates = "system-updates" -) - -// Plan describes the actual plan that the database planner produced and used (or will use) to execute your statement. -// This can be extremely helpful in understanding what a statement is doing, and how to optimize it. For more details, -// see the Neo4j Manual. The plan for the statement is a tree of plans - each sub-tree containing zero or more child -// plans. The statement starts with the root plan. Each sub-plan is of a specific operator, which describes what -// that part of the plan does - for instance, perform an index lookup or filter results. -// The Neo4j Manual contains a reference of the available operator types, and these may differ across Neo4j versions. -type Plan struct { - // Operator is the operation this plan is performing. - Operator string - // Arguments for the operator. - // Many operators have arguments defining their specific behavior. This map contains those arguments. - Arguments map[string]any - // List of identifiers used by this plan. Identifiers used by this part of the plan. - // These can be both identifiers introduced by you, or automatically generated. - Identifiers []string - // Zero or more child plans. A plan is a tree, where each child is another plan. - // The children are where this part of the plan gets its input records - unless this is an operator that - // introduces new records on its own. - Children []Plan -} - -// ProfiledPlan is the same as a regular Plan - except this plan has been executed, meaning it also -// contains detailed information about how much work each step of the plan incurred on the database. -type ProfiledPlan struct { - // Operator contains the operation this plan is performing. - Operator string - // Arguments contains the arguments for the operator used. - // Many operators have arguments defining their specific behavior. This map contains those arguments. - Arguments map[string]any - // Identifiers contains a list of identifiers used by this plan. Identifiers used by this part of the plan. - // These can be both identifiers introduced by you, or automatically generated. - Identifiers []string - // DbHits contains the number of times this part of the plan touched the underlying data stores/ - DbHits int64 - // Records contains the number of records this part of the plan produced. - Records int64 - // Children contains zero or more child plans. A plan is a tree, where each child is another plan. - // The children are where this part of the plan gets its input records - unless this is an operator that - // introduces new records on its own. - Children []ProfiledPlan - PageCacheMisses int64 - PageCacheHits int64 - PageCacheHitRatio float64 - Time int64 -} - -// StreamSummary is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type StreamSummary struct { - HadRecord bool - HadKey bool -} - -type Notification struct { - Code string - Title string - Description string - Position *InputPosition - Severity string - Category string -} - -// GqlStatusObject represents a GqlStatusObject generated when executing a statement. -// A GqlStatusObject can be visualized in a client pinpointing problems or other information about the statement. -// Contrary to failures or errors, GqlStatusObjects do not affect the execution of the statement. -// -// GqlStatusObject is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type GqlStatusObject struct { - // Deprecated: for backward compatibility with Notification.Code only. - Code string - // Deprecated: for backward compatibility with Notification.Title only. - Title string - // Deprecated: for backward compatibility with Notification.Description only. - Description string - // GqlStatus returns the GQLSTATUS. - // The following GQLSTATUS codes denote codes that the driver will use for - // polyfilling (when connected to an old, non-GQL-aware server). Further, they may be used by servers - // during the transition-phase to GQLSTATUS-awareness. - // - "01N42" (warning - unknown warning) - // - "02N42" (no data - unknown subcondition) - // - "03N42" (informational - unknown notification) - // - "05N42" (general processing exception - unknown error) - // - // This means these codes are not guaranteed to be stable and may change in future versions. - GqlStatus string - // StatusDescription returns a description of the status. - StatusDescription string - // Position returns the position in the statement where this status points to. - // Not all statuses have a unique position to point to and in that case the position would be set to nil. - // - // Only Notifications (see IsNotification) have a meaningful position. - Position *InputPosition - // Classification returns the mapped Classification of this status. - // If the Classification is not a known value, Classification returns notifications.UnknownClassification. - // - // Only Notifications (see IsNotification) have a meaningful classification. - Classification string - // Severity returns the mapped Severity of this status. - // If the Severity is not a known value, Severity returns notifications.UnknownSeverity. - // - // Only Notifications (see IsNotification) have a meaningful severity. - Severity string - // DiagnosticRecord returns further information about the status for diagnostic purposes. - DiagnosticRecord map[string]any - // IsNotification returns true if this status is a Notification. - // - // Only some statuses are Notifications. - IsNotification bool -} - -// InputPosition contains information about a specific position in a statement -type InputPosition struct { - // Offset contains the character offset referred to by this position; offset numbers start at 0. - Offset int - // Line contains the line number referred to by this position; line numbers start at 1. - Line int - // Column contains the column number referred to by this position; column numbers start at 1. - Column int -} - -type ProtocolVersion struct { - Major int - Minor int -} - -type Summary struct { - Bookmark string - StmntType StatementType - ServerName string - Agent string - Major int - Minor int - Counters map[string]int - TFirst int64 - TLast int64 - Plan *Plan - ProfiledPlan *ProfiledPlan - Notifications []Notification - GqlStatusObjects []GqlStatusObject - Database string - ContainsSystemUpdates *bool - ContainsUpdates *bool - StreamSummary StreamSummary -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/graph.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/graph.go deleted file mode 100644 index 2195d86..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/graph.go +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 dbtype contains definitions of supported database types. -package dbtype - -type Entity interface { - // Deprecated: GetId is deprecated and will be removed in 6.0. Use GetElementId instead. - GetId() int64 - GetElementId() string - GetProperties() map[string]any -} - -// Node represents a node in the neo4j graph database -type Node struct { - // Deprecated: Id is deprecated and will be removed in 6.0. Use ElementId instead. - Id int64 // Id of this Node. - ElementId string // ElementId of this Node. - Labels []string // Labels attached to this Node. - Props map[string]any // Properties of this Node. -} - -func (n Node) GetId() int64 { - return n.Id -} - -func (n Node) GetElementId() string { - return n.ElementId -} - -func (n Node) GetProperties() map[string]any { - return n.Props -} - -// Relationship represents a relationship in the neo4j graph database -type Relationship struct { - // Deprecated: Id is deprecated and will be removed in 6.0. Use ElementId instead. - Id int64 // Id of this Relationship. - ElementId string // ElementId of this Relationship. - // Deprecated: StartId is deprecated and will be removed in 6.0. Use StartElementId instead. - StartId int64 // Id of the start Node of this Relationship. - StartElementId string // ElementId of the start Node of this Relationship. - // Deprecated: EndId is deprecated and will be removed in 6.0. Use EndElementId instead. - EndId int64 // Id of the end Node of this Relationship. - EndElementId string // ElementId of the end Node of this Relationship. - Type string // Type of this Relationship. - Props map[string]any // Properties of this Relationship. -} - -func (r Relationship) GetId() int64 { - return r.Id -} - -func (r Relationship) GetElementId() string { - return r.ElementId -} - -func (r Relationship) GetProperties() map[string]any { - return r.Props -} - -// Path represents a directed sequence of relationships between two nodes. -// This generally represents a traversal or walk through a graph and maintains a direction separate from that of any -// relationships traversed. It is allowed to be of size 0, meaning there are no relationships in it. In this case, -// it contains only a single node which is both the start and the end of the path. -type Path struct { - Nodes []Node // All the nodes in the path. - Relationships []Relationship -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/invalid.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/invalid.go deleted file mode 100644 index 308b89f..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/invalid.go +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 dbtype - -import "fmt" - -type InvalidValue struct { - Message string - Err error -} - -func (i *InvalidValue) String() string { - return fmt.Sprintf(`{"message": %q, "error": %q}`, i.Message, i.Err) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/spatial.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/spatial.go deleted file mode 100644 index 70cdf7f..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/spatial.go +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 dbtype - -import ( - "fmt" -) - -// Point2D represents a two dimensional point in a particular coordinate reference system. -type Point2D struct { - X float64 - Y float64 - SpatialRefId uint32 // Id of coordinate reference system. -} - -// Point3D represents a three dimensional point in a particular coordinate reference system. -type Point3D struct { - X float64 - Y float64 - Z float64 - SpatialRefId uint32 // Id of coordinate reference system. -} - -// String returns string representation of this point. -func (p Point2D) String() string { - return fmt.Sprintf("Point{SpatialRefId=%d, X=%f, Y=%f}", p.SpatialRefId, p.X, p.Y) -} - -// String returns string representation of this point. -func (p Point3D) String() string { - return fmt.Sprintf("Point{SpatialRefId=%d, X=%f, Y=%f, Z=%f}", p.SpatialRefId, p.X, p.Y, p.Z) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/temporal.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/temporal.go deleted file mode 100644 index 31823ec..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/temporal.go +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 dbtype - -import ( - "fmt" - "time" -) - -// Cypher DateTime corresponds to Go time.Time - -type ( - Time time.Time // Time since start of day with timezone information - Date time.Time // Date value, without a time zone and time related components. - LocalTime time.Time // Time since start of day in local timezone - LocalDateTime time.Time // Date and time in local timezone -) - -// Time casts LocalDateTime to time.Time -// -// Note that the resulting time.Time will have its location set to time.Local. -// From the DBMS's perspective, however, a LocalDateTime is considered to not have any timezone information. -func (t LocalDateTime) Time() time.Time { - return time.Time(t) -} - -// String returns the string representation of this LocalDateTime in ISO-8601 compliant form: -// `YYYY-MM-DDThh:mm:ss.nnnnnnnnn`. -func (t LocalDateTime) String() string { - return t.Time().Format("2006-01-02T15:04:05.999999999") -} - -// Time casts LocalTime to time.Time -// -// Note that the resulting time.Time will have its location set to time.Local. -// From the DBMS's perspective, however, a LocalTime is considered to not have any timezone information. -func (t LocalTime) Time() time.Time { - return time.Time(t) -} - -// String returns the string representation of this LocalTime in ISO-8601 compliant form: -// `hh:mm:ss.nnnnnnnnn`. -func (t LocalTime) String() string { - return t.Time().Format("15:04:05.999999999") -} - -// Time casts Date to time.Time -func (t Date) Time() time.Time { - return time.Time(t) -} - -// String returns the string representation of this Date in ISO-8601 compliant form: -// `YYYY-MM-DD`. -func (t Date) String() string { - return t.Time().Format("2006-01-02") -} - -// Time casts Time to time.Time -func (t Time) Time() time.Time { - return time.Time(t) -} - -// String returns the string representation of this Time in ISO-8601 compliant form: -// `hh:mm:ss.nnnnnnnnn±Z/hh:mm`. -func (t Time) String() string { - return t.Time().Format("15:04:05.999999999Z07:00") -} - -// Duration represents temporal amount containing months, days, seconds and nanoseconds. -// Supports longer durations than time.Duration -type Duration struct { - Months int64 - Days int64 - Seconds int64 - Nanos int -} - -// String returns the string representation of this Duration in ISO-8601 compliant form. -func (d Duration) String() string { - sign := "" - if d.Seconds < 0 && d.Nanos > 0 { - d.Seconds++ - d.Nanos = int(time.Second) - d.Nanos - - if d.Seconds == 0 { - sign = "-" - } - } - - timePart := "" - if d.Nanos == 0 { - timePart = fmt.Sprintf("%s%d", sign, d.Seconds) - } else { - timePart = fmt.Sprintf("%s%d.%09d", sign, d.Seconds, d.Nanos) - } - - return fmt.Sprintf("P%dM%dDT%sS", d.Months, d.Days, timePart) -} - -func (d1 Duration) Equal(d2 Duration) bool { - return d1.Months == d2.Months && d1.Days == d2.Days && d1.Seconds == d2.Seconds && d1.Nanos == d2.Nanos -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/directrouter.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/directrouter.go deleted file mode 100644 index 08426b3..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/directrouter.go +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// A router implementation that never routes -type directRouter struct { - address string -} - -func (r *directRouter) InvalidateWriter(string, string) {} - -func (r *directRouter) InvalidateReader(string, string) {} - -func (r *directRouter) InvalidateServer(string) {} - -func (r *directRouter) GetOrUpdateReaders(context.Context, func(context.Context) ([]string, error), db.DatabaseSelection, *db.ReAuthToken, log.BoltLogger, func(string)) ([]string, error) { - return []string{r.address}, nil -} - -func (r *directRouter) Readers(string) []string { - return []string{r.address} -} - -func (r *directRouter) GetOrUpdateWriters(context.Context, func(context.Context) ([]string, error), db.DatabaseSelection, *db.ReAuthToken, log.BoltLogger, func(string)) ([]string, error) { - return []string{r.address}, nil -} - -func (r *directRouter) Writers(string) []string { - return []string{r.address} -} - -func (r *directRouter) GetNameOfDefaultDatabase(context.Context, []string, string, *db.ReAuthToken, log.BoltLogger) (string, error) { - return db.DefaultDatabase, nil -} - -func (r *directRouter) Invalidate(string) {} - -func (r *directRouter) CleanUp() {} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver.go deleted file mode 100644 index e5b9309..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver.go +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j provides required functionality to connect and execute statements against a Neo4j Database. -package neo4j - -import ( - "context" - "net/url" -) - -// Driver represents a pool(s) of connections to a neo4j server or cluster. It's -// safe for concurrent use. -// -// Deprecated: please use DriverWithContext instead. This interface will be removed in 6.0. -type Driver interface { - // Target returns the url this driver is bootstrapped - Target() url.URL - // NewSession creates a new session based on the specified session configuration. - NewSession(config SessionConfig) Session - // VerifyConnectivity checks that the driver can connect to a remote server or cluster by - // establishing a network connection with the remote. Returns nil if succesful - // or error describing the problem. - VerifyConnectivity() error - // Close the driver and all underlying connections. - // This function may not be called while the driver is in use (i.e., concurrently). - // - // Connections that are still in use will be closed lazily when returned to the connection pool. - // This can lead to behavior that is hard to predict and which depends on driver implementation details. - // Therefore, it is strongly recommended to make sure you are done using the driver and have closed - // all resources spawned from it (such as sessions or transactions) before calling the method - Close() error - // IsEncrypted determines whether the driver communication with the server - // is encrypted. This is a static check. The function can also be called on - // a closed Driver. - IsEncrypted() bool -} - -// NewDriver is the entry point to the neo4j driver to create an instance of a Driver. It is the first function to -// be called in order to establish a connection to a neo4j database. It requires a Bolt URI and an authentication -// token as parameters and can also take optional configuration function(s) as variadic parameters. -// -// In order to connect to a single instance database, you need to pass a URI with scheme 'bolt', 'bolt+s' or 'bolt+ssc'. -// -// driver, err = NewDriver("bolt://db.server:7687", BasicAuth(username, password)) -// -// In order to connect to a causal cluster database, you need to pass a URI with scheme 'neo4j', 'neo4j+s' or 'neo4j+ssc' -// and its host part set to be one of the core cluster members. -// -// driver, err = NewDriver("neo4j://core.db.server:7687", BasicAuth(username, password)) -// -// You can override default configuration options by providing a configuration function(s) -// -// driver, err = NewDriver(uri, BasicAuth(username, password), function (config *Config) { -// config.MaxConnectionPoolSize = 10 -// }) -// -// Deprecated: please use NewDriverWithContext instead. This function will be removed in 6.0. -func NewDriver(target string, auth AuthToken, configurers ...func(*Config)) (Driver, error) { - delegate, err := NewDriverWithContext(target, auth, configurers...) - if err != nil { - return nil, err - } - return &driver{delegate: delegate}, nil -} - -type driver struct { - delegate DriverWithContext -} - -func (d *driver) Target() url.URL { - return d.delegate.Target() -} - -func (d *driver) NewSession(config SessionConfig) Session { - return d.delegate.NewSession(context.Background(), config).legacy() -} - -func (d *driver) VerifyConnectivity() error { - return d.delegate.VerifyConnectivity(context.Background()) -} - -func (d *driver) Close() error { - return d.delegate.Close(context.Background()) -} - -func (d *driver) IsEncrypted() bool { - return d.delegate.IsEncrypted() -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context.go deleted file mode 100644 index e8f9bf2..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context.go +++ /dev/null @@ -1,744 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j provides required functionality to connect and execute statements against a Neo4j Database. -package neo4j - -import ( - "context" - "fmt" - "net/url" - "strings" - "sync" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// AccessMode defines modes that routing driver decides to which cluster member -// a connection should be opened. -type AccessMode int - -const ( - // AccessModeWrite tells the driver to use a connection to 'Leader' - AccessModeWrite AccessMode = 0 - // AccessModeRead tells the driver to use a connection to one of the 'Follower' or 'Read Replica'. - AccessModeRead AccessMode = 1 -) - -// DriverWithContext represents a pool of connections to a neo4j server or cluster. It's -// safe for concurrent use. -type DriverWithContext interface { - // ExecuteQueryBookmarkManager returns the bookmark manager instance used by ExecuteQuery by default. - // - // This is useful when ExecuteQuery is called without custom bookmark managers and the lower-level - // neo4j.SessionWithContext APIs are called as well. - // In that case, the recommended approach is as follows: - // results, err := neo4j.ExecuteQuery(ctx, driver, query, params, transformerFunc) - // // [...] do something with results and error - // bookmarkManager := driver.ExecuteQueryBookmarkManager() - // // maintain consistency with sessions as well - // session := driver.NewSession(ctx, neo4j.SessionConfig {BookmarkManager: bookmarkManager}) - // // [...] run something within the session - ExecuteQueryBookmarkManager() BookmarkManager - // Target returns the url this driver is bootstrapped - Target() url.URL - // NewSession creates a new session based on the specified session configuration. - NewSession(ctx context.Context, config SessionConfig) SessionWithContext - // VerifyConnectivity checks that the driver can connect to a remote server or cluster by - // establishing a network connection with the remote. Returns nil if successful - // or error describing the problem. - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - VerifyConnectivity(ctx context.Context) error - // VerifyAuthentication verifies that the authentication information is valid. - // - // It's much like `DriverWithContext.VerifyConnectivity`, but for checking authentication. - // - // Passing `nil` as `auth` will use the authentication information that was used to create the driver. - // - // Tries to establish a working read connection to the remote server or a member of a cluster and exchange some data. - // In a cluster, there is no guarantee about which server will be contacted. - // If the data exchange is successful, the authentication information is valid no error is returned. - // Otherwise, the error will be matched against a list of known authentication errors. - // If the error is on that list, an `neo4j.InvalidAuthenticationError` is returned. - // Otherwise, the original error is returned. - VerifyAuthentication(ctx context.Context, auth *AuthToken) error - // Close the driver and all underlying connections. - // This function may not be called while the driver is in use (i.e., concurrently). - // - // Connections that are still in use will be closed lazily when returned to the connection pool. - // This can lead to behavior that is hard to predict and which depends on driver implementation details. - // Therefore, it is strongly recommended to make sure you are done using the driver and have closed - // all resources spawned from it (such as sessions or transactions) before calling the method - Close(ctx context.Context) error - // IsEncrypted determines whether the driver communication with the server - // is encrypted. This is a static check. The function can also be called on - // a closed Driver. - IsEncrypted() bool - // GetServerInfo attempts to obtain server information from the target Neo4j - // deployment - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - GetServerInfo(ctx context.Context) (ServerInfo, error) -} - -// ResultTransformer is a record accumulator that produces an instance of T when the processing of records is over. -type ResultTransformer[T any] interface { - // Accept is called whenever a new record is fetched from the server - // Implementers are free to accumulate or discard the specified record - Accept(*Record) error - - // Complete is called when the record fetching is over and no error occurred. - // In particular, it is important to note that Accept may be called several times before an error occurs. - // In that case, Complete will not be called. - Complete(keys []string, summary ResultSummary) (T, error) -} - -// NewDriverWithContext is the entry point to the neo4j driver to create an instance of a Driver. It is the first function to -// be called in order to establish a connection to a neo4j database. It requires a Bolt URI and authentication -// as parameters and can also take optional configuration function(s) as variadic parameters. -// -// No connectivity happens when NewDriverWithContext is called. -// Call DriverWithContext.VerifyConnectivity once the driver is created if you want to eagerly check that the provided -// URI and credentials are correct. -// -// In order to connect to a single instance database, you need to pass a URI with scheme 'bolt', 'bolt+s' or 'bolt+ssc'. -// -// driver, err = NewDriverWithContext("bolt://db.server:7687", BasicAuth(username, password)) -// -// In order to connect to a causal cluster database, you need to pass a URI with scheme 'neo4j', 'neo4j+s' or 'neo4j+ssc' -// and its host part set to be one of the core cluster members. -// -// driver, err = NewDriverWithContext("neo4j://core.db.server:7687", BasicAuth(username, password)) -// -// You can override default configuration options by providing a configuration function(s) -// -// driver, err = NewDriverWithContext(uri, BasicAuth(username, password), function (config *Config) { -// config.MaxConnectionPoolSize = 10 -// }) -// -// The authentication can be nil, in which case the driver will not authenticate with the server. -// Else, an implementation of `auth.TokenManager` is required. -// The `neo4j` package provides default implementations of `auth.TokenManager` for common authentication schemes: -// - `neo4j.NoAuth` (equivalent to `nil`) -// - `neo4j.BasicAuth` -// - `neo4j.KerberosAuth` -// - `neo4j.BearerAuth` -// - `neo4j.CustomAuth` -func NewDriverWithContext(target string, auth auth.TokenManager, configurers ...func(*Config)) (DriverWithContext, error) { - parsed, err := url.Parse(target) - if err != nil { - return nil, err - } - - d := driverWithContext{target: parsed, mut: sync.Mutex{}, auth: auth} - - routing := true - d.connector.Network = "tcp" - address := parsed.Host - switch parsed.Scheme { - case "bolt": - routing = false - d.connector.SkipEncryption = true - case "bolt+unix": - // bolt+unix:// - routing = false - d.connector.SkipEncryption = true - d.connector.Network = "unix" - if parsed.Host != "" { - return nil, &UsageError{ - Message: fmt.Sprintf("Host part should be empty for scheme %s", parsed.Scheme), - } - } - address = parsed.Path - case "bolt+s": - routing = false - case "bolt+ssc": - d.connector.SkipVerify = true - routing = false - case "neo4j": - d.connector.SkipEncryption = true - case "neo4j+ssc": - d.connector.SkipVerify = true - case "neo4j+s": - default: - return nil, &UsageError{ - Message: fmt.Sprintf("URI scheme %s is not supported", parsed.Scheme), - } - } - - if parsed.Host != "" && parsed.Port() == "" { - address += ":7687" - parsed.Host = address - } - - if !routing && len(parsed.RawQuery) > 0 { - return nil, &UsageError{ - Message: fmt.Sprintf("Routing context is not supported for URL scheme %s", parsed.Scheme), - } - } - - // Apply client hooks for setting up configuration - d.config = defaultConfig() - for _, configurer := range configurers { - configurer(d.config) - } - if err := validateAndNormaliseConfig(d.config); err != nil { - return nil, err - } - if auth == nil { - auth = NoAuth() - } - - // Setup logging - d.log = d.config.Log - if d.log == nil { - // Default to void logger - d.log = log.ToVoid() - } - d.logId = log.NewId() - - routingContext, err := routingContextFromUrl(routing, parsed) - if err != nil { - return nil, err - } - - d.connector.Log = d.log - d.connector.LogId = d.logId - d.connector.RoutingContext = routingContext - d.connector.Config = d.config - - // Create cache for home database - d.cache, err = homedb.NewCache(homedb.DefaultCacheMaxSize) - if err != nil { - return nil, err - } - - // Let the pool use the same log ID as the driver to simplify log reading. - d.pool = pool.New(d.config, d.connector.Connect, d.log, d.logId, d.cache) - - if !routing { - d.router = &directRouter{address: address} - } else { - var routersResolver func() []string - addressResolverHook := d.config.AddressResolver - if addressResolverHook != nil { - routersResolver = func() []string { - addresses := addressResolverHook(parsed) - servers := make([]string, len(addresses)) - for i, a := range addresses { - servers[i] = fmt.Sprintf("%s:%s", a.Hostname(), a.Port()) - } - return servers - } - } - // Let the router use the same log ID as the driver to simplify log reading. - d.router = router.New( - address, - routersResolver, - routingContext, - d.pool, - d.config.ConnectionLivenessCheckTimeout, - d.log, - d.logId, - ) - } - - d.pool.SetRouter(d.router) - - d.log.Infof(log.Driver, d.logId, "Created { target: %s }", address) - return &d, nil -} - -const routingContextAddressKey = "address" - -func routingContextFromUrl(useRouting bool, u *url.URL) (map[string]string, error) { - if !useRouting { - return nil, nil - } - queryValues := u.Query() - routingContext := make(map[string]string, len(queryValues)+1 /*For address*/) - for k, vs := range queryValues { - if len(vs) > 1 { - return nil, &UsageError{ - Message: fmt.Sprintf("Duplicated routing context key '%s'", k), - } - } - if len(vs) == 0 { - return nil, &UsageError{ - Message: fmt.Sprintf("Empty routing context key '%s'", k), - } - } - v := vs[0] - v = strings.TrimSpace(v) - if len(v) == 0 { - return nil, &UsageError{ - Message: fmt.Sprintf("Empty routing context value for key '%s'", k), - } - } - if k == routingContextAddressKey { - return nil, &UsageError{Message: fmt.Sprintf("Illegal key '%s' for routing context", k)} - } - routingContext[k] = v - } - routingContext[routingContextAddressKey] = u.Host - return routingContext, nil -} - -type sessionRouter interface { - // GetOrUpdateReaders returns the list of servers that can serve reads on the requested database. - // note: bookmarks are lazily supplied, only when a new routing table needs to be fetched - // this is needed because custom bookmark managers may provide bookmarks from external systems - // they should not be called when it is not needed (e.g. when a routing table is cached) - GetOrUpdateReaders(ctx context.Context, bookmarks func(context.Context) ([]string, error), dbSelection idb.DatabaseSelection, auth *idb.ReAuthToken, boltLogger log.BoltLogger, onRoutingTableUpdated func(string)) ([]string, error) - // Readers returns the list of servers that can serve reads on the requested database. - Readers(database string) []string - // GetOrUpdateWriters returns the list of servers that can serve writes on the requested database. - // note: bookmarks are lazily supplied, see Readers documentation to learn why - GetOrUpdateWriters(ctx context.Context, bookmarks func(context.Context) ([]string, error), dbSelection idb.DatabaseSelection, auth *idb.ReAuthToken, boltLogger log.BoltLogger, onRoutingTableUpdated func(string)) ([]string, error) - // Writers returns the list of servers that can serve writes on the requested database. - Writers(database string) []string - // GetNameOfDefaultDatabase returns the name of the default database for the specified user. - // The correct database name is needed when requesting readers or writers. - // the bookmarks are eagerly provided since this method always fetches a new routing table - GetNameOfDefaultDatabase(ctx context.Context, bookmarks []string, user string, auth *idb.ReAuthToken, boltLogger log.BoltLogger) (string, error) - Invalidate(db string) - CleanUp() - InvalidateWriter(db string, server string) - InvalidateReader(db string, server string) - InvalidateServer(server string) -} - -type driverWithContext struct { - target *url.URL - config *Config - pool *pool.Pool - mut sync.Mutex - connector connector.Connector - router sessionRouter - logId string - log log.Logger - // visible for tests - executeQueryBookmarkManagerInitializer sync.Once - // instance of the bookmark manager only used by default by managed sessions of ExecuteQuery - // this is *not* used by default by user-created session (see NewSession) - executeQueryBookmarkManager BookmarkManager - auth auth.TokenManager - cache *homedb.Cache -} - -func (d *driverWithContext) Target() url.URL { - return *d.target -} - -func (d *driverWithContext) NewSession(ctx context.Context, config SessionConfig) SessionWithContext { - if config.DatabaseName == "" { - config.DatabaseName = idb.DefaultDatabase - } - - var reAuthToken *idb.ReAuthToken - if config.Auth == nil { - reAuthToken = &idb.ReAuthToken{ - Manager: d.auth, - FromSession: false, - ForceReAuth: config.forceReAuth, - } - } else { - reAuthToken = &idb.ReAuthToken{ - Manager: config.Auth, - FromSession: true, - ForceReAuth: config.forceReAuth, - } - } - - d.mut.Lock() - defer d.mut.Unlock() - if d.pool == nil { - return &erroredSessionWithContext{ - err: &UsageError{Message: "Trying to create session on closed driver"}} - } - return newSessionWithContext(ctx, d.config, config, d.router, d.pool, d.cache, d.log, reAuthToken) -} - -func (d *driverWithContext) VerifyConnectivity(ctx context.Context) error { - _, err := d.GetServerInfo(ctx) - return err -} - -func (d *driverWithContext) IsEncrypted() bool { - return !d.connector.SkipEncryption -} - -func (d *driverWithContext) GetServerInfo(ctx context.Context) (_ ServerInfo, err error) { - session := d.NewSession(ctx, SessionConfig{}) - defer func() { - err = deferredClose(ctx, session, err) - }() - return session.getServerInfo(ctx) -} - -func (d *driverWithContext) Close(ctx context.Context) error { - d.mut.Lock() - defer d.mut.Unlock() - if d.pool == nil { - // Safeguard against closing more than once - return nil - } - pool := d.pool - d.pool = nil - - pool.Close(ctx) - pool = nil - d.log.Infof(log.Driver, d.logId, "Closed") - return nil -} - -func (d *driverWithContext) VerifyAuthentication(ctx context.Context, auth *AuthToken) (err error) { - session := d.NewSession(ctx, SessionConfig{Auth: auth, forceReAuth: true, DatabaseName: "system"}) - defer func() { - err = deferredClose(ctx, session, err) - }() - err = session.verifyAuthentication(ctx) - - if tokenExpiredError, ok := err.(*TokenExpiredError); ok { - return &InvalidAuthenticationError{inner: tokenExpiredError} - } - if neo4jError, ok := err.(*Neo4jError); ok { - if neo4jError.Code == "Neo.ClientError.Security.CredentialsExpired" || - neo4jError.Code == "Neo.ClientError.Security.Forbidden" || - neo4jError.Code == "Neo.ClientError.Security.Unauthorized" { - return &InvalidAuthenticationError{inner: neo4jError} - } - } - return err -} - -// ExecuteQuery runs the specified query with its parameters and returns the query result, transformed by the specified -// ResultTransformer function. -// -// result, err := ExecuteQuery[*EagerResult](ctx, driver, query, params, EagerResultTransformer) -// -// Passing a nil ResultTransformer function is invalid and will return an error. -// -// Likewise, passing a function that returns a nil ResultTransformer is invalid and will return an error. -// -// ExecuteQuery runs the query in a single explicit, retryable transaction within a session entirely managed by -// the driver. -// -// Retries occur in the same conditions as when calling SessionWithContext.ExecuteRead and -// SessionWithContext.ExecuteWrite. -// -// Because it is an explicit transaction from the server point of view, Cypher queries using -// "CALL {} IN TRANSACTIONS" or the older "USING PERIODIC COMMIT" construct will not work (call -// SessionWithContext.Run for these). -// -// Specific settings can be configured via configuration callbacks. Built-in callbacks are provided such as: -// -// neo4j.ExecuteQueryWithDatabase -// neo4j.ExecuteQueryWithWritersRouting -// ... -// -// see neo4j.ExecuteQueryConfiguration for all possibilities. -// -// These built-in callbacks can be used and combined as follows: -// -// ExecuteQuery[T](ctx, driver, query, params, transformerFunc, -// neo4j.ExecuteQueryWithDatabase("my-db"), -// neo4j.ExecuteQueryWithWritersRouting()) -// -// For complete control over the configuration, you can also define your own callback: -// -// ExecuteQuery[T](ctx, driver, query, params, transformerFunc, func(config *neo4j.ExecuteQueryConfiguration) { -// config.Database = "my-db" -// config.RoutingControl = neo4j.Write -// config.ImpersonatedUser = "selda_bağcan" -// }) -// -// ExecuteQuery causal consistency is guaranteed by default across different successful calls to ExecuteQuery -// targeting the same database. -// In other words, a successful read query run by ExecuteQuery is guaranteed to be able to read results created -// from a previous successful write query run by ExecuteQuery on the same database. -// This is achieved through the use of bookmarks, managed by a default neo4j.BookmarkManager instance. -// This default BookmarkManager instance can be retrieved with DriverWithContext.DefaultExecuteQueryBookmarkManager. -// Such a consistency guarantee is *not* maintained between ExecuteQuery calls and the lower-level -// neo4j.SessionWithContext API calls, unless sessions are explicitly configured with the same bookmark manager. -// That guarantee may also break if a custom implementation of neo4j.BookmarkManager is provided via for instance -// the built-in callback neo4j.ExecuteQueryWithBookmarkManager. -// You can disable bookmark management by passing the neo4j.ExecuteQueryWithoutBookmarkManager callback to ExecuteQuery. -// -// The equivalent functionality of ExecuteQuery can be replicated with sessions and transaction functions as follows: -// -// // all the error handling bits have been omitted for brevity (do not do this in production!) -// session := driver.NewSession(ctx, neo4j.SessionConfig{ -// DatabaseName: "", -// ImpersonatedUser: "", -// BookmarkManager: bookmarkManager, -// }) -// defer handleClose(ctx, session) -// // session.ExecuteRead is called if the routing is set to neo4j.Read -// result, _ := session.ExecuteWrite(ctx, func(tx neo4j.ManagedTransaction) (any, error) { -// result, _ := tx.Run(ctx, "", parameters) -// records, _ := result.Collect(ctx) // real implementation does not use Collect -// keys, _ := result.Keys() -// summary, _ := result.Consume(ctx) -// return &neo4j.EagerResult{ -// Keys: keys, -// Records: records, -// Summary: summary, -// }, nil -// }) -// eagerResult := result.(*neo4j.EagerResult) -// // do something with eagerResult -// -// The available ResultTransformer implementation, EagerResultTransformer, computes an *EagerResult. -// As the latter's name suggests, this is not optimal when the result is made from a large number of records. -// In that situation, it is advised to create a custom implementation of ResultTransformer APIs, which do not require -// keeping all records in memory. -// -// The provided ResultTransformer function may be called several times since ExecuteQuery relies on transaction -// functions. -// Since ResultTransformer implementations are inherently stateful, the function must return a new ResultTransformer -// instance every time it is called. -// -// Contexts terminating too early negatively affect connection pooling and degrade the driver performance. -func ExecuteQuery[T any]( - ctx context.Context, - driver DriverWithContext, - query string, - parameters map[string]any, - newResultTransformer func() ResultTransformer[T], - settings ...ExecuteQueryConfigurationOption) (res T, err error) { - - if driver == nil { - return *new(T), &UsageError{Message: "nil is not a valid DriverWithContext argument."} - } - - if newResultTransformer == nil { - return *new(T), &UsageError{Message: "nil is not a valid ResultTransformer function argument. " + - "Consider passing EagerResultTransformer or a function that returns an instance of your own " + - "ResultTransformer implementation"} - } - - bookmarkManager := driver.ExecuteQueryBookmarkManager() - configuration := &ExecuteQueryConfiguration{ - BookmarkManager: bookmarkManager, - } - for _, setter := range settings { - setter(configuration) - } - session := driver.NewSession(ctx, configuration.toSessionConfig()) - defer func() { - err = errorutil.CombineAllErrors(err, session.Close(ctx)) - }() - txFunction, err := configuration.selectTxFunctionApi(session) - if err != nil { - return *new(T), err - } - result, err := txFunction(ctx, executeQueryCallback(ctx, query, parameters, newResultTransformer), configuration.TransactionConfigurers...) - if err != nil { - return *new(T), err - } - return result.(T), err -} - -func (d *driverWithContext) ExecuteQueryBookmarkManager() BookmarkManager { - d.executeQueryBookmarkManagerInitializer.Do(func() { - if d.executeQueryBookmarkManager == nil { // this allows tests to init the field themselves - d.executeQueryBookmarkManager = NewBookmarkManager(BookmarkManagerConfig{}) - } - }) - return d.executeQueryBookmarkManager -} - -func executeQueryCallback[T any]( - ctx context.Context, - query string, - parameters map[string]any, - newTransformer func() ResultTransformer[T]) ManagedTransactionWork { - - return func(tx ManagedTransaction) (any, error) { - transformer := newTransformer() - if transformer == nil { - return nil, &UsageError{Message: "expected the result transformer function to return a valid " + - "ResultTransformer instance, but got nil"} - } - cursor, err := tx.Run(ctx, query, parameters) - if err != nil { - return nil, err - } - for cursor.Next(ctx) { - if err := transformer.Accept(cursor.Record()); err != nil { - return nil, err - } - } - if err = cursor.Err(); err != nil { - return nil, err - } - keys, err := cursor.Keys() - if err != nil { - return nil, err - } - summary, err := cursor.Consume(ctx) - if err != nil { - return nil, err - } - return transformer.Complete(keys, summary) - } -} - -func EagerResultTransformer() ResultTransformer[*EagerResult] { - return &eagerResultTransformer{} -} - -type eagerResultTransformer struct { - records []*Record -} - -func (e *eagerResultTransformer) Accept(record *Record) error { - e.records = append(e.records, record) - return nil -} - -func (e *eagerResultTransformer) Complete(keys []string, summary ResultSummary) (*EagerResult, error) { - return &EagerResult{ - Keys: keys, - Records: e.records, - Summary: summary, - }, nil -} - -// ExecuteQueryConfigurationOption is a callback that configures the execution of neo4j.ExecuteQuery -type ExecuteQueryConfigurationOption func(*ExecuteQueryConfiguration) - -// ExecuteQueryWithReadersRouting configures neo4j.ExecuteQuery to route to reader members of the cluster -func ExecuteQueryWithReadersRouting() ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.Routing = Read - } -} - -// ExecuteQueryWithWritersRouting configures neo4j.ExecuteQuery to route to writer members of the cluster -func ExecuteQueryWithWritersRouting() ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.Routing = Write - } -} - -// ExecuteQueryWithImpersonatedUser configures neo4j.ExecuteQuery to impersonate the specified user -func ExecuteQueryWithImpersonatedUser(user string) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.ImpersonatedUser = user - } -} - -// ExecuteQueryWithDatabase configures neo4j.ExecuteQuery to target the specified database -func ExecuteQueryWithDatabase(db string) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.Database = db - } -} - -// ExecuteQueryWithBookmarkManager configures neo4j.ExecuteQuery to rely on the specified BookmarkManager -func ExecuteQueryWithBookmarkManager(bookmarkManager BookmarkManager) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.BookmarkManager = bookmarkManager - } -} - -// ExecuteQueryWithoutBookmarkManager configures neo4j.ExecuteQuery to not rely on any BookmarkManager -func ExecuteQueryWithoutBookmarkManager() ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.BookmarkManager = nil - } -} - -// ExecuteQueryWithBoltLogger configures neo4j.ExecuteQuery to log Bolt messages with the provided BoltLogger -func ExecuteQueryWithBoltLogger(boltLogger log.BoltLogger) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.BoltLogger = boltLogger - } -} - -// ExecuteQueryWithTransactionConfig configures neo4j.ExecuteQuery with additional transaction configuration. -func ExecuteQueryWithTransactionConfig(configurers ...func(*TransactionConfig)) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.TransactionConfigurers = configurers - } -} - -// ExecuteQueryWithAuthToken configures neo4j.ExecuteQuery to overwrite the AuthToken for the session. -func ExecuteQueryWithAuthToken(auth AuthToken) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.Auth = &auth - } -} - -// ExecuteQueryConfiguration holds all the possible configuration settings for neo4j.ExecuteQuer -type ExecuteQueryConfiguration struct { - Routing RoutingControl - ImpersonatedUser string - Database string - BookmarkManager BookmarkManager - BoltLogger log.BoltLogger - TransactionConfigurers []func(*TransactionConfig) - Auth *AuthToken -} - -// RoutingControl specifies how the query executed by neo4j.ExecuteQuery is to be routed -type RoutingControl int - -const ( - // Write routes the query to execute to a writer member of the cluster - Write RoutingControl = iota - // Read routes the query to execute to a reader member of the cluster - Read -) - -func (c *ExecuteQueryConfiguration) toSessionConfig() SessionConfig { - return SessionConfig{ - ImpersonatedUser: c.ImpersonatedUser, - DatabaseName: c.Database, - BookmarkManager: c.BookmarkManager, - BoltLogger: c.BoltLogger, - Auth: c.Auth, - } -} - -type transactionFunction func(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) - -func (c *ExecuteQueryConfiguration) selectTxFunctionApi(session SessionWithContext) (transactionFunction, error) { - switch c.Routing { - case Read: - return session.executeQueryRead, nil - case Write: - return session.executeQueryWrite, nil - } - return nil, fmt.Errorf("unsupported routing control, expected %d (Write) or %d (Read) "+ - "but got: %d", Write, Read, c.Routing) -} - -// EagerResult holds the result and result metadata of the query executed via neo4j.ExecuteQuery -type EagerResult struct { - Keys []string - Records []*Record - Summary ResultSummary -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context_testkit.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context_testkit.go deleted file mode 100644 index 141651d..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context_testkit.go +++ /dev/null @@ -1,76 +0,0 @@ -//go:build internal_neo4j_go_driver_testkit && internal_neo4j_go_driver_time_mock - -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "fmt" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type RoutingTable = idb.RoutingTable - -func ForceRoutingTableUpdate(d DriverWithContext, database string, bookmarks []string, logger log.BoltLogger) error { - driver := d.(*driverWithContext) - ctx := context.Background() - driver.router.Invalidate(database) - getBookmarks := func(context.Context) ([]string, error) { - return bookmarks, nil - } - auth := &idb.ReAuthToken{ - Manager: driver.auth, - FromSession: false, - ForceReAuth: false, - } - dbSelection := idb.DatabaseSelection{Name: database} - _, err := driver.router.GetOrUpdateReaders(ctx, getBookmarks, dbSelection, auth, logger, func(db string) { - if dbSelection.Name == "" { - dbSelection.Name = db - } - }) - if err != nil { - return errorutil.WrapError(err) - } - _, err = driver.router.GetOrUpdateWriters(ctx, getBookmarks, dbSelection, auth, logger, nil) - return errorutil.WrapError(err) -} - -func RegisterDnsResolver(d DriverWithContext, hook func(address string) []string) { - d.(*driverWithContext).connector.TestKitDnsResolver = hook -} - -func GetRoutingTable(d DriverWithContext, database string) (*RoutingTable, error) { - driver := d.(*driverWithContext) - router, ok := driver.router.(*router.Router) - if !ok { - return nil, fmt.Errorf("GetRoutingTable is only supported for direct drivers") - } - table := router.GetTable(database) - return table, nil -} - -var Now = itime.Now -var FreezeTime = itime.FreezeTime -var TickTime = itime.TickTime -var UnfreezeTime = itime.UnfreezeTime diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/error.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/error.go deleted file mode 100644 index 50ddf1c..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/error.go +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry" -) - -// IsRetryable determines whether an operation can be retried based on the error -// it triggered. This API is meant for use in scenarios where users want to -// implement their own retry mechanism. -// A similar logic is used by the driver for transaction functions. -// -// NOTE: This does not apply when running auto-commit transactions (Session.Run/SessionWithContext.Run) -func IsRetryable(err error) bool { - if err == nil { - return false - } - return retry.IsRetryable(err) -} - -// Neo4jError represents errors originating from Neo4j service. -// Alias for convenience. This error is defined in db package and -// used internally. -type Neo4jError = db.Neo4jError - -type UsageError = errorutil.UsageError - -type ConnectivityError = errorutil.ConnectivityError - -type TransactionExecutionLimit = errorutil.TransactionExecutionLimit - -type InvalidAuthenticationError struct { - inner error -} - -func (i *InvalidAuthenticationError) Error() string { - return fmt.Sprintf("InvalidAuthenticationError: %s", i.inner.Error()) -} - -func (i *InvalidAuthenticationError) Unwrap() error { - return i.inner -} - -// IsNeo4jError returns true if the provided error is an instance of Neo4jError. -func IsNeo4jError(err error) bool { - _, is := err.(*Neo4jError) - return is -} - -// IsUsageError returns true if the provided error is an instance of UsageError. -func IsUsageError(err error) bool { - _, is := err.(*UsageError) - return is -} - -// IsConnectivityError returns true if the provided error is an instance of ConnectivityError. -func IsConnectivityError(err error) bool { - _, is := err.(*ConnectivityError) - return is -} - -// IsTransactionExecutionLimit returns true if the provided error is an instance of TransactionExecutionLimit. -func IsTransactionExecutionLimit(err error) bool { - _, is := err.(*TransactionExecutionLimit) - return is -} - -type TokenExpiredError = errorutil.TokenExpiredError - -type ctxCloser interface { - Close(ctx context.Context) error -} - -func deferredClose(ctx context.Context, closer ctxCloser, prevErr error) error { - return errorutil.CombineErrors(prevErr, closer.Close(ctx)) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/graph.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/graph.go deleted file mode 100644 index 37636aa..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/graph.go +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "fmt" - "time" -) - -type PropertyValue interface { - bool | int64 | float64 | string | - Point2D | Point3D | - Date | LocalTime | LocalDateTime | Time | Duration | time.Time | /* OffsetTime == Time == dbtype.Time */ - []byte | []any -} - -// GetProperty returns the value matching the property of the given neo4j.Node or neo4j.Relationship -// The property type T must adhere to neo4j.PropertyValue -// If the property does not exist, an error is returned -// If the property type does not match the type specification, an error is returned -// -// Note: due to the current limited generics support, any property array value other than byte array is typed as []any. -func GetProperty[T PropertyValue](entity Entity, key string) (T, error) { - rawValue, found := entity.GetProperties()[key] - if !found { - return *new(T), fmt.Errorf("could not find any property named %s", key) - } - value, ok := rawValue.(T) - if !ok { - zeroValue := *new(T) - return zeroValue, fmt.Errorf("expected value to have type %T but found type %T", zeroValue, rawValue) - } - return value, nil -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth/auth.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth/auth.go deleted file mode 100644 index cbc5ed3..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth/auth.go +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 auth - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" -) - -type Token struct { - Tokens map[string]any -} - -func (a Token) GetAuthToken(context.Context) (Token, error) { - return a, nil -} - -func (a Token) HandleSecurityException(context.Context, Token, *db.Neo4jError) (bool, error) { - return false, nil -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt3.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt3.go deleted file mode 100644 index 08037ff..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt3.go +++ /dev/null @@ -1,886 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "errors" - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - iauth "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "io" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const ( - bolt3_ready = iota // Ready for use - bolt3_streaming // Receiving result from auto commit query - bolt3_tx // Transaction pending - bolt3_streamingtx // Receiving result from a query within a transaction - bolt3_failed // Recoverable error, needs reset - bolt3_dead // Non recoverable protocol or connection error - bolt3_unauthorized // Initial state, not sent hello message with authentication -) - -type internalTx3 struct { - mode idb.AccessMode - bookmarks []string - timeout time.Duration - txMeta map[string]any -} - -func (i *internalTx3) toMeta(logger log.Logger, logId string) map[string]any { - meta := map[string]any{} - if i.mode == idb.ReadMode { - meta["mode"] = "r" - } - if len(i.bookmarks) > 0 { - meta["bookmarks"] = i.bookmarks - } - ms := i.timeout.Milliseconds() - if i.timeout.Nanoseconds()%int64(time.Millisecond) > 0 { - ms++ - logger.Infof(log.Bolt5, logId, "The transaction timeout was rounded up to the next millisecond due to a fractional millisecond value in the config.") - } - if ms > 0 { - meta["tx_timeout"] = ms - } - if len(i.txMeta) > 0 { - meta["tx_metadata"] = i.txMeta - } - return meta -} - -type bolt3 struct { - state int - txId idb.TxHandle - currStream *stream - conn io.ReadWriteCloser - serverName string - out *outgoing - in *incoming - connId string - logId string - serverVersion string - bookmark string // Last bookmark - birthDate time.Time - log log.Logger - err error // Last fatal error - minor int - idleDate time.Time - auth map[string]any - authManager auth.TokenManager - resetAuth bool - errorListener ConnectionErrorListener -} - -func NewBolt3( - serverName string, - conn io.ReadWriteCloser, - errorListener ConnectionErrorListener, - logger log.Logger, - boltLog log.BoltLogger, -) *bolt3 { - now := itime.Now() - b := &bolt3{ - state: bolt3_unauthorized, - conn: conn, - serverName: serverName, - in: &incoming{ - buf: make([]byte, 4096), - hyd: hydrator{ - boltLogger: boltLog, - boltMajor: 3, - }, - connReadTimeout: -1, - }, - birthDate: now, - idleDate: now, - log: logger, - errorListener: errorListener, - } - b.out = &outgoing{ - chunker: newChunker(), - packer: packstream.Packer{}, - onPackErr: func(err error) { - if b.err == nil { - b.err = err - } - b.state = bolt3_dead - }, - onIoErr: func(ctx context.Context, err error) { - if b.err == nil { - b.err = err - } - if ctxErr := handleTerminatedContextError(err, b.conn); ctxErr != nil { - b.err = ctxErr - } - b.state = bolt3_dead - }, - boltLogger: boltLog, - useUtc: false, - } - return b -} - -func (b *bolt3) ServerName() string { - return b.serverName -} - -func (b *bolt3) ConnId() string { - return b.connId -} - -func (b *bolt3) ServerVersion() string { - return b.serverVersion -} - -// Sets b.err and b.state on failure -func (b *bolt3) receiveMsg(ctx context.Context) any { - msg, err := b.in.next(ctx, b.conn) - if err != nil { - b.err = err - b.log.Error(log.Bolt3, b.logId, b.err) - b.state = bolt3_dead - return nil - } - b.idleDate = itime.Now() - return msg -} - -// Receives a message that is assumed to be a success response or a failure in response -// to a sent command. -// Sets b.err and b.state on failure -func (b *bolt3) receiveSuccess(ctx context.Context) *success { - switch message := b.receiveMsg(ctx).(type) { - case *success: - return message - case *db.Neo4jError: - b.state = bolt3_failed - b.err = message - if message.Classification() == "ClientError" { - // These could include potentially large cypher statement, only log to debug - b.log.Debugf(log.Bolt3, b.logId, "%s", message) - } else { - b.log.Error(log.Bolt3, b.logId, message) - } - if err := b.errorListener.OnNeo4jError(ctx, b, message); err != nil { - b.err = errorutil.CombineErrors(message, b.err) - } - return nil - default: - // Receive failed, state has been set - if b.err != nil { - return nil - } - // Unexpected message received - b.state = bolt3_dead - b.err = errors.New("expected success or database error") - b.log.Error(log.Bolt3, b.logId, b.err) - return nil - } -} - -func (b *bolt3) Connect( - ctx context.Context, - minor int, - auth *idb.ReAuthToken, - userAgent string, - _ map[string]string, - notificationConfig idb.NotificationConfig, -) error { - if err := b.assertState(bolt3_unauthorized); err != nil { - return err - } - - b.minor = minor - - if err := checkReAuth(auth, b); err != nil { - return err - } - - hello := map[string]any{ - "user_agent": userAgent, - } - // Merge authentication info into hello message - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - b.auth = token.Tokens - b.authManager = auth.Manager - for k, v := range token.Tokens { - _, exists := hello[k] - if exists { - continue - } - hello[k] = v - } - - if err := checkNotificationFiltering(notificationConfig, b); err != nil { - return err - } - - // Send hello message and wait for confirmation - b.out.appendHello(hello) - if b.out.send(ctx, b.conn); b.err != nil { - return b.err - } - - succ := b.receiveSuccess(ctx) - if b.err != nil { - return b.err - } - - b.connId = succ.connectionId - connectionLogId := fmt.Sprintf("%s@%s", b.connId, b.serverName) - b.logId = connectionLogId - b.in.hyd.logId = connectionLogId - b.out.logId = connectionLogId - b.serverVersion = succ.server - - // Transition into ready state - b.state = bolt3_ready - b.log.Infof(log.Bolt3, b.logId, "Connected") - return nil -} - -func (b *bolt3) TxBegin( - ctx context.Context, - txConfig idb.TxConfig, - _ bool, -) (idb.TxHandle, error) { - // Ok, to begin transaction while streaming auto-commit, just empty the stream and continue. - if b.state == bolt3_streaming { - if err := b.bufferStream(ctx); err != nil { - return 0, err - } - } - - if err := b.assertState(bolt3_ready); err != nil { - return 0, err - } - if err := b.checkImpersonation(txConfig.ImpersonatedUser); err != nil { - return 0, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return 0, err - } - - tx := &internalTx3{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - } - - b.out.appendBegin(tx.toMeta(b.log, b.logId)) - if b.out.send(ctx, b.conn); b.err != nil { - return 0, b.err - } - if b.receiveSuccess(ctx); b.err != nil { - return 0, b.err - } - b.state = bolt3_tx - b.txId = idb.TxHandle(time.Now().Unix()) - return b.txId, nil -} - -// Should NOT set b.err or change b.state as this is used to guard from -// misuse from clients that stick to their connections when they shouldn't. -func (b *bolt3) assertTxHandle(h1, h2 idb.TxHandle) error { - if h1 != h2 { - err := errors.New(errorutil.InvalidTransactionError) - b.log.Error(log.Bolt3, b.logId, err) - return err - } - return nil -} - -// Should NOT set b.err or b.state since the connection is still valid -func (b *bolt3) assertState(allowed ...int) error { - // Forward prior error instead, this former error is probably the - // root cause of any state error. Like a call to Run with malformed - // cypher causes an error and another call to Commit would cause the - // state to be wrong. Do not log this. - if b.err != nil { - return b.err - } - for _, a := range allowed { - if b.state == a { - return nil - } - } - err := fmt.Errorf("invalid state %d, expected: %+v", b.state, allowed) - b.log.Error(log.Bolt3, b.logId, err) - return err -} - -func (b *bolt3) TxCommit(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Consume pending stream if any to turn state from streamingtx to tx - // Access to streams outside of tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.state == bolt3_streamingtx { - if err := b.discardStream(ctx); err != nil { - return err - } - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt3_tx); err != nil { - return err - } - - // Send request to server to commit - b.out.appendCommit() - if b.out.send(ctx, b.conn); b.err != nil { - return b.err - } - - // Evaluate server response - succ := b.receiveSuccess(ctx) - if b.err != nil { - return b.err - } - // Keep track of bookmark - if len(succ.bookmark) > 0 { - b.bookmark = succ.bookmark - } - - // Transition into ready state - b.state = bolt3_ready - return nil -} - -func (b *bolt3) TxRollback(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Can not send rollback while still streaming, consume to turn state into tx - // Access to streams outside of tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.state == bolt3_streamingtx { - if err := b.discardStream(ctx); err != nil { - return err - } - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt3_tx); err != nil { - return err - } - - // Send rollback request to server - b.out.appendRollback() - if b.out.send(ctx, b.conn); b.err != nil { - return b.err - } - - // Receive rollback confirmation - if b.receiveSuccess(ctx); b.err != nil { - return b.err - } - - b.state = bolt3_ready - return nil -} - -// Discards all records in current stream -func (b *bolt3) discardStream(ctx context.Context) error { - if b.state != bolt3_streaming && b.state != bolt3_streamingtx { - // Nothing to do - return nil - } - - var ( - sum *db.Summary - err error - ) - for sum == nil && err == nil { - _, sum, err = b.receiveNext(ctx) - } - return err -} - -// Collects all records in current stream -func (b *bolt3) bufferStream(ctx context.Context) error { - if b.state != bolt3_streaming && b.state != bolt3_streamingtx { - // Nothing to do - return nil - } - - n := 0 - var ( - sum *db.Summary - err error - rec *db.Record - ) - for sum == nil && err == nil { - rec, sum, err = b.receiveNext(ctx) - if rec != nil { - b.currStream.push(rec) - n++ - } - } - - if n > 0 { - b.log.Warnf(log.Bolt3, b.logId, "Buffered %d records", n) - } - - return err -} - -func (b *bolt3) run(ctx context.Context, cypher string, params map[string]any, tx *internalTx3) (*stream, error) { - // If already streaming, finish current stream first - if err := b.bufferStream(ctx); err != nil { - return nil, err - } - - if err := b.assertState(bolt3_tx, bolt3_ready); err != nil { - return nil, err - } - - var meta map[string]any - if tx != nil { - meta = tx.toMeta(b.log, b.logId) - } - - // Append run message - b.out.appendRun(cypher, params, meta) - - // Append pull all message and send it along with other pending messages - b.out.appendPullAll() - if b.out.send(ctx, b.conn); b.err != nil { - return nil, b.err - } - - // Receive confirmation of run message - succ := b.receiveSuccess(ctx) - if b.err != nil { - return nil, b.err - } - - b.currStream = &stream{keys: succ.fields, tfirst: succ.tfirst} - // Change state to streaming - if b.state == bolt3_ready { - b.state = bolt3_streaming - } else { - b.state = bolt3_streamingtx - } - return b.currStream, nil -} - -func (b *bolt3) Run( - ctx context.Context, - runCommand idb.Command, - txConfig idb.TxConfig, -) (idb.StreamHandle, error) { - if err := b.assertState(bolt3_streaming, bolt3_ready); err != nil { - return nil, err - } - if err := b.checkImpersonation(txConfig.ImpersonatedUser); err != nil { - return nil, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return nil, err - } - - tx := internalTx3{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - } - stream, err := b.run(ctx, runCommand.Cypher, runCommand.Params, &tx) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt3) RunTx(ctx context.Context, txh idb.TxHandle, runCommand idb.Command) (idb.StreamHandle, error) { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return nil, err - } - - stream, err := b.run(ctx, runCommand.Cypher, runCommand.Params, nil) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt3) Keys(streamHandle idb.StreamHandle) ([]string, error) { - stream, ok := streamHandle.(*stream) - if !ok { - return nil, errors.New("invalid stream handle") - } - // Don't care about if the stream is the current or even if it belongs to this connection. - return stream.keys, nil -} - -// Reads one record from the stream. -func (b *bolt3) Next(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Record, *db.Summary, error) { - stream, ok := streamHandle.(*stream) - if !ok { - return nil, nil, errors.New("invalid stream handle") - } - - // Buffered stream or someone elses stream, doesn't matter... - buf, rec, sum, err := stream.bufferedNext() - if buf { - return rec, sum, err - } - - // Nothing in the stream buffer, the stream must be the current - // one to fetch on it otherwise something is wrong. - if stream != b.currStream { - return nil, nil, errors.New("invalid stream handle") - } - - return b.receiveNext(ctx) -} - -func (b *bolt3) Consume(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Summary, error) { - stream, ok := streamHandle.(*stream) - if !ok { - return nil, errors.New("invalid stream handle") - } - - // If the stream isn't current, it should either already be complete - // or have an error. - if stream != b.currStream { - return stream.sum, stream.err - } - - // It is the current stream, it should not be complete but... - if stream.err != nil || stream.sum != nil { - return stream.sum, stream.err - } - - b.discardStream(ctx) - return stream.sum, stream.err -} - -func (b *bolt3) Buffer(ctx context.Context, - streamHandle idb.StreamHandle) error { - stream, ok := streamHandle.(*stream) - if !ok { - return errors.New("invalid stream handle") - } - - // If the stream isn't current, it should either already be complete - // or have an error. - if stream != b.currStream { - return stream.Err() - } - - // It is the current stream, it should not be complete but... - if stream.err != nil || stream.sum != nil { - return stream.Err() - } - - b.bufferStream(ctx) - return stream.Err() -} - -// Reads one record from the network. -func (b *bolt3) receiveNext(ctx context.Context) (*db.Record, *db.Summary, error) { - if err := b.assertState(bolt3_streaming, bolt3_streamingtx); err != nil { - return nil, nil, err - } - - res := b.receiveMsg(ctx) - if b.err != nil { - return nil, nil, b.err - } - - switch message := res.(type) { - case *db.Record: - message.Keys = b.currStream.keys - b.currStream.hadRecord = true - return message, nil, nil - case *success: - // End of stream, parse summary - sum := message.summary() - if sum == nil { - b.state = bolt3_dead - b.err = errors.New("failed to parse summary") - b.currStream.err = b.err - b.currStream = nil - b.log.Error(log.Bolt3, b.logId, b.err) - return nil, nil, b.err - } - if b.state == bolt3_streamingtx { - b.state = bolt3_tx - } else { - b.state = bolt3_ready - // Keep bookmark for auto-commit tx - if len(sum.Bookmark) > 0 { - b.bookmark = sum.Bookmark - } - } - // Add some extras to the summary - sum.Agent = b.serverVersion - sum.Major = 3 - sum.Minor = b.minor - sum.ServerName = b.serverName - sum.TFirst = b.currStream.tfirst - sum.StreamSummary = b.currStream.ToSummary() - b.currStream.sum = sum - b.currStream = nil - return nil, sum, nil - case *db.Neo4jError: - b.err = message - b.currStream.err = b.err - b.currStream = nil - b.state = bolt3_failed - if message.Classification() == "ClientError" { - // These could include potentially large cypher statement, only log to debug - b.log.Debugf(log.Bolt3, b.logId, "%s", message) - } else { - b.log.Error(log.Bolt3, b.logId, message) - } - if err := b.errorListener.OnNeo4jError(ctx, b, message); err != nil { - return nil, nil, errorutil.CombineErrors(message, err) - } - return nil, nil, message - default: - b.state = bolt3_dead - b.err = errors.New("unknown response") - b.currStream.err = b.err - b.currStream = nil - b.log.Error(log.Bolt3, b.logId, b.err) - return nil, nil, b.err - } -} - -func (b *bolt3) Bookmark() string { - return b.bookmark -} - -func (b *bolt3) IsAlive() bool { - return b.state != bolt3_dead -} - -func (b *bolt3) HasFailed() bool { - return b.state == bolt3_failed -} - -func (b *bolt3) Birthdate() time.Time { - return b.birthDate -} - -func (b *bolt3) IdleDate() time.Time { - return b.idleDate -} - -func (b *bolt3) Reset(ctx context.Context) { - defer func() { - b.log.Debugf(log.Bolt3, b.logId, "Resetting connection internal state") - b.txId = 0 - b.currStream = nil - b.bookmark = "" - b.err = nil - }() - - if b.state == bolt3_ready || b.state == bolt3_dead { - // No need for reset - return - } - - // Discard any pending stream - b.discardStream(ctx) - - if b.state == bolt3_ready { - // No need for reset - return - } - - b.ForceReset(ctx) -} - -func (b *bolt3) ForceReset(ctx context.Context) { - if b.state == bolt3_dead { - return - } - // Send the reset message to the server - // Need to clear any pending error - b.err = nil - b.out.appendReset() - if b.out.send(ctx, b.conn); b.err != nil { - return - } - - // Should receive x number of ignores until we get a success - for { - msg := b.receiveMsg(ctx) - if b.err != nil { - return - } - switch msg.(type) { - case *ignored: - // Command ignored - case *success: - // Reset confirmed - b.state = bolt3_ready - return - default: - b.state = bolt3_dead - return - } - } -} - -func (b *bolt3) checkImpersonation(impersonatedUser string) error { - if impersonatedUser != "" { - return &db.FeatureNotSupportedError{Server: b.serverName, Feature: "user impersonation", Reason: "requires least server v4.4"} - } - return nil -} - -func (b *bolt3) GetRoutingTable(ctx context.Context, - routingContext map[string]string, _ []string, database, impersonatedUser string) (*idb.RoutingTable, error) { - if err := b.assertState(bolt3_ready); err != nil { - return nil, err - } - if database != idb.DefaultDatabase { - return nil, &db.FeatureNotSupportedError{Server: b.serverName, Feature: "route to database", Reason: "requires at least server v4"} - } - if err := b.checkImpersonation(impersonatedUser); err != nil { - return nil, err - } - - // Only available when Neo4j is setup with clustering - runCommand := idb.Command{ - Cypher: "CALL dbms.cluster.routing.getRoutingTable($context)", - Params: map[string]any{"context": routingContext}, - } - txConfig := idb.TxConfig{Mode: idb.ReadMode, Timeout: idb.DefaultTxConfigTimeout} - streamHandle, err := b.Run(ctx, runCommand, txConfig) - if err != nil { - // Give a better error - dbError, isDbError := err.(*db.Neo4jError) - if isDbError && dbError.Code == "Neo.ClientError.Procedure.ProcedureNotFound" { - return nil, &db.FeatureNotSupportedError{Server: b.serverName, Feature: "routing", Reason: "requires cluster setup"} - } - return nil, err - } - - rec, _, err := b.Next(ctx, streamHandle) - if err != nil { - return nil, err - } - if rec == nil { - return nil, errors.New("no routing table record") - } - // Just empty the stream, ignore the summary should leave the connecion in ready state - b.Next(ctx, streamHandle) - - table := parseRoutingTableRecord(rec) - if table == nil { - return nil, errors.New("unable to parse routing table") - } - // Just because - table.DatabaseName = idb.DefaultDatabase - - return table, nil -} - -// Close closes the underlying connection. -// Beware: could be called on another thread when driver is closed. -func (b *bolt3) Close(ctx context.Context) { - b.log.Infof(log.Bolt3, b.logId, "Close") - if b.state != bolt3_dead { - b.out.appendGoodbye() - b.out.send(ctx, b.conn) - } - if err := b.conn.Close(); err != nil { - b.log.Warnf(log.Driver, b.serverName, "could not close underlying socket") - } - b.state = bolt3_dead -} - -func (b *bolt3) SetBoltLogger(boltLogger log.BoltLogger) { - b.in.hyd.boltLogger = boltLogger - b.out.boltLogger = boltLogger -} - -func (b *bolt3) ReAuth(ctx context.Context, auth *idb.ReAuthToken) error { - if err := checkReAuth(auth, b); err != nil { - return err - } - if b.resetAuth { - b.log.Infof(log.Bolt4, b.logId, "Closing connection because auth token expired (informed by other connection)") - b.Close(ctx) - return nil - } - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - if !reflect.DeepEqual(b.auth, token.Tokens) { - b.log.Infof(log.Bolt4, b.logId, "Closing connection because auth token expired (informed by auth manager)") - b.Close(ctx) - } - return nil -} - -func (b *bolt3) Version() db.ProtocolVersion { - return db.ProtocolVersion{ - Major: 3, - Minor: b.minor, - } -} - -func (b *bolt3) ResetAuth() { - b.resetAuth = true -} - -func (b *bolt3) GetCurrentAuth() (auth.TokenManager, iauth.Token) { - token := iauth.Token{Tokens: b.auth} - return b.authManager, token -} - -func (b *bolt3) Telemetry(telemetry.API, func()) { - // TELEMETRY not support by this protocol version, so we ignore it. -} - -func (b *bolt3) SetPinHomeDatabaseCallback(func(context.Context, string)) { - // Home database not supported by this protocol version, so we ignore it. -} - -func (b *bolt3) IsSsrEnabled() bool { - return false -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt4.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt4.go deleted file mode 100644 index 21d2873..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt4.go +++ /dev/null @@ -1,1206 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "errors" - "fmt" - "io" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - iauth "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const ( - bolt4_ready = iota // Ready for use - bolt4_streaming // Receiving result from auto commit query - bolt4_tx // Transaction pending - bolt4_streamingtx // Receiving result from a query within a transaction - bolt4_failed // Recoverable error, needs reset - bolt4_dead // Non recoverable protocol or connection error - bolt4_unauthorized // Initial state, not sent hello message with authentication -) - -// Default fetch size -const bolt4_fetchsize = 1000 - -type internalTx4 struct { - mode idb.AccessMode - bookmarks []string - timeout time.Duration - txMeta map[string]any - databaseName string - impersonatedUser string -} - -func (i *internalTx4) toMeta(logger log.Logger, logId string) map[string]any { - if i == nil { - return nil - } - meta := map[string]any{} - if i.mode == idb.ReadMode { - meta["mode"] = "r" - } - if len(i.bookmarks) > 0 { - meta["bookmarks"] = i.bookmarks - } - ms := i.timeout.Milliseconds() - if i.timeout.Nanoseconds()%int64(time.Millisecond) > 0 { - ms++ - logger.Infof(log.Bolt5, logId, "The transaction timeout was rounded up to the next millisecond due to a fractional millisecond value in the config.") - } - if ms > 0 { - meta["tx_timeout"] = ms - } - if len(i.txMeta) > 0 { - meta["tx_metadata"] = i.txMeta - } - if i.databaseName != idb.DefaultDatabase { - meta["db"] = i.databaseName - } - if i.impersonatedUser != "" { - meta["imp_user"] = i.impersonatedUser - } - return meta -} - -type bolt4 struct { - state int - txId idb.TxHandle - streams openstreams - conn io.ReadWriteCloser - serverName string - connId string - logId string - serverVersion string - bookmark string // Last bookmark - birthDate time.Time - log log.Logger - databaseName string - err error // Last fatal error - minor int - lastQid int64 // Last seen qid - idleDate time.Time - queue messageQueue - auth map[string]any - authManager auth.TokenManager - resetAuth bool - errorListener ConnectionErrorListener -} - -func NewBolt4( - serverName string, - conn io.ReadWriteCloser, - errorListener ConnectionErrorListener, - logger log.Logger, - boltLog log.BoltLogger, -) *bolt4 { - now := itime.Now() - b := &bolt4{ - state: bolt4_unauthorized, - conn: conn, - serverName: serverName, - birthDate: now, - idleDate: now, - log: logger, - streams: openstreams{}, - lastQid: -1, - errorListener: errorListener, - } - b.queue = newMessageQueue( - conn, - &incoming{ - buf: make([]byte, 4096), - hyd: hydrator{ - boltLogger: boltLog, - boltMajor: 4, - }, - connReadTimeout: -1, - }, - &outgoing{ - chunker: newChunker(), - packer: packstream.Packer{}, - onPackErr: func(err error) { b.setError(err, true) }, - onIoErr: b.onIoError, - boltLogger: boltLog, - }, - b.onNextMessage, - b.onIoError, - ) - - return b -} - -func (b *bolt4) checkStreams() { - if b.streams.num <= 0 { - // Perform state transition from streaming, if in that state otherwise keep the current - // state as we are in some kind of bad shape - switch b.state { - case bolt4_streamingtx: - b.state = bolt4_tx - case bolt4_streaming: - b.state = bolt4_ready - } - } -} - -func (b *bolt4) ServerName() string { - return b.serverName -} - -func (b *bolt4) ConnId() string { - return b.connId -} - -func (b *bolt4) ServerVersion() string { - return b.serverVersion -} - -// Sets b.err and b.state to bolt4_failed or bolt4_dead when fatal is true. -func (b *bolt4) setError(err error, fatal bool) { - // Has no effect, can reduce nested ifs - if err == nil { - return - } - - wasDead := b.state == bolt5Dead - // No previous error - if b.err == nil { - b.err = err - b.state = bolt4_failed - } - - // Increase severity even if it was a previous error - if fatal { - if ctxErr := handleTerminatedContextError(err, b.conn); ctxErr != nil { - b.err = ctxErr - } - b.state = bolt4_dead - } - - // Forward error to current stream if there is one - if b.streams.curr != nil { - b.streams.detach(nil, err) - b.checkStreams() - } - - // Do not log big cypher statements as errors - neo4jErr, casted := err.(*db.Neo4jError) - if casted && neo4jErr.Classification() == "ClientError" { - b.log.Debugf(log.Bolt4, b.logId, "%s", err) - } else if wasDead { - b.log.Debugf(log.Bolt4, b.logId, "Already broken connection: %s", err) - } else { - b.log.Error(log.Bolt4, b.logId, err) - } -} - -func (b *bolt4) Connect( - ctx context.Context, - minor int, - auth *idb.ReAuthToken, - userAgent string, - routingContext map[string]string, - notificationConfig idb.NotificationConfig, -) error { - if err := b.assertState(bolt4_unauthorized); err != nil { - return err - } - - b.minor = minor - - if err := checkReAuth(auth, b); err != nil { - return err - } - - // Prepare hello message - hello := map[string]any{ - "user_agent": userAgent, - } - if routingContext != nil { - hello["routing"] = routingContext - } - checkUtcPatch := b.minor >= 3 - if checkUtcPatch { - hello["patch_bolt"] = []string{"utc"} - } - // Merge authentication keys into hello, avoid overwriting existing keys - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - b.auth = token.Tokens - b.authManager = auth.Manager - for k, v := range token.Tokens { - _, exists := hello[k] - if !exists { - hello[k] = v - } - } - - if err := checkNotificationFiltering(notificationConfig, b); err != nil { - return err - } - - b.queue.appendHello(hello, b.helloResponseHandler(checkUtcPatch)) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receive(ctx); err != nil { - return err - } - if b.err != nil { // onNextMessageErr kicked in - return b.err - } - - // Transition into ready state - b.state = bolt4_ready - b.streams.reset() - b.log.Infof(log.Bolt4, b.logId, "Connected") - return nil -} - -func (b *bolt4) checkImpersonationAndVersion(impersonatedUser string) error { - if impersonatedUser != "" && b.minor < 4 { - return &db.FeatureNotSupportedError{Server: b.serverName, Feature: "user impersonation", Reason: "requires at least server v4.4"} - } - return nil -} - -func (b *bolt4) TxBegin( - ctx context.Context, - txConfig idb.TxConfig, - syncMessages bool, -) (idb.TxHandle, error) { - // Ok, to begin transaction while streaming auto-commit, just empty the stream and continue. - if b.state == bolt4_streaming { - if b.bufferStream(ctx); b.err != nil { - return 0, b.err - } - } - // Makes all outstanding streams invalid - b.streams.reset() - - if err := b.assertState(bolt4_ready); err != nil { - return 0, err - } - if err := b.checkImpersonationAndVersion(txConfig.ImpersonatedUser); err != nil { - return 0, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return 0, err - } - - tx := internalTx4{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - databaseName: b.databaseName, - impersonatedUser: txConfig.ImpersonatedUser, - } - - b.queue.appendBegin(tx.toMeta(b.log, b.logId), b.beginResponseHandler()) - if syncMessages { - if b.queue.send(ctx); b.err != nil { - return 0, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return 0, err - } - } - - if b.err != nil { // onNextMessageErr kicked in - return 0, b.err - } - - b.state = bolt4_tx - b.txId = idb.TxHandle(time.Now().Unix()) - return b.txId, nil -} - -// Should NOT set b.err or change b.state as this is used to guard against -// misuse from clients that stick to their connections when they shouldn't. -func (b *bolt4) assertTxHandle(h1, h2 idb.TxHandle) error { - if h1 != h2 { - err := errors.New(errorutil.InvalidTransactionError) - b.log.Error(log.Bolt4, b.logId, err) - return err - } - return nil -} - -// Should NOT set b.err or b.state since the connection is still valid -func (b *bolt4) assertState(allowed ...int) error { - // Forward prior error instead, this former error is probably the - // root cause of any state error. Like a call to Run with malformed - // cypher causes an error and another call to Commit would cause the - // state to be wrong. Do not log this. - if b.err != nil { - return b.err - } - for _, a := range allowed { - if b.state == a { - return nil - } - } - err := fmt.Errorf("invalid state %d, expected: %+v", b.state, allowed) - b.log.Error(log.Bolt4, b.logId, err) - return err -} - -func (b *bolt4) TxCommit(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Consume pending stream if any to turn state from streamingtx to tx - // Access to streams outside tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.discardAllStreams(ctx); b.err != nil { - return b.err - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt4_tx); err != nil { - return err - } - - b.queue.appendCommit(b.commitResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - - // Transition into ready state - b.state = bolt4_ready - return nil -} - -func (b *bolt4) TxRollback(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Can not send rollback while still streaming, consume to turn state into tx - // Access to streams outside tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.discardAllStreams(ctx); b.err != nil { - return b.err - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt4_tx); err != nil { - return err - } - - b.queue.appendRollback(b.rollbackResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - - b.state = bolt4_ready - return nil -} - -// Discards all records in current stream if in streaming state and there is a current stream. -func (b *bolt4) discardStream(ctx context.Context) { - if b.state != bolt4_streaming && b.state != bolt4_streamingtx { - return - } - - stream := b.streams.curr - if stream == nil { - return - } - - stream.discarding = true // pull response handler will discard any accumulated record for this stream - discarded := false - for { - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch && discarded { - b.streams.remove(stream) - b.checkStreams() - return - } - discarded = true - stream.fetchSize = -1 // request infinite batch to consume the rest - if b.state == bolt4_streamingtx && stream.qid != b.lastQid { - b.queue.appendDiscardNQid(stream.fetchSize, stream.qid, b.discardResponseHandler(stream)) - } else { - b.queue.appendDiscardN(stream.fetchSize, b.discardResponseHandler(stream)) - } - if b.queue.send(ctx); b.err != nil { - return - } - } -} - -func (b *bolt4) discardAllStreams(ctx context.Context) { - if b.state != bolt4_streaming && b.state != bolt4_streamingtx { - return - } - - // Discard current - b.discardStream(ctx) - b.streams.reset() - b.checkStreams() -} - -func (b *bolt4) appendPullN(stream *stream) { - if b.state == bolt4_streaming { - b.queue.appendPullN(stream.fetchSize, b.pullResponseHandler(stream)) - } else if b.state == bolt4_streamingtx { - if stream.qid == b.lastQid { - b.queue.appendPullN(stream.fetchSize, b.pullResponseHandler(stream)) - } else { - b.queue.appendPullNQid(stream.fetchSize, stream.qid, b.pullResponseHandler(stream)) - } - } -} - -// Collects all records in current stream if in streaming state and there is a current stream. -func (b *bolt4) bufferStream(ctx context.Context) { - stream := b.streams.curr - if stream == nil { - return - } - - for { - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch { - stream.fetchSize = -1 - b.appendPullN(stream) - if b.queue.send(ctx); b.err != nil { - return - } - } - } -} - -// Prepares the current stream for being switched out by collecting all records in the current -// stream up until the next batch. Assumes that we are in a streaming state. -func (b *bolt4) pauseStream(ctx context.Context) { - stream := b.streams.curr - if stream == nil { - return - } - - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch { - b.streams.pause() - } -} - -func (b *bolt4) resumeStream(ctx context.Context, s *stream) { - b.streams.resume(s) - b.appendPullN(s) - b.queue.send(ctx) -} - -func (b *bolt4) run(ctx context.Context, cypher string, params map[string]any, rawFetchSize int, tx *internalTx4) (*stream, error) { - // If already streaming, consume the whole thing first - if b.state == bolt4_streaming { - if b.bufferStream(ctx); b.err != nil { - return nil, b.err - } - } else if b.state == bolt4_streamingtx { - if b.pauseStream(ctx); b.err != nil { - return nil, b.err - } - } - - if err := b.assertState(bolt4_tx, bolt4_ready, bolt4_streamingtx); err != nil { - return nil, err - } - - fetchSize := b.normalizeFetchSize(rawFetchSize) - stream := &stream{fetchSize: fetchSize} - b.queue.appendRun(cypher, params, tx.toMeta(b.log, b.logId), b.runResponseHandler(stream)) - b.queue.appendPullN(fetchSize, b.pullResponseHandler(stream)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - // only read response for RUN - if err := b.queue.receive(ctx); err != nil { - // rely on RESET to deal with unhandled PULL response - return nil, err - } - if b.err != nil { - return nil, b.err - } - - // Change state to streaming - if b.state == bolt4_ready { - b.state = bolt4_streaming - } else { - b.state = bolt4_streamingtx - } - - return stream, nil -} - -func (b *bolt4) normalizeFetchSize(fetchSize int) int { - if fetchSize < 0 { - return -1 - } - if fetchSize == 0 { - return bolt4_fetchsize - } - return fetchSize -} - -func (b *bolt4) Run( - ctx context.Context, - cmd idb.Command, - txConfig idb.TxConfig, -) (idb.StreamHandle, error) { - if err := b.assertState(bolt4_streaming, bolt4_ready); err != nil { - return nil, err - } - if err := b.checkImpersonationAndVersion(txConfig.ImpersonatedUser); err != nil { - return 0, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return nil, err - } - - tx := internalTx4{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - databaseName: b.databaseName, - impersonatedUser: txConfig.ImpersonatedUser, - } - stream, err := b.run(ctx, cmd.Cypher, cmd.Params, cmd.FetchSize, &tx) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt4) RunTx(ctx context.Context, txh idb.TxHandle, - cmd idb.Command) (idb.StreamHandle, error) { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return nil, err - } - - stream, err := b.run(ctx, cmd.Cypher, cmd.Params, cmd.FetchSize, nil) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt4) Keys(streamHandle idb.StreamHandle) ([]string, error) { - // Don't care about if the stream is the current or even if it belongs to this connection. - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, err - } - return stream.keys, nil -} - -// Next reads one record from the stream. -func (b *bolt4) Next(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Record, *db.Summary, error) { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, nil, err - } - - for { - buf, rec, sum, err := stream.bufferedNext() - if buf { - return rec, sum, err - } - if stream.endOfBatch { - b.appendPullN(stream) - if b.queue.send(ctx); b.err != nil { - return nil, nil, b.err - } - stream.endOfBatch = false - } - if b.queue.isEmpty() { - return nil, nil, errors.New("there should be more results to pull") - } - err = b.queue.receive(ctx) - if err != nil { - return nil, nil, err - } - if b.err != nil { - return nil, nil, b.err - } - } -} - -func (b *bolt4) Consume(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Summary, error) { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, err - } - - // If the stream already is complete we don't care about who it belongs to - if stream.sum != nil || stream.err != nil { - return stream.sum, stream.err - } - - // Make sure the stream is safe (tied to this bolt instance and scope) - if err = b.streams.isSafe(stream); err != nil { - return nil, err - } - - // We should be streaming otherwise it is an internal error, shouldn't be - // a safe stream while not streaming. - if err = b.assertState(bolt4_streaming, bolt4_streamingtx); err != nil { - return nil, err - } - - // If the stream isn't current, we need to pause the current one. - if stream != b.streams.curr { - b.pauseStream(ctx) - if b.err != nil { - return nil, b.err - } - b.resumeStream(ctx, stream) - } - - // If the stream is current, discard everything up to next batch and discard the - // stream on the server. - b.discardStream(ctx) - return stream.sum, stream.err -} - -func (b *bolt4) Buffer(ctx context.Context, - streamHandle idb.StreamHandle) error { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return err - } - - // If the stream already is complete we don't care about who it belongs to - if stream.sum != nil || stream.err != nil { - return stream.Err() - } - - // Make sure the stream is safe - // Do NOT set b.err for this error - if err = b.streams.isSafe(stream); err != nil { - return err - } - - // We should be streaming otherwise it is an internal error, shouldn't be - // a safe stream while not streaming. - if err = b.assertState(bolt4_streaming, bolt4_streamingtx); err != nil { - return err - } - - // If the stream isn't current, we need to pause the current one. - if stream != b.streams.curr { - b.pauseStream(ctx) - if b.err != nil { - return b.err - } - b.resumeStream(ctx, stream) - } - - b.bufferStream(ctx) - return stream.Err() -} - -func (b *bolt4) Bookmark() string { - return b.bookmark -} - -func (b *bolt4) IsAlive() bool { - return b.state != bolt4_dead -} - -func (b *bolt4) HasFailed() bool { - return b.state == bolt4_failed -} - -func (b *bolt4) Birthdate() time.Time { - return b.birthDate -} - -func (b *bolt4) IdleDate() time.Time { - return b.idleDate -} - -func (b *bolt4) Reset(ctx context.Context) { - defer func() { - b.log.Debugf(log.Bolt4, b.logId, "Resetting connection internal state") - b.txId = 0 - b.bookmark = "" - b.databaseName = idb.DefaultDatabase - b.err = nil - b.lastQid = -1 - b.streams.reset() - }() - - if b.state == bolt4_ready { - // No need for reset - return - } - b.ForceReset(ctx) -} - -func (b *bolt4) ForceReset(ctx context.Context) { - if b.state == bolt4_dead { - return - } - // Reset any pending error, should be matching bolt4_failed, so - // it should be recoverable. - b.err = nil - - if err := b.queue.receiveAll(ctx); b.err != nil || err != nil { - return - } - b.queue.appendReset(b.resetResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return - } - if err := b.queue.receive(ctx); b.err != nil || err != nil { - return - } -} - -func (b *bolt4) GetRoutingTable(ctx context.Context, - routingContext map[string]string, bookmarks []string, database, impersonatedUser string) (*idb.RoutingTable, error) { - if err := b.assertState(bolt4_ready); err != nil { - return nil, err - } - - b.log.Infof(log.Bolt4, b.logId, "Retrieving routing table") - if b.minor > 3 { - extras := map[string]any{} - if database != idb.DefaultDatabase { - extras["db"] = database - } - if impersonatedUser != "" { - extras["imp_user"] = impersonatedUser - } - var routingTable *idb.RoutingTable - b.queue.appendRoute(routingContext, bookmarks, extras, b.routeResponseHandler(&routingTable)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return nil, err - } - if b.err != nil { - return nil, b.err - } - return routingTable, nil - } - - if err := b.checkImpersonationAndVersion(impersonatedUser); err != nil { - return nil, err - } - - if b.minor > 2 { - var routingTable *idb.RoutingTable - b.queue.appendRouteV43(routingContext, bookmarks, database, b.routeResponseHandler(&routingTable)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return nil, err - } - if b.err != nil { - return nil, b.err - } - routingTable.DatabaseName = database - return routingTable, nil - } - return b.callGetRoutingTable(ctx, routingContext, bookmarks, database) -} - -func (b *bolt4) callGetRoutingTable(ctx context.Context, - routingContext map[string]string, bookmarks []string, database string) (*idb.RoutingTable, error) { - // The query should run in system database, preserve current setting and restore it when - // done. - originalDatabaseName := b.databaseName - b.databaseName = "system" - defer func() { b.databaseName = originalDatabaseName }() - - // Query for the users default database or a specific database - runCommand := idb.Command{ - Cypher: "CALL dbms.routing.getRoutingTable($context)", - Params: map[string]any{"context": routingContext}, - FetchSize: -1, - } - if database != idb.DefaultDatabase { - runCommand.Cypher = "CALL dbms.routing.getRoutingTable($context, $database)" - runCommand.Params["database"] = database - } - txConfig := idb.TxConfig{Mode: idb.ReadMode, Bookmarks: bookmarks, Timeout: idb.DefaultTxConfigTimeout} - streamHandle, err := b.Run(ctx, runCommand, txConfig) - if err != nil { - return nil, err - } - rec, _, err := b.Next(ctx, streamHandle) - if err != nil { - return nil, err - } - if rec == nil { - return nil, errors.New("no routing table record") - } - // Just empty the stream, ignore the summary should leave the connection in ready state - _, _, _ = b.Next(ctx, streamHandle) - - table := parseRoutingTableRecord(rec) - if table == nil { - return nil, errors.New("unable to parse routing table") - } - // On this version we will not receive the database name - table.DatabaseName = database - return table, nil -} - -// Close closes the underlying connection. -// Beware: could be called on another thread when driver is closed. -func (b *bolt4) Close(ctx context.Context) { - b.log.Infof(log.Bolt4, b.logId, "Close") - if b.state != bolt4_dead { - b.queue.appendGoodbye() - b.queue.send(ctx) - } - if err := b.conn.Close(); err != nil { - b.log.Warnf(log.Driver, b.serverName, "could not close underlying socket") - } - b.state = bolt4_dead -} - -func (b *bolt4) SelectDatabase(database string) { - b.databaseName = database -} - -func (b *bolt4) Database() string { - return b.databaseName -} - -func (b *bolt4) SetBoltLogger(boltLogger log.BoltLogger) { - b.queue.setBoltLogger(boltLogger) -} - -func (b *bolt4) ReAuth(ctx context.Context, auth *idb.ReAuthToken) error { - if err := checkReAuth(auth, b); err != nil { - return err - } - if b.resetAuth { - b.log.Infof(log.Bolt4, b.logId, "Closing connection because auth token expired (informed by other connection)") - b.Close(ctx) - return nil - } - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - if !reflect.DeepEqual(b.auth, token.Tokens) { - b.log.Infof(log.Bolt4, b.logId, "Closing connection because auth token expired (informed by auth manager)") - b.Close(ctx) - } - return nil -} - -func (b *bolt4) Version() db.ProtocolVersion { - return db.ProtocolVersion{ - Major: 4, - Minor: b.minor, - } -} - -func (b *bolt4) ResetAuth() { - b.resetAuth = true -} - -func (b *bolt4) GetCurrentAuth() (auth.TokenManager, iauth.Token) { - token := iauth.Token{Tokens: b.auth} - return b.authManager, token -} - -func (b *bolt4) Telemetry(telemetry.API, func()) { - // TELEMETRY not support by this protocol version, so we ignore it. -} - -func (b *bolt4) SetPinHomeDatabaseCallback(func(context.Context, string)) { - // Home database not supported by this protocol version, so we ignore it. -} - -func (b *bolt4) IsSsrEnabled() bool { - return false -} - -func (b *bolt4) helloResponseHandler(checkUtcPatch bool) responseHandler { - return b.expectedSuccessHandler(b.onHelloSuccess(checkUtcPatch)) -} - -func (b *bolt4) beginResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt4) commitResponseHandler() responseHandler { - return b.expectedSuccessHandler(b.onCommitSuccess) -} - -func (b *bolt4) rollbackResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt4) discardResponseHandler(stream *stream) responseHandler { - return responseHandler{ - onIgnored: func(*ignored) { - stream.err = fmt.Errorf("stream interrupted while discarding results") - b.streams.remove(stream) - b.checkStreams() - }, - onSuccess: func(discardSuccess *success) { - if discardSuccess.hasMore { - stream.endOfBatch = true - return - } - summary := b.extractSummary(discardSuccess, stream) - if len(summary.Bookmark) > 0 { - b.bookmark = summary.Bookmark - } - stream.sum = summary - b.streams.remove(stream) - b.checkStreams() - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - stream.err = failure - b.onFailure(ctx, failure) // Will detach the stream - }, - } -} - -func (b *bolt4) pullResponseHandler(stream *stream) responseHandler { - return responseHandler{ - onRecord: func(record *db.Record) { - if record != nil { - stream.hadRecord = true - } - if stream.discarding { - stream.emptyRecords() - } else { - record.Keys = stream.keys - stream.push(record) - } - b.queue.pushFront(b.pullResponseHandler(stream)) - }, - onIgnored: func(*ignored) { - stream.err = fmt.Errorf("stream interrupted while pulling results") - b.streams.remove(stream) - b.checkStreams() - }, - onSuccess: func(pullSuccess *success) { - if stream.discarding { - stream.emptyRecords() - } - if pullSuccess.hasMore { - stream.endOfBatch = true - return - } - summary := b.extractSummary(pullSuccess, stream) - if len(summary.Bookmark) > 0 { - b.bookmark = summary.Bookmark - } - stream.sum = summary - b.streams.remove(stream) - b.checkStreams() - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - stream.err = failure - b.onFailure(ctx, failure) // will detach the stream - }, - } - -} - -func (b *bolt4) runResponseHandler(stream *stream) responseHandler { - return b.expectedSuccessHandler(func(runSuccess *success) { - stream.keys = runSuccess.fields - stream.qid = runSuccess.qid - stream.tfirst = runSuccess.tfirst - if runSuccess.qid > -1 { - b.lastQid = runSuccess.qid - } - b.streams.attach(stream) - }) -} - -func (b *bolt4) resetResponseHandler() responseHandler { - return responseHandler{ - onSuccess: func(resetSuccess *success) { - b.state = bolt4_ready - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - _ = b.errorListener.OnNeo4jError(ctx, b, failure) - b.state = bolt4_dead - }, - } -} - -func (b *bolt4) routeResponseHandler(table **idb.RoutingTable) responseHandler { - return b.expectedSuccessHandler(func(routeSuccess *success) { - *table = routeSuccess.routingTable - }) -} - -func (b *bolt4) onHelloSuccess(checkUtcPatch bool) func(*success) { - return func(helloSuccess *success) { - if checkUtcPatch { - useUtc := collections.SliceContains(helloSuccess.patches, "utc") - b.queue.in.hyd.useUtc = useUtc - b.queue.out.useUtc = useUtc - } - b.connId = helloSuccess.connectionId - b.serverVersion = helloSuccess.server - - connectionLogId := fmt.Sprintf("%s@%s", b.connId, b.serverName) - b.logId = connectionLogId - b.queue.setLogId(connectionLogId) - b.initializeReadTimeoutHint(helloSuccess.configurationHints) - } -} - -func (b *bolt4) onCommitSuccess(commitSuccess *success) { - if len(commitSuccess.bookmark) > 0 { - b.bookmark = commitSuccess.bookmark - } -} - -func (b *bolt4) expectedSuccessHandler(onSuccess func(*success)) responseHandler { - return responseHandler{ - onSuccess: onSuccess, - onFailure: b.onFailure, - onIgnored: onIgnoredNoOp, - } -} - -func (b *bolt4) onNextMessage() { - b.idleDate = itime.Now() -} - -func (b *bolt4) onFailure(ctx context.Context, failure *db.Neo4jError) { - var err error - err = failure - if callbackErr := b.errorListener.OnNeo4jError(ctx, b, failure); callbackErr != nil { - err = errorutil.CombineErrors(failure, callbackErr) - } - b.setError(err, isFatalError(failure)) -} - -func (b *bolt4) onIoError(ctx context.Context, err error) { - if b.state != bolt4_failed && b.state != bolt4_dead { - // Don't call callback when connections break after sending RESET. - // The server chooses to close the connection on some errors. - b.errorListener.OnIoError(ctx, b, err) - } - b.setError(err, true) -} - -const readTimeoutHintName = "connection.recv_timeout_seconds" - -func (b *bolt4) initializeReadTimeoutHint(hints map[string]any) { - readTimeoutHint, ok := hints[readTimeoutHintName] - if !ok { - return - } - readTimeout, ok := readTimeoutHint.(int64) - if !ok { - b.log.Warnf(log.Bolt4, b.logId, `invalid %q value: %v, ignoring hint. Only strictly positive integer values are accepted`, readTimeoutHintName, readTimeoutHint) - return - } - if readTimeout <= 0 { - b.log.Warnf(log.Bolt4, b.logId, `invalid %q integer value: %d. Only strictly positive values are accepted"`, readTimeoutHintName, readTimeout) - return - } - b.log.Infof(log.Bolt4, b.logId, `received "connection.recv_timeout_seconds" hint value of %d second(s)`, readTimeout) - b.queue.in.connReadTimeout = time.Duration(readTimeout) * time.Second -} - -func (b *bolt4) extractSummary(success *success, stream *stream) *db.Summary { - summary := success.summary() - summary.Agent = b.serverVersion - summary.Major = 4 - summary.Minor = b.minor - summary.ServerName = b.serverName - summary.TFirst = stream.tfirst - summary.StreamSummary = stream.ToSummary() - return summary -} - -func isFatalError(err *db.Neo4jError) bool { - // Treat expired auth as fatal so that pool is cleaned up of old connections - return err != nil && err.Code == "Status.Security.AuthorizationExpired" -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt5.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt5.go deleted file mode 100644 index c89daac..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt5.go +++ /dev/null @@ -1,1240 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "errors" - "fmt" - "io" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - iauth "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const ( - bolt5Ready = iota // Ready for use - bolt5Streaming // Receiving result from auto commit query - bolt5Tx // Transaction pending - bolt5StreamingTx // Receiving result from a query within a transaction - bolt5Failed // Recoverable error, needs reset - bolt5Dead // Non recoverable protocol or connection error - bolt5Unauthorized // Initial state, not sent hello message with authentication -) - -// Default fetch size -const bolt5FetchSize = 1000 - -const ( - telemetryEnabledHintName = "telemetry.enabled" - ssrEnabledHintName = "ssr.enabled" -) - -type internalTx5 struct { - mode idb.AccessMode - bookmarks []string - timeout time.Duration - txMeta map[string]any - databaseName string - impersonatedUser string - notificationConfig idb.NotificationConfig -} - -func (i *internalTx5) toMeta(logger log.Logger, logId string, version db.ProtocolVersion) map[string]any { - if i == nil { - return nil - } - meta := map[string]any{} - if i.mode == idb.ReadMode { - meta["mode"] = "r" - } - if len(i.bookmarks) > 0 { - meta["bookmarks"] = i.bookmarks - } - ms := i.timeout.Milliseconds() - if i.timeout.Nanoseconds()%int64(time.Millisecond) > 0 { - ms++ - logger.Infof(log.Bolt5, logId, "The transaction timeout was rounded up to the next millisecond due to a fractional millisecond value in the config.") - } - if ms > 0 { - meta["tx_timeout"] = ms - } - if len(i.txMeta) > 0 { - meta["tx_metadata"] = i.txMeta - } - if i.databaseName != idb.DefaultDatabase { - meta["db"] = i.databaseName - } - if i.impersonatedUser != "" { - meta["imp_user"] = i.impersonatedUser - } - i.notificationConfig.ToMeta(meta, version) - return meta -} - -type bolt5 struct { - state int - txId idb.TxHandle - streams openstreams - conn io.ReadWriteCloser - serverName string - queue messageQueue - connId string - logId string - serverVersion string - bookmark string // Last bookmark - birthDate time.Time - log log.Logger - databaseName string - err error // Last fatal error - minor int - lastQid int64 // Last seen qid - idleDate time.Time - auth map[string]any - authManager auth.TokenManager - resetAuth bool - errorListener ConnectionErrorListener - telemetryEnabled bool - ssrEnabled bool - pinHomeDatabaseCallback func(context.Context, string) -} - -func NewBolt5( - serverName string, - conn io.ReadWriteCloser, - errorListener ConnectionErrorListener, - logger log.Logger, - boltLog log.BoltLogger, -) *bolt5 { - now := itime.Now() - b := &bolt5{ - state: bolt5Unauthorized, - conn: conn, - serverName: serverName, - birthDate: now, - idleDate: now, - log: logger, - streams: openstreams{}, - lastQid: -1, - errorListener: errorListener, - } - b.queue = newMessageQueue( - conn, - &incoming{ - buf: make([]byte, 4096), - hyd: hydrator{ - boltLogger: boltLog, - boltMajor: 5, - useUtc: true, - }, - connReadTimeout: -1, - }, - &outgoing{ - chunker: newChunker(), - packer: packstream.Packer{}, - onPackErr: func(err error) { b.setError(err, true) }, - onIoErr: b.onIoError, - boltLogger: boltLog, - useUtc: true, - }, - b.onNextMessage, - b.onIoError, - ) - return b -} - -func (b *bolt5) checkStreams() { - if b.streams.num <= 0 { - // Perform state transition from streaming, if in that state otherwise keep the current - // state as we are in some kind of bad shape - switch b.state { - case bolt5StreamingTx: - b.state = bolt5Tx - case bolt5Streaming: - b.state = bolt5Ready - } - } -} - -func (b *bolt5) ServerName() string { - return b.serverName -} - -func (b *bolt5) ConnId() string { - return b.connId -} - -func (b *bolt5) ServerVersion() string { - return b.serverVersion -} - -// Sets b.err and b.state to bolt5Failed or bolt5Dead when fatal is true. -func (b *bolt5) setError(err error, fatal bool) { - // Has no effect, can reduce nested ifs - if err == nil { - return - } - - wasDead := b.state == bolt5Dead - // No previous error - if b.err == nil { - b.err = err - b.state = bolt5Failed - } - - // Increase severity even if it was a previous error - if fatal { - if ctxErr := handleTerminatedContextError(err, b.conn); ctxErr != nil { - b.err = ctxErr - } - b.state = bolt5Dead - } - - // Forward error to current stream if there is one - if b.streams.curr != nil { - b.streams.detach(nil, err) - b.checkStreams() - } - - // Do not log big cypher statements as errors - neo4jErr, casted := err.(*db.Neo4jError) - if casted && neo4jErr.Classification() == "ClientError" { - b.log.Debugf(log.Bolt5, b.logId, "%s", err) - } else if wasDead { - b.log.Debugf(log.Bolt5, b.logId, "Already broken connection: %s", err) - } else { - b.log.Error(log.Bolt5, b.logId, err) - } -} - -func (b *bolt5) Connect( - ctx context.Context, - minor int, - auth *idb.ReAuthToken, - userAgent string, - routingContext map[string]string, - notificationConfig idb.NotificationConfig, -) error { - if err := b.assertState(bolt5Unauthorized); err != nil { - return err - } - - b.minor = minor - - if err := checkReAuth(auth, b); err != nil { - return err - } - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - b.auth = token.Tokens - b.authManager = auth.Manager - - hello := map[string]any{ - "user_agent": userAgent, - } - if routingContext != nil { - hello["routing"] = routingContext - } - // On bolt >= 5.3 add bolt agent information to hello - if b.minor >= 3 { - info := boltagent.New() - hello["bolt_agent"] = map[string]string{ - "product": info.Product(), - "platform": info.Platform(), - "language": info.Language(), - } - } - if b.minor == 0 { - // Merge authentication keys into hello, avoid overwriting existing keys - for k, v := range token.Tokens { - _, exists := hello[k] - if !exists { - hello[k] = v - } - } - } - - if err := checkNotificationFiltering(notificationConfig, b); err != nil { - return err - } - notificationConfig.ToMeta(hello, b.Version()) - b.queue.appendHello(hello, b.helloResponseHandler()) - if b.minor > 0 { - b.queue.appendLogon(token.Tokens, b.logonResponseHandler()) - } - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { // onNextMessageErr kicked in - return b.err - } - - b.state = bolt5Ready - b.streams.reset() - b.log.Infof(log.Bolt5, b.logId, "Connected") - return nil -} - -func (b *bolt5) TxBegin( - ctx context.Context, - txConfig idb.TxConfig, - syncMessages bool, -) (idb.TxHandle, error) { - // Ok, to begin transaction while streaming auto-commit, just empty the stream and continue. - if b.state == bolt5Streaming { - if b.bufferStream(ctx); b.err != nil { - return 0, b.err - } - } - // Makes all outstanding streams invalid - b.streams.reset() - - if err := b.assertState(bolt5Ready); err != nil { - return 0, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return 0, err - } - - tx := internalTx5{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - databaseName: b.databaseName, - impersonatedUser: txConfig.ImpersonatedUser, - notificationConfig: txConfig.NotificationConfig, - } - - b.queue.appendBegin(tx.toMeta(b.log, b.logId, b.Version()), b.beginResponseHandler(ctx)) - if syncMessages { - if b.queue.send(ctx); b.err != nil { - return 0, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return 0, err - } - } - - if b.err != nil { // onNextMessageErr kicked in - return 0, b.err - } - - b.state = bolt5Tx - b.txId = idb.TxHandle(time.Now().Unix()) - return b.txId, nil -} - -// Should NOT set b.err or change b.state as this is used to guard against -// misuse from clients that stick to their connections when they shouldn't. -func (b *bolt5) assertTxHandle(h1, h2 idb.TxHandle) error { - if h1 != h2 { - err := errors.New(errorutil.InvalidTransactionError) - b.log.Error(log.Bolt5, b.logId, err) - return err - } - return nil -} - -// Should NOT set b.err or b.state since the connection is still valid -func (b *bolt5) assertState(allowed ...int) error { - // Forward prior error instead, this former error is probably the - // root cause of any state error. Like a call to Run with malformed - // cypher causes an error and another call to Commit would cause the - // state to be wrong. Do not log this. - if b.err != nil { - return b.err - } - for _, a := range allowed { - if b.state == a { - return nil - } - } - err := fmt.Errorf("invalid state %d, expected: %+v", b.state, allowed) - b.log.Error(log.Bolt5, b.logId, err) - return err -} - -func (b *bolt5) TxCommit(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Consume pending stream if any to turn state from streamingtx to tx - // Access to the streams outside tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.discardAllStreams(ctx); b.err != nil { - return b.err - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt5Tx); err != nil { - return err - } - - b.queue.appendCommit(b.commitResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - - // Transition into ready state - b.state = bolt5Ready - return nil -} - -func (b *bolt5) TxRollback(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Can not send rollback while still streaming, consume to turn state into tx - // Access to the streams outside tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.discardAllStreams(ctx); b.err != nil { - return b.err - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt5Tx); err != nil { - return err - } - - b.queue.appendRollback(b.rollbackResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - - b.state = bolt5Ready - return nil -} - -// Discards all records in current stream if in streaming state and there is a current stream. -func (b *bolt5) discardStream(ctx context.Context) { - if b.state != bolt5Streaming && b.state != bolt5StreamingTx { - return - } - - stream := b.streams.curr - if stream == nil { - return - } - - stream.discarding = true // pull response handler will discard any accumulated record for this stream - discarded := false - for { - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch && discarded { - b.streams.remove(stream) - b.checkStreams() - return - } - discarded = true - stream.fetchSize = -1 // request infinite batch to consume the rest - if b.state == bolt5StreamingTx && stream.qid != b.lastQid { - b.queue.appendDiscardNQid(stream.fetchSize, stream.qid, b.discardResponseHandler(stream)) - } else { - b.queue.appendDiscardN(stream.fetchSize, b.discardResponseHandler(stream)) - } - if b.queue.send(ctx); b.err != nil { - return - } - } -} - -func (b *bolt5) discardAllStreams(ctx context.Context) { - if b.state != bolt5Streaming && b.state != bolt5StreamingTx { - return - } - - // Discard current - b.discardStream(ctx) - b.streams.reset() - b.checkStreams() -} - -// bufferStream pulls all the records of the current stream if there is a current stream. -func (b *bolt5) bufferStream(ctx context.Context) { - stream := b.streams.curr - if stream == nil { - return - } - - for { - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch { - stream.fetchSize = -1 - b.appendPullN(stream) - if b.queue.send(ctx); b.err != nil { - return - } - } - } -} - -// pauseStream pulls all the records of the current stream ongoing batch of records and unsets the stream as current -func (b *bolt5) pauseStream(ctx context.Context) { - stream := b.streams.curr - if stream == nil { - return - } - - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch { - b.streams.pause() - } -} - -// resumeStream marks the current stream as current and requests PULL -func (b *bolt5) resumeStream(ctx context.Context, s *stream) { - b.streams.resume(s) - b.appendPullN(s) - b.queue.send(ctx) -} - -func (b *bolt5) run(ctx context.Context, cypher string, params map[string]any, rawFetchSize int, tx *internalTx5) (*stream, error) { - // If already streaming, consume the whole thing first - if b.state == bolt5Streaming { - if b.bufferStream(ctx); b.err != nil { - return nil, b.err - } - } else if b.state == bolt5StreamingTx { - if b.pauseStream(ctx); b.err != nil { - return nil, b.err - } - } - - if err := b.assertState(bolt5Tx, bolt5Ready, bolt5StreamingTx); err != nil { - return nil, err - } - - fetchSize := b.normalizeFetchSize(rawFetchSize) - stream := &stream{fetchSize: fetchSize} - b.Version() - b.queue.appendRun(cypher, params, tx.toMeta(b.log, b.logId, b.Version()), b.runResponseHandler(ctx, stream)) - b.queue.appendPullN(fetchSize, b.pullResponseHandler(stream)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - // only read response for RUN - for !stream.attached { - if err := b.queue.receive(ctx); err != nil { - // rely on RESET to deal with unhandled PULL response - return nil, err - } - if b.err != nil { - return nil, b.err - } - } - - if b.state == bolt5Ready { - b.state = bolt5Streaming - } else if b.state == bolt5Tx { - b.state = bolt5StreamingTx - } - return stream, nil -} - -func (b *bolt5) normalizeFetchSize(fetchSize int) int { - if fetchSize < 0 { - return -1 - } - if fetchSize == 0 { - return bolt5FetchSize - } - return fetchSize -} - -func (b *bolt5) Run( - ctx context.Context, - cmd idb.Command, - txConfig idb.TxConfig, -) (idb.StreamHandle, error) { - if err := b.assertState(bolt5Streaming, bolt5Ready); err != nil { - return nil, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return nil, err - } - - tx := internalTx5{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - databaseName: b.databaseName, - impersonatedUser: txConfig.ImpersonatedUser, - notificationConfig: txConfig.NotificationConfig, - } - stream, err := b.run(ctx, cmd.Cypher, cmd.Params, cmd.FetchSize, &tx) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt5) RunTx(ctx context.Context, txh idb.TxHandle, cmd idb.Command) (idb.StreamHandle, error) { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return nil, err - } - - stream, err := b.run(ctx, cmd.Cypher, cmd.Params, cmd.FetchSize, nil) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt5) Keys(streamHandle idb.StreamHandle) ([]string, error) { - // Don't care about if the stream is the current or even if it belongs to this connection. - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, err - } - return stream.keys, nil -} - -// Next reads one record from the stream. -func (b *bolt5) Next(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Record, *db.Summary, error) { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, nil, err - } - - for { - buf, rec, sum, err := stream.bufferedNext() - if buf { - return rec, sum, err - } - if stream.endOfBatch { - b.appendPullN(stream) - if b.queue.send(ctx); b.err != nil { - return nil, nil, b.err - } - stream.endOfBatch = false - } - if b.queue.isEmpty() { - return nil, nil, errors.New("there should be more results to pull") - } - err = b.queue.receive(ctx) - if err != nil { - return nil, nil, err - } - if b.err != nil { - return nil, nil, b.err - } - } -} - -func (b *bolt5) Consume(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Summary, error) { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, err - } - - // If the stream already is complete we don't care about whom it belongs to - if stream.sum != nil || stream.err != nil { - return stream.sum, stream.err - } - - // Make sure the stream is safe (tied to this bolt instance and scope) - if err = b.streams.isSafe(stream); err != nil { - return nil, err - } - - // We should be streaming otherwise it is an internal error, shouldn't be - // a safe stream while not streaming. - if err = b.assertState(bolt5Streaming, bolt5StreamingTx); err != nil { - return nil, err - } - - // If the stream isn't current, we need to pause the current one. - if stream != b.streams.curr { - b.pauseStream(ctx) - if b.err != nil { - return nil, b.err - } - b.resumeStream(ctx, stream) - } - - // If the stream is current, discard everything up to next batch and discard the - // stream on the server. - b.discardStream(ctx) - return stream.sum, stream.err -} - -func (b *bolt5) Buffer(ctx context.Context, - streamHandle idb.StreamHandle) error { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return err - } - - // If the stream already is complete we don't care about whom it belongs to - if stream.sum != nil || stream.err != nil { - return stream.Err() - } - - // Make sure the stream is safe - // Do NOT set b.err for this error - if err = b.streams.isSafe(stream); err != nil { - return err - } - - // We should be streaming otherwise it is an internal error, shouldn't be - // a safe stream while not streaming. - if err = b.assertState(bolt5Streaming, bolt5StreamingTx); err != nil { - return err - } - - // If the stream isn't current, we need to pause the current one. - if stream != b.streams.curr { - b.pauseStream(ctx) - if b.err != nil { - return b.err - } - b.resumeStream(ctx, stream) - } - - b.bufferStream(ctx) - return stream.Err() -} - -func (b *bolt5) Bookmark() string { - return b.bookmark -} - -func (b *bolt5) IsAlive() bool { - return b.state != bolt5Dead -} - -func (b *bolt5) HasFailed() bool { - return b.state == bolt5Failed -} - -func (b *bolt5) Birthdate() time.Time { - return b.birthDate -} - -func (b *bolt5) IdleDate() time.Time { - return b.idleDate -} - -func (b *bolt5) Reset(ctx context.Context) { - defer func() { - b.log.Debugf(log.Bolt5, b.logId, "Resetting connection internal state") - b.txId = 0 - b.bookmark = "" - b.databaseName = idb.DefaultDatabase - b.err = nil - b.lastQid = -1 - b.streams.reset() - }() - - if b.state == bolt5Ready { - // No need for reset - return - } - - b.ForceReset(ctx) -} - -func (b *bolt5) ForceReset(ctx context.Context) { - if b.state == bolt5Dead { - return - } - - // Reset any pending error, should be matching bolt5_failed, so - // it should be recoverable. - b.err = nil - - if err := b.queue.receiveAll(ctx); b.err != nil || err != nil { - return - } - b.queue.appendReset(b.resetResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return - } - if err := b.queue.receive(ctx); b.err != nil || err != nil { - return - } -} - -func (b *bolt5) GetRoutingTable(ctx context.Context, - routingContext map[string]string, bookmarks []string, database, impersonatedUser string) (*idb.RoutingTable, error) { - if err := b.assertState(bolt5Ready); err != nil { - return nil, err - } - - b.log.Infof(log.Bolt5, b.logId, "Retrieving routing table") - extras := map[string]any{} - if database != idb.DefaultDatabase { - extras["db"] = database - } - if impersonatedUser != "" { - extras["imp_user"] = impersonatedUser - } - - var routingTable *idb.RoutingTable - b.queue.appendRoute(routingContext, bookmarks, extras, b.routeResponseHandler(&routingTable)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return nil, err - } - if b.err != nil { - return nil, b.err - } - return routingTable, nil -} - -func (b *bolt5) SetBoltLogger(boltLogger log.BoltLogger) { - b.queue.setBoltLogger(boltLogger) -} - -func (b *bolt5) SetPinHomeDatabaseCallback(callback func(context.Context, string)) { - b.pinHomeDatabaseCallback = callback -} - -func (b *bolt5) IsSsrEnabled() bool { - return b.ssrEnabled -} - -func (b *bolt5) ReAuth(ctx context.Context, auth *idb.ReAuthToken) error { - if b.minor == 0 { - return b.fallbackReAuth(ctx, auth) - } - return b.reAuth(ctx, auth) -} - -func (b *bolt5) fallbackReAuth(ctx context.Context, auth *idb.ReAuthToken) error { - if err := checkReAuth(auth, b); err != nil { - return err - } - if b.resetAuth { - b.log.Infof(log.Bolt5, b.logId, "Closing connection because auth token expired (informed by other connection)") - b.Close(ctx) - return nil - } - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - if !reflect.DeepEqual(b.auth, token.Tokens) { - b.log.Infof(log.Bolt5, b.logId, "Closing connection because auth token expired (informed by auth manager)") - b.Close(ctx) - } - return nil -} - -func (b *bolt5) reAuth(ctx context.Context, auth *idb.ReAuthToken) error { - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - if b.resetAuth { - b.log.Infof( - log.Bolt5, b.logId, - "Re-authenticating connection because auth token expired (informed by other connection)") - b.queue.appendLogoff(b.logoffResponseHandler()) - b.queue.appendLogon(token.Tokens, b.logonResponseHandler()) - } else if !reflect.DeepEqual(b.auth, token.Tokens) { - b.log.Infof( - log.Bolt5, b.logId, - "Re-authenticating connection because auth token expired (informed by auth manager)") - b.queue.appendLogoff(b.logoffResponseHandler()) - b.queue.appendLogon(token.Tokens, b.logonResponseHandler()) - } else if auth.ForceReAuth { - b.log.Infof( - log.Bolt5, b.logId, - "Re-authenticating connection because auth token expired (forced by verifyAuthentication)") - b.queue.appendLogoff(b.logoffResponseHandler()) - b.queue.appendLogon(token.Tokens, b.logonResponseHandler()) - } else { - return nil - } - - if b.queue.send(ctx); b.err != nil { - return b.err - } - b.auth = token.Tokens - b.authManager = auth.Manager - if auth.ForceReAuth { - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - } - return nil -} - -// Close closes the underlying connection. -// Beware: could be called on another thread when driver is closed. -func (b *bolt5) Close(ctx context.Context) { - b.log.Infof(log.Bolt5, b.logId, "Close") - if b.state != bolt5Dead { - b.state = bolt5Dead - b.queue.appendGoodbye() - b.queue.send(ctx) - } - if err := b.conn.Close(); err != nil { - b.log.Warnf(log.Driver, b.serverName, "Could not close underlying socket: %v", err) - } -} - -func (b *bolt5) SelectDatabase(database string) { - b.databaseName = database -} - -func (b *bolt5) Database() string { - return b.databaseName -} - -func (b *bolt5) Version() db.ProtocolVersion { - return db.ProtocolVersion{ - Major: 5, - Minor: b.minor, - } -} - -func (b *bolt5) ResetAuth() { - b.resetAuth = true -} - -func (b *bolt5) GetCurrentAuth() (auth.TokenManager, iauth.Token) { - token := iauth.Token{Tokens: b.auth} - return b.authManager, token -} - -func (b *bolt5) Telemetry(api telemetry.API, onSuccess func()) { - if b.telemetryEnabled && b.Version().Minor >= 4 { - b.queue.appendTelemetry(api.AsInt(), b.telemetryResponseHandler(func(*success) { - if onSuccess != nil { - onSuccess() - } - })) - } -} - -func (b *bolt5) appendPullN(stream *stream) { - if b.state == bolt5Streaming { - b.queue.appendPullN(stream.fetchSize, b.pullResponseHandler(stream)) - } else if b.state == bolt5StreamingTx { - if stream.qid == b.lastQid { - b.queue.appendPullN(stream.fetchSize, b.pullResponseHandler(stream)) - } else { - b.queue.appendPullNQid(stream.fetchSize, stream.qid, b.pullResponseHandler(stream)) - } - } -} - -func (b *bolt5) helloResponseHandler() responseHandler { - return b.expectedSuccessHandler(b.onHelloSuccess) -} - -func (b *bolt5) logoffResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt5) logonResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt5) routeResponseHandler(table **idb.RoutingTable) responseHandler { - return b.expectedSuccessHandler(func(routeSuccess *success) { - *table = routeSuccess.routingTable - }) -} - -func (b *bolt5) beginResponseHandler(ctx context.Context) responseHandler { - return b.expectedSuccessHandler(func(beginSuccess *success) { - if b.pinHomeDatabaseCallback != nil && beginSuccess.db != "" { - b.pinHomeDatabaseCallback(ctx, beginSuccess.db) - } - }) -} - -func (b *bolt5) runResponseHandler(ctx context.Context, stream *stream) responseHandler { - return b.expectedSuccessHandler(func(runSuccess *success) { - if b.pinHomeDatabaseCallback != nil && runSuccess.db != "" { - b.pinHomeDatabaseCallback(ctx, runSuccess.db) - } - stream.attached = true - stream.keys = runSuccess.fields - stream.qid = runSuccess.qid - stream.tfirst = runSuccess.tfirst - if runSuccess.qid > -1 { - b.lastQid = runSuccess.qid - } - b.streams.attach(stream) - }) -} - -func (b *bolt5) commitResponseHandler() responseHandler { - return b.expectedSuccessHandler(b.onCommitSuccess) -} - -func (b *bolt5) rollbackResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt5) discardResponseHandler(stream *stream) responseHandler { - return responseHandler{ - onIgnored: func(*ignored) { - stream.err = fmt.Errorf("stream interrupted while discarding results") - b.streams.remove(stream) - b.checkStreams() - }, - onSuccess: func(discardSuccess *success) { - if discardSuccess.hasMore { - stream.endOfBatch = true - return - } - summary := b.extractSummary(discardSuccess, stream) - if len(summary.Bookmark) > 0 { - b.bookmark = summary.Bookmark - } - stream.sum = summary - b.streams.remove(stream) - b.checkStreams() - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - stream.err = failure - b.onFailure(ctx, failure) // Will detach the stream - }, - } -} - -func (b *bolt5) pullResponseHandler(stream *stream) responseHandler { - return responseHandler{ - onRecord: func(record *db.Record) { - if record != nil { - stream.hadRecord = true - } - if stream.discarding { - stream.emptyRecords() - } else { - record.Keys = stream.keys - stream.push(record) - } - b.queue.pushFront(b.pullResponseHandler(stream)) - }, - onIgnored: func(*ignored) { - stream.err = fmt.Errorf("stream interrupted while pulling results") - b.streams.remove(stream) - b.checkStreams() - }, - onSuccess: func(pullSuccess *success) { - if stream.discarding { - stream.emptyRecords() - } - if pullSuccess.hasMore { - stream.endOfBatch = true - return - } - summary := b.extractSummary(pullSuccess, stream) - if len(summary.Bookmark) > 0 { - b.bookmark = summary.Bookmark - } - stream.sum = summary - b.streams.remove(stream) - b.checkStreams() - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - stream.err = failure - b.onFailure(ctx, failure) // Will detach the stream - }, - } -} - -func (b *bolt5) resetResponseHandler() responseHandler { - return responseHandler{ - onSuccess: func(resetSuccess *success) { - b.state = bolt5Ready - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - _ = b.errorListener.OnNeo4jError(ctx, b, failure) - b.state = bolt5Dead - }, - } -} - -func (b *bolt5) telemetryResponseHandler(onSuccess func(*success)) responseHandler { - return b.expectedSuccessHandler(onSuccess) -} - -func (b *bolt5) expectedSuccessHandler(onSuccess func(*success)) responseHandler { - return responseHandler{ - onSuccess: onSuccess, - onFailure: b.onFailure, - onIgnored: onIgnoredNoOp, - } -} - -func (b *bolt5) onHelloSuccess(helloSuccess *success) { - b.connId = helloSuccess.connectionId - b.serverVersion = helloSuccess.server - - connectionLogId := fmt.Sprintf("%s@%s", b.connId, b.serverName) - b.logId = connectionLogId - b.queue.setLogId(connectionLogId) - b.initializeReadTimeoutHint(helloSuccess.configurationHints) - b.initializeTelemetryEnabledHint(helloSuccess.configurationHints) - b.initializeSsrEnabledHint(helloSuccess.configurationHints) -} - -func (b *bolt5) onCommitSuccess(commitSuccess *success) { - if len(commitSuccess.bookmark) > 0 { - b.bookmark = commitSuccess.bookmark - } -} - -func (b *bolt5) onNextMessage() { - b.idleDate = itime.Now() -} - -func (b *bolt5) onFailure(ctx context.Context, failure *db.Neo4jError) { - var err error - err = failure - if callbackErr := b.errorListener.OnNeo4jError(ctx, b, failure); callbackErr != nil { - err = errorutil.CombineErrors(callbackErr, failure) - } - b.setError(err, isFatalError(failure)) -} - -func (b *bolt5) onIoError(ctx context.Context, err error) { - if b.state != bolt5Failed && b.state != bolt5Dead { - // Don't call callback when connections break after sending RESET. - // The server chooses to close the connection on some errors. - b.errorListener.OnIoError(ctx, b, err) - } - b.setError(err, true) -} - -func (b *bolt5) initializeReadTimeoutHint(hints map[string]any) { - readTimeoutHint, ok := hints[readTimeoutHintName] - if !ok { - return - } - readTimeout, ok := readTimeoutHint.(int64) - if !ok { - b.log.Infof(log.Bolt5, b.logId, `invalid %q value: %v, ignoring hint. Only strictly positive integer values are accepted`, readTimeoutHintName, readTimeoutHint) - return - } - if readTimeout <= 0 { - b.log.Infof(log.Bolt5, b.logId, `invalid %q integer value: %d. Only strictly positive values are accepted"`, readTimeoutHintName, readTimeout) - return - } - b.queue.in.connReadTimeout = time.Duration(readTimeout) * time.Second -} - -func (b *bolt5) initializeTelemetryEnabledHint(hints map[string]any) { - telemetryEnabledHint, ok := hints[telemetryEnabledHintName] - if !ok { - return - } - telemetryEnabled, ok := telemetryEnabledHint.(bool) - if !ok { - b.log.Infof(log.Bolt5, b.logId, `invalid %q value: %v, ignoring hint. Only boolean values are accepted`, telemetryEnabledHintName, telemetryEnabledHint) - return - } - b.telemetryEnabled = telemetryEnabled -} - -func (b *bolt5) initializeSsrEnabledHint(hints map[string]any) { - ssrEnabledHint, ok := hints[ssrEnabledHintName] - if !ok { - return - } - ssrEnabled, ok := ssrEnabledHint.(bool) - if !ok { - b.log.Infof(log.Bolt5, b.logId, `invalid %q value: %v, ignoring hint. Only boolean values are accepted`, ssrEnabledHintName, ssrEnabledHint) - return - } - b.ssrEnabled = ssrEnabled -} - -func (b *bolt5) extractSummary(success *success, stream *stream) *db.Summary { - summary := success.summary() - summary.Agent = b.serverVersion - summary.Major = 5 - summary.Minor = b.minor - summary.ServerName = b.serverName - summary.TFirst = stream.tfirst - summary.StreamSummary = stream.ToSummary() - return summary -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt_logging.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt_logging.go deleted file mode 100644 index 701dd22..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt_logging.go +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "encoding/json" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "strings" -) - -type loggableDictionary map[string]any - -func copyAndSanitizeDictionary[T any | string](in map[string]T) map[string]T { - out := make(map[string]T, len(in)) - for k, v := range in { - if k == "credentials" { - var redacted any = "" - out[k] = redacted.(T) - } else { - out[k] = v - } - } - return out -} - -func (d loggableDictionary) String() string { - return serializeTrace(copyAndSanitizeDictionary(d)) -} - -type loggableStringDictionary map[string]string - -func (sd loggableStringDictionary) String() string { - return serializeTrace(copyAndSanitizeDictionary(sd)) -} - -type loggableList []any - -func (l loggableList) String() string { - return serializeTrace(l) -} - -type loggableStringList []string - -func (s loggableStringList) String() string { - return serializeTrace(s) -} - -type loggableSuccess success -type loggedSuccess struct { - Server string `json:"server,omitempty"` - ConnectionId string `json:"connection_id,omitempty"` - Fields []string `json:"fields,omitempty"` - TFirst int64 `json:"t_first,omitempty"` - Bookmark string `json:"bookmark,omitempty"` - TLast int64 `json:"t_last,omitempty"` - HasMore bool `json:"has_more,omitempty"` - Db string `json:"db,omitempty"` - Qid int64 `json:"qid,omitempty"` - ConfigHints loggableDictionary `json:"hints,omitempty"` - RoutingTable *loggedRoutingTable `json:"routing_table,omitempty"` -} - -func (s loggableSuccess) String() string { - success := loggedSuccess{ - Server: s.server, - ConnectionId: s.connectionId, - Fields: s.fields, - Bookmark: s.bookmark, - HasMore: s.hasMore, - Db: s.db, - ConfigHints: s.configurationHints, - } - if s.tfirst > -1 { - success.TFirst = s.tfirst - } - if s.tlast > -1 { - success.TFirst = s.tlast - } - if s.qid > -1 { - success.Qid = s.qid - } - routingTable := s.routingTable - if routingTable != nil { - success.RoutingTable = &loggedRoutingTable{ - TimeToLive: routingTable.TimeToLive, - DatabaseName: routingTable.DatabaseName, - Routers: routingTable.Routers, - Readers: routingTable.Readers, - Writers: routingTable.Writers, - } - } - return serializeTrace(success) -} - -type loggedRoutingTable struct { - TimeToLive int `json:"ttl,omitempty"` - DatabaseName string `json:"db,omitempty"` - Routers []string `json:"routers,omitempty"` - Readers []string `json:"readers,omitempty"` - Writers []string `json:"writers,omitempty"` -} - -type loggableFailure db.Neo4jError - -func (f loggableFailure) String() string { - return serializeTrace(map[string]any{ - "code": f.Code, - "message": f.Msg, - }) -} - -func serializeTrace(v any) string { - builder := strings.Builder{} - encoder := json.NewEncoder(&builder) - encoder.SetEscapeHTML(false) - _ = encoder.Encode(v) - return strings.TrimSpace(builder.String()) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/chunker.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/chunker.go deleted file mode 100644 index f961493..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/chunker.go +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "encoding/binary" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - rio "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - "io" -) - -type chunker struct { - buf []byte - sizes []int - offset int -} - -func newChunker() chunker { - return chunker{ - buf: make([]byte, 0, 1024), - sizes: make([]int, 0, 3), - offset: 0, - } -} - -func (c *chunker) beginMessage() { - // Space for length of next message - c.buf = append(c.buf, 0, 0) - c.offset += 2 -} - -func (c *chunker) endMessage() { - // Calculate size and stash it - size := len(c.buf) - c.offset - c.offset += size - c.sizes = append(c.sizes, size) - - // Add zero chunk to mark end of message - c.buf = append(c.buf, 0, 0) - c.offset += 2 -} - -func (c *chunker) send(ctx context.Context, wr io.Writer) error { - // Try to make as few writes as possible to reduce network overhead - // Whenever we encounter a message that is bigger than max chunk size we need - // to write and make a new chunk - start := 0 - end := 0 - - writer := rio.NewRacingWriter(wr) - - for _, size := range c.sizes { - if size <= 0xffff { - binary.BigEndian.PutUint16(c.buf[end:], uint16(size)) - // Size + message + end of message marker - end += 2 + size + 2 - } else { - // Could be a message that ranges over multiple chunks - for size > 0xffff { - c.buf[end] = 0xff - c.buf[end+1] = 0xff - // Size + message - end += 2 + 0xffff - - _, err := writer.Write(ctx, c.buf[start:end]) - if err != nil { - return processWriteError(err, ctx) - } - // Reuse part of buffer that has already been written to specify size - // of the chunk - end -= 2 - start = end - size -= 0xffff - } - binary.BigEndian.PutUint16(c.buf[end:], uint16(size)) - // Size + message + end of message marker - end += 2 + size + 2 - } - } - - if end > start { - _, err := writer.Write(ctx, c.buf[start:end]) - if err != nil { - return processWriteError(err, ctx) - } - } - - // Prepare for reuse - c.offset = 0 - c.buf = c.buf[:0] - c.sizes = c.sizes[:0] - - return nil -} - -func processWriteError(err error, ctx context.Context) error { - if errorutil.IsTimeoutError(err) { - return &errorutil.ConnectionWriteTimeout{ - UserContext: ctx, - Err: err, - } - } - if err == context.Canceled { - return &errorutil.ConnectionWriteCanceled{ - Err: err, - } - } - return err -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connect.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connect.go deleted file mode 100644 index 0089bb6..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connect.go +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt contains implementations of the database functionality. -package bolt - -import ( - "context" - "encoding/binary" - "fmt" - "io" - "net" - "strings" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type protocolVersion struct { - major byte - minor byte - back byte // Number of minor versions back -} - -func (p *protocolVersion) formatProtocol() string { - return fmt.Sprintf("%#04X%02X%02X", p.back, p.minor, p.major) -} - -// versions lists the supported protocol versions in priority order. -// The first proposal is a marker indicating that the client wishes to use the -// new manifest-style negotiation. -var versions = [4]protocolVersion{ - {major: 0xFF, minor: 0x01, back: 0x00}, // Bolt manifest marker - {major: 5, minor: 8, back: 8}, - {major: 4, minor: 4, back: 2}, - {major: 3, minor: 0, back: 0}, -} - -// Connect initiates the negotiation of the Bolt protocol version. -// Returns the instance of bolt protocol implementing the low-level Connection interface. -func Connect(ctx context.Context, - serverName string, - conn net.Conn, - auth *db.ReAuthToken, - userAgent string, - routingContext map[string]string, - errorListener ConnectionErrorListener, - logger log.Logger, - boltLogger log.BoltLogger, - notificationConfig db.NotificationConfig, - readBufferSize int, -) (db.Connection, error) { - // Perform Bolt handshake to negotiate version - // Send handshake to server - handshake := []byte{ - 0x60, 0x60, 0xb0, 0x17, // Magic: GoGoBolt - 0x00, versions[0].back, versions[0].minor, versions[0].major, - 0x00, versions[1].back, versions[1].minor, versions[1].major, - 0x00, versions[2].back, versions[2].minor, versions[2].major, - 0x00, versions[3].back, versions[3].minor, versions[3].major, - } - if boltLogger != nil { - boltLogger.LogClientMessage("", " %#010X", handshake[0:4]) - boltLogger.LogClientMessage("", " %#010X %#010X %#010X %#010X", handshake[4:8], handshake[8:12], handshake[12:16], handshake[16:20]) - } - // Write handshake proposals to server - _, err := racing.NewRacingWriter(conn).Write(ctx, handshake) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return nil, err - } - - // Receive accepted server version - buf := make([]byte, 4) - _, err = racing.NewRacingReader(conn).ReadFull(ctx, buf) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return nil, err - } - - major := buf[3] - minor := buf[2] - - if major == 80 && minor == 84 { - return nil, &errorutil.UsageError{Message: "server responded HTTP. Make sure you are not trying to connect to the http endpoint " + - "(HTTP defaults to port 7474 whereas BOLT defaults to port 7687)"} - } - - // Log legacy handshake response. - if !(major == 0xFF && minor == 0x01) && boltLogger != nil { - boltLogger.LogServerMessage("", " %#010X", buf) - } - - bufferedConn := bufferedConnection(conn, readBufferSize) - - // If the server selected manifest negotiation, perform the extended handshake. - if major == 0xFF && minor == 0x01 { - major, minor, err = performManifestNegotiation(ctx, bufferedConn, serverName, errorListener, boltLogger, buf) - if err != nil { - return nil, err - } - } - - var boltConn db.Connection - switch major { - case 3: - boltConn = NewBolt3(serverName, bufferedConn, errorListener, logger, boltLogger) - case 4: - boltConn = NewBolt4(serverName, bufferedConn, errorListener, logger, boltLogger) - case 5: - boltConn = NewBolt5(serverName, bufferedConn, errorListener, logger, boltLogger) - case 0: - return nil, fmt.Errorf("server did not accept any of the requested Bolt versions (%#v)", versions) - default: - return nil, &errorutil.UsageError{Message: fmt.Sprintf("server responded with unsupported version %d.%d", major, minor)} - } - if err = boltConn.Connect(ctx, int(minor), auth, userAgent, routingContext, notificationConfig); err != nil { - boltConn.Close(ctx) - return nil, err - } - return boltConn, nil -} - -// performManifestNegotiation handles the manifest-style handshake. -// Returns the negotiated protocol's major and minor version. -func performManifestNegotiation( - ctx context.Context, - conn io.ReadWriteCloser, - serverName string, - errorListener ConnectionErrorListener, - boltLogger log.BoltLogger, - response []byte, -) (byte, byte, error) { - reader := racing.NewRacingReader(conn) - - // Read the protocol offerings. - supported, err := readProtocolOfferings(ctx, reader, serverName, errorListener) - if err != nil { - return 0, 0, err - } - - // Read the capability mask. - _, capBytes, err := readCapabilityMask(ctx, reader, serverName, errorListener) - if err != nil { - return 0, 0, err - } - - // Log the complete server handshake message. - logManifestHandshake(boltLogger, response, supported, capBytes) - - // Select an acceptable protocol version. - chosen, err := selectProtocol(supported) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - // Best-effort attempt to send an invalid handshake (ignore any error). - invalidHandshake := []byte{0x00, 0x00, 0x00, 0x00, 0x00} // 4 bytes for version + 1 byte for capabilities. - _, _ = racing.NewRacingWriter(conn).Write(ctx, invalidHandshake) - return 0, 0, err - } - - // Send the handshake confirmation. - if err = sendHandshakeConfirmation(ctx, conn, boltLogger, errorListener, serverName, chosen, []byte{0x00}); err != nil { - return 0, 0, err - } - - return chosen.major, chosen.minor, nil -} - -// readProtocolOfferings reads the number of protocol offerings and returns the count and -// a slice of supported protocol versions. -func readProtocolOfferings(ctx context.Context, r racing.RacingReader, serverName string, errorListener ConnectionErrorListener) ([]protocolVersion, error) { - count, _, err := readVarInt(ctx, r) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return nil, fmt.Errorf("failed to read manifest protocol count: %w", err) - } - supported := make([]protocolVersion, 0, count) - for i := uint64(0); i < count; i++ { - var versionBytes [4]byte - _, err := r.ReadFull(ctx, versionBytes[:]) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return nil, fmt.Errorf("failed to read manifest protocol version: %w", err) - } - supported = append(supported, protocolVersion{ - back: versionBytes[1], - minor: versionBytes[2], - major: versionBytes[3], - }) - } - return supported, nil -} - -// readCapabilityMask reads the capability bit mask (a Base128 VarInt) and returns both the -// raw value and its encoded byte slice. -func readCapabilityMask(ctx context.Context, r racing.RacingReader, serverName string, errorListener ConnectionErrorListener) (uint64, []byte, error) { - capMask, capBytes, err := readVarInt(ctx, r) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return 0, capBytes, fmt.Errorf("failed to read capability mask: %w", err) - } - return capMask, capBytes, nil -} - -// logManifestHandshake logs the complete server handshake message for manifest negotiation. -// It prints the initial response, count of offerings, each supported protocol, and the capability mask. -func logManifestHandshake(boltLogger log.BoltLogger, response []byte, supported []protocolVersion, capBytes []byte) { - if boltLogger == nil { - return - } - supportedProtocols := make([]string, 0, len(supported)) - for _, p := range supported { - supportedProtocols = append(supportedProtocols, p.formatProtocol()) - } - boltLogger.LogServerMessage("", " %s [%d] %s %s", - fmt.Sprintf("%#X", response), - len(supported), - strings.Join(supportedProtocols, " "), - fmt.Sprintf("%#X", capBytes)) -} - -// selectProtocol iterates over our protocol proposals (skipping the manifest marker) -// and returns the first candidate whose major version matches and whose minor version -// falls within the range offered by the server. -func selectProtocol(offers []protocolVersion) (protocolVersion, error) { - for _, candidate := range versions[1:] { - for v := int(candidate.minor); v >= int(candidate.minor)-int(candidate.back); v-- { - for _, offer := range offers { - if offer.major != candidate.major { - continue - } - if byte(v) <= offer.minor && byte(v) >= offer.minor-offer.back { - return protocolVersion{major: candidate.major, minor: byte(v)}, nil - } - } - } - } - return protocolVersion{}, fmt.Errorf("none of the server offered Bolt versions are supported (offered: %#v)", offers) -} - -// sendHandshakeConfirmation sends the chosen protocol version and capability mask back to the server. -func sendHandshakeConfirmation(ctx context.Context, conn io.ReadWriteCloser, boltLogger log.BoltLogger, errorListener ConnectionErrorListener, serverName string, chosen protocolVersion, capBytes []byte) error { - chosenBytes := []byte{0x00, 0x00, chosen.minor, chosen.major} - if boltLogger != nil { - boltLogger.LogClientMessage("", " %#X %#X", chosenBytes, capBytes) - } - writer := racing.NewRacingWriter(conn) - if _, err := writer.Write(ctx, chosenBytes); err != nil { - errorListener.OnDialError(ctx, serverName, err) - return err - } - if _, err := writer.Write(ctx, capBytes); err != nil { - errorListener.OnDialError(ctx, serverName, err) - return err - } - return nil -} - -// readVarInt returns a Base128-encoded variable-length integer from the reader. -func readVarInt(ctx context.Context, r racing.RacingReader) (uint64, []byte, error) { - var buf [binary.MaxVarintLen64]byte - // Read one byte at a time until a byte with the MSB not set is encountered. - for i := 0; i < len(buf); i++ { - if _, err := r.Read(ctx, buf[i:i+1]); err != nil { - return 0, buf[:i], err - } - // If the continuation bit is not set, we've reached the end of the varint. - if buf[i]&0x80 == 0 { - value, n := binary.Uvarint(buf[:i+1]) - if n <= 0 { - return 0, buf[:i+1], fmt.Errorf("failed to decode varint") - } - return value, buf[:i+1], nil - } - } - return 0, buf[:], fmt.Errorf("varint too long") -} - -// encodeVarInt returns the encoded unsigned integer into a Base128 variable-length integer. -func encodeVarInt(value uint64) []byte { - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], value) - return buf[:n] -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connections.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connections.go deleted file mode 100644 index 5f1639b..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connections.go +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "bufio" - "context" - "io" - "net" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" -) - -// DefaultReadBufferSize specifies the default size (in bytes) of the buffer used for reading data from the network connection. -const DefaultReadBufferSize = 8192 - -func bufferedConnection(conn net.Conn, readBufferSize int) io.ReadWriteCloser { - var reader io.Reader - if readBufferSize > 0 { - reader = bufio.NewReaderSize(conn, readBufferSize) - } else { - reader = conn - } - - return struct { - io.Reader - io.Writer - io.Closer - }{ - Reader: reader, - Writer: conn, - Closer: conn, - } -} - -type ConnectionErrorListener interface { - OnNeo4jError(context.Context, idb.Connection, *db.Neo4jError) error - OnIoError(context.Context, idb.Connection, error) - OnDialError(context.Context, string, error) -} - -func handleTerminatedContextError(err error, connection io.Closer) error { - if !contextTerminatedErr(err) { - return nil - } - closeErr := connection.Close() - if closeErr == nil { - return nil - } - return errorutil.CombineErrors(err, closeErr) -} - -func contextTerminatedErr(err error) bool { - switch err.(type) { - case *errorutil.ConnectionWriteTimeout: - return true - case *errorutil.ConnectionReadTimeout: - return true - case *errorutil.ConnectionWriteCanceled: - return true - case *errorutil.ConnectionReadCanceled: - return true - } - return false -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/dechunker.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/dechunker.go deleted file mode 100644 index f3d7b06..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/dechunker.go +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "encoding/binary" - "io" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - rio "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" -) - -// dechunkMessage takes a buffer to be reused and returns the reusable buffer -// (might have been reallocated to handle growth), the message buffer and -// error. -// Reads will race against the provided context ctx -// If the server provides the connection read timeout hint readTimeout, a new context will be created from that timeout -// and the user-provided context ctx before every read -func dechunkMessage(ctx context.Context, conn io.Reader, msgBuf []byte, readTimeout time.Duration) ([]byte, []byte, error) { - - sizeBuf := []byte{0x00, 0x00} - off := 0 - - reader := rio.NewRacingReader(conn) - - for { - updatedCtx, cancelFunc := newContext(ctx, readTimeout) - _, err := reader.ReadFull(updatedCtx, sizeBuf) - if err != nil { - return msgBuf, nil, processReadError(err, ctx, readTimeout) - } - if cancelFunc != nil { // reading has been completed, time to release the context - cancelFunc() - } - chunkSize := int(binary.BigEndian.Uint16(sizeBuf)) - if chunkSize == 0 { - if off > 0 { - return msgBuf, msgBuf[:off], nil - } - // Got a nop chunk - continue - } - - // Need to expand buffer - if (off + chunkSize) > cap(msgBuf) { - newMsgBuf := make([]byte, (off+chunkSize)+4096) - copy(newMsgBuf, msgBuf) - msgBuf = newMsgBuf - } - // Read the chunk into buffer - updatedCtx, cancelFunc = newContext(ctx, readTimeout) - _, err = reader.ReadFull(updatedCtx, msgBuf[off:(off+chunkSize)]) - if err != nil { - return msgBuf, nil, processReadError(err, ctx, readTimeout) - } - if cancelFunc != nil { // reading has been completed, time to release the context - cancelFunc() - } - off += chunkSize - } -} - -// newContext computes a new context and cancel function if a readTimeout is set -func newContext(ctx context.Context, readTimeout time.Duration) (context.Context, context.CancelFunc) { - if readTimeout >= 0 { - return context.WithTimeout(ctx, readTimeout) - } - return ctx, nil -} - -func processReadError(err error, ctx context.Context, readTimeout time.Duration) error { - if errorutil.IsTimeoutError(err) { - return &errorutil.ConnectionReadTimeout{ - UserContext: ctx, - ReadTimeout: readTimeout, - Err: err, - } - } - if err == context.Canceled { - return &errorutil.ConnectionReadCanceled{ - Err: err, - } - } - return err -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/hydrator.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/hydrator.go deleted file mode 100644 index 45de57d..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/hydrator.go +++ /dev/null @@ -1,1080 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "errors" - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const containsSystemUpdatesKey = "contains-system-updates" -const containsUpdatesKey = "contains-updates" - -type ignored struct{} -type success struct { - fields []string - tfirst int64 - qid int64 - bookmark string - connectionId string - server string - db string - hasMore bool - tlast int64 - qtype db.StatementType - counters map[string]any - plan *db.Plan - profile *db.ProfiledPlan - notifications []db.Notification - statuses []db.GqlStatusObject - routingTable *idb.RoutingTable - num uint32 - configurationHints map[string]any - patches []string -} - -func (s *success) String() string { - str := fmt.Sprintf("%#v", s) - if s.plan != nil { - str += fmt.Sprintf(" \nplan: %#v", s.plan) - } - if s.profile != nil { - str += fmt.Sprintf(" \nprofile: %#v", s.profile) - } - if s.routingTable != nil { - str += fmt.Sprintf(" \nrouting table: %#v", s.routingTable) - } - return str -} - -func (s *success) summary() *db.Summary { - return &db.Summary{ - Bookmark: s.bookmark, - StmntType: s.qtype, - Counters: extractIntCounters(s.counters), - TLast: s.tlast, - Plan: s.plan, - ProfiledPlan: s.profile, - Notifications: s.notifications, - GqlStatusObjects: s.statuses, - Database: s.db, - ContainsSystemUpdates: extractBoolPointer(s.counters, containsSystemUpdatesKey), - ContainsUpdates: extractBoolPointer(s.counters, containsUpdatesKey), - } -} - -func extractIntCounters(counters map[string]any) map[string]int { - result := make(map[string]int, len(counters)) - for k, v := range counters { - if k != containsSystemUpdatesKey && k != containsUpdatesKey { - result[k] = v.(int) - } - } - return result -} - -func extractBoolPointer(counters map[string]any, key string) *bool { - result, ok := counters[key] - if !ok { - return nil - } - return result.(*bool) -} - -type hydrator struct { - unpacker packstream.Unpacker - unp *packstream.Unpacker - err error - cachedIgnored ignored - cachedSuccess success - boltLogger log.BoltLogger - logId string - boltMajor int - useUtc bool -} - -func (h *hydrator) setErr(err error) { - if h.err == nil { - h.err = err - } -} - -func (h *hydrator) getErr() error { - if h.unp.Err != nil { - return h.unp.Err - } - return h.err -} - -func (h *hydrator) assertLength(structType string, expected, actual uint32) { - if expected != actual { - h.setErr(&db.ProtocolError{ - MessageType: structType, - Err: fmt.Sprintf("Invalid length of struct, expected %d but was %d", - expected, actual), - }) - } -} - -// hydrate hydrates a top-level struct message -func (h *hydrator) hydrate(buf []byte) (x any, err error) { - h.unp = &h.unpacker - h.unp.Reset(buf) - h.unp.Next() - - if h.unp.Curr != packstream.PackedStruct { - return nil, errors.New("expected struct") - } - - n := h.unp.Len() - t := h.unp.StructTag() - switch t { - case msgSuccess: - x = h.success(n) - case msgIgnored: - x = h.ignored(n) - case msgFailure: - x = h.failure(n, false) - case msgRecord: - x = h.record(n) - default: - return nil, fmt.Errorf("unexpected tag at top level: %d", t) - } - err = h.getErr() - return -} - -func (h *hydrator) ignored(n uint32) *ignored { - h.assertLength("ignored", 0, n) - if h.getErr() != nil { - return nil - } - if h.boltLogger != nil { - h.boltLogger.LogServerMessage(h.logId, "IGNORED") - } - return &h.cachedIgnored -} - -func (h *hydrator) failure(n uint32, isNestedError bool) *db.Neo4jError { - h.assertLength("failure", 1, n) - if h.getErr() != nil { - return nil - } - dberr := db.Neo4jError{} - // Skip h.unp.Next() for nested errors to avoid reprocessing the unpacker, - // as it's already handled by the recursive call. - if !isNestedError { - h.unp.Next() // Detect map - } - for maplen := h.unp.Len(); maplen > 0; maplen-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - switch key { - case "gql_status": - dberr.GqlStatus = h.unp.String() - case "description": - dberr.GqlStatusDescription = h.unp.String() - case "neo4j_code": - fallthrough - case "code": - dberr.Code = h.unp.String() - case "message": - dberr.Msg = h.unp.String() - case "diagnostic_record": - dberr.GqlDiagnosticRecord = h.amap() - case "cause": - dberr.GqlCause = h.failure(1, true) - default: - // Do not fail on unknown value in map - h.trash() - } - } - errorutil.PolyfillGqlError(&dberr) - if h.boltLogger != nil { - h.boltLogger.LogServerMessage(h.logId, "FAILURE %s", loggableFailure(dberr)) - } - return &dberr -} - -func (h *hydrator) success(n uint32) *success { - h.assertLength("success", 1, n) - if h.getErr() != nil { - return nil - } - // Use cached success but clear it first - h.cachedSuccess = success{} - h.cachedSuccess.qid = -1 - h.cachedSuccess.tfirst = -1 - h.cachedSuccess.tlast = -1 - succ := &h.cachedSuccess - - h.unp.Next() // Detect map - n = h.unp.Len() - succ.num = n - for ; n > 0; n-- { - // Key - h.unp.Next() - key := h.unp.String() - // Value - h.unp.Next() - switch key { - case "fields": - succ.fields = h.strings() - case "t_first": - succ.tfirst = h.unp.Int() - case "qid": - succ.qid = h.unp.Int() - case "bookmark": - succ.bookmark = h.unp.String() - case "connection_id": - succ.connectionId = h.unp.String() - case "server": - succ.server = h.unp.String() - case "has_more": - succ.hasMore = h.unp.Bool() - case "t_last": - succ.tlast = h.unp.Int() - case "type": - statementType := h.unp.String() - switch statementType { - case "r": - succ.qtype = db.StatementTypeRead - case "w": - succ.qtype = db.StatementTypeWrite - case "rw": - succ.qtype = db.StatementTypeReadWrite - case "s": - succ.qtype = db.StatementTypeSchemaWrite - default: - h.setErr(&db.ProtocolError{ - MessageType: "success", - Field: "type", - Err: fmt.Sprintf("unrecognized success statement type %s", statementType), - }) - } - case "db": - succ.db = h.unp.String() - case "stats": - succ.counters = h.successStats() - case "plan": - m := h.amap() - succ.plan = parsePlan(m) - case "profile": - m := h.amap() - succ.profile = parseProfile(m) - case "notifications": - l := h.array() - succ.notifications = parseNotifications(l) - case "statuses": - l := h.array() - succ.statuses = parseGqlStatusObjects(l) - case "rt": - succ.routingTable = h.routingTable() - case "hints": - hints := h.amap() - succ.configurationHints = hints - case "patch_bolt": - patches := h.strings() - succ.patches = patches - default: - // Unknown key, waste it - h.trash() - } - } - if h.boltLogger != nil { - h.boltLogger.LogServerMessage(h.logId, "SUCCESS %s", loggableSuccess(*succ)) - } - return succ -} - -func (h *hydrator) successStats() map[string]any { - n := h.unp.Len() - if n == 0 { - return nil - } - counts := make(map[string]any, n) - for ; n > 0; n-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - val := h.parseStatValue(key) - counts[key] = val - } - return counts -} - -func (h *hydrator) parseStatValue(key string) any { - var val any - switch key { - case containsSystemUpdatesKey, containsUpdatesKey: - boolValue := h.unp.Bool() - val = &boolValue - default: - val = int(h.unp.Int()) - } - return val -} - -// routingTable parses a routing table sent from the server. This is done -// the 'hard' way to reduce number of allocations (would be easier to go via -// a map) since it is called in normal flow (not that frequent...). -func (h *hydrator) routingTable() *idb.RoutingTable { - rt := idb.RoutingTable{} - // Length of map - nkeys := h.unp.Len() - for ; nkeys > 0; nkeys-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - switch key { - case "ttl": - rt.TimeToLive = int(h.unp.Int()) - case "servers": - nservers := h.unp.Len() - for ; nservers > 0; nservers-- { - h.routingTableRole(&rt) - } - case "db": - rt.DatabaseName = h.unp.String() - default: - // Unknown key, waste the value - h.trash() - } - } - return &rt -} - -func (h *hydrator) routingTableRole(rt *idb.RoutingTable) { - h.unp.Next() - nkeys := h.unp.Len() - var role string - var addresses []string - for ; nkeys > 0; nkeys-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - switch key { - case "role": - role = h.unp.String() - case "addresses": - addresses = h.strings() - default: - // Unknown key, waste the value - h.trash() - } - } - switch role { - case "READ": - rt.Readers = addresses - case "WRITE": - rt.Writers = addresses - case "ROUTE": - rt.Routers = addresses - } -} - -func (h *hydrator) strings() []string { - n := h.unp.Len() - slice := make([]string, n) - for i := range slice { - h.unp.Next() - slice[i] = h.unp.String() - } - return slice -} - -func (h *hydrator) amap() map[string]any { - n := h.unp.Len() - m := make(map[string]any, n) - for ; n > 0; n-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - m[key] = h.value() - } - return m -} - -func (h *hydrator) array() []any { - n := h.unp.Len() - a := make([]any, n) - for i := range a { - h.unp.Next() - a[i] = h.value() - } - return a -} - -func (h *hydrator) record(n uint32) *db.Record { - h.assertLength("record", 1, n) - if h.getErr() != nil { - return nil - } - rec := db.Record{} - h.unp.Next() // Detect array - n = h.unp.Len() - rec.Values = make([]any, n) - for i := range rec.Values { - h.unp.Next() - rec.Values[i] = h.value() - } - if h.boltLogger != nil { - h.boltLogger.LogServerMessage(h.logId, "RECORD %s", loggableList(rec.Values)) - } - return &rec -} - -func (h *hydrator) value() any { - valueType := h.unp.Curr - switch valueType { - case packstream.PackedInt: - return h.unp.Int() - case packstream.PackedFloat: - return h.unp.Float() - case packstream.PackedStr: - return h.unp.String() - case packstream.PackedStruct: - t := h.unp.StructTag() - n := h.unp.Len() - switch t { - case 'N': - if h.boltMajor >= 5 { - return h.nodeWithElementId(n) - } - return h.node(n) - case 'R': - if h.boltMajor >= 5 { - return h.relationshipWithElementId(n) - } - return h.relationship(n) - case 'r': - if h.boltMajor >= 5 { - return h.relationnodeWithElementId(n) - } - return h.relationnode(n) - case 'P': - return h.path(n) - case 'X': - return h.point2d(n) - case 'Y': - return h.point3d(n) - case 'F': - if h.useUtc { - return h.unknownStructError(t) - } - return h.dateTimeOffset(n) - case 'I': - if !h.useUtc { - return h.unknownStructError(t) - } - return h.utcDateTimeOffset(n) - case 'f': - if h.useUtc { - return h.unknownStructError(t) - } - return h.dateTimeNamedZone(n) - case 'i': - if !h.useUtc { - return h.unknownStructError(t) - } - return h.utcDateTimeNamedZone(n) - case 'd': - return h.localDateTime(n) - case 'D': - return h.date(n) - case 'T': - return h.time(n) - case 't': - return h.localTime(n) - case 'E': - return h.duration(n) - default: - return h.unknownStructError(t) - } - case packstream.PackedByteArray: - return h.unp.ByteArray() - case packstream.PackedArray: - return h.array() - case packstream.PackedMap: - return h.amap() - case packstream.PackedNil: - return nil - case packstream.PackedTrue: - return true - case packstream.PackedFalse: - return false - default: - h.setErr(&db.ProtocolError{ - Err: fmt.Sprintf("Received unknown packstream value type: %d", valueType), - }) - return nil - } -} - -// Trashes current value -func (h *hydrator) trash() { - // TODO Less consuming implementation - h.value() -} - -func (h *hydrator) node(num uint32) any { - h.assertLength("node", 3, num) - if h.getErr() != nil { - return nil - } - n := dbtype.Node{} - h.unp.Next() - //lint:ignore SA1019 Id is supported at least until 6.0 - n.Id = h.unp.Int() - h.unp.Next() - n.Labels = h.strings() - h.unp.Next() - n.Props = h.amap() - //lint:ignore SA1019 Id is supported at least until 6.0 - n.ElementId = fmt.Sprintf("%d", n.Id) - return n -} - -func (h *hydrator) nodeWithElementId(num uint32) any { - h.assertLength("node", 4, num) - if h.getErr() != nil { - return nil - } - n := dbtype.Node{} - h.unp.Next() - //lint:ignore SA1019 Id is supported at least until 6.0 - n.Id = h.unp.Int() - h.unp.Next() - n.Labels = h.strings() - h.unp.Next() - n.Props = h.amap() - h.unp.Next() - n.ElementId = h.unp.String() - return n -} - -func (h *hydrator) relationship(n uint32) any { - h.assertLength("relationship", 5, n) - if h.getErr() != nil { - return nil - } - r := dbtype.Relationship{} - h.unp.Next() - //lint:ignore SA1019 Id is supported at least until 6.0 - r.Id = h.unp.Int() - h.unp.Next() - //lint:ignore SA1019 StartId is supported at least until 6.0 - r.StartId = h.unp.Int() - h.unp.Next() - //lint:ignore SA1019 EndId is supported at least until 6.0 - r.EndId = h.unp.Int() - h.unp.Next() - r.Type = h.unp.String() - h.unp.Next() - r.Props = h.amap() - //lint:ignore SA1019 Id is supported at least until 6.0 - r.ElementId = fmt.Sprintf("%d", r.Id) - //lint:ignore SA1019 StartId is supported at least until 6.0 - r.StartElementId = fmt.Sprintf("%d", r.StartId) - //lint:ignore SA1019 EndId is supported at least until 6.0 - r.EndElementId = fmt.Sprintf("%d", r.EndId) - return r -} - -func (h *hydrator) relationshipWithElementId(n uint32) any { - h.assertLength("relationship", 8, n) - if h.getErr() != nil { - return nil - } - r := dbtype.Relationship{} - h.unp.Next() - //lint:ignore SA1019 Id is supported at least until 6.0 - r.Id = h.unp.Int() - h.unp.Next() - //lint:ignore SA1019 StartId is supported at least until 6.0 - r.StartId = h.unp.Int() - h.unp.Next() - //lint:ignore SA1019 EndId is supported at least until 6.0 - r.EndId = h.unp.Int() - h.unp.Next() - r.Type = h.unp.String() - h.unp.Next() - r.Props = h.amap() - h.unp.Next() - r.ElementId = h.unp.String() - h.unp.Next() - r.StartElementId = h.unp.String() - h.unp.Next() - r.EndElementId = h.unp.String() - return r -} - -func (h *hydrator) relationnode(n uint32) any { - h.assertLength("relationnode", 3, n) - if h.getErr() != nil { - return nil - } - r := relNode{} - h.unp.Next() - r.id = h.unp.Int() - h.unp.Next() - r.name = h.unp.String() - h.unp.Next() - r.props = h.amap() - r.elementId = fmt.Sprintf("%d", r.id) - return &r -} - -func (h *hydrator) relationnodeWithElementId(n uint32) any { - h.assertLength("relationnode", 4, n) - if h.getErr() != nil { - return nil - } - r := relNode{} - h.unp.Next() - r.id = h.unp.Int() - h.unp.Next() - r.name = h.unp.String() - h.unp.Next() - r.props = h.amap() - h.unp.Next() - r.elementId = h.unp.String() - return &r -} - -func (h *hydrator) path(n uint32) any { - h.assertLength("path", 3, n) - if h.getErr() != nil { - return nil - } - // Array of nodes - h.unp.Next() - num := h.unp.Len() - nodes := make([]dbtype.Node, num) - for i := range nodes { - h.unp.Next() - node, ok := h.value().(dbtype.Node) - if !ok { - h.setErr(&db.ProtocolError{ - MessageType: "path", - Field: "nodes", - Err: "value could not be cast to Node", - }) - return nil - } - nodes[i] = node - } - // Array of relnodes - h.unp.Next() - num = h.unp.Len() - rnodes := make([]*relNode, num) - for i := range rnodes { - h.unp.Next() - rnode, ok := h.value().(*relNode) - if !ok { - h.setErr(&db.ProtocolError{ - MessageType: "path", - Field: "rnodes", - Err: "value could be not cast to *relNode", - }) - return nil - } - rnodes[i] = rnode - } - // Array of indexes - h.unp.Next() - num = h.unp.Len() - indexes := make([]int, num) - for i := range indexes { - h.unp.Next() - indexes[i] = int(h.unp.Int()) - } - - if (len(indexes) & 0x01) == 1 { - h.setErr(&db.ProtocolError{ - MessageType: "path", - Field: "indices", - Err: fmt.Sprintf("there should be an even number of indices, found %d", len(indexes)), - }) - return nil - } - - return buildPath(nodes, rnodes, indexes) -} - -func (h *hydrator) point2d(n uint32) any { - p := dbtype.Point2D{} - h.unp.Next() - p.SpatialRefId = uint32(h.unp.Int()) - h.unp.Next() - p.X = h.unp.Float() - h.unp.Next() - p.Y = h.unp.Float() - return p -} - -func (h *hydrator) point3d(n uint32) any { - p := dbtype.Point3D{} - h.unp.Next() - p.SpatialRefId = uint32(h.unp.Int()) - h.unp.Next() - p.X = h.unp.Float() - h.unp.Next() - p.Y = h.unp.Float() - h.unp.Next() - p.Z = h.unp.Float() - return p -} - -func (h *hydrator) dateTimeOffset(n uint32) any { - h.unp.Next() - seconds := h.unp.Int() - h.unp.Next() - nanos := h.unp.Int() - h.unp.Next() - offset := h.unp.Int() - // time.Time in local timezone, e.g. 15th of June 2020, 15:30 in Paris (UTC+2h) - unixTime := time.Unix(seconds, nanos) - // time.Time computed in UTC timezone, e.g. 15th of June 2020, 13:30 in UTC - utcTime := unixTime.UTC() - // time.Time **copied** as-is in the target timezone, e.g. 15th of June 2020, 13:30 in target tz - timeZone := time.FixedZone("Offset", int(offset)) - return time.Date( - utcTime.Year(), - utcTime.Month(), - utcTime.Day(), - utcTime.Hour(), - utcTime.Minute(), - utcTime.Second(), - utcTime.Nanosecond(), - timeZone, - ) -} - -func (h *hydrator) utcDateTimeOffset(n uint32) any { - h.unp.Next() - seconds := h.unp.Int() - h.unp.Next() - nanos := h.unp.Int() - h.unp.Next() - offset := h.unp.Int() - timeZone := time.FixedZone("Offset", int(offset)) - return time.Unix(seconds, nanos).In(timeZone) -} - -func (h *hydrator) dateTimeNamedZone(n uint32) any { - h.unp.Next() - seconds := h.unp.Int() - h.unp.Next() - nanos := h.unp.Int() - h.unp.Next() - zone := h.unp.String() - // time.Time in local timezone, e.g. 15th of June 2020, 15:30 in Paris (UTC+2h) - unixTime := time.Unix(seconds, nanos) - // time.Time computed in UTC timezone, e.g. 15th of June 2020, 13:30 in UTC - utcTime := unixTime.UTC() - // time.Time **copied** as-is in the target timezone, e.g. 15th of June 2020, 13:30 in target tz - l, err := time.LoadLocation(zone) - if err != nil { - return &dbtype.InvalidValue{ - Message: "dateTimeNamedZone", - Err: err, - } - } - return time.Date( - utcTime.Year(), - utcTime.Month(), - utcTime.Day(), - utcTime.Hour(), - utcTime.Minute(), - utcTime.Second(), - utcTime.Nanosecond(), - l, - ) -} - -func (h *hydrator) utcDateTimeNamedZone(n uint32) any { - h.unp.Next() - secs := h.unp.Int() - h.unp.Next() - nans := h.unp.Int() - h.unp.Next() - zone := h.unp.String() - timeZone, err := time.LoadLocation(zone) - if err != nil { - return &dbtype.InvalidValue{ - Message: "utcDateTimeNamedZone", - Err: err, - } - } - return time.Unix(secs, nans).In(timeZone) -} - -func (h *hydrator) localDateTime(n uint32) any { - h.unp.Next() - secs := h.unp.Int() - h.unp.Next() - nans := h.unp.Int() - t := time.Unix(secs, nans).UTC() - t = time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.Local) - return dbtype.LocalDateTime(t) -} - -func (h *hydrator) date(n uint32) any { - h.unp.Next() - days := h.unp.Int() - secs := days * 86400 - return dbtype.Date(time.Unix(secs, 0).UTC()) -} - -func (h *hydrator) time(n uint32) any { - h.unp.Next() - nans := h.unp.Int() - h.unp.Next() - offs := h.unp.Int() - secs := nans / int64(time.Second) - nans -= secs * int64(time.Second) - l := time.FixedZone("Offset", int(offs)) - t := time.Date(0, 0, 0, 0, 0, int(secs), int(nans), l) - return dbtype.Time(t) -} - -func (h *hydrator) localTime(n uint32) any { - h.unp.Next() - nans := h.unp.Int() - secs := nans / int64(time.Second) - nans -= secs * int64(time.Second) - t := time.Date(0, 0, 0, 0, 0, int(secs), int(nans), time.Local) - return dbtype.LocalTime(t) -} - -func (h *hydrator) duration(n uint32) any { - h.unp.Next() - mon := h.unp.Int() - h.unp.Next() - day := h.unp.Int() - h.unp.Next() - sec := h.unp.Int() - h.unp.Next() - nan := h.unp.Int() - return dbtype.Duration{Months: mon, Days: day, Seconds: sec, Nanos: int(nan)} -} - -func parseNotifications(notificationsx []any) []db.Notification { - var notifications []db.Notification - if notificationsx != nil { - notifications = make([]db.Notification, 0, len(notificationsx)) - for _, x := range notificationsx { - notificationx, ok := x.(map[string]any) - if ok { - notifications = append(notifications, parseNotification(notificationx)) - } - } - } - return notifications -} - -func parseGqlStatusObjects(statuses []any) []db.GqlStatusObject { - var gqlStatusObjects []db.GqlStatusObject - if statuses != nil { - gqlStatusObjects = make([]db.GqlStatusObject, 0, len(statuses)) - for _, x := range statuses { - status, ok := x.(map[string]any) - if ok { - gqlStatusObjects = append(gqlStatusObjects, parseGqlStatusObject(status)) - } - } - } - return gqlStatusObjects -} - -func parsePlanOpIdArgsChildren(planx map[string]any) (string, []string, map[string]any, []any) { - operator, _ := planx["operatorType"].(string) - identifiersx, _ := planx["identifiers"].([]any) - arguments, _ := planx["args"].(map[string]any) - - identifiers := make([]string, len(identifiersx)) - for i, id := range identifiersx { - identifiers[i], _ = id.(string) - } - - childrenx, _ := planx["children"].([]any) - - return operator, identifiers, arguments, childrenx -} - -func parsePlan(planx map[string]any) *db.Plan { - op, ids, args, childrenx := parsePlanOpIdArgsChildren(planx) - plan := &db.Plan{ - Operator: op, - Arguments: args, - Identifiers: ids, - } - - plan.Children = make([]db.Plan, 0, len(childrenx)) - for _, c := range childrenx { - childPlanx, _ := c.(map[string]any) - if len(childPlanx) > 0 { - childPlan := parsePlan(childPlanx) - if childPlan != nil { - plan.Children = append(plan.Children, *childPlan) - } - } - } - - return plan -} - -func parseProfile(profilex map[string]any) *db.ProfiledPlan { - op, ids, args, childrenx := parsePlanOpIdArgsChildren(profilex) - plan := &db.ProfiledPlan{ - Operator: op, - Arguments: args, - Identifiers: ids, - } - - plan.DbHits, _ = profilex["dbHits"].(int64) - plan.Records, _ = profilex["rows"].(int64) - - plan.Children = make([]db.ProfiledPlan, 0, len(childrenx)) - for _, c := range childrenx { - childPlanx, _ := c.(map[string]any) - if len(childPlanx) > 0 { - childPlan := parseProfile(childPlanx) - if childPlan != nil { - if pageCacheMisses, ok := childPlanx["pageCacheMisses"]; ok { - childPlan.PageCacheMisses = pageCacheMisses.(int64) - } - if pageCacheHits, ok := childPlanx["pageCacheHits"]; ok { - childPlan.PageCacheHits = pageCacheHits.(int64) - } - if pageCacheHitRatio, ok := childPlanx["pageCacheHitRatio"]; ok { - childPlan.PageCacheHitRatio = pageCacheHitRatio.(float64) - } - if planTime, ok := childPlanx["time"]; ok { - childPlan.Time = planTime.(int64) - } - plan.Children = append(plan.Children, *childPlan) - } - } - } - - return plan -} - -func parseInputPosition(m map[string]any) *db.InputPosition { - if m == nil { - return nil - } - pos := &db.InputPosition{} - if i, ok := m["column"].(int64); ok { - pos.Column = int(i) - } - if i, ok := m["line"].(int64); ok { - pos.Line = int(i) - } - if i, ok := m["offset"].(int64); ok { - pos.Offset = int(i) - } - return pos -} - -func parseNotification(m map[string]any) db.Notification { - n := db.Notification{} - n.Code, _ = m["code"].(string) - if description, ok := m["description"].(string); ok { - n.Description = description - } - n.Severity, _ = m["severity"].(string) - n.Category, _ = m["category"].(string) - n.Title, _ = m["title"].(string) - if pos, ok := m["position"].(map[string]any); ok { - n.Position = parseInputPosition(pos) - } - return n -} - -func parseGqlStatusObject(m map[string]any) db.GqlStatusObject { - g := db.GqlStatusObject{} - - if status, ok := m["gql_status"].(string); ok { - g.GqlStatus = status - } - - if statusDescription, ok := m["status_description"].(string); ok { - g.StatusDescription = statusDescription - } - - // Backward compatibility support for older Notification API. - if code, ok := m["neo4j_code"].(string); ok { - //lint:ignore SA1019 Code is supported at least until 6.0 - g.Code = code - g.IsNotification = true - } - - // Backward compatibility support for older Notification API. - if title, ok := m["title"].(string); ok { - //lint:ignore SA1019 Title is supported at least until 6.0 - g.Title = title - } - - // Backward compatibility support for older Notification API. - if description, ok := m["description"].(string); ok { - //lint:ignore SA1019 Description is supported at least until 6.0 - g.Description = description - } - - // Initialize the default diagnostic record - diagnosticRecord := gql.NewDefaultDiagnosticRecord() - - // Merge the diagnostic record from the map m - if dr, ok := m["diagnostic_record"].(map[string]any); ok { - for key, value := range dr { - diagnosticRecord[key] = value - } - if pos, ok := dr["_position"].(map[string]any); ok { - g.Position = parseInputPosition(pos) - } - if classification, ok := dr["_classification"].(string); ok { - g.Classification = classification - } - if severity, ok := dr["_severity"].(string); ok { - g.Severity = severity - } - } - - g.DiagnosticRecord = diagnosticRecord - return g -} - -func (h *hydrator) unknownStructError(t byte) any { - h.setErr(&db.ProtocolError{ - Err: fmt.Sprintf("Received unknown struct tag: %d", t), - }) - return nil -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/incoming.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/incoming.go deleted file mode 100644 index 76486bd..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/incoming.go +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "io" - "time" -) - -type incoming struct { - buf []byte // Reused buffer - hyd hydrator - connReadTimeout time.Duration -} - -func (i *incoming) next(ctx context.Context, reader io.Reader) (any, error) { - // Get next message from transport layer - var err error - var msg []byte - i.buf, msg, err = dechunkMessage(ctx, reader, i.buf, i.connReadTimeout) - if err != nil { - return nil, err - } - return i.hyd.hydrate(msg) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/message_queue.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/message_queue.go deleted file mode 100644 index dedcc68..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/message_queue.go +++ /dev/null @@ -1,235 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "container/list" - "context" - "errors" - "fmt" - "io" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type messageQueue struct { - in *incoming - out *outgoing - handlers list.List // List[responseHandler] - targetConnection io.ReadWriteCloser - err error - - onNextMessage func() - onIoErr func(context.Context, error) -} - -func newMessageQueue( - target io.ReadWriteCloser, - in *incoming, out *outgoing, - onNext func(), - onIoErr func(context.Context, error), -) messageQueue { - return messageQueue{ - in: in, - out: out, - handlers: list.List{}, - targetConnection: target, - onNextMessage: onNext, - onIoErr: onIoErr, - } -} - -func (q *messageQueue) appendHello(hello map[string]any, helloHandler responseHandler) { - q.out.appendHello(hello) - q.enqueueCallback(helloHandler) -} - -func (q *messageQueue) appendLogoff(logoffHandler responseHandler) { - q.out.appendLogoff() - q.enqueueCallback(logoffHandler) -} -func (q *messageQueue) appendLogon(token map[string]any, logonHandler responseHandler) { - q.out.appendLogon(token) - q.enqueueCallback(logonHandler) -} - -func (q *messageQueue) appendRoute(routingContext map[string]string, bookmarks []string, extras map[string]any, handler responseHandler) { - q.out.appendRoute(routingContext, bookmarks, extras) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendRouteV43(routingContext map[string]string, bookmarks []string, database string, handler responseHandler) { - q.out.appendRouteToV43(routingContext, bookmarks, database) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendBegin(meta map[string]any, handler responseHandler) { - q.out.appendBegin(meta) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendRun(cypher string, params, meta map[string]any, runHandler responseHandler) { - q.out.appendRun(cypher, params, meta) - q.enqueueCallback(runHandler) -} - -func (q *messageQueue) appendPullN(fetchSize int, handler responseHandler) { - q.out.appendPullN(fetchSize) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendPullNQid(fetchSize int, qid int64, handler responseHandler) { - q.out.appendPullNQid(fetchSize, qid) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendCommit(handler responseHandler) { - q.out.appendCommit() - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendRollback(handler responseHandler) { - q.out.appendRollback() - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendDiscardNQid(fetchSize int, qid int64, handler responseHandler) { - q.out.appendDiscardNQid(fetchSize, qid) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendDiscardN(fetchSize int, handler responseHandler) { - q.out.appendDiscardN(fetchSize) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendReset(handler responseHandler) { - q.out.appendReset() - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendGoodbye() { - q.out.appendGoodbye() - // no response expected here -} - -func (q *messageQueue) appendTelemetry(api int, handler responseHandler) { - q.out.appendTelemetry(api) - q.enqueueCallback(handler) -} - -func (q *messageQueue) send(ctx context.Context) { - q.out.send(ctx, q.targetConnection) -} - -func (q *messageQueue) receiveAll(ctx context.Context) error { - for { - if q.handlers.Len() == 0 { - return nil - } - if err := q.receive(ctx); err != nil { - return err - } - } -} - -func (q *messageQueue) receive(ctx context.Context) error { - res := q.receiveMsg(ctx) - if q.err != nil { - return q.err - } - - if q.handlers.Len() == 0 { - return errors.New("no more response callback to apply") - } - handler := q.pop() - switch message := res.(type) { - case *db.Record: - onRecord := handler.onRecord - if onRecord == nil { - return errors.New("protocol violation: the server sent an unexpected RECORD response") - } - onRecord(message) - case *success: - onSuccess := handler.onSuccess - if onSuccess == nil { - return errors.New("protocol violation: the server sent an unexpected SUCCESS response") - } - onSuccess(message) - case *db.Neo4jError: - onFailure := handler.onFailure - if onFailure == nil { - return errors.New("protocol violation: the server sent an unexpected FAILURE response") - } - onFailure(ctx, message) - return message - case *ignored: - onIgnored := handler.onIgnored - if onIgnored == nil { - return errors.New("protocol violation: the server sent an unexpected IGNORED response") - } - onIgnored(message) - default: - panic(fmt.Errorf("did not expect message %v", res)) - } - return nil -} - -func (q *messageQueue) pushFront(handler responseHandler) { - q.handlers.PushFront(handler) -} - -func (q *messageQueue) pop() responseHandler { - return q.handlers.Remove(q.handlers.Front()).(responseHandler) -} - -func (q *messageQueue) receiveMsg(ctx context.Context) any { - // Potentially dangerous to receive when an error has occurred, could hang. - // Important, a lot of code has been simplified relying on this check. - if q.err != nil { - return nil - } - - msg, err := q.in.next(ctx, q.targetConnection) - q.err = err - if err != nil { - q.onIoErr(ctx, err) - } else { - q.onNextMessage() - } - return msg -} - -func (q *messageQueue) enqueueCallback(handler responseHandler) { - q.handlers.PushBack(handler) -} - -func (q *messageQueue) setLogId(logId string) { - q.in.hyd.logId = logId - q.out.logId = logId -} - -func (q *messageQueue) setBoltLogger(logger log.BoltLogger) { - q.in.hyd.boltLogger = logger - q.out.boltLogger = logger -} - -func (q *messageQueue) isEmpty() bool { - return q.handlers.Len() == 0 -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/messages.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/messages.go deleted file mode 100644 index 6c37a8b..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/messages.go +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -// Message struct tags -// Shared between bolt versions -const ( - msgReset byte = 0x0f - msgRun byte = 0x10 - msgDiscardAll byte = 0x2f - msgDiscardN = msgDiscardAll // Different name >= 4.0 - msgPullAll byte = 0x3f - msgPullN = msgPullAll // Different name >= 4.0 - msgRecord byte = 0x71 - msgSuccess byte = 0x70 - msgIgnored byte = 0x7e - msgFailure byte = 0x7f - msgHello byte = 0x01 - msgLogon byte = 0x6A - msgLogoff byte = 0x6B - msgGoodbye byte = 0x02 - msgBegin byte = 0x11 - msgCommit byte = 0x12 - msgRollback byte = 0x13 - msgRoute byte = 0x66 // > 4.2 - msgTelemetry byte = 0x54 -) diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/notifications.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/notifications.go deleted file mode 100644 index 4c5878b..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/notifications.go +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" -) - -func checkNotificationFiltering( - notificationConfig idb.NotificationConfig, - bolt idb.Connection, -) error { - if notificationConfig.MinSev == notifications.DefaultLevel && - !notificationConfig.DisCats.DisablesNone() && len(notificationConfig.DisCats.DisabledCategories()) == 0 && - !notificationConfig.DisClas.DisablesNone() && len(notificationConfig.DisClas.DisabledClassifications()) == 0 { - return nil - } - version := bolt.Version() - if version.Major < 5 || version.Major == 5 && version.Minor < 2 { - return &db.FeatureNotSupportedError{ - Server: bolt.ServerName(), - Feature: "notification filtering", - Reason: "requires least server v5.7", - } - } - return nil -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/outgoing.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/outgoing.go deleted file mode 100644 index a6be197..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/outgoing.go +++ /dev/null @@ -1,565 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" - "io" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" -) - -type outgoing struct { - chunker chunker - packer packstream.Packer - onPackErr func(error) - onIoErr func(context.Context, error) - boltLogger log.BoltLogger - logId string - useUtc bool -} - -func (o *outgoing) begin() { - o.chunker.beginMessage() - o.packer.Begin(o.chunker.buf) -} - -func (o *outgoing) end() { - buf, err := o.packer.End() - o.chunker.buf = buf - o.chunker.endMessage() - if err != nil { - o.onPackErr(err) - } -} - -func (o *outgoing) appendHello(hello map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "HELLO %s", loggableDictionary(hello)) - } - o.begin() - o.packer.StructHeader(msgHello, 1) - o.packMap(hello) - o.end() -} - -func (o *outgoing) appendLogoff() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "LOGOFF") - } - o.begin() - o.packer.StructHeader(msgLogoff, 0) - o.end() -} - -func (o *outgoing) appendLogon(logon map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "LOGON %s", loggableDictionary(logon)) - } - o.begin() - o.packer.StructHeader(msgLogon, 1) - o.packMap(logon) - o.end() -} - -func (o *outgoing) appendBegin(meta map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "BEGIN %s", loggableDictionary(meta)) - } - o.begin() - o.packer.StructHeader(msgBegin, 1) - o.packMap(meta) - o.end() -} - -func (o *outgoing) appendCommit() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "COMMIT") - } - o.begin() - o.packer.StructHeader(msgCommit, 0) - o.end() -} - -func (o *outgoing) appendRollback() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "ROLLBACK") - } - o.begin() - o.packer.StructHeader(msgRollback, 0) - o.end() -} - -func (o *outgoing) appendRun(cypher string, params, meta map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "RUN %q %s %s", cypher, loggableDictionary(params), loggableDictionary(meta)) - } - o.begin() - o.packer.StructHeader(msgRun, 3) - o.packer.String(cypher) - o.packMap(params) - o.packMap(meta) - o.end() -} - -func (o *outgoing) appendPullN(n int) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "PULL %s", loggableDictionary{"n": n}) - } - o.begin() - o.packer.StructHeader(msgPullN, 1) - o.packer.MapHeader(1) - o.packer.String("n") - o.packer.Int(n) - o.end() -} - -func (o *outgoing) appendPullNQid(n int, qid int64) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "PULL %s", loggableDictionary{"n": n, "qid": qid}) - } - o.begin() - o.packer.StructHeader(msgPullN, 1) - o.packer.MapHeader(2) - o.packer.String("n") - o.packer.Int(n) - o.packer.String("qid") - o.packer.Int64(qid) - o.end() -} - -func (o *outgoing) appendDiscardN(n int) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "DISCARD %s", loggableDictionary{"n": n}) - } - o.begin() - o.packer.StructHeader(msgDiscardN, 1) - o.packer.MapHeader(1) - o.packer.String("n") - o.packer.Int(n) - o.end() -} - -func (o *outgoing) appendDiscardNQid(n int, qid int64) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "DISCARD %s", loggableDictionary{"n": n, "qid": qid}) - } - o.begin() - o.packer.StructHeader(msgDiscardN, 1) - o.packer.MapHeader(2) - o.packer.String("n") - o.packer.Int(n) - o.packer.String("qid") - o.packer.Int64(qid) - o.end() -} - -func (o *outgoing) appendPullAll() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "PULL ALL") - } - o.begin() - o.packer.StructHeader(msgPullAll, 0) - o.end() -} - -// Only valid for V4.3 -func (o *outgoing) appendRouteToV43(context map[string]string, bookmarks []string, database string) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "ROUTE %s %s %q", loggableStringDictionary(context), loggableStringList(bookmarks), database) - } - o.begin() - o.packer.StructHeader(msgRoute, 3) - o.packer.MapHeader(len(context)) - for k, v := range context { - o.packer.String(k) - o.packer.String(v) - } - o.packer.ArrayHeader(len(bookmarks)) - for _, bookmark := range bookmarks { - o.packer.String(bookmark) - } - if database == idb.DefaultDatabase { - o.packer.Nil() - } else { - o.packer.String(database) - } - o.end() -} - -func (o *outgoing) appendRoute(context map[string]string, bookmarks []string, what map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "ROUTE %s %s %s", loggableStringDictionary(context), loggableStringList(bookmarks), loggableDictionary(what)) - } - o.begin() - o.packer.StructHeader(msgRoute, 3) - o.packer.MapHeader(len(context)) - for k, v := range context { - o.packer.String(k) - o.packer.String(v) - } - o.packer.ArrayHeader(len(bookmarks)) - for _, bookmark := range bookmarks { - o.packer.String(bookmark) - } - o.packMap(what) - o.end() -} - -func (o *outgoing) appendReset() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "RESET") - } - o.begin() - o.packer.StructHeader(msgReset, 0) - o.end() -} - -func (o *outgoing) appendGoodbye() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "GOODBYE") - } - o.begin() - o.packer.StructHeader(msgGoodbye, 0) - o.end() -} - -func (o *outgoing) appendTelemetry(api int) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "TELEMETRY %d", api) - } - o.begin() - o.packer.StructHeader(msgTelemetry, 1) - o.packer.Int(api) - o.end() -} - -// For tests -func (o *outgoing) appendX(tag byte, fields ...any) { - o.begin() - o.packer.StructHeader(tag, len(fields)) - for _, f := range fields { - o.packX(f) - } - o.end() -} - -func (o *outgoing) send(ctx context.Context, wr io.Writer) { - err := o.chunker.send(ctx, wr) - if err != nil { - o.onIoErr(ctx, err) - } -} - -func (o *outgoing) packMap(m map[string]any) { - o.packer.MapHeader(len(m)) - for k, v := range m { - o.packer.String(k) - o.packX(v) - } -} - -func (o *outgoing) packStruct(x any) { - switch v := x.(type) { - case *dbtype.Point2D: - o.packer.StructHeader('X', 3) - o.packer.Uint32(v.SpatialRefId) - o.packer.Float64(v.X) - o.packer.Float64(v.Y) - case dbtype.Point2D: - o.packer.StructHeader('X', 3) - o.packer.Uint32(v.SpatialRefId) - o.packer.Float64(v.X) - o.packer.Float64(v.Y) - case *dbtype.Point3D: - o.packer.StructHeader('Y', 4) - o.packer.Uint32(v.SpatialRefId) - o.packer.Float64(v.X) - o.packer.Float64(v.Y) - o.packer.Float64(v.Z) - case dbtype.Point3D: - o.packer.StructHeader('Y', 4) - o.packer.Uint32(v.SpatialRefId) - o.packer.Float64(v.X) - o.packer.Float64(v.Y) - o.packer.Float64(v.Z) - case time.Time: - if o.useUtc { - if zone, _ := v.Zone(); zone == "Offset" { - o.packUtcDateTimeWithTzOffset(v) - } else { - o.packUtcDateTimeWithTzName(v) - } - break - } - if zone, _ := v.Zone(); zone == "Offset" { - o.packLegacyDateTimeWithTzOffset(v) - } else { - o.packLegacyDateTimeWithTzName(v) - } - case dbtype.LocalDateTime: - t := time.Time(v) - _, offset := t.Zone() - secs := t.Unix() + int64(offset) - o.packer.StructHeader('d', 2) - o.packer.Int64(secs) - o.packer.Int(t.Nanosecond()) - case dbtype.Date: - t := time.Time(v) - secs := t.Unix() - _, offset := t.Zone() - secs += int64(offset) - days := secs / (60 * 60 * 24) - o.packer.StructHeader('D', 1) - o.packer.Int64(days) - case dbtype.Time: - t := time.Time(v) - _, tzOffsetSecs := t.Zone() - d := t.Sub( - time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())) - o.packer.StructHeader('T', 2) - o.packer.Int64(d.Nanoseconds()) - o.packer.Int(tzOffsetSecs) - case dbtype.LocalTime: - t := time.Time(v) - nanos := int64(time.Hour)*int64(t.Hour()) + - int64(time.Minute)*int64(t.Minute()) + - int64(time.Second)*int64(t.Second()) + - int64(t.Nanosecond()) - o.packer.StructHeader('t', 1) - o.packer.Int64(nanos) - case dbtype.Duration: - o.packer.StructHeader('E', 4) - o.packer.Int64(v.Months) - o.packer.Int64(v.Days) - o.packer.Int64(v.Seconds) - o.packer.Int(v.Nanos) - default: - o.onPackErr(&db.UnsupportedTypeError{Type: reflect.TypeOf(x)}) - } -} - -func (o *outgoing) packX(x any) { - if x == nil { - o.packer.Nil() - return - } - - v := reflect.ValueOf(x) - switch v.Kind() { - case reflect.Bool: - o.packer.Bool(v.Bool()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - o.packer.Int64(v.Int()) - case reflect.Uint8, reflect.Uint16, reflect.Uint32: - o.packer.Uint32(uint32(v.Uint())) - case reflect.Uint64, reflect.Uint: - o.packer.Uint64(v.Uint()) - case reflect.Float32, reflect.Float64: - o.packer.Float64(v.Float()) - case reflect.String: - o.packer.String(v.String()) - case reflect.Ptr: - if v.IsNil() { - o.packer.Nil() - return - } - // Inspect what the pointer points to - i := reflect.Indirect(v) - switch i.Kind() { - case reflect.Struct: - o.packStruct(x) - default: - o.packV(i) - } - case reflect.Struct: - o.packStruct(x) - case reflect.Slice: - // Optimizations - switch s := x.(type) { - case []byte: - o.packer.Bytes(s) // Not just optimization - case []int: - o.packer.Ints(s) - case []int64: - o.packer.Int64s(s) - case []string: - o.packer.Strings(s) - case []float64: - o.packer.Float64s(s) - case []any: - o.packer.ArrayHeader(len(s)) - for _, e := range s { - o.packX(e) - } - default: - num := v.Len() - o.packer.ArrayHeader(num) - for i := 0; i < num; i++ { - o.packV(v.Index(i)) - } - } - case reflect.Map: - // Optimizations - switch m := x.(type) { - case map[string][]byte: - o.packer.BytesMap(m) - case map[string]int: - o.packer.IntMap(m) - case map[string]int64: - o.packer.Int64Map(m) - case map[string]string: - o.packer.StringMap(m) - case map[string]float64: - o.packer.Float64Map(m) - case map[string]any: - o.packMap(m) - default: - t := reflect.TypeOf(x) - if t.Key().Kind() != reflect.String { - o.onPackErr(&db.UnsupportedTypeError{Type: reflect.TypeOf(x)}) - return - } - l := v.Len() - o.packer.MapHeader(l) - if l == 0 { - return - } - key := reflect.New(t.Key()).Elem() - value := reflect.New(t.Elem()).Elem() - iter := v.MapRange() - for iter.Next() { - key.SetIterKey(iter) - value.SetIterValue(iter) - o.packer.String(key.String()) - o.packV(value) - } - } - default: - o.onPackErr(&db.UnsupportedTypeError{Type: reflect.TypeOf(x)}) - } -} - -func typeForPrimitive[T any]() reflect.Type { - var v T - return reflect.TypeOf(v) -} - -var intT = typeForPrimitive[int]() -var int64T = typeForPrimitive[int64]() -var stringT = typeForPrimitive[string]() -var float64T = typeForPrimitive[float64]() -var anyT = reflect.TypeOf((*any)(nil)).Elem() - -func (o *outgoing) packV(v reflect.Value) { - switch v.Kind() { - case reflect.Bool: - o.packer.Bool(v.Bool()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - o.packer.Int64(v.Int()) - case reflect.Uint8, reflect.Uint16, reflect.Uint32: - o.packer.Uint32(uint32(v.Uint())) - case reflect.Uint64, reflect.Uint: - o.packer.Uint64(v.Uint()) - case reflect.Float32, reflect.Float64: - o.packer.Float64(v.Float()) - case reflect.String: - o.packer.String(v.String()) - case reflect.Ptr: - if v.IsNil() { - o.packer.Nil() - return - } - // Inspect what the pointer points to - i := reflect.Indirect(v) - switch i.Kind() { - case reflect.Struct: - o.packStruct(v.Interface()) - default: - o.packV(i) - } - case reflect.Struct: - o.packStruct(v.Interface()) - case reflect.Slice: - elemType := v.Type().Elem() - if elemType.Kind() == reflect.Uint8 { - o.packer.Bytes(v.Bytes()) - return - } - num := v.Len() - if num > 5 { - switch elemType { - case intT, int64T, stringT, float64T, anyT: - // Accept the cost of an allocation (v.Interface()) - // because this slice type is optimized in packX. - // The exact length from which the optimization amortizes - // the allocation cost depends on many factors. - // 5 seemed a close to the cross-over point on my system - // running Go 1.23.0 linux/amd64. - // cf. https://github.com/neo4j/neo4j-go-driver/pull/617 - o.packX(v.Interface()) - return - } - } - o.packer.ArrayHeader(num) - for i := 0; i < num; i++ { - o.packV(v.Index(i)) - } - default: - o.packX(v.Interface()) - } -} - -// deprecated: remove once 4.x Neo4j all reach EOL -func (o *outgoing) packLegacyDateTimeWithTzOffset(dateTime time.Time) { - _, offset := dateTime.Zone() - o.packer.StructHeader('F', 3) - o.packer.Int64(dateTime.Unix() + int64(offset)) - o.packer.Int(dateTime.Nanosecond()) - o.packer.Int(offset) -} - -// deprecated: remove once 4.x Neo4j all reach EOL -func (o *outgoing) packLegacyDateTimeWithTzName(dateTime time.Time) { - _, offset := dateTime.Zone() - o.packer.StructHeader('f', 3) - o.packer.Int64(dateTime.Unix() + int64(offset)) - o.packer.Int(dateTime.Nanosecond()) - o.packer.String(dateTime.Location().String()) -} - -func (o *outgoing) packUtcDateTimeWithTzOffset(dateTime time.Time) { - _, offset := dateTime.Zone() - o.packer.StructHeader('I', 3) - o.packer.Int64(dateTime.Unix()) - o.packer.Int(dateTime.Nanosecond()) - o.packer.Int(offset) -} - -func (o *outgoing) packUtcDateTimeWithTzName(dateTime time.Time) { - o.packer.StructHeader('i', 3) - o.packer.Int64(dateTime.Unix()) - o.packer.Int(dateTime.Nanosecond()) - o.packer.String(dateTime.Location().String()) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/parseroutingtable.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/parseroutingtable.go deleted file mode 100644 index 25e2d10..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/parseroutingtable.go +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" -) - -// Parses a record assumed to contain a routing table into common DB API routing table struct -// Returns nil if error while parsing -func parseRoutingTableRecord(rec *db.Record) *idb.RoutingTable { - ttl, ok := rec.Values[0].(int64) - if !ok { - return nil - } - listOfX, ok := rec.Values[1].([]any) - if !ok { - return nil - } - - table := &idb.RoutingTable{ - TimeToLive: int(ttl), - } - - for _, x := range listOfX { - // Each x should be a map consisting of addresses and the role - m, ok := x.(map[string]any) - if !ok { - return nil - } - addressesX, ok := m["addresses"].([]any) - if !ok { - return nil - } - addresses := make([]string, len(addressesX)) - for i, addrX := range addressesX { - addr, ok := addrX.(string) - if !ok { - return nil - } - addresses[i] = addr - } - role, ok := m["role"].(string) - if !ok { - return nil - } - switch role { - case "READ": - table.Readers = addresses - case "WRITE": - table.Writers = addresses - case "ROUTE": - table.Routers = addresses - } - } - return table -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/path.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/path.go deleted file mode 100644 index 6c24dcd..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/path.go +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype" -) - -// Intermediate representation of part of path -type relNode struct { - // Deprecated: id is deprecated and will be removed in 6.0. Use elementId instead. - id int64 - elementId string - name string - props map[string]any -} - -// buildPath builds a path from Bolt representation -func buildPath(nodes []dbtype.Node, relNodes []*relNode, indexes []int) dbtype.Path { - num := len(indexes) / 2 - if num == 0 { - var path dbtype.Path - if len(nodes) > 0 { - // there could be a single, disconnected node - path.Nodes = nodes - } - return path - } - rels := make([]dbtype.Relationship, 0, num) - - i := 0 - n1 := nodes[0] - for num > 0 { - relni := indexes[i] - i++ - n2i := indexes[i] - i++ - num-- - var reln *relNode - var n1start bool - if relni < 0 { - reln = relNodes[(relni*-1)-1] - } else { - reln = relNodes[relni-1] - n1start = true - } - n2 := nodes[n2i] - - rel := dbtype.Relationship{ - Id: reln.id, - ElementId: reln.elementId, - Type: reln.name, - Props: reln.props, - } - if n1start { - //lint:ignore SA1019 Id, StartId and EndId are supported at least until 6.0 - rel.StartId, rel.EndId = n1.Id, n2.Id - rel.StartElementId, rel.EndElementId = n1.ElementId, n2.ElementId - } else { - //lint:ignore SA1019 Id, StartId and EndId are supported at least until 6.0 - rel.StartId, rel.EndId = n2.Id, n1.Id - rel.StartElementId, rel.EndElementId = n2.ElementId, n1.ElementId - } - rels = append(rels, rel) - n1 = n2 - } - - return dbtype.Path{Nodes: nodes, Relationships: rels} -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/reauth.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/reauth.go deleted file mode 100644 index 2cefdb9..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/reauth.go +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" -) - -func checkReAuth(auth *db.ReAuthToken, connection db.Connection) error { - fromSession := auth.FromSession - version := connection.Version() - if !fromSession { - return nil - } - if version.Major < 5 || (version.Major == 5 && version.Minor == 0) { - serverName := connection.ServerName() - return &idb.FeatureNotSupportedError{ - Server: serverName, - Feature: "session auth", - Reason: "requires least server v5.5", - } - } - return nil -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/response_handler.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/response_handler.go deleted file mode 100644 index d8e7ee5..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/response_handler.go +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" -) - -type responseHandler struct { - onSuccess func(*success) - onRecord func(*db.Record) - onFailure func(context.Context, *db.Neo4jError) - onIgnored func(*ignored) -} - -func onSuccessNoOp(*success) {} -func onIgnoredNoOp(*ignored) {} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/stream.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/stream.go deleted file mode 100644 index 07c869e..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/stream.go +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "container/list" - "errors" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" -) - -type stream struct { - attached bool - keys []string - fifo list.List - sum *db.Summary - err error - qid int64 - fetchSize int - key int64 - endOfBatch bool - discarding bool - tfirst int64 // Time that server started streaming - hadRecord bool -} - -// Acts on buffered data, first return value indicates if buffering -// is active or not. -func (s *stream) bufferedNext() (bool, *db.Record, *db.Summary, error) { - e := s.fifo.Front() - if e != nil { - s.fifo.Remove(e) - return true, e.Value.(*db.Record), nil, nil - } - if s.err != nil { - return true, nil, nil, s.err - } - if s.sum != nil { - return true, nil, s.sum, nil - } - - return false, nil, nil, nil -} - -func (s *stream) emptyRecords() { - if s.fifo.Len() == 0 { - return - } - s.fifo.Init() -} - -// Delayed error until fifo emptied -func (s *stream) Err() error { - if s.fifo.Len() > 0 { - return nil - } - return s.err -} - -func (s *stream) push(rec *db.Record) { - s.fifo.PushBack(rec) -} - -func (s *stream) ToSummary() db.StreamSummary { - return db.StreamSummary{ - HadRecord: s.hadRecord, - HadKey: len(s.keys) > 0, - } -} - -// Only need to keep track of current stream. Client keeps track of other -// open streams and a key in each stream is used to validate if it belongs to -// current bolt connection or not. -type openstreams struct { - curr *stream - num int - key int64 -} - -var ( - errInvalidStream = errors.New("invalid stream handle") -) - -// Adds a new open stream and sets it as current. -// There should NOT be a current stream . -func (o *openstreams) attach(s *stream) { - if o.curr != nil { - return - } - // Track number of open streams and set the stream as current - o.num++ - o.curr = s - s.key = o.key -} - -// Detaches the current stream from being current and -// removes it from set of open streams it is no longer open. -// The stream should be either in failed state or completed. -func (o *openstreams) detach(sum *db.Summary, err error) { - if o.curr == nil { - return - } - - o.curr.sum = sum - o.curr.err = err - o.remove(o.curr) -} - -// Streams can be paused when they have received a "has_more" response from server -// Pauses the current stream -func (o *openstreams) pause() { - o.curr = nil -} - -// When resuming a stream a new PULL message needs to be sent. -func (o *openstreams) resume(s *stream) { - if o.curr != nil { - return - } - o.curr = s -} - -// Removes the stream by disabling its key and removing it from the count of streams. -// If the stream is current the current is set to nil. -func (o *openstreams) remove(s *stream) { - o.num-- - s.key = 0 - if o.curr == s { - o.curr = nil - } -} - -func (o *openstreams) reset() { - o.num = 0 - o.curr = nil - o.key = time.Now().UnixNano() -} - -// Checks that the handle represents a stream but not necessarily a stream belonging -// to this set of open streams. -func (o openstreams) getUnsafe(h idb.StreamHandle) (*stream, error) { - stream, ok := h.(*stream) - if !ok || stream == nil { - return nil, errInvalidStream - } - return stream, nil -} - -func (o openstreams) isSafe(s *stream) error { - if s.key == o.key { - return nil - } - return errInvalidStream -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent/bolt_agent.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent/bolt_agent.go deleted file mode 100644 index e2d2a98..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent/bolt_agent.go +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 boltagent - -import ( - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata" - "runtime" -) - -var os = runtime.GOOS -var arch = runtime.GOARCH -var goVersion = runtime.Version() -var driverVersion = metadata.DriverVersion - -type BoltAgent struct { - product string - platform string - language string -} - -// New returns a BoltAgent containing immutable, preformatted driver information. -func New() *BoltAgent { - return &BoltAgent{ - product: fmt.Sprintf("neo4j-go/%s", driverVersion), - platform: fmt.Sprintf("%s; %s", os, arch), - language: fmt.Sprintf("Go/%s", goVersion), - } -} - -func (b *BoltAgent) Product() string { - return b.product -} - -func (b *BoltAgent) Platform() string { - return b.platform -} - -func (b *BoltAgent) Language() string { - return b.language -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/set.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/set.go deleted file mode 100644 index 2f04c29..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/set.go +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 collections - -type Set[T comparable] map[T]struct{} - -func NewSet[T comparable](values []T) Set[T] { - result := make(Set[T], len(values)) - for _, value := range values { - result[value] = struct{}{} - } - return result -} - -func (set Set[T]) Union(other Set[T]) { - set.AddAll(other.Values()) -} - -func (set Set[T]) AddAll(values []T) { - for _, value := range values { - set.Add(value) - } -} - -func (set Set[T]) Add(value T) { - set[value] = struct{}{} -} - -func (set Set[T]) RemoveAll(values []T) { - for _, value := range values { - set.Remove(value) - } -} - -func (set Set[T]) Remove(value T) { - delete(set, value) -} - -func (set Set[T]) Values() []T { - if len(set) == 0 { - return nil - } - result := make([]T, len(set)) - i := 0 - for value := range set { - result[i] = value - i++ - } - return result -} - -func (set Set[T]) Copy() Set[T] { - result := make(map[T]struct{}, len(set)) - for k, v := range set { - result[k] = v - } - return result -} - -func (set Set[T]) Contains(value T) bool { - _, ok := set[value] - return ok -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/slices.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/slices.go deleted file mode 100644 index a47b014..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/slices.go +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 collections - -func SliceContains[T comparable](items []T, expectedItem T) bool { - for _, item := range items { - if item == expectedItem { - return true - } - } - return false -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector/connector.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector/connector.go deleted file mode 100644 index 110e6bc..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector/connector.go +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 connector is responsible for connecting to a database server. -package connector - -import ( - "context" - "crypto/tls" - "errors" - "io" - "net" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/config" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type Connector struct { - SkipEncryption bool - SkipVerify bool - Log log.Logger - LogId string - RoutingContext map[string]string - Network string - Config *config.Config - SupplyConnection func(context.Context, string) (net.Conn, error) - TestKitDnsResolver func(string) []string -} - -func (c *Connector) Connect( - ctx context.Context, - address string, - auth *db.ReAuthToken, - errorListener bolt.ConnectionErrorListener, - boltLogger log.BoltLogger, -) (connection db.Connection, err error) { - if c.SupplyConnection == nil { - c.SupplyConnection = c.createConnection - } - - conn, err := c.SupplyConnection(ctx, address) - if err != nil { - errorListener.OnDialError(ctx, address, err) - return nil, err - } - - defer func() { - if err != nil && connection == nil { - if err := conn.Close(); err != nil { - c.Log.Warnf(log.Driver, address, "could not close socket after failed connection %s", err) - } - } - }() - - notificationConfig := db.NotificationConfig{ - MinSev: c.Config.NotificationsMinSeverity, - DisCats: c.Config.NotificationsDisabledCategories, - DisClas: c.Config.NotificationsDisabledClassifications, - } - - // TLS not requested - if c.SkipEncryption { - connection, err := bolt.Connect( - ctx, - address, - conn, - auth, - c.Config.UserAgent, - c.RoutingContext, - errorListener, - c.Log, - boltLogger, - notificationConfig, - c.Config.ReadBufferSize, - ) - if err != nil { - return nil, err - } - return connection, nil - } - - // TLS requested, continue with handshake - serverName, _, err := net.SplitHostPort(address) - if err != nil { - errorListener.OnDialError(ctx, address, err) - return nil, err - } - tlsConfig := c.tlsConfig(serverName) - tlsConn := tls.Client(conn, tlsConfig) - err = tlsConn.HandshakeContext(ctx) - if err != nil { - if err == io.EOF { - // Give a bit nicer error message - err = errors.New("remote end closed the connection, check that TLS is enabled on the server") - } - err = &errorutil.TlsError{Inner: err} - errorListener.OnDialError(ctx, address, err) - return nil, err - } - connection, err = bolt.Connect( - ctx, - address, - tlsConn, - auth, - c.Config.UserAgent, - c.RoutingContext, - errorListener, - c.Log, - boltLogger, - notificationConfig, - c.Config.ReadBufferSize, - ) - if err != nil { - return nil, err - } - return -} - -func (c Connector) createConnection(ctx context.Context, address string) (net.Conn, error) { - dialer := net.Dialer{Timeout: c.Config.SocketConnectTimeout} - if !c.Config.SocketKeepalive { - dialer.KeepAlive = -1 * time.Second // Turns keep-alive off - } - - if c.TestKitDnsResolver == nil { - c.Log.Debugf(log.Driver, c.LogId, "dialing %s", address) - return dialer.DialContext(ctx, c.Network, address) - } - - addresses := c.TestKitDnsResolver(address) - - if len(addresses) == 0 { - return nil, errors.New("TestKit DNS resolver returned no address") - } - - var ( - err error - con net.Conn - ) - for _, address := range addresses { - con, err = dialer.DialContext(ctx, c.Network, address) - if err == nil { - c.Log.Debugf(log.Driver, c.LogId, "dialing %s", address) - return con, nil - } - } - return nil, err -} - -func (c Connector) tlsConfig(serverName string) *tls.Config { - var config *tls.Config - if c.Config.TlsConfig != nil { - // Use Clone to safely copy the config without copying the mutex. - config = c.Config.TlsConfig.Clone() - } else { - config = &tls.Config{ - // Use RootCAs from the connector's config. - //lint:ignore SA1019 RootCAs is supported until 6.0 - RootCAs: c.Config.RootCAs, - // It's safe to set MinVersion and other settings here since we're initializing a new config. - MinVersion: tls.VersionTLS12, - } - } - - // Ensure MinVersion is set to at least TLS 1.2 if no version is specified. - if config.MinVersion == 0 { - config.MinVersion = tls.VersionTLS12 - } - - // Update the config with the client certificate, if provided. - if c.Config.ClientCertificateProvider != nil && !c.SkipEncryption { - cert := c.Config.ClientCertificateProvider.GetCertificate() - if cert != nil { - // Append the obtained certificate to the Certificates slice. - config.Certificates = append(config.Certificates, *cert) - } - } - - // Configure server name and whether to skip certificate verification. - config.ServerName = serverName - config.InsecureSkipVerify = c.SkipVerify - - return config -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/connection.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/connection.go deleted file mode 100644 index 3288232..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/connection.go +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db defines generic database functionality. -package db - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - iauth "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" - "math" - "time" -) - -// Definitions of these should correspond to public API -type AccessMode int - -const ( - WriteMode AccessMode = 0 - ReadMode AccessMode = 1 -) - -type ( - TxHandle uint64 - StreamHandle any -) - -type Command struct { - Cypher string - Params map[string]any - FetchSize int -} - -type TxConfig struct { - Mode AccessMode - Bookmarks []string - Timeout time.Duration - ImpersonatedUser string - Meta map[string]any - NotificationConfig NotificationConfig -} - -type NotificationConfig struct { - MinSev notifications.NotificationMinimumSeverityLevel - DisCats notifications.NotificationDisabledCategories - DisClas notifications.NotificationDisabledClassifications -} - -func (n *NotificationConfig) ToMeta(meta map[string]any, version db.ProtocolVersion) { - if n.MinSev != notifications.DefaultLevel { - meta["notifications_minimum_severity"] = string(n.MinSev) - } - - disabledKey := "notifications_disabled_categories" - if version.Minor >= 5 { - disabledKey = "notifications_disabled_classifications" - } - if n.DisCats.DisablesNone() || n.DisClas.DisablesNone() { - meta[disabledKey] = make([]string, 0) - } else { - if len(n.DisCats.DisabledCategories()) > 0 { - meta[disabledKey] = n.DisCats.DisabledCategories() - } - if len(n.DisClas.DisabledClassifications()) > 0 { - meta[disabledKey] = n.DisClas.DisabledClassifications() - } - } -} - -const DefaultTxConfigTimeout = math.MinInt - -// Connection defines an abstract database server connection. -type Connection interface { - Connect( - ctx context.Context, - minor int, - auth *ReAuthToken, - userAgent string, - routingContext map[string]string, - notificationConfig NotificationConfig, - ) error - - TxBegin(ctx context.Context, txConfig TxConfig, syncMessages bool) (TxHandle, error) - TxRollback(ctx context.Context, tx TxHandle) error - TxCommit(ctx context.Context, tx TxHandle) error - Run(ctx context.Context, cmd Command, txConfig TxConfig) (StreamHandle, error) - RunTx(ctx context.Context, tx TxHandle, cmd Command) (StreamHandle, error) - // Keys for the specified stream. - Keys(streamHandle StreamHandle) ([]string, error) - // Next moves to next item in the stream. - // If error is nil, either Record or Summary has a value, if Record is nil there are no more records. - // If error is non nil, neither Record or Summary has a value. - Next(ctx context.Context, streamHandle StreamHandle) (*db.Record, *db.Summary, error) - // Consume discards all records on the stream and returns the summary otherwise it will return the error. - Consume(ctx context.Context, streamHandle StreamHandle) (*db.Summary, error) - // Buffer buffers all records on the stream, records, summary and error will be received through call to Next - // The Connection implementation should preserve/buffer streams automatically if needed when new - // streams are created and the server doesn't support multiple streams. Use Buffer to force - // buffering before calling Reset to get all records and the bookmark. - Buffer(ctx context.Context, streamHandle StreamHandle) error - // Bookmark returns the bookmark and optionally its database from last committed transaction or last finished auto-commit transaction. - // The returned database is relevant for queries executed with the USE clause, since the returned database may be different from the session's database. - // Note that if there is an ongoing auto-commit transaction (stream active) the bookmark - // from that is not included, use Buffer or Consume to end the stream with a bookmark. - // Empty string if no bookmark. - Bookmark() string - // ServerName returns the name of the remote server - ServerName() string - // ConnId returns the connection id as assigned by the server ("" if not available) - ConnId() string - // ServerVersion returns the server version on pattern Neo4j/1.2.3 - ServerVersion() string - // IsAlive returns true if the connection is fully functional. - // Implementation of this should be passive, no pinging or similar since it might be - // called rather frequently. - IsAlive() bool - // HasFailed returns true if the connection has received a recoverable error (``FAILURE``). - HasFailed() bool - // Birthdate returns the point in time when this connection was established. - Birthdate() time.Time - // IdleDate returns the point in time since which the connection is idle - IdleDate() time.Time - // Reset resets connection to same state as directly after a connection. - // Active streams will be discarded and the bookmark will be lost. - Reset(ctx context.Context) - // ForceReset behaves like Reset except it also resets connections in the - // ready state (while Reset does not) - ForceReset(ctx context.Context) - // Close closes the database connection as well as any underlying connection. - // The instance should not be used after being closed. - Close(ctx context.Context) - // GetRoutingTable gets the routing table for specified database name or the default database if - // database equals DefaultDatabase. If the underlying connection does not support - // multiple databases, DefaultDatabase should be used as database. - // If user impersonation is used (impersonatedUser != "") and default database is used - // the database name in the returned routing table will contain the actual name of the - // configured default database for the impersonated user. If no impersonation is used - // database name in routing table will be set to the name of the requested database. - GetRoutingTable(ctx context.Context, context map[string]string, bookmarks []string, database, impersonatedUser string) (*RoutingTable, error) - // SetBoltLogger sets Bolt message logger on already initialized connections - SetBoltLogger(boltLogger log.BoltLogger) - // ReAuth enqueues a `LOGOFF` and `LOGON` message if the passed credentials differ - // or `ReAuthToken.ForceReAuth` is `true`. - // If `ReAuthToken.ForceReAuth` is `true` the messages will be sent and their responses received. - // If `ReAuthToken.FromSession` is `false`, the credentials changed, and the protocol version does not support - // re-auth (bolt 5.1 and earlier) the connection will be closed. - // If it's `true` (under otherwise same conditions) a `FeatureNotSupportedError` will be returned. - ReAuth(context.Context, *ReAuthToken) error - // Version returns the protocol version of the connection - Version() db.ProtocolVersion - // ResetAuth clears any authentication token held by this connection - ResetAuth() - // GetCurrentAuth returns the current authentication manager and token that this connection is authenticated with - GetCurrentAuth() (auth.TokenManager, iauth.Token) - // Telemetry sends telemetry information about the API usage to the server. - Telemetry(api telemetry.API, onSuccess func()) - // SetPinHomeDatabaseCallback registers a callback to update the session's cached home database. - // The callback is triggered on successful BEGIN or RUN responses containing a database name. - SetPinHomeDatabaseCallback(callback func(ctx context.Context, database string)) - // IsSsrEnabled returns true if the connection supports Server-Side Routing. - IsSsrEnabled() bool -} - -type RoutingTable struct { - TimeToLive int - DatabaseName string - Routers []string - Readers []string - Writers []string -} - -// Marker for using the default database instance. -const DefaultDatabase = "" - -// DatabaseSelector allows to select a database if the database server connection supports selecting which database instance on the server -// to connect to. Prior to Neo4j 4 there was only one database per server. -type DatabaseSelector interface { - // SelectDatabase should be called immediately after Reset. Not allowed to call multiple times with different - // databases without a reset in-between. - SelectDatabase(database string) - Database() string -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/database_selection.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/database_selection.go deleted file mode 100644 index 976bc5f..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/database_selection.go +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -// DatabaseSelection encapsulates the database name and whether it is guessed. -type DatabaseSelection struct { - Name string - IsHomeDbGuess bool -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/reauth_token.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/reauth_token.go deleted file mode 100644 index c3260e0..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/reauth_token.go +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -import "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - -type ReAuthToken struct { - Manager auth.TokenManager - FromSession bool - ForceReAuth bool -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/bolt.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/bolt.go deleted file mode 100644 index c2852d3..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/bolt.go +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import ( - "context" - "fmt" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "strings" - "time" -) - -const InvalidTransactionError = "invalid transaction handle" - -type ConnectionReadTimeout struct { - UserContext context.Context - ReadTimeout time.Duration - Err error -} - -func (crt *ConnectionReadTimeout) Error() string { - userDeadline := "N/A" - if deadline, ok := crt.UserContext.Deadline(); ok { - userDeadline = deadline.String() - } - return fmt.Sprintf( - "Timeout while reading from connection [server-side timeout hint: %s, user-provided context deadline: %s]: %s", - crt.ReadTimeout.String(), - userDeadline, - crt.Err) -} - -type ConnectionWriteTimeout struct { - UserContext context.Context - Err error -} - -func (cwt *ConnectionWriteTimeout) Error() string { - userDeadline := "N/A" - if deadline, ok := cwt.UserContext.Deadline(); ok { - userDeadline = deadline.String() - } - return fmt.Sprintf("Timeout while writing to connection [user-provided context deadline: %s]: %s", userDeadline, cwt.Err) -} - -type ConnectionReadCanceled struct { - Err error -} - -func (crc *ConnectionReadCanceled) Error() string { - return fmt.Sprintf("Reading from connection has been canceled: %s", crc.Err) -} - -type ConnectionWriteCanceled struct { - Err error -} - -func (cwc *ConnectionWriteCanceled) Error() string { - return fmt.Sprintf("Writing to connection has been canceled: %s", cwc.Err) -} - -type timeout interface { - Timeout() bool -} - -func IsTimeoutError(err error) bool { - if err == context.DeadlineExceeded { - return true - } - timeoutErr, ok := err.(timeout) - return ok && timeoutErr.Timeout() -} - -func IsFatalDuringDiscovery(err error) bool { - if _, ok := err.(*idb.FeatureNotSupportedError); ok { - return true - } - if err, ok := err.(*idb.Neo4jError); ok { - if err.Code == "Neo.ClientError.Database.DatabaseNotFound" || - err.Code == "Neo.ClientError.Transaction.InvalidBookmark" || - err.Code == "Neo.ClientError.Transaction.InvalidBookmarkMixture" || - err.Code == "Neo.ClientError.Statement.TypeError" || - err.Code == "Neo.ClientError.Statement.ArgumentError" || - err.Code == "Neo.ClientError.Request.Invalid" { - return true - } - if strings.HasPrefix(err.Code, "Neo.ClientError.Security.") && - err.Code != "Neo.ClientError.Security.AuthorizationExpired" { - return true - } - } - if err == context.DeadlineExceeded || - err == context.Canceled { - return true - } - return false -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/errors.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/errors.go deleted file mode 100644 index 8ffc8f0..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/errors.go +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import ( - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql" - "io" - "net" -) - -const unknownNeo4jCode = "Neo.DatabaseError.General.UnknownError" -const unknownMessage = "An unknown error occurred" -const unknownGqlStatus = "50N42" -const unknownGqlStatusDescription = "error: general processing exception - unexpected error." - -func CombineAllErrors(errs ...error) error { - if len(errs) == 0 { - return nil - } - result := errs[0] - for _, err := range errs[1:] { - result = CombineErrors(result, err) - } - return result -} - -func CombineErrors(err1, err2 error) error { - if err2 == nil { - return err1 - } - if err1 == nil { - return err2 - } - return fmt.Errorf("error %v occurred after previous error %w", err2, err1) -} - -func WrapError(err error) error { - if err == nil { - return nil - } - if err == io.EOF { - return &ConnectivityError{Inner: err} - } - switch e := err.(type) { - case *db.UnsupportedTypeError: - // Usage of a type not supported by database network protocol or feature - // not supported by current version or edition. - return &UsageError{Message: err.Error()} - case *db.FeatureNotSupportedError: - return &UsageError{Message: fmt.Sprintf("feature not supported: %s", err.Error())} - case *PoolClosed: - return &UsageError{Message: err.Error()} - case *TlsError, net.Error: - return &ConnectivityError{Inner: err} - case *PoolTimeout, *PoolFull: - return &ConnectivityError{Inner: err} - case *ReadRoutingTableError: - return &ConnectivityError{Inner: err} - case *CommitFailedDeadError: - return &ConnectivityError{Inner: err} - case *ConnectionReadTimeout: - return &ConnectivityError{Inner: err} - case *ConnectionWriteTimeout: - return &ConnectivityError{Inner: err} - case *db.Neo4jError: - if e.Code == "Neo.ClientError.Security.TokenExpired" { - return &TokenExpiredError{Code: e.Code, Message: e.Msg, cause: e} - } - } - if err != nil && err.Error() == InvalidTransactionError { - return &UsageError{Message: InvalidTransactionError} - } - return err -} - -// UsageError represents errors caused by incorrect usage of the driver API. -// This does not include Cypher syntax (those errors will be Neo4jError). -type UsageError struct { - Message string -} - -func (e *UsageError) Error() string { - return e.Message -} - -// ConnectivityError represent errors caused by the driver not being able to connect to Neo4j services, -// or lost connections. -type ConnectivityError struct { - Inner error -} - -func (e *ConnectivityError) Error() string { - return fmt.Sprintf("ConnectivityError: %s", e.Inner.Error()) -} - -// TokenExpiredError represent errors caused by the driver not being able to connect to Neo4j services, -// or lost connections. -type TokenExpiredError struct { - Code string - Message string - cause *db.Neo4jError -} - -func (e *TokenExpiredError) Unwrap() error { - return e.cause -} - -func (e *TokenExpiredError) Error() string { - return fmt.Sprintf("TokenExpiredError: %s (%s)", e.Code, e.Message) -} - -func PolyfillGqlError(dberr *db.Neo4jError) { - if dberr.Code == "" { - dberr.Code = unknownNeo4jCode - } - if dberr.Msg == "" { - dberr.Msg = unknownMessage - } - if dberr.GqlStatus == "" { - dberr.GqlStatus = unknownGqlStatus - } - if dberr.GqlStatusDescription == "" { - dberr.GqlStatusDescription = fmt.Sprintf("%s %s", unknownGqlStatusDescription, dberr.Msg) - } - // Ensure diagnostic record exists or fill missing keys - defaultRecord := gql.NewDefaultDiagnosticRecord() - if dberr.GqlDiagnosticRecord == nil { - dberr.GqlDiagnosticRecord = defaultRecord - } else { - // Polyfill any missing keys from default record - for key, value := range defaultRecord { - if _, exists := dberr.GqlDiagnosticRecord[key]; !exists { - dberr.GqlDiagnosticRecord[key] = value - } - } - } - // Extract classification from diagnostic record - if classification, ok := dberr.GqlDiagnosticRecord["_classification"].(string); ok { - // Set the raw classification string - dberr.GqlRawClassification = classification - switch classification { - case string(db.ClientError): - dberr.GqlClassification = db.ClientError - case string(db.DatabaseError): - dberr.GqlClassification = db.DatabaseError - case string(db.TransientError): - dberr.GqlClassification = db.TransientError - default: - dberr.GqlClassification = db.UnknownError - } - } else { - dberr.GqlRawClassification = "" - dberr.GqlClassification = db.UnknownError - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/pool.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/pool.go deleted file mode 100644 index 9340a5d..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/pool.go +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import "fmt" - -type PoolTimeout struct { - Err error - Servers []string -} - -func (e *PoolTimeout) Error() string { - return fmt.Sprintf("Timeout while waiting for connection to any of [%s]: %s", e.Servers, e.Err) -} - -type PoolFull struct { - Servers []string -} - -func (e *PoolFull) Error() string { - return fmt.Sprintf("No idle connections on any of [%s]", e.Servers) -} - -type PoolClosed struct { -} - -func (e *PoolClosed) Error() string { - return "Pool closed" -} - -type PoolOutOfServers struct { -} - -func (e *PoolOutOfServers) Error() string { - return "Pool could not find any servers to connect to" -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/retry.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/retry.go deleted file mode 100644 index 2524d90..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/retry.go +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import "fmt" - -type CommitFailedDeadError struct { - Inner error -} - -func (e *CommitFailedDeadError) Error() string { - return fmt.Sprintf("Connection lost during commit: %s", e.Inner) -} - -// TransactionExecutionLimit error indicates that a retryable transaction has -// failed due to reaching a limit like a timeout or maximum number of attempts. -type TransactionExecutionLimit struct { - Cause string - Errors []error -} - -func (e *TransactionExecutionLimit) Error() string { - cause := e.Cause - var err error - l := len(e.Errors) - - if l > 0 { - err = e.Errors[l-1] - } - return fmt.Sprintf("TransactionExecutionLimit: %s after %d attempts, last error: %s", cause, len(e.Errors), err) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/router.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/router.go deleted file mode 100644 index 7e4ae08..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/router.go +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import ( - "fmt" -) - -type ReadRoutingTableError struct { - Err error - Server string -} - -func (e *ReadRoutingTableError) Error() string { - if e.Err != nil || len(e.Server) > 0 { - return fmt.Sprintf("Unable to retrieve routing table from %s: %s", e.Server, e.Err) - } - return "Unable to retrieve routing table, no router provided" -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/tls.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/tls.go deleted file mode 100644 index d94510a..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/tls.go +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -// TlsError encapsulates all errors related to TLS connection creation -// This is needed since the tls package does not provide a common error type -// à la net.Error, and a common type is needed to properly classify the error -// for Testkit -type TlsError struct { - Inner error -} - -func (e *TlsError) Error() string { - return e.Inner.Error() -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql/diagnostic_record.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql/diagnostic_record.go deleted file mode 100644 index 599d733..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql/diagnostic_record.go +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 gql - -func NewDefaultDiagnosticRecord() map[string]any { - return map[string]any{ - "OPERATION": "", - "OPERATION_CODE": "0", - "CURRENT_SCHEMA": "/", - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb/cache.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb/cache.go deleted file mode 100644 index d08ce27..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb/cache.go +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 homedb - -import ( - "encoding/json" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "math" - "sort" - "sync" - "time" -) - -// DefaultCacheMaxSize defines the maximum number of entries the cache can hold. -const DefaultCacheMaxSize = 1000 - -const keyScheme = "scheme" -const schemeNone = "none" -const schemeBasic = "basic" -const schemeKerberos = "kerberos" -const schemeBearer = "bearer" -const keyPrincipal = "principal" -const keyCredentials = "credentials" - -type cacheEntry struct { - database string - lastUsed time.Time -} - -type Cache struct { - maxSize int - pruneFactor int - cache map[string]*cacheEntry - enabled bool - mu sync.RWMutex -} - -// NewCache creates and returns a new cache instance with the given max size. -func NewCache(maxSize int) (*Cache, error) { - if maxSize <= 0 { - return nil, &errorutil.UsageError{Message: "Maximum cache size must be greater than 0"} - } - - c := 0.01 - pruneFactor := int(math.Max(1, math.Round(c*float64(maxSize)*math.Log(float64(maxSize))))) - - return &Cache{ - maxSize: maxSize, - pruneFactor: pruneFactor, - cache: make(map[string]*cacheEntry, maxSize+1), - enabled: false, - }, nil -} - -// Get retrieves the home database for a given user, if it exists. -// It updates the `lastUsed` timestamp for the entry. -func (c *Cache) Get(user string) (string, bool) { - if !c.IsEnabled() { - return "", false - } - - c.mu.Lock() - defer c.mu.Unlock() - - entry, exists := c.cache[user] - if !exists { - return "", false - } - entry.lastUsed = time.Now() - return entry.database, true -} - -// Set adds or updates an entry in the cache. -// If the cache exceeds its max size, it prunes the least recently used entries. -func (c *Cache) Set(user string, database string) { - c.mu.Lock() - defer c.mu.Unlock() - - c.cache[user] = &cacheEntry{ - database: database, - lastUsed: time.Now(), - } - c.prune() -} - -// ComputeKey generates a cache key based on user impersonation and an optional session auth token. -func (c *Cache) ComputeKey(impersonatedUser string, sessionAuth *auth.Token) (string, error) { - // If an impersonated user is provided, use it as the key. - if impersonatedUser != "" { - return "basic:" + impersonatedUser, nil - } - - // If no session authentication token is provided, return a default key. - if sessionAuth == nil { - return "DEFAULT", nil - } - - // Process based on auth scheme - if scheme, ok := sessionAuth.Tokens[keyScheme].(string); ok { - switch scheme { - case schemeBasic: - if principal, ok := sessionAuth.Tokens[keyPrincipal].(string); ok { - return "basic:" + principal, nil - } - return "basic:", nil - case schemeKerberos: - if credentials, ok := sessionAuth.Tokens[keyCredentials].(string); ok { - return "kerberos:" + credentials, nil - } - case schemeBearer: - if credentials, ok := sessionAuth.Tokens[keyCredentials].(string); ok { - return "bearer:" + credentials, nil - } - case schemeNone: - return "none", nil - default: - return marshalCacheKey(scheme, sessionAuth.Tokens) - } - } - return marshalCacheKey("unknown", sessionAuth.Tokens) -} - -// SetEnabled enables or disables the cache. -func (c *Cache) SetEnabled(enabled bool) { - c.mu.Lock() - defer c.mu.Unlock() - c.enabled = enabled -} - -// IsEnabled checks whether the cache is enabled. -func (c *Cache) IsEnabled() bool { - c.mu.RLock() - defer c.mu.RUnlock() - return c.enabled -} - -// prune removes a chunk of the least recently used entries if the cache exceeds its max size. -func (c *Cache) prune() { - if len(c.cache) <= c.maxSize { - return - } - - // Collect all entries to a slice ready to be sorted. - entries := make([]struct { - user string - entry *cacheEntry - }, 0, len(c.cache)) - - for user, entry := range c.cache { - entries = append(entries, struct { - user string - entry *cacheEntry - }{user: user, entry: entry}) - } - - // Sort the entries by `lastUsed` (oldest first). - sort.Slice(entries, func(i, j int) bool { - return entries[i].entry.lastUsed.Before(entries[j].entry.lastUsed) - }) - - // Ensure we do not prune more than the number of entries in the cache - pruneCount := c.pruneFactor - if pruneCount > len(entries) { - pruneCount = len(entries) - } - - // Remove the least recently used entries - for i := 0; i < pruneCount; i++ { - delete(c.cache, entries[i].user) - } -} - -// marshalCacheKey returns a deterministic JSON string representation of a cache key built from the scheme and tokens. -func marshalCacheKey(scheme string, tokens map[string]any) (string, error) { - b, err := json.Marshal(struct { - Scheme string `json:"scheme"` - Tokens map[string]any `json:"tokens"` - }{ - Scheme: scheme, - Tokens: tokens, - }) - return string(b), err -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata/metadata.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata/metadata.go deleted file mode 100644 index acfd6e2..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata/metadata.go +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 metadata - -const DriverVersion = "5.28.4" diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications/notifications.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications/notifications.go deleted file mode 100644 index b8ef26c..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications/notifications.go +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 notifications - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" -) - -func newSuccessGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "00000", - StatusDescription: "note: successful completion", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -func newNoDataGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "02000", - StatusDescription: "note: no data", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -func newOmittedResultGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "00001", - StatusDescription: "note: successful completion - omitted result", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -func newUnknownWarningResultGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "01N42", - StatusDescription: "warn: unknown warning", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -func newUnknownInformationResultGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "03N42", - StatusDescription: "info: unknown notification", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -// ToNotification returns a db.Notification that corresponds to the given db.GqlStatusObject. -// It maps fields from the status to their respective notification fields. -func ToNotification(gqlStatusObject db.GqlStatusObject) *db.Notification { - return &db.Notification{ - //lint:ignore SA1019 Code is supported at least until 6.0 - Code: gqlStatusObject.Code, - //lint:ignore SA1019 Title is supported at least until 6.0 - Title: gqlStatusObject.Title, - //lint:ignore SA1019 Description is supported at least until 6.0 - Description: gqlStatusObject.Description, - Position: gqlStatusObject.Position, - Severity: gqlStatusObject.Severity, - Category: gqlStatusObject.Classification, - } -} - -// ToGqlStatusObject returns a db.GqlStatusObject that corresponds to the given db.Notification. -// It maps fields from the notification to their respective status fields. -func ToGqlStatusObject(notification db.Notification) *db.GqlStatusObject { - var defaultStatus *db.GqlStatusObject - if notification.Severity == string(notifications.Warning) { - defaultStatus = newUnknownWarningResultGqlStatusObject() - } else { - defaultStatus = newUnknownInformationResultGqlStatusObject() - } - - statusDescription := notification.Description - if statusDescription == "" { - statusDescription = defaultStatus.StatusDescription - } - - diagnosticRecord := gql.NewDefaultDiagnosticRecord() - - if notification.Position != nil { - diagnosticRecord["_position"] = map[string]any{ - "offset": notification.Position.Offset, - "line": notification.Position.Line, - "column": notification.Position.Column, - } - } - if notification.Severity != "" { - diagnosticRecord["_severity"] = notification.Severity - } - if notification.Category != "" { - diagnosticRecord["_classification"] = notification.Category - } - - return &db.GqlStatusObject{ - Code: notification.Code, - Title: notification.Title, - Description: notification.Description, - GqlStatus: defaultStatus.GqlStatus, - StatusDescription: statusDescription, - Position: notification.Position, - Classification: notification.Category, - Severity: notification.Severity, - DiagnosticRecord: diagnosticRecord, - IsNotification: true, - } -} - -// ToGqlStatusObjectFromSummary creates a new db.GqlStatusObject based on the context of the db.StreamSummary. -func ToGqlStatusObjectFromSummary(summary db.StreamSummary) *db.GqlStatusObject { - if summary.HadRecord { - return newSuccessGqlStatusObject() - } else if summary.HadKey { - return newNoDataGqlStatusObject() - } else { - return newOmittedResultGqlStatusObject() - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/errors.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/errors.go deleted file mode 100644 index 416fbc3..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/errors.go +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 packstream handles serialization of data sent to database server and -// deserialization of data received from database server. -package packstream - -type OverflowError struct { - msg string -} - -func (e *OverflowError) Error() string { - return e.msg -} - -type IoError struct{} - -func (e *IoError) Error() string { - return "IO error" -} - -type UnpackError struct { - msg string -} - -func (e *UnpackError) Error() string { - return e.msg -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/packer.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/packer.go deleted file mode 100644 index 4c6230b..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/packer.go +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 packstream - -import ( - "encoding/binary" - "fmt" - "math" -) - -type Packer struct { - buf []byte - err error -} - -func (p *Packer) Begin(buf []byte) { - p.buf = buf - p.err = nil -} - -func (p *Packer) End() ([]byte, error) { - return p.buf, p.err - -} - -func (p *Packer) setErr(err error) { - if p.err == nil { - p.err = err - } -} - -func (p *Packer) StructHeader(tag byte, num int) { - if num > 0x0f { - p.setErr(&OverflowError{msg: "Trying to pack struct with too many fields"}) - return - } - - p.buf = append(p.buf, 0xb0+byte(num), byte(tag)) -} - -func (p *Packer) Int64(i int64) { - switch { - case int64(-0x10) <= i && i < int64(0x80): - p.buf = append(p.buf, byte(i)) - case int64(-0x80) <= i && i < int64(-0x10): - p.buf = append(p.buf, 0xc8, byte(i)) - case int64(-0x8000) <= i && i < int64(0x8000): - buf := [3]byte{0xc9} - binary.BigEndian.PutUint16(buf[1:], uint16(i)) - p.buf = append(p.buf, buf[:]...) - case int64(-0x80000000) <= i && i < int64(0x80000000): - buf := [5]byte{0xca} - binary.BigEndian.PutUint32(buf[1:], uint32(i)) - p.buf = append(p.buf, buf[:]...) - default: - buf := [9]byte{0xcb} - binary.BigEndian.PutUint64(buf[1:], uint64(i)) - p.buf = append(p.buf, buf[:]...) - } -} - -func (p *Packer) Int32(i int32) { - p.Int64(int64(i)) -} - -func (p *Packer) Int16(i int16) { - p.Int64(int64(i)) -} - -func (p *Packer) Int8(i int8) { - p.Int64(int64(i)) -} - -func (p *Packer) Int(i int) { - p.Int64(int64(i)) -} - -func (p *Packer) Uint64(i uint64) { - p.checkOverflowInt(i) - p.Int64(int64(i)) -} - -func (p *Packer) Uint32(i uint32) { - p.Int64(int64(i)) -} - -func (p *Packer) Uint16(i uint16) { - p.Int64(int64(i)) -} - -func (p *Packer) Uint8(i uint8) { - p.Int64(int64(i)) -} - -func (p *Packer) Float64(f float64) { - buf := [9]byte{0xc1} - binary.BigEndian.PutUint64(buf[1:], math.Float64bits(f)) - p.buf = append(p.buf, buf[:]...) -} - -func (p *Packer) Float32(f float32) { - p.Float64(float64(f)) -} - -func (p *Packer) listHeader(ll int, shortOffset, longOffset byte) { - l := int64(ll) - hdr := make([]byte, 0, 1+4) - if l < 0x10 { - hdr = append(hdr, shortOffset+byte(l)) - } else { - switch { - case l < 0x100: - hdr = append(hdr, []byte{longOffset, byte(l)}...) - case l < 0x10000: - hdr = hdr[:1+2] - hdr[0] = longOffset + 1 - binary.BigEndian.PutUint16(hdr[1:], uint16(l)) - case l < math.MaxUint32: - hdr = hdr[:1+4] - hdr[0] = longOffset + 2 - binary.BigEndian.PutUint32(hdr[1:], uint32(l)) - default: - p.err = &OverflowError{msg: fmt.Sprintf("Trying to pack too large list of size %d ", l)} - return - } - } - p.buf = append(p.buf, hdr...) -} - -func (p *Packer) String(s string) { - p.listHeader(len(s), 0x80, 0xd0) - p.buf = append(p.buf, []byte(s)...) -} - -func (p *Packer) Strings(ss []string) { - p.listHeader(len(ss), 0x90, 0xd4) - for _, s := range ss { - p.String(s) - } -} - -func (p *Packer) Ints(ii []int) { - p.listHeader(len(ii), 0x90, 0xd4) - for _, i := range ii { - p.Int(i) - } -} - -func (p *Packer) Int64s(ii []int64) { - p.listHeader(len(ii), 0x90, 0xd4) - for _, i := range ii { - p.Int64(i) - } -} - -func (p *Packer) Float64s(ii []float64) { - p.listHeader(len(ii), 0x90, 0xd4) - for _, i := range ii { - p.Float64(i) - } -} - -func (p *Packer) ArrayHeader(l int) { - p.listHeader(l, 0x90, 0xd4) -} - -func (p *Packer) MapHeader(l int) { - p.listHeader(l, 0xa0, 0xd8) -} - -func (p *Packer) BytesMap(m map[string][]byte) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.Bytes(v) - } -} - -func (p *Packer) IntMap(m map[string]int) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.Int(v) - } -} - -func (p *Packer) Int64Map(m map[string]int64) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.Int64(v) - } -} - -func (p *Packer) StringMap(m map[string]string) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.String(v) - } -} - -func (p *Packer) Float64Map(m map[string]float64) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.Float64(v) - } -} - -func (p *Packer) Bytes(b []byte) { - hdr := make([]byte, 0, 1+4) - l := int64(len(b)) - switch { - case l < 0x100: - hdr = append(hdr, 0xcc, byte(l)) - case l < 0x10000: - hdr = hdr[:1+2] - hdr[0] = 0xcd - binary.BigEndian.PutUint16(hdr[1:], uint16(l)) - case l < 0x100000000: - hdr = hdr[:1+4] - hdr[0] = 0xce - binary.BigEndian.PutUint32(hdr[1:], uint32(l)) - default: - p.err = &OverflowError{msg: fmt.Sprintf("Trying to pack too large byte array of size %d", l)} - return - } - p.buf = append(p.buf, hdr...) - p.buf = append(p.buf, b...) -} - -func (p *Packer) Bool(b bool) { - if b { - p.buf = append(p.buf, 0xc3) - return - } - p.buf = append(p.buf, 0xc2) -} - -func (p *Packer) Nil() { - p.buf = append(p.buf, 0xc0) -} - -func (p *Packer) checkOverflowInt(i uint64) { - if i > math.MaxInt64 { - p.err = &OverflowError{msg: "Trying to pack uint64 that doesn't fit into int64"} - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/unpacker.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/unpacker.go deleted file mode 100644 index 2e9e878..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/unpacker.go +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 packstream - -import ( - "encoding/binary" - "fmt" - "math" -) - -const ( - PackedUndef = iota // Undefined must be zero! - PackedInt - PackedFloat - PackedStr - PackedStruct - PackedByteArray - PackedArray - PackedMap - PackedNil - PackedTrue - PackedFalse -) - -type Unpacker struct { - buf []byte - off uint32 - len uint32 - mrk marker - Err error - Curr int // Packed type -} - -func (u *Unpacker) Reset(buf []byte) { - u.buf = buf - u.off = 0 - u.len = uint32(len(buf)) - u.Err = nil - u.mrk.typ = PackedUndef - u.Curr = PackedUndef -} - -func (u *Unpacker) setErr(err error) { - if u.Err == nil { - u.Err = err - } -} - -func (u *Unpacker) Next() { - i := u.pop() - u.mrk = markers[i] - u.Curr = u.mrk.typ -} - -func (u *Unpacker) Len() uint32 { - if u.mrk.numlenbytes == 0 { - return uint32(u.mrk.shortlen) - } - return u.readlen(uint32(u.mrk.numlenbytes)) -} - -func (u *Unpacker) Int() int64 { - n := u.mrk.numlenbytes - if n == 0 { - return int64(u.mrk.shortlen) - } - - end := u.off + uint32(n) - if end > u.len { - u.setErr(&IoError{}) - return 0 - } - i := int64(0) - switch n { - case 1: - i = int64(int8(u.buf[u.off])) - case 2: - i = int64(int16(binary.BigEndian.Uint16(u.buf[u.off:]))) - case 4: - i = int64(int32(binary.BigEndian.Uint32(u.buf[u.off:]))) - case 8: - i = int64(binary.BigEndian.Uint64(u.buf[u.off:])) - default: - u.setErr(&UnpackError{msg: fmt.Sprintf("Illegal int length: %d", n)}) - return 0 - } - u.off = end - return i -} - -func (u *Unpacker) Float() float64 { - buf := u.read(8) - if u.Err != nil { - return math.NaN() - } - return math.Float64frombits(binary.BigEndian.Uint64(buf)) -} - -func (u *Unpacker) StructTag() byte { - return u.pop() -} - -func (u *Unpacker) String() string { - n := uint32(u.mrk.numlenbytes) - if n == 0 { - n = uint32(u.mrk.shortlen) - } else { - n = u.readlen(n) - } - return string(u.read(n)) -} - -func (u *Unpacker) Bool() bool { - switch u.Curr { - case PackedTrue: - return true - case PackedFalse: - return false - default: - u.setErr(&UnpackError{msg: "Illegal value for bool"}) - return false - } -} - -func (u *Unpacker) ByteArray() []byte { - n := u.Len() - buf := u.read(n) - out := make([]byte, n) - copy(out, buf) - return out -} - -func (u *Unpacker) pop() byte { - if u.off < u.len { - x := u.buf[u.off] - u.off += 1 - return x - } - u.setErr(&IoError{}) - return 0 -} - -func (u *Unpacker) read(n uint32) []byte { - start := u.off - end := u.off + n - if end > u.len { - u.setErr(&IoError{}) - return []byte{} - } - u.off = end - return u.buf[start:end] -} - -func (u *Unpacker) readlen(n uint32) uint32 { - end := u.off + n - if end > u.len { - u.setErr(&IoError{}) - return 0 - } - l := uint32(0) - switch n { - case 1: - l = uint32(u.buf[u.off]) - case 2: - l = uint32(binary.BigEndian.Uint16(u.buf[u.off:])) - case 4: - l = uint32(binary.BigEndian.Uint32(u.buf[u.off:])) - default: - u.setErr(&UnpackError{msg: fmt.Sprintf("Illegal length: %d (%d)", n, u.Curr)}) - } - u.off = end - return l -} - -type marker struct { - typ int - shortlen int8 - numlenbytes byte -} - -var markers [0x100]marker - -func init() { - i := 0 - // Tiny int - for ; i < 0x80; i++ { - markers[i] = marker{typ: PackedInt, shortlen: int8(i)} - } - // Tiny string - for ; i < 0x90; i++ { - markers[i] = marker{typ: PackedStr, shortlen: int8(i - 0x80)} - } - // Tiny array - for ; i < 0xa0; i++ { - markers[i] = marker{typ: PackedArray, shortlen: int8(i - 0x90)} - } - // Tiny map - for ; i < 0xb0; i++ { - markers[i] = marker{typ: PackedMap, shortlen: int8(i - 0xa0)} - } - // Struct - for ; i < 0xc0; i++ { - markers[i] = marker{typ: PackedStruct, shortlen: int8(i - 0xb0)} - } - - markers[0xc0] = marker{typ: PackedNil} - markers[0xc1] = marker{typ: PackedFloat, numlenbytes: 8} - markers[0xc2] = marker{typ: PackedFalse} - markers[0xc3] = marker{typ: PackedTrue} - - markers[0xc8] = marker{typ: PackedInt, numlenbytes: 1} - markers[0xc9] = marker{typ: PackedInt, numlenbytes: 2} - markers[0xca] = marker{typ: PackedInt, numlenbytes: 4} - markers[0xcb] = marker{typ: PackedInt, numlenbytes: 8} - - markers[0xcc] = marker{typ: PackedByteArray, numlenbytes: 1} - markers[0xcd] = marker{typ: PackedByteArray, numlenbytes: 2} - markers[0xce] = marker{typ: PackedByteArray, numlenbytes: 4} - - markers[0xd0] = marker{typ: PackedStr, numlenbytes: 1} - markers[0xd1] = marker{typ: PackedStr, numlenbytes: 2} - markers[0xd2] = marker{typ: PackedStr, numlenbytes: 4} - - markers[0xd4] = marker{typ: PackedArray, numlenbytes: 1} - markers[0xd5] = marker{typ: PackedArray, numlenbytes: 2} - markers[0xd6] = marker{typ: PackedArray, numlenbytes: 4} - - markers[0xd8] = marker{typ: PackedMap, numlenbytes: 1} - markers[0xd9] = marker{typ: PackedMap, numlenbytes: 2} - markers[0xda] = marker{typ: PackedMap, numlenbytes: 4} - - for i = 0xf0; i < 0x100; i++ { - markers[i] = marker{typ: PackedInt, shortlen: int8(i - 0x100)} - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/pool.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/pool.go deleted file mode 100644 index 60be6c9..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/pool.go +++ /dev/null @@ -1,571 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 pool handles the database connection pool. -package pool - -// Thread safe - -import ( - "container/list" - "context" - "math" - "sort" - "sync" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/config" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// DefaultConnectionLivenessCheckTimeout disables the liveness check of connections. -// Liveness checks are performed before a connection is deemed idle enough to be reset. -const DefaultConnectionLivenessCheckTimeout = math.MaxInt64 - -type Connect func(context.Context, string, *idb.ReAuthToken, bolt.ConnectionErrorListener, log.BoltLogger) (idb.Connection, error) - -type poolRouter interface { - InvalidateWriter(db string, server string) - InvalidateReader(db string, server string) - InvalidateServer(server string) -} - -type qitem struct { - wakeup chan bool -} - -type Pool struct { - config *config.Config - connect Connect - router poolRouter - servers map[string]*server - serversMut sync.Mutex - queueMut sync.Mutex - queue list.List - closed bool - log log.Logger - logId string - cache *homedb.Cache - ssrTracker *ssrTracker -} - -type serverPenalty struct { - name string - penalty uint32 -} - -func New(config *config.Config, connect Connect, logger log.Logger, logId string, cache *homedb.Cache) *Pool { - // Means infinite life, simplifies checking later on - - p := &Pool{ - config: config, - connect: connect, - router: nil, - servers: make(map[string]*server), - serversMut: sync.Mutex{}, - queueMut: sync.Mutex{}, - logId: logId, - log: logger, - cache: cache, - ssrTracker: &ssrTracker{}, - } - p.log.Infof(log.Pool, p.logId, "Created") - return p -} - -func (p *Pool) SetRouter(router poolRouter) { - p.router = router -} - -func (p *Pool) Close(ctx context.Context) { - p.closed = true - p.queueMut.Lock() - for e := p.queue.Front(); e != nil; e = e.Next() { - queuedRequest := e.Value.(*qitem) - p.queue.Remove(e) - queuedRequest.wakeup <- true - } - p.queueMut.Unlock() - // Go through each server and close all connections to it - p.serversMut.Lock() - pendingConnections := 0 - for _, s := range p.servers { - s.startClosing(ctx, p.closeConnection) - pendingConnections += s.size() - } - p.serversMut.Unlock() - if pendingConnections == 0 { - p.log.Infof(log.Pool, p.logId, "Closed") - } else { - p.log.Warnf( - log.Pool, - p.logId, - "Called close with %d in-flight connections (will be closed when work is done).", - pendingConnections, - ) - } -} - -// For testing -func (p *Pool) queueSize() int { - p.queueMut.Lock() - defer p.queueMut.Unlock() - return p.queue.Len() -} - -// For testing -func (p *Pool) getServers() map[string]*server { - p.serversMut.Lock() - defer p.serversMut.Unlock() - servers := make(map[string]*server) - for k, v := range p.servers { - servers[k] = v - } - return servers -} - -// CleanUp prunes all old connection on all the servers, this makes sure that servers -// gets removed from the map at some point in time. If there is a noticed -// failed connect still active we should wait a while with removal to get -// prioritization right. -func (p *Pool) CleanUp(ctx context.Context) { - p.serversMut.Lock() - defer p.serversMut.Unlock() - now := itime.Now() - for n, s := range p.servers { - p.removeIdleOlderThanLocked(ctx, s, now, p.config.MaxConnectionLifetime) - if s.size() == 0 && !s.hasFailedConnect(now) { - delete(p.servers, n) - } - } -} - -func (p *Pool) getPenaltiesForServers(ctx context.Context, serverNames []string) []serverPenalty { - p.serversMut.Lock() - defer p.serversMut.Unlock() - - // Retrieve penalty for each server - penalties := make([]serverPenalty, len(serverNames)) - now := itime.Now() - for i, n := range serverNames { - s := p.servers[n] - penalties[i].name = n - if s != nil { - // Make sure that we don't get a too old connection - p.removeIdleOlderThanLocked(ctx, s, now, p.config.MaxConnectionLifetime) - penalties[i].penalty = s.calculatePenalty(now) - } else { - penalties[i].penalty = newConnectionPenalty - } - } - return penalties -} - -func (p *Pool) anyHasCapacity(serverNames []string) bool { - p.serversMut.Lock() - defer p.serversMut.Unlock() - for _, serverName := range serverNames { - srv := p.servers[serverName] - if srv != nil { - if srv.numIdle() > 0 || srv.size() < p.config.MaxConnectionPoolSize { - return true - } - } - } - return false -} - -func (p *Pool) Borrow( - ctx context.Context, - getServerNames func() []string, - wait bool, - boltLogger log.BoltLogger, - idlenessTimeout time.Duration, - auth *idb.ReAuthToken, -) (idb.Connection, error) { - for { - if err := p.checkClosed(); err != nil { - return nil, err - } - serverNames := getServerNames() - if len(serverNames) == 0 { - return nil, &errorutil.PoolOutOfServers{} - } - p.log.Debugf(log.Pool, p.logId, "Trying to borrow connection from %s", serverNames) - // Retrieve penalty for each server - penalties := p.getPenaltiesForServers(ctx, serverNames) - // Sort server penalties by lowest penalty - sort.Slice(penalties, func(i, j int) bool { - return penalties[i].penalty < penalties[j].penalty - }) - - var err error - - var conn idb.Connection - for _, s := range penalties { - conn, err = p.tryBorrow(ctx, s.name, boltLogger, idlenessTimeout, auth) - if conn != nil { - // Update the cache state after borrowing a connection since ssr support may have changed. - p.updateCacheState() - return conn, nil - } - - if errorutil.IsTimeoutError(err) { - p.log.Warnf(log.Pool, p.logId, "Borrow time-out") - return nil, &errorutil.PoolTimeout{Servers: serverNames, Err: err} - } - if errorutil.IsFatalDuringDiscovery(err) { - return nil, err - } - } - - if err != nil { - // Intentionally return last error from last connection attempt to make it easier to - // see connection errors for users. - return nil, err - } - - if !wait { - return nil, &errorutil.PoolFull{Servers: serverNames} - } - - // Wait for a matching connection to be returned from another thread. - p.queueMut.Lock() - // By owning the queue lock, we are guaranteed that every call to Return from now on, until we release the - // lock, will notify us (or another waiter). To avoid starving this thread, we have to check once more whether - // any call to Return between checking for capacity above and acquiring the lock happened. In that case, we - // are no longer guaranteed to be notified, so we have to start over. - if p.anyHasCapacity(serverNames) { - p.queueMut.Unlock() - continue - } - // Add a waiting request to the queue and unlock the queue to let other threads that return - // their connections access the queue. - q := &qitem{ - wakeup: make(chan bool, 1), - } - e := p.queue.PushBack(q) - p.queueMut.Unlock() - - p.log.Warnf(log.Pool, p.logId, "Borrow queued") - // Wait for either a wake-up signal that indicates that we got a connection or a timeout. - select { - case <-q.wakeup: - continue - case <-ctx.Done(): - p.queueMut.Lock() - p.queue.Remove(e) - if len(q.wakeup) == 1 { - // We got notified, but are no longer interested. - // Ask the next waiter. - if e := p.queue.Front(); e != nil { - queuedRequest := e.Value.(*qitem) - p.queue.Remove(e) - queuedRequest.wakeup <- true - } - p.queueMut.Unlock() - continue - } - p.queueMut.Unlock() - p.log.Warnf(log.Pool, p.logId, "Borrow time-out") - return nil, &errorutil.PoolTimeout{Err: ctx.Err(), Servers: serverNames} - } - } -} - -func (p *Pool) tryBorrow( - ctx context.Context, - serverName string, - boltLogger log.BoltLogger, - idlenessTimeout time.Duration, - auth *idb.ReAuthToken, -) (idb.Connection, error) { - p.serversMut.Lock() - var unlock = new(sync.Once) - defer unlock.Do(p.serversMut.Unlock) - - if err := p.checkClosed(); err != nil { - return nil, err - } - - srv := p.servers[serverName] - for { - if srv != nil { - srv.closing = false - connection := srv.getIdle() - if connection == nil { - if srv.size() >= p.config.MaxConnectionPoolSize { - return nil, nil - } - break - } - unlock.Do(p.serversMut.Unlock) - healthy, err := srv.healthCheck(ctx, connection, idlenessTimeout, auth, boltLogger) - if healthy { - return connection, nil - } - p.unreg(ctx, serverName, connection, itime.Now()) - if err != nil { - p.log.Debugf(log.Pool, p.logId, "Health check failed for %s: %s", serverName, err) - return nil, err - } - p.serversMut.Lock() - *unlock = sync.Once{} - srv = p.servers[serverName] - } else { - // Make sure that there is a server in the map - srv = NewServer() - p.servers[serverName] = srv - break - } - } - - srv.reservations++ - unlock.Do(p.serversMut.Unlock) - - // No idle connection, try to connect - p.log.Infof(log.Pool, p.logId, "Connecting to %s", serverName) - c, err := p.connect(ctx, serverName, auth, p, boltLogger) - p.serversMut.Lock() - *unlock = sync.Once{} - srv.reservations-- - if err != nil { - p.log.Warnf(log.Pool, p.logId, "Failed to connect to %s: %s", serverName, err) - // FeatureNotSupportedError is not the server fault, don't penalize it - if _, ok := err.(*db.FeatureNotSupportedError); !ok { - srv.notifyFailedConnect(itime.Now()) - } - return nil, err - } - - // Ok, got a connection, register the connection - p.ssrTracker.addConnection(c) - srv.registerBusy(c) - srv.notifySuccessfulConnect() - return c, nil -} - -func (p *Pool) checkClosed() error { - if p.closed { - return &errorutil.PoolClosed{} - } - return nil -} - -func (p *Pool) unreg(ctx context.Context, serverName string, c idb.Connection, now time.Time) { - p.serversMut.Lock() - defer p.serversMut.Unlock() - p.unregLocked(ctx, serverName, c, now) -} - -func (p *Pool) unregLocked(ctx context.Context, serverName string, c idb.Connection, now time.Time) { - defer p.closeConnection(ctx, c) - - server := p.servers[serverName] - // Check for strange condition of not finding the server. - if server == nil { - p.log.Warnf(log.Pool, p.logId, "Server %s not found", serverName) - return - } - - server.unregisterBusy(c) - if server.size() == 0 && !server.hasFailedConnect(now) { - delete(p.servers, serverName) - } -} - -func (p *Pool) removeIdleOlderThanOnServer(ctx context.Context, serverName string, now time.Time, maxAge time.Duration) { - p.serversMut.Lock() - defer p.serversMut.Unlock() - server := p.servers[serverName] - if server == nil { - return - } - p.removeIdleOlderThanLocked(ctx, server, now, maxAge) -} - -func (p *Pool) removeIdleOlderThanLocked(ctx context.Context, s *server, now time.Time, maxAge time.Duration) { - s.removeIdleOlderThan(ctx, now, maxAge, p.closeConnection) -} - -func (p *Pool) closeConnection(ctx context.Context, c idb.Connection) { - p.ssrTracker.removeConnection(c) - // Close connection in another thread to avoid potential long blocking operation during close. - go func() { - ctx, cancelFunc := context.WithTimeout(context.Background(), 30*time.Second) - defer cancelFunc() - c.Close(ctx) - if ctxErr := ctx.Err(); ctxErr != nil { - p.log.Debugf( - log.Pool, - p.logId, - "Connection %s timed out during graceful shutdown: %s", - c.ConnId(), - ctxErr, - ) - } - }() -} - -func (p *Pool) Return(ctx context.Context, c idb.Connection) { - if p.closed { - p.log.Warnf(log.Pool, p.logId, "Trying to return connection to closed pool") - } - - // Get the name of the server that the connection belongs to. - serverName := c.ServerName() - isAlive := c.IsAlive() - p.log.Debugf( - log.Pool, - p.logId, - "Returning connection %s to %s {alive:%t}", - c.ConnId(), - serverName, - isAlive, - ) - - // If the connection is dead, remove all other idle connections on the same server that older - // or of the same age as the dead connection, otherwise perform normal cleanup of old connections - maxAge := p.config.MaxConnectionLifetime - now := itime.Now() - age := now.Sub(c.Birthdate()) - if !isAlive { - // Since this connection has died all other connections that connected before this one - // might also be bad, remove the idle ones. - if age < maxAge { - maxAge = age - } - } - p.removeIdleOlderThanOnServer(ctx, serverName, now, maxAge) - - // Prepare connection for being used by someone else if is alive. - // Since reset could find the connection to be in a bad state or non-recoverable state, - // make sure again that it really is alive. - if isAlive { - c.Reset(ctx) - isAlive = c.IsAlive() - } - - c.SetBoltLogger(nil) - - // Shouldn't return a too old or dead connection back to the pool - if !isAlive || age >= p.config.MaxConnectionLifetime { - // Fix for race condition where expired connections could be reused or closed concurrently. - // See: https://github.com/neo4j/neo4j-go-driver/issues/574 - isAlive = false - p.unreg(ctx, serverName, c, now) - p.log.Infof(log.Pool, p.logId, "Unregistering dead or too old connection to %s", serverName) - } - - if isAlive { - // Just put it back in the list of idle connections for this server - p.serversMut.Lock() - server := p.servers[serverName] - if server != nil { // Strange when server not found - server.returnBusy(ctx, c, p.closeConnection) - if server.closing && server.size() == 0 { - delete(p.servers, serverName) - } - } else { - p.log.Warnf(log.Pool, p.logId, "Server %s not found", serverName) - p.closeConnection(ctx, c) - } - p.serversMut.Unlock() - } - // Update the cache state after returning a connection since ssr support may have changed. - p.updateCacheState() - - // Check if there is anyone in the queue waiting for a connection to this server. - p.queueMut.Lock() - - if e := p.queue.Front(); e != nil { - queuedRequest := e.Value.(*qitem) - p.queue.Remove(e) - queuedRequest.wakeup <- true - } - p.queueMut.Unlock() -} - -func (p *Pool) OnNeo4jError(ctx context.Context, connection idb.Connection, error *db.Neo4jError) error { - if error.Code == "Neo.ClientError.Security.AuthorizationExpired" { - serverName := connection.ServerName() - p.serversMut.Lock() - defer p.serversMut.Unlock() - server := p.servers[serverName] - server.executeForAllConnections(func(c idb.Connection) { - c.ResetAuth() - }) - } - if error.Code == "Neo.TransientError.General.DatabaseUnavailable" { - p.deactivate(ctx, connection.ServerName()) - } - if error.IsRetriableCluster() { - var database string - if dbSelector, ok := connection.(idb.DatabaseSelector); ok { - database = dbSelector.Database() - } - p.deactivateWriter(connection.ServerName(), database) - } - if error.HasSecurityCode() { - manager, token := connection.GetCurrentAuth() - if manager != nil { - handled, err := manager.HandleSecurityException(ctx, token, error) - if err != nil { - return err - } - if handled { - error.MarkRetriable() - } - } - } - - return nil -} - -func (p *Pool) OnIoError(ctx context.Context, connection idb.Connection, _ error) { - p.deactivate(ctx, connection.ServerName()) -} - -func (p *Pool) OnDialError(ctx context.Context, serverName string, _ error) { - p.deactivate(ctx, serverName) -} - -func (p *Pool) deactivate(ctx context.Context, serverName string) { - p.log.Debugf(log.Pool, p.logId, "Deactivating server %s", serverName) - p.router.InvalidateServer(serverName) - p.serversMut.Lock() - defer p.serversMut.Unlock() - server := p.servers[serverName] - if server != nil { - server.startClosing(ctx, p.closeConnection) - } -} - -func (p *Pool) deactivateWriter(serverName string, db string) { - p.log.Debugf(log.Pool, p.logId, "Deactivating writer %s for database %s", serverName, db) - p.router.InvalidateWriter(db, serverName) -} - -func (p *Pool) updateCacheState() { - p.cache.SetEnabled(p.ssrTracker.ssrEnabled()) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/server.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/server.go deleted file mode 100644 index 871cf3e..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/server.go +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 pool - -import ( - "container/list" - "context" - "sync/atomic" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// Represents a server with a number of connections that either is in use (borrowed) or -// is ready for use. -// Not thread safe -type server struct { - idle list.List - busy list.List - reservations int - failedConnectAt time.Time - roundRobin uint32 - closing bool -} - -func NewServer() *server { - return &server{ - idle: list.List{}, - busy: list.List{}, - } -} - -type closeFunc = func(context.Context, db.Connection) - -var sharedRoundRobin uint32 - -const rememberFailedConnectDuration = 3 * time.Minute - -// Returns an idle connection if any -func (s *server) getIdle() db.Connection { - availableConnection := s.idle.Front() - found := availableConnection != nil - if found { - idleConnection := s.idle.Remove(availableConnection) - connection := idleConnection.(db.Connection) - s.busy.PushFront(idleConnection) - return connection - } - return nil -} - -// Returns an idle connection if any -func (s *server) healthCheck( - ctx context.Context, - connection db.Connection, - idlenessTimeout time.Duration, - auth *db.ReAuthToken, - boltLogger log.BoltLogger) (healthy bool, _ error) { - - connection.SetBoltLogger(boltLogger) - if itime.Since(connection.IdleDate()) > idlenessTimeout { - connection.ForceReset(ctx) - if !connection.IsAlive() { - return false, ctx.Err() - } - } - if err := connection.ReAuth(ctx, auth); err != nil { - return false, err - } - if !connection.IsAlive() { - return false, ctx.Err() - } - // Update round-robin counter every time we give away a connection and keep track - // of our own round-robin index - atomic.StoreUint32(&s.roundRobin, atomic.AddUint32(&sharedRoundRobin, 1)) - return true, nil -} - -func (s *server) notifyFailedConnect(now time.Time) { - s.failedConnectAt = now -} - -func (s *server) notifySuccessfulConnect() { - s.failedConnectAt = time.Time{} -} - -func (s *server) hasFailedConnect(now time.Time) bool { - if s.failedConnectAt.IsZero() { - return false - } - return now.Sub(s.failedConnectAt) < rememberFailedConnectDuration -} - -const newConnectionPenalty = uint32(1 << 8) - -// Calculates a penalty value for how this server compares to other servers -// when there is more than one server to choose from. The lower penalty the better choice. -func (s *server) calculatePenalty(now time.Time) uint32 { - penalty := uint32(0) - - // If a connection to the server has failed recently, add a penalty - if s.hasFailedConnect(now) { - penalty = 1 << 31 - } - // The more busy connections, the higher penalty - numBusy := uint32(s.busy.Len()) - if numBusy > 0xff { - numBusy = 0xff - } - penalty |= numBusy << 16 - // If there are no idle connections, add a penalty as the cost of connect would - // add to the transaction time - if s.idle.Len() == 0 { - penalty |= newConnectionPenalty - } - // Use last round-robin value as lowest priority penalty, so when all other is equal we will - // make sure to spread usage among the servers. And yes it will wrap around once in a while - // but since number of busy servers weights higher it will even out pretty fast. - - roundRobin := atomic.LoadUint32(&s.roundRobin) - penalty |= roundRobin & 0xff - return penalty -} - -// Returns a busy connection, makes it idle -func (s *server) returnBusy(ctx context.Context, c db.Connection, close closeFunc) { - s.unregisterBusy(c) - if s.closing { - close(ctx, c) - } else { - s.idle.PushFront(c) - } -} - -// Number of idle connections -func (s *server) numIdle() int { - return s.idle.Len() -} - -// Number of busy connections -func (s *server) numBusy() int { - return s.busy.Len() -} - -// Adds a connection to the busy list -func (s *server) registerBusy(c db.Connection) { - // Update round-robin to indicate when this server was last used. - atomic.StoreUint32(&s.roundRobin, atomic.AddUint32(&sharedRoundRobin, 1)) - s.busy.PushFront(c) -} - -func (s *server) unregisterBusy(c db.Connection) { - for e := s.busy.Front(); e != nil; e = e.Next() { - x := e.Value.(db.Connection) - if x == c { - s.busy.Remove(e) - return - } - } -} - -func (s *server) size() int { - return s.busy.Len() + s.idle.Len() + s.reservations -} - -func (s *server) removeIdleOlderThan(ctx context.Context, now time.Time, maxAge time.Duration, close closeFunc) { - e := s.idle.Front() - for e != nil { - n := e.Next() - c := e.Value.(db.Connection) - - age := now.Sub(c.Birthdate()) - if age >= maxAge { - s.idle.Remove(e) - close(ctx, c) - } - - e = n - } -} - -func (s *server) executeForAllConnections(callback func(c db.Connection)) { - for item := s.busy.Front(); item != nil; item = item.Next() { - callback(item.Value.(db.Connection)) - } - for item := s.idle.Front(); item != nil; item = item.Next() { - callback(item.Value.(db.Connection)) - } -} - -func (s *server) startClosing(ctx context.Context, close closeFunc) { - s.closing = true - s.closeAndEmptyConnections(ctx, &s.idle, close) -} - -func (s *server) closeAndEmptyConnections(ctx context.Context, l *list.List, close closeFunc) { - for e := l.Front(); e != nil; e = e.Next() { - c := e.Value.(db.Connection) - close(ctx, c) - } - l.Init() -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/ssr_tracker.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/ssr_tracker.go deleted file mode 100644 index 0271438..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/ssr_tracker.go +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 pool - -import ( - "sync/atomic" - - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" -) - -type ssrTracker struct { - ssrEnabledCount uint64 - ssrDisabledCount uint64 -} - -func (s *ssrTracker) addConnection(c idb.Connection) { - if c.IsSsrEnabled() { - atomic.AddUint64(&s.ssrEnabledCount, 1) - } else { - atomic.AddUint64(&s.ssrDisabledCount, 1) - } -} - -func (s *ssrTracker) removeConnection(c idb.Connection) { - if c.IsSsrEnabled() { - atomic.AddUint64(&s.ssrEnabledCount, ^uint64(0)) - } else { - atomic.AddUint64(&s.ssrDisabledCount, ^uint64(0)) - } -} - -func (s *ssrTracker) ssrEnabled() bool { - return atomic.LoadUint64(&s.ssrEnabledCount) > 0 && - atomic.LoadUint64(&s.ssrDisabledCount) == 0 -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/lock.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/lock.go deleted file mode 100644 index 7711a39..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/lock.go +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 racing - -import ( - "context" - "time" -) - -type LockTimeoutError string - -func (l LockTimeoutError) Error() string { - return string(l) -} - -type Mutex interface { - // TryLock attempts to acquire the lock before the deadline set by the provided context - // If the context does not define a deadline, TryLock will block until the lock is acquired - // Returns true if the lock is acquired, false otherwise - TryLock(ctx context.Context) bool - // Unlock frees this lock, if locked - // It is a run-time error if the lock is not locked on entry to Unlock. - Unlock() -} - -type contextLock struct { - ch chan struct{} -} - -func NewMutex() Mutex { - return &contextLock{ch: make(chan struct{}, 1)} -} - -func (c *contextLock) TryLock(ctx context.Context) bool { - deadline, hasDeadline := ctx.Deadline() - err := ctx.Err() - switch { - case !hasDeadline && err == nil: - c.ch <- struct{}{} - return true - case deadline.Before(time.Now()) || err != nil: - return false - } - - select { - case c.ch <- struct{}{}: - return true - case <-ctx.Done(): - return false - } -} - -func (c *contextLock) Unlock() { - select { - case <-c.ch: - return - default: - panic("Lock is not locked") - } - -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/reader.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/reader.go deleted file mode 100644 index 95abf96..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/reader.go +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 racing - -import ( - "context" - "io" - "time" -) - -type RacingReader interface { - Read(ctx context.Context, bytes []byte) (int, error) - ReadFull(ctx context.Context, bytes []byte) (int, error) -} - -func NewRacingReader(reader io.Reader) RacingReader { - return &racingReader{reader: reader} -} - -type racingReader struct { - reader io.Reader -} - -func (rr *racingReader) Read(ctx context.Context, bytes []byte) (int, error) { - return rr.race(ctx, bytes, read) -} - -func (rr *racingReader) ReadFull(ctx context.Context, bytes []byte) (int, error) { - return rr.race(ctx, bytes, readFull) -} - -func (rr *racingReader) race(ctx context.Context, bytes []byte, readFn func(io.Reader, []byte) (int, error)) (int, error) { - deadline, hasDeadline := ctx.Deadline() - err := ctx.Err() - switch { - case !hasDeadline && err == nil: - return readFn(rr.reader, bytes) - case deadline.Before(time.Now()) || err != nil: - return 0, err - } - resultChan := make(chan *ioResult, 1) - go func() { - defer close(resultChan) - n, err := readFn(rr.reader, bytes) - resultChan <- &ioResult{ - n: n, - err: err, - } - }() - select { - case <-ctx.Done(): - return 0, ctx.Err() - case result := <-resultChan: - return result.n, result.err - } -} - -func read(reader io.Reader, bytes []byte) (int, error) { - return reader.Read(bytes) -} - -func readFull(reader io.Reader, bytes []byte) (int, error) { - return io.ReadFull(reader, bytes) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/time.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/time.go deleted file mode 100644 index 5c54631..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/time.go +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 racing - -import ( - "context" - "time" -) - -func Sleep(ctx context.Context, d time.Duration) error { - select { - case <-time.After(d): - return nil - case <-ctx.Done(): - return ctx.Err() - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/writer.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/writer.go deleted file mode 100644 index 0f918c9..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/writer.go +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 racing - -import ( - "context" - "io" - "time" -) - -type RacingWriter interface { - Write(ctx context.Context, bytes []byte) (int, error) -} - -func NewRacingWriter(writer io.Writer) RacingWriter { - return &racingWriter{writer: writer} -} - -type racingWriter struct { - writer io.Writer -} - -type ioResult struct { - n int - err error -} - -func (rw *racingWriter) Write(ctx context.Context, bytes []byte) (int, error) { - deadline, hasDeadline := ctx.Deadline() - err := ctx.Err() - switch { - case !hasDeadline && err == nil: - return rw.writer.Write(bytes) - case deadline.Before(time.Now()) || err != nil: - return 0, err - } - resultChan := make(chan *ioResult, 1) - go func() { - defer close(resultChan) - n, err := rw.writer.Write(bytes) - resultChan <- &ioResult{ - n: n, - err: err, - } - }() - select { - case <-ctx.Done(): - return 0, ctx.Err() - case result := <-resultChan: - return result.n, result.err - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/state.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/state.go deleted file mode 100644 index 58cbbc6..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/state.go +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 retry handles retry operations. -package retry - -import ( - "context" - "errors" - "fmt" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type State struct { - Errs []error - MaxTransactionRetryTime time.Duration - Log log.Logger - LogName string - LogId string - Sleep func(context.Context, time.Duration) error - Throttle Throttler - MaxDeadConnections int - DatabaseName string - TelemetrySent bool - - start time.Time - cause string - deadErrors int - skipSleep bool -} - -func (s *State) OnFailure(_ context.Context, err error, conn idb.Connection, isCommitting bool) { - if conn != nil && !conn.IsAlive() { - if isCommitting { - // FIXME: CommitFailedDeadError should be returned even when not using transaction functions - s.Errs = append(s.Errs, &errorutil.CommitFailedDeadError{Inner: err}) - } else { - s.Errs = append(s.Errs, err) - } - s.deadErrors += 1 - s.skipSleep = true - return - } - - s.Errs = append(s.Errs, err) - s.skipSleep = false -} - -func (s *State) Continue(ctx context.Context) bool { - if s.start.IsZero() { - s.start = itime.Now() - } - - select { - case <-ctx.Done(): - s.Errs = append(s.Errs, ctx.Err()) - return false - default: - } - - if len(s.Errs) == 0 { - return true - } - - lastErr := s.Errs[len(s.Errs)-1] - if !IsRetryable(errorutil.WrapError(lastErr)) { - return false - } - - if itime.Since(s.start) > s.MaxTransactionRetryTime { - s.Errs = []error{&errorutil.TransactionExecutionLimit{ - Cause: fmt.Sprintf("timeout (exceeded max retry time: %s)", s.MaxTransactionRetryTime.String()), - Errors: s.Errs, - }} - return false - } - - if s.deadErrors > s.MaxDeadConnections { - s.Errs = []error{&errorutil.TransactionExecutionLimit{ - Cause: fmt.Sprintf("too many failed connection attempts (allowed max %d)", s.MaxDeadConnections), - Errors: s.Errs, - }} - return false - } - - if s.skipSleep { - s.Log.Debugf(s.LogName, s.LogId, "Retrying transaction (%s): %s", s.cause, lastErr) - } else { - s.Throttle = s.Throttle.next() - sleepTime := s.Throttle.delay() - s.Log.Debugf(s.LogName, s.LogId, - "Retrying transaction (%s): %s [after %s]", s.cause, lastErr, sleepTime) - - err := s.Sleep(ctx, sleepTime) - if err != nil { - s.Errs = []error{&errorutil.TransactionExecutionLimit{ - Cause: err.Error(), - Errors: s.Errs, - }} - return false - } - } - return true -} - -func (s *State) ProduceError() error { - lastErr := s.Errs[len(s.Errs)-1] - if limitReachedErr, ok := lastErr.(*errorutil.TransactionExecutionLimit); ok { - return limitReachedErr - } - return errorutil.WrapError(lastErr) -} - -func IsRetryable(err error) bool { - if connectivityErr, ok := err.(*errorutil.ConnectivityError); ok { - if _, ok := connectivityErr.Inner.(*errorutil.CommitFailedDeadError); ok { - return false - } - return true - } - if _, ok := err.(*errorutil.PoolTimeout); ok { - return true - } - var dbError *db.Neo4jError - if !errors.As(err, &dbError) { - return false - } - return dbError.IsRetriable() -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/throttler.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/throttler.go deleted file mode 100644 index a2aadcd..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/throttler.go +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 retry - -import ( - "math/rand" - "time" -) - -type Throttler time.Duration - -func (t Throttler) next() Throttler { - delay := time.Duration(t) - const delayJitter = 0.2 - jitter := float64(delay) * delayJitter - return Throttler(2*delay - time.Duration(jitter) + time.Duration(2*jitter*rand.Float64())) -} - -func (t Throttler) delay() time.Duration { - return time.Duration(t) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/readtable.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/readtable.go deleted file mode 100644 index 8efa1c1..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/readtable.go +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 router - -import ( - "context" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// Tries to read routing table from any of the specified routers using new or existing connection -// from the supplied pool. -func readTable( - ctx context.Context, - connectionPool Pool, - routers []string, - routerContext map[string]string, - idlenessTimeout time.Duration, - bookmarks []string, - database, - impersonatedUser string, - auth *db.ReAuthToken, - boltLogger log.BoltLogger, -) (*db.RoutingTable, error) { - // Preserve last error to be returned, set a default for case of no routers - var err error = &errorutil.ReadRoutingTableError{} - - // Try the routers one at the time since some of them might no longer support routing and we - // can't force the pool to not re-use these when putting them back in the pool and retrieving - // another db. - for _, router := range routers { - var conn db.Connection - if conn, err = connectionPool.Borrow(ctx, getStaticServer(router), true, boltLogger, idlenessTimeout, auth); err != nil { - // Check if failed due to context timing out - if ctx.Err() != nil { - return nil, wrapError(router, ctx.Err()) - } - if errorutil.IsFatalDuringDiscovery(err) { - return nil, err - } - err = wrapError(router, err) - continue - } - - // We have a connection to the "router" - var table *db.RoutingTable - table, err = conn.GetRoutingTable(ctx, routerContext, bookmarks, database, impersonatedUser) - connectionPool.Return(ctx, conn) - if err == nil { - return table, nil - } - if errorutil.IsFatalDuringDiscovery(err) { - return nil, err - } - err = wrapError(router, err) - } - return nil, err -} - -func getStaticServer(server string) func() []string { - return func() []string { - return []string{server} - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router.go deleted file mode 100644 index 2a76e86..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router.go +++ /dev/null @@ -1,424 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 router - -import ( - "context" - "errors" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - "sync" - "time" - - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const missingWriterRetries = 100 -const missingReaderRetries = 100 - -type databaseRouter struct { - dueUnix int64 - table *idb.RoutingTable -} - -// Router is thread safe -type Router struct { - routerContext map[string]string - pool Pool - idlenessTimeout time.Duration - dbRouters map[string]*databaseRouter - updating map[string][]chan struct{} - dbRoutersMut sync.Mutex - sleep func(time.Duration) - rootRouter string - getRouters func() []string - log log.Logger - logId string -} - -type Pool interface { - // Borrow acquires a connection from the provided list of servers - // If all connections are busy and the pool is full, calls to Borrow may wait for a connection to become idle - // If a connection has been idle for longer than idlenessTimeout, it will be reset - // to check if it's still alive. - Borrow(ctx context.Context, getServers func() []string, wait bool, boltLogger log.BoltLogger, idlenessTimeout time.Duration, auth *idb.ReAuthToken) (idb.Connection, error) - Return(ctx context.Context, c idb.Connection) -} - -func New(rootRouter string, getRouters func() []string, routerContext map[string]string, pool Pool, idlenessTimeout time.Duration, logger log.Logger, logId string) *Router { - r := &Router{ - rootRouter: rootRouter, - getRouters: getRouters, - routerContext: routerContext, - pool: pool, - idlenessTimeout: idlenessTimeout, - dbRouters: make(map[string]*databaseRouter), - updating: make(map[string][]chan struct{}), - dbRoutersMut: sync.Mutex{}, - sleep: time.Sleep, - log: logger, - logId: logId, - } - r.log.Infof(log.Router, r.logId, "Created {context: %v}", routerContext) - return r -} - -func (r *Router) readTable( - ctx context.Context, - dbRouter *databaseRouter, - bookmarks []string, - database, - impersonatedUser string, - auth *idb.ReAuthToken, - boltLogger log.BoltLogger, -) (*idb.RoutingTable, error) { - var ( - table *idb.RoutingTable - err error - ) - - // Try last known set of routers if there are any - if dbRouter != nil && len(dbRouter.table.Routers) > 0 { - routers := dbRouter.table.Routers - r.log.Infof(log.Router, r.logId, "Reading routing table for '%s' from previously known routers: %v", database, routers) - table, err = readTable(ctx, r.pool, routers, r.routerContext, r.idlenessTimeout, bookmarks, database, impersonatedUser, auth, boltLogger) - } - if errorutil.IsFatalDuringDiscovery(err) { - r.log.Error(log.Router, r.logId, err) - return nil, err - } - - // Try initial router if no routers or failed - if table == nil { - r.log.Infof(log.Router, r.logId, "Reading routing table from initial router: %s", r.rootRouter) - table, err = readTable(ctx, r.pool, []string{r.rootRouter}, r.routerContext, r.idlenessTimeout, bookmarks, database, impersonatedUser, auth, boltLogger) - } - if errorutil.IsFatalDuringDiscovery(err) { - r.log.Error(log.Router, r.logId, err) - return nil, err - } - - // Use hook to retrieve possibly different set of routers and retry - if table == nil && r.getRouters != nil { - routers := r.getRouters() - r.log.Infof(log.Router, r.logId, "Reading routing table for '%s' from custom routers: %v", routers) - table, err = readTable(ctx, r.pool, routers, r.routerContext, r.idlenessTimeout, bookmarks, database, impersonatedUser, auth, boltLogger) - } - if errorutil.IsFatalDuringDiscovery(err) { - r.log.Error(log.Router, r.logId, err) - return nil, err - } - - if err != nil { - r.log.Error(log.Router, r.logId, err) - return nil, err - } - - if table == nil { - // Safeguard for logical error somewhere else - err = errors.New("no error and no table") - r.log.Error(log.Router, r.logId, err) - return nil, err - } - return table, nil -} - -func (r *Router) getTable(database string) *idb.RoutingTable { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - - dbRouter := r.dbRouters[database] - return r.getTableLocked(dbRouter) -} - -func (r *Router) getOrUpdateTable( - ctx context.Context, - bookmarksFn func(context.Context) ([]string, error), - dbSelection idb.DatabaseSelection, - auth *idb.ReAuthToken, - boltLogger log.BoltLogger, - onRoutingTableUpdated func(string), -) (*idb.RoutingTable, error) { - r.dbRoutersMut.Lock() - var unlock = new(sync.Once) - defer unlock.Do(r.dbRoutersMut.Unlock) - for { - dbRouter := r.dbRouters[dbSelection.Name] - if table := r.getTableLocked(dbRouter); table != nil { - return table, nil - } - waiters, ok := r.updating[dbSelection.Name] - if ok { - // Wait for the table to be updated by other goroutine - ch := make(chan struct{}) - r.updating[dbSelection.Name] = append(waiters, ch) - unlock.Do(r.dbRoutersMut.Unlock) - select { - case <-ctx.Done(): - return nil, racing.LockTimeoutError("timed out waiting for other goroutine to update routing table") - case <-ch: - r.dbRoutersMut.Lock() - *unlock = sync.Once{} - continue - } - } - // this goroutine will update the table - r.updating[dbSelection.Name] = make([]chan struct{}, 0) - unlock.Do(r.dbRoutersMut.Unlock) - // Use an empty string for updating the routing table if the home database is a guess, - // as we cannot guarantee the guess is correct. - targetDatabase := dbSelection.Name - if dbSelection.IsHomeDbGuess { - targetDatabase = "" - } - table, err := r.updateTable(ctx, bookmarksFn, targetDatabase, auth, boltLogger, dbRouter) - if err == nil && onRoutingTableUpdated != nil { - onRoutingTableUpdated(table.DatabaseName) - } - r.dbRoutersMut.Lock() - *unlock = sync.Once{} - // notify all waiters - for _, waiter := range r.updating[dbSelection.Name] { - close(waiter) - } - delete(r.updating, dbSelection.Name) - return table, err - } -} - -func (r *Router) getTableLocked(dbRouter *databaseRouter) *idb.RoutingTable { - now := itime.Now() - if dbRouter != nil && now.Unix() < dbRouter.dueUnix { - return dbRouter.table - } - return nil -} - -func (r *Router) updateTable(ctx context.Context, bookmarksFn func(context.Context) ([]string, error), database string, auth *idb.ReAuthToken, boltLogger log.BoltLogger, dbRouter *databaseRouter) (*idb.RoutingTable, error) { - bookmarks, err := bookmarksFn(ctx) - if err != nil { - return nil, err - } - table, err := r.readTable(ctx, dbRouter, bookmarks, database, "", auth, boltLogger) - if err != nil { - return nil, err - } - - err = r.storeRoutingTable(ctx, database, table, itime.Now()) - if err != nil { - return nil, err - } - - return table, nil -} - -func (r *Router) GetOrUpdateReaders( - ctx context.Context, - bookmarks func(context.Context) ([]string, error), - dbSelection idb.DatabaseSelection, - auth *idb.ReAuthToken, - boltLogger log.BoltLogger, - onRoutingTableUpdated func(string), -) ([]string, error) { - table, err := r.getOrUpdateTable(ctx, bookmarks, dbSelection, auth, boltLogger, onRoutingTableUpdated) - if err != nil { - return nil, err - } - - // During startup, we can get tables without any readers - retries := missingReaderRetries - for len(table.Readers) == 0 { - retries-- - if retries == 0 { - break - } - r.log.Infof(log.Router, r.logId, "Invalidating routing table, no readers") - r.Invalidate(table.DatabaseName) - r.sleep(100 * time.Millisecond) - table, err = r.getOrUpdateTable(ctx, bookmarks, dbSelection, auth, boltLogger, onRoutingTableUpdated) - if err != nil { - return nil, err - } - } - if len(table.Readers) == 0 { - return nil, wrapError(r.rootRouter, errors.New("no readers")) - } - - return table.Readers, nil -} - -func (r *Router) Readers(database string) []string { - table := r.getTable(database) - if table == nil { - return nil - } - return table.Readers -} - -func (r *Router) GetOrUpdateWriters( - ctx context.Context, - bookmarks func(context.Context) ([]string, error), - dbSelection idb.DatabaseSelection, - auth *idb.ReAuthToken, - boltLogger log.BoltLogger, - onRoutingTableUpdated func(string), -) ([]string, error) { - table, err := r.getOrUpdateTable(ctx, bookmarks, dbSelection, auth, boltLogger, onRoutingTableUpdated) - if err != nil { - return nil, err - } - - // During election, we can get tables without any writers - retries := missingWriterRetries - for len(table.Writers) == 0 { - retries-- - if retries == 0 { - break - } - r.log.Infof(log.Router, r.logId, "Invalidating routing table, no writers") - r.Invalidate(dbSelection.Name) - r.sleep(100 * time.Millisecond) - table, err = r.getOrUpdateTable(ctx, bookmarks, dbSelection, auth, boltLogger, onRoutingTableUpdated) - if err != nil { - return nil, err - } - } - if len(table.Writers) == 0 { - return nil, wrapError(r.rootRouter, errors.New("no writers")) - } - - return table.Writers, nil -} - -func (r *Router) Writers(database string) []string { - table := r.getTable(database) - if table == nil { - return nil - } - return table.Writers -} - -func (r *Router) GetNameOfDefaultDatabase(ctx context.Context, bookmarks []string, user string, auth *idb.ReAuthToken, boltLogger log.BoltLogger) (string, error) { - table, err := r.readTable(ctx, nil, bookmarks, idb.DefaultDatabase, user, auth, boltLogger) - if err != nil { - return "", err - } - // Store the fresh routing table as well to avoid another roundtrip to receive servers from session. - now := itime.Now() - err = r.storeRoutingTable(ctx, table.DatabaseName, table, now) - if err != nil { - return "", err - } - return table.DatabaseName, err -} - -func (r *Router) Context() map[string]string { - return r.routerContext -} - -func (r *Router) Invalidate(database string) { - r.log.Infof(log.Router, r.logId, "Invalidating routing table for '%s'", database) - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - // Reset due time to the 70s, this will make next access refresh the routing table using - // last set of routers instead of the original one. - dbRouter := r.dbRouters[database] - if dbRouter != nil { - dbRouter.dueUnix = 0 - } -} - -func (r *Router) InvalidateWriter(db string, server string) { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - - router := r.dbRouters[db] - if router == nil { - return - } - router.table.Writers = removeServerFromList(router.table.Writers, server) -} - -func (r *Router) InvalidateReader(db string, server string) { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - - router := r.dbRouters[db] - if router == nil { - return - } - router.table.Readers = removeServerFromList(router.table.Readers, server) -} - -func (r *Router) InvalidateServer(server string) { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - for _, routing := range r.dbRouters { - routing.table.Routers = removeServerFromList(routing.table.Routers, server) - routing.table.Readers = removeServerFromList(routing.table.Readers, server) - routing.table.Writers = removeServerFromList(routing.table.Writers, server) - } -} - -func removeServerFromList(list []string, server string) []string { - for i, s := range list { - if s == server { - return append(list[0:i], list[i+1:]...) - } - } - return list -} - -func (r *Router) CleanUp() { - r.log.Debugf(log.Router, r.logId, "Cleaning up") - now := itime.Now().Unix() - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - - for dbName, dbRouter := range r.dbRouters { - if now > dbRouter.dueUnix { - delete(r.dbRouters, dbName) - } - } -} - -func (r *Router) storeRoutingTable(_ context.Context, database string, table *idb.RoutingTable, now time.Time) error { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - if database == "" { - database = table.DatabaseName - } - r.dbRouters[database] = &databaseRouter{ - table: table, - dueUnix: now.Add(time.Duration(table.TimeToLive) * time.Second).Unix(), - } - r.log.Debugf(log.Router, r.logId, "New routing table for '%s', TTL %d", database, table.TimeToLive) - return nil -} - -func wrapError(server string, err error) error { - // Preserve error originating from the database, wrap other errors - _, isNeo4jErr := err.(*db.Neo4jError) - if isNeo4jErr { - return err - } - return &errorutil.ReadRoutingTableError{Server: server, Err: err} -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router_testkit.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router_testkit.go deleted file mode 100644 index fcef3a2..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router_testkit.go +++ /dev/null @@ -1,26 +0,0 @@ -//go:build internal_neo4j_go_driver_testkit - -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 router - -import idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - -func (r *Router) GetTable(database string) *idb.RoutingTable { - return r.getTable(database) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry/telemetry.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry/telemetry.go deleted file mode 100644 index 8a8ef0b..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry/telemetry.go +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 telemetry - -type API int - -const ( - ManagedTransaction API = 0 - UnmanagedTransaction API = 1 - AutoCommitTransaction API = 2 - ExecuteQuery API = 3 -) - -func (a API) AsInt() int { - return int(a) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time.go deleted file mode 100644 index aaae33e..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time.go +++ /dev/null @@ -1,25 +0,0 @@ -//go:build !internal_neo4j_go_driver_time_mock - -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 time - -import "time" - -var Now = time.Now -var Since = time.Since diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time_mockable.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time_mockable.go deleted file mode 100644 index 3867543..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time_mockable.go +++ /dev/null @@ -1,130 +0,0 @@ -//go:build internal_neo4j_go_driver_time_mock - -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 time - -import ( - "errors" - "sync" - "time" -) - -type Ticker = func(*time.Time) - -var frozenNow *time.Time = nil -var tickerRegistry []Ticker = nil -var frozenNowMutex = &sync.Mutex{} - -func now() time.Time { - if frozenNow == nil { - return time.Now() - } - for _, ticker := range tickerRegistry { - ticker(frozenNow) - } - return *frozenNow -} - -func Now() time.Time { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - return now() -} - -func Since(t time.Time) time.Duration { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow == nil { - return time.Since(t) - } - return frozenNow.Sub(t) -} - -func FreezeTime() error { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow != nil { - return errors.New("time already frozen") - } - now := now() - frozenNow = &now - return nil -} - -func ForceFreezeTime() { - if err := FreezeTime(); err != nil { - panic(err) - } -} - -func TickTime(d time.Duration) error { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow == nil { - return errors.New("time not frozen") - } - newNow := frozenNow.Add(d) - frozenNow = &newNow - return nil -} - -func ForceTickTime(d time.Duration) { - if err := TickTime(d); err != nil { - panic(err) - } -} - -func AddTicker(ticker Ticker) error { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow == nil { - return errors.New("time not frozen") - } - tickerRegistry = append(tickerRegistry, ticker) - return nil -} - -func ForceAddTicker(ticker Ticker) { - if err := AddTicker(ticker); err != nil { - panic(err) - } -} - -func UnfreezeTime() error { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow == nil { - return errors.New("time not frozen") - } - frozenNow = nil - tickerRegistry = nil - return nil -} - -func ForceUnfreezeTime() { - if err := UnfreezeTime(); err != nil { - panic(err) - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/bolt_logger.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/bolt_logger.go deleted file mode 100644 index 343b878..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/bolt_logger.go +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log - -import ( - "fmt" - "os" - "time" -) - -type BoltLogger interface { - LogClientMessage(context string, msg string, args ...any) - LogServerMessage(context string, msg string, args ...any) -} - -type consoleBoltLogger struct { -} - -func (cbl *consoleBoltLogger) LogClientMessage(id, msg string, args ...any) { - cbl.logBoltMessage("C", id, msg, args) -} - -func (cbl *consoleBoltLogger) LogServerMessage(id, msg string, args ...any) { - cbl.logBoltMessage("S", id, msg, args) -} - -func (cbl *consoleBoltLogger) logBoltMessage(src, id string, msg string, args []any) { - _, _ = fmt.Fprintf(os.Stdout, "%s BOLT %s%s: %s\n", time.Now().Format(timeFormat), formatId(id), src, fmt.Sprintf(msg, args...)) -} - -func formatId(id string) string { - if id == "" { - return "" - } - return fmt.Sprintf("[%s] ", id) -} - -// Deprecated: use log.BoltToConsole() instead. -type ConsoleBoltLogger = consoleBoltLogger - -// BoltToConsole returns a BoltLogger implementation that writes to stdout. -func BoltToConsole() BoltLogger { - return &consoleBoltLogger{} -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/console.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/console.go deleted file mode 100644 index 229eb16..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/console.go +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log - -import ( - "fmt" - "os" - "time" -) - -type console struct { - Errors bool - Infos bool - Warns bool - Debugs bool -} - -const timeFormat = "2006-01-02 15:04:05.000" - -func (l *console) Error(name, id string, err error) { - if !l.Errors { - return - } - now := time.Now() - fmt.Fprintf(os.Stderr, "%s ERROR [%s %s] %s\n", now.Format(timeFormat), name, id, err.Error()) -} - -func (l *console) Infof(name, id string, msg string, args ...any) { - if !l.Infos { - return - } - now := time.Now() - fmt.Fprintf(os.Stdout, "%s INFO [%s %s] %s\n", now.Format(timeFormat), name, id, fmt.Sprintf(msg, args...)) -} - -func (l *console) Warnf(name, id string, msg string, args ...any) { - if !l.Warns { - return - } - now := time.Now() - fmt.Fprintf(os.Stdout, "%s WARN [%s %s] %s\n", now.Format(timeFormat), name, id, fmt.Sprintf(msg, args...)) -} - -func (l *console) Debugf(name, id string, msg string, args ...any) { - if !l.Debugs { - return - } - now := time.Now() - fmt.Fprintf(os.Stdout, "%s DEBUG [%s %s] %s\n", now.Format(timeFormat), name, id, fmt.Sprintf(msg, args...)) -} - -// Console is a simple logger that logs to stdout/console. -// Turn the different log levels on/off as wished, all are off by default. -// -// Deprecated: use log.ToConsole() instead. -type Console = console - -// ToConsole returns a simple logger that logs to stdout/console. -// -// level is the minimum log level that will be logged. -func ToConsole(level Level) Logger { - return &console{ - Errors: level >= ERROR, - Warns: level >= WARNING, - Infos: level >= INFO, - Debugs: level >= DEBUG, - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/level.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/level.go deleted file mode 100644 index d14298b..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/level.go +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log - -// Level is the type that default logging implementations use for available -// log levels -type Level int - -const ( - // ERROR is the level that error messages are written - ERROR Level = 1 - // WARNING is the level that warning messages are written - WARNING = 2 - // INFO is the level that info messages are written - INFO = 3 - // DEBUG is the level that debug messages are written - DEBUG = 4 -) diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/logger.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/logger.go deleted file mode 100644 index 448ce33..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/logger.go +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log defines the logging interface used internally by the driver and -// provides default logging implementations. -package log - -import ( - "strconv" - "sync/atomic" -) - -// Logger is used throughout the driver for logging purposes. -// Driver client can implement this interface and provide an implementation -// upon driver creation. -// -// All logging functions takes a name and id that corresponds to the name of -// the logging component and it's identity, for example "router" and "1" to -// indicate who is logging and what instance. -// -// Database connections takes to form of "bolt3" and "bolt-123@192.168.0.1:7687" -// where "bolt3" is the name of the protocol handler in use, "bolt-123" is the -// databases identity of the connection on server "192.168.0.1:7687". -type Logger interface { - // Error is called whenever the driver encounters an error that might - // or might not cause a retry operation which means that all logged - // errors are not critical. Type of err might or might not be a publicly - // exported type. The same root cause of an error might be reported - // more than once by different components using same or different err types. - Error(name string, id string, err error) - Warnf(name string, id string, msg string, args ...any) - Infof(name string, id string, msg string, args ...any) - Debugf(name string, id string, msg string, args ...any) -} - -// List of component names used as parameter to logger functions. -const ( - Bolt3 = "bolt3" - Bolt4 = "bolt4" - Bolt5 = "bolt5" - Driver = "driver" - Pool = "pool" - Router = "router" - Session = "session" -) - -// Last used component id -var id uint32 - -// NewId generates a new id atomically. -func NewId() string { - return strconv.FormatUint(uint64(atomic.AddUint32(&id, 1)), 10) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/void.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/void.go deleted file mode 100644 index 6b73446..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/void.go +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log - -// Logger implementation that throws away all log events. -type void struct{} - -func (l void) Error(name, id string, err error) { -} - -func (l void) Infof(name, id, msg string, args ...any) { -} - -func (l void) Warnf(name, id, msg string, args ...any) { -} - -func (l void) Debugf(name, id, msg string, args ...any) { -} - -// Void is a Logger implementation that throws away all log events. -// -// Deprecated: use log.ToVoid() instead. -type Void = void - -// ToVoid returns a Logger implementation that throws away all log events. -func ToVoid() Logger { - return void{} -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications/notifications.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications/notifications.go deleted file mode 100644 index c1ef401..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications/notifications.go +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 notifications - -type NotificationCategory string - -// NotificationClassification is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type NotificationClassification = NotificationCategory - -const ( - Hint NotificationCategory = "HINT" - Unrecognized NotificationCategory = "UNRECOGNIZED" - Unsupported NotificationCategory = "UNSUPPORTED" - Performance NotificationCategory = "PERFORMANCE" - Deprecation NotificationCategory = "DEPRECATION" - Generic NotificationCategory = "GENERIC" - // Security requires server version 5.14 or newer. - Security NotificationCategory = "SECURITY" - // Topology requires server version 5.14 or newer. - Topology NotificationCategory = "TOPOLOGY" - // Schema requires server version 5.17 or newer. - Schema NotificationCategory = "SCHEMA" - Unknown NotificationCategory = "UNKNOWN" -) - -type NotificationSeverity string - -const ( - Warning NotificationSeverity = "WARNING" - Information NotificationSeverity = "INFORMATION" - UnknownSeverity NotificationSeverity = "UNKNOWN" -) - -// NotificationMinimumSeverityLevel defines the minimum severity level of notifications the server should send. -// Can be used for NotificationsMinSeverity of config.Config and config.SessionConfig. -type NotificationMinimumSeverityLevel string - -const ( - DefaultLevel NotificationMinimumSeverityLevel = "" - DisabledLevel NotificationMinimumSeverityLevel = "OFF" - WarningLevel NotificationMinimumSeverityLevel = "WARNING" - InformationLevel NotificationMinimumSeverityLevel = "INFORMATION" -) - -type NotificationDisabledCategories struct { - categories []NotificationCategory - none bool -} - -// NotificationDisabledClassifications is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type NotificationDisabledClassifications struct { - classifications []NotificationClassification - none bool -} - -// DisableCategories creates a NotificationDisabledCategories that disables the given categories. -// Can be used for NotificationsDisabledCategories of config.Config and config.SessionConfig. -func DisableCategories(value ...NotificationCategory) NotificationDisabledCategories { - return NotificationDisabledCategories{value, false} -} - -// DisableClassifications creates a NotificationDisabledClassifications that disables the given classifications. -// Can be used for NotificationsDisabledClassifications of config.Config and config.SessionConfig. -// -// DisableClassifications is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -func DisableClassifications(value ...NotificationClassification) NotificationDisabledClassifications { - return NotificationDisabledClassifications{value, false} -} - -// DisableNoCategories creates a NotificationDisabledCategories that enables all categories. -// Can be used for NotificationsDisabledCategories of neo4j.Config and neo4j.SessionConfig. -func DisableNoCategories() NotificationDisabledCategories { - return NotificationDisabledCategories{nil, true} -} - -// DisableNoClassifications creates a NotificationDisabledClassifications that enables all classifications. -// Can be used for NotificationsDisabledClassifications of neo4j.Config and neo4j.SessionConfig. -// -// DisableNoClassifications is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -func DisableNoClassifications() NotificationDisabledClassifications { - return NotificationDisabledClassifications{nil, true} -} - -// DisablesNone returns true if all categories are enabled. -func (n *NotificationDisabledCategories) DisablesNone() bool { - return n.none -} - -// DisablesNone returns true if all classifications are enabled. -// -// DisablesNone is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -func (n *NotificationDisabledClassifications) DisablesNone() bool { - return n.none -} - -// DisabledCategories returns the categories that are disabled. -func (n *NotificationDisabledCategories) DisabledCategories() []NotificationCategory { - return n.categories -} - -// DisabledClassifications returns the classifications that are disabled. -// -// DisabledClassifications is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -func (n *NotificationDisabledClassifications) DisabledClassifications() []NotificationClassification { - return n.classifications -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/record.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/record.go deleted file mode 100644 index 2cf7f90..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/record.go +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "fmt" - "time" -) - -type RecordValue interface { - bool | int64 | float64 | string | - Point2D | Point3D | - Date | LocalTime | LocalDateTime | Time | Duration | time.Time | /* OffsetTime == Time == dbtype.Time */ - []byte | []any | map[string]any | - Node | Relationship | Path -} - -// GetRecordValue returns the value of the current provided record named by the specified key -// The value type T must adhere to neo4j.RecordValue -// If the key specified for the value does not exist, an error is returned -// If the value is not defined for the provided existing key, the returned boolean is true -// If the value type does not match the type specification, an error is returned -// -// Take this simple graph made of three nodes: `(:Person {name: "Arya"})`, `(:Person {name: ""})`, `(:Person)` -// and the query: `MATCH (p:Person) RETURN p.name AS name`. -// The following code illustrates when an error is returned vs. when the nil flag is set to true: -// -// // the above query has been executed, `result` holds the cursor over the person nodes -// for result.Next() { -// record := result.Record() -// name, isNil, err := neo4j.GetRecordValue[string](record, "name") -// // for the person with the non-blank name, name == "Arya", isNil == false, err == nil -// // for the person with the blank name, name == "", isNil == false, err == nil -// // for the node without name, name == "", isNil == true, err == nil -// -// _, _, err := neo4j.GetRecordValue[string](record, "invalid-key") -// // this results in an error, since "invalid-key" is not part of the query result keys -// } -func GetRecordValue[T RecordValue](record *Record, key string) (T, bool, error) { - rawValue, found := record.Get(key) - if !found { - return *new(T), false, fmt.Errorf("record value %s not found", key) - } - if rawValue == nil { - return *new(T), true, nil - } - value, ok := rawValue.(T) - if !ok { - zeroValue := *new(T) - return zeroValue, false, fmt.Errorf("expected value to have type %T but found type %T", zeroValue, rawValue) - } - return value, false, nil -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result.go deleted file mode 100644 index b728451..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result.go +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" -) - -// Result is created via the Session type. -// -// Deprecated: use ResultWithContext instead. -type Result interface { - // Keys returns the keys available on the result set. - Keys() ([]string, error) - // Next returns true only if there is a record to be processed. - Next() bool - // NextRecord returns true if there is a record to be processed, record parameter is set - // to point to current record. - NextRecord(record **Record) bool - // PeekRecord returns true if there is a record after the current one to be processed without advancing the record - // stream, record parameter is set to point to that record if present. - PeekRecord(record **Record) bool - // Err returns the latest error that caused this Next to return false. - Err() error - // Record returns the current record. - Record() *Record - // Collect fetches all remaining records and returns them. - Collect() ([]*Record, error) - // Single returns one and only one record from the stream. - // If the result stream contains zero or more than one records, error is returned. - Single() (*Record, error) - // Consume discards all remaining records and returns the summary information - // about the statement execution. - Consume() (ResultSummary, error) -} - -// deprecated: use resultWithContext instead -type result struct { - delegate ResultWithContext -} - -func (r *result) Keys() ([]string, error) { - return r.delegate.Keys() -} - -func (r *result) Next() bool { - return r.delegate.Next(context.Background()) -} - -func (r *result) NextRecord(out **Record) bool { - return r.delegate.NextRecord(context.Background(), out) -} - -func (r *result) PeekRecord(out **Record) bool { - return r.delegate.PeekRecord(context.Background(), out) -} - -func (r *result) Record() *Record { - return r.delegate.Record() -} - -func (r *result) Err() error { - return r.delegate.Err() -} - -func (r *result) Collect() ([]*Record, error) { - return r.delegate.Collect(context.Background()) -} - -func (r *result) Single() (*Record, error) { - return r.delegate.Single(context.Background()) -} - -func (r *result) Consume() (ResultSummary, error) { - return r.delegate.Consume(context.Background()) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_helpers.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_helpers.go deleted file mode 100644 index 598fbcf..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_helpers.go +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "fmt" -) - -// SingleTWithContext maps the single record left to an instance of T with the provided mapper function. -// It relies on ResultWithContext.Single and propagate its error, if any. -// It accepts a context.Context, which may be canceled or carry a deadline, to control the overall record fetching -// execution time. -func SingleTWithContext[T any](ctx context.Context, result ResultWithContext, mapper func(*Record) (T, error)) (T, error) { - single, err := result.Single(ctx) - if err != nil { - return *new(T), err - } - return mapper(single) -} - -// SingleT maps the single record left to an instance of T with the provided mapper function. -// It relies on Result.Single and propagate its error, if any. -// -// Deprecated: use SingleTWithContext instead (the entry point of context-aware -// APIs is NewDriverWithContext) -func SingleT[T any](result Result, mapper func(*Record) (T, error)) (T, error) { - single, err := result.Single() - if err != nil { - return *new(T), err - } - return mapper(single) -} - -// SingleWithContext returns one and only one record from the result stream. Any error passed in -// or reported while navigating the result stream is returned without any conversion. -// If the result stream contains zero or more than one records error is returned. -// -// result, err := session.Run(...) -// record, err := neo4j.SingleWithContext(ctx, result, err) -// -// It accepts a context.Context, which may be canceled or carry a deadline, to control the overall record fetching -// execution time. -func SingleWithContext(ctx context.Context, result ResultWithContext, err error) (*Record, error) { - if err != nil { - return nil, err - } - return result.Single(ctx) -} - -// Single returns one and only one record from the result stream. Any error passed in -// or reported while navigating the result stream is returned without any conversion. -// If the result stream contains zero or more than one records error is returned. -// -// record, err := neo4j.Single(session.Run(...)) -// -// Deprecated: use SingleWithContext instead (the entry point of context-aware -// APIs is NewDriverWithContext) -func Single(result Result, err error) (*Record, error) { - if err != nil { - return nil, err - } - return result.Single() -} - -// CollectTWithContext maps the records to a slice of T with the provided mapper function. -// It relies on ResultWithContext.Collect and propagate its error, if any. -// It accepts a context.Context, which may be canceled or carry a deadline, to control the overall record fetching -// execution time. -func CollectTWithContext[T any](ctx context.Context, result ResultWithContext, mapper func(*Record) (T, error)) ([]T, error) { - records, err := result.Collect(ctx) - if err != nil { - return nil, err - } - return mapAll(records, mapper) -} - -// CollectT maps the records to a slice of T with the provided mapper function. -// It relies on Result.Collect and propagate its error, if any. -// -// Deprecated: use CollectTWithContext instead (the entry point of context-aware -// APIs is NewDriverWithContext) -func CollectT[T any](result Result, mapper func(*Record) (T, error)) ([]T, error) { - records, err := result.Collect() - if err != nil { - return nil, err - } - return mapAll(records, mapper) -} - -// CollectWithContext aggregates the records into a slice. -// It relies on ResultWithContext.Collect and propagate its error, if any. -// -// result, err := session.Run(...) -// records, err := neo4j.CollectWithContext(ctx, result, err) -// -// It accepts a context.Context, which may be canceled or carry a deadline, to control the overall record fetching -// execution time. -func CollectWithContext(ctx context.Context, result ResultWithContext, err error) ([]*Record, error) { - if err != nil { - return nil, err - } - return result.Collect(ctx) -} - -// Collect aggregates the records into a slice. -// It relies on Result.Collect and propagate its error, if any. -// -// records, err := neo4j.Collect(session.Run(...)) -// -// Deprecated: use CollectWithContext instead (the entry point of context-aware -// APIs is NewDriverWithContext) -func Collect(result Result, err error) ([]*Record, error) { - if err != nil { - return nil, err - } - return result.Collect() -} - -// AsRecords passes any existing error or casts from to a slice of records. -// Use in combination with Collect and transactional functions: -// -// records, err := neo4j.AsRecords(session.ExecuteRead(func (tx neo4j.Transaction) { -// return neo4j.Collect(tx.Run(...)) -// })) -func AsRecords(from any, err error) ([]*Record, error) { - if err != nil { - return nil, err - } - recs, ok := from.([]*Record) - if !ok { - return nil, &UsageError{ - Message: fmt.Sprintf("Expected type []*Record, not %T", from), - } - } - return recs, nil -} - -// AsRecord passes any existing error or casts from to a record. -// Use in combination with Single and transactional functions: -// -// record, err := neo4j.AsRecord(session.ExecuteRead(func (tx neo4j.Transaction) { -// return neo4j.Single(tx.Run(...)) -// })) -func AsRecord(from any, err error) (*Record, error) { - if err != nil { - return nil, err - } - rec, ok := from.(*Record) - if !ok { - return nil, &UsageError{ - Message: fmt.Sprintf("Expected type *Record, not %T", from), - } - } - return rec, nil -} - -func mapAll[T any](records []*Record, mapper func(*Record) (T, error)) ([]T, error) { - results := make([]T, len(records)) - for i, record := range records { - mappedRecord, err := mapper(record) - if err != nil { - return nil, err - } - results[i] = mappedRecord - } - return results, nil -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_with_context.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_with_context.go deleted file mode 100644 index b689dde..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_with_context.go +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" -) - -type ResultWithContext interface { - // Keys returns the keys available on the result set. - Keys() ([]string, error) - // NextRecord returns true if there is a record to be processed, record parameter is set - // to point to current record. - NextRecord(ctx context.Context, record **Record) bool - // Next returns true only if there is a record to be processed. - Next(ctx context.Context) bool - // PeekRecord returns true if there is a record after the current one to be processed without advancing the record - // stream, record parameter is set to point to that record if present. - PeekRecord(ctx context.Context, record **Record) bool - // Peek returns true only if there is a record after the current one to be processed without advancing the record - // stream - Peek(ctx context.Context) bool - // Err returns the latest error that caused this Next to return false. - Err() error - // Record returns the current record. - Record() *Record - // Collect fetches all remaining records and returns them. - Collect(ctx context.Context) ([]*Record, error) - // Records returns a single-use iterator over the records in this result. - // This method's signature is in the style of and compatible with iter.Seq2 (go 1.23.0 and newer). - Records(ctx context.Context) func(yield func(*Record, error) bool) - // Single returns the only remaining record from the stream. - // If none or more than one record is left, an error is returned. - // The result is fully consumed after this call and its summary is immediately available when calling Consume. - Single(ctx context.Context) (*Record, error) - // Consume discards all remaining records and returns the summary information - // about the statement execution. - Consume(ctx context.Context) (ResultSummary, error) - // IsOpen determines whether this result cursor is available - IsOpen() bool - buffer(ctx context.Context) - legacy() Result - errorHandler(err error) -} - -const consumedResultError = "result cursor is not available anymore" - -const resultFailedError = "result failed due to invalid transaction" - -type resultWithContext struct { - conn idb.Connection - streamHandle idb.StreamHandle - cypher string - params map[string]any - record *Record - summary *db.Summary - err error - peekedRecord *Record - peekedSummary *db.Summary - peeked bool - txState *transactionState - afterConsumptionHook func() -} - -func newResultWithContext( - connection idb.Connection, - stream idb.StreamHandle, - cypher string, - params map[string]any, - txState *transactionState, - afterConsumptionHook func(), -) ResultWithContext { - return &resultWithContext{ - conn: connection, - streamHandle: stream, - cypher: cypher, - params: params, - txState: txState, - afterConsumptionHook: afterConsumptionHook, - } -} - -func (r *resultWithContext) Keys() ([]string, error) { - return r.conn.Keys(r.streamHandle) -} - -func (r *resultWithContext) NextRecord(ctx context.Context, out **Record) bool { - hasNext := r.Next(ctx) - if out != nil { - *out = r.record - } - return hasNext -} - -func (r *resultWithContext) Next(ctx context.Context) bool { - r.checkOpen() - if r.err != nil { - return false - } - r.advance(ctx) - if r.summary != nil { - r.callAfterConsumptionHook() - } - return r.record != nil -} - -func (r *resultWithContext) PeekRecord(ctx context.Context, out **Record) bool { - hasNext := r.Peek(ctx) - if out != nil { - *out = r.peekedRecord - } - return hasNext -} - -func (r *resultWithContext) Peek(ctx context.Context) bool { - r.checkOpen() - if r.err != nil { - return false - } - r.peek(ctx) - return r.peekedRecord != nil -} - -func (r *resultWithContext) Err() error { - return errorutil.WrapError(r.err) -} - -func (r *resultWithContext) Record() *Record { - if r.peekedRecord != nil { - return r.peekedRecord - } - return r.record -} - -func (r *resultWithContext) Records(ctx context.Context) func(yield func(*Record, error) bool) { - return func(yield func(*db.Record, error) bool) { - for { - r.checkOpen() - if r.err != nil { - break - } - r.advance(ctx) - if r.record == nil || r.err != nil || r.summary != nil { - break - } - if !yield(r.record, nil) { - return - } - } - if r.err != nil { - yield(nil, errorutil.WrapError(r.err)) - } - if r.summary != nil { - r.callAfterConsumptionHook() - } - } -} - -func (r *resultWithContext) Collect(ctx context.Context) ([]*Record, error) { - if r.err != nil { - return nil, errorutil.WrapError(r.err) - } - if r.summary != nil { - return []*Record{}, nil - } - recs := make([]*Record, 0, 1024) - var err error - r.Records(ctx)(func(r *Record, innerErr error) bool { - if innerErr != nil { - err = innerErr - return false - } - - recs = append(recs, r) - return true - }) - if err != nil { - return nil, err - } - return recs, nil -} - -func (r *resultWithContext) Single(ctx context.Context) (*Record, error) { - // Try retrieving the single record - r.advance(ctx) - if r.err != nil { - return nil, errorutil.WrapError(r.err) - } - if r.summary != nil { - r.err = &UsageError{Message: "Result contains no more records"} - return nil, r.err - } - - // This is the potential single record - single := r.record - - // Probe connection for more records - r.advance(ctx) - if r.record != nil { - // There were more records, consume the stream since the user didn't - // expect more records and should therefore not use them. - r.summary, _ = r.conn.Consume(ctx, r.streamHandle) - r.err = &UsageError{Message: "Result contains more than one record"} - r.record = nil - return nil, r.err - } - if r.err != nil { - // Might be more records or not, anyway something is bad. - // Both r.record and r.summary are nil at this point which is good. - return nil, errorutil.WrapError(r.err) - } - // We got the expected summary - // r.record contains the single record and r.summary the summary. - r.record = single - r.callAfterConsumptionHook() - return single, nil -} - -func (r *resultWithContext) Consume(ctx context.Context) (ResultSummary, error) { - // Already failed, reuse the internal error, might have been - // set by Single to indicate some kind of usage error that "destroyed" - // the result. - if r.err != nil { - return nil, errorutil.WrapError(r.err) - } - - r.record = nil - r.summary, r.err = r.conn.Consume(ctx, r.streamHandle) - if r.err != nil { - return nil, errorutil.WrapError(r.err) - } - r.callAfterConsumptionHook() - return r.toResultSummary(), nil -} - -func (r *resultWithContext) IsOpen() bool { - return r.isOpen() -} - -func (r *resultWithContext) legacy() Result { - return &result{delegate: r} -} - -func (r *resultWithContext) buffer(ctx context.Context) { - if r.err = r.conn.Buffer(ctx, r.streamHandle); r.err == nil { - r.callAfterConsumptionHook() - } -} - -func (r *resultWithContext) toResultSummary() ResultSummary { - return &resultSummary{ - sum: r.summary, - cypher: r.cypher, - params: r.params, - } -} - -func (r *resultWithContext) advance(ctx context.Context) { - if r.peeked { - r.record, r.peekedRecord = r.peekedRecord, nil - r.summary, r.peekedSummary = r.peekedSummary, nil - r.peeked = false - } else { - r.record, r.summary, r.err = r.conn.Next(ctx, r.streamHandle) - if r.err != nil { - r.txState.onError(r.err) - } - } -} - -func (r *resultWithContext) peek(ctx context.Context) { - if !r.peeked { - r.peekedRecord, r.peekedSummary, r.err = r.conn.Next(ctx, r.streamHandle) - r.peeked = true - } -} - -func (r *resultWithContext) checkOpen() { - alreadyChecked := r.err != nil && r.err.Error() == consumedResultError - if !alreadyChecked && !r.isOpen() { - r.err = &UsageError{Message: consumedResultError} - } -} - -func (r *resultWithContext) isOpen() bool { - return r.summary == nil -} - -func (r *resultWithContext) callAfterConsumptionHook() { - if r.afterConsumptionHook == nil { - return - } - r.afterConsumptionHook() - r.afterConsumptionHook = nil -} - -func (r *resultWithContext) errorHandler(error) { - if r.err == nil { - r.err = &UsageError{Message: resultFailedError} - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/resultsummary.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/resultsummary.go deleted file mode 100644 index 1a89dab..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/resultsummary.go +++ /dev/null @@ -1,832 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - inotifications "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" - "math" - "sort" - "time" -) - -// StatementType defines the type of the statement -type StatementType int - -const ( - // StatementTypeUnknown identifies an unknown statement type - StatementTypeUnknown StatementType = 0 - // StatementTypeReadOnly identifies a read-only statement - StatementTypeReadOnly StatementType = 1 - // StatementTypeReadWrite identifies a read-write statement - StatementTypeReadWrite StatementType = 2 - // StatementTypeWriteOnly identifies a write-only statement - StatementTypeWriteOnly StatementType = 3 - // StatementTypeSchemaWrite identifies a schema-write statement - StatementTypeSchemaWrite StatementType = 4 -) - -func (st StatementType) String() string { - switch st { - case StatementTypeReadOnly: - return "r" - case StatementTypeReadWrite: - return "rw" - case StatementTypeWriteOnly: - return "w" - case StatementTypeSchemaWrite: - return "s" - default: - return "" - } -} - -type ResultSummary interface { - // Server returns basic information about the server where the statement is carried out. - Server() ServerInfo - // Query returns the query that has been executed. - Query() Query - // StatementType returns type of statement that has been executed. - StatementType() StatementType - // Counters returns statistics counts for the statement. - Counters() Counters - // Plan returns statement plan for the executed statement if available, otherwise null. - Plan() Plan - // Profile returns profiled statement plan for the executed statement if available, otherwise null. - Profile() ProfiledPlan - // Notifications returns a slice of notifications produced while executing the statement. - // The list will be empty if no notifications produced while executing the statement. - Notifications() []Notification - // GqlStatusObjects returns a slice of GqlStatusObjects that arose when executing the query. - // - // The slice always contains at least 1 status representing the Success, No Data, or Omitted Result. - // All other statuses are notifications such as warnings about problematic queries or other valuable - // information that can be presented to a client. - // - // The GqlStatusObjects will be presented in the following order: - // - A "no data" (``02xxx``) has precedence over a warning. - // - A "warning" (``01xxx``) has precedence over a success. - // - A "success" (``00xxx``) has precedence over anything informational (``03xxx``). - // - // GqlStatusObjects is part of the GQL compliant notifications preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlStatusObjects() []GqlStatusObject - // ResultAvailableAfter returns the time it took for the server to make the result available for consumption. - // Since 5.0, this returns a negative duration if the server has not sent the corresponding statistic. - ResultAvailableAfter() time.Duration - // ResultConsumedAfter returns the time it took the server to consume the result. - // Since 5.0, this returns a negative duration if the server has not sent the corresponding statistic. - ResultConsumedAfter() time.Duration - // Database returns information about the database where the result is obtained from - // Returns nil for Neo4j versions prior to v4. - // Returns the default "neo4j" database for Community Edition servers. - Database() DatabaseInfo -} - -// Counters contains statistics about the changes made to the database made as part -// of the statement execution. -type Counters interface { - // Whether there were any updates at all, eg. any of the counters are greater than 0. - ContainsUpdates() bool - // The number of nodes created. - NodesCreated() int - // The number of nodes deleted. - NodesDeleted() int - // The number of relationships created. - RelationshipsCreated() int - // The number of relationships deleted. - RelationshipsDeleted() int - PropertiesSet() int - // The number of labels added to nodes. - LabelsAdded() int - // The number of labels removed from nodes. - LabelsRemoved() int - // The number of indexes added to the schema. - IndexesAdded() int - // The number of indexes removed from the schema. - IndexesRemoved() int - // The number of constraints added to the schema. - ConstraintsAdded() int - // The number of constraints removed from the schema. - ConstraintsRemoved() int - // The number of system updates - SystemUpdates() int - // ContainsSystemUpdates indicates whether the query contains system updates - ContainsSystemUpdates() bool -} - -type Statement interface { - Query -} - -type Query interface { - // Text returns the statement's text. - Text() string - // Parameters returns the statement's parameters. - Parameters() map[string]any -} - -// ServerInfo contains basic information of the server. -type ServerInfo interface { - // Address returns the address of the server. - Address() string - Agent() string - ProtocolVersion() db.ProtocolVersion -} - -type simpleServerInfo struct { - address string - agent string - protocolVersion db.ProtocolVersion -} - -func (s simpleServerInfo) Address() string { - return s.address -} - -func (s simpleServerInfo) Agent() string { - return s.agent -} - -func (s simpleServerInfo) ProtocolVersion() db.ProtocolVersion { - return s.protocolVersion -} - -// DatabaseInfo contains basic information of the database the query result has been obtained from. -type DatabaseInfo interface { - Name() string -} - -// Plan describes the actual plan that the database planner produced and used (or will use) to execute your statement. -// This can be extremely helpful in understanding what a statement is doing, and how to optimize it. For more details, -// see the Neo4j Manual. The plan for the statement is a tree of plans - each sub-tree containing zero or more child -// plans. The statement starts with the root plan. Each sub-plan is of a specific operator, which describes what -// that part of the plan does - for instance, perform an index lookup or filter results. -// The Neo4j Manual contains a reference of the available operator types, and these may differ across Neo4j versions. -type Plan interface { - // Operator returns the operation this plan is performing. - Operator() string - // Arguments returns the arguments for the operator used. - // Many operators have arguments defining their specific behavior. This map contains those arguments. - Arguments() map[string]any - // Identifiers returns a list of identifiers used by this plan. Identifiers used by this part of the plan. - // These can be both identifiers introduced by you, or automatically generated. - Identifiers() []string - // Children returns zero or more child plans. A plan is a tree, where each child is another plan. - // The children are where this part of the plan gets its input records - unless this is an operator that - // introduces new records on its own. - Children() []Plan -} - -// ProfiledPlan is the same as a regular Plan - except this plan has been executed, meaning it also -// contains detailed information about how much work each step of the plan incurred on the database. -type ProfiledPlan interface { - // Operator returns the operation this plan is performing. - Operator() string - // Arguments returns the arguments for the operator used. - // Many operators have arguments defining their specific behavior. This map contains those arguments. - Arguments() map[string]any - // Identifiers returns a list of identifiers used by this plan. Identifiers used by this part of the plan. - // These can be both identifiers introduced by you, or automatically generated. - Identifiers() []string - // DbHits returns the number of times this part of the plan touched the underlying data stores/ - DbHits() int64 - // Records returns the number of records this part of the plan produced. - Records() int64 - // Children returns zero or more child plans. A plan is a tree, where each child is another plan. - // The children are where this part of the plan gets its input records - unless this is an operator that - // introduces new records on its own. - Children() []ProfiledPlan - PageCacheMisses() int64 - PageCacheHits() int64 - PageCacheHitRatio() float64 - Time() int64 -} - -// Notification represents notifications generated when executing a statement. -// A notification can be visualized in a client pinpointing problems or other information about the statement. -// Contrary to failures or errors, notifications do not affect the execution of the statement. -type Notification interface { - // Code returns a notification code for the discovered issue of this notification. - Code() string - // Title returns a short summary of this notification. - Title() string - // Description returns a longer description of this notification. - Description() string - // Position returns the position in the statement where this notification points to. - // Not all notifications have a unique position to point to and in that case the position would be set to nil. - Position() InputPosition - // Severity returns the severity level of this notification. - // - // Deprecated: please use SeverityLevel (or RawSeverityLevel) instead. Severity will be removed in 6.0. - Severity() string - // RawSeverityLevel returns the unmapped severity level of this notification. - // This is useful when the driver cannot interpret the severity level returned by the server - // In that case, SeverityLevel returns UnknownSeverity while RawSeverityLevel returns the raw string - RawSeverityLevel() string - // RawCategory returns the unmapped category of this notification. - // This is useful when the driver cannot interpret the category returned by the server - // In that case, Category returns UnknownCategory while RawCategory returns the raw string - RawCategory() string - // SeverityLevel returns the mapped security level of this notification. - // If the severity level is not a known value, SeverityLevel returns notifications.UnknownSeverity - // Call RawSeverityLevel to get access to the raw string value - SeverityLevel() notifications.NotificationSeverity - // Category returns the mapped category of this notification. - // If the category is not a known value, Category returns UnknownCategory - // Call RawCategory to get access to the raw string value - Category() notifications.NotificationCategory -} - -// GqlStatusObject represents a GqlStatusObject generated when executing a statement. -// A GqlStatusObject can be visualized in a client pinpointing problems or other information about the statement. -// Contrary to failures or errors, GqlStatusObjects do not affect the execution of the statement. -// -// GqlStatusObject is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type GqlStatusObject interface { - // GqlStatus returns the GQLSTATUS. - // The following GQLSTATUS codes denote codes that the driver will use for - // polyfilling (when connected to an old, non-GQL-aware server). Further, they may be used by servers - // during the transition-phase to GQLSTATUS-awareness. - // - "01N42" (warning - unknown warning) - // - "02N42" (no data - unknown subcondition) - // - "03N42" (informational - unknown notification) - // - "05N42" (general processing exception - unknown error) - // - // This means these codes are not guaranteed to be stable and may change in future versions. - GqlStatus() string - // StatusDescription returns a description of the status. - StatusDescription() string - // Position returns the position in the statement where this status points to. - // Not all statuses have a unique position to point to and in that case the position would be set to nil. - // - // Only Notifications (see IsNotification) have a meaningful position. - Position() InputPosition - // Classification returns the mapped Classification of this status. - // If the Classification is not a known value, Classification returns notifications.UnknownClassification. - // Call RawClassification to get access to the raw string value - // - // Only Notifications (see IsNotification) have a meaningful classification. - Classification() notifications.NotificationClassification - // RawClassification returns the unmapped Classification of this status. - // This is useful when the driver cannot interpret the Classification returned by the server. - // - // Only Notifications (see IsNotification) have a meaningful classification. - RawClassification() string - // Severity returns the mapped Severity of this status. - // If the Severity is not a known value, Severity returns notifications.UnknownSeverity. - // Call RawSeverity to get access to the raw string value - // - // Only Notifications (see IsNotification) have a meaningful severity. - Severity() notifications.NotificationSeverity - // RawSeverity returns the unmapped Severity level of this status. - // This is useful when the driver cannot interpret the Severity returned by the server - // - // Only Notifications (see IsNotification) have a meaningful severity. - RawSeverity() string - // DiagnosticRecord returns further information about the status for diagnostic purposes. - // Call RawDiagnosticRecord to get access to the raw string value. - DiagnosticRecord() map[string]any - // RawDiagnosticRecord returns a string version of DiagnosticRecord. - // The purpose of this function is to provide a serialized object for human inspection. - RawDiagnosticRecord() string - // IsNotification returns true if this status is a Notification. - // - // Only some statuses are Notifications. - IsNotification() bool -} - -// InputPosition contains information about a specific position in a statement -type InputPosition interface { - // Offset returns the character offset referred to by this position; offset numbers start at 0. - Offset() int - // Line returns the line number referred to by this position; line numbers start at 1. - Line() int - // Column returns the column number referred to by this position; column numbers start at 1. - Column() int -} - -// Deprecated: please use notifications.NotificationSeverity directly. This will be removed in 6.0. -type NotificationSeverity = notifications.NotificationSeverity - -const ( - // Deprecated: please use notifications.Warning directly. This will be removed in 6.0. - Warning NotificationSeverity = notifications.Warning - // Deprecated: please use notifications.Information directly. This will be removed in 6.0. - Information NotificationSeverity = notifications.Information - // Deprecated: please use notifications.UnknownSeverity directly. This will be removed in 6.0. - UnknownSeverity NotificationSeverity = notifications.UnknownSeverity -) - -// Deprecated: please use notifications.NotificationCategory directly. This will be removed in 6.0. -type NotificationCategory = notifications.NotificationCategory - -const ( - // Deprecated: please use notifications.Hint directly. This will be removed in 6.0. - Hint NotificationCategory = notifications.Hint - // Deprecated: please use notifications.Unrecognized directly. This will be removed in 6.0. - Unrecognized NotificationCategory = notifications.Unrecognized - // Deprecated: please use notifications.Unsupported directly. This will be removed in 6.0. - Unsupported NotificationCategory = notifications.Unsupported - // Deprecated: please use notifications.Performance directly. This will be removed in 6.0. - Performance NotificationCategory = notifications.Performance - // Deprecated: please use notifications.Deprecation directly. This will be removed in 6.0. - Deprecation NotificationCategory = notifications.Deprecation - // Deprecated: please use notifications.Generic directly. This will be removed in 6.0. - Generic NotificationCategory = notifications.Generic - // Deprecated: please use notifications.Security directly. This will be removed in 6.0. - Security NotificationCategory = notifications.Security - // Deprecated: please use notifications.Topology directly. This will be removed in 6.0. - Topology NotificationCategory = notifications.Topology - // Deprecated: please use notifications.Schema directly. This will be removed in 6.0. - Schema NotificationCategory = notifications.Schema - // Deprecated: please use notifications.Unknown directly. This will be removed in 6.0. - UnknownCategory NotificationCategory = notifications.Unknown -) - -type resultSummary struct { - sum *db.Summary - cypher string - params map[string]any -} - -func (s *resultSummary) Agent() string { - return s.sum.Agent -} - -func (s *resultSummary) ProtocolVersion() db.ProtocolVersion { - return db.ProtocolVersion{ - Major: s.sum.Major, - Minor: s.sum.Minor, - } -} - -func (s *resultSummary) Server() ServerInfo { - return s -} - -func (s *resultSummary) Address() string { - return s.sum.ServerName -} - -func (s *resultSummary) Query() Query { - return s -} - -func (s *resultSummary) StatementType() StatementType { - return StatementType(s.sum.StmntType) -} - -func (s *resultSummary) Text() string { - return s.cypher -} - -func (s *resultSummary) Parameters() map[string]any { - return s.params -} - -func (s *resultSummary) Counters() Counters { - return s -} - -func (s *resultSummary) ContainsUpdates() bool { - if s.sum.ContainsUpdates != nil { - return *s.sum.ContainsUpdates - } - return s.ConstraintsAdded() > 0 || s.ConstraintsRemoved() > 0 || - s.IndexesAdded() > 0 || s.IndexesRemoved() > 0 || - s.NodesCreated() > 0 || s.NodesDeleted() > 0 || - s.RelationshipsCreated() > 0 || s.RelationshipsDeleted() > 0 || - s.LabelsAdded() > 0 || s.LabelsRemoved() > 0 || - s.PropertiesSet() > 0 -} - -func (s *resultSummary) getCounter(n string) int { - if s.sum.Counters == nil { - return 0 - } - return s.sum.Counters[n] -} - -func (s *resultSummary) SystemUpdates() int { - return s.getCounter(db.SystemUpdates) -} - -func (s *resultSummary) ContainsSystemUpdates() bool { - if s.sum.ContainsSystemUpdates != nil { - return *s.sum.ContainsSystemUpdates - } - return s.getCounter(db.SystemUpdates) > 0 -} - -func (s *resultSummary) NodesCreated() int { - return s.getCounter(db.NodesCreated) -} - -func (s *resultSummary) NodesDeleted() int { - return s.getCounter(db.NodesDeleted) -} - -func (s *resultSummary) RelationshipsCreated() int { - return s.getCounter(db.RelationshipsCreated) -} - -func (s *resultSummary) RelationshipsDeleted() int { - return s.getCounter(db.RelationshipsDeleted) -} - -func (s *resultSummary) PropertiesSet() int { - return s.getCounter(db.PropertiesSet) -} - -func (s *resultSummary) LabelsAdded() int { - return s.getCounter(db.LabelsAdded) -} - -func (s *resultSummary) LabelsRemoved() int { - return s.getCounter(db.LabelsRemoved) -} - -func (s *resultSummary) IndexesAdded() int { - return s.getCounter(db.IndexesAdded) -} - -func (s *resultSummary) IndexesRemoved() int { - return s.getCounter(db.IndexesRemoved) -} - -func (s *resultSummary) ConstraintsAdded() int { - return s.getCounter(db.ConstraintsAdded) -} - -func (s *resultSummary) ConstraintsRemoved() int { - return s.getCounter(db.ConstraintsRemoved) -} - -func (s *resultSummary) ResultAvailableAfter() time.Duration { - return time.Duration(s.sum.TFirst) * time.Millisecond -} - -func (s *resultSummary) ResultConsumedAfter() time.Duration { - return time.Duration(s.sum.TLast) * time.Millisecond -} - -func (s *resultSummary) Plan() Plan { - if s.sum.Plan == nil { - return nil - } - return &plan{plan: s.sum.Plan} -} - -func (s *resultSummary) Database() DatabaseInfo { - database := s.sum.Database - if database == "" { - return nil - } - return &databaseInfo{name: database} -} - -type databaseInfo struct { - name string -} - -func (d *databaseInfo) Name() string { - return d.name -} - -type plan struct { - plan *db.Plan -} - -func (p *plan) Operator() string { - return p.plan.Operator -} - -func (p *plan) Arguments() map[string]any { - return p.plan.Arguments -} - -func (p *plan) Identifiers() []string { - return p.plan.Identifiers -} - -func (p *plan) Children() []Plan { - children := make([]Plan, len(p.plan.Children)) - for i, c := range p.plan.Children { - children[i] = &plan{plan: &c} - } - return children -} - -func (s *resultSummary) Profile() ProfiledPlan { - if s.sum.ProfiledPlan == nil { - return nil - } - return &profile{profile: s.sum.ProfiledPlan} -} - -type profile struct { - profile *db.ProfiledPlan -} - -func (p *profile) String() string { - return fmt.Sprintf("%v", *p.profile) -} - -func (p *profile) Operator() string { - return p.profile.Operator -} - -func (p *profile) Arguments() map[string]any { - return p.profile.Arguments -} - -func (p *profile) Identifiers() []string { - return p.profile.Identifiers -} - -func (p *profile) DbHits() int64 { - return p.profile.DbHits -} - -func (p *profile) Records() int64 { - return p.profile.Records -} - -func (p *profile) Children() []ProfiledPlan { - children := make([]ProfiledPlan, len(p.profile.Children)) - for i, c := range p.profile.Children { - child := c - children[i] = &profile{profile: &child} - } - return children -} - -func (p *profile) PageCacheMisses() int64 { - return p.profile.PageCacheMisses -} - -func (p *profile) PageCacheHits() int64 { - return p.profile.PageCacheHits -} - -func (p *profile) PageCacheHitRatio() float64 { - return p.profile.PageCacheHitRatio -} - -func (p *profile) Time() int64 { - return p.profile.Time -} - -func (s *resultSummary) Notifications() []Notification { - if s.sum.Notifications != nil { - n := make([]Notification, 0, len(s.sum.Notifications)) - for i := range s.sum.Notifications { - n = append(n, ¬ification{notification: &s.sum.Notifications[i]}) - } - return n - } - - if s.sum.GqlStatusObjects != nil { - // Polyfill Notifications from GqlStatusObjects - n := make([]Notification, 0, len(s.sum.GqlStatusObjects)) - for i := range s.sum.GqlStatusObjects { - status := s.sum.GqlStatusObjects[i] - if status.IsNotification { - n = append(n, ¬ification{notification: inotifications.ToNotification(status)}) - } - } - return n - } - return nil -} - -func (s *resultSummary) GqlStatusObjects() []GqlStatusObject { - if s.sum.GqlStatusObjects != nil { - g := make([]GqlStatusObject, 0, len(s.sum.GqlStatusObjects)) - for i := range s.sum.GqlStatusObjects { - g = append(g, &gqlStatusObject{gqlStatusObject: &s.sum.GqlStatusObjects[i]}) - } - return g - } - if s.sum.Notifications != nil { - // Polyfill GqlStatusObjects from Notifications - g := make([]GqlStatusObject, 0, len(s.sum.Notifications)) - for i := range s.sum.Notifications { - g = append(g, &gqlStatusObject{gqlStatusObject: inotifications.ToGqlStatusObject(s.sum.Notifications[i])}) - } - // Append client generated polyfill status - g = append(g, &gqlStatusObject{gqlStatusObject: inotifications.ToGqlStatusObjectFromSummary(s.sum.StreamSummary)}) - // Sort by GqlStatus weight - sort.Slice(g, func(i, j int) bool { - return calculateGqlStatusWeight(g[i]) < calculateGqlStatusWeight(g[j]) - }) - return g - } - // If both s.sum.GqlStatusObjects and s.sum.Notifications are nil - return []GqlStatusObject{&gqlStatusObject{gqlStatusObject: inotifications.ToGqlStatusObjectFromSummary(s.sum.StreamSummary)}} -} - -func calculateGqlStatusWeight(gqlStatusObject GqlStatusObject) int { - status := gqlStatusObject.GqlStatus()[:2] - switch status { - case "02": - return 0 // no data - case "01": - return 1 // warning - case "00": - return 2 // success - case "03": - return 3 // informational - default: - return math.MaxInt // unknown or error statuses - } -} - -type notification struct { - notification *db.Notification -} - -func (n *notification) Code() string { - return n.notification.Code -} - -func (n *notification) Title() string { - return n.notification.Title -} - -func (n *notification) Description() string { - return n.notification.Description -} - -func (n *notification) Severity() string { - return n.RawSeverityLevel() -} - -func (n *notification) RawSeverityLevel() string { - return n.notification.Severity -} - -func (n *notification) SeverityLevel() notifications.NotificationSeverity { - switch n.notification.Severity { - case "WARNING": - return Warning - case "INFORMATION": - return Information - default: - return UnknownSeverity - } -} - -func (n *notification) RawCategory() string { - return n.notification.Category -} - -func (n *notification) Category() notifications.NotificationCategory { - switch n.notification.Category { - case "HINT": - return Hint - case "UNRECOGNIZED": - return Unrecognized - case "UNSUPPORTED": - return Unsupported - case "PERFORMANCE": - return Performance - case "DEPRECATION": - return Deprecation - case "SECURITY": - return Security - case "TOPOLOGY": - return Topology - case "SCHEMA": - return Schema - case "GENERIC": - return Generic - default: - return UnknownCategory - } -} - -func (n *notification) Position() InputPosition { - if n.notification.Position == nil { - return nil - } - return n -} - -func (n *notification) Offset() int { - return n.notification.Position.Offset -} - -func (n *notification) Column() int { - return n.notification.Position.Column -} - -func (n *notification) Line() int { - return n.notification.Position.Line -} - -type gqlStatusObject struct { - gqlStatusObject *db.GqlStatusObject -} - -func (g *gqlStatusObject) GqlStatus() string { - return g.gqlStatusObject.GqlStatus -} - -func (g *gqlStatusObject) StatusDescription() string { - return g.gqlStatusObject.StatusDescription -} - -func (g *gqlStatusObject) Position() InputPosition { - if g.gqlStatusObject.Position == nil { - return nil - } - return g -} - -func (g *gqlStatusObject) Offset() int { - return g.gqlStatusObject.Position.Offset -} - -func (g *gqlStatusObject) Column() int { - return g.gqlStatusObject.Position.Column -} - -func (g *gqlStatusObject) Line() int { - return g.gqlStatusObject.Position.Line -} - -func (g *gqlStatusObject) Classification() notifications.NotificationClassification { - switch g.gqlStatusObject.Classification { - case "HINT": - return notifications.Hint - case "UNRECOGNIZED": - return notifications.Unrecognized - case "UNSUPPORTED": - return notifications.Unsupported - case "PERFORMANCE": - return notifications.Performance - case "DEPRECATION": - return notifications.Deprecation - case "SECURITY": - return notifications.Security - case "TOPOLOGY": - return notifications.Topology - case "SCHEMA": - return notifications.Schema - case "GENERIC": - return notifications.Generic - default: - return notifications.Unknown - } -} - -func (g *gqlStatusObject) RawClassification() string { - return g.gqlStatusObject.Classification -} - -func (g *gqlStatusObject) Severity() notifications.NotificationSeverity { - switch g.gqlStatusObject.Severity { - case "WARNING": - return Warning - case "INFORMATION": - return Information - default: - return UnknownSeverity - } -} - -func (g *gqlStatusObject) RawSeverity() string { - return g.gqlStatusObject.Severity -} - -func (g *gqlStatusObject) DiagnosticRecord() map[string]any { - return g.gqlStatusObject.DiagnosticRecord -} - -func (g *gqlStatusObject) RawDiagnosticRecord() string { - return fmt.Sprintf("%v", g.gqlStatusObject.DiagnosticRecord) -} - -func (g *gqlStatusObject) IsNotification() bool { - return g.gqlStatusObject.IsNotification -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session.go deleted file mode 100644 index 40dd384..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session.go +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" -) - -// Session represents a logical connection (which is not tied to a physical connection) -// to the server -// -// SessionWithContext is created via the context-aware driver returned -// by NewDriverWithContext. -// -// Deprecated: use SessionWithContext instead. Session will be removed in 6.0. -type Session interface { - // LastBookmarks returns the bookmark received following the last successfully completed transaction. - // If no bookmark was received or if this transaction was rolled back, the initial set of bookmarks will be - // returned. - LastBookmarks() Bookmarks - // LastBookmark returns the bookmark received following the last successfully completed transaction. - // If no bookmark was received or if this transaction was rolled back, the bookmark value will not be changed. - // Warning: this method can lead to unexpected behaviour if the session has not yet successfully completed a - // transaction. - // - // Deprecated: since version 5.0. Will be removed in 6.0. Use LastBookmarks instead. - LastBookmark() string - // BeginTransaction starts a new explicit transaction on this session - BeginTransaction(configurers ...func(*TransactionConfig)) (Transaction, error) - // ReadTransaction executes the given unit of work in a AccessModeRead transaction with - // retry logic in place - ReadTransaction(work TransactionWork, configurers ...func(*TransactionConfig)) (any, error) - // WriteTransaction executes the given unit of work in a AccessModeWrite transaction with - // retry logic in place - WriteTransaction(work TransactionWork, configurers ...func(*TransactionConfig)) (any, error) - // Run executes an auto-commit statement and returns a result - Run(cypher string, params map[string]any, configurers ...func(*TransactionConfig)) (Result, error) - // Close closes any open resources and marks this session as unusable - Close() error -} - -type session struct { - delegate *sessionWithContext -} - -func (s *session) LastBookmarks() Bookmarks { - return s.delegate.LastBookmarks() -} - -func (s *session) LastBookmark() string { - return s.delegate.lastBookmark() -} - -func (s *session) BeginTransaction(configurers ...func(*TransactionConfig)) (Transaction, error) { - tx, err := s.delegate.BeginTransaction(context.Background(), configurers...) - if err != nil { - return nil, err - } - return tx.legacy(), nil -} - -func (s *session) ReadTransaction( - work TransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.delegate.ExecuteRead( - context.Background(), - transactionWorkBridge(work), - configurers..., - ) -} - -func (s *session) WriteTransaction( - work TransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.delegate.ExecuteWrite( - context.Background(), - transactionWorkBridge(work), - configurers..., - ) -} - -func (s *session) Run( - cypher string, params map[string]any, configurers ...func(*TransactionConfig)) (Result, error) { - - result, err := s.delegate.Run(context.Background(), cypher, params, configurers...) - if err != nil { - return nil, err - } - return result.legacy(), nil -} - -func (s *session) Close() error { - return s.delegate.Close(context.Background()) -} - -func transactionWorkBridge(work TransactionWork) ManagedTransactionWork { - return func(txc ManagedTransaction) (any, error) { - return work(txc.legacy()) - } -} - -type erroredSession struct { - err error -} - -func (s *erroredSession) LastBookmark() string { - return "" -} - -func (s *erroredSession) LastBookmarks() Bookmarks { - return []string{} -} - -func (s *erroredSession) BeginTransaction(...func(*TransactionConfig)) (Transaction, error) { - return nil, s.err -} -func (s *erroredSession) ReadTransaction(TransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSession) WriteTransaction(TransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSession) Run(string, map[string]any, ...func(*TransactionConfig)) (Result, error) { - return nil, s.err -} -func (s *erroredSession) Close() error { - return s.err -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_bookmarks.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_bookmarks.go deleted file mode 100644 index d877109..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_bookmarks.go +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import "context" - -type sessionBookmarks struct { - bookmarkManager BookmarkManager - bookmarks Bookmarks -} - -func newSessionBookmarks(bookmarkManager BookmarkManager, bookmarks Bookmarks) *sessionBookmarks { - return &sessionBookmarks{ - bookmarkManager: bookmarkManager, - bookmarks: cleanupBookmarks(bookmarks), - } -} - -func (sb *sessionBookmarks) currentBookmarks() Bookmarks { - return sb.bookmarks -} - -func (sb *sessionBookmarks) lastBookmark() string { - bookmarks := sb.currentBookmarks() - count := len(bookmarks) - if count == 0 { - return "" - } - return bookmarks[count-1] -} - -func (sb *sessionBookmarks) replaceBookmarks(ctx context.Context, previousBookmarks []string, newBookmark string) error { - if len(newBookmark) == 0 { - return nil - } - if sb.bookmarkManager != nil { - if err := sb.bookmarkManager.UpdateBookmarks(ctx, previousBookmarks, []string{newBookmark}); err != nil { - return err - } - } - sb.replaceSessionBookmarks(newBookmark) - return nil -} - -func (sb *sessionBookmarks) replaceSessionBookmarks(newBookmark string) { - if len(newBookmark) == 0 { - return - } - sb.bookmarks = []string{newBookmark} -} - -func (sb *sessionBookmarks) getBookmarks(ctx context.Context) (Bookmarks, error) { - if sb.bookmarkManager == nil { - return nil, nil - } - return sb.bookmarkManager.GetBookmarks(ctx) -} - -// Remove empty string bookmarks to check for "bad" callers -// To avoid allocating, first check if this is a problem -func cleanupBookmarks(bookmarks Bookmarks) Bookmarks { - hasBad := false - for _, b := range bookmarks { - if len(b) == 0 { - hasBad = true - break - } - } - - if !hasBad { - return bookmarks - } - - cleaned := make(Bookmarks, 0, len(bookmarks)-1) - for _, b := range bookmarks { - if len(b) > 0 { - cleaned = append(cleaned, b) - } - } - return cleaned -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_with_context.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_with_context.go deleted file mode 100644 index 8e4efde..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_with_context.go +++ /dev/null @@ -1,998 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - "math" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" -) - -// TransactionWork represents a unit of work that will be executed against the provided -// transaction -// ManagedTransactionWork is created via the context-aware driver returned -// by NewDriverWithContext. -// -// Deprecated: use ManagedTransactionWork instead. TransactionWork will be removed in 6.0. -type TransactionWork func(tx Transaction) (any, error) - -// ManagedTransactionWork represents a unit of work that will be executed against the provided -// transaction -type ManagedTransactionWork func(tx ManagedTransaction) (any, error) - -// SessionWithContext represents a logical connection (which is not tied to a physical connection) -// to the server -type SessionWithContext interface { - // LastBookmarks returns the bookmark received following the last successfully completed transaction. - // If no bookmark was received or if this transaction was rolled back, the initial set of bookmarks will be - // returned. - LastBookmarks() Bookmarks - lastBookmark() string - // BeginTransaction starts a new explicit transaction on this session - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - BeginTransaction(ctx context.Context, configurers ...func(*TransactionConfig)) (ExplicitTransaction, error) - // ExecuteRead executes the given unit of work in a AccessModeRead transaction with - // retry logic in place - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - ExecuteRead(ctx context.Context, work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) - // ExecuteWrite executes the given unit of work in a AccessModeWrite transaction with - // retry logic in place - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - ExecuteWrite(ctx context.Context, work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) - // Run executes an auto-commit statement and returns a result - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Run(ctx context.Context, cypher string, params map[string]any, configurers ...func(*TransactionConfig)) (ResultWithContext, error) - // Close closes any open resources and marks this session as unusable - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Close(ctx context.Context) error - executeQueryRead(ctx context.Context, work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) - executeQueryWrite(ctx context.Context, work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) - legacy() Session - getServerInfo(ctx context.Context) (ServerInfo, error) - verifyAuthentication(ctx context.Context) error -} - -// SessionConfig is used to configure a new session, its zero value uses safe defaults. -type SessionConfig struct { - // AccessMode used when using Session.Run and explicit transactions. Used to route query - // to read or write servers when running in a cluster. Session.ReadTransaction and Session.WriteTransaction - // does not rely on this mode. - AccessMode AccessMode - // Bookmarks are the initial bookmarks used to ensure that the executing server is at least up - // to date to the point represented by the latest of the provided bookmarks. After running commands - // on the session the bookmark can be retrieved with Session.LastBookmark. All commands executing - // within the same session will automatically use the bookmark from the previous command in the - // session. - Bookmarks Bookmarks - // DatabaseName sets the target database name for the queries executed within the session created with this - // configuration. - // Usage of Cypher clauses like USE is not a replacement for this option. - // Drive​r sends Cypher to the server for processing. - // This option has no explicit value by default, but it is recommended to set one if the target database is known - // in advance. This has the benefit of ensuring a consistent target database name throughout the session in a - // straightforward way and potentially simplifies driver logic as well as reduces network communication resulting - // in better performance. - // When no explicit name is set, the driver behavior depends on the connection URI scheme supplied to the driver on - // instantiation and Bolt protocol version. - // - // Specifically, the following applies: - // - // - for bolt schemes - // queries are dispatched to the server for execution without explicit database name supplied, - // meaning that the target database name for query execution is determined by the server. - // It is important to note that the target database may change (even within the same session), for instance if the - // user's home database is changed on the server. - // - // - for neo4j schemes - // providing that Bolt protocol version 4.4, which was introduced with Neo4j server 4.4, or above - // is available, the driver fetches the user's home database name from the server on first query execution - // within the session and uses the fetched database name explicitly for all queries executed within the session. - // This ensures that the database name remains consistent within the given session. For instance, if the user's - // home database name is 'movies' and the server supplies it to the driver upon database name fetching for the - // session, all queries within that session are executed with the explicit database name 'movies' supplied. - // Any change to the user’s home database is reflected only in sessions created after such change takes effect. - // This behavior requires additional network communication. - // In clustered environments, it is strongly recommended to avoid a single point of failure. - // For instance, by ensuring that the connection URI resolves to multiple endpoints. - // For older Bolt protocol versions, the behavior is the same as described for the bolt schemes above. - DatabaseName string - // FetchSize defines how many records to pull from server in each batch. - // From Bolt protocol v4 (Neo4j 4+) records can be fetched in batches as - // compared to fetching all in previous versions. - // If the underlying protocol does not support FetchSize, it is ignored. - // - // If FetchSize is set to `FetchDefault`, the driver decides the appropriate size. - // If set to a positive value that size is used; negative values behaves as `FetchAll` (see below). - // - // To turn off fetching in batches and always fetch everything, set FetchSize to `FetchAll`. - // A limited FetchSize ensures the client is not overflown with records, - // and allows to bound memory usage. - FetchSize int - // Logging target the session will send its Bolt message traces - // - // Possible to use custom logger (implement log.BoltLogger interface) or - // use neo4j.ConsoleBoltLogger. - BoltLogger log.BoltLogger - // ImpersonatedUser sets the Neo4j user that the session will be acting as. - // If not set, the user configured for the driver will be used. - // - // If user impersonation is used, the default database for that impersonated - // user will be used unless DatabaseName is set. - // - // In the former case, when routing is enabled, using impersonation - // without DatabaseName will cause the driver to query the - // cluster for the name of the default database of the impersonated user. - // This is done at the beginning of the session so that queries are routed - // to the correct cluster member (different databases may have different - // leaders). - ImpersonatedUser string - // BookmarkManager defines a central point to externally supply bookmarks - // and be notified of bookmark updates per database - // Since 5.0 - // default: nil (no-op) - BookmarkManager BookmarkManager - // NotificationsMinSeverity defines the minimum severity level of notifications the server should send. - // By default, the driver's settings are used. - // Else, this option overrides the driver's settings. - // Disabling severities allows the server to skip analysis for those, which can speed up query execution. - NotificationsMinSeverity notifications.NotificationMinimumSeverityLevel - // NotificationsDisabledCategories defines the categories of notifications the server should not send. - // By default, the driver's settings are used. - // Else, this option overrides the driver's settings. - // Disabling categories allows the server to skip analysis for those, which can speed up query execution. - NotificationsDisabledCategories notifications.NotificationDisabledCategories - // NotificationsDisabledClassifications is identical to NotificationsDisabledCategories. - // This alternative is provided for a consistent naming with neo4j.GqlStatusObject Classification. - // - // NotificationsDisabledClassifications is part of the GQL compliant notifications preview feature - // (see README on what it means in terms of support and compatibility guarantees) - NotificationsDisabledClassifications notifications.NotificationDisabledClassifications - // Auth is used to overwrite the authentication information for the session. - // This requires the server to support re-authentication on the protocol level. - // `nil` will make the driver use the authentication information from the driver configuration. - // The `neo4j` package provides factory functions for common authentication schemes: - // - `neo4j.NoAuth` - // - `neo4j.BasicAuth` - // - `neo4j.KerberosAuth` - // - `neo4j.BearerAuth` - // - `neo4j.CustomAuth` - Auth *AuthToken - - forceReAuth bool -} - -// FetchAll turns off fetching records in batches. -const FetchAll = -1 - -// FetchDefault lets the driver decide fetch size -const FetchDefault = 0 - -// Connection pool as seen by the session. -type sessionPool interface { - Borrow(ctx context.Context, getServerNames func() []string, wait bool, boltLogger log.BoltLogger, livenessCheckTimeout time.Duration, auth *idb.ReAuthToken) (idb.Connection, error) - Return(ctx context.Context, c idb.Connection) - CleanUp(ctx context.Context) -} - -type sessionWithContext struct { - driverConfig *Config - defaultMode idb.AccessMode - bookmarks *sessionBookmarks - resolveHomeDb bool - homeDbGuess string - pool sessionPool - router sessionRouter - cache *homedb.Cache - pinHomeDatabaseCallback func(context.Context, string) - explicitTx *explicitTransaction - autocommitTx *autocommitTransaction - sleep func(context.Context, time.Duration) error - logId string - log log.Logger - throttleTime time.Duration - fetchSize int - config SessionConfig - auth *idb.ReAuthToken - closed bool -} - -func newSessionWithContext( - ctx context.Context, - config *Config, - sessConfig SessionConfig, - router sessionRouter, - pool sessionPool, - cache *homedb.Cache, - logger log.Logger, - token *idb.ReAuthToken, -) *sessionWithContext { - logId := log.NewId() - logger.Debugf(log.Session, logId, "Created") - - fetchSize := config.FetchSize - if sessConfig.FetchSize != FetchDefault { - fetchSize = sessConfig.FetchSize - } - - key, err := computeCacheKey(ctx, token, cache, sessConfig.ImpersonatedUser) - if err != nil { - logger.Warnf(log.Session, logId, "Failed to compute cache key: %v", err) - } - - homeDbGuess, found := cache.Get(key) - if found { - logger.Debugf(log.Session, logId, "Home database guess retrieved from cache: '%s'", homeDbGuess) - } else { - logger.Debugf(log.Session, logId, "No home database guess found in cache for provided user") - } - - session := &sessionWithContext{ - driverConfig: config, - router: router, - pool: pool, - cache: cache, - defaultMode: idb.AccessMode(sessConfig.AccessMode), - bookmarks: newSessionBookmarks(sessConfig.BookmarkManager, sessConfig.Bookmarks), - config: sessConfig, - resolveHomeDb: sessConfig.DatabaseName == "", - homeDbGuess: homeDbGuess, - sleep: racing.Sleep, - log: logger, - logId: logId, - throttleTime: time.Second * 1, - fetchSize: fetchSize, - auth: token, - } - session.pinHomeDatabaseCallback = func(ctx context.Context, database string) { - session.pinHomeDatabase(ctx, database) - } - return session -} - -func (s *sessionWithContext) lastBookmark() string { - // Pick up bookmark from pending auto-commit if there is a bookmark on it - // Note: the bookmark manager should not be notified here because: - // - the results of the autocommit transaction may have not been consumed - // yet, in which case, the underlying connection may have an outdated - // cached bookmark value - // - moreover, the bookmark manager may already hold newer bookmarks - // because other sessions for the same DB have completed some work in - // parallel - if s.autocommitTx != nil { - s.retrieveSessionBookmarks(s.autocommitTx.conn) - } - - // Report bookmark from previously closed connection or from initial set - return s.bookmarks.lastBookmark() -} - -func (s *sessionWithContext) LastBookmarks() Bookmarks { - // Pick up bookmark from pending auto-commit if there is a bookmark on it - // Note: the bookmark manager should not be notified here because: - // - the results of the autocommit transaction may have not been consumed - // yet, in which case, the underlying connection may have an outdated - // cached bookmark value - // - moreover, the bookmark manager may already hold newer bookmarks - // because other sessions for the same DB have completed some work in - // parallel - if s.autocommitTx != nil { - s.retrieveSessionBookmarks(s.autocommitTx.conn) - } - - // Report bookmarks from previously closed connection or from initial set - return s.bookmarks.currentBookmarks() -} - -func (s *sessionWithContext) BeginTransaction(ctx context.Context, configurers ...func(*TransactionConfig)) (ExplicitTransaction, error) { - - if s.closed { - err := &UsageError{Message: "Operation attempted on a closed session"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - // Guard for more than one transaction per session - if s.explicitTx != nil { - err := &UsageError{Message: "Session already has a pending transaction"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - if s.autocommitTx != nil { - s.autocommitTx.done(ctx) - } - - // Apply configuration functions - config := defaultTransactionConfig() - for _, c := range configurers { - c(&config) - } - if err := validateTransactionConfig(config); err != nil { - return nil, err - } - - // Get a connection from the pool. This could fail in clustered environment. - conn, err := s.getConnection(ctx, s.defaultMode, s.driverConfig.ConnectionLivenessCheckTimeout) - if err != nil { - return nil, errorutil.WrapError(err) - } - - if !s.driverConfig.TelemetryDisabled { - conn.Telemetry(telemetry.UnmanagedTransaction, nil) - } - - beginBookmarks, err := s.getBookmarks(ctx) - if err != nil { - s.pool.Return(ctx, conn) - return nil, errorutil.WrapError(err) - } - txHandle, err := conn.TxBegin(ctx, - idb.TxConfig{ - Mode: s.defaultMode, - Bookmarks: beginBookmarks, - Timeout: config.Timeout, - Meta: config.Metadata, - ImpersonatedUser: s.config.ImpersonatedUser, - NotificationConfig: idb.NotificationConfig{ - MinSev: s.config.NotificationsMinSeverity, - DisCats: s.config.NotificationsDisabledCategories, - DisClas: s.config.NotificationsDisabledClassifications, - }, - }, true) - if err != nil { - s.pool.Return(ctx, conn) - return nil, errorutil.WrapError(err) - } - - // Create transaction wrapper - txState := &transactionState{} - tx := &explicitTransaction{ - conn: conn, - fetchSize: s.fetchSize, - txHandle: txHandle, - txState: txState, - } - - onClose := func() { - if tx.conn == nil { - return - } - // On run failure, transaction closed (rolled back or committed) - bookmarkErr := s.retrieveBookmarks(ctx, tx.conn, beginBookmarks) - s.pool.Return(ctx, tx.conn) - tx.txState.err = errorutil.CombineAllErrors(tx.txState.err, bookmarkErr) - tx.conn = nil - s.explicitTx = nil - } - tx.onClosed = onClose - txState.resultErrorHandlers = append(txState.resultErrorHandlers, func(error) { onClose() }) - - s.explicitTx = tx - - return s.explicitTx, nil -} - -func (s *sessionWithContext) ExecuteRead(ctx context.Context, - work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.runRetriable(ctx, idb.ReadMode, work, true, telemetry.ManagedTransaction, configurers...) -} - -func (s *sessionWithContext) ExecuteWrite(ctx context.Context, - work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.runRetriable(ctx, idb.WriteMode, work, true, telemetry.ManagedTransaction, configurers...) -} - -func (s *sessionWithContext) executeQueryRead(ctx context.Context, - work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.runRetriable(ctx, idb.ReadMode, work, false, telemetry.ExecuteQuery, configurers...) -} - -func (s *sessionWithContext) executeQueryWrite(ctx context.Context, - work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.runRetriable(ctx, idb.WriteMode, work, false, telemetry.ExecuteQuery, configurers...) -} - -func (s *sessionWithContext) runRetriable( - ctx context.Context, - mode idb.AccessMode, - work ManagedTransactionWork, - blockingTxBegin bool, - api telemetry.API, - configurers ...func(*TransactionConfig)) (any, error) { - - if s.closed { - err := &UsageError{Message: "Operation attempted on a closed session"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - // Guard for more than one transaction per session - if s.explicitTx != nil { - err := &UsageError{Message: "Session already has a pending transaction"} - return nil, err - } - - if s.autocommitTx != nil { - s.autocommitTx.done(ctx) - } - - config := defaultTransactionConfig() - for _, c := range configurers { - c(&config) - } - if err := validateTransactionConfig(config); err != nil { - return nil, err - } - - state := retry.State{ - MaxTransactionRetryTime: s.driverConfig.MaxTransactionRetryTime, - Log: s.log, - LogName: log.Session, - LogId: s.logId, - Sleep: s.sleep, - Throttle: retry.Throttler(s.throttleTime), - MaxDeadConnections: s.driverConfig.MaxConnectionPoolSize, - DatabaseName: s.config.DatabaseName, - } - for state.Continue(ctx) { - if hasCompleted, result := s.executeTransactionFunction(ctx, mode, config, &state, work, blockingTxBegin, api); hasCompleted { - return result, nil - } - } - - err := state.ProduceError() - s.log.Error(log.Session, s.logId, err) - return nil, err -} - -func (s *sessionWithContext) executeTransactionFunction( - ctx context.Context, - mode idb.AccessMode, - config TransactionConfig, - state *retry.State, - work ManagedTransactionWork, - blockingTxBegin bool, - api telemetry.API) (bool, any) { - - conn, err := s.getConnection(ctx, mode, s.driverConfig.ConnectionLivenessCheckTimeout) - if err != nil { - state.OnFailure(ctx, err, conn, false) - return false, nil - } - - if !s.driverConfig.TelemetryDisabled && !state.TelemetrySent { - conn.Telemetry(api, func() { - state.TelemetrySent = true - }) - } - - // handle transaction function panic as well - defer func() { - s.pool.Return(ctx, conn) - }() - - beginBookmarks, err := s.getBookmarks(ctx) - if err != nil { - state.OnFailure(ctx, err, conn, false) - return false, nil - } - txHandle, err := conn.TxBegin(ctx, - idb.TxConfig{ - Mode: mode, - Bookmarks: beginBookmarks, - Timeout: config.Timeout, - Meta: config.Metadata, - ImpersonatedUser: s.config.ImpersonatedUser, - NotificationConfig: idb.NotificationConfig{ - MinSev: s.config.NotificationsMinSeverity, - DisCats: s.config.NotificationsDisabledCategories, - DisClas: s.config.NotificationsDisabledClassifications, - }, - }, - blockingTxBegin) - if err != nil { - state.OnFailure(ctx, err, conn, false) - return false, nil - } - - tx := managedTransaction{conn: conn, fetchSize: s.fetchSize, txHandle: txHandle, txState: &transactionState{}} - x, err := work(&tx) - if err != nil { - // If the client returns a client specific error that means that - // client wants to rollback. We don't do an explicit rollback here - // but instead rely on the pool invoking reset on the connection, - // that will do an implicit rollback. - state.OnFailure(ctx, err, conn, false) - return false, nil - } - - err = conn.TxCommit(ctx, txHandle) - if err != nil { - state.OnFailure(ctx, err, conn, true) - return false, nil - } - - // transaction has been committed so let's ignore (ie just log) the error - if err = s.retrieveBookmarks(ctx, conn, beginBookmarks); err != nil { - s.log.Warnf(log.Session, s.logId, "could not retrieve bookmarks after successful commit: %s\n"+ - "the results of this transaction may not be visible to subsequent operations", err.Error()) - } - return true, x -} - -func (s *sessionWithContext) getOrUpdateServers( - ctx context.Context, - mode idb.AccessMode, - isHomeDbGuess bool, - onRoutingTableUpdated func(string), -) ([]string, error) { - database := s.config.DatabaseName - if isHomeDbGuess { - database = s.homeDbGuess - } - dbSelection := idb.DatabaseSelection{ - Name: database, - IsHomeDbGuess: isHomeDbGuess, - } - if mode == idb.ReadMode { - return s.router.GetOrUpdateReaders(ctx, s.getBookmarks, dbSelection, s.auth, s.config.BoltLogger, onRoutingTableUpdated) - } else { - return s.router.GetOrUpdateWriters(ctx, s.getBookmarks, dbSelection, s.auth, s.config.BoltLogger, onRoutingTableUpdated) - } -} - -func (s *sessionWithContext) getServers(mode idb.AccessMode) func() []string { - return func() []string { - if mode == idb.ReadMode { - return s.router.Readers(s.config.DatabaseName) - } else { - return s.router.Writers(s.config.DatabaseName) - } - } -} - -func (s *sessionWithContext) getConnection(ctx context.Context, mode idb.AccessMode, livenessCheckTimeout time.Duration) (idb.Connection, error) { - ctx, cancel := s.applyConnectionTimeout(ctx) - if cancel != nil { - defer cancel() - } - - serverList, usedHomeDbGuess, err := s.getServerList(ctx, mode) - if err != nil { - return nil, errorutil.WrapError(err) - } - - conn, err := s.borrowConnection(ctx, serverList, livenessCheckTimeout) - if err != nil { - return nil, errorutil.WrapError(err) - } - - // Return the connection if SSR is disabled, and we used the home database guess, then resolve as normal. - if !conn.IsSsrEnabled() && usedHomeDbGuess { - s.log.Debugf( - log.Session, - s.logId, - "Connection without SSR enabled was acquired using home database guess '%s', "+ - "falling back to resolving as normal", - s.homeDbGuess, - ) - s.pool.Return(ctx, conn) - - serverList, _, err = s.getServerList(ctx, mode) - if err != nil { - return nil, errorutil.WrapError(err) - } - - conn, err = s.borrowConnection(ctx, serverList, livenessCheckTimeout) - if err != nil { - return nil, errorutil.WrapError(err) - } - } - - conn.SetPinHomeDatabaseCallback(s.pinHomeDatabaseCallback) - - // Select database on server - if s.config.DatabaseName != idb.DefaultDatabase { - if err := s.selectDatabase(ctx, conn); err != nil { - s.pool.Return(ctx, conn) - return nil, err - } - } - - return conn, nil -} - -// applyConnectionTimeout sets a timeout on the context if configured. -func (s *sessionWithContext) applyConnectionTimeout(ctx context.Context) (context.Context, context.CancelFunc) { - timeout := s.driverConfig.ConnectionAcquisitionTimeout - if timeout > 0 { - ctx, cancel := context.WithTimeout(ctx, timeout) - deadline, _ := ctx.Deadline() - s.log.Debugf(log.Session, s.logId, "connection acquisition timeout is %s, resolved deadline is: %s", timeout, deadline) - return ctx, cancel - } - if deadline, ok := ctx.Deadline(); ok { - s.log.Debugf(log.Session, s.logId, "connection acquisition user-provided deadline is: %s", deadline) - } - return ctx, nil -} - -// getServerList resolves the server list based on the session configuration. -// It returns a list of servers, a boolean indicating whether the home database guess was used, and an error if resolution fails. -func (s *sessionWithContext) getServerList(ctx context.Context, mode idb.AccessMode) ([]string, bool, error) { - if !s.resolveHomeDb { - serverList, err := s.getOrUpdateServers(ctx, mode, false, nil) - return serverList, false, err - } - - // Use cached home database if available - if s.homeDbGuess != "" && s.cache.IsEnabled() { - s.log.Debugf(log.Session, s.logId, "Using cached home database guess '%s' for server list resolution", s.homeDbGuess) - serverList, err := s.getOrUpdateServers(ctx, mode, true, func(database string) { - s.pinHomeDatabase(ctx, database) - }) - return serverList, true, err - } - - // Resolve home database if cache is unavailable, there's no guess, or a table doesn't exist. - s.log.Debugf(log.Session, s.logId, "No valid cached home database guess available, resolving home database") - if err := s.resolveHomeDatabase(ctx); err != nil { - return nil, false, err - } - serverList, err := s.getOrUpdateServers(ctx, mode, false, nil) - return serverList, false, err -} - -// borrowConnection requests a connection from the pool using the provided `serverList`. -func (s *sessionWithContext) borrowConnection( - ctx context.Context, - serverList []string, - livenessCheckTimeout time.Duration, -) (idb.Connection, error) { - return s.pool.Borrow( - ctx, - func() []string { return serverList }, - s.driverConfig.ConnectionAcquisitionTimeout != 0, - s.config.BoltLogger, - livenessCheckTimeout, - s.auth, - ) -} - -// selectDatabase ensures the correct database is selected on the connection. -func (s *sessionWithContext) selectDatabase(ctx context.Context, conn idb.Connection) error { - dbSelector, ok := conn.(idb.DatabaseSelector) - if !ok { - err := &db.FeatureNotSupportedError{ - Server: conn.ServerName(), Feature: "multi-database", Reason: "requires at least server v4", - } - return err - } - dbSelector.SelectDatabase(s.config.DatabaseName) - return nil -} - -func (s *sessionWithContext) retrieveBookmarks(ctx context.Context, conn idb.Connection, sentBookmarks Bookmarks) error { - if conn == nil { - return nil - } - return s.bookmarks.replaceBookmarks(ctx, sentBookmarks, conn.Bookmark()) -} - -func (s *sessionWithContext) retrieveSessionBookmarks(conn idb.Connection) { - if conn == nil { - return - } - s.bookmarks.replaceSessionBookmarks(conn.Bookmark()) -} - -func (s *sessionWithContext) Run(ctx context.Context, - cypher string, params map[string]any, configurers ...func(*TransactionConfig)) (ResultWithContext, error) { - - if s.closed { - err := &UsageError{Message: "Operation attempted on a closed session"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - if s.explicitTx != nil { - err := &UsageError{Message: "Trying to run auto-commit transaction while in explicit transaction"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - if s.autocommitTx != nil { - s.autocommitTx.done(ctx) - } - - config := defaultTransactionConfig() - for _, c := range configurers { - c(&config) - } - if err := validateTransactionConfig(config); err != nil { - return nil, err - } - - conn, err := s.getConnection(ctx, s.defaultMode, s.driverConfig.ConnectionLivenessCheckTimeout) - if err != nil { - return nil, errorutil.WrapError(err) - } - - if !s.driverConfig.TelemetryDisabled { - conn.Telemetry(telemetry.AutoCommitTransaction, nil) - } - - runBookmarks, err := s.getBookmarks(ctx) - if err != nil { - s.pool.Return(ctx, conn) - return nil, errorutil.WrapError(err) - } - stream, err := conn.Run( - ctx, - idb.Command{ - Cypher: cypher, - Params: params, - FetchSize: s.fetchSize, - }, - idb.TxConfig{ - Mode: s.defaultMode, - Bookmarks: runBookmarks, - Timeout: config.Timeout, - Meta: config.Metadata, - ImpersonatedUser: s.config.ImpersonatedUser, - NotificationConfig: idb.NotificationConfig{ - MinSev: s.config.NotificationsMinSeverity, - DisCats: s.config.NotificationsDisabledCategories, - DisClas: s.config.NotificationsDisabledClassifications, - }, - }, - ) - if err != nil { - s.pool.Return(ctx, conn) - return nil, errorutil.WrapError(err) - } - - s.autocommitTx = &autocommitTransaction{ - conn: conn, - res: newResultWithContext(conn, stream, cypher, params, &transactionState{}, func() { - if err := s.retrieveBookmarks(ctx, conn, runBookmarks); err != nil { - s.log.Warnf(log.Session, s.logId, "could not retrieve bookmarks after result consumption: %s\n"+ - "the result of the initiating auto-commit transaction may not be visible to subsequent operations", err.Error()) - } - }), - onClosed: func() { - s.pool.Return(ctx, conn) - s.autocommitTx = nil - }, - } - - return s.autocommitTx.res, nil -} - -func (s *sessionWithContext) Close(ctx context.Context) error { - if s.closed { - // Safeguard against closing more than once - return nil - } - - var txErr error - if s.explicitTx != nil { - txErr = s.explicitTx.Close(ctx) - } - - if s.autocommitTx != nil { - s.autocommitTx.discard(ctx) - } - - defer s.log.Debugf(log.Session, s.logId, "Closed") - poolCleanUpChan := make(chan struct{}, 1) - routerCleanUpChan := make(chan struct{}, 1) - go func() { - s.pool.CleanUp(ctx) - poolCleanUpChan <- struct{}{} - }() - go func() { - s.router.CleanUp() - routerCleanUpChan <- struct{}{} - }() - <-poolCleanUpChan - <-routerCleanUpChan - s.closed = true - return txErr -} - -func (s *sessionWithContext) legacy() Session { - return &session{delegate: s} -} - -func (s *sessionWithContext) getServerInfo(ctx context.Context) (ServerInfo, error) { - if err := s.resolveHomeDatabase(ctx); err != nil { - return nil, errorutil.WrapError(err) - } - _, err := s.getOrUpdateServers(ctx, idb.ReadMode, false, nil) - if err != nil { - return nil, errorutil.WrapError(err) - } - conn, err := s.pool.Borrow( - ctx, - s.getServers(idb.ReadMode), - s.driverConfig.ConnectionAcquisitionTimeout != 0, - s.config.BoltLogger, - 0, - s.auth) - if err != nil { - return nil, errorutil.WrapError(err) - } - defer s.pool.Return(ctx, conn) - return &simpleServerInfo{ - address: conn.ServerName(), - agent: conn.ServerVersion(), - protocolVersion: conn.Version(), - }, nil -} - -func (s *sessionWithContext) verifyAuthentication(ctx context.Context) error { - _, err := s.getOrUpdateServers(ctx, idb.ReadMode, false, nil) - if err != nil { - return errorutil.WrapError(err) - } - conn, err := s.pool.Borrow( - ctx, - s.getServers(idb.ReadMode), - s.driverConfig.ConnectionAcquisitionTimeout != 0, - s.config.BoltLogger, - 0, - s.auth) - if err != nil { - return errorutil.WrapError(err) - } - defer s.pool.Return(ctx, conn) - return nil -} - -func (s *sessionWithContext) resolveHomeDatabase(ctx context.Context) error { - if !s.resolveHomeDb { - return nil - } - - bookmarks, err := s.getBookmarks(ctx) - if err != nil { - return err - } - defaultDb, err := s.router.GetNameOfDefaultDatabase( - ctx, - bookmarks, - s.config.ImpersonatedUser, - s.auth, - s.config.BoltLogger) - if err != nil { - return err - } - s.pinHomeDatabase(ctx, defaultDb) - return nil -} - -func (s *sessionWithContext) pinHomeDatabase(ctx context.Context, database string) { - if !s.resolveHomeDb { - return - } - - if key, err := computeCacheKey(ctx, s.auth, s.cache, s.config.ImpersonatedUser); err == nil { - s.cache.Set(key, database) - s.log.Debugf(log.Session, s.logId, "Cached home database '%s'", database) - } else { - s.log.Warnf(log.Session, s.logId, "Failed to compute cache key: %v", err) - } - - s.log.Debugf(log.Session, s.logId, "Resolved home database, uses db '%s'", database) - s.homeDbGuess = database - s.config.DatabaseName = database - s.resolveHomeDb = false -} - -func (s *sessionWithContext) getBookmarks(ctx context.Context) (Bookmarks, error) { - bookmarks, err := s.bookmarks.getBookmarks(ctx) - if err != nil { - return nil, err - } - result := collections.NewSet(bookmarks) - result.AddAll(s.bookmarks.currentBookmarks()) - return result.Values(), nil -} - -type erroredSessionWithContext struct { - err error -} - -func (s *erroredSessionWithContext) LastBookmarks() Bookmarks { - return nil -} - -func (s *erroredSessionWithContext) lastBookmark() string { - return "" -} -func (s *erroredSessionWithContext) BeginTransaction(context.Context, ...func(*TransactionConfig)) (ExplicitTransaction, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) ExecuteRead(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) ExecuteWrite(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) executeQueryRead(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) executeQueryWrite(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) Run(context.Context, string, map[string]any, ...func(*TransactionConfig)) (ResultWithContext, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) Close(context.Context) error { - return s.err -} -func (s *erroredSessionWithContext) legacy() Session { - return &erroredSession{err: s.err} -} -func (s *erroredSessionWithContext) getServerInfo(context.Context) (ServerInfo, error) { - return nil, s.err -} - -func (s *erroredSessionWithContext) verifyAuthentication(context.Context) error { - return s.err -} - -func defaultTransactionConfig() TransactionConfig { - return TransactionConfig{Timeout: math.MinInt, Metadata: nil} -} - -func validateTransactionConfig(config TransactionConfig) error { - if config.Timeout != math.MinInt && config.Timeout < 0 { - err := fmt.Sprintf("Negative transaction timeouts are not allowed. Given: %d", config.Timeout) - return &UsageError{Message: err} - } - return nil -} - -func computeCacheKey(ctx context.Context, token *idb.ReAuthToken, cache *homedb.Cache, impersonatedUser string) (string, error) { - if token.FromSession { - t, err := token.Manager.GetAuthToken(ctx) - if err != nil { - return "", err - } - return cache.ComputeKey(impersonatedUser, &t) - } - return cache.ComputeKey(impersonatedUser, nil) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction.go deleted file mode 100644 index 8fa53c2..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction.go +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" -) - -// Transaction represents a transaction in the Neo4j database -// ExplicitTransaction is available via SessionWithContext. -// SessionWithContext is available via the context-aware driver/returned -// by NewDriverWithContext. -// -// Deprecated: use ExplicitTransaction instead. Transaction will be removed in 6.0. -type Transaction interface { - // Run executes a statement on this transaction and returns a result - Run(cypher string, params map[string]any) (Result, error) - // Commit commits the transaction - Commit() error - // Rollback rolls back the transaction - Rollback() error - // Close rolls back the actual transaction if it's not already committed/rolled back - // and closes all resources associated with this transaction - Close() error -} - -// Transaction implementation when explicit transaction started -type transaction struct { - delegate ExplicitTransaction -} - -func (tx *transaction) Run(cypher string, params map[string]any) (Result, error) { - result, err := tx.delegate.Run(context.Background(), cypher, params) - if err != nil { - return nil, err - } - return result.legacy(), nil -} - -func (tx *transaction) Commit() error { - return tx.delegate.Commit(context.Background()) -} - -func (tx *transaction) Rollback() error { - return tx.delegate.Rollback(context.Background()) -} - -func (tx *transaction) Close() error { - return tx.delegate.Close(context.Background()) -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_config.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_config.go deleted file mode 100644 index f7cca87..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_config.go +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import "time" - -// TransactionConfig holds the settings for explicit and auto-commit transactions. Actual configuration is expected -// to be done using configuration functions that are predefined, i.e. 'WithTxTimeout' and 'WithTxMetadata', or one -// that you could write by your own. -type TransactionConfig struct { - // Timeout is the configured transaction timeout. - Timeout time.Duration - // Metadata is the configured transaction metadata that will be attached to the underlying transaction. - Metadata map[string]any -} - -// WithTxTimeout returns a transaction configuration function that applies a timeout to a transaction. -// -// Transactions that execute longer than the configured timeout will be terminated by the database. -// This functionality allows user code to limit query/transaction execution time. -// The specified timeout overrides the default timeout configured in the database using the `db.transaction.timeout` -// setting (`dbms.transaction.timeout` before Neo4j 5.0). -// Values higher than `db.transaction.timeout` will be ignored and will fall back to the default for server versions -// between 4.2 and 5.2 (inclusive). -// A `0` duration will make the transaction execute indefinitely. -// `math.MinInt` will use the default timeout configured on the server. -// Other negative durations are invalid. -// -// To apply a transaction timeout to an explicit transaction: -// -// session.BeginTransaction(WithTxTimeout(5*time.Second)) -// -// To apply a transaction timeout to an auto-commit transaction: -// -// session.Run("RETURN 1", nil, WithTxTimeout(5*time.Second)) -// -// To apply a transaction timeout to a read transaction function: -// -// session.ExecuteRead(DoWork, WithTxTimeout(5*time.Second)) -// -// To apply a transaction timeout to a write transaction function: -// -// session.ExecuteWrite(DoWork, WithTxTimeout(5*time.Second)) -// -// To apply a transaction timeout with the ExecuteQuery function, use ExecuteQueryWithTransactionConfig: -// -// ExecuteQuery(ctx, driver, query, parameters, transformer, -// ExecuteQueryWithTransactionConfig(WithTxTimeout(*time.Second)) -// ) -func WithTxTimeout(timeout time.Duration) func(*TransactionConfig) { - return func(config *TransactionConfig) { - config.Timeout = timeout - } -} - -// WithTxMetadata returns a transaction configuration function that attaches metadata to a transaction. -// -// To attach metadata to an explicit transaction: -// -// session.BeginTransaction(WithTxMetadata(map[string]any{"work-id": 1})) -// -// To attach metadata to an auto-commit transaction: -// -// session.Run("RETURN 1", nil, WithTxMetadata(map[string]any{"work-id": 1})) -// -// To attach metadata to a read transaction function: -// -// session.ExecuteRead(DoWork, WithTxMetadata(map[string]any{"work-id": 1})) -// -// To attach metadata to a write transaction function: -// -// session.ExecuteWrite(DoWork, WithTxMetadata(map[string]any{"work-id": 1})) -// -// To attach metadata with the ExecuteQuery function, use ExecuteQueryWithTransactionConfig: -// -// ExecuteQuery(ctx, driver, query, parameters, transformer, -// ExecuteQueryWithTransactionConfig(WithTxMetadata(map[string]any{"work-id": 1})) -// ) -func WithTxMetadata(metadata map[string]any) func(*TransactionConfig) { - return func(config *TransactionConfig) { - config.Metadata = metadata - } -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_helpers.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_helpers.go deleted file mode 100644 index 39a01bb..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_helpers.go +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" -) - -type ManagedTransactionWorkT[T any] func(tx ManagedTransaction) (T, error) - -// ExecuteRead executes the given unit of work in a read transaction with -// retry logic in place, via the provided session. -// -// This is the generic variant of SessionWithContext.ExecuteRead. -// -// If an error occurs, the zero value of T is returned. -func ExecuteRead[T any](ctx context.Context, session SessionWithContext, - work ManagedTransactionWorkT[T], - configurers ...func(config *TransactionConfig)) (T, error) { - - return castGeneric[T](session.ExecuteRead(ctx, transactionWorkAdapter(work), configurers...)) -} - -// ExecuteWrite executes the given unit of work in a write transaction with -// retry logic in place, via the provided session. -// -// This is the generic variant of SessionWithContext.ExecuteWrite. -// -// If an error occurs, the zero value of T is returned. -func ExecuteWrite[T any](ctx context.Context, session SessionWithContext, - work ManagedTransactionWorkT[T], - configurers ...func(config *TransactionConfig)) (T, error) { - - return castGeneric[T](session.ExecuteWrite(ctx, transactionWorkAdapter(work), configurers...)) -} - -func transactionWorkAdapter[T any](work ManagedTransactionWorkT[T]) ManagedTransactionWork { - return func(tx ManagedTransaction) (any, error) { - return work(tx) - } -} - -// castGeneric performs a type assertion on the given `result` to the generic type T, unless an error has occurred. -// -// Implementation note: the function currently assumes that `result` is compatible with T and does not perform a soft -// assertion. -// -// For instance, the following code would currently panic instead of returning an error: -// -// str, err := castGeneric[string](42, nil) -func castGeneric[T any](result any, err error) (T, error) { - if err != nil { - return *new(T), err - } - return result.(T), nil -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_with_context.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_with_context.go deleted file mode 100644 index d1a7add..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_with_context.go +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" -) - -// ManagedTransaction represents a transaction managed by the driver and operated on by the user, via transaction functions -type ManagedTransaction interface { - // Run executes a statement on this transaction and returns a result - Run(ctx context.Context, cypher string, params map[string]any) (ResultWithContext, error) - - legacy() Transaction -} - -// ExplicitTransaction represents a transaction in the Neo4j database -type ExplicitTransaction interface { - // Run executes a statement on this transaction and returns a result - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Run(ctx context.Context, cypher string, params map[string]any) (ResultWithContext, error) - // Commit commits the transaction - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Commit(ctx context.Context) error - // Rollback rolls back the transaction - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Rollback(ctx context.Context) error - // Close rolls back the actual transaction if it's not already committed/rolled back - // and closes all resources associated with this transaction - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Close(ctx context.Context) error - - // legacy returns the non-cancelling, legacy variant of this ExplicitTransaction type - // This is used so that legacy transaction functions can delegate work to their newer, context-aware variants - legacy() Transaction -} - -type transactionState struct { - err error - resultErrorHandlers []func(error) -} - -func (t *transactionState) onError(err error) { - t.err = err - for _, resultErrorHandler := range t.resultErrorHandlers { - resultErrorHandler(err) - } -} - -// Transaction implementation when explicit transaction started -type explicitTransaction struct { - conn db.Connection - fetchSize int - txHandle db.TxHandle - txState *transactionState - onClosed func() -} - -func (tx *explicitTransaction) Run(ctx context.Context, cypher string, params map[string]any) (ResultWithContext, error) { - if tx.conn == nil { - return nil, transactionAlreadyCompletedError() - } - stream, err := tx.conn.RunTx(ctx, tx.txHandle, db.Command{Cypher: cypher, Params: params, FetchSize: tx.fetchSize}) - if err != nil { - tx.txState.onError(err) - return nil, errorutil.WrapError(tx.txState.err) - } - // no result consumption hook here since bookmarks are sent after commit, not after pulling results - result := newResultWithContext(tx.conn, stream, cypher, params, tx.txState, nil) - tx.txState.resultErrorHandlers = append(tx.txState.resultErrorHandlers, result.errorHandler) - return result, nil -} - -func (tx *explicitTransaction) Commit(ctx context.Context) error { - if tx.txState.err != nil { - return transactionAlreadyCompletedError() - } - if tx.conn == nil { - return transactionAlreadyCompletedError() - } - tx.txState.err = tx.conn.TxCommit(ctx, tx.txHandle) - tx.onClosed() - return errorutil.WrapError(tx.txState.err) -} - -func (tx *explicitTransaction) Close(ctx context.Context) error { - if tx.conn == nil { - // repeated calls to Close => NOOP - return nil - } - return tx.Rollback(ctx) -} - -func (tx *explicitTransaction) Rollback(ctx context.Context) error { - if tx.txState.err != nil { - return nil - } - if tx.conn == nil { - return transactionAlreadyCompletedError() - } - if !tx.conn.IsAlive() || tx.conn.HasFailed() { - // tx implicitly rolled back by having failed - tx.txState.err = nil - } else { - tx.txState.err = tx.conn.TxRollback(ctx, tx.txHandle) - } - tx.onClosed() - return errorutil.WrapError(tx.txState.err) -} - -func (tx *explicitTransaction) legacy() Transaction { - return &transaction{ - delegate: tx, - } -} - -// ManagedTransaction implementation used as parameter to transactional functions -type managedTransaction struct { - conn db.Connection - fetchSize int - txHandle db.TxHandle - txState *transactionState -} - -func (tx *managedTransaction) Run(ctx context.Context, cypher string, params map[string]any) (ResultWithContext, error) { - stream, err := tx.conn.RunTx(ctx, tx.txHandle, db.Command{Cypher: cypher, Params: params, FetchSize: tx.fetchSize}) - if err != nil { - return nil, errorutil.WrapError(err) - } - // no result consumption hook here since bookmarks are sent after commit, not after pulling results - return newResultWithContext(tx.conn, stream, cypher, params, tx.txState, nil), nil -} - -// legacy interop only - remove in 6.0 -func (tx *managedTransaction) Commit(context.Context) error { - return &UsageError{Message: "Commit not allowed on retryable transaction"} -} - -// legacy interop only - remove in 6.0 -func (tx *managedTransaction) Rollback(context.Context) error { - return &UsageError{Message: "Rollback not allowed on retryable transaction"} -} - -// legacy interop only - remove in 6.0 -func (tx *managedTransaction) Close(context.Context) error { - return &UsageError{Message: "Close not allowed on retryable transaction"} -} - -// legacy interop only - remove in 6.0 -func (tx *managedTransaction) legacy() Transaction { - return &transaction{ - delegate: tx, - } -} - -// Represents an auto commit transaction. -// Does not implement the ExplicitTransaction nor the ManagedTransaction interface. -type autocommitTransaction struct { - conn db.Connection - res ResultWithContext - closed bool - onClosed func() -} - -func (tx *autocommitTransaction) done(ctx context.Context) { - if !tx.closed { - tx.res.buffer(ctx) - tx.closed = true - tx.onClosed() - } -} - -func (tx *autocommitTransaction) discard(ctx context.Context) { - if !tx.closed { - tx.res.Consume(ctx) - tx.closed = true - tx.onClosed() - } -} - -func transactionAlreadyCompletedError() *UsageError { - return &UsageError{Message: "cannot use this transaction, because it has been committed or rolled back either because of an error or explicit termination"} -} diff --git a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/useragent.go b/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/useragent.go deleted file mode 100644 index 6c36a51..0000000 --- a/example/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/useragent.go +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata" -) - -const UserAgent = "Go Driver/" + metadata.DriverVersion diff --git a/example/vendor/github.com/oklog/ulid/v2/.gitignore b/example/vendor/github.com/oklog/ulid/v2/.gitignore deleted file mode 100644 index c92c4d5..0000000 --- a/example/vendor/github.com/oklog/ulid/v2/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -#### joe made this: http://goel.io/joe - -#####=== Go ===##### - -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof - diff --git a/example/vendor/github.com/oklog/ulid/v2/AUTHORS.md b/example/vendor/github.com/oklog/ulid/v2/AUTHORS.md deleted file mode 100644 index 95581c7..0000000 --- a/example/vendor/github.com/oklog/ulid/v2/AUTHORS.md +++ /dev/null @@ -1,2 +0,0 @@ -- Peter Bourgon (@peterbourgon) -- Tomás Senart (@tsenart) diff --git a/example/vendor/github.com/oklog/ulid/v2/CHANGELOG.md b/example/vendor/github.com/oklog/ulid/v2/CHANGELOG.md deleted file mode 100644 index 8da38c6..0000000 --- a/example/vendor/github.com/oklog/ulid/v2/CHANGELOG.md +++ /dev/null @@ -1,33 +0,0 @@ -## 1.3.1 / 2018-10-02 - -* Use underlying entropy source for random increments in Monotonic (#32) - -## 1.3.0 / 2018-09-29 - -* Monotonic entropy support (#31) - -## 1.2.0 / 2018-09-09 - -* Add a function to convert Unix time in milliseconds back to time.Time (#30) - -## 1.1.0 / 2018-08-15 - -* Ensure random part is always read from the entropy reader in full (#28) - -## 1.0.0 / 2018-07-29 - -* Add ParseStrict and MustParseStrict functions (#26) -* Enforce overflow checking when parsing (#20) - -## 0.3.0 / 2017-01-03 - -* Implement ULID.Compare method - -## 0.2.0 / 2016-12-13 - -* Remove year 2262 Timestamp bug. (#1) -* Gracefully handle invalid encodings when parsing. - -## 0.1.0 / 2016-12-06 - -* First ULID release diff --git a/example/vendor/github.com/oklog/ulid/v2/CONTRIBUTING.md b/example/vendor/github.com/oklog/ulid/v2/CONTRIBUTING.md deleted file mode 100644 index 68f03f2..0000000 --- a/example/vendor/github.com/oklog/ulid/v2/CONTRIBUTING.md +++ /dev/null @@ -1,17 +0,0 @@ -# Contributing - -We use GitHub to manage reviews of pull requests. - -* If you have a trivial fix or improvement, go ahead and create a pull - request, addressing (with `@...`) one or more of the maintainers - (see [AUTHORS.md](AUTHORS.md)) in the description of the pull request. - -* If you plan to do something more involved, first propose your ideas - in a Github issue. This will avoid unnecessary work and surely give - you and us a good deal of inspiration. - -* Relevant coding style guidelines are the [Go Code Review - Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments) - and the _Formatting and style_ section of Peter Bourgon's [Go: Best - Practices for Production - Environments](http://peter.bourgon.org/go-in-production/#formatting-and-style). diff --git a/example/vendor/github.com/oklog/ulid/v2/LICENSE b/example/vendor/github.com/oklog/ulid/v2/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/example/vendor/github.com/oklog/ulid/v2/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. diff --git a/example/vendor/github.com/oklog/ulid/v2/README.md b/example/vendor/github.com/oklog/ulid/v2/README.md deleted file mode 100644 index c0094ce..0000000 --- a/example/vendor/github.com/oklog/ulid/v2/README.md +++ /dev/null @@ -1,234 +0,0 @@ -# Universally Unique Lexicographically Sortable Identifier - -[![Project status](https://img.shields.io/github/release/oklog/ulid.svg?style=flat-square)](https://github.com/oklog/ulid/releases/latest) -![Build Status](https://github.com/oklog/ulid/actions/workflows/test.yml/badge.svg) -[![Go Report Card](https://goreportcard.com/badge/oklog/ulid?cache=0)](https://goreportcard.com/report/oklog/ulid) -[![Coverage Status](https://coveralls.io/repos/github/oklog/ulid/badge.svg?branch=master&cache=0)](https://coveralls.io/github/oklog/ulid?branch=master) -[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/oklog/ulid/v2) -[![Apache 2 licensed](https://img.shields.io/badge/license-Apache2-blue.svg)](https://raw.githubusercontent.com/oklog/ulid/master/LICENSE) - -A Go port of [ulid/javascript](https://github.com/ulid/javascript) with binary format implemented. - -## Background - -A GUID/UUID can be suboptimal for many use-cases because: - -- It isn't the most character efficient way of encoding 128 bits -- UUID v1/v2 is impractical in many environments, as it requires access to a unique, stable MAC address -- UUID v3/v5 requires a unique seed and produces randomly distributed IDs, which can cause fragmentation in many data structures -- UUID v4 provides no other information than randomness which can cause fragmentation in many data structures - -A ULID however: - -- Is compatible with UUID/GUID's -- 1.21e+24 unique ULIDs per millisecond (1,208,925,819,614,629,174,706,176 to be exact) -- Lexicographically sortable -- Canonically encoded as a 26 character string, as opposed to the 36 character UUID -- Uses Crockford's base32 for better efficiency and readability (5 bits per character) -- Case insensitive -- No special characters (URL safe) -- Monotonic sort order (correctly detects and handles the same millisecond) - -## Install - -This package requires Go modules. - -```shell -go get github.com/oklog/ulid/v2 -``` - -## Usage - -ULIDs are constructed from two things: a timestamp with millisecond precision, -and some random data. - -Timestamps are modeled as uint64 values representing a Unix time in milliseconds. -They can be produced by passing a [time.Time](https://pkg.go.dev/time#Time) to -[ulid.Timestamp](https://pkg.go.dev/github.com/oklog/ulid/v2#Timestamp), -or by calling [time.Time.UnixMilli](https://pkg.go.dev/time#Time.UnixMilli) -and converting the returned value to `uint64`. - -Random data is taken from a provided [io.Reader](https://pkg.go.dev/io#Reader). -This design allows for greater flexibility when choosing trade-offs, but can be -a bit confusing to newcomers. - -If you just want to generate a ULID and don't (yet) care about details like -performance, cryptographic security, monotonicity, etc., use the -[ulid.Make](https://pkg.go.dev/github.com/oklog/ulid/v2#Make) helper function. -This function calls [time.Now](https://pkg.go.dev/time#Now) to get a timestamp, -and uses a source of entropy which is process-global, -[pseudo-random](https://pkg.go.dev/math/rand)), and -[monotonic](https://pkg.go.dev/oklog/ulid/v2#LockedMonotonicReader)). - -```go -println(ulid.Make()) -// 01G65Z755AFWAKHE12NY0CQ9FH -``` - -More advanced use cases should utilize -[ulid.New](https://pkg.go.dev/github.com/oklog/ulid/v2#New). - -```go -entropy := rand.New(rand.NewSource(time.Now().UnixNano())) -ms := ulid.Timestamp(time.Now()) -println(ulid.New(ms, entropy)) -// 01G65Z755AFWAKHE12NY0CQ9FH -``` - -Care should be taken when providing a source of entropy. - -The above example utilizes [math/rand.Rand](https://pkg.go.dev/math/rand#Rand), -which is not safe for concurrent use by multiple goroutines. Consider -alternatives such as -[x/exp/rand](https://pkg.go.dev/golang.org/x/exp/rand#LockedSource). -Security-sensitive use cases should always use cryptographically secure entropy -provided by [crypto/rand](https://pkg.go.dev/crypto/rand). - -Performance-sensitive use cases should avoid synchronization when generating -IDs. One option is to use a unique source of entropy for each concurrent -goroutine, which results in no lock contention, but cannot provide strong -guarantees about the random data, and does not provide monotonicity within a -given millisecond. One common performance optimization is to pool sources of -entropy using a [sync.Pool](https://pkg.go.dev/sync#Pool). - -Monotonicity is a property that says each ULID is "bigger than" the previous -one. ULIDs are automatically monotonic, but only to millisecond precision. ULIDs -generated within the same millisecond are ordered by their random component, -which means they are by default un-ordered. You can use -[ulid.MonotonicEntropy](https://pkg.go.dev/oklog/ulid/v2#MonotonicEntropy) or -[ulid.LockedMonotonicEntropy](https://pkg.go.dev/oklog/ulid/v2#LockedMonotonicEntropy) -to create ULIDs that are monotonic within a given millisecond, with caveats. See -the documentation for details. - -If you don't care about time-based ordering of generated IDs, then there's no -reason to use ULIDs! There are many other kinds of IDs that are easier, faster, -smaller, etc. Consider UUIDs. - -## Commandline tool - -This repo also provides a tool to generate and parse ULIDs at the command line. -These commands should install the latest version of the tool at `bin/ulid`: - -```shell -cd $(mktemp -d) -env GOPATH=$(pwd) GO111MODULE=on go get -v github.com/oklog/ulid/v2/cmd/ulid -``` - -Usage: - -```shell -Usage: ulid [-hlqz] [-f ] [parameters ...] - -f, --format= when parsing, show times in this format: default, rfc3339, unix, ms - -h, --help print this help text - -l, --local when parsing, show local time instead of UTC - -q, --quick when generating, use non-crypto-grade entropy - -z, --zero when generating, fix entropy to all-zeroes -``` - -Examples: - -```shell -$ ulid -01D78XYFJ1PRM1WPBCBT3VHMNV -$ ulid -z -01D78XZ44G0000000000000000 -$ ulid 01D78XZ44G0000000000000000 -Sun Mar 31 03:51:23.536 UTC 2019 -$ ulid --format=rfc3339 --local 01D78XZ44G0000000000000000 -2019-03-31T05:51:23.536+02:00 -``` - -## Specification - -Below is the current specification of ULID as implemented in this repository. - -### Components - -**Timestamp** -- 48 bits -- UNIX-time in milliseconds -- Won't run out of space till the year 10889 AD - -**Entropy** -- 80 bits -- User defined entropy source. -- Monotonicity within the same millisecond with [`ulid.Monotonic`](https://godoc.org/github.com/oklog/ulid#Monotonic) - -### Encoding - -[Crockford's Base32](http://www.crockford.com/wrmg/base32.html) is used as shown. -This alphabet excludes the letters I, L, O, and U to avoid confusion and abuse. - -``` -0123456789ABCDEFGHJKMNPQRSTVWXYZ -``` - -### Binary Layout and Byte Order - -The components are encoded as 16 octets. Each component is encoded with the Most Significant Byte first (network byte order). - -``` -0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| 32_bit_uint_time_high | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| 16_bit_uint_time_low | 16_bit_uint_random | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| 32_bit_uint_random | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| 32_bit_uint_random | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -``` - -### String Representation - -``` - 01AN4Z07BY 79KA1307SR9X4MV3 -|----------| |----------------| - Timestamp Entropy - 10 chars 16 chars - 48bits 80bits - base32 base32 -``` - -## Test - -```shell -go test ./... -``` - -## Benchmarks - -On a Intel Core i7 Ivy Bridge 2.7 GHz, MacOS 10.12.1 and Go 1.8.0beta1 - -``` -BenchmarkNew/WithCryptoEntropy-8 2000000 771 ns/op 20.73 MB/s 16 B/op 1 allocs/op -BenchmarkNew/WithEntropy-8 20000000 65.8 ns/op 243.01 MB/s 16 B/op 1 allocs/op -BenchmarkNew/WithoutEntropy-8 50000000 30.0 ns/op 534.06 MB/s 16 B/op 1 allocs/op -BenchmarkMustNew/WithCryptoEntropy-8 2000000 781 ns/op 20.48 MB/s 16 B/op 1 allocs/op -BenchmarkMustNew/WithEntropy-8 20000000 70.0 ns/op 228.51 MB/s 16 B/op 1 allocs/op -BenchmarkMustNew/WithoutEntropy-8 50000000 34.6 ns/op 462.98 MB/s 16 B/op 1 allocs/op -BenchmarkParse-8 50000000 30.0 ns/op 866.16 MB/s 0 B/op 0 allocs/op -BenchmarkMustParse-8 50000000 35.2 ns/op 738.94 MB/s 0 B/op 0 allocs/op -BenchmarkString-8 20000000 64.9 ns/op 246.40 MB/s 32 B/op 1 allocs/op -BenchmarkMarshal/Text-8 20000000 55.8 ns/op 286.84 MB/s 32 B/op 1 allocs/op -BenchmarkMarshal/TextTo-8 100000000 22.4 ns/op 714.91 MB/s 0 B/op 0 allocs/op -BenchmarkMarshal/Binary-8 300000000 4.02 ns/op 3981.77 MB/s 0 B/op 0 allocs/op -BenchmarkMarshal/BinaryTo-8 2000000000 1.18 ns/op 13551.75 MB/s 0 B/op 0 allocs/op -BenchmarkUnmarshal/Text-8 100000000 20.5 ns/op 1265.27 MB/s 0 B/op 0 allocs/op -BenchmarkUnmarshal/Binary-8 300000000 4.94 ns/op 3240.01 MB/s 0 B/op 0 allocs/op -BenchmarkNow-8 100000000 15.1 ns/op 528.09 MB/s 0 B/op 0 allocs/op -BenchmarkTimestamp-8 2000000000 0.29 ns/op 27271.59 MB/s 0 B/op 0 allocs/op -BenchmarkTime-8 2000000000 0.58 ns/op 13717.80 MB/s 0 B/op 0 allocs/op -BenchmarkSetTime-8 2000000000 0.89 ns/op 9023.95 MB/s 0 B/op 0 allocs/op -BenchmarkEntropy-8 200000000 7.62 ns/op 1311.66 MB/s 0 B/op 0 allocs/op -BenchmarkSetEntropy-8 2000000000 0.88 ns/op 11376.54 MB/s 0 B/op 0 allocs/op -BenchmarkCompare-8 200000000 7.34 ns/op 4359.23 MB/s 0 B/op 0 allocs/op -``` - -## Prior Art - -- [ulid/javascript](https://github.com/ulid/javascript) -- [RobThree/NUlid](https://github.com/RobThree/NUlid) -- [imdario/go-ulid](https://github.com/imdario/go-ulid) diff --git a/example/vendor/github.com/oklog/ulid/v2/ulid.go b/example/vendor/github.com/oklog/ulid/v2/ulid.go deleted file mode 100644 index 0cb258d..0000000 --- a/example/vendor/github.com/oklog/ulid/v2/ulid.go +++ /dev/null @@ -1,696 +0,0 @@ -// Copyright 2016 The Oklog Authors -// 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 ulid - -import ( - "bufio" - "bytes" - "database/sql/driver" - "encoding/binary" - "errors" - "io" - "math" - "math/bits" - "math/rand" - "sync" - "time" -) - -/* -An ULID is a 16 byte Universally Unique Lexicographically Sortable Identifier - - The components are encoded as 16 octets. - Each component is encoded with the MSB first (network byte order). - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 32_bit_uint_time_high | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 16_bit_uint_time_low | 16_bit_uint_random | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 32_bit_uint_random | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 32_bit_uint_random | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -*/ -type ULID [16]byte - -var ( - // ErrDataSize is returned when parsing or unmarshaling ULIDs with the wrong - // data size. - ErrDataSize = errors.New("ulid: bad data size when unmarshaling") - - // ErrInvalidCharacters is returned when parsing or unmarshaling ULIDs with - // invalid Base32 encodings. - ErrInvalidCharacters = errors.New("ulid: bad data characters when unmarshaling") - - // ErrBufferSize is returned when marshalling ULIDs to a buffer of insufficient - // size. - ErrBufferSize = errors.New("ulid: bad buffer size when marshaling") - - // ErrBigTime is returned when constructing an ULID with a time that is larger - // than MaxTime. - ErrBigTime = errors.New("ulid: time too big") - - // ErrOverflow is returned when unmarshaling a ULID whose first character is - // larger than 7, thereby exceeding the valid bit depth of 128. - ErrOverflow = errors.New("ulid: overflow when unmarshaling") - - // ErrMonotonicOverflow is returned by a Monotonic entropy source when - // incrementing the previous ULID's entropy bytes would result in overflow. - ErrMonotonicOverflow = errors.New("ulid: monotonic entropy overflow") - - // ErrScanValue is returned when the value passed to scan cannot be unmarshaled - // into the ULID. - ErrScanValue = errors.New("ulid: source value must be a string or byte slice") -) - -// MonotonicReader is an interface that should yield monotonically increasing -// entropy into the provided slice for all calls with the same ms parameter. If -// a MonotonicReader is provided to the New constructor, its MonotonicRead -// method will be used instead of Read. -type MonotonicReader interface { - io.Reader - MonotonicRead(ms uint64, p []byte) error -} - -// New returns an ULID with the given Unix milliseconds timestamp and an -// optional entropy source. Use the Timestamp function to convert -// a time.Time to Unix milliseconds. -// -// ErrBigTime is returned when passing a timestamp bigger than MaxTime. -// Reading from the entropy source may also return an error. -// -// Safety for concurrent use is only dependent on the safety of the -// entropy source. -func New(ms uint64, entropy io.Reader) (id ULID, err error) { - if err = id.SetTime(ms); err != nil { - return id, err - } - - switch e := entropy.(type) { - case nil: - return id, err - case MonotonicReader: - err = e.MonotonicRead(ms, id[6:]) - default: - _, err = io.ReadFull(e, id[6:]) - } - - return id, err -} - -// MustNew is a convenience function equivalent to New that panics on failure -// instead of returning an error. -func MustNew(ms uint64, entropy io.Reader) ULID { - id, err := New(ms, entropy) - if err != nil { - panic(err) - } - return id -} - -var ( - entropy io.Reader - entropyOnce sync.Once -) - -// DefaultEntropy returns a thread-safe per process monotonically increasing -// entropy source. -func DefaultEntropy() io.Reader { - entropyOnce.Do(func() { - rng := rand.New(rand.NewSource(time.Now().UnixNano())) - entropy = &LockedMonotonicReader{ - MonotonicReader: Monotonic(rng, 0), - } - }) - return entropy -} - -// Make returns an ULID with the current time in Unix milliseconds and -// monotonically increasing entropy for the same millisecond. -// It is safe for concurrent use, leveraging a sync.Pool underneath for minimal -// contention. -func Make() (id ULID) { - // NOTE: MustNew can't panic since DefaultEntropy never returns an error. - return MustNew(Now(), DefaultEntropy()) -} - -// Parse parses an encoded ULID, returning an error in case of failure. -// -// ErrDataSize is returned if the len(ulid) is different from an encoded -// ULID's length. Invalid encodings produce undefined ULIDs. For a version that -// returns an error instead, see ParseStrict. -func Parse(ulid string) (id ULID, err error) { - return id, parse([]byte(ulid), false, &id) -} - -// ParseStrict parses an encoded ULID, returning an error in case of failure. -// -// It is like Parse, but additionally validates that the parsed ULID consists -// only of valid base32 characters. It is slightly slower than Parse. -// -// ErrDataSize is returned if the len(ulid) is different from an encoded -// ULID's length. Invalid encodings return ErrInvalidCharacters. -func ParseStrict(ulid string) (id ULID, err error) { - return id, parse([]byte(ulid), true, &id) -} - -func parse(v []byte, strict bool, id *ULID) error { - // Check if a base32 encoded ULID is the right length. - if len(v) != EncodedSize { - return ErrDataSize - } - - // Check if all the characters in a base32 encoded ULID are part of the - // expected base32 character set. - if strict && - (dec[v[0]] == 0xFF || - dec[v[1]] == 0xFF || - dec[v[2]] == 0xFF || - dec[v[3]] == 0xFF || - dec[v[4]] == 0xFF || - dec[v[5]] == 0xFF || - dec[v[6]] == 0xFF || - dec[v[7]] == 0xFF || - dec[v[8]] == 0xFF || - dec[v[9]] == 0xFF || - dec[v[10]] == 0xFF || - dec[v[11]] == 0xFF || - dec[v[12]] == 0xFF || - dec[v[13]] == 0xFF || - dec[v[14]] == 0xFF || - dec[v[15]] == 0xFF || - dec[v[16]] == 0xFF || - dec[v[17]] == 0xFF || - dec[v[18]] == 0xFF || - dec[v[19]] == 0xFF || - dec[v[20]] == 0xFF || - dec[v[21]] == 0xFF || - dec[v[22]] == 0xFF || - dec[v[23]] == 0xFF || - dec[v[24]] == 0xFF || - dec[v[25]] == 0xFF) { - return ErrInvalidCharacters - } - - // Check if the first character in a base32 encoded ULID will overflow. This - // happens because the base32 representation encodes 130 bits, while the - // ULID is only 128 bits. - // - // See https://github.com/oklog/ulid/issues/9 for details. - if v[0] > '7' { - return ErrOverflow - } - - // Use an optimized unrolled loop (from https://github.com/RobThree/NUlid) - // to decode a base32 ULID. - - // 6 bytes timestamp (48 bits) - (*id)[0] = (dec[v[0]] << 5) | dec[v[1]] - (*id)[1] = (dec[v[2]] << 3) | (dec[v[3]] >> 2) - (*id)[2] = (dec[v[3]] << 6) | (dec[v[4]] << 1) | (dec[v[5]] >> 4) - (*id)[3] = (dec[v[5]] << 4) | (dec[v[6]] >> 1) - (*id)[4] = (dec[v[6]] << 7) | (dec[v[7]] << 2) | (dec[v[8]] >> 3) - (*id)[5] = (dec[v[8]] << 5) | dec[v[9]] - - // 10 bytes of entropy (80 bits) - (*id)[6] = (dec[v[10]] << 3) | (dec[v[11]] >> 2) - (*id)[7] = (dec[v[11]] << 6) | (dec[v[12]] << 1) | (dec[v[13]] >> 4) - (*id)[8] = (dec[v[13]] << 4) | (dec[v[14]] >> 1) - (*id)[9] = (dec[v[14]] << 7) | (dec[v[15]] << 2) | (dec[v[16]] >> 3) - (*id)[10] = (dec[v[16]] << 5) | dec[v[17]] - (*id)[11] = (dec[v[18]] << 3) | dec[v[19]]>>2 - (*id)[12] = (dec[v[19]] << 6) | (dec[v[20]] << 1) | (dec[v[21]] >> 4) - (*id)[13] = (dec[v[21]] << 4) | (dec[v[22]] >> 1) - (*id)[14] = (dec[v[22]] << 7) | (dec[v[23]] << 2) | (dec[v[24]] >> 3) - (*id)[15] = (dec[v[24]] << 5) | dec[v[25]] - - return nil -} - -// MustParse is a convenience function equivalent to Parse that panics on failure -// instead of returning an error. -func MustParse(ulid string) ULID { - id, err := Parse(ulid) - if err != nil { - panic(err) - } - return id -} - -// MustParseStrict is a convenience function equivalent to ParseStrict that -// panics on failure instead of returning an error. -func MustParseStrict(ulid string) ULID { - id, err := ParseStrict(ulid) - if err != nil { - panic(err) - } - return id -} - -// Bytes returns bytes slice representation of ULID. -func (id ULID) Bytes() []byte { - return id[:] -} - -// String returns a lexicographically sortable string encoded ULID -// (26 characters, non-standard base 32) e.g. 01AN4Z07BY79KA1307SR9X4MV3. -// Format: tttttttttteeeeeeeeeeeeeeee where t is time and e is entropy. -func (id ULID) String() string { - ulid := make([]byte, EncodedSize) - _ = id.MarshalTextTo(ulid) - return string(ulid) -} - -// MarshalBinary implements the encoding.BinaryMarshaler interface by -// returning the ULID as a byte slice. -func (id ULID) MarshalBinary() ([]byte, error) { - ulid := make([]byte, len(id)) - return ulid, id.MarshalBinaryTo(ulid) -} - -// MarshalBinaryTo writes the binary encoding of the ULID to the given buffer. -// ErrBufferSize is returned when the len(dst) != 16. -func (id ULID) MarshalBinaryTo(dst []byte) error { - if len(dst) != len(id) { - return ErrBufferSize - } - - copy(dst, id[:]) - return nil -} - -// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface by -// copying the passed data and converting it to an ULID. ErrDataSize is -// returned if the data length is different from ULID length. -func (id *ULID) UnmarshalBinary(data []byte) error { - if len(data) != len(*id) { - return ErrDataSize - } - - copy((*id)[:], data) - return nil -} - -// Encoding is the base 32 encoding alphabet used in ULID strings. -const Encoding = "0123456789ABCDEFGHJKMNPQRSTVWXYZ" - -// MarshalText implements the encoding.TextMarshaler interface by -// returning the string encoded ULID. -func (id ULID) MarshalText() ([]byte, error) { - ulid := make([]byte, EncodedSize) - return ulid, id.MarshalTextTo(ulid) -} - -// MarshalTextTo writes the ULID as a string to the given buffer. -// ErrBufferSize is returned when the len(dst) != 26. -func (id ULID) MarshalTextTo(dst []byte) error { - // Optimized unrolled loop ahead. - // From https://github.com/RobThree/NUlid - - if len(dst) != EncodedSize { - return ErrBufferSize - } - - // 10 byte timestamp - dst[0] = Encoding[(id[0]&224)>>5] - dst[1] = Encoding[id[0]&31] - dst[2] = Encoding[(id[1]&248)>>3] - dst[3] = Encoding[((id[1]&7)<<2)|((id[2]&192)>>6)] - dst[4] = Encoding[(id[2]&62)>>1] - dst[5] = Encoding[((id[2]&1)<<4)|((id[3]&240)>>4)] - dst[6] = Encoding[((id[3]&15)<<1)|((id[4]&128)>>7)] - dst[7] = Encoding[(id[4]&124)>>2] - dst[8] = Encoding[((id[4]&3)<<3)|((id[5]&224)>>5)] - dst[9] = Encoding[id[5]&31] - - // 16 bytes of entropy - dst[10] = Encoding[(id[6]&248)>>3] - dst[11] = Encoding[((id[6]&7)<<2)|((id[7]&192)>>6)] - dst[12] = Encoding[(id[7]&62)>>1] - dst[13] = Encoding[((id[7]&1)<<4)|((id[8]&240)>>4)] - dst[14] = Encoding[((id[8]&15)<<1)|((id[9]&128)>>7)] - dst[15] = Encoding[(id[9]&124)>>2] - dst[16] = Encoding[((id[9]&3)<<3)|((id[10]&224)>>5)] - dst[17] = Encoding[id[10]&31] - dst[18] = Encoding[(id[11]&248)>>3] - dst[19] = Encoding[((id[11]&7)<<2)|((id[12]&192)>>6)] - dst[20] = Encoding[(id[12]&62)>>1] - dst[21] = Encoding[((id[12]&1)<<4)|((id[13]&240)>>4)] - dst[22] = Encoding[((id[13]&15)<<1)|((id[14]&128)>>7)] - dst[23] = Encoding[(id[14]&124)>>2] - dst[24] = Encoding[((id[14]&3)<<3)|((id[15]&224)>>5)] - dst[25] = Encoding[id[15]&31] - - return nil -} - -// Byte to index table for O(1) lookups when unmarshaling. -// We use 0xFF as sentinel value for invalid indexes. -var dec = [...]byte{ - 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, 0x00, 0x01, - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, - 0x0F, 0x10, 0x11, 0xFF, 0x12, 0x13, 0xFF, 0x14, 0x15, 0xFF, - 0x16, 0x17, 0x18, 0x19, 0x1A, 0xFF, 0x1B, 0x1C, 0x1D, 0x1E, - 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x0B, 0x0C, - 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0xFF, 0x12, 0x13, 0xFF, 0x14, - 0x15, 0xFF, 0x16, 0x17, 0x18, 0x19, 0x1A, 0xFF, 0x1B, 0x1C, - 0x1D, 0x1E, 0x1F, 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, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -} - -// EncodedSize is the length of a text encoded ULID. -const EncodedSize = 26 - -// UnmarshalText implements the encoding.TextUnmarshaler interface by -// parsing the data as string encoded ULID. -// -// ErrDataSize is returned if the len(v) is different from an encoded -// ULID's length. Invalid encodings produce undefined ULIDs. -func (id *ULID) UnmarshalText(v []byte) error { - return parse(v, false, id) -} - -// Time returns the Unix time in milliseconds encoded in the ULID. -// Use the top level Time function to convert the returned value to -// a time.Time. -func (id ULID) Time() uint64 { - return uint64(id[5]) | uint64(id[4])<<8 | - uint64(id[3])<<16 | uint64(id[2])<<24 | - uint64(id[1])<<32 | uint64(id[0])<<40 -} - -// maxTime is the maximum Unix time in milliseconds that can be -// represented in an ULID. -var maxTime = ULID{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}.Time() - -// MaxTime returns the maximum Unix time in milliseconds that -// can be encoded in an ULID. -func MaxTime() uint64 { return maxTime } - -// Now is a convenience function that returns the current -// UTC time in Unix milliseconds. Equivalent to: -// Timestamp(time.Now().UTC()) -func Now() uint64 { return Timestamp(time.Now().UTC()) } - -// Timestamp converts a time.Time to Unix milliseconds. -// -// Because of the way ULID stores time, times from the year -// 10889 produces undefined results. -func Timestamp(t time.Time) uint64 { - return uint64(t.Unix())*1000 + - uint64(t.Nanosecond()/int(time.Millisecond)) -} - -// Time converts Unix milliseconds in the format -// returned by the Timestamp function to a time.Time. -func Time(ms uint64) time.Time { - s := int64(ms / 1e3) - ns := int64((ms % 1e3) * 1e6) - return time.Unix(s, ns) -} - -// SetTime sets the time component of the ULID to the given Unix time -// in milliseconds. -func (id *ULID) SetTime(ms uint64) error { - if ms > maxTime { - return ErrBigTime - } - - (*id)[0] = byte(ms >> 40) - (*id)[1] = byte(ms >> 32) - (*id)[2] = byte(ms >> 24) - (*id)[3] = byte(ms >> 16) - (*id)[4] = byte(ms >> 8) - (*id)[5] = byte(ms) - - return nil -} - -// Entropy returns the entropy from the ULID. -func (id ULID) Entropy() []byte { - e := make([]byte, 10) - copy(e, id[6:]) - return e -} - -// SetEntropy sets the ULID entropy to the passed byte slice. -// ErrDataSize is returned if len(e) != 10. -func (id *ULID) SetEntropy(e []byte) error { - if len(e) != 10 { - return ErrDataSize - } - - copy((*id)[6:], e) - return nil -} - -// Compare returns an integer comparing id and other lexicographically. -// The result will be 0 if id==other, -1 if id < other, and +1 if id > other. -func (id ULID) Compare(other ULID) int { - return bytes.Compare(id[:], other[:]) -} - -// Scan implements the sql.Scanner interface. It supports scanning -// a string or byte slice. -func (id *ULID) Scan(src interface{}) error { - switch x := src.(type) { - case nil: - return nil - case string: - return id.UnmarshalText([]byte(x)) - case []byte: - return id.UnmarshalBinary(x) - } - - return ErrScanValue -} - -// Value implements the sql/driver.Valuer interface, returning the ULID as a -// slice of bytes, by invoking MarshalBinary. If your use case requires a string -// representation instead, you can create a wrapper type that calls String() -// instead. -// -// type stringValuer ulid.ULID -// -// func (v stringValuer) Value() (driver.Value, error) { -// return ulid.ULID(v).String(), nil -// } -// -// // Example usage. -// db.Exec("...", stringValuer(id)) -// -// All valid ULIDs, including zero-value ULIDs, return a valid Value with a nil -// error. If your use case requires zero-value ULIDs to return a non-nil error, -// you can create a wrapper type that special-cases this behavior. -// -// var zeroValueULID ulid.ULID -// -// type invalidZeroValuer ulid.ULID -// -// func (v invalidZeroValuer) Value() (driver.Value, error) { -// if ulid.ULID(v).Compare(zeroValueULID) == 0 { -// return nil, fmt.Errorf("zero value") -// } -// return ulid.ULID(v).Value() -// } -// -// // Example usage. -// db.Exec("...", invalidZeroValuer(id)) -// -func (id ULID) Value() (driver.Value, error) { - return id.MarshalBinary() -} - -// Monotonic returns an entropy source that is guaranteed to yield -// strictly increasing entropy bytes for the same ULID timestamp. -// On conflicts, the previous ULID entropy is incremented with a -// random number between 1 and `inc` (inclusive). -// -// The provided entropy source must actually yield random bytes or else -// monotonic reads are not guaranteed to terminate, since there isn't -// enough randomness to compute an increment number. -// -// When `inc == 0`, it'll be set to a secure default of `math.MaxUint32`. -// The lower the value of `inc`, the easier the next ULID within the -// same millisecond is to guess. If your code depends on ULIDs having -// secure entropy bytes, then don't go under this default unless you know -// what you're doing. -// -// The returned type isn't safe for concurrent use. -func Monotonic(entropy io.Reader, inc uint64) *MonotonicEntropy { - m := MonotonicEntropy{ - Reader: bufio.NewReader(entropy), - inc: inc, - } - - if m.inc == 0 { - m.inc = math.MaxUint32 - } - - if rng, ok := entropy.(rng); ok { - m.rng = rng - } - - return &m -} - -type rng interface{ Int63n(n int64) int64 } - -// LockedMonotonicReader wraps a MonotonicReader with a sync.Mutex for -// safe concurrent use. -type LockedMonotonicReader struct { - mu sync.Mutex - MonotonicReader -} - -// MonotonicRead synchronizes calls to the wrapped MonotonicReader. -func (r *LockedMonotonicReader) MonotonicRead(ms uint64, p []byte) (err error) { - r.mu.Lock() - err = r.MonotonicReader.MonotonicRead(ms, p) - r.mu.Unlock() - return err -} - -// MonotonicEntropy is an opaque type that provides monotonic entropy. -type MonotonicEntropy struct { - io.Reader - ms uint64 - inc uint64 - entropy uint80 - rand [8]byte - rng rng -} - -// MonotonicRead implements the MonotonicReader interface. -func (m *MonotonicEntropy) MonotonicRead(ms uint64, entropy []byte) (err error) { - if !m.entropy.IsZero() && m.ms == ms { - err = m.increment() - m.entropy.AppendTo(entropy) - } else if _, err = io.ReadFull(m.Reader, entropy); err == nil { - m.ms = ms - m.entropy.SetBytes(entropy) - } - return err -} - -// increment the previous entropy number with a random number -// of up to m.inc (inclusive). -func (m *MonotonicEntropy) increment() error { - if inc, err := m.random(); err != nil { - return err - } else if m.entropy.Add(inc) { - return ErrMonotonicOverflow - } - return nil -} - -// random returns a uniform random value in [1, m.inc), reading entropy -// from m.Reader. When m.inc == 0 || m.inc == 1, it returns 1. -// Adapted from: https://golang.org/pkg/crypto/rand/#Int -func (m *MonotonicEntropy) random() (inc uint64, err error) { - if m.inc <= 1 { - return 1, nil - } - - // Fast path for using a underlying rand.Rand directly. - if m.rng != nil { - // Range: [1, m.inc) - return 1 + uint64(m.rng.Int63n(int64(m.inc))), nil - } - - // bitLen is the maximum bit length needed to encode a value < m.inc. - bitLen := bits.Len64(m.inc) - - // byteLen is the maximum byte length needed to encode a value < m.inc. - byteLen := uint(bitLen+7) / 8 - - // msbitLen is the number of bits in the most significant byte of m.inc-1. - msbitLen := uint(bitLen % 8) - if msbitLen == 0 { - msbitLen = 8 - } - - for inc == 0 || inc >= m.inc { - if _, err = io.ReadFull(m.Reader, m.rand[:byteLen]); err != nil { - return 0, err - } - - // Clear bits in the first byte to increase the probability - // that the candidate is < m.inc. - m.rand[0] &= uint8(int(1<(friend:Person) - WHERE p.id = $id AND friend.age > $minAge - WITH friend, count(*) AS connectionDepth - ORDER BY connectionDepth DESC - LIMIT 10 - RETURN friend - `). - RunWithParams(ctx, map[string]any{"id": id, "minAge": 21}, "friend", &people) -``` - -### 2. **Type-Safe Result Binding** -Simple name/pointer pairs: -```go -var person Person -var count int64 -err := c.Cypher(`... RETURN p, cnt`). - RunWithParams(ctx, params, "p", &person, "cnt", &count) -``` - -### 3. **Schema from Tags** -Define once, migrate automatically: -```go -type Person struct { - internal.Node `neo4j:"Person"` - Email string `neo4j:"email,unique"` - Name string `neo4j:"name,index"` -} - -// Auto-create indexes/constraints -actions, _ := driver.Schema().AutoMigrate(ctx) -``` - -### 4. **Neo4j-Specific Features** -- Abstract nodes (polymorphic types) -- Causal consistency with bookmarks -- Relationship structs with properties -- Full Cypher support (APOC, graph algorithms, etc.) - -## What neogo Doesn't Do - -neogo intentionally omits features that would: -- Generate Cypher (you write it) -- Hide Neo4j concepts behind abstractions -- Add runtime overhead for rarely-used features - -**For these patterns, use application code:** - -```go -// Soft delete - just a property pattern -err := c.Cypher(` - MATCH (p:Person {id: $id}) - SET p.deletedAt = datetime(), p.deleted = true -`).RunWithParams(ctx, params) - -// Eager loading - explicit relationship query -err := c.Cypher(` - MATCH (p:Person {id: $id})-[:KNOWS]->(friend:Person) - RETURN p, collect(friend) AS friends -`).RunWithParams(ctx, params, "p", &person, "friends", &friends) - -// Hooks - call functions before/after -func CreatePerson(ctx context.Context, c neogo.Client, p *Person) error { - p.CreatedAt = time.Now() // Before hook - err := c.Cypher(`CREATE (p:Person) SET p = $props`). - RunWithParams(ctx, map[string]any{"props": p}) - if err == nil { - sendWelcomeEmail(p) // After hook - } - return err -} -``` - -## When to Use What - -| Use Case | Recommendation | -|----------|----------------| -| Complex graph traversals | neogo (raw Cypher) | -| Simple CRUD on nodes | Either works | -| Relational data | GORM | -| Graph algorithms | neogo (access to GDS) | -| Rapid prototyping | GORM (more helpers) | -| Production Neo4j | neogo (full control) | diff --git a/example/vendor/github.com/rlch/neogo/README.md b/example/vendor/github.com/rlch/neogo/README.md deleted file mode 100644 index a5c6152..0000000 --- a/example/vendor/github.com/rlch/neogo/README.md +++ /dev/null @@ -1,212 +0,0 @@ -# neogo - -![logo](https://i.imgur.com/4bK7CqC.png) - -[![Go Report Card](https://goreportcard.com/badge/github.com/rlch/neogo)](https://goreportcard.com/report/github.com/rlch/neogo) [![codecov](https://codecov.io/gh/rlch/neogo/branch/main/graph/badge.svg?token=K1NYHBQD1A)](https://codecov.io/gh/rlch/neogo) [![Go Reference](https://pkg.go.dev/badge/github.com/rlch/neogo.svg)](https://pkg.go.dev/github.com/rlch/neogo) - -A lightweight Golang ORM for Neo4j with raw Cypher queries and type-safe result binding. - -> [!WARNING] -> The neogo API is still in an experimental phase. Expect minor changes and -> additions until the first release. - - -## Overview - -`neogo` provides a thin layer over the official Neo4j Go driver, letting you write raw Cypher queries while neogo handles: - -- **Automatic marshalling/unmarshalling** between Go structs and Neo4j -- **Type-safe result binding** with named bindings -- **Schema management** with indexes and constraints from struct tags -- **Session and transaction** management with causal consistency support -- **Zero-reflection hot path** for high performance - -## Getting Started - -### Installation - -```bash -go get github.com/rlch/neogo -``` - -### Define Your Models - -```go -import "github.com/rlch/neogo" - -type Person struct { - neogo.Node `neo4j:"Person"` - - Name string `neo4j:"name"` - Surname string `neo4j:"surname"` - Age int `neo4j:"age"` -} -``` - -### Connect and Query - -```go -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/rlch/neogo" -) - -func main() { - ctx := context.Background() - - // Create driver - driver, err := neogo.New( - "neo4j://localhost:7687", - neo4j.BasicAuth("neo4j", "password", ""), - neogo.WithTypes(&Person{}), - ) - if err != nil { - log.Fatal(err) - } - defer driver.DB().Close(ctx) - - // Create a person - err = driver.Exec(). - Cypher(` - CREATE (p:Person {id: $id, name: $name, surname: $surname, age: $age}) - `). - RunWithParams(ctx, map[string]any{ - "id": "some-unique-id", - "name": "Spongebob", - "surname": "Squarepants", - "age": 20, - }) - - // Query with result binding - var person Person - err = driver.Exec(). - Cypher(` - MATCH (p:Person {name: $name}) - RETURN p - `). - RunWithParams(ctx, map[string]any{"name": "Spongebob"}, "p", &person) - - fmt.Printf("person: %s %s, age %d\n", person.Name, person.Surname, person.Age) - // Output: person: Spongebob Squarepants, age 20 -} -``` - -## API - -### Basic Query Execution - -```go -// Simple query with no results -err := driver.Exec(). - Cypher(`CREATE (n:Node {id: $id})`). - RunWithParams(ctx, map[string]any{"id": "123"}) - -// Query with result binding - bindings are name/pointer pairs -var person Person -err := driver.Exec(). - Cypher(`MATCH (p:Person {id: $id}) RETURN p`). - RunWithParams(ctx, map[string]any{"id": "123"}, "p", &person) - -// Multiple result bindings -var person Person -var count int64 -err := driver.Exec(). - Cypher(` - MATCH (p:Person {id: $id})-[:KNOWS]->(f:Person) - WITH p, count(f) AS cnt - RETURN p, cnt - `). - RunWithParams(ctx, map[string]any{"id": "123"}, "p", &person, "cnt", &count) -``` - -### Sessions and Transactions - -```go -// Read session with transaction -session := driver.ReadSession(ctx) -defer session.Close(ctx) - -err := session.ReadTransaction(ctx, func(c neogo.Client) error { - var people []Person - return c.Cypher(`MATCH (p:Person) RETURN p`). - Run(ctx, "p", &people) -}) - -// Write session with transaction -session := driver.WriteSession(ctx) -defer session.Close(ctx) - -err := session.WriteTransaction(ctx, func(c neogo.Client) error { - return c.Cypher(`CREATE (p:Person {name: $name})`). - RunWithParams(ctx, map[string]any{"name": "Alice"}) -}) - -// Explicit transaction control -tx, err := session.BeginTransaction(ctx) -defer tx.Close(ctx) - -err = tx.Run(func(c neogo.Client) error { - return c.Cypher(`CREATE (p:Person {name: $name})`). - RunWithParams(ctx, map[string]any{"name": "Bob"}) -}) -if err != nil { - tx.Rollback(ctx) - return err -} -tx.Commit(ctx) -``` - -### Streaming Results - -```go -// Stream results one-by-one for memory efficiency -var person Person -err := driver.Exec(). - Cypher(`MATCH (p:Person) RETURN p`). - Stream(ctx, func() error { - fmt.Printf("Processing: %s\n", person.Name) - return nil - }, "p", &person) - -// Streaming with parameters -err := driver.Exec(). - Cypher(`MATCH (p:Person) WHERE p.age > $minAge RETURN p`). - StreamWithParams(ctx, map[string]any{"minAge": 18}, func() error { - fmt.Printf("Adult: %s\n", person.Name) - return nil - }, "p", &person) -``` - -### Schema Management - -```go -// Define schema with struct tags -type Person struct { - neogo.Node `neo4j:"Person"` - - Email string `neo4j:"email,unique"` // Unique constraint - Name string `neo4j:"name,index"` // Range index - Bio string `neo4j:"bio,fulltext"` // Fulltext index - Age int `neo4j:"age,notNull"` // Not null constraint -} - -// Auto-migrate schema -actions, err := driver.Schema().AutoMigrate(ctx) -for _, action := range actions { - fmt.Printf("Applied: %s\n", action.Description) -} - -// Check if migration is needed -needed, err := driver.Schema().NeedsMigration(ctx) -``` - -## Resources - -- [Go Reference](https://pkg.go.dev/github.com/rlch/neogo) -- [Official Neo4j Go Driver](https://github.com/neo4j/neo4j-go-driver) -- [Neo4j Cypher Manual](https://neo4j.com/docs/cypher-manual/current/) - - -## Contributing - -See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed instructions on how to contribute to `neogo`. diff --git a/example/vendor/github.com/rlch/neogo/REFLECTION_REMOVAL.md b/example/vendor/github.com/rlch/neogo/REFLECTION_REMOVAL.md deleted file mode 100644 index 2fcac60..0000000 --- a/example/vendor/github.com/rlch/neogo/REFLECTION_REMOVAL.md +++ /dev/null @@ -1,262 +0,0 @@ -# Reflection Removal Progress - -This document tracks progress on removing runtime reflection from hot paths in neogo. - -## Goals - -1. **Hot path (per-query/record)**: Zero reflection - use pre-compiled codecs with unsafe pointers -2. **Registration phase (startup)**: Reflection OK - happens once at startup -3. **Lookup phase (once per type)**: Minimal reflection OK - cache lookup uses `reflect.TypeOf` - -## Current State - -The codec system (`internal/codec/`) already implements zero-reflection decoding via: -- Pre-compiled decoders (`CompileDecoder`) -- Unsafe pointer arithmetic for field access -- Type-specific allocators that avoid runtime `reflect.New()` - -However, `internal/binding.go` still uses heavy reflection on the hot path. - -## Architecture Challenge - -The current binding system has two phases: -1. **Query building** (`scope.go`): Tracks `map[string]reflect.Value` bindings -2. **Unmarshaling** (`client_impl.go`): Uses those bindings to populate user structs - -The challenge is that `client_impl.go` does significant reflection work: -- `unmarshalRecords()`: Creates slice, gets index, allocates elements -- `unmarshalRecord()`: Passes `reflect.Value` to `BindValue` - -### Incremental Approach - -Rather than rewriting everything at once, we can: - -1. **Keep bindings as `reflect.Value`** for now (query building isn't hot path) -2. **Optimize `BindValue`** to delegate to codec ASAP (reduce reflection per-record) -3. **Later**: Refactor bindings to use typed wrappers that pre-compile allocation - -## Files to Refactor - -### High Priority (Hot Path) - -| File | Status | Notes | -|------|--------|-------| -| `internal/binding.go` | 🟢 OPTIMIZED | Reflection still used for special cases (Valuer, abstract), but fast path skips it | -| `internal/binding_plan.go` | 🟢 NEW | Pre-compiles binding metadata at query compile time, provides zero-reflection DecodeSingle/DecodeMultiple | -| `client_impl.go` | 🟢 OPTIMIZED | Uses BindingPlan for fast path, falls back to Bind() for special cases | - -### Medium Priority (Query Building) - -| File | Status | Notes | -|------|--------|-------| -| `internal/scope.go` | ✅ DONE | Changed from `reflect.Value` to `map[string]any` (pointers) | -| `internal/cypher.go` | ✅ DONE | `Bindings map[string]any` - pointers to user's binding targets | -| `internal/cypher_client.go` | ✅ DONE | Uses bindings from cypher.go | - -### Low Priority (Registration Only) - -| File | Status | Notes | -|------|--------|-------| -| `internal/registry.go` | ✅ OK | Registration phase - reflection acceptable | -| `internal/labels.go` | ✅ OK | `ExtractNodeLabels`/`ExtractRelationshipType` - registration phase | -| `internal/helpers.go` | ✅ OK | `WalkStruct` - used at registration, not hot path | -| `internal/codec/neo4j_extractor.go` | ✅ OK | Registration phase metadata extraction | -| `internal/codec/compiler.go` | ✅ OK | Compile-time only | -| `internal/codec/registry.go` | ✅ OK | Registration + lookup (cached) | - -## Plan for binding.go Removal - -### Current API -```go -func (r *Registry) BindValue(from any, to reflect.Value) error -``` - -### Target API -```go -func (r *Registry) Bind(from any, to any) error // to must be pointer -``` - -### Migration Steps - -1. **Phase 1**: Add new `Bind(from any, to any)` method that uses codec.Decode -2. **Phase 2**: Handle special cases in codec: - - `neo4j.Node` → extract Props, decode to struct - - `neo4j.Relationship` → extract Props, decode to struct - - Slice depth matching (single record to slice) - - Abstract node binding (polymorphic decode) - - Valuer interface support -3. **Phase 3**: Update callers (`client_impl.go`) to use new API -4. **Phase 4**: Remove old `BindValue` and related reflection code - -## Special Cases to Handle - -### 1. Neo4j Node/Relationship Unwrapping -Currently handled in binding.go: -```go -case neo4j.Node: - return r.BindValue(fromVal.Props, to) -``` -**Solution**: Codec decoder already handles this in `structDecoder.Decode()` - -### 2. Slice Depth Matching -```go -// If depth of from is 1 lower than to, wrap in slice -if fromDepth+1 == toDepth { - to.Set(reflect.MakeSlice(toT, 1, 1)) - return r.BindValue(from, to.Index(0)) -} -``` -**Solution**: Add to slice decoder or handle in top-level Bind() - -### 3. Abstract Node Binding -```go -func (r *Registry) BindAbstractNode(node neo4j.Node, to reflect.Value) error -``` -**Solution**: Need label-based type lookup in codec registry - -### 4. Valuer Interface -```go -type Valuer[V neo4j.RecordValue] interface { - Marshal() (*V, error) - Unmarshal(*V) error -} -``` -**Solution**: Check for interface at registration, compile custom decoder - -### 5. Primitive Coercion (via cast library) -```go -case int: - return true, bindCasted(cast.ToIntE, from, value) -``` -**Solution**: Codec decoders already handle type conversion - -## Scope/Bindings Refactor - -The `map[string]reflect.Value` in scope.go is used for: -1. Tracking bound variables during query building -2. Passing bindings to unmarshaling - -Options: -- **Option A**: Keep `reflect.Value` in scope (query building isn't hot path) -- **Option B**: Change to `map[string]any` and use type assertions -- **Option C**: Change to `map[string]unsafe.Pointer` with type info - -**Recommendation**: Option A for now - query building happens once per query, not per record. - -## Progress Log - -- [x] Phase 1: Simplify binding.go to delegate to codec ASAP - - Removed ~100 lines of reflection code - - Kept Valuer interface support - - Added primitive binding helper - - Fixed nil handling -- [x] Phase 2: Handle special cases - - Neo4j Node/Relationship unwrapping (codec handles this) - - Slice depth matching (kept in binding.go for now) - - Single value to slice wrapping - - Abstract node binding (polymorphic) - - Nil pointer preservation in slices -- [x] Phase 3: Update client_impl.go - - Fixed nil pre-allocation issue -- [x] Phase 4: Scope bindings migration from reflect.Value to any - - Changed `bindings` from `map[string]reflect.Value` to `map[string]any` (pointers) - - Changed `names` from `map[reflect.Value]string` to `map[uintptr]string` (pointer addresses) - - Added `ptrAddr()` helper for pointer address extraction - - Fixed field/name lookup priority for zero-size embedded types - - Primitive pointers (string, int, etc.) check fields first - - Struct/interface pointers check names first - - Updated `propertyIdentifier` and `valueIdentifier` with same logic - - Fixed WHERE clause identifier to use name string instead of raw identifier - - Delete field entry when aliasing to prevent stale lookups -- [x] Phase 5: BindingPlan - Pre-compile binding metadata - - Added `BindingPlan` struct in `internal/binding_plan.go` - - Pre-computes at query compile time (not per-record): - - IsSlice, IsAbstract, IsSliceAbstract flags - - SliceDepth, PointerDepth - - Decoder (pre-compiled from codec) - - SliceAllocator, ElemAllocator functions - - Added `Plans map[string]*BindingPlan` to `CompiledCypher` - - Plans built in `CypherRunner.Compile()` via `BuildBindingPlans()` - - `unmarshalRecords` uses plan flags instead of runtime reflection -- [x] Phase 6: Use plan.Decoder directly in hot path (skip BindValue) - - Added `DecodeSingle(value any)` method to BindingPlan - - Uses pre-compiled decoder directly via unsafe pointer - - ZERO reflection for non-abstract, non-Valuer types - - Falls through to Bind() for special cases - - Added `DecodeMultiple(values []any)` method to BindingPlan - - Uses pre-compiled SliceAllocator + decoder - - Batch decodes multiple records efficiently - - Updated `unmarshalRecord()` in client_impl.go: - - Uses `plan.DecodeSingle()` for non-slice bindings - - Falls back to `Bind()` only for abstract/special types - - Updated `unmarshalRecords()` in client_impl.go: - - Uses `plan.DecodeMultiple()` first for slice bindings - - Simplified: removed legacy path (plans always available) - - Updated `unmarshalRecordsFallback()`: - - Uses `plan.SliceAllocator` instead of `reflect.MakeSlice` - - Uses `plan.ElemAllocator` instead of `reflect.New` for pointer elements - - Added `getTargetPtr()` helper for unwrapping pointer chains - - **Removed legacy code**: - - Deleted `normalizeSliceBinding()` - replaced by plan.DecodeMultiple - - Deleted `isAbstractSliceBinding()` - replaced by plan.IsSliceAbstract flag - - Simplified `unmarshalRecords()` control flow -- [ ] Phase 7: Add HasValuer detection at plan creation time (future work) - - Would allow skipping Valuer interface check per-record - - Low priority since Valuer is rarely used -- [x] Phase 8: Further simplify binding.go - - Consolidated `computeDepth` and `computeSliceDepth` (removed duplicate) - - Consolidated `isAbstractTarget` to delegate to `isAbstractType` - - Removed redundant `rAbstract` local variable (uses package-level from registry.go) - - Updated comments to accurately describe reflection boundaries -- [x] Phase 9: Evaluate remaining reflection in query building - - **Conclusion**: Query building reflection is ACCEPTABLE (not hot path) - - Added documentation headers to scope.go, binding.go, binding_plan.go - - Clarified reflection boundaries in comments - - No changes needed - query building happens once per query, not per-record -- [x] Phase 10: Cache target pointer at plan creation time - - Added `CachedTargetPtr` field to BindingPlan - - Renamed `getTargetPtr()` to `computeTargetPtr()` - called once at plan creation - - `DecodeSingle()` now uses cached pointer directly - ZERO reflection per-record - - `DecodeMultiple()` uses cached pointer for slice header - - Added `TestBindingPlan_CachedTargetPtr` test suite - - **Result**: Eliminated `reflect.ValueOf()` calls from hot path - -## Code Stats - -**Before refactor:** -- `binding.go`: ~300 lines with heavy reflection -- `scope.go`: Used `reflect.Value` for bindings map -- Used `cast` library for type coercion -- Every record decode used reflection per-field - -**After Phase 8-9 cleanup:** -- `binding.go`: ~340 lines, reflection only for special cases (Valuer, abstract, slice depth) -- `binding_plan.go`: ~270 lines, pre-compiled binding plans with accurate doc comments -- `scope.go`: Uses `map[string]any` with `map[uintptr]string` for reverse lookup -- `client_impl.go`: Uses BindingPlan fast path, falls back to Bind() for special cases -- All files have clear documentation of reflection boundaries - -**Hot path improvements:** -- Non-abstract, non-Valuer bindings: ZERO reflection per-record -- Target pointer: Cached at plan creation (no `reflect.ValueOf` per-record) -- Slice allocations: Pre-compiled allocators (per-batch, not per-record) -- Pointer element allocations: Pre-compiled allocators (fallback path only) -- Type checking: Plan flags instead of `reflect.Kind()`, `reflect.Implements()` -- Decoder lookup: Pre-compiled at query compile time (not per-record) - -## Final Architecture - -``` -Query Building (reflection OK - once per query) - scope.go -> Tracks bindings, generates Cypher - cypher.go -> Builds query string - cypher_client.go -> Compiles query, builds BindingPlans - -Record Decoding (zero reflection - per record) - binding_plan.go -> Pre-compiled plans with flags & decoders - codec/decoder.go -> Zero-reflection decoders using unsafe - codec/registry.go -> Decoder lookup (cached) - -Fallback Path (reflection - special cases only) - binding.go -> Valuer, abstract nodes, slice depth mismatch -``` diff --git a/example/vendor/github.com/rlch/neogo/Taskfile.yml b/example/vendor/github.com/rlch/neogo/Taskfile.yml deleted file mode 100644 index 6e5ea81..0000000 --- a/example/vendor/github.com/rlch/neogo/Taskfile.yml +++ /dev/null @@ -1,156 +0,0 @@ -version: "3" - -vars: - NEO4J_CONTAINER_NAME: neogo-neo4j - NEO4J_PORT: 7687 - NEO4J_USER: neo4j - NEO4J_PASSWORD: password - -tasks: - check: - desc: Check prerequisites (Docker, gotestsum) - cmds: - - | - echo "Checking prerequisites..." - - # Check Docker - if ! command -v docker &> /dev/null; then - echo "❌ Docker is not installed" - echo " Please install Docker: https://docs.docker.com/get-docker/" - exit 1 - else - echo "✅ Docker is installed" - fi - - if ! docker ps &> /dev/null; then - echo "⚠️ Docker daemon is not running" - echo " Please start Docker first" - else - echo "✅ Docker daemon is running" - fi - - # Check gotestsum - if ! command -v gotestsum &> /dev/null; then - echo "❌ gotestsum is not installed" - echo " Install with: go install gotest.tools/gotestsum@latest" - exit 1 - else - echo "✅ gotestsum is installed" - fi - - echo "" - echo "All prerequisites are ready! 🎉" - silent: false - neo4j:start: - desc: Start Neo4J Docker container for testing - cmds: - - | - if ! command -v docker &> /dev/null; then - echo "Error: Docker is not installed or not in PATH" - exit 1 - fi - if ! docker ps &> /dev/null; then - echo "Error: Docker daemon is not running. Please start Docker first." - exit 1 - fi - if ! docker ps -q -f name={{.NEO4J_CONTAINER_NAME}} | grep -q .; then - echo "Starting Neo4J container..." - docker run -d \ - --name {{.NEO4J_CONTAINER_NAME}} \ - -p {{.NEO4J_PORT}}:7687 \ - -p 7474:7474 \ - -e NEO4J_AUTH={{.NEO4J_USER}}/{{.NEO4J_PASSWORD}} \ - -e NEO4J_PLUGINS='["apoc"]' \ - -e NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \ - --rm \ - neo4j:5.7-community - echo "Neo4J container started successfully" - else - echo "Neo4J container is already running" - fi - silent: false - - neo4j:wait: - desc: Wait for Neo4J to be ready - deps: [neo4j:start] - cmds: - - | - echo "Waiting for Neo4J to be ready..." - timeout=60 - elapsed=0 - while [ $elapsed -lt $timeout ]; do - if docker logs {{.NEO4J_CONTAINER_NAME}} 2>&1 | grep -q "Bolt enabled"; then - echo "Neo4J is ready!" - exit 0 - fi - echo "Waiting for Neo4J to start... ($elapsed/$timeout seconds)" - sleep 2 - elapsed=$((elapsed + 2)) - done - echo "Timeout waiting for Neo4J to start" - exit 1 - silent: false - - neo4j:stop: - desc: Stop and remove Neo4J Docker container - cmds: - - | - if docker ps -q -f name={{.NEO4J_CONTAINER_NAME}} | grep -q .; then - echo "Stopping Neo4J container..." - docker stop {{.NEO4J_CONTAINER_NAME}} - echo "Neo4J container stopped" - else - echo "Neo4J container is not running" - fi - silent: false - - neo4j:logs: - desc: Show Neo4J container logs - cmds: - - docker logs {{.NEO4J_CONTAINER_NAME}} - - install: - desc: Install project dependencies - cmds: - - go mod download - - go mod verify - - test:unit: - desc: Run unit tests (no Neo4J required) - cmds: - - gotestsum -- -short ./... - - test:integration: - desc: Run integration tests with Neo4J - deps: [neo4j:wait] - cmds: - - gotestsum ./... - - test: - desc: Run all tests (starts Neo4J, runs tests, stops Neo4J) - deps: [neo4j:wait] - cmds: - - gotestsum ./... - - task: neo4j:stop - - test:watch: - desc: Run tests in watch mode with Neo4J - deps: [neo4j:wait] - cmds: - - gotestsum --watch ./... - - clean: - desc: Clean up containers and build artifacts - cmds: - - task: neo4j:stop - - go clean -cache - - go clean -testcache - - dev:setup: - desc: Set up development environment - cmds: - - task: install - - task: neo4j:start - - task: neo4j:wait - - echo "Development environment ready!" - diff --git a/example/vendor/github.com/rlch/neogo/client_impl.go b/example/vendor/github.com/rlch/neogo/client_impl.go deleted file mode 100644 index c12c136..0000000 --- a/example/vendor/github.com/rlch/neogo/client_impl.go +++ /dev/null @@ -1,385 +0,0 @@ -package neogo - -import ( - "context" - "errors" - "fmt" - "reflect" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - - "github.com/rlch/neogo/internal" - "github.com/rlch/neogo/internal/codec" -) - -type ( - // Client is the query interface returned by Driver.Exec(). - Client interface { - // Cypher sets the Cypher query string and returns a Runner for execution. - Cypher(query string) Runner - } - - // Runner executes Cypher queries with bindings. - Runner interface { - // Print prints the query to stdout for debugging. - Print() Runner - - // Run executes the query with bindings. - // Bindings should be pairs of (name string, target any). - // - // Example: - // var person Person - // var movie Movie - // err := d.Exec(). - // Cypher("MATCH (p:Person)-[:ACTED_IN]->(m:Movie) RETURN p, m"). - // Run(ctx, "p", &person, "m", &movie) - Run(ctx context.Context, bindings ...any) error - - // RunWithParams executes the query with parameters and bindings. - // - // Example: - // var person Person - // err := d.Exec(). - // Cypher("MATCH (p:Person {name: $name}) RETURN p"). - // RunWithParams(ctx, map[string]any{"name": "Alice"}, "p", &person) - RunWithParams(ctx context.Context, params map[string]any, bindings ...any) error - - // Stream executes the query and streams results one-by-one. - // Bindings should be pairs of (name string, target any). - Stream(ctx context.Context, sink func() error, bindings ...any) error - - // StreamWithParams executes the query with parameters and streams results. - StreamWithParams(ctx context.Context, params map[string]any, sink func() error, bindings ...any) error - } - - clientImpl struct { - *session - cy *internal.CypherClient - } - - runnerImpl struct { - *session - cy *internal.CypherRunner - } -) - -func (s *session) newClient(cy *internal.CypherClient) *clientImpl { - return &clientImpl{ - session: s, - cy: cy, - } -} - -func (c *clientImpl) Cypher(query string) Runner { - return &runnerImpl{ - session: c.session, - cy: c.cy.Cypher(query), - } -} - -func (r *runnerImpl) Print() Runner { - r.cy.Print() - return r -} - -func (r *runnerImpl) Run(ctx context.Context, bindings ...any) error { - return r.RunWithParams(ctx, nil, bindings...) -} - -func (r *runnerImpl) RunWithParams(ctx context.Context, params map[string]any, bindings ...any) error { - cy, err := r.cy.CompileWithParams(params, bindings...) - if err != nil { - return fmt.Errorf("cannot compile cypher: %w", err) - } - - canonicalizedParams, err := canonicalizeParams(r.Registry().Codecs(), cy.Parameters) - if err != nil { - return fmt.Errorf("cannot serialize parameters: %w", err) - } - if canonicalizedParams != nil { - canonicalizedParams["__isWrite"] = cy.IsWrite - } - - _, err = r.executeTransaction( - ctx, cy, - func(tx neo4j.ManagedTransaction) (any, error) { - result, err := tx.Run(ctx, cy.Cypher, canonicalizedParams) - if err != nil { - return nil, fmt.Errorf("cannot run cypher: %w", err) - } - if err = r.unmarshalResult(ctx, cy, result); err != nil { - return nil, err - } - return nil, nil - }) - return err -} - -func (r *runnerImpl) Stream(ctx context.Context, sink func() error, bindings ...any) error { - return r.StreamWithParams(ctx, nil, sink, bindings...) -} - -func (r *runnerImpl) StreamWithParams(ctx context.Context, params map[string]any, sink func() error, bindings ...any) error { - cy, err := r.cy.CompileWithParams(params, bindings...) - if err != nil { - return fmt.Errorf("cannot compile cypher: %w", err) - } - - canonicalizedParams, err := canonicalizeParams(r.Registry().Codecs(), cy.Parameters) - if err != nil { - return fmt.Errorf("cannot serialize parameters: %w", err) - } - - _, err = r.executeTransaction(ctx, cy, func(tx neo4j.ManagedTransaction) (any, error) { - result, err := tx.Run(ctx, cy.Cypher, canonicalizedParams) - if err != nil { - return nil, fmt.Errorf("cannot run cypher: %w", err) - } - - for result.Next(ctx) { - record := result.Record() - if record == nil { - continue - } - if err = r.unmarshalRecord(cy, record); err != nil { - return nil, fmt.Errorf("cannot unmarshal record: %w", err) - } - if err = sink(); err != nil { - return nil, err - } - } - - if err = result.Err(); err != nil { - return nil, fmt.Errorf("result error: %w", err) - } - return nil, nil - }) - return err -} - -func (s *session) unmarshalResult( - ctx context.Context, - cy *internal.CompiledCypher, - result neo4j.ResultWithContext, -) (err error) { - if !result.Next(ctx) { - return nil - } - first := result.Record() - if result.Peek(ctx) { - var records []*neo4j.Record - records, err = result.Collect(ctx) - if err != nil { - return fmt.Errorf("cannot collect records: %w", err) - } - records = append([]*neo4j.Record{first}, records...) - if err = s.unmarshalRecords(cy, records); err != nil { - return fmt.Errorf("cannot unmarshal records: %w", err) - } - } else { - single := result.Record() - if single == nil { - return nil - } - if err = s.unmarshalRecord(cy, single); err != nil { - return fmt.Errorf("cannot unmarshal record: %w", err) - } - } - return nil -} - -func (s *session) unmarshalRecords( - cy *internal.CompiledCypher, - records []*neo4j.Record, -) error { - n := len(records) - if n == 0 { - return nil - } - - for key, binding := range cy.Bindings { - values := make([]any, n) - for i, record := range records { - value, ok := record.Get(key) - if !ok { - return fmt.Errorf("no value associated with key %q", key) - } - values[i] = value - } - - plan := cy.Plans[key] - - if plan != nil && plan.IsSlice && !plan.IsSliceAbstract && plan.Decoder != nil { - if err := plan.DecodeMultiple(values); err == nil { - continue - } - } - - if err := s.unmarshalRecordsFallback(key, values, binding, plan); err != nil { - return err - } - } - - return nil -} - -func (s *session) unmarshalRecordsFallback(key string, values []any, binding any, plan *internal.BindingPlan) error { - n := len(values) - - bindingV := reflect.ValueOf(binding) - if bindingV.Kind() != reflect.Ptr { - return fmt.Errorf("binding for key %q must be a pointer", key) - } - sliceV := bindingV.Elem() - for sliceV.Kind() == reflect.Ptr { - if sliceV.IsNil() { - sliceV.Set(reflect.New(sliceV.Type().Elem())) - } - sliceV = sliceV.Elem() - } - if sliceV.Kind() != reflect.Slice { - return fmt.Errorf("binding for key %q must be a pointer to slice, got %v", key, sliceV.Kind()) - } - - if plan != nil && plan.SliceAllocator != nil { - slice := plan.SliceAllocator(n) - sliceV.Set(reflect.ValueOf(slice)) - } else { - sliceV.Set(reflect.MakeSlice(sliceV.Type(), n, n)) - } - - for i, value := range values { - elemV := sliceV.Index(i) - - if value == nil { - continue - } - - if elemV.Kind() == reflect.Ptr && elemV.IsNil() { - if plan != nil && plan.ElemAllocator != nil { - elemPtr := plan.ElemAllocator() - elemV.Set(reflect.NewAt(elemV.Type().Elem(), elemPtr)) - } else { - elemV.Set(reflect.New(elemV.Type().Elem())) - } - } - - if elemV.CanAddr() { - elemV = elemV.Addr() - } - if err := s.reg.BindValue(value, elemV.Elem()); err != nil { - return fmt.Errorf("error binding key %q index %d: %w", key, i, err) - } - } - - return nil -} - -func (s *session) unmarshalRecord( - cy *internal.CompiledCypher, - record *neo4j.Record, -) error { - for key, binding := range cy.Bindings { - value, ok := record.Get(key) - if !ok { - return fmt.Errorf("no value associated with key %q", key) - } - - if plan := cy.Plans[key]; plan != nil { - if !plan.IsSlice && !plan.IsAbstract && plan.Decoder != nil { - if err := plan.DecodeSingle(value); err == nil { - continue - } - } - } - - if err := s.reg.Bind(value, binding); err != nil { - return fmt.Errorf("error binding key %q: %w", key, err) - } - } - return nil -} - -func (r *runnerImpl) executeTransaction( - ctx context.Context, - cy *internal.CompiledCypher, - exec neo4j.ManagedTransactionWork, -) (out any, err error) { - if r.currentTx == nil { - sess := r.Session() - sessConfig := neo4j.SessionConfig{ - AccessMode: neo4j.AccessModeRead, - } - r.ensureCausalConsistency(ctx, &sessConfig) - if sess == nil { - if conf := r.execConfig.SessionConfig; conf != nil { - sessConfig = *conf - } - if cy.IsWrite || sessConfig.AccessMode == neo4j.AccessModeWrite { - sessConfig.AccessMode = neo4j.AccessModeWrite - } else { - sessConfig.AccessMode = neo4j.AccessModeRead - } - sess = r.db.NewSession(ctx, sessConfig) - defer func() { - if sessConfig.AccessMode == neo4j.AccessModeWrite { - bookmarks := sess.LastBookmarks() - if bookmarks == nil || r.causalConsistencyKey == nil { - return - } - key := r.causalConsistencyKey(ctx) - if cur, ok := causalConsistencyCache[key]; ok { - causalConsistencyCache[key] = neo4j.CombineBookmarks(cur, bookmarks) - } else { - causalConsistencyCache[key] = bookmarks - go func(key string) { - <-ctx.Done() - causalConsistencyCache[key] = nil - }(key) - } - } - if closeErr := sess.Close(ctx); closeErr != nil { - err = errors.Join(err, closeErr) - } - }() - } - config := func(tc *neo4j.TransactionConfig) { - if conf := r.execConfig.TransactionConfig; conf != nil { - *tc = *conf - } - } - if cy.IsWrite || sessConfig.AccessMode == neo4j.AccessModeWrite { - out, err = sess.ExecuteWrite(ctx, exec, config) - } else { - out, err = sess.ExecuteRead(ctx, exec, config) - } - if err != nil { - return nil, err - } - } else { - out, err = exec(r.currentTx) - if err != nil { - return nil, err - } - } - return -} - -func canonicalizeParams(codecs *codec.CodecRegistry, params map[string]any) (map[string]any, error) { - canon := make(map[string]any, len(params)) - if len(params) == 0 { - return canon, nil - } - for k, v := range params { - if v == nil { - canon[k] = nil - continue - } - val, err := codecs.EncodeValue(v) - if err != nil { - return nil, fmt.Errorf("cannot encode param %q: %w", k, err) - } - canon[k] = val - } - return canon, nil -} diff --git a/example/vendor/github.com/rlch/neogo/codecov.yml b/example/vendor/github.com/rlch/neogo/codecov.yml deleted file mode 100644 index f2704ce..0000000 --- a/example/vendor/github.com/rlch/neogo/codecov.yml +++ /dev/null @@ -1,4 +0,0 @@ -coverage: - range: 60..80 - round: up - precision: 2 diff --git a/example/vendor/github.com/rlch/neogo/cypher.ebnf b/example/vendor/github.com/rlch/neogo/cypher.ebnf deleted file mode 100644 index 2d84dc6..0000000 --- a/example/vendor/github.com/rlch/neogo/cypher.ebnf +++ /dev/null @@ -1,559 +0,0 @@ - - * Copyright (c) 2015-2023 "Neo Technology," - * Network Engine for Objects in Lund AB [http://neotechnology.com] - * - * 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. - * - * Attribution Notice under the terms of the Apache License 2.0 - * - * This work was created by the collective efforts of the openCypher community. - * Without limiting the terms of Section 6, any Derivative Work that is not - * approved by the public consensus process of the openCypher Implementers Group - * should not be described as “Cypher” (and Cypher® is a registered trademark of - * Neo4j Inc.) or as "openCypher". Extensions by implementers or prototypes or - * proposals for change that have been documented or implemented should only be - * described as "implementation extensions to Cypher" or as "proposed changes to - * Cypher that are not yet approved by the openCypher community". - *) -Cypher = [SP], Statement, [[SP], ';'], [SP], EOI ; - -Statement = Query ; - -Query = RegularQuery - | StandaloneCall - ; - -RegularQuery = SingleQuery, { [SP], Union } ; - -Union = ((U,N,I,O,N), SP, (A,L,L), [SP], SingleQuery) - | ((U,N,I,O,N), [SP], SingleQuery) - ; - -SingleQuery = SinglePartQuery - | MultiPartQuery - ; - -SinglePartQuery = ({ ReadingClause, [SP] }, Return) - | ({ ReadingClause, [SP] }, UpdatingClause, { [SP], UpdatingClause }, [[SP], Return]) - ; - -MultiPartQuery = { { ReadingClause, [SP] }, { UpdatingClause, [SP] }, With, [SP] }-, SinglePartQuery ; - -UpdatingClause = Create - | Merge - | Delete - | Set - | Remove - ; - -ReadingClause = Match - | Unwind - | InQueryCall - ; - -Match = [(O,P,T,I,O,N,A,L), SP], (M,A,T,C,H), [SP], Pattern, [[SP], Where] ; - -Unwind = (U,N,W,I,N,D), [SP], Expression, SP, (A,S), SP, Variable ; - -Merge = (M,E,R,G,E), [SP], PatternPart, { SP, MergeAction } ; - -MergeAction = ((O,N), SP, (M,A,T,C,H), SP, Set) - | ((O,N), SP, (C,R,E,A,T,E), SP, Set) - ; - -Create = (C,R,E,A,T,E), [SP], Pattern ; - -Set = (S,E,T), [SP], SetItem, { [SP], ',', [SP], SetItem } ; - -SetItem = (PropertyExpression, [SP], '=', [SP], Expression) - | (Variable, [SP], '=', [SP], Expression) - | (Variable, [SP], '+=', [SP], Expression) - | (Variable, [SP], NodeLabels) - ; - -Delete = [(D,E,T,A,C,H), SP], (D,E,L,E,T,E), [SP], Expression, { [SP], ',', [SP], Expression } ; - -Remove = (R,E,M,O,V,E), SP, RemoveItem, { [SP], ',', [SP], RemoveItem } ; - -RemoveItem = (Variable, NodeLabels) - | PropertyExpression - ; - -InQueryCall = (C,A,L,L), SP, ExplicitProcedureInvocation, [[SP], (Y,I,E,L,D), SP, YieldItems] ; - -StandaloneCall = (C,A,L,L), SP, (ExplicitProcedureInvocation | ImplicitProcedureInvocation), [[SP], (Y,I,E,L,D), SP, ('*' | YieldItems)] ; - -YieldItems = YieldItem, { [SP], ',', [SP], YieldItem }, [[SP], Where] ; - -YieldItem = [ProcedureResultField, SP, (A,S), SP], Variable ; - -With = (W,I,T,H), ProjectionBody, [[SP], Where] ; - -Return = (R,E,T,U,R,N), ProjectionBody ; - -ProjectionBody = [[SP], (D,I,S,T,I,N,C,T)], SP, ProjectionItems, [SP, Order], [SP, Skip], [SP, Limit] ; - -ProjectionItems = ('*', { [SP], ',', [SP], ProjectionItem }) - | (ProjectionItem, { [SP], ',', [SP], ProjectionItem }) - ; - -ProjectionItem = (Expression, SP, (A,S), SP, Variable) - | Expression - ; - -Order = (O,R,D,E,R), SP, (B,Y), SP, SortItem, { ',', [SP], SortItem } ; - -Skip = (S,K,I,P), SP, Expression ; - -Limit = (L,I,M,I,T), SP, Expression ; - -SortItem = Expression, [[SP], ((A,S,C,E,N,D,I,N,G) | (A,S,C) | (D,E,S,C,E,N,D,I,N,G) | (D,E,S,C))] ; - -Where = (W,H,E,R,E), SP, Expression ; - -Pattern = PatternPart, { [SP], ',', [SP], PatternPart } ; - -PatternPart = (Variable, [SP], '=', [SP], AnonymousPatternPart) - | AnonymousPatternPart - ; - -AnonymousPatternPart = PatternElement ; - -PatternElement = (NodePattern, { [SP], PatternElementChain }) - | ('(', PatternElement, ')') - ; - -RelationshipsPattern = NodePattern, { [SP], PatternElementChain }- ; - -NodePattern = '(', [SP], [Variable, [SP]], [NodeLabels, [SP]], [Properties, [SP]], ')' ; - -PatternElementChain = RelationshipPattern, [SP], NodePattern ; - -RelationshipPattern = (LeftArrowHead, [SP], Dash, [SP], [RelationshipDetail], [SP], Dash, [SP], RightArrowHead) - | (LeftArrowHead, [SP], Dash, [SP], [RelationshipDetail], [SP], Dash) - | (Dash, [SP], [RelationshipDetail], [SP], Dash, [SP], RightArrowHead) - | (Dash, [SP], [RelationshipDetail], [SP], Dash) - ; - -RelationshipDetail = '[', [SP], [Variable, [SP]], [RelationshipTypes, [SP]], [RangeLiteral], [Properties, [SP]], ']' ; - -Properties = MapLiteral - | Parameter - ; - -RelationshipTypes = ':', [SP], RelTypeName, { [SP], '|', [':'], [SP], RelTypeName } ; - -NodeLabels = NodeLabel, { [SP], NodeLabel } ; - -NodeLabel = ':', [SP], LabelName ; - -RangeLiteral = '*', [SP], [IntegerLiteral, [SP]], ['..', [SP], [IntegerLiteral, [SP]]] ; - -LabelName = SchemaName ; - -RelTypeName = SchemaName ; - -PropertyExpression = Atom, { [SP], PropertyLookup }- ; - -Expression = OrExpression ; - -OrExpression = XorExpression, { SP, (O,R), SP, XorExpression } ; - -XorExpression = AndExpression, { SP, (X,O,R), SP, AndExpression } ; - -AndExpression = NotExpression, { SP, (A,N,D), SP, NotExpression } ; - -NotExpression = { (N,O,T), [SP] }, ComparisonExpression ; - -ComparisonExpression = StringListNullPredicateExpression, { [SP], PartialComparisonExpression } ; - -PartialComparisonExpression = ('=', [SP], StringListNullPredicateExpression) - | ('<>', [SP], StringListNullPredicateExpression) - | ('<', [SP], StringListNullPredicateExpression) - | ('>', [SP], StringListNullPredicateExpression) - | ('<=', [SP], StringListNullPredicateExpression) - | ('>=', [SP], StringListNullPredicateExpression) - ; - -StringListNullPredicateExpression = AddOrSubtractExpression, { StringPredicateExpression | ListPredicateExpression | NullPredicateExpression } ; - -StringPredicateExpression = ((SP, (S,T,A,R,T,S), SP, (W,I,T,H)) | (SP, (E,N,D,S), SP, (W,I,T,H)) | (SP, (C,O,N,T,A,I,N,S))), [SP], AddOrSubtractExpression ; - -ListPredicateExpression = SP, (I,N), [SP], AddOrSubtractExpression ; - -NullPredicateExpression = (SP, (I,S), SP, (N,U,L,L)) - | (SP, (I,S), SP, (N,O,T), SP, (N,U,L,L)) - ; - -AddOrSubtractExpression = MultiplyDivideModuloExpression, { ([SP], '+', [SP], MultiplyDivideModuloExpression) | ([SP], '-', [SP], MultiplyDivideModuloExpression) } ; - -MultiplyDivideModuloExpression = PowerOfExpression, { ([SP], '*', [SP], PowerOfExpression) | ([SP], '/', [SP], PowerOfExpression) | ([SP], '%', [SP], PowerOfExpression) } ; - -PowerOfExpression = UnaryAddOrSubtractExpression, { [SP], '^', [SP], UnaryAddOrSubtractExpression } ; - -UnaryAddOrSubtractExpression = NonArithmeticOperatorExpression - | (('+' | '-'), [SP], NonArithmeticOperatorExpression) - ; - -NonArithmeticOperatorExpression = Atom, { ([SP], ListOperatorExpression) | ([SP], PropertyLookup) }, [[SP], NodeLabels] ; - -ListOperatorExpression = ('[', Expression, ']') - | ('[', [Expression], '..', [Expression], ']') - ; - -PropertyLookup = '.', [SP], (PropertyKeyName) ; - -Atom = Literal - | Parameter - | CaseExpression - | ((C,O,U,N,T), [SP], '(', [SP], '*', [SP], ')') - | ListComprehension - | PatternComprehension - | Quantifier - | PatternPredicate - | ParenthesizedExpression - | FunctionInvocation - | ExistentialSubquery - | Variable - ; - -CaseExpression = (((C,A,S,E), { [SP], CaseAlternative }-) | ((C,A,S,E), [SP], Expression, { [SP], CaseAlternative }-)), [[SP], (E,L,S,E), [SP], Expression], [SP], (E,N,D) ; - -CaseAlternative = (W,H,E,N), [SP], Expression, [SP], (T,H,E,N), [SP], Expression ; - -ListComprehension = '[', [SP], FilterExpression, [[SP], '|', [SP], Expression], [SP], ']' ; - -PatternComprehension = '[', [SP], [Variable, [SP], '=', [SP]], RelationshipsPattern, [SP], [Where, [SP]], '|', [SP], Expression, [SP], ']' ; - -Quantifier = ((A,L,L), [SP], '(', [SP], FilterExpression, [SP], ')') - | ((A,N,Y), [SP], '(', [SP], FilterExpression, [SP], ')') - | ((N,O,N,E), [SP], '(', [SP], FilterExpression, [SP], ')') - | ((S,I,N,G,L,E), [SP], '(', [SP], FilterExpression, [SP], ')') - ; - -FilterExpression = IdInColl, [[SP], Where] ; - -PatternPredicate = RelationshipsPattern ; - -ParenthesizedExpression = '(', [SP], Expression, [SP], ')' ; - -IdInColl = Variable, SP, (I,N), SP, Expression ; - -FunctionInvocation = FunctionName, [SP], '(', [SP], [(D,I,S,T,I,N,C,T), [SP]], [Expression, [SP], { ',', [SP], Expression, [SP] }], ')' ; - -FunctionName = Namespace, SymbolicName ; - -ExistentialSubquery = (E,X,I,S,T,S), [SP], '{', [SP], (RegularQuery | (Pattern, [[SP], Where])), [SP], '}' ; - -ExplicitProcedureInvocation = ProcedureName, [SP], '(', [SP], [Expression, [SP], { ',', [SP], Expression, [SP] }], ')' ; - -ImplicitProcedureInvocation = ProcedureName ; - -ProcedureResultField = SymbolicName ; - -ProcedureName = Namespace, SymbolicName ; - -Namespace = { SymbolicName, '.' } ; - -Variable = SymbolicName ; - -Literal = BooleanLiteral - | (N,U,L,L) - | NumberLiteral - | StringLiteral - | ListLiteral - | MapLiteral - ; - -BooleanLiteral = (T,R,U,E) - | (F,A,L,S,E) - ; - -NumberLiteral = DoubleLiteral - | IntegerLiteral - ; - -IntegerLiteral = HexInteger - | OctalInteger - | DecimalInteger - ; - -HexInteger = '0x', { HexDigit }- ; - -DecimalInteger = ZeroDigit - | (NonZeroDigit, { Digit }) - ; - -OctalInteger = '0o', { OctDigit }- ; - -HexLetter = (A) - | (B) - | (C) - | (D) - | (E) - | (F) - ; - -HexDigit = Digit - | HexLetter - ; - -Digit = ZeroDigit - | NonZeroDigit - ; - -NonZeroDigit = NonZeroOctDigit - | '8' - | '9' - ; - -NonZeroOctDigit = '1' - | '2' - | '3' - | '4' - | '5' - | '6' - | '7' - ; - -OctDigit = ZeroDigit - | NonZeroOctDigit - ; - -ZeroDigit = '0' ; - -DoubleLiteral = ExponentDecimalReal - | RegularDecimalReal - ; - -ExponentDecimalReal = ({ Digit }- | ({ Digit }-, '.', { Digit }-) | ('.', { Digit }-)), (E), ['-'], { Digit }- ; - -RegularDecimalReal = { Digit }, '.', { Digit }- ; - -StringLiteral = ('"', { ANY - ('"' | '\') | EscapedChar }, '"') - | ("'", { ANY - ("'" | '\') | EscapedChar }, "'") - ; - -EscapedChar = '\', ('\' | "'" | '"' | (B) | (F) | (N) | (R) | (T) | ((U), 4 * HexDigit) | ((U), 8 * HexDigit)) ; - -ListLiteral = '[', [SP], [Expression, [SP], { ',', [SP], Expression, [SP] }], ']' ; - -MapLiteral = '{', [SP], [PropertyKeyName, [SP], ':', [SP], Expression, [SP], { ',', [SP], PropertyKeyName, [SP], ':', [SP], Expression, [SP] }], '}' ; - -PropertyKeyName = SchemaName ; - -Parameter = '$', (SymbolicName | DecimalInteger) ; - -SchemaName = SymbolicName - | ReservedWord - ; - -ReservedWord = (A,L,L) - | (A,S,C) - | (A,S,C,E,N,D,I,N,G) - | (B,Y) - | (C,R,E,A,T,E) - | (D,E,L,E,T,E) - | (D,E,S,C) - | (D,E,S,C,E,N,D,I,N,G) - | (D,E,T,A,C,H) - | (E,X,I,S,T,S) - | (L,I,M,I,T) - | (M,A,T,C,H) - | (M,E,R,G,E) - | (O,N) - | (O,P,T,I,O,N,A,L) - | (O,R,D,E,R) - | (R,E,M,O,V,E) - | (R,E,T,U,R,N) - | (S,E,T) - | (S,K,I,P) - | (W,H,E,R,E) - | (W,I,T,H) - | (U,N,I,O,N) - | (U,N,W,I,N,D) - | (A,N,D) - | (A,S) - | (C,O,N,T,A,I,N,S) - | (D,I,S,T,I,N,C,T) - | (E,N,D,S) - | (I,N) - | (I,S) - | (N,O,T) - | (O,R) - | (S,T,A,R,T,S) - | (X,O,R) - | (F,A,L,S,E) - | (T,R,U,E) - | (N,U,L,L) - | (C,O,N,S,T,R,A,I,N,T) - | (D,O) - | (F,O,R) - | (R,E,Q,U,I,R,E) - | (U,N,I,Q,U,E) - | (C,A,S,E) - | (W,H,E,N) - | (T,H,E,N) - | (E,L,S,E) - | (E,N,D) - | (M,A,N,D,A,T,O,R,Y) - | (S,C,A,L,A,R) - | (O,F) - | (A,D,D) - | (D,R,O,P) - ; - -SymbolicName = UnescapedSymbolicName - | EscapedSymbolicName - | HexLetter - | (C,O,U,N,T) - | (F,I,L,T,E,R) - | (E,X,T,R,A,C,T) - | (A,N,Y) - | (N,O,N,E) - | (S,I,N,G,L,E) - ; - -UnescapedSymbolicName = IdentifierStart, { IdentifierPart } ; - -(* Based on the unicode identifier and pattern syntax - * (http://www.unicode.org/reports/tr31/) - * And extended with a few characters. - *)IdentifierStart = ID_Start - | Pc - ; - -(* Based on the unicode identifier and pattern syntax - * (http://www.unicode.org/reports/tr31/) - * And extended with a few characters. - *)IdentifierPart = ID_Continue - | Sc - ; - -(* Any character except "`", enclosed within `backticks`. Backticks are escaped with double backticks. - *)EscapedSymbolicName = { '`', { ANY - ('`') }, '`' }- ; - -SP = { whitespace }- ; - -whitespace = SPACE - | TAB - | LF - | VT - | FF - | CR - | FS - | GS - | RS - | US - | ' ' - | '᠎' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | '
' - | '
' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | Comment - ; - -Comment = ('/*', { ANY - ('*') | ('*', ANY - ('/')) }, '*/') - | ('//', { ANY - (LF | CR) }, [CR], (LF | EOI)) - ; - -LeftArrowHead = '<' - | '⟨' - | '〈' - | '﹤' - | '<' - ; - -RightArrowHead = '>' - | '⟩' - | '〉' - | '﹥' - | '>' - ; - -Dash = '-' - | '­' - | '‐' - | '‑' - | '‒' - | '–' - | '—' - | '―' - | '−' - | '﹘' - | '﹣' - | '-' - ; - -A = 'A' | 'a' ; - -B = 'B' | 'b' ; - -C = 'C' | 'c' ; - -D = 'D' | 'd' ; - -E = 'E' | 'e' ; - -F = 'F' | 'f' ; - -G = 'G' | 'g' ; - -H = 'H' | 'h' ; - -I = 'I' | 'i' ; - -K = 'K' | 'k' ; - -L = 'L' | 'l' ; - -M = 'M' | 'm' ; - -N = 'N' | 'n' ; - -O = 'O' | 'o' ; - -P = 'P' | 'p' ; - -Q = 'Q' | 'q' ; - -R = 'R' | 'r' ; - -S = 'S' | 's' ; - -T = 'T' | 't' ; - -U = 'U' | 'u' ; - -V = 'V' | 'v' ; - -W = 'W' | 'w' ; - -X = 'X' | 'x' ; - -Y = 'Y' | 'y' ; - diff --git a/example/vendor/github.com/rlch/neogo/driver.go b/example/vendor/github.com/rlch/neogo/driver.go deleted file mode 100644 index cccb46b..0000000 --- a/example/vendor/github.com/rlch/neogo/driver.go +++ /dev/null @@ -1,359 +0,0 @@ -// Package neogo provides a Neo4j ORM for Go. -// It wraps the official Neo4j Go driver with type-safe struct mapping -// and support for nodes, relationships, and raw Cypher queries. -package neogo - -import ( - "context" - "errors" - "fmt" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/config" - "golang.org/x/sync/semaphore" - - "github.com/rlch/neogo/internal" -) - -// New creates a new neogo [Driver] from connection parameters. -func New( - target string, - auth auth.TokenManager, - configurers ...Configurer, -) (Driver, error) { - cfg := &Config{ - Config: *defaultConfig(), - } - - for _, c := range configurers { - c(cfg) - } - - neo4j, err := neo4j.NewDriverWithContext( - target, - auth, - func(c *config.Config) { *c = cfg.Config }, - ) - if err != nil { - return nil, fmt.Errorf("failed to create Neo4J driver: %w", err) - } - - d := driver{ - db: neo4j, - causalConsistencyKey: cfg.CausalConsistencyKey, - sessionSemaphore: semaphore.NewWeighted(int64(cfg.MaxConnectionPoolSize)), - } - - // Initialize registry - d.reg = internal.NewRegistry() - - // Register types from config - if len(cfg.Types) > 0 { - d.reg.RegisterTypes(cfg.Types...) - } - - return &d, nil -} - -type ( - // Driver represents a pool of connections to a neo4j server or cluster. - // It's safe for concurrent use. - Driver interface { - // Registry returns the internal registry used by this driver. - Registry() *internal.Registry - - // DB returns the underlying neo4j driver. - DB() neo4j.DriverWithContext - - // Schema returns the schema interface for introspection and migration. - Schema() Schema - - // ReadSession creates a new read-access session. - ReadSession(ctx context.Context, configurers ...func(*neo4j.SessionConfig)) ReadSession - - // WriteSession creates a new write-access session. - WriteSession(ctx context.Context, configurers ...func(*neo4j.SessionConfig)) WriteSession - - // Exec creates a new session and returns a Client for executing queries. - // The access mode is inferred from the query (CREATE, MERGE, etc. = write). - // The session is closed after the query is executed. - // - // Example: - // var person Person - // err := d.Exec(). - // Cypher("MATCH (p:Person {name: $name}) RETURN p"). - // RunWithParams(ctx, map[string]any{"name": "Alice"}, "p", &person) - Exec(configurers ...func(*execConfig)) Client - } - - // Work is a function that executes Cypher within a Transaction. - Work func(c Client) error - - // Transaction represents an explicit transaction. - Transaction interface { - // Run executes work within the transaction. - Run(work Work) error - // Commit commits the transaction. - Commit(ctx context.Context) error - // Rollback rolls back the transaction. - Rollback(ctx context.Context) error - // Close rolls back if not committed and closes resources. - Close(ctx context.Context, joinedErrors ...error) error - } - - // Config extends the neo4j config with additional neogo-specific options. - Config struct { - config.Config - - CausalConsistencyKey func(context.Context) string - Types []any - } - - // Configurer is a function that configures a neogo Config. - Configurer func(*Config) - - // ReadSession provides read-only database access. - ReadSession interface { - // Session returns the underlying Neo4J session. - Session() neo4j.SessionWithContext - // Close closes the session. - Close(ctx context.Context, joinedErrors ...error) error - // ReadTransaction executes work in a read transaction with retry logic. - ReadTransaction(ctx context.Context, work Work, configurers ...func(*neo4j.TransactionConfig)) error - // BeginTransaction starts an explicit transaction. - BeginTransaction(ctx context.Context, configurers ...func(*neo4j.TransactionConfig)) (Transaction, error) - } - - // WriteSession provides read-write database access. - WriteSession interface { - ReadSession - // WriteTransaction executes work in a write transaction with retry logic. - WriteTransaction(ctx context.Context, work Work, configurers ...func(*neo4j.TransactionConfig)) error - } - - execConfig struct { - *neo4j.SessionConfig - *neo4j.TransactionConfig - } -) - -type ( - driver struct { - reg *internal.Registry - db neo4j.DriverWithContext - causalConsistencyKey func(ctx context.Context) string - sessionSemaphore *semaphore.Weighted - } - session struct { - *driver - db neo4j.DriverWithContext - execConfig execConfig - session neo4j.SessionWithContext - currentTx neo4j.ManagedTransaction - } - transactionImpl struct { - session *session - tx neo4j.ExplicitTransaction - } -) - -// defaultConfig returns default configuration values. -func defaultConfig() *config.Config { - return &config.Config{ - MaxTransactionRetryTime: 30 * time.Second, - MaxConnectionPoolSize: 100, - MaxConnectionLifetime: 1 * time.Hour, - ConnectionAcquisitionTimeout: 1 * time.Minute, - SocketConnectTimeout: 5 * time.Second, - SocketKeepalive: true, - UserAgent: neo4j.UserAgent, - FetchSize: neo4j.FetchDefault, - } -} - -var causalConsistencyCache map[string]neo4j.Bookmarks = map[string]neo4j.Bookmarks{} - -// WithCausalConsistency enables causal consistency using the provided key function. -func WithCausalConsistency(when func(ctx context.Context) string) Configurer { - return func(c *Config) { - c.CausalConsistencyKey = when - } -} - -// WithTxConfig configures the transaction used by Exec(). -func WithTxConfig(configurers ...func(*neo4j.TransactionConfig)) func(ec *execConfig) { - return func(ec *execConfig) { - for _, c := range configurers { - c(ec.TransactionConfig) - } - } -} - -// WithSessionConfig configures the session used by Exec(). -func WithSessionConfig(configurers ...func(*neo4j.SessionConfig)) func(ec *execConfig) { - return func(ec *execConfig) { - for _, c := range configurers { - c(ec.SessionConfig) - } - } -} - -// WithTypes registers types (INode, IRelationship, IAbstract) with the driver. -func WithTypes(types ...any) Configurer { - return func(c *Config) { - c.Types = append(c.Types, types...) - } -} - -func (d *driver) Registry() *internal.Registry { return d.reg } - -func (d *driver) DB() neo4j.DriverWithContext { return d.db } - -func (d *driver) Schema() Schema { return newSchema(d.db, d.reg) } - -func (d *driver) Exec(configurers ...func(*execConfig)) Client { - sessionConfig := neo4j.SessionConfig{} - txConfig := neo4j.TransactionConfig{} - config := execConfig{ - SessionConfig: &sessionConfig, - TransactionConfig: &txConfig, - } - for _, c := range configurers { - c(&config) - } - if reflect.ValueOf(sessionConfig).IsZero() { - config.SessionConfig = nil - } - if reflect.ValueOf(txConfig).IsZero() { - config.TransactionConfig = nil - } - session := &session{ - driver: d, - db: d.db, - execConfig: config, - } - return session.newClient(internal.NewCypherClient(d.reg)) -} - -func (d *driver) ensureCausalConsistency(ctx context.Context, sc *neo4j.SessionConfig) { - if d == nil || d.causalConsistencyKey == nil { - return - } - var key string - if key = d.causalConsistencyKey(ctx); key == "" { - return - } - bookmarks := causalConsistencyCache[key] - if bookmarks == nil { - return - } - sc.Bookmarks = bookmarks -} - -func (d *driver) ReadSession(ctx context.Context, configurers ...func(*neo4j.SessionConfig)) ReadSession { - config := neo4j.SessionConfig{} - for _, c := range configurers { - c(&config) - } - config.AccessMode = neo4j.AccessModeRead - d.ensureCausalConsistency(ctx, &config) - if err := d.sessionSemaphore.Acquire(ctx, 1); err != nil { - panic(fmt.Errorf("failed to acquire session semaphore: %w", err)) - } - sess := d.db.NewSession(ctx, config) - return &session{ - driver: d, - db: d.db, - session: sess, - } -} - -func (d *driver) WriteSession(ctx context.Context, configurers ...func(*neo4j.SessionConfig)) WriteSession { - config := neo4j.SessionConfig{} - for _, c := range configurers { - c(&config) - } - config.AccessMode = neo4j.AccessModeWrite - d.ensureCausalConsistency(ctx, &config) - if err := d.sessionSemaphore.Acquire(ctx, 1); err != nil { - panic(fmt.Errorf("failed to acquire session semaphore: %w", err)) - } - sess := d.db.NewSession(ctx, config) - return &session{ - driver: d, - db: d.db, - session: sess, - } -} - -func (s *session) Session() neo4j.SessionWithContext { - return s.session -} - -func (s *session) Close(ctx context.Context, errs ...error) error { - sessErr := s.session.Close(ctx) - s.sessionSemaphore.Release(1) - if sessErr != nil { - errs = append(errs, sessErr) - return errors.Join(errs...) - } - if len(errs) == 0 { - return nil - } - return errors.Join(errs...) -} - -func (s *session) ReadTransaction(ctx context.Context, work Work, configurers ...func(*neo4j.TransactionConfig)) error { - _, err := s.session.ExecuteRead(ctx, func(tx neo4j.ManagedTransaction) (any, error) { - c := s.newClient(internal.NewCypherClient(s.reg)) - c.currentTx = tx - return nil, work(c) - }, configurers...) - return err -} - -func (s *session) WriteTransaction(ctx context.Context, work Work, configurers ...func(*neo4j.TransactionConfig)) error { - _, err := s.session.ExecuteWrite(ctx, func(tx neo4j.ManagedTransaction) (any, error) { - c := s.newClient(internal.NewCypherClient(s.reg)) - c.currentTx = tx - return nil, work(c) - }, configurers...) - return err -} - -func (s *session) BeginTransaction(ctx context.Context, configurers ...func(*neo4j.TransactionConfig)) (Transaction, error) { - tx, err := s.session.BeginTransaction(ctx, configurers...) - if err != nil { - return nil, err - } - return &transactionImpl{s, tx}, nil -} - -func (t *transactionImpl) Run(work Work) error { - c := t.session.newClient(internal.NewCypherClient(t.session.reg)) - c.currentTx = t.tx - return work(c) -} - -func (t *transactionImpl) Commit(ctx context.Context) error { - return t.tx.Commit(ctx) -} - -func (t *transactionImpl) Rollback(ctx context.Context) error { - return t.tx.Rollback(ctx) -} - -func (t *transactionImpl) Close(ctx context.Context, errs ...error) error { - sessErr := t.tx.Close(ctx) - if sessErr != nil { - errs = append(errs, sessErr) - return errors.Join(errs...) - } - if len(errs) == 0 { - return nil - } - return errors.Join(errs...) -} diff --git a/example/vendor/github.com/rlch/neogo/entity.go b/example/vendor/github.com/rlch/neogo/entity.go deleted file mode 100644 index 09c8e00..0000000 --- a/example/vendor/github.com/rlch/neogo/entity.go +++ /dev/null @@ -1,166 +0,0 @@ -package neogo - -import ( - "github.com/rlch/neogo/internal" -) - -// NewNode creates a new node with a random ID. -func NewNode[N any, PN interface { - INode - internal.IDSetter - *N -}]() PN { - n := PN(new(N)) - n.GenerateID() - return n -} - -// NodeWithID creates a new node with the given ID. -func NodeWithID[N any, PN interface { - INode - internal.IDSetter - *N -}](id string, -) PN { - n := PN(new(N)) - n.SetID(id) - return n -} - -type ( - // INode is an interface for nodes. - // See [Node] for the default implementation. - INode = internal.INode - - // IAbstract is an interface for abstract nodes. - // See [Abstract] for the default implementation. - IAbstract = internal.IAbstract - - // IRelationship is an interface for relationships. - // See [Relationship] for the default implementation. - IRelationship = internal.IRelationship - - // Node is a base type for all nodes. - // - // The neo4j tag is used to specify the label for the node. Multiple labels - // may be specified idiomatically by nested [Node] types. See [internal/tests] - // for examples. - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // - // Name string `neo4j:"name"` - // Age int `neo4j:"age"` - // } - Node = internal.Node - - // Abstract is a base type for all abstract nodes. An abstract node can have - // multiple concrete implementers, where each implementer must have a distinct - // label. This means that each node will have at least 2 labels. - // - // A useful design pattern for constructing abstract nodes is to create a base - // type which provides an implementation for [IAbstract] and embed [Abstract] - // + [Node], then embed that type in all concrete implementers: - // - // type Organism interface { - // internal.IAbstract - // } - // - // type BaseOrganism struct { - // internal.Abstract `neo4j:"Organism"` - // internal.Node - // - // Alive bool `neo4j:"alive"` - // } - // - // func (b BaseOrganism) Implementers() []internal.IAbstract { - // return []internal.IAbstract{ - // &Human{}, - // &Dog{}, - // } - // } - // - // type Human struct { - // BaseOrganism `neo4j:"Human"` - // Name string `neo4j:"name"` - // } - // - // type Dog struct { - // BaseOrganism `neo4j:"Dog"` - // Borfs bool `neo4j:"borfs"` - // } - Abstract = internal.Abstract - - // Relationship is a base type for all relationships. - // - // The neo4j tag is used to specify the type for the relationship. - // - // type ActedIn struct { - // neogo.Relationship `neo4j:"ACTED_IN"` - // - // Role string `neo4j:"role"` - // } - Relationship = internal.Relationship - - // Label is a used to specify a label for a node. - // This allows for multiple labels to be specified idiomatically. - // - // type Robot struct { - // neogo.Label `neo4j:"Robot"` - // } - Label = internal.Label -) - -// One represents a single relationship to another node or through a relationship struct. -// This is a zero-cost abstraction - the struct has zero size (0 bytes) and only carries -// type information at compile time for schema extraction and type-safe query building. -// -// Note: Place One/Many fields before other fields in your struct to avoid alignment padding. -// Go adds padding when zero-sized types are the last field in a struct. -// -// Usage with relationship struct: -// -// type Person struct { -// neogo.Node `neo4j:"Person"` -// BestRole One[ActedIn] `neo4j:"->"` -// } -// -// Usage with shorthand syntax (direct node reference with relationship type in tag): -// -// type Person struct { -// neogo.Node `neo4j:"Person"` -// BestFriend One[Person] `neo4j:"BEST_FRIEND>"` // Outgoing BEST_FRIEND -// Mentor One[Person] `neo4j:",required"` -type One[R any] = internal.One[R] - -// Many represents multiple relationships to other nodes or through relationship structs. -// This is a zero-cost abstraction - the struct has zero size (0 bytes) and only carries -// type information at compile time for schema extraction and type-safe query building. -// -// Note: Place One/Many fields before other fields in your struct to avoid alignment padding. -// Go adds padding when zero-sized types are the last field in a struct. -// -// Usage with relationship struct: -// -// type Person struct { -// neogo.Node `neo4j:"Person"` -// ActedIn Many[ActedIn] `neo4j:"->"` -// } -// -// Usage with shorthand syntax (direct node reference with relationship type in tag): -// -// type Person struct { -// neogo.Node `neo4j:"Person"` -// Friends Many[Person] `neo4j:"FRIENDS>"` // Outgoing FRIENDS -// Followers Many[Person] `neo4j:",required"` -type Many[R any] = internal.Many[R] diff --git a/example/vendor/github.com/rlch/neogo/internal/binding.go b/example/vendor/github.com/rlch/neogo/internal/binding.go deleted file mode 100644 index f953081..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/binding.go +++ /dev/null @@ -1,355 +0,0 @@ -package internal - -// binding.go provides value binding from Neo4j results to Go types. -// -// # Reflection Boundaries -// -// This file is the FALLBACK path for special cases that can't use zero-reflection codecs. -// The primary hot path uses BindingPlan (binding_plan.go) which pre-compiles decoders. -// -// Reflection is used here ONLY for special cases: -// - Valuer interface implementations (custom unmarshaling) -// - Abstract node binding (polymorphic type lookup by labels) -// - Slice depth mismatches (wrapping single values in slices) -// - Empty interface targets (any/interface{}) -// -// For normal struct/primitive binding, use BindingPlan.DecodeSingle() or -// BindingPlan.DecodeMultiple() which delegate to zero-reflection codecs. - -import ( - "errors" - "fmt" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/rlch/neogo/internal/codec" -) - -// Valuer is an interface for custom marshaling/unmarshaling of Neo4j record values. -// Types implementing this interface will use their custom Unmarshal method instead -// of the default codec decoding. -type Valuer[V neo4j.RecordValue] interface { - Marshal() (*V, error) - Unmarshal(*V) error -} - -// Bind binds a Neo4j record value to a Go value. -// The 'to' parameter must be a pointer to the target value. -// -// This function delegates to the zero-reflection codec for most cases. -// Special handling is only used for: -// - Custom Valuer implementations -// - Abstract node (polymorphic) binding -// - Slice depth mismatches -// - Empty interface targets -func (r *Registry) Bind(from any, to any) error { - toV := reflect.ValueOf(to) - if toV.Kind() != reflect.Ptr { - return fmt.Errorf("Bind requires pointer target, got %T", to) - } - return r.BindValue(from, toV.Elem()) -} - -// BindValue binds a Neo4j record value to a reflect.Value target. -// Uses zero-reflection codec as the primary path, with reflection fallbacks -// only for special cases that require runtime type inspection. -func (r *Registry) BindValue(from any, to reflect.Value) error { - toT := to.Type() - - // Handle nil input - requires reflection to set zero value - if from == nil { - return r.bindNil(to) - } - - // Fast path: bind to any/interface{} - direct assignment - if isEmptyInterface(toT, to) { - return bindToInterface(from, to) - } - - // Try Valuer interface (custom unmarshaling) - requires interface check - if ok, err := r.tryValuer(from, to); ok || err != nil { - return err - } - - // Handle abstract nodes (polymorphic lookup by labels) - // This requires runtime label inspection to find concrete type - if node, ok := from.(neo4j.Node); ok { - if r.isAbstractTarget(toT) { - return r.BindAbstractNode(node, to) - } - // Handle single node to slice of abstract types - innerT := codec.UnwindType(toT) - if innerT.Kind() == reflect.Slice { - elemT := innerT.Elem() - if r.isAbstractTarget(elemT) { - return r.wrapInSlice(node, to) - } - } - } - - // Handle slice depth mismatch (codec doesn't handle wrapping records) - if fromT := reflect.TypeOf(from); fromT != nil && fromT.Kind() == reflect.Slice { - toInnerT := codec.UnwindType(toT) - if toInnerT.Kind() == reflect.Slice { - // Direct assignment if types match (e.g., []int to []int) - // The codec's sliceDecoder expects []any but we might have []T - if fromT.AssignableTo(toInnerT) { - target := to - for target.Kind() == reflect.Ptr { - if target.IsNil() { - target.Set(reflect.New(target.Type().Elem())) - } - target = target.Elem() - } - target.Set(reflect.ValueOf(from)) - return nil - } - fromDepth := r.computeSliceDepthRuntime(from) - toDepth := computeDepth(toInnerT) - if fromDepth != toDepth { - return r.bindSliceDepthMismatch(from, to, fromDepth, toDepth) - } - // Check if element type is abstract - needs special handling - elemT := toInnerT.Elem() - for elemT.Kind() == reflect.Slice { - elemT = elemT.Elem() - } - if r.isAbstractTarget(elemT) { - return r.bindSliceWithAbstractElements(from, to) - } - } - } - - // Zero-reflection codec path for everything else: - // - Structs (nodes, relationships) - // - Primitives (int, string, bool, float, time.Time, etc.) - // - Slices with matching depth - // - Pointers - // - Maps - return r.decodeWithCodec(from, to) -} - -// isEmptyInterface checks if the type is interface{} or *interface{} -func isEmptyInterface(t reflect.Type, v reflect.Value) bool { - empty := reflect.TypeOf((*any)(nil)).Elem() - if v.Kind() == reflect.Ptr && t.Elem() == empty { - return true - } - return t == empty && v.CanSet() -} - -// bindToInterface assigns any value directly to an interface{} target -func bindToInterface(from any, to reflect.Value) error { - if to.Kind() == reflect.Ptr { - to.Elem().Set(reflect.ValueOf(from)) - } else { - to.Set(reflect.ValueOf(from)) - } - return nil -} - -// bindNil handles nil input by setting target to zero value -func (r *Registry) bindNil(to reflect.Value) error { - // Unwrap to get the actual type - target := to - for target.Kind() == reflect.Ptr && !target.IsNil() { - target = target.Elem() - } - - // For slice targets, create a single-element slice with zero value - if target.Kind() == reflect.Slice { - target.Set(reflect.MakeSlice(target.Type(), 1, 1)) - return r.BindValue(nil, target.Index(0).Addr()) - } - - // For pointer targets, set to nil (zero) - if to.Kind() == reflect.Ptr && to.CanSet() { - to.Set(reflect.Zero(to.Type())) - return nil - } - - // For struct/value types, set to zero value - if target.CanSet() { - target.Set(reflect.Zero(target.Type())) - } - - return nil -} - -// tryValuer attempts to use the Valuer interface for custom unmarshaling -func (r *Registry) tryValuer(from any, to reflect.Value) (handled bool, err error) { - // Try each Neo4j record value type - switch v := from.(type) { - case neo4j.Node: - return bindValuer(v, to) - case neo4j.Relationship: - return bindValuer(v, to) - case bool: - return bindValuer(v, to) - case int64: - return bindValuer(v, to) - case float64: - return bindValuer(v, to) - case string: - return bindValuer(v, to) - case neo4j.Point2D: - return bindValuer(v, to) - case neo4j.Point3D: - return bindValuer(v, to) - case neo4j.Date: - return bindValuer(v, to) - case neo4j.LocalTime: - return bindValuer(v, to) - case neo4j.LocalDateTime: - return bindValuer(v, to) - case neo4j.Time: - return bindValuer(v, to) - case neo4j.Duration: - return bindValuer(v, to) - case time.Time: - return bindValuer(v, to) - case []byte: - return bindValuer(v, to) - case []any: - return bindValuer(v, to) - case map[string]any: - return bindValuer(v, to) - } - return false, nil -} - -// bindValuer attempts to use Valuer interface on the target -func bindValuer[V neo4j.RecordValue](value V, to reflect.Value) (ok bool, err error) { - if !to.CanInterface() { - return false, nil - } - valuer, ok := to.Interface().(Valuer[V]) - if !ok { - return false, nil - } - if err := valuer.Unmarshal(&value); err != nil { - return false, err - } - return true, nil -} - -// isAbstractTarget checks if the target type is an abstract interface. -// Delegates to isAbstractType (defined in binding_plan.go) which handles -// pointer unwrapping and IAbstract interface checking. -func (r *Registry) isAbstractTarget(toT reflect.Type) bool { - return isAbstractType(toT) -} - -// computeSliceDepthRuntime computes slice depth at runtime, checking actual element types -// This is needed because []any might contain slices at runtime -func (r *Registry) computeSliceDepthRuntime(from any) int { - fromV := reflect.ValueOf(from) - fromT := fromV.Type() - depth := computeDepth(fromT) - - // Special case: []any might contain slices at runtime - if fromT.Elem().Kind() == reflect.Interface && fromV.Len() > 0 { - firstElem := fromV.Index(0).Interface() - if firstElem != nil && reflect.TypeOf(firstElem).Kind() == reflect.Slice { - depth++ - } - } - return depth -} - -// bindSliceDepthMismatch handles cases where source and target slice depths differ -func (r *Registry) bindSliceDepthMismatch(from any, to reflect.Value, fromDepth, toDepth int) error { - if to.Kind() == reflect.Ptr { - to = to.Elem() - } - if to.Kind() != reflect.Slice { - return errors.New("cannot bind slice to non-slice type") - } - - if fromDepth+1 == toDepth { - // Single record wrapping: from is one level shallower - // e.g., []Person -> [][]Person (wrap as single result set) - to.Set(reflect.MakeSlice(to.Type(), 1, 1)) - return r.BindValue(from, to.Index(0)) - } - - return fmt.Errorf("cannot bind slice of depth %d to slice of depth %d", fromDepth, toDepth) -} - -// wrapInSlice creates a single-element slice and binds the value to it -func (r *Registry) wrapInSlice(from any, to reflect.Value) error { - sliceV := to - for sliceV.Kind() == reflect.Ptr { - sliceV = sliceV.Elem() - } - sliceV.Set(reflect.MakeSlice(sliceV.Type(), 1, 1)) - return r.BindValue(from, sliceV.Index(0).Addr()) -} - -// bindSliceWithAbstractElements handles binding a slice where elements are abstract interfaces -func (r *Registry) bindSliceWithAbstractElements(from any, to reflect.Value) error { - sliceV := to - for sliceV.Kind() == reflect.Ptr { - sliceV = sliceV.Elem() - } - - fromV := reflect.ValueOf(from) - n := fromV.Len() - - sliceV.Set(reflect.MakeSlice(sliceV.Type(), n, n)) - - for i := 0; i < n; i++ { - elemV := sliceV.Index(i) - if elemV.CanAddr() { - elemV = elemV.Addr() - } - fromElem := fromV.Index(i).Interface() - if err := r.BindValue(fromElem, elemV.Elem()); err != nil { - return fmt.Errorf("index %d: %w", i, err) - } - } - return nil -} - -// decodeWithCodec uses the zero-reflection codec for struct/primitive decoding -func (r *Registry) decodeWithCodec(from any, to reflect.Value) error { - if to.Kind() == reflect.Ptr { - return r.codecs.Decode(from, to.Interface()) - } - if to.CanAddr() { - return r.codecs.Decode(from, to.Addr().Interface()) - } - return fmt.Errorf("cannot bind to non-pointer/unaddressable value %T", to.Interface()) -} - -// BindAbstractNode binds a Neo4j node to an abstract (interface) type -// by looking up the concrete implementation based on node labels. -func (r *Registry) BindAbstractNode(node neo4j.Node, to reflect.Value) error { - typ := to.Type() - if !typ.Implements(rAbstract) && !typ.Elem().Implements(rAbstract) { - return errors.New("cannot bind abstract node to non-abstract type. Ensure your binding type or the value it references implements IAbstract") - } - - implNode, err := r.GetConcreteImplementation(node.Labels) - if err != nil { - return err - } - - toImpl := reflect.New(implNode.Type()) - if err := r.codecs.Decode(node, toImpl.Interface()); err != nil { - return err - } - - reflect.Indirect(to).Set(toImpl) - return nil -} - -// computeDepth returns the nesting depth of a slice type -func computeDepth(t reflect.Type) (depth int) { - for t.Kind() == reflect.Slice { - depth++ - t = t.Elem() - } - return depth -} diff --git a/example/vendor/github.com/rlch/neogo/internal/binding_plan.go b/example/vendor/github.com/rlch/neogo/internal/binding_plan.go deleted file mode 100644 index 8e81771..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/binding_plan.go +++ /dev/null @@ -1,286 +0,0 @@ -package internal - -// binding_plan.go provides pre-compiled binding plans for zero-reflection decoding. -// -// # Architecture -// -// BindingPlan is created ONCE at query compile time (cold path) and captures: -// - Pre-compiled codec decoder (from internal/codec) -// - Type flags (IsSlice, IsAbstract, etc.) -// - Allocator functions for slice/pointer elements -// -// At decode time (hot path), BindingPlan.DecodeSingle() and DecodeMultiple() -// use unsafe pointers and pre-compiled decoders with ZERO reflection per-record. -// -// # Reflection Boundaries -// -// COLD PATH (plan creation): Uses reflection to analyze types, create allocators -// HOT PATH (per-record decode): Zero reflection - uses unsafe pointers + pre-compiled decoders - -import ( - "fmt" - "reflect" - "unsafe" - - "github.com/rlch/neogo/internal/codec" -) - -// BindingPlan pre-computes everything needed to decode values for a specific binding. -// Created once at query compile time (cold path), used per-record without reflection (hot path). -type BindingPlan struct { - // Key is the binding name (e.g., "n", "person.name") - Key string - - // Target is the pointer to user's binding target - Target any - - // TargetType is the reflect.Type of the target (cached to avoid reflect.TypeOf per record) - TargetType reflect.Type - - // CachedTargetPtr is the pre-computed unsafe.Pointer to the target value. - // For non-slice targets, this points directly to where data should be decoded. - // Computed once at plan creation, used per-record without reflection. - CachedTargetPtr unsafe.Pointer - - // Decoder is the pre-compiled codec decoder for the innermost type - Decoder codec.Decoder - - // Flags computed at plan creation time (avoid per-record reflection) - IsSlice bool // Target is a slice (possibly nested in pointers) - IsPointerElem bool // Slice element type is a pointer - IsAbstract bool // Target type implements IAbstract interface - IsSliceAbstract bool // Slice element implements IAbstract - HasValuer bool // Type implements Valuer interface (TODO: detect at registration) - SliceDepth int // Nesting depth ([]T = 1, [][]T = 2) - PointerDepth int // Number of pointer indirections to reach slice/value - - // Allocator for pointer elements (avoids reflect.New per record) - // Created at plan time, uses unsafe.Pointer - ElemAllocator func() unsafe.Pointer - - // SliceAllocator creates a slice of given length (avoids reflect.MakeSlice per record) - SliceAllocator func(n int) any -} - -// NewBindingPlan creates a BindingPlan for a binding target. -// This does reflection ONCE at plan creation, not per-record. -func NewBindingPlan(key string, target any, codecs *codec.CodecRegistry) *BindingPlan { - plan := &BindingPlan{ - Key: key, - Target: target, - } - - // Get type info (reflection at plan creation, not per-record) - targetType := reflect.TypeOf(target) - plan.TargetType = targetType - - // Unwrap pointer chain to find the actual value type - innerType := targetType - for innerType.Kind() == reflect.Ptr { - plan.PointerDepth++ - innerType = innerType.Elem() - } - - // Check if it's a slice - if innerType.Kind() == reflect.Slice { - plan.IsSlice = true - plan.SliceDepth = computeDepth(innerType) - - // Check element type - elemType := innerType.Elem() - for elemType.Kind() == reflect.Slice { - elemType = elemType.Elem() - } - - plan.IsPointerElem = elemType.Kind() == reflect.Ptr - plan.IsSliceAbstract = isAbstractType(elemType) - - // Create slice allocator - plan.SliceAllocator = makeSliceAllocatorFunc(innerType) - - // Create element allocator if pointer elements - if plan.IsPointerElem { - plan.ElemAllocator = makePtrAllocatorFunc(elemType.Elem()) - } - - // Get decoder for element type (uses lazy compilation if not pre-registered) - if !plan.IsSliceAbstract { - // Create a zero value to get the decoder - zeroVal := reflect.New(innerType).Interface() - plan.Decoder = codecs.GetDecoder(zeroVal) - } - - // Cache target pointer for slice header location - // (slice decoding needs to update the slice header at this location) - plan.CachedTargetPtr = computeTargetPtr(target, plan.PointerDepth) - } else { - // Non-slice target - plan.IsAbstract = isAbstractType(innerType) - - if !plan.IsAbstract { - // Create a zero value to get the decoder - zeroVal := reflect.New(innerType).Interface() - plan.Decoder = codecs.GetDecoder(zeroVal) - - // Cache target pointer for direct decoding (ZERO reflection at decode time) - plan.CachedTargetPtr = computeTargetPtr(target, plan.PointerDepth) - } - } - - return plan -} - -// Note: computeSliceDepth is defined in binding.go as computeDepth -// Both are kept for clarity - computeDepth is used in binding.go's special case handling - -// isAbstractType checks if a type implements IAbstract -// Note: Uses package-level rAbstract from registry.go -func isAbstractType(t reflect.Type) bool { - // Unwrap pointer - for t.Kind() == reflect.Ptr { - t = t.Elem() - } - - // Must be interface - if t.Kind() != reflect.Interface { - return false - } - - // Check if implements IAbstract (rAbstract defined in registry.go) - return t.Implements(rAbstract) -} - -// makeSliceAllocatorFunc creates a function that allocates a slice of given length. -// Note: The closure still uses reflect.MakeSlice per call, but this is called -// once per batch (not per record), so the overhead is amortized. -// The actual per-record decoding uses zero-reflection codec decoders. -func makeSliceAllocatorFunc(sliceType reflect.Type) func(n int) any { - return func(n int) any { - slice := reflect.MakeSlice(sliceType, n, n) - return slice.Interface() - } -} - -// makePtrAllocatorFunc creates a function that allocates a new instance of a type. -// Note: The closure still uses reflect.New per call, but this is called -// once per element in fallback path only. The fast path uses codec allocators. -func makePtrAllocatorFunc(elemType reflect.Type) func() unsafe.Pointer { - return func() unsafe.Pointer { - val := reflect.New(elemType) - return unsafe.Pointer(val.Pointer()) - } -} - -// BuildBindingPlans creates BindingPlans for all bindings in a CompiledCypher. -// Called once at query compile time. -func BuildBindingPlans(bindings map[string]any, codecs *codec.CodecRegistry) map[string]*BindingPlan { - plans := make(map[string]*BindingPlan, len(bindings)) - for key, target := range bindings { - plans[key] = NewBindingPlan(key, target, codecs) - } - return plans -} - -// DecodeSingle decodes a single value directly into the binding target using the plan's decoder. -// This is ZERO-REFLECTION for non-abstract types - uses pre-compiled decoder and cached unsafe pointer. -// Returns an error if the plan can't handle direct decoding (abstract types, Valuer interface). -func (p *BindingPlan) DecodeSingle(value any) error { - // Can't directly decode abstract types - need runtime label lookup - if p.IsAbstract { - return fmt.Errorf("cannot use DecodeSingle for abstract type binding %q", p.Key) - } - - // Can't directly decode if we don't have a decoder - if p.Decoder == nil { - return fmt.Errorf("no decoder available for binding %q", p.Key) - } - - // Can't decode if we don't have a cached pointer - if p.CachedTargetPtr == nil { - return fmt.Errorf("no cached target pointer for binding %q", p.Key) - } - - // Handle nil value - set target to zero value - if value == nil { - // For nil, we need to zero out the target - // This requires knowing the size and using unsafe, but for now - // we'll leave it to the caller (this is rare case) - return nil - } - - // Use pre-compiled decoder with cached pointer - ZERO reflection - return p.Decoder.Decode(value, p.CachedTargetPtr) -} - -// DecodeMultiple decodes multiple values into a slice binding using the plan's allocator and decoder. -// Per-batch reflection: slice allocation uses reflection (SliceAllocator closure). -// Per-record zero-reflection: the Decoder.Decode call uses pre-compiled codec with unsafe pointers. -func (p *BindingPlan) DecodeMultiple(values []any) error { - if !p.IsSlice { - return fmt.Errorf("binding %q is not a slice", p.Key) - } - - if p.IsSliceAbstract { - return fmt.Errorf("cannot use DecodeMultiple for abstract slice binding %q", p.Key) - } - - if p.Decoder == nil { - return fmt.Errorf("no decoder available for binding %q", p.Key) - } - - if p.CachedTargetPtr == nil { - return fmt.Errorf("no cached target pointer for binding %q", p.Key) - } - - n := len(values) - if n == 0 { - return nil - } - - // Allocate slice using pre-compiled allocator - // This still uses reflection internally (reflect.MakeSlice), but it's called once per batch - slice := p.SliceAllocator(n) - - // Set the slice header at the cached target pointer - // We need reflect.ValueOf to get the slice header from the interface{} - // This is ONE reflection call per batch, not per record - sliceVal := reflect.ValueOf(slice) - srcHeader := (*sliceHeader)(unsafe.Pointer(sliceVal.Pointer())) - dstHeader := (*sliceHeader)(p.CachedTargetPtr) - *dstHeader = *srcHeader - - // Decode using the slice decoder - ZERO reflection per-element - return p.Decoder.Decode(values, p.CachedTargetPtr) -} - -// sliceHeader is the runtime representation of a slice. -// It matches the layout of reflect.SliceHeader. -type sliceHeader struct { - Data unsafe.Pointer - Len int - Cap int -} - -// computeTargetPtr unwraps the pointer chain and returns the unsafe.Pointer to the target. -// Called ONCE at plan creation time, not per-record. -// Allocates any nil intermediate pointers in the chain. -func computeTargetPtr(target any, pointerDepth int) unsafe.Pointer { - v := reflect.ValueOf(target) - - // Unwrap pointer chain, allocating nil pointers along the way - for i := 0; i < pointerDepth; i++ { - if v.Kind() != reflect.Ptr { - return nil - } - if v.Elem().Kind() == reflect.Ptr && v.Elem().IsNil() { - v.Elem().Set(reflect.New(v.Elem().Type().Elem())) - } - v = v.Elem() - } - - if !v.CanAddr() { - return nil - } - - return unsafe.Pointer(v.UnsafeAddr()) -} diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/README.md b/example/vendor/github.com/rlch/neogo/internal/codec/README.md deleted file mode 100644 index e0045ca..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/README.md +++ /dev/null @@ -1,207 +0,0 @@ -# Codec Package - Zero-Reflection Serialization - -The codec package implements a high-performance, zero-reflection serialization/deserialization system inspired by `goccy/go-json`. It compiles type information into optimized opcode sequences and decoder trees, enabling fast encode/decode operations without runtime reflection. - -## Architecture - -### 1. **Encoding Path** (Opcode VM) - -``` -Type Registration - ↓ -Compiler.Compile(type) - ↓ -Opcode Tree (linked-list VM) - ↓ -EncodeStruct() → Iterate Opcodes - ↓ -EncodeAny() → Execute Opcode - ↓ -map[string]any (Neo4j-compatible output) -``` - -**Key Components:** -- **`compiler.go`**: Recursively compiles Go types into opcode sequences -- **`opcodes.go`**: Defines opcode types and execution logic - - `OpFieldInt`, `OpFieldString`, `OpFieldBool`, etc. (primitives) - - `OpFieldSlice`, `OpFieldMap`, `OpFieldStruct` (complex types) - - `OpFieldPtr` (pointer dereferencing) - - `OpFieldEmbed` (embedded struct flattening) - - `OpFieldTime`, `OpFieldPoint2D` (Neo4j types) -- **`EncodeStruct(opcode, ptr, result)`**: Main encoding entry point - - Uses `unsafe` pointers to directly read struct field values - - Zero allocations for primitives - - Recursive handling of nested structures - -### 2. **Decoding Path** (Decoder Tree) - -``` -Type Registration - ↓ -Compiler.CompileDecoder(type) - ↓ -Decoder Tree (interface-based) - ↓ -structDecoder → fieldDecoder → elementDecoder - ↓ -Decode(data, ptr) → Recursively decode - ↓ -Populate struct fields using unsafe pointers -``` - -**Key Components:** -- **`decoder.go`**: Implements decoder interfaces for all types - - `structDecoder`: Iterates over field map, calls field decoders - - `sliceDecoder`: Allocates slice, decodes elements - - `mapDecoder`: Creates map, decodes key-value pairs - - `ptrDecoder`: Allocates memory, decodes into it - - Primitive decoders: `intDecoder`, `stringDecoder`, `boolDecoder`, etc. - - Special decoders: `bytesDecoder`, `timeDecoder` - -### 3. **Type Metadata** - -**Compiler Caching:** -- Encoders cached by `TypePtr` (runtime type pointer) → `*Opcode` -- Decoders cached by `TypePtr` → `Decoder` -- Circular references handled with early cache registration - -**Field Information:** -- `FieldInfo`: Parsed from struct tags (`neo4j:"..."`) - - `DBName`: Database field name - - `IsSkip`: Field excluded from serialization - - `IsEmbed`: Embedded struct flattened into parent - - Options: `embed`, `skip`, custom codecs (future) - -## Key Features - -### Zero-Reflection Performance -- No runtime reflection during encode/decode -- Type inspection happens once at registration -- Direct memory access via `unsafe` pointers -- Opcode execution is tight loop with minimal allocations - -### Embedded Struct Handling -```go -type Address struct { - Street string `neo4j:"street"` - City string `neo4j:"city"` -} - -type Person struct { - Name string `neo4j:"name"` - Address Address `neo4j:",embed"` // Fields merged at top level -} - -// Encoded as: {"name": "...", "street": "...", "city": "..."} -``` - -Decoder flattens embedded struct fields by: -1. Recursively compiling embedded type -2. Extracting field map from nested decoder -3. Adjusting field offsets for parent struct -4. Merging into parent field map - -### Bytes Special Handling -`[]byte` is treated as a primitive (not a generic slice): -- Encoded as `[]byte` directly -- Decoded with `bytesDecoder` (accepts `[]byte` or `string`) -- Avoids slice allocations for byte sequences - -### Type Coercion -Decoders handle flexible type conversion: -- `int64` ↔ `int`, `int8`, `int16`, `int32` (with bounds checking) -- `float64` ↔ `float32` (with precision loss) -- `string` ↔ `[]byte` -- Neo4j types ↔ Go types - -## Testing - -**23 comprehensive test functions** covering: - -### Core Functionality -- `TestRoundTrip`: Complete struct with all field types -- `TestSliceOfStructs`: Nested struct slices -- `TestPrimitiveTypes`: All int/uint/float variants -- `TestNestedStructs`: Multi-level nesting -- `TestMultipleEmbedded`: Multiple embedded structs - -### Type Coverage -- `TestDeeplyNestedStructs`: 3-level nesting -- `TestSlicePrimitives`: Slices of primitives -- `TestPointerFields`: Pointers with dereferencing -- `TestSliceOfPointers`: Slices of pointers -- `TestNeo4jTypes`: Point2D encoding/decoding -- `TestInterfaceField`: `interface{}` fields - -### Edge Cases -- `TestNilValues`: Nil pointers and slices -- `TestEmptySlices`: Empty slice handling -- `TestNumericBoundaries`: Max/min int64, float64 -- `TestTypeCoercion`: Int type conversions -- `TestFieldSkip`: Fields marked `neo4j:"-"` -- `TestDecodeErrors`: Error handling -- `TestLazyRegistration`: Unregistered types - -### Encoding/Decoding -- `TestEncodeValue`: Various primitive types -- `TestEncodeValueSlices`: Slice encoding -- `TestEncodeValueZeros`: Zero values -- `TestPointerToStruct`: Nested pointers -- `TestBoolFields`: Boolean encoding - -**Coverage**: 48.7% of statements - -## File Structure - -``` -codec/ -├── opcodes.go # Opcode definition and encoding VM -├── compiler.go # Type compiler for opcodes/decoders -├── decoder.go # Decoder implementations -├── registry.go # Type registry and API -├── tags.go # Struct tag parsing (neo4j:"...") -├── typeptr.go # Type information and conversions -├── codec_test.go # Comprehensive test suite -├── neo4j_extractor.go # Neo4j metadata extraction (legacy) -├── relationship_extractor.go # Relationship handling (legacy) -├── abstract_extractor.go # Abstract type handling (legacy) -├── reflection_helpers.go # Reflection utilities (legacy) -└── README.md # This file -``` - -## Usage - -```go -// Register types -registry := codec.NewCodecRegistry() -registry.RegisterTypes(MyStruct{}, NestedStruct{}) - -// Encode -data := &MyStruct{...} -encoded, err := registry.Encode(data) - -// Decode -var decoded MyStruct -err = registry.Decode(encoded, &decoded) - -// Encode arbitrary values -val, err := registry.EncodeValue([]string{"a", "b"}) -``` - -## Future Improvements - -1. **Reach 100% coverage**: Test remaining paths - - Error conditions in decoders - - Registry lazy compilation - - Neo4j type decoders - -2. **Custom codec support**: `neo4j:"codec:mycodec"` tag option - -3. **Map encoding**: Support `map[string]T` encoding - -4. **Performance benchmarks**: Compare with reflection-based approaches - -## References - -- Inspired by: [goccy/go-json](https://github.com/goccy/go-json) -- Runtime pointer safety: [unsafe.Pointer rules](https://pkg.go.dev/unsafe) diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/allocator.go b/example/vendor/github.com/rlch/neogo/internal/codec/allocator.go deleted file mode 100644 index 3804cb4..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/allocator.go +++ /dev/null @@ -1,76 +0,0 @@ -package codec - -import ( - "reflect" - "unsafe" -) - -// sliceAllocator is a function that allocates a slice of given capacity -// and returns the underlying data pointer and slice header. -// This is computed at compile time to avoid runtime reflection. -type sliceAllocator func(capacity int) (data unsafe.Pointer, len int, cap int) - -// makeSliceAllocator creates an allocator function for a given element type. -// This uses reflection ONCE at compile time, not at decode time. -func makeSliceAllocator(elemType reflect.Type) sliceAllocator { - // Capture elemSize at compile time - elemSize := elemType.Size() - - // Return a closure that allocates WITHOUT reflection - return func(capacity int) (unsafe.Pointer, int, int) { - if capacity == 0 { - return nil, 0, 0 - } - - // Allocate bytes and get pointer to backing array - // This still uses make() but with compile-time knowledge of element type - bytes := make([]byte, int(elemSize)*capacity) - return unsafe.Pointer(&bytes[0]), 0, capacity - } -} - -// mapAllocator is a function that creates an empty map with pre-allocated space -type mapAllocator func() unsafe.Pointer - -// Exported types for testing -type SliceAllocator = sliceAllocator -type MapAllocator = mapAllocator -type PtrAllocator = ptrAllocator - -// makeMapAllocator creates an allocator function for a given map type. -// This uses reflection ONCE at compile time, not at decode time. -func makeMapAllocator(mapType reflect.Type) mapAllocator { - // We still need reflection to create the map, but only once at compile time - return func() unsafe.Pointer { - m := reflect.MakeMap(mapType) - ptr := unsafe.Pointer(m.Pointer()) - return ptr - } -} - -// ptrAllocator allocates memory for a given type -type ptrAllocator func() unsafe.Pointer - -// makePtrAllocator creates an allocator for a pointer to a given type. -// This uses reflection ONCE at compile time, not at decode time. -func makePtrAllocator(elemType reflect.Type) ptrAllocator { - return func() unsafe.Pointer { - // Allocate the element type - // We still use reflect.New but only once, captured in closure - val := reflect.New(elemType) - return unsafe.Pointer(val.Pointer()) - } -} - -// Exported allocator constructors for testing -func MakeSliceAllocator(elemType reflect.Type) SliceAllocator { - return makeSliceAllocator(elemType) -} - -func MakeMapAllocator(mapType reflect.Type) MapAllocator { - return makeMapAllocator(mapType) -} - -func MakePtrAllocator(elemType reflect.Type) PtrAllocator { - return makePtrAllocator(elemType) -} diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/compiler.go b/example/vendor/github.com/rlch/neogo/internal/codec/compiler.go deleted file mode 100644 index fa2a1fb..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/compiler.go +++ /dev/null @@ -1,434 +0,0 @@ -// Package codec provides encoding and decoding of Go structs to and from Neo4j -// property maps. It uses compiled opcodes for efficient struct traversal and -// supports Neo4j-specific types like dates, times, points, and durations. -package codec - -import ( - "fmt" - "reflect" - "time" - "unsafe" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" -) - -// Compiler builds opcode sequences for encoding/decoding structs. -// REGISTRATION PHASE: All Compile methods use heavy reflection and should -// only be called during type registration at startup. -type Compiler struct { - encCache map[TypePtr]*Opcode - decCache map[TypePtr]Decoder -} - -func NewCompiler() *Compiler { - return &Compiler{ - encCache: make(map[TypePtr]*Opcode), - decCache: make(map[TypePtr]Decoder), - } -} - -// --- Encoder Compilation --- - -func (c *Compiler) Compile(typ reflect.Type) (*Opcode, error) { - ptr := getTypePtr(typ) - if op, ok := c.encCache[ptr]; ok { - return op, nil - } - - // Check for special types FIRST (before kind switch) - // These are struct types that need primitive opcodes, not struct traversal - if op := c.checkSpecialTypeEncoder(typ); op != nil { - return op, nil - } - - switch typ.Kind() { - case reflect.Struct: - return c.compileStruct(typ) - case reflect.Pointer: - return c.compilePtr(typ) - case reflect.Slice: - return c.compileSlice(typ) - case reflect.Map: - return c.compileMap(typ) - case reflect.Interface: - return &Opcode{Op: OpFieldInterface, Meta: FieldMeta{Type: typ, Size: typ.Size()}}, nil - default: - return c.compilePrimitive(typ) - } -} - -// checkSpecialTypeEncoder returns an opcode for special types that are structs -// but should NOT use struct traversal (e.g., time.Time, neo4j.Duration). -// Returns nil if the type is not special. -func (c *Compiler) checkSpecialTypeEncoder(typ reflect.Type) *Opcode { - var op OpType - switch typ { - case reflect.TypeOf(time.Time{}): - op = OpFieldTime - case reflect.TypeOf(neo4j.Date{}): - op = OpFieldDate - case reflect.TypeOf(neo4j.LocalTime{}): - op = OpFieldLocalTime - case reflect.TypeOf(neo4j.LocalDateTime{}): - op = OpFieldLocalDateTime - case reflect.TypeOf(neo4j.Duration{}): - op = OpFieldDuration - case reflect.TypeOf(neo4j.Point2D{}): - op = OpFieldPoint2D - case reflect.TypeOf(neo4j.Point3D{}): - op = OpFieldPoint3D - default: - return nil - } - return &Opcode{Op: op, Meta: FieldMeta{Type: typ, Size: typ.Size()}} -} - -func (c *Compiler) compilePrimitive(typ reflect.Type) (*Opcode, error) { - var op OpType - - // Check special types (redundant check for safety, main check is in checkSpecialTypeEncoder) - switch typ { - case reflect.TypeOf(time.Time{}): - op = OpFieldTime - case reflect.TypeOf(neo4j.Date{}): - op = OpFieldDate - case reflect.TypeOf(neo4j.LocalTime{}): - op = OpFieldLocalTime - case reflect.TypeOf(neo4j.LocalDateTime{}): - op = OpFieldLocalDateTime - case reflect.TypeOf(neo4j.Duration{}): - op = OpFieldDuration - case reflect.TypeOf(neo4j.Point2D{}): - op = OpFieldPoint2D - case reflect.TypeOf(neo4j.Point3D{}): - op = OpFieldPoint3D - default: - switch typ.Kind() { - case reflect.Bool: - op = OpFieldBool - case reflect.Int: - op = OpFieldInt - case reflect.Int8: - op = OpFieldInt8 - case reflect.Int16: - op = OpFieldInt16 - case reflect.Int32: - op = OpFieldInt32 - case reflect.Int64: - op = OpFieldInt64 - case reflect.Uint: - op = OpFieldUint - case reflect.Uint8: - op = OpFieldUint8 - case reflect.Uint16: - op = OpFieldUint16 - case reflect.Uint32: - op = OpFieldUint32 - case reflect.Uint64: - op = OpFieldUint64 - case reflect.Float32: - op = OpFieldFloat32 - case reflect.Float64: - op = OpFieldFloat64 - case reflect.String: - op = OpFieldString - default: - return nil, fmt.Errorf("unsupported primitive type: %s", typ.Kind()) - } - } - - return &Opcode{Op: op, Meta: FieldMeta{Type: typ, Size: typ.Size()}}, nil -} - -func (c *Compiler) compileStruct(typ reflect.Type) (*Opcode, error) { - head := &Opcode{Op: OpStructStart, Meta: FieldMeta{Type: typ}} - c.encCache[getTypePtr(typ)] = head - - current := head - - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - info := parseFieldInfo(field) - - if info.IsSkip { - continue - } - - if info.IsEmbed { - subOp, err := c.Compile(field.Type) - if err != nil { - return nil, err - } - op := &Opcode{ - Op: OpFieldEmbed, - Meta: info.Meta, - SubOpcodes: subOp, - } - current.Next = op - current = op - continue - } - - typeOp, err := c.Compile(field.Type) - if err != nil { - return nil, err - } - - op := &Opcode{ - Op: typeOp.Op, - DBName: info.DBName, - Meta: info.Meta, - SubOpcodes: typeOp.SubOpcodes, - IsSkip: info.IsSkip, - } - - if typeOp.Op == OpStructStart { - op.Op = OpFieldStruct - op.SubOpcodes = typeOp - } else if typeOp.Op == OpFieldSlice { - op.Meta.Size = typeOp.Meta.Size - } else if isComplexOp(typeOp.Op) { - op.SubOpcodes = typeOp.SubOpcodes - } - - current.Next = op - current = op - } - - current.Next = &Opcode{Op: OpStructEnd} - return head, nil -} - -func (c *Compiler) compilePtr(typ reflect.Type) (*Opcode, error) { - elemOp, err := c.Compile(typ.Elem()) - if err != nil { - return nil, err - } - - return &Opcode{ - Op: OpFieldPtr, - Meta: FieldMeta{Type: typ, Size: typ.Size()}, - SubOpcodes: elemOp, - }, nil -} - -func (c *Compiler) compileSlice(typ reflect.Type) (*Opcode, error) { - if typ.Elem().Kind() == reflect.Uint8 { - return &Opcode{Op: OpFieldBytes, Meta: FieldMeta{Type: typ, Size: typ.Size()}}, nil - } - - elemOp, err := c.Compile(typ.Elem()) - if err != nil { - return nil, err - } - - return &Opcode{ - Op: OpFieldSlice, - Meta: FieldMeta{Type: typ, Size: typ.Elem().Size()}, - SubOpcodes: elemOp, - }, nil -} - -func (c *Compiler) compileMap(typ reflect.Type) (*Opcode, error) { - if typ.Key().Kind() != reflect.String { - return nil, fmt.Errorf("map keys must be strings, got %s", typ.Key().Kind()) - } - - elemOp, err := c.Compile(typ.Elem()) - if err != nil { - return nil, err - } - - return &Opcode{ - Op: OpFieldMap, - Meta: FieldMeta{Type: typ, Size: typ.Size()}, - SubOpcodes: elemOp, - }, nil -} - -func isComplexOp(op OpType) bool { - return op == OpFieldSlice || op == OpFieldMap || op == OpFieldPtr || op == OpFieldStruct || op == OpFieldEmbed || op == OpStructStart -} - -// --- Decoder Compilation --- - -func (c *Compiler) CompileDecoder(typ reflect.Type) (Decoder, error) { - ptr := getTypePtr(typ) - if dec, ok := c.decCache[ptr]; ok { - return dec, nil - } - - // Check for special types FIRST (before kind switch) - // These are struct types that need special decoders, not structDecoder - if dec := c.checkSpecialTypeDecoder(typ); dec != nil { - return dec, nil - } - - switch typ.Kind() { - case reflect.Struct: - return c.compileStructDecoder(typ) - case reflect.Ptr: - return c.compilePtrDecoder(typ) - case reflect.Slice: - // Special case: []byte is treated as a primitive (bytes decoder) - if typ.Elem().Kind() == reflect.Uint8 { - return c.compilePrimitiveDecoder(typ) - } - return c.compileSliceDecoder(typ) - case reflect.Map: - return nil, fmt.Errorf("maps are not supported for Neo4j codec - Neo4j data model only supports scalar properties") - case reflect.Interface: - return DecoderFunc(interfaceDecoder), nil - default: - return c.compilePrimitiveDecoder(typ) - } -} - -// checkSpecialTypeDecoder returns a decoder for special types that are structs -// but should NOT use structDecoder (e.g., time.Time, neo4j.Duration). -// Returns nil if the type is not special. -func (c *Compiler) checkSpecialTypeDecoder(typ reflect.Type) Decoder { - switch typ { - case reflect.TypeOf(time.Time{}): - return DecoderFunc(timeDecoder) - case reflect.TypeOf(neo4j.Date{}): - return DecoderFunc(dateDecoder) - case reflect.TypeOf(neo4j.LocalTime{}): - return DecoderFunc(localTimeDecoder) - case reflect.TypeOf(neo4j.LocalDateTime{}): - return DecoderFunc(localDateTimeDecoder) - case reflect.TypeOf(neo4j.Time{}): - return DecoderFunc(neo4jTimeDecoder) - case reflect.TypeOf(neo4j.Duration{}): - return DecoderFunc(durationDecoder) - case reflect.TypeOf(neo4j.Point2D{}): - return DecoderFunc(point2DDecoder) - case reflect.TypeOf(neo4j.Point3D{}): - return DecoderFunc(point3DDecoder) - } - return nil -} - -func (c *Compiler) compilePrimitiveDecoder(typ reflect.Type) (Decoder, error) { - // Check special types (redundant check for safety, main check is in checkSpecialTypeDecoder) - if typ == reflect.TypeOf(time.Time{}) { - return DecoderFunc(timeDecoder), nil - } - - switch typ.Kind() { - case reflect.Int: - return DecoderFunc(intDecoder), nil - case reflect.Int8: - return DecoderFunc(int8Decoder), nil - case reflect.Int16: - return DecoderFunc(int16Decoder), nil - case reflect.Int32: - return DecoderFunc(int32Decoder), nil - case reflect.Int64: - return DecoderFunc(int64Decoder), nil - case reflect.String: - return DecoderFunc(stringDecoder), nil - case reflect.Bool: - return DecoderFunc(boolDecoder), nil - case reflect.Float64: - return DecoderFunc(float64Decoder), nil - case reflect.Uint: - return DecoderFunc(uintDecoder), nil - case reflect.Uint8: - return DecoderFunc(uint8Decoder), nil - case reflect.Uint16: - return DecoderFunc(uint16Decoder), nil - case reflect.Uint32: - return DecoderFunc(uint32Decoder), nil - case reflect.Uint64: - return DecoderFunc(uint64Decoder), nil - case reflect.Float32: - return DecoderFunc(float32Decoder), nil - case reflect.Slice: - // Special case for []byte - if typ.Elem().Kind() == reflect.Uint8 { - return DecoderFunc(bytesDecoder), nil - } - } - // Fallback - return DecoderFunc(func(data any, ptr unsafe.Pointer) error { - return fmt.Errorf("unsupported primitive decoder type: %s", typ) - }), nil -} - -func (c *Compiler) compileStructDecoder(typ reflect.Type) (Decoder, error) { - dec := &structDecoder{ - fields: make(map[string]*fieldDecoder), - } - c.decCache[getTypePtr(typ)] = dec // Register early for recursion - - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - info := parseFieldInfo(field) - - if info.IsSkip { - continue - } - - // Handle embedded structs: flatten their fields into parent - if info.IsEmbed { - embeddedType := field.Type - // If it's a pointer, get the element type - if embeddedType.Kind() == reflect.Ptr { - embeddedType = embeddedType.Elem() - } - - // Recursively compile the embedded struct's decoder - embeddedDec, err := c.CompileDecoder(embeddedType) - if err != nil { - return nil, err - } - - // Extract the struct decoder's fields and merge them - if structDec, ok := embeddedDec.(*structDecoder); ok { - for dbName, fieldDec := range structDec.fields { - // Adjust offset to account for embedding - dec.fields[dbName] = &fieldDecoder{ - offset: field.Offset + fieldDec.offset, - decoder: fieldDec.decoder, - } - } - } - continue - } - - fieldDec, err := c.CompileDecoder(field.Type) - if err != nil { - return nil, err - } - - dec.fields[info.DBName] = &fieldDecoder{ - offset: field.Offset, - decoder: fieldDec, - } - } - return dec, nil -} - -func (c *Compiler) compilePtrDecoder(typ reflect.Type) (Decoder, error) { - elemDec, err := c.CompileDecoder(typ.Elem()) - if err != nil { - return nil, err - } - return &ptrDecoder{ - elemDecoder: elemDec, - allocate: makePtrAllocator(typ.Elem()), // Compile-time allocation strategy - }, nil -} - -func (c *Compiler) compileSliceDecoder(typ reflect.Type) (Decoder, error) { - elemDec, err := c.CompileDecoder(typ.Elem()) - if err != nil { - return nil, err - } - return &sliceDecoder{ - elemDecoder: elemDec, - elemSize: typ.Elem().Size(), - allocate: makeSliceAllocator(typ.Elem()), // Compile-time allocation strategy - }, nil -} diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/decoder.go b/example/vendor/github.com/rlch/neogo/internal/codec/decoder.go deleted file mode 100644 index 35ee8b2..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/decoder.go +++ /dev/null @@ -1,393 +0,0 @@ -package codec - -import ( - "fmt" - "time" - "unsafe" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" -) - -// Decoder is the interface for all decoders. -// HOT PATH: All Decode implementations use zero reflection - only unsafe pointer arithmetic. -type Decoder interface { - Decode(data any, ptr unsafe.Pointer) error -} - -// DecoderFunc adapts a function to the Decoder interface -type DecoderFunc func(data any, ptr unsafe.Pointer) error - -func (f DecoderFunc) Decode(data any, ptr unsafe.Pointer) error { - return f(data, ptr) -} - -// --- Primitive Decoders --- - -func intDecoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt(data) - if !ok { - return fmt.Errorf("expected int, got %T", data) - } - *(*int)(ptr) = v - return nil -} - -func int64Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt64(data) - if !ok { - return fmt.Errorf("expected int64, got %T", data) - } - *(*int64)(ptr) = v - return nil -} - -func stringDecoder(data any, ptr unsafe.Pointer) error { - v, ok := data.(string) - if !ok { - return fmt.Errorf("expected string, got %T", data) - } - *(*string)(ptr) = v - return nil -} - -func boolDecoder(data any, ptr unsafe.Pointer) error { - v, ok := data.(bool) - if !ok { - return fmt.Errorf("expected bool, got %T", data) - } - *(*bool)(ptr) = v - return nil -} - -func float64Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToFloat64(data) - if !ok { - return fmt.Errorf("expected float64, got %T", data) - } - *(*float64)(ptr) = v - return nil -} - -// --- Struct Decoder --- - -type structDecoder struct { - fields map[string]*fieldDecoder // Maps DB field name to decoder info -} - -type fieldDecoder struct { - offset uintptr - decoder Decoder -} - -func (d *structDecoder) Decode(data any, ptr unsafe.Pointer) error { - // Neo4j returns map[string]any for properties/nodes - var props map[string]any - - switch v := data.(type) { - case map[string]any: - props = v - case neo4j.Node: - props = v.Props - // TODO: Handle ID/Labels/ElementId mapping if struct has tags for them - case neo4j.Relationship: - props = v.Props - default: - return fmt.Errorf("expected map or Node, got %T", data) - } - - for k, v := range props { - if fd, ok := d.fields[k]; ok { - fieldPtr := unsafe.Pointer(uintptr(ptr) + fd.offset) - if err := fd.decoder.Decode(v, fieldPtr); err != nil { - return fmt.Errorf("error decoding field %q: %w", k, err) - } - } - } - return nil -} - -// --- Slice Decoder --- - -type sliceDecoder struct { - elemDecoder Decoder - elemSize uintptr - allocate sliceAllocator // Pre-computed allocator (no runtime reflection) -} - -func (d *sliceDecoder) Decode(data any, ptr unsafe.Pointer) error { - if data == nil { - *(*sliceHeader)(ptr) = sliceHeader{} - return nil - } - - // Expect generic slice []any from Neo4j - src, ok := data.([]any) - if !ok { - // Handle single element wrapping: if data is not a slice, wrap it - // This supports binding a single value (e.g., Node) to a slice target - src = []any{data} - } - - count := len(src) - if count == 0 { - *(*sliceHeader)(ptr) = sliceHeader{} - return nil - } - - // Allocate slice backing array using pre-computed allocator (ZERO reflection) - valPtr, _, capacity := d.allocate(count) - - // Copy header to destination struct field - // This sets Data, Len, Cap on the struct field - header := (*sliceHeader)(ptr) - header.Data = valPtr - header.Len = count - header.Cap = capacity - - // Iterate and decode elements directly into memory - for i := 0; i < count; i++ { - // Proper pointer arithmetic: convert to uintptr, add, convert back - elemPtr := unsafe.Pointer(uintptr(valPtr) + uintptr(i)*d.elemSize) - if err := d.elemDecoder.Decode(src[i], elemPtr); err != nil { - return fmt.Errorf("index %d: %w", i, err) - } - } - - return nil -} - -// --- Pointer Decoder --- - -type ptrDecoder struct { - elemDecoder Decoder - allocate ptrAllocator // Pre-computed allocator (ZERO reflection at decode time) -} - -func (d *ptrDecoder) Decode(data any, ptr unsafe.Pointer) error { - if data == nil { - *(*unsafe.Pointer)(ptr) = nil - return nil - } - - // Allocate memory using pre-computed allocator (ZERO reflection) - mem := d.allocate() - - // Decode into allocated memory - if err := d.elemDecoder.Decode(data, mem); err != nil { - return err - } - - // Set pointer field to point to new memory - *(*unsafe.Pointer)(ptr) = mem - return nil -} - -// --- Interface Decoder --- - -func interfaceDecoder(data any, ptr unsafe.Pointer) error { - // Just assign the value directly - *(*any)(ptr) = data - return nil -} - -// --- Additional Primitive Decoders --- - -func uintDecoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint(data) - if !ok { - return fmt.Errorf("expected uint, got %T", data) - } - *(*uint)(ptr) = v - return nil -} - -func uint64Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint64(data) - if !ok { - return fmt.Errorf("expected uint64, got %T", data) - } - *(*uint64)(ptr) = v - return nil -} - -func float32Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToFloat32(data) - if !ok { - return fmt.Errorf("expected float32, got %T", data) - } - *(*float32)(ptr) = v - return nil -} - -func bytesDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case []byte: - *(*[]byte)(ptr) = v - return nil - case string: - *(*[]byte)(ptr) = []byte(v) - return nil - default: - return fmt.Errorf("expected []byte or string, got %T", data) - } -} - -func int8Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt8(data) - if !ok { - return fmt.Errorf("expected int8, got %T", data) - } - *(*int8)(ptr) = v - return nil -} - -func int16Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt16(data) - if !ok { - return fmt.Errorf("expected int16, got %T", data) - } - *(*int16)(ptr) = v - return nil -} - -func int32Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt32(data) - if !ok { - return fmt.Errorf("expected int32, got %T", data) - } - *(*int32)(ptr) = v - return nil -} - -func uint8Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint8(data) - if !ok { - return fmt.Errorf("expected uint8, got %T", data) - } - *(*uint8)(ptr) = v - return nil -} - -func uint16Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint16(data) - if !ok { - return fmt.Errorf("expected uint16, got %T", data) - } - *(*uint16)(ptr) = v - return nil -} - -func uint32Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint32(data) - if !ok { - return fmt.Errorf("expected uint32, got %T", data) - } - *(*uint32)(ptr) = v - return nil -} - -// --- Neo4j Types --- - -func timeDecoder(data any, ptr unsafe.Pointer) error { - // Neo4j might return time.Time (local) or dbtype.Time - switch v := data.(type) { - case time.Time: - *(*time.Time)(ptr) = v - case neo4j.Time: - *(*time.Time)(ptr) = v.Time() - case neo4j.Date: - *(*time.Time)(ptr) = v.Time() - case neo4j.LocalDateTime: - *(*time.Time)(ptr) = v.Time() - case neo4j.LocalTime: - *(*time.Time)(ptr) = v.Time() - case string: - // Try parsing ISO string? - t, err := time.Parse(time.RFC3339, v) - if err != nil { - return err - } - *(*time.Time)(ptr) = t - default: - return fmt.Errorf("cannot decode %T into time.Time", data) - } - return nil -} - -func dateDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Date: - *(*neo4j.Date)(ptr) = v - case time.Time: - *(*neo4j.Date)(ptr) = neo4j.DateOf(v) - default: - return fmt.Errorf("cannot decode %T into neo4j.Date", data) - } - return nil -} - -func localTimeDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.LocalTime: - *(*neo4j.LocalTime)(ptr) = v - case time.Time: - *(*neo4j.LocalTime)(ptr) = neo4j.LocalTimeOf(v) - default: - return fmt.Errorf("cannot decode %T into neo4j.LocalTime", data) - } - return nil -} - -func localDateTimeDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.LocalDateTime: - *(*neo4j.LocalDateTime)(ptr) = v - case time.Time: - *(*neo4j.LocalDateTime)(ptr) = neo4j.LocalDateTimeOf(v) - default: - return fmt.Errorf("cannot decode %T into neo4j.LocalDateTime", data) - } - return nil -} - -func neo4jTimeDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Time: - *(*neo4j.Time)(ptr) = v - case time.Time: - *(*neo4j.Time)(ptr) = neo4j.Time(v) - default: - return fmt.Errorf("cannot decode %T into neo4j.Time", data) - } - return nil -} - -func durationDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Duration: - *(*neo4j.Duration)(ptr) = v - default: - return fmt.Errorf("cannot decode %T into neo4j.Duration", data) - } - return nil -} - -func point2DDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Point2D: - *(*neo4j.Point2D)(ptr) = v - default: - return fmt.Errorf("cannot decode %T into neo4j.Point2D", data) - } - return nil -} - -func point3DDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Point3D: - *(*neo4j.Point3D)(ptr) = v - default: - return fmt.Errorf("cannot decode %T into neo4j.Point3D", data) - } - return nil -} \ No newline at end of file diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/neo4j_extractor.go b/example/vendor/github.com/rlch/neogo/internal/codec/neo4j_extractor.go deleted file mode 100644 index 6f180c1..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/neo4j_extractor.go +++ /dev/null @@ -1,431 +0,0 @@ -package codec - -import ( - "fmt" - "reflect" - "strings" -) - -// Neo4jNodeMetadata contains metadata extracted from a node struct -type Neo4jNodeMetadata struct { - Name string - Labels []string - FieldsToProps map[string]string - Relationships map[string]*Neo4jRelationshipTarget - Schema *SchemaMeta // Aggregated schema (indexes + constraints) - RType reflect.Type // Stored reflect.Type for delegation -} - -// Type returns the reflect.Type for this node -func (m *Neo4jNodeMetadata) Type() reflect.Type { - return m.RType -} - -// Neo4jRelationshipTarget represents a relationship field in a node -type Neo4jRelationshipTarget struct { - FieldName string - Many bool // true for Many[R], false for One[R] - Dir bool // true = ->, false = <- - RelType string // Relationship type (e.g., "ACTED_IN") - NodeType reflect.Type // Target type (node or relationship struct) - use registry to get labels - Required bool // true if relationship is required (existence constraint) -} - -// ExtractNeo4jNodeMeta extracts Neo4j node metadata from a struct. -// REGISTRATION PHASE: Uses heavy reflection, called only during type registration. -// Deprecated: Use extractNeo4jNodeMetaFromType for new code. -func (r *CodecRegistry) ExtractNeo4jNodeMeta(v any) (*Neo4jNodeMetadata, error) { - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - return r.extractNeo4jNodeMetaFromType(typ) -} - -// extractNeo4jNodeMetaFromType extracts Neo4j node metadata from a reflect.Type. -// This is the internal method that does all the work, including schema aggregation. -// REGISTRATION PHASE: Uses heavy reflection, called only during type registration. -func (r *CodecRegistry) extractNeo4jNodeMetaFromType(typ reflect.Type) (*Neo4jNodeMetadata, error) { - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected struct, got %s", typ.Kind()) - } - - // Create a zero value for walking (needed for embedded struct recursion) - val := reflect.New(typ).Elem() - - meta := &Neo4jNodeMetadata{ - Name: typ.Name(), - Labels: []string{}, - FieldsToProps: make(map[string]string), - Relationships: make(map[string]*Neo4jRelationshipTarget), - RType: typ, - } - - // Track labels to append at the end (from anonymous fields) - postpendLabels := []string{} - - // Collect field schema info for aggregation - var fieldSchemas []FieldSchemaInfo - - // Walk through all fields - err := r.walkStructFieldsWithSchema(typ, val, meta, &postpendLabels, &fieldSchemas) - if err != nil { - return nil, err - } - - // Append labels from anonymous fields - meta.Labels = append(meta.Labels, postpendLabels...) - - if len(meta.Labels) == 0 { - return nil, fmt.Errorf("node %s has no labels", meta.Name) - } - - // Use most specific label (first label) for schema naming - primaryLabel := meta.Labels[0] - - // Auto-add unique constraint for ID field if present - if idProp, hasID := meta.FieldsToProps["ID"]; hasID { - fieldSchemas = append(fieldSchemas, FieldSchemaInfo{ - DBName: idProp, - Constraint: &ConstraintSpec{ - Type: ConstraintTypeUnique, - Priority: 10, - }, - }) - } - - // Aggregate schema from field specs - meta.Schema = &SchemaMeta{ - TypeName: meta.Name, - Labels: meta.Labels, - IsNode: true, - Indexes: AggregateIndexes(primaryLabel, true, fieldSchemas), - Constraints: AggregateConstraints(primaryLabel, true, fieldSchemas), - } - - return meta, nil -} - -// walkStructFieldsWithSchema walks through struct fields and extracts Neo4j metadata + schema info -func (r *CodecRegistry) walkStructFieldsWithSchema(typ reflect.Type, val reflect.Value, meta *Neo4jNodeMetadata, postpendLabels *[]string, fieldSchemas *[]FieldSchemaInfo) error { - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - fieldVal := val.Field(i) - - // Parse field info to get both DB name and schema - fieldInfo := parseFieldInfo(field) - - // Extract field name mapping from neo4j tags (only for non-anonymous fields) - if !field.Anonymous && !fieldInfo.IsSkip { - if propName, ok := r.extractFieldName(field); ok { - meta.FieldsToProps[field.Name] = propName - - // Collect schema info for this field - if fieldInfo.Index != nil || fieldInfo.Constraint != nil { - *fieldSchemas = append(*fieldSchemas, FieldSchemaInfo{ - DBName: propName, - Index: fieldInfo.Index, - Constraint: fieldInfo.Constraint, - }) - } - } - } - - // Handle anonymous fields (embedded structs) - var shouldRecurse bool - if field.Anonymous { - shouldRecurse = r.handleAnonymousFieldWithSchema(field, meta, postpendLabels, fieldSchemas) - } - - // Parse neo4j tag - tag, hasTag := field.Tag.Lookup("neo4j") - if !hasTag || tag == "" { - // If no neo4j tag but should recurse, continue recursion - if shouldRecurse { - // Recurse into embedded struct - embeddedVal := fieldVal - if embeddedVal.Kind() == reflect.Ptr { - if embeddedVal.IsNil() { - // Create a new instance for nil pointers - embeddedVal = reflect.New(field.Type.Elem()).Elem() - } else { - embeddedVal = embeddedVal.Elem() - } - } - err := r.walkStructFieldsWithSchema(embeddedVal.Type(), embeddedVal, meta, postpendLabels, fieldSchemas) - if err != nil { - return err - } - } - continue - } - - // Parse tag - err := r.parseNeo4jTag(field, tag, meta, postpendLabels, typ.Name()) - if err != nil { - return err - } - - // Handle recursion if needed - if shouldRecurse { - embeddedVal := fieldVal - if embeddedVal.Kind() == reflect.Ptr { - if embeddedVal.IsNil() { - // Create a new instance for nil pointers - embeddedVal = reflect.New(field.Type.Elem()).Elem() - } else { - embeddedVal = embeddedVal.Elem() - } - } - err := r.walkStructFieldsWithSchema(embeddedVal.Type(), embeddedVal, meta, postpendLabels, fieldSchemas) - if err != nil { - return err - } - } - } - return nil -} - -// extractFieldName extracts field name from neo4j tag for property fields. -// Returns false for relationship fields (One[R]/Many[R]) and special markers. -func (r *CodecRegistry) extractFieldName(field reflect.StructField) (string, bool) { - neo4jTag := field.Tag.Get("neo4j") - if neo4jTag == "" || neo4jTag == "-" { - return "", false - } - - // Skip One[R] and Many[R] relationship fields - they're not properties - fieldTypeName := field.Type.Name() - if strings.HasPrefix(fieldTypeName, "One[") || strings.HasPrefix(fieldTypeName, "Many[") { - return "", false - } - - parts := strings.Split(neo4jTag, ",") - if len(parts) > 0 { - fieldName := strings.TrimSpace(parts[0]) - // Skip relationship direction markers and other special values - if fieldName == "" || fieldName == "->" || fieldName == "<-" || fieldName == "startNode" || fieldName == "endNode" { - return "", false - } - // Skip shorthand relationship syntax (e.g., "FRIEND>", "") || strings.HasPrefix(fieldName, "<") { - return "", false - } - return fieldName, true - } - - return "", false -} - -// handleAnonymousFieldWithSchema handles embedded/anonymous struct fields and collects schema info -func (r *CodecRegistry) handleAnonymousFieldWithSchema(field reflect.StructField, meta *Neo4jNodeMetadata, postpendLabels *[]string, fieldSchemas *[]FieldSchemaInfo) bool { - fieldType := field.Type - - // Check if it's the base Node type (special case - always recurse) - if r.isBaseNodeType(fieldType) { - return true // Should recurse but don't extract as node - } - - // Check if it implements INode interface - if r.implementsINode(fieldType) { - // Try to extract the nested node metadata - nestedMeta, err := r.extractNeo4jNodeMetaFromType(fieldType) - if err == nil && len(nestedMeta.Labels) > 0 { - // Successfully extracted - merge labels, fields, relationships, and schema - meta.Labels = append(meta.Labels, nestedMeta.Labels...) - for k, v := range nestedMeta.FieldsToProps { - meta.FieldsToProps[k] = v - } - for k, v := range nestedMeta.Relationships { - meta.Relationships[k] = v - } - // Merge schema from nested node (but not auto-ID constraint - that will be regenerated) - if nestedMeta.Schema != nil { - for _, idx := range nestedMeta.Schema.Indexes { - for _, prop := range idx.Properties { - *fieldSchemas = append(*fieldSchemas, FieldSchemaInfo{ - DBName: prop.Name, - Index: &IndexSpec{ - Name: idx.Name, - Type: idx.Type, - Priority: prop.Priority, - Options: idx.Options, - }, - }) - } - } - // Don't merge constraints from nested - they'll be regenerated with correct label - // Only merge explicit constraints (not auto-ID) - for _, con := range nestedMeta.Schema.Constraints { - // Skip auto-generated ID constraints (they have auto-generated names) - if strings.HasPrefix(con.Name, "unique_") && len(con.Properties) == 1 && con.Properties[0] == "id" { - continue - } - for i, prop := range con.Properties { - *fieldSchemas = append(*fieldSchemas, FieldSchemaInfo{ - DBName: prop, - Constraint: &ConstraintSpec{ - Name: con.Name, - Type: con.Type, - Priority: i + 1, - }, - }) - } - } - } - return false // Don't recurse further, we already extracted - } - // Extraction failed (no labels) - this is a base type, recurse to get fields - return true - } - - return true // Should recurse for other anonymous fields -} - -// parseNeo4jTag parses neo4j struct tag and updates metadata -func (r *CodecRegistry) parseNeo4jTag(field reflect.StructField, neo4jTag string, meta *Neo4jNodeMetadata, postpendLabels *[]string, typeName string) error { - parts := strings.Split(neo4jTag, ",") - if len(parts) == 0 { - return fmt.Errorf("invalid tag format for field %s.%s: %s", typeName, field.Name, neo4jTag) - } - - ident := parts[0] - options := parts[1:] // Additional options like "required" - - switch ident { - case "<-", "->": - // Direct relationship definition - return r.registerRelationshipField(field, ident == "->", "", options, meta, typeName) - - case "": - return fmt.Errorf("field has empty neo4j label / direction: %s.%s", typeName, field.Name) - - default: - // Label or shorthand relationship - if field.Anonymous { - *postpendLabels = append(*postpendLabels, ident) - } else { - // Check if it's a shorthand relationship (starts with < or ends with >) - if ident[0] == '<' { - return r.registerRelationshipField(field, false, ident[1:], options, meta, typeName) - } else if ident[len(ident)-1] == '>' { - return r.registerRelationshipField(field, true, ident[:len(ident)-1], options, meta, typeName) - } - // If it's not a relationship and not anonymous, it's ignored - // Labels only come from anonymous embedded structs - } - } - - return nil -} - -// registerRelationshipField registers a relationship field. -// Only One[R] and Many[R] wrapper types are supported for relationship definitions. -func (r *CodecRegistry) registerRelationshipField(field reflect.StructField, dir bool, shorthand string, options []string, meta *Neo4jNodeMetadata, typeName string) error { - relType := field.Type - isMany := false - isRequired := false - - // Parse options - for _, opt := range options { - opt = strings.TrimSpace(opt) - if opt == "required" { - isRequired = true - } - } - - // Only One[R] and Many[R] zero-cost wrapper types are supported - if relType.Kind() != reflect.Struct { - return fmt.Errorf("relationship field %s.%s must use One[R] or Many[R] type, got %s", typeName, field.Name, relType) - } - - relWrapperName := relType.Name() - if !strings.HasPrefix(relWrapperName, "One[") && !strings.HasPrefix(relWrapperName, "Many[") { - return fmt.Errorf("relationship field %s.%s must use One[R] or Many[R] type, got %s", typeName, field.Name, relWrapperName) - } - - isMany = strings.HasPrefix(relWrapperName, "Many[") - - // Extract the type parameter R from One[R] or Many[R] - // The type parameter is accessible via the struct's first field type - if relType.NumField() == 0 { - return fmt.Errorf("relationship field %s.%s has invalid One/Many type structure", typeName, field.Name) - } - - // The phantom field is [0]R, so its element type is R - phantomField := relType.Field(0) - if phantomField.Type.Kind() != reflect.Array || phantomField.Type.Len() != 0 { - return fmt.Errorf("relationship field %s.%s has invalid One/Many type structure", typeName, field.Name) - } - - innerType := phantomField.Type.Elem() - // Wrap in pointer for consistency with existing code - relType = reflect.PointerTo(innerType) - - // Determine relationship type - var relTypeName string - - if shorthand != "" { - relTypeName = shorthand - } else { - // Extract relationship type from db/neo4j tag on the relationship struct - relStructType := relType.Elem() - if r.implementsIRelationship(relType) { - // Look for neo4j tag on the relationship struct itself - if relStructType.Kind() == reflect.Struct { - for i := 0; i < relStructType.NumField(); i++ { - f := relStructType.Field(i) - if f.Anonymous && f.Type.Name() == "Relationship" { - if tagVal := f.Tag.Get("neo4j"); tagVal != "" { - relTypeName = tagVal - break - } - } - } - } - } - // Fallback to default relationship type for shorthand relationships - if relTypeName == "" { - // For shorthand relationships (where target is a node, not a relationship struct), - // use "SHORTHAND" as the default relationship type - if r.implementsINode(relType) { - relTypeName = "SHORTHAND" - } else { - // For regular relationship structs, use the struct name - relTypeName = relStructType.Name() - } - } - } - - meta.Relationships[field.Name] = &Neo4jRelationshipTarget{ - FieldName: field.Name, - Many: isMany, - Dir: dir, - RelType: relTypeName, - NodeType: relType, - Required: isRequired, - } - - return nil -} - -// Helper methods to check type implementations -func (r *CodecRegistry) isBaseNodeType(typ reflect.Type) bool { - // Check if it's the base Node type - this should be configurable - return typ.Name() == "Node" -} - -func (r *CodecRegistry) implementsINode(typ reflect.Type) bool { - // Create INode interface type - iNodeType := reflect.TypeOf((*interface{ IsNode() })(nil)).Elem() - return typ.Implements(iNodeType) -} - -func (r *CodecRegistry) implementsIRelationship(typ reflect.Type) bool { - // Create IRelationship interface type - iRelType := reflect.TypeOf((*interface{ IsRelationship() })(nil)).Elem() - return typ.Implements(iRelType) -} \ No newline at end of file diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/opcodes.go b/example/vendor/github.com/rlch/neogo/internal/codec/opcodes.go deleted file mode 100644 index 204b8af..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/opcodes.go +++ /dev/null @@ -1,323 +0,0 @@ -package codec - -import ( - "time" - "unsafe" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" -) - -// OpType represents different types of encoding/decoding operations -type OpType int - -const ( - // Struct operations - OpStructStart OpType = iota - OpStructEnd - - // Basic field operations - OpFieldBool - OpFieldInt - OpFieldInt8 - OpFieldInt16 - OpFieldInt32 - OpFieldInt64 - OpFieldUint - OpFieldUint8 - OpFieldUint16 - OpFieldUint32 - OpFieldUint64 - OpFieldFloat32 - OpFieldFloat64 - OpFieldString - OpFieldBytes - - // Neo4j specific types - OpFieldTime - OpFieldDate - OpFieldLocalTime - OpFieldLocalDateTime - OpFieldDuration - OpFieldPoint2D - OpFieldPoint3D - - // Complex field operations - OpFieldSlice - OpFieldMap - OpFieldPtr - OpFieldStruct - OpFieldInterface - - // Special operations - OpFieldEmbed - OpFieldSkip - - // Optimized combined operations - OpStructFieldStart - OpFieldStructEnd - - OpEnd -) - -// Opcode represents a single encoding/decoding operation -type Opcode struct { - Op OpType - Key []byte // Field name for encoding (pre-computed) - Meta FieldMeta // Pre-computed field metadata - Next *Opcode // Next operation in sequence - - // For complex types - SubOpcodes *Opcode // For slices, maps, structs, pointers - - // Field info from db tags - DBName string - Options []string - IsEmbed bool - IsSkip bool -} - -// EncodeStruct executes the opcode sequence to encode a struct to map[string]any. -// HOT PATH: Zero reflection - uses only pre-compiled opcodes and unsafe pointer arithmetic. -func EncodeStruct(head *Opcode, structPtr unsafe.Pointer) (map[string]any, error) { - result := make(map[string]any) - err := encodeStructToMap(head, structPtr, result) - return result, err -} - -func encodeStructToMap(head *Opcode, structPtr unsafe.Pointer, result map[string]any) error { - current := head - - for current != nil { - ptr := unsafe.Pointer(uintptr(structPtr) + current.Meta.Offset) - - switch current.Op { - case OpStructStart: - // No-op - case OpStructEnd: - // No-op - case OpStructFieldStart: - // Optimization hook - case OpFieldBool: - result[current.DBName] = *(*bool)(ptr) - case OpFieldInt: - result[current.DBName] = int64(*(*int)(ptr)) - case OpFieldInt8: - result[current.DBName] = int64(*(*int8)(ptr)) - case OpFieldInt16: - result[current.DBName] = int64(*(*int16)(ptr)) - case OpFieldInt32: - result[current.DBName] = int64(*(*int32)(ptr)) - case OpFieldInt64: - result[current.DBName] = *(*int64)(ptr) - case OpFieldUint: - result[current.DBName] = int64(*(*uint)(ptr)) - case OpFieldUint8: - result[current.DBName] = int64(*(*uint8)(ptr)) - case OpFieldUint16: - result[current.DBName] = int64(*(*uint16)(ptr)) - case OpFieldUint32: - result[current.DBName] = int64(*(*uint32)(ptr)) - case OpFieldUint64: - // Warning: Potential overflow if > MaxInt64 - result[current.DBName] = int64(*(*uint64)(ptr)) - case OpFieldFloat32: - result[current.DBName] = float64(*(*float32)(ptr)) - case OpFieldFloat64: - result[current.DBName] = *(*float64)(ptr) - case OpFieldString: - result[current.DBName] = *(*string)(ptr) - case OpFieldBytes: - result[current.DBName] = *(*[]byte)(ptr) - case OpFieldTime: - result[current.DBName] = *(*time.Time)(ptr) - case OpFieldDate: - result[current.DBName] = *(*neo4j.Date)(ptr) - case OpFieldLocalTime: - result[current.DBName] = *(*neo4j.LocalTime)(ptr) - case OpFieldLocalDateTime: - result[current.DBName] = *(*neo4j.LocalDateTime)(ptr) - case OpFieldDuration: - result[current.DBName] = *(*neo4j.Duration)(ptr) - case OpFieldPoint2D: - result[current.DBName] = *(*neo4j.Point2D)(ptr) - case OpFieldPoint3D: - result[current.DBName] = *(*neo4j.Point3D)(ptr) - - case OpFieldPtr: - // Read the pointer - p := *(*unsafe.Pointer)(ptr) - if p == nil { - result[current.DBName] = nil - } else { - // Encode the pointed value using SubOpcodes - // If SubOpcodes is OpFieldStruct (nested), we expect a map. - // If SubOpcodes is primitive, we expect a value. - // But Opcode structure assumes linear list. SubOpcodes is usually the start of a chain for the inner type. - - // Simplified: assume SubOpcodes handles the inner type encoding. - // We need a helper "encodeValue" that returns 'any'. - val, err := EncodeAny(current.SubOpcodes, p) - if err != nil { - return err - } - result[current.DBName] = val - } - - case OpFieldSlice: - // Zero-reflection slice iteration - header := (*sliceHeader)(ptr) - if header.Data == nil && header.Len == 0 { - result[current.DBName] = nil - } else { - sliceOut := make([]any, header.Len) - elemSize := current.Meta.Size - - for i := 0; i < header.Len; i++ { - // Proper pointer arithmetic: convert to uintptr, add, convert back - elemPtr := unsafe.Pointer(uintptr(header.Data) + uintptr(i)*elemSize) - val, err := EncodeAny(current.SubOpcodes, elemPtr) - if err != nil { - return err - } - sliceOut[i] = val - } - result[current.DBName] = sliceOut - } - - case OpFieldStruct: - // Nested struct - // We need to encode it into a map - val, err := EncodeAny(current.SubOpcodes, ptr) - if err != nil { - return err - } - result[current.DBName] = val - - case OpFieldEmbed: - // Embedded struct - merge into current result - // We iterate the SubOpcodes and write directly to 'result' - err := encodeStructToMap(current.SubOpcodes, ptr, result) - if err != nil { - return err - } - - case OpFieldInterface: - // Extract interface{} value directly from memory (ZERO reflection) - // This avoids reflect.NewAt which allocates a reflect.Value wrapper - v := getInterfaceValue(ptr) - result[current.DBName] = v - // Note: This preserves the interface{} contents as-is. - // If the interface holds a struct/slice, it will be encoded on next round. - // This is the correct behavior for Neo4j compatibility. - - case OpFieldSkip: - // Skip - case OpEnd: - // Continue loop to finish? No, loop condition is current != nil - } - current = current.Next - } - return nil -} - -// EncodeAny encodes a single value based on the opcode. -// HOT PATH: Zero reflection - uses only pre-compiled opcodes and unsafe pointer arithmetic. -func EncodeAny(op *Opcode, ptr unsafe.Pointer) (any, error) { - if op == nil { - return nil, nil - } - - switch op.Op { - case OpStructStart: - // It's a struct, so we expect a sequence of fields. - // We return a map[string]any - res := make(map[string]any) - err := encodeStructToMap(op, ptr, res) - return res, err - - case OpFieldBool: - return *(*bool)(ptr), nil - case OpFieldInt: - return int64(*(*int)(ptr)), nil - case OpFieldInt8: - return int64(*(*int8)(ptr)), nil - case OpFieldInt16: - return int64(*(*int16)(ptr)), nil - case OpFieldInt32: - return int64(*(*int32)(ptr)), nil - case OpFieldInt64: - return *(*int64)(ptr), nil - case OpFieldUint: - return int64(*(*uint)(ptr)), nil - case OpFieldUint8: - return int64(*(*uint8)(ptr)), nil - case OpFieldUint16: - return int64(*(*uint16)(ptr)), nil - case OpFieldUint32: - return int64(*(*uint32)(ptr)), nil - case OpFieldUint64: - return int64(*(*uint64)(ptr)), nil - case OpFieldFloat32: - return float64(*(*float32)(ptr)), nil - case OpFieldFloat64: - return *(*float64)(ptr), nil - case OpFieldString: - return *(*string)(ptr), nil - case OpFieldBytes: - return *(*[]byte)(ptr), nil - case OpFieldTime: - return *(*time.Time)(ptr), nil - case OpFieldDate: - return *(*neo4j.Date)(ptr), nil - case OpFieldLocalTime: - return *(*neo4j.LocalTime)(ptr), nil - case OpFieldLocalDateTime: - return *(*neo4j.LocalDateTime)(ptr), nil - case OpFieldDuration: - return *(*neo4j.Duration)(ptr), nil - case OpFieldPoint2D: - return *(*neo4j.Point2D)(ptr), nil - case OpFieldPoint3D: - return *(*neo4j.Point3D)(ptr), nil - - case OpFieldPtr: - p := *(*unsafe.Pointer)(ptr) - if p == nil { - return nil, nil - } - return EncodeAny(op.SubOpcodes, p) - - case OpFieldSlice: - header := (*sliceHeader)(ptr) - if header.Data == nil && header.Len == 0 { - return nil, nil - } - sliceOut := make([]any, header.Len) - elemSize := op.Meta.Size - - for i := 0; i < header.Len; i++ { - // Proper pointer arithmetic: convert to uintptr, add, convert back - elemPtr := unsafe.Pointer(uintptr(header.Data) + uintptr(i)*elemSize) - val, err := EncodeAny(op.SubOpcodes, elemPtr) - if err != nil { - return nil, err - } - sliceOut[i] = val - } - return sliceOut, nil - - case OpFieldStruct: - // Nested struct not at top level (e.g. slice element) - // OpFieldStruct usually points to OpStructStart in SubOpcodes? - // Or it IS the opcode. - // If op.Op is OpFieldStruct, it likely wraps the struct definition. - // If SubOpcodes is OpStructStart, we recurse. - return EncodeAny(op.SubOpcodes, ptr) - - case OpFieldInterface: - // Extract interface{} value directly from memory (ZERO reflection) - return getInterfaceValue(ptr), nil - } - - return nil, nil -} \ No newline at end of file diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/reflection_helpers.go b/example/vendor/github.com/rlch/neogo/internal/codec/reflection_helpers.go deleted file mode 100644 index 5f2edc3..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/reflection_helpers.go +++ /dev/null @@ -1,139 +0,0 @@ -package codec - -import ( - "fmt" - "reflect" -) - -// UnwindValue unwraps pointer values to get to the underlying value -func UnwindValue(ptrTo reflect.Value) reflect.Value { - for ptrTo.Kind() == reflect.Ptr { - ptrTo = ptrTo.Elem() - } - return ptrTo -} - -// UnwindType unwraps pointer types to get to the underlying type -func UnwindType(ptrTo reflect.Type) reflect.Type { - for ptrTo.Kind() == reflect.Ptr { - ptrTo = ptrTo.Elem() - } - return ptrTo -} - -// WalkStruct walks through struct fields with a visitor function -// This replaces the WalkStruct from helpers.go -func WalkStruct( - v reflect.Value, - visit func( - i int, - typ reflect.StructField, - val reflect.Value, - ) (recurseInto bool, err error), -) (recurseInto error) { - vt := v.Type() - for vt.Kind() == reflect.Ptr { - vt = vt.Elem() - v = v.Elem() - } - if vt.Kind() != reflect.Struct || v.Kind() != reflect.Struct { - return fmt.Errorf("expected struct, got %s", vt.Kind()) - } - for i := range vt.NumField() { - vtf := vt.Field(i) - vf := v.Field(i) - shouldRecurse, err := visit(i, vtf, vf) - if err != nil { - return err - } - if shouldRecurse && vf.Kind() == reflect.Struct { - if err := WalkStruct(vf, visit); err != nil { - return err - } - continue - } - } - return nil -} - -// GetTypeName returns the type name for a given value, unwrapping pointers -func (r *CodecRegistry) GetTypeName(v any) string { - typ := reflect.TypeOf(v) - return UnwindType(typ).Name() -} - -// GetTypeByName returns a registered type by its name -func (r *CodecRegistry) GetTypeByName(name string) reflect.Type { - return r.GetTypeByNameLookup(name) -} - -// IsRegistered checks if a type is already registered in the codec -func (r *CodecRegistry) IsRegistered(v any) bool { - typePtr := getTypePtrFromValue(v) - _, exists := r.metadata[typePtr] - return exists -} - -// CreateInstance creates a new instance of the given type -func (r *CodecRegistry) CreateInstance(typ reflect.Type) (any, error) { - if typ.Kind() == reflect.Ptr { - elemType := typ.Elem() - if elemType.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected pointer to struct, got pointer to %s", elemType.Kind()) - } - return reflect.New(elemType).Interface(), nil - } else if typ.Kind() == reflect.Struct { - return reflect.New(typ).Interface(), nil - } - return nil, fmt.Errorf("unsupported type kind: %s", typ.Kind()) -} - -// Common interface types for checking implementations -var ( - rAbstract = reflect.TypeOf((*IAbstract)(nil)).Elem() - rINode = reflect.TypeOf((*INode)(nil)).Elem() - rIRelationship = reflect.TypeOf((*IRelationship)(nil)).Elem() - rNode = reflect.TypeOf(Node{}) -) - -// Interface definitions (these match what's in internal/entity.go) -type IAbstract interface { - IsNode() - GetID() string - IsAbstract() - Implementers() []IAbstract -} - -type INode interface { - IsNode() - GetID() string -} - -type IRelationship interface { - IsRelationship() -} - -// Node struct (this matches what's in internal/entity.go) -type Node struct { - ID string `neo4j:"id"` -} - -// ImplementsAbstract checks if a type implements IAbstract -func (r *CodecRegistry) ImplementsAbstract(typ reflect.Type) bool { - return typ.Implements(rAbstract) -} - -// ImplementsINode checks if a type implements INode -func (r *CodecRegistry) ImplementsINode(typ reflect.Type) bool { - return typ.Implements(rINode) -} - -// ImplementsIRelationship checks if a type implements IRelationship -func (r *CodecRegistry) ImplementsIRelationship(typ reflect.Type) bool { - return typ.Implements(rIRelationship) -} - -// IsBaseNodeType checks if a type is the base Node type -func (r *CodecRegistry) IsBaseNodeType(typ reflect.Type) bool { - return typ == rNode -} diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/registry.go b/example/vendor/github.com/rlch/neogo/internal/codec/registry.go deleted file mode 100644 index 03ccfde..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/registry.go +++ /dev/null @@ -1,357 +0,0 @@ -package codec - -import ( - "fmt" - "reflect" - "unsafe" -) - -// CodecRegistry manages type codecs with zero-reflection runtime. -// It is the SINGLE SOURCE OF TRUTH for all type metadata, schema, encoders, and decoders. -// -// # Reflection Boundaries -// -// This codec system distinguishes between two phases: -// -// REGISTRATION PHASE (heavy reflection OK - happens once at startup): -// - RegisterTypes, buildMetadata -// - ExtractNeo4jNodeMeta, ExtractRelationshipMeta -// - Compile, CompileDecoder -// -// HOT PATH (zero reflection - called per encode/decode operation): -// - Encode, EncodeValue, Decode -// - EncodeStruct, EncodeAny, all decoder.Decode methods -// -// LOOKUP (minimal reflection - cached, called once per type per operation): -// - GetEncoder, GetDecoder use getTypePtrFromValue which calls reflect.TypeOf -// - This is acceptable as lookup is O(1) after first call and results are cached -type CodecRegistry struct { - encoders map[TypePtr]*Encoder // typeptr -> encoder - decoders map[TypePtr]Decoder // typeptr -> decoder interface - metadata map[TypePtr]*TypeMetadata // typeptr -> metadata - compiler *Compiler // opcode compiler - - // Neo4j-specific metadata (single source of truth) - nodeMeta map[string]*Neo4jNodeMetadata // type name -> node metadata - relMeta map[string]*RelationshipStructMeta // type name -> relationship metadata -} - -// TypeMetadata contains pre-computed type information -type TypeMetadata struct { - Name string // Type name - FieldsMap map[string]string // Go field name -> DB field name - Labels []string // Neo4j labels (for nodes) - Relationships map[string]*RelationshipMeta // field -> relationship info -} - -// RelationshipMeta contains relationship metadata -type RelationshipMeta struct { - Many bool - Dir bool -} - -// Encoder contains pre-built opcode sequence for encoding -type Encoder struct { - opcodes *Opcode -} - -// NewCodecRegistry creates a new codec registry -func NewCodecRegistry() *CodecRegistry { - return &CodecRegistry{ - encoders: make(map[TypePtr]*Encoder), - decoders: make(map[TypePtr]Decoder), - metadata: make(map[TypePtr]*TypeMetadata), - compiler: NewCompiler(), - nodeMeta: make(map[string]*Neo4jNodeMetadata), - relMeta: make(map[string]*RelationshipStructMeta), - } -} - -// RegisterTypes generates codecs for the given types at registration time. -// REGISTRATION PHASE: Uses heavy reflection, should only be called at startup. -// This does ALL extraction in one pass - codec compilation AND Neo4j metadata. -func (r *CodecRegistry) RegisterTypes(types ...any) { - for _, t := range types { - typ := reflect.TypeOf(t) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - continue - } - - typePtr := getTypePtr(typ) - typeName := typ.Name() - - // Build type metadata - metadata := r.buildMetadata(typ) - r.metadata[typePtr] = metadata - - // Store type for lookup - r.StoreTypeForLookup(typ, metadata) - - // Build encoder opcode sequence - op, err := r.compiler.Compile(typ) - if err != nil { - panic(fmt.Errorf("failed to compile encoder for %s: %w", typeName, err)) - } - r.encoders[typePtr] = &Encoder{opcodes: op} - - // Build decoder - dec, err := r.compiler.CompileDecoder(typ) - if err != nil { - panic(fmt.Errorf("failed to compile decoder for %s: %w", typeName, err)) - } - r.decoders[typePtr] = dec - - // Extract Neo4j-specific metadata based on type - // Check if type implements INode - if r.implementsINode(typ) || r.implementsINode(reflect.PointerTo(typ)) { - nodeMeta, err := r.extractNeo4jNodeMetaFromType(typ) - if err != nil { - panic(fmt.Errorf("failed to extract Neo4j node metadata for %s: %w", typeName, err)) - } - r.nodeMeta[typeName] = nodeMeta - } - - // Check if type implements IRelationship - if r.implementsIRelationship(typ) || r.implementsIRelationship(reflect.PointerTo(typ)) { - relMeta, err := r.extractRelationshipMetaFromType(typ) - if err != nil { - panic(fmt.Errorf("failed to extract relationship metadata for %s: %w", typeName, err)) - } - r.relMeta[typeName] = relMeta - } - } -} - -// buildMetadata extracts type metadata. -// REGISTRATION PHASE: Uses reflection, called only during RegisterTypes. -func (r *CodecRegistry) buildMetadata(typ reflect.Type) *TypeMetadata { - metadata := &TypeMetadata{ - Name: typ.Name(), - FieldsMap: make(map[string]string), - Labels: []string{}, - Relationships: make(map[string]*RelationshipMeta), - } - - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - fieldInfo := parseFieldInfo(field) - - if fieldInfo.IsSkip { - continue - } - - metadata.FieldsMap[field.Name] = fieldInfo.DBName - } - - return metadata -} - -// GetEncoder returns encoder for a value -// Note: This is a fast path that uses cached encoders. The cache key lookup -// uses getTypePtrFromValue which calls reflect.TypeOf(). This is acceptable -// because encoder lookup is only called once per Encode() operation, and the -// same type will typically be encoded multiple times (benefiting from caching). -func (r *CodecRegistry) GetEncoder(v any) *Encoder { - // First try the fast path with a reflection-free type pointer - // (getTypePtrFromValue uses reflect but is cached by encoder lookup) - typePtr := getTypePtrFromValue(v) - if enc, ok := r.encoders[typePtr]; ok { - return enc - } - - // Lazy compilation (Slow path) - we need reflection to compile anyway - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - op, err := r.compiler.Compile(typ) - if err != nil { - return nil - } - enc := &Encoder{opcodes: op} - r.encoders[typePtr] = enc - return enc -} - -// GetDecoder returns decoder for a type -// Note: Like GetEncoder, this uses reflection for lookup which is acceptable -// as it's only called once per Decode() operation and benefits from caching. -func (r *CodecRegistry) GetDecoder(v any) Decoder { - typePtr := getTypePtrFromValue(v) - if dec, ok := r.decoders[typePtr]; ok { - return dec - } - - // Lazy compilation (Slow path) - we need reflection to compile anyway - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - dec, err := r.compiler.CompileDecoder(typ) - if err != nil { - return nil - } - r.decoders[typePtr] = dec - return dec -} - -// Encode converts struct to map[string]any. -// HOT PATH: Zero reflection after initial lookup. -func (r *CodecRegistry) Encode(v any) (map[string]any, error) { - encoder := r.GetEncoder(v) - if encoder == nil { - return nil, ErrTypeNotRegistered - } - - structPtr := getValuePtr(v) - return EncodeStruct(encoder.opcodes, structPtr) -} - -// EncodeValue encodes any value using opcodes. -// HOT PATH: Zero reflection after initial lookup. -func (r *CodecRegistry) EncodeValue(v any) (any, error) { - encoder := r.GetEncoder(v) - if encoder == nil { - return nil, ErrTypeNotRegistered - } - - ptr := getValuePtr(v) - return EncodeAny(encoder.opcodes, ptr) -} - -// Decode converts map/Node to struct. -// HOT PATH: Zero reflection after initial lookup. -func (r *CodecRegistry) Decode(data any, v any) error { - decoder := r.GetDecoder(v) - if decoder == nil { - return ErrTypeNotRegistered - } - - structPtr := getValuePtr(v) - return decoder.Decode(data, structPtr) -} - -// DecodeMultiple decodes n values into a slice target. -// The slicePtr must be a pointer to a slice (e.g., *[]Person). -// This is used for batch decoding multiple records into a slice binding. -// HOT PATH: Uses pre-compiled decoders and allocators. -func (r *CodecRegistry) DecodeMultiple(values []any, slicePtr any) error { - n := len(values) - if n == 0 { - return nil - } - - decoder := r.GetDecoder(slicePtr) - if decoder == nil { - return ErrTypeNotRegistered - } - - // Get the slice decoder to access its allocator and element decoder - sliceDec, ok := decoder.(*sliceDecoder) - if !ok { - return fmt.Errorf("DecodeMultiple requires slice type, got decoder %T", decoder) - } - - // Allocate slice using pre-compiled allocator (ZERO reflection) - dataPtr, _, capacity := sliceDec.allocate(n) - - // Get the slice header from the target - targetPtr := getValuePtr(slicePtr) - header := (*sliceHeader)(targetPtr) - header.Data = dataPtr - header.Len = n - header.Cap = capacity - - // Decode each value into the slice elements - for i := 0; i < n; i++ { - if values[i] == nil { - continue // Leave as zero value - } - elemPtr := unsafe.Pointer(uintptr(dataPtr) + uintptr(i)*sliceDec.elemSize) - if err := sliceDec.elemDecoder.Decode(values[i], elemPtr); err != nil { - return fmt.Errorf("index %d: %w", i, err) - } - } - - return nil -} - -// GetTypeMetadata returns pre-computed type metadata. -// LOOKUP: Uses getTypePtrFromValue (reflect.TypeOf) for cache key. -func (r *CodecRegistry) GetTypeMetadata(v any) *TypeMetadata { - typePtr := getTypePtrFromValue(v) - return r.metadata[typePtr] -} - -// GetByTypeName returns type metadata by name -func (r *CodecRegistry) GetByTypeName(name string) *TypeMetadata { - for _, meta := range r.metadata { - if meta.Name == name { - return meta - } - } - return nil -} - -// Store type registry for type lookup -type typeRegistryEntry struct { - Type reflect.Type - Meta *TypeMetadata -} - -var registeredTypes = make(map[string]*typeRegistryEntry) - -func (r *CodecRegistry) StoreTypeForLookup(typ reflect.Type, meta *TypeMetadata) { - registeredTypes[meta.Name] = &typeRegistryEntry{ - Type: typ, - Meta: meta, - } -} - -func (r *CodecRegistry) GetTypeByNameLookup(name string) reflect.Type { - if entry, ok := registeredTypes[name]; ok { - return entry.Type - } - return nil -} - -// GetNodeMeta returns cached Neo4j node metadata by type name. -// Returns nil if the type was not registered or is not a node. -func (r *CodecRegistry) GetNodeMeta(name string) *Neo4jNodeMetadata { - return r.nodeMeta[name] -} - -// StoreNodeMeta stores Neo4j node metadata by type name. -// This is used for lazy registration when types are registered individually. -func (r *CodecRegistry) StoreNodeMeta(name string, meta *Neo4jNodeMetadata) { - r.nodeMeta[name] = meta -} - -// GetRelMeta returns cached relationship metadata by type name. -// Returns nil if the type was not registered or is not a relationship. -func (r *CodecRegistry) GetRelMeta(name string) *RelationshipStructMeta { - return r.relMeta[name] -} - -// StoreRelMeta stores relationship metadata by type name. -// This is used for lazy registration when types are registered individually. -func (r *CodecRegistry) StoreRelMeta(name string, meta *RelationshipStructMeta) { - r.relMeta[name] = meta -} - -var ( - ErrTypeNotRegistered = &CodecError{Message: "type not registered"} -) - -type CodecError struct { - Message string -} - -func (e *CodecError) Error() string { - return e.Message -} \ No newline at end of file diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/relationship_extractor.go b/example/vendor/github.com/rlch/neogo/internal/codec/relationship_extractor.go deleted file mode 100644 index b20844d..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/relationship_extractor.go +++ /dev/null @@ -1,159 +0,0 @@ -package codec - -import ( - "fmt" - "reflect" - "strings" -) - -// RelationshipStructMeta contains metadata extracted from a relationship struct -type RelationshipStructMeta struct { - Name string - Type string // Relationship type from db tag - StartNode *NodeFieldMeta - EndNode *NodeFieldMeta - Schema *SchemaMeta // Aggregated schema (indexes + constraints) - RType reflect.Type // Stored reflect.Type for delegation -} - -// ReflectType returns the reflect.Type for this relationship -func (m *RelationshipStructMeta) ReflectType() reflect.Type { - return m.RType -} - -// NodeFieldMeta contains metadata about a node field in a relationship -type NodeFieldMeta struct { - FieldName string - NodeType reflect.Type -} - -// ExtractRelationshipMeta extracts relationship metadata from a struct type. -// REGISTRATION PHASE: Uses heavy reflection, called only during type registration. -// Deprecated: Use extractRelationshipMetaFromType for new code. -func (r *CodecRegistry) ExtractRelationshipMeta(v any) (*RelationshipStructMeta, error) { - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - return r.extractRelationshipMetaFromType(typ) -} - -// extractRelationshipMetaFromType extracts relationship metadata from a reflect.Type. -// This is the internal method that does all the work, including schema aggregation. -// REGISTRATION PHASE: Uses heavy reflection, called only during type registration. -func (r *CodecRegistry) extractRelationshipMetaFromType(typ reflect.Type) (*RelationshipStructMeta, error) { - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected struct, got %s", typ.Kind()) - } - - meta := &RelationshipStructMeta{ - Name: typ.Name(), - RType: typ, - } - - // Collect field schema info for aggregation - var fieldSchemas []FieldSchemaInfo - - // Walk through struct fields to extract metadata - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - - // Parse field info for schema - fieldInfo := parseFieldInfo(field) - - // Parse neo4j tag - neo4jTag := field.Tag.Get("neo4j") - if neo4jTag == "" { - continue - } - - parts := strings.Split(neo4jTag, ",") - if len(parts) == 0 { - continue - } - - tagValue := strings.TrimSpace(parts[0]) - switch tagValue { - case "startNode": - if meta.StartNode != nil { - return nil, fmt.Errorf("relationship %s has multiple startNode fields", meta.Name) - } - nodeType := field.Type - if nodeType.Kind() != reflect.Ptr { - return nil, fmt.Errorf("expected pointer to struct for startNode field %s.%s", meta.Name, field.Name) - } - meta.StartNode = &NodeFieldMeta{ - FieldName: field.Name, - NodeType: nodeType, - } - - case "endNode": - if meta.EndNode != nil { - return nil, fmt.Errorf("relationship %s has multiple endNode fields", meta.Name) - } - nodeType := field.Type - if nodeType.Kind() != reflect.Ptr { - return nil, fmt.Errorf("expected pointer to struct for endNode field %s.%s", meta.Name, field.Name) - } - meta.EndNode = &NodeFieldMeta{ - FieldName: field.Name, - NodeType: nodeType, - } - - default: - // Only embedded Relationship struct's tag defines the relationship type - // Other fields with neo4j tags are property fields - if field.Anonymous && field.Type.Name() == "Relationship" { - if meta.Type != "" { - return nil, fmt.Errorf("relationship %s has multiple type definitions", meta.Name) - } - meta.Type = tagValue - } else if !field.Anonymous && !fieldInfo.IsSkip { - // Collect schema info for property fields - if fieldInfo.Index != nil || fieldInfo.Constraint != nil { - fieldSchemas = append(fieldSchemas, FieldSchemaInfo{ - DBName: fieldInfo.DBName, - Index: fieldInfo.Index, - Constraint: fieldInfo.Constraint, - }) - } - } - } - } - - // Validate required fields - only type is required, startNode/endNode are optional - if meta.Type == "" { - return nil, fmt.Errorf("relationship %s missing type definition in neo4j tag", meta.Name) - } - - // Aggregate schema using relationship type as label - meta.Schema = &SchemaMeta{ - TypeName: meta.Name, - RelType: meta.Type, - IsNode: false, - Indexes: AggregateIndexes(meta.Type, false, fieldSchemas), - Constraints: AggregateConstraints(meta.Type, false, fieldSchemas), - } - - return meta, nil -} - -// CreateNodeInstance creates a new instance of a node type for registration -// This is used to trigger node registration from relationship registration -func (r *CodecRegistry) CreateNodeInstance(nodeType reflect.Type) (any, error) { - if nodeType.Kind() != reflect.Ptr { - return nil, fmt.Errorf("expected pointer type, got %s", nodeType.Kind()) - } - - elemType := nodeType.Elem() - if elemType.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected pointer to struct, got pointer to %s", elemType.Kind()) - } - - // Create new instance - instance := reflect.New(elemType).Interface() - return instance, nil -} diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/schema.go b/example/vendor/github.com/rlch/neogo/internal/codec/schema.go deleted file mode 100644 index 2fd6b60..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/schema.go +++ /dev/null @@ -1,558 +0,0 @@ -package codec - -import ( - "fmt" - "sort" - "strconv" - "strings" -) - -// IndexType represents Neo4j index types -type IndexType string - -const ( - IndexTypeRange IndexType = "RANGE" - IndexTypeText IndexType = "TEXT" - IndexTypePoint IndexType = "POINT" - IndexTypeFulltext IndexType = "FULLTEXT" - IndexTypeVector IndexType = "VECTOR" -) - -// ConstraintType represents Neo4j constraint types -type ConstraintType string - -const ( - ConstraintTypeUnique ConstraintType = "UNIQUE" - ConstraintTypeNodeKey ConstraintType = "NODE_KEY" - ConstraintTypeNotNull ConstraintType = "NOT_NULL" -) - -// IndexSpec contains index specification parsed from a field tag -type IndexSpec struct { - Name string // Empty = auto-generate - Type IndexType // Default = RANGE - Priority int // For composite indexes (default 10) - Options map[string]string // Type-specific options (e.g., dimensions, similarity) -} - -// ConstraintSpec contains constraint specification parsed from a field tag -type ConstraintSpec struct { - Name string // Empty = auto-generate - Type ConstraintType // UNIQUE, NODE_KEY, NOT_NULL - Priority int // For composite constraints (e.g., nodeKey) -} - -// IndexDef represents a complete index definition (aggregated from fields) -type IndexDef struct { - Name string // Auto-generated or explicit - Type IndexType // RANGE, TEXT, POINT, FULLTEXT, VECTOR - Label string // Node label or relationship type - IsNode bool // true for node index, false for relationship index - Properties []IndexProperty // Ordered by priority - Options map[string]string // Type-specific options -} - -// IndexProperty represents a property within an index -type IndexProperty struct { - Name string // DB property name - Priority int // For composite index ordering -} - -// ConstraintDef represents a complete constraint definition (aggregated from fields) -type ConstraintDef struct { - Name string // Auto-generated or explicit - Type ConstraintType // UNIQUE, NODE_KEY, NOT_NULL - Label string // Node label or relationship type - IsNode bool // true for node constraint, false for relationship constraint - Properties []string // Property names (ordered by priority for composites) -} - -// SchemaMeta holds all schema metadata for a registered type -type SchemaMeta struct { - TypeName string // Go type name - Labels []string // Neo4j labels (for nodes) - RelType string // Relationship type (for relationships) - IsNode bool // true for node, false for relationship - Indexes []IndexDef // Aggregated indexes - Constraints []ConstraintDef // Aggregated constraints -} - -// parseIndexSpec parses index-related options from a tag option string. -// Formats supported: -// - "index" -> Range index, auto-name -// - "index:name" -> Range index with explicit name -// - "index:text" -> Text index, auto-name -// - "index:name:text" -> Text index with explicit name -// - "fulltext" -> Fulltext index, auto-name -// - "fulltext:name" -> Fulltext index with explicit name -// - "vector:1536" -> Vector index with dimensions -// - "vector:1536:cosine" -> Vector index with dimensions and similarity -// - "vector:name:1536:cosine" -> Vector index with name, dimensions, similarity -func parseIndexSpec(option string) *IndexSpec { - spec := &IndexSpec{ - Type: IndexTypeRange, - Priority: 10, // Default priority - Options: make(map[string]string), - } - - // Handle different index tag formats - switch { - case option == "index": - // Simple range index - return spec - - case strings.HasPrefix(option, "index:"): - parts := strings.Split(strings.TrimPrefix(option, "index:"), ":") - return parseIndexParts(spec, parts) - - case option == "fulltext": - spec.Type = IndexTypeFulltext - return spec - - case strings.HasPrefix(option, "fulltext:"): - spec.Type = IndexTypeFulltext - spec.Name = strings.TrimPrefix(option, "fulltext:") - return spec - - case strings.HasPrefix(option, "vector:"): - spec.Type = IndexTypeVector - parts := strings.Split(strings.TrimPrefix(option, "vector:"), ":") - return parseVectorParts(spec, parts) - - case strings.HasPrefix(option, "text:"): - spec.Type = IndexTypeText - spec.Name = strings.TrimPrefix(option, "text:") - return spec - - case option == "text": - spec.Type = IndexTypeText - return spec - - case strings.HasPrefix(option, "point:"): - spec.Type = IndexTypePoint - spec.Name = strings.TrimPrefix(option, "point:") - return spec - - case option == "point": - spec.Type = IndexTypePoint - return spec - } - - return nil -} - -// parseIndexParts handles index:name or index:name:type or index:type formats -func parseIndexParts(spec *IndexSpec, parts []string) *IndexSpec { - if len(parts) == 0 { - return spec - } - - // Check if first part is a type - if idxType := parseIndexType(parts[0]); idxType != "" { - spec.Type = idxType - if len(parts) > 1 { - spec.Name = parts[1] - } - return spec - } - - // First part is a name - spec.Name = parts[0] - if len(parts) > 1 { - if idxType := parseIndexType(parts[1]); idxType != "" { - spec.Type = idxType - } - } - - return spec -} - -// parseIndexType converts a string to IndexType if valid -func parseIndexType(s string) IndexType { - switch strings.ToLower(s) { - case "range": - return IndexTypeRange - case "text": - return IndexTypeText - case "point": - return IndexTypePoint - case "fulltext": - return IndexTypeFulltext - case "vector": - return IndexTypeVector - } - return "" -} - -// parseVectorParts handles vector:dims or vector:dims:similarity or vector:name:dims:similarity -func parseVectorParts(spec *IndexSpec, parts []string) *IndexSpec { - if len(parts) == 0 { - return spec - } - - // Try to parse first part as dimensions - if dims, err := strconv.Atoi(parts[0]); err == nil { - spec.Options["dimensions"] = strconv.Itoa(dims) - if len(parts) > 1 { - spec.Options["similarity"] = parts[1] - } - return spec - } - - // First part is a name - spec.Name = parts[0] - if len(parts) > 1 { - if dims, err := strconv.Atoi(parts[1]); err == nil { - spec.Options["dimensions"] = strconv.Itoa(dims) - } - } - if len(parts) > 2 { - spec.Options["similarity"] = parts[2] - } - - return spec -} - -// parseConstraintSpec parses constraint-related options from a tag option string. -// Formats supported: -// - "unique" -> Unique constraint, auto-name -// - "unique:name" -> Unique constraint with explicit name -// - "notNull" -> Not null constraint, auto-name -// - "notNull:name" -> Not null constraint with explicit name -// - "nodeKey:name" -> Node key constraint (must have name for composite) -func parseConstraintSpec(option string) *ConstraintSpec { - spec := &ConstraintSpec{ - Priority: 10, // Default priority - } - - switch { - case option == "unique": - spec.Type = ConstraintTypeUnique - return spec - - case strings.HasPrefix(option, "unique:"): - spec.Type = ConstraintTypeUnique - spec.Name = strings.TrimPrefix(option, "unique:") - return spec - - case option == "notNull" || option == "notnull" || option == "not_null": - spec.Type = ConstraintTypeNotNull - return spec - - case strings.HasPrefix(option, "notNull:") || strings.HasPrefix(option, "notnull:") || strings.HasPrefix(option, "not_null:"): - spec.Type = ConstraintTypeNotNull - // Handle all variants - for _, prefix := range []string{"notNull:", "notnull:", "not_null:"} { - if strings.HasPrefix(option, prefix) { - spec.Name = strings.TrimPrefix(option, prefix) - break - } - } - return spec - - case strings.HasPrefix(option, "nodeKey:") || strings.HasPrefix(option, "nodekey:") || strings.HasPrefix(option, "node_key:"): - spec.Type = ConstraintTypeNodeKey - // Handle all variants - for _, prefix := range []string{"nodeKey:", "nodekey:", "node_key:"} { - if strings.HasPrefix(option, prefix) { - spec.Name = strings.TrimPrefix(option, prefix) - break - } - } - return spec - } - - return nil -} - -// parsePriority extracts priority value from a "priority:N" option -func parsePriority(option string) (int, bool) { - if strings.HasPrefix(option, "priority:") { - if p, err := strconv.Atoi(strings.TrimPrefix(option, "priority:")); err == nil { - return p, true - } - } - return 0, false -} - -// GenerateIndexName generates an auto-name for an index -func GenerateIndexName(idxType IndexType, labelOrType string, properties []string) string { - propStr := strings.Join(properties, "_") - - switch idxType { - case IndexTypeRange: - return fmt.Sprintf("idx_%s_%s", labelOrType, propStr) - case IndexTypeText: - return fmt.Sprintf("text_%s_%s", labelOrType, propStr) - case IndexTypePoint: - return fmt.Sprintf("point_%s_%s", labelOrType, propStr) - case IndexTypeFulltext: - return fmt.Sprintf("fulltext_%s_%s", labelOrType, propStr) - case IndexTypeVector: - return fmt.Sprintf("vector_%s_%s", labelOrType, propStr) - default: - return fmt.Sprintf("idx_%s_%s", labelOrType, propStr) - } -} - -// GenerateConstraintName generates an auto-name for a constraint -func GenerateConstraintName(conType ConstraintType, labelOrType string, properties []string) string { - propStr := strings.Join(properties, "_") - - switch conType { - case ConstraintTypeUnique: - return fmt.Sprintf("unique_%s_%s", labelOrType, propStr) - case ConstraintTypeNotNull: - return fmt.Sprintf("notnull_%s_%s", labelOrType, propStr) - case ConstraintTypeNodeKey: - return fmt.Sprintf("nodekey_%s_%s", labelOrType, propStr) - default: - return fmt.Sprintf("constraint_%s_%s", labelOrType, propStr) - } -} - -// GenerateIndexCypher generates the CREATE INDEX Cypher statement -func (idx *IndexDef) GenerateIndexCypher() string { - if len(idx.Properties) == 0 { - return "" - } - - // Build property list - var props []string - for _, p := range idx.Properties { - if idx.IsNode { - props = append(props, fmt.Sprintf("n.%s", p.Name)) - } else { - props = append(props, fmt.Sprintf("r.%s", p.Name)) - } - } - - var pattern string - if idx.IsNode { - pattern = fmt.Sprintf("(n:%s)", idx.Label) - } else { - pattern = fmt.Sprintf("()-[r:%s]-()", idx.Label) - } - - switch idx.Type { - case IndexTypeRange: - return fmt.Sprintf("CREATE INDEX %s IF NOT EXISTS FOR %s ON (%s)", - idx.Name, pattern, strings.Join(props, ", ")) - - case IndexTypeText: - return fmt.Sprintf("CREATE TEXT INDEX %s IF NOT EXISTS FOR %s ON (%s)", - idx.Name, pattern, strings.Join(props, ", ")) - - case IndexTypePoint: - return fmt.Sprintf("CREATE POINT INDEX %s IF NOT EXISTS FOR %s ON (%s)", - idx.Name, pattern, strings.Join(props, ", ")) - - case IndexTypeFulltext: - // Fulltext uses different syntax: ON EACH [props] - var eachProps []string - for _, p := range idx.Properties { - if idx.IsNode { - eachProps = append(eachProps, fmt.Sprintf("n.%s", p.Name)) - } else { - eachProps = append(eachProps, fmt.Sprintf("r.%s", p.Name)) - } - } - return fmt.Sprintf("CREATE FULLTEXT INDEX %s IF NOT EXISTS FOR %s ON EACH [%s]", - idx.Name, pattern, strings.Join(eachProps, ", ")) - - case IndexTypeVector: - // Vector index requires OPTIONS - dims := idx.Options["dimensions"] - if dims == "" { - dims = "1536" // Default - } - similarity := idx.Options["similarity"] - if similarity == "" { - similarity = "cosine" // Default - } - return fmt.Sprintf("CREATE VECTOR INDEX %s IF NOT EXISTS FOR %s ON (%s) OPTIONS {indexConfig: {`vector.dimensions`: %s, `vector.similarity_function`: '%s'}}", - idx.Name, pattern, props[0], dims, similarity) - } - - return "" -} - -// GenerateConstraintCypher generates the CREATE CONSTRAINT Cypher statement -func (c *ConstraintDef) GenerateConstraintCypher() string { - if len(c.Properties) == 0 { - return "" - } - - var pattern string - var propRefs []string - - if c.IsNode { - pattern = fmt.Sprintf("(n:%s)", c.Label) - for _, p := range c.Properties { - propRefs = append(propRefs, fmt.Sprintf("n.%s", p)) - } - } else { - pattern = fmt.Sprintf("()-[r:%s]-()", c.Label) - for _, p := range c.Properties { - propRefs = append(propRefs, fmt.Sprintf("r.%s", p)) - } - } - - switch c.Type { - case ConstraintTypeUnique: - if len(c.Properties) == 1 { - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE %s IS UNIQUE", - c.Name, pattern, propRefs[0]) - } - // Composite unique - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE (%s) IS UNIQUE", - c.Name, pattern, strings.Join(propRefs, ", ")) - - case ConstraintTypeNotNull: - // NOT NULL is per-property, so generate one for each (though typically single) - if len(c.Properties) == 1 { - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE %s IS NOT NULL", - c.Name, pattern, propRefs[0]) - } - // Multiple properties - generate combined (requires all) - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE (%s) IS NOT NULL", - c.Name, pattern, strings.Join(propRefs, ", ")) - - case ConstraintTypeNodeKey: - // Node key is always wrapped in parentheses - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE (%s) IS NODE KEY", - c.Name, pattern, strings.Join(propRefs, ", ")) - } - - return "" -} - -// AggregateIndexes collects field-level index specs into complete IndexDefs. -// Groups by index name for composite indexes and sorts properties by priority. -func AggregateIndexes(labelOrType string, isNode bool, fields []FieldSchemaInfo) []IndexDef { - indexesByName := make(map[string]*IndexDef) - var indexOrder []string // Preserve insertion order - - for _, f := range fields { - if f.Index == nil { - continue - } - - spec := f.Index - name := spec.Name - if name == "" { - // Auto-generate name for non-composite indexes - name = GenerateIndexName(spec.Type, labelOrType, []string{f.DBName}) - } - - existing, found := indexesByName[name] - if !found { - existing = &IndexDef{ - Name: name, - Type: spec.Type, - Label: labelOrType, - IsNode: isNode, - Properties: []IndexProperty{}, - Options: spec.Options, - } - indexesByName[name] = existing - indexOrder = append(indexOrder, name) - } - - // Add property with priority - existing.Properties = append(existing.Properties, IndexProperty{ - Name: f.DBName, - Priority: spec.Priority, - }) - } - - // Sort properties by priority within each index - for _, idx := range indexesByName { - sort.Slice(idx.Properties, func(i, j int) bool { - return idx.Properties[i].Priority < idx.Properties[j].Priority - }) - } - - // Build result in insertion order - result := make([]IndexDef, 0, len(indexOrder)) - for _, name := range indexOrder { - result = append(result, *indexesByName[name]) - } - - return result -} - -// AggregateConstraints collects field-level constraint specs into complete ConstraintDefs. -// Groups by constraint name for composite constraints (like nodeKey) and sorts by priority. -func AggregateConstraints(labelOrType string, isNode bool, fields []FieldSchemaInfo) []ConstraintDef { - constraintsByName := make(map[string]*constraintBuilder) - var constraintOrder []string // Preserve insertion order - - for _, f := range fields { - if f.Constraint == nil { - continue - } - - spec := f.Constraint - name := spec.Name - if name == "" { - // Auto-generate name for non-composite constraints - name = GenerateConstraintName(spec.Type, labelOrType, []string{f.DBName}) - } - - existing, found := constraintsByName[name] - if !found { - existing = &constraintBuilder{ - def: ConstraintDef{ - Name: name, - Type: spec.Type, - Label: labelOrType, - IsNode: isNode, - }, - } - constraintsByName[name] = existing - constraintOrder = append(constraintOrder, name) - } - - // Add property with priority - existing.props = append(existing.props, propWithPriority{ - name: f.DBName, - priority: spec.Priority, - }) - } - - // Sort properties by priority and build result - result := make([]ConstraintDef, 0, len(constraintOrder)) - for _, name := range constraintOrder { - builder := constraintsByName[name] - sort.Slice(builder.props, func(i, j int) bool { - return builder.props[i].priority < builder.props[j].priority - }) - - // Extract property names in sorted order - for _, p := range builder.props { - builder.def.Properties = append(builder.def.Properties, p.name) - } - result = append(result, builder.def) - } - - return result -} - -// Helper types for aggregation -type constraintBuilder struct { - def ConstraintDef - props []propWithPriority -} - -type propWithPriority struct { - name string - priority int -} - -// FieldSchemaInfo is a minimal struct for aggregation input -type FieldSchemaInfo struct { - DBName string - Index *IndexSpec - Constraint *ConstraintSpec -} diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/tags.go b/example/vendor/github.com/rlch/neogo/internal/codec/tags.go deleted file mode 100644 index c8d60e1..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/tags.go +++ /dev/null @@ -1,179 +0,0 @@ -package codec - -import ( - "reflect" - "strings" -) - -// FieldInfo contains parsed information about a struct field -type FieldInfo struct { - Name string // Go field name - DBName string // Database field name (from neo4j tag or derived) - Meta FieldMeta // Pre-computed field metadata - Options []string // Additional options from neo4j tag - IsSkip bool // Field should be skipped (neo4j:"-") - IsCustom bool // Has custom codec - IsEmbed bool // Embedded struct - Codec string // Name of custom codec - - // Schema metadata - Index *IndexSpec // Index specification (nil if no index) - Constraint *ConstraintSpec // Constraint specification (nil if no constraint) -} - -// parseNeo4jTag parses a neo4j struct tag -// Format: `neo4j:"field_name,option1,option2:value,option3"` -// Returns field name and options -func parseNeo4jTag(tag string) (string, []string) { - if tag == "" { - return "", nil - } - - parts := strings.Split(tag, ",") - if len(parts) == 0 { - return "", nil - } - - fieldName := strings.TrimSpace(parts[0]) - if fieldName == "-" { - return "", []string{"skip"} - } - - var options []string - if len(parts) > 1 { - for _, part := range parts[1:] { - option := strings.TrimSpace(part) - if option != "" { - options = append(options, option) - } - } - } - - return fieldName, options -} - -// parseFieldInfo extracts field information from a reflect.StructField -func parseFieldInfo(field reflect.StructField) *FieldInfo { - info := &FieldInfo{ - Name: field.Name, - Meta: extractFieldMeta(field), - } - - // Skip One[R] and Many[R] relationship wrapper types - they're not serializable fields - fieldTypeName := field.Type.Name() - if strings.HasPrefix(fieldTypeName, "One[") || strings.HasPrefix(fieldTypeName, "Many[") { - info.IsSkip = true - return info - } - - // Parse neo4j tag - neo4jTag := field.Tag.Get("neo4j") - dbName, options := parseNeo4jTag(neo4jTag) - - // Skip relationship direction markers (shorthand syntax) - if strings.HasSuffix(dbName, ">") || strings.HasPrefix(dbName, "<") { - info.IsSkip = true - return info - } - if dbName == "->" || dbName == "<-" { - info.IsSkip = true - return info - } - - if dbName == "" { - // If no neo4j tag, use field name converted to snake_case - dbName = toSnakeCase(field.Name) - } - - info.DBName = dbName - info.Options = options - - // Process options - for _, option := range options { - switch { - case option == "skip": - info.IsSkip = true - case option == "embed": - info.IsEmbed = true - case strings.HasPrefix(option, "codec:"): - info.IsCustom = true - info.Codec = strings.TrimPrefix(option, "codec:") - - // Index options - case option == "index" || - strings.HasPrefix(option, "index:") || - option == "fulltext" || - strings.HasPrefix(option, "fulltext:") || - option == "text" || - strings.HasPrefix(option, "text:") || - option == "point" || - strings.HasPrefix(option, "point:") || - strings.HasPrefix(option, "vector:"): - info.Index = parseIndexSpec(option) - - // Constraint options - case option == "unique" || - strings.HasPrefix(option, "unique:") || - option == "notNull" || option == "notnull" || option == "not_null" || - strings.HasPrefix(option, "notNull:") || strings.HasPrefix(option, "notnull:") || strings.HasPrefix(option, "not_null:") || - strings.HasPrefix(option, "nodeKey:") || strings.HasPrefix(option, "nodekey:") || strings.HasPrefix(option, "node_key:"): - info.Constraint = parseConstraintSpec(option) - - // Priority (applies to both index and constraint) - case strings.HasPrefix(option, "priority:"): - if p, ok := parsePriority(option); ok { - if info.Index != nil { - info.Index.Priority = p - } - if info.Constraint != nil { - info.Constraint.Priority = p - } - } - } - } - - // Apply priority after all options are parsed (in case priority comes before index/constraint) - for _, option := range options { - if p, ok := parsePriority(option); ok { - if info.Index != nil { - info.Index.Priority = p - } - if info.Constraint != nil { - info.Constraint.Priority = p - } - } - } - - // Anonymous (embedded) struct fields should be treated as embedded - // even without explicit ",embed" tag. This handles cases like: - // type Human struct { BaseOrganism `neo4j:"Human"` } - // where the tag specifies a Neo4j label but the field is still embedded in Go. - if field.Anonymous && UnwindType(field.Type).Kind() == reflect.Struct { - info.IsEmbed = true - } - - return info -} - -// ParseFieldInfoExported is an exported version of parseFieldInfo for testing. -func ParseFieldInfoExported(field reflect.StructField) *FieldInfo { - return parseFieldInfo(field) -} - -// toSnakeCase converts CamelCase to snake_case -func toSnakeCase(s string) string { - var result strings.Builder - - for i, r := range s { - if i > 0 && (r >= 'A' && r <= 'Z') { - result.WriteByte('_') - } - if r >= 'A' && r <= 'Z' { - result.WriteRune(r - 'A' + 'a') - } else { - result.WriteRune(r) - } - } - - return result.String() -} diff --git a/example/vendor/github.com/rlch/neogo/internal/codec/typeptr.go b/example/vendor/github.com/rlch/neogo/internal/codec/typeptr.go deleted file mode 100644 index 75e54eb..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/codec/typeptr.go +++ /dev/null @@ -1,436 +0,0 @@ -package codec - -import ( - "reflect" - "unsafe" -) - -// sliceHeader represents the runtime structure of a slice -type sliceHeader struct { - Data unsafe.Pointer - Len int - Cap int -} - -// emptyInterface represents the internal structure of interface{} -type emptyInterface struct { - typ unsafe.Pointer - ptr unsafe.Pointer -} - -// TypePtr represents a unique identifier for a Go type -type TypePtr uintptr - -// getTypePtr extracts the type pointer from a reflect.Type -func getTypePtr(t reflect.Type) TypePtr { - return TypePtr(uintptr((*emptyInterface)(unsafe.Pointer(&t)).ptr)) -} - -// getTypePtrFromValue extracts the type pointer directly from a value by computing -// the reflect.Type and using getTypePtr for consistency. -// This ensures that RegisterTypes(T{}) and GetTypeMetadata(&T{}) use the same key. -// -// BUG FIX: Previously this used iface.typ directly, which is the pointer type when -// v is *T (e.g., &Company{}). Now we use reflect.TypeOf to get the actual type, -// then normalize via getTypePtr to match RegisterTypes behavior. -func getTypePtrFromValue(v any) TypePtr { - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - return getTypePtr(typ) -} - -// getValuePtr extracts the value pointer from interface{} -func getValuePtr(v any) unsafe.Pointer { - iface := (*emptyInterface)(unsafe.Pointer(&v)) - return iface.ptr -} - -// getInterfaceValue extracts the interface{} value directly from memory -// without using reflect.NewAt (zero reflection). -// This is used for OpFieldInterface encoding to avoid reflect overhead. -func getInterfaceValue(ptr unsafe.Pointer) any { - return *(*any)(ptr) -} - -// FieldMeta contains pre-computed field metadata (no reflect.Type needed) -type FieldMeta struct { - Offset uintptr // Memory offset in struct - Size uintptr // Field size in bytes - Kind Kind // Type kind - Type reflect.Type // Go type -} - -// Kind represents Go type kinds (avoiding reflect.Kind) -type Kind uint8 - -const ( - KindBool Kind = iota - KindInt - KindInt8 - KindInt16 - KindInt32 - KindInt64 - KindUint - KindUint8 - KindUint16 - KindUint32 - KindUint64 - KindFloat32 - KindFloat64 - KindString - KindBytes - KindSlice - KindMap - KindStruct - KindInterface - KindPtr -) - -// getKind converts reflect.Kind to our Kind -func getKind(rk reflect.Kind) Kind { - switch rk { - case reflect.Bool: - return KindBool - case reflect.Int: - return KindInt - case reflect.Int8: - return KindInt8 - case reflect.Int16: - return KindInt16 - case reflect.Int32: - return KindInt32 - case reflect.Int64: - return KindInt64 - case reflect.Uint: - return KindUint - case reflect.Uint8: - return KindUint8 - case reflect.Uint16: - return KindUint16 - case reflect.Uint32: - return KindUint32 - case reflect.Uint64: - return KindUint64 - case reflect.Float32: - return KindFloat32 - case reflect.Float64: - return KindFloat64 - case reflect.String: - return KindString - case reflect.Slice: - // Note: Special case for []byte is handled during compilation (compileSlice in compiler.go) - // For Kind extraction, we just return KindSlice - the element type check happens elsewhere - return KindSlice - case reflect.Map: - return KindMap - case reflect.Struct: - return KindStruct - case reflect.Interface: - return KindInterface - case reflect.Ptr: - return KindPtr - default: - return KindInterface - } -} - -// extractFieldMeta extracts field metadata from reflect.StructField -func extractFieldMeta(field reflect.StructField) FieldMeta { - return FieldMeta{ - Offset: field.Offset, - Size: field.Type.Size(), - Kind: getKind(field.Type.Kind()), - Type: field.Type, - } -} - -// Exported versions for testing -func GetTypePtr(t reflect.Type) TypePtr { - return getTypePtr(t) -} - -func GetTypePtrFromValue(v any) TypePtr { - return getTypePtrFromValue(v) -} - -func GetValuePtr(v any) unsafe.Pointer { - return getValuePtr(v) -} - -func GetInterfaceValue(ptr unsafe.Pointer) any { - return getInterfaceValue(ptr) -} - -func GetKind(rk reflect.Kind) Kind { - return getKind(rk) -} - -func ConvertToInt(value any) (int, bool) { - return convertToInt(value) -} - -func ConvertToInt8(value any) (int8, bool) { - return convertToInt8(value) -} - -func ConvertToInt16(value any) (int16, bool) { - return convertToInt16(value) -} - -func ConvertToInt32(value any) (int32, bool) { - return convertToInt32(value) -} - -func ConvertToInt64(value any) (int64, bool) { - return convertToInt64(value) -} - -func ConvertToUint(value any) (uint, bool) { - return convertToUint(value) -} - -func ConvertToUint8(value any) (uint8, bool) { - return convertToUint8(value) -} - -func ConvertToUint16(value any) (uint16, bool) { - return convertToUint16(value) -} - -func ConvertToUint32(value any) (uint32, bool) { - return convertToUint32(value) -} - -func ConvertToUint64(value any) (uint64, bool) { - return convertToUint64(value) -} - -func ConvertToFloat32(value any) (float32, bool) { - return convertToFloat32(value) -} - -func ConvertToFloat64(value any) (float64, bool) { - return convertToFloat64(value) -} - -func ExtractFieldMeta(field reflect.StructField) FieldMeta { - return extractFieldMeta(field) -} - - - -// TypeInfo contains pre-computed type information extracted at registration time -type TypeInfo struct { - Name string // Type name - Fields map[string]*FieldMeta // field name -> metadata - FieldsToProps map[string]string // Go field name -> Neo4j property name - Neo4jRelations map[string]*Neo4jRelation // field name -> neo4j relation info - IsNode bool - IsRelationship bool - IsAbstract bool - Labels []string // Node labels - RelType string // Relationship type -} - -// Neo4jRelation contains neo4j relationship information -type Neo4jRelation struct { - Type string // "startNode", "endNode", or relationship type - Direction string // "in", "out", or "" - IsMany bool // true for slice relationships - NodeType string // target node type name -} - -// Type conversion helpers (ZERO reflection) -func convertToInt(value any) (int, bool) { - switch v := value.(type) { - case int: - return v, true - case int64: - return int(v), true - case float64: - return int(v), true - default: - return 0, false - } -} - -func convertToInt8(value any) (int8, bool) { - switch v := value.(type) { - case int8: - return v, true - case int: - return int8(v), true - case int64: - return int8(v), true - case float64: - return int8(v), true - default: - return 0, false - } -} - -func convertToInt16(value any) (int16, bool) { - switch v := value.(type) { - case int16: - return v, true - case int: - return int16(v), true - case int64: - return int16(v), true - case float64: - return int16(v), true - default: - return 0, false - } -} - -func convertToInt32(value any) (int32, bool) { - switch v := value.(type) { - case int32: - return v, true - case int: - return int32(v), true - case int64: - return int32(v), true - case float64: - return int32(v), true - default: - return 0, false - } -} - -func convertToInt64(value any) (int64, bool) { - switch v := value.(type) { - case int64: - return v, true - case int: - return int64(v), true - case float64: - return int64(v), true - default: - return 0, false - } -} - -func convertToUint(value any) (uint, bool) { - switch v := value.(type) { - case uint: - return v, true - case uint64: - return uint(v), true - case int: - return uint(v), true - case int64: - return uint(v), true - case float64: - return uint(v), true - default: - return 0, false - } -} - -func convertToUint8(value any) (uint8, bool) { - switch v := value.(type) { - case uint8: - return v, true - case uint: - return uint8(v), true - case uint64: - return uint8(v), true - case int: - return uint8(v), true - case int64: - return uint8(v), true - case float64: - return uint8(v), true - default: - return 0, false - } -} - -func convertToUint16(value any) (uint16, bool) { - switch v := value.(type) { - case uint16: - return v, true - case uint: - return uint16(v), true - case uint64: - return uint16(v), true - case int: - return uint16(v), true - case int64: - return uint16(v), true - case float64: - return uint16(v), true - default: - return 0, false - } -} - -func convertToUint32(value any) (uint32, bool) { - switch v := value.(type) { - case uint32: - return v, true - case uint: - return uint32(v), true - case uint64: - return uint32(v), true - case int: - return uint32(v), true - case int64: - return uint32(v), true - case float64: - return uint32(v), true - default: - return 0, false - } -} - -func convertToUint64(value any) (uint64, bool) { - switch v := value.(type) { - case uint64: - return v, true - case uint: - return uint64(v), true - case int: - return uint64(v), true - case int64: - return uint64(v), true - case float64: - return uint64(v), true - default: - return 0, false - } -} - -func convertToFloat32(value any) (float32, bool) { - switch v := value.(type) { - case float32: - return v, true - case float64: - return float32(v), true - case int: - return float32(v), true - case int64: - return float32(v), true - default: - return 0, false - } -} - -func convertToFloat64(value any) (float64, bool) { - switch v := value.(type) { - case float64: - return v, true - case float32: - return float64(v), true - case int: - return float64(v), true - case int64: - return float64(v), true - default: - return 0, false - } -} \ No newline at end of file diff --git a/example/vendor/github.com/rlch/neogo/internal/cypher_client.go b/example/vendor/github.com/rlch/neogo/internal/cypher_client.go deleted file mode 100644 index 4325a24..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/cypher_client.go +++ /dev/null @@ -1,101 +0,0 @@ -package internal - -import ( - "fmt" - "regexp" - "strings" -) - -// CypherClient is the simplified query builder that only supports raw Cypher queries. -type CypherClient struct { - *Registry - query string - parameters map[string]any - bindings map[string]any - isWrite bool -} - -// NewCypherClient creates a new CypherClient. -func NewCypherClient(registry *Registry) *CypherClient { - return &CypherClient{ - Registry: registry, - parameters: make(map[string]any), - bindings: make(map[string]any), - } -} - -var isWriteRe = regexp.MustCompile(`\b(CREATE|MERGE|DELETE|SET|REMOVE|CALL\s+\w.*)\b`) - -// Cypher sets the Cypher query string. -func (c *CypherClient) Cypher(query string) *CypherRunner { - c.query = query - c.isWrite = isWriteRe.MatchString(strings.ToUpper(query)) - return &CypherRunner{client: c} -} - -// CypherRunner executes Cypher queries. -type CypherRunner struct { - client *CypherClient -} - -// CompiledCypher contains the compiled query ready for execution. -type CompiledCypher struct { - Cypher string - Parameters map[string]any - Bindings map[string]any - Plans map[string]*BindingPlan - IsWrite bool -} - -// Compile compiles the query with the given bindings. -// bindings should be pairs of (name string, target any). -func (r *CypherRunner) Compile(bindings ...any) (*CompiledCypher, error) { - return r.CompileWithParams(nil, bindings...) -} - -// CompileWithParams compiles the query with parameters and bindings. -func (r *CypherRunner) CompileWithParams(params map[string]any, bindings ...any) (*CompiledCypher, error) { - if len(bindings)%2 != 0 { - return nil, fmt.Errorf("bindings must be pairs of (name, target), got %d args", len(bindings)) - } - - // Parse bindings - bindingMap := make(map[string]any, len(bindings)/2) - for i := 0; i < len(bindings); i += 2 { - name, ok := bindings[i].(string) - if !ok { - return nil, fmt.Errorf("binding name at position %d must be a string, got %T", i, bindings[i]) - } - target := bindings[i+1] - bindingMap[name] = target - } - - // Merge params - parameters := make(map[string]any, len(r.client.parameters)+len(params)) - for k, v := range r.client.parameters { - parameters[k] = v - } - for k, v := range params { - parameters[k] = v - } - - cy := &CompiledCypher{ - Cypher: strings.TrimRight(r.client.query, "\n"), - Parameters: parameters, - Bindings: bindingMap, - IsWrite: r.client.isWrite, - } - - // Build binding plans for zero-reflection hot path - if len(bindingMap) > 0 { - cy.Plans = BuildBindingPlans(bindingMap, r.client.Codecs()) - } - - return cy, nil -} - -// Print prints the query to stdout. -func (r *CypherRunner) Print() *CypherRunner { - fmt.Println(r.client.query) - return r -} diff --git a/example/vendor/github.com/rlch/neogo/internal/entity.go b/example/vendor/github.com/rlch/neogo/internal/entity.go deleted file mode 100644 index 0d9ee85..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/entity.go +++ /dev/null @@ -1,126 +0,0 @@ -// Package internal provides core implementation types and utilities for neogo. -// This package contains the foundational types for nodes, relationships, and -// the Cypher query client used internally by the public API. -package internal - -import ( - "io" - - "github.com/oklog/ulid/v2" -) - -var defaultEntropySource io.Reader - -func init() { - // Seed the default entropy source. - defaultEntropySource = ulid.DefaultEntropy() -} - -type ( - INode interface { - IsNode() - GetID() string - } - IDSetter interface { - SetID(id any) - GenerateID() - } - Node struct { - ID string `neo4j:"id"` - } - - IAbstract interface { - INode - IsAbstract() - Implementers() []IAbstract - } - Abstract struct{} - IRelationship interface { - IsRelationship() - } - Relationship struct{} - Label struct{} - - // One represents a single relationship to another node or through a relationship struct. - // This is a zero-cost abstraction - the struct has zero size (0 bytes) and only carries - // type information at compile time for schema extraction and type-safe query building. - // - // Note: Place One/Many fields before other fields in your struct to avoid alignment padding. - // Go adds padding when zero-sized types are the last field in a struct. - // - // Usage with relationship struct: - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // BestRole One[ActedIn] `neo4j:"->"` - // } - // - // Usage with shorthand syntax (direct node reference with relationship type in tag): - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // BestFriend One[Person] `neo4j:"BEST_FRIEND>"` // Outgoing BEST_FRIEND - // Mentor One[Person] `neo4j:",required"` - One[R any] struct { - _ [0]R // Zero-sized phantom field for type information - } - - // Many represents multiple relationships to other nodes or through relationship structs. - // This is a zero-cost abstraction - the struct has zero size (0 bytes) and only carries - // type information at compile time for schema extraction and type-safe query building. - // - // Note: Place One/Many fields before other fields in your struct to avoid alignment padding. - // Go adds padding when zero-sized types are the last field in a struct. - // - // Usage with relationship struct: - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // ActedIn Many[ActedIn] `neo4j:"->"` - // } - // - // Usage with shorthand syntax (direct node reference with relationship type in tag): - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // Friends Many[Person] `neo4j:"FRIENDS>"` // Outgoing FRIENDS - // Followers Many[Person] `neo4j:",required"` - Many[R any] struct { - _ [0]R // Zero-sized phantom field for type information - } -) - -var ( - _ interface { - INode - IDSetter - } = (*Node)(nil) - _ IRelationship = (*Relationship)(nil) -) - -func (Node) IsNode() {} - -func (n Node) GetID() string { return n.ID } - -func (n *Node) SetID(id any) { - if s, ok := id.(string); ok { - n.ID = s - } -} - -func (n *Node) GenerateID() { - n.ID = ulid.MustNew(ulid.Now(), defaultEntropySource).String() -} - -func (*Abstract) IsAbstract() {} -func (Relationship) IsRelationship() {} diff --git a/example/vendor/github.com/rlch/neogo/internal/helpers.go b/example/vendor/github.com/rlch/neogo/internal/helpers.go deleted file mode 100644 index 6f067f0..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/helpers.go +++ /dev/null @@ -1,39 +0,0 @@ -package internal - -import ( - "fmt" - "reflect" -) - -func WalkStruct( - v reflect.Value, - visit func( - i int, - typ reflect.StructField, - val reflect.Value, - ) (recurseInto bool, err error), -) (recurseInto error) { - vt := v.Type() - for vt.Kind() == reflect.Ptr { - vt = vt.Elem() - v = v.Elem() - } - if vt.Kind() != reflect.Struct || v.Kind() != reflect.Struct { - return fmt.Errorf("expected struct, got %s", vt.Kind()) - } - for i := range vt.NumField() { - vtf := vt.Field(i) - vf := v.Field(i) - shouldRecurse, err := visit(i, vtf, vf) - if err != nil { - return err - } - if shouldRecurse && vf.Kind() == reflect.Struct { - if err := WalkStruct(vf, visit); err != nil { - return err - } - continue - } - } - return nil -} diff --git a/example/vendor/github.com/rlch/neogo/internal/labels.go b/example/vendor/github.com/rlch/neogo/internal/labels.go deleted file mode 100644 index 54d3810..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/labels.go +++ /dev/null @@ -1,77 +0,0 @@ -package internal - -import ( - "reflect" -) - -const Neo4jTag = "neo4j" - -func (r *Registry) instatiateInnerType(outer reflect.Type, to reflect.Type) any { - satisfied := false - for outer.Kind() == reflect.Ptr || outer.Kind() == reflect.Slice { - if outer.Implements(to) { - satisfied = true - break - } - outer = outer.Elem() - } - if !satisfied && !outer.Implements(to) { - return nil - } - var inner any - if outer.Kind() == reflect.Ptr { - inner = reflect.New(outer.Elem()).Interface() - } else { - inner = reflect.Zero(outer).Interface() - } - if inner == nil { - if registered := r.Get(outer); registered != nil { - inner = reflect.New(registered.Type()).Interface() - } - } - return inner -} - -func (r *Registry) ExtractNodeLabels(node any) []string { - if node == nil { - return nil - } - var ( - iNode INode - ok bool - ) - if iNode, ok = node.(INode); !ok { - n := r.instatiateInnerType(reflect.TypeOf(node), rINode) - if n == nil { - return nil - } - iNode = n.(INode) - } - reg := r.RegisterNode(iNode) - if reg == nil { - return nil - } - return reg.Labels() -} - -func (r *Registry) ExtractRelationshipType(rel any) string { - if rel == nil { - return "" - } - var ( - iRel IRelationship - ok bool - ) - if iRel, ok = rel.(IRelationship); !ok { - r := r.instatiateInnerType(reflect.TypeOf(rel), rIRelationship) - if r == nil { - return "" - } - iRel = r.(IRelationship) - } - n := r.RegisterRelationship(iRel) - if n == nil { - return "" - } - return n.Reltype -} diff --git a/example/vendor/github.com/rlch/neogo/internal/registry.go b/example/vendor/github.com/rlch/neogo/internal/registry.go deleted file mode 100644 index bfba7e7..0000000 --- a/example/vendor/github.com/rlch/neogo/internal/registry.go +++ /dev/null @@ -1,473 +0,0 @@ -package internal - -import ( - "fmt" - "reflect" - "strings" - - "github.com/rlch/neogo/internal/codec" -) - -type ( - Registry struct { - AbstractNodes []*RegisteredAbstractNode - Nodes []*RegisteredNode - Relationships []*RegisteredRelationship - registeredTypes map[string]RegisteredEntity - codecs *codec.CodecRegistry - } - RegisteredEntity interface { - Name() string - Type() reflect.Type - FieldsToProps() map[string]string - } - RegisteredAbstractNode struct { - *RegisteredNode - Implementers []*RegisteredNode - } - // RegisteredNode is a thin wrapper that delegates data access to CodecRegistry. - // It only stores relationship graph navigation locally. - RegisteredNode struct { - name string // Type name (used as key to CodecRegistry) - codecs *codec.CodecRegistry // Reference to codec registry for delegation - Relationships map[string]*RelationshipTarget // Relationship graph (owned by Registry) - } - RegisteredRelationship struct { - name string - typeName string // Store type name instead of reflect.Type - codecs *codec.CodecRegistry // Reference to codec registry for delegation - - Reltype string - StartNode NodeTarget - EndNode NodeTarget - } - NodeTarget struct { - Field string - *RegisteredNode - } - RelationshipTarget struct { - // Many will be true if there is a (one/many)-to-many relationship between the source and target node. - Many bool - // true = ->, false = <- - Dir bool - Rel *RegisteredRelationship - } -) - -func (r *RegisteredNode) Name() string { - return r.name -} - -// Type returns the reflect.Type for this node (delegated to CodecRegistry) -func (r *RegisteredNode) Type() reflect.Type { - if meta := r.codecs.GetNodeMeta(r.name); meta != nil { - return meta.Type() - } - return nil -} - -// ReflectType returns the reflect.Type (for compatibility) -func (r *RegisteredNode) ReflectType() any { - return r.Type() -} - -// FieldsToProps returns the Go field name -> DB property name mapping (delegated) -func (r *RegisteredNode) FieldsToProps() map[string]string { - if meta := r.codecs.GetNodeMeta(r.name); meta != nil { - return meta.FieldsToProps - } - return nil -} - -// Labels returns the Neo4j labels for this node (delegated to CodecRegistry) -func (r *RegisteredNode) Labels() []string { - if meta := r.codecs.GetNodeMeta(r.name); meta != nil { - return meta.Labels - } - return nil -} - -// Schema returns the schema metadata for this node (delegated to CodecRegistry) -func (r *RegisteredNode) Schema() *codec.SchemaMeta { - if meta := r.codecs.GetNodeMeta(r.name); meta != nil { - return meta.Schema - } - return nil -} - -func (r *RegisteredRelationship) Name() string { - return r.name -} - -// Type returns the reflect.Type for this relationship (delegated to CodecRegistry) -func (r *RegisteredRelationship) Type() reflect.Type { - if r.codecs == nil { - return nil - } - if meta := r.codecs.GetRelMeta(r.name); meta != nil { - return meta.ReflectType() - } - return nil -} - -// FieldsToProps returns the Go field name -> DB property name mapping -// For relationships, this is obtained from TypeMetadata in CodecRegistry -func (r *RegisteredRelationship) FieldsToProps() map[string]string { - if r.codecs == nil { - return nil - } - if meta := r.codecs.GetByTypeName(r.name); meta != nil { - return meta.FieldsMap - } - return nil -} - -// Schema returns the schema metadata for this relationship (delegated to CodecRegistry) -func (r *RegisteredRelationship) Schema() *codec.SchemaMeta { - if r.codecs == nil { - return nil - } - if meta := r.codecs.GetRelMeta(r.name); meta != nil { - return meta.Schema - } - return nil -} - -func (r RelationshipTarget) Target() *NodeTarget { - if r.Dir { - return &r.Rel.EndNode - } else { - return &r.Rel.StartNode - } -} - -var ( - rAbstract = reflect.TypeOf((*IAbstract)(nil)).Elem() - rINode = reflect.TypeOf((*INode)(nil)).Elem() - rIRelationship = reflect.TypeOf((*IRelationship)(nil)).Elem() -) - -func NewRegistry() *Registry { - return &Registry{ - AbstractNodes: []*RegisteredAbstractNode{}, - Nodes: []*RegisteredNode{}, - Relationships: []*RegisteredRelationship{}, - registeredTypes: make(map[string]RegisteredEntity), - codecs: codec.NewCodecRegistry(), - } -} - -func (r *Registry) RegisterTypes(types ...any) { - // IMPORTANT: Register types with codec registry FIRST - // This must happen before individual RegisterType calls - r.codecs.RegisterTypes(types...) - - // Then register with legacy registry - for _, t := range types { - r.RegisterType(t) - } -} - -// Codecs returns the codec registry for high-performance serialization -func (r *Registry) Codecs() *codec.CodecRegistry { - return r.codecs -} - -func (r *Registry) RegisterType(typ any) (registered any) { - if abs, ok := typ.(IAbstract); ok { - return r.RegisterAbstractNode(typ, abs) - } else if v, ok := typ.(INode); ok { - return r.RegisterNode(v) - } else if v, ok := typ.(IRelationship); ok { - return r.RegisterRelationship(v) - } - return -} - -func (r *Registry) RegisterNode(v INode) *RegisteredNode { - vv := codec.UnwindValue(reflect.ValueOf(v)) - vvt := vv.Type() - name := vvt.Name() - if n, ok := r.registeredTypes[name]; ok { - if reg, ok := n.(*RegisteredNode); ok { - return reg - } else { - return n.(*RegisteredAbstractNode).RegisteredNode - } - } - - // Get cached metadata from CodecRegistry (extracted during RegisterTypes) - nodeMeta := r.codecs.GetNodeMeta(name) - if nodeMeta == nil { - // Fallback: extract if not pre-cached (for lazy registration) - var err error - nodeMeta, err = r.codecs.ExtractNeo4jNodeMeta(v) - if err != nil { - panic(fmt.Errorf("failed to extract Neo4j metadata for %s: %w", name, err)) - } - // Store in codec registry for future lookups - r.codecs.StoreNodeMeta(name, nodeMeta) - } - - // Create thin wrapper - delegates data access to CodecRegistry - registered := &RegisteredNode{ - name: name, - codecs: r.codecs, - Relationships: make(map[string]*RelationshipTarget), - } - - r.Nodes = append(r.Nodes, registered) - r.registeredTypes[name] = registered - - // Convert Neo4j relationship targets to registry relationship targets - for fieldName, neoRel := range nodeMeta.Relationships { - var relReg *RegisteredRelationship - - // Create target instance and check its type - targetInstance, err := r.codecs.CreateNodeInstance(neoRel.NodeType) - if err != nil { - panic(fmt.Errorf("failed to create target instance: %w", err)) - } - - // Check if it's actually a relationship type (not a node) - if _, isRel := targetInstance.(IRelationship); isRel { - // This is a relationship - analyze its struct to find StartNode/EndNode - relTypeName := neoRel.NodeType.Elem().Name() - relReg = &RegisteredRelationship{ - name: relTypeName, - typeName: relTypeName, - codecs: r.codecs, - Reltype: neoRel.RelType, - } - - // Analyze the relationship struct to find StartNode/EndNode fields - relStruct := neoRel.NodeType.Elem() - for i := 0; i < relStruct.NumField(); i++ { - relField := relStruct.Field(i) - tag := relField.Tag.Get("neo4j") - - switch tag { - case "startNode": - // This field represents the start node - relReg.StartNode = NodeTarget{ - Field: relField.Name, - RegisteredNode: registered, // The current node being processed - } - case "endNode": - // This field represents the end node - relReg.EndNode = NodeTarget{ - Field: relField.Name, - RegisteredNode: registered, // The current node being processed - } - } - } - } else { - // It's a node - this is a shorthand relationship (no relationship struct) - targetNode, ok := targetInstance.(INode) - if !ok { - panic(fmt.Errorf("target %s does not implement INode or IRelationship", neoRel.NodeType)) - } - - targetReg := r.RegisterNode(targetNode) - - // Create relationship registration with empty name/typeName for shorthand - relReg = &RegisteredRelationship{ - name: "", // Empty for shorthand relationships - typeName: "", // Empty for shorthand relationships - codecs: r.codecs, - Reltype: neoRel.RelType, - } - if neoRel.Dir { - relReg.StartNode = NodeTarget{RegisteredNode: targetReg} - relReg.EndNode = NodeTarget{RegisteredNode: registered} - } else { - relReg.StartNode = NodeTarget{RegisteredNode: registered} - relReg.EndNode = NodeTarget{RegisteredNode: targetReg} - } - } - - // Note: Don't store relationships in registeredTypes map to avoid conflicts with node names - // Relationships are stored separately in r.Relationships slice - - registered.Relationships[fieldName] = &RelationshipTarget{ - Dir: neoRel.Dir, - Rel: relReg, - Many: neoRel.Many, - } - } - - if len(registered.Relationships) == 0 { - registered.Relationships = nil - } - - return registered -} - -func (r *Registry) RegisterAbstractNode(typ any, typAbs IAbstract) *RegisteredAbstractNode { - vv := codec.UnwindValue(reflect.ValueOf(typ)) - name := vv.Type().Name() - // There's a chance that the abstract node is registered as a concrete node, in which case we re-register - var node *RegisteredNode - if n, ok := r.registeredTypes[name]; ok { - if reg, ok := n.(*RegisteredNode); ok { - node = reg - } else { - return n.(*RegisteredAbstractNode) - } - } else { - node = r.RegisterNode(typ.(INode)) - } - registered := &RegisteredAbstractNode{ - RegisteredNode: node, - } - impls := typAbs.Implementers() - registered.Implementers = make([]*RegisteredNode, len(impls)) - for i, impl := range impls { - registered.Implementers[i] = r.RegisterNode(impl) - } - r.AbstractNodes = append(r.AbstractNodes, registered) - r.registeredTypes[name] = registered - return registered -} - -func (r *Registry) RegisterRelationship(v IRelationship) *RegisteredRelationship { - vv := codec.UnwindValue(reflect.ValueOf(v)) - name := vv.Type().Name() - - if existing, ok := r.registeredTypes[name]; ok { - return existing.(*RegisteredRelationship) - } - - // Get cached metadata from CodecRegistry (extracted during RegisterTypes) - relMeta := r.codecs.GetRelMeta(name) - if relMeta == nil { - // Fallback: extract if not pre-cached (for lazy registration) - var err error - relMeta, err = r.codecs.ExtractRelationshipMeta(v) - if err != nil { - panic(err) - } - // Store in codec registry for future lookups - r.codecs.StoreRelMeta(name, relMeta) - } - - registered := &RegisteredRelationship{ - name: name, - typeName: name, - codecs: r.codecs, - Reltype: relMeta.Type, - } - r.Relationships = append(r.Relationships, registered) - r.registeredTypes[name] = registered - - // Register start and end nodes (optional) - if relMeta.StartNode != nil { - startNodeInstance, err := r.codecs.CreateNodeInstance(relMeta.StartNode.NodeType) - if err != nil { - panic(fmt.Errorf("failed to create start node instance: %w", err)) - } - node, ok := startNodeInstance.(INode) - if !ok { - panic(fmt.Errorf("start node %s does not implement INode", relMeta.StartNode.NodeType)) - } - nodeReg := r.RegisterNode(node) - registered.StartNode = NodeTarget{ - Field: relMeta.StartNode.FieldName, - RegisteredNode: nodeReg, - } - } - - if relMeta.EndNode != nil { - endNodeInstance, err := r.codecs.CreateNodeInstance(relMeta.EndNode.NodeType) - if err != nil { - panic(fmt.Errorf("failed to create end node instance: %w", err)) - } - node, ok := endNodeInstance.(INode) - if !ok { - panic(fmt.Errorf("end node %s does not implement INode", relMeta.EndNode.NodeType)) - } - nodeReg := r.RegisterNode(node) - registered.EndNode = NodeTarget{ - Field: relMeta.EndNode.FieldName, - RegisteredNode: nodeReg, - } - } - - return registered -} - -func (r *Registry) Get(typ reflect.Type) (entity RegisteredEntity) { - if typ == nil { - return nil - } - name := codec.UnwindType(typ).Name() - if v, ok := r.registeredTypes[name]; ok { - return v - } - if typ.Implements(rAbstract) { - return r.registeredTypes["Base"+name] - } - return nil -} - -func (r *Registry) GetByName(name string) (entity RegisteredEntity) { - return r.registeredTypes[name] -} - -func (r *Registry) GetConcreteImplementation(nodeLabels []string) (*RegisteredNode, error) { - var ( - abstractNode *RegisteredAbstractNode - closestImpl *RegisteredNode - inheritanceCounter int - isNodeLabel = make(map[string]struct{}, len(nodeLabels)) - ) - for _, label := range nodeLabels { - isNodeLabel[label] = struct{}{} - } - // We find the abstract node (or exact implementation if registered) that has - // a inheritance chain closest to the database node we're extracting from. -Bases: - for _, base := range r.AbstractNodes { - labels := base.Labels() // Use delegation method - if len(labels) == 0 { - continue - } - currentInheritanceCounter := 0 - for _, label := range labels { - if _, ok := isNodeLabel[label]; !ok { - continue Bases - } - currentInheritanceCounter++ - } - if currentInheritanceCounter > inheritanceCounter { - abstractNode = base - inheritanceCounter = currentInheritanceCounter - } - } - if abstractNode == nil { - return nil, fmt.Errorf( - "no abstract node found for labels: %s\nDid you forget to register the base node using neogo.WithTypes(...)?", - strings.Join(nodeLabels, ", "), - ) - } - if inheritanceCounter == len(nodeLabels) { - return abstractNode.RegisteredNode, nil - } -Impls: - for _, nextImpl := range abstractNode.Implementers { - for _, label := range nextImpl.Labels() { // Use delegation method - if _, ok := isNodeLabel[label]; !ok { - continue Impls - } - } - closestImpl = nextImpl - break - } - if closestImpl == nil { - return nil, fmt.Errorf( - "no concrete implementation found for labels: %s\nDid you forget to register the base node using neogo.WithTypes(...)?", - strings.Join(nodeLabels, ", "), - ) - } - return closestImpl, nil -} diff --git a/example/vendor/github.com/rlch/neogo/layout.kdl b/example/vendor/github.com/rlch/neogo/layout.kdl deleted file mode 100644 index 198d35f..0000000 --- a/example/vendor/github.com/rlch/neogo/layout.kdl +++ /dev/null @@ -1,15 +0,0 @@ -layout { - pane size=1 borderless=true { - plugin location="zellij:tab-bar" - } - pane split_direction="vertical" { - pane name="neogo" focus=true size="60%" - pane name="test" command="gotestsum" { - args "./..." "-coverprofile=coverage.out" "-coverpkg=./..." "-short" - } - } - pane size=1 borderless=true { - plugin location="zellij:status-bar" - } -} - diff --git a/example/vendor/github.com/rlch/neogo/mock.go b/example/vendor/github.com/rlch/neogo/mock.go deleted file mode 100644 index 13a49c4..0000000 --- a/example/vendor/github.com/rlch/neogo/mock.go +++ /dev/null @@ -1,311 +0,0 @@ -package neogo - -import ( - "context" - "errors" - "net/url" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/rlch/neogo/internal" - "golang.org/x/sync/semaphore" -) - -// NewMock creates a mock neogo [Driver] for testing. -func NewMock() mockDriver { - m := &mockBindings{} - reg := internal.NewRegistry() - return &mockDriverImpl{ - mockBindings: m, - driver: &driver{ - db: &mockNeo4jDriverWithContext{ - mockBindings: m, - Registry: reg, - }, - reg: reg, - sessionSemaphore: semaphore.NewWeighted(100), - }, - } -} - -type ( - mockBindings struct { - Single map[string]any - Records []map[string]any - Next *mockBindings - } - mockDriver interface { - Driver - - Bind(record map[string]any) - BindRecords(records []map[string]any) - Clear() - } - mockDriverImpl struct { - *mockBindings - *driver - } - - mockNeo4jDriverWithContext struct { - *mockBindings - *internal.Registry - } - mockNeo4jSessionWithContext struct { - *mockNeo4jDriverWithContext - neo4j.SessionWithContext - } - mockNeo4jManagedTransaction struct { - *mockNeo4jSessionWithContext - neo4j.ManagedTransaction - } - mockNeo4jExplicitTransaction struct { - *mockNeo4jSessionWithContext - neo4j.ExplicitTransaction - committed bool - rolledBack bool - } - mockNeo4jResultWithContext struct { - neo4j.ResultWithContext - records []*neo4j.Record - cursor int - started bool - } -) - -var ( - _ mockDriver = (*mockDriverImpl)(nil) - _ neo4j.DriverWithContext = (*mockNeo4jDriverWithContext)(nil) - _ neo4j.SessionWithContext = (*mockNeo4jSessionWithContext)(nil) - _ neo4j.ManagedTransaction = (*mockNeo4jManagedTransaction)(nil) - _ neo4j.ExplicitTransaction = (*mockNeo4jExplicitTransaction)(nil) - _ neo4j.ResultWithContext = (*mockNeo4jResultWithContext)(nil) -) - -func (d *mockBindings) Bind(m map[string]any) { - b := d - for b.Next != nil { - b = b.Next - } - b.Single = m - b.Next = &mockBindings{} -} - -func (d *mockBindings) BindRecords(m []map[string]any) { - b := d - for b.Next != nil { - b = b.Next - } - b.Records = m - b.Next = &mockBindings{} -} - -func (d *mockBindings) Clear() { - d.Single = nil - d.Records = nil - d.Next = nil -} - -func (d *mockNeo4jDriverWithContext) ExecuteQueryBookmarkManager() neo4j.BookmarkManager { - panic(errors.New("not implemented")) -} - -func (d *mockNeo4jDriverWithContext) Target() url.URL { - panic(errors.New("not implemented")) -} - -func (d *mockNeo4jDriverWithContext) NewSession(ctx context.Context, config neo4j.SessionConfig) neo4j.SessionWithContext { - return &mockNeo4jSessionWithContext{mockNeo4jDriverWithContext: d} -} - -func (d *mockNeo4jDriverWithContext) VerifyConnectivity(ctx context.Context) error { - return nil -} - -func (d *mockNeo4jDriverWithContext) VerifyAuthentication(ctx context.Context, auth *neo4j.AuthToken) error { - return nil -} - -func (d *mockNeo4jDriverWithContext) Close(ctx context.Context) error { - return nil -} - -func (d *mockNeo4jDriverWithContext) IsEncrypted() bool { - panic(errors.New("not implemented")) -} - -func (d *mockNeo4jDriverWithContext) GetServerInfo(ctx context.Context) (neo4j.ServerInfo, error) { - panic(errors.New("not implemented")) -} - -func (s *mockNeo4jSessionWithContext) LastBookmarks() neo4j.Bookmarks { - return nil -} - -func (s *mockNeo4jSessionWithContext) BeginTransaction(ctx context.Context, configurers ...func(*neo4j.TransactionConfig)) (neo4j.ExplicitTransaction, error) { - return &mockNeo4jExplicitTransaction{mockNeo4jSessionWithContext: s}, nil -} - -func (s *mockNeo4jSessionWithContext) ExecuteRead(ctx context.Context, work neo4j.ManagedTransactionWork, configurers ...func(*neo4j.TransactionConfig)) (any, error) { - _, err := work(&mockNeo4jManagedTransaction{mockNeo4jSessionWithContext: s}) - return nil, err -} - -func (s *mockNeo4jSessionWithContext) ExecuteWrite(ctx context.Context, work neo4j.ManagedTransactionWork, configurers ...func(*neo4j.TransactionConfig)) (any, error) { - _, err := work(&mockNeo4jManagedTransaction{mockNeo4jSessionWithContext: s}) - return nil, err -} - -func (s *mockNeo4jSessionWithContext) Run(ctx context.Context, cypher string, params map[string]any, configurers ...func(*neo4j.TransactionConfig)) (neo4j.ResultWithContext, error) { - r := &mockNeo4jResultWithContext{} - toRecord := func(m map[string]any) (*neo4j.Record, error) { - n := len(m) - rec := &neo4j.Record{ - Keys: make([]string, n), - Values: make([]any, n), - } - var i int - for k, v := range m { - rec.Keys[i] = k - if _, ok := v.(internal.INode); ok { - meta, err := s.Codecs().ExtractNeo4jNodeMeta(v) - if err != nil { - return nil, err - } - props, err := s.Codecs().Encode(v) - if err != nil { - return nil, err - } - rec.Values[i] = neo4j.Node{ - Labels: meta.Labels, - Props: props, - } - } else if _, ok := v.(internal.IRelationship); ok { - meta, err := s.Codecs().ExtractRelationshipMeta(v) - if err != nil { - return nil, err - } - props, err := s.Codecs().Encode(v) - if err != nil { - return nil, err - } - rec.Values[i] = neo4j.Relationship{ - Type: meta.Type, - Props: props, - } - } else { - rec.Values[i] = v - } - i++ - } - return rec, nil - } - if s.Single == nil && s.Records == nil { - panic(errors.New("mock client used without bindings for all transactions")) - } - bindings := s.mockBindings - if bindings.Single != nil { - rec, err := toRecord(bindings.Single) - if err != nil { - return nil, err - } - r.records = []*neo4j.Record{rec} - } else if bindings.Records != nil { - r.records = make([]*neo4j.Record, len(bindings.Records)) - for i, recMap := range bindings.Records { - rec, err := toRecord(recMap) - if err != nil { - return nil, err - } - r.records[i] = rec - } - } - s.mockBindings = s.Next - return r, nil -} - -func (s *mockNeo4jSessionWithContext) Close(ctx context.Context) error { - return nil -} - -func (t *mockNeo4jManagedTransaction) Run(ctx context.Context, cypher string, params map[string]any) (neo4j.ResultWithContext, error) { - return t.mockNeo4jSessionWithContext.Run(ctx, cypher, params) -} - -func (r *mockNeo4jResultWithContext) Keys() ([]string, error) { - return r.records[r.cursor].Keys, nil -} - -func (r *mockNeo4jResultWithContext) NextRecord(ctx context.Context, record **neo4j.Record) bool { - if r.cursor < len(r.records) { - *record = r.records[r.cursor] - r.cursor++ - return true - } - return false -} - -func (r *mockNeo4jResultWithContext) Next(ctx context.Context) bool { - if r.cursor == 0 && !r.started { - r.started = true - } else { - r.cursor++ - } - return r.cursor < len(r.records) -} - -func (r *mockNeo4jResultWithContext) PeekRecord(ctx context.Context, record **neo4j.Record) bool { - if r.cursor+1 < len(r.records) { - *record = r.records[r.cursor+1] - return true - } - return false -} - -func (r *mockNeo4jResultWithContext) Peek(ctx context.Context) bool { - return r.cursor+1 < len(r.records) -} - -func (r *mockNeo4jResultWithContext) Err() error { - return nil -} - -func (r *mockNeo4jResultWithContext) Record() *neo4j.Record { - return r.records[r.cursor] -} - -func (r *mockNeo4jResultWithContext) Collect(ctx context.Context) ([]*neo4j.Record, error) { - if r.cursor+1 == len(r.records) { - return nil, nil - } - return r.records[r.cursor+1:], nil -} - -func (r *mockNeo4jResultWithContext) Single(ctx context.Context) (*neo4j.Record, error) { - return r.records[r.cursor], nil -} - -func (r *mockNeo4jResultWithContext) Consume(ctx context.Context) (neo4j.ResultSummary, error) { - panic(errors.New("not implemented")) -} - -func (r *mockNeo4jResultWithContext) IsOpen() bool { - return true -} - -// ExplicitTransaction implementation -func (t *mockNeo4jExplicitTransaction) Run(ctx context.Context, cypher string, params map[string]any) (neo4j.ResultWithContext, error) { - return t.mockNeo4jSessionWithContext.Run(ctx, cypher, params) -} - -func (t *mockNeo4jExplicitTransaction) Commit(ctx context.Context) error { - t.committed = true - return nil -} - -func (t *mockNeo4jExplicitTransaction) Rollback(ctx context.Context) error { - t.rolledBack = true - return nil -} - -func (t *mockNeo4jExplicitTransaction) Close(ctx context.Context) error { - return nil -} diff --git a/example/vendor/github.com/rlch/neogo/orm.md b/example/vendor/github.com/rlch/neogo/orm.md deleted file mode 100644 index b1d2c1a..0000000 --- a/example/vendor/github.com/rlch/neogo/orm.md +++ /dev/null @@ -1,551 +0,0 @@ -# neogo ORM Development Notes - -This document tracks design decisions and implementation plans for neogo's ORM features. - ---- - -## Implementation Progress - -### Phase 1: Tag Parsing ✅ COMPLETE -- [x] `IndexSpec` and `ConstraintSpec` types in `internal/codec/schema.go` -- [x] `IndexDef` and `ConstraintDef` types for aggregated definitions -- [x] `parseIndexSpec()` - parses index options from tags -- [x] `parseConstraintSpec()` - parses constraint options from tags -- [x] Updated `FieldInfo` with Index/Constraint fields -- [x] Updated `parseFieldInfo()` to process schema options -- [x] `AggregateIndexes()` - groups fields into composite indexes -- [x] `AggregateConstraints()` - groups fields into composite constraints -- [x] `GenerateIndexCypher()` - generates CREATE INDEX statements -- [x] `GenerateConstraintCypher()` - generates CREATE CONSTRAINT statements -- [x] Comprehensive tests for all parsing and generation - -### Phase 2: Registry Integration ✅ COMPLETE -- [x] `CodecRegistry` is single source of truth for all type data -- [x] `nodeMeta`/`relMeta` maps store Neo4j-specific metadata -- [x] `Neo4jNodeMetadata.Schema` field with aggregated indexes/constraints -- [x] `RelationshipStructMeta.Schema` field for relationship schema -- [x] Schema extracted during `RegisterTypes()` in one pass -- [x] Auto-add `unique_{Label}_id` constraint for nodes with ID field -- [x] `RegisteredNode`/`RegisteredRelationship` are thin wrappers with delegation -- [x] `Labels()`, `FieldsToProps()`, `Schema()`, `Type()` delegation methods - -### Phase 3: Schema Interface ✅ COMPLETE -- [x] Add `Schema` interface to Driver (`schema.go`) -- [x] Implement `GetIndexes()` - SHOW INDEXES introspection -- [x] Implement `GetConstraints()` - SHOW CONSTRAINTS introspection -- [x] Implement `AutoMigrate()` - additive schema migration (returns executed actions) -- [x] Implement `NeedsMigration()` - check if migration needed -- [x] `IndexInfo` and `ConstraintInfo` types for DB schema representation -- [x] `MigrationAction` type for pending/executed changes -- [x] Implementation in `schema_impl.go` - -### Phase 4: Testing ✅ COMPLETE -- [x] Unit tests for Phase 2 (Schema delegation) in `internal/registry_test.go`: - - [x] `TestRegisteredNodeSchema` - tests Schema() delegation for nodes - - [x] `TestRegisteredRelationshipSchema` - tests Schema() delegation for relationships - - [x] `TestRegisteredAbstractNodeSchema` - tests Schema() for abstract nodes - - [x] `TestSchemaWithNestedLabels` - tests schema with inheritance -- [x] Unit tests for Phase 3 (Migration logic) in `schema_test.go`: - - [x] `TestMigrationLogic_*` - comprehensive migration logic tests - - [x] `TestSchemaFromRegistry` - tests schema collection from registry - - [x] `TestMigrationActionTypes` - tests action type constants - - [x] `TestIndexInfo/TestConstraintInfo` - tests info types - - [x] `TestIndexTypeConstants/TestConstraintTypeConstants` - tests re-exported constants - - [x] Edge case tests: empty DB, partial migration, fully migrated, additive only, etc. -- [x] Integration tests with real Neo4j in `schema_integration_test.go`: - - [x] `TestSchemaIntegration_GetIndexes` - SHOW INDEXES parsing - - [x] `TestSchemaIntegration_GetConstraints` - SHOW CONSTRAINTS parsing - - [x] `TestSchemaIntegration_AutoMigrate` - CREATE INDEX/CONSTRAINT execution - - Basic node schema (unique, index, notNull) - - Fulltext indexes - - Composite indexes - - Node key constraints - - Relationship indexes/constraints - - Idempotency (running twice succeeds) - - [x] `TestSchemaIntegration_NeedsMigration` - migration detection - - [x] `TestSchemaIntegration_RoundTrip` - full migration cycle - - Uses testcontainers-go with Neo4j Enterprise for full feature coverage - ---- - -## Schema Management Design - -### Overview - -The biggest gap in neogo compared to GORM is schema management. This includes: -- Index definitions via struct tags -- Constraint definitions (unique, notNull, nodeKey) -- AutoMigrate() functionality -- Schema introspection (SHOW INDEXES, SHOW CONSTRAINTS) - -### Neo4j 5.x Schema Features - -#### Index Types - -| Type | Cypher Syntax | Use Case | -|------|--------------|----------| -| **Range** | `CREATE INDEX name FOR (n:Label) ON (n.prop)` | Default for equality/range queries | -| **Text** | `CREATE TEXT INDEX name FOR (n:Label) ON (n.prop)` | String prefix/suffix/contains | -| **Point** | `CREATE POINT INDEX name FOR (n:Label) ON (n.prop)` | Spatial/geographic queries | -| **Fulltext** | `CREATE FULLTEXT INDEX name FOR (n:Label) ON EACH [n.prop]` | Advanced text search | -| **Vector** | `CREATE VECTOR INDEX name FOR (n:Label) ON (n.embedding) OPTIONS {...}` | ML embeddings (5.11+) | - -**Notes:** -- Range, Text, Point support composite indexes (multiple properties) -- Fulltext uses `ON EACH [...]` syntax, supports multiple labels -- Vector requires `OPTIONS {vector.dimensions: N, vector.similarity_function: 'cosine'}` - -#### Constraint Types - -| Type | Cypher Syntax | Use Case | -|------|--------------|----------| -| **Unique** | `CREATE CONSTRAINT name FOR (n:Label) REQUIRE n.prop IS UNIQUE` | Unique property values | -| **Node Key** | `CREATE CONSTRAINT name FOR (n:Label) REQUIRE (n.prop1, n.prop2) IS NODE KEY` | Unique + Existence (composite) | -| **Not Null** | `CREATE CONSTRAINT name FOR (n:Label) REQUIRE n.prop IS NOT NULL` | Property existence | - -**Notes:** -- Node Key implies both uniqueness AND existence for all properties in the key -- Relationship constraints also exist for relationship properties - ---- - -### Tag Syntax Design - -#### Design Principles - -1. **Consistency**: Follow existing `neo4j` tag conventions -2. **Discoverability**: Simple tags for common cases, options for advanced -3. **Neo4j-native**: Map directly to Neo4j concepts (not SQL abstractions) -4. **Composable**: Support composite indexes via shared names - -#### Proposed Tag Format - -``` -neo4j:"fieldName[,option1[,option2[:value][,option3]]]" -``` - -#### Index Tags - -```go -type Person struct { - neogo.Node `neo4j:"Person"` - - // Simple range index (most common) - Email string `neo4j:"email,index"` - - // Named index - Username string `neo4j:"username,index:idx_person_username"` - - // Specific index type - Bio string `neo4j:"bio,index:text"` // Text index - Location Point `neo4j:"location,index:point"` // Point index - - // Fulltext index - Description string `neo4j:"description,fulltext"` - - // Vector index (for embeddings) - Embedding []float32 `neo4j:"embedding,vector:1536"` // 1536 dimensions - - // Composite index (shared name with priority) - FirstName string `neo4j:"first_name,index:idx_person_name,priority:1"` - LastName string `neo4j:"last_name,index:idx_person_name,priority:2"` -} -``` - -#### Constraint Tags - -```go -type Person struct { - neogo.Node `neo4j:"Person"` - - // Unique constraint - Email string `neo4j:"email,unique"` - - // Named unique constraint - SSN string `neo4j:"ssn,unique:uniq_person_ssn"` - - // Not null constraint - Name string `neo4j:"name,notNull"` - - // Node key (unique + not null, typically composite) - TenantID string `neo4j:"tenant_id,nodeKey:key_person_tenant"` - PersonID string `neo4j:"person_id,nodeKey:key_person_tenant"` - - // Combine constraints - Code string `neo4j:"code,unique,notNull"` -} -``` - -#### Full Example - -```go -type Movie struct { - neogo.Node `neo4j:"Movie"` - - // ID field (inherited from Node, already indexed by default?) - // Or explicit: ID string `neo4j:"id,unique"` - - // Unique title within a year (composite unique) - Title string `neo4j:"title,unique:uniq_movie_title_year,priority:1"` - Year int `neo4j:"year,unique:uniq_movie_title_year,priority:2,index"` - - // Full-text search on plot - Plot string `neo4j:"plot,fulltext:ft_movie_plot"` - - // Required fields - Director string `neo4j:"director,notNull,index"` - - // Vector embeddings for similarity search - PlotEmbedding []float32 `neo4j:"plot_embedding,vector:1536,similarity:cosine"` -} -``` - ---- - -### Internal Representation - -#### Schema Metadata Types - -```go -// IndexType represents Neo4j index types -type IndexType string - -const ( - IndexTypeRange IndexType = "RANGE" // Default - IndexTypeText IndexType = "TEXT" - IndexTypePoint IndexType = "POINT" - IndexTypeFulltext IndexType = "FULLTEXT" - IndexTypeVector IndexType = "VECTOR" -) - -// ConstraintType represents Neo4j constraint types -type ConstraintType string - -const ( - ConstraintTypeUnique ConstraintType = "UNIQUE" - ConstraintTypeNodeKey ConstraintType = "NODE_KEY" - ConstraintTypeNotNull ConstraintType = "NOT_NULL" -) - -// IndexDef represents an index definition parsed from tags -type IndexDef struct { - Name string // Auto-generated or explicit - Type IndexType // RANGE, TEXT, POINT, FULLTEXT, VECTOR - Label string // Node label (from struct) - Properties []IndexProperty // Ordered by priority - Options map[string]string // Type-specific options (dimensions, similarity, etc.) -} - -type IndexProperty struct { - Name string // DB property name - Priority int // For composite index ordering -} - -// ConstraintDef represents a constraint definition parsed from tags -type ConstraintDef struct { - Name string // Auto-generated or explicit - Type ConstraintType // UNIQUE, NODE_KEY, NOT_NULL - Label string // Node label - Properties []string // Property names (composite for NODE_KEY) -} - -// SchemaMeta holds all schema metadata for a registered type -type SchemaMeta struct { - TypeName string - Labels []string - Indexes []IndexDef - Constraints []ConstraintDef -} -``` - -#### Integration with Existing Code - -Current flow: -1. `parseNeo4jTag()` in `internal/codec/tags.go` → returns `(fieldName, []options)` -2. `parseFieldInfo()` → creates `FieldInfo` with processed options -3. `RegisterNode()` in `internal/registry.go` → stores in `RegisteredNode` - -New flow additions: -1. Extend `FieldInfo` with schema metadata: - ```go - type FieldInfo struct { - // ... existing fields ... - Index *IndexSpec // nil if no index - Constraint *ConstraintSpec // nil if no constraint - } - - type IndexSpec struct { - Name string // Empty = auto-generate - Type IndexType // Default = RANGE - Priority int // For composite (default 10) - Options map[string]string - } - - type ConstraintSpec struct { - Name string // Empty = auto-generate - Type ConstraintType - } - ``` - -2. Aggregate in `RegisteredNode`: - ```go - type RegisteredNode struct { - // ... existing fields ... - Schema *SchemaMeta // Aggregated indexes/constraints - } - ``` - -3. New `Schema` interface on Driver: - ```go - type Schema interface { - // Generate CREATE INDEX/CONSTRAINT statements - AutoMigrate(ctx context.Context, types ...any) error - - // Get current schema state - GetIndexes(ctx context.Context) ([]IndexInfo, error) - GetConstraints(ctx context.Context) ([]ConstraintInfo, error) - - // Check if migration needed - NeedsMigration(ctx context.Context) (bool, error) - } - ``` - ---- - -### GORM Lessons Learned - -Key insights from GORM's implementation: - -1. **Two-Level Parsing**: Base parser (`ParseTagSetting`) + type-specific parser (`parseFieldIndexes`) - -2. **Composite Index Merging**: Fields with same index name are aggregated, sorted by priority: - ```go - indexesByName[index.Name] = &Index{...} - idx.Fields = append(idx.Fields, ...) - sort.Slice(idx.Fields, func(i, j int) bool { - return idx.Fields[i].Priority < idx.Fields[j].Priority - }) - ``` - -3. **Naming Strategy**: Interface for customizable auto-naming: - ```go - type Namer interface { - IndexName(label, property string) string // "idx_person_email" - } - ``` - -4. **Settings Map**: Parse options into map, apply defaults: - ```go - settings := ParseTagSetting(tagSetting, ",") - priority, _ := strconv.Atoi(settings["PRIORITY"]) - if err != nil { priority = 10 } - ``` - ---- - -### Implementation Plan - -#### Phase 1: Tag Parsing (extends existing code) - -1. **Update `parseNeo4jTag()`** to recognize schema options: - - `index`, `index:name`, `index:type`, `index:name:type` - - `unique`, `unique:name` - - `notNull`, `notNull:name` - - `nodeKey:name` - - `fulltext`, `fulltext:name` - - `vector:dimensions`, `vector:dimensions:similarity` - - `priority:N` - -2. **Update `FieldInfo`** struct with `IndexSpec` and `ConstraintSpec` - -3. **Add schema aggregation** in `RegisterNode()` to build `SchemaMeta` - -#### Phase 2: Cypher Generation - -1. **Add `GenerateIndexCypher()`** method: - ```go - func (idx IndexDef) GenerateCypher() string { - // CREATE INDEX idx_person_email FOR (n:Person) ON (n.email) - // CREATE FULLTEXT INDEX ft_movie_plot FOR (n:Movie) ON EACH [n.plot] - // CREATE VECTOR INDEX vec_movie_embed FOR (n:Movie) ON (n.embedding) OPTIONS {...} - } - ``` - -2. **Add `GenerateConstraintCypher()`** method: - ```go - func (c ConstraintDef) GenerateCypher() string { - // CREATE CONSTRAINT uniq_person_email FOR (n:Person) REQUIRE n.email IS UNIQUE - // CREATE CONSTRAINT key_person_tenant FOR (n:Person) REQUIRE (n.tenant_id, n.person_id) IS NODE KEY - } - ``` - -#### Phase 3: Schema Interface - -1. **Add `Driver.Schema()`** method returning `Schema` interface - -2. **Implement `AutoMigrate()`**: - - Get current indexes/constraints from DB - - Generate missing ones - - Execute CREATE statements - -3. **Implement introspection**: - ```cypher - SHOW INDEXES YIELD name, type, labelsOrTypes, properties, options - SHOW CONSTRAINTS YIELD name, type, labelsOrTypes, properties - ``` - -#### Phase 4: Testing - -1. Unit tests for tag parsing -2. Integration tests for Cypher generation -3. Integration tests with Neo4j for AutoMigrate - ---- - -### Design Decisions - -1. **Auto-index on Node.ID?** ✅ YES - The base `Node` type's `ID` field automatically gets a unique constraint. - -2. **Relationship indexes?** ✅ YES - Support relationship property indexes: - ```go - type ActedIn struct { - neogo.Relationship `neo4j:"ACTED_IN"` - Role string `neo4j:"role,index"` // Index on relationship property - } - ``` - -3. **Drop behavior?** ❌ NO - AutoMigrate should NOT drop indexes/constraints not in code. It's additive-only for safety. Users can manually drop if needed. - -4. **Migration versioning?** Deferred - Not in initial implementation. Can add later if needed. - ---- - -### Naming Conventions - -#### Brainstorming - -**Option A: Verbose/Descriptive (GORM-style)** -``` -idx_person_email # index -idx_person_first_name_last_name # composite index -uniq_person_email # unique constraint -nn_person_name # not null -key_person_tenant_id_person_id # node key -ft_movie_plot # fulltext -vec_movie_embedding # vector -txt_person_bio # text index -pt_location_coords # point index -``` -- ✅ Clear what each is -- ✅ Matches GORM conventions -- ❌ Long names for composites -- ❌ Inconsistent prefixes (idx vs uniq vs nn vs key) - -**Option B: Type Prefix Consistency** -``` -idx_range_person_email -idx_text_person_bio -idx_point_location_coords -idx_fulltext_movie_plot -idx_vector_movie_embedding -con_unique_person_email -con_notnull_person_name -con_nodekey_person_tenant_id_person_id -``` -- ✅ Very explicit about type -- ✅ Consistent idx_/con_ prefix -- ❌ Very verbose -- ❌ Neo4j has 252 char limit but still ugly - -**Option C: Short Prefixes** -``` -i_person_email # range index (default) -it_person_bio # text index -ip_location_coords # point index -ift_movie_plot # fulltext index -iv_movie_embedding # vector index -cu_person_email # constraint unique -cn_person_name # constraint not null -ck_person_tenant_person # constraint node key -``` -- ✅ Short -- ❌ Cryptic, hard to remember -- ❌ `i_` vs `it_` confusing - -**Option D: Neo4j Native Style** -Neo4j's auto-generated names use patterns like: -- `constraint_unique_Person_email` -- `index_Person_email` - -Adapt to: -``` -neogo_idx_Person_email -neogo_idx_Person_firstName_lastName -neogo_unique_Person_email -neogo_notnull_Person_name -neogo_nodekey_Person_tenantId_personId -neogo_fulltext_Movie_plot -neogo_vector_Movie_embedding -neogo_text_Person_bio -neogo_point_Location_coords -``` -- ✅ Clear namespace (neogo_) -- ✅ Preserves case from Go (Person not person) -- ✅ Type is explicit -- ❌ Longer than Option A - -**Option E: Hybrid (RECOMMENDED)** -``` -# Indexes - prefix by type -idx_Person_email # range (default) -text_Person_bio # text -point_Location_coords # point -fulltext_Movie_plot # fulltext -vector_Movie_embedding # vector - -# Constraints - prefix by constraint type -unique_Person_email # unique -notnull_Person_name # not null -nodekey_Person_tenantId_personId # node key - -# Composite - join with underscore -idx_Person_firstName_lastName -unique_Movie_title_year -``` - -**Reasoning for Option E:** -1. **Index prefix reflects what it IS** - When you see `text_Person_bio` you know it's a text index -2. **Constraint prefix reflects what it DOES** - `unique_Person_email` clearly enforces uniqueness -3. **CamelCase labels** - Matches Neo4j convention (Person not person) -4. **snake_case properties** - Matches our DB naming convention -5. **Composites are obvious** - Multiple properties joined with underscore - -#### Final Convention (Option E) - -| Schema Type | Pattern | Example | -|-------------|---------|---------| -| Range Index | `idx_{Label}_{prop}` | `idx_Person_email` | -| Text Index | `text_{Label}_{prop}` | `text_Person_bio` | -| Point Index | `point_{Label}_{prop}` | `point_Location_coords` | -| Fulltext Index | `fulltext_{Label}_{prop}` | `fulltext_Movie_plot` | -| Vector Index | `vector_{Label}_{prop}` | `vector_Movie_embedding` | -| Unique Constraint | `unique_{Label}_{prop}` | `unique_Person_email` | -| Not Null Constraint | `notnull_{Label}_{prop}` | `notnull_Person_name` | -| Node Key Constraint | `nodekey_{Label}_{props}` | `nodekey_Person_tenant_id_person_id` | -| Rel Range Index | `idx_{RelType}_{prop}` | `idx_ACTED_IN_role` | -| Rel Unique Constraint | `unique_{RelType}_{prop}` | `unique_WORKED_AT_employee_id` | - -**Composite naming**: Properties joined with `_` in order of priority -- `idx_Person_first_name_last_name` (firstName priority:1, lastName priority:2) - -**Special case - Node.ID**: -- Auto-generated: `unique_{Label}_id` for each registered node type - ---- - -### References - -- Neo4j Indexes: https://neo4j.com/docs/cypher-manual/current/indexes/ -- Neo4j Constraints: https://neo4j.com/docs/cypher-manual/current/constraints/ -- GORM Schema: https://github.com/go-gorm/gorm/tree/master/schema -- ORM Feature Comparison: ./ORM_FEATURE_COMPARISON.md diff --git a/example/vendor/github.com/rlch/neogo/registry.go b/example/vendor/github.com/rlch/neogo/registry.go deleted file mode 100644 index 4555456..0000000 --- a/example/vendor/github.com/rlch/neogo/registry.go +++ /dev/null @@ -1,198 +0,0 @@ -package neogo - -import ( - "reflect" - - "github.com/rlch/neogo/internal" - "github.com/rlch/neogo/internal/codec" -) - -// Registry manages type registration and metadata for neogo models. -// It provides schema introspection capabilities for external tools like scaf. -type Registry struct { - internal *internal.Registry -} - -// NewRegistry creates a new empty registry. -func NewRegistry() *Registry { - return &Registry{ - internal: internal.NewRegistry(), - } -} - -// RegisterTypes registers multiple types with the registry. -// Types should be zero-value pointers (e.g., &Person{}, &Movie{}). -func (r *Registry) RegisterTypes(types ...any) { - r.internal.RegisterTypes(types...) -} - -// Nodes returns all registered node types. -func (r *Registry) Nodes() []*RegisteredNode { - nodes := r.internal.Nodes - result := make([]*RegisteredNode, len(nodes)) - for i, n := range nodes { - result[i] = &RegisteredNode{internal: n, codecs: r.internal.Codecs()} - } - return result -} - -// Relationships returns all registered relationship types. -func (r *Registry) Relationships() []*RegisteredRelationship { - rels := r.internal.Relationships - result := make([]*RegisteredRelationship, len(rels)) - for i, rel := range rels { - result[i] = &RegisteredRelationship{internal: rel} - } - return result -} - -// GetRelMeta returns relationship struct metadata by name. -// Returns nil if not found. -func (r *Registry) GetRelMeta(name string) *RelationshipMeta { - meta := r.internal.Codecs().GetRelMeta(name) - if meta == nil { - return nil - } - return &RelationshipMeta{internal: meta} -} - -// RegisteredNode represents a registered node type. -type RegisteredNode struct { - internal *internal.RegisteredNode - codecs *codec.CodecRegistry -} - -// Name returns the node type name (e.g., "Person"). -func (n *RegisteredNode) Name() string { - return n.internal.Name() -} - -// Type returns the reflect.Type for this node. -func (n *RegisteredNode) Type() reflect.Type { - return n.internal.Type() -} - -// FieldsToProps returns a map from Go field names to database property names. -func (n *RegisteredNode) FieldsToProps() map[string]string { - return n.internal.FieldsToProps() -} - -// Relationships returns the relationship targets for this node. -// The map key is the Go field name. -func (n *RegisteredNode) Relationships() map[string]*RelationshipTarget { - rels := n.internal.Relationships - if rels == nil { - return nil - } - result := make(map[string]*RelationshipTarget, len(rels)) - for fieldName, target := range rels { - result[fieldName] = &RelationshipTarget{internal: target} - } - return result -} - -// RegisteredRelationship represents a registered relationship type. -type RegisteredRelationship struct { - internal *internal.RegisteredRelationship -} - -// Name returns the relationship type name (e.g., "ActedIn"). -// Returns empty string for shorthand relationships. -func (r *RegisteredRelationship) Name() string { - return r.internal.Name() -} - -// Type returns the reflect.Type for this relationship. -func (r *RegisteredRelationship) Type() reflect.Type { - return r.internal.Type() -} - -// FieldsToProps returns a map from Go field names to database property names. -func (r *RegisteredRelationship) FieldsToProps() map[string]string { - return r.internal.FieldsToProps() -} - -// RelationshipTarget represents a relationship from a node to another entity. -type RelationshipTarget struct { - internal *internal.RelationshipTarget -} - -// Many returns true if this is a one-to-many relationship (Many[T]). -func (t *RelationshipTarget) Many() bool { - return t.internal.Many -} - -// Dir returns true for outgoing relationships (->), false for incoming (<-). -func (t *RelationshipTarget) Dir() bool { - return t.internal.Dir -} - -// RelType returns the database relationship type (e.g., "ACTED_IN"). -func (t *RelationshipTarget) RelType() string { - return t.internal.Rel.Reltype -} - -// RelName returns the relationship struct name, or empty string for shorthand relationships. -func (t *RelationshipTarget) RelName() string { - return t.internal.Rel.Name() -} - -// StartNode returns the start node target, or nil if not available. -func (t *RelationshipTarget) StartNode() *NodeTarget { - if t.internal.Rel.StartNode.RegisteredNode == nil { - return nil - } - return &NodeTarget{internal: &t.internal.Rel.StartNode} -} - -// EndNode returns the end node target, or nil if not available. -func (t *RelationshipTarget) EndNode() *NodeTarget { - if t.internal.Rel.EndNode.RegisteredNode == nil { - return nil - } - return &NodeTarget{internal: &t.internal.Rel.EndNode} -} - -// NodeTarget represents a node at one end of a relationship. -type NodeTarget struct { - internal *internal.NodeTarget -} - -// Name returns the node type name. -func (t *NodeTarget) Name() string { - if t.internal == nil || t.internal.RegisteredNode == nil { - return "" - } - return t.internal.Name() -} - -// RelationshipMeta contains metadata about a relationship struct. -type RelationshipMeta struct { - internal *codec.RelationshipStructMeta -} - -// StartNode returns metadata about the start node field, or nil if not defined. -func (m *RelationshipMeta) StartNode() *RelationshipNodeMeta { - if m.internal.StartNode == nil { - return nil - } - return &RelationshipNodeMeta{internal: m.internal.StartNode} -} - -// EndNode returns metadata about the end node field, or nil if not defined. -func (m *RelationshipMeta) EndNode() *RelationshipNodeMeta { - if m.internal.EndNode == nil { - return nil - } - return &RelationshipNodeMeta{internal: m.internal.EndNode} -} - -// RelationshipNodeMeta contains metadata about a node field in a relationship struct. -type RelationshipNodeMeta struct { - internal *codec.NodeFieldMeta -} - -// NodeType returns the reflect.Type of the node (pointer type, e.g., *Person). -func (m *RelationshipNodeMeta) NodeType() reflect.Type { - return m.internal.NodeType -} diff --git a/example/vendor/github.com/rlch/neogo/schema.go b/example/vendor/github.com/rlch/neogo/schema.go deleted file mode 100644 index d7e3def..0000000 --- a/example/vendor/github.com/rlch/neogo/schema.go +++ /dev/null @@ -1,88 +0,0 @@ -package neogo - -import ( - "context" - - "github.com/rlch/neogo/internal/codec" -) - -// Schema provides schema introspection and migration capabilities for Neo4j. -// It allows querying existing indexes/constraints and performing additive migrations. -type Schema interface { - // GetIndexes returns all indexes from the database. - // Excludes internal LOOKUP indexes used by Neo4j. - GetIndexes(ctx context.Context) ([]IndexInfo, error) - - // GetConstraints returns all constraints from the database. - GetConstraints(ctx context.Context) ([]ConstraintInfo, error) - - // AutoMigrate creates missing indexes and constraints for registered types. - // If no types are provided, migrates all registered types. - // It is ADDITIVE ONLY - it never drops existing schema elements. - // Returns the list of actions that were executed. - AutoMigrate(ctx context.Context, types ...any) ([]MigrationAction, error) - - // NeedsMigration checks if any registered types need schema migration. - // If no types are provided, checks all registered types. - // Returns true if migration is needed, along with the pending actions. - NeedsMigration(ctx context.Context, types ...any) (bool, []MigrationAction, error) -} - -// IndexInfo represents an index as returned by SHOW INDEXES. -type IndexInfo struct { - Name string // Index name - Type string // RANGE, TEXT, POINT, FULLTEXT, VECTOR, LOOKUP - EntityType string // NODE or RELATIONSHIP - LabelsOrTypes []string // Labels (for nodes) or types (for relationships) - Properties []string // Property names included in the index - State string // ONLINE, POPULATING, FAILED - Options map[string]any // Index-specific options (e.g., vector dimensions) -} - -// ConstraintInfo represents a constraint as returned by SHOW CONSTRAINTS. -type ConstraintInfo struct { - Name string // Constraint name - Type string // UNIQUENESS, NODE_KEY, NODE_PROPERTY_EXISTENCE, etc. - EntityType string // NODE or RELATIONSHIP - LabelsOrTypes []string // Labels (for nodes) or types (for relationships) - Properties []string // Property names included in the constraint -} - -// MigrationAction represents a pending or executed schema change. -type MigrationAction struct { - Type MigrationActionType // CREATE_INDEX or CREATE_CONSTRAINT - Name string // Schema element name - Cypher string // The Cypher statement to execute -} - -// MigrationActionType represents the type of migration action. -type MigrationActionType string - -const ( - // MigrationCreateIndex represents a CREATE INDEX action. - MigrationCreateIndex MigrationActionType = "CREATE_INDEX" - // MigrationCreateConstraint represents a CREATE CONSTRAINT action. - MigrationCreateConstraint MigrationActionType = "CREATE_CONSTRAINT" -) - -// IndexType re-exports codec.IndexType for external use. -type IndexType = codec.IndexType - -// Index type constants re-exported from codec. -const ( - IndexTypeRange = codec.IndexTypeRange - IndexTypeText = codec.IndexTypeText - IndexTypePoint = codec.IndexTypePoint - IndexTypeFulltext = codec.IndexTypeFulltext - IndexTypeVector = codec.IndexTypeVector -) - -// ConstraintType re-exports codec.ConstraintType for external use. -type ConstraintType = codec.ConstraintType - -// Constraint type constants re-exported from codec. -const ( - ConstraintTypeUnique = codec.ConstraintTypeUnique - ConstraintTypeNodeKey = codec.ConstraintTypeNodeKey - ConstraintTypeNotNull = codec.ConstraintTypeNotNull -) diff --git a/example/vendor/github.com/rlch/neogo/schema_impl.go b/example/vendor/github.com/rlch/neogo/schema_impl.go deleted file mode 100644 index 3d20f4b..0000000 --- a/example/vendor/github.com/rlch/neogo/schema_impl.go +++ /dev/null @@ -1,294 +0,0 @@ -package neogo - -import ( - "context" - "fmt" - "reflect" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - - "github.com/rlch/neogo/internal" - "github.com/rlch/neogo/internal/codec" -) - -// schemaImpl implements the Schema interface. -type schemaImpl struct { - db neo4j.DriverWithContext - registry *internal.Registry -} - -// newSchema creates a new Schema implementation. -func newSchema(db neo4j.DriverWithContext, registry *internal.Registry) Schema { - return &schemaImpl{ - db: db, - registry: registry, - } -} - -// GetIndexes returns all indexes from the database. -func (s *schemaImpl) GetIndexes(ctx context.Context) ([]IndexInfo, error) { - session := s.db.NewSession(ctx, neo4j.SessionConfig{AccessMode: neo4j.AccessModeRead}) - defer func() { _ = session.Close(ctx) }() - - result, err := session.Run(ctx, - `SHOW INDEXES YIELD name, type, entityType, labelsOrTypes, properties, state, options - WHERE type <> 'LOOKUP'`, - nil, - ) - if err != nil { - return nil, fmt.Errorf("failed to query indexes: %w", err) - } - - var indexes []IndexInfo - for result.Next(ctx) { - record := result.Record() - - name, _ := record.Get("name") - typ, _ := record.Get("type") - entityType, _ := record.Get("entityType") - labelsOrTypes, _ := record.Get("labelsOrTypes") - properties, _ := record.Get("properties") - state, _ := record.Get("state") - options, _ := record.Get("options") - - idx := IndexInfo{ - Name: asString(name), - Type: asString(typ), - EntityType: asString(entityType), - State: asString(state), - } - - if labels, ok := labelsOrTypes.([]any); ok { - idx.LabelsOrTypes = make([]string, len(labels)) - for i, l := range labels { - idx.LabelsOrTypes[i] = asString(l) - } - } - - if props, ok := properties.([]any); ok { - idx.Properties = make([]string, len(props)) - for i, p := range props { - idx.Properties[i] = asString(p) - } - } - - if opts, ok := options.(map[string]any); ok { - idx.Options = opts - } - - indexes = append(indexes, idx) - } - - if err := result.Err(); err != nil { - return nil, fmt.Errorf("error iterating indexes: %w", err) - } - - return indexes, nil -} - -// GetConstraints returns all constraints from the database. -func (s *schemaImpl) GetConstraints(ctx context.Context) ([]ConstraintInfo, error) { - session := s.db.NewSession(ctx, neo4j.SessionConfig{AccessMode: neo4j.AccessModeRead}) - defer func() { _ = session.Close(ctx) }() - - result, err := session.Run(ctx, - `SHOW CONSTRAINTS YIELD name, type, entityType, labelsOrTypes, properties`, - nil, - ) - if err != nil { - return nil, fmt.Errorf("failed to query constraints: %w", err) - } - - var constraints []ConstraintInfo - for result.Next(ctx) { - record := result.Record() - - name, _ := record.Get("name") - typ, _ := record.Get("type") - entityType, _ := record.Get("entityType") - labelsOrTypes, _ := record.Get("labelsOrTypes") - properties, _ := record.Get("properties") - - con := ConstraintInfo{ - Name: asString(name), - Type: asString(typ), - EntityType: asString(entityType), - } - - if labels, ok := labelsOrTypes.([]any); ok { - con.LabelsOrTypes = make([]string, len(labels)) - for i, l := range labels { - con.LabelsOrTypes[i] = asString(l) - } - } - - if props, ok := properties.([]any); ok { - con.Properties = make([]string, len(props)) - for i, p := range props { - con.Properties[i] = asString(p) - } - } - - constraints = append(constraints, con) - } - - if err := result.Err(); err != nil { - return nil, fmt.Errorf("error iterating constraints: %w", err) - } - - return constraints, nil -} - -// AutoMigrate creates missing indexes and constraints for registered types. -func (s *schemaImpl) AutoMigrate(ctx context.Context, types ...any) ([]MigrationAction, error) { - // Get pending actions - needsMigration, actions, err := s.NeedsMigration(ctx, types...) - if err != nil { - return nil, err - } - - if !needsMigration { - return nil, nil - } - - // Execute each action - session := s.db.NewSession(ctx, neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite}) - defer func() { _ = session.Close(ctx) }() - - var executed []MigrationAction - for _, action := range actions { - _, err := session.Run(ctx, action.Cypher, nil) - if err != nil { - return executed, fmt.Errorf("failed to execute %s for %s: %w", action.Type, action.Name, err) - } - executed = append(executed, action) - } - - return executed, nil -} - -// NeedsMigration checks if any registered types need schema migration. -func (s *schemaImpl) NeedsMigration(ctx context.Context, types ...any) (bool, []MigrationAction, error) { - // Get existing schema from database - existingIndexes, err := s.GetIndexes(ctx) - if err != nil { - return false, nil, fmt.Errorf("failed to get existing indexes: %w", err) - } - - existingConstraints, err := s.GetConstraints(ctx) - if err != nil { - return false, nil, fmt.Errorf("failed to get existing constraints: %w", err) - } - - // Build lookup maps by name - indexByName := make(map[string]struct{}, len(existingIndexes)) - for _, idx := range existingIndexes { - indexByName[idx.Name] = struct{}{} - } - - constraintByName := make(map[string]struct{}, len(existingConstraints)) - for _, con := range existingConstraints { - constraintByName[con.Name] = struct{}{} - } - - // Collect schemas to check - var schemas []*codec.SchemaMeta - - if len(types) == 0 { - // Check all registered types - for _, node := range s.registry.Nodes { - if schema := node.Schema(); schema != nil { - schemas = append(schemas, schema) - } - } - for _, rel := range s.registry.Relationships { - if schema := rel.Schema(); schema != nil { - schemas = append(schemas, schema) - } - } - } else { - // Check only specified types - for _, t := range types { - schema := s.getSchemaForType(t) - if schema != nil { - schemas = append(schemas, schema) - } - } - } - - // Find missing indexes and constraints - var actions []MigrationAction - - for _, schema := range schemas { - // Check indexes - for _, idx := range schema.Indexes { - if _, exists := indexByName[idx.Name]; !exists { - cypher := idx.GenerateIndexCypher() - if cypher != "" { - actions = append(actions, MigrationAction{ - Type: MigrationCreateIndex, - Name: idx.Name, - Cypher: cypher, - }) - } - } - } - - // Check constraints - for _, con := range schema.Constraints { - if _, exists := constraintByName[con.Name]; !exists { - cypher := con.GenerateConstraintCypher() - if cypher != "" { - actions = append(actions, MigrationAction{ - Type: MigrationCreateConstraint, - Name: con.Name, - Cypher: cypher, - }) - } - } - } - } - - return len(actions) > 0, actions, nil -} - -// getSchemaForType returns the schema for a given type instance. -func (s *schemaImpl) getSchemaForType(t any) *codec.SchemaMeta { - typ := reflect.TypeOf(t) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - entity := s.registry.Get(typ) - if entity == nil { - return nil - } - - // Try as node - if node, ok := entity.(*internal.RegisteredNode); ok { - return node.Schema() - } - - // Try as abstract node - if absNode, ok := entity.(*internal.RegisteredAbstractNode); ok { - return absNode.Schema() - } - - // Try as relationship - if rel, ok := entity.(*internal.RegisteredRelationship); ok { - return rel.Schema() - } - - return nil -} - -// asString safely converts any value to string. -func asString(v any) string { - if v == nil { - return "" - } - if s, ok := v.(string); ok { - return s - } - return fmt.Sprintf("%v", v) -} diff --git a/example/vendor/github.com/rlch/neogo/valuer.go b/example/vendor/github.com/rlch/neogo/valuer.go deleted file mode 100644 index f6f64de..0000000 --- a/example/vendor/github.com/rlch/neogo/valuer.go +++ /dev/null @@ -1,30 +0,0 @@ -package neogo - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/rlch/neogo/internal" -) - -// Valuer allows arbitrary types to be marshalled into and unmarshalled from -// Neo4J data types. This allows any type (as oppposed to stdlib types, [INode], -// [IAbstract], [IRelationship], and structs with neo4j tags) to be used with -// [neogo]. The valid Neo4J data types are defined by [neo4j.RecordValue]. -// -// For example, here we define a custom type MyString that marshals to and -// from a string, one of the types in the [neo4j.RecordValue] union: -// -// type MyString string -// -// var _ Valuer[string] = (*MyString)(nil) -// -// func (s MyString) Marshal() (*string, error) { -// return func(s string) *string { -// return &s -// }(string(s)), nil -// } -// -// func (s *MyString) Unmarshal(v *string) error { -// *s = MyString(*v) -// return nil -// } -type Valuer[V neo4j.RecordValue] internal.Valuer[V] diff --git a/example/vendor/github.com/rlch/scaf/.golangci.yml b/example/vendor/github.com/rlch/scaf/.golangci.yml deleted file mode 100644 index 18acfa9..0000000 --- a/example/vendor/github.com/rlch/scaf/.golangci.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: "2" - -run: - timeout: "1m" - go: "1.21" - -linters: - default: all - disable: - - depguard # We need participle - - gocognit # Table-driven tests are naturally complex - - cyclop # Same as above - - funlen # Test helpers can be long - - wsl # Deprecated - - exhaustruct # Not all fields need to be set - - gochecknoglobals # Parser globals are fine - - goconst # Test strings don't need constants - - gocyclo # Table-driven tests - - paralleltest # Not needed - - varnamelen # s, t, etc are fine - - wrapcheck # Not wrapping participle errors - - maintidx # Table-driven tests - - lll # Line length in tests is fine - - mnd # Magic numbers in tests are fine diff --git a/example/vendor/github.com/rlch/scaf/.scaf-type.schema.json b/example/vendor/github.com/rlch/scaf/.scaf-type.schema.json deleted file mode 100644 index 56d90e1..0000000 --- a/example/vendor/github.com/rlch/scaf/.scaf-type.schema.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://raw.githubusercontent.com/rlch/scaf/main/.scaf-type.schema.json", - "title": "Scaf Schema", - "description": "Schema definition for .scaf-schema.yaml files. Defines database models, fields, and relationships for scaf code generation and LSP support.", - "type": "object", - "properties": { - "models": { - "type": "object", - "description": "Map of model names to their definitions. Models represent database entities like nodes, relationships, or tables.", - "additionalProperties": { - "$ref": "#/definitions/model" - } - } - }, - "required": ["models"], - "additionalProperties": false, - "definitions": { - "model": { - "type": "object", - "description": "A database entity (node, relationship, table, etc.).", - "properties": { - "fields": { - "type": "object", - "description": "Properties/columns on this model.", - "additionalProperties": { - "$ref": "#/definitions/field" - } - }, - "relationships": { - "type": "object", - "description": "Edges from this model to other models. Only applicable for node-like models in graph databases.", - "additionalProperties": { - "$ref": "#/definitions/relationship" - } - } - }, - "additionalProperties": false - }, - "field": { - "type": "object", - "description": "A property/column on a model.", - "properties": { - "type": { - "type": "string", - "description": "The field's Go-style type. Supports primitives (string, int, bool, float64), slices ([]T), arrays ([N]T), pointers (*T), maps (map[K]V), and named types (pkg.Name).", - "examples": [ - "string", - "int", - "int64", - "float64", - "bool", - "[]string", - "[5]int", - "*int", - "map[string]int", - "time.Time", - "uuid.UUID" - ] - }, - "required": { - "type": "boolean", - "description": "Whether the field must have a value. Default is false.", - "default": false - }, - "unique": { - "type": "boolean", - "description": "Whether this field has a uniqueness constraint. When a query filters on a unique field with equality, it returns at most one row.", - "default": false - } - }, - "required": ["type"], - "additionalProperties": false - }, - "relationship": { - "type": "object", - "description": "An edge from one model to another.", - "properties": { - "rel_type": { - "type": "string", - "description": "The relationship type in the database (e.g., 'FRIENDS', 'ACTED_IN')." - }, - "target": { - "type": "string", - "description": "The target model name. For shorthand relationships: the target node (e.g., 'Person'). For relationship structs: the relationship model (e.g., 'ActedIn')." - }, - "many": { - "type": "boolean", - "description": "Whether this is a one-to-many relationship. true = Many[T], false = One[T].", - "default": false - }, - "direction": { - "type": "string", - "description": "The relationship direction.", - "enum": ["outgoing", "incoming"] - } - }, - "required": ["rel_type", "target", "direction"], - "additionalProperties": false - } - }, - "examples": [ - { - "models": { - "Person": { - "fields": { - "id": { - "type": "string", - "required": true, - "unique": true - }, - "name": { - "type": "string", - "required": true - }, - "born": { - "type": "int" - } - }, - "relationships": { - "ActedIn": { - "rel_type": "ACTED_IN", - "target": "Movie", - "many": true, - "direction": "outgoing" - } - } - }, - "Movie": { - "fields": { - "title": { - "type": "string", - "required": true - }, - "released": { - "type": "int" - } - } - } - } - } - ] -} diff --git a/example/vendor/github.com/rlch/scaf/.scaf.schema.json b/example/vendor/github.com/rlch/scaf/.scaf.schema.json deleted file mode 100644 index 02a8235..0000000 --- a/example/vendor/github.com/rlch/scaf/.scaf.schema.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://raw.githubusercontent.com/rlch/scaf/main/.scaf.schema.json", - "title": "Scaf Config", - "description": "Configuration file for scaf projects. Defines database connections and code generation settings.", - "type": "object", - "properties": { - "neo4j": { - "$ref": "#/definitions/neo4jConfig" - }, - "postgres": { - "$ref": "#/definitions/postgresConfig" - }, - "generate": { - "$ref": "#/definitions/generateConfig" - } - }, - "additionalProperties": false, - "definitions": { - "neo4jConfig": { - "type": "object", - "description": "Neo4j database connection settings.", - "properties": { - "uri": { - "type": "string", - "description": "Neo4j connection URI (e.g., 'bolt://localhost:7687', 'neo4j://localhost:7687').", - "examples": ["bolt://localhost:7687", "neo4j://localhost:7687", "neo4j+s://example.databases.neo4j.io"] - }, - "username": { - "type": "string", - "description": "Neo4j username for authentication." - }, - "password": { - "type": "string", - "description": "Neo4j password for authentication." - }, - "database": { - "type": "string", - "description": "Neo4j database name. Defaults to 'neo4j' if not specified." - } - }, - "required": ["uri"], - "additionalProperties": false - }, - "postgresConfig": { - "type": "object", - "description": "PostgreSQL database connection settings.", - "properties": { - "uri": { - "type": "string", - "description": "PostgreSQL connection string (e.g., 'postgres://user:pass@localhost:5432/dbname')." - }, - "host": { - "type": "string", - "description": "PostgreSQL host.", - "default": "localhost" - }, - "port": { - "type": "integer", - "description": "PostgreSQL port.", - "default": 5432 - }, - "database": { - "type": "string", - "description": "PostgreSQL database name." - }, - "user": { - "type": "string", - "description": "PostgreSQL username." - }, - "password": { - "type": "string", - "description": "PostgreSQL password." - }, - "sslmode": { - "type": "string", - "description": "PostgreSQL SSL mode.", - "enum": ["disable", "require", "verify-ca", "verify-full"], - "default": "disable" - } - }, - "additionalProperties": false - }, - "generateConfig": { - "type": "object", - "description": "Code generation settings.", - "properties": { - "lang": { - "type": "string", - "description": "Target programming language for code generation.", - "enum": ["go"], - "default": "go" - }, - "adapter": { - "type": "string", - "description": "Database adapter/ORM for generated code.", - "enum": ["neogo"], - "examples": ["neogo"] - }, - "out": { - "type": "string", - "description": "Output directory for generated files. Defaults to the same directory as the .scaf file." - }, - "package": { - "type": "string", - "description": "Go package name for generated code. Defaults to the output directory name." - }, - "schema": { - "type": "string", - "description": "Path to the schema YAML file (e.g., '.scaf-schema.yaml'). Provides type information for accurate code generation.", - "examples": [".scaf-schema.yaml"] - } - }, - "additionalProperties": false - } - }, - "examples": [ - { - "neo4j": { - "uri": "bolt://localhost:7687" - }, - "generate": { - "adapter": "neogo", - "schema": ".scaf-schema.yaml", - "package": "movies" - } - } - ] -} diff --git a/example/vendor/github.com/rlch/scaf/.scaf.yaml.example b/example/vendor/github.com/rlch/scaf/.scaf.yaml.example deleted file mode 100644 index b23a436..0000000 --- a/example/vendor/github.com/rlch/scaf/.scaf.yaml.example +++ /dev/null @@ -1,39 +0,0 @@ -# Example .scaf.yaml configuration file -# -# New style: Use database-specific config blocks. -# The database determines the dialect automatically. - -neo4j: - uri: bolt://localhost:7687 - username: neo4j - password: password - # database: neo4j # optional, for multi-database setups - -# Generation settings (optional) -generate: - # lang: go # default: go - # adapter: neogo # inferred from neo4j - # out: ./generated - # package: db - -# ============================================================================= -# Alternative: PostgreSQL -# ============================================================================= -# -# postgres: -# host: localhost -# port: 5432 -# database: mydb -# user: postgres -# password: password -# sslmode: disable - -# ============================================================================= -# Legacy style (deprecated, but still supported): -# ============================================================================= -# -# dialect: cypher -# connection: -# uri: bolt://localhost:7687 -# username: neo4j -# password: password diff --git a/example/vendor/github.com/rlch/scaf/AGENTS.md b/example/vendor/github.com/rlch/scaf/AGENTS.md deleted file mode 100644 index 4a826c5..0000000 --- a/example/vendor/github.com/rlch/scaf/AGENTS.md +++ /dev/null @@ -1,86 +0,0 @@ -# scaf - -Database test scaffolding DSL. Write declarative tests for database queries with inputs, expected outputs, and assertions. - -## DSL Syntax - -```scaf -import fixtures "./fixtures" - -query GetUser `MATCH (u:User {id: $userId}) RETURN u.name, u.age` - -setup fixtures // run module's setup clause -teardown `MATCH (n) DETACH DELETE n` - -GetUser { - setup fixtures.CreateUsers() // call query from module - - test "finds user" { - $userId: 1 // input param - u.name: "Alice" // expected output - assert { u.age > 18 } - } -} -``` - -### Setup Syntax - -- `setup fixtures` - run imported module's setup clause -- `setup fixtures.Query($arg: 1)` - call a query from imported module -- `setup `inline query`` - inline raw query -- `setup { fixtures; fixtures.Query() }` - block with multiple items - -## Project Structure - -``` -/ # Root package: parser, lexer, AST, config -├── cmd/scaf/ # CLI: fmt, test, generate commands -├── cmd/scaf-lsp/ # LSP server binary -├── runner/ # Test execution engine, TUI, result handling -├── lsp/ # LSP server: completion, diagnostics, hover, go-to-def -├── analysis/ # Semantic analysis, type schema, rules -├── module/ # Import resolution, module loading -├── language/ # Code generation interface -├── language/go/ # Go code generator -├── dialects/ # Query dialect implementations -├── dialects/cypher/ # Cypher (Neo4j) dialect + ANTLR grammar -├── databases/neo4j/ # Neo4j database adapter -├── adapters/neogo/ # neogo ORM adapter -├── schemas/ # JSON schemas for config -├── example/ # Example scaf files and tests -``` - -## Key Files - -- `ast.go` - AST node definitions (Suite, Query, Test, Assert, etc.) -- `parser.go` - Participle parser with error recovery -- `lexer.go` - Custom lexer (raw strings, comments, operators) -- `config.go` - `.scaf.yaml` config loading -- `runner/runner.go` - Test execution logic -- `lsp/server.go` - LSP server implementation - -## Commands - -```bash -scaf test [files...] # Run tests -scaf fmt [files...] # Format files -scaf generate [files...] # Generate code -``` - -## Config (`.scaf.yaml`) - -```yaml -dialect: cypher -database: neo4j -neo4j: - uri: bolt://localhost:7687 - user: neo4j - password: password -``` - -## Testing - -```bash -go test ./... # All tests -go test ./runner -run TestRunner # Runner tests -``` diff --git a/example/vendor/github.com/rlch/scaf/TEST_ENGINE.md b/example/vendor/github.com/rlch/scaf/TEST_ENGINE.md deleted file mode 100644 index ecf6075..0000000 --- a/example/vendor/github.com/rlch/scaf/TEST_ENGINE.md +++ /dev/null @@ -1,533 +0,0 @@ -# Scaf Test Engine Architecture - -## Research Summary - -### From gotestsum -- **Event-driven streaming**: Process test events as they arrive, not batched -- **EventHandler interface**: Pluggable sink for events (writes files, triggers formatters) -- **EventFormatter interface**: Pluggable presentation (dots, verbose, JSON, etc.) -- **Execution accumulator**: Mutable state that grows with each event, queryable by handlers -- **Separation of layers**: Execution → Parsing → Presentation - -### From Go's testing package -- **Hierarchical execution**: Tests → Subtests form a tree -- **Semaphore-based parallelism**: Simple slot system with `maxParallel` -- **Signal channels**: Parent/child coordination via channels -- **test2json format**: Streaming JSON events with Action, Package, Test, Elapsed, Output -- **LIFO cleanup**: Setup/teardown in reverse order - -## Scaf Test Hierarchy - -``` -Suite -├── Setup (global) -├── QueryScope (e.g., "GetUser") -│ ├── Setup (scope-level) -│ ├── Group "existing users" -│ │ ├── Setup (group-level) -│ │ ├── Test "finds Alice by id" -│ │ ├── Test "finds Bob by id" -│ │ └── Group "with posts" (nested) -│ │ └── Test "user has posts" -│ └── Group "edge cases" -│ └── Test "non-existent user" -└── QueryScope "CreatePost" - └── Test "creates a post" -``` - -Maps to execution path: `GetUser/existing users/finds Alice by id` - -## Core Design Decisions - -### 1. Event Model - -```go -type Action string - -const ( - ActionRun Action = "run" // Test/group starting - ActionPass Action = "pass" // Test passed - ActionFail Action = "fail" // Test failed - ActionSkip Action = "skip" // Test skipped - ActionError Action = "error" // Infrastructure error (db connection, etc.) - ActionOutput Action = "output" // Log/debug output - ActionSetup Action = "setup" // Setup block executing -) - -type Event struct { - Time time.Time - Action Action - Suite string // file path - Path []string // ["GetUser", "existing users", "finds Alice"] - Elapsed time.Duration - Output string // for ActionOutput - Error error // for ActionFail/ActionError - Expected any // for ActionFail - what we expected - Actual any // for ActionFail - what we got -} -``` - -### 2. Handler Interface - -```go -type Handler interface { - // Event is called for each test event as it happens - Event(ctx context.Context, event Event, result *Result) error - - // Err is called for non-test errors (stderr, infra issues) - Err(text string) error -} -``` - -### 3. Result Accumulator - -```go -type Result struct { - StartTime time.Time - EndTime time.Time - - Total int - Passed int - Failed int - Skipped int - Errors int - - // Indexed by path string: "GetUser/existing users/finds Alice" - Tests map[string]*TestResult - - // Ordered list for display - Order []string -} - -type TestResult struct { - Path []string - Status Action // pass, fail, skip, error - Elapsed time.Duration - Error error - Expected any - Actual any - Output []string // captured output -} -``` - -### 4. Formatter Interface - -```go -type Formatter interface { - // Format renders an event to output - Format(event Event, result *Result) error - - // Summary renders final results - Summary(result *Result) error -} -``` - -Built-in formatters: -- `dots` - minimal: `.` for pass, `F` for fail, `S` for skip -- `verbose` - full test names and output -- `json` - streaming JSON events (for tooling) -- `tui` - interactive Charm-based display (future) - -### 5. Runner Architecture - -```go -type Runner struct { - dialect Dialect - handler Handler - parallel int // max concurrent tests (default: 1 for DB sanity) -} - -func (r *Runner) Run(ctx context.Context, suite *Suite) (*Result, error) -``` - -**Execution flow:** -``` -1. Connect to database via Dialect -2. Execute global Setup -3. For each QueryScope: - a. Execute scope Setup - b. For each Test/Group (respecting parallel limit): - - Execute group Setup (inherited) - - Execute test Setup - - Build params from $variables - - Execute query via Dialect - - Compare results to expectations - - Execute assertions if present - - Emit pass/fail Event - - Run cleanup (reverse order) - c. Cleanup scope -4. Cleanup global -5. Return Result -``` - -### 6. Setup/Teardown Chain - -Each test inherits setup from all ancestors, executed in order: -``` -Suite.Setup → QueryScope.Setup → Group.Setup → Test.Setup -``` - -Teardown is implicit (transaction rollback) or explicit cleanup in reverse. - -**Transaction strategy** (configurable per dialect): -- Option A: Each test runs in a transaction that rolls back -- Option B: Truncate/reset between tests -- Option C: User-managed (no automatic cleanup) - -### 7. Parallel Execution - -Unlike `go test`, database tests are **sequential by default** because: -- Shared database state -- Transaction isolation complexity -- Connection pool limits - -Future: Allow `parallel` directive in groups that are explicitly isolated. - -```go -type testState struct { - running int - maxParallel int - queue chan *testContext - results chan Event -} -``` - -### 8. Error Handling - -| Error Type | Action | Behavior | -|------------|--------|----------| -| Query syntax error | `error` | Stop test, report, continue suite | -| Connection lost | `error` | Stop suite, report | -| Assertion mismatch | `fail` | Report expected vs actual, continue | -| Setup failure | `error` | Skip dependent tests | -| Timeout | `error` | Cancel test, report | - -### 9. Output Capture - -During test execution, capture: -- Query being executed (with params) -- Raw database response -- Diff between expected and actual - -```go -type testContext struct { - output *bytes.Buffer - // Write query info, responses here - // Flushed to Event.Output on completion -} -``` - -## Dialect vs Adapter - -**Important distinction:** - -### Dialect (scaf's domain) -- Powers the **test runner** -- Executes raw queries with parameters -- Returns results as `[]map[string]any` for simple value comparisons -- Provides transaction support for test isolation (rollback after each test) -- No struct mapping, no ORM features - just raw execution - -### Adapter (user's application domain) -- Powers the **user's actual application code** -- ORM features, struct mapping, fluent query builders -- Examples: neogo (Neo4j ORM), gorm (SQL ORM), raw neo4j-go-driver -- **Not scaf's concern** - users choose their own adapter for production code - -The dialect is intentionally simple because tests just need to: -1. Execute setup queries -2. Run the query under test with parameters -3. Compare returned values against expectations - -``` -┌─────────────────────────────────────────────────────────────┐ -│ User's Application │ -├─────────────────────────────────────────────────────────────┤ -│ adapters/neogo/ adapters/gorm/ │ -│ - Struct mapping, ORM features │ -│ - Fluent query builders │ -│ - Associated with a dialect │ -├─────────────────────────────────────────────────────────────┤ -│ Database Driver (neo4j-go-driver, pgx, etc.) │ -└─────────────────────────────────────────────────────────────┘ - -┌─────────────────────────────────────────────────────────────┐ -│ scaf Test Runner │ -├─────────────────────────────────────────────────────────────┤ -│ dialects/cypher/ dialects/sql/ │ -│ - Raw query execution │ -│ - Returns []map[string]any │ -│ - Transaction support for test isolation │ -├─────────────────────────────────────────────────────────────┤ -│ Database Driver (neo4j-go-driver, pgx, etc.) │ -└─────────────────────────────────────────────────────────────┘ - -Adapter ←──────── associated with ────────→ Dialect -neogo cypher -gorm sql -``` - -## File Structure - -``` -scaf/ -├── runner/ -│ ├── runner.go # Runner struct, main Run() loop -│ ├── event.go # Event, Action types -│ ├── result.go # Result, TestResult accumulators -│ ├── handler.go # Handler interface + multiplexer -│ ├── format.go # Formatter interface + implementations (dots, verbose, json) -│ └── errors.go # Sentinel errors -├── dialect.go # Dialect interface -├── dialects/ -│ └── cypher/ # Cypher dialect (uses neo4j-go-driver) -├── adapters/ -│ └── neogo/ # neogo adapter (associated with cypher dialect) -└── cmd/scaf/ - ├── main.go - ├── fmt.go # exists - └── test.go # NEW: test command -``` - -## CLI Interface - -```bash -# Run all tests in current directory -scaf test - -# Run specific file -scaf test ./queries/user.scaf - -# Run with specific dialect (override config) -scaf test --dialect=neo4j - -# Output formats -scaf test --format=dots # default -scaf test --format=verbose -scaf test --format=json - -# Parallel execution (when safe) -scaf test --parallel=4 - -# Filter by path pattern -scaf test --run="GetUser/existing" - -# Fail fast -scaf test --fail-fast -``` - -## Phase 1 Implementation Plan - -1. **Event model** (`runner/event.go`) -2. **Result accumulator** (`runner/result.go`) -3. **Handler interface + basic impl** (`runner/handler.go`) -4. **Dots formatter** (`format/dots.go`) -5. **Runner skeleton** (`runner/runner.go`) -6. **Test command** (`cmd/scaf/test.go`) - -Phase 2: Actual execution against dialect -Phase 3: TUI formatter -Phase 4: Parallel execution - -## Execution DAG - -The test tree needs to be compiled into an execution plan that handles: -1. Setup dependency chains -2. Parallel execution (when safe) -3. Failure propagation (skip dependents) -4. Cleanup ordering - -### Node Types - -```go -type NodeKind int - -const ( - NodeSetup NodeKind = iota // Setup block (global, scope, group, test) - NodeTest // Actual test execution - NodeCleanup // Implicit or explicit teardown -) - -type Node struct { - ID string // Unique identifier - Kind NodeKind - Path []string // Location in tree - Query string // For setup/test: the query to run - Deps []string // Node IDs this depends on - Parallel bool // Can run concurrently with siblings -} -``` - -### DAG Construction - -From the AST: -``` -Suite -├── Setup (S0) -└── QueryScope "GetUser" - ├── Setup (S1) - ├── Group "existing users" - │ ├── Setup (S2) - │ ├── Test "finds Alice" (T1) - │ └── Test "finds Bob" (T2) - └── Test "direct test" (T3) -``` - -Produces this DAG: -``` -S0 ──┬──→ S1 ──┬──→ S2 ──┬──→ T1 - │ │ └──→ T2 - │ └──→ T3 - │ - └──→ [other scopes...] -``` - -Dependencies: -- `S1` depends on `S0` -- `S2` depends on `S1` -- `T1` depends on `S2` -- `T2` depends on `S2` -- `T3` depends on `S1` (not S2 - different branch) - -### Execution Modes - -**Sequential (default):** -``` -S0 → S1 → S2 → T1 → T2 → T3 -``` -Simple topological sort, one at a time. - -**Parallel within groups:** -``` -S0 → S1 → S2 → [T1, T2] → T3 - ↘ ↗ -``` -Tests at same level can run concurrently if: -- Marked with `parallel` directive (future) -- Using transaction isolation (each test in own tx) - -### Failure Propagation - -If a setup fails, all dependent nodes are skipped: -``` -S0 → S1 → S2(FAIL) → T1(SKIP) → T2(SKIP) - ↓ - T3(RUN) ← still runs, doesn't depend on S2 -``` - -### Execution Plan Structure - -```go -type Plan struct { - Nodes map[string]*Node - Order []string // Topological order for sequential - Levels [][]string // Grouped by depth for parallel -} - -// Build from AST -func BuildPlan(suite *Suite) *Plan - -// Execute the plan -func (p *Plan) Execute(ctx context.Context, r *Runner) *Result -``` - -### Scheduler - -```go -type Scheduler struct { - plan *Plan - completed map[string]bool - failed map[string]bool - mu sync.Mutex - sem chan struct{} // Parallelism limiter -} - -func (s *Scheduler) Run(ctx context.Context) { - for _, nodeID := range s.plan.Order { - node := s.plan.Nodes[nodeID] - - // Check if deps satisfied - if s.anyDepFailed(node) { - s.skip(node) - continue - } - - // Wait for parallel slot - s.sem <- struct{}{} - - go func(n *Node) { - defer func() { <-s.sem }() - s.execute(n) - }(node) - } -} -``` - -### Transaction Strategies - -How setup/cleanup interacts with database transactions: - -**Strategy A: Shared Transaction (default)** -``` -BEGIN - S0: CREATE (:User {id: 1}) - S1: CREATE (:Post {authorId: 1}) - T1: MATCH... → assert - T2: MATCH... → assert -ROLLBACK -``` -All setup and tests share one transaction, rolled back at end. -Pro: Fast, isolated from other test runs. -Con: Tests can see each other's side effects. - -**Strategy B: Per-Test Transactions** -``` -For each test: - BEGIN - Run inherited setup chain - Run test - ROLLBACK -``` -Pro: Tests fully isolated from each other. -Con: Setup runs multiple times, slower. - -**Strategy C: Savepoints** -``` -BEGIN - S0: CREATE (:User) - SAVEPOINT scope_1 - S1: CREATE (:Post) - SAVEPOINT group_1 - T1: MATCH... → ROLLBACK TO group_1 - T2: MATCH... → ROLLBACK TO group_1 - RELEASE SAVEPOINT group_1 - RELEASE SAVEPOINT scope_1 -ROLLBACK -``` -Pro: Setup runs once, tests isolated. -Con: Not all databases support savepoints well. - -### Implementation Plan - -1. **Plan builder** (`runner/plan.go`) - - Walk AST, emit nodes - - Compute dependencies - - Topological sort - -2. **Scheduler** (`runner/scheduler.go`) - - Execute plan - - Handle parallelism - - Propagate failures - -3. **Transaction manager** (`runner/txn.go`) - - Strategy selection - - Savepoint management - -## Open Questions - -- [ ] Should setup blocks run in same transaction as test, or separate? -- [ ] How to handle dialect-specific setup syntax validation? -- [ ] Watch mode for re-running on file changes? -- [ ] Coverage-like metrics (which queries tested, which branches)? -- [ ] How to handle flaky tests / retries? -- [ ] Test timeouts - per test or per suite? \ No newline at end of file diff --git a/example/vendor/github.com/rlch/scaf/adapters/neogo/binding.go b/example/vendor/github.com/rlch/scaf/adapters/neogo/binding.go deleted file mode 100644 index e3e0b9f..0000000 --- a/example/vendor/github.com/rlch/scaf/adapters/neogo/binding.go +++ /dev/null @@ -1,520 +0,0 @@ -package neogo - -import ( - "fmt" - "strings" - - "github.com/rlch/scaf" - "github.com/rlch/scaf/language/go" -) - -// Binding implements golang.Binding for neogo. -// It generates function bodies that execute Cypher queries using neogo's driver. -type Binding struct{} - -// NewBinding creates a new neogo binding. -func NewBinding() *Binding { - return &Binding{} -} - -// Name returns the binding identifier. -func (b *Binding) Name() string { - return scaf.AdapterNeogo -} - -// Imports returns the import paths needed by generated code. -func (b *Binding) Imports() []string { - return []string{ - "context", - "github.com/rlch/neogo", - } -} - -// PrependParams returns ctx and db as the first params for all functions. -func (b *Binding) PrependParams() []golang.BindingParam { - return []golang.BindingParam{ - {Name: "ctx", Type: "context.Context"}, - {Name: "db", Type: "neogo.Driver"}, - } -} - -// ReturnsError returns true - neogo functions always return error. -func (b *Binding) ReturnsError() bool { - return true -} - -// ReceiverType returns empty - neogo generates standalone functions, not methods. -func (b *Binding) ReceiverType() string { - return "" -} - -// GenerateBody generates the function body for executing a Cypher query. -// -// Generated code pattern (single row, struct return with params): -// -// result := &getUserResult{} -// err := db.Exec(). -// Cypher(`MATCH (u:User {id: $userId}) RETURN u.name AS name, u.age AS age`). -// RunWithParams(ctx, map[string]any{"userId": userId}, "name", &result.Name, "age", &result.Age) -// if err != nil { -// return nil, err -// } -// return result, nil -// -// Generated code pattern (slice, struct return with params): -// -// var results []*getUserResult -// err := db.Exec(). -// Cypher(`MATCH (u:User) RETURN u.name AS name, u.age AS age`). -// StreamWithParams(ctx, map[string]any{}, func(r neogo.Result) error { -// row := &getUserResult{} -// if err := r.Read("name", &row.Name, "age", &row.Age); err != nil { -// return err -// } -// results = append(results, row) -// return nil -// }) -// if err != nil { -// return nil, err -// } -// return results, nil -// -// Generated code pattern (single row, individual returns with params): -// -// var name string -// var age int -// err := db.Exec(). -// Cypher(`MATCH (u:User {id: $userId}) RETURN u.name AS name, u.age AS age`). -// RunWithParams(ctx, map[string]any{"userId": userId}, "name", &name, "age", &age) -// if err != nil { -// return "", 0, err -// } -// return name, age, nil -// -// Generated code pattern (no params): -// -// var count int64 -// err := db.Exec(). -// Cypher(`MATCH (u:User) RETURN count(u) AS count`). -// Run(ctx, "count", &count) -// if err != nil { -// return 0, err -// } -// return count, nil -func (b *Binding) GenerateBody(ctx *golang.BodyContext) (string, error) { - sig := ctx.Signature - if sig == nil { - return "panic(\"no signature\")", nil - } - - // Handle slice returns differently - if sig.ReturnsSlice { - if sig.ResultStruct != "" { - return b.generateSliceStructBody(ctx) - } - return b.generateSliceIndividualBody(ctx) - } - - // Single row returns - if sig.ResultStruct != "" { - return b.generateStructBody(ctx) - } - - return b.generateIndividualBody(ctx) -} - -// generateStructBody generates function body that returns a struct pointer. -func (b *Binding) generateStructBody(ctx *golang.BodyContext) (string, error) { - sig := ctx.Signature - queryParams := ctx.QueryParams - - var sb strings.Builder - - // Declare result struct - fmt.Fprintf(&sb, "result := &%s{}\n", sig.ResultStruct) - - // Build the Cypher query execution - if sig.ReturnsError { - sb.WriteString("err := ") - } - - fmt.Fprintf(&sb, "db.Exec().\n\tCypher(`%s`).\n\t", strings.TrimSpace(ctx.Query)) - - // Use RunWithParams if we have query params, otherwise Run - if len(queryParams) > 0 { - sb.WriteString("RunWithParams(ctx, map[string]any{") - for i, param := range queryParams { - if i > 0 { - sb.WriteString(", ") - } - fmt.Fprintf(&sb, "%q: %s", param.Name, param.Name) - } - sb.WriteString("}") - } else { - sb.WriteString("Run(ctx") - } - - // Add return bindings - bind to struct fields - for _, ret := range sig.Returns { - columnName := ret.ColumnName - if columnName == "" { - columnName = ret.Name - } - // Convert db field name to Go exported field name (e.g., "name" -> "Name") - fieldName := toExportedFieldName(ret.Name) - fmt.Fprintf(&sb, ", %q, &result.%s", columnName, fieldName) - } - sb.WriteString(")") - - // Handle error if the signature returns error - if sig.ReturnsError { - sb.WriteString("\nif err != nil {\n\treturn nil, err\n}") - } - - // Return statement - sb.WriteString("\nreturn result") - if sig.ReturnsError { - sb.WriteString(", nil") - } - - return sb.String(), nil -} - -// generateIndividualBody generates function body that returns individual values. -func (b *Binding) generateIndividualBody(ctx *golang.BodyContext) (string, error) { - sig := ctx.Signature - queryParams := ctx.QueryParams - - var sb strings.Builder - - // Declare result variables - for _, ret := range sig.Returns { - varName := toLocalName(ret.Name) - fmt.Fprintf(&sb, "var %s %s\n", varName, ret.Type) - } - - // Build the Cypher query execution - if sig.ReturnsError { - sb.WriteString("err := ") - } - - fmt.Fprintf(&sb, "db.Exec().\n\tCypher(`%s`).\n\t", strings.TrimSpace(ctx.Query)) - - // Use RunWithParams if we have query params, otherwise Run - if len(queryParams) > 0 { - sb.WriteString("RunWithParams(ctx, map[string]any{") - for i, param := range queryParams { - if i > 0 { - sb.WriteString(", ") - } - fmt.Fprintf(&sb, "%q: %s", param.Name, param.Name) - } - sb.WriteString("}") - } else { - sb.WriteString("Run(ctx") - } - - // Add return bindings (use ColumnName for the db column, Name for the Go variable) - for _, ret := range sig.Returns { - varName := toLocalName(ret.Name) - columnName := ret.ColumnName - if columnName == "" { - columnName = ret.Name - } - fmt.Fprintf(&sb, ", %q, &%s", columnName, varName) - } - sb.WriteString(")") - - // Handle error if the signature returns error - if sig.ReturnsError { - sb.WriteString("\nif err != nil {\n\treturn ") - if len(sig.Returns) > 0 { - b.writeZeroReturns(&sb, sig.Returns) - sb.WriteString(", err\n}") - } else { - sb.WriteString("err\n}") - } - } - - // Return statement - sb.WriteString("\nreturn ") - for i, ret := range sig.Returns { - if i > 0 { - sb.WriteString(", ") - } - sb.WriteString(toLocalName(ret.Name)) - } - if sig.ReturnsError { - if len(sig.Returns) > 0 { - sb.WriteString(", ") - } - sb.WriteString("nil") - } - - return sb.String(), nil -} - -// generateSliceStructBody generates function body that returns a slice of struct pointers. -// For multiple return fields, we collect individual slices then zip them into structs. -func (b *Binding) generateSliceStructBody(ctx *golang.BodyContext) (string, error) { - sig := ctx.Signature - queryParams := ctx.QueryParams - - var sb strings.Builder - - // Declare temporary slices for each return field - // Use "rows" prefix to avoid shadowing query parameters - for _, ret := range sig.Returns { - varName := "rows" + toExportedFieldName(ret.Name) - fmt.Fprintf(&sb, "var %s []%s\n", varName, ret.Type) - } - - // Build the Cypher query execution - if sig.ReturnsError { - sb.WriteString("err := ") - } - - fmt.Fprintf(&sb, "db.Exec().\n\tCypher(`%s`).\n\t", strings.TrimSpace(ctx.Query)) - - // Use RunWithParams if we have query params, otherwise Run - if len(queryParams) > 0 { - sb.WriteString("RunWithParams(ctx, map[string]any{") - for i, param := range queryParams { - if i > 0 { - sb.WriteString(", ") - } - fmt.Fprintf(&sb, "%q: %s", param.Name, param.Name) - } - sb.WriteString("}") - } else { - sb.WriteString("Run(ctx") - } - - // Add return bindings - bind to individual slices - for _, ret := range sig.Returns { - varName := "rows" + toExportedFieldName(ret.Name) - columnName := ret.ColumnName - if columnName == "" { - columnName = ret.Name - } - fmt.Fprintf(&sb, ", %q, &%s", columnName, varName) - } - sb.WriteString(")") - - // Handle error - if sig.ReturnsError { - sb.WriteString("\nif err != nil {\n\treturn nil, err\n}") - } - - // Zip slices into result structs - // Use first field to determine length - firstField := "rows" + toExportedFieldName(sig.Returns[0].Name) - fmt.Fprintf(&sb, "\nresults := make([]*%s, len(%s))\n", sig.ResultStruct, firstField) - fmt.Fprintf(&sb, "for i := range %s {\n", firstField) - fmt.Fprintf(&sb, "\tresults[i] = &%s{\n", sig.ResultStruct) - for _, ret := range sig.Returns { - varName := "rows" + toExportedFieldName(ret.Name) - fieldName := toExportedFieldName(ret.Name) - fmt.Fprintf(&sb, "\t\t%s: %s[i],\n", fieldName, varName) - } - sb.WriteString("\t}\n}") - - // Return statement - sb.WriteString("\nreturn results") - if sig.ReturnsError { - sb.WriteString(", nil") - } - - return sb.String(), nil -} - -// generateSliceIndividualBody generates function body that returns slices of individual values. -// neogo's Run automatically handles slices when you pass a pointer to a slice. -func (b *Binding) generateSliceIndividualBody(ctx *golang.BodyContext) (string, error) { - sig := ctx.Signature - queryParams := ctx.QueryParams - - var sb strings.Builder - - // Declare result slices - // Use "rows" prefix to avoid shadowing query parameters - for _, ret := range sig.Returns { - varName := "rows" + toExportedFieldName(ret.Name) - fmt.Fprintf(&sb, "var %s []%s\n", varName, ret.Type) - } - - // Build the Cypher query execution - if sig.ReturnsError { - sb.WriteString("err := ") - } - - fmt.Fprintf(&sb, "db.Exec().\n\tCypher(`%s`).\n\t", strings.TrimSpace(ctx.Query)) - - // Use RunWithParams if we have query params, otherwise Run - if len(queryParams) > 0 { - sb.WriteString("RunWithParams(ctx, map[string]any{") - for i, param := range queryParams { - if i > 0 { - sb.WriteString(", ") - } - fmt.Fprintf(&sb, "%q: %s", param.Name, param.Name) - } - sb.WriteString("}") - } else { - sb.WriteString("Run(ctx") - } - - // Add return bindings (use ColumnName for the db column, varName for the Go variable) - for _, ret := range sig.Returns { - varName := "rows" + toExportedFieldName(ret.Name) - columnName := ret.ColumnName - if columnName == "" { - columnName = ret.Name - } - fmt.Fprintf(&sb, ", %q, &%s", columnName, varName) - } - sb.WriteString(")") - - // Handle error if the signature returns error - if sig.ReturnsError { - sb.WriteString("\nif err != nil {\n\treturn ") - if len(sig.Returns) > 0 { - for i := range sig.Returns { - if i > 0 { - sb.WriteString(", ") - } - sb.WriteString("nil") - } - sb.WriteString(", err\n}") - } else { - sb.WriteString("err\n}") - } - } - - // Return statement - sb.WriteString("\nreturn ") - for i, ret := range sig.Returns { - if i > 0 { - sb.WriteString(", ") - } - sb.WriteString("rows" + toExportedFieldName(ret.Name)) - } - if sig.ReturnsError { - if len(sig.Returns) > 0 { - sb.WriteString(", ") - } - sb.WriteString("nil") - } - - return sb.String(), nil -} - -// writeZeroReturns writes zero values for all return types. -func (b *Binding) writeZeroReturns(sb *strings.Builder, returns []golang.BindingReturn) { - for i, ret := range returns { - if i > 0 { - sb.WriteString(", ") - } - sb.WriteString(zeroValue(ret.Type)) - } -} - -// zeroValue returns the zero value literal for a Go type. -func zeroValue(typ string) string { - switch typ { - case "string": - return `""` - case "int", "int8", "int16", "int32", "int64", - "uint", "uint8", "uint16", "uint32", "uint64", - "float32", "float64", "byte", "rune": - return "0" - case "bool": - return "false" - default: - // Pointers, slices, maps, interfaces, any - if strings.HasPrefix(typ, "*") || - strings.HasPrefix(typ, "[]") || - strings.HasPrefix(typ, "map[") || - typ == "any" || typ == "error" { - return "nil" - } - // Struct or unknown - use zero value syntax - return typ + "{}" - } -} - -// toLocalName converts a return name to a local variable name. -func toLocalName(name string) string { - if name == "" { - return "result" - } - return name -} - -// toExportedFieldName converts a database field name to an exported Go field name. -// Examples: "name" -> "Name", "user_id" -> "UserID", "id" -> "ID" -func toExportedFieldName(name string) string { - if name == "" { - return "" - } - - // Handle snake_case - if strings.Contains(name, "_") { - return snakeToPascal(name) - } - - // Check if it's a known acronym (case insensitive) - if isCommonAcronym(strings.ToUpper(name)) { - return strings.ToUpper(name) - } - - // Just capitalize first letter for camelCase or lowercase names - runes := []rune(name) - runes[0] = toUpper(runes[0]) - return string(runes) -} - -// snakeToPascal converts snake_case to PascalCase. -func snakeToPascal(s string) string { - parts := strings.Split(s, "_") - var result strings.Builder - for _, part := range parts { - if part == "" { - continue - } - // Handle common acronyms - upper := strings.ToUpper(part) - if isCommonAcronym(upper) { - result.WriteString(upper) - } else { - runes := []rune(part) - runes[0] = toUpper(runes[0]) - result.WriteString(string(runes)) - } - } - return result.String() -} - -// toUpper converts a rune to uppercase. -func toUpper(r rune) rune { - if r >= 'a' && r <= 'z' { - return r - 32 - } - return r -} - -// isCommonAcronym returns true if the string is a common acronym. -func isCommonAcronym(s string) bool { - switch s { - case "ID", "URL", "API", "HTTP", "JSON", "XML", "SQL", "UUID", "DB": - return true - } - return false -} - -// Register the binding on package init. -// -//nolint:gochecknoinits // Registration pattern requires init. -func init() { - golang.RegisterBinding(NewBinding()) -} diff --git a/example/vendor/github.com/rlch/scaf/adapters/neogo/neogo.go b/example/vendor/github.com/rlch/scaf/adapters/neogo/neogo.go deleted file mode 100644 index 09206ac..0000000 --- a/example/vendor/github.com/rlch/scaf/adapters/neogo/neogo.go +++ /dev/null @@ -1,300 +0,0 @@ -// Package neogo provides a scaf adapter for the neogo Neo4j ORM. -// -// This package provides schema extraction from neogo models for LSP completions -// and type information in .scaf files. -// -// # Usage -// -// Create a command in your project to generate the schema: -// -// // cmd/scaf-schema/main.go -// package main -// -// import ( -// "log" -// "os" -// -// "github.com/rlch/scaf/adapters/neogo" -// "github.com/rlch/scaf/analysis" -// "myapp/models" -// ) -// -// func main() { -// adapter := neogo.NewAdapter( -// &models.Person{}, -// &models.Movie{}, -// &models.ActedIn{}, -// ) -// schema, err := adapter.ExtractSchema() -// if err != nil { -// log.Fatal(err) -// } -// if err := analysis.WriteSchema(os.Stdout, schema); err != nil { -// log.Fatal(err) -// } -// } -// -// Then run: go run ./cmd/scaf-schema > .scaf-schema.yaml -// -// Configure .scaf.yaml to point to the schema file: -// -// neo4j: -// uri: bolt://localhost:7687 -// generate: -// schema: .scaf-schema.yaml -package neogo - -import ( - "reflect" - "strings" - - "github.com/rlch/neogo" - "github.com/rlch/scaf/analysis" -) - -// Adapter extracts schema information from neogo models. -// It implements analysis.SchemaAdapter. -type Adapter struct { - registry *neogo.Registry -} - -// NewAdapter creates a new adapter with the given types registered. -// Types should be zero-value pointers (e.g., &Person{}, &Movie{}). -func NewAdapter(types ...any) *Adapter { - reg := neogo.NewRegistry() - reg.RegisterTypes(types...) - - return &Adapter{ - registry: reg, - } -} - -// ExtractSchema discovers models from registered types and returns a TypeSchema. -func (a *Adapter) ExtractSchema() (*analysis.TypeSchema, error) { - schema := analysis.NewTypeSchema() - - // Extract nodes - for _, node := range a.registry.Nodes() { - model := a.extractNodeModel(node) - schema.Models[model.Name] = model - } - - // Extract relationships - for _, rel := range a.registry.Relationships() { - model := a.extractRelationshipModel(rel) - if model != nil { - schema.Models[model.Name] = model - } - } - - return schema, nil -} - -// extractNodeModel converts a RegisteredNode to a Model. -func (a *Adapter) extractNodeModel(node *neogo.RegisteredNode) *analysis.Model { - model := &analysis.Model{ - Name: node.Name(), - Fields: make([]*analysis.Field, 0), - } - - // Extract fields from FieldsToProps - fieldsToProps := node.FieldsToProps() - if fieldsToProps != nil { - nodeType := node.Type() - if nodeType != nil { - model.Fields = a.extractFields(nodeType, fieldsToProps) - } - } - - // Extract relationships - relationships := node.Relationships() - if relationships != nil { - model.Relationships = make([]*analysis.Relationship, 0, len(relationships)) - for fieldName, relTarget := range relationships { - rel := a.extractRelationship(fieldName, relTarget, model.Name) - model.Relationships = append(model.Relationships, rel) - } - } - - return model -} - -// extractRelationshipModel converts a RegisteredRelationship to a Model. -// Returns nil for shorthand relationships (they don't have their own model). -func (a *Adapter) extractRelationshipModel(rel *neogo.RegisteredRelationship) *analysis.Model { - // Skip empty/shorthand relationships (they don't have their own model) - if rel.Name() == "" { - return nil - } - - model := &analysis.Model{ - Name: rel.Name(), - Fields: make([]*analysis.Field, 0), - } - - // Extract fields - fieldsToProps := rel.FieldsToProps() - if fieldsToProps != nil { - relType := rel.Type() - if relType != nil { - model.Fields = a.extractFields(relType, fieldsToProps) - } - } - - return model -} - -// extractFields extracts Field definitions from a struct type. -func (a *Adapter) extractFields(typ reflect.Type, fieldsToProps map[string]string) []*analysis.Field { - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - if typ.Kind() != reflect.Struct { - return nil - } - - fields := make([]*analysis.Field, 0) - - for goFieldName, dbFieldName := range fieldsToProps { - // Skip startNode/endNode - these are relationship navigation, not stored properties - if dbFieldName == "startNode" || dbFieldName == "endNode" { - continue - } - - // Find the struct field - field, ok := typ.FieldByName(goFieldName) - if !ok { - continue - } - - // Skip embedded Node/Relationship base types - if field.Anonymous { - continue - } - - // Convert reflect.Type to analysis.Type - fieldType := reflectTypeToType(field.Type) - - // Check if required (pointer types are optional) - required := field.Type.Kind() != reflect.Ptr - - fields = append(fields, &analysis.Field{ - Name: dbFieldName, - Type: fieldType, - Required: required, - }) - } - - return fields -} - -// extractRelationship converts a RelationshipTarget to a Relationship. -func (a *Adapter) extractRelationship(fieldName string, target *neogo.RelationshipTarget, sourceNodeName string) *analysis.Relationship { - rel := &analysis.Relationship{ - Name: fieldName, - RelType: target.RelType(), - Many: target.Many(), - } - - // Direction: Dir=true means outgoing (->), Dir=false means incoming (<-) - if target.Dir() { - rel.Direction = analysis.DirectionOutgoing - } else { - rel.Direction = analysis.DirectionIncoming - } - - // Determine target based on relationship type - relName := target.RelName() - if relName != "" { - // This is a relationship struct - try to find the actual end/start node - rel.Target = a.resolveRelationshipTarget(relName, target.Dir()) - } else { - // Shorthand relationship - find the target node - rel.Target = a.resolveShorthandTarget(target, sourceNodeName) - } - - return rel -} - -// resolveRelationshipTarget finds the target model name for a relationship struct. -func (a *Adapter) resolveRelationshipTarget(relName string, outgoing bool) string { - relMeta := a.registry.GetRelMeta(relName) - if relMeta == nil { - return relName - } - - switch { - case outgoing && relMeta.EndNode() != nil: - return relMeta.EndNode().NodeType().Elem().Name() - case !outgoing && relMeta.StartNode() != nil: - return relMeta.StartNode().NodeType().Elem().Name() - default: - return relName - } -} - -// resolveShorthandTarget finds the target model name for a shorthand relationship. -func (a *Adapter) resolveShorthandTarget(target *neogo.RelationshipTarget, sourceNodeName string) string { - startNode := target.StartNode() - endNode := target.EndNode() - - switch { - case startNode != nil && startNode.Name() != sourceNodeName: - return startNode.Name() - case endNode != nil && endNode.Name() != sourceNodeName: - return endNode.Name() - case startNode != nil: - // Self-referential - return startNode.Name() - default: - return "" - } -} - -// reflectTypeToType converts a reflect.Type to an analysis.Type. -func reflectTypeToType(typ reflect.Type) *analysis.Type { - switch typ.Kind() { //nolint:exhaustive // We only care about composite types - case reflect.Ptr: - return analysis.PointerTo(reflectTypeToType(typ.Elem())) - case reflect.Slice: - return analysis.SliceOf(reflectTypeToType(typ.Elem())) - case reflect.Array: - return &analysis.Type{ - Kind: analysis.TypeKindArray, - Elem: reflectTypeToType(typ.Elem()), - ArrayLen: typ.Len(), - } - case reflect.Map: - return analysis.MapOf(reflectTypeToType(typ.Key()), reflectTypeToType(typ.Elem())) - default: - // Check if it's a named type from another package - if typ.PkgPath() != "" && !isBuiltinType(typ.Name()) { - // Use short package name for display - pkgPath := typ.PkgPath() - parts := strings.Split(pkgPath, "/") - pkgName := parts[len(parts)-1] - - return analysis.NamedType(pkgName, typ.Name()) - } - - // Primitive type - return &analysis.Type{Kind: analysis.TypeKindPrimitive, Name: typ.Name()} - } -} - -// isBuiltinType returns true if the type name is a Go builtin. -func isBuiltinType(name string) bool { - switch name { - case "bool", "string", - "int", "int8", "int16", "int32", "int64", - "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", - "byte", "rune", - "float32", "float64", - "complex64", "complex128", - "error": - return true - } - - return false -} diff --git a/example/vendor/github.com/rlch/scaf/analysis/analyzer.go b/example/vendor/github.com/rlch/scaf/analysis/analyzer.go deleted file mode 100644 index 2dd2a62..0000000 --- a/example/vendor/github.com/rlch/scaf/analysis/analyzer.go +++ /dev/null @@ -1,378 +0,0 @@ -package analysis - -import ( - "errors" - "regexp" - "strings" - - "github.com/alecthomas/participle/v2" - "github.com/alecthomas/participle/v2/lexer" - "github.com/rlch/scaf" -) - -// Analyzer performs semantic analysis on scaf files. -type Analyzer struct { - // loader is used for resolving imports (cross-file analysis). - // Can be nil for single-file analysis. - loader FileLoader - - // resolver is used for cross-file validation (e.g., checking setup call targets). - // Can be nil if cross-file validation is not needed. - resolver CrossFileResolver - - // rules is the set of semantic checks to run. - rules []*Rule -} - -// FileLoader is an interface for loading files during analysis. -// This allows the analyzer to resolve imports. -type FileLoader interface { - // Load returns the content of a file at the given path. - Load(path string) ([]byte, error) -} - -// CrossFileResolver is an interface for resolving and analyzing imported files. -// This enables cross-file validation like checking if a setup call references -// a query that exists in the imported module. -type CrossFileResolver interface { - // ResolveImportPath resolves a relative import path to an absolute file path. - ResolveImportPath(basePath, importPath string) string - - // LoadAndAnalyze loads and analyzes an imported file, returning its analysis. - // Returns nil if the file cannot be loaded or analyzed. - LoadAndAnalyze(path string) *AnalyzedFile -} - -// NewAnalyzer creates a new analyzer with default rules. -// Pass nil for loader to do single-file analysis only. -func NewAnalyzer(loader FileLoader) *Analyzer { - return &Analyzer{ - loader: loader, - rules: DefaultRules(), - } -} - -// NewAnalyzerWithResolver creates an analyzer with cross-file resolution support. -// The resolver enables validation of setup calls against imported modules. -func NewAnalyzerWithResolver(loader FileLoader, resolver CrossFileResolver) *Analyzer { - return &Analyzer{ - loader: loader, - resolver: resolver, - rules: DefaultRules(), - } -} - -// NewAnalyzerWithRules creates an analyzer with custom rules. -func NewAnalyzerWithRules(loader FileLoader, rules []*Rule) *Analyzer { - return &Analyzer{ - loader: loader, - rules: rules, - } -} - -// Analyze parses and analyzes a scaf file. -// On parse errors, still extracts symbols from the partial AST so that -// LSP features like completion and hover continue to work. -func (a *Analyzer) Analyze(path string, content []byte) *AnalyzedFile { - result := &AnalyzedFile{ - Path: path, - Diagnostics: []Diagnostic{}, - Symbols: NewSymbolTable(), - Resolver: a.resolver, - } - - // Parse the file - returns partial AST even on error. - // NOTE: We use non-recovery mode here because recovery can break parsing of valid - // syntax like "setup FunctionName()" (the recovery mechanism is too aggressive - // with optional groups). - suite, err := scaf.Parse(content) - result.Suite = suite - result.ParseError = err - - if err != nil { - // Convert parse errors to diagnostics - result.Diagnostics = append(result.Diagnostics, parseErrorsToDiagnostics(err)...) - // Don't return early - continue with partial AST for better LSP support - - // Also do a recovery parse for completion context. - // This may give us better information about what the user was typing - // even though it might misparse valid syntax elsewhere. - recoverySuite, recoveryErr := scaf.ParseWithRecovery(content, true) - result.RecoverySuite = recoverySuite - result.RecoveryError = recoveryErr - } - - // Build symbol table from partial or complete AST. - // Symbols defined before the error location will still be available. - if suite != nil { - buildSymbols(result) - } else if err != nil { - // Fallback: if Participle returned nil AST, use regex extraction - extractPartialSymbols(result, content) - } - - // Run semantic rules only on complete parses to avoid spurious errors. - // Partial ASTs may have nil fields that rules don't expect. - if result.ParseError == nil { - for _, rule := range a.rules { - rule.Run(result) - } - } - - return result -} - -// parseErrorToDiagnostic converts a parse error to a diagnostic. -// If the error is a RecoveryError (containing multiple errors), it returns -// a slice of diagnostics - one for each recovered error. -func parseErrorToDiagnostic(err error) Diagnostic { - // Check if this is a RecoveryError with multiple errors - var recoveryErr *participle.RecoveryError - if errors.As(err, &recoveryErr) && len(recoveryErr.Errors) > 0 { - // Return the first error as the primary diagnostic - // Additional errors are still accessible via the RecoveryError - return singleErrorToDiagnostic(recoveryErr.Errors[0]) - } - - return singleErrorToDiagnostic(err) -} - -// parseErrorsToDiagnostics converts a parse error to multiple diagnostics. -// If the error is a RecoveryError, returns diagnostics for all errors. -func parseErrorsToDiagnostics(err error) []Diagnostic { - var recoveryErr *participle.RecoveryError - if errors.As(err, &recoveryErr) { - diagnostics := make([]Diagnostic, 0, len(recoveryErr.Errors)) - for _, e := range recoveryErr.Errors { - diagnostics = append(diagnostics, singleErrorToDiagnostic(e)) - } - return diagnostics - } - - return []Diagnostic{singleErrorToDiagnostic(err)} -} - -// singleErrorToDiagnostic converts a single error to a diagnostic. -func singleErrorToDiagnostic(err error) Diagnostic { - // participle errors implement Error interface with Position(). - span := scaf.Span{} - msg := err.Error() - - // Try to extract position from participle error - type participleError interface { - Position() lexer.Position - Message() string - } - - if pe, ok := err.(participleError); ok { - pos := pe.Position() - span = scaf.Span{Start: pos, End: pos} - msg = pe.Message() - } - - return Diagnostic{ - Span: span, - Severity: SeverityError, - Message: msg, - Code: "parse-error", - Source: "scaf", - } -} - -// buildSymbols extracts all symbol definitions from the AST. -// Handles partial ASTs gracefully - symbols defined before parse errors -// will still be extracted. -func buildSymbols(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - // Extract imports. - for _, imp := range f.Suite.Imports { - if imp == nil || imp.Path == "" { - continue // Skip incomplete imports in partial AST - } - - alias := baseNameFromPath(imp.Path) - if imp.Alias != nil { - alias = *imp.Alias - } - - f.Symbols.Imports[alias] = &ImportSymbol{ - Symbol: Symbol{ - Name: alias, - Span: imp.Span(), - Kind: SymbolKindImport, - }, - Alias: imp.Alias, - Path: imp.Path, - Node: imp, - } - } - - // Extract queries. - for _, q := range f.Suite.Queries { - if q == nil || q.Name == "" { - continue // Skip incomplete queries in partial AST - } - - params := extractQueryParams(q.Body) - f.Symbols.Queries[q.Name] = &QuerySymbol{ - Symbol: Symbol{ - Name: q.Name, - Span: q.Span(), - Kind: SymbolKindQuery, - }, - Body: q.Body, - Params: params, - Node: q, - } - } - - // Extract tests from scopes. - for _, scope := range f.Suite.Scopes { - if scope == nil || scope.QueryName == "" { - continue // Skip incomplete scopes in partial AST - } - extractTestSymbols(f, scope.QueryName, "", scope.Items) - } -} - -// extractTestSymbols recursively extracts test symbols from items. -// Handles partial ASTs gracefully with nil checks. -func extractTestSymbols(f *AnalyzedFile, queryScope, groupPath string, items []*scaf.TestOrGroup) { - for _, item := range items { - if item == nil { - continue // Skip nil items in partial AST - } - - if item.Test != nil && item.Test.Name != "" { - fullPath := buildTestPath(queryScope, groupPath, item.Test.Name) - f.Symbols.Tests[fullPath] = &TestSymbol{ - Symbol: Symbol{ - Name: item.Test.Name, - Span: item.Test.Span(), - Kind: SymbolKindTest, - }, - FullPath: fullPath, - QueryScope: queryScope, - Node: item.Test, - } - } - - if item.Group != nil && item.Group.Name != "" { - newGroupPath := groupPath - if newGroupPath != "" { - newGroupPath += "/" - } - - newGroupPath += item.Group.Name - extractTestSymbols(f, queryScope, newGroupPath, item.Group.Items) - } - } -} - -// ---------------------------------------------------------------------------- -// Helper functions -// ---------------------------------------------------------------------------- - -// baseNameFromPath extracts the base name from an import path -// (e.g., "./shared/fixtures" -> "fixtures"). -func baseNameFromPath(path string) string { - // Remove leading ./ or ../ - path = strings.TrimPrefix(path, "./") - for strings.HasPrefix(path, "../") { - path = strings.TrimPrefix(path, "../") - } - - // Get last component. - parts := strings.Split(path, "/") - if len(parts) > 0 { - return parts[len(parts)-1] - } - - return path -} - -// extractPartialSymbols extracts symbols from source text when parsing fails. -// This enables completion to work while the user is typing (and the file is temporarily invalid). -// It uses regex-based extraction which is less accurate than AST-based but works on broken code. -func extractPartialSymbols(f *AnalyzedFile, content []byte) { - text := string(content) - - // Extract imports: import [alias] "path" - // Pattern: import fixtures "./fixtures" OR import "./fixtures" - importRegex := regexp.MustCompile(`(?m)^import\s+(?:(\w+)\s+)?"([^"]+)"`) - for _, match := range importRegex.FindAllStringSubmatch(text, -1) { - if len(match) >= 3 { - path := match[2] - alias := match[1] // May be empty if no alias specified - - // If no alias, derive from path - if alias == "" { - alias = baseNameFromPath(path) - } - - f.Symbols.Imports[alias] = &ImportSymbol{ - Symbol: Symbol{ - Name: alias, - Kind: SymbolKindImport, - }, - Alias: nil, // Simplified - not tracking alias pointer in partial extraction - Path: path, - Node: nil, // No AST node available - } - } - } - - // Extract queries: query Name `body` - queryRegex := regexp.MustCompile("(?m)^query\\s+(\\w+)\\s+`([^`]*)`") - for _, match := range queryRegex.FindAllStringSubmatch(text, -1) { - if len(match) >= 3 { - name := match[1] - body := match[2] - params := extractQueryParams(body) - - f.Symbols.Queries[name] = &QuerySymbol{ - Symbol: Symbol{ - Name: name, - Kind: SymbolKindQuery, - }, - Body: body, - Params: params, - Node: nil, // No AST node available - } - } - } -} - -// extractQueryParams extracts $-prefixed parameters from a query body. -var paramRegex = regexp.MustCompile(`\$(\w+)`) - -func extractQueryParams(body string) []string { - matches := paramRegex.FindAllStringSubmatch(body, -1) - seen := make(map[string]bool) - - var params []string - - for _, m := range matches { - if len(m) > 1 && !seen[m[1]] { - seen[m[1]] = true - params = append(params, m[1]) - } - } - - return params -} - -// buildTestPath constructs a full test path. -func buildTestPath(queryScope, groupPath, testName string) string { - parts := []string{queryScope} - if groupPath != "" { - parts = append(parts, groupPath) - } - - parts = append(parts, testName) - - return strings.Join(parts, "/") -} diff --git a/example/vendor/github.com/rlch/scaf/analysis/position.go b/example/vendor/github.com/rlch/scaf/analysis/position.go deleted file mode 100644 index d160169..0000000 --- a/example/vendor/github.com/rlch/scaf/analysis/position.go +++ /dev/null @@ -1,790 +0,0 @@ -package analysis - -import ( - "github.com/alecthomas/participle/v2/lexer" - "github.com/rlch/scaf" -) - -// NodeAtPosition finds the most specific AST node at a given position. -// Returns nil if no node contains the position. -// -//nolint:ireturn // Returning interface is intentional for AST node polymorphism. -func NodeAtPosition(f *AnalyzedFile, pos lexer.Position) scaf.Node { - if f.Suite == nil { - return nil - } - - // Walk the AST to find the most specific node containing the position. - // We use a simple recursive descent, tracking the most specific match. - var best scaf.Node - - // Check imports. - for _, imp := range f.Suite.Imports { - if containsPosition(imp.Span(), pos) { - best = imp - } - } - - // Check queries. - for _, q := range f.Suite.Queries { - if containsPosition(q.Span(), pos) { - best = q - } - } - - // Check global setup clause (Suite.Setup). - if f.Suite.Setup != nil && containsPosition(f.Suite.Setup.Span(), pos) { - // Check for call inside - if f.Suite.Setup.Call != nil && containsPosition(f.Suite.Setup.Call.Span(), pos) { - best = f.Suite.Setup.Call - } else if child := nodeInSetupBlock(f.Suite.Setup, pos); child != nil { - best = child - } else { - best = f.Suite.Setup - } - } - - // Check scopes. - for _, scope := range f.Suite.Scopes { - if containsPosition(scope.Span(), pos) { - // Check if we're in a more specific child. - if child := nodeInScope(scope, pos); child != nil { - best = child - } else { - best = scope - } - } - } - - return best -} - -//nolint:ireturn // Returning interface is intentional for AST node polymorphism. -func nodeInScope(scope *scaf.QueryScope, pos lexer.Position) scaf.Node { - // Check setup clause first (more specific) - if scope.Setup != nil && containsPosition(scope.Setup.Span(), pos) { - // Check for call inside - if scope.Setup.Call != nil && containsPosition(scope.Setup.Call.Span(), pos) { - return scope.Setup.Call - } - // Check for block items - if child := nodeInSetupBlock(scope.Setup, pos); child != nil { - return child - } - return scope.Setup - } - - // Then check items - if child := nodeInItems(scope.Items, pos); child != nil { - return child - } - - return nil -} - -// nodeInSetupBlock checks for more specific nodes within a setup block. -// -//nolint:ireturn // Returning interface is intentional for AST node polymorphism. -func nodeInSetupBlock(setup *scaf.SetupClause, pos lexer.Position) scaf.Node { - for _, item := range setup.Block { - if containsPosition(item.Span(), pos) { - // Check for call inside the item - if item.Call != nil && containsPosition(item.Call.Span(), pos) { - return item.Call - } - return item - } - } - return nil -} - -//nolint:ireturn // Returning interface is intentional for AST node polymorphism. -func nodeInItems(items []*scaf.TestOrGroup, pos lexer.Position) scaf.Node { - for _, item := range items { - if item.Test != nil && containsPosition(item.Test.Span(), pos) { - // Check for more specific nodes inside test - if child := nodeInTest(item.Test, pos); child != nil { - return child - } - return item.Test - } - - if item.Group != nil && containsPosition(item.Group.Span(), pos) { - // Check setup in group - if item.Group.Setup != nil && containsPosition(item.Group.Setup.Span(), pos) { - if item.Group.Setup.Call != nil && containsPosition(item.Group.Setup.Call.Span(), pos) { - return item.Group.Setup.Call - } - if child := nodeInSetupBlock(item.Group.Setup, pos); child != nil { - return child - } - return item.Group.Setup - } - - // Check children first. - if child := nodeInItems(item.Group.Items, pos); child != nil { - return child - } - - return item.Group - } - } - - return nil -} - -//nolint:ireturn // Returning interface is intentional for AST node polymorphism. -func nodeInTest(test *scaf.Test, pos lexer.Position) scaf.Node { - // Check setup - if test.Setup != nil && containsPosition(test.Setup.Span(), pos) { - if test.Setup.Call != nil && containsPosition(test.Setup.Call.Span(), pos) { - return test.Setup.Call - } - if child := nodeInSetupBlock(test.Setup, pos); child != nil { - return child - } - return test.Setup - } - - // Check statements - for _, stmt := range test.Statements { - if containsPosition(stmt.Span(), pos) { - return stmt - } - } - - // Check asserts - for _, assert := range test.Asserts { - if containsPosition(assert.Span(), pos) { - // Check if we're on the AssertQuery (more specific) - if assert.Query != nil && containsPosition(assert.Query.Span(), pos) { - return assert.Query - } - return assert - } - } - - return nil -} - -// containsPosition checks if a span contains a position. -func containsPosition(span scaf.Span, pos lexer.Position) bool { - // Check if pos is after start. - if pos.Line < span.Start.Line { - return false - } - - if pos.Line == span.Start.Line && pos.Column < span.Start.Column { - return false - } - - // Check if pos is before end. - if pos.Line > span.End.Line { - return false - } - - if pos.Line == span.End.Line && pos.Column > span.End.Column { - return false - } - - return true -} - -// PositionToLexer converts LSP 0-based line/character to participle's 1-based line/column. -func PositionToLexer(line, character uint32) lexer.Position { - return lexer.Position{ - Line: int(line) + 1, // LSP is 0-based, participle is 1-based - Column: int(character) + 1, - } -} - -// QueryAtPosition returns the query whose name is at the given position. -// Useful for finding the query referenced in a scope declaration. -func QueryAtPosition(f *AnalyzedFile, pos lexer.Position) *QuerySymbol { - // Check if position is on a query scope's query name. - if f.Suite == nil { - return nil - } - - for _, scope := range f.Suite.Scopes { - // The query name is at the start of the scope. - // Check if position is on the first line of the scope, before the '{'. - if pos.Line == scope.Pos.Line { - // Position is on the scope declaration line. - // Return the referenced query. - if q, ok := f.Symbols.Queries[scope.QueryName]; ok { - return q - } - } - } - - return nil -} - -// SymbolAtPosition returns the symbol at the given position, if any. -func SymbolAtPosition(f *AnalyzedFile, pos lexer.Position) *Symbol { - // Check queries. - for _, q := range f.Symbols.Queries { - if containsPosition(q.Span, pos) { - return &q.Symbol - } - } - - // Check imports. - for _, imp := range f.Symbols.Imports { - if containsPosition(imp.Span, pos) { - return &imp.Symbol - } - } - - // Check tests. - for _, t := range f.Symbols.Tests { - if containsPosition(t.Span, pos) { - return &t.Symbol - } - } - - return nil -} - -// TokenAtPosition finds the exact token at a given position by scanning node tokens. -// This is more precise than span-based detection because it returns the specific token -// the cursor is on, not just the containing node. -func TokenAtPosition(f *AnalyzedFile, pos lexer.Position) *lexer.Token { - if f.Suite == nil { - return nil - } - - // Check all tokens in the suite - for i := range f.Suite.Tokens { - tok := &f.Suite.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - - // Check imports - for _, imp := range f.Suite.Imports { - for i := range imp.Tokens { - tok := &imp.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - } - - // Check queries - for _, q := range f.Suite.Queries { - for i := range q.Tokens { - tok := &q.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - } - - // Check scopes - for _, scope := range f.Suite.Scopes { - if tok := findTokenInScope(scope, pos); tok != nil { - return tok - } - } - - return nil -} - -// findTokenInScope searches for a token in a scope and its children. -func findTokenInScope(scope *scaf.QueryScope, pos lexer.Position) *lexer.Token { - // Check scope tokens - for i := range scope.Tokens { - tok := &scope.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - - // Check setup clause - if scope.Setup != nil { - if tok := findTokenInSetup(scope.Setup, pos); tok != nil { - return tok - } - } - - // Check items - for _, item := range scope.Items { - if tok := findTokenInTestOrGroup(item, pos); tok != nil { - return tok - } - } - - return nil -} - -// findTokenInTestOrGroup searches for a token in a test or group. -func findTokenInTestOrGroup(item *scaf.TestOrGroup, pos lexer.Position) *lexer.Token { - if item == nil { - return nil - } - - // Check item tokens - for i := range item.Tokens { - tok := &item.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - - if item.Test != nil { - if tok := findTokenInTest(item.Test, pos); tok != nil { - return tok - } - } - - if item.Group != nil { - if tok := findTokenInGroup(item.Group, pos); tok != nil { - return tok - } - } - - return nil -} - -// findTokenInTest searches for a token in a test. -func findTokenInTest(test *scaf.Test, pos lexer.Position) *lexer.Token { - // Check test tokens - for i := range test.Tokens { - tok := &test.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - - // Check setup - if test.Setup != nil { - if tok := findTokenInSetup(test.Setup, pos); tok != nil { - return tok - } - } - - // Check statements - for _, stmt := range test.Statements { - for i := range stmt.Tokens { - tok := &stmt.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - } - - // Check asserts - for _, assert := range test.Asserts { - for i := range assert.Tokens { - tok := &assert.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - } - - return nil -} - -// findTokenInGroup searches for a token in a group. -func findTokenInGroup(group *scaf.Group, pos lexer.Position) *lexer.Token { - // Check group tokens - for i := range group.Tokens { - tok := &group.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - - // Check setup - if group.Setup != nil { - if tok := findTokenInSetup(group.Setup, pos); tok != nil { - return tok - } - } - - // Check items - for _, item := range group.Items { - if tok := findTokenInTestOrGroup(item, pos); tok != nil { - return tok - } - } - - return nil -} - -// findTokenInSetup searches for a token in a setup clause. -func findTokenInSetup(setup *scaf.SetupClause, pos lexer.Position) *lexer.Token { - // Check setup tokens - for i := range setup.Tokens { - tok := &setup.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - - // Check setup call - if setup.Call != nil { - for i := range setup.Call.Tokens { - tok := &setup.Call.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - } - - // Check block items - for _, item := range setup.Block { - for i := range item.Tokens { - tok := &item.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - if item.Call != nil { - for i := range item.Call.Tokens { - tok := &item.Call.Tokens[i] - if tokenContainsPosition(tok, pos) { - return tok - } - } - } - } - - return nil -} - -// tokenContainsPosition checks if a token contains a given position. -// Tokens span from Pos to Pos + len(Value). -func tokenContainsPosition(tok *lexer.Token, pos lexer.Position) bool { - // Token must be on the same line (most tokens are single-line) - if tok.Pos.Line != pos.Line { - return false - } - - // Check column bounds: Pos.Column <= pos.Column < Pos.Column + len(Value) - startCol := tok.Pos.Column - endCol := tok.Pos.Column + len(tok.Value) - - return pos.Column >= startCol && pos.Column < endCol -} - -// tokenEndsBefore returns true if the token ends before the given position. -func tokenEndsBefore(tok *lexer.Token, pos lexer.Position) bool { - endLine := tok.Pos.Line - endCol := tok.Pos.Column + len(tok.Value) - - if endLine < pos.Line { - return true - } - if endLine == pos.Line && endCol <= pos.Column { - return true - } - return false -} - -// PrevTokenAtPosition finds the non-whitespace token immediately before a given position. -// This is useful for completion to know what token precedes the cursor. -// Whitespace and comment tokens are skipped. -func PrevTokenAtPosition(f *AnalyzedFile, pos lexer.Position) *lexer.Token { - if f.Suite == nil { - return nil - } - - var best *lexer.Token - bestEnd := lexer.Position{} - - // Helper to update best if this token is closer to pos but still before it - // Skips whitespace and comment tokens - checkToken := func(tok *lexer.Token) { - // Skip whitespace and comments - if tok.Type == scaf.TokenWhitespace || tok.Type == scaf.TokenComment { - return - } - if !tokenEndsBefore(tok, pos) { - return - } - tokEnd := lexer.Position{ - Line: tok.Pos.Line, - Column: tok.Pos.Column + len(tok.Value), - } - // Is this token closer to pos than the current best? - if best == nil || - tokEnd.Line > bestEnd.Line || - (tokEnd.Line == bestEnd.Line && tokEnd.Column > bestEnd.Column) { - best = tok - bestEnd = tokEnd - } - } - - // Check all tokens in the suite - for i := range f.Suite.Tokens { - checkToken(&f.Suite.Tokens[i]) - } - - // Check imports - for _, imp := range f.Suite.Imports { - for i := range imp.Tokens { - checkToken(&imp.Tokens[i]) - } - } - - // Check queries - for _, q := range f.Suite.Queries { - for i := range q.Tokens { - checkToken(&q.Tokens[i]) - } - } - - // Check scopes - for _, scope := range f.Suite.Scopes { - findPrevTokenInScope(scope, pos, &best, &bestEnd) - } - - return best -} - -// findPrevTokenInScope searches for previous token in a scope. -func findPrevTokenInScope(scope *scaf.QueryScope, pos lexer.Position, best **lexer.Token, bestEnd *lexer.Position) { - checkToken := func(tok *lexer.Token) { - // Skip whitespace and comments - if tok.Type == scaf.TokenWhitespace || tok.Type == scaf.TokenComment { - return - } - if !tokenEndsBefore(tok, pos) { - return - } - tokEnd := lexer.Position{ - Line: tok.Pos.Line, - Column: tok.Pos.Column + len(tok.Value), - } - if *best == nil || - tokEnd.Line > bestEnd.Line || - (tokEnd.Line == bestEnd.Line && tokEnd.Column > bestEnd.Column) { - *best = tok - *bestEnd = tokEnd - } - } - - // Check scope tokens - for i := range scope.Tokens { - checkToken(&scope.Tokens[i]) - } - - // Check setup - if scope.Setup != nil { - findPrevTokenInSetupClause(scope.Setup, pos, best, bestEnd) - } - - // Check items - for _, item := range scope.Items { - findPrevTokenInTestOrGroup(item, pos, best, bestEnd) - } -} - -// findPrevTokenInTestOrGroup searches for previous token in a test or group. -func findPrevTokenInTestOrGroup(item *scaf.TestOrGroup, pos lexer.Position, best **lexer.Token, bestEnd *lexer.Position) { - if item == nil { - return - } - - checkToken := func(tok *lexer.Token) { - // Skip whitespace and comments - if tok.Type == scaf.TokenWhitespace || tok.Type == scaf.TokenComment { - return - } - if !tokenEndsBefore(tok, pos) { - return - } - tokEnd := lexer.Position{ - Line: tok.Pos.Line, - Column: tok.Pos.Column + len(tok.Value), - } - if *best == nil || - tokEnd.Line > bestEnd.Line || - (tokEnd.Line == bestEnd.Line && tokEnd.Column > bestEnd.Column) { - *best = tok - *bestEnd = tokEnd - } - } - - for i := range item.Tokens { - checkToken(&item.Tokens[i]) - } - - if item.Test != nil { - for i := range item.Test.Tokens { - checkToken(&item.Test.Tokens[i]) - } - if item.Test.Setup != nil { - findPrevTokenInSetupClause(item.Test.Setup, pos, best, bestEnd) - } - } - - if item.Group != nil { - for i := range item.Group.Tokens { - checkToken(&item.Group.Tokens[i]) - } - if item.Group.Setup != nil { - findPrevTokenInSetupClause(item.Group.Setup, pos, best, bestEnd) - } - for _, child := range item.Group.Items { - findPrevTokenInTestOrGroup(child, pos, best, bestEnd) - } - } -} - -// findPrevTokenInSetupClause searches for previous token in a setup clause. -func findPrevTokenInSetupClause(setup *scaf.SetupClause, pos lexer.Position, best **lexer.Token, bestEnd *lexer.Position) { - checkToken := func(tok *lexer.Token) { - // Skip whitespace and comments - if tok.Type == scaf.TokenWhitespace || tok.Type == scaf.TokenComment { - return - } - if !tokenEndsBefore(tok, pos) { - return - } - tokEnd := lexer.Position{ - Line: tok.Pos.Line, - Column: tok.Pos.Column + len(tok.Value), - } - if *best == nil || - tokEnd.Line > bestEnd.Line || - (tokEnd.Line == bestEnd.Line && tokEnd.Column > bestEnd.Column) { - *best = tok - *bestEnd = tokEnd - } - } - - for i := range setup.Tokens { - checkToken(&setup.Tokens[i]) - } - - if setup.Call != nil { - for i := range setup.Call.Tokens { - checkToken(&setup.Call.Tokens[i]) - } - } - - // Check block items (setup { ... } syntax) - for _, item := range setup.Block { - for i := range item.Tokens { - checkToken(&item.Tokens[i]) - } - if item.Call != nil { - for i := range item.Call.Tokens { - checkToken(&item.Call.Tokens[i]) - } - } - } -} - -// TokenContext provides context about what kind of position we're at. -type TokenContext struct { - // Token is the token at the cursor position (nil if between tokens). - Token *lexer.Token - // PrevToken is the token before the cursor (nil if at start). - PrevToken *lexer.Token - // Node is the AST node containing this position. - Node scaf.Node - // InSetup is true if inside a setup clause. - InSetup bool - // InTest is true if inside a test body. - InTest bool - // InGroup is true if inside a group body. - InGroup bool - // InAssert is true if inside an assert block. - InAssert bool - // QueryScope is the name of the enclosing query scope (empty if top-level). - QueryScope string -} - -// GetTokenContext returns detailed context about a cursor position. -// This is useful for intelligent completions based on exact position. -func GetTokenContext(f *AnalyzedFile, pos lexer.Position) *TokenContext { - ctx := &TokenContext{} - - if f.Suite == nil { - return ctx - } - - // Find the token at position - ctx.Token = TokenAtPosition(f, pos) - - // Find the previous token (before cursor position) - ctx.PrevToken = PrevTokenAtPosition(f, pos) - - // Find the containing node - ctx.Node = NodeAtPosition(f, pos) - - // Determine context from node hierarchy - for _, scope := range f.Suite.Scopes { - if containsPosition(scope.Span(), pos) { - ctx.QueryScope = scope.QueryName - - // Check if in setup - if scope.Setup != nil && containsPosition(scope.Setup.Span(), pos) { - ctx.InSetup = true - } - - // Check items - for _, item := range scope.Items { - if item.Test != nil && containsPosition(item.Test.Span(), pos) { - ctx.InTest = true - // Check setup in test - if item.Test.Setup != nil && containsPosition(item.Test.Setup.Span(), pos) { - ctx.InSetup = true - } - // Check asserts - for _, assert := range item.Test.Asserts { - if containsPosition(assert.Span(), pos) { - ctx.InAssert = true - } - } - } - - if item.Group != nil { - ctx.InGroup = checkInGroup(item.Group, pos, ctx) - } - } - } - } - - return ctx -} - -// checkInGroup recursively checks if position is in a group. -func checkInGroup(group *scaf.Group, pos lexer.Position, ctx *TokenContext) bool { - if !containsPosition(group.Span(), pos) { - return false - } - - ctx.InGroup = true - - if group.Setup != nil && containsPosition(group.Setup.Span(), pos) { - ctx.InSetup = true - } - - for _, item := range group.Items { - if item.Test != nil && containsPosition(item.Test.Span(), pos) { - ctx.InTest = true - if item.Test.Setup != nil && containsPosition(item.Test.Setup.Span(), pos) { - ctx.InSetup = true - } - for _, assert := range item.Test.Asserts { - if containsPosition(assert.Span(), pos) { - ctx.InAssert = true - } - } - } - - if item.Group != nil { - checkInGroup(item.Group, pos, ctx) - } - } - - return true -} diff --git a/example/vendor/github.com/rlch/scaf/analysis/recovery.go b/example/vendor/github.com/rlch/scaf/analysis/recovery.go deleted file mode 100644 index cb5b422..0000000 --- a/example/vendor/github.com/rlch/scaf/analysis/recovery.go +++ /dev/null @@ -1,768 +0,0 @@ -// Package analysis provides semantic analysis for scaf DSL files. -package analysis - -import ( - "errors" - - "github.com/alecthomas/participle/v2" - "github.com/alecthomas/participle/v2/lexer" - "github.com/rlch/scaf" -) - -// RecoveryCompletionContext provides completion context extracted from recovered AST nodes -// or parse error positions. This is the primary mechanism for understanding what the user -// is typing when parsing fails. -type RecoveryCompletionContext struct { - // Kind indicates what kind of completion is needed based on recovery analysis. - Kind RecoveryCompletionKind - // RecoveredNode is the node that was recovered (has WasRecovered() == true). - RecoveredNode scaf.Node - // RecoveredTokens are the tokens that were skipped during recovery. - RecoveredTokens []lexer.Token - // Prefix is the text being typed (extracted from recovered tokens). - Prefix string - // ModuleAlias is set when completing after "module." pattern. - ModuleAlias string - // ParentNode is the parent of the recovered node (provides context). - ParentNode scaf.Node - // InSetup is true if inside a setup clause. - InSetup bool - // InTest is true if inside a test body. - InTest bool - // InAssert is true if inside an assert block. - InAssert bool - // QueryScope is the name of the enclosing query scope. - QueryScope string - // ErrorPos is the position of the parse error, if any. - ErrorPos lexer.Position - // PrevToken is the token before the error/cursor position. - PrevToken *lexer.Token -} - -// RecoveryCompletionKind indicates what kind of completion the recovery suggests. -type RecoveryCompletionKind int - -const ( - // RecoveryCompletionNone indicates no recovery-based completion context. - RecoveryCompletionNone RecoveryCompletionKind = iota - // RecoveryCompletionSetupAlias indicates completing an import alias after "setup". - RecoveryCompletionSetupAlias - // RecoveryCompletionSetupFunction indicates completing a function after "module.". - RecoveryCompletionSetupFunction - // RecoveryCompletionParameter indicates completing a $parameter. - RecoveryCompletionParameter - // RecoveryCompletionReturnField indicates completing a return field. - RecoveryCompletionReturnField - // RecoveryCompletionKeyword indicates completing a keyword. - RecoveryCompletionKeyword -) - -// GetRecoveryCompletionContext analyzes the AST and parse errors to find completion context. -// This is the main entry point for recovery-based completions. -// -// Strategy: -// 1. Look for nodes with RecoveredTokens in RecoverySuite (parser recovery) -// 2. Look at parse error position and preceding tokens -// 3. Use token context at cursor position -func GetRecoveryCompletionContext(f *AnalyzedFile, pos lexer.Position) *RecoveryCompletionContext { - if f == nil { - return nil - } - - ctx := &RecoveryCompletionContext{} - - // Strategy 1: Check for recovered nodes at position using RecoverySuite - // RecoverySuite is parsed with recovery enabled, so it may have RecoveredTokens - if f.RecoverySuite != nil { - findRecoveredContext(f.RecoverySuite, pos, ctx) - } - - // If we found a recovered node with tokens, analyze them - if ctx.RecoveredNode != nil && len(ctx.RecoveredTokens) > 0 { - analyzeRecoveredTokens(ctx, f.Symbols) - if ctx.Kind != RecoveryCompletionNone { - return ctx - } - } - - // Strategy 2: Check parse error position from recovery parse - // This is the main mechanism for completion - we look at where the parse failed - // and use the tokens before that position to determine context. - recoveryErr := f.RecoveryError - if recoveryErr == nil { - recoveryErr = f.ParseError - } - if recoveryErr != nil { - errorPos := getErrorPosition(recoveryErr) - if errorPos.Line > 0 { - ctx.ErrorPos = errorPos - // Get the token before the error position - use RecoverySuite if available - if f.RecoverySuite != nil { - ctx.PrevToken = prevTokenFromSuite(f.RecoverySuite, errorPos) - } else { - ctx.PrevToken = PrevTokenAtPosition(f, errorPos) - } - - // If cursor is at or near error position, use error context - if isNearPosition(pos, errorPos) { - analyzeErrorContext(ctx, f.Symbols) - if ctx.Kind != RecoveryCompletionNone { - return ctx - } - } - } - } - - // Strategy 3: Use token context at cursor position - // This handles cases where the file parses correctly but we still need context - // Prefer RecoverySuite for token lookup since it has more parsed content - suite := f.RecoverySuite - if suite == nil { - suite = f.Suite - } - if suite != nil { - ctx.PrevToken = prevTokenFromSuite(suite, pos) - analyzeTokenContext(ctx, pos, suite, f.Symbols) - if ctx.Kind != RecoveryCompletionNone { - return ctx - } - } - - return nil -} - -// prevTokenFromSuite finds the previous token in a suite at a given position. -// This is a helper that works directly with a Suite instead of AnalyzedFile. -func prevTokenFromSuite(suite *scaf.Suite, pos lexer.Position) *lexer.Token { - if suite == nil { - return nil - } - - var best *lexer.Token - bestEnd := lexer.Position{} - - // Helper to update best if this token is closer to pos but still before it - checkToken := func(tok *lexer.Token) { - // Skip whitespace and comments - if tok.Type == scaf.TokenWhitespace || tok.Type == scaf.TokenComment { - return - } - endCol := tok.Pos.Column + len(tok.Value) - if tok.Pos.Line < pos.Line || (tok.Pos.Line == pos.Line && endCol <= pos.Column) { - tokEnd := lexer.Position{Line: tok.Pos.Line, Column: endCol} - if best == nil || tokEnd.Line > bestEnd.Line || (tokEnd.Line == bestEnd.Line && tokEnd.Column > bestEnd.Column) { - best = tok - bestEnd = tokEnd - } - } - } - - // Check all tokens in the suite - for i := range suite.Tokens { - checkToken(&suite.Tokens[i]) - } - - // Check imports, queries, scopes... - for _, imp := range suite.Imports { - for i := range imp.Tokens { - checkToken(&imp.Tokens[i]) - } - } - - for _, q := range suite.Queries { - for i := range q.Tokens { - checkToken(&q.Tokens[i]) - } - } - - for _, scope := range suite.Scopes { - for i := range scope.Tokens { - checkToken(&scope.Tokens[i]) - } - // Check items in scope - for _, item := range scope.Items { - for i := range item.Tokens { - checkToken(&item.Tokens[i]) - } - if item.Test != nil { - for i := range item.Test.Tokens { - checkToken(&item.Test.Tokens[i]) - } - } - if item.Group != nil { - for i := range item.Group.Tokens { - checkToken(&item.Group.Tokens[i]) - } - } - } - } - - return best -} - -// getErrorPosition extracts the position from a parse error. -func getErrorPosition(err error) lexer.Position { - // Check for RecoveryError first - var recoveryErr *participle.RecoveryError - if errors.As(err, &recoveryErr) && len(recoveryErr.Errors) > 0 { - // Get position from first error - if perr, ok := recoveryErr.Errors[0].(participle.Error); ok { - return perr.Position() - } - } - - // Check for single participle error - if perr, ok := err.(participle.Error); ok { - return perr.Position() - } - - return lexer.Position{} -} - -// isNearPosition checks if two positions are close enough to be related. -func isNearPosition(pos1, pos2 lexer.Position) bool { - // Same line, within a few columns - if pos1.Line == pos2.Line { - diff := pos1.Column - pos2.Column - if diff < 0 { - diff = -diff - } - return diff <= 10 - } - // Adjacent lines - diff := pos1.Line - pos2.Line - if diff < 0 { - diff = -diff - } - return diff <= 1 -} - -// analyzeErrorContext determines completion kind from error position context. -// This is called when there's a parse error and the cursor is near the error position. -// We use the token before the error to determine what completion to offer. -func analyzeErrorContext(ctx *RecoveryCompletionContext, symbols *SymbolTable) { - if ctx.PrevToken == nil { - return - } - - // Check what token precedes the error - switch ctx.PrevToken.Type { - case scaf.TokenSetup: - // Error after "setup" - offer import aliases - ctx.Kind = RecoveryCompletionSetupAlias - return - case scaf.TokenDot: - // Error after a dot - we need to find what's before the dot - // The dot token doesn't tell us what module it belongs to, so we can't - // determine ModuleAlias here. This case is better handled by - // analyzeRecoveredTokens which has access to the full token sequence. - // For now, signal that we need setup function completion but let the - // caller figure out the module alias from recovered tokens or text analysis. - ctx.Kind = RecoveryCompletionSetupFunction - // Note: ModuleAlias is NOT set here - caller must extract it from context - return - case scaf.TokenIdent: - // If the previous token is an identifier, check if it's an import alias - if symbols != nil { - if _, ok := symbols.Imports[ctx.PrevToken.Value]; ok { - // This is an import alias - user might be typing the dot or function name - ctx.ModuleAlias = ctx.PrevToken.Value - ctx.Kind = RecoveryCompletionSetupFunction - ctx.Prefix = "" - return - } - } - // Could be typing a setup alias after "setup" - ctx.Prefix = ctx.PrevToken.Value - ctx.Kind = RecoveryCompletionSetupAlias - return - } -} - -// analyzeTokenContext determines completion from token context when no recovery/error. -// This is called when the file parses correctly (or recovery didn't find anything). -func analyzeTokenContext(ctx *RecoveryCompletionContext, pos lexer.Position, suite *scaf.Suite, symbols *SymbolTable) { - if ctx.PrevToken == nil { - return - } - - // Determine context from surrounding structure - for _, scope := range suite.Scopes { - if containsPosition(scope.Span(), pos) { - ctx.QueryScope = scope.QueryName - - // Check if we're in setup context (after "setup" keyword) - if ctx.PrevToken.Type == scaf.TokenSetup { - ctx.InSetup = true - ctx.Kind = RecoveryCompletionSetupAlias - return - } - - // Check if previous token is a DOT - need to find module alias before it - if ctx.PrevToken.Type == scaf.TokenDot { - // Find the token before the dot - tokenBeforeDot := prevTokenFromSuite(suite, ctx.PrevToken.Pos) - if tokenBeforeDot != nil && tokenBeforeDot.Type == scaf.TokenIdent && symbols != nil { - if _, ok := symbols.Imports[tokenBeforeDot.Value]; ok { - ctx.ModuleAlias = tokenBeforeDot.Value - ctx.Kind = RecoveryCompletionSetupFunction - return - } - } - } - - // Check if previous token is an import alias (cursor might be ON the dot) - if ctx.PrevToken.Type == scaf.TokenIdent && symbols != nil { - if _, ok := symbols.Imports[ctx.PrevToken.Value]; ok { - ctx.ModuleAlias = ctx.PrevToken.Value - ctx.Kind = RecoveryCompletionSetupFunction - return - } - } - } - } -} - -// findRecoveredContext walks the AST to find recovered nodes at or near the position. -func findRecoveredContext(suite *scaf.Suite, pos lexer.Position, ctx *RecoveryCompletionContext) { - // Check suite-level recovery - if suite.WasRecovered() && positionInRecoverySpan(suite.RecoveredSpan, suite.RecoveredEnd, pos) { - ctx.RecoveredNode = suite - ctx.RecoveredTokens = suite.RecoveredTokens - } - - // Check imports - for _, imp := range suite.Imports { - if imp.WasRecovered() && positionInRecoverySpan(imp.RecoveredSpan, imp.RecoveredEnd, pos) { - ctx.RecoveredNode = imp - ctx.RecoveredTokens = imp.RecoveredTokens - } - } - - // Check queries - for _, q := range suite.Queries { - if q.WasRecovered() && positionInRecoverySpan(q.RecoveredSpan, q.RecoveredEnd, pos) { - ctx.RecoveredNode = q - ctx.RecoveredTokens = q.RecoveredTokens - } - } - - // Check suite-level setup - if suite.Setup != nil { - findRecoveredInSetup(suite.Setup, pos, ctx) - } - - // Check scopes - for _, scope := range suite.Scopes { - findRecoveredInScope(scope, pos, ctx) - } -} - -// findRecoveredInScope checks a query scope for recovered nodes. -func findRecoveredInScope(scope *scaf.QueryScope, pos lexer.Position, ctx *RecoveryCompletionContext) { - if scope == nil { - return - } - - // Check if scope itself was recovered - if scope.WasRecovered() && positionInRecoverySpan(scope.RecoveredSpan, scope.RecoveredEnd, pos) { - ctx.RecoveredNode = scope - ctx.RecoveredTokens = scope.RecoveredTokens - ctx.QueryScope = scope.QueryName - } - - // Track query scope context - if containsPosition(scope.Span(), pos) { - ctx.QueryScope = scope.QueryName - } - - // Check setup in scope - if scope.Setup != nil { - findRecoveredInSetup(scope.Setup, pos, ctx) - if containsPosition(scope.Setup.Span(), pos) { - ctx.InSetup = true - } - } - - // Check items - for _, item := range scope.Items { - findRecoveredInTestOrGroup(item, pos, ctx) - } -} - -// findRecoveredInTestOrGroup checks a test or group for recovered nodes. -func findRecoveredInTestOrGroup(item *scaf.TestOrGroup, pos lexer.Position, ctx *RecoveryCompletionContext) { - if item == nil { - return - } - - // Check item-level recovery - if item.WasRecovered() && positionInRecoverySpan(item.RecoveredSpan, item.RecoveredEnd, pos) { - ctx.RecoveredNode = item - ctx.RecoveredTokens = item.RecoveredTokens - } - - if item.Test != nil { - findRecoveredInTest(item.Test, pos, ctx) - } - - if item.Group != nil { - findRecoveredInGroup(item.Group, pos, ctx) - } -} - -// findRecoveredInTest checks a test for recovered nodes. -func findRecoveredInTest(test *scaf.Test, pos lexer.Position, ctx *RecoveryCompletionContext) { - if test == nil { - return - } - - // Track test context - if containsPosition(test.Span(), pos) { - ctx.InTest = true - } - - // Check test-level recovery - if test.WasRecovered() && positionInRecoverySpan(test.RecoveredSpan, test.RecoveredEnd, pos) { - ctx.RecoveredNode = test - ctx.RecoveredTokens = test.RecoveredTokens - ctx.ParentNode = test - } - - // Check setup - if test.Setup != nil { - findRecoveredInSetup(test.Setup, pos, ctx) - if containsPosition(test.Setup.Span(), pos) { - ctx.InSetup = true - } - } - - // Check statements - for _, stmt := range test.Statements { - if stmt.WasRecovered() && positionInRecoverySpan(stmt.RecoveredSpan, stmt.RecoveredEnd, pos) { - ctx.RecoveredNode = stmt - ctx.RecoveredTokens = stmt.RecoveredTokens - } - } - - // Check asserts - for _, assert := range test.Asserts { - findRecoveredInAssert(assert, pos, ctx) - } -} - -// findRecoveredInGroup checks a group for recovered nodes. -func findRecoveredInGroup(group *scaf.Group, pos lexer.Position, ctx *RecoveryCompletionContext) { - if group == nil { - return - } - - // Check group-level recovery - if group.WasRecovered() && positionInRecoverySpan(group.RecoveredSpan, group.RecoveredEnd, pos) { - ctx.RecoveredNode = group - ctx.RecoveredTokens = group.RecoveredTokens - } - - // Check setup - if group.Setup != nil { - findRecoveredInSetup(group.Setup, pos, ctx) - if containsPosition(group.Setup.Span(), pos) { - ctx.InSetup = true - } - } - - // Check items - for _, item := range group.Items { - findRecoveredInTestOrGroup(item, pos, ctx) - } -} - -// findRecoveredInSetup checks a setup clause for recovered nodes. -func findRecoveredInSetup(setup *scaf.SetupClause, pos lexer.Position, ctx *RecoveryCompletionContext) { - if setup == nil { - return - } - - // Check setup-level recovery - if setup.WasRecovered() && positionInRecoverySpan(setup.RecoveredSpan, setup.RecoveredEnd, pos) { - ctx.RecoveredNode = setup - ctx.RecoveredTokens = setup.RecoveredTokens - ctx.InSetup = true - } - - // Check setup call - if setup.Call != nil && setup.Call.WasRecovered() { - if positionInRecoverySpan(setup.Call.RecoveredSpan, setup.Call.RecoveredEnd, pos) { - ctx.RecoveredNode = setup.Call - ctx.RecoveredTokens = setup.Call.RecoveredTokens - ctx.InSetup = true - } - } - - // Check block items - for _, item := range setup.Block { - if item.WasRecovered() && positionInRecoverySpan(item.RecoveredSpan, item.RecoveredEnd, pos) { - ctx.RecoveredNode = item - ctx.RecoveredTokens = item.RecoveredTokens - ctx.InSetup = true - } - if item.Call != nil && item.Call.WasRecovered() { - if positionInRecoverySpan(item.Call.RecoveredSpan, item.Call.RecoveredEnd, pos) { - ctx.RecoveredNode = item.Call - ctx.RecoveredTokens = item.Call.RecoveredTokens - ctx.InSetup = true - } - } - } -} - -// findRecoveredInAssert checks an assert for recovered nodes. -func findRecoveredInAssert(assert *scaf.Assert, pos lexer.Position, ctx *RecoveryCompletionContext) { - if assert == nil { - return - } - - // Track assert context - if containsPosition(assert.Span(), pos) { - ctx.InAssert = true - } - - // Check assert-level recovery - if assert.WasRecovered() && positionInRecoverySpan(assert.RecoveredSpan, assert.RecoveredEnd, pos) { - ctx.RecoveredNode = assert - ctx.RecoveredTokens = assert.RecoveredTokens - ctx.InAssert = true - } - - // Check assert query - if assert.Query != nil && assert.Query.WasRecovered() { - if positionInRecoverySpan(assert.Query.RecoveredSpan, assert.Query.RecoveredEnd, pos) { - ctx.RecoveredNode = assert.Query - ctx.RecoveredTokens = assert.Query.RecoveredTokens - ctx.InAssert = true - } - } -} - -// analyzeRecoveredTokens determines completion kind from the recovered tokens. -func analyzeRecoveredTokens(ctx *RecoveryCompletionContext, symbols *SymbolTable) { - if len(ctx.RecoveredTokens) == 0 { - // No recovered tokens - check node type for context - ctx.Kind = determineKindFromNode(ctx) - return - } - - // Analyze the pattern of recovered tokens - tokens := ctx.RecoveredTokens - - // Check for "setup ." pattern (module.function completion) - if hasSetupDotPattern(tokens, symbols) { - ctx.Kind = RecoveryCompletionSetupFunction - ctx.ModuleAlias = extractModuleAlias(tokens) - ctx.Prefix = extractPrefixAfterDot(tokens) - return - } - - // Check for "setup " pattern (module alias completion) - if hasSetupIdentPattern(tokens) { - ctx.Kind = RecoveryCompletionSetupAlias - ctx.Prefix = extractSetupPrefix(tokens) - return - } - - // Check for "$" or "$" pattern (parameter completion) - if hasParameterPattern(tokens) { - ctx.Kind = RecoveryCompletionParameter - ctx.Prefix = extractParameterPrefix(tokens) - return - } - - // Check for identifier at start of line in test (return field completion) - if ctx.InTest && hasReturnFieldPattern(tokens) { - ctx.Kind = RecoveryCompletionReturnField - ctx.Prefix = extractIdentPrefix(tokens) - return - } - - // Default: keyword completion - ctx.Kind = RecoveryCompletionKeyword - ctx.Prefix = extractIdentPrefix(tokens) -} - -// determineKindFromNode determines completion kind when no recovered tokens are available. -func determineKindFromNode(ctx *RecoveryCompletionContext) RecoveryCompletionKind { - switch ctx.RecoveredNode.(type) { - case *scaf.SetupClause, *scaf.SetupCall: - return RecoveryCompletionSetupAlias - case *scaf.Statement: - if ctx.InTest { - return RecoveryCompletionReturnField - } - } - - if ctx.InTest { - return RecoveryCompletionKeyword - } - - return RecoveryCompletionNone -} - -// hasSetupDotPattern checks if tokens match "setup ." or just "." in setup context. -func hasSetupDotPattern(tokens []lexer.Token, symbols *SymbolTable) bool { - // Look for pattern: [setup?] - for i, tok := range tokens { - if tok.Type == scaf.TokenDot && i > 0 { - prevTok := tokens[i-1] - if prevTok.Type == scaf.TokenIdent { - // Check if the identifier is an import alias - if symbols != nil { - if _, ok := symbols.Imports[prevTok.Value]; ok { - return true - } - } - } - } - } - return false -} - -// hasSetupIdentPattern checks if tokens match "setup " pattern. -func hasSetupIdentPattern(tokens []lexer.Token) bool { - for i, tok := range tokens { - if tok.Type == scaf.TokenSetup { - // Check if followed by identifier (or we're at the end after setup) - if i == len(tokens)-1 { - return true // Just "setup" - } - if i+1 < len(tokens) && tokens[i+1].Type == scaf.TokenIdent { - return true // "setup " - } - } - } - return false -} - -// hasParameterPattern checks if tokens contain a $ parameter pattern. -func hasParameterPattern(tokens []lexer.Token) bool { - for _, tok := range tokens { - if tok.Type == scaf.TokenIdent && len(tok.Value) > 0 && tok.Value[0] == '$' { - return true - } - } - return false -} - -// hasReturnFieldPattern checks if tokens look like a return field (identifier at start). -func hasReturnFieldPattern(tokens []lexer.Token) bool { - if len(tokens) == 0 { - return false - } - // First non-whitespace token is an identifier (not starting with $) - for _, tok := range tokens { - if tok.Type == scaf.TokenWhitespace { - continue - } - if tok.Type == scaf.TokenIdent && (len(tok.Value) == 0 || tok.Value[0] != '$') { - return true - } - return false - } - return false -} - -// extractModuleAlias extracts the module alias from tokens containing a dot pattern. -func extractModuleAlias(tokens []lexer.Token) string { - for i, tok := range tokens { - if tok.Type == scaf.TokenDot && i > 0 { - prevTok := tokens[i-1] - if prevTok.Type == scaf.TokenIdent { - return prevTok.Value - } - } - } - return "" -} - -// extractPrefixAfterDot extracts any identifier typed after the dot. -func extractPrefixAfterDot(tokens []lexer.Token) string { - foundDot := false - for _, tok := range tokens { - if tok.Type == scaf.TokenDot { - foundDot = true - continue - } - if foundDot && tok.Type == scaf.TokenIdent { - return tok.Value - } - } - return "" -} - -// extractSetupPrefix extracts the identifier prefix after "setup". -func extractSetupPrefix(tokens []lexer.Token) string { - foundSetup := false - for _, tok := range tokens { - if tok.Type == scaf.TokenSetup { - foundSetup = true - continue - } - if foundSetup && tok.Type == scaf.TokenIdent { - return tok.Value - } - } - return "" -} - -// extractParameterPrefix extracts the $-prefixed identifier. -func extractParameterPrefix(tokens []lexer.Token) string { - for _, tok := range tokens { - if tok.Type == scaf.TokenIdent && len(tok.Value) > 0 && tok.Value[0] == '$' { - return tok.Value - } - } - return "" -} - -// extractIdentPrefix extracts the last identifier from tokens. -func extractIdentPrefix(tokens []lexer.Token) string { - var last string - for _, tok := range tokens { - if tok.Type == scaf.TokenIdent { - last = tok.Value - } - } - return last -} - -// positionInRecoverySpan checks if a position falls within a recovery span. -// Returns true if the position is at or after the start and at or before the end. -func positionInRecoverySpan(start, end, pos lexer.Position) bool { - // Zero spans don't count - if start.Line == 0 && start.Column == 0 { - return false - } - - // Check if pos is after or at start - if pos.Line < start.Line { - return false - } - if pos.Line == start.Line && pos.Column < start.Column { - return false - } - - // If end is zero, only check start - if end.Line == 0 && end.Column == 0 { - // Position is at or after start - we're in the recovery area - return true - } - - // Check if pos is before or at end - if pos.Line > end.Line { - return false - } - if pos.Line == end.Line && pos.Column > end.Column { - return false - } - - return true -} diff --git a/example/vendor/github.com/rlch/scaf/analysis/rules.go b/example/vendor/github.com/rlch/scaf/analysis/rules.go deleted file mode 100644 index ded5f8d..0000000 --- a/example/vendor/github.com/rlch/scaf/analysis/rules.go +++ /dev/null @@ -1,776 +0,0 @@ -package analysis - -import ( - "strconv" - "strings" - - "github.com/rlch/scaf" -) - -// Rule represents a semantic analysis check. -// Inspired by go/analysis.Analyzer pattern. -type Rule struct { - // Name is a short identifier for the rule (used in diagnostic codes). - Name string - - // Doc is a brief description of what the rule checks. - Doc string - - // Severity is the default severity for diagnostics from this rule. - Severity DiagnosticSeverity - - // Run executes the rule and appends any diagnostics to the file. - Run func(f *AnalyzedFile) -} - -// DefaultRules returns all built-in semantic analysis rules. -func DefaultRules() []*Rule { - return []*Rule{ - // Error-level checks. - undefinedQueryRule, - undefinedImportRule, - duplicateQueryRule, - duplicateImportRule, - undefinedAssertQueryRule, - undefinedSetupQueryRule, // Cross-file validation - - // Warning-level checks. - unusedImportRule, - unknownParameterRule, - duplicateTestRule, - duplicateGroupRule, - missingRequiredParamsRule, - emptyGroupRule, - - // Hint-level checks. - emptyTestRule, - unusedQueryParamRule, - } -} - -// ---------------------------------------------------------------------------- -// Rule: undefined-query -// ---------------------------------------------------------------------------- - -var undefinedQueryRule = &Rule{ - Name: "undefined-query", - Doc: "Reports query scopes that reference undefined queries.", - Severity: SeverityError, - Run: checkUndefinedQueries, -} - -func checkUndefinedQueries(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - for _, scope := range f.Suite.Scopes { - if _, ok := f.Symbols.Queries[scope.QueryName]; !ok { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: scope.Span(), - Severity: SeverityError, - Message: "undefined query: " + scope.QueryName, - Code: "undefined-query", - Source: "scaf", - }) - } - } -} - -// ---------------------------------------------------------------------------- -// Rule: undefined-import -// ---------------------------------------------------------------------------- - -var undefinedImportRule = &Rule{ - Name: "undefined-import", - Doc: "Reports setup calls that reference undefined imports.", - Severity: SeverityError, - Run: checkUndefinedImports, -} - -func checkUndefinedImports(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - checkSetup := func(setup *scaf.SetupClause) { - if setup == nil { - return - } - - if setup.Module != nil { - checkSetupModuleImport(f, *setup.Module, setup.Span()) - } - - if setup.Call != nil { - checkSetupCallImport(f, setup.Call) - } - - for _, item := range setup.Block { - if item.Module != nil { - checkSetupModuleImport(f, *item.Module, item.Span()) - } - - if item.Call != nil { - checkSetupCallImport(f, item.Call) - } - } - } - - var checkItems func([]*scaf.TestOrGroup) - - checkItems = func(items []*scaf.TestOrGroup) { - for _, item := range items { - if item.Test != nil { - checkSetup(item.Test.Setup) - } - - if item.Group != nil { - checkSetup(item.Group.Setup) - checkItems(item.Group.Items) - } - } - } - - checkSetup(f.Suite.Setup) - - for _, scope := range f.Suite.Scopes { - checkSetup(scope.Setup) - checkItems(scope.Items) - } -} - -func checkSetupModuleImport(f *AnalyzedFile, moduleAlias string, span scaf.Span) { - if imp, ok := f.Symbols.Imports[moduleAlias]; !ok { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: span, - Severity: SeverityError, - Message: "undefined import: " + moduleAlias, - Code: "undefined-import", - Source: "scaf", - }) - } else { - imp.Used = true - } -} - -func checkSetupCallImport(f *AnalyzedFile, call *scaf.SetupCall) { - if imp, ok := f.Symbols.Imports[call.Module]; !ok { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: call.Span(), - Severity: SeverityError, - Message: "undefined import: " + call.Module, - Code: "undefined-import", - Source: "scaf", - }) - } else { - imp.Used = true - } -} - -// ---------------------------------------------------------------------------- -// Rule: duplicate-query -// ---------------------------------------------------------------------------- - -var duplicateQueryRule = &Rule{ - Name: "duplicate-query", - Doc: "Reports duplicate query name definitions.", - Severity: SeverityError, - Run: checkDuplicateQueries, -} - -func checkDuplicateQueries(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - seen := make(map[string]scaf.Span) - - for _, q := range f.Suite.Queries { - if firstSpan, exists := seen[q.Name]; exists { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: q.Span(), - Severity: SeverityError, - Message: "duplicate query name: " + q.Name + " (first defined at line " + formatLine(firstSpan) + ")", - Code: "duplicate-query", - Source: "scaf", - }) - } else { - seen[q.Name] = q.Span() - } - } -} - -// ---------------------------------------------------------------------------- -// Rule: duplicate-import -// ---------------------------------------------------------------------------- - -var duplicateImportRule = &Rule{ - Name: "duplicate-import", - Doc: "Reports duplicate import aliases.", - Severity: SeverityError, - Run: checkDuplicateImports, -} - -func checkDuplicateImports(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - seen := make(map[string]scaf.Span) - - for _, imp := range f.Suite.Imports { - alias := baseNameFromPath(imp.Path) - if imp.Alias != nil { - alias = *imp.Alias - } - - if firstSpan, exists := seen[alias]; exists { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: imp.Span(), - Severity: SeverityError, - Message: "duplicate import alias: " + alias + " (first defined at line " + formatLine(firstSpan) + ")", - Code: "duplicate-import", - Source: "scaf", - }) - } else { - seen[alias] = imp.Span() - } - } -} - -// ---------------------------------------------------------------------------- -// Rule: unused-import -// ---------------------------------------------------------------------------- - -var unusedImportRule = &Rule{ - Name: "unused-import", - Doc: "Reports imports that are never referenced.", - Severity: SeverityWarning, - Run: checkUnusedImports, -} - -func checkUnusedImports(f *AnalyzedFile) { - // Note: Must run after undefinedImportRule which marks imports as used. - for alias, imp := range f.Symbols.Imports { - if !imp.Used { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: imp.Span, - Severity: SeverityWarning, - Message: "unused import: " + alias, - Code: "unused-import", - Source: "scaf", - }) - } - } -} - -// ---------------------------------------------------------------------------- -// Rule: unknown-parameter -// ---------------------------------------------------------------------------- - -var unknownParameterRule = &Rule{ - Name: "unknown-parameter", - Doc: "Reports test parameters that don't exist in the query.", - Severity: SeverityWarning, - Run: checkUnknownParameters, -} - -func checkUnknownParameters(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - for _, scope := range f.Suite.Scopes { - query, ok := f.Symbols.Queries[scope.QueryName] - if !ok { - continue // Already reported as undefined-query. - } - - queryParams := make(map[string]bool) - for _, p := range query.Params { - queryParams[p] = true - } - - checkItemParams(f, scope.Items, queryParams, scope.QueryName) - } -} - -func checkItemParams(f *AnalyzedFile, items []*scaf.TestOrGroup, queryParams map[string]bool, queryName string) { - for _, item := range items { - if item.Test != nil { - for _, stmt := range item.Test.Statements { - key := stmt.Key() - if paramName, ok := strings.CutPrefix(key, "$"); ok { - if !queryParams[paramName] { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: item.Test.Span(), - Severity: SeverityWarning, - Message: "parameter $" + paramName + " not found in query " + queryName, - Code: "unknown-parameter", - Source: "scaf", - }) - } - } - } - } - - if item.Group != nil { - checkItemParams(f, item.Group.Items, queryParams, queryName) - } - } -} - -// ---------------------------------------------------------------------------- -// Rule: empty-test -// ---------------------------------------------------------------------------- - -var emptyTestRule = &Rule{ - Name: "empty-test", - Doc: "Reports tests with no statements or assertions.", - Severity: SeverityHint, - Run: checkEmptyTests, -} - -func checkEmptyTests(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - var checkItems func([]*scaf.TestOrGroup) - - checkItems = func(items []*scaf.TestOrGroup) { - for _, item := range items { - if item.Test != nil { - if len(item.Test.Statements) == 0 && len(item.Test.Asserts) == 0 && item.Test.Setup == nil { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: item.Test.Span(), - Severity: SeverityHint, - Message: "empty test: " + item.Test.Name, - Code: "empty-test", - Source: "scaf", - }) - } - } - - if item.Group != nil { - checkItems(item.Group.Items) - } - } - } - - for _, scope := range f.Suite.Scopes { - checkItems(scope.Items) - } -} - -// ---------------------------------------------------------------------------- -// Rule: duplicate-test -// ---------------------------------------------------------------------------- - -var duplicateTestRule = &Rule{ - Name: "duplicate-test", - Doc: "Reports duplicate test names within the same scope.", - Severity: SeverityWarning, - Run: checkDuplicateTests, -} - -func checkDuplicateTests(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - for _, scope := range f.Suite.Scopes { - checkDuplicateTestNamesInItems(f, scope.Items) - } -} - -// ---------------------------------------------------------------------------- -// Rule: duplicate-group -// ---------------------------------------------------------------------------- - -var duplicateGroupRule = &Rule{ - Name: "duplicate-group", - Doc: "Reports duplicate group names within the same scope.", - Severity: SeverityWarning, - Run: checkDuplicateGroups, -} - -func checkDuplicateGroups(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - for _, scope := range f.Suite.Scopes { - checkDuplicateGroupNamesInItems(f, scope.Items) - } -} - -func checkDuplicateTestNamesInItems(f *AnalyzedFile, items []*scaf.TestOrGroup) { - testNames := make(map[string]scaf.Span) - - for _, item := range items { - if item.Test != nil { - if firstSpan, exists := testNames[item.Test.Name]; exists { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: item.Test.Span(), - Severity: SeverityWarning, - Message: "duplicate test name in scope: " + item.Test.Name + - " (first defined at line " + formatLine(firstSpan) + ")", - Code: "duplicate-test", - Source: "scaf", - }) - } else { - testNames[item.Test.Name] = item.Test.Span() - } - } - - if item.Group != nil { - // Recurse into group. - checkDuplicateTestNamesInItems(f, item.Group.Items) - } - } -} - -func checkDuplicateGroupNamesInItems(f *AnalyzedFile, items []*scaf.TestOrGroup) { - groupNames := make(map[string]scaf.Span) - - for _, item := range items { - if item.Group != nil { - if firstSpan, exists := groupNames[item.Group.Name]; exists { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: item.Group.Span(), - Severity: SeverityWarning, - Message: "duplicate group name in scope: " + item.Group.Name + - " (first defined at line " + formatLine(firstSpan) + ")", - Code: "duplicate-group", - Source: "scaf", - }) - } else { - groupNames[item.Group.Name] = item.Group.Span() - } - - // Recurse into group. - checkDuplicateGroupNamesInItems(f, item.Group.Items) - } - } -} - -// ---------------------------------------------------------------------------- -// Rule: undefined-assert-query -// ---------------------------------------------------------------------------- - -var undefinedAssertQueryRule = &Rule{ - Name: "undefined-assert-query", - Doc: "Reports assert blocks that reference undefined queries.", - Severity: SeverityError, - Run: checkUndefinedAssertQueries, -} - -func checkUndefinedAssertQueries(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - var checkItems func([]*scaf.TestOrGroup) - - checkItems = func(items []*scaf.TestOrGroup) { - for _, item := range items { - if item.Test != nil { - for _, assert := range item.Test.Asserts { - if assert.Query != nil && assert.Query.QueryName != nil { - queryName := *assert.Query.QueryName - if _, ok := f.Symbols.Queries[queryName]; !ok { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: item.Test.Span(), - Severity: SeverityError, - Message: "assert references undefined query: " + queryName, - Code: "undefined-assert-query", - Source: "scaf", - }) - } - } - } - } - - if item.Group != nil { - checkItems(item.Group.Items) - } - } - } - - for _, scope := range f.Suite.Scopes { - checkItems(scope.Items) - } -} - -// ---------------------------------------------------------------------------- -// Rule: missing-required-params -// ---------------------------------------------------------------------------- - -var missingRequiredParamsRule = &Rule{ - Name: "missing-required-params", - Doc: "Reports tests that don't provide all required query parameters.", - Severity: SeverityWarning, - Run: checkMissingRequiredParams, -} - -func checkMissingRequiredParams(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - for _, scope := range f.Suite.Scopes { - query, ok := f.Symbols.Queries[scope.QueryName] - if !ok { - continue // Already reported as undefined-query. - } - - checkItemMissingParams(f, scope.Items, query.Params, scope.QueryName) - } -} - -func checkItemMissingParams(f *AnalyzedFile, items []*scaf.TestOrGroup, queryParams []string, queryName string) { - for _, item := range items { - if item.Test != nil { - providedParams := make(map[string]bool) - - for _, stmt := range item.Test.Statements { - key := stmt.Key() - if paramName, ok := strings.CutPrefix(key, "$"); ok { - providedParams[paramName] = true - } - } - - var missing []string - - for _, p := range queryParams { - if !providedParams[p] { - missing = append(missing, "$"+p) - } - } - - if len(missing) > 0 { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: item.Test.Span(), - Severity: SeverityWarning, - Message: "test is missing required parameters for " + queryName + ": " + strings.Join(missing, ", "), - Code: "missing-required-params", - Source: "scaf", - }) - } - } - - if item.Group != nil { - checkItemMissingParams(f, item.Group.Items, queryParams, queryName) - } - } -} - -// ---------------------------------------------------------------------------- -// Rule: empty-group -// ---------------------------------------------------------------------------- - -var emptyGroupRule = &Rule{ - Name: "empty-group", - Doc: "Reports groups with no tests or nested groups.", - Severity: SeverityWarning, - Run: checkEmptyGroups, -} - -func checkEmptyGroups(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - var checkItems func([]*scaf.TestOrGroup) - - checkItems = func(items []*scaf.TestOrGroup) { - for _, item := range items { - if item.Group != nil { - if len(item.Group.Items) == 0 { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: item.Group.Span(), - Severity: SeverityWarning, - Message: "empty group: " + item.Group.Name, - Code: "empty-group", - Source: "scaf", - }) - } - - checkItems(item.Group.Items) - } - } - } - - for _, scope := range f.Suite.Scopes { - checkItems(scope.Items) - } -} - -// ---------------------------------------------------------------------------- -// Rule: undefined-setup-query -// ---------------------------------------------------------------------------- - -var undefinedSetupQueryRule = &Rule{ - Name: "undefined-setup-query", - Doc: "Reports setup calls that reference queries not found in the imported module.", - Severity: SeverityError, - Run: checkUndefinedSetupQueries, -} - -func checkUndefinedSetupQueries(f *AnalyzedFile) { - if f.Suite == nil || f.Resolver == nil { - return // Cross-file validation requires a resolver - } - - // Helper to check a setup call - checkSetupCall := func(call *scaf.SetupCall) { - if call == nil { - return - } - - // Get the import for this module - imp, ok := f.Symbols.Imports[call.Module] - if !ok { - // undefined-import rule handles this - return - } - - // Resolve the import path - importedPath := f.Resolver.ResolveImportPath(f.Path, imp.Path) - importedFile := f.Resolver.LoadAndAnalyze(importedPath) - if importedFile == nil || importedFile.Symbols == nil { - // Can't load/analyze the file - don't report error since file might just not exist yet - return - } - - // Check if the query exists in the imported module - if _, ok := importedFile.Symbols.Queries[call.Query]; !ok { - // Build list of available queries for better error message - var available []string - for name := range importedFile.Symbols.Queries { - available = append(available, name) - } - - msg := "undefined query in module " + call.Module + ": " + call.Query - if len(available) > 0 { - msg += " (available: " + strings.Join(available, ", ") + ")" - } - - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: call.Span(), - Severity: SeverityError, - Message: msg, - Code: "undefined-setup-query", - Source: "scaf", - }) - } - } - - // Helper to check a setup clause - checkSetup := func(setup *scaf.SetupClause) { - if setup == nil { - return - } - - checkSetupCall(setup.Call) - - for _, item := range setup.Block { - checkSetupCall(item.Call) - } - } - - // Check test/group items recursively - var checkItems func([]*scaf.TestOrGroup) - checkItems = func(items []*scaf.TestOrGroup) { - for _, item := range items { - if item.Test != nil { - checkSetup(item.Test.Setup) - } - if item.Group != nil { - checkSetup(item.Group.Setup) - checkItems(item.Group.Items) - } - } - } - - // Check global setup - checkSetup(f.Suite.Setup) - - // Check all scopes - for _, scope := range f.Suite.Scopes { - checkSetup(scope.Setup) - checkItems(scope.Items) - } -} - -// ---------------------------------------------------------------------------- -// Rule: unused-query-param -// ---------------------------------------------------------------------------- - -var unusedQueryParamRule = &Rule{ - Name: "unused-query-param", - Doc: "Reports query parameters that are never provided in any test.", - Severity: SeverityHint, - Run: checkUnusedQueryParams, -} - -func checkUnusedQueryParams(f *AnalyzedFile) { - if f.Suite == nil { - return - } - - for _, scope := range f.Suite.Scopes { - query, ok := f.Symbols.Queries[scope.QueryName] - if !ok { - continue // Already reported as undefined-query. - } - - if len(query.Params) == 0 { - continue // No parameters to check. - } - - // Collect all parameters provided across all tests in this scope. - providedParams := make(map[string]bool) - collectProvidedParams(scope.Items, providedParams) - - // Report parameters that exist in query but never appear in any test. - for _, param := range query.Params { - if !providedParams[param] { - f.Diagnostics = append(f.Diagnostics, Diagnostic{ - Span: scope.Span(), - Severity: SeverityHint, - Message: "query parameter $" + param + " is never provided in any test within this scope", - Code: "unused-query-param", - Source: "scaf", - }) - } - } - } -} - -func collectProvidedParams(items []*scaf.TestOrGroup, provided map[string]bool) { - for _, item := range items { - if item.Test != nil { - for _, stmt := range item.Test.Statements { - key := stmt.Key() - if paramName, ok := strings.CutPrefix(key, "$"); ok { - provided[paramName] = true - } - } - } - - if item.Group != nil { - collectProvidedParams(item.Group.Items, provided) - } - } -} - -// ---------------------------------------------------------------------------- -// Helpers -// ---------------------------------------------------------------------------- - -func formatLine(span scaf.Span) string { - return strconv.Itoa(span.Start.Line) -} \ No newline at end of file diff --git a/example/vendor/github.com/rlch/scaf/analysis/schema.go b/example/vendor/github.com/rlch/scaf/analysis/schema.go deleted file mode 100644 index 4846218..0000000 --- a/example/vendor/github.com/rlch/scaf/analysis/schema.go +++ /dev/null @@ -1,581 +0,0 @@ -package analysis - -import ( - "fmt" - "io" - "os" - "path/filepath" - "sort" - "strconv" - "strings" - "unicode" - - "github.com/rlch/scaf" - "gopkg.in/yaml.v3" -) - -// TypeSchema represents the database schema extracted from user code. -// It is dialect-agnostic and populated by adapters (e.g., neogo) that crawl -// the user's codebase to discover models, fields, and relationships. -// -// The LSP uses this schema to provide completions and type information -// when editing queries. Dialects define what arguments/returns functions -// expect, and the TypeSchema maps those to concrete types from user code. -type TypeSchema struct { - // Models maps model name (e.g., "Person", "ActedIn") to its definition. - Models map[string]*Model -} - -// NewTypeSchema creates an empty TypeSchema. -func NewTypeSchema() *TypeSchema { - return &TypeSchema{ - Models: make(map[string]*Model), - } -} - -// yamlSchema is the YAML representation of TypeSchema. -type yamlSchema struct { - Models map[string]*yamlModel `yaml:"models"` -} - -// yamlModel is the YAML representation of Model. -type yamlModel struct { - Fields map[string]*yamlField `yaml:"fields,omitempty"` - Relationships map[string]*yamlRelationship `yaml:"relationships,omitempty"` -} - -// yamlField is the YAML representation of Field. -type yamlField struct { - Type string `yaml:"type"` - Required bool `yaml:"required,omitempty"` - Unique bool `yaml:"unique,omitempty"` -} - -// yamlRelationship is the YAML representation of Relationship. -type yamlRelationship struct { - RelType string `yaml:"rel_type"` - Target string `yaml:"target"` - Many bool `yaml:"many,omitempty"` - Direction string `yaml:"direction"` -} - -// LoadSchema loads a TypeSchema from a YAML file. -// The path can be absolute or relative to baseDir. -func LoadSchema(path, baseDir string) (*TypeSchema, error) { - if path == "" { - return nil, nil - } - - // Resolve relative paths - if !filepath.IsAbs(path) { - path = filepath.Join(baseDir, path) - } - - cleanPath := filepath.Clean(path) - - data, err := os.ReadFile(cleanPath) - if err != nil { - return nil, fmt.Errorf("reading schema file: %w", err) - } - - var ys yamlSchema - if err := yaml.Unmarshal(data, &ys); err != nil { - return nil, fmt.Errorf("parsing schema: %w", err) - } - - return yamlSchemaToTypeSchema(&ys) -} - -// yamlSchemaToTypeSchema converts the YAML representation to TypeSchema. -func yamlSchemaToTypeSchema(ys *yamlSchema) (*TypeSchema, error) { - schema := NewTypeSchema() - - for modelName, ym := range ys.Models { - model := &Model{ - Name: modelName, - Fields: make([]*Field, 0), - Relationships: make([]*Relationship, 0), - } - - // Convert fields - if ym.Fields != nil { - for fieldName, yf := range ym.Fields { - typ, err := ParseTypeString(yf.Type) - if err != nil { - return nil, fmt.Errorf("model %s, field %s: %w", modelName, fieldName, err) - } - - model.Fields = append(model.Fields, &Field{ - Name: fieldName, - Type: typ, - Required: yf.Required, - Unique: yf.Unique, - }) - } - } - - // Convert relationships - if ym.Relationships != nil { - for relName, yr := range ym.Relationships { - model.Relationships = append(model.Relationships, &Relationship{ - Name: relName, - RelType: yr.RelType, - Target: yr.Target, - Many: yr.Many, - Direction: Direction(yr.Direction), - }) - } - } - - schema.Models[model.Name] = model - } - - return schema, nil -} - -// WriteSchema writes a TypeSchema as YAML to the given writer. -// The output includes a yaml-language-server schema comment for editor validation. -func WriteSchema(w io.Writer, schema *TypeSchema) error { - // Write schema comment for editor validation - if _, err := fmt.Fprintln(w, "# yaml-language-server: $schema=https://raw.githubusercontent.com/rlch/scaf/main/.scaf-type.schema.json"); err != nil { - return err - } - if _, err := fmt.Fprintln(w); err != nil { - return err - } - - // Convert to YAML representation - ys := &yamlSchema{ - Models: make(map[string]*yamlModel), - } - - // Sort model names for deterministic output - modelNames := make([]string, 0, len(schema.Models)) - for name := range schema.Models { - modelNames = append(modelNames, name) - } - sort.Strings(modelNames) - - for _, name := range modelNames { - model := schema.Models[name] - - ym := &yamlModel{} - - // Convert fields - if len(model.Fields) > 0 { - ym.Fields = make(map[string]*yamlField) - for _, field := range model.Fields { - ym.Fields[field.Name] = &yamlField{ - Type: field.Type.String(), - Required: field.Required, - Unique: field.Unique, - } - } - } - - // Convert relationships - if len(model.Relationships) > 0 { - ym.Relationships = make(map[string]*yamlRelationship) - for _, rel := range model.Relationships { - ym.Relationships[rel.Name] = &yamlRelationship{ - RelType: rel.RelType, - Target: rel.Target, - Many: rel.Many, - Direction: string(rel.Direction), - } - } - } - - ys.Models[name] = ym - } - - encoder := yaml.NewEncoder(w) - encoder.SetIndent(2) - defer encoder.Close() - - return encoder.Encode(ys) -} - -// TypeKind represents the kind of a type. -type TypeKind string - -// Type kind constants. -const ( - TypeKindPrimitive TypeKind = "primitive" // string, int, bool, float64, etc. - TypeKindSlice TypeKind = "slice" // []T - TypeKindArray TypeKind = "array" // [N]T - TypeKindMap TypeKind = "map" // map[K]V - TypeKindPointer TypeKind = "pointer" // *T - TypeKindNamed TypeKind = "named" // time.Time, uuid.UUID, etc. -) - -// Type represents a type in the schema. -// This is a recursive structure that can represent complex types like []map[string]*Person. -type Type struct { - // Kind is the category of this type. - Kind TypeKind - - // Name is the type name. - // For primitives: "string", "int", "bool", "float64", etc. - // For named types: "Time", "UUID", etc. - Name string - - // Package is the package path for named types (e.g., "time", "github.com/google/uuid"). - // Empty for primitives. - Package string - - // Elem is the element type for slices, arrays, pointers, and map values. - Elem *Type - - // Key is the key type for maps. - Key *Type - - // ArrayLen is the length for array types. - ArrayLen int -} - -// String returns a Go-style string representation of the type. -func (t *Type) String() string { - if t == nil { - return "" - } - - switch t.Kind { - case TypeKindPrimitive: - return t.Name - case TypeKindSlice: - return "[]" + t.Elem.String() - case TypeKindArray: - return "[" + strconv.Itoa(t.ArrayLen) + "]" + t.Elem.String() - case TypeKindMap: - return "map[" + t.Key.String() + "]" + t.Elem.String() - case TypeKindPointer: - return "*" + t.Elem.String() - case TypeKindNamed: - if t.Package != "" { - return t.Package + "." + t.Name - } - - return t.Name - default: - return t.Name - } -} - -// ParseTypeString parses a Go-style type string into a Type. -// Supports: string, int, int64, float64, bool, []T, [N]T, *T, map[K]V, pkg.Name -// -// Examples: -// -// "string" -> TypeKindPrimitive, Name="string" -// "[]string" -> TypeKindSlice, Elem=string -// "[5]int" -> TypeKindArray, ArrayLen=5, Elem=int -// "*int" -> TypeKindPointer, Elem=int -// "map[string]int" -> TypeKindMap, Key=string, Elem=int -// "time.Time" -> TypeKindNamed, Package="time", Name="Time" -// "[]map[string]*int" -> nested types -func ParseTypeString(s string) (*Type, error) { - s = strings.TrimSpace(s) - if s == "" { - return nil, fmt.Errorf("empty type string") - } - - return parseType(s) -} - -// parseType recursively parses a type string. -func parseType(s string) (*Type, error) { - // Check for slice: []T - if strings.HasPrefix(s, "[]") { - elem, err := parseType(s[2:]) - if err != nil { - return nil, err - } - return SliceOf(elem), nil - } - - // Check for array: [N]T - if strings.HasPrefix(s, "[") { - closeIdx := strings.Index(s, "]") - if closeIdx == -1 { - return nil, fmt.Errorf("invalid array type: %s", s) - } - - lenStr := s[1:closeIdx] - if lenStr == "" { - return nil, fmt.Errorf("invalid array type: %s", s) - } - - arrayLen, err := strconv.Atoi(lenStr) - if err != nil { - return nil, fmt.Errorf("invalid array length %q: %w", lenStr, err) - } - - elem, err := parseType(s[closeIdx+1:]) - if err != nil { - return nil, err - } - - return &Type{Kind: TypeKindArray, ArrayLen: arrayLen, Elem: elem}, nil - } - - // Check for pointer: *T - if strings.HasPrefix(s, "*") { - elem, err := parseType(s[1:]) - if err != nil { - return nil, err - } - return PointerTo(elem), nil - } - - // Check for map: map[K]V - if strings.HasPrefix(s, "map[") { - // Find the closing bracket for the key type - depth := 0 - keyEnd := -1 - - for i := 4; i < len(s); i++ { - switch s[i] { - case '[': - depth++ - case ']': - if depth == 0 { - keyEnd = i - } else { - depth-- - } - } - - if keyEnd != -1 { - break - } - } - - if keyEnd == -1 { - return nil, fmt.Errorf("invalid map type: %s", s) - } - - keyStr := s[4:keyEnd] - valueStr := s[keyEnd+1:] - - key, err := parseType(keyStr) - if err != nil { - return nil, fmt.Errorf("invalid map key type: %w", err) - } - - value, err := parseType(valueStr) - if err != nil { - return nil, fmt.Errorf("invalid map value type: %w", err) - } - - return MapOf(key, value), nil - } - - // Check for named type: pkg.Name - if idx := strings.LastIndex(s, "."); idx > 0 { - pkg := s[:idx] - name := s[idx+1:] - - if isValidIdentifier(pkg) && isValidIdentifier(name) { - return NamedType(pkg, name), nil - } - } - - // Check for primitive types - if isPrimitiveType(s) { - return &Type{Kind: TypeKindPrimitive, Name: s}, nil - } - - // Treat as named type without package (user-defined type in same package) - if isValidIdentifier(s) { - return NamedType("", s), nil - } - - return nil, fmt.Errorf("unrecognized type: %s", s) -} - -// isPrimitiveType returns true if s is a Go primitive type name. -func isPrimitiveType(s string) bool { - switch s { - case "bool", "string", - "int", "int8", "int16", "int32", "int64", - "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", - "byte", "rune", - "float32", "float64", - "complex64", "complex128", - "any", "error": - return true - } - return false -} - -// isValidIdentifier returns true if s is a valid Go identifier. -func isValidIdentifier(s string) bool { - if s == "" { - return false - } - - for i, r := range s { - if i == 0 { - if !unicode.IsLetter(r) && r != '_' { - return false - } - } else { - if !unicode.IsLetter(r) && !unicode.IsDigit(r) && r != '_' { - return false - } - } - } - - return true -} - -// Primitive type constructors for convenience. -var ( - TypeString = &Type{Kind: TypeKindPrimitive, Name: "string"} - TypeInt = &Type{Kind: TypeKindPrimitive, Name: "int"} - TypeInt64 = &Type{Kind: TypeKindPrimitive, Name: "int64"} - TypeFloat64 = &Type{Kind: TypeKindPrimitive, Name: "float64"} - TypeBool = &Type{Kind: TypeKindPrimitive, Name: "bool"} -) - -// SliceOf creates a slice type. -func SliceOf(elem *Type) *Type { - return &Type{Kind: TypeKindSlice, Elem: elem} -} - -// PointerTo creates a pointer type. -func PointerTo(elem *Type) *Type { - return &Type{Kind: TypeKindPointer, Elem: elem} -} - -// MapOf creates a map type. -func MapOf(key, value *Type) *Type { - return &Type{Kind: TypeKindMap, Key: key, Elem: value} -} - -// NamedType creates a named type. -func NamedType(pkg, name string) *Type { - return &Type{Kind: TypeKindNamed, Package: pkg, Name: name} -} - -// Model represents a database entity (node, relationship, table, etc.). -// In graph databases, both nodes and relationships are models. -// In relational databases, tables are models. -type Model struct { - // Name is the model identifier (e.g., "Person", "ACTED_IN"). - Name string - - // Fields are the properties/columns on this model. - Fields []*Field - - // Relationships are edges from this model to other models. - // Only applicable for node-like models in graph databases. - Relationships []*Relationship -} - -// Field represents a property/column on a model. -type Field struct { - // Name is the field name as it appears in queries (e.g., "name", "age"). - Name string - - // Type is the field's type. - Type *Type - - // Required indicates whether the field must have a value. - Required bool - - // Unique indicates whether this field has a uniqueness constraint. - // When a query filters on a unique field with equality, it returns at most one row. - Unique bool -} - -// Relationship represents an edge from one model to another. -type Relationship struct { - // Name is the field name on the source model (e.g., "Friends", "ActedIn"). - Name string - - // RelType is the relationship type in the database (e.g., "FRIENDS", "ACTED_IN"). - RelType string - - // Target is the target model name. - // For shorthand relationships: the target node (e.g., "Person"). - // For relationship structs: the relationship model (e.g., "ActedIn"). - Target string - - // Many indicates whether this is a one-to-many relationship. - // true = Many[T], false = One[T] - Many bool - - // Direction is the relationship direction. - Direction Direction -} - -// Direction represents the direction of a relationship. -type Direction string - -const ( - // DirectionOutgoing represents an outgoing relationship (->). - DirectionOutgoing Direction = "outgoing" - // DirectionIncoming represents an incoming relationship (<-). - DirectionIncoming Direction = "incoming" -) - -// SchemaAdapter is the interface that adapter libraries implement to extract -// type schemas from user codebases. -// -// Adapters are created with the types to be registered, then ExtractSchema -// is called to generate the schema. Each adapter's constructor takes the -// types to register. -// -// Example usage in user's codebase: -// -// // cmd/scaf-schema/main.go -// package main -// -// import ( -// "log" -// "os" -// -// "github.com/rlch/scaf/adapters/neogo" -// "github.com/rlch/scaf/analysis" -// "myapp/models" -// ) -// -// func main() { -// adapter := neogo.NewAdapter( -// &models.Person{}, -// &models.Movie{}, -// &models.ActedIn{}, -// ) -// schema, err := adapter.ExtractSchema() -// if err != nil { -// log.Fatal(err) -// } -// if err := analysis.WriteSchema(os.Stdout, schema); err != nil { -// log.Fatal(err) -// } -// } -// -// The user then runs: go run ./cmd/scaf-schema > .scaf-schema.yaml -// The LSP reads .scaf-schema.yaml to provide completions and type info. -type SchemaAdapter interface { - // ExtractSchema discovers models from registered types and returns - // a TypeSchema. The adapter is responsible for: - // - Extracting fields and their types from registered types - // - Discovering relationships between models - // - Mapping library-specific metadata to the dialect-agnostic schema - ExtractSchema() (*TypeSchema, error) -} - -// SchemaAwareAnalyzer extends scaf.QueryAnalyzer with schema-aware analysis. -// When schema is provided, the analyzer can determine cardinality (ReturnsOne) -// by checking if the query filters on unique fields. -// -// Dialect analyzers that support cardinality inference should implement this interface. -// The Go code generator checks for this interface and uses it when available. -type SchemaAwareAnalyzer interface { - // AnalyzeQueryWithSchema extracts metadata using schema for cardinality inference. - // If schema is nil, behaves like AnalyzeQuery with ReturnsOne = false. - AnalyzeQueryWithSchema(query string, schema *TypeSchema) (*scaf.QueryMetadata, error) -} diff --git a/example/vendor/github.com/rlch/scaf/analysis/types.go b/example/vendor/github.com/rlch/scaf/analysis/types.go deleted file mode 100644 index c12c40c..0000000 --- a/example/vendor/github.com/rlch/scaf/analysis/types.go +++ /dev/null @@ -1,153 +0,0 @@ -// Package analysis provides semantic analysis for scaf DSL files. -package analysis - -import ( - "github.com/rlch/scaf" -) - -// AnalyzedFile holds semantic analysis results for a single file. -type AnalyzedFile struct { - // Path is the file path (URI in LSP terms). - Path string - - // Suite is the parsed AST. Nil if parsing failed completely. - Suite *scaf.Suite - - // ParseError holds the parse error if parsing failed. - ParseError error - - // Diagnostics contains all errors and warnings found during analysis. - Diagnostics []Diagnostic - - // Symbols contains all definitions in this file. - Symbols *SymbolTable - - // RecoverySuite is an alternate parse with recovery enabled. - // This may have different structure than Suite when valid syntax - // is affected by recovery mode, but provides better completion context. - // May be nil if recovery wasn't attempted or had same result. - RecoverySuite *scaf.Suite - - // RecoveryError is the error from recovery parse (may be different from ParseError). - RecoveryError error - - // Resolver is used for cross-file analysis (e.g., validating setup calls). - // May be nil if cross-file analysis is not available. - Resolver CrossFileResolver -} - -// SymbolTable holds all named definitions in a file. -type SymbolTable struct { - // Queries maps query name to its symbol. - Queries map[string]*QuerySymbol - - // Imports maps alias (or base name) to import symbol. - Imports map[string]*ImportSymbol - - // Setups maps setup name to its symbol (for named setups in SetupClause blocks). - // Note: scaf doesn't define setups in-file yet, but imports reference them. - Setups map[string]*SetupSymbol - - // Tests contains all test symbols, keyed by full path (e.g., "QueryName/GroupName/TestName"). - Tests map[string]*TestSymbol -} - -// NewSymbolTable creates an empty symbol table. -func NewSymbolTable() *SymbolTable { - return &SymbolTable{ - Queries: make(map[string]*QuerySymbol), - Imports: make(map[string]*ImportSymbol), - Setups: make(map[string]*SetupSymbol), - Tests: make(map[string]*TestSymbol), - } -} - -// SymbolKind represents the type of a symbol. -type SymbolKind int - -// Symbol kind constants. -const ( - SymbolKindQuery SymbolKind = iota - SymbolKindImport - SymbolKindSetup - SymbolKindTest - SymbolKindGroup - SymbolKindParam -) - -// Symbol is the base type for all symbol kinds. -type Symbol struct { - Name string - Span scaf.Span - Kind SymbolKind -} - -// QuerySymbol represents a query definition. -type QuerySymbol struct { - Symbol - - Body string - - // Params are the $-prefixed parameters extracted from the query body. - // Useful for completion and validation. - Params []string - - // Node is the AST node for this query. - Node *scaf.Query -} - -// ImportSymbol represents an import statement. -type ImportSymbol struct { - Symbol - - // Alias is the import alias (nil if using default base name). - Alias *string - // Path is the import path. - Path string - // Node is the AST node for this import. - Node *scaf.Import - // Used tracks whether this import is referenced (for unused import warnings). - Used bool -} - -// SetupSymbol represents a named setup (from imports). -type SetupSymbol struct { - Symbol - - // Module is the module alias this setup comes from. - Module string - // Params are the expected parameters. - Params []string -} - -// TestSymbol represents a test definition. -type TestSymbol struct { - Symbol - - // FullPath is the full path to this test (e.g., "GetUser/basic lookups/finds Alice"). - FullPath string - // QueryScope is the parent query scope name. - QueryScope string - // Node is the AST node for this test. - Node *scaf.Test -} - -// Diagnostic represents an error or warning found during analysis. -type Diagnostic struct { - Span scaf.Span - Severity DiagnosticSeverity - Message string - Code string // e.g., "undefined-query", "unused-import" - Source string // "scaf" -} - -// DiagnosticSeverity indicates the severity of a diagnostic. -type DiagnosticSeverity int - -// Diagnostic severity constants. -const ( - SeverityError DiagnosticSeverity = iota + 1 - SeverityWarning - SeverityInformation - SeverityHint -) diff --git a/example/vendor/github.com/rlch/scaf/ast.go b/example/vendor/github.com/rlch/scaf/ast.go deleted file mode 100644 index 0ef6a1a..0000000 --- a/example/vendor/github.com/rlch/scaf/ast.go +++ /dev/null @@ -1,622 +0,0 @@ -// Package scaf provides a DSL parser for database test scaffolding. -package scaf - -import ( - "fmt" - "strconv" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -// ============================================================================= -// Common embedded types for AST nodes -// ============================================================================= - -// NodeMeta contains position and token information common to all AST nodes. -// Participle automatically populates these fields during parsing. -type NodeMeta struct { - Pos lexer.Position `parser:""` - EndPos lexer.Position `parser:""` - Tokens []lexer.Token `parser:""` -} - -// Span returns the source span of this node. -func (n *NodeMeta) Span() Span { return Span{Start: n.Pos, End: n.EndPos} } - -// CommentMeta holds comments attached to a node (populated after parsing). -type CommentMeta struct { - LeadingComments []string `parser:""` - TrailingComment string `parser:""` -} - -// RecoveryMeta holds recovery metadata for nodes that support error recovery. -// If RecoveredSpan is non-zero, it indicates recovery happened during parsing. -// Participle automatically populates these fields when recovery occurs. -type RecoveryMeta struct { - // RecoveredSpan is the position where the parse error occurred. - RecoveredSpan lexer.Position `parser:""` - // RecoveredEnd is the position where recovery ended (after skipped tokens). - RecoveredEnd lexer.Position `parser:""` - // RecoveredTokens are the tokens that were skipped during recovery. - // These can be used to understand what the user was typing when the error occurred. - RecoveredTokens []lexer.Token `parser:""` -} - -// WasRecovered returns true if this node was recovered from a parse error. -func (r *RecoveryMeta) WasRecovered() bool { - return r.RecoveredSpan.Line != 0 || r.RecoveredSpan.Column != 0 -} - -// RecoveredText returns the text that was skipped during recovery. -func (r *RecoveryMeta) RecoveredText() string { - if len(r.RecoveredTokens) == 0 { - return "" - } - var b strings.Builder - for _, tok := range r.RecoveredTokens { - b.WriteString(tok.Value) - } - return b.String() -} - -// LastRecoveredToken returns the last token that was recovered, or nil if none. -func (r *RecoveryMeta) LastRecoveredToken() *lexer.Token { - if len(r.RecoveredTokens) == 0 { - return nil - } - return &r.RecoveredTokens[len(r.RecoveredTokens)-1] -} - -// ============================================================================= -// Interfaces -// ============================================================================= - -// Node is the interface implemented by all AST nodes. -// It provides access to position information for error reporting and formatting. -type Node interface { - Span() Span -} - -// CompletableNode is implemented by AST nodes that can detect incomplete syntax -// for providing intelligent completions during typing. -type CompletableNode interface { - Node - // IsComplete returns true if the node is syntactically complete. - // Incomplete nodes (e.g., "setup fixtures." without function name) are used - // to provide context-aware completions. - IsComplete() bool -} - -// ============================================================================= -// Top-level AST nodes -// ============================================================================= - -// Suite represents a complete test file with queries, setup, teardown, and test scopes. -type Suite struct { - NodeMeta - CommentMeta - RecoveryMeta - - Imports []*Import `parser:"@@*"` - Queries []*Query `parser:"@@*"` - Setup *SetupClause `parser:"('setup' @@)?"` - Teardown *string `parser:"('teardown' @RawString)?"` - Scopes []*QueryScope `parser:"@@*"` -} - -// Import represents a module import statement. -// Examples: -// -// import "../../setup/lesson_plan_db" -// import fixtures "../shared/fixtures" -type Import struct { - NodeMeta - CommentMeta - RecoveryMeta - - Alias *string `parser:"'import' @Ident?"` - Path string `parser:"@String"` -} - -// Query defines a named database query. -type Query struct { - NodeMeta - CommentMeta - RecoveryMeta - Name string `parser:"'query' @Ident"` - Body string `parser:"@RawString"` -} - -// ============================================================================= -// Setup-related nodes -// ============================================================================= - -// SetupClause represents a setup: inline query, module setup, query call, or block. -// Examples: -// -// setup `CREATE (:User)` // inline query -// setup fixtures // module setup (runs module's setup clause) -// setup fixtures.CreateUser($id: 1, $name: "Alice") // query call with params -// setup { fixtures; fixtures.CreateUser($id: 1) } // block with multiple items -type SetupClause struct { - NodeMeta - RecoveryMeta - Inline *string `parser:"@RawString"` - Call *SetupCall `parser:"| @@"` - Module *string `parser:"| @Ident"` - Block []*SetupItem `parser:"| '{' @@* '}'"` -} - -// IsComplete returns true if the setup clause has content. -func (s *SetupClause) IsComplete() bool { - return s.Inline != nil || s.Module != nil || s.Call != nil || len(s.Block) > 0 -} - -// SetupItem represents a single item in a setup block. -// Can be an inline query, module setup, or query call. -type SetupItem struct { - NodeMeta - RecoveryMeta - Inline *string `parser:"@RawString"` - Call *SetupCall `parser:"| @@"` - Module *string `parser:"| @Ident"` -} - -// SetupCall invokes a query from a module with parameters. -// Examples: -// -// fixtures.CreateUser($id: 1, $name: "Alice") -// db.SeedData() -type SetupCall struct { - NodeMeta - RecoveryMeta - Module string `parser:"@Ident Dot"` - Query string `parser:"@Ident '('"` - Params []*SetupParam `parser:"(@@ (Comma @@)*)? ')'"` -} - -// IsComplete returns true if the setup call has all required parts. -func (c *SetupCall) IsComplete() bool { - return c.Module != "" && c.Query != "" -} - -// SetupParam is a parameter passed to a named setup. -type SetupParam struct { - NodeMeta - RecoveryMeta - Name string `parser:"@Ident Colon"` - Value *ParamValue `parser:"@@"` -} - -// ParamValue represents a value in a parameter - either a literal or a field reference. -// Field references allow passing result values to assert queries. -// Examples: -// -// $userId: 1 // literal -// $authorId: u.id // field reference from parent scope -// -// Note: Literal must come first to match keywords (true, false, null) before they're -// captured as identifiers by FieldRef. -type ParamValue struct { - NodeMeta - RecoveryMeta - Literal *Value `parser:"@@"` - FieldRef *DottedIdent `parser:"| @@"` -} - -// ToGo converts a ParamValue to a native Go type. -// For field refs, returns nil - caller must resolve from scope. -func (p *ParamValue) ToGo() any { - if p.Literal != nil { - return p.Literal.ToGo() - } - - return nil // Field ref - must be resolved by runner -} - -// IsFieldRef returns true if this is a field reference. -func (p *ParamValue) IsFieldRef() bool { - return p.FieldRef != nil && p.Literal == nil -} - -// FieldRefString returns the field reference as a string, or empty if not a field ref. -func (p *ParamValue) FieldRefString() string { - if p.FieldRef != nil { - return p.FieldRef.String() - } - - return "" -} - -// String returns a string representation of the ParamValue. -func (p *ParamValue) String() string { - if p.FieldRef != nil { - return p.FieldRef.String() - } - - if p.Literal != nil { - return p.Literal.String() - } - - return "" -} - -// ============================================================================= -// Scope and Test nodes -// ============================================================================= - -// QueryScope groups tests that target a specific query. -type QueryScope struct { - NodeMeta - CommentMeta - RecoveryMeta - QueryName string `parser:"@Ident '{'"` - Setup *SetupClause `parser:"('setup' @@)?"` - Teardown *string `parser:"('teardown' @RawString)?"` - Items []*TestOrGroup `parser:"@@*"` - Close string `parser:"@'}'"` -} - -// IsComplete returns true if the query scope has a closing brace. -func (q *QueryScope) IsComplete() bool { - return q.Close != "" -} - -// TestOrGroup is a union type - either a Test or a Group. -type TestOrGroup struct { - NodeMeta - RecoveryMeta - Test *Test `parser:"@@"` - Group *Group `parser:"| @@"` -} - -// Group organizes related tests with optional shared setup and teardown. -type Group struct { - NodeMeta - CommentMeta - RecoveryMeta - Name string `parser:"'group' @String '{'"` - Setup *SetupClause `parser:"('setup' @@)?"` - Teardown *string `parser:"('teardown' @RawString)?"` - Items []*TestOrGroup `parser:"@@*"` - Close string `parser:"@'}'"` -} - -// IsComplete returns true if the group has a closing brace. -func (g *Group) IsComplete() bool { - return g.Close != "" -} - -// Test defines a single test case with inputs, expected outputs, and optional assertions. -// Tests run in a transaction that rolls back after execution, so no teardown is needed. -type Test struct { - NodeMeta - CommentMeta - RecoveryMeta - Name string `parser:"'test' @String '{'"` - Setup *SetupClause `parser:"('setup' @@)?"` - Statements []*Statement `parser:"@@*"` - Asserts []*Assert `parser:"@@*"` - Close string `parser:"@'}'"` -} - -// IsComplete returns true if the test has a closing brace. -func (t *Test) IsComplete() bool { - return t.Close != "" -} - -// ============================================================================= -// Assert nodes -// ============================================================================= - -// Assert represents an assertion block with optional query. -// Expressions are captured as tokens and reconstructed as strings for expr.Compile(). -// Examples: -// -// assert { u.age > 18 } // standalone expr -// assert { x > 0; y < 10; z == 5 } // multiple exprs -// assert CreatePost($title: "x") { p.title == "x" } // named query with conditions -// assert `MATCH (n) RETURN count(n) as cnt` { cnt > 0 } // inline query with conditions -type Assert struct { - NodeMeta - RecoveryMeta - Query *AssertQuery `parser:"'assert' @@? '{'"` - Conditions []*Expr `parser:"(@@ Semi?)*"` - Close string `parser:"@'}'"` -} - -// IsComplete returns true if the assert has a closing brace. -func (a *Assert) IsComplete() bool { - return a.Close != "" -} - -// AssertQuery specifies the query to run before evaluating conditions. -// Either an inline raw string query or a named query reference with params. -type AssertQuery struct { - NodeMeta - RecoveryMeta - // Inline query (raw string) - Inline *string `parser:"@RawString"` - // Or named query reference with required parentheses - QueryName *string `parser:"| @Ident '('"` - Params []*SetupParam `parser:"(@@ (Comma @@)*)? ')'"` -} - -// ============================================================================= -// Expression nodes -// ============================================================================= - -// Expr captures tokens for expr-lang evaluation. -// Tokens are reconstructed into a string and parsed by expr.Compile() at runtime. -type Expr struct { - NodeMeta - RecoveryMeta - ExprTokens []*ExprToken `parser:"@@+"` -} - -// String reconstructs the expression as a string for expr-lang. -func (e *Expr) String() string { - if e == nil || len(e.ExprTokens) == 0 { - return "" - } - - var b strings.Builder - - for i, tok := range e.ExprTokens { - if i > 0 { - prev := e.ExprTokens[i-1] - // Add space between tokens except: - // - around dots (u.name) - // - after open brackets (foo(x), arr[0]) - // - before close brackets (foo(x), arr[0]) - // - between identifier and open bracket (function calls: len(x)) - // - after comma (we add space after comma below) - needsSpace := !prev.IsDot() && !prev.IsOpenBracket() && !prev.Comma && - !tok.IsDot() && !tok.IsCloseBracket() && - (!prev.IsIdent() || !tok.IsOpenBracket()) - if needsSpace { - b.WriteByte(' ') - } - } - - b.WriteString(tok.String()) - // Add space after comma - if tok.Comma { - b.WriteByte(' ') - } - } - - return b.String() -} - -// ExprToken captures individual tokens that can appear in expressions. -// Matches expr-lang's token kinds: Identifier, Number, String, Operator, Bracket. -// Note: { } ; are NOT captured as they're expression delimiters. -type ExprToken struct { - NodeMeta - RecoveryMeta - Str *string `parser:"@String"` - Number *string `parser:"| @Number"` - Ident *string `parser:"| @Ident"` - Op *string `parser:"| @Op"` - Dot bool `parser:"| @Dot"` - Colon bool `parser:"| @Colon"` - Comma bool `parser:"| @Comma"` - LParen bool `parser:"| @'('"` - RParen bool `parser:"| @')'"` - LBrack bool `parser:"| @'['"` - RBrack bool `parser:"| @']'"` -} - -// String returns the string representation of a token. -func (t *ExprToken) String() string { - switch { - case t.Str != nil: - return fmt.Sprintf("%q", *t.Str) - case t.Number != nil: - return *t.Number - case t.Ident != nil: - return *t.Ident - case t.Op != nil: - return *t.Op - case t.Dot: - return "." - case t.Colon: - return ":" - case t.Comma: - return "," - case t.LParen: - return "(" - case t.RParen: - return ")" - case t.LBrack: - return "[" - case t.RBrack: - return "]" - default: - return "" - } -} - -// IsDot returns true if this token is a dot. -func (t *ExprToken) IsDot() bool { - return t.Dot -} - -// IsOpenBracket returns true if this token is an opening bracket. -func (t *ExprToken) IsOpenBracket() bool { - return t.LParen || t.LBrack -} - -// IsCloseBracket returns true if this token is a closing bracket. -func (t *ExprToken) IsCloseBracket() bool { - return t.RParen || t.RBrack -} - -// IsIdent returns true if this token is an identifier. -func (t *ExprToken) IsIdent() bool { - return t.Ident != nil -} - -// ============================================================================= -// Statement and Value nodes -// ============================================================================= - -// DottedIdent represents a dot-separated identifier like "u.name" or "$userId". -type DottedIdent struct { - NodeMeta - RecoveryMeta - Parts []string `parser:"@Ident (Dot @Ident)*"` -} - -// String returns the dot-joined identifier. -func (d *DottedIdent) String() string { - return strings.Join(d.Parts, ".") -} - -// Statement represents a key-value pair for inputs ($var) or expected outputs. -// Examples: -// -// $userId: 1 // input parameter -// u.name: "Alice" // expected output (equality) -type Statement struct { - NodeMeta - RecoveryMeta - KeyParts *DottedIdent `parser:"@@"` - Value *Value `parser:"Colon @@"` -} - -// Key returns the statement key as a dot-joined string. -func (s *Statement) Key() string { - if s.KeyParts == nil { - return "" - } - - return s.KeyParts.String() -} - -// NewStatement creates a Statement from a dot-separated key string and value. -// This is a convenience constructor for testing and programmatic AST construction. -// -//nolint:funcorder -func NewStatement(key string, value *Value) *Statement { - parts := strings.Split(key, ".") - - return &Statement{ - KeyParts: &DottedIdent{Parts: parts}, - Value: value, - } -} - -// Boolean is a bool type that implements participle's Capture interface. -type Boolean bool - -// Capture implements participle's Capture interface for Boolean. -func (b *Boolean) Capture(values []string) error { - *b = values[0] == "true" - - return nil -} - -// Value represents a literal value (string, number, bool, null, map, or list). -type Value struct { - NodeMeta - RecoveryMeta - Null bool `parser:"@'null'"` - Str *string `parser:"| @String"` - Number *float64 `parser:"| @Number"` - Boolean *Boolean `parser:"| @('true' | 'false')"` - Map *Map `parser:"| @@"` - List *List `parser:"| @@"` -} - -// Map represents a key-value map literal. -type Map struct { - NodeMeta - RecoveryMeta - Entries []*MapEntry `parser:"'{' (@@ (Comma @@)*)? '}'"` -} - -// MapEntry represents a single entry in a map literal. -type MapEntry struct { - NodeMeta - RecoveryMeta - Key string `parser:"@Ident Colon"` - Value *Value `parser:"@@"` -} - -// List represents an array/list literal. -type List struct { - NodeMeta - RecoveryMeta - Values []*Value `parser:"'[' (@@ (Comma @@)*)? ']'"` -} - -// ToGo converts a Value to a native Go type. -func (v *Value) ToGo() any { - switch { - case v.Null: - return nil - case v.Str != nil: - return *v.Str - case v.Number != nil: - return *v.Number - case v.Boolean != nil: - return bool(*v.Boolean) - case v.Map != nil: - m := make(map[string]any) - for _, e := range v.Map.Entries { - m[e.Key] = e.Value.ToGo() - } - - return m - case v.List != nil: - l := make([]any, len(v.List.Values)) - for i, val := range v.List.Values { - l[i] = val.ToGo() - } - - return l - default: - return nil - } -} - -// String returns a string representation of the Value. -func (v *Value) String() string { - switch { - case v.Null: - return "null" - case v.Str != nil: - return fmt.Sprintf("%q", *v.Str) - case v.Number != nil: - return fmt.Sprintf("%v", *v.Number) - case v.Boolean != nil: - return strconv.FormatBool(bool(*v.Boolean)) - case v.Map != nil: - return v.mapString() - case v.List != nil: - return v.listString() - default: - return "nil" - } -} - -func (v *Value) mapString() string { - parts := make([]string, len(v.Map.Entries)) - for i, e := range v.Map.Entries { - parts[i] = fmt.Sprintf("%s: %s", e.Key, e.Value) - } - - return "{" + strings.Join(parts, ", ") + "}" -} - -func (v *Value) listString() string { - parts := make([]string, len(v.List.Values)) - for i, val := range v.List.Values { - parts[i] = val.String() - } - - return "[" + strings.Join(parts, ", ") + "]" -} diff --git a/example/vendor/github.com/rlch/scaf/config.go b/example/vendor/github.com/rlch/scaf/config.go deleted file mode 100644 index 2678532..0000000 --- a/example/vendor/github.com/rlch/scaf/config.go +++ /dev/null @@ -1,132 +0,0 @@ -package scaf - -import ( - "os" - "path/filepath" - - "gopkg.in/yaml.v3" -) - -// Config represents the .scaf.yaml configuration file. -type Config struct { - // Database-specific configurations. - // Only one should be set. The presence of a database config determines - // which database to use and implies the dialect. - Neo4j *Neo4jConfig `yaml:"neo4j,omitempty"` - Postgres *PostgresConfig `yaml:"postgres,omitempty"` - - // Generate config for code generation - Generate GenerateConfig `yaml:"generate,omitempty"` -} - -// Neo4jConfig holds Neo4j connection settings. -type Neo4jConfig struct { - URI string `yaml:"uri"` - Username string `yaml:"username,omitempty"` - Password string `yaml:"password,omitempty"` - Database string `yaml:"database,omitempty"` -} - -// PostgresConfig holds PostgreSQL connection settings. -type PostgresConfig struct { - Host string `yaml:"host,omitempty"` - Port int `yaml:"port,omitempty"` - Database string `yaml:"database,omitempty"` - User string `yaml:"user,omitempty"` - Password string `yaml:"password,omitempty"` - SSLMode string `yaml:"sslmode,omitempty"` - // Alternative: connection string - URI string `yaml:"uri,omitempty"` -} - -// DatabaseName returns the configured database name, or empty if none. -func (c *Config) DatabaseName() string { - switch { - case c.Neo4j != nil: - return DatabaseNeo4j - case c.Postgres != nil: - return DatabasePostgres - default: - return "" - } -} - -// DialectName returns the dialect name based on configuration. -func (c *Config) DialectName() string { - return DialectForDatabase(c.DatabaseName()) -} - -// GenerateConfig holds settings for the generate command. -type GenerateConfig struct { - // Language target (e.g., "go") - Lang string `yaml:"lang,omitempty"` - - // Database adapter (e.g., "neogo") - Adapter string `yaml:"adapter,omitempty"` - - // Output directory for generated files - Out string `yaml:"out,omitempty"` - - // Package name for generated code (Go-specific) - Package string `yaml:"package,omitempty"` - - // Schema is the path to the schema YAML file (e.g., ".scaf-schema.yaml"). - // The schema provides type information for accurate code generation. - Schema string `yaml:"schema,omitempty"` -} - -// DefaultConfigNames are the filenames we search for. -var DefaultConfigNames = []string{".scaf.yaml", ".scaf.yml", "scaf.yaml", "scaf.yml"} - -// LoadConfig finds and loads the nearest .scaf.yaml walking up from dir. -func LoadConfig(dir string) (*Config, error) { - path, err := FindConfig(dir) - if err != nil { - return nil, err - } - - return LoadConfigFile(path) -} - -// FindConfig searches for a config file starting from dir and walking up. -func FindConfig(dir string) (string, error) { - absDir, err := filepath.Abs(dir) - if err != nil { - return "", err - } - - for dir := absDir; ; { - for _, name := range DefaultConfigNames { - path := filepath.Join(dir, name) - - _, err := os.Stat(path) - if err == nil { - return path, nil - } - } - - parent := filepath.Dir(dir) - if parent == dir { - return "", ErrConfigNotFound - } - - dir = parent - } -} - -// LoadConfigFile loads a config from a specific path. -func LoadConfigFile(path string) (*Config, error) { - data, err := os.ReadFile(filepath.Clean(path)) - if err != nil { - return nil, err - } - - var cfg Config - - err = yaml.Unmarshal(data, &cfg) - if err != nil { - return nil, err - } - - return &cfg, nil -} diff --git a/example/vendor/github.com/rlch/scaf/database.go b/example/vendor/github.com/rlch/scaf/database.go deleted file mode 100644 index 18ec2f6..0000000 --- a/example/vendor/github.com/rlch/scaf/database.go +++ /dev/null @@ -1,74 +0,0 @@ -package scaf - -import ( - "context" - "fmt" -) - -// Database represents an execution target (neo4j, postgres, mysql). -// It handles connection establishment and query execution. -type Database interface { - // Name returns the database identifier (e.g., "neo4j", "postgres"). - Name() string - - // Dialect returns the query language this database uses. - Dialect() Dialect - - // Execute runs a query with parameters and returns results. - Execute(ctx context.Context, query string, params map[string]any) ([]map[string]any, error) - - // Close releases database resources. - Close() error -} - -// DatabaseTransaction represents an active database transaction. -// Queries executed through a transaction are isolated until Commit or Rollback. -type DatabaseTransaction interface { - // Execute runs a query within this transaction. - Execute(ctx context.Context, query string, params map[string]any) ([]map[string]any, error) - - // Commit commits the transaction. - Commit(ctx context.Context) error - - // Rollback aborts the transaction. - Rollback(ctx context.Context) error -} - -// TransactionalDatabase is implemented by databases that support transactions. -// The runner uses this for test isolation (rollback after each test). -type TransactionalDatabase interface { - Database - - // Begin starts a new transaction. - Begin(ctx context.Context) (DatabaseTransaction, error) -} - -// DatabaseFactory creates a Database from configuration. -type DatabaseFactory func(cfg any) (Database, error) - -var databases = make(map[string]DatabaseFactory) - -// RegisterDatabase registers a database factory by name. -func RegisterDatabase(name string, factory DatabaseFactory) { - databases[name] = factory -} - -// NewDatabase creates a database instance by name. -func NewDatabase(name string, cfg any) (Database, error) { //nolint:ireturn - factory, ok := databases[name] - if !ok { - return nil, fmt.Errorf("%w: %s", ErrUnknownDatabase, name) - } - - return factory(cfg) -} - -// RegisteredDatabases returns the names of all registered databases. -func RegisteredDatabases() []string { - names := make([]string, 0, len(databases)) - for name := range databases { - names = append(names, name) - } - - return names -} diff --git a/example/vendor/github.com/rlch/scaf/dialect.go b/example/vendor/github.com/rlch/scaf/dialect.go deleted file mode 100644 index da05cf1..0000000 --- a/example/vendor/github.com/rlch/scaf/dialect.go +++ /dev/null @@ -1,175 +0,0 @@ -package scaf - -// Dialect represents a query language (cypher, sql). -// It provides static analysis of queries without requiring a database connection. -type Dialect interface { - // Name returns the dialect identifier (e.g., "cypher", "sql"). - Name() string - - // Analyze extracts metadata from a query string. - Analyze(query string) (*QueryMetadata, error) -} - -var dialects = make(map[string]Dialect) - -// RegisterDialect registers a dialect instance by name. -func RegisterDialect(d Dialect) { - dialects[d.Name()] = d -} - -// GetDialect returns a dialect by name. -// Returns nil if no dialect is registered with that name. -func GetDialect(name string) Dialect { //nolint:ireturn - return dialects[name] -} - -// RegisteredDialects returns the names of all registered dialects. -func RegisteredDialects() []string { - names := make([]string, 0, len(dialects)) - for name := range dialects { - names = append(names, name) - } - - return names -} - -// QueryAnalyzer provides static analysis of queries for IDE features. -// This interface exists for backwards compatibility with LSP and language packages. -type QueryAnalyzer interface { - // AnalyzeQuery extracts metadata from a query string. - AnalyzeQuery(query string) (*QueryMetadata, error) -} - - - -// QueryAnalyzerFactory creates a QueryAnalyzer for a dialect. -type QueryAnalyzerFactory func() QueryAnalyzer - -var analyzers = make(map[string]QueryAnalyzerFactory) - -// RegisterAnalyzer registers a query analyzer factory by dialect name. -// Dialects should call this in their init() function. -func RegisterAnalyzer(dialectName string, factory QueryAnalyzerFactory) { - analyzers[dialectName] = factory -} - -// GetAnalyzer returns a QueryAnalyzer for the given dialect name. -// Returns nil if no analyzer is registered for that dialect. -func GetAnalyzer(dialectName string) QueryAnalyzer { //nolint:ireturn - // First check dialect instances (Dialect implements Analyze which maps to AnalyzeQuery) - if d := GetDialect(dialectName); d != nil { - return &dialectAnalyzerAdapter{d} - } - - // Fall back to explicit analyzer registry - factory, ok := analyzers[dialectName] - if !ok { - return nil - } - - return factory() -} - -// dialectAnalyzerAdapter adapts a Dialect to the QueryAnalyzer interface. -type dialectAnalyzerAdapter struct { - dialect Dialect -} - -func (a *dialectAnalyzerAdapter) AnalyzeQuery(query string) (*QueryMetadata, error) { - return a.dialect.Analyze(query) -} - -// RegisteredAnalyzers returns the names of all registered analyzers. -func RegisteredAnalyzers() []string { - names := make([]string, 0, len(analyzers)) - for name := range analyzers { - names = append(names, name) - } - - return names -} - -// MarkdownLanguage returns the markdown language identifier for a dialect. -// Used for syntax highlighting in IDE hover/completion documentation. -func MarkdownLanguage(dialectName string) string { - // Common dialect name to markdown language mapping - switch dialectName { - case DialectCypher, DatabaseNeo4j: - return DialectCypher - case DatabasePostgres, "postgresql", DatabaseMySQL, DatabaseSQLite, DialectSQL: - return DialectSQL - default: - return dialectName - } -} - -// QueryMetadata holds extracted information about a query. -type QueryMetadata struct { - // Parameters are the $-prefixed parameters used in the query. - Parameters []ParameterInfo - - // Returns are the fields returned by the query. - Returns []ReturnInfo - - // ReturnsOne indicates the query returns at most one row. - // When false (default), the query may return multiple rows (slice). - // Set to true when the query filters on a unique field with equality, - // uses LIMIT 1, or is otherwise guaranteed to return a single row. - ReturnsOne bool -} - -// ParameterInfo describes a query parameter. -type ParameterInfo struct { - // Name is the parameter name (without $ prefix). - Name string - - // Type is the inferred type, if known (e.g., "string", "int"). - Type string - - // Position is the character offset in the query. - Position int - - // Line is the 1-indexed line number in the query. - Line int - - // Column is the 1-indexed column in the query. - Column int - - // Length is the length of the parameter reference in characters. - Length int - - // Count is how many times this parameter appears. - Count int -} - -// ReturnInfo describes a returned field. -type ReturnInfo struct { - // Name is the field name or alias. - Name string - - // Type is the inferred type, if known. - Type string - - // Expression is the original expression text. - Expression string - - // Alias is the explicit alias if AS keyword was used, empty otherwise. - // When Alias is set, the database column name is Alias. - // When Alias is empty, the database column name is Expression. - Alias string - - // IsAggregate indicates this is an aggregate function result. - IsAggregate bool - - // IsWildcard indicates this is a wildcard (*) return. - IsWildcard bool - - // Line is the 1-indexed line number in the query where this return field appears. - Line int - - // Column is the 1-indexed column in the query where this return field starts. - Column int - - // Length is the length of the return field expression in characters. - Length int -} diff --git a/example/vendor/github.com/rlch/scaf/docker-compose.yml b/example/vendor/github.com/rlch/scaf/docker-compose.yml deleted file mode 100644 index 2ad6629..0000000 --- a/example/vendor/github.com/rlch/scaf/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - neo4j: - image: neo4j:5-community - ports: - - "7474:7474" # HTTP - - "7687:7687" # Bolt - environment: - - NEO4J_AUTH=neo4j/password - - NEO4J_PLUGINS=["apoc"] - volumes: - - neo4j_data:/data - healthcheck: - test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "password", "RETURN 1"] - interval: 10s - timeout: 5s - retries: 5 - -volumes: - neo4j_data: diff --git a/example/vendor/github.com/rlch/scaf/errors.go b/example/vendor/github.com/rlch/scaf/errors.go deleted file mode 100644 index 8afb34f..0000000 --- a/example/vendor/github.com/rlch/scaf/errors.go +++ /dev/null @@ -1,12 +0,0 @@ -package scaf - -import "errors" - -// Sentinel errors. -var ( - // ErrConfigNotFound is returned when no .scaf.yaml is found. - ErrConfigNotFound = errors.New("scaf: no .scaf.yaml found") - - // ErrUnknownDatabase is returned when an unknown database is requested. - ErrUnknownDatabase = errors.New("scaf: unknown database") -) diff --git a/example/vendor/github.com/rlch/scaf/format.go b/example/vendor/github.com/rlch/scaf/format.go deleted file mode 100644 index eb2fa03..0000000 --- a/example/vendor/github.com/rlch/scaf/format.go +++ /dev/null @@ -1,429 +0,0 @@ -package scaf - -import ( - "strconv" - "strings" -) - -// Format formats a Suite AST back into scaf DSL source code, preserving comments. -func Format(s *Suite) string { - var b strings.Builder - - f := &formatter{b: &b, indent: 0} - f.formatSuite(s) - - return strings.TrimSpace(b.String()) + "\n" -} - -type formatter struct { - b *strings.Builder - indent int -} - -func (f *formatter) write(s string) { - f.b.WriteString(s) -} - -func (f *formatter) writeLine(s string) { - f.writeIndent() - f.write(s) - f.write("\n") -} - -func (f *formatter) writeIndent() { - for range f.indent { - f.write("\t") - } -} - -func (f *formatter) blankLine() { - f.write("\n") -} - -// writeLeadingComments writes any leading comments. -func (f *formatter) writeLeadingComments(leading []string) { - for _, comment := range leading { - f.writeLine(comment) - } -} - -// writeTrailingComment appends a trailing comment to the current line if one exists. -func (f *formatter) writeTrailingComment(trailing string) { - if trailing != "" { - f.write(" " + trailing) - } -} - -func (f *formatter) formatSuite(s *Suite) { - // Leading comments for the whole file - f.writeLeadingComments(s.LeadingComments) - - // Imports - for _, imp := range s.Imports { - f.formatImport(imp) - } - - // Queries - for i, q := range s.Queries { - if i > 0 || len(s.Imports) > 0 { - f.blankLine() - } - - f.formatQuery(q) - } - - // Global setup - if s.Setup != nil { - if len(s.Queries) > 0 || len(s.Imports) > 0 { - f.blankLine() - } - - f.formatSetupClause(s.Setup) - } - - // Global teardown - if s.Teardown != nil { - f.formatTeardown(*s.Teardown) - } - - // Scopes - for i, scope := range s.Scopes { - if i > 0 || len(s.Queries) > 0 || len(s.Imports) > 0 || s.Setup != nil || s.Teardown != nil { - f.blankLine() - } - - f.formatScope(scope) - } -} - -func (f *formatter) formatImport(imp *Import) { - f.writeLeadingComments(imp.LeadingComments) - - if imp.Alias != nil { - f.writeIndent() - f.write("import " + *imp.Alias + " " + f.quotedString(imp.Path)) - } else { - f.writeIndent() - f.write("import " + f.quotedString(imp.Path)) - } - - f.writeTrailingComment(imp.TrailingComment) - f.write("\n") -} - -func (f *formatter) formatQuery(q *Query) { - f.writeLeadingComments(q.LeadingComments) - f.writeIndent() - f.write("query " + q.Name + " " + f.rawString(q.Body)) - f.writeTrailingComment(q.TrailingComment) - f.write("\n") -} - -func (f *formatter) formatSetupClause(s *SetupClause) { - switch { - case s.Inline != nil: - f.writeLine("setup " + f.rawString(*s.Inline)) - case s.Module != nil: - f.writeLine("setup " + *s.Module) - case s.Call != nil: - f.writeLine("setup " + f.formatSetupCall(s.Call)) - case len(s.Block) > 0: - f.formatSetupBlock(s.Block) - } -} - -func (f *formatter) formatSetupBlock(items []*SetupItem) { - if len(items) == 1 { - // Single item - inline format - f.writeLine("setup { " + f.formatSetupItem(items[0]) + " }") - - return - } - - // Multiple items - block format - f.writeLine("setup {") - f.indent++ - - for _, item := range items { - f.writeLine(f.formatSetupItem(item)) - } - - f.indent-- - f.writeLine("}") -} - -func (f *formatter) formatSetupItem(item *SetupItem) string { - if item.Inline != nil { - return f.rawString(*item.Inline) - } - - if item.Module != nil { - return *item.Module - } - - if item.Call != nil { - return f.formatSetupCall(item.Call) - } - - return "" -} - -func (f *formatter) formatSetupCall(c *SetupCall) string { - var b strings.Builder - - b.WriteString(c.Module) - b.WriteString(".") - b.WriteString(c.Query) - b.WriteString("(") - - for i, p := range c.Params { - if i > 0 { - b.WriteString(", ") - } - - b.WriteString(p.Name) - b.WriteString(": ") - b.WriteString(f.formatParamValue(p.Value)) - } - - b.WriteString(")") - - return b.String() -} - -func (f *formatter) formatTeardown(body string) { - f.writeLine("teardown " + f.rawString(body)) -} - -func (f *formatter) formatScope(s *QueryScope) { - f.writeLeadingComments(s.LeadingComments) - f.writeLine(s.QueryName + " {") - f.indent++ - - if s.Setup != nil { - f.formatSetupClause(s.Setup) - } - - if s.Teardown != nil { - f.formatTeardown(*s.Teardown) - } - - f.formatItems(s.Items, s.Setup != nil || s.Teardown != nil) - - f.indent-- - f.writeLine("}") -} - -func (f *formatter) formatItems(items []*TestOrGroup, hasSetupOrTeardown bool) { - for i, item := range items { - needsBlank := i > 0 || hasSetupOrTeardown - - if item.Test != nil { - if needsBlank { - f.blankLine() - } - - f.formatTest(item.Test) - } else if item.Group != nil { - if needsBlank { - f.blankLine() - } - - f.formatGroup(item.Group) - } - } -} - -func (f *formatter) formatGroup(g *Group) { - f.writeLeadingComments(g.LeadingComments) - f.writeLine("group " + f.quotedString(g.Name) + " {") - f.indent++ - - if g.Setup != nil { - f.formatSetupClause(g.Setup) - } - - if g.Teardown != nil { - f.formatTeardown(*g.Teardown) - } - - f.formatItems(g.Items, g.Setup != nil || g.Teardown != nil) - - f.indent-- - f.writeLine("}") -} - -func (f *formatter) formatTest(t *Test) { - f.writeLeadingComments(t.LeadingComments) - f.writeLine("test " + f.quotedString(t.Name) + " {") - f.indent++ - - if t.Setup != nil { - f.formatSetupClause(t.Setup) - } - - // Separate inputs from outputs - var inputs, outputs []*Statement - - for _, stmt := range t.Statements { - if strings.HasPrefix(stmt.Key(), "$") { - inputs = append(inputs, stmt) - } else { - outputs = append(outputs, stmt) - } - } - - // Format inputs - for i, stmt := range inputs { - if i == 0 && t.Setup != nil { - f.blankLine() - } - - f.formatStatement(stmt) - } - - // Format outputs with blank line separator from inputs - for i, stmt := range outputs { - if i == 0 && len(inputs) > 0 { - f.blankLine() - } - - f.formatStatement(stmt) - } - - // Assertions - for i, a := range t.Asserts { - if i == 0 && (len(t.Statements) > 0 || t.Setup != nil) { - f.blankLine() - } - - f.formatAssert(a) - } - - f.indent-- - f.writeLine("}") -} - -func (f *formatter) formatStatement(s *Statement) { - f.writeLine(s.Key() + ": " + f.formatValue(s.Value)) -} - -func (f *formatter) formatAssert(a *Assert) { - var queryPart string - if a.Query != nil { - if a.Query.Inline != nil { - queryPart = f.rawString(*a.Query.Inline) + " " - } else if a.Query.QueryName != nil { - queryPart = *a.Query.QueryName - if len(a.Query.Params) > 0 { - var params []string - for _, p := range a.Query.Params { - params = append(params, p.Name+": "+f.formatParamValue(p.Value)) - } - - queryPart += "(" + strings.Join(params, ", ") + ") " - } else { - queryPart += "() " - } - } - } - - if len(a.Conditions) == 0 { - f.writeLine("assert " + queryPart + "{}") - - return - } - - if len(a.Conditions) == 1 { - f.writeLine("assert " + queryPart + "{ " + a.Conditions[0].String() + " }") - - return - } - - f.writeLine("assert " + queryPart + "{") - f.indent++ - - for i, cond := range a.Conditions { - if i < len(a.Conditions)-1 { - f.writeLine(cond.String() + ";") - } else { - f.writeLine(cond.String()) - } - } - - f.indent-- - f.writeLine("}") -} - -func (f *formatter) formatValue(v *Value) string { - switch { - case v.Null: - return "null" - case v.Str != nil: - return f.quotedString(*v.Str) - case v.Number != nil: - return f.formatNumber(*v.Number) - case v.Boolean != nil: - return strconv.FormatBool(bool(*v.Boolean)) - case v.Map != nil: - return f.formatMap(v.Map) - case v.List != nil: - return f.formatList(v.List) - default: - return "null" - } -} - -func (f *formatter) formatParamValue(v *ParamValue) string { - if v.IsFieldRef() { - return v.FieldRefString() - } - - if v.Literal != nil { - return f.formatValue(v.Literal) - } - - return "null" -} - -func (f *formatter) formatNumber(n float64) string { - if n == float64(int64(n)) { - return strconv.FormatInt(int64(n), 10) - } - - return strconv.FormatFloat(n, 'f', -1, 64) -} - -func (f *formatter) formatMap(m *Map) string { - if len(m.Entries) == 0 { - return "{}" - } - - parts := make([]string, len(m.Entries)) - for i, e := range m.Entries { - parts[i] = e.Key + ": " + f.formatValue(e.Value) - } - - return "{" + strings.Join(parts, ", ") + "}" -} - -func (f *formatter) formatList(l *List) string { - if len(l.Values) == 0 { - return "[]" - } - - parts := make([]string, len(l.Values)) - for i, v := range l.Values { - parts[i] = f.formatValue(v) - } - - return "[" + strings.Join(parts, ", ") + "]" -} - -func (f *formatter) rawString(s string) string { - return "`" + s + "`" -} - -func (f *formatter) quotedString(s string) string { - return `"` + s + `"` -} diff --git a/example/vendor/github.com/rlch/scaf/language/go/binding.go b/example/vendor/github.com/rlch/scaf/language/go/binding.go deleted file mode 100644 index 6b00545..0000000 --- a/example/vendor/github.com/rlch/scaf/language/go/binding.go +++ /dev/null @@ -1,139 +0,0 @@ -package golang - -import "github.com/rlch/scaf/analysis" - -// Binding generates database-specific Go code for query execution. -// -// A binding knows how to generate code that executes queries against a specific -// database driver (e.g., neogo for Neo4j, pgx for Postgres). Bindings are used -// at code-generation time only - the generated code directly uses the database -// driver without any scaf runtime dependency. -// -// The language generator assembles the full function signature from: -// - PrependParams() - binding-specific params added at the start (e.g., ctx) -// - Query params - extracted from the query ($userId → userId) -// - Query returns - extracted from the query (RETURN name → name) -// - ReturnsError() - whether to add error as final return -type Binding interface { - // Name returns the binding identifier (e.g., "neogo", "pgx"). - Name() string - - // Imports returns the import paths needed by generated code. - // These are added to the generated file's import block. - Imports() []string - - // ReceiverType returns the receiver type for generated methods. - // Returns empty string if functions should be standalone (not methods). - // Example: "*Queries" for method generation. - ReceiverType() string - - // PrependParams returns parameters to add at the start of every function. - // For example, [{Name: "ctx", Type: "context.Context"}] for context-aware bindings. - PrependParams() []BindingParam - - // ReturnsError returns true if generated functions should return error. - // When true, error is added as the final return value. - ReturnsError() bool - - // GenerateBody generates the function body for a query. - // The body should execute the query and return the results. - // It should NOT include the function signature or braces. - GenerateBody(ctx *BodyContext) (string, error) -} - -// BodyContext provides information needed to generate a function body. -type BodyContext struct { - // Query is the raw query string to execute. - Query string - - // Signature describes the full function signature (including binding params like ctx). - Signature *BindingSignature - - // QueryParams are the parameters extracted from the query ($userId → userId). - // These are the params that should be passed to the database driver. - // Does NOT include binding-added params like ctx. - QueryParams []BindingParam - - // Schema provides type information from the user's codebase. - // May be nil if no schema is available. - Schema *analysis.TypeSchema - - // ReceiverName is the name of the receiver variable (e.g., "db", "client"). - // Empty if the function is not a method. - ReceiverName string - - // ReceiverType is the type of the receiver (e.g., "*Client", "DB"). - // Empty if the function is not a method. - ReceiverType string -} - -// BindingSignature describes a function's parameters and return types. -// This is a simplified version of FuncSignature for binding use. -type BindingSignature struct { - // Name is the function name. - Name string - - // Params are the function parameters. - Params []BindingParam - - // Returns are the return types (individual fields or struct fields). - // When ResultStruct is set, these describe the struct's fields for column mapping. - Returns []BindingReturn - - // ResultStruct is the name of the generated result struct. - // Empty if returns are individual values. - ResultStruct string - - // ReturnsSlice indicates if the function returns multiple rows. - ReturnsSlice bool - - // ReturnsError indicates if the function returns an error. - ReturnsError bool -} - -// BindingParam describes a function parameter. -type BindingParam struct { - // Name is the parameter name (without $ prefix). - Name string - - // Type is the Go type string. - Type string -} - -// BindingReturn describes a return value. -type BindingReturn struct { - // Name is the field name for Go code (may be empty for single returns). - // This is the alias if present, or inferred from the expression. - Name string - - // ColumnName is the actual column name returned by the database. - // For "RETURN u.name AS n", ColumnName is "n". - // For "RETURN u.name", ColumnName is "u.name". - ColumnName string - - // Type is the Go type string. - Type string -} - -// Registration for binding discovery. -var bindings = make(map[string]Binding) - -// RegisterBinding registers a binding by name. -func RegisterBinding(b Binding) { - bindings[b.Name()] = b -} - -// GetBinding returns a binding by name, or nil if not registered. -func GetBinding(name string) Binding { //nolint:ireturn - return bindings[name] -} - -// RegisteredBindings returns the names of all registered bindings. -func RegisteredBindings() []string { - names := make([]string, 0, len(bindings)) - for name := range bindings { - names = append(names, name) - } - - return names -} diff --git a/example/vendor/github.com/rlch/scaf/language/go/language.go b/example/vendor/github.com/rlch/scaf/language/go/language.go deleted file mode 100644 index 56b502d..0000000 --- a/example/vendor/github.com/rlch/scaf/language/go/language.go +++ /dev/null @@ -1,207 +0,0 @@ -// Package golang provides Go code generation from scaf DSL files. -// -// This package generates two files from a .scaf file: -// - scaf.go: Production functions that execute queries via a binding -// - scaf_test.go: Test mocks using function variable swapping for test isolation -// -// # Usage -// -// The generator is typically invoked via the scaf CLI: -// -// scaf generate --lang go ./queries.scaf -// -// # Architecture -// -// The generator uses bindings to produce database-specific code. Each binding -// (e.g., neogo) knows how to generate the function body for executing queries -// against its database driver. -// -// # Test Mock Pattern -// -// Production code uses function variables for indirection: -// -// func GetUser(userId int) string { return getUserImpl(userId) } -// var getUserImpl = getUserProd -// func getUserProd(userId int) string { /* real implementation */ } -// -// Test code swaps the implementation in init(): -// -// func init() { getUserImpl = getUserMock } -// func getUserMock(userId int) string { /* if-chain matching test cases */ } -// -// This works because _test.go files in the same package can access unexported -// variables, and init() runs before all tests. -package golang - -import ( - "errors" - - "github.com/rlch/scaf" - "github.com/rlch/scaf/language" -) - -// ErrNoBinding is returned when code generation is attempted without a binding configured. -var ErrNoBinding = errors.New("no binding configured: a binding (e.g., neogo) is required for Go code generation") - -// Context provides Go-specific information needed for code generation. -// It embeds the base language.GenerateContext. -type Context struct { - language.GenerateContext - - // Binding generates database-specific code. - // Required - generation will fail with ErrNoBinding if nil. - Binding Binding - - // PackageName is the Go package name for generated files. - PackageName string -} - -// FuncSignature represents a generated function's signature. -type FuncSignature struct { - // Name is the function name (derived from query name). - Name string - - // Params are the function parameters (from query $variables). - Params []FuncParam - - // Returns are the function return types (from query RETURN clause). - Returns []FuncReturn - - // ResultStruct is the name of the generated result struct when multiple values are returned. - // Empty if the function returns a single value or no values. - // Example: "getUserResult" for a function named "GetUser" with multiple returns. - ResultStruct string - - // ReturnsSlice indicates if the query returns multiple rows (slice). - // When true, the function returns []*ResultStruct or []T. - // When false, the function returns *ResultStruct or T. - ReturnsSlice bool - - // Query is the raw query body. - Query string - - // QueryName is the original query name from the scaf file. - QueryName string -} - -// FuncParam represents a function parameter. -type FuncParam struct { - // Name is the parameter name (without $ prefix). - Name string - - // Type is the Go type (e.g., "string", "int64", "*User"). - Type string - - // Required indicates if the parameter must be provided. - Required bool -} - -// FuncReturn represents a function return value. -type FuncReturn struct { - // Name is the return field name for Go code. - // This is the alias if present, or inferred from the expression. - Name string - - // ColumnName is the actual column name returned by the database. - // For "RETURN u.name AS n", ColumnName is "n". - // For "RETURN u.name", ColumnName is "u.name". - ColumnName string - - // Type is the Go type. - Type string - - // IsSlice indicates if this returns multiple rows. - IsSlice bool -} - -// GoLanguage implements language.Language for Go code generation. -type GoLanguage struct{} - -// Name returns "go". -func (g *GoLanguage) Name() string { - return scaf.LangGo -} - -// Generate produces scaf.go and scaf_test.go from the suite. -func (g *GoLanguage) Generate(ctx *language.GenerateContext) (map[string][]byte, error) { - // Wrap in Go-specific context with defaults - goCtx := &Context{ - GenerateContext: *ctx, - PackageName: "main", // Default, should be overridden by caller - } - - gen := &generator{ctx: goCtx} - - return gen.Generate() -} - -// GenerateWithContext produces scaf.go and scaf_test.go using Go-specific context. -func (g *GoLanguage) GenerateWithContext(ctx *Context) (map[string][]byte, error) { - gen := &generator{ctx: ctx} - - return gen.Generate() -} - -// New creates a new Go language generator. -func New() *GoLanguage { - return &GoLanguage{} -} - -// generator holds state during code generation. -type generator struct { - ctx *Context -} - -// Generate produces all output files. -func (g *generator) Generate() (map[string][]byte, error) { - // Binding is required for code generation - if g.ctx.Binding == nil { - return nil, ErrNoBinding - } - - files := make(map[string][]byte) - - // Extract function signatures from queries - signatures, err := g.extractSignatures() - if err != nil { - return nil, err - } - - // Generate production code - prod, err := g.generateProduction(signatures) - if err != nil { - return nil, err - } - - files["scaf.go"] = prod - - // Generate test mocks - test, err := g.generateTest(signatures) - if err != nil { - return nil, err - } - - files["scaf_test.go"] = test - - return files, nil -} - -// extractSignatures builds FuncSignature for each query in the suite. -func (g *generator) extractSignatures() ([]*FuncSignature, error) { - return ExtractSignatures(g.ctx.Suite, g.ctx.QueryAnalyzer, g.ctx.Schema) -} - -// generateProduction generates the scaf.go file. -func (g *generator) generateProduction(signatures []*FuncSignature) ([]byte, error) { - return g.generateProductionFile(signatures) -} - -// generateTest generates the scaf_test.go file. -func (g *generator) generateTest(signatures []*FuncSignature) ([]byte, error) { - return g.generateMockFile(signatures) -} - -//nolint:gochecknoinits // Registration pattern requires init. -func init() { - language.Register(New()) -} diff --git a/example/vendor/github.com/rlch/scaf/language/go/mock.go b/example/vendor/github.com/rlch/scaf/language/go/mock.go deleted file mode 100644 index d89d390..0000000 --- a/example/vendor/github.com/rlch/scaf/language/go/mock.go +++ /dev/null @@ -1,560 +0,0 @@ -package golang - -import ( - "bytes" - "fmt" - "strings" - - "github.com/rlch/scaf" -) - -// TestCase represents a single test case extracted from the scaf AST. -// It contains the inputs (parameters) and expected outputs for matching. -type TestCase struct { - // Name is the test name from the scaf file. - Name string - - // Inputs maps parameter name (with $ prefix) to its value. - Inputs map[string]any - - // Outputs maps field name (e.g., "u.name") to expected value. - Outputs map[string]any -} - -// MockFunc represents a mock function for a query. -type MockFunc struct { - // Signature is the function signature from the query. - Signature *FuncSignature - - // TestCases are the test cases for this function. - TestCases []*TestCase -} - -// ExtractTestCases extracts test cases from a QueryScope. -// It walks through all tests (including nested groups) and extracts input/output pairs. -func ExtractTestCases(scope *scaf.QueryScope) []*TestCase { - var cases []*TestCase - - for _, item := range scope.Items { - cases = append(cases, extractFromTestOrGroup(item)...) - } - - return cases -} - -// extractFromTestOrGroup recursively extracts test cases from a TestOrGroup. -func extractFromTestOrGroup(item *scaf.TestOrGroup) []*TestCase { - if item.Test != nil { - return []*TestCase{extractFromTest(item.Test)} - } - - if item.Group != nil { - var cases []*TestCase - for _, child := range item.Group.Items { - cases = append(cases, extractFromTestOrGroup(child)...) - } - - return cases - } - - return nil -} - -// extractFromTest extracts a single TestCase from a Test. -func extractFromTest(test *scaf.Test) *TestCase { - tc := &TestCase{ - Name: test.Name, - Inputs: make(map[string]any), - Outputs: make(map[string]any), - } - - for _, stmt := range test.Statements { - key := stmt.Key() - value := stmt.Value.ToGo() - - if strings.HasPrefix(key, "$") { - // Input parameter - store with $ prefix - tc.Inputs[key] = value - } else { - // Output expectation - tc.Outputs[key] = value - } - } - - return tc -} - -// BuildMockFuncs builds MockFunc for each query that has test scopes. -func BuildMockFuncs(suite *scaf.Suite, signatures []*FuncSignature) []*MockFunc { - // Build a map from query name to signature - sigMap := make(map[string]*FuncSignature) - for _, sig := range signatures { - sigMap[sig.QueryName] = sig - } - - // Build mock functions from query scopes - var mocks []*MockFunc - - for _, scope := range suite.Scopes { - sig, ok := sigMap[scope.QueryName] - if !ok { - // No matching query - skip - continue - } - - mock := &MockFunc{ - Signature: sig, - TestCases: ExtractTestCases(scope), - } - - if len(mock.TestCases) > 0 { - mocks = append(mocks, mock) - } - } - - return mocks -} - -// mockGenerator generates the scaf_test.go file content. -type mockGenerator struct { - ctx *Context - buf *bytes.Buffer - packageName string - needsReflect bool -} - -// generateMockFile generates the complete scaf_test.go content. -func (g *generator) generateMockFile(signatures []*FuncSignature) ([]byte, error) { - if g.ctx.Suite == nil { - return nil, nil - } - - mocks := BuildMockFuncs(g.ctx.Suite, signatures) - if len(mocks) == 0 { - return nil, nil - } - - mg := &mockGenerator{ - ctx: g.ctx, - buf: &bytes.Buffer{}, - packageName: g.ctx.PackageName, - } - - return mg.generate(mocks) -} - -func (m *mockGenerator) generate(mocks []*MockFunc) ([]byte, error) { - // First pass: determine if we need reflect for any complex comparisons - m.needsReflect = m.needsReflectImport(mocks) - - // Write header - m.writeHeader() - - // Write init function to swap implementations - m.writeInit(mocks) - - // Write each mock function - for i, mock := range mocks { - isLast := i == len(mocks)-1 - m.writeMockFunc(mock, isLast) - } - - return m.buf.Bytes(), nil -} - -func (m *mockGenerator) needsReflectImport(mocks []*MockFunc) bool { - for _, mock := range mocks { - for _, tc := range mock.TestCases { - for _, v := range tc.Inputs { - if isComplexType(v) { - return true - } - } - } - } - - return false -} - -func (m *mockGenerator) writeHeader() { - m.buf.WriteString("// Code generated by scaf. DO NOT EDIT.\n") - m.buf.WriteString("//go:build !scaf_prod\n\n") - fmt.Fprintf(m.buf, "package %s\n\n", m.packageName) - - // Build imports - need binding imports for parameter types (e.g., context.Context) - var imports []string - - if m.ctx.Binding != nil { - imports = append(imports, m.ctx.Binding.Imports()...) - } - - if m.needsReflect { - imports = append(imports, "reflect") - } - - if len(imports) > 0 { - m.buf.WriteString("import (\n") - for _, imp := range imports { - fmt.Fprintf(m.buf, "\t%q\n", imp) - } - m.buf.WriteString(")\n\n") - } -} - -func (m *mockGenerator) writeInit(mocks []*MockFunc) { - m.buf.WriteString("func init() {\n") - for _, mock := range mocks { - // Convert function name to unexported impl variable name - implVar := toImplVarName(mock.Signature.Name) - mockFn := toMockFuncName(mock.Signature.Name) - fmt.Fprintf(m.buf, "\t%s = %s\n", implVar, mockFn) - } - m.buf.WriteString("}\n\n") -} - -func (m *mockGenerator) writeMockFunc(mock *MockFunc, isLastFunc bool) { - sig := mock.Signature - - // Write the mock function - mockFn := toMockFuncName(sig.Name) - fmt.Fprintf(m.buf, "func %s(", mockFn) - - // Build full parameter list: binding params + query params - var allParams []string - if m.ctx.Binding != nil { - for _, p := range m.ctx.Binding.PrependParams() { - allParams = append(allParams, fmt.Sprintf("%s %s", p.Name, p.Type)) - } - } - for _, p := range sig.Params { - allParams = append(allParams, fmt.Sprintf("%s %s", p.Name, p.Type)) - } - m.buf.WriteString(strings.Join(allParams, ", ")) - m.buf.WriteString(")") - - // Write return types - returnTypes := m.buildMockReturnTypes(sig) - if len(returnTypes) > 0 { - m.buf.WriteString(" ") - if len(returnTypes) == 1 { - m.buf.WriteString(returnTypes[0]) - } else { - fmt.Fprintf(m.buf, "(%s)", strings.Join(returnTypes, ", ")) - } - } - - m.buf.WriteString(" {\n") - - // Write if-chain for test cases - for i, tc := range mock.TestCases { - isFirst := i == 0 - isLast := i == len(mock.TestCases)-1 - m.writeTestCaseMatch(tc, sig, isFirst, isLast) - } - - // Write default panic for unmatched inputs - m.buf.WriteString("\tpanic(\"no matching test case\")\n") - if isLastFunc { - m.buf.WriteString("}\n") - } else { - m.buf.WriteString("}\n\n") - } -} - -// buildMockReturnTypes builds the return type list for a mock function. -func (m *mockGenerator) buildMockReturnTypes(sig *FuncSignature) []string { - var types []string - - if sig.ResultStruct != "" { - // Result struct return type - slice or single - if sig.ReturnsSlice { - types = append(types, "[]*"+sig.ResultStruct) - } else { - types = append(types, "*"+sig.ResultStruct) - } - } else { - // Individual return types - slice or single - for _, r := range sig.Returns { - if sig.ReturnsSlice { - types = append(types, "[]"+r.Type) - } else { - types = append(types, r.Type) - } - } - } - - // Add error if binding returns error - if m.ctx.Binding != nil && m.ctx.Binding.ReturnsError() { - types = append(types, "error") - } - - return types -} - -func (m *mockGenerator) writeTestCaseMatch(tc *TestCase, sig *FuncSignature, isFirst bool, isLast bool) { - // Build condition for input matching - conditions := make([]string, 0, len(tc.Inputs)) - - for _, param := range sig.Params { - inputKey := "$" + param.Name - inputVal, ok := tc.Inputs[inputKey] - - if !ok { - continue - } - - cond := m.buildComparison(param.Name, param.Type, inputVal) - conditions = append(conditions, cond) - } - - // Write the if/else if statement - keyword := "if" - if !isFirst { - keyword = "} else if" - } - - if len(conditions) > 0 { - fmt.Fprintf(m.buf, "\t%s %s {\n", keyword, strings.Join(conditions, " && ")) - } else { - // No conditions - always matches (shouldn't happen in practice) - fmt.Fprintf(m.buf, "\t%s true {\n", keyword) - } - - // Write return statement - m.writeReturn(tc, sig) - - // Close the block if this is the last test case - if isLast { - m.buf.WriteString("\t}\n") - } -} - -func (m *mockGenerator) buildComparison(paramName, paramType string, value any) string { - if isComplexType(value) { - // Use reflect.DeepEqual for complex types - return fmt.Sprintf("reflect.DeepEqual(%s, %s)", paramName, goLiteral(value)) - } - - // Simple comparison - return fmt.Sprintf("%s == %s", paramName, goLiteral(value)) -} - -func (m *mockGenerator) writeReturn(tc *TestCase, sig *FuncSignature) { - returnsError := m.ctx.Binding != nil && m.ctx.Binding.ReturnsError() - - if len(sig.Returns) == 0 { - if returnsError { - m.buf.WriteString("\t\treturn nil\n") - } else { - m.buf.WriteString("\t\treturn\n") - } - return - } - - // Handle result struct return type - if sig.ResultStruct != "" { - m.writeStructReturn(tc, sig, returnsError) - return - } - - // Build return values from outputs (individual fields) - returnVals := make([]string, len(sig.Returns)) - - for i, ret := range sig.Returns { - value := m.findOutputValue(tc, ret) - if sig.ReturnsSlice { - // Wrap in slice literal - returnVals[i] = fmt.Sprintf("[]%s{%s}", ret.Type, value) - } else { - returnVals[i] = value - } - } - - if returnsError { - returnVals = append(returnVals, "nil") - } - - fmt.Fprintf(m.buf, "\t\treturn %s\n", strings.Join(returnVals, ", ")) -} - -// writeStructReturn writes a return statement that returns a result struct pointer or slice. -func (m *mockGenerator) writeStructReturn(tc *TestCase, sig *FuncSignature, returnsError bool) { - if sig.ReturnsSlice { - // Return slice with single struct - fmt.Fprintf(m.buf, "\t\treturn []*%s{{\n", sig.ResultStruct) - } else { - // Return single struct pointer - fmt.Fprintf(m.buf, "\t\treturn &%s{\n", sig.ResultStruct) - } - - for _, ret := range sig.Returns { - value := m.findOutputValue(tc, ret) - // Convert field name to exported Go field name - fieldName := toExportedFieldName(ret.Name) - fmt.Fprintf(m.buf, "\t\t\t%s: %s,\n", fieldName, value) - } - - if sig.ReturnsSlice { - if returnsError { - m.buf.WriteString("\t\t}}, nil\n") - } else { - m.buf.WriteString("\t\t}}\n") - } - } else { - if returnsError { - m.buf.WriteString("\t\t}, nil\n") - } else { - m.buf.WriteString("\t\t}\n") - } - } -} - -// findOutputValue finds the output value for a return field from test case outputs. -func (m *mockGenerator) findOutputValue(tc *TestCase, ret FuncReturn) string { - // Try exact match first - if val, ok := tc.Outputs[ret.Name]; ok { - return goLiteral(val) - } - - // Try to find by field name with any prefix (e.g., "u.name" -> "name") - for key, val := range tc.Outputs { - parts := strings.Split(key, ".") - fieldName := parts[len(parts)-1] - - if fieldName == ret.Name { - return goLiteral(val) - } - } - - // Return zero value - return zeroValue(ret.Type) -} - -// toImplVarName converts a function name to its implementation variable name. -// GetUser -> getUserImpl -func toImplVarName(name string) string { - if name == "" { - return "" - } - // Lowercase first letter and add Impl suffix - runes := []rune(name) - runes[0] = toLower(runes[0]) - return string(runes) + "Impl" -} - -// toMockFuncName converts a function name to its mock function name. -// GetUser -> getUserMock -func toMockFuncName(name string) string { - if name == "" { - return "" - } - // Lowercase first letter and add Mock suffix - runes := []rune(name) - runes[0] = toLower(runes[0]) - return string(runes) + "Mock" -} - -// toProdFuncName converts a function name to its production function name. -// GetUser -> getUserProd -func toProdFuncName(name string) string { - if name == "" { - return "" - } - // Lowercase first letter and add Prod suffix - runes := []rune(name) - runes[0] = toLower(runes[0]) - return string(runes) + "Prod" -} - -func toLower(r rune) rune { - if r >= 'A' && r <= 'Z' { - return r + 32 - } - return r -} - -// isComplexType returns true if the value requires reflect.DeepEqual for comparison. -func isComplexType(v any) bool { - switch v.(type) { - case map[string]any, []any: - return true - default: - return false - } -} - -// goLiteral converts a Go value to its source code representation. -func goLiteral(v any) string { - switch val := v.(type) { - case nil: - return "nil" - case string: - return fmt.Sprintf("%q", val) - case float64: - // Check if it's an integer - if val == float64(int64(val)) { - return fmt.Sprintf("%d", int64(val)) - } - - return fmt.Sprintf("%v", val) - case bool: - return fmt.Sprintf("%t", val) - case map[string]any: - return mapLiteral(val) - case []any: - return sliceLiteral(val) - default: - return fmt.Sprintf("%v", v) - } -} - -func mapLiteral(m map[string]any) string { - if len(m) == 0 { - return "map[string]any{}" - } - - pairs := make([]string, 0, len(m)) - for k, v := range m { - pairs = append(pairs, fmt.Sprintf("%q: %s", k, goLiteral(v))) - } - - return fmt.Sprintf("map[string]any{%s}", strings.Join(pairs, ", ")) -} - -func sliceLiteral(s []any) string { - if len(s) == 0 { - return "[]any{}" - } - - elems := make([]string, len(s)) - for i, v := range s { - elems[i] = goLiteral(v) - } - - return fmt.Sprintf("[]any{%s}", strings.Join(elems, ", ")) -} - -// zeroValue returns the zero value literal for a Go type. -func zeroValue(typ string) string { - switch typ { - case "string": - return `""` - case "int", "int8", "int16", "int32", "int64", - "uint", "uint8", "uint16", "uint32", "uint64", - "float32", "float64": - return "0" - case "bool": - return "false" - case "any": - return "nil" - default: - // Pointer, slice, map, interface types - if strings.HasPrefix(typ, "*") || - strings.HasPrefix(typ, "[]") || - strings.HasPrefix(typ, "map[") { - return "nil" - } - // Struct types - use empty literal - return typ + "{}" - } -} diff --git a/example/vendor/github.com/rlch/scaf/language/go/production.go b/example/vendor/github.com/rlch/scaf/language/go/production.go deleted file mode 100644 index a78deda..0000000 --- a/example/vendor/github.com/rlch/scaf/language/go/production.go +++ /dev/null @@ -1,323 +0,0 @@ -package golang - -import ( - "bytes" - "fmt" - "strings" -) - -// productionGenerator generates the scaf.go file content. -type productionGenerator struct { - ctx *Context - buf *bytes.Buffer - packageName string - signatures []*FuncSignature -} - -// generateProductionFile generates the complete scaf.go content. -func (g *generator) generateProductionFile(signatures []*FuncSignature) ([]byte, error) { - if g.ctx.Suite == nil || len(signatures) == 0 { - return nil, nil - } - - pg := &productionGenerator{ - ctx: g.ctx, - buf: &bytes.Buffer{}, - packageName: g.ctx.PackageName, - signatures: signatures, - } - - return pg.generate() -} - -func (p *productionGenerator) generate() ([]byte, error) { - // Write header - p.writeHeader() - - // Write result struct types for functions with multiple returns - p.writeResultStructs() - - // Write each function: public func -> impl var -> prod impl - for i, sig := range p.signatures { - isLast := i == len(p.signatures)-1 - if err := p.writeFunction(sig, isLast); err != nil { - return nil, err - } - } - - return p.buf.Bytes(), nil -} - -// writeResultStructs generates private result struct types for functions with multiple returns. -func (p *productionGenerator) writeResultStructs() { - for _, sig := range p.signatures { - if sig.ResultStruct == "" { - continue - } - - // Generate: type getUserResult struct { Name string; Email string } - fmt.Fprintf(p.buf, "type %s struct {\n", sig.ResultStruct) - for _, ret := range sig.Returns { - fieldName := toExportedFieldName(ret.Name) - fmt.Fprintf(p.buf, "\t%s %s\n", fieldName, ret.Type) - } - p.buf.WriteString("}\n\n") - } -} - -func (p *productionGenerator) writeHeader() { - p.buf.WriteString("// Code generated by scaf. DO NOT EDIT.\n\n") - fmt.Fprintf(p.buf, "package %s\n\n", p.packageName) - - // Collect imports from binding - var imports []string - if p.ctx.Binding != nil { - imports = append(imports, p.ctx.Binding.Imports()...) - } - - if len(imports) > 0 { - p.buf.WriteString("import (\n") - for _, imp := range imports { - fmt.Fprintf(p.buf, "\t%q\n", imp) - } - p.buf.WriteString(")\n\n") - } -} - -func (p *productionGenerator) writeFunction(sig *FuncSignature, isLast bool) error { - // Assemble full signature from: - // - Binding's prepend params (e.g., ctx context.Context) - // - Query params (e.g., userId string) - // - Query returns (e.g., name string) - // - Binding's error return - fullSig := p.assembleSignature(sig) - - implVar := toImplVarName(sig.Name) - prodFn := toProdFuncName(sig.Name) - - // Build function type string for the impl variable - funcType := p.buildFuncType(fullSig) - - // 1. Write the public function that delegates to impl var - p.writePublicFunc(fullSig, implVar) - - // 2. Write the impl variable initialized to prod function - fmt.Fprintf(p.buf, "var %s %s = %s\n\n", implVar, funcType, prodFn) - - // 3. Write the prod function with actual implementation - if err := p.writeProdFunc(sig, fullSig, prodFn, isLast); err != nil { - return err - } - - return nil -} - -// assembleSignature builds the full function signature from binding config and query analysis. -func (p *productionGenerator) assembleSignature(sig *FuncSignature) *BindingSignature { - fullSig := &BindingSignature{ - Name: sig.Name, - ResultStruct: sig.ResultStruct, - ReturnsSlice: sig.ReturnsSlice, - ReturnsError: p.ctx.Binding.ReturnsError(), - } - - // 1. Start with binding's prepend params (e.g., ctx context.Context) - fullSig.Params = append(fullSig.Params, p.ctx.Binding.PrependParams()...) - - // 2. Add query params (e.g., userId string) - for _, param := range sig.Params { - fullSig.Params = append(fullSig.Params, BindingParam{ - Name: param.Name, - Type: param.Type, - }) - } - - // 3. Add query returns (e.g., name string) - // These are kept even when ResultStruct is set, for column mapping. - for _, r := range sig.Returns { - fullSig.Returns = append(fullSig.Returns, BindingReturn{ - Name: r.Name, - ColumnName: r.ColumnName, - Type: r.Type, - }) - } - - return fullSig -} - -func (p *productionGenerator) buildFuncType(sig *BindingSignature) string { - var sb strings.Builder - sb.WriteString("func(") - - // Parameters - params := make([]string, len(sig.Params)) - for i, param := range sig.Params { - params[i] = param.Type - } - sb.WriteString(strings.Join(params, ", ")) - sb.WriteString(")") - - // Returns (including error if ReturnsError) - returns := p.buildReturnTypes(sig) - if len(returns) > 0 { - sb.WriteString(" ") - if len(returns) == 1 { - sb.WriteString(returns[0]) - } else { - sb.WriteString("(") - sb.WriteString(strings.Join(returns, ", ")) - sb.WriteString(")") - } - } - - return sb.String() -} - -func (p *productionGenerator) buildReturnTypes(sig *BindingSignature) []string { - returns := make([]string, 0, 2) - - // If we have a result struct, return *struct or []*struct - if sig.ResultStruct != "" { - if sig.ReturnsSlice { - returns = append(returns, "[]*"+sig.ResultStruct) - } else { - returns = append(returns, "*"+sig.ResultStruct) - } - } else { - // Individual field returns - prepend [] if slice - for _, r := range sig.Returns { - if sig.ReturnsSlice { - returns = append(returns, "[]"+r.Type) - } else { - returns = append(returns, r.Type) - } - } - } - - if sig.ReturnsError { - returns = append(returns, "error") - } - return returns -} - -func (p *productionGenerator) writePublicFunc(sig *BindingSignature, implVar string) { - // func (q *Queries) GetUser(ctx context.Context, userId int) (string, error) { - // return getUserImpl(ctx, userId) - // } - - // Receiver if binding specifies one - if recvType := p.ctx.Binding.ReceiverType(); recvType != "" { - recvName := strings.ToLower(string(strings.TrimPrefix(recvType, "*")[0])) - fmt.Fprintf(p.buf, "func (%s %s) %s(", recvName, recvType, sig.Name) - } else { - fmt.Fprintf(p.buf, "func %s(", sig.Name) - } - - // Parameters with names - params := make([]string, len(sig.Params)) - for i, param := range sig.Params { - params[i] = fmt.Sprintf("%s %s", param.Name, param.Type) - } - p.buf.WriteString(strings.Join(params, ", ")) - p.buf.WriteString(")") - - // Returns - returns := p.buildReturnTypes(sig) - if len(returns) > 0 { - p.buf.WriteString(" ") - if len(returns) == 1 { - p.buf.WriteString(returns[0]) - } else { - fmt.Fprintf(p.buf, "(%s)", strings.Join(returns, ", ")) - } - } - - p.buf.WriteString(" {\n") - - // Delegate to impl var - if len(returns) > 0 { - p.buf.WriteString("\treturn ") - } else { - p.buf.WriteString("\t") - } - fmt.Fprintf(p.buf, "%s(", implVar) - - // Pass parameters - paramNames := make([]string, len(sig.Params)) - for i, param := range sig.Params { - paramNames[i] = param.Name - } - p.buf.WriteString(strings.Join(paramNames, ", ")) - p.buf.WriteString(")\n}\n\n") -} - -func (p *productionGenerator) writeProdFunc(baseSig *FuncSignature, fullSig *BindingSignature, prodFn string, isLast bool) error { - // func getUserProd(ctx context.Context, userId int) (string, error) { - // - // } - fmt.Fprintf(p.buf, "func %s(", prodFn) - - // Parameters with names - params := make([]string, len(fullSig.Params)) - for i, param := range fullSig.Params { - params[i] = fmt.Sprintf("%s %s", param.Name, param.Type) - } - p.buf.WriteString(strings.Join(params, ", ")) - p.buf.WriteString(")") - - // Returns - returns := p.buildReturnTypes(fullSig) - if len(returns) > 0 { - p.buf.WriteString(" ") - if len(returns) == 1 { - p.buf.WriteString(returns[0]) - } else { - fmt.Fprintf(p.buf, "(%s)", strings.Join(returns, ", ")) - } - } - - p.buf.WriteString(" {\n") - - // Generate body using binding - var recvName string - if recvType := p.ctx.Binding.ReceiverType(); recvType != "" { - recvName = strings.ToLower(string(strings.TrimPrefix(recvType, "*")[0])) - } - - // Build query params (from query analysis, not binding-added params) - queryParams := make([]BindingParam, len(baseSig.Params)) - for i, p := range baseSig.Params { - queryParams[i] = BindingParam{Name: p.Name, Type: p.Type} - } - - bodyCtx := &BodyContext{ - Query: baseSig.Query, - Signature: fullSig, - QueryParams: queryParams, - Schema: p.ctx.Schema, - ReceiverName: recvName, - ReceiverType: p.ctx.Binding.ReceiverType(), - } - - body, err := p.ctx.Binding.GenerateBody(bodyCtx) - if err != nil { - return fmt.Errorf("binding failed to generate body for %s: %w", baseSig.Name, err) - } - - // Indent the body - for _, line := range strings.Split(body, "\n") { - if line != "" { - fmt.Fprintf(p.buf, "\t%s\n", line) - } - } - - if isLast { - p.buf.WriteString("}\n") - } else { - p.buf.WriteString("}\n\n") - } - - return nil -} - - diff --git a/example/vendor/github.com/rlch/scaf/language/go/signature.go b/example/vendor/github.com/rlch/scaf/language/go/signature.go deleted file mode 100644 index 6ad0e4a..0000000 --- a/example/vendor/github.com/rlch/scaf/language/go/signature.go +++ /dev/null @@ -1,299 +0,0 @@ -package golang - -import ( - "fmt" - "strings" - "unicode" - - "github.com/rlch/scaf" - "github.com/rlch/scaf/analysis" -) - -// ExtractSignatures extracts function signatures from all queries in a suite. -// It uses the query analyzer to extract parameters and return fields, -// then maps them to Go types using the schema when available. -func ExtractSignatures(suite *scaf.Suite, analyzer scaf.QueryAnalyzer, schema *analysis.TypeSchema) ([]*FuncSignature, error) { - if suite == nil { - return nil, nil - } - - signatures := make([]*FuncSignature, 0, len(suite.Queries)) - - for _, query := range suite.Queries { - sig, err := ExtractSignature(query, analyzer, schema) - if err != nil { - return nil, fmt.Errorf("query %s: %w", query.Name, err) - } - - signatures = append(signatures, sig) - } - - return signatures, nil -} - -// ExtractSignature extracts a function signature from a single query. -func ExtractSignature(query *scaf.Query, analyzer scaf.QueryAnalyzer, schema *analysis.TypeSchema) (*FuncSignature, error) { - sig := &FuncSignature{ - Name: toExportedName(query.Name), - Query: query.Body, - QueryName: query.Name, - Params: []FuncParam{}, - Returns: []FuncReturn{}, - ReturnsSlice: true, // Default to slice (safe) - } - - // If no analyzer, we can only provide basic signature - if analyzer == nil { - return sig, nil - } - - // Try to use schema-aware analyzer for cardinality inference - var metadata *scaf.QueryMetadata - var err error - - if schemaAnalyzer, ok := analyzer.(analysis.SchemaAwareAnalyzer); ok && schema != nil { - metadata, err = schemaAnalyzer.AnalyzeQueryWithSchema(query.Body, schema) - } else { - metadata, err = analyzer.AnalyzeQuery(query.Body) - } - - if err != nil { - return nil, fmt.Errorf("failed to analyze query: %w", err) - } - - if metadata == nil { - return sig, nil - } - - // Set cardinality from metadata - sig.ReturnsSlice = !metadata.ReturnsOne - - // Convert parameters - for _, param := range metadata.Parameters { - funcParam := FuncParam{ - Name: param.Name, - Type: inferParamType(param, schema), - Required: true, // Parameters are required by default - } - sig.Params = append(sig.Params, funcParam) - } - - // Convert returns - for _, ret := range metadata.Returns { - // Skip wildcards - they need special handling - if ret.IsWildcard { - continue - } - - // Determine column name: if there's an alias, column = Alias. - // If no alias, column = Expression. - columnName := ret.Alias - if columnName == "" { - columnName = ret.Expression - } - if columnName == "" { - columnName = ret.Name // fallback - } - - funcReturn := FuncReturn{ - Name: ret.Name, - ColumnName: columnName, - Type: inferReturnType(ret, schema), - IsSlice: sig.ReturnsSlice, - } - sig.Returns = append(sig.Returns, funcReturn) - } - - // Generate result struct name if there are multiple returns - if len(sig.Returns) > 1 { - sig.ResultStruct = toResultStructName(sig.Name) - } - - return sig, nil -} - -// toExportedName converts a query name to an exported Go function name. -// Examples: -// -// "getUserById" -> "GetUserById" -// "get_user_by_id" -> "GetUserByID" -// "GetUser" -> "GetUser" -// "id" -> "ID" -func toExportedName(name string) string { - if name == "" { - return "" - } - - // Handle snake_case - if strings.Contains(name, "_") { - return snakeToPascal(name) - } - - // Check if it's a known acronym (case insensitive) - upper := strings.ToUpper(name) - if isAcronym(upper) { - return upper - } - - // Already PascalCase or camelCase - just ensure first letter is uppercase - runes := []rune(name) - runes[0] = unicode.ToUpper(runes[0]) - - return string(runes) -} - -// toExportedFieldName converts a database field name to an exported Go struct field name. -// This is an alias for toExportedName as they use the same conversion logic. -// Examples: -// -// "name" -> "Name" -// "user_id" -> "UserID" -// "email" -> "Email" -func toExportedFieldName(name string) string { - return toExportedName(name) -} - -// snakeToPascal converts snake_case to PascalCase. -func snakeToPascal(s string) string { - parts := strings.Split(s, "_") - result := make([]string, 0, len(parts)) - - for _, part := range parts { - if part == "" { - continue - } - - // Handle common acronyms - upper := strings.ToUpper(part) - if isAcronym(upper) { - result = append(result, upper) - } else { - runes := []rune(part) - runes[0] = unicode.ToUpper(runes[0]) - result = append(result, string(runes)) - } - } - - return strings.Join(result, "") -} - -// isAcronym returns true if the string is a common acronym. -func isAcronym(s string) bool { - acronyms := map[string]bool{ - "ID": true, - "URL": true, - "API": true, - "HTTP": true, - "JSON": true, - "XML": true, - "SQL": true, - "UUID": true, - "DB": true, - } - - return acronyms[s] -} - -// inferParamType infers the Go type for a query parameter. -// Uses the analyzer's type (from schema-aware analysis) or falls back to schema lookup. -func inferParamType(param scaf.ParameterInfo, schema *analysis.TypeSchema) string { - // If the analyzer already inferred the type from schema, use it directly - // (The Cypher analyzer returns Go type strings like "string", "int", "[]string") - if param.Type != "" { - return param.Type - } - - // Fallback: try to find the type from the schema by looking up fields with matching names - // This is a best-effort approach when the analyzer couldn't determine the model context - if schema != nil { - if fieldType := lookupFieldType(param.Name, schema); fieldType != nil { - return fieldType.String() - } - } - - return "any" -} - -// inferReturnType infers the Go type for a return field. -// Uses the analyzer's type (from schema-aware analysis) or falls back to schema lookup. -func inferReturnType(ret scaf.ReturnInfo, schema *analysis.TypeSchema) string { - // If the analyzer already inferred the type from schema, use it directly - // (The Cypher analyzer returns Go type strings like "string", "int", "*User") - if ret.Type != "" { - return ret.Type - } - - // Fallback: try to find the type from the schema using the parsed name - // (The analyzer already extracts the field name from expressions like "u.name") - if schema != nil { - if fieldType := lookupFieldType(ret.Name, schema); fieldType != nil { - return fieldType.String() - } - } - - return "any" -} - -// lookupFieldType searches the schema for a field with the given name. -// Returns the field's type if found, nil otherwise. -func lookupFieldType(fieldName string, schema *analysis.TypeSchema) *analysis.Type { - if schema == nil || fieldName == "" { - return nil - } - - // Search all models for a matching field - for _, model := range schema.Models { - for _, field := range model.Fields { - if field.Name == fieldName { - return field.Type - } - } - } - - return nil -} - -// LookupFieldTypeInModel looks up a field type in a specific model. -func LookupFieldTypeInModel(modelName, fieldName string, schema *analysis.TypeSchema) *analysis.Type { - if schema == nil { - return nil - } - - model, ok := schema.Models[modelName] - if !ok { - return nil - } - - for _, field := range model.Fields { - if field.Name == fieldName { - return field.Type - } - } - - return nil -} - -// TypeToGoString converts an analysis.Type to a Go type string. -func TypeToGoString(t *analysis.Type) string { - if t == nil { - return "any" - } - - return t.String() -} - -// toResultStructName generates the private result struct name from a function name. -// Examples: -// -// "GetUser" -> "getUserResult" -// "FindAllPosts" -> "findAllPostsResult" -func toResultStructName(funcName string) string { - if funcName == "" { - return "" - } - - // Lowercase first letter to make it private, then add Result suffix - runes := []rune(funcName) - runes[0] = unicode.ToLower(runes[0]) - return string(runes) + "Result" -} diff --git a/example/vendor/github.com/rlch/scaf/language/language.go b/example/vendor/github.com/rlch/scaf/language/language.go deleted file mode 100644 index eb175a2..0000000 --- a/example/vendor/github.com/rlch/scaf/language/language.go +++ /dev/null @@ -1,62 +0,0 @@ -// Package language provides interfaces for code generation from scaf DSL files. -// -// Each target language (Go, TypeScript, etc.) implements the Language interface -// to generate source files from parsed scaf suites. -package language - -import ( - "github.com/rlch/scaf" - "github.com/rlch/scaf/analysis" -) - -// Language represents a target language for code generation. -// Implementations generate source files from parsed scaf suites. -type Language interface { - // Name returns the language identifier (e.g., "go", "typescript"). - Name() string - - // Generate produces source files from the given context. - // Returns a map of filename to content. - Generate(ctx *GenerateContext) (map[string][]byte, error) -} - -// GenerateContext provides information needed for code generation. -// Language-specific generators may extend this with additional fields. -type GenerateContext struct { - // Suite is the parsed scaf AST. - Suite *scaf.Suite - - // Schema provides type information from the user's codebase. - // May be nil if no schema is available. - Schema *analysis.TypeSchema - - // QueryAnalyzer extracts parameters and returns from queries. - // May be nil if no analyzer is available for the dialect. - QueryAnalyzer scaf.QueryAnalyzer - - // OutputDir is the directory where files will be written. - OutputDir string -} - -// Registration for language discovery. -var languages = make(map[string]Language) - -// Register registers a language by name. -func Register(lang Language) { - languages[lang.Name()] = lang -} - -// Get returns a language by name, or nil if not registered. -func Get(name string) Language { //nolint:ireturn - return languages[name] -} - -// RegisteredLanguages returns the names of all registered languages. -func RegisteredLanguages() []string { - names := make([]string, 0, len(languages)) - for name := range languages { - names = append(names, name) - } - - return names -} diff --git a/example/vendor/github.com/rlch/scaf/lexer.go b/example/vendor/github.com/rlch/scaf/lexer.go deleted file mode 100644 index 3d8140b..0000000 --- a/example/vendor/github.com/rlch/scaf/lexer.go +++ /dev/null @@ -1,561 +0,0 @@ -package scaf - -import ( - "io" - "strings" - "sync" - "unicode" - "unicode/utf8" - - "github.com/alecthomas/participle/v2/lexer" -) - -// Token type constants - negative values as per participle convention. -// Exported for use in recovery functions and completion logic. -const ( - TokenEOF lexer.TokenType = lexer.EOF - TokenComment lexer.TokenType = -(iota + 2) //nolint:mnd // participle convention - TokenRawString // backtick strings - TokenString // quoted strings - TokenNumber // all number formats - TokenIdent // identifiers including $-prefixed - TokenOp // operators - TokenDot // . - TokenColon // : - TokenComma // , - TokenSemi // ; - TokenLParen // ( - TokenRParen // ) - TokenLBracket // [ - TokenRBracket // ] - TokenLBrace // { - TokenRBrace // } - TokenWhitespace // spaces, tabs, newlines - // Structural keywords - distinct token types so grammar can distinguish from identifiers - TokenQuery // query - TokenImport // import - TokenSetup // setup - TokenTeardown // teardown - TokenTest // test - TokenGroup // group - TokenAssert // assert -) - -// keywords maps keyword strings to their token types. -// Only structural keywords are here - literals like true/false/null remain as identifiers. -var keywords = map[string]lexer.TokenType{ - "query": TokenQuery, - "import": TokenImport, - "setup": TokenSetup, - "teardown": TokenTeardown, - "test": TokenTest, - "group": TokenGroup, - "assert": TokenAssert, -} - -// Lexer errors. -var ( - ErrUnterminatedRawString = &LexerError{msg: "unterminated raw string"} - ErrUnterminatedString = &LexerError{msg: "unterminated string"} - ErrUnexpectedCharacter = &LexerError{msg: "unexpected character"} -) - -// LexerError represents a lexer error with position. -type LexerError struct { - msg string - pos lexer.Position - ch rune -} - -func (e *LexerError) Error() string { - if e.ch != 0 { - return e.pos.String() + ": " + e.msg + ": " + string(e.ch) - } - - return e.pos.String() + ": " + e.msg -} - -func (e *LexerError) withPos(pos lexer.Position) *LexerError { - return &LexerError{msg: e.msg, pos: pos, ch: e.ch} -} - -func (e *LexerError) withChar(ch rune) *LexerError { - return &LexerError{msg: e.msg, pos: e.pos, ch: ch} -} - -// dslDefinition implements lexer.Definition for the scaf DSL. -type dslDefinition struct { - symbols map[string]lexer.TokenType - // lastTrivia holds trivia from the most recent lex operation. - lastTrivia *TriviaList - // mu protects lastTrivia for concurrent access. - mu sync.Mutex -} - -// newDSLLexer creates a new lexer Definition for the scaf DSL. -func newDSLLexer() *dslDefinition { - return &dslDefinition{ - symbols: map[string]lexer.TokenType{ - "EOF": TokenEOF, - "Comment": TokenComment, - "RawString": TokenRawString, - "String": TokenString, - "Number": TokenNumber, - "Ident": TokenIdent, - "Op": TokenOp, - "Dot": TokenDot, - "Colon": TokenColon, - "Comma": TokenComma, - "Semi": TokenSemi, - "Whitespace": TokenWhitespace, - // Individual bracket tokens for grammar rules - "(": TokenLParen, - ")": TokenRParen, - "[": TokenLBracket, - "]": TokenRBracket, - "{": TokenLBrace, - "}": TokenRBrace, - // Structural keywords - "query": TokenQuery, - "import": TokenImport, - "setup": TokenSetup, - "teardown": TokenTeardown, - "test": TokenTest, - "group": TokenGroup, - "assert": TokenAssert, - }, - } -} - -// Symbols returns the mapping of symbol names to token types. -func (d *dslDefinition) Symbols() map[string]lexer.TokenType { - return d.symbols -} - -// Lex creates a new Lexer for the given reader. -// -//nolint:ireturn // Required by participle's lexer.Definition interface. -func (d *dslDefinition) Lex(filename string, r io.Reader) (lexer.Lexer, error) { - data, err := io.ReadAll(r) - if err != nil { - return nil, err - } - - return d.LexBytes(filename, data) -} - -// LexBytes implements lexer.BytesDefinition for efficiency. -// -//nolint:ireturn // Required by participle's lexer.BytesDefinition interface. -func (d *dslDefinition) LexBytes(filename string, data []byte) (lexer.Lexer, error) { - trivia := &TriviaList{} - d.lastTrivia = trivia - - return newLexerState(filename, string(data), trivia), nil -} - -// LexString implements lexer.StringDefinition for efficiency. -// -//nolint:ireturn // Required by participle's lexer.StringDefinition interface. -func (d *dslDefinition) LexString(filename string, input string) (lexer.Lexer, error) { - trivia := &TriviaList{} - d.lastTrivia = trivia - - return newLexerState(filename, input, trivia), nil -} - -// Trivia returns the collected trivia from the last lex operation. -// Note: For thread-safe access, use Lock/Unlock around Parse and Trivia calls. -func (d *dslDefinition) Trivia() *TriviaList { - return d.lastTrivia -} - -// Lock acquires the mutex for thread-safe parse+trivia access. -func (d *dslDefinition) Lock() { - d.mu.Lock() -} - -// Unlock releases the mutex. -func (d *dslDefinition) Unlock() { - d.mu.Unlock() -} - -// lexerState holds the state for lexing. -type lexerState struct { - filename string - input string - offset int - line int - col int - trivia *TriviaList - lastWasNewline bool // tracks if we just saw a blank line (for detached comments) -} - -func newLexerState(filename, input string, trivia *TriviaList) *lexerState { - return &lexerState{ - filename: filename, - input: input, - offset: 0, - line: 1, - col: 1, - trivia: trivia, - } -} - -// Next returns the next token. -func (l *lexerState) Next() (lexer.Token, error) { - if l.eof() { - return lexer.EOFToken(l.pos()), nil - } - - start := l.pos() - r := l.peek() - - // Whitespace - track blank lines for "detached" comment detection - if isSpace(r) { - newlineCount := 0 - - for !l.eof() && isSpace(l.peek()) { - if l.peek() == '\n' { - newlineCount++ - } - - l.advance() - } - // Two or more newlines means there was a blank line - l.lastWasNewline = newlineCount >= 2 - - return l.token(TokenWhitespace, start), nil - } - - // Comment - collect as trivia - if r == '/' && l.peekAt(1) == '/' { - for !l.eof() && l.peek() != '\n' { - l.advance() - } - - tok := l.token(TokenComment, start) - - // Record in trivia list - if l.trivia != nil { - l.trivia.Add(Trivia{ - Type: TriviaComment, - Text: tok.Value, - Span: Span{ - Start: start, - End: l.pos(), - }, - HasNewlineBefore: l.lastWasNewline, - }) - } - - l.lastWasNewline = false - - return tok, nil - } - - // Reset blank line tracker for non-trivia tokens - l.lastWasNewline = false - - // Raw string - if r == '`' { - return l.scanRawString(start) - } - - // String - if r == '"' || r == '\'' { - return l.scanString(start, r) - } - - // Number - if isDigit(r) { - return l.scanNumber(start), nil - } - - // Identifier or keyword - if isIdentStart(r) { - l.advance() // consume first char - - for !l.eof() && isIdentContinue(l.peek()) { - l.advance() - } - - tok := l.token(TokenIdent, start) - // Check if it's a keyword (but not $-prefixed identifiers) - if !strings.HasPrefix(tok.Value, "$") { - if kwType, isKeyword := keywords[tok.Value]; isKeyword { - tok.Type = kwType - } - } - return tok, nil - } - - // Multi-character operators (check before single-char) - if tok, ok := l.scanMultiCharOp(start); ok { - return tok, nil - } - - // Single character tokens - l.advance() - - switch r { - case '.': - return l.token(TokenDot, start), nil - case ':': - return l.token(TokenColon, start), nil - case ',': - return l.token(TokenComma, start), nil - case ';': - return l.token(TokenSemi, start), nil - case '(': - return l.token(TokenLParen, start), nil - case ')': - return l.token(TokenRParen, start), nil - case '[': - return l.token(TokenLBracket, start), nil - case ']': - return l.token(TokenRBracket, start), nil - case '{': - return l.token(TokenLBrace, start), nil - case '}': - return l.token(TokenRBrace, start), nil - } - - // Single-character operators - if strings.ContainsRune("+-*/%^&|!<>=?#~", r) { - return l.token(TokenOp, start), nil - } - - return lexer.Token{}, ErrUnexpectedCharacter.withPos(start).withChar(r) -} - -func (l *lexerState) pos() lexer.Position { - return lexer.Position{ - Filename: l.filename, - Offset: l.offset, - Line: l.line, - Column: l.col, - } -} - -func (l *lexerState) eof() bool { - return l.offset >= len(l.input) -} - -func (l *lexerState) peek() rune { - if l.eof() { - return 0 - } - - r, _ := utf8.DecodeRuneInString(l.input[l.offset:]) - - return r -} - -//nolint:unparam // n is always 1 currently but kept for flexibility. -func (l *lexerState) peekAt(n int) rune { - off := l.offset + n - if off >= len(l.input) { - return 0 - } - - r, _ := utf8.DecodeRuneInString(l.input[off:]) - - return r -} - -//nolint:unparam // Return value useful for debugging. -func (l *lexerState) advance() rune { - if l.eof() { - return 0 - } - - r, size := utf8.DecodeRuneInString(l.input[l.offset:]) - l.offset += size - - if r == '\n' { - l.line++ - l.col = 1 - } else { - l.col++ - } - - return r -} - -func (l *lexerState) match(s string) bool { - return strings.HasPrefix(l.input[l.offset:], s) -} - -func (l *lexerState) token(typ lexer.TokenType, start lexer.Position) lexer.Token { - return lexer.Token{ - Type: typ, - Value: l.input[start.Offset:l.offset], - Pos: start, - } -} - -func (l *lexerState) scanRawString(start lexer.Position) (lexer.Token, error) { - l.advance() // opening ` - - for !l.eof() { - if l.peek() == '`' { - l.advance() // closing ` - - return l.token(TokenRawString, start), nil - } - - l.advance() - } - - return lexer.Token{}, ErrUnterminatedRawString.withPos(start) -} - -func (l *lexerState) scanString(start lexer.Position, quote rune) (lexer.Token, error) { - l.advance() // opening quote - - for !l.eof() { - ch := l.peek() - if ch == '\\' && l.peekAt(1) != 0 { - l.advance() // backslash - l.advance() // escaped char - - continue - } - - if ch == quote { - l.advance() // closing quote - - return l.token(TokenString, start), nil - } - - if ch == '\n' { - return lexer.Token{}, ErrUnterminatedString.withPos(start) - } - - l.advance() - } - - return lexer.Token{}, ErrUnterminatedString.withPos(start) -} - -func (l *lexerState) scanMultiCharOp(start lexer.Position) (lexer.Token, bool) { - multiOps := []string{"&&", "||", "==", "!=", "<=", ">=", "!~", "?.", "..", "?:", "::", "##"} - - for _, op := range multiOps { - if l.match(op) { - for range len(op) { - l.advance() - } - - return l.token(TokenOp, start), true - } - } - - return lexer.Token{}, false -} - -func (l *lexerState) scanNumber(start lexer.Position) lexer.Token { - // Check for hex, octal, binary - if l.peek() == '0' && l.peekAt(1) != 0 { - next := l.peekAt(1) - - switch next { - case 'x', 'X': - l.advance() // 0 - l.advance() // x - - for !l.eof() && (isHexDigit(l.peek()) || l.peek() == '_') { - l.advance() - } - - return l.token(TokenNumber, start) - - case 'o', 'O': - l.advance() // 0 - l.advance() // o - - for !l.eof() && (isOctalDigit(l.peek()) || l.peek() == '_') { - l.advance() - } - - return l.token(TokenNumber, start) - - case 'b', 'B': - l.advance() // 0 - l.advance() // b - - for !l.eof() && (l.peek() == '0' || l.peek() == '1' || l.peek() == '_') { - l.advance() - } - - return l.token(TokenNumber, start) - } - } - - // Decimal digits - for !l.eof() && (isDigit(l.peek()) || l.peek() == '_') { - l.advance() - } - - // Fractional part - if l.peek() == '.' && isDigit(l.peekAt(1)) { - l.advance() // . - - for !l.eof() && (isDigit(l.peek()) || l.peek() == '_') { - l.advance() - } - } - - // Exponent - if l.peek() == 'e' || l.peek() == 'E' { - l.advance() // e/E - - if l.peek() == '+' || l.peek() == '-' { - l.advance() - } - - for !l.eof() && (isDigit(l.peek()) || l.peek() == '_') { - l.advance() - } - } - - return l.token(TokenNumber, start) -} - -// IsKeywordToken returns true if the token type is a structural keyword. -func IsKeywordToken(typ lexer.TokenType) bool { - return typ == TokenQuery || - typ == TokenImport || - typ == TokenSetup || - typ == TokenTeardown || - typ == TokenTest || - typ == TokenGroup || - typ == TokenAssert -} - -// Character helpers. - -func isSpace(r rune) bool { - return r == ' ' || r == '\t' || r == '\n' || r == '\r' -} - -func isDigit(r rune) bool { - return r >= '0' && r <= '9' -} - -func isHexDigit(r rune) bool { - return isDigit(r) || (r >= 'a' && r <= 'f') || (r >= 'A' && r <= 'F') -} - -func isOctalDigit(r rune) bool { - return r >= '0' && r <= '7' -} - -func isIdentStart(r rune) bool { - return r == '$' || r == '_' || unicode.IsLetter(r) -} - -func isIdentContinue(r rune) bool { - return r == '_' || unicode.IsLetter(r) || unicode.IsDigit(r) -} diff --git a/example/vendor/github.com/rlch/scaf/module/errors.go b/example/vendor/github.com/rlch/scaf/module/errors.go deleted file mode 100644 index 6cc89ee..0000000 --- a/example/vendor/github.com/rlch/scaf/module/errors.go +++ /dev/null @@ -1,94 +0,0 @@ -// Package module provides module loading and dependency resolution for scaf test suites. -package module - -import ( - "errors" - "fmt" - "strings" -) - -// Sentinel errors for module operations. -var ( - // ErrModuleNotFound is returned when a module cannot be found at the specified path. - ErrModuleNotFound = errors.New("module: not found") - - // ErrCyclicDependency is returned when a cycle is detected in the import graph. - ErrCyclicDependency = errors.New("module: cyclic dependency detected") - - // ErrUnknownModule is returned when a module alias cannot be resolved. - ErrUnknownModule = errors.New("module: unknown module alias") - - // ErrUnknownQuery is returned when a query cannot be found in a module. - ErrUnknownQuery = errors.New("module: unknown query") - - // ErrNoSetup is returned when a module has no setup clause. - ErrNoSetup = errors.New("module: no setup clause") - - // ErrParseError is returned when a module fails to parse. - ErrParseError = errors.New("module: parse error") -) - -// CycleError provides details about a cyclic dependency. -type CycleError struct { - // Path shows the cycle: [A, B, C, A] means A imports B, B imports C, C imports A. - Path []string -} - -func (e *CycleError) Error() string { - return fmt.Sprintf("%v: %s", ErrCyclicDependency, strings.Join(e.Path, " -> ")) -} - -func (e *CycleError) Unwrap() error { - return ErrCyclicDependency -} - -// ResolveError provides details about a failed setup resolution. -type ResolveError struct { - // Module is the module alias (empty for local reference). - Module string - // Name is the setup name being resolved. - Name string - // AvailablePath is the path of the module where lookup failed. - AvailablePath string - // Cause is the underlying error. - Cause error -} - -func (e *ResolveError) Error() string { - ref := e.Name - if e.Module != "" { - ref = e.Module + "." + e.Name - } - - if e.AvailablePath != "" { - return fmt.Sprintf("%v: %s (in %s)", e.Cause, ref, e.AvailablePath) - } - - return fmt.Sprintf("%v: %s", e.Cause, ref) -} - -func (e *ResolveError) Unwrap() error { - return e.Cause -} - -// LoadError provides details about a failed module load. -type LoadError struct { - // Path is the filesystem path that failed to load. - Path string - // ImportedFrom is the module that imported this path (empty for root). - ImportedFrom string - // Cause is the underlying error. - Cause error -} - -func (e *LoadError) Error() string { - if e.ImportedFrom != "" { - return fmt.Sprintf("failed to load %q (imported from %s): %v", e.Path, e.ImportedFrom, e.Cause) - } - - return fmt.Sprintf("failed to load %q: %v", e.Path, e.Cause) -} - -func (e *LoadError) Unwrap() error { - return e.Cause -} diff --git a/example/vendor/github.com/rlch/scaf/module/loader.go b/example/vendor/github.com/rlch/scaf/module/loader.go deleted file mode 100644 index e4f8619..0000000 --- a/example/vendor/github.com/rlch/scaf/module/loader.go +++ /dev/null @@ -1,173 +0,0 @@ -package module - -import ( - "fmt" - "maps" - "os" - "path/filepath" - - "github.com/rlch/scaf" -) - -// Loader handles loading and caching of scaf modules. -type Loader struct { - // cache stores loaded modules by absolute path. - cache map[string]*Module - - // Parser is the function used to parse .scaf files. - // Defaults to scaf.Parse but can be overridden for testing. - Parser func(data []byte) (*scaf.Suite, error) -} - -// NewLoader creates a new module loader. -func NewLoader() *Loader { - return &Loader{ - cache: make(map[string]*Module), - Parser: scaf.Parse, - } -} - -// Load loads a module from the given path. -// Relative paths are resolved from the current working directory. -// Returns a cached module if already loaded. -func (l *Loader) Load(path string) (*Module, error) { - absPath, err := l.resolvePath(path, "") - if err != nil { - return nil, err - } - - return l.loadAbsolute(absPath, "") -} - -// LoadFrom loads a module, resolving the path relative to a base module. -// This is used for loading imports. -func (l *Loader) LoadFrom(path string, from *Module) (*Module, error) { - absPath, err := l.resolvePath(path, from.Path) - if err != nil { - return nil, &LoadError{ - Path: path, - ImportedFrom: from.Path, - Cause: err, - } - } - - return l.loadAbsolute(absPath, from.Path) -} - -// resolvePath resolves a path to an absolute path. -// If basePath is provided, relative paths are resolved from its directory. -func (l *Loader) resolvePath(path, basePath string) (string, error) { //nolint:funcorder - // If path is already absolute, use it directly - if filepath.IsAbs(path) { - return l.normalizeScafPath(path) - } - - // Resolve relative path - var baseDir string - if basePath != "" { - baseDir = filepath.Dir(basePath) - } else { - var err error - - baseDir, err = os.Getwd() - if err != nil { - return "", fmt.Errorf("failed to get working directory: %w", err) - } - } - - absPath := filepath.Join(baseDir, path) - - return l.normalizeScafPath(absPath) -} - -// normalizeScafPath ensures the path has .scaf extension and exists. -func (l *Loader) normalizeScafPath(path string) (string, error) { //nolint:funcorder - // Clean the path - path = filepath.Clean(path) - - // Try the path as-is first - _, err := os.Stat(path) - if err == nil { - return filepath.Abs(path) - } - - // If no extension, try common patterns - if filepath.Ext(path) == "" { - // Try .scaf first - if resolved := tryExtensions(path, ".scaf"); resolved != "" { - return filepath.Abs(resolved) - } - - // Try dialect-specific extensions (e.g., .cypher.scaf, .sql.scaf) - // by globbing for any *.scaf file matching the base name - dir := filepath.Dir(path) - base := filepath.Base(path) - pattern := filepath.Join(dir, base+"*.scaf") - - matches, err := filepath.Glob(pattern) - if err == nil && len(matches) == 1 { - return filepath.Abs(matches[0]) - } - } - - return "", fmt.Errorf("%w: %s", ErrModuleNotFound, path) -} - -// tryExtensions tries to find a file with the given extension. -func tryExtensions(path, ext string) string { - withExt := path + ext - - _, err := os.Stat(withExt) - if err == nil { - return withExt - } - - return "" -} - -// loadAbsolute loads a module from an absolute path. -func (l *Loader) loadAbsolute(absPath, importedFrom string) (*Module, error) { //nolint:funcorder - // Check cache - if mod, ok := l.cache[absPath]; ok { - return mod, nil - } - - // Read file - data, err := os.ReadFile(absPath) //nolint:gosec // G304: file path from user input is expected - if err != nil { - return nil, &LoadError{ - Path: absPath, - ImportedFrom: importedFrom, - Cause: err, - } - } - - // Parse - suite, err := l.Parser(data) - if err != nil { - return nil, &LoadError{ - Path: absPath, - ImportedFrom: importedFrom, - Cause: fmt.Errorf("%w: %w", ErrParseError, err), - } - } - - // Create module and cache it - mod := NewModule(absPath, suite) - l.cache[absPath] = mod - - return mod, nil -} - -// Clear clears the module cache. -func (l *Loader) Clear() { - l.cache = make(map[string]*Module) -} - -// Cached returns all cached modules. -func (l *Loader) Cached() map[string]*Module { - result := make(map[string]*Module, len(l.cache)) - maps.Copy(result, l.cache) - - return result -} diff --git a/example/vendor/github.com/rlch/scaf/module/module.go b/example/vendor/github.com/rlch/scaf/module/module.go deleted file mode 100644 index e51f8d0..0000000 --- a/example/vendor/github.com/rlch/scaf/module/module.go +++ /dev/null @@ -1,147 +0,0 @@ -package module - -import ( - "path/filepath" - "strings" - - "github.com/rlch/scaf" -) - -// Module represents a loaded scaf module with resolved metadata. -type Module struct { - // Path is the absolute filesystem path to the .scaf file. - Path string - - // Suite is the parsed AST. - Suite *scaf.Suite - - // Queries maps query name to query body for fast lookup. - Queries map[string]string -} - -// NewModule creates a Module from a parsed Suite. -func NewModule(path string, suite *scaf.Suite) *Module { - m := &Module{ - Path: path, - Suite: suite, - Queries: make(map[string]string), - } - - // Index queries for fast lookup - for _, q := range suite.Queries { - m.Queries[q.Name] = q.Body - } - - return m -} - -// HasSetup returns true if this module has a setup clause. -func (m *Module) HasSetup() bool { - return m.Suite != nil && m.Suite.Setup != nil -} - -// GetSetup returns the module's setup clause, or nil if none. -func (m *Module) GetSetup() *scaf.SetupClause { - if m.Suite == nil { - return nil - } - return m.Suite.Setup -} - -// GetQuery returns a query by name, or empty string if not found. -func (m *Module) GetQuery(name string) (string, bool) { - q, ok := m.Queries[name] - return q, ok -} - -// BaseName returns the module name derived from the file path. -// For "/path/to/fixtures.scaf", returns "fixtures". -// For "/path/to/fixtures.cypher.scaf", returns "fixtures". -func (m *Module) BaseName() string { - base := filepath.Base(m.Path) - // Strip all extensions (handles .cypher.scaf, .sql.scaf, etc.) - for ext := filepath.Ext(base); ext != ""; ext = filepath.Ext(base) { - base = strings.TrimSuffix(base, ext) - } - return base -} - -// ResolvedContext holds all modules needed to execute a test suite. -type ResolvedContext struct { - // Root is the main module being executed. - Root *Module - - // Imports maps alias -> module for all imported modules. - // If an import has no alias, the module's base name is used. - Imports map[string]*Module - - // AllModules contains all loaded modules by absolute path. - AllModules map[string]*Module -} - -// NewResolvedContext creates a new resolution context. -func NewResolvedContext(root *Module) *ResolvedContext { - return &ResolvedContext{ - Root: root, - Imports: make(map[string]*Module), - AllModules: map[string]*Module{root.Path: root}, - } -} - -// ResolveModule looks up a module by alias. -// Returns an error if the module is not found. -func (rc *ResolvedContext) ResolveModule(alias string) (*Module, error) { - mod, ok := rc.Imports[alias] - if !ok { - return nil, &ResolveError{ - Module: alias, - Cause: ErrUnknownModule, - } - } - return mod, nil -} - -// ResolveQuery looks up a query by module alias and query name. -// Returns the query body and any error. -func (rc *ResolvedContext) ResolveQuery(moduleAlias, queryName string) (string, error) { - mod, ok := rc.Imports[moduleAlias] - if !ok { - return "", &ResolveError{ - Module: moduleAlias, - Name: queryName, - Cause: ErrUnknownModule, - } - } - - query, ok := mod.GetQuery(queryName) - if !ok { - return "", &ResolveError{ - Module: moduleAlias, - Name: queryName, - AvailablePath: mod.Path, - Cause: ErrUnknownQuery, - } - } - - return query, nil -} - -// GetQueries returns a combined query map with all queries from root and imports. -// Import queries are prefixed with their alias: "alias.QueryName". -func (rc *ResolvedContext) GetQueries() map[string]string { - queries := make(map[string]string) - - // Add root queries - for name, body := range rc.Root.Queries { - queries[name] = body - } - - // Add imported queries with prefix - for alias, mod := range rc.Imports { - for name, body := range mod.Queries { - queries[alias+"."+name] = body - } - } - - return queries -} diff --git a/example/vendor/github.com/rlch/scaf/module/resolver.go b/example/vendor/github.com/rlch/scaf/module/resolver.go deleted file mode 100644 index c4cd343..0000000 --- a/example/vendor/github.com/rlch/scaf/module/resolver.go +++ /dev/null @@ -1,133 +0,0 @@ -package module - -import ( - "fmt" - - "github.com/rlch/scaf" -) - -// Resolver handles module dependency resolution and cycle detection. -type Resolver struct { - loader *Loader -} - -// NewResolver creates a new module resolver with the given loader. -func NewResolver(loader *Loader) *Resolver { - return &Resolver{ - loader: loader, - } -} - -// Resolve loads a module and all its transitive dependencies. -// Returns a ResolvedContext containing all modules needed for execution. -// Detects and reports cyclic dependencies. -func (r *Resolver) Resolve(rootPath string) (*ResolvedContext, error) { - // Load the root module - root, err := r.loader.Load(rootPath) - if err != nil { - return nil, err - } - - ctx := NewResolvedContext(root) - - // Track visited modules for cycle detection - // visiting = currently in the DFS stack (gray nodes) - // visited = fully processed (black nodes) - visiting := make(map[string]bool) - visited := make(map[string]bool) - - // Resolve all imports starting from root. - err = r.resolveImports(root, ctx, visiting, visited, []string{root.Path}) - if err != nil { - return nil, err - } - - return ctx, nil -} - -// resolveImports recursively loads and resolves imports for a module. -func (r *Resolver) resolveImports( //nolint:funcorder - mod *Module, - ctx *ResolvedContext, - visiting, visited map[string]bool, - path []string, -) error { - // Mark as currently visiting - visiting[mod.Path] = true - - // Process each import - for _, imp := range mod.Suite.Imports { - // Load the imported module - imported, err := r.loader.LoadFrom(imp.Path, mod) - if err != nil { - return err - } - - // Check for cycle - if visiting[imported.Path] { - // Found a cycle - construct the cycle path - cyclePath := append(path, imported.Path) //nolint:gocritic // intentional append to new slice - - return &CycleError{Path: cyclePath} - } - - // Add to context with the appropriate alias - var alias string - if imp.Alias != nil { - alias = *imp.Alias - } else { - // Use the base name if no alias specified - alias = imported.BaseName() - } - - // Check for alias collision - if existing, ok := ctx.Imports[alias]; ok && existing.Path != imported.Path { - // Same alias pointing to different modules - error - return &ResolveError{ - Module: alias, - Cause: fmt.Errorf("alias %q already used for %s", alias, existing.Path), - } - } - - ctx.Imports[alias] = imported - ctx.AllModules[imported.Path] = imported - - // Recursively resolve if not already visited - if !visited[imported.Path] { - newPath := append(path, imported.Path) //nolint:gocritic // intentional append to new slice - - err := r.resolveImports(imported, ctx, visiting, visited, newPath) - if err != nil { - return err - } - } - } - - // Mark as fully visited - visiting[mod.Path] = false - visited[mod.Path] = true - - return nil -} - -// ResolveFromSuite creates a ResolvedContext for an already-parsed suite. -// This is useful when the suite is parsed separately (e.g., in tests). -func (r *Resolver) ResolveFromSuite(path string, suite *scaf.Suite) (*ResolvedContext, error) { - // Create the root module from the provided suite - root := NewModule(path, suite) - - // Cache it in the loader so imports can find it - r.loader.cache[root.Path] = root - - ctx := NewResolvedContext(root) - - visiting := make(map[string]bool) - visited := make(map[string]bool) - - err := r.resolveImports(root, ctx, visiting, visited, []string{root.Path}) - if err != nil { - return nil, err - } - - return ctx, nil -} diff --git a/example/vendor/github.com/rlch/scaf/names.go b/example/vendor/github.com/rlch/scaf/names.go deleted file mode 100644 index 48d7962..0000000 --- a/example/vendor/github.com/rlch/scaf/names.go +++ /dev/null @@ -1,64 +0,0 @@ -package scaf - -// Database names. -const ( - DatabaseNeo4j = "neo4j" - DatabasePostgres = "postgres" - DatabaseMySQL = "mysql" - DatabaseSQLite = "sqlite" -) - -// Dialect names. -const ( - DialectCypher = "cypher" - DialectSQL = "sql" -) - -// Adapter names (for code generation). -const ( - AdapterNeogo = "neogo" - AdapterPgx = "pgx" - AdapterMySQL = "mysql" - AdapterSQLite = "sqlite" -) - -// Language names. -const ( - LangGo = "go" -) - -// DatabaseInfo maps database names to their dialect and default adapter. -type DatabaseInfo struct { - Dialect string - Adapter string // default adapter for Go -} - -// KnownDatabases maps database names to their info. -var KnownDatabases = map[string]DatabaseInfo{ - DatabaseNeo4j: {Dialect: DialectCypher, Adapter: AdapterNeogo}, - DatabasePostgres: {Dialect: DialectSQL, Adapter: AdapterPgx}, - DatabaseMySQL: {Dialect: DialectSQL, Adapter: AdapterMySQL}, - DatabaseSQLite: {Dialect: DialectSQL, Adapter: AdapterSQLite}, -} - -// DialectForDatabase returns the dialect name for a database. -func DialectForDatabase(dbName string) string { - if info, ok := KnownDatabases[dbName]; ok { - return info.Dialect - } - - return "" -} - -// AdapterForDatabase returns the default adapter name for a database and language. -func AdapterForDatabase(dbName, lang string) string { - if lang != LangGo { - return "" - } - - if info, ok := KnownDatabases[dbName]; ok { - return info.Adapter - } - - return "" -} diff --git a/example/vendor/github.com/rlch/scaf/parser.go b/example/vendor/github.com/rlch/scaf/parser.go deleted file mode 100644 index b6efa76..0000000 --- a/example/vendor/github.com/rlch/scaf/parser.go +++ /dev/null @@ -1,105 +0,0 @@ -package scaf - -import ( - "io" - - "github.com/alecthomas/participle/v2" -) - -// dslLexer is the custom lexer for the scaf DSL. -// Implements lexer.Definition interface for full control over tokenization. -var dslLexer = newDSLLexer() - -var parser = participle.MustBuild[Suite]( - participle.Lexer(dslLexer), - participle.Unquote("RawString", "String"), - participle.Elide("Whitespace", "Comment"), -) - -// Parse parses a scaf DSL file and returns the AST with comments attached to nodes. -// This function is thread-safe. -// -// On parse errors, returns a partial AST containing everything successfully parsed -// up to the error location, along with the error. Callers should use the partial -// AST for features like completion and hover even when errors are present. -func Parse(data []byte) (*Suite, error) { - return ParseWithRecovery(data, false) -} - -// ParseWithRecovery parses a scaf DSL file with optional error recovery. -// When withRecovery is true, the parser will attempt to continue parsing after -// encountering errors, collecting multiple errors and producing a more complete -// partial AST. This is useful for LSP features where you want maximum information -// even from invalid files. -// -// Recovery uses statement-boundary synchronization: -// - Skips to closing braces `}` (block terminators) -// - Skips to keywords that start new constructs: test, group, query, import, setup, teardown, assert -// - Handles nested braces and parentheses correctly -func ParseWithRecovery(data []byte, withRecovery bool) (*Suite, error) { - return parseWithOptions(data, withRecovery, nil) -} - -// ParseWithRecoveryTrace is like ParseWithRecovery but writes recovery trace to w. -// Useful for debugging recovery behavior. -func ParseWithRecoveryTrace(data []byte, withRecovery bool, w io.Writer) (*Suite, error) { - return parseWithOptions(data, withRecovery, w) -} - -func parseWithOptions(data []byte, withRecovery bool, traceWriter io.Writer) (*Suite, error) { - // Lock to ensure trivia isn't overwritten by concurrent parses - dslLexer.Lock() - defer dslLexer.Unlock() - - var suite *Suite - var err error - - if withRecovery { - opts := []participle.ParseOption{ - participle.Recover( - // Skip to statement boundaries - keywords and block terminators. - // This is the idiomatic participle approach: when an error occurs, - // skip tokens until we find a synchronization point where parsing - // can resume. - participle.SkipUntil( - "}", // Block closer - ends test, group, assert, scope, setup block - "test", // Test definition - "group", // Group definition - "query", // Query definition - "import", // Import statement - "setup", // Setup clause - "teardown", // Teardown clause - "assert", // Assert block - ), - // Handle nested braces correctly so we don't sync to a } inside a nested block - participle.NestedDelimiters("{", "}"), - // Handle parentheses in function calls like fixtures.CreateUser() - participle.NestedDelimiters("(", ")"), - // Handle brackets in list literals like [1, 2, 3] - participle.NestedDelimiters("[", "]"), - ), - participle.MaxRecoveryErrors(50), - } - if traceWriter != nil { - opts = append(opts, participle.TraceRecovery(traceWriter)) - } - suite, err = parser.ParseBytes("", data, opts...) - } else { - suite, err = parser.ParseBytes("", data) - } - - // Attach comments even to partial ASTs - Participle populates as much - // of the AST as possible before the error location - if suite != nil { - attachComments(suite, dslLexer.Trivia()) - } - - return suite, err -} - -// ExportedLexer returns the lexer definition for testing purposes. -// -//nolint:revive // unexported-return: intentionally returns unexported type for internal test use -func ExportedLexer() *dslDefinition { - return dslLexer -} diff --git a/example/vendor/github.com/rlch/scaf/trivia.go b/example/vendor/github.com/rlch/scaf/trivia.go deleted file mode 100644 index 72ad6fd..0000000 --- a/example/vendor/github.com/rlch/scaf/trivia.go +++ /dev/null @@ -1,287 +0,0 @@ -package scaf - -import "github.com/alecthomas/participle/v2/lexer" - -// Span represents a range in source code. -type Span struct { - Start lexer.Position - End lexer.Position -} - -// Trivia represents non-semantic tokens like comments and whitespace. -type Trivia struct { - Type TriviaType - Text string - Span Span - // HasNewlineBefore is true if there was a blank line before this trivia. - // Useful for distinguishing "detached" comments. - HasNewlineBefore bool -} - -// TriviaType distinguishes different kinds of trivia. -type TriviaType int - -// TriviaType constants define the types of trivia (comments, whitespace). -const ( - // TriviaComment represents a comment trivia. - TriviaComment TriviaType = iota - // TriviaWhitespace represents whitespace trivia. - TriviaWhitespace -) - -// TriviaList holds all trivia collected during lexing. -// It's associated with tokens by position - trivia "attaches" to the next -// real token as leading trivia, except trailing comments (same line) attach -// to the previous token. -type TriviaList struct { - items []Trivia -} - -// Add appends trivia to the list. -func (t *TriviaList) Add(trivia Trivia) { - t.items = append(t.items, trivia) -} - -// All returns all collected trivia. -func (t *TriviaList) All() []Trivia { - return t.items -} - -// Reset clears the trivia list. -func (t *TriviaList) Reset() { - t.items = t.items[:0] -} - -// commentableNode represents an AST node that can have comments attached. -// We store both the span (for position matching) and a pointer to the CommentMeta. -type commentableNode struct { - span Span - comment *CommentMeta -} - -// attachComments associates collected trivia with AST nodes based on positions, -// applying the comments directly to the node fields. -// -// Comment attachment rules: -// - Comments on the same line after a node are trailing comments for that node -// - Comments before a node attach to the closest following node -// - Comments at the very top of the file (before any declarations) attach to Suite -// only if separated from the first declaration by a blank line -func attachComments(suite *Suite, trivia *TriviaList) { - if trivia == nil || len(trivia.items) == 0 || suite == nil { - return - } - - allTrivia := trivia.All() - - // Collect all commentable nodes (excluding Suite - handled separately) - var nodes []commentableNode - collectCommentableNodes(suite, &nodes) - - // Find the first declaration's line number for Suite comment detection - firstDeclLine := findFirstDeclarationLine(suite) - - // Extract just the comments for easier processing - var comments []Trivia - for _, t := range allTrivia { - if t.Type == TriviaComment { - comments = append(comments, t) - } - } - - // For each comment, find which node it belongs to - for _, t := range comments { - commentText := t.Text - attached := false - - // Check if it's a trailing comment (same line as end of some node) - for j := range nodes { - node := &nodes[j] - // Trailing: comment starts on same line as node ends, after the node - if t.Span.Start.Line == node.span.End.Line && t.Span.Start.Offset > node.span.End.Offset { - node.comment.TrailingComment = commentText - attached = true - break - } - } - - if attached { - continue - } - - // Leading: find the closest node that starts after this comment - var closestNode *commentableNode - for j := range nodes { - node := &nodes[j] - // Comment ends before node starts (on previous line or same line before) - if t.Span.End.Line < node.span.Start.Line || - (t.Span.End.Line == node.span.Start.Line && t.Span.End.Offset < node.span.Start.Offset) { - // Check if this is the closest node - if closestNode == nil || node.span.Start.Line < closestNode.span.Start.Line || - (node.span.Start.Line == closestNode.span.Start.Line && node.span.Start.Offset < closestNode.span.Start.Offset) { - closestNode = node - } - } - } - - if closestNode != nil { - // Check if this comment should be a Suite comment. - // Suite comments are before the first declaration AND part of a comment block - // that is separated by a blank line from the first declaration (or its doc comments). - isFirstDecl := closestNode.span.Start.Line == firstDeclLine - - shouldAttachToSuite := false - if isFirstDecl { - // Find where the "doc comment block" for the first declaration starts. - // Walk backwards from the declaration to find consecutive comments (no blank lines). - docBlockStartLine := closestNode.span.Start.Line - - // Find the last comment before the declaration and trace back through - // consecutive comments to find where the doc block starts - for j := len(comments) - 1; j >= 0; j-- { - c := comments[j] - if c.Span.End.Line >= closestNode.span.Start.Line { - continue // Comment is on or after the declaration - } - // Check if this comment is consecutive with docBlockStartLine - if c.Span.End.Line == docBlockStartLine-1 { - docBlockStartLine = c.Span.Start.Line - } else if c.Span.End.Line < docBlockStartLine-1 { - // There's a gap - this comment is before the doc block - break - } - } - - // This comment should go to Suite if it ends before the doc block starts - // (i.e., there's a blank line between this comment and the doc block) - shouldAttachToSuite = t.Span.End.Line < docBlockStartLine-1 - } - - if shouldAttachToSuite { - // Comment separated by blank line -> Suite comment - suite.LeadingComments = append(suite.LeadingComments, commentText) - } else { - // Comment directly before node -> leading comment for that node - closestNode.comment.LeadingComments = append(closestNode.comment.LeadingComments, commentText) - } - attached = true - } - - // If comment wasn't attached to any declaration (e.g., file with no declarations), - // attach to Suite - if !attached { - suite.LeadingComments = append(suite.LeadingComments, commentText) - } - } -} - -// findFirstDeclarationLine returns the line number of the first declaration -// (import, query, setup, teardown, or scope). Returns 0 if no declarations. -func findFirstDeclarationLine(suite *Suite) int { - if suite == nil { - return 0 - } - - firstLine := 0 - - // Check imports - for _, imp := range suite.Imports { - if firstLine == 0 || imp.Pos.Line < firstLine { - firstLine = imp.Pos.Line - } - } - - // Check queries - for _, q := range suite.Queries { - if firstLine == 0 || q.Pos.Line < firstLine { - firstLine = q.Pos.Line - } - } - - // Check scopes - for _, scope := range suite.Scopes { - if firstLine == 0 || scope.Pos.Line < firstLine { - firstLine = scope.Pos.Line - } - } - - return firstLine -} - -// collectCommentableNodes gathers all nodes that can have comments attached. -// Suite is excluded - it's handled specially for file-level comments. -func collectCommentableNodes(suite *Suite, nodes *[]commentableNode) { - if suite == nil { - return - } - - // NOTE: We intentionally do NOT include Suite here. - // Suite only gets comments that are separated by a blank line from - // the first declaration. - - for _, imp := range suite.Imports { - *nodes = append(*nodes, commentableNode{ - span: imp.Span(), - comment: &imp.CommentMeta, - }) - } - - for _, q := range suite.Queries { - *nodes = append(*nodes, commentableNode{ - span: q.Span(), - comment: &q.CommentMeta, - }) - } - - for _, scope := range suite.Scopes { - collectScopeCommentableNodes(scope, nodes) - } -} - -func collectScopeCommentableNodes(scope *QueryScope, nodes *[]commentableNode) { - if scope == nil { - return - } - - *nodes = append(*nodes, commentableNode{ - span: scope.Span(), - comment: &scope.CommentMeta, - }) - - for _, item := range scope.Items { - if item.Test != nil { - *nodes = append(*nodes, commentableNode{ - span: item.Test.Span(), - comment: &item.Test.CommentMeta, - }) - } - - if item.Group != nil { - collectGroupCommentableNodes(item.Group, nodes) - } - } -} - -func collectGroupCommentableNodes(group *Group, nodes *[]commentableNode) { - if group == nil { - return - } - - *nodes = append(*nodes, commentableNode{ - span: group.Span(), - comment: &group.CommentMeta, - }) - - for _, item := range group.Items { - if item.Test != nil { - *nodes = append(*nodes, commentableNode{ - span: item.Test.Span(), - comment: &item.Test.CommentMeta, - }) - } - - if item.Group != nil { - collectGroupCommentableNodes(item.Group, nodes) - } - } -} diff --git a/example/vendor/golang.org/x/sync/LICENSE b/example/vendor/golang.org/x/sync/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/example/vendor/golang.org/x/sync/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -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. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -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. diff --git a/example/vendor/golang.org/x/sync/PATENTS b/example/vendor/golang.org/x/sync/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/example/vendor/golang.org/x/sync/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/example/vendor/golang.org/x/sync/semaphore/semaphore.go b/example/vendor/golang.org/x/sync/semaphore/semaphore.go deleted file mode 100644 index b618162..0000000 --- a/example/vendor/golang.org/x/sync/semaphore/semaphore.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package semaphore provides a weighted semaphore implementation. -package semaphore // import "golang.org/x/sync/semaphore" - -import ( - "container/list" - "context" - "sync" -) - -type waiter struct { - n int64 - ready chan<- struct{} // Closed when semaphore acquired. -} - -// NewWeighted creates a new weighted semaphore with the given -// maximum combined weight for concurrent access. -func NewWeighted(n int64) *Weighted { - w := &Weighted{size: n} - return w -} - -// Weighted provides a way to bound concurrent access to a resource. -// The callers can request access with a given weight. -type Weighted struct { - size int64 - cur int64 - mu sync.Mutex - waiters list.List -} - -// Acquire acquires the semaphore with a weight of n, blocking until resources -// are available or ctx is done. On success, returns nil. On failure, returns -// ctx.Err() and leaves the semaphore unchanged. -func (s *Weighted) Acquire(ctx context.Context, n int64) error { - done := ctx.Done() - - s.mu.Lock() - select { - case <-done: - // ctx becoming done has "happened before" acquiring the semaphore, - // whether it became done before the call began or while we were - // waiting for the mutex. We prefer to fail even if we could acquire - // the mutex without blocking. - s.mu.Unlock() - return ctx.Err() - default: - } - if s.size-s.cur >= n && s.waiters.Len() == 0 { - // Since we hold s.mu and haven't synchronized since checking done, if - // ctx becomes done before we return here, it becoming done must have - // "happened concurrently" with this call - it cannot "happen before" - // we return in this branch. So, we're ok to always acquire here. - s.cur += n - s.mu.Unlock() - return nil - } - - if n > s.size { - // Don't make other Acquire calls block on one that's doomed to fail. - s.mu.Unlock() - <-done - return ctx.Err() - } - - ready := make(chan struct{}) - w := waiter{n: n, ready: ready} - elem := s.waiters.PushBack(w) - s.mu.Unlock() - - select { - case <-done: - s.mu.Lock() - select { - case <-ready: - // Acquired the semaphore after we were canceled. - // Pretend we didn't and put the tokens back. - s.cur -= n - s.notifyWaiters() - default: - isFront := s.waiters.Front() == elem - s.waiters.Remove(elem) - // If we're at the front and there're extra tokens left, notify other waiters. - if isFront && s.size > s.cur { - s.notifyWaiters() - } - } - s.mu.Unlock() - return ctx.Err() - - case <-ready: - // Acquired the semaphore. Check that ctx isn't already done. - // We check the done channel instead of calling ctx.Err because we - // already have the channel, and ctx.Err is O(n) with the nesting - // depth of ctx. - select { - case <-done: - s.Release(n) - return ctx.Err() - default: - } - return nil - } -} - -// TryAcquire acquires the semaphore with a weight of n without blocking. -// On success, returns true. On failure, returns false and leaves the semaphore unchanged. -func (s *Weighted) TryAcquire(n int64) bool { - s.mu.Lock() - success := s.size-s.cur >= n && s.waiters.Len() == 0 - if success { - s.cur += n - } - s.mu.Unlock() - return success -} - -// Release releases the semaphore with a weight of n. -func (s *Weighted) Release(n int64) { - s.mu.Lock() - s.cur -= n - if s.cur < 0 { - s.mu.Unlock() - panic("semaphore: released more than held") - } - s.notifyWaiters() - s.mu.Unlock() -} - -func (s *Weighted) notifyWaiters() { - for { - next := s.waiters.Front() - if next == nil { - break // No more waiters blocked. - } - - w := next.Value.(waiter) - if s.size-s.cur < w.n { - // Not enough tokens for the next waiter. We could keep going (to try to - // find a waiter with a smaller request), but under load that could cause - // starvation for large requests; instead, we leave all remaining waiters - // blocked. - // - // Consider a semaphore used as a read-write lock, with N tokens, N - // readers, and one writer. Each reader can Acquire(1) to obtain a read - // lock. The writer can Acquire(N) to obtain a write lock, excluding all - // of the readers. If we allow the readers to jump ahead in the queue, - // the writer will starve — there is always one token available for every - // reader. - break - } - - s.cur += w.n - s.waiters.Remove(next) - close(w.ready) - } -} diff --git a/example/vendor/gopkg.in/yaml.v3/LICENSE b/example/vendor/gopkg.in/yaml.v3/LICENSE deleted file mode 100644 index 2683e4b..0000000 --- a/example/vendor/gopkg.in/yaml.v3/LICENSE +++ /dev/null @@ -1,50 +0,0 @@ - -This project is covered by two different licenses: MIT and Apache. - -#### MIT License #### - -The following files were ported to Go from C files of libyaml, and thus -are still covered by their original MIT license, with the additional -copyright staring in 2011 when the project was ported over: - - apic.go emitterc.go parserc.go readerc.go scannerc.go - writerc.go yamlh.go yamlprivateh.go - -Copyright (c) 2006-2010 Kirill Simonov -Copyright (c) 2006-2011 Kirill Simonov - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -### Apache License ### - -All the remaining project files are covered by the Apache license: - -Copyright (c) 2011-2019 Canonical Ltd - -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. diff --git a/example/vendor/gopkg.in/yaml.v3/NOTICE b/example/vendor/gopkg.in/yaml.v3/NOTICE deleted file mode 100644 index 866d74a..0000000 --- a/example/vendor/gopkg.in/yaml.v3/NOTICE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2011-2016 Canonical Ltd. - -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. diff --git a/example/vendor/gopkg.in/yaml.v3/README.md b/example/vendor/gopkg.in/yaml.v3/README.md deleted file mode 100644 index 08eb1ba..0000000 --- a/example/vendor/gopkg.in/yaml.v3/README.md +++ /dev/null @@ -1,150 +0,0 @@ -# YAML support for the Go language - -Introduction ------------- - -The yaml package enables Go programs to comfortably encode and decode YAML -values. It was developed within [Canonical](https://www.canonical.com) as -part of the [juju](https://juju.ubuntu.com) project, and is based on a -pure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML) -C library to parse and generate YAML data quickly and reliably. - -Compatibility -------------- - -The yaml package supports most of YAML 1.2, but preserves some behavior -from 1.1 for backwards compatibility. - -Specifically, as of v3 of the yaml package: - - - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being - decoded into a typed bool value. Otherwise they behave as a string. Booleans - in YAML 1.2 are _true/false_ only. - - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_ - as specified in YAML 1.2, because most parsers still use the old format. - Octals in the _0o777_ format are supported though, so new files work. - - Does not support base-60 floats. These are gone from YAML 1.2, and were - actually never supported by this package as it's clearly a poor choice. - -and offers backwards -compatibility with YAML 1.1 in some cases. -1.2, including support for -anchors, tags, map merging, etc. Multi-document unmarshalling is not yet -implemented, and base-60 floats from YAML 1.1 are purposefully not -supported since they're a poor design and are gone in YAML 1.2. - -Installation and usage ----------------------- - -The import path for the package is *gopkg.in/yaml.v3*. - -To install it, run: - - go get gopkg.in/yaml.v3 - -API documentation ------------------ - -If opened in a browser, the import path itself leads to the API documentation: - - - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3) - -API stability -------------- - -The package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in). - - -License -------- - -The yaml package is licensed under the MIT and Apache License 2.0 licenses. -Please see the LICENSE file for details. - - -Example -------- - -```Go -package main - -import ( - "fmt" - "log" - - "gopkg.in/yaml.v3" -) - -var data = ` -a: Easy! -b: - c: 2 - d: [3, 4] -` - -// Note: struct fields must be public in order for unmarshal to -// correctly populate the data. -type T struct { - A string - B struct { - RenamedC int `yaml:"c"` - D []int `yaml:",flow"` - } -} - -func main() { - t := T{} - - err := yaml.Unmarshal([]byte(data), &t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t:\n%v\n\n", t) - - d, err := yaml.Marshal(&t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t dump:\n%s\n\n", string(d)) - - m := make(map[interface{}]interface{}) - - err = yaml.Unmarshal([]byte(data), &m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m:\n%v\n\n", m) - - d, err = yaml.Marshal(&m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m dump:\n%s\n\n", string(d)) -} -``` - -This example will generate the following output: - -``` ---- t: -{Easy! {2 [3 4]}} - ---- t dump: -a: Easy! -b: - c: 2 - d: [3, 4] - - ---- m: -map[a:Easy! b:map[c:2 d:[3 4]]] - ---- m dump: -a: Easy! -b: - c: 2 - d: - - 3 - - 4 -``` - diff --git a/example/vendor/gopkg.in/yaml.v3/apic.go b/example/vendor/gopkg.in/yaml.v3/apic.go deleted file mode 100644 index ae7d049..0000000 --- a/example/vendor/gopkg.in/yaml.v3/apic.go +++ /dev/null @@ -1,747 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "io" -) - -func yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) { - //fmt.Println("yaml_insert_token", "pos:", pos, "typ:", token.typ, "head:", parser.tokens_head, "len:", len(parser.tokens)) - - // Check if we can move the queue at the beginning of the buffer. - if parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) { - if parser.tokens_head != len(parser.tokens) { - copy(parser.tokens, parser.tokens[parser.tokens_head:]) - } - parser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head] - parser.tokens_head = 0 - } - parser.tokens = append(parser.tokens, *token) - if pos < 0 { - return - } - copy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:]) - parser.tokens[parser.tokens_head+pos] = *token -} - -// Create a new parser object. -func yaml_parser_initialize(parser *yaml_parser_t) bool { - *parser = yaml_parser_t{ - raw_buffer: make([]byte, 0, input_raw_buffer_size), - buffer: make([]byte, 0, input_buffer_size), - } - return true -} - -// Destroy a parser object. -func yaml_parser_delete(parser *yaml_parser_t) { - *parser = yaml_parser_t{} -} - -// String read handler. -func yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - if parser.input_pos == len(parser.input) { - return 0, io.EOF - } - n = copy(buffer, parser.input[parser.input_pos:]) - parser.input_pos += n - return n, nil -} - -// Reader read handler. -func yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - return parser.input_reader.Read(buffer) -} - -// Set a string input. -func yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_string_read_handler - parser.input = input - parser.input_pos = 0 -} - -// Set a file input. -func yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_reader_read_handler - parser.input_reader = r -} - -// Set the source encoding. -func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) { - if parser.encoding != yaml_ANY_ENCODING { - panic("must set the encoding only once") - } - parser.encoding = encoding -} - -// Create a new emitter object. -func yaml_emitter_initialize(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{ - buffer: make([]byte, output_buffer_size), - raw_buffer: make([]byte, 0, output_raw_buffer_size), - states: make([]yaml_emitter_state_t, 0, initial_stack_size), - events: make([]yaml_event_t, 0, initial_queue_size), - best_width: -1, - } -} - -// Destroy an emitter object. -func yaml_emitter_delete(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{} -} - -// String write handler. -func yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - *emitter.output_buffer = append(*emitter.output_buffer, buffer...) - return nil -} - -// yaml_writer_write_handler uses emitter.output_writer to write the -// emitted text. -func yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - _, err := emitter.output_writer.Write(buffer) - return err -} - -// Set a string output. -func yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_string_write_handler - emitter.output_buffer = output_buffer -} - -// Set a file output. -func yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_writer_write_handler - emitter.output_writer = w -} - -// Set the output encoding. -func yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) { - if emitter.encoding != yaml_ANY_ENCODING { - panic("must set the output encoding only once") - } - emitter.encoding = encoding -} - -// Set the canonical output style. -func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { - emitter.canonical = canonical -} - -// Set the indentation increment. -func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { - if indent < 2 || indent > 9 { - indent = 2 - } - emitter.best_indent = indent -} - -// Set the preferred line width. -func yaml_emitter_set_width(emitter *yaml_emitter_t, width int) { - if width < 0 { - width = -1 - } - emitter.best_width = width -} - -// Set if unescaped non-ASCII characters are allowed. -func yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) { - emitter.unicode = unicode -} - -// Set the preferred line break character. -func yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) { - emitter.line_break = line_break -} - -///* -// * Destroy a token object. -// */ -// -//YAML_DECLARE(void) -//yaml_token_delete(yaml_token_t *token) -//{ -// assert(token); // Non-NULL token object expected. -// -// switch (token.type) -// { -// case YAML_TAG_DIRECTIVE_TOKEN: -// yaml_free(token.data.tag_directive.handle); -// yaml_free(token.data.tag_directive.prefix); -// break; -// -// case YAML_ALIAS_TOKEN: -// yaml_free(token.data.alias.value); -// break; -// -// case YAML_ANCHOR_TOKEN: -// yaml_free(token.data.anchor.value); -// break; -// -// case YAML_TAG_TOKEN: -// yaml_free(token.data.tag.handle); -// yaml_free(token.data.tag.suffix); -// break; -// -// case YAML_SCALAR_TOKEN: -// yaml_free(token.data.scalar.value); -// break; -// -// default: -// break; -// } -// -// memset(token, 0, sizeof(yaml_token_t)); -//} -// -///* -// * Check if a string is a valid UTF-8 sequence. -// * -// * Check 'reader.c' for more details on UTF-8 encoding. -// */ -// -//static int -//yaml_check_utf8(yaml_char_t *start, size_t length) -//{ -// yaml_char_t *end = start+length; -// yaml_char_t *pointer = start; -// -// while (pointer < end) { -// unsigned char octet; -// unsigned int width; -// unsigned int value; -// size_t k; -// -// octet = pointer[0]; -// width = (octet & 0x80) == 0x00 ? 1 : -// (octet & 0xE0) == 0xC0 ? 2 : -// (octet & 0xF0) == 0xE0 ? 3 : -// (octet & 0xF8) == 0xF0 ? 4 : 0; -// value = (octet & 0x80) == 0x00 ? octet & 0x7F : -// (octet & 0xE0) == 0xC0 ? octet & 0x1F : -// (octet & 0xF0) == 0xE0 ? octet & 0x0F : -// (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; -// if (!width) return 0; -// if (pointer+width > end) return 0; -// for (k = 1; k < width; k ++) { -// octet = pointer[k]; -// if ((octet & 0xC0) != 0x80) return 0; -// value = (value << 6) + (octet & 0x3F); -// } -// if (!((width == 1) || -// (width == 2 && value >= 0x80) || -// (width == 3 && value >= 0x800) || -// (width == 4 && value >= 0x10000))) return 0; -// -// pointer += width; -// } -// -// return 1; -//} -// - -// Create STREAM-START. -func yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) { - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - encoding: encoding, - } -} - -// Create STREAM-END. -func yaml_stream_end_event_initialize(event *yaml_event_t) { - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - } -} - -// Create DOCUMENT-START. -func yaml_document_start_event_initialize( - event *yaml_event_t, - version_directive *yaml_version_directive_t, - tag_directives []yaml_tag_directive_t, - implicit bool, -) { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: implicit, - } -} - -// Create DOCUMENT-END. -func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - implicit: implicit, - } -} - -// Create ALIAS. -func yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool { - *event = yaml_event_t{ - typ: yaml_ALIAS_EVENT, - anchor: anchor, - } - return true -} - -// Create SCALAR. -func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - anchor: anchor, - tag: tag, - value: value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-START. -func yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-END. -func yaml_sequence_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - } - return true -} - -// Create MAPPING-START. -func yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) { - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } -} - -// Create MAPPING-END. -func yaml_mapping_end_event_initialize(event *yaml_event_t) { - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - } -} - -// Destroy an event object. -func yaml_event_delete(event *yaml_event_t) { - *event = yaml_event_t{} -} - -///* -// * Create a document object. -// */ -// -//YAML_DECLARE(int) -//yaml_document_initialize(document *yaml_document_t, -// version_directive *yaml_version_directive_t, -// tag_directives_start *yaml_tag_directive_t, -// tag_directives_end *yaml_tag_directive_t, -// start_implicit int, end_implicit int) -//{ -// struct { -// error yaml_error_type_t -// } context -// struct { -// start *yaml_node_t -// end *yaml_node_t -// top *yaml_node_t -// } nodes = { NULL, NULL, NULL } -// version_directive_copy *yaml_version_directive_t = NULL -// struct { -// start *yaml_tag_directive_t -// end *yaml_tag_directive_t -// top *yaml_tag_directive_t -// } tag_directives_copy = { NULL, NULL, NULL } -// value yaml_tag_directive_t = { NULL, NULL } -// mark yaml_mark_t = { 0, 0, 0 } -// -// assert(document) // Non-NULL document object is expected. -// assert((tag_directives_start && tag_directives_end) || -// (tag_directives_start == tag_directives_end)) -// // Valid tag directives are expected. -// -// if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error -// -// if (version_directive) { -// version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t)) -// if (!version_directive_copy) goto error -// version_directive_copy.major = version_directive.major -// version_directive_copy.minor = version_directive.minor -// } -// -// if (tag_directives_start != tag_directives_end) { -// tag_directive *yaml_tag_directive_t -// if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE)) -// goto error -// for (tag_directive = tag_directives_start -// tag_directive != tag_directives_end; tag_directive ++) { -// assert(tag_directive.handle) -// assert(tag_directive.prefix) -// if (!yaml_check_utf8(tag_directive.handle, -// strlen((char *)tag_directive.handle))) -// goto error -// if (!yaml_check_utf8(tag_directive.prefix, -// strlen((char *)tag_directive.prefix))) -// goto error -// value.handle = yaml_strdup(tag_directive.handle) -// value.prefix = yaml_strdup(tag_directive.prefix) -// if (!value.handle || !value.prefix) goto error -// if (!PUSH(&context, tag_directives_copy, value)) -// goto error -// value.handle = NULL -// value.prefix = NULL -// } -// } -// -// DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, -// tag_directives_copy.start, tag_directives_copy.top, -// start_implicit, end_implicit, mark, mark) -// -// return 1 -// -//error: -// STACK_DEL(&context, nodes) -// yaml_free(version_directive_copy) -// while (!STACK_EMPTY(&context, tag_directives_copy)) { -// value yaml_tag_directive_t = POP(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// } -// STACK_DEL(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// -// return 0 -//} -// -///* -// * Destroy a document object. -// */ -// -//YAML_DECLARE(void) -//yaml_document_delete(document *yaml_document_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// tag_directive *yaml_tag_directive_t -// -// context.error = YAML_NO_ERROR // Eliminate a compiler warning. -// -// assert(document) // Non-NULL document object is expected. -// -// while (!STACK_EMPTY(&context, document.nodes)) { -// node yaml_node_t = POP(&context, document.nodes) -// yaml_free(node.tag) -// switch (node.type) { -// case YAML_SCALAR_NODE: -// yaml_free(node.data.scalar.value) -// break -// case YAML_SEQUENCE_NODE: -// STACK_DEL(&context, node.data.sequence.items) -// break -// case YAML_MAPPING_NODE: -// STACK_DEL(&context, node.data.mapping.pairs) -// break -// default: -// assert(0) // Should not happen. -// } -// } -// STACK_DEL(&context, document.nodes) -// -// yaml_free(document.version_directive) -// for (tag_directive = document.tag_directives.start -// tag_directive != document.tag_directives.end -// tag_directive++) { -// yaml_free(tag_directive.handle) -// yaml_free(tag_directive.prefix) -// } -// yaml_free(document.tag_directives.start) -// -// memset(document, 0, sizeof(yaml_document_t)) -//} -// -///** -// * Get a document node. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_node(document *yaml_document_t, index int) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (index > 0 && document.nodes.start + index <= document.nodes.top) { -// return document.nodes.start + index - 1 -// } -// return NULL -//} -// -///** -// * Get the root object. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_root_node(document *yaml_document_t) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (document.nodes.top != document.nodes.start) { -// return document.nodes.start -// } -// return NULL -//} -// -///* -// * Add a scalar node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_scalar(document *yaml_document_t, -// tag *yaml_char_t, value *yaml_char_t, length int, -// style yaml_scalar_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// value_copy *yaml_char_t = NULL -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// assert(value) // Non-NULL value is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (length < 0) { -// length = strlen((char *)value) -// } -// -// if (!yaml_check_utf8(value, length)) goto error -// value_copy = yaml_malloc(length+1) -// if (!value_copy) goto error -// memcpy(value_copy, value, length) -// value_copy[length] = '\0' -// -// SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// yaml_free(tag_copy) -// yaml_free(value_copy) -// -// return 0 -//} -// -///* -// * Add a sequence node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_sequence(document *yaml_document_t, -// tag *yaml_char_t, style yaml_sequence_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_item_t -// end *yaml_node_item_t -// top *yaml_node_item_t -// } items = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error -// -// SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, items) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Add a mapping node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_mapping(document *yaml_document_t, -// tag *yaml_char_t, style yaml_mapping_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_pair_t -// end *yaml_node_pair_t -// top *yaml_node_pair_t -// } pairs = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error -// -// MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, pairs) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Append an item to a sequence node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_sequence_item(document *yaml_document_t, -// sequence int, item int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// assert(document) // Non-NULL document is required. -// assert(sequence > 0 -// && document.nodes.start + sequence <= document.nodes.top) -// // Valid sequence id is required. -// assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE) -// // A sequence node is required. -// assert(item > 0 && document.nodes.start + item <= document.nodes.top) -// // Valid item id is required. -// -// if (!PUSH(&context, -// document.nodes.start[sequence-1].data.sequence.items, item)) -// return 0 -// -// return 1 -//} -// -///* -// * Append a pair of a key and a value to a mapping node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_mapping_pair(document *yaml_document_t, -// mapping int, key int, value int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// pair yaml_node_pair_t -// -// assert(document) // Non-NULL document is required. -// assert(mapping > 0 -// && document.nodes.start + mapping <= document.nodes.top) -// // Valid mapping id is required. -// assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE) -// // A mapping node is required. -// assert(key > 0 && document.nodes.start + key <= document.nodes.top) -// // Valid key id is required. -// assert(value > 0 && document.nodes.start + value <= document.nodes.top) -// // Valid value id is required. -// -// pair.key = key -// pair.value = value -// -// if (!PUSH(&context, -// document.nodes.start[mapping-1].data.mapping.pairs, pair)) -// return 0 -// -// return 1 -//} -// -// diff --git a/example/vendor/gopkg.in/yaml.v3/decode.go b/example/vendor/gopkg.in/yaml.v3/decode.go deleted file mode 100644 index 0173b69..0000000 --- a/example/vendor/gopkg.in/yaml.v3/decode.go +++ /dev/null @@ -1,1000 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml - -import ( - "encoding" - "encoding/base64" - "fmt" - "io" - "math" - "reflect" - "strconv" - "time" -) - -// ---------------------------------------------------------------------------- -// Parser, produces a node tree out of a libyaml event stream. - -type parser struct { - parser yaml_parser_t - event yaml_event_t - doc *Node - anchors map[string]*Node - doneInit bool - textless bool -} - -func newParser(b []byte) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - if len(b) == 0 { - b = []byte{'\n'} - } - yaml_parser_set_input_string(&p.parser, b) - return &p -} - -func newParserFromReader(r io.Reader) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - yaml_parser_set_input_reader(&p.parser, r) - return &p -} - -func (p *parser) init() { - if p.doneInit { - return - } - p.anchors = make(map[string]*Node) - p.expect(yaml_STREAM_START_EVENT) - p.doneInit = true -} - -func (p *parser) destroy() { - if p.event.typ != yaml_NO_EVENT { - yaml_event_delete(&p.event) - } - yaml_parser_delete(&p.parser) -} - -// expect consumes an event from the event stream and -// checks that it's of the expected type. -func (p *parser) expect(e yaml_event_type_t) { - if p.event.typ == yaml_NO_EVENT { - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } - } - if p.event.typ == yaml_STREAM_END_EVENT { - failf("attempted to go past the end of stream; corrupted value?") - } - if p.event.typ != e { - p.parser.problem = fmt.Sprintf("expected %s event but got %s", e, p.event.typ) - p.fail() - } - yaml_event_delete(&p.event) - p.event.typ = yaml_NO_EVENT -} - -// peek peeks at the next event in the event stream, -// puts the results into p.event and returns the event type. -func (p *parser) peek() yaml_event_type_t { - if p.event.typ != yaml_NO_EVENT { - return p.event.typ - } - // It's curious choice from the underlying API to generally return a - // positive result on success, but on this case return true in an error - // scenario. This was the source of bugs in the past (issue #666). - if !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR { - p.fail() - } - return p.event.typ -} - -func (p *parser) fail() { - var where string - var line int - if p.parser.context_mark.line != 0 { - line = p.parser.context_mark.line - // Scanner errors don't iterate line before returning error - if p.parser.error == yaml_SCANNER_ERROR { - line++ - } - } else if p.parser.problem_mark.line != 0 { - line = p.parser.problem_mark.line - // Scanner errors don't iterate line before returning error - if p.parser.error == yaml_SCANNER_ERROR { - line++ - } - } - if line != 0 { - where = "line " + strconv.Itoa(line) + ": " - } - var msg string - if len(p.parser.problem) > 0 { - msg = p.parser.problem - } else { - msg = "unknown problem parsing YAML content" - } - failf("%s%s", where, msg) -} - -func (p *parser) anchor(n *Node, anchor []byte) { - if anchor != nil { - n.Anchor = string(anchor) - p.anchors[n.Anchor] = n - } -} - -func (p *parser) parse() *Node { - p.init() - switch p.peek() { - case yaml_SCALAR_EVENT: - return p.scalar() - case yaml_ALIAS_EVENT: - return p.alias() - case yaml_MAPPING_START_EVENT: - return p.mapping() - case yaml_SEQUENCE_START_EVENT: - return p.sequence() - case yaml_DOCUMENT_START_EVENT: - return p.document() - case yaml_STREAM_END_EVENT: - // Happens when attempting to decode an empty buffer. - return nil - case yaml_TAIL_COMMENT_EVENT: - panic("internal error: unexpected tail comment event (please report)") - default: - panic("internal error: attempted to parse unknown event (please report): " + p.event.typ.String()) - } -} - -func (p *parser) node(kind Kind, defaultTag, tag, value string) *Node { - var style Style - if tag != "" && tag != "!" { - tag = shortTag(tag) - style = TaggedStyle - } else if defaultTag != "" { - tag = defaultTag - } else if kind == ScalarNode { - tag, _ = resolve("", value) - } - n := &Node{ - Kind: kind, - Tag: tag, - Value: value, - Style: style, - } - if !p.textless { - n.Line = p.event.start_mark.line + 1 - n.Column = p.event.start_mark.column + 1 - n.HeadComment = string(p.event.head_comment) - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - } - return n -} - -func (p *parser) parseChild(parent *Node) *Node { - child := p.parse() - parent.Content = append(parent.Content, child) - return child -} - -func (p *parser) document() *Node { - n := p.node(DocumentNode, "", "", "") - p.doc = n - p.expect(yaml_DOCUMENT_START_EVENT) - p.parseChild(n) - if p.peek() == yaml_DOCUMENT_END_EVENT { - n.FootComment = string(p.event.foot_comment) - } - p.expect(yaml_DOCUMENT_END_EVENT) - return n -} - -func (p *parser) alias() *Node { - n := p.node(AliasNode, "", "", string(p.event.anchor)) - n.Alias = p.anchors[n.Value] - if n.Alias == nil { - failf("unknown anchor '%s' referenced", n.Value) - } - p.expect(yaml_ALIAS_EVENT) - return n -} - -func (p *parser) scalar() *Node { - var parsedStyle = p.event.scalar_style() - var nodeStyle Style - switch { - case parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0: - nodeStyle = DoubleQuotedStyle - case parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0: - nodeStyle = SingleQuotedStyle - case parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0: - nodeStyle = LiteralStyle - case parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0: - nodeStyle = FoldedStyle - } - var nodeValue = string(p.event.value) - var nodeTag = string(p.event.tag) - var defaultTag string - if nodeStyle == 0 { - if nodeValue == "<<" { - defaultTag = mergeTag - } - } else { - defaultTag = strTag - } - n := p.node(ScalarNode, defaultTag, nodeTag, nodeValue) - n.Style |= nodeStyle - p.anchor(n, p.event.anchor) - p.expect(yaml_SCALAR_EVENT) - return n -} - -func (p *parser) sequence() *Node { - n := p.node(SequenceNode, seqTag, string(p.event.tag), "") - if p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 { - n.Style |= FlowStyle - } - p.anchor(n, p.event.anchor) - p.expect(yaml_SEQUENCE_START_EVENT) - for p.peek() != yaml_SEQUENCE_END_EVENT { - p.parseChild(n) - } - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - p.expect(yaml_SEQUENCE_END_EVENT) - return n -} - -func (p *parser) mapping() *Node { - n := p.node(MappingNode, mapTag, string(p.event.tag), "") - block := true - if p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 { - block = false - n.Style |= FlowStyle - } - p.anchor(n, p.event.anchor) - p.expect(yaml_MAPPING_START_EVENT) - for p.peek() != yaml_MAPPING_END_EVENT { - k := p.parseChild(n) - if block && k.FootComment != "" { - // Must be a foot comment for the prior value when being dedented. - if len(n.Content) > 2 { - n.Content[len(n.Content)-3].FootComment = k.FootComment - k.FootComment = "" - } - } - v := p.parseChild(n) - if k.FootComment == "" && v.FootComment != "" { - k.FootComment = v.FootComment - v.FootComment = "" - } - if p.peek() == yaml_TAIL_COMMENT_EVENT { - if k.FootComment == "" { - k.FootComment = string(p.event.foot_comment) - } - p.expect(yaml_TAIL_COMMENT_EVENT) - } - } - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - if n.Style&FlowStyle == 0 && n.FootComment != "" && len(n.Content) > 1 { - n.Content[len(n.Content)-2].FootComment = n.FootComment - n.FootComment = "" - } - p.expect(yaml_MAPPING_END_EVENT) - return n -} - -// ---------------------------------------------------------------------------- -// Decoder, unmarshals a node into a provided value. - -type decoder struct { - doc *Node - aliases map[*Node]bool - terrors []string - - stringMapType reflect.Type - generalMapType reflect.Type - - knownFields bool - uniqueKeys bool - decodeCount int - aliasCount int - aliasDepth int - - mergedFields map[interface{}]bool -} - -var ( - nodeType = reflect.TypeOf(Node{}) - durationType = reflect.TypeOf(time.Duration(0)) - stringMapType = reflect.TypeOf(map[string]interface{}{}) - generalMapType = reflect.TypeOf(map[interface{}]interface{}{}) - ifaceType = generalMapType.Elem() - timeType = reflect.TypeOf(time.Time{}) - ptrTimeType = reflect.TypeOf(&time.Time{}) -) - -func newDecoder() *decoder { - d := &decoder{ - stringMapType: stringMapType, - generalMapType: generalMapType, - uniqueKeys: true, - } - d.aliases = make(map[*Node]bool) - return d -} - -func (d *decoder) terror(n *Node, tag string, out reflect.Value) { - if n.Tag != "" { - tag = n.Tag - } - value := n.Value - if tag != seqTag && tag != mapTag { - if len(value) > 10 { - value = " `" + value[:7] + "...`" - } else { - value = " `" + value + "`" - } - } - d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.Line, shortTag(tag), value, out.Type())) -} - -func (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) { - err := u.UnmarshalYAML(n) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -func (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) { - terrlen := len(d.terrors) - err := u.UnmarshalYAML(func(v interface{}) (err error) { - defer handleErr(&err) - d.unmarshal(n, reflect.ValueOf(v)) - if len(d.terrors) > terrlen { - issues := d.terrors[terrlen:] - d.terrors = d.terrors[:terrlen] - return &TypeError{issues} - } - return nil - }) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -// d.prepare initializes and dereferences pointers and calls UnmarshalYAML -// if a value is found to implement it. -// It returns the initialized and dereferenced out value, whether -// unmarshalling was already done by UnmarshalYAML, and if so whether -// its types unmarshalled appropriately. -// -// If n holds a null value, prepare returns before doing anything. -func (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { - if n.ShortTag() == nullTag { - return out, false, false - } - again := true - for again { - again = false - if out.Kind() == reflect.Ptr { - if out.IsNil() { - out.Set(reflect.New(out.Type().Elem())) - } - out = out.Elem() - again = true - } - if out.CanAddr() { - outi := out.Addr().Interface() - if u, ok := outi.(Unmarshaler); ok { - good = d.callUnmarshaler(n, u) - return out, true, good - } - if u, ok := outi.(obsoleteUnmarshaler); ok { - good = d.callObsoleteUnmarshaler(n, u) - return out, true, good - } - } - } - return out, false, false -} - -func (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) { - if n.ShortTag() == nullTag { - return reflect.Value{} - } - for _, num := range index { - for { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - continue - } - break - } - v = v.Field(num) - } - return v -} - -const ( - // 400,000 decode operations is ~500kb of dense object declarations, or - // ~5kb of dense object declarations with 10000% alias expansion - alias_ratio_range_low = 400000 - - // 4,000,000 decode operations is ~5MB of dense object declarations, or - // ~4.5MB of dense object declarations with 10% alias expansion - alias_ratio_range_high = 4000000 - - // alias_ratio_range is the range over which we scale allowed alias ratios - alias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low) -) - -func allowedAliasRatio(decodeCount int) float64 { - switch { - case decodeCount <= alias_ratio_range_low: - // allow 99% to come from alias expansion for small-to-medium documents - return 0.99 - case decodeCount >= alias_ratio_range_high: - // allow 10% to come from alias expansion for very large documents - return 0.10 - default: - // scale smoothly from 99% down to 10% over the range. - // this maps to 396,000 - 400,000 allowed alias-driven decodes over the range. - // 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps). - return 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range) - } -} - -func (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) { - d.decodeCount++ - if d.aliasDepth > 0 { - d.aliasCount++ - } - if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) { - failf("document contains excessive aliasing") - } - if out.Type() == nodeType { - out.Set(reflect.ValueOf(n).Elem()) - return true - } - switch n.Kind { - case DocumentNode: - return d.document(n, out) - case AliasNode: - return d.alias(n, out) - } - out, unmarshaled, good := d.prepare(n, out) - if unmarshaled { - return good - } - switch n.Kind { - case ScalarNode: - good = d.scalar(n, out) - case MappingNode: - good = d.mapping(n, out) - case SequenceNode: - good = d.sequence(n, out) - case 0: - if n.IsZero() { - return d.null(out) - } - fallthrough - default: - failf("cannot decode node with unknown kind %d", n.Kind) - } - return good -} - -func (d *decoder) document(n *Node, out reflect.Value) (good bool) { - if len(n.Content) == 1 { - d.doc = n - d.unmarshal(n.Content[0], out) - return true - } - return false -} - -func (d *decoder) alias(n *Node, out reflect.Value) (good bool) { - if d.aliases[n] { - // TODO this could actually be allowed in some circumstances. - failf("anchor '%s' value contains itself", n.Value) - } - d.aliases[n] = true - d.aliasDepth++ - good = d.unmarshal(n.Alias, out) - d.aliasDepth-- - delete(d.aliases, n) - return good -} - -var zeroValue reflect.Value - -func resetMap(out reflect.Value) { - for _, k := range out.MapKeys() { - out.SetMapIndex(k, zeroValue) - } -} - -func (d *decoder) null(out reflect.Value) bool { - if out.CanAddr() { - switch out.Kind() { - case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice: - out.Set(reflect.Zero(out.Type())) - return true - } - } - return false -} - -func (d *decoder) scalar(n *Node, out reflect.Value) bool { - var tag string - var resolved interface{} - if n.indicatedString() { - tag = strTag - resolved = n.Value - } else { - tag, resolved = resolve(n.Tag, n.Value) - if tag == binaryTag { - data, err := base64.StdEncoding.DecodeString(resolved.(string)) - if err != nil { - failf("!!binary value contains invalid base64 data") - } - resolved = string(data) - } - } - if resolved == nil { - return d.null(out) - } - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - // We've resolved to exactly the type we want, so use that. - out.Set(resolvedv) - return true - } - // Perhaps we can use the value as a TextUnmarshaler to - // set its value. - if out.CanAddr() { - u, ok := out.Addr().Interface().(encoding.TextUnmarshaler) - if ok { - var text []byte - if tag == binaryTag { - text = []byte(resolved.(string)) - } else { - // We let any value be unmarshaled into TextUnmarshaler. - // That might be more lax than we'd like, but the - // TextUnmarshaler itself should bowl out any dubious values. - text = []byte(n.Value) - } - err := u.UnmarshalText(text) - if err != nil { - fail(err) - } - return true - } - } - switch out.Kind() { - case reflect.String: - if tag == binaryTag { - out.SetString(resolved.(string)) - return true - } - out.SetString(n.Value) - return true - case reflect.Interface: - out.Set(reflect.ValueOf(resolved)) - return true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - // This used to work in v2, but it's very unfriendly. - isDuration := out.Type() == durationType - - switch resolved := resolved.(type) { - case int: - if !isDuration && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case int64: - if !isDuration && !out.OverflowInt(resolved) { - out.SetInt(resolved) - return true - } - case uint64: - if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case float64: - if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case string: - if out.Type() == durationType { - d, err := time.ParseDuration(resolved) - if err == nil { - out.SetInt(int64(d)) - return true - } - } - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - switch resolved := resolved.(type) { - case int: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case int64: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case uint64: - if !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case float64: - if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - } - case reflect.Bool: - switch resolved := resolved.(type) { - case bool: - out.SetBool(resolved) - return true - case string: - // This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html). - // It only works if explicitly attempting to unmarshal into a typed bool value. - switch resolved { - case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON": - out.SetBool(true) - return true - case "n", "N", "no", "No", "NO", "off", "Off", "OFF": - out.SetBool(false) - return true - } - } - case reflect.Float32, reflect.Float64: - switch resolved := resolved.(type) { - case int: - out.SetFloat(float64(resolved)) - return true - case int64: - out.SetFloat(float64(resolved)) - return true - case uint64: - out.SetFloat(float64(resolved)) - return true - case float64: - out.SetFloat(resolved) - return true - } - case reflect.Struct: - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - out.Set(resolvedv) - return true - } - case reflect.Ptr: - panic("yaml internal error: please report the issue") - } - d.terror(n, tag, out) - return false -} - -func settableValueOf(i interface{}) reflect.Value { - v := reflect.ValueOf(i) - sv := reflect.New(v.Type()).Elem() - sv.Set(v) - return sv -} - -func (d *decoder) sequence(n *Node, out reflect.Value) (good bool) { - l := len(n.Content) - - var iface reflect.Value - switch out.Kind() { - case reflect.Slice: - out.Set(reflect.MakeSlice(out.Type(), l, l)) - case reflect.Array: - if l != out.Len() { - failf("invalid array: want %d elements but got %d", out.Len(), l) - } - case reflect.Interface: - // No type hints. Will have to use a generic sequence. - iface = out - out = settableValueOf(make([]interface{}, l)) - default: - d.terror(n, seqTag, out) - return false - } - et := out.Type().Elem() - - j := 0 - for i := 0; i < l; i++ { - e := reflect.New(et).Elem() - if ok := d.unmarshal(n.Content[i], e); ok { - out.Index(j).Set(e) - j++ - } - } - if out.Kind() != reflect.Array { - out.Set(out.Slice(0, j)) - } - if iface.IsValid() { - iface.Set(out) - } - return true -} - -func (d *decoder) mapping(n *Node, out reflect.Value) (good bool) { - l := len(n.Content) - if d.uniqueKeys { - nerrs := len(d.terrors) - for i := 0; i < l; i += 2 { - ni := n.Content[i] - for j := i + 2; j < l; j += 2 { - nj := n.Content[j] - if ni.Kind == nj.Kind && ni.Value == nj.Value { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: mapping key %#v already defined at line %d", nj.Line, nj.Value, ni.Line)) - } - } - } - if len(d.terrors) > nerrs { - return false - } - } - switch out.Kind() { - case reflect.Struct: - return d.mappingStruct(n, out) - case reflect.Map: - // okay - case reflect.Interface: - iface := out - if isStringMap(n) { - out = reflect.MakeMap(d.stringMapType) - } else { - out = reflect.MakeMap(d.generalMapType) - } - iface.Set(out) - default: - d.terror(n, mapTag, out) - return false - } - - outt := out.Type() - kt := outt.Key() - et := outt.Elem() - - stringMapType := d.stringMapType - generalMapType := d.generalMapType - if outt.Elem() == ifaceType { - if outt.Key().Kind() == reflect.String { - d.stringMapType = outt - } else if outt.Key() == ifaceType { - d.generalMapType = outt - } - } - - mergedFields := d.mergedFields - d.mergedFields = nil - - var mergeNode *Node - - mapIsNew := false - if out.IsNil() { - out.Set(reflect.MakeMap(outt)) - mapIsNew = true - } - for i := 0; i < l; i += 2 { - if isMerge(n.Content[i]) { - mergeNode = n.Content[i+1] - continue - } - k := reflect.New(kt).Elem() - if d.unmarshal(n.Content[i], k) { - if mergedFields != nil { - ki := k.Interface() - if mergedFields[ki] { - continue - } - mergedFields[ki] = true - } - kkind := k.Kind() - if kkind == reflect.Interface { - kkind = k.Elem().Kind() - } - if kkind == reflect.Map || kkind == reflect.Slice { - failf("invalid map key: %#v", k.Interface()) - } - e := reflect.New(et).Elem() - if d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) { - out.SetMapIndex(k, e) - } - } - } - - d.mergedFields = mergedFields - if mergeNode != nil { - d.merge(n, mergeNode, out) - } - - d.stringMapType = stringMapType - d.generalMapType = generalMapType - return true -} - -func isStringMap(n *Node) bool { - if n.Kind != MappingNode { - return false - } - l := len(n.Content) - for i := 0; i < l; i += 2 { - shortTag := n.Content[i].ShortTag() - if shortTag != strTag && shortTag != mergeTag { - return false - } - } - return true -} - -func (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) { - sinfo, err := getStructInfo(out.Type()) - if err != nil { - panic(err) - } - - var inlineMap reflect.Value - var elemType reflect.Type - if sinfo.InlineMap != -1 { - inlineMap = out.Field(sinfo.InlineMap) - elemType = inlineMap.Type().Elem() - } - - for _, index := range sinfo.InlineUnmarshalers { - field := d.fieldByIndex(n, out, index) - d.prepare(n, field) - } - - mergedFields := d.mergedFields - d.mergedFields = nil - var mergeNode *Node - var doneFields []bool - if d.uniqueKeys { - doneFields = make([]bool, len(sinfo.FieldsList)) - } - name := settableValueOf("") - l := len(n.Content) - for i := 0; i < l; i += 2 { - ni := n.Content[i] - if isMerge(ni) { - mergeNode = n.Content[i+1] - continue - } - if !d.unmarshal(ni, name) { - continue - } - sname := name.String() - if mergedFields != nil { - if mergedFields[sname] { - continue - } - mergedFields[sname] = true - } - if info, ok := sinfo.FieldsMap[sname]; ok { - if d.uniqueKeys { - if doneFields[info.Id] { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.Line, name.String(), out.Type())) - continue - } - doneFields[info.Id] = true - } - var field reflect.Value - if info.Inline == nil { - field = out.Field(info.Num) - } else { - field = d.fieldByIndex(n, out, info.Inline) - } - d.unmarshal(n.Content[i+1], field) - } else if sinfo.InlineMap != -1 { - if inlineMap.IsNil() { - inlineMap.Set(reflect.MakeMap(inlineMap.Type())) - } - value := reflect.New(elemType).Elem() - d.unmarshal(n.Content[i+1], value) - inlineMap.SetMapIndex(name, value) - } else if d.knownFields { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.Line, name.String(), out.Type())) - } - } - - d.mergedFields = mergedFields - if mergeNode != nil { - d.merge(n, mergeNode, out) - } - return true -} - -func failWantMap() { - failf("map merge requires map or sequence of maps as the value") -} - -func (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) { - mergedFields := d.mergedFields - if mergedFields == nil { - d.mergedFields = make(map[interface{}]bool) - for i := 0; i < len(parent.Content); i += 2 { - k := reflect.New(ifaceType).Elem() - if d.unmarshal(parent.Content[i], k) { - d.mergedFields[k.Interface()] = true - } - } - } - - switch merge.Kind { - case MappingNode: - d.unmarshal(merge, out) - case AliasNode: - if merge.Alias != nil && merge.Alias.Kind != MappingNode { - failWantMap() - } - d.unmarshal(merge, out) - case SequenceNode: - for i := 0; i < len(merge.Content); i++ { - ni := merge.Content[i] - if ni.Kind == AliasNode { - if ni.Alias != nil && ni.Alias.Kind != MappingNode { - failWantMap() - } - } else if ni.Kind != MappingNode { - failWantMap() - } - d.unmarshal(ni, out) - } - default: - failWantMap() - } - - d.mergedFields = mergedFields -} - -func isMerge(n *Node) bool { - return n.Kind == ScalarNode && n.Value == "<<" && (n.Tag == "" || n.Tag == "!" || shortTag(n.Tag) == mergeTag) -} diff --git a/example/vendor/gopkg.in/yaml.v3/emitterc.go b/example/vendor/gopkg.in/yaml.v3/emitterc.go deleted file mode 100644 index 0f47c9c..0000000 --- a/example/vendor/gopkg.in/yaml.v3/emitterc.go +++ /dev/null @@ -1,2020 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" - "fmt" -) - -// Flush the buffer if needed. -func flush(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) { - return yaml_emitter_flush(emitter) - } - return true -} - -// Put a character to the output buffer. -func put(emitter *yaml_emitter_t, value byte) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - emitter.buffer[emitter.buffer_pos] = value - emitter.buffer_pos++ - emitter.column++ - return true -} - -// Put a line break to the output buffer. -func put_break(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - switch emitter.line_break { - case yaml_CR_BREAK: - emitter.buffer[emitter.buffer_pos] = '\r' - emitter.buffer_pos += 1 - case yaml_LN_BREAK: - emitter.buffer[emitter.buffer_pos] = '\n' - emitter.buffer_pos += 1 - case yaml_CRLN_BREAK: - emitter.buffer[emitter.buffer_pos+0] = '\r' - emitter.buffer[emitter.buffer_pos+1] = '\n' - emitter.buffer_pos += 2 - default: - panic("unknown line break setting") - } - if emitter.column == 0 { - emitter.space_above = true - } - emitter.column = 0 - emitter.line++ - // [Go] Do this here and below and drop from everywhere else (see commented lines). - emitter.indention = true - return true -} - -// Copy a character from a string into buffer. -func write(emitter *yaml_emitter_t, s []byte, i *int) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - p := emitter.buffer_pos - w := width(s[*i]) - switch w { - case 4: - emitter.buffer[p+3] = s[*i+3] - fallthrough - case 3: - emitter.buffer[p+2] = s[*i+2] - fallthrough - case 2: - emitter.buffer[p+1] = s[*i+1] - fallthrough - case 1: - emitter.buffer[p+0] = s[*i+0] - default: - panic("unknown character width") - } - emitter.column++ - emitter.buffer_pos += w - *i += w - return true -} - -// Write a whole string into buffer. -func write_all(emitter *yaml_emitter_t, s []byte) bool { - for i := 0; i < len(s); { - if !write(emitter, s, &i) { - return false - } - } - return true -} - -// Copy a line break character from a string into buffer. -func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { - if s[*i] == '\n' { - if !put_break(emitter) { - return false - } - *i++ - } else { - if !write(emitter, s, i) { - return false - } - if emitter.column == 0 { - emitter.space_above = true - } - emitter.column = 0 - emitter.line++ - // [Go] Do this here and above and drop from everywhere else (see commented lines). - emitter.indention = true - } - return true -} - -// Set an emitter error and return false. -func yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_EMITTER_ERROR - emitter.problem = problem - return false -} - -// Emit an event. -func yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.events = append(emitter.events, *event) - for !yaml_emitter_need_more_events(emitter) { - event := &emitter.events[emitter.events_head] - if !yaml_emitter_analyze_event(emitter, event) { - return false - } - if !yaml_emitter_state_machine(emitter, event) { - return false - } - yaml_event_delete(event) - emitter.events_head++ - } - return true -} - -// Check if we need to accumulate more events before emitting. -// -// We accumulate extra -// - 1 event for DOCUMENT-START -// - 2 events for SEQUENCE-START -// - 3 events for MAPPING-START -// -func yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool { - if emitter.events_head == len(emitter.events) { - return true - } - var accumulate int - switch emitter.events[emitter.events_head].typ { - case yaml_DOCUMENT_START_EVENT: - accumulate = 1 - break - case yaml_SEQUENCE_START_EVENT: - accumulate = 2 - break - case yaml_MAPPING_START_EVENT: - accumulate = 3 - break - default: - return false - } - if len(emitter.events)-emitter.events_head > accumulate { - return false - } - var level int - for i := emitter.events_head; i < len(emitter.events); i++ { - switch emitter.events[i].typ { - case yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT: - level++ - case yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT: - level-- - } - if level == 0 { - return false - } - } - return true -} - -// Append a directive to the directives stack. -func yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool { - for i := 0; i < len(emitter.tag_directives); i++ { - if bytes.Equal(value.handle, emitter.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_emitter_set_emitter_error(emitter, "duplicate %TAG directive") - } - } - - // [Go] Do we actually need to copy this given garbage collection - // and the lack of deallocating destructors? - tag_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(tag_copy.handle, value.handle) - copy(tag_copy.prefix, value.prefix) - emitter.tag_directives = append(emitter.tag_directives, tag_copy) - return true -} - -// Increase the indentation level. -func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool { - emitter.indents = append(emitter.indents, emitter.indent) - if emitter.indent < 0 { - if flow { - emitter.indent = emitter.best_indent - } else { - emitter.indent = 0 - } - } else if !indentless { - // [Go] This was changed so that indentations are more regular. - if emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE { - // The first indent inside a sequence will just skip the "- " indicator. - emitter.indent += 2 - } else { - // Everything else aligns to the chosen indentation. - emitter.indent = emitter.best_indent*((emitter.indent+emitter.best_indent)/emitter.best_indent) - } - } - return true -} - -// State dispatcher. -func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool { - switch emitter.state { - default: - case yaml_EMIT_STREAM_START_STATE: - return yaml_emitter_emit_stream_start(emitter, event) - - case yaml_EMIT_FIRST_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, true) - - case yaml_EMIT_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, false) - - case yaml_EMIT_DOCUMENT_CONTENT_STATE: - return yaml_emitter_emit_document_content(emitter, event) - - case yaml_EMIT_DOCUMENT_END_STATE: - return yaml_emitter_emit_document_end(emitter, event) - - case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, true, false) - - case yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false, true) - - case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false, false) - - case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, true, false) - - case yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false, true) - - case yaml_EMIT_FLOW_MAPPING_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false, false) - - case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, true) - - case yaml_EMIT_FLOW_MAPPING_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, false) - - case yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, true) - - case yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, false) - - case yaml_EMIT_END_STATE: - return yaml_emitter_set_emitter_error(emitter, "expected nothing after STREAM-END") - } - panic("invalid emitter state") -} - -// Expect STREAM-START. -func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_STREAM_START_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected STREAM-START") - } - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = event.encoding - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = yaml_UTF8_ENCODING - } - } - if emitter.best_indent < 2 || emitter.best_indent > 9 { - emitter.best_indent = 2 - } - if emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 { - emitter.best_width = 80 - } - if emitter.best_width < 0 { - emitter.best_width = 1<<31 - 1 - } - if emitter.line_break == yaml_ANY_BREAK { - emitter.line_break = yaml_LN_BREAK - } - - emitter.indent = -1 - emitter.line = 0 - emitter.column = 0 - emitter.whitespace = true - emitter.indention = true - emitter.space_above = true - emitter.foot_indent = -1 - - if emitter.encoding != yaml_UTF8_ENCODING { - if !yaml_emitter_write_bom(emitter) { - return false - } - } - emitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE - return true -} - -// Expect DOCUMENT-START or STREAM-END. -func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - - if event.typ == yaml_DOCUMENT_START_EVENT { - - if event.version_directive != nil { - if !yaml_emitter_analyze_version_directive(emitter, event.version_directive) { - return false - } - } - - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_analyze_tag_directive(emitter, tag_directive) { - return false - } - if !yaml_emitter_append_tag_directive(emitter, tag_directive, false) { - return false - } - } - - for i := 0; i < len(default_tag_directives); i++ { - tag_directive := &default_tag_directives[i] - if !yaml_emitter_append_tag_directive(emitter, tag_directive, true) { - return false - } - } - - implicit := event.implicit - if !first || emitter.canonical { - implicit = false - } - - if emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if event.version_directive != nil { - implicit = false - if !yaml_emitter_write_indicator(emitter, []byte("%YAML"), true, false, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("1.1"), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if len(event.tag_directives) > 0 { - implicit = false - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_write_indicator(emitter, []byte("%TAG"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) { - return false - } - if !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - if yaml_emitter_check_empty_document(emitter) { - implicit = false - } - if !implicit { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { - return false - } - if emitter.canonical || true { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - if len(emitter.head_comment) > 0 { - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !put_break(emitter) { - return false - } - } - - emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE - return true - } - - if event.typ == yaml_STREAM_END_EVENT { - if emitter.open_ended { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_END_STATE - return true - } - - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-START or STREAM-END") -} - -// Expect the root node. -func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !yaml_emitter_emit_node(emitter, event, true, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect DOCUMENT-END. -func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_DOCUMENT_END_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") - } - // [Go] Force document foot separation. - emitter.foot_indent = 0 - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.foot_indent = -1 - if !yaml_emitter_write_indent(emitter) { - return false - } - if !event.implicit { - // [Go] Allocate the slice elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_DOCUMENT_START_STATE - emitter.tag_directives = emitter.tag_directives[:0] - return true -} - -// Expect a flow item node. -func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_SEQUENCE_END_EVENT { - if emitter.canonical && !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.column == 0 || emitter.canonical && !first { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - - return true - } - - if !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if emitter.column == 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE) - } else { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) - } - if !yaml_emitter_emit_node(emitter, event, false, true, false, false) { - return false - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a flow key node. -func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_MAPPING_END_EVENT { - if (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.canonical && !first { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - - if !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - - if emitter.column == 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if !emitter.canonical && yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a flow value node. -func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) { - return false - } - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE) - } else { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) - } - if !yaml_emitter_emit_node(emitter, event, false, false, true, false) { - return false - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a block item node. -func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, false) { - return false - } - } - if event.typ == yaml_SEQUENCE_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) - if !yaml_emitter_emit_node(emitter, event, false, true, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a block key node. -func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, false) { - return false - } - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if event.typ == yaml_MAPPING_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if len(emitter.line_comment) > 0 { - // [Go] A line comment was provided for the key. That's unusual as the - // scanner associates line comments with the value. Either way, - // save the line comment and render it appropriately later. - emitter.key_line_comment = emitter.line_comment - emitter.line_comment = nil - } - if yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a block value node. -func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) { - return false - } - } - if len(emitter.key_line_comment) > 0 { - // [Go] Line comments are generally associated with the value, but when there's - // no value on the same line as a mapping key they end up attached to the - // key itself. - if event.typ == yaml_SCALAR_EVENT { - if len(emitter.line_comment) == 0 { - // A scalar is coming and it has no line comments by itself yet, - // so just let it handle the line comment as usual. If it has a - // line comment, we can't have both so the one from the key is lost. - emitter.line_comment = emitter.key_line_comment - emitter.key_line_comment = nil - } - } else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) { - // An indented block follows, so write the comment right now. - emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment - if !yaml_emitter_process_line_comment(emitter) { - return false - } - emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment - } - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) - if !yaml_emitter_emit_node(emitter, event, false, false, true, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -func yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { - return event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0 -} - -// Expect a node. -func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t, - root bool, sequence bool, mapping bool, simple_key bool) bool { - - emitter.root_context = root - emitter.sequence_context = sequence - emitter.mapping_context = mapping - emitter.simple_key_context = simple_key - - switch event.typ { - case yaml_ALIAS_EVENT: - return yaml_emitter_emit_alias(emitter, event) - case yaml_SCALAR_EVENT: - return yaml_emitter_emit_scalar(emitter, event) - case yaml_SEQUENCE_START_EVENT: - return yaml_emitter_emit_sequence_start(emitter, event) - case yaml_MAPPING_START_EVENT: - return yaml_emitter_emit_mapping_start(emitter, event) - default: - return yaml_emitter_set_emitter_error(emitter, - fmt.Sprintf("expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v", event.typ)) - } -} - -// Expect ALIAS. -func yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SCALAR. -func yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_select_scalar_style(emitter, event) { - return false - } - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - if !yaml_emitter_process_scalar(emitter) { - return false - } - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SEQUENCE-START. -func yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE || - yaml_emitter_check_empty_sequence(emitter) { - emitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE - } - return true -} - -// Expect MAPPING-START. -func yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE || - yaml_emitter_check_empty_mapping(emitter) { - emitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE - } - return true -} - -// Check if the document content is an empty scalar. -func yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool { - return false // [Go] Huh? -} - -// Check if the next events represent an empty sequence. -func yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT -} - -// Check if the next events represent an empty mapping. -func yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT -} - -// Check if the next node can be expressed as a simple key. -func yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool { - length := 0 - switch emitter.events[emitter.events_head].typ { - case yaml_ALIAS_EVENT: - length += len(emitter.anchor_data.anchor) - case yaml_SCALAR_EVENT: - if emitter.scalar_data.multiline { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) + - len(emitter.scalar_data.value) - case yaml_SEQUENCE_START_EVENT: - if !yaml_emitter_check_empty_sequence(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - case yaml_MAPPING_START_EVENT: - if !yaml_emitter_check_empty_mapping(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - default: - return false - } - return length <= 128 -} - -// Determine an acceptable scalar style. -func yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - no_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 - if no_tag && !event.implicit && !event.quoted_implicit { - return yaml_emitter_set_emitter_error(emitter, "neither tag nor implicit flags are specified") - } - - style := event.scalar_style() - if style == yaml_ANY_SCALAR_STYLE { - style = yaml_PLAIN_SCALAR_STYLE - } - if emitter.canonical { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - if emitter.simple_key_context && emitter.scalar_data.multiline { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - - if style == yaml_PLAIN_SCALAR_STYLE { - if emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed || - emitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if no_tag && !event.implicit { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_SINGLE_QUOTED_SCALAR_STYLE { - if !emitter.scalar_data.single_quoted_allowed { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE { - if !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - - if no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE { - emitter.tag_data.handle = []byte{'!'} - } - emitter.scalar_data.style = style - return true -} - -// Write an anchor. -func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { - if emitter.anchor_data.anchor == nil { - return true - } - c := []byte{'&'} - if emitter.anchor_data.alias { - c[0] = '*' - } - if !yaml_emitter_write_indicator(emitter, c, true, false, false) { - return false - } - return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) -} - -// Write a tag. -func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { - if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { - return true - } - if len(emitter.tag_data.handle) > 0 { - if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { - return false - } - if len(emitter.tag_data.suffix) > 0 { - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - } - } else { - // [Go] Allocate these slices elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { - return false - } - } - return true -} - -// Write a scalar. -func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { - switch emitter.scalar_data.style { - case yaml_PLAIN_SCALAR_STYLE: - return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_SINGLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_DOUBLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_LITERAL_SCALAR_STYLE: - return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) - - case yaml_FOLDED_SCALAR_STYLE: - return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) - } - panic("unknown scalar style") -} - -// Write a head comment. -func yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool { - if len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.tail_comment) { - return false - } - emitter.tail_comment = emitter.tail_comment[:0] - emitter.foot_indent = emitter.indent - if emitter.foot_indent < 0 { - emitter.foot_indent = 0 - } - } - - if len(emitter.head_comment) == 0 { - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.head_comment) { - return false - } - emitter.head_comment = emitter.head_comment[:0] - return true -} - -// Write an line comment. -func yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool { - if len(emitter.line_comment) == 0 { - return true - } - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !yaml_emitter_write_comment(emitter, emitter.line_comment) { - return false - } - emitter.line_comment = emitter.line_comment[:0] - return true -} - -// Write a foot comment. -func yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool { - if len(emitter.foot_comment) == 0 { - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.foot_comment) { - return false - } - emitter.foot_comment = emitter.foot_comment[:0] - emitter.foot_indent = emitter.indent - if emitter.foot_indent < 0 { - emitter.foot_indent = 0 - } - return true -} - -// Check if a %YAML directive is valid. -func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { - if version_directive.major != 1 || version_directive.minor != 1 { - return yaml_emitter_set_emitter_error(emitter, "incompatible %YAML directive") - } - return true -} - -// Check if a %TAG directive is valid. -func yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool { - handle := tag_directive.handle - prefix := tag_directive.prefix - if len(handle) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag handle must not be empty") - } - if handle[0] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must start with '!'") - } - if handle[len(handle)-1] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must end with '!'") - } - for i := 1; i < len(handle)-1; i += width(handle[i]) { - if !is_alpha(handle, i) { - return yaml_emitter_set_emitter_error(emitter, "tag handle must contain alphanumerical characters only") - } - } - if len(prefix) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag prefix must not be empty") - } - return true -} - -// Check if an anchor is valid. -func yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool { - if len(anchor) == 0 { - problem := "anchor value must not be empty" - if alias { - problem = "alias value must not be empty" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - for i := 0; i < len(anchor); i += width(anchor[i]) { - if !is_alpha(anchor, i) { - problem := "anchor value must contain alphanumerical characters only" - if alias { - problem = "alias value must contain alphanumerical characters only" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - } - emitter.anchor_data.anchor = anchor - emitter.anchor_data.alias = alias - return true -} - -// Check if a tag is valid. -func yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool { - if len(tag) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag value must not be empty") - } - for i := 0; i < len(emitter.tag_directives); i++ { - tag_directive := &emitter.tag_directives[i] - if bytes.HasPrefix(tag, tag_directive.prefix) { - emitter.tag_data.handle = tag_directive.handle - emitter.tag_data.suffix = tag[len(tag_directive.prefix):] - return true - } - } - emitter.tag_data.suffix = tag - return true -} - -// Check if a scalar is valid. -func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { - var ( - block_indicators = false - flow_indicators = false - line_breaks = false - special_characters = false - tab_characters = false - - leading_space = false - leading_break = false - trailing_space = false - trailing_break = false - break_space = false - space_break = false - - preceded_by_whitespace = false - followed_by_whitespace = false - previous_space = false - previous_break = false - ) - - emitter.scalar_data.value = value - - if len(value) == 0 { - emitter.scalar_data.multiline = false - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = false - return true - } - - if len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) { - block_indicators = true - flow_indicators = true - } - - preceded_by_whitespace = true - for i, w := 0, 0; i < len(value); i += w { - w = width(value[i]) - followed_by_whitespace = i+w >= len(value) || is_blank(value, i+w) - - if i == 0 { - switch value[i] { - case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': - flow_indicators = true - block_indicators = true - case '?', ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '-': - if followed_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } else { - switch value[i] { - case ',', '?', '[', ']', '{', '}': - flow_indicators = true - case ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '#': - if preceded_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } - - if value[i] == '\t' { - tab_characters = true - } else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { - special_characters = true - } - if is_space(value, i) { - if i == 0 { - leading_space = true - } - if i+width(value[i]) == len(value) { - trailing_space = true - } - if previous_break { - break_space = true - } - previous_space = true - previous_break = false - } else if is_break(value, i) { - line_breaks = true - if i == 0 { - leading_break = true - } - if i+width(value[i]) == len(value) { - trailing_break = true - } - if previous_space { - space_break = true - } - previous_space = false - previous_break = true - } else { - previous_space = false - previous_break = false - } - - // [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition. - preceded_by_whitespace = is_blankz(value, i) - } - - emitter.scalar_data.multiline = line_breaks - emitter.scalar_data.flow_plain_allowed = true - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = true - - if leading_space || leading_break || trailing_space || trailing_break { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if trailing_space { - emitter.scalar_data.block_allowed = false - } - if break_space { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - } - if space_break || tab_characters || special_characters { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - } - if space_break || special_characters { - emitter.scalar_data.block_allowed = false - } - if line_breaks { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if flow_indicators { - emitter.scalar_data.flow_plain_allowed = false - } - if block_indicators { - emitter.scalar_data.block_plain_allowed = false - } - return true -} - -// Check if the event data is valid. -func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - emitter.anchor_data.anchor = nil - emitter.tag_data.handle = nil - emitter.tag_data.suffix = nil - emitter.scalar_data.value = nil - - if len(event.head_comment) > 0 { - emitter.head_comment = event.head_comment - } - if len(event.line_comment) > 0 { - emitter.line_comment = event.line_comment - } - if len(event.foot_comment) > 0 { - emitter.foot_comment = event.foot_comment - } - if len(event.tail_comment) > 0 { - emitter.tail_comment = event.tail_comment - } - - switch event.typ { - case yaml_ALIAS_EVENT: - if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { - return false - } - - case yaml_SCALAR_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - if !yaml_emitter_analyze_scalar(emitter, event.value) { - return false - } - - case yaml_SEQUENCE_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - - case yaml_MAPPING_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - } - return true -} - -// Write the BOM character. -func yaml_emitter_write_bom(emitter *yaml_emitter_t) bool { - if !flush(emitter) { - return false - } - pos := emitter.buffer_pos - emitter.buffer[pos+0] = '\xEF' - emitter.buffer[pos+1] = '\xBB' - emitter.buffer[pos+2] = '\xBF' - emitter.buffer_pos += 3 - return true -} - -func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { - indent := emitter.indent - if indent < 0 { - indent = 0 - } - if !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) { - if !put_break(emitter) { - return false - } - } - if emitter.foot_indent == indent { - if !put_break(emitter) { - return false - } - } - for emitter.column < indent { - if !put(emitter, ' ') { - return false - } - } - emitter.whitespace = true - //emitter.indention = true - emitter.space_above = false - emitter.foot_indent = -1 - return true -} - -func yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, indicator) { - return false - } - emitter.whitespace = is_whitespace - emitter.indention = (emitter.indention && is_indention) - emitter.open_ended = false - return true -} - -func yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool { - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool { - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - for i := 0; i < len(value); { - var must_write bool - switch value[i] { - case ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\'', '(', ')', '[', ']': - must_write = true - default: - must_write = is_alpha(value, i) - } - if must_write { - if !write(emitter, value, &i) { - return false - } - } else { - w := width(value[i]) - for k := 0; k < w; k++ { - octet := value[i] - i++ - if !put(emitter, '%') { - return false - } - - c := octet >> 4 - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - - c = octet & 0x0f - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - } - } - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - if len(value) > 0 && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - - if len(value) > 0 { - emitter.whitespace = false - } - emitter.indention = false - if emitter.root_context { - emitter.open_ended = true - } - - return true -} - -func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, true, false, false) { - return false - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if value[i] == '\'' { - if !put(emitter, '\'') { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - spaces := false - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, true, false, false) { - return false - } - - for i := 0; i < len(value); { - if !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) || - is_bom(value, i) || is_break(value, i) || - value[i] == '"' || value[i] == '\\' { - - octet := value[i] - - var w int - var v rune - switch { - case octet&0x80 == 0x00: - w, v = 1, rune(octet&0x7F) - case octet&0xE0 == 0xC0: - w, v = 2, rune(octet&0x1F) - case octet&0xF0 == 0xE0: - w, v = 3, rune(octet&0x0F) - case octet&0xF8 == 0xF0: - w, v = 4, rune(octet&0x07) - } - for k := 1; k < w; k++ { - octet = value[i+k] - v = (v << 6) + (rune(octet) & 0x3F) - } - i += w - - if !put(emitter, '\\') { - return false - } - - var ok bool - switch v { - case 0x00: - ok = put(emitter, '0') - case 0x07: - ok = put(emitter, 'a') - case 0x08: - ok = put(emitter, 'b') - case 0x09: - ok = put(emitter, 't') - case 0x0A: - ok = put(emitter, 'n') - case 0x0b: - ok = put(emitter, 'v') - case 0x0c: - ok = put(emitter, 'f') - case 0x0d: - ok = put(emitter, 'r') - case 0x1b: - ok = put(emitter, 'e') - case 0x22: - ok = put(emitter, '"') - case 0x5c: - ok = put(emitter, '\\') - case 0x85: - ok = put(emitter, 'N') - case 0xA0: - ok = put(emitter, '_') - case 0x2028: - ok = put(emitter, 'L') - case 0x2029: - ok = put(emitter, 'P') - default: - if v <= 0xFF { - ok = put(emitter, 'x') - w = 2 - } else if v <= 0xFFFF { - ok = put(emitter, 'u') - w = 4 - } else { - ok = put(emitter, 'U') - w = 8 - } - for k := (w - 1) * 4; ok && k >= 0; k -= 4 { - digit := byte((v >> uint(k)) & 0x0F) - if digit < 10 { - ok = put(emitter, digit+'0') - } else { - ok = put(emitter, digit+'A'-10) - } - } - } - if !ok { - return false - } - spaces = false - } else if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 { - if !yaml_emitter_write_indent(emitter) { - return false - } - if is_space(value, i+1) { - if !put(emitter, '\\') { - return false - } - } - i += width(value[i]) - } else if !write(emitter, value, &i) { - return false - } - spaces = true - } else { - if !write(emitter, value, &i) { - return false - } - spaces = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool { - if is_space(value, 0) || is_break(value, 0) { - indent_hint := []byte{'0' + byte(emitter.best_indent)} - if !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) { - return false - } - } - - emitter.open_ended = false - - var chomp_hint [1]byte - if len(value) == 0 { - chomp_hint[0] = '-' - } else { - i := len(value) - 1 - for value[i]&0xC0 == 0x80 { - i-- - } - if !is_break(value, i) { - chomp_hint[0] = '-' - } else if i == 0 { - chomp_hint[0] = '+' - emitter.open_ended = true - } else { - i-- - for value[i]&0xC0 == 0x80 { - i-- - } - if is_break(value, i) { - chomp_hint[0] = '+' - emitter.open_ended = true - } - } - } - if chomp_hint[0] != 0 { - if !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) { - return false - } - } - return true -} - -func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - //emitter.indention = true - emitter.whitespace = true - breaks := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - breaks = false - } - } - - return true -} - -func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - - //emitter.indention = true - emitter.whitespace = true - - breaks := true - leading_spaces := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !breaks && !leading_spaces && value[i] == '\n' { - k := 0 - for is_break(value, k) { - k += width(value[k]) - } - if !is_blankz(value, k) { - if !put_break(emitter) { - return false - } - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - leading_spaces = is_blank(value, i) - } - if !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - emitter.indention = false - breaks = false - } - } - return true -} - -func yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool { - breaks := false - pound := false - for i := 0; i < len(comment); { - if is_break(comment, i) { - if !write_break(emitter, comment, &i) { - return false - } - //emitter.indention = true - breaks = true - pound = false - } else { - if breaks && !yaml_emitter_write_indent(emitter) { - return false - } - if !pound { - if comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) { - return false - } - pound = true - } - if !write(emitter, comment, &i) { - return false - } - emitter.indention = false - breaks = false - } - } - if !breaks && !put_break(emitter) { - return false - } - - emitter.whitespace = true - //emitter.indention = true - return true -} diff --git a/example/vendor/gopkg.in/yaml.v3/encode.go b/example/vendor/gopkg.in/yaml.v3/encode.go deleted file mode 100644 index de9e72a..0000000 --- a/example/vendor/gopkg.in/yaml.v3/encode.go +++ /dev/null @@ -1,577 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml - -import ( - "encoding" - "fmt" - "io" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -type encoder struct { - emitter yaml_emitter_t - event yaml_event_t - out []byte - flow bool - indent int - doneInit bool -} - -func newEncoder() *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_string(&e.emitter, &e.out) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func newEncoderWithWriter(w io.Writer) *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_writer(&e.emitter, w) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func (e *encoder) init() { - if e.doneInit { - return - } - if e.indent == 0 { - e.indent = 4 - } - e.emitter.best_indent = e.indent - yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING) - e.emit() - e.doneInit = true -} - -func (e *encoder) finish() { - e.emitter.open_ended = false - yaml_stream_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) destroy() { - yaml_emitter_delete(&e.emitter) -} - -func (e *encoder) emit() { - // This will internally delete the e.event value. - e.must(yaml_emitter_emit(&e.emitter, &e.event)) -} - -func (e *encoder) must(ok bool) { - if !ok { - msg := e.emitter.problem - if msg == "" { - msg = "unknown problem generating YAML content" - } - failf("%s", msg) - } -} - -func (e *encoder) marshalDoc(tag string, in reflect.Value) { - e.init() - var node *Node - if in.IsValid() { - node, _ = in.Interface().(*Node) - } - if node != nil && node.Kind == DocumentNode { - e.nodev(in) - } else { - yaml_document_start_event_initialize(&e.event, nil, nil, true) - e.emit() - e.marshal(tag, in) - yaml_document_end_event_initialize(&e.event, true) - e.emit() - } -} - -func (e *encoder) marshal(tag string, in reflect.Value) { - tag = shortTag(tag) - if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() { - e.nilv() - return - } - iface := in.Interface() - switch value := iface.(type) { - case *Node: - e.nodev(in) - return - case Node: - if !in.CanAddr() { - var n = reflect.New(in.Type()).Elem() - n.Set(in) - in = n - } - e.nodev(in.Addr()) - return - case time.Time: - e.timev(tag, in) - return - case *time.Time: - e.timev(tag, in.Elem()) - return - case time.Duration: - e.stringv(tag, reflect.ValueOf(value.String())) - return - case Marshaler: - v, err := value.MarshalYAML() - if err != nil { - fail(err) - } - if v == nil { - e.nilv() - return - } - e.marshal(tag, reflect.ValueOf(v)) - return - case encoding.TextMarshaler: - text, err := value.MarshalText() - if err != nil { - fail(err) - } - in = reflect.ValueOf(string(text)) - case nil: - e.nilv() - return - } - switch in.Kind() { - case reflect.Interface: - e.marshal(tag, in.Elem()) - case reflect.Map: - e.mapv(tag, in) - case reflect.Ptr: - e.marshal(tag, in.Elem()) - case reflect.Struct: - e.structv(tag, in) - case reflect.Slice, reflect.Array: - e.slicev(tag, in) - case reflect.String: - e.stringv(tag, in) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - e.intv(tag, in) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - e.uintv(tag, in) - case reflect.Float32, reflect.Float64: - e.floatv(tag, in) - case reflect.Bool: - e.boolv(tag, in) - default: - panic("cannot marshal type: " + in.Type().String()) - } -} - -func (e *encoder) mapv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - keys := keyList(in.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - e.marshal("", k) - e.marshal("", in.MapIndex(k)) - } - }) -} - -func (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) { - for _, num := range index { - for { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - return reflect.Value{} - } - v = v.Elem() - continue - } - break - } - v = v.Field(num) - } - return v -} - -func (e *encoder) structv(tag string, in reflect.Value) { - sinfo, err := getStructInfo(in.Type()) - if err != nil { - panic(err) - } - e.mappingv(tag, func() { - for _, info := range sinfo.FieldsList { - var value reflect.Value - if info.Inline == nil { - value = in.Field(info.Num) - } else { - value = e.fieldByIndex(in, info.Inline) - if !value.IsValid() { - continue - } - } - if info.OmitEmpty && isZero(value) { - continue - } - e.marshal("", reflect.ValueOf(info.Key)) - e.flow = info.Flow - e.marshal("", value) - } - if sinfo.InlineMap >= 0 { - m := in.Field(sinfo.InlineMap) - if m.Len() > 0 { - e.flow = false - keys := keyList(m.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - if _, found := sinfo.FieldsMap[k.String()]; found { - panic(fmt.Sprintf("cannot have key %q in inlined map: conflicts with struct field", k.String())) - } - e.marshal("", k) - e.flow = false - e.marshal("", m.MapIndex(k)) - } - } - } - }) -} - -func (e *encoder) mappingv(tag string, f func()) { - implicit := tag == "" - style := yaml_BLOCK_MAPPING_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_MAPPING_STYLE - } - yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style) - e.emit() - f() - yaml_mapping_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) slicev(tag string, in reflect.Value) { - implicit := tag == "" - style := yaml_BLOCK_SEQUENCE_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) - e.emit() - n := in.Len() - for i := 0; i < n; i++ { - e.marshal("", in.Index(i)) - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.emit() -} - -// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. -// -// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported -// in YAML 1.2 and by this package, but these should be marshalled quoted for -// the time being for compatibility with other parsers. -func isBase60Float(s string) (result bool) { - // Fast path. - if s == "" { - return false - } - c := s[0] - if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { - return false - } - // Do the full match. - return base60float.MatchString(s) -} - -// From http://yaml.org/type/float.html, except the regular expression there -// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. -var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) - -// isOldBool returns whether s is bool notation as defined in YAML 1.1. -// -// We continue to force strings that YAML 1.1 would interpret as booleans to be -// rendered as quotes strings so that the marshalled output valid for YAML 1.1 -// parsing. -func isOldBool(s string) (result bool) { - switch s { - case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON", - "n", "N", "no", "No", "NO", "off", "Off", "OFF": - return true - default: - return false - } -} - -func (e *encoder) stringv(tag string, in reflect.Value) { - var style yaml_scalar_style_t - s := in.String() - canUsePlain := true - switch { - case !utf8.ValidString(s): - if tag == binaryTag { - failf("explicitly tagged !!binary data must be base64-encoded") - } - if tag != "" { - failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) - } - // It can't be encoded directly as YAML so use a binary tag - // and encode it as base64. - tag = binaryTag - s = encodeBase64(s) - case tag == "": - // Check to see if it would resolve to a specific - // tag when encoded unquoted. If it doesn't, - // there's no need to quote it. - rtag, _ := resolve("", s) - canUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s)) - } - // Note: it's possible for user code to emit invalid YAML - // if they explicitly specify a tag and a string containing - // text that's incompatible with that tag. - switch { - case strings.Contains(s, "\n"): - if e.flow { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } else { - style = yaml_LITERAL_SCALAR_STYLE - } - case canUsePlain: - style = yaml_PLAIN_SCALAR_STYLE - default: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - e.emitScalar(s, "", tag, style, nil, nil, nil, nil) -} - -func (e *encoder) boolv(tag string, in reflect.Value) { - var s string - if in.Bool() { - s = "true" - } else { - s = "false" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) intv(tag string, in reflect.Value) { - s := strconv.FormatInt(in.Int(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) uintv(tag string, in reflect.Value) { - s := strconv.FormatUint(in.Uint(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) timev(tag string, in reflect.Value) { - t := in.Interface().(time.Time) - s := t.Format(time.RFC3339Nano) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) floatv(tag string, in reflect.Value) { - // Issue #352: When formatting, use the precision of the underlying value - precision := 64 - if in.Kind() == reflect.Float32 { - precision = 32 - } - - s := strconv.FormatFloat(in.Float(), 'g', -1, precision) - switch s { - case "+Inf": - s = ".inf" - case "-Inf": - s = "-.inf" - case "NaN": - s = ".nan" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) nilv() { - e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) { - // TODO Kill this function. Replace all initialize calls by their underlining Go literals. - implicit := tag == "" - if !implicit { - tag = longTag(tag) - } - e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) - e.event.head_comment = head - e.event.line_comment = line - e.event.foot_comment = foot - e.event.tail_comment = tail - e.emit() -} - -func (e *encoder) nodev(in reflect.Value) { - e.node(in.Interface().(*Node), "") -} - -func (e *encoder) node(node *Node, tail string) { - // Zero nodes behave as nil. - if node.Kind == 0 && node.IsZero() { - e.nilv() - return - } - - // If the tag was not explicitly requested, and dropping it won't change the - // implicit tag of the value, don't include it in the presentation. - var tag = node.Tag - var stag = shortTag(tag) - var forceQuoting bool - if tag != "" && node.Style&TaggedStyle == 0 { - if node.Kind == ScalarNode { - if stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 { - tag = "" - } else { - rtag, _ := resolve("", node.Value) - if rtag == stag { - tag = "" - } else if stag == strTag { - tag = "" - forceQuoting = true - } - } - } else { - var rtag string - switch node.Kind { - case MappingNode: - rtag = mapTag - case SequenceNode: - rtag = seqTag - } - if rtag == stag { - tag = "" - } - } - } - - switch node.Kind { - case DocumentNode: - yaml_document_start_event_initialize(&e.event, nil, nil, true) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - for _, node := range node.Content { - e.node(node, "") - } - yaml_document_end_event_initialize(&e.event, true) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case SequenceNode: - style := yaml_BLOCK_SEQUENCE_STYLE - if node.Style&FlowStyle != 0 { - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style)) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - for _, node := range node.Content { - e.node(node, "") - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case MappingNode: - style := yaml_BLOCK_MAPPING_STYLE - if node.Style&FlowStyle != 0 { - style = yaml_FLOW_MAPPING_STYLE - } - yaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style) - e.event.tail_comment = []byte(tail) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - - // The tail logic below moves the foot comment of prior keys to the following key, - // since the value for each key may be a nested structure and the foot needs to be - // processed only the entirety of the value is streamed. The last tail is processed - // with the mapping end event. - var tail string - for i := 0; i+1 < len(node.Content); i += 2 { - k := node.Content[i] - foot := k.FootComment - if foot != "" { - kopy := *k - kopy.FootComment = "" - k = &kopy - } - e.node(k, tail) - tail = foot - - v := node.Content[i+1] - e.node(v, "") - } - - yaml_mapping_end_event_initialize(&e.event) - e.event.tail_comment = []byte(tail) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case AliasNode: - yaml_alias_event_initialize(&e.event, []byte(node.Value)) - e.event.head_comment = []byte(node.HeadComment) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case ScalarNode: - value := node.Value - if !utf8.ValidString(value) { - if stag == binaryTag { - failf("explicitly tagged !!binary data must be base64-encoded") - } - if stag != "" { - failf("cannot marshal invalid UTF-8 data as %s", stag) - } - // It can't be encoded directly as YAML so use a binary tag - // and encode it as base64. - tag = binaryTag - value = encodeBase64(value) - } - - style := yaml_PLAIN_SCALAR_STYLE - switch { - case node.Style&DoubleQuotedStyle != 0: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - case node.Style&SingleQuotedStyle != 0: - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - case node.Style&LiteralStyle != 0: - style = yaml_LITERAL_SCALAR_STYLE - case node.Style&FoldedStyle != 0: - style = yaml_FOLDED_SCALAR_STYLE - case strings.Contains(value, "\n"): - style = yaml_LITERAL_SCALAR_STYLE - case forceQuoting: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - - e.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail)) - default: - failf("cannot encode node with unknown kind %d", node.Kind) - } -} diff --git a/example/vendor/gopkg.in/yaml.v3/parserc.go b/example/vendor/gopkg.in/yaml.v3/parserc.go deleted file mode 100644 index 268558a..0000000 --- a/example/vendor/gopkg.in/yaml.v3/parserc.go +++ /dev/null @@ -1,1258 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" -) - -// The parser implements the following grammar: -// -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// implicit_document ::= block_node DOCUMENT-END* -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// block_node_or_indentless_sequence ::= -// ALIAS -// | properties (block_content | indentless_block_sequence)? -// | block_content -// | indentless_block_sequence -// block_node ::= ALIAS -// | properties block_content? -// | block_content -// flow_node ::= ALIAS -// | properties flow_content? -// | flow_content -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// block_content ::= block_collection | flow_collection | SCALAR -// flow_content ::= flow_collection | SCALAR -// block_collection ::= block_sequence | block_mapping -// flow_collection ::= flow_sequence | flow_mapping -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// block_mapping ::= BLOCK-MAPPING_START -// ((KEY block_node_or_indentless_sequence?)? -// (VALUE block_node_or_indentless_sequence?)?)* -// BLOCK-END -// flow_sequence ::= FLOW-SEQUENCE-START -// (flow_sequence_entry FLOW-ENTRY)* -// flow_sequence_entry? -// FLOW-SEQUENCE-END -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// flow_mapping ::= FLOW-MAPPING-START -// (flow_mapping_entry FLOW-ENTRY)* -// flow_mapping_entry? -// FLOW-MAPPING-END -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? - -// Peek the next token in the token queue. -func peek_token(parser *yaml_parser_t) *yaml_token_t { - if parser.token_available || yaml_parser_fetch_more_tokens(parser) { - token := &parser.tokens[parser.tokens_head] - yaml_parser_unfold_comments(parser, token) - return token - } - return nil -} - -// yaml_parser_unfold_comments walks through the comments queue and joins all -// comments behind the position of the provided token into the respective -// top-level comment slices in the parser. -func yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) { - for parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index { - comment := &parser.comments[parser.comments_head] - if len(comment.head) > 0 { - if token.typ == yaml_BLOCK_END_TOKEN { - // No heads on ends, so keep comment.head for a follow up token. - break - } - if len(parser.head_comment) > 0 { - parser.head_comment = append(parser.head_comment, '\n') - } - parser.head_comment = append(parser.head_comment, comment.head...) - } - if len(comment.foot) > 0 { - if len(parser.foot_comment) > 0 { - parser.foot_comment = append(parser.foot_comment, '\n') - } - parser.foot_comment = append(parser.foot_comment, comment.foot...) - } - if len(comment.line) > 0 { - if len(parser.line_comment) > 0 { - parser.line_comment = append(parser.line_comment, '\n') - } - parser.line_comment = append(parser.line_comment, comment.line...) - } - *comment = yaml_comment_t{} - parser.comments_head++ - } -} - -// Remove the next token from the queue (must be called after peek_token). -func skip_token(parser *yaml_parser_t) { - parser.token_available = false - parser.tokens_parsed++ - parser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN - parser.tokens_head++ -} - -// Get the next event. -func yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool { - // Erase the event object. - *event = yaml_event_t{} - - // No events after the end of the stream or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE { - return true - } - - // Generate the next event. - return yaml_parser_state_machine(parser, event) -} - -// Set parser error. -func yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -func yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -// State dispatcher. -func yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool { - //trace("yaml_parser_state_machine", "state:", parser.state.String()) - - switch parser.state { - case yaml_PARSE_STREAM_START_STATE: - return yaml_parser_parse_stream_start(parser, event) - - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, true) - - case yaml_PARSE_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, false) - - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return yaml_parser_parse_document_content(parser, event) - - case yaml_PARSE_DOCUMENT_END_STATE: - return yaml_parser_parse_document_end(parser, event) - - case yaml_PARSE_BLOCK_NODE_STATE: - return yaml_parser_parse_node(parser, event, true, false) - - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return yaml_parser_parse_node(parser, event, true, true) - - case yaml_PARSE_FLOW_NODE_STATE: - return yaml_parser_parse_node(parser, event, false, false) - - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, true) - - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, false) - - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_indentless_sequence_entry(parser, event) - - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, true) - - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, false) - - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return yaml_parser_parse_block_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, true) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, false) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event) - - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, true) - - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, true) - - default: - panic("invalid parser state") - } -} - -// Parse the production: -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// ************ -func yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_STREAM_START_TOKEN { - return yaml_parser_set_parser_error(parser, "did not find expected ", token.start_mark) - } - parser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - encoding: token.encoding, - } - skip_token(parser) - return true -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// * -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// ************************* -func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool { - - token := peek_token(parser) - if token == nil { - return false - } - - // Parse extra document end indicators. - if !implicit { - for token.typ == yaml_DOCUMENT_END_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - if implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN && - token.typ != yaml_TAG_DIRECTIVE_TOKEN && - token.typ != yaml_DOCUMENT_START_TOKEN && - token.typ != yaml_STREAM_END_TOKEN { - // Parse an implicit document. - if !yaml_parser_process_directives(parser, nil, nil) { - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_BLOCK_NODE_STATE - - var head_comment []byte - if len(parser.head_comment) > 0 { - // [Go] Scan the header comment backwards, and if an empty line is found, break - // the header so the part before the last empty line goes into the - // document header, while the bottom of it goes into a follow up event. - for i := len(parser.head_comment) - 1; i > 0; i-- { - if parser.head_comment[i] == '\n' { - if i == len(parser.head_comment)-1 { - head_comment = parser.head_comment[:i] - parser.head_comment = parser.head_comment[i+1:] - break - } else if parser.head_comment[i-1] == '\n' { - head_comment = parser.head_comment[:i-1] - parser.head_comment = parser.head_comment[i+1:] - break - } - } - } - } - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - - head_comment: head_comment, - } - - } else if token.typ != yaml_STREAM_END_TOKEN { - // Parse an explicit document. - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - start_mark := token.start_mark - if !yaml_parser_process_directives(parser, &version_directive, &tag_directives) { - return false - } - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_DOCUMENT_START_TOKEN { - yaml_parser_set_parser_error(parser, - "did not find expected ", token.start_mark) - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE - end_mark := token.end_mark - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: false, - } - skip_token(parser) - - } else { - // Parse the stream end. - parser.state = yaml_PARSE_END_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - } - - return true -} - -// Parse the productions: -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// *********** -// -func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || - token.typ == yaml_TAG_DIRECTIVE_TOKEN || - token.typ == yaml_DOCUMENT_START_TOKEN || - token.typ == yaml_DOCUMENT_END_TOKEN || - token.typ == yaml_STREAM_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - return yaml_parser_process_empty_scalar(parser, event, - token.start_mark) - } - return yaml_parser_parse_node(parser, event, true, false) -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// ************* -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// -func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - start_mark := token.start_mark - end_mark := token.start_mark - - implicit := true - if token.typ == yaml_DOCUMENT_END_TOKEN { - end_mark = token.end_mark - skip_token(parser) - implicit = false - } - - parser.tag_directives = parser.tag_directives[:0] - - parser.state = yaml_PARSE_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - start_mark: start_mark, - end_mark: end_mark, - implicit: implicit, - } - yaml_parser_set_event_comments(parser, event) - if len(event.head_comment) > 0 && len(event.foot_comment) == 0 { - event.foot_comment = event.head_comment - event.head_comment = nil - } - return true -} - -func yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) { - event.head_comment = parser.head_comment - event.line_comment = parser.line_comment - event.foot_comment = parser.foot_comment - parser.head_comment = nil - parser.line_comment = nil - parser.foot_comment = nil - parser.tail_comment = nil - parser.stem_comment = nil -} - -// Parse the productions: -// block_node_or_indentless_sequence ::= -// ALIAS -// ***** -// | properties (block_content | indentless_block_sequence)? -// ********** * -// | block_content | indentless_block_sequence -// * -// block_node ::= ALIAS -// ***** -// | properties block_content? -// ********** * -// | block_content -// * -// flow_node ::= ALIAS -// ***** -// | properties flow_content? -// ********** * -// | flow_content -// * -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// ************************* -// block_content ::= block_collection | flow_collection | SCALAR -// ****** -// flow_content ::= flow_collection | SCALAR -// ****** -func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool { - //defer trace("yaml_parser_parse_node", "block:", block, "indentless_sequence:", indentless_sequence)() - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_ALIAS_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - *event = yaml_event_t{ - typ: yaml_ALIAS_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - anchor: token.value, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - - start_mark := token.start_mark - end_mark := token.start_mark - - var tag_token bool - var tag_handle, tag_suffix, anchor []byte - var tag_mark yaml_mark_t - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - start_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } else if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - start_mark = token.start_mark - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - var tag []byte - if tag_token { - if len(tag_handle) == 0 { - tag = tag_suffix - tag_suffix = nil - } else { - for i := range parser.tag_directives { - if bytes.Equal(parser.tag_directives[i].handle, tag_handle) { - tag = append([]byte(nil), parser.tag_directives[i].prefix...) - tag = append(tag, tag_suffix...) - break - } - } - if len(tag) == 0 { - yaml_parser_set_parser_error_context(parser, - "while parsing a node", start_mark, - "found undefined tag handle", tag_mark) - return false - } - } - } - - implicit := len(tag) == 0 - if indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - return true - } - if token.typ == yaml_SCALAR_TOKEN { - var plain_implicit, quoted_implicit bool - end_mark = token.end_mark - if (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') { - plain_implicit = true - } else if len(tag) == 0 { - quoted_implicit = true - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - value: token.value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(token.style), - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - if token.typ == yaml_FLOW_SEQUENCE_START_TOKEN { - // [Go] Some of the events below can be merged as they differ only on style. - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), - } - yaml_parser_set_event_comments(parser, event) - return true - } - if token.typ == yaml_FLOW_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - yaml_parser_set_event_comments(parser, event) - return true - } - if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - if parser.stem_comment != nil { - event.head_comment = parser.stem_comment - parser.stem_comment = nil - } - return true - } - if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), - } - if parser.stem_comment != nil { - event.head_comment = parser.stem_comment - parser.stem_comment = nil - } - return true - } - if len(anchor) > 0 || len(tag) > 0 { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - quoted_implicit: false, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true - } - - context := "while parsing a flow node" - if block { - context = "while parsing a block node" - } - yaml_parser_set_parser_error_context(parser, context, start_mark, - "did not find expected node content", token.start_mark) - return false -} - -// Parse the productions: -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// ******************** *********** * ********* -// -func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - prior_head_len := len(parser.head_comment) - skip_token(parser) - yaml_parser_split_stem_comment(parser, prior_head_len) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } else { - parser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } - if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block collection", context_mark, - "did not find expected '-' indicator", token.start_mark) -} - -// Parse the productions: -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// *********** * -func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - prior_head_len := len(parser.head_comment) - skip_token(parser) - yaml_parser_split_stem_comment(parser, prior_head_len) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && - token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be token.end_mark? - } - return true -} - -// Split stem comment from head comment. -// -// When a sequence or map is found under a sequence entry, the former head comment -// is assigned to the underlying sequence or map as a whole, not the individual -// sequence or map entry as would be expected otherwise. To handle this case the -// previous head comment is moved aside as the stem comment. -func yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) { - if stem_len == 0 { - return - } - - token := peek_token(parser) - if token == nil || token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN { - return - } - - parser.stem_comment = parser.head_comment[:stem_len] - if len(parser.head_comment) == stem_len { - parser.head_comment = nil - } else { - // Copy suffix to prevent very strange bugs if someone ever appends - // further bytes to the prefix in the stem_comment slice above. - parser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...) - } -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// ******************* -// ((KEY block_node_or_indentless_sequence?)? -// *** * -// (VALUE block_node_or_indentless_sequence?)?)* -// -// BLOCK-END -// ********* -// -func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - // [Go] A tail comment was left from the prior mapping value processed. Emit an event - // as it needs to be processed with that value and not the following key. - if len(parser.tail_comment) > 0 { - *event = yaml_event_t{ - typ: yaml_TAIL_COMMENT_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - foot_comment: parser.tail_comment, - } - parser.tail_comment = nil - return true - } - - if token.typ == yaml_KEY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } else { - parser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } else if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block mapping", context_mark, - "did not find expected key", token.start_mark) -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// -// ((KEY block_node_or_indentless_sequence?)? -// -// (VALUE block_node_or_indentless_sequence?)?)* -// ***** * -// BLOCK-END -// -// -func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence ::= FLOW-SEQUENCE-START -// ******************* -// (flow_sequence_entry FLOW-ENTRY)* -// * ********** -// flow_sequence_entry? -// * -// FLOW-SEQUENCE-END -// ***************** -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * -// -func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow sequence", context_mark, - "did not find expected ',' or ']'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - implicit: true, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - skip_token(parser) - return true - } else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - - skip_token(parser) - return true -} - -// -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// *** * -// -func yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - mark := token.end_mark - skip_token(parser) - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// ***** * -// -func yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * -// -func yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be end_mark? - } - return true -} - -// Parse the productions: -// flow_mapping ::= FLOW-MAPPING-START -// ****************** -// (flow_mapping_entry FLOW-ENTRY)* -// * ********** -// flow_mapping_entry? -// ****************** -// FLOW-MAPPING-END -// **************** -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * *** * -// -func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow mapping", context_mark, - "did not find expected ',' or '}'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } else { - parser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - } else if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true -} - -// Parse the productions: -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * ***** * -// -func yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool { - token := peek_token(parser) - if token == nil { - return false - } - if empty { - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Generate an empty scalar event. -func yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: mark, - end_mark: mark, - value: nil, // Empty - implicit: true, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true -} - -var default_tag_directives = []yaml_tag_directive_t{ - {[]byte("!"), []byte("!")}, - {[]byte("!!"), []byte("tag:yaml.org,2002:")}, -} - -// Parse directives. -func yaml_parser_process_directives(parser *yaml_parser_t, - version_directive_ref **yaml_version_directive_t, - tag_directives_ref *[]yaml_tag_directive_t) bool { - - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - - token := peek_token(parser) - if token == nil { - return false - } - - for token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN { - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN { - if version_directive != nil { - yaml_parser_set_parser_error(parser, - "found duplicate %YAML directive", token.start_mark) - return false - } - if token.major != 1 || token.minor != 1 { - yaml_parser_set_parser_error(parser, - "found incompatible YAML document", token.start_mark) - return false - } - version_directive = &yaml_version_directive_t{ - major: token.major, - minor: token.minor, - } - } else if token.typ == yaml_TAG_DIRECTIVE_TOKEN { - value := yaml_tag_directive_t{ - handle: token.value, - prefix: token.prefix, - } - if !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) { - return false - } - tag_directives = append(tag_directives, value) - } - - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - - for i := range default_tag_directives { - if !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) { - return false - } - } - - if version_directive_ref != nil { - *version_directive_ref = version_directive - } - if tag_directives_ref != nil { - *tag_directives_ref = tag_directives - } - return true -} - -// Append a tag directive to the directives stack. -func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool { - for i := range parser.tag_directives { - if bytes.Equal(value.handle, parser.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark) - } - } - - // [Go] I suspect the copy is unnecessary. This was likely done - // because there was no way to track ownership of the data. - value_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(value_copy.handle, value.handle) - copy(value_copy.prefix, value.prefix) - parser.tag_directives = append(parser.tag_directives, value_copy) - return true -} diff --git a/example/vendor/gopkg.in/yaml.v3/readerc.go b/example/vendor/gopkg.in/yaml.v3/readerc.go deleted file mode 100644 index b7de0a8..0000000 --- a/example/vendor/gopkg.in/yaml.v3/readerc.go +++ /dev/null @@ -1,434 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "io" -) - -// Set the reader error and return 0. -func yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool { - parser.error = yaml_READER_ERROR - parser.problem = problem - parser.problem_offset = offset - parser.problem_value = value - return false -} - -// Byte order marks. -const ( - bom_UTF8 = "\xef\xbb\xbf" - bom_UTF16LE = "\xff\xfe" - bom_UTF16BE = "\xfe\xff" -) - -// Determine the input stream encoding by checking the BOM symbol. If no BOM is -// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. -func yaml_parser_determine_encoding(parser *yaml_parser_t) bool { - // Ensure that we had enough bytes in the raw buffer. - for !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 { - if !yaml_parser_update_raw_buffer(parser) { - return false - } - } - - // Determine the encoding. - buf := parser.raw_buffer - pos := parser.raw_buffer_pos - avail := len(buf) - pos - if avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] { - parser.encoding = yaml_UTF16LE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] { - parser.encoding = yaml_UTF16BE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] { - parser.encoding = yaml_UTF8_ENCODING - parser.raw_buffer_pos += 3 - parser.offset += 3 - } else { - parser.encoding = yaml_UTF8_ENCODING - } - return true -} - -// Update the raw buffer. -func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { - size_read := 0 - - // Return if the raw buffer is full. - if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { - return true - } - - // Return on EOF. - if parser.eof { - return true - } - - // Move the remaining bytes in the raw buffer to the beginning. - if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { - copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) - } - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] - parser.raw_buffer_pos = 0 - - // Call the read handler to fill the buffer. - size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] - if err == io.EOF { - parser.eof = true - } else if err != nil { - return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) - } - return true -} - -// Ensure that the buffer contains at least `length` characters. -// Return true on success, false on failure. -// -// The length is supposed to be significantly less that the buffer size. -func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { - if parser.read_handler == nil { - panic("read handler must be set") - } - - // [Go] This function was changed to guarantee the requested length size at EOF. - // The fact we need to do this is pretty awful, but the description above implies - // for that to be the case, and there are tests - - // If the EOF flag is set and the raw buffer is empty, do nothing. - if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { - // [Go] ACTUALLY! Read the documentation of this function above. - // This is just broken. To return true, we need to have the - // given length in the buffer. Not doing that means every single - // check that calls this function to make sure the buffer has a - // given length is Go) panicking; or C) accessing invalid memory. - //return true - } - - // Return if the buffer contains enough characters. - if parser.unread >= length { - return true - } - - // Determine the input encoding if it is not known yet. - if parser.encoding == yaml_ANY_ENCODING { - if !yaml_parser_determine_encoding(parser) { - return false - } - } - - // Move the unread characters to the beginning of the buffer. - buffer_len := len(parser.buffer) - if parser.buffer_pos > 0 && parser.buffer_pos < buffer_len { - copy(parser.buffer, parser.buffer[parser.buffer_pos:]) - buffer_len -= parser.buffer_pos - parser.buffer_pos = 0 - } else if parser.buffer_pos == buffer_len { - buffer_len = 0 - parser.buffer_pos = 0 - } - - // Open the whole buffer for writing, and cut it before returning. - parser.buffer = parser.buffer[:cap(parser.buffer)] - - // Fill the buffer until it has enough characters. - first := true - for parser.unread < length { - - // Fill the raw buffer if necessary. - if !first || parser.raw_buffer_pos == len(parser.raw_buffer) { - if !yaml_parser_update_raw_buffer(parser) { - parser.buffer = parser.buffer[:buffer_len] - return false - } - } - first = false - - // Decode the raw buffer. - inner: - for parser.raw_buffer_pos != len(parser.raw_buffer) { - var value rune - var width int - - raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos - - // Decode the next character. - switch parser.encoding { - case yaml_UTF8_ENCODING: - // Decode a UTF-8 character. Check RFC 3629 - // (http://www.ietf.org/rfc/rfc3629.txt) for more details. - // - // The following table (taken from the RFC) is used for - // decoding. - // - // Char. number range | UTF-8 octet sequence - // (hexadecimal) | (binary) - // --------------------+------------------------------------ - // 0000 0000-0000 007F | 0xxxxxxx - // 0000 0080-0000 07FF | 110xxxxx 10xxxxxx - // 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx - // 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - // - // Additionally, the characters in the range 0xD800-0xDFFF - // are prohibited as they are reserved for use with UTF-16 - // surrogate pairs. - - // Determine the length of the UTF-8 sequence. - octet := parser.raw_buffer[parser.raw_buffer_pos] - switch { - case octet&0x80 == 0x00: - width = 1 - case octet&0xE0 == 0xC0: - width = 2 - case octet&0xF0 == 0xE0: - width = 3 - case octet&0xF8 == 0xF0: - width = 4 - default: - // The leading octet is invalid. - return yaml_parser_set_reader_error(parser, - "invalid leading UTF-8 octet", - parser.offset, int(octet)) - } - - // Check if the raw buffer contains an incomplete character. - if width > raw_unread { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-8 octet sequence", - parser.offset, -1) - } - break inner - } - - // Decode the leading octet. - switch { - case octet&0x80 == 0x00: - value = rune(octet & 0x7F) - case octet&0xE0 == 0xC0: - value = rune(octet & 0x1F) - case octet&0xF0 == 0xE0: - value = rune(octet & 0x0F) - case octet&0xF8 == 0xF0: - value = rune(octet & 0x07) - default: - value = 0 - } - - // Check and decode the trailing octets. - for k := 1; k < width; k++ { - octet = parser.raw_buffer[parser.raw_buffer_pos+k] - - // Check if the octet is valid. - if (octet & 0xC0) != 0x80 { - return yaml_parser_set_reader_error(parser, - "invalid trailing UTF-8 octet", - parser.offset+k, int(octet)) - } - - // Decode the octet. - value = (value << 6) + rune(octet&0x3F) - } - - // Check the length of the sequence against the value. - switch { - case width == 1: - case width == 2 && value >= 0x80: - case width == 3 && value >= 0x800: - case width == 4 && value >= 0x10000: - default: - return yaml_parser_set_reader_error(parser, - "invalid length of a UTF-8 sequence", - parser.offset, -1) - } - - // Check the range of the value. - if value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF { - return yaml_parser_set_reader_error(parser, - "invalid Unicode character", - parser.offset, int(value)) - } - - case yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING: - var low, high int - if parser.encoding == yaml_UTF16LE_ENCODING { - low, high = 0, 1 - } else { - low, high = 1, 0 - } - - // The UTF-16 encoding is not as simple as one might - // naively think. Check RFC 2781 - // (http://www.ietf.org/rfc/rfc2781.txt). - // - // Normally, two subsequent bytes describe a Unicode - // character. However a special technique (called a - // surrogate pair) is used for specifying character - // values larger than 0xFFFF. - // - // A surrogate pair consists of two pseudo-characters: - // high surrogate area (0xD800-0xDBFF) - // low surrogate area (0xDC00-0xDFFF) - // - // The following formulas are used for decoding - // and encoding characters using surrogate pairs: - // - // U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) - // U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) - // W1 = 110110yyyyyyyyyy - // W2 = 110111xxxxxxxxxx - // - // where U is the character value, W1 is the high surrogate - // area, W2 is the low surrogate area. - - // Check for incomplete UTF-16 character. - if raw_unread < 2 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 character", - parser.offset, -1) - } - break inner - } - - // Get the character. - value = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8) - - // Check for unexpected low surrogate area. - if value&0xFC00 == 0xDC00 { - return yaml_parser_set_reader_error(parser, - "unexpected low surrogate area", - parser.offset, int(value)) - } - - // Check for a high surrogate area. - if value&0xFC00 == 0xD800 { - width = 4 - - // Check for incomplete surrogate pair. - if raw_unread < 4 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 surrogate pair", - parser.offset, -1) - } - break inner - } - - // Get the next character. - value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8) - - // Check for a low surrogate area. - if value2&0xFC00 != 0xDC00 { - return yaml_parser_set_reader_error(parser, - "expected low surrogate area", - parser.offset+2, int(value2)) - } - - // Generate the value of the surrogate pair. - value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF) - } else { - width = 2 - } - - default: - panic("impossible") - } - - // Check if the character is in the allowed range: - // #x9 | #xA | #xD | [#x20-#x7E] (8 bit) - // | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) - // | [#x10000-#x10FFFF] (32 bit) - switch { - case value == 0x09: - case value == 0x0A: - case value == 0x0D: - case value >= 0x20 && value <= 0x7E: - case value == 0x85: - case value >= 0xA0 && value <= 0xD7FF: - case value >= 0xE000 && value <= 0xFFFD: - case value >= 0x10000 && value <= 0x10FFFF: - default: - return yaml_parser_set_reader_error(parser, - "control characters are not allowed", - parser.offset, int(value)) - } - - // Move the raw pointers. - parser.raw_buffer_pos += width - parser.offset += width - - // Finally put the character into the buffer. - if value <= 0x7F { - // 0000 0000-0000 007F . 0xxxxxxx - parser.buffer[buffer_len+0] = byte(value) - buffer_len += 1 - } else if value <= 0x7FF { - // 0000 0080-0000 07FF . 110xxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6)) - parser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F)) - buffer_len += 2 - } else if value <= 0xFFFF { - // 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F)) - buffer_len += 3 - } else { - // 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F)) - buffer_len += 4 - } - - parser.unread++ - } - - // On EOF, put NUL into the buffer and return. - if parser.eof { - parser.buffer[buffer_len] = 0 - buffer_len++ - parser.unread++ - break - } - } - // [Go] Read the documentation of this function above. To return true, - // we need to have the given length in the buffer. Not doing that means - // every single check that calls this function to make sure the buffer - // has a given length is Go) panicking; or C) accessing invalid memory. - // This happens here due to the EOF above breaking early. - for buffer_len < length { - parser.buffer[buffer_len] = 0 - buffer_len++ - } - parser.buffer = parser.buffer[:buffer_len] - return true -} diff --git a/example/vendor/gopkg.in/yaml.v3/resolve.go b/example/vendor/gopkg.in/yaml.v3/resolve.go deleted file mode 100644 index 64ae888..0000000 --- a/example/vendor/gopkg.in/yaml.v3/resolve.go +++ /dev/null @@ -1,326 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml - -import ( - "encoding/base64" - "math" - "regexp" - "strconv" - "strings" - "time" -) - -type resolveMapItem struct { - value interface{} - tag string -} - -var resolveTable = make([]byte, 256) -var resolveMap = make(map[string]resolveMapItem) - -func init() { - t := resolveTable - t[int('+')] = 'S' // Sign - t[int('-')] = 'S' - for _, c := range "0123456789" { - t[int(c)] = 'D' // Digit - } - for _, c := range "yYnNtTfFoO~" { - t[int(c)] = 'M' // In map - } - t[int('.')] = '.' // Float (potentially in map) - - var resolveMapList = []struct { - v interface{} - tag string - l []string - }{ - {true, boolTag, []string{"true", "True", "TRUE"}}, - {false, boolTag, []string{"false", "False", "FALSE"}}, - {nil, nullTag, []string{"", "~", "null", "Null", "NULL"}}, - {math.NaN(), floatTag, []string{".nan", ".NaN", ".NAN"}}, - {math.Inf(+1), floatTag, []string{".inf", ".Inf", ".INF"}}, - {math.Inf(+1), floatTag, []string{"+.inf", "+.Inf", "+.INF"}}, - {math.Inf(-1), floatTag, []string{"-.inf", "-.Inf", "-.INF"}}, - {"<<", mergeTag, []string{"<<"}}, - } - - m := resolveMap - for _, item := range resolveMapList { - for _, s := range item.l { - m[s] = resolveMapItem{item.v, item.tag} - } - } -} - -const ( - nullTag = "!!null" - boolTag = "!!bool" - strTag = "!!str" - intTag = "!!int" - floatTag = "!!float" - timestampTag = "!!timestamp" - seqTag = "!!seq" - mapTag = "!!map" - binaryTag = "!!binary" - mergeTag = "!!merge" -) - -var longTags = make(map[string]string) -var shortTags = make(map[string]string) - -func init() { - for _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} { - ltag := longTag(stag) - longTags[stag] = ltag - shortTags[ltag] = stag - } -} - -const longTagPrefix = "tag:yaml.org,2002:" - -func shortTag(tag string) string { - if strings.HasPrefix(tag, longTagPrefix) { - if stag, ok := shortTags[tag]; ok { - return stag - } - return "!!" + tag[len(longTagPrefix):] - } - return tag -} - -func longTag(tag string) string { - if strings.HasPrefix(tag, "!!") { - if ltag, ok := longTags[tag]; ok { - return ltag - } - return longTagPrefix + tag[2:] - } - return tag -} - -func resolvableTag(tag string) bool { - switch tag { - case "", strTag, boolTag, intTag, floatTag, nullTag, timestampTag: - return true - } - return false -} - -var yamlStyleFloat = regexp.MustCompile(`^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$`) - -func resolve(tag string, in string) (rtag string, out interface{}) { - tag = shortTag(tag) - if !resolvableTag(tag) { - return tag, in - } - - defer func() { - switch tag { - case "", rtag, strTag, binaryTag: - return - case floatTag: - if rtag == intTag { - switch v := out.(type) { - case int64: - rtag = floatTag - out = float64(v) - return - case int: - rtag = floatTag - out = float64(v) - return - } - } - } - failf("cannot decode %s `%s` as a %s", shortTag(rtag), in, shortTag(tag)) - }() - - // Any data is accepted as a !!str or !!binary. - // Otherwise, the prefix is enough of a hint about what it might be. - hint := byte('N') - if in != "" { - hint = resolveTable[in[0]] - } - if hint != 0 && tag != strTag && tag != binaryTag { - // Handle things we can lookup in a map. - if item, ok := resolveMap[in]; ok { - return item.tag, item.value - } - - // Base 60 floats are a bad idea, were dropped in YAML 1.2, and - // are purposefully unsupported here. They're still quoted on - // the way out for compatibility with other parser, though. - - switch hint { - case 'M': - // We've already checked the map above. - - case '.': - // Not in the map, so maybe a normal float. - floatv, err := strconv.ParseFloat(in, 64) - if err == nil { - return floatTag, floatv - } - - case 'D', 'S': - // Int, float, or timestamp. - // Only try values as a timestamp if the value is unquoted or there's an explicit - // !!timestamp tag. - if tag == "" || tag == timestampTag { - t, ok := parseTimestamp(in) - if ok { - return timestampTag, t - } - } - - plain := strings.Replace(in, "_", "", -1) - intv, err := strconv.ParseInt(plain, 0, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain, 0, 64) - if err == nil { - return intTag, uintv - } - if yamlStyleFloat.MatchString(plain) { - floatv, err := strconv.ParseFloat(plain, 64) - if err == nil { - return floatTag, floatv - } - } - if strings.HasPrefix(plain, "0b") { - intv, err := strconv.ParseInt(plain[2:], 2, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain[2:], 2, 64) - if err == nil { - return intTag, uintv - } - } else if strings.HasPrefix(plain, "-0b") { - intv, err := strconv.ParseInt("-"+plain[3:], 2, 64) - if err == nil { - if true || intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - } - // Octals as introduced in version 1.2 of the spec. - // Octals from the 1.1 spec, spelled as 0777, are still - // decoded by default in v3 as well for compatibility. - // May be dropped in v4 depending on how usage evolves. - if strings.HasPrefix(plain, "0o") { - intv, err := strconv.ParseInt(plain[2:], 8, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain[2:], 8, 64) - if err == nil { - return intTag, uintv - } - } else if strings.HasPrefix(plain, "-0o") { - intv, err := strconv.ParseInt("-"+plain[3:], 8, 64) - if err == nil { - if true || intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - } - default: - panic("internal error: missing handler for resolver table: " + string(rune(hint)) + " (with " + in + ")") - } - } - return strTag, in -} - -// encodeBase64 encodes s as base64 that is broken up into multiple lines -// as appropriate for the resulting length. -func encodeBase64(s string) string { - const lineLen = 70 - encLen := base64.StdEncoding.EncodedLen(len(s)) - lines := encLen/lineLen + 1 - buf := make([]byte, encLen*2+lines) - in := buf[0:encLen] - out := buf[encLen:] - base64.StdEncoding.Encode(in, []byte(s)) - k := 0 - for i := 0; i < len(in); i += lineLen { - j := i + lineLen - if j > len(in) { - j = len(in) - } - k += copy(out[k:], in[i:j]) - if lines > 1 { - out[k] = '\n' - k++ - } - } - return string(out[:k]) -} - -// This is a subset of the formats allowed by the regular expression -// defined at http://yaml.org/type/timestamp.html. -var allowedTimestampFormats = []string{ - "2006-1-2T15:4:5.999999999Z07:00", // RCF3339Nano with short date fields. - "2006-1-2t15:4:5.999999999Z07:00", // RFC3339Nano with short date fields and lower-case "t". - "2006-1-2 15:4:5.999999999", // space separated with no time zone - "2006-1-2", // date only - // Notable exception: time.Parse cannot handle: "2001-12-14 21:59:43.10 -5" - // from the set of examples. -} - -// parseTimestamp parses s as a timestamp string and -// returns the timestamp and reports whether it succeeded. -// Timestamp formats are defined at http://yaml.org/type/timestamp.html -func parseTimestamp(s string) (time.Time, bool) { - // TODO write code to check all the formats supported by - // http://yaml.org/type/timestamp.html instead of using time.Parse. - - // Quick check: all date formats start with YYYY-. - i := 0 - for ; i < len(s); i++ { - if c := s[i]; c < '0' || c > '9' { - break - } - } - if i != 4 || i == len(s) || s[i] != '-' { - return time.Time{}, false - } - for _, format := range allowedTimestampFormats { - if t, err := time.Parse(format, s); err == nil { - return t, true - } - } - return time.Time{}, false -} diff --git a/example/vendor/gopkg.in/yaml.v3/scannerc.go b/example/vendor/gopkg.in/yaml.v3/scannerc.go deleted file mode 100644 index ca00701..0000000 --- a/example/vendor/gopkg.in/yaml.v3/scannerc.go +++ /dev/null @@ -1,3038 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" - "fmt" -) - -// Introduction -// ************ -// -// The following notes assume that you are familiar with the YAML specification -// (http://yaml.org/spec/1.2/spec.html). We mostly follow it, although in -// some cases we are less restrictive that it requires. -// -// The process of transforming a YAML stream into a sequence of events is -// divided on two steps: Scanning and Parsing. -// -// The Scanner transforms the input stream into a sequence of tokens, while the -// parser transform the sequence of tokens produced by the Scanner into a -// sequence of parsing events. -// -// The Scanner is rather clever and complicated. The Parser, on the contrary, -// is a straightforward implementation of a recursive-descendant parser (or, -// LL(1) parser, as it is usually called). -// -// Actually there are two issues of Scanning that might be called "clever", the -// rest is quite straightforward. The issues are "block collection start" and -// "simple keys". Both issues are explained below in details. -// -// Here the Scanning step is explained and implemented. We start with the list -// of all the tokens produced by the Scanner together with short descriptions. -// -// Now, tokens: -// -// STREAM-START(encoding) # The stream start. -// STREAM-END # The stream end. -// VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. -// TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. -// DOCUMENT-START # '---' -// DOCUMENT-END # '...' -// BLOCK-SEQUENCE-START # Indentation increase denoting a block -// BLOCK-MAPPING-START # sequence or a block mapping. -// BLOCK-END # Indentation decrease. -// FLOW-SEQUENCE-START # '[' -// FLOW-SEQUENCE-END # ']' -// BLOCK-SEQUENCE-START # '{' -// BLOCK-SEQUENCE-END # '}' -// BLOCK-ENTRY # '-' -// FLOW-ENTRY # ',' -// KEY # '?' or nothing (simple keys). -// VALUE # ':' -// ALIAS(anchor) # '*anchor' -// ANCHOR(anchor) # '&anchor' -// TAG(handle,suffix) # '!handle!suffix' -// SCALAR(value,style) # A scalar. -// -// The following two tokens are "virtual" tokens denoting the beginning and the -// end of the stream: -// -// STREAM-START(encoding) -// STREAM-END -// -// We pass the information about the input stream encoding with the -// STREAM-START token. -// -// The next two tokens are responsible for tags: -// -// VERSION-DIRECTIVE(major,minor) -// TAG-DIRECTIVE(handle,prefix) -// -// Example: -// -// %YAML 1.1 -// %TAG ! !foo -// %TAG !yaml! tag:yaml.org,2002: -// --- -// -// The correspoding sequence of tokens: -// -// STREAM-START(utf-8) -// VERSION-DIRECTIVE(1,1) -// TAG-DIRECTIVE("!","!foo") -// TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") -// DOCUMENT-START -// STREAM-END -// -// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole -// line. -// -// The document start and end indicators are represented by: -// -// DOCUMENT-START -// DOCUMENT-END -// -// Note that if a YAML stream contains an implicit document (without '---' -// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be -// produced. -// -// In the following examples, we present whole documents together with the -// produced tokens. -// -// 1. An implicit document: -// -// 'a scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// STREAM-END -// -// 2. An explicit document: -// -// --- -// 'a scalar' -// ... -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// SCALAR("a scalar",single-quoted) -// DOCUMENT-END -// STREAM-END -// -// 3. Several documents in a stream: -// -// 'a scalar' -// --- -// 'another scalar' -// --- -// 'yet another scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// DOCUMENT-START -// SCALAR("another scalar",single-quoted) -// DOCUMENT-START -// SCALAR("yet another scalar",single-quoted) -// STREAM-END -// -// We have already introduced the SCALAR token above. The following tokens are -// used to describe aliases, anchors, tag, and scalars: -// -// ALIAS(anchor) -// ANCHOR(anchor) -// TAG(handle,suffix) -// SCALAR(value,style) -// -// The following series of examples illustrate the usage of these tokens: -// -// 1. A recursive sequence: -// -// &A [ *A ] -// -// Tokens: -// -// STREAM-START(utf-8) -// ANCHOR("A") -// FLOW-SEQUENCE-START -// ALIAS("A") -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A tagged scalar: -// -// !!float "3.14" # A good approximation. -// -// Tokens: -// -// STREAM-START(utf-8) -// TAG("!!","float") -// SCALAR("3.14",double-quoted) -// STREAM-END -// -// 3. Various scalar styles: -// -// --- # Implicit empty plain scalars do not produce tokens. -// --- a plain scalar -// --- 'a single-quoted scalar' -// --- "a double-quoted scalar" -// --- |- -// a literal scalar -// --- >- -// a folded -// scalar -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// DOCUMENT-START -// SCALAR("a plain scalar",plain) -// DOCUMENT-START -// SCALAR("a single-quoted scalar",single-quoted) -// DOCUMENT-START -// SCALAR("a double-quoted scalar",double-quoted) -// DOCUMENT-START -// SCALAR("a literal scalar",literal) -// DOCUMENT-START -// SCALAR("a folded scalar",folded) -// STREAM-END -// -// Now it's time to review collection-related tokens. We will start with -// flow collections: -// -// FLOW-SEQUENCE-START -// FLOW-SEQUENCE-END -// FLOW-MAPPING-START -// FLOW-MAPPING-END -// FLOW-ENTRY -// KEY -// VALUE -// -// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and -// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' -// correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the -// indicators '?' and ':', which are used for denoting mapping keys and values, -// are represented by the KEY and VALUE tokens. -// -// The following examples show flow collections: -// -// 1. A flow sequence: -// -// [item 1, item 2, item 3] -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-SEQUENCE-START -// SCALAR("item 1",plain) -// FLOW-ENTRY -// SCALAR("item 2",plain) -// FLOW-ENTRY -// SCALAR("item 3",plain) -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A flow mapping: -// -// { -// a simple key: a value, # Note that the KEY token is produced. -// ? a complex key: another value, -// } -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// FLOW-ENTRY -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// FLOW-ENTRY -// FLOW-MAPPING-END -// STREAM-END -// -// A simple key is a key which is not denoted by the '?' indicator. Note that -// the Scanner still produce the KEY token whenever it encounters a simple key. -// -// For scanning block collections, the following tokens are used (note that we -// repeat KEY and VALUE here): -// -// BLOCK-SEQUENCE-START -// BLOCK-MAPPING-START -// BLOCK-END -// BLOCK-ENTRY -// KEY -// VALUE -// -// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation -// increase that precedes a block collection (cf. the INDENT token in Python). -// The token BLOCK-END denote indentation decrease that ends a block collection -// (cf. the DEDENT token in Python). However YAML has some syntax pecularities -// that makes detections of these tokens more complex. -// -// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators -// '-', '?', and ':' correspondingly. -// -// The following examples show how the tokens BLOCK-SEQUENCE-START, -// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: -// -// 1. Block sequences: -// -// - item 1 -// - item 2 -// - -// - item 3.1 -// - item 3.2 -// - -// key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 3.1",plain) -// BLOCK-ENTRY -// SCALAR("item 3.2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Block mappings: -// -// a simple key: a value # The KEY token is produced here. -// ? a complex key -// : another value -// a mapping: -// key 1: value 1 -// key 2: value 2 -// a sequence: -// - item 1 -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// KEY -// SCALAR("a mapping",plain) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML does not always require to start a new block collection from a new -// line. If the current line contains only '-', '?', and ':' indicators, a new -// block collection may start at the current line. The following examples -// illustrate this case: -// -// 1. Collections in a sequence: -// -// - - item 1 -// - item 2 -// - key 1: value 1 -// key 2: value 2 -// - ? complex key -// : complex value -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("complex key") -// VALUE -// SCALAR("complex value") -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Collections in a mapping: -// -// ? a sequence -// : - item 1 -// - item 2 -// ? a mapping -// : key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// KEY -// SCALAR("a mapping",plain) -// VALUE -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML also permits non-indented sequences if they are included into a block -// mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: -// -// key: -// - item 1 # BLOCK-SEQUENCE-START is NOT produced here. -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key",plain) -// VALUE -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// - -// Ensure that the buffer contains the required number of characters. -// Return true on success, false on failure (reader error or memory error). -func cache(parser *yaml_parser_t, length int) bool { - // [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B) - return parser.unread >= length || yaml_parser_update_buffer(parser, length) -} - -// Advance the buffer pointer. -func skip(parser *yaml_parser_t) { - if !is_blank(parser.buffer, parser.buffer_pos) { - parser.newlines = 0 - } - parser.mark.index++ - parser.mark.column++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) -} - -func skip_line(parser *yaml_parser_t) { - if is_crlf(parser.buffer, parser.buffer_pos) { - parser.mark.index += 2 - parser.mark.column = 0 - parser.mark.line++ - parser.unread -= 2 - parser.buffer_pos += 2 - parser.newlines++ - } else if is_break(parser.buffer, parser.buffer_pos) { - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) - parser.newlines++ - } -} - -// Copy a character to a string buffer and advance pointers. -func read(parser *yaml_parser_t, s []byte) []byte { - if !is_blank(parser.buffer, parser.buffer_pos) { - parser.newlines = 0 - } - w := width(parser.buffer[parser.buffer_pos]) - if w == 0 { - panic("invalid character sequence") - } - if len(s) == 0 { - s = make([]byte, 0, 32) - } - if w == 1 && len(s)+w <= cap(s) { - s = s[:len(s)+1] - s[len(s)-1] = parser.buffer[parser.buffer_pos] - parser.buffer_pos++ - } else { - s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...) - parser.buffer_pos += w - } - parser.mark.index++ - parser.mark.column++ - parser.unread-- - return s -} - -// Copy a line break character to a string buffer and advance pointers. -func read_line(parser *yaml_parser_t, s []byte) []byte { - buf := parser.buffer - pos := parser.buffer_pos - switch { - case buf[pos] == '\r' && buf[pos+1] == '\n': - // CR LF . LF - s = append(s, '\n') - parser.buffer_pos += 2 - parser.mark.index++ - parser.unread-- - case buf[pos] == '\r' || buf[pos] == '\n': - // CR|LF . LF - s = append(s, '\n') - parser.buffer_pos += 1 - case buf[pos] == '\xC2' && buf[pos+1] == '\x85': - // NEL . LF - s = append(s, '\n') - parser.buffer_pos += 2 - case buf[pos] == '\xE2' && buf[pos+1] == '\x80' && (buf[pos+2] == '\xA8' || buf[pos+2] == '\xA9'): - // LS|PS . LS|PS - s = append(s, buf[parser.buffer_pos:pos+3]...) - parser.buffer_pos += 3 - default: - return s - } - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - parser.newlines++ - return s -} - -// Get the next token. -func yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool { - // Erase the token object. - *token = yaml_token_t{} // [Go] Is this necessary? - - // No tokens after STREAM-END or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR { - return true - } - - // Ensure that the tokens queue contains enough tokens. - if !parser.token_available { - if !yaml_parser_fetch_more_tokens(parser) { - return false - } - } - - // Fetch the next token from the queue. - *token = parser.tokens[parser.tokens_head] - parser.tokens_head++ - parser.tokens_parsed++ - parser.token_available = false - - if token.typ == yaml_STREAM_END_TOKEN { - parser.stream_end_produced = true - } - return true -} - -// Set the scanner error and return false. -func yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool { - parser.error = yaml_SCANNER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = parser.mark - return false -} - -func yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool { - context := "while parsing a tag" - if directive { - context = "while parsing a %TAG directive" - } - return yaml_parser_set_scanner_error(parser, context, context_mark, problem) -} - -func trace(args ...interface{}) func() { - pargs := append([]interface{}{"+++"}, args...) - fmt.Println(pargs...) - pargs = append([]interface{}{"---"}, args...) - return func() { fmt.Println(pargs...) } -} - -// Ensure that the tokens queue contains at least one token which can be -// returned to the Parser. -func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { - // While we need more tokens to fetch, do it. - for { - // [Go] The comment parsing logic requires a lookahead of two tokens - // so that foot comments may be parsed in time of associating them - // with the tokens that are parsed before them, and also for line - // comments to be transformed into head comments in some edge cases. - if parser.tokens_head < len(parser.tokens)-2 { - // If a potential simple key is at the head position, we need to fetch - // the next token to disambiguate it. - head_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed] - if !ok { - break - } else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok { - return false - } else if !valid { - break - } - } - // Fetch the next token. - if !yaml_parser_fetch_next_token(parser) { - return false - } - } - - parser.token_available = true - return true -} - -// The dispatcher for token fetchers. -func yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) { - // Ensure that the buffer is initialized. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we just started scanning. Fetch STREAM-START then. - if !parser.stream_start_produced { - return yaml_parser_fetch_stream_start(parser) - } - - scan_mark := parser.mark - - // Eat whitespaces and comments until we reach the next token. - if !yaml_parser_scan_to_next_token(parser) { - return false - } - - // [Go] While unrolling indents, transform the head comments of prior - // indentation levels observed after scan_start into foot comments at - // the respective indexes. - - // Check the indentation level against the current column. - if !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) { - return false - } - - // Ensure that the buffer contains at least 4 characters. 4 is the length - // of the longest indicators ('--- ' and '... '). - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - // Is it the end of the stream? - if is_z(parser.buffer, parser.buffer_pos) { - return yaml_parser_fetch_stream_end(parser) - } - - // Is it a directive? - if parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' { - return yaml_parser_fetch_directive(parser) - } - - buf := parser.buffer - pos := parser.buffer_pos - - // Is it the document start indicator? - if parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN) - } - - // Is it the document end indicator? - if parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) - } - - comment_mark := parser.mark - if len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') { - // Associate any following comments with the prior token. - comment_mark = parser.tokens[len(parser.tokens)-1].start_mark - } - defer func() { - if !ok { - return - } - if len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN { - // Sequence indicators alone have no line comments. It becomes - // a head comment for whatever follows. - return - } - if !yaml_parser_scan_line_comment(parser, comment_mark) { - ok = false - return - } - }() - - // Is it the flow sequence start indicator? - if buf[pos] == '[' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) - } - - // Is it the flow mapping start indicator? - if parser.buffer[parser.buffer_pos] == '{' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN) - } - - // Is it the flow sequence end indicator? - if parser.buffer[parser.buffer_pos] == ']' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_SEQUENCE_END_TOKEN) - } - - // Is it the flow mapping end indicator? - if parser.buffer[parser.buffer_pos] == '}' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_MAPPING_END_TOKEN) - } - - // Is it the flow entry indicator? - if parser.buffer[parser.buffer_pos] == ',' { - return yaml_parser_fetch_flow_entry(parser) - } - - // Is it the block entry indicator? - if parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) { - return yaml_parser_fetch_block_entry(parser) - } - - // Is it the key indicator? - if parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_key(parser) - } - - // Is it the value indicator? - if parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_value(parser) - } - - // Is it an alias? - if parser.buffer[parser.buffer_pos] == '*' { - return yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN) - } - - // Is it an anchor? - if parser.buffer[parser.buffer_pos] == '&' { - return yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN) - } - - // Is it a tag? - if parser.buffer[parser.buffer_pos] == '!' { - return yaml_parser_fetch_tag(parser) - } - - // Is it a literal scalar? - if parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, true) - } - - // Is it a folded scalar? - if parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, false) - } - - // Is it a single-quoted scalar? - if parser.buffer[parser.buffer_pos] == '\'' { - return yaml_parser_fetch_flow_scalar(parser, true) - } - - // Is it a double-quoted scalar? - if parser.buffer[parser.buffer_pos] == '"' { - return yaml_parser_fetch_flow_scalar(parser, false) - } - - // Is it a plain scalar? - // - // A plain scalar may start with any non-blank characters except - // - // '-', '?', ':', ',', '[', ']', '{', '}', - // '#', '&', '*', '!', '|', '>', '\'', '\"', - // '%', '@', '`'. - // - // In the block context (and, for the '-' indicator, in the flow context - // too), it may also start with the characters - // - // '-', '?', ':' - // - // if it is followed by a non-space character. - // - // The last rule is more restrictive than the specification requires. - // [Go] TODO Make this logic more reasonable. - //switch parser.buffer[parser.buffer_pos] { - //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': - //} - if !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' || - parser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '"' || parser.buffer[parser.buffer_pos] == '%' || - parser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') || - (parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level == 0 && - (parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') && - !is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_plain_scalar(parser) - } - - // If we don't determine the token type so far, it is an error. - return yaml_parser_set_scanner_error(parser, - "while scanning for the next token", parser.mark, - "found character that cannot start any token") -} - -func yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) { - if !simple_key.possible { - return false, true - } - - // The 1.2 specification says: - // - // "If the ? indicator is omitted, parsing needs to see past the - // implicit key to recognize it as such. To limit the amount of - // lookahead required, the “:” indicator must appear at most 1024 - // Unicode characters beyond the start of the key. In addition, the key - // is restricted to a single line." - // - if simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index { - // Check if the potential simple key to be removed is required. - if simple_key.required { - return false, yaml_parser_set_scanner_error(parser, - "while scanning a simple key", simple_key.mark, - "could not find expected ':'") - } - simple_key.possible = false - return false, true - } - return true, true -} - -// Check if a simple key may start at the current position and add it if -// needed. -func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { - // A simple key is required at the current position if the scanner is in - // the block context and the current column coincides with the indentation - // level. - - required := parser.flow_level == 0 && parser.indent == parser.mark.column - - // - // If the current position may start a simple key, save it. - // - if parser.simple_key_allowed { - simple_key := yaml_simple_key_t{ - possible: true, - required: required, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - mark: parser.mark, - } - - if !yaml_parser_remove_simple_key(parser) { - return false - } - parser.simple_keys[len(parser.simple_keys)-1] = simple_key - parser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1 - } - return true -} - -// Remove a potential simple key at the current flow level. -func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { - i := len(parser.simple_keys) - 1 - if parser.simple_keys[i].possible { - // If the key is required, it is an error. - if parser.simple_keys[i].required { - return yaml_parser_set_scanner_error(parser, - "while scanning a simple key", parser.simple_keys[i].mark, - "could not find expected ':'") - } - // Remove the key from the stack. - parser.simple_keys[i].possible = false - delete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number) - } - return true -} - -// max_flow_level limits the flow_level -const max_flow_level = 10000 - -// Increase the flow level and resize the simple key list if needed. -func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { - // Reset the simple key on the next level. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{ - possible: false, - required: false, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - mark: parser.mark, - }) - - // Increase the flow level. - parser.flow_level++ - if parser.flow_level > max_flow_level { - return yaml_parser_set_scanner_error(parser, - "while increasing flow level", parser.simple_keys[len(parser.simple_keys)-1].mark, - fmt.Sprintf("exceeded max depth of %d", max_flow_level)) - } - return true -} - -// Decrease the flow level. -func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { - if parser.flow_level > 0 { - parser.flow_level-- - last := len(parser.simple_keys) - 1 - delete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number) - parser.simple_keys = parser.simple_keys[:last] - } - return true -} - -// max_indents limits the indents stack size -const max_indents = 10000 - -// Push the current indentation level to the stack and set the new level -// the current column is greater than the indentation level. In this case, -// append or insert the specified token into the token queue. -func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - if parser.indent < column { - // Push the current indentation level to the stack and set the new - // indentation level. - parser.indents = append(parser.indents, parser.indent) - parser.indent = column - if len(parser.indents) > max_indents { - return yaml_parser_set_scanner_error(parser, - "while increasing indent level", parser.simple_keys[len(parser.simple_keys)-1].mark, - fmt.Sprintf("exceeded max depth of %d", max_indents)) - } - - // Create a token and insert it into the queue. - token := yaml_token_t{ - typ: typ, - start_mark: mark, - end_mark: mark, - } - if number > -1 { - number -= parser.tokens_parsed - } - yaml_insert_token(parser, number, &token) - } - return true -} - -// Pop indentation levels from the indents stack until the current level -// becomes less or equal to the column. For each indentation level, append -// the BLOCK-END token. -func yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - block_mark := scan_mark - block_mark.index-- - - // Loop through the indentation levels in the stack. - for parser.indent > column { - - // [Go] Reposition the end token before potential following - // foot comments of parent blocks. For that, search - // backwards for recent comments that were at the same - // indent as the block that is ending now. - stop_index := block_mark.index - for i := len(parser.comments) - 1; i >= 0; i-- { - comment := &parser.comments[i] - - if comment.end_mark.index < stop_index { - // Don't go back beyond the start of the comment/whitespace scan, unless column < 0. - // If requested indent column is < 0, then the document is over and everything else - // is a foot anyway. - break - } - if comment.start_mark.column == parser.indent+1 { - // This is a good match. But maybe there's a former comment - // at that same indent level, so keep searching. - block_mark = comment.start_mark - } - - // While the end of the former comment matches with - // the start of the following one, we know there's - // nothing in between and scanning is still safe. - stop_index = comment.scan_mark.index - } - - // Create a token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_END_TOKEN, - start_mark: block_mark, - end_mark: block_mark, - } - yaml_insert_token(parser, -1, &token) - - // Pop the indentation level. - parser.indent = parser.indents[len(parser.indents)-1] - parser.indents = parser.indents[:len(parser.indents)-1] - } - return true -} - -// Initialize the scanner and produce the STREAM-START token. -func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { - - // Set the initial indentation. - parser.indent = -1 - - // Initialize the simple key stack. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) - - parser.simple_keys_by_tok = make(map[int]int) - - // A simple key is allowed at the beginning of the stream. - parser.simple_key_allowed = true - - // We have started. - parser.stream_start_produced = true - - // Create the STREAM-START token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_START_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - encoding: parser.encoding, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the STREAM-END token and shut down the scanner. -func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { - - // Force new line. - if parser.mark.column != 0 { - parser.mark.column = 0 - parser.mark.line++ - } - - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the STREAM-END token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_END_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. -func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. - token := yaml_token_t{} - if !yaml_parser_scan_directive(parser, &token) { - return false - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the DOCUMENT-START or DOCUMENT-END token. -func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Consume the token. - start_mark := parser.mark - - skip(parser) - skip(parser) - skip(parser) - - end_mark := parser.mark - - // Create the DOCUMENT-START or DOCUMENT-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. -func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { - - // The indicators '[' and '{' may start a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // Increase the flow level. - if !yaml_parser_increase_flow_level(parser) { - return false - } - - // A simple key may follow the indicators '[' and '{'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. -func yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset any potential simple key on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Decrease the flow level. - if !yaml_parser_decrease_flow_level(parser) { - return false - } - - // No simple keys after the indicators ']' and '}'. - parser.simple_key_allowed = false - - // Consume the token. - - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-ENTRY token. -func yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool { - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after ','. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_FLOW_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the BLOCK-ENTRY token. -func yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool { - // Check if the scanner is in the block context. - if parser.flow_level == 0 { - // Check if we are allowed to start a new entry. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "block sequence entries are not allowed in this context") - } - // Add the BLOCK-SEQUENCE-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) { - return false - } - } else { - // It is an error for the '-' indicator to occur in the flow context, - // but we let the Parser detect and report about it because the Parser - // is able to point to the context. - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '-'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the BLOCK-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the KEY token. -func yaml_parser_fetch_key(parser *yaml_parser_t) bool { - - // In the block context, additional checks are required. - if parser.flow_level == 0 { - // Check if we are allowed to start a new key (not nessesary simple). - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping keys are not allowed in this context") - } - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '?' in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the KEY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the VALUE token. -func yaml_parser_fetch_value(parser *yaml_parser_t) bool { - - simple_key := &parser.simple_keys[len(parser.simple_keys)-1] - - // Have we found a simple key? - if valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok { - return false - - } else if valid { - - // Create the KEY token and insert it into the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: simple_key.mark, - end_mark: simple_key.mark, - } - yaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token) - - // In the block context, we may need to add the BLOCK-MAPPING-START token. - if !yaml_parser_roll_indent(parser, simple_key.mark.column, - simple_key.token_number, - yaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) { - return false - } - - // Remove the simple key. - simple_key.possible = false - delete(parser.simple_keys_by_tok, simple_key.token_number) - - // A simple key cannot follow another simple key. - parser.simple_key_allowed = false - - } else { - // The ':' indicator follows a complex key. - - // In the block context, extra checks are required. - if parser.flow_level == 0 { - - // Check if we are allowed to start a complex value. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping values are not allowed in this context") - } - - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Simple keys after ':' are allowed in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - } - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the VALUE token and append it to the queue. - token := yaml_token_t{ - typ: yaml_VALUE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the ALIAS or ANCHOR token. -func yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // An anchor or an alias could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow an anchor or an alias. - parser.simple_key_allowed = false - - // Create the ALIAS or ANCHOR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_anchor(parser, &token, typ) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the TAG token. -func yaml_parser_fetch_tag(parser *yaml_parser_t) bool { - // A tag could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a tag. - parser.simple_key_allowed = false - - // Create the TAG token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_tag(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. -func yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool { - // Remove any potential simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // A simple key may follow a block scalar. - parser.simple_key_allowed = true - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_block_scalar(parser, &token, literal) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. -func yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_flow_scalar(parser, &token, single) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,plain) token. -func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_plain_scalar(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Eat whitespaces and comments until the next token is found. -func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { - - scan_mark := parser.mark - - // Until the next token is not found. - for { - // Allow the BOM mark to start a line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) { - skip(parser) - } - - // Eat whitespaces. - // Tabs are allowed: - // - in the flow context - // - in the block context, but not at the beginning of the line or - // after '-', '?', or ':' (complex value). - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\t') { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if we just had a line comment under a sequence entry that - // looks more like a header to the following content. Similar to this: - // - // - # The comment - // - Some data - // - // If so, transform the line comment to a head comment and reposition. - if len(parser.comments) > 0 && len(parser.tokens) > 1 { - tokenA := parser.tokens[len(parser.tokens)-2] - tokenB := parser.tokens[len(parser.tokens)-1] - comment := &parser.comments[len(parser.comments)-1] - if tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) { - // If it was in the prior line, reposition so it becomes a - // header of the follow up token. Otherwise, keep it in place - // so it becomes a header of the former. - comment.head = comment.line - comment.line = nil - if comment.start_mark.line == parser.mark.line-1 { - comment.token_mark = parser.mark - } - } - } - - // Eat a comment until a line break. - if parser.buffer[parser.buffer_pos] == '#' { - if !yaml_parser_scan_comments(parser, scan_mark) { - return false - } - } - - // If it is a line break, eat it. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - - // In the block context, a new line may start a simple key. - if parser.flow_level == 0 { - parser.simple_key_allowed = true - } - } else { - break // We have found a token. - } - } - - return true -} - -// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// -func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool { - // Eat '%'. - start_mark := parser.mark - skip(parser) - - // Scan the directive name. - var name []byte - if !yaml_parser_scan_directive_name(parser, start_mark, &name) { - return false - } - - // Is it a YAML directive? - if bytes.Equal(name, []byte("YAML")) { - // Scan the VERSION directive value. - var major, minor int8 - if !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) { - return false - } - end_mark := parser.mark - - // Create a VERSION-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_VERSION_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - major: major, - minor: minor, - } - - // Is it a TAG directive? - } else if bytes.Equal(name, []byte("TAG")) { - // Scan the TAG directive value. - var handle, prefix []byte - if !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) { - return false - } - end_mark := parser.mark - - // Create a TAG-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_TAG_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - prefix: prefix, - } - - // Unknown directive. - } else { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unknown directive name") - return false - } - - // Eat the rest of the line including any comments. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - if parser.buffer[parser.buffer_pos] == '#' { - // [Go] Discard this inline comment for the time being. - //if !yaml_parser_scan_line_comment(parser, start_mark) { - // return false - //} - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - return true -} - -// Scan the directive name. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^ -// -func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool { - // Consume the directive name. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - var s []byte - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the name is empty. - if len(s) == 0 { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "could not find expected directive name") - return false - } - - // Check for an blank character after the name. - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unexpected non-alphabetical character") - return false - } - *name = s - return true -} - -// Scan the value of VERSION-DIRECTIVE. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^^^ -func yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool { - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the major version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, major) { - return false - } - - // Eat '.'. - if parser.buffer[parser.buffer_pos] != '.' { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected digit or '.' character") - } - - skip(parser) - - // Consume the minor version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, minor) { - return false - } - return true -} - -const max_number_length = 2 - -// Scan the version number of VERSION-DIRECTIVE. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^ -// %YAML 1.1 # a comment \n -// ^ -func yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool { - - // Repeat while the next character is digit. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var value, length int8 - for is_digit(parser.buffer, parser.buffer_pos) { - // Check if the number is too long. - length++ - if length > max_number_length { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "found extremely long version number") - } - value = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos)) - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the number was present. - if length == 0 { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected version number") - } - *number = value - return true -} - -// Scan the value of a TAG-DIRECTIVE token. -// -// Scope: -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// -func yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool { - var handle_value, prefix_value []byte - - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a handle. - if !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) { - return false - } - - // Expect a whitespace. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blank(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace") - return false - } - - // Eat whitespaces. - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a prefix. - if !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) { - return false - } - - // Expect a whitespace or line break. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace or line break") - return false - } - - *handle = handle_value - *prefix = prefix_value - return true -} - -func yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool { - var s []byte - - // Eat the indicator character. - start_mark := parser.mark - skip(parser) - - // Consume the value. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - end_mark := parser.mark - - /* - * Check if length of the anchor is greater than 0 and it is followed by - * a whitespace character or one of the indicators: - * - * '?', ':', ',', ']', '}', '%', '@', '`'. - */ - - if len(s) == 0 || - !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' || - parser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '`') { - context := "while scanning an alias" - if typ == yaml_ANCHOR_TOKEN { - context = "while scanning an anchor" - } - yaml_parser_set_scanner_error(parser, context, start_mark, - "did not find expected alphabetic or numeric character") - return false - } - - // Create a token. - *token = yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - value: s, - } - - return true -} - -/* - * Scan a TAG token. - */ - -func yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool { - var handle, suffix []byte - - start_mark := parser.mark - - // Check if the tag is in the canonical form. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - if parser.buffer[parser.buffer_pos+1] == '<' { - // Keep the handle as '' - - // Eat '!<' - skip(parser) - skip(parser) - - // Consume the tag value. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - - // Check for '>' and eat it. - if parser.buffer[parser.buffer_pos] != '>' { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find the expected '>'") - return false - } - - skip(parser) - } else { - // The tag has either the '!suffix' or the '!handle!suffix' form. - - // First, try to scan a handle. - if !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) { - return false - } - - // Check if it is, indeed, handle. - if handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' { - // Scan the suffix now. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - } else { - // It wasn't a handle after all. Scan the rest of the tag. - if !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) { - return false - } - - // Set the handle to '!'. - handle = []byte{'!'} - - // A special case: the '!' tag. Set the handle to '' and the - // suffix to '!'. - if len(suffix) == 0 { - handle, suffix = suffix, handle - } - } - } - - // Check the character which ends the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find expected whitespace or line break") - return false - } - - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_TAG_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - suffix: suffix, - } - return true -} - -// Scan a tag handle. -func yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool { - // Check the initial '!' character. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] != '!' { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - - var s []byte - - // Copy the '!' character. - s = read(parser, s) - - // Copy all subsequent alphabetical and numerical characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the trailing character is '!' and copy it. - if parser.buffer[parser.buffer_pos] == '!' { - s = read(parser, s) - } else { - // It's either the '!' tag or not really a tag handle. If it's a %TAG - // directive, it's an error. If it's a tag token, it must be a part of URI. - if directive && string(s) != "!" { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - } - - *handle = s - return true -} - -// Scan a tag. -func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool { - //size_t length = head ? strlen((char *)head) : 0 - var s []byte - hasTag := len(head) > 0 - - // Copy the head if needed. - // - // Note that we don't copy the leading '!' character. - if len(head) > 1 { - s = append(s, head[1:]...) - } - - // Scan the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // The set of characters that may appear in URI is as follows: - // - // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', - // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', - // '%'. - // [Go] TODO Convert this into more reasonable logic. - for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || - parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' || - parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' || - parser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' || - parser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' || - parser.buffer[parser.buffer_pos] == '%' { - // Check if it is a URI-escape sequence. - if parser.buffer[parser.buffer_pos] == '%' { - if !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) { - return false - } - } else { - s = read(parser, s) - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - hasTag = true - } - - if !hasTag { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected tag URI") - return false - } - *uri = s - return true -} - -// Decode an URI-escape sequence corresponding to a single UTF-8 character. -func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool { - - // Decode the required number of characters. - w := 1024 - for w > 0 { - // Check for a URI-escaped octet. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - - if !(parser.buffer[parser.buffer_pos] == '%' && - is_hex(parser.buffer, parser.buffer_pos+1) && - is_hex(parser.buffer, parser.buffer_pos+2)) { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find URI escaped octet") - } - - // Get the octet. - octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2)) - - // If it is the leading octet, determine the length of the UTF-8 sequence. - if w == 1024 { - w = width(octet) - if w == 0 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect leading UTF-8 octet") - } - } else { - // Check if the trailing octet is correct. - if octet&0xC0 != 0x80 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect trailing UTF-8 octet") - } - } - - // Copy the octet and move the pointers. - *s = append(*s, octet) - skip(parser) - skip(parser) - skip(parser) - w-- - } - return true -} - -// Scan a block scalar. -func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool { - // Eat the indicator '|' or '>'. - start_mark := parser.mark - skip(parser) - - // Scan the additional block scalar indicators. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check for a chomping indicator. - var chomping, increment int - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - // Set the chomping method and eat the indicator. - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - - // Check for an indentation indicator. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_digit(parser.buffer, parser.buffer_pos) { - // Check that the indentation is greater than 0. - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - - // Get the indentation level and eat the indicator. - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - } - - } else if is_digit(parser.buffer, parser.buffer_pos) { - // Do the same as above, but in the opposite order. - - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - } - } - - // Eat whitespaces and comments to the end of the line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.buffer[parser.buffer_pos] == '#' { - if !yaml_parser_scan_line_comment(parser, start_mark) { - return false - } - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - end_mark := parser.mark - - // Set the indentation level if it was specified. - var indent int - if increment > 0 { - if parser.indent >= 0 { - indent = parser.indent + increment - } else { - indent = increment - } - } - - // Scan the leading line breaks and determine the indentation level if needed. - var s, leading_break, trailing_breaks []byte - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - - // Scan the block scalar content. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var leading_blank, trailing_blank bool - for parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) { - // We are at the beginning of a non-empty line. - - // Is it a trailing whitespace? - trailing_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Check if we need to fold the leading line break. - if !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\n' { - // Do we need to join the lines by space? - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } - } else { - s = append(s, leading_break...) - } - leading_break = leading_break[:0] - - // Append the remaining line breaks. - s = append(s, trailing_breaks...) - trailing_breaks = trailing_breaks[:0] - - // Is it a leading whitespace? - leading_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Consume the current line. - for !is_breakz(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - leading_break = read_line(parser, leading_break) - - // Eat the following indentation spaces and line breaks. - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - } - - // Chomp the tail. - if chomping != -1 { - s = append(s, leading_break...) - } - if chomping == 1 { - s = append(s, trailing_breaks...) - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_LITERAL_SCALAR_STYLE, - } - if !literal { - token.style = yaml_FOLDED_SCALAR_STYLE - } - return true -} - -// Scan indentation spaces and line breaks for a block scalar. Determine the -// indentation level if needed. -func yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool { - *end_mark = parser.mark - - // Eat the indentation spaces and line breaks. - max_indent := 0 - for { - // Eat the indentation spaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.mark.column > max_indent { - max_indent = parser.mark.column - } - - // Check for a tab character messing the indentation. - if (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) { - return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found a tab character where an indentation space is expected") - } - - // Have we found a non-empty line? - if !is_break(parser.buffer, parser.buffer_pos) { - break - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - // [Go] Should really be returning breaks instead. - *breaks = read_line(parser, *breaks) - *end_mark = parser.mark - } - - // Determine the indentation level if needed. - if *indent == 0 { - *indent = max_indent - if *indent < parser.indent+1 { - *indent = parser.indent + 1 - } - if *indent < 1 { - *indent = 1 - } - } - return true -} - -// Scan a quoted scalar. -func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool { - // Eat the left quote. - start_mark := parser.mark - skip(parser) - - // Consume the content of the quoted scalar. - var s, leading_break, trailing_breaks, whitespaces []byte - for { - // Check that there are no document indicators at the beginning of the line. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected document indicator") - return false - } - - // Check for EOF. - if is_z(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected end of stream") - return false - } - - // Consume non-blank characters. - leading_blanks := false - for !is_blankz(parser.buffer, parser.buffer_pos) { - if single && parser.buffer[parser.buffer_pos] == '\'' && parser.buffer[parser.buffer_pos+1] == '\'' { - // Is is an escaped single quote. - s = append(s, '\'') - skip(parser) - skip(parser) - - } else if single && parser.buffer[parser.buffer_pos] == '\'' { - // It is a right single quote. - break - } else if !single && parser.buffer[parser.buffer_pos] == '"' { - // It is a right double quote. - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' && is_break(parser.buffer, parser.buffer_pos+1) { - // It is an escaped line break. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - skip(parser) - skip_line(parser) - leading_blanks = true - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' { - // It is an escape sequence. - code_length := 0 - - // Check the escape character. - switch parser.buffer[parser.buffer_pos+1] { - case '0': - s = append(s, 0) - case 'a': - s = append(s, '\x07') - case 'b': - s = append(s, '\x08') - case 't', '\t': - s = append(s, '\x09') - case 'n': - s = append(s, '\x0A') - case 'v': - s = append(s, '\x0B') - case 'f': - s = append(s, '\x0C') - case 'r': - s = append(s, '\x0D') - case 'e': - s = append(s, '\x1B') - case ' ': - s = append(s, '\x20') - case '"': - s = append(s, '"') - case '\'': - s = append(s, '\'') - case '\\': - s = append(s, '\\') - case 'N': // NEL (#x85) - s = append(s, '\xC2') - s = append(s, '\x85') - case '_': // #xA0 - s = append(s, '\xC2') - s = append(s, '\xA0') - case 'L': // LS (#x2028) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA8') - case 'P': // PS (#x2029) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA9') - case 'x': - code_length = 2 - case 'u': - code_length = 4 - case 'U': - code_length = 8 - default: - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found unknown escape character") - return false - } - - skip(parser) - skip(parser) - - // Consume an arbitrary escape code. - if code_length > 0 { - var value int - - // Scan the character value. - if parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) { - return false - } - for k := 0; k < code_length; k++ { - if !is_hex(parser.buffer, parser.buffer_pos+k) { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "did not find expected hexdecimal number") - return false - } - value = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k) - } - - // Check the value and write the character. - if (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found invalid Unicode character escape code") - return false - } - if value <= 0x7F { - s = append(s, byte(value)) - } else if value <= 0x7FF { - s = append(s, byte(0xC0+(value>>6))) - s = append(s, byte(0x80+(value&0x3F))) - } else if value <= 0xFFFF { - s = append(s, byte(0xE0+(value>>12))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } else { - s = append(s, byte(0xF0+(value>>18))) - s = append(s, byte(0x80+((value>>12)&0x3F))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } - - // Advance the pointer. - for k := 0; k < code_length; k++ { - skip(parser) - } - } - } else { - // It is a non-escaped non-blank character. - s = read(parser, s) - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we are at the end of the scalar. - if single { - if parser.buffer[parser.buffer_pos] == '\'' { - break - } - } else { - if parser.buffer[parser.buffer_pos] == '"' { - break - } - } - - // Consume blank characters. - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Join the whitespaces or fold line breaks. - if leading_blanks { - // Do we need to fold line breaks? - if len(leading_break) > 0 && leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Eat the right quote. - skip(parser) - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_SINGLE_QUOTED_SCALAR_STYLE, - } - if !single { - token.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - return true -} - -// Scan a plain scalar. -func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool { - - var s, leading_break, trailing_breaks, whitespaces []byte - var leading_blanks bool - var indent = parser.indent + 1 - - start_mark := parser.mark - end_mark := parser.mark - - // Consume the content of the plain scalar. - for { - // Check for a document indicator. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - break - } - - // Check for a comment. - if parser.buffer[parser.buffer_pos] == '#' { - break - } - - // Consume non-blank characters. - for !is_blankz(parser.buffer, parser.buffer_pos) { - - // Check for indicators that may end a plain scalar. - if (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level > 0 && - (parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}')) { - break - } - - // Check if we need to join whitespaces and breaks. - if leading_blanks || len(whitespaces) > 0 { - if leading_blanks { - // Do we need to fold line breaks? - if leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - leading_blanks = false - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Copy the character. - s = read(parser, s) - - end_mark = parser.mark - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - // Is it the end? - if !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) { - break - } - - // Consume blank characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - - // Check for tab characters that abuse indentation. - if leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", - start_mark, "found a tab character that violates indentation") - return false - } - - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check indentation level. - if parser.flow_level == 0 && parser.mark.column < indent { - break - } - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_PLAIN_SCALAR_STYLE, - } - - // Note that we change the 'simple_key_allowed' flag. - if leading_blanks { - parser.simple_key_allowed = true - } - return true -} - -func yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool { - if parser.newlines > 0 { - return true - } - - var start_mark yaml_mark_t - var text []byte - - for peek := 0; peek < 512; peek++ { - if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) { - break - } - if is_blank(parser.buffer, parser.buffer_pos+peek) { - continue - } - if parser.buffer[parser.buffer_pos+peek] == '#' { - seen := parser.mark.index+peek - for { - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_breakz(parser.buffer, parser.buffer_pos) { - if parser.mark.index >= seen { - break - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } else if parser.mark.index >= seen { - if len(text) == 0 { - start_mark = parser.mark - } - text = read(parser, text) - } else { - skip(parser) - } - } - } - break - } - if len(text) > 0 { - parser.comments = append(parser.comments, yaml_comment_t{ - token_mark: token_mark, - start_mark: start_mark, - line: text, - }) - } - return true -} - -func yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool { - token := parser.tokens[len(parser.tokens)-1] - - if token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 { - token = parser.tokens[len(parser.tokens)-2] - } - - var token_mark = token.start_mark - var start_mark yaml_mark_t - var next_indent = parser.indent - if next_indent < 0 { - next_indent = 0 - } - - var recent_empty = false - var first_empty = parser.newlines <= 1 - - var line = parser.mark.line - var column = parser.mark.column - - var text []byte - - // The foot line is the place where a comment must start to - // still be considered as a foot of the prior content. - // If there's some content in the currently parsed line, then - // the foot is the line below it. - var foot_line = -1 - if scan_mark.line > 0 { - foot_line = parser.mark.line-parser.newlines+1 - if parser.newlines == 0 && parser.mark.column > 1 { - foot_line++ - } - } - - var peek = 0 - for ; peek < 512; peek++ { - if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) { - break - } - column++ - if is_blank(parser.buffer, parser.buffer_pos+peek) { - continue - } - c := parser.buffer[parser.buffer_pos+peek] - var close_flow = parser.flow_level > 0 && (c == ']' || c == '}') - if close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) { - // Got line break or terminator. - if close_flow || !recent_empty { - if close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) { - // This is the first empty line and there were no empty lines before, - // so this initial part of the comment is a foot of the prior token - // instead of being a head for the following one. Split it up. - // Alternatively, this might also be the last comment inside a flow - // scope, so it must be a footer. - if len(text) > 0 { - if start_mark.column-1 < next_indent { - // If dedented it's unrelated to the prior token. - token_mark = start_mark - } - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: token_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek, line, column}, - foot: text, - }) - scan_mark = yaml_mark_t{parser.mark.index + peek, line, column} - token_mark = scan_mark - text = nil - } - } else { - if len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 { - text = append(text, '\n') - } - } - } - if !is_break(parser.buffer, parser.buffer_pos+peek) { - break - } - first_empty = false - recent_empty = true - column = 0 - line++ - continue - } - - if len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) { - // The comment at the different indentation is a foot of the - // preceding data rather than a head of the upcoming one. - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: token_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek, line, column}, - foot: text, - }) - scan_mark = yaml_mark_t{parser.mark.index + peek, line, column} - token_mark = scan_mark - text = nil - } - - if parser.buffer[parser.buffer_pos+peek] != '#' { - break - } - - if len(text) == 0 { - start_mark = yaml_mark_t{parser.mark.index + peek, line, column} - } else { - text = append(text, '\n') - } - - recent_empty = false - - // Consume until after the consumed comment line. - seen := parser.mark.index+peek - for { - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_breakz(parser.buffer, parser.buffer_pos) { - if parser.mark.index >= seen { - break - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } else if parser.mark.index >= seen { - text = read(parser, text) - } else { - skip(parser) - } - } - - peek = 0 - column = 0 - line = parser.mark.line - next_indent = parser.indent - if next_indent < 0 { - next_indent = 0 - } - } - - if len(text) > 0 { - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: start_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek - 1, line, column}, - head: text, - }) - } - return true -} diff --git a/example/vendor/gopkg.in/yaml.v3/sorter.go b/example/vendor/gopkg.in/yaml.v3/sorter.go deleted file mode 100644 index 9210ece..0000000 --- a/example/vendor/gopkg.in/yaml.v3/sorter.go +++ /dev/null @@ -1,134 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml - -import ( - "reflect" - "unicode" -) - -type keyList []reflect.Value - -func (l keyList) Len() int { return len(l) } -func (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } -func (l keyList) Less(i, j int) bool { - a := l[i] - b := l[j] - ak := a.Kind() - bk := b.Kind() - for (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() { - a = a.Elem() - ak = a.Kind() - } - for (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() { - b = b.Elem() - bk = b.Kind() - } - af, aok := keyFloat(a) - bf, bok := keyFloat(b) - if aok && bok { - if af != bf { - return af < bf - } - if ak != bk { - return ak < bk - } - return numLess(a, b) - } - if ak != reflect.String || bk != reflect.String { - return ak < bk - } - ar, br := []rune(a.String()), []rune(b.String()) - digits := false - for i := 0; i < len(ar) && i < len(br); i++ { - if ar[i] == br[i] { - digits = unicode.IsDigit(ar[i]) - continue - } - al := unicode.IsLetter(ar[i]) - bl := unicode.IsLetter(br[i]) - if al && bl { - return ar[i] < br[i] - } - if al || bl { - if digits { - return al - } else { - return bl - } - } - var ai, bi int - var an, bn int64 - if ar[i] == '0' || br[i] == '0' { - for j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- { - if ar[j] != '0' { - an = 1 - bn = 1 - break - } - } - } - for ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ { - an = an*10 + int64(ar[ai]-'0') - } - for bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ { - bn = bn*10 + int64(br[bi]-'0') - } - if an != bn { - return an < bn - } - if ai != bi { - return ai < bi - } - return ar[i] < br[i] - } - return len(ar) < len(br) -} - -// keyFloat returns a float value for v if it is a number/bool -// and whether it is a number/bool or not. -func keyFloat(v reflect.Value) (f float64, ok bool) { - switch v.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return float64(v.Int()), true - case reflect.Float32, reflect.Float64: - return v.Float(), true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return float64(v.Uint()), true - case reflect.Bool: - if v.Bool() { - return 1, true - } - return 0, true - } - return 0, false -} - -// numLess returns whether a < b. -// a and b must necessarily have the same kind. -func numLess(a, b reflect.Value) bool { - switch a.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return a.Int() < b.Int() - case reflect.Float32, reflect.Float64: - return a.Float() < b.Float() - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return a.Uint() < b.Uint() - case reflect.Bool: - return !a.Bool() && b.Bool() - } - panic("not a number") -} diff --git a/example/vendor/gopkg.in/yaml.v3/writerc.go b/example/vendor/gopkg.in/yaml.v3/writerc.go deleted file mode 100644 index b8a116b..0000000 --- a/example/vendor/gopkg.in/yaml.v3/writerc.go +++ /dev/null @@ -1,48 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -// Set the writer error and return false. -func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_WRITER_ERROR - emitter.problem = problem - return false -} - -// Flush the output buffer. -func yaml_emitter_flush(emitter *yaml_emitter_t) bool { - if emitter.write_handler == nil { - panic("write handler not set") - } - - // Check if the buffer is empty. - if emitter.buffer_pos == 0 { - return true - } - - if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { - return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) - } - emitter.buffer_pos = 0 - return true -} diff --git a/example/vendor/gopkg.in/yaml.v3/yaml.go b/example/vendor/gopkg.in/yaml.v3/yaml.go deleted file mode 100644 index 8cec6da..0000000 --- a/example/vendor/gopkg.in/yaml.v3/yaml.go +++ /dev/null @@ -1,698 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml implements YAML support for the Go language. -// -// Source code and other details for the project are available at GitHub: -// -// https://github.com/go-yaml/yaml -// -package yaml - -import ( - "errors" - "fmt" - "io" - "reflect" - "strings" - "sync" - "unicode/utf8" -) - -// The Unmarshaler interface may be implemented by types to customize their -// behavior when being unmarshaled from a YAML document. -type Unmarshaler interface { - UnmarshalYAML(value *Node) error -} - -type obsoleteUnmarshaler interface { - UnmarshalYAML(unmarshal func(interface{}) error) error -} - -// The Marshaler interface may be implemented by types to customize their -// behavior when being marshaled into a YAML document. The returned value -// is marshaled in place of the original value implementing Marshaler. -// -// If an error is returned by MarshalYAML, the marshaling procedure stops -// and returns with the provided error. -type Marshaler interface { - MarshalYAML() (interface{}, error) -} - -// Unmarshal decodes the first document found within the in byte slice -// and assigns decoded values into the out value. -// -// Maps and pointers (to a struct, string, int, etc) are accepted as out -// values. If an internal pointer within a struct is not initialized, -// the yaml package will initialize it if necessary for unmarshalling -// the provided data. The out parameter must not be nil. -// -// The type of the decoded values should be compatible with the respective -// values in out. If one or more values cannot be decoded due to a type -// mismatches, decoding continues partially until the end of the YAML -// content, and a *yaml.TypeError is returned with details for all -// missed values. -// -// Struct fields are only unmarshalled if they are exported (have an -// upper case first letter), and are unmarshalled using the field name -// lowercased as the default key. Custom keys may be defined via the -// "yaml" name in the field tag: the content preceding the first comma -// is used as the key, and the following comma-separated options are -// used to tweak the marshalling process (see Marshal). -// Conflicting names result in a runtime error. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// var t T -// yaml.Unmarshal([]byte("a: 1\nb: 2"), &t) -// -// See the documentation of Marshal for the format of tags and a list of -// supported tag options. -// -func Unmarshal(in []byte, out interface{}) (err error) { - return unmarshal(in, out, false) -} - -// A Decoder reads and decodes YAML values from an input stream. -type Decoder struct { - parser *parser - knownFields bool -} - -// NewDecoder returns a new decoder that reads from r. -// -// The decoder introduces its own buffering and may read -// data from r beyond the YAML values requested. -func NewDecoder(r io.Reader) *Decoder { - return &Decoder{ - parser: newParserFromReader(r), - } -} - -// KnownFields ensures that the keys in decoded mappings to -// exist as fields in the struct being decoded into. -func (dec *Decoder) KnownFields(enable bool) { - dec.knownFields = enable -} - -// Decode reads the next YAML-encoded value from its input -// and stores it in the value pointed to by v. -// -// See the documentation for Unmarshal for details about the -// conversion of YAML into a Go value. -func (dec *Decoder) Decode(v interface{}) (err error) { - d := newDecoder() - d.knownFields = dec.knownFields - defer handleErr(&err) - node := dec.parser.parse() - if node == nil { - return io.EOF - } - out := reflect.ValueOf(v) - if out.Kind() == reflect.Ptr && !out.IsNil() { - out = out.Elem() - } - d.unmarshal(node, out) - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -// Decode decodes the node and stores its data into the value pointed to by v. -// -// See the documentation for Unmarshal for details about the -// conversion of YAML into a Go value. -func (n *Node) Decode(v interface{}) (err error) { - d := newDecoder() - defer handleErr(&err) - out := reflect.ValueOf(v) - if out.Kind() == reflect.Ptr && !out.IsNil() { - out = out.Elem() - } - d.unmarshal(n, out) - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -func unmarshal(in []byte, out interface{}, strict bool) (err error) { - defer handleErr(&err) - d := newDecoder() - p := newParser(in) - defer p.destroy() - node := p.parse() - if node != nil { - v := reflect.ValueOf(out) - if v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - d.unmarshal(node, v) - } - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -// Marshal serializes the value provided into a YAML document. The structure -// of the generated document will reflect the structure of the value itself. -// Maps and pointers (to struct, string, int, etc) are accepted as the in value. -// -// Struct fields are only marshalled if they are exported (have an upper case -// first letter), and are marshalled using the field name lowercased as the -// default key. Custom keys may be defined via the "yaml" name in the field -// tag: the content preceding the first comma is used as the key, and the -// following comma-separated options are used to tweak the marshalling process. -// Conflicting names result in a runtime error. -// -// The field tag format accepted is: -// -// `(...) yaml:"[][,[,]]" (...)` -// -// The following flags are currently supported: -// -// omitempty Only include the field if it's not set to the zero -// value for the type or to empty slices or maps. -// Zero valued structs will be omitted if all their public -// fields are zero, unless they implement an IsZero -// method (see the IsZeroer interface type), in which -// case the field will be excluded if IsZero returns true. -// -// flow Marshal using a flow style (useful for structs, -// sequences and maps). -// -// inline Inline the field, which must be a struct or a map, -// causing all of its fields or keys to be processed as if -// they were part of the outer struct. For maps, keys must -// not conflict with the yaml keys of other struct fields. -// -// In addition, if the key is "-", the field is ignored. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// yaml.Marshal(&T{B: 2}) // Returns "b: 2\n" -// yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n" -// -func Marshal(in interface{}) (out []byte, err error) { - defer handleErr(&err) - e := newEncoder() - defer e.destroy() - e.marshalDoc("", reflect.ValueOf(in)) - e.finish() - out = e.out - return -} - -// An Encoder writes YAML values to an output stream. -type Encoder struct { - encoder *encoder -} - -// NewEncoder returns a new encoder that writes to w. -// The Encoder should be closed after use to flush all data -// to w. -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{ - encoder: newEncoderWithWriter(w), - } -} - -// Encode writes the YAML encoding of v to the stream. -// If multiple items are encoded to the stream, the -// second and subsequent document will be preceded -// with a "---" document separator, but the first will not. -// -// See the documentation for Marshal for details about the conversion of Go -// values to YAML. -func (e *Encoder) Encode(v interface{}) (err error) { - defer handleErr(&err) - e.encoder.marshalDoc("", reflect.ValueOf(v)) - return nil -} - -// Encode encodes value v and stores its representation in n. -// -// See the documentation for Marshal for details about the -// conversion of Go values into YAML. -func (n *Node) Encode(v interface{}) (err error) { - defer handleErr(&err) - e := newEncoder() - defer e.destroy() - e.marshalDoc("", reflect.ValueOf(v)) - e.finish() - p := newParser(e.out) - p.textless = true - defer p.destroy() - doc := p.parse() - *n = *doc.Content[0] - return nil -} - -// SetIndent changes the used indentation used when encoding. -func (e *Encoder) SetIndent(spaces int) { - if spaces < 0 { - panic("yaml: cannot indent to a negative number of spaces") - } - e.encoder.indent = spaces -} - -// Close closes the encoder by writing any remaining data. -// It does not write a stream terminating string "...". -func (e *Encoder) Close() (err error) { - defer handleErr(&err) - e.encoder.finish() - return nil -} - -func handleErr(err *error) { - if v := recover(); v != nil { - if e, ok := v.(yamlError); ok { - *err = e.err - } else { - panic(v) - } - } -} - -type yamlError struct { - err error -} - -func fail(err error) { - panic(yamlError{err}) -} - -func failf(format string, args ...interface{}) { - panic(yamlError{fmt.Errorf("yaml: "+format, args...)}) -} - -// A TypeError is returned by Unmarshal when one or more fields in -// the YAML document cannot be properly decoded into the requested -// types. When this error is returned, the value is still -// unmarshaled partially. -type TypeError struct { - Errors []string -} - -func (e *TypeError) Error() string { - return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) -} - -type Kind uint32 - -const ( - DocumentNode Kind = 1 << iota - SequenceNode - MappingNode - ScalarNode - AliasNode -) - -type Style uint32 - -const ( - TaggedStyle Style = 1 << iota - DoubleQuotedStyle - SingleQuotedStyle - LiteralStyle - FoldedStyle - FlowStyle -) - -// Node represents an element in the YAML document hierarchy. While documents -// are typically encoded and decoded into higher level types, such as structs -// and maps, Node is an intermediate representation that allows detailed -// control over the content being decoded or encoded. -// -// It's worth noting that although Node offers access into details such as -// line numbers, colums, and comments, the content when re-encoded will not -// have its original textual representation preserved. An effort is made to -// render the data plesantly, and to preserve comments near the data they -// describe, though. -// -// Values that make use of the Node type interact with the yaml package in the -// same way any other type would do, by encoding and decoding yaml data -// directly or indirectly into them. -// -// For example: -// -// var person struct { -// Name string -// Address yaml.Node -// } -// err := yaml.Unmarshal(data, &person) -// -// Or by itself: -// -// var person Node -// err := yaml.Unmarshal(data, &person) -// -type Node struct { - // Kind defines whether the node is a document, a mapping, a sequence, - // a scalar value, or an alias to another node. The specific data type of - // scalar nodes may be obtained via the ShortTag and LongTag methods. - Kind Kind - - // Style allows customizing the apperance of the node in the tree. - Style Style - - // Tag holds the YAML tag defining the data type for the value. - // When decoding, this field will always be set to the resolved tag, - // even when it wasn't explicitly provided in the YAML content. - // When encoding, if this field is unset the value type will be - // implied from the node properties, and if it is set, it will only - // be serialized into the representation if TaggedStyle is used or - // the implicit tag diverges from the provided one. - Tag string - - // Value holds the unescaped and unquoted represenation of the value. - Value string - - // Anchor holds the anchor name for this node, which allows aliases to point to it. - Anchor string - - // Alias holds the node that this alias points to. Only valid when Kind is AliasNode. - Alias *Node - - // Content holds contained nodes for documents, mappings, and sequences. - Content []*Node - - // HeadComment holds any comments in the lines preceding the node and - // not separated by an empty line. - HeadComment string - - // LineComment holds any comments at the end of the line where the node is in. - LineComment string - - // FootComment holds any comments following the node and before empty lines. - FootComment string - - // Line and Column hold the node position in the decoded YAML text. - // These fields are not respected when encoding the node. - Line int - Column int -} - -// IsZero returns whether the node has all of its fields unset. -func (n *Node) IsZero() bool { - return n.Kind == 0 && n.Style == 0 && n.Tag == "" && n.Value == "" && n.Anchor == "" && n.Alias == nil && n.Content == nil && - n.HeadComment == "" && n.LineComment == "" && n.FootComment == "" && n.Line == 0 && n.Column == 0 -} - - -// LongTag returns the long form of the tag that indicates the data type for -// the node. If the Tag field isn't explicitly defined, one will be computed -// based on the node properties. -func (n *Node) LongTag() string { - return longTag(n.ShortTag()) -} - -// ShortTag returns the short form of the YAML tag that indicates data type for -// the node. If the Tag field isn't explicitly defined, one will be computed -// based on the node properties. -func (n *Node) ShortTag() string { - if n.indicatedString() { - return strTag - } - if n.Tag == "" || n.Tag == "!" { - switch n.Kind { - case MappingNode: - return mapTag - case SequenceNode: - return seqTag - case AliasNode: - if n.Alias != nil { - return n.Alias.ShortTag() - } - case ScalarNode: - tag, _ := resolve("", n.Value) - return tag - case 0: - // Special case to make the zero value convenient. - if n.IsZero() { - return nullTag - } - } - return "" - } - return shortTag(n.Tag) -} - -func (n *Node) indicatedString() bool { - return n.Kind == ScalarNode && - (shortTag(n.Tag) == strTag || - (n.Tag == "" || n.Tag == "!") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0) -} - -// SetString is a convenience function that sets the node to a string value -// and defines its style in a pleasant way depending on its content. -func (n *Node) SetString(s string) { - n.Kind = ScalarNode - if utf8.ValidString(s) { - n.Value = s - n.Tag = strTag - } else { - n.Value = encodeBase64(s) - n.Tag = binaryTag - } - if strings.Contains(n.Value, "\n") { - n.Style = LiteralStyle - } -} - -// -------------------------------------------------------------------------- -// Maintain a mapping of keys to structure field indexes - -// The code in this section was copied from mgo/bson. - -// structInfo holds details for the serialization of fields of -// a given struct. -type structInfo struct { - FieldsMap map[string]fieldInfo - FieldsList []fieldInfo - - // InlineMap is the number of the field in the struct that - // contains an ,inline map, or -1 if there's none. - InlineMap int - - // InlineUnmarshalers holds indexes to inlined fields that - // contain unmarshaler values. - InlineUnmarshalers [][]int -} - -type fieldInfo struct { - Key string - Num int - OmitEmpty bool - Flow bool - // Id holds the unique field identifier, so we can cheaply - // check for field duplicates without maintaining an extra map. - Id int - - // Inline holds the field index if the field is part of an inlined struct. - Inline []int -} - -var structMap = make(map[reflect.Type]*structInfo) -var fieldMapMutex sync.RWMutex -var unmarshalerType reflect.Type - -func init() { - var v Unmarshaler - unmarshalerType = reflect.ValueOf(&v).Elem().Type() -} - -func getStructInfo(st reflect.Type) (*structInfo, error) { - fieldMapMutex.RLock() - sinfo, found := structMap[st] - fieldMapMutex.RUnlock() - if found { - return sinfo, nil - } - - n := st.NumField() - fieldsMap := make(map[string]fieldInfo) - fieldsList := make([]fieldInfo, 0, n) - inlineMap := -1 - inlineUnmarshalers := [][]int(nil) - for i := 0; i != n; i++ { - field := st.Field(i) - if field.PkgPath != "" && !field.Anonymous { - continue // Private field - } - - info := fieldInfo{Num: i} - - tag := field.Tag.Get("yaml") - if tag == "" && strings.Index(string(field.Tag), ":") < 0 { - tag = string(field.Tag) - } - if tag == "-" { - continue - } - - inline := false - fields := strings.Split(tag, ",") - if len(fields) > 1 { - for _, flag := range fields[1:] { - switch flag { - case "omitempty": - info.OmitEmpty = true - case "flow": - info.Flow = true - case "inline": - inline = true - default: - return nil, errors.New(fmt.Sprintf("unsupported flag %q in tag %q of type %s", flag, tag, st)) - } - } - tag = fields[0] - } - - if inline { - switch field.Type.Kind() { - case reflect.Map: - if inlineMap >= 0 { - return nil, errors.New("multiple ,inline maps in struct " + st.String()) - } - if field.Type.Key() != reflect.TypeOf("") { - return nil, errors.New("option ,inline needs a map with string keys in struct " + st.String()) - } - inlineMap = info.Num - case reflect.Struct, reflect.Ptr: - ftype := field.Type - for ftype.Kind() == reflect.Ptr { - ftype = ftype.Elem() - } - if ftype.Kind() != reflect.Struct { - return nil, errors.New("option ,inline may only be used on a struct or map field") - } - if reflect.PtrTo(ftype).Implements(unmarshalerType) { - inlineUnmarshalers = append(inlineUnmarshalers, []int{i}) - } else { - sinfo, err := getStructInfo(ftype) - if err != nil { - return nil, err - } - for _, index := range sinfo.InlineUnmarshalers { - inlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...)) - } - for _, finfo := range sinfo.FieldsList { - if _, found := fieldsMap[finfo.Key]; found { - msg := "duplicated key '" + finfo.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - if finfo.Inline == nil { - finfo.Inline = []int{i, finfo.Num} - } else { - finfo.Inline = append([]int{i}, finfo.Inline...) - } - finfo.Id = len(fieldsList) - fieldsMap[finfo.Key] = finfo - fieldsList = append(fieldsList, finfo) - } - } - default: - return nil, errors.New("option ,inline may only be used on a struct or map field") - } - continue - } - - if tag != "" { - info.Key = tag - } else { - info.Key = strings.ToLower(field.Name) - } - - if _, found = fieldsMap[info.Key]; found { - msg := "duplicated key '" + info.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - - info.Id = len(fieldsList) - fieldsList = append(fieldsList, info) - fieldsMap[info.Key] = info - } - - sinfo = &structInfo{ - FieldsMap: fieldsMap, - FieldsList: fieldsList, - InlineMap: inlineMap, - InlineUnmarshalers: inlineUnmarshalers, - } - - fieldMapMutex.Lock() - structMap[st] = sinfo - fieldMapMutex.Unlock() - return sinfo, nil -} - -// IsZeroer is used to check whether an object is zero to -// determine whether it should be omitted when marshaling -// with the omitempty flag. One notable implementation -// is time.Time. -type IsZeroer interface { - IsZero() bool -} - -func isZero(v reflect.Value) bool { - kind := v.Kind() - if z, ok := v.Interface().(IsZeroer); ok { - if (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() { - return true - } - return z.IsZero() - } - switch kind { - case reflect.String: - return len(v.String()) == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - case reflect.Slice: - return v.Len() == 0 - case reflect.Map: - return v.Len() == 0 - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Struct: - vt := v.Type() - for i := v.NumField() - 1; i >= 0; i-- { - if vt.Field(i).PkgPath != "" { - continue // Private field - } - if !isZero(v.Field(i)) { - return false - } - } - return true - } - return false -} diff --git a/example/vendor/gopkg.in/yaml.v3/yamlh.go b/example/vendor/gopkg.in/yaml.v3/yamlh.go deleted file mode 100644 index 7c6d007..0000000 --- a/example/vendor/gopkg.in/yaml.v3/yamlh.go +++ /dev/null @@ -1,807 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "fmt" - "io" -) - -// The version directive data. -type yaml_version_directive_t struct { - major int8 // The major version number. - minor int8 // The minor version number. -} - -// The tag directive data. -type yaml_tag_directive_t struct { - handle []byte // The tag handle. - prefix []byte // The tag prefix. -} - -type yaml_encoding_t int - -// The stream encoding. -const ( - // Let the parser choose the encoding. - yaml_ANY_ENCODING yaml_encoding_t = iota - - yaml_UTF8_ENCODING // The default UTF-8 encoding. - yaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM. - yaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM. -) - -type yaml_break_t int - -// Line break types. -const ( - // Let the parser choose the break type. - yaml_ANY_BREAK yaml_break_t = iota - - yaml_CR_BREAK // Use CR for line breaks (Mac style). - yaml_LN_BREAK // Use LN for line breaks (Unix style). - yaml_CRLN_BREAK // Use CR LN for line breaks (DOS style). -) - -type yaml_error_type_t int - -// Many bad things could happen with the parser and emitter. -const ( - // No error is produced. - yaml_NO_ERROR yaml_error_type_t = iota - - yaml_MEMORY_ERROR // Cannot allocate or reallocate a block of memory. - yaml_READER_ERROR // Cannot read or decode the input stream. - yaml_SCANNER_ERROR // Cannot scan the input stream. - yaml_PARSER_ERROR // Cannot parse the input stream. - yaml_COMPOSER_ERROR // Cannot compose a YAML document. - yaml_WRITER_ERROR // Cannot write to the output stream. - yaml_EMITTER_ERROR // Cannot emit a YAML stream. -) - -// The pointer position. -type yaml_mark_t struct { - index int // The position index. - line int // The position line. - column int // The position column. -} - -// Node Styles - -type yaml_style_t int8 - -type yaml_scalar_style_t yaml_style_t - -// Scalar styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0 - - yaml_PLAIN_SCALAR_STYLE yaml_scalar_style_t = 1 << iota // The plain scalar style. - yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. - yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. - yaml_LITERAL_SCALAR_STYLE // The literal scalar style. - yaml_FOLDED_SCALAR_STYLE // The folded scalar style. -) - -type yaml_sequence_style_t yaml_style_t - -// Sequence styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota - - yaml_BLOCK_SEQUENCE_STYLE // The block sequence style. - yaml_FLOW_SEQUENCE_STYLE // The flow sequence style. -) - -type yaml_mapping_style_t yaml_style_t - -// Mapping styles. -const ( - // Let the emitter choose the style. - yaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota - - yaml_BLOCK_MAPPING_STYLE // The block mapping style. - yaml_FLOW_MAPPING_STYLE // The flow mapping style. -) - -// Tokens - -type yaml_token_type_t int - -// Token types. -const ( - // An empty token. - yaml_NO_TOKEN yaml_token_type_t = iota - - yaml_STREAM_START_TOKEN // A STREAM-START token. - yaml_STREAM_END_TOKEN // A STREAM-END token. - - yaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token. - yaml_TAG_DIRECTIVE_TOKEN // A TAG-DIRECTIVE token. - yaml_DOCUMENT_START_TOKEN // A DOCUMENT-START token. - yaml_DOCUMENT_END_TOKEN // A DOCUMENT-END token. - - yaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token. - yaml_BLOCK_MAPPING_START_TOKEN // A BLOCK-SEQUENCE-END token. - yaml_BLOCK_END_TOKEN // A BLOCK-END token. - - yaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token. - yaml_FLOW_SEQUENCE_END_TOKEN // A FLOW-SEQUENCE-END token. - yaml_FLOW_MAPPING_START_TOKEN // A FLOW-MAPPING-START token. - yaml_FLOW_MAPPING_END_TOKEN // A FLOW-MAPPING-END token. - - yaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token. - yaml_FLOW_ENTRY_TOKEN // A FLOW-ENTRY token. - yaml_KEY_TOKEN // A KEY token. - yaml_VALUE_TOKEN // A VALUE token. - - yaml_ALIAS_TOKEN // An ALIAS token. - yaml_ANCHOR_TOKEN // An ANCHOR token. - yaml_TAG_TOKEN // A TAG token. - yaml_SCALAR_TOKEN // A SCALAR token. -) - -func (tt yaml_token_type_t) String() string { - switch tt { - case yaml_NO_TOKEN: - return "yaml_NO_TOKEN" - case yaml_STREAM_START_TOKEN: - return "yaml_STREAM_START_TOKEN" - case yaml_STREAM_END_TOKEN: - return "yaml_STREAM_END_TOKEN" - case yaml_VERSION_DIRECTIVE_TOKEN: - return "yaml_VERSION_DIRECTIVE_TOKEN" - case yaml_TAG_DIRECTIVE_TOKEN: - return "yaml_TAG_DIRECTIVE_TOKEN" - case yaml_DOCUMENT_START_TOKEN: - return "yaml_DOCUMENT_START_TOKEN" - case yaml_DOCUMENT_END_TOKEN: - return "yaml_DOCUMENT_END_TOKEN" - case yaml_BLOCK_SEQUENCE_START_TOKEN: - return "yaml_BLOCK_SEQUENCE_START_TOKEN" - case yaml_BLOCK_MAPPING_START_TOKEN: - return "yaml_BLOCK_MAPPING_START_TOKEN" - case yaml_BLOCK_END_TOKEN: - return "yaml_BLOCK_END_TOKEN" - case yaml_FLOW_SEQUENCE_START_TOKEN: - return "yaml_FLOW_SEQUENCE_START_TOKEN" - case yaml_FLOW_SEQUENCE_END_TOKEN: - return "yaml_FLOW_SEQUENCE_END_TOKEN" - case yaml_FLOW_MAPPING_START_TOKEN: - return "yaml_FLOW_MAPPING_START_TOKEN" - case yaml_FLOW_MAPPING_END_TOKEN: - return "yaml_FLOW_MAPPING_END_TOKEN" - case yaml_BLOCK_ENTRY_TOKEN: - return "yaml_BLOCK_ENTRY_TOKEN" - case yaml_FLOW_ENTRY_TOKEN: - return "yaml_FLOW_ENTRY_TOKEN" - case yaml_KEY_TOKEN: - return "yaml_KEY_TOKEN" - case yaml_VALUE_TOKEN: - return "yaml_VALUE_TOKEN" - case yaml_ALIAS_TOKEN: - return "yaml_ALIAS_TOKEN" - case yaml_ANCHOR_TOKEN: - return "yaml_ANCHOR_TOKEN" - case yaml_TAG_TOKEN: - return "yaml_TAG_TOKEN" - case yaml_SCALAR_TOKEN: - return "yaml_SCALAR_TOKEN" - } - return "" -} - -// The token structure. -type yaml_token_t struct { - // The token type. - typ yaml_token_type_t - - // The start/end of the token. - start_mark, end_mark yaml_mark_t - - // The stream encoding (for yaml_STREAM_START_TOKEN). - encoding yaml_encoding_t - - // The alias/anchor/scalar value or tag/tag directive handle - // (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN). - value []byte - - // The tag suffix (for yaml_TAG_TOKEN). - suffix []byte - - // The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN). - prefix []byte - - // The scalar style (for yaml_SCALAR_TOKEN). - style yaml_scalar_style_t - - // The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN). - major, minor int8 -} - -// Events - -type yaml_event_type_t int8 - -// Event types. -const ( - // An empty event. - yaml_NO_EVENT yaml_event_type_t = iota - - yaml_STREAM_START_EVENT // A STREAM-START event. - yaml_STREAM_END_EVENT // A STREAM-END event. - yaml_DOCUMENT_START_EVENT // A DOCUMENT-START event. - yaml_DOCUMENT_END_EVENT // A DOCUMENT-END event. - yaml_ALIAS_EVENT // An ALIAS event. - yaml_SCALAR_EVENT // A SCALAR event. - yaml_SEQUENCE_START_EVENT // A SEQUENCE-START event. - yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. - yaml_MAPPING_START_EVENT // A MAPPING-START event. - yaml_MAPPING_END_EVENT // A MAPPING-END event. - yaml_TAIL_COMMENT_EVENT -) - -var eventStrings = []string{ - yaml_NO_EVENT: "none", - yaml_STREAM_START_EVENT: "stream start", - yaml_STREAM_END_EVENT: "stream end", - yaml_DOCUMENT_START_EVENT: "document start", - yaml_DOCUMENT_END_EVENT: "document end", - yaml_ALIAS_EVENT: "alias", - yaml_SCALAR_EVENT: "scalar", - yaml_SEQUENCE_START_EVENT: "sequence start", - yaml_SEQUENCE_END_EVENT: "sequence end", - yaml_MAPPING_START_EVENT: "mapping start", - yaml_MAPPING_END_EVENT: "mapping end", - yaml_TAIL_COMMENT_EVENT: "tail comment", -} - -func (e yaml_event_type_t) String() string { - if e < 0 || int(e) >= len(eventStrings) { - return fmt.Sprintf("unknown event %d", e) - } - return eventStrings[e] -} - -// The event structure. -type yaml_event_t struct { - - // The event type. - typ yaml_event_type_t - - // The start and end of the event. - start_mark, end_mark yaml_mark_t - - // The document encoding (for yaml_STREAM_START_EVENT). - encoding yaml_encoding_t - - // The version directive (for yaml_DOCUMENT_START_EVENT). - version_directive *yaml_version_directive_t - - // The list of tag directives (for yaml_DOCUMENT_START_EVENT). - tag_directives []yaml_tag_directive_t - - // The comments - head_comment []byte - line_comment []byte - foot_comment []byte - tail_comment []byte - - // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). - anchor []byte - - // The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - tag []byte - - // The scalar value (for yaml_SCALAR_EVENT). - value []byte - - // Is the document start/end indicator implicit, or the tag optional? - // (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT). - implicit bool - - // Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT). - quoted_implicit bool - - // The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - style yaml_style_t -} - -func (e *yaml_event_t) scalar_style() yaml_scalar_style_t { return yaml_scalar_style_t(e.style) } -func (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) } -func (e *yaml_event_t) mapping_style() yaml_mapping_style_t { return yaml_mapping_style_t(e.style) } - -// Nodes - -const ( - yaml_NULL_TAG = "tag:yaml.org,2002:null" // The tag !!null with the only possible value: null. - yaml_BOOL_TAG = "tag:yaml.org,2002:bool" // The tag !!bool with the values: true and false. - yaml_STR_TAG = "tag:yaml.org,2002:str" // The tag !!str for string values. - yaml_INT_TAG = "tag:yaml.org,2002:int" // The tag !!int for integer values. - yaml_FLOAT_TAG = "tag:yaml.org,2002:float" // The tag !!float for float values. - yaml_TIMESTAMP_TAG = "tag:yaml.org,2002:timestamp" // The tag !!timestamp for date and time values. - - yaml_SEQ_TAG = "tag:yaml.org,2002:seq" // The tag !!seq is used to denote sequences. - yaml_MAP_TAG = "tag:yaml.org,2002:map" // The tag !!map is used to denote mapping. - - // Not in original libyaml. - yaml_BINARY_TAG = "tag:yaml.org,2002:binary" - yaml_MERGE_TAG = "tag:yaml.org,2002:merge" - - yaml_DEFAULT_SCALAR_TAG = yaml_STR_TAG // The default scalar tag is !!str. - yaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq. - yaml_DEFAULT_MAPPING_TAG = yaml_MAP_TAG // The default mapping tag is !!map. -) - -type yaml_node_type_t int - -// Node types. -const ( - // An empty node. - yaml_NO_NODE yaml_node_type_t = iota - - yaml_SCALAR_NODE // A scalar node. - yaml_SEQUENCE_NODE // A sequence node. - yaml_MAPPING_NODE // A mapping node. -) - -// An element of a sequence node. -type yaml_node_item_t int - -// An element of a mapping node. -type yaml_node_pair_t struct { - key int // The key of the element. - value int // The value of the element. -} - -// The node structure. -type yaml_node_t struct { - typ yaml_node_type_t // The node type. - tag []byte // The node tag. - - // The node data. - - // The scalar parameters (for yaml_SCALAR_NODE). - scalar struct { - value []byte // The scalar value. - length int // The length of the scalar value. - style yaml_scalar_style_t // The scalar style. - } - - // The sequence parameters (for YAML_SEQUENCE_NODE). - sequence struct { - items_data []yaml_node_item_t // The stack of sequence items. - style yaml_sequence_style_t // The sequence style. - } - - // The mapping parameters (for yaml_MAPPING_NODE). - mapping struct { - pairs_data []yaml_node_pair_t // The stack of mapping pairs (key, value). - pairs_start *yaml_node_pair_t // The beginning of the stack. - pairs_end *yaml_node_pair_t // The end of the stack. - pairs_top *yaml_node_pair_t // The top of the stack. - style yaml_mapping_style_t // The mapping style. - } - - start_mark yaml_mark_t // The beginning of the node. - end_mark yaml_mark_t // The end of the node. - -} - -// The document structure. -type yaml_document_t struct { - - // The document nodes. - nodes []yaml_node_t - - // The version directive. - version_directive *yaml_version_directive_t - - // The list of tag directives. - tag_directives_data []yaml_tag_directive_t - tag_directives_start int // The beginning of the tag directives list. - tag_directives_end int // The end of the tag directives list. - - start_implicit int // Is the document start indicator implicit? - end_implicit int // Is the document end indicator implicit? - - // The start/end of the document. - start_mark, end_mark yaml_mark_t -} - -// The prototype of a read handler. -// -// The read handler is called when the parser needs to read more bytes from the -// source. The handler should write not more than size bytes to the buffer. -// The number of written bytes should be set to the size_read variable. -// -// [in,out] data A pointer to an application data specified by -// yaml_parser_set_input(). -// [out] buffer The buffer to write the data from the source. -// [in] size The size of the buffer. -// [out] size_read The actual number of bytes read from the source. -// -// On success, the handler should return 1. If the handler failed, -// the returned value should be 0. On EOF, the handler should set the -// size_read to 0 and return 1. -type yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error) - -// This structure holds information about a potential simple key. -type yaml_simple_key_t struct { - possible bool // Is a simple key possible? - required bool // Is a simple key required? - token_number int // The number of the token. - mark yaml_mark_t // The position mark. -} - -// The states of the parser. -type yaml_parser_state_t int - -const ( - yaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota - - yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE // Expect the beginning of an implicit document. - yaml_PARSE_DOCUMENT_START_STATE // Expect DOCUMENT-START. - yaml_PARSE_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_PARSE_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_PARSE_BLOCK_NODE_STATE // Expect a block node. - yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence. - yaml_PARSE_FLOW_NODE_STATE // Expect a flow node. - yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a block sequence. - yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE // Expect an entry of a block sequence. - yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE // Expect an entry of an indentless sequence. - yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_PARSE_BLOCK_MAPPING_KEY_STATE // Expect a block mapping key. - yaml_PARSE_BLOCK_MAPPING_VALUE_STATE // Expect a block mapping value. - yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE // Expect an entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE // Expect a key of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE // Expect the and of an ordered mapping entry. - yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE // Expect an empty value of a flow mapping. - yaml_PARSE_END_STATE // Expect nothing. -) - -func (ps yaml_parser_state_t) String() string { - switch ps { - case yaml_PARSE_STREAM_START_STATE: - return "yaml_PARSE_STREAM_START_STATE" - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return "yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_START_STATE: - return "yaml_PARSE_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return "yaml_PARSE_DOCUMENT_CONTENT_STATE" - case yaml_PARSE_DOCUMENT_END_STATE: - return "yaml_PARSE_DOCUMENT_END_STATE" - case yaml_PARSE_BLOCK_NODE_STATE: - return "yaml_PARSE_BLOCK_NODE_STATE" - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return "yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE" - case yaml_PARSE_FLOW_NODE_STATE: - return "yaml_PARSE_FLOW_NODE_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return "yaml_PARSE_BLOCK_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE" - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE" - case yaml_PARSE_END_STATE: - return "yaml_PARSE_END_STATE" - } - return "" -} - -// This structure holds aliases data. -type yaml_alias_data_t struct { - anchor []byte // The anchor. - index int // The node id. - mark yaml_mark_t // The anchor mark. -} - -// The parser structure. -// -// All members are internal. Manage the structure using the -// yaml_parser_ family of functions. -type yaml_parser_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - - problem string // Error description. - - // The byte about which the problem occurred. - problem_offset int - problem_value int - problem_mark yaml_mark_t - - // The error context. - context string - context_mark yaml_mark_t - - // Reader stuff - - read_handler yaml_read_handler_t // Read handler. - - input_reader io.Reader // File input data. - input []byte // String input data. - input_pos int - - eof bool // EOF flag - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - unread int // The number of unread characters in the buffer. - - newlines int // The number of line breaks since last non-break/non-blank character - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The input encoding. - - offset int // The offset of the current position (in bytes). - mark yaml_mark_t // The mark of the current position. - - // Comments - - head_comment []byte // The current head comments - line_comment []byte // The current line comments - foot_comment []byte // The current foot comments - tail_comment []byte // Foot comment that happens at the end of a block. - stem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc) - - comments []yaml_comment_t // The folded comments for all parsed tokens - comments_head int - - // Scanner stuff - - stream_start_produced bool // Have we started to scan the input stream? - stream_end_produced bool // Have we reached the end of the input stream? - - flow_level int // The number of unclosed '[' and '{' indicators. - - tokens []yaml_token_t // The tokens queue. - tokens_head int // The head of the tokens queue. - tokens_parsed int // The number of tokens fetched from the queue. - token_available bool // Does the tokens queue contain a token ready for dequeueing. - - indent int // The current indentation level. - indents []int // The indentation levels stack. - - simple_key_allowed bool // May a simple key occur at the current position? - simple_keys []yaml_simple_key_t // The stack of simple keys. - simple_keys_by_tok map[int]int // possible simple_key indexes indexed by token_number - - // Parser stuff - - state yaml_parser_state_t // The current parser state. - states []yaml_parser_state_t // The parser states stack. - marks []yaml_mark_t // The stack of marks. - tag_directives []yaml_tag_directive_t // The list of TAG directives. - - // Dumper stuff - - aliases []yaml_alias_data_t // The alias data. - - document *yaml_document_t // The currently parsed document. -} - -type yaml_comment_t struct { - - scan_mark yaml_mark_t // Position where scanning for comments started - token_mark yaml_mark_t // Position after which tokens will be associated with this comment - start_mark yaml_mark_t // Position of '#' comment mark - end_mark yaml_mark_t // Position where comment terminated - - head []byte - line []byte - foot []byte -} - -// Emitter Definitions - -// The prototype of a write handler. -// -// The write handler is called when the emitter needs to flush the accumulated -// characters to the output. The handler should write @a size bytes of the -// @a buffer to the output. -// -// @param[in,out] data A pointer to an application data specified by -// yaml_emitter_set_output(). -// @param[in] buffer The buffer with bytes to be written. -// @param[in] size The size of the buffer. -// -// @returns On success, the handler should return @c 1. If the handler failed, -// the returned value should be @c 0. -// -type yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error - -type yaml_emitter_state_t int - -// The emitter states. -const ( - // Expect STREAM-START. - yaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota - - yaml_EMIT_FIRST_DOCUMENT_START_STATE // Expect the first DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_START_STATE // Expect DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. - yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE // Expect the next item of a flow sequence, with the comma already written out - yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. - yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE // Expect the next key of a flow mapping, with the comma already written out - yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a block sequence. - yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE // Expect an item of a block sequence. - yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_KEY_STATE // Expect the key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_VALUE_STATE // Expect a value of a block mapping. - yaml_EMIT_END_STATE // Expect nothing. -) - -// The emitter structure. -// -// All members are internal. Manage the structure using the @c yaml_emitter_ -// family of functions. -type yaml_emitter_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - problem string // Error description. - - // Writer stuff - - write_handler yaml_write_handler_t // Write handler. - - output_buffer *[]byte // String output data. - output_writer io.Writer // File output data. - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The stream encoding. - - // Emitter stuff - - canonical bool // If the output is in the canonical style? - best_indent int // The number of indentation spaces. - best_width int // The preferred width of the output lines. - unicode bool // Allow unescaped non-ASCII characters? - line_break yaml_break_t // The preferred line break. - - state yaml_emitter_state_t // The current emitter state. - states []yaml_emitter_state_t // The stack of states. - - events []yaml_event_t // The event queue. - events_head int // The head of the event queue. - - indents []int // The stack of indentation levels. - - tag_directives []yaml_tag_directive_t // The list of tag directives. - - indent int // The current indentation level. - - flow_level int // The current flow level. - - root_context bool // Is it the document root context? - sequence_context bool // Is it a sequence context? - mapping_context bool // Is it a mapping context? - simple_key_context bool // Is it a simple mapping key context? - - line int // The current line. - column int // The current column. - whitespace bool // If the last character was a whitespace? - indention bool // If the last character was an indentation character (' ', '-', '?', ':')? - open_ended bool // If an explicit document end is required? - - space_above bool // Is there's an empty line above? - foot_indent int // The indent used to write the foot comment above, or -1 if none. - - // Anchor analysis. - anchor_data struct { - anchor []byte // The anchor value. - alias bool // Is it an alias? - } - - // Tag analysis. - tag_data struct { - handle []byte // The tag handle. - suffix []byte // The tag suffix. - } - - // Scalar analysis. - scalar_data struct { - value []byte // The scalar value. - multiline bool // Does the scalar contain line breaks? - flow_plain_allowed bool // Can the scalar be expessed in the flow plain style? - block_plain_allowed bool // Can the scalar be expressed in the block plain style? - single_quoted_allowed bool // Can the scalar be expressed in the single quoted style? - block_allowed bool // Can the scalar be expressed in the literal or folded styles? - style yaml_scalar_style_t // The output style. - } - - // Comments - head_comment []byte - line_comment []byte - foot_comment []byte - tail_comment []byte - - key_line_comment []byte - - // Dumper stuff - - opened bool // If the stream was already opened? - closed bool // If the stream was already closed? - - // The information associated with the document nodes. - anchors *struct { - references int // The number of references. - anchor int // The anchor id. - serialized bool // If the node has been emitted? - } - - last_anchor_id int // The last assigned anchor id. - - document *yaml_document_t // The currently emitted document. -} diff --git a/example/vendor/gopkg.in/yaml.v3/yamlprivateh.go b/example/vendor/gopkg.in/yaml.v3/yamlprivateh.go deleted file mode 100644 index e88f9c5..0000000 --- a/example/vendor/gopkg.in/yaml.v3/yamlprivateh.go +++ /dev/null @@ -1,198 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -const ( - // The size of the input raw buffer. - input_raw_buffer_size = 512 - - // The size of the input buffer. - // It should be possible to decode the whole raw buffer. - input_buffer_size = input_raw_buffer_size * 3 - - // The size of the output buffer. - output_buffer_size = 128 - - // The size of the output raw buffer. - // It should be possible to encode the whole output buffer. - output_raw_buffer_size = (output_buffer_size*2 + 2) - - // The size of other stacks and queues. - initial_stack_size = 16 - initial_queue_size = 16 - initial_string_size = 16 -) - -// Check if the character at the specified position is an alphabetical -// character, a digit, '_', or '-'. -func is_alpha(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-' -} - -// Check if the character at the specified position is a digit. -func is_digit(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' -} - -// Get the value of a digit. -func as_digit(b []byte, i int) int { - return int(b[i]) - '0' -} - -// Check if the character at the specified position is a hex-digit. -func is_hex(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f' -} - -// Get the value of a hex-digit. -func as_hex(b []byte, i int) int { - bi := b[i] - if bi >= 'A' && bi <= 'F' { - return int(bi) - 'A' + 10 - } - if bi >= 'a' && bi <= 'f' { - return int(bi) - 'a' + 10 - } - return int(bi) - '0' -} - -// Check if the character is ASCII. -func is_ascii(b []byte, i int) bool { - return b[i] <= 0x7F -} - -// Check if the character at the start of the buffer can be printed unescaped. -func is_printable(b []byte, i int) bool { - return ((b[i] == 0x0A) || // . == #x0A - (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E - (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF - (b[i] > 0xC2 && b[i] < 0xED) || - (b[i] == 0xED && b[i+1] < 0xA0) || - (b[i] == 0xEE) || - (b[i] == 0xEF && // #xE000 <= . <= #xFFFD - !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF - !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF)))) -} - -// Check if the character at the specified position is NUL. -func is_z(b []byte, i int) bool { - return b[i] == 0x00 -} - -// Check if the beginning of the buffer is a BOM. -func is_bom(b []byte, i int) bool { - return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF -} - -// Check if the character at the specified position is space. -func is_space(b []byte, i int) bool { - return b[i] == ' ' -} - -// Check if the character at the specified position is tab. -func is_tab(b []byte, i int) bool { - return b[i] == '\t' -} - -// Check if the character at the specified position is blank (space or tab). -func is_blank(b []byte, i int) bool { - //return is_space(b, i) || is_tab(b, i) - return b[i] == ' ' || b[i] == '\t' -} - -// Check if the character at the specified position is a line break. -func is_break(b []byte, i int) bool { - return (b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029) -} - -func is_crlf(b []byte, i int) bool { - return b[i] == '\r' && b[i+1] == '\n' -} - -// Check if the character is a line break or NUL. -func is_breakz(b []byte, i int) bool { - //return is_break(b, i) || is_z(b, i) - return ( - // is_break: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - // is_z: - b[i] == 0) -} - -// Check if the character is a line break, space, or NUL. -func is_spacez(b []byte, i int) bool { - //return is_space(b, i) || is_breakz(b, i) - return ( - // is_space: - b[i] == ' ' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Check if the character is a line break, space, tab, or NUL. -func is_blankz(b []byte, i int) bool { - //return is_blank(b, i) || is_breakz(b, i) - return ( - // is_blank: - b[i] == ' ' || b[i] == '\t' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Determine the width of the character. -func width(b byte) int { - // Don't replace these by a switch without first - // confirming that it is being inlined. - if b&0x80 == 0x00 { - return 1 - } - if b&0xE0 == 0xC0 { - return 2 - } - if b&0xF0 == 0xE0 { - return 3 - } - if b&0xF8 == 0xF0 { - return 4 - } - return 0 - -} diff --git a/example/vendor/modules.txt b/example/vendor/modules.txt deleted file mode 100644 index 1bb2d0a..0000000 --- a/example/vendor/modules.txt +++ /dev/null @@ -1,56 +0,0 @@ -# github.com/alecthomas/participle/v2 v2.1.4 => ../../participle -## explicit; go 1.18 -github.com/alecthomas/participle/v2 -github.com/alecthomas/participle/v2/lexer -# github.com/neo4j/neo4j-go-driver/v5 v5.28.4 -## explicit; go 1.18 -github.com/neo4j/neo4j-go-driver/v5/neo4j -github.com/neo4j/neo4j-go-driver/v5/neo4j/auth -github.com/neo4j/neo4j-go-driver/v5/neo4j/config -github.com/neo4j/neo4j-go-driver/v5/neo4j/db -github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time -github.com/neo4j/neo4j-go-driver/v5/neo4j/log -github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications -# github.com/oklog/ulid/v2 v2.1.0 -## explicit; go 1.15 -github.com/oklog/ulid/v2 -# github.com/rlch/neogo v0.0.0 => ../../neogo -## explicit; go 1.24.0 -github.com/rlch/neogo -github.com/rlch/neogo/internal -github.com/rlch/neogo/internal/codec -# github.com/rlch/scaf v0.0.0 => .. -## explicit; go 1.25.1 -github.com/rlch/scaf -github.com/rlch/scaf/adapters/neogo -github.com/rlch/scaf/analysis -github.com/rlch/scaf/language -github.com/rlch/scaf/language/go -github.com/rlch/scaf/module -# golang.org/x/sync v0.16.0 -## explicit; go 1.23.0 -golang.org/x/sync/semaphore -# gopkg.in/yaml.v3 v3.0.1 -## explicit -gopkg.in/yaml.v3 -# github.com/rlch/neogo => ../../neogo -# github.com/rlch/scaf => .. -# github.com/alecthomas/participle/v2 => ../../participle diff --git a/format_test.go b/format_test.go index 989b376..ba051d4 100644 --- a/format_test.go +++ b/format_test.go @@ -47,7 +47,7 @@ fn B() ` + "`B`" + ` name: "query with global setup", suite: &scaf.Suite{ Functions: []*scaf.Query{{Name: "Q", Body: "Q"}}, - Setup: inlineSetup("CREATE (:User)"), + Setup: inlineSetup("CREATE (:User)"), }, expected: `fn Q() ` + "`Q`" + ` @@ -82,7 +82,7 @@ GetUser { Scopes: []*scaf.QueryScope{ { FunctionName: "Q", - Setup: inlineSetup("SCOPE SETUP"), + Setup: inlineSetup("SCOPE SETUP"), Items: []*scaf.TestOrGroup{ {Test: &scaf.Test{Name: "t"}}, }, @@ -418,7 +418,7 @@ Q { Scopes: []*scaf.QueryScope{ { FunctionName: "Q", - Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, + Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, }, }, }, @@ -687,7 +687,7 @@ func TestFormatPreservesSemantics(t *testing.T) { Scopes: []*scaf.QueryScope{ { FunctionName: "GetUser", - Setup: inlineSetup("MATCH (u:User) SET u.active = true"), + Setup: inlineSetup("MATCH (u:User) SET u.active = true"), Items: []*scaf.TestOrGroup{ { Group: &scaf.Group{ diff --git a/go.mod b/go.mod index 6098175..cbf7954 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/google/go-cmp v0.7.0 github.com/mattn/go-isatty v0.0.20 github.com/neo4j/neo4j-go-driver/v5 v5.28.4 - github.com/rlch/neogo v0.0.0 + github.com/rlch/neogo v0.0.0-20251222040623-d3268222ee8e github.com/stretchr/testify v1.11.1 github.com/urfave/cli/v3 v3.6.1 go.lsp.dev/jsonrpc2 v0.10.0 @@ -20,21 +20,20 @@ require ( gopkg.in/yaml.v3 v3.0.1 ) -replace github.com/rlch/neogo => ../neogo - -replace github.com/alecthomas/participle/v2 => ../participle - require ( github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect - github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect - github.com/charmbracelet/x/ansi v0.10.1 // indirect - github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect - github.com/charmbracelet/x/term v0.2.1 // indirect + github.com/charmbracelet/colorprofile v0.3.3 // indirect + github.com/charmbracelet/x/ansi v0.11.3 // indirect + github.com/charmbracelet/x/cellbuf v0.0.14 // indirect + github.com/charmbracelet/x/term v0.2.2 // indirect + github.com/clipperhouse/displaywidth v0.6.1 // indirect + github.com/clipperhouse/stringish v0.1.1 // indirect + github.com/clipperhouse/uax29/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect - github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/lucasb-eyer/go-colorful v1.3.0 // indirect github.com/mattn/go-localereader v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/mattn/go-runewidth v0.0.19 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/termenv v0.16.0 // indirect @@ -51,3 +50,5 @@ require ( golang.org/x/sys v0.37.0 // indirect golang.org/x/text v0.25.0 // indirect ) + +replace github.com/alecthomas/participle/v2 => github.com/rlch/participle/v2 v2.1.5-0.20251126160008-edf31da19af2 diff --git a/go.sum b/go.sum index d1b7335..3de9937 100644 --- a/go.sum +++ b/go.sum @@ -16,16 +16,22 @@ github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4= -github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= -github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk= +github.com/charmbracelet/colorprofile v0.3.3 h1:DjJzJtLP6/NZ8p7Cgjno0CKGr7wwRJGxWUwh2IyhfAI= +github.com/charmbracelet/colorprofile v0.3.3/go.mod h1:nB1FugsAbzq284eJcjfah2nhdSLppN2NqvfotkfRYP4= github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= -github.com/charmbracelet/x/ansi v0.10.1 h1:rL3Koar5XvX0pHGfovN03f5cxLbCF2YvLeyz7D2jVDQ= -github.com/charmbracelet/x/ansi v0.10.1/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= -github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0GVL4jeHEwG5YOXDmi86oYw2yuYUGqz6a8sLwg0X8= -github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= -github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= -github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= +github.com/charmbracelet/x/ansi v0.11.3 h1:6DcVaqWI82BBVM/atTyq6yBoRLZFBsnoDoX9GCu2YOI= +github.com/charmbracelet/x/ansi v0.11.3/go.mod h1:yI7Zslym9tCJcedxz5+WBq+eUGMJT0bM06Fqy1/Y4dI= +github.com/charmbracelet/x/cellbuf v0.0.14 h1:iUEMryGyFTelKW3THW4+FfPgi4fkmKnnaLOXuc+/Kj4= +github.com/charmbracelet/x/cellbuf v0.0.14/go.mod h1:P447lJl49ywBbil/KjCk2HexGh4tEY9LH0/1QrZZ9rA= +github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= +github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= +github.com/clipperhouse/displaywidth v0.6.1 h1:/zMlAezfDzT2xy6acHBzwIfyu2ic0hgkT83UX5EY2gY= +github.com/clipperhouse/displaywidth v0.6.1/go.mod h1:R+kHuzaYWFkTm7xoMmK1lFydbci4X2CicfbGstSGg0o= +github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs= +github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA= +github.com/clipperhouse/uax29/v2 v2.3.0 h1:SNdx9DVUqMoBuBoW3iLOj4FQv3dN5mDtuqwuhIGpJy4= +github.com/clipperhouse/uax29/v2 v2.3.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= @@ -69,8 +75,8 @@ github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUq github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= +github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= @@ -79,8 +85,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= -github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= -github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= +github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/go-archive v0.1.0 h1:Kk/5rdW/g+H8NHdJW2gsXyZ7UnzvJNOy6VKJqueWdcQ= @@ -118,9 +124,12 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rlch/neogo v0.0.0-20251222040623-d3268222ee8e h1:7lZT/5kqp0g5OH872geU8mS3EEKjHfAfGXIaR3gy3aM= +github.com/rlch/neogo v0.0.0-20251222040623-d3268222ee8e/go.mod h1:BSrmNPHRbsAKj9uYpgu8jpsiaGCa8tx1uC2nsMmeAgI= +github.com/rlch/participle/v2 v2.1.5-0.20251126160008-edf31da19af2 h1:zNzaTUnrkONPGqyX2vDCtTI1XXo7mybOCbX3TDLjweU= +github.com/rlch/participle/v2 v2.1.5-0.20251126160008-edf31da19af2/go.mod h1:8tqVbpTX20Ru4NfYQgZf4mP18eXPTBViyMWiArNEgGI= github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc= github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg= github.com/segmentio/encoding v0.3.4 h1:WM4IBnxH8B9TakiM2QD5LyNl9JSndh88QbHqVC+Pauc= diff --git a/language/go/production.go b/language/go/production.go index d3a6ac8..2fb8c17 100644 --- a/language/go/production.go +++ b/language/go/production.go @@ -319,5 +319,3 @@ func (p *productionGenerator) writeProdFunc(baseSig *FuncSignature, fullSig *Bin return nil } - - diff --git a/lexer_test.go b/lexer_test.go index 0d35fa9..58c06f0 100644 --- a/lexer_test.go +++ b/lexer_test.go @@ -340,9 +340,13 @@ func TestLexer_ComplexExpressions(t *testing.T) { "comparison", "x > 0 && y < 10", []tokenExpect{ - {"Ident", "x"}, {"Op", ">"}, {"Number", "0"}, + {"Ident", "x"}, + {"Op", ">"}, + {"Number", "0"}, {"Op", "&&"}, - {"Ident", "y"}, {"Op", "<"}, {"Number", "10"}, + {"Ident", "y"}, + {"Op", "<"}, + {"Number", "10"}, }, }, { @@ -354,17 +358,26 @@ func TestLexer_ComplexExpressions(t *testing.T) { "map literal", "{a: 1, b: 2}", []tokenExpect{ - {"{", "{"}, {"Ident", "a"}, {"Colon", ":"}, {"Number", "1"}, + {"{", "{"}, + {"Ident", "a"}, + {"Colon", ":"}, + {"Number", "1"}, {"Comma", ","}, - {"Ident", "b"}, {"Colon", ":"}, {"Number", "2"}, {"}", "}"}, + {"Ident", "b"}, + {"Colon", ":"}, + {"Number", "2"}, + {"}", "}"}, }, }, { "assertion", "assert { c == 1 }", []tokenExpect{ - {"assert", "assert"}, {"{", "{"}, - {"Ident", "c"}, {"Op", "=="}, {"Number", "1"}, + {"assert", "assert"}, + {"{", "{"}, + {"Ident", "c"}, + {"Op", "=="}, + {"Number", "1"}, {"}", "}"}, }, }, @@ -372,17 +385,23 @@ func TestLexer_ComplexExpressions(t *testing.T) { "semicolon separated", "x > 0; y < 10", []tokenExpect{ - {"Ident", "x"}, {"Op", ">"}, {"Number", "0"}, + {"Ident", "x"}, + {"Op", ">"}, + {"Number", "0"}, {"Semi", ";"}, - {"Ident", "y"}, {"Op", "<"}, {"Number", "10"}, + {"Ident", "y"}, + {"Op", "<"}, + {"Number", "10"}, }, }, { "fn definition", "fn GetUser() `MATCH (u:User) RETURN u`", []tokenExpect{ - {"fn", "fn"}, {"Ident", "GetUser"}, - {"(", "("}, {")", ")"}, + {"fn", "fn"}, + {"Ident", "GetUser"}, + {"(", "("}, + {")", ")"}, {"RawString", "`MATCH (u:User) RETURN u`"}, }, }, @@ -390,17 +409,22 @@ func TestLexer_ComplexExpressions(t *testing.T) { "test definition", `test "finds user" { }`, []tokenExpect{ - {"test", "test"}, {"String", `"finds user"`}, - {"{", "{"}, {"}", "}"}, + {"test", "test"}, + {"String", `"finds user"`}, + {"{", "{"}, + {"}", "}"}, }, }, { "chained dots", "a.b.c.d", []tokenExpect{ - {"Ident", "a"}, {"Dot", "."}, - {"Ident", "b"}, {"Dot", "."}, - {"Ident", "c"}, {"Dot", "."}, + {"Ident", "a"}, + {"Dot", "."}, + {"Ident", "b"}, + {"Dot", "."}, + {"Ident", "c"}, + {"Dot", "."}, {"Ident", "d"}, }, }, @@ -408,8 +432,10 @@ func TestLexer_ComplexExpressions(t *testing.T) { "optional chain and range", "a?.b..c", []tokenExpect{ - {"Ident", "a"}, {"Op", "?."}, - {"Ident", "b"}, {"Op", ".."}, + {"Ident", "a"}, + {"Op", "?."}, + {"Ident", "b"}, + {"Op", ".."}, {"Ident", "c"}, }, }, diff --git a/lsp/codeactions.go b/lsp/codeactions.go index a6abb7e..5411ad8 100644 --- a/lsp/codeactions.go +++ b/lsp/codeactions.go @@ -348,7 +348,7 @@ func (s *Server) fixEmptyTest(doc *Document, diag protocol.Diagnostic) []protoco // Build insertion text with parameters and return fields var lines []string - + // Add parameters for _, param := range query.Params { lines = append(lines, fmt.Sprintf("\t\t$%s: ", param)) diff --git a/lsp/completion.go b/lsp/completion.go index 7c70c81..db450df 100644 --- a/lsp/completion.go +++ b/lsp/completion.go @@ -133,17 +133,17 @@ const ( // CompletionContext holds information about where completion was triggered. type CompletionContext struct { - Kind CompletionKind - Prefix string // Text being typed (for filtering) - InScope string // Name of enclosing QueryScope - InTest bool // Inside a test body - InSetup bool // Inside a setup clause - InAssert bool // Inside an assert block - InExpr bool // Inside a parenthesized expression (assert or where clause) - AssertQueryName string // Name of the assert's query (if any) - takes precedence over InScope for expression variables - AssertQueryBody string // Inline query body (if any) - for inline assert queries - ModuleAlias string // Import alias for module.function completion - TriggerChar string // The trigger character (., $) + Kind CompletionKind + Prefix string // Text being typed (for filtering) + InScope string // Name of enclosing QueryScope + InTest bool // Inside a test body + InSetup bool // Inside a setup clause + InAssert bool // Inside an assert block + InExpr bool // Inside a parenthesized expression (assert or where clause) + AssertQueryName string // Name of the assert's query (if any) - takes precedence over InScope for expression variables + AssertQueryBody string // Inline query body (if any) - for inline assert queries + ModuleAlias string // Import alias for module.function completion + TriggerChar string // The trigger character (., $) } // buildCompletionContext analyzes the document and returns completion context. @@ -711,10 +711,10 @@ func (s *Server) completeQueryNames(doc *Document, _ *CompletionContext) []proto // keywordSnippet defines a keyword completion with its snippet. type keywordSnippet struct { - label string - detail string - snippet string - doc string + label string + detail string + snippet string + doc string } // completeKeywords returns keyword completions based on context. diff --git a/lsp/completion_test.go b/lsp/completion_test.go index 5bee15b..7227c30 100644 --- a/lsp/completion_test.go +++ b/lsp/completion_test.go @@ -193,7 +193,7 @@ GetUser { if !fieldLabels["name"] && !fieldLabels["email"] { t.Errorf("Expected return field completions, got: %v", fieldLabels) } - + // Let's also test with prefix filtering by making second request after 'n' resultWithPrefix, err := server.Completion(ctx, &protocol.CompletionParams{ TextDocumentPositionParams: protocol.TextDocumentPositionParams{ @@ -615,11 +615,11 @@ GetUser { // For testing completion, we need valid syntax that still has imports. // We'll request completion on a line that has "fixtures." pattern // where the file still parses correctly - + // The original content should parse correctly, so let's work with it // Instead, we'll test completion at the end of a line where we type "fixtures." // But we need the imports to be recognized first - + // Let's verify the document has the import by triggering import alias completion importAliasResult, err := server.Completion(ctx, &protocol.CompletionParams{ TextDocumentPositionParams: protocol.TextDocumentPositionParams{ @@ -717,7 +717,7 @@ GetUser { // writeFile is a test helper to write content to a file. func writeFile(path, content string) error { - return os.WriteFile(path, []byte(content), 0644) //nolint:gosec // Test helper + return os.WriteFile(path, []byte(content), 0o644) //nolint:gosec // Test helper } func TestServer_Completion_SetupFunctions_AfterDot_Invalid(t *testing.T) { diff --git a/lsp/definition.go b/lsp/definition.go index 6f3ba82..82d2a01 100644 --- a/lsp/definition.go +++ b/lsp/definition.go @@ -120,7 +120,7 @@ func queryNameRange(q *scaf.Function) protocol.Range { Character: uint32(nameStartCol - 1), //nolint:gosec // Column numbers are always small positive integers }, End: protocol.Position{ - Line: uint32(q.Pos.Line - 1), //nolint:gosec // Line numbers are always small positive integers + Line: uint32(q.Pos.Line - 1), //nolint:gosec // Line numbers are always small positive integers Character: uint32(nameEndCol - 1), //nolint:gosec // Column numbers are always small positive integers }, } @@ -282,11 +282,11 @@ func (s *Server) findParameterDefinition(doc *Document, tokenCtx *analysis.Token URI: doc.URI, Range: protocol.Range{ Start: protocol.Position{ - Line: uint32(docLine - 1), //nolint:gosec // Line numbers are always small + Line: uint32(docLine - 1), //nolint:gosec // Line numbers are always small Character: uint32(docColumn - 1), //nolint:gosec // Column numbers are always small }, End: protocol.Position{ - Line: uint32(docLine - 1), //nolint:gosec + Line: uint32(docLine - 1), //nolint:gosec Character: uint32(docColumn - 1 + param.Length), //nolint:gosec }, }, @@ -400,7 +400,7 @@ func (s *Server) findReturnFieldDefinition(doc *Document, tokenCtx *analysis.Tok Character: uint32(docColumn - 1), //nolint:gosec // Column numbers are always small }, End: protocol.Position{ - Line: uint32(docLine - 1), //nolint:gosec + Line: uint32(docLine - 1), //nolint:gosec Character: uint32(docColumn - 1 + ret.Length), //nolint:gosec }, }, diff --git a/lsp/definition_test.go b/lsp/definition_test.go index fb18fd5..8d176e5 100644 --- a/lsp/definition_test.go +++ b/lsp/definition_test.go @@ -896,21 +896,21 @@ GetUser { // Define test cases tests := []struct { - name string - line uint32 - character uint32 - wantURI protocol.DocumentURI - wantLine uint32 - wantFound bool - description string + name string + line uint32 + character uint32 + wantURI protocol.DocumentURI + wantLine uint32 + wantFound bool + description string }{ // 1. Query scope name -> query definition { name: "query_scope_name", - line: 8, // "GetUser {" - character: 3, // On "GetUser" + line: 8, // "GetUser {" + character: 3, // On "GetUser" wantURI: mainURI, - wantLine: 2, // query GetUser line + wantLine: 2, // query GetUser line wantFound: true, description: "Query scope name should go to query definition", }, @@ -918,10 +918,10 @@ GetUser { // 2. Global setup - import alias (goes to imported file) { name: "global_setup_import_alias", - line: 6, // "setup fixtures.SetupCleanDB()" - character: 7, // On "fixtures" + line: 6, // "setup fixtures.SetupCleanDB()" + character: 7, // On "fixtures" wantURI: fixturesURI, - wantLine: 0, // start of imported file + wantLine: 0, // start of imported file wantFound: true, description: "Import alias in global setup should go to imported file", }, @@ -940,10 +940,10 @@ GetUser { // 4. Scope setup - import alias (goes to imported file) { name: "scope_setup_import_alias", - line: 9, // "\tsetup fixtures.SetupUsers()" - character: 7, // On "fixtures" + line: 9, // "\tsetup fixtures.SetupUsers()" + character: 7, // On "fixtures" wantURI: fixturesURI, - wantLine: 0, // start of imported file + wantLine: 0, // start of imported file wantFound: true, description: "Import alias in scope setup should go to imported file", }, @@ -954,7 +954,7 @@ GetUser { line: 9, // "\tsetup fixtures.SetupUsers()" character: 17, // On "SetupUsers" wantURI: fixturesURI, - wantLine: 1, // query SetupUsers line in fixtures (0-indexed, after comment) + wantLine: 1, // query SetupUsers line in fixtures (0-indexed, after comment) wantFound: true, description: "Function name in scope setup should go to query in imported file", }, @@ -965,7 +965,7 @@ GetUser { line: 11, // "\t\tsetup fixtures.SetupUsers()" character: 9, // On "fixtures" wantURI: fixturesURI, - wantLine: 0, // start of imported file + wantLine: 0, // start of imported file wantFound: true, description: "Import alias in group setup should go to imported file", }, @@ -976,7 +976,7 @@ GetUser { line: 11, // "\t\tsetup fixtures.SetupUsers()" character: 18, // On "SetupUsers" wantURI: fixturesURI, - wantLine: 1, // query SetupUsers line in fixtures + wantLine: 1, // query SetupUsers line in fixtures wantFound: true, description: "Function name in group setup should go to query in imported file", }, @@ -987,7 +987,7 @@ GetUser { line: 13, // "\t\t\tsetup fixtures.SetupPosts(...)" character: 10, // On "fixtures" wantURI: fixturesURI, - wantLine: 0, // start of imported file + wantLine: 0, // start of imported file wantFound: true, description: "Import alias in test setup should go to imported file", }, @@ -998,7 +998,7 @@ GetUser { line: 13, // "\t\t\tsetup fixtures.SetupPosts(...)" character: 19, // On "SetupPosts" wantURI: fixturesURI, - wantLine: 6, // query SetupPosts line in fixtures + wantLine: 6, // query SetupPosts line in fixtures wantFound: true, description: "Function name in test setup should go to query in imported file", }, @@ -1009,7 +1009,7 @@ GetUser { line: 14, // "\t\t\t$userId: 1" character: 4, // On "$userId" wantURI: mainURI, - wantLine: 2, // query GetUser line (where $userId is used) + wantLine: 2, // query GetUser line (where $userId is used) wantFound: true, description: "Parameter in test should go to parameter in query body", }, @@ -1020,7 +1020,7 @@ GetUser { line: 16, // "\t\t\tassert CountUserPosts(...)" character: 11, // On "CountUserPosts" wantURI: mainURI, - wantLine: 4, // query CountUserPosts line + wantLine: 4, // query CountUserPosts line wantFound: true, description: "Query name in assert should go to query definition", }, @@ -1062,5 +1062,5 @@ GetUser { // mkdirAll is a test helper to create directories. func mkdirAll(path string) error { - return os.MkdirAll(path, 0755) + return os.MkdirAll(path, 0o755) } diff --git a/lsp/documentlink_test.go b/lsp/documentlink_test.go index 98da013..859d12d 100644 --- a/lsp/documentlink_test.go +++ b/lsp/documentlink_test.go @@ -19,7 +19,7 @@ func TestServer_DocumentLink(t *testing.T) { fixturesPath := tmpDir + "/fixtures.scaf" fixturesContent := `fn SetupUsers() ` + "`CREATE (u:User) RETURN u`" + ` ` - if err := os.WriteFile(fixturesPath, []byte(fixturesContent), 0644); err != nil { + if err := os.WriteFile(fixturesPath, []byte(fixturesContent), 0o644); err != nil { t.Fatalf("Failed to write fixtures.scaf: %v", err) } @@ -34,7 +34,7 @@ GetUser { test "finds user" {} } ` - if err := os.WriteFile(mainPath, []byte(mainContent), 0644); err != nil { + if err := os.WriteFile(mainPath, []byte(mainContent), 0o644); err != nil { t.Fatalf("Failed to write main.scaf: %v", err) } @@ -92,7 +92,7 @@ func TestServer_DocumentLink_WithAlias(t *testing.T) { tmpDir := t.TempDir() _ = os.WriteFile(tmpDir+"/shared.scaf", []byte(`fn Q() `+"`Q`"+` -`), 0644) +`), 0o644) mainPath := tmpDir + "/main.scaf" mainContent := `import f "./shared" @@ -100,7 +100,7 @@ func TestServer_DocumentLink_WithAlias(t *testing.T) { fn GetUser() ` + "`Q`" + ` GetUser { test "t" {} } ` - _ = os.WriteFile(mainPath, []byte(mainContent), 0644) + _ = os.WriteFile(mainPath, []byte(mainContent), 0o644) server, _ := newTestServer(t) ctx := context.Background() diff --git a/lsp/fileloader_test.go b/lsp/fileloader_test.go index 4050f06..3980722 100644 --- a/lsp/fileloader_test.go +++ b/lsp/fileloader_test.go @@ -129,7 +129,7 @@ func TestLSPFileLoader_Load(t *testing.T) { testFile := filepath.Join(tmpDir, "test.scaf") testContent := "fn Test() `MATCH (n) RETURN n`\n" - if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + if err := os.WriteFile(testFile, []byte(testContent), 0o644); err != nil { t.Fatalf("Failed to create test file: %v", err) } @@ -167,7 +167,7 @@ func TestLSPFileLoader_LoadAndAnalyze(t *testing.T) { fn GetUser() ` + "`MATCH (u:User {id: $id}) RETURN u`" + ` ` - if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + if err := os.WriteFile(testFile, []byte(testContent), 0o644); err != nil { t.Fatalf("Failed to create test file: %v", err) } @@ -208,13 +208,13 @@ func TestLSPFileLoader_ResolveImportPath_DialectExtension(t *testing.T) { // Create temp directory with a dialect-specific file tmpDir := t.TempDir() sharedDir := filepath.Join(tmpDir, "shared") - if err := os.MkdirAll(sharedDir, 0755); err != nil { + if err := os.MkdirAll(sharedDir, 0o755); err != nil { t.Fatalf("Failed to create shared dir: %v", err) } // Create fixtures.cypher.scaf (not fixtures.scaf) fixturesFile := filepath.Join(sharedDir, "fixtures.cypher.scaf") - if err := os.WriteFile(fixturesFile, []byte("fn Test() `test`"), 0644); err != nil { + if err := os.WriteFile(fixturesFile, []byte("fn Test() `test`"), 0o644); err != nil { t.Fatalf("Failed to create fixtures file: %v", err) } @@ -237,18 +237,18 @@ func TestLSPFileLoader_ResolveImportPath_PreferPlainScaf(t *testing.T) { // Create temp directory with both .scaf and .cypher.scaf files tmpDir := t.TempDir() sharedDir := filepath.Join(tmpDir, "shared") - if err := os.MkdirAll(sharedDir, 0755); err != nil { + if err := os.MkdirAll(sharedDir, 0o755); err != nil { t.Fatalf("Failed to create shared dir: %v", err) } // Create both files plainFile := filepath.Join(sharedDir, "fixtures.scaf") - if err := os.WriteFile(plainFile, []byte("fn Test() `test`"), 0644); err != nil { + if err := os.WriteFile(plainFile, []byte("fn Test() `test`"), 0o644); err != nil { t.Fatalf("Failed to create plain fixtures file: %v", err) } dialectFile := filepath.Join(sharedDir, "fixtures.cypher.scaf") - if err := os.WriteFile(dialectFile, []byte("fn Test() `test`"), 0644); err != nil { + if err := os.WriteFile(dialectFile, []byte("fn Test() `test`"), 0o644); err != nil { t.Fatalf("Failed to create dialect fixtures file: %v", err) } @@ -273,7 +273,7 @@ func TestLSPFileLoader_InvalidatePath(t *testing.T) { testFile := filepath.Join(tmpDir, "test.scaf") testContent := "fn Test() `MATCH (n) RETURN n`\n" - if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + if err := os.WriteFile(testFile, []byte(testContent), 0o644); err != nil { t.Fatalf("Failed to create test file: %v", err) } @@ -288,7 +288,7 @@ func TestLSPFileLoader_InvalidatePath(t *testing.T) { // Update file content newContent := "fn Updated() `MATCH (m) RETURN m`\n" - if err := os.WriteFile(testFile, []byte(newContent), 0644); err != nil { + if err := os.WriteFile(testFile, []byte(newContent), 0o644); err != nil { t.Fatalf("Failed to update test file: %v", err) } diff --git a/lsp/highlight.go b/lsp/highlight.go index 5b142bf..ad72ecd 100644 --- a/lsp/highlight.go +++ b/lsp/highlight.go @@ -154,12 +154,12 @@ func assertQueryNameRange(aq *scaf.AssertQuery) protocol.Range { return protocol.Range{ Start: protocol.Position{ - Line: uint32(aq.Pos.Line - 1), //nolint:gosec + Line: uint32(aq.Pos.Line - 1), //nolint:gosec Character: uint32(nameStartCol - 1), //nolint:gosec }, End: protocol.Position{ - Line: uint32(aq.Pos.Line - 1), //nolint:gosec - Character: uint32(nameEndCol - 1), //nolint:gosec + Line: uint32(aq.Pos.Line - 1), //nolint:gosec + Character: uint32(nameEndCol - 1), //nolint:gosec }, } } @@ -202,7 +202,7 @@ func importAliasRange(imp *scaf.Import) protocol.Range { aliasStartCol := imp.Pos.Column + 7 // "import " = 7 chars return protocol.Range{ Start: protocol.Position{ - Line: uint32(imp.Pos.Line - 1), //nolint:gosec + Line: uint32(imp.Pos.Line - 1), //nolint:gosec Character: uint32(aliasStartCol - 1), //nolint:gosec }, End: protocol.Position{ @@ -274,11 +274,11 @@ func setupModuleRange(setup *scaf.SetupClause) protocol.Range { func setupCallModuleRange(call *scaf.SetupCall) protocol.Range { return protocol.Range{ Start: protocol.Position{ - Line: uint32(call.Pos.Line - 1), //nolint:gosec + Line: uint32(call.Pos.Line - 1), //nolint:gosec Character: uint32(call.Pos.Column - 1), //nolint:gosec }, End: protocol.Position{ - Line: uint32(call.Pos.Line - 1), //nolint:gosec + Line: uint32(call.Pos.Line - 1), //nolint:gosec Character: uint32(call.Pos.Column - 1 + len(call.Module)), //nolint:gosec }, } @@ -291,11 +291,11 @@ func setupItemModuleRange(item *scaf.SetupItem) protocol.Range { } return protocol.Range{ Start: protocol.Position{ - Line: uint32(item.Pos.Line - 1), //nolint:gosec + Line: uint32(item.Pos.Line - 1), //nolint:gosec Character: uint32(item.Pos.Column - 1), //nolint:gosec }, End: protocol.Position{ - Line: uint32(item.Pos.Line - 1), //nolint:gosec + Line: uint32(item.Pos.Line - 1), //nolint:gosec Character: uint32(item.Pos.Column - 1 + len(*item.Module)), //nolint:gosec }, } @@ -371,11 +371,11 @@ func setupCallQueryRange(call *scaf.SetupCall) protocol.Range { queryStartCol := call.Pos.Column + len(call.Module) + 1 // +1 for dot return protocol.Range{ Start: protocol.Position{ - Line: uint32(call.Pos.Line - 1), //nolint:gosec + Line: uint32(call.Pos.Line - 1), //nolint:gosec Character: uint32(queryStartCol - 1), //nolint:gosec }, End: protocol.Position{ - Line: uint32(call.Pos.Line - 1), //nolint:gosec + Line: uint32(call.Pos.Line - 1), //nolint:gosec Character: uint32(queryStartCol - 1 + len(call.Query)), //nolint:gosec }, } @@ -426,11 +426,11 @@ func statementKeyRange(stmt *scaf.Statement) protocol.Range { key := stmt.Key() return protocol.Range{ Start: protocol.Position{ - Line: uint32(stmt.Pos.Line - 1), //nolint:gosec + Line: uint32(stmt.Pos.Line - 1), //nolint:gosec Character: uint32(stmt.Pos.Column - 1), //nolint:gosec }, End: protocol.Position{ - Line: uint32(stmt.Pos.Line - 1), //nolint:gosec + Line: uint32(stmt.Pos.Line - 1), //nolint:gosec Character: uint32(stmt.Pos.Column - 1 + len(key)), //nolint:gosec }, } diff --git a/lsp/hover.go b/lsp/hover.go index 4d71e43..899b71e 100644 --- a/lsp/hover.go +++ b/lsp/hover.go @@ -756,7 +756,6 @@ func (s *Server) hoverSetupCall(doc *Document, f *analysis.AnalyzedFile, call *s // Otherwise load from disk importedFile, err := s.fileLoader.LoadAndAnalyze(importedPath) - if err != nil { s.logger.Debug("Failed to load imported file for hover", zap.String("path", importedPath), diff --git a/lsp/hover_allfeatures_test.go b/lsp/hover_allfeatures_test.go index 33c1720..ce38e6d 100644 --- a/lsp/hover_allfeatures_test.go +++ b/lsp/hover_allfeatures_test.go @@ -77,7 +77,6 @@ func TestHover_AllFeaturesFile(t *testing.T) { Position: protocol.Position{Line: tc.line, Character: tc.char}, }, }) - if err != nil { t.Fatalf("Hover() error: %v", err) } @@ -131,29 +130,29 @@ func TestHover_DebugPositions(t *testing.T) { // Test multiple lines testLines := []uint32{41, 50, 51, 52, 54, 87} - + for _, lineNum := range testLines { - line := lines[lineNum] - t.Logf("\n=== Testing line %d: %q (len=%d) ===", lineNum, line, len(line)) - - for col := uint32(0); col <= uint32(len(line)); col++ { - result, _ := server.Hover(ctx, &protocol.HoverParams{ - TextDocumentPositionParams: protocol.TextDocumentPositionParams{ - TextDocument: protocol.TextDocumentIdentifier{URI: "file:///test.scaf"}, - Position: protocol.Position{Line: lineNum, Character: col}, - }, - }) + line := lines[lineNum] + t.Logf("\n=== Testing line %d: %q (len=%d) ===", lineNum, line, len(line)) - if result != nil { - first50 := result.Contents.Value - if len(first50) > 50 { - first50 = first50[:50] + "..." + for col := uint32(0); col <= uint32(len(line)); col++ { + result, _ := server.Hover(ctx, &protocol.HoverParams{ + TextDocumentPositionParams: protocol.TextDocumentPositionParams{ + TextDocument: protocol.TextDocumentIdentifier{URI: "file:///test.scaf"}, + Position: protocol.Position{Line: lineNum, Character: col}, + }, + }) + + if result != nil { + first50 := result.Contents.Value + if len(first50) > 50 { + first50 = first50[:50] + "..." + } + first50 = strings.ReplaceAll(first50, "\n", "\\n") + t.Logf(" Col %2d: %s", col, first50) + } else { + t.Logf(" Col %2d: nil", col) } - first50 = strings.ReplaceAll(first50, "\n", "\\n") - t.Logf(" Col %2d: %s", col, first50) - } else { - t.Logf(" Col %2d: nil", col) } } } -} diff --git a/lsp/hover_comprehensive_test.go b/lsp/hover_comprehensive_test.go index 79ba5da..085c9a8 100644 --- a/lsp/hover_comprehensive_test.go +++ b/lsp/hover_comprehensive_test.go @@ -118,7 +118,7 @@ GetUser { // Assert expression - variable {"assert_expr_var", 18, 11, []string{"variable", "u"}}, - + // Assert expression - property {"assert_expr_prop", 18, 13, []string{"property", "u.age"}}, @@ -141,7 +141,6 @@ GetUser { Position: protocol.Position{Line: tc.line, Character: tc.char}, }, }) - if err != nil { t.Fatalf("Hover() error: %v", err) } @@ -220,7 +219,6 @@ GetUser { Position: protocol.Position{Line: 6, Character: 7}, // On "views" }, }) - if err != nil { t.Fatalf("Hover() error: %v", err) } @@ -304,7 +302,6 @@ GetUser { Position: protocol.Position{Line: 5, Character: 7}, // On "likes" }, }) - if err != nil { t.Fatalf("Hover() error: %v", err) } diff --git a/lsp/inlayhints.go b/lsp/inlayhints.go index 6fd6c15..7a6d626 100644 --- a/lsp/inlayhints.go +++ b/lsp/inlayhints.go @@ -167,7 +167,7 @@ func (s *Server) findParameterPosition(fn *scaf.Function, paramName string) *pro // Position is at the end of the parameter name // p.Pos is 1-indexed, LSP is 0-indexed pos := protocol.Position{ - Line: uint32(p.Pos.Line - 1), //nolint:gosec + Line: uint32(p.Pos.Line - 1), //nolint:gosec Character: uint32(p.Pos.Column - 1 + len(p.Name)), //nolint:gosec } return &pos diff --git a/lsp/lsplogger.go b/lsp/lsplogger.go index f546f0c..e6452d6 100644 --- a/lsp/lsplogger.go +++ b/lsp/lsplogger.go @@ -39,12 +39,12 @@ func NewLSPLogger(client protocol.Client, fallbackCore zapcore.Core, level zapco ctx, cancel := context.WithCancel(context.Background()) lspCore := &lspLogCore{ - client: client, - level: level, - encoder: zapcore.NewConsoleEncoder(zapcore.EncoderConfig{ + client: client, + level: level, + encoder: zapcore.NewConsoleEncoder(zapcore.EncoderConfig{ MessageKey: "msg", - LevelKey: "", // Don't include level in message, it's in the MessageType - TimeKey: "", // Don't include timestamp + LevelKey: "", // Don't include level in message, it's in the MessageType + TimeKey: "", // Don't include timestamp NameKey: "logger", CallerKey: "", FunctionKey: "", diff --git a/lsp/references.go b/lsp/references.go index 3f6b052..191220e 100644 --- a/lsp/references.go +++ b/lsp/references.go @@ -422,7 +422,7 @@ func (s *Server) findParameterReferences(doc *Document, queryScope, paramKey str Character: uint32(docColumn - 1), //nolint:gosec }, End: protocol.Position{ - Line: uint32(docLine - 1), //nolint:gosec + Line: uint32(docLine - 1), //nolint:gosec Character: uint32(docColumn - 1 + p.Length), //nolint:gosec }, }, diff --git a/lsp/rename.go b/lsp/rename.go index c569fba..2a82796 100644 --- a/lsp/rename.go +++ b/lsp/rename.go @@ -14,13 +14,13 @@ import ( // Rename validation errors. var ( - ErrEmptyName = errors.New("new name cannot be empty") - ErrParamMustStartWithDollar = errors.New("parameter name must start with $") - ErrNameMustStartWithLetter = errors.New("name must start with a letter or underscore") - ErrParamNameAfterDollar = errors.New("parameter name must start with a letter or underscore after $") - ErrInvalidNameChars = errors.New("name can only contain letters, digits, underscores, and dots") - ErrQueryAlreadyExists = errors.New("query already exists") - ErrImportAliasAlreadyExists = errors.New("import alias already exists") + ErrEmptyName = errors.New("new name cannot be empty") + ErrParamMustStartWithDollar = errors.New("parameter name must start with $") + ErrNameMustStartWithLetter = errors.New("name must start with a letter or underscore") + ErrParamNameAfterDollar = errors.New("parameter name must start with a letter or underscore after $") + ErrInvalidNameChars = errors.New("name can only contain letters, digits, underscores, and dots") + ErrQueryAlreadyExists = errors.New("query already exists") + ErrImportAliasAlreadyExists = errors.New("import alias already exists") ) // RenameKind identifies what kind of symbol is being renamed. @@ -36,9 +36,9 @@ const ( // RenameContext holds information about a rename operation. type RenameContext struct { - Kind RenameKind - OldName string - QueryScope string // For parameters and return fields + Kind RenameKind + OldName string + QueryScope string // For parameters and return fields ModuleAlias string // For cross-file query references } @@ -391,7 +391,7 @@ func (s *Server) generateImportRenameEdits(doc *Document, oldAlias, newAlias str // No explicit alias - need to add one // Insert "newAlias " before the path insertPos := protocol.Position{ - Line: uint32(imp.Pos.Line - 1), //nolint:gosec + Line: uint32(imp.Pos.Line - 1), //nolint:gosec Character: uint32(imp.Pos.Column - 1 + 7), //nolint:gosec // After "import " } docEdits = append(docEdits, protocol.TextEdit{ diff --git a/lsp/server_test.go b/lsp/server_test.go index 6ea62bb..a9f7be7 100644 --- a/lsp/server_test.go +++ b/lsp/server_test.go @@ -27,6 +27,7 @@ func (m *mockClient) PublishDiagnostics(_ context.Context, params *protocol.Publ // Stub out remaining Client interface methods. func (m *mockClient) Progress(context.Context, *protocol.ProgressParams) error { return nil } + func (m *mockClient) WorkDoneProgressCreate(context.Context, *protocol.WorkDoneProgressCreateParams) error { return nil } @@ -41,15 +42,19 @@ func (m *mockClient) Telemetry(context.Context, any) error func (m *mockClient) RegisterCapability(context.Context, *protocol.RegistrationParams) error { return nil } + func (m *mockClient) UnregisterCapability(context.Context, *protocol.UnregistrationParams) error { return nil } + func (m *mockClient) ApplyEdit(context.Context, *protocol.ApplyWorkspaceEditParams) (bool, error) { return false, nil } + func (m *mockClient) Configuration(context.Context, *protocol.ConfigurationParams) ([]any, error) { return nil, nil } + func (m *mockClient) WorkspaceFolders(context.Context) ([]protocol.WorkspaceFolder, error) { return nil, nil } @@ -902,7 +907,7 @@ GetUser { if docSym, ok := sym.(protocol.DocumentSymbol); ok { symbolNames[docSym.Name] = true t.Logf("Symbol: %s (%s) - %s", docSym.Name, docSym.Kind, docSym.Detail) - + // Check nested symbols for GetUser scope if docSym.Name == "GetUser" && docSym.Kind == protocol.SymbolKindClass { for _, child := range docSym.Children { @@ -1251,9 +1256,9 @@ Q { // Line 5: test "nested test" {} expectations := map[string]uint32{ - "scaf.runScope:Q": 2, // Q scope at line 2 (0-indexed) - "scaf.runTest:Q/first test": 3, // first test at line 3 - "scaf.runGroup:Q/my group": 4, // group at line 4 + "scaf.runScope:Q": 2, // Q scope at line 2 (0-indexed) + "scaf.runTest:Q/first test": 3, // first test at line 3 + "scaf.runGroup:Q/my group": 4, // group at line 4 "scaf.runTest:Q/my group/nested test": 5, // nested test at line 5 } diff --git a/lsp/signature_test.go b/lsp/signature_test.go index 144f8b3..a4c1c14 100644 --- a/lsp/signature_test.go +++ b/lsp/signature_test.go @@ -20,7 +20,7 @@ func TestServer_SignatureHelp(t *testing.T) { fixturesContent := `fn CreateUser() ` + "`CREATE (u:User {name: $name, age: $age}) RETURN u`" + ` fn SimpleSetup() ` + "`CREATE (:Marker)`" + ` ` - if err := os.WriteFile(fixturesPath, []byte(fixturesContent), 0644); err != nil { + if err := os.WriteFile(fixturesPath, []byte(fixturesContent), 0o644); err != nil { t.Fatalf("Failed to write fixtures.scaf: %v", err) } @@ -35,7 +35,7 @@ GetUser { test "finds user" {} } ` - if err := os.WriteFile(mainPath, []byte(mainContent), 0644); err != nil { + if err := os.WriteFile(mainPath, []byte(mainContent), 0o644); err != nil { t.Fatalf("Failed to write main.scaf: %v", err) } @@ -101,7 +101,7 @@ func TestServer_SignatureHelp_SecondParameter(t *testing.T) { fixturesPath := tmpDir + "/fixtures.scaf" fixturesContent := `fn CreateUser() ` + "`CREATE (u:User {name: $name, age: $age}) RETURN u`" + ` ` - _ = os.WriteFile(fixturesPath, []byte(fixturesContent), 0644) + _ = os.WriteFile(fixturesPath, []byte(fixturesContent), 0o644) mainPath := tmpDir + "/main.scaf" mainContent := `import fixtures "./fixtures" @@ -113,7 +113,7 @@ GetUser { test "t" {} } ` - _ = os.WriteFile(mainPath, []byte(mainContent), 0644) + _ = os.WriteFile(mainPath, []byte(mainContent), 0o644) server, _ := newTestServer(t) ctx := context.Background() diff --git a/lsp/symbols.go b/lsp/symbols.go index 594e9b0..1fc0b1c 100644 --- a/lsp/symbols.go +++ b/lsp/symbols.go @@ -23,7 +23,7 @@ func (s *Server) DocumentSymbol(_ context.Context, params *protocol.DocumentSymb } symbols := s.buildDocumentSymbols(doc.Analysis) - + // Convert to []any for the protocol result := make([]any, len(symbols)) for i, sym := range symbols { @@ -218,7 +218,7 @@ func testNameRange(test *scaf.Test) protocol.Range { // The test name is after "test " and within quotes // Position points to "test", name starts after 'test "' nameStartCol := test.Pos.Column + 6 // 'test "' = 6 chars - + return protocol.Range{ Start: protocol.Position{ Line: uint32(test.Pos.Line - 1), @@ -235,7 +235,7 @@ func testNameRange(test *scaf.Test) protocol.Range { func groupNameRange(group *scaf.Group) protocol.Range { // The group name is after "group " and within quotes nameStartCol := group.Pos.Column + 7 // 'group "' = 7 chars - + return protocol.Range{ Start: protocol.Position{ Line: uint32(group.Pos.Line - 1), diff --git a/lsp/workspace_symbols_test.go b/lsp/workspace_symbols_test.go index dc3bbca..117f46a 100644 --- a/lsp/workspace_symbols_test.go +++ b/lsp/workspace_symbols_test.go @@ -25,7 +25,7 @@ GetUser { } } ` - if err := os.WriteFile(file1Path, []byte(file1Content), 0644); err != nil { + if err := os.WriteFile(file1Path, []byte(file1Content), 0o644); err != nil { t.Fatalf("Failed to write file1: %v", err) } @@ -40,7 +40,7 @@ CountUsers { } } ` - if err := os.WriteFile(file2Path, []byte(file2Content), 0644); err != nil { + if err := os.WriteFile(file2Path, []byte(file2Content), 0o644); err != nil { t.Fatalf("Failed to write file2: %v", err) } @@ -102,7 +102,7 @@ GetUser { test "finds user" {} } ` - if err := os.WriteFile(filePath, []byte(fileContent), 0644); err != nil { + if err := os.WriteFile(filePath, []byte(fileContent), 0o644); err != nil { t.Fatalf("Failed to write file: %v", err) } diff --git a/module/module_test.go b/module/module_test.go index af6a07b..dd532b5 100644 --- a/module/module_test.go +++ b/module/module_test.go @@ -260,8 +260,8 @@ func TestResolvedContext_GetQueries(t *testing.T) { queries := ctx.GetQueries() expected := map[string]string{ - "GetUser": "MATCH (u) RETURN u", - "SetupDB": "CREATE (:DB)", + "GetUser": "MATCH (u) RETURN u", + "SetupDB": "CREATE (:DB)", "fixtures.CreatePost": "CREATE (:Post)", } @@ -274,9 +274,9 @@ func TestModule_GetSetup(t *testing.T) { t.Parallel() tests := []struct { - name string - suite *scaf.Suite - hasSetup bool + name string + suite *scaf.Suite + hasSetup bool }{ { name: "no setup", diff --git a/parser_test.go b/parser_test.go index 7cebe1e..9f5bd32 100644 --- a/parser_test.go +++ b/parser_test.go @@ -59,11 +59,11 @@ func TestParse(t *testing.T) { `, expected: &scaf.Suite{ Functions: []*scaf.Query{{Name: "Q", Body: "Q"}}, - Setup: &scaf.SetupClause{Inline: ptr("CREATE (:User)")}, + Setup: &scaf.SetupClause{Inline: ptr("CREATE (:User)")}, Scopes: []*scaf.QueryScope{ { FunctionName: "Q", - Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, + Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, }, }, }, @@ -82,8 +82,8 @@ func TestParse(t *testing.T) { Scopes: []*scaf.QueryScope{ { FunctionName: "Q", - Setup: &scaf.SetupClause{Inline: ptr("SCOPE SETUP")}, - Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, + Setup: &scaf.SetupClause{Inline: ptr("SCOPE SETUP")}, + Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, }, }, }, @@ -298,9 +298,9 @@ func TestParse(t *testing.T) { Q { test "t" {} } `, expected: &scaf.Suite{ - Functions: []*scaf.Query{{Name: "Q", Body: "Q"}}, - Setup: &scaf.SetupClause{Inline: ptr("CREATE (:User)")}, - Teardown: ptr("MATCH (u:User) DELETE u"), + Functions: []*scaf.Query{{Name: "Q", Body: "Q"}}, + Setup: &scaf.SetupClause{Inline: ptr("CREATE (:User)")}, + Teardown: ptr("MATCH (u:User) DELETE u"), Scopes: []*scaf.QueryScope{ {FunctionName: "Q", Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}}, }, @@ -321,9 +321,9 @@ func TestParse(t *testing.T) { Scopes: []*scaf.QueryScope{ { FunctionName: "Q", - Setup: &scaf.SetupClause{Inline: ptr("SCOPE SETUP")}, - Teardown: ptr("SCOPE TEARDOWN"), - Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, + Setup: &scaf.SetupClause{Inline: ptr("SCOPE SETUP")}, + Teardown: ptr("SCOPE TEARDOWN"), + Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, }, }, }, @@ -349,7 +349,7 @@ func TestParse(t *testing.T) { { Group: &scaf.Group{ Name: "g", - Setup: &scaf.SetupClause{Inline: ptr("GROUP SETUP")}, + Setup: &scaf.SetupClause{Inline: ptr("GROUP SETUP")}, Teardown: ptr("GROUP TEARDOWN"), Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "t"}}}, }, @@ -1271,10 +1271,10 @@ func TestParseWithRecovery(t *testing.T) { t.Parallel() tests := []struct { - name string - input string - expectError bool - checkAST func(t *testing.T, suite *scaf.Suite) + name string + input string + expectError bool + checkAST func(t *testing.T, suite *scaf.Suite) }{ { name: "valid input with recovery enabled", @@ -1622,9 +1622,9 @@ func TestIsComplete(t *testing.T) { t.Parallel() tests := []struct { - name string - input string - checkFn func(t *testing.T, suite *scaf.Suite) + name string + input string + checkFn func(t *testing.T, suite *scaf.Suite) }{ { name: "complete test has Close", diff --git a/runner/format.go b/runner/format.go index 0491d2d..6495f2d 100644 --- a/runner/format.go +++ b/runner/format.go @@ -129,19 +129,19 @@ type jsonError struct { } type jsonEvent struct { - Time string `json:"time"` - Action string `json:"action"` - ID string `json:"id"` - Suite string `json:"suite,omitempty"` - Path string `json:"path"` - Test string `json:"test,omitempty"` - Elapsed float64 `json:"elapsed,omitempty"` - Output string `json:"output,omitempty"` - Short string `json:"short,omitempty"` - Errors []jsonError `json:"errors,omitempty"` - Field string `json:"field,omitempty"` - Expected any `json:"expected,omitempty"` - Actual any `json:"actual,omitempty"` + Time string `json:"time"` + Action string `json:"action"` + ID string `json:"id"` + Suite string `json:"suite,omitempty"` + Path string `json:"path"` + Test string `json:"test,omitempty"` + Elapsed float64 `json:"elapsed,omitempty"` + Output string `json:"output,omitempty"` + Short string `json:"short,omitempty"` + Errors []jsonError `json:"errors,omitempty"` + Field string `json:"field,omitempty"` + Expected any `json:"expected,omitempty"` + Actual any `json:"actual,omitempty"` } // Format outputs a JSON event. @@ -256,5 +256,3 @@ func (j *JSONFormatter) Summary(result *Result) error { Results: results, }) } - - diff --git a/runner/format_test.go b/runner/format_test.go index cf7131e..4b949d4 100644 --- a/runner/format_test.go +++ b/runner/format_test.go @@ -108,4 +108,4 @@ func TestJSONFormatter_Summary(t *testing.T) { if !ok || okVal { t.Errorf("ok = %v, want false", got["ok"]) } -} \ No newline at end of file +} diff --git a/runner/runner_test.go b/runner/runner_test.go index 2790fc3..bc7901b 100644 --- a/runner/runner_test.go +++ b/runner/runner_test.go @@ -89,7 +89,7 @@ func TestRunner_SimpleTest(t *testing.T) { Functions: []*scaf.Query{{Name: "GetUser", Body: "MATCH (u:User) RETURN u"}}, Scopes: []*scaf.QueryScope{{ FunctionName: "GetUser", - Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "finds user"}}}, + Items: []*scaf.TestOrGroup{{Test: &scaf.Test{Name: "finds user"}}}, }}, } @@ -195,7 +195,7 @@ func TestRunner_ScopeAndGroupSetup(t *testing.T) { Functions: []*scaf.Query{{Name: "Query", Body: "Q"}}, Scopes: []*scaf.QueryScope{{ FunctionName: "Query", - Setup: &scaf.SetupClause{Inline: &scopeSetup}, + Setup: &scaf.SetupClause{Inline: &scopeSetup}, Items: []*scaf.TestOrGroup{{ Group: &scaf.Group{ Name: "group", @@ -486,7 +486,7 @@ func TestRunner_SetupCallWithModules(t *testing.T) { // Create the root module rootSuite := &scaf.Suite{ Functions: []*scaf.Query{{Name: "GetUser", Body: "MATCH (u:User) RETURN u.name"}}, - Imports: []*scaf.Import{{Alias: ptr("fixtures"), Path: "./fixtures.scaf"}}, + Imports: []*scaf.Import{{Alias: ptr("fixtures"), Path: "./fixtures.scaf"}}, Scopes: []*scaf.QueryScope{{ FunctionName: "GetUser", Setup: &scaf.SetupClause{ diff --git a/runner/tui.go b/runner/tui.go index 468bbb0..b87328c 100644 --- a/runner/tui.go +++ b/runner/tui.go @@ -137,9 +137,9 @@ type treeNode struct { // SuiteTree holds a parsed suite and its tree representation. type SuiteTree struct { - path string // file path - root *treeNode // tree root for this suite - idx map[string]*treeNode // "suite::path" -> node lookup + path string // file path + root *treeNode // tree root for this suite + idx map[string]*treeNode // "suite::path" -> node lookup } // BuildSuiteTree creates a tree representation from a parsed Suite. @@ -797,8 +797,6 @@ func (m *tuiModel) renderSummaryWithProgress() string { return " " + summaryText + " " + bar + " " + elapsedStr } - - // Helper functions func formatDuration(d time.Duration) string { @@ -873,4 +871,4 @@ func (h *TUIHandler) Summary(result *Result) error { } return h.formatter.Summary(result) -} \ No newline at end of file +} diff --git a/scaf-lsp b/scaf-lsp deleted file mode 100755 index 0be764f..0000000 Binary files a/scaf-lsp and /dev/null differ diff --git a/trivia.go b/trivia.go index 08763e8..b52a26f 100644 --- a/trivia.go +++ b/trivia.go @@ -10,9 +10,9 @@ type Span struct { // Trivia represents non-semantic tokens like comments and whitespace. type Trivia struct { - Type TriviaType - Text string - Span Span + Type TriviaType + Text string + Span Span // HasNewlineBefore is true if there was a blank line before this trivia. // Useful for distinguishing "detached" comments. HasNewlineBefore bool diff --git a/types.go b/types.go index 4d39dcf..bd4d9d2 100644 --- a/types.go +++ b/types.go @@ -10,10 +10,10 @@ import ( // Type parsing errors. var ( - ErrEmptyTypeString = errors.New("empty type string") - ErrInvalidArrayType = errors.New("invalid array type") - ErrInvalidMapType = errors.New("invalid map type") - ErrUnrecognizedType = errors.New("unrecognized type") + ErrEmptyTypeString = errors.New("empty type string") + ErrInvalidArrayType = errors.New("invalid array type") + ErrInvalidMapType = errors.New("invalid map type") + ErrUnrecognizedType = errors.New("unrecognized type") ) // TypeKind represents the kind of a type. diff --git a/vendor/github.com/alecthomas/participle/v2/.golangci.yml b/vendor/github.com/alecthomas/participle/v2/.golangci.yml deleted file mode 100644 index dbcadd2..0000000 --- a/vendor/github.com/alecthomas/participle/v2/.golangci.yml +++ /dev/null @@ -1,88 +0,0 @@ -run: - tests: true - skip-dirs: - - _examples - -output: - print-issued-lines: false - -linters: - enable-all: true - disable: - - maligned - - lll - - gocyclo - - gochecknoglobals - - wsl - - whitespace - - godox - - funlen - - gocognit - - gomnd - - goerr113 - - godot - - nestif - - testpackage - - nolintlint - - exhaustivestruct - - wrapcheck - - gci - - gofumpt - - gocritic - - nlreturn - - errorlint - - nakedret - - forbidigo - - revive - - cyclop - - ifshort - - paralleltest - - interfacer - - scopelint - - golint - - wastedassign - - forcetypeassert - - gomoddirectives - - varnamelen - - exhaustruct - - ireturn - - nonamedreturns - - errname - - nilnil - - maintidx - - unused # Does not work with type parameters - - dupword - - depguard - - mnd - - recvcheck - - perfsprint - - predeclared - -linters-settings: - govet: - check-shadowing: true - gocyclo: - min-complexity: 10 - dupl: - threshold: 100 - goconst: - min-len: 8 - min-occurrences: 3 - exhaustive: - default-signifies-exhaustive: true - -issues: - max-per-linter: 0 - max-same: 0 - exclude-use-default: false - exclude: - # Captured by errcheck. - - '^(G104|G204|G307):' - # Very commonly not checked. - - 'Error return value of .(.*\.Help|.*\.MarkFlagRequired|(os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked' - - 'exported method `(.*\.MarshalJSON|.*\.UnmarshalJSON|.*\.EntityURN|.*\.GoString|.*\.Pos)` should have comment or be unexported' - - 'uses unkeyed fields' - - 'declaration of "err" shadows declaration' - - 'bad syntax for struct tag key' - - 'bad syntax for struct tag pair' - - '^ST1012' diff --git a/vendor/github.com/alecthomas/participle/v2/.goreleaser.yml b/vendor/github.com/alecthomas/participle/v2/.goreleaser.yml deleted file mode 100644 index 4018712..0000000 --- a/vendor/github.com/alecthomas/participle/v2/.goreleaser.yml +++ /dev/null @@ -1,37 +0,0 @@ -project_name: participle -release: - github: - owner: alecthomas - name: participle -brews: - - - install: bin.install "participle" -env: - - CGO_ENABLED=0 -builds: -- goos: - - linux - - darwin - - windows - goarch: - - arm64 - - amd64 - - "386" - goarm: - - "6" - dir: ./cmd/participle - main: . - ldflags: -s -w -X main.version={{.Version}} - binary: participle -archives: - - - format: tar.gz - name_template: '{{ .Binary }}-{{ .Version }}-{{ .Os }}-{{ .Arch }}{{ if .Arm }}v{{ - .Arm }}{{ end }}' - files: - - COPYING - - README* -snapshot: - name_template: SNAPSHOT-{{ .Commit }} -checksum: - name_template: '{{ .ProjectName }}-{{ .Version }}-checksums.txt' diff --git a/vendor/github.com/alecthomas/participle/v2/CHANGES.md b/vendor/github.com/alecthomas/participle/v2/CHANGES.md deleted file mode 100644 index a7e8887..0000000 --- a/vendor/github.com/alecthomas/participle/v2/CHANGES.md +++ /dev/null @@ -1,36 +0,0 @@ - - -- [v2](#v2) - - - - -## v2 - -v2 was released in November 2020. It contains the following changes, some of -which are backwards-incompatible: - -- Added optional `LexString()` and `LexBytes()` methods that lexer - definitions can implement to fast-path lexing of bytes and strings. -- A new stateful lexer has been added. -- A `filename` must now be passed to all `Parse*()` and `Lex*()` methods. -- The `text/scanner` lexer no longer automatically unquotes strings or - supports arbitary length single quoted strings. The tokens it produces are - identical to that of the `text/scanner` package. Use `Unquote()` to remove - quotes. -- `Tok` and `EndTok` will no longer be populated. -- If a field named `Token []lexer.Token` exists it will be populated with the - raw tokens that the node parsed from the lexer. -- Support capturing directly into lexer.Token fields. eg. - - type ast struct { - Head lexer.Token `@Ident` - Tail []lexer.Token `@(Ident*)` - } -- Add an `experimental/codegen` for stateful lexers. This provides ~10x - performance improvement with zero garbage when lexing strings. -- The `regex` lexer has been removed. -- The `ebnf` lexer has been removed. -- All future work on lexing will be put into the stateful lexer. -- The need for `DropToken` has been removed. - diff --git a/vendor/github.com/alecthomas/participle/v2/COPYING b/vendor/github.com/alecthomas/participle/v2/COPYING deleted file mode 100644 index 44fed8b..0000000 --- a/vendor/github.com/alecthomas/participle/v2/COPYING +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2022 Alec Thomas - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/alecthomas/participle/v2/README.md b/vendor/github.com/alecthomas/participle/v2/README.md deleted file mode 100644 index e210da4..0000000 --- a/vendor/github.com/alecthomas/participle/v2/README.md +++ /dev/null @@ -1,670 +0,0 @@ -# A dead simple parser package for Go - - -[![PkgGoDev](https://pkg.go.dev/badge/github.com/alecthomas/participle/v2)](https://pkg.go.dev/github.com/alecthomas/participle/v2) [![GHA Build](https://github.com/alecthomas/participle/actions/workflows/ci.yml/badge.svg)](https://github.com/alecthomas/participle/actions) - [![Go Report Card](https://goreportcard.com/badge/github.com/alecthomas/participle/v2)](https://goreportcard.com/report/github.com/alecthomas/participle/v2) [![Slack chat](https://img.shields.io/static/v1?logo=slack&style=flat&label=slack&color=green&message=gophers)](https://gophers.slack.com/messages/CN9DS8YF3) - - - -- [V2](#v2) -- [Introduction](#introduction) -- [Tutorial](#tutorial) -- [Tag syntax](#tag-syntax) -- [Overview](#overview) -- [Grammar syntax](#grammar-syntax) -- [Capturing](#capturing) - - [Capturing boolean value](#capturing-boolean-value) -- ["Union" types](#union-types) -- [Custom parsing](#custom-parsing) -- [Lexing](#lexing) - - [Stateful lexer](#stateful-lexer) - - [Example stateful lexer](#example-stateful-lexer) - - [Example simple/non-stateful lexer](#example-simplenon-stateful-lexer) - - [Experimental - code generation](#experimental---code-generation) -- [Options](#options) -- [Examples](#examples) -- [Performance](#performance) -- [Concurrency](#concurrency) -- [Error reporting](#error-reporting) -- [Comments](#comments) -- [Limitations](#limitations) -- [EBNF](#ebnf) -- [Syntax/Railroad Diagrams](#syntaxrailroad-diagrams) - - - -## V2 - -This is version 2 of Participle. - -It can be installed with: - -```shell -$ go get github.com/alecthomas/participle/v2@latest -``` - -The latest version from v0 can be installed via: - -```shell -$ go get github.com/alecthomas/participle@latest -``` - -## Introduction - -The goal of this package is to provide a simple, idiomatic and elegant way of -defining parsers in Go. - -Participle's method of defining grammars should be familiar to any Go -programmer who has used the `encoding/json` package: struct field tags define -what and how input is mapped to those same fields. This is not unusual for Go -encoders, but is unusual for a parser. - -## Tutorial - -A [tutorial](TUTORIAL.md) is available, walking through the creation of an .ini parser. - -## Tag syntax - -Participle supports two forms of struct tag grammar syntax. - -The easiest to read is when the grammar uses the entire struct tag content, eg. - -```go -Field string `@Ident @("," Ident)*` -``` - -However, this does not coexist well with other tags such as JSON, etc. and -may cause issues with linters. If this is an issue then you can use the -`parser:""` tag format. In this case single quotes can be used to quote -literals making the tags somewhat easier to write, eg. - -```go -Field string `parser:"@ident (',' Ident)*" json:"field"` -``` - - - -## Overview - -A grammar is an annotated Go structure used to both define the parser grammar, -and be the AST output by the parser. As an example, following is the final INI -parser from the tutorial. - - ```go - type INI struct { - Properties []*Property `@@*` - Sections []*Section `@@*` - } - - type Section struct { - Identifier string `"[" @Ident "]"` - Properties []*Property `@@*` - } - - type Property struct { - Key string `@Ident "="` - Value *Value `@@` - } - - type Value struct { - String *string ` @String` - Float *float64 `| @Float` - Int *int `| @Int` - } - ``` - -> **Note:** Participle also supports named struct tags (eg. Hello string `parser:"@Ident"`). - -A parser is constructed from a grammar and a lexer: - -```go -parser, err := participle.Build[INI]() -``` - -Once constructed, the parser is applied to input to produce an AST: - -```go -ast, err := parser.ParseString("", "size = 10") -// ast == &INI{ -// Properties: []*Property{ -// {Key: "size", Value: &Value{Int: &10}}, -// }, -// } -``` - -## Grammar syntax - -Participle grammars are defined as tagged Go structures. Participle will -first look for tags in the form `parser:"..."`. It will then fall back to -using the entire tag body. - -The grammar format is: - -- `@` Capture expression into the field. -- `@@` Recursively capture using the fields own type. -- `` Match named lexer token. -- `( ... )` Group. -- `"..."` or `'...'` Match the literal (note that the lexer must emit tokens matching this literal exactly). -- `"...":` Match the literal, specifying the exact lexer token type to match. -- ` ...` Match expressions. -- ` | | ...` Match one of the alternatives. Each alternative is tried in order, with backtracking. -- `~` Match any token that is _not_ the start of the expression (eg: `@~";"` matches anything but the `;` character into the field). -- `(?= ... )` Positive lookahead group - requires the contents to match further input, without consuming it. -- `(?! ... )` Negative lookahead group - requires the contents not to match further input, without consuming it. - -The following modifiers can be used after any expression: - -- `*` Expression can match zero or more times. -- `+` Expression must match one or more times. -- `?` Expression can match zero or once. -- `!` Require a non-empty match (this is useful with a sequence of optional matches eg. `("a"? "b"? "c"?)!`). - -Notes: - -- Each struct is a single production, with each field applied in sequence. -- `@` is the mechanism for capturing matches into the field. -- if a struct field is not keyed with "parser", the entire struct tag - will be used as the grammar fragment. This allows the grammar syntax to remain - clear and simple to maintain. - -## Capturing - -Prefixing any expression in the grammar with `@` will capture matching values -for that expression into the corresponding field. - -For example: - -```go -// The grammar definition. -type Grammar struct { - Hello string `@Ident` -} - -// The source text to parse. -source := "world" - -// After parsing, the resulting AST. -result == &Grammar{ - Hello: "world", -} -``` - -For slice and string fields, each instance of `@` will accumulate into the -field (including repeated patterns). Accumulation into other types is not -supported. - -For integer and floating point types, a successful capture will be parsed -with `strconv.ParseInt()` and `strconv.ParseFloat()` respectively. - -A successful capture match into a `bool` field will set the field to true. - -Tokens can also be captured directly into fields of type `lexer.Token` and -`[]lexer.Token`. - -Custom control of how values are captured into fields can be achieved by a -field type implementing the `Capture` interface (`Capture(values []string) -error`). - -Additionally, any field implementing the `encoding.TextUnmarshaler` interface -will be capturable too. One caveat is that `UnmarshalText()` will be called once -for each captured token, so eg. `@(Ident Ident Ident)` will be called three times. - -### Capturing boolean value - -By default, a boolean field is used to indicate that a match occurred, which -turns out to be much more useful and common in Participle than parsing true -or false literals. For example, parsing a variable declaration with a -trailing optional syntax: - -```go -type Var struct { - Name string `"var" @Ident` - Type string `":" @Ident` - Optional bool `@"?"?` -} -``` - -In practice this gives more useful ASTs. If bool were to be parsed literally -then you'd need to have some alternate type for Optional such as string or a -custom type. - -To capture literal boolean values such as `true` or `false`, implement the -Capture interface like so: - -```go -type Boolean bool - -func (b *Boolean) Capture(values []string) error { - *b = values[0] == "true" - return nil -} - -type Value struct { - Float *float64 ` @Float` - Int *int `| @Int` - String *string `| @String` - Bool *Boolean `| @("true" | "false")` -} -``` - -## "Union" types - -A very common pattern in parsers is "union" types, an example of which is -shown above in the `Value` type. A common way of expressing this in Go is via -a sealed interface, with each member of the union implementing this -interface. - -eg. this is how the `Value` type could be expressed in this way: - -```go -type Value interface { value() } - -type Float struct { Value float64 `@Float` } -func (f Float) value() {} - -type Int struct { Value int `@Int` } -func (f Int) value() {} - -type String struct { Value string `@String` } -func (f String) value() {} - -type Bool struct { Value Boolean `@("true" | "false")` } -func (f Bool) value() {} -``` - -Thanks to the efforts of [Jacob Ryan McCollum](https://github.com/mccolljr), Participle -now supports this pattern. Simply construct your parser with the `Union[T](member...T)` -option, eg. - -```go -parser := participle.MustBuild[AST](participle.Union[Value](Float{}, Int{}, String{}, Bool{})) -``` - -Custom parsers may also be defined for union types with the [ParseTypeWith](https://pkg.go.dev/github.com/alecthomas/participle/v2#ParseTypeWith) option. - -## Custom parsing - -There are three ways of defining custom parsers for nodes in the grammar: - -1. Implement the [Capture](https://pkg.go.dev/github.com/alecthomas/participle/v2#Capture) interface. -2. Implement the [Parseable](https://pkg.go.dev/github.com/alecthomas/participle/v2#Parseable) interface. -3. Use the [ParseTypeWith](https://pkg.go.dev/github.com/alecthomas/participle/v2#ParseTypeWith) option to specify a custom parser for union interface types. - - -## Lexing - -Participle relies on distinct lexing and parsing phases. The lexer takes raw -bytes and produces tokens which the parser consumes. The parser transforms -these tokens into Go values. - -The default lexer, if one is not explicitly configured, is based on the Go -`text/scanner` package and thus produces tokens for C/Go-like source code. This -is surprisingly useful, but if you do require more control over lexing the -included stateful [`participle/lexer`](#markdown-stateful-lexer) lexer should -cover most other cases. If that in turn is not flexible enough, you can -implement your own lexer. - -Configure your parser with a lexer using the `participle.Lexer()` option. - -To use your own Lexer you will need to implement two interfaces: -[Definition](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#Definition) -(and optionally [StringDefinition](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#StringDefinition) and [BytesDefinition](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#BytesDefinition)) and [Lexer](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#Lexer). - -### Stateful lexer - -In addition to the default lexer, Participle includes an optional -stateful/modal lexer which provides powerful yet convenient -construction of most lexers. (Notably, indentation based lexers cannot -be expressed using the `stateful` lexer -- for discussion of how these -lexers can be implemented, see [#20](https://github.com/alecthomas/participle/issues/20)). - -It is sometimes the case that a simple lexer cannot fully express the tokens -required by a parser. The canonical example of this is interpolated strings -within a larger language. eg. - -```go -let a = "hello ${name + ", ${last + "!"}"}" -``` - -This is impossible to tokenise with a normal lexer due to the arbitrarily -deep nesting of expressions. To support this case Participle's lexer is now -stateful by default. - -The lexer is a state machine defined by a map of rules keyed by the state -name. Each rule within the state includes the name of the produced token, the -regex to match, and an optional operation to apply when the rule matches. - -As a convenience, any `Rule` starting with a lowercase letter will be elided -from output, though it is recommended to use `participle.Elide()` instead, as it -better integrates with the parser. - -Lexing starts in the `Root` group. Each rule is matched in order, with the first -successful match producing a lexeme. If the matching rule has an associated Action -it will be executed. - -A state change can be introduced with the Action `Push(state)`. `Pop()` will -return to the previous state. - -To reuse rules from another state, use `Include(state)`. - -A special named rule `Return()` can also be used as the final rule in a state -to always return to the previous state. - -As a special case, regexes containing backrefs in the form `\N` (where `N` is -a digit) will match the corresponding capture group from the immediate parent -group. This can be used to parse, among other things, heredocs. See the -[tests](https://github.com/alecthomas/participle/blob/master/lexer/stateful_test.go#L59) -for an example of this, among others. - -### Example stateful lexer - -Here's a cut down example of the string interpolation described above. Refer to -the [stateful example](https://github.com/alecthomas/participle/tree/master/_examples/stateful) -for the corresponding parser. - -```go -var def = lexer.Must(lexer.Rules{ - "Root": { - {`String`, `"`, lexer.Push("String")}, - }, - "String": { - {"Escaped", `\\.`, nil}, - {"StringEnd", `"`, lexer.Pop()}, - {"Expr", `\${`, lexer.Push("Expr")}, - {"Char", `[^$"\\]+`, nil}, - }, - "Expr": { - lexer.Include("Root"), - {`whitespace`, `\s+`, nil}, - {`Oper`, `[-+/*%]`, nil}, - {"Ident", `\w+`, nil}, - {"ExprEnd", `}`, lexer.Pop()}, - }, -}) -``` - -### Example simple/non-stateful lexer - -Other than the default and stateful lexers, it's easy to define your -own _stateless_ lexer using the `lexer.MustSimple()` and -`lexer.NewSimple()` functions. These functions accept a slice of -`lexer.SimpleRule{}` objects consisting of a key and a regex-style pattern. - -> **Note:** The stateful lexer replaces the old regex lexer. - -For example, the lexer for a form of BASIC: - -```go -var basicLexer = lexer.MustSimple([]lexer.SimpleRule{ - {"Comment", `(?i)rem[^\n]*`}, - {"String", `"(\\"|[^"])*"`}, - {"Number", `[-+]?(\d*\.)?\d+`}, - {"Ident", `[a-zA-Z_]\w*`}, - {"Punct", `[-[!@#$%^&*()+_={}\|:;"'<,>.?/]|]`}, - {"EOL", `[\n\r]+`}, - {"whitespace", `[ \t]+`}, -}) -``` - -### Experimental - code generation - -Participle v2 now has experimental support for generating code to perform -lexing. - -This will generally provide around a 10x improvement in lexing performance -while producing O(1) garbage. - -To use: -1. Serialize the `stateful` lexer definition to a JSON file (pass to `json.Marshal`). -2. Run the `participle` command (see `scripts/participle`) to generate go code from the lexer JSON definition. For example: -``` -participle gen lexer [--name SomeCustomName] < mylexer.json | gofmt > mypackage/mylexer.go -``` -(see `genLexer` in `conformance_test.go` for a more detailed example) - -3. When constructing your parser, use the generated lexer for your lexer definition, such as: -``` -var ParserDef = participle.MustBuild[someGrammer](participle.Lexer(mylexer.SomeCustomnameLexer)) -``` - -Consider contributing to the tests in `conformance_test.go` if they do not -appear to cover the types of expressions you are using the generated -lexer. - -**Known limitations of the code generated lexer:** - -* The lexer is always greedy. e.g., the regex `"[A-Z][A-Z][A-Z]?T"` will not match `"EST"` in the generated lexer because the quest operator is a greedy match and does not "give back" to try other possibilities; you can overcome by using `|` if you have a non-greedy match, e.g., `"[A-Z][A-Z]|(?:[A-Z]T|T)"` will produce correct results in both lexers (see [#276](https://github.com/alecthomas/participle/issues/276) for more detail); this limitation allows the generated lexer to be very fast and memory efficient -* Backreferences in regular expressions are not currently supported - -## Options - -The Parser's behaviour can be configured via [Options](https://pkg.go.dev/github.com/alecthomas/participle/v2#Option). - -## Examples - -There are several [examples included](https://github.com/alecthomas/participle/tree/master/_examples), -some of which are linked directly here. These examples should be run from the -`_examples` subdirectory within a cloned copy of this repository. - -Example | Description ---------|--------------- -[BASIC](https://github.com/alecthomas/participle/tree/master/_examples/basic) | A lexer, parser and interpreter for a [rudimentary dialect](https://caml.inria.fr/pub/docs/oreilly-book/html/book-ora058.html) of BASIC. -[EBNF](https://github.com/alecthomas/participle/tree/master/_examples/ebnf) | Parser for the form of EBNF used by Go. -[Expr](https://github.com/alecthomas/participle/tree/master/_examples/expr) | A basic mathematical expression parser and evaluator. -[GraphQL](https://github.com/alecthomas/participle/tree/master/_examples/graphql) | Lexer+parser for GraphQL schemas -[HCL](https://github.com/alecthomas/participle/tree/master/_examples/hcl) | A parser for the [HashiCorp Configuration Language](https://github.com/hashicorp/hcl). -[INI](https://github.com/alecthomas/participle/tree/master/_examples/ini) | An INI file parser. -[Protobuf](https://github.com/alecthomas/participle/tree/master/_examples/protobuf) | A full [Protobuf](https://developers.google.com/protocol-buffers/) version 2 and 3 parser. -[SQL](https://github.com/alecthomas/participle/tree/master/_examples/sql) | A *very* rudimentary SQL SELECT parser. -[Stateful](https://github.com/alecthomas/participle/tree/master/_examples/stateful) | A basic example of a stateful lexer and corresponding parser. -[Thrift](https://github.com/alecthomas/participle/tree/master/_examples/thrift) | A full [Thrift](https://thrift.apache.org/docs/idl) parser. -[TOML](https://github.com/alecthomas/participle/tree/master/_examples/toml) | A [TOML](https://github.com/toml-lang/toml) parser. - -Included below is a full GraphQL lexer and parser: - -```go -package main - -import ( - "fmt" - "os" - - "github.com/alecthomas/kong" - "github.com/alecthomas/repr" - - "github.com/alecthomas/participle/v2" - "github.com/alecthomas/participle/v2/lexer" -) - -type File struct { - Entries []*Entry `@@*` -} - -type Entry struct { - Type *Type ` @@` - Schema *Schema `| @@` - Enum *Enum `| @@` - Scalar string `| "scalar" @Ident` -} - -type Enum struct { - Name string `"enum" @Ident` - Cases []string `"{" @Ident* "}"` -} - -type Schema struct { - Fields []*Field `"schema" "{" @@* "}"` -} - -type Type struct { - Name string `"type" @Ident` - Implements string `( "implements" @Ident )?` - Fields []*Field `"{" @@* "}"` -} - -type Field struct { - Name string `@Ident` - Arguments []*Argument `( "(" ( @@ ( "," @@ )* )? ")" )?` - Type *TypeRef `":" @@` - Annotation string `( "@" @Ident )?` -} - -type Argument struct { - Name string `@Ident` - Type *TypeRef `":" @@` - Default *Value `( "=" @@ )` -} - -type TypeRef struct { - Array *TypeRef `( "[" @@ "]"` - Type string ` | @Ident )` - NonNullable bool `( @"!" )?` -} - -type Value struct { - Symbol string `@Ident` -} - -var ( - graphQLLexer = lexer.MustSimple([]lexer.SimpleRule{ - {"Comment", `(?:#|//)[^\n]*\n?`}, - {"Ident", `[a-zA-Z]\w*`}, - {"Number", `(?:\d*\.)?\d+`}, - {"Punct", `[-[!@#$%^&*()+_={}\|:;"'<,>.?/]|]`}, - {"Whitespace", `[ \t\n\r]+`}, - }) - parser = participle.MustBuild[File]( - participle.Lexer(graphQLLexer), - participle.Elide("Comment", "Whitespace"), - participle.UseLookahead(2), - ) -) - -var cli struct { - EBNF bool `help"Dump EBNF."` - Files []string `arg:"" optional:"" type:"existingfile" help:"GraphQL schema files to parse."` -} - -func main() { - ctx := kong.Parse(&cli) - if cli.EBNF { - fmt.Println(parser.String()) - ctx.Exit(0) - } - for _, file := range cli.Files { - r, err := os.Open(file) - ctx.FatalIfErrorf(err) - ast, err := parser.Parse(file, r) - r.Close() - repr.Println(ast) - ctx.FatalIfErrorf(err) - } -} -``` - -## Performance - -One of the included examples is a complete Thrift parser -(shell-style comments are not supported). This gives -a convenient baseline for comparing to the PEG based -[pigeon](https://github.com/PuerkitoBio/pigeon), which is the parser used by -[go-thrift](https://github.com/samuel/go-thrift). Additionally, the pigeon -parser is utilising a generated parser, while the participle parser is built at -run time. - -You can run the benchmarks yourself, but here's the output on my machine: - - BenchmarkParticipleThrift-12 5941 201242 ns/op 178088 B/op 2390 allocs/op - BenchmarkGoThriftParser-12 3196 379226 ns/op 157560 B/op 2644 allocs/op - -On a real life codebase of 47K lines of Thrift, Participle takes 200ms and go- -thrift takes 630ms, which aligns quite closely with the benchmarks. - -## Concurrency - -A compiled `Parser` instance can be used concurrently. A `LexerDefinition` can be used concurrently. A `Lexer` instance cannot be used concurrently. - -## Error reporting - -There are a few areas where Participle can provide useful feedback to users of your parser. - -1. Errors returned by [Parser.Parse*()](https://pkg.go.dev/github.com/alecthomas/participle/v2#Parser.Parse) will be: - 1. Of type [Error](https://pkg.go.dev/github.com/alecthomas/participle/v2#Error). This will contain positional information where available. - 2. May either be [ParseError](https://pkg.go.dev/github.com/alecthomas/participle/v2#ParseError) or [lexer.Error](https://pkg.go.dev/github.com/alecthomas/participle/v2/lexer#Error) -2. Participle will make a best effort to return as much of the AST up to the error location as possible. -3. Any node in the AST containing a field `Pos lexer.Position` [^1] will be automatically - populated from the nearest matching token. -4. Any node in the AST containing a field `EndPos lexer.Position` [^1] will be - automatically populated from the token at the end of the node. -5. Any node in the AST containing a field `Tokens []lexer.Token` will be automatically - populated with _all_ tokens captured by the node, _including_ elided tokens. - -[^1]: Either the concrete type or a type convertible to it, allowing user defined types to be used. - -These related pieces of information can be combined to provide fairly comprehensive error reporting. - -## Comments - -Comments can be difficult to capture as in most languages they may appear almost -anywhere. There are three ways of capturing comments, with decreasing fidelity. - -The first is to elide tokens in the parser, then add `Tokens []lexer.Token` as a -field to each AST node. Comments will be included. This has the downside that -there's no straightforward way to know where the comments are relative to -non-comment tokens in that node. - -The second way is to _not_ elide comment tokens, and explicitly capture them at -every location in the AST where they might occur. This has the downside that -unless you place these captures in every possible valid location, users might -insert valid comments that then fail to parse. - -The third way is to elide comment tokens and capture them where they're -semantically meaningful, such as for documentation comments. Participle supports -explicitly matching elided tokens for this purpose. - -## Limitations - -Internally, Participle is a recursive descent parser with backtracking (see -`UseLookahead(K)`). - -Among other things, this means that Participle grammars do not support left -recursion. Left recursion must be eliminated by restructuring your grammar. - -## EBNF - -The old `EBNF` lexer was removed in a major refactoring at -[362b26](https://github.com/alecthomas/participle/commit/362b26640fa3dc406aa60960f7d9a5b9a909414e) --- if you have an EBNF grammar you need to implement, you can either translate -it into regex-style `lexer.Rule{}` syntax or implement your own EBNF lexer -you might be able to use [the old EBNF lexer](https://github.com/alecthomas/participle/blob/2403858c8b2068b4b0cf96a6b36dd7069674039b/lexer/ebnf/ebnf.go) --- as a starting point. - -Participle supports outputting an EBNF grammar from a Participle parser. Once -the parser is constructed simply call `String()`. - -Participle also [includes a parser](https://pkg.go.dev/github.com/alecthomas/participle/v2/ebnf) for this form of EBNF (naturally). - -eg. The [GraphQL example](https://github.com/alecthomas/participle/blob/master/_examples/graphql/main.go#L15-L62) -gives in the following EBNF: - -```ebnf -File = Entry* . -Entry = Type | Schema | Enum | "scalar" ident . -Type = "type" ident ("implements" ident)? "{" Field* "}" . -Field = ident ("(" (Argument ("," Argument)*)? ")")? ":" TypeRef ("@" ident)? . -Argument = ident ":" TypeRef ("=" Value)? . -TypeRef = "[" TypeRef "]" | ident "!"? . -Value = ident . -Schema = "schema" "{" Field* "}" . -Enum = "enum" ident "{" ident* "}" . -``` - -## Syntax/Railroad Diagrams - -Participle includes a [command-line utility](https://github.com/alecthomas/participle/tree/master/cmd/railroad) to take an EBNF representation of a Participle grammar -(as returned by `Parser.String()`) and produce a Railroad Diagram using -[tabatkins/railroad-diagrams](https://github.com/tabatkins/railroad-diagrams). - -Here's what the GraphQL grammar looks like: - -![EBNF Railroad Diagram](railroad.png) diff --git a/vendor/github.com/alecthomas/participle/v2/TUTORIAL.md b/vendor/github.com/alecthomas/participle/v2/TUTORIAL.md deleted file mode 100644 index 9c33ae9..0000000 --- a/vendor/github.com/alecthomas/participle/v2/TUTORIAL.md +++ /dev/null @@ -1,299 +0,0 @@ -# Participle parser tutorial - - - -- [Introduction](#introduction) -- [The complete grammar](#the-complete-grammar) -- [Root of the .ini AST (structure, fields)](#root-of-the-ini-ast-structure-fields) -- [.ini properties (named tokens, capturing, literals)](#ini-properties-named-tokens-capturing-literals) -- [.ini property values (alternates, recursive structs, sequences)](#ini-property-values-alternates-recursive-structs-sequences) -- [Complete, but limited, .ini grammar (top-level properties only)](#complete-but-limited-ini-grammar-top-level-properties-only) -- [Extending our grammar to support sections](#extending-our-grammar-to-support-sections) -- [(Optional) Source positional information](#optional-source-positional-information) -- [Parsing using our grammar](#parsing-using-our-grammar) - - - - -## Introduction - -Writing a parser in Participle typically involves starting from the "root" of -the AST, annotating fields with the grammar, then recursively expanding until -it is complete. The AST is expressed via Go data types and the grammar is -expressed through struct field tags, as a form of EBNF. - -The parser we're going to create for this tutorial parses .ini files -like this: - -```ini -age = 21 -name = "Bob Smith" - -[address] -city = "Beverly Hills" -postal_code = 90210 -``` - - -## The complete grammar - -I think it's useful to see the complete grammar first, to see what we're -working towards. Read on below for details. - - ```go - type INI struct { - Properties []*Property `@@*` - Sections []*Section `@@*` - } - - type Section struct { - Identifier string `"[" @Ident "]"` - Properties []*Property `@@*` - } - - type Property struct { - Key string `@Ident "="` - Value Value `@@` - } - -type Value interface{ value() } - -type String struct { - String string `@String` -} - -func (String) value() {} - -type Number struct { - Number float64 `@Float | @Int` -} - -func (Number) value() {} - ``` - - -## Root of the .ini AST (structure, fields) - -The first step is to create a root struct for our grammar. In the case of our -.ini parser, this struct will contain a sequence of properties: - -```go -type INI struct { - Properties []*Property -} - -type Property struct { -} -``` - - -## .ini properties (named tokens, capturing, literals) - -Each property in an .ini file has an identifier key: - -```go -type Property struct { - Key string -} -``` - -The default lexer tokenises Go source code, and includes an `Ident` token type -that matches identifiers. To match this token we simply use the token type -name: - -```go -type Property struct { - Key string `Ident` -} -``` - -This will *match* identifiers, but not *capture* them into the `Key` field. To -capture input tokens into AST fields, prefix any grammar node with `@`: - -```go -type Property struct { - Key string `@Ident` -} -``` - -In .ini files, each key is separated from its value with a literal `=`. To -match a literal, enclose the literal in double quotes: - -```go -type Property struct { - Key string `@Ident "="` -} -``` - -> Note: literals in the grammar must match tokens from the lexer *exactly*. In -> this example if the lexer does not output `=` as a distinct token the -> grammar will not match. - - -## .ini property values (alternates, recursive structs, sequences) - -For the purposes of our example we are only going to support quoted string -and numeric property values. As each value can be *either* a string or a float -we'll need something akin to a sum type. Participle supports this via the -`Union[T any](members...T) Option` parser option. This tells the parser that -when a field of interface type `T` is encountered, it should try to match each -of the `members` in turn, and return the first successful match. - -```go -type Value interface{ value() } - -type String struct { - String string `@String` -} - -func (String) value() {} - -type Number struct { - Number float64 `@Float` -} - -func (Number) value() {} -``` - -Since we want to also parse integers and the default lexer differentiates -between floats and integers, we need to explicitly match either. To express -matching a set of alternatives such as this, we use the `|` operator: - -```go -type Number struct { - Number float64 `@Float | @Int` -} -``` - -> Note: the grammar can cross fields. - -Next, we'll match values and capture them into the `Property`. To recursively -capture structs use `@@` (capture self): - -```go -type Property struct { - Key string `@Ident "="` - Value Value `@@` -} -``` - -Now that we can parse a `Property` we need to go back to the root of the -grammar. We want to parse 0 or more properties. To do this, we use `*`. -Participle will accumulate each match into the slice until matching fails, -then move to the next node in the grammar. - -```go -type INI struct { - Properties []*Property `@@*` -} -``` - -> Note: tokens can also be accumulated into strings, appending each match. - - -## Complete, but limited, .ini grammar (top-level properties only) - -We now have a functional, but limited, .ini parser! - -```go -type INI struct { - Properties []*Property `@@*` -} - -type Property struct { - Key string `@Ident "="` - Value Value `@@` -} - -type Value interface{ value() } - -type String struct { - String string `@String` -} - -func (String) value() {} - -type Number struct { - Number float64 `@Float | @Int` -} - -func (Number) value() {} -``` - - -## Extending our grammar to support sections - -Adding support for sections is simply a matter of utilising the constructs -we've just learnt. A section consists of a header identifier, and a sequence -of properties: - -```go -type Section struct { - Identifier string `"[" @Ident "]"` - Properties []*Property `@@*` -} -``` - -Simple! - -Now we just add a sequence of `Section`s to our root node: - -```go -type INI struct { - Properties []*Property `@@*` - Sections []*Section `@@*` -} -``` - -And we're done! - - -## (Optional) Source positional information - -If a grammar node includes a field with the name `Pos` and type `lexer.Position`, it will be automatically populated by positional information. eg. - -```go -type String struct { - Pos lexer.Position - - String string `@String` -} - -type Number struct { - Pos lexer.Position - - Number float64 `@Float | @Int` -} -``` - -This is useful for error reporting. - - -## Parsing using our grammar - -To parse with this grammar we first construct the parser (we'll use the -default lexer for now): - -```go -parser, err := participle.Build[INI]( - participle.Unquote("String"), - participle.Union[Value](String{}, Number{}), -) -``` - -Then parse a new INI file with `parser.Parse{,String,Bytes}()`: - -```go -ini, err := parser.ParseString("", ` -age = 21 -name = "Bob Smith" - -[address] -city = "Beverly Hills" -postal_code = 90210 -`) -``` - -You can find the full example [here](_examples/ini/main.go), alongside -other examples including an SQL `SELECT` parser and a full -[Thrift](https://thrift.apache.org/) parser. diff --git a/vendor/github.com/alecthomas/participle/v2/api.go b/vendor/github.com/alecthomas/participle/v2/api.go deleted file mode 100644 index 1fbcbc2..0000000 --- a/vendor/github.com/alecthomas/participle/v2/api.go +++ /dev/null @@ -1,19 +0,0 @@ -package participle - -import ( - "github.com/alecthomas/participle/v2/lexer" -) - -// Capture can be implemented by fields in order to transform captured tokens into field values. -type Capture interface { - Capture(values []string) error -} - -// The Parseable interface can be implemented by any element in the grammar to provide custom parsing. -type Parseable interface { - // Parse into the receiver. - // - // Should return NextMatch if no tokens matched and parsing should continue. - // Nil should be returned if parsing was successful. - Parse(lex *lexer.PeekingLexer) error -} diff --git a/vendor/github.com/alecthomas/participle/v2/context.go b/vendor/github.com/alecthomas/participle/v2/context.go deleted file mode 100644 index f6f11c8..0000000 --- a/vendor/github.com/alecthomas/participle/v2/context.go +++ /dev/null @@ -1,174 +0,0 @@ -package participle - -import ( - "fmt" - "io" - "reflect" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -type contextFieldSet struct { - tokens []lexer.Token - strct reflect.Value - field structLexerField - fieldValue []reflect.Value -} - -// Context for a single parse. -type parseContext struct { - lexer.PeekingLexer - depth int - trace io.Writer - deepestError error - deepestErrorDepth int - lookahead int - caseInsensitive map[lexer.TokenType]bool - apply []*contextFieldSet - allowTrailing bool - - // Error recovery support - recovery *recoveryConfig - recoveryErrors []error -} - -func newParseContext(lex *lexer.PeekingLexer, lookahead int, caseInsensitive map[lexer.TokenType]bool) parseContext { - return parseContext{ - PeekingLexer: *lex, - caseInsensitive: caseInsensitive, - lookahead: lookahead, - } -} - -func (p *parseContext) DeepestError(err error) error { - if p.PeekingLexer.Cursor() >= p.deepestErrorDepth { - return err - } - if p.deepestError != nil { - return p.deepestError - } - return err -} - -// Defer adds a function to be applied once a branch has been picked. -func (p *parseContext) Defer(tokens []lexer.Token, strct reflect.Value, field structLexerField, fieldValue []reflect.Value) { - p.apply = append(p.apply, &contextFieldSet{tokens, strct, field, fieldValue}) -} - -// Apply deferred functions. -func (p *parseContext) Apply() error { - for _, apply := range p.apply { - if err := setField(apply.tokens, apply.strct, apply.field, apply.fieldValue); err != nil { - return err - } - } - p.apply = nil - return nil -} - -// Branch accepts the branch as the correct branch. -func (p *parseContext) Accept(branch *parseContext) { - p.apply = append(p.apply, branch.apply...) - p.PeekingLexer = branch.PeekingLexer - if branch.deepestErrorDepth >= p.deepestErrorDepth { - p.deepestErrorDepth = branch.deepestErrorDepth - p.deepestError = branch.deepestError - } - // Merge recovery errors from the branch - p.recoveryErrors = append(p.recoveryErrors, branch.recoveryErrors...) -} - -// Branch starts a new lookahead branch. -func (p *parseContext) Branch() *parseContext { - branch := &parseContext{} - *branch = *p - branch.apply = nil - branch.recoveryErrors = nil // Don't share slice with parent - return branch -} - -func (p *parseContext) MaybeUpdateError(err error) { - if p.PeekingLexer.Cursor() >= p.deepestErrorDepth { - p.deepestError = err - p.deepestErrorDepth = p.PeekingLexer.Cursor() - } -} - -// Stop returns true if parsing should terminate after the given "branch" failed to match. -// -// Additionally, track the deepest error in the branch - the deeper the error, the more useful it usually is. -// It could already be the deepest error in the branch (only if deeper than current parent context deepest), -// or it could be "err", the latest error on the branch (even if same depth; the lexer holds the position). -func (p *parseContext) Stop(err error, branch *parseContext) bool { - if branch.deepestErrorDepth > p.deepestErrorDepth { - p.deepestError = branch.deepestError - p.deepestErrorDepth = branch.deepestErrorDepth - } else if branch.PeekingLexer.Cursor() >= p.deepestErrorDepth { - p.deepestError = err - p.deepestErrorDepth = maxInt(branch.PeekingLexer.Cursor(), branch.deepestErrorDepth) - } - if !p.hasInfiniteLookahead() && branch.PeekingLexer.Cursor() > p.PeekingLexer.Cursor()+p.lookahead { - p.Accept(branch) - return true - } - return false -} - -func (p *parseContext) hasInfiniteLookahead() bool { return p.lookahead < 0 } - -func (p *parseContext) printTrace(n node) func() { - if p.trace != nil { - tok := p.PeekingLexer.Peek() - fmt.Fprintf(p.trace, "%s%q %s\n", strings.Repeat(" ", p.depth*2), tok, n.GoString()) - p.depth += 1 - return func() { p.depth -= 1 } - } - return func() {} -} - -func maxInt(a, b int) int { - if a > b { - return a - } - return b -} - -// Recovery support methods - -// recoveryEnabled returns true if error recovery is enabled. -func (p *parseContext) recoveryEnabled() bool { - return p.recovery != nil && len(p.recovery.strategies) > 0 -} - -// addRecoveryError records an error that occurred during recovery. -func (p *parseContext) addRecoveryError(err error) { - p.recoveryErrors = append(p.recoveryErrors, err) -} - -// tryRecover attempts to recover from a parse error using configured strategies. -// Returns true if recovery was successful. -func (p *parseContext) tryRecover(err error, parent reflect.Value) (bool, []reflect.Value) { - if !p.recoveryEnabled() { - return false, nil - } - - // Check if we've exceeded max errors - if p.recovery.maxErrors > 0 && len(p.recoveryErrors) >= p.recovery.maxErrors { - return false, nil - } - - // Try each strategy in order - for _, strategy := range p.recovery.strategies { - checkpoint := p.PeekingLexer.MakeCheckpoint() - recovered, values, newErr := strategy.Recover(p, err, parent) - if recovered { - p.addRecoveryError(newErr) - return true, values - } - // Restore checkpoint if strategy failed - p.PeekingLexer.LoadCheckpoint(checkpoint) - } - - return false, nil -} diff --git a/vendor/github.com/alecthomas/participle/v2/coverage.html b/vendor/github.com/alecthomas/participle/v2/coverage.html deleted file mode 100644 index 68bd81a..0000000 --- a/vendor/github.com/alecthomas/participle/v2/coverage.html +++ /dev/null @@ -1,5083 +0,0 @@ - - - - - - railroad: Go Coverage Report - - - -
- -
- not tracked - - not covered - covered - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - diff --git a/vendor/github.com/alecthomas/participle/v2/coverage.out b/vendor/github.com/alecthomas/participle/v2/coverage.out deleted file mode 100644 index cb44dc8..0000000 --- a/vendor/github.com/alecthomas/participle/v2/coverage.out +++ /dev/null @@ -1,1484 +0,0 @@ -mode: set -github.com/alecthomas/participle/v2/ebnf/ebnf.go:41.26,41.27 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:43.32,44.9 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:45.20,46.31 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:47.23,48.34 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:49.21,50.44 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:51.22,52.41 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:53.10,54.14 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:61.40,61.41 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:63.61,65.12 2 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:66.16,67.30 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:69.10,70.12 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:72.2,72.12 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:90.35,90.36 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:92.41,94.43 2 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:94.43,96.3 1 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:97.2,98.12 2 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:108.30,108.31 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:110.42,111.31 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:111.31,112.12 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:112.12,114.4 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:115.3,115.23 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:117.2,117.8 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:127.32,127.33 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:129.44,130.37 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:130.37,131.12 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:131.12,133.4 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:134.3,134.22 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:136.2,136.8 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:147.32,147.33 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:156.26,156.27 0 0 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:158.38,159.43 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:159.43,161.31 2 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:161.31,163.4 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:165.2,165.8 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:169.46,171.2 1 1 -github.com/alecthomas/participle/v2/ebnf/ebnf.go:174.40,176.2 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:18.35,20.2 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:51.57,54.28 3 1 -github.com/alecthomas/participle/v2/lexer/api.go:54.28,56.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:57.2,57.12 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:61.41,62.50 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:62.50,64.3 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:65.2,65.11 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:74.49,75.16 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:75.16,76.13 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:78.2,78.12 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:82.47,84.6 2 1 -github.com/alecthomas/participle/v2/lexer/api.go:84.6,86.17 2 1 -github.com/alecthomas/participle/v2/lexer/api.go:86.17,88.4 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:89.3,90.24 2 1 -github.com/alecthomas/participle/v2/lexer/api.go:90.24,92.4 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:105.41,110.16 4 1 -github.com/alecthomas/participle/v2/lexer/api.go:110.16,112.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:112.8,114.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:120.46,122.18 2 0 -github.com/alecthomas/participle/v2/lexer/api.go:122.18,124.3 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:124.8,126.3 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:127.2,128.10 2 0 -github.com/alecthomas/participle/v2/lexer/api.go:131.37,134.2 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:136.35,138.20 2 1 -github.com/alecthomas/participle/v2/lexer/api.go:138.20,140.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:141.2,141.60 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:153.27,155.2 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:157.32,158.13 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:158.13,160.3 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:161.2,161.16 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:164.34,165.27 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:165.27,167.3 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:168.2,168.73 1 1 -github.com/alecthomas/participle/v2/lexer/api.go:174.83,177.31 3 0 -github.com/alecthomas/participle/v2/lexer/api.go:177.31,179.10 2 0 -github.com/alecthomas/participle/v2/lexer/api.go:179.10,181.4 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:182.3,182.19 1 0 -github.com/alecthomas/participle/v2/lexer/api.go:184.2,184.19 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:25.70,27.2 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:29.37,29.53 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:30.37,30.53 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:33.32,33.68 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:36.55,38.24 2 1 -github.com/alecthomas/participle/v2/lexer/errors.go:38.24,40.3 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:41.2,41.38 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:41.38,43.3 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:44.2,44.15 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:44.15,46.3 1 1 -github.com/alecthomas/participle/v2/lexer/errors.go:46.8,48.3 1 0 -github.com/alecthomas/participle/v2/lexer/errors.go:49.2,49.12 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:25.68,29.27 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:29.27,31.3 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:32.2,32.6 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:32.6,34.17 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:34.17,36.4 1 0 -github.com/alecthomas/participle/v2/lexer/peek.go:37.3,38.14 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:38.14,39.9 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:42.2,43.15 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:47.66,49.2 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:52.34,54.2 1 0 -github.com/alecthomas/participle/v2/lexer/peek.go:57.43,59.2 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:62.38,64.13 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:64.13,66.3 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:67.2,71.10 5 1 -github.com/alecthomas/participle/v2/lexer/peek.go:75.38,77.2 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:82.41,84.2 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:87.45,88.25 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:88.25,90.34 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:90.34,92.4 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:103.87,104.30 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:104.30,106.46 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:106.46,108.4 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:113.57,114.48 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:114.48,116.14 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:116.14,117.9 1 0 -github.com/alecthomas/participle/v2/lexer/peek.go:119.3,119.23 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:119.23,121.4 1 1 -github.com/alecthomas/participle/v2/lexer/peek.go:123.2,124.24 2 1 -github.com/alecthomas/participle/v2/lexer/peek.go:127.52,129.2 1 0 -github.com/alecthomas/participle/v2/lexer/peek.go:131.62,133.2 1 0 -github.com/alecthomas/participle/v2/lexer/simple.go:13.57,15.16 2 1 -github.com/alecthomas/participle/v2/lexer/simple.go:15.16,16.13 1 0 -github.com/alecthomas/participle/v2/lexer/simple.go:18.2,18.12 1 1 -github.com/alecthomas/participle/v2/lexer/simple.go:23.65,25.29 2 1 -github.com/alecthomas/participle/v2/lexer/simple.go:25.29,27.3 1 1 -github.com/alecthomas/participle/v2/lexer/simple.go:28.2,28.38 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:36.49,39.16 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:39.16,41.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:42.2,47.25 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:47.25,49.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:50.2,51.16 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:51.16,53.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:54.2,55.22 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:56.14,58.63 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:58.63,60.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:61.3,61.18 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:62.13,64.63 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:64.63,66.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:67.3,67.18 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:68.17,70.63 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:70.63,72.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:73.3,73.18 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:74.10,74.10 0 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:75.10,76.62 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:78.2,79.12 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:82.46,87.21 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:87.21,89.17 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:89.17,91.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:92.3,94.17 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:94.17,96.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:97.3,97.26 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:98.12,98.12 0 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:99.18,100.27 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:101.19,102.28 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:103.16,104.31 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:105.11,106.68 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:108.3,109.17 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:109.17,111.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:112.3,112.28 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:114.2,114.29 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:150.77,151.21 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:151.21,153.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:154.2,155.12 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:159.19,161.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:169.20,169.41 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:176.78,177.21 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:177.21,179.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:180.2,181.12 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:184.49,185.34 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:185.34,187.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:188.2,188.12 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:195.32,197.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:203.75,204.31 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:207.80,209.9 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:209.9,211.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:212.2,215.12 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:219.33,221.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:233.52,235.16 2 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:235.16,236.13 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:238.2,238.12 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:242.52,244.30 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:244.30,245.28 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:245.28,246.56 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:246.56,247.52 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:247.52,249.6 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:251.4,257.44 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:257.44,259.19 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:259.19,261.6 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:263.4,267.6 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:270.1,271.37 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:271.37,272.30 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:272.30,273.51 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:273.51,274.65 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:274.65,276.6 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:277.5,277.17 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:281.2,282.28 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:282.28,284.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:285.2,291.27 5 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:291.27,292.38 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:292.38,293.75 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:293.75,294.121 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:296.4,299.8 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:302.2,306.15 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:309.60,311.2 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:314.44,316.36 2 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:316.36,317.30 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:317.30,319.4 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:321.2,321.12 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:325.82,336.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:338.79,341.16 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:341.16,343.3 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:344.2,344.42 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:347.61,349.2 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:365.47,369.22 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:369.22,375.35 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:375.35,377.36 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:377.36,381.18 4 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:383.4,384.18 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:384.18,386.5 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:387.4,388.53 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:388.53,391.28 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:391.28,392.11 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:396.3,396.34 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:396.34,398.24 2 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:398.24,400.5 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:401.4,401.81 1 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:404.3,404.25 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:404.25,406.39 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:406.39,408.5 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:409.4,409.61 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:409.61,411.5 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:412.9,412.34 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:412.34,414.4 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:416.3,423.18 5 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:423.18,426.12 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:428.3,432.9 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:434.2,434.29 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:437.84,438.25 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:438.25,440.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:443.2,443.93 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:447.98,450.8 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:450.8,452.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:454.2,458.78 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:458.78,461.18 3 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:461.18,464.4 2 0 -github.com/alecthomas/participle/v2/lexer/stateful.go:465.3,465.48 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:465.48,468.4 2 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:470.3,470.70 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:472.2,472.16 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:472.16,474.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:475.2,475.16 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:475.16,477.3 1 1 -github.com/alecthomas/participle/v2/lexer/stateful.go:478.2,479.16 2 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:22.71,24.2 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:30.87,32.24 2 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:32.24,34.3 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:35.2,35.15 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:38.69,49.2 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:63.46,67.61 4 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:67.61,69.3 1 0 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:70.2,70.14 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:76.67,78.2 1 0 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:80.79,87.2 3 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:90.48,92.2 1 0 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:95.42,97.2 1 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:99.50,104.18 5 1 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:104.18,106.3 1 0 -github.com/alecthomas/participle/v2/lexer/text_scanner.go:107.2,111.8 1 1 -github.com/alecthomas/participle/v2/context.go:36.117,42.2 1 1 -github.com/alecthomas/participle/v2/context.go:44.54,45.52 1 1 -github.com/alecthomas/participle/v2/context.go:45.52,47.3 1 1 -github.com/alecthomas/participle/v2/context.go:48.2,48.27 1 1 -github.com/alecthomas/participle/v2/context.go:48.27,50.3 1 1 -github.com/alecthomas/participle/v2/context.go:51.2,51.12 1 0 -github.com/alecthomas/participle/v2/context.go:55.125,57.2 1 1 -github.com/alecthomas/participle/v2/context.go:60.38,61.32 1 1 -github.com/alecthomas/participle/v2/context.go:61.32,62.92 1 1 -github.com/alecthomas/participle/v2/context.go:62.92,64.4 1 1 -github.com/alecthomas/participle/v2/context.go:66.2,67.12 2 1 -github.com/alecthomas/participle/v2/context.go:71.53,74.53 3 1 -github.com/alecthomas/participle/v2/context.go:74.53,77.3 2 1 -github.com/alecthomas/participle/v2/context.go:79.2,79.71 1 1 -github.com/alecthomas/participle/v2/context.go:83.47,89.2 5 1 -github.com/alecthomas/participle/v2/context.go:91.52,92.52 1 1 -github.com/alecthomas/participle/v2/context.go:92.52,95.3 2 1 -github.com/alecthomas/participle/v2/context.go:103.67,104.52 1 1 -github.com/alecthomas/participle/v2/context.go:104.52,107.3 2 1 -github.com/alecthomas/participle/v2/context.go:107.8,107.64 1 1 -github.com/alecthomas/participle/v2/context.go:107.64,110.3 2 1 -github.com/alecthomas/participle/v2/context.go:111.2,111.101 1 1 -github.com/alecthomas/participle/v2/context.go:111.101,114.3 2 1 -github.com/alecthomas/participle/v2/context.go:115.2,115.14 1 1 -github.com/alecthomas/participle/v2/context.go:118.52,118.78 1 1 -github.com/alecthomas/participle/v2/context.go:120.50,121.20 1 1 -github.com/alecthomas/participle/v2/context.go:121.20,125.17 4 1 -github.com/alecthomas/participle/v2/context.go:125.17,125.33 1 1 -github.com/alecthomas/participle/v2/context.go:127.2,127.16 1 1 -github.com/alecthomas/participle/v2/context.go:127.17,127.18 0 1 -github.com/alecthomas/participle/v2/context.go:130.27,131.11 1 1 -github.com/alecthomas/participle/v2/context.go:131.11,133.3 1 1 -github.com/alecthomas/participle/v2/context.go:134.2,134.10 1 1 -github.com/alecthomas/participle/v2/context.go:140.47,142.2 1 1 -github.com/alecthomas/participle/v2/context.go:145.52,147.2 1 1 -github.com/alecthomas/participle/v2/context.go:151.92,152.26 1 1 -github.com/alecthomas/participle/v2/context.go:152.26,154.3 1 1 -github.com/alecthomas/participle/v2/context.go:157.2,157.79 1 1 -github.com/alecthomas/participle/v2/context.go:157.79,159.3 1 1 -github.com/alecthomas/participle/v2/context.go:162.2,162.49 1 1 -github.com/alecthomas/participle/v2/context.go:162.49,165.16 3 1 -github.com/alecthomas/participle/v2/context.go:165.16,168.4 2 1 -github.com/alecthomas/participle/v2/context.go:170.3,170.44 1 1 -github.com/alecthomas/participle/v2/context.go:173.2,173.19 1 1 -github.com/alecthomas/participle/v2/ebnf.go:11.37,13.2 1 1 -github.com/alecthomas/participle/v2/ebnf.go:20.26,22.18 2 1 -github.com/alecthomas/participle/v2/ebnf.go:23.14,26.26 3 1 -github.com/alecthomas/participle/v2/ebnf.go:26.26,28.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:29.3,29.33 1 1 -github.com/alecthomas/participle/v2/ebnf.go:31.10,34.17 3 1 -github.com/alecthomas/participle/v2/ebnf.go:38.81,39.23 1 1 -github.com/alecthomas/participle/v2/ebnf.go:40.20,41.12 1 1 -github.com/alecthomas/participle/v2/ebnf.go:41.12,43.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:44.3,44.32 1 1 -github.com/alecthomas/participle/v2/ebnf.go:44.32,45.13 1 1 -github.com/alecthomas/participle/v2/ebnf.go:45.13,47.5 1 1 -github.com/alecthomas/participle/v2/ebnf.go:48.4,48.41 1 1 -github.com/alecthomas/participle/v2/ebnf.go:50.3,50.12 1 1 -github.com/alecthomas/participle/v2/ebnf.go:50.12,52.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:54.14,56.15 2 1 -github.com/alecthomas/participle/v2/ebnf.go:56.15,58.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:59.3,59.14 1 1 -github.com/alecthomas/participle/v2/ebnf.go:59.14,61.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:62.3,65.44 4 1 -github.com/alecthomas/participle/v2/ebnf.go:65.44,66.13 1 1 -github.com/alecthomas/participle/v2/ebnf.go:66.13,68.5 1 1 -github.com/alecthomas/participle/v2/ebnf.go:69.4,69.41 1 1 -github.com/alecthomas/participle/v2/ebnf.go:72.15,74.16 2 1 -github.com/alecthomas/participle/v2/ebnf.go:76.14,78.15 2 1 -github.com/alecthomas/participle/v2/ebnf.go:78.15,80.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:81.3,81.14 1 1 -github.com/alecthomas/participle/v2/ebnf.go:81.14,83.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:84.3,87.41 4 1 -github.com/alecthomas/participle/v2/ebnf.go:89.17,91.12 2 1 -github.com/alecthomas/participle/v2/ebnf.go:91.12,93.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:94.3,94.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:94.16,97.16 3 1 -github.com/alecthomas/participle/v2/ebnf.go:97.16,99.5 1 1 -github.com/alecthomas/participle/v2/ebnf.go:101.3,101.12 1 1 -github.com/alecthomas/participle/v2/ebnf.go:101.12,103.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:105.18,106.22 1 0 -github.com/alecthomas/participle/v2/ebnf.go:108.16,109.42 1 1 -github.com/alecthomas/participle/v2/ebnf.go:111.18,112.53 1 1 -github.com/alecthomas/participle/v2/ebnf.go:114.17,116.42 2 1 -github.com/alecthomas/participle/v2/ebnf.go:118.16,119.34 1 1 -github.com/alecthomas/participle/v2/ebnf.go:121.14,122.71 1 1 -github.com/alecthomas/participle/v2/ebnf.go:122.71,124.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:124.9,124.48 1 1 -github.com/alecthomas/participle/v2/ebnf.go:124.48,125.86 1 1 -github.com/alecthomas/participle/v2/ebnf.go:125.86,127.5 1 0 -github.com/alecthomas/participle/v2/ebnf.go:127.10,129.5 1 1 -github.com/alecthomas/participle/v2/ebnf.go:130.9,132.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:133.3,133.17 1 1 -github.com/alecthomas/participle/v2/ebnf.go:134.27,135.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:136.28,137.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:138.29,139.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:140.28,141.16 1 1 -github.com/alecthomas/participle/v2/ebnf.go:142.23,142.23 0 1 -github.com/alecthomas/participle/v2/ebnf.go:145.23,146.18 1 1 -github.com/alecthomas/participle/v2/ebnf.go:146.18,148.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:148.9,150.4 1 1 -github.com/alecthomas/participle/v2/ebnf.go:151.3,152.15 2 1 -github.com/alecthomas/participle/v2/ebnf.go:154.10,155.52 1 0 -github.com/alecthomas/participle/v2/error.go:23.36,26.24 3 1 -github.com/alecthomas/participle/v2/error.go:26.24,28.3 1 1 -github.com/alecthomas/participle/v2/error.go:29.2,29.38 1 1 -github.com/alecthomas/participle/v2/error.go:29.38,31.3 1 1 -github.com/alecthomas/participle/v2/error.go:32.2,32.15 1 1 -github.com/alecthomas/participle/v2/error.go:32.15,34.3 1 1 -github.com/alecthomas/participle/v2/error.go:34.8,36.3 1 1 -github.com/alecthomas/participle/v2/error.go:37.2,37.12 1 1 -github.com/alecthomas/participle/v2/error.go:49.47,49.72 1 1 -github.com/alecthomas/participle/v2/error.go:51.49,53.25 2 1 -github.com/alecthomas/participle/v2/error.go:53.25,55.3 1 1 -github.com/alecthomas/participle/v2/error.go:55.8,55.27 1 1 -github.com/alecthomas/participle/v2/error.go:55.27,57.3 1 0 -github.com/alecthomas/participle/v2/error.go:58.2,58.69 1 1 -github.com/alecthomas/participle/v2/error.go:60.58,60.85 1 1 -github.com/alecthomas/participle/v2/error.go:71.48,71.73 1 1 -github.com/alecthomas/participle/v2/error.go:72.48,72.64 1 1 -github.com/alecthomas/participle/v2/error.go:73.48,73.64 1 1 -github.com/alecthomas/participle/v2/error.go:76.75,78.2 1 1 -github.com/alecthomas/participle/v2/error.go:85.45,85.61 1 1 -github.com/alecthomas/participle/v2/error.go:93.85,95.33 2 1 -github.com/alecthomas/participle/v2/error.go:95.33,98.3 2 0 -github.com/alecthomas/participle/v2/error.go:98.8,100.3 1 1 -github.com/alecthomas/participle/v2/error.go:101.2,101.82 1 1 -github.com/alecthomas/participle/v2/grammar.go:17.66,23.2 1 1 -github.com/alecthomas/participle/v2/grammar.go:25.64,27.27 2 1 -github.com/alecthomas/participle/v2/grammar.go:27.27,28.48 1 1 -github.com/alecthomas/participle/v2/grammar.go:28.48,30.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:31.3,35.61 2 1 -github.com/alecthomas/participle/v2/grammar.go:37.2,37.27 1 1 -github.com/alecthomas/participle/v2/grammar.go:37.27,39.42 2 1 -github.com/alecthomas/participle/v2/grammar.go:39.42,41.18 2 1 -github.com/alecthomas/participle/v2/grammar.go:41.18,43.5 1 0 -github.com/alecthomas/participle/v2/grammar.go:44.4,44.81 1 1 -github.com/alecthomas/participle/v2/grammar.go:47.2,47.12 1 1 -github.com/alecthomas/participle/v2/grammar.go:50.66,51.27 1 1 -github.com/alecthomas/participle/v2/grammar.go:51.27,52.48 1 1 -github.com/alecthomas/participle/v2/grammar.go:52.48,54.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:55.3,55.69 1 1 -github.com/alecthomas/participle/v2/grammar.go:57.2,57.12 1 1 -github.com/alecthomas/participle/v2/grammar.go:61.84,63.33 2 1 -github.com/alecthomas/participle/v2/grammar.go:63.33,64.30 1 1 -github.com/alecthomas/participle/v2/grammar.go:64.30,66.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:67.3,67.16 1 1 -github.com/alecthomas/participle/v2/grammar.go:69.2,69.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:69.33,71.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:72.2,72.48 1 1 -github.com/alecthomas/participle/v2/grammar.go:72.48,74.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:75.2,75.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:76.34,78.33 2 0 -github.com/alecthomas/participle/v2/grammar.go:78.33,80.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:81.3,81.14 1 0 -github.com/alecthomas/participle/v2/grammar.go:83.22,85.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:85.17,87.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:88.3,90.29 3 1 -github.com/alecthomas/participle/v2/grammar.go:90.29,92.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:93.3,93.48 1 1 -github.com/alecthomas/participle/v2/grammar.go:93.48,93.78 1 1 -github.com/alecthomas/participle/v2/grammar.go:94.3,95.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:95.17,97.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:98.3,98.15 1 1 -github.com/alecthomas/participle/v2/grammar.go:98.15,100.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:101.3,101.46 1 1 -github.com/alecthomas/participle/v2/grammar.go:101.46,103.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:104.3,105.18 2 1 -github.com/alecthomas/participle/v2/grammar.go:107.2,107.96 1 0 -github.com/alecthomas/participle/v2/grammar.go:110.80,112.6 2 1 -github.com/alecthomas/participle/v2/grammar.go:112.6,114.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:114.17,116.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:117.3,117.15 1 1 -github.com/alecthomas/participle/v2/grammar.go:117.15,119.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:120.3,121.51 2 1 -github.com/alecthomas/participle/v2/grammar.go:121.51,122.9 1 1 -github.com/alecthomas/participle/v2/grammar.go:124.3,125.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:125.17,127.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:129.2,129.25 1 1 -github.com/alecthomas/participle/v2/grammar.go:129.25,131.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:132.2,132.17 1 1 -github.com/alecthomas/participle/v2/grammar.go:135.77,139.6 3 1 -github.com/alecthomas/participle/v2/grammar.go:139.6,140.46 1 1 -github.com/alecthomas/participle/v2/grammar.go:140.46,142.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:142.9,142.37 1 1 -github.com/alecthomas/participle/v2/grammar.go:142.37,143.14 1 1 -github.com/alecthomas/participle/v2/grammar.go:145.3,146.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:146.17,148.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:149.3,149.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:149.18,150.14 1 1 -github.com/alecthomas/participle/v2/grammar.go:152.3,152.25 1 1 -github.com/alecthomas/participle/v2/grammar.go:152.25,155.4 2 1 -github.com/alecthomas/participle/v2/grammar.go:155.9,158.4 2 1 -github.com/alecthomas/participle/v2/grammar.go:160.2,160.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:160.22,162.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:163.2,163.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:163.22,165.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:166.2,166.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:169.103,171.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:171.16,173.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:174.2,174.16 1 1 -github.com/alecthomas/participle/v2/grammar.go:175.11,176.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:177.55,178.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:179.16,180.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:181.11,182.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:183.11,184.35 1 1 -github.com/alecthomas/participle/v2/grammar.go:185.11,187.30 1 1 -github.com/alecthomas/participle/v2/grammar.go:188.21,189.34 1 1 -github.com/alecthomas/participle/v2/grammar.go:190.17,192.18 2 0 -github.com/alecthomas/participle/v2/grammar.go:193.10,194.19 1 1 -github.com/alecthomas/participle/v2/grammar.go:194.19,196.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:197.3,197.51 1 1 -github.com/alecthomas/participle/v2/grammar.go:201.92,203.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:203.16,205.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:206.2,206.37 1 1 -github.com/alecthomas/participle/v2/grammar.go:210.88,213.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:213.16,215.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:216.2,216.16 1 1 -github.com/alecthomas/participle/v2/grammar.go:217.11,218.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:219.11,220.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:221.11,222.34 1 1 -github.com/alecthomas/participle/v2/grammar.go:223.11,224.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:225.10,226.19 1 1 -github.com/alecthomas/participle/v2/grammar.go:228.2,229.17 2 1 -github.com/alecthomas/participle/v2/grammar.go:233.76,236.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:236.16,238.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:239.2,240.23 2 1 -github.com/alecthomas/participle/v2/grammar.go:240.23,243.17 3 1 -github.com/alecthomas/participle/v2/grammar.go:243.17,245.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:246.3,246.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:248.2,249.144 2 1 -github.com/alecthomas/participle/v2/grammar.go:249.144,251.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:252.2,253.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:253.16,255.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:256.2,256.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:260.78,262.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:262.16,264.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:265.2,265.33 1 1 -github.com/alecthomas/participle/v2/grammar.go:265.33,267.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:268.2,269.9 2 1 -github.com/alecthomas/participle/v2/grammar.go:269.9,271.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:272.2,272.59 1 1 -github.com/alecthomas/participle/v2/grammar.go:276.77,279.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:279.16,281.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:282.2,284.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:284.16,286.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:287.2,287.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:287.22,289.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:290.2,290.15 1 1 -github.com/alecthomas/participle/v2/grammar.go:294.79,297.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:297.16,299.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:300.2,302.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:302.16,304.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:305.2,305.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:305.22,307.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:308.2,308.15 1 1 -github.com/alecthomas/participle/v2/grammar.go:312.74,315.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:315.16,317.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:318.2,318.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:318.22,320.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:321.2,322.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:322.16,324.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:325.2,325.32 1 1 -github.com/alecthomas/participle/v2/grammar.go:329.86,333.16 4 1 -github.com/alecthomas/participle/v2/grammar.go:333.16,335.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:336.2,336.19 1 1 -github.com/alecthomas/participle/v2/grammar.go:337.11,338.19 1 1 -github.com/alecthomas/participle/v2/grammar.go:339.11,340.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:341.10,342.61 1 1 -github.com/alecthomas/participle/v2/grammar.go:344.2,345.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:345.16,347.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:348.2,348.61 1 1 -github.com/alecthomas/participle/v2/grammar.go:352.77,354.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:354.16,356.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:357.2,358.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:358.16,360.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:361.2,361.22 1 1 -github.com/alecthomas/participle/v2/grammar.go:361.22,363.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:364.2,364.18 1 1 -github.com/alecthomas/participle/v2/grammar.go:370.77,373.16 3 1 -github.com/alecthomas/participle/v2/grammar.go:373.16,375.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:376.2,376.29 1 1 -github.com/alecthomas/participle/v2/grammar.go:383.73,385.16 2 1 -github.com/alecthomas/participle/v2/grammar.go:385.16,387.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:388.2,391.16 4 1 -github.com/alecthomas/participle/v2/grammar.go:391.16,393.3 1 0 -github.com/alecthomas/participle/v2/grammar.go:394.2,394.23 1 1 -github.com/alecthomas/participle/v2/grammar.go:394.23,397.17 3 1 -github.com/alecthomas/participle/v2/grammar.go:397.17,399.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:400.3,400.34 1 1 -github.com/alecthomas/participle/v2/grammar.go:400.34,402.4 1 1 -github.com/alecthomas/participle/v2/grammar.go:403.3,405.10 3 1 -github.com/alecthomas/participle/v2/grammar.go:405.10,407.4 1 0 -github.com/alecthomas/participle/v2/grammar.go:409.2,409.57 1 1 -github.com/alecthomas/participle/v2/grammar.go:412.48,413.58 1 1 -github.com/alecthomas/participle/v2/grammar.go:413.58,415.3 1 1 -github.com/alecthomas/participle/v2/grammar.go:416.2,416.10 1 1 -github.com/alecthomas/participle/v2/grammar.go:419.41,421.2 1 1 -github.com/alecthomas/participle/v2/map.go:24.51,25.38 1 1 -github.com/alecthomas/participle/v2/map.go:25.38,31.3 2 1 -github.com/alecthomas/participle/v2/map.go:37.38,38.21 1 1 -github.com/alecthomas/participle/v2/map.go:38.21,40.3 1 1 -github.com/alecthomas/participle/v2/map.go:41.2,41.54 1 1 -github.com/alecthomas/participle/v2/map.go:41.54,43.17 2 1 -github.com/alecthomas/participle/v2/map.go:43.17,45.4 1 0 -github.com/alecthomas/participle/v2/map.go:46.3,47.16 2 1 -github.com/alecthomas/participle/v2/map.go:51.40,55.14 4 1 -github.com/alecthomas/participle/v2/map.go:55.14,57.17 2 1 -github.com/alecthomas/participle/v2/map.go:57.17,59.4 1 0 -github.com/alecthomas/participle/v2/map.go:60.3,61.23 2 1 -github.com/alecthomas/participle/v2/map.go:63.2,63.17 1 1 -github.com/alecthomas/participle/v2/map.go:67.36,68.58 1 1 -github.com/alecthomas/participle/v2/map.go:68.58,71.3 2 1 -github.com/alecthomas/participle/v2/map.go:75.36,76.38 1 1 -github.com/alecthomas/participle/v2/map.go:76.38,79.3 2 1 -github.com/alecthomas/participle/v2/map.go:90.64,90.88 1 1 -github.com/alecthomas/participle/v2/map.go:92.82,94.16 2 1 -github.com/alecthomas/participle/v2/map.go:94.16,96.3 1 0 -github.com/alecthomas/participle/v2/map.go:97.2,97.40 1 1 -github.com/alecthomas/participle/v2/map.go:105.52,107.16 2 1 -github.com/alecthomas/participle/v2/map.go:107.16,109.3 1 0 -github.com/alecthomas/participle/v2/map.go:110.2,110.20 1 1 -github.com/alecthomas/participle/v2/nodes.go:43.47,44.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:44.17,46.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:47.2,47.36 1 1 -github.com/alecthomas/participle/v2/nodes.go:47.36,49.3 1 0 -github.com/alecthomas/participle/v2/nodes.go:49.8,51.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:59.39,59.57 1 0 -github.com/alecthomas/participle/v2/nodes.go:60.39,60.62 1 0 -github.com/alecthomas/participle/v2/nodes.go:62.101,67.16 5 1 -github.com/alecthomas/participle/v2/nodes.go:67.16,68.23 1 1 -github.com/alecthomas/participle/v2/nodes.go:68.23,70.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:71.3,71.18 1 0 -github.com/alecthomas/participle/v2/nodes.go:73.2,73.40 1 1 -github.com/alecthomas/participle/v2/nodes.go:82.36,82.54 1 0 -github.com/alecthomas/participle/v2/nodes.go:83.36,83.59 1 0 -github.com/alecthomas/participle/v2/nodes.go:85.98,88.58 3 1 -github.com/alecthomas/participle/v2/nodes.go:88.58,89.23 1 0 -github.com/alecthomas/participle/v2/nodes.go:89.23,91.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:92.3,92.18 1 0 -github.com/alecthomas/participle/v2/nodes.go:94.2,94.41 1 1 -github.com/alecthomas/participle/v2/nodes.go:103.35,103.53 1 0 -github.com/alecthomas/participle/v2/nodes.go:104.35,104.58 1 1 -github.com/alecthomas/participle/v2/nodes.go:106.97,109.16 3 1 -github.com/alecthomas/participle/v2/nodes.go:109.16,111.3 1 0 -github.com/alecthomas/participle/v2/nodes.go:112.2,112.22 1 1 -github.com/alecthomas/participle/v2/nodes.go:112.22,114.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:115.2,115.18 1 1 -github.com/alecthomas/participle/v2/nodes.go:128.40,134.50 3 1 -github.com/alecthomas/participle/v2/nodes.go:134.50,136.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:137.2,138.50 2 1 -github.com/alecthomas/participle/v2/nodes.go:138.50,140.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:141.2,142.36 2 1 -github.com/alecthomas/participle/v2/nodes.go:142.36,144.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:145.2,145.10 1 1 -github.com/alecthomas/participle/v2/nodes.go:148.35,148.53 1 1 -github.com/alecthomas/participle/v2/nodes.go:149.35,149.58 1 1 -github.com/alecthomas/participle/v2/nodes.go:151.97,157.50 6 1 -github.com/alecthomas/participle/v2/nodes.go:157.50,159.57 1 1 -github.com/alecthomas/participle/v2/nodes.go:159.57,167.4 6 1 -github.com/alecthomas/participle/v2/nodes.go:168.3,170.34 3 1 -github.com/alecthomas/participle/v2/nodes.go:171.8,171.23 1 1 -github.com/alecthomas/participle/v2/nodes.go:171.23,173.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:174.2,178.41 5 1 -github.com/alecthomas/participle/v2/nodes.go:181.76,182.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:182.28,184.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:185.2,186.53 2 1 -github.com/alecthomas/participle/v2/nodes.go:189.74,190.31 1 1 -github.com/alecthomas/participle/v2/nodes.go:190.31,192.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:193.2,194.53 2 1 -github.com/alecthomas/participle/v2/nodes.go:197.74,198.31 1 1 -github.com/alecthomas/participle/v2/nodes.go:198.31,200.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:201.2,201.65 1 1 -github.com/alecthomas/participle/v2/nodes.go:206.41,207.11 1 0 -github.com/alecthomas/participle/v2/nodes.go:208.22,209.13 1 0 -github.com/alecthomas/participle/v2/nodes.go:210.27,211.14 1 0 -github.com/alecthomas/participle/v2/nodes.go:212.28,213.14 1 0 -github.com/alecthomas/participle/v2/nodes.go:214.27,215.14 1 0 -github.com/alecthomas/participle/v2/nodes.go:216.26,217.14 1 0 -github.com/alecthomas/participle/v2/nodes.go:219.2,219.13 1 0 -github.com/alecthomas/participle/v2/nodes.go:242.35,242.53 1 1 -github.com/alecthomas/participle/v2/nodes.go:243.35,243.78 1 0 -github.com/alecthomas/participle/v2/nodes.go:244.97,249.16 4 1 -github.com/alecthomas/participle/v2/nodes.go:250.26,252.17 2 1 -github.com/alecthomas/participle/v2/nodes.go:252.17,254.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:255.3,255.20 1 1 -github.com/alecthomas/participle/v2/nodes.go:255.20,258.4 2 1 -github.com/alecthomas/participle/v2/nodes.go:259.3,259.18 1 1 -github.com/alecthomas/participle/v2/nodes.go:260.22,261.35 1 1 -github.com/alecthomas/participle/v2/nodes.go:262.27,263.10 1 1 -github.com/alecthomas/participle/v2/nodes.go:264.28,266.22 2 1 -github.com/alecthomas/participle/v2/nodes.go:267.27,269.22 2 1 -github.com/alecthomas/participle/v2/nodes.go:271.2,272.33 2 1 -github.com/alecthomas/participle/v2/nodes.go:272.33,275.17 3 1 -github.com/alecthomas/participle/v2/nodes.go:275.17,278.76 2 1 -github.com/alecthomas/participle/v2/nodes.go:278.76,281.33 2 1 -github.com/alecthomas/participle/v2/nodes.go:281.33,283.6 1 0 -github.com/alecthomas/participle/v2/nodes.go:284.5,285.13 2 1 -github.com/alecthomas/participle/v2/nodes.go:288.4,288.29 1 1 -github.com/alecthomas/participle/v2/nodes.go:288.29,291.5 2 1 -github.com/alecthomas/participle/v2/nodes.go:292.4,292.9 1 1 -github.com/alecthomas/participle/v2/nodes.go:294.3,296.15 3 1 -github.com/alecthomas/participle/v2/nodes.go:296.15,297.9 1 1 -github.com/alecthomas/participle/v2/nodes.go:301.2,302.30 2 1 -github.com/alecthomas/participle/v2/nodes.go:302.30,304.3 1 0 -github.com/alecthomas/participle/v2/nodes.go:306.2,306.34 1 1 -github.com/alecthomas/participle/v2/nodes.go:306.34,308.3 1 0 -github.com/alecthomas/participle/v2/nodes.go:310.2,310.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:310.28,312.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:313.2,313.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:322.44,322.62 1 0 -github.com/alecthomas/participle/v2/nodes.go:323.44,323.73 1 0 -github.com/alecthomas/participle/v2/nodes.go:325.106,332.40 6 1 -github.com/alecthomas/participle/v2/nodes.go:332.40,334.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:335.2,335.31 1 1 -github.com/alecthomas/participle/v2/nodes.go:343.41,343.59 1 0 -github.com/alecthomas/participle/v2/nodes.go:344.41,344.67 1 1 -github.com/alecthomas/participle/v2/nodes.go:346.103,353.28 3 1 -github.com/alecthomas/participle/v2/nodes.go:353.28,355.56 2 1 -github.com/alecthomas/participle/v2/nodes.go:355.56,357.29 1 1 -github.com/alecthomas/participle/v2/nodes.go:357.29,359.5 1 0 -github.com/alecthomas/participle/v2/nodes.go:362.4,362.39 1 1 -github.com/alecthomas/participle/v2/nodes.go:362.39,366.5 3 1 -github.com/alecthomas/participle/v2/nodes.go:367.9,367.26 1 1 -github.com/alecthomas/participle/v2/nodes.go:367.26,370.40 3 1 -github.com/alecthomas/participle/v2/nodes.go:370.40,371.115 1 0 -github.com/alecthomas/participle/v2/nodes.go:373.4,374.21 2 1 -github.com/alecthomas/participle/v2/nodes.go:377.2,377.23 1 1 -github.com/alecthomas/participle/v2/nodes.go:377.23,380.3 2 1 -github.com/alecthomas/participle/v2/nodes.go:381.2,381.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:391.38,391.56 1 1 -github.com/alecthomas/participle/v2/nodes.go:392.38,392.61 1 1 -github.com/alecthomas/participle/v2/nodes.go:394.100,396.35 2 1 -github.com/alecthomas/participle/v2/nodes.go:396.35,399.17 3 1 -github.com/alecthomas/participle/v2/nodes.go:399.17,401.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:402.3,402.19 1 1 -github.com/alecthomas/participle/v2/nodes.go:402.19,404.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:404.14,406.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:407.4,408.72 2 1 -github.com/alecthomas/participle/v2/nodes.go:413.3,413.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:413.17,415.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:417.2,417.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:426.37,426.55 1 0 -github.com/alecthomas/participle/v2/nodes.go:427.37,427.59 1 1 -github.com/alecthomas/participle/v2/nodes.go:429.99,433.14 4 1 -github.com/alecthomas/participle/v2/nodes.go:433.14,435.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:436.2,436.16 1 1 -github.com/alecthomas/participle/v2/nodes.go:436.16,438.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:439.2,439.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:439.14,441.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:442.2,442.37 1 1 -github.com/alecthomas/participle/v2/nodes.go:451.39,451.57 1 0 -github.com/alecthomas/participle/v2/nodes.go:452.39,452.92 1 1 -github.com/alecthomas/participle/v2/nodes.go:454.101,456.56 2 1 -github.com/alecthomas/participle/v2/nodes.go:456.56,458.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:459.2,459.25 1 1 -github.com/alecthomas/participle/v2/nodes.go:459.25,461.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:462.2,463.59 2 1 -github.com/alecthomas/participle/v2/nodes.go:473.37,473.55 1 0 -github.com/alecthomas/participle/v2/nodes.go:474.37,474.89 1 1 -github.com/alecthomas/participle/v2/nodes.go:476.99,478.36 2 1 -github.com/alecthomas/participle/v2/nodes.go:478.36,480.34 2 1 -github.com/alecthomas/participle/v2/nodes.go:480.34,482.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:482.9,484.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:485.3,485.54 1 1 -github.com/alecthomas/participle/v2/nodes.go:487.2,488.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:488.18,491.3 2 1 -github.com/alecthomas/participle/v2/nodes.go:492.2,492.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:499.38,499.56 1 0 -github.com/alecthomas/participle/v2/nodes.go:500.38,500.61 1 0 -github.com/alecthomas/participle/v2/nodes.go:502.100,508.18 4 1 -github.com/alecthomas/participle/v2/nodes.go:508.18,511.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:513.2,514.30 2 1 -github.com/alecthomas/participle/v2/nodes.go:514.30,517.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:520.2,521.58 2 1 -github.com/alecthomas/participle/v2/nodes.go:527.87,528.27 1 1 -github.com/alecthomas/participle/v2/nodes.go:528.27,529.75 1 1 -github.com/alecthomas/participle/v2/nodes.go:529.75,531.20 1 1 -github.com/alecthomas/participle/v2/nodes.go:531.20,533.5 1 0 -github.com/alecthomas/participle/v2/nodes.go:534.4,534.16 1 1 -github.com/alecthomas/participle/v2/nodes.go:538.3,538.27 1 1 -github.com/alecthomas/participle/v2/nodes.go:538.27,539.21 1 1 -github.com/alecthomas/participle/v2/nodes.go:539.21,541.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:542.4,543.12 2 1 -github.com/alecthomas/participle/v2/nodes.go:546.3,547.15 2 1 -github.com/alecthomas/participle/v2/nodes.go:548.79,550.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:550.18,552.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:553.4,554.15 2 1 -github.com/alecthomas/participle/v2/nodes.go:556.84,558.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:558.18,560.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:561.4,562.16 2 1 -github.com/alecthomas/participle/v2/nodes.go:564.21,565.29 1 1 -github.com/alecthomas/participle/v2/nodes.go:567.41,569.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:569.18,571.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:572.4,573.17 2 1 -github.com/alecthomas/participle/v2/nodes.go:576.3,576.23 1 1 -github.com/alecthomas/participle/v2/nodes.go:578.2,578.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:581.40,582.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:583.35,584.11 1 1 -github.com/alecthomas/participle/v2/nodes.go:585.37,586.12 1 1 -github.com/alecthomas/participle/v2/nodes.go:587.54,588.12 1 1 -github.com/alecthomas/participle/v2/nodes.go:589.54,590.12 1 1 -github.com/alecthomas/participle/v2/nodes.go:591.33,592.25 1 1 -github.com/alecthomas/participle/v2/nodes.go:594.2,594.44 1 0 -github.com/alecthomas/participle/v2/nodes.go:597.69,598.26 1 1 -github.com/alecthomas/participle/v2/nodes.go:598.26,600.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:601.2,601.32 1 1 -github.com/alecthomas/participle/v2/nodes.go:601.32,602.22 1 1 -github.com/alecthomas/participle/v2/nodes.go:602.22,604.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:605.3,607.13 3 0 -github.com/alecthomas/participle/v2/nodes.go:609.2,609.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:619.122,623.29 2 1 -github.com/alecthomas/participle/v2/nodes.go:623.29,624.16 1 1 -github.com/alecthomas/participle/v2/nodes.go:624.16,628.4 3 1 -github.com/alecthomas/participle/v2/nodes.go:628.9,630.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:633.2,634.21 2 1 -github.com/alecthomas/participle/v2/nodes.go:634.21,636.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:638.2,638.27 1 1 -github.com/alecthomas/participle/v2/nodes.go:638.27,641.3 2 1 -github.com/alecthomas/participle/v2/nodes.go:643.2,643.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:643.28,646.3 2 1 -github.com/alecthomas/participle/v2/nodes.go:648.2,648.17 1 1 -github.com/alecthomas/participle/v2/nodes.go:648.17,649.50 1 1 -github.com/alecthomas/participle/v2/nodes.go:649.50,651.33 2 1 -github.com/alecthomas/participle/v2/nodes.go:651.33,653.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:654.4,655.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:655.18,657.5 1 0 -github.com/alecthomas/participle/v2/nodes.go:658.4,658.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:659.9,659.74 1 1 -github.com/alecthomas/participle/v2/nodes.go:659.74,660.33 1 1 -github.com/alecthomas/participle/v2/nodes.go:660.33,661.75 1 1 -github.com/alecthomas/participle/v2/nodes.go:661.75,663.6 1 0 -github.com/alecthomas/participle/v2/nodes.go:665.4,665.14 1 1 -github.com/alecthomas/participle/v2/nodes.go:669.2,669.31 1 1 -github.com/alecthomas/participle/v2/nodes.go:669.31,671.100 2 1 -github.com/alecthomas/participle/v2/nodes.go:671.100,672.43 1 1 -github.com/alecthomas/participle/v2/nodes.go:672.43,674.5 1 1 -github.com/alecthomas/participle/v2/nodes.go:675.4,675.33 1 1 -github.com/alecthomas/participle/v2/nodes.go:675.33,677.71 2 1 -github.com/alecthomas/participle/v2/nodes.go:677.71,679.6 1 0 -github.com/alecthomas/participle/v2/nodes.go:680.5,681.46 2 1 -github.com/alecthomas/participle/v2/nodes.go:681.46,683.6 1 1 -github.com/alecthomas/participle/v2/nodes.go:684.5,684.39 1 1 -github.com/alecthomas/participle/v2/nodes.go:686.9,688.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:688.18,690.5 1 0 -github.com/alecthomas/participle/v2/nodes.go:691.4,691.43 1 1 -github.com/alecthomas/participle/v2/nodes.go:693.3,693.13 1 1 -github.com/alecthomas/participle/v2/nodes.go:697.2,697.32 1 1 -github.com/alecthomas/participle/v2/nodes.go:697.32,699.17 2 1 -github.com/alecthomas/participle/v2/nodes.go:699.17,701.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:702.3,702.27 1 1 -github.com/alecthomas/participle/v2/nodes.go:702.27,704.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:705.3,706.32 2 1 -github.com/alecthomas/participle/v2/nodes.go:706.32,708.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:709.3,710.13 2 1 -github.com/alecthomas/participle/v2/nodes.go:715.2,715.25 1 1 -github.com/alecthomas/participle/v2/nodes.go:715.25,717.32 2 1 -github.com/alecthomas/participle/v2/nodes.go:717.32,719.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:720.3,720.71 1 1 -github.com/alecthomas/participle/v2/nodes.go:723.2,724.16 2 1 -github.com/alecthomas/participle/v2/nodes.go:724.16,726.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:727.2,727.26 1 1 -github.com/alecthomas/participle/v2/nodes.go:727.26,729.3 1 1 -github.com/alecthomas/participle/v2/nodes.go:731.2,733.18 2 1 -github.com/alecthomas/participle/v2/nodes.go:735.78,736.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:736.28,738.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:738.9,740.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:741.83,742.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:742.28,744.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:744.9,746.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:748.40,749.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:749.28,751.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:751.9,753.4 1 1 -github.com/alecthomas/participle/v2/nodes.go:755.55,756.60 1 1 -github.com/alecthomas/participle/v2/nodes.go:756.60,758.9 2 1 -github.com/alecthomas/participle/v2/nodes.go:760.3,760.28 1 1 -github.com/alecthomas/participle/v2/nodes.go:760.28,762.4 1 0 -github.com/alecthomas/participle/v2/nodes.go:763.3,763.12 1 1 -github.com/alecthomas/participle/v2/nodes.go:765.10,766.85 1 0 -github.com/alecthomas/participle/v2/nodes.go:768.2,768.12 1 1 -github.com/alecthomas/participle/v2/options.go:20.41,21.38 1 1 -github.com/alecthomas/participle/v2/options.go:21.38,24.3 2 1 -github.com/alecthomas/participle/v2/options.go:41.33,42.38 1 1 -github.com/alecthomas/participle/v2/options.go:42.38,45.3 2 1 -github.com/alecthomas/participle/v2/options.go:52.47,53.38 1 1 -github.com/alecthomas/participle/v2/options.go:53.38,54.32 1 1 -github.com/alecthomas/participle/v2/options.go:54.32,56.4 1 1 -github.com/alecthomas/participle/v2/options.go:57.3,57.13 1 1 -github.com/alecthomas/participle/v2/options.go:72.80,73.38 1 1 -github.com/alecthomas/participle/v2/options.go:73.38,76.53 3 1 -github.com/alecthomas/participle/v2/options.go:76.53,78.4 1 0 -github.com/alecthomas/participle/v2/options.go:79.3,81.13 3 1 -github.com/alecthomas/participle/v2/options.go:99.40,100.38 1 1 -github.com/alecthomas/participle/v2/options.go:100.38,103.44 3 1 -github.com/alecthomas/participle/v2/options.go:103.44,105.4 1 0 -github.com/alecthomas/participle/v2/options.go:106.3,107.29 2 1 -github.com/alecthomas/participle/v2/options.go:107.29,109.4 1 1 -github.com/alecthomas/participle/v2/options.go:110.3,111.13 2 1 -github.com/alecthomas/participle/v2/options.go:119.37,120.31 1 1 -github.com/alecthomas/participle/v2/options.go:120.31,122.3 1 1 -github.com/alecthomas/participle/v2/options.go:128.41,129.31 1 1 -github.com/alecthomas/participle/v2/options.go:129.31,131.3 1 1 -github.com/alecthomas/participle/v2/options.go:151.58,152.31 1 1 -github.com/alecthomas/participle/v2/options.go:152.31,153.24 1 1 -github.com/alecthomas/participle/v2/options.go:153.24,157.4 1 1 -github.com/alecthomas/participle/v2/options.go:158.3,158.71 1 1 -github.com/alecthomas/participle/v2/options.go:164.45,165.31 1 1 -github.com/alecthomas/participle/v2/options.go:165.31,166.24 1 1 -github.com/alecthomas/participle/v2/options.go:166.24,168.4 1 1 -github.com/alecthomas/participle/v2/options.go:169.3,169.29 1 1 -github.com/alecthomas/participle/v2/parser.go:42.75,45.9 3 1 -github.com/alecthomas/participle/v2/parser.go:45.9,47.3 1 0 -github.com/alecthomas/participle/v2/parser.go:48.2,48.34 1 1 -github.com/alecthomas/participle/v2/parser.go:52.53,54.16 2 1 -github.com/alecthomas/participle/v2/parser.go:54.16,55.13 1 0 -github.com/alecthomas/participle/v2/parser.go:57.2,57.15 1 1 -github.com/alecthomas/participle/v2/parser.go:66.69,75.33 2 1 -github.com/alecthomas/participle/v2/parser.go:75.33,76.49 1 1 -github.com/alecthomas/participle/v2/parser.go:76.49,78.4 1 0 -github.com/alecthomas/participle/v2/parser.go:81.2,82.24 2 1 -github.com/alecthomas/participle/v2/parser.go:82.24,84.36 2 1 -github.com/alecthomas/participle/v2/parser.go:84.36,85.32 1 1 -github.com/alecthomas/participle/v2/parser.go:85.32,87.5 1 0 -github.com/alecthomas/participle/v2/parser.go:87.10,88.43 1 1 -github.com/alecthomas/participle/v2/parser.go:88.43,89.40 1 1 -github.com/alecthomas/participle/v2/parser.go:89.40,91.7 1 0 -github.com/alecthomas/participle/v2/parser.go:91.12,93.7 1 1 -github.com/alecthomas/participle/v2/parser.go:97.3,97.76 1 1 -github.com/alecthomas/participle/v2/parser.go:97.76,103.31 5 1 -github.com/alecthomas/participle/v2/parser.go:103.31,105.19 2 1 -github.com/alecthomas/participle/v2/parser.go:105.19,107.6 1 0 -github.com/alecthomas/participle/v2/parser.go:109.4,109.17 1 1 -github.com/alecthomas/participle/v2/parser.go:113.2,114.60 2 1 -github.com/alecthomas/participle/v2/parser.go:114.60,116.3 1 0 -github.com/alecthomas/participle/v2/parser.go:117.2,117.58 1 1 -github.com/alecthomas/participle/v2/parser.go:117.58,119.3 1 0 -github.com/alecthomas/participle/v2/parser.go:121.2,123.35 3 1 -github.com/alecthomas/participle/v2/parser.go:123.35,125.3 1 0 -github.com/alecthomas/participle/v2/parser.go:126.2,128.16 3 1 -github.com/alecthomas/participle/v2/parser.go:128.16,130.3 1 1 -github.com/alecthomas/participle/v2/parser.go:131.2,131.43 1 1 -github.com/alecthomas/participle/v2/parser.go:131.43,133.3 1 1 -github.com/alecthomas/participle/v2/parser.go:134.2,137.15 4 1 -github.com/alecthomas/participle/v2/parser.go:141.46,143.2 1 0 -github.com/alecthomas/participle/v2/parser.go:147.78,149.16 2 1 -github.com/alecthomas/participle/v2/parser.go:149.16,151.3 1 0 -github.com/alecthomas/participle/v2/parser.go:152.2,153.20 2 1 -github.com/alecthomas/participle/v2/parser.go:160.97,164.16 4 1 -github.com/alecthomas/participle/v2/parser.go:164.16,166.3 1 0 -github.com/alecthomas/participle/v2/parser.go:167.2,168.15 2 1 -github.com/alecthomas/participle/v2/parser.go:168.15,168.42 1 1 -github.com/alecthomas/participle/v2/parser.go:169.2,169.33 1 1 -github.com/alecthomas/participle/v2/parser.go:169.33,171.3 1 1 -github.com/alecthomas/participle/v2/parser.go:173.2,173.45 1 1 -github.com/alecthomas/participle/v2/parser.go:173.45,175.3 1 1 -github.com/alecthomas/participle/v2/parser.go:176.2,176.43 1 1 -github.com/alecthomas/participle/v2/parser.go:179.48,181.39 2 1 -github.com/alecthomas/participle/v2/parser.go:181.39,182.29 1 1 -github.com/alecthomas/participle/v2/parser.go:182.29,184.4 1 1 -github.com/alecthomas/participle/v2/parser.go:188.86,190.16 2 1 -github.com/alecthomas/participle/v2/parser.go:190.16,192.3 1 0 -github.com/alecthomas/participle/v2/parser.go:193.2,193.45 1 1 -github.com/alecthomas/participle/v2/parser.go:200.99,201.20 1 1 -github.com/alecthomas/participle/v2/parser.go:201.20,203.3 1 1 -github.com/alecthomas/participle/v2/parser.go:204.2,205.16 2 1 -github.com/alecthomas/participle/v2/parser.go:205.16,207.3 1 0 -github.com/alecthomas/participle/v2/parser.go:208.2,208.33 1 1 -github.com/alecthomas/participle/v2/parser.go:215.102,217.50 2 1 -github.com/alecthomas/participle/v2/parser.go:217.50,219.3 1 1 -github.com/alecthomas/participle/v2/parser.go:219.8,221.3 1 1 -github.com/alecthomas/participle/v2/parser.go:222.2,222.16 1 1 -github.com/alecthomas/participle/v2/parser.go:222.16,224.3 1 0 -github.com/alecthomas/participle/v2/parser.go:225.2,225.33 1 1 -github.com/alecthomas/participle/v2/parser.go:232.101,234.49 2 0 -github.com/alecthomas/participle/v2/parser.go:234.49,236.3 1 0 -github.com/alecthomas/participle/v2/parser.go:236.8,238.3 1 0 -github.com/alecthomas/participle/v2/parser.go:239.2,239.16 1 0 -github.com/alecthomas/participle/v2/parser.go:239.16,241.3 1 0 -github.com/alecthomas/participle/v2/parser.go:242.2,242.33 1 0 -github.com/alecthomas/participle/v2/parser.go:245.89,247.16 2 1 -github.com/alecthomas/participle/v2/parser.go:247.16,249.34 1 1 -github.com/alecthomas/participle/v2/parser.go:249.34,252.4 2 0 -github.com/alecthomas/participle/v2/parser.go:253.3,253.13 1 1 -github.com/alecthomas/participle/v2/parser.go:255.2,256.40 2 1 -github.com/alecthomas/participle/v2/parser.go:256.40,258.34 2 1 -github.com/alecthomas/participle/v2/parser.go:258.34,261.4 2 1 -github.com/alecthomas/participle/v2/parser.go:262.3,262.13 1 1 -github.com/alecthomas/participle/v2/parser.go:265.2,265.33 1 1 -github.com/alecthomas/participle/v2/parser.go:265.33,267.3 1 1 -github.com/alecthomas/participle/v2/parser.go:268.2,268.12 1 1 -github.com/alecthomas/participle/v2/parser.go:271.90,272.16 1 1 -github.com/alecthomas/participle/v2/parser.go:272.16,274.3 1 0 -github.com/alecthomas/participle/v2/parser.go:275.2,276.53 2 1 -github.com/alecthomas/participle/v2/parser.go:276.53,278.3 1 1 -github.com/alecthomas/participle/v2/parser.go:279.2,279.16 1 1 -github.com/alecthomas/participle/v2/parser.go:279.16,281.3 1 1 -github.com/alecthomas/participle/v2/parser.go:282.2,282.15 1 1 -github.com/alecthomas/participle/v2/parser.go:282.15,285.3 2 1 -github.com/alecthomas/participle/v2/parser.go:286.2,286.12 1 1 -github.com/alecthomas/participle/v2/parser.go:289.81,290.59 1 1 -github.com/alecthomas/participle/v2/parser.go:290.59,291.23 1 1 -github.com/alecthomas/participle/v2/parser.go:291.23,293.4 1 0 -github.com/alecthomas/participle/v2/parser.go:293.9,295.4 1 1 -github.com/alecthomas/participle/v2/parser.go:296.3,296.31 1 1 -github.com/alecthomas/participle/v2/parser.go:298.2,299.39 2 0 -github.com/alecthomas/participle/v2/parser.go:299.39,301.3 1 0 -github.com/alecthomas/participle/v2/parser.go:302.2,302.12 1 0 -github.com/alecthomas/participle/v2/parser.go:305.56,308.32 3 1 -github.com/alecthomas/participle/v2/parser.go:308.32,310.10 2 1 -github.com/alecthomas/participle/v2/parser.go:310.10,311.61 1 0 -github.com/alecthomas/participle/v2/parser.go:313.3,313.38 1 1 -github.com/alecthomas/participle/v2/parser.go:315.2,315.19 1 1 -github.com/alecthomas/participle/v2/parser.go:318.65,320.35 2 1 -github.com/alecthomas/participle/v2/parser.go:320.35,322.3 1 0 -github.com/alecthomas/participle/v2/parser.go:323.2,323.108 1 1 -github.com/alecthomas/participle/v2/parser.go:323.108,325.3 1 0 -github.com/alecthomas/participle/v2/parser.go:326.2,327.22 2 1 -github.com/alecthomas/participle/v2/parser.go:327.22,330.3 2 1 -github.com/alecthomas/participle/v2/parser.go:331.2,331.22 1 1 -github.com/alecthomas/participle/v2/parser.go:331.22,333.3 1 0 -github.com/alecthomas/participle/v2/parser.go:334.2,334.23 1 1 -github.com/alecthomas/participle/v2/recovery.go:46.40,47.24 1 1 -github.com/alecthomas/participle/v2/recovery.go:47.24,49.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:50.2,50.24 1 1 -github.com/alecthomas/participle/v2/recovery.go:50.24,52.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:53.2,54.37 2 1 -github.com/alecthomas/participle/v2/recovery.go:54.37,56.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:57.2,57.12 1 1 -github.com/alecthomas/participle/v2/recovery.go:61.40,62.24 1 1 -github.com/alecthomas/participle/v2/recovery.go:62.24,64.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:65.2,65.20 1 1 -github.com/alecthomas/participle/v2/recovery.go:91.53,96.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:100.52,105.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:108.83,111.2 2 1 -github.com/alecthomas/participle/v2/recovery.go:113.120,115.33 2 1 -github.com/alecthomas/participle/v2/recovery.go:115.33,117.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:120.2,120.6 1 1 -github.com/alecthomas/participle/v2/recovery.go:120.6,122.18 2 1 -github.com/alecthomas/participle/v2/recovery.go:122.18,124.4 1 1 -github.com/alecthomas/participle/v2/recovery.go:125.3,125.27 1 1 -github.com/alecthomas/participle/v2/recovery.go:125.27,126.26 1 1 -github.com/alecthomas/participle/v2/recovery.go:126.26,128.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:130.4,131.25 2 1 -github.com/alecthomas/participle/v2/recovery.go:131.25,133.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:134.4,134.28 1 1 -github.com/alecthomas/participle/v2/recovery.go:136.3,136.13 1 1 -github.com/alecthomas/participle/v2/recovery.go:158.76,163.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:166.87,169.2 2 1 -github.com/alecthomas/participle/v2/recovery.go:171.129,173.34 2 1 -github.com/alecthomas/participle/v2/recovery.go:173.34,175.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:178.2,179.42 2 1 -github.com/alecthomas/participle/v2/recovery.go:179.42,181.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:186.2,187.23 2 1 -github.com/alecthomas/participle/v2/recovery.go:211.89,217.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:220.97,223.2 2 1 -github.com/alecthomas/participle/v2/recovery.go:225.127,229.32 3 1 -github.com/alecthomas/participle/v2/recovery.go:229.32,232.3 2 1 -github.com/alecthomas/participle/v2/recovery.go:235.2,242.6 4 1 -github.com/alecthomas/participle/v2/recovery.go:242.6,244.18 2 1 -github.com/alecthomas/participle/v2/recovery.go:244.18,246.4 1 1 -github.com/alecthomas/participle/v2/recovery.go:249.3,249.57 1 1 -github.com/alecthomas/participle/v2/recovery.go:249.57,250.30 1 1 -github.com/alecthomas/participle/v2/recovery.go:250.30,252.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:252.10,254.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:258.3,258.27 1 1 -github.com/alecthomas/participle/v2/recovery.go:258.27,259.34 1 1 -github.com/alecthomas/participle/v2/recovery.go:259.34,261.19 2 1 -github.com/alecthomas/participle/v2/recovery.go:261.19,264.27 2 1 -github.com/alecthomas/participle/v2/recovery.go:264.27,266.7 1 1 -github.com/alecthomas/participle/v2/recovery.go:267.6,267.30 1 1 -github.com/alecthomas/participle/v2/recovery.go:269.10,269.38 1 1 -github.com/alecthomas/participle/v2/recovery.go:269.38,271.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:271.10,275.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:278.3,278.13 1 1 -github.com/alecthomas/participle/v2/recovery.go:296.67,301.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:303.120,305.33 2 1 -github.com/alecthomas/participle/v2/recovery.go:305.33,307.3 1 1 -github.com/alecthomas/participle/v2/recovery.go:309.2,309.6 1 1 -github.com/alecthomas/participle/v2/recovery.go:309.6,311.18 2 1 -github.com/alecthomas/participle/v2/recovery.go:311.18,313.4 1 1 -github.com/alecthomas/participle/v2/recovery.go:314.3,314.26 1 1 -github.com/alecthomas/participle/v2/recovery.go:314.26,315.26 1 1 -github.com/alecthomas/participle/v2/recovery.go:315.26,317.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:318.4,319.25 2 1 -github.com/alecthomas/participle/v2/recovery.go:319.25,321.5 1 1 -github.com/alecthomas/participle/v2/recovery.go:322.4,322.28 1 1 -github.com/alecthomas/participle/v2/recovery.go:324.3,324.13 1 1 -github.com/alecthomas/participle/v2/recovery.go:334.71,336.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:338.120,341.40 2 1 -github.com/alecthomas/participle/v2/recovery.go:341.40,343.16 2 1 -github.com/alecthomas/participle/v2/recovery.go:343.16,345.4 1 1 -github.com/alecthomas/participle/v2/recovery.go:347.3,347.36 1 1 -github.com/alecthomas/participle/v2/recovery.go:349.2,349.24 1 1 -github.com/alecthomas/participle/v2/recovery.go:355.58,357.2 1 1 -github.com/alecthomas/participle/v2/recovery.go:360.63,362.2 1 1 -github.com/alecthomas/participle/v2/struct.go:22.54,24.16 2 1 -github.com/alecthomas/participle/v2/struct.go:24.16,26.3 1 0 -github.com/alecthomas/participle/v2/struct.go:27.2,31.27 2 1 -github.com/alecthomas/participle/v2/struct.go:31.27,34.17 3 1 -github.com/alecthomas/participle/v2/struct.go:34.17,36.4 1 0 -github.com/alecthomas/participle/v2/struct.go:38.2,38.18 1 1 -github.com/alecthomas/participle/v2/struct.go:42.38,44.2 1 1 -github.com/alecthomas/participle/v2/struct.go:52.48,54.2 1 1 -github.com/alecthomas/participle/v2/struct.go:56.60,57.29 1 1 -github.com/alecthomas/participle/v2/struct.go:57.29,59.3 1 0 -github.com/alecthomas/participle/v2/struct.go:60.2,63.3 1 1 -github.com/alecthomas/participle/v2/struct.go:66.52,69.6 3 1 -github.com/alecthomas/participle/v2/struct.go:69.6,71.19 2 1 -github.com/alecthomas/participle/v2/struct.go:71.19,74.4 2 1 -github.com/alecthomas/participle/v2/struct.go:75.3,76.28 2 1 -github.com/alecthomas/participle/v2/struct.go:76.28,79.4 2 1 -github.com/alecthomas/participle/v2/struct.go:80.3,84.17 5 1 -github.com/alecthomas/participle/v2/struct.go:84.17,86.4 1 0 -github.com/alecthomas/participle/v2/struct.go:90.52,92.18 2 1 -github.com/alecthomas/participle/v2/struct.go:92.18,95.3 2 1 -github.com/alecthomas/participle/v2/struct.go:96.2,96.31 1 1 -github.com/alecthomas/participle/v2/struct.go:96.31,99.3 2 1 -github.com/alecthomas/participle/v2/struct.go:100.2,105.16 6 1 -github.com/alecthomas/participle/v2/struct.go:105.16,107.3 1 0 -github.com/alecthomas/participle/v2/struct.go:108.2,108.17 1 1 -github.com/alecthomas/participle/v2/struct.go:111.54,112.47 1 1 -github.com/alecthomas/participle/v2/struct.go:112.47,114.3 1 1 -github.com/alecthomas/participle/v2/struct.go:115.2,115.26 1 1 -github.com/alecthomas/participle/v2/struct.go:119.67,120.32 1 1 -github.com/alecthomas/participle/v2/struct.go:120.32,122.3 1 0 -github.com/alecthomas/participle/v2/struct.go:123.2,124.36 2 1 -github.com/alecthomas/participle/v2/struct.go:124.36,126.10 2 1 -github.com/alecthomas/participle/v2/struct.go:127.55,129.18 2 1 -github.com/alecthomas/participle/v2/struct.go:129.18,131.5 1 0 -github.com/alecthomas/participle/v2/struct.go:132.4,132.33 1 1 -github.com/alecthomas/participle/v2/struct.go:132.33,134.5 1 1 -github.com/alecthomas/participle/v2/struct.go:136.24,137.12 1 1 -github.com/alecthomas/participle/v2/struct.go:139.31,140.30 1 1 -github.com/alecthomas/participle/v2/struct.go:143.2,143.8 1 1 -github.com/alecthomas/participle/v2/struct.go:153.57,160.61 4 1 -github.com/alecthomas/participle/v2/struct.go:160.61,162.46 1 1 -github.com/alecthomas/participle/v2/struct.go:162.46,164.4 1 0 -github.com/alecthomas/participle/v2/struct.go:166.2,166.14 1 1 -github.com/alecthomas/participle/v2/struct.go:169.48,174.18 5 1 -github.com/alecthomas/participle/v2/struct.go:174.18,176.3 1 0 -github.com/alecthomas/participle/v2/struct.go:177.2,181.4 1 1 -github.com/alecthomas/participle/v2/struct.go:184.67,186.20 1 1 -github.com/alecthomas/participle/v2/struct.go:187.20,191.14 2 1 -github.com/alecthomas/participle/v2/struct.go:192.22,194.17 2 1 -github.com/alecthomas/participle/v2/struct.go:194.17,196.4 1 0 -github.com/alecthomas/participle/v2/struct.go:197.3,198.66 2 1 -github.com/alecthomas/participle/v2/struct.go:198.66,200.4 1 1 -github.com/alecthomas/participle/v2/struct.go:201.25,202.52 1 0 -github.com/alecthomas/participle/v2/struct.go:204.10,204.10 0 1 -github.com/alecthomas/participle/v2/struct.go:206.2,206.19 1 1 -github.com/alecthomas/participle/v2/validate.go:11.29,15.56 3 1 -github.com/alecthomas/participle/v2/validate.go:15.56,16.30 1 1 -github.com/alecthomas/participle/v2/validate.go:16.30,17.41 1 1 -github.com/alecthomas/participle/v2/validate.go:17.41,19.5 1 1 -github.com/alecthomas/participle/v2/validate.go:20.4,21.15 2 1 -github.com/alecthomas/participle/v2/validate.go:21.15,23.5 1 1 -github.com/alecthomas/participle/v2/validate.go:25.3,26.16 2 1 -github.com/alecthomas/participle/v2/validate.go:30.48,31.15 1 1 -github.com/alecthomas/participle/v2/validate.go:31.15,31.32 1 1 -github.com/alecthomas/participle/v2/validate.go:32.2,33.61 2 1 -github.com/alecthomas/participle/v2/validate.go:33.61,34.12 1 1 -github.com/alecthomas/participle/v2/validate.go:34.12,36.4 1 1 -github.com/alecthomas/participle/v2/validate.go:37.3,37.24 1 1 -github.com/alecthomas/participle/v2/validate.go:38.15,39.25 1 1 -github.com/alecthomas/participle/v2/validate.go:39.25,41.5 1 1 -github.com/alecthomas/participle/v2/validate.go:43.18,44.15 1 1 -github.com/alecthomas/participle/v2/validate.go:44.15,45.18 1 1 -github.com/alecthomas/participle/v2/validate.go:48.3,48.14 1 1 -github.com/alecthomas/participle/v2/validate.go:48.14,50.4 1 0 -github.com/alecthomas/participle/v2/validate.go:51.3,52.16 2 1 -github.com/alecthomas/participle/v2/validate.go:54.2,54.8 1 1 -github.com/alecthomas/participle/v2/validate.go:57.30,59.2 1 1 -github.com/alecthomas/participle/v2/visit.go:8.73,9.33 1 1 -github.com/alecthomas/participle/v2/visit.go:9.33,10.24 1 1 -github.com/alecthomas/participle/v2/visit.go:11.21,12.34 1 1 -github.com/alecthomas/participle/v2/visit.go:12.34,13.49 1 1 -github.com/alecthomas/participle/v2/visit.go:13.49,15.6 1 0 -github.com/alecthomas/participle/v2/visit.go:17.4,17.14 1 1 -github.com/alecthomas/participle/v2/visit.go:18.15,19.33 1 1 -github.com/alecthomas/participle/v2/visit.go:20.16,21.14 1 1 -github.com/alecthomas/participle/v2/visit.go:22.15,23.47 1 1 -github.com/alecthomas/participle/v2/visit.go:23.47,24.50 1 1 -github.com/alecthomas/participle/v2/visit.go:24.50,26.6 1 0 -github.com/alecthomas/participle/v2/visit.go:28.4,28.14 1 1 -github.com/alecthomas/participle/v2/visit.go:29.18,30.49 1 1 -github.com/alecthomas/participle/v2/visit.go:30.49,32.5 1 0 -github.com/alecthomas/participle/v2/visit.go:33.4,33.21 1 1 -github.com/alecthomas/participle/v2/visit.go:33.21,35.5 1 1 -github.com/alecthomas/participle/v2/visit.go:36.4,36.14 1 1 -github.com/alecthomas/participle/v2/visit.go:37.19,38.14 1 1 -github.com/alecthomas/participle/v2/visit.go:39.17,40.33 1 1 -github.com/alecthomas/participle/v2/visit.go:41.19,42.14 1 1 -github.com/alecthomas/participle/v2/visit.go:43.18,44.33 1 1 -github.com/alecthomas/participle/v2/visit.go:45.17,46.14 1 1 -github.com/alecthomas/participle/v2/visit.go:47.15,48.33 1 1 -github.com/alecthomas/participle/v2/visit.go:49.24,50.33 1 1 -github.com/alecthomas/participle/v2/visit.go:51.11,52.31 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:32.75,33.23 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:34.18,50.35 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:50.35,52.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:53.3,53.19 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:55.24,56.58 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:56.58,57.9 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:59.3,64.21 6 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:66.24,68.36 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:68.36,69.13 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:69.13,71.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:72.4,72.33 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:74.3,74.11 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:76.27,78.49 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:78.49,80.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:82.22,84.29 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:84.29,85.13 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:85.13,87.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:88.4,88.33 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:90.3,90.11 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:92.18,93.23 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:94.12,95.22 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:96.12,97.21 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:98.12,99.20 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:101.3,101.10 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:102.21,104.34 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:104.34,106.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:106.10,108.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:110.23,111.39 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:113.24,114.47 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:116.22,117.48 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:119.11,120.25 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:123.3,123.25 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:123.25,125.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:126.3,126.17 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:126.17,128.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:130.10,131.24 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:133.2,133.8 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:136.83,137.23 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:138.18,139.35 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:139.35,141.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:142.3,142.35 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:142.35,144.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:145.3,145.35 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:145.35,146.60 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:146.60,148.5 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:150.24,151.79 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:152.24,153.36 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:153.36,155.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:156.27,157.48 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:158.22,159.29 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:159.29,161.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:162.18,163.19 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:163.19,166.4 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:166.9,166.28 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:166.28,168.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:168.9,170.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:171.10,172.24 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:174.2,174.8 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:177.13,187.11 8 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:187.11,191.3 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:193.2,194.16 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:194.16,195.13 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:198.2,202.23 4 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:202.23,204.17 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:204.17,205.14 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:208.3,208.19 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:208.19,210.18 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:210.18,211.15 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:213.9,215.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:217.3,217.64 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:218.8,221.3 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:224.36,226.16 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:226.16,228.3 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:230.2,230.26 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:230.26,233.17 3 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:233.17,235.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:236.3,237.17 2 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:237.17,239.4 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:240.3,240.61 1 0 -github.com/alecthomas/participle/v2/cmd/railroad/main.go:243.2,243.8 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:26.79,37.2 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:39.100,49.2 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:51.101,53.2 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:55.99,58.16 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:58.16,60.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:61.2,61.42 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:76.63,77.21 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:77.21,79.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:80.2,85.20 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:86.14,87.100 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:87.100,90.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:90.9,90.107 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:90.107,93.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:93.9,93.106 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:93.106,96.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:96.9,96.106 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:96.106,99.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:99.9,99.104 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:99.104,102.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:102.9,102.108 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:102.108,105.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:105.9,105.111 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:105.111,108.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:110.2,110.19 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:110.19,112.23 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:112.23,114.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:115.3,115.90 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:117.2,125.8 5 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:128.65,130.39 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:130.39,132.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:133.2,133.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:137.84,139.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:139.34,140.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:140.32,142.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:143.3,143.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:146.2,146.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:146.34,147.42 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:147.42,149.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:150.3,150.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:153.2,153.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:153.34,154.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:154.18,156.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:157.3,161.27 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:161.27,163.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:163.9,165.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:166.3,166.10 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:167.34,168.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:169.40,170.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:172.3,172.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:175.2,175.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:175.34,176.31 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:176.31,178.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:179.3,179.31 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:179.31,181.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:182.3,182.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:185.2,185.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:185.34,187.15 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:187.15,190.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:191.3,191.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:194.2,194.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:194.34,195.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:195.18,196.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:196.32,198.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:198.10,200.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:202.3,202.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:205.2,205.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:205.34,206.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:206.28,208.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:209.3,209.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:209.28,211.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:212.3,212.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:212.28,214.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:215.3,215.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:217.2,218.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:218.14,220.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:221.2,223.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:227.84,229.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:229.34,230.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:230.18,232.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:233.3,234.29 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:234.29,236.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:237.3,237.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:240.2,240.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:240.34,241.31 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:241.31,243.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:244.3,244.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:247.2,247.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:247.34,248.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:248.18,250.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:251.3,252.10 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:253.31,254.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:256.3,256.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:259.2,259.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:259.34,260.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:260.18,261.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:261.32,263.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:263.10,265.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:267.3,267.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:270.2,270.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:270.34,271.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:271.32,273.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:274.3,274.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:277.2,277.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:277.34,278.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:278.28,280.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:281.3,281.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:281.28,283.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:284.3,284.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:287.2,287.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:287.34,289.15 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:289.15,292.4 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:293.3,293.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:296.2,296.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:296.34,297.31 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:297.31,299.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:300.3,300.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:303.2,303.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:303.34,304.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:304.28,306.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:307.3,307.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:307.18,308.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:308.32,310.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:310.10,312.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:314.3,314.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:317.2,317.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:317.34,318.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:318.28,320.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:321.3,321.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:321.28,323.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:324.3,324.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:324.28,326.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:327.3,327.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:329.2,330.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:330.14,332.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:333.2,335.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:339.83,341.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:341.34,342.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:342.18,344.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:345.3,346.10 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:347.31,348.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:349.18,350.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:351.31,352.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:354.3,354.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:357.2,357.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:357.34,358.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:358.18,360.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:361.3,362.10 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:363.31,364.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:365.31,366.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:367.18,368.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:369.31,370.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:372.3,372.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:375.2,375.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:375.34,376.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:376.18,377.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:377.32,379.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:379.10,381.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:383.3,383.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:386.2,386.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:386.34,387.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:387.28,389.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:390.3,390.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:390.28,392.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:393.3,393.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:395.2,396.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:396.14,398.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:399.2,401.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:405.83,407.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:407.34,408.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:408.18,410.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:411.3,412.10 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:413.31,414.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:415.31,416.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:417.31,418.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:419.31,420.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:422.3,422.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:425.2,425.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:425.34,426.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:426.28,428.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:429.3,429.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:429.18,430.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:430.32,432.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:432.10,434.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:436.3,436.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:438.2,439.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:439.14,441.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:442.2,444.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:448.81,449.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:449.32,452.3 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:453.2,453.8 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:457.85,459.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:459.34,460.58 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:460.58,462.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:463.3,463.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:466.2,466.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:466.34,467.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:467.18,469.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:470.3,474.27 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:474.27,476.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:476.9,478.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:479.3,479.10 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:480.35,481.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:482.41,483.16 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:485.3,485.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:488.2,488.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:488.34,489.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:489.18,490.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:490.32,492.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:492.10,494.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:496.3,496.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:499.2,499.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:499.34,500.33 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:500.33,502.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:503.3,503.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:506.2,506.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:506.34,507.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:507.28,509.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:510.3,510.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:510.28,512.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:513.3,513.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:513.28,515.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:516.3,516.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:518.2,519.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:519.14,521.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:522.2,524.8 3 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:528.88,530.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:530.34,531.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:531.18,533.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:534.3,535.30 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:535.30,537.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:538.3,538.12 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:541.2,541.34 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:541.34,542.28 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:542.28,544.4 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:545.3,545.18 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:545.18,546.32 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:546.32,548.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:548.10,550.5 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:552.3,552.11 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:554.2,555.14 2 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:555.14,557.3 1 0 -github.com/alecthomas/participle/v2/lexer/internal/basiclexer.go:558.2,560.8 3 0 diff --git a/vendor/github.com/alecthomas/participle/v2/doc.go b/vendor/github.com/alecthomas/participle/v2/doc.go deleted file mode 100644 index da12883..0000000 --- a/vendor/github.com/alecthomas/participle/v2/doc.go +++ /dev/null @@ -1,68 +0,0 @@ -// Package participle constructs parsers from definitions in struct tags and parses directly into -// those structs. The approach is philosophically similar to how other marshallers work in Go, -// "unmarshalling" an instance of a grammar into a struct. -// -// The supported annotation syntax is: -// -// - `@` Capture expression into the field. -// - `@@` Recursively capture using the fields own type. -// - `` Match named lexer token. -// - `( ... )` Group. -// - `"..."` Match the literal (note that the lexer must emit tokens matching this literal exactly). -// - `"...":` Match the literal, specifying the exact lexer token type to match. -// - ` ...` Match expressions. -// - ` | ` Match one of the alternatives. -// -// The following modifiers can be used after any expression: -// -// - `*` Expression can match zero or more times. -// - `+` Expression must match one or more times. -// - `?` Expression can match zero or once. -// - `!` Require a non-empty match (this is useful with a sequence of optional matches eg. `("a"? "b"? "c"?)!`). -// -// Here's an example of an EBNF grammar. -// -// type Group struct { -// Expression *Expression `"(" @@ ")"` -// } -// -// type Option struct { -// Expression *Expression `"[" @@ "]"` -// } -// -// type Repetition struct { -// Expression *Expression `"{" @@ "}"` -// } -// -// type Literal struct { -// Start string `@String` // lexer.Lexer token "String" -// End string `("…" @String)?` -// } -// -// type Term struct { -// Name string ` @Ident` -// Literal *Literal `| @@` -// Group *Group `| @@` -// Option *Option `| @@` -// Repetition *Expression `| "(" @@ ")"` -// } -// -// type Sequence struct { -// Terms []*Term `@@+` -// } -// -// type Expression struct { -// Alternatives []*Sequence `@@ ("|" @@)*` -// } -// -// type Expressions []*Expression -// -// type Production struct { -// Name string `@Ident "="` -// Expressions Expressions `@@+ "."` -// } -// -// type EBNF struct { -// Productions []*Production `@@*` -// } -package participle diff --git a/vendor/github.com/alecthomas/participle/v2/ebnf.go b/vendor/github.com/alecthomas/participle/v2/ebnf.go deleted file mode 100644 index cfdb6fe..0000000 --- a/vendor/github.com/alecthomas/participle/v2/ebnf.go +++ /dev/null @@ -1,161 +0,0 @@ -package participle - -import ( - "fmt" - "strings" -) - -// String returns the EBNF for the grammar. -// -// Productions are always upper cased. Lexer tokens are always lower case. -func (p *Parser[G]) String() string { - return ebnf(p.typeNodes[p.rootType]) -} - -type ebnfp struct { - name string - out string -} - -func ebnf(n node) string { - outp := []*ebnfp{} - switch n.(type) { - case *strct: - buildEBNF(true, n, map[node]bool{}, nil, &outp) - out := []string{} - for _, p := range outp { - out = append(out, fmt.Sprintf("%s = %s .", p.name, p.out)) - } - return strings.Join(out, "\n") - - default: - out := &ebnfp{} - buildEBNF(true, n, map[node]bool{}, out, &outp) - return out.out - } -} - -func buildEBNF(root bool, n node, seen map[node]bool, p *ebnfp, outp *[]*ebnfp) { - switch n := n.(type) { - case *disjunction: - if !root { - p.out += "(" - } - for i, next := range n.nodes { - if i > 0 { - p.out += " | " - } - buildEBNF(false, next, seen, p, outp) - } - if !root { - p.out += ")" - } - - case *union: - name := strings.ToUpper(n.typ.Name()[:1]) + n.typ.Name()[1:] - if p != nil { - p.out += name - } - if seen[n] { - return - } - p = &ebnfp{name: name} - *outp = append(*outp, p) - seen[n] = true - for i, next := range n.disjunction.nodes { - if i > 0 { - p.out += " | " - } - buildEBNF(false, next, seen, p, outp) - } - - case *custom: - name := strings.ToUpper(n.typ.Name()[:1]) + n.typ.Name()[1:] - p.out += name - - case *strct: - name := strings.ToUpper(n.typ.Name()[:1]) + n.typ.Name()[1:] - if p != nil { - p.out += name - } - if seen[n] { - return - } - seen[n] = true - p = &ebnfp{name: name} - *outp = append(*outp, p) - buildEBNF(true, n.expr, seen, p, outp) - - case *sequence: - group := n.next != nil && !root - if group { - p.out += "(" - } - for n != nil { - buildEBNF(false, n.node, seen, p, outp) - n = n.next - if n != nil { - p.out += " " - } - } - if group { - p.out += ")" - } - - case *parseable: - p.out += n.t.Name() - - case *capture: - buildEBNF(false, n.node, seen, p, outp) - - case *reference: - p.out += "<" + strings.ToLower(n.identifier) + ">" - - case *negation: - p.out += "~" - buildEBNF(false, n.node, seen, p, outp) - - case *literal: - p.out += fmt.Sprintf("%q", n.s) - - case *group: - if child, ok := n.expr.(*group); ok && child.mode == groupMatchOnce { - buildEBNF(false, child.expr, seen, p, outp) - } else if child, ok := n.expr.(*capture); ok { - if grandchild, ok := child.node.(*group); ok && grandchild.mode == groupMatchOnce { - buildEBNF(false, grandchild.expr, seen, p, outp) - } else { - buildEBNF(false, n.expr, seen, p, outp) - } - } else { - buildEBNF(false, n.expr, seen, p, outp) - } - switch n.mode { - case groupMatchNonEmpty: - p.out += "!" - case groupMatchZeroOrOne: - p.out += "?" - case groupMatchZeroOrMore: - p.out += "*" - case groupMatchOneOrMore: - p.out += "+" - case groupMatchOnce: - } - - case *lookaheadGroup: - if !n.negative { - p.out += "(?= " - } else { - p.out += "(?! " - } - buildEBNF(true, n.expr, seen, p, outp) - p.out += ")" - - case *recoveryNode: - // Recovery wrapper is transparent for EBNF generation - buildEBNF(root, n.inner, seen, p, outp) - - default: - panic(fmt.Sprintf("unsupported node type %T", n)) - } -} diff --git a/vendor/github.com/alecthomas/participle/v2/error.go b/vendor/github.com/alecthomas/participle/v2/error.go deleted file mode 100644 index bcd62a7..0000000 --- a/vendor/github.com/alecthomas/participle/v2/error.go +++ /dev/null @@ -1,102 +0,0 @@ -package participle - -import ( - "fmt" - - "github.com/alecthomas/participle/v2/lexer" -) - -// Error represents an error while parsing. -// -// The format of an Error is in the form "[:][::] ". -// -// The error will contain positional information if available. -type Error interface { - error - // Unadorned message. - Message() string - // Closest position to error location. - Position() lexer.Position -} - -// FormatError formats an error in the form "[:][::] " -func FormatError(err Error) string { - msg := "" - pos := err.Position() - if pos.Filename != "" { - msg += pos.Filename + ":" - } - if pos.Line != 0 || pos.Column != 0 { - msg += fmt.Sprintf("%d:%d:", pos.Line, pos.Column) - } - if msg != "" { - msg += " " + err.Message() - } else { - msg = err.Message() - } - return msg -} - -// UnexpectedTokenError is returned by Parse when an unexpected token is encountered. -// -// This is useful for composing parsers in order to detect when a sub-parser has terminated. -type UnexpectedTokenError struct { - Unexpected lexer.Token - Expect string - expectNode node // Usable instead of Expect, delays creating the string representation until necessary -} - -func (u *UnexpectedTokenError) Error() string { return FormatError(u) } - -func (u *UnexpectedTokenError) Message() string { // nolint: golint - var expected string - if u.expectNode != nil { - expected = fmt.Sprintf(" (expected %s)", u.expectNode) - } else if u.Expect != "" { - expected = fmt.Sprintf(" (expected %s)", u.Expect) - } - return fmt.Sprintf("unexpected token %q%s", u.Unexpected, expected) -} -func (u *UnexpectedTokenError) Position() lexer.Position { return u.Unexpected.Pos } // nolint: golint - -// ParseError is returned when a parse error occurs. -// -// It is useful for differentiating between parse errors and other errors such -// as lexing and IO errors. -type ParseError struct { - Msg string - Pos lexer.Position -} - -func (p *ParseError) Error() string { return FormatError(p) } -func (p *ParseError) Message() string { return p.Msg } -func (p *ParseError) Position() lexer.Position { return p.Pos } - -// Errorf creates a new Error at the given position. -func Errorf(pos lexer.Position, format string, args ...interface{}) Error { - return &ParseError{Msg: fmt.Sprintf(format, args...), Pos: pos} -} - -type wrappingParseError struct { - err error - ParseError -} - -func (w *wrappingParseError) Unwrap() error { return w.err } - -// Wrapf attempts to wrap an existing error in a new message. -// -// If "err" is a participle.Error, its positional information will be used and -// "pos" will be ignored. -// -// The returned error implements the Unwrap() method supported by the errors package. -func Wrapf(pos lexer.Position, err error, format string, args ...interface{}) Error { - var msg string - if perr, ok := err.(Error); ok { - pos = perr.Position() - msg = fmt.Sprintf("%s: %s", fmt.Sprintf(format, args...), perr.Message()) - } else { - msg = fmt.Sprintf("%s: %s", fmt.Sprintf(format, args...), err.Error()) - } - return &wrappingParseError{err: err, ParseError: ParseError{Msg: msg, Pos: pos}} -} diff --git a/vendor/github.com/alecthomas/participle/v2/grammar.go b/vendor/github.com/alecthomas/participle/v2/grammar.go deleted file mode 100644 index 8bc6c6c..0000000 --- a/vendor/github.com/alecthomas/participle/v2/grammar.go +++ /dev/null @@ -1,430 +0,0 @@ -package participle - -import ( - "fmt" - "reflect" - "text/scanner" - - "github.com/alecthomas/participle/v2/lexer" -) - -type generatorContext struct { - lexer.Definition - typeNodes map[reflect.Type]node - symbolsToIDs map[lexer.TokenType]string -} - -func newGeneratorContext(lex lexer.Definition) *generatorContext { - return &generatorContext{ - Definition: lex, - typeNodes: map[reflect.Type]node{}, - symbolsToIDs: lexer.SymbolsByRune(lex), - } -} - -func (g *generatorContext) addUnionDefs(defs []unionDef) error { - unionNodes := make([]*union, len(defs)) - for i, def := range defs { - if _, exists := g.typeNodes[def.typ]; exists { - return fmt.Errorf("duplicate definition for interface or union type %s", def.typ) - } - unionNode := &union{ - unionDef: def, - disjunction: disjunction{nodes: make([]node, 0, len(def.members))}, - } - g.typeNodes[def.typ], unionNodes[i] = unionNode, unionNode - } - for i, def := range defs { - unionNode := unionNodes[i] - for _, memberType := range def.members { - memberNode, err := g.parseType(memberType) - if err != nil { - return err - } - unionNode.disjunction.nodes = append(unionNode.disjunction.nodes, memberNode) - } - } - return nil -} - -func (g *generatorContext) addCustomDefs(defs []customDef) error { - for _, def := range defs { - if _, exists := g.typeNodes[def.typ]; exists { - return fmt.Errorf("duplicate definition for interface or union type %s", def.typ) - } - g.typeNodes[def.typ] = &custom{typ: def.typ, parseFn: def.parseFn} - } - return nil -} - -// Takes a type and builds a tree of nodes out of it. -func (g *generatorContext) parseType(t reflect.Type) (_ node, returnedError error) { - t = indirectType(t) - if n, ok := g.typeNodes[t]; ok { - if s, ok := n.(*strct); ok { - s.usages++ - } - return n, nil - } - if t.Implements(parseableType) { - return &parseable{t.Elem()}, nil - } - if reflect.PtrTo(t).Implements(parseableType) { - return &parseable{t}, nil - } - switch t.Kind() { // nolint: exhaustive - case reflect.Slice, reflect.Ptr: - t = indirectType(t.Elem()) - if t.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected a struct but got %T", t) - } - fallthrough - - case reflect.Struct: - slexer, err := lexStruct(t) - if err != nil { - return nil, err - } - out := newStrct(t) - g.typeNodes[t] = out // Ensure we avoid infinite recursion. - if slexer.NumField() == 0 { - return nil, fmt.Errorf("can not parse into empty struct %s", t) - } - defer decorate(&returnedError, func() string { return slexer.Field().Name }) - e, err := g.parseDisjunction(slexer) - if err != nil { - return nil, err - } - if e == nil { - return nil, fmt.Errorf("no grammar found in %s", t) - } - if token, _ := slexer.Peek(); !token.EOF() { - return nil, fmt.Errorf("unexpected input %q", token.Value) - } - out.expr = e - return out, nil - } - return nil, fmt.Errorf("%s should be a struct or should implement the Parseable interface", t) -} - -func (g *generatorContext) parseDisjunction(slexer *structLexer) (node, error) { - out := &disjunction{} - for { - n, err := g.parseSequence(slexer) - if err != nil { - return nil, err - } - if n == nil { - return nil, fmt.Errorf("alternative expression %d cannot be empty", len(out.nodes)+1) - } - out.nodes = append(out.nodes, n) - if token, _ := slexer.Peek(); token.Type != '|' { - break - } - _, err = slexer.Next() // | - if err != nil { - return nil, err - } - } - if len(out.nodes) == 1 { - return out.nodes[0], nil - } - return out, nil -} - -func (g *generatorContext) parseSequence(slexer *structLexer) (node, error) { - head := &sequence{} - cursor := head -loop: - for { - if token, err := slexer.Peek(); err != nil { - return nil, err - } else if token.Type == lexer.EOF { - break loop - } - term, err := g.parseTerm(slexer, true) - if err != nil { - return nil, err - } - if term == nil { - break loop - } - if cursor.node == nil { - cursor.head = true - cursor.node = term - } else { - cursor.next = &sequence{node: term} - cursor = cursor.next - } - } - if head.node == nil { - return nil, nil - } - if head.next == nil { - return head.node, nil - } - return head, nil -} - -func (g *generatorContext) parseTermNoModifiers(slexer *structLexer, allowUnknown bool) (node, error) { - t, err := slexer.Peek() - if err != nil { - return nil, err - } - switch t.Type { - case '@': - return g.parseCapture(slexer) - case scanner.String, scanner.RawString, scanner.Char: - return g.parseLiteral(slexer) - case '!', '~': - return g.parseNegation(slexer) - case '[': - return g.parseOptional(slexer) - case '{': - return g.parseRepetition(slexer) - case '(': - // Also handles (? used for lookahead groups - return g.parseGroup(slexer) - case scanner.Ident: - return g.parseReference(slexer) - case lexer.EOF: - _, _ = slexer.Next() - return nil, nil - default: - if allowUnknown { - return nil, nil - } - return nil, fmt.Errorf("unexpected token %v", t) - } -} - -func (g *generatorContext) parseTerm(slexer *structLexer, allowUnknown bool) (node, error) { - out, err := g.parseTermNoModifiers(slexer, allowUnknown) - if err != nil { - return nil, err - } - return g.parseModifier(slexer, out) -} - -// Parse modifiers: ?, *, + and/or ! -func (g *generatorContext) parseModifier(slexer *structLexer, expr node) (node, error) { - out := &group{expr: expr} - t, err := slexer.Peek() - if err != nil { - return nil, err - } - switch t.Type { - case '!': - out.mode = groupMatchNonEmpty - case '+': - out.mode = groupMatchOneOrMore - case '*': - out.mode = groupMatchZeroOrMore - case '?': - out.mode = groupMatchZeroOrOne - default: - return expr, nil - } - _, _ = slexer.Next() - return out, nil -} - -// @ captures into the current field. -func (g *generatorContext) parseCapture(slexer *structLexer) (node, error) { - _, _ = slexer.Next() - token, err := slexer.Peek() - if err != nil { - return nil, err - } - field := slexer.Field() - - // Parse recovery tag if present - recoveryConfig, err := parseRecoveryTag(field.RecoveryTag()) - if err != nil { - return nil, fmt.Errorf("%s: invalid recover tag: %w", field.Name, err) - } - - if token.Type == '@' { - _, _ = slexer.Next() - n, err := g.parseType(field.Type) - if err != nil { - return nil, err - } - captureNode := &capture{field, n} - return wrapWithRecovery(captureNode, recoveryConfig), nil - } - ft := indirectType(field.Type) - if ft.Kind() == reflect.Struct && ft != tokenType && ft != tokensType && !implements(ft, captureType) && !implements(ft, textUnmarshalerType) { - return nil, fmt.Errorf("%s: structs can only be parsed with @@ or by implementing the Capture or encoding.TextUnmarshaler interfaces", ft) - } - n, err := g.parseTermNoModifiers(slexer, false) - if err != nil { - return nil, err - } - captureNode := &capture{field, n} - return wrapWithRecovery(captureNode, recoveryConfig), nil -} - -// A reference in the form refers to a named token from the lexer. -func (g *generatorContext) parseReference(slexer *structLexer) (node, error) { // nolint: interfacer - token, err := slexer.Next() - if err != nil { - return nil, err - } - if token.Type != scanner.Ident { - return nil, fmt.Errorf("expected identifier but got %q", token) - } - typ, ok := g.Symbols()[token.Value] - if !ok { - return nil, fmt.Errorf("unknown token type %q", token) - } - return &reference{typ: typ, identifier: token.Value}, nil -} - -// [ ] optionally matches . -func (g *generatorContext) parseOptional(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // [ - disj, err := g.parseDisjunction(slexer) - if err != nil { - return nil, err - } - n := &group{expr: disj, mode: groupMatchZeroOrOne} - next, err := slexer.Next() - if err != nil { - return nil, err - } - if next.Type != ']' { - return nil, fmt.Errorf("expected ] but got %q", next) - } - return n, nil -} - -// { } matches 0 or more repititions of -func (g *generatorContext) parseRepetition(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // { - disj, err := g.parseDisjunction(slexer) - if err != nil { - return nil, err - } - n := &group{expr: disj, mode: groupMatchZeroOrMore} - next, err := slexer.Next() - if err != nil { - return nil, err - } - if next.Type != '}' { - return nil, fmt.Errorf("expected } but got %q", next) - } - return n, nil -} - -// ( ) groups a sub-expression -func (g *generatorContext) parseGroup(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // ( - peek, err := slexer.Peek() - if err != nil { - return nil, err - } - if peek.Type == '?' { - return g.subparseLookaheadGroup(slexer) // If there was an error peeking, code below will handle it - } - expr, err := g.subparseGroup(slexer) - if err != nil { - return nil, err - } - return &group{expr: expr}, nil -} - -// (?[!=] ) requires a grouped sub-expression either matches or doesn't match, without consuming it -func (g *generatorContext) subparseLookaheadGroup(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // ? - the opening ( was already consumed in parseGroup - var negative bool - next, err := slexer.Next() - if err != nil { - return nil, err - } - switch next.Type { - case '=': - negative = false - case '!': - negative = true - default: - return nil, fmt.Errorf("expected = or ! but got %q", next) - } - expr, err := g.subparseGroup(slexer) - if err != nil { - return nil, err - } - return &lookaheadGroup{expr: expr, negative: negative}, nil -} - -// helper parsing ) to finish parsing groups or lookahead groups -func (g *generatorContext) subparseGroup(slexer *structLexer) (node, error) { - disj, err := g.parseDisjunction(slexer) - if err != nil { - return nil, err - } - next, err := slexer.Next() // ) - if err != nil { - return nil, err - } - if next.Type != ')' { - return nil, fmt.Errorf("expected ) but got %q", next) - } - return disj, nil -} - -// A token negation -// -// Accepts both the form !"some-literal" and !SomeNamedToken -func (g *generatorContext) parseNegation(slexer *structLexer) (node, error) { - _, _ = slexer.Next() // advance the parser since we have '!' right now. - next, err := g.parseTermNoModifiers(slexer, false) - if err != nil { - return nil, err - } - return &negation{next}, nil -} - -// A literal string. -// -// Note that for this to match, the tokeniser must be able to produce this string. For example, -// if the tokeniser only produces individual characters but the literal is "hello", or vice versa. -func (g *generatorContext) parseLiteral(lex *structLexer) (node, error) { // nolint: interfacer - token, err := lex.Next() - if err != nil { - return nil, err - } - s := token.Value - t := lexer.TokenType(-1) - token, err = lex.Peek() - if err != nil { - return nil, err - } - if token.Type == ':' { - _, _ = lex.Next() - token, err = lex.Next() - if err != nil { - return nil, err - } - if token.Type != scanner.Ident { - return nil, fmt.Errorf("expected identifier for literal type constraint but got %q", token) - } - var ok bool - t, ok = g.Symbols()[token.Value] - if !ok { - return nil, fmt.Errorf("unknown token type %q in literal type constraint", token) - } - } - return &literal{s: s, t: t, tt: g.symbolsToIDs[t]}, nil -} - -func indirectType(t reflect.Type) reflect.Type { - if t.Kind() == reflect.Ptr || t.Kind() == reflect.Slice { - return indirectType(t.Elem()) - } - return t -} - -func implements(t, i reflect.Type) bool { - return t.Implements(i) || reflect.PtrTo(t).Implements(i) -} diff --git a/vendor/github.com/alecthomas/participle/v2/lexer/api.go b/vendor/github.com/alecthomas/participle/v2/lexer/api.go deleted file mode 100644 index 2784dd8..0000000 --- a/vendor/github.com/alecthomas/participle/v2/lexer/api.go +++ /dev/null @@ -1,185 +0,0 @@ -package lexer - -import ( - "fmt" - "io" - "strings" - "unicode/utf8" -) - -type TokenType int - -const ( - // EOF represents an end of file. - EOF TokenType = -(iota + 1) -) - -// EOFToken creates a new EOF token at the given position. -func EOFToken(pos Position) Token { - return Token{Type: EOF, Pos: pos} -} - -// Definition is the main entry point for lexing. -type Definition interface { - // Symbols returns a map of symbolic names to the corresponding pseudo-runes for those symbols. - // This is the same approach as used by text/scanner. For example, "EOF" might have the rune - // value of -1, "Ident" might be -2, and so on. - Symbols() map[string]TokenType - // Lex an io.Reader. - Lex(filename string, r io.Reader) (Lexer, error) -} - -// StringDefinition is an optional interface lexer Definition's can implement -// to offer a fast path for lexing strings. -type StringDefinition interface { - LexString(filename string, input string) (Lexer, error) -} - -// BytesDefinition is an optional interface lexer Definition's can implement -// to offer a fast path for lexing byte slices. -type BytesDefinition interface { - LexBytes(filename string, input []byte) (Lexer, error) -} - -// A Lexer returns tokens from a source. -type Lexer interface { - // Next consumes and returns the next token. - Next() (Token, error) -} - -// SymbolsByRune returns a map of lexer symbol names keyed by rune. -func SymbolsByRune(def Definition) map[TokenType]string { - symbols := def.Symbols() - out := make(map[TokenType]string, len(symbols)) - for s, r := range symbols { - out[r] = s - } - return out -} - -// NameOfReader attempts to retrieve the filename of a reader. -func NameOfReader(r interface{}) string { - if nr, ok := r.(interface{ Name() string }); ok { - return nr.Name() - } - return "" -} - -// Must takes the result of a Definition constructor call and returns the definition, but panics if -// it errors -// -// eg. -// -// lex = lexer.Must(lexer.Build(`Symbol = "symbol" .`)) -func Must(def Definition, err error) Definition { - if err != nil { - panic(err) - } - return def -} - -// ConsumeAll reads all tokens from a Lexer. -func ConsumeAll(lexer Lexer) ([]Token, error) { - tokens := make([]Token, 0, 1024) - for { - token, err := lexer.Next() - if err != nil { - return nil, err - } - tokens = append(tokens, token) - if token.Type == EOF { - return tokens, nil - } - } -} - -// Position of a token. -type Position struct { - Filename string - Offset int - Line int - Column int -} - -// Advance the Position based on the number of characters and newlines in "span". -func (p *Position) Advance(span string) { - p.Offset += len(span) - lines := strings.Count(span, "\n") - p.Line += lines - // Update column. - if lines == 0 { - p.Column += utf8.RuneCountInString(span) - } else { - p.Column = utf8.RuneCountInString(span[strings.LastIndex(span, "\n"):]) - } -} - -// Add returns a new Position that is the sum of this position and "pos". -// -// This is useful when parsing values from a parent grammar. -func (p Position) Add(pos Position) Position { - p.Line += pos.Line - 1 - if pos.Line > 1 { - p.Column = pos.Column - } else { - p.Column += pos.Column - 1 - } - p.Offset += pos.Offset - return p -} - -func (p Position) GoString() string { - return fmt.Sprintf("Position{Filename: %q, Offset: %d, Line: %d, Column: %d}", - p.Filename, p.Offset, p.Line, p.Column) -} - -func (p Position) String() string { - filename := p.Filename - if filename == "" { - return fmt.Sprintf("%d:%d", p.Line, p.Column) - } - return fmt.Sprintf("%s:%d:%d", filename, p.Line, p.Column) -} - -// A Token returned by a Lexer. -type Token struct { - // Type of token. This is the value keyed by symbol as returned by Definition.Symbols(). - Type TokenType - Value string - Pos Position -} - -// EOF returns true if this Token is an EOF token. -func (t Token) EOF() bool { - return t.Type == EOF -} - -func (t Token) String() string { - if t.EOF() { - return "" - } - return t.Value -} - -func (t Token) GoString() string { - if t.Pos == (Position{}) { - return fmt.Sprintf("Token{%d, %q}", t.Type, t.Value) - } - return fmt.Sprintf("Token@%s{%d, %q}", t.Pos.String(), t.Type, t.Value) -} - -// MakeSymbolTable builds a lookup table for checking token ID existence. -// -// For each symbolic name in "types", the returned map will contain the corresponding token ID as a key. -func MakeSymbolTable(def Definition, types ...string) (map[TokenType]bool, error) { - symbols := def.Symbols() - table := make(map[TokenType]bool, len(types)) - for _, symbol := range types { - rn, ok := symbols[symbol] - if !ok { - return nil, fmt.Errorf("lexer does not support symbol %q", symbol) - } - table[rn] = true - } - return table, nil -} diff --git a/vendor/github.com/alecthomas/participle/v2/lexer/doc.go b/vendor/github.com/alecthomas/participle/v2/lexer/doc.go deleted file mode 100644 index a038a16..0000000 --- a/vendor/github.com/alecthomas/participle/v2/lexer/doc.go +++ /dev/null @@ -1,28 +0,0 @@ -// Package lexer defines interfaces and implementations used by Participle to perform lexing. -// -// The primary interfaces are Definition and Lexer. There are two concrete implementations -// included. The first is one based on Go's text/scanner package. The second is Participle's -// default stateful/modal lexer. -// -// The stateful lexer is based heavily on the approach used by Chroma (and Pygments). -// -// It is a state machine defined by a map of rules keyed by state. Each rule -// is a named regex and optional operation to apply when the rule matches. -// -// As a convenience, any Rule starting with a lowercase letter will be elided from output. -// -// Lexing starts in the "Root" group. Each rule is matched in order, with the first -// successful match producing a lexeme. If the matching rule has an associated Action -// it will be executed. -// -// A state change can be introduced with the Action `Push(state)`. `Pop()` will -// return to the previous state. -// -// To reuse rules from another state, use `Include(state)`. -// -// As a special case, regexes containing backrefs in the form \N (where N is a digit) -// will match the corresponding capture group from the immediate parent group. This -// can be used to parse, among other things, heredocs. -// -// See the README, example and tests in this package for details. -package lexer diff --git a/vendor/github.com/alecthomas/participle/v2/lexer/errors.go b/vendor/github.com/alecthomas/participle/v2/lexer/errors.go deleted file mode 100644 index 6734a6c..0000000 --- a/vendor/github.com/alecthomas/participle/v2/lexer/errors.go +++ /dev/null @@ -1,50 +0,0 @@ -package lexer - -import "fmt" - -// This file exists to break circular imports. The types and functions in here -// mirror those in the participle package. - -type errorInterface interface { - error - Message() string - Position() Position -} - -// Error represents an error while lexing. -// -// It complies with the participle.Error interface. -type Error struct { - Msg string - Pos Position -} - -var _ errorInterface = &Error{} - -// Creates a new Error at the given position. -func errorf(pos Position, format string, args ...interface{}) *Error { - return &Error{Msg: fmt.Sprintf(format, args...), Pos: pos} -} - -func (e *Error) Message() string { return e.Msg } // nolint: golint -func (e *Error) Position() Position { return e.Pos } // nolint: golint - -// Error formats the error with FormatError. -func (e *Error) Error() string { return formatError(e.Pos, e.Msg) } - -// An error in the form "[:][::] " -func formatError(pos Position, message string) string { - msg := "" - if pos.Filename != "" { - msg += pos.Filename + ":" - } - if pos.Line != 0 || pos.Column != 0 { - msg += fmt.Sprintf("%d:%d:", pos.Line, pos.Column) - } - if msg != "" { - msg += " " + message - } else { - msg = message - } - return msg -} diff --git a/vendor/github.com/alecthomas/participle/v2/lexer/peek.go b/vendor/github.com/alecthomas/participle/v2/lexer/peek.go deleted file mode 100644 index 8b81b21..0000000 --- a/vendor/github.com/alecthomas/participle/v2/lexer/peek.go +++ /dev/null @@ -1,133 +0,0 @@ -package lexer - -// PeekingLexer supports arbitrary lookahead as well as cloning. -type PeekingLexer struct { - Checkpoint - tokens []Token - elide map[TokenType]bool -} - -// RawCursor index in the token stream. -type RawCursor int - -// Checkpoint wraps the mutable state of the PeekingLexer. -// -// Copying and restoring just this state is a bit faster than copying the entire PeekingLexer. -type Checkpoint struct { - rawCursor RawCursor // The raw position of the next possibly elided token - nextCursor RawCursor // The raw position of the next non-elided token - cursor int // Index of the next non-elided token among other non-elided tokens -} - -// Upgrade a Lexer to a PeekingLexer with arbitrary lookahead. -// -// "elide" is a slice of token types to elide from processing. -func Upgrade(lex Lexer, elide ...TokenType) (*PeekingLexer, error) { - r := &PeekingLexer{ - elide: make(map[TokenType]bool, len(elide)), - } - for _, rn := range elide { - r.elide[rn] = true - } - for { - t, err := lex.Next() - if err != nil { - return r, err - } - r.tokens = append(r.tokens, t) - if t.EOF() { - break - } - } - r.advanceToNonElided() - return r, nil -} - -// Range returns the slice of tokens between the two cursor points. -func (p *PeekingLexer) Range(rawStart, rawEnd RawCursor) []Token { - return p.tokens[rawStart:rawEnd] -} - -// Cursor position in tokens, excluding elided tokens. -func (c Checkpoint) Cursor() int { - return c.cursor -} - -// RawCursor position in tokens, including elided tokens. -func (c Checkpoint) RawCursor() RawCursor { - return c.rawCursor -} - -// Next consumes and returns the next token. -func (p *PeekingLexer) Next() *Token { - t := &p.tokens[p.nextCursor] - if t.EOF() { - return t - } - p.nextCursor++ - p.rawCursor = p.nextCursor - p.cursor++ - p.advanceToNonElided() - return t -} - -// Peek ahead at the next non-elided token. -func (p *PeekingLexer) Peek() *Token { - return &p.tokens[p.nextCursor] -} - -// RawPeek peeks ahead at the next raw token. -// -// Unlike Peek, this will include elided tokens. -func (p *PeekingLexer) RawPeek() *Token { - return &p.tokens[p.rawCursor] -} - -// advanceToNonElided advances nextCursor to the closest non-elided token -func (p *PeekingLexer) advanceToNonElided() { - for ; ; p.nextCursor++ { - t := &p.tokens[p.nextCursor] - if t.EOF() || !p.elide[t.Type] { - return - } - } -} - -// PeekAny peeks forward over elided and non-elided tokens. -// -// Elided tokens will be returned if they match, otherwise the next -// non-elided token will be returned. -// -// The returned RawCursor position is the location of the returned token. -// Use FastForward to move the internal cursors forward. -func (p *PeekingLexer) PeekAny(match func(Token) bool) (t Token, rawCursor RawCursor) { - for i := p.rawCursor; ; i++ { - t = p.tokens[i] - if t.EOF() || match(t) || !p.elide[t.Type] { - return t, i - } - } -} - -// FastForward the internal cursors to this RawCursor position. -func (p *PeekingLexer) FastForward(rawCursor RawCursor) { - for ; p.rawCursor <= rawCursor; p.rawCursor++ { - t := &p.tokens[p.rawCursor] - if t.EOF() { - break - } - if !p.elide[t.Type] { - p.cursor++ - } - } - p.nextCursor = p.rawCursor - p.advanceToNonElided() -} - -func (p *PeekingLexer) MakeCheckpoint() Checkpoint { - return p.Checkpoint -} - -func (p *PeekingLexer) LoadCheckpoint(checkpoint Checkpoint) { - p.Checkpoint = checkpoint -} diff --git a/vendor/github.com/alecthomas/participle/v2/lexer/simple.go b/vendor/github.com/alecthomas/participle/v2/lexer/simple.go deleted file mode 100644 index f120c2e..0000000 --- a/vendor/github.com/alecthomas/participle/v2/lexer/simple.go +++ /dev/null @@ -1,29 +0,0 @@ -package lexer - -// SimpleRule is a named regular expression. -type SimpleRule struct { - Name string - Pattern string -} - -// MustSimple creates a new Stateful lexer with only a single root state. -// The rules are tried in order. -// -// It panics if there is an error. -func MustSimple(rules []SimpleRule) *StatefulDefinition { - def, err := NewSimple(rules) - if err != nil { - panic(err) - } - return def -} - -// NewSimple creates a new Stateful lexer with only a single root state. -// The rules are tried in order. -func NewSimple(rules []SimpleRule) (*StatefulDefinition, error) { - fullRules := make([]Rule, len(rules)) - for i, rule := range rules { - fullRules[i] = Rule{Name: rule.Name, Pattern: rule.Pattern} - } - return New(Rules{"Root": fullRules}) -} diff --git a/vendor/github.com/alecthomas/participle/v2/lexer/stateful.go b/vendor/github.com/alecthomas/participle/v2/lexer/stateful.go deleted file mode 100644 index 158eef1..0000000 --- a/vendor/github.com/alecthomas/participle/v2/lexer/stateful.go +++ /dev/null @@ -1,480 +0,0 @@ -package lexer - -import ( - "encoding/json" - "errors" - "fmt" - "io" - "regexp" - "sort" - "strconv" - "strings" - "sync" - "unicode" -) - -var ( - backrefReplace = regexp.MustCompile(`(\\+)(\d)`) -) - -// A Rule matching input and possibly changing state. -type Rule struct { - Name string `json:"name"` - Pattern string `json:"pattern"` - Action Action `json:"action"` -} - -var _ json.Marshaler = &Rule{} -var _ json.Unmarshaler = &Rule{} - -type jsonRule struct { - Name string `json:"name,omitempty"` - Pattern string `json:"pattern,omitempty"` - Action json.RawMessage `json:"action,omitempty"` -} - -func (r *Rule) UnmarshalJSON(data []byte) error { - jrule := jsonRule{} - err := json.Unmarshal(data, &jrule) - if err != nil { - return err - } - r.Name = jrule.Name - r.Pattern = jrule.Pattern - jaction := struct { - Kind string `json:"kind"` - }{} - if jrule.Action == nil { - return nil - } - err = json.Unmarshal(jrule.Action, &jaction) - if err != nil { - return fmt.Errorf("lexer: could not unmarshal action %q: %w", string(jrule.Action), err) - } - var action Action - switch jaction.Kind { - case "push": - actual := ActionPush{} - if err := json.Unmarshal(jrule.Action, &actual); err != nil { - return err - } - action = actual - case "pop": - actual := ActionPop{} - if err := json.Unmarshal(jrule.Action, &actual); err != nil { - return err - } - action = actual - case "include": - actual := include{} - if err := json.Unmarshal(jrule.Action, &actual); err != nil { - return err - } - action = actual - case "": - default: - return fmt.Errorf("lexer: unknown action %q", jaction.Kind) - } - r.Action = action - return nil -} - -func (r *Rule) MarshalJSON() ([]byte, error) { - jrule := jsonRule{ - Name: r.Name, - Pattern: r.Pattern, - } - if r.Action != nil { - actionData, err := json.Marshal(r.Action) - if err != nil { - return nil, fmt.Errorf("lexer: failed to map action: %w", err) - } - jaction := map[string]interface{}{} - err = json.Unmarshal(actionData, &jaction) - if err != nil { - return nil, fmt.Errorf("lexer: failed to map action: %w", err) - } - switch r.Action.(type) { - case nil: - case ActionPop: - jaction["kind"] = "pop" - case ActionPush: - jaction["kind"] = "push" - case include: - jaction["kind"] = "include" - default: - return nil, fmt.Errorf("lexer: unsupported action %T", r.Action) - } - actionJSON, err := json.Marshal(jaction) - if err != nil { - return nil, err - } - jrule.Action = actionJSON - } - return json.Marshal(&jrule) -} - -// Rules grouped by name. -type Rules map[string][]Rule - -// compiledRule is a Rule with its pattern compiled. -type compiledRule struct { - Rule - ignore bool - RE *regexp.Regexp -} - -// compiledRules grouped by name. -type compiledRules map[string][]compiledRule - -// A Action is applied when a rule matches. -type Action interface { - // Actions are responsible for validating the match. ie. if they consumed any input. - applyAction(lexer *StatefulLexer, groups []string) error -} - -// RulesAction is an optional interface that Actions can implement. -// -// It is applied during rule construction to mutate the rule map. -type RulesAction interface { - applyRules(state string, rule int, rules compiledRules) error -} - -type validatingRule interface { - validate(rules Rules) error -} - -// ActionPop pops to the previous state when the Rule matches. -type ActionPop struct{} - -func (p ActionPop) applyAction(lexer *StatefulLexer, groups []string) error { - if groups[0] == "" { - return errors.New("did not consume any input") - } - lexer.stack = lexer.stack[:len(lexer.stack)-1] - return nil -} - -// Pop to the previous state. -func Pop() Action { - return ActionPop{} -} - -// ReturnRule signals the lexer to return immediately. -var ReturnRule = Rule{"returnToParent", "", nil} - -// Return to the parent state. -// -// Useful as the last rule in a sub-state. -func Return() Rule { return ReturnRule } - -// ActionPush pushes the current state and switches to "State" when the Rule matches. -type ActionPush struct { - State string `json:"state"` -} - -func (p ActionPush) applyAction(lexer *StatefulLexer, groups []string) error { - if groups[0] == "" { - return errors.New("did not consume any input") - } - lexer.stack = append(lexer.stack, lexerState{name: p.State, groups: groups}) - return nil -} - -func (p ActionPush) validate(rules Rules) error { - if _, ok := rules[p.State]; !ok { - return fmt.Errorf("lexer: push to unknown state %q", p.State) - } - return nil -} - -// Push to the given state. -// -// The target state will then be the set of rules used for matching -// until another Push or Pop is encountered. -func Push(state string) Action { - return ActionPush{state} -} - -type include struct { - State string `json:"state"` -} - -func (i include) applyAction(lexer *StatefulLexer, groups []string) error { - panic("should not be called") -} - -func (i include) applyRules(state string, rule int, rules compiledRules) error { - includedRules, ok := rules[i.State] - if !ok { - return fmt.Errorf("lexer: invalid include state %q", i.State) - } - clone := make([]compiledRule, len(includedRules)) - copy(clone, includedRules) - rules[state] = append(rules[state][:rule], append(clone, rules[state][rule+1:]...)...) // nolint: makezero - return nil -} - -// Include rules from another state in this one. -func Include(state string) Rule { - return Rule{Action: include{state}} -} - -// StatefulDefinition is the lexer.Definition. -type StatefulDefinition struct { - rules compiledRules - symbols map[string]TokenType - // Map of key->*regexp.Regexp - backrefCache sync.Map - matchLongest bool -} - -// MustStateful creates a new stateful lexer and panics if it is incorrect. -func MustStateful(rules Rules) *StatefulDefinition { - def, err := New(rules) - if err != nil { - panic(err) - } - return def -} - -// New constructs a new stateful lexer from rules. -func New(rules Rules) (*StatefulDefinition, error) { - compiled := compiledRules{} - for key, set := range rules { - for i, rule := range set { - if validate, ok := rule.Action.(validatingRule); ok { - if err := validate.validate(rules); err != nil { - return nil, fmt.Errorf("lexer: invalid action for rule %q: %w", rule.Name, err) - } - } - pattern := "^(?:" + rule.Pattern + ")" - var ( - re *regexp.Regexp - err error - ) - var match = backrefReplace.FindStringSubmatch(rule.Pattern) - if match == nil || len(match[1])%2 == 0 { - re, err = regexp.Compile(pattern) - if err != nil { - return nil, fmt.Errorf("lexer: %s.%d: %s", key, i, err) - } - } - compiled[key] = append(compiled[key], compiledRule{ - Rule: rule, - ignore: len(rule.Name) > 0 && unicode.IsLower(rune(rule.Name[0])), - RE: re, - }) - } - } -restart: - for state, rules := range compiled { - for i, rule := range rules { - if action, ok := rule.Action.(RulesAction); ok { - if err := action.applyRules(state, i, compiled); err != nil { - return nil, fmt.Errorf("lexer: %s.%d: %s", state, i, err) - } - goto restart - } - } - } - keys := make([]string, 0, len(compiled)) - for key := range compiled { - keys = append(keys, key) - } - symbols := map[string]TokenType{ - "EOF": EOF, - } - sort.Strings(keys) - duplicates := map[string]compiledRule{} - rn := EOF - 1 - for _, key := range keys { - for i, rule := range compiled[key] { - if dup, ok := duplicates[rule.Name]; ok && rule.Pattern != dup.Pattern { - panic(fmt.Sprintf("lexer: duplicate key %q with different patterns %q != %q", rule.Name, rule.Pattern, dup.Pattern)) - } - duplicates[rule.Name] = rule - compiled[key][i] = rule - symbols[rule.Name] = rn - rn-- - } - } - d := &StatefulDefinition{ - rules: compiled, - symbols: symbols, - } - return d, nil -} - -func (d *StatefulDefinition) MarshalJSON() ([]byte, error) { - return json.Marshal(d.rules) -} - -// Rules returns the user-provided Rules used to construct the lexer. -func (d *StatefulDefinition) Rules() Rules { - out := Rules{} - for state, rules := range d.rules { - for _, rule := range rules { - out[state] = append(out[state], rule.Rule) - } - } - return out -} - -// LexString is a fast-path implementation for lexing strings. -func (d *StatefulDefinition) LexString(filename string, s string) (Lexer, error) { - return &StatefulLexer{ - def: d, - data: s, - stack: []lexerState{{name: "Root"}}, - pos: Position{ - Filename: filename, - Line: 1, - Column: 1, - }, - }, nil -} - -func (d *StatefulDefinition) Lex(filename string, r io.Reader) (Lexer, error) { // nolint: golint - w := &strings.Builder{} - _, err := io.Copy(w, r) - if err != nil { - return nil, err - } - return d.LexString(filename, w.String()) -} - -func (d *StatefulDefinition) Symbols() map[string]TokenType { // nolint: golint - return d.symbols -} - -// lexerState stored when switching states in the lexer. -type lexerState struct { - name string - groups []string -} - -// StatefulLexer implementation. -type StatefulLexer struct { - stack []lexerState - def *StatefulDefinition - data string - pos Position -} - -func (l *StatefulLexer) Next() (Token, error) { // nolint: golint - parent := l.stack[len(l.stack)-1] - rules := l.def.rules[parent.name] -next: - for len(l.data) > 0 { - var ( - rule *compiledRule - m []int - match []int - ) - for i, candidate := range rules { - // Special case "Return()". - if candidate.Rule == ReturnRule { - l.stack = l.stack[:len(l.stack)-1] - parent = l.stack[len(l.stack)-1] - rules = l.def.rules[parent.name] - continue next - } - re, err := l.getPattern(candidate) - if err != nil { - return Token{}, errorf(l.pos, "lexer: rule %q: %s", candidate.Name, err) - } - m = re.FindStringSubmatchIndex(l.data) - if m != nil && (match == nil || m[1] > match[1]) { - match = m - rule = &rules[i] - if !l.def.matchLongest { - break - } - } - } - if match == nil || rule == nil { - sample := []rune(l.data) - if len(sample) > 16 { - sample = append(sample[:16], []rune("...")...) - } - return Token{}, errorf(l.pos, "lexer: invalid input text %q", string(sample)) - } - - if rule.Action != nil { - groups := make([]string, 0, len(match)/2) - for i := 0; i < len(match); i += 2 { - groups = append(groups, l.data[match[i]:match[i+1]]) - } - if err := rule.Action.applyAction(l, groups); err != nil { - return Token{}, errorf(l.pos, "lexer: rule %q: %s", rule.Name, err) - } - } else if match[0] == match[1] { - return Token{}, errorf(l.pos, "lexer: rule %q did not match any input", rule.Name) - } - - span := l.data[match[0]:match[1]] - l.data = l.data[match[1]:] - // l.groups = groups - - // Update position. - pos := l.pos - l.pos.Advance(span) - if rule.ignore { - parent = l.stack[len(l.stack)-1] - rules = l.def.rules[parent.name] - continue - } - return Token{ - Type: l.def.symbols[rule.Name], - Value: span, - Pos: pos, - }, nil - } - return EOFToken(l.pos), nil -} - -func (l *StatefulLexer) getPattern(candidate compiledRule) (*regexp.Regexp, error) { - if candidate.RE != nil { - return candidate.RE, nil - } - // We don't have a compiled RE. This means there are back-references - // that need to be substituted first. - return BackrefRegex(&l.def.backrefCache, candidate.Pattern, l.stack[len(l.stack)-1].groups) -} - -// BackrefRegex returns a compiled regular expression with backreferences replaced by groups. -func BackrefRegex(backrefCache *sync.Map, input string, groups []string) (*regexp.Regexp, error) { - key := input + "\000" + strings.Join(groups, "\000") - cached, ok := backrefCache.Load(key) - if ok { - return cached.(*regexp.Regexp), nil - } - - var ( - re *regexp.Regexp - err error - ) - pattern := backrefReplace.ReplaceAllStringFunc(input, func(s string) string { - var rematch = backrefReplace.FindStringSubmatch(s) - n, nerr := strconv.ParseInt(rematch[2], 10, 64) - if nerr != nil { - err = nerr - return s - } - if len(groups) == 0 || int(n) >= len(groups) { - err = fmt.Errorf("invalid group %d from parent with %d groups", n, len(groups)) - return s - } - // concatenate the leading \\\\ which are already escaped to the quoted match. - return rematch[1][:len(rematch[1])-1] + regexp.QuoteMeta(groups[n]) - }) - if err == nil { - re, err = regexp.Compile("^(?:" + pattern + ")") - } - if err != nil { - return nil, fmt.Errorf("invalid backref expansion: %q: %s", pattern, err) - } - backrefCache.Store(key, re) - return re, nil -} diff --git a/vendor/github.com/alecthomas/participle/v2/lexer/text_scanner.go b/vendor/github.com/alecthomas/participle/v2/lexer/text_scanner.go deleted file mode 100644 index 023287a..0000000 --- a/vendor/github.com/alecthomas/participle/v2/lexer/text_scanner.go +++ /dev/null @@ -1,112 +0,0 @@ -package lexer - -import ( - "bytes" - "io" - "strings" - "text/scanner" -) - -// TextScannerLexer is a lexer that uses the text/scanner module. -var ( - TextScannerLexer Definition = &textScannerLexerDefinition{} - - // DefaultDefinition defines properties for the default lexer. - DefaultDefinition = TextScannerLexer -) - -// NewTextScannerLexer constructs a Definition that uses an underlying scanner.Scanner -// -// "configure" will be called after the scanner.Scanner.Init(r) is called. If "configure" -// is nil a default scanner.Scanner will be used. -func NewTextScannerLexer(configure func(*scanner.Scanner)) Definition { - return &textScannerLexerDefinition{configure: configure} -} - -type textScannerLexerDefinition struct { - configure func(*scanner.Scanner) -} - -func (d *textScannerLexerDefinition) Lex(filename string, r io.Reader) (Lexer, error) { - l := Lex(filename, r) - if d.configure != nil { - d.configure(l.(*textScannerLexer).scanner) - } - return l, nil -} - -func (d *textScannerLexerDefinition) Symbols() map[string]TokenType { - return map[string]TokenType{ - "EOF": EOF, - "Char": scanner.Char, - "Ident": scanner.Ident, - "Int": scanner.Int, - "Float": scanner.Float, - "String": scanner.String, - "RawString": scanner.RawString, - "Comment": scanner.Comment, - } -} - -// textScannerLexer is a Lexer based on text/scanner.Scanner -type textScannerLexer struct { - scanner *scanner.Scanner - filename string - err error -} - -// Lex an io.Reader with text/scanner.Scanner. -// -// This provides very fast lexing of source code compatible with Go tokens. -// -// Note that this differs from text/scanner.Scanner in that string tokens will be unquoted. -func Lex(filename string, r io.Reader) Lexer { - s := &scanner.Scanner{} - s.Init(r) - lexer := lexWithScanner(filename, s) - lexer.scanner.Error = func(s *scanner.Scanner, msg string) { - lexer.err = errorf(Position(lexer.scanner.Pos()), "%s", msg) - } - return lexer -} - -// LexWithScanner creates a Lexer from a user-provided scanner.Scanner. -// -// Useful if you need to customise the Scanner. -func LexWithScanner(filename string, scan *scanner.Scanner) Lexer { - return lexWithScanner(filename, scan) -} - -func lexWithScanner(filename string, scan *scanner.Scanner) *textScannerLexer { - scan.Filename = filename - lexer := &textScannerLexer{ - filename: filename, - scanner: scan, - } - return lexer -} - -// LexBytes returns a new default lexer over bytes. -func LexBytes(filename string, b []byte) Lexer { - return Lex(filename, bytes.NewReader(b)) -} - -// LexString returns a new default lexer over a string. -func LexString(filename, s string) Lexer { - return Lex(filename, strings.NewReader(s)) -} - -func (t *textScannerLexer) Next() (Token, error) { - typ := t.scanner.Scan() - text := t.scanner.TokenText() - pos := Position(t.scanner.Position) - pos.Filename = t.filename - if t.err != nil { - return Token{}, t.err - } - return Token{ - Type: TokenType(typ), - Value: text, - Pos: pos, - }, nil -} diff --git a/vendor/github.com/alecthomas/participle/v2/map.go b/vendor/github.com/alecthomas/participle/v2/map.go deleted file mode 100644 index c80290c..0000000 --- a/vendor/github.com/alecthomas/participle/v2/map.go +++ /dev/null @@ -1,111 +0,0 @@ -package participle - -import ( - "io" - "strconv" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -type mapperByToken struct { - symbols []string - mapper Mapper -} - -// Mapper function for mutating tokens before being applied to the AST. -type Mapper func(token lexer.Token) (lexer.Token, error) - -// Map is an Option that configures the Parser to apply a mapping function to each Token from the lexer. -// -// This can be useful to eg. upper-case all tokens of a certain type, or dequote strings. -// -// "symbols" specifies the token symbols that the Mapper will be applied to. If empty, all tokens will be mapped. -func Map(mapper Mapper, symbols ...string) Option { - return func(p *parserOptions) error { - p.mappers = append(p.mappers, mapperByToken{ - mapper: mapper, - symbols: symbols, - }) - return nil - } -} - -// Unquote applies strconv.Unquote() to tokens of the given types. -// -// Tokens of type "String" will be unquoted if no other types are provided. -func Unquote(types ...string) Option { - if len(types) == 0 { - types = []string{"String"} - } - return Map(func(t lexer.Token) (lexer.Token, error) { - value, err := unquote(t.Value) - if err != nil { - return t, Errorf(t.Pos, "invalid quoted string %q: %s", t.Value, err.Error()) - } - t.Value = value - return t, nil - }, types...) -} - -func unquote(s string) (string, error) { - quote := s[0] - s = s[1 : len(s)-1] - out := "" - for s != "" { - value, _, tail, err := strconv.UnquoteChar(s, quote) - if err != nil { - return "", err - } - s = tail - out += string(value) - } - return out, nil -} - -// Upper is an Option that upper-cases all tokens of the given type. Useful for case normalisation. -func Upper(types ...string) Option { - return Map(func(token lexer.Token) (lexer.Token, error) { - token.Value = strings.ToUpper(token.Value) - return token, nil - }, types...) -} - -// Elide drops tokens of the specified types. -func Elide(types ...string) Option { - return func(p *parserOptions) error { - p.elide = append(p.elide, types...) - return nil - } -} - -// Apply a Mapping to all tokens coming out of a Lexer. -type mappingLexerDef struct { - l lexer.Definition - mapper Mapper -} - -var _ lexer.Definition = &mappingLexerDef{} - -func (m *mappingLexerDef) Symbols() map[string]lexer.TokenType { return m.l.Symbols() } - -func (m *mappingLexerDef) Lex(filename string, r io.Reader) (lexer.Lexer, error) { - l, err := m.l.Lex(filename, r) - if err != nil { - return nil, err - } - return &mappingLexer{l, m.mapper}, nil -} - -type mappingLexer struct { - lexer.Lexer - mapper Mapper -} - -func (m *mappingLexer) Next() (lexer.Token, error) { - t, err := m.Lexer.Next() - if err != nil { - return t, err - } - return m.mapper(t) -} diff --git a/vendor/github.com/alecthomas/participle/v2/nodes.go b/vendor/github.com/alecthomas/participle/v2/nodes.go deleted file mode 100644 index 95a754b..0000000 --- a/vendor/github.com/alecthomas/participle/v2/nodes.go +++ /dev/null @@ -1,799 +0,0 @@ -package participle - -import ( - "encoding" - "errors" - "fmt" - "reflect" - "strconv" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -var ( - // MaxIterations limits the number of elements capturable by {}. - MaxIterations = 1000000 - - positionType = reflect.TypeOf(lexer.Position{}) - tokenType = reflect.TypeOf(lexer.Token{}) - tokensType = reflect.TypeOf([]lexer.Token{}) - captureType = reflect.TypeOf((*Capture)(nil)).Elem() - textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() - parseableType = reflect.TypeOf((*Parseable)(nil)).Elem() - - // NextMatch should be returned by Parseable.Parse() method implementations to indicate - // that the node did not match and that other matches should be attempted, if appropriate. - NextMatch = errors.New("no match") // nolint: golint -) - -// A node in the grammar. -type node interface { - // Parse from scanner into value. - // - // Returned slice will be nil if the node does not match. - Parse(ctx *parseContext, parent reflect.Value) ([]reflect.Value, error) - - // Return a decent string representation of the Node. - fmt.Stringer - - fmt.GoStringer -} - -func decorate(err *error, name func() string) { - if *err == nil { - return - } - if perr, ok := (*err).(Error); ok { - *err = Errorf(perr.Position(), "%s: %s", name(), perr.Message()) - } else { - *err = &ParseError{Msg: fmt.Sprintf("%s: %s", name(), *err)} - } -} - -// A node that proxies to an implementation that implements the Parseable interface. -type parseable struct { - t reflect.Type -} - -func (p *parseable) String() string { return ebnf(p) } -func (p *parseable) GoString() string { return p.t.String() } - -func (p *parseable) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(p)() - rv := reflect.New(p.t) - v := rv.Interface().(Parseable) - err = v.Parse(&ctx.PeekingLexer) - if err != nil { - if err == NextMatch { - return nil, nil - } - return nil, err - } - return []reflect.Value{rv.Elem()}, nil -} - -// @@ (but for a custom production) -type custom struct { - typ reflect.Type - parseFn reflect.Value -} - -func (c *custom) String() string { return ebnf(c) } -func (c *custom) GoString() string { return c.typ.Name() } - -func (c *custom) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(c)() - results := c.parseFn.Call([]reflect.Value{reflect.ValueOf(&ctx.PeekingLexer)}) - if err, _ := results[1].Interface().(error); err != nil { - if err == NextMatch { - return nil, nil - } - return nil, err - } - return []reflect.Value{results[0]}, nil -} - -// @@ (for a union) -type union struct { - unionDef - disjunction disjunction -} - -func (u *union) String() string { return ebnf(u) } -func (u *union) GoString() string { return u.typ.Name() } - -func (u *union) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(u)() - vals, err := u.disjunction.Parse(ctx, parent) - if err != nil { - return nil, err - } - for i := range vals { - vals[i] = maybeRef(u.members[i], vals[i]).Convert(u.typ) - } - return vals, nil -} - -// @@ -type strct struct { - typ reflect.Type - expr node - tokensFieldIndex []int - posFieldIndex []int - endPosFieldIndex []int - recoveredFieldIndex []int // For Recovered bool field - recoveredSpanFieldIndex []int // For RecoveredSpan lexer.Position field - usages int -} - -func newStrct(typ reflect.Type) *strct { - s := &strct{ - typ: typ, - usages: 1, - } - field, ok := typ.FieldByName("Pos") - if ok && positionType.ConvertibleTo(field.Type) { - s.posFieldIndex = field.Index - } - field, ok = typ.FieldByName("EndPos") - if ok && positionType.ConvertibleTo(field.Type) { - s.endPosFieldIndex = field.Index - } - field, ok = typ.FieldByName("Tokens") - if ok && field.Type == tokensType { - s.tokensFieldIndex = field.Index - } - // Recovery metadata fields - field, ok = typ.FieldByName("Recovered") - if ok && field.Type.Kind() == reflect.Bool { - s.recoveredFieldIndex = field.Index - } - field, ok = typ.FieldByName("RecoveredSpan") - if ok && positionType.ConvertibleTo(field.Type) { - s.recoveredSpanFieldIndex = field.Index - } - return s -} - -func (s *strct) String() string { return ebnf(s) } -func (s *strct) GoString() string { return s.typ.Name() } - -func (s *strct) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(s)() - sv := reflect.New(s.typ).Elem() - start := ctx.RawCursor() - t := ctx.Peek() - recoveryStartPos := t.Pos // Track position where recovery might start - s.maybeInjectStartToken(t, sv) - if out, err = s.expr.Parse(ctx, sv); err != nil { - // Try to recover from the error - if recovered, _ := ctx.tryRecover(err, sv); recovered { - // Recovery succeeded - continue with partial result - _ = ctx.Apply() - end := ctx.RawCursor() - t = ctx.RawPeek() - s.maybeInjectEndToken(t, sv) - s.maybeInjectTokens(ctx.Range(start, end), sv) - // Inject recovery metadata - s.maybeInjectRecovered(true, sv) - s.maybeInjectRecoveredSpan(recoveryStartPos, sv) - return []reflect.Value{sv}, nil - } - _ = ctx.Apply() // Best effort to give partial AST. - ctx.MaybeUpdateError(err) - return []reflect.Value{sv}, err - } else if out == nil { - return nil, nil - } - end := ctx.RawCursor() - t = ctx.RawPeek() - s.maybeInjectEndToken(t, sv) - s.maybeInjectTokens(ctx.Range(start, end), sv) - return []reflect.Value{sv}, ctx.Apply() -} - -func (s *strct) maybeInjectStartToken(token *lexer.Token, v reflect.Value) { - if s.posFieldIndex == nil { - return - } - f := v.FieldByIndex(s.posFieldIndex) - f.Set(reflect.ValueOf(token.Pos).Convert(f.Type())) -} - -func (s *strct) maybeInjectEndToken(token *lexer.Token, v reflect.Value) { - if s.endPosFieldIndex == nil { - return - } - f := v.FieldByIndex(s.endPosFieldIndex) - f.Set(reflect.ValueOf(token.Pos).Convert(f.Type())) -} - -func (s *strct) maybeInjectTokens(tokens []lexer.Token, v reflect.Value) { - if s.tokensFieldIndex == nil { - return - } - v.FieldByIndex(s.tokensFieldIndex).Set(reflect.ValueOf(tokens)) -} - -func (s *strct) maybeInjectRecovered(recovered bool, v reflect.Value) { - if s.recoveredFieldIndex == nil { - return - } - v.FieldByIndex(s.recoveredFieldIndex).SetBool(recovered) -} - -func (s *strct) maybeInjectRecoveredSpan(pos lexer.Position, v reflect.Value) { - if s.recoveredSpanFieldIndex == nil { - return - } - f := v.FieldByIndex(s.recoveredSpanFieldIndex) - f.Set(reflect.ValueOf(pos).Convert(f.Type())) -} - -type groupMatchMode int - -func (g groupMatchMode) String() string { - switch g { - case groupMatchOnce: - return "n" - case groupMatchZeroOrOne: - return "n?" - case groupMatchZeroOrMore: - return "n*" - case groupMatchOneOrMore: - return "n+" - case groupMatchNonEmpty: - return "n!" - } - panic("??") -} - -const ( - groupMatchOnce groupMatchMode = iota - groupMatchZeroOrOne = iota - groupMatchZeroOrMore = iota - groupMatchOneOrMore = iota - groupMatchNonEmpty = iota -) - -// ( ) - match once -// ( )* - match zero or more times -// ( )+ - match one or more times -// ( )? - match zero or once -// ( )! - must be a non-empty match -// -// The additional modifier "!" forces the content of the group to be non-empty if it does match. -type group struct { - expr node - mode groupMatchMode -} - -func (g *group) String() string { return ebnf(g) } -func (g *group) GoString() string { return fmt.Sprintf("group{%s}", g.mode) } -func (g *group) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(g)() - // Configure min/max matches. - min := 1 - max := 1 - switch g.mode { - case groupMatchNonEmpty: - out, err = g.expr.Parse(ctx, parent) - if err != nil { - return out, err - } - if len(out) == 0 { - t := ctx.Peek() - return out, Errorf(t.Pos, "sub-expression %s cannot be empty", g) - } - return out, nil - case groupMatchOnce: - return g.expr.Parse(ctx, parent) - case groupMatchZeroOrOne: - min = 0 - case groupMatchZeroOrMore: - min = 0 - max = MaxIterations - case groupMatchOneOrMore: - min = 1 - max = MaxIterations - } - matches := 0 - for ; matches < max; matches++ { - branch := ctx.Branch() - v, err := g.expr.Parse(branch, parent) - if err != nil { - ctx.MaybeUpdateError(err) - // Try to recover from the error - if recovered, recoveredValues := ctx.tryRecover(err, parent); recovered { - // Recovery succeeded - accept what we have and continue - out = append(out, v...) - if len(recoveredValues) > 0 { - out = append(out, recoveredValues...) - } - ctx.Accept(branch) - continue // Try to parse more iterations after recovery - } - // Optional part failed to match. - if ctx.Stop(err, branch) { - out = append(out, v...) // Try to return as much of the parse tree as possible - return out, err - } - break - } - out = append(out, v...) - ctx.Accept(branch) - if v == nil { - break - } - } - // fmt.Printf("%d < %d < %d: out == nil? %v\n", min, matches, max, out == nil) - t := ctx.Peek() - if matches >= MaxIterations { - return nil, Errorf(t.Pos, "too many iterations of %s (> %d)", g, MaxIterations) - } - // avoid returning errors in parent nodes if the group is optional - if matches > 0 && matches < min { - return out, Errorf(t.Pos, "sub-expression %s must match at least once", g) - } - // The idea here is that something like "a"? is a successful match and that parsing should proceed. - if min == 0 && out == nil { - out = []reflect.Value{} - } - return out, nil -} - -// (?= ) for positive lookahead, (?! ) for negative lookahead; neither consumes input -type lookaheadGroup struct { - expr node - negative bool -} - -func (l *lookaheadGroup) String() string { return ebnf(l) } -func (l *lookaheadGroup) GoString() string { return "lookaheadGroup{}" } - -func (l *lookaheadGroup) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(l)() - // Create a branch to avoid advancing the parser as any match will be discarded - branch := ctx.Branch() - out, err = l.expr.Parse(branch, parent) - matchedLookahead := err == nil && out != nil - expectingMatch := !l.negative - if matchedLookahead != expectingMatch { - return nil, &UnexpectedTokenError{Unexpected: *ctx.Peek()} - } - return []reflect.Value{}, nil // Empty match slice means a match, unlike nil -} - -// {"|" } -type disjunction struct { - nodes []node -} - -func (d *disjunction) String() string { return ebnf(d) } -func (d *disjunction) GoString() string { return "disjunction{}" } - -func (d *disjunction) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(d)() - var ( - deepestError = 0 - firstError error - firstValues []reflect.Value - ) - for _, a := range d.nodes { - branch := ctx.Branch() - if value, err := a.Parse(branch, parent); err != nil { - // If this branch progressed too far and still didn't match, error out. - if ctx.Stop(err, branch) { - return value, err - } - // Show the closest error returned. The idea here is that the further the parser progresses - // without error, the more difficult it is to trace the error back to its root. - if branch.Cursor() >= deepestError { - firstError = err - firstValues = value - deepestError = branch.Cursor() - } - } else if value != nil { - bt := branch.RawPeek() - ct := ctx.RawPeek() - if bt == ct && bt.Type != lexer.EOF { - panic(Errorf(bt.Pos, "branch %s was accepted but did not progress the lexer at %s (%q)", a, bt.Pos, bt.Value)) - } - ctx.Accept(branch) - return value, nil - } - } - if firstError != nil { - ctx.MaybeUpdateError(firstError) - return firstValues, firstError - } - return nil, nil -} - -// ... -type sequence struct { - head bool // True if this is the head node. - node node - next *sequence -} - -func (s *sequence) String() string { return ebnf(s) } -func (s *sequence) GoString() string { return "sequence{}" } - -func (s *sequence) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(s)() - for n := s; n != nil; n = n.next { - child, err := n.node.Parse(ctx, parent) - out = append(out, child...) - if err != nil { - return out, err - } - if child == nil { - // Early exit if first value doesn't match, otherwise all values must match. - if n == s { - return nil, nil - } - token := ctx.Peek() - return out, &UnexpectedTokenError{Unexpected: *token, expectNode: n} - } - // Special-case for when children return an empty match. - // Appending an empty, non-nil slice to a nil slice returns a nil slice. - // https://go.dev/play/p/lV1Xk-IP6Ta - if out == nil { - out = []reflect.Value{} - } - } - return out, nil -} - -// @ -type capture struct { - field structLexerField - node node -} - -func (c *capture) String() string { return ebnf(c) } -func (c *capture) GoString() string { return "capture{}" } - -func (c *capture) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(c)() - start := ctx.RawCursor() - v, err := c.node.Parse(ctx, parent) - if v != nil { - ctx.Defer(ctx.Range(start, ctx.RawCursor()), parent, c.field, v) - } - if err != nil { - return []reflect.Value{parent}, err - } - if v == nil { - return nil, nil - } - return []reflect.Value{parent}, nil -} - -// - named lexer token reference -type reference struct { - typ lexer.TokenType - identifier string // Used for informational purposes. -} - -func (r *reference) String() string { return ebnf(r) } -func (r *reference) GoString() string { return fmt.Sprintf("reference{%s}", r.identifier) } - -func (r *reference) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(r)() - token, cursor := ctx.PeekAny(func(t lexer.Token) bool { - return t.Type == r.typ - }) - if token.Type != r.typ { - return nil, nil - } - ctx.FastForward(cursor) - return []reflect.Value{reflect.ValueOf(token.Value)}, nil -} - -// Match a token literal exactly "..."[:]. -type literal struct { - s string - t lexer.TokenType - tt string // Used for display purposes - symbolic name of t. -} - -func (l *literal) String() string { return ebnf(l) } -func (l *literal) GoString() string { return fmt.Sprintf("literal{%q, %q}", l.s, l.tt) } - -func (l *literal) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(l)() - match := func(t lexer.Token) bool { - var equal bool - if ctx.caseInsensitive[t.Type] { - equal = l.s == "" || strings.EqualFold(t.Value, l.s) - } else { - equal = l.s == "" || t.Value == l.s - } - return (l.t == lexer.EOF || l.t == t.Type) && equal - } - token, cursor := ctx.PeekAny(match) - if match(token) { - ctx.FastForward(cursor) - return []reflect.Value{reflect.ValueOf(token.Value)}, nil - } - return nil, nil -} - -type negation struct { - node node -} - -func (n *negation) String() string { return ebnf(n) } -func (n *negation) GoString() string { return "negation{}" } - -func (n *negation) Parse(ctx *parseContext, parent reflect.Value) (out []reflect.Value, err error) { - defer ctx.printTrace(n)() - // Create a branch to avoid advancing the parser, but call neither Stop nor Accept on it - // since we will discard a match. - branch := ctx.Branch() - notEOF := ctx.Peek() - if notEOF.EOF() { - // EOF cannot match a negation, which expects something - return nil, nil - } - - out, err = n.node.Parse(branch, parent) - if out != nil && err == nil { - // out being non-nil means that what we don't want is actually here, so we report nomatch - return nil, &UnexpectedTokenError{Unexpected: *notEOF} - } - - // Just give the next token - next := ctx.Next() - return []reflect.Value{reflect.ValueOf(next.Value)}, nil -} - -// Attempt to transform values to given type. -// -// This will dereference pointers, and attempt to parse strings into integer values, floats, etc. -func conform(t reflect.Type, values []reflect.Value) (out []reflect.Value, err error) { - for _, v := range values { - for t != v.Type() && t.Kind() == reflect.Ptr && v.Kind() != reflect.Ptr { - // This can occur during partial failure. - if !v.CanAddr() { - return - } - v = v.Addr() - } - - // Already of the right kind, don't bother converting. - if v.Kind() == t.Kind() { - if v.Type() != t { - v = v.Convert(t) - } - out = append(out, v) - continue - } - - kind := t.Kind() - switch kind { // nolint: exhaustive - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - n, err := strconv.ParseInt(v.String(), 0, sizeOfKind(kind)) - if err != nil { - return nil, err - } - v = reflect.New(t).Elem() - v.SetInt(n) - - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - n, err := strconv.ParseUint(v.String(), 0, sizeOfKind(kind)) - if err != nil { - return nil, err - } - v = reflect.New(t).Elem() - v.SetUint(n) - - case reflect.Bool: - v = reflect.ValueOf(true) - - case reflect.Float32, reflect.Float64: - n, err := strconv.ParseFloat(v.String(), sizeOfKind(kind)) - if err != nil { - return nil, err - } - v = reflect.New(t).Elem() - v.SetFloat(n) - } - - out = append(out, v) - } - return out, nil -} - -func sizeOfKind(kind reflect.Kind) int { - switch kind { // nolint: exhaustive - case reflect.Int8, reflect.Uint8: - return 8 - case reflect.Int16, reflect.Uint16: - return 16 - case reflect.Int32, reflect.Uint32, reflect.Float32: - return 32 - case reflect.Int64, reflect.Uint64, reflect.Float64: - return 64 - case reflect.Int, reflect.Uint: - return strconv.IntSize - } - panic("unsupported kind " + kind.String()) -} - -func maybeRef(tmpl reflect.Type, strct reflect.Value) reflect.Value { - if strct.Type() == tmpl { - return strct - } - if tmpl.Kind() == reflect.Ptr { - if strct.CanAddr() { - return strct.Addr() - } - ptr := reflect.New(tmpl) - ptr.Set(strct) - return ptr - } - return strct -} - -// Set field. -// -// If field is a pointer the pointer will be set to the value. If field is a string, value will be -// appended. If field is a slice, value will be appended to slice. -// -// For all other types, an attempt will be made to convert the string to the corresponding -// type (int, float32, etc.). -func setField(tokens []lexer.Token, strct reflect.Value, field structLexerField, fieldValue []reflect.Value) (err error) { // nolint: gocognit - f := strct.FieldByIndex(field.Index) - - // Any kind of pointer, hydrate it first. - if f.Kind() == reflect.Ptr { - if f.IsNil() { - fv := reflect.New(f.Type().Elem()).Elem() - f.Set(fv.Addr()) - f = fv - } else { - f = f.Elem() - } - } - - var pos lexer.Position - if len(tokens) > 0 { - pos = tokens[0].Pos - } - - if f.Type() == tokenType { - f.Set(reflect.ValueOf(tokens[0])) - return nil - } - - if f.Type() == tokensType { - f.Set(reflect.ValueOf(tokens)) - return nil - } - - if f.CanAddr() { - if d, ok := f.Addr().Interface().(Capture); ok { - ifv := make([]string, 0, len(fieldValue)) - for _, v := range fieldValue { - ifv = append(ifv, v.Interface().(string)) - } - err = d.Capture(ifv) - if err != nil { - return Wrapf(pos, err, "failed to capture") - } - return nil - } else if d, ok := f.Addr().Interface().(encoding.TextUnmarshaler); ok { - for _, v := range fieldValue { - if err := d.UnmarshalText([]byte(v.Interface().(string))); err != nil { - return Wrapf(pos, err, "failed to unmarshal text") - } - } - return nil - } - } - - if f.Kind() == reflect.Slice { - sliceElemType := f.Type().Elem() - if sliceElemType.Implements(captureType) || reflect.PtrTo(sliceElemType).Implements(captureType) { - if sliceElemType.Kind() == reflect.Ptr { - sliceElemType = sliceElemType.Elem() - } - for _, v := range fieldValue { - d := reflect.New(sliceElemType).Interface().(Capture) - if err := d.Capture([]string{v.Interface().(string)}); err != nil { - return Wrapf(pos, err, "failed to capture") - } - eltValue := reflect.ValueOf(d) - if f.Type().Elem().Kind() != reflect.Ptr { - eltValue = eltValue.Elem() - } - f.Set(reflect.Append(f, eltValue)) - } - } else { - fieldValue, err = conform(sliceElemType, fieldValue) - if err != nil { - return Wrapf(pos, err, "failed to conform") - } - f.Set(reflect.Append(f, fieldValue...)) - } - return nil - } - - // Strings concatenate all captured tokens. - if f.Kind() == reflect.String { - fieldValue, err = conform(f.Type(), fieldValue) - if err != nil { - return Wrapf(pos, err, "failed to conform") - } - if len(fieldValue) == 0 { - return nil - } - accumulated := f.String() - for _, v := range fieldValue { - accumulated += v.String() - } - f.SetString(accumulated) - return nil - } - - // Coalesce multiple tokens into one. This allows eg. ["-", "10"] to be captured as separate tokens but - // parsed as a single string "-10". - if len(fieldValue) > 1 { - out := []string{} - for _, v := range fieldValue { - out = append(out, v.String()) - } - fieldValue = []reflect.Value{reflect.ValueOf(strings.Join(out, ""))} - } - - fieldValue, err = conform(f.Type(), fieldValue) - if err != nil { - return Wrapf(pos, err, "failed to conform") - } - if len(fieldValue) == 0 { - return nil // Nothing to capture, can happen when trying to get a partial parse tree - } - - fv := fieldValue[0] - - switch f.Kind() { // nolint: exhaustive - // Numeric types will increment if the token can not be coerced. - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - if fv.Type() != f.Type() { - f.SetInt(f.Int() + 1) - } else { - f.Set(fv) - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - if fv.Type() != f.Type() { - f.SetUint(f.Uint() + 1) - } else { - f.Set(fv) - } - - case reflect.Float32, reflect.Float64: - if fv.Type() != f.Type() { - f.SetFloat(f.Float() + 1) - } else { - f.Set(fv) - } - - case reflect.Bool, reflect.Struct, reflect.Interface: - if f.Kind() == reflect.Bool && fv.Kind() == reflect.Bool { - f.SetBool(fv.Bool()) - break - } - if fv.Type() != f.Type() { - return Errorf(pos, "value %q is not correct type %s", fv, f.Type()) - } - f.Set(fv) - - default: - return Errorf(pos, "unsupported field type %s for field %s", f.Type(), field.Name) - } - return nil -} diff --git a/vendor/github.com/alecthomas/participle/v2/options.go b/vendor/github.com/alecthomas/participle/v2/options.go deleted file mode 100644 index 56268bb..0000000 --- a/vendor/github.com/alecthomas/participle/v2/options.go +++ /dev/null @@ -1,171 +0,0 @@ -package participle - -import ( - "fmt" - "io" - "reflect" - - "github.com/alecthomas/participle/v2/lexer" -) - -// MaxLookahead can be used with UseLookahead to get pseudo-infinite -// lookahead without the risk of pathological cases causing a stack -// overflow. -const MaxLookahead = 99999 - -// An Option to modify the behaviour of the Parser. -type Option func(p *parserOptions) error - -// Lexer is an Option that sets the lexer to use with the given grammar. -func Lexer(def lexer.Definition) Option { - return func(p *parserOptions) error { - p.lex = def - return nil - } -} - -// UseLookahead allows branch lookahead up to "n" tokens. -// -// If parsing cannot be disambiguated before "n" tokens of lookahead, parsing will fail. -// -// Note that increasing lookahead has a minor performance impact, but also -// reduces the accuracy of error reporting. -// -// If "n" is negative, it will be treated as "infinite" lookahead. -// This can have a large impact on performance, and does not provide any -// protection against stack overflow during parsing. -// In most cases, using MaxLookahead will achieve the same results in practice, -// but with a concrete upper bound to prevent pathological behavior in the parser. -// Using infinite lookahead can be useful for testing, or for parsing especially -// ambiguous grammars. Use at your own risk! -func UseLookahead(n int) Option { - return func(p *parserOptions) error { - p.useLookahead = n - return nil - } -} - -// CaseInsensitive allows the specified token types to be matched case-insensitively. -// -// Note that the lexer itself will also have to be case-insensitive; this option -// just controls whether literals in the grammar are matched case insensitively. -func CaseInsensitive(tokens ...string) Option { - return func(p *parserOptions) error { - for _, token := range tokens { - p.caseInsensitive[token] = true - } - return nil - } -} - -// ParseTypeWith associates a custom parsing function with some interface type T. -// When the parser encounters a value of type T, it will use the given parse function to -// parse a value from the input. -// -// The parse function may return anything it wishes as long as that value satisfies the interface T. -// However, only a single function can be defined for any type T. -// If you want to have multiple parse functions returning types that satisfy the same interface, you'll -// need to define new wrapper types for each one. -// -// This can be useful if you want to parse a DSL within the larger grammar, or if you want -// to implement an optimized parsing scheme for some portion of the grammar. -func ParseTypeWith[T any](parseFn func(*lexer.PeekingLexer) (T, error)) Option { - return func(p *parserOptions) error { - parseFnVal := reflect.ValueOf(parseFn) - parseFnType := parseFnVal.Type() - if parseFnType.Out(0).Kind() != reflect.Interface { - return fmt.Errorf("ParseTypeWith: T must be an interface type (got %s)", parseFnType.Out(0)) - } - prodType := parseFnType.Out(0) - p.customDefs = append(p.customDefs, customDef{prodType, parseFnVal}) - return nil - } -} - -// Union associates several member productions with some interface type T. -// Given members X, Y, Z, and W for a union type U, then the EBNF rule is: -// -// U = X | Y | Z | W . -// -// When the parser encounters a field of type T, it will attempt to parse each member -// in sequence and take the first match. Because of this, the order in which the -// members are defined is important. You must be careful to order your members appropriately. -// -// An example of a bad parse that can happen if members are out of order: -// -// If the first member matches A, and the second member matches A B, -// and the source string is "AB", then the parser will only match A, and will not -// try to parse the second member at all. -func Union[T any](members ...T) Option { - return func(p *parserOptions) error { - var t T - unionType := reflect.TypeOf(&t).Elem() - if unionType.Kind() != reflect.Interface { - return fmt.Errorf("union: union type must be an interface (got %s)", unionType) - } - memberTypes := make([]reflect.Type, 0, len(members)) - for _, m := range members { - memberTypes = append(memberTypes, reflect.TypeOf(m)) - } - p.unionDefs = append(p.unionDefs, unionDef{unionType, memberTypes}) - return nil - } -} - -// ParseOption modifies how an individual parse is applied. -type ParseOption func(p *parseContext) - -// Trace the parse to "w". -func Trace(w io.Writer) ParseOption { - return func(p *parseContext) { - p.trace = w - } -} - -// AllowTrailing tokens without erroring. -// -// That is, do not error if a full parse completes but additional tokens remain. -func AllowTrailing(ok bool) ParseOption { - return func(p *parseContext) { - p.allowTrailing = ok - } -} - -// Recover enables error recovery during parsing using the given strategies. -// -// When parsing encounters an error, the parser will attempt each recovery -// strategy in order. If a strategy succeeds, the error is recorded and parsing -// continues. This allows the parser to report multiple errors and produce a -// partial AST even when the input contains errors. -// -// Example usage: -// -// ast, err := parser.ParseString("", input, -// participle.Recover( -// participle.SkipUntil(";", "}"), -// participle.NestedDelimiters("(", ")", [2]string{"[", "]"}), -// )) -// -// If parsing succeeds with recovered errors, the returned error will be a -// *RecoveryError containing all accumulated errors. -func Recover(strategies ...RecoveryStrategy) ParseOption { - return func(p *parseContext) { - if p.recovery == nil { - p.recovery = &recoveryConfig{ - maxErrors: 100, // Default max errors - } - } - p.recovery.strategies = append(p.recovery.strategies, strategies...) - } -} - -// MaxRecoveryErrors sets the maximum number of errors to collect during recovery. -// Once this limit is reached, parsing will stop. Use 0 for unlimited errors. -func MaxRecoveryErrors(max int) ParseOption { - return func(p *parseContext) { - if p.recovery == nil { - p.recovery = &recoveryConfig{} - } - p.recovery.maxErrors = max - } -} diff --git a/vendor/github.com/alecthomas/participle/v2/parser.go b/vendor/github.com/alecthomas/participle/v2/parser.go deleted file mode 100644 index 7d0a019..0000000 --- a/vendor/github.com/alecthomas/participle/v2/parser.go +++ /dev/null @@ -1,335 +0,0 @@ -package participle - -import ( - "bytes" - "fmt" - "io" - "reflect" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -type unionDef struct { - typ reflect.Type - members []reflect.Type -} - -type customDef struct { - typ reflect.Type - parseFn reflect.Value -} - -type parserOptions struct { - lex lexer.Definition - rootType reflect.Type - typeNodes map[reflect.Type]node - useLookahead int - caseInsensitive map[string]bool - caseInsensitiveTokens map[lexer.TokenType]bool - mappers []mapperByToken - unionDefs []unionDef - customDefs []customDef - elide []string -} - -// A Parser for a particular grammar and lexer. -type Parser[G any] struct { - parserOptions -} - -// ParserForProduction returns a new parser for the given production in grammar G. -func ParserForProduction[P, G any](parser *Parser[G]) (*Parser[P], error) { - t := reflect.TypeOf(*new(P)) - _, ok := parser.typeNodes[t] - if !ok { - return nil, fmt.Errorf("parser does not contain a production of type %s", t) - } - return (*Parser[P])(parser), nil -} - -// MustBuild calls Build[G](options...) and panics if an error occurs. -func MustBuild[G any](options ...Option) *Parser[G] { - parser, err := Build[G](options...) - if err != nil { - panic(err) - } - return parser -} - -// Build constructs a parser for the given grammar. -// -// If "Lexer()" is not provided as an option, a default lexer based on text/scanner will be used. This scans typical Go- -// like tokens. -// -// See documentation for details. -func Build[G any](options ...Option) (parser *Parser[G], err error) { - // Configure Parser[G] struct with defaults + options. - p := &Parser[G]{ - parserOptions: parserOptions{ - lex: lexer.TextScannerLexer, - caseInsensitive: map[string]bool{}, - useLookahead: 1, - }, - } - for _, option := range options { - if err = option(&p.parserOptions); err != nil { - return nil, err - } - } - - symbols := p.lex.Symbols() - if len(p.mappers) > 0 { - mappers := map[lexer.TokenType][]Mapper{} - for _, mapper := range p.mappers { - if len(mapper.symbols) == 0 { - mappers[lexer.EOF] = append(mappers[lexer.EOF], mapper.mapper) - } else { - for _, symbol := range mapper.symbols { - if rn, ok := symbols[symbol]; !ok { - return nil, fmt.Errorf("mapper %#v uses unknown token %q", mapper, symbol) - } else { // nolint: golint - mappers[rn] = append(mappers[rn], mapper.mapper) - } - } - } - } - p.lex = &mappingLexerDef{p.lex, func(t lexer.Token) (lexer.Token, error) { - combined := make([]Mapper, 0, len(mappers[t.Type])+len(mappers[lexer.EOF])) - combined = append(combined, mappers[lexer.EOF]...) - combined = append(combined, mappers[t.Type]...) - - var err error - for _, m := range combined { - t, err = m(t) - if err != nil { - return t, err - } - } - return t, nil - }} - } - - context := newGeneratorContext(p.lex) - if err := context.addCustomDefs(p.customDefs); err != nil { - return nil, err - } - if err := context.addUnionDefs(p.unionDefs); err != nil { - return nil, err - } - - var grammar G - v := reflect.ValueOf(&grammar) - if v.Kind() == reflect.Interface { - v = v.Elem() - } - p.rootType = v.Type() - rootNode, err := context.parseType(p.rootType) - if err != nil { - return nil, err - } - if err := validate(rootNode); err != nil { - return nil, err - } - p.typeNodes = context.typeNodes - p.typeNodes[p.rootType] = rootNode - p.setCaseInsensitiveTokens() - return p, nil -} - -// Lexer returns the parser's builtin lexer. -func (p *Parser[G]) Lexer() lexer.Definition { - return p.lex -} - -// Lex uses the parser's lexer to tokenise input. -// Parameter filename is used as an opaque prefix in error messages. -func (p *Parser[G]) Lex(filename string, r io.Reader) ([]lexer.Token, error) { - lex, err := p.lex.Lex(filename, r) - if err != nil { - return nil, err - } - tokens, err := lexer.ConsumeAll(lex) - return tokens, err -} - -// ParseFromLexer into grammar v which must be of the same type as the grammar passed to -// Build(). -// -// This may return a Error. -func (p *Parser[G]) ParseFromLexer(lex *lexer.PeekingLexer, options ...ParseOption) (*G, error) { - v := new(G) - rv := reflect.ValueOf(v) - parseNode, err := p.parseNodeFor(rv) - if err != nil { - return nil, err - } - ctx := newParseContext(lex, p.useLookahead, p.caseInsensitiveTokens) - defer func() { *lex = ctx.PeekingLexer }() - for _, option := range options { - option(&ctx) - } - // If the grammar implements Parseable, use it. - if parseable, ok := any(v).(Parseable); ok { - return v, p.rootParseable(&ctx, parseable) - } - return v, p.parseOne(&ctx, parseNode, rv) -} - -func (p *Parser[G]) setCaseInsensitiveTokens() { - p.caseInsensitiveTokens = map[lexer.TokenType]bool{} - for sym, tt := range p.lex.Symbols() { - if p.caseInsensitive[sym] { - p.caseInsensitiveTokens[tt] = true - } - } -} - -func (p *Parser[G]) parse(lex lexer.Lexer, options ...ParseOption) (v *G, err error) { - peeker, err := lexer.Upgrade(lex, p.getElidedTypes()...) - if err != nil { - return nil, err - } - return p.ParseFromLexer(peeker, options...) -} - -// Parse from r into grammar v which must be of the same type as the grammar passed to -// Build(). Parameter filename is used as an opaque prefix in error messages. -// -// This may return an Error. -func (p *Parser[G]) Parse(filename string, r io.Reader, options ...ParseOption) (v *G, err error) { - if filename == "" { - filename = lexer.NameOfReader(r) - } - lex, err := p.lex.Lex(filename, r) - if err != nil { - return nil, err - } - return p.parse(lex, options...) -} - -// ParseString from s into grammar v which must be of the same type as the grammar passed to -// Build(). Parameter filename is used as an opaque prefix in error messages. -// -// This may return an Error. -func (p *Parser[G]) ParseString(filename string, s string, options ...ParseOption) (v *G, err error) { - var lex lexer.Lexer - if sl, ok := p.lex.(lexer.StringDefinition); ok { - lex, err = sl.LexString(filename, s) - } else { - lex, err = p.lex.Lex(filename, strings.NewReader(s)) - } - if err != nil { - return nil, err - } - return p.parse(lex, options...) -} - -// ParseBytes from b into grammar v which must be of the same type as the grammar passed to -// Build(). Parameter filename is used as an opaque prefix in error messages. -// -// This may return an Error. -func (p *Parser[G]) ParseBytes(filename string, b []byte, options ...ParseOption) (v *G, err error) { - var lex lexer.Lexer - if sl, ok := p.lex.(lexer.BytesDefinition); ok { - lex, err = sl.LexBytes(filename, b) - } else { - lex, err = p.lex.Lex(filename, bytes.NewReader(b)) - } - if err != nil { - return nil, err - } - return p.parse(lex, options...) -} - -func (p *Parser[G]) parseOne(ctx *parseContext, parseNode node, rv reflect.Value) error { - err := p.parseInto(ctx, parseNode, rv) - if err != nil { - // If we had recovery errors but no final error, return the recovery errors - if len(ctx.recoveryErrors) > 0 { - ctx.recoveryErrors = append(ctx.recoveryErrors, err) - return &RecoveryError{Errors: ctx.recoveryErrors} - } - return err - } - token := ctx.Peek() - if !token.EOF() && !ctx.allowTrailing { - err = ctx.DeepestError(&UnexpectedTokenError{Unexpected: *token}) - if len(ctx.recoveryErrors) > 0 { - ctx.recoveryErrors = append(ctx.recoveryErrors, err) - return &RecoveryError{Errors: ctx.recoveryErrors} - } - return err - } - // Return accumulated recovery errors if any - if len(ctx.recoveryErrors) > 0 { - return &RecoveryError{Errors: ctx.recoveryErrors} - } - return nil -} - -func (p *Parser[G]) parseInto(ctx *parseContext, parseNode node, rv reflect.Value) error { - if rv.IsNil() { - return fmt.Errorf("target must be a non-nil pointer to a struct or interface, but is a nil %s", rv.Type()) - } - pv, err := p.typeNodes[rv.Type().Elem()].Parse(ctx, rv.Elem()) - if len(pv) > 0 && pv[0].Type() == rv.Elem().Type() { - rv.Elem().Set(reflect.Indirect(pv[0])) - } - if err != nil { - return err - } - if pv == nil { - token := ctx.Peek() - return ctx.DeepestError(&UnexpectedTokenError{Unexpected: *token}) - } - return nil -} - -func (p *Parser[G]) rootParseable(ctx *parseContext, parseable Parseable) error { - if err := parseable.Parse(&ctx.PeekingLexer); err != nil { - if err == NextMatch { - err = &UnexpectedTokenError{Unexpected: *ctx.Peek()} - } else { - err = &ParseError{Msg: err.Error(), Pos: ctx.Peek().Pos} - } - return ctx.DeepestError(err) - } - peek := ctx.Peek() - if !peek.EOF() && !ctx.allowTrailing { - return ctx.DeepestError(&UnexpectedTokenError{Unexpected: *peek}) - } - return nil -} - -func (p *Parser[G]) getElidedTypes() []lexer.TokenType { - symbols := p.lex.Symbols() - elideTypes := make([]lexer.TokenType, 0, len(p.elide)) - for _, elide := range p.elide { - rn, ok := symbols[elide] - if !ok { - panic(fmt.Errorf("Elide() uses unknown token %q", elide)) - } - elideTypes = append(elideTypes, rn) - } - return elideTypes -} - -func (p *Parser[G]) parseNodeFor(v reflect.Value) (node, error) { - t := v.Type() - if t.Kind() == reflect.Interface { - t = t.Elem() - } - if t.Kind() != reflect.Ptr || (t.Elem().Kind() != reflect.Struct && t.Elem().Kind() != reflect.Interface) { - return nil, fmt.Errorf("expected a pointer to a struct or interface, but got %s", t) - } - parseNode := p.typeNodes[t] - if parseNode == nil { - t = t.Elem() - parseNode = p.typeNodes[t] - } - if parseNode == nil { - return nil, fmt.Errorf("parser does not know how to parse values of type %s", t) - } - return parseNode, nil -} diff --git a/vendor/github.com/alecthomas/participle/v2/railroad.png b/vendor/github.com/alecthomas/participle/v2/railroad.png deleted file mode 100644 index 3388484..0000000 Binary files a/vendor/github.com/alecthomas/participle/v2/railroad.png and /dev/null differ diff --git a/vendor/github.com/alecthomas/participle/v2/recovery.go b/vendor/github.com/alecthomas/participle/v2/recovery.go deleted file mode 100644 index cd4afbc..0000000 --- a/vendor/github.com/alecthomas/participle/v2/recovery.go +++ /dev/null @@ -1,696 +0,0 @@ -package participle - -import ( - "fmt" - "reflect" - "regexp" - "strings" - - "github.com/alecthomas/participle/v2/lexer" -) - -// RecoveryStrategy defines a strategy for recovering from parse errors. -// -// Error recovery allows the parser to continue parsing after encountering an error, -// collecting multiple errors and producing a partial AST. This is inspired by -// Chumsky's recovery system in Rust and classic compiler panic-mode recovery. -// -// There is no silver bullet strategy for error recovery. By definition, if the input -// to a parser is invalid then the parser can only make educated guesses as to the -// meaning of the input. Different recovery strategies will work better for different -// languages, and for different patterns within those languages. -type RecoveryStrategy interface { - // Recover attempts to recover from a parse error. - // - // Parameters: - // - ctx: The parse context (positioned after the failed parse attempt) - // - err: The error that triggered recovery - // - parent: The parent value being parsed into - // - // Returns: - // - recovered: true if recovery was successful - // - values: any values recovered (may be nil/fallback for skip strategies) - // - newErr: the error to report (may be modified/wrapped) - Recover(ctx *parseContext, err error, parent reflect.Value) (recovered bool, values []reflect.Value, newErr error) -} - -// recoveryConfig holds recovery configuration for a parse context. -type recoveryConfig struct { - strategies []RecoveryStrategy - errors []error - maxErrors int -} - -// RecoveryError wraps multiple errors that occurred during parsing with recovery. -type RecoveryError struct { - Errors []error -} - -func (r *RecoveryError) Error() string { - if len(r.Errors) == 0 { - return "no errors" - } - if len(r.Errors) == 1 { - return r.Errors[0].Error() - } - msg := r.Errors[0].Error() - for i := 1; i < len(r.Errors); i++ { - msg += "\n" + r.Errors[i].Error() - } - return msg -} - -// Unwrap returns the first error for compatibility with errors.Is/As. -func (r *RecoveryError) Unwrap() error { - if len(r.Errors) == 0 { - return nil - } - return r.Errors[0] -} - -// SkipUntilStrategy skips tokens until one of the synchronization tokens is found. -// -// This is the classic "panic mode" recovery strategy from compiler theory. -// It's simple but effective for languages with clear statement terminators -// (like semicolons) or block delimiters. -// -// Example usage: -// -// parser.ParseString("", input, participle.Recover(SkipUntil(";", "}", ")"))) -type SkipUntilStrategy struct { - // Tokens to synchronize on (the parser will stop before these tokens) - SyncTokens []string - // If true, consume the sync token; if false, leave it for the next parse - ConsumeSyncToken bool - // Fallback returns a fallback value when recovery succeeds. - // If nil, an empty/zero value is used. - Fallback func() interface{} -} - -// SkipUntil creates a recovery strategy that skips tokens until a sync token is found. -// -// The sync tokens are typically statement terminators (";"), block delimiters ("}", ")"), -// or keywords that start new constructs ("if", "while", "func", etc.). -func SkipUntil(tokens ...string) *SkipUntilStrategy { - return &SkipUntilStrategy{ - SyncTokens: tokens, - ConsumeSyncToken: false, - } -} - -// SkipPast creates a recovery strategy that skips tokens until a sync token is found, -// then consumes the sync token. -func SkipPast(tokens ...string) *SkipUntilStrategy { - return &SkipUntilStrategy{ - SyncTokens: tokens, - ConsumeSyncToken: true, - } -} - -// WithFallback sets a fallback value generator for the skip strategy. -func (s *SkipUntilStrategy) WithFallback(f func() interface{}) *SkipUntilStrategy { - s.Fallback = f - return s -} - -func (s *SkipUntilStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - syncSet := make(map[string]bool) - for _, t := range s.SyncTokens { - syncSet[t] = true - } - - // Skip tokens until we find a sync token or EOF - for { - token := ctx.Peek() - if token.EOF() { - return false, nil, err - } - if syncSet[token.Value] { - if s.ConsumeSyncToken { - ctx.Next() - } - // Recovery successful - var values []reflect.Value - if s.Fallback != nil { - values = []reflect.Value{reflect.ValueOf(s.Fallback())} - } - return true, values, err - } - ctx.Next() - } -} - -// SkipThenRetryUntilStrategy skips tokens and retries parsing until successful -// or a termination condition is met. -// -// This is more sophisticated than SkipUntil - it repeatedly: -// 1. Skips one token -// 2. Tries to parse again -// 3. If parsing succeeds without new errors, returns success -// 4. If parsing fails, repeats from step 1 -// -// This continues until a termination token is found or EOF is reached. -type SkipThenRetryUntilStrategy struct { - // Tokens that terminate the recovery attempt (stop trying) - UntilTokens []string - // Maximum tokens to skip before giving up (0 = unlimited) - MaxSkip int -} - -// SkipThenRetryUntil creates a strategy that skips tokens and retries parsing. -func SkipThenRetryUntil(untilTokens ...string) *SkipThenRetryUntilStrategy { - return &SkipThenRetryUntilStrategy{ - UntilTokens: untilTokens, - MaxSkip: 100, // Reasonable default to prevent infinite loops - } -} - -// WithMaxSkip sets the maximum number of tokens to skip. -func (s *SkipThenRetryUntilStrategy) WithMaxSkip(max int) *SkipThenRetryUntilStrategy { - s.MaxSkip = max - return s -} - -func (s *SkipThenRetryUntilStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - untilSet := make(map[string]bool) - for _, t := range s.UntilTokens { - untilSet[t] = true - } - - // Check if we're at a terminating token or EOF - token := ctx.Peek() - if token.EOF() || untilSet[token.Value] { - return false, nil, err - } - - // Skip one token and signal that the caller should retry parsing. - // The caller (parseContext) will call this strategy again if parsing - // fails again, allowing incremental recovery. - ctx.Next() - return true, nil, err -} - -// NestedDelimitersStrategy recovers by finding balanced delimiters. -// -// This is particularly useful for recovering from errors inside parenthesized -// expressions, function arguments, array indices, etc. It respects nesting, -// so it will correctly handle nested brackets. -// -// Example: If parsing `foo(bar(1, 2, err!@#), baz)` fails on `err!@#`, -// this strategy can skip to the closing `)` of `bar(...)` while respecting -// the nested parentheses. -type NestedDelimitersStrategy struct { - // Start delimiter (e.g., "(", "[", "{") - Start string - // End delimiter (e.g., ")", "]", "}") - End string - // Additional delimiter pairs to respect for nesting - Others [][2]string - // Fallback returns a fallback value when recovery succeeds. - Fallback func() interface{} -} - -// NestedDelimiters creates a strategy that skips to balanced delimiters. -func NestedDelimiters(start, end string, others ...[2]string) *NestedDelimitersStrategy { - return &NestedDelimitersStrategy{ - Start: start, - End: end, - Others: others, - } -} - -// WithFallback sets a fallback value generator for the nested delimiters strategy. -func (n *NestedDelimitersStrategy) WithFallback(f func() interface{}) *NestedDelimitersStrategy { - n.Fallback = f - return n -} - -func (n *NestedDelimitersStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - // Build delimiter maps - openers := map[string]string{n.Start: n.End} - closers := map[string]bool{n.End: true} - for _, pair := range n.Others { - openers[pair[0]] = pair[1] - closers[pair[1]] = true - } - - // Track nesting depth for each delimiter type - depths := make(map[string]int) - - // We start inside the delimited region, so we're looking for the closing delimiter - // at depth 0 (or the matching closer for our opener) - targetClose := n.End - depth := 1 // We're inside one level of our target delimiters - - for { - token := ctx.Peek() - if token.EOF() { - return false, nil, err - } - - // Check if this opens a nested delimiter - if closer, isOpener := openers[token.Value]; isOpener { - if token.Value == n.Start { - depth++ - } else { - depths[closer]++ - } - } - - // Check if this closes a delimiter - if closers[token.Value] { - if token.Value == targetClose { - depth-- - if depth == 0 { - // Found our balanced closer - don't consume it - var values []reflect.Value - if n.Fallback != nil { - values = []reflect.Value{reflect.ValueOf(n.Fallback())} - } - return true, values, err - } - } else if depths[token.Value] > 0 { - depths[token.Value]-- - } else { - // Mismatched closer - this is an error, but we can try to continue - // by treating it as the end of our recovery region - return false, nil, err - } - } - - ctx.Next() - } -} - -// TokenSyncStrategy synchronizes on specific token types rather than values. -// -// This is useful when you want to recover to any identifier, any string literal, -// or other token categories defined by your lexer. -type TokenSyncStrategy struct { - // Token types to synchronize on (use lexer symbol names) - SyncTypes []lexer.TokenType - // If true, consume the sync token - ConsumeSyncToken bool - // Fallback value generator - Fallback func() interface{} -} - -// SyncToTokenType creates a strategy that syncs on token types. -func SyncToTokenType(types ...lexer.TokenType) *TokenSyncStrategy { - return &TokenSyncStrategy{ - SyncTypes: types, - ConsumeSyncToken: false, - } -} - -func (t *TokenSyncStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - syncSet := make(map[lexer.TokenType]bool) - for _, tt := range t.SyncTypes { - syncSet[tt] = true - } - - for { - token := ctx.Peek() - if token.EOF() { - return false, nil, err - } - if syncSet[token.Type] { - if t.ConsumeSyncToken { - ctx.Next() - } - var values []reflect.Value - if t.Fallback != nil { - values = []reflect.Value{reflect.ValueOf(t.Fallback())} - } - return true, values, err - } - ctx.Next() - } -} - -// CompositeStrategy tries multiple strategies in order until one succeeds. -type CompositeStrategy struct { - Strategies []RecoveryStrategy -} - -// TryStrategies creates a composite strategy that tries each strategy in order. -func TryStrategies(strategies ...RecoveryStrategy) *CompositeStrategy { - return &CompositeStrategy{Strategies: strategies} -} - -func (c *CompositeStrategy) Recover(ctx *parseContext, err error, parent reflect.Value) (bool, []reflect.Value, error) { - checkpoint := ctx.saveCheckpoint() - - for _, strategy := range c.Strategies { - recovered, values, newErr := strategy.Recover(ctx, err, parent) - if recovered { - return true, values, newErr - } - // Reset cursor for next strategy attempt - ctx.restoreCheckpoint(checkpoint) - } - return false, nil, err -} - -// Helper functions for checkpoint-based recovery - -// saveCheckpoint saves the current lexer position for potential restoration. -func (p *parseContext) saveCheckpoint() lexer.Checkpoint { - return p.PeekingLexer.MakeCheckpoint() -} - -// restoreCheckpoint restores the lexer to a previously saved position. -func (p *parseContext) restoreCheckpoint(cp lexer.Checkpoint) { - p.PeekingLexer.LoadCheckpoint(cp) -} - -// ============================================================================= -// Per-Node Recovery Configuration -// ============================================================================= - -// nodeRecoveryConfig holds recovery configuration attached to a grammar node. -// This enables Chumsky-style per-parser recovery strategies. -type nodeRecoveryConfig struct { - // Strategies to try for this node (in order) - strategies []RecoveryStrategy - // Label for error messages (e.g., "expression", "statement") - label string -} - -// recoverableNode is an optional interface that nodes can implement -// to support per-node recovery configuration. -type recoverableNode interface { - node - // SetRecovery sets the recovery configuration for this node. - SetRecovery(config *nodeRecoveryConfig) - // GetRecovery returns the recovery configuration, or nil if none. - GetRecovery() *nodeRecoveryConfig -} - -// ============================================================================= -// Recovery Tag Parsing -// ============================================================================= - -// recoveryTagPattern matches recovery tag expressions like: -// - skip_until(;) -// - skip_past(;, }) -// - nested((, )) -// - nested((, ), [(, )]) - with additional delimiters -// - retry_until(;) -var recoveryTagPattern = regexp.MustCompile(`^(\w+)\((.*)\)$`) - -// parseRecoveryTag parses a recovery struct tag into a RecoveryStrategy. -// Supported formats: -// - skip_until(tok1, tok2, ...) - skip until one of the tokens, don't consume -// - skip_past(tok1, tok2, ...) - skip until and consume the sync token -// - nested(start, end) - skip to balanced delimiter -// - nested(start, end, [s1, e1]) - with additional delimiter pairs -// - retry_until(tok1, tok2, ...) - skip and retry until tokens -// - label:name - set a label for error messages -// -// Multiple strategies can be combined with |: -// - nested((, ))|skip_until(;) -func parseRecoveryTag(tag string) (*nodeRecoveryConfig, error) { - if tag == "" { - return nil, nil - } - - config := &nodeRecoveryConfig{} - - // Check for label prefix: "label:name|strategies..." - if strings.HasPrefix(tag, "label:") { - parts := strings.SplitN(tag[6:], "|", 2) - config.label = strings.TrimSpace(parts[0]) - if len(parts) > 1 { - tag = parts[1] - } else { - return config, nil - } - } - - // Split by | for multiple strategies - strategyStrs := strings.Split(tag, "|") - for _, stratStr := range strategyStrs { - stratStr = strings.TrimSpace(stratStr) - if stratStr == "" { - continue - } - - // Check for label anywhere - if strings.HasPrefix(stratStr, "label:") { - config.label = strings.TrimSpace(stratStr[6:]) - continue - } - - strategy, err := parseSingleRecoveryStrategy(stratStr) - if err != nil { - return nil, err - } - if strategy != nil { - config.strategies = append(config.strategies, strategy) - } - } - - if len(config.strategies) == 0 && config.label == "" { - return nil, nil - } - return config, nil -} - -// parseSingleRecoveryStrategy parses a single recovery strategy expression. -func parseSingleRecoveryStrategy(expr string) (RecoveryStrategy, error) { - matches := recoveryTagPattern.FindStringSubmatch(expr) - if matches == nil { - return nil, fmt.Errorf("invalid recovery strategy syntax: %q", expr) - } - - name := matches[1] - argsStr := matches[2] - - switch name { - case "skip_until": - tokens := parseTokenList(argsStr) - if len(tokens) == 0 { - return nil, fmt.Errorf("skip_until requires at least one token") - } - return SkipUntil(tokens...), nil - - case "skip_past": - tokens := parseTokenList(argsStr) - if len(tokens) == 0 { - return nil, fmt.Errorf("skip_past requires at least one token") - } - return SkipPast(tokens...), nil - - case "retry_until": - tokens := parseTokenList(argsStr) - if len(tokens) == 0 { - return nil, fmt.Errorf("retry_until requires at least one token") - } - return SkipThenRetryUntil(tokens...), nil - - case "nested": - return parseNestedStrategy(argsStr) - - default: - return nil, fmt.Errorf("unknown recovery strategy: %q", name) - } -} - -// parseTokenList parses a comma-separated list of tokens. -// Handles both quoted and unquoted tokens. -func parseTokenList(s string) []string { - var tokens []string - var current strings.Builder - inQuote := false - quoteChar := rune(0) - - for _, r := range s { - switch { - case !inQuote && (r == '"' || r == '\''): - inQuote = true - quoteChar = r - case inQuote && r == quoteChar: - inQuote = false - quoteChar = 0 - case !inQuote && r == ',': - if tok := strings.TrimSpace(current.String()); tok != "" { - tokens = append(tokens, tok) - } - current.Reset() - default: - current.WriteRune(r) - } - } - - if tok := strings.TrimSpace(current.String()); tok != "" { - tokens = append(tokens, tok) - } - - return tokens -} - -// parseNestedStrategy parses a nested() strategy expression. -// Formats: -// - nested(start, end) -// - nested(start, end, [s1, e1], [s2, e2], ...) -func parseNestedStrategy(argsStr string) (RecoveryStrategy, error) { - // Simple parsing: split by commas, handling brackets - args := parseNestedArgs(argsStr) - - if len(args) < 2 { - return nil, fmt.Errorf("nested requires at least start and end delimiters") - } - - start := strings.TrimSpace(args[0]) - end := strings.TrimSpace(args[1]) - - var others [][2]string - for i := 2; i < len(args); i++ { - // Parse [s, e] format - arg := strings.TrimSpace(args[i]) - if strings.HasPrefix(arg, "[") && strings.HasSuffix(arg, "]") { - inner := arg[1 : len(arg)-1] - parts := strings.SplitN(inner, ",", 2) - if len(parts) == 2 { - others = append(others, [2]string{ - strings.TrimSpace(parts[0]), - strings.TrimSpace(parts[1]), - }) - } - } - } - - return NestedDelimiters(start, end, others...), nil -} - -// parseNestedArgs splits arguments while respecting bracket nesting. -func parseNestedArgs(s string) []string { - var args []string - var current strings.Builder - depth := 0 - - for _, r := range s { - switch r { - case '[': - depth++ - current.WriteRune(r) - case ']': - depth-- - current.WriteRune(r) - case ',': - if depth == 0 { - args = append(args, current.String()) - current.Reset() - } else { - current.WriteRune(r) - } - default: - current.WriteRune(r) - } - } - - if current.Len() > 0 { - args = append(args, current.String()) - } - - return args -} - -// ============================================================================= -// Field Recovery Tag Extraction -// ============================================================================= - -// fieldRecoveryTag extracts the recovery tag from a struct field. -func fieldRecoveryTag(field reflect.StructField) string { - return field.Tag.Get("recover") -} - -// ============================================================================= -// Recovery-Aware Wrapper Node -// ============================================================================= - -// recoveryNode wraps another node with recovery configuration. -// This allows any node to have per-node recovery without modifying all node types. -type recoveryNode struct { - inner node - recovery *nodeRecoveryConfig -} - -func (r *recoveryNode) String() string { return r.inner.String() } -func (r *recoveryNode) GoString() string { return fmt.Sprintf("recovery{%s}", r.inner.GoString()) } - -func (r *recoveryNode) Parse(ctx *parseContext, parent reflect.Value) ([]reflect.Value, error) { - // Save checkpoint for potential recovery - checkpoint := ctx.saveCheckpoint() - - // Try parsing normally - values, err := r.inner.Parse(ctx, parent) - - // If parsing succeeded (values != nil, err == nil), return normally - if err == nil && values != nil { - return values, nil - } - - // If no recovery strategies configured, just return the result - if r.recovery == nil || len(r.recovery.strategies) == 0 { - return values, err - } - - // Check if we've exceeded max errors - if ctx.recovery != nil && ctx.recovery.maxErrors > 0 && len(ctx.recoveryErrors) >= ctx.recovery.maxErrors { - return values, err - } - - // Determine the error to report - // If there was no explicit error but also no match (nil, nil), create an error - reportErr := err - if reportErr == nil { - // Get current token to create a meaningful error - tok := ctx.Peek() - reportErr = &UnexpectedTokenError{Unexpected: *tok, expectNode: r.inner} - } - - // Try each recovery strategy - for _, strategy := range r.recovery.strategies { - ctx.restoreCheckpoint(checkpoint) - recovered, recoveredValues, newErr := strategy.Recover(ctx, reportErr, parent) - if recovered { - // Wrap error with label if present - if r.recovery.label != "" { - if perr, ok := newErr.(Error); ok { - newErr = Errorf(perr.Position(), "in %s: %s", r.recovery.label, perr.Message()) - } - } - ctx.addRecoveryError(newErr) - if len(recoveredValues) > 0 { - return recoveredValues, nil - } - // Return empty slice to indicate recovery succeeded (matched but skipped) - // This is different from nil which means "no match" - return []reflect.Value{}, nil - } - } - - // No strategy succeeded, restore and return original result - ctx.restoreCheckpoint(checkpoint) - return values, err -} - -// SetRecovery implements recoverableNode. -func (r *recoveryNode) SetRecovery(config *nodeRecoveryConfig) { - r.recovery = config -} - -// GetRecovery implements recoverableNode. -func (r *recoveryNode) GetRecovery() *nodeRecoveryConfig { - return r.recovery -} - -// wrapWithRecovery wraps a node with recovery configuration if provided. -func wrapWithRecovery(n node, config *nodeRecoveryConfig) node { - if config == nil || (len(config.strategies) == 0 && config.label == "") { - return n - } - return &recoveryNode{inner: n, recovery: config} -} diff --git a/vendor/github.com/alecthomas/participle/v2/renovate.json5 b/vendor/github.com/alecthomas/participle/v2/renovate.json5 deleted file mode 100644 index 77c7b01..0000000 --- a/vendor/github.com/alecthomas/participle/v2/renovate.json5 +++ /dev/null @@ -1,18 +0,0 @@ -{ - $schema: "https://docs.renovatebot.com/renovate-schema.json", - extends: [ - "config:recommended", - ":semanticCommits", - ":semanticCommitTypeAll(chore)", - ":semanticCommitScope(deps)", - "group:allNonMajor", - "schedule:earlyMondays", // Run once a week. - ], - packageRules: [ - { - matchPackageNames: ["golangci-lint"], - matchManagers: ["hermit"], - enabled: false, - }, - ], -} diff --git a/vendor/github.com/alecthomas/participle/v2/struct.go b/vendor/github.com/alecthomas/participle/v2/struct.go deleted file mode 100644 index c4d5d08..0000000 --- a/vendor/github.com/alecthomas/participle/v2/struct.go +++ /dev/null @@ -1,212 +0,0 @@ -package participle - -import ( - "fmt" - "reflect" - "strconv" - "strings" - "text/scanner" - "unicode/utf8" - - "github.com/alecthomas/participle/v2/lexer" -) - -// A structLexer lexes over the tags of struct fields while tracking the current field. -type structLexer struct { - s reflect.Type - field int - indexes [][]int - lexer *lexer.PeekingLexer -} - -func lexStruct(s reflect.Type) (*structLexer, error) { - indexes, err := collectFieldIndexes(s) - if err != nil { - return nil, err - } - slex := &structLexer{ - s: s, - indexes: indexes, - } - if len(slex.indexes) > 0 { - tag := fieldLexerTag(slex.Field().StructField) - slex.lexer, err = lexer.Upgrade(newTagLexer(s.Name(), tag)) - if err != nil { - return nil, err - } - } - return slex, nil -} - -// NumField returns the number of fields in the struct associated with this structLexer. -func (s *structLexer) NumField() int { - return len(s.indexes) -} - -type structLexerField struct { - reflect.StructField - Index []int -} - -// RecoveryTag returns the recovery configuration tag for this field, if any. -func (f structLexerField) RecoveryTag() string { - return f.Tag.Get("recover") -} - -// Field returns the field associated with the current token. -func (s *structLexer) Field() structLexerField { - return s.GetField(s.field) -} - -func (s *structLexer) GetField(field int) structLexerField { - if field >= len(s.indexes) { - field = len(s.indexes) - 1 - } - return structLexerField{ - StructField: s.s.FieldByIndex(s.indexes[field]), - Index: s.indexes[field], - } -} - -func (s *structLexer) Peek() (*lexer.Token, error) { - field := s.field - lex := s.lexer - for { - token := lex.Peek() - if !token.EOF() { - token.Pos.Line = field + 1 - return token, nil - } - field++ - if field >= s.NumField() { - t := lexer.EOFToken(token.Pos) - return &t, nil - } - ft := s.GetField(field).StructField - tag := fieldLexerTag(ft) - var err error - lex, err = lexer.Upgrade(newTagLexer(ft.Name, tag)) - if err != nil { - return token, err - } - } -} - -func (s *structLexer) Next() (*lexer.Token, error) { - token := s.lexer.Next() - if !token.EOF() { - token.Pos.Line = s.field + 1 - return token, nil - } - if s.field+1 >= s.NumField() { - t := lexer.EOFToken(token.Pos) - return &t, nil - } - s.field++ - ft := s.Field().StructField - tag := fieldLexerTag(ft) - var err error - s.lexer, err = lexer.Upgrade(newTagLexer(ft.Name, tag)) - if err != nil { - return token, err - } - return s.Next() -} - -func fieldLexerTag(field reflect.StructField) string { - if tag, ok := field.Tag.Lookup("parser"); ok { - return tag - } - return string(field.Tag) -} - -// Recursively collect flattened indices for top-level fields and embedded fields. -func collectFieldIndexes(s reflect.Type) (out [][]int, err error) { - if s.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected a struct but got %q", s) - } - defer decorate(&err, s.String) - for i := 0; i < s.NumField(); i++ { - f := s.Field(i) - switch { - case f.Anonymous && f.Type.Kind() == reflect.Struct: // Embedded struct. - children, err := collectFieldIndexes(f.Type) - if err != nil { - return nil, err - } - for _, idx := range children { - out = append(out, append(f.Index, idx...)) - } - - case f.PkgPath != "": - continue - - case fieldLexerTag(f) != "": - out = append(out, f.Index) - } - } - return -} - -// tagLexer is a Lexer based on text/scanner.Scanner -type tagLexer struct { - scanner *scanner.Scanner - filename string - err error -} - -func newTagLexer(filename string, tag string) *tagLexer { - s := &scanner.Scanner{} - s.Init(strings.NewReader(tag)) - lexer := &tagLexer{ - filename: filename, - scanner: s, - } - lexer.scanner.Error = func(s *scanner.Scanner, msg string) { - // This is to support single quoted strings. Hacky. - if !strings.HasSuffix(msg, "char literal") { - lexer.err = fmt.Errorf("%s: %s", lexer.scanner.Pos(), msg) - } - } - return lexer -} - -func (t *tagLexer) Next() (lexer.Token, error) { - typ := t.scanner.Scan() - text := t.scanner.TokenText() - pos := lexer.Position(t.scanner.Position) - pos.Filename = t.filename - if t.err != nil { - return lexer.Token{}, t.err - } - return textScannerTransform(lexer.Token{ - Type: lexer.TokenType(typ), - Value: text, - Pos: pos, - }) -} - -func textScannerTransform(token lexer.Token) (lexer.Token, error) { - // Unquote strings. - switch token.Type { - case scanner.Char: - // FIXME(alec): This is pretty hacky...we convert a single quoted char into a double - // quoted string in order to support single quoted strings. - token.Value = fmt.Sprintf("\"%s\"", token.Value[1:len(token.Value)-1]) - fallthrough - case scanner.String: - s, err := strconv.Unquote(token.Value) - if err != nil { - return lexer.Token{}, Errorf(token.Pos, "%s: %q", err.Error(), token.Value) - } - token.Value = s - if token.Type == scanner.Char && utf8.RuneCountInString(s) > 1 { - token.Type = scanner.String - } - case scanner.RawString: - token.Value = token.Value[1 : len(token.Value)-1] - - default: - } - return token, nil -} diff --git a/vendor/github.com/alecthomas/participle/v2/validate.go b/vendor/github.com/alecthomas/participle/v2/validate.go deleted file mode 100644 index 3785e3c..0000000 --- a/vendor/github.com/alecthomas/participle/v2/validate.go +++ /dev/null @@ -1,59 +0,0 @@ -package participle - -import ( - "fmt" - "strings" -) - -// Perform some post-construction validation. This currently does: -// -// Checks for left recursion. -func validate(n node) error { - checked := map[*strct]bool{} - seen := map[node]bool{} - - return visit(n, func(n node, next func() error) error { - if n, ok := n.(*strct); ok { - if !checked[n] && isLeftRecursive(n) { - return fmt.Errorf("left recursion detected on\n\n%s", indent(n.String())) - } - checked[n] = true - if seen[n] { - return nil - } - } - seen[n] = true - return next() - }) -} - -func isLeftRecursive(root *strct) (found bool) { - defer func() { _ = recover() }() - seen := map[node]bool{} - _ = visit(root.expr, func(n node, next func() error) error { - if found { - return nil - } - switch n := n.(type) { - case *strct: - if root.typ == n.typ { - found = true - } - - case *sequence: - if !n.head { - panic("done") - } - } - if seen[n] { - return nil - } - seen[n] = true - return next() - }) - return -} - -func indent(s string) string { - return " " + strings.Join(strings.Split(s, "\n"), "\n ") -} diff --git a/vendor/github.com/alecthomas/participle/v2/visit.go b/vendor/github.com/alecthomas/participle/v2/visit.go deleted file mode 100644 index b67e666..0000000 --- a/vendor/github.com/alecthomas/participle/v2/visit.go +++ /dev/null @@ -1,57 +0,0 @@ -package participle - -import "fmt" - -// Visit all nodes. -// -// Cycles are deliberately not detected, it is up to the visitor function to handle this. -func visit(n node, visitor func(n node, next func() error) error) error { - return visitor(n, func() error { - switch n := n.(type) { - case *disjunction: - for _, child := range n.nodes { - if err := visit(child, visitor); err != nil { - return err - } - } - return nil - case *strct: - return visit(n.expr, visitor) - case *custom: - return nil - case *union: - for _, member := range n.disjunction.nodes { - if err := visit(member, visitor); err != nil { - return err - } - } - return nil - case *sequence: - if err := visit(n.node, visitor); err != nil { - return err - } - if n.next != nil { - return visit(n.next, visitor) - } - return nil - case *parseable: - return nil - case *capture: - return visit(n.node, visitor) - case *reference: - return nil - case *negation: - return visit(n.node, visitor) - case *literal: - return nil - case *group: - return visit(n.expr, visitor) - case *lookaheadGroup: - return visit(n.expr, visitor) - case *recoveryNode: - return visit(n.inner, visitor) - default: - panic(fmt.Sprintf("%T", n)) - } - }) -} diff --git a/vendor/github.com/aymanbagabas/go-osc52/v2/LICENSE b/vendor/github.com/aymanbagabas/go-osc52/v2/LICENSE deleted file mode 100644 index 25cec1e..0000000 --- a/vendor/github.com/aymanbagabas/go-osc52/v2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Ayman Bagabas - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/aymanbagabas/go-osc52/v2/README.md b/vendor/github.com/aymanbagabas/go-osc52/v2/README.md deleted file mode 100644 index 4de3a22..0000000 --- a/vendor/github.com/aymanbagabas/go-osc52/v2/README.md +++ /dev/null @@ -1,83 +0,0 @@ - -# go-osc52 - -

- Latest Release - GoDoc -

- -A Go library to work with the [ANSI OSC52](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands) terminal sequence. - -## Usage - -You can use this small library to construct an ANSI OSC52 sequence suitable for -your terminal. - - -### Example - -```go -import ( - "os" - "fmt" - - "github.com/aymanbagabas/go-osc52/v2" -) - -func main() { - s := "Hello World!" - - // Copy `s` to system clipboard - osc52.New(s).WriteTo(os.Stderr) - - // Copy `s` to primary clipboard (X11) - osc52.New(s).Primary().WriteTo(os.Stderr) - - // Query the clipboard - osc52.Query().WriteTo(os.Stderr) - - // Clear system clipboard - osc52.Clear().WriteTo(os.Stderr) - - // Use the fmt.Stringer interface to copy `s` to system clipboard - fmt.Fprint(os.Stderr, osc52.New(s)) - - // Or to primary clipboard - fmt.Fprint(os.Stderr, osc52.New(s).Primary()) -} -``` - -## SSH Example - -You can use this over SSH using [gliderlabs/ssh](https://github.com/gliderlabs/ssh) for instance: - -```go -var sshSession ssh.Session -seq := osc52.New("Hello awesome!") -// Check if term is screen or tmux -pty, _, _ := s.Pty() -if pty.Term == "screen" { - seq = seq.Screen() -} else if isTmux { - seq = seq.Tmux() -} -seq.WriteTo(sshSession.Stderr()) -``` - -## Tmux - -Make sure you have `set-clipboard on` in your config, otherwise, tmux won't -allow your application to access the clipboard [^1]. - -Using the tmux option, `osc52.TmuxMode` or `osc52.New(...).Tmux()`, wraps the -OSC52 sequence in a special tmux DCS sequence and pass it to the outer -terminal. This requires `allow-passthrough on` in your config. -`allow-passthrough` is no longer enabled by default -[since tmux 3.3a](https://github.com/tmux/tmux/issues/3218#issuecomment-1153089282) [^2]. - -[^1]: See [tmux clipboard](https://github.com/tmux/tmux/wiki/Clipboard) -[^2]: [What is allow-passthrough](https://github.com/tmux/tmux/wiki/FAQ#what-is-the-passthrough-escape-sequence-and-how-do-i-use-it) - -## Credits - -* [vim-oscyank](https://github.com/ojroques/vim-oscyank) this is heavily inspired by vim-oscyank. diff --git a/vendor/github.com/aymanbagabas/go-osc52/v2/osc52.go b/vendor/github.com/aymanbagabas/go-osc52/v2/osc52.go deleted file mode 100644 index dc758d2..0000000 --- a/vendor/github.com/aymanbagabas/go-osc52/v2/osc52.go +++ /dev/null @@ -1,305 +0,0 @@ -// OSC52 is a terminal escape sequence that allows copying text to the clipboard. -// -// The sequence consists of the following: -// -// OSC 52 ; Pc ; Pd BEL -// -// Pc is the clipboard choice: -// -// c: clipboard -// p: primary -// q: secondary (not supported) -// s: select (not supported) -// 0-7: cut-buffers (not supported) -// -// Pd is the data to copy to the clipboard. This string should be encoded in -// base64 (RFC-4648). -// -// If Pd is "?", the terminal replies to the host with the current contents of -// the clipboard. -// -// If Pd is neither a base64 string nor "?", the terminal clears the clipboard. -// -// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -// where Ps = 52 => Manipulate Selection Data. -// -// Examples: -// -// // copy "hello world" to the system clipboard -// fmt.Fprint(os.Stderr, osc52.New("hello world")) -// -// // copy "hello world" to the primary Clipboard -// fmt.Fprint(os.Stderr, osc52.New("hello world").Primary()) -// -// // limit the size of the string to copy 10 bytes -// fmt.Fprint(os.Stderr, osc52.New("0123456789").Limit(10)) -// -// // escape the OSC52 sequence for screen using DCS sequences -// fmt.Fprint(os.Stderr, osc52.New("hello world").Screen()) -// -// // escape the OSC52 sequence for Tmux -// fmt.Fprint(os.Stderr, osc52.New("hello world").Tmux()) -// -// // query the system Clipboard -// fmt.Fprint(os.Stderr, osc52.Query()) -// -// // query the primary clipboard -// fmt.Fprint(os.Stderr, osc52.Query().Primary()) -// -// // clear the system Clipboard -// fmt.Fprint(os.Stderr, osc52.Clear()) -// -// // clear the primary Clipboard -// fmt.Fprint(os.Stderr, osc52.Clear().Primary()) -package osc52 - -import ( - "encoding/base64" - "fmt" - "io" - "strings" -) - -// Clipboard is the clipboard buffer to use. -type Clipboard rune - -const ( - // SystemClipboard is the system clipboard buffer. - SystemClipboard Clipboard = 'c' - // PrimaryClipboard is the primary clipboard buffer (X11). - PrimaryClipboard = 'p' -) - -// Mode is the mode to use for the OSC52 sequence. -type Mode uint - -const ( - // DefaultMode is the default OSC52 sequence mode. - DefaultMode Mode = iota - // ScreenMode escapes the OSC52 sequence for screen using DCS sequences. - ScreenMode - // TmuxMode escapes the OSC52 sequence for tmux. Not needed if tmux - // clipboard is set to `set-clipboard on` - TmuxMode -) - -// Operation is the OSC52 operation. -type Operation uint - -const ( - // SetOperation is the copy operation. - SetOperation Operation = iota - // QueryOperation is the query operation. - QueryOperation - // ClearOperation is the clear operation. - ClearOperation -) - -// Sequence is the OSC52 sequence. -type Sequence struct { - str string - limit int - op Operation - mode Mode - clipboard Clipboard -} - -var _ fmt.Stringer = Sequence{} - -var _ io.WriterTo = Sequence{} - -// String returns the OSC52 sequence. -func (s Sequence) String() string { - var seq strings.Builder - // mode escape sequences start - seq.WriteString(s.seqStart()) - // actual OSC52 sequence start - seq.WriteString(fmt.Sprintf("\x1b]52;%c;", s.clipboard)) - switch s.op { - case SetOperation: - str := s.str - if s.limit > 0 && len(str) > s.limit { - return "" - } - b64 := base64.StdEncoding.EncodeToString([]byte(str)) - switch s.mode { - case ScreenMode: - // Screen doesn't support OSC52 but will pass the contents of a DCS - // sequence to the outer terminal unchanged. - // - // Here, we split the encoded string into 76 bytes chunks and then - // join the chunks with sequences. Finally, - // wrap the whole thing in - // . - // s := strings.SplitN(b64, "", 76) - s := make([]string, 0, len(b64)/76+1) - for i := 0; i < len(b64); i += 76 { - end := i + 76 - if end > len(b64) { - end = len(b64) - } - s = append(s, b64[i:end]) - } - seq.WriteString(strings.Join(s, "\x1b\\\x1bP")) - default: - seq.WriteString(b64) - } - case QueryOperation: - // OSC52 queries the clipboard using "?" - seq.WriteString("?") - case ClearOperation: - // OSC52 clears the clipboard if the data is neither a base64 string nor "?" - // we're using "!" as a default - seq.WriteString("!") - } - // actual OSC52 sequence end - seq.WriteString("\x07") - // mode escape end - seq.WriteString(s.seqEnd()) - return seq.String() -} - -// WriteTo writes the OSC52 sequence to the writer. -func (s Sequence) WriteTo(out io.Writer) (int64, error) { - n, err := out.Write([]byte(s.String())) - return int64(n), err -} - -// Mode sets the mode for the OSC52 sequence. -func (s Sequence) Mode(m Mode) Sequence { - s.mode = m - return s -} - -// Tmux sets the mode to TmuxMode. -// Used to escape the OSC52 sequence for `tmux`. -// -// Note: this is not needed if tmux clipboard is set to `set-clipboard on`. If -// TmuxMode is used, tmux must have `allow-passthrough on` set. -// -// This is a syntactic sugar for s.Mode(TmuxMode). -func (s Sequence) Tmux() Sequence { - return s.Mode(TmuxMode) -} - -// Screen sets the mode to ScreenMode. -// Used to escape the OSC52 sequence for `screen`. -// -// This is a syntactic sugar for s.Mode(ScreenMode). -func (s Sequence) Screen() Sequence { - return s.Mode(ScreenMode) -} - -// Clipboard sets the clipboard buffer for the OSC52 sequence. -func (s Sequence) Clipboard(c Clipboard) Sequence { - s.clipboard = c - return s -} - -// Primary sets the clipboard buffer to PrimaryClipboard. -// This is the X11 primary clipboard. -// -// This is a syntactic sugar for s.Clipboard(PrimaryClipboard). -func (s Sequence) Primary() Sequence { - return s.Clipboard(PrimaryClipboard) -} - -// Limit sets the limit for the OSC52 sequence. -// The default limit is 0 (no limit). -// -// Strings longer than the limit get ignored. Settting the limit to 0 or a -// negative value disables the limit. Each terminal defines its own escapse -// sequence limit. -func (s Sequence) Limit(l int) Sequence { - if l < 0 { - s.limit = 0 - } else { - s.limit = l - } - return s -} - -// Operation sets the operation for the OSC52 sequence. -// The default operation is SetOperation. -func (s Sequence) Operation(o Operation) Sequence { - s.op = o - return s -} - -// Clear sets the operation to ClearOperation. -// This clears the clipboard. -// -// This is a syntactic sugar for s.Operation(ClearOperation). -func (s Sequence) Clear() Sequence { - return s.Operation(ClearOperation) -} - -// Query sets the operation to QueryOperation. -// This queries the clipboard contents. -// -// This is a syntactic sugar for s.Operation(QueryOperation). -func (s Sequence) Query() Sequence { - return s.Operation(QueryOperation) -} - -// SetString sets the string for the OSC52 sequence. Strings are joined with a -// space character. -func (s Sequence) SetString(strs ...string) Sequence { - s.str = strings.Join(strs, " ") - return s -} - -// New creates a new OSC52 sequence with the given string(s). Strings are -// joined with a space character. -func New(strs ...string) Sequence { - s := Sequence{ - str: strings.Join(strs, " "), - limit: 0, - mode: DefaultMode, - clipboard: SystemClipboard, - op: SetOperation, - } - return s -} - -// Query creates a new OSC52 sequence with the QueryOperation. -// This returns a new OSC52 sequence to query the clipboard contents. -// -// This is a syntactic sugar for New().Query(). -func Query() Sequence { - return New().Query() -} - -// Clear creates a new OSC52 sequence with the ClearOperation. -// This returns a new OSC52 sequence to clear the clipboard. -// -// This is a syntactic sugar for New().Clear(). -func Clear() Sequence { - return New().Clear() -} - -func (s Sequence) seqStart() string { - switch s.mode { - case TmuxMode: - // Write the start of a tmux escape sequence. - return "\x1bPtmux;\x1b" - case ScreenMode: - // Write the start of a DCS sequence. - return "\x1bP" - default: - return "" - } -} - -func (s Sequence) seqEnd() string { - switch s.mode { - case TmuxMode: - // Terminate the tmux escape sequence. - return "\x1b\\" - case ScreenMode: - // Write the end of a DCS sequence. - return "\x1b\x5c" - default: - return "" - } -} diff --git a/vendor/github.com/charmbracelet/bubbles/LICENSE b/vendor/github.com/charmbracelet/bubbles/LICENSE deleted file mode 100644 index 31d76c1..0000000 --- a/vendor/github.com/charmbracelet/bubbles/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020-2023 Charmbracelet, Inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/charmbracelet/bubbles/spinner/spinner.go b/vendor/github.com/charmbracelet/bubbles/spinner/spinner.go deleted file mode 100644 index b2d24b0..0000000 --- a/vendor/github.com/charmbracelet/bubbles/spinner/spinner.go +++ /dev/null @@ -1,224 +0,0 @@ -// Package spinner provides a spinner component for Bubble Tea applications. -package spinner - -import ( - "sync/atomic" - "time" - - tea "github.com/charmbracelet/bubbletea" - "github.com/charmbracelet/lipgloss" -) - -// Internal ID management. Used during animating to ensure that frame messages -// are received only by spinner components that sent them. -var lastID int64 - -func nextID() int { - return int(atomic.AddInt64(&lastID, 1)) -} - -// Spinner is a set of frames used in animating the spinner. -type Spinner struct { - Frames []string - FPS time.Duration -} - -// Some spinners to choose from. You could also make your own. -var ( - Line = Spinner{ - Frames: []string{"|", "/", "-", "\\"}, - FPS: time.Second / 10, //nolint:mnd - } - Dot = Spinner{ - Frames: []string{"⣾ ", "⣽ ", "⣻ ", "⢿ ", "⡿ ", "⣟ ", "⣯ ", "⣷ "}, - FPS: time.Second / 10, //nolint:mnd - } - MiniDot = Spinner{ - Frames: []string{"⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"}, - FPS: time.Second / 12, //nolint:mnd - } - Jump = Spinner{ - Frames: []string{"⢄", "⢂", "⢁", "⡁", "⡈", "⡐", "⡠"}, - FPS: time.Second / 10, //nolint:mnd - } - Pulse = Spinner{ - Frames: []string{"█", "▓", "▒", "░"}, - FPS: time.Second / 8, //nolint:mnd - } - Points = Spinner{ - Frames: []string{"∙∙∙", "●∙∙", "∙●∙", "∙∙●"}, - FPS: time.Second / 7, //nolint:mnd - } - Globe = Spinner{ - Frames: []string{"🌍", "🌎", "🌏"}, - FPS: time.Second / 4, //nolint:mnd - } - Moon = Spinner{ - Frames: []string{"🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", "🌘"}, - FPS: time.Second / 8, //nolint:mnd - } - Monkey = Spinner{ - Frames: []string{"🙈", "🙉", "🙊"}, - FPS: time.Second / 3, //nolint:mnd - } - Meter = Spinner{ - Frames: []string{ - "▱▱▱", - "▰▱▱", - "▰▰▱", - "▰▰▰", - "▰▰▱", - "▰▱▱", - "▱▱▱", - }, - FPS: time.Second / 7, //nolint:mnd - } - Hamburger = Spinner{ - Frames: []string{"☱", "☲", "☴", "☲"}, - FPS: time.Second / 3, //nolint:mnd - } - Ellipsis = Spinner{ - Frames: []string{"", ".", "..", "..."}, - FPS: time.Second / 3, //nolint:mnd - } -) - -// Model contains the state for the spinner. Use New to create new models -// rather than using Model as a struct literal. -type Model struct { - // Spinner settings to use. See type Spinner. - Spinner Spinner - - // Style sets the styling for the spinner. Most of the time you'll just - // want foreground and background coloring, and potentially some padding. - // - // For an introduction to styling with Lip Gloss see: - // https://github.com/charmbracelet/lipgloss - Style lipgloss.Style - - frame int - id int - tag int -} - -// ID returns the spinner's unique ID. -func (m Model) ID() int { - return m.id -} - -// New returns a model with default values. -func New(opts ...Option) Model { - m := Model{ - Spinner: Line, - id: nextID(), - } - - for _, opt := range opts { - opt(&m) - } - - return m -} - -// NewModel returns a model with default values. -// -// Deprecated: use [New] instead. -var NewModel = New - -// TickMsg indicates that the timer has ticked and we should render a frame. -type TickMsg struct { - Time time.Time - tag int - ID int -} - -// Update is the Tea update function. -func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) { - switch msg := msg.(type) { - case TickMsg: - // If an ID is set, and the ID doesn't belong to this spinner, reject - // the message. - if msg.ID > 0 && msg.ID != m.id { - return m, nil - } - - // If a tag is set, and it's not the one we expect, reject the message. - // This prevents the spinner from receiving too many messages and - // thus spinning too fast. - if msg.tag > 0 && msg.tag != m.tag { - return m, nil - } - - m.frame++ - if m.frame >= len(m.Spinner.Frames) { - m.frame = 0 - } - - m.tag++ - return m, m.tick(m.id, m.tag) - default: - return m, nil - } -} - -// View renders the model's view. -func (m Model) View() string { - if m.frame >= len(m.Spinner.Frames) { - return "(error)" - } - - return m.Style.Render(m.Spinner.Frames[m.frame]) -} - -// Tick is the command used to advance the spinner one frame. Use this command -// to effectively start the spinner. -func (m Model) Tick() tea.Msg { - return TickMsg{ - // The time at which the tick occurred. - Time: time.Now(), - - // The ID of the spinner that this message belongs to. This can be - // helpful when routing messages, however bear in mind that spinners - // will ignore messages that don't contain ID by default. - ID: m.id, - - tag: m.tag, - } -} - -func (m Model) tick(id, tag int) tea.Cmd { - return tea.Tick(m.Spinner.FPS, func(t time.Time) tea.Msg { - return TickMsg{ - Time: t, - ID: id, - tag: tag, - } - }) -} - -// Tick is the command used to advance the spinner one frame. Use this command -// to effectively start the spinner. -// -// Deprecated: Use [Model.Tick] instead. -func Tick() tea.Msg { - return TickMsg{Time: time.Now()} -} - -// Option is used to set options in New. For example: -// -// spinner := New(WithSpinner(Dot)) -type Option func(*Model) - -// WithSpinner is an option to set the spinner. -func WithSpinner(spinner Spinner) Option { - return func(m *Model) { - m.Spinner = spinner - } -} - -// WithStyle is an option to set the spinner style. -func WithStyle(style lipgloss.Style) Option { - return func(m *Model) { - m.Style = style - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/.gitattributes b/vendor/github.com/charmbracelet/bubbletea/.gitattributes deleted file mode 100644 index 6c929d4..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.golden -text diff --git a/vendor/github.com/charmbracelet/bubbletea/.gitignore b/vendor/github.com/charmbracelet/bubbletea/.gitignore deleted file mode 100644 index abd7c06..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -.DS_Store -.envrc - -examples/fullscreen/fullscreen -examples/help/help -examples/http/http -examples/list-default/list-default -examples/list-fancy/list-fancy -examples/list-simple/list-simple -examples/mouse/mouse -examples/pager/pager -examples/progress-download/color_vortex.blend -examples/progress-download/progress-download -examples/simple/simple -examples/spinner/spinner -examples/textinput/textinput -examples/textinputs/textinputs -examples/views/views -tutorials/basics/basics -tutorials/commands/commands -.idea -coverage.txt -dist/ diff --git a/vendor/github.com/charmbracelet/bubbletea/.golangci.yml b/vendor/github.com/charmbracelet/bubbletea/.golangci.yml deleted file mode 100644 index 929cb0a..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/.golangci.yml +++ /dev/null @@ -1,44 +0,0 @@ -version: "2" -run: - tests: false -linters: - enable: - - bodyclose - - exhaustive - - goconst - - godot - - gomoddirectives - - goprintffuncname - - gosec - - misspell - - nakedret - - nestif - - nilerr - - noctx - - nolintlint - - prealloc - - revive - - rowserrcheck - - sqlclosecheck - - tparallel - - unconvert - - unparam - - whitespace - - wrapcheck - exclusions: - rules: - - text: '(slog|log)\.\w+' - linters: - - noctx - generated: lax - presets: - - common-false-positives -issues: - max-issues-per-linter: 0 - max-same-issues: 0 -formatters: - enable: - - gofumpt - - goimports - exclusions: - generated: lax diff --git a/vendor/github.com/charmbracelet/bubbletea/.goreleaser.yml b/vendor/github.com/charmbracelet/bubbletea/.goreleaser.yml deleted file mode 100644 index 3353d02..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/.goreleaser.yml +++ /dev/null @@ -1,5 +0,0 @@ -# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json -version: 2 -includes: - - from_url: - url: charmbracelet/meta/main/goreleaser-lib.yaml diff --git a/vendor/github.com/charmbracelet/bubbletea/LICENSE b/vendor/github.com/charmbracelet/bubbletea/LICENSE deleted file mode 100644 index be3f0c1..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020-2025 Charmbracelet, Inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/charmbracelet/bubbletea/README.md b/vendor/github.com/charmbracelet/bubbletea/README.md deleted file mode 100644 index 83f3da0..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/README.md +++ /dev/null @@ -1,400 +0,0 @@ -# Bubble Tea - -

- - - - - -
- Latest Release - GoDoc - Build Status -

- -The fun, functional and stateful way to build terminal apps. A Go framework -based on [The Elm Architecture][elm]. Bubble Tea is well-suited for simple and -complex terminal applications, either inline, full-window, or a mix of both. - -

- Bubble Tea Example -

- -Bubble Tea is in use in production and includes a number of features and -performance optimizations we’ve added along the way. Among those is -a framerate-based renderer, mouse support, focus reporting and more. - -To get started, see the tutorial below, the [examples][examples], the -[docs][docs], the [video tutorials][youtube] and some common [resources](#libraries-we-use-with-bubble-tea). - -[youtube]: https://charm.sh/yt - -## By the way - -Be sure to check out [Bubbles][bubbles], a library of common UI components for Bubble Tea. - -

- Bubbles Badge   - Text Input Example from Bubbles -

- ---- - -## Tutorial - -Bubble Tea is based on the functional design paradigms of [The Elm -Architecture][elm], which happens to work nicely with Go. It's a delightful way -to build applications. - -This tutorial assumes you have a working knowledge of Go. - -By the way, the non-annotated source code for this program is available -[on GitHub][tut-source]. - -[elm]: https://guide.elm-lang.org/architecture/ -[tut-source]: https://github.com/charmbracelet/bubbletea/tree/main/tutorials/basics - -### Enough! Let's get to it. - -For this tutorial, we're making a shopping list. - -To start we'll define our package and import some libraries. Our only external -import will be the Bubble Tea library, which we'll call `tea` for short. - -```go -package main - -// These imports will be used later on the tutorial. If you save the file -// now, Go might complain they are unused, but that's fine. -// You may also need to run `go mod tidy` to download bubbletea and its -// dependencies. -import ( - "fmt" - "os" - - tea "github.com/charmbracelet/bubbletea" -) -``` - -Bubble Tea programs are comprised of a **model** that describes the application -state and three simple methods on that model: - -- **Init**, a function that returns an initial command for the application to run. -- **Update**, a function that handles incoming events and updates the model accordingly. -- **View**, a function that renders the UI based on the data in the model. - -### The Model - -So let's start by defining our model which will store our application's state. -It can be any type, but a `struct` usually makes the most sense. - -```go -type model struct { - choices []string // items on the to-do list - cursor int // which to-do list item our cursor is pointing at - selected map[int]struct{} // which to-do items are selected -} -``` - -### Initialization - -Next, we’ll define our application’s initial state. In this case, we’re defining -a function to return our initial model, however, we could just as easily define -the initial model as a variable elsewhere, too. - -```go -func initialModel() model { - return model{ - // Our to-do list is a grocery list - choices: []string{"Buy carrots", "Buy celery", "Buy kohlrabi"}, - - // A map which indicates which choices are selected. We're using - // the map like a mathematical set. The keys refer to the indexes - // of the `choices` slice, above. - selected: make(map[int]struct{}), - } -} -``` - -Next, we define the `Init` method. `Init` can return a `Cmd` that could perform -some initial I/O. For now, we don't need to do any I/O, so for the command, -we'll just return `nil`, which translates to "no command." - -```go -func (m model) Init() tea.Cmd { - // Just return `nil`, which means "no I/O right now, please." - return nil -} -``` - -### The Update Method - -Next up is the update method. The update function is called when ”things -happen.” Its job is to look at what has happened and return an updated model in -response. It can also return a `Cmd` to make more things happen, but for now -don't worry about that part. - -In our case, when a user presses the down arrow, `Update`’s job is to notice -that the down arrow was pressed and move the cursor accordingly (or not). - -The “something happened” comes in the form of a `Msg`, which can be any type. -Messages are the result of some I/O that took place, such as a keypress, timer -tick, or a response from a server. - -We usually figure out which type of `Msg` we received with a type switch, but -you could also use a type assertion. - -For now, we'll just deal with `tea.KeyMsg` messages, which are automatically -sent to the update function when keys are pressed. - -```go -func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - switch msg := msg.(type) { - - // Is it a key press? - case tea.KeyMsg: - - // Cool, what was the actual key pressed? - switch msg.String() { - - // These keys should exit the program. - case "ctrl+c", "q": - return m, tea.Quit - - // The "up" and "k" keys move the cursor up - case "up", "k": - if m.cursor > 0 { - m.cursor-- - } - - // The "down" and "j" keys move the cursor down - case "down", "j": - if m.cursor < len(m.choices)-1 { - m.cursor++ - } - - // The "enter" key and the spacebar (a literal space) toggle - // the selected state for the item that the cursor is pointing at. - case "enter", " ": - _, ok := m.selected[m.cursor] - if ok { - delete(m.selected, m.cursor) - } else { - m.selected[m.cursor] = struct{}{} - } - } - } - - // Return the updated model to the Bubble Tea runtime for processing. - // Note that we're not returning a command. - return m, nil -} -``` - -You may have noticed that ctrl+c and q above return -a `tea.Quit` command with the model. That’s a special command which instructs -the Bubble Tea runtime to quit, exiting the program. - -### The View Method - -At last, it’s time to render our UI. Of all the methods, the view is the -simplest. We look at the model in its current state and use it to return -a `string`. That string is our UI! - -Because the view describes the entire UI of your application, you don’t have to -worry about redrawing logic and stuff like that. Bubble Tea takes care of it -for you. - -```go -func (m model) View() string { - // The header - s := "What should we buy at the market?\n\n" - - // Iterate over our choices - for i, choice := range m.choices { - - // Is the cursor pointing at this choice? - cursor := " " // no cursor - if m.cursor == i { - cursor = ">" // cursor! - } - - // Is this choice selected? - checked := " " // not selected - if _, ok := m.selected[i]; ok { - checked = "x" // selected! - } - - // Render the row - s += fmt.Sprintf("%s [%s] %s\n", cursor, checked, choice) - } - - // The footer - s += "\nPress q to quit.\n" - - // Send the UI for rendering - return s -} -``` - -### All Together Now - -The last step is to simply run our program. We pass our initial model to -`tea.NewProgram` and let it rip: - -```go -func main() { - p := tea.NewProgram(initialModel()) - if _, err := p.Run(); err != nil { - fmt.Printf("Alas, there's been an error: %v", err) - os.Exit(1) - } -} -``` - -## What’s Next? - -This tutorial covers the basics of building an interactive terminal UI, but -in the real world you'll also need to perform I/O. To learn about that have a -look at the [Command Tutorial][cmd]. It's pretty simple. - -There are also several [Bubble Tea examples][examples] available and, of course, -there are [Go Docs][docs]. - -[cmd]: https://github.com/charmbracelet/bubbletea/tree/main/tutorials/commands/ -[examples]: https://github.com/charmbracelet/bubbletea/tree/main/examples -[docs]: https://pkg.go.dev/github.com/charmbracelet/bubbletea?tab=doc - -## Debugging - -### Debugging with Delve - -Since Bubble Tea apps assume control of stdin and stdout, you’ll need to run -delve in headless mode and then connect to it: - -```bash -# Start the debugger -$ dlv debug --headless --api-version=2 --listen=127.0.0.1:43000 . -API server listening at: 127.0.0.1:43000 - -# Connect to it from another terminal -$ dlv connect 127.0.0.1:43000 -``` - -If you do not explicitly supply the `--listen` flag, the port used will vary -per run, so passing this in makes the debugger easier to use from a script -or your IDE of choice. - -Additionally, we pass in `--api-version=2` because delve defaults to version 1 -for backwards compatibility reasons. However, delve recommends using version 2 -for all new development and some clients may no longer work with version 1. -For more information, see the [Delve documentation](https://github.com/go-delve/delve/tree/master/Documentation/api). - -### Logging Stuff - -You can’t really log to stdout with Bubble Tea because your TUI is busy -occupying that! You can, however, log to a file by including something like -the following prior to starting your Bubble Tea program: - -```go -if len(os.Getenv("DEBUG")) > 0 { - f, err := tea.LogToFile("debug.log", "debug") - if err != nil { - fmt.Println("fatal:", err) - os.Exit(1) - } - defer f.Close() -} -``` - -To see what’s being logged in real time, run `tail -f debug.log` while you run -your program in another window. - -## Libraries we use with Bubble Tea - -- [Bubbles][bubbles]: Common Bubble Tea components such as text inputs, viewports, spinners and so on -- [Lip Gloss][lipgloss]: Style, format and layout tools for terminal applications -- [Harmonica][harmonica]: A spring animation library for smooth, natural motion -- [BubbleZone][bubblezone]: Easy mouse event tracking for Bubble Tea components -- [ntcharts][ntcharts]: A terminal charting library built for Bubble Tea and [Lip Gloss][lipgloss] - -[bubbles]: https://github.com/charmbracelet/bubbles -[lipgloss]: https://github.com/charmbracelet/lipgloss -[harmonica]: https://github.com/charmbracelet/harmonica -[bubblezone]: https://github.com/lrstanley/bubblezone -[ntcharts]: https://github.com/NimbleMarkets/ntcharts - -## Bubble Tea in the Wild - -There are over [10,000 applications](https://github.com/charmbracelet/bubbletea/network/dependents) built with Bubble Tea! Here are a handful of ’em. - -### Staff favourites - -- [chezmoi](https://github.com/twpayne/chezmoi): securely manage your dotfiles across multiple machines -- [circumflex](https://github.com/bensadeh/circumflex): read Hacker News in the terminal -- [gh-dash](https://www.github.com/dlvhdr/gh-dash): a GitHub CLI extension for PRs and issues -- [Tetrigo](https://github.com/Broderick-Westrope/tetrigo): Tetris in the terminal -- [Signls](https://github.com/emprcl/signls): a generative midi sequencer designed for composition and live performance -- [Superfile](https://github.com/yorukot/superfile): a super file manager - -### In Industry - -- Microsoft Azure – [Aztify](https://github.com/Azure/aztfy): bring Microsoft Azure resources under Terraform -- Daytona – [Daytona](https://github.com/daytonaio/daytona): open source dev environment manager -- Cockroach Labs – [CockroachDB](https://github.com/cockroachdb/cockroach): a cloud-native, high-availability distributed SQL database -- Truffle Security Co. – [Trufflehog](https://github.com/trufflesecurity/trufflehog): find leaked credentials -- NVIDIA – [container-canary](https://github.com/NVIDIA/container-canary): a container validator -- AWS – [eks-node-viewer](https://github.com/awslabs/eks-node-viewer): a tool for visualizing dynamic node usage within an EKS cluster -- MinIO – [mc](https://github.com/minio/mc): the official [MinIO](https://min.io) client -- Ubuntu – [Authd](https://github.com/ubuntu/authd): an authentication daemon for cloud-based identity providers - -### Charm stuff - -- [Glow](https://github.com/charmbracelet/glow): a markdown reader, browser, and online markdown stash -- [Huh?](https://github.com/charmbracelet/huh): an interactive prompt and form toolkit -- [Mods](https://github.com/charmbracelet/mods): AI on the CLI, built for pipelines -- [Wishlist](https://github.com/charmbracelet/wishlist): an SSH directory (and bastion!) - -### There’s so much more where that came from - -For more applications built with Bubble Tea see [Charm & Friends][community]. -Is there something cool you made with Bubble Tea you want to share? [PRs][community] are -welcome! - -## Contributing - -See [contributing][contribute]. - -[contribute]: https://github.com/charmbracelet/bubbletea/contribute - -## Feedback - -We’d love to hear your thoughts on this project. Feel free to drop us a note! - -- [Twitter](https://twitter.com/charmcli) -- [The Fediverse](https://mastodon.social/@charmcli) -- [Discord](https://charm.sh/chat) - -## Acknowledgments - -Bubble Tea is based on the paradigms of [The Elm Architecture][elm] by Evan -Czaplicki et alia and the excellent [go-tea][gotea] by TJ Holowaychuk. It’s -inspired by the many great [_Zeichenorientierte Benutzerschnittstellen_][zb] -of days past. - -[elm]: https://guide.elm-lang.org/architecture/ -[gotea]: https://github.com/tj/go-tea -[zb]: https://de.wikipedia.org/wiki/Zeichenorientierte_Benutzerschnittstelle -[community]: https://github.com/charm-and-friends/charm-in-the-wild - -## License - -[MIT](https://github.com/charmbracelet/bubbletea/raw/main/LICENSE) - ---- - -Part of [Charm](https://charm.sh). - -The Charm logo - -Charm热爱开源 • Charm loves open source • نحنُ نحب المصادر المفتوحة diff --git a/vendor/github.com/charmbracelet/bubbletea/Taskfile.yaml b/vendor/github.com/charmbracelet/bubbletea/Taskfile.yaml deleted file mode 100644 index 3507203..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/Taskfile.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# https://taskfile.dev - -version: '3' - -tasks: - lint: - desc: Run lint - cmds: - - golangci-lint run - - test: - desc: Run tests - cmds: - - go test ./... {{.CLI_ARGS}} diff --git a/vendor/github.com/charmbracelet/bubbletea/commands.go b/vendor/github.com/charmbracelet/bubbletea/commands.go deleted file mode 100644 index ec9dac2..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/commands.go +++ /dev/null @@ -1,222 +0,0 @@ -package tea - -import ( - "time" -) - -// Batch performs a bunch of commands concurrently with no ordering guarantees -// about the results. Use a Batch to return several commands. -// -// Example: -// -// func (m model) Init() Cmd { -// return tea.Batch(someCommand, someOtherCommand) -// } -func Batch(cmds ...Cmd) Cmd { - return compactCmds[BatchMsg](cmds) -} - -// BatchMsg is a message used to perform a bunch of commands concurrently with -// no ordering guarantees. You can send a BatchMsg with Batch. -type BatchMsg []Cmd - -// Sequence runs the given commands one at a time, in order. Contrast this with -// Batch, which runs commands concurrently. -func Sequence(cmds ...Cmd) Cmd { - return compactCmds[sequenceMsg](cmds) -} - -// sequenceMsg is used internally to run the given commands in order. -type sequenceMsg []Cmd - -// compactCmds ignores any nil commands in cmds, and returns the most direct -// command possible. That is, considering the non-nil commands, if there are -// none it returns nil, if there is exactly one it returns that command -// directly, else it returns the non-nil commands as type T. -func compactCmds[T ~[]Cmd](cmds []Cmd) Cmd { - var validCmds []Cmd //nolint:prealloc - for _, c := range cmds { - if c == nil { - continue - } - validCmds = append(validCmds, c) - } - switch len(validCmds) { - case 0: - return nil - case 1: - return validCmds[0] - default: - return func() Msg { - return T(validCmds) - } - } -} - -// Every is a command that ticks in sync with the system clock. So, if you -// wanted to tick with the system clock every second, minute or hour you -// could use this. It's also handy for having different things tick in sync. -// -// Because we're ticking with the system clock the tick will likely not run for -// the entire specified duration. For example, if we're ticking for one minute -// and the clock is at 12:34:20 then the next tick will happen at 12:35:00, 40 -// seconds later. -// -// To produce the command, pass a duration and a function which returns -// a message containing the time at which the tick occurred. -// -// type TickMsg time.Time -// -// cmd := Every(time.Second, func(t time.Time) Msg { -// return TickMsg(t) -// }) -// -// Beginners' note: Every sends a single message and won't automatically -// dispatch messages at an interval. To do that, you'll want to return another -// Every command after receiving your tick message. For example: -// -// type TickMsg time.Time -// -// // Send a message every second. -// func tickEvery() Cmd { -// return Every(time.Second, func(t time.Time) Msg { -// return TickMsg(t) -// }) -// } -// -// func (m model) Init() Cmd { -// // Start ticking. -// return tickEvery() -// } -// -// func (m model) Update(msg Msg) (Model, Cmd) { -// switch msg.(type) { -// case TickMsg: -// // Return your Every command again to loop. -// return m, tickEvery() -// } -// return m, nil -// } -// -// Every is analogous to Tick in the Elm Architecture. -func Every(duration time.Duration, fn func(time.Time) Msg) Cmd { - n := time.Now() - d := n.Truncate(duration).Add(duration).Sub(n) - t := time.NewTimer(d) - return func() Msg { - ts := <-t.C - t.Stop() - for len(t.C) > 0 { - <-t.C - } - return fn(ts) - } -} - -// Tick produces a command at an interval independent of the system clock at -// the given duration. That is, the timer begins precisely when invoked, -// and runs for its entire duration. -// -// To produce the command, pass a duration and a function which returns -// a message containing the time at which the tick occurred. -// -// type TickMsg time.Time -// -// cmd := Tick(time.Second, func(t time.Time) Msg { -// return TickMsg(t) -// }) -// -// Beginners' note: Tick sends a single message and won't automatically -// dispatch messages at an interval. To do that, you'll want to return another -// Tick command after receiving your tick message. For example: -// -// type TickMsg time.Time -// -// func doTick() Cmd { -// return Tick(time.Second, func(t time.Time) Msg { -// return TickMsg(t) -// }) -// } -// -// func (m model) Init() Cmd { -// // Start ticking. -// return doTick() -// } -// -// func (m model) Update(msg Msg) (Model, Cmd) { -// switch msg.(type) { -// case TickMsg: -// // Return your Tick command again to loop. -// return m, doTick() -// } -// return m, nil -// } -func Tick(d time.Duration, fn func(time.Time) Msg) Cmd { - t := time.NewTimer(d) - return func() Msg { - ts := <-t.C - t.Stop() - for len(t.C) > 0 { - <-t.C - } - return fn(ts) - } -} - -// Sequentially produces a command that sequentially executes the given -// commands. -// The Msg returned is the first non-nil message returned by a Cmd. -// -// func saveStateCmd() Msg { -// if err := save(); err != nil { -// return errMsg{err} -// } -// return nil -// } -// -// cmd := Sequentially(saveStateCmd, Quit) -// -// Deprecated: use Sequence instead. -func Sequentially(cmds ...Cmd) Cmd { - return func() Msg { - for _, cmd := range cmds { - if cmd == nil { - continue - } - if msg := cmd(); msg != nil { - return msg - } - } - return nil - } -} - -// setWindowTitleMsg is an internal message used to set the window title. -type setWindowTitleMsg string - -// SetWindowTitle produces a command that sets the terminal title. -// -// For example: -// -// func (m model) Init() Cmd { -// // Set title. -// return tea.SetWindowTitle("My App") -// } -func SetWindowTitle(title string) Cmd { - return func() Msg { - return setWindowTitleMsg(title) - } -} - -type windowSizeMsg struct{} - -// WindowSize is a command that queries the terminal for its current size. It -// delivers the results to Update via a [WindowSizeMsg]. Keep in mind that -// WindowSizeMsgs will automatically be delivered to Update when the [Program] -// starts and when the window dimensions change so in many cases you will not -// need to explicitly invoke this command. -func WindowSize() Cmd { - return func() Msg { - return windowSizeMsg{} - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/exec.go b/vendor/github.com/charmbracelet/bubbletea/exec.go deleted file mode 100644 index 8048414..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/exec.go +++ /dev/null @@ -1,133 +0,0 @@ -package tea - -import ( - "io" - "os" - "os/exec" -) - -// execMsg is used internally to run an ExecCommand sent with Exec. -type execMsg struct { - cmd ExecCommand - fn ExecCallback -} - -// Exec is used to perform arbitrary I/O in a blocking fashion, effectively -// pausing the Program while execution is running and resuming it when -// execution has completed. -// -// Most of the time you'll want to use ExecProcess, which runs an exec.Cmd. -// -// For non-interactive i/o you should use a Cmd (that is, a tea.Cmd). -func Exec(c ExecCommand, fn ExecCallback) Cmd { - return func() Msg { - return execMsg{cmd: c, fn: fn} - } -} - -// ExecProcess runs the given *exec.Cmd in a blocking fashion, effectively -// pausing the Program while the command is running. After the *exec.Cmd exists -// the Program resumes. It's useful for spawning other interactive applications -// such as editors and shells from within a Program. -// -// To produce the command, pass an *exec.Cmd and a function which returns -// a message containing the error which may have occurred when running the -// ExecCommand. -// -// type VimFinishedMsg struct { err error } -// -// c := exec.Command("vim", "file.txt") -// -// cmd := ExecProcess(c, func(err error) Msg { -// return VimFinishedMsg{err: err} -// }) -// -// Or, if you don't care about errors, you could simply: -// -// cmd := ExecProcess(exec.Command("vim", "file.txt"), nil) -// -// For non-interactive i/o you should use a Cmd (that is, a tea.Cmd). -func ExecProcess(c *exec.Cmd, fn ExecCallback) Cmd { - return Exec(wrapExecCommand(c), fn) -} - -// ExecCallback is used when executing an *exec.Command to return a message -// with an error, which may or may not be nil. -type ExecCallback func(error) Msg - -// ExecCommand can be implemented to execute things in a blocking fashion in -// the current terminal. -type ExecCommand interface { - Run() error - SetStdin(io.Reader) - SetStdout(io.Writer) - SetStderr(io.Writer) -} - -// wrapExecCommand wraps an exec.Cmd so that it satisfies the ExecCommand -// interface so it can be used with Exec. -func wrapExecCommand(c *exec.Cmd) ExecCommand { - return &osExecCommand{Cmd: c} -} - -// osExecCommand is a layer over an exec.Cmd that satisfies the ExecCommand -// interface. -type osExecCommand struct{ *exec.Cmd } - -// SetStdin sets stdin on underlying exec.Cmd to the given io.Reader. -func (c *osExecCommand) SetStdin(r io.Reader) { - // If unset, have the command use the same input as the terminal. - if c.Stdin == nil { - c.Stdin = r - } -} - -// SetStdout sets stdout on underlying exec.Cmd to the given io.Writer. -func (c *osExecCommand) SetStdout(w io.Writer) { - // If unset, have the command use the same output as the terminal. - if c.Stdout == nil { - c.Stdout = w - } -} - -// SetStderr sets stderr on the underlying exec.Cmd to the given io.Writer. -func (c *osExecCommand) SetStderr(w io.Writer) { - // If unset, use stderr for the command's stderr - if c.Stderr == nil { - c.Stderr = w - } -} - -// exec runs an ExecCommand and delivers the results to the program as a Msg. -func (p *Program) exec(c ExecCommand, fn ExecCallback) { - if err := p.ReleaseTerminal(); err != nil { - // If we can't release input, abort. - if fn != nil { - go p.Send(fn(err)) - } - return - } - - c.SetStdin(p.input) - c.SetStdout(p.output) - c.SetStderr(os.Stderr) - - // Execute system command. - if err := c.Run(); err != nil { - p.renderer.resetLinesRendered() - _ = p.RestoreTerminal() // also try to restore the terminal. - if fn != nil { - go p.Send(fn(err)) - } - return - } - - // Maintain the existing output from the command - p.renderer.resetLinesRendered() - - // Have the program re-capture input. - err := p.RestoreTerminal() - if fn != nil { - go p.Send(fn(err)) - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/focus.go b/vendor/github.com/charmbracelet/bubbletea/focus.go deleted file mode 100644 index 4d34bea..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/focus.go +++ /dev/null @@ -1,9 +0,0 @@ -package tea - -// FocusMsg represents a terminal focus message. -// This occurs when the terminal gains focus. -type FocusMsg struct{} - -// BlurMsg represents a terminal blur message. -// This occurs when the terminal loses focus. -type BlurMsg struct{} diff --git a/vendor/github.com/charmbracelet/bubbletea/inputreader_other.go b/vendor/github.com/charmbracelet/bubbletea/inputreader_other.go deleted file mode 100644 index 1d1b176..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/inputreader_other.go +++ /dev/null @@ -1,19 +0,0 @@ -//go:build !windows -// +build !windows - -package tea - -import ( - "fmt" - "io" - - "github.com/muesli/cancelreader" -) - -func newInputReader(r io.Reader, _ bool) (cancelreader.CancelReader, error) { - cr, err := cancelreader.NewReader(r) - if err != nil { - return nil, fmt.Errorf("bubbletea: error creating cancel reader: %w", err) - } - return cr, nil -} diff --git a/vendor/github.com/charmbracelet/bubbletea/inputreader_windows.go b/vendor/github.com/charmbracelet/bubbletea/inputreader_windows.go deleted file mode 100644 index 1e48f70..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/inputreader_windows.go +++ /dev/null @@ -1,129 +0,0 @@ -//go:build windows -// +build windows - -package tea - -import ( - "fmt" - "io" - "os" - "sync" - - "github.com/charmbracelet/x/term" - "github.com/erikgeiser/coninput" - "github.com/muesli/cancelreader" - "golang.org/x/sys/windows" -) - -type conInputReader struct { - cancelMixin - - conin windows.Handle - - originalMode uint32 -} - -var _ cancelreader.CancelReader = &conInputReader{} - -func newInputReader(r io.Reader, enableMouse bool) (cancelreader.CancelReader, error) { - fallback := func(io.Reader) (cancelreader.CancelReader, error) { - return cancelreader.NewReader(r) - } - if f, ok := r.(term.File); !ok || f.Fd() != os.Stdin.Fd() { - return fallback(r) - } - - conin, err := coninput.NewStdinHandle() - if err != nil { - return fallback(r) - } - - modes := []uint32{ - windows.ENABLE_WINDOW_INPUT, - windows.ENABLE_EXTENDED_FLAGS, - } - - // Since we have options to enable mouse events, [WithMouseCellMotion], - // [WithMouseAllMotion], and [EnableMouseCellMotion], - // [EnableMouseAllMotion], and [DisableMouse], we need to check if the user - // has enabled mouse events and add the appropriate mode accordingly. - // Otherwise, mouse events will be enabled all the time. - if enableMouse { - modes = append(modes, windows.ENABLE_MOUSE_INPUT) - } - - originalMode, err := prepareConsole(conin, modes...) - if err != nil { - return nil, fmt.Errorf("failed to prepare console input: %w", err) - } - - return &conInputReader{ - conin: conin, - originalMode: originalMode, - }, nil -} - -// Cancel implements cancelreader.CancelReader. -func (r *conInputReader) Cancel() bool { - r.setCanceled() - - // Warning: These cancel methods do not reliably work on console input - // and should not be counted on. - return windows.CancelIoEx(r.conin, nil) == nil || windows.CancelIo(r.conin) == nil -} - -// Close implements cancelreader.CancelReader. -func (r *conInputReader) Close() error { - if r.originalMode != 0 { - err := windows.SetConsoleMode(r.conin, r.originalMode) - if err != nil { - return fmt.Errorf("reset console mode: %w", err) - } - } - - return nil -} - -// Read implements cancelreader.CancelReader. -func (r *conInputReader) Read(_ []byte) (n int, err error) { - if r.isCanceled() { - err = cancelreader.ErrCanceled - } - return -} - -func prepareConsole(input windows.Handle, modes ...uint32) (originalMode uint32, err error) { - err = windows.GetConsoleMode(input, &originalMode) - if err != nil { - return 0, fmt.Errorf("get console mode: %w", err) - } - - newMode := coninput.AddInputModes(0, modes...) - - err = windows.SetConsoleMode(input, newMode) - if err != nil { - return 0, fmt.Errorf("set console mode: %w", err) - } - - return originalMode, nil -} - -// cancelMixin represents a goroutine-safe cancellation status. -type cancelMixin struct { - unsafeCanceled bool - lock sync.Mutex -} - -func (c *cancelMixin) setCanceled() { - c.lock.Lock() - defer c.lock.Unlock() - - c.unsafeCanceled = true -} - -func (c *cancelMixin) isCanceled() bool { - c.lock.Lock() - defer c.lock.Unlock() - - return c.unsafeCanceled -} diff --git a/vendor/github.com/charmbracelet/bubbletea/key.go b/vendor/github.com/charmbracelet/bubbletea/key.go deleted file mode 100644 index 12a161a..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/key.go +++ /dev/null @@ -1,715 +0,0 @@ -package tea - -import ( - "context" - "fmt" - "io" - "regexp" - "strings" - "unicode/utf8" -) - -// KeyMsg contains information about a keypress. KeyMsgs are always sent to -// the program's update function. There are a couple general patterns you could -// use to check for keypresses: -// -// // Switch on the string representation of the key (shorter) -// switch msg := msg.(type) { -// case KeyMsg: -// switch msg.String() { -// case "enter": -// fmt.Println("you pressed enter!") -// case "a": -// fmt.Println("you pressed a!") -// } -// } -// -// // Switch on the key type (more foolproof) -// switch msg := msg.(type) { -// case KeyMsg: -// switch msg.Type { -// case KeyEnter: -// fmt.Println("you pressed enter!") -// case KeyRunes: -// switch string(msg.Runes) { -// case "a": -// fmt.Println("you pressed a!") -// } -// } -// } -// -// Note that Key.Runes will always contain at least one character, so you can -// always safely call Key.Runes[0]. In most cases Key.Runes will only contain -// one character, though certain input method editors (most notably Chinese -// IMEs) can input multiple runes at once. -type KeyMsg Key - -// String returns a string representation for a key message. It's safe (and -// encouraged) for use in key comparison. -func (k KeyMsg) String() (str string) { - return Key(k).String() -} - -// Key contains information about a keypress. -type Key struct { - Type KeyType - Runes []rune - Alt bool - Paste bool -} - -// String returns a friendly string representation for a key. It's safe (and -// encouraged) for use in key comparison. -// -// k := Key{Type: KeyEnter} -// fmt.Println(k) -// // Output: enter -func (k Key) String() (str string) { - var buf strings.Builder - if k.Alt { - buf.WriteString("alt+") - } - if k.Type == KeyRunes { - if k.Paste { - // Note: bubbles/keys bindings currently do string compares to - // recognize shortcuts. Since pasted text should never activate - // shortcuts, we need to ensure that the binding code doesn't - // match Key events that result from pastes. We achieve this - // here by enclosing pastes in '[...]' so that the string - // comparison in Matches() fails in that case. - buf.WriteByte('[') - } - buf.WriteString(string(k.Runes)) - if k.Paste { - buf.WriteByte(']') - } - return buf.String() - } else if s, ok := keyNames[k.Type]; ok { - buf.WriteString(s) - return buf.String() - } - return "" -} - -// KeyType indicates the key pressed, such as KeyEnter or KeyBreak or KeyCtrlC. -// All other keys will be type KeyRunes. To get the rune value, check the Rune -// method on a Key struct, or use the Key.String() method: -// -// k := Key{Type: KeyRunes, Runes: []rune{'a'}, Alt: true} -// if k.Type == KeyRunes { -// -// fmt.Println(k.Runes) -// // Output: a -// -// fmt.Println(k.String()) -// // Output: alt+a -// -// } -type KeyType int - -func (k KeyType) String() (str string) { - if s, ok := keyNames[k]; ok { - return s - } - return "" -} - -// Control keys. We could do this with an iota, but the values are very -// specific, so we set the values explicitly to avoid any confusion. -// -// See also: -// https://en.wikipedia.org/wiki/C0_and_C1_control_codes -const ( - keyNUL KeyType = 0 // null, \0 - keySOH KeyType = 1 // start of heading - keySTX KeyType = 2 // start of text - keyETX KeyType = 3 // break, ctrl+c - keyEOT KeyType = 4 // end of transmission - keyENQ KeyType = 5 // enquiry - keyACK KeyType = 6 // acknowledge - keyBEL KeyType = 7 // bell, \a - keyBS KeyType = 8 // backspace - keyHT KeyType = 9 // horizontal tabulation, \t - keyLF KeyType = 10 // line feed, \n - keyVT KeyType = 11 // vertical tabulation \v - keyFF KeyType = 12 // form feed \f - keyCR KeyType = 13 // carriage return, \r - keySO KeyType = 14 // shift out - keySI KeyType = 15 // shift in - keyDLE KeyType = 16 // data link escape - keyDC1 KeyType = 17 // device control one - keyDC2 KeyType = 18 // device control two - keyDC3 KeyType = 19 // device control three - keyDC4 KeyType = 20 // device control four - keyNAK KeyType = 21 // negative acknowledge - keySYN KeyType = 22 // synchronous idle - keyETB KeyType = 23 // end of transmission block - keyCAN KeyType = 24 // cancel - keyEM KeyType = 25 // end of medium - keySUB KeyType = 26 // substitution - keyESC KeyType = 27 // escape, \e - keyFS KeyType = 28 // file separator - keyGS KeyType = 29 // group separator - keyRS KeyType = 30 // record separator - keyUS KeyType = 31 // unit separator - keyDEL KeyType = 127 // delete. on most systems this is mapped to backspace, I hear -) - -// Control key aliases. -const ( - KeyNull KeyType = keyNUL - KeyBreak KeyType = keyETX - KeyEnter KeyType = keyCR - KeyBackspace KeyType = keyDEL - KeyTab KeyType = keyHT - KeyEsc KeyType = keyESC - KeyEscape KeyType = keyESC - - KeyCtrlAt KeyType = keyNUL // ctrl+@ - KeyCtrlA KeyType = keySOH - KeyCtrlB KeyType = keySTX - KeyCtrlC KeyType = keyETX - KeyCtrlD KeyType = keyEOT - KeyCtrlE KeyType = keyENQ - KeyCtrlF KeyType = keyACK - KeyCtrlG KeyType = keyBEL - KeyCtrlH KeyType = keyBS - KeyCtrlI KeyType = keyHT - KeyCtrlJ KeyType = keyLF - KeyCtrlK KeyType = keyVT - KeyCtrlL KeyType = keyFF - KeyCtrlM KeyType = keyCR - KeyCtrlN KeyType = keySO - KeyCtrlO KeyType = keySI - KeyCtrlP KeyType = keyDLE - KeyCtrlQ KeyType = keyDC1 - KeyCtrlR KeyType = keyDC2 - KeyCtrlS KeyType = keyDC3 - KeyCtrlT KeyType = keyDC4 - KeyCtrlU KeyType = keyNAK - KeyCtrlV KeyType = keySYN - KeyCtrlW KeyType = keyETB - KeyCtrlX KeyType = keyCAN - KeyCtrlY KeyType = keyEM - KeyCtrlZ KeyType = keySUB - KeyCtrlOpenBracket KeyType = keyESC // ctrl+[ - KeyCtrlBackslash KeyType = keyFS // ctrl+\ - KeyCtrlCloseBracket KeyType = keyGS // ctrl+] - KeyCtrlCaret KeyType = keyRS // ctrl+^ - KeyCtrlUnderscore KeyType = keyUS // ctrl+_ - KeyCtrlQuestionMark KeyType = keyDEL // ctrl+? -) - -// Other keys. -const ( - KeyRunes KeyType = -(iota + 1) - KeyUp - KeyDown - KeyRight - KeyLeft - KeyShiftTab - KeyHome - KeyEnd - KeyPgUp - KeyPgDown - KeyCtrlPgUp - KeyCtrlPgDown - KeyDelete - KeyInsert - KeySpace - KeyCtrlUp - KeyCtrlDown - KeyCtrlRight - KeyCtrlLeft - KeyCtrlHome - KeyCtrlEnd - KeyShiftUp - KeyShiftDown - KeyShiftRight - KeyShiftLeft - KeyShiftHome - KeyShiftEnd - KeyCtrlShiftUp - KeyCtrlShiftDown - KeyCtrlShiftLeft - KeyCtrlShiftRight - KeyCtrlShiftHome - KeyCtrlShiftEnd - KeyF1 - KeyF2 - KeyF3 - KeyF4 - KeyF5 - KeyF6 - KeyF7 - KeyF8 - KeyF9 - KeyF10 - KeyF11 - KeyF12 - KeyF13 - KeyF14 - KeyF15 - KeyF16 - KeyF17 - KeyF18 - KeyF19 - KeyF20 -) - -// Mappings for control keys and other special keys to friendly consts. -var keyNames = map[KeyType]string{ - // Control keys. - keyNUL: "ctrl+@", // also ctrl+` (that's ctrl+backtick) - keySOH: "ctrl+a", - keySTX: "ctrl+b", - keyETX: "ctrl+c", - keyEOT: "ctrl+d", - keyENQ: "ctrl+e", - keyACK: "ctrl+f", - keyBEL: "ctrl+g", - keyBS: "ctrl+h", - keyHT: "tab", // also ctrl+i - keyLF: "ctrl+j", - keyVT: "ctrl+k", - keyFF: "ctrl+l", - keyCR: "enter", - keySO: "ctrl+n", - keySI: "ctrl+o", - keyDLE: "ctrl+p", - keyDC1: "ctrl+q", - keyDC2: "ctrl+r", - keyDC3: "ctrl+s", - keyDC4: "ctrl+t", - keyNAK: "ctrl+u", - keySYN: "ctrl+v", - keyETB: "ctrl+w", - keyCAN: "ctrl+x", - keyEM: "ctrl+y", - keySUB: "ctrl+z", - keyESC: "esc", - keyFS: "ctrl+\\", - keyGS: "ctrl+]", - keyRS: "ctrl+^", - keyUS: "ctrl+_", - keyDEL: "backspace", - - // Other keys. - KeyRunes: "runes", - KeyUp: "up", - KeyDown: "down", - KeyRight: "right", - KeySpace: " ", // for backwards compatibility - KeyLeft: "left", - KeyShiftTab: "shift+tab", - KeyHome: "home", - KeyEnd: "end", - KeyCtrlHome: "ctrl+home", - KeyCtrlEnd: "ctrl+end", - KeyShiftHome: "shift+home", - KeyShiftEnd: "shift+end", - KeyCtrlShiftHome: "ctrl+shift+home", - KeyCtrlShiftEnd: "ctrl+shift+end", - KeyPgUp: "pgup", - KeyPgDown: "pgdown", - KeyCtrlPgUp: "ctrl+pgup", - KeyCtrlPgDown: "ctrl+pgdown", - KeyDelete: "delete", - KeyInsert: "insert", - KeyCtrlUp: "ctrl+up", - KeyCtrlDown: "ctrl+down", - KeyCtrlRight: "ctrl+right", - KeyCtrlLeft: "ctrl+left", - KeyShiftUp: "shift+up", - KeyShiftDown: "shift+down", - KeyShiftRight: "shift+right", - KeyShiftLeft: "shift+left", - KeyCtrlShiftUp: "ctrl+shift+up", - KeyCtrlShiftDown: "ctrl+shift+down", - KeyCtrlShiftLeft: "ctrl+shift+left", - KeyCtrlShiftRight: "ctrl+shift+right", - KeyF1: "f1", - KeyF2: "f2", - KeyF3: "f3", - KeyF4: "f4", - KeyF5: "f5", - KeyF6: "f6", - KeyF7: "f7", - KeyF8: "f8", - KeyF9: "f9", - KeyF10: "f10", - KeyF11: "f11", - KeyF12: "f12", - KeyF13: "f13", - KeyF14: "f14", - KeyF15: "f15", - KeyF16: "f16", - KeyF17: "f17", - KeyF18: "f18", - KeyF19: "f19", - KeyF20: "f20", -} - -// Sequence mappings. -var sequences = map[string]Key{ - // Arrow keys - "\x1b[A": {Type: KeyUp}, - "\x1b[B": {Type: KeyDown}, - "\x1b[C": {Type: KeyRight}, - "\x1b[D": {Type: KeyLeft}, - "\x1b[1;2A": {Type: KeyShiftUp}, - "\x1b[1;2B": {Type: KeyShiftDown}, - "\x1b[1;2C": {Type: KeyShiftRight}, - "\x1b[1;2D": {Type: KeyShiftLeft}, - "\x1b[OA": {Type: KeyShiftUp}, // DECCKM - "\x1b[OB": {Type: KeyShiftDown}, // DECCKM - "\x1b[OC": {Type: KeyShiftRight}, // DECCKM - "\x1b[OD": {Type: KeyShiftLeft}, // DECCKM - "\x1b[a": {Type: KeyShiftUp}, // urxvt - "\x1b[b": {Type: KeyShiftDown}, // urxvt - "\x1b[c": {Type: KeyShiftRight}, // urxvt - "\x1b[d": {Type: KeyShiftLeft}, // urxvt - "\x1b[1;3A": {Type: KeyUp, Alt: true}, - "\x1b[1;3B": {Type: KeyDown, Alt: true}, - "\x1b[1;3C": {Type: KeyRight, Alt: true}, - "\x1b[1;3D": {Type: KeyLeft, Alt: true}, - - "\x1b[1;4A": {Type: KeyShiftUp, Alt: true}, - "\x1b[1;4B": {Type: KeyShiftDown, Alt: true}, - "\x1b[1;4C": {Type: KeyShiftRight, Alt: true}, - "\x1b[1;4D": {Type: KeyShiftLeft, Alt: true}, - - "\x1b[1;5A": {Type: KeyCtrlUp}, - "\x1b[1;5B": {Type: KeyCtrlDown}, - "\x1b[1;5C": {Type: KeyCtrlRight}, - "\x1b[1;5D": {Type: KeyCtrlLeft}, - "\x1b[Oa": {Type: KeyCtrlUp, Alt: true}, // urxvt - "\x1b[Ob": {Type: KeyCtrlDown, Alt: true}, // urxvt - "\x1b[Oc": {Type: KeyCtrlRight, Alt: true}, // urxvt - "\x1b[Od": {Type: KeyCtrlLeft, Alt: true}, // urxvt - "\x1b[1;6A": {Type: KeyCtrlShiftUp}, - "\x1b[1;6B": {Type: KeyCtrlShiftDown}, - "\x1b[1;6C": {Type: KeyCtrlShiftRight}, - "\x1b[1;6D": {Type: KeyCtrlShiftLeft}, - "\x1b[1;7A": {Type: KeyCtrlUp, Alt: true}, - "\x1b[1;7B": {Type: KeyCtrlDown, Alt: true}, - "\x1b[1;7C": {Type: KeyCtrlRight, Alt: true}, - "\x1b[1;7D": {Type: KeyCtrlLeft, Alt: true}, - "\x1b[1;8A": {Type: KeyCtrlShiftUp, Alt: true}, - "\x1b[1;8B": {Type: KeyCtrlShiftDown, Alt: true}, - "\x1b[1;8C": {Type: KeyCtrlShiftRight, Alt: true}, - "\x1b[1;8D": {Type: KeyCtrlShiftLeft, Alt: true}, - - // Miscellaneous keys - "\x1b[Z": {Type: KeyShiftTab}, - - "\x1b[2~": {Type: KeyInsert}, - "\x1b[3;2~": {Type: KeyInsert, Alt: true}, - - "\x1b[3~": {Type: KeyDelete}, - "\x1b[3;3~": {Type: KeyDelete, Alt: true}, - - "\x1b[5~": {Type: KeyPgUp}, - "\x1b[5;3~": {Type: KeyPgUp, Alt: true}, - "\x1b[5;5~": {Type: KeyCtrlPgUp}, - "\x1b[5^": {Type: KeyCtrlPgUp}, // urxvt - "\x1b[5;7~": {Type: KeyCtrlPgUp, Alt: true}, - - "\x1b[6~": {Type: KeyPgDown}, - "\x1b[6;3~": {Type: KeyPgDown, Alt: true}, - "\x1b[6;5~": {Type: KeyCtrlPgDown}, - "\x1b[6^": {Type: KeyCtrlPgDown}, // urxvt - "\x1b[6;7~": {Type: KeyCtrlPgDown, Alt: true}, - - "\x1b[1~": {Type: KeyHome}, - "\x1b[H": {Type: KeyHome}, // xterm, lxterm - "\x1b[1;3H": {Type: KeyHome, Alt: true}, // xterm, lxterm - "\x1b[1;5H": {Type: KeyCtrlHome}, // xterm, lxterm - "\x1b[1;7H": {Type: KeyCtrlHome, Alt: true}, // xterm, lxterm - "\x1b[1;2H": {Type: KeyShiftHome}, // xterm, lxterm - "\x1b[1;4H": {Type: KeyShiftHome, Alt: true}, // xterm, lxterm - "\x1b[1;6H": {Type: KeyCtrlShiftHome}, // xterm, lxterm - "\x1b[1;8H": {Type: KeyCtrlShiftHome, Alt: true}, // xterm, lxterm - - "\x1b[4~": {Type: KeyEnd}, - "\x1b[F": {Type: KeyEnd}, // xterm, lxterm - "\x1b[1;3F": {Type: KeyEnd, Alt: true}, // xterm, lxterm - "\x1b[1;5F": {Type: KeyCtrlEnd}, // xterm, lxterm - "\x1b[1;7F": {Type: KeyCtrlEnd, Alt: true}, // xterm, lxterm - "\x1b[1;2F": {Type: KeyShiftEnd}, // xterm, lxterm - "\x1b[1;4F": {Type: KeyShiftEnd, Alt: true}, // xterm, lxterm - "\x1b[1;6F": {Type: KeyCtrlShiftEnd}, // xterm, lxterm - "\x1b[1;8F": {Type: KeyCtrlShiftEnd, Alt: true}, // xterm, lxterm - - "\x1b[7~": {Type: KeyHome}, // urxvt - "\x1b[7^": {Type: KeyCtrlHome}, // urxvt - "\x1b[7$": {Type: KeyShiftHome}, // urxvt - "\x1b[7@": {Type: KeyCtrlShiftHome}, // urxvt - - "\x1b[8~": {Type: KeyEnd}, // urxvt - "\x1b[8^": {Type: KeyCtrlEnd}, // urxvt - "\x1b[8$": {Type: KeyShiftEnd}, // urxvt - "\x1b[8@": {Type: KeyCtrlShiftEnd}, // urxvt - - // Function keys, Linux console - "\x1b[[A": {Type: KeyF1}, // linux console - "\x1b[[B": {Type: KeyF2}, // linux console - "\x1b[[C": {Type: KeyF3}, // linux console - "\x1b[[D": {Type: KeyF4}, // linux console - "\x1b[[E": {Type: KeyF5}, // linux console - - // Function keys, X11 - "\x1bOP": {Type: KeyF1}, // vt100, xterm - "\x1bOQ": {Type: KeyF2}, // vt100, xterm - "\x1bOR": {Type: KeyF3}, // vt100, xterm - "\x1bOS": {Type: KeyF4}, // vt100, xterm - - "\x1b[1;3P": {Type: KeyF1, Alt: true}, // vt100, xterm - "\x1b[1;3Q": {Type: KeyF2, Alt: true}, // vt100, xterm - "\x1b[1;3R": {Type: KeyF3, Alt: true}, // vt100, xterm - "\x1b[1;3S": {Type: KeyF4, Alt: true}, // vt100, xterm - - "\x1b[11~": {Type: KeyF1}, // urxvt - "\x1b[12~": {Type: KeyF2}, // urxvt - "\x1b[13~": {Type: KeyF3}, // urxvt - "\x1b[14~": {Type: KeyF4}, // urxvt - - "\x1b[15~": {Type: KeyF5}, // vt100, xterm, also urxvt - - "\x1b[15;3~": {Type: KeyF5, Alt: true}, // vt100, xterm, also urxvt - - "\x1b[17~": {Type: KeyF6}, // vt100, xterm, also urxvt - "\x1b[18~": {Type: KeyF7}, // vt100, xterm, also urxvt - "\x1b[19~": {Type: KeyF8}, // vt100, xterm, also urxvt - "\x1b[20~": {Type: KeyF9}, // vt100, xterm, also urxvt - "\x1b[21~": {Type: KeyF10}, // vt100, xterm, also urxvt - - "\x1b[17;3~": {Type: KeyF6, Alt: true}, // vt100, xterm - "\x1b[18;3~": {Type: KeyF7, Alt: true}, // vt100, xterm - "\x1b[19;3~": {Type: KeyF8, Alt: true}, // vt100, xterm - "\x1b[20;3~": {Type: KeyF9, Alt: true}, // vt100, xterm - "\x1b[21;3~": {Type: KeyF10, Alt: true}, // vt100, xterm - - "\x1b[23~": {Type: KeyF11}, // vt100, xterm, also urxvt - "\x1b[24~": {Type: KeyF12}, // vt100, xterm, also urxvt - - "\x1b[23;3~": {Type: KeyF11, Alt: true}, // vt100, xterm - "\x1b[24;3~": {Type: KeyF12, Alt: true}, // vt100, xterm - - "\x1b[1;2P": {Type: KeyF13}, - "\x1b[1;2Q": {Type: KeyF14}, - - "\x1b[25~": {Type: KeyF13}, // vt100, xterm, also urxvt - "\x1b[26~": {Type: KeyF14}, // vt100, xterm, also urxvt - - "\x1b[25;3~": {Type: KeyF13, Alt: true}, // vt100, xterm - "\x1b[26;3~": {Type: KeyF14, Alt: true}, // vt100, xterm - - "\x1b[1;2R": {Type: KeyF15}, - "\x1b[1;2S": {Type: KeyF16}, - - "\x1b[28~": {Type: KeyF15}, // vt100, xterm, also urxvt - "\x1b[29~": {Type: KeyF16}, // vt100, xterm, also urxvt - - "\x1b[28;3~": {Type: KeyF15, Alt: true}, // vt100, xterm - "\x1b[29;3~": {Type: KeyF16, Alt: true}, // vt100, xterm - - "\x1b[15;2~": {Type: KeyF17}, - "\x1b[17;2~": {Type: KeyF18}, - "\x1b[18;2~": {Type: KeyF19}, - "\x1b[19;2~": {Type: KeyF20}, - - "\x1b[31~": {Type: KeyF17}, - "\x1b[32~": {Type: KeyF18}, - "\x1b[33~": {Type: KeyF19}, - "\x1b[34~": {Type: KeyF20}, - - // Powershell sequences. - "\x1bOA": {Type: KeyUp, Alt: false}, - "\x1bOB": {Type: KeyDown, Alt: false}, - "\x1bOC": {Type: KeyRight, Alt: false}, - "\x1bOD": {Type: KeyLeft, Alt: false}, -} - -// unknownInputByteMsg is reported by the input reader when an invalid -// utf-8 byte is detected on the input. Currently, it is not handled -// further by bubbletea. However, having this event makes it possible -// to troubleshoot invalid inputs. -type unknownInputByteMsg byte - -func (u unknownInputByteMsg) String() string { - return fmt.Sprintf("?%#02x?", int(u)) -} - -// unknownCSISequenceMsg is reported by the input reader when an -// unrecognized CSI sequence is detected on the input. Currently, it -// is not handled further by bubbletea. However, having this event -// makes it possible to troubleshoot invalid inputs. -type unknownCSISequenceMsg []byte - -func (u unknownCSISequenceMsg) String() string { - return fmt.Sprintf("?CSI%+v?", []byte(u)[2:]) -} - -var spaceRunes = []rune{' '} - -// readAnsiInputs reads keypress and mouse inputs from a TTY and produces messages -// containing information about the key or mouse events accordingly. -func readAnsiInputs(ctx context.Context, msgs chan<- Msg, input io.Reader) error { - var buf [256]byte - - var leftOverFromPrevIteration []byte -loop: - for { - // Read and block. - numBytes, err := input.Read(buf[:]) - if err != nil { - return fmt.Errorf("error reading input: %w", err) - } - b := buf[:numBytes] - if leftOverFromPrevIteration != nil { - b = append(leftOverFromPrevIteration, b...) - } - - // If we had a short read (numBytes < len(buf)), we're sure that - // the end of this read is an event boundary, so there is no doubt - // if we are encountering the end of the buffer while parsing a message. - // However, if we've succeeded in filling up the buffer, there may - // be more data in the OS buffer ready to be read in, to complete - // the last message in the input. In that case, we will retry with - // the left over data in the next iteration. - canHaveMoreData := numBytes == len(buf) - - var i, w int - for i, w = 0, 0; i < len(b); i += w { - var msg Msg - w, msg = detectOneMsg(b[i:], canHaveMoreData) - if w == 0 { - // Expecting more bytes beyond the current buffer. Try waiting - // for more input. - leftOverFromPrevIteration = make([]byte, 0, len(b[i:])+len(buf)) - leftOverFromPrevIteration = append(leftOverFromPrevIteration, b[i:]...) - continue loop - } - - select { - case msgs <- msg: - case <-ctx.Done(): - err := ctx.Err() - if err != nil { - err = fmt.Errorf("found context error while reading input: %w", err) - } - return err - } - } - leftOverFromPrevIteration = nil - } -} - -var ( - unknownCSIRe = regexp.MustCompile(`^\x1b\[[\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e]`) - mouseSGRRegex = regexp.MustCompile(`(\d+);(\d+);(\d+)([Mm])`) -) - -func detectOneMsg(b []byte, canHaveMoreData bool) (w int, msg Msg) { - // Detect mouse events. - // X10 mouse events have a length of 6 bytes - const mouseEventX10Len = 6 - if len(b) >= mouseEventX10Len && b[0] == '\x1b' && b[1] == '[' { - switch b[2] { - case 'M': - return mouseEventX10Len, MouseMsg(parseX10MouseEvent(b)) - case '<': - if matchIndices := mouseSGRRegex.FindSubmatchIndex(b[3:]); matchIndices != nil { - // SGR mouse events length is the length of the match plus the length of the escape sequence - mouseEventSGRLen := matchIndices[1] + 3 //nolint:mnd - return mouseEventSGRLen, MouseMsg(parseSGRMouseEvent(b)) - } - } - } - - // Detect focus events. - var foundRF bool - foundRF, w, msg = detectReportFocus(b) - if foundRF { - return w, msg - } - - // Detect bracketed paste. - var foundbp bool - foundbp, w, msg = detectBracketedPaste(b) - if foundbp { - return w, msg - } - - // Detect escape sequence and control characters other than NUL, - // possibly with an escape character in front to mark the Alt - // modifier. - var foundSeq bool - foundSeq, w, msg = detectSequence(b) - if foundSeq { - return w, msg - } - - // No non-NUL control character or escape sequence. - // If we are seeing at least an escape character, remember it for later below. - alt := false - i := 0 - if b[0] == '\x1b' { - alt = true - i++ - } - - // Are we seeing a standalone NUL? This is not handled by detectSequence(). - if i < len(b) && b[i] == 0 { - return i + 1, KeyMsg{Type: keyNUL, Alt: alt} - } - - // Find the longest sequence of runes that are not control - // characters from this point. - var runes []rune - for rw := 0; i < len(b); i += rw { - var r rune - r, rw = utf8.DecodeRune(b[i:]) - if r == utf8.RuneError || r <= rune(keyUS) || r == rune(keyDEL) || r == ' ' { - // Rune errors are handled below; control characters and spaces will - // be handled by detectSequence in the next call to detectOneMsg. - break - } - runes = append(runes, r) - if alt { - // We only support a single rune after an escape alt modifier. - i += rw - break - } - } - if i >= len(b) && canHaveMoreData { - // We have encountered the end of the input buffer. Alas, we can't - // be sure whether the data in the remainder of the buffer is - // complete (maybe there was a short read). Instead of sending anything - // dumb to the message channel, do a short read. The outer loop will - // handle this case by extending the buffer as necessary. - return 0, nil - } - - // If we found at least one rune, we report the bunch of them as - // a single KeyRunes or KeySpace event. - if len(runes) > 0 { - k := Key{Type: KeyRunes, Runes: runes, Alt: alt} - if len(runes) == 1 && runes[0] == ' ' { - k.Type = KeySpace - } - return i, KeyMsg(k) - } - - // We didn't find an escape sequence, nor a valid rune. Was this a - // lone escape character at the end of the input? - if alt && len(b) == 1 { - return 1, KeyMsg(Key{Type: KeyEscape}) - } - - // The character at the current position is neither an escape - // sequence, a valid rune start or a sole escape character. Report - // it as an invalid byte. - return 1, unknownInputByteMsg(b[0]) -} diff --git a/vendor/github.com/charmbracelet/bubbletea/key_other.go b/vendor/github.com/charmbracelet/bubbletea/key_other.go deleted file mode 100644 index b8c4608..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/key_other.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build !windows -// +build !windows - -package tea - -import ( - "context" - "io" -) - -func readInputs(ctx context.Context, msgs chan<- Msg, input io.Reader) error { - return readAnsiInputs(ctx, msgs, input) -} diff --git a/vendor/github.com/charmbracelet/bubbletea/key_sequences.go b/vendor/github.com/charmbracelet/bubbletea/key_sequences.go deleted file mode 100644 index dce9bf4..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/key_sequences.go +++ /dev/null @@ -1,130 +0,0 @@ -package tea - -import ( - "bytes" - "sort" - "unicode/utf8" -) - -// extSequences is used by the map-based algorithm below. It contains -// the sequences plus their alternatives with an escape character -// prefixed, plus the control chars, plus the space. -// It does not contain the NUL character, which is handled specially -// by detectOneMsg. -var extSequences = func() map[string]Key { - s := map[string]Key{} - for seq, key := range sequences { - key := key - s[seq] = key - if !key.Alt { - key.Alt = true - s["\x1b"+seq] = key - } - } - for i := keyNUL + 1; i <= keyDEL; i++ { - if i == keyESC { - continue - } - s[string([]byte{byte(i)})] = Key{Type: i} - s[string([]byte{'\x1b', byte(i)})] = Key{Type: i, Alt: true} - if i == keyUS { - i = keyDEL - 1 - } - } - s[" "] = Key{Type: KeySpace, Runes: spaceRunes} - s["\x1b "] = Key{Type: KeySpace, Alt: true, Runes: spaceRunes} - s["\x1b\x1b"] = Key{Type: KeyEscape, Alt: true} - return s -}() - -// seqLengths is the sizes of valid sequences, starting with the -// largest size. -var seqLengths = func() []int { - sizes := map[int]struct{}{} - for seq := range extSequences { - sizes[len(seq)] = struct{}{} - } - lsizes := make([]int, 0, len(sizes)) - for sz := range sizes { - lsizes = append(lsizes, sz) - } - sort.Slice(lsizes, func(i, j int) bool { return lsizes[i] > lsizes[j] }) - return lsizes -}() - -// detectSequence uses a longest prefix match over the input -// sequence and a hash map. -func detectSequence(input []byte) (hasSeq bool, width int, msg Msg) { - seqs := extSequences - for _, sz := range seqLengths { - if sz > len(input) { - continue - } - prefix := input[:sz] - key, ok := seqs[string(prefix)] - if ok { - return true, sz, KeyMsg(key) - } - } - // Is this an unknown CSI sequence? - if loc := unknownCSIRe.FindIndex(input); loc != nil { - return true, loc[1], unknownCSISequenceMsg(input[:loc[1]]) - } - - return false, 0, nil -} - -// detectBracketedPaste detects an input pasted while bracketed -// paste mode was enabled. -// -// Note: this function is a no-op if bracketed paste was not enabled -// on the terminal, since in that case we'd never see this -// particular escape sequence. -func detectBracketedPaste(input []byte) (hasBp bool, width int, msg Msg) { - // Detect the start sequence. - const bpStart = "\x1b[200~" - if len(input) < len(bpStart) || string(input[:len(bpStart)]) != bpStart { - return false, 0, nil - } - - // Skip over the start sequence. - input = input[len(bpStart):] - - // If we saw the start sequence, then we must have an end sequence - // as well. Find it. - const bpEnd = "\x1b[201~" - idx := bytes.Index(input, []byte(bpEnd)) - inputLen := len(bpStart) + idx + len(bpEnd) - if idx == -1 { - // We have encountered the end of the input buffer without seeing - // the marker for the end of the bracketed paste. - // Tell the outer loop we have done a short read and we want more. - return true, 0, nil - } - - // The paste is everything in-between. - paste := input[:idx] - - // All there is in-between is runes, not to be interpreted further. - k := Key{Type: KeyRunes, Paste: true} - for len(paste) > 0 { - r, w := utf8.DecodeRune(paste) - if r != utf8.RuneError { - k.Runes = append(k.Runes, r) - } - paste = paste[w:] - } - - return true, inputLen, KeyMsg(k) -} - -// detectReportFocus detects a focus report sequence. -func detectReportFocus(input []byte) (hasRF bool, width int, msg Msg) { - switch { - case bytes.Equal(input, []byte("\x1b[I")): - return true, 3, FocusMsg{} //nolint:mnd - case bytes.Equal(input, []byte("\x1b[O")): - return true, 3, BlurMsg{} //nolint:mnd - } - return false, 0, nil -} diff --git a/vendor/github.com/charmbracelet/bubbletea/key_windows.go b/vendor/github.com/charmbracelet/bubbletea/key_windows.go deleted file mode 100644 index 648bd78..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/key_windows.go +++ /dev/null @@ -1,441 +0,0 @@ -//go:build windows -// +build windows - -package tea - -import ( - "context" - "fmt" - "io" - "time" - - "github.com/erikgeiser/coninput" - localereader "github.com/mattn/go-localereader" - "github.com/muesli/cancelreader" -) - -func readInputs(ctx context.Context, msgs chan<- Msg, input io.Reader) error { - if coninReader, ok := input.(*conInputReader); ok { - return readConInputs(ctx, msgs, coninReader) - } - - return readAnsiInputs(ctx, msgs, localereader.NewReader(input)) -} - -func readConInputs(ctx context.Context, msgsch chan<- Msg, con *conInputReader) error { - var ps coninput.ButtonState // keep track of previous mouse state - var ws coninput.WindowBufferSizeEventRecord // keep track of the last window size event - for { - events, err := peekAndReadConsInput(con) - if err != nil { - return err - } - for _, event := range events { - var msgs []Msg - switch e := event.Unwrap().(type) { - case coninput.KeyEventRecord: - if !e.KeyDown || e.VirtualKeyCode == coninput.VK_SHIFT { - continue - } - - for i := 0; i < int(e.RepeatCount); i++ { - eventKeyType := keyType(e) - var runes []rune - - // Add the character only if the key type is an actual character and not a control sequence. - // This mimics the behavior in readAnsiInputs where the character is also removed. - // We don't need to handle KeySpace here. See the comment in keyType(). - if eventKeyType == KeyRunes { - runes = []rune{e.Char} - } - - msgs = append(msgs, KeyMsg{ - Type: eventKeyType, - Runes: runes, - Alt: e.ControlKeyState.Contains(coninput.LEFT_ALT_PRESSED | coninput.RIGHT_ALT_PRESSED), - }) - } - case coninput.WindowBufferSizeEventRecord: - if e != ws { - ws = e - msgs = append(msgs, WindowSizeMsg{ - Width: int(e.Size.X), - Height: int(e.Size.Y), - }) - } - case coninput.MouseEventRecord: - event := mouseEvent(ps, e) - if event.Type != MouseUnknown { - msgs = append(msgs, event) - } - ps = e.ButtonState - case coninput.FocusEventRecord, coninput.MenuEventRecord: - // ignore - default: // unknown event - continue - } - - // Send all messages to the channel - for _, msg := range msgs { - select { - case msgsch <- msg: - case <-ctx.Done(): - err := ctx.Err() - if err != nil { - return fmt.Errorf("coninput context error: %w", err) - } - return nil - } - } - } - } -} - -// Peek for new input in a tight loop and then read the input. -// windows.CancelIo* does not work reliably so peek first and only use the data if -// the console input is not cancelled. -func peekAndReadConsInput(con *conInputReader) ([]coninput.InputRecord, error) { - events, err := peekConsInput(con) - if err != nil { - return events, err - } - events, err = coninput.ReadNConsoleInputs(con.conin, intToUint32OrDie(len(events))) - if con.isCanceled() { - return events, cancelreader.ErrCanceled - } - if err != nil { - return events, fmt.Errorf("read coninput events: %w", err) - } - return events, nil -} - -// Convert i to unit32 or panic if it cannot be converted. Check satisfies lint G115. -func intToUint32OrDie(i int) uint32 { - if i < 0 { - panic("cannot convert numEvents " + fmt.Sprint(i) + " to uint32") - } - return uint32(i) //nolint:gosec -} - -// Keeps peeking until there is data or the input is cancelled. -func peekConsInput(con *conInputReader) ([]coninput.InputRecord, error) { - for { - events, err := coninput.PeekNConsoleInputs(con.conin, 16) - if con.isCanceled() { - return events, cancelreader.ErrCanceled - } - if err != nil { - return events, fmt.Errorf("peek coninput events: %w", err) - } - if len(events) > 0 { - return events, nil - } - // Sleep for a bit to avoid busy waiting. - time.Sleep(16 * time.Millisecond) - } -} - -func mouseEventButton(p, s coninput.ButtonState) (button MouseButton, action MouseAction) { - btn := p ^ s - action = MouseActionPress - if btn&s == 0 { - action = MouseActionRelease - } - - if btn == 0 { - switch { - case s&coninput.FROM_LEFT_1ST_BUTTON_PRESSED > 0: - button = MouseButtonLeft - case s&coninput.FROM_LEFT_2ND_BUTTON_PRESSED > 0: - button = MouseButtonMiddle - case s&coninput.RIGHTMOST_BUTTON_PRESSED > 0: - button = MouseButtonRight - case s&coninput.FROM_LEFT_3RD_BUTTON_PRESSED > 0: - button = MouseButtonBackward - case s&coninput.FROM_LEFT_4TH_BUTTON_PRESSED > 0: - button = MouseButtonForward - } - return button, action - } - - switch btn { - case coninput.FROM_LEFT_1ST_BUTTON_PRESSED: // left button - button = MouseButtonLeft - case coninput.RIGHTMOST_BUTTON_PRESSED: // right button - button = MouseButtonRight - case coninput.FROM_LEFT_2ND_BUTTON_PRESSED: // middle button - button = MouseButtonMiddle - case coninput.FROM_LEFT_3RD_BUTTON_PRESSED: // unknown (possibly mouse backward) - button = MouseButtonBackward - case coninput.FROM_LEFT_4TH_BUTTON_PRESSED: // unknown (possibly mouse forward) - button = MouseButtonForward - } - - return button, action -} - -func mouseEvent(p coninput.ButtonState, e coninput.MouseEventRecord) MouseMsg { - ev := MouseMsg{ - X: int(e.MousePositon.X), - Y: int(e.MousePositon.Y), - Alt: e.ControlKeyState.Contains(coninput.LEFT_ALT_PRESSED | coninput.RIGHT_ALT_PRESSED), - Ctrl: e.ControlKeyState.Contains(coninput.LEFT_CTRL_PRESSED | coninput.RIGHT_CTRL_PRESSED), - Shift: e.ControlKeyState.Contains(coninput.SHIFT_PRESSED), - } - switch e.EventFlags { - case coninput.CLICK, coninput.DOUBLE_CLICK: - ev.Button, ev.Action = mouseEventButton(p, e.ButtonState) - if ev.Action == MouseActionRelease { - ev.Type = MouseRelease - } - switch ev.Button { //nolint:exhaustive - case MouseButtonLeft: - ev.Type = MouseLeft - case MouseButtonMiddle: - ev.Type = MouseMiddle - case MouseButtonRight: - ev.Type = MouseRight - case MouseButtonBackward: - ev.Type = MouseBackward - case MouseButtonForward: - ev.Type = MouseForward - } - case coninput.MOUSE_WHEELED: - if e.WheelDirection > 0 { - ev.Button = MouseButtonWheelUp - ev.Type = MouseWheelUp - } else { - ev.Button = MouseButtonWheelDown - ev.Type = MouseWheelDown - } - case coninput.MOUSE_HWHEELED: - if e.WheelDirection > 0 { - ev.Button = MouseButtonWheelRight - ev.Type = MouseWheelRight - } else { - ev.Button = MouseButtonWheelLeft - ev.Type = MouseWheelLeft - } - case coninput.MOUSE_MOVED: - ev.Button, _ = mouseEventButton(p, e.ButtonState) - ev.Action = MouseActionMotion - ev.Type = MouseMotion - } - - return ev -} - -func keyType(e coninput.KeyEventRecord) KeyType { - code := e.VirtualKeyCode - - shiftPressed := e.ControlKeyState.Contains(coninput.SHIFT_PRESSED) - ctrlPressed := e.ControlKeyState.Contains(coninput.LEFT_CTRL_PRESSED | coninput.RIGHT_CTRL_PRESSED) - - switch code { //nolint:exhaustive - case coninput.VK_RETURN: - return KeyEnter - case coninput.VK_BACK: - return KeyBackspace - case coninput.VK_TAB: - if shiftPressed { - return KeyShiftTab - } - return KeyTab - case coninput.VK_SPACE: - return KeyRunes // this could be KeySpace but on unix space also produces KeyRunes - case coninput.VK_ESCAPE: - return KeyEscape - case coninput.VK_UP: - switch { - case shiftPressed && ctrlPressed: - return KeyCtrlShiftUp - case shiftPressed: - return KeyShiftUp - case ctrlPressed: - return KeyCtrlUp - default: - return KeyUp - } - case coninput.VK_DOWN: - switch { - case shiftPressed && ctrlPressed: - return KeyCtrlShiftDown - case shiftPressed: - return KeyShiftDown - case ctrlPressed: - return KeyCtrlDown - default: - return KeyDown - } - case coninput.VK_RIGHT: - switch { - case shiftPressed && ctrlPressed: - return KeyCtrlShiftRight - case shiftPressed: - return KeyShiftRight - case ctrlPressed: - return KeyCtrlRight - default: - return KeyRight - } - case coninput.VK_LEFT: - switch { - case shiftPressed && ctrlPressed: - return KeyCtrlShiftLeft - case shiftPressed: - return KeyShiftLeft - case ctrlPressed: - return KeyCtrlLeft - default: - return KeyLeft - } - case coninput.VK_HOME: - switch { - case shiftPressed && ctrlPressed: - return KeyCtrlShiftHome - case shiftPressed: - return KeyShiftHome - case ctrlPressed: - return KeyCtrlHome - default: - return KeyHome - } - case coninput.VK_END: - switch { - case shiftPressed && ctrlPressed: - return KeyCtrlShiftEnd - case shiftPressed: - return KeyShiftEnd - case ctrlPressed: - return KeyCtrlEnd - default: - return KeyEnd - } - case coninput.VK_PRIOR: - return KeyPgUp - case coninput.VK_NEXT: - return KeyPgDown - case coninput.VK_DELETE: - return KeyDelete - case coninput.VK_F1: - return KeyF1 - case coninput.VK_F2: - return KeyF2 - case coninput.VK_F3: - return KeyF3 - case coninput.VK_F4: - return KeyF4 - case coninput.VK_F5: - return KeyF5 - case coninput.VK_F6: - return KeyF6 - case coninput.VK_F7: - return KeyF7 - case coninput.VK_F8: - return KeyF8 - case coninput.VK_F9: - return KeyF9 - case coninput.VK_F10: - return KeyF10 - case coninput.VK_F11: - return KeyF11 - case coninput.VK_F12: - return KeyF12 - case coninput.VK_F13: - return KeyF13 - case coninput.VK_F14: - return KeyF14 - case coninput.VK_F15: - return KeyF15 - case coninput.VK_F16: - return KeyF16 - case coninput.VK_F17: - return KeyF17 - case coninput.VK_F18: - return KeyF18 - case coninput.VK_F19: - return KeyF19 - case coninput.VK_F20: - return KeyF20 - default: - switch { - case e.ControlKeyState.Contains(coninput.LEFT_CTRL_PRESSED) && e.ControlKeyState.Contains(coninput.RIGHT_ALT_PRESSED): - // AltGr is pressed, then it's a rune. - fallthrough - case !e.ControlKeyState.Contains(coninput.LEFT_CTRL_PRESSED) && !e.ControlKeyState.Contains(coninput.RIGHT_CTRL_PRESSED): - return KeyRunes - } - - switch e.Char { - case '@': - return KeyCtrlAt - case '\x01': - return KeyCtrlA - case '\x02': - return KeyCtrlB - case '\x03': - return KeyCtrlC - case '\x04': - return KeyCtrlD - case '\x05': - return KeyCtrlE - case '\x06': - return KeyCtrlF - case '\a': - return KeyCtrlG - case '\b': - return KeyCtrlH - case '\t': - return KeyCtrlI - case '\n': - return KeyCtrlJ - case '\v': - return KeyCtrlK - case '\f': - return KeyCtrlL - case '\r': - return KeyCtrlM - case '\x0e': - return KeyCtrlN - case '\x0f': - return KeyCtrlO - case '\x10': - return KeyCtrlP - case '\x11': - return KeyCtrlQ - case '\x12': - return KeyCtrlR - case '\x13': - return KeyCtrlS - case '\x14': - return KeyCtrlT - case '\x15': - return KeyCtrlU - case '\x16': - return KeyCtrlV - case '\x17': - return KeyCtrlW - case '\x18': - return KeyCtrlX - case '\x19': - return KeyCtrlY - case '\x1a': - return KeyCtrlZ - case '\x1b': - return KeyCtrlOpenBracket // KeyEscape - case '\x1c': - return KeyCtrlBackslash - case '\x1f': - return KeyCtrlUnderscore - } - - switch code { //nolint:exhaustive - case coninput.VK_OEM_4: - return KeyCtrlOpenBracket - case coninput.VK_OEM_6: - return KeyCtrlCloseBracket - } - - return KeyRunes - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/logging.go b/vendor/github.com/charmbracelet/bubbletea/logging.go deleted file mode 100644 index 349758c..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/logging.go +++ /dev/null @@ -1,53 +0,0 @@ -package tea - -import ( - "fmt" - "io" - "log" - "os" - "unicode" -) - -// LogToFile sets up default logging to log to a file. This is helpful as we -// can't print to the terminal since our TUI is occupying it. If the file -// doesn't exist it will be created. -// -// Don't forget to close the file when you're done with it. -// -// f, err := LogToFile("debug.log", "debug") -// if err != nil { -// fmt.Println("fatal:", err) -// os.Exit(1) -// } -// defer f.Close() -func LogToFile(path string, prefix string) (*os.File, error) { - return LogToFileWith(path, prefix, log.Default()) -} - -// LogOptionsSetter is an interface implemented by stdlib's log and charm's log -// libraries. -type LogOptionsSetter interface { - SetOutput(io.Writer) - SetPrefix(string) -} - -// LogToFileWith does allows to call LogToFile with a custom LogOptionsSetter. -func LogToFileWith(path string, prefix string, log LogOptionsSetter) (*os.File, error) { - f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0o600) //nolint:mnd - if err != nil { - return nil, fmt.Errorf("error opening file for logging: %w", err) - } - log.SetOutput(f) - - // Add a space after the prefix if a prefix is being specified and it - // doesn't already have a trailing space. - if len(prefix) > 0 { - finalChar := prefix[len(prefix)-1] - if !unicode.IsSpace(rune(finalChar)) { - prefix += " " - } - } - log.SetPrefix(prefix) - - return f, nil -} diff --git a/vendor/github.com/charmbracelet/bubbletea/mouse.go b/vendor/github.com/charmbracelet/bubbletea/mouse.go deleted file mode 100644 index 490f49a..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/mouse.go +++ /dev/null @@ -1,308 +0,0 @@ -package tea - -import "strconv" - -// MouseMsg contains information about a mouse event and are sent to a programs -// update function when mouse activity occurs. Note that the mouse must first -// be enabled in order for the mouse events to be received. -type MouseMsg MouseEvent - -// String returns a string representation of a mouse event. -func (m MouseMsg) String() string { - return MouseEvent(m).String() -} - -// MouseEvent represents a mouse event, which could be a click, a scroll wheel -// movement, a cursor movement, or a combination. -type MouseEvent struct { - X int - Y int - Shift bool - Alt bool - Ctrl bool - Action MouseAction - Button MouseButton - - // Deprecated: Use MouseAction & MouseButton instead. - Type MouseEventType -} - -// IsWheel returns true if the mouse event is a wheel event. -func (m MouseEvent) IsWheel() bool { - return m.Button == MouseButtonWheelUp || m.Button == MouseButtonWheelDown || - m.Button == MouseButtonWheelLeft || m.Button == MouseButtonWheelRight -} - -// String returns a string representation of a mouse event. -func (m MouseEvent) String() (s string) { - if m.Ctrl { - s += "ctrl+" - } - if m.Alt { - s += "alt+" - } - if m.Shift { - s += "shift+" - } - - if m.Button == MouseButtonNone { //nolint:nestif - if m.Action == MouseActionMotion || m.Action == MouseActionRelease { - s += mouseActions[m.Action] - } else { - s += "unknown" - } - } else if m.IsWheel() { - s += mouseButtons[m.Button] - } else { - btn := mouseButtons[m.Button] - if btn != "" { - s += btn - } - act := mouseActions[m.Action] - if act != "" { - s += " " + act - } - } - - return s -} - -// MouseAction represents the action that occurred during a mouse event. -type MouseAction int - -// Mouse event actions. -const ( - MouseActionPress MouseAction = iota - MouseActionRelease - MouseActionMotion -) - -var mouseActions = map[MouseAction]string{ - MouseActionPress: "press", - MouseActionRelease: "release", - MouseActionMotion: "motion", -} - -// MouseButton represents the button that was pressed during a mouse event. -type MouseButton int - -// Mouse event buttons -// -// This is based on X11 mouse button codes. -// -// 1 = left button -// 2 = middle button (pressing the scroll wheel) -// 3 = right button -// 4 = turn scroll wheel up -// 5 = turn scroll wheel down -// 6 = push scroll wheel left -// 7 = push scroll wheel right -// 8 = 4th button (aka browser backward button) -// 9 = 5th button (aka browser forward button) -// 10 -// 11 -// -// Other buttons are not supported. -const ( - MouseButtonNone MouseButton = iota - MouseButtonLeft - MouseButtonMiddle - MouseButtonRight - MouseButtonWheelUp - MouseButtonWheelDown - MouseButtonWheelLeft - MouseButtonWheelRight - MouseButtonBackward - MouseButtonForward - MouseButton10 - MouseButton11 -) - -var mouseButtons = map[MouseButton]string{ - MouseButtonNone: "none", - MouseButtonLeft: "left", - MouseButtonMiddle: "middle", - MouseButtonRight: "right", - MouseButtonWheelUp: "wheel up", - MouseButtonWheelDown: "wheel down", - MouseButtonWheelLeft: "wheel left", - MouseButtonWheelRight: "wheel right", - MouseButtonBackward: "backward", - MouseButtonForward: "forward", - MouseButton10: "button 10", - MouseButton11: "button 11", -} - -// MouseEventType indicates the type of mouse event occurring. -// -// Deprecated: Use MouseAction & MouseButton instead. -type MouseEventType int - -// Mouse event types. -// -// Deprecated: Use MouseAction & MouseButton instead. -const ( - MouseUnknown MouseEventType = iota - MouseLeft - MouseRight - MouseMiddle - MouseRelease // mouse button release (X10 only) - MouseWheelUp - MouseWheelDown - MouseWheelLeft - MouseWheelRight - MouseBackward - MouseForward - MouseMotion -) - -// Parse SGR-encoded mouse events; SGR extended mouse events. SGR mouse events -// look like: -// -// ESC [ < Cb ; Cx ; Cy (M or m) -// -// where: -// -// Cb is the encoded button code -// Cx is the x-coordinate of the mouse -// Cy is the y-coordinate of the mouse -// M is for button press, m is for button release -// -// https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Extended-coordinates -func parseSGRMouseEvent(buf []byte) MouseEvent { - str := string(buf[3:]) - matches := mouseSGRRegex.FindStringSubmatch(str) - if len(matches) != 5 { //nolint:mnd - // Unreachable, we already checked the regex in `detectOneMsg`. - panic("invalid mouse event") - } - - b, _ := strconv.Atoi(matches[1]) - px := matches[2] - py := matches[3] - release := matches[4] == "m" - m := parseMouseButton(b, true) - - // Wheel buttons don't have release events - // Motion can be reported as a release event in some terminals (Windows Terminal) - if m.Action != MouseActionMotion && !m.IsWheel() && release { - m.Action = MouseActionRelease - m.Type = MouseRelease - } - - x, _ := strconv.Atoi(px) - y, _ := strconv.Atoi(py) - - // (1,1) is the upper left. We subtract 1 to normalize it to (0,0). - m.X = x - 1 - m.Y = y - 1 - - return m -} - -const x10MouseByteOffset = 32 - -// Parse X10-encoded mouse events; the simplest kind. The last release of X10 -// was December 1986, by the way. The original X10 mouse protocol limits the Cx -// and Cy coordinates to 223 (=255-032). -// -// X10 mouse events look like: -// -// ESC [M Cb Cx Cy -// -// See: http://www.xfree86.org/current/ctlseqs.html#Mouse%20Tracking -func parseX10MouseEvent(buf []byte) MouseEvent { - v := buf[3:6] - m := parseMouseButton(int(v[0]), false) - - // (1,1) is the upper left. We subtract 1 to normalize it to (0,0). - m.X = int(v[1]) - x10MouseByteOffset - 1 - m.Y = int(v[2]) - x10MouseByteOffset - 1 - - return m -} - -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Extended-coordinates -func parseMouseButton(b int, isSGR bool) MouseEvent { - var m MouseEvent - e := b - if !isSGR { - e -= x10MouseByteOffset - } - - const ( - bitShift = 0b0000_0100 - bitAlt = 0b0000_1000 - bitCtrl = 0b0001_0000 - bitMotion = 0b0010_0000 - bitWheel = 0b0100_0000 - bitAdd = 0b1000_0000 // additional buttons 8-11 - - bitsMask = 0b0000_0011 - ) - - if e&bitAdd != 0 { - m.Button = MouseButtonBackward + MouseButton(e&bitsMask) - } else if e&bitWheel != 0 { - m.Button = MouseButtonWheelUp + MouseButton(e&bitsMask) - } else { - m.Button = MouseButtonLeft + MouseButton(e&bitsMask) - // X10 reports a button release as 0b0000_0011 (3) - if e&bitsMask == bitsMask { - m.Action = MouseActionRelease - m.Button = MouseButtonNone - } - } - - // Motion bit doesn't get reported for wheel events. - if e&bitMotion != 0 && !m.IsWheel() { - m.Action = MouseActionMotion - } - - // Modifiers - m.Alt = e&bitAlt != 0 - m.Ctrl = e&bitCtrl != 0 - m.Shift = e&bitShift != 0 - - // backward compatibility - switch { - case m.Button == MouseButtonLeft && m.Action == MouseActionPress: - m.Type = MouseLeft - case m.Button == MouseButtonMiddle && m.Action == MouseActionPress: - m.Type = MouseMiddle - case m.Button == MouseButtonRight && m.Action == MouseActionPress: - m.Type = MouseRight - case m.Button == MouseButtonNone && m.Action == MouseActionRelease: - m.Type = MouseRelease - case m.Button == MouseButtonWheelUp && m.Action == MouseActionPress: - m.Type = MouseWheelUp - case m.Button == MouseButtonWheelDown && m.Action == MouseActionPress: - m.Type = MouseWheelDown - case m.Button == MouseButtonWheelLeft && m.Action == MouseActionPress: - m.Type = MouseWheelLeft - case m.Button == MouseButtonWheelRight && m.Action == MouseActionPress: - m.Type = MouseWheelRight - case m.Button == MouseButtonBackward && m.Action == MouseActionPress: - m.Type = MouseBackward - case m.Button == MouseButtonForward && m.Action == MouseActionPress: - m.Type = MouseForward - case m.Action == MouseActionMotion: - m.Type = MouseMotion - switch m.Button { //nolint:exhaustive - case MouseButtonLeft: - m.Type = MouseLeft - case MouseButtonMiddle: - m.Type = MouseMiddle - case MouseButtonRight: - m.Type = MouseRight - case MouseButtonBackward: - m.Type = MouseBackward - case MouseButtonForward: - m.Type = MouseForward - } - default: - m.Type = MouseUnknown - } - - return m -} diff --git a/vendor/github.com/charmbracelet/bubbletea/nil_renderer.go b/vendor/github.com/charmbracelet/bubbletea/nil_renderer.go deleted file mode 100644 index 1bc909b..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/nil_renderer.go +++ /dev/null @@ -1,29 +0,0 @@ -package tea - -type nilRenderer struct{} - -func (n nilRenderer) start() {} -func (n nilRenderer) stop() {} -func (n nilRenderer) kill() {} -func (n nilRenderer) write(_ string) {} -func (n nilRenderer) repaint() {} -func (n nilRenderer) clearScreen() {} -func (n nilRenderer) altScreen() bool { return false } -func (n nilRenderer) enterAltScreen() {} -func (n nilRenderer) exitAltScreen() {} -func (n nilRenderer) showCursor() {} -func (n nilRenderer) hideCursor() {} -func (n nilRenderer) enableMouseCellMotion() {} -func (n nilRenderer) disableMouseCellMotion() {} -func (n nilRenderer) enableMouseAllMotion() {} -func (n nilRenderer) disableMouseAllMotion() {} -func (n nilRenderer) enableBracketedPaste() {} -func (n nilRenderer) disableBracketedPaste() {} -func (n nilRenderer) enableMouseSGRMode() {} -func (n nilRenderer) disableMouseSGRMode() {} -func (n nilRenderer) bracketedPasteActive() bool { return false } -func (n nilRenderer) setWindowTitle(_ string) {} -func (n nilRenderer) reportFocus() bool { return false } -func (n nilRenderer) enableReportFocus() {} -func (n nilRenderer) disableReportFocus() {} -func (n nilRenderer) resetLinesRendered() {} diff --git a/vendor/github.com/charmbracelet/bubbletea/options.go b/vendor/github.com/charmbracelet/bubbletea/options.go deleted file mode 100644 index 49cf378..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/options.go +++ /dev/null @@ -1,252 +0,0 @@ -package tea - -import ( - "context" - "io" - "sync/atomic" -) - -// ProgramOption is used to set options when initializing a Program. Program can -// accept a variable number of options. -// -// Example usage: -// -// p := NewProgram(model, WithInput(someInput), WithOutput(someOutput)) -type ProgramOption func(*Program) - -// WithContext lets you specify a context in which to run the Program. This is -// useful if you want to cancel the execution from outside. When a Program gets -// cancelled it will exit with an error ErrProgramKilled. -func WithContext(ctx context.Context) ProgramOption { - return func(p *Program) { - p.externalCtx = ctx - } -} - -// WithOutput sets the output which, by default, is stdout. In most cases you -// won't need to use this. -func WithOutput(output io.Writer) ProgramOption { - return func(p *Program) { - p.output = output - } -} - -// WithInput sets the input which, by default, is stdin. In most cases you -// won't need to use this. To disable input entirely pass nil. -// -// p := NewProgram(model, WithInput(nil)) -func WithInput(input io.Reader) ProgramOption { - return func(p *Program) { - p.input = input - p.inputType = customInput - } -} - -// WithInputTTY opens a new TTY for input (or console input device on Windows). -func WithInputTTY() ProgramOption { - return func(p *Program) { - p.inputType = ttyInput - } -} - -// WithEnvironment sets the environment variables that the program will use. -// This useful when the program is running in a remote session (e.g. SSH) and -// you want to pass the environment variables from the remote session to the -// program. -// -// Example: -// -// var sess ssh.Session // ssh.Session is a type from the github.com/charmbracelet/ssh package -// pty, _, _ := sess.Pty() -// environ := append(sess.Environ(), "TERM="+pty.Term) -// p := tea.NewProgram(model, tea.WithEnvironment(environ) -func WithEnvironment(env []string) ProgramOption { - return func(p *Program) { - p.environ = env - } -} - -// WithoutSignalHandler disables the signal handler that Bubble Tea sets up for -// Programs. This is useful if you want to handle signals yourself. -func WithoutSignalHandler() ProgramOption { - return func(p *Program) { - p.startupOptions |= withoutSignalHandler - } -} - -// WithoutCatchPanics disables the panic catching that Bubble Tea does by -// default. If panic catching is disabled the terminal will be in a fairly -// unusable state after a panic because Bubble Tea will not perform its usual -// cleanup on exit. -func WithoutCatchPanics() ProgramOption { - return func(p *Program) { - p.startupOptions |= withoutCatchPanics - } -} - -// WithoutSignals will ignore OS signals. -// This is mainly useful for testing. -func WithoutSignals() ProgramOption { - return func(p *Program) { - atomic.StoreUint32(&p.ignoreSignals, 1) - } -} - -// WithAltScreen starts the program with the alternate screen buffer enabled -// (i.e. the program starts in full window mode). Note that the altscreen will -// be automatically exited when the program quits. -// -// Example: -// -// p := tea.NewProgram(Model{}, tea.WithAltScreen()) -// if _, err := p.Run(); err != nil { -// fmt.Println("Error running program:", err) -// os.Exit(1) -// } -// -// To enter the altscreen once the program has already started running use the -// EnterAltScreen command. -func WithAltScreen() ProgramOption { - return func(p *Program) { - p.startupOptions |= withAltScreen - } -} - -// WithoutBracketedPaste starts the program with bracketed paste disabled. -func WithoutBracketedPaste() ProgramOption { - return func(p *Program) { - p.startupOptions |= withoutBracketedPaste - } -} - -// WithMouseCellMotion starts the program with the mouse enabled in "cell -// motion" mode. -// -// Cell motion mode enables mouse click, release, and wheel events. Mouse -// movement events are also captured if a mouse button is pressed (i.e., drag -// events). Cell motion mode is better supported than all motion mode. -// -// This will try to enable the mouse in extended mode (SGR), if that is not -// supported by the terminal it will fall back to normal mode (X10). -// -// To enable mouse cell motion once the program has already started running use -// the EnableMouseCellMotion command. To disable the mouse when the program is -// running use the DisableMouse command. -// -// The mouse will be automatically disabled when the program exits. -func WithMouseCellMotion() ProgramOption { - return func(p *Program) { - p.startupOptions |= withMouseCellMotion // set - p.startupOptions &^= withMouseAllMotion // clear - } -} - -// WithMouseAllMotion starts the program with the mouse enabled in "all motion" -// mode. -// -// EnableMouseAllMotion is a special command that enables mouse click, release, -// wheel, and motion events, which are delivered regardless of whether a mouse -// button is pressed, effectively enabling support for hover interactions. -// -// This will try to enable the mouse in extended mode (SGR), if that is not -// supported by the terminal it will fall back to normal mode (X10). -// -// Many modern terminals support this, but not all. If in doubt, use -// EnableMouseCellMotion instead. -// -// To enable the mouse once the program has already started running use the -// EnableMouseAllMotion command. To disable the mouse when the program is -// running use the DisableMouse command. -// -// The mouse will be automatically disabled when the program exits. -func WithMouseAllMotion() ProgramOption { - return func(p *Program) { - p.startupOptions |= withMouseAllMotion // set - p.startupOptions &^= withMouseCellMotion // clear - } -} - -// WithoutRenderer disables the renderer. When this is set output and log -// statements will be plainly sent to stdout (or another output if one is set) -// without any rendering and redrawing logic. In other words, printing and -// logging will behave the same way it would in a non-TUI commandline tool. -// This can be useful if you want to use the Bubble Tea framework for a non-TUI -// application, or to provide an additional non-TUI mode to your Bubble Tea -// programs. For example, your program could behave like a daemon if output is -// not a TTY. -func WithoutRenderer() ProgramOption { - return func(p *Program) { - p.renderer = &nilRenderer{} - } -} - -// WithANSICompressor removes redundant ANSI sequences to produce potentially -// smaller output, at the cost of some processing overhead. -// -// This feature is provisional, and may be changed or removed in a future version -// of this package. -// -// Deprecated: this incurs a noticeable performance hit. A future release will -// optimize ANSI automatically without the performance penalty. -func WithANSICompressor() ProgramOption { - return func(p *Program) { - p.startupOptions |= withANSICompressor - } -} - -// WithFilter supplies an event filter that will be invoked before Bubble Tea -// processes a tea.Msg. The event filter can return any tea.Msg which will then -// get handled by Bubble Tea instead of the original event. If the event filter -// returns nil, the event will be ignored and Bubble Tea will not process it. -// -// As an example, this could be used to prevent a program from shutting down if -// there are unsaved changes. -// -// Example: -// -// func filter(m tea.Model, msg tea.Msg) tea.Msg { -// if _, ok := msg.(tea.QuitMsg); !ok { -// return msg -// } -// -// model := m.(myModel) -// if model.hasChanges { -// return nil -// } -// -// return msg -// } -// -// p := tea.NewProgram(Model{}, tea.WithFilter(filter)); -// -// if _,err := p.Run(); err != nil { -// fmt.Println("Error running program:", err) -// os.Exit(1) -// } -func WithFilter(filter func(Model, Msg) Msg) ProgramOption { - return func(p *Program) { - p.filter = filter - } -} - -// WithFPS sets a custom maximum FPS at which the renderer should run. If -// less than 1, the default value of 60 will be used. If over 120, the FPS -// will be capped at 120. -func WithFPS(fps int) ProgramOption { - return func(p *Program) { - p.fps = fps - } -} - -// WithReportFocus enables reporting when the terminal gains and loses -// focus. When this is enabled [FocusMsg] and [BlurMsg] messages will be sent -// to your Update method. -// -// Note that while most terminals and multiplexers support focus reporting, -// some do not. Also note that tmux needs to be configured to report focus -// events. -func WithReportFocus() ProgramOption { - return func(p *Program) { - p.startupOptions |= withReportFocus - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/renderer.go b/vendor/github.com/charmbracelet/bubbletea/renderer.go deleted file mode 100644 index 5b6df66..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/renderer.go +++ /dev/null @@ -1,88 +0,0 @@ -package tea - -// renderer is the interface for Bubble Tea renderers. -type renderer interface { - // Start the renderer. - start() - - // Stop the renderer, but render the final frame in the buffer, if any. - stop() - - // Stop the renderer without doing any final rendering. - kill() - - // Write a frame to the renderer. The renderer can write this data to - // output at its discretion. - write(string) - - // Request a full re-render. Note that this will not trigger a render - // immediately. Rather, this method causes the next render to be a full - // repaint. Because of this, it's safe to call this method multiple times - // in succession. - repaint() - - // Clears the terminal. - clearScreen() - - // Whether or not the alternate screen buffer is enabled. - altScreen() bool - // Enable the alternate screen buffer. - enterAltScreen() - // Disable the alternate screen buffer. - exitAltScreen() - - // Show the cursor. - showCursor() - // Hide the cursor. - hideCursor() - - // enableMouseCellMotion enables mouse click, release, wheel and motion - // events if a mouse button is pressed (i.e., drag events). - enableMouseCellMotion() - - // disableMouseCellMotion disables Mouse Cell Motion tracking. - disableMouseCellMotion() - - // enableMouseAllMotion enables mouse click, release, wheel and motion - // events, regardless of whether a mouse button is pressed. Many modern - // terminals support this, but not all. - enableMouseAllMotion() - - // disableMouseAllMotion disables All Motion mouse tracking. - disableMouseAllMotion() - - // enableMouseSGRMode enables mouse extended mode (SGR). - enableMouseSGRMode() - - // disableMouseSGRMode disables mouse extended mode (SGR). - disableMouseSGRMode() - - // enableBracketedPaste enables bracketed paste, where characters - // inside the input are not interpreted when pasted as a whole. - enableBracketedPaste() - - // disableBracketedPaste disables bracketed paste. - disableBracketedPaste() - - // bracketedPasteActive reports whether bracketed paste mode is - // currently enabled. - bracketedPasteActive() bool - - // setWindowTitle sets the terminal window title. - setWindowTitle(string) - - // reportFocus returns whether reporting focus events is enabled. - reportFocus() bool - - // enableReportFocus reports focus events to the program. - enableReportFocus() - - // disableReportFocus stops reporting focus events to the program. - disableReportFocus() - - // resetLinesRendered ensures exec output remains on screen on exit - resetLinesRendered() -} - -// repaintMsg forces a full repaint. -type repaintMsg struct{} diff --git a/vendor/github.com/charmbracelet/bubbletea/screen.go b/vendor/github.com/charmbracelet/bubbletea/screen.go deleted file mode 100644 index 02e1bfb..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/screen.go +++ /dev/null @@ -1,248 +0,0 @@ -package tea - -// WindowSizeMsg is used to report the terminal size. It's sent to Update once -// initially and then on every terminal resize. Note that Windows does not -// have support for reporting when resizes occur as it does not support the -// SIGWINCH signal. -type WindowSizeMsg struct { - Width int - Height int -} - -// ClearScreen is a special command that tells the program to clear the screen -// before the next update. This can be used to move the cursor to the top left -// of the screen and clear visual clutter when the alt screen is not in use. -// -// Note that it should never be necessary to call ClearScreen() for regular -// redraws. -func ClearScreen() Msg { - return clearScreenMsg{} -} - -// clearScreenMsg is an internal message that signals to clear the screen. -// You can send a clearScreenMsg with ClearScreen. -type clearScreenMsg struct{} - -// EnterAltScreen is a special command that tells the Bubble Tea program to -// enter the alternate screen buffer. -// -// Because commands run asynchronously, this command should not be used in your -// model's Init function. To initialize your program with the altscreen enabled -// use the WithAltScreen ProgramOption instead. -func EnterAltScreen() Msg { - return enterAltScreenMsg{} -} - -// enterAltScreenMsg in an internal message signals that the program should -// enter alternate screen buffer. You can send a enterAltScreenMsg with -// EnterAltScreen. -type enterAltScreenMsg struct{} - -// ExitAltScreen is a special command that tells the Bubble Tea program to exit -// the alternate screen buffer. This command should be used to exit the -// alternate screen buffer while the program is running. -// -// Note that the alternate screen buffer will be automatically exited when the -// program quits. -func ExitAltScreen() Msg { - return exitAltScreenMsg{} -} - -// exitAltScreenMsg in an internal message signals that the program should exit -// alternate screen buffer. You can send a exitAltScreenMsg with ExitAltScreen. -type exitAltScreenMsg struct{} - -// EnableMouseCellMotion is a special command that enables mouse click, -// release, and wheel events. Mouse movement events are also captured if -// a mouse button is pressed (i.e., drag events). -// -// Because commands run asynchronously, this command should not be used in your -// model's Init function. Use the WithMouseCellMotion ProgramOption instead. -func EnableMouseCellMotion() Msg { - return enableMouseCellMotionMsg{} -} - -// enableMouseCellMotionMsg is a special command that signals to start -// listening for "cell motion" type mouse events (ESC[?1002l). To send an -// enableMouseCellMotionMsg, use the EnableMouseCellMotion command. -type enableMouseCellMotionMsg struct{} - -// EnableMouseAllMotion is a special command that enables mouse click, release, -// wheel, and motion events, which are delivered regardless of whether a mouse -// button is pressed, effectively enabling support for hover interactions. -// -// Many modern terminals support this, but not all. If in doubt, use -// EnableMouseCellMotion instead. -// -// Because commands run asynchronously, this command should not be used in your -// model's Init function. Use the WithMouseAllMotion ProgramOption instead. -func EnableMouseAllMotion() Msg { - return enableMouseAllMotionMsg{} -} - -// enableMouseAllMotionMsg is a special command that signals to start listening -// for "all motion" type mouse events (ESC[?1003l). To send an -// enableMouseAllMotionMsg, use the EnableMouseAllMotion command. -type enableMouseAllMotionMsg struct{} - -// DisableMouse is a special command that stops listening for mouse events. -func DisableMouse() Msg { - return disableMouseMsg{} -} - -// disableMouseMsg is an internal message that signals to stop listening -// for mouse events. To send a disableMouseMsg, use the DisableMouse command. -type disableMouseMsg struct{} - -// HideCursor is a special command for manually instructing Bubble Tea to hide -// the cursor. In some rare cases, certain operations will cause the terminal -// to show the cursor, which is normally hidden for the duration of a Bubble -// Tea program's lifetime. You will most likely not need to use this command. -func HideCursor() Msg { - return hideCursorMsg{} -} - -// hideCursorMsg is an internal command used to hide the cursor. You can send -// this message with HideCursor. -type hideCursorMsg struct{} - -// ShowCursor is a special command for manually instructing Bubble Tea to show -// the cursor. -func ShowCursor() Msg { - return showCursorMsg{} -} - -// showCursorMsg is an internal command used to show the cursor. You can send -// this message with ShowCursor. -type showCursorMsg struct{} - -// EnableBracketedPaste is a special command that tells the Bubble Tea program -// to accept bracketed paste input. -// -// Note that bracketed paste will be automatically disabled when the -// program quits. -func EnableBracketedPaste() Msg { - return enableBracketedPasteMsg{} -} - -// enableBracketedPasteMsg in an internal message signals that -// bracketed paste should be enabled. You can send an -// enableBracketedPasteMsg with EnableBracketedPaste. -type enableBracketedPasteMsg struct{} - -// DisableBracketedPaste is a special command that tells the Bubble Tea program -// to stop processing bracketed paste input. -// -// Note that bracketed paste will be automatically disabled when the -// program quits. -func DisableBracketedPaste() Msg { - return disableBracketedPasteMsg{} -} - -// disableBracketedPasteMsg in an internal message signals that -// bracketed paste should be disabled. You can send an -// disableBracketedPasteMsg with DisableBracketedPaste. -type disableBracketedPasteMsg struct{} - -// enableReportFocusMsg is an internal message that signals to enable focus -// reporting. You can send an enableReportFocusMsg with EnableReportFocus. -type enableReportFocusMsg struct{} - -// EnableReportFocus is a special command that tells the Bubble Tea program to -// report focus events to the program. -func EnableReportFocus() Msg { - return enableReportFocusMsg{} -} - -// disableReportFocusMsg is an internal message that signals to disable focus -// reporting. You can send an disableReportFocusMsg with DisableReportFocus. -type disableReportFocusMsg struct{} - -// DisableReportFocus is a special command that tells the Bubble Tea program to -// stop reporting focus events to the program. -func DisableReportFocus() Msg { - return disableReportFocusMsg{} -} - -// EnterAltScreen enters the alternate screen buffer, which consumes the entire -// terminal window. ExitAltScreen will return the terminal to its former state. -// -// Deprecated: Use the WithAltScreen ProgramOption instead. -func (p *Program) EnterAltScreen() { - if p.renderer != nil { - p.renderer.enterAltScreen() - } else { - p.startupOptions |= withAltScreen - } -} - -// ExitAltScreen exits the alternate screen buffer. -// -// Deprecated: The altscreen will exited automatically when the program exits. -func (p *Program) ExitAltScreen() { - if p.renderer != nil { - p.renderer.exitAltScreen() - } else { - p.startupOptions &^= withAltScreen - } -} - -// EnableMouseCellMotion enables mouse click, release, wheel and motion events -// if a mouse button is pressed (i.e., drag events). -// -// Deprecated: Use the WithMouseCellMotion ProgramOption instead. -func (p *Program) EnableMouseCellMotion() { - if p.renderer != nil { - p.renderer.enableMouseCellMotion() - } else { - p.startupOptions |= withMouseCellMotion - } -} - -// DisableMouseCellMotion disables Mouse Cell Motion tracking. This will be -// called automatically when exiting a Bubble Tea program. -// -// Deprecated: The mouse will automatically be disabled when the program exits. -func (p *Program) DisableMouseCellMotion() { - if p.renderer != nil { - p.renderer.disableMouseCellMotion() - } else { - p.startupOptions &^= withMouseCellMotion - } -} - -// EnableMouseAllMotion enables mouse click, release, wheel and motion events, -// regardless of whether a mouse button is pressed. Many modern terminals -// support this, but not all. -// -// Deprecated: Use the WithMouseAllMotion ProgramOption instead. -func (p *Program) EnableMouseAllMotion() { - if p.renderer != nil { - p.renderer.enableMouseAllMotion() - } else { - p.startupOptions |= withMouseAllMotion - } -} - -// DisableMouseAllMotion disables All Motion mouse tracking. This will be -// called automatically when exiting a Bubble Tea program. -// -// Deprecated: The mouse will automatically be disabled when the program exits. -func (p *Program) DisableMouseAllMotion() { - if p.renderer != nil { - p.renderer.disableMouseAllMotion() - } else { - p.startupOptions &^= withMouseAllMotion - } -} - -// SetWindowTitle sets the terminal window title. -// -// Deprecated: Use the SetWindowTitle command instead. -func (p *Program) SetWindowTitle(title string) { - if p.renderer != nil { - p.renderer.setWindowTitle(title) - } else { - p.startupTitle = title - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/signals_unix.go b/vendor/github.com/charmbracelet/bubbletea/signals_unix.go deleted file mode 100644 index 4095403..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/signals_unix.go +++ /dev/null @@ -1,33 +0,0 @@ -//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || aix || zos -// +build darwin dragonfly freebsd linux netbsd openbsd solaris aix zos - -package tea - -import ( - "os" - "os/signal" - "syscall" -) - -// listenForResize sends messages (or errors) when the terminal resizes. -// Argument output should be the file descriptor for the terminal; usually -// os.Stdout. -func (p *Program) listenForResize(done chan struct{}) { - sig := make(chan os.Signal, 1) - signal.Notify(sig, syscall.SIGWINCH) - - defer func() { - signal.Stop(sig) - close(done) - }() - - for { - select { - case <-p.ctx.Done(): - return - case <-sig: - } - - p.checkResize() - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/signals_windows.go b/vendor/github.com/charmbracelet/bubbletea/signals_windows.go deleted file mode 100644 index 2fc6f8a..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/signals_windows.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build windows -// +build windows - -package tea - -// listenForResize is not available on windows because windows does not -// implement syscall.SIGWINCH. -func (p *Program) listenForResize(done chan struct{}) { - close(done) -} diff --git a/vendor/github.com/charmbracelet/bubbletea/standard_renderer.go b/vendor/github.com/charmbracelet/bubbletea/standard_renderer.go deleted file mode 100644 index 969a58c..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/standard_renderer.go +++ /dev/null @@ -1,790 +0,0 @@ -package tea - -import ( - "bytes" - "fmt" - "io" - "strings" - "sync" - "time" - - "github.com/charmbracelet/x/ansi" - "github.com/muesli/ansi/compressor" -) - -const ( - // defaultFramerate specifies the maximum interval at which we should - // update the view. - defaultFPS = 60 - maxFPS = 120 -) - -// standardRenderer is a framerate-based terminal renderer, updating the view -// at a given framerate to avoid overloading the terminal emulator. -// -// In cases where very high performance is needed the renderer can be told -// to exclude ranges of lines, allowing them to be written to directly. -type standardRenderer struct { - mtx *sync.Mutex - out io.Writer - - buf bytes.Buffer - queuedMessageLines []string - framerate time.Duration - ticker *time.Ticker - done chan struct{} - lastRender string - lastRenderedLines []string - linesRendered int - altLinesRendered int - useANSICompressor bool - once sync.Once - - // cursor visibility state - cursorHidden bool - - // essentially whether or not we're using the full size of the terminal - altScreenActive bool - - // whether or not we're currently using bracketed paste - bpActive bool - - // reportingFocus whether reporting focus events is enabled - reportingFocus bool - - // renderer dimensions; usually the size of the window - width int - height int - - // lines explicitly set not to render - ignoreLines map[int]struct{} -} - -// newRenderer creates a new renderer. Normally you'll want to initialize it -// with os.Stdout as the first argument. -func newRenderer(out io.Writer, useANSICompressor bool, fps int) renderer { - if fps < 1 { - fps = defaultFPS - } else if fps > maxFPS { - fps = maxFPS - } - r := &standardRenderer{ - out: out, - mtx: &sync.Mutex{}, - done: make(chan struct{}), - framerate: time.Second / time.Duration(fps), - useANSICompressor: useANSICompressor, - queuedMessageLines: []string{}, - } - if r.useANSICompressor { - r.out = &compressor.Writer{Forward: out} - } - return r -} - -// start starts the renderer. -func (r *standardRenderer) start() { - if r.ticker == nil { - r.ticker = time.NewTicker(r.framerate) - } else { - // If the ticker already exists, it has been stopped and we need to - // reset it. - r.ticker.Reset(r.framerate) - } - - // Since the renderer can be restarted after a stop, we need to reset - // the done channel and its corresponding sync.Once. - r.once = sync.Once{} - - go r.listen() -} - -// stop permanently halts the renderer, rendering the final frame. -func (r *standardRenderer) stop() { - // Stop the renderer before acquiring the mutex to avoid a deadlock. - r.once.Do(func() { - r.done <- struct{}{} - }) - - // flush locks the mutex - r.flush() - - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.EraseEntireLine) - // Move the cursor back to the beginning of the line - r.execute("\r") - - if r.useANSICompressor { - if w, ok := r.out.(io.WriteCloser); ok { - _ = w.Close() - } - } -} - -// execute writes a sequence to the terminal. -func (r *standardRenderer) execute(seq string) { - _, _ = io.WriteString(r.out, seq) -} - -// kill halts the renderer. The final frame will not be rendered. -func (r *standardRenderer) kill() { - // Stop the renderer before acquiring the mutex to avoid a deadlock. - r.once.Do(func() { - r.done <- struct{}{} - }) - - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.EraseEntireLine) - // Move the cursor back to the beginning of the line - r.execute("\r") -} - -// listen waits for ticks on the ticker, or a signal to stop the renderer. -func (r *standardRenderer) listen() { - for { - select { - case <-r.done: - r.ticker.Stop() - return - - case <-r.ticker.C: - r.flush() - } - } -} - -// flush renders the buffer. -func (r *standardRenderer) flush() { - r.mtx.Lock() - defer r.mtx.Unlock() - - if r.buf.Len() == 0 || r.buf.String() == r.lastRender { - // Nothing to do. - return - } - - // Output buffer. - buf := &bytes.Buffer{} - - // Moving to the beginning of the section, that we rendered. - if r.altScreenActive { - buf.WriteString(ansi.CursorHomePosition) - } else if r.linesRendered > 1 { - buf.WriteString(ansi.CursorUp(r.linesRendered - 1)) - } - - newLines := strings.Split(r.buf.String(), "\n") - - // If we know the output's height, we can use it to determine how many - // lines we can render. We drop lines from the top of the render buffer if - // necessary, as we can't navigate the cursor into the terminal's scrollback - // buffer. - if r.height > 0 && len(newLines) > r.height { - newLines = newLines[len(newLines)-r.height:] - } - - flushQueuedMessages := len(r.queuedMessageLines) > 0 && !r.altScreenActive - - if flushQueuedMessages { - // Dump the lines we've queued up for printing. - for _, line := range r.queuedMessageLines { - if ansi.StringWidth(line) < r.width { - // We only erase the rest of the line when the line is shorter than - // the width of the terminal. When the cursor reaches the end of - // the line, any escape sequences that follow will only affect the - // last cell of the line. - - // Removing previously rendered content at the end of line. - line = line + ansi.EraseLineRight - } - - _, _ = buf.WriteString(line) - _, _ = buf.WriteString("\r\n") - } - // Clear the queued message lines. - r.queuedMessageLines = []string{} - } - - // Paint new lines. - for i := 0; i < len(newLines); i++ { - canSkip := !flushQueuedMessages && // Queuing messages triggers repaint -> we don't have access to previous frame content. - len(r.lastRenderedLines) > i && r.lastRenderedLines[i] == newLines[i] // Previously rendered line is the same. - - if _, ignore := r.ignoreLines[i]; ignore || canSkip { - // Unless this is the last line, move the cursor down. - if i < len(newLines)-1 { - buf.WriteByte('\n') - } - continue - } - - if i == 0 && r.lastRender == "" { - // On first render, reset the cursor to the start of the line - // before writing anything. - buf.WriteByte('\r') - } - - line := newLines[i] - - // Truncate lines wider than the width of the window to avoid - // wrapping, which will mess up rendering. If we don't have the - // width of the window this will be ignored. - // - // Note that on Windows we only get the width of the window on - // program initialization, so after a resize this won't perform - // correctly (signal SIGWINCH is not supported on Windows). - if r.width > 0 { - line = ansi.Truncate(line, r.width, "") - } - - if ansi.StringWidth(line) < r.width { - // We only erase the rest of the line when the line is shorter than - // the width of the terminal. When the cursor reaches the end of - // the line, any escape sequences that follow will only affect the - // last cell of the line. - - // Removing previously rendered content at the end of line. - line = line + ansi.EraseLineRight - } - - _, _ = buf.WriteString(line) - - if i < len(newLines)-1 { - _, _ = buf.WriteString("\r\n") - } - } - - // Clearing left over content from last render. - if r.lastLinesRendered() > len(newLines) { - buf.WriteString(ansi.EraseScreenBelow) - } - - if r.altScreenActive { - r.altLinesRendered = len(newLines) - } else { - r.linesRendered = len(newLines) - } - - // Make sure the cursor is at the start of the last line to keep rendering - // behavior consistent. - if r.altScreenActive { - // This case fixes a bug in macOS terminal. In other terminals the - // other case seems to do the job regardless of whether or not we're - // using the full terminal window. - buf.WriteString(ansi.CursorPosition(0, len(newLines))) - } else { - buf.WriteByte('\r') - } - - _, _ = r.out.Write(buf.Bytes()) - r.lastRender = r.buf.String() - - // Save previously rendered lines for comparison in the next render. If we - // don't do this, we can't skip rendering lines that haven't changed. - // See https://github.com/charmbracelet/bubbletea/pull/1233 - r.lastRenderedLines = newLines - r.buf.Reset() -} - -// lastLinesRendered returns the number of lines rendered lastly. -func (r *standardRenderer) lastLinesRendered() int { - if r.altScreenActive { - return r.altLinesRendered - } - return r.linesRendered -} - -// write writes to the internal buffer. The buffer will be outputted via the -// ticker which calls flush(). -func (r *standardRenderer) write(s string) { - r.mtx.Lock() - defer r.mtx.Unlock() - r.buf.Reset() - - // If an empty string was passed we should clear existing output and - // rendering nothing. Rather than introduce additional state to manage - // this, we render a single space as a simple (albeit less correct) - // solution. - if s == "" { - s = " " - } - - _, _ = r.buf.WriteString(s) -} - -func (r *standardRenderer) repaint() { - r.lastRender = "" - r.lastRenderedLines = nil -} - -func (r *standardRenderer) clearScreen() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.EraseEntireScreen) - r.execute(ansi.CursorHomePosition) - - r.repaint() -} - -func (r *standardRenderer) altScreen() bool { - r.mtx.Lock() - defer r.mtx.Unlock() - - return r.altScreenActive -} - -func (r *standardRenderer) enterAltScreen() { - r.mtx.Lock() - defer r.mtx.Unlock() - - if r.altScreenActive { - return - } - - r.altScreenActive = true - r.execute(ansi.SetAltScreenSaveCursorMode) - - // Ensure that the terminal is cleared, even when it doesn't support - // alt screen (or alt screen support is disabled, like GNU screen by - // default). - // - // Note: we can't use r.clearScreen() here because the mutex is already - // locked. - r.execute(ansi.EraseEntireScreen) - r.execute(ansi.CursorHomePosition) - - // cmd.exe and other terminals keep separate cursor states for the AltScreen - // and the main buffer. We have to explicitly reset the cursor visibility - // whenever we enter AltScreen. - if r.cursorHidden { - r.execute(ansi.HideCursor) - } else { - r.execute(ansi.ShowCursor) - } - - // Entering the alt screen resets the lines rendered count. - r.altLinesRendered = 0 - - r.repaint() -} - -func (r *standardRenderer) exitAltScreen() { - r.mtx.Lock() - defer r.mtx.Unlock() - - if !r.altScreenActive { - return - } - - r.altScreenActive = false - r.execute(ansi.ResetAltScreenSaveCursorMode) - - // cmd.exe and other terminals keep separate cursor states for the AltScreen - // and the main buffer. We have to explicitly reset the cursor visibility - // whenever we exit AltScreen. - if r.cursorHidden { - r.execute(ansi.HideCursor) - } else { - r.execute(ansi.ShowCursor) - } - - r.repaint() -} - -func (r *standardRenderer) showCursor() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.cursorHidden = false - r.execute(ansi.ShowCursor) -} - -func (r *standardRenderer) hideCursor() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.cursorHidden = true - r.execute(ansi.HideCursor) -} - -func (r *standardRenderer) enableMouseCellMotion() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.SetButtonEventMouseMode) -} - -func (r *standardRenderer) disableMouseCellMotion() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.ResetButtonEventMouseMode) -} - -func (r *standardRenderer) enableMouseAllMotion() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.SetAnyEventMouseMode) -} - -func (r *standardRenderer) disableMouseAllMotion() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.ResetAnyEventMouseMode) -} - -func (r *standardRenderer) enableMouseSGRMode() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.SetSgrExtMouseMode) -} - -func (r *standardRenderer) disableMouseSGRMode() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.ResetSgrExtMouseMode) -} - -func (r *standardRenderer) enableBracketedPaste() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.SetBracketedPasteMode) - r.bpActive = true -} - -func (r *standardRenderer) disableBracketedPaste() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.ResetBracketedPasteMode) - r.bpActive = false -} - -func (r *standardRenderer) bracketedPasteActive() bool { - r.mtx.Lock() - defer r.mtx.Unlock() - - return r.bpActive -} - -func (r *standardRenderer) enableReportFocus() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.SetFocusEventMode) - r.reportingFocus = true -} - -func (r *standardRenderer) disableReportFocus() { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.execute(ansi.ResetFocusEventMode) - r.reportingFocus = false -} - -func (r *standardRenderer) reportFocus() bool { - r.mtx.Lock() - defer r.mtx.Unlock() - - return r.reportingFocus -} - -// setWindowTitle sets the terminal window title. -func (r *standardRenderer) setWindowTitle(title string) { - r.execute(ansi.SetWindowTitle(title)) -} - -// setIgnoredLines specifies lines not to be touched by the standard Bubble Tea -// renderer. -func (r *standardRenderer) setIgnoredLines(from int, to int) { - // Lock if we're going to be clearing some lines since we don't want - // anything jacking our cursor. - if r.lastLinesRendered() > 0 { - r.mtx.Lock() - defer r.mtx.Unlock() - } - - if r.ignoreLines == nil { - r.ignoreLines = make(map[int]struct{}) - } - for i := from; i < to; i++ { - r.ignoreLines[i] = struct{}{} - } - - // Erase ignored lines - lastLinesRendered := r.lastLinesRendered() - if lastLinesRendered > 0 { - buf := &bytes.Buffer{} - - for i := lastLinesRendered - 1; i >= 0; i-- { - if _, exists := r.ignoreLines[i]; exists { - buf.WriteString(ansi.EraseEntireLine) - } - buf.WriteString(ansi.CUU1) - } - buf.WriteString(ansi.CursorPosition(0, lastLinesRendered)) // put cursor back - _, _ = r.out.Write(buf.Bytes()) - } -} - -// clearIgnoredLines returns control of any ignored lines to the standard -// Bubble Tea renderer. That is, any lines previously set to be ignored can be -// rendered to again. -func (r *standardRenderer) clearIgnoredLines() { - r.ignoreLines = nil -} - -func (r *standardRenderer) resetLinesRendered() { - r.linesRendered = 0 -} - -// insertTop effectively scrolls up. It inserts lines at the top of a given -// area designated to be a scrollable region, pushing everything else down. -// This is roughly how ncurses does it. -// -// To call this function use command ScrollUp(). -// -// For this to work renderer.ignoreLines must be set to ignore the scrollable -// region since we are bypassing the normal Bubble Tea renderer here. -// -// Because this method relies on the terminal dimensions, it's only valid for -// full-window applications (generally those that use the alternate screen -// buffer). -// -// This method bypasses the normal rendering buffer and is philosophically -// different than the normal way we approach rendering in Bubble Tea. It's for -// use in high-performance rendering, such as a pager that could potentially -// be rendering very complicated ansi. In cases where the content is simpler -// standard Bubble Tea rendering should suffice. -// -// Deprecated: This option is deprecated and will be removed in a future -// version of this package. -func (r *standardRenderer) insertTop(lines []string, topBoundary, bottomBoundary int) { - r.mtx.Lock() - defer r.mtx.Unlock() - - buf := &bytes.Buffer{} - - buf.WriteString(ansi.SetTopBottomMargins(topBoundary, bottomBoundary)) - buf.WriteString(ansi.CursorPosition(0, topBoundary)) - buf.WriteString(ansi.InsertLine(len(lines))) - _, _ = buf.WriteString(strings.Join(lines, "\r\n")) - buf.WriteString(ansi.SetTopBottomMargins(0, r.height)) - - // Move cursor back to where the main rendering routine expects it to be - buf.WriteString(ansi.CursorPosition(0, r.lastLinesRendered())) - - _, _ = r.out.Write(buf.Bytes()) -} - -// insertBottom effectively scrolls down. It inserts lines at the bottom of -// a given area designated to be a scrollable region, pushing everything else -// up. This is roughly how ncurses does it. -// -// To call this function use the command ScrollDown(). -// -// See note in insertTop() for caveats, how this function only makes sense for -// full-window applications, and how it differs from the normal way we do -// rendering in Bubble Tea. -// -// Deprecated: This option is deprecated and will be removed in a future -// version of this package. -func (r *standardRenderer) insertBottom(lines []string, topBoundary, bottomBoundary int) { - r.mtx.Lock() - defer r.mtx.Unlock() - - buf := &bytes.Buffer{} - - buf.WriteString(ansi.SetTopBottomMargins(topBoundary, bottomBoundary)) - buf.WriteString(ansi.CursorPosition(0, bottomBoundary)) - _, _ = buf.WriteString("\r\n" + strings.Join(lines, "\r\n")) - buf.WriteString(ansi.SetTopBottomMargins(0, r.height)) - - // Move cursor back to where the main rendering routine expects it to be - buf.WriteString(ansi.CursorPosition(0, r.lastLinesRendered())) - - _, _ = r.out.Write(buf.Bytes()) -} - -// handleMessages handles internal messages for the renderer. -func (r *standardRenderer) handleMessages(msg Msg) { - switch msg := msg.(type) { - case repaintMsg: - // Force a repaint by clearing the render cache as we slide into a - // render. - r.mtx.Lock() - r.repaint() - r.mtx.Unlock() - - case WindowSizeMsg: - r.mtx.Lock() - r.width = msg.Width - r.height = msg.Height - r.repaint() - r.mtx.Unlock() - - case clearScrollAreaMsg: - r.clearIgnoredLines() - - // Force a repaint on the area where the scrollable stuff was in this - // update cycle - r.mtx.Lock() - r.repaint() - r.mtx.Unlock() - - case syncScrollAreaMsg: - // Re-render scrolling area - r.clearIgnoredLines() - r.setIgnoredLines(msg.topBoundary, msg.bottomBoundary) - r.insertTop(msg.lines, msg.topBoundary, msg.bottomBoundary) - - // Force non-scrolling stuff to repaint in this update cycle - r.mtx.Lock() - r.repaint() - r.mtx.Unlock() - - case scrollUpMsg: - r.insertTop(msg.lines, msg.topBoundary, msg.bottomBoundary) - - case scrollDownMsg: - r.insertBottom(msg.lines, msg.topBoundary, msg.bottomBoundary) - - case printLineMessage: - if !r.altScreenActive { - lines := strings.Split(msg.messageBody, "\n") - r.mtx.Lock() - r.queuedMessageLines = append(r.queuedMessageLines, lines...) - r.repaint() - r.mtx.Unlock() - } - } -} - -// HIGH-PERFORMANCE RENDERING STUFF - -type syncScrollAreaMsg struct { - lines []string - topBoundary int - bottomBoundary int -} - -// SyncScrollArea performs a paint of the entire region designated to be the -// scrollable area. This is required to initialize the scrollable region and -// should also be called on resize (WindowSizeMsg). -// -// For high-performance, scroll-based rendering only. -// -// Deprecated: This option will be removed in a future version of this package. -func SyncScrollArea(lines []string, topBoundary int, bottomBoundary int) Cmd { - return func() Msg { - return syncScrollAreaMsg{ - lines: lines, - topBoundary: topBoundary, - bottomBoundary: bottomBoundary, - } - } -} - -type clearScrollAreaMsg struct{} - -// ClearScrollArea deallocates the scrollable region and returns the control of -// those lines to the main rendering routine. -// -// For high-performance, scroll-based rendering only. -// -// Deprecated: This option will be removed in a future version of this package. -func ClearScrollArea() Msg { - return clearScrollAreaMsg{} -} - -type scrollUpMsg struct { - lines []string - topBoundary int - bottomBoundary int -} - -// ScrollUp adds lines to the top of the scrollable region, pushing existing -// lines below down. Lines that are pushed out the scrollable region disappear -// from view. -// -// For high-performance, scroll-based rendering only. -// -// Deprecated: This option will be removed in a future version of this package. -func ScrollUp(newLines []string, topBoundary, bottomBoundary int) Cmd { - return func() Msg { - return scrollUpMsg{ - lines: newLines, - topBoundary: topBoundary, - bottomBoundary: bottomBoundary, - } - } -} - -type scrollDownMsg struct { - lines []string - topBoundary int - bottomBoundary int -} - -// ScrollDown adds lines to the bottom of the scrollable region, pushing -// existing lines above up. Lines that are pushed out of the scrollable region -// disappear from view. -// -// For high-performance, scroll-based rendering only. -// -// Deprecated: This option will be removed in a future version of this package. -func ScrollDown(newLines []string, topBoundary, bottomBoundary int) Cmd { - return func() Msg { - return scrollDownMsg{ - lines: newLines, - topBoundary: topBoundary, - bottomBoundary: bottomBoundary, - } - } -} - -type printLineMessage struct { - messageBody string -} - -// Println prints above the Program. This output is unmanaged by the program and -// will persist across renders by the Program. -// -// Unlike fmt.Println (but similar to log.Println) the message will be print on -// its own line. -// -// If the altscreen is active no output will be printed. -func Println(args ...interface{}) Cmd { - return func() Msg { - return printLineMessage{ - messageBody: fmt.Sprint(args...), - } - } -} - -// Printf prints above the Program. It takes a format template followed by -// values similar to fmt.Printf. This output is unmanaged by the program and -// will persist across renders by the Program. -// -// Unlike fmt.Printf (but similar to log.Printf) the message will be print on -// its own line. -// -// If the altscreen is active no output will be printed. -func Printf(template string, args ...interface{}) Cmd { - return func() Msg { - return printLineMessage{ - messageBody: fmt.Sprintf(template, args...), - } - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/tea.go b/vendor/github.com/charmbracelet/bubbletea/tea.go deleted file mode 100644 index db84343..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/tea.go +++ /dev/null @@ -1,941 +0,0 @@ -// Package tea provides a framework for building rich terminal user interfaces -// based on the paradigms of The Elm Architecture. It's well-suited for simple -// and complex terminal applications, either inline, full-window, or a mix of -// both. It's been battle-tested in several large projects and is -// production-ready. -// -// A tutorial is available at https://github.com/charmbracelet/bubbletea/tree/master/tutorials -// -// Example programs can be found at https://github.com/charmbracelet/bubbletea/tree/master/examples -package tea - -import ( - "context" - "errors" - "fmt" - "io" - "os" - "os/signal" - "runtime" - "runtime/debug" - "sync" - "sync/atomic" - "syscall" - - "github.com/charmbracelet/x/term" - "github.com/muesli/cancelreader" -) - -// ErrProgramPanic is returned by [Program.Run] when the program recovers from a panic. -var ErrProgramPanic = errors.New("program experienced a panic") - -// ErrProgramKilled is returned by [Program.Run] when the program gets killed. -var ErrProgramKilled = errors.New("program was killed") - -// ErrInterrupted is returned by [Program.Run] when the program get a SIGINT -// signal, or when it receives a [InterruptMsg]. -var ErrInterrupted = errors.New("program was interrupted") - -// Msg contain data from the result of a IO operation. Msgs trigger the update -// function and, henceforth, the UI. -type Msg interface{} - -// Model contains the program's state as well as its core functions. -type Model interface { - // Init is the first function that will be called. It returns an optional - // initial command. To not perform an initial command return nil. - Init() Cmd - - // Update is called when a message is received. Use it to inspect messages - // and, in response, update the model and/or send a command. - Update(Msg) (Model, Cmd) - - // View renders the program's UI, which is just a string. The view is - // rendered after every Update. - View() string -} - -// Cmd is an IO operation that returns a message when it's complete. If it's -// nil it's considered a no-op. Use it for things like HTTP requests, timers, -// saving and loading from disk, and so on. -// -// Note that there's almost never a reason to use a command to send a message -// to another part of your program. That can almost always be done in the -// update function. -type Cmd func() Msg - -type inputType int - -const ( - defaultInput inputType = iota - ttyInput - customInput -) - -// String implements the stringer interface for [inputType]. It is intended to -// be used in testing. -func (i inputType) String() string { - return [...]string{ - "default input", - "tty input", - "custom input", - }[i] -} - -// Options to customize the program during its initialization. These are -// generally set with ProgramOptions. -// -// The options here are treated as bits. -type startupOptions int16 - -func (s startupOptions) has(option startupOptions) bool { - return s&option != 0 -} - -const ( - withAltScreen startupOptions = 1 << iota - withMouseCellMotion - withMouseAllMotion - withANSICompressor - withoutSignalHandler - // Catching panics is incredibly useful for restoring the terminal to a - // usable state after a panic occurs. When this is set, Bubble Tea will - // recover from panics, print the stack trace, and disable raw mode. This - // feature is on by default. - withoutCatchPanics - withoutBracketedPaste - withReportFocus -) - -// channelHandlers manages the series of channels returned by various processes. -// It allows us to wait for those processes to terminate before exiting the -// program. -type channelHandlers []chan struct{} - -// Adds a channel to the list of handlers. We wait for all handlers to terminate -// gracefully on shutdown. -func (h *channelHandlers) add(ch chan struct{}) { - *h = append(*h, ch) -} - -// shutdown waits for all handlers to terminate. -func (h channelHandlers) shutdown() { - var wg sync.WaitGroup - for _, ch := range h { - wg.Add(1) - go func(ch chan struct{}) { - <-ch - wg.Done() - }(ch) - } - wg.Wait() -} - -// Program is a terminal user interface. -type Program struct { - initialModel Model - - // handlers is a list of channels that need to be waited on before the - // program can exit. - handlers channelHandlers - - // Configuration options that will set as the program is initializing, - // treated as bits. These options can be set via various ProgramOptions. - startupOptions startupOptions - - // startupTitle is the title that will be set on the terminal when the - // program starts. - startupTitle string - - inputType inputType - - // externalCtx is a context that was passed in via WithContext, otherwise defaulting - // to ctx.Background() (in case it was not), the internal context is derived from it. - externalCtx context.Context - - // ctx is the programs's internal context for signalling internal teardown. - // It is built and derived from the externalCtx in NewProgram(). - ctx context.Context - cancel context.CancelFunc - - msgs chan Msg - errs chan error - finished chan struct{} - - // where to send output, this will usually be os.Stdout. - output io.Writer - // ttyOutput is null if output is not a TTY. - ttyOutput term.File - previousOutputState *term.State - renderer renderer - - // the environment variables for the program, defaults to os.Environ(). - environ []string - - // where to read inputs from, this will usually be os.Stdin. - input io.Reader - // ttyInput is null if input is not a TTY. - ttyInput term.File - previousTtyInputState *term.State - cancelReader cancelreader.CancelReader - readLoopDone chan struct{} - - // was the altscreen active before releasing the terminal? - altScreenWasActive bool - ignoreSignals uint32 - - bpWasActive bool // was the bracketed paste mode active before releasing the terminal? - reportFocus bool // was focus reporting active before releasing the terminal? - - filter func(Model, Msg) Msg - - // fps is the frames per second we should set on the renderer, if - // applicable, - fps int - - // mouseMode is true if the program should enable mouse mode on Windows. - mouseMode bool -} - -// Quit is a special command that tells the Bubble Tea program to exit. -func Quit() Msg { - return QuitMsg{} -} - -// QuitMsg signals that the program should quit. You can send a [QuitMsg] with -// [Quit]. -type QuitMsg struct{} - -// Suspend is a special command that tells the Bubble Tea program to suspend. -func Suspend() Msg { - return SuspendMsg{} -} - -// SuspendMsg signals the program should suspend. -// This usually happens when ctrl+z is pressed on common programs, but since -// bubbletea puts the terminal in raw mode, we need to handle it in a -// per-program basis. -// -// You can send this message with [Suspend()]. -type SuspendMsg struct{} - -// ResumeMsg can be listen to do something once a program is resumed back -// from a suspend state. -type ResumeMsg struct{} - -// InterruptMsg signals the program should suspend. -// This usually happens when ctrl+c is pressed on common programs, but since -// bubbletea puts the terminal in raw mode, we need to handle it in a -// per-program basis. -// -// You can send this message with [Interrupt()]. -type InterruptMsg struct{} - -// Interrupt is a special command that tells the Bubble Tea program to -// interrupt. -func Interrupt() Msg { - return InterruptMsg{} -} - -// NewProgram creates a new Program. -func NewProgram(model Model, opts ...ProgramOption) *Program { - p := &Program{ - initialModel: model, - msgs: make(chan Msg), - } - - // Apply all options to the program. - for _, opt := range opts { - opt(p) - } - - // A context can be provided with a ProgramOption, but if none was provided - // we'll use the default background context. - if p.externalCtx == nil { - p.externalCtx = context.Background() - } - // Initialize context and teardown channel. - p.ctx, p.cancel = context.WithCancel(p.externalCtx) - - // if no output was set, set it to stdout - if p.output == nil { - p.output = os.Stdout - } - - // if no environment was set, set it to os.Environ() - if p.environ == nil { - p.environ = os.Environ() - } - - return p -} - -func (p *Program) handleSignals() chan struct{} { - ch := make(chan struct{}) - - // Listen for SIGINT and SIGTERM. - // - // In most cases ^C will not send an interrupt because the terminal will be - // in raw mode and ^C will be captured as a keystroke and sent along to - // Program.Update as a KeyMsg. When input is not a TTY, however, ^C will be - // caught here. - // - // SIGTERM is sent by unix utilities (like kill) to terminate a process. - go func() { - sig := make(chan os.Signal, 1) - signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM) - defer func() { - signal.Stop(sig) - close(ch) - }() - - for { - select { - case <-p.ctx.Done(): - return - - case s := <-sig: - if atomic.LoadUint32(&p.ignoreSignals) == 0 { - switch s { - case syscall.SIGINT: - p.msgs <- InterruptMsg{} - default: - p.msgs <- QuitMsg{} - } - return - } - } - } - }() - - return ch -} - -// handleResize handles terminal resize events. -func (p *Program) handleResize() chan struct{} { - ch := make(chan struct{}) - - if p.ttyOutput != nil { - // Get the initial terminal size and send it to the program. - go p.checkResize() - - // Listen for window resizes. - go p.listenForResize(ch) - } else { - close(ch) - } - - return ch -} - -// handleCommands runs commands in a goroutine and sends the result to the -// program's message channel. -func (p *Program) handleCommands(cmds chan Cmd) chan struct{} { - ch := make(chan struct{}) - - go func() { - defer close(ch) - - for { - select { - case <-p.ctx.Done(): - return - - case cmd := <-cmds: - if cmd == nil { - continue - } - - // Don't wait on these goroutines, otherwise the shutdown - // latency would get too large as a Cmd can run for some time - // (e.g. tick commands that sleep for half a second). It's not - // possible to cancel them so we'll have to leak the goroutine - // until Cmd returns. - go func() { - // Recover from panics. - if !p.startupOptions.has(withoutCatchPanics) { - defer func() { - if r := recover(); r != nil { - p.recoverFromGoPanic(r) - } - }() - } - - msg := cmd() // this can be long. - p.Send(msg) - }() - } - } - }() - - return ch -} - -func (p *Program) disableMouse() { - p.renderer.disableMouseCellMotion() - p.renderer.disableMouseAllMotion() - p.renderer.disableMouseSGRMode() -} - -// eventLoop is the central message loop. It receives and handles the default -// Bubble Tea messages, update the model and triggers redraws. -func (p *Program) eventLoop(model Model, cmds chan Cmd) (Model, error) { - for { - select { - case <-p.ctx.Done(): - return model, nil - - case err := <-p.errs: - return model, err - - case msg := <-p.msgs: - // Filter messages. - if p.filter != nil { - msg = p.filter(model, msg) - } - if msg == nil { - continue - } - - // Handle special internal messages. - switch msg := msg.(type) { - case QuitMsg: - return model, nil - - case InterruptMsg: - return model, ErrInterrupted - - case SuspendMsg: - if suspendSupported { - p.suspend() - } - - case clearScreenMsg: - p.renderer.clearScreen() - - case enterAltScreenMsg: - p.renderer.enterAltScreen() - - case exitAltScreenMsg: - p.renderer.exitAltScreen() - - case enableMouseCellMotionMsg, enableMouseAllMotionMsg: - switch msg.(type) { - case enableMouseCellMotionMsg: - p.renderer.enableMouseCellMotion() - case enableMouseAllMotionMsg: - p.renderer.enableMouseAllMotion() - } - // mouse mode (1006) is a no-op if the terminal doesn't support it. - p.renderer.enableMouseSGRMode() - - // XXX: This is used to enable mouse mode on Windows. We need - // to reinitialize the cancel reader to get the mouse events to - // work. - if runtime.GOOS == "windows" && !p.mouseMode { - p.mouseMode = true - p.initCancelReader(true) //nolint:errcheck,gosec - } - - case disableMouseMsg: - p.disableMouse() - - // XXX: On Windows, mouse mode is enabled on the input reader - // level. We need to instruct the input reader to stop reading - // mouse events. - if runtime.GOOS == "windows" && p.mouseMode { - p.mouseMode = false - p.initCancelReader(true) //nolint:errcheck,gosec - } - - case showCursorMsg: - p.renderer.showCursor() - - case hideCursorMsg: - p.renderer.hideCursor() - - case enableBracketedPasteMsg: - p.renderer.enableBracketedPaste() - - case disableBracketedPasteMsg: - p.renderer.disableBracketedPaste() - - case enableReportFocusMsg: - p.renderer.enableReportFocus() - - case disableReportFocusMsg: - p.renderer.disableReportFocus() - - case execMsg: - // NB: this blocks. - p.exec(msg.cmd, msg.fn) - - case BatchMsg: - go p.execBatchMsg(msg) - continue - - case sequenceMsg: - go p.execSequenceMsg(msg) - continue - - case setWindowTitleMsg: - p.SetWindowTitle(string(msg)) - - case windowSizeMsg: - go p.checkResize() - } - - // Process internal messages for the renderer. - if r, ok := p.renderer.(*standardRenderer); ok { - r.handleMessages(msg) - } - - var cmd Cmd - model, cmd = model.Update(msg) // run update - - select { - case <-p.ctx.Done(): - return model, nil - case cmds <- cmd: // process command (if any) - } - - p.renderer.write(model.View()) // send view to renderer - } - } -} - -func (p *Program) execSequenceMsg(msg sequenceMsg) { - if !p.startupOptions.has(withoutCatchPanics) { - defer func() { - if r := recover(); r != nil { - p.recoverFromGoPanic(r) - } - }() - } - - // Execute commands one at a time, in order. - for _, cmd := range msg { - if cmd == nil { - continue - } - msg := cmd() - switch msg := msg.(type) { - case BatchMsg: - p.execBatchMsg(msg) - case sequenceMsg: - p.execSequenceMsg(msg) - default: - p.Send(msg) - } - } -} - -func (p *Program) execBatchMsg(msg BatchMsg) { - if !p.startupOptions.has(withoutCatchPanics) { - defer func() { - if r := recover(); r != nil { - p.recoverFromGoPanic(r) - } - }() - } - - // Execute commands one at a time. - var wg sync.WaitGroup - for _, cmd := range msg { - if cmd == nil { - continue - } - wg.Add(1) - go func() { - defer wg.Done() - - if !p.startupOptions.has(withoutCatchPanics) { - defer func() { - if r := recover(); r != nil { - p.recoverFromGoPanic(r) - } - }() - } - - msg := cmd() - switch msg := msg.(type) { - case BatchMsg: - p.execBatchMsg(msg) - case sequenceMsg: - p.execSequenceMsg(msg) - default: - p.Send(msg) - } - }() - } - - wg.Wait() // wait for all commands from batch msg to finish -} - -// Run initializes the program and runs its event loops, blocking until it gets -// terminated by either [Program.Quit], [Program.Kill], or its signal handler. -// Returns the final model. -func (p *Program) Run() (returnModel Model, returnErr error) { - p.handlers = channelHandlers{} - cmds := make(chan Cmd) - p.errs = make(chan error, 1) - - p.finished = make(chan struct{}) - defer func() { - close(p.finished) - }() - - defer p.cancel() - - switch p.inputType { - case defaultInput: - p.input = os.Stdin - - // The user has not set a custom input, so we need to check whether or - // not standard input is a terminal. If it's not, we open a new TTY for - // input. This will allow things to "just work" in cases where data was - // piped in or redirected to the application. - // - // To disable input entirely pass nil to the [WithInput] program option. - f, isFile := p.input.(term.File) - if !isFile { - break - } - if term.IsTerminal(f.Fd()) { - break - } - - f, err := openInputTTY() - if err != nil { - return p.initialModel, err - } - defer f.Close() //nolint:errcheck - p.input = f - - case ttyInput: - // Open a new TTY, by request - f, err := openInputTTY() - if err != nil { - return p.initialModel, err - } - defer f.Close() //nolint:errcheck - p.input = f - - case customInput: - // (There is nothing extra to do.) - } - - // Handle signals. - if !p.startupOptions.has(withoutSignalHandler) { - p.handlers.add(p.handleSignals()) - } - - // Recover from panics. - if !p.startupOptions.has(withoutCatchPanics) { - defer func() { - if r := recover(); r != nil { - returnErr = fmt.Errorf("%w: %w", ErrProgramKilled, ErrProgramPanic) - p.recoverFromPanic(r) - } - }() - } - - // If no renderer is set use the standard one. - if p.renderer == nil { - p.renderer = newRenderer(p.output, p.startupOptions.has(withANSICompressor), p.fps) - } - - // Check if output is a TTY before entering raw mode, hiding the cursor and - // so on. - if err := p.initTerminal(); err != nil { - return p.initialModel, err - } - - // Honor program startup options. - if p.startupTitle != "" { - p.renderer.setWindowTitle(p.startupTitle) - } - if p.startupOptions&withAltScreen != 0 { - p.renderer.enterAltScreen() - } - if p.startupOptions&withoutBracketedPaste == 0 { - p.renderer.enableBracketedPaste() - } - if p.startupOptions&withMouseCellMotion != 0 { - p.renderer.enableMouseCellMotion() - p.renderer.enableMouseSGRMode() - } else if p.startupOptions&withMouseAllMotion != 0 { - p.renderer.enableMouseAllMotion() - p.renderer.enableMouseSGRMode() - } - - // XXX: Should we enable mouse mode on Windows? - // This needs to happen before initializing the cancel and input reader. - p.mouseMode = p.startupOptions&withMouseCellMotion != 0 || p.startupOptions&withMouseAllMotion != 0 - - if p.startupOptions&withReportFocus != 0 { - p.renderer.enableReportFocus() - } - - // Start the renderer. - p.renderer.start() - - // Initialize the program. - model := p.initialModel - if initCmd := model.Init(); initCmd != nil { - ch := make(chan struct{}) - p.handlers.add(ch) - - go func() { - defer close(ch) - - select { - case cmds <- initCmd: - case <-p.ctx.Done(): - } - }() - } - - // Render the initial view. - p.renderer.write(model.View()) - - // Subscribe to user input. - if p.input != nil { - if err := p.initCancelReader(false); err != nil { - return model, err - } - } - - // Handle resize events. - p.handlers.add(p.handleResize()) - - // Process commands. - p.handlers.add(p.handleCommands(cmds)) - - // Run event loop, handle updates and draw. - model, err := p.eventLoop(model, cmds) - - if err == nil && len(p.errs) > 0 { - err = <-p.errs // Drain a leftover error in case eventLoop crashed - } - - killed := p.externalCtx.Err() != nil || p.ctx.Err() != nil || err != nil - if killed { - if err == nil && p.externalCtx.Err() != nil { - // Return also as context error the cancellation of an external context. - // This is the context the user knows about and should be able to act on. - err = fmt.Errorf("%w: %w", ErrProgramKilled, p.externalCtx.Err()) - } else if err == nil && p.ctx.Err() != nil { - // Return only that the program was killed (not the internal mechanism). - // The user does not know or need to care about the internal program context. - err = ErrProgramKilled - } else { - // Return that the program was killed and also the error that caused it. - err = fmt.Errorf("%w: %w", ErrProgramKilled, err) - } - } else { - // Graceful shutdown of the program (not killed): - // Ensure we rendered the final state of the model. - p.renderer.write(model.View()) - } - - // Restore terminal state. - p.shutdown(killed) - - return model, err -} - -// StartReturningModel initializes the program and runs its event loops, -// blocking until it gets terminated by either [Program.Quit], [Program.Kill], -// or its signal handler. Returns the final model. -// -// Deprecated: please use [Program.Run] instead. -func (p *Program) StartReturningModel() (Model, error) { - return p.Run() -} - -// Start initializes the program and runs its event loops, blocking until it -// gets terminated by either [Program.Quit], [Program.Kill], or its signal -// handler. -// -// Deprecated: please use [Program.Run] instead. -func (p *Program) Start() error { - _, err := p.Run() - return err -} - -// Send sends a message to the main update function, effectively allowing -// messages to be injected from outside the program for interoperability -// purposes. -// -// If the program hasn't started yet this will be a blocking operation. -// If the program has already been terminated this will be a no-op, so it's safe -// to send messages after the program has exited. -func (p *Program) Send(msg Msg) { - select { - case <-p.ctx.Done(): - case p.msgs <- msg: - } -} - -// Quit is a convenience function for quitting Bubble Tea programs. Use it -// when you need to shut down a Bubble Tea program from the outside. -// -// If you wish to quit from within a Bubble Tea program use the Quit command. -// -// If the program is not running this will be a no-op, so it's safe to call -// if the program is unstarted or has already exited. -func (p *Program) Quit() { - p.Send(Quit()) -} - -// Kill signals the program to stop immediately and restore the former terminal state. -// The final render that you would normally see when quitting will be skipped. -// [program.Run] returns a [ErrProgramKilled] error. -func (p *Program) Kill() { - p.cancel() -} - -// Wait waits/blocks until the underlying Program finished shutting down. -func (p *Program) Wait() { - <-p.finished -} - -// shutdown performs operations to free up resources and restore the terminal -// to its original state. It is called once at the end of the program's lifetime. -// -// This method should not be called to signal the program to be killed/shutdown. -// Doing so can lead to race conditions with the eventual call at the program's end. -// As alternatives, the [Quit] or [Kill] convenience methods should be used instead. -func (p *Program) shutdown(kill bool) { - p.cancel() - - // Wait for all handlers to finish. - p.handlers.shutdown() - - // Check if the cancel reader has been setup before waiting and closing. - if p.cancelReader != nil { - // Wait for input loop to finish. - if p.cancelReader.Cancel() { - if !kill { - p.waitForReadLoop() - } - } - _ = p.cancelReader.Close() - } - - if p.renderer != nil { - if kill { - p.renderer.kill() - } else { - p.renderer.stop() - } - } - - _ = p.restoreTerminalState() -} - -// recoverFromPanic recovers from a panic, prints the stack trace, and restores -// the terminal to a usable state. -func (p *Program) recoverFromPanic(r interface{}) { - select { - case p.errs <- ErrProgramPanic: - default: - } - p.shutdown(true) // Ok to call here, p.Run() cannot do it anymore. - fmt.Printf("Caught panic:\n\n%s\n\nRestoring terminal...\n\n", r) - debug.PrintStack() -} - -// recoverFromGoPanic recovers from a goroutine panic, prints a stack trace and -// signals for the program to be killed and terminal restored to a usable state. -func (p *Program) recoverFromGoPanic(r interface{}) { - select { - case p.errs <- ErrProgramPanic: - default: - } - p.cancel() - fmt.Printf("Caught goroutine panic:\n\n%s\n\nRestoring terminal...\n\n", r) - debug.PrintStack() -} - -// ReleaseTerminal restores the original terminal state and cancels the input -// reader. You can return control to the Program with RestoreTerminal. -func (p *Program) ReleaseTerminal() error { - atomic.StoreUint32(&p.ignoreSignals, 1) - if p.cancelReader != nil { - p.cancelReader.Cancel() - } - - p.waitForReadLoop() - - if p.renderer != nil { - p.renderer.stop() - p.altScreenWasActive = p.renderer.altScreen() - p.bpWasActive = p.renderer.bracketedPasteActive() - p.reportFocus = p.renderer.reportFocus() - } - - return p.restoreTerminalState() -} - -// RestoreTerminal reinitializes the Program's input reader, restores the -// terminal to the former state when the program was running, and repaints. -// Use it to reinitialize a Program after running ReleaseTerminal. -func (p *Program) RestoreTerminal() error { - atomic.StoreUint32(&p.ignoreSignals, 0) - - if err := p.initTerminal(); err != nil { - return err - } - if err := p.initCancelReader(false); err != nil { - return err - } - if p.altScreenWasActive { - p.renderer.enterAltScreen() - } else { - // entering alt screen already causes a repaint. - go p.Send(repaintMsg{}) - } - if p.renderer != nil { - p.renderer.start() - } - if p.bpWasActive { - p.renderer.enableBracketedPaste() - } - if p.reportFocus { - p.renderer.enableReportFocus() - } - - // If the output is a terminal, it may have been resized while another - // process was at the foreground, in which case we may not have received - // SIGWINCH. Detect any size change now and propagate the new size as - // needed. - go p.checkResize() - - return nil -} - -// Println prints above the Program. This output is unmanaged by the program -// and will persist across renders by the Program. -// -// If the altscreen is active no output will be printed. -func (p *Program) Println(args ...interface{}) { - p.msgs <- printLineMessage{ - messageBody: fmt.Sprint(args...), - } -} - -// Printf prints above the Program. It takes a format template followed by -// values similar to fmt.Printf. This output is unmanaged by the program and -// will persist across renders by the Program. -// -// Unlike fmt.Printf (but similar to log.Printf) the message will be print on -// its own line. -// -// If the altscreen is active no output will be printed. -func (p *Program) Printf(template string, args ...interface{}) { - p.msgs <- printLineMessage{ - messageBody: fmt.Sprintf(template, args...), - } -} diff --git a/vendor/github.com/charmbracelet/bubbletea/tea_init.go b/vendor/github.com/charmbracelet/bubbletea/tea_init.go deleted file mode 100644 index 19b6cc3..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/tea_init.go +++ /dev/null @@ -1,22 +0,0 @@ -package tea - -import ( - "github.com/charmbracelet/lipgloss" -) - -func init() { - // XXX: This is a workaround to make assure that Lip Gloss and Termenv - // query the terminal before any Bubble Tea Program runs and acquires the - // terminal. Without this, Programs that use Lip Gloss/Termenv might hang - // while waiting for a a [termenv.OSCTimeout] while querying the terminal - // for its background/foreground colors. - // - // This happens because Bubble Tea acquires the terminal before termenv - // reads any responses. - // - // Note that this will only affect programs running on the default IO i.e. - // [os.Stdout] and [os.Stdin]. - // - // This workaround will be removed in v2. - _ = lipgloss.HasDarkBackground() -} diff --git a/vendor/github.com/charmbracelet/bubbletea/tty.go b/vendor/github.com/charmbracelet/bubbletea/tty.go deleted file mode 100644 index 6812bfc..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/tty.go +++ /dev/null @@ -1,141 +0,0 @@ -package tea - -import ( - "errors" - "fmt" - "io" - "time" - - "github.com/charmbracelet/x/term" - "github.com/muesli/cancelreader" -) - -func (p *Program) suspend() { - if err := p.ReleaseTerminal(); err != nil { - // If we can't release input, abort. - return - } - - suspendProcess() - - _ = p.RestoreTerminal() - go p.Send(ResumeMsg{}) -} - -func (p *Program) initTerminal() error { - if _, ok := p.renderer.(*nilRenderer); ok { - // No need to initialize the terminal if we're not rendering - return nil - } - - if err := p.initInput(); err != nil { - return err - } - - p.renderer.hideCursor() - return nil -} - -// restoreTerminalState restores the terminal to the state prior to running the -// Bubble Tea program. -func (p *Program) restoreTerminalState() error { - if p.renderer != nil { - p.renderer.disableBracketedPaste() - p.renderer.showCursor() - p.disableMouse() - - if p.renderer.reportFocus() { - p.renderer.disableReportFocus() - } - - if p.renderer.altScreen() { - p.renderer.exitAltScreen() - - // give the terminal a moment to catch up - time.Sleep(time.Millisecond * 10) //nolint:mnd - } - } - - return p.restoreInput() -} - -// restoreInput restores the tty input to its original state. -func (p *Program) restoreInput() error { - if p.ttyInput != nil && p.previousTtyInputState != nil { - if err := term.Restore(p.ttyInput.Fd(), p.previousTtyInputState); err != nil { - return fmt.Errorf("error restoring console: %w", err) - } - } - if p.ttyOutput != nil && p.previousOutputState != nil { - if err := term.Restore(p.ttyOutput.Fd(), p.previousOutputState); err != nil { - return fmt.Errorf("error restoring console: %w", err) - } - } - return nil -} - -// initCancelReader (re)commences reading inputs. -func (p *Program) initCancelReader(cancel bool) error { - if cancel && p.cancelReader != nil { - p.cancelReader.Cancel() - p.waitForReadLoop() - } - - var err error - p.cancelReader, err = newInputReader(p.input, p.mouseMode) - if err != nil { - return fmt.Errorf("error creating cancelreader: %w", err) - } - - p.readLoopDone = make(chan struct{}) - go p.readLoop() - - return nil -} - -func (p *Program) readLoop() { - defer close(p.readLoopDone) - - err := readInputs(p.ctx, p.msgs, p.cancelReader) - if !errors.Is(err, io.EOF) && !errors.Is(err, cancelreader.ErrCanceled) { - select { - case <-p.ctx.Done(): - case p.errs <- err: - } - } -} - -// waitForReadLoop waits for the cancelReader to finish its read loop. -func (p *Program) waitForReadLoop() { - select { - case <-p.readLoopDone: - case <-time.After(500 * time.Millisecond): //nolint:mnd - // The read loop hangs, which means the input - // cancelReader's cancel function has returned true even - // though it was not able to cancel the read. - } -} - -// checkResize detects the current size of the output and informs the program -// via a WindowSizeMsg. -func (p *Program) checkResize() { - if p.ttyOutput == nil { - // can't query window size - return - } - - w, h, err := term.GetSize(p.ttyOutput.Fd()) - if err != nil { - select { - case <-p.ctx.Done(): - case p.errs <- err: - } - - return - } - - p.Send(WindowSizeMsg{ - Width: w, - Height: h, - }) -} diff --git a/vendor/github.com/charmbracelet/bubbletea/tty_unix.go b/vendor/github.com/charmbracelet/bubbletea/tty_unix.go deleted file mode 100644 index 5cbb4fe..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/tty_unix.go +++ /dev/null @@ -1,49 +0,0 @@ -//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || aix || zos -// +build darwin dragonfly freebsd linux netbsd openbsd solaris aix zos - -package tea - -import ( - "fmt" - "os" - "os/signal" - "syscall" - - "github.com/charmbracelet/x/term" -) - -func (p *Program) initInput() (err error) { - // Check if input is a terminal - if f, ok := p.input.(term.File); ok && term.IsTerminal(f.Fd()) { - p.ttyInput = f - p.previousTtyInputState, err = term.MakeRaw(p.ttyInput.Fd()) - if err != nil { - return fmt.Errorf("error entering raw mode: %w", err) - } - } - - if f, ok := p.output.(term.File); ok && term.IsTerminal(f.Fd()) { - p.ttyOutput = f - } - - return nil -} - -func openInputTTY() (*os.File, error) { - f, err := os.Open("/dev/tty") - if err != nil { - return nil, fmt.Errorf("could not open a new TTY: %w", err) - } - return f, nil -} - -const suspendSupported = true - -// Send SIGTSTP to the entire process group. -func suspendProcess() { - c := make(chan os.Signal, 1) - signal.Notify(c, syscall.SIGCONT) - _ = syscall.Kill(0, syscall.SIGTSTP) - // blocks until a CONT happens... - <-c -} diff --git a/vendor/github.com/charmbracelet/bubbletea/tty_windows.go b/vendor/github.com/charmbracelet/bubbletea/tty_windows.go deleted file mode 100644 index 211151f..0000000 --- a/vendor/github.com/charmbracelet/bubbletea/tty_windows.go +++ /dev/null @@ -1,68 +0,0 @@ -//go:build windows -// +build windows - -package tea - -import ( - "fmt" - "os" - - "github.com/charmbracelet/x/term" - "golang.org/x/sys/windows" -) - -func (p *Program) initInput() (err error) { - // Save stdin state and enable VT input - // We also need to enable VT - // input here. - if f, ok := p.input.(term.File); ok && term.IsTerminal(f.Fd()) { - p.ttyInput = f - p.previousTtyInputState, err = term.MakeRaw(p.ttyInput.Fd()) - if err != nil { - return fmt.Errorf("error making raw: %w", err) - } - - // Enable VT input - var mode uint32 - if err := windows.GetConsoleMode(windows.Handle(p.ttyInput.Fd()), &mode); err != nil { - return fmt.Errorf("error getting console mode: %w", err) - } - - if err := windows.SetConsoleMode(windows.Handle(p.ttyInput.Fd()), mode|windows.ENABLE_VIRTUAL_TERMINAL_INPUT); err != nil { - return fmt.Errorf("error setting console mode: %w", err) - } - } - - // Save output screen buffer state and enable VT processing. - if f, ok := p.output.(term.File); ok && term.IsTerminal(f.Fd()) { - p.ttyOutput = f - p.previousOutputState, err = term.GetState(f.Fd()) - if err != nil { - return fmt.Errorf("error getting state: %w", err) - } - - var mode uint32 - if err := windows.GetConsoleMode(windows.Handle(p.ttyOutput.Fd()), &mode); err != nil { - return fmt.Errorf("error getting console mode: %w", err) - } - - if err := windows.SetConsoleMode(windows.Handle(p.ttyOutput.Fd()), mode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING); err != nil { - return fmt.Errorf("error setting console mode: %w", err) - } - } - - return nil -} - -// Open the Windows equivalent of a TTY. -func openInputTTY() (*os.File, error) { - f, err := os.OpenFile("CONIN$", os.O_RDWR, 0o644) //nolint:gosec - if err != nil { - return nil, fmt.Errorf("error opening file: %w", err) - } - return f, nil -} - -const suspendSupported = false - -func suspendProcess() {} diff --git a/vendor/github.com/charmbracelet/colorprofile/.golangci-soft.yml b/vendor/github.com/charmbracelet/colorprofile/.golangci-soft.yml deleted file mode 100644 index d325d4f..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/.golangci-soft.yml +++ /dev/null @@ -1,40 +0,0 @@ -run: - tests: false - issues-exit-code: 0 - -issues: - include: - - EXC0001 - - EXC0005 - - EXC0011 - - EXC0012 - - EXC0013 - - max-issues-per-linter: 0 - max-same-issues: 0 - -linters: - enable: - - exhaustive - - goconst - - godot - - godox - - mnd - - gomoddirectives - - goprintffuncname - - misspell - - nakedret - - nestif - - noctx - - nolintlint - - prealloc - - wrapcheck - - # disable default linters, they are already enabled in .golangci.yml - disable: - - errcheck - - gosimple - - govet - - ineffassign - - staticcheck - - unused diff --git a/vendor/github.com/charmbracelet/colorprofile/.golangci.yml b/vendor/github.com/charmbracelet/colorprofile/.golangci.yml deleted file mode 100644 index d6789e0..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/.golangci.yml +++ /dev/null @@ -1,28 +0,0 @@ -run: - tests: false - -issues: - include: - - EXC0001 - - EXC0005 - - EXC0011 - - EXC0012 - - EXC0013 - - max-issues-per-linter: 0 - max-same-issues: 0 - -linters: - enable: - - bodyclose - - gofumpt - - goimports - - gosec - - nilerr - - revive - - rowserrcheck - - sqlclosecheck - - tparallel - - unconvert - - unparam - - whitespace diff --git a/vendor/github.com/charmbracelet/colorprofile/.goreleaser.yml b/vendor/github.com/charmbracelet/colorprofile/.goreleaser.yml deleted file mode 100644 index 40d9f29..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/.goreleaser.yml +++ /dev/null @@ -1,6 +0,0 @@ -includes: - - from_url: - url: charmbracelet/meta/main/goreleaser-lib.yaml - -# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json - diff --git a/vendor/github.com/charmbracelet/colorprofile/LICENSE b/vendor/github.com/charmbracelet/colorprofile/LICENSE deleted file mode 100644 index b7974b0..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020-2024 Charmbracelet, Inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/charmbracelet/colorprofile/README.md b/vendor/github.com/charmbracelet/colorprofile/README.md deleted file mode 100644 index c72b2f4..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# Colorprofile - -

- Latest Release - GoDoc - Build Status -

- -A simple, powerful—and at times magical—package for detecting terminal color -profiles and performing color (and CSI) degradation. - -## Detecting the terminal’s color profile - -Detecting the terminal’s color profile is easy. - -```go -import "github.com/charmbracelet/colorprofile" - -// Detect the color profile. If you’re planning on writing to stderr you'd want -// to use os.Stderr instead. -p := colorprofile.Detect(os.Stdout, os.Environ()) - -// Comment on the profile. -fmt.Printf("You know, your colors are quite %s.", func() string { - switch p { - case colorprofile.TrueColor: - return "fancy" - case colorprofile.ANSI256: - return "1990s fancy" - case colorprofile.ANSI: - return "normcore" - case colorprofile.Ascii: - return "ancient" - case colorprofile.NoTTY: - return "naughty!" - } - return "...IDK" // this should never happen -}()) -``` - -## Downsampling colors - -When necessary, colors can be downsampled to a given profile, or manually -downsampled to a specific profile. - -```go -p := colorprofile.Detect(os.Stdout, os.Environ()) -c := color.RGBA{0x6b, 0x50, 0xff, 0xff} // #6b50ff - -// Downsample to the detected profile, when necessary. -convertedColor := p.Convert(c) - -// Or manually convert to a given profile. -ansi256Color := colorprofile.ANSI256.Convert(c) -ansiColor := colorprofile.ANSI.Convert(c) -noColor := colorprofile.Ascii.Convert(c) -noANSI := colorprofile.NoTTY.Convert(c) -``` - -## Automatic downsampling with a Writer - -You can also magically downsample colors in ANSI output, when necessary. If -output is not a TTY ANSI will be dropped entirely. - -```go -myFancyANSI := "\x1b[38;2;107;80;255mCute \x1b[1;3mpuppy!!\x1b[m" - -// Automatically downsample for the terminal at stdout. -w := colorprofile.NewWriter(os.Stdout, os.Environ()) -fmt.Fprintf(w, myFancyANSI) - -// Downsample to 4-bit ANSI. -w.Profile = colorprofile.ANSI -fmt.Fprintf(w, myFancyANSI) - -// Ascii-fy, no colors. -w.Profile = colorprofile.Ascii -fmt.Fprintf(w, myFancyANSI) - -// Strip ANSI altogether. -w.Profile = colorprofile.NoTTY -fmt.Fprintf(w, myFancyANSI) // not as fancy -``` - -## Feedback - -We’d love to hear your thoughts on this project. Feel free to drop us a note! - -- [Twitter](https://twitter.com/charmcli) -- [The Fediverse](https://mastodon.social/@charmcli) -- [Discord](https://charm.sh/chat) - -## License - -[MIT](https://github.com/charmbracelet/bubbletea/raw/master/LICENSE) - ---- - -Part of [Charm](https://charm.sh). - -The Charm logo - -Charm热爱开源 • Charm loves open source • نحنُ نحب المصادر المفتوحة diff --git a/vendor/github.com/charmbracelet/colorprofile/env.go b/vendor/github.com/charmbracelet/colorprofile/env.go deleted file mode 100644 index 8df3d8f..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/env.go +++ /dev/null @@ -1,287 +0,0 @@ -package colorprofile - -import ( - "bytes" - "io" - "os/exec" - "runtime" - "strconv" - "strings" - - "github.com/charmbracelet/x/term" - "github.com/xo/terminfo" -) - -// Detect returns the color profile based on the terminal output, and -// environment variables. This respects NO_COLOR, CLICOLOR, and CLICOLOR_FORCE -// environment variables. -// -// The rules as follows: -// - TERM=dumb is always treated as NoTTY unless CLICOLOR_FORCE=1 is set. -// - If COLORTERM=truecolor, and the profile is not NoTTY, it gest upgraded to TrueColor. -// - Using any 256 color terminal (e.g. TERM=xterm-256color) will set the profile to ANSI256. -// - Using any color terminal (e.g. TERM=xterm-color) will set the profile to ANSI. -// - Using CLICOLOR=1 without TERM defined should be treated as ANSI if the -// output is a terminal. -// - NO_COLOR takes precedence over CLICOLOR/CLICOLOR_FORCE, and will disable -// colors but not text decoration, i.e. bold, italic, faint, etc. -// -// See https://no-color.org/ and https://bixense.com/clicolors/ for more information. -func Detect(output io.Writer, env []string) Profile { - out, ok := output.(term.File) - isatty := ok && term.IsTerminal(out.Fd()) - environ := newEnviron(env) - term := environ.get("TERM") - isDumb := term == "dumb" - envp := colorProfile(isatty, environ) - if envp == TrueColor || envNoColor(environ) { - // We already know we have TrueColor, or NO_COLOR is set. - return envp - } - - if isatty && !isDumb { - tip := Terminfo(term) - tmuxp := tmux(environ) - - // Color profile is the maximum of env, terminfo, and tmux. - return max(envp, max(tip, tmuxp)) - } - - return envp -} - -// Env returns the color profile based on the terminal environment variables. -// This respects NO_COLOR, CLICOLOR, and CLICOLOR_FORCE environment variables. -// -// The rules as follows: -// - TERM=dumb is always treated as NoTTY unless CLICOLOR_FORCE=1 is set. -// - If COLORTERM=truecolor, and the profile is not NoTTY, it gest upgraded to TrueColor. -// - Using any 256 color terminal (e.g. TERM=xterm-256color) will set the profile to ANSI256. -// - Using any color terminal (e.g. TERM=xterm-color) will set the profile to ANSI. -// - Using CLICOLOR=1 without TERM defined should be treated as ANSI if the -// output is a terminal. -// - NO_COLOR takes precedence over CLICOLOR/CLICOLOR_FORCE, and will disable -// colors but not text decoration, i.e. bold, italic, faint, etc. -// -// See https://no-color.org/ and https://bixense.com/clicolors/ for more information. -func Env(env []string) (p Profile) { - return colorProfile(true, newEnviron(env)) -} - -func colorProfile(isatty bool, env environ) (p Profile) { - isDumb := env.get("TERM") == "dumb" - envp := envColorProfile(env) - if !isatty || isDumb { - // Check if the output is a terminal. - // Treat dumb terminals as NoTTY - p = NoTTY - } else { - p = envp - } - - if envNoColor(env) && isatty { - if p > Ascii { - p = Ascii - } - return - } - - if cliColorForced(env) { - if p < ANSI { - p = ANSI - } - if envp > p { - p = envp - } - - return - } - - if cliColor(env) { - if isatty && !isDumb && p < ANSI { - p = ANSI - } - } - - return p -} - -// envNoColor returns true if the environment variables explicitly disable color output -// by setting NO_COLOR (https://no-color.org/). -func envNoColor(env environ) bool { - noColor, _ := strconv.ParseBool(env.get("NO_COLOR")) - return noColor -} - -func cliColor(env environ) bool { - cliColor, _ := strconv.ParseBool(env.get("CLICOLOR")) - return cliColor -} - -func cliColorForced(env environ) bool { - cliColorForce, _ := strconv.ParseBool(env.get("CLICOLOR_FORCE")) - return cliColorForce -} - -func colorTerm(env environ) bool { - colorTerm := strings.ToLower(env.get("COLORTERM")) - return colorTerm == "truecolor" || colorTerm == "24bit" || - colorTerm == "yes" || colorTerm == "true" -} - -// envColorProfile returns infers the color profile from the environment. -func envColorProfile(env environ) (p Profile) { - term, ok := env.lookup("TERM") - if !ok || len(term) == 0 || term == "dumb" { - p = NoTTY - if runtime.GOOS == "windows" { - // Use Windows API to detect color profile. Windows Terminal and - // cmd.exe don't define $TERM. - if wcp, ok := windowsColorProfile(env); ok { - p = wcp - } - } - } else { - p = ANSI - } - - parts := strings.Split(term, "-") - switch parts[0] { - case "alacritty", - "contour", - "foot", - "ghostty", - "kitty", - "rio", - "st", - "wezterm": - return TrueColor - case "xterm": - if len(parts) > 1 { - switch parts[1] { - case "ghostty", "kitty": - // These terminals can be defined as xterm-TERMNAME - return TrueColor - } - } - case "tmux", "screen": - if p < ANSI256 { - p = ANSI256 - } - } - - if isCloudShell, _ := strconv.ParseBool(env.get("GOOGLE_CLOUD_SHELL")); isCloudShell { - return TrueColor - } - - // GNU Screen doesn't support TrueColor - // Tmux doesn't support $COLORTERM - if colorTerm(env) && !strings.HasPrefix(term, "screen") && !strings.HasPrefix(term, "tmux") { - return TrueColor - } - - if strings.HasSuffix(term, "256color") && p < ANSI256 { - p = ANSI256 - } - - return -} - -// Terminfo returns the color profile based on the terminal's terminfo -// database. This relies on the Tc and RGB capabilities to determine if the -// terminal supports TrueColor. -// If term is empty or "dumb", it returns NoTTY. -func Terminfo(term string) (p Profile) { - if len(term) == 0 || term == "dumb" { - return NoTTY - } - - p = ANSI - ti, err := terminfo.Load(term) - if err != nil { - return - } - - extbools := ti.ExtBoolCapsShort() - if _, ok := extbools["Tc"]; ok { - return TrueColor - } - - if _, ok := extbools["RGB"]; ok { - return TrueColor - } - - return -} - -// Tmux returns the color profile based on `tmux info` output. Tmux supports -// overriding the terminal's color capabilities, so this function will return -// the color profile based on the tmux configuration. -func Tmux(env []string) Profile { - return tmux(newEnviron(env)) -} - -// tmux returns the color profile based on the tmux environment variables. -func tmux(env environ) (p Profile) { - if tmux, ok := env.lookup("TMUX"); !ok || len(tmux) == 0 { - // Not in tmux - return NoTTY - } - - // Check if tmux has either Tc or RGB capabilities. Otherwise, return - // ANSI256. - p = ANSI256 - cmd := exec.Command("tmux", "info") - out, err := cmd.Output() - if err != nil { - return - } - - for _, line := range bytes.Split(out, []byte("\n")) { - if (bytes.Contains(line, []byte("Tc")) || bytes.Contains(line, []byte("RGB"))) && - bytes.Contains(line, []byte("true")) { - return TrueColor - } - } - - return -} - -// environ is a map of environment variables. -type environ map[string]string - -// newEnviron returns a new environment map from a slice of environment -// variables. -func newEnviron(environ []string) environ { - m := make(map[string]string, len(environ)) - for _, e := range environ { - parts := strings.SplitN(e, "=", 2) - var value string - if len(parts) == 2 { - value = parts[1] - } - m[parts[0]] = value - } - return m -} - -// lookup returns the value of an environment variable and a boolean indicating -// if it exists. -func (e environ) lookup(key string) (string, bool) { - v, ok := e[key] - return v, ok -} - -// get returns the value of an environment variable and empty string if it -// doesn't exist. -func (e environ) get(key string) string { - v, _ := e.lookup(key) - return v -} - -func max[T ~byte | ~int](a, b T) T { - if a > b { - return a - } - return b -} diff --git a/vendor/github.com/charmbracelet/colorprofile/env_other.go b/vendor/github.com/charmbracelet/colorprofile/env_other.go deleted file mode 100644 index 080994b..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/env_other.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build !windows -// +build !windows - -package colorprofile - -func windowsColorProfile(map[string]string) (Profile, bool) { - return 0, false -} diff --git a/vendor/github.com/charmbracelet/colorprofile/env_windows.go b/vendor/github.com/charmbracelet/colorprofile/env_windows.go deleted file mode 100644 index 3b9c28f..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/env_windows.go +++ /dev/null @@ -1,45 +0,0 @@ -//go:build windows -// +build windows - -package colorprofile - -import ( - "strconv" - - "golang.org/x/sys/windows" -) - -func windowsColorProfile(env map[string]string) (Profile, bool) { - if env["ConEmuANSI"] == "ON" { - return TrueColor, true - } - - if len(env["WT_SESSION"]) > 0 { - // Windows Terminal supports TrueColor - return TrueColor, true - } - - major, _, build := windows.RtlGetNtVersionNumbers() - if build < 10586 || major < 10 { - // No ANSI support before WindowsNT 10 build 10586 - if len(env["ANSICON"]) > 0 { - ansiconVer := env["ANSICON_VER"] - cv, err := strconv.Atoi(ansiconVer) - if err != nil || cv < 181 { - // No 8 bit color support before ANSICON 1.81 - return ANSI, true - } - - return ANSI256, true - } - - return NoTTY, true - } - - if build < 14931 { - // No true color support before build 14931 - return ANSI256, true - } - - return TrueColor, true -} diff --git a/vendor/github.com/charmbracelet/colorprofile/profile.go b/vendor/github.com/charmbracelet/colorprofile/profile.go deleted file mode 100644 index 97e37ac..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/profile.go +++ /dev/null @@ -1,399 +0,0 @@ -package colorprofile - -import ( - "image/color" - "math" - - "github.com/charmbracelet/x/ansi" - "github.com/lucasb-eyer/go-colorful" -) - -// Profile is a color profile: NoTTY, Ascii, ANSI, ANSI256, or TrueColor. -type Profile byte - -const ( - // NoTTY, not a terminal profile. - NoTTY Profile = iota - // Ascii, uncolored profile. - Ascii //nolint:revive - // ANSI, 4-bit color profile. - ANSI - // ANSI256, 8-bit color profile. - ANSI256 - // TrueColor, 24-bit color profile. - TrueColor -) - -// String returns the string representation of a Profile. -func (p Profile) String() string { - switch p { - case TrueColor: - return "TrueColor" - case ANSI256: - return "ANSI256" - case ANSI: - return "ANSI" - case Ascii: - return "Ascii" - case NoTTY: - return "NoTTY" - } - return "Unknown" -} - -// Convert transforms a given Color to a Color supported within the Profile. -func (p Profile) Convert(c color.Color) color.Color { - if p <= Ascii { - return nil - } - - switch c := c.(type) { - case ansi.BasicColor: - return c - - case ansi.ExtendedColor: - if p == ANSI { - return ansi256ToANSIColor(c) - } - return c - - case ansi.TrueColor, color.Color: - h, ok := colorful.MakeColor(c) - if !ok { - return nil - } - if p != TrueColor { - ac := hexToANSI256Color(h) - if p == ANSI { - return ansi256ToANSIColor(ac) - } - return ac - } - return c - } - - return c -} - -func hexToANSI256Color(c colorful.Color) ansi.ExtendedColor { - v2ci := func(v float64) int { - if v < 48 { - return 0 - } - if v < 115 { - return 1 - } - return int((v - 35) / 40) - } - - // Calculate the nearest 0-based color index at 16..231 - r := v2ci(c.R * 255.0) // 0..5 each - g := v2ci(c.G * 255.0) - b := v2ci(c.B * 255.0) - ci := 36*r + 6*g + b /* 0..215 */ - - // Calculate the represented colors back from the index - i2cv := [6]int{0, 0x5f, 0x87, 0xaf, 0xd7, 0xff} - cr := i2cv[r] // r/g/b, 0..255 each - cg := i2cv[g] - cb := i2cv[b] - - // Calculate the nearest 0-based gray index at 232..255 - var grayIdx int - average := (cr + cg + cb) / 3 - if average > 238 { - grayIdx = 23 - } else { - grayIdx = (average - 3) / 10 // 0..23 - } - gv := 8 + 10*grayIdx // same value for r/g/b, 0..255 - - // Return the one which is nearer to the original input rgb value - c2 := colorful.Color{R: float64(cr) / 255.0, G: float64(cg) / 255.0, B: float64(cb) / 255.0} - g2 := colorful.Color{R: float64(gv) / 255.0, G: float64(gv) / 255.0, B: float64(gv) / 255.0} - colorDist := c.DistanceHSLuv(c2) - grayDist := c.DistanceHSLuv(g2) - - if colorDist <= grayDist { - return ansi.ExtendedColor(16 + ci) //nolint:gosec - } - return ansi.ExtendedColor(232 + grayIdx) //nolint:gosec -} - -func ansi256ToANSIColor(c ansi.ExtendedColor) ansi.BasicColor { - var r int - md := math.MaxFloat64 - - h, _ := colorful.Hex(ansiHex[c]) - for i := 0; i <= 15; i++ { - hb, _ := colorful.Hex(ansiHex[i]) - d := h.DistanceHSLuv(hb) - - if d < md { - md = d - r = i - } - } - - return ansi.BasicColor(r) //nolint:gosec -} - -// RGB values of ANSI colors (0-255). -var ansiHex = []string{ - "#000000", - "#800000", - "#008000", - "#808000", - "#000080", - "#800080", - "#008080", - "#c0c0c0", - "#808080", - "#ff0000", - "#00ff00", - "#ffff00", - "#0000ff", - "#ff00ff", - "#00ffff", - "#ffffff", - "#000000", - "#00005f", - "#000087", - "#0000af", - "#0000d7", - "#0000ff", - "#005f00", - "#005f5f", - "#005f87", - "#005faf", - "#005fd7", - "#005fff", - "#008700", - "#00875f", - "#008787", - "#0087af", - "#0087d7", - "#0087ff", - "#00af00", - "#00af5f", - "#00af87", - "#00afaf", - "#00afd7", - "#00afff", - "#00d700", - "#00d75f", - "#00d787", - "#00d7af", - "#00d7d7", - "#00d7ff", - "#00ff00", - "#00ff5f", - "#00ff87", - "#00ffaf", - "#00ffd7", - "#00ffff", - "#5f0000", - "#5f005f", - "#5f0087", - "#5f00af", - "#5f00d7", - "#5f00ff", - "#5f5f00", - "#5f5f5f", - "#5f5f87", - "#5f5faf", - "#5f5fd7", - "#5f5fff", - "#5f8700", - "#5f875f", - "#5f8787", - "#5f87af", - "#5f87d7", - "#5f87ff", - "#5faf00", - "#5faf5f", - "#5faf87", - "#5fafaf", - "#5fafd7", - "#5fafff", - "#5fd700", - "#5fd75f", - "#5fd787", - "#5fd7af", - "#5fd7d7", - "#5fd7ff", - "#5fff00", - "#5fff5f", - "#5fff87", - "#5fffaf", - "#5fffd7", - "#5fffff", - "#870000", - "#87005f", - "#870087", - "#8700af", - "#8700d7", - "#8700ff", - "#875f00", - "#875f5f", - "#875f87", - "#875faf", - "#875fd7", - "#875fff", - "#878700", - "#87875f", - "#878787", - "#8787af", - "#8787d7", - "#8787ff", - "#87af00", - "#87af5f", - "#87af87", - "#87afaf", - "#87afd7", - "#87afff", - "#87d700", - "#87d75f", - "#87d787", - "#87d7af", - "#87d7d7", - "#87d7ff", - "#87ff00", - "#87ff5f", - "#87ff87", - "#87ffaf", - "#87ffd7", - "#87ffff", - "#af0000", - "#af005f", - "#af0087", - "#af00af", - "#af00d7", - "#af00ff", - "#af5f00", - "#af5f5f", - "#af5f87", - "#af5faf", - "#af5fd7", - "#af5fff", - "#af8700", - "#af875f", - "#af8787", - "#af87af", - "#af87d7", - "#af87ff", - "#afaf00", - "#afaf5f", - "#afaf87", - "#afafaf", - "#afafd7", - "#afafff", - "#afd700", - "#afd75f", - "#afd787", - "#afd7af", - "#afd7d7", - "#afd7ff", - "#afff00", - "#afff5f", - "#afff87", - "#afffaf", - "#afffd7", - "#afffff", - "#d70000", - "#d7005f", - "#d70087", - "#d700af", - "#d700d7", - "#d700ff", - "#d75f00", - "#d75f5f", - "#d75f87", - "#d75faf", - "#d75fd7", - "#d75fff", - "#d78700", - "#d7875f", - "#d78787", - "#d787af", - "#d787d7", - "#d787ff", - "#d7af00", - "#d7af5f", - "#d7af87", - "#d7afaf", - "#d7afd7", - "#d7afff", - "#d7d700", - "#d7d75f", - "#d7d787", - "#d7d7af", - "#d7d7d7", - "#d7d7ff", - "#d7ff00", - "#d7ff5f", - "#d7ff87", - "#d7ffaf", - "#d7ffd7", - "#d7ffff", - "#ff0000", - "#ff005f", - "#ff0087", - "#ff00af", - "#ff00d7", - "#ff00ff", - "#ff5f00", - "#ff5f5f", - "#ff5f87", - "#ff5faf", - "#ff5fd7", - "#ff5fff", - "#ff8700", - "#ff875f", - "#ff8787", - "#ff87af", - "#ff87d7", - "#ff87ff", - "#ffaf00", - "#ffaf5f", - "#ffaf87", - "#ffafaf", - "#ffafd7", - "#ffafff", - "#ffd700", - "#ffd75f", - "#ffd787", - "#ffd7af", - "#ffd7d7", - "#ffd7ff", - "#ffff00", - "#ffff5f", - "#ffff87", - "#ffffaf", - "#ffffd7", - "#ffffff", - "#080808", - "#121212", - "#1c1c1c", - "#262626", - "#303030", - "#3a3a3a", - "#444444", - "#4e4e4e", - "#585858", - "#626262", - "#6c6c6c", - "#767676", - "#808080", - "#8a8a8a", - "#949494", - "#9e9e9e", - "#a8a8a8", - "#b2b2b2", - "#bcbcbc", - "#c6c6c6", - "#d0d0d0", - "#dadada", - "#e4e4e4", - "#eeeeee", -} diff --git a/vendor/github.com/charmbracelet/colorprofile/writer.go b/vendor/github.com/charmbracelet/colorprofile/writer.go deleted file mode 100644 index d04b3b9..0000000 --- a/vendor/github.com/charmbracelet/colorprofile/writer.go +++ /dev/null @@ -1,166 +0,0 @@ -package colorprofile - -import ( - "bytes" - "image/color" - "io" - "strconv" - - "github.com/charmbracelet/x/ansi" -) - -// NewWriter creates a new color profile writer that downgrades color sequences -// based on the detected color profile. -// -// If environ is nil, it will use os.Environ() to get the environment variables. -// -// It queries the given writer to determine if it supports ANSI escape codes. -// If it does, along with the given environment variables, it will determine -// the appropriate color profile to use for color formatting. -// -// This respects the NO_COLOR, CLICOLOR, and CLICOLOR_FORCE environment variables. -func NewWriter(w io.Writer, environ []string) *Writer { - return &Writer{ - Forward: w, - Profile: Detect(w, environ), - } -} - -// Writer represents a color profile writer that writes ANSI sequences to the -// underlying writer. -type Writer struct { - Forward io.Writer - Profile Profile -} - -// Write writes the given text to the underlying writer. -func (w *Writer) Write(p []byte) (int, error) { - switch w.Profile { - case TrueColor: - return w.Forward.Write(p) - case NoTTY: - return io.WriteString(w.Forward, ansi.Strip(string(p))) - default: - return w.downsample(p) - } -} - -// downsample downgrades the given text to the appropriate color profile. -func (w *Writer) downsample(p []byte) (int, error) { - var buf bytes.Buffer - var state byte - - parser := ansi.GetParser() - defer ansi.PutParser(parser) - - for len(p) > 0 { - parser.Reset() - seq, _, read, newState := ansi.DecodeSequence(p, state, parser) - - switch { - case ansi.HasCsiPrefix(seq) && parser.Command() == 'm': - handleSgr(w, parser, &buf) - default: - // If we're not a style SGR sequence, just write the bytes. - if n, err := buf.Write(seq); err != nil { - return n, err - } - } - - p = p[read:] - state = newState - } - - return w.Forward.Write(buf.Bytes()) -} - -// WriteString writes the given text to the underlying writer. -func (w *Writer) WriteString(s string) (n int, err error) { - return w.Write([]byte(s)) -} - -func handleSgr(w *Writer, p *ansi.Parser, buf *bytes.Buffer) { - var style ansi.Style - params := p.Params() - for i := 0; i < len(params); i++ { - param := params[i] - - switch param := param.Param(0); param { - case 0: - // SGR default parameter is 0. We use an empty string to reduce the - // number of bytes written to the buffer. - style = append(style, "") - case 30, 31, 32, 33, 34, 35, 36, 37: // 8-bit foreground color - if w.Profile < ANSI { - continue - } - style = style.ForegroundColor( - w.Profile.Convert(ansi.BasicColor(param - 30))) //nolint:gosec - case 38: // 16 or 24-bit foreground color - var c color.Color - if n := ansi.ReadStyleColor(params[i:], &c); n > 0 { - i += n - 1 - } - if w.Profile < ANSI { - continue - } - style = style.ForegroundColor(w.Profile.Convert(c)) - case 39: // default foreground color - if w.Profile < ANSI { - continue - } - style = style.DefaultForegroundColor() - case 40, 41, 42, 43, 44, 45, 46, 47: // 8-bit background color - if w.Profile < ANSI { - continue - } - style = style.BackgroundColor( - w.Profile.Convert(ansi.BasicColor(param - 40))) //nolint:gosec - case 48: // 16 or 24-bit background color - var c color.Color - if n := ansi.ReadStyleColor(params[i:], &c); n > 0 { - i += n - 1 - } - if w.Profile < ANSI { - continue - } - style = style.BackgroundColor(w.Profile.Convert(c)) - case 49: // default background color - if w.Profile < ANSI { - continue - } - style = style.DefaultBackgroundColor() - case 58: // 16 or 24-bit underline color - var c color.Color - if n := ansi.ReadStyleColor(params[i:], &c); n > 0 { - i += n - 1 - } - if w.Profile < ANSI { - continue - } - style = style.UnderlineColor(w.Profile.Convert(c)) - case 59: // default underline color - if w.Profile < ANSI { - continue - } - style = style.DefaultUnderlineColor() - case 90, 91, 92, 93, 94, 95, 96, 97: // 8-bit bright foreground color - if w.Profile < ANSI { - continue - } - style = style.ForegroundColor( - w.Profile.Convert(ansi.BasicColor(param - 90 + 8))) //nolint:gosec - case 100, 101, 102, 103, 104, 105, 106, 107: // 8-bit bright background color - if w.Profile < ANSI { - continue - } - style = style.BackgroundColor( - w.Profile.Convert(ansi.BasicColor(param - 100 + 8))) //nolint:gosec - default: - // If this is not a color attribute, just append it to the style. - style = append(style, strconv.Itoa(param)) - } - } - - _, _ = buf.WriteString(style.String()) -} diff --git a/vendor/github.com/charmbracelet/lipgloss/.gitignore b/vendor/github.com/charmbracelet/lipgloss/.gitignore deleted file mode 100644 index db48201..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -ssh_example_ed25519* -dist/ diff --git a/vendor/github.com/charmbracelet/lipgloss/.golangci.yml b/vendor/github.com/charmbracelet/lipgloss/.golangci.yml deleted file mode 100644 index 90c5c08..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/.golangci.yml +++ /dev/null @@ -1,41 +0,0 @@ -run: - tests: false - -issues: - include: - - EXC0001 - - EXC0005 - - EXC0011 - - EXC0012 - - EXC0013 - - max-issues-per-linter: 0 - max-same-issues: 0 - -linters: - enable: - - bodyclose - - exhaustive - - goconst - - godot - - godox - - gofumpt - - goimports - - gomoddirectives - - goprintffuncname - - gosec - - misspell - - nakedret - - nestif - - nilerr - - noctx - - nolintlint - - prealloc - - revive - - rowserrcheck - - sqlclosecheck - - tparallel - - unconvert - - unparam - - whitespace - - wrapcheck diff --git a/vendor/github.com/charmbracelet/lipgloss/.goreleaser.yml b/vendor/github.com/charmbracelet/lipgloss/.goreleaser.yml deleted file mode 100644 index 3353d02..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/.goreleaser.yml +++ /dev/null @@ -1,5 +0,0 @@ -# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json -version: 2 -includes: - - from_url: - url: charmbracelet/meta/main/goreleaser-lib.yaml diff --git a/vendor/github.com/charmbracelet/lipgloss/LICENSE b/vendor/github.com/charmbracelet/lipgloss/LICENSE deleted file mode 100644 index 6f5b1fa..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021-2023 Charmbracelet, Inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/charmbracelet/lipgloss/README.md b/vendor/github.com/charmbracelet/lipgloss/README.md deleted file mode 100644 index cee2371..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/README.md +++ /dev/null @@ -1,815 +0,0 @@ -# Lip Gloss - -

- Lip Gloss title treatment
- Latest Release - GoDoc - Build Status - phorm.ai -

- -Style definitions for nice terminal layouts. Built with TUIs in mind. - -![Lip Gloss example](https://github.com/user-attachments/assets/7950b1c1-e0e3-427e-8e7d-6f7f6ad17ca7) - -Lip Gloss takes an expressive, declarative approach to terminal rendering. -Users familiar with CSS will feel at home with Lip Gloss. - -```go - -import "github.com/charmbracelet/lipgloss" - -var style = lipgloss.NewStyle(). - Bold(true). - Foreground(lipgloss.Color("#FAFAFA")). - Background(lipgloss.Color("#7D56F4")). - PaddingTop(2). - PaddingLeft(4). - Width(22) - -fmt.Println(style.Render("Hello, kitty")) -``` - -## Colors - -Lip Gloss supports the following color profiles: - -### ANSI 16 colors (4-bit) - -```go -lipgloss.Color("5") // magenta -lipgloss.Color("9") // red -lipgloss.Color("12") // light blue -``` - -### ANSI 256 Colors (8-bit) - -```go -lipgloss.Color("86") // aqua -lipgloss.Color("201") // hot pink -lipgloss.Color("202") // orange -``` - -### True Color (16,777,216 colors; 24-bit) - -```go -lipgloss.Color("#0000FF") // good ol' 100% blue -lipgloss.Color("#04B575") // a green -lipgloss.Color("#3C3C3C") // a dark gray -``` - -...as well as a 1-bit ASCII profile, which is black and white only. - -The terminal's color profile will be automatically detected, and colors outside -the gamut of the current palette will be automatically coerced to their closest -available value. - -### Adaptive Colors - -You can also specify color options for light and dark backgrounds: - -```go -lipgloss.AdaptiveColor{Light: "236", Dark: "248"} -``` - -The terminal's background color will automatically be detected and the -appropriate color will be chosen at runtime. - -### Complete Colors - -CompleteColor specifies exact values for True Color, ANSI256, and ANSI color -profiles. - -```go -lipgloss.CompleteColor{TrueColor: "#0000FF", ANSI256: "86", ANSI: "5"} -``` - -Automatic color degradation will not be performed in this case and it will be -based on the color specified. - -### Complete Adaptive Colors - -You can use `CompleteColor` with `AdaptiveColor` to specify the exact values for -light and dark backgrounds without automatic color degradation. - -```go -lipgloss.CompleteAdaptiveColor{ - Light: CompleteColor{TrueColor: "#d7ffae", ANSI256: "193", ANSI: "11"}, - Dark: CompleteColor{TrueColor: "#d75fee", ANSI256: "163", ANSI: "5"}, -} -``` - -## Inline Formatting - -Lip Gloss supports the usual ANSI text formatting options: - -```go -var style = lipgloss.NewStyle(). - Bold(true). - Italic(true). - Faint(true). - Blink(true). - Strikethrough(true). - Underline(true). - Reverse(true) -``` - -## Block-Level Formatting - -Lip Gloss also supports rules for block-level formatting: - -```go -// Padding -var style = lipgloss.NewStyle(). - PaddingTop(2). - PaddingRight(4). - PaddingBottom(2). - PaddingLeft(4) - -// Margins -var style = lipgloss.NewStyle(). - MarginTop(2). - MarginRight(4). - MarginBottom(2). - MarginLeft(4) -``` - -There is also shorthand syntax for margins and padding, which follows the same -format as CSS: - -```go -// 2 cells on all sides -lipgloss.NewStyle().Padding(2) - -// 2 cells on the top and bottom, 4 cells on the left and right -lipgloss.NewStyle().Margin(2, 4) - -// 1 cell on the top, 4 cells on the sides, 2 cells on the bottom -lipgloss.NewStyle().Padding(1, 4, 2) - -// Clockwise, starting from the top: 2 cells on the top, 4 on the right, 3 on -// the bottom, and 1 on the left -lipgloss.NewStyle().Margin(2, 4, 3, 1) -``` - -## Aligning Text - -You can align paragraphs of text to the left, right, or center. - -```go -var style = lipgloss.NewStyle(). - Width(24). - Align(lipgloss.Left). // align it left - Align(lipgloss.Right). // no wait, align it right - Align(lipgloss.Center) // just kidding, align it in the center -``` - -## Width and Height - -Setting a minimum width and height is simple and straightforward. - -```go -var style = lipgloss.NewStyle(). - SetString("What’s for lunch?"). - Width(24). - Height(32). - Foreground(lipgloss.Color("63")) -``` - -## Borders - -Adding borders is easy: - -```go -// Add a purple, rectangular border -var style = lipgloss.NewStyle(). - BorderStyle(lipgloss.NormalBorder()). - BorderForeground(lipgloss.Color("63")) - -// Set a rounded, yellow-on-purple border to the top and left -var anotherStyle = lipgloss.NewStyle(). - BorderStyle(lipgloss.RoundedBorder()). - BorderForeground(lipgloss.Color("228")). - BorderBackground(lipgloss.Color("63")). - BorderTop(true). - BorderLeft(true) - -// Make your own border -var myCuteBorder = lipgloss.Border{ - Top: "._.:*:", - Bottom: "._.:*:", - Left: "|*", - Right: "|*", - TopLeft: "*", - TopRight: "*", - BottomLeft: "*", - BottomRight: "*", -} -``` - -There are also shorthand functions for defining borders, which follow a similar -pattern to the margin and padding shorthand functions. - -```go -// Add a thick border to the top and bottom -lipgloss.NewStyle(). - Border(lipgloss.ThickBorder(), true, false) - -// Add a double border to the top and left sides. Rules are set clockwise -// from top. -lipgloss.NewStyle(). - Border(lipgloss.DoubleBorder(), true, false, false, true) -``` - -For more on borders see [the docs][docs]. - -## Copying Styles - -Just use assignment: - -```go -style := lipgloss.NewStyle().Foreground(lipgloss.Color("219")) - -copiedStyle := style // this is a true copy - -wildStyle := style.Blink(true) // this is also true copy, with blink added - -``` - -Since `Style` data structures contains only primitive types, assigning a style -to another effectively creates a new copy of the style without mutating the -original. - -## Inheritance - -Styles can inherit rules from other styles. When inheriting, only unset rules -on the receiver are inherited. - -```go -var styleA = lipgloss.NewStyle(). - Foreground(lipgloss.Color("229")). - Background(lipgloss.Color("63")) - -// Only the background color will be inherited here, because the foreground -// color will have been already set: -var styleB = lipgloss.NewStyle(). - Foreground(lipgloss.Color("201")). - Inherit(styleA) -``` - -## Unsetting Rules - -All rules can be unset: - -```go -var style = lipgloss.NewStyle(). - Bold(true). // make it bold - UnsetBold(). // jk don't make it bold - Background(lipgloss.Color("227")). // yellow background - UnsetBackground() // never mind -``` - -When a rule is unset, it won't be inherited or copied. - -## Enforcing Rules - -Sometimes, such as when developing a component, you want to make sure style -definitions respect their intended purpose in the UI. This is where `Inline` -and `MaxWidth`, and `MaxHeight` come in: - -```go -// Force rendering onto a single line, ignoring margins, padding, and borders. -someStyle.Inline(true).Render("yadda yadda") - -// Also limit rendering to five cells -someStyle.Inline(true).MaxWidth(5).Render("yadda yadda") - -// Limit rendering to a 5x5 cell block -someStyle.MaxWidth(5).MaxHeight(5).Render("yadda yadda") -``` - -## Tabs - -The tab character (`\t`) is rendered differently in different terminals (often -as 8 spaces, sometimes 4). Because of this inconsistency, Lip Gloss converts -tabs to 4 spaces at render time. This behavior can be changed on a per-style -basis, however: - -```go -style := lipgloss.NewStyle() // tabs will render as 4 spaces, the default -style = style.TabWidth(2) // render tabs as 2 spaces -style = style.TabWidth(0) // remove tabs entirely -style = style.TabWidth(lipgloss.NoTabConversion) // leave tabs intact -``` - -## Rendering - -Generally, you just call the `Render(string...)` method on a `lipgloss.Style`: - -```go -style := lipgloss.NewStyle().Bold(true).SetString("Hello,") -fmt.Println(style.Render("kitty.")) // Hello, kitty. -fmt.Println(style.Render("puppy.")) // Hello, puppy. -``` - -But you could also use the Stringer interface: - -```go -var style = lipgloss.NewStyle().SetString("你好,猫咪。").Bold(true) -fmt.Println(style) // 你好,猫咪。 -``` - -### Custom Renderers - -Custom renderers allow you to render to a specific outputs. This is -particularly important when you want to render to different outputs and -correctly detect the color profile and dark background status for each, such as -in a server-client situation. - -```go -func myLittleHandler(sess ssh.Session) { - // Create a renderer for the client. - renderer := lipgloss.NewRenderer(sess) - - // Create a new style on the renderer. - style := renderer.NewStyle().Background(lipgloss.AdaptiveColor{Light: "63", Dark: "228"}) - - // Render. The color profile and dark background state will be correctly detected. - io.WriteString(sess, style.Render("Heyyyyyyy")) -} -``` - -For an example on using a custom renderer over SSH with [Wish][wish] see the -[SSH example][ssh-example]. - -## Utilities - -In addition to pure styling, Lip Gloss also ships with some utilities to help -assemble your layouts. - -### Joining Paragraphs - -Horizontally and vertically joining paragraphs is a cinch. - -```go -// Horizontally join three paragraphs along their bottom edges -lipgloss.JoinHorizontal(lipgloss.Bottom, paragraphA, paragraphB, paragraphC) - -// Vertically join two paragraphs along their center axes -lipgloss.JoinVertical(lipgloss.Center, paragraphA, paragraphB) - -// Horizontally join three paragraphs, with the shorter ones aligning 20% -// from the top of the tallest -lipgloss.JoinHorizontal(0.2, paragraphA, paragraphB, paragraphC) -``` - -### Measuring Width and Height - -Sometimes you’ll want to know the width and height of text blocks when building -your layouts. - -```go -// Render a block of text. -var style = lipgloss.NewStyle(). - Width(40). - Padding(2) -var block string = style.Render(someLongString) - -// Get the actual, physical dimensions of the text block. -width := lipgloss.Width(block) -height := lipgloss.Height(block) - -// Here's a shorthand function. -w, h := lipgloss.Size(block) -``` - -### Placing Text in Whitespace - -Sometimes you’ll simply want to place a block of text in whitespace. - -```go -// Center a paragraph horizontally in a space 80 cells wide. The height of -// the block returned will be as tall as the input paragraph. -block := lipgloss.PlaceHorizontal(80, lipgloss.Center, fancyStyledParagraph) - -// Place a paragraph at the bottom of a space 30 cells tall. The width of -// the text block returned will be as wide as the input paragraph. -block := lipgloss.PlaceVertical(30, lipgloss.Bottom, fancyStyledParagraph) - -// Place a paragraph in the bottom right corner of a 30x80 cell space. -block := lipgloss.Place(30, 80, lipgloss.Right, lipgloss.Bottom, fancyStyledParagraph) -``` - -You can also style the whitespace. For details, see [the docs][docs]. - -## Rendering Tables - -Lip Gloss ships with a table rendering sub-package. - -```go -import "github.com/charmbracelet/lipgloss/table" -``` - -Define some rows of data. - -```go -rows := [][]string{ - {"Chinese", "您好", "你好"}, - {"Japanese", "こんにちは", "やあ"}, - {"Arabic", "أهلين", "أهلا"}, - {"Russian", "Здравствуйте", "Привет"}, - {"Spanish", "Hola", "¿Qué tal?"}, -} -``` - -Use the table package to style and render the table. - -```go -var ( - purple = lipgloss.Color("99") - gray = lipgloss.Color("245") - lightGray = lipgloss.Color("241") - - headerStyle = lipgloss.NewStyle().Foreground(purple).Bold(true).Align(lipgloss.Center) - cellStyle = lipgloss.NewStyle().Padding(0, 1).Width(14) - oddRowStyle = cellStyle.Foreground(gray) - evenRowStyle = cellStyle.Foreground(lightGray) -) - -t := table.New(). - Border(lipgloss.NormalBorder()). - BorderStyle(lipgloss.NewStyle().Foreground(purple)). - StyleFunc(func(row, col int) lipgloss.Style { - switch { - case row == table.HeaderRow: - return headerStyle - case row%2 == 0: - return evenRowStyle - default: - return oddRowStyle - } - }). - Headers("LANGUAGE", "FORMAL", "INFORMAL"). - Rows(rows...) - -// You can also add tables row-by-row -t.Row("English", "You look absolutely fabulous.", "How's it going?") -``` - -Print the table. - -```go -fmt.Println(t) -``` - -![Table Example](https://github.com/charmbracelet/lipgloss/assets/42545625/6e4b70c4-f494-45da-a467-bdd27df30d5d) - -> [!WARNING] -> Table `Rows` need to be declared before `Offset` otherwise it does nothing. - -### Table Borders - -There are helpers to generate tables in markdown or ASCII style: - -#### Markdown Table - -```go -table.New().Border(lipgloss.MarkdownBorder()).BorderTop(false).BorderBottom(false) -``` - -``` -| LANGUAGE | FORMAL | INFORMAL | -|----------|--------------|-----------| -| Chinese | Nǐn hǎo | Nǐ hǎo | -| French | Bonjour | Salut | -| Russian | Zdravstvuyte | Privet | -| Spanish | Hola | ¿Qué tal? | -``` - -#### ASCII Table - -```go -table.New().Border(lipgloss.ASCIIBorder()) -``` - -``` -+----------+--------------+-----------+ -| LANGUAGE | FORMAL | INFORMAL | -+----------+--------------+-----------+ -| Chinese | Nǐn hǎo | Nǐ hǎo | -| French | Bonjour | Salut | -| Russian | Zdravstvuyte | Privet | -| Spanish | Hola | ¿Qué tal? | -+----------+--------------+-----------+ -``` - -For more on tables see [the docs](https://pkg.go.dev/github.com/charmbracelet/lipgloss?tab=doc) and [examples](https://github.com/charmbracelet/lipgloss/tree/master/examples/table). - -## Rendering Lists - -Lip Gloss ships with a list rendering sub-package. - -```go -import "github.com/charmbracelet/lipgloss/list" -``` - -Define a new list. - -```go -l := list.New("A", "B", "C") -``` - -Print the list. - -```go -fmt.Println(l) - -// • A -// • B -// • C -``` - -Lists have the ability to nest. - -```go -l := list.New( - "A", list.New("Artichoke"), - "B", list.New("Baking Flour", "Bananas", "Barley", "Bean Sprouts"), - "C", list.New("Cashew Apple", "Cashews", "Coconut Milk", "Curry Paste", "Currywurst"), - "D", list.New("Dill", "Dragonfruit", "Dried Shrimp"), - "E", list.New("Eggs"), - "F", list.New("Fish Cake", "Furikake"), - "J", list.New("Jicama"), - "K", list.New("Kohlrabi"), - "L", list.New("Leeks", "Lentils", "Licorice Root"), -) -``` - -Print the list. - -```go -fmt.Println(l) -``` - -

-image -

- -Lists can be customized via their enumeration function as well as using -`lipgloss.Style`s. - -```go -enumeratorStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("99")).MarginRight(1) -itemStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("212")).MarginRight(1) - -l := list.New( - "Glossier", - "Claire’s Boutique", - "Nyx", - "Mac", - "Milk", - ). - Enumerator(list.Roman). - EnumeratorStyle(enumeratorStyle). - ItemStyle(itemStyle) -``` - -Print the list. - -

-List example -

- -In addition to the predefined enumerators (`Arabic`, `Alphabet`, `Roman`, `Bullet`, `Tree`), -you may also define your own custom enumerator: - -```go -l := list.New("Duck", "Duck", "Duck", "Duck", "Goose", "Duck", "Duck") - -func DuckDuckGooseEnumerator(l list.Items, i int) string { - if l.At(i).Value() == "Goose" { - return "Honk →" - } - return "" -} - -l = l.Enumerator(DuckDuckGooseEnumerator) -``` - -Print the list: - -

-image -

- -If you need, you can also build lists incrementally: - -```go -l := list.New() - -for i := 0; i < repeat; i++ { - l.Item("Lip Gloss") -} -``` - -## Rendering Trees - -Lip Gloss ships with a tree rendering sub-package. - -```go -import "github.com/charmbracelet/lipgloss/tree" -``` - -Define a new tree. - -```go -t := tree.Root("."). - Child("A", "B", "C") -``` - -Print the tree. - -```go -fmt.Println(t) - -// . -// ├── A -// ├── B -// └── C -``` - -Trees have the ability to nest. - -```go -t := tree.Root("."). - Child("macOS"). - Child( - tree.New(). - Root("Linux"). - Child("NixOS"). - Child("Arch Linux (btw)"). - Child("Void Linux"), - ). - Child( - tree.New(). - Root("BSD"). - Child("FreeBSD"). - Child("OpenBSD"), - ) -``` - -Print the tree. - -```go -fmt.Println(t) -``` - -

-Tree Example (simple) -

- -Trees can be customized via their enumeration function as well as using -`lipgloss.Style`s. - -```go -enumeratorStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("63")).MarginRight(1) -rootStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("35")) -itemStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("212")) - -t := tree. - Root("⁜ Makeup"). - Child( - "Glossier", - "Fenty Beauty", - tree.New().Child( - "Gloss Bomb Universal Lip Luminizer", - "Hot Cheeks Velour Blushlighter", - ), - "Nyx", - "Mac", - "Milk", - ). - Enumerator(tree.RoundedEnumerator). - EnumeratorStyle(enumeratorStyle). - RootStyle(rootStyle). - ItemStyle(itemStyle) -``` - -Print the tree. - -

-Tree Example (makeup) -

- -The predefined enumerators for trees are `DefaultEnumerator` and `RoundedEnumerator`. - -If you need, you can also build trees incrementally: - -```go -t := tree.New() - -for i := 0; i < repeat; i++ { - t.Child("Lip Gloss") -} -``` - ---- - -## FAQ - -
- -Why are things misaligning? Why are borders at the wrong widths? - -

This is most likely due to your locale and encoding, particularly with -regard to Chinese, Japanese, and Korean (for example, zh_CN.UTF-8 -or ja_JP.UTF-8). The most direct way to fix this is to set -RUNEWIDTH_EASTASIAN=0 in your environment.

- -

For details see https://github.com/charmbracelet/lipgloss/issues/40.

-
- -
- -Why isn't Lip Gloss displaying colors? - -

Lip Gloss automatically degrades colors to the best available option in the -given terminal, and if output's not a TTY it will remove color output entirely. -This is common when running tests, CI, or when piping output elsewhere.

- -

If necessary, you can force a color profile in your tests with -SetColorProfile.

- -```go -import ( - "github.com/charmbracelet/lipgloss" - "github.com/muesli/termenv" -) - -lipgloss.SetColorProfile(termenv.TrueColor) -``` - -_Note:_ this option limits the flexibility of your application and can cause -ANSI escape codes to be output in cases where that might not be desired. Take -careful note of your use case and environment before choosing to force a color -profile. - -
- -## What about [Bubble Tea][tea]? - -Lip Gloss doesn’t replace Bubble Tea. Rather, it is an excellent Bubble Tea -companion. It was designed to make assembling terminal user interface views as -simple and fun as possible so that you can focus on building your application -instead of concerning yourself with low-level layout details. - -In simple terms, you can use Lip Gloss to help build your Bubble Tea views. - -[tea]: https://github.com/charmbracelet/tea - -## Under the Hood - -Lip Gloss is built on the excellent [Termenv][termenv] and [Reflow][reflow] -libraries which deal with color and ANSI-aware text operations, respectively. -For many use cases Termenv and Reflow will be sufficient for your needs. - -[termenv]: https://github.com/muesli/termenv -[reflow]: https://github.com/muesli/reflow - -## Rendering Markdown - -For a more document-centric rendering solution with support for things like -lists, tables, and syntax-highlighted code have a look at [Glamour][glamour], -the stylesheet-based Markdown renderer. - -[glamour]: https://github.com/charmbracelet/glamour - -## Contributing - -See [contributing][contribute]. - -[contribute]: https://github.com/charmbracelet/lipgloss/contribute - -## Feedback - -We’d love to hear your thoughts on this project. Feel free to drop us a note! - -- [Twitter](https://twitter.com/charmcli) -- [The Fediverse](https://mastodon.social/@charmcli) -- [Discord](https://charm.sh/chat) - -## License - -[MIT](https://github.com/charmbracelet/lipgloss/raw/master/LICENSE) - ---- - -Part of [Charm](https://charm.sh). - -The Charm logo - -Charm热爱开源 • Charm loves open source - -[docs]: https://pkg.go.dev/github.com/charmbracelet/lipgloss?tab=doc -[wish]: https://github.com/charmbracelet/wish -[ssh-example]: examples/ssh diff --git a/vendor/github.com/charmbracelet/lipgloss/Taskfile.yaml b/vendor/github.com/charmbracelet/lipgloss/Taskfile.yaml deleted file mode 100644 index 0b4a771..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/Taskfile.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# https://taskfile.dev - -version: '3' - -tasks: - lint: - desc: Run base linters - cmds: - - golangci-lint run - - test: - desc: Run tests - cmds: - - go test ./... {{.CLI_ARGS}} - - test:table: - desc: Run table tests - cmds: - - go test ./table {{.CLI_ARGS}} diff --git a/vendor/github.com/charmbracelet/lipgloss/align.go b/vendor/github.com/charmbracelet/lipgloss/align.go deleted file mode 100644 index ce654b2..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/align.go +++ /dev/null @@ -1,83 +0,0 @@ -package lipgloss - -import ( - "strings" - - "github.com/charmbracelet/x/ansi" - "github.com/muesli/termenv" -) - -// Perform text alignment. If the string is multi-lined, we also make all lines -// the same width by padding them with spaces. If a termenv style is passed, -// use that to style the spaces added. -func alignTextHorizontal(str string, pos Position, width int, style *termenv.Style) string { - lines, widestLine := getLines(str) - var b strings.Builder - - for i, l := range lines { - lineWidth := ansi.StringWidth(l) - - shortAmount := widestLine - lineWidth // difference from the widest line - shortAmount += max(0, width-(shortAmount+lineWidth)) // difference from the total width, if set - - if shortAmount > 0 { - switch pos { //nolint:exhaustive - case Right: - s := strings.Repeat(" ", shortAmount) - if style != nil { - s = style.Styled(s) - } - l = s + l - case Center: - // Note: remainder goes on the right. - left := shortAmount / 2 //nolint:mnd - right := left + shortAmount%2 //nolint:mnd - - leftSpaces := strings.Repeat(" ", left) - rightSpaces := strings.Repeat(" ", right) - - if style != nil { - leftSpaces = style.Styled(leftSpaces) - rightSpaces = style.Styled(rightSpaces) - } - l = leftSpaces + l + rightSpaces - default: // Left - s := strings.Repeat(" ", shortAmount) - if style != nil { - s = style.Styled(s) - } - l += s - } - } - - b.WriteString(l) - if i < len(lines)-1 { - b.WriteRune('\n') - } - } - - return b.String() -} - -func alignTextVertical(str string, pos Position, height int, _ *termenv.Style) string { - strHeight := strings.Count(str, "\n") + 1 - if height < strHeight { - return str - } - - switch pos { - case Top: - return str + strings.Repeat("\n", height-strHeight) - case Center: - topPadding, bottomPadding := (height-strHeight)/2, (height-strHeight)/2 //nolint:mnd - if strHeight+topPadding+bottomPadding > height { - topPadding-- - } else if strHeight+topPadding+bottomPadding < height { - bottomPadding++ - } - return strings.Repeat("\n", topPadding) + str + strings.Repeat("\n", bottomPadding) - case Bottom: - return strings.Repeat("\n", height-strHeight) + str - } - return str -} diff --git a/vendor/github.com/charmbracelet/lipgloss/ansi_unix.go b/vendor/github.com/charmbracelet/lipgloss/ansi_unix.go deleted file mode 100644 index d416b8c..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/ansi_unix.go +++ /dev/null @@ -1,7 +0,0 @@ -//go:build !windows -// +build !windows - -package lipgloss - -// enableLegacyWindowsANSI is only needed on Windows. -func enableLegacyWindowsANSI() {} diff --git a/vendor/github.com/charmbracelet/lipgloss/ansi_windows.go b/vendor/github.com/charmbracelet/lipgloss/ansi_windows.go deleted file mode 100644 index 0cf56e4..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/ansi_windows.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build windows -// +build windows - -package lipgloss - -import ( - "sync" - - "github.com/muesli/termenv" -) - -var enableANSI sync.Once - -// enableANSIColors enables support for ANSI color sequences in the Windows -// default console (cmd.exe and the PowerShell application). Note that this -// only works with Windows 10. Also note that Windows Terminal supports colors -// by default. -func enableLegacyWindowsANSI() { - enableANSI.Do(func() { - _, _ = termenv.EnableWindowsANSIConsole() - }) -} diff --git a/vendor/github.com/charmbracelet/lipgloss/borders.go b/vendor/github.com/charmbracelet/lipgloss/borders.go deleted file mode 100644 index b36f874..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/borders.go +++ /dev/null @@ -1,490 +0,0 @@ -package lipgloss - -import ( - "strings" - - "github.com/charmbracelet/x/ansi" - "github.com/muesli/termenv" - "github.com/rivo/uniseg" -) - -// Border contains a series of values which comprise the various parts of a -// border. -type Border struct { - Top string - Bottom string - Left string - Right string - TopLeft string - TopRight string - BottomLeft string - BottomRight string - MiddleLeft string - MiddleRight string - Middle string - MiddleTop string - MiddleBottom string -} - -// GetTopSize returns the width of the top border. If borders contain runes of -// varying widths, the widest rune is returned. If no border exists on the top -// edge, 0 is returned. -func (b Border) GetTopSize() int { - return getBorderEdgeWidth(b.TopLeft, b.Top, b.TopRight) -} - -// GetRightSize returns the width of the right border. If borders contain -// runes of varying widths, the widest rune is returned. If no border exists on -// the right edge, 0 is returned. -func (b Border) GetRightSize() int { - return getBorderEdgeWidth(b.TopRight, b.Right, b.BottomRight) -} - -// GetBottomSize returns the width of the bottom border. If borders contain -// runes of varying widths, the widest rune is returned. If no border exists on -// the bottom edge, 0 is returned. -func (b Border) GetBottomSize() int { - return getBorderEdgeWidth(b.BottomLeft, b.Bottom, b.BottomRight) -} - -// GetLeftSize returns the width of the left border. If borders contain runes -// of varying widths, the widest rune is returned. If no border exists on the -// left edge, 0 is returned. -func (b Border) GetLeftSize() int { - return getBorderEdgeWidth(b.TopLeft, b.Left, b.BottomLeft) -} - -func getBorderEdgeWidth(borderParts ...string) (maxWidth int) { - for _, piece := range borderParts { - w := maxRuneWidth(piece) - if w > maxWidth { - maxWidth = w - } - } - return maxWidth -} - -var ( - noBorder = Border{} - - normalBorder = Border{ - Top: "─", - Bottom: "─", - Left: "│", - Right: "│", - TopLeft: "┌", - TopRight: "┐", - BottomLeft: "└", - BottomRight: "┘", - MiddleLeft: "├", - MiddleRight: "┤", - Middle: "┼", - MiddleTop: "┬", - MiddleBottom: "┴", - } - - roundedBorder = Border{ - Top: "─", - Bottom: "─", - Left: "│", - Right: "│", - TopLeft: "╭", - TopRight: "╮", - BottomLeft: "╰", - BottomRight: "╯", - MiddleLeft: "├", - MiddleRight: "┤", - Middle: "┼", - MiddleTop: "┬", - MiddleBottom: "┴", - } - - blockBorder = Border{ - Top: "█", - Bottom: "█", - Left: "█", - Right: "█", - TopLeft: "█", - TopRight: "█", - BottomLeft: "█", - BottomRight: "█", - MiddleLeft: "█", - MiddleRight: "█", - Middle: "█", - MiddleTop: "█", - MiddleBottom: "█", - } - - outerHalfBlockBorder = Border{ - Top: "▀", - Bottom: "▄", - Left: "▌", - Right: "▐", - TopLeft: "▛", - TopRight: "▜", - BottomLeft: "▙", - BottomRight: "▟", - } - - innerHalfBlockBorder = Border{ - Top: "▄", - Bottom: "▀", - Left: "▐", - Right: "▌", - TopLeft: "▗", - TopRight: "▖", - BottomLeft: "▝", - BottomRight: "▘", - } - - thickBorder = Border{ - Top: "━", - Bottom: "━", - Left: "┃", - Right: "┃", - TopLeft: "┏", - TopRight: "┓", - BottomLeft: "┗", - BottomRight: "┛", - MiddleLeft: "┣", - MiddleRight: "┫", - Middle: "╋", - MiddleTop: "┳", - MiddleBottom: "┻", - } - - doubleBorder = Border{ - Top: "═", - Bottom: "═", - Left: "║", - Right: "║", - TopLeft: "╔", - TopRight: "╗", - BottomLeft: "╚", - BottomRight: "╝", - MiddleLeft: "╠", - MiddleRight: "╣", - Middle: "╬", - MiddleTop: "╦", - MiddleBottom: "╩", - } - - hiddenBorder = Border{ - Top: " ", - Bottom: " ", - Left: " ", - Right: " ", - TopLeft: " ", - TopRight: " ", - BottomLeft: " ", - BottomRight: " ", - MiddleLeft: " ", - MiddleRight: " ", - Middle: " ", - MiddleTop: " ", - MiddleBottom: " ", - } - - markdownBorder = Border{ - Top: "-", - Bottom: "-", - Left: "|", - Right: "|", - TopLeft: "|", - TopRight: "|", - BottomLeft: "|", - BottomRight: "|", - MiddleLeft: "|", - MiddleRight: "|", - Middle: "|", - MiddleTop: "|", - MiddleBottom: "|", - } - - asciiBorder = Border{ - Top: "-", - Bottom: "-", - Left: "|", - Right: "|", - TopLeft: "+", - TopRight: "+", - BottomLeft: "+", - BottomRight: "+", - MiddleLeft: "+", - MiddleRight: "+", - Middle: "+", - MiddleTop: "+", - MiddleBottom: "+", - } -) - -// NormalBorder returns a standard-type border with a normal weight and 90 -// degree corners. -func NormalBorder() Border { - return normalBorder -} - -// RoundedBorder returns a border with rounded corners. -func RoundedBorder() Border { - return roundedBorder -} - -// BlockBorder returns a border that takes the whole block. -func BlockBorder() Border { - return blockBorder -} - -// OuterHalfBlockBorder returns a half-block border that sits outside the frame. -func OuterHalfBlockBorder() Border { - return outerHalfBlockBorder -} - -// InnerHalfBlockBorder returns a half-block border that sits inside the frame. -func InnerHalfBlockBorder() Border { - return innerHalfBlockBorder -} - -// ThickBorder returns a border that's thicker than the one returned by -// NormalBorder. -func ThickBorder() Border { - return thickBorder -} - -// DoubleBorder returns a border comprised of two thin strokes. -func DoubleBorder() Border { - return doubleBorder -} - -// HiddenBorder returns a border that renders as a series of single-cell -// spaces. It's useful for cases when you want to remove a standard border but -// maintain layout positioning. This said, you can still apply a background -// color to a hidden border. -func HiddenBorder() Border { - return hiddenBorder -} - -// MarkdownBorder return a table border in markdown style. -// -// Make sure to disable top and bottom border for the best result. This will -// ensure that the output is valid markdown. -// -// table.New().Border(lipgloss.MarkdownBorder()).BorderTop(false).BorderBottom(false) -func MarkdownBorder() Border { - return markdownBorder -} - -// ASCIIBorder returns a table border with ASCII characters. -func ASCIIBorder() Border { - return asciiBorder -} - -func (s Style) applyBorder(str string) string { - var ( - border = s.getBorderStyle() - hasTop = s.getAsBool(borderTopKey, false) - hasRight = s.getAsBool(borderRightKey, false) - hasBottom = s.getAsBool(borderBottomKey, false) - hasLeft = s.getAsBool(borderLeftKey, false) - - topFG = s.getAsColor(borderTopForegroundKey) - rightFG = s.getAsColor(borderRightForegroundKey) - bottomFG = s.getAsColor(borderBottomForegroundKey) - leftFG = s.getAsColor(borderLeftForegroundKey) - - topBG = s.getAsColor(borderTopBackgroundKey) - rightBG = s.getAsColor(borderRightBackgroundKey) - bottomBG = s.getAsColor(borderBottomBackgroundKey) - leftBG = s.getAsColor(borderLeftBackgroundKey) - ) - - // If a border is set and no sides have been specifically turned on or off - // render borders on all sides. - if s.implicitBorders() { - hasTop = true - hasRight = true - hasBottom = true - hasLeft = true - } - - // If no border is set or all borders are been disabled, abort. - if border == noBorder || (!hasTop && !hasRight && !hasBottom && !hasLeft) { - return str - } - - lines, width := getLines(str) - - if hasLeft { - if border.Left == "" { - border.Left = " " - } - width += maxRuneWidth(border.Left) - } - - if hasRight && border.Right == "" { - border.Right = " " - } - - // If corners should be rendered but are set with the empty string, fill them - // with a single space. - if hasTop && hasLeft && border.TopLeft == "" { - border.TopLeft = " " - } - if hasTop && hasRight && border.TopRight == "" { - border.TopRight = " " - } - if hasBottom && hasLeft && border.BottomLeft == "" { - border.BottomLeft = " " - } - if hasBottom && hasRight && border.BottomRight == "" { - border.BottomRight = " " - } - - // Figure out which corners we should actually be using based on which - // sides are set to show. - if hasTop { - switch { - case !hasLeft && !hasRight: - border.TopLeft = "" - border.TopRight = "" - case !hasLeft: - border.TopLeft = "" - case !hasRight: - border.TopRight = "" - } - } - if hasBottom { - switch { - case !hasLeft && !hasRight: - border.BottomLeft = "" - border.BottomRight = "" - case !hasLeft: - border.BottomLeft = "" - case !hasRight: - border.BottomRight = "" - } - } - - // For now, limit corners to one rune. - border.TopLeft = getFirstRuneAsString(border.TopLeft) - border.TopRight = getFirstRuneAsString(border.TopRight) - border.BottomRight = getFirstRuneAsString(border.BottomRight) - border.BottomLeft = getFirstRuneAsString(border.BottomLeft) - - var out strings.Builder - - // Render top - if hasTop { - top := renderHorizontalEdge(border.TopLeft, border.Top, border.TopRight, width) - top = s.styleBorder(top, topFG, topBG) - out.WriteString(top) - out.WriteRune('\n') - } - - leftRunes := []rune(border.Left) - leftIndex := 0 - - rightRunes := []rune(border.Right) - rightIndex := 0 - - // Render sides - for i, l := range lines { - if hasLeft { - r := string(leftRunes[leftIndex]) - leftIndex++ - if leftIndex >= len(leftRunes) { - leftIndex = 0 - } - out.WriteString(s.styleBorder(r, leftFG, leftBG)) - } - out.WriteString(l) - if hasRight { - r := string(rightRunes[rightIndex]) - rightIndex++ - if rightIndex >= len(rightRunes) { - rightIndex = 0 - } - out.WriteString(s.styleBorder(r, rightFG, rightBG)) - } - if i < len(lines)-1 { - out.WriteRune('\n') - } - } - - // Render bottom - if hasBottom { - bottom := renderHorizontalEdge(border.BottomLeft, border.Bottom, border.BottomRight, width) - bottom = s.styleBorder(bottom, bottomFG, bottomBG) - out.WriteRune('\n') - out.WriteString(bottom) - } - - return out.String() -} - -// Render the horizontal (top or bottom) portion of a border. -func renderHorizontalEdge(left, middle, right string, width int) string { - if middle == "" { - middle = " " - } - - leftWidth := ansi.StringWidth(left) - rightWidth := ansi.StringWidth(right) - - runes := []rune(middle) - j := 0 - - out := strings.Builder{} - out.WriteString(left) - for i := leftWidth + rightWidth; i < width+rightWidth; { - out.WriteRune(runes[j]) - j++ - if j >= len(runes) { - j = 0 - } - i += ansi.StringWidth(string(runes[j])) - } - out.WriteString(right) - - return out.String() -} - -// Apply foreground and background styling to a border. -func (s Style) styleBorder(border string, fg, bg TerminalColor) string { - if fg == noColor && bg == noColor { - return border - } - - style := termenv.Style{} - - if fg != noColor { - style = style.Foreground(fg.color(s.r)) - } - if bg != noColor { - style = style.Background(bg.color(s.r)) - } - - return style.Styled(border) -} - -func maxRuneWidth(str string) int { - var width int - - state := -1 - for len(str) > 0 { - var w int - _, str, w, state = uniseg.FirstGraphemeClusterInString(str, state) - if w > width { - width = w - } - } - - return width -} - -func getFirstRuneAsString(str string) string { - if str == "" { - return str - } - r := []rune(str) - return string(r[0]) -} diff --git a/vendor/github.com/charmbracelet/lipgloss/color.go b/vendor/github.com/charmbracelet/lipgloss/color.go deleted file mode 100644 index 6caf3a3..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/color.go +++ /dev/null @@ -1,172 +0,0 @@ -package lipgloss - -import ( - "strconv" - - "github.com/muesli/termenv" -) - -// TerminalColor is a color intended to be rendered in the terminal. -type TerminalColor interface { - color(*Renderer) termenv.Color - RGBA() (r, g, b, a uint32) -} - -var noColor = NoColor{} - -// NoColor is used to specify the absence of color styling. When this is active -// foreground colors will be rendered with the terminal's default text color, -// and background colors will not be drawn at all. -// -// Example usage: -// -// var style = someStyle.Background(lipgloss.NoColor{}) -type NoColor struct{} - -func (NoColor) color(*Renderer) termenv.Color { - return termenv.NoColor{} -} - -// RGBA returns the RGBA value of this color. Because we have to return -// something, despite this color being the absence of color, we're returning -// black with 100% opacity. -// -// Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF. -// -// Deprecated. -func (n NoColor) RGBA() (r, g, b, a uint32) { - return 0x0, 0x0, 0x0, 0xFFFF //nolint:mnd -} - -// Color specifies a color by hex or ANSI value. For example: -// -// ansiColor := lipgloss.Color("21") -// hexColor := lipgloss.Color("#0000ff") -type Color string - -func (c Color) color(r *Renderer) termenv.Color { - return r.ColorProfile().Color(string(c)) -} - -// RGBA returns the RGBA value of this color. This satisfies the Go Color -// interface. Note that on error we return black with 100% opacity, or: -// -// Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF. -// -// Deprecated. -func (c Color) RGBA() (r, g, b, a uint32) { - return termenv.ConvertToRGB(c.color(renderer)).RGBA() -} - -// ANSIColor is a color specified by an ANSI color value. It's merely syntactic -// sugar for the more general Color function. Invalid colors will render as -// black. -// -// Example usage: -// -// // These two statements are equivalent. -// colorA := lipgloss.ANSIColor(21) -// colorB := lipgloss.Color("21") -type ANSIColor uint - -func (ac ANSIColor) color(r *Renderer) termenv.Color { - return Color(strconv.FormatUint(uint64(ac), 10)).color(r) -} - -// RGBA returns the RGBA value of this color. This satisfies the Go Color -// interface. Note that on error we return black with 100% opacity, or: -// -// Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF. -// -// Deprecated. -func (ac ANSIColor) RGBA() (r, g, b, a uint32) { - cf := Color(strconv.FormatUint(uint64(ac), 10)) - return cf.RGBA() -} - -// AdaptiveColor provides color options for light and dark backgrounds. The -// appropriate color will be returned at runtime based on the darkness of the -// terminal background color. -// -// Example usage: -// -// color := lipgloss.AdaptiveColor{Light: "#0000ff", Dark: "#000099"} -type AdaptiveColor struct { - Light string - Dark string -} - -func (ac AdaptiveColor) color(r *Renderer) termenv.Color { - if r.HasDarkBackground() { - return Color(ac.Dark).color(r) - } - return Color(ac.Light).color(r) -} - -// RGBA returns the RGBA value of this color. This satisfies the Go Color -// interface. Note that on error we return black with 100% opacity, or: -// -// Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF. -// -// Deprecated. -func (ac AdaptiveColor) RGBA() (r, g, b, a uint32) { - return termenv.ConvertToRGB(ac.color(renderer)).RGBA() -} - -// CompleteColor specifies exact values for truecolor, ANSI256, and ANSI color -// profiles. Automatic color degradation will not be performed. -type CompleteColor struct { - TrueColor string - ANSI256 string - ANSI string -} - -func (c CompleteColor) color(r *Renderer) termenv.Color { - p := r.ColorProfile() - switch p { //nolint:exhaustive - case termenv.TrueColor: - return p.Color(c.TrueColor) - case termenv.ANSI256: - return p.Color(c.ANSI256) - case termenv.ANSI: - return p.Color(c.ANSI) - default: - return termenv.NoColor{} - } -} - -// RGBA returns the RGBA value of this color. This satisfies the Go Color -// interface. Note that on error we return black with 100% opacity, or: -// -// Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF. -// CompleteAdaptiveColor specifies exact values for truecolor, ANSI256, and ANSI color -// -// Deprecated. -func (c CompleteColor) RGBA() (r, g, b, a uint32) { - return termenv.ConvertToRGB(c.color(renderer)).RGBA() -} - -// CompleteAdaptiveColor specifies exact values for truecolor, ANSI256, and ANSI color -// profiles, with separate options for light and dark backgrounds. Automatic -// color degradation will not be performed. -type CompleteAdaptiveColor struct { - Light CompleteColor - Dark CompleteColor -} - -func (cac CompleteAdaptiveColor) color(r *Renderer) termenv.Color { - if r.HasDarkBackground() { - return cac.Dark.color(r) - } - return cac.Light.color(r) -} - -// RGBA returns the RGBA value of this color. This satisfies the Go Color -// interface. Note that on error we return black with 100% opacity, or: -// -// Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF. -// -// Deprecated. -func (cac CompleteAdaptiveColor) RGBA() (r, g, b, a uint32) { - return termenv.ConvertToRGB(cac.color(renderer)).RGBA() -} diff --git a/vendor/github.com/charmbracelet/lipgloss/get.go b/vendor/github.com/charmbracelet/lipgloss/get.go deleted file mode 100644 index 422b4ce..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/get.go +++ /dev/null @@ -1,556 +0,0 @@ -package lipgloss - -import ( - "strings" - - "github.com/charmbracelet/x/ansi" -) - -// GetBold returns the style's bold value. If no value is set false is returned. -func (s Style) GetBold() bool { - return s.getAsBool(boldKey, false) -} - -// GetItalic returns the style's italic value. If no value is set false is -// returned. -func (s Style) GetItalic() bool { - return s.getAsBool(italicKey, false) -} - -// GetUnderline returns the style's underline value. If no value is set false is -// returned. -func (s Style) GetUnderline() bool { - return s.getAsBool(underlineKey, false) -} - -// GetStrikethrough returns the style's strikethrough value. If no value is set false -// is returned. -func (s Style) GetStrikethrough() bool { - return s.getAsBool(strikethroughKey, false) -} - -// GetReverse returns the style's reverse value. If no value is set false is -// returned. -func (s Style) GetReverse() bool { - return s.getAsBool(reverseKey, false) -} - -// GetBlink returns the style's blink value. If no value is set false is -// returned. -func (s Style) GetBlink() bool { - return s.getAsBool(blinkKey, false) -} - -// GetFaint returns the style's faint value. If no value is set false is -// returned. -func (s Style) GetFaint() bool { - return s.getAsBool(faintKey, false) -} - -// GetForeground returns the style's foreground color. If no value is set -// NoColor{} is returned. -func (s Style) GetForeground() TerminalColor { - return s.getAsColor(foregroundKey) -} - -// GetBackground returns the style's background color. If no value is set -// NoColor{} is returned. -func (s Style) GetBackground() TerminalColor { - return s.getAsColor(backgroundKey) -} - -// GetWidth returns the style's width setting. If no width is set 0 is -// returned. -func (s Style) GetWidth() int { - return s.getAsInt(widthKey) -} - -// GetHeight returns the style's height setting. If no height is set 0 is -// returned. -func (s Style) GetHeight() int { - return s.getAsInt(heightKey) -} - -// GetAlign returns the style's implicit horizontal alignment setting. -// If no alignment is set Position.Left is returned. -func (s Style) GetAlign() Position { - v := s.getAsPosition(alignHorizontalKey) - if v == Position(0) { - return Left - } - return v -} - -// GetAlignHorizontal returns the style's implicit horizontal alignment setting. -// If no alignment is set Position.Left is returned. -func (s Style) GetAlignHorizontal() Position { - v := s.getAsPosition(alignHorizontalKey) - if v == Position(0) { - return Left - } - return v -} - -// GetAlignVertical returns the style's implicit vertical alignment setting. -// If no alignment is set Position.Top is returned. -func (s Style) GetAlignVertical() Position { - v := s.getAsPosition(alignVerticalKey) - if v == Position(0) { - return Top - } - return v -} - -// GetPadding returns the style's top, right, bottom, and left padding values, -// in that order. 0 is returned for unset values. -func (s Style) GetPadding() (top, right, bottom, left int) { - return s.getAsInt(paddingTopKey), - s.getAsInt(paddingRightKey), - s.getAsInt(paddingBottomKey), - s.getAsInt(paddingLeftKey) -} - -// GetPaddingTop returns the style's top padding. If no value is set 0 is -// returned. -func (s Style) GetPaddingTop() int { - return s.getAsInt(paddingTopKey) -} - -// GetPaddingRight returns the style's right padding. If no value is set 0 is -// returned. -func (s Style) GetPaddingRight() int { - return s.getAsInt(paddingRightKey) -} - -// GetPaddingBottom returns the style's bottom padding. If no value is set 0 is -// returned. -func (s Style) GetPaddingBottom() int { - return s.getAsInt(paddingBottomKey) -} - -// GetPaddingLeft returns the style's left padding. If no value is set 0 is -// returned. -func (s Style) GetPaddingLeft() int { - return s.getAsInt(paddingLeftKey) -} - -// GetHorizontalPadding returns the style's left and right padding. Unset -// values are measured as 0. -func (s Style) GetHorizontalPadding() int { - return s.getAsInt(paddingLeftKey) + s.getAsInt(paddingRightKey) -} - -// GetVerticalPadding returns the style's top and bottom padding. Unset values -// are measured as 0. -func (s Style) GetVerticalPadding() int { - return s.getAsInt(paddingTopKey) + s.getAsInt(paddingBottomKey) -} - -// GetColorWhitespace returns the style's whitespace coloring setting. If no -// value is set false is returned. -func (s Style) GetColorWhitespace() bool { - return s.getAsBool(colorWhitespaceKey, false) -} - -// GetMargin returns the style's top, right, bottom, and left margins, in that -// order. 0 is returned for unset values. -func (s Style) GetMargin() (top, right, bottom, left int) { - return s.getAsInt(marginTopKey), - s.getAsInt(marginRightKey), - s.getAsInt(marginBottomKey), - s.getAsInt(marginLeftKey) -} - -// GetMarginTop returns the style's top margin. If no value is set 0 is -// returned. -func (s Style) GetMarginTop() int { - return s.getAsInt(marginTopKey) -} - -// GetMarginRight returns the style's right margin. If no value is set 0 is -// returned. -func (s Style) GetMarginRight() int { - return s.getAsInt(marginRightKey) -} - -// GetMarginBottom returns the style's bottom margin. If no value is set 0 is -// returned. -func (s Style) GetMarginBottom() int { - return s.getAsInt(marginBottomKey) -} - -// GetMarginLeft returns the style's left margin. If no value is set 0 is -// returned. -func (s Style) GetMarginLeft() int { - return s.getAsInt(marginLeftKey) -} - -// GetHorizontalMargins returns the style's left and right margins. Unset -// values are measured as 0. -func (s Style) GetHorizontalMargins() int { - return s.getAsInt(marginLeftKey) + s.getAsInt(marginRightKey) -} - -// GetVerticalMargins returns the style's top and bottom margins. Unset values -// are measured as 0. -func (s Style) GetVerticalMargins() int { - return s.getAsInt(marginTopKey) + s.getAsInt(marginBottomKey) -} - -// GetBorder returns the style's border style (type Border) and value for the -// top, right, bottom, and left in that order. If no value is set for the -// border style, Border{} is returned. For all other unset values false is -// returned. -func (s Style) GetBorder() (b Border, top, right, bottom, left bool) { - return s.getBorderStyle(), - s.getAsBool(borderTopKey, false), - s.getAsBool(borderRightKey, false), - s.getAsBool(borderBottomKey, false), - s.getAsBool(borderLeftKey, false) -} - -// GetBorderStyle returns the style's border style (type Border). If no value -// is set Border{} is returned. -func (s Style) GetBorderStyle() Border { - return s.getBorderStyle() -} - -// GetBorderTop returns the style's top border setting. If no value is set -// false is returned. -func (s Style) GetBorderTop() bool { - return s.getAsBool(borderTopKey, false) -} - -// GetBorderRight returns the style's right border setting. If no value is set -// false is returned. -func (s Style) GetBorderRight() bool { - return s.getAsBool(borderRightKey, false) -} - -// GetBorderBottom returns the style's bottom border setting. If no value is -// set false is returned. -func (s Style) GetBorderBottom() bool { - return s.getAsBool(borderBottomKey, false) -} - -// GetBorderLeft returns the style's left border setting. If no value is -// set false is returned. -func (s Style) GetBorderLeft() bool { - return s.getAsBool(borderLeftKey, false) -} - -// GetBorderTopForeground returns the style's border top foreground color. If -// no value is set NoColor{} is returned. -func (s Style) GetBorderTopForeground() TerminalColor { - return s.getAsColor(borderTopForegroundKey) -} - -// GetBorderRightForeground returns the style's border right foreground color. -// If no value is set NoColor{} is returned. -func (s Style) GetBorderRightForeground() TerminalColor { - return s.getAsColor(borderRightForegroundKey) -} - -// GetBorderBottomForeground returns the style's border bottom foreground -// color. If no value is set NoColor{} is returned. -func (s Style) GetBorderBottomForeground() TerminalColor { - return s.getAsColor(borderBottomForegroundKey) -} - -// GetBorderLeftForeground returns the style's border left foreground -// color. If no value is set NoColor{} is returned. -func (s Style) GetBorderLeftForeground() TerminalColor { - return s.getAsColor(borderLeftForegroundKey) -} - -// GetBorderTopBackground returns the style's border top background color. If -// no value is set NoColor{} is returned. -func (s Style) GetBorderTopBackground() TerminalColor { - return s.getAsColor(borderTopBackgroundKey) -} - -// GetBorderRightBackground returns the style's border right background color. -// If no value is set NoColor{} is returned. -func (s Style) GetBorderRightBackground() TerminalColor { - return s.getAsColor(borderRightBackgroundKey) -} - -// GetBorderBottomBackground returns the style's border bottom background -// color. If no value is set NoColor{} is returned. -func (s Style) GetBorderBottomBackground() TerminalColor { - return s.getAsColor(borderBottomBackgroundKey) -} - -// GetBorderLeftBackground returns the style's border left background -// color. If no value is set NoColor{} is returned. -func (s Style) GetBorderLeftBackground() TerminalColor { - return s.getAsColor(borderLeftBackgroundKey) -} - -// GetBorderTopWidth returns the width of the top border. If borders contain -// runes of varying widths, the widest rune is returned. If no border exists on -// the top edge, 0 is returned. -// -// Deprecated: This function simply calls Style.GetBorderTopSize. -func (s Style) GetBorderTopWidth() int { - return s.GetBorderTopSize() -} - -// GetBorderTopSize returns the width of the top border. If borders contain -// runes of varying widths, the widest rune is returned. If no border exists on -// the top edge, 0 is returned. -func (s Style) GetBorderTopSize() int { - if !s.getAsBool(borderTopKey, false) && !s.implicitBorders() { - return 0 - } - return s.getBorderStyle().GetTopSize() -} - -// GetBorderLeftSize returns the width of the left border. If borders contain -// runes of varying widths, the widest rune is returned. If no border exists on -// the left edge, 0 is returned. -func (s Style) GetBorderLeftSize() int { - if !s.getAsBool(borderLeftKey, false) && !s.implicitBorders() { - return 0 - } - return s.getBorderStyle().GetLeftSize() -} - -// GetBorderBottomSize returns the width of the bottom border. If borders -// contain runes of varying widths, the widest rune is returned. If no border -// exists on the left edge, 0 is returned. -func (s Style) GetBorderBottomSize() int { - if !s.getAsBool(borderBottomKey, false) && !s.implicitBorders() { - return 0 - } - return s.getBorderStyle().GetBottomSize() -} - -// GetBorderRightSize returns the width of the right border. If borders -// contain runes of varying widths, the widest rune is returned. If no border -// exists on the right edge, 0 is returned. -func (s Style) GetBorderRightSize() int { - if !s.getAsBool(borderRightKey, false) && !s.implicitBorders() { - return 0 - } - return s.getBorderStyle().GetRightSize() -} - -// GetHorizontalBorderSize returns the width of the horizontal borders. If -// borders contain runes of varying widths, the widest rune is returned. If no -// border exists on the horizontal edges, 0 is returned. -func (s Style) GetHorizontalBorderSize() int { - return s.GetBorderLeftSize() + s.GetBorderRightSize() -} - -// GetVerticalBorderSize returns the width of the vertical borders. If -// borders contain runes of varying widths, the widest rune is returned. If no -// border exists on the vertical edges, 0 is returned. -func (s Style) GetVerticalBorderSize() int { - return s.GetBorderTopSize() + s.GetBorderBottomSize() -} - -// GetInline returns the style's inline setting. If no value is set false is -// returned. -func (s Style) GetInline() bool { - return s.getAsBool(inlineKey, false) -} - -// GetMaxWidth returns the style's max width setting. If no value is set 0 is -// returned. -func (s Style) GetMaxWidth() int { - return s.getAsInt(maxWidthKey) -} - -// GetMaxHeight returns the style's max height setting. If no value is set 0 is -// returned. -func (s Style) GetMaxHeight() int { - return s.getAsInt(maxHeightKey) -} - -// GetTabWidth returns the style's tab width setting. If no value is set 4 is -// returned which is the implicit default. -func (s Style) GetTabWidth() int { - return s.getAsInt(tabWidthKey) -} - -// GetUnderlineSpaces returns whether or not the style is set to underline -// spaces. If not value is set false is returned. -func (s Style) GetUnderlineSpaces() bool { - return s.getAsBool(underlineSpacesKey, false) -} - -// GetStrikethroughSpaces returns whether or not the style is set to strikethrough -// spaces. If not value is set false is returned. -func (s Style) GetStrikethroughSpaces() bool { - return s.getAsBool(strikethroughSpacesKey, false) -} - -// GetHorizontalFrameSize returns the sum of the style's horizontal margins, padding -// and border widths. -// -// Provisional: this method may be renamed. -func (s Style) GetHorizontalFrameSize() int { - return s.GetHorizontalMargins() + s.GetHorizontalPadding() + s.GetHorizontalBorderSize() -} - -// GetVerticalFrameSize returns the sum of the style's vertical margins, padding -// and border widths. -// -// Provisional: this method may be renamed. -func (s Style) GetVerticalFrameSize() int { - return s.GetVerticalMargins() + s.GetVerticalPadding() + s.GetVerticalBorderSize() -} - -// GetFrameSize returns the sum of the margins, padding and border width for -// both the horizontal and vertical margins. -func (s Style) GetFrameSize() (x, y int) { - return s.GetHorizontalFrameSize(), s.GetVerticalFrameSize() -} - -// GetTransform returns the transform set on the style. If no transform is set -// nil is returned. -func (s Style) GetTransform() func(string) string { - return s.getAsTransform(transformKey) -} - -// Returns whether or not the given property is set. -func (s Style) isSet(k propKey) bool { - return s.props.has(k) -} - -func (s Style) getAsBool(k propKey, defaultVal bool) bool { - if !s.isSet(k) { - return defaultVal - } - return s.attrs&int(k) != 0 -} - -func (s Style) getAsColor(k propKey) TerminalColor { - if !s.isSet(k) { - return noColor - } - - var c TerminalColor - switch k { //nolint:exhaustive - case foregroundKey: - c = s.fgColor - case backgroundKey: - c = s.bgColor - case marginBackgroundKey: - c = s.marginBgColor - case borderTopForegroundKey: - c = s.borderTopFgColor - case borderRightForegroundKey: - c = s.borderRightFgColor - case borderBottomForegroundKey: - c = s.borderBottomFgColor - case borderLeftForegroundKey: - c = s.borderLeftFgColor - case borderTopBackgroundKey: - c = s.borderTopBgColor - case borderRightBackgroundKey: - c = s.borderRightBgColor - case borderBottomBackgroundKey: - c = s.borderBottomBgColor - case borderLeftBackgroundKey: - c = s.borderLeftBgColor - } - - if c != nil { - return c - } - - return noColor -} - -func (s Style) getAsInt(k propKey) int { - if !s.isSet(k) { - return 0 - } - switch k { //nolint:exhaustive - case widthKey: - return s.width - case heightKey: - return s.height - case paddingTopKey: - return s.paddingTop - case paddingRightKey: - return s.paddingRight - case paddingBottomKey: - return s.paddingBottom - case paddingLeftKey: - return s.paddingLeft - case marginTopKey: - return s.marginTop - case marginRightKey: - return s.marginRight - case marginBottomKey: - return s.marginBottom - case marginLeftKey: - return s.marginLeft - case maxWidthKey: - return s.maxWidth - case maxHeightKey: - return s.maxHeight - case tabWidthKey: - return s.tabWidth - } - return 0 -} - -func (s Style) getAsPosition(k propKey) Position { - if !s.isSet(k) { - return Position(0) - } - switch k { //nolint:exhaustive - case alignHorizontalKey: - return s.alignHorizontal - case alignVerticalKey: - return s.alignVertical - } - return Position(0) -} - -func (s Style) getBorderStyle() Border { - if !s.isSet(borderStyleKey) { - return noBorder - } - return s.borderStyle -} - -// Returns whether or not the style has implicit borders. This happens when -// a border style has been set but no border sides have been explicitly turned -// on or off. -func (s Style) implicitBorders() bool { - var ( - borderStyle = s.getBorderStyle() - topSet = s.isSet(borderTopKey) - rightSet = s.isSet(borderRightKey) - bottomSet = s.isSet(borderBottomKey) - leftSet = s.isSet(borderLeftKey) - ) - return borderStyle != noBorder && !(topSet || rightSet || bottomSet || leftSet) -} - -func (s Style) getAsTransform(propKey) func(string) string { - if !s.isSet(transformKey) { - return nil - } - return s.transform -} - -// Split a string into lines, additionally returning the size of the widest -// line. -func getLines(s string) (lines []string, widest int) { - lines = strings.Split(s, "\n") - - for _, l := range lines { - w := ansi.StringWidth(l) - if widest < w { - widest = w - } - } - - return lines, widest -} diff --git a/vendor/github.com/charmbracelet/lipgloss/join.go b/vendor/github.com/charmbracelet/lipgloss/join.go deleted file mode 100644 index b0a23a5..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/join.go +++ /dev/null @@ -1,175 +0,0 @@ -package lipgloss - -import ( - "math" - "strings" - - "github.com/charmbracelet/x/ansi" -) - -// JoinHorizontal is a utility function for horizontally joining two -// potentially multi-lined strings along a vertical axis. The first argument is -// the position, with 0 being all the way at the top and 1 being all the way -// at the bottom. -// -// If you just want to align to the top, center or bottom you may as well just -// use the helper constants Top, Center, and Bottom. -// -// Example: -// -// blockB := "...\n...\n..." -// blockA := "...\n...\n...\n...\n..." -// -// // Join 20% from the top -// str := lipgloss.JoinHorizontal(0.2, blockA, blockB) -// -// // Join on the top edge -// str := lipgloss.JoinHorizontal(lipgloss.Top, blockA, blockB) -func JoinHorizontal(pos Position, strs ...string) string { - if len(strs) == 0 { - return "" - } - if len(strs) == 1 { - return strs[0] - } - - var ( - // Groups of strings broken into multiple lines - blocks = make([][]string, len(strs)) - - // Max line widths for the above text blocks - maxWidths = make([]int, len(strs)) - - // Height of the tallest block - maxHeight int - ) - - // Break text blocks into lines and get max widths for each text block - for i, str := range strs { - blocks[i], maxWidths[i] = getLines(str) - if len(blocks[i]) > maxHeight { - maxHeight = len(blocks[i]) - } - } - - // Add extra lines to make each side the same height - for i := range blocks { - if len(blocks[i]) >= maxHeight { - continue - } - - extraLines := make([]string, maxHeight-len(blocks[i])) - - switch pos { //nolint:exhaustive - case Top: - blocks[i] = append(blocks[i], extraLines...) - - case Bottom: - blocks[i] = append(extraLines, blocks[i]...) - - default: // Somewhere in the middle - n := len(extraLines) - split := int(math.Round(float64(n) * pos.value())) - top := n - split - bottom := n - top - - blocks[i] = append(extraLines[top:], blocks[i]...) - blocks[i] = append(blocks[i], extraLines[bottom:]...) - } - } - - // Merge lines - var b strings.Builder - for i := range blocks[0] { // remember, all blocks have the same number of members now - for j, block := range blocks { - b.WriteString(block[i]) - - // Also make lines the same length - b.WriteString(strings.Repeat(" ", maxWidths[j]-ansi.StringWidth(block[i]))) - } - if i < len(blocks[0])-1 { - b.WriteRune('\n') - } - } - - return b.String() -} - -// JoinVertical is a utility function for vertically joining two potentially -// multi-lined strings along a horizontal axis. The first argument is the -// position, with 0 being all the way to the left and 1 being all the way to -// the right. -// -// If you just want to align to the left, right or center you may as well just -// use the helper constants Left, Center, and Right. -// -// Example: -// -// blockB := "...\n...\n..." -// blockA := "...\n...\n...\n...\n..." -// -// // Join 20% from the top -// str := lipgloss.JoinVertical(0.2, blockA, blockB) -// -// // Join on the right edge -// str := lipgloss.JoinVertical(lipgloss.Right, blockA, blockB) -func JoinVertical(pos Position, strs ...string) string { - if len(strs) == 0 { - return "" - } - if len(strs) == 1 { - return strs[0] - } - - var ( - blocks = make([][]string, len(strs)) - maxWidth int - ) - - for i := range strs { - var w int - blocks[i], w = getLines(strs[i]) - if w > maxWidth { - maxWidth = w - } - } - - var b strings.Builder - for i, block := range blocks { - for j, line := range block { - w := maxWidth - ansi.StringWidth(line) - - switch pos { //nolint:exhaustive - case Left: - b.WriteString(line) - b.WriteString(strings.Repeat(" ", w)) - - case Right: - b.WriteString(strings.Repeat(" ", w)) - b.WriteString(line) - - default: // Somewhere in the middle - if w < 1 { - b.WriteString(line) - break - } - - split := int(math.Round(float64(w) * pos.value())) - right := w - split - left := w - right - - b.WriteString(strings.Repeat(" ", left)) - b.WriteString(line) - b.WriteString(strings.Repeat(" ", right)) - } - - // Write a newline as long as we're not on the last line of the - // last block. - if !(i == len(blocks)-1 && j == len(block)-1) { - b.WriteRune('\n') - } - } - } - - return b.String() -} diff --git a/vendor/github.com/charmbracelet/lipgloss/position.go b/vendor/github.com/charmbracelet/lipgloss/position.go deleted file mode 100644 index 185f5af..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/position.go +++ /dev/null @@ -1,154 +0,0 @@ -package lipgloss - -import ( - "math" - "strings" - - "github.com/charmbracelet/x/ansi" -) - -// Position represents a position along a horizontal or vertical axis. It's in -// situations where an axis is involved, like alignment, joining, placement and -// so on. -// -// A value of 0 represents the start (the left or top) and 1 represents the end -// (the right or bottom). 0.5 represents the center. -// -// There are constants Top, Bottom, Center, Left and Right in this package that -// can be used to aid readability. -type Position float64 - -func (p Position) value() float64 { - return math.Min(1, math.Max(0, float64(p))) -} - -// Position aliases. -const ( - Top Position = 0.0 - Bottom Position = 1.0 - Center Position = 0.5 - Left Position = 0.0 - Right Position = 1.0 -) - -// Place places a string or text block vertically in an unstyled box of a given -// width or height. -func Place(width, height int, hPos, vPos Position, str string, opts ...WhitespaceOption) string { - return renderer.Place(width, height, hPos, vPos, str, opts...) -} - -// Place places a string or text block vertically in an unstyled box of a given -// width or height. -func (r *Renderer) Place(width, height int, hPos, vPos Position, str string, opts ...WhitespaceOption) string { - return r.PlaceVertical(height, vPos, r.PlaceHorizontal(width, hPos, str, opts...), opts...) -} - -// PlaceHorizontal places a string or text block horizontally in an unstyled -// block of a given width. If the given width is shorter than the max width of -// the string (measured by its longest line) this will be a noop. -func PlaceHorizontal(width int, pos Position, str string, opts ...WhitespaceOption) string { - return renderer.PlaceHorizontal(width, pos, str, opts...) -} - -// PlaceHorizontal places a string or text block horizontally in an unstyled -// block of a given width. If the given width is shorter than the max width of -// the string (measured by its longest line) this will be a noöp. -func (r *Renderer) PlaceHorizontal(width int, pos Position, str string, opts ...WhitespaceOption) string { - lines, contentWidth := getLines(str) - gap := width - contentWidth - - if gap <= 0 { - return str - } - - ws := newWhitespace(r, opts...) - - var b strings.Builder - for i, l := range lines { - // Is this line shorter than the longest line? - short := max(0, contentWidth-ansi.StringWidth(l)) - - switch pos { //nolint:exhaustive - case Left: - b.WriteString(l) - b.WriteString(ws.render(gap + short)) - - case Right: - b.WriteString(ws.render(gap + short)) - b.WriteString(l) - - default: // somewhere in the middle - totalGap := gap + short - - split := int(math.Round(float64(totalGap) * pos.value())) - left := totalGap - split - right := totalGap - left - - b.WriteString(ws.render(left)) - b.WriteString(l) - b.WriteString(ws.render(right)) - } - - if i < len(lines)-1 { - b.WriteRune('\n') - } - } - - return b.String() -} - -// PlaceVertical places a string or text block vertically in an unstyled block -// of a given height. If the given height is shorter than the height of the -// string (measured by its newlines) then this will be a noop. -func PlaceVertical(height int, pos Position, str string, opts ...WhitespaceOption) string { - return renderer.PlaceVertical(height, pos, str, opts...) -} - -// PlaceVertical places a string or text block vertically in an unstyled block -// of a given height. If the given height is shorter than the height of the -// string (measured by its newlines) then this will be a noöp. -func (r *Renderer) PlaceVertical(height int, pos Position, str string, opts ...WhitespaceOption) string { - contentHeight := strings.Count(str, "\n") + 1 - gap := height - contentHeight - - if gap <= 0 { - return str - } - - ws := newWhitespace(r, opts...) - - _, width := getLines(str) - emptyLine := ws.render(width) - b := strings.Builder{} - - switch pos { //nolint:exhaustive - case Top: - b.WriteString(str) - b.WriteRune('\n') - for i := 0; i < gap; i++ { - b.WriteString(emptyLine) - if i < gap-1 { - b.WriteRune('\n') - } - } - - case Bottom: - b.WriteString(strings.Repeat(emptyLine+"\n", gap)) - b.WriteString(str) - - default: // Somewhere in the middle - split := int(math.Round(float64(gap) * pos.value())) - top := gap - split - bottom := gap - top - - b.WriteString(strings.Repeat(emptyLine+"\n", top)) - b.WriteString(str) - - for i := 0; i < bottom; i++ { - b.WriteRune('\n') - b.WriteString(emptyLine) - } - } - - return b.String() -} diff --git a/vendor/github.com/charmbracelet/lipgloss/ranges.go b/vendor/github.com/charmbracelet/lipgloss/ranges.go deleted file mode 100644 index d171699..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/ranges.go +++ /dev/null @@ -1,48 +0,0 @@ -package lipgloss - -import ( - "strings" - - "github.com/charmbracelet/x/ansi" -) - -// StyleRanges allows to, given a string, style ranges of it differently. -// The function will take into account existing styles. -// Ranges should not overlap. -func StyleRanges(s string, ranges ...Range) string { - if len(ranges) == 0 { - return s - } - - var buf strings.Builder - lastIdx := 0 - stripped := ansi.Strip(s) - - // Use Truncate and TruncateLeft to style match.MatchedIndexes without - // losing the original option style: - for _, rng := range ranges { - // Add the text before this match - if rng.Start > lastIdx { - buf.WriteString(ansi.Cut(s, lastIdx, rng.Start)) - } - // Add the matched range with its highlight - buf.WriteString(rng.Style.Render(ansi.Cut(stripped, rng.Start, rng.End))) - lastIdx = rng.End - } - - // Add any remaining text after the last match - buf.WriteString(ansi.TruncateLeft(s, lastIdx, "")) - - return buf.String() -} - -// NewRange returns a range that can be used with [StyleRanges]. -func NewRange(start, end int, style Style) Range { - return Range{start, end, style} -} - -// Range to be used with [StyleRanges]. -type Range struct { - Start, End int - Style Style -} diff --git a/vendor/github.com/charmbracelet/lipgloss/renderer.go b/vendor/github.com/charmbracelet/lipgloss/renderer.go deleted file mode 100644 index 233aa7c..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/renderer.go +++ /dev/null @@ -1,181 +0,0 @@ -package lipgloss - -import ( - "io" - "sync" - - "github.com/muesli/termenv" -) - -// We're manually creating the struct here to avoid initializing the output and -// query the terminal multiple times. -var renderer = &Renderer{ - output: termenv.DefaultOutput(), -} - -// Renderer is a lipgloss terminal renderer. -type Renderer struct { - output *termenv.Output - colorProfile termenv.Profile - hasDarkBackground bool - - getColorProfile sync.Once - explicitColorProfile bool - - getBackgroundColor sync.Once - explicitBackgroundColor bool - - mtx sync.RWMutex -} - -// DefaultRenderer returns the default renderer. -func DefaultRenderer() *Renderer { - return renderer -} - -// SetDefaultRenderer sets the default global renderer. -func SetDefaultRenderer(r *Renderer) { - renderer = r -} - -// NewRenderer creates a new Renderer. -// -// w will be used to determine the terminal's color capabilities. -func NewRenderer(w io.Writer, opts ...termenv.OutputOption) *Renderer { - r := &Renderer{ - output: termenv.NewOutput(w, opts...), - } - return r -} - -// Output returns the termenv output. -func (r *Renderer) Output() *termenv.Output { - r.mtx.RLock() - defer r.mtx.RUnlock() - return r.output -} - -// SetOutput sets the termenv output. -func (r *Renderer) SetOutput(o *termenv.Output) { - r.mtx.Lock() - defer r.mtx.Unlock() - r.output = o -} - -// ColorProfile returns the detected termenv color profile. -func (r *Renderer) ColorProfile() termenv.Profile { - r.mtx.RLock() - defer r.mtx.RUnlock() - - if !r.explicitColorProfile { - r.getColorProfile.Do(func() { - // NOTE: we don't need to lock here because sync.Once provides its - // own locking mechanism. - r.colorProfile = r.output.EnvColorProfile() - }) - } - - return r.colorProfile -} - -// ColorProfile returns the detected termenv color profile. -func ColorProfile() termenv.Profile { - return renderer.ColorProfile() -} - -// SetColorProfile sets the color profile on the renderer. This function exists -// mostly for testing purposes so that you can assure you're testing against -// a specific profile. -// -// Outside of testing you likely won't want to use this function as the color -// profile will detect and cache the terminal's color capabilities and choose -// the best available profile. -// -// Available color profiles are: -// -// termenv.Ascii // no color, 1-bit -// termenv.ANSI //16 colors, 4-bit -// termenv.ANSI256 // 256 colors, 8-bit -// termenv.TrueColor // 16,777,216 colors, 24-bit -// -// This function is thread-safe. -func (r *Renderer) SetColorProfile(p termenv.Profile) { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.colorProfile = p - r.explicitColorProfile = true -} - -// SetColorProfile sets the color profile on the default renderer. This -// function exists mostly for testing purposes so that you can assure you're -// testing against a specific profile. -// -// Outside of testing you likely won't want to use this function as the color -// profile will detect and cache the terminal's color capabilities and choose -// the best available profile. -// -// Available color profiles are: -// -// termenv.Ascii // no color, 1-bit -// termenv.ANSI //16 colors, 4-bit -// termenv.ANSI256 // 256 colors, 8-bit -// termenv.TrueColor // 16,777,216 colors, 24-bit -// -// This function is thread-safe. -func SetColorProfile(p termenv.Profile) { - renderer.SetColorProfile(p) -} - -// HasDarkBackground returns whether or not the terminal has a dark background. -func HasDarkBackground() bool { - return renderer.HasDarkBackground() -} - -// HasDarkBackground returns whether or not the renderer will render to a dark -// background. A dark background can either be auto-detected, or set explicitly -// on the renderer. -func (r *Renderer) HasDarkBackground() bool { - r.mtx.RLock() - defer r.mtx.RUnlock() - - if !r.explicitBackgroundColor { - r.getBackgroundColor.Do(func() { - // NOTE: we don't need to lock here because sync.Once provides its - // own locking mechanism. - r.hasDarkBackground = r.output.HasDarkBackground() - }) - } - - return r.hasDarkBackground -} - -// SetHasDarkBackground sets the background color detection value for the -// default renderer. This function exists mostly for testing purposes so that -// you can assure you're testing against a specific background color setting. -// -// Outside of testing you likely won't want to use this function as the -// backgrounds value will be automatically detected and cached against the -// terminal's current background color setting. -// -// This function is thread-safe. -func SetHasDarkBackground(b bool) { - renderer.SetHasDarkBackground(b) -} - -// SetHasDarkBackground sets the background color detection value on the -// renderer. This function exists mostly for testing purposes so that you can -// assure you're testing against a specific background color setting. -// -// Outside of testing you likely won't want to use this function as the -// backgrounds value will be automatically detected and cached against the -// terminal's current background color setting. -// -// This function is thread-safe. -func (r *Renderer) SetHasDarkBackground(b bool) { - r.mtx.Lock() - defer r.mtx.Unlock() - - r.hasDarkBackground = b - r.explicitBackgroundColor = true -} diff --git a/vendor/github.com/charmbracelet/lipgloss/runes.go b/vendor/github.com/charmbracelet/lipgloss/runes.go deleted file mode 100644 index 7a49e32..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/runes.go +++ /dev/null @@ -1,43 +0,0 @@ -package lipgloss - -import ( - "strings" -) - -// StyleRunes apply a given style to runes at the given indices in the string. -// Note that you must provide styling options for both matched and unmatched -// runes. Indices out of bounds will be ignored. -func StyleRunes(str string, indices []int, matched, unmatched Style) string { - // Convert slice of indices to a map for easier lookups - m := make(map[int]struct{}) - for _, i := range indices { - m[i] = struct{}{} - } - - var ( - out strings.Builder - group strings.Builder - style Style - runes = []rune(str) - ) - - for i, r := range runes { - group.WriteRune(r) - - _, matches := m[i] - _, nextMatches := m[i+1] - - if matches != nextMatches || i == len(runes)-1 { - // Flush - if matches { - style = matched - } else { - style = unmatched - } - out.WriteString(style.Render(group.String())) - group.Reset() - } - } - - return out.String() -} diff --git a/vendor/github.com/charmbracelet/lipgloss/set.go b/vendor/github.com/charmbracelet/lipgloss/set.go deleted file mode 100644 index fde38fa..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/set.go +++ /dev/null @@ -1,799 +0,0 @@ -package lipgloss - -// Set a value on the underlying rules map. -func (s *Style) set(key propKey, value interface{}) { - // We don't allow negative integers on any of our other values, so just keep - // them at zero or above. We could use uints instead, but the - // conversions are a little tedious, so we're sticking with ints for - // sake of usability. - switch key { //nolint:exhaustive - case foregroundKey: - s.fgColor = colorOrNil(value) - case backgroundKey: - s.bgColor = colorOrNil(value) - case widthKey: - s.width = max(0, value.(int)) - case heightKey: - s.height = max(0, value.(int)) - case alignHorizontalKey: - s.alignHorizontal = value.(Position) - case alignVerticalKey: - s.alignVertical = value.(Position) - case paddingTopKey: - s.paddingTop = max(0, value.(int)) - case paddingRightKey: - s.paddingRight = max(0, value.(int)) - case paddingBottomKey: - s.paddingBottom = max(0, value.(int)) - case paddingLeftKey: - s.paddingLeft = max(0, value.(int)) - case marginTopKey: - s.marginTop = max(0, value.(int)) - case marginRightKey: - s.marginRight = max(0, value.(int)) - case marginBottomKey: - s.marginBottom = max(0, value.(int)) - case marginLeftKey: - s.marginLeft = max(0, value.(int)) - case marginBackgroundKey: - s.marginBgColor = colorOrNil(value) - case borderStyleKey: - s.borderStyle = value.(Border) - case borderTopForegroundKey: - s.borderTopFgColor = colorOrNil(value) - case borderRightForegroundKey: - s.borderRightFgColor = colorOrNil(value) - case borderBottomForegroundKey: - s.borderBottomFgColor = colorOrNil(value) - case borderLeftForegroundKey: - s.borderLeftFgColor = colorOrNil(value) - case borderTopBackgroundKey: - s.borderTopBgColor = colorOrNil(value) - case borderRightBackgroundKey: - s.borderRightBgColor = colorOrNil(value) - case borderBottomBackgroundKey: - s.borderBottomBgColor = colorOrNil(value) - case borderLeftBackgroundKey: - s.borderLeftBgColor = colorOrNil(value) - case maxWidthKey: - s.maxWidth = max(0, value.(int)) - case maxHeightKey: - s.maxHeight = max(0, value.(int)) - case tabWidthKey: - // TabWidth is the only property that may have a negative value (and - // that negative value can be no less than -1). - s.tabWidth = value.(int) - case transformKey: - s.transform = value.(func(string) string) - default: - if v, ok := value.(bool); ok { //nolint:nestif - if v { - s.attrs |= int(key) - } else { - s.attrs &^= int(key) - } - } else if attrs, ok := value.(int); ok { - // bool attrs - if attrs&int(key) != 0 { - s.attrs |= int(key) - } else { - s.attrs &^= int(key) - } - } - } - - // Set the prop on - s.props = s.props.set(key) -} - -// setFrom sets the property from another style. -func (s *Style) setFrom(key propKey, i Style) { - switch key { //nolint:exhaustive - case foregroundKey: - s.set(foregroundKey, i.fgColor) - case backgroundKey: - s.set(backgroundKey, i.bgColor) - case widthKey: - s.set(widthKey, i.width) - case heightKey: - s.set(heightKey, i.height) - case alignHorizontalKey: - s.set(alignHorizontalKey, i.alignHorizontal) - case alignVerticalKey: - s.set(alignVerticalKey, i.alignVertical) - case paddingTopKey: - s.set(paddingTopKey, i.paddingTop) - case paddingRightKey: - s.set(paddingRightKey, i.paddingRight) - case paddingBottomKey: - s.set(paddingBottomKey, i.paddingBottom) - case paddingLeftKey: - s.set(paddingLeftKey, i.paddingLeft) - case marginTopKey: - s.set(marginTopKey, i.marginTop) - case marginRightKey: - s.set(marginRightKey, i.marginRight) - case marginBottomKey: - s.set(marginBottomKey, i.marginBottom) - case marginLeftKey: - s.set(marginLeftKey, i.marginLeft) - case marginBackgroundKey: - s.set(marginBackgroundKey, i.marginBgColor) - case borderStyleKey: - s.set(borderStyleKey, i.borderStyle) - case borderTopForegroundKey: - s.set(borderTopForegroundKey, i.borderTopFgColor) - case borderRightForegroundKey: - s.set(borderRightForegroundKey, i.borderRightFgColor) - case borderBottomForegroundKey: - s.set(borderBottomForegroundKey, i.borderBottomFgColor) - case borderLeftForegroundKey: - s.set(borderLeftForegroundKey, i.borderLeftFgColor) - case borderTopBackgroundKey: - s.set(borderTopBackgroundKey, i.borderTopBgColor) - case borderRightBackgroundKey: - s.set(borderRightBackgroundKey, i.borderRightBgColor) - case borderBottomBackgroundKey: - s.set(borderBottomBackgroundKey, i.borderBottomBgColor) - case borderLeftBackgroundKey: - s.set(borderLeftBackgroundKey, i.borderLeftBgColor) - case maxWidthKey: - s.set(maxWidthKey, i.maxWidth) - case maxHeightKey: - s.set(maxHeightKey, i.maxHeight) - case tabWidthKey: - s.set(tabWidthKey, i.tabWidth) - case transformKey: - s.set(transformKey, i.transform) - default: - // Set attributes for set bool properties - s.set(key, i.attrs) - } -} - -func colorOrNil(c interface{}) TerminalColor { - if c, ok := c.(TerminalColor); ok { - return c - } - return nil -} - -// Bold sets a bold formatting rule. -func (s Style) Bold(v bool) Style { - s.set(boldKey, v) - return s -} - -// Italic sets an italic formatting rule. In some terminal emulators this will -// render with "reverse" coloring if not italic font variant is available. -func (s Style) Italic(v bool) Style { - s.set(italicKey, v) - return s -} - -// Underline sets an underline rule. By default, underlines will not be drawn on -// whitespace like margins and padding. To change this behavior set -// UnderlineSpaces. -func (s Style) Underline(v bool) Style { - s.set(underlineKey, v) - return s -} - -// Strikethrough sets a strikethrough rule. By default, strikes will not be -// drawn on whitespace like margins and padding. To change this behavior set -// StrikethroughSpaces. -func (s Style) Strikethrough(v bool) Style { - s.set(strikethroughKey, v) - return s -} - -// Reverse sets a rule for inverting foreground and background colors. -func (s Style) Reverse(v bool) Style { - s.set(reverseKey, v) - return s -} - -// Blink sets a rule for blinking foreground text. -func (s Style) Blink(v bool) Style { - s.set(blinkKey, v) - return s -} - -// Faint sets a rule for rendering the foreground color in a dimmer shade. -func (s Style) Faint(v bool) Style { - s.set(faintKey, v) - return s -} - -// Foreground sets a foreground color. -// -// // Sets the foreground to blue -// s := lipgloss.NewStyle().Foreground(lipgloss.Color("#0000ff")) -// -// // Removes the foreground color -// s.Foreground(lipgloss.NoColor) -func (s Style) Foreground(c TerminalColor) Style { - s.set(foregroundKey, c) - return s -} - -// Background sets a background color. -func (s Style) Background(c TerminalColor) Style { - s.set(backgroundKey, c) - return s -} - -// Width sets the width of the block before applying margins. The width, if -// set, also determines where text will wrap. -func (s Style) Width(i int) Style { - s.set(widthKey, i) - return s -} - -// Height sets the height of the block before applying margins. If the height of -// the text block is less than this value after applying padding (or not), the -// block will be set to this height. -func (s Style) Height(i int) Style { - s.set(heightKey, i) - return s -} - -// Align is a shorthand method for setting horizontal and vertical alignment. -// -// With one argument, the position value is applied to the horizontal alignment. -// -// With two arguments, the value is applied to the horizontal and vertical -// alignments, in that order. -func (s Style) Align(p ...Position) Style { - if len(p) > 0 { - s.set(alignHorizontalKey, p[0]) - } - if len(p) > 1 { - s.set(alignVerticalKey, p[1]) - } - return s -} - -// AlignHorizontal sets a horizontal text alignment rule. -func (s Style) AlignHorizontal(p Position) Style { - s.set(alignHorizontalKey, p) - return s -} - -// AlignVertical sets a vertical text alignment rule. -func (s Style) AlignVertical(p Position) Style { - s.set(alignVerticalKey, p) - return s -} - -// Padding is a shorthand method for setting padding on all sides at once. -// -// With one argument, the value is applied to all sides. -// -// With two arguments, the value is applied to the vertical and horizontal -// sides, in that order. -// -// With three arguments, the value is applied to the top side, the horizontal -// sides, and the bottom side, in that order. -// -// With four arguments, the value is applied clockwise starting from the top -// side, followed by the right side, then the bottom, and finally the left. -// -// With more than four arguments no padding will be added. -func (s Style) Padding(i ...int) Style { - top, right, bottom, left, ok := whichSidesInt(i...) - if !ok { - return s - } - - s.set(paddingTopKey, top) - s.set(paddingRightKey, right) - s.set(paddingBottomKey, bottom) - s.set(paddingLeftKey, left) - return s -} - -// PaddingLeft adds padding on the left. -func (s Style) PaddingLeft(i int) Style { - s.set(paddingLeftKey, i) - return s -} - -// PaddingRight adds padding on the right. -func (s Style) PaddingRight(i int) Style { - s.set(paddingRightKey, i) - return s -} - -// PaddingTop adds padding to the top of the block. -func (s Style) PaddingTop(i int) Style { - s.set(paddingTopKey, i) - return s -} - -// PaddingBottom adds padding to the bottom of the block. -func (s Style) PaddingBottom(i int) Style { - s.set(paddingBottomKey, i) - return s -} - -// ColorWhitespace determines whether or not the background color should be -// applied to the padding. This is true by default as it's more than likely the -// desired and expected behavior, but it can be disabled for certain graphic -// effects. -// -// Deprecated: Just use margins and padding. -func (s Style) ColorWhitespace(v bool) Style { - s.set(colorWhitespaceKey, v) - return s -} - -// Margin is a shorthand method for setting margins on all sides at once. -// -// With one argument, the value is applied to all sides. -// -// With two arguments, the value is applied to the vertical and horizontal -// sides, in that order. -// -// With three arguments, the value is applied to the top side, the horizontal -// sides, and the bottom side, in that order. -// -// With four arguments, the value is applied clockwise starting from the top -// side, followed by the right side, then the bottom, and finally the left. -// -// With more than four arguments no margin will be added. -func (s Style) Margin(i ...int) Style { - top, right, bottom, left, ok := whichSidesInt(i...) - if !ok { - return s - } - - s.set(marginTopKey, top) - s.set(marginRightKey, right) - s.set(marginBottomKey, bottom) - s.set(marginLeftKey, left) - return s -} - -// MarginLeft sets the value of the left margin. -func (s Style) MarginLeft(i int) Style { - s.set(marginLeftKey, i) - return s -} - -// MarginRight sets the value of the right margin. -func (s Style) MarginRight(i int) Style { - s.set(marginRightKey, i) - return s -} - -// MarginTop sets the value of the top margin. -func (s Style) MarginTop(i int) Style { - s.set(marginTopKey, i) - return s -} - -// MarginBottom sets the value of the bottom margin. -func (s Style) MarginBottom(i int) Style { - s.set(marginBottomKey, i) - return s -} - -// MarginBackground sets the background color of the margin. Note that this is -// also set when inheriting from a style with a background color. In that case -// the background color on that style will set the margin color on this style. -func (s Style) MarginBackground(c TerminalColor) Style { - s.set(marginBackgroundKey, c) - return s -} - -// Border is shorthand for setting the border style and which sides should -// have a border at once. The variadic argument sides works as follows: -// -// With one value, the value is applied to all sides. -// -// With two values, the values are applied to the vertical and horizontal -// sides, in that order. -// -// With three values, the values are applied to the top side, the horizontal -// sides, and the bottom side, in that order. -// -// With four values, the values are applied clockwise starting from the top -// side, followed by the right side, then the bottom, and finally the left. -// -// With more than four arguments the border will be applied to all sides. -// -// Examples: -// -// // Applies borders to the top and bottom only -// lipgloss.NewStyle().Border(lipgloss.NormalBorder(), true, false) -// -// // Applies rounded borders to the right and bottom only -// lipgloss.NewStyle().Border(lipgloss.RoundedBorder(), false, true, true, false) -func (s Style) Border(b Border, sides ...bool) Style { - s.set(borderStyleKey, b) - - top, right, bottom, left, ok := whichSidesBool(sides...) - if !ok { - top = true - right = true - bottom = true - left = true - } - - s.set(borderTopKey, top) - s.set(borderRightKey, right) - s.set(borderBottomKey, bottom) - s.set(borderLeftKey, left) - - return s -} - -// BorderStyle defines the Border on a style. A Border contains a series of -// definitions for the sides and corners of a border. -// -// Note that if border visibility has not been set for any sides when setting -// the border style, the border will be enabled for all sides during rendering. -// -// You can define border characters as you'd like, though several default -// styles are included: NormalBorder(), RoundedBorder(), BlockBorder(), -// OuterHalfBlockBorder(), InnerHalfBlockBorder(), ThickBorder(), -// and DoubleBorder(). -// -// Example: -// -// lipgloss.NewStyle().BorderStyle(lipgloss.ThickBorder()) -func (s Style) BorderStyle(b Border) Style { - s.set(borderStyleKey, b) - return s -} - -// BorderTop determines whether or not to draw a top border. -func (s Style) BorderTop(v bool) Style { - s.set(borderTopKey, v) - return s -} - -// BorderRight determines whether or not to draw a right border. -func (s Style) BorderRight(v bool) Style { - s.set(borderRightKey, v) - return s -} - -// BorderBottom determines whether or not to draw a bottom border. -func (s Style) BorderBottom(v bool) Style { - s.set(borderBottomKey, v) - return s -} - -// BorderLeft determines whether or not to draw a left border. -func (s Style) BorderLeft(v bool) Style { - s.set(borderLeftKey, v) - return s -} - -// BorderForeground is a shorthand function for setting all of the -// foreground colors of the borders at once. The arguments work as follows: -// -// With one argument, the argument is applied to all sides. -// -// With two arguments, the arguments are applied to the vertical and horizontal -// sides, in that order. -// -// With three arguments, the arguments are applied to the top side, the -// horizontal sides, and the bottom side, in that order. -// -// With four arguments, the arguments are applied clockwise starting from the -// top side, followed by the right side, then the bottom, and finally the left. -// -// With more than four arguments nothing will be set. -func (s Style) BorderForeground(c ...TerminalColor) Style { - if len(c) == 0 { - return s - } - - top, right, bottom, left, ok := whichSidesColor(c...) - if !ok { - return s - } - - s.set(borderTopForegroundKey, top) - s.set(borderRightForegroundKey, right) - s.set(borderBottomForegroundKey, bottom) - s.set(borderLeftForegroundKey, left) - - return s -} - -// BorderTopForeground set the foreground color for the top of the border. -func (s Style) BorderTopForeground(c TerminalColor) Style { - s.set(borderTopForegroundKey, c) - return s -} - -// BorderRightForeground sets the foreground color for the right side of the -// border. -func (s Style) BorderRightForeground(c TerminalColor) Style { - s.set(borderRightForegroundKey, c) - return s -} - -// BorderBottomForeground sets the foreground color for the bottom of the -// border. -func (s Style) BorderBottomForeground(c TerminalColor) Style { - s.set(borderBottomForegroundKey, c) - return s -} - -// BorderLeftForeground sets the foreground color for the left side of the -// border. -func (s Style) BorderLeftForeground(c TerminalColor) Style { - s.set(borderLeftForegroundKey, c) - return s -} - -// BorderBackground is a shorthand function for setting all of the -// background colors of the borders at once. The arguments work as follows: -// -// With one argument, the argument is applied to all sides. -// -// With two arguments, the arguments are applied to the vertical and horizontal -// sides, in that order. -// -// With three arguments, the arguments are applied to the top side, the -// horizontal sides, and the bottom side, in that order. -// -// With four arguments, the arguments are applied clockwise starting from the -// top side, followed by the right side, then the bottom, and finally the left. -// -// With more than four arguments nothing will be set. -func (s Style) BorderBackground(c ...TerminalColor) Style { - if len(c) == 0 { - return s - } - - top, right, bottom, left, ok := whichSidesColor(c...) - if !ok { - return s - } - - s.set(borderTopBackgroundKey, top) - s.set(borderRightBackgroundKey, right) - s.set(borderBottomBackgroundKey, bottom) - s.set(borderLeftBackgroundKey, left) - - return s -} - -// BorderTopBackground sets the background color of the top of the border. -func (s Style) BorderTopBackground(c TerminalColor) Style { - s.set(borderTopBackgroundKey, c) - return s -} - -// BorderRightBackground sets the background color of right side the border. -func (s Style) BorderRightBackground(c TerminalColor) Style { - s.set(borderRightBackgroundKey, c) - return s -} - -// BorderBottomBackground sets the background color of the bottom of the -// border. -func (s Style) BorderBottomBackground(c TerminalColor) Style { - s.set(borderBottomBackgroundKey, c) - return s -} - -// BorderLeftBackground set the background color of the left side of the -// border. -func (s Style) BorderLeftBackground(c TerminalColor) Style { - s.set(borderLeftBackgroundKey, c) - return s -} - -// Inline makes rendering output one line and disables the rendering of -// margins, padding and borders. This is useful when you need a style to apply -// only to font rendering and don't want it to change any physical dimensions. -// It works well with Style.MaxWidth. -// -// Because this in intended to be used at the time of render, this method will -// not mutate the style and instead return a copy. -// -// Example: -// -// var userInput string = "..." -// var userStyle = text.Style{ /* ... */ } -// fmt.Println(userStyle.Inline(true).Render(userInput)) -func (s Style) Inline(v bool) Style { - o := s // copy - o.set(inlineKey, v) - return o -} - -// MaxWidth applies a max width to a given style. This is useful in enforcing -// a certain width at render time, particularly with arbitrary strings and -// styles. -// -// Because this in intended to be used at the time of render, this method will -// not mutate the style and instead return a copy. -// -// Example: -// -// var userInput string = "..." -// var userStyle = text.Style{ /* ... */ } -// fmt.Println(userStyle.MaxWidth(16).Render(userInput)) -func (s Style) MaxWidth(n int) Style { - o := s // copy - o.set(maxWidthKey, n) - return o -} - -// MaxHeight applies a max height to a given style. This is useful in enforcing -// a certain height at render time, particularly with arbitrary strings and -// styles. -// -// Because this in intended to be used at the time of render, this method will -// not mutate the style and instead returns a copy. -func (s Style) MaxHeight(n int) Style { - o := s // copy - o.set(maxHeightKey, n) - return o -} - -// NoTabConversion can be passed to [Style.TabWidth] to disable the replacement -// of tabs with spaces at render time. -const NoTabConversion = -1 - -// TabWidth sets the number of spaces that a tab (/t) should be rendered as. -// When set to 0, tabs will be removed. To disable the replacement of tabs with -// spaces entirely, set this to [NoTabConversion]. -// -// By default, tabs will be replaced with 4 spaces. -func (s Style) TabWidth(n int) Style { - if n <= -1 { - n = -1 - } - s.set(tabWidthKey, n) - return s -} - -// UnderlineSpaces determines whether to underline spaces between words. By -// default, this is true. Spaces can also be underlined without underlining the -// text itself. -func (s Style) UnderlineSpaces(v bool) Style { - s.set(underlineSpacesKey, v) - return s -} - -// StrikethroughSpaces determines whether to apply strikethroughs to spaces -// between words. By default, this is true. Spaces can also be struck without -// underlining the text itself. -func (s Style) StrikethroughSpaces(v bool) Style { - s.set(strikethroughSpacesKey, v) - return s -} - -// Transform applies a given function to a string at render time, allowing for -// the string being rendered to be manipuated. -// -// Example: -// -// s := NewStyle().Transform(strings.ToUpper) -// fmt.Println(s.Render("raow!") // "RAOW!" -func (s Style) Transform(fn func(string) string) Style { - s.set(transformKey, fn) - return s -} - -// Renderer sets the renderer for the style. This is useful for changing the -// renderer for a style that is being used in a different context. -func (s Style) Renderer(r *Renderer) Style { - s.r = r - return s -} - -// whichSidesInt is a helper method for setting values on sides of a block based -// on the number of arguments. It follows the CSS shorthand rules for blocks -// like margin, padding. and borders. Here are how the rules work: -// -// 0 args: do nothing -// 1 arg: all sides -// 2 args: top -> bottom -// 3 args: top -> horizontal -> bottom -// 4 args: top -> right -> bottom -> left -// 5+ args: do nothing. -func whichSidesInt(i ...int) (top, right, bottom, left int, ok bool) { - switch len(i) { - case 1: - top = i[0] - bottom = i[0] - left = i[0] - right = i[0] - ok = true - case 2: //nolint:mnd - top = i[0] - bottom = i[0] - left = i[1] - right = i[1] - ok = true - case 3: //nolint:mnd - top = i[0] - left = i[1] - right = i[1] - bottom = i[2] - ok = true - case 4: //nolint:mnd - top = i[0] - right = i[1] - bottom = i[2] - left = i[3] - ok = true - } - return top, right, bottom, left, ok -} - -// whichSidesBool is like whichSidesInt, except it operates on a series of -// boolean values. See the comment on whichSidesInt for details on how this -// works. -func whichSidesBool(i ...bool) (top, right, bottom, left bool, ok bool) { - switch len(i) { - case 1: - top = i[0] - bottom = i[0] - left = i[0] - right = i[0] - ok = true - case 2: //nolint:mnd - top = i[0] - bottom = i[0] - left = i[1] - right = i[1] - ok = true - case 3: //nolint:mnd - top = i[0] - left = i[1] - right = i[1] - bottom = i[2] - ok = true - case 4: //nolint:mnd - top = i[0] - right = i[1] - bottom = i[2] - left = i[3] - ok = true - } - return top, right, bottom, left, ok -} - -// whichSidesColor is like whichSides, except it operates on a series of -// boolean values. See the comment on whichSidesInt for details on how this -// works. -func whichSidesColor(i ...TerminalColor) (top, right, bottom, left TerminalColor, ok bool) { - switch len(i) { - case 1: - top = i[0] - bottom = i[0] - left = i[0] - right = i[0] - ok = true - case 2: //nolint:mnd - top = i[0] - bottom = i[0] - left = i[1] - right = i[1] - ok = true - case 3: //nolint:mnd - top = i[0] - left = i[1] - right = i[1] - bottom = i[2] - ok = true - case 4: //nolint:mnd - top = i[0] - right = i[1] - bottom = i[2] - left = i[3] - ok = true - } - return top, right, bottom, left, ok -} diff --git a/vendor/github.com/charmbracelet/lipgloss/size.go b/vendor/github.com/charmbracelet/lipgloss/size.go deleted file mode 100644 index e169ff5..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/size.go +++ /dev/null @@ -1,41 +0,0 @@ -package lipgloss - -import ( - "strings" - - "github.com/charmbracelet/x/ansi" -) - -// Width returns the cell width of characters in the string. ANSI sequences are -// ignored and characters wider than one cell (such as Chinese characters and -// emojis) are appropriately measured. -// -// You should use this instead of len(string) len([]rune(string) as neither -// will give you accurate results. -func Width(str string) (width int) { - for _, l := range strings.Split(str, "\n") { - w := ansi.StringWidth(l) - if w > width { - width = w - } - } - - return width -} - -// Height returns height of a string in cells. This is done simply by -// counting \n characters. If your strings use \r\n for newlines you should -// convert them to \n first, or simply write a separate function for measuring -// height. -func Height(str string) int { - return strings.Count(str, "\n") + 1 -} - -// Size returns the width and height of the string in cells. ANSI sequences are -// ignored and characters wider than one cell (such as Chinese characters and -// emojis) are appropriately measured. -func Size(str string) (width, height int) { - width = Width(str) - height = Height(str) - return width, height -} diff --git a/vendor/github.com/charmbracelet/lipgloss/style.go b/vendor/github.com/charmbracelet/lipgloss/style.go deleted file mode 100644 index 59fa3ab..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/style.go +++ /dev/null @@ -1,588 +0,0 @@ -package lipgloss - -import ( - "strings" - "unicode" - - "github.com/charmbracelet/x/ansi" - "github.com/charmbracelet/x/cellbuf" - "github.com/muesli/termenv" -) - -const tabWidthDefault = 4 - -// Property for a key. -type propKey int64 - -// Available properties. -const ( - // Boolean props come first. - boldKey propKey = 1 << iota - italicKey - underlineKey - strikethroughKey - reverseKey - blinkKey - faintKey - underlineSpacesKey - strikethroughSpacesKey - colorWhitespaceKey - - // Non-boolean props. - foregroundKey - backgroundKey - widthKey - heightKey - alignHorizontalKey - alignVerticalKey - - // Padding. - paddingTopKey - paddingRightKey - paddingBottomKey - paddingLeftKey - - // Margins. - marginTopKey - marginRightKey - marginBottomKey - marginLeftKey - marginBackgroundKey - - // Border runes. - borderStyleKey - - // Border edges. - borderTopKey - borderRightKey - borderBottomKey - borderLeftKey - - // Border foreground colors. - borderTopForegroundKey - borderRightForegroundKey - borderBottomForegroundKey - borderLeftForegroundKey - - // Border background colors. - borderTopBackgroundKey - borderRightBackgroundKey - borderBottomBackgroundKey - borderLeftBackgroundKey - - inlineKey - maxWidthKey - maxHeightKey - tabWidthKey - - transformKey -) - -// props is a set of properties. -type props int64 - -// set sets a property. -func (p props) set(k propKey) props { - return p | props(k) -} - -// unset unsets a property. -func (p props) unset(k propKey) props { - return p &^ props(k) -} - -// has checks if a property is set. -func (p props) has(k propKey) bool { - return p&props(k) != 0 -} - -// NewStyle returns a new, empty Style. While it's syntactic sugar for the -// Style{} primitive, it's recommended to use this function for creating styles -// in case the underlying implementation changes. It takes an optional string -// value to be set as the underlying string value for this style. -func NewStyle() Style { - return renderer.NewStyle() -} - -// NewStyle returns a new, empty Style. While it's syntactic sugar for the -// Style{} primitive, it's recommended to use this function for creating styles -// in case the underlying implementation changes. It takes an optional string -// value to be set as the underlying string value for this style. -func (r *Renderer) NewStyle() Style { - s := Style{r: r} - return s -} - -// Style contains a set of rules that comprise a style as a whole. -type Style struct { - r *Renderer - props props - value string - - // we store bool props values here - attrs int - - // props that have values - fgColor TerminalColor - bgColor TerminalColor - - width int - height int - - alignHorizontal Position - alignVertical Position - - paddingTop int - paddingRight int - paddingBottom int - paddingLeft int - - marginTop int - marginRight int - marginBottom int - marginLeft int - marginBgColor TerminalColor - - borderStyle Border - borderTopFgColor TerminalColor - borderRightFgColor TerminalColor - borderBottomFgColor TerminalColor - borderLeftFgColor TerminalColor - borderTopBgColor TerminalColor - borderRightBgColor TerminalColor - borderBottomBgColor TerminalColor - borderLeftBgColor TerminalColor - - maxWidth int - maxHeight int - tabWidth int - - transform func(string) string -} - -// joinString joins a list of strings into a single string separated with a -// space. -func joinString(strs ...string) string { - return strings.Join(strs, " ") -} - -// SetString sets the underlying string value for this style. To render once -// the underlying string is set, use the Style.String. This method is -// a convenience for cases when having a stringer implementation is handy, such -// as when using fmt.Sprintf. You can also simply define a style and render out -// strings directly with Style.Render. -func (s Style) SetString(strs ...string) Style { - s.value = joinString(strs...) - return s -} - -// Value returns the raw, unformatted, underlying string value for this style. -func (s Style) Value() string { - return s.value -} - -// String implements stringer for a Style, returning the rendered result based -// on the rules in this style. An underlying string value must be set with -// Style.SetString prior to using this method. -func (s Style) String() string { - return s.Render() -} - -// Copy returns a copy of this style, including any underlying string values. -// -// Deprecated: to copy just use assignment (i.e. a := b). All methods also -// return a new style. -func (s Style) Copy() Style { - return s -} - -// Inherit overlays the style in the argument onto this style by copying each explicitly -// set value from the argument style onto this style if it is not already explicitly set. -// Existing set values are kept intact and not overwritten. -// -// Margins, padding, and underlying string values are not inherited. -func (s Style) Inherit(i Style) Style { - for k := boldKey; k <= transformKey; k <<= 1 { - if !i.isSet(k) { - continue - } - - switch k { //nolint:exhaustive - case marginTopKey, marginRightKey, marginBottomKey, marginLeftKey: - // Margins are not inherited - continue - case paddingTopKey, paddingRightKey, paddingBottomKey, paddingLeftKey: - // Padding is not inherited - continue - case backgroundKey: - // The margins also inherit the background color - if !s.isSet(marginBackgroundKey) && !i.isSet(marginBackgroundKey) { - s.set(marginBackgroundKey, i.bgColor) - } - } - - if s.isSet(k) { - continue - } - - s.setFrom(k, i) - } - return s -} - -// Render applies the defined style formatting to a given string. -func (s Style) Render(strs ...string) string { - if s.r == nil { - s.r = renderer - } - if s.value != "" { - strs = append([]string{s.value}, strs...) - } - - var ( - str = joinString(strs...) - - p = s.r.ColorProfile() - te = p.String() - teSpace = p.String() - teWhitespace = p.String() - - bold = s.getAsBool(boldKey, false) - italic = s.getAsBool(italicKey, false) - underline = s.getAsBool(underlineKey, false) - strikethrough = s.getAsBool(strikethroughKey, false) - reverse = s.getAsBool(reverseKey, false) - blink = s.getAsBool(blinkKey, false) - faint = s.getAsBool(faintKey, false) - - fg = s.getAsColor(foregroundKey) - bg = s.getAsColor(backgroundKey) - - width = s.getAsInt(widthKey) - height = s.getAsInt(heightKey) - horizontalAlign = s.getAsPosition(alignHorizontalKey) - verticalAlign = s.getAsPosition(alignVerticalKey) - - topPadding = s.getAsInt(paddingTopKey) - rightPadding = s.getAsInt(paddingRightKey) - bottomPadding = s.getAsInt(paddingBottomKey) - leftPadding = s.getAsInt(paddingLeftKey) - - colorWhitespace = s.getAsBool(colorWhitespaceKey, true) - inline = s.getAsBool(inlineKey, false) - maxWidth = s.getAsInt(maxWidthKey) - maxHeight = s.getAsInt(maxHeightKey) - - underlineSpaces = s.getAsBool(underlineSpacesKey, false) || (underline && s.getAsBool(underlineSpacesKey, true)) - strikethroughSpaces = s.getAsBool(strikethroughSpacesKey, false) || (strikethrough && s.getAsBool(strikethroughSpacesKey, true)) - - // Do we need to style whitespace (padding and space outside - // paragraphs) separately? - styleWhitespace = reverse - - // Do we need to style spaces separately? - useSpaceStyler = (underline && !underlineSpaces) || (strikethrough && !strikethroughSpaces) || underlineSpaces || strikethroughSpaces - - transform = s.getAsTransform(transformKey) - ) - - if transform != nil { - str = transform(str) - } - - if s.props == 0 { - return s.maybeConvertTabs(str) - } - - // Enable support for ANSI on the legacy Windows cmd.exe console. This is a - // no-op on non-Windows systems and on Windows runs only once. - enableLegacyWindowsANSI() - - if bold { - te = te.Bold() - } - if italic { - te = te.Italic() - } - if underline { - te = te.Underline() - } - if reverse { - teWhitespace = teWhitespace.Reverse() - te = te.Reverse() - } - if blink { - te = te.Blink() - } - if faint { - te = te.Faint() - } - - if fg != noColor { - te = te.Foreground(fg.color(s.r)) - if styleWhitespace { - teWhitespace = teWhitespace.Foreground(fg.color(s.r)) - } - if useSpaceStyler { - teSpace = teSpace.Foreground(fg.color(s.r)) - } - } - - if bg != noColor { - te = te.Background(bg.color(s.r)) - if colorWhitespace { - teWhitespace = teWhitespace.Background(bg.color(s.r)) - } - if useSpaceStyler { - teSpace = teSpace.Background(bg.color(s.r)) - } - } - - if underline { - te = te.Underline() - } - if strikethrough { - te = te.CrossOut() - } - - if underlineSpaces { - teSpace = teSpace.Underline() - } - if strikethroughSpaces { - teSpace = teSpace.CrossOut() - } - - // Potentially convert tabs to spaces - str = s.maybeConvertTabs(str) - // carriage returns can cause strange behaviour when rendering. - str = strings.ReplaceAll(str, "\r\n", "\n") - - // Strip newlines in single line mode - if inline { - str = strings.ReplaceAll(str, "\n", "") - } - - // Word wrap - if !inline && width > 0 { - wrapAt := width - leftPadding - rightPadding - str = cellbuf.Wrap(str, wrapAt, "") - } - - // Render core text - { - var b strings.Builder - - l := strings.Split(str, "\n") - for i := range l { - if useSpaceStyler { - // Look for spaces and apply a different styler - for _, r := range l[i] { - if unicode.IsSpace(r) { - b.WriteString(teSpace.Styled(string(r))) - continue - } - b.WriteString(te.Styled(string(r))) - } - } else { - b.WriteString(te.Styled(l[i])) - } - if i != len(l)-1 { - b.WriteRune('\n') - } - } - - str = b.String() - } - - // Padding - if !inline { //nolint:nestif - if leftPadding > 0 { - var st *termenv.Style - if colorWhitespace || styleWhitespace { - st = &teWhitespace - } - str = padLeft(str, leftPadding, st) - } - - if rightPadding > 0 { - var st *termenv.Style - if colorWhitespace || styleWhitespace { - st = &teWhitespace - } - str = padRight(str, rightPadding, st) - } - - if topPadding > 0 { - str = strings.Repeat("\n", topPadding) + str - } - - if bottomPadding > 0 { - str += strings.Repeat("\n", bottomPadding) - } - } - - // Height - if height > 0 { - str = alignTextVertical(str, verticalAlign, height, nil) - } - - // Set alignment. This will also pad short lines with spaces so that all - // lines are the same length, so we run it under a few different conditions - // beyond alignment. - { - numLines := strings.Count(str, "\n") - - if numLines != 0 || width != 0 { - var st *termenv.Style - if colorWhitespace || styleWhitespace { - st = &teWhitespace - } - str = alignTextHorizontal(str, horizontalAlign, width, st) - } - } - - if !inline { - str = s.applyBorder(str) - str = s.applyMargins(str, inline) - } - - // Truncate according to MaxWidth - if maxWidth > 0 { - lines := strings.Split(str, "\n") - - for i := range lines { - lines[i] = ansi.Truncate(lines[i], maxWidth, "") - } - - str = strings.Join(lines, "\n") - } - - // Truncate according to MaxHeight - if maxHeight > 0 { - lines := strings.Split(str, "\n") - height := min(maxHeight, len(lines)) - if len(lines) > 0 { - str = strings.Join(lines[:height], "\n") - } - } - - return str -} - -func (s Style) maybeConvertTabs(str string) string { - tw := tabWidthDefault - if s.isSet(tabWidthKey) { - tw = s.getAsInt(tabWidthKey) - } - switch tw { - case -1: - return str - case 0: - return strings.ReplaceAll(str, "\t", "") - default: - return strings.ReplaceAll(str, "\t", strings.Repeat(" ", tw)) - } -} - -func (s Style) applyMargins(str string, inline bool) string { - var ( - topMargin = s.getAsInt(marginTopKey) - rightMargin = s.getAsInt(marginRightKey) - bottomMargin = s.getAsInt(marginBottomKey) - leftMargin = s.getAsInt(marginLeftKey) - - styler termenv.Style - ) - - bgc := s.getAsColor(marginBackgroundKey) - if bgc != noColor { - styler = styler.Background(bgc.color(s.r)) - } - - // Add left and right margin - str = padLeft(str, leftMargin, &styler) - str = padRight(str, rightMargin, &styler) - - // Top/bottom margin - if !inline { - _, width := getLines(str) - spaces := strings.Repeat(" ", width) - - if topMargin > 0 { - str = styler.Styled(strings.Repeat(spaces+"\n", topMargin)) + str - } - if bottomMargin > 0 { - str += styler.Styled(strings.Repeat("\n"+spaces, bottomMargin)) - } - } - - return str -} - -// Apply left padding. -func padLeft(str string, n int, style *termenv.Style) string { - return pad(str, -n, style) -} - -// Apply right padding. -func padRight(str string, n int, style *termenv.Style) string { - return pad(str, n, style) -} - -// pad adds padding to either the left or right side of a string. -// Positive values add to the right side while negative values -// add to the left side. -func pad(str string, n int, style *termenv.Style) string { - if n == 0 { - return str - } - - sp := strings.Repeat(" ", abs(n)) - if style != nil { - sp = style.Styled(sp) - } - - b := strings.Builder{} - l := strings.Split(str, "\n") - - for i := range l { - switch { - // pad right - case n > 0: - b.WriteString(l[i]) - b.WriteString(sp) - // pad left - default: - b.WriteString(sp) - b.WriteString(l[i]) - } - - if i != len(l)-1 { - b.WriteRune('\n') - } - } - - return b.String() -} - -func max(a, b int) int { //nolint:unparam,predeclared - if a > b { - return a - } - return b -} - -func min(a, b int) int { //nolint:predeclared - if a < b { - return a - } - return b -} - -func abs(a int) int { - if a < 0 { - return -a - } - - return a -} diff --git a/vendor/github.com/charmbracelet/lipgloss/unset.go b/vendor/github.com/charmbracelet/lipgloss/unset.go deleted file mode 100644 index 1086e72..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/unset.go +++ /dev/null @@ -1,331 +0,0 @@ -package lipgloss - -// unset unsets a property from a style. -func (s *Style) unset(key propKey) { - s.props = s.props.unset(key) -} - -// UnsetBold removes the bold style rule, if set. -func (s Style) UnsetBold() Style { - s.unset(boldKey) - return s -} - -// UnsetItalic removes the italic style rule, if set. -func (s Style) UnsetItalic() Style { - s.unset(italicKey) - return s -} - -// UnsetUnderline removes the underline style rule, if set. -func (s Style) UnsetUnderline() Style { - s.unset(underlineKey) - return s -} - -// UnsetStrikethrough removes the strikethrough style rule, if set. -func (s Style) UnsetStrikethrough() Style { - s.unset(strikethroughKey) - return s -} - -// UnsetReverse removes the reverse style rule, if set. -func (s Style) UnsetReverse() Style { - s.unset(reverseKey) - return s -} - -// UnsetBlink removes the blink style rule, if set. -func (s Style) UnsetBlink() Style { - s.unset(blinkKey) - return s -} - -// UnsetFaint removes the faint style rule, if set. -func (s Style) UnsetFaint() Style { - s.unset(faintKey) - return s -} - -// UnsetForeground removes the foreground style rule, if set. -func (s Style) UnsetForeground() Style { - s.unset(foregroundKey) - return s -} - -// UnsetBackground removes the background style rule, if set. -func (s Style) UnsetBackground() Style { - s.unset(backgroundKey) - return s -} - -// UnsetWidth removes the width style rule, if set. -func (s Style) UnsetWidth() Style { - s.unset(widthKey) - return s -} - -// UnsetHeight removes the height style rule, if set. -func (s Style) UnsetHeight() Style { - s.unset(heightKey) - return s -} - -// UnsetAlign removes the horizontal and vertical text alignment style rule, if set. -func (s Style) UnsetAlign() Style { - s.unset(alignHorizontalKey) - s.unset(alignVerticalKey) - return s -} - -// UnsetAlignHorizontal removes the horizontal text alignment style rule, if set. -func (s Style) UnsetAlignHorizontal() Style { - s.unset(alignHorizontalKey) - return s -} - -// UnsetAlignVertical removes the vertical text alignment style rule, if set. -func (s Style) UnsetAlignVertical() Style { - s.unset(alignVerticalKey) - return s -} - -// UnsetPadding removes all padding style rules. -func (s Style) UnsetPadding() Style { - s.unset(paddingLeftKey) - s.unset(paddingRightKey) - s.unset(paddingTopKey) - s.unset(paddingBottomKey) - return s -} - -// UnsetPaddingLeft removes the left padding style rule, if set. -func (s Style) UnsetPaddingLeft() Style { - s.unset(paddingLeftKey) - return s -} - -// UnsetPaddingRight removes the right padding style rule, if set. -func (s Style) UnsetPaddingRight() Style { - s.unset(paddingRightKey) - return s -} - -// UnsetPaddingTop removes the top padding style rule, if set. -func (s Style) UnsetPaddingTop() Style { - s.unset(paddingTopKey) - return s -} - -// UnsetPaddingBottom removes the bottom padding style rule, if set. -func (s Style) UnsetPaddingBottom() Style { - s.unset(paddingBottomKey) - return s -} - -// UnsetColorWhitespace removes the rule for coloring padding, if set. -func (s Style) UnsetColorWhitespace() Style { - s.unset(colorWhitespaceKey) - return s -} - -// UnsetMargins removes all margin style rules. -func (s Style) UnsetMargins() Style { - s.unset(marginLeftKey) - s.unset(marginRightKey) - s.unset(marginTopKey) - s.unset(marginBottomKey) - return s -} - -// UnsetMarginLeft removes the left margin style rule, if set. -func (s Style) UnsetMarginLeft() Style { - s.unset(marginLeftKey) - return s -} - -// UnsetMarginRight removes the right margin style rule, if set. -func (s Style) UnsetMarginRight() Style { - s.unset(marginRightKey) - return s -} - -// UnsetMarginTop removes the top margin style rule, if set. -func (s Style) UnsetMarginTop() Style { - s.unset(marginTopKey) - return s -} - -// UnsetMarginBottom removes the bottom margin style rule, if set. -func (s Style) UnsetMarginBottom() Style { - s.unset(marginBottomKey) - return s -} - -// UnsetMarginBackground removes the margin's background color. Note that the -// margin's background color can be set from the background color of another -// style during inheritance. -func (s Style) UnsetMarginBackground() Style { - s.unset(marginBackgroundKey) - return s -} - -// UnsetBorderStyle removes the border style rule, if set. -func (s Style) UnsetBorderStyle() Style { - s.unset(borderStyleKey) - return s -} - -// UnsetBorderTop removes the border top style rule, if set. -func (s Style) UnsetBorderTop() Style { - s.unset(borderTopKey) - return s -} - -// UnsetBorderRight removes the border right style rule, if set. -func (s Style) UnsetBorderRight() Style { - s.unset(borderRightKey) - return s -} - -// UnsetBorderBottom removes the border bottom style rule, if set. -func (s Style) UnsetBorderBottom() Style { - s.unset(borderBottomKey) - return s -} - -// UnsetBorderLeft removes the border left style rule, if set. -func (s Style) UnsetBorderLeft() Style { - s.unset(borderLeftKey) - return s -} - -// UnsetBorderForeground removes all border foreground color styles, if set. -func (s Style) UnsetBorderForeground() Style { - s.unset(borderTopForegroundKey) - s.unset(borderRightForegroundKey) - s.unset(borderBottomForegroundKey) - s.unset(borderLeftForegroundKey) - return s -} - -// UnsetBorderTopForeground removes the top border foreground color rule, -// if set. -func (s Style) UnsetBorderTopForeground() Style { - s.unset(borderTopForegroundKey) - return s -} - -// UnsetBorderRightForeground removes the right border foreground color rule, -// if set. -func (s Style) UnsetBorderRightForeground() Style { - s.unset(borderRightForegroundKey) - return s -} - -// UnsetBorderBottomForeground removes the bottom border foreground color -// rule, if set. -func (s Style) UnsetBorderBottomForeground() Style { - s.unset(borderBottomForegroundKey) - return s -} - -// UnsetBorderLeftForeground removes the left border foreground color rule, -// if set. -func (s Style) UnsetBorderLeftForeground() Style { - s.unset(borderLeftForegroundKey) - return s -} - -// UnsetBorderBackground removes all border background color styles, if -// set. -func (s Style) UnsetBorderBackground() Style { - s.unset(borderTopBackgroundKey) - s.unset(borderRightBackgroundKey) - s.unset(borderBottomBackgroundKey) - s.unset(borderLeftBackgroundKey) - return s -} - -// UnsetBorderTopBackgroundColor removes the top border background color rule, -// if set. -// -// Deprecated: This function simply calls Style.UnsetBorderTopBackground. -func (s Style) UnsetBorderTopBackgroundColor() Style { - return s.UnsetBorderTopBackground() -} - -// UnsetBorderTopBackground removes the top border background color rule, -// if set. -func (s Style) UnsetBorderTopBackground() Style { - s.unset(borderTopBackgroundKey) - return s -} - -// UnsetBorderRightBackground removes the right border background color -// rule, if set. -func (s Style) UnsetBorderRightBackground() Style { - s.unset(borderRightBackgroundKey) - return s -} - -// UnsetBorderBottomBackground removes the bottom border background color -// rule, if set. -func (s Style) UnsetBorderBottomBackground() Style { - s.unset(borderBottomBackgroundKey) - return s -} - -// UnsetBorderLeftBackground removes the left border color rule, if set. -func (s Style) UnsetBorderLeftBackground() Style { - s.unset(borderLeftBackgroundKey) - return s -} - -// UnsetInline removes the inline style rule, if set. -func (s Style) UnsetInline() Style { - s.unset(inlineKey) - return s -} - -// UnsetMaxWidth removes the max width style rule, if set. -func (s Style) UnsetMaxWidth() Style { - s.unset(maxWidthKey) - return s -} - -// UnsetMaxHeight removes the max height style rule, if set. -func (s Style) UnsetMaxHeight() Style { - s.unset(maxHeightKey) - return s -} - -// UnsetTabWidth removes the tab width style rule, if set. -func (s Style) UnsetTabWidth() Style { - s.unset(tabWidthKey) - return s -} - -// UnsetUnderlineSpaces removes the value set by UnderlineSpaces. -func (s Style) UnsetUnderlineSpaces() Style { - s.unset(underlineSpacesKey) - return s -} - -// UnsetStrikethroughSpaces removes the value set by StrikethroughSpaces. -func (s Style) UnsetStrikethroughSpaces() Style { - s.unset(strikethroughSpacesKey) - return s -} - -// UnsetTransform removes the value set by Transform. -func (s Style) UnsetTransform() Style { - s.unset(transformKey) - return s -} - -// UnsetString sets the underlying string value to the empty string. -func (s Style) UnsetString() Style { - s.value = "" - return s -} diff --git a/vendor/github.com/charmbracelet/lipgloss/whitespace.go b/vendor/github.com/charmbracelet/lipgloss/whitespace.go deleted file mode 100644 index 040dc98..0000000 --- a/vendor/github.com/charmbracelet/lipgloss/whitespace.go +++ /dev/null @@ -1,83 +0,0 @@ -package lipgloss - -import ( - "strings" - - "github.com/charmbracelet/x/ansi" - "github.com/muesli/termenv" -) - -// whitespace is a whitespace renderer. -type whitespace struct { - re *Renderer - style termenv.Style - chars string -} - -// newWhitespace creates a new whitespace renderer. The order of the options -// matters, if you're using WithWhitespaceRenderer, make sure it comes first as -// other options might depend on it. -func newWhitespace(r *Renderer, opts ...WhitespaceOption) *whitespace { - w := &whitespace{ - re: r, - style: r.ColorProfile().String(), - } - for _, opt := range opts { - opt(w) - } - return w -} - -// Render whitespaces. -func (w whitespace) render(width int) string { - if w.chars == "" { - w.chars = " " - } - - r := []rune(w.chars) - j := 0 - b := strings.Builder{} - - // Cycle through runes and print them into the whitespace. - for i := 0; i < width; { - b.WriteRune(r[j]) - j++ - if j >= len(r) { - j = 0 - } - i += ansi.StringWidth(string(r[j])) - } - - // Fill any extra gaps white spaces. This might be necessary if any runes - // are more than one cell wide, which could leave a one-rune gap. - short := width - ansi.StringWidth(b.String()) - if short > 0 { - b.WriteString(strings.Repeat(" ", short)) - } - - return w.style.Styled(b.String()) -} - -// WhitespaceOption sets a styling rule for rendering whitespace. -type WhitespaceOption func(*whitespace) - -// WithWhitespaceForeground sets the color of the characters in the whitespace. -func WithWhitespaceForeground(c TerminalColor) WhitespaceOption { - return func(w *whitespace) { - w.style = w.style.Foreground(c.color(w.re)) - } -} - -// WithWhitespaceBackground sets the background color of the whitespace. -func WithWhitespaceBackground(c TerminalColor) WhitespaceOption { - return func(w *whitespace) { - w.style = w.style.Background(c.color(w.re)) - } -} - -// WithWhitespaceChars sets the characters to be rendered in the whitespace. -func WithWhitespaceChars(s string) WhitespaceOption { - return func(w *whitespace) { - w.chars = s - } -} diff --git a/vendor/github.com/charmbracelet/x/ansi/LICENSE b/vendor/github.com/charmbracelet/x/ansi/LICENSE deleted file mode 100644 index 65a5654..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Charmbracelet, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/charmbracelet/x/ansi/ansi.go b/vendor/github.com/charmbracelet/x/ansi/ansi.go deleted file mode 100644 index d5a2f25..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/ansi.go +++ /dev/null @@ -1,11 +0,0 @@ -package ansi - -import "io" - -// Execute is a function that "execute" the given escape sequence by writing it -// to the provided output writter. -// -// This is a syntactic sugar over [io.WriteString]. -func Execute(w io.Writer, s string) (int, error) { - return io.WriteString(w, s) //nolint:wrapcheck -} diff --git a/vendor/github.com/charmbracelet/x/ansi/ascii.go b/vendor/github.com/charmbracelet/x/ansi/ascii.go deleted file mode 100644 index 188582f..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/ascii.go +++ /dev/null @@ -1,8 +0,0 @@ -package ansi - -const ( - // SP is the space character (Char: \x20). - SP = 0x20 - // DEL is the delete character (Caret: ^?, Char: \x7f). - DEL = 0x7F -) diff --git a/vendor/github.com/charmbracelet/x/ansi/background.go b/vendor/github.com/charmbracelet/x/ansi/background.go deleted file mode 100644 index 46f8214..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/background.go +++ /dev/null @@ -1,178 +0,0 @@ -package ansi - -import ( - "fmt" - "image/color" - - "github.com/lucasb-eyer/go-colorful" -) - -// HexColor is a [color.Color] that can be formatted as a hex string. -type HexColor string - -// RGBA returns the RGBA values of the color. -func (h HexColor) RGBA() (r, g, b, a uint32) { - hex := h.color() - if hex == nil { - return 0, 0, 0, 0 - } - return hex.RGBA() -} - -// Hex returns the hex representation of the color. If the color is invalid, it -// returns an empty string. -func (h HexColor) Hex() string { - hex := h.color() - if hex == nil { - return "" - } - return hex.Hex() -} - -// String returns the color as a hex string. If the color is nil, an empty -// string is returned. -func (h HexColor) String() string { - return h.Hex() -} - -// color returns the underlying color of the HexColor. -func (h HexColor) color() *colorful.Color { - hex, err := colorful.Hex(string(h)) - if err != nil { - return nil - } - return &hex -} - -// XRGBColor is a [color.Color] that can be formatted as an XParseColor -// rgb: string. -// -// See: https://linux.die.net/man/3/xparsecolor -type XRGBColor struct { - color.Color -} - -// RGBA returns the RGBA values of the color. -func (x XRGBColor) RGBA() (r, g, b, a uint32) { - if x.Color == nil { - return 0, 0, 0, 0 - } - return x.Color.RGBA() -} - -// String returns the color as an XParseColor rgb: string. If the color is nil, -// an empty string is returned. -func (x XRGBColor) String() string { - if x.Color == nil { - return "" - } - r, g, b, _ := x.Color.RGBA() - // Get the lower 8 bits - return fmt.Sprintf("rgb:%04x/%04x/%04x", r, g, b) -} - -// XRGBAColor is a [color.Color] that can be formatted as an XParseColor -// rgba: string. -// -// See: https://linux.die.net/man/3/xparsecolor -type XRGBAColor struct { - color.Color -} - -// RGBA returns the RGBA values of the color. -func (x XRGBAColor) RGBA() (r, g, b, a uint32) { - if x.Color == nil { - return 0, 0, 0, 0 - } - return x.Color.RGBA() -} - -// String returns the color as an XParseColor rgba: string. If the color is nil, -// an empty string is returned. -func (x XRGBAColor) String() string { - if x.Color == nil { - return "" - } - r, g, b, a := x.RGBA() - // Get the lower 8 bits - return fmt.Sprintf("rgba:%04x/%04x/%04x/%04x", r, g, b, a) -} - -// SetForegroundColor returns a sequence that sets the default terminal -// foreground color. -// -// OSC 10 ; color ST -// OSC 10 ; color BEL -// -// Where color is the encoded color number. Most terminals support hex, -// XParseColor rgb: and rgba: strings. You could use [HexColor], [XRGBColor], -// or [XRGBAColor] to format the color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -func SetForegroundColor(s string) string { - return "\x1b]10;" + s + "\x07" -} - -// RequestForegroundColor is a sequence that requests the current default -// terminal foreground color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -const RequestForegroundColor = "\x1b]10;?\x07" - -// ResetForegroundColor is a sequence that resets the default terminal -// foreground color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -const ResetForegroundColor = "\x1b]110\x07" - -// SetBackgroundColor returns a sequence that sets the default terminal -// background color. -// -// OSC 11 ; color ST -// OSC 11 ; color BEL -// -// Where color is the encoded color number. Most terminals support hex, -// XParseColor rgb: and rgba: strings. You could use [HexColor], [XRGBColor], -// or [XRGBAColor] to format the color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -func SetBackgroundColor(s string) string { - return "\x1b]11;" + s + "\x07" -} - -// RequestBackgroundColor is a sequence that requests the current default -// terminal background color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -const RequestBackgroundColor = "\x1b]11;?\x07" - -// ResetBackgroundColor is a sequence that resets the default terminal -// background color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -const ResetBackgroundColor = "\x1b]111\x07" - -// SetCursorColor returns a sequence that sets the terminal cursor color. -// -// OSC 12 ; color ST -// OSC 12 ; color BEL -// -// Where color is the encoded color number. Most terminals support hex, -// XParseColor rgb: and rgba: strings. You could use [HexColor], [XRGBColor], -// or [XRGBAColor] to format the color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -func SetCursorColor(s string) string { - return "\x1b]12;" + s + "\x07" -} - -// RequestCursorColor is a sequence that requests the current terminal cursor -// color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -const RequestCursorColor = "\x1b]12;?\x07" - -// ResetCursorColor is a sequence that resets the terminal cursor color. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -const ResetCursorColor = "\x1b]112\x07" diff --git a/vendor/github.com/charmbracelet/x/ansi/c0.go b/vendor/github.com/charmbracelet/x/ansi/c0.go deleted file mode 100644 index 28ff7c2..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/c0.go +++ /dev/null @@ -1,79 +0,0 @@ -package ansi - -// C0 control characters. -// -// These range from (0x00-0x1F) as defined in ISO 646 (ASCII). -// See: https://en.wikipedia.org/wiki/C0_and_C1_control_codes -const ( - // NUL is the null character (Caret: ^@, Char: \0). - NUL = 0x00 - // SOH is the start of heading character (Caret: ^A). - SOH = 0x01 - // STX is the start of text character (Caret: ^B). - STX = 0x02 - // ETX is the end of text character (Caret: ^C). - ETX = 0x03 - // EOT is the end of transmission character (Caret: ^D). - EOT = 0x04 - // ENQ is the enquiry character (Caret: ^E). - ENQ = 0x05 - // ACK is the acknowledge character (Caret: ^F). - ACK = 0x06 - // BEL is the bell character (Caret: ^G, Char: \a). - BEL = 0x07 - // BS is the backspace character (Caret: ^H, Char: \b). - BS = 0x08 - // HT is the horizontal tab character (Caret: ^I, Char: \t). - HT = 0x09 - // LF is the line feed character (Caret: ^J, Char: \n). - LF = 0x0A - // VT is the vertical tab character (Caret: ^K, Char: \v). - VT = 0x0B - // FF is the form feed character (Caret: ^L, Char: \f). - FF = 0x0C - // CR is the carriage return character (Caret: ^M, Char: \r). - CR = 0x0D - // SO is the shift out character (Caret: ^N). - SO = 0x0E - // SI is the shift in character (Caret: ^O). - SI = 0x0F - // DLE is the data link escape character (Caret: ^P). - DLE = 0x10 - // DC1 is the device control 1 character (Caret: ^Q). - DC1 = 0x11 - // DC2 is the device control 2 character (Caret: ^R). - DC2 = 0x12 - // DC3 is the device control 3 character (Caret: ^S). - DC3 = 0x13 - // DC4 is the device control 4 character (Caret: ^T). - DC4 = 0x14 - // NAK is the negative acknowledge character (Caret: ^U). - NAK = 0x15 - // SYN is the synchronous idle character (Caret: ^V). - SYN = 0x16 - // ETB is the end of transmission block character (Caret: ^W). - ETB = 0x17 - // CAN is the cancel character (Caret: ^X). - CAN = 0x18 - // EM is the end of medium character (Caret: ^Y). - EM = 0x19 - // SUB is the substitute character (Caret: ^Z). - SUB = 0x1A - // ESC is the escape character (Caret: ^[, Char: \e). - ESC = 0x1B - // FS is the file separator character (Caret: ^\). - FS = 0x1C - // GS is the group separator character (Caret: ^]). - GS = 0x1D - // RS is the record separator character (Caret: ^^). - RS = 0x1E - // US is the unit separator character (Caret: ^_). - US = 0x1F - - // LS0 is the locking shift 0 character. - // This is an alias for [SI]. - LS0 = SI - // LS1 is the locking shift 1 character. - // This is an alias for [SO]. - LS1 = SO -) diff --git a/vendor/github.com/charmbracelet/x/ansi/c1.go b/vendor/github.com/charmbracelet/x/ansi/c1.go deleted file mode 100644 index 71058f5..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/c1.go +++ /dev/null @@ -1,72 +0,0 @@ -package ansi - -// C1 control characters. -// -// These range from (0x80-0x9F) as defined in ISO 6429 (ECMA-48). -// See: https://en.wikipedia.org/wiki/C0_and_C1_control_codes -const ( - // PAD is the padding character. - PAD = 0x80 - // HOP is the high octet preset character. - HOP = 0x81 - // BPH is the break permitted here character. - BPH = 0x82 - // NBH is the no break here character. - NBH = 0x83 - // IND is the index character. - IND = 0x84 - // NEL is the next line character. - NEL = 0x85 - // SSA is the start of selected area character. - SSA = 0x86 - // ESA is the end of selected area character. - ESA = 0x87 - // HTS is the horizontal tab set character. - HTS = 0x88 - // HTJ is the horizontal tab with justification character. - HTJ = 0x89 - // VTS is the vertical tab set character. - VTS = 0x8A - // PLD is the partial line forward character. - PLD = 0x8B - // PLU is the partial line backward character. - PLU = 0x8C - // RI is the reverse index character. - RI = 0x8D - // SS2 is the single shift 2 character. - SS2 = 0x8E - // SS3 is the single shift 3 character. - SS3 = 0x8F - // DCS is the device control string character. - DCS = 0x90 - // PU1 is the private use 1 character. - PU1 = 0x91 - // PU2 is the private use 2 character. - PU2 = 0x92 - // STS is the set transmit state character. - STS = 0x93 - // CCH is the cancel character. - CCH = 0x94 - // MW is the message waiting character. - MW = 0x95 - // SPA is the start of guarded area character. - SPA = 0x96 - // EPA is the end of guarded area character. - EPA = 0x97 - // SOS is the start of string character. - SOS = 0x98 - // SGCI is the single graphic character introducer character. - SGCI = 0x99 - // SCI is the single character introducer character. - SCI = 0x9A - // CSI is the control sequence introducer character. - CSI = 0x9B - // ST is the string terminator character. - ST = 0x9C - // OSC is the operating system command character. - OSC = 0x9D - // PM is the privacy message character. - PM = 0x9E - // APC is the application program command character. - APC = 0x9F -) diff --git a/vendor/github.com/charmbracelet/x/ansi/charset.go b/vendor/github.com/charmbracelet/x/ansi/charset.go deleted file mode 100644 index 02edfe7..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/charset.go +++ /dev/null @@ -1,55 +0,0 @@ -package ansi - -// SelectCharacterSet sets the G-set character designator to the specified -// character set. -// -// ESC Ps Pd -// -// Where Ps is the G-set character designator, and Pd is the identifier. -// For 94-character sets, the designator can be one of: -// - ( G0 -// - ) G1 -// - * G2 -// - + G3 -// -// For 96-character sets, the designator can be one of: -// - - G1 -// - . G2 -// - / G3 -// -// Some common 94-character sets are: -// - 0 DEC Special Drawing Set -// - A United Kingdom (UK) -// - B United States (USASCII) -// -// Examples: -// -// ESC ( B Select character set G0 = United States (USASCII) -// ESC ( 0 Select character set G0 = Special Character and Line Drawing Set -// ESC ) 0 Select character set G1 = Special Character and Line Drawing Set -// ESC * A Select character set G2 = United Kingdom (UK) -// -// See: https://vt100.net/docs/vt510-rm/SCS.html -func SelectCharacterSet(gset byte, charset byte) string { - return "\x1b" + string(gset) + string(charset) -} - -// SCS is an alias for SelectCharacterSet. -func SCS(gset byte, charset byte) string { - return SelectCharacterSet(gset, charset) -} - -// LS1R (Locking Shift 1 Right) shifts G1 into GR character set. -const LS1R = "\x1b~" - -// LS2 (Locking Shift 2) shifts G2 into GL character set. -const LS2 = "\x1bn" - -// LS2R (Locking Shift 2 Right) shifts G2 into GR character set. -const LS2R = "\x1b}" - -// LS3 (Locking Shift 3) shifts G3 into GL character set. -const LS3 = "\x1bo" - -// LS3R (Locking Shift 3 Right) shifts G3 into GR character set. -const LS3R = "\x1b|" diff --git a/vendor/github.com/charmbracelet/x/ansi/clipboard.go b/vendor/github.com/charmbracelet/x/ansi/clipboard.go deleted file mode 100644 index 94d26c3..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/clipboard.go +++ /dev/null @@ -1,75 +0,0 @@ -package ansi - -import "encoding/base64" - -// Clipboard names. -const ( - SystemClipboard = 'c' - PrimaryClipboard = 'p' -) - -// SetClipboard returns a sequence for manipulating the clipboard. -// -// OSC 52 ; Pc ; Pd ST -// OSC 52 ; Pc ; Pd BEL -// -// Where Pc is the clipboard name and Pd is the base64 encoded data. -// Empty data or invalid base64 data will reset the clipboard. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -func SetClipboard(c byte, d string) string { - if d != "" { - d = base64.StdEncoding.EncodeToString([]byte(d)) - } - return "\x1b]52;" + string(c) + ";" + d + "\x07" -} - -// SetSystemClipboard returns a sequence for setting the system clipboard. -// -// This is equivalent to SetClipboard(SystemClipboard, d). -func SetSystemClipboard(d string) string { - return SetClipboard(SystemClipboard, d) -} - -// SetPrimaryClipboard returns a sequence for setting the primary clipboard. -// -// This is equivalent to SetClipboard(PrimaryClipboard, d). -func SetPrimaryClipboard(d string) string { - return SetClipboard(PrimaryClipboard, d) -} - -// ResetClipboard returns a sequence for resetting the clipboard. -// -// This is equivalent to SetClipboard(c, ""). -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -func ResetClipboard(c byte) string { - return SetClipboard(c, "") -} - -// ResetSystemClipboard is a sequence for resetting the system clipboard. -// -// This is equivalent to ResetClipboard(SystemClipboard). -const ResetSystemClipboard = "\x1b]52;c;\x07" - -// ResetPrimaryClipboard is a sequence for resetting the primary clipboard. -// -// This is equivalent to ResetClipboard(PrimaryClipboard). -const ResetPrimaryClipboard = "\x1b]52;p;\x07" - -// RequestClipboard returns a sequence for requesting the clipboard. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -func RequestClipboard(c byte) string { - return "\x1b]52;" + string(c) + ";?\x07" -} - -// RequestSystemClipboard is a sequence for requesting the system clipboard. -// -// This is equivalent to RequestClipboard(SystemClipboard). -const RequestSystemClipboard = "\x1b]52;c;?\x07" - -// RequestPrimaryClipboard is a sequence for requesting the primary clipboard. -// -// This is equivalent to RequestClipboard(PrimaryClipboard). -const RequestPrimaryClipboard = "\x1b]52;p;?\x07" diff --git a/vendor/github.com/charmbracelet/x/ansi/color.go b/vendor/github.com/charmbracelet/x/ansi/color.go deleted file mode 100644 index 09feb97..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/color.go +++ /dev/null @@ -1,784 +0,0 @@ -package ansi - -import ( - "image/color" - - "github.com/lucasb-eyer/go-colorful" -) - -// Color is a color that can be used in a terminal. ANSI (including -// ANSI256) and 24-bit "true colors" fall under this category. -type Color interface { - color.Color -} - -// BasicColor is an ANSI 3-bit or 4-bit color with a value from 0 to 15. -type BasicColor uint8 - -var _ Color = BasicColor(0) - -const ( - // Black is the ANSI black color. - Black BasicColor = iota - - // Red is the ANSI red color. - Red - - // Green is the ANSI green color. - Green - - // Yellow is the ANSI yellow color. - Yellow - - // Blue is the ANSI blue color. - Blue - - // Magenta is the ANSI magenta color. - Magenta - - // Cyan is the ANSI cyan color. - Cyan - - // White is the ANSI white color. - White - - // BrightBlack is the ANSI bright black color. - BrightBlack - - // BrightRed is the ANSI bright red color. - BrightRed - - // BrightGreen is the ANSI bright green color. - BrightGreen - - // BrightYellow is the ANSI bright yellow color. - BrightYellow - - // BrightBlue is the ANSI bright blue color. - BrightBlue - - // BrightMagenta is the ANSI bright magenta color. - BrightMagenta - - // BrightCyan is the ANSI bright cyan color. - BrightCyan - - // BrightWhite is the ANSI bright white color. - BrightWhite -) - -// RGBA returns the red, green, blue and alpha components of the color. It -// satisfies the color.Color interface. -func (c BasicColor) RGBA() (uint32, uint32, uint32, uint32) { - ansi := uint32(c) - if ansi > 15 { - return 0, 0, 0, 0xffff - } - - return ansiToRGB(byte(ansi)).RGBA() -} - -// IndexedColor is an ANSI 256 (8-bit) color with a value from 0 to 255. -type IndexedColor uint8 - -var _ Color = IndexedColor(0) - -// RGBA returns the red, green, blue and alpha components of the color. It -// satisfies the color.Color interface. -func (c IndexedColor) RGBA() (uint32, uint32, uint32, uint32) { - return ansiToRGB(byte(c)).RGBA() -} - -// ExtendedColor is an ANSI 256 (8-bit) color with a value from 0 to 255. -// -// Deprecated: use [IndexedColor] instead. -type ExtendedColor = IndexedColor - -// TrueColor is a 24-bit color that can be used in the terminal. -// This can be used to represent RGB colors. -// -// For example, the color red can be represented as: -// -// TrueColor(0xff0000) -// -// Deprecated: use [RGBColor] instead. -type TrueColor uint32 - -var _ Color = TrueColor(0) - -// RGBA returns the red, green, blue and alpha components of the color. It -// satisfies the color.Color interface. -func (c TrueColor) RGBA() (uint32, uint32, uint32, uint32) { - r, g, b := hexToRGB(uint32(c)) - return toRGBA(r, g, b) -} - -// RGBColor is a 24-bit color that can be used in the terminal. -// This can be used to represent RGB colors. -type RGBColor struct { - R uint8 - G uint8 - B uint8 -} - -// RGBA returns the red, green, blue and alpha components of the color. It -// satisfies the color.Color interface. -func (c RGBColor) RGBA() (uint32, uint32, uint32, uint32) { - return toRGBA(uint32(c.R), uint32(c.G), uint32(c.B)) -} - -// ansiToRGB converts an ANSI color to a 24-bit RGB color. -// -// r, g, b := ansiToRGB(57) -func ansiToRGB(ansi byte) color.Color { - return ansiHex[ansi] -} - -// hexToRGB converts a number in hexadecimal format to red, green, and blue -// values. -// -// r, g, b := hexToRGB(0x0000FF) -func hexToRGB(hex uint32) (uint32, uint32, uint32) { - return hex >> 16 & 0xff, hex >> 8 & 0xff, hex & 0xff -} - -// toRGBA converts an RGB 8-bit color values to 32-bit color values suitable -// for color.Color. -// -// color.Color requires 16-bit color values, so we duplicate the 8-bit values -// to fill the 16-bit values. -// -// This always returns 0xffff (opaque) for the alpha channel. -func toRGBA(r, g, b uint32) (uint32, uint32, uint32, uint32) { - r |= r << 8 - g |= g << 8 - b |= b << 8 - return r, g, b, 0xffff -} - -//nolint:unused -func distSq(r1, g1, b1, r2, g2, b2 int) int { - return ((r1-r2)*(r1-r2) + (g1-g2)*(g1-g2) + (b1-b2)*(b1-b2)) -} - -func to6Cube[T int | float64](v T) int { - if v < 48 { - return 0 - } - if v < 115 { - return 1 - } - return int((v - 35) / 40) -} - -// Convert256 converts a [color.Color], usually a 24-bit color, to xterm(1) 256 -// color palette. -// -// xterm provides a 6x6x6 color cube (16 - 231) and 24 greys (232 - 255). We -// map our RGB color to the closest in the cube, also work out the closest -// grey, and use the nearest of the two based on the lightness of the color. -// -// Note that the xterm has much lower resolution for darker colors (they are -// not evenly spread out), so our 6 levels are not evenly spread: 0x0, 0x5f -// (95), 0x87 (135), 0xaf (175), 0xd7 (215) and 0xff (255). Greys are more -// evenly spread (8, 18, 28 ... 238). -func Convert256(c color.Color) IndexedColor { - // If the color is already an IndexedColor, return it. - if i, ok := c.(IndexedColor); ok { - return i - } - - // Note: this is mostly ported from tmux/colour.c. - col, ok := colorful.MakeColor(c) - if !ok { - return IndexedColor(0) - } - - r := col.R * 255 - g := col.G * 255 - b := col.B * 255 - - q2c := [6]int{0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff} - - // Map RGB to 6x6x6 cube. - qr := to6Cube(r) - cr := q2c[qr] - qg := to6Cube(g) - cg := q2c[qg] - qb := to6Cube(b) - cb := q2c[qb] - - // If we have hit the color exactly, return early. - ci := (36 * qr) + (6 * qg) + qb - if cr == int(r) && cg == int(g) && cb == int(b) { - return IndexedColor(16 + ci) //nolint:gosec - } - - // Work out the closest grey (average of RGB). - greyAvg := int(r+g+b) / 3 - var greyIdx int - if greyAvg > 238 { - greyIdx = 23 - } else { - greyIdx = (greyAvg - 3) / 10 - } - grey := 8 + (10 * greyIdx) - - // Return the one which is nearer to the original input rgb value - // XXX: This is where it differs from tmux's implementation, we prefer the - // closer color to the original in terms of light distances rather than the - // cube distance. - c2 := colorful.Color{R: float64(cr) / 255.0, G: float64(cg) / 255.0, B: float64(cb) / 255.0} - g2 := colorful.Color{R: float64(grey) / 255.0, G: float64(grey) / 255.0, B: float64(grey) / 255.0} - colorDist := col.DistanceHSLuv(c2) - grayDist := col.DistanceHSLuv(g2) - - if colorDist <= grayDist { - return IndexedColor(16 + ci) //nolint:gosec - } - return IndexedColor(232 + greyIdx) //nolint:gosec - - // // Is grey or 6x6x6 color closest? - // d := distSq(cr, cg, cb, int(r), int(g), int(b)) - // if distSq(grey, grey, grey, int(r), int(g), int(b)) < d { - // return IndexedColor(232 + greyIdx) //nolint:gosec - // } - // return IndexedColor(16 + ci) //nolint:gosec -} - -// Convert16 converts a [color.Color] to a 16-color ANSI color. It will first -// try to find a match in the 256 xterm(1) color palette, and then map that to -// the 16-color ANSI palette. -func Convert16(c color.Color) BasicColor { - switch c := c.(type) { - case BasicColor: - // If the color is already a BasicColor, return it. - return c - case IndexedColor: - // If the color is already an IndexedColor, return the corresponding - // BasicColor. - return ansi256To16[c] - default: - c256 := Convert256(c) - return ansi256To16[c256] - } -} - -// RGB values of ANSI colors (0-255). -var ansiHex = [...]color.RGBA{ - 0: {R: 0x00, G: 0x00, B: 0x00, A: 0xff}, // "#000000" - 1: {R: 0x80, G: 0x00, B: 0x00, A: 0xff}, // "#800000" - 2: {R: 0x00, G: 0x80, B: 0x00, A: 0xff}, // "#008000" - 3: {R: 0x80, G: 0x80, B: 0x00, A: 0xff}, // "#808000" - 4: {R: 0x00, G: 0x00, B: 0x80, A: 0xff}, // "#000080" - 5: {R: 0x80, G: 0x00, B: 0x80, A: 0xff}, // "#800080" - 6: {R: 0x00, G: 0x80, B: 0x80, A: 0xff}, // "#008080" - 7: {R: 0xc0, G: 0xc0, B: 0xc0, A: 0xff}, // "#c0c0c0" - 8: {R: 0x80, G: 0x80, B: 0x80, A: 0xff}, // "#808080" - 9: {R: 0xff, G: 0x00, B: 0x00, A: 0xff}, // "#ff0000" - 10: {R: 0x00, G: 0xff, B: 0x00, A: 0xff}, // "#00ff00" - 11: {R: 0xff, G: 0xff, B: 0x00, A: 0xff}, // "#ffff00" - 12: {R: 0x00, G: 0x00, B: 0xff, A: 0xff}, // "#0000ff" - 13: {R: 0xff, G: 0x00, B: 0xff, A: 0xff}, // "#ff00ff" - 14: {R: 0x00, G: 0xff, B: 0xff, A: 0xff}, // "#00ffff" - 15: {R: 0xff, G: 0xff, B: 0xff, A: 0xff}, // "#ffffff" - 16: {R: 0x00, G: 0x00, B: 0x00, A: 0xff}, // "#000000" - 17: {R: 0x00, G: 0x00, B: 0x5f, A: 0xff}, // "#00005f" - 18: {R: 0x00, G: 0x00, B: 0x87, A: 0xff}, // "#000087" - 19: {R: 0x00, G: 0x00, B: 0xaf, A: 0xff}, // "#0000af" - 20: {R: 0x00, G: 0x00, B: 0xd7, A: 0xff}, // "#0000d7" - 21: {R: 0x00, G: 0x00, B: 0xff, A: 0xff}, // "#0000ff" - 22: {R: 0x00, G: 0x5f, B: 0x00, A: 0xff}, // "#005f00" - 23: {R: 0x00, G: 0x5f, B: 0x5f, A: 0xff}, // "#005f5f" - 24: {R: 0x00, G: 0x5f, B: 0x87, A: 0xff}, // "#005f87" - 25: {R: 0x00, G: 0x5f, B: 0xaf, A: 0xff}, // "#005faf" - 26: {R: 0x00, G: 0x5f, B: 0xd7, A: 0xff}, // "#005fd7" - 27: {R: 0x00, G: 0x5f, B: 0xff, A: 0xff}, // "#005fff" - 28: {R: 0x00, G: 0x87, B: 0x00, A: 0xff}, // "#008700" - 29: {R: 0x00, G: 0x87, B: 0x5f, A: 0xff}, // "#00875f" - 30: {R: 0x00, G: 0x87, B: 0x87, A: 0xff}, // "#008787" - 31: {R: 0x00, G: 0x87, B: 0xaf, A: 0xff}, // "#0087af" - 32: {R: 0x00, G: 0x87, B: 0xd7, A: 0xff}, // "#0087d7" - 33: {R: 0x00, G: 0x87, B: 0xff, A: 0xff}, // "#0087ff" - 34: {R: 0x00, G: 0xaf, B: 0x00, A: 0xff}, // "#00af00" - 35: {R: 0x00, G: 0xaf, B: 0x5f, A: 0xff}, // "#00af5f" - 36: {R: 0x00, G: 0xaf, B: 0x87, A: 0xff}, // "#00af87" - 37: {R: 0x00, G: 0xaf, B: 0xaf, A: 0xff}, // "#00afaf" - 38: {R: 0x00, G: 0xaf, B: 0xd7, A: 0xff}, // "#00afd7" - 39: {R: 0x00, G: 0xaf, B: 0xff, A: 0xff}, // "#00afff" - 40: {R: 0x00, G: 0xd7, B: 0x00, A: 0xff}, // "#00d700" - 41: {R: 0x00, G: 0xd7, B: 0x5f, A: 0xff}, // "#00d75f" - 42: {R: 0x00, G: 0xd7, B: 0x87, A: 0xff}, // "#00d787" - 43: {R: 0x00, G: 0xd7, B: 0xaf, A: 0xff}, // "#00d7af" - 44: {R: 0x00, G: 0xd7, B: 0xd7, A: 0xff}, // "#00d7d7" - 45: {R: 0x00, G: 0xd7, B: 0xff, A: 0xff}, // "#00d7ff" - 46: {R: 0x00, G: 0xff, B: 0x00, A: 0xff}, // "#00ff00" - 47: {R: 0x00, G: 0xff, B: 0x5f, A: 0xff}, // "#00ff5f" - 48: {R: 0x00, G: 0xff, B: 0x87, A: 0xff}, // "#00ff87" - 49: {R: 0x00, G: 0xff, B: 0xaf, A: 0xff}, // "#00ffaf" - 50: {R: 0x00, G: 0xff, B: 0xd7, A: 0xff}, // "#00ffd7" - 51: {R: 0x00, G: 0xff, B: 0xff, A: 0xff}, // "#00ffff" - 52: {R: 0x5f, G: 0x00, B: 0x00, A: 0xff}, // "#5f0000" - 53: {R: 0x5f, G: 0x00, B: 0x5f, A: 0xff}, // "#5f005f" - 54: {R: 0x5f, G: 0x00, B: 0x87, A: 0xff}, // "#5f0087" - 55: {R: 0x5f, G: 0x00, B: 0xaf, A: 0xff}, // "#5f00af" - 56: {R: 0x5f, G: 0x00, B: 0xd7, A: 0xff}, // "#5f00d7" - 57: {R: 0x5f, G: 0x00, B: 0xff, A: 0xff}, // "#5f00ff" - 58: {R: 0x5f, G: 0x5f, B: 0x00, A: 0xff}, // "#5f5f00" - 59: {R: 0x5f, G: 0x5f, B: 0x5f, A: 0xff}, // "#5f5f5f" - 60: {R: 0x5f, G: 0x5f, B: 0x87, A: 0xff}, // "#5f5f87" - 61: {R: 0x5f, G: 0x5f, B: 0xaf, A: 0xff}, // "#5f5faf" - 62: {R: 0x5f, G: 0x5f, B: 0xd7, A: 0xff}, // "#5f5fd7" - 63: {R: 0x5f, G: 0x5f, B: 0xff, A: 0xff}, // "#5f5fff" - 64: {R: 0x5f, G: 0x87, B: 0x00, A: 0xff}, // "#5f8700" - 65: {R: 0x5f, G: 0x87, B: 0x5f, A: 0xff}, // "#5f875f" - 66: {R: 0x5f, G: 0x87, B: 0x87, A: 0xff}, // "#5f8787" - 67: {R: 0x5f, G: 0x87, B: 0xaf, A: 0xff}, // "#5f87af" - 68: {R: 0x5f, G: 0x87, B: 0xd7, A: 0xff}, // "#5f87d7" - 69: {R: 0x5f, G: 0x87, B: 0xff, A: 0xff}, // "#5f87ff" - 70: {R: 0x5f, G: 0xaf, B: 0x00, A: 0xff}, // "#5faf00" - 71: {R: 0x5f, G: 0xaf, B: 0x5f, A: 0xff}, // "#5faf5f" - 72: {R: 0x5f, G: 0xaf, B: 0x87, A: 0xff}, // "#5faf87" - 73: {R: 0x5f, G: 0xaf, B: 0xaf, A: 0xff}, // "#5fafaf" - 74: {R: 0x5f, G: 0xaf, B: 0xd7, A: 0xff}, // "#5fafd7" - 75: {R: 0x5f, G: 0xaf, B: 0xff, A: 0xff}, // "#5fafff" - 76: {R: 0x5f, G: 0xd7, B: 0x00, A: 0xff}, // "#5fd700" - 77: {R: 0x5f, G: 0xd7, B: 0x5f, A: 0xff}, // "#5fd75f" - 78: {R: 0x5f, G: 0xd7, B: 0x87, A: 0xff}, // "#5fd787" - 79: {R: 0x5f, G: 0xd7, B: 0xaf, A: 0xff}, // "#5fd7af" - 80: {R: 0x5f, G: 0xd7, B: 0xd7, A: 0xff}, // "#5fd7d7" - 81: {R: 0x5f, G: 0xd7, B: 0xff, A: 0xff}, // "#5fd7ff" - 82: {R: 0x5f, G: 0xff, B: 0x00, A: 0xff}, // "#5fff00" - 83: {R: 0x5f, G: 0xff, B: 0x5f, A: 0xff}, // "#5fff5f" - 84: {R: 0x5f, G: 0xff, B: 0x87, A: 0xff}, // "#5fff87" - 85: {R: 0x5f, G: 0xff, B: 0xaf, A: 0xff}, // "#5fffaf" - 86: {R: 0x5f, G: 0xff, B: 0xd7, A: 0xff}, // "#5fffd7" - 87: {R: 0x5f, G: 0xff, B: 0xff, A: 0xff}, // "#5fffff" - 88: {R: 0x87, G: 0x00, B: 0x00, A: 0xff}, // "#870000" - 89: {R: 0x87, G: 0x00, B: 0x5f, A: 0xff}, // "#87005f" - 90: {R: 0x87, G: 0x00, B: 0x87, A: 0xff}, // "#870087" - 91: {R: 0x87, G: 0x00, B: 0xaf, A: 0xff}, // "#8700af" - 92: {R: 0x87, G: 0x00, B: 0xd7, A: 0xff}, // "#8700d7" - 93: {R: 0x87, G: 0x00, B: 0xff, A: 0xff}, // "#8700ff" - 94: {R: 0x87, G: 0x5f, B: 0x00, A: 0xff}, // "#875f00" - 95: {R: 0x87, G: 0x5f, B: 0x5f, A: 0xff}, // "#875f5f" - 96: {R: 0x87, G: 0x5f, B: 0x87, A: 0xff}, // "#875f87" - 97: {R: 0x87, G: 0x5f, B: 0xaf, A: 0xff}, // "#875faf" - 98: {R: 0x87, G: 0x5f, B: 0xd7, A: 0xff}, // "#875fd7" - 99: {R: 0x87, G: 0x5f, B: 0xff, A: 0xff}, // "#875fff" - 100: {R: 0x87, G: 0x87, B: 0x00, A: 0xff}, // "#878700" - 101: {R: 0x87, G: 0x87, B: 0x5f, A: 0xff}, // "#87875f" - 102: {R: 0x87, G: 0x87, B: 0x87, A: 0xff}, // "#878787" - 103: {R: 0x87, G: 0x87, B: 0xaf, A: 0xff}, // "#8787af" - 104: {R: 0x87, G: 0x87, B: 0xd7, A: 0xff}, // "#8787d7" - 105: {R: 0x87, G: 0x87, B: 0xff, A: 0xff}, // "#8787ff" - 106: {R: 0x87, G: 0xaf, B: 0x00, A: 0xff}, // "#87af00" - 107: {R: 0x87, G: 0xaf, B: 0x5f, A: 0xff}, // "#87af5f" - 108: {R: 0x87, G: 0xaf, B: 0x87, A: 0xff}, // "#87af87" - 109: {R: 0x87, G: 0xaf, B: 0xaf, A: 0xff}, // "#87afaf" - 110: {R: 0x87, G: 0xaf, B: 0xd7, A: 0xff}, // "#87afd7" - 111: {R: 0x87, G: 0xaf, B: 0xff, A: 0xff}, // "#87afff" - 112: {R: 0x87, G: 0xd7, B: 0x00, A: 0xff}, // "#87d700" - 113: {R: 0x87, G: 0xd7, B: 0x5f, A: 0xff}, // "#87d75f" - 114: {R: 0x87, G: 0xd7, B: 0x87, A: 0xff}, // "#87d787" - 115: {R: 0x87, G: 0xd7, B: 0xaf, A: 0xff}, // "#87d7af" - 116: {R: 0x87, G: 0xd7, B: 0xd7, A: 0xff}, // "#87d7d7" - 117: {R: 0x87, G: 0xd7, B: 0xff, A: 0xff}, // "#87d7ff" - 118: {R: 0x87, G: 0xff, B: 0x00, A: 0xff}, // "#87ff00" - 119: {R: 0x87, G: 0xff, B: 0x5f, A: 0xff}, // "#87ff5f" - 120: {R: 0x87, G: 0xff, B: 0x87, A: 0xff}, // "#87ff87" - 121: {R: 0x87, G: 0xff, B: 0xaf, A: 0xff}, // "#87ffaf" - 122: {R: 0x87, G: 0xff, B: 0xd7, A: 0xff}, // "#87ffd7" - 123: {R: 0x87, G: 0xff, B: 0xff, A: 0xff}, // "#87ffff" - 124: {R: 0xaf, G: 0x00, B: 0x00, A: 0xff}, // "#af0000" - 125: {R: 0xaf, G: 0x00, B: 0x5f, A: 0xff}, // "#af005f" - 126: {R: 0xaf, G: 0x00, B: 0x87, A: 0xff}, // "#af0087" - 127: {R: 0xaf, G: 0x00, B: 0xaf, A: 0xff}, // "#af00af" - 128: {R: 0xaf, G: 0x00, B: 0xd7, A: 0xff}, // "#af00d7" - 129: {R: 0xaf, G: 0x00, B: 0xff, A: 0xff}, // "#af00ff" - 130: {R: 0xaf, G: 0x5f, B: 0x00, A: 0xff}, // "#af5f00" - 131: {R: 0xaf, G: 0x5f, B: 0x5f, A: 0xff}, // "#af5f5f" - 132: {R: 0xaf, G: 0x5f, B: 0x87, A: 0xff}, // "#af5f87" - 133: {R: 0xaf, G: 0x5f, B: 0xaf, A: 0xff}, // "#af5faf" - 134: {R: 0xaf, G: 0x5f, B: 0xd7, A: 0xff}, // "#af5fd7" - 135: {R: 0xaf, G: 0x5f, B: 0xff, A: 0xff}, // "#af5fff" - 136: {R: 0xaf, G: 0x87, B: 0x00, A: 0xff}, // "#af8700" - 137: {R: 0xaf, G: 0x87, B: 0x5f, A: 0xff}, // "#af875f" - 138: {R: 0xaf, G: 0x87, B: 0x87, A: 0xff}, // "#af8787" - 139: {R: 0xaf, G: 0x87, B: 0xaf, A: 0xff}, // "#af87af" - 140: {R: 0xaf, G: 0x87, B: 0xd7, A: 0xff}, // "#af87d7" - 141: {R: 0xaf, G: 0x87, B: 0xff, A: 0xff}, // "#af87ff" - 142: {R: 0xaf, G: 0xaf, B: 0x00, A: 0xff}, // "#afaf00" - 143: {R: 0xaf, G: 0xaf, B: 0x5f, A: 0xff}, // "#afaf5f" - 144: {R: 0xaf, G: 0xaf, B: 0x87, A: 0xff}, // "#afaf87" - 145: {R: 0xaf, G: 0xaf, B: 0xaf, A: 0xff}, // "#afafaf" - 146: {R: 0xaf, G: 0xaf, B: 0xd7, A: 0xff}, // "#afafd7" - 147: {R: 0xaf, G: 0xaf, B: 0xff, A: 0xff}, // "#afafff" - 148: {R: 0xaf, G: 0xd7, B: 0x00, A: 0xff}, // "#afd700" - 149: {R: 0xaf, G: 0xd7, B: 0x5f, A: 0xff}, // "#afd75f" - 150: {R: 0xaf, G: 0xd7, B: 0x87, A: 0xff}, // "#afd787" - 151: {R: 0xaf, G: 0xd7, B: 0xaf, A: 0xff}, // "#afd7af" - 152: {R: 0xaf, G: 0xd7, B: 0xd7, A: 0xff}, // "#afd7d7" - 153: {R: 0xaf, G: 0xd7, B: 0xff, A: 0xff}, // "#afd7ff" - 154: {R: 0xaf, G: 0xff, B: 0x00, A: 0xff}, // "#afff00" - 155: {R: 0xaf, G: 0xff, B: 0x5f, A: 0xff}, // "#afff5f" - 156: {R: 0xaf, G: 0xff, B: 0x87, A: 0xff}, // "#afff87" - 157: {R: 0xaf, G: 0xff, B: 0xaf, A: 0xff}, // "#afffaf" - 158: {R: 0xaf, G: 0xff, B: 0xd7, A: 0xff}, // "#afffd7" - 159: {R: 0xaf, G: 0xff, B: 0xff, A: 0xff}, // "#afffff" - 160: {R: 0xd7, G: 0x00, B: 0x00, A: 0xff}, // "#d70000" - 161: {R: 0xd7, G: 0x00, B: 0x5f, A: 0xff}, // "#d7005f" - 162: {R: 0xd7, G: 0x00, B: 0x87, A: 0xff}, // "#d70087" - 163: {R: 0xd7, G: 0x00, B: 0xaf, A: 0xff}, // "#d700af" - 164: {R: 0xd7, G: 0x00, B: 0xd7, A: 0xff}, // "#d700d7" - 165: {R: 0xd7, G: 0x00, B: 0xff, A: 0xff}, // "#d700ff" - 166: {R: 0xd7, G: 0x5f, B: 0x00, A: 0xff}, // "#d75f00" - 167: {R: 0xd7, G: 0x5f, B: 0x5f, A: 0xff}, // "#d75f5f" - 168: {R: 0xd7, G: 0x5f, B: 0x87, A: 0xff}, // "#d75f87" - 169: {R: 0xd7, G: 0x5f, B: 0xaf, A: 0xff}, // "#d75faf" - 170: {R: 0xd7, G: 0x5f, B: 0xd7, A: 0xff}, // "#d75fd7" - 171: {R: 0xd7, G: 0x5f, B: 0xff, A: 0xff}, // "#d75fff" - 172: {R: 0xd7, G: 0x87, B: 0x00, A: 0xff}, // "#d78700" - 173: {R: 0xd7, G: 0x87, B: 0x5f, A: 0xff}, // "#d7875f" - 174: {R: 0xd7, G: 0x87, B: 0x87, A: 0xff}, // "#d78787" - 175: {R: 0xd7, G: 0x87, B: 0xaf, A: 0xff}, // "#d787af" - 176: {R: 0xd7, G: 0x87, B: 0xd7, A: 0xff}, // "#d787d7" - 177: {R: 0xd7, G: 0x87, B: 0xff, A: 0xff}, // "#d787ff" - 178: {R: 0xd7, G: 0xaf, B: 0x00, A: 0xff}, // "#d7af00" - 179: {R: 0xd7, G: 0xaf, B: 0x5f, A: 0xff}, // "#d7af5f" - 180: {R: 0xd7, G: 0xaf, B: 0x87, A: 0xff}, // "#d7af87" - 181: {R: 0xd7, G: 0xaf, B: 0xaf, A: 0xff}, // "#d7afaf" - 182: {R: 0xd7, G: 0xaf, B: 0xd7, A: 0xff}, // "#d7afd7" - 183: {R: 0xd7, G: 0xaf, B: 0xff, A: 0xff}, // "#d7afff" - 184: {R: 0xd7, G: 0xd7, B: 0x00, A: 0xff}, // "#d7d700" - 185: {R: 0xd7, G: 0xd7, B: 0x5f, A: 0xff}, // "#d7d75f" - 186: {R: 0xd7, G: 0xd7, B: 0x87, A: 0xff}, // "#d7d787" - 187: {R: 0xd7, G: 0xd7, B: 0xaf, A: 0xff}, // "#d7d7af" - 188: {R: 0xd7, G: 0xd7, B: 0xd7, A: 0xff}, // "#d7d7d7" - 189: {R: 0xd7, G: 0xd7, B: 0xff, A: 0xff}, // "#d7d7ff" - 190: {R: 0xd7, G: 0xff, B: 0x00, A: 0xff}, // "#d7ff00" - 191: {R: 0xd7, G: 0xff, B: 0x5f, A: 0xff}, // "#d7ff5f" - 192: {R: 0xd7, G: 0xff, B: 0x87, A: 0xff}, // "#d7ff87" - 193: {R: 0xd7, G: 0xff, B: 0xaf, A: 0xff}, // "#d7ffaf" - 194: {R: 0xd7, G: 0xff, B: 0xd7, A: 0xff}, // "#d7ffd7" - 195: {R: 0xd7, G: 0xff, B: 0xff, A: 0xff}, // "#d7ffff" - 196: {R: 0xff, G: 0x00, B: 0x00, A: 0xff}, // "#ff0000" - 197: {R: 0xff, G: 0x00, B: 0x5f, A: 0xff}, // "#ff005f" - 198: {R: 0xff, G: 0x00, B: 0x87, A: 0xff}, // "#ff0087" - 199: {R: 0xff, G: 0x00, B: 0xaf, A: 0xff}, // "#ff00af" - 200: {R: 0xff, G: 0x00, B: 0xd7, A: 0xff}, // "#ff00d7" - 201: {R: 0xff, G: 0x00, B: 0xff, A: 0xff}, // "#ff00ff" - 202: {R: 0xff, G: 0x5f, B: 0x00, A: 0xff}, // "#ff5f00" - 203: {R: 0xff, G: 0x5f, B: 0x5f, A: 0xff}, // "#ff5f5f" - 204: {R: 0xff, G: 0x5f, B: 0x87, A: 0xff}, // "#ff5f87" - 205: {R: 0xff, G: 0x5f, B: 0xaf, A: 0xff}, // "#ff5faf" - 206: {R: 0xff, G: 0x5f, B: 0xd7, A: 0xff}, // "#ff5fd7" - 207: {R: 0xff, G: 0x5f, B: 0xff, A: 0xff}, // "#ff5fff" - 208: {R: 0xff, G: 0x87, B: 0x00, A: 0xff}, // "#ff8700" - 209: {R: 0xff, G: 0x87, B: 0x5f, A: 0xff}, // "#ff875f" - 210: {R: 0xff, G: 0x87, B: 0x87, A: 0xff}, // "#ff8787" - 211: {R: 0xff, G: 0x87, B: 0xaf, A: 0xff}, // "#ff87af" - 212: {R: 0xff, G: 0x87, B: 0xd7, A: 0xff}, // "#ff87d7" - 213: {R: 0xff, G: 0x87, B: 0xff, A: 0xff}, // "#ff87ff" - 214: {R: 0xff, G: 0xaf, B: 0x00, A: 0xff}, // "#ffaf00" - 215: {R: 0xff, G: 0xaf, B: 0x5f, A: 0xff}, // "#ffaf5f" - 216: {R: 0xff, G: 0xaf, B: 0x87, A: 0xff}, // "#ffaf87" - 217: {R: 0xff, G: 0xaf, B: 0xaf, A: 0xff}, // "#ffafaf" - 218: {R: 0xff, G: 0xaf, B: 0xd7, A: 0xff}, // "#ffafd7" - 219: {R: 0xff, G: 0xaf, B: 0xff, A: 0xff}, // "#ffafff" - 220: {R: 0xff, G: 0xd7, B: 0x00, A: 0xff}, // "#ffd700" - 221: {R: 0xff, G: 0xd7, B: 0x5f, A: 0xff}, // "#ffd75f" - 222: {R: 0xff, G: 0xd7, B: 0x87, A: 0xff}, // "#ffd787" - 223: {R: 0xff, G: 0xd7, B: 0xaf, A: 0xff}, // "#ffd7af" - 224: {R: 0xff, G: 0xd7, B: 0xd7, A: 0xff}, // "#ffd7d7" - 225: {R: 0xff, G: 0xd7, B: 0xff, A: 0xff}, // "#ffd7ff" - 226: {R: 0xff, G: 0xff, B: 0x00, A: 0xff}, // "#ffff00" - 227: {R: 0xff, G: 0xff, B: 0x5f, A: 0xff}, // "#ffff5f" - 228: {R: 0xff, G: 0xff, B: 0x87, A: 0xff}, // "#ffff87" - 229: {R: 0xff, G: 0xff, B: 0xaf, A: 0xff}, // "#ffffaf" - 230: {R: 0xff, G: 0xff, B: 0xd7, A: 0xff}, // "#ffffd7" - 231: {R: 0xff, G: 0xff, B: 0xff, A: 0xff}, // "#ffffff" - 232: {R: 0x08, G: 0x08, B: 0x08, A: 0xff}, // "#080808" - 233: {R: 0x12, G: 0x12, B: 0x12, A: 0xff}, // "#121212" - 234: {R: 0x1c, G: 0x1c, B: 0x1c, A: 0xff}, // "#1c1c1c" - 235: {R: 0x26, G: 0x26, B: 0x26, A: 0xff}, // "#262626" - 236: {R: 0x30, G: 0x30, B: 0x30, A: 0xff}, // "#303030" - 237: {R: 0x3a, G: 0x3a, B: 0x3a, A: 0xff}, // "#3a3a3a" - 238: {R: 0x44, G: 0x44, B: 0x44, A: 0xff}, // "#444444" - 239: {R: 0x4e, G: 0x4e, B: 0x4e, A: 0xff}, // "#4e4e4e" - 240: {R: 0x58, G: 0x58, B: 0x58, A: 0xff}, // "#585858" - 241: {R: 0x62, G: 0x62, B: 0x62, A: 0xff}, // "#626262" - 242: {R: 0x6c, G: 0x6c, B: 0x6c, A: 0xff}, // "#6c6c6c" - 243: {R: 0x76, G: 0x76, B: 0x76, A: 0xff}, // "#767676" - 244: {R: 0x80, G: 0x80, B: 0x80, A: 0xff}, // "#808080" - 245: {R: 0x8a, G: 0x8a, B: 0x8a, A: 0xff}, // "#8a8a8a" - 246: {R: 0x94, G: 0x94, B: 0x94, A: 0xff}, // "#949494" - 247: {R: 0x9e, G: 0x9e, B: 0x9e, A: 0xff}, // "#9e9e9e" - 248: {R: 0xa8, G: 0xa8, B: 0xa8, A: 0xff}, // "#a8a8a8" - 249: {R: 0xb2, G: 0xb2, B: 0xb2, A: 0xff}, // "#b2b2b2" - 250: {R: 0xbc, G: 0xbc, B: 0xbc, A: 0xff}, // "#bcbcbc" - 251: {R: 0xc6, G: 0xc6, B: 0xc6, A: 0xff}, // "#c6c6c6" - 252: {R: 0xd0, G: 0xd0, B: 0xd0, A: 0xff}, // "#d0d0d0" - 253: {R: 0xda, G: 0xda, B: 0xda, A: 0xff}, // "#dadada" - 254: {R: 0xe4, G: 0xe4, B: 0xe4, A: 0xff}, // "#e4e4e4" - 255: {R: 0xee, G: 0xee, B: 0xee, A: 0xff}, // "#eeeeee" -} - -var ansi256To16 = [...]BasicColor{ - 0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 9, - 10: 10, - 11: 11, - 12: 12, - 13: 13, - 14: 14, - 15: 15, - 16: 0, - 17: 4, - 18: 4, - 19: 4, - 20: 12, - 21: 12, - 22: 2, - 23: 6, - 24: 4, - 25: 4, - 26: 12, - 27: 12, - 28: 2, - 29: 2, - 30: 6, - 31: 4, - 32: 12, - 33: 12, - 34: 2, - 35: 2, - 36: 2, - 37: 6, - 38: 12, - 39: 12, - 40: 10, - 41: 10, - 42: 10, - 43: 10, - 44: 14, - 45: 12, - 46: 10, - 47: 10, - 48: 10, - 49: 10, - 50: 10, - 51: 14, - 52: 1, - 53: 5, - 54: 4, - 55: 4, - 56: 12, - 57: 12, - 58: 3, - 59: 8, - 60: 4, - 61: 4, - 62: 12, - 63: 12, - 64: 2, - 65: 2, - 66: 6, - 67: 4, - 68: 12, - 69: 12, - 70: 2, - 71: 2, - 72: 2, - 73: 6, - 74: 12, - 75: 12, - 76: 10, - 77: 10, - 78: 10, - 79: 10, - 80: 14, - 81: 12, - 82: 10, - 83: 10, - 84: 10, - 85: 10, - 86: 10, - 87: 14, - 88: 1, - 89: 1, - 90: 5, - 91: 4, - 92: 12, - 93: 12, - 94: 1, - 95: 1, - 96: 5, - 97: 4, - 98: 12, - 99: 12, - 100: 3, - 101: 3, - 102: 8, - 103: 4, - 104: 12, - 105: 12, - 106: 2, - 107: 2, - 108: 2, - 109: 6, - 110: 12, - 111: 12, - 112: 10, - 113: 10, - 114: 10, - 115: 10, - 116: 14, - 117: 12, - 118: 10, - 119: 10, - 120: 10, - 121: 10, - 122: 10, - 123: 14, - 124: 1, - 125: 1, - 126: 1, - 127: 5, - 128: 12, - 129: 12, - 130: 1, - 131: 1, - 132: 1, - 133: 5, - 134: 12, - 135: 12, - 136: 1, - 137: 1, - 138: 1, - 139: 5, - 140: 12, - 141: 12, - 142: 3, - 143: 3, - 144: 3, - 145: 7, - 146: 12, - 147: 12, - 148: 10, - 149: 10, - 150: 10, - 151: 10, - 152: 14, - 153: 12, - 154: 10, - 155: 10, - 156: 10, - 157: 10, - 158: 10, - 159: 14, - 160: 9, - 161: 9, - 162: 9, - 163: 9, - 164: 13, - 165: 12, - 166: 9, - 167: 9, - 168: 9, - 169: 9, - 170: 13, - 171: 12, - 172: 9, - 173: 9, - 174: 9, - 175: 9, - 176: 13, - 177: 12, - 178: 9, - 179: 9, - 180: 9, - 181: 9, - 182: 13, - 183: 12, - 184: 11, - 185: 11, - 186: 11, - 187: 11, - 188: 7, - 189: 12, - 190: 10, - 191: 10, - 192: 10, - 193: 10, - 194: 10, - 195: 14, - 196: 9, - 197: 9, - 198: 9, - 199: 9, - 200: 9, - 201: 13, - 202: 9, - 203: 9, - 204: 9, - 205: 9, - 206: 9, - 207: 13, - 208: 9, - 209: 9, - 210: 9, - 211: 9, - 212: 9, - 213: 13, - 214: 9, - 215: 9, - 216: 9, - 217: 9, - 218: 9, - 219: 13, - 220: 9, - 221: 9, - 222: 9, - 223: 9, - 224: 9, - 225: 13, - 226: 11, - 227: 11, - 228: 11, - 229: 11, - 230: 11, - 231: 15, - 232: 0, - 233: 0, - 234: 0, - 235: 0, - 236: 0, - 237: 0, - 238: 8, - 239: 8, - 240: 8, - 241: 8, - 242: 8, - 243: 8, - 244: 7, - 245: 7, - 246: 7, - 247: 7, - 248: 7, - 249: 7, - 250: 15, - 251: 15, - 252: 15, - 253: 15, - 254: 15, - 255: 15, -} diff --git a/vendor/github.com/charmbracelet/x/ansi/ctrl.go b/vendor/github.com/charmbracelet/x/ansi/ctrl.go deleted file mode 100644 index 64bcf11..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/ctrl.go +++ /dev/null @@ -1,156 +0,0 @@ -package ansi - -import ( - "strconv" - "strings" -) - -// RequestNameVersion (XTVERSION) is a control sequence that requests the -// terminal's name and version. It responds with a DSR sequence identifying the -// terminal. -// -// CSI > 0 q -// DCS > | text ST -// -// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-PC-Style-Function-Keys -const ( - RequestNameVersion = "\x1b[>q" - XTVERSION = RequestNameVersion -) - -// RequestXTVersion is a control sequence that requests the terminal's XTVERSION. It responds with a DSR sequence identifying the version. -// -// CSI > Ps q -// DCS > | text ST -// -// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-PC-Style-Function-Keys -// -// Deprecated: use [RequestNameVersion] instead. -const RequestXTVersion = RequestNameVersion - -// PrimaryDeviceAttributes (DA1) is a control sequence that reports the -// terminal's primary device attributes. -// -// CSI c -// CSI 0 c -// CSI ? Ps ; ... c -// -// If no attributes are given, or if the attribute is 0, this function returns -// the request sequence. Otherwise, it returns the response sequence. -// -// Common attributes include: -// - 1 132 columns -// - 2 Printer port -// - 4 Sixel -// - 6 Selective erase -// - 7 Soft character set (DRCS) -// - 8 User-defined keys (UDKs) -// - 9 National replacement character sets (NRCS) (International terminal only) -// - 12 Yugoslavian (SCS) -// - 15 Technical character set -// - 18 Windowing capability -// - 21 Horizontal scrolling -// - 23 Greek -// - 24 Turkish -// - 42 ISO Latin-2 character set -// - 44 PCTerm -// - 45 Soft key map -// - 46 ASCII emulation -// -// See https://vt100.net/docs/vt510-rm/DA1.html -func PrimaryDeviceAttributes(attrs ...int) string { - if len(attrs) == 0 { - return RequestPrimaryDeviceAttributes - } else if len(attrs) == 1 && attrs[0] == 0 { - return "\x1b[0c" - } - - as := make([]string, len(attrs)) - for i, a := range attrs { - as[i] = strconv.Itoa(a) - } - return "\x1b[?" + strings.Join(as, ";") + "c" -} - -// DA1 is an alias for [PrimaryDeviceAttributes]. -func DA1(attrs ...int) string { - return PrimaryDeviceAttributes(attrs...) -} - -// RequestPrimaryDeviceAttributes is a control sequence that requests the -// terminal's primary device attributes (DA1). -// -// CSI c -// -// See https://vt100.net/docs/vt510-rm/DA1.html -const RequestPrimaryDeviceAttributes = "\x1b[c" - -// SecondaryDeviceAttributes (DA2) is a control sequence that reports the -// terminal's secondary device attributes. -// -// CSI > c -// CSI > 0 c -// CSI > Ps ; ... c -// -// See https://vt100.net/docs/vt510-rm/DA2.html -func SecondaryDeviceAttributes(attrs ...int) string { - if len(attrs) == 0 { - return RequestSecondaryDeviceAttributes - } - - as := make([]string, len(attrs)) - for i, a := range attrs { - as[i] = strconv.Itoa(a) - } - return "\x1b[>" + strings.Join(as, ";") + "c" -} - -// DA2 is an alias for [SecondaryDeviceAttributes]. -func DA2(attrs ...int) string { - return SecondaryDeviceAttributes(attrs...) -} - -// RequestSecondaryDeviceAttributes is a control sequence that requests the -// terminal's secondary device attributes (DA2). -// -// CSI > c -// -// See https://vt100.net/docs/vt510-rm/DA2.html -const RequestSecondaryDeviceAttributes = "\x1b[>c" - -// TertiaryDeviceAttributes (DA3) is a control sequence that reports the -// terminal's tertiary device attributes. -// -// CSI = c -// CSI = 0 c -// DCS ! | Text ST -// -// Where Text is the unit ID for the terminal. -// -// If no unit ID is given, or if the unit ID is 0, this function returns the -// request sequence. Otherwise, it returns the response sequence. -// -// See https://vt100.net/docs/vt510-rm/DA3.html -func TertiaryDeviceAttributes(unitID string) string { - switch unitID { - case "": - return RequestTertiaryDeviceAttributes - case "0": - return "\x1b[=0c" - } - - return "\x1bP!|" + unitID + "\x1b\\" -} - -// DA3 is an alias for [TertiaryDeviceAttributes]. -func DA3(unitID string) string { - return TertiaryDeviceAttributes(unitID) -} - -// RequestTertiaryDeviceAttributes is a control sequence that requests the -// terminal's tertiary device attributes (DA3). -// -// CSI = c -// -// See https://vt100.net/docs/vt510-rm/DA3.html -const RequestTertiaryDeviceAttributes = "\x1b[=c" diff --git a/vendor/github.com/charmbracelet/x/ansi/cursor.go b/vendor/github.com/charmbracelet/x/ansi/cursor.go deleted file mode 100644 index 4adf689..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/cursor.go +++ /dev/null @@ -1,635 +0,0 @@ -package ansi - -import ( - "strconv" -) - -// SaveCursor (DECSC) is an escape sequence that saves the current cursor -// position. -// -// ESC 7 -// -// See: https://vt100.net/docs/vt510-rm/DECSC.html -const ( - SaveCursor = "\x1b7" - DECSC = SaveCursor -) - -// RestoreCursor (DECRC) is an escape sequence that restores the cursor -// position. -// -// ESC 8 -// -// See: https://vt100.net/docs/vt510-rm/DECRC.html -const ( - RestoreCursor = "\x1b8" - DECRC = RestoreCursor -) - -// RequestCursorPosition is an escape sequence that requests the current cursor -// position. -// -// CSI 6 n -// -// The terminal will report the cursor position as a CSI sequence in the -// following format: -// -// CSI Pl ; Pc R -// -// Where Pl is the line number and Pc is the column number. -// See: https://vt100.net/docs/vt510-rm/CPR.html -// -// Deprecated: use [RequestCursorPositionReport] instead. -const RequestCursorPosition = "\x1b[6n" - -// RequestExtendedCursorPosition (DECXCPR) is a sequence for requesting the -// cursor position report including the current page number. -// -// CSI ? 6 n -// -// The terminal will report the cursor position as a CSI sequence in the -// following format: -// -// CSI ? Pl ; Pc ; Pp R -// -// Where Pl is the line number, Pc is the column number, and Pp is the page -// number. -// See: https://vt100.net/docs/vt510-rm/DECXCPR.html -// -// Deprecated: use [RequestExtendedCursorPositionReport] instead. -const RequestExtendedCursorPosition = "\x1b[?6n" - -// CursorUp (CUU) returns a sequence for moving the cursor up n cells. -// -// CSI n A -// -// See: https://vt100.net/docs/vt510-rm/CUU.html -func CursorUp(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "A" -} - -// CUU is an alias for [CursorUp]. -func CUU(n int) string { - return CursorUp(n) -} - -// CUU1 is a sequence for moving the cursor up one cell. -const CUU1 = "\x1b[A" - -// CursorUp1 is a sequence for moving the cursor up one cell. -// -// This is equivalent to CursorUp(1). -// -// Deprecated: use [CUU1] instead. -const CursorUp1 = "\x1b[A" - -// CursorDown (CUD) returns a sequence for moving the cursor down n cells. -// -// CSI n B -// -// See: https://vt100.net/docs/vt510-rm/CUD.html -func CursorDown(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "B" -} - -// CUD is an alias for [CursorDown]. -func CUD(n int) string { - return CursorDown(n) -} - -// CUD1 is a sequence for moving the cursor down one cell. -const CUD1 = "\x1b[B" - -// CursorDown1 is a sequence for moving the cursor down one cell. -// -// This is equivalent to CursorDown(1). -// -// Deprecated: use [CUD1] instead. -const CursorDown1 = "\x1b[B" - -// CursorForward (CUF) returns a sequence for moving the cursor right n cells. -// -// # CSI n C -// -// See: https://vt100.net/docs/vt510-rm/CUF.html -func CursorForward(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "C" -} - -// CUF is an alias for [CursorForward]. -func CUF(n int) string { - return CursorForward(n) -} - -// CUF1 is a sequence for moving the cursor right one cell. -const CUF1 = "\x1b[C" - -// CursorRight (CUF) returns a sequence for moving the cursor right n cells. -// -// CSI n C -// -// See: https://vt100.net/docs/vt510-rm/CUF.html -// -// Deprecated: use [CursorForward] instead. -func CursorRight(n int) string { - return CursorForward(n) -} - -// CursorRight1 is a sequence for moving the cursor right one cell. -// -// This is equivalent to CursorRight(1). -// -// Deprecated: use [CUF1] instead. -const CursorRight1 = CUF1 - -// CursorBackward (CUB) returns a sequence for moving the cursor left n cells. -// -// # CSI n D -// -// See: https://vt100.net/docs/vt510-rm/CUB.html -func CursorBackward(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "D" -} - -// CUB is an alias for [CursorBackward]. -func CUB(n int) string { - return CursorBackward(n) -} - -// CUB1 is a sequence for moving the cursor left one cell. -const CUB1 = "\x1b[D" - -// CursorLeft (CUB) returns a sequence for moving the cursor left n cells. -// -// CSI n D -// -// See: https://vt100.net/docs/vt510-rm/CUB.html -// -// Deprecated: use [CursorBackward] instead. -func CursorLeft(n int) string { - return CursorBackward(n) -} - -// CursorLeft1 is a sequence for moving the cursor left one cell. -// -// This is equivalent to CursorLeft(1). -// -// Deprecated: use [CUB1] instead. -const CursorLeft1 = CUB1 - -// CursorNextLine (CNL) returns a sequence for moving the cursor to the -// beginning of the next line n times. -// -// CSI n E -// -// See: https://vt100.net/docs/vt510-rm/CNL.html -func CursorNextLine(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "E" -} - -// CNL is an alias for [CursorNextLine]. -func CNL(n int) string { - return CursorNextLine(n) -} - -// CursorPreviousLine (CPL) returns a sequence for moving the cursor to the -// beginning of the previous line n times. -// -// CSI n F -// -// See: https://vt100.net/docs/vt510-rm/CPL.html -func CursorPreviousLine(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "F" -} - -// CPL is an alias for [CursorPreviousLine]. -func CPL(n int) string { - return CursorPreviousLine(n) -} - -// CursorHorizontalAbsolute (CHA) returns a sequence for moving the cursor to -// the given column. -// -// Default is 1. -// -// CSI n G -// -// See: https://vt100.net/docs/vt510-rm/CHA.html -func CursorHorizontalAbsolute(col int) string { - var s string - if col > 0 { - s = strconv.Itoa(col) - } - return "\x1b[" + s + "G" -} - -// CHA is an alias for [CursorHorizontalAbsolute]. -func CHA(col int) string { - return CursorHorizontalAbsolute(col) -} - -// CursorPosition (CUP) returns a sequence for setting the cursor to the -// given row and column. -// -// Default is 1,1. -// -// CSI n ; m H -// -// See: https://vt100.net/docs/vt510-rm/CUP.html -func CursorPosition(col, row int) string { - if row <= 0 && col <= 0 { - return CursorHomePosition - } - - var r, c string - if row > 0 { - r = strconv.Itoa(row) - } - if col > 0 { - c = strconv.Itoa(col) - } - return "\x1b[" + r + ";" + c + "H" -} - -// CUP is an alias for [CursorPosition]. -func CUP(col, row int) string { - return CursorPosition(col, row) -} - -// CursorHomePosition is a sequence for moving the cursor to the upper left -// corner of the scrolling region. This is equivalent to `CursorPosition(1, 1)`. -const CursorHomePosition = "\x1b[H" - -// SetCursorPosition (CUP) returns a sequence for setting the cursor to the -// given row and column. -// -// CSI n ; m H -// -// See: https://vt100.net/docs/vt510-rm/CUP.html -// -// Deprecated: use [CursorPosition] instead. -func SetCursorPosition(col, row int) string { - if row <= 0 && col <= 0 { - return HomeCursorPosition - } - - var r, c string - if row > 0 { - r = strconv.Itoa(row) - } - if col > 0 { - c = strconv.Itoa(col) - } - return "\x1b[" + r + ";" + c + "H" -} - -// HomeCursorPosition is a sequence for moving the cursor to the upper left -// corner of the scrolling region. This is equivalent to `SetCursorPosition(1, 1)`. -// -// Deprecated: use [CursorHomePosition] instead. -const HomeCursorPosition = CursorHomePosition - -// MoveCursor (CUP) returns a sequence for setting the cursor to the -// given row and column. -// -// CSI n ; m H -// -// See: https://vt100.net/docs/vt510-rm/CUP.html -// -// Deprecated: use [CursorPosition] instead. -func MoveCursor(col, row int) string { - return SetCursorPosition(col, row) -} - -// CursorOrigin is a sequence for moving the cursor to the upper left corner of -// the display. This is equivalent to `SetCursorPosition(1, 1)`. -// -// Deprecated: use [CursorHomePosition] instead. -const CursorOrigin = "\x1b[1;1H" - -// MoveCursorOrigin is a sequence for moving the cursor to the upper left -// corner of the display. This is equivalent to `SetCursorPosition(1, 1)`. -// -// Deprecated: use [CursorHomePosition] instead. -const MoveCursorOrigin = CursorOrigin - -// CursorHorizontalForwardTab (CHT) returns a sequence for moving the cursor to -// the next tab stop n times. -// -// Default is 1. -// -// CSI n I -// -// See: https://vt100.net/docs/vt510-rm/CHT.html -func CursorHorizontalForwardTab(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "I" -} - -// CHT is an alias for [CursorHorizontalForwardTab]. -func CHT(n int) string { - return CursorHorizontalForwardTab(n) -} - -// EraseCharacter (ECH) returns a sequence for erasing n characters from the -// screen. This doesn't affect other cell attributes. -// -// Default is 1. -// -// CSI n X -// -// See: https://vt100.net/docs/vt510-rm/ECH.html -func EraseCharacter(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "X" -} - -// ECH is an alias for [EraseCharacter]. -func ECH(n int) string { - return EraseCharacter(n) -} - -// CursorBackwardTab (CBT) returns a sequence for moving the cursor to the -// previous tab stop n times. -// -// Default is 1. -// -// CSI n Z -// -// See: https://vt100.net/docs/vt510-rm/CBT.html -func CursorBackwardTab(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "Z" -} - -// CBT is an alias for [CursorBackwardTab]. -func CBT(n int) string { - return CursorBackwardTab(n) -} - -// VerticalPositionAbsolute (VPA) returns a sequence for moving the cursor to -// the given row. -// -// Default is 1. -// -// CSI n d -// -// See: https://vt100.net/docs/vt510-rm/VPA.html -func VerticalPositionAbsolute(row int) string { - var s string - if row > 0 { - s = strconv.Itoa(row) - } - return "\x1b[" + s + "d" -} - -// VPA is an alias for [VerticalPositionAbsolute]. -func VPA(row int) string { - return VerticalPositionAbsolute(row) -} - -// VerticalPositionRelative (VPR) returns a sequence for moving the cursor down -// n rows relative to the current position. -// -// Default is 1. -// -// CSI n e -// -// See: https://vt100.net/docs/vt510-rm/VPR.html -func VerticalPositionRelative(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "e" -} - -// VPR is an alias for [VerticalPositionRelative]. -func VPR(n int) string { - return VerticalPositionRelative(n) -} - -// HorizontalVerticalPosition (HVP) returns a sequence for moving the cursor to -// the given row and column. -// -// Default is 1,1. -// -// CSI n ; m f -// -// This has the same effect as [CursorPosition]. -// -// See: https://vt100.net/docs/vt510-rm/HVP.html -func HorizontalVerticalPosition(col, row int) string { - var r, c string - if row > 0 { - r = strconv.Itoa(row) - } - if col > 0 { - c = strconv.Itoa(col) - } - return "\x1b[" + r + ";" + c + "f" -} - -// HVP is an alias for [HorizontalVerticalPosition]. -func HVP(col, row int) string { - return HorizontalVerticalPosition(col, row) -} - -// HorizontalVerticalHomePosition is a sequence for moving the cursor to the -// upper left corner of the scrolling region. This is equivalent to -// `HorizontalVerticalPosition(1, 1)`. -const HorizontalVerticalHomePosition = "\x1b[f" - -// SaveCurrentCursorPosition (SCOSC) is a sequence for saving the current cursor -// position for SCO console mode. -// -// CSI s -// -// This acts like [DECSC], except the page number where the cursor is located -// is not saved. -// -// See: https://vt100.net/docs/vt510-rm/SCOSC.html -const ( - SaveCurrentCursorPosition = "\x1b[s" - SCOSC = SaveCurrentCursorPosition -) - -// SaveCursorPosition (SCP or SCOSC) is a sequence for saving the cursor -// position. -// -// CSI s -// -// This acts like Save, except the page number where the cursor is located is -// not saved. -// -// See: https://vt100.net/docs/vt510-rm/SCOSC.html -// -// Deprecated: use [SaveCurrentCursorPosition] instead. -const SaveCursorPosition = "\x1b[s" - -// RestoreCurrentCursorPosition (SCORC) is a sequence for restoring the current -// cursor position for SCO console mode. -// -// CSI u -// -// This acts like [DECRC], except the page number where the cursor was saved is -// not restored. -// -// See: https://vt100.net/docs/vt510-rm/SCORC.html -const ( - RestoreCurrentCursorPosition = "\x1b[u" - SCORC = RestoreCurrentCursorPosition -) - -// RestoreCursorPosition (RCP or SCORC) is a sequence for restoring the cursor -// position. -// -// CSI u -// -// This acts like Restore, except the cursor stays on the same page where the -// cursor was saved. -// -// See: https://vt100.net/docs/vt510-rm/SCORC.html -// -// Deprecated: use [RestoreCurrentCursorPosition] instead. -const RestoreCursorPosition = "\x1b[u" - -// SetCursorStyle (DECSCUSR) returns a sequence for changing the cursor style. -// -// Default is 1. -// -// CSI Ps SP q -// -// Where Ps is the cursor style: -// -// 0: Blinking block -// 1: Blinking block (default) -// 2: Steady block -// 3: Blinking underline -// 4: Steady underline -// 5: Blinking bar (xterm) -// 6: Steady bar (xterm) -// -// See: https://vt100.net/docs/vt510-rm/DECSCUSR.html -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character-lparen-s-rparen:CSI-Ps-SP-q.1D81 -func SetCursorStyle(style int) string { - if style < 0 { - style = 0 - } - return "\x1b[" + strconv.Itoa(style) + " q" -} - -// DECSCUSR is an alias for [SetCursorStyle]. -func DECSCUSR(style int) string { - return SetCursorStyle(style) -} - -// SetPointerShape returns a sequence for changing the mouse pointer cursor -// shape. Use "default" for the default pointer shape. -// -// OSC 22 ; Pt ST -// OSC 22 ; Pt BEL -// -// Where Pt is the pointer shape name. The name can be anything that the -// operating system can understand. Some common names are: -// -// - copy -// - crosshair -// - default -// - ew-resize -// - n-resize -// - text -// - wait -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Commands -func SetPointerShape(shape string) string { - return "\x1b]22;" + shape + "\x07" -} - -// ReverseIndex (RI) is an escape sequence for moving the cursor up one line in -// the same column. If the cursor is at the top margin, the screen scrolls -// down. -// -// This has the same effect as [RI]. -const ReverseIndex = "\x1bM" - -// HorizontalPositionAbsolute (HPA) returns a sequence for moving the cursor to -// the given column. This has the same effect as [CUP]. -// -// Default is 1. -// -// CSI n \` -// -// See: https://vt100.net/docs/vt510-rm/HPA.html -func HorizontalPositionAbsolute(col int) string { - var s string - if col > 0 { - s = strconv.Itoa(col) - } - return "\x1b[" + s + "`" -} - -// HPA is an alias for [HorizontalPositionAbsolute]. -func HPA(col int) string { - return HorizontalPositionAbsolute(col) -} - -// HorizontalPositionRelative (HPR) returns a sequence for moving the cursor -// right n columns relative to the current position. This has the same effect -// as [CUP]. -// -// Default is 1. -// -// CSI n a -// -// See: https://vt100.net/docs/vt510-rm/HPR.html -func HorizontalPositionRelative(n int) string { - var s string - if n > 0 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "a" -} - -// HPR is an alias for [HorizontalPositionRelative]. -func HPR(n int) string { - return HorizontalPositionRelative(n) -} - -// Index (IND) is an escape sequence for moving the cursor down one line in the -// same column. If the cursor is at the bottom margin, the screen scrolls up. -// This has the same effect as [IND]. -const Index = "\x1bD" diff --git a/vendor/github.com/charmbracelet/x/ansi/cwd.go b/vendor/github.com/charmbracelet/x/ansi/cwd.go deleted file mode 100644 index b03ac1b..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/cwd.go +++ /dev/null @@ -1,26 +0,0 @@ -package ansi - -import ( - "net/url" - "path" -) - -// NotifyWorkingDirectory returns a sequence that notifies the terminal -// of the current working directory. -// -// OSC 7 ; Pt BEL -// -// Where Pt is a URL in the format "file://[host]/[path]". -// Set host to "localhost" if this is a path on the local computer. -// -// See: https://wezfurlong.org/wezterm/shell-integration.html#osc-7-escape-sequence-to-set-the-working-directory -// See: https://iterm2.com/documentation-escape-codes.html#:~:text=RemoteHost%20and%20CurrentDir%3A-,OSC%207,-%3B%20%5BPs%5D%20ST -func NotifyWorkingDirectory(host string, paths ...string) string { - path := path.Join(paths...) - u := &url.URL{ - Scheme: "file", - Host: host, - Path: path, - } - return "\x1b]7;" + u.String() + "\x07" -} diff --git a/vendor/github.com/charmbracelet/x/ansi/doc.go b/vendor/github.com/charmbracelet/x/ansi/doc.go deleted file mode 100644 index e955e9f..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// Package ansi defines common ANSI escape sequences based on the ECMA-48 -// specs. -// -// All sequences use 7-bit C1 control codes, which are supported by most -// terminal emulators. OSC sequences are terminated by a BEL for wider -// compatibility with terminals. -package ansi diff --git a/vendor/github.com/charmbracelet/x/ansi/finalterm.go b/vendor/github.com/charmbracelet/x/ansi/finalterm.go deleted file mode 100644 index 2c28347..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/finalterm.go +++ /dev/null @@ -1,67 +0,0 @@ -package ansi - -import "strings" - -// FinalTerm returns an escape sequence that is used for shell integrations. -// Originally, FinalTerm designed the protocol hence the name. -// -// OSC 133 ; Ps ; Pm ST -// OSC 133 ; Ps ; Pm BEL -// -// See: https://iterm2.com/documentation-shell-integration.html -func FinalTerm(pm ...string) string { - return "\x1b]133;" + strings.Join(pm, ";") + "\x07" -} - -// FinalTermPrompt returns an escape sequence that is used for shell -// integrations prompt marks. This is sent just before the start of the shell -// prompt. -// -// This is an alias for FinalTerm("A"). -func FinalTermPrompt(pm ...string) string { - if len(pm) == 0 { - return FinalTerm("A") - } - return FinalTerm(append([]string{"A"}, pm...)...) -} - -// FinalTermCmdStart returns an escape sequence that is used for shell -// integrations command start marks. This is sent just after the end of the -// shell prompt, before the user enters a command. -// -// This is an alias for FinalTerm("B"). -func FinalTermCmdStart(pm ...string) string { - if len(pm) == 0 { - return FinalTerm("B") - } - return FinalTerm(append([]string{"B"}, pm...)...) -} - -// FinalTermCmdExecuted returns an escape sequence that is used for shell -// integrations command executed marks. This is sent just before the start of -// the command output. -// -// This is an alias for FinalTerm("C"). -func FinalTermCmdExecuted(pm ...string) string { - if len(pm) == 0 { - return FinalTerm("C") - } - return FinalTerm(append([]string{"C"}, pm...)...) -} - -// FinalTermCmdFinished returns an escape sequence that is used for shell -// integrations command finished marks. -// -// If the command was sent after -// [FinalTermCmdStart], it indicates that the command was aborted. If the -// command was sent after [FinalTermCmdExecuted], it indicates the end of the -// command output. If neither was sent, [FinalTermCmdFinished] should be -// ignored. -// -// This is an alias for FinalTerm("D"). -func FinalTermCmdFinished(pm ...string) string { - if len(pm) == 0 { - return FinalTerm("D") - } - return FinalTerm(append([]string{"D"}, pm...)...) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/focus.go b/vendor/github.com/charmbracelet/x/ansi/focus.go deleted file mode 100644 index 4e0207c..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/focus.go +++ /dev/null @@ -1,9 +0,0 @@ -package ansi - -// Focus is an escape sequence to notify the terminal that it has focus. -// This is used with [FocusEventMode]. -const Focus = "\x1b[I" - -// Blur is an escape sequence to notify the terminal that it has lost focus. -// This is used with [FocusEventMode]. -const Blur = "\x1b[O" diff --git a/vendor/github.com/charmbracelet/x/ansi/graphics.go b/vendor/github.com/charmbracelet/x/ansi/graphics.go deleted file mode 100644 index d4a693b..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/graphics.go +++ /dev/null @@ -1,62 +0,0 @@ -package ansi - -import ( - "bytes" - "strconv" - "strings" -) - -// SixelGraphics returns a sequence that encodes the given sixel image payload to -// a DCS sixel sequence. -// -// DCS p1; p2; p3; q [sixel payload] ST -// -// p1 = pixel aspect ratio, deprecated and replaced by pixel metrics in the payload -// -// p2 = This is supposed to be 0 for transparency, but terminals don't seem to -// to use it properly. Value 0 leaves an unsightly black bar on all terminals -// I've tried and looks correct with value 1. -// -// p3 = Horizontal grid size parameter. Everyone ignores this and uses a fixed grid -// size, as far as I can tell. -// -// See https://shuford.invisible-island.net/all_about_sixels.txt -func SixelGraphics(p1, p2, p3 int, payload []byte) string { - var buf bytes.Buffer - - buf.WriteString("\x1bP") - if p1 >= 0 { - buf.WriteString(strconv.Itoa(p1)) - } - buf.WriteByte(';') - if p2 >= 0 { - buf.WriteString(strconv.Itoa(p2)) - } - if p3 > 0 { - buf.WriteByte(';') - buf.WriteString(strconv.Itoa(p3)) - } - buf.WriteByte('q') - buf.Write(payload) - buf.WriteString("\x1b\\") - - return buf.String() -} - -// KittyGraphics returns a sequence that encodes the given image in the Kitty -// graphics protocol. -// -// APC G [comma separated options] ; [base64 encoded payload] ST -// -// See https://sw.kovidgoyal.net/kitty/graphics-protocol/ -func KittyGraphics(payload []byte, opts ...string) string { - var buf bytes.Buffer - buf.WriteString("\x1b_G") - buf.WriteString(strings.Join(opts, ",")) - if len(payload) > 0 { - buf.WriteString(";") - buf.Write(payload) - } - buf.WriteString("\x1b\\") - return buf.String() -} diff --git a/vendor/github.com/charmbracelet/x/ansi/hyperlink.go b/vendor/github.com/charmbracelet/x/ansi/hyperlink.go deleted file mode 100644 index 323bfe9..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/hyperlink.go +++ /dev/null @@ -1,28 +0,0 @@ -package ansi - -import "strings" - -// SetHyperlink returns a sequence for starting a hyperlink. -// -// OSC 8 ; Params ; Uri ST -// OSC 8 ; Params ; Uri BEL -// -// To reset the hyperlink, omit the URI. -// -// See: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda -func SetHyperlink(uri string, params ...string) string { - var p string - if len(params) > 0 { - p = strings.Join(params, ":") - } - return "\x1b]8;" + p + ";" + uri + "\x07" -} - -// ResetHyperlink returns a sequence for resetting the hyperlink. -// -// This is equivalent to SetHyperlink("", params...). -// -// See: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda -func ResetHyperlink(params ...string) string { - return SetHyperlink("", params...) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/iterm2.go b/vendor/github.com/charmbracelet/x/ansi/iterm2.go deleted file mode 100644 index 0ecb336..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/iterm2.go +++ /dev/null @@ -1,18 +0,0 @@ -package ansi - -import "fmt" - -// ITerm2 returns a sequence that uses the iTerm2 proprietary protocol. Use the -// iterm2 package for a more convenient API. -// -// OSC 1337 ; key = value ST -// -// Example: -// -// ITerm2(iterm2.File{...}) -// -// See https://iterm2.com/documentation-escape-codes.html -// See https://iterm2.com/documentation-images.html -func ITerm2(data any) string { - return "\x1b]1337;" + fmt.Sprint(data) + "\x07" -} diff --git a/vendor/github.com/charmbracelet/x/ansi/keypad.go b/vendor/github.com/charmbracelet/x/ansi/keypad.go deleted file mode 100644 index 9183c6a..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/keypad.go +++ /dev/null @@ -1,28 +0,0 @@ -package ansi - -// Keypad Application Mode (DECKPAM) is a mode that determines whether the -// keypad sends application sequences or ANSI sequences. -// -// This works like enabling [DECNKM]. -// Use [NumericKeypadMode] to set the numeric keypad mode. -// -// ESC = -// -// See: https://vt100.net/docs/vt510-rm/DECKPAM.html -const ( - KeypadApplicationMode = "\x1b=" - DECKPAM = KeypadApplicationMode -) - -// Keypad Numeric Mode (DECKPNM) is a mode that determines whether the keypad -// sends application sequences or ANSI sequences. -// -// This works the same as disabling [DECNKM]. -// -// ESC > -// -// See: https://vt100.net/docs/vt510-rm/DECKPNM.html -const ( - KeypadNumericMode = "\x1b>" - DECKPNM = KeypadNumericMode -) diff --git a/vendor/github.com/charmbracelet/x/ansi/kitty.go b/vendor/github.com/charmbracelet/x/ansi/kitty.go deleted file mode 100644 index 124ab83..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/kitty.go +++ /dev/null @@ -1,90 +0,0 @@ -package ansi - -import "strconv" - -// Kitty keyboard protocol progressive enhancement flags. -// See: https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement -const ( - KittyDisambiguateEscapeCodes = 1 << iota - KittyReportEventTypes - KittyReportAlternateKeys - KittyReportAllKeysAsEscapeCodes - KittyReportAssociatedKeys - - KittyAllFlags = KittyDisambiguateEscapeCodes | KittyReportEventTypes | - KittyReportAlternateKeys | KittyReportAllKeysAsEscapeCodes | KittyReportAssociatedKeys -) - -// RequestKittyKeyboard is a sequence to request the terminal Kitty keyboard -// protocol enabled flags. -// -// See: https://sw.kovidgoyal.net/kitty/keyboard-protocol/ -const RequestKittyKeyboard = "\x1b[?u" - -// KittyKeyboard returns a sequence to request keyboard enhancements from the terminal. -// The flags argument is a bitmask of the Kitty keyboard protocol flags. While -// mode specifies how the flags should be interpreted. -// -// Possible values for flags mask: -// -// 1: Disambiguate escape codes -// 2: Report event types -// 4: Report alternate keys -// 8: Report all keys as escape codes -// 16: Report associated text -// -// Possible values for mode: -// -// 1: Set given flags and unset all others -// 2: Set given flags and keep existing flags unchanged -// 3: Unset given flags and keep existing flags unchanged -// -// See https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement -func KittyKeyboard(flags, mode int) string { - return "\x1b[=" + strconv.Itoa(flags) + ";" + strconv.Itoa(mode) + "u" -} - -// PushKittyKeyboard returns a sequence to push the given flags to the terminal -// Kitty Keyboard stack. -// -// Possible values for flags mask: -// -// 0: Disable all features -// 1: Disambiguate escape codes -// 2: Report event types -// 4: Report alternate keys -// 8: Report all keys as escape codes -// 16: Report associated text -// -// CSI > flags u -// -// See https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement -func PushKittyKeyboard(flags int) string { - var f string - if flags > 0 { - f = strconv.Itoa(flags) - } - - return "\x1b[>" + f + "u" -} - -// DisableKittyKeyboard is a sequence to push zero into the terminal Kitty -// Keyboard stack to disable the protocol. -// -// This is equivalent to PushKittyKeyboard(0). -const DisableKittyKeyboard = "\x1b[>u" - -// PopKittyKeyboard returns a sequence to pop n number of flags from the -// terminal Kitty Keyboard stack. -// -// CSI < flags u -// -// See https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement -func PopKittyKeyboard(n int) string { - var num string - if n > 0 { - num = strconv.Itoa(n) - } - - return "\x1b[<" + num + "u" -} diff --git a/vendor/github.com/charmbracelet/x/ansi/method.go b/vendor/github.com/charmbracelet/x/ansi/method.go deleted file mode 100644 index 0218809..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/method.go +++ /dev/null @@ -1,172 +0,0 @@ -package ansi - -// Method is a type that represents the how the renderer should calculate the -// display width of cells. -type Method uint8 - -// Display width modes. -const ( - WcWidth Method = iota - GraphemeWidth -) - -// StringWidth returns the width of a string in cells. This is the number of -// cells that the string will occupy when printed in a terminal. ANSI escape -// codes are ignored and wide characters (such as East Asians and emojis) are -// accounted for. -func (m Method) StringWidth(s string) int { - return stringWidth(m, s) -} - -// Truncate truncates a string to a given length, adding a tail to the end if -// the string is longer than the given length. This function is aware of ANSI -// escape codes and will not break them, and accounts for wide-characters (such -// as East-Asian characters and emojis). -func (m Method) Truncate(s string, length int, tail string) string { - return truncate(m, s, length, tail) -} - -// TruncateLeft truncates a string to a given length, adding a prefix to the -// beginning if the string is longer than the given length. This function is -// aware of ANSI escape codes and will not break them, and accounts for -// wide-characters (such as East-Asian characters and emojis). -func (m Method) TruncateLeft(s string, length int, prefix string) string { - return truncateLeft(m, s, length, prefix) -} - -// Cut the string, without adding any prefix or tail strings. This function is -// aware of ANSI escape codes and will not break them, and accounts for -// wide-characters (such as East-Asian characters and emojis). Note that the -// [left] parameter is inclusive, while [right] isn't. -func (m Method) Cut(s string, left, right int) string { - return cut(m, s, left, right) -} - -// Hardwrap wraps a string or a block of text to a given line length, breaking -// word boundaries. This will preserve ANSI escape codes and will account for -// wide-characters in the string. -// When preserveSpace is true, spaces at the beginning of a line will be -// preserved. -// This treats the text as a sequence of graphemes. -func (m Method) Hardwrap(s string, length int, preserveSpace bool) string { - return hardwrap(m, s, length, preserveSpace) -} - -// Wordwrap wraps a string or a block of text to a given line length, not -// breaking word boundaries. This will preserve ANSI escape codes and will -// account for wide-characters in the string. -// The breakpoints string is a list of characters that are considered -// breakpoints for word wrapping. A hyphen (-) is always considered a -// breakpoint. -// -// Note: breakpoints must be a string of 1-cell wide rune characters. -func (m Method) Wordwrap(s string, length int, breakpoints string) string { - return wordwrap(m, s, length, breakpoints) -} - -// Wrap wraps a string or a block of text to a given line length, breaking word -// boundaries if necessary. This will preserve ANSI escape codes and will -// account for wide-characters in the string. The breakpoints string is a list -// of characters that are considered breakpoints for word wrapping. A hyphen -// (-) is always considered a breakpoint. -// -// Note: breakpoints must be a string of 1-cell wide rune characters. -func (m Method) Wrap(s string, length int, breakpoints string) string { - return wrap(m, s, length, breakpoints) -} - -// DecodeSequence decodes the first ANSI escape sequence or a printable -// grapheme from the given data. It returns the sequence slice, the number of -// bytes read, the cell width for each sequence, and the new state. -// -// The cell width will always be 0 for control and escape sequences, 1 for -// ASCII printable characters, and the number of cells other Unicode characters -// occupy. It uses the uniseg package to calculate the width of Unicode -// graphemes and characters. This means it will always do grapheme clustering -// (mode 2027). -// -// Passing a non-nil [*Parser] as the last argument will allow the decoder to -// collect sequence parameters, data, and commands. The parser cmd will have -// the packed command value that contains intermediate and prefix characters. -// In the case of a OSC sequence, the cmd will be the OSC command number. Use -// [Cmd] and [Param] types to unpack command intermediates and prefixes as well -// as parameters. -// -// Zero [Cmd] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the -// validity of other data sequences, OSC, DCS, etc, will require checking for -// the returned sequence terminator bytes such as ST (ESC \\) and BEL). -// -// We store the command byte in [Cmd] in the most significant byte, the -// prefix byte in the next byte, and the intermediate byte in the least -// significant byte. This is done to avoid using a struct to store the command -// and its intermediates and prefixes. The command byte is always the least -// significant byte i.e. [Cmd & 0xff]. Use the [Cmd] type to unpack the -// command, intermediate, and prefix bytes. Note that we only collect the last -// prefix character and intermediate byte. -// -// The [p.Params] slice will contain the parameters of the sequence. Any -// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Param] type -// to unpack the parameters. -// -// Example: -// -// var state byte // the initial state is always zero [NormalState] -// p := NewParser(32, 1024) // create a new parser with a 32 params buffer and 1024 data buffer (optional) -// input := []byte("\x1b[31mHello, World!\x1b[0m") -// for len(input) > 0 { -// seq, width, n, newState := DecodeSequence(input, state, p) -// log.Printf("seq: %q, width: %d", seq, width) -// state = newState -// input = input[n:] -// } -func (m Method) DecodeSequence(data []byte, state byte, p *Parser) (seq []byte, width, n int, newState byte) { - return decodeSequence(m, data, state, p) -} - -// DecodeSequenceInString decodes the first ANSI escape sequence or a printable -// grapheme from the given data. It returns the sequence slice, the number of -// bytes read, the cell width for each sequence, and the new state. -// -// The cell width will always be 0 for control and escape sequences, 1 for -// ASCII printable characters, and the number of cells other Unicode characters -// occupy. It uses the uniseg package to calculate the width of Unicode -// graphemes and characters. This means it will always do grapheme clustering -// (mode 2027). -// -// Passing a non-nil [*Parser] as the last argument will allow the decoder to -// collect sequence parameters, data, and commands. The parser cmd will have -// the packed command value that contains intermediate and prefix characters. -// In the case of a OSC sequence, the cmd will be the OSC command number. Use -// [Cmd] and [Param] types to unpack command intermediates and prefixes as well -// as parameters. -// -// Zero [Cmd] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the -// validity of other data sequences, OSC, DCS, etc, will require checking for -// the returned sequence terminator bytes such as ST (ESC \\) and BEL). -// -// We store the command byte in [Cmd] in the most significant byte, the -// prefix byte in the next byte, and the intermediate byte in the least -// significant byte. This is done to avoid using a struct to store the command -// and its intermediates and prefixes. The command byte is always the least -// significant byte i.e. [Cmd & 0xff]. Use the [Cmd] type to unpack the -// command, intermediate, and prefix bytes. Note that we only collect the last -// prefix character and intermediate byte. -// -// The [p.Params] slice will contain the parameters of the sequence. Any -// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Param] type -// to unpack the parameters. -// -// Example: -// -// var state byte // the initial state is always zero [NormalState] -// p := NewParser(32, 1024) // create a new parser with a 32 params buffer and 1024 data buffer (optional) -// input := []byte("\x1b[31mHello, World!\x1b[0m") -// for len(input) > 0 { -// seq, width, n, newState := DecodeSequenceInString(input, state, p) -// log.Printf("seq: %q, width: %d", seq, width) -// state = newState -// input = input[n:] -// } -func (m Method) DecodeSequenceInString(data string, state byte, p *Parser) (seq string, width, n int, newState byte) { - return decodeSequence(m, data, state, p) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/mode.go b/vendor/github.com/charmbracelet/x/ansi/mode.go deleted file mode 100644 index 03c9110..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/mode.go +++ /dev/null @@ -1,847 +0,0 @@ -package ansi - -import ( - "strconv" - "strings" -) - -// ModeSetting represents a mode setting. -type ModeSetting byte - -// ModeSetting constants. -const ( - ModeNotRecognized ModeSetting = iota - ModeSet - ModeReset - ModePermanentlySet - ModePermanentlyReset -) - -// IsNotRecognized returns true if the mode is not recognized. -func (m ModeSetting) IsNotRecognized() bool { - return m == ModeNotRecognized -} - -// IsSet returns true if the mode is set or permanently set. -func (m ModeSetting) IsSet() bool { - return m == ModeSet || m == ModePermanentlySet -} - -// IsReset returns true if the mode is reset or permanently reset. -func (m ModeSetting) IsReset() bool { - return m == ModeReset || m == ModePermanentlyReset -} - -// IsPermanentlySet returns true if the mode is permanently set. -func (m ModeSetting) IsPermanentlySet() bool { - return m == ModePermanentlySet -} - -// IsPermanentlyReset returns true if the mode is permanently reset. -func (m ModeSetting) IsPermanentlyReset() bool { - return m == ModePermanentlyReset -} - -// Mode represents an interface for terminal modes. -// Modes can be set, reset, and requested. -type Mode interface { - Mode() int -} - -// SetMode (SM) or (DECSET) returns a sequence to set a mode. -// The mode arguments are a list of modes to set. -// -// If one of the modes is a [DECMode], the function will returns two escape -// sequences. -// -// ANSI format: -// -// CSI Pd ; ... ; Pd h -// -// DEC format: -// -// CSI ? Pd ; ... ; Pd h -// -// See: https://vt100.net/docs/vt510-rm/SM.html -func SetMode(modes ...Mode) string { - return setMode(false, modes...) -} - -// SM is an alias for [SetMode]. -func SM(modes ...Mode) string { - return SetMode(modes...) -} - -// DECSET is an alias for [SetMode]. -func DECSET(modes ...Mode) string { - return SetMode(modes...) -} - -// ResetMode (RM) or (DECRST) returns a sequence to reset a mode. -// The mode arguments are a list of modes to reset. -// -// If one of the modes is a [DECMode], the function will returns two escape -// sequences. -// -// ANSI format: -// -// CSI Pd ; ... ; Pd l -// -// DEC format: -// -// CSI ? Pd ; ... ; Pd l -// -// See: https://vt100.net/docs/vt510-rm/RM.html -func ResetMode(modes ...Mode) string { - return setMode(true, modes...) -} - -// RM is an alias for [ResetMode]. -func RM(modes ...Mode) string { - return ResetMode(modes...) -} - -// DECRST is an alias for [ResetMode]. -func DECRST(modes ...Mode) string { - return ResetMode(modes...) -} - -func setMode(reset bool, modes ...Mode) (s string) { - if len(modes) == 0 { - return //nolint:nakedret - } - - cmd := "h" - if reset { - cmd = "l" - } - - seq := "\x1b[" - if len(modes) == 1 { - switch modes[0].(type) { - case DECMode: - seq += "?" - } - return seq + strconv.Itoa(modes[0].Mode()) + cmd - } - - dec := make([]string, 0, len(modes)/2) - ansi := make([]string, 0, len(modes)/2) - for _, m := range modes { - switch m.(type) { - case DECMode: - dec = append(dec, strconv.Itoa(m.Mode())) - case ANSIMode: - ansi = append(ansi, strconv.Itoa(m.Mode())) - } - } - - if len(ansi) > 0 { - s += seq + strings.Join(ansi, ";") + cmd - } - if len(dec) > 0 { - s += seq + "?" + strings.Join(dec, ";") + cmd - } - return //nolint:nakedret -} - -// RequestMode (DECRQM) returns a sequence to request a mode from the terminal. -// The terminal responds with a report mode function [DECRPM]. -// -// ANSI format: -// -// CSI Pa $ p -// -// DEC format: -// -// CSI ? Pa $ p -// -// See: https://vt100.net/docs/vt510-rm/DECRQM.html -func RequestMode(m Mode) string { - seq := "\x1b[" - switch m.(type) { - case DECMode: - seq += "?" - } - return seq + strconv.Itoa(m.Mode()) + "$p" -} - -// DECRQM is an alias for [RequestMode]. -func DECRQM(m Mode) string { - return RequestMode(m) -} - -// ReportMode (DECRPM) returns a sequence that the terminal sends to the host -// in response to a mode request [DECRQM]. -// -// ANSI format: -// -// CSI Pa ; Ps ; $ y -// -// DEC format: -// -// CSI ? Pa ; Ps $ y -// -// Where Pa is the mode number, and Ps is the mode value. -// -// 0: Not recognized -// 1: Set -// 2: Reset -// 3: Permanent set -// 4: Permanent reset -// -// See: https://vt100.net/docs/vt510-rm/DECRPM.html -func ReportMode(mode Mode, value ModeSetting) string { - if value > 4 { - value = 0 - } - switch mode.(type) { - case DECMode: - return "\x1b[?" + strconv.Itoa(mode.Mode()) + ";" + strconv.Itoa(int(value)) + "$y" - } - return "\x1b[" + strconv.Itoa(mode.Mode()) + ";" + strconv.Itoa(int(value)) + "$y" -} - -// DECRPM is an alias for [ReportMode]. -func DECRPM(mode Mode, value ModeSetting) string { - return ReportMode(mode, value) -} - -// ANSIMode represents an ANSI terminal mode. -type ANSIMode int //nolint:revive - -// Mode returns the ANSI mode as an integer. -func (m ANSIMode) Mode() int { - return int(m) -} - -// DECMode represents a private DEC terminal mode. -type DECMode int - -// Mode returns the DEC mode as an integer. -func (m DECMode) Mode() int { - return int(m) -} - -// Keyboard Action Mode (KAM) is a mode that controls locking of the keyboard. -// When the keyboard is locked, it cannot send data to the terminal. -// -// See: https://vt100.net/docs/vt510-rm/KAM.html -const ( - KeyboardActionMode = ANSIMode(2) - KAM = KeyboardActionMode - - SetKeyboardActionMode = "\x1b[2h" - ResetKeyboardActionMode = "\x1b[2l" - RequestKeyboardActionMode = "\x1b[2$p" -) - -// Insert/Replace Mode (IRM) is a mode that determines whether characters are -// inserted or replaced when typed. -// -// When enabled, characters are inserted at the cursor position pushing the -// characters to the right. When disabled, characters replace the character at -// the cursor position. -// -// See: https://vt100.net/docs/vt510-rm/IRM.html -const ( - InsertReplaceMode = ANSIMode(4) - IRM = InsertReplaceMode - - SetInsertReplaceMode = "\x1b[4h" - ResetInsertReplaceMode = "\x1b[4l" - RequestInsertReplaceMode = "\x1b[4$p" -) - -// BiDirectional Support Mode (BDSM) is a mode that determines whether the -// terminal supports bidirectional text. When enabled, the terminal supports -// bidirectional text and is set to implicit bidirectional mode. When disabled, -// the terminal does not support bidirectional text. -// -// See ECMA-48 7.2.1. -const ( - BiDirectionalSupportMode = ANSIMode(8) - BDSM = BiDirectionalSupportMode - - SetBiDirectionalSupportMode = "\x1b[8h" - ResetBiDirectionalSupportMode = "\x1b[8l" - RequestBiDirectionalSupportMode = "\x1b[8$p" -) - -// Send Receive Mode (SRM) or Local Echo Mode is a mode that determines whether -// the terminal echoes characters back to the host. When enabled, the terminal -// sends characters to the host as they are typed. -// -// See: https://vt100.net/docs/vt510-rm/SRM.html -const ( - SendReceiveMode = ANSIMode(12) - LocalEchoMode = SendReceiveMode - SRM = SendReceiveMode - - SetSendReceiveMode = "\x1b[12h" - ResetSendReceiveMode = "\x1b[12l" - RequestSendReceiveMode = "\x1b[12$p" - - SetLocalEchoMode = "\x1b[12h" - ResetLocalEchoMode = "\x1b[12l" - RequestLocalEchoMode = "\x1b[12$p" -) - -// Line Feed/New Line Mode (LNM) is a mode that determines whether the terminal -// interprets the line feed character as a new line. -// -// When enabled, the terminal interprets the line feed character as a new line. -// When disabled, the terminal interprets the line feed character as a line feed. -// -// A new line moves the cursor to the first position of the next line. -// A line feed moves the cursor down one line without changing the column -// scrolling the screen if necessary. -// -// See: https://vt100.net/docs/vt510-rm/LNM.html -const ( - LineFeedNewLineMode = ANSIMode(20) - LNM = LineFeedNewLineMode - - SetLineFeedNewLineMode = "\x1b[20h" - ResetLineFeedNewLineMode = "\x1b[20l" - RequestLineFeedNewLineMode = "\x1b[20$p" -) - -// Cursor Keys Mode (DECCKM) is a mode that determines whether the cursor keys -// send ANSI cursor sequences or application sequences. -// -// See: https://vt100.net/docs/vt510-rm/DECCKM.html -const ( - CursorKeysMode = DECMode(1) - DECCKM = CursorKeysMode - - SetCursorKeysMode = "\x1b[?1h" - ResetCursorKeysMode = "\x1b[?1l" - RequestCursorKeysMode = "\x1b[?1$p" -) - -// Deprecated: use [SetCursorKeysMode] and [ResetCursorKeysMode] instead. -const ( - EnableCursorKeys = "\x1b[?1h" //nolint:revive // grouped constants - DisableCursorKeys = "\x1b[?1l" -) - -// Origin Mode (DECOM) is a mode that determines whether the cursor moves to the -// home position or the margin position. -// -// See: https://vt100.net/docs/vt510-rm/DECOM.html -const ( - OriginMode = DECMode(6) - DECOM = OriginMode - - SetOriginMode = "\x1b[?6h" - ResetOriginMode = "\x1b[?6l" - RequestOriginMode = "\x1b[?6$p" -) - -// Auto Wrap Mode (DECAWM) is a mode that determines whether the cursor wraps -// to the next line when it reaches the right margin. -// -// See: https://vt100.net/docs/vt510-rm/DECAWM.html -const ( - AutoWrapMode = DECMode(7) - DECAWM = AutoWrapMode - - SetAutoWrapMode = "\x1b[?7h" - ResetAutoWrapMode = "\x1b[?7l" - RequestAutoWrapMode = "\x1b[?7$p" -) - -// X10 Mouse Mode is a mode that determines whether the mouse reports on button -// presses. -// -// The terminal responds with the following encoding: -// -// CSI M CbCxCy -// -// Where Cb is the button-1, where it can be 1, 2, or 3. -// Cx and Cy are the x and y coordinates of the mouse event. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -const ( - X10MouseMode = DECMode(9) - - SetX10MouseMode = "\x1b[?9h" - ResetX10MouseMode = "\x1b[?9l" - RequestX10MouseMode = "\x1b[?9$p" -) - -// Text Cursor Enable Mode (DECTCEM) is a mode that shows/hides the cursor. -// -// See: https://vt100.net/docs/vt510-rm/DECTCEM.html -const ( - TextCursorEnableMode = DECMode(25) - DECTCEM = TextCursorEnableMode - - SetTextCursorEnableMode = "\x1b[?25h" - ResetTextCursorEnableMode = "\x1b[?25l" - RequestTextCursorEnableMode = "\x1b[?25$p" -) - -// These are aliases for [SetTextCursorEnableMode] and [ResetTextCursorEnableMode]. -const ( - ShowCursor = SetTextCursorEnableMode - HideCursor = ResetTextCursorEnableMode -) - -// Text Cursor Enable Mode (DECTCEM) is a mode that shows/hides the cursor. -// -// See: https://vt100.net/docs/vt510-rm/DECTCEM.html -// -// Deprecated: use [SetTextCursorEnableMode] and [ResetTextCursorEnableMode] instead. -const ( - CursorEnableMode = DECMode(25) - RequestCursorVisibility = "\x1b[?25$p" -) - -// Numeric Keypad Mode (DECNKM) is a mode that determines whether the keypad -// sends application sequences or numeric sequences. -// -// This works like [DECKPAM] and [DECKPNM], but uses different sequences. -// -// See: https://vt100.net/docs/vt510-rm/DECNKM.html -const ( - NumericKeypadMode = DECMode(66) - DECNKM = NumericKeypadMode - - SetNumericKeypadMode = "\x1b[?66h" - ResetNumericKeypadMode = "\x1b[?66l" - RequestNumericKeypadMode = "\x1b[?66$p" -) - -// Backarrow Key Mode (DECBKM) is a mode that determines whether the backspace -// key sends a backspace or delete character. Disabled by default. -// -// See: https://vt100.net/docs/vt510-rm/DECBKM.html -const ( - BackarrowKeyMode = DECMode(67) - DECBKM = BackarrowKeyMode - - SetBackarrowKeyMode = "\x1b[?67h" - ResetBackarrowKeyMode = "\x1b[?67l" - RequestBackarrowKeyMode = "\x1b[?67$p" -) - -// Left Right Margin Mode (DECLRMM) is a mode that determines whether the left -// and right margins can be set with [DECSLRM]. -// -// See: https://vt100.net/docs/vt510-rm/DECLRMM.html -const ( - LeftRightMarginMode = DECMode(69) - DECLRMM = LeftRightMarginMode - - SetLeftRightMarginMode = "\x1b[?69h" - ResetLeftRightMarginMode = "\x1b[?69l" - RequestLeftRightMarginMode = "\x1b[?69$p" -) - -// Normal Mouse Mode is a mode that determines whether the mouse reports on -// button presses and releases. It will also report modifier keys, wheel -// events, and extra buttons. -// -// It uses the same encoding as [X10MouseMode] with a few differences: -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -const ( - NormalMouseMode = DECMode(1000) - - SetNormalMouseMode = "\x1b[?1000h" - ResetNormalMouseMode = "\x1b[?1000l" - RequestNormalMouseMode = "\x1b[?1000$p" -) - -// VT Mouse Tracking is a mode that determines whether the mouse reports on -// button press and release. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -// -// Deprecated: use [NormalMouseMode] instead. -const ( - MouseMode = DECMode(1000) - - EnableMouse = "\x1b[?1000h" - DisableMouse = "\x1b[?1000l" - RequestMouse = "\x1b[?1000$p" -) - -// Highlight Mouse Tracking is a mode that determines whether the mouse reports -// on button presses, releases, and highlighted cells. -// -// It uses the same encoding as [NormalMouseMode] with a few differences: -// -// On highlight events, the terminal responds with the following encoding: -// -// CSI t CxCy -// CSI T CxCyCxCyCxCy -// -// Where the parameters are startx, starty, endx, endy, mousex, and mousey. -const ( - HighlightMouseMode = DECMode(1001) - - SetHighlightMouseMode = "\x1b[?1001h" - ResetHighlightMouseMode = "\x1b[?1001l" - RequestHighlightMouseMode = "\x1b[?1001$p" -) - -// VT Hilite Mouse Tracking is a mode that determines whether the mouse reports on -// button presses, releases, and highlighted cells. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -// -// Deprecated: use [HighlightMouseMode] instead. -const ( - MouseHiliteMode = DECMode(1001) - - EnableMouseHilite = "\x1b[?1001h" - DisableMouseHilite = "\x1b[?1001l" - RequestMouseHilite = "\x1b[?1001$p" -) - -// Button Event Mouse Tracking is essentially the same as [NormalMouseMode], -// but it also reports button-motion events when a button is pressed. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -const ( - ButtonEventMouseMode = DECMode(1002) - - SetButtonEventMouseMode = "\x1b[?1002h" - ResetButtonEventMouseMode = "\x1b[?1002l" - RequestButtonEventMouseMode = "\x1b[?1002$p" -) - -// Cell Motion Mouse Tracking is a mode that determines whether the mouse -// reports on button press, release, and motion events. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -// -// Deprecated: use [ButtonEventMouseMode] instead. -const ( - MouseCellMotionMode = DECMode(1002) - - EnableMouseCellMotion = "\x1b[?1002h" - DisableMouseCellMotion = "\x1b[?1002l" - RequestMouseCellMotion = "\x1b[?1002$p" -) - -// Any Event Mouse Tracking is the same as [ButtonEventMouseMode], except that -// all motion events are reported even if no mouse buttons are pressed. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -const ( - AnyEventMouseMode = DECMode(1003) - - SetAnyEventMouseMode = "\x1b[?1003h" - ResetAnyEventMouseMode = "\x1b[?1003l" - RequestAnyEventMouseMode = "\x1b[?1003$p" -) - -// All Mouse Tracking is a mode that determines whether the mouse reports on -// button press, release, motion, and highlight events. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -// -// Deprecated: use [AnyEventMouseMode] instead. -const ( - MouseAllMotionMode = DECMode(1003) - - EnableMouseAllMotion = "\x1b[?1003h" - DisableMouseAllMotion = "\x1b[?1003l" - RequestMouseAllMotion = "\x1b[?1003$p" -) - -// Focus Event Mode is a mode that determines whether the terminal reports focus -// and blur events. -// -// The terminal sends the following encoding: -// -// CSI I // Focus In -// CSI O // Focus Out -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Focus-Tracking -const ( - FocusEventMode = DECMode(1004) - - SetFocusEventMode = "\x1b[?1004h" - ResetFocusEventMode = "\x1b[?1004l" - RequestFocusEventMode = "\x1b[?1004$p" -) - -// Deprecated: use [SetFocusEventMode], [ResetFocusEventMode], and -// [RequestFocusEventMode] instead. -// Focus reporting mode constants. -const ( - ReportFocusMode = DECMode(1004) //nolint:revive // grouped constants - - EnableReportFocus = "\x1b[?1004h" - DisableReportFocus = "\x1b[?1004l" - RequestReportFocus = "\x1b[?1004$p" -) - -// SGR Extended Mouse Mode is a mode that changes the mouse tracking encoding -// to use SGR parameters. -// -// The terminal responds with the following encoding: -// -// CSI < Cb ; Cx ; Cy M -// -// Where Cb is the same as [NormalMouseMode], and Cx and Cy are the x and y. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -const ( - SgrExtMouseMode = DECMode(1006) - - SetSgrExtMouseMode = "\x1b[?1006h" - ResetSgrExtMouseMode = "\x1b[?1006l" - RequestSgrExtMouseMode = "\x1b[?1006$p" -) - -// Deprecated: use [SgrExtMouseMode] [SetSgrExtMouseMode], -// [ResetSgrExtMouseMode], and [RequestSgrExtMouseMode] instead. -const ( - MouseSgrExtMode = DECMode(1006) //nolint:revive // grouped constants - EnableMouseSgrExt = "\x1b[?1006h" - DisableMouseSgrExt = "\x1b[?1006l" - RequestMouseSgrExt = "\x1b[?1006$p" -) - -// UTF-8 Extended Mouse Mode is a mode that changes the mouse tracking encoding -// to use UTF-8 parameters. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -const ( - Utf8ExtMouseMode = DECMode(1005) - - SetUtf8ExtMouseMode = "\x1b[?1005h" - ResetUtf8ExtMouseMode = "\x1b[?1005l" - RequestUtf8ExtMouseMode = "\x1b[?1005$p" -) - -// URXVT Extended Mouse Mode is a mode that changes the mouse tracking encoding -// to use an alternate encoding. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -const ( - UrxvtExtMouseMode = DECMode(1015) - - SetUrxvtExtMouseMode = "\x1b[?1015h" - ResetUrxvtExtMouseMode = "\x1b[?1015l" - RequestUrxvtExtMouseMode = "\x1b[?1015$p" -) - -// SGR Pixel Extended Mouse Mode is a mode that changes the mouse tracking -// encoding to use SGR parameters with pixel coordinates. -// -// This is similar to [SgrExtMouseMode], but also reports pixel coordinates. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking -const ( - SgrPixelExtMouseMode = DECMode(1016) - - SetSgrPixelExtMouseMode = "\x1b[?1016h" - ResetSgrPixelExtMouseMode = "\x1b[?1016l" - RequestSgrPixelExtMouseMode = "\x1b[?1016$p" -) - -// Alternate Screen Mode is a mode that determines whether the alternate screen -// buffer is active. When this mode is enabled, the alternate screen buffer is -// cleared. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-The-Alternate-Screen-Buffer -const ( - AltScreenMode = DECMode(1047) - - SetAltScreenMode = "\x1b[?1047h" - ResetAltScreenMode = "\x1b[?1047l" - RequestAltScreenMode = "\x1b[?1047$p" -) - -// Save Cursor Mode is a mode that saves the cursor position. -// This is equivalent to [SaveCursor] and [RestoreCursor]. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-The-Alternate-Screen-Buffer -const ( - SaveCursorMode = DECMode(1048) - - SetSaveCursorMode = "\x1b[?1048h" - ResetSaveCursorMode = "\x1b[?1048l" - RequestSaveCursorMode = "\x1b[?1048$p" -) - -// Alternate Screen Save Cursor Mode is a mode that saves the cursor position as in -// [SaveCursorMode], switches to the alternate screen buffer as in [AltScreenMode], -// and clears the screen on switch. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-The-Alternate-Screen-Buffer -const ( - AltScreenSaveCursorMode = DECMode(1049) - - SetAltScreenSaveCursorMode = "\x1b[?1049h" - ResetAltScreenSaveCursorMode = "\x1b[?1049l" - RequestAltScreenSaveCursorMode = "\x1b[?1049$p" -) - -// Alternate Screen Buffer is a mode that determines whether the alternate screen -// buffer is active. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-The-Alternate-Screen-Buffer -// -// Deprecated: use [AltScreenSaveCursorMode] instead. -const ( - AltScreenBufferMode = DECMode(1049) - - SetAltScreenBufferMode = "\x1b[?1049h" - ResetAltScreenBufferMode = "\x1b[?1049l" - RequestAltScreenBufferMode = "\x1b[?1049$p" - - EnableAltScreenBuffer = "\x1b[?1049h" - DisableAltScreenBuffer = "\x1b[?1049l" - RequestAltScreenBuffer = "\x1b[?1049$p" -) - -// Bracketed Paste Mode is a mode that determines whether pasted text is -// bracketed with escape sequences. -// -// See: https://cirw.in/blog/bracketed-paste -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Bracketed-Paste-Mode -const ( - BracketedPasteMode = DECMode(2004) - - SetBracketedPasteMode = "\x1b[?2004h" - ResetBracketedPasteMode = "\x1b[?2004l" - RequestBracketedPasteMode = "\x1b[?2004$p" -) - -// Deprecated: use [SetBracketedPasteMode], [ResetBracketedPasteMode], and -// [RequestBracketedPasteMode] instead. -const ( - EnableBracketedPaste = "\x1b[?2004h" //nolint:revive // grouped constants - DisableBracketedPaste = "\x1b[?2004l" - RequestBracketedPaste = "\x1b[?2004$p" -) - -// Synchronized Output Mode is a mode that determines whether output is -// synchronized with the terminal. -// -// See: https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036 -const ( - SynchronizedOutputMode = DECMode(2026) - - SetSynchronizedOutputMode = "\x1b[?2026h" - ResetSynchronizedOutputMode = "\x1b[?2026l" - RequestSynchronizedOutputMode = "\x1b[?2026$p" -) - -// Synchronized Output Mode. See [SynchronizedOutputMode]. -// -// Deprecated: use [SynchronizedOutputMode], [SetSynchronizedOutputMode], and -// [ResetSynchronizedOutputMode], and [RequestSynchronizedOutputMode] instead. -const ( - SyncdOutputMode = DECMode(2026) - - EnableSyncdOutput = "\x1b[?2026h" - DisableSyncdOutput = "\x1b[?2026l" - RequestSyncdOutput = "\x1b[?2026$p" -) - -// Unicode Core Mode is a mode that determines whether the terminal should use -// Unicode grapheme clustering to calculate the width of glyphs for each -// terminal cell. -// -// See: https://github.com/contour-terminal/terminal-unicode-core -const ( - UnicodeCoreMode = DECMode(2027) - - SetUnicodeCoreMode = "\x1b[?2027h" - ResetUnicodeCoreMode = "\x1b[?2027l" - RequestUnicodeCoreMode = "\x1b[?2027$p" -) - -// Grapheme Clustering Mode is a mode that determines whether the terminal -// should look for grapheme clusters instead of single runes in the rendered -// text. This makes the terminal properly render combining characters such as -// emojis. -// -// See: https://github.com/contour-terminal/terminal-unicode-core -// -// Deprecated: use [GraphemeClusteringMode], [SetUnicodeCoreMode], -// [ResetUnicodeCoreMode], and [RequestUnicodeCoreMode] instead. -const ( - GraphemeClusteringMode = DECMode(2027) - - SetGraphemeClusteringMode = "\x1b[?2027h" - ResetGraphemeClusteringMode = "\x1b[?2027l" - RequestGraphemeClusteringMode = "\x1b[?2027$p" -) - -// Grapheme Clustering Mode. See [GraphemeClusteringMode]. -// -// Deprecated: use [SetUnicodeCoreMode], [ResetUnicodeCoreMode], and -// [RequestUnicodeCoreMode] instead. -const ( - EnableGraphemeClustering = "\x1b[?2027h" - DisableGraphemeClustering = "\x1b[?2027l" - RequestGraphemeClustering = "\x1b[?2027$p" -) - -// LightDarkMode is a mode that enables reporting the operating system's color -// scheme (light or dark) preference. It reports the color scheme as a [DSR] -// and [LightDarkReport] escape sequences encoded as follows: -// -// CSI ? 997 ; 1 n for dark mode -// CSI ? 997 ; 2 n for light mode -// -// The color preference can also be requested via the following [DSR] and -// [RequestLightDarkReport] escape sequences: -// -// CSI ? 996 n -// -// See: https://contour-terminal.org/vt-extensions/color-palette-update-notifications/ -const ( - LightDarkMode = DECMode(2031) - - SetLightDarkMode = "\x1b[?2031h" - ResetLightDarkMode = "\x1b[?2031l" - RequestLightDarkMode = "\x1b[?2031$p" -) - -// InBandResizeMode is a mode that reports terminal resize events as escape -// sequences. This is useful for systems that do not support [SIGWINCH] like -// Windows. -// -// The terminal then sends the following encoding: -// -// CSI 48 ; cellsHeight ; cellsWidth ; pixelHeight ; pixelWidth t -// -// See: https://gist.github.com/rockorager/e695fb2924d36b2bcf1fff4a3704bd83 -const ( - InBandResizeMode = DECMode(2048) - - SetInBandResizeMode = "\x1b[?2048h" - ResetInBandResizeMode = "\x1b[?2048l" - RequestInBandResizeMode = "\x1b[?2048$p" -) - -// Win32Input is a mode that determines whether input is processed by the -// Win32 console and Conpty. -// -// See: https://github.com/microsoft/terminal/blob/main/doc/specs/%234999%20-%20Improved%20keyboard%20handling%20in%20Conpty.md -const ( - Win32InputMode = DECMode(9001) - - SetWin32InputMode = "\x1b[?9001h" - ResetWin32InputMode = "\x1b[?9001l" - RequestWin32InputMode = "\x1b[?9001$p" -) - -// Deprecated: use [SetWin32InputMode], [ResetWin32InputMode], and -// [RequestWin32InputMode] instead. -const ( - EnableWin32Input = "\x1b[?9001h" //nolint:revive // grouped constants - DisableWin32Input = "\x1b[?9001l" - RequestWin32Input = "\x1b[?9001$p" -) diff --git a/vendor/github.com/charmbracelet/x/ansi/modes.go b/vendor/github.com/charmbracelet/x/ansi/modes.go deleted file mode 100644 index 6856d35..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/modes.go +++ /dev/null @@ -1,65 +0,0 @@ -package ansi - -// Modes represents the terminal modes that can be set or reset. By default, -// all modes are [ModeNotRecognized]. -type Modes map[Mode]ModeSetting - -// Get returns the setting of a terminal mode. If the mode is not set, it -// returns [ModeNotRecognized]. -func (m Modes) Get(mode Mode) ModeSetting { - return m[mode] -} - -// Delete deletes a terminal mode. This has the same effect as setting the mode -// to [ModeNotRecognized]. -func (m Modes) Delete(mode Mode) { - delete(m, mode) -} - -// Set sets a terminal mode to [ModeSet]. -func (m Modes) Set(modes ...Mode) { - for _, mode := range modes { - m[mode] = ModeSet - } -} - -// PermanentlySet sets a terminal mode to [ModePermanentlySet]. -func (m Modes) PermanentlySet(modes ...Mode) { - for _, mode := range modes { - m[mode] = ModePermanentlySet - } -} - -// Reset sets a terminal mode to [ModeReset]. -func (m Modes) Reset(modes ...Mode) { - for _, mode := range modes { - m[mode] = ModeReset - } -} - -// PermanentlyReset sets a terminal mode to [ModePermanentlyReset]. -func (m Modes) PermanentlyReset(modes ...Mode) { - for _, mode := range modes { - m[mode] = ModePermanentlyReset - } -} - -// IsSet returns true if the mode is set to [ModeSet] or [ModePermanentlySet]. -func (m Modes) IsSet(mode Mode) bool { - return m[mode].IsSet() -} - -// IsPermanentlySet returns true if the mode is set to [ModePermanentlySet]. -func (m Modes) IsPermanentlySet(mode Mode) bool { - return m[mode].IsPermanentlySet() -} - -// IsReset returns true if the mode is set to [ModeReset] or [ModePermanentlyReset]. -func (m Modes) IsReset(mode Mode) bool { - return m[mode].IsReset() -} - -// IsPermanentlyReset returns true if the mode is set to [ModePermanentlyReset]. -func (m Modes) IsPermanentlyReset(mode Mode) bool { - return m[mode].IsPermanentlyReset() -} diff --git a/vendor/github.com/charmbracelet/x/ansi/mouse.go b/vendor/github.com/charmbracelet/x/ansi/mouse.go deleted file mode 100644 index 0e4776b..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/mouse.go +++ /dev/null @@ -1,172 +0,0 @@ -package ansi - -import ( - "fmt" -) - -// MouseButton represents the button that was pressed during a mouse message. -type MouseButton byte - -// Mouse event buttons -// -// This is based on X11 mouse button codes. -// -// 1 = left button -// 2 = middle button (pressing the scroll wheel) -// 3 = right button -// 4 = turn scroll wheel up -// 5 = turn scroll wheel down -// 6 = push scroll wheel left -// 7 = push scroll wheel right -// 8 = 4th button (aka browser backward button) -// 9 = 5th button (aka browser forward button) -// 10 -// 11 -// -// Other buttons are not supported. -const ( - MouseNone MouseButton = iota - MouseButton1 - MouseButton2 - MouseButton3 - MouseButton4 - MouseButton5 - MouseButton6 - MouseButton7 - MouseButton8 - MouseButton9 - MouseButton10 - MouseButton11 - - MouseLeft = MouseButton1 - MouseMiddle = MouseButton2 - MouseRight = MouseButton3 - MouseWheelUp = MouseButton4 - MouseWheelDown = MouseButton5 - MouseWheelLeft = MouseButton6 - MouseWheelRight = MouseButton7 - MouseBackward = MouseButton8 - MouseForward = MouseButton9 - MouseRelease = MouseNone -) - -var mouseButtons = map[MouseButton]string{ - MouseNone: "none", - MouseLeft: "left", - MouseMiddle: "middle", - MouseRight: "right", - MouseWheelUp: "wheelup", - MouseWheelDown: "wheeldown", - MouseWheelLeft: "wheelleft", - MouseWheelRight: "wheelright", - MouseBackward: "backward", - MouseForward: "forward", - MouseButton10: "button10", - MouseButton11: "button11", -} - -// String returns a string representation of the mouse button. -func (b MouseButton) String() string { - return mouseButtons[b] -} - -// EncodeMouseButton returns a byte representing a mouse button. -// The button is a bitmask of the following leftmost values: -// -// - The first two bits are the button number: -// 0 = left button, wheel up, or button no. 8 aka (backwards) -// 1 = middle button, wheel down, or button no. 9 aka (forwards) -// 2 = right button, wheel left, or button no. 10 -// 3 = release event, wheel right, or button no. 11 -// -// - The third bit indicates whether the shift key was pressed. -// -// - The fourth bit indicates the alt key was pressed. -// -// - The fifth bit indicates the control key was pressed. -// -// - The sixth bit indicates motion events. Combined with button number 3, i.e. -// release event, it represents a drag event. -// -// - The seventh bit indicates a wheel event. -// -// - The eighth bit indicates additional buttons. -// -// If button is [MouseNone], and motion is false, this returns a release event. -// If button is undefined, this function returns 0xff. -func EncodeMouseButton(b MouseButton, motion, shift, alt, ctrl bool) (m byte) { - // mouse bit shifts - const ( - bitShift = 0b0000_0100 - bitAlt = 0b0000_1000 - bitCtrl = 0b0001_0000 - bitMotion = 0b0010_0000 - bitWheel = 0b0100_0000 - bitAdd = 0b1000_0000 // additional buttons 8-11 - - bitsMask = 0b0000_0011 - ) - - if b == MouseNone { - m = bitsMask - } else if b >= MouseLeft && b <= MouseRight { - m = byte(b - MouseLeft) - } else if b >= MouseWheelUp && b <= MouseWheelRight { - m = byte(b - MouseWheelUp) - m |= bitWheel - } else if b >= MouseBackward && b <= MouseButton11 { - m = byte(b - MouseBackward) - m |= bitAdd - } else { - m = 0xff // invalid button - } - - if shift { - m |= bitShift - } - if alt { - m |= bitAlt - } - if ctrl { - m |= bitCtrl - } - if motion { - m |= bitMotion - } - - return //nolint:nakedret -} - -// x10Offset is the offset for X10 mouse events. -// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Mouse%20Tracking -const x10Offset = 32 - -// MouseX10 returns an escape sequence representing a mouse event in X10 mode. -// Note that this requires the terminal support X10 mouse modes. -// -// CSI M Cb Cx Cy -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Mouse%20Tracking -func MouseX10(b byte, x, y int) string { - return "\x1b[M" + string(b+x10Offset) + string(byte(x)+x10Offset+1) + string(byte(y)+x10Offset+1) -} - -// MouseSgr returns an escape sequence representing a mouse event in SGR mode. -// -// CSI < Cb ; Cx ; Cy M -// CSI < Cb ; Cx ; Cy m (release) -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Mouse%20Tracking -func MouseSgr(b byte, x, y int, release bool) string { - s := 'M' - if release { - s = 'm' - } - if x < 0 { - x = -x - } - if y < 0 { - y = -y - } - return fmt.Sprintf("\x1b[<%d;%d;%d%c", b, x+1, y+1, s) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/notification.go b/vendor/github.com/charmbracelet/x/ansi/notification.go deleted file mode 100644 index c712f34..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/notification.go +++ /dev/null @@ -1,13 +0,0 @@ -package ansi - -// Notify sends a desktop notification using iTerm's OSC 9. -// -// OSC 9 ; Mc ST -// OSC 9 ; Mc BEL -// -// Where Mc is the notification body. -// -// See: https://iterm2.com/documentation-escape-codes.html -func Notify(s string) string { - return "\x1b]9;" + s + "\x07" -} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser.go b/vendor/github.com/charmbracelet/x/ansi/parser.go deleted file mode 100644 index e770c15..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/parser.go +++ /dev/null @@ -1,417 +0,0 @@ -package ansi - -import ( - "unicode/utf8" - "unsafe" - - "github.com/charmbracelet/x/ansi/parser" -) - -// Parser represents a DEC ANSI compatible sequence parser. -// -// It uses a state machine to parse ANSI escape sequences and control -// characters. The parser is designed to be used with a terminal emulator or -// similar application that needs to parse ANSI escape sequences and control -// characters. -// See package [parser] for more information. -// -//go:generate go run ./gen.go -type Parser struct { - handler Handler - - // params contains the raw parameters of the sequence. - // These parameters used when constructing CSI and DCS sequences. - params []int - - // data contains the raw data of the sequence. - // These data used when constructing OSC, DCS, SOS, PM, and APC sequences. - data []byte - - // dataLen keeps track of the length of the data buffer. - // If dataLen is -1, the data buffer is unlimited and will grow as needed. - // Otherwise, dataLen is limited by the size of the data buffer. - dataLen int - - // paramsLen keeps track of the number of parameters. - // This is limited by the size of the params buffer. - // - // This is also used when collecting UTF-8 runes to keep track of the - // number of rune bytes collected. - paramsLen int - - // cmd contains the raw command along with the private prefix and - // intermediate bytes of the sequence. - // The first lower byte contains the command byte, the next byte contains - // the private prefix, and the next byte contains the intermediate byte. - // - // This is also used when collecting UTF-8 runes treating it as a slice of - // 4 bytes. - cmd int - - // state is the current state of the parser. - state byte -} - -// NewParser returns a new parser with the default settings. -// The [Parser] uses a default size of 32 for the parameters and 64KB for the -// data buffer. Use [Parser.SetParamsSize] and [Parser.SetDataSize] to set the -// size of the parameters and data buffer respectively. -func NewParser() *Parser { - p := new(Parser) - p.SetParamsSize(parser.MaxParamsSize) - p.SetDataSize(1024 * 64) // 64KB data buffer - return p -} - -// SetParamsSize sets the size of the parameters buffer. -// This is used when constructing CSI and DCS sequences. -func (p *Parser) SetParamsSize(size int) { - p.params = make([]int, size) -} - -// SetDataSize sets the size of the data buffer. -// This is used when constructing OSC, DCS, SOS, PM, and APC sequences. -// If size is less than or equal to 0, the data buffer is unlimited and will -// grow as needed. -func (p *Parser) SetDataSize(size int) { - if size <= 0 { - size = 0 - p.dataLen = -1 - } - p.data = make([]byte, size) -} - -// Params returns the list of parsed packed parameters. -func (p *Parser) Params() Params { - return unsafe.Slice((*Param)(unsafe.Pointer(&p.params[0])), p.paramsLen) -} - -// Param returns the parameter at the given index and falls back to the default -// value if the parameter is missing. If the index is out of bounds, it returns -// the default value and false. -func (p *Parser) Param(i, def int) (int, bool) { - if i < 0 || i >= p.paramsLen { - return def, false - } - return Param(p.params[i]).Param(def), true -} - -// Command returns the packed command of the last dispatched sequence. Use -// [Cmd] to unpack the command. -func (p *Parser) Command() int { - return p.cmd -} - -// Rune returns the last dispatched sequence as a rune. -func (p *Parser) Rune() rune { - rw := utf8ByteLen(byte(p.cmd & 0xff)) - if rw == -1 { - return utf8.RuneError - } - r, _ := utf8.DecodeRune((*[utf8.UTFMax]byte)(unsafe.Pointer(&p.cmd))[:rw]) - return r -} - -// Control returns the last dispatched sequence as a control code. -func (p *Parser) Control() byte { - return byte(p.cmd & 0xff) -} - -// Data returns the raw data of the last dispatched sequence. -func (p *Parser) Data() []byte { - return p.data[:p.dataLen] -} - -// Reset resets the parser to its initial state. -func (p *Parser) Reset() { - p.clear() - p.state = parser.GroundState -} - -// clear clears the parser parameters and command. -func (p *Parser) clear() { - if len(p.params) > 0 { - p.params[0] = parser.MissingParam - } - p.paramsLen = 0 - p.cmd = 0 -} - -// State returns the current state of the parser. -func (p *Parser) State() parser.State { - return p.state -} - -// StateName returns the name of the current state. -func (p *Parser) StateName() string { - return parser.StateNames[p.state] -} - -// Parse parses the given dispatcher and byte buffer. -// Deprecated: Loop over the buffer and call [Parser.Advance] instead. -func (p *Parser) Parse(b []byte) { - for i := range b { - p.Advance(b[i]) - } -} - -// Advance advances the parser using the given byte. It returns the action -// performed by the parser. -func (p *Parser) Advance(b byte) parser.Action { - switch p.state { - case parser.Utf8State: - // We handle UTF-8 here. - return p.advanceUtf8(b) - default: - return p.advance(b) - } -} - -func (p *Parser) collectRune(b byte) { - if p.paramsLen >= utf8.UTFMax { - return - } - - shift := p.paramsLen * 8 - p.cmd &^= 0xff << shift - p.cmd |= int(b) << shift - p.paramsLen++ -} - -func (p *Parser) advanceUtf8(b byte) parser.Action { - // Collect UTF-8 rune bytes. - p.collectRune(b) - rw := utf8ByteLen(byte(p.cmd & 0xff)) - if rw == -1 { - // We panic here because the first byte comes from the state machine, - // if this panics, it means there is a bug in the state machine! - panic("invalid rune") // unreachable - } - - if p.paramsLen < rw { - return parser.CollectAction - } - - // We have enough bytes to decode the rune using unsafe - if p.handler.Print != nil { - p.handler.Print(p.Rune()) - } - - p.state = parser.GroundState - p.paramsLen = 0 - - return parser.PrintAction -} - -func (p *Parser) advance(b byte) parser.Action { - state, action := parser.Table.Transition(p.state, b) - - // We need to clear the parser state if the state changes from EscapeState. - // This is because when we enter the EscapeState, we don't get a chance to - // clear the parser state. For example, when a sequence terminates with a - // ST (\x1b\\ or \x9c), we dispatch the current sequence and transition to - // EscapeState. However, the parser state is not cleared in this case and - // we need to clear it here before dispatching the esc sequence. - if p.state != state { - if p.state == parser.EscapeState { - p.performAction(parser.ClearAction, state, b) - } - if action == parser.PutAction && - p.state == parser.DcsEntryState && state == parser.DcsStringState { - // XXX: This is a special case where we need to start collecting - // non-string parameterized data i.e. doesn't follow the ECMA-48 § - // 5.4.1 string parameters format. - p.performAction(parser.StartAction, state, 0) - } - } - - // Handle special cases - switch { - case b == ESC && p.state == parser.EscapeState: - // Two ESCs in a row - p.performAction(parser.ExecuteAction, state, b) - default: - p.performAction(action, state, b) - } - - p.state = state - - return action -} - -func (p *Parser) parseStringCmd() { - // Try to parse the command - datalen := len(p.data) - if p.dataLen >= 0 { - datalen = p.dataLen - } - for i := range datalen { - d := p.data[i] - if d < '0' || d > '9' { - break - } - if p.cmd == parser.MissingCommand { - p.cmd = 0 - } - p.cmd *= 10 - p.cmd += int(d - '0') - } -} - -func (p *Parser) performAction(action parser.Action, state parser.State, b byte) { - switch action { - case parser.IgnoreAction: - break - - case parser.ClearAction: - p.clear() - - case parser.PrintAction: - p.cmd = int(b) - if p.handler.Print != nil { - p.handler.Print(rune(b)) - } - - case parser.ExecuteAction: - p.cmd = int(b) - if p.handler.Execute != nil { - p.handler.Execute(b) - } - - case parser.PrefixAction: - // Collect private prefix - // we only store the last prefix - p.cmd &^= 0xff << parser.PrefixShift - p.cmd |= int(b) << parser.PrefixShift - - case parser.CollectAction: - if state == parser.Utf8State { - // Reset the UTF-8 counter - p.paramsLen = 0 - p.collectRune(b) - } else { - // Collect intermediate bytes - // we only store the last intermediate byte - p.cmd &^= 0xff << parser.IntermedShift - p.cmd |= int(b) << parser.IntermedShift - } - - case parser.ParamAction: - // Collect parameters - if p.paramsLen >= len(p.params) { - break - } - - if b >= '0' && b <= '9' { - if p.params[p.paramsLen] == parser.MissingParam { - p.params[p.paramsLen] = 0 - } - - p.params[p.paramsLen] *= 10 - p.params[p.paramsLen] += int(b - '0') - } - - if b == ':' { - p.params[p.paramsLen] |= parser.HasMoreFlag - } - - if b == ';' || b == ':' { - p.paramsLen++ - if p.paramsLen < len(p.params) { - p.params[p.paramsLen] = parser.MissingParam - } - } - - case parser.StartAction: - if p.dataLen < 0 && p.data != nil { - p.data = p.data[:0] - } else { - p.dataLen = 0 - } - if p.state >= parser.DcsEntryState && p.state <= parser.DcsStringState { - // Collect the command byte for DCS - p.cmd |= int(b) - } else { - p.cmd = parser.MissingCommand - } - - case parser.PutAction: - switch p.state { - case parser.OscStringState: - if b == ';' && p.cmd == parser.MissingCommand { - p.parseStringCmd() - } - } - - if p.dataLen < 0 { - p.data = append(p.data, b) - } else { - if p.dataLen < len(p.data) { - p.data[p.dataLen] = b - p.dataLen++ - } - } - - case parser.DispatchAction: - // Increment the last parameter - if p.paramsLen > 0 && p.paramsLen < len(p.params)-1 || - p.paramsLen == 0 && len(p.params) > 0 && p.params[0] != parser.MissingParam { - p.paramsLen++ - } - - if p.state == parser.OscStringState && p.cmd == parser.MissingCommand { - // Ensure we have a command for OSC - p.parseStringCmd() - } - - data := p.data - if p.dataLen >= 0 { - data = data[:p.dataLen] - } - switch p.state { - case parser.CsiEntryState, parser.CsiParamState, parser.CsiIntermediateState: - p.cmd |= int(b) - if p.handler.HandleCsi != nil { - p.handler.HandleCsi(Cmd(p.cmd), p.Params()) - } - case parser.EscapeState, parser.EscapeIntermediateState: - p.cmd |= int(b) - if p.handler.HandleEsc != nil { - p.handler.HandleEsc(Cmd(p.cmd)) - } - case parser.DcsEntryState, parser.DcsParamState, parser.DcsIntermediateState, parser.DcsStringState: - if p.handler.HandleDcs != nil { - p.handler.HandleDcs(Cmd(p.cmd), p.Params(), data) - } - case parser.OscStringState: - if p.handler.HandleOsc != nil { - p.handler.HandleOsc(p.cmd, data) - } - case parser.SosStringState: - if p.handler.HandleSos != nil { - p.handler.HandleSos(data) - } - case parser.PmStringState: - if p.handler.HandlePm != nil { - p.handler.HandlePm(data) - } - case parser.ApcStringState: - if p.handler.HandleApc != nil { - p.handler.HandleApc(data) - } - } - } -} - -func utf8ByteLen(b byte) int { - if b <= 0b0111_1111 { // 0x00-0x7F - return 1 - } else if b >= 0b1100_0000 && b <= 0b1101_1111 { // 0xC0-0xDF - return 2 - } else if b >= 0b1110_0000 && b <= 0b1110_1111 { // 0xE0-0xEF - return 3 - } else if b >= 0b1111_0000 && b <= 0b1111_0111 { // 0xF0-0xF7 - return 4 - } - return -1 -} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser/const.go b/vendor/github.com/charmbracelet/x/ansi/parser/const.go deleted file mode 100644 index 85c9086..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/parser/const.go +++ /dev/null @@ -1,79 +0,0 @@ -// Package parser provides ANSI escape sequence parsing functionality. -package parser - -// Action is a DEC ANSI parser action. -type Action = byte - -// These are the actions that the parser can take. -const ( - NoneAction Action = iota - ClearAction - CollectAction - PrefixAction - DispatchAction - ExecuteAction - StartAction // Start of a data string - PutAction // Put into the data string - ParamAction - PrintAction - - IgnoreAction = NoneAction -) - -// ActionNames provides string names for parser actions. -var ActionNames = []string{ - "NoneAction", - "ClearAction", - "CollectAction", - "PrefixAction", - "DispatchAction", - "ExecuteAction", - "StartAction", - "PutAction", - "ParamAction", - "PrintAction", -} - -// State is a DEC ANSI parser state. -type State = byte - -// These are the states that the parser can be in. -const ( - GroundState State = iota - CsiEntryState - CsiIntermediateState - CsiParamState - DcsEntryState - DcsIntermediateState - DcsParamState - DcsStringState - EscapeState - EscapeIntermediateState - OscStringState - SosStringState - PmStringState - ApcStringState - - // Utf8State is not part of the DEC ANSI standard. It is used to handle - // UTF-8 sequences. - Utf8State -) - -// StateNames provides string names for parser states. -var StateNames = []string{ - "GroundState", - "CsiEntryState", - "CsiIntermediateState", - "CsiParamState", - "DcsEntryState", - "DcsIntermediateState", - "DcsParamState", - "DcsStringState", - "EscapeState", - "EscapeIntermediateState", - "OscStringState", - "SosStringState", - "PmStringState", - "ApcStringState", - "Utf8State", -} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser/seq.go b/vendor/github.com/charmbracelet/x/ansi/parser/seq.go deleted file mode 100644 index de7e15e..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/parser/seq.go +++ /dev/null @@ -1,136 +0,0 @@ -package parser - -import "math" - -// Shift and masks for sequence parameters and intermediates. -const ( - PrefixShift = 8 - IntermedShift = 16 - FinalMask = 0xff - HasMoreFlag = math.MinInt32 - ParamMask = ^HasMoreFlag - MissingParam = ParamMask - MissingCommand = MissingParam - MaxParam = math.MaxUint16 // the maximum value a parameter can have -) - -const ( - // MaxParamsSize is the maximum number of parameters a sequence can have. - MaxParamsSize = 32 - - // DefaultParamValue is the default value used for missing parameters. - DefaultParamValue = 0 -) - -// Prefix returns the prefix byte of the sequence. -// This is always gonna be one of the following '<' '=' '>' '?' and in the -// range of 0x3C-0x3F. -// Zero is returned if the sequence does not have a prefix. -func Prefix(cmd int) int { - return (cmd >> PrefixShift) & FinalMask -} - -// Intermediate returns the intermediate byte of the sequence. -// An intermediate byte is in the range of 0x20-0x2F. This includes these -// characters from ' ', '!', '"', '#', '$', '%', '&', ”', '(', ')', '*', '+', -// ',', '-', '.', '/'. -// Zero is returned if the sequence does not have an intermediate byte. -func Intermediate(cmd int) int { - return (cmd >> IntermedShift) & FinalMask -} - -// Command returns the command byte of the CSI sequence. -func Command(cmd int) int { - return cmd & FinalMask -} - -// Param returns the parameter at the given index. -// It returns -1 if the parameter does not exist. -func Param(params []int, i int) int { - if len(params) == 0 || i < 0 || i >= len(params) { - return -1 - } - - p := params[i] & ParamMask - if p == MissingParam { - return -1 - } - - return p -} - -// HasMore returns true if the parameter has more sub-parameters. -func HasMore(params []int, i int) bool { - if len(params) == 0 || i >= len(params) { - return false - } - - return params[i]&HasMoreFlag != 0 -} - -// Subparams returns the sub-parameters of the given parameter. -// It returns nil if the parameter does not exist. -func Subparams(params []int, i int) []int { - if len(params) == 0 || i < 0 || i >= len(params) { - return nil - } - - // Count the number of parameters before the given parameter index. - var count int - var j int - for j = range params { - if count == i { - break - } - if !HasMore(params, j) { - count++ - } - } - - if count > i || j >= len(params) { - return nil - } - - var subs []int - for ; j < len(params); j++ { - if !HasMore(params, j) { - break - } - p := Param(params, j) - if p == -1 { - p = DefaultParamValue - } - subs = append(subs, p) - } - - p := Param(params, j) - if p == -1 { - p = DefaultParamValue - } - - return append(subs, p) -} - -// Len returns the number of parameters in the sequence. -// This will return the number of parameters in the sequence, excluding any -// sub-parameters. -func Len(params []int) int { - var n int - for i := range params { - if !HasMore(params, i) { - n++ - } - } - return n -} - -// Range iterates over the parameters of the sequence and calls the given -// function for each parameter. -// The function should return false to stop the iteration. -func Range(params []int, fn func(i int, param int, hasMore bool) bool) { - for i := range params { - if !fn(i, Param(params, i), HasMore(params, i)) { - break - } - } -} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser/transition_table.go b/vendor/github.com/charmbracelet/x/ansi/parser/transition_table.go deleted file mode 100644 index ef46b7b..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/parser/transition_table.go +++ /dev/null @@ -1,273 +0,0 @@ -package parser - -// Table values are generated like this: -// -// index: currentState << IndexStateShift | charCode -// value: action << TransitionActionShift | nextState -const ( - TransitionActionShift = 4 - TransitionStateMask = 15 - IndexStateShift = 8 - - // DefaultTableSize is the default size of the transition table. - DefaultTableSize = 4096 -) - -// Table is a DEC ANSI transition table. -var Table = GenerateTransitionTable() - -// TransitionTable is a DEC ANSI transition table. -// https://vt100.net/emu/dec_ansi_parser -type TransitionTable []byte - -// NewTransitionTable returns a new DEC ANSI transition table. -func NewTransitionTable(size int) TransitionTable { - if size <= 0 { - size = DefaultTableSize - } - return TransitionTable(make([]byte, size)) -} - -// SetDefault sets default transition. -func (t TransitionTable) SetDefault(action Action, state State) { - for i := range t { - t[i] = action<> TransitionActionShift -} - -// byte range macro. -func r(start, end byte) []byte { - var a []byte - for i := int(start); i <= int(end); i++ { - a = append(a, byte(i)) - } - return a -} - -// GenerateTransitionTable generates a DEC ANSI transition table compatible -// with the VT500-series of terminals. This implementation includes a few -// modifications that include: -// - A new Utf8State is introduced to handle UTF8 sequences. -// - Osc and Dcs data accept UTF8 sequences by extending the printable range -// to 0xFF and 0xFE respectively. -// - We don't ignore 0x3A (':') when building Csi and Dcs parameters and -// instead use it to denote sub-parameters. -// - Support dispatching SosPmApc sequences. -// - The DEL (0x7F) character is executed in the Ground state. -// - The DEL (0x7F) character is collected in the DcsPassthrough string state. -// - The ST C1 control character (0x9C) is executed and not ignored. -func GenerateTransitionTable() TransitionTable { - table := NewTransitionTable(DefaultTableSize) - table.SetDefault(NoneAction, GroundState) - - // Anywhere - for _, state := range r(GroundState, Utf8State) { - // Anywhere -> Ground - table.AddMany([]byte{0x18, 0x1a, 0x99, 0x9a}, state, ExecuteAction, GroundState) - table.AddRange(0x80, 0x8F, state, ExecuteAction, GroundState) - table.AddRange(0x90, 0x97, state, ExecuteAction, GroundState) - table.AddOne(0x9C, state, ExecuteAction, GroundState) - // Anywhere -> Escape - table.AddOne(0x1B, state, ClearAction, EscapeState) - // Anywhere -> SosStringState - table.AddOne(0x98, state, StartAction, SosStringState) - // Anywhere -> PmStringState - table.AddOne(0x9E, state, StartAction, PmStringState) - // Anywhere -> ApcStringState - table.AddOne(0x9F, state, StartAction, ApcStringState) - // Anywhere -> CsiEntry - table.AddOne(0x9B, state, ClearAction, CsiEntryState) - // Anywhere -> DcsEntry - table.AddOne(0x90, state, ClearAction, DcsEntryState) - // Anywhere -> OscString - table.AddOne(0x9D, state, StartAction, OscStringState) - // Anywhere -> Utf8 - table.AddRange(0xC2, 0xDF, state, CollectAction, Utf8State) // UTF8 2 byte sequence - table.AddRange(0xE0, 0xEF, state, CollectAction, Utf8State) // UTF8 3 byte sequence - table.AddRange(0xF0, 0xF4, state, CollectAction, Utf8State) // UTF8 4 byte sequence - } - - // Ground - table.AddRange(0x00, 0x17, GroundState, ExecuteAction, GroundState) - table.AddOne(0x19, GroundState, ExecuteAction, GroundState) - table.AddRange(0x1C, 0x1F, GroundState, ExecuteAction, GroundState) - table.AddRange(0x20, 0x7E, GroundState, PrintAction, GroundState) - table.AddOne(0x7F, GroundState, ExecuteAction, GroundState) - - // EscapeIntermediate - table.AddRange(0x00, 0x17, EscapeIntermediateState, ExecuteAction, EscapeIntermediateState) - table.AddOne(0x19, EscapeIntermediateState, ExecuteAction, EscapeIntermediateState) - table.AddRange(0x1C, 0x1F, EscapeIntermediateState, ExecuteAction, EscapeIntermediateState) - table.AddRange(0x20, 0x2F, EscapeIntermediateState, CollectAction, EscapeIntermediateState) - table.AddOne(0x7F, EscapeIntermediateState, IgnoreAction, EscapeIntermediateState) - // EscapeIntermediate -> Ground - table.AddRange(0x30, 0x7E, EscapeIntermediateState, DispatchAction, GroundState) - - // Escape - table.AddRange(0x00, 0x17, EscapeState, ExecuteAction, EscapeState) - table.AddOne(0x19, EscapeState, ExecuteAction, EscapeState) - table.AddRange(0x1C, 0x1F, EscapeState, ExecuteAction, EscapeState) - table.AddOne(0x7F, EscapeState, IgnoreAction, EscapeState) - // Escape -> Ground - table.AddRange(0x30, 0x4F, EscapeState, DispatchAction, GroundState) - table.AddRange(0x51, 0x57, EscapeState, DispatchAction, GroundState) - table.AddOne(0x59, EscapeState, DispatchAction, GroundState) - table.AddOne(0x5A, EscapeState, DispatchAction, GroundState) - table.AddOne(0x5C, EscapeState, DispatchAction, GroundState) - table.AddRange(0x60, 0x7E, EscapeState, DispatchAction, GroundState) - // Escape -> Escape_intermediate - table.AddRange(0x20, 0x2F, EscapeState, CollectAction, EscapeIntermediateState) - // Escape -> Sos_pm_apc_string - table.AddOne('X', EscapeState, StartAction, SosStringState) // SOS - table.AddOne('^', EscapeState, StartAction, PmStringState) // PM - table.AddOne('_', EscapeState, StartAction, ApcStringState) // APC - // Escape -> Dcs_entry - table.AddOne('P', EscapeState, ClearAction, DcsEntryState) - // Escape -> Csi_entry - table.AddOne('[', EscapeState, ClearAction, CsiEntryState) - // Escape -> Osc_string - table.AddOne(']', EscapeState, StartAction, OscStringState) - - // Sos_pm_apc_string - for _, state := range r(SosStringState, ApcStringState) { - table.AddRange(0x00, 0x17, state, PutAction, state) - table.AddOne(0x19, state, PutAction, state) - table.AddRange(0x1C, 0x1F, state, PutAction, state) - table.AddRange(0x20, 0x7F, state, PutAction, state) - // ESC, ST, CAN, and SUB terminate the sequence - table.AddOne(0x1B, state, DispatchAction, EscapeState) - table.AddOne(0x9C, state, DispatchAction, GroundState) - table.AddMany([]byte{0x18, 0x1A}, state, IgnoreAction, GroundState) - } - - // Dcs_entry - table.AddRange(0x00, 0x07, DcsEntryState, IgnoreAction, DcsEntryState) - table.AddRange(0x0E, 0x17, DcsEntryState, IgnoreAction, DcsEntryState) - table.AddOne(0x19, DcsEntryState, IgnoreAction, DcsEntryState) - table.AddRange(0x1C, 0x1F, DcsEntryState, IgnoreAction, DcsEntryState) - table.AddOne(0x7F, DcsEntryState, IgnoreAction, DcsEntryState) - // Dcs_entry -> Dcs_intermediate - table.AddRange(0x20, 0x2F, DcsEntryState, CollectAction, DcsIntermediateState) - // Dcs_entry -> Dcs_param - table.AddRange(0x30, 0x3B, DcsEntryState, ParamAction, DcsParamState) - table.AddRange(0x3C, 0x3F, DcsEntryState, PrefixAction, DcsParamState) - // Dcs_entry -> Dcs_passthrough - table.AddRange(0x08, 0x0D, DcsEntryState, PutAction, DcsStringState) // Follows ECMA-48 § 8.3.27 - // XXX: allows passing ESC (not a ECMA-48 standard) this to allow for - // passthrough of ANSI sequences like in Screen or Tmux passthrough mode. - table.AddOne(0x1B, DcsEntryState, PutAction, DcsStringState) - table.AddRange(0x40, 0x7E, DcsEntryState, StartAction, DcsStringState) - - // Dcs_intermediate - table.AddRange(0x00, 0x17, DcsIntermediateState, IgnoreAction, DcsIntermediateState) - table.AddOne(0x19, DcsIntermediateState, IgnoreAction, DcsIntermediateState) - table.AddRange(0x1C, 0x1F, DcsIntermediateState, IgnoreAction, DcsIntermediateState) - table.AddRange(0x20, 0x2F, DcsIntermediateState, CollectAction, DcsIntermediateState) - table.AddOne(0x7F, DcsIntermediateState, IgnoreAction, DcsIntermediateState) - // Dcs_intermediate -> Dcs_passthrough - table.AddRange(0x30, 0x3F, DcsIntermediateState, StartAction, DcsStringState) - table.AddRange(0x40, 0x7E, DcsIntermediateState, StartAction, DcsStringState) - - // Dcs_param - table.AddRange(0x00, 0x17, DcsParamState, IgnoreAction, DcsParamState) - table.AddOne(0x19, DcsParamState, IgnoreAction, DcsParamState) - table.AddRange(0x1C, 0x1F, DcsParamState, IgnoreAction, DcsParamState) - table.AddRange(0x30, 0x3B, DcsParamState, ParamAction, DcsParamState) - table.AddOne(0x7F, DcsParamState, IgnoreAction, DcsParamState) - table.AddRange(0x3C, 0x3F, DcsParamState, IgnoreAction, DcsParamState) - // Dcs_param -> Dcs_intermediate - table.AddRange(0x20, 0x2F, DcsParamState, CollectAction, DcsIntermediateState) - // Dcs_param -> Dcs_passthrough - table.AddRange(0x40, 0x7E, DcsParamState, StartAction, DcsStringState) - - // Dcs_passthrough - table.AddRange(0x00, 0x17, DcsStringState, PutAction, DcsStringState) - table.AddOne(0x19, DcsStringState, PutAction, DcsStringState) - table.AddRange(0x1C, 0x1F, DcsStringState, PutAction, DcsStringState) - table.AddRange(0x20, 0x7E, DcsStringState, PutAction, DcsStringState) - table.AddOne(0x7F, DcsStringState, PutAction, DcsStringState) - table.AddRange(0x80, 0xFF, DcsStringState, PutAction, DcsStringState) // Allow Utf8 characters by extending the printable range from 0x7F to 0xFF - // ST, CAN, SUB, and ESC terminate the sequence - table.AddOne(0x1B, DcsStringState, DispatchAction, EscapeState) - table.AddOne(0x9C, DcsStringState, DispatchAction, GroundState) - table.AddMany([]byte{0x18, 0x1A}, DcsStringState, IgnoreAction, GroundState) - - // Csi_param - table.AddRange(0x00, 0x17, CsiParamState, ExecuteAction, CsiParamState) - table.AddOne(0x19, CsiParamState, ExecuteAction, CsiParamState) - table.AddRange(0x1C, 0x1F, CsiParamState, ExecuteAction, CsiParamState) - table.AddRange(0x30, 0x3B, CsiParamState, ParamAction, CsiParamState) - table.AddOne(0x7F, CsiParamState, IgnoreAction, CsiParamState) - table.AddRange(0x3C, 0x3F, CsiParamState, IgnoreAction, CsiParamState) - // Csi_param -> Ground - table.AddRange(0x40, 0x7E, CsiParamState, DispatchAction, GroundState) - // Csi_param -> Csi_intermediate - table.AddRange(0x20, 0x2F, CsiParamState, CollectAction, CsiIntermediateState) - - // Csi_intermediate - table.AddRange(0x00, 0x17, CsiIntermediateState, ExecuteAction, CsiIntermediateState) - table.AddOne(0x19, CsiIntermediateState, ExecuteAction, CsiIntermediateState) - table.AddRange(0x1C, 0x1F, CsiIntermediateState, ExecuteAction, CsiIntermediateState) - table.AddRange(0x20, 0x2F, CsiIntermediateState, CollectAction, CsiIntermediateState) - table.AddOne(0x7F, CsiIntermediateState, IgnoreAction, CsiIntermediateState) - // Csi_intermediate -> Ground - table.AddRange(0x40, 0x7E, CsiIntermediateState, DispatchAction, GroundState) - // Csi_intermediate -> Csi_ignore - table.AddRange(0x30, 0x3F, CsiIntermediateState, IgnoreAction, GroundState) - - // Csi_entry - table.AddRange(0x00, 0x17, CsiEntryState, ExecuteAction, CsiEntryState) - table.AddOne(0x19, CsiEntryState, ExecuteAction, CsiEntryState) - table.AddRange(0x1C, 0x1F, CsiEntryState, ExecuteAction, CsiEntryState) - table.AddOne(0x7F, CsiEntryState, IgnoreAction, CsiEntryState) - // Csi_entry -> Ground - table.AddRange(0x40, 0x7E, CsiEntryState, DispatchAction, GroundState) - // Csi_entry -> Csi_intermediate - table.AddRange(0x20, 0x2F, CsiEntryState, CollectAction, CsiIntermediateState) - // Csi_entry -> Csi_param - table.AddRange(0x30, 0x3B, CsiEntryState, ParamAction, CsiParamState) - table.AddRange(0x3C, 0x3F, CsiEntryState, PrefixAction, CsiParamState) - - // Osc_string - table.AddRange(0x00, 0x06, OscStringState, IgnoreAction, OscStringState) - table.AddRange(0x08, 0x17, OscStringState, IgnoreAction, OscStringState) - table.AddOne(0x19, OscStringState, IgnoreAction, OscStringState) - table.AddRange(0x1C, 0x1F, OscStringState, IgnoreAction, OscStringState) - table.AddRange(0x20, 0xFF, OscStringState, PutAction, OscStringState) // Allow Utf8 characters by extending the printable range from 0x7F to 0xFF - - // ST, CAN, SUB, ESC, and BEL terminate the sequence - table.AddOne(0x1B, OscStringState, DispatchAction, EscapeState) - table.AddOne(0x07, OscStringState, DispatchAction, GroundState) - table.AddOne(0x9C, OscStringState, DispatchAction, GroundState) - table.AddMany([]byte{0x18, 0x1A}, OscStringState, IgnoreAction, GroundState) - - return table -} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser_decode.go b/vendor/github.com/charmbracelet/x/ansi/parser_decode.go deleted file mode 100644 index dfd2dc7..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/parser_decode.go +++ /dev/null @@ -1,524 +0,0 @@ -package ansi - -import ( - "unicode/utf8" - - "github.com/charmbracelet/x/ansi/parser" - "github.com/mattn/go-runewidth" - "github.com/rivo/uniseg" -) - -// State represents the state of the ANSI escape sequence parser used by -// [DecodeSequence]. -type State = byte - -// ANSI escape sequence states used by [DecodeSequence]. -const ( - NormalState State = iota - PrefixState - ParamsState - IntermedState - EscapeState - StringState -) - -// DecodeSequence decodes the first ANSI escape sequence or a printable -// grapheme from the given data. It returns the sequence slice, the number of -// bytes read, the cell width for each sequence, and the new state. -// -// The cell width will always be 0 for control and escape sequences, 1 for -// ASCII printable characters, and the number of cells other Unicode characters -// occupy. It uses the uniseg package to calculate the width of Unicode -// graphemes and characters. This means it will always do grapheme clustering -// (mode 2027). -// -// Passing a non-nil [*Parser] as the last argument will allow the decoder to -// collect sequence parameters, data, and commands. The parser cmd will have -// the packed command value that contains intermediate and prefix characters. -// In the case of a OSC sequence, the cmd will be the OSC command number. Use -// [Cmd] and [Param] types to unpack command intermediates and prefixes as well -// as parameters. -// -// Zero [Cmd] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the -// validity of other data sequences, OSC, DCS, etc, will require checking for -// the returned sequence terminator bytes such as ST (ESC \\) and BEL). -// -// We store the command byte in [Cmd] in the most significant byte, the -// prefix byte in the next byte, and the intermediate byte in the least -// significant byte. This is done to avoid using a struct to store the command -// and its intermediates and prefixes. The command byte is always the least -// significant byte i.e. [Cmd & 0xff]. Use the [Cmd] type to unpack the -// command, intermediate, and prefix bytes. Note that we only collect the last -// prefix character and intermediate byte. -// -// The [p.Params] slice will contain the parameters of the sequence. Any -// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Param] type -// to unpack the parameters. -// -// Example: -// -// var state byte // the initial state is always zero [NormalState] -// p := NewParser(32, 1024) // create a new parser with a 32 params buffer and 1024 data buffer (optional) -// input := []byte("\x1b[31mHello, World!\x1b[0m") -// for len(input) > 0 { -// seq, width, n, newState := DecodeSequence(input, state, p) -// log.Printf("seq: %q, width: %d", seq, width) -// state = newState -// input = input[n:] -// } -// -// This function treats the text as a sequence of grapheme clusters. -func DecodeSequence[T string | []byte](b T, state byte, p *Parser) (seq T, width int, n int, newState byte) { - return decodeSequence(GraphemeWidth, b, state, p) -} - -// DecodeSequenceWc decodes the first ANSI escape sequence or a printable -// grapheme from the given data. It returns the sequence slice, the number of -// bytes read, the cell width for each sequence, and the new state. -// -// The cell width will always be 0 for control and escape sequences, 1 for -// ASCII printable characters, and the number of cells other Unicode characters -// occupy. It uses the uniseg package to calculate the width of Unicode -// graphemes and characters. This means it will always do grapheme clustering -// (mode 2027). -// -// Passing a non-nil [*Parser] as the last argument will allow the decoder to -// collect sequence parameters, data, and commands. The parser cmd will have -// the packed command value that contains intermediate and prefix characters. -// In the case of a OSC sequence, the cmd will be the OSC command number. Use -// [Cmd] and [Param] types to unpack command intermediates and prefixes as well -// as parameters. -// -// Zero [Cmd] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the -// validity of other data sequences, OSC, DCS, etc, will require checking for -// the returned sequence terminator bytes such as ST (ESC \\) and BEL). -// -// We store the command byte in [Cmd] in the most significant byte, the -// prefix byte in the next byte, and the intermediate byte in the least -// significant byte. This is done to avoid using a struct to store the command -// and its intermediates and prefixes. The command byte is always the least -// significant byte i.e. [Cmd & 0xff]. Use the [Cmd] type to unpack the -// command, intermediate, and prefix bytes. Note that we only collect the last -// prefix character and intermediate byte. -// -// The [p.Params] slice will contain the parameters of the sequence. Any -// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Param] type -// to unpack the parameters. -// -// Example: -// -// var state byte // the initial state is always zero [NormalState] -// p := NewParser(32, 1024) // create a new parser with a 32 params buffer and 1024 data buffer (optional) -// input := []byte("\x1b[31mHello, World!\x1b[0m") -// for len(input) > 0 { -// seq, width, n, newState := DecodeSequenceWc(input, state, p) -// log.Printf("seq: %q, width: %d", seq, width) -// state = newState -// input = input[n:] -// } -// -// This function treats the text as a sequence of wide characters and runes. -func DecodeSequenceWc[T string | []byte](b T, state byte, p *Parser) (seq T, width int, n int, newState byte) { - return decodeSequence(WcWidth, b, state, p) -} - -func decodeSequence[T string | []byte](m Method, b T, state State, p *Parser) (seq T, width int, n int, newState byte) { - for i := 0; i < len(b); i++ { - c := b[i] - - switch state { - case NormalState: - switch c { - case ESC: - if p != nil { - if len(p.params) > 0 { - p.params[0] = parser.MissingParam - } - p.cmd = 0 - p.paramsLen = 0 - p.dataLen = 0 - } - state = EscapeState - continue - case CSI, DCS: - if p != nil { - if len(p.params) > 0 { - p.params[0] = parser.MissingParam - } - p.cmd = 0 - p.paramsLen = 0 - p.dataLen = 0 - } - state = PrefixState - continue - case OSC, APC, SOS, PM: - if p != nil { - p.cmd = parser.MissingCommand - p.dataLen = 0 - } - state = StringState - continue - } - - if p != nil { - p.dataLen = 0 - p.paramsLen = 0 - p.cmd = 0 - } - if c > US && c < DEL { - // ASCII printable characters - return b[i : i+1], 1, 1, NormalState - } - - if c <= US || c == DEL || c < 0xC0 { - // C0 & C1 control characters & DEL - return b[i : i+1], 0, 1, NormalState - } - - if utf8.RuneStart(c) { - seq, _, width, _ = FirstGraphemeCluster(b, -1) - if m == WcWidth { - width = runewidth.StringWidth(string(seq)) - } - i += len(seq) - return b[:i], width, i, NormalState - } - - // Invalid UTF-8 sequence - return b[:i], 0, i, NormalState - case PrefixState: - if c >= '<' && c <= '?' { - if p != nil { - // We only collect the last prefix character. - p.cmd &^= 0xff << parser.PrefixShift - p.cmd |= int(c) << parser.PrefixShift - } - break - } - - state = ParamsState - fallthrough - case ParamsState: - if c >= '0' && c <= '9' { - if p != nil { - if p.params[p.paramsLen] == parser.MissingParam { - p.params[p.paramsLen] = 0 - } - - p.params[p.paramsLen] *= 10 - p.params[p.paramsLen] += int(c - '0') - } - break - } - - if c == ':' { - if p != nil { - p.params[p.paramsLen] |= parser.HasMoreFlag - } - } - - if c == ';' || c == ':' { - if p != nil { - p.paramsLen++ - if p.paramsLen < len(p.params) { - p.params[p.paramsLen] = parser.MissingParam - } - } - break - } - - state = IntermedState - fallthrough - case IntermedState: - if c >= ' ' && c <= '/' { - if p != nil { - p.cmd &^= 0xff << parser.IntermedShift - p.cmd |= int(c) << parser.IntermedShift - } - break - } - - if p != nil { - // Increment the last parameter - if p.paramsLen > 0 && p.paramsLen < len(p.params)-1 || - p.paramsLen == 0 && len(p.params) > 0 && p.params[0] != parser.MissingParam { - p.paramsLen++ - } - } - - if c >= '@' && c <= '~' { - if p != nil { - p.cmd &^= 0xff - p.cmd |= int(c) - } - - if HasDcsPrefix(b) { - // Continue to collect DCS data - if p != nil { - p.dataLen = 0 - } - state = StringState - continue - } - - return b[:i+1], 0, i + 1, NormalState - } - - // Invalid CSI/DCS sequence - return b[:i], 0, i, NormalState - case EscapeState: - switch c { - case '[', 'P': - if p != nil { - if len(p.params) > 0 { - p.params[0] = parser.MissingParam - } - p.paramsLen = 0 - p.cmd = 0 - } - state = PrefixState - continue - case ']', 'X', '^', '_': - if p != nil { - p.cmd = parser.MissingCommand - p.dataLen = 0 - } - state = StringState - continue - } - - if c >= ' ' && c <= '/' { - if p != nil { - p.cmd &^= 0xff << parser.IntermedShift - p.cmd |= int(c) << parser.IntermedShift - } - continue - } else if c >= '0' && c <= '~' { - if p != nil { - p.cmd &^= 0xff - p.cmd |= int(c) - } - return b[:i+1], 0, i + 1, NormalState - } - - // Invalid escape sequence - return b[:i], 0, i, NormalState - case StringState: - switch c { - case BEL: - if HasOscPrefix(b) { - parseOscCmd(p) - return b[:i+1], 0, i + 1, NormalState - } - case CAN, SUB: - if HasOscPrefix(b) { - // Ensure we parse the OSC command number - parseOscCmd(p) - } - - // Cancel the sequence - return b[:i], 0, i, NormalState - case ST: - if HasOscPrefix(b) { - // Ensure we parse the OSC command number - parseOscCmd(p) - } - - return b[:i+1], 0, i + 1, NormalState - case ESC: - if HasStPrefix(b[i:]) { - if HasOscPrefix(b) { - // Ensure we parse the OSC command number - parseOscCmd(p) - } - - // End of string 7-bit (ST) - return b[:i+2], 0, i + 2, NormalState - } - - // Otherwise, cancel the sequence - return b[:i], 0, i, NormalState - } - - if p != nil && p.dataLen < len(p.data) { - p.data[p.dataLen] = c - p.dataLen++ - - // Parse the OSC command number - if c == ';' && HasOscPrefix(b) { - parseOscCmd(p) - } - } - } - } - - return b, 0, len(b), state -} - -func parseOscCmd(p *Parser) { - if p == nil || p.cmd != parser.MissingCommand { - return - } - for j := range p.dataLen { - d := p.data[j] - if d < '0' || d > '9' { - break - } - if p.cmd == parser.MissingCommand { - p.cmd = 0 - } - p.cmd *= 10 - p.cmd += int(d - '0') - } -} - -// Equal returns true if the given byte slices are equal. -func Equal[T string | []byte](a, b T) bool { - return string(a) == string(b) -} - -// HasPrefix returns true if the given byte slice has prefix. -func HasPrefix[T string | []byte](b, prefix T) bool { - return len(b) >= len(prefix) && Equal(b[0:len(prefix)], prefix) -} - -// HasSuffix returns true if the given byte slice has suffix. -func HasSuffix[T string | []byte](b, suffix T) bool { - return len(b) >= len(suffix) && Equal(b[len(b)-len(suffix):], suffix) -} - -// HasCsiPrefix returns true if the given byte slice has a CSI prefix. -func HasCsiPrefix[T string | []byte](b T) bool { - return (len(b) > 0 && b[0] == CSI) || - (len(b) > 1 && b[0] == ESC && b[1] == '[') -} - -// HasOscPrefix returns true if the given byte slice has an OSC prefix. -func HasOscPrefix[T string | []byte](b T) bool { - return (len(b) > 0 && b[0] == OSC) || - (len(b) > 1 && b[0] == ESC && b[1] == ']') -} - -// HasApcPrefix returns true if the given byte slice has an APC prefix. -func HasApcPrefix[T string | []byte](b T) bool { - return (len(b) > 0 && b[0] == APC) || - (len(b) > 1 && b[0] == ESC && b[1] == '_') -} - -// HasDcsPrefix returns true if the given byte slice has a DCS prefix. -func HasDcsPrefix[T string | []byte](b T) bool { - return (len(b) > 0 && b[0] == DCS) || - (len(b) > 1 && b[0] == ESC && b[1] == 'P') -} - -// HasSosPrefix returns true if the given byte slice has a SOS prefix. -func HasSosPrefix[T string | []byte](b T) bool { - return (len(b) > 0 && b[0] == SOS) || - (len(b) > 1 && b[0] == ESC && b[1] == 'X') -} - -// HasPmPrefix returns true if the given byte slice has a PM prefix. -func HasPmPrefix[T string | []byte](b T) bool { - return (len(b) > 0 && b[0] == PM) || - (len(b) > 1 && b[0] == ESC && b[1] == '^') -} - -// HasStPrefix returns true if the given byte slice has a ST prefix. -func HasStPrefix[T string | []byte](b T) bool { - return (len(b) > 0 && b[0] == ST) || - (len(b) > 1 && b[0] == ESC && b[1] == '\\') -} - -// HasEscPrefix returns true if the given byte slice has an ESC prefix. -func HasEscPrefix[T string | []byte](b T) bool { - return len(b) > 0 && b[0] == ESC -} - -// FirstGraphemeCluster returns the first grapheme cluster in the given string or byte slice. -// This is a syntactic sugar function that wraps -// uniseg.FirstGraphemeClusterInString and uniseg.FirstGraphemeCluster. -func FirstGraphemeCluster[T string | []byte](b T, state int) (T, T, int, int) { - switch b := any(b).(type) { - case string: - cluster, rest, width, newState := uniseg.FirstGraphemeClusterInString(b, state) - return T(cluster), T(rest), width, newState - case []byte: - cluster, rest, width, newState := uniseg.FirstGraphemeCluster(b, state) - return T(cluster), T(rest), width, newState - } - panic("unreachable") -} - -// Cmd represents a sequence command. This is used to pack/unpack a sequence -// command with its intermediate and prefix characters. Those are commonly -// found in CSI and DCS sequences. -type Cmd int - -// Prefix returns the unpacked prefix byte of the CSI sequence. -// This is always gonna be one of the following '<' '=' '>' '?' and in the -// range of 0x3C-0x3F. -// Zero is returned if the sequence does not have a prefix. -func (c Cmd) Prefix() byte { - return byte(parser.Prefix(int(c))) -} - -// Intermediate returns the unpacked intermediate byte of the CSI sequence. -// An intermediate byte is in the range of 0x20-0x2F. This includes these -// characters from ' ', '!', '"', '#', '$', '%', '&', ”', '(', ')', '*', '+', -// ',', '-', '.', '/'. -// Zero is returned if the sequence does not have an intermediate byte. -func (c Cmd) Intermediate() byte { - return byte(parser.Intermediate(int(c))) -} - -// Final returns the unpacked command byte of the CSI sequence. -func (c Cmd) Final() byte { - return byte(parser.Command(int(c))) -} - -// Command packs a command with the given prefix, intermediate, and final. A -// zero byte means the sequence does not have a prefix or intermediate. -// -// Prefixes are in the range of 0x3C-0x3F that is one of `<=>?`. -// -// Intermediates are in the range of 0x20-0x2F that is anything in -// `!"#$%&'()*+,-./`. -// -// Final bytes are in the range of 0x40-0x7E that is anything in the range -// `@A–Z[\]^_`a–z{|}~`. -func Command(prefix, inter, final byte) (c int) { - c = int(final) - c |= int(prefix) << parser.PrefixShift - c |= int(inter) << parser.IntermedShift - return -} - -// Param represents a sequence parameter. Sequence parameters with -// sub-parameters are packed with the HasMoreFlag set. This is used to unpack -// the parameters from a CSI and DCS sequences. -type Param int - -// Param returns the unpacked parameter at the given index. -// It returns the default value if the parameter is missing. -func (s Param) Param(def int) int { - p := int(s) & parser.ParamMask - if p == parser.MissingParam { - return def - } - return p -} - -// HasMore unpacks the HasMoreFlag from the parameter. -func (s Param) HasMore() bool { - return s&parser.HasMoreFlag != 0 -} - -// Parameter packs an escape code parameter with the given parameter and -// whether this parameter has following sub-parameters. -func Parameter(p int, hasMore bool) (s int) { - s = p & parser.ParamMask - if hasMore { - s |= parser.HasMoreFlag - } - return -} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser_handler.go b/vendor/github.com/charmbracelet/x/ansi/parser_handler.go deleted file mode 100644 index 03f9ed4..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/parser_handler.go +++ /dev/null @@ -1,60 +0,0 @@ -package ansi - -import "unsafe" - -// Params represents a list of packed parameters. -type Params []Param - -// Param returns the parameter at the given index and if it is part of a -// sub-parameters. It falls back to the default value if the parameter is -// missing. If the index is out of bounds, it returns the default value and -// false. -func (p Params) Param(i, def int) (int, bool, bool) { - if i < 0 || i >= len(p) { - return def, false, false - } - return p[i].Param(def), p[i].HasMore(), true -} - -// ForEach iterates over the parameters and calls the given function for each -// parameter. If a parameter is part of a sub-parameter, it will be called with -// hasMore set to true. -// Use def to set a default value for missing parameters. -func (p Params) ForEach(def int, f func(i, param int, hasMore bool)) { - for i := range p { - f(i, p[i].Param(def), p[i].HasMore()) - } -} - -// ToParams converts a list of integers to a list of parameters. -func ToParams(params []int) Params { - return unsafe.Slice((*Param)(unsafe.Pointer(¶ms[0])), len(params)) -} - -// Handler handles actions performed by the parser. -// It is used to handle ANSI escape sequences, control characters, and runes. -type Handler struct { - // Print is called when a printable rune is encountered. - Print func(r rune) - // Execute is called when a control character is encountered. - Execute func(b byte) - // HandleCsi is called when a CSI sequence is encountered. - HandleCsi func(cmd Cmd, params Params) - // HandleEsc is called when an ESC sequence is encountered. - HandleEsc func(cmd Cmd) - // HandleDcs is called when a DCS sequence is encountered. - HandleDcs func(cmd Cmd, params Params, data []byte) - // HandleOsc is called when an OSC sequence is encountered. - HandleOsc func(cmd int, data []byte) - // HandlePm is called when a PM sequence is encountered. - HandlePm func(data []byte) - // HandleApc is called when an APC sequence is encountered. - HandleApc func(data []byte) - // HandleSos is called when a SOS sequence is encountered. - HandleSos func(data []byte) -} - -// SetHandler sets the handler for the parser. -func (p *Parser) SetHandler(h Handler) { - p.handler = h -} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser_sync.go b/vendor/github.com/charmbracelet/x/ansi/parser_sync.go deleted file mode 100644 index 65d25a9..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/parser_sync.go +++ /dev/null @@ -1,29 +0,0 @@ -package ansi - -import ( - "sync" - - "github.com/charmbracelet/x/ansi/parser" -) - -var parserPool = sync.Pool{ - New: func() any { - p := NewParser() - p.SetParamsSize(parser.MaxParamsSize) - p.SetDataSize(1024 * 1024 * 4) // 4MB of data buffer - return p - }, -} - -// GetParser returns a parser from a sync pool. -func GetParser() *Parser { - return parserPool.Get().(*Parser) -} - -// PutParser returns a parser to a sync pool. The parser is reset -// automatically. -func PutParser(p *Parser) { - p.Reset() - p.dataLen = 0 - parserPool.Put(p) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/passthrough.go b/vendor/github.com/charmbracelet/x/ansi/passthrough.go deleted file mode 100644 index 7ac7cef..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/passthrough.go +++ /dev/null @@ -1,60 +0,0 @@ -package ansi - -import ( - "bytes" -) - -// ScreenPassthrough wraps the given ANSI sequence in a DCS passthrough -// sequence to be sent to the outer terminal. This is used to send raw escape -// sequences to the outer terminal when running inside GNU Screen. -// -// DCS ST -// -// Note: Screen limits the length of string sequences to 768 bytes (since 2014). -// Use zero to indicate no limit, otherwise, this will chunk the returned -// string into limit sized chunks. -// -// See: https://www.gnu.org/software/screen/manual/screen.html#String-Escapes -// See: https://git.savannah.gnu.org/cgit/screen.git/tree/src/screen.h?id=c184c6ec27683ff1a860c45be5cf520d896fd2ef#n44 -func ScreenPassthrough(seq string, limit int) string { - var b bytes.Buffer - b.WriteString("\x1bP") - if limit > 0 { - for i := 0; i < len(seq); i += limit { - end := min(i+limit, len(seq)) - b.WriteString(seq[i:end]) - if end < len(seq) { - b.WriteString("\x1b\\\x1bP") - } - } - } else { - b.WriteString(seq) - } - b.WriteString("\x1b\\") - return b.String() -} - -// TmuxPassthrough wraps the given ANSI sequence in a special DCS passthrough -// sequence to be sent to the outer terminal. This is used to send raw escape -// sequences to the outer terminal when running inside Tmux. -// -// DCS tmux ; ST -// -// Where is the given sequence in which all occurrences of ESC -// (0x1b) are doubled i.e. replaced with ESC ESC (0x1b 0x1b). -// -// Note: this needs the `allow-passthrough` option to be set to `on`. -// -// See: https://github.com/tmux/tmux/wiki/FAQ#what-is-the-passthrough-escape-sequence-and-how-do-i-use-it -func TmuxPassthrough(seq string) string { - var b bytes.Buffer - b.WriteString("\x1bPtmux;") - for i := range len(seq) { - if seq[i] == ESC { - b.WriteByte(ESC) - } - b.WriteByte(seq[i]) - } - b.WriteString("\x1b\\") - return b.String() -} diff --git a/vendor/github.com/charmbracelet/x/ansi/paste.go b/vendor/github.com/charmbracelet/x/ansi/paste.go deleted file mode 100644 index 2f9ea6f..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/paste.go +++ /dev/null @@ -1,7 +0,0 @@ -package ansi - -// BracketedPasteStart is the control sequence to enable bracketed paste mode. -const BracketedPasteStart = "\x1b[200~" - -// BracketedPasteEnd is the control sequence to disable bracketed paste mode. -const BracketedPasteEnd = "\x1b[201~" diff --git a/vendor/github.com/charmbracelet/x/ansi/reset.go b/vendor/github.com/charmbracelet/x/ansi/reset.go deleted file mode 100644 index c1b89ea..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/reset.go +++ /dev/null @@ -1,11 +0,0 @@ -package ansi - -// ResetInitialState (RIS) resets the terminal to its initial state. -// -// ESC c -// -// See: https://vt100.net/docs/vt510-rm/RIS.html -const ( - ResetInitialState = "\x1bc" - RIS = ResetInitialState -) diff --git a/vendor/github.com/charmbracelet/x/ansi/screen.go b/vendor/github.com/charmbracelet/x/ansi/screen.go deleted file mode 100644 index e2027df..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/screen.go +++ /dev/null @@ -1,410 +0,0 @@ -package ansi - -import ( - "strconv" - "strings" -) - -// EraseDisplay (ED) clears the display or parts of the display. A screen is -// the shown part of the terminal display excluding the scrollback buffer. -// Possible values: -// -// Default is 0. -// -// 0: Clear from cursor to end of screen. -// 1: Clear from cursor to beginning of the screen. -// 2: Clear entire screen (and moves cursor to upper left on DOS). -// 3: Clear entire display which delete all lines saved in the scrollback buffer (xterm). -// -// CSI J -// -// See: https://vt100.net/docs/vt510-rm/ED.html -func EraseDisplay(n int) string { - var s string - if n > 0 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "J" -} - -// ED is an alias for [EraseDisplay]. -func ED(n int) string { - return EraseDisplay(n) -} - -// EraseDisplay constants. -// These are the possible values for the EraseDisplay function. -const ( - EraseScreenBelow = "\x1b[J" - EraseScreenAbove = "\x1b[1J" - EraseEntireScreen = "\x1b[2J" - EraseEntireDisplay = "\x1b[3J" -) - -// EraseLine (EL) clears the current line or parts of the line. Possible values: -// -// 0: Clear from cursor to end of line. -// 1: Clear from cursor to beginning of the line. -// 2: Clear entire line. -// -// The cursor position is not affected. -// -// CSI K -// -// See: https://vt100.net/docs/vt510-rm/EL.html -func EraseLine(n int) string { - var s string - if n > 0 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "K" -} - -// EL is an alias for [EraseLine]. -func EL(n int) string { - return EraseLine(n) -} - -// EraseLine constants. -// These are the possible values for the EraseLine function. -const ( - EraseLineRight = "\x1b[K" - EraseLineLeft = "\x1b[1K" - EraseEntireLine = "\x1b[2K" -) - -// ScrollUp (SU) scrolls the screen up n lines. New lines are added at the -// bottom of the screen. -// -// CSI Pn S -// -// See: https://vt100.net/docs/vt510-rm/SU.html -func ScrollUp(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "S" -} - -// PanDown is an alias for [ScrollUp]. -func PanDown(n int) string { - return ScrollUp(n) -} - -// SU is an alias for [ScrollUp]. -func SU(n int) string { - return ScrollUp(n) -} - -// ScrollDown (SD) scrolls the screen down n lines. New lines are added at the -// top of the screen. -// -// CSI Pn T -// -// See: https://vt100.net/docs/vt510-rm/SD.html -func ScrollDown(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "T" -} - -// PanUp is an alias for [ScrollDown]. -func PanUp(n int) string { - return ScrollDown(n) -} - -// SD is an alias for [ScrollDown]. -func SD(n int) string { - return ScrollDown(n) -} - -// InsertLine (IL) inserts n blank lines at the current cursor position. -// Existing lines are moved down. -// -// CSI Pn L -// -// See: https://vt100.net/docs/vt510-rm/IL.html -func InsertLine(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "L" -} - -// IL is an alias for [InsertLine]. -func IL(n int) string { - return InsertLine(n) -} - -// DeleteLine (DL) deletes n lines at the current cursor position. Existing -// lines are moved up. -// -// CSI Pn M -// -// See: https://vt100.net/docs/vt510-rm/DL.html -func DeleteLine(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "M" -} - -// DL is an alias for [DeleteLine]. -func DL(n int) string { - return DeleteLine(n) -} - -// SetTopBottomMargins (DECSTBM) sets the top and bottom margins for the scrolling -// region. The default is the entire screen. -// -// Default is 1 and the bottom of the screen. -// -// CSI Pt ; Pb r -// -// See: https://vt100.net/docs/vt510-rm/DECSTBM.html -func SetTopBottomMargins(top, bot int) string { - var t, b string - if top > 0 { - t = strconv.Itoa(top) - } - if bot > 0 { - b = strconv.Itoa(bot) - } - return "\x1b[" + t + ";" + b + "r" -} - -// DECSTBM is an alias for [SetTopBottomMargins]. -func DECSTBM(top, bot int) string { - return SetTopBottomMargins(top, bot) -} - -// SetLeftRightMargins (DECSLRM) sets the left and right margins for the scrolling -// region. -// -// Default is 1 and the right of the screen. -// -// CSI Pl ; Pr s -// -// See: https://vt100.net/docs/vt510-rm/DECSLRM.html -func SetLeftRightMargins(left, right int) string { - var l, r string - if left > 0 { - l = strconv.Itoa(left) - } - if right > 0 { - r = strconv.Itoa(right) - } - return "\x1b[" + l + ";" + r + "s" -} - -// DECSLRM is an alias for [SetLeftRightMargins]. -func DECSLRM(left, right int) string { - return SetLeftRightMargins(left, right) -} - -// SetScrollingRegion (DECSTBM) sets the top and bottom margins for the scrolling -// region. The default is the entire screen. -// -// CSI ; r -// -// See: https://vt100.net/docs/vt510-rm/DECSTBM.html -// -// Deprecated: use [SetTopBottomMargins] instead. -func SetScrollingRegion(t, b int) string { - if t < 0 { - t = 0 - } - if b < 0 { - b = 0 - } - return "\x1b[" + strconv.Itoa(t) + ";" + strconv.Itoa(b) + "r" -} - -// InsertCharacter (ICH) inserts n blank characters at the current cursor -// position. Existing characters move to the right. Characters moved past the -// right margin are lost. ICH has no effect outside the scrolling margins. -// -// Default is 1. -// -// CSI Pn @ -// -// See: https://vt100.net/docs/vt510-rm/ICH.html -func InsertCharacter(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "@" -} - -// ICH is an alias for [InsertCharacter]. -func ICH(n int) string { - return InsertCharacter(n) -} - -// DeleteCharacter (DCH) deletes n characters at the current cursor position. -// As the characters are deleted, the remaining characters move to the left and -// the cursor remains at the same position. -// -// Default is 1. -// -// CSI Pn P -// -// See: https://vt100.net/docs/vt510-rm/DCH.html -func DeleteCharacter(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "P" -} - -// DCH is an alias for [DeleteCharacter]. -func DCH(n int) string { - return DeleteCharacter(n) -} - -// SetTabEvery8Columns (DECST8C) sets the tab stops at every 8 columns. -// -// CSI ? 5 W -// -// See: https://vt100.net/docs/vt510-rm/DECST8C.html -const ( - SetTabEvery8Columns = "\x1b[?5W" - DECST8C = SetTabEvery8Columns -) - -// HorizontalTabSet (HTS) sets a horizontal tab stop at the current cursor -// column. -// -// This is equivalent to [HTS]. -// -// ESC H -// -// See: https://vt100.net/docs/vt510-rm/HTS.html -const HorizontalTabSet = "\x1bH" - -// TabClear (TBC) clears tab stops. -// -// Default is 0. -// -// Possible values: -// 0: Clear tab stop at the current column. (default) -// 3: Clear all tab stops. -// -// CSI Pn g -// -// See: https://vt100.net/docs/vt510-rm/TBC.html -func TabClear(n int) string { - var s string - if n > 0 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "g" -} - -// TBC is an alias for [TabClear]. -func TBC(n int) string { - return TabClear(n) -} - -// RequestPresentationStateReport (DECRQPSR) requests the terminal to send a -// report of the presentation state. This includes the cursor information [DECCIR], -// and tab stop [DECTABSR] reports. -// -// Default is 0. -// -// Possible values: -// 0: Error, request ignored. -// 1: Cursor information report [DECCIR]. -// 2: Tab stop report [DECTABSR]. -// -// CSI Ps $ w -// -// See: https://vt100.net/docs/vt510-rm/DECRQPSR.html -func RequestPresentationStateReport(n int) string { - var s string - if n > 0 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "$w" -} - -// DECRQPSR is an alias for [RequestPresentationStateReport]. -func DECRQPSR(n int) string { - return RequestPresentationStateReport(n) -} - -// TabStopReport (DECTABSR) is the response to a tab stop report request. -// It reports the tab stops set in the terminal. -// -// The response is a list of tab stops separated by a slash (/) character. -// -// DCS 2 $ u D ... D ST -// -// Where D is a decimal number representing a tab stop. -// -// See: https://vt100.net/docs/vt510-rm/DECTABSR.html -func TabStopReport(stops ...int) string { - var s []string //nolint:prealloc - for _, v := range stops { - s = append(s, strconv.Itoa(v)) - } - return "\x1bP2$u" + strings.Join(s, "/") + "\x1b\\" -} - -// DECTABSR is an alias for [TabStopReport]. -func DECTABSR(stops ...int) string { - return TabStopReport(stops...) -} - -// CursorInformationReport (DECCIR) is the response to a cursor information -// report request. It reports the cursor position, visual attributes, and -// character protection attributes. It also reports the status of origin mode -// [DECOM] and the current active character set. -// -// The response is a list of values separated by a semicolon (;) character. -// -// DCS 1 $ u D ... D ST -// -// Where D is a decimal number representing a value. -// -// See: https://vt100.net/docs/vt510-rm/DECCIR.html -func CursorInformationReport(values ...int) string { - var s []string //nolint:prealloc - for _, v := range values { - s = append(s, strconv.Itoa(v)) - } - return "\x1bP1$u" + strings.Join(s, ";") + "\x1b\\" -} - -// DECCIR is an alias for [CursorInformationReport]. -func DECCIR(values ...int) string { - return CursorInformationReport(values...) -} - -// RepeatPreviousCharacter (REP) repeats the previous character n times. -// This is identical to typing the same character n times. -// -// Default is 1. -// -// CSI Pn b -// -// See: ECMA-48 § 8.3.103. -func RepeatPreviousCharacter(n int) string { - var s string - if n > 1 { - s = strconv.Itoa(n) - } - return "\x1b[" + s + "b" -} - -// REP is an alias for [RepeatPreviousCharacter]. -func REP(n int) string { - return RepeatPreviousCharacter(n) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/sgr.go b/vendor/github.com/charmbracelet/x/ansi/sgr.go deleted file mode 100644 index 5e6d05d..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/sgr.go +++ /dev/null @@ -1,79 +0,0 @@ -package ansi - -// SelectGraphicRendition (SGR) is a command that sets display attributes. -// -// Default is 0. -// -// CSI Ps ; Ps ... m -// -// See: https://vt100.net/docs/vt510-rm/SGR.html -func SelectGraphicRendition(ps ...Attr) string { - if len(ps) == 0 { - return ResetStyle - } - - return NewStyle(ps...).String() -} - -// SGR is an alias for [SelectGraphicRendition]. -func SGR(ps ...Attr) string { - return SelectGraphicRendition(ps...) -} - -var attrStrings = map[int]string{ - ResetAttr: resetAttr, - BoldAttr: boldAttr, - FaintAttr: faintAttr, - ItalicAttr: italicAttr, - UnderlineAttr: underlineAttr, - SlowBlinkAttr: slowBlinkAttr, - RapidBlinkAttr: rapidBlinkAttr, - ReverseAttr: reverseAttr, - ConcealAttr: concealAttr, - StrikethroughAttr: strikethroughAttr, - NormalIntensityAttr: normalIntensityAttr, - NoItalicAttr: noItalicAttr, - NoUnderlineAttr: noUnderlineAttr, - NoBlinkAttr: noBlinkAttr, - NoReverseAttr: noReverseAttr, - NoConcealAttr: noConcealAttr, - NoStrikethroughAttr: noStrikethroughAttr, - BlackForegroundColorAttr: blackForegroundColorAttr, - RedForegroundColorAttr: redForegroundColorAttr, - GreenForegroundColorAttr: greenForegroundColorAttr, - YellowForegroundColorAttr: yellowForegroundColorAttr, - BlueForegroundColorAttr: blueForegroundColorAttr, - MagentaForegroundColorAttr: magentaForegroundColorAttr, - CyanForegroundColorAttr: cyanForegroundColorAttr, - WhiteForegroundColorAttr: whiteForegroundColorAttr, - ExtendedForegroundColorAttr: extendedForegroundColorAttr, - DefaultForegroundColorAttr: defaultForegroundColorAttr, - BlackBackgroundColorAttr: blackBackgroundColorAttr, - RedBackgroundColorAttr: redBackgroundColorAttr, - GreenBackgroundColorAttr: greenBackgroundColorAttr, - YellowBackgroundColorAttr: yellowBackgroundColorAttr, - BlueBackgroundColorAttr: blueBackgroundColorAttr, - MagentaBackgroundColorAttr: magentaBackgroundColorAttr, - CyanBackgroundColorAttr: cyanBackgroundColorAttr, - WhiteBackgroundColorAttr: whiteBackgroundColorAttr, - ExtendedBackgroundColorAttr: extendedBackgroundColorAttr, - DefaultBackgroundColorAttr: defaultBackgroundColorAttr, - ExtendedUnderlineColorAttr: extendedUnderlineColorAttr, - DefaultUnderlineColorAttr: defaultUnderlineColorAttr, - BrightBlackForegroundColorAttr: brightBlackForegroundColorAttr, - BrightRedForegroundColorAttr: brightRedForegroundColorAttr, - BrightGreenForegroundColorAttr: brightGreenForegroundColorAttr, - BrightYellowForegroundColorAttr: brightYellowForegroundColorAttr, - BrightBlueForegroundColorAttr: brightBlueForegroundColorAttr, - BrightMagentaForegroundColorAttr: brightMagentaForegroundColorAttr, - BrightCyanForegroundColorAttr: brightCyanForegroundColorAttr, - BrightWhiteForegroundColorAttr: brightWhiteForegroundColorAttr, - BrightBlackBackgroundColorAttr: brightBlackBackgroundColorAttr, - BrightRedBackgroundColorAttr: brightRedBackgroundColorAttr, - BrightGreenBackgroundColorAttr: brightGreenBackgroundColorAttr, - BrightYellowBackgroundColorAttr: brightYellowBackgroundColorAttr, - BrightBlueBackgroundColorAttr: brightBlueBackgroundColorAttr, - BrightMagentaBackgroundColorAttr: brightMagentaBackgroundColorAttr, - BrightCyanBackgroundColorAttr: brightCyanBackgroundColorAttr, - BrightWhiteBackgroundColorAttr: brightWhiteBackgroundColorAttr, -} diff --git a/vendor/github.com/charmbracelet/x/ansi/status.go b/vendor/github.com/charmbracelet/x/ansi/status.go deleted file mode 100644 index 3adfb02..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/status.go +++ /dev/null @@ -1,168 +0,0 @@ -package ansi - -import ( - "strconv" - "strings" -) - -// StatusReport represents a terminal status report. -type StatusReport interface { - // StatusReport returns the status report identifier. - StatusReport() int -} - -// ANSIStatusReport represents an ANSI terminal status report. -type ANSIStatusReport int //nolint:revive - -// StatusReport returns the status report identifier. -func (s ANSIStatusReport) StatusReport() int { - return int(s) -} - -// DECStatusReport represents a DEC terminal status report. -type DECStatusReport int - -// StatusReport returns the status report identifier. -func (s DECStatusReport) StatusReport() int { - return int(s) -} - -// DeviceStatusReport (DSR) is a control sequence that reports the terminal's -// status. -// The terminal responds with a DSR sequence. -// -// CSI Ps n -// CSI ? Ps n -// -// If one of the statuses is a [DECStatus], the sequence will use the DEC -// format. -// -// See also https://vt100.net/docs/vt510-rm/DSR.html -func DeviceStatusReport(statues ...StatusReport) string { - var dec bool - list := make([]string, len(statues)) - seq := "\x1b[" - for i, status := range statues { - list[i] = strconv.Itoa(status.StatusReport()) - switch status.(type) { - case DECStatusReport: - dec = true - } - } - if dec { - seq += "?" - } - return seq + strings.Join(list, ";") + "n" -} - -// DSR is an alias for [DeviceStatusReport]. -func DSR(status StatusReport) string { - return DeviceStatusReport(status) -} - -// RequestCursorPositionReport is an escape sequence that requests the current -// cursor position. -// -// CSI 6 n -// -// The terminal will report the cursor position as a CSI sequence in the -// following format: -// -// CSI Pl ; Pc R -// -// Where Pl is the line number and Pc is the column number. -// See: https://vt100.net/docs/vt510-rm/CPR.html -const RequestCursorPositionReport = "\x1b[6n" - -// RequestExtendedCursorPositionReport (DECXCPR) is a sequence for requesting -// the cursor position report including the current page number. -// -// CSI ? 6 n -// -// The terminal will report the cursor position as a CSI sequence in the -// following format: -// -// CSI ? Pl ; Pc ; Pp R -// -// Where Pl is the line number, Pc is the column number, and Pp is the page -// number. -// See: https://vt100.net/docs/vt510-rm/DECXCPR.html -const RequestExtendedCursorPositionReport = "\x1b[?6n" - -// RequestLightDarkReport is a control sequence that requests the terminal to -// report its operating system light/dark color preference. Supported terminals -// should respond with a [LightDarkReport] sequence as follows: -// -// CSI ? 997 ; 1 n for dark mode -// CSI ? 997 ; 2 n for light mode -// -// See: https://contour-terminal.org/vt-extensions/color-palette-update-notifications/ -const RequestLightDarkReport = "\x1b[?996n" - -// CursorPositionReport (CPR) is a control sequence that reports the cursor's -// position. -// -// CSI Pl ; Pc R -// -// Where Pl is the line number and Pc is the column number. -// -// See also https://vt100.net/docs/vt510-rm/CPR.html -func CursorPositionReport(line, column int) string { - if line < 1 { - line = 1 - } - if column < 1 { - column = 1 - } - return "\x1b[" + strconv.Itoa(line) + ";" + strconv.Itoa(column) + "R" -} - -// CPR is an alias for [CursorPositionReport]. -func CPR(line, column int) string { - return CursorPositionReport(line, column) -} - -// ExtendedCursorPositionReport (DECXCPR) is a control sequence that reports the -// cursor's position along with the page number (optional). -// -// CSI ? Pl ; Pc R -// CSI ? Pl ; Pc ; Pv R -// -// Where Pl is the line number, Pc is the column number, and Pv is the page -// number. -// -// If the page number is zero or negative, the returned sequence won't include -// the page number. -// -// See also https://vt100.net/docs/vt510-rm/DECXCPR.html -func ExtendedCursorPositionReport(line, column, page int) string { - if line < 1 { - line = 1 - } - if column < 1 { - column = 1 - } - if page < 1 { - return "\x1b[?" + strconv.Itoa(line) + ";" + strconv.Itoa(column) + "R" - } - return "\x1b[?" + strconv.Itoa(line) + ";" + strconv.Itoa(column) + ";" + strconv.Itoa(page) + "R" -} - -// DECXCPR is an alias for [ExtendedCursorPositionReport]. -func DECXCPR(line, column, page int) string { - return ExtendedCursorPositionReport(line, column, page) -} - -// LightDarkReport is a control sequence that reports the terminal's operating -// system light/dark color preference. -// -// CSI ? 997 ; 1 n for dark mode -// CSI ? 997 ; 2 n for light mode -// -// See: https://contour-terminal.org/vt-extensions/color-palette-update-notifications/ -func LightDarkReport(dark bool) string { - if dark { - return "\x1b[?997;1n" - } - return "\x1b[?997;2n" -} diff --git a/vendor/github.com/charmbracelet/x/ansi/style.go b/vendor/github.com/charmbracelet/x/ansi/style.go deleted file mode 100644 index d8a7efa..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/style.go +++ /dev/null @@ -1,673 +0,0 @@ -package ansi - -import ( - "image/color" - "strconv" - "strings" -) - -// ResetStyle is a SGR (Select Graphic Rendition) style sequence that resets -// all attributes. -// See: https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters -const ResetStyle = "\x1b[m" - -// Attr is a SGR (Select Graphic Rendition) style attribute. -type Attr = int - -// Style represents an ANSI SGR (Select Graphic Rendition) style. -type Style []string - -// NewStyle returns a new style with the given attributes. -func NewStyle(attrs ...Attr) Style { - if len(attrs) == 0 { - return Style{} - } - s := make(Style, 0, len(attrs)) - for _, a := range attrs { - attr, ok := attrStrings[a] - if ok { - s = append(s, attr) - } else { - if a < 0 { - a = 0 - } - s = append(s, strconv.Itoa(a)) - } - } - return s -} - -// String returns the ANSI SGR (Select Graphic Rendition) style sequence for -// the given style. -func (s Style) String() string { - if len(s) == 0 { - return ResetStyle - } - return "\x1b[" + strings.Join(s, ";") + "m" -} - -// Styled returns a styled string with the given style applied. -func (s Style) Styled(str string) string { - if len(s) == 0 { - return str - } - return s.String() + str + ResetStyle -} - -// Reset appends the reset style attribute to the style. -func (s Style) Reset() Style { - return append(s, resetAttr) -} - -// Bold appends the bold style attribute to the style. -func (s Style) Bold() Style { - return append(s, boldAttr) -} - -// Faint appends the faint style attribute to the style. -func (s Style) Faint() Style { - return append(s, faintAttr) -} - -// Italic appends the italic style attribute to the style. -func (s Style) Italic() Style { - return append(s, italicAttr) -} - -// Underline appends the underline style attribute to the style. -func (s Style) Underline() Style { - return append(s, underlineAttr) -} - -// UnderlineStyle appends the underline style attribute to the style. -func (s Style) UnderlineStyle(u UnderlineStyle) Style { - switch u { - case NoUnderlineStyle: - return s.NoUnderline() - case SingleUnderlineStyle: - return s.Underline() - case DoubleUnderlineStyle: - return append(s, doubleUnderlineStyle) - case CurlyUnderlineStyle: - return append(s, curlyUnderlineStyle) - case DottedUnderlineStyle: - return append(s, dottedUnderlineStyle) - case DashedUnderlineStyle: - return append(s, dashedUnderlineStyle) - } - return s -} - -// DoubleUnderline appends the double underline style attribute to the style. -// This is a convenience method for UnderlineStyle(DoubleUnderlineStyle). -func (s Style) DoubleUnderline() Style { - return s.UnderlineStyle(DoubleUnderlineStyle) -} - -// CurlyUnderline appends the curly underline style attribute to the style. -// This is a convenience method for UnderlineStyle(CurlyUnderlineStyle). -func (s Style) CurlyUnderline() Style { - return s.UnderlineStyle(CurlyUnderlineStyle) -} - -// DottedUnderline appends the dotted underline style attribute to the style. -// This is a convenience method for UnderlineStyle(DottedUnderlineStyle). -func (s Style) DottedUnderline() Style { - return s.UnderlineStyle(DottedUnderlineStyle) -} - -// DashedUnderline appends the dashed underline style attribute to the style. -// This is a convenience method for UnderlineStyle(DashedUnderlineStyle). -func (s Style) DashedUnderline() Style { - return s.UnderlineStyle(DashedUnderlineStyle) -} - -// SlowBlink appends the slow blink style attribute to the style. -func (s Style) SlowBlink() Style { - return append(s, slowBlinkAttr) -} - -// RapidBlink appends the rapid blink style attribute to the style. -func (s Style) RapidBlink() Style { - return append(s, rapidBlinkAttr) -} - -// Reverse appends the reverse style attribute to the style. -func (s Style) Reverse() Style { - return append(s, reverseAttr) -} - -// Conceal appends the conceal style attribute to the style. -func (s Style) Conceal() Style { - return append(s, concealAttr) -} - -// Strikethrough appends the strikethrough style attribute to the style. -func (s Style) Strikethrough() Style { - return append(s, strikethroughAttr) -} - -// NormalIntensity appends the normal intensity style attribute to the style. -func (s Style) NormalIntensity() Style { - return append(s, normalIntensityAttr) -} - -// NoItalic appends the no italic style attribute to the style. -func (s Style) NoItalic() Style { - return append(s, noItalicAttr) -} - -// NoUnderline appends the no underline style attribute to the style. -func (s Style) NoUnderline() Style { - return append(s, noUnderlineAttr) -} - -// NoBlink appends the no blink style attribute to the style. -func (s Style) NoBlink() Style { - return append(s, noBlinkAttr) -} - -// NoReverse appends the no reverse style attribute to the style. -func (s Style) NoReverse() Style { - return append(s, noReverseAttr) -} - -// NoConceal appends the no conceal style attribute to the style. -func (s Style) NoConceal() Style { - return append(s, noConcealAttr) -} - -// NoStrikethrough appends the no strikethrough style attribute to the style. -func (s Style) NoStrikethrough() Style { - return append(s, noStrikethroughAttr) -} - -// DefaultForegroundColor appends the default foreground color style attribute to the style. -func (s Style) DefaultForegroundColor() Style { - return append(s, defaultForegroundColorAttr) -} - -// DefaultBackgroundColor appends the default background color style attribute to the style. -func (s Style) DefaultBackgroundColor() Style { - return append(s, defaultBackgroundColorAttr) -} - -// DefaultUnderlineColor appends the default underline color style attribute to the style. -func (s Style) DefaultUnderlineColor() Style { - return append(s, defaultUnderlineColorAttr) -} - -// ForegroundColor appends the foreground color style attribute to the style. -func (s Style) ForegroundColor(c Color) Style { - return append(s, foregroundColorString(c)) -} - -// BackgroundColor appends the background color style attribute to the style. -func (s Style) BackgroundColor(c Color) Style { - return append(s, backgroundColorString(c)) -} - -// UnderlineColor appends the underline color style attribute to the style. -func (s Style) UnderlineColor(c Color) Style { - return append(s, underlineColorString(c)) -} - -// UnderlineStyle represents an ANSI SGR (Select Graphic Rendition) underline -// style. -type UnderlineStyle = byte - -const ( - doubleUnderlineStyle = "4:2" - curlyUnderlineStyle = "4:3" - dottedUnderlineStyle = "4:4" - dashedUnderlineStyle = "4:5" -) - -const ( - // NoUnderlineStyle is the default underline style. - NoUnderlineStyle UnderlineStyle = iota - // SingleUnderlineStyle is a single underline style. - SingleUnderlineStyle - // DoubleUnderlineStyle is a double underline style. - DoubleUnderlineStyle - // CurlyUnderlineStyle is a curly underline style. - CurlyUnderlineStyle - // DottedUnderlineStyle is a dotted underline style. - DottedUnderlineStyle - // DashedUnderlineStyle is a dashed underline style. - DashedUnderlineStyle -) - -// SGR (Select Graphic Rendition) style attributes. -// See: https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters -const ( - ResetAttr Attr = 0 - BoldAttr Attr = 1 - FaintAttr Attr = 2 - ItalicAttr Attr = 3 - UnderlineAttr Attr = 4 - SlowBlinkAttr Attr = 5 - RapidBlinkAttr Attr = 6 - ReverseAttr Attr = 7 - ConcealAttr Attr = 8 - StrikethroughAttr Attr = 9 - NormalIntensityAttr Attr = 22 - NoItalicAttr Attr = 23 - NoUnderlineAttr Attr = 24 - NoBlinkAttr Attr = 25 - NoReverseAttr Attr = 27 - NoConcealAttr Attr = 28 - NoStrikethroughAttr Attr = 29 - BlackForegroundColorAttr Attr = 30 - RedForegroundColorAttr Attr = 31 - GreenForegroundColorAttr Attr = 32 - YellowForegroundColorAttr Attr = 33 - BlueForegroundColorAttr Attr = 34 - MagentaForegroundColorAttr Attr = 35 - CyanForegroundColorAttr Attr = 36 - WhiteForegroundColorAttr Attr = 37 - ExtendedForegroundColorAttr Attr = 38 - DefaultForegroundColorAttr Attr = 39 - BlackBackgroundColorAttr Attr = 40 - RedBackgroundColorAttr Attr = 41 - GreenBackgroundColorAttr Attr = 42 - YellowBackgroundColorAttr Attr = 43 - BlueBackgroundColorAttr Attr = 44 - MagentaBackgroundColorAttr Attr = 45 - CyanBackgroundColorAttr Attr = 46 - WhiteBackgroundColorAttr Attr = 47 - ExtendedBackgroundColorAttr Attr = 48 - DefaultBackgroundColorAttr Attr = 49 - ExtendedUnderlineColorAttr Attr = 58 - DefaultUnderlineColorAttr Attr = 59 - BrightBlackForegroundColorAttr Attr = 90 - BrightRedForegroundColorAttr Attr = 91 - BrightGreenForegroundColorAttr Attr = 92 - BrightYellowForegroundColorAttr Attr = 93 - BrightBlueForegroundColorAttr Attr = 94 - BrightMagentaForegroundColorAttr Attr = 95 - BrightCyanForegroundColorAttr Attr = 96 - BrightWhiteForegroundColorAttr Attr = 97 - BrightBlackBackgroundColorAttr Attr = 100 - BrightRedBackgroundColorAttr Attr = 101 - BrightGreenBackgroundColorAttr Attr = 102 - BrightYellowBackgroundColorAttr Attr = 103 - BrightBlueBackgroundColorAttr Attr = 104 - BrightMagentaBackgroundColorAttr Attr = 105 - BrightCyanBackgroundColorAttr Attr = 106 - BrightWhiteBackgroundColorAttr Attr = 107 - - RGBColorIntroducerAttr Attr = 2 - ExtendedColorIntroducerAttr Attr = 5 -) - -const ( - resetAttr = "0" - boldAttr = "1" - faintAttr = "2" - italicAttr = "3" - underlineAttr = "4" - slowBlinkAttr = "5" - rapidBlinkAttr = "6" - reverseAttr = "7" - concealAttr = "8" - strikethroughAttr = "9" - normalIntensityAttr = "22" - noItalicAttr = "23" - noUnderlineAttr = "24" - noBlinkAttr = "25" - noReverseAttr = "27" - noConcealAttr = "28" - noStrikethroughAttr = "29" - blackForegroundColorAttr = "30" - redForegroundColorAttr = "31" - greenForegroundColorAttr = "32" - yellowForegroundColorAttr = "33" - blueForegroundColorAttr = "34" - magentaForegroundColorAttr = "35" - cyanForegroundColorAttr = "36" - whiteForegroundColorAttr = "37" - extendedForegroundColorAttr = "38" - defaultForegroundColorAttr = "39" - blackBackgroundColorAttr = "40" - redBackgroundColorAttr = "41" - greenBackgroundColorAttr = "42" - yellowBackgroundColorAttr = "43" - blueBackgroundColorAttr = "44" - magentaBackgroundColorAttr = "45" - cyanBackgroundColorAttr = "46" - whiteBackgroundColorAttr = "47" - extendedBackgroundColorAttr = "48" - defaultBackgroundColorAttr = "49" - extendedUnderlineColorAttr = "58" - defaultUnderlineColorAttr = "59" - brightBlackForegroundColorAttr = "90" - brightRedForegroundColorAttr = "91" - brightGreenForegroundColorAttr = "92" - brightYellowForegroundColorAttr = "93" - brightBlueForegroundColorAttr = "94" - brightMagentaForegroundColorAttr = "95" - brightCyanForegroundColorAttr = "96" - brightWhiteForegroundColorAttr = "97" - brightBlackBackgroundColorAttr = "100" - brightRedBackgroundColorAttr = "101" - brightGreenBackgroundColorAttr = "102" - brightYellowBackgroundColorAttr = "103" - brightBlueBackgroundColorAttr = "104" - brightMagentaBackgroundColorAttr = "105" - brightCyanBackgroundColorAttr = "106" - brightWhiteBackgroundColorAttr = "107" -) - -// foregroundColorString returns the style SGR attribute for the given -// foreground color. -// See: https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters -func foregroundColorString(c Color) string { - switch c := c.(type) { - case BasicColor: - // 3-bit or 4-bit ANSI foreground - // "3" or "9" where n is the color number from 0 to 7 - switch c { - case Black: - return blackForegroundColorAttr - case Red: - return redForegroundColorAttr - case Green: - return greenForegroundColorAttr - case Yellow: - return yellowForegroundColorAttr - case Blue: - return blueForegroundColorAttr - case Magenta: - return magentaForegroundColorAttr - case Cyan: - return cyanForegroundColorAttr - case White: - return whiteForegroundColorAttr - case BrightBlack: - return brightBlackForegroundColorAttr - case BrightRed: - return brightRedForegroundColorAttr - case BrightGreen: - return brightGreenForegroundColorAttr - case BrightYellow: - return brightYellowForegroundColorAttr - case BrightBlue: - return brightBlueForegroundColorAttr - case BrightMagenta: - return brightMagentaForegroundColorAttr - case BrightCyan: - return brightCyanForegroundColorAttr - case BrightWhite: - return brightWhiteForegroundColorAttr - } - case ExtendedColor: - // 256-color ANSI foreground - // "38;5;" - return "38;5;" + strconv.FormatUint(uint64(c), 10) - case TrueColor, color.Color: - // 24-bit "true color" foreground - // "38;2;;;" - r, g, b, _ := c.RGBA() - return "38;2;" + - strconv.FormatUint(uint64(shift(r)), 10) + ";" + - strconv.FormatUint(uint64(shift(g)), 10) + ";" + - strconv.FormatUint(uint64(shift(b)), 10) - } - return defaultForegroundColorAttr -} - -// backgroundColorString returns the style SGR attribute for the given -// background color. -// See: https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters -func backgroundColorString(c Color) string { - switch c := c.(type) { - case BasicColor: - // 3-bit or 4-bit ANSI foreground - // "4" or "10" where n is the color number from 0 to 7 - switch c { - case Black: - return blackBackgroundColorAttr - case Red: - return redBackgroundColorAttr - case Green: - return greenBackgroundColorAttr - case Yellow: - return yellowBackgroundColorAttr - case Blue: - return blueBackgroundColorAttr - case Magenta: - return magentaBackgroundColorAttr - case Cyan: - return cyanBackgroundColorAttr - case White: - return whiteBackgroundColorAttr - case BrightBlack: - return brightBlackBackgroundColorAttr - case BrightRed: - return brightRedBackgroundColorAttr - case BrightGreen: - return brightGreenBackgroundColorAttr - case BrightYellow: - return brightYellowBackgroundColorAttr - case BrightBlue: - return brightBlueBackgroundColorAttr - case BrightMagenta: - return brightMagentaBackgroundColorAttr - case BrightCyan: - return brightCyanBackgroundColorAttr - case BrightWhite: - return brightWhiteBackgroundColorAttr - } - case ExtendedColor: - // 256-color ANSI foreground - // "48;5;" - return "48;5;" + strconv.FormatUint(uint64(c), 10) - case TrueColor, color.Color: - // 24-bit "true color" foreground - // "38;2;;;" - r, g, b, _ := c.RGBA() - return "48;2;" + - strconv.FormatUint(uint64(shift(r)), 10) + ";" + - strconv.FormatUint(uint64(shift(g)), 10) + ";" + - strconv.FormatUint(uint64(shift(b)), 10) - } - return defaultBackgroundColorAttr -} - -// underlineColorString returns the style SGR attribute for the given underline -// color. -// See: https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters -func underlineColorString(c Color) string { - switch c := c.(type) { - // NOTE: we can't use 3-bit and 4-bit ANSI color codes with underline - // color, use 256-color instead. - // - // 256-color ANSI underline color - // "58;5;" - case BasicColor: - return "58;5;" + strconv.FormatUint(uint64(c), 10) - case ExtendedColor: - return "58;5;" + strconv.FormatUint(uint64(c), 10) - case TrueColor, color.Color: - // 24-bit "true color" foreground - // "38;2;;;" - r, g, b, _ := c.RGBA() - return "58;2;" + - strconv.FormatUint(uint64(shift(r)), 10) + ";" + - strconv.FormatUint(uint64(shift(g)), 10) + ";" + - strconv.FormatUint(uint64(shift(b)), 10) - } - return defaultUnderlineColorAttr -} - -// ReadStyleColor decodes a color from a slice of parameters. It returns the -// number of parameters read and the color. This function is used to read SGR -// color parameters following the ITU T.416 standard. -// -// It supports reading the following color types: -// - 0: implementation defined -// - 1: transparent -// - 2: RGB direct color -// - 3: CMY direct color -// - 4: CMYK direct color -// - 5: indexed color -// - 6: RGBA direct color (WezTerm extension) -// -// The parameters can be separated by semicolons (;) or colons (:). Mixing -// separators is not allowed. -// -// The specs supports defining a color space id, a color tolerance value, and a -// tolerance color space id. However, these values have no effect on the -// returned color and will be ignored. -// -// This implementation includes a few modifications to the specs: -// 1. Support for legacy color values separated by semicolons (;) with respect to RGB, and indexed colors -// 2. Support ignoring and omitting the color space id (second parameter) with respect to RGB colors -// 3. Support ignoring and omitting the 6th parameter with respect to RGB and CMY colors -// 4. Support reading RGBA colors -func ReadStyleColor(params Params, co *color.Color) (n int) { - if len(params) < 2 { // Need at least SGR type and color type - return 0 - } - - // First parameter indicates one of 38, 48, or 58 (foreground, background, or underline) - s := params[0] - p := params[1] - colorType := p.Param(0) - n = 2 - - paramsfn := func() (p1, p2, p3, p4 int) { - // Where should we start reading the color? - switch { - case s.HasMore() && p.HasMore() && len(params) > 8 && params[2].HasMore() && params[3].HasMore() && params[4].HasMore() && params[5].HasMore() && params[6].HasMore() && params[7].HasMore(): - // We have color space id, a 6th parameter, a tolerance value, and a tolerance color space - n += 7 - return params[3].Param(0), params[4].Param(0), params[5].Param(0), params[6].Param(0) - case s.HasMore() && p.HasMore() && len(params) > 7 && params[2].HasMore() && params[3].HasMore() && params[4].HasMore() && params[5].HasMore() && params[6].HasMore(): - // We have color space id, a 6th parameter, and a tolerance value - n += 6 - return params[3].Param(0), params[4].Param(0), params[5].Param(0), params[6].Param(0) - case s.HasMore() && p.HasMore() && len(params) > 6 && params[2].HasMore() && params[3].HasMore() && params[4].HasMore() && params[5].HasMore(): - // We have color space id and a 6th parameter - // 48 : 4 : : 1 : 2 : 3 :4 - n += 5 - return params[3].Param(0), params[4].Param(0), params[5].Param(0), params[6].Param(0) - case s.HasMore() && p.HasMore() && len(params) > 5 && params[2].HasMore() && params[3].HasMore() && params[4].HasMore() && !params[5].HasMore(): - // We have color space - // 48 : 3 : : 1 : 2 : 3 - n += 4 - return params[3].Param(0), params[4].Param(0), params[5].Param(0), -1 - case s.HasMore() && p.HasMore() && p.Param(0) == 2 && params[2].HasMore() && params[3].HasMore() && !params[4].HasMore(): - // We have color values separated by colons (:) - // 48 : 2 : 1 : 2 : 3 - fallthrough - case !s.HasMore() && !p.HasMore() && p.Param(0) == 2 && !params[2].HasMore() && !params[3].HasMore() && !params[4].HasMore(): - // Support legacy color values separated by semicolons (;) - // 48 ; 2 ; 1 ; 2 ; 3 - n += 3 - return params[2].Param(0), params[3].Param(0), params[4].Param(0), -1 - } - // Ambiguous SGR color - return -1, -1, -1, -1 - } - - switch colorType { - case 0: // implementation defined - return 2 - case 1: // transparent - *co = color.Transparent - return 2 - case 2: // RGB direct color - if len(params) < 5 { - return 0 - } - - r, g, b, _ := paramsfn() - if r == -1 || g == -1 || b == -1 { - return 0 - } - - *co = color.RGBA{ - R: uint8(r), //nolint:gosec - G: uint8(g), //nolint:gosec - B: uint8(b), //nolint:gosec - A: 0xff, - } - return //nolint:nakedret - - case 3: // CMY direct color - if len(params) < 5 { - return 0 - } - - c, m, y, _ := paramsfn() - if c == -1 || m == -1 || y == -1 { - return 0 - } - - *co = color.CMYK{ - C: uint8(c), //nolint:gosec - M: uint8(m), //nolint:gosec - Y: uint8(y), //nolint:gosec - K: 0, - } - return //nolint:nakedret - - case 4: // CMYK direct color - if len(params) < 6 { - return 0 - } - - c, m, y, k := paramsfn() - if c == -1 || m == -1 || y == -1 || k == -1 { - return 0 - } - - *co = color.CMYK{ - C: uint8(c), //nolint:gosec - M: uint8(m), //nolint:gosec - Y: uint8(y), //nolint:gosec - K: uint8(k), //nolint:gosec - } - return //nolint:nakedret - - case 5: // indexed color - if len(params) < 3 { - return 0 - } - switch { - case s.HasMore() && p.HasMore() && !params[2].HasMore(): - // Colon separated indexed color - // 38 : 5 : 234 - case !s.HasMore() && !p.HasMore() && !params[2].HasMore(): - // Legacy semicolon indexed color - // 38 ; 5 ; 234 - default: - return 0 - } - *co = ExtendedColor(params[2].Param(0)) //nolint:gosec - return 3 - - case 6: // RGBA direct color - if len(params) < 6 { - return 0 - } - - r, g, b, a := paramsfn() - if r == -1 || g == -1 || b == -1 || a == -1 { - return 0 - } - - *co = color.RGBA{ - R: uint8(r), //nolint:gosec - G: uint8(g), //nolint:gosec - B: uint8(b), //nolint:gosec - A: uint8(a), //nolint:gosec - } - return //nolint:nakedret - - default: - return 0 - } -} diff --git a/vendor/github.com/charmbracelet/x/ansi/termcap.go b/vendor/github.com/charmbracelet/x/ansi/termcap.go deleted file mode 100644 index b59aa42..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/termcap.go +++ /dev/null @@ -1,41 +0,0 @@ -package ansi - -import ( - "encoding/hex" - "strings" -) - -// XTGETTCAP (RequestTermcap) requests Termcap/Terminfo strings. -// -// DCS + q ST -// -// Where is a list of Termcap/Terminfo capabilities, encoded in 2-digit -// hexadecimals, separated by semicolons. -// -// See: https://man7.org/linux/man-pages/man5/terminfo.5.html -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands -func XTGETTCAP(caps ...string) string { - if len(caps) == 0 { - return "" - } - - s := "\x1bP+q" - for i, c := range caps { - if i > 0 { - s += ";" - } - s += strings.ToUpper(hex.EncodeToString([]byte(c))) - } - - return s + "\x1b\\" -} - -// RequestTermcap is an alias for [XTGETTCAP]. -func RequestTermcap(caps ...string) string { - return XTGETTCAP(caps...) -} - -// RequestTerminfo is an alias for [XTGETTCAP]. -func RequestTerminfo(caps ...string) string { - return XTGETTCAP(caps...) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/title.go b/vendor/github.com/charmbracelet/x/ansi/title.go deleted file mode 100644 index 54ef942..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/title.go +++ /dev/null @@ -1,48 +0,0 @@ -package ansi - -// SetIconNameWindowTitle returns a sequence for setting the icon name and -// window title. -// -// OSC 0 ; title ST -// OSC 0 ; title BEL -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Commands -func SetIconNameWindowTitle(s string) string { - return "\x1b]0;" + s + "\x07" -} - -// SetIconName returns a sequence for setting the icon name. -// -// OSC 1 ; title ST -// OSC 1 ; title BEL -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Commands -func SetIconName(s string) string { - return "\x1b]1;" + s + "\x07" -} - -// SetWindowTitle returns a sequence for setting the window title. -// -// OSC 2 ; title ST -// OSC 2 ; title BEL -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Commands -func SetWindowTitle(s string) string { - return "\x1b]2;" + s + "\x07" -} - -// DECSWT is a sequence for setting the window title. -// -// This is an alias for [SetWindowTitle]("1;"). -// See: EK-VT520-RM 5–156 https://vt100.net/dec/ek-vt520-rm.pdf -func DECSWT(name string) string { - return SetWindowTitle("1;" + name) -} - -// DECSIN is a sequence for setting the icon name. -// -// This is an alias for [SetWindowTitle]("L;"). -// See: EK-VT520-RM 5–134 https://vt100.net/dec/ek-vt520-rm.pdf -func DECSIN(name string) string { - return SetWindowTitle("L;" + name) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/truncate.go b/vendor/github.com/charmbracelet/x/ansi/truncate.go deleted file mode 100644 index 3f541fa..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/truncate.go +++ /dev/null @@ -1,299 +0,0 @@ -package ansi - -import ( - "bytes" - - "github.com/charmbracelet/x/ansi/parser" - "github.com/mattn/go-runewidth" - "github.com/rivo/uniseg" -) - -// Cut the string, without adding any prefix or tail strings. This function is -// aware of ANSI escape codes and will not break them, and accounts for -// wide-characters (such as East-Asian characters and emojis). -// This treats the text as a sequence of graphemes. -func Cut(s string, left, right int) string { - return cut(GraphemeWidth, s, left, right) -} - -// CutWc the string, without adding any prefix or tail strings. This function is -// aware of ANSI escape codes and will not break them, and accounts for -// wide-characters (such as East-Asian characters and emojis). -// Note that the [left] parameter is inclusive, while [right] isn't, -// which is to say it'll return `[left, right)`. -// -// This treats the text as a sequence of wide characters and runes. -func CutWc(s string, left, right int) string { - return cut(WcWidth, s, left, right) -} - -func cut(m Method, s string, left, right int) string { - if right <= left { - return "" - } - - truncate := Truncate - truncateLeft := TruncateLeft - if m == WcWidth { - truncate = TruncateWc - truncateLeft = TruncateWc - } - - if left == 0 { - return truncate(s, right, "") - } - return truncateLeft(truncate(s, right, ""), left, "") -} - -// Truncate truncates a string to a given length, adding a tail to the end if -// the string is longer than the given length. This function is aware of ANSI -// escape codes and will not break them, and accounts for wide-characters (such -// as East-Asian characters and emojis). -// This treats the text as a sequence of graphemes. -func Truncate(s string, length int, tail string) string { - return truncate(GraphemeWidth, s, length, tail) -} - -// TruncateWc truncates a string to a given length, adding a tail to the end if -// the string is longer than the given length. This function is aware of ANSI -// escape codes and will not break them, and accounts for wide-characters (such -// as East-Asian characters and emojis). -// This treats the text as a sequence of wide characters and runes. -func TruncateWc(s string, length int, tail string) string { - return truncate(WcWidth, s, length, tail) -} - -func truncate(m Method, s string, length int, tail string) string { - if sw := StringWidth(s); sw <= length { - return s - } - - tw := StringWidth(tail) - length -= tw - if length < 0 { - return "" - } - - var cluster []byte - var buf bytes.Buffer - curWidth := 0 - ignoring := false - pstate := parser.GroundState // initial state - b := []byte(s) - i := 0 - - // Here we iterate over the bytes of the string and collect printable - // characters and runes. We also keep track of the width of the string - // in cells. - // - // Once we reach the given length, we start ignoring characters and only - // collect ANSI escape codes until we reach the end of string. - for i < len(b) { - state, action := parser.Table.Transition(pstate, b[i]) - if state == parser.Utf8State { - // This action happens when we transition to the Utf8State. - var width int - cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) - if m == WcWidth { - width = runewidth.StringWidth(string(cluster)) - } - - // increment the index by the length of the cluster - i += len(cluster) - curWidth += width - - // Are we ignoring? Skip to the next byte - if ignoring { - continue - } - - // Is this gonna be too wide? - // If so write the tail and stop collecting. - if curWidth > length && !ignoring { - ignoring = true - buf.WriteString(tail) - } - - if curWidth > length { - continue - } - - buf.Write(cluster) - - // Done collecting, now we're back in the ground state. - pstate = parser.GroundState - continue - } - - switch action { - case parser.PrintAction: - // Is this gonna be too wide? - // If so write the tail and stop collecting. - if curWidth >= length && !ignoring { - ignoring = true - buf.WriteString(tail) - } - - // Skip to the next byte if we're ignoring - if ignoring { - i++ - continue - } - - // collects printable ASCII - curWidth++ - fallthrough - case parser.ExecuteAction: - // execute action will be things like \n, which, if outside the cut, - // should be ignored. - if ignoring { - i++ - continue - } - fallthrough - default: - buf.WriteByte(b[i]) - i++ - } - - // Transition to the next state. - pstate = state - - // Once we reach the given length, we start ignoring runes and write - // the tail to the buffer. - if curWidth > length && !ignoring { - ignoring = true - buf.WriteString(tail) - } - } - - return buf.String() -} - -// TruncateLeft truncates a string from the left side by removing n characters, -// adding a prefix to the beginning if the string is longer than n. -// This function is aware of ANSI escape codes and will not break them, and -// accounts for wide-characters (such as East-Asian characters and emojis). -// This treats the text as a sequence of graphemes. -func TruncateLeft(s string, n int, prefix string) string { - return truncateLeft(GraphemeWidth, s, n, prefix) -} - -// TruncateLeftWc truncates a string from the left side by removing n characters, -// adding a prefix to the beginning if the string is longer than n. -// This function is aware of ANSI escape codes and will not break them, and -// accounts for wide-characters (such as East-Asian characters and emojis). -// This treats the text as a sequence of wide characters and runes. -func TruncateLeftWc(s string, n int, prefix string) string { - return truncateLeft(WcWidth, s, n, prefix) -} - -func truncateLeft(m Method, s string, n int, prefix string) string { - if n <= 0 { - return s - } - - var cluster []byte - var buf bytes.Buffer - curWidth := 0 - ignoring := true - pstate := parser.GroundState - b := []byte(s) - i := 0 - - for i < len(b) { - if !ignoring { - buf.Write(b[i:]) - break - } - - state, action := parser.Table.Transition(pstate, b[i]) - if state == parser.Utf8State { - var width int - cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) - if m == WcWidth { - width = runewidth.StringWidth(string(cluster)) - } - - i += len(cluster) - curWidth += width - - if curWidth > n && ignoring { - ignoring = false - buf.WriteString(prefix) - } - - if curWidth > n { - buf.Write(cluster) - } - - if ignoring { - continue - } - - pstate = parser.GroundState - continue - } - - switch action { - case parser.PrintAction: - curWidth++ - - if curWidth > n && ignoring { - ignoring = false - buf.WriteString(prefix) - } - - if ignoring { - i++ - continue - } - - fallthrough - case parser.ExecuteAction: - // execute action will be things like \n, which, if outside the cut, - // should be ignored. - if ignoring { - i++ - continue - } - fallthrough - default: - buf.WriteByte(b[i]) - i++ - } - - pstate = state - if curWidth > n && ignoring { - ignoring = false - buf.WriteString(prefix) - } - } - - return buf.String() -} - -// ByteToGraphemeRange takes start and stop byte positions and converts them to -// grapheme-aware char positions. -// You can use this with [Truncate], [TruncateLeft], and [Cut]. -func ByteToGraphemeRange(str string, byteStart, byteStop int) (charStart, charStop int) { - bytePos, charPos := 0, 0 - gr := uniseg.NewGraphemes(str) - for byteStart > bytePos { - if !gr.Next() { - break - } - bytePos += len(gr.Str()) - charPos += max(1, gr.Width()) - } - charStart = charPos - for byteStop > bytePos { - if !gr.Next() { - break - } - bytePos += len(gr.Str()) - charPos += max(1, gr.Width()) - } - charStop = charPos - return -} diff --git a/vendor/github.com/charmbracelet/x/ansi/util.go b/vendor/github.com/charmbracelet/x/ansi/util.go deleted file mode 100644 index 103f452..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/util.go +++ /dev/null @@ -1,92 +0,0 @@ -package ansi - -import ( - "fmt" - "image/color" - "strconv" - "strings" - - "github.com/lucasb-eyer/go-colorful" -) - -// colorToHexString returns a hex string representation of a color. -func colorToHexString(c color.Color) string { //nolint:unused - if c == nil { - return "" - } - shift := func(v uint32) uint32 { - if v > 0xff { - return v >> 8 - } - return v - } - r, g, b, _ := c.RGBA() - r, g, b = shift(r), shift(g), shift(b) - return fmt.Sprintf("#%02x%02x%02x", r, g, b) -} - -// rgbToHex converts red, green, and blue values to a hexadecimal value. -// -// hex := rgbToHex(0, 0, 255) // 0x0000FF -func rgbToHex(r, g, b uint32) uint32 { //nolint:unused - return r<<16 + g<<8 + b -} - -type shiftable interface { - ~uint | ~uint16 | ~uint32 | ~uint64 -} - -func shift[T shiftable](x T) T { - if x > 0xff { - x >>= 8 - } - return x -} - -// XParseColor is a helper function that parses a string into a color.Color. It -// provides a similar interface to the XParseColor function in Xlib. It -// supports the following formats: -// -// - #RGB -// - #RRGGBB -// - rgb:RRRR/GGGG/BBBB -// - rgba:RRRR/GGGG/BBBB/AAAA -// -// If the string is not a valid color, nil is returned. -// -// See: https://linux.die.net/man/3/xparsecolor -func XParseColor(s string) color.Color { - switch { - case strings.HasPrefix(s, "#"): - c, err := colorful.Hex(s) - if err != nil { - return nil - } - - return c - case strings.HasPrefix(s, "rgb:"): - parts := strings.Split(s[4:], "/") - if len(parts) != 3 { - return nil - } - - r, _ := strconv.ParseUint(parts[0], 16, 32) - g, _ := strconv.ParseUint(parts[1], 16, 32) - b, _ := strconv.ParseUint(parts[2], 16, 32) - - return color.RGBA{uint8(shift(r)), uint8(shift(g)), uint8(shift(b)), 255} //nolint:gosec - case strings.HasPrefix(s, "rgba:"): - parts := strings.Split(s[5:], "/") - if len(parts) != 4 { - return nil - } - - r, _ := strconv.ParseUint(parts[0], 16, 32) - g, _ := strconv.ParseUint(parts[1], 16, 32) - b, _ := strconv.ParseUint(parts[2], 16, 32) - a, _ := strconv.ParseUint(parts[3], 16, 32) - - return color.RGBA{uint8(shift(r)), uint8(shift(g)), uint8(shift(b)), uint8(shift(a))} //nolint:gosec - } - return nil -} diff --git a/vendor/github.com/charmbracelet/x/ansi/width.go b/vendor/github.com/charmbracelet/x/ansi/width.go deleted file mode 100644 index cc08581..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/width.go +++ /dev/null @@ -1,113 +0,0 @@ -package ansi - -import ( - "bytes" - - "github.com/charmbracelet/x/ansi/parser" - "github.com/mattn/go-runewidth" - "github.com/rivo/uniseg" -) - -// Strip removes ANSI escape codes from a string. -func Strip(s string) string { - var ( - buf bytes.Buffer // buffer for collecting printable characters - ri int // rune index - rw int // rune width - pstate = parser.GroundState // initial state - ) - - // This implements a subset of the Parser to only collect runes and - // printable characters. - for i := range len(s) { - if pstate == parser.Utf8State { - // During this state, collect rw bytes to form a valid rune in the - // buffer. After getting all the rune bytes into the buffer, - // transition to GroundState and reset the counters. - buf.WriteByte(s[i]) - ri++ - if ri < rw { - continue - } - pstate = parser.GroundState - ri = 0 - rw = 0 - continue - } - - state, action := parser.Table.Transition(pstate, s[i]) - switch action { - case parser.CollectAction: - if state == parser.Utf8State { - // This action happens when we transition to the Utf8State. - rw = utf8ByteLen(s[i]) - buf.WriteByte(s[i]) - ri++ - } - case parser.PrintAction, parser.ExecuteAction: - // collects printable ASCII and non-printable characters - buf.WriteByte(s[i]) - } - - // Transition to the next state. - // The Utf8State is managed separately above. - if pstate != parser.Utf8State { - pstate = state - } - } - - return buf.String() -} - -// StringWidth returns the width of a string in cells. This is the number of -// cells that the string will occupy when printed in a terminal. ANSI escape -// codes are ignored and wide characters (such as East Asians and emojis) are -// accounted for. -// This treats the text as a sequence of grapheme clusters. -func StringWidth(s string) int { - return stringWidth(GraphemeWidth, s) -} - -// StringWidthWc returns the width of a string in cells. This is the number of -// cells that the string will occupy when printed in a terminal. ANSI escape -// codes are ignored and wide characters (such as East Asians and emojis) are -// accounted for. -// This treats the text as a sequence of wide characters and runes. -func StringWidthWc(s string) int { - return stringWidth(WcWidth, s) -} - -func stringWidth(m Method, s string) int { - if s == "" { - return 0 - } - - var ( - pstate = parser.GroundState // initial state - cluster string - width int - ) - - for i := 0; i < len(s); i++ { - state, action := parser.Table.Transition(pstate, s[i]) - if state == parser.Utf8State { - var w int - cluster, _, w, _ = uniseg.FirstGraphemeClusterInString(s[i:], -1) - if m == WcWidth { - w = runewidth.StringWidth(cluster) - } - width += w - i += len(cluster) - 1 - pstate = parser.GroundState - continue - } - - if action == parser.PrintAction { - width++ - } - - pstate = state - } - - return width -} diff --git a/vendor/github.com/charmbracelet/x/ansi/winop.go b/vendor/github.com/charmbracelet/x/ansi/winop.go deleted file mode 100644 index 0238780..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/winop.go +++ /dev/null @@ -1,53 +0,0 @@ -package ansi - -import ( - "strconv" - "strings" -) - -const ( - // ResizeWindowWinOp is a window operation that resizes the terminal - // window. - ResizeWindowWinOp = 4 - - // RequestWindowSizeWinOp is a window operation that requests a report of - // the size of the terminal window in pixels. The response is in the form: - // CSI 4 ; height ; width t - RequestWindowSizeWinOp = 14 - - // RequestCellSizeWinOp is a window operation that requests a report of - // the size of the terminal cell size in pixels. The response is in the form: - // CSI 6 ; height ; width t - RequestCellSizeWinOp = 16 -) - -// WindowOp (XTWINOPS) is a sequence that manipulates the terminal window. -// -// CSI Ps ; Ps ; Ps t -// -// Ps is a semicolon-separated list of parameters. -// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character-lparen-s-rparen:CSI-Ps;Ps;Ps-t.1EB0 -func WindowOp(p int, ps ...int) string { - if p <= 0 { - return "" - } - - if len(ps) == 0 { - return "\x1b[" + strconv.Itoa(p) + "t" - } - - params := make([]string, 0, len(ps)+1) - params = append(params, strconv.Itoa(p)) - for _, p := range ps { - if p >= 0 { - params = append(params, strconv.Itoa(p)) - } - } - - return "\x1b[" + strings.Join(params, ";") + "t" -} - -// XTWINOPS is an alias for [WindowOp]. -func XTWINOPS(p int, ps ...int) string { - return WindowOp(p, ps...) -} diff --git a/vendor/github.com/charmbracelet/x/ansi/wrap.go b/vendor/github.com/charmbracelet/x/ansi/wrap.go deleted file mode 100644 index 253e123..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/wrap.go +++ /dev/null @@ -1,474 +0,0 @@ -package ansi - -import ( - "bytes" - "unicode" - "unicode/utf8" - - "github.com/charmbracelet/x/ansi/parser" - "github.com/mattn/go-runewidth" - "github.com/rivo/uniseg" -) - -// nbsp is a non-breaking space. -const nbsp = 0xA0 - -// Hardwrap wraps a string or a block of text to a given line length, breaking -// word boundaries. This will preserve ANSI escape codes and will account for -// wide-characters in the string. -// When preserveSpace is true, spaces at the beginning of a line will be -// preserved. -// This treats the text as a sequence of graphemes. -func Hardwrap(s string, limit int, preserveSpace bool) string { - return hardwrap(GraphemeWidth, s, limit, preserveSpace) -} - -// HardwrapWc wraps a string or a block of text to a given line length, breaking -// word boundaries. This will preserve ANSI escape codes and will account for -// wide-characters in the string. -// When preserveSpace is true, spaces at the beginning of a line will be -// preserved. -// This treats the text as a sequence of wide characters and runes. -func HardwrapWc(s string, limit int, preserveSpace bool) string { - return hardwrap(WcWidth, s, limit, preserveSpace) -} - -func hardwrap(m Method, s string, limit int, preserveSpace bool) string { - if limit < 1 { - return s - } - - var ( - cluster []byte - buf bytes.Buffer - curWidth int - forceNewline bool - pstate = parser.GroundState // initial state - b = []byte(s) - ) - - addNewline := func() { - buf.WriteByte('\n') - curWidth = 0 - } - - i := 0 - for i < len(b) { - state, action := parser.Table.Transition(pstate, b[i]) - if state == parser.Utf8State { //nolint:nestif - var width int - cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) - if m == WcWidth { - width = runewidth.StringWidth(string(cluster)) - } - i += len(cluster) - - if curWidth+width > limit { - addNewline() - } - if !preserveSpace && curWidth == 0 && len(cluster) <= 4 { - // Skip spaces at the beginning of a line - if r, _ := utf8.DecodeRune(cluster); r != utf8.RuneError && unicode.IsSpace(r) { - pstate = parser.GroundState - continue - } - } - - buf.Write(cluster) - curWidth += width - pstate = parser.GroundState - continue - } - - switch action { - case parser.PrintAction, parser.ExecuteAction: - if b[i] == '\n' { - addNewline() - forceNewline = false - break - } - - if curWidth+1 > limit { - addNewline() - forceNewline = true - } - - // Skip spaces at the beginning of a line - if curWidth == 0 { - if !preserveSpace && forceNewline && unicode.IsSpace(rune(b[i])) { - break - } - forceNewline = false - } - - buf.WriteByte(b[i]) - if action == parser.PrintAction { - curWidth++ - } - default: - buf.WriteByte(b[i]) - } - - // We manage the UTF8 state separately manually above. - if pstate != parser.Utf8State { - pstate = state - } - i++ - } - - return buf.String() -} - -// Wordwrap wraps a string or a block of text to a given line length, not -// breaking word boundaries. This will preserve ANSI escape codes and will -// account for wide-characters in the string. -// The breakpoints string is a list of characters that are considered -// breakpoints for word wrapping. A hyphen (-) is always considered a -// breakpoint. -// -// Note: breakpoints must be a string of 1-cell wide rune characters. -// -// This treats the text as a sequence of graphemes. -func Wordwrap(s string, limit int, breakpoints string) string { - return wordwrap(GraphemeWidth, s, limit, breakpoints) -} - -// WordwrapWc wraps a string or a block of text to a given line length, not -// breaking word boundaries. This will preserve ANSI escape codes and will -// account for wide-characters in the string. -// The breakpoints string is a list of characters that are considered -// breakpoints for word wrapping. A hyphen (-) is always considered a -// breakpoint. -// -// Note: breakpoints must be a string of 1-cell wide rune characters. -// -// This treats the text as a sequence of wide characters and runes. -func WordwrapWc(s string, limit int, breakpoints string) string { - return wordwrap(WcWidth, s, limit, breakpoints) -} - -func wordwrap(m Method, s string, limit int, breakpoints string) string { - if limit < 1 { - return s - } - - var ( - cluster []byte - buf bytes.Buffer - word bytes.Buffer - space bytes.Buffer - curWidth int - wordLen int - pstate = parser.GroundState // initial state - b = []byte(s) - ) - - addSpace := func() { - curWidth += space.Len() - buf.Write(space.Bytes()) - space.Reset() - } - - addWord := func() { - if word.Len() == 0 { - return - } - - addSpace() - curWidth += wordLen - buf.Write(word.Bytes()) - word.Reset() - wordLen = 0 - } - - addNewline := func() { - buf.WriteByte('\n') - curWidth = 0 - space.Reset() - } - - i := 0 - for i < len(b) { - state, action := parser.Table.Transition(pstate, b[i]) - if state == parser.Utf8State { //nolint:nestif - var width int - cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) - if m == WcWidth { - width = runewidth.StringWidth(string(cluster)) - } - i += len(cluster) - - r, _ := utf8.DecodeRune(cluster) - if r != utf8.RuneError && unicode.IsSpace(r) && r != nbsp { - addWord() - space.WriteRune(r) - } else if bytes.ContainsAny(cluster, breakpoints) { - addSpace() - addWord() - buf.Write(cluster) - curWidth++ - } else { - word.Write(cluster) - wordLen += width - if curWidth+space.Len()+wordLen > limit && - wordLen < limit { - addNewline() - } - } - - pstate = parser.GroundState - continue - } - - switch action { - case parser.PrintAction, parser.ExecuteAction: - r := rune(b[i]) - switch { - case r == '\n': - if wordLen == 0 { - if curWidth+space.Len() > limit { - curWidth = 0 - } else { - buf.Write(space.Bytes()) - } - space.Reset() - } - - addWord() - addNewline() - case unicode.IsSpace(r): - addWord() - space.WriteByte(b[i]) - case r == '-': - fallthrough - case runeContainsAny(r, breakpoints): - addSpace() - addWord() - buf.WriteByte(b[i]) - curWidth++ - default: - word.WriteByte(b[i]) - wordLen++ - if curWidth+space.Len()+wordLen > limit && - wordLen < limit { - addNewline() - } - } - - default: - word.WriteByte(b[i]) - } - - // We manage the UTF8 state separately manually above. - if pstate != parser.Utf8State { - pstate = state - } - i++ - } - - addWord() - - return buf.String() -} - -// Wrap wraps a string or a block of text to a given line length, breaking word -// boundaries if necessary. This will preserve ANSI escape codes and will -// account for wide-characters in the string. The breakpoints string is a list -// of characters that are considered breakpoints for word wrapping. A hyphen -// (-) is always considered a breakpoint. -// -// Note: breakpoints must be a string of 1-cell wide rune characters. -// -// This treats the text as a sequence of graphemes. -func Wrap(s string, limit int, breakpoints string) string { - return wrap(GraphemeWidth, s, limit, breakpoints) -} - -// WrapWc wraps a string or a block of text to a given line length, breaking word -// boundaries if necessary. This will preserve ANSI escape codes and will -// account for wide-characters in the string. The breakpoints string is a list -// of characters that are considered breakpoints for word wrapping. A hyphen -// (-) is always considered a breakpoint. -// -// Note: breakpoints must be a string of 1-cell wide rune characters. -// -// This treats the text as a sequence of wide characters and runes. -func WrapWc(s string, limit int, breakpoints string) string { - return wrap(WcWidth, s, limit, breakpoints) -} - -func wrap(m Method, s string, limit int, breakpoints string) string { - if limit < 1 { - return s - } - - var ( - cluster []byte - buf bytes.Buffer - word bytes.Buffer - space bytes.Buffer - spaceWidth int // width of the space buffer - curWidth int // written width of the line - wordLen int // word buffer len without ANSI escape codes - pstate = parser.GroundState // initial state - b = []byte(s) - ) - - addSpace := func() { - curWidth += spaceWidth - buf.Write(space.Bytes()) - space.Reset() - spaceWidth = 0 - } - - addWord := func() { - if word.Len() == 0 { - return - } - - addSpace() - curWidth += wordLen - buf.Write(word.Bytes()) - word.Reset() - wordLen = 0 - } - - addNewline := func() { - buf.WriteByte('\n') - curWidth = 0 - space.Reset() - spaceWidth = 0 - } - - i := 0 - for i < len(b) { - state, action := parser.Table.Transition(pstate, b[i]) - if state == parser.Utf8State { //nolint:nestif - var width int - cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) - if m == WcWidth { - width = runewidth.StringWidth(string(cluster)) - } - i += len(cluster) - - r, _ := utf8.DecodeRune(cluster) - switch { - case r != utf8.RuneError && unicode.IsSpace(r) && r != nbsp: // nbsp is a non-breaking space - addWord() - space.WriteRune(r) - spaceWidth += width - case bytes.ContainsAny(cluster, breakpoints): - addSpace() - if curWidth+wordLen+width > limit { - word.Write(cluster) - wordLen += width - } else { - addWord() - buf.Write(cluster) - curWidth += width - } - default: - if wordLen+width > limit { - // Hardwrap the word if it's too long - addWord() - } - - word.Write(cluster) - wordLen += width - - if curWidth+wordLen+spaceWidth > limit { - addNewline() - } - } - - pstate = parser.GroundState - continue - } - - switch action { - case parser.PrintAction, parser.ExecuteAction: - switch r := rune(b[i]); { - case r == '\n': - if wordLen == 0 { - if curWidth+spaceWidth > limit { - curWidth = 0 - } else { - // preserve whitespaces - buf.Write(space.Bytes()) - } - space.Reset() - spaceWidth = 0 - } - - addWord() - addNewline() - case unicode.IsSpace(r): - addWord() - space.WriteRune(r) - spaceWidth++ - case r == '-': - fallthrough - case runeContainsAny(r, breakpoints): - addSpace() - if curWidth+wordLen >= limit { - // We can't fit the breakpoint in the current line, treat - // it as part of the word. - word.WriteRune(r) - wordLen++ - } else { - addWord() - buf.WriteRune(r) - curWidth++ - } - default: - if curWidth == limit { - addNewline() - } - word.WriteRune(r) - wordLen++ - - if wordLen == limit { - // Hardwrap the word if it's too long - addWord() - } - - if curWidth+wordLen+spaceWidth > limit { - addNewline() - } - } - - default: - word.WriteByte(b[i]) - } - - // We manage the UTF8 state separately manually above. - if pstate != parser.Utf8State { - pstate = state - } - i++ - } - - if wordLen == 0 { - if curWidth+spaceWidth > limit { - curWidth = 0 - } else { - // preserve whitespaces - buf.Write(space.Bytes()) - } - space.Reset() - spaceWidth = 0 - } - - addWord() - - return buf.String() -} - -func runeContainsAny(r rune, s string) bool { - for _, c := range s { - if c == r { - return true - } - } - return false -} diff --git a/vendor/github.com/charmbracelet/x/ansi/xterm.go b/vendor/github.com/charmbracelet/x/ansi/xterm.go deleted file mode 100644 index 83fd4bd..0000000 --- a/vendor/github.com/charmbracelet/x/ansi/xterm.go +++ /dev/null @@ -1,138 +0,0 @@ -package ansi - -import "strconv" - -// KeyModifierOptions (XTMODKEYS) sets/resets xterm key modifier options. -// -// Default is 0. -// -// CSI > Pp m -// CSI > Pp ; Pv m -// -// If Pv is omitted, the resource is reset to its initial value. -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ -func KeyModifierOptions(p int, vs ...int) string { - var pp, pv string - if p > 0 { - pp = strconv.Itoa(p) - } - - if len(vs) == 0 { - return "\x1b[>" + strconv.Itoa(p) + "m" - } - - v := vs[0] - if v > 0 { - pv = strconv.Itoa(v) - return "\x1b[>" + pp + ";" + pv + "m" - } - - return "\x1b[>" + pp + "m" -} - -// XTMODKEYS is an alias for [KeyModifierOptions]. -func XTMODKEYS(p int, vs ...int) string { - return KeyModifierOptions(p, vs...) -} - -// SetKeyModifierOptions sets xterm key modifier options. -// This is an alias for [KeyModifierOptions]. -func SetKeyModifierOptions(pp int, pv int) string { - return KeyModifierOptions(pp, pv) -} - -// ResetKeyModifierOptions resets xterm key modifier options. -// This is an alias for [KeyModifierOptions]. -func ResetKeyModifierOptions(pp int) string { - return KeyModifierOptions(pp) -} - -// QueryKeyModifierOptions (XTQMODKEYS) requests xterm key modifier options. -// -// Default is 0. -// -// CSI ? Pp m -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ -func QueryKeyModifierOptions(pp int) string { - var p string - if pp > 0 { - p = strconv.Itoa(pp) - } - return "\x1b[?" + p + "m" -} - -// XTQMODKEYS is an alias for [QueryKeyModifierOptions]. -func XTQMODKEYS(pp int) string { - return QueryKeyModifierOptions(pp) -} - -// Modify Other Keys (modifyOtherKeys) is an xterm feature that allows the -// terminal to modify the behavior of certain keys to send different escape -// sequences when pressed. -// -// See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys -const ( - SetModifyOtherKeys1 = "\x1b[>4;1m" - SetModifyOtherKeys2 = "\x1b[>4;2m" - ResetModifyOtherKeys = "\x1b[>4m" - QueryModifyOtherKeys = "\x1b[?4m" -) - -// ModifyOtherKeys returns a sequence that sets XTerm modifyOtherKeys mode. -// The mode argument specifies the mode to set. -// -// 0: Disable modifyOtherKeys mode. -// 1: Enable modifyOtherKeys mode 1. -// 2: Enable modifyOtherKeys mode 2. -// -// CSI > 4 ; mode m -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ -// See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys -// -// Deprecated: use [SetModifyOtherKeys1] or [SetModifyOtherKeys2] instead. -func ModifyOtherKeys(mode int) string { - return "\x1b[>4;" + strconv.Itoa(mode) + "m" -} - -// DisableModifyOtherKeys disables the modifyOtherKeys mode. -// -// CSI > 4 ; 0 m -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ -// See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys -// -// Deprecated: use [ResetModifyOtherKeys] instead. -const DisableModifyOtherKeys = "\x1b[>4;0m" - -// EnableModifyOtherKeys1 enables the modifyOtherKeys mode 1. -// -// CSI > 4 ; 1 m -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ -// See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys -// -// Deprecated: use [SetModifyOtherKeys1] instead. -const EnableModifyOtherKeys1 = "\x1b[>4;1m" - -// EnableModifyOtherKeys2 enables the modifyOtherKeys mode 2. -// -// CSI > 4 ; 2 m -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ -// See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys -// -// Deprecated: use [SetModifyOtherKeys2] instead. -const EnableModifyOtherKeys2 = "\x1b[>4;2m" - -// RequestModifyOtherKeys requests the modifyOtherKeys mode. -// -// CSI ? 4 m -// -// See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ -// See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys -// -// Deprecated: use [QueryModifyOtherKeys] instead. -const RequestModifyOtherKeys = "\x1b[?4m" diff --git a/vendor/github.com/charmbracelet/x/cellbuf/LICENSE b/vendor/github.com/charmbracelet/x/cellbuf/LICENSE deleted file mode 100644 index 65a5654..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Charmbracelet, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/charmbracelet/x/cellbuf/buffer.go b/vendor/github.com/charmbracelet/x/cellbuf/buffer.go deleted file mode 100644 index 790d1f7..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/buffer.go +++ /dev/null @@ -1,473 +0,0 @@ -package cellbuf - -import ( - "strings" - - "github.com/mattn/go-runewidth" - "github.com/rivo/uniseg" -) - -// NewCell returns a new cell. This is a convenience function that initializes a -// new cell with the given content. The cell's width is determined by the -// content using [runewidth.RuneWidth]. -// This will only account for the first combined rune in the content. If the -// content is empty, it will return an empty cell with a width of 0. -func NewCell(r rune, comb ...rune) (c *Cell) { - c = new(Cell) - c.Rune = r - c.Width = runewidth.RuneWidth(r) - for _, r := range comb { - if runewidth.RuneWidth(r) > 0 { - break - } - c.Comb = append(c.Comb, r) - } - c.Comb = comb - c.Width = runewidth.StringWidth(string(append([]rune{r}, comb...))) - return -} - -// NewCellString returns a new cell with the given string content. This is a -// convenience function that initializes a new cell with the given content. The -// cell's width is determined by the content using [runewidth.StringWidth]. -// This will only use the first combined rune in the string. If the string is -// empty, it will return an empty cell with a width of 0. -func NewCellString(s string) (c *Cell) { - c = new(Cell) - for i, r := range s { - if i == 0 { - c.Rune = r - // We only care about the first rune's width - c.Width = runewidth.RuneWidth(r) - } else { - if runewidth.RuneWidth(r) > 0 { - break - } - c.Comb = append(c.Comb, r) - } - } - return -} - -// NewGraphemeCell returns a new cell. This is a convenience function that -// initializes a new cell with the given content. The cell's width is determined -// by the content using [uniseg.FirstGraphemeClusterInString]. -// This is used when the content is a grapheme cluster i.e. a sequence of runes -// that form a single visual unit. -// This will only return the first grapheme cluster in the string. If the -// string is empty, it will return an empty cell with a width of 0. -func NewGraphemeCell(s string) (c *Cell) { - g, _, w, _ := uniseg.FirstGraphemeClusterInString(s, -1) - return newGraphemeCell(g, w) -} - -func newGraphemeCell(s string, w int) (c *Cell) { - c = new(Cell) - c.Width = w - for i, r := range s { - if i == 0 { - c.Rune = r - } else { - c.Comb = append(c.Comb, r) - } - } - return -} - -// Line represents a line in the terminal. -// A nil cell represents an blank cell, a cell with a space character and a -// width of 1. -// If a cell has no content and a width of 0, it is a placeholder for a wide -// cell. -type Line []*Cell - -// Width returns the width of the line. -func (l Line) Width() int { - return len(l) -} - -// Len returns the length of the line. -func (l Line) Len() int { - return len(l) -} - -// String returns the string representation of the line. Any trailing spaces -// are removed. -func (l Line) String() (s string) { - for _, c := range l { - if c == nil { - s += " " - } else if c.Empty() { - continue - } else { - s += c.String() - } - } - s = strings.TrimRight(s, " ") - return -} - -// At returns the cell at the given x position. -// If the cell does not exist, it returns nil. -func (l Line) At(x int) *Cell { - if x < 0 || x >= len(l) { - return nil - } - - c := l[x] - if c == nil { - newCell := BlankCell - return &newCell - } - - return c -} - -// Set sets the cell at the given x position. If a wide cell is given, it will -// set the cell and the following cells to [EmptyCell]. It returns true if the -// cell was set. -func (l Line) Set(x int, c *Cell) bool { - return l.set(x, c, true) -} - -func (l Line) set(x int, c *Cell, clone bool) bool { - width := l.Width() - if x < 0 || x >= width { - return false - } - - // When a wide cell is partially overwritten, we need - // to fill the rest of the cell with space cells to - // avoid rendering issues. - prev := l.At(x) - if prev != nil && prev.Width > 1 { - // Writing to the first wide cell - for j := 0; j < prev.Width && x+j < l.Width(); j++ { - l[x+j] = prev.Clone().Blank() - } - } else if prev != nil && prev.Width == 0 { - // Writing to wide cell placeholders - for j := 1; j < maxCellWidth && x-j >= 0; j++ { - wide := l.At(x - j) - if wide != nil && wide.Width > 1 && j < wide.Width { - for k := 0; k < wide.Width; k++ { - l[x-j+k] = wide.Clone().Blank() - } - break - } - } - } - - if clone && c != nil { - // Clone the cell if not nil. - c = c.Clone() - } - - if c != nil && x+c.Width > width { - // If the cell is too wide, we write blanks with the same style. - for i := 0; i < c.Width && x+i < width; i++ { - l[x+i] = c.Clone().Blank() - } - } else { - l[x] = c - - // Mark wide cells with an empty cell zero width - // We set the wide cell down below - if c != nil && c.Width > 1 { - for j := 1; j < c.Width && x+j < l.Width(); j++ { - var wide Cell - l[x+j] = &wide - } - } - } - - return true -} - -// Buffer is a 2D grid of cells representing a screen or terminal. -type Buffer struct { - // Lines holds the lines of the buffer. - Lines []Line -} - -// NewBuffer creates a new buffer with the given width and height. -// This is a convenience function that initializes a new buffer and resizes it. -func NewBuffer(width int, height int) *Buffer { - b := new(Buffer) - b.Resize(width, height) - return b -} - -// String returns the string representation of the buffer. -func (b *Buffer) String() (s string) { - for i, l := range b.Lines { - s += l.String() - if i < len(b.Lines)-1 { - s += "\r\n" - } - } - return -} - -// Line returns a pointer to the line at the given y position. -// If the line does not exist, it returns nil. -func (b *Buffer) Line(y int) Line { - if y < 0 || y >= len(b.Lines) { - return nil - } - return b.Lines[y] -} - -// Cell implements Screen. -func (b *Buffer) Cell(x int, y int) *Cell { - if y < 0 || y >= len(b.Lines) { - return nil - } - return b.Lines[y].At(x) -} - -// maxCellWidth is the maximum width a terminal cell can get. -const maxCellWidth = 4 - -// SetCell sets the cell at the given x, y position. -func (b *Buffer) SetCell(x, y int, c *Cell) bool { - return b.setCell(x, y, c, true) -} - -// setCell sets the cell at the given x, y position. This will always clone and -// allocates a new cell if c is not nil. -func (b *Buffer) setCell(x, y int, c *Cell, clone bool) bool { - if y < 0 || y >= len(b.Lines) { - return false - } - return b.Lines[y].set(x, c, clone) -} - -// Height implements Screen. -func (b *Buffer) Height() int { - return len(b.Lines) -} - -// Width implements Screen. -func (b *Buffer) Width() int { - if len(b.Lines) == 0 { - return 0 - } - return b.Lines[0].Width() -} - -// Bounds returns the bounds of the buffer. -func (b *Buffer) Bounds() Rectangle { - return Rect(0, 0, b.Width(), b.Height()) -} - -// Resize resizes the buffer to the given width and height. -func (b *Buffer) Resize(width int, height int) { - if width == 0 || height == 0 { - b.Lines = nil - return - } - - if width > b.Width() { - line := make(Line, width-b.Width()) - for i := range b.Lines { - b.Lines[i] = append(b.Lines[i], line...) - } - } else if width < b.Width() { - for i := range b.Lines { - b.Lines[i] = b.Lines[i][:width] - } - } - - if height > len(b.Lines) { - for i := len(b.Lines); i < height; i++ { - b.Lines = append(b.Lines, make(Line, width)) - } - } else if height < len(b.Lines) { - b.Lines = b.Lines[:height] - } -} - -// FillRect fills the buffer with the given cell and rectangle. -func (b *Buffer) FillRect(c *Cell, rect Rectangle) { - cellWidth := 1 - if c != nil && c.Width > 1 { - cellWidth = c.Width - } - for y := rect.Min.Y; y < rect.Max.Y; y++ { - for x := rect.Min.X; x < rect.Max.X; x += cellWidth { - b.setCell(x, y, c, false) //nolint:errcheck - } - } -} - -// Fill fills the buffer with the given cell and rectangle. -func (b *Buffer) Fill(c *Cell) { - b.FillRect(c, b.Bounds()) -} - -// Clear clears the buffer with space cells and rectangle. -func (b *Buffer) Clear() { - b.ClearRect(b.Bounds()) -} - -// ClearRect clears the buffer with space cells within the specified -// rectangles. Only cells within the rectangle's bounds are affected. -func (b *Buffer) ClearRect(rect Rectangle) { - b.FillRect(nil, rect) -} - -// InsertLine inserts n lines at the given line position, with the given -// optional cell, within the specified rectangles. If no rectangles are -// specified, it inserts lines in the entire buffer. Only cells within the -// rectangle's horizontal bounds are affected. Lines are pushed out of the -// rectangle bounds and lost. This follows terminal [ansi.IL] behavior. -// It returns the pushed out lines. -func (b *Buffer) InsertLine(y, n int, c *Cell) { - b.InsertLineRect(y, n, c, b.Bounds()) -} - -// InsertLineRect inserts new lines at the given line position, with the -// given optional cell, within the rectangle bounds. Only cells within the -// rectangle's horizontal bounds are affected. Lines are pushed out of the -// rectangle bounds and lost. This follows terminal [ansi.IL] behavior. -func (b *Buffer) InsertLineRect(y, n int, c *Cell, rect Rectangle) { - if n <= 0 || y < rect.Min.Y || y >= rect.Max.Y || y >= b.Height() { - return - } - - // Limit number of lines to insert to available space - if y+n > rect.Max.Y { - n = rect.Max.Y - y - } - - // Move existing lines down within the bounds - for i := rect.Max.Y - 1; i >= y+n; i-- { - for x := rect.Min.X; x < rect.Max.X; x++ { - // We don't need to clone c here because we're just moving lines down. - b.setCell(x, i, b.Lines[i-n][x], false) - } - } - - // Clear the newly inserted lines within bounds - for i := y; i < y+n; i++ { - for x := rect.Min.X; x < rect.Max.X; x++ { - b.setCell(x, i, c, true) - } - } -} - -// DeleteLineRect deletes lines at the given line position, with the given -// optional cell, within the rectangle bounds. Only cells within the -// rectangle's bounds are affected. Lines are shifted up within the bounds and -// new blank lines are created at the bottom. This follows terminal [ansi.DL] -// behavior. -func (b *Buffer) DeleteLineRect(y, n int, c *Cell, rect Rectangle) { - if n <= 0 || y < rect.Min.Y || y >= rect.Max.Y || y >= b.Height() { - return - } - - // Limit deletion count to available space in scroll region - if n > rect.Max.Y-y { - n = rect.Max.Y - y - } - - // Shift cells up within the bounds - for dst := y; dst < rect.Max.Y-n; dst++ { - src := dst + n - for x := rect.Min.X; x < rect.Max.X; x++ { - // We don't need to clone c here because we're just moving cells up. - // b.lines[dst][x] = b.lines[src][x] - b.setCell(x, dst, b.Lines[src][x], false) - } - } - - // Fill the bottom n lines with blank cells - for i := rect.Max.Y - n; i < rect.Max.Y; i++ { - for x := rect.Min.X; x < rect.Max.X; x++ { - b.setCell(x, i, c, true) - } - } -} - -// DeleteLine deletes n lines at the given line position, with the given -// optional cell, within the specified rectangles. If no rectangles are -// specified, it deletes lines in the entire buffer. -func (b *Buffer) DeleteLine(y, n int, c *Cell) { - b.DeleteLineRect(y, n, c, b.Bounds()) -} - -// InsertCell inserts new cells at the given position, with the given optional -// cell, within the specified rectangles. If no rectangles are specified, it -// inserts cells in the entire buffer. This follows terminal [ansi.ICH] -// behavior. -func (b *Buffer) InsertCell(x, y, n int, c *Cell) { - b.InsertCellRect(x, y, n, c, b.Bounds()) -} - -// InsertCellRect inserts new cells at the given position, with the given -// optional cell, within the rectangle bounds. Only cells within the -// rectangle's bounds are affected, following terminal [ansi.ICH] behavior. -func (b *Buffer) InsertCellRect(x, y, n int, c *Cell, rect Rectangle) { - if n <= 0 || y < rect.Min.Y || y >= rect.Max.Y || y >= b.Height() || - x < rect.Min.X || x >= rect.Max.X || x >= b.Width() { - return - } - - // Limit number of cells to insert to available space - if x+n > rect.Max.X { - n = rect.Max.X - x - } - - // Move existing cells within rectangle bounds to the right - for i := rect.Max.X - 1; i >= x+n && i-n >= rect.Min.X; i-- { - // We don't need to clone c here because we're just moving cells to the - // right. - // b.lines[y][i] = b.lines[y][i-n] - b.setCell(i, y, b.Lines[y][i-n], false) - } - - // Clear the newly inserted cells within rectangle bounds - for i := x; i < x+n && i < rect.Max.X; i++ { - b.setCell(i, y, c, true) - } -} - -// DeleteCell deletes cells at the given position, with the given optional -// cell, within the specified rectangles. If no rectangles are specified, it -// deletes cells in the entire buffer. This follows terminal [ansi.DCH] -// behavior. -func (b *Buffer) DeleteCell(x, y, n int, c *Cell) { - b.DeleteCellRect(x, y, n, c, b.Bounds()) -} - -// DeleteCellRect deletes cells at the given position, with the given -// optional cell, within the rectangle bounds. Only cells within the -// rectangle's bounds are affected, following terminal [ansi.DCH] behavior. -func (b *Buffer) DeleteCellRect(x, y, n int, c *Cell, rect Rectangle) { - if n <= 0 || y < rect.Min.Y || y >= rect.Max.Y || y >= b.Height() || - x < rect.Min.X || x >= rect.Max.X || x >= b.Width() { - return - } - - // Calculate how many positions we can actually delete - remainingCells := rect.Max.X - x - if n > remainingCells { - n = remainingCells - } - - // Shift the remaining cells to the left - for i := x; i < rect.Max.X-n; i++ { - if i+n < rect.Max.X { - // We don't need to clone c here because we're just moving cells to - // the left. - // b.lines[y][i] = b.lines[y][i+n] - b.setCell(i, y, b.Lines[y][i+n], false) - } - } - - // Fill the vacated positions with the given cell - for i := rect.Max.X - n; i < rect.Max.X; i++ { - b.setCell(i, y, c, true) - } -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/cell.go b/vendor/github.com/charmbracelet/x/cellbuf/cell.go deleted file mode 100644 index 991c919..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/cell.go +++ /dev/null @@ -1,503 +0,0 @@ -package cellbuf - -import ( - "github.com/charmbracelet/x/ansi" -) - -var ( - // BlankCell is a cell with a single space, width of 1, and no style or link. - BlankCell = Cell{Rune: ' ', Width: 1} - - // EmptyCell is just an empty cell used for comparisons and as a placeholder - // for wide cells. - EmptyCell = Cell{} -) - -// Cell represents a single cell in the terminal screen. -type Cell struct { - // The style of the cell. Nil style means no style. Zero value prints a - // reset sequence. - Style Style - - // Link is the hyperlink of the cell. - Link Link - - // Comb is the combining runes of the cell. This is nil if the cell is a - // single rune or if it's a zero width cell that is part of a wider cell. - Comb []rune - - // Width is the mono-space width of the grapheme cluster. - Width int - - // Rune is the main rune of the cell. This is zero if the cell is part of a - // wider cell. - Rune rune -} - -// Append appends runes to the cell without changing the width. This is useful -// when we want to use the cell to store escape sequences or other runes that -// don't affect the width of the cell. -func (c *Cell) Append(r ...rune) { - for i, r := range r { - if i == 0 && c.Rune == 0 { - c.Rune = r - continue - } - c.Comb = append(c.Comb, r) - } -} - -// String returns the string content of the cell excluding any styles, links, -// and escape sequences. -func (c Cell) String() string { - if c.Rune == 0 { - return "" - } - if len(c.Comb) == 0 { - return string(c.Rune) - } - return string(append([]rune{c.Rune}, c.Comb...)) -} - -// Equal returns whether the cell is equal to the other cell. -func (c *Cell) Equal(o *Cell) bool { - return o != nil && - c.Width == o.Width && - c.Rune == o.Rune && - runesEqual(c.Comb, o.Comb) && - c.Style.Equal(&o.Style) && - c.Link.Equal(&o.Link) -} - -// Empty returns whether the cell is an empty cell. An empty cell is a cell -// with a width of 0, a rune of 0, and no combining runes. -func (c Cell) Empty() bool { - return c.Width == 0 && - c.Rune == 0 && - len(c.Comb) == 0 -} - -// Reset resets the cell to the default state zero value. -func (c *Cell) Reset() { - c.Rune = 0 - c.Comb = nil - c.Width = 0 - c.Style.Reset() - c.Link.Reset() -} - -// Clear returns whether the cell consists of only attributes that don't -// affect appearance of a space character. -func (c *Cell) Clear() bool { - return c.Rune == ' ' && len(c.Comb) == 0 && c.Width == 1 && c.Style.Clear() && c.Link.Empty() -} - -// Clone returns a copy of the cell. -func (c *Cell) Clone() (n *Cell) { - n = new(Cell) - *n = *c - return -} - -// Blank makes the cell a blank cell by setting the rune to a space, comb to -// nil, and the width to 1. -func (c *Cell) Blank() *Cell { - c.Rune = ' ' - c.Comb = nil - c.Width = 1 - return c -} - -// Link represents a hyperlink in the terminal screen. -type Link struct { - URL string - Params string -} - -// String returns a string representation of the hyperlink. -func (h Link) String() string { - return h.URL -} - -// Reset resets the hyperlink to the default state zero value. -func (h *Link) Reset() { - h.URL = "" - h.Params = "" -} - -// Equal returns whether the hyperlink is equal to the other hyperlink. -func (h *Link) Equal(o *Link) bool { - return o != nil && h.URL == o.URL && h.Params == o.Params -} - -// Empty returns whether the hyperlink is empty. -func (h Link) Empty() bool { - return h.URL == "" && h.Params == "" -} - -// AttrMask is a bitmask for text attributes that can change the look of text. -// These attributes can be combined to create different styles. -type AttrMask uint8 - -// These are the available text attributes that can be combined to create -// different styles. -const ( - BoldAttr AttrMask = 1 << iota - FaintAttr - ItalicAttr - SlowBlinkAttr - RapidBlinkAttr - ReverseAttr - ConcealAttr - StrikethroughAttr - - ResetAttr AttrMask = 0 -) - -// UnderlineStyle is the style of underline to use for text. -type UnderlineStyle = ansi.UnderlineStyle - -// These are the available underline styles. -const ( - NoUnderline = ansi.NoUnderlineStyle - SingleUnderline = ansi.SingleUnderlineStyle - DoubleUnderline = ansi.DoubleUnderlineStyle - CurlyUnderline = ansi.CurlyUnderlineStyle - DottedUnderline = ansi.DottedUnderlineStyle - DashedUnderline = ansi.DashedUnderlineStyle -) - -// Style represents the Style of a cell. -type Style struct { - Fg ansi.Color - Bg ansi.Color - Ul ansi.Color - Attrs AttrMask - UlStyle UnderlineStyle -} - -// Sequence returns the ANSI sequence that sets the style. -func (s Style) Sequence() string { - if s.Empty() { - return ansi.ResetStyle - } - - var b ansi.Style - - if s.Attrs != 0 { - if s.Attrs&BoldAttr != 0 { - b = b.Bold() - } - if s.Attrs&FaintAttr != 0 { - b = b.Faint() - } - if s.Attrs&ItalicAttr != 0 { - b = b.Italic() - } - if s.Attrs&SlowBlinkAttr != 0 { - b = b.SlowBlink() - } - if s.Attrs&RapidBlinkAttr != 0 { - b = b.RapidBlink() - } - if s.Attrs&ReverseAttr != 0 { - b = b.Reverse() - } - if s.Attrs&ConcealAttr != 0 { - b = b.Conceal() - } - if s.Attrs&StrikethroughAttr != 0 { - b = b.Strikethrough() - } - } - if s.UlStyle != NoUnderline { - switch s.UlStyle { - case SingleUnderline: - b = b.Underline() - case DoubleUnderline: - b = b.DoubleUnderline() - case CurlyUnderline: - b = b.CurlyUnderline() - case DottedUnderline: - b = b.DottedUnderline() - case DashedUnderline: - b = b.DashedUnderline() - } - } - if s.Fg != nil { - b = b.ForegroundColor(s.Fg) - } - if s.Bg != nil { - b = b.BackgroundColor(s.Bg) - } - if s.Ul != nil { - b = b.UnderlineColor(s.Ul) - } - - return b.String() -} - -// DiffSequence returns the ANSI sequence that sets the style as a diff from -// another style. -func (s Style) DiffSequence(o Style) string { - if o.Empty() { - return s.Sequence() - } - - var b ansi.Style - - if !colorEqual(s.Fg, o.Fg) { - b = b.ForegroundColor(s.Fg) - } - - if !colorEqual(s.Bg, o.Bg) { - b = b.BackgroundColor(s.Bg) - } - - if !colorEqual(s.Ul, o.Ul) { - b = b.UnderlineColor(s.Ul) - } - - var ( - noBlink bool - isNormal bool - ) - - if s.Attrs != o.Attrs { - if s.Attrs&BoldAttr != o.Attrs&BoldAttr { - if s.Attrs&BoldAttr != 0 { - b = b.Bold() - } else if !isNormal { - isNormal = true - b = b.NormalIntensity() - } - } - if s.Attrs&FaintAttr != o.Attrs&FaintAttr { - if s.Attrs&FaintAttr != 0 { - b = b.Faint() - } else if !isNormal { - b = b.NormalIntensity() - } - } - if s.Attrs&ItalicAttr != o.Attrs&ItalicAttr { - if s.Attrs&ItalicAttr != 0 { - b = b.Italic() - } else { - b = b.NoItalic() - } - } - if s.Attrs&SlowBlinkAttr != o.Attrs&SlowBlinkAttr { - if s.Attrs&SlowBlinkAttr != 0 { - b = b.SlowBlink() - } else if !noBlink { - noBlink = true - b = b.NoBlink() - } - } - if s.Attrs&RapidBlinkAttr != o.Attrs&RapidBlinkAttr { - if s.Attrs&RapidBlinkAttr != 0 { - b = b.RapidBlink() - } else if !noBlink { - b = b.NoBlink() - } - } - if s.Attrs&ReverseAttr != o.Attrs&ReverseAttr { - if s.Attrs&ReverseAttr != 0 { - b = b.Reverse() - } else { - b = b.NoReverse() - } - } - if s.Attrs&ConcealAttr != o.Attrs&ConcealAttr { - if s.Attrs&ConcealAttr != 0 { - b = b.Conceal() - } else { - b = b.NoConceal() - } - } - if s.Attrs&StrikethroughAttr != o.Attrs&StrikethroughAttr { - if s.Attrs&StrikethroughAttr != 0 { - b = b.Strikethrough() - } else { - b = b.NoStrikethrough() - } - } - } - - if s.UlStyle != o.UlStyle { - b = b.UnderlineStyle(s.UlStyle) - } - - return b.String() -} - -// Equal returns true if the style is equal to the other style. -func (s *Style) Equal(o *Style) bool { - return s.Attrs == o.Attrs && - s.UlStyle == o.UlStyle && - colorEqual(s.Fg, o.Fg) && - colorEqual(s.Bg, o.Bg) && - colorEqual(s.Ul, o.Ul) -} - -func colorEqual(c, o ansi.Color) bool { - if c == nil && o == nil { - return true - } - if c == nil || o == nil { - return false - } - cr, cg, cb, ca := c.RGBA() - or, og, ob, oa := o.RGBA() - return cr == or && cg == og && cb == ob && ca == oa -} - -// Bold sets the bold attribute. -func (s *Style) Bold(v bool) *Style { - if v { - s.Attrs |= BoldAttr - } else { - s.Attrs &^= BoldAttr - } - return s -} - -// Faint sets the faint attribute. -func (s *Style) Faint(v bool) *Style { - if v { - s.Attrs |= FaintAttr - } else { - s.Attrs &^= FaintAttr - } - return s -} - -// Italic sets the italic attribute. -func (s *Style) Italic(v bool) *Style { - if v { - s.Attrs |= ItalicAttr - } else { - s.Attrs &^= ItalicAttr - } - return s -} - -// SlowBlink sets the slow blink attribute. -func (s *Style) SlowBlink(v bool) *Style { - if v { - s.Attrs |= SlowBlinkAttr - } else { - s.Attrs &^= SlowBlinkAttr - } - return s -} - -// RapidBlink sets the rapid blink attribute. -func (s *Style) RapidBlink(v bool) *Style { - if v { - s.Attrs |= RapidBlinkAttr - } else { - s.Attrs &^= RapidBlinkAttr - } - return s -} - -// Reverse sets the reverse attribute. -func (s *Style) Reverse(v bool) *Style { - if v { - s.Attrs |= ReverseAttr - } else { - s.Attrs &^= ReverseAttr - } - return s -} - -// Conceal sets the conceal attribute. -func (s *Style) Conceal(v bool) *Style { - if v { - s.Attrs |= ConcealAttr - } else { - s.Attrs &^= ConcealAttr - } - return s -} - -// Strikethrough sets the strikethrough attribute. -func (s *Style) Strikethrough(v bool) *Style { - if v { - s.Attrs |= StrikethroughAttr - } else { - s.Attrs &^= StrikethroughAttr - } - return s -} - -// UnderlineStyle sets the underline style. -func (s *Style) UnderlineStyle(style UnderlineStyle) *Style { - s.UlStyle = style - return s -} - -// Underline sets the underline attribute. -// This is a syntactic sugar for [UnderlineStyle]. -func (s *Style) Underline(v bool) *Style { - if v { - return s.UnderlineStyle(SingleUnderline) - } - return s.UnderlineStyle(NoUnderline) -} - -// Foreground sets the foreground color. -func (s *Style) Foreground(c ansi.Color) *Style { - s.Fg = c - return s -} - -// Background sets the background color. -func (s *Style) Background(c ansi.Color) *Style { - s.Bg = c - return s -} - -// UnderlineColor sets the underline color. -func (s *Style) UnderlineColor(c ansi.Color) *Style { - s.Ul = c - return s -} - -// Reset resets the style to default. -func (s *Style) Reset() *Style { - s.Fg = nil - s.Bg = nil - s.Ul = nil - s.Attrs = ResetAttr - s.UlStyle = NoUnderline - return s -} - -// Empty returns true if the style is empty. -func (s *Style) Empty() bool { - return s.Fg == nil && s.Bg == nil && s.Ul == nil && s.Attrs == ResetAttr && s.UlStyle == NoUnderline -} - -// Clear returns whether the style consists of only attributes that don't -// affect appearance of a space character. -func (s *Style) Clear() bool { - return s.UlStyle == NoUnderline && - s.Attrs&^(BoldAttr|FaintAttr|ItalicAttr|SlowBlinkAttr|RapidBlinkAttr) == 0 && - s.Fg == nil && - s.Bg == nil && - s.Ul == nil -} - -func runesEqual(a, b []rune) bool { - if len(a) != len(b) { - return false - } - for i, r := range a { - if r != b[i] { - return false - } - } - return true -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/errors.go b/vendor/github.com/charmbracelet/x/cellbuf/errors.go deleted file mode 100644 index 64258fe..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/errors.go +++ /dev/null @@ -1,6 +0,0 @@ -package cellbuf - -import "errors" - -// ErrOutOfBounds is returned when the given x, y position is out of bounds. -var ErrOutOfBounds = errors.New("out of bounds") diff --git a/vendor/github.com/charmbracelet/x/cellbuf/geom.go b/vendor/github.com/charmbracelet/x/cellbuf/geom.go deleted file mode 100644 index c12e6fb..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/geom.go +++ /dev/null @@ -1,21 +0,0 @@ -package cellbuf - -import ( - "image" -) - -// Position represents an x, y position. -type Position = image.Point - -// Pos is a shorthand for Position{X: x, Y: y}. -func Pos(x, y int) Position { - return image.Pt(x, y) -} - -// Rectange represents a rectangle. -type Rectangle = image.Rectangle - -// Rect is a shorthand for Rectangle. -func Rect(x, y, w, h int) Rectangle { - return image.Rect(x, y, x+w, y+h) -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/hardscroll.go b/vendor/github.com/charmbracelet/x/cellbuf/hardscroll.go deleted file mode 100644 index 402ac06..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/hardscroll.go +++ /dev/null @@ -1,272 +0,0 @@ -package cellbuf - -import ( - "strings" - - "github.com/charmbracelet/x/ansi" -) - -// scrollOptimize optimizes the screen to transform the old buffer into the new -// buffer. -func (s *Screen) scrollOptimize() { - height := s.newbuf.Height() - if s.oldnum == nil || len(s.oldnum) < height { - s.oldnum = make([]int, height) - } - - // Calculate the indices - s.updateHashmap() - if len(s.hashtab) < height { - return - } - - // Pass 1 - from top to bottom scrolling up - for i := 0; i < height; { - for i < height && (s.oldnum[i] == newIndex || s.oldnum[i] <= i) { - i++ - } - if i >= height { - break - } - - shift := s.oldnum[i] - i // shift > 0 - start := i - - i++ - for i < height && s.oldnum[i] != newIndex && s.oldnum[i]-i == shift { - i++ - } - end := i - 1 + shift - - if !s.scrolln(shift, start, end, height-1) { - continue - } - } - - // Pass 2 - from bottom to top scrolling down - for i := height - 1; i >= 0; { - for i >= 0 && (s.oldnum[i] == newIndex || s.oldnum[i] >= i) { - i-- - } - if i < 0 { - break - } - - shift := s.oldnum[i] - i // shift < 0 - end := i - - i-- - for i >= 0 && s.oldnum[i] != newIndex && s.oldnum[i]-i == shift { - i-- - } - - start := i + 1 - (-shift) - if !s.scrolln(shift, start, end, height-1) { - continue - } - } -} - -// scrolln scrolls the screen up by n lines. -func (s *Screen) scrolln(n, top, bot, maxY int) (v bool) { //nolint:unparam - const ( - nonDestScrollRegion = false - memoryBelow = false - ) - - blank := s.clearBlank() - if n > 0 { - // Scroll up (forward) - v = s.scrollUp(n, top, bot, 0, maxY, blank) - if !v { - s.buf.WriteString(ansi.SetTopBottomMargins(top+1, bot+1)) - - // XXX: How should we handle this in inline mode when not using alternate screen? - s.cur.X, s.cur.Y = -1, -1 - v = s.scrollUp(n, top, bot, top, bot, blank) - s.buf.WriteString(ansi.SetTopBottomMargins(1, maxY+1)) - s.cur.X, s.cur.Y = -1, -1 - } - - if !v { - v = s.scrollIdl(n, top, bot-n+1, blank) - } - - // Clear newly shifted-in lines. - if v && - (nonDestScrollRegion || (memoryBelow && bot == maxY)) { - if bot == maxY { - s.move(0, bot-n+1) - s.clearToBottom(nil) - } else { - for i := 0; i < n; i++ { - s.move(0, bot-i) - s.clearToEnd(nil, false) - } - } - } - } else if n < 0 { - // Scroll down (backward) - v = s.scrollDown(-n, top, bot, 0, maxY, blank) - if !v { - s.buf.WriteString(ansi.SetTopBottomMargins(top+1, bot+1)) - - // XXX: How should we handle this in inline mode when not using alternate screen? - s.cur.X, s.cur.Y = -1, -1 - v = s.scrollDown(-n, top, bot, top, bot, blank) - s.buf.WriteString(ansi.SetTopBottomMargins(1, maxY+1)) - s.cur.X, s.cur.Y = -1, -1 - - if !v { - v = s.scrollIdl(-n, bot+n+1, top, blank) - } - - // Clear newly shifted-in lines. - if v && - (nonDestScrollRegion || (memoryBelow && top == 0)) { - for i := 0; i < -n; i++ { - s.move(0, top+i) - s.clearToEnd(nil, false) - } - } - } - } - - if !v { - return - } - - s.scrollBuffer(s.curbuf, n, top, bot, blank) - - // shift hash values too, they can be reused - s.scrollOldhash(n, top, bot) - - return true -} - -// scrollBuffer scrolls the buffer by n lines. -func (s *Screen) scrollBuffer(b *Buffer, n, top, bot int, blank *Cell) { - if top < 0 || bot < top || bot >= b.Height() { - // Nothing to scroll - return - } - - if n < 0 { - // shift n lines downwards - limit := top - n - for line := bot; line >= limit && line >= 0 && line >= top; line-- { - copy(b.Lines[line], b.Lines[line+n]) - } - for line := top; line < limit && line <= b.Height()-1 && line <= bot; line++ { - b.FillRect(blank, Rect(0, line, b.Width(), 1)) - } - } - - if n > 0 { - // shift n lines upwards - limit := bot - n - for line := top; line <= limit && line <= b.Height()-1 && line <= bot; line++ { - copy(b.Lines[line], b.Lines[line+n]) - } - for line := bot; line > limit && line >= 0 && line >= top; line-- { - b.FillRect(blank, Rect(0, line, b.Width(), 1)) - } - } - - s.touchLine(b.Width(), b.Height(), top, bot-top+1, true) -} - -// touchLine marks the line as touched. -func (s *Screen) touchLine(width, height, y, n int, changed bool) { - if n < 0 || y < 0 || y >= height { - return // Nothing to touch - } - - for i := y; i < y+n && i < height; i++ { - if changed { - s.touch[i] = lineData{firstCell: 0, lastCell: width - 1} - } else { - delete(s.touch, i) - } - } -} - -// scrollUp scrolls the screen up by n lines. -func (s *Screen) scrollUp(n, top, bot, minY, maxY int, blank *Cell) bool { - if n == 1 && top == minY && bot == maxY { - s.move(0, bot) - s.updatePen(blank) - s.buf.WriteByte('\n') - } else if n == 1 && bot == maxY { - s.move(0, top) - s.updatePen(blank) - s.buf.WriteString(ansi.DeleteLine(1)) - } else if top == minY && bot == maxY { - if s.xtermLike { - s.move(0, bot) - } else { - s.move(0, top) - } - s.updatePen(blank) - if s.xtermLike { - s.buf.WriteString(ansi.ScrollUp(n)) - } else { - s.buf.WriteString(strings.Repeat("\n", n)) - } - } else if bot == maxY { - s.move(0, top) - s.updatePen(blank) - s.buf.WriteString(ansi.DeleteLine(n)) - } else { - return false - } - return true -} - -// scrollDown scrolls the screen down by n lines. -func (s *Screen) scrollDown(n, top, bot, minY, maxY int, blank *Cell) bool { - if n == 1 && top == minY && bot == maxY { - s.move(0, top) - s.updatePen(blank) - s.buf.WriteString(ansi.ReverseIndex) - } else if n == 1 && bot == maxY { - s.move(0, top) - s.updatePen(blank) - s.buf.WriteString(ansi.InsertLine(1)) - } else if top == minY && bot == maxY { - s.move(0, top) - s.updatePen(blank) - if s.xtermLike { - s.buf.WriteString(ansi.ScrollDown(n)) - } else { - s.buf.WriteString(strings.Repeat(ansi.ReverseIndex, n)) - } - } else if bot == maxY { - s.move(0, top) - s.updatePen(blank) - s.buf.WriteString(ansi.InsertLine(n)) - } else { - return false - } - return true -} - -// scrollIdl scrolls the screen n lines by using [ansi.DL] at del and using -// [ansi.IL] at ins. -func (s *Screen) scrollIdl(n, del, ins int, blank *Cell) bool { - if n < 0 { - return false - } - - // Delete lines - s.move(0, del) - s.updatePen(blank) - s.buf.WriteString(ansi.DeleteLine(n)) - - // Insert lines - s.move(0, ins) - s.updatePen(blank) - s.buf.WriteString(ansi.InsertLine(n)) - - return true -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/hashmap.go b/vendor/github.com/charmbracelet/x/cellbuf/hashmap.go deleted file mode 100644 index 0d25b54..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/hashmap.go +++ /dev/null @@ -1,301 +0,0 @@ -package cellbuf - -import ( - "github.com/charmbracelet/x/ansi" -) - -// hash returns the hash value of a [Line]. -func hash(l Line) (h uint64) { - for _, c := range l { - var r rune - if c == nil { - r = ansi.SP - } else { - r = c.Rune - } - h += (h << 5) + uint64(r) - } - return -} - -// hashmap represents a single [Line] hash. -type hashmap struct { - value uint64 - oldcount, newcount int - oldindex, newindex int -} - -// The value used to indicate lines created by insertions and scrolls. -const newIndex = -1 - -// updateHashmap updates the hashmap with the new hash value. -func (s *Screen) updateHashmap() { - height := s.newbuf.Height() - if len(s.oldhash) >= height && len(s.newhash) >= height { - // rehash changed lines - for i := 0; i < height; i++ { - _, ok := s.touch[i] - if ok { - s.oldhash[i] = hash(s.curbuf.Line(i)) - s.newhash[i] = hash(s.newbuf.Line(i)) - } - } - } else { - // rehash all - if len(s.oldhash) != height { - s.oldhash = make([]uint64, height) - } - if len(s.newhash) != height { - s.newhash = make([]uint64, height) - } - for i := 0; i < height; i++ { - s.oldhash[i] = hash(s.curbuf.Line(i)) - s.newhash[i] = hash(s.newbuf.Line(i)) - } - } - - s.hashtab = make([]hashmap, height*2) - for i := 0; i < height; i++ { - hashval := s.oldhash[i] - - // Find matching hash or empty slot - idx := 0 - for idx < len(s.hashtab) && s.hashtab[idx].value != 0 { - if s.hashtab[idx].value == hashval { - break - } - idx++ - } - - s.hashtab[idx].value = hashval // in case this is a new hash - s.hashtab[idx].oldcount++ - s.hashtab[idx].oldindex = i - } - for i := 0; i < height; i++ { - hashval := s.newhash[i] - - // Find matching hash or empty slot - idx := 0 - for idx < len(s.hashtab) && s.hashtab[idx].value != 0 { - if s.hashtab[idx].value == hashval { - break - } - idx++ - } - - s.hashtab[idx].value = hashval // in case this is a new hash - s.hashtab[idx].newcount++ - s.hashtab[idx].newindex = i - - s.oldnum[i] = newIndex // init old indices slice - } - - // Mark line pair corresponding to unique hash pairs. - for i := 0; i < len(s.hashtab) && s.hashtab[i].value != 0; i++ { - hsp := &s.hashtab[i] - if hsp.oldcount == 1 && hsp.newcount == 1 && hsp.oldindex != hsp.newindex { - s.oldnum[hsp.newindex] = hsp.oldindex - } - } - - s.growHunks() - - // Eliminate bad or impossible shifts. This includes removing those hunks - // which could not grow because of conflicts, as well those which are to be - // moved too far, they are likely to destroy more than carry. - for i := 0; i < height; { - var start, shift, size int - for i < height && s.oldnum[i] == newIndex { - i++ - } - if i >= height { - break - } - start = i - shift = s.oldnum[i] - i - i++ - for i < height && s.oldnum[i] != newIndex && s.oldnum[i]-i == shift { - i++ - } - size = i - start - if size < 3 || size+min(size/8, 2) < abs(shift) { - for start < i { - s.oldnum[start] = newIndex - start++ - } - } - } - - // After clearing invalid hunks, try grow the rest. - s.growHunks() -} - -// scrollOldhash -func (s *Screen) scrollOldhash(n, top, bot int) { - if len(s.oldhash) == 0 { - return - } - - size := bot - top + 1 - abs(n) - if n > 0 { - // Move existing hashes up - copy(s.oldhash[top:], s.oldhash[top+n:top+n+size]) - // Recalculate hashes for newly shifted-in lines - for i := bot; i > bot-n; i-- { - s.oldhash[i] = hash(s.curbuf.Line(i)) - } - } else { - // Move existing hashes down - copy(s.oldhash[top-n:], s.oldhash[top:top+size]) - // Recalculate hashes for newly shifted-in lines - for i := top; i < top-n; i++ { - s.oldhash[i] = hash(s.curbuf.Line(i)) - } - } -} - -func (s *Screen) growHunks() { - var ( - backLimit int // limits for cells to fill - backRefLimit int // limit for references - i int - nextHunk int - ) - - height := s.newbuf.Height() - for i < height && s.oldnum[i] == newIndex { - i++ - } - for ; i < height; i = nextHunk { - var ( - forwardLimit int - forwardRefLimit int - end int - start = i - shift = s.oldnum[i] - i - ) - - // get forward limit - i = start + 1 - for i < height && - s.oldnum[i] != newIndex && - s.oldnum[i]-i == shift { - i++ - } - - end = i - for i < height && s.oldnum[i] == newIndex { - i++ - } - - nextHunk = i - forwardLimit = i - if i >= height || s.oldnum[i] >= i { - forwardRefLimit = i - } else { - forwardRefLimit = s.oldnum[i] - } - - i = start - 1 - - // grow back - if shift < 0 { - backLimit = backRefLimit + (-shift) - } - for i >= backLimit { - if s.newhash[i] == s.oldhash[i+shift] || - s.costEffective(i+shift, i, shift < 0) { - s.oldnum[i] = i + shift - } else { - break - } - i-- - } - - i = end - // grow forward - if shift > 0 { - forwardLimit = forwardRefLimit - shift - } - for i < forwardLimit { - if s.newhash[i] == s.oldhash[i+shift] || - s.costEffective(i+shift, i, shift > 0) { - s.oldnum[i] = i + shift - } else { - break - } - i++ - } - - backLimit = i - backRefLimit = backLimit - if shift > 0 { - backRefLimit += shift - } - } -} - -// costEffective returns true if the cost of moving line 'from' to line 'to' seems to be -// cost effective. 'blank' indicates whether the line 'to' would become blank. -func (s *Screen) costEffective(from, to int, blank bool) bool { - if from == to { - return false - } - - newFrom := s.oldnum[from] - if newFrom == newIndex { - newFrom = from - } - - // On the left side of >= is the cost before moving. On the right side -- - // cost after moving. - - // Calculate costs before moving. - var costBeforeMove int - if blank { - // Cost of updating blank line at destination. - costBeforeMove = s.updateCostBlank(s.newbuf.Line(to)) - } else { - // Cost of updating exiting line at destination. - costBeforeMove = s.updateCost(s.curbuf.Line(to), s.newbuf.Line(to)) - } - - // Add cost of updating source line - costBeforeMove += s.updateCost(s.curbuf.Line(newFrom), s.newbuf.Line(from)) - - // Calculate costs after moving. - var costAfterMove int - if newFrom == from { - // Source becomes blank after move - costAfterMove = s.updateCostBlank(s.newbuf.Line(from)) - } else { - // Source gets updated from another line - costAfterMove = s.updateCost(s.curbuf.Line(newFrom), s.newbuf.Line(from)) - } - - // Add cost of moving source line to destination - costAfterMove += s.updateCost(s.curbuf.Line(from), s.newbuf.Line(to)) - - // Return true if moving is cost effective (costs less or equal) - return costBeforeMove >= costAfterMove -} - -func (s *Screen) updateCost(from, to Line) (cost int) { - var fidx, tidx int - for i := s.newbuf.Width() - 1; i > 0; i, fidx, tidx = i-1, fidx+1, tidx+1 { - if !cellEqual(from.At(fidx), to.At(tidx)) { - cost++ - } - } - return -} - -func (s *Screen) updateCostBlank(to Line) (cost int) { - var tidx int - for i := s.newbuf.Width() - 1; i > 0; i, tidx = i-1, tidx+1 { - if !cellEqual(nil, to.At(tidx)) { - cost++ - } - } - return -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/link.go b/vendor/github.com/charmbracelet/x/cellbuf/link.go deleted file mode 100644 index 112f8e8..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/link.go +++ /dev/null @@ -1,14 +0,0 @@ -package cellbuf - -import ( - "github.com/charmbracelet/colorprofile" -) - -// Convert converts a hyperlink to respect the given color profile. -func ConvertLink(h Link, p colorprofile.Profile) Link { - if p == colorprofile.NoTTY { - return Link{} - } - - return h -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/screen.go b/vendor/github.com/charmbracelet/x/cellbuf/screen.go deleted file mode 100644 index 963b9ca..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/screen.go +++ /dev/null @@ -1,1457 +0,0 @@ -package cellbuf - -import ( - "bytes" - "errors" - "io" - "os" - "strings" - "sync" - - "github.com/charmbracelet/colorprofile" - "github.com/charmbracelet/x/ansi" - "github.com/charmbracelet/x/term" -) - -// ErrInvalidDimensions is returned when the dimensions of a window are invalid -// for the operation. -var ErrInvalidDimensions = errors.New("invalid dimensions") - -// notLocal returns whether the coordinates are not considered local movement -// using the defined thresholds. -// This takes the number of columns, and the coordinates of the current and -// target positions. -func notLocal(cols, fx, fy, tx, ty int) bool { - // The typical distance for a [ansi.CUP] sequence. Anything less than this - // is considered local movement. - const longDist = 8 - 1 - return (tx > longDist) && - (tx < cols-1-longDist) && - (abs(ty-fy)+abs(tx-fx) > longDist) -} - -// relativeCursorMove returns the relative cursor movement sequence using one or two -// of the following sequences [ansi.CUU], [ansi.CUD], [ansi.CUF], [ansi.CUB], -// [ansi.VPA], [ansi.HPA]. -// When overwrite is true, this will try to optimize the sequence by using the -// screen cells values to move the cursor instead of using escape sequences. -func relativeCursorMove(s *Screen, fx, fy, tx, ty int, overwrite, useTabs, useBackspace bool) string { - var seq strings.Builder - - width, height := s.newbuf.Width(), s.newbuf.Height() - if ty != fy { - var yseq string - if s.xtermLike && !s.opts.RelativeCursor { - yseq = ansi.VerticalPositionAbsolute(ty + 1) - } - - // OPTIM: Use [ansi.LF] and [ansi.ReverseIndex] as optimizations. - - if ty > fy { - n := ty - fy - if cud := ansi.CursorDown(n); yseq == "" || len(cud) < len(yseq) { - yseq = cud - } - shouldScroll := !s.opts.AltScreen && fy+n >= s.scrollHeight - if lf := strings.Repeat("\n", n); shouldScroll || (fy+n < height && len(lf) < len(yseq)) { - // TODO: Ensure we're not unintentionally scrolling the screen down. - yseq = lf - s.scrollHeight = max(s.scrollHeight, fy+n) - } - } else if ty < fy { - n := fy - ty - if cuu := ansi.CursorUp(n); yseq == "" || len(cuu) < len(yseq) { - yseq = cuu - } - if n == 1 && fy-1 > 0 { - // TODO: Ensure we're not unintentionally scrolling the screen up. - yseq = ansi.ReverseIndex - } - } - - seq.WriteString(yseq) - } - - if tx != fx { - var xseq string - if s.xtermLike && !s.opts.RelativeCursor { - xseq = ansi.HorizontalPositionAbsolute(tx + 1) - } - - if tx > fx { - n := tx - fx - if useTabs { - var tabs int - var col int - for col = fx; s.tabs.Next(col) <= tx; col = s.tabs.Next(col) { - tabs++ - if col == s.tabs.Next(col) || col >= width-1 { - break - } - } - - if tabs > 0 { - cht := ansi.CursorHorizontalForwardTab(tabs) - tab := strings.Repeat("\t", tabs) - if false && s.xtermLike && len(cht) < len(tab) { - // TODO: The linux console and some terminals such as - // Alacritty don't support [ansi.CHT]. Enable this when - // we have a way to detect this, or after 5 years when - // we're sure everyone has updated their terminals :P - seq.WriteString(cht) - } else { - seq.WriteString(tab) - } - - n = tx - col - fx = col - } - } - - if cuf := ansi.CursorForward(n); xseq == "" || len(cuf) < len(xseq) { - xseq = cuf - } - - // If we have no attribute and style changes, overwrite is cheaper. - var ovw string - if overwrite && ty >= 0 { - for i := 0; i < n; i++ { - cell := s.newbuf.Cell(fx+i, ty) - if cell != nil && cell.Width > 0 { - i += cell.Width - 1 - if !cell.Style.Equal(&s.cur.Style) || !cell.Link.Equal(&s.cur.Link) { - overwrite = false - break - } - } - } - } - - if overwrite && ty >= 0 { - for i := 0; i < n; i++ { - cell := s.newbuf.Cell(fx+i, ty) - if cell != nil && cell.Width > 0 { - ovw += cell.String() - i += cell.Width - 1 - } else { - ovw += " " - } - } - } - - if overwrite && len(ovw) < len(xseq) { - xseq = ovw - } - } else if tx < fx { - n := fx - tx - if useTabs && s.xtermLike { - // VT100 does not support backward tabs [ansi.CBT]. - - col := fx - - var cbt int // cursor backward tabs count - for s.tabs.Prev(col) >= tx { - col = s.tabs.Prev(col) - cbt++ - if col == s.tabs.Prev(col) || col <= 0 { - break - } - } - - if cbt > 0 { - seq.WriteString(ansi.CursorBackwardTab(cbt)) - n = col - tx - } - } - - if cub := ansi.CursorBackward(n); xseq == "" || len(cub) < len(xseq) { - xseq = cub - } - - if useBackspace && n < len(xseq) { - xseq = strings.Repeat("\b", n) - } - } - - seq.WriteString(xseq) - } - - return seq.String() -} - -// moveCursor moves and returns the cursor movement sequence to move the cursor -// to the specified position. -// When overwrite is true, this will try to optimize the sequence by using the -// screen cells values to move the cursor instead of using escape sequences. -func moveCursor(s *Screen, x, y int, overwrite bool) (seq string) { - fx, fy := s.cur.X, s.cur.Y - - if !s.opts.RelativeCursor { - // Method #0: Use [ansi.CUP] if the distance is long. - seq = ansi.CursorPosition(x+1, y+1) - if fx == -1 || fy == -1 || notLocal(s.newbuf.Width(), fx, fy, x, y) { - return - } - } - - // Optimize based on options. - trials := 0 - if s.opts.HardTabs { - trials |= 2 // 0b10 in binary - } - if s.opts.Backspace { - trials |= 1 // 0b01 in binary - } - - // Try all possible combinations of hard tabs and backspace optimizations. - for i := 0; i <= trials; i++ { - // Skip combinations that are not enabled. - if i & ^trials != 0 { - continue - } - - useHardTabs := i&2 != 0 - useBackspace := i&1 != 0 - - // Method #1: Use local movement sequences. - nseq := relativeCursorMove(s, fx, fy, x, y, overwrite, useHardTabs, useBackspace) - if (i == 0 && len(seq) == 0) || len(nseq) < len(seq) { - seq = nseq - } - - // Method #2: Use [ansi.CR] and local movement sequences. - nseq = "\r" + relativeCursorMove(s, 0, fy, x, y, overwrite, useHardTabs, useBackspace) - if len(nseq) < len(seq) { - seq = nseq - } - - if !s.opts.RelativeCursor { - // Method #3: Use [ansi.CursorHomePosition] and local movement sequences. - nseq = ansi.CursorHomePosition + relativeCursorMove(s, 0, 0, x, y, overwrite, useHardTabs, useBackspace) - if len(nseq) < len(seq) { - seq = nseq - } - } - } - - return -} - -// moveCursor moves the cursor to the specified position. -func (s *Screen) moveCursor(x, y int, overwrite bool) { - if !s.opts.AltScreen && s.cur.X == -1 && s.cur.Y == -1 { - // First cursor movement in inline mode, move the cursor to the first - // column before moving to the target position. - s.buf.WriteByte('\r') //nolint:errcheck - s.cur.X, s.cur.Y = 0, 0 - } - s.buf.WriteString(moveCursor(s, x, y, overwrite)) //nolint:errcheck - s.cur.X, s.cur.Y = x, y -} - -func (s *Screen) move(x, y int) { - // XXX: Make sure we use the max height and width of the buffer in case - // we're in the middle of a resize operation. - width := max(s.newbuf.Width(), s.curbuf.Width()) - height := max(s.newbuf.Height(), s.curbuf.Height()) - - if width > 0 && x >= width { - // Handle autowrap - y += (x / width) - x %= width - } - - // XXX: Disable styles if there's any - // Some move operations such as [ansi.LF] can apply styles to the new - // cursor position, thus, we need to reset the styles before moving the - // cursor. - blank := s.clearBlank() - resetPen := y != s.cur.Y && !blank.Equal(&BlankCell) - if resetPen { - s.updatePen(nil) - } - - // Reset wrap around (phantom cursor) state - if s.atPhantom { - s.cur.X = 0 - s.buf.WriteByte('\r') //nolint:errcheck - s.atPhantom = false // reset phantom cell state - } - - // TODO: Investigate if we need to handle this case and/or if we need the - // following code. - // - // if width > 0 && s.cur.X >= width { - // l := (s.cur.X + 1) / width - // - // s.cur.Y += l - // if height > 0 && s.cur.Y >= height { - // l -= s.cur.Y - height - 1 - // } - // - // if l > 0 { - // s.cur.X = 0 - // s.buf.WriteString("\r" + strings.Repeat("\n", l)) //nolint:errcheck - // } - // } - - if height > 0 { - if s.cur.Y > height-1 { - s.cur.Y = height - 1 - } - if y > height-1 { - y = height - 1 - } - } - - if x == s.cur.X && y == s.cur.Y { - // We give up later because we need to run checks for the phantom cell - // and others before we can determine if we can give up. - return - } - - // We set the new cursor in [Screen.moveCursor]. - s.moveCursor(x, y, true) // Overwrite cells if possible -} - -// Cursor represents a terminal Cursor. -type Cursor struct { - Style - Link - Position -} - -// ScreenOptions are options for the screen. -type ScreenOptions struct { - // Term is the terminal type to use when writing to the screen. When empty, - // `$TERM` is used from [os.Getenv]. - Term string - // Profile is the color profile to use when writing to the screen. - Profile colorprofile.Profile - // RelativeCursor is whether to use relative cursor movements. This is - // useful when alt-screen is not used or when using inline mode. - RelativeCursor bool - // AltScreen is whether to use the alternate screen buffer. - AltScreen bool - // ShowCursor is whether to show the cursor. - ShowCursor bool - // HardTabs is whether to use hard tabs to optimize cursor movements. - HardTabs bool - // Backspace is whether to use backspace characters to move the cursor. - Backspace bool -} - -// lineData represents the metadata for a line. -type lineData struct { - // first and last changed cell indices - firstCell, lastCell int - // old index used for scrolling - oldIndex int //nolint:unused -} - -// Screen represents the terminal screen. -type Screen struct { - w io.Writer - buf *bytes.Buffer // buffer for writing to the screen - curbuf *Buffer // the current buffer - newbuf *Buffer // the new buffer - tabs *TabStops - touch map[int]lineData - queueAbove []string // the queue of strings to write above the screen - oldhash, newhash []uint64 // the old and new hash values for each line - hashtab []hashmap // the hashmap table - oldnum []int // old indices from previous hash - cur, saved Cursor // the current and saved cursors - opts ScreenOptions - mu sync.Mutex - method ansi.Method - scrollHeight int // keeps track of how many lines we've scrolled down (inline mode) - altScreenMode bool // whether alternate screen mode is enabled - cursorHidden bool // whether text cursor mode is enabled - clear bool // whether to force clear the screen - xtermLike bool // whether to use xterm-like optimizations, otherwise, it uses vt100 only - queuedText bool // whether we have queued non-zero width text queued up - atPhantom bool // whether the cursor is out of bounds and at a phantom cell -} - -// SetMethod sets the method used to calculate the width of cells. -func (s *Screen) SetMethod(method ansi.Method) { - s.method = method -} - -// UseBackspaces sets whether to use backspace characters to move the cursor. -func (s *Screen) UseBackspaces(v bool) { - s.opts.Backspace = v -} - -// UseHardTabs sets whether to use hard tabs to optimize cursor movements. -func (s *Screen) UseHardTabs(v bool) { - s.opts.HardTabs = v -} - -// SetColorProfile sets the color profile to use when writing to the screen. -func (s *Screen) SetColorProfile(p colorprofile.Profile) { - s.opts.Profile = p -} - -// SetRelativeCursor sets whether to use relative cursor movements. -func (s *Screen) SetRelativeCursor(v bool) { - s.opts.RelativeCursor = v -} - -// EnterAltScreen enters the alternate screen buffer. -func (s *Screen) EnterAltScreen() { - s.opts.AltScreen = true - s.clear = true - s.saved = s.cur -} - -// ExitAltScreen exits the alternate screen buffer. -func (s *Screen) ExitAltScreen() { - s.opts.AltScreen = false - s.clear = true - s.cur = s.saved -} - -// ShowCursor shows the cursor. -func (s *Screen) ShowCursor() { - s.opts.ShowCursor = true -} - -// HideCursor hides the cursor. -func (s *Screen) HideCursor() { - s.opts.ShowCursor = false -} - -// Bounds implements Window. -func (s *Screen) Bounds() Rectangle { - // Always return the new buffer bounds. - return s.newbuf.Bounds() -} - -// Cell implements Window. -func (s *Screen) Cell(x int, y int) *Cell { - return s.newbuf.Cell(x, y) -} - -// Redraw forces a full redraw of the screen. -func (s *Screen) Redraw() { - s.mu.Lock() - s.clear = true - s.mu.Unlock() -} - -// Clear clears the screen with blank cells. This is a convenience method for -// [Screen.Fill] with a nil cell. -func (s *Screen) Clear() bool { - return s.ClearRect(s.newbuf.Bounds()) -} - -// ClearRect clears the given rectangle with blank cells. This is a convenience -// method for [Screen.FillRect] with a nil cell. -func (s *Screen) ClearRect(r Rectangle) bool { - return s.FillRect(nil, r) -} - -// SetCell implements Window. -func (s *Screen) SetCell(x int, y int, cell *Cell) (v bool) { - s.mu.Lock() - defer s.mu.Unlock() - cellWidth := 1 - if cell != nil { - cellWidth = cell.Width - } - if prev := s.curbuf.Cell(x, y); !cellEqual(prev, cell) { - chg, ok := s.touch[y] - if !ok { - chg = lineData{firstCell: x, lastCell: x + cellWidth} - } else { - chg.firstCell = min(chg.firstCell, x) - chg.lastCell = max(chg.lastCell, x+cellWidth) - } - s.touch[y] = chg - } - - return s.newbuf.SetCell(x, y, cell) -} - -// Fill implements Window. -func (s *Screen) Fill(cell *Cell) bool { - return s.FillRect(cell, s.newbuf.Bounds()) -} - -// FillRect implements Window. -func (s *Screen) FillRect(cell *Cell, r Rectangle) bool { - s.mu.Lock() - defer s.mu.Unlock() - s.newbuf.FillRect(cell, r) - for i := r.Min.Y; i < r.Max.Y; i++ { - s.touch[i] = lineData{firstCell: r.Min.X, lastCell: r.Max.X} - } - return true -} - -// isXtermLike returns whether the terminal is xterm-like. This means that the -// terminal supports ECMA-48 and ANSI X3.64 escape sequences. -// TODO: Should this be a lookup table into each $TERM terminfo database? Like -// we could keep a map of ANSI escape sequence to terminfo capability name and -// check if the database supports the escape sequence. Instead of keeping a -// list of terminal names here. -func isXtermLike(termtype string) (v bool) { - parts := strings.Split(termtype, "-") - if len(parts) == 0 { - return - } - - switch parts[0] { - case - "alacritty", - "contour", - "foot", - "ghostty", - "kitty", - "linux", - "rio", - "screen", - "st", - "tmux", - "wezterm", - "xterm": - v = true - } - - return -} - -// NewScreen creates a new Screen. -func NewScreen(w io.Writer, width, height int, opts *ScreenOptions) (s *Screen) { - s = new(Screen) - s.w = w - if opts != nil { - s.opts = *opts - } - - if s.opts.Term == "" { - s.opts.Term = os.Getenv("TERM") - } - - if width <= 0 || height <= 0 { - if f, ok := w.(term.File); ok { - width, height, _ = term.GetSize(f.Fd()) - } - } - if width < 0 { - width = 0 - } - if height < 0 { - height = 0 - } - - s.buf = new(bytes.Buffer) - s.xtermLike = isXtermLike(s.opts.Term) - s.curbuf = NewBuffer(width, height) - s.newbuf = NewBuffer(width, height) - s.cur = Cursor{Position: Pos(-1, -1)} // start at -1 to force a move - s.saved = s.cur - s.reset() - - return -} - -// Width returns the width of the screen. -func (s *Screen) Width() int { - return s.newbuf.Width() -} - -// Height returns the height of the screen. -func (s *Screen) Height() int { - return s.newbuf.Height() -} - -// cellEqual returns whether the two cells are equal. A nil cell is considered -// a [BlankCell]. -func cellEqual(a, b *Cell) bool { - if a == b { - return true - } - if a == nil { - a = &BlankCell - } - if b == nil { - b = &BlankCell - } - return a.Equal(b) -} - -// putCell draws a cell at the current cursor position. -func (s *Screen) putCell(cell *Cell) { - width, height := s.newbuf.Width(), s.newbuf.Height() - if s.opts.AltScreen && s.cur.X == width-1 && s.cur.Y == height-1 { - s.putCellLR(cell) - } else { - s.putAttrCell(cell) - } -} - -// wrapCursor wraps the cursor to the next line. -// -//nolint:unused -func (s *Screen) wrapCursor() { - const autoRightMargin = true - if autoRightMargin { - // Assume we have auto wrap mode enabled. - s.cur.X = 0 - s.cur.Y++ - } else { - s.cur.X-- - } -} - -func (s *Screen) putAttrCell(cell *Cell) { - if cell != nil && cell.Empty() { - // XXX: Zero width cells are special and should not be written to the - // screen no matter what other attributes they have. - // Zero width cells are used for wide characters that are split into - // multiple cells. - return - } - - if cell == nil { - cell = s.clearBlank() - } - - // We're at pending wrap state (phantom cell), incoming cell should - // wrap. - if s.atPhantom { - s.wrapCursor() - s.atPhantom = false - } - - s.updatePen(cell) - s.buf.WriteRune(cell.Rune) //nolint:errcheck - for _, c := range cell.Comb { - s.buf.WriteRune(c) //nolint:errcheck - } - - s.cur.X += cell.Width - - if cell.Width > 0 { - s.queuedText = true - } - - if s.cur.X >= s.newbuf.Width() { - s.atPhantom = true - } -} - -// putCellLR draws a cell at the lower right corner of the screen. -func (s *Screen) putCellLR(cell *Cell) { - // Optimize for the lower right corner cell. - curX := s.cur.X - if cell == nil || !cell.Empty() { - s.buf.WriteString(ansi.ResetAutoWrapMode) //nolint:errcheck - s.putAttrCell(cell) - // Writing to lower-right corner cell should not wrap. - s.atPhantom = false - s.cur.X = curX - s.buf.WriteString(ansi.SetAutoWrapMode) //nolint:errcheck - } -} - -// updatePen updates the cursor pen styles. -func (s *Screen) updatePen(cell *Cell) { - if cell == nil { - cell = &BlankCell - } - - if s.opts.Profile != 0 { - // Downsample colors to the given color profile. - cell.Style = ConvertStyle(cell.Style, s.opts.Profile) - cell.Link = ConvertLink(cell.Link, s.opts.Profile) - } - - if !cell.Style.Equal(&s.cur.Style) { - seq := cell.Style.DiffSequence(s.cur.Style) - if cell.Style.Empty() && len(seq) > len(ansi.ResetStyle) { - seq = ansi.ResetStyle - } - s.buf.WriteString(seq) //nolint:errcheck - s.cur.Style = cell.Style - } - if !cell.Link.Equal(&s.cur.Link) { - s.buf.WriteString(ansi.SetHyperlink(cell.Link.URL, cell.Link.Params)) //nolint:errcheck - s.cur.Link = cell.Link - } -} - -// emitRange emits a range of cells to the buffer. It it equivalent to calling -// [Screen.putCell] for each cell in the range. This is optimized to use -// [ansi.ECH] and [ansi.REP]. -// Returns whether the cursor is at the end of interval or somewhere in the -// middle. -func (s *Screen) emitRange(line Line, n int) (eoi bool) { - for n > 0 { - var count int - for n > 1 && !cellEqual(line.At(0), line.At(1)) { - s.putCell(line.At(0)) - line = line[1:] - n-- - } - - cell0 := line[0] - if n == 1 { - s.putCell(cell0) - return false - } - - count = 2 - for count < n && cellEqual(line.At(count), cell0) { - count++ - } - - ech := ansi.EraseCharacter(count) - cup := ansi.CursorPosition(s.cur.X+count, s.cur.Y) - rep := ansi.RepeatPreviousCharacter(count) - if s.xtermLike && count > len(ech)+len(cup) && cell0 != nil && cell0.Clear() { - s.updatePen(cell0) - s.buf.WriteString(ech) //nolint:errcheck - - // If this is the last cell, we don't need to move the cursor. - if count < n { - s.move(s.cur.X+count, s.cur.Y) - } else { - return true // cursor in the middle - } - } else if s.xtermLike && count > len(rep) && - (cell0 == nil || (len(cell0.Comb) == 0 && cell0.Rune < 256)) { - // We only support ASCII characters. Most terminals will handle - // non-ASCII characters correctly, but some might not, ahem xterm. - // - // NOTE: [ansi.REP] only repeats the last rune and won't work - // if the last cell contains multiple runes. - - wrapPossible := s.cur.X+count >= s.newbuf.Width() - repCount := count - if wrapPossible { - repCount-- - } - - s.updatePen(cell0) - s.putCell(cell0) - repCount-- // cell0 is a single width cell ASCII character - - s.buf.WriteString(ansi.RepeatPreviousCharacter(repCount)) //nolint:errcheck - s.cur.X += repCount - if wrapPossible { - s.putCell(cell0) - } - } else { - for i := 0; i < count; i++ { - s.putCell(line.At(i)) - } - } - - line = line[clamp(count, 0, len(line)):] - n -= count - } - - return -} - -// putRange puts a range of cells from the old line to the new line. -// Returns whether the cursor is at the end of interval or somewhere in the -// middle. -func (s *Screen) putRange(oldLine, newLine Line, y, start, end int) (eoi bool) { - inline := min(len(ansi.CursorPosition(start+1, y+1)), - min(len(ansi.HorizontalPositionAbsolute(start+1)), - len(ansi.CursorForward(start+1)))) - if (end - start + 1) > inline { - var j, same int - for j, same = start, 0; j <= end; j++ { - oldCell, newCell := oldLine.At(j), newLine.At(j) - if same == 0 && oldCell != nil && oldCell.Empty() { - continue - } - if cellEqual(oldCell, newCell) { - same++ - } else { - if same > end-start { - s.emitRange(newLine[start:], j-same-start) - s.move(j, y) - start = j - } - same = 0 - } - } - - i := s.emitRange(newLine[start:], j-same-start) - - // Always return 1 for the next [Screen.move] after a [Screen.putRange] if - // we found identical characters at end of interval. - if same == 0 { - return i - } - return true - } - - return s.emitRange(newLine[start:], end-start+1) -} - -// clearToEnd clears the screen from the current cursor position to the end of -// line. -func (s *Screen) clearToEnd(blank *Cell, force bool) { //nolint:unparam - if s.cur.Y >= 0 { - curline := s.curbuf.Line(s.cur.Y) - for j := s.cur.X; j < s.curbuf.Width(); j++ { - if j >= 0 { - c := curline.At(j) - if !cellEqual(c, blank) { - curline.Set(j, blank) - force = true - } - } - } - } - - if force { - s.updatePen(blank) - count := s.newbuf.Width() - s.cur.X - if s.el0Cost() <= count { - s.buf.WriteString(ansi.EraseLineRight) //nolint:errcheck - } else { - for i := 0; i < count; i++ { - s.putCell(blank) - } - } - } -} - -// clearBlank returns a blank cell based on the current cursor background color. -func (s *Screen) clearBlank() *Cell { - c := BlankCell - if !s.cur.Style.Empty() || !s.cur.Link.Empty() { - c.Style = s.cur.Style - c.Link = s.cur.Link - } - return &c -} - -// insertCells inserts the count cells pointed by the given line at the current -// cursor position. -func (s *Screen) insertCells(line Line, count int) { - if s.xtermLike { - // Use [ansi.ICH] as an optimization. - s.buf.WriteString(ansi.InsertCharacter(count)) //nolint:errcheck - } else { - // Otherwise, use [ansi.IRM] mode. - s.buf.WriteString(ansi.SetInsertReplaceMode) //nolint:errcheck - } - - for i := 0; count > 0; i++ { - s.putAttrCell(line[i]) - count-- - } - - if !s.xtermLike { - s.buf.WriteString(ansi.ResetInsertReplaceMode) //nolint:errcheck - } -} - -// el0Cost returns the cost of using [ansi.EL] 0 i.e. [ansi.EraseLineRight]. If -// this terminal supports background color erase, it can be cheaper to use -// [ansi.EL] 0 i.e. [ansi.EraseLineRight] to clear -// trailing spaces. -func (s *Screen) el0Cost() int { - if s.xtermLike { - return 0 - } - return len(ansi.EraseLineRight) -} - -// transformLine transforms the given line in the current window to the -// corresponding line in the new window. It uses [ansi.ICH] and [ansi.DCH] to -// insert or delete characters. -func (s *Screen) transformLine(y int) { - var firstCell, oLastCell, nLastCell int // first, old last, new last index - oldLine := s.curbuf.Line(y) - newLine := s.newbuf.Line(y) - - // Find the first changed cell in the line - var lineChanged bool - for i := 0; i < s.newbuf.Width(); i++ { - if !cellEqual(newLine.At(i), oldLine.At(i)) { - lineChanged = true - break - } - } - - const ceolStandoutGlitch = false - if ceolStandoutGlitch && lineChanged { - s.move(0, y) - s.clearToEnd(nil, false) - s.putRange(oldLine, newLine, y, 0, s.newbuf.Width()-1) - } else { - blank := newLine.At(0) - - // It might be cheaper to clear leading spaces with [ansi.EL] 1 i.e. - // [ansi.EraseLineLeft]. - if blank == nil || blank.Clear() { - var oFirstCell, nFirstCell int - for oFirstCell = 0; oFirstCell < s.curbuf.Width(); oFirstCell++ { - if !cellEqual(oldLine.At(oFirstCell), blank) { - break - } - } - for nFirstCell = 0; nFirstCell < s.newbuf.Width(); nFirstCell++ { - if !cellEqual(newLine.At(nFirstCell), blank) { - break - } - } - - if nFirstCell == oFirstCell { - firstCell = nFirstCell - - // Find the first differing cell - for firstCell < s.newbuf.Width() && - cellEqual(oldLine.At(firstCell), newLine.At(firstCell)) { - firstCell++ - } - } else if oFirstCell > nFirstCell { - firstCell = nFirstCell - } else if oFirstCell < nFirstCell { - firstCell = oFirstCell - el1Cost := len(ansi.EraseLineLeft) - if el1Cost < nFirstCell-oFirstCell { - if nFirstCell >= s.newbuf.Width() { - s.move(0, y) - s.updatePen(blank) - s.buf.WriteString(ansi.EraseLineRight) //nolint:errcheck - } else { - s.move(nFirstCell-1, y) - s.updatePen(blank) - s.buf.WriteString(ansi.EraseLineLeft) //nolint:errcheck - } - - for firstCell < nFirstCell { - oldLine.Set(firstCell, blank) - firstCell++ - } - } - } - } else { - // Find the first differing cell - for firstCell < s.newbuf.Width() && cellEqual(newLine.At(firstCell), oldLine.At(firstCell)) { - firstCell++ - } - } - - // If we didn't find one, we're done - if firstCell >= s.newbuf.Width() { - return - } - - blank = newLine.At(s.newbuf.Width() - 1) - if blank != nil && !blank.Clear() { - // Find the last differing cell - nLastCell = s.newbuf.Width() - 1 - for nLastCell > firstCell && cellEqual(newLine.At(nLastCell), oldLine.At(nLastCell)) { - nLastCell-- - } - - if nLastCell >= firstCell { - s.move(firstCell, y) - s.putRange(oldLine, newLine, y, firstCell, nLastCell) - if firstCell < len(oldLine) && firstCell < len(newLine) { - copy(oldLine[firstCell:], newLine[firstCell:]) - } else { - copy(oldLine, newLine) - } - } - - return - } - - // Find last non-blank cell in the old line. - oLastCell = s.curbuf.Width() - 1 - for oLastCell > firstCell && cellEqual(oldLine.At(oLastCell), blank) { - oLastCell-- - } - - // Find last non-blank cell in the new line. - nLastCell = s.newbuf.Width() - 1 - for nLastCell > firstCell && cellEqual(newLine.At(nLastCell), blank) { - nLastCell-- - } - - if nLastCell == firstCell && s.el0Cost() < oLastCell-nLastCell { - s.move(firstCell, y) - if !cellEqual(newLine.At(firstCell), blank) { - s.putCell(newLine.At(firstCell)) - } - s.clearToEnd(blank, false) - } else if nLastCell != oLastCell && - !cellEqual(newLine.At(nLastCell), oldLine.At(oLastCell)) { - s.move(firstCell, y) - if oLastCell-nLastCell > s.el0Cost() { - if s.putRange(oldLine, newLine, y, firstCell, nLastCell) { - s.move(nLastCell+1, y) - } - s.clearToEnd(blank, false) - } else { - n := max(nLastCell, oLastCell) - s.putRange(oldLine, newLine, y, firstCell, n) - } - } else { - nLastNonBlank := nLastCell - oLastNonBlank := oLastCell - - // Find the last cells that really differ. - // Can be -1 if no cells differ. - for cellEqual(newLine.At(nLastCell), oldLine.At(oLastCell)) { - if !cellEqual(newLine.At(nLastCell-1), oldLine.At(oLastCell-1)) { - break - } - nLastCell-- - oLastCell-- - if nLastCell == -1 || oLastCell == -1 { - break - } - } - - n := min(oLastCell, nLastCell) - if n >= firstCell { - s.move(firstCell, y) - s.putRange(oldLine, newLine, y, firstCell, n) - } - - if oLastCell < nLastCell { - m := max(nLastNonBlank, oLastNonBlank) - if n != 0 { - for n > 0 { - wide := newLine.At(n + 1) - if wide == nil || !wide.Empty() { - break - } - n-- - oLastCell-- - } - } else if n >= firstCell && newLine.At(n) != nil && newLine.At(n).Width > 1 { - next := newLine.At(n + 1) - for next != nil && next.Empty() { - n++ - oLastCell++ - } - } - - s.move(n+1, y) - ichCost := 3 + nLastCell - oLastCell - if s.xtermLike && (nLastCell < nLastNonBlank || ichCost > (m-n)) { - s.putRange(oldLine, newLine, y, n+1, m) - } else { - s.insertCells(newLine[n+1:], nLastCell-oLastCell) - } - } else if oLastCell > nLastCell { - s.move(n+1, y) - dchCost := 3 + oLastCell - nLastCell - if dchCost > len(ansi.EraseLineRight)+nLastNonBlank-(n+1) { - if s.putRange(oldLine, newLine, y, n+1, nLastNonBlank) { - s.move(nLastNonBlank+1, y) - } - s.clearToEnd(blank, false) - } else { - s.updatePen(blank) - s.deleteCells(oLastCell - nLastCell) - } - } - } - } - - // Update the old line with the new line - if firstCell < len(oldLine) && firstCell < len(newLine) { - copy(oldLine[firstCell:], newLine[firstCell:]) - } else { - copy(oldLine, newLine) - } -} - -// deleteCells deletes the count cells at the current cursor position and moves -// the rest of the line to the left. This is equivalent to [ansi.DCH]. -func (s *Screen) deleteCells(count int) { - // [ansi.DCH] will shift in cells from the right margin so we need to - // ensure that they are the right style. - s.buf.WriteString(ansi.DeleteCharacter(count)) //nolint:errcheck -} - -// clearToBottom clears the screen from the current cursor position to the end -// of the screen. -func (s *Screen) clearToBottom(blank *Cell) { - row, col := s.cur.Y, s.cur.X - if row < 0 { - row = 0 - } - - s.updatePen(blank) - s.buf.WriteString(ansi.EraseScreenBelow) //nolint:errcheck - // Clear the rest of the current line - s.curbuf.ClearRect(Rect(col, row, s.curbuf.Width()-col, 1)) - // Clear everything below the current line - s.curbuf.ClearRect(Rect(0, row+1, s.curbuf.Width(), s.curbuf.Height()-row-1)) -} - -// clearBottom tests if clearing the end of the screen would satisfy part of -// the screen update. Scan backwards through lines in the screen checking if -// each is blank and one or more are changed. -// It returns the top line. -func (s *Screen) clearBottom(total int) (top int) { - if total <= 0 { - return - } - - top = total - last := s.newbuf.Width() - blank := s.clearBlank() - canClearWithBlank := blank == nil || blank.Clear() - - if canClearWithBlank { - var row int - for row = total - 1; row >= 0; row-- { - oldLine := s.curbuf.Line(row) - newLine := s.newbuf.Line(row) - - var col int - ok := true - for col = 0; ok && col < last; col++ { - ok = cellEqual(newLine.At(col), blank) - } - if !ok { - break - } - - for col = 0; ok && col < last; col++ { - ok = len(oldLine) == last && cellEqual(oldLine.At(col), blank) - } - if !ok { - top = row - } - } - - if top < total { - s.move(0, top-1) // top is 1-based - s.clearToBottom(blank) - if s.oldhash != nil && s.newhash != nil && - row < len(s.oldhash) && row < len(s.newhash) { - for row := top; row < s.newbuf.Height(); row++ { - s.oldhash[row] = s.newhash[row] - } - } - } - } - - return -} - -// clearScreen clears the screen and put cursor at home. -func (s *Screen) clearScreen(blank *Cell) { - s.updatePen(blank) - s.buf.WriteString(ansi.CursorHomePosition) //nolint:errcheck - s.buf.WriteString(ansi.EraseEntireScreen) //nolint:errcheck - s.cur.X, s.cur.Y = 0, 0 - s.curbuf.Fill(blank) -} - -// clearBelow clears everything below and including the row. -func (s *Screen) clearBelow(blank *Cell, row int) { - s.move(0, row) - s.clearToBottom(blank) -} - -// clearUpdate forces a screen redraw. -func (s *Screen) clearUpdate() { - blank := s.clearBlank() - var nonEmpty int - if s.opts.AltScreen { - // XXX: We're using the maximum height of the two buffers to ensure - // we write newly added lines to the screen in [Screen.transformLine]. - nonEmpty = max(s.curbuf.Height(), s.newbuf.Height()) - s.clearScreen(blank) - } else { - nonEmpty = s.newbuf.Height() - s.clearBelow(blank, 0) - } - nonEmpty = s.clearBottom(nonEmpty) - for i := 0; i < nonEmpty; i++ { - s.transformLine(i) - } -} - -// Flush flushes the buffer to the screen. -func (s *Screen) Flush() (err error) { - s.mu.Lock() - defer s.mu.Unlock() - return s.flush() -} - -func (s *Screen) flush() (err error) { - // Write the buffer - if s.buf.Len() > 0 { - _, err = s.w.Write(s.buf.Bytes()) //nolint:errcheck - if err == nil { - s.buf.Reset() - } - } - - return -} - -// Render renders changes of the screen to the internal buffer. Call -// [Screen.Flush] to flush pending changes to the screen. -func (s *Screen) Render() { - s.mu.Lock() - s.render() - s.mu.Unlock() -} - -func (s *Screen) render() { - // Do we need to render anything? - if s.opts.AltScreen == s.altScreenMode && - !s.opts.ShowCursor == s.cursorHidden && - !s.clear && - len(s.touch) == 0 && - len(s.queueAbove) == 0 { - return - } - - // TODO: Investigate whether this is necessary. Theoretically, terminals - // can add/remove tab stops and we should be able to handle that. We could - // use [ansi.DECTABSR] to read the tab stops, but that's not implemented in - // most terminals :/ - // // Are we using hard tabs? If so, ensure tabs are using the - // // default interval using [ansi.DECST8C]. - // if s.opts.HardTabs && !s.initTabs { - // s.buf.WriteString(ansi.SetTabEvery8Columns) - // s.initTabs = true - // } - - // Do we need alt-screen mode? - if s.opts.AltScreen != s.altScreenMode { - if s.opts.AltScreen { - s.buf.WriteString(ansi.SetAltScreenSaveCursorMode) - } else { - s.buf.WriteString(ansi.ResetAltScreenSaveCursorMode) - } - s.altScreenMode = s.opts.AltScreen - } - - // Do we need text cursor mode? - if !s.opts.ShowCursor != s.cursorHidden { - s.cursorHidden = !s.opts.ShowCursor - if s.cursorHidden { - s.buf.WriteString(ansi.HideCursor) - } - } - - // Do we have queued strings to write above the screen? - if len(s.queueAbove) > 0 { - // TODO: Use scrolling region if available. - // TODO: Use [Screen.Write] [io.Writer] interface. - - // We need to scroll the screen up by the number of lines in the queue. - // We can't use [ansi.SU] because we want the cursor to move down until - // it reaches the bottom of the screen. - s.move(0, s.newbuf.Height()-1) - s.buf.WriteString(strings.Repeat("\n", len(s.queueAbove))) - s.cur.Y += len(s.queueAbove) - // XXX: Now go to the top of the screen, insert new lines, and write - // the queued strings. It is important to use [Screen.moveCursor] - // instead of [Screen.move] because we don't want to perform any checks - // on the cursor position. - s.moveCursor(0, 0, false) - s.buf.WriteString(ansi.InsertLine(len(s.queueAbove))) - for _, line := range s.queueAbove { - s.buf.WriteString(line + "\r\n") - } - - // Clear the queue - s.queueAbove = s.queueAbove[:0] - } - - var nonEmpty int - - // XXX: In inline mode, after a screen resize, we need to clear the extra - // lines at the bottom of the screen. This is because in inline mode, we - // don't use the full screen height and the current buffer size might be - // larger than the new buffer size. - partialClear := !s.opts.AltScreen && s.cur.X != -1 && s.cur.Y != -1 && - s.curbuf.Width() == s.newbuf.Width() && - s.curbuf.Height() > 0 && - s.curbuf.Height() > s.newbuf.Height() - - if !s.clear && partialClear { - s.clearBelow(nil, s.newbuf.Height()-1) - } - - if s.clear { - s.clearUpdate() - s.clear = false - } else if len(s.touch) > 0 { - if s.opts.AltScreen { - // Optimize scrolling for the alternate screen buffer. - // TODO: Should we optimize for inline mode as well? If so, we need - // to know the actual cursor position to use [ansi.DECSTBM]. - s.scrollOptimize() - } - - var changedLines int - var i int - - if s.opts.AltScreen { - nonEmpty = min(s.curbuf.Height(), s.newbuf.Height()) - } else { - nonEmpty = s.newbuf.Height() - } - - nonEmpty = s.clearBottom(nonEmpty) - for i = 0; i < nonEmpty; i++ { - _, ok := s.touch[i] - if ok { - s.transformLine(i) - changedLines++ - } - } - } - - // Sync windows and screen - s.touch = make(map[int]lineData, s.newbuf.Height()) - - if s.curbuf.Width() != s.newbuf.Width() || s.curbuf.Height() != s.newbuf.Height() { - // Resize the old buffer to match the new buffer. - _, oldh := s.curbuf.Width(), s.curbuf.Height() - s.curbuf.Resize(s.newbuf.Width(), s.newbuf.Height()) - // Sync new lines to old lines - for i := oldh - 1; i < s.newbuf.Height(); i++ { - copy(s.curbuf.Line(i), s.newbuf.Line(i)) - } - } - - s.updatePen(nil) // nil indicates a blank cell with no styles - - // Do we have enough changes to justify toggling the cursor? - if s.buf.Len() > 1 && s.opts.ShowCursor && !s.cursorHidden && s.queuedText { - nb := new(bytes.Buffer) - nb.Grow(s.buf.Len() + len(ansi.HideCursor) + len(ansi.ShowCursor)) - nb.WriteString(ansi.HideCursor) - nb.Write(s.buf.Bytes()) - nb.WriteString(ansi.ShowCursor) - *s.buf = *nb - } - - s.queuedText = false -} - -// Close writes the final screen update and resets the screen. -func (s *Screen) Close() (err error) { - s.mu.Lock() - defer s.mu.Unlock() - - s.render() - s.updatePen(nil) - // Go to the bottom of the screen - s.move(0, s.newbuf.Height()-1) - - if s.altScreenMode { - s.buf.WriteString(ansi.ResetAltScreenSaveCursorMode) - s.altScreenMode = false - } - - if s.cursorHidden { - s.buf.WriteString(ansi.ShowCursor) - s.cursorHidden = false - } - - // Write the buffer - err = s.flush() - if err != nil { - return - } - - s.reset() - return -} - -// reset resets the screen to its initial state. -func (s *Screen) reset() { - s.scrollHeight = 0 - s.cursorHidden = false - s.altScreenMode = false - s.touch = make(map[int]lineData, s.newbuf.Height()) - if s.curbuf != nil { - s.curbuf.Clear() - } - if s.newbuf != nil { - s.newbuf.Clear() - } - s.buf.Reset() - s.tabs = DefaultTabStops(s.newbuf.Width()) - s.oldhash, s.newhash = nil, nil - - // We always disable HardTabs when termtype is "linux". - if strings.HasPrefix(s.opts.Term, "linux") { - s.opts.HardTabs = false - } -} - -// Resize resizes the screen. -func (s *Screen) Resize(width, height int) bool { - oldw := s.newbuf.Width() - oldh := s.newbuf.Height() - - if s.opts.AltScreen || width != oldw { - // We only clear the whole screen if the width changes. Adding/removing - // rows is handled by the [Screen.render] and [Screen.transformLine] - // methods. - s.clear = true - } - - // Clear new columns and lines - if width > oldh { - s.ClearRect(Rect(max(oldw-1, 0), 0, width-oldw, height)) - } else if width < oldw { - s.ClearRect(Rect(max(width-1, 0), 0, oldw-width, height)) - } - - if height > oldh { - s.ClearRect(Rect(0, max(oldh-1, 0), width, height-oldh)) - } else if height < oldh { - s.ClearRect(Rect(0, max(height-1, 0), width, oldh-height)) - } - - s.mu.Lock() - s.newbuf.Resize(width, height) - s.tabs.Resize(width) - s.oldhash, s.newhash = nil, nil - s.scrollHeight = 0 // reset scroll lines - s.mu.Unlock() - - return true -} - -// MoveTo moves the cursor to the given position. -func (s *Screen) MoveTo(x, y int) { - s.mu.Lock() - s.move(x, y) - s.mu.Unlock() -} - -// InsertAbove inserts string above the screen. The inserted string is not -// managed by the screen. This does nothing when alternate screen mode is -// enabled. -func (s *Screen) InsertAbove(str string) { - if s.opts.AltScreen { - return - } - s.mu.Lock() - for _, line := range strings.Split(str, "\n") { - s.queueAbove = append(s.queueAbove, s.method.Truncate(line, s.Width(), "")) - } - s.mu.Unlock() -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/sequence.go b/vendor/github.com/charmbracelet/x/cellbuf/sequence.go deleted file mode 100644 index 613eefe..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/sequence.go +++ /dev/null @@ -1,131 +0,0 @@ -package cellbuf - -import ( - "bytes" - "image/color" - - "github.com/charmbracelet/x/ansi" -) - -// ReadStyle reads a Select Graphic Rendition (SGR) escape sequences from a -// list of parameters. -func ReadStyle(params ansi.Params, pen *Style) { - if len(params) == 0 { - pen.Reset() - return - } - - for i := 0; i < len(params); i++ { - param, hasMore, _ := params.Param(i, 0) - switch param { - case 0: // Reset - pen.Reset() - case 1: // Bold - pen.Bold(true) - case 2: // Dim/Faint - pen.Faint(true) - case 3: // Italic - pen.Italic(true) - case 4: // Underline - nextParam, _, ok := params.Param(i+1, 0) - if hasMore && ok { // Only accept subparameters i.e. separated by ":" - switch nextParam { - case 0, 1, 2, 3, 4, 5: - i++ - switch nextParam { - case 0: // No Underline - pen.UnderlineStyle(NoUnderline) - case 1: // Single Underline - pen.UnderlineStyle(SingleUnderline) - case 2: // Double Underline - pen.UnderlineStyle(DoubleUnderline) - case 3: // Curly Underline - pen.UnderlineStyle(CurlyUnderline) - case 4: // Dotted Underline - pen.UnderlineStyle(DottedUnderline) - case 5: // Dashed Underline - pen.UnderlineStyle(DashedUnderline) - } - } - } else { - // Single Underline - pen.Underline(true) - } - case 5: // Slow Blink - pen.SlowBlink(true) - case 6: // Rapid Blink - pen.RapidBlink(true) - case 7: // Reverse - pen.Reverse(true) - case 8: // Conceal - pen.Conceal(true) - case 9: // Crossed-out/Strikethrough - pen.Strikethrough(true) - case 22: // Normal Intensity (not bold or faint) - pen.Bold(false).Faint(false) - case 23: // Not italic, not Fraktur - pen.Italic(false) - case 24: // Not underlined - pen.Underline(false) - case 25: // Blink off - pen.SlowBlink(false).RapidBlink(false) - case 27: // Positive (not reverse) - pen.Reverse(false) - case 28: // Reveal - pen.Conceal(false) - case 29: // Not crossed out - pen.Strikethrough(false) - case 30, 31, 32, 33, 34, 35, 36, 37: // Set foreground - pen.Foreground(ansi.Black + ansi.BasicColor(param-30)) //nolint:gosec - case 38: // Set foreground 256 or truecolor - var c color.Color - n := ReadStyleColor(params[i:], &c) - if n > 0 { - pen.Foreground(c) - i += n - 1 - } - case 39: // Default foreground - pen.Foreground(nil) - case 40, 41, 42, 43, 44, 45, 46, 47: // Set background - pen.Background(ansi.Black + ansi.BasicColor(param-40)) //nolint:gosec - case 48: // Set background 256 or truecolor - var c color.Color - n := ReadStyleColor(params[i:], &c) - if n > 0 { - pen.Background(c) - i += n - 1 - } - case 49: // Default Background - pen.Background(nil) - case 58: // Set underline color - var c color.Color - n := ReadStyleColor(params[i:], &c) - if n > 0 { - pen.UnderlineColor(c) - i += n - 1 - } - case 59: // Default underline color - pen.UnderlineColor(nil) - case 90, 91, 92, 93, 94, 95, 96, 97: // Set bright foreground - pen.Foreground(ansi.BrightBlack + ansi.BasicColor(param-90)) //nolint:gosec - case 100, 101, 102, 103, 104, 105, 106, 107: // Set bright background - pen.Background(ansi.BrightBlack + ansi.BasicColor(param-100)) //nolint:gosec - } - } -} - -// ReadLink reads a hyperlink escape sequence from a data buffer. -func ReadLink(p []byte, link *Link) { - params := bytes.Split(p, []byte{';'}) - if len(params) != 3 { - return - } - link.Params = string(params[1]) - link.URL = string(params[2]) -} - -// ReadStyleColor reads a color from a list of parameters. -// See [ansi.ReadStyleColor] for more information. -func ReadStyleColor(params ansi.Params, c *color.Color) int { - return ansi.ReadStyleColor(params, c) -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/style.go b/vendor/github.com/charmbracelet/x/cellbuf/style.go deleted file mode 100644 index 82c4afb..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/style.go +++ /dev/null @@ -1,31 +0,0 @@ -package cellbuf - -import ( - "github.com/charmbracelet/colorprofile" -) - -// Convert converts a style to respect the given color profile. -func ConvertStyle(s Style, p colorprofile.Profile) Style { - switch p { - case colorprofile.TrueColor: - return s - case colorprofile.Ascii: - s.Fg = nil - s.Bg = nil - s.Ul = nil - case colorprofile.NoTTY: - return Style{} - } - - if s.Fg != nil { - s.Fg = p.Convert(s.Fg) - } - if s.Bg != nil { - s.Bg = p.Convert(s.Bg) - } - if s.Ul != nil { - s.Ul = p.Convert(s.Ul) - } - - return s -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/tabstop.go b/vendor/github.com/charmbracelet/x/cellbuf/tabstop.go deleted file mode 100644 index 24eec44..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/tabstop.go +++ /dev/null @@ -1,137 +0,0 @@ -package cellbuf - -// DefaultTabInterval is the default tab interval. -const DefaultTabInterval = 8 - -// TabStops represents horizontal line tab stops. -type TabStops struct { - stops []int - interval int - width int -} - -// NewTabStops creates a new set of tab stops from a number of columns and an -// interval. -func NewTabStops(width, interval int) *TabStops { - ts := new(TabStops) - ts.interval = interval - ts.width = width - ts.stops = make([]int, (width+(interval-1))/interval) - ts.init(0, width) - return ts -} - -// DefaultTabStops creates a new set of tab stops with the default interval. -func DefaultTabStops(cols int) *TabStops { - return NewTabStops(cols, DefaultTabInterval) -} - -// Resize resizes the tab stops to the given width. -func (ts *TabStops) Resize(width int) { - if width == ts.width { - return - } - - if width < ts.width { - size := (width + (ts.interval - 1)) / ts.interval - ts.stops = ts.stops[:size] - } else { - size := (width - ts.width + (ts.interval - 1)) / ts.interval - ts.stops = append(ts.stops, make([]int, size)...) - } - - ts.init(ts.width, width) - ts.width = width -} - -// IsStop returns true if the given column is a tab stop. -func (ts TabStops) IsStop(col int) bool { - mask := ts.mask(col) - i := col >> 3 - if i < 0 || i >= len(ts.stops) { - return false - } - return ts.stops[i]&mask != 0 -} - -// Next returns the next tab stop after the given column. -func (ts TabStops) Next(col int) int { - return ts.Find(col, 1) -} - -// Prev returns the previous tab stop before the given column. -func (ts TabStops) Prev(col int) int { - return ts.Find(col, -1) -} - -// Find returns the prev/next tab stop before/after the given column and delta. -// If delta is positive, it returns the next tab stop after the given column. -// If delta is negative, it returns the previous tab stop before the given column. -// If delta is zero, it returns the given column. -func (ts TabStops) Find(col, delta int) int { - if delta == 0 { - return col - } - - var prev bool - count := delta - if count < 0 { - count = -count - prev = true - } - - for count > 0 { - if !prev { - if col >= ts.width-1 { - return col - } - - col++ - } else { - if col < 1 { - return col - } - - col-- - } - - if ts.IsStop(col) { - count-- - } - } - - return col -} - -// Set adds a tab stop at the given column. -func (ts *TabStops) Set(col int) { - mask := ts.mask(col) - ts.stops[col>>3] |= mask -} - -// Reset removes the tab stop at the given column. -func (ts *TabStops) Reset(col int) { - mask := ts.mask(col) - ts.stops[col>>3] &= ^mask -} - -// Clear removes all tab stops. -func (ts *TabStops) Clear() { - ts.stops = make([]int, len(ts.stops)) -} - -// mask returns the mask for the given column. -func (ts *TabStops) mask(col int) int { - return 1 << (col & (ts.interval - 1)) -} - -// init initializes the tab stops starting from col until width. -func (ts *TabStops) init(col, width int) { - for x := col; x < width; x++ { - if x%ts.interval == 0 { - ts.Set(x) - } else { - ts.Reset(x) - } - } -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/utils.go b/vendor/github.com/charmbracelet/x/cellbuf/utils.go deleted file mode 100644 index b0452fa..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/utils.go +++ /dev/null @@ -1,38 +0,0 @@ -package cellbuf - -import ( - "strings" -) - -// Height returns the height of a string. -func Height(s string) int { - return strings.Count(s, "\n") + 1 -} - -func min(a, b int) int { //nolint:predeclared - if a > b { - return b - } - return a -} - -func max(a, b int) int { //nolint:predeclared - if a > b { - return a - } - return b -} - -func clamp(v, low, high int) int { - if high < low { - low, high = high, low - } - return min(high, max(low, v)) -} - -func abs(a int) int { - if a < 0 { - return -a - } - return a -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/wrap.go b/vendor/github.com/charmbracelet/x/cellbuf/wrap.go deleted file mode 100644 index 59a2a33..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/wrap.go +++ /dev/null @@ -1,178 +0,0 @@ -package cellbuf - -import ( - "bytes" - "unicode" - "unicode/utf8" - - "github.com/charmbracelet/x/ansi" -) - -// Wrap returns a string that is wrapped to the specified limit applying any -// ANSI escape sequences in the string. It tries to wrap the string at word -// boundaries, but will break words if necessary. -// -// The breakpoints string is a list of characters that are considered -// breakpoints for word wrapping. A hyphen (-) is always considered a -// breakpoint. -// -// Note: breakpoints must be a string of 1-cell wide rune characters. -func Wrap(s string, limit int, breakpoints string) string { - if len(s) == 0 { - return "" - } - - if limit < 1 { - return s - } - - p := ansi.GetParser() - defer ansi.PutParser(p) - - var ( - buf bytes.Buffer - word bytes.Buffer - space bytes.Buffer - style, curStyle Style - link, curLink Link - curWidth int - wordLen int - ) - - addSpace := func() { - curWidth += space.Len() - buf.Write(space.Bytes()) - space.Reset() - } - - addWord := func() { - if word.Len() == 0 { - return - } - - curLink = link - curStyle = style - - addSpace() - curWidth += wordLen - buf.Write(word.Bytes()) - word.Reset() - wordLen = 0 - } - - addNewline := func() { - if !curStyle.Empty() { - buf.WriteString(ansi.ResetStyle) - } - if !curLink.Empty() { - buf.WriteString(ansi.ResetHyperlink()) - } - buf.WriteByte('\n') - if !curLink.Empty() { - buf.WriteString(ansi.SetHyperlink(curLink.URL, curLink.Params)) - } - if !curStyle.Empty() { - buf.WriteString(curStyle.Sequence()) - } - curWidth = 0 - space.Reset() - } - - var state byte - for len(s) > 0 { - seq, width, n, newState := ansi.DecodeSequence(s, state, p) - switch width { - case 0: - if ansi.Equal(seq, "\t") { - addWord() - space.WriteString(seq) - break - } else if ansi.Equal(seq, "\n") { - if wordLen == 0 { - if curWidth+space.Len() > limit { - curWidth = 0 - } else { - // preserve whitespaces - buf.Write(space.Bytes()) - } - space.Reset() - } - - addWord() - addNewline() - break - } else if ansi.HasCsiPrefix(seq) && p.Command() == 'm' { - // SGR style sequence [ansi.SGR] - ReadStyle(p.Params(), &style) - } else if ansi.HasOscPrefix(seq) && p.Command() == 8 { - // Hyperlink sequence [ansi.SetHyperlink] - ReadLink(p.Data(), &link) - } - - word.WriteString(seq) - default: - if len(seq) == 1 { - // ASCII - r, _ := utf8.DecodeRuneInString(seq) - if unicode.IsSpace(r) { - addWord() - space.WriteRune(r) - break - } else if r == '-' || runeContainsAny(r, breakpoints) { - addSpace() - if curWidth+wordLen+width <= limit { - addWord() - buf.WriteString(seq) - curWidth += width - break - } - } - } - - if wordLen+width > limit { - // Hardwrap the word if it's too long - addWord() - } - - word.WriteString(seq) - wordLen += width - - if curWidth+wordLen+space.Len() > limit { - addNewline() - } - } - - s = s[n:] - state = newState - } - - if wordLen == 0 { - if curWidth+space.Len() > limit { - curWidth = 0 - } else { - // preserve whitespaces - buf.Write(space.Bytes()) - } - space.Reset() - } - - addWord() - - if !curLink.Empty() { - buf.WriteString(ansi.ResetHyperlink()) - } - if !curStyle.Empty() { - buf.WriteString(ansi.ResetStyle) - } - - return buf.String() -} - -func runeContainsAny[T string | []rune](r rune, s T) bool { - for _, c := range []rune(s) { - if c == r { - return true - } - } - return false -} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/writer.go b/vendor/github.com/charmbracelet/x/cellbuf/writer.go deleted file mode 100644 index ae8b2a8..0000000 --- a/vendor/github.com/charmbracelet/x/cellbuf/writer.go +++ /dev/null @@ -1,339 +0,0 @@ -package cellbuf - -import ( - "bytes" - "fmt" - "strings" - - "github.com/charmbracelet/x/ansi" -) - -// CellBuffer is a cell buffer that represents a set of cells in a screen or a -// grid. -type CellBuffer interface { - // Cell returns the cell at the given position. - Cell(x, y int) *Cell - // SetCell sets the cell at the given position to the given cell. It - // returns whether the cell was set successfully. - SetCell(x, y int, c *Cell) bool - // Bounds returns the bounds of the cell buffer. - Bounds() Rectangle -} - -// FillRect fills the rectangle within the cell buffer with the given cell. -// This will not fill cells outside the bounds of the cell buffer. -func FillRect(s CellBuffer, c *Cell, rect Rectangle) { - for y := rect.Min.Y; y < rect.Max.Y; y++ { - for x := rect.Min.X; x < rect.Max.X; x++ { - s.SetCell(x, y, c) //nolint:errcheck - } - } -} - -// Fill fills the cell buffer with the given cell. -func Fill(s CellBuffer, c *Cell) { - FillRect(s, c, s.Bounds()) -} - -// ClearRect clears the rectangle within the cell buffer with blank cells. -func ClearRect(s CellBuffer, rect Rectangle) { - FillRect(s, nil, rect) -} - -// Clear clears the cell buffer with blank cells. -func Clear(s CellBuffer) { - Fill(s, nil) -} - -// SetContentRect clears the rectangle within the cell buffer with blank cells, -// and sets the given string as its content. If the height or width of the -// string exceeds the height or width of the cell buffer, it will be truncated. -func SetContentRect(s CellBuffer, str string, rect Rectangle) { - // Replace all "\n" with "\r\n" to ensure the cursor is reset to the start - // of the line. Make sure we don't replace "\r\n" with "\r\r\n". - str = strings.ReplaceAll(str, "\r\n", "\n") - str = strings.ReplaceAll(str, "\n", "\r\n") - ClearRect(s, rect) - printString(s, ansi.GraphemeWidth, rect.Min.X, rect.Min.Y, rect, str, true, "") -} - -// SetContent clears the cell buffer with blank cells, and sets the given string -// as its content. If the height or width of the string exceeds the height or -// width of the cell buffer, it will be truncated. -func SetContent(s CellBuffer, str string) { - SetContentRect(s, str, s.Bounds()) -} - -// Render returns a string representation of the grid with ANSI escape sequences. -func Render(d CellBuffer) string { - var buf bytes.Buffer - height := d.Bounds().Dy() - for y := 0; y < height; y++ { - _, line := RenderLine(d, y) - buf.WriteString(line) - if y < height-1 { - buf.WriteString("\r\n") - } - } - return buf.String() -} - -// RenderLine returns a string representation of the yth line of the grid along -// with the width of the line. -func RenderLine(d CellBuffer, n int) (w int, line string) { - var pen Style - var link Link - var buf bytes.Buffer - var pendingLine string - var pendingWidth int // this ignores space cells until we hit a non-space cell - - writePending := func() { - // If there's no pending line, we don't need to do anything. - if len(pendingLine) == 0 { - return - } - buf.WriteString(pendingLine) - w += pendingWidth - pendingWidth = 0 - pendingLine = "" - } - - for x := 0; x < d.Bounds().Dx(); x++ { - if cell := d.Cell(x, n); cell != nil && cell.Width > 0 { - // Convert the cell's style and link to the given color profile. - cellStyle := cell.Style - cellLink := cell.Link - if cellStyle.Empty() && !pen.Empty() { - writePending() - buf.WriteString(ansi.ResetStyle) //nolint:errcheck - pen.Reset() - } - if !cellStyle.Equal(&pen) { - writePending() - seq := cellStyle.DiffSequence(pen) - buf.WriteString(seq) // nolint:errcheck - pen = cellStyle - } - - // Write the URL escape sequence - if cellLink != link && link.URL != "" { - writePending() - buf.WriteString(ansi.ResetHyperlink()) //nolint:errcheck - link.Reset() - } - if cellLink != link { - writePending() - buf.WriteString(ansi.SetHyperlink(cellLink.URL, cellLink.Params)) //nolint:errcheck - link = cellLink - } - - // We only write the cell content if it's not empty. If it is, we - // append it to the pending line and width to be evaluated later. - if cell.Equal(&BlankCell) { - pendingLine += cell.String() - pendingWidth += cell.Width - } else { - writePending() - buf.WriteString(cell.String()) - w += cell.Width - } - } - } - if link.URL != "" { - buf.WriteString(ansi.ResetHyperlink()) //nolint:errcheck - } - if !pen.Empty() { - buf.WriteString(ansi.ResetStyle) //nolint:errcheck - } - return w, strings.TrimRight(buf.String(), " ") // Trim trailing spaces -} - -// ScreenWriter represents a writer that writes to a [Screen] parsing ANSI -// escape sequences and Unicode characters and converting them into cells that -// can be written to a cell [Buffer]. -type ScreenWriter struct { - *Screen -} - -// NewScreenWriter creates a new ScreenWriter that writes to the given Screen. -// This is a convenience function for creating a ScreenWriter. -func NewScreenWriter(s *Screen) *ScreenWriter { - return &ScreenWriter{s} -} - -// Write writes the given bytes to the screen. -// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape -// sequences. -func (s *ScreenWriter) Write(p []byte) (n int, err error) { - printString(s.Screen, s.method, - s.cur.X, s.cur.Y, s.Bounds(), - p, false, "") - return len(p), nil -} - -// SetContent clears the screen with blank cells, and sets the given string as -// its content. If the height or width of the string exceeds the height or -// width of the screen, it will be truncated. -// -// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape sequences. -func (s *ScreenWriter) SetContent(str string) { - s.SetContentRect(str, s.Bounds()) -} - -// SetContentRect clears the rectangle within the screen with blank cells, and -// sets the given string as its content. If the height or width of the string -// exceeds the height or width of the screen, it will be truncated. -// -// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape -// sequences. -func (s *ScreenWriter) SetContentRect(str string, rect Rectangle) { - // Replace all "\n" with "\r\n" to ensure the cursor is reset to the start - // of the line. Make sure we don't replace "\r\n" with "\r\r\n". - str = strings.ReplaceAll(str, "\r\n", "\n") - str = strings.ReplaceAll(str, "\n", "\r\n") - s.ClearRect(rect) - printString(s.Screen, s.method, - rect.Min.X, rect.Min.Y, rect, - str, true, "") -} - -// Print prints the string at the current cursor position. It will wrap the -// string to the width of the screen if it exceeds the width of the screen. -// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape -// sequences. -func (s *ScreenWriter) Print(str string, v ...interface{}) { - if len(v) > 0 { - str = fmt.Sprintf(str, v...) - } - printString(s.Screen, s.method, - s.cur.X, s.cur.Y, s.Bounds(), - str, false, "") -} - -// PrintAt prints the string at the given position. It will wrap the string to -// the width of the screen if it exceeds the width of the screen. -// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape -// sequences. -func (s *ScreenWriter) PrintAt(x, y int, str string, v ...interface{}) { - if len(v) > 0 { - str = fmt.Sprintf(str, v...) - } - printString(s.Screen, s.method, - x, y, s.Bounds(), - str, false, "") -} - -// PrintCrop prints the string at the current cursor position and truncates the -// text if it exceeds the width of the screen. Use tail to specify a string to -// append if the string is truncated. -// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape -// sequences. -func (s *ScreenWriter) PrintCrop(str string, tail string) { - printString(s.Screen, s.method, - s.cur.X, s.cur.Y, s.Bounds(), - str, true, tail) -} - -// PrintCropAt prints the string at the given position and truncates the text -// if it exceeds the width of the screen. Use tail to specify a string to append -// if the string is truncated. -// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape -// sequences. -func (s *ScreenWriter) PrintCropAt(x, y int, str string, tail string) { - printString(s.Screen, s.method, - x, y, s.Bounds(), - str, true, tail) -} - -// printString draws a string starting at the given position. -func printString[T []byte | string]( - s CellBuffer, - m ansi.Method, - x, y int, - bounds Rectangle, str T, - truncate bool, tail string, -) { - p := ansi.GetParser() - defer ansi.PutParser(p) - - var tailc Cell - if truncate && len(tail) > 0 { - if m == ansi.WcWidth { - tailc = *NewCellString(tail) - } else { - tailc = *NewGraphemeCell(tail) - } - } - - decoder := ansi.DecodeSequenceWc[T] - if m == ansi.GraphemeWidth { - decoder = ansi.DecodeSequence[T] - } - - var cell Cell - var style Style - var link Link - var state byte - for len(str) > 0 { - seq, width, n, newState := decoder(str, state, p) - - switch width { - case 1, 2, 3, 4: // wide cells can go up to 4 cells wide - cell.Width += width - cell.Append([]rune(string(seq))...) - - if !truncate && x+cell.Width > bounds.Max.X && y+1 < bounds.Max.Y { - // Wrap the string to the width of the window - x = bounds.Min.X - y++ - } - if Pos(x, y).In(bounds) { - if truncate && tailc.Width > 0 && x+cell.Width > bounds.Max.X-tailc.Width { - // Truncate the string and append the tail if any. - cell := tailc - cell.Style = style - cell.Link = link - s.SetCell(x, y, &cell) - x += tailc.Width - } else { - // Print the cell to the screen - cell.Style = style - cell.Link = link - s.SetCell(x, y, &cell) //nolint:errcheck - x += width - } - } - - // String is too long for the line, truncate it. - // Make sure we reset the cell for the next iteration. - cell.Reset() - default: - // Valid sequences always have a non-zero Cmd. - // TODO: Handle cursor movement and other sequences - switch { - case ansi.HasCsiPrefix(seq) && p.Command() == 'm': - // SGR - Select Graphic Rendition - ReadStyle(p.Params(), &style) - case ansi.HasOscPrefix(seq) && p.Command() == 8: - // Hyperlinks - ReadLink(p.Data(), &link) - case ansi.Equal(seq, T("\n")): - y++ - case ansi.Equal(seq, T("\r")): - x = bounds.Min.X - default: - cell.Append([]rune(string(seq))...) - } - } - - // Advance the state and data - state = newState - str = str[n:] - } - - // Make sure to set the last cell if it's not empty. - if !cell.Empty() { - s.SetCell(x, y, &cell) //nolint:errcheck - cell.Reset() - } -} diff --git a/vendor/github.com/charmbracelet/x/term/LICENSE b/vendor/github.com/charmbracelet/x/term/LICENSE deleted file mode 100644 index 65a5654..0000000 --- a/vendor/github.com/charmbracelet/x/term/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Charmbracelet, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/charmbracelet/x/term/term.go b/vendor/github.com/charmbracelet/x/term/term.go deleted file mode 100644 index 58d6522..0000000 --- a/vendor/github.com/charmbracelet/x/term/term.go +++ /dev/null @@ -1,49 +0,0 @@ -package term - -// State contains platform-specific state of a terminal. -type State struct { - state -} - -// IsTerminal returns whether the given file descriptor is a terminal. -func IsTerminal(fd uintptr) bool { - return isTerminal(fd) -} - -// MakeRaw puts the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd uintptr) (*State, error) { - return makeRaw(fd) -} - -// GetState returns the current state of a terminal which may be useful to -// restore the terminal after a signal. -func GetState(fd uintptr) (*State, error) { - return getState(fd) -} - -// SetState sets the given state of the terminal. -func SetState(fd uintptr, state *State) error { - return setState(fd, state) -} - -// Restore restores the terminal connected to the given file descriptor to a -// previous state. -func Restore(fd uintptr, oldState *State) error { - return restore(fd, oldState) -} - -// GetSize returns the visible dimensions of the given terminal. -// -// These dimensions don't include any scrollback buffer height. -func GetSize(fd uintptr) (width, height int, err error) { - return getSize(fd) -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd uintptr) ([]byte, error) { - return readPassword(fd) -} diff --git a/vendor/github.com/charmbracelet/x/term/term_other.go b/vendor/github.com/charmbracelet/x/term/term_other.go deleted file mode 100644 index 092c7e9..0000000 --- a/vendor/github.com/charmbracelet/x/term/term_other.go +++ /dev/null @@ -1,39 +0,0 @@ -//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !zos && !windows && !solaris && !plan9 -// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!zos,!windows,!solaris,!plan9 - -package term - -import ( - "fmt" - "runtime" -) - -type state struct{} - -func isTerminal(fd uintptr) bool { - return false -} - -func makeRaw(fd uintptr) (*State, error) { - return nil, fmt.Errorf("terminal: MakeRaw not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -func getState(fd uintptr) (*State, error) { - return nil, fmt.Errorf("terminal: GetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -func restore(fd uintptr, state *State) error { - return fmt.Errorf("terminal: Restore not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -func getSize(fd uintptr) (width, height int, err error) { - return 0, 0, fmt.Errorf("terminal: GetSize not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -func setState(fd uintptr, state *State) error { - return fmt.Errorf("terminal: SetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -func readPassword(fd uintptr) ([]byte, error) { - return nil, fmt.Errorf("terminal: ReadPassword not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} diff --git a/vendor/github.com/charmbracelet/x/term/term_unix.go b/vendor/github.com/charmbracelet/x/term/term_unix.go deleted file mode 100644 index 1459cb1..0000000 --- a/vendor/github.com/charmbracelet/x/term/term_unix.go +++ /dev/null @@ -1,96 +0,0 @@ -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - -package term - -import ( - "golang.org/x/sys/unix" -) - -type state struct { - unix.Termios -} - -func isTerminal(fd uintptr) bool { - _, err := unix.IoctlGetTermios(int(fd), ioctlReadTermios) - return err == nil -} - -func makeRaw(fd uintptr) (*State, error) { - termios, err := unix.IoctlGetTermios(int(fd), ioctlReadTermios) - if err != nil { - return nil, err - } - - oldState := State{state{Termios: *termios}} - - // This attempts to replicate the behaviour documented for cfmakeraw in - // the termios(3) manpage. - termios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON - termios.Oflag &^= unix.OPOST - termios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN - termios.Cflag &^= unix.CSIZE | unix.PARENB - termios.Cflag |= unix.CS8 - termios.Cc[unix.VMIN] = 1 - termios.Cc[unix.VTIME] = 0 - if err := unix.IoctlSetTermios(int(fd), ioctlWriteTermios, termios); err != nil { - return nil, err - } - - return &oldState, nil -} - -func setState(fd uintptr, state *State) error { - var termios *unix.Termios - if state != nil { - termios = &state.Termios - } - return unix.IoctlSetTermios(int(fd), ioctlWriteTermios, termios) -} - -func getState(fd uintptr) (*State, error) { - termios, err := unix.IoctlGetTermios(int(fd), ioctlReadTermios) - if err != nil { - return nil, err - } - - return &State{state{Termios: *termios}}, nil -} - -func restore(fd uintptr, state *State) error { - return unix.IoctlSetTermios(int(fd), ioctlWriteTermios, &state.Termios) -} - -func getSize(fd uintptr) (width, height int, err error) { - ws, err := unix.IoctlGetWinsize(int(fd), unix.TIOCGWINSZ) - if err != nil { - return 0, 0, err - } - return int(ws.Col), int(ws.Row), nil -} - -// passwordReader is an io.Reader that reads from a specific file descriptor. -type passwordReader int - -func (r passwordReader) Read(buf []byte) (int, error) { - return unix.Read(int(r), buf) -} - -func readPassword(fd uintptr) ([]byte, error) { - termios, err := unix.IoctlGetTermios(int(fd), ioctlReadTermios) - if err != nil { - return nil, err - } - - newState := *termios - newState.Lflag &^= unix.ECHO - newState.Lflag |= unix.ICANON | unix.ISIG - newState.Iflag |= unix.ICRNL - if err := unix.IoctlSetTermios(int(fd), ioctlWriteTermios, &newState); err != nil { - return nil, err - } - - defer unix.IoctlSetTermios(int(fd), ioctlWriteTermios, termios) - - return readPasswordLine(passwordReader(fd)) -} diff --git a/vendor/github.com/charmbracelet/x/term/term_unix_bsd.go b/vendor/github.com/charmbracelet/x/term/term_unix_bsd.go deleted file mode 100644 index b435031..0000000 --- a/vendor/github.com/charmbracelet/x/term/term_unix_bsd.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build darwin || dragonfly || freebsd || netbsd || openbsd -// +build darwin dragonfly freebsd netbsd openbsd - -package term - -import "golang.org/x/sys/unix" - -const ( - ioctlReadTermios = unix.TIOCGETA - ioctlWriteTermios = unix.TIOCSETA -) diff --git a/vendor/github.com/charmbracelet/x/term/term_unix_other.go b/vendor/github.com/charmbracelet/x/term/term_unix_other.go deleted file mode 100644 index ee2a29e..0000000 --- a/vendor/github.com/charmbracelet/x/term/term_unix_other.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build aix || linux || solaris || zos -// +build aix linux solaris zos - -package term - -import "golang.org/x/sys/unix" - -const ( - ioctlReadTermios = unix.TCGETS - ioctlWriteTermios = unix.TCSETS -) diff --git a/vendor/github.com/charmbracelet/x/term/term_windows.go b/vendor/github.com/charmbracelet/x/term/term_windows.go deleted file mode 100644 index fe7afde..0000000 --- a/vendor/github.com/charmbracelet/x/term/term_windows.go +++ /dev/null @@ -1,87 +0,0 @@ -//go:build windows -// +build windows - -package term - -import ( - "os" - - "golang.org/x/sys/windows" -) - -type state struct { - Mode uint32 -} - -func isTerminal(fd uintptr) bool { - var st uint32 - err := windows.GetConsoleMode(windows.Handle(fd), &st) - return err == nil -} - -func makeRaw(fd uintptr) (*State, error) { - var st uint32 - if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { - return nil, err - } - raw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT) - raw |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT - if err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil { - return nil, err - } - return &State{state{st}}, nil -} - -func setState(fd uintptr, state *State) error { - var mode uint32 - if state != nil { - mode = state.Mode - } - return windows.SetConsoleMode(windows.Handle(fd), mode) -} - -func getState(fd uintptr) (*State, error) { - var st uint32 - if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { - return nil, err - } - return &State{state{st}}, nil -} - -func restore(fd uintptr, state *State) error { - return windows.SetConsoleMode(windows.Handle(fd), state.Mode) -} - -func getSize(fd uintptr) (width, height int, err error) { - var info windows.ConsoleScreenBufferInfo - if err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil { - return 0, 0, err - } - return int(info.Window.Right - info.Window.Left + 1), int(info.Window.Bottom - info.Window.Top + 1), nil -} - -func readPassword(fd uintptr) ([]byte, error) { - var st uint32 - if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { - return nil, err - } - old := st - - st &^= (windows.ENABLE_ECHO_INPUT | windows.ENABLE_LINE_INPUT) - st |= (windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_PROCESSED_INPUT) - if err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil { - return nil, err - } - - defer windows.SetConsoleMode(windows.Handle(fd), old) - - var h windows.Handle - p, _ := windows.GetCurrentProcess() - if err := windows.DuplicateHandle(p, windows.Handle(fd), p, &h, 0, false, windows.DUPLICATE_SAME_ACCESS); err != nil { - return nil, err - } - - f := os.NewFile(uintptr(h), "stdin") - defer f.Close() - return readPasswordLine(f) -} diff --git a/vendor/github.com/charmbracelet/x/term/terminal.go b/vendor/github.com/charmbracelet/x/term/terminal.go deleted file mode 100644 index 8963163..0000000 --- a/vendor/github.com/charmbracelet/x/term/terminal.go +++ /dev/null @@ -1,12 +0,0 @@ -package term - -import ( - "io" -) - -// File represents a file that has a file descriptor and can be read from, -// written to, and closed. -type File interface { - io.ReadWriteCloser - Fd() uintptr -} diff --git a/vendor/github.com/charmbracelet/x/term/util.go b/vendor/github.com/charmbracelet/x/term/util.go deleted file mode 100644 index b731341..0000000 --- a/vendor/github.com/charmbracelet/x/term/util.go +++ /dev/null @@ -1,47 +0,0 @@ -package term - -import ( - "io" - "runtime" -) - -// readPasswordLine reads from reader until it finds \n or io.EOF. -// The slice returned does not include the \n. -// readPasswordLine also ignores any \r it finds. -// Windows uses \r as end of line. So, on Windows, readPasswordLine -// reads until it finds \r and ignores any \n it finds during processing. -func readPasswordLine(reader io.Reader) ([]byte, error) { - var buf [1]byte - var ret []byte - - for { - n, err := reader.Read(buf[:]) - if n > 0 { - switch buf[0] { - case '\b': - if len(ret) > 0 { - ret = ret[:len(ret)-1] - } - case '\n': - if runtime.GOOS != "windows" { - return ret, nil - } - // otherwise ignore \n - case '\r': - if runtime.GOOS == "windows" { - return ret, nil - } - // otherwise ignore \r - default: - ret = append(ret, buf[0]) - } - continue - } - if err != nil { - if err == io.EOF && len(ret) > 0 { - return ret, nil - } - return ret, err - } - } -} diff --git a/vendor/github.com/davecgh/go-spew/LICENSE b/vendor/github.com/davecgh/go-spew/LICENSE deleted file mode 100644 index bc52e96..0000000 --- a/vendor/github.com/davecgh/go-spew/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -ISC License - -Copyright (c) 2012-2016 Dave Collins - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/vendor/github.com/davecgh/go-spew/spew/bypass.go b/vendor/github.com/davecgh/go-spew/spew/bypass.go deleted file mode 100644 index 7929947..0000000 --- a/vendor/github.com/davecgh/go-spew/spew/bypass.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright (c) 2015-2016 Dave Collins -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when the code is not running on Google App Engine, compiled by GopherJS, and -// "-tags safe" is not added to the go build command line. The "disableunsafe" -// tag is deprecated and thus should not be used. -// Go versions prior to 1.4 are disabled because they use a different layout -// for interfaces which make the implementation of unsafeReflectValue more complex. -// +build !js,!appengine,!safe,!disableunsafe,go1.4 - -package spew - -import ( - "reflect" - "unsafe" -) - -const ( - // UnsafeDisabled is a build-time constant which specifies whether or - // not access to the unsafe package is available. - UnsafeDisabled = false - - // ptrSize is the size of a pointer on the current arch. - ptrSize = unsafe.Sizeof((*byte)(nil)) -) - -type flag uintptr - -var ( - // flagRO indicates whether the value field of a reflect.Value - // is read-only. - flagRO flag - - // flagAddr indicates whether the address of the reflect.Value's - // value may be taken. - flagAddr flag -) - -// flagKindMask holds the bits that make up the kind -// part of the flags field. In all the supported versions, -// it is in the lower 5 bits. -const flagKindMask = flag(0x1f) - -// Different versions of Go have used different -// bit layouts for the flags type. This table -// records the known combinations. -var okFlags = []struct { - ro, addr flag -}{{ - // From Go 1.4 to 1.5 - ro: 1 << 5, - addr: 1 << 7, -}, { - // Up to Go tip. - ro: 1<<5 | 1<<6, - addr: 1 << 8, -}} - -var flagValOffset = func() uintptr { - field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag") - if !ok { - panic("reflect.Value has no flag field") - } - return field.Offset -}() - -// flagField returns a pointer to the flag field of a reflect.Value. -func flagField(v *reflect.Value) *flag { - return (*flag)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + flagValOffset)) -} - -// unsafeReflectValue converts the passed reflect.Value into a one that bypasses -// the typical safety restrictions preventing access to unaddressable and -// unexported data. It works by digging the raw pointer to the underlying -// value out of the protected value and generating a new unprotected (unsafe) -// reflect.Value to it. -// -// This allows us to check for implementations of the Stringer and error -// interfaces to be used for pretty printing ordinarily unaddressable and -// inaccessible values such as unexported struct fields. -func unsafeReflectValue(v reflect.Value) reflect.Value { - if !v.IsValid() || (v.CanInterface() && v.CanAddr()) { - return v - } - flagFieldPtr := flagField(&v) - *flagFieldPtr &^= flagRO - *flagFieldPtr |= flagAddr - return v -} - -// Sanity checks against future reflect package changes -// to the type or semantics of the Value.flag field. -func init() { - field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag") - if !ok { - panic("reflect.Value has no flag field") - } - if field.Type.Kind() != reflect.TypeOf(flag(0)).Kind() { - panic("reflect.Value flag field has changed kind") - } - type t0 int - var t struct { - A t0 - // t0 will have flagEmbedRO set. - t0 - // a will have flagStickyRO set - a t0 - } - vA := reflect.ValueOf(t).FieldByName("A") - va := reflect.ValueOf(t).FieldByName("a") - vt0 := reflect.ValueOf(t).FieldByName("t0") - - // Infer flagRO from the difference between the flags - // for the (otherwise identical) fields in t. - flagPublic := *flagField(&vA) - flagWithRO := *flagField(&va) | *flagField(&vt0) - flagRO = flagPublic ^ flagWithRO - - // Infer flagAddr from the difference between a value - // taken from a pointer and not. - vPtrA := reflect.ValueOf(&t).Elem().FieldByName("A") - flagNoPtr := *flagField(&vA) - flagPtr := *flagField(&vPtrA) - flagAddr = flagNoPtr ^ flagPtr - - // Check that the inferred flags tally with one of the known versions. - for _, f := range okFlags { - if flagRO == f.ro && flagAddr == f.addr { - return - } - } - panic("reflect.Value read-only flag has changed semantics") -} diff --git a/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go deleted file mode 100644 index 205c28d..0000000 --- a/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2015-2016 Dave Collins -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when the code is running on Google App Engine, compiled by GopherJS, or -// "-tags safe" is added to the go build command line. The "disableunsafe" -// tag is deprecated and thus should not be used. -// +build js appengine safe disableunsafe !go1.4 - -package spew - -import "reflect" - -const ( - // UnsafeDisabled is a build-time constant which specifies whether or - // not access to the unsafe package is available. - UnsafeDisabled = true -) - -// unsafeReflectValue typically converts the passed reflect.Value into a one -// that bypasses the typical safety restrictions preventing access to -// unaddressable and unexported data. However, doing this relies on access to -// the unsafe package. This is a stub version which simply returns the passed -// reflect.Value when the unsafe package is not available. -func unsafeReflectValue(v reflect.Value) reflect.Value { - return v -} diff --git a/vendor/github.com/davecgh/go-spew/spew/common.go b/vendor/github.com/davecgh/go-spew/spew/common.go deleted file mode 100644 index 1be8ce9..0000000 --- a/vendor/github.com/davecgh/go-spew/spew/common.go +++ /dev/null @@ -1,341 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "bytes" - "fmt" - "io" - "reflect" - "sort" - "strconv" -) - -// Some constants in the form of bytes to avoid string overhead. This mirrors -// the technique used in the fmt package. -var ( - panicBytes = []byte("(PANIC=") - plusBytes = []byte("+") - iBytes = []byte("i") - trueBytes = []byte("true") - falseBytes = []byte("false") - interfaceBytes = []byte("(interface {})") - commaNewlineBytes = []byte(",\n") - newlineBytes = []byte("\n") - openBraceBytes = []byte("{") - openBraceNewlineBytes = []byte("{\n") - closeBraceBytes = []byte("}") - asteriskBytes = []byte("*") - colonBytes = []byte(":") - colonSpaceBytes = []byte(": ") - openParenBytes = []byte("(") - closeParenBytes = []byte(")") - spaceBytes = []byte(" ") - pointerChainBytes = []byte("->") - nilAngleBytes = []byte("") - maxNewlineBytes = []byte("\n") - maxShortBytes = []byte("") - circularBytes = []byte("") - circularShortBytes = []byte("") - invalidAngleBytes = []byte("") - openBracketBytes = []byte("[") - closeBracketBytes = []byte("]") - percentBytes = []byte("%") - precisionBytes = []byte(".") - openAngleBytes = []byte("<") - closeAngleBytes = []byte(">") - openMapBytes = []byte("map[") - closeMapBytes = []byte("]") - lenEqualsBytes = []byte("len=") - capEqualsBytes = []byte("cap=") -) - -// hexDigits is used to map a decimal value to a hex digit. -var hexDigits = "0123456789abcdef" - -// catchPanic handles any panics that might occur during the handleMethods -// calls. -func catchPanic(w io.Writer, v reflect.Value) { - if err := recover(); err != nil { - w.Write(panicBytes) - fmt.Fprintf(w, "%v", err) - w.Write(closeParenBytes) - } -} - -// handleMethods attempts to call the Error and String methods on the underlying -// type the passed reflect.Value represents and outputes the result to Writer w. -// -// It handles panics in any called methods by catching and displaying the error -// as the formatted value. -func handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) { - // We need an interface to check if the type implements the error or - // Stringer interface. However, the reflect package won't give us an - // interface on certain things like unexported struct fields in order - // to enforce visibility rules. We use unsafe, when it's available, - // to bypass these restrictions since this package does not mutate the - // values. - if !v.CanInterface() { - if UnsafeDisabled { - return false - } - - v = unsafeReflectValue(v) - } - - // Choose whether or not to do error and Stringer interface lookups against - // the base type or a pointer to the base type depending on settings. - // Technically calling one of these methods with a pointer receiver can - // mutate the value, however, types which choose to satisify an error or - // Stringer interface with a pointer receiver should not be mutating their - // state inside these interface methods. - if !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() { - v = unsafeReflectValue(v) - } - if v.CanAddr() { - v = v.Addr() - } - - // Is it an error or Stringer? - switch iface := v.Interface().(type) { - case error: - defer catchPanic(w, v) - if cs.ContinueOnMethod { - w.Write(openParenBytes) - w.Write([]byte(iface.Error())) - w.Write(closeParenBytes) - w.Write(spaceBytes) - return false - } - - w.Write([]byte(iface.Error())) - return true - - case fmt.Stringer: - defer catchPanic(w, v) - if cs.ContinueOnMethod { - w.Write(openParenBytes) - w.Write([]byte(iface.String())) - w.Write(closeParenBytes) - w.Write(spaceBytes) - return false - } - w.Write([]byte(iface.String())) - return true - } - return false -} - -// printBool outputs a boolean value as true or false to Writer w. -func printBool(w io.Writer, val bool) { - if val { - w.Write(trueBytes) - } else { - w.Write(falseBytes) - } -} - -// printInt outputs a signed integer value to Writer w. -func printInt(w io.Writer, val int64, base int) { - w.Write([]byte(strconv.FormatInt(val, base))) -} - -// printUint outputs an unsigned integer value to Writer w. -func printUint(w io.Writer, val uint64, base int) { - w.Write([]byte(strconv.FormatUint(val, base))) -} - -// printFloat outputs a floating point value using the specified precision, -// which is expected to be 32 or 64bit, to Writer w. -func printFloat(w io.Writer, val float64, precision int) { - w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision))) -} - -// printComplex outputs a complex value using the specified float precision -// for the real and imaginary parts to Writer w. -func printComplex(w io.Writer, c complex128, floatPrecision int) { - r := real(c) - w.Write(openParenBytes) - w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision))) - i := imag(c) - if i >= 0 { - w.Write(plusBytes) - } - w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision))) - w.Write(iBytes) - w.Write(closeParenBytes) -} - -// printHexPtr outputs a uintptr formatted as hexadecimal with a leading '0x' -// prefix to Writer w. -func printHexPtr(w io.Writer, p uintptr) { - // Null pointer. - num := uint64(p) - if num == 0 { - w.Write(nilAngleBytes) - return - } - - // Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix - buf := make([]byte, 18) - - // It's simpler to construct the hex string right to left. - base := uint64(16) - i := len(buf) - 1 - for num >= base { - buf[i] = hexDigits[num%base] - num /= base - i-- - } - buf[i] = hexDigits[num] - - // Add '0x' prefix. - i-- - buf[i] = 'x' - i-- - buf[i] = '0' - - // Strip unused leading bytes. - buf = buf[i:] - w.Write(buf) -} - -// valuesSorter implements sort.Interface to allow a slice of reflect.Value -// elements to be sorted. -type valuesSorter struct { - values []reflect.Value - strings []string // either nil or same len and values - cs *ConfigState -} - -// newValuesSorter initializes a valuesSorter instance, which holds a set of -// surrogate keys on which the data should be sorted. It uses flags in -// ConfigState to decide if and how to populate those surrogate keys. -func newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface { - vs := &valuesSorter{values: values, cs: cs} - if canSortSimply(vs.values[0].Kind()) { - return vs - } - if !cs.DisableMethods { - vs.strings = make([]string, len(values)) - for i := range vs.values { - b := bytes.Buffer{} - if !handleMethods(cs, &b, vs.values[i]) { - vs.strings = nil - break - } - vs.strings[i] = b.String() - } - } - if vs.strings == nil && cs.SpewKeys { - vs.strings = make([]string, len(values)) - for i := range vs.values { - vs.strings[i] = Sprintf("%#v", vs.values[i].Interface()) - } - } - return vs -} - -// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted -// directly, or whether it should be considered for sorting by surrogate keys -// (if the ConfigState allows it). -func canSortSimply(kind reflect.Kind) bool { - // This switch parallels valueSortLess, except for the default case. - switch kind { - case reflect.Bool: - return true - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - return true - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - return true - case reflect.Float32, reflect.Float64: - return true - case reflect.String: - return true - case reflect.Uintptr: - return true - case reflect.Array: - return true - } - return false -} - -// Len returns the number of values in the slice. It is part of the -// sort.Interface implementation. -func (s *valuesSorter) Len() int { - return len(s.values) -} - -// Swap swaps the values at the passed indices. It is part of the -// sort.Interface implementation. -func (s *valuesSorter) Swap(i, j int) { - s.values[i], s.values[j] = s.values[j], s.values[i] - if s.strings != nil { - s.strings[i], s.strings[j] = s.strings[j], s.strings[i] - } -} - -// valueSortLess returns whether the first value should sort before the second -// value. It is used by valueSorter.Less as part of the sort.Interface -// implementation. -func valueSortLess(a, b reflect.Value) bool { - switch a.Kind() { - case reflect.Bool: - return !a.Bool() && b.Bool() - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - return a.Int() < b.Int() - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - return a.Uint() < b.Uint() - case reflect.Float32, reflect.Float64: - return a.Float() < b.Float() - case reflect.String: - return a.String() < b.String() - case reflect.Uintptr: - return a.Uint() < b.Uint() - case reflect.Array: - // Compare the contents of both arrays. - l := a.Len() - for i := 0; i < l; i++ { - av := a.Index(i) - bv := b.Index(i) - if av.Interface() == bv.Interface() { - continue - } - return valueSortLess(av, bv) - } - } - return a.String() < b.String() -} - -// Less returns whether the value at index i should sort before the -// value at index j. It is part of the sort.Interface implementation. -func (s *valuesSorter) Less(i, j int) bool { - if s.strings == nil { - return valueSortLess(s.values[i], s.values[j]) - } - return s.strings[i] < s.strings[j] -} - -// sortValues is a sort function that handles both native types and any type that -// can be converted to error or Stringer. Other inputs are sorted according to -// their Value.String() value to ensure display stability. -func sortValues(values []reflect.Value, cs *ConfigState) { - if len(values) == 0 { - return - } - sort.Sort(newValuesSorter(values, cs)) -} diff --git a/vendor/github.com/davecgh/go-spew/spew/config.go b/vendor/github.com/davecgh/go-spew/spew/config.go deleted file mode 100644 index 2e3d22f..0000000 --- a/vendor/github.com/davecgh/go-spew/spew/config.go +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "bytes" - "fmt" - "io" - "os" -) - -// ConfigState houses the configuration options used by spew to format and -// display values. There is a global instance, Config, that is used to control -// all top-level Formatter and Dump functionality. Each ConfigState instance -// provides methods equivalent to the top-level functions. -// -// The zero value for ConfigState provides no indentation. You would typically -// want to set it to a space or a tab. -// -// Alternatively, you can use NewDefaultConfig to get a ConfigState instance -// with default settings. See the documentation of NewDefaultConfig for default -// values. -type ConfigState struct { - // Indent specifies the string to use for each indentation level. The - // global config instance that all top-level functions use set this to a - // single space by default. If you would like more indentation, you might - // set this to a tab with "\t" or perhaps two spaces with " ". - Indent string - - // MaxDepth controls the maximum number of levels to descend into nested - // data structures. The default, 0, means there is no limit. - // - // NOTE: Circular data structures are properly detected, so it is not - // necessary to set this value unless you specifically want to limit deeply - // nested data structures. - MaxDepth int - - // DisableMethods specifies whether or not error and Stringer interfaces are - // invoked for types that implement them. - DisableMethods bool - - // DisablePointerMethods specifies whether or not to check for and invoke - // error and Stringer interfaces on types which only accept a pointer - // receiver when the current type is not a pointer. - // - // NOTE: This might be an unsafe action since calling one of these methods - // with a pointer receiver could technically mutate the value, however, - // in practice, types which choose to satisify an error or Stringer - // interface with a pointer receiver should not be mutating their state - // inside these interface methods. As a result, this option relies on - // access to the unsafe package, so it will not have any effect when - // running in environments without access to the unsafe package such as - // Google App Engine or with the "safe" build tag specified. - DisablePointerMethods bool - - // DisablePointerAddresses specifies whether to disable the printing of - // pointer addresses. This is useful when diffing data structures in tests. - DisablePointerAddresses bool - - // DisableCapacities specifies whether to disable the printing of capacities - // for arrays, slices, maps and channels. This is useful when diffing - // data structures in tests. - DisableCapacities bool - - // ContinueOnMethod specifies whether or not recursion should continue once - // a custom error or Stringer interface is invoked. The default, false, - // means it will print the results of invoking the custom error or Stringer - // interface and return immediately instead of continuing to recurse into - // the internals of the data type. - // - // NOTE: This flag does not have any effect if method invocation is disabled - // via the DisableMethods or DisablePointerMethods options. - ContinueOnMethod bool - - // SortKeys specifies map keys should be sorted before being printed. Use - // this to have a more deterministic, diffable output. Note that only - // native types (bool, int, uint, floats, uintptr and string) and types - // that support the error or Stringer interfaces (if methods are - // enabled) are supported, with other types sorted according to the - // reflect.Value.String() output which guarantees display stability. - SortKeys bool - - // SpewKeys specifies that, as a last resort attempt, map keys should - // be spewed to strings and sorted by those strings. This is only - // considered if SortKeys is true. - SpewKeys bool -} - -// Config is the active configuration of the top-level functions. -// The configuration can be changed by modifying the contents of spew.Config. -var Config = ConfigState{Indent: " "} - -// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the formatted string as a value that satisfies error. See NewFormatter -// for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Errorf(format string, a ...interface{}) (err error) { - return fmt.Errorf(format, c.convertArgs(a)...) -} - -// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprint(w, c.convertArgs(a)...) -} - -// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { - return fmt.Fprintf(w, format, c.convertArgs(a)...) -} - -// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it -// passed with a Formatter interface returned by c.NewFormatter. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprintln(w, c.convertArgs(a)...) -} - -// Print is a wrapper for fmt.Print that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Print(c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Print(a ...interface{}) (n int, err error) { - return fmt.Print(c.convertArgs(a)...) -} - -// Printf is a wrapper for fmt.Printf that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) { - return fmt.Printf(format, c.convertArgs(a)...) -} - -// Println is a wrapper for fmt.Println that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Println(c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Println(a ...interface{}) (n int, err error) { - return fmt.Println(c.convertArgs(a)...) -} - -// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprint(c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Sprint(a ...interface{}) string { - return fmt.Sprint(c.convertArgs(a)...) -} - -// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were -// passed with a Formatter interface returned by c.NewFormatter. It returns -// the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Sprintf(format string, a ...interface{}) string { - return fmt.Sprintf(format, c.convertArgs(a)...) -} - -// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it -// were passed with a Formatter interface returned by c.NewFormatter. It -// returns the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b)) -func (c *ConfigState) Sprintln(a ...interface{}) string { - return fmt.Sprintln(c.convertArgs(a)...) -} - -/* -NewFormatter returns a custom formatter that satisfies the fmt.Formatter -interface. As a result, it integrates cleanly with standard fmt package -printing functions. The formatter is useful for inline printing of smaller data -types similar to the standard %v format specifier. - -The custom formatter only responds to the %v (most compact), %+v (adds pointer -addresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb -combinations. Any other verbs such as %x and %q will be sent to the the -standard fmt package for formatting. In addition, the custom formatter ignores -the width and precision arguments (however they will still work on the format -specifiers not handled by the custom formatter). - -Typically this function shouldn't be called directly. It is much easier to make -use of the custom formatter by calling one of the convenience functions such as -c.Printf, c.Println, or c.Printf. -*/ -func (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter { - return newFormatter(c, v) -} - -// Fdump formats and displays the passed arguments to io.Writer w. It formats -// exactly the same as Dump. -func (c *ConfigState) Fdump(w io.Writer, a ...interface{}) { - fdump(c, w, a...) -} - -/* -Dump displays the passed parameters to standard out with newlines, customizable -indentation, and additional debug information such as complete types and all -pointer addresses used to indirect to the final value. It provides the -following features over the built-in printing facilities provided by the fmt -package: - - * Pointers are dereferenced and followed - * Circular data structures are detected and handled properly - * Custom Stringer/error interfaces are optionally invoked, including - on unexported types - * Custom types which only implement the Stringer/error interfaces via - a pointer receiver are optionally invoked when passing non-pointer - variables - * Byte arrays and slices are dumped like the hexdump -C command which - includes offsets, byte values in hex, and ASCII output - -The configuration options are controlled by modifying the public members -of c. See ConfigState for options documentation. - -See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to -get the formatted result as a string. -*/ -func (c *ConfigState) Dump(a ...interface{}) { - fdump(c, os.Stdout, a...) -} - -// Sdump returns a string with the passed arguments formatted exactly the same -// as Dump. -func (c *ConfigState) Sdump(a ...interface{}) string { - var buf bytes.Buffer - fdump(c, &buf, a...) - return buf.String() -} - -// convertArgs accepts a slice of arguments and returns a slice of the same -// length with each argument converted to a spew Formatter interface using -// the ConfigState associated with s. -func (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) { - formatters = make([]interface{}, len(args)) - for index, arg := range args { - formatters[index] = newFormatter(c, arg) - } - return formatters -} - -// NewDefaultConfig returns a ConfigState with the following default settings. -// -// Indent: " " -// MaxDepth: 0 -// DisableMethods: false -// DisablePointerMethods: false -// ContinueOnMethod: false -// SortKeys: false -func NewDefaultConfig() *ConfigState { - return &ConfigState{Indent: " "} -} diff --git a/vendor/github.com/davecgh/go-spew/spew/doc.go b/vendor/github.com/davecgh/go-spew/spew/doc.go deleted file mode 100644 index aacaac6..0000000 --- a/vendor/github.com/davecgh/go-spew/spew/doc.go +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* -Package spew implements a deep pretty printer for Go data structures to aid in -debugging. - -A quick overview of the additional features spew provides over the built-in -printing facilities for Go data types are as follows: - - * Pointers are dereferenced and followed - * Circular data structures are detected and handled properly - * Custom Stringer/error interfaces are optionally invoked, including - on unexported types - * Custom types which only implement the Stringer/error interfaces via - a pointer receiver are optionally invoked when passing non-pointer - variables - * Byte arrays and slices are dumped like the hexdump -C command which - includes offsets, byte values in hex, and ASCII output (only when using - Dump style) - -There are two different approaches spew allows for dumping Go data structures: - - * Dump style which prints with newlines, customizable indentation, - and additional debug information such as types and all pointer addresses - used to indirect to the final value - * A custom Formatter interface that integrates cleanly with the standard fmt - package and replaces %v, %+v, %#v, and %#+v to provide inline printing - similar to the default %v while providing the additional functionality - outlined above and passing unsupported format verbs such as %x and %q - along to fmt - -Quick Start - -This section demonstrates how to quickly get started with spew. See the -sections below for further details on formatting and configuration options. - -To dump a variable with full newlines, indentation, type, and pointer -information use Dump, Fdump, or Sdump: - spew.Dump(myVar1, myVar2, ...) - spew.Fdump(someWriter, myVar1, myVar2, ...) - str := spew.Sdump(myVar1, myVar2, ...) - -Alternatively, if you would prefer to use format strings with a compacted inline -printing style, use the convenience wrappers Printf, Fprintf, etc with -%v (most compact), %+v (adds pointer addresses), %#v (adds types), or -%#+v (adds types and pointer addresses): - spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) - spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) - spew.Fprintf(someWriter, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) - spew.Fprintf(someWriter, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) - -Configuration Options - -Configuration of spew is handled by fields in the ConfigState type. For -convenience, all of the top-level functions use a global state available -via the spew.Config global. - -It is also possible to create a ConfigState instance that provides methods -equivalent to the top-level functions. This allows concurrent configuration -options. See the ConfigState documentation for more details. - -The following configuration options are available: - * Indent - String to use for each indentation level for Dump functions. - It is a single space by default. A popular alternative is "\t". - - * MaxDepth - Maximum number of levels to descend into nested data structures. - There is no limit by default. - - * DisableMethods - Disables invocation of error and Stringer interface methods. - Method invocation is enabled by default. - - * DisablePointerMethods - Disables invocation of error and Stringer interface methods on types - which only accept pointer receivers from non-pointer variables. - Pointer method invocation is enabled by default. - - * DisablePointerAddresses - DisablePointerAddresses specifies whether to disable the printing of - pointer addresses. This is useful when diffing data structures in tests. - - * DisableCapacities - DisableCapacities specifies whether to disable the printing of - capacities for arrays, slices, maps and channels. This is useful when - diffing data structures in tests. - - * ContinueOnMethod - Enables recursion into types after invoking error and Stringer interface - methods. Recursion after method invocation is disabled by default. - - * SortKeys - Specifies map keys should be sorted before being printed. Use - this to have a more deterministic, diffable output. Note that - only native types (bool, int, uint, floats, uintptr and string) - and types which implement error or Stringer interfaces are - supported with other types sorted according to the - reflect.Value.String() output which guarantees display - stability. Natural map order is used by default. - - * SpewKeys - Specifies that, as a last resort attempt, map keys should be - spewed to strings and sorted by those strings. This is only - considered if SortKeys is true. - -Dump Usage - -Simply call spew.Dump with a list of variables you want to dump: - - spew.Dump(myVar1, myVar2, ...) - -You may also call spew.Fdump if you would prefer to output to an arbitrary -io.Writer. For example, to dump to standard error: - - spew.Fdump(os.Stderr, myVar1, myVar2, ...) - -A third option is to call spew.Sdump to get the formatted output as a string: - - str := spew.Sdump(myVar1, myVar2, ...) - -Sample Dump Output - -See the Dump example for details on the setup of the types and variables being -shown here. - - (main.Foo) { - unexportedField: (*main.Bar)(0xf84002e210)({ - flag: (main.Flag) flagTwo, - data: (uintptr) - }), - ExportedField: (map[interface {}]interface {}) (len=1) { - (string) (len=3) "one": (bool) true - } - } - -Byte (and uint8) arrays and slices are displayed uniquely like the hexdump -C -command as shown. - ([]uint8) (len=32 cap=32) { - 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... | - 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0| - 00000020 31 32 |12| - } - -Custom Formatter - -Spew provides a custom formatter that implements the fmt.Formatter interface -so that it integrates cleanly with standard fmt package printing functions. The -formatter is useful for inline printing of smaller data types similar to the -standard %v format specifier. - -The custom formatter only responds to the %v (most compact), %+v (adds pointer -addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb -combinations. Any other verbs such as %x and %q will be sent to the the -standard fmt package for formatting. In addition, the custom formatter ignores -the width and precision arguments (however they will still work on the format -specifiers not handled by the custom formatter). - -Custom Formatter Usage - -The simplest way to make use of the spew custom formatter is to call one of the -convenience functions such as spew.Printf, spew.Println, or spew.Printf. The -functions have syntax you are most likely already familiar with: - - spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) - spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) - spew.Println(myVar, myVar2) - spew.Fprintf(os.Stderr, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) - spew.Fprintf(os.Stderr, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) - -See the Index for the full list convenience functions. - -Sample Formatter Output - -Double pointer to a uint8: - %v: <**>5 - %+v: <**>(0xf8400420d0->0xf8400420c8)5 - %#v: (**uint8)5 - %#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5 - -Pointer to circular struct with a uint8 field and a pointer to itself: - %v: <*>{1 <*>} - %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)} - %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)} - %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)} - -See the Printf example for details on the setup of variables being shown -here. - -Errors - -Since it is possible for custom Stringer/error interfaces to panic, spew -detects them and handles them internally by printing the panic information -inline with the output. Since spew is intended to provide deep pretty printing -capabilities on structures, it intentionally does not return any errors. -*/ -package spew diff --git a/vendor/github.com/davecgh/go-spew/spew/dump.go b/vendor/github.com/davecgh/go-spew/spew/dump.go deleted file mode 100644 index f78d89f..0000000 --- a/vendor/github.com/davecgh/go-spew/spew/dump.go +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "bytes" - "encoding/hex" - "fmt" - "io" - "os" - "reflect" - "regexp" - "strconv" - "strings" -) - -var ( - // uint8Type is a reflect.Type representing a uint8. It is used to - // convert cgo types to uint8 slices for hexdumping. - uint8Type = reflect.TypeOf(uint8(0)) - - // cCharRE is a regular expression that matches a cgo char. - // It is used to detect character arrays to hexdump them. - cCharRE = regexp.MustCompile(`^.*\._Ctype_char$`) - - // cUnsignedCharRE is a regular expression that matches a cgo unsigned - // char. It is used to detect unsigned character arrays to hexdump - // them. - cUnsignedCharRE = regexp.MustCompile(`^.*\._Ctype_unsignedchar$`) - - // cUint8tCharRE is a regular expression that matches a cgo uint8_t. - // It is used to detect uint8_t arrays to hexdump them. - cUint8tCharRE = regexp.MustCompile(`^.*\._Ctype_uint8_t$`) -) - -// dumpState contains information about the state of a dump operation. -type dumpState struct { - w io.Writer - depth int - pointers map[uintptr]int - ignoreNextType bool - ignoreNextIndent bool - cs *ConfigState -} - -// indent performs indentation according to the depth level and cs.Indent -// option. -func (d *dumpState) indent() { - if d.ignoreNextIndent { - d.ignoreNextIndent = false - return - } - d.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth)) -} - -// unpackValue returns values inside of non-nil interfaces when possible. -// This is useful for data types like structs, arrays, slices, and maps which -// can contain varying types packed inside an interface. -func (d *dumpState) unpackValue(v reflect.Value) reflect.Value { - if v.Kind() == reflect.Interface && !v.IsNil() { - v = v.Elem() - } - return v -} - -// dumpPtr handles formatting of pointers by indirecting them as necessary. -func (d *dumpState) dumpPtr(v reflect.Value) { - // Remove pointers at or below the current depth from map used to detect - // circular refs. - for k, depth := range d.pointers { - if depth >= d.depth { - delete(d.pointers, k) - } - } - - // Keep list of all dereferenced pointers to show later. - pointerChain := make([]uintptr, 0) - - // Figure out how many levels of indirection there are by dereferencing - // pointers and unpacking interfaces down the chain while detecting circular - // references. - nilFound := false - cycleFound := false - indirects := 0 - ve := v - for ve.Kind() == reflect.Ptr { - if ve.IsNil() { - nilFound = true - break - } - indirects++ - addr := ve.Pointer() - pointerChain = append(pointerChain, addr) - if pd, ok := d.pointers[addr]; ok && pd < d.depth { - cycleFound = true - indirects-- - break - } - d.pointers[addr] = d.depth - - ve = ve.Elem() - if ve.Kind() == reflect.Interface { - if ve.IsNil() { - nilFound = true - break - } - ve = ve.Elem() - } - } - - // Display type information. - d.w.Write(openParenBytes) - d.w.Write(bytes.Repeat(asteriskBytes, indirects)) - d.w.Write([]byte(ve.Type().String())) - d.w.Write(closeParenBytes) - - // Display pointer information. - if !d.cs.DisablePointerAddresses && len(pointerChain) > 0 { - d.w.Write(openParenBytes) - for i, addr := range pointerChain { - if i > 0 { - d.w.Write(pointerChainBytes) - } - printHexPtr(d.w, addr) - } - d.w.Write(closeParenBytes) - } - - // Display dereferenced value. - d.w.Write(openParenBytes) - switch { - case nilFound: - d.w.Write(nilAngleBytes) - - case cycleFound: - d.w.Write(circularBytes) - - default: - d.ignoreNextType = true - d.dump(ve) - } - d.w.Write(closeParenBytes) -} - -// dumpSlice handles formatting of arrays and slices. Byte (uint8 under -// reflection) arrays and slices are dumped in hexdump -C fashion. -func (d *dumpState) dumpSlice(v reflect.Value) { - // Determine whether this type should be hex dumped or not. Also, - // for types which should be hexdumped, try to use the underlying data - // first, then fall back to trying to convert them to a uint8 slice. - var buf []uint8 - doConvert := false - doHexDump := false - numEntries := v.Len() - if numEntries > 0 { - vt := v.Index(0).Type() - vts := vt.String() - switch { - // C types that need to be converted. - case cCharRE.MatchString(vts): - fallthrough - case cUnsignedCharRE.MatchString(vts): - fallthrough - case cUint8tCharRE.MatchString(vts): - doConvert = true - - // Try to use existing uint8 slices and fall back to converting - // and copying if that fails. - case vt.Kind() == reflect.Uint8: - // We need an addressable interface to convert the type - // to a byte slice. However, the reflect package won't - // give us an interface on certain things like - // unexported struct fields in order to enforce - // visibility rules. We use unsafe, when available, to - // bypass these restrictions since this package does not - // mutate the values. - vs := v - if !vs.CanInterface() || !vs.CanAddr() { - vs = unsafeReflectValue(vs) - } - if !UnsafeDisabled { - vs = vs.Slice(0, numEntries) - - // Use the existing uint8 slice if it can be - // type asserted. - iface := vs.Interface() - if slice, ok := iface.([]uint8); ok { - buf = slice - doHexDump = true - break - } - } - - // The underlying data needs to be converted if it can't - // be type asserted to a uint8 slice. - doConvert = true - } - - // Copy and convert the underlying type if needed. - if doConvert && vt.ConvertibleTo(uint8Type) { - // Convert and copy each element into a uint8 byte - // slice. - buf = make([]uint8, numEntries) - for i := 0; i < numEntries; i++ { - vv := v.Index(i) - buf[i] = uint8(vv.Convert(uint8Type).Uint()) - } - doHexDump = true - } - } - - // Hexdump the entire slice as needed. - if doHexDump { - indent := strings.Repeat(d.cs.Indent, d.depth) - str := indent + hex.Dump(buf) - str = strings.Replace(str, "\n", "\n"+indent, -1) - str = strings.TrimRight(str, d.cs.Indent) - d.w.Write([]byte(str)) - return - } - - // Recursively call dump for each item. - for i := 0; i < numEntries; i++ { - d.dump(d.unpackValue(v.Index(i))) - if i < (numEntries - 1) { - d.w.Write(commaNewlineBytes) - } else { - d.w.Write(newlineBytes) - } - } -} - -// dump is the main workhorse for dumping a value. It uses the passed reflect -// value to figure out what kind of object we are dealing with and formats it -// appropriately. It is a recursive function, however circular data structures -// are detected and handled properly. -func (d *dumpState) dump(v reflect.Value) { - // Handle invalid reflect values immediately. - kind := v.Kind() - if kind == reflect.Invalid { - d.w.Write(invalidAngleBytes) - return - } - - // Handle pointers specially. - if kind == reflect.Ptr { - d.indent() - d.dumpPtr(v) - return - } - - // Print type information unless already handled elsewhere. - if !d.ignoreNextType { - d.indent() - d.w.Write(openParenBytes) - d.w.Write([]byte(v.Type().String())) - d.w.Write(closeParenBytes) - d.w.Write(spaceBytes) - } - d.ignoreNextType = false - - // Display length and capacity if the built-in len and cap functions - // work with the value's kind and the len/cap itself is non-zero. - valueLen, valueCap := 0, 0 - switch v.Kind() { - case reflect.Array, reflect.Slice, reflect.Chan: - valueLen, valueCap = v.Len(), v.Cap() - case reflect.Map, reflect.String: - valueLen = v.Len() - } - if valueLen != 0 || !d.cs.DisableCapacities && valueCap != 0 { - d.w.Write(openParenBytes) - if valueLen != 0 { - d.w.Write(lenEqualsBytes) - printInt(d.w, int64(valueLen), 10) - } - if !d.cs.DisableCapacities && valueCap != 0 { - if valueLen != 0 { - d.w.Write(spaceBytes) - } - d.w.Write(capEqualsBytes) - printInt(d.w, int64(valueCap), 10) - } - d.w.Write(closeParenBytes) - d.w.Write(spaceBytes) - } - - // Call Stringer/error interfaces if they exist and the handle methods flag - // is enabled - if !d.cs.DisableMethods { - if (kind != reflect.Invalid) && (kind != reflect.Interface) { - if handled := handleMethods(d.cs, d.w, v); handled { - return - } - } - } - - switch kind { - case reflect.Invalid: - // Do nothing. We should never get here since invalid has already - // been handled above. - - case reflect.Bool: - printBool(d.w, v.Bool()) - - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - printInt(d.w, v.Int(), 10) - - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - printUint(d.w, v.Uint(), 10) - - case reflect.Float32: - printFloat(d.w, v.Float(), 32) - - case reflect.Float64: - printFloat(d.w, v.Float(), 64) - - case reflect.Complex64: - printComplex(d.w, v.Complex(), 32) - - case reflect.Complex128: - printComplex(d.w, v.Complex(), 64) - - case reflect.Slice: - if v.IsNil() { - d.w.Write(nilAngleBytes) - break - } - fallthrough - - case reflect.Array: - d.w.Write(openBraceNewlineBytes) - d.depth++ - if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { - d.indent() - d.w.Write(maxNewlineBytes) - } else { - d.dumpSlice(v) - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - - case reflect.String: - d.w.Write([]byte(strconv.Quote(v.String()))) - - case reflect.Interface: - // The only time we should get here is for nil interfaces due to - // unpackValue calls. - if v.IsNil() { - d.w.Write(nilAngleBytes) - } - - case reflect.Ptr: - // Do nothing. We should never get here since pointers have already - // been handled above. - - case reflect.Map: - // nil maps should be indicated as different than empty maps - if v.IsNil() { - d.w.Write(nilAngleBytes) - break - } - - d.w.Write(openBraceNewlineBytes) - d.depth++ - if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { - d.indent() - d.w.Write(maxNewlineBytes) - } else { - numEntries := v.Len() - keys := v.MapKeys() - if d.cs.SortKeys { - sortValues(keys, d.cs) - } - for i, key := range keys { - d.dump(d.unpackValue(key)) - d.w.Write(colonSpaceBytes) - d.ignoreNextIndent = true - d.dump(d.unpackValue(v.MapIndex(key))) - if i < (numEntries - 1) { - d.w.Write(commaNewlineBytes) - } else { - d.w.Write(newlineBytes) - } - } - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - - case reflect.Struct: - d.w.Write(openBraceNewlineBytes) - d.depth++ - if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { - d.indent() - d.w.Write(maxNewlineBytes) - } else { - vt := v.Type() - numFields := v.NumField() - for i := 0; i < numFields; i++ { - d.indent() - vtf := vt.Field(i) - d.w.Write([]byte(vtf.Name)) - d.w.Write(colonSpaceBytes) - d.ignoreNextIndent = true - d.dump(d.unpackValue(v.Field(i))) - if i < (numFields - 1) { - d.w.Write(commaNewlineBytes) - } else { - d.w.Write(newlineBytes) - } - } - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - - case reflect.Uintptr: - printHexPtr(d.w, uintptr(v.Uint())) - - case reflect.UnsafePointer, reflect.Chan, reflect.Func: - printHexPtr(d.w, v.Pointer()) - - // There were not any other types at the time this code was written, but - // fall back to letting the default fmt package handle it in case any new - // types are added. - default: - if v.CanInterface() { - fmt.Fprintf(d.w, "%v", v.Interface()) - } else { - fmt.Fprintf(d.w, "%v", v.String()) - } - } -} - -// fdump is a helper function to consolidate the logic from the various public -// methods which take varying writers and config states. -func fdump(cs *ConfigState, w io.Writer, a ...interface{}) { - for _, arg := range a { - if arg == nil { - w.Write(interfaceBytes) - w.Write(spaceBytes) - w.Write(nilAngleBytes) - w.Write(newlineBytes) - continue - } - - d := dumpState{w: w, cs: cs} - d.pointers = make(map[uintptr]int) - d.dump(reflect.ValueOf(arg)) - d.w.Write(newlineBytes) - } -} - -// Fdump formats and displays the passed arguments to io.Writer w. It formats -// exactly the same as Dump. -func Fdump(w io.Writer, a ...interface{}) { - fdump(&Config, w, a...) -} - -// Sdump returns a string with the passed arguments formatted exactly the same -// as Dump. -func Sdump(a ...interface{}) string { - var buf bytes.Buffer - fdump(&Config, &buf, a...) - return buf.String() -} - -/* -Dump displays the passed parameters to standard out with newlines, customizable -indentation, and additional debug information such as complete types and all -pointer addresses used to indirect to the final value. It provides the -following features over the built-in printing facilities provided by the fmt -package: - - * Pointers are dereferenced and followed - * Circular data structures are detected and handled properly - * Custom Stringer/error interfaces are optionally invoked, including - on unexported types - * Custom types which only implement the Stringer/error interfaces via - a pointer receiver are optionally invoked when passing non-pointer - variables - * Byte arrays and slices are dumped like the hexdump -C command which - includes offsets, byte values in hex, and ASCII output - -The configuration options are controlled by an exported package global, -spew.Config. See ConfigState for options documentation. - -See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to -get the formatted result as a string. -*/ -func Dump(a ...interface{}) { - fdump(&Config, os.Stdout, a...) -} diff --git a/vendor/github.com/davecgh/go-spew/spew/format.go b/vendor/github.com/davecgh/go-spew/spew/format.go deleted file mode 100644 index b04edb7..0000000 --- a/vendor/github.com/davecgh/go-spew/spew/format.go +++ /dev/null @@ -1,419 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "bytes" - "fmt" - "reflect" - "strconv" - "strings" -) - -// supportedFlags is a list of all the character flags supported by fmt package. -const supportedFlags = "0-+# " - -// formatState implements the fmt.Formatter interface and contains information -// about the state of a formatting operation. The NewFormatter function can -// be used to get a new Formatter which can be used directly as arguments -// in standard fmt package printing calls. -type formatState struct { - value interface{} - fs fmt.State - depth int - pointers map[uintptr]int - ignoreNextType bool - cs *ConfigState -} - -// buildDefaultFormat recreates the original format string without precision -// and width information to pass in to fmt.Sprintf in the case of an -// unrecognized type. Unless new types are added to the language, this -// function won't ever be called. -func (f *formatState) buildDefaultFormat() (format string) { - buf := bytes.NewBuffer(percentBytes) - - for _, flag := range supportedFlags { - if f.fs.Flag(int(flag)) { - buf.WriteRune(flag) - } - } - - buf.WriteRune('v') - - format = buf.String() - return format -} - -// constructOrigFormat recreates the original format string including precision -// and width information to pass along to the standard fmt package. This allows -// automatic deferral of all format strings this package doesn't support. -func (f *formatState) constructOrigFormat(verb rune) (format string) { - buf := bytes.NewBuffer(percentBytes) - - for _, flag := range supportedFlags { - if f.fs.Flag(int(flag)) { - buf.WriteRune(flag) - } - } - - if width, ok := f.fs.Width(); ok { - buf.WriteString(strconv.Itoa(width)) - } - - if precision, ok := f.fs.Precision(); ok { - buf.Write(precisionBytes) - buf.WriteString(strconv.Itoa(precision)) - } - - buf.WriteRune(verb) - - format = buf.String() - return format -} - -// unpackValue returns values inside of non-nil interfaces when possible and -// ensures that types for values which have been unpacked from an interface -// are displayed when the show types flag is also set. -// This is useful for data types like structs, arrays, slices, and maps which -// can contain varying types packed inside an interface. -func (f *formatState) unpackValue(v reflect.Value) reflect.Value { - if v.Kind() == reflect.Interface { - f.ignoreNextType = false - if !v.IsNil() { - v = v.Elem() - } - } - return v -} - -// formatPtr handles formatting of pointers by indirecting them as necessary. -func (f *formatState) formatPtr(v reflect.Value) { - // Display nil if top level pointer is nil. - showTypes := f.fs.Flag('#') - if v.IsNil() && (!showTypes || f.ignoreNextType) { - f.fs.Write(nilAngleBytes) - return - } - - // Remove pointers at or below the current depth from map used to detect - // circular refs. - for k, depth := range f.pointers { - if depth >= f.depth { - delete(f.pointers, k) - } - } - - // Keep list of all dereferenced pointers to possibly show later. - pointerChain := make([]uintptr, 0) - - // Figure out how many levels of indirection there are by derferencing - // pointers and unpacking interfaces down the chain while detecting circular - // references. - nilFound := false - cycleFound := false - indirects := 0 - ve := v - for ve.Kind() == reflect.Ptr { - if ve.IsNil() { - nilFound = true - break - } - indirects++ - addr := ve.Pointer() - pointerChain = append(pointerChain, addr) - if pd, ok := f.pointers[addr]; ok && pd < f.depth { - cycleFound = true - indirects-- - break - } - f.pointers[addr] = f.depth - - ve = ve.Elem() - if ve.Kind() == reflect.Interface { - if ve.IsNil() { - nilFound = true - break - } - ve = ve.Elem() - } - } - - // Display type or indirection level depending on flags. - if showTypes && !f.ignoreNextType { - f.fs.Write(openParenBytes) - f.fs.Write(bytes.Repeat(asteriskBytes, indirects)) - f.fs.Write([]byte(ve.Type().String())) - f.fs.Write(closeParenBytes) - } else { - if nilFound || cycleFound { - indirects += strings.Count(ve.Type().String(), "*") - } - f.fs.Write(openAngleBytes) - f.fs.Write([]byte(strings.Repeat("*", indirects))) - f.fs.Write(closeAngleBytes) - } - - // Display pointer information depending on flags. - if f.fs.Flag('+') && (len(pointerChain) > 0) { - f.fs.Write(openParenBytes) - for i, addr := range pointerChain { - if i > 0 { - f.fs.Write(pointerChainBytes) - } - printHexPtr(f.fs, addr) - } - f.fs.Write(closeParenBytes) - } - - // Display dereferenced value. - switch { - case nilFound: - f.fs.Write(nilAngleBytes) - - case cycleFound: - f.fs.Write(circularShortBytes) - - default: - f.ignoreNextType = true - f.format(ve) - } -} - -// format is the main workhorse for providing the Formatter interface. It -// uses the passed reflect value to figure out what kind of object we are -// dealing with and formats it appropriately. It is a recursive function, -// however circular data structures are detected and handled properly. -func (f *formatState) format(v reflect.Value) { - // Handle invalid reflect values immediately. - kind := v.Kind() - if kind == reflect.Invalid { - f.fs.Write(invalidAngleBytes) - return - } - - // Handle pointers specially. - if kind == reflect.Ptr { - f.formatPtr(v) - return - } - - // Print type information unless already handled elsewhere. - if !f.ignoreNextType && f.fs.Flag('#') { - f.fs.Write(openParenBytes) - f.fs.Write([]byte(v.Type().String())) - f.fs.Write(closeParenBytes) - } - f.ignoreNextType = false - - // Call Stringer/error interfaces if they exist and the handle methods - // flag is enabled. - if !f.cs.DisableMethods { - if (kind != reflect.Invalid) && (kind != reflect.Interface) { - if handled := handleMethods(f.cs, f.fs, v); handled { - return - } - } - } - - switch kind { - case reflect.Invalid: - // Do nothing. We should never get here since invalid has already - // been handled above. - - case reflect.Bool: - printBool(f.fs, v.Bool()) - - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - printInt(f.fs, v.Int(), 10) - - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - printUint(f.fs, v.Uint(), 10) - - case reflect.Float32: - printFloat(f.fs, v.Float(), 32) - - case reflect.Float64: - printFloat(f.fs, v.Float(), 64) - - case reflect.Complex64: - printComplex(f.fs, v.Complex(), 32) - - case reflect.Complex128: - printComplex(f.fs, v.Complex(), 64) - - case reflect.Slice: - if v.IsNil() { - f.fs.Write(nilAngleBytes) - break - } - fallthrough - - case reflect.Array: - f.fs.Write(openBracketBytes) - f.depth++ - if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { - f.fs.Write(maxShortBytes) - } else { - numEntries := v.Len() - for i := 0; i < numEntries; i++ { - if i > 0 { - f.fs.Write(spaceBytes) - } - f.ignoreNextType = true - f.format(f.unpackValue(v.Index(i))) - } - } - f.depth-- - f.fs.Write(closeBracketBytes) - - case reflect.String: - f.fs.Write([]byte(v.String())) - - case reflect.Interface: - // The only time we should get here is for nil interfaces due to - // unpackValue calls. - if v.IsNil() { - f.fs.Write(nilAngleBytes) - } - - case reflect.Ptr: - // Do nothing. We should never get here since pointers have already - // been handled above. - - case reflect.Map: - // nil maps should be indicated as different than empty maps - if v.IsNil() { - f.fs.Write(nilAngleBytes) - break - } - - f.fs.Write(openMapBytes) - f.depth++ - if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { - f.fs.Write(maxShortBytes) - } else { - keys := v.MapKeys() - if f.cs.SortKeys { - sortValues(keys, f.cs) - } - for i, key := range keys { - if i > 0 { - f.fs.Write(spaceBytes) - } - f.ignoreNextType = true - f.format(f.unpackValue(key)) - f.fs.Write(colonBytes) - f.ignoreNextType = true - f.format(f.unpackValue(v.MapIndex(key))) - } - } - f.depth-- - f.fs.Write(closeMapBytes) - - case reflect.Struct: - numFields := v.NumField() - f.fs.Write(openBraceBytes) - f.depth++ - if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { - f.fs.Write(maxShortBytes) - } else { - vt := v.Type() - for i := 0; i < numFields; i++ { - if i > 0 { - f.fs.Write(spaceBytes) - } - vtf := vt.Field(i) - if f.fs.Flag('+') || f.fs.Flag('#') { - f.fs.Write([]byte(vtf.Name)) - f.fs.Write(colonBytes) - } - f.format(f.unpackValue(v.Field(i))) - } - } - f.depth-- - f.fs.Write(closeBraceBytes) - - case reflect.Uintptr: - printHexPtr(f.fs, uintptr(v.Uint())) - - case reflect.UnsafePointer, reflect.Chan, reflect.Func: - printHexPtr(f.fs, v.Pointer()) - - // There were not any other types at the time this code was written, but - // fall back to letting the default fmt package handle it if any get added. - default: - format := f.buildDefaultFormat() - if v.CanInterface() { - fmt.Fprintf(f.fs, format, v.Interface()) - } else { - fmt.Fprintf(f.fs, format, v.String()) - } - } -} - -// Format satisfies the fmt.Formatter interface. See NewFormatter for usage -// details. -func (f *formatState) Format(fs fmt.State, verb rune) { - f.fs = fs - - // Use standard formatting for verbs that are not v. - if verb != 'v' { - format := f.constructOrigFormat(verb) - fmt.Fprintf(fs, format, f.value) - return - } - - if f.value == nil { - if fs.Flag('#') { - fs.Write(interfaceBytes) - } - fs.Write(nilAngleBytes) - return - } - - f.format(reflect.ValueOf(f.value)) -} - -// newFormatter is a helper function to consolidate the logic from the various -// public methods which take varying config states. -func newFormatter(cs *ConfigState, v interface{}) fmt.Formatter { - fs := &formatState{value: v, cs: cs} - fs.pointers = make(map[uintptr]int) - return fs -} - -/* -NewFormatter returns a custom formatter that satisfies the fmt.Formatter -interface. As a result, it integrates cleanly with standard fmt package -printing functions. The formatter is useful for inline printing of smaller data -types similar to the standard %v format specifier. - -The custom formatter only responds to the %v (most compact), %+v (adds pointer -addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb -combinations. Any other verbs such as %x and %q will be sent to the the -standard fmt package for formatting. In addition, the custom formatter ignores -the width and precision arguments (however they will still work on the format -specifiers not handled by the custom formatter). - -Typically this function shouldn't be called directly. It is much easier to make -use of the custom formatter by calling one of the convenience functions such as -Printf, Println, or Fprintf. -*/ -func NewFormatter(v interface{}) fmt.Formatter { - return newFormatter(&Config, v) -} diff --git a/vendor/github.com/davecgh/go-spew/spew/spew.go b/vendor/github.com/davecgh/go-spew/spew/spew.go deleted file mode 100644 index 32c0e33..0000000 --- a/vendor/github.com/davecgh/go-spew/spew/spew.go +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2013-2016 Dave Collins - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package spew - -import ( - "fmt" - "io" -) - -// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the formatted string as a value that satisfies error. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b)) -func Errorf(format string, a ...interface{}) (err error) { - return fmt.Errorf(format, convertArgs(a)...) -} - -// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b)) -func Fprint(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprint(w, convertArgs(a)...) -} - -// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b)) -func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { - return fmt.Fprintf(w, format, convertArgs(a)...) -} - -// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it -// passed with a default Formatter interface returned by NewFormatter. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b)) -func Fprintln(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprintln(w, convertArgs(a)...) -} - -// Print is a wrapper for fmt.Print that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Print(spew.NewFormatter(a), spew.NewFormatter(b)) -func Print(a ...interface{}) (n int, err error) { - return fmt.Print(convertArgs(a)...) -} - -// Printf is a wrapper for fmt.Printf that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b)) -func Printf(format string, a ...interface{}) (n int, err error) { - return fmt.Printf(format, convertArgs(a)...) -} - -// Println is a wrapper for fmt.Println that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the number of bytes written and any write error encountered. See -// NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Println(spew.NewFormatter(a), spew.NewFormatter(b)) -func Println(a ...interface{}) (n int, err error) { - return fmt.Println(convertArgs(a)...) -} - -// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b)) -func Sprint(a ...interface{}) string { - return fmt.Sprint(convertArgs(a)...) -} - -// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were -// passed with a default Formatter interface returned by NewFormatter. It -// returns the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b)) -func Sprintf(format string, a ...interface{}) string { - return fmt.Sprintf(format, convertArgs(a)...) -} - -// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it -// were passed with a default Formatter interface returned by NewFormatter. It -// returns the resulting string. See NewFormatter for formatting details. -// -// This function is shorthand for the following syntax: -// -// fmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b)) -func Sprintln(a ...interface{}) string { - return fmt.Sprintln(convertArgs(a)...) -} - -// convertArgs accepts a slice of arguments and returns a slice of the same -// length with each argument converted to a default spew Formatter interface. -func convertArgs(args []interface{}) (formatters []interface{}) { - formatters = make([]interface{}, len(args)) - for index, arg := range args { - formatters[index] = NewFormatter(arg) - } - return formatters -} diff --git a/vendor/github.com/erikgeiser/coninput/.gitignore b/vendor/github.com/erikgeiser/coninput/.gitignore deleted file mode 100644 index 66fd13c..0000000 --- a/vendor/github.com/erikgeiser/coninput/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ diff --git a/vendor/github.com/erikgeiser/coninput/.golangci.yml b/vendor/github.com/erikgeiser/coninput/.golangci.yml deleted file mode 100644 index d3ed710..0000000 --- a/vendor/github.com/erikgeiser/coninput/.golangci.yml +++ /dev/null @@ -1,24 +0,0 @@ -linters: - enable-all: true - disable: - - golint - - interfacer - - scopelint - - maligned - - rowserrcheck - - funlen - - depguard - - goerr113 - - exhaustivestruct - - testpackage - - gochecknoglobals - - wrapcheck - - forbidigo - - ifshort - - cyclop - - gomoddirectives -linters-settings: - exhaustive: - default-signifies-exhaustive: true -issues: - exclude-use-default: false diff --git a/vendor/github.com/erikgeiser/coninput/LICENSE b/vendor/github.com/erikgeiser/coninput/LICENSE deleted file mode 100644 index 83c2440..0000000 --- a/vendor/github.com/erikgeiser/coninput/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Erik G. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/erikgeiser/coninput/README.md b/vendor/github.com/erikgeiser/coninput/README.md deleted file mode 100644 index 22619d1..0000000 --- a/vendor/github.com/erikgeiser/coninput/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# coninput -Go library for input handling using Windows Console API diff --git a/vendor/github.com/erikgeiser/coninput/keycodes.go b/vendor/github.com/erikgeiser/coninput/keycodes.go deleted file mode 100644 index 902ee1b..0000000 --- a/vendor/github.com/erikgeiser/coninput/keycodes.go +++ /dev/null @@ -1,205 +0,0 @@ -package coninput - -// VirtualKeyCode holds a virtual key code (see -// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes). -type VirtualKeyCode uint16 - -const ( - VK_LBUTTON VirtualKeyCode = 0x01 - VK_RBUTTON VirtualKeyCode = 0x02 - VK_CANCEL VirtualKeyCode = 0x03 - VK_MBUTTON VirtualKeyCode = 0x04 - VK_XBUTTON1 VirtualKeyCode = 0x05 - VK_XBUTTON2 VirtualKeyCode = 0x06 - VK_BACK VirtualKeyCode = 0x08 - VK_TAB VirtualKeyCode = 0x09 - VK_CLEAR VirtualKeyCode = 0x0C - VK_RETURN VirtualKeyCode = 0x0D - VK_SHIFT VirtualKeyCode = 0x10 - VK_CONTROL VirtualKeyCode = 0x11 - VK_MENU VirtualKeyCode = 0x12 - VK_PAUSE VirtualKeyCode = 0x13 - VK_CAPITAL VirtualKeyCode = 0x14 - VK_KANA VirtualKeyCode = 0x15 - VK_HANGEUL VirtualKeyCode = 0x15 - VK_HANGUL VirtualKeyCode = 0x15 - VK_IME_ON VirtualKeyCode = 0x16 - VK_JUNJA VirtualKeyCode = 0x17 - VK_FINAL VirtualKeyCode = 0x18 - VK_HANJA VirtualKeyCode = 0x19 - VK_KANJI VirtualKeyCode = 0x19 - VK_IME_OFF VirtualKeyCode = 0x1A - VK_ESCAPE VirtualKeyCode = 0x1B - VK_CONVERT VirtualKeyCode = 0x1C - VK_NONCONVERT VirtualKeyCode = 0x1D - VK_ACCEPT VirtualKeyCode = 0x1E - VK_MODECHANGE VirtualKeyCode = 0x1F - VK_SPACE VirtualKeyCode = 0x20 - VK_PRIOR VirtualKeyCode = 0x21 - VK_NEXT VirtualKeyCode = 0x22 - VK_END VirtualKeyCode = 0x23 - VK_HOME VirtualKeyCode = 0x24 - VK_LEFT VirtualKeyCode = 0x25 - VK_UP VirtualKeyCode = 0x26 - VK_RIGHT VirtualKeyCode = 0x27 - VK_DOWN VirtualKeyCode = 0x28 - VK_SELECT VirtualKeyCode = 0x29 - VK_PRINT VirtualKeyCode = 0x2A - VK_EXECUTE VirtualKeyCode = 0x2B - VK_SNAPSHOT VirtualKeyCode = 0x2C - VK_INSERT VirtualKeyCode = 0x2D - VK_DELETE VirtualKeyCode = 0x2E - VK_HELP VirtualKeyCode = 0x2F - VK_0 VirtualKeyCode = 0x30 - VK_1 VirtualKeyCode = 0x31 - VK_2 VirtualKeyCode = 0x32 - VK_3 VirtualKeyCode = 0x33 - VK_4 VirtualKeyCode = 0x34 - VK_5 VirtualKeyCode = 0x35 - VK_6 VirtualKeyCode = 0x36 - VK_7 VirtualKeyCode = 0x37 - VK_8 VirtualKeyCode = 0x38 - VK_9 VirtualKeyCode = 0x39 - VK_A VirtualKeyCode = 0x41 - VK_B VirtualKeyCode = 0x42 - VK_C VirtualKeyCode = 0x43 - VK_D VirtualKeyCode = 0x44 - VK_E VirtualKeyCode = 0x45 - VK_F VirtualKeyCode = 0x46 - VK_G VirtualKeyCode = 0x47 - VK_H VirtualKeyCode = 0x48 - VK_I VirtualKeyCode = 0x49 - VK_J VirtualKeyCode = 0x4A - VK_K VirtualKeyCode = 0x4B - VK_L VirtualKeyCode = 0x4C - VK_M VirtualKeyCode = 0x4D - VK_N VirtualKeyCode = 0x4E - VK_O VirtualKeyCode = 0x4F - VK_P VirtualKeyCode = 0x50 - VK_Q VirtualKeyCode = 0x51 - VK_R VirtualKeyCode = 0x52 - VK_S VirtualKeyCode = 0x53 - VK_T VirtualKeyCode = 0x54 - VK_U VirtualKeyCode = 0x55 - VK_V VirtualKeyCode = 0x56 - VK_W VirtualKeyCode = 0x57 - VK_X VirtualKeyCode = 0x58 - VK_Y VirtualKeyCode = 0x59 - VK_Z VirtualKeyCode = 0x5A - VK_LWIN VirtualKeyCode = 0x5B - VK_RWIN VirtualKeyCode = 0x5C - VK_APPS VirtualKeyCode = 0x5D - VK_SLEEP VirtualKeyCode = 0x5F - VK_NUMPAD0 VirtualKeyCode = 0x60 - VK_NUMPAD1 VirtualKeyCode = 0x61 - VK_NUMPAD2 VirtualKeyCode = 0x62 - VK_NUMPAD3 VirtualKeyCode = 0x63 - VK_NUMPAD4 VirtualKeyCode = 0x64 - VK_NUMPAD5 VirtualKeyCode = 0x65 - VK_NUMPAD6 VirtualKeyCode = 0x66 - VK_NUMPAD7 VirtualKeyCode = 0x67 - VK_NUMPAD8 VirtualKeyCode = 0x68 - VK_NUMPAD9 VirtualKeyCode = 0x69 - VK_MULTIPLY VirtualKeyCode = 0x6A - VK_ADD VirtualKeyCode = 0x6B - VK_SEPARATOR VirtualKeyCode = 0x6C - VK_SUBTRACT VirtualKeyCode = 0x6D - VK_DECIMAL VirtualKeyCode = 0x6E - VK_DIVIDE VirtualKeyCode = 0x6F - VK_F1 VirtualKeyCode = 0x70 - VK_F2 VirtualKeyCode = 0x71 - VK_F3 VirtualKeyCode = 0x72 - VK_F4 VirtualKeyCode = 0x73 - VK_F5 VirtualKeyCode = 0x74 - VK_F6 VirtualKeyCode = 0x75 - VK_F7 VirtualKeyCode = 0x76 - VK_F8 VirtualKeyCode = 0x77 - VK_F9 VirtualKeyCode = 0x78 - VK_F10 VirtualKeyCode = 0x79 - VK_F11 VirtualKeyCode = 0x7A - VK_F12 VirtualKeyCode = 0x7B - VK_F13 VirtualKeyCode = 0x7C - VK_F14 VirtualKeyCode = 0x7D - VK_F15 VirtualKeyCode = 0x7E - VK_F16 VirtualKeyCode = 0x7F - VK_F17 VirtualKeyCode = 0x80 - VK_F18 VirtualKeyCode = 0x81 - VK_F19 VirtualKeyCode = 0x82 - VK_F20 VirtualKeyCode = 0x83 - VK_F21 VirtualKeyCode = 0x84 - VK_F22 VirtualKeyCode = 0x85 - VK_F23 VirtualKeyCode = 0x86 - VK_F24 VirtualKeyCode = 0x87 - VK_NUMLOCK VirtualKeyCode = 0x90 - VK_SCROLL VirtualKeyCode = 0x91 - VK_OEM_NEC_EQUAL VirtualKeyCode = 0x92 - VK_OEM_FJ_JISHO VirtualKeyCode = 0x92 - VK_OEM_FJ_MASSHOU VirtualKeyCode = 0x93 - VK_OEM_FJ_TOUROKU VirtualKeyCode = 0x94 - VK_OEM_FJ_LOYA VirtualKeyCode = 0x95 - VK_OEM_FJ_ROYA VirtualKeyCode = 0x96 - VK_LSHIFT VirtualKeyCode = 0xA0 - VK_RSHIFT VirtualKeyCode = 0xA1 - VK_LCONTROL VirtualKeyCode = 0xA2 - VK_RCONTROL VirtualKeyCode = 0xA3 - VK_LMENU VirtualKeyCode = 0xA4 - VK_RMENU VirtualKeyCode = 0xA5 - VK_BROWSER_BACK VirtualKeyCode = 0xA6 - VK_BROWSER_FORWARD VirtualKeyCode = 0xA7 - VK_BROWSER_REFRESH VirtualKeyCode = 0xA8 - VK_BROWSER_STOP VirtualKeyCode = 0xA9 - VK_BROWSER_SEARCH VirtualKeyCode = 0xAA - VK_BROWSER_FAVORITES VirtualKeyCode = 0xAB - VK_BROWSER_HOME VirtualKeyCode = 0xAC - VK_VOLUME_MUTE VirtualKeyCode = 0xAD - VK_VOLUME_DOWN VirtualKeyCode = 0xAE - VK_VOLUME_UP VirtualKeyCode = 0xAF - VK_MEDIA_NEXT_TRACK VirtualKeyCode = 0xB0 - VK_MEDIA_PREV_TRACK VirtualKeyCode = 0xB1 - VK_MEDIA_STOP VirtualKeyCode = 0xB2 - VK_MEDIA_PLAY_PAUSE VirtualKeyCode = 0xB3 - VK_LAUNCH_MAIL VirtualKeyCode = 0xB4 - VK_LAUNCH_MEDIA_SELECT VirtualKeyCode = 0xB5 - VK_LAUNCH_APP1 VirtualKeyCode = 0xB6 - VK_LAUNCH_APP2 VirtualKeyCode = 0xB7 - VK_OEM_1 VirtualKeyCode = 0xBA - VK_OEM_PLUS VirtualKeyCode = 0xBB - VK_OEM_COMMA VirtualKeyCode = 0xBC - VK_OEM_MINUS VirtualKeyCode = 0xBD - VK_OEM_PERIOD VirtualKeyCode = 0xBE - VK_OEM_2 VirtualKeyCode = 0xBF - VK_OEM_3 VirtualKeyCode = 0xC0 - VK_OEM_4 VirtualKeyCode = 0xDB - VK_OEM_5 VirtualKeyCode = 0xDC - VK_OEM_6 VirtualKeyCode = 0xDD - VK_OEM_7 VirtualKeyCode = 0xDE - VK_OEM_8 VirtualKeyCode = 0xDF - VK_OEM_AX VirtualKeyCode = 0xE1 - VK_OEM_102 VirtualKeyCode = 0xE2 - VK_ICO_HELP VirtualKeyCode = 0xE3 - VK_ICO_00 VirtualKeyCode = 0xE4 - VK_PROCESSKEY VirtualKeyCode = 0xE5 - VK_ICO_CLEAR VirtualKeyCode = 0xE6 - VK_OEM_RESET VirtualKeyCode = 0xE9 - VK_OEM_JUMP VirtualKeyCode = 0xEA - VK_OEM_PA1 VirtualKeyCode = 0xEB - VK_OEM_PA2 VirtualKeyCode = 0xEC - VK_OEM_PA3 VirtualKeyCode = 0xED - VK_OEM_WSCTRL VirtualKeyCode = 0xEE - VK_OEM_CUSEL VirtualKeyCode = 0xEF - VK_OEM_ATTN VirtualKeyCode = 0xF0 - VK_OEM_FINISH VirtualKeyCode = 0xF1 - VK_OEM_COPY VirtualKeyCode = 0xF2 - VK_OEM_AUTO VirtualKeyCode = 0xF3 - VK_OEM_ENLW VirtualKeyCode = 0xF4 - VK_OEM_BACKTAB VirtualKeyCode = 0xF5 - VK_ATTN VirtualKeyCode = 0xF6 - VK_CRSEL VirtualKeyCode = 0xF7 - VK_EXSEL VirtualKeyCode = 0xF8 - VK_EREOF VirtualKeyCode = 0xF9 - VK_PLAY VirtualKeyCode = 0xFA - VK_ZOOM VirtualKeyCode = 0xFB - VK_NONAME VirtualKeyCode = 0xFC - VK_PA1 VirtualKeyCode = 0xFD - VK_OEM_CLEAR VirtualKeyCode = 0xFE -) diff --git a/vendor/github.com/erikgeiser/coninput/mode.go b/vendor/github.com/erikgeiser/coninput/mode.go deleted file mode 100644 index e6d8bf4..0000000 --- a/vendor/github.com/erikgeiser/coninput/mode.go +++ /dev/null @@ -1,82 +0,0 @@ -//go:build windows -// +build windows - -package coninput - -import ( - "strings" - - "golang.org/x/sys/windows" -) - -// AddInputModes returns the given mode with one or more additional modes enabled. -func AddInputModes(mode uint32, enableModes ...uint32) uint32 { - for _, enableMode := range enableModes { - mode |= enableMode - } - - return mode -} - -// RemoveInputModes returns the given mode with one or more additional modes disabled. -func RemoveInputModes(mode uint32, disableModes ...uint32) uint32 { - for _, disableMode := range disableModes { - mode &^= disableMode - } - - return mode -} - -// ToggleInputModes returns the given mode with one or more additional modes toggeled. -func ToggleInputModes(mode uint32, toggleModes ...uint32) uint32 { - for _, toggeMode := range toggleModes { - mode ^= toggeMode - } - - return mode -} - -var inputModes = []struct { - mode uint32 - name string -}{ - {mode: windows.ENABLE_ECHO_INPUT, name: "ENABLE_ECHO_INPUT"}, - {mode: windows.ENABLE_INSERT_MODE, name: "ENABLE_INSERT_MODE"}, - {mode: windows.ENABLE_LINE_INPUT, name: "ENABLE_LINE_INPUT"}, - {mode: windows.ENABLE_MOUSE_INPUT, name: "ENABLE_MOUSE_INPUT"}, - {mode: windows.ENABLE_PROCESSED_INPUT, name: "ENABLE_PROCESSED_INPUT"}, - {mode: windows.ENABLE_QUICK_EDIT_MODE, name: "ENABLE_QUICK_EDIT_MODE"}, - {mode: windows.ENABLE_WINDOW_INPUT, name: "ENABLE_WINDOW_INPUT"}, - {mode: windows.ENABLE_VIRTUAL_TERMINAL_INPUT, name: "ENABLE_VIRTUAL_TERMINAL_INPUT"}, -} - -// ListInputMode returnes the isolated enabled input modes as a list. -func ListInputModes(mode uint32) []uint32 { - modes := []uint32{} - - for _, inputMode := range inputModes { - if mode&inputMode.mode > 0 { - modes = append(modes, inputMode.mode) - } - } - - return modes -} - -// ListInputMode returnes the isolated enabled input mode names as a list. -func ListInputModeNames(mode uint32) []string { - modes := []string{} - - for _, inputMode := range inputModes { - if mode&inputMode.mode > 0 { - modes = append(modes, inputMode.name) - } - } - - return modes -} - -// DescribeInputMode returns a string containing the names of each enabled input mode. -func DescribeInputMode(mode uint32) string { - return strings.Join(ListInputModeNames(mode), "|") -} diff --git a/vendor/github.com/erikgeiser/coninput/read.go b/vendor/github.com/erikgeiser/coninput/read.go deleted file mode 100644 index b2dd82f..0000000 --- a/vendor/github.com/erikgeiser/coninput/read.go +++ /dev/null @@ -1,154 +0,0 @@ -//go:build windows -// +build windows - -package coninput - -import ( - "fmt" - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -var ( - modkernel32 = windows.NewLazySystemDLL("kernel32.dll") - procReadConsoleInputW = modkernel32.NewProc("ReadConsoleInputW") - procPeekConsoleInputW = modkernel32.NewProc("PeekConsoleInputW") - procGetNumberOfConsoleInputEvents = modkernel32.NewProc("GetNumberOfConsoleInputEvents") - procFlushConsoleInputBuffer = modkernel32.NewProc("FlushConsoleInputBuffer") -) - -// NewStdinHandle is a shortcut for windows.GetStdHandle(windows.STD_INPUT_HANDLE). -func NewStdinHandle() (windows.Handle, error) { - return windows.GetStdHandle(windows.STD_INPUT_HANDLE) -} - -// WinReadConsoleInput is a thin wrapper around the Windows console API function -// ReadConsoleInput (see -// https://docs.microsoft.com/en-us/windows/console/readconsoleinput). In most -// cases it is more practical to either use ReadConsoleInput or -// ReadNConsoleInputs. -func WinReadConsoleInput(consoleInput windows.Handle, buffer *InputRecord, - length uint32, numberOfEventsRead *uint32) error { - r, _, e := syscall.Syscall6(procReadConsoleInputW.Addr(), 4, - uintptr(consoleInput), uintptr(unsafe.Pointer(buffer)), uintptr(length), - uintptr(unsafe.Pointer(numberOfEventsRead)), 0, 0) - if r == 0 { - return error(e) - } - - return nil -} - -// ReadNConsoleInputs is a wrapper around ReadConsoleInput (see -// https://docs.microsoft.com/en-us/windows/console/readconsoleinput) that -// automates the event buffer allocation in oder to provide io.Reader-like -// sematics. maxEvents must be greater than zero. -func ReadNConsoleInputs(console windows.Handle, maxEvents uint32) ([]InputRecord, error) { - if maxEvents == 0 { - return nil, fmt.Errorf("maxEvents cannot be zero") - } - - var inputRecords = make([]InputRecord, maxEvents) - n, err := ReadConsoleInput(console, inputRecords) - - return inputRecords[:n], err -} - -// ReadConsoleInput provides an ideomatic interface to the Windows console API -// function ReadConsoleInput (see -// https://docs.microsoft.com/en-us/windows/console/readconsoleinput). The size -// of inputRecords must be greater than zero. -func ReadConsoleInput(console windows.Handle, inputRecords []InputRecord) (uint32, error) { - if len(inputRecords) == 0 { - return 0, fmt.Errorf("size of input record buffer cannot be zero") - } - - var read uint32 - err := WinReadConsoleInput(console, &inputRecords[0], uint32(len(inputRecords)), &read) - - return read, err -} - -// WinPeekConsoleInput is a thin wrapper around the Windows console API function -// PeekConsoleInput (see -// https://docs.microsoft.com/en-us/windows/console/peekconsoleinput). In most -// cases it is more practical to either use PeekConsoleInput or -// PeekNConsoleInputs. -func WinPeekConsoleInput(consoleInput windows.Handle, buffer *InputRecord, - length uint32, numberOfEventsRead *uint32) error { - r, _, e := syscall.Syscall6(procPeekConsoleInputW.Addr(), 4, - uintptr(consoleInput), uintptr(unsafe.Pointer(buffer)), uintptr(length), - uintptr(unsafe.Pointer(numberOfEventsRead)), 0, 0) - if r == 0 { - return error(e) - } - - return nil - -} - -// PeekNConsoleInputs is a wrapper around PeekConsoleInput (see -// https://docs.microsoft.com/en-us/windows/console/peekconsoleinput) that -// automates the event buffer allocation in oder to provide io.Reader-like -// sematics. maxEvents must be greater than zero. -func PeekNConsoleInputs(console windows.Handle, maxEvents uint32) ([]InputRecord, error) { - if maxEvents == 0 { - return nil, fmt.Errorf("maxEvents cannot be zero") - } - - var inputRecords = make([]InputRecord, maxEvents) - n, err := PeekConsoleInput(console, inputRecords) - - return inputRecords[:n], err -} - -// PeekConsoleInput provides an ideomatic interface to the Windows console API -// function PeekConsoleInput (see -// https://docs.microsoft.com/en-us/windows/console/peekconsoleinput). The size -// of inputRecords must be greater than zero. -func PeekConsoleInput(console windows.Handle, inputRecords []InputRecord) (uint32, error) { - if len(inputRecords) == 0 { - return 0, fmt.Errorf("size of input record buffer cannot be zero") - } - - var read uint32 - - err := WinPeekConsoleInput(console, &inputRecords[0], uint32(len(inputRecords)), &read) - - return read, err -} - -// WinGetNumberOfConsoleInputEvents provides an ideomatic interface to the -// Windows console API function GetNumberOfConsoleInputEvents (see -// https://docs.microsoft.com/en-us/windows/console/getnumberofconsoleinputevents). -func WinGetNumberOfConsoleInputEvents(consoleInput windows.Handle, numberOfEvents *uint32) error { - r, _, e := syscall.Syscall6(procGetNumberOfConsoleInputEvents.Addr(), 2, - uintptr(consoleInput), uintptr(unsafe.Pointer(numberOfEvents)), 0, - 0, 0, 0) - if r == 0 { - return error(e) - } - - return nil -} - -// GetNumberOfConsoleInputEvents provides an ideomatic interface to the Windows -// console API function GetNumberOfConsoleInputEvents (see -// https://docs.microsoft.com/en-us/windows/console/getnumberofconsoleinputevents). -func GetNumberOfConsoleInputEvents(console windows.Handle) (uint32, error) { - var nEvents uint32 - err := WinGetNumberOfConsoleInputEvents(console, &nEvents) - - return nEvents, err -} - -func FlushConsoleInputBuffer(consoleInput windows.Handle) error { - r, _, e := syscall.Syscall(procFlushConsoleInputBuffer.Addr(), 1, uintptr(consoleInput), 0, 0) - if r == 0 { - return error(e) - } - - return nil -} diff --git a/vendor/github.com/erikgeiser/coninput/records.go b/vendor/github.com/erikgeiser/coninput/records.go deleted file mode 100644 index cccf7fb..0000000 --- a/vendor/github.com/erikgeiser/coninput/records.go +++ /dev/null @@ -1,486 +0,0 @@ -package coninput - -import ( - "encoding/binary" - "fmt" - "strconv" - "strings" -) - -const ( - maxEventSize = 16 - wordPaddingBytes = 2 -) - -// EventType denots the type of an event -type EventType uint16 - -// EventUnion is the union data type that contains the data for any event. -type EventUnion [maxEventSize]byte - -// InputRecord corresponds to the INPUT_RECORD structure from the Windows -// console API (see -// https://docs.microsoft.com/en-us/windows/console/input-record-str). -type InputRecord struct { - // EventType specifies the type of event that helt in Event. - EventType EventType - - // Padding of the 16-bit EventType to a whole 32-bit dword. - _ [wordPaddingBytes]byte - - // Event holds the actual event data. Use Unrap to access it as its - // respective event type. - Event EventUnion -} - -// String implements fmt.Stringer for InputRecord. -func (ir InputRecord) String() string { - return ir.Unwrap().String() -} - -// Unwrap parses the event data into an EventRecord of the respective event -// type. The data in the returned EventRecord does not contain any references to -// the passed InputRecord. -func (ir InputRecord) Unwrap() EventRecord { - switch ir.EventType { - case FocusEventType: - return FocusEventRecord{SetFocus: ir.Event[0] > 0} - case KeyEventType: - return KeyEventRecord{ - KeyDown: binary.LittleEndian.Uint32(ir.Event[0:4]) > 0, - RepeatCount: binary.LittleEndian.Uint16(ir.Event[4:6]), - VirtualKeyCode: VirtualKeyCode(binary.LittleEndian.Uint16(ir.Event[6:8])), - VirtualScanCode: VirtualKeyCode(binary.LittleEndian.Uint16(ir.Event[8:10])), - Char: rune(binary.LittleEndian.Uint16(ir.Event[10:12])), - ControlKeyState: ControlKeyState(binary.LittleEndian.Uint32(ir.Event[12:16])), - } - case MouseEventType: - m := MouseEventRecord{ - MousePositon: Coord{ - X: binary.LittleEndian.Uint16(ir.Event[0:2]), - Y: binary.LittleEndian.Uint16(ir.Event[2:4]), - }, - ButtonState: ButtonState(binary.LittleEndian.Uint32(ir.Event[4:8])), - ControlKeyState: ControlKeyState(binary.LittleEndian.Uint32(ir.Event[8:12])), - EventFlags: EventFlags(binary.LittleEndian.Uint32(ir.Event[12:16])), - } - - if (m.EventFlags&MOUSE_WHEELED > 0) || (m.EventFlags&MOUSE_HWHEELED > 0) { - if int16(highWord(uint32(m.ButtonState))) > 0 { - m.WheelDirection = 1 - } else { - m.WheelDirection = -1 - } - } - - return m - case WindowBufferSizeEventType: - return WindowBufferSizeEventRecord{ - Size: Coord{ - X: binary.LittleEndian.Uint16(ir.Event[0:2]), - Y: binary.LittleEndian.Uint16(ir.Event[2:4]), - }, - } - case MenuEventType: - return MenuEventRecord{ - CommandID: binary.LittleEndian.Uint32(ir.Event[0:4]), - } - default: - return &UnknownEvent{InputRecord: ir} - } -} - -// EventRecord represents one of the following event types: -// TypeFocusEventRecord, TypeKeyEventRecord, TypeMouseEventRecord, -// TypeWindowBufferSizeEvent, TypeMenuEventRecord and UnknownEvent. -type EventRecord interface { - Type() string - fmt.Stringer -} - -// FocusEventType is the event type for a FocusEventRecord (see -// https://docs.microsoft.com/en-us/windows/console/input-record-str). -const FocusEventType EventType = 0x0010 - -// FocusEventRecord represent the FOCUS_EVENT_RECORD structure from the Windows -// console API (see -// https://docs.microsoft.com/en-us/windows/console/focus-event-record-str). -// These events are used internally by the Windows console API and should be -// ignored. -type FocusEventRecord struct { - // SetFocus is reserved and should not be used. - SetFocus bool -} - -// Ensure that FocusEventRecord satisfies EventRecord interface. -var _ EventRecord = FocusEventRecord{} - -// Type ensures that FocusEventRecord satisfies EventRecord interface. -func (e FocusEventRecord) Type() string { return "FocusEvent" } - -// String ensures that FocusEventRecord satisfies EventRecord and fmt.Stringer -// interfaces. -func (e FocusEventRecord) String() string { return fmt.Sprintf("%s[%v]", e.Type(), e.SetFocus) } - -// KeyEventType is the event type for a KeyEventRecord (see -// https://docs.microsoft.com/en-us/windows/console/input-record-str). -const KeyEventType EventType = 0x0001 - -// KeyEventRecord represent the KEY_EVENT_RECORD structure from the Windows -// console API (see -// https://docs.microsoft.com/en-us/windows/console/key-event-record-str). -type KeyEventRecord struct { - // KeyDown specified whether the key is pressed or released. - KeyDown bool - - // RepeatCount indicates that a key is being held down. For example, when a - // key is held down, five events with RepeatCount equal to 1 may be - // generated, one event with RepeatCount equal to 5, or multiple events - // with RepeatCount greater than or equal to 1. - RepeatCount uint16 - - // VirtualKeyCode identifies the given key in a device-independent manner - // (see - // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes). - VirtualKeyCode VirtualKeyCode - - // VirtualScanCode represents the device-dependent value generated by the - // keyboard hardware. - VirtualScanCode VirtualKeyCode - - // Char is the character that corresponds to the pressed key. Char can be - // zero for some keys. - Char rune - - //ControlKeyState holds the state of the control keys. - ControlKeyState ControlKeyState -} - -// Ensure that KeyEventRecord satisfies EventRecord interface. -var _ EventRecord = KeyEventRecord{} - -// Type ensures that KeyEventRecord satisfies EventRecord interface. -func (e KeyEventRecord) Type() string { return "KeyEvent" } - -// String ensures that KeyEventRecord satisfies EventRecord and fmt.Stringer -// interfaces. -func (e KeyEventRecord) String() string { - infos := []string{} - - repeat := "" - if e.RepeatCount > 1 { - repeat = "x" + strconv.Itoa(int(e.RepeatCount)) - } - - infos = append(infos, fmt.Sprintf("%q%s", e.Char, repeat)) - - direction := "up" - if e.KeyDown { - direction = "down" - } - - infos = append(infos, direction) - - if e.ControlKeyState != NO_CONTROL_KEY { - infos = append(infos, e.ControlKeyState.String()) - } - - infos = append(infos, fmt.Sprintf("KeyCode: %d", e.VirtualKeyCode)) - infos = append(infos, fmt.Sprintf("ScanCode: %d", e.VirtualScanCode)) - - return fmt.Sprintf("%s[%s]", e.Type(), strings.Join(infos, ", ")) -} - -// MenuEventType is the event type for a MenuEventRecord (see -// https://docs.microsoft.com/en-us/windows/console/input-record-str). -const MenuEventType EventType = 0x0008 - -// MenuEventRecord represent the MENU_EVENT_RECORD structure from the Windows -// console API (see -// https://docs.microsoft.com/en-us/windows/console/menu-event-record-str). -// These events are deprecated by the Windows console API and should be ignored. -type MenuEventRecord struct { - CommandID uint32 -} - -// Ensure that MenuEventRecord satisfies EventRecord interface. -var _ EventRecord = MenuEventRecord{} - -// Type ensures that MenuEventRecord satisfies EventRecord interface. -func (e MenuEventRecord) Type() string { return "MenuEvent" } - -// String ensures that MenuEventRecord satisfies EventRecord and fmt.Stringer -// interfaces. -func (e MenuEventRecord) String() string { return fmt.Sprintf("MenuEvent[%d]", e.CommandID) } - -// MouseEventType is the event type for a MouseEventRecord (see -// https://docs.microsoft.com/en-us/windows/console/input-record-str). -const MouseEventType EventType = 0x0002 - -// MouseEventRecord represent the MOUSE_EVENT_RECORD structure from the Windows -// console API (see -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str). -type MouseEventRecord struct { - // MousePosition contains the location of the cursor, in terms of the - // console screen buffer's character-cell coordinates. - MousePositon Coord - - // ButtonState holds the status of the mouse buttons. - ButtonState ButtonState - - // ControlKeyState holds the state of the control keys. - ControlKeyState ControlKeyState - - // EventFlags specify tge type of mouse event. - EventFlags EventFlags - - // WheelDirection specified the direction in which the mouse wheel is - // spinning when EventFlags contains MOUSE_HWHEELED or MOUSE_WHEELED. When - // the event flags specify MOUSE_WHEELED it is 1 if the wheel rotated - // forward (away from the user) or -1 when it rotates backwards. When - // MOUSE_HWHEELED is specified it is 1 when the wheel rotates right and -1 - // when it rotates left. When the EventFlags do not indicate a mouse wheel - // event it is 0. - WheelDirection int -} - -// Ensure that MouseEventRecord satisfies EventRecord interface. -var _ EventRecord = MouseEventRecord{} - -func (e MouseEventRecord) WheelDirectionName() string { - if e.EventFlags&MOUSE_WHEELED > 0 { - if e.WheelDirection > 0 { - return "Forward" - } - - return "Backward" - } else if e.EventFlags&MOUSE_HWHEELED > 0 { - if e.WheelDirection > 0 { - return "Right" - } - - return "Left" - } - - return "" -} - -// Type ensures that MouseEventRecord satisfies EventRecord interface. -func (e MouseEventRecord) Type() string { return "MouseEvent" } - -// String ensures that MouseEventRecord satisfies EventRecord and fmt.Stringer -// interfaces. -func (e MouseEventRecord) String() string { - infos := []string{e.MousePositon.String()} - - if e.ButtonState&0xFF != 0 { - infos = append(infos, e.ButtonState.String()) - } - - eventDescription := e.EventFlags.String() - - wheelDirection := e.WheelDirectionName() - if wheelDirection != "" { - eventDescription += "(" + wheelDirection + ")" - } - - infos = append(infos, eventDescription) - - if e.ControlKeyState != NO_CONTROL_KEY { - infos = append(infos, e.ControlKeyState.String()) - } - - return fmt.Sprintf("%s[%s]", e.Type(), strings.Join(infos, ", ")) -} - -// WindowBufferSizeEventType is the event type for a WindowBufferSizeEventRecord -// (see https://docs.microsoft.com/en-us/windows/console/input-record-str). -const WindowBufferSizeEventType EventType = 0x0004 - -// WindowBufferSizeEventRecord represent the WINDOW_BUFFER_SIZE_RECORD structure -// from the Windows console API (see -// https://docs.microsoft.com/en-us/windows/console/window-buffer-size-record-str). -type WindowBufferSizeEventRecord struct { - // Size contains the size of the console screen buffer, in character cell columns and rows. - Size Coord -} - -// Ensure that WindowBufferSizeEventRecord satisfies EventRecord interface. -var _ EventRecord = WindowBufferSizeEventRecord{} - -// Type ensures that WindowBufferSizeEventRecord satisfies EventRecord interface. -func (e WindowBufferSizeEventRecord) Type() string { return "WindowBufferSizeEvent" } - -// String ensures that WindowBufferSizeEventRecord satisfies EventRecord and fmt.Stringer -// interfaces. -func (e WindowBufferSizeEventRecord) String() string { - return fmt.Sprintf("WindowBufferSizeEvent[%s]", e.Size) -} - -// UnknownEvent is generated when the event type does not match one of the -// following types: TypeFocusEventRecord, TypeKeyEventRecord, -// TypeMouseEventRecord, TypeWindowBufferSizeEvent, TypeMenuEventRecord and -// UnknownEvent. -type UnknownEvent struct { - InputRecord -} - -// Ensure that UnknownEvent satisfies EventRecord interface. -var _ EventRecord = UnknownEvent{} - -// Type ensures that UnknownEvent satisfies EventRecord interface. -func (e UnknownEvent) Type() string { return "UnknownEvent" } - -// String ensures that UnknownEvent satisfies EventRecord and fmt.Stringer -// interfaces. -func (e UnknownEvent) String() string { - return fmt.Sprintf("%s[Type: %d, Data: %v]", e.Type(), e.InputRecord.EventType, e.InputRecord.Event[:]) -} - -// Coord represent the COORD structure from the Windows -// console API (see https://docs.microsoft.com/en-us/windows/console/coord-str). -type Coord struct { - // X is the horizontal coordinate or column value. The units depend on the function call. - X uint16 - // Y is the vertical coordinate or row value. The units depend on the function call. - Y uint16 -} - -// String ensures that Coord satisfies the fmt.Stringer interface. -func (c Coord) String() string { - return fmt.Sprintf("(%d, %d)", c.X, c.Y) -} - -// ButtonState holds the state of the mouse buttons (see -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str). -type ButtonState uint32 - -func (bs ButtonState) Contains(state ButtonState) bool { - return bs&state > 0 -} - -// String ensures that ButtonState satisfies the fmt.Stringer interface. -func (bs ButtonState) String() string { - switch { - case bs&FROM_LEFT_1ST_BUTTON_PRESSED > 0: - return "Left" - case bs&FROM_LEFT_2ND_BUTTON_PRESSED > 0: - return "2" - case bs&FROM_LEFT_3RD_BUTTON_PRESSED > 0: - return "3" - case bs&FROM_LEFT_4TH_BUTTON_PRESSED > 0: - return "4" - case bs&RIGHTMOST_BUTTON_PRESSED > 0: - return "Right" - case bs&0xFF == 0: - return "No Button" - default: - return fmt.Sprintf("Unknown(%d)", bs) - } -} - -func (bs ButtonState) IsReleased() bool { - return bs&0xff > 0 -} - -// Valid values for ButtonState. -const ( - FROM_LEFT_1ST_BUTTON_PRESSED ButtonState = 0x0001 - RIGHTMOST_BUTTON_PRESSED ButtonState = 0x0002 - FROM_LEFT_2ND_BUTTON_PRESSED ButtonState = 0x0004 - FROM_LEFT_3RD_BUTTON_PRESSED ButtonState = 0x0008 - FROM_LEFT_4TH_BUTTON_PRESSED ButtonState = 0x0010 -) - -// ControlKeyState holds the state of the control keys for key and mouse events -// (see https://docs.microsoft.com/en-us/windows/console/key-event-record-str -// and https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str). -type ControlKeyState uint32 - -func (cks ControlKeyState) Contains(state ControlKeyState) bool { - return cks&state > 0 -} - -// Valid values for ControlKeyState. -const ( - CAPSLOCK_ON ControlKeyState = 0x0080 - ENHANCED_KEY ControlKeyState = 0x0100 - LEFT_ALT_PRESSED ControlKeyState = 0x0002 - LEFT_CTRL_PRESSED ControlKeyState = 0x0008 - NUMLOCK_ON ControlKeyState = 0x0020 - RIGHT_ALT_PRESSED ControlKeyState = 0x0001 - RIGHT_CTRL_PRESSED ControlKeyState = 0x0004 - SCROLLLOCK_ON ControlKeyState = 0x0040 - SHIFT_PRESSED ControlKeyState = 0x0010 - NO_CONTROL_KEY ControlKeyState = 0x0000 -) - -// String ensures that ControlKeyState satisfies the fmt.Stringer interface. -func (cks ControlKeyState) String() string { - controlKeys := []string{} - - switch { - case cks&CAPSLOCK_ON > 0: - controlKeys = append(controlKeys, "CapsLock") - case cks&ENHANCED_KEY > 0: - controlKeys = append(controlKeys, "Enhanced") - case cks&LEFT_ALT_PRESSED > 0: - controlKeys = append(controlKeys, "Alt") - case cks&LEFT_CTRL_PRESSED > 0: - controlKeys = append(controlKeys, "CTRL") - case cks&NUMLOCK_ON > 0: - controlKeys = append(controlKeys, "NumLock") - case cks&RIGHT_ALT_PRESSED > 0: - controlKeys = append(controlKeys, "RightAlt") - case cks&RIGHT_CTRL_PRESSED > 0: - controlKeys = append(controlKeys, "RightCTRL") - case cks&SCROLLLOCK_ON > 0: - controlKeys = append(controlKeys, "ScrollLock") - case cks&SHIFT_PRESSED > 0: - controlKeys = append(controlKeys, "Shift") - case cks == NO_CONTROL_KEY: - default: - return fmt.Sprintf("Unknown(%d)", cks) - } - - return strings.Join(controlKeys, ",") -} - -// EventFlags specifies the type of a mouse event (see -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str). -type EventFlags uint32 - -// String ensures that EventFlags satisfies the fmt.Stringer interface. -func (ef EventFlags) String() string { - switch { - case ef&DOUBLE_CLICK > 0: - return "DoubleClick" - case ef&MOUSE_WHEELED > 0: - return "Wheeled" - case ef&MOUSE_MOVED > 0: - return "Moved" - case ef&MOUSE_HWHEELED > 0: - return "HWheeld" - case ef == CLICK: - return "Click" - default: - return fmt.Sprintf("Unknown(%d)", ef) - } -} - -func (ef EventFlags) Contains(flag EventFlags) bool { - return ef&flag > 0 -} - -// Valid values for EventFlags. -const ( - CLICK EventFlags = 0x0000 - MOUSE_MOVED EventFlags = 0x0001 - DOUBLE_CLICK EventFlags = 0x0002 - MOUSE_WHEELED EventFlags = 0x0004 - MOUSE_HWHEELED EventFlags = 0x0008 -) - -func highWord(data uint32) uint16 { - return uint16((data & 0xFFFF0000) >> 16) -} diff --git a/vendor/github.com/expr-lang/expr/.gitattributes b/vendor/github.com/expr-lang/expr/.gitattributes deleted file mode 100644 index efd3030..0000000 --- a/vendor/github.com/expr-lang/expr/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*\[generated\].go linguist-language=txt diff --git a/vendor/github.com/expr-lang/expr/.gitignore b/vendor/github.com/expr-lang/expr/.gitignore deleted file mode 100644 index 9d3410b..0000000 --- a/vendor/github.com/expr-lang/expr/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -*.exe -*.exe~ -*.dll -*.so -*.dylib -*.test -*.out -*.html -custom_tests.json -pro/ -test/avs/ diff --git a/vendor/github.com/expr-lang/expr/LICENSE b/vendor/github.com/expr-lang/expr/LICENSE deleted file mode 100644 index ec46ce3..0000000 --- a/vendor/github.com/expr-lang/expr/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Anton Medvedev - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/expr-lang/expr/README.md b/vendor/github.com/expr-lang/expr/README.md deleted file mode 100644 index 5afd743..0000000 --- a/vendor/github.com/expr-lang/expr/README.md +++ /dev/null @@ -1,182 +0,0 @@ -

Zx logo Expr

- -> [!IMPORTANT] -> The repository [github.com/antonmedv/expr](https://github.com/antonmedv/expr) moved to [github.com/**expr-lang**/expr](https://github.com/expr-lang/expr). - -[![test](https://github.com/expr-lang/expr/actions/workflows/test.yml/badge.svg)](https://github.com/expr-lang/expr/actions/workflows/test.yml) -[![Go Report Card](https://goreportcard.com/badge/github.com/expr-lang/expr)](https://goreportcard.com/report/github.com/expr-lang/expr) -[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/expr.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:expr) -[![GoDoc](https://godoc.org/github.com/expr-lang/expr?status.svg)](https://godoc.org/github.com/expr-lang/expr) - -**Expr** is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy, safety, and speed. -**Expr** combines simple [syntax](https://expr-lang.org/docs/language-definition) with powerful features for ease of use: - -```js -// Allow only admins and moderators to moderate comments. -user.Group in ["admin", "moderator"] || user.Id == comment.UserId -``` - -```js -// Determine whether the request is in the permitted time window. -request.Time - resource.Age < duration("24h") -``` - -```js -// Ensure all tweets are less than 240 characters. -all(tweets, len(.Content) <= 240) -``` - -## Features - -**Expr** is a safe, fast, and intuitive expression evaluator optimized for the Go language. -Here are its standout features: - -### Safety and Isolation -* **Memory-Safe**: Expr is designed with a focus on safety, ensuring that programs do not access unrelated memory or introduce memory vulnerabilities. -* **Side-Effect-Free**: Expressions evaluated in Expr only compute outputs from their inputs, ensuring no side-effects that can change state or produce unintended results. -* **Always Terminating**: Expr is designed to prevent infinite loops, ensuring that every program will conclude in a reasonable amount of time. - -### Go Integration -* **Seamless with Go**: Integrate Expr into your Go projects without the need to redefine types. - -### Static Typing -* Ensures type correctness and prevents runtime type errors. - ```go - out, err := expr.Compile(`name + age`) - // err: invalid operation + (mismatched types string and int) - // | name + age - // | .....^ - ``` - -### User-Friendly -* Provides user-friendly error messages to assist with debugging and development. - -### Flexibility and Utility -* **Rich Operators**: Offers a reasonable set of basic operators for a variety of applications. -* **Built-in Functions**: Functions like `all`, `none`, `any`, `one`, `filter`, and `map` are provided out-of-the-box. - -### Performance -* **Optimized for Speed**: Expr stands out in its performance, utilizing an optimizing compiler and a bytecode virtual machine. Check out these [benchmarks](https://github.com/antonmedv/golang-expression-evaluation-comparison#readme) for more details. - -## Install - -``` -go get github.com/expr-lang/expr -``` - -## Documentation - -* See [Getting Started](https://expr-lang.org/docs/Getting-Started) page for developer documentation. -* See [Language Definition](https://expr-lang.org/docs/language-definition) page to learn the syntax. - -## Examples - -[Play Online](https://go.dev/play/p/XCoNXEjm3TS) - -```go -package main - -import ( - "fmt" - "github.com/expr-lang/expr" -) - -func main() { - env := map[string]interface{}{ - "greet": "Hello, %v!", - "names": []string{"world", "you"}, - "sprintf": fmt.Sprintf, - } - - code := `sprintf(greet, names[0])` - - program, err := expr.Compile(code, expr.Env(env)) - if err != nil { - panic(err) - } - - output, err := expr.Run(program, env) - if err != nil { - panic(err) - } - - fmt.Println(output) -} -``` - -[Play Online](https://go.dev/play/p/tz-ZneBfSuw) - -```go -package main - -import ( - "fmt" - "github.com/expr-lang/expr" -) - -type Tweet struct { - Len int -} - -type Env struct { - Tweets []Tweet -} - -func main() { - code := `all(Tweets, {.Len <= 240})` - - program, err := expr.Compile(code, expr.Env(Env{})) - if err != nil { - panic(err) - } - - env := Env{ - Tweets: []Tweet{{42}, {98}, {69}}, - } - output, err := expr.Run(program, env) - if err != nil { - panic(err) - } - - fmt.Println(output) -} -``` - -## Who uses Expr? - -* [Google](https://google.com) uses Expr as one of its expression languages on the [Google Cloud Platform](https://cloud.google.com). -* [Uber](https://uber.com) uses Expr to allow customization of its Uber Eats marketplace. -* [GoDaddy](https://godaddy.com) employs Expr for the customization of its GoDaddy Pro product. -* [ByteDance](https://bytedance.com) incorporates Expr into its internal business rule engine. -* [Aviasales](https://aviasales.ru) utilizes Expr as a business rule engine for its flight search engine. -* [Wish.com](https://www.wish.com) employs Expr in its decision-making rule engine for the Wish Assistant. -* [Naoma.AI](https://www.naoma.ai) uses Expr as a part of its call scoring engine. -* [Argo](https://argoproj.github.io) integrates Expr into Argo Rollouts and Argo Workflows for Kubernetes. -* [OpenTelemetry](https://opentelemetry.io) integrates Expr into the OpenTelemetry Collector. -* [Philips Labs](https://github.com/philips-labs/tabia) employs Expr in Tabia, a tool designed to collect insights on their code bases. -* [CrowdSec](https://crowdsec.net) incorporates Expr into its security automation tool. -* [CoreDNS](https://coredns.io) uses Expr in CoreDNS, which is a DNS server. -* [qiniu](https://www.qiniu.com) implements Expr in its trade systems. -* [Junglee Games](https://www.jungleegames.com/) uses Expr for its in-house marketing retention tool, Project Audience. -* [Faceit](https://www.faceit.com) uses Expr to enhance customization of its eSports matchmaking algorithm. -* [Chaos Mesh](https://chaos-mesh.org) incorporates Expr into Chaos Mesh, a cloud-native Chaos Engineering platform. -* [Visually.io](https://visually.io) employs Expr as a business rule engine for its personalization targeting algorithm. -* [Akvorado](https://github.com/akvorado/akvorado) utilizes Expr to classify exporters and interfaces in network flows. -* [keda.sh](https://keda.sh) uses Expr to allow customization of its Kubernetes-based event-driven autoscaling. -* [Span Digital](https://spandigital.com/) uses Expr in its Knowledge Management products. -* [Xiaohongshu](https://www.xiaohongshu.com/) combining yaml with Expr for dynamically policies delivery. -* [Melrōse](https://melrōse.org) uses Expr to implement its music programming language. -* [Tork](https://www.tork.run/) integrates Expr into its workflow execution. -* [Critical Moments](https://criticalmoments.io) uses Expr for its mobile realtime conditional targeting system. -* [WoodpeckerCI](https://woodpecker-ci.org) uses Expr for [filtering workflows/steps](https://woodpecker-ci.org/docs/usage/workflow-syntax#evaluate). -* [FastSchema](https://github.com/fastschema/fastschema) - A BaaS leveraging Expr for its customizable and dynamic Access Control system. -* [WunderGraph Cosmo](https://github.com/wundergraph/cosmo) - GraphQL Federeration Router uses Expr to customize Middleware behaviour -* [SOLO](https://solo.one) uses Expr interally to allow dynamic code execution with custom defined functions. - -[Add your company too](https://github.com/expr-lang/expr/edit/master/README.md) - -## License - -[MIT](https://github.com/expr-lang/expr/blob/master/LICENSE) - -

diff --git a/vendor/github.com/expr-lang/expr/SECURITY.md b/vendor/github.com/expr-lang/expr/SECURITY.md deleted file mode 100644 index e18771f..0000000 --- a/vendor/github.com/expr-lang/expr/SECURITY.md +++ /dev/null @@ -1,22 +0,0 @@ -# Security Policy - -## Supported Versions - -Expr is generally backwards compatible with very few exceptions, so we -recommend users to always use the latest version to experience stability, -performance and security. - -We generally backport security issues to a single previous minor version, -unless this is not possible or feasible with a reasonable effort. - -| Version | Supported | -|---------|--------------------| -| 1.x | :white_check_mark: | -| 0.x | :x: | - -## Reporting a Vulnerability - -If you believe you've discovered a serious vulnerability, please contact the -Expr core team at anton+security@medv.io. We will evaluate your report and if -necessary issue a fix and an advisory. If the issue was previously undisclosed, -we'll also mention your name in the credits. diff --git a/vendor/github.com/expr-lang/expr/ast/dump.go b/vendor/github.com/expr-lang/expr/ast/dump.go deleted file mode 100644 index 56bc7db..0000000 --- a/vendor/github.com/expr-lang/expr/ast/dump.go +++ /dev/null @@ -1,59 +0,0 @@ -package ast - -import ( - "fmt" - "reflect" - "regexp" -) - -func Dump(node Node) string { - return dump(reflect.ValueOf(node), "") -} - -func dump(v reflect.Value, ident string) string { - if !v.IsValid() { - return "nil" - } - t := v.Type() - switch t.Kind() { - case reflect.Struct: - out := t.Name() + "{\n" - for i := 0; i < t.NumField(); i++ { - f := t.Field(i) - if isPrivate(f.Name) { - continue - } - s := v.Field(i) - out += fmt.Sprintf("%v%v: %v,\n", ident+"\t", f.Name, dump(s, ident+"\t")) - } - return out + ident + "}" - case reflect.Slice: - if v.Len() == 0 { - return t.String() + "{}" - } - out := t.String() + "{\n" - for i := 0; i < v.Len(); i++ { - s := v.Index(i) - out += fmt.Sprintf("%v%v,", ident+"\t", dump(s, ident+"\t")) - if i+1 < v.Len() { - out += "\n" - } - } - return out + "\n" + ident + "}" - case reflect.Ptr: - return dump(v.Elem(), ident) - case reflect.Interface: - return dump(reflect.ValueOf(v.Interface()), ident) - - case reflect.String: - return fmt.Sprintf("%q", v) - default: - return fmt.Sprintf("%v", v) - } -} - -var isCapital = regexp.MustCompile("^[A-Z]") - -func isPrivate(s string) bool { - return !isCapital.Match([]byte(s)) -} diff --git a/vendor/github.com/expr-lang/expr/ast/find.go b/vendor/github.com/expr-lang/expr/ast/find.go deleted file mode 100644 index 247ff6c..0000000 --- a/vendor/github.com/expr-lang/expr/ast/find.go +++ /dev/null @@ -1,18 +0,0 @@ -package ast - -func Find(node Node, fn func(node Node) bool) Node { - v := &finder{fn: fn} - Walk(&node, v) - return v.node -} - -type finder struct { - node Node - fn func(node Node) bool -} - -func (f *finder) Visit(node *Node) { - if f.fn(*node) { - f.node = *node - } -} diff --git a/vendor/github.com/expr-lang/expr/ast/node.go b/vendor/github.com/expr-lang/expr/ast/node.go deleted file mode 100644 index 02923ac..0000000 --- a/vendor/github.com/expr-lang/expr/ast/node.go +++ /dev/null @@ -1,243 +0,0 @@ -package ast - -import ( - "reflect" - - "github.com/expr-lang/expr/checker/nature" - "github.com/expr-lang/expr/file" -) - -var ( - anyType = reflect.TypeOf(new(any)).Elem() -) - -// Node represents items of abstract syntax tree. -type Node interface { - Location() file.Location - SetLocation(file.Location) - Nature() nature.Nature - SetNature(nature.Nature) - Type() reflect.Type - SetType(reflect.Type) - String() string -} - -// Patch replaces the node with a new one. -// Location information is preserved. -// Type information is lost. -func Patch(node *Node, newNode Node) { - newNode.SetLocation((*node).Location()) - *node = newNode -} - -// base is a base struct for all nodes. -type base struct { - loc file.Location - nature nature.Nature -} - -// Location returns the location of the node in the source code. -func (n *base) Location() file.Location { - return n.loc -} - -// SetLocation sets the location of the node in the source code. -func (n *base) SetLocation(loc file.Location) { - n.loc = loc -} - -// Nature returns the nature of the node. -func (n *base) Nature() nature.Nature { - return n.nature -} - -// SetNature sets the nature of the node. -func (n *base) SetNature(nature nature.Nature) { - n.nature = nature -} - -// Type returns the type of the node. -func (n *base) Type() reflect.Type { - if n.nature.Type == nil { - return anyType - } - return n.nature.Type -} - -// SetType sets the type of the node. -func (n *base) SetType(t reflect.Type) { - n.nature.Type = t -} - -// NilNode represents nil. -type NilNode struct { - base -} - -// IdentifierNode represents an identifier. -type IdentifierNode struct { - base - Value string // Name of the identifier. Like "foo" in "foo.bar". -} - -// IntegerNode represents an integer. -type IntegerNode struct { - base - Value int // Value of the integer. -} - -// FloatNode represents a float. -type FloatNode struct { - base - Value float64 // Value of the float. -} - -// BoolNode represents a boolean. -type BoolNode struct { - base - Value bool // Value of the boolean. -} - -// StringNode represents a string. -type StringNode struct { - base - Value string // Value of the string. -} - -// ConstantNode represents a constant. -// Constants are predefined values like nil, true, false, array, map, etc. -// The parser.Parse will never generate ConstantNode, it is only generated -// by the optimizer. -type ConstantNode struct { - base - Value any // Value of the constant. -} - -// UnaryNode represents a unary operator. -type UnaryNode struct { - base - Operator string // Operator of the unary operator. Like "!" in "!foo" or "not" in "not foo". - Node Node // Node of the unary operator. Like "foo" in "!foo". -} - -// BinaryNode represents a binary operator. -type BinaryNode struct { - base - Operator string // Operator of the binary operator. Like "+" in "foo + bar" or "matches" in "foo matches bar". - Left Node // Left node of the binary operator. - Right Node // Right node of the binary operator. -} - -// ChainNode represents an optional chaining group. -// A few MemberNode nodes can be chained together, -// and will be wrapped in a ChainNode. Example: -// -// foo.bar?.baz?.qux -// -// The whole chain will be wrapped in a ChainNode. -type ChainNode struct { - base - Node Node // Node of the chain. -} - -// MemberNode represents a member access. -// It can be a field access, a method call, -// or an array element access. -// Example: -// -// foo.bar or foo["bar"] -// foo.bar() -// array[0] -type MemberNode struct { - base - Node Node // Node of the member access. Like "foo" in "foo.bar". - Property Node // Property of the member access. For property access it is a StringNode. - Optional bool // If true then the member access is optional. Like "foo?.bar". - Method bool -} - -// SliceNode represents access to a slice of an array. -// Example: -// -// array[1:4] -type SliceNode struct { - base - Node Node // Node of the slice. Like "array" in "array[1:4]". - From Node // From an index of the array. Like "1" in "array[1:4]". - To Node // To an index of the array. Like "4" in "array[1:4]". -} - -// CallNode represents a function or a method call. -type CallNode struct { - base - Callee Node // Node of the call. Like "foo" in "foo()". - Arguments []Node // Arguments of the call. -} - -// BuiltinNode represents a builtin function call. -type BuiltinNode struct { - base - Name string // Name of the builtin function. Like "len" in "len(foo)". - Arguments []Node // Arguments of the builtin function. - Throws bool // If true then accessing a field or array index can throw an error. Used by optimizer. - Map Node // Used by optimizer to fold filter() and map() builtins. -} - -// PredicateNode represents a predicate. -// Example: -// -// filter(foo, .bar == 1) -// -// The predicate is ".bar == 1". -type PredicateNode struct { - base - Node Node // Node of the predicate body. -} - -// PointerNode represents a pointer to a current value in predicate. -type PointerNode struct { - base - Name string // Name of the pointer. Like "index" in "#index". -} - -// ConditionalNode represents a ternary operator. -type ConditionalNode struct { - base - Cond Node // Condition of the ternary operator. Like "foo" in "foo ? bar : baz". - Exp1 Node // Expression 1 of the ternary operator. Like "bar" in "foo ? bar : baz". - Exp2 Node // Expression 2 of the ternary operator. Like "baz" in "foo ? bar : baz". -} - -// VariableDeclaratorNode represents a variable declaration. -type VariableDeclaratorNode struct { - base - Name string // Name of the variable. Like "foo" in "let foo = 1; foo + 1". - Value Node // Value of the variable. Like "1" in "let foo = 1; foo + 1". - Expr Node // Expression of the variable. Like "foo + 1" in "let foo = 1; foo + 1". -} - -// SequenceNode represents a sequence of nodes separated by semicolons. -// All nodes are executed, only the last node will be returned. -type SequenceNode struct { - base - Nodes []Node -} - -// ArrayNode represents an array. -type ArrayNode struct { - base - Nodes []Node // Nodes of the array. -} - -// MapNode represents a map. -type MapNode struct { - base - Pairs []Node // PairNode nodes. -} - -// PairNode represents a key-value pair of a map. -type PairNode struct { - base - Key Node // Key of the pair. - Value Node // Value of the pair. -} diff --git a/vendor/github.com/expr-lang/expr/ast/print.go b/vendor/github.com/expr-lang/expr/ast/print.go deleted file mode 100644 index e4e45f0..0000000 --- a/vendor/github.com/expr-lang/expr/ast/print.go +++ /dev/null @@ -1,253 +0,0 @@ -package ast - -import ( - "encoding/json" - "fmt" - "strings" - - "github.com/expr-lang/expr/parser/operator" - "github.com/expr-lang/expr/parser/utils" -) - -func (n *NilNode) String() string { - return "nil" -} - -func (n *IdentifierNode) String() string { - return n.Value -} - -func (n *IntegerNode) String() string { - return fmt.Sprintf("%d", n.Value) -} - -func (n *FloatNode) String() string { - return fmt.Sprintf("%v", n.Value) -} - -func (n *BoolNode) String() string { - return fmt.Sprintf("%t", n.Value) -} - -func (n *StringNode) String() string { - return fmt.Sprintf("%q", n.Value) -} - -func (n *ConstantNode) String() string { - if n.Value == nil { - return "nil" - } - b, err := json.Marshal(n.Value) - if err != nil { - panic(err) - } - return string(b) -} - -func (n *UnaryNode) String() string { - op := n.Operator - if n.Operator == "not" { - op = fmt.Sprintf("%s ", n.Operator) - } - wrap := false - switch b := n.Node.(type) { - case *BinaryNode: - if operator.Binary[b.Operator].Precedence < - operator.Unary[n.Operator].Precedence { - wrap = true - } - case *ConditionalNode: - wrap = true - } - if wrap { - return fmt.Sprintf("%s(%s)", op, n.Node.String()) - } - return fmt.Sprintf("%s%s", op, n.Node.String()) -} - -func (n *BinaryNode) String() string { - if n.Operator == ".." { - return fmt.Sprintf("%s..%s", n.Left, n.Right) - } - - var lhs, rhs string - var lwrap, rwrap bool - - if l, ok := n.Left.(*UnaryNode); ok { - if operator.Unary[l.Operator].Precedence < - operator.Binary[n.Operator].Precedence { - lwrap = true - } - } - if lb, ok := n.Left.(*BinaryNode); ok { - if operator.Less(lb.Operator, n.Operator) { - lwrap = true - } - if operator.Binary[lb.Operator].Precedence == - operator.Binary[n.Operator].Precedence && - operator.Binary[n.Operator].Associativity == operator.Right { - lwrap = true - } - if lb.Operator == "??" { - lwrap = true - } - if operator.IsBoolean(lb.Operator) && n.Operator != lb.Operator { - lwrap = true - } - } - if rb, ok := n.Right.(*BinaryNode); ok { - if operator.Less(rb.Operator, n.Operator) { - rwrap = true - } - if operator.Binary[rb.Operator].Precedence == - operator.Binary[n.Operator].Precedence && - operator.Binary[n.Operator].Associativity == operator.Left { - rwrap = true - } - if operator.IsBoolean(rb.Operator) && n.Operator != rb.Operator { - rwrap = true - } - } - - if _, ok := n.Left.(*ConditionalNode); ok { - lwrap = true - } - if _, ok := n.Right.(*ConditionalNode); ok { - rwrap = true - } - - if lwrap { - lhs = fmt.Sprintf("(%s)", n.Left.String()) - } else { - lhs = n.Left.String() - } - - if rwrap { - rhs = fmt.Sprintf("(%s)", n.Right.String()) - } else { - rhs = n.Right.String() - } - - return fmt.Sprintf("%s %s %s", lhs, n.Operator, rhs) -} - -func (n *ChainNode) String() string { - return n.Node.String() -} - -func (n *MemberNode) String() string { - node := n.Node.String() - if _, ok := n.Node.(*BinaryNode); ok { - node = fmt.Sprintf("(%s)", node) - } - - if n.Optional { - if str, ok := n.Property.(*StringNode); ok && utils.IsValidIdentifier(str.Value) { - return fmt.Sprintf("%s?.%s", node, str.Value) - } else { - return fmt.Sprintf("%s?.[%s]", node, n.Property.String()) - } - } - if str, ok := n.Property.(*StringNode); ok && utils.IsValidIdentifier(str.Value) { - if _, ok := n.Node.(*PointerNode); ok { - return fmt.Sprintf(".%s", str.Value) - } - return fmt.Sprintf("%s.%s", node, str.Value) - } - return fmt.Sprintf("%s[%s]", node, n.Property.String()) -} - -func (n *SliceNode) String() string { - if n.From == nil && n.To == nil { - return fmt.Sprintf("%s[:]", n.Node.String()) - } - if n.From == nil { - return fmt.Sprintf("%s[:%s]", n.Node.String(), n.To.String()) - } - if n.To == nil { - return fmt.Sprintf("%s[%s:]", n.Node.String(), n.From.String()) - } - return fmt.Sprintf("%s[%s:%s]", n.Node.String(), n.From.String(), n.To.String()) -} - -func (n *CallNode) String() string { - arguments := make([]string, len(n.Arguments)) - for i, arg := range n.Arguments { - arguments[i] = arg.String() - } - return fmt.Sprintf("%s(%s)", n.Callee.String(), strings.Join(arguments, ", ")) -} - -func (n *BuiltinNode) String() string { - arguments := make([]string, len(n.Arguments)) - for i, arg := range n.Arguments { - arguments[i] = arg.String() - } - return fmt.Sprintf("%s(%s)", n.Name, strings.Join(arguments, ", ")) -} - -func (n *PredicateNode) String() string { - return n.Node.String() -} - -func (n *PointerNode) String() string { - return fmt.Sprintf("#%s", n.Name) -} - -func (n *VariableDeclaratorNode) String() string { - return fmt.Sprintf("let %s = %s; %s", n.Name, n.Value.String(), n.Expr.String()) -} - -func (n *SequenceNode) String() string { - nodes := make([]string, len(n.Nodes)) - for i, node := range n.Nodes { - nodes[i] = node.String() - } - return strings.Join(nodes, "; ") -} - -func (n *ConditionalNode) String() string { - var cond, exp1, exp2 string - if _, ok := n.Cond.(*ConditionalNode); ok { - cond = fmt.Sprintf("(%s)", n.Cond.String()) - } else { - cond = n.Cond.String() - } - if _, ok := n.Exp1.(*ConditionalNode); ok { - exp1 = fmt.Sprintf("(%s)", n.Exp1.String()) - } else { - exp1 = n.Exp1.String() - } - if _, ok := n.Exp2.(*ConditionalNode); ok { - exp2 = fmt.Sprintf("(%s)", n.Exp2.String()) - } else { - exp2 = n.Exp2.String() - } - return fmt.Sprintf("%s ? %s : %s", cond, exp1, exp2) -} - -func (n *ArrayNode) String() string { - nodes := make([]string, len(n.Nodes)) - for i, node := range n.Nodes { - nodes[i] = node.String() - } - return fmt.Sprintf("[%s]", strings.Join(nodes, ", ")) -} - -func (n *MapNode) String() string { - pairs := make([]string, len(n.Pairs)) - for i, pair := range n.Pairs { - pairs[i] = pair.String() - } - return fmt.Sprintf("{%s}", strings.Join(pairs, ", ")) -} - -func (n *PairNode) String() string { - if str, ok := n.Key.(*StringNode); ok { - if utils.IsValidIdentifier(str.Value) { - return fmt.Sprintf("%s: %s", str.Value, n.Value.String()) - } - return fmt.Sprintf("%s: %s", str.String(), n.Value.String()) - } - return fmt.Sprintf("(%s): %s", n.Key.String(), n.Value.String()) -} diff --git a/vendor/github.com/expr-lang/expr/ast/visitor.go b/vendor/github.com/expr-lang/expr/ast/visitor.go deleted file mode 100644 index 72cd636..0000000 --- a/vendor/github.com/expr-lang/expr/ast/visitor.go +++ /dev/null @@ -1,78 +0,0 @@ -package ast - -import "fmt" - -type Visitor interface { - Visit(node *Node) -} - -func Walk(node *Node, v Visitor) { - if *node == nil { - return - } - switch n := (*node).(type) { - case *NilNode: - case *IdentifierNode: - case *IntegerNode: - case *FloatNode: - case *BoolNode: - case *StringNode: - case *ConstantNode: - case *UnaryNode: - Walk(&n.Node, v) - case *BinaryNode: - Walk(&n.Left, v) - Walk(&n.Right, v) - case *ChainNode: - Walk(&n.Node, v) - case *MemberNode: - Walk(&n.Node, v) - Walk(&n.Property, v) - case *SliceNode: - Walk(&n.Node, v) - if n.From != nil { - Walk(&n.From, v) - } - if n.To != nil { - Walk(&n.To, v) - } - case *CallNode: - Walk(&n.Callee, v) - for i := range n.Arguments { - Walk(&n.Arguments[i], v) - } - case *BuiltinNode: - for i := range n.Arguments { - Walk(&n.Arguments[i], v) - } - case *PredicateNode: - Walk(&n.Node, v) - case *PointerNode: - case *VariableDeclaratorNode: - Walk(&n.Value, v) - Walk(&n.Expr, v) - case *SequenceNode: - for i := range n.Nodes { - Walk(&n.Nodes[i], v) - } - case *ConditionalNode: - Walk(&n.Cond, v) - Walk(&n.Exp1, v) - Walk(&n.Exp2, v) - case *ArrayNode: - for i := range n.Nodes { - Walk(&n.Nodes[i], v) - } - case *MapNode: - for i := range n.Pairs { - Walk(&n.Pairs[i], v) - } - case *PairNode: - Walk(&n.Key, v) - Walk(&n.Value, v) - default: - panic(fmt.Sprintf("undefined node type (%T)", node)) - } - - v.Visit(node) -} diff --git a/vendor/github.com/expr-lang/expr/builtin/builtin.go b/vendor/github.com/expr-lang/expr/builtin/builtin.go deleted file mode 100644 index c23daf4..0000000 --- a/vendor/github.com/expr-lang/expr/builtin/builtin.go +++ /dev/null @@ -1,1069 +0,0 @@ -package builtin - -import ( - "encoding/base64" - "encoding/json" - "fmt" - "reflect" - "sort" - "strings" - "time" - - "github.com/expr-lang/expr/internal/deref" - "github.com/expr-lang/expr/vm/runtime" -) - -var ( - Index map[string]int - Names []string -) - -func init() { - Index = make(map[string]int) - Names = make([]string, len(Builtins)) - for i, fn := range Builtins { - Index[fn.Name] = i - Names[i] = fn.Name - } -} - -var Builtins = []*Function{ - { - Name: "all", - Predicate: true, - Types: types(new(func([]any, func(any) bool) bool)), - }, - { - Name: "none", - Predicate: true, - Types: types(new(func([]any, func(any) bool) bool)), - }, - { - Name: "any", - Predicate: true, - Types: types(new(func([]any, func(any) bool) bool)), - }, - { - Name: "one", - Predicate: true, - Types: types(new(func([]any, func(any) bool) bool)), - }, - { - Name: "filter", - Predicate: true, - Types: types(new(func([]any, func(any) bool) []any)), - }, - { - Name: "map", - Predicate: true, - Types: types(new(func([]any, func(any) any) []any)), - }, - { - Name: "find", - Predicate: true, - Types: types(new(func([]any, func(any) bool) any)), - }, - { - Name: "findIndex", - Predicate: true, - Types: types(new(func([]any, func(any) bool) int)), - }, - { - Name: "findLast", - Predicate: true, - Types: types(new(func([]any, func(any) bool) any)), - }, - { - Name: "findLastIndex", - Predicate: true, - Types: types(new(func([]any, func(any) bool) int)), - }, - { - Name: "count", - Predicate: true, - Types: types(new(func([]any, func(any) bool) int)), - }, - { - Name: "sum", - Predicate: true, - Types: types(new(func([]any, func(any) bool) int)), - }, - { - Name: "groupBy", - Predicate: true, - Types: types(new(func([]any, func(any) any) map[any][]any)), - }, - { - Name: "sortBy", - Predicate: true, - Types: types(new(func([]any, func(any) bool, string) []any)), - }, - { - Name: "reduce", - Predicate: true, - Types: types(new(func([]any, func(any, any) any, any) any)), - }, - { - Name: "len", - Fast: Len, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Array, reflect.Map, reflect.Slice, reflect.String, reflect.Interface: - return integerType, nil - } - return anyType, fmt.Errorf("invalid argument for len (type %s)", args[0]) - }, - }, - { - Name: "type", - Fast: Type, - Types: types(new(func(any) string)), - }, - { - Name: "abs", - Fast: Abs, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Interface: - return args[0], nil - } - return anyType, fmt.Errorf("invalid argument for abs (type %s)", args[0]) - }, - }, - { - Name: "ceil", - Fast: Ceil, - Validate: func(args []reflect.Type) (reflect.Type, error) { - return validateRoundFunc("ceil", args) - }, - }, - { - Name: "floor", - Fast: Floor, - Validate: func(args []reflect.Type) (reflect.Type, error) { - return validateRoundFunc("floor", args) - }, - }, - { - Name: "round", - Fast: Round, - Validate: func(args []reflect.Type) (reflect.Type, error) { - return validateRoundFunc("round", args) - }, - }, - { - Name: "int", - Fast: Int, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface: - return integerType, nil - case reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return integerType, nil - case reflect.String: - return integerType, nil - } - return anyType, fmt.Errorf("invalid argument for int (type %s)", args[0]) - }, - }, - { - Name: "float", - Fast: Float, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface: - return floatType, nil - case reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return floatType, nil - case reflect.String: - return floatType, nil - } - return anyType, fmt.Errorf("invalid argument for float (type %s)", args[0]) - }, - }, - { - Name: "string", - Fast: String, - Types: types(new(func(any any) string)), - }, - { - Name: "trim", - Func: func(args ...any) (any, error) { - if len(args) == 1 { - return strings.TrimSpace(args[0].(string)), nil - } else if len(args) == 2 { - return strings.Trim(args[0].(string), args[1].(string)), nil - } else { - return nil, fmt.Errorf("invalid number of arguments for trim (expected 1 or 2, got %d)", len(args)) - } - }, - Types: types( - strings.TrimSpace, - strings.Trim, - ), - }, - { - Name: "trimPrefix", - Func: func(args ...any) (any, error) { - s := " " - if len(args) == 2 { - s = args[1].(string) - } - return strings.TrimPrefix(args[0].(string), s), nil - }, - Types: types( - strings.TrimPrefix, - new(func(string) string), - ), - }, - { - Name: "trimSuffix", - Func: func(args ...any) (any, error) { - s := " " - if len(args) == 2 { - s = args[1].(string) - } - return strings.TrimSuffix(args[0].(string), s), nil - }, - Types: types( - strings.TrimSuffix, - new(func(string) string), - ), - }, - { - Name: "upper", - Fast: func(arg any) any { - return strings.ToUpper(arg.(string)) - }, - Types: types(strings.ToUpper), - }, - { - Name: "lower", - Fast: func(arg any) any { - return strings.ToLower(arg.(string)) - }, - Types: types(strings.ToLower), - }, - { - Name: "split", - Func: func(args ...any) (any, error) { - if len(args) == 2 { - return strings.Split(args[0].(string), args[1].(string)), nil - } else if len(args) == 3 { - return strings.SplitN(args[0].(string), args[1].(string), runtime.ToInt(args[2])), nil - } else { - return nil, fmt.Errorf("invalid number of arguments for split (expected 2 or 3, got %d)", len(args)) - } - }, - Types: types( - strings.Split, - strings.SplitN, - ), - }, - { - Name: "splitAfter", - Func: func(args ...any) (any, error) { - if len(args) == 2 { - return strings.SplitAfter(args[0].(string), args[1].(string)), nil - } else if len(args) == 3 { - return strings.SplitAfterN(args[0].(string), args[1].(string), runtime.ToInt(args[2])), nil - } else { - return nil, fmt.Errorf("invalid number of arguments for splitAfter (expected 2 or 3, got %d)", len(args)) - } - }, - Types: types( - strings.SplitAfter, - strings.SplitAfterN, - ), - }, - { - Name: "replace", - Func: func(args ...any) (any, error) { - if len(args) == 4 { - return strings.Replace(args[0].(string), args[1].(string), args[2].(string), runtime.ToInt(args[3])), nil - } else if len(args) == 3 { - return strings.ReplaceAll(args[0].(string), args[1].(string), args[2].(string)), nil - } else { - return nil, fmt.Errorf("invalid number of arguments for replace (expected 3 or 4, got %d)", len(args)) - } - }, - Types: types( - strings.Replace, - strings.ReplaceAll, - ), - }, - { - Name: "repeat", - Safe: func(args ...any) (any, uint, error) { - s := args[0].(string) - n := runtime.ToInt(args[1]) - if n < 0 { - return nil, 0, fmt.Errorf("invalid argument for repeat (expected positive integer, got %d)", n) - } - if n > 1e6 { - return nil, 0, fmt.Errorf("memory budget exceeded") - } - return strings.Repeat(s, n), uint(len(s) * n), nil - }, - Types: types(strings.Repeat), - }, - { - Name: "join", - Func: func(args ...any) (any, error) { - glue := "" - if len(args) == 2 { - glue = args[1].(string) - } - switch args[0].(type) { - case []string: - return strings.Join(args[0].([]string), glue), nil - case []any: - var s []string - for _, arg := range args[0].([]any) { - s = append(s, arg.(string)) - } - return strings.Join(s, glue), nil - } - return nil, fmt.Errorf("invalid argument for join (type %s)", reflect.TypeOf(args[0])) - }, - Types: types( - strings.Join, - new(func([]any, string) string), - new(func([]any) string), - new(func([]string, string) string), - new(func([]string) string), - ), - }, - { - Name: "indexOf", - Func: func(args ...any) (any, error) { - return strings.Index(args[0].(string), args[1].(string)), nil - }, - Types: types(strings.Index), - }, - { - Name: "lastIndexOf", - Func: func(args ...any) (any, error) { - return strings.LastIndex(args[0].(string), args[1].(string)), nil - }, - Types: types(strings.LastIndex), - }, - { - Name: "hasPrefix", - Func: func(args ...any) (any, error) { - return strings.HasPrefix(args[0].(string), args[1].(string)), nil - }, - Types: types(strings.HasPrefix), - }, - { - Name: "hasSuffix", - Func: func(args ...any) (any, error) { - return strings.HasSuffix(args[0].(string), args[1].(string)), nil - }, - Types: types(strings.HasSuffix), - }, - { - Name: "max", - Func: func(args ...any) (any, error) { - return minMax("max", runtime.Less, args...) - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - return validateAggregateFunc("max", args) - }, - }, - { - Name: "min", - Func: func(args ...any) (any, error) { - return minMax("min", runtime.More, args...) - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - return validateAggregateFunc("min", args) - }, - }, - { - Name: "mean", - Func: func(args ...any) (any, error) { - count, sum, err := mean(args...) - if err != nil { - return nil, err - } - if count == 0 { - return 0.0, nil - } - return sum / float64(count), nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - return validateAggregateFunc("mean", args) - }, - }, - { - Name: "median", - Func: func(args ...any) (any, error) { - values, err := median(args...) - if err != nil { - return nil, err - } - if n := len(values); n > 0 { - sort.Float64s(values) - if n%2 == 1 { - return values[n/2], nil - } - return (values[n/2-1] + values[n/2]) / 2, nil - } - return 0.0, nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - return validateAggregateFunc("median", args) - }, - }, - { - Name: "toJSON", - Func: func(args ...any) (any, error) { - b, err := json.MarshalIndent(args[0], "", " ") - if err != nil { - return nil, err - } - return string(b), nil - }, - Types: types(new(func(any) string)), - }, - { - Name: "fromJSON", - Func: func(args ...any) (any, error) { - var v any - err := json.Unmarshal([]byte(args[0].(string)), &v) - if err != nil { - return nil, err - } - return v, nil - }, - Types: types(new(func(string) any)), - }, - { - Name: "toBase64", - Func: func(args ...any) (any, error) { - return base64.StdEncoding.EncodeToString([]byte(args[0].(string))), nil - }, - Types: types(new(func(string) string)), - }, - { - Name: "fromBase64", - Func: func(args ...any) (any, error) { - b, err := base64.StdEncoding.DecodeString(args[0].(string)) - if err != nil { - return nil, err - } - return string(b), nil - }, - Types: types(new(func(string) string)), - }, - { - Name: "now", - Func: func(args ...any) (any, error) { - if len(args) == 0 { - return time.Now(), nil - } - if len(args) == 1 { - if tz, ok := args[0].(*time.Location); ok { - return time.Now().In(tz), nil - } - } - return nil, fmt.Errorf("invalid number of arguments (expected 0, got %d)", len(args)) - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) == 0 { - return timeType, nil - } - if len(args) == 1 { - if args[0] != nil && args[0].AssignableTo(locationType) { - return timeType, nil - } - } - return anyType, fmt.Errorf("invalid number of arguments (expected 0, got %d)", len(args)) - }, - Deref: func(i int, arg reflect.Type) bool { - return false - }, - }, - { - Name: "duration", - Func: func(args ...any) (any, error) { - return time.ParseDuration(args[0].(string)) - }, - Types: types(time.ParseDuration), - }, - { - Name: "date", - Func: func(args ...any) (any, error) { - tz, ok := args[0].(*time.Location) - if ok { - args = args[1:] - } - - date := args[0].(string) - if len(args) == 2 { - layout := args[1].(string) - if tz != nil { - return time.ParseInLocation(layout, date, tz) - } - return time.Parse(layout, date) - } - if len(args) == 3 { - layout := args[1].(string) - timeZone := args[2].(string) - tz, err := time.LoadLocation(timeZone) - if err != nil { - return nil, err - } - t, err := time.ParseInLocation(layout, date, tz) - if err != nil { - return nil, err - } - return t, nil - } - - layouts := []string{ - "2006-01-02", - "15:04:05", - "2006-01-02 15:04:05", - time.RFC3339, - time.RFC822, - time.RFC850, - time.RFC1123, - } - for _, layout := range layouts { - if tz == nil { - t, err := time.Parse(layout, date) - if err == nil { - return t, nil - } - } else { - t, err := time.ParseInLocation(layout, date, tz) - if err == nil { - return t, nil - } - } - } - return nil, fmt.Errorf("invalid date %s", date) - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) < 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected at least 1, got %d)", len(args)) - } - if args[0] != nil && args[0].AssignableTo(locationType) { - args = args[1:] - } - if len(args) > 3 { - return anyType, fmt.Errorf("invalid number of arguments (expected at most 3, got %d)", len(args)) - } - return timeType, nil - }, - Deref: func(i int, arg reflect.Type) bool { - if arg.AssignableTo(locationType) { - return false - } - return true - }, - }, - { - Name: "timezone", - Func: func(args ...any) (any, error) { - tz, err := time.LoadLocation(args[0].(string)) - if err != nil { - return nil, err - } - return tz, nil - }, - Types: types(time.LoadLocation), - }, - { - Name: "first", - Func: func(args ...any) (any, error) { - defer func() { - if r := recover(); r != nil { - return - } - }() - return runtime.Fetch(args[0], 0), nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface: - return anyType, nil - case reflect.Slice, reflect.Array: - return args[0].Elem(), nil - } - return anyType, fmt.Errorf("cannot get first element from %s", args[0]) - }, - }, - { - Name: "last", - Func: func(args ...any) (any, error) { - defer func() { - if r := recover(); r != nil { - return - } - }() - return runtime.Fetch(args[0], -1), nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface: - return anyType, nil - case reflect.Slice, reflect.Array: - return args[0].Elem(), nil - } - return anyType, fmt.Errorf("cannot get last element from %s", args[0]) - }, - }, - { - Name: "get", - Func: get, - }, - { - Name: "take", - Func: func(args ...any) (any, error) { - if len(args) != 2 { - return nil, fmt.Errorf("invalid number of arguments (expected 2, got %d)", len(args)) - } - v := reflect.ValueOf(args[0]) - if v.Kind() != reflect.Slice && v.Kind() != reflect.Array { - return nil, fmt.Errorf("cannot take from %s", v.Kind()) - } - n := reflect.ValueOf(args[1]) - if !n.CanInt() { - return nil, fmt.Errorf("cannot take %s elements", n.Kind()) - } - to := 0 - if n.Int() > int64(v.Len()) { - to = v.Len() - } else { - to = int(n.Int()) - } - return v.Slice(0, to).Interface(), nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 2 { - return anyType, fmt.Errorf("invalid number of arguments (expected 2, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface, reflect.Slice, reflect.Array: - default: - return anyType, fmt.Errorf("cannot take from %s", args[0]) - } - switch kind(args[1]) { - case reflect.Interface, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - default: - return anyType, fmt.Errorf("cannot take %s elements", args[1]) - } - return args[0], nil - }, - }, - { - Name: "keys", - Func: func(args ...any) (any, error) { - if len(args) != 1 { - return nil, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - v := reflect.ValueOf(args[0]) - if v.Kind() != reflect.Map { - return nil, fmt.Errorf("cannot get keys from %s", v.Kind()) - } - keys := v.MapKeys() - out := make([]any, len(keys)) - for i, key := range keys { - out[i] = key.Interface() - } - return out, nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface: - return arrayType, nil - case reflect.Map: - return arrayType, nil - } - return anyType, fmt.Errorf("cannot get keys from %s", args[0]) - }, - }, - { - Name: "values", - Func: func(args ...any) (any, error) { - if len(args) != 1 { - return nil, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - v := reflect.ValueOf(args[0]) - if v.Kind() != reflect.Map { - return nil, fmt.Errorf("cannot get values from %s", v.Kind()) - } - keys := v.MapKeys() - out := make([]any, len(keys)) - for i, key := range keys { - out[i] = v.MapIndex(key).Interface() - } - return out, nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface: - return arrayType, nil - case reflect.Map: - return arrayType, nil - } - return anyType, fmt.Errorf("cannot get values from %s", args[0]) - }, - }, - { - Name: "toPairs", - Func: func(args ...any) (any, error) { - if len(args) != 1 { - return nil, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - v := reflect.ValueOf(args[0]) - if v.Kind() != reflect.Map { - return nil, fmt.Errorf("cannot transform %s to pairs", v.Kind()) - } - keys := v.MapKeys() - out := make([][2]any, len(keys)) - for i, key := range keys { - out[i] = [2]any{key.Interface(), v.MapIndex(key).Interface()} - } - return out, nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface, reflect.Map: - return arrayType, nil - } - return anyType, fmt.Errorf("cannot transform %s to pairs", args[0]) - }, - }, - { - Name: "fromPairs", - Func: func(args ...any) (any, error) { - if len(args) != 1 { - return nil, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - v := reflect.ValueOf(args[0]) - if v.Kind() != reflect.Slice && v.Kind() != reflect.Array { - return nil, fmt.Errorf("cannot transform %s from pairs", v) - } - out := reflect.MakeMap(mapType) - for i := 0; i < v.Len(); i++ { - pair := deref.Value(v.Index(i)) - if pair.Kind() != reflect.Array && pair.Kind() != reflect.Slice { - return nil, fmt.Errorf("invalid pair %v", pair) - } - if pair.Len() != 2 { - return nil, fmt.Errorf("invalid pair length %v", pair) - } - key := pair.Index(0) - value := pair.Index(1) - out.SetMapIndex(key, value) - } - return out.Interface(), nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface, reflect.Slice, reflect.Array: - return mapType, nil - } - return anyType, fmt.Errorf("cannot transform %s from pairs", args[0]) - }, - }, - { - Name: "reverse", - Safe: func(args ...any) (any, uint, error) { - if len(args) != 1 { - return nil, 0, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - - v := reflect.ValueOf(args[0]) - if v.Kind() != reflect.Slice && v.Kind() != reflect.Array { - return nil, 0, fmt.Errorf("cannot reverse %s", v.Kind()) - } - - size := v.Len() - arr := make([]any, size) - - for i := 0; i < size; i++ { - arr[i] = v.Index(size - i - 1).Interface() - } - - return arr, uint(size), nil - - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Interface, reflect.Slice, reflect.Array: - return arrayType, nil - default: - return anyType, fmt.Errorf("cannot reverse %s", args[0]) - } - }, - }, - - { - Name: "uniq", - Func: func(args ...any) (any, error) { - if len(args) != 1 { - return nil, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - - v := reflect.ValueOf(args[0]) - if v.Kind() != reflect.Array && v.Kind() != reflect.Slice { - return nil, fmt.Errorf("cannot uniq %s", v.Kind()) - } - - size := v.Len() - ret := []any{} - - eq := func(i int) bool { - for _, r := range ret { - if runtime.Equal(v.Index(i).Interface(), r) { - return true - } - } - - return false - } - - for i := 0; i < size; i += 1 { - if eq(i) { - continue - } - - ret = append(ret, v.Index(i).Interface()) - } - - return ret, nil - }, - - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - - switch kind(args[0]) { - case reflect.Interface, reflect.Slice, reflect.Array: - return arrayType, nil - default: - return anyType, fmt.Errorf("cannot uniq %s", args[0]) - } - }, - }, - - { - Name: "concat", - Safe: func(args ...any) (any, uint, error) { - if len(args) == 0 { - return nil, 0, fmt.Errorf("invalid number of arguments (expected at least 1, got 0)") - } - - var size uint - var arr []any - - for _, arg := range args { - v := reflect.ValueOf(arg) - - if v.Kind() != reflect.Slice && v.Kind() != reflect.Array { - return nil, 0, fmt.Errorf("cannot concat %s", v.Kind()) - } - - size += uint(v.Len()) - - for i := 0; i < v.Len(); i++ { - item := v.Index(i) - arr = append(arr, item.Interface()) - } - } - - return arr, size, nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) == 0 { - return anyType, fmt.Errorf("invalid number of arguments (expected at least 1, got 0)") - } - - for _, arg := range args { - switch kind(arg) { - case reflect.Interface, reflect.Slice, reflect.Array: - default: - return anyType, fmt.Errorf("cannot concat %s", arg) - } - } - - return arrayType, nil - }, - }, - { - Name: "flatten", - Safe: func(args ...any) (any, uint, error) { - var size uint - if len(args) != 1 { - return nil, 0, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - v := reflect.ValueOf(args[0]) - if v.Kind() != reflect.Array && v.Kind() != reflect.Slice { - return nil, size, fmt.Errorf("cannot flatten %s", v.Kind()) - } - ret := flatten(v) - size = uint(len(ret)) - return ret, size, nil - }, - Validate: func(args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - - for _, arg := range args { - switch kind(arg) { - case reflect.Interface, reflect.Slice, reflect.Array: - default: - return anyType, fmt.Errorf("cannot flatten %s", arg) - } - } - - return arrayType, nil - }, - }, - { - Name: "sort", - Safe: func(args ...any) (any, uint, error) { - if len(args) != 1 && len(args) != 2 { - return nil, 0, fmt.Errorf("invalid number of arguments (expected 1 or 2, got %d)", len(args)) - } - - var array []any - - switch in := args[0].(type) { - case []any: - array = make([]any, len(in)) - copy(array, in) - case []int: - array = make([]any, len(in)) - for i, v := range in { - array[i] = v - } - case []float64: - array = make([]any, len(in)) - for i, v := range in { - array[i] = v - } - case []string: - array = make([]any, len(in)) - for i, v := range in { - array[i] = v - } - } - - var desc bool - if len(args) == 2 { - switch args[1].(string) { - case "asc": - desc = false - case "desc": - desc = true - default: - return nil, 0, fmt.Errorf("invalid order %s, expected asc or desc", args[1]) - } - } - - sortable := &runtime.Sort{ - Desc: desc, - Array: array, - } - sort.Sort(sortable) - - return sortable.Array, uint(len(array)), nil - }, - Types: types( - new(func([]any, string) []any), - new(func([]int, string) []any), - new(func([]float64, string) []any), - new(func([]string, string) []any), - - new(func([]any) []any), - new(func([]float64) []any), - new(func([]string) []any), - new(func([]int) []any), - ), - }, - bitFunc("bitand", func(x, y int) (any, error) { - return x & y, nil - }), - bitFunc("bitor", func(x, y int) (any, error) { - return x | y, nil - }), - bitFunc("bitxor", func(x, y int) (any, error) { - return x ^ y, nil - }), - bitFunc("bitnand", func(x, y int) (any, error) { - return x &^ y, nil - }), - bitFunc("bitshl", func(x, y int) (any, error) { - if y < 0 { - return nil, fmt.Errorf("invalid operation: negative shift count %d (type int)", y) - } - return x << y, nil - }), - bitFunc("bitshr", func(x, y int) (any, error) { - if y < 0 { - return nil, fmt.Errorf("invalid operation: negative shift count %d (type int)", y) - } - return x >> y, nil - }), - bitFunc("bitushr", func(x, y int) (any, error) { - if y < 0 { - return nil, fmt.Errorf("invalid operation: negative shift count %d (type int)", y) - } - return int(uint(x) >> y), nil - }), - { - Name: "bitnot", - Func: func(args ...any) (any, error) { - if len(args) != 1 { - return nil, fmt.Errorf("invalid number of arguments for bitnot (expected 1, got %d)", len(args)) - } - x, err := toInt(args[0]) - if err != nil { - return nil, fmt.Errorf("%v to call bitnot", err) - } - return ^x, nil - }, - Types: types(new(func(int) int)), - }, -} diff --git a/vendor/github.com/expr-lang/expr/builtin/function.go b/vendor/github.com/expr-lang/expr/builtin/function.go deleted file mode 100644 index 6634ac3..0000000 --- a/vendor/github.com/expr-lang/expr/builtin/function.go +++ /dev/null @@ -1,23 +0,0 @@ -package builtin - -import ( - "reflect" -) - -type Function struct { - Name string - Fast func(arg any) any - Func func(args ...any) (any, error) - Safe func(args ...any) (any, uint, error) - Types []reflect.Type - Validate func(args []reflect.Type) (reflect.Type, error) - Deref func(i int, arg reflect.Type) bool - Predicate bool -} - -func (f *Function) Type() reflect.Type { - if len(f.Types) > 0 { - return f.Types[0] - } - return reflect.TypeOf(f.Func) -} diff --git a/vendor/github.com/expr-lang/expr/builtin/lib.go b/vendor/github.com/expr-lang/expr/builtin/lib.go deleted file mode 100644 index 6f6a3b6..0000000 --- a/vendor/github.com/expr-lang/expr/builtin/lib.go +++ /dev/null @@ -1,441 +0,0 @@ -package builtin - -import ( - "fmt" - "math" - "reflect" - "strconv" - "unicode/utf8" - - "github.com/expr-lang/expr/internal/deref" - "github.com/expr-lang/expr/vm/runtime" -) - -func Len(x any) any { - v := reflect.ValueOf(x) - switch v.Kind() { - case reflect.Array, reflect.Slice, reflect.Map: - return v.Len() - case reflect.String: - return utf8.RuneCountInString(v.String()) - default: - panic(fmt.Sprintf("invalid argument for len (type %T)", x)) - } -} - -func Type(arg any) any { - if arg == nil { - return "nil" - } - v := reflect.ValueOf(arg) - if v.Type().Name() != "" && v.Type().PkgPath() != "" { - return fmt.Sprintf("%s.%s", v.Type().PkgPath(), v.Type().Name()) - } - switch v.Type().Kind() { - case reflect.Invalid: - return "invalid" - case reflect.Bool: - return "bool" - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return "int" - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return "uint" - case reflect.Float32, reflect.Float64: - return "float" - case reflect.String: - return "string" - case reflect.Array, reflect.Slice: - return "array" - case reflect.Map: - return "map" - case reflect.Func: - return "func" - case reflect.Struct: - return "struct" - default: - return "unknown" - } -} - -func Abs(x any) any { - switch x := x.(type) { - case float32: - if x < 0 { - return -x - } else { - return x - } - case float64: - if x < 0 { - return -x - } else { - return x - } - case int: - if x < 0 { - return -x - } else { - return x - } - case int8: - if x < 0 { - return -x - } else { - return x - } - case int16: - if x < 0 { - return -x - } else { - return x - } - case int32: - if x < 0 { - return -x - } else { - return x - } - case int64: - if x < 0 { - return -x - } else { - return x - } - case uint: - if x < 0 { - return -x - } else { - return x - } - case uint8: - if x < 0 { - return -x - } else { - return x - } - case uint16: - if x < 0 { - return -x - } else { - return x - } - case uint32: - if x < 0 { - return -x - } else { - return x - } - case uint64: - if x < 0 { - return -x - } else { - return x - } - } - panic(fmt.Sprintf("invalid argument for abs (type %T)", x)) -} - -func Ceil(x any) any { - switch x := x.(type) { - case float32: - return math.Ceil(float64(x)) - case float64: - return math.Ceil(x) - case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64: - return Float(x) - } - panic(fmt.Sprintf("invalid argument for ceil (type %T)", x)) -} - -func Floor(x any) any { - switch x := x.(type) { - case float32: - return math.Floor(float64(x)) - case float64: - return math.Floor(x) - case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64: - return Float(x) - } - panic(fmt.Sprintf("invalid argument for floor (type %T)", x)) -} - -func Round(x any) any { - switch x := x.(type) { - case float32: - return math.Round(float64(x)) - case float64: - return math.Round(x) - case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64: - return Float(x) - } - panic(fmt.Sprintf("invalid argument for round (type %T)", x)) -} - -func Int(x any) any { - switch x := x.(type) { - case float32: - return int(x) - case float64: - return int(x) - case int: - return x - case int8: - return int(x) - case int16: - return int(x) - case int32: - return int(x) - case int64: - return int(x) - case uint: - return int(x) - case uint8: - return int(x) - case uint16: - return int(x) - case uint32: - return int(x) - case uint64: - return int(x) - case string: - i, err := strconv.Atoi(x) - if err != nil { - panic(fmt.Sprintf("invalid operation: int(%s)", x)) - } - return i - default: - val := reflect.ValueOf(x) - if val.CanConvert(integerType) { - return val.Convert(integerType).Interface() - } - panic(fmt.Sprintf("invalid operation: int(%T)", x)) - } -} - -func Float(x any) any { - switch x := x.(type) { - case float32: - return float64(x) - case float64: - return x - case int: - return float64(x) - case int8: - return float64(x) - case int16: - return float64(x) - case int32: - return float64(x) - case int64: - return float64(x) - case uint: - return float64(x) - case uint8: - return float64(x) - case uint16: - return float64(x) - case uint32: - return float64(x) - case uint64: - return float64(x) - case string: - f, err := strconv.ParseFloat(x, 64) - if err != nil { - panic(fmt.Sprintf("invalid operation: float(%s)", x)) - } - return f - default: - panic(fmt.Sprintf("invalid operation: float(%T)", x)) - } -} - -func String(arg any) any { - return fmt.Sprintf("%v", arg) -} - -func minMax(name string, fn func(any, any) bool, args ...any) (any, error) { - var val any - for _, arg := range args { - rv := reflect.ValueOf(arg) - switch rv.Kind() { - case reflect.Array, reflect.Slice: - size := rv.Len() - for i := 0; i < size; i++ { - elemVal, err := minMax(name, fn, rv.Index(i).Interface()) - if err != nil { - return nil, err - } - switch elemVal.(type) { - case int, int8, int16, int32, int64, - uint, uint8, uint16, uint32, uint64, - float32, float64: - if elemVal != nil && (val == nil || fn(val, elemVal)) { - val = elemVal - } - default: - return nil, fmt.Errorf("invalid argument for %s (type %T)", name, elemVal) - } - - } - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, - reflect.Float32, reflect.Float64: - elemVal := rv.Interface() - if val == nil || fn(val, elemVal) { - val = elemVal - } - default: - if len(args) == 1 { - return args[0], nil - } - return nil, fmt.Errorf("invalid argument for %s (type %T)", name, arg) - } - } - return val, nil -} - -func mean(args ...any) (int, float64, error) { - var total float64 - var count int - - for _, arg := range args { - rv := reflect.ValueOf(arg) - switch rv.Kind() { - case reflect.Array, reflect.Slice: - size := rv.Len() - for i := 0; i < size; i++ { - elemCount, elemSum, err := mean(rv.Index(i).Interface()) - if err != nil { - return 0, 0, err - } - total += elemSum - count += elemCount - } - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - total += float64(rv.Int()) - count++ - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - total += float64(rv.Uint()) - count++ - case reflect.Float32, reflect.Float64: - total += rv.Float() - count++ - default: - return 0, 0, fmt.Errorf("invalid argument for mean (type %T)", arg) - } - } - return count, total, nil -} - -func median(args ...any) ([]float64, error) { - var values []float64 - - for _, arg := range args { - rv := reflect.ValueOf(arg) - switch rv.Kind() { - case reflect.Array, reflect.Slice: - size := rv.Len() - for i := 0; i < size; i++ { - elems, err := median(rv.Index(i).Interface()) - if err != nil { - return nil, err - } - values = append(values, elems...) - } - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - values = append(values, float64(rv.Int())) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - values = append(values, float64(rv.Uint())) - case reflect.Float32, reflect.Float64: - values = append(values, rv.Float()) - default: - return nil, fmt.Errorf("invalid argument for median (type %T)", arg) - } - } - return values, nil -} - -func flatten(arg reflect.Value) []any { - ret := []any{} - for i := 0; i < arg.Len(); i++ { - v := deref.Value(arg.Index(i)) - if v.Kind() == reflect.Array || v.Kind() == reflect.Slice { - x := flatten(v) - ret = append(ret, x...) - } else { - ret = append(ret, v.Interface()) - } - } - return ret -} - -func get(params ...any) (out any, err error) { - from := params[0] - i := params[1] - v := reflect.ValueOf(from) - - if from == nil { - return nil, nil - } - - if v.Kind() == reflect.Invalid { - panic(fmt.Sprintf("cannot fetch %v from %T", i, from)) - } - - // Methods can be defined on any type. - if v.NumMethod() > 0 { - if methodName, ok := i.(string); ok { - method := v.MethodByName(methodName) - if method.IsValid() { - return method.Interface(), nil - } - } - } - - switch v.Kind() { - case reflect.Array, reflect.Slice, reflect.String: - index := runtime.ToInt(i) - l := v.Len() - if index < 0 { - index = l + index - } - if 0 <= index && index < l { - value := v.Index(index) - if value.IsValid() { - return value.Interface(), nil - } - } - - case reflect.Map: - var value reflect.Value - if i == nil { - value = v.MapIndex(reflect.Zero(v.Type().Key())) - } else { - value = v.MapIndex(reflect.ValueOf(i)) - } - if value.IsValid() { - return value.Interface(), nil - } - - case reflect.Struct: - fieldName := i.(string) - value := v.FieldByNameFunc(func(name string) bool { - field, _ := v.Type().FieldByName(name) - switch field.Tag.Get("expr") { - case "-": - return false - case fieldName: - return true - default: - return name == fieldName - } - }) - if value.IsValid() { - return value.Interface(), nil - } - } - - // Main difference from runtime.Fetch - // is that we return `nil` instead of panic. - return nil, nil -} diff --git a/vendor/github.com/expr-lang/expr/builtin/utils.go b/vendor/github.com/expr-lang/expr/builtin/utils.go deleted file mode 100644 index 262bb37..0000000 --- a/vendor/github.com/expr-lang/expr/builtin/utils.go +++ /dev/null @@ -1,90 +0,0 @@ -package builtin - -import ( - "fmt" - "reflect" - "time" - - "github.com/expr-lang/expr/internal/deref" -) - -var ( - anyType = reflect.TypeOf(new(any)).Elem() - integerType = reflect.TypeOf(0) - floatType = reflect.TypeOf(float64(0)) - arrayType = reflect.TypeOf([]any{}) - mapType = reflect.TypeOf(map[any]any{}) - timeType = reflect.TypeOf(new(time.Time)).Elem() - locationType = reflect.TypeOf(new(time.Location)) -) - -func kind(t reflect.Type) reflect.Kind { - if t == nil { - return reflect.Invalid - } - t = deref.Type(t) - return t.Kind() -} - -func types(types ...any) []reflect.Type { - ts := make([]reflect.Type, len(types)) - for i, t := range types { - t := reflect.TypeOf(t) - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - if t.Kind() != reflect.Func { - panic("not a function") - } - ts[i] = t - } - return ts -} - -func toInt(val any) (int, error) { - switch v := val.(type) { - case int: - return v, nil - case int8: - return int(v), nil - case int16: - return int(v), nil - case int32: - return int(v), nil - case int64: - return int(v), nil - case uint: - return int(v), nil - case uint8: - return int(v), nil - case uint16: - return int(v), nil - case uint32: - return int(v), nil - case uint64: - return int(v), nil - default: - return 0, fmt.Errorf("cannot use %T as argument (type int)", val) - } -} - -func bitFunc(name string, fn func(x, y int) (any, error)) *Function { - return &Function{ - Name: name, - Func: func(args ...any) (any, error) { - if len(args) != 2 { - return nil, fmt.Errorf("invalid number of arguments for %s (expected 2, got %d)", name, len(args)) - } - x, err := toInt(args[0]) - if err != nil { - return nil, fmt.Errorf("%v to call %s", err, name) - } - y, err := toInt(args[1]) - if err != nil { - return nil, fmt.Errorf("%v to call %s", err, name) - } - return fn(x, y) - }, - Types: types(new(func(int, int) int)), - } -} diff --git a/vendor/github.com/expr-lang/expr/builtin/validation.go b/vendor/github.com/expr-lang/expr/builtin/validation.go deleted file mode 100644 index 057f247..0000000 --- a/vendor/github.com/expr-lang/expr/builtin/validation.go +++ /dev/null @@ -1,38 +0,0 @@ -package builtin - -import ( - "fmt" - "reflect" - - "github.com/expr-lang/expr/internal/deref" -) - -func validateAggregateFunc(name string, args []reflect.Type) (reflect.Type, error) { - switch len(args) { - case 0: - return anyType, fmt.Errorf("not enough arguments to call %s", name) - default: - for _, arg := range args { - switch kind(deref.Type(arg)) { - case reflect.Interface, reflect.Array, reflect.Slice: - return anyType, nil - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64: - default: - return anyType, fmt.Errorf("invalid argument for %s (type %s)", name, arg) - } - } - return args[0], nil - } -} - -func validateRoundFunc(name string, args []reflect.Type) (reflect.Type, error) { - if len(args) != 1 { - return anyType, fmt.Errorf("invalid number of arguments (expected 1, got %d)", len(args)) - } - switch kind(args[0]) { - case reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Interface: - return floatType, nil - default: - return anyType, fmt.Errorf("invalid argument for %s (type %s)", name, args[0]) - } -} diff --git a/vendor/github.com/expr-lang/expr/checker/checker.go b/vendor/github.com/expr-lang/expr/checker/checker.go deleted file mode 100644 index f492341..0000000 --- a/vendor/github.com/expr-lang/expr/checker/checker.go +++ /dev/null @@ -1,1285 +0,0 @@ -package checker - -import ( - "fmt" - "reflect" - "regexp" - - "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/builtin" - . "github.com/expr-lang/expr/checker/nature" - "github.com/expr-lang/expr/conf" - "github.com/expr-lang/expr/file" - "github.com/expr-lang/expr/parser" -) - -// Run visitors in a given config over the given tree -// runRepeatable controls whether to filter for only vistors that require multiple passes or not -func runVisitors(tree *parser.Tree, config *conf.Config, runRepeatable bool) { - for { - more := false - for _, v := range config.Visitors { - // We need to perform types check, because some visitors may rely on - // types information available in the tree. - _, _ = Check(tree, config) - - r, repeatable := v.(interface { - Reset() - ShouldRepeat() bool - }) - - if repeatable { - if runRepeatable { - r.Reset() - ast.Walk(&tree.Node, v) - more = more || r.ShouldRepeat() - } - } else { - if !runRepeatable { - ast.Walk(&tree.Node, v) - } - } - } - - if !more { - break - } - } -} - -// ParseCheck parses input expression and checks its types. Also, it applies -// all provided patchers. In case of error, it returns error with a tree. -func ParseCheck(input string, config *conf.Config) (*parser.Tree, error) { - tree, err := parser.ParseWithConfig(input, config) - if err != nil { - return tree, err - } - - if len(config.Visitors) > 0 { - // Run all patchers that dont support being run repeatedly first - runVisitors(tree, config, false) - - // Run patchers that require multiple passes next (currently only Operator patching) - runVisitors(tree, config, true) - } - _, err = Check(tree, config) - if err != nil { - return tree, err - } - - return tree, nil -} - -// Check checks types of the expression tree. It returns type of the expression -// and error if any. If config is nil, then default configuration will be used. -func Check(tree *parser.Tree, config *conf.Config) (reflect.Type, error) { - if config == nil { - config = conf.New(nil) - } - - v := &checker{config: config} - - nt := v.visit(tree.Node) - - // To keep compatibility with previous versions, we should return any, if nature is unknown. - t := nt.Type - if t == nil { - t = anyType - } - - if v.err != nil { - return t, v.err.Bind(tree.Source) - } - - if v.config.Expect != reflect.Invalid { - if v.config.ExpectAny { - if isUnknown(nt) { - return t, nil - } - } - - switch v.config.Expect { - case reflect.Int, reflect.Int64, reflect.Float64: - if !isNumber(nt) { - return nil, fmt.Errorf("expected %v, but got %v", v.config.Expect, nt) - } - default: - if nt.Kind() != v.config.Expect { - return nil, fmt.Errorf("expected %v, but got %s", v.config.Expect, nt) - } - } - } - - return t, nil -} - -type checker struct { - config *conf.Config - predicateScopes []predicateScope - varScopes []varScope - err *file.Error -} - -type predicateScope struct { - collection Nature - vars map[string]Nature -} - -type varScope struct { - name string - nature Nature -} - -type info struct { - method bool - fn *builtin.Function - - // elem is element type of array or map. - // Arrays created with type []any, but - // we would like to detect expressions - // like `42 in ["a"]` as invalid. - elem reflect.Type -} - -func (v *checker) visit(node ast.Node) Nature { - var nt Nature - switch n := node.(type) { - case *ast.NilNode: - nt = v.NilNode(n) - case *ast.IdentifierNode: - nt = v.IdentifierNode(n) - case *ast.IntegerNode: - nt = v.IntegerNode(n) - case *ast.FloatNode: - nt = v.FloatNode(n) - case *ast.BoolNode: - nt = v.BoolNode(n) - case *ast.StringNode: - nt = v.StringNode(n) - case *ast.ConstantNode: - nt = v.ConstantNode(n) - case *ast.UnaryNode: - nt = v.UnaryNode(n) - case *ast.BinaryNode: - nt = v.BinaryNode(n) - case *ast.ChainNode: - nt = v.ChainNode(n) - case *ast.MemberNode: - nt = v.MemberNode(n) - case *ast.SliceNode: - nt = v.SliceNode(n) - case *ast.CallNode: - nt = v.CallNode(n) - case *ast.BuiltinNode: - nt = v.BuiltinNode(n) - case *ast.PredicateNode: - nt = v.PredicateNode(n) - case *ast.PointerNode: - nt = v.PointerNode(n) - case *ast.VariableDeclaratorNode: - nt = v.VariableDeclaratorNode(n) - case *ast.SequenceNode: - nt = v.SequenceNode(n) - case *ast.ConditionalNode: - nt = v.ConditionalNode(n) - case *ast.ArrayNode: - nt = v.ArrayNode(n) - case *ast.MapNode: - nt = v.MapNode(n) - case *ast.PairNode: - nt = v.PairNode(n) - default: - panic(fmt.Sprintf("undefined node type (%T)", node)) - } - node.SetNature(nt) - return nt -} - -func (v *checker) error(node ast.Node, format string, args ...any) Nature { - if v.err == nil { // show first error - v.err = &file.Error{ - Location: node.Location(), - Message: fmt.Sprintf(format, args...), - } - } - return unknown -} - -func (v *checker) NilNode(*ast.NilNode) Nature { - return nilNature -} - -func (v *checker) IdentifierNode(node *ast.IdentifierNode) Nature { - if variable, ok := v.lookupVariable(node.Value); ok { - return variable.nature - } - if node.Value == "$env" { - return unknown - } - - return v.ident(node, node.Value, v.config.Strict, true) -} - -// ident method returns type of environment variable, builtin or function. -func (v *checker) ident(node ast.Node, name string, strict, builtins bool) Nature { - if nt, ok := v.config.Env.Get(name); ok { - return nt - } - if builtins { - if fn, ok := v.config.Functions[name]; ok { - return Nature{Type: fn.Type(), Func: fn} - } - if fn, ok := v.config.Builtins[name]; ok { - return Nature{Type: fn.Type(), Func: fn} - } - } - if v.config.Strict && strict { - return v.error(node, "unknown name %v", name) - } - return unknown -} - -func (v *checker) IntegerNode(*ast.IntegerNode) Nature { - return integerNature -} - -func (v *checker) FloatNode(*ast.FloatNode) Nature { - return floatNature -} - -func (v *checker) BoolNode(*ast.BoolNode) Nature { - return boolNature -} - -func (v *checker) StringNode(*ast.StringNode) Nature { - return stringNature -} - -func (v *checker) ConstantNode(node *ast.ConstantNode) Nature { - return Nature{Type: reflect.TypeOf(node.Value)} -} - -func (v *checker) UnaryNode(node *ast.UnaryNode) Nature { - nt := v.visit(node.Node) - nt = nt.Deref() - - switch node.Operator { - - case "!", "not": - if isBool(nt) { - return boolNature - } - if isUnknown(nt) { - return boolNature - } - - case "+", "-": - if isNumber(nt) { - return nt - } - if isUnknown(nt) { - return unknown - } - - default: - return v.error(node, "unknown operator (%v)", node.Operator) - } - - return v.error(node, `invalid operation: %v (mismatched type %s)`, node.Operator, nt) -} - -func (v *checker) BinaryNode(node *ast.BinaryNode) Nature { - l := v.visit(node.Left) - r := v.visit(node.Right) - - l = l.Deref() - r = r.Deref() - - switch node.Operator { - case "==", "!=": - if isComparable(l, r) { - return boolNature - } - - case "or", "||", "and", "&&": - if isBool(l) && isBool(r) { - return boolNature - } - if or(l, r, isBool) { - return boolNature - } - - case "<", ">", ">=", "<=": - if isNumber(l) && isNumber(r) { - return boolNature - } - if isString(l) && isString(r) { - return boolNature - } - if isTime(l) && isTime(r) { - return boolNature - } - if isDuration(l) && isDuration(r) { - return boolNature - } - if or(l, r, isNumber, isString, isTime, isDuration) { - return boolNature - } - - case "-": - if isNumber(l) && isNumber(r) { - return combined(l, r) - } - if isTime(l) && isTime(r) { - return durationNature - } - if isTime(l) && isDuration(r) { - return timeNature - } - if isDuration(l) && isDuration(r) { - return durationNature - } - if or(l, r, isNumber, isTime, isDuration) { - return unknown - } - - case "*": - if isNumber(l) && isNumber(r) { - return combined(l, r) - } - if isNumber(l) && isDuration(r) { - return durationNature - } - if isDuration(l) && isNumber(r) { - return durationNature - } - if isDuration(l) && isDuration(r) { - return durationNature - } - if or(l, r, isNumber, isDuration) { - return unknown - } - - case "/": - if isNumber(l) && isNumber(r) { - return floatNature - } - if or(l, r, isNumber) { - return floatNature - } - - case "**", "^": - if isNumber(l) && isNumber(r) { - return floatNature - } - if or(l, r, isNumber) { - return floatNature - } - - case "%": - if isInteger(l) && isInteger(r) { - return integerNature - } - if or(l, r, isInteger) { - return integerNature - } - - case "+": - if isNumber(l) && isNumber(r) { - return combined(l, r) - } - if isString(l) && isString(r) { - return stringNature - } - if isTime(l) && isDuration(r) { - return timeNature - } - if isDuration(l) && isTime(r) { - return timeNature - } - if isDuration(l) && isDuration(r) { - return durationNature - } - if or(l, r, isNumber, isString, isTime, isDuration) { - return unknown - } - - case "in": - if (isString(l) || isUnknown(l)) && isStruct(r) { - return boolNature - } - if isMap(r) { - if !isUnknown(l) && !l.AssignableTo(r.Key()) { - return v.error(node, "cannot use %v as type %v in map key", l, r.Key()) - } - return boolNature - } - if isArray(r) { - if !isComparable(l, r.Elem()) { - return v.error(node, "cannot use %v as type %v in array", l, r.Elem()) - } - return boolNature - } - if isUnknown(l) && anyOf(r, isString, isArray, isMap) { - return boolNature - } - if isUnknown(r) { - return boolNature - } - - case "matches": - if s, ok := node.Right.(*ast.StringNode); ok { - _, err := regexp.Compile(s.Value) - if err != nil { - return v.error(node, err.Error()) - } - } - if isString(l) && isString(r) { - return boolNature - } - if or(l, r, isString) { - return boolNature - } - - case "contains", "startsWith", "endsWith": - if isString(l) && isString(r) { - return boolNature - } - if or(l, r, isString) { - return boolNature - } - - case "..": - if isInteger(l) && isInteger(r) { - return arrayOf(integerNature) - } - if or(l, r, isInteger) { - return arrayOf(integerNature) - } - - case "??": - if isNil(l) && !isNil(r) { - return r - } - if !isNil(l) && isNil(r) { - return l - } - if isNil(l) && isNil(r) { - return nilNature - } - if r.AssignableTo(l) { - return l - } - return unknown - - default: - return v.error(node, "unknown operator (%v)", node.Operator) - - } - - return v.error(node, `invalid operation: %v (mismatched types %v and %v)`, node.Operator, l, r) -} - -func (v *checker) ChainNode(node *ast.ChainNode) Nature { - return v.visit(node.Node) -} - -func (v *checker) MemberNode(node *ast.MemberNode) Nature { - // $env variable - if an, ok := node.Node.(*ast.IdentifierNode); ok && an.Value == "$env" { - if name, ok := node.Property.(*ast.StringNode); ok { - strict := v.config.Strict - if node.Optional { - // If user explicitly set optional flag, then we should not - // throw error if field is not found (as user trying to handle - // this case). But if user did not set optional flag, then we - // should throw error if field is not found & v.config.Strict. - strict = false - } - return v.ident(node, name.Value, strict, false /* no builtins and no functions */) - } - return unknown - } - - base := v.visit(node.Node) - prop := v.visit(node.Property) - - if isUnknown(base) { - return unknown - } - - if name, ok := node.Property.(*ast.StringNode); ok { - if isNil(base) { - return v.error(node, "type nil has no field %v", name.Value) - } - - // First, check methods defined on base type itself, - // independent of which type it is. Without dereferencing. - if m, ok := base.MethodByName(name.Value); ok { - return m - } - } - - base = base.Deref() - - switch base.Kind() { - case reflect.Map: - if !prop.AssignableTo(base.Key()) && !isUnknown(prop) { - return v.error(node.Property, "cannot use %v to get an element from %v", prop, base) - } - if prop, ok := node.Property.(*ast.StringNode); ok { - if field, ok := base.Fields[prop.Value]; ok { - return field - } else if base.Strict { - return v.error(node.Property, "unknown field %v", prop.Value) - } - } - return base.Elem() - - case reflect.Array, reflect.Slice: - if !isInteger(prop) && !isUnknown(prop) { - return v.error(node.Property, "array elements can only be selected using an integer (got %v)", prop) - } - return base.Elem() - - case reflect.Struct: - if name, ok := node.Property.(*ast.StringNode); ok { - propertyName := name.Value - if field, ok := base.FieldByName(propertyName); ok { - return Nature{Type: field.Type} - } - if node.Method { - return v.error(node, "type %v has no method %v", base, propertyName) - } - return v.error(node, "type %v has no field %v", base, propertyName) - } - } - - // Not found. - - if name, ok := node.Property.(*ast.StringNode); ok { - if node.Method { - return v.error(node, "type %v has no method %v", base, name.Value) - } - return v.error(node, "type %v has no field %v", base, name.Value) - } - return v.error(node, "type %v[%v] is undefined", base, prop) -} - -func (v *checker) SliceNode(node *ast.SliceNode) Nature { - nt := v.visit(node.Node) - - if isUnknown(nt) { - return unknown - } - - switch nt.Kind() { - case reflect.String, reflect.Array, reflect.Slice: - // ok - default: - return v.error(node, "cannot slice %s", nt) - } - - if node.From != nil { - from := v.visit(node.From) - if !isInteger(from) && !isUnknown(from) { - return v.error(node.From, "non-integer slice index %v", from) - } - } - - if node.To != nil { - to := v.visit(node.To) - if !isInteger(to) && !isUnknown(to) { - return v.error(node.To, "non-integer slice index %v", to) - } - } - - return nt -} - -func (v *checker) CallNode(node *ast.CallNode) Nature { - nt := v.functionReturnType(node) - - // Check if type was set on node (for example, by patcher) - // and use node type instead of function return type. - // - // If node type is anyType, then we should use function - // return type. For example, on error we return anyType - // for a call `errCall().Method()` and method will be - // evaluated on `anyType.Method()`, so return type will - // be anyType `anyType.Method(): anyType`. Patcher can - // fix `errCall()` to return proper type, so on second - // checker pass we should replace anyType on method node - // with new correct function return type. - if node.Type() != nil && node.Type() != anyType { - return node.Nature() - } - - return nt -} - -func (v *checker) functionReturnType(node *ast.CallNode) Nature { - nt := v.visit(node.Callee) - - if nt.Func != nil { - return v.checkFunction(nt.Func, node, node.Arguments) - } - - fnName := "function" - if identifier, ok := node.Callee.(*ast.IdentifierNode); ok { - fnName = identifier.Value - } - if member, ok := node.Callee.(*ast.MemberNode); ok { - if name, ok := member.Property.(*ast.StringNode); ok { - fnName = name.Value - } - } - - if isUnknown(nt) { - return unknown - } - - if isNil(nt) { - return v.error(node, "%v is nil; cannot call nil as function", fnName) - } - - switch nt.Kind() { - case reflect.Func: - outType, err := v.checkArguments(fnName, nt, node.Arguments, node) - if err != nil { - if v.err == nil { - v.err = err - } - return unknown - } - return outType - } - return v.error(node, "%s is not callable", nt) -} - -func (v *checker) BuiltinNode(node *ast.BuiltinNode) Nature { - switch node.Name { - case "all", "none", "any", "one": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - v.begin(collection) - predicate := v.visit(node.Arguments[1]) - v.end() - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - - if !isBool(predicate.Out(0)) && !isUnknown(predicate.Out(0)) { - return v.error(node.Arguments[1], "predicate should return boolean (got %v)", predicate.Out(0).String()) - } - return boolNature - } - return v.error(node.Arguments[1], "predicate should has one input and one output param") - - case "filter": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - v.begin(collection) - predicate := v.visit(node.Arguments[1]) - v.end() - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - - if !isBool(predicate.Out(0)) && !isUnknown(predicate.Out(0)) { - return v.error(node.Arguments[1], "predicate should return boolean (got %v)", predicate.Out(0).String()) - } - if isUnknown(collection) { - return arrayNature - } - return arrayOf(collection.Elem()) - } - return v.error(node.Arguments[1], "predicate should has one input and one output param") - - case "map": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - v.begin(collection, scopeVar{"index", integerNature}) - predicate := v.visit(node.Arguments[1]) - v.end() - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - - return arrayOf(*predicate.PredicateOut) - } - return v.error(node.Arguments[1], "predicate should has one input and one output param") - - case "count": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - if len(node.Arguments) == 1 { - return integerNature - } - - v.begin(collection) - predicate := v.visit(node.Arguments[1]) - v.end() - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - if !isBool(predicate.Out(0)) && !isUnknown(predicate.Out(0)) { - return v.error(node.Arguments[1], "predicate should return boolean (got %v)", predicate.Out(0).String()) - } - - return integerNature - } - return v.error(node.Arguments[1], "predicate should has one input and one output param") - - case "sum": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - if len(node.Arguments) == 2 { - v.begin(collection) - predicate := v.visit(node.Arguments[1]) - v.end() - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - return predicate.Out(0) - } - } else { - if isUnknown(collection) { - return unknown - } - return collection.Elem() - } - - case "find", "findLast": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - v.begin(collection) - predicate := v.visit(node.Arguments[1]) - v.end() - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - - if !isBool(predicate.Out(0)) && !isUnknown(predicate.Out(0)) { - return v.error(node.Arguments[1], "predicate should return boolean (got %v)", predicate.Out(0).String()) - } - if isUnknown(collection) { - return unknown - } - return collection.Elem() - } - return v.error(node.Arguments[1], "predicate should has one input and one output param") - - case "findIndex", "findLastIndex": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - v.begin(collection) - predicate := v.visit(node.Arguments[1]) - v.end() - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - - if !isBool(predicate.Out(0)) && !isUnknown(predicate.Out(0)) { - return v.error(node.Arguments[1], "predicate should return boolean (got %v)", predicate.Out(0).String()) - } - return integerNature - } - return v.error(node.Arguments[1], "predicate should has one input and one output param") - - case "groupBy": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - v.begin(collection) - predicate := v.visit(node.Arguments[1]) - v.end() - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - - groups := arrayOf(collection.Elem()) - return Nature{Type: reflect.TypeOf(map[any][]any{}), ArrayOf: &groups} - } - return v.error(node.Arguments[1], "predicate should has one input and one output param") - - case "sortBy": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - v.begin(collection) - predicate := v.visit(node.Arguments[1]) - v.end() - - if len(node.Arguments) == 3 { - _ = v.visit(node.Arguments[2]) - } - - if isFunc(predicate) && - predicate.NumOut() == 1 && - predicate.NumIn() == 1 && isUnknown(predicate.In(0)) { - - return collection - } - return v.error(node.Arguments[1], "predicate should has one input and one output param") - - case "reduce": - collection := v.visit(node.Arguments[0]).Deref() - if !isArray(collection) && !isUnknown(collection) { - return v.error(node.Arguments[0], "builtin %v takes only array (got %v)", node.Name, collection) - } - - v.begin(collection, scopeVar{"index", integerNature}, scopeVar{"acc", unknown}) - predicate := v.visit(node.Arguments[1]) - v.end() - - if len(node.Arguments) == 3 { - _ = v.visit(node.Arguments[2]) - } - - if isFunc(predicate) && predicate.NumOut() == 1 { - return *predicate.PredicateOut - } - return v.error(node.Arguments[1], "predicate should has two input and one output param") - - } - - if id, ok := builtin.Index[node.Name]; ok { - switch node.Name { - case "get": - return v.checkBuiltinGet(node) - } - return v.checkFunction(builtin.Builtins[id], node, node.Arguments) - } - - return v.error(node, "unknown builtin %v", node.Name) -} - -type scopeVar struct { - varName string - varNature Nature -} - -func (v *checker) begin(collectionNature Nature, vars ...scopeVar) { - scope := predicateScope{collection: collectionNature, vars: make(map[string]Nature)} - for _, v := range vars { - scope.vars[v.varName] = v.varNature - } - v.predicateScopes = append(v.predicateScopes, scope) -} - -func (v *checker) end() { - v.predicateScopes = v.predicateScopes[:len(v.predicateScopes)-1] -} - -func (v *checker) checkBuiltinGet(node *ast.BuiltinNode) Nature { - if len(node.Arguments) != 2 { - return v.error(node, "invalid number of arguments (expected 2, got %d)", len(node.Arguments)) - } - - base := v.visit(node.Arguments[0]) - prop := v.visit(node.Arguments[1]) - - if id, ok := node.Arguments[0].(*ast.IdentifierNode); ok && id.Value == "$env" { - if s, ok := node.Arguments[1].(*ast.StringNode); ok { - if nt, ok := v.config.Env.Get(s.Value); ok { - return nt - } - } - return unknown - } - - if isUnknown(base) { - return unknown - } - - switch base.Kind() { - case reflect.Slice, reflect.Array: - if !isInteger(prop) && !isUnknown(prop) { - return v.error(node.Arguments[1], "non-integer slice index %s", prop) - } - return base.Elem() - case reflect.Map: - if !prop.AssignableTo(base.Key()) && !isUnknown(prop) { - return v.error(node.Arguments[1], "cannot use %s to get an element from %s", prop, base) - } - return base.Elem() - } - return v.error(node.Arguments[0], "type %v does not support indexing", base) -} - -func (v *checker) checkFunction(f *builtin.Function, node ast.Node, arguments []ast.Node) Nature { - if f.Validate != nil { - args := make([]reflect.Type, len(arguments)) - for i, arg := range arguments { - argNature := v.visit(arg) - if isUnknown(argNature) { - args[i] = anyType - } else { - args[i] = argNature.Type - } - } - t, err := f.Validate(args) - if err != nil { - return v.error(node, "%v", err) - } - return Nature{Type: t} - } else if len(f.Types) == 0 { - nt, err := v.checkArguments(f.Name, Nature{Type: f.Type()}, arguments, node) - if err != nil { - if v.err == nil { - v.err = err - } - return unknown - } - // No type was specified, so we assume the function returns any. - return nt - } - var lastErr *file.Error - for _, t := range f.Types { - outNature, err := v.checkArguments(f.Name, Nature{Type: t}, arguments, node) - if err != nil { - lastErr = err - continue - } - - // As we found the correct function overload, we can stop the loop. - // Also, we need to set the correct nature of the callee so compiler, - // can correctly handle OpDeref opcode. - if callNode, ok := node.(*ast.CallNode); ok { - callNode.Callee.SetType(t) - } - - return outNature - } - if lastErr != nil { - if v.err == nil { - v.err = lastErr - } - return unknown - } - - return v.error(node, "no matching overload for %v", f.Name) -} - -func (v *checker) checkArguments( - name string, - fn Nature, - arguments []ast.Node, - node ast.Node, -) (Nature, *file.Error) { - if isUnknown(fn) { - return unknown, nil - } - - if fn.NumOut() == 0 { - return unknown, &file.Error{ - Location: node.Location(), - Message: fmt.Sprintf("func %v doesn't return value", name), - } - } - if numOut := fn.NumOut(); numOut > 2 { - return unknown, &file.Error{ - Location: node.Location(), - Message: fmt.Sprintf("func %v returns more then two values", name), - } - } - - // If func is method on an env, first argument should be a receiver, - // and actual arguments less than fnNumIn by one. - fnNumIn := fn.NumIn() - if fn.Method { // TODO: Move subtraction to the Nature.NumIn() and Nature.In() methods. - fnNumIn-- - } - // Skip first argument in case of the receiver. - fnInOffset := 0 - if fn.Method { - fnInOffset = 1 - } - - var err *file.Error - if fn.IsVariadic() { - if len(arguments) < fnNumIn-1 { - err = &file.Error{ - Location: node.Location(), - Message: fmt.Sprintf("not enough arguments to call %v", name), - } - } - } else { - if len(arguments) > fnNumIn { - err = &file.Error{ - Location: node.Location(), - Message: fmt.Sprintf("too many arguments to call %v", name), - } - } - if len(arguments) < fnNumIn { - err = &file.Error{ - Location: node.Location(), - Message: fmt.Sprintf("not enough arguments to call %v", name), - } - } - } - - if err != nil { - // If we have an error, we should still visit all arguments to - // type check them, as a patch can fix the error later. - for _, arg := range arguments { - _ = v.visit(arg) - } - return fn.Out(0), err - } - - for i, arg := range arguments { - argNature := v.visit(arg) - - var in Nature - if fn.IsVariadic() && i >= fnNumIn-1 { - // For variadic arguments fn(xs ...int), go replaces type of xs (int) with ([]int). - // As we compare arguments one by one, we need underling type. - in = fn.In(fn.NumIn() - 1).Elem() - } else { - in = fn.In(i + fnInOffset) - } - - if isFloat(in) && isInteger(argNature) { - traverseAndReplaceIntegerNodesWithFloatNodes(&arguments[i], in) - continue - } - - if isInteger(in) && isInteger(argNature) && argNature.Kind() != in.Kind() { - traverseAndReplaceIntegerNodesWithIntegerNodes(&arguments[i], in) - continue - } - - if isNil(argNature) { - if in.Kind() == reflect.Ptr || in.Kind() == reflect.Interface { - continue - } - return unknown, &file.Error{ - Location: arg.Location(), - Message: fmt.Sprintf("cannot use nil as argument (type %s) to call %v", in, name), - } - } - - // Check if argument is assignable to the function input type. - // We check original type (like *time.Time), not dereferenced type, - // as function input type can be pointer to a struct. - assignable := argNature.AssignableTo(in) - - // We also need to check if dereference arg type is assignable to the function input type. - // For example, func(int) and argument *int. In this case we will add OpDeref to the argument, - // so we can call the function with *int argument. - assignable = assignable || argNature.Deref().AssignableTo(in) - - if !assignable && !isUnknown(argNature) { - return unknown, &file.Error{ - Location: arg.Location(), - Message: fmt.Sprintf("cannot use %s as argument (type %s) to call %v ", argNature, in, name), - } - } - } - - return fn.Out(0), nil -} - -func traverseAndReplaceIntegerNodesWithFloatNodes(node *ast.Node, newNature Nature) { - switch (*node).(type) { - case *ast.IntegerNode: - *node = &ast.FloatNode{Value: float64((*node).(*ast.IntegerNode).Value)} - (*node).SetType(newNature.Type) - case *ast.UnaryNode: - unaryNode := (*node).(*ast.UnaryNode) - traverseAndReplaceIntegerNodesWithFloatNodes(&unaryNode.Node, newNature) - case *ast.BinaryNode: - binaryNode := (*node).(*ast.BinaryNode) - switch binaryNode.Operator { - case "+", "-", "*": - traverseAndReplaceIntegerNodesWithFloatNodes(&binaryNode.Left, newNature) - traverseAndReplaceIntegerNodesWithFloatNodes(&binaryNode.Right, newNature) - } - } -} - -func traverseAndReplaceIntegerNodesWithIntegerNodes(node *ast.Node, newNature Nature) { - switch (*node).(type) { - case *ast.IntegerNode: - (*node).SetType(newNature.Type) - case *ast.UnaryNode: - (*node).SetType(newNature.Type) - unaryNode := (*node).(*ast.UnaryNode) - traverseAndReplaceIntegerNodesWithIntegerNodes(&unaryNode.Node, newNature) - case *ast.BinaryNode: - // TODO: Binary node return type is dependent on the type of the operands. We can't just change the type of the node. - binaryNode := (*node).(*ast.BinaryNode) - switch binaryNode.Operator { - case "+", "-", "*": - traverseAndReplaceIntegerNodesWithIntegerNodes(&binaryNode.Left, newNature) - traverseAndReplaceIntegerNodesWithIntegerNodes(&binaryNode.Right, newNature) - } - } -} - -func (v *checker) PredicateNode(node *ast.PredicateNode) Nature { - nt := v.visit(node.Node) - var out []reflect.Type - if isUnknown(nt) { - out = append(out, anyType) - } else if !isNil(nt) { - out = append(out, nt.Type) - } - return Nature{ - Type: reflect.FuncOf([]reflect.Type{anyType}, out, false), - PredicateOut: &nt, - } -} - -func (v *checker) PointerNode(node *ast.PointerNode) Nature { - if len(v.predicateScopes) == 0 { - return v.error(node, "cannot use pointer accessor outside predicate") - } - scope := v.predicateScopes[len(v.predicateScopes)-1] - if node.Name == "" { - if isUnknown(scope.collection) { - return unknown - } - switch scope.collection.Kind() { - case reflect.Array, reflect.Slice: - return scope.collection.Elem() - } - return v.error(node, "cannot use %v as array", scope) - } - if scope.vars != nil { - if t, ok := scope.vars[node.Name]; ok { - return t - } - } - return v.error(node, "unknown pointer #%v", node.Name) -} - -func (v *checker) VariableDeclaratorNode(node *ast.VariableDeclaratorNode) Nature { - if _, ok := v.config.Env.Get(node.Name); ok { - return v.error(node, "cannot redeclare %v", node.Name) - } - if _, ok := v.config.Functions[node.Name]; ok { - return v.error(node, "cannot redeclare function %v", node.Name) - } - if _, ok := v.config.Builtins[node.Name]; ok { - return v.error(node, "cannot redeclare builtin %v", node.Name) - } - if _, ok := v.lookupVariable(node.Name); ok { - return v.error(node, "cannot redeclare variable %v", node.Name) - } - varNature := v.visit(node.Value) - v.varScopes = append(v.varScopes, varScope{node.Name, varNature}) - exprNature := v.visit(node.Expr) - v.varScopes = v.varScopes[:len(v.varScopes)-1] - return exprNature -} - -func (v *checker) SequenceNode(node *ast.SequenceNode) Nature { - if len(node.Nodes) == 0 { - return v.error(node, "empty sequence expression") - } - var last Nature - for _, node := range node.Nodes { - last = v.visit(node) - } - return last -} - -func (v *checker) lookupVariable(name string) (varScope, bool) { - for i := len(v.varScopes) - 1; i >= 0; i-- { - if v.varScopes[i].name == name { - return v.varScopes[i], true - } - } - return varScope{}, false -} - -func (v *checker) ConditionalNode(node *ast.ConditionalNode) Nature { - c := v.visit(node.Cond) - if !isBool(c) && !isUnknown(c) { - return v.error(node.Cond, "non-bool expression (type %v) used as condition", c) - } - - t1 := v.visit(node.Exp1) - t2 := v.visit(node.Exp2) - - if isNil(t1) && !isNil(t2) { - return t2 - } - if !isNil(t1) && isNil(t2) { - return t1 - } - if isNil(t1) && isNil(t2) { - return nilNature - } - if t1.AssignableTo(t2) { - return t1 - } - return unknown -} - -func (v *checker) ArrayNode(node *ast.ArrayNode) Nature { - var prev Nature - allElementsAreSameType := true - for i, node := range node.Nodes { - curr := v.visit(node) - if i > 0 { - if curr.Kind() != prev.Kind() { - allElementsAreSameType = false - } - } - prev = curr - } - if allElementsAreSameType { - return arrayOf(prev) - } - return arrayNature -} - -func (v *checker) MapNode(node *ast.MapNode) Nature { - for _, pair := range node.Pairs { - v.visit(pair) - } - return mapNature -} - -func (v *checker) PairNode(node *ast.PairNode) Nature { - v.visit(node.Key) - v.visit(node.Value) - return nilNature -} diff --git a/vendor/github.com/expr-lang/expr/checker/info.go b/vendor/github.com/expr-lang/expr/checker/info.go deleted file mode 100644 index f1cc92e..0000000 --- a/vendor/github.com/expr-lang/expr/checker/info.go +++ /dev/null @@ -1,129 +0,0 @@ -package checker - -import ( - "reflect" - - "github.com/expr-lang/expr/ast" - . "github.com/expr-lang/expr/checker/nature" - "github.com/expr-lang/expr/vm" -) - -func FieldIndex(env Nature, node ast.Node) (bool, []int, string) { - switch n := node.(type) { - case *ast.IdentifierNode: - if env.Kind() == reflect.Struct { - if field, ok := env.Get(n.Value); ok && len(field.FieldIndex) > 0 { - return true, field.FieldIndex, n.Value - } - } - case *ast.MemberNode: - base := n.Node.Nature() - base = base.Deref() - if base.Kind() == reflect.Struct { - if prop, ok := n.Property.(*ast.StringNode); ok { - name := prop.Value - if field, ok := base.FieldByName(name); ok { - return true, field.FieldIndex, name - } - } - } - } - return false, nil, "" -} - -func MethodIndex(env Nature, node ast.Node) (bool, int, string) { - switch n := node.(type) { - case *ast.IdentifierNode: - if env.Kind() == reflect.Struct { - if m, ok := env.Get(n.Value); ok { - return m.Method, m.MethodIndex, n.Value - } - } - case *ast.MemberNode: - if name, ok := n.Property.(*ast.StringNode); ok { - base := n.Node.Type() - if base != nil && base.Kind() != reflect.Interface { - if m, ok := base.MethodByName(name.Value); ok { - return true, m.Index, name.Value - } - } - } - } - return false, 0, "" -} - -func TypedFuncIndex(fn reflect.Type, method bool) (int, bool) { - if fn == nil { - return 0, false - } - if fn.Kind() != reflect.Func { - return 0, false - } - // OnCallTyped doesn't work for functions with variadic arguments. - if fn.IsVariadic() { - return 0, false - } - // OnCallTyped doesn't work named function, like `type MyFunc func() int`. - if fn.PkgPath() != "" { // If PkgPath() is not empty, it means that function is named. - return 0, false - } - - fnNumIn := fn.NumIn() - fnInOffset := 0 - if method { - fnNumIn-- - fnInOffset = 1 - } - -funcTypes: - for i := range vm.FuncTypes { - if i == 0 { - continue - } - typed := reflect.ValueOf(vm.FuncTypes[i]).Elem().Type() - if typed.Kind() != reflect.Func { - continue - } - if typed.NumOut() != fn.NumOut() { - continue - } - for j := 0; j < typed.NumOut(); j++ { - if typed.Out(j) != fn.Out(j) { - continue funcTypes - } - } - if typed.NumIn() != fnNumIn { - continue - } - for j := 0; j < typed.NumIn(); j++ { - if typed.In(j) != fn.In(j+fnInOffset) { - continue funcTypes - } - } - return i, true - } - return 0, false -} - -func IsFastFunc(fn reflect.Type, method bool) bool { - if fn == nil { - return false - } - if fn.Kind() != reflect.Func { - return false - } - numIn := 1 - if method { - numIn = 2 - } - if fn.IsVariadic() && - fn.NumIn() == numIn && - fn.NumOut() == 1 && - fn.Out(0).Kind() == reflect.Interface { - rest := fn.In(fn.NumIn() - 1) // function has only one param for functions and two for methods - if kind(rest) == reflect.Slice && rest.Elem().Kind() == reflect.Interface { - return true - } - } - return false -} diff --git a/vendor/github.com/expr-lang/expr/checker/nature/nature.go b/vendor/github.com/expr-lang/expr/checker/nature/nature.go deleted file mode 100644 index 993c9fc..0000000 --- a/vendor/github.com/expr-lang/expr/checker/nature/nature.go +++ /dev/null @@ -1,261 +0,0 @@ -package nature - -import ( - "reflect" - - "github.com/expr-lang/expr/builtin" - "github.com/expr-lang/expr/internal/deref" -) - -var ( - unknown = Nature{} -) - -type Nature struct { - Type reflect.Type // Type of the value. If nil, then value is unknown. - Func *builtin.Function // Used to pass function type from callee to CallNode. - ArrayOf *Nature // Elem nature of array type (usually Type is []any, but ArrayOf can be any nature). - PredicateOut *Nature // Out nature of predicate. - Fields map[string]Nature // Fields of map type. - DefaultMapValue *Nature // Default value of map type. - Strict bool // If map is types.StrictMap. - Nil bool // If value is nil. - Method bool // If value retrieved from method. Usually used to determine amount of in arguments. - MethodIndex int // Index of method in type. - FieldIndex []int // Index of field in type. -} - -func (n Nature) IsAny() bool { - return n.Kind() == reflect.Interface && n.NumMethods() == 0 -} - -func (n Nature) IsUnknown() bool { - switch { - case n.Type == nil && !n.Nil: - return true - case n.IsAny(): - return true - } - return false -} - -func (n Nature) String() string { - if n.Type != nil { - return n.Type.String() - } - return "unknown" -} - -func (n Nature) Deref() Nature { - if n.Type != nil { - n.Type = deref.Type(n.Type) - } - return n -} - -func (n Nature) Kind() reflect.Kind { - if n.Type != nil { - return n.Type.Kind() - } - return reflect.Invalid -} - -func (n Nature) Key() Nature { - if n.Kind() == reflect.Map { - return Nature{Type: n.Type.Key()} - } - return unknown -} - -func (n Nature) Elem() Nature { - switch n.Kind() { - case reflect.Ptr: - return Nature{Type: n.Type.Elem()} - case reflect.Map: - if n.DefaultMapValue != nil { - return *n.DefaultMapValue - } - return Nature{Type: n.Type.Elem()} - case reflect.Array, reflect.Slice: - if n.ArrayOf != nil { - return *n.ArrayOf - } - return Nature{Type: n.Type.Elem()} - } - return unknown -} - -func (n Nature) AssignableTo(nt Nature) bool { - if n.Nil { - // Untyped nil is assignable to any interface, but implements only the empty interface. - if nt.IsAny() { - return true - } - } - if n.Type == nil || nt.Type == nil { - return false - } - return n.Type.AssignableTo(nt.Type) -} - -func (n Nature) NumMethods() int { - if n.Type == nil { - return 0 - } - return n.Type.NumMethod() -} - -func (n Nature) MethodByName(name string) (Nature, bool) { - if n.Type == nil { - return unknown, false - } - method, ok := n.Type.MethodByName(name) - if !ok { - return unknown, false - } - - if n.Type.Kind() == reflect.Interface { - // In case of interface type method will not have a receiver, - // and to prevent checker decreasing numbers of in arguments - // return method type as not method (second argument is false). - - // Also, we can not use m.Index here, because it will be - // different indexes for different types which implement - // the same interface. - return Nature{Type: method.Type}, true - } else { - return Nature{ - Type: method.Type, - Method: true, - MethodIndex: method.Index, - }, true - } -} - -func (n Nature) NumIn() int { - if n.Type == nil { - return 0 - } - return n.Type.NumIn() -} - -func (n Nature) In(i int) Nature { - if n.Type == nil { - return unknown - } - return Nature{Type: n.Type.In(i)} -} - -func (n Nature) NumOut() int { - if n.Type == nil { - return 0 - } - return n.Type.NumOut() -} - -func (n Nature) Out(i int) Nature { - if n.Type == nil { - return unknown - } - return Nature{Type: n.Type.Out(i)} -} - -func (n Nature) IsVariadic() bool { - if n.Type == nil { - return false - } - return n.Type.IsVariadic() -} - -func (n Nature) FieldByName(name string) (Nature, bool) { - if n.Type == nil { - return unknown, false - } - field, ok := fetchField(n.Type, name) - return Nature{Type: field.Type, FieldIndex: field.Index}, ok -} - -func (n Nature) PkgPath() string { - if n.Type == nil { - return "" - } - return n.Type.PkgPath() -} - -func (n Nature) IsFastMap() bool { - if n.Type == nil { - return false - } - if n.Type.Kind() == reflect.Map && - n.Type.Key().Kind() == reflect.String && - n.Type.Elem().Kind() == reflect.Interface { - return true - } - return false -} - -func (n Nature) Get(name string) (Nature, bool) { - if n.Type == nil { - return unknown, false - } - - if m, ok := n.MethodByName(name); ok { - return m, true - } - - t := deref.Type(n.Type) - - switch t.Kind() { - case reflect.Struct: - if f, ok := fetchField(t, name); ok { - return Nature{ - Type: f.Type, - FieldIndex: f.Index, - }, true - } - case reflect.Map: - if f, ok := n.Fields[name]; ok { - return f, true - } - } - return unknown, false -} - -func (n Nature) All() map[string]Nature { - table := make(map[string]Nature) - - if n.Type == nil { - return table - } - - for i := 0; i < n.Type.NumMethod(); i++ { - method := n.Type.Method(i) - table[method.Name] = Nature{ - Type: method.Type, - Method: true, - MethodIndex: method.Index, - } - } - - t := deref.Type(n.Type) - - switch t.Kind() { - case reflect.Struct: - for name, nt := range StructFields(t) { - if _, ok := table[name]; ok { - continue - } - table[name] = nt - } - - case reflect.Map: - for key, nt := range n.Fields { - if _, ok := table[key]; ok { - continue - } - table[key] = nt - } - } - - return table -} diff --git a/vendor/github.com/expr-lang/expr/checker/nature/utils.go b/vendor/github.com/expr-lang/expr/checker/nature/utils.go deleted file mode 100644 index c155154..0000000 --- a/vendor/github.com/expr-lang/expr/checker/nature/utils.go +++ /dev/null @@ -1,89 +0,0 @@ -package nature - -import ( - "reflect" - - "github.com/expr-lang/expr/internal/deref" -) - -func fieldName(field reflect.StructField) (string, bool) { - switch taggedName := field.Tag.Get("expr"); taggedName { - case "-": - return "", false - case "": - return field.Name, true - default: - return taggedName, true - } -} - -func fetchField(t reflect.Type, name string) (reflect.StructField, bool) { - // If t is not a struct, early return. - if t.Kind() != reflect.Struct { - return reflect.StructField{}, false - } - - // First check all structs fields. - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - // Search all fields, even embedded structs. - if n, ok := fieldName(field); ok && n == name { - return field, true - } - } - - // Second check fields of embedded structs. - for i := 0; i < t.NumField(); i++ { - anon := t.Field(i) - if anon.Anonymous { - anonType := anon.Type - if anonType.Kind() == reflect.Pointer { - anonType = anonType.Elem() - } - if field, ok := fetchField(anonType, name); ok { - field.Index = append(anon.Index, field.Index...) - return field, true - } - } - } - - return reflect.StructField{}, false -} - -func StructFields(t reflect.Type) map[string]Nature { - table := make(map[string]Nature) - - t = deref.Type(t) - if t == nil { - return table - } - - switch t.Kind() { - case reflect.Struct: - for i := 0; i < t.NumField(); i++ { - f := t.Field(i) - - if f.Anonymous { - for name, typ := range StructFields(f.Type) { - if _, ok := table[name]; ok { - continue - } - typ.FieldIndex = append(f.Index, typ.FieldIndex...) - table[name] = typ - } - } - - name, ok := fieldName(f) - if !ok { - continue - } - table[name] = Nature{ - Type: f.Type, - FieldIndex: f.Index, - } - - } - } - - return table -} diff --git a/vendor/github.com/expr-lang/expr/checker/types.go b/vendor/github.com/expr-lang/expr/checker/types.go deleted file mode 100644 index 09896de..0000000 --- a/vendor/github.com/expr-lang/expr/checker/types.go +++ /dev/null @@ -1,190 +0,0 @@ -package checker - -import ( - "reflect" - "time" - - . "github.com/expr-lang/expr/checker/nature" -) - -var ( - unknown = Nature{} - nilNature = Nature{Nil: true} - boolNature = Nature{Type: reflect.TypeOf(true)} - integerNature = Nature{Type: reflect.TypeOf(0)} - floatNature = Nature{Type: reflect.TypeOf(float64(0))} - stringNature = Nature{Type: reflect.TypeOf("")} - arrayNature = Nature{Type: reflect.TypeOf([]any{})} - mapNature = Nature{Type: reflect.TypeOf(map[string]any{})} - timeNature = Nature{Type: reflect.TypeOf(time.Time{})} - durationNature = Nature{Type: reflect.TypeOf(time.Duration(0))} -) - -var ( - anyType = reflect.TypeOf(new(any)).Elem() - timeType = reflect.TypeOf(time.Time{}) - durationType = reflect.TypeOf(time.Duration(0)) - arrayType = reflect.TypeOf([]any{}) -) - -func arrayOf(nt Nature) Nature { - return Nature{ - Type: arrayType, - ArrayOf: &nt, - } -} - -func isNil(nt Nature) bool { - return nt.Nil -} - -func combined(l, r Nature) Nature { - if isUnknown(l) || isUnknown(r) { - return unknown - } - if isFloat(l) || isFloat(r) { - return floatNature - } - return integerNature -} - -func anyOf(nt Nature, fns ...func(Nature) bool) bool { - for _, fn := range fns { - if fn(nt) { - return true - } - } - return false -} - -func or(l, r Nature, fns ...func(Nature) bool) bool { - if isUnknown(l) && isUnknown(r) { - return true - } - if isUnknown(l) && anyOf(r, fns...) { - return true - } - if isUnknown(r) && anyOf(l, fns...) { - return true - } - return false -} - -func isUnknown(nt Nature) bool { - return nt.IsUnknown() -} - -func isInteger(nt Nature) bool { - switch nt.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - fallthrough - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return nt.PkgPath() == "" - } - return false -} - -func isFloat(nt Nature) bool { - switch nt.Kind() { - case reflect.Float32, reflect.Float64: - return nt.PkgPath() == "" - } - return false -} - -func isNumber(nt Nature) bool { - return isInteger(nt) || isFloat(nt) -} - -func isTime(nt Nature) bool { - switch nt.Type { - case timeType: - return true - } - return false -} - -func isDuration(nt Nature) bool { - switch nt.Type { - case durationType: - return true - } - return false -} - -func isBool(nt Nature) bool { - switch nt.Kind() { - case reflect.Bool: - return true - } - return false -} - -func isString(nt Nature) bool { - switch nt.Kind() { - case reflect.String: - return true - } - return false -} - -func isArray(nt Nature) bool { - switch nt.Kind() { - case reflect.Slice, reflect.Array: - return true - } - return false -} - -func isMap(nt Nature) bool { - switch nt.Kind() { - case reflect.Map: - return true - } - return false -} - -func isStruct(nt Nature) bool { - switch nt.Kind() { - case reflect.Struct: - return true - } - return false -} - -func isFunc(nt Nature) bool { - switch nt.Kind() { - case reflect.Func: - return true - } - return false -} - -func kind(t reflect.Type) reflect.Kind { - if t == nil { - return reflect.Invalid - } - return t.Kind() -} - -func isComparable(l, r Nature) bool { - if isUnknown(l) || isUnknown(r) { - return true - } - if isNil(l) || isNil(r) { - return true - } - if isNumber(l) && isNumber(r) { - return true - } - if isDuration(l) && isDuration(r) { - return true - } - if isTime(l) && isTime(r) { - return true - } - if isArray(l) && isArray(r) { - return true - } - return l.AssignableTo(r) -} diff --git a/vendor/github.com/expr-lang/expr/compiler/compiler.go b/vendor/github.com/expr-lang/expr/compiler/compiler.go deleted file mode 100644 index 595355d..0000000 --- a/vendor/github.com/expr-lang/expr/compiler/compiler.go +++ /dev/null @@ -1,1280 +0,0 @@ -package compiler - -import ( - "fmt" - "math" - "reflect" - "regexp" - - "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/builtin" - "github.com/expr-lang/expr/checker" - . "github.com/expr-lang/expr/checker/nature" - "github.com/expr-lang/expr/conf" - "github.com/expr-lang/expr/file" - "github.com/expr-lang/expr/parser" - . "github.com/expr-lang/expr/vm" - "github.com/expr-lang/expr/vm/runtime" -) - -const ( - placeholder = 12345 -) - -func Compile(tree *parser.Tree, config *conf.Config) (program *Program, err error) { - defer func() { - if r := recover(); r != nil { - err = fmt.Errorf("%v", r) - } - }() - - c := &compiler{ - config: config, - locations: make([]file.Location, 0), - constantsIndex: make(map[any]int), - functionsIndex: make(map[string]int), - debugInfo: make(map[string]string), - } - - c.compile(tree.Node) - - if c.config != nil { - switch c.config.Expect { - case reflect.Int: - c.emit(OpCast, 0) - case reflect.Int64: - c.emit(OpCast, 1) - case reflect.Float64: - c.emit(OpCast, 2) - } - if c.config.Optimize { - c.optimize() - } - } - - var span *Span - if len(c.spans) > 0 { - span = c.spans[0] - } - - program = NewProgram( - tree.Source, - tree.Node, - c.locations, - c.variables, - c.constants, - c.bytecode, - c.arguments, - c.functions, - c.debugInfo, - span, - ) - return -} - -type compiler struct { - config *conf.Config - locations []file.Location - bytecode []Opcode - variables int - scopes []scope - constants []any - constantsIndex map[any]int - functions []Function - functionsIndex map[string]int - debugInfo map[string]string - nodes []ast.Node - spans []*Span - chains [][]int - arguments []int -} - -type scope struct { - variableName string - index int -} - -func (c *compiler) nodeParent() ast.Node { - if len(c.nodes) > 1 { - return c.nodes[len(c.nodes)-2] - } - return nil -} - -func (c *compiler) emitLocation(loc file.Location, op Opcode, arg int) int { - c.bytecode = append(c.bytecode, op) - current := len(c.bytecode) - c.arguments = append(c.arguments, arg) - c.locations = append(c.locations, loc) - return current -} - -func (c *compiler) emit(op Opcode, args ...int) int { - arg := 0 - if len(args) > 1 { - panic("too many arguments") - } - if len(args) == 1 { - arg = args[0] - } - var loc file.Location - if len(c.nodes) > 0 { - loc = c.nodes[len(c.nodes)-1].Location() - } - return c.emitLocation(loc, op, arg) -} - -func (c *compiler) emitPush(value any) int { - return c.emit(OpPush, c.addConstant(value)) -} - -func (c *compiler) addConstant(constant any) int { - indexable := true - hash := constant - switch reflect.TypeOf(constant).Kind() { - case reflect.Slice, reflect.Map, reflect.Struct, reflect.Func: - indexable = false - } - if field, ok := constant.(*runtime.Field); ok { - indexable = true - hash = fmt.Sprintf("%v", field) - } - if method, ok := constant.(*runtime.Method); ok { - indexable = true - hash = fmt.Sprintf("%v", method) - } - if indexable { - if p, ok := c.constantsIndex[hash]; ok { - return p - } - } - c.constants = append(c.constants, constant) - p := len(c.constants) - 1 - if indexable { - c.constantsIndex[hash] = p - } - return p -} - -func (c *compiler) addVariable(name string) int { - c.variables++ - c.debugInfo[fmt.Sprintf("var_%d", c.variables-1)] = name - return c.variables - 1 -} - -// emitFunction adds builtin.Function.Func to the program.functions and emits call opcode. -func (c *compiler) emitFunction(fn *builtin.Function, argsLen int) { - switch argsLen { - case 0: - c.emit(OpCall0, c.addFunction(fn.Name, fn.Func)) - case 1: - c.emit(OpCall1, c.addFunction(fn.Name, fn.Func)) - case 2: - c.emit(OpCall2, c.addFunction(fn.Name, fn.Func)) - case 3: - c.emit(OpCall3, c.addFunction(fn.Name, fn.Func)) - default: - c.emit(OpLoadFunc, c.addFunction(fn.Name, fn.Func)) - c.emit(OpCallN, argsLen) - } -} - -// addFunction adds builtin.Function.Func to the program.functions and returns its index. -func (c *compiler) addFunction(name string, fn Function) int { - if fn == nil { - panic("function is nil") - } - if p, ok := c.functionsIndex[name]; ok { - return p - } - p := len(c.functions) - c.functions = append(c.functions, fn) - c.functionsIndex[name] = p - c.debugInfo[fmt.Sprintf("func_%d", p)] = name - return p -} - -func (c *compiler) patchJump(placeholder int) { - offset := len(c.bytecode) - placeholder - c.arguments[placeholder-1] = offset -} - -func (c *compiler) calcBackwardJump(to int) int { - return len(c.bytecode) + 1 - to -} - -func (c *compiler) compile(node ast.Node) { - c.nodes = append(c.nodes, node) - defer func() { - c.nodes = c.nodes[:len(c.nodes)-1] - }() - - if c.config != nil && c.config.Profile { - span := &Span{ - Name: reflect.TypeOf(node).String(), - Expression: node.String(), - } - if len(c.spans) > 0 { - prev := c.spans[len(c.spans)-1] - prev.Children = append(prev.Children, span) - } - c.spans = append(c.spans, span) - defer func() { - if len(c.spans) > 1 { - c.spans = c.spans[:len(c.spans)-1] - } - }() - - c.emit(OpProfileStart, c.addConstant(span)) - defer func() { - c.emit(OpProfileEnd, c.addConstant(span)) - }() - } - - switch n := node.(type) { - case *ast.NilNode: - c.NilNode(n) - case *ast.IdentifierNode: - c.IdentifierNode(n) - case *ast.IntegerNode: - c.IntegerNode(n) - case *ast.FloatNode: - c.FloatNode(n) - case *ast.BoolNode: - c.BoolNode(n) - case *ast.StringNode: - c.StringNode(n) - case *ast.ConstantNode: - c.ConstantNode(n) - case *ast.UnaryNode: - c.UnaryNode(n) - case *ast.BinaryNode: - c.BinaryNode(n) - case *ast.ChainNode: - c.ChainNode(n) - case *ast.MemberNode: - c.MemberNode(n) - case *ast.SliceNode: - c.SliceNode(n) - case *ast.CallNode: - c.CallNode(n) - case *ast.BuiltinNode: - c.BuiltinNode(n) - case *ast.PredicateNode: - c.PredicateNode(n) - case *ast.PointerNode: - c.PointerNode(n) - case *ast.VariableDeclaratorNode: - c.VariableDeclaratorNode(n) - case *ast.SequenceNode: - c.SequenceNode(n) - case *ast.ConditionalNode: - c.ConditionalNode(n) - case *ast.ArrayNode: - c.ArrayNode(n) - case *ast.MapNode: - c.MapNode(n) - case *ast.PairNode: - c.PairNode(n) - default: - panic(fmt.Sprintf("undefined node type (%T)", node)) - } -} - -func (c *compiler) NilNode(_ *ast.NilNode) { - c.emit(OpNil) -} - -func (c *compiler) IdentifierNode(node *ast.IdentifierNode) { - if index, ok := c.lookupVariable(node.Value); ok { - c.emit(OpLoadVar, index) - return - } - if node.Value == "$env" { - c.emit(OpLoadEnv) - return - } - - var env Nature - if c.config != nil { - env = c.config.Env - } - - if env.IsFastMap() { - c.emit(OpLoadFast, c.addConstant(node.Value)) - } else if ok, index, name := checker.FieldIndex(env, node); ok { - c.emit(OpLoadField, c.addConstant(&runtime.Field{ - Index: index, - Path: []string{name}, - })) - } else if ok, index, name := checker.MethodIndex(env, node); ok { - c.emit(OpLoadMethod, c.addConstant(&runtime.Method{ - Name: name, - Index: index, - })) - } else { - c.emit(OpLoadConst, c.addConstant(node.Value)) - } -} - -func (c *compiler) IntegerNode(node *ast.IntegerNode) { - t := node.Type() - if t == nil { - c.emitPush(node.Value) - return - } - switch t.Kind() { - case reflect.Float32: - c.emitPush(float32(node.Value)) - case reflect.Float64: - c.emitPush(float64(node.Value)) - case reflect.Int: - c.emitPush(node.Value) - case reflect.Int8: - if node.Value > math.MaxInt8 || node.Value < math.MinInt8 { - panic(fmt.Sprintf("constant %d overflows int8", node.Value)) - } - c.emitPush(int8(node.Value)) - case reflect.Int16: - if node.Value > math.MaxInt16 || node.Value < math.MinInt16 { - panic(fmt.Sprintf("constant %d overflows int16", node.Value)) - } - c.emitPush(int16(node.Value)) - case reflect.Int32: - if node.Value > math.MaxInt32 || node.Value < math.MinInt32 { - panic(fmt.Sprintf("constant %d overflows int32", node.Value)) - } - c.emitPush(int32(node.Value)) - case reflect.Int64: - c.emitPush(int64(node.Value)) - case reflect.Uint: - if node.Value < 0 { - panic(fmt.Sprintf("constant %d overflows uint", node.Value)) - } - c.emitPush(uint(node.Value)) - case reflect.Uint8: - if node.Value > math.MaxUint8 || node.Value < 0 { - panic(fmt.Sprintf("constant %d overflows uint8", node.Value)) - } - c.emitPush(uint8(node.Value)) - case reflect.Uint16: - if node.Value > math.MaxUint16 || node.Value < 0 { - panic(fmt.Sprintf("constant %d overflows uint16", node.Value)) - } - c.emitPush(uint16(node.Value)) - case reflect.Uint32: - if node.Value < 0 { - panic(fmt.Sprintf("constant %d overflows uint32", node.Value)) - } - c.emitPush(uint32(node.Value)) - case reflect.Uint64: - if node.Value < 0 { - panic(fmt.Sprintf("constant %d overflows uint64", node.Value)) - } - c.emitPush(uint64(node.Value)) - default: - c.emitPush(node.Value) - } -} - -func (c *compiler) FloatNode(node *ast.FloatNode) { - switch node.Type().Kind() { - case reflect.Float32: - c.emitPush(float32(node.Value)) - case reflect.Float64: - c.emitPush(node.Value) - default: - c.emitPush(node.Value) - } -} - -func (c *compiler) BoolNode(node *ast.BoolNode) { - if node.Value { - c.emit(OpTrue) - } else { - c.emit(OpFalse) - } -} - -func (c *compiler) StringNode(node *ast.StringNode) { - c.emitPush(node.Value) -} - -func (c *compiler) ConstantNode(node *ast.ConstantNode) { - if node.Value == nil { - c.emit(OpNil) - return - } - c.emitPush(node.Value) -} - -func (c *compiler) UnaryNode(node *ast.UnaryNode) { - c.compile(node.Node) - c.derefInNeeded(node.Node) - - switch node.Operator { - - case "!", "not": - c.emit(OpNot) - - case "+": - // Do nothing - - case "-": - c.emit(OpNegate) - - default: - panic(fmt.Sprintf("unknown operator (%v)", node.Operator)) - } -} - -func (c *compiler) BinaryNode(node *ast.BinaryNode) { - switch node.Operator { - case "==": - c.equalBinaryNode(node) - - case "!=": - c.equalBinaryNode(node) - c.emit(OpNot) - - case "or", "||": - c.compile(node.Left) - c.derefInNeeded(node.Left) - end := c.emit(OpJumpIfTrue, placeholder) - c.emit(OpPop) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.patchJump(end) - - case "and", "&&": - c.compile(node.Left) - c.derefInNeeded(node.Left) - end := c.emit(OpJumpIfFalse, placeholder) - c.emit(OpPop) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.patchJump(end) - - case "<": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpLess) - - case ">": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpMore) - - case "<=": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpLessOrEqual) - - case ">=": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpMoreOrEqual) - - case "+": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpAdd) - - case "-": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpSubtract) - - case "*": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpMultiply) - - case "/": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpDivide) - - case "%": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpModulo) - - case "**", "^": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpExponent) - - case "in": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpIn) - - case "matches": - if str, ok := node.Right.(*ast.StringNode); ok { - re, err := regexp.Compile(str.Value) - if err != nil { - panic(err) - } - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.emit(OpMatchesConst, c.addConstant(re)) - } else { - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpMatches) - } - - case "contains": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpContains) - - case "startsWith": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpStartsWith) - - case "endsWith": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpEndsWith) - - case "..": - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.emit(OpRange) - - case "??": - c.compile(node.Left) - c.derefInNeeded(node.Left) - end := c.emit(OpJumpIfNotNil, placeholder) - c.emit(OpPop) - c.compile(node.Right) - c.derefInNeeded(node.Right) - c.patchJump(end) - - default: - panic(fmt.Sprintf("unknown operator (%v)", node.Operator)) - - } -} - -func (c *compiler) equalBinaryNode(node *ast.BinaryNode) { - l := kind(node.Left.Type()) - r := kind(node.Right.Type()) - - leftIsSimple := isSimpleType(node.Left) - rightIsSimple := isSimpleType(node.Right) - leftAndRightAreSimple := leftIsSimple && rightIsSimple - - c.compile(node.Left) - c.derefInNeeded(node.Left) - c.compile(node.Right) - c.derefInNeeded(node.Right) - - if l == r && l == reflect.Int && leftAndRightAreSimple { - c.emit(OpEqualInt) - } else if l == r && l == reflect.String && leftAndRightAreSimple { - c.emit(OpEqualString) - } else { - c.emit(OpEqual) - } -} - -func isSimpleType(node ast.Node) bool { - if node == nil { - return false - } - t := node.Type() - if t == nil { - return false - } - return t.PkgPath() == "" -} - -func (c *compiler) ChainNode(node *ast.ChainNode) { - c.chains = append(c.chains, []int{}) - c.compile(node.Node) - for _, ph := range c.chains[len(c.chains)-1] { - c.patchJump(ph) // If chain activated jump here (got nit somewhere). - } - parent := c.nodeParent() - if binary, ok := parent.(*ast.BinaryNode); ok && binary.Operator == "??" { - // If chain is used in nil coalescing operator, we can omit - // nil push at the end of the chain. The ?? operator will - // handle it. - } else { - // We need to put the nil on the stack, otherwise "typed" - // nil will be used as a result of the chain. - j := c.emit(OpJumpIfNotNil, placeholder) - c.emit(OpPop) - c.emit(OpNil) - c.patchJump(j) - } - c.chains = c.chains[:len(c.chains)-1] -} - -func (c *compiler) MemberNode(node *ast.MemberNode) { - var env Nature - if c.config != nil { - env = c.config.Env - } - - if ok, index, name := checker.MethodIndex(env, node); ok { - c.compile(node.Node) - c.emit(OpMethod, c.addConstant(&runtime.Method{ - Name: name, - Index: index, - })) - return - } - op := OpFetch - base := node.Node - - ok, index, nodeName := checker.FieldIndex(env, node) - path := []string{nodeName} - - if ok { - op = OpFetchField - for !node.Optional { - if ident, isIdent := base.(*ast.IdentifierNode); isIdent { - if ok, identIndex, name := checker.FieldIndex(env, ident); ok { - index = append(identIndex, index...) - path = append([]string{name}, path...) - c.emitLocation(ident.Location(), OpLoadField, c.addConstant( - &runtime.Field{Index: index, Path: path}, - )) - return - } - } - - if member, isMember := base.(*ast.MemberNode); isMember { - if ok, memberIndex, name := checker.FieldIndex(env, member); ok { - index = append(memberIndex, index...) - path = append([]string{name}, path...) - node = member - base = member.Node - } else { - break - } - } else { - break - } - } - } - - c.compile(base) - // If the field is optional, we need to jump over the fetch operation. - // If no ChainNode (none c.chains) is used, do not compile the optional fetch. - if node.Optional && len(c.chains) > 0 { - ph := c.emit(OpJumpIfNil, placeholder) - c.chains[len(c.chains)-1] = append(c.chains[len(c.chains)-1], ph) - } - - if op == OpFetch { - c.compile(node.Property) - c.emit(OpFetch) - } else { - c.emitLocation(node.Location(), op, c.addConstant( - &runtime.Field{Index: index, Path: path}, - )) - } -} - -func (c *compiler) SliceNode(node *ast.SliceNode) { - c.compile(node.Node) - if node.To != nil { - c.compile(node.To) - } else { - c.emit(OpLen) - } - if node.From != nil { - c.compile(node.From) - } else { - c.emitPush(0) - } - c.emit(OpSlice) -} - -func (c *compiler) CallNode(node *ast.CallNode) { - fn := node.Callee.Type() - if fn.Kind() == reflect.Func { - fnInOffset := 0 - fnNumIn := fn.NumIn() - switch callee := node.Callee.(type) { - case *ast.MemberNode: - if prop, ok := callee.Property.(*ast.StringNode); ok { - if _, ok = callee.Node.Type().MethodByName(prop.Value); ok && callee.Node.Type().Kind() != reflect.Interface { - fnInOffset = 1 - fnNumIn-- - } - } - case *ast.IdentifierNode: - if t, ok := c.config.Env.MethodByName(callee.Value); ok && t.Method { - fnInOffset = 1 - fnNumIn-- - } - } - for i, arg := range node.Arguments { - c.compile(arg) - - var in reflect.Type - if fn.IsVariadic() && i >= fnNumIn-1 { - in = fn.In(fn.NumIn() - 1).Elem() - } else { - in = fn.In(i + fnInOffset) - } - - c.derefParam(in, arg) - } - } else { - for _, arg := range node.Arguments { - c.compile(arg) - } - } - - if ident, ok := node.Callee.(*ast.IdentifierNode); ok { - if c.config != nil { - if fn, ok := c.config.Functions[ident.Value]; ok { - c.emitFunction(fn, len(node.Arguments)) - return - } - } - } - c.compile(node.Callee) - - if c.config != nil { - isMethod, _, _ := checker.MethodIndex(c.config.Env, node.Callee) - if index, ok := checker.TypedFuncIndex(node.Callee.Type(), isMethod); ok { - c.emit(OpCallTyped, index) - return - } else if checker.IsFastFunc(node.Callee.Type(), isMethod) { - c.emit(OpCallFast, len(node.Arguments)) - } else { - c.emit(OpCall, len(node.Arguments)) - } - } else { - c.emit(OpCall, len(node.Arguments)) - } -} - -func (c *compiler) BuiltinNode(node *ast.BuiltinNode) { - switch node.Name { - case "all": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - var loopBreak int - c.emitLoop(func() { - c.compile(node.Arguments[1]) - loopBreak = c.emit(OpJumpIfFalse, placeholder) - c.emit(OpPop) - }) - c.emit(OpTrue) - c.patchJump(loopBreak) - c.emit(OpEnd) - return - - case "none": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - var loopBreak int - c.emitLoop(func() { - c.compile(node.Arguments[1]) - c.emit(OpNot) - loopBreak = c.emit(OpJumpIfFalse, placeholder) - c.emit(OpPop) - }) - c.emit(OpTrue) - c.patchJump(loopBreak) - c.emit(OpEnd) - return - - case "any": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - var loopBreak int - c.emitLoop(func() { - c.compile(node.Arguments[1]) - loopBreak = c.emit(OpJumpIfTrue, placeholder) - c.emit(OpPop) - }) - c.emit(OpFalse) - c.patchJump(loopBreak) - c.emit(OpEnd) - return - - case "one": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - c.emitLoop(func() { - c.compile(node.Arguments[1]) - c.emitCond(func() { - c.emit(OpIncrementCount) - }) - }) - c.emit(OpGetCount) - c.emitPush(1) - c.emit(OpEqual) - c.emit(OpEnd) - return - - case "filter": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - c.emitLoop(func() { - c.compile(node.Arguments[1]) - c.emitCond(func() { - c.emit(OpIncrementCount) - if node.Map != nil { - c.compile(node.Map) - } else { - c.emit(OpPointer) - } - }) - }) - c.emit(OpGetCount) - c.emit(OpEnd) - c.emit(OpArray) - return - - case "map": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - c.emitLoop(func() { - c.compile(node.Arguments[1]) - }) - c.emit(OpGetLen) - c.emit(OpEnd) - c.emit(OpArray) - return - - case "count": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - c.emitLoop(func() { - if len(node.Arguments) == 2 { - c.compile(node.Arguments[1]) - } else { - c.emit(OpPointer) - } - c.emitCond(func() { - c.emit(OpIncrementCount) - }) - }) - c.emit(OpGetCount) - c.emit(OpEnd) - return - - case "sum": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - c.emit(OpInt, 0) - c.emit(OpSetAcc) - c.emitLoop(func() { - if len(node.Arguments) == 2 { - c.compile(node.Arguments[1]) - } else { - c.emit(OpPointer) - } - c.emit(OpGetAcc) - c.emit(OpAdd) - c.emit(OpSetAcc) - }) - c.emit(OpGetAcc) - c.emit(OpEnd) - return - - case "find": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - var loopBreak int - c.emitLoop(func() { - c.compile(node.Arguments[1]) - noop := c.emit(OpJumpIfFalse, placeholder) - c.emit(OpPop) - if node.Map != nil { - c.compile(node.Map) - } else { - c.emit(OpPointer) - } - loopBreak = c.emit(OpJump, placeholder) - c.patchJump(noop) - c.emit(OpPop) - }) - if node.Throws { - c.emit(OpPush, c.addConstant(fmt.Errorf("reflect: slice index out of range"))) - c.emit(OpThrow) - } else { - c.emit(OpNil) - } - c.patchJump(loopBreak) - c.emit(OpEnd) - return - - case "findIndex": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - var loopBreak int - c.emitLoop(func() { - c.compile(node.Arguments[1]) - noop := c.emit(OpJumpIfFalse, placeholder) - c.emit(OpPop) - c.emit(OpGetIndex) - loopBreak = c.emit(OpJump, placeholder) - c.patchJump(noop) - c.emit(OpPop) - }) - c.emit(OpNil) - c.patchJump(loopBreak) - c.emit(OpEnd) - return - - case "findLast": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - var loopBreak int - c.emitLoopBackwards(func() { - c.compile(node.Arguments[1]) - noop := c.emit(OpJumpIfFalse, placeholder) - c.emit(OpPop) - if node.Map != nil { - c.compile(node.Map) - } else { - c.emit(OpPointer) - } - loopBreak = c.emit(OpJump, placeholder) - c.patchJump(noop) - c.emit(OpPop) - }) - if node.Throws { - c.emit(OpPush, c.addConstant(fmt.Errorf("reflect: slice index out of range"))) - c.emit(OpThrow) - } else { - c.emit(OpNil) - } - c.patchJump(loopBreak) - c.emit(OpEnd) - return - - case "findLastIndex": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - var loopBreak int - c.emitLoopBackwards(func() { - c.compile(node.Arguments[1]) - noop := c.emit(OpJumpIfFalse, placeholder) - c.emit(OpPop) - c.emit(OpGetIndex) - loopBreak = c.emit(OpJump, placeholder) - c.patchJump(noop) - c.emit(OpPop) - }) - c.emit(OpNil) - c.patchJump(loopBreak) - c.emit(OpEnd) - return - - case "groupBy": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - c.emit(OpCreate, 1) - c.emit(OpSetAcc) - c.emitLoop(func() { - c.compile(node.Arguments[1]) - c.emit(OpGroupBy) - }) - c.emit(OpGetAcc) - c.emit(OpEnd) - return - - case "sortBy": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - if len(node.Arguments) == 3 { - c.compile(node.Arguments[2]) - } else { - c.emit(OpPush, c.addConstant("asc")) - } - c.emit(OpCreate, 2) - c.emit(OpSetAcc) - c.emitLoop(func() { - c.compile(node.Arguments[1]) - c.emit(OpSortBy) - }) - c.emit(OpSort) - c.emit(OpEnd) - return - - case "reduce": - c.compile(node.Arguments[0]) - c.derefInNeeded(node.Arguments[0]) - c.emit(OpBegin) - if len(node.Arguments) == 3 { - c.compile(node.Arguments[2]) - c.derefInNeeded(node.Arguments[2]) - c.emit(OpSetAcc) - } else { - c.emit(OpPointer) - c.emit(OpIncrementIndex) - c.emit(OpSetAcc) - } - c.emitLoop(func() { - c.compile(node.Arguments[1]) - c.emit(OpSetAcc) - }) - c.emit(OpGetAcc) - c.emit(OpEnd) - return - - } - - if id, ok := builtin.Index[node.Name]; ok { - f := builtin.Builtins[id] - for i, arg := range node.Arguments { - c.compile(arg) - argType := arg.Type() - if argType.Kind() == reflect.Ptr || arg.Nature().IsUnknown() { - if f.Deref == nil { - // By default, builtins expect arguments to be dereferenced. - c.emit(OpDeref) - } else { - if f.Deref(i, argType) { - c.emit(OpDeref) - } - } - } - } - - if f.Fast != nil { - c.emit(OpCallBuiltin1, id) - } else if f.Safe != nil { - c.emit(OpPush, c.addConstant(f.Safe)) - c.emit(OpCallSafe, len(node.Arguments)) - } else if f.Func != nil { - c.emitFunction(f, len(node.Arguments)) - } - return - } - - panic(fmt.Sprintf("unknown builtin %v", node.Name)) -} - -func (c *compiler) emitCond(body func()) { - noop := c.emit(OpJumpIfFalse, placeholder) - c.emit(OpPop) - - body() - - jmp := c.emit(OpJump, placeholder) - c.patchJump(noop) - c.emit(OpPop) - c.patchJump(jmp) -} - -func (c *compiler) emitLoop(body func()) { - begin := len(c.bytecode) - end := c.emit(OpJumpIfEnd, placeholder) - - body() - - c.emit(OpIncrementIndex) - c.emit(OpJumpBackward, c.calcBackwardJump(begin)) - c.patchJump(end) -} - -func (c *compiler) emitLoopBackwards(body func()) { - c.emit(OpGetLen) - c.emit(OpInt, 1) - c.emit(OpSubtract) - c.emit(OpSetIndex) - begin := len(c.bytecode) - c.emit(OpGetIndex) - c.emit(OpInt, 0) - c.emit(OpMoreOrEqual) - end := c.emit(OpJumpIfFalse, placeholder) - - body() - - c.emit(OpDecrementIndex) - c.emit(OpJumpBackward, c.calcBackwardJump(begin)) - c.patchJump(end) -} - -func (c *compiler) PredicateNode(node *ast.PredicateNode) { - c.compile(node.Node) -} - -func (c *compiler) PointerNode(node *ast.PointerNode) { - switch node.Name { - case "index": - c.emit(OpGetIndex) - case "acc": - c.emit(OpGetAcc) - case "": - c.emit(OpPointer) - default: - panic(fmt.Sprintf("unknown pointer %v", node.Name)) - } -} - -func (c *compiler) VariableDeclaratorNode(node *ast.VariableDeclaratorNode) { - c.compile(node.Value) - index := c.addVariable(node.Name) - c.emit(OpStore, index) - c.beginScope(node.Name, index) - c.compile(node.Expr) - c.endScope() -} - -func (c *compiler) SequenceNode(node *ast.SequenceNode) { - for i, n := range node.Nodes { - c.compile(n) - if i < len(node.Nodes)-1 { - c.emit(OpPop) - } - } -} - -func (c *compiler) beginScope(name string, index int) { - c.scopes = append(c.scopes, scope{name, index}) -} - -func (c *compiler) endScope() { - c.scopes = c.scopes[:len(c.scopes)-1] -} - -func (c *compiler) lookupVariable(name string) (int, bool) { - for i := len(c.scopes) - 1; i >= 0; i-- { - if c.scopes[i].variableName == name { - return c.scopes[i].index, true - } - } - return 0, false -} - -func (c *compiler) ConditionalNode(node *ast.ConditionalNode) { - c.compile(node.Cond) - otherwise := c.emit(OpJumpIfFalse, placeholder) - - c.emit(OpPop) - c.compile(node.Exp1) - end := c.emit(OpJump, placeholder) - - c.patchJump(otherwise) - c.emit(OpPop) - c.compile(node.Exp2) - - c.patchJump(end) -} - -func (c *compiler) ArrayNode(node *ast.ArrayNode) { - for _, node := range node.Nodes { - c.compile(node) - } - - c.emitPush(len(node.Nodes)) - c.emit(OpArray) -} - -func (c *compiler) MapNode(node *ast.MapNode) { - for _, pair := range node.Pairs { - c.compile(pair) - } - - c.emitPush(len(node.Pairs)) - c.emit(OpMap) -} - -func (c *compiler) PairNode(node *ast.PairNode) { - c.compile(node.Key) - c.compile(node.Value) -} - -func (c *compiler) derefInNeeded(node ast.Node) { - if node.Nature().Nil { - return - } - switch node.Type().Kind() { - case reflect.Ptr, reflect.Interface: - c.emit(OpDeref) - } -} - -func (c *compiler) derefParam(in reflect.Type, param ast.Node) { - if param.Nature().Nil { - return - } - if param.Type().AssignableTo(in) { - return - } - if in.Kind() != reflect.Ptr && param.Type().Kind() == reflect.Ptr { - c.emit(OpDeref) - } -} - -func (c *compiler) optimize() { - for i, op := range c.bytecode { - switch op { - case OpJumpIfTrue, OpJumpIfFalse, OpJumpIfNil, OpJumpIfNotNil: - target := i + c.arguments[i] + 1 - for target < len(c.bytecode) && c.bytecode[target] == op { - target += c.arguments[target] + 1 - } - c.arguments[i] = target - i - 1 - } - } -} - -func kind(t reflect.Type) reflect.Kind { - if t == nil { - return reflect.Invalid - } - return t.Kind() -} diff --git a/vendor/github.com/expr-lang/expr/conf/config.go b/vendor/github.com/expr-lang/expr/conf/config.go deleted file mode 100644 index 2c14d98..0000000 --- a/vendor/github.com/expr-lang/expr/conf/config.go +++ /dev/null @@ -1,99 +0,0 @@ -package conf - -import ( - "fmt" - "reflect" - - "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/builtin" - "github.com/expr-lang/expr/checker/nature" - "github.com/expr-lang/expr/vm/runtime" -) - -var ( - // DefaultMemoryBudget represents default maximum allowed memory usage by the vm.VM. - DefaultMemoryBudget uint = 1e6 - - // DefaultMaxNodes represents default maximum allowed AST nodes by the compiler. - DefaultMaxNodes uint = 1e4 -) - -type FunctionsTable map[string]*builtin.Function - -type Config struct { - EnvObject any - Env nature.Nature - Expect reflect.Kind - ExpectAny bool - Optimize bool - Strict bool - Profile bool - MaxNodes uint - ConstFns map[string]reflect.Value - Visitors []ast.Visitor - Functions FunctionsTable - Builtins FunctionsTable - Disabled map[string]bool // disabled builtins -} - -// CreateNew creates new config with default values. -func CreateNew() *Config { - c := &Config{ - Optimize: true, - MaxNodes: DefaultMaxNodes, - ConstFns: make(map[string]reflect.Value), - Functions: make(map[string]*builtin.Function), - Builtins: make(map[string]*builtin.Function), - Disabled: make(map[string]bool), - } - for _, f := range builtin.Builtins { - c.Builtins[f.Name] = f - } - return c -} - -// New creates new config with environment. -func New(env any) *Config { - c := CreateNew() - c.WithEnv(env) - return c -} - -func (c *Config) WithEnv(env any) { - c.EnvObject = env - c.Env = Env(env) - c.Strict = c.Env.Strict -} - -func (c *Config) ConstExpr(name string) { - if c.EnvObject == nil { - panic("no environment is specified for ConstExpr()") - } - fn := reflect.ValueOf(runtime.Fetch(c.EnvObject, name)) - if fn.Kind() != reflect.Func { - panic(fmt.Errorf("const expression %q must be a function", name)) - } - c.ConstFns[name] = fn -} - -type Checker interface { - Check() -} - -func (c *Config) Check() { - for _, v := range c.Visitors { - if c, ok := v.(Checker); ok { - c.Check() - } - } -} - -func (c *Config) IsOverridden(name string) bool { - if _, ok := c.Functions[name]; ok { - return true - } - if _, ok := c.Env.Get(name); ok { - return true - } - return false -} diff --git a/vendor/github.com/expr-lang/expr/conf/env.go b/vendor/github.com/expr-lang/expr/conf/env.go deleted file mode 100644 index 8b13df1..0000000 --- a/vendor/github.com/expr-lang/expr/conf/env.go +++ /dev/null @@ -1,68 +0,0 @@ -package conf - -import ( - "fmt" - "reflect" - - . "github.com/expr-lang/expr/checker/nature" - "github.com/expr-lang/expr/internal/deref" - "github.com/expr-lang/expr/types" -) - -func Env(env any) Nature { - if env == nil { - return Nature{ - Type: reflect.TypeOf(map[string]any{}), - Strict: true, - } - } - - switch env := env.(type) { - case types.Map: - return env.Nature() - } - - v := reflect.ValueOf(env) - d := deref.Value(v) - - switch d.Kind() { - case reflect.Struct: - return Nature{ - Type: v.Type(), - Strict: true, - } - - case reflect.Map: - n := Nature{ - Type: v.Type(), - Fields: make(map[string]Nature, v.Len()), - Strict: true, - } - - for _, key := range v.MapKeys() { - elem := v.MapIndex(key) - if !elem.IsValid() || !elem.CanInterface() { - panic(fmt.Sprintf("invalid map value: %s", key)) - } - - face := elem.Interface() - - switch face := face.(type) { - case types.Map: - n.Fields[key.String()] = face.Nature() - - default: - if face == nil { - n.Fields[key.String()] = Nature{Nil: true} - continue - } - n.Fields[key.String()] = Nature{Type: reflect.TypeOf(face)} - } - - } - - return n - } - - panic(fmt.Sprintf("unknown type %T", env)) -} diff --git a/vendor/github.com/expr-lang/expr/expr.go b/vendor/github.com/expr-lang/expr/expr.go deleted file mode 100644 index 48298fe..0000000 --- a/vendor/github.com/expr-lang/expr/expr.go +++ /dev/null @@ -1,269 +0,0 @@ -package expr - -import ( - "errors" - "fmt" - "reflect" - "time" - - "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/builtin" - "github.com/expr-lang/expr/checker" - "github.com/expr-lang/expr/compiler" - "github.com/expr-lang/expr/conf" - "github.com/expr-lang/expr/file" - "github.com/expr-lang/expr/optimizer" - "github.com/expr-lang/expr/parser" - "github.com/expr-lang/expr/patcher" - "github.com/expr-lang/expr/vm" -) - -// Option for configuring config. -type Option func(c *conf.Config) - -// Env specifies expected input of env for type checks. -// If struct is passed, all fields will be treated as variables, -// as well as all fields of embedded structs and struct itself. -// If map is passed, all items will be treated as variables. -// Methods defined on this type will be available as functions. -func Env(env any) Option { - return func(c *conf.Config) { - c.WithEnv(env) - } -} - -// AllowUndefinedVariables allows to use undefined variables inside expressions. -// This can be used with expr.Env option to partially define a few variables. -func AllowUndefinedVariables() Option { - return func(c *conf.Config) { - c.Strict = false - } -} - -// Operator allows to replace a binary operator with a function. -func Operator(operator string, fn ...string) Option { - return func(c *conf.Config) { - p := &patcher.OperatorOverloading{ - Operator: operator, - Overloads: fn, - Env: &c.Env, - Functions: c.Functions, - } - c.Visitors = append(c.Visitors, p) - } -} - -// ConstExpr defines func expression as constant. If all argument to this function is constants, -// then it can be replaced by result of this func call on compile step. -func ConstExpr(fn string) Option { - return func(c *conf.Config) { - c.ConstExpr(fn) - } -} - -// AsAny tells the compiler to expect any result. -func AsAny() Option { - return func(c *conf.Config) { - c.ExpectAny = true - } -} - -// AsKind tells the compiler to expect kind of the result. -func AsKind(kind reflect.Kind) Option { - return func(c *conf.Config) { - c.Expect = kind - c.ExpectAny = true - } -} - -// AsBool tells the compiler to expect a boolean result. -func AsBool() Option { - return func(c *conf.Config) { - c.Expect = reflect.Bool - c.ExpectAny = true - } -} - -// AsInt tells the compiler to expect an int result. -func AsInt() Option { - return func(c *conf.Config) { - c.Expect = reflect.Int - c.ExpectAny = true - } -} - -// AsInt64 tells the compiler to expect an int64 result. -func AsInt64() Option { - return func(c *conf.Config) { - c.Expect = reflect.Int64 - c.ExpectAny = true - } -} - -// AsFloat64 tells the compiler to expect a float64 result. -func AsFloat64() Option { - return func(c *conf.Config) { - c.Expect = reflect.Float64 - c.ExpectAny = true - } -} - -// WarnOnAny tells the compiler to warn if expression return any type. -func WarnOnAny() Option { - return func(c *conf.Config) { - if c.Expect == reflect.Invalid { - panic("WarnOnAny() works only with combination with AsInt(), AsBool(), etc. options") - } - c.ExpectAny = false - } -} - -// Optimize turns optimizations on or off. -func Optimize(b bool) Option { - return func(c *conf.Config) { - c.Optimize = b - } -} - -// Patch adds visitor to list of visitors what will be applied before compiling AST to bytecode. -func Patch(visitor ast.Visitor) Option { - return func(c *conf.Config) { - c.Visitors = append(c.Visitors, visitor) - } -} - -// Function adds function to list of functions what will be available in expressions. -func Function(name string, fn func(params ...any) (any, error), types ...any) Option { - return func(c *conf.Config) { - ts := make([]reflect.Type, len(types)) - for i, t := range types { - t := reflect.TypeOf(t) - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - if t.Kind() != reflect.Func { - panic(fmt.Sprintf("expr: type of %s is not a function", name)) - } - ts[i] = t - } - c.Functions[name] = &builtin.Function{ - Name: name, - Func: fn, - Types: ts, - } - } -} - -// DisableAllBuiltins disables all builtins. -func DisableAllBuiltins() Option { - return func(c *conf.Config) { - for name := range c.Builtins { - c.Disabled[name] = true - } - } -} - -// DisableBuiltin disables builtin function. -func DisableBuiltin(name string) Option { - return func(c *conf.Config) { - c.Disabled[name] = true - } -} - -// EnableBuiltin enables builtin function. -func EnableBuiltin(name string) Option { - return func(c *conf.Config) { - delete(c.Disabled, name) - } -} - -// WithContext passes context to all functions calls with a context.Context argument. -func WithContext(name string) Option { - return Patch(patcher.WithContext{ - Name: name, - }) -} - -// Timezone sets default timezone for date() and now() builtin functions. -func Timezone(name string) Option { - tz, err := time.LoadLocation(name) - if err != nil { - panic(err) - } - return Patch(patcher.WithTimezone{ - Location: tz, - }) -} - -// MaxNodes sets the maximum number of nodes allowed in the expression. -// By default, the maximum number of nodes is conf.DefaultMaxNodes. -// If MaxNodes is set to 0, the node budget check is disabled. -func MaxNodes(n uint) Option { - return func(c *conf.Config) { - c.MaxNodes = n - } -} - -// Compile parses and compiles given input expression to bytecode program. -func Compile(input string, ops ...Option) (*vm.Program, error) { - config := conf.CreateNew() - for _, op := range ops { - op(config) - } - for name := range config.Disabled { - delete(config.Builtins, name) - } - config.Check() - - tree, err := checker.ParseCheck(input, config) - if err != nil { - return nil, err - } - - if config.Optimize { - err = optimizer.Optimize(&tree.Node, config) - if err != nil { - var fileError *file.Error - if errors.As(err, &fileError) { - return nil, fileError.Bind(tree.Source) - } - return nil, err - } - } - - program, err := compiler.Compile(tree, config) - if err != nil { - return nil, err - } - - return program, nil -} - -// Run evaluates given bytecode program. -func Run(program *vm.Program, env any) (any, error) { - return vm.Run(program, env) -} - -// Eval parses, compiles and runs given input. -func Eval(input string, env any) (any, error) { - if _, ok := env.(Option); ok { - return nil, fmt.Errorf("misused expr.Eval: second argument (env) should be passed without expr.Env") - } - - tree, err := parser.Parse(input) - if err != nil { - return nil, err - } - - program, err := compiler.Compile(tree, nil) - if err != nil { - return nil, err - } - - output, err := Run(program, env) - if err != nil { - return nil, err - } - - return output, nil -} diff --git a/vendor/github.com/expr-lang/expr/file/error.go b/vendor/github.com/expr-lang/expr/file/error.go deleted file mode 100644 index 04253b6..0000000 --- a/vendor/github.com/expr-lang/expr/file/error.go +++ /dev/null @@ -1,84 +0,0 @@ -package file - -import ( - "fmt" - "strings" -) - -type Error struct { - Location - Line int `json:"line"` - Column int `json:"column"` - Message string `json:"message"` - Snippet string `json:"snippet"` - Prev error `json:"prev"` -} - -func (e *Error) Error() string { - return e.format() -} - -var tabReplacer = strings.NewReplacer("\t", " ") - -func (e *Error) Bind(source Source) *Error { - src := source.String() - - var runeCount, lineStart int - e.Line = 1 - e.Column = 0 - for i, r := range src { - if runeCount == e.From { - break - } - if r == '\n' { - lineStart = i - e.Line++ - e.Column = 0 - } - runeCount++ - e.Column++ - } - - lineEnd := lineStart + strings.IndexByte(src[lineStart:], '\n') - if lineEnd < lineStart { - lineEnd = len(src) - } - if lineStart == lineEnd { - return e - } - - const prefix = "\n | " - line := src[lineStart:lineEnd] - snippet := new(strings.Builder) - snippet.Grow(2*len(prefix) + len(line) + e.Column + 1) - snippet.WriteString(prefix) - tabReplacer.WriteString(snippet, line) - snippet.WriteString(prefix) - for i := 0; i < e.Column; i++ { - snippet.WriteByte('.') - } - snippet.WriteByte('^') - e.Snippet = snippet.String() - return e -} - -func (e *Error) Unwrap() error { - return e.Prev -} - -func (e *Error) Wrap(err error) { - e.Prev = err -} - -func (e *Error) format() string { - if e.Snippet == "" { - return e.Message - } - return fmt.Sprintf( - "%s (%d:%d)%s", - e.Message, - e.Line, - e.Column+1, // add one to the 0-based column for display - e.Snippet, - ) -} diff --git a/vendor/github.com/expr-lang/expr/file/location.go b/vendor/github.com/expr-lang/expr/file/location.go deleted file mode 100644 index 6c6bc24..0000000 --- a/vendor/github.com/expr-lang/expr/file/location.go +++ /dev/null @@ -1,6 +0,0 @@ -package file - -type Location struct { - From int `json:"from"` - To int `json:"to"` -} diff --git a/vendor/github.com/expr-lang/expr/file/source.go b/vendor/github.com/expr-lang/expr/file/source.go deleted file mode 100644 index b11bb5f..0000000 --- a/vendor/github.com/expr-lang/expr/file/source.go +++ /dev/null @@ -1,36 +0,0 @@ -package file - -import "strings" - -type Source struct { - raw string -} - -func NewSource(contents string) Source { - return Source{ - raw: contents, - } -} - -func (s Source) String() string { - return s.raw -} - -func (s Source) Snippet(line int) (string, bool) { - if s.raw == "" { - return "", false - } - var start int - for i := 1; i < line; i++ { - pos := strings.IndexByte(s.raw[start:], '\n') - if pos < 0 { - return "", false - } - start += pos + 1 - } - end := start + strings.IndexByte(s.raw[start:], '\n') - if end < start { - end = len(s.raw) - } - return s.raw[start:end], true -} diff --git a/vendor/github.com/expr-lang/expr/internal/deref/deref.go b/vendor/github.com/expr-lang/expr/internal/deref/deref.go deleted file mode 100644 index da3e28c..0000000 --- a/vendor/github.com/expr-lang/expr/internal/deref/deref.go +++ /dev/null @@ -1,47 +0,0 @@ -package deref - -import ( - "fmt" - "reflect" -) - -func Interface(p any) any { - if p == nil { - return nil - } - - v := reflect.ValueOf(p) - - for v.Kind() == reflect.Ptr || v.Kind() == reflect.Interface { - if v.IsNil() { - return nil - } - v = v.Elem() - } - - if v.IsValid() { - return v.Interface() - } - - panic(fmt.Sprintf("cannot dereference %v", p)) -} - -func Type(t reflect.Type) reflect.Type { - if t == nil { - return nil - } - for t.Kind() == reflect.Ptr { - t = t.Elem() - } - return t -} - -func Value(v reflect.Value) reflect.Value { - for v.Kind() == reflect.Ptr || v.Kind() == reflect.Interface { - if v.IsNil() { - return v - } - v = v.Elem() - } - return v -} diff --git a/vendor/github.com/expr-lang/expr/internal/ring/ring.go b/vendor/github.com/expr-lang/expr/internal/ring/ring.go deleted file mode 100644 index cc9e727..0000000 --- a/vendor/github.com/expr-lang/expr/internal/ring/ring.go +++ /dev/null @@ -1,85 +0,0 @@ -package ring - -// Ring is a very simple ring buffer implementation that uses a slice. The -// internal slice will only grow, never shrink. When it grows, it grows in -// chunks of "chunkSize" (given as argument in the [New] function). Pointer and -// reference types can be safely used because memory is cleared. -type Ring[T any] struct { - data []T - back, len, chunkSize int -} - -func New[T any](chunkSize int) *Ring[T] { - if chunkSize < 1 { - panic("chunkSize must be greater than zero") - } - return &Ring[T]{ - chunkSize: chunkSize, - } -} - -func (r *Ring[T]) Len() int { - return r.len -} - -func (r *Ring[T]) Cap() int { - return len(r.data) -} - -func (r *Ring[T]) Reset() { - var zero T - for i := range r.data { - r.data[i] = zero // clear mem, optimized by the compiler, in Go 1.21 the "clear" builtin can be used - } - r.back = 0 - r.len = 0 -} - -// Nth returns the n-th oldest value (zero-based) in the ring without making -// any change. -func (r *Ring[T]) Nth(n int) (v T, ok bool) { - if n < 0 || n >= r.len || len(r.data) == 0 { - return v, false - } - n = (n + r.back) % len(r.data) - return r.data[n], true -} - -// Dequeue returns the oldest value. -func (r *Ring[T]) Dequeue() (v T, ok bool) { - if r.len == 0 { - return v, false - } - v, r.data[r.back] = r.data[r.back], v // retrieve and clear mem - r.len-- - r.back = (r.back + 1) % len(r.data) - return v, true -} - -// Enqueue adds an item to the ring. -func (r *Ring[T]) Enqueue(v T) { - if r.len == len(r.data) { - r.grow() - } - writePos := (r.back + r.len) % len(r.data) - r.data[writePos] = v - r.len++ -} - -func (r *Ring[T]) grow() { - s := make([]T, len(r.data)+r.chunkSize) - if r.len > 0 { - chunk1 := r.back + r.len - if chunk1 > len(r.data) { - chunk1 = len(r.data) - } - copied := copy(s, r.data[r.back:chunk1]) - - if copied < r.len { // wrapped slice - chunk2 := r.len - copied - copy(s[copied:], r.data[:chunk2]) - } - } - r.back = 0 - r.data = s -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/const_expr.go b/vendor/github.com/expr-lang/expr/optimizer/const_expr.go deleted file mode 100644 index 1b45385..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/const_expr.go +++ /dev/null @@ -1,81 +0,0 @@ -package optimizer - -import ( - "fmt" - "reflect" - "strings" - - . "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/file" -) - -var errorType = reflect.TypeOf((*error)(nil)).Elem() - -type constExpr struct { - applied bool - err error - fns map[string]reflect.Value -} - -func (c *constExpr) Visit(node *Node) { - defer func() { - if r := recover(); r != nil { - msg := fmt.Sprintf("%v", r) - // Make message more actual, it's a runtime error, but at compile step. - msg = strings.Replace(msg, "runtime error:", "compile error:", 1) - c.err = &file.Error{ - Location: (*node).Location(), - Message: msg, - } - } - }() - - if call, ok := (*node).(*CallNode); ok { - if name, ok := call.Callee.(*IdentifierNode); ok { - fn, ok := c.fns[name.Value] - if ok { - in := make([]reflect.Value, len(call.Arguments)) - for i := 0; i < len(call.Arguments); i++ { - arg := call.Arguments[i] - var param any - - switch a := arg.(type) { - case *NilNode: - param = nil - case *IntegerNode: - param = a.Value - case *FloatNode: - param = a.Value - case *BoolNode: - param = a.Value - case *StringNode: - param = a.Value - case *ConstantNode: - param = a.Value - - default: - return // Const expr optimization not applicable. - } - - if param == nil && reflect.TypeOf(param) == nil { - // In case of nil value and nil type use this hack, - // otherwise reflect.Call will panic on zero value. - in[i] = reflect.ValueOf(¶m).Elem() - } else { - in[i] = reflect.ValueOf(param) - } - } - - out := fn.Call(in) - value := out[0].Interface() - if len(out) == 2 && out[1].Type() == errorType && !out[1].IsNil() { - c.err = out[1].Interface().(error) - return - } - constNode := &ConstantNode{Value: value} - patchWithType(node, constNode) - c.applied = true - } - } - } -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/filter_first.go b/vendor/github.com/expr-lang/expr/optimizer/filter_first.go deleted file mode 100644 index b04a5cb..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/filter_first.go +++ /dev/null @@ -1,38 +0,0 @@ -package optimizer - -import ( - . "github.com/expr-lang/expr/ast" -) - -type filterFirst struct{} - -func (*filterFirst) Visit(node *Node) { - if member, ok := (*node).(*MemberNode); ok && member.Property != nil && !member.Optional { - if prop, ok := member.Property.(*IntegerNode); ok && prop.Value == 0 { - if filter, ok := member.Node.(*BuiltinNode); ok && - filter.Name == "filter" && - len(filter.Arguments) == 2 { - patchCopyType(node, &BuiltinNode{ - Name: "find", - Arguments: filter.Arguments, - Throws: true, // to match the behavior of filter()[0] - Map: filter.Map, - }) - } - } - } - if first, ok := (*node).(*BuiltinNode); ok && - first.Name == "first" && - len(first.Arguments) == 1 { - if filter, ok := first.Arguments[0].(*BuiltinNode); ok && - filter.Name == "filter" && - len(filter.Arguments) == 2 { - patchCopyType(node, &BuiltinNode{ - Name: "find", - Arguments: filter.Arguments, - Throws: false, // as first() will return nil if not found - Map: filter.Map, - }) - } - } -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/filter_last.go b/vendor/github.com/expr-lang/expr/optimizer/filter_last.go deleted file mode 100644 index 8c046bf..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/filter_last.go +++ /dev/null @@ -1,38 +0,0 @@ -package optimizer - -import ( - . "github.com/expr-lang/expr/ast" -) - -type filterLast struct{} - -func (*filterLast) Visit(node *Node) { - if member, ok := (*node).(*MemberNode); ok && member.Property != nil && !member.Optional { - if prop, ok := member.Property.(*IntegerNode); ok && prop.Value == -1 { - if filter, ok := member.Node.(*BuiltinNode); ok && - filter.Name == "filter" && - len(filter.Arguments) == 2 { - patchCopyType(node, &BuiltinNode{ - Name: "findLast", - Arguments: filter.Arguments, - Throws: true, // to match the behavior of filter()[-1] - Map: filter.Map, - }) - } - } - } - if first, ok := (*node).(*BuiltinNode); ok && - first.Name == "last" && - len(first.Arguments) == 1 { - if filter, ok := first.Arguments[0].(*BuiltinNode); ok && - filter.Name == "filter" && - len(filter.Arguments) == 2 { - patchCopyType(node, &BuiltinNode{ - Name: "findLast", - Arguments: filter.Arguments, - Throws: false, // as last() will return nil if not found - Map: filter.Map, - }) - } - } -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/filter_len.go b/vendor/github.com/expr-lang/expr/optimizer/filter_len.go deleted file mode 100644 index c66fde9..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/filter_len.go +++ /dev/null @@ -1,22 +0,0 @@ -package optimizer - -import ( - . "github.com/expr-lang/expr/ast" -) - -type filterLen struct{} - -func (*filterLen) Visit(node *Node) { - if ln, ok := (*node).(*BuiltinNode); ok && - ln.Name == "len" && - len(ln.Arguments) == 1 { - if filter, ok := ln.Arguments[0].(*BuiltinNode); ok && - filter.Name == "filter" && - len(filter.Arguments) == 2 { - patchCopyType(node, &BuiltinNode{ - Name: "count", - Arguments: filter.Arguments, - }) - } - } -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/filter_map.go b/vendor/github.com/expr-lang/expr/optimizer/filter_map.go deleted file mode 100644 index 17659a9..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/filter_map.go +++ /dev/null @@ -1,33 +0,0 @@ -package optimizer - -import ( - . "github.com/expr-lang/expr/ast" -) - -type filterMap struct{} - -func (*filterMap) Visit(node *Node) { - if mapBuiltin, ok := (*node).(*BuiltinNode); ok && - mapBuiltin.Name == "map" && - len(mapBuiltin.Arguments) == 2 && - Find(mapBuiltin.Arguments[1], isIndexPointer) == nil { - if predicate, ok := mapBuiltin.Arguments[1].(*PredicateNode); ok { - if filter, ok := mapBuiltin.Arguments[0].(*BuiltinNode); ok && - filter.Name == "filter" && - filter.Map == nil /* not already optimized */ { - patchCopyType(node, &BuiltinNode{ - Name: "filter", - Arguments: filter.Arguments, - Map: predicate.Node, - }) - } - } - } -} - -func isIndexPointer(node Node) bool { - if pointer, ok := node.(*PointerNode); ok && pointer.Name == "index" { - return true - } - return false -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/fold.go b/vendor/github.com/expr-lang/expr/optimizer/fold.go deleted file mode 100644 index bb40eab..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/fold.go +++ /dev/null @@ -1,341 +0,0 @@ -package optimizer - -import ( - "math" - - . "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/file" -) - -type fold struct { - applied bool - err *file.Error -} - -func (fold *fold) Visit(node *Node) { - patch := func(newNode Node) { - fold.applied = true - patchWithType(node, newNode) - } - patchCopy := func(newNode Node) { - fold.applied = true - patchCopyType(node, newNode) - } - - switch n := (*node).(type) { - case *UnaryNode: - switch n.Operator { - case "-": - if i, ok := n.Node.(*IntegerNode); ok { - patch(&IntegerNode{Value: -i.Value}) - } - if i, ok := n.Node.(*FloatNode); ok { - patch(&FloatNode{Value: -i.Value}) - } - case "+": - if i, ok := n.Node.(*IntegerNode); ok { - patch(&IntegerNode{Value: i.Value}) - } - if i, ok := n.Node.(*FloatNode); ok { - patch(&FloatNode{Value: i.Value}) - } - case "!", "not": - if a := toBool(n.Node); a != nil { - patch(&BoolNode{Value: !a.Value}) - } - } - - case *BinaryNode: - switch n.Operator { - case "+": - { - a := toInteger(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&IntegerNode{Value: a.Value + b.Value}) - } - } - { - a := toInteger(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: float64(a.Value) + b.Value}) - } - } - { - a := toFloat(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: a.Value + float64(b.Value)}) - } - } - { - a := toFloat(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: a.Value + b.Value}) - } - } - { - a := toString(n.Left) - b := toString(n.Right) - if a != nil && b != nil { - patch(&StringNode{Value: a.Value + b.Value}) - } - } - case "-": - { - a := toInteger(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&IntegerNode{Value: a.Value - b.Value}) - } - } - { - a := toInteger(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: float64(a.Value) - b.Value}) - } - } - { - a := toFloat(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: a.Value - float64(b.Value)}) - } - } - { - a := toFloat(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: a.Value - b.Value}) - } - } - case "*": - { - a := toInteger(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&IntegerNode{Value: a.Value * b.Value}) - } - } - { - a := toInteger(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: float64(a.Value) * b.Value}) - } - } - { - a := toFloat(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: a.Value * float64(b.Value)}) - } - } - { - a := toFloat(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: a.Value * b.Value}) - } - } - case "/": - { - a := toInteger(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: float64(a.Value) / float64(b.Value)}) - } - } - { - a := toInteger(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: float64(a.Value) / b.Value}) - } - } - { - a := toFloat(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: a.Value / float64(b.Value)}) - } - } - { - a := toFloat(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: a.Value / b.Value}) - } - } - case "%": - if a, ok := n.Left.(*IntegerNode); ok { - if b, ok := n.Right.(*IntegerNode); ok { - if b.Value == 0 { - fold.err = &file.Error{ - Location: (*node).Location(), - Message: "integer divide by zero", - } - return - } - patch(&IntegerNode{Value: a.Value % b.Value}) - } - } - case "**", "^": - { - a := toInteger(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: math.Pow(float64(a.Value), float64(b.Value))}) - } - } - { - a := toInteger(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: math.Pow(float64(a.Value), b.Value)}) - } - } - { - a := toFloat(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: math.Pow(a.Value, float64(b.Value))}) - } - } - { - a := toFloat(n.Left) - b := toFloat(n.Right) - if a != nil && b != nil { - patch(&FloatNode{Value: math.Pow(a.Value, b.Value)}) - } - } - case "and", "&&": - a := toBool(n.Left) - b := toBool(n.Right) - - if a != nil && a.Value { // true and x - patchCopy(n.Right) - } else if b != nil && b.Value { // x and true - patchCopy(n.Left) - } else if (a != nil && !a.Value) || (b != nil && !b.Value) { // "x and false" or "false and x" - patch(&BoolNode{Value: false}) - } - case "or", "||": - a := toBool(n.Left) - b := toBool(n.Right) - - if a != nil && !a.Value { // false or x - patchCopy(n.Right) - } else if b != nil && !b.Value { // x or false - patchCopy(n.Left) - } else if (a != nil && a.Value) || (b != nil && b.Value) { // "x or true" or "true or x" - patch(&BoolNode{Value: true}) - } - case "==": - { - a := toInteger(n.Left) - b := toInteger(n.Right) - if a != nil && b != nil { - patch(&BoolNode{Value: a.Value == b.Value}) - } - } - { - a := toString(n.Left) - b := toString(n.Right) - if a != nil && b != nil { - patch(&BoolNode{Value: a.Value == b.Value}) - } - } - { - a := toBool(n.Left) - b := toBool(n.Right) - if a != nil && b != nil { - patch(&BoolNode{Value: a.Value == b.Value}) - } - } - } - - case *ArrayNode: - if len(n.Nodes) > 0 { - for _, a := range n.Nodes { - switch a.(type) { - case *IntegerNode, *FloatNode, *StringNode, *BoolNode: - continue - default: - return - } - } - value := make([]any, len(n.Nodes)) - for i, a := range n.Nodes { - switch b := a.(type) { - case *IntegerNode: - value[i] = b.Value - case *FloatNode: - value[i] = b.Value - case *StringNode: - value[i] = b.Value - case *BoolNode: - value[i] = b.Value - } - } - patch(&ConstantNode{Value: value}) - } - - case *BuiltinNode: - // TODO: Move this to a separate visitor filter_filter.go - switch n.Name { - case "filter": - if len(n.Arguments) != 2 { - return - } - if base, ok := n.Arguments[0].(*BuiltinNode); ok && base.Name == "filter" { - patchCopy(&BuiltinNode{ - Name: "filter", - Arguments: []Node{ - base.Arguments[0], - &BinaryNode{ - Operator: "&&", - Left: base.Arguments[1].(*PredicateNode).Node, - Right: n.Arguments[1].(*PredicateNode).Node, - }, - }, - }) - } - } - } -} - -func toString(n Node) *StringNode { - switch a := n.(type) { - case *StringNode: - return a - } - return nil -} - -func toInteger(n Node) *IntegerNode { - switch a := n.(type) { - case *IntegerNode: - return a - } - return nil -} - -func toFloat(n Node) *FloatNode { - switch a := n.(type) { - case *FloatNode: - return a - } - return nil -} - -func toBool(n Node) *BoolNode { - switch a := n.(type) { - case *BoolNode: - return a - } - return nil -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/in_array.go b/vendor/github.com/expr-lang/expr/optimizer/in_array.go deleted file mode 100644 index e91320c..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/in_array.go +++ /dev/null @@ -1,68 +0,0 @@ -package optimizer - -import ( - "reflect" - - . "github.com/expr-lang/expr/ast" -) - -type inArray struct{} - -func (*inArray) Visit(node *Node) { - switch n := (*node).(type) { - case *BinaryNode: - if n.Operator == "in" { - if array, ok := n.Right.(*ArrayNode); ok { - if len(array.Nodes) > 0 { - t := n.Left.Type() - if t == nil || t.Kind() != reflect.Int { - // This optimization can be only performed if left side is int type, - // as runtime.in func uses reflect.Map.MapIndex and keys of map must, - // be same as checked value type. - goto string - } - - for _, a := range array.Nodes { - if _, ok := a.(*IntegerNode); !ok { - goto string - } - } - { - value := make(map[int]struct{}) - for _, a := range array.Nodes { - value[a.(*IntegerNode).Value] = struct{}{} - } - m := &ConstantNode{Value: value} - m.SetType(reflect.TypeOf(value)) - patchCopyType(node, &BinaryNode{ - Operator: n.Operator, - Left: n.Left, - Right: m, - }) - } - - string: - for _, a := range array.Nodes { - if _, ok := a.(*StringNode); !ok { - return - } - } - { - value := make(map[string]struct{}) - for _, a := range array.Nodes { - value[a.(*StringNode).Value] = struct{}{} - } - m := &ConstantNode{Value: value} - m.SetType(reflect.TypeOf(value)) - patchCopyType(node, &BinaryNode{ - Operator: n.Operator, - Left: n.Left, - Right: m, - }) - } - - } - } - } - } -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/in_range.go b/vendor/github.com/expr-lang/expr/optimizer/in_range.go deleted file mode 100644 index ed2f557..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/in_range.go +++ /dev/null @@ -1,43 +0,0 @@ -package optimizer - -import ( - "reflect" - - . "github.com/expr-lang/expr/ast" -) - -type inRange struct{} - -func (*inRange) Visit(node *Node) { - switch n := (*node).(type) { - case *BinaryNode: - if n.Operator == "in" { - t := n.Left.Type() - if t == nil { - return - } - if t.Kind() != reflect.Int { - return - } - if rangeOp, ok := n.Right.(*BinaryNode); ok && rangeOp.Operator == ".." { - if from, ok := rangeOp.Left.(*IntegerNode); ok { - if to, ok := rangeOp.Right.(*IntegerNode); ok { - patchCopyType(node, &BinaryNode{ - Operator: "and", - Left: &BinaryNode{ - Operator: ">=", - Left: n.Left, - Right: from, - }, - Right: &BinaryNode{ - Operator: "<=", - Left: n.Left, - Right: to, - }, - }) - } - } - } - } - } -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/optimizer.go b/vendor/github.com/expr-lang/expr/optimizer/optimizer.go deleted file mode 100644 index 9a9677c..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/optimizer.go +++ /dev/null @@ -1,79 +0,0 @@ -package optimizer - -import ( - "fmt" - "reflect" - - . "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/conf" -) - -func Optimize(node *Node, config *conf.Config) error { - Walk(node, &inArray{}) - for limit := 1000; limit >= 0; limit-- { - fold := &fold{} - Walk(node, fold) - if fold.err != nil { - return fold.err - } - if !fold.applied { - break - } - } - if config != nil && len(config.ConstFns) > 0 { - for limit := 100; limit >= 0; limit-- { - constExpr := &constExpr{ - fns: config.ConstFns, - } - Walk(node, constExpr) - if constExpr.err != nil { - return constExpr.err - } - if !constExpr.applied { - break - } - } - } - Walk(node, &inRange{}) - Walk(node, &filterMap{}) - Walk(node, &filterLen{}) - Walk(node, &filterLast{}) - Walk(node, &filterFirst{}) - Walk(node, &predicateCombination{}) - Walk(node, &sumArray{}) - Walk(node, &sumMap{}) - return nil -} - -var ( - boolType = reflect.TypeOf(true) - integerType = reflect.TypeOf(0) - floatType = reflect.TypeOf(float64(0)) - stringType = reflect.TypeOf("") -) - -func patchWithType(node *Node, newNode Node) { - switch n := newNode.(type) { - case *BoolNode: - newNode.SetType(boolType) - case *IntegerNode: - newNode.SetType(integerType) - case *FloatNode: - newNode.SetType(floatType) - case *StringNode: - newNode.SetType(stringType) - case *ConstantNode: - newNode.SetType(reflect.TypeOf(n.Value)) - case *BinaryNode: - newNode.SetType(n.Type()) - default: - panic(fmt.Sprintf("unknown type %T", newNode)) - } - Patch(node, newNode) -} - -func patchCopyType(node *Node, newNode Node) { - t := (*node).Type() - newNode.SetType(t) - Patch(node, newNode) -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/predicate_combination.go b/vendor/github.com/expr-lang/expr/optimizer/predicate_combination.go deleted file mode 100644 index 65f88e3..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/predicate_combination.go +++ /dev/null @@ -1,61 +0,0 @@ -package optimizer - -import ( - . "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/parser/operator" -) - -/* -predicateCombination is a visitor that combines multiple predicate calls into a single call. -For example, the following expression: - - all(x, x > 1) && all(x, x < 10) -> all(x, x > 1 && x < 10) - any(x, x > 1) || any(x, x < 10) -> any(x, x > 1 || x < 10) - none(x, x > 1) && none(x, x < 10) -> none(x, x > 1 || x < 10) -*/ -type predicateCombination struct{} - -func (v *predicateCombination) Visit(node *Node) { - if op, ok := (*node).(*BinaryNode); ok && operator.IsBoolean(op.Operator) { - if left, ok := op.Left.(*BuiltinNode); ok { - if combinedOp, ok := combinedOperator(left.Name, op.Operator); ok { - if right, ok := op.Right.(*BuiltinNode); ok && right.Name == left.Name { - if left.Arguments[0].Type() == right.Arguments[0].Type() && left.Arguments[0].String() == right.Arguments[0].String() { - predicate := &PredicateNode{ - Node: &BinaryNode{ - Operator: combinedOp, - Left: left.Arguments[1].(*PredicateNode).Node, - Right: right.Arguments[1].(*PredicateNode).Node, - }, - } - v.Visit(&predicate.Node) - patchCopyType(node, &BuiltinNode{ - Name: left.Name, - Arguments: []Node{ - left.Arguments[0], - predicate, - }, - }) - } - } - } - } - } -} - -func combinedOperator(fn, op string) (string, bool) { - switch { - case fn == "all" && (op == "and" || op == "&&"): - return op, true - case fn == "any" && (op == "or" || op == "||"): - return op, true - case fn == "none" && (op == "and" || op == "&&"): - switch op { - case "and": - return "or", true - case "&&": - return "||", true - } - } - return "", false -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/sum_array.go b/vendor/github.com/expr-lang/expr/optimizer/sum_array.go deleted file mode 100644 index 3c96795..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/sum_array.go +++ /dev/null @@ -1,37 +0,0 @@ -package optimizer - -import ( - "fmt" - - . "github.com/expr-lang/expr/ast" -) - -type sumArray struct{} - -func (*sumArray) Visit(node *Node) { - if sumBuiltin, ok := (*node).(*BuiltinNode); ok && - sumBuiltin.Name == "sum" && - len(sumBuiltin.Arguments) == 1 { - if array, ok := sumBuiltin.Arguments[0].(*ArrayNode); ok && - len(array.Nodes) >= 2 { - patchCopyType(node, sumArrayFold(array)) - } - } -} - -func sumArrayFold(array *ArrayNode) *BinaryNode { - if len(array.Nodes) > 2 { - return &BinaryNode{ - Operator: "+", - Left: array.Nodes[0], - Right: sumArrayFold(&ArrayNode{Nodes: array.Nodes[1:]}), - } - } else if len(array.Nodes) == 2 { - return &BinaryNode{ - Operator: "+", - Left: array.Nodes[0], - Right: array.Nodes[1], - } - } - panic(fmt.Errorf("sumArrayFold: invalid array length %d", len(array.Nodes))) -} diff --git a/vendor/github.com/expr-lang/expr/optimizer/sum_map.go b/vendor/github.com/expr-lang/expr/optimizer/sum_map.go deleted file mode 100644 index 6de97d3..0000000 --- a/vendor/github.com/expr-lang/expr/optimizer/sum_map.go +++ /dev/null @@ -1,25 +0,0 @@ -package optimizer - -import ( - . "github.com/expr-lang/expr/ast" -) - -type sumMap struct{} - -func (*sumMap) Visit(node *Node) { - if sumBuiltin, ok := (*node).(*BuiltinNode); ok && - sumBuiltin.Name == "sum" && - len(sumBuiltin.Arguments) == 1 { - if mapBuiltin, ok := sumBuiltin.Arguments[0].(*BuiltinNode); ok && - mapBuiltin.Name == "map" && - len(mapBuiltin.Arguments) == 2 { - patchCopyType(node, &BuiltinNode{ - Name: "sum", - Arguments: []Node{ - mapBuiltin.Arguments[0], - mapBuiltin.Arguments[1], - }, - }) - } - } -} diff --git a/vendor/github.com/expr-lang/expr/parser/lexer/lexer.go b/vendor/github.com/expr-lang/expr/parser/lexer/lexer.go deleted file mode 100644 index f417f02..0000000 --- a/vendor/github.com/expr-lang/expr/parser/lexer/lexer.go +++ /dev/null @@ -1,256 +0,0 @@ -package lexer - -import ( - "fmt" - "io" - "strings" - "unicode/utf8" - - "github.com/expr-lang/expr/file" - "github.com/expr-lang/expr/internal/ring" -) - -const ringChunkSize = 10 - -// Lex will buffer and return the tokens of a disposable *[Lexer]. -func Lex(source file.Source) ([]Token, error) { - tokens := make([]Token, 0, ringChunkSize) - l := New() - l.Reset(source) - for { - t, err := l.Next() - switch err { - case nil: - tokens = append(tokens, t) - case io.EOF: - return tokens, nil - default: - return nil, err - } - } -} - -// New returns a reusable lexer. -func New() *Lexer { - return &Lexer{ - tokens: ring.New[Token](ringChunkSize), - } -} - -type Lexer struct { - state stateFn - source file.Source - tokens *ring.Ring[Token] - err *file.Error - start, end struct { - byte, rune int - } - eof bool -} - -func (l *Lexer) Reset(source file.Source) { - l.source = source - l.tokens.Reset() - l.state = root -} - -func (l *Lexer) Next() (Token, error) { - for l.state != nil && l.err == nil && l.tokens.Len() == 0 { - l.state = l.state(l) - } - if l.err != nil { - return Token{}, l.err.Bind(l.source) - } - if t, ok := l.tokens.Dequeue(); ok { - return t, nil - } - return Token{}, io.EOF -} - -const eof rune = -1 - -func (l *Lexer) commit() { - l.start = l.end -} - -func (l *Lexer) next() rune { - if l.end.byte >= len(l.source.String()) { - l.eof = true - return eof - } - r, sz := utf8.DecodeRuneInString(l.source.String()[l.end.byte:]) - l.end.rune++ - l.end.byte += sz - return r -} - -func (l *Lexer) peek() rune { - if l.end.byte < len(l.source.String()) { - r, _ := utf8.DecodeRuneInString(l.source.String()[l.end.byte:]) - return r - } - return eof -} - -func (l *Lexer) peekByte() (byte, bool) { - if l.end.byte >= 0 && l.end.byte < len(l.source.String()) { - return l.source.String()[l.end.byte], true - } - return 0, false -} - -func (l *Lexer) backup() { - if l.eof { - l.eof = false - } else if l.end.rune > 0 { - _, sz := utf8.DecodeLastRuneInString(l.source.String()[:l.end.byte]) - l.end.byte -= sz - l.end.rune-- - } -} - -func (l *Lexer) emit(t Kind) { - l.emitValue(t, l.word()) -} - -func (l *Lexer) emitValue(t Kind, value string) { - l.tokens.Enqueue(Token{ - Location: file.Location{From: l.start.rune, To: l.end.rune}, - Kind: t, - Value: value, - }) - l.commit() -} - -func (l *Lexer) emitEOF() { - from := l.end.rune - 1 - if from < 0 { - from = 0 - } - to := l.end.rune - 0 - if to < 0 { - to = 0 - } - l.tokens.Enqueue(Token{ - Location: file.Location{From: from, To: to}, - Kind: EOF, - }) - l.commit() -} - -func (l *Lexer) skip() { - l.commit() -} - -func (l *Lexer) word() string { - return l.source.String()[l.start.byte:l.end.byte] -} - -func (l *Lexer) accept(valid string) bool { - if strings.ContainsRune(valid, l.peek()) { - l.next() - return true - } - return false -} - -func (l *Lexer) acceptRun(valid string) { - for l.accept(valid) { - } -} - -func (l *Lexer) skipSpaces() { - l.acceptRun(" ") - l.skip() -} - -func (l *Lexer) error(format string, args ...any) stateFn { - if l.err == nil { // show first error - end := l.end.rune - if l.eof { - end++ - } - l.err = &file.Error{ - Location: file.Location{ - From: end - 1, - To: end, - }, - Message: fmt.Sprintf(format, args...), - } - } - return nil -} - -func digitVal(ch rune) int { - switch { - case '0' <= ch && ch <= '9': - return int(ch - '0') - case 'a' <= lower(ch) && lower(ch) <= 'f': - return int(lower(ch) - 'a' + 10) - } - return 16 // larger than any legal digit val -} - -func lower(ch rune) rune { return ('a' - 'A') | ch } // returns lower-case ch iff ch is ASCII letter - -func (l *Lexer) scanDigits(ch rune, base, n int) rune { - for n > 0 && digitVal(ch) < base { - ch = l.next() - n-- - } - if n > 0 { - l.error("invalid char escape") - } - return ch -} - -func (l *Lexer) scanEscape(quote rune) rune { - ch := l.next() // read character after '/' - switch ch { - case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', quote: - // nothing to do - ch = l.next() - case '0', '1', '2', '3', '4', '5', '6', '7': - ch = l.scanDigits(ch, 8, 3) - case 'x': - ch = l.scanDigits(l.next(), 16, 2) - case 'u': - ch = l.scanDigits(l.next(), 16, 4) - case 'U': - ch = l.scanDigits(l.next(), 16, 8) - default: - l.error("invalid char escape") - } - return ch -} - -func (l *Lexer) scanString(quote rune) (n int) { - ch := l.next() // read character after quote - for ch != quote { - if ch == '\n' || ch == eof { - l.error("literal not terminated") - return - } - if ch == '\\' { - ch = l.scanEscape(quote) - } else { - ch = l.next() - } - n++ - } - return -} - -func (l *Lexer) scanRawString(quote rune) (n int) { - ch := l.next() // read character after back tick - for ch != quote { - if ch == eof { - l.error("literal not terminated") - return - } - ch = l.next() - n++ - } - l.emitValue(String, l.source.String()[l.start.byte+1:l.end.byte-1]) - return -} diff --git a/vendor/github.com/expr-lang/expr/parser/lexer/state.go b/vendor/github.com/expr-lang/expr/parser/lexer/state.go deleted file mode 100644 index e5ad45b..0000000 --- a/vendor/github.com/expr-lang/expr/parser/lexer/state.go +++ /dev/null @@ -1,226 +0,0 @@ -package lexer - -import ( - "strings" - - "github.com/expr-lang/expr/parser/utils" -) - -type stateFn func(*Lexer) stateFn - -func root(l *Lexer) stateFn { - switch r := l.next(); { - case r == eof: - l.emitEOF() - return nil - case utils.IsSpace(r): - l.skip() - return root - case r == '\'' || r == '"': - l.scanString(r) - str, err := unescape(l.word()) - if err != nil { - l.error("%v", err) - } - l.emitValue(String, str) - case r == '`': - l.scanRawString(r) - case '0' <= r && r <= '9': - l.backup() - return number - case r == '?': - return questionMark - case r == '/': - return slash - case r == '#': - return pointer - case r == '|': - l.accept("|") - l.emit(Operator) - case r == ':': - l.accept(":") - l.emit(Operator) - case strings.ContainsRune("([{", r): - l.emit(Bracket) - case strings.ContainsRune(")]}", r): - l.emit(Bracket) - case strings.ContainsRune(",;%+-^", r): // single rune operator - l.emit(Operator) - case strings.ContainsRune("&!=*<>", r): // possible double rune operator - l.accept("&=*") - l.emit(Operator) - case r == '.': - l.backup() - return dot - case utils.IsAlphaNumeric(r): - l.backup() - return identifier - default: - return l.error("unrecognized character: %#U", r) - } - return root -} - -func number(l *Lexer) stateFn { - if !l.scanNumber() { - return l.error("bad number syntax: %q", l.word()) - } - l.emit(Number) - return root -} - -func (l *Lexer) scanNumber() bool { - digits := "0123456789_" - // Is it hex? - if l.accept("0") { - // Note: Leading 0 does not mean octal in floats. - if l.accept("xX") { - digits = "0123456789abcdefABCDEF_" - } else if l.accept("oO") { - digits = "01234567_" - } else if l.accept("bB") { - digits = "01_" - } - } - l.acceptRun(digits) - end := l.end - if l.accept(".") { - // Lookup for .. operator: if after dot there is another dot (1..2), it maybe a range operator. - if l.peek() == '.' { - // We can't backup() here, as it would require two backups, - // and backup() func supports only one for now. So, save and - // restore it here. - l.end = end - return true - } - l.acceptRun(digits) - } - if l.accept("eE") { - l.accept("+-") - l.acceptRun(digits) - } - // Next thing mustn't be alphanumeric. - if utils.IsAlphaNumeric(l.peek()) { - l.next() - return false - } - return true -} - -func dot(l *Lexer) stateFn { - l.next() - if l.accept("0123456789") { - l.backup() - return number - } - l.accept(".") - l.emit(Operator) - return root -} - -func identifier(l *Lexer) stateFn { -loop: - for { - switch r := l.next(); { - case utils.IsAlphaNumeric(r): - // absorb - default: - l.backup() - switch l.word() { - case "not": - return not - case "in", "or", "and", "matches", "contains", "startsWith", "endsWith", "let", "if", "else": - l.emit(Operator) - default: - l.emit(Identifier) - } - break loop - } - } - return root -} - -func not(l *Lexer) stateFn { - l.emit(Operator) - - l.skipSpaces() - - end := l.end - - // Get the next word. - for { - r := l.next() - if utils.IsAlphaNumeric(r) { - // absorb - } else { - l.backup() - break - } - } - - switch l.word() { - case "in", "matches", "contains", "startsWith", "endsWith": - l.emit(Operator) - default: - l.end = end - } - return root -} - -func questionMark(l *Lexer) stateFn { - l.accept(".?") - l.emit(Operator) - return root -} - -func slash(l *Lexer) stateFn { - if l.accept("/") { - return singleLineComment - } - if l.accept("*") { - return multiLineComment - } - l.emit(Operator) - return root -} - -func singleLineComment(l *Lexer) stateFn { - for { - r := l.next() - if r == eof || r == '\n' { - break - } - } - l.skip() - return root -} - -func multiLineComment(l *Lexer) stateFn { - for { - r := l.next() - if r == eof { - return l.error("unclosed comment") - } - if r == '*' && l.accept("/") { - break - } - } - l.skip() - return root -} - -func pointer(l *Lexer) stateFn { - l.accept("#") - l.emit(Operator) - for { - switch r := l.next(); { - case utils.IsAlphaNumeric(r): // absorb - default: - l.backup() - if l.word() != "" { - l.emit(Identifier) - } - return root - } - } -} diff --git a/vendor/github.com/expr-lang/expr/parser/lexer/token.go b/vendor/github.com/expr-lang/expr/parser/lexer/token.go deleted file mode 100644 index c809c69..0000000 --- a/vendor/github.com/expr-lang/expr/parser/lexer/token.go +++ /dev/null @@ -1,43 +0,0 @@ -package lexer - -import ( - "fmt" - - "github.com/expr-lang/expr/file" -) - -type Kind string - -const ( - Identifier Kind = "Identifier" - Number Kind = "Number" - String Kind = "String" - Operator Kind = "Operator" - Bracket Kind = "Bracket" - EOF Kind = "EOF" -) - -type Token struct { - file.Location - Kind Kind - Value string -} - -func (t Token) String() string { - if t.Value == "" { - return string(t.Kind) - } - return fmt.Sprintf("%s(%#v)", t.Kind, t.Value) -} - -func (t Token) Is(kind Kind, values ...string) bool { - if kind != t.Kind { - return false - } - for _, v := range values { - if v == t.Value { - return true - } - } - return len(values) == 0 -} diff --git a/vendor/github.com/expr-lang/expr/parser/lexer/utils.go b/vendor/github.com/expr-lang/expr/parser/lexer/utils.go deleted file mode 100644 index fdb8bea..0000000 --- a/vendor/github.com/expr-lang/expr/parser/lexer/utils.go +++ /dev/null @@ -1,187 +0,0 @@ -package lexer - -import ( - "fmt" - "math" - "strings" - "unicode/utf8" -) - -var ( - newlineNormalizer = strings.NewReplacer("\r\n", "\n", "\r", "\n") -) - -// Unescape takes a quoted string, unquotes, and unescapes it. -func unescape(value string) (string, error) { - // All strings normalize newlines to the \n representation. - value = newlineNormalizer.Replace(value) - n := len(value) - - // Nothing to unescape / decode. - if n < 2 { - return value, fmt.Errorf("unable to unescape string") - } - - // Quoted string of some form, must have same first and last char. - if value[0] != value[n-1] || (value[0] != '"' && value[0] != '\'') { - return value, fmt.Errorf("unable to unescape string") - } - - value = value[1 : n-1] - - // The string contains escape characters. - // The following logic is adapted from `strconv/quote.go` - var runeTmp [utf8.UTFMax]byte - size := 3 * uint64(n) / 2 - if size >= math.MaxInt { - return "", fmt.Errorf("too large string") - } - buf := new(strings.Builder) - buf.Grow(int(size)) - for len(value) > 0 { - c, multibyte, rest, err := unescapeChar(value) - if err != nil { - return "", err - } - value = rest - if c < utf8.RuneSelf || !multibyte { - buf.WriteByte(byte(c)) - } else { - n := utf8.EncodeRune(runeTmp[:], c) - buf.Write(runeTmp[:n]) - } - } - return buf.String(), nil -} - -// unescapeChar takes a string input and returns the following info: -// -// value - the escaped unicode rune at the front of the string. -// multibyte - whether the rune value might require multiple bytes to represent. -// tail - the remainder of the input string. -// err - error value, if the character could not be unescaped. -// -// When multibyte is true the return value may still fit within a single byte, -// but a multibyte conversion is attempted which is more expensive than when the -// value is known to fit within one byte. -func unescapeChar(s string) (value rune, multibyte bool, tail string, err error) { - // 1. Character is not an escape sequence. - switch c := s[0]; { - case c >= utf8.RuneSelf: - r, size := utf8.DecodeRuneInString(s) - return r, true, s[size:], nil - case c != '\\': - return rune(s[0]), false, s[1:], nil - } - - // 2. Last character is the start of an escape sequence. - if len(s) <= 1 { - err = fmt.Errorf("unable to unescape string, found '\\' as last character") - return - } - - c := s[1] - s = s[2:] - // 3. Common escape sequences shared with Google SQL - switch c { - case 'a': - value = '\a' - case 'b': - value = '\b' - case 'f': - value = '\f' - case 'n': - value = '\n' - case 'r': - value = '\r' - case 't': - value = '\t' - case 'v': - value = '\v' - case '\\': - value = '\\' - case '\'': - value = '\'' - case '"': - value = '"' - case '`': - value = '`' - case '?': - value = '?' - - // 4. Unicode escape sequences, reproduced from `strconv/quote.go` - case 'x', 'X', 'u', 'U': - n := 0 - switch c { - case 'x', 'X': - n = 2 - case 'u': - n = 4 - case 'U': - n = 8 - } - var v rune - if len(s) < n { - err = fmt.Errorf("unable to unescape string") - return - } - for j := 0; j < n; j++ { - x, ok := unhex(s[j]) - if !ok { - err = fmt.Errorf("unable to unescape string") - return - } - v = v<<4 | x - } - s = s[n:] - if v > utf8.MaxRune { - err = fmt.Errorf("unable to unescape string") - return - } - value = v - multibyte = true - - // 5. Octal escape sequences, must be three digits \[0-3][0-7][0-7] - case '0', '1', '2', '3': - if len(s) < 2 { - err = fmt.Errorf("unable to unescape octal sequence in string") - return - } - v := rune(c - '0') - for j := 0; j < 2; j++ { - x := s[j] - if x < '0' || x > '7' { - err = fmt.Errorf("unable to unescape octal sequence in string") - return - } - v = v*8 + rune(x-'0') - } - if v > utf8.MaxRune { - err = fmt.Errorf("unable to unescape string") - return - } - value = v - s = s[2:] - multibyte = true - - // Unknown escape sequence. - default: - err = fmt.Errorf("unable to unescape string") - } - - tail = s - return -} - -func unhex(b byte) (rune, bool) { - c := rune(b) - switch { - case '0' <= c && c <= '9': - return c - '0', true - case 'a' <= c && c <= 'f': - return c - 'a' + 10, true - case 'A' <= c && c <= 'F': - return c - 'A' + 10, true - } - return 0, false -} diff --git a/vendor/github.com/expr-lang/expr/parser/operator/operator.go b/vendor/github.com/expr-lang/expr/parser/operator/operator.go deleted file mode 100644 index 4eeaf80..0000000 --- a/vendor/github.com/expr-lang/expr/parser/operator/operator.go +++ /dev/null @@ -1,69 +0,0 @@ -package operator - -type Associativity int - -const ( - Left Associativity = iota + 1 - Right -) - -type Operator struct { - Precedence int - Associativity Associativity -} - -func Less(a, b string) bool { - return Binary[a].Precedence < Binary[b].Precedence -} - -func IsBoolean(op string) bool { - return op == "and" || op == "or" || op == "&&" || op == "||" -} - -func AllowedNegateSuffix(op string) bool { - switch op { - case "contains", "matches", "startsWith", "endsWith", "in": - return true - default: - return false - } -} - -var Unary = map[string]Operator{ - "not": {50, Left}, - "!": {50, Left}, - "-": {90, Left}, - "+": {90, Left}, -} - -var Binary = map[string]Operator{ - "|": {0, Left}, - "or": {10, Left}, - "||": {10, Left}, - "and": {15, Left}, - "&&": {15, Left}, - "==": {20, Left}, - "!=": {20, Left}, - "<": {20, Left}, - ">": {20, Left}, - ">=": {20, Left}, - "<=": {20, Left}, - "in": {20, Left}, - "matches": {20, Left}, - "contains": {20, Left}, - "startsWith": {20, Left}, - "endsWith": {20, Left}, - "..": {25, Left}, - "+": {30, Left}, - "-": {30, Left}, - "*": {60, Left}, - "/": {60, Left}, - "%": {60, Left}, - "**": {100, Right}, - "^": {100, Right}, - "??": {500, Left}, -} - -func IsComparison(op string) bool { - return op == "<" || op == ">" || op == ">=" || op == "<=" -} diff --git a/vendor/github.com/expr-lang/expr/parser/parser.go b/vendor/github.com/expr-lang/expr/parser/parser.go deleted file mode 100644 index e1dd111..0000000 --- a/vendor/github.com/expr-lang/expr/parser/parser.go +++ /dev/null @@ -1,916 +0,0 @@ -package parser - -import ( - "errors" - "fmt" - "io" - "math" - "strconv" - "strings" - - . "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/builtin" - "github.com/expr-lang/expr/conf" - "github.com/expr-lang/expr/file" - "github.com/expr-lang/expr/parser/lexer" - . "github.com/expr-lang/expr/parser/lexer" - "github.com/expr-lang/expr/parser/operator" - "github.com/expr-lang/expr/parser/utils" -) - -type arg byte - -const ( - expr arg = 1 << iota - predicate -) - -const optional arg = 1 << 7 - -var predicates = map[string]struct { - args []arg -}{ - "all": {[]arg{expr, predicate}}, - "none": {[]arg{expr, predicate}}, - "any": {[]arg{expr, predicate}}, - "one": {[]arg{expr, predicate}}, - "filter": {[]arg{expr, predicate}}, - "map": {[]arg{expr, predicate}}, - "count": {[]arg{expr, predicate | optional}}, - "sum": {[]arg{expr, predicate | optional}}, - "find": {[]arg{expr, predicate}}, - "findIndex": {[]arg{expr, predicate}}, - "findLast": {[]arg{expr, predicate}}, - "findLastIndex": {[]arg{expr, predicate}}, - "groupBy": {[]arg{expr, predicate}}, - "sortBy": {[]arg{expr, predicate, expr | optional}}, - "reduce": {[]arg{expr, predicate, expr | optional}}, -} - -// Parser is a reusable parser. The zero value is ready for use. -type Parser struct { - lexer *lexer.Lexer - current, stashed Token - hasStash bool - err *file.Error - config *conf.Config - depth int // predicate call depth - nodeCount uint // tracks number of AST nodes created -} - -func (p *Parser) Parse(input string, config *conf.Config) (*Tree, error) { - if p.lexer == nil { - p.lexer = lexer.New() - } - p.config = config - source := file.NewSource(input) - p.lexer.Reset(source) - p.next() - node := p.parseSequenceExpression() - - if !p.current.Is(EOF) { - p.error("unexpected token %v", p.current) - } - - tree := &Tree{ - Node: node, - Source: source, - } - err := p.err - - // cleanup non-reusable pointer values and reset state - p.err = nil - p.config = nil - p.lexer.Reset(file.Source{}) - - if err != nil { - return tree, err.Bind(source) - } - - return tree, nil -} - -func (p *Parser) checkNodeLimit() error { - p.nodeCount++ - if p.config == nil { - if p.nodeCount > conf.DefaultMaxNodes { - p.error("compilation failed: expression exceeds maximum allowed nodes") - return nil - } - return nil - } - if p.config.MaxNodes > 0 && p.nodeCount > p.config.MaxNodes { - p.error("compilation failed: expression exceeds maximum allowed nodes") - return nil - } - return nil -} - -func (p *Parser) createNode(n Node, loc file.Location) Node { - if err := p.checkNodeLimit(); err != nil { - return nil - } - if n == nil || p.err != nil { - return nil - } - n.SetLocation(loc) - return n -} - -func (p *Parser) createMemberNode(n *MemberNode, loc file.Location) *MemberNode { - if err := p.checkNodeLimit(); err != nil { - return nil - } - if n == nil || p.err != nil { - return nil - } - n.SetLocation(loc) - return n -} - -type Tree struct { - Node Node - Source file.Source -} - -func Parse(input string) (*Tree, error) { - return ParseWithConfig(input, nil) -} - -func ParseWithConfig(input string, config *conf.Config) (*Tree, error) { - return new(Parser).Parse(input, config) -} - -func (p *Parser) error(format string, args ...any) { - p.errorAt(p.current, format, args...) -} - -func (p *Parser) errorAt(token Token, format string, args ...any) { - if p.err == nil { // show first error - p.err = &file.Error{ - Location: token.Location, - Message: fmt.Sprintf(format, args...), - } - } -} - -func (p *Parser) next() { - if p.hasStash { - p.current = p.stashed - p.hasStash = false - return - } - - token, err := p.lexer.Next() - var e *file.Error - switch { - case err == nil: - p.current = token - case errors.Is(err, io.EOF): - p.error("unexpected end of expression") - case errors.As(err, &e): - p.err = e - default: - p.err = &file.Error{ - Location: p.current.Location, - Message: "unknown lexing error", - Prev: err, - } - } -} - -func (p *Parser) expect(kind Kind, values ...string) { - if p.current.Is(kind, values...) { - p.next() - return - } - p.error("unexpected token %v", p.current) -} - -// parse functions - -func (p *Parser) parseSequenceExpression() Node { - nodes := []Node{p.parseExpression(0)} - - for p.current.Is(Operator, ";") && p.err == nil { - p.next() - // If a trailing semicolon is present, break out. - if p.current.Is(EOF) { - break - } - nodes = append(nodes, p.parseExpression(0)) - } - - if len(nodes) == 1 { - return nodes[0] - } - - return p.createNode(&SequenceNode{ - Nodes: nodes, - }, nodes[0].Location()) -} - -func (p *Parser) parseExpression(precedence int) Node { - if p.err != nil { - return nil - } - - if precedence == 0 && p.current.Is(Operator, "let") { - return p.parseVariableDeclaration() - } - - if precedence == 0 && p.current.Is(Operator, "if") { - return p.parseConditionalIf() - } - - nodeLeft := p.parsePrimary() - - prevOperator := "" - opToken := p.current - for opToken.Is(Operator) && p.err == nil { - negate := opToken.Is(Operator, "not") - var notToken Token - - // Handle "not *" operator, like "not in" or "not contains". - if negate { - tokenBackup := p.current - p.next() - if operator.AllowedNegateSuffix(p.current.Value) { - if op, ok := operator.Binary[p.current.Value]; ok && op.Precedence >= precedence { - notToken = p.current - opToken = p.current - } else { - p.hasStash = true - p.stashed = p.current - p.current = tokenBackup - break - } - } else { - p.error("unexpected token %v", p.current) - break - } - } - - if op, ok := operator.Binary[opToken.Value]; ok && op.Precedence >= precedence { - p.next() - - if opToken.Value == "|" { - identToken := p.current - p.expect(Identifier) - nodeLeft = p.parseCall(identToken, []Node{nodeLeft}, true) - goto next - } - - if prevOperator == "??" && opToken.Value != "??" && !opToken.Is(Bracket, "(") { - p.errorAt(opToken, "Operator (%v) and coalesce expressions (??) cannot be mixed. Wrap either by parentheses.", opToken.Value) - break - } - - if operator.IsComparison(opToken.Value) { - nodeLeft = p.parseComparison(nodeLeft, opToken, op.Precedence) - goto next - } - - var nodeRight Node - if op.Associativity == operator.Left { - nodeRight = p.parseExpression(op.Precedence + 1) - } else { - nodeRight = p.parseExpression(op.Precedence) - } - - nodeLeft = p.createNode(&BinaryNode{ - Operator: opToken.Value, - Left: nodeLeft, - Right: nodeRight, - }, opToken.Location) - if nodeLeft == nil { - return nil - } - - if negate { - nodeLeft = p.createNode(&UnaryNode{ - Operator: "not", - Node: nodeLeft, - }, notToken.Location) - if nodeLeft == nil { - return nil - } - } - - goto next - } - break - - next: - prevOperator = opToken.Value - opToken = p.current - } - - if precedence == 0 { - nodeLeft = p.parseConditional(nodeLeft) - } - - return nodeLeft -} - -func (p *Parser) parseVariableDeclaration() Node { - p.expect(Operator, "let") - variableName := p.current - p.expect(Identifier) - p.expect(Operator, "=") - value := p.parseExpression(0) - p.expect(Operator, ";") - node := p.parseSequenceExpression() - return p.createNode(&VariableDeclaratorNode{ - Name: variableName.Value, - Value: value, - Expr: node, - }, variableName.Location) -} - -func (p *Parser) parseConditionalIf() Node { - p.next() - nodeCondition := p.parseExpression(0) - p.expect(Bracket, "{") - expr1 := p.parseSequenceExpression() - p.expect(Bracket, "}") - p.expect(Operator, "else") - p.expect(Bracket, "{") - expr2 := p.parseSequenceExpression() - p.expect(Bracket, "}") - - return &ConditionalNode{ - Cond: nodeCondition, - Exp1: expr1, - Exp2: expr2, - } - -} - -func (p *Parser) parseConditional(node Node) Node { - var expr1, expr2 Node - for p.current.Is(Operator, "?") && p.err == nil { - p.next() - - if !p.current.Is(Operator, ":") { - expr1 = p.parseExpression(0) - p.expect(Operator, ":") - expr2 = p.parseExpression(0) - } else { - p.next() - expr1 = node - expr2 = p.parseExpression(0) - } - - node = p.createNode(&ConditionalNode{ - Cond: node, - Exp1: expr1, - Exp2: expr2, - }, p.current.Location) - if node == nil { - return nil - } - } - return node -} - -func (p *Parser) parsePrimary() Node { - token := p.current - - if token.Is(Operator) { - if op, ok := operator.Unary[token.Value]; ok { - p.next() - expr := p.parseExpression(op.Precedence) - node := p.createNode(&UnaryNode{ - Operator: token.Value, - Node: expr, - }, token.Location) - if node == nil { - return nil - } - return p.parsePostfixExpression(node) - } - } - - if token.Is(Bracket, "(") { - p.next() - expr := p.parseSequenceExpression() - p.expect(Bracket, ")") // "an opened parenthesis is not properly closed" - return p.parsePostfixExpression(expr) - } - - if p.depth > 0 { - if token.Is(Operator, "#") || token.Is(Operator, ".") { - name := "" - if token.Is(Operator, "#") { - p.next() - if p.current.Is(Identifier) { - name = p.current.Value - p.next() - } - } - node := p.createNode(&PointerNode{Name: name}, token.Location) - if node == nil { - return nil - } - return p.parsePostfixExpression(node) - } - } - - if token.Is(Operator, "::") { - p.next() - token = p.current - p.expect(Identifier) - return p.parsePostfixExpression(p.parseCall(token, []Node{}, false)) - } - - return p.parseSecondary() -} - -func (p *Parser) parseSecondary() Node { - var node Node - token := p.current - - switch token.Kind { - - case Identifier: - p.next() - switch token.Value { - case "true": - node = p.createNode(&BoolNode{Value: true}, token.Location) - if node == nil { - return nil - } - return node - case "false": - node = p.createNode(&BoolNode{Value: false}, token.Location) - if node == nil { - return nil - } - return node - case "nil": - node = p.createNode(&NilNode{}, token.Location) - if node == nil { - return nil - } - return node - default: - if p.current.Is(Bracket, "(") { - node = p.parseCall(token, []Node{}, true) - } else { - node = p.createNode(&IdentifierNode{Value: token.Value}, token.Location) - if node == nil { - return nil - } - } - } - - case Number: - p.next() - value := strings.Replace(token.Value, "_", "", -1) - var node Node - valueLower := strings.ToLower(value) - switch { - case strings.HasPrefix(valueLower, "0x"): - number, err := strconv.ParseInt(value, 0, 64) - if err != nil { - p.error("invalid hex literal: %v", err) - } - node = p.toIntegerNode(number) - case strings.ContainsAny(valueLower, ".e"): - number, err := strconv.ParseFloat(value, 64) - if err != nil { - p.error("invalid float literal: %v", err) - } - node = p.toFloatNode(number) - case strings.HasPrefix(valueLower, "0b"): - number, err := strconv.ParseInt(value, 0, 64) - if err != nil { - p.error("invalid binary literal: %v", err) - } - node = p.toIntegerNode(number) - case strings.HasPrefix(valueLower, "0o"): - number, err := strconv.ParseInt(value, 0, 64) - if err != nil { - p.error("invalid octal literal: %v", err) - } - node = p.toIntegerNode(number) - default: - number, err := strconv.ParseInt(value, 10, 64) - if err != nil { - p.error("invalid integer literal: %v", err) - } - node = p.toIntegerNode(number) - } - if node != nil { - node.SetLocation(token.Location) - } - return node - case String: - p.next() - node = p.createNode(&StringNode{Value: token.Value}, token.Location) - if node == nil { - return nil - } - - default: - if token.Is(Bracket, "[") { - node = p.parseArrayExpression(token) - } else if token.Is(Bracket, "{") { - node = p.parseMapExpression(token) - } else { - p.error("unexpected token %v", token) - } - } - - return p.parsePostfixExpression(node) -} - -func (p *Parser) toIntegerNode(number int64) Node { - if number > math.MaxInt { - p.error("integer literal is too large") - return nil - } - return p.createNode(&IntegerNode{Value: int(number)}, p.current.Location) -} - -func (p *Parser) toFloatNode(number float64) Node { - if number > math.MaxFloat64 { - p.error("float literal is too large") - return nil - } - return p.createNode(&FloatNode{Value: number}, p.current.Location) -} - -func (p *Parser) parseCall(token Token, arguments []Node, checkOverrides bool) Node { - var node Node - - isOverridden := false - if p.config != nil { - isOverridden = p.config.IsOverridden(token.Value) - } - isOverridden = isOverridden && checkOverrides - - if b, ok := predicates[token.Value]; ok && !isOverridden { - p.expect(Bracket, "(") - - // In case of the pipe operator, the first argument is the left-hand side - // of the operator, so we do not parse it as an argument inside brackets. - args := b.args[len(arguments):] - - for i, arg := range args { - if arg&optional == optional { - if p.current.Is(Bracket, ")") { - break - } - } else { - if p.current.Is(Bracket, ")") { - p.error("expected at least %d arguments", len(args)) - } - } - - if i > 0 { - p.expect(Operator, ",") - } - var node Node - switch { - case arg&expr == expr: - node = p.parseExpression(0) - case arg&predicate == predicate: - node = p.parsePredicate() - } - arguments = append(arguments, node) - } - - // skip last comma - if p.current.Is(Operator, ",") { - p.next() - } - p.expect(Bracket, ")") - - node = p.createNode(&BuiltinNode{ - Name: token.Value, - Arguments: arguments, - }, token.Location) - if node == nil { - return nil - } - } else if _, ok := builtin.Index[token.Value]; ok && (p.config == nil || !p.config.Disabled[token.Value]) && !isOverridden { - node = p.createNode(&BuiltinNode{ - Name: token.Value, - Arguments: p.parseArguments(arguments), - }, token.Location) - if node == nil { - return nil - } - - } else { - callee := p.createNode(&IdentifierNode{Value: token.Value}, token.Location) - if callee == nil { - return nil - } - node = p.createNode(&CallNode{ - Callee: callee, - Arguments: p.parseArguments(arguments), - }, token.Location) - if node == nil { - return nil - } - } - return node -} - -func (p *Parser) parseArguments(arguments []Node) []Node { - // If pipe operator is used, the first argument is the left-hand side - // of the operator, so we do not parse it as an argument inside brackets. - offset := len(arguments) - - p.expect(Bracket, "(") - for !p.current.Is(Bracket, ")") && p.err == nil { - if len(arguments) > offset { - p.expect(Operator, ",") - } - if p.current.Is(Bracket, ")") { - break - } - node := p.parseExpression(0) - arguments = append(arguments, node) - } - p.expect(Bracket, ")") - - return arguments -} - -func (p *Parser) parsePredicate() Node { - startToken := p.current - withBrackets := false - if p.current.Is(Bracket, "{") { - p.next() - withBrackets = true - } - - p.depth++ - var node Node - if withBrackets { - node = p.parseSequenceExpression() - } else { - node = p.parseExpression(0) - if p.current.Is(Operator, ";") { - p.error("wrap predicate with brackets { and }") - } - } - p.depth-- - - if withBrackets { - p.expect(Bracket, "}") - } - predicateNode := p.createNode(&PredicateNode{ - Node: node, - }, startToken.Location) - if predicateNode == nil { - return nil - } - return predicateNode -} - -func (p *Parser) parseArrayExpression(token Token) Node { - nodes := make([]Node, 0) - - p.expect(Bracket, "[") - for !p.current.Is(Bracket, "]") && p.err == nil { - if len(nodes) > 0 { - p.expect(Operator, ",") - if p.current.Is(Bracket, "]") { - goto end - } - } - node := p.parseExpression(0) - nodes = append(nodes, node) - } -end: - p.expect(Bracket, "]") - - node := p.createNode(&ArrayNode{Nodes: nodes}, token.Location) - if node == nil { - return nil - } - return node -} - -func (p *Parser) parseMapExpression(token Token) Node { - p.expect(Bracket, "{") - - nodes := make([]Node, 0) - for !p.current.Is(Bracket, "}") && p.err == nil { - if len(nodes) > 0 { - p.expect(Operator, ",") - if p.current.Is(Bracket, "}") { - goto end - } - if p.current.Is(Operator, ",") { - p.error("unexpected token %v", p.current) - } - } - - var key Node - // Map key can be one of: - // * number - // * string - // * identifier, which is equivalent to a string - // * expression, which must be enclosed in parentheses -- (1 + 2) - if p.current.Is(Number) || p.current.Is(String) || p.current.Is(Identifier) { - key = p.createNode(&StringNode{Value: p.current.Value}, p.current.Location) - if key == nil { - return nil - } - p.next() - } else if p.current.Is(Bracket, "(") { - key = p.parseExpression(0) - } else { - p.error("a map key must be a quoted string, a number, a identifier, or an expression enclosed in parentheses (unexpected token %v)", p.current) - } - - p.expect(Operator, ":") - - node := p.parseExpression(0) - pair := p.createNode(&PairNode{Key: key, Value: node}, token.Location) - if pair == nil { - return nil - } - nodes = append(nodes, pair) - } - -end: - p.expect(Bracket, "}") - - node := p.createNode(&MapNode{Pairs: nodes}, token.Location) - if node == nil { - return nil - } - return node -} - -func (p *Parser) parsePostfixExpression(node Node) Node { - postfixToken := p.current - for (postfixToken.Is(Operator) || postfixToken.Is(Bracket)) && p.err == nil { - optional := postfixToken.Value == "?." - parseToken: - if postfixToken.Value == "." || postfixToken.Value == "?." { - p.next() - - propertyToken := p.current - if optional && propertyToken.Is(Bracket, "[") { - postfixToken = propertyToken - goto parseToken - } - p.next() - - if propertyToken.Kind != Identifier && - // Operators like "not" and "matches" are valid methods or property names. - (propertyToken.Kind != Operator || !utils.IsValidIdentifier(propertyToken.Value)) { - p.error("expected name") - } - - property := p.createNode(&StringNode{Value: propertyToken.Value}, propertyToken.Location) - if property == nil { - return nil - } - - chainNode, isChain := node.(*ChainNode) - optional := postfixToken.Value == "?." - - if isChain { - node = chainNode.Node - } - - memberNode := p.createMemberNode(&MemberNode{ - Node: node, - Property: property, - Optional: optional, - }, propertyToken.Location) - if memberNode == nil { - return nil - } - - if p.current.Is(Bracket, "(") { - memberNode.Method = true - node = p.createNode(&CallNode{ - Callee: memberNode, - Arguments: p.parseArguments([]Node{}), - }, propertyToken.Location) - if node == nil { - return nil - } - } else { - node = memberNode - } - - if isChain || optional { - node = p.createNode(&ChainNode{Node: node}, propertyToken.Location) - if node == nil { - return nil - } - } - - } else if postfixToken.Value == "[" { - p.next() - var from, to Node - - if p.current.Is(Operator, ":") { // slice without from [:1] - p.next() - - if !p.current.Is(Bracket, "]") { // slice without from and to [:] - to = p.parseExpression(0) - } - - node = p.createNode(&SliceNode{ - Node: node, - To: to, - }, postfixToken.Location) - if node == nil { - return nil - } - p.expect(Bracket, "]") - - } else { - - from = p.parseExpression(0) - - if p.current.Is(Operator, ":") { - p.next() - - if !p.current.Is(Bracket, "]") { // slice without to [1:] - to = p.parseExpression(0) - } - - node = p.createNode(&SliceNode{ - Node: node, - From: from, - To: to, - }, postfixToken.Location) - if node == nil { - return nil - } - p.expect(Bracket, "]") - - } else { - // Slice operator [:] was not found, - // it should be just an index node. - node = p.createNode(&MemberNode{ - Node: node, - Property: from, - Optional: optional, - }, postfixToken.Location) - if node == nil { - return nil - } - if optional { - node = p.createNode(&ChainNode{Node: node}, postfixToken.Location) - if node == nil { - return nil - } - } - p.expect(Bracket, "]") - } - } - } else { - break - } - postfixToken = p.current - } - return node -} -func (p *Parser) parseComparison(left Node, token Token, precedence int) Node { - var rootNode Node - for { - comparator := p.parseExpression(precedence + 1) - cmpNode := p.createNode(&BinaryNode{ - Operator: token.Value, - Left: left, - Right: comparator, - }, token.Location) - if cmpNode == nil { - return nil - } - if rootNode == nil { - rootNode = cmpNode - } else { - rootNode = p.createNode(&BinaryNode{ - Operator: "&&", - Left: rootNode, - Right: cmpNode, - }, token.Location) - if rootNode == nil { - return nil - } - } - - left = comparator - token = p.current - if !(token.Is(Operator) && operator.IsComparison(token.Value) && p.err == nil) { - break - } - p.next() - } - return rootNode -} diff --git a/vendor/github.com/expr-lang/expr/parser/utils/utils.go b/vendor/github.com/expr-lang/expr/parser/utils/utils.go deleted file mode 100644 index 947f9a4..0000000 --- a/vendor/github.com/expr-lang/expr/parser/utils/utils.go +++ /dev/null @@ -1,34 +0,0 @@ -package utils - -import ( - "unicode" - "unicode/utf8" -) - -func IsValidIdentifier(str string) bool { - if len(str) == 0 { - return false - } - h, w := utf8.DecodeRuneInString(str) - if !IsAlphabetic(h) { - return false - } - for _, r := range str[w:] { - if !IsAlphaNumeric(r) { - return false - } - } - return true -} - -func IsSpace(r rune) bool { - return unicode.IsSpace(r) -} - -func IsAlphaNumeric(r rune) bool { - return IsAlphabetic(r) || unicode.IsDigit(r) -} - -func IsAlphabetic(r rune) bool { - return r == '_' || r == '$' || unicode.IsLetter(r) -} diff --git a/vendor/github.com/expr-lang/expr/patcher/operator_override.go b/vendor/github.com/expr-lang/expr/patcher/operator_override.go deleted file mode 100644 index 308cbdb..0000000 --- a/vendor/github.com/expr-lang/expr/patcher/operator_override.go +++ /dev/null @@ -1,147 +0,0 @@ -package patcher - -import ( - "fmt" - "reflect" - - "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/builtin" - "github.com/expr-lang/expr/checker/nature" - "github.com/expr-lang/expr/conf" -) - -type OperatorOverloading struct { - Operator string // Operator token to overload. - Overloads []string // List of function names to replace operator with. - Env *nature.Nature // Env type. - Functions conf.FunctionsTable // Env functions. - applied bool // Flag to indicate if any changes were made to the tree. -} - -func (p *OperatorOverloading) Visit(node *ast.Node) { - binaryNode, ok := (*node).(*ast.BinaryNode) - if !ok { - return - } - - if binaryNode.Operator != p.Operator { - return - } - - leftType := binaryNode.Left.Type() - rightType := binaryNode.Right.Type() - - ret, fn, ok := p.FindSuitableOperatorOverload(leftType, rightType) - if ok { - newNode := &ast.CallNode{ - Callee: &ast.IdentifierNode{Value: fn}, - Arguments: []ast.Node{binaryNode.Left, binaryNode.Right}, - } - newNode.SetType(ret) - ast.Patch(node, newNode) - p.applied = true - } -} - -// Tracking must be reset before every walk over the AST tree -func (p *OperatorOverloading) Reset() { - p.applied = false -} - -func (p *OperatorOverloading) ShouldRepeat() bool { - return p.applied -} - -func (p *OperatorOverloading) FindSuitableOperatorOverload(l, r reflect.Type) (reflect.Type, string, bool) { - t, fn, ok := p.findSuitableOperatorOverloadInFunctions(l, r) - if !ok { - t, fn, ok = p.findSuitableOperatorOverloadInTypes(l, r) - } - return t, fn, ok -} - -func (p *OperatorOverloading) findSuitableOperatorOverloadInTypes(l, r reflect.Type) (reflect.Type, string, bool) { - for _, fn := range p.Overloads { - fnType, ok := p.Env.Get(fn) - if !ok { - continue - } - firstInIndex := 0 - if fnType.Method { - firstInIndex = 1 // As first argument to method is receiver. - } - ret, done := checkTypeSuits(fnType.Type, l, r, firstInIndex) - if done { - return ret, fn, true - } - } - return nil, "", false -} - -func (p *OperatorOverloading) findSuitableOperatorOverloadInFunctions(l, r reflect.Type) (reflect.Type, string, bool) { - for _, fn := range p.Overloads { - fnType, ok := p.Functions[fn] - if !ok { - continue - } - firstInIndex := 0 - for _, overload := range fnType.Types { - ret, done := checkTypeSuits(overload, l, r, firstInIndex) - if done { - return ret, fn, true - } - } - } - return nil, "", false -} - -func checkTypeSuits(t reflect.Type, l reflect.Type, r reflect.Type, firstInIndex int) (reflect.Type, bool) { - firstArgType := t.In(firstInIndex) - secondArgType := t.In(firstInIndex + 1) - - firstArgumentFit := l == firstArgType || (firstArgType.Kind() == reflect.Interface && (l == nil || l.Implements(firstArgType))) - secondArgumentFit := r == secondArgType || (secondArgType.Kind() == reflect.Interface && (r == nil || r.Implements(secondArgType))) - if firstArgumentFit && secondArgumentFit { - return t.Out(0), true - } - return nil, false -} - -func (p *OperatorOverloading) Check() { - for _, fn := range p.Overloads { - fnType, foundType := p.Env.Get(fn) - fnFunc, foundFunc := p.Functions[fn] - if !foundFunc && (!foundType || fnType.Type.Kind() != reflect.Func) { - panic(fmt.Errorf("function %s for %s operator does not exist in the environment", fn, p.Operator)) - } - - if foundType { - checkType(fnType, fn, p.Operator) - } - - if foundFunc { - checkFunc(fnFunc, fn, p.Operator) - } - } -} - -func checkType(fnType nature.Nature, fn string, operator string) { - requiredNumIn := 2 - if fnType.Method { - requiredNumIn = 3 // As first argument of method is receiver. - } - if fnType.Type.NumIn() != requiredNumIn || fnType.Type.NumOut() != 1 { - panic(fmt.Errorf("function %s for %s operator does not have a correct signature", fn, operator)) - } -} - -func checkFunc(fn *builtin.Function, name string, operator string) { - if len(fn.Types) == 0 { - panic(fmt.Errorf("function %q for %q operator misses types", name, operator)) - } - for _, t := range fn.Types { - if t.NumIn() != 2 || t.NumOut() != 1 { - panic(fmt.Errorf("function %q for %q operator does not have a correct signature", name, operator)) - } - } -} diff --git a/vendor/github.com/expr-lang/expr/patcher/with_context.go b/vendor/github.com/expr-lang/expr/patcher/with_context.go deleted file mode 100644 index f9861a2..0000000 --- a/vendor/github.com/expr-lang/expr/patcher/with_context.go +++ /dev/null @@ -1,45 +0,0 @@ -package patcher - -import ( - "reflect" - - "github.com/expr-lang/expr/ast" -) - -// WithContext adds WithContext.Name argument to all functions calls with a context.Context argument. -type WithContext struct { - Name string -} - -// Visit adds WithContext.Name argument to all functions calls with a context.Context argument. -func (w WithContext) Visit(node *ast.Node) { - switch call := (*node).(type) { - case *ast.CallNode: - fn := call.Callee.Type() - if fn == nil { - return - } - if fn.Kind() != reflect.Func { - return - } - switch fn.NumIn() { - case 0: - return - case 1: - if fn.In(0).String() != "context.Context" { - return - } - default: - if fn.In(0).String() != "context.Context" && - fn.In(1).String() != "context.Context" { - return - } - } - ast.Patch(node, &ast.CallNode{ - Callee: call.Callee, - Arguments: append([]ast.Node{ - &ast.IdentifierNode{Value: w.Name}, - }, call.Arguments...), - }) - } -} diff --git a/vendor/github.com/expr-lang/expr/patcher/with_timezone.go b/vendor/github.com/expr-lang/expr/patcher/with_timezone.go deleted file mode 100644 index 83eb28e..0000000 --- a/vendor/github.com/expr-lang/expr/patcher/with_timezone.go +++ /dev/null @@ -1,25 +0,0 @@ -package patcher - -import ( - "time" - - "github.com/expr-lang/expr/ast" -) - -// WithTimezone passes Location to date() and now() functions. -type WithTimezone struct { - Location *time.Location -} - -func (t WithTimezone) Visit(node *ast.Node) { - if btin, ok := (*node).(*ast.BuiltinNode); ok { - switch btin.Name { - case "date", "now": - loc := &ast.ConstantNode{Value: t.Location} - ast.Patch(node, &ast.BuiltinNode{ - Name: btin.Name, - Arguments: append([]ast.Node{loc}, btin.Arguments...), - }) - } - } -} diff --git a/vendor/github.com/expr-lang/expr/types/types.go b/vendor/github.com/expr-lang/expr/types/types.go deleted file mode 100644 index bb1cbe5..0000000 --- a/vendor/github.com/expr-lang/expr/types/types.go +++ /dev/null @@ -1,181 +0,0 @@ -package types - -import ( - "fmt" - "reflect" - "strings" - - . "github.com/expr-lang/expr/checker/nature" -) - -// Type is a type that can be used to represent a value. -type Type interface { - Nature() Nature - Equal(Type) bool - String() string -} - -var ( - Int = TypeOf(0) - Int8 = TypeOf(int8(0)) - Int16 = TypeOf(int16(0)) - Int32 = TypeOf(int32(0)) - Int64 = TypeOf(int64(0)) - Uint = TypeOf(uint(0)) - Uint8 = TypeOf(uint8(0)) - Uint16 = TypeOf(uint16(0)) - Uint32 = TypeOf(uint32(0)) - Uint64 = TypeOf(uint64(0)) - Float = TypeOf(float32(0)) - Float64 = TypeOf(float64(0)) - String = TypeOf("") - Bool = TypeOf(true) - Nil = nilType{} - Any = anyType{} -) - -func TypeOf(v any) Type { - if v == nil { - return Nil - } - return rtype{t: reflect.TypeOf(v)} -} - -type anyType struct{} - -func (anyType) Nature() Nature { - return Nature{Type: nil} -} - -func (anyType) Equal(t Type) bool { - return true -} - -func (anyType) String() string { - return "any" -} - -type nilType struct{} - -func (nilType) Nature() Nature { - return Nature{Nil: true} -} - -func (nilType) Equal(t Type) bool { - if t == Any { - return true - } - return t == Nil -} - -func (nilType) String() string { - return "nil" -} - -type rtype struct { - t reflect.Type -} - -func (r rtype) Nature() Nature { - return Nature{Type: r.t} -} - -func (r rtype) Equal(t Type) bool { - if t == Any { - return true - } - if rt, ok := t.(rtype); ok { - return r.t.String() == rt.t.String() - } - return false -} - -func (r rtype) String() string { - return r.t.String() -} - -// Map represents a map[string]any type with defined keys. -type Map map[string]Type - -const Extra = "[[__extra_keys__]]" - -func (m Map) Nature() Nature { - nt := Nature{ - Type: reflect.TypeOf(map[string]any{}), - Fields: make(map[string]Nature, len(m)), - Strict: true, - } - for k, v := range m { - if k == Extra { - nt.Strict = false - natureOfDefaultValue := v.Nature() - nt.DefaultMapValue = &natureOfDefaultValue - continue - } - nt.Fields[k] = v.Nature() - } - return nt -} - -func (m Map) Equal(t Type) bool { - if t == Any { - return true - } - mt, ok := t.(Map) - if !ok { - return false - } - if len(m) != len(mt) { - return false - } - for k, v := range m { - if !v.Equal(mt[k]) { - return false - } - } - return true -} - -func (m Map) String() string { - pairs := make([]string, 0, len(m)) - for k, v := range m { - pairs = append(pairs, fmt.Sprintf("%s: %s", k, v.String())) - } - return fmt.Sprintf("Map{%s}", strings.Join(pairs, ", ")) -} - -// Array returns a type that represents an array of the given type. -func Array(of Type) Type { - return array{of} -} - -type array struct { - of Type -} - -func (a array) Nature() Nature { - of := a.of.Nature() - return Nature{ - Type: reflect.TypeOf([]any{}), - Fields: make(map[string]Nature, 1), - ArrayOf: &of, - } -} - -func (a array) Equal(t Type) bool { - if t == Any { - return true - } - at, ok := t.(array) - if !ok { - return false - } - if a.of.Equal(at.of) { - return true - } - return false -} - -func (a array) String() string { - return fmt.Sprintf("Array{%s}", a.of.String()) -} diff --git a/vendor/github.com/expr-lang/expr/vm/debug.go b/vendor/github.com/expr-lang/expr/vm/debug.go deleted file mode 100644 index 470bf90..0000000 --- a/vendor/github.com/expr-lang/expr/vm/debug.go +++ /dev/null @@ -1,6 +0,0 @@ -//go:build expr_debug -// +build expr_debug - -package vm - -const debug = true diff --git a/vendor/github.com/expr-lang/expr/vm/debug_off.go b/vendor/github.com/expr-lang/expr/vm/debug_off.go deleted file mode 100644 index 8a9e965..0000000 --- a/vendor/github.com/expr-lang/expr/vm/debug_off.go +++ /dev/null @@ -1,6 +0,0 @@ -//go:build !expr_debug -// +build !expr_debug - -package vm - -const debug = false diff --git a/vendor/github.com/expr-lang/expr/vm/func_types[generated].go b/vendor/github.com/expr-lang/expr/vm/func_types[generated].go deleted file mode 100644 index 610b415..0000000 --- a/vendor/github.com/expr-lang/expr/vm/func_types[generated].go +++ /dev/null @@ -1,370 +0,0 @@ -// Code generated by vm/func_types/main.go. DO NOT EDIT. - -package vm - -import ( - "fmt" - "time" -) - -var FuncTypes = []any{ - 1: new(func() time.Duration), - 2: new(func() time.Month), - 3: new(func() time.Time), - 4: new(func() time.Weekday), - 5: new(func() []interface{}), - 6: new(func() []uint8), - 7: new(func() interface{}), - 8: new(func() bool), - 9: new(func() uint8), - 10: new(func() float32), - 11: new(func() float64), - 12: new(func() int), - 13: new(func() int16), - 14: new(func() int32), - 15: new(func() int64), - 16: new(func() int8), - 17: new(func() map[string]interface{}), - 18: new(func() int32), - 19: new(func() string), - 20: new(func() uint), - 21: new(func() uint16), - 22: new(func() uint32), - 23: new(func() uint64), - 24: new(func() uint8), - 25: new(func(time.Duration) time.Duration), - 26: new(func(time.Duration) time.Time), - 27: new(func(time.Time) time.Duration), - 28: new(func(time.Time) bool), - 29: new(func([]interface{}) []interface{}), - 30: new(func([]interface{}) interface{}), - 31: new(func([]interface{}) map[string]interface{}), - 32: new(func([]interface{}, string) string), - 33: new(func([]uint8) string), - 34: new(func([]string, string) string), - 35: new(func(interface{}) []interface{}), - 36: new(func(interface{}) interface{}), - 37: new(func(interface{}) bool), - 38: new(func(interface{}) float64), - 39: new(func(interface{}) int), - 40: new(func(interface{}) map[string]interface{}), - 41: new(func(interface{}) string), - 42: new(func(interface{}, interface{}) []interface{}), - 43: new(func(interface{}, interface{}) interface{}), - 44: new(func(interface{}, interface{}) bool), - 45: new(func(interface{}, interface{}) string), - 46: new(func(bool) bool), - 47: new(func(bool) float64), - 48: new(func(bool) int), - 49: new(func(bool) string), - 50: new(func(bool, bool) bool), - 51: new(func(float32) float64), - 52: new(func(float64) bool), - 53: new(func(float64) float32), - 54: new(func(float64) float64), - 55: new(func(float64) int), - 56: new(func(float64) string), - 57: new(func(float64, float64) bool), - 58: new(func(int) bool), - 59: new(func(int) float64), - 60: new(func(int) int), - 61: new(func(int) string), - 62: new(func(int, int) bool), - 63: new(func(int, int) int), - 64: new(func(int, int) string), - 65: new(func(int16) int32), - 66: new(func(int32) float64), - 67: new(func(int32) int), - 68: new(func(int32) int64), - 69: new(func(int64) time.Time), - 70: new(func(int8) int), - 71: new(func(int8) int16), - 72: new(func(string) []uint8), - 73: new(func(string) []string), - 74: new(func(string) bool), - 75: new(func(string) float64), - 76: new(func(string) int), - 77: new(func(string) string), - 78: new(func(string, uint8) int), - 79: new(func(string, int) int), - 80: new(func(string, int32) int), - 81: new(func(string, string) bool), - 82: new(func(string, string) string), - 83: new(func(uint) float64), - 84: new(func(uint) int), - 85: new(func(uint) uint), - 86: new(func(uint16) uint), - 87: new(func(uint32) uint64), - 88: new(func(uint64) float64), - 89: new(func(uint64) int64), - 90: new(func(uint8) uint8), -} - -func (vm *VM) call(fn any, kind int) any { - switch kind { - case 1: - return fn.(func() time.Duration)() - case 2: - return fn.(func() time.Month)() - case 3: - return fn.(func() time.Time)() - case 4: - return fn.(func() time.Weekday)() - case 5: - return fn.(func() []interface{})() - case 6: - return fn.(func() []uint8)() - case 7: - return fn.(func() interface{})() - case 8: - return fn.(func() bool)() - case 9: - return fn.(func() uint8)() - case 10: - return fn.(func() float32)() - case 11: - return fn.(func() float64)() - case 12: - return fn.(func() int)() - case 13: - return fn.(func() int16)() - case 14: - return fn.(func() int32)() - case 15: - return fn.(func() int64)() - case 16: - return fn.(func() int8)() - case 17: - return fn.(func() map[string]interface{})() - case 18: - return fn.(func() int32)() - case 19: - return fn.(func() string)() - case 20: - return fn.(func() uint)() - case 21: - return fn.(func() uint16)() - case 22: - return fn.(func() uint32)() - case 23: - return fn.(func() uint64)() - case 24: - return fn.(func() uint8)() - case 25: - arg1 := vm.pop().(time.Duration) - return fn.(func(time.Duration) time.Duration)(arg1) - case 26: - arg1 := vm.pop().(time.Duration) - return fn.(func(time.Duration) time.Time)(arg1) - case 27: - arg1 := vm.pop().(time.Time) - return fn.(func(time.Time) time.Duration)(arg1) - case 28: - arg1 := vm.pop().(time.Time) - return fn.(func(time.Time) bool)(arg1) - case 29: - arg1 := vm.pop().([]interface{}) - return fn.(func([]interface{}) []interface{})(arg1) - case 30: - arg1 := vm.pop().([]interface{}) - return fn.(func([]interface{}) interface{})(arg1) - case 31: - arg1 := vm.pop().([]interface{}) - return fn.(func([]interface{}) map[string]interface{})(arg1) - case 32: - arg2 := vm.pop().(string) - arg1 := vm.pop().([]interface{}) - return fn.(func([]interface{}, string) string)(arg1, arg2) - case 33: - arg1 := vm.pop().([]uint8) - return fn.(func([]uint8) string)(arg1) - case 34: - arg2 := vm.pop().(string) - arg1 := vm.pop().([]string) - return fn.(func([]string, string) string)(arg1, arg2) - case 35: - arg1 := vm.pop() - return fn.(func(interface{}) []interface{})(arg1) - case 36: - arg1 := vm.pop() - return fn.(func(interface{}) interface{})(arg1) - case 37: - arg1 := vm.pop() - return fn.(func(interface{}) bool)(arg1) - case 38: - arg1 := vm.pop() - return fn.(func(interface{}) float64)(arg1) - case 39: - arg1 := vm.pop() - return fn.(func(interface{}) int)(arg1) - case 40: - arg1 := vm.pop() - return fn.(func(interface{}) map[string]interface{})(arg1) - case 41: - arg1 := vm.pop() - return fn.(func(interface{}) string)(arg1) - case 42: - arg2 := vm.pop() - arg1 := vm.pop() - return fn.(func(interface{}, interface{}) []interface{})(arg1, arg2) - case 43: - arg2 := vm.pop() - arg1 := vm.pop() - return fn.(func(interface{}, interface{}) interface{})(arg1, arg2) - case 44: - arg2 := vm.pop() - arg1 := vm.pop() - return fn.(func(interface{}, interface{}) bool)(arg1, arg2) - case 45: - arg2 := vm.pop() - arg1 := vm.pop() - return fn.(func(interface{}, interface{}) string)(arg1, arg2) - case 46: - arg1 := vm.pop().(bool) - return fn.(func(bool) bool)(arg1) - case 47: - arg1 := vm.pop().(bool) - return fn.(func(bool) float64)(arg1) - case 48: - arg1 := vm.pop().(bool) - return fn.(func(bool) int)(arg1) - case 49: - arg1 := vm.pop().(bool) - return fn.(func(bool) string)(arg1) - case 50: - arg2 := vm.pop().(bool) - arg1 := vm.pop().(bool) - return fn.(func(bool, bool) bool)(arg1, arg2) - case 51: - arg1 := vm.pop().(float32) - return fn.(func(float32) float64)(arg1) - case 52: - arg1 := vm.pop().(float64) - return fn.(func(float64) bool)(arg1) - case 53: - arg1 := vm.pop().(float64) - return fn.(func(float64) float32)(arg1) - case 54: - arg1 := vm.pop().(float64) - return fn.(func(float64) float64)(arg1) - case 55: - arg1 := vm.pop().(float64) - return fn.(func(float64) int)(arg1) - case 56: - arg1 := vm.pop().(float64) - return fn.(func(float64) string)(arg1) - case 57: - arg2 := vm.pop().(float64) - arg1 := vm.pop().(float64) - return fn.(func(float64, float64) bool)(arg1, arg2) - case 58: - arg1 := vm.pop().(int) - return fn.(func(int) bool)(arg1) - case 59: - arg1 := vm.pop().(int) - return fn.(func(int) float64)(arg1) - case 60: - arg1 := vm.pop().(int) - return fn.(func(int) int)(arg1) - case 61: - arg1 := vm.pop().(int) - return fn.(func(int) string)(arg1) - case 62: - arg2 := vm.pop().(int) - arg1 := vm.pop().(int) - return fn.(func(int, int) bool)(arg1, arg2) - case 63: - arg2 := vm.pop().(int) - arg1 := vm.pop().(int) - return fn.(func(int, int) int)(arg1, arg2) - case 64: - arg2 := vm.pop().(int) - arg1 := vm.pop().(int) - return fn.(func(int, int) string)(arg1, arg2) - case 65: - arg1 := vm.pop().(int16) - return fn.(func(int16) int32)(arg1) - case 66: - arg1 := vm.pop().(int32) - return fn.(func(int32) float64)(arg1) - case 67: - arg1 := vm.pop().(int32) - return fn.(func(int32) int)(arg1) - case 68: - arg1 := vm.pop().(int32) - return fn.(func(int32) int64)(arg1) - case 69: - arg1 := vm.pop().(int64) - return fn.(func(int64) time.Time)(arg1) - case 70: - arg1 := vm.pop().(int8) - return fn.(func(int8) int)(arg1) - case 71: - arg1 := vm.pop().(int8) - return fn.(func(int8) int16)(arg1) - case 72: - arg1 := vm.pop().(string) - return fn.(func(string) []uint8)(arg1) - case 73: - arg1 := vm.pop().(string) - return fn.(func(string) []string)(arg1) - case 74: - arg1 := vm.pop().(string) - return fn.(func(string) bool)(arg1) - case 75: - arg1 := vm.pop().(string) - return fn.(func(string) float64)(arg1) - case 76: - arg1 := vm.pop().(string) - return fn.(func(string) int)(arg1) - case 77: - arg1 := vm.pop().(string) - return fn.(func(string) string)(arg1) - case 78: - arg2 := vm.pop().(uint8) - arg1 := vm.pop().(string) - return fn.(func(string, uint8) int)(arg1, arg2) - case 79: - arg2 := vm.pop().(int) - arg1 := vm.pop().(string) - return fn.(func(string, int) int)(arg1, arg2) - case 80: - arg2 := vm.pop().(int32) - arg1 := vm.pop().(string) - return fn.(func(string, int32) int)(arg1, arg2) - case 81: - arg2 := vm.pop().(string) - arg1 := vm.pop().(string) - return fn.(func(string, string) bool)(arg1, arg2) - case 82: - arg2 := vm.pop().(string) - arg1 := vm.pop().(string) - return fn.(func(string, string) string)(arg1, arg2) - case 83: - arg1 := vm.pop().(uint) - return fn.(func(uint) float64)(arg1) - case 84: - arg1 := vm.pop().(uint) - return fn.(func(uint) int)(arg1) - case 85: - arg1 := vm.pop().(uint) - return fn.(func(uint) uint)(arg1) - case 86: - arg1 := vm.pop().(uint16) - return fn.(func(uint16) uint)(arg1) - case 87: - arg1 := vm.pop().(uint32) - return fn.(func(uint32) uint64)(arg1) - case 88: - arg1 := vm.pop().(uint64) - return fn.(func(uint64) float64)(arg1) - case 89: - arg1 := vm.pop().(uint64) - return fn.(func(uint64) int64)(arg1) - case 90: - arg1 := vm.pop().(uint8) - return fn.(func(uint8) uint8)(arg1) - - } - panic(fmt.Sprintf("unknown function kind (%v)", kind)) -} diff --git a/vendor/github.com/expr-lang/expr/vm/opcodes.go b/vendor/github.com/expr-lang/expr/vm/opcodes.go deleted file mode 100644 index 84d751d..0000000 --- a/vendor/github.com/expr-lang/expr/vm/opcodes.go +++ /dev/null @@ -1,88 +0,0 @@ -package vm - -type Opcode byte - -const ( - OpInvalid Opcode = iota - OpPush - OpInt - OpPop - OpStore - OpLoadVar - OpLoadConst - OpLoadField - OpLoadFast - OpLoadMethod - OpLoadFunc - OpLoadEnv - OpFetch - OpFetchField - OpMethod - OpTrue - OpFalse - OpNil - OpNegate - OpNot - OpEqual - OpEqualInt - OpEqualString - OpJump - OpJumpIfTrue - OpJumpIfFalse - OpJumpIfNil - OpJumpIfNotNil - OpJumpIfEnd - OpJumpBackward - OpIn - OpLess - OpMore - OpLessOrEqual - OpMoreOrEqual - OpAdd - OpSubtract - OpMultiply - OpDivide - OpModulo - OpExponent - OpRange - OpMatches - OpMatchesConst - OpContains - OpStartsWith - OpEndsWith - OpSlice - OpCall - OpCall0 - OpCall1 - OpCall2 - OpCall3 - OpCallN - OpCallFast - OpCallSafe - OpCallTyped - OpCallBuiltin1 - OpArray - OpMap - OpLen - OpCast - OpDeref - OpIncrementIndex - OpDecrementIndex - OpIncrementCount - OpGetIndex - OpGetCount - OpGetLen - OpGetAcc - OpSetAcc - OpSetIndex - OpPointer - OpThrow - OpCreate - OpGroupBy - OpSortBy - OpSort - OpProfileStart - OpProfileEnd - OpBegin - OpEnd // This opcode must be at the end of this list. -) diff --git a/vendor/github.com/expr-lang/expr/vm/program.go b/vendor/github.com/expr-lang/expr/vm/program.go deleted file mode 100644 index 15ce26f..0000000 --- a/vendor/github.com/expr-lang/expr/vm/program.go +++ /dev/null @@ -1,382 +0,0 @@ -package vm - -import ( - "bytes" - "fmt" - "io" - "reflect" - "regexp" - "strings" - "text/tabwriter" - - "github.com/expr-lang/expr/ast" - "github.com/expr-lang/expr/builtin" - "github.com/expr-lang/expr/file" - "github.com/expr-lang/expr/vm/runtime" -) - -// Program represents a compiled expression. -type Program struct { - Bytecode []Opcode - Arguments []int - Constants []any - - source file.Source - node ast.Node - locations []file.Location - variables int - functions []Function - debugInfo map[string]string - span *Span -} - -// NewProgram returns a new Program. It's used by the compiler. -func NewProgram( - source file.Source, - node ast.Node, - locations []file.Location, - variables int, - constants []any, - bytecode []Opcode, - arguments []int, - functions []Function, - debugInfo map[string]string, - span *Span, -) *Program { - return &Program{ - source: source, - node: node, - locations: locations, - variables: variables, - Constants: constants, - Bytecode: bytecode, - Arguments: arguments, - functions: functions, - debugInfo: debugInfo, - span: span, - } -} - -// Source returns origin file.Source. -func (program *Program) Source() file.Source { - return program.source -} - -// Node returns origin ast.Node. -func (program *Program) Node() ast.Node { - return program.node -} - -// Locations returns a slice of bytecode's locations. -func (program *Program) Locations() []file.Location { - return program.locations -} - -// Disassemble returns opcodes as a string. -func (program *Program) Disassemble() string { - var buf bytes.Buffer - w := tabwriter.NewWriter(&buf, 0, 0, 2, ' ', 0) - program.DisassembleWriter(w) - _ = w.Flush() - return buf.String() -} - -// DisassembleWriter takes a writer and writes opcodes to it. -func (program *Program) DisassembleWriter(w io.Writer) { - ip := 0 - for ip < len(program.Bytecode) { - pp := ip - op := program.Bytecode[ip] - arg := program.Arguments[ip] - ip += 1 - - code := func(label string) { - _, _ = fmt.Fprintf(w, "%v\t%v\n", pp, label) - } - jump := func(label string) { - _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t(%v)\n", pp, label, arg, ip+arg) - } - jumpBack := func(label string) { - _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t(%v)\n", pp, label, arg, ip-arg) - } - argument := func(label string) { - _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\n", pp, label, arg) - } - argumentWithInfo := func(label string, prefix string) { - _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t%v\n", pp, label, arg, program.debugInfo[fmt.Sprintf("%s_%d", prefix, arg)]) - } - constant := func(label string) { - var c any - if arg < len(program.Constants) { - c = program.Constants[arg] - } else { - c = "out of range" - } - if r, ok := c.(*regexp.Regexp); ok { - c = r.String() - } - if field, ok := c.(*runtime.Field); ok { - c = fmt.Sprintf("{%v %v}", strings.Join(field.Path, "."), field.Index) - } - if method, ok := c.(*runtime.Method); ok { - c = fmt.Sprintf("{%v %v}", method.Name, method.Index) - } - _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t%v\n", pp, label, arg, c) - } - builtinArg := func(label string) { - _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t%v\n", pp, label, arg, builtin.Builtins[arg].Name) - } - - switch op { - case OpInvalid: - code("OpInvalid") - - case OpPush: - constant("OpPush") - - case OpInt: - argument("OpInt") - - case OpPop: - code("OpPop") - - case OpStore: - argumentWithInfo("OpStore", "var") - - case OpLoadVar: - argumentWithInfo("OpLoadVar", "var") - - case OpLoadConst: - constant("OpLoadConst") - - case OpLoadField: - constant("OpLoadField") - - case OpLoadFast: - constant("OpLoadFast") - - case OpLoadMethod: - constant("OpLoadMethod") - - case OpLoadFunc: - argumentWithInfo("OpLoadFunc", "func") - - case OpLoadEnv: - code("OpLoadEnv") - - case OpFetch: - code("OpFetch") - - case OpFetchField: - constant("OpFetchField") - - case OpMethod: - constant("OpMethod") - - case OpTrue: - code("OpTrue") - - case OpFalse: - code("OpFalse") - - case OpNil: - code("OpNil") - - case OpNegate: - code("OpNegate") - - case OpNot: - code("OpNot") - - case OpEqual: - code("OpEqual") - - case OpEqualInt: - code("OpEqualInt") - - case OpEqualString: - code("OpEqualString") - - case OpJump: - jump("OpJump") - - case OpJumpIfTrue: - jump("OpJumpIfTrue") - - case OpJumpIfFalse: - jump("OpJumpIfFalse") - - case OpJumpIfNil: - jump("OpJumpIfNil") - - case OpJumpIfNotNil: - jump("OpJumpIfNotNil") - - case OpJumpIfEnd: - jump("OpJumpIfEnd") - - case OpJumpBackward: - jumpBack("OpJumpBackward") - - case OpIn: - code("OpIn") - - case OpLess: - code("OpLess") - - case OpMore: - code("OpMore") - - case OpLessOrEqual: - code("OpLessOrEqual") - - case OpMoreOrEqual: - code("OpMoreOrEqual") - - case OpAdd: - code("OpAdd") - - case OpSubtract: - code("OpSubtract") - - case OpMultiply: - code("OpMultiply") - - case OpDivide: - code("OpDivide") - - case OpModulo: - code("OpModulo") - - case OpExponent: - code("OpExponent") - - case OpRange: - code("OpRange") - - case OpMatches: - code("OpMatches") - - case OpMatchesConst: - constant("OpMatchesConst") - - case OpContains: - code("OpContains") - - case OpStartsWith: - code("OpStartsWith") - - case OpEndsWith: - code("OpEndsWith") - - case OpSlice: - code("OpSlice") - - case OpCall: - argument("OpCall") - - case OpCall0: - argumentWithInfo("OpCall0", "func") - - case OpCall1: - argumentWithInfo("OpCall1", "func") - - case OpCall2: - argumentWithInfo("OpCall2", "func") - - case OpCall3: - argumentWithInfo("OpCall3", "func") - - case OpCallN: - argument("OpCallN") - - case OpCallFast: - argument("OpCallFast") - - case OpCallSafe: - argument("OpCallSafe") - - case OpCallTyped: - signature := reflect.TypeOf(FuncTypes[arg]).Elem().String() - _, _ = fmt.Fprintf(w, "%v\t%v\t<%v>\t%v\n", pp, "OpCallTyped", arg, signature) - - case OpCallBuiltin1: - builtinArg("OpCallBuiltin1") - - case OpArray: - code("OpArray") - - case OpMap: - code("OpMap") - - case OpLen: - code("OpLen") - - case OpCast: - argument("OpCast") - - case OpDeref: - code("OpDeref") - - case OpIncrementIndex: - code("OpIncrementIndex") - - case OpDecrementIndex: - code("OpDecrementIndex") - - case OpIncrementCount: - code("OpIncrementCount") - - case OpGetIndex: - code("OpGetIndex") - - case OpGetCount: - code("OpGetCount") - - case OpGetLen: - code("OpGetLen") - - case OpGetAcc: - code("OpGetAcc") - - case OpSetAcc: - code("OpSetAcc") - - case OpSetIndex: - code("OpSetIndex") - - case OpPointer: - code("OpPointer") - - case OpThrow: - code("OpThrow") - - case OpCreate: - argument("OpCreate") - - case OpGroupBy: - code("OpGroupBy") - - case OpSortBy: - code("OpSortBy") - - case OpSort: - code("OpSort") - - case OpProfileStart: - code("OpProfileStart") - - case OpProfileEnd: - code("OpProfileEnd") - - case OpBegin: - code("OpBegin") - - case OpEnd: - code("OpEnd") - - default: - _, _ = fmt.Fprintf(w, "%v\t%#x (unknown)\n", ip, op) - } - } -} diff --git a/vendor/github.com/expr-lang/expr/vm/runtime/helpers[generated].go b/vendor/github.com/expr-lang/expr/vm/runtime/helpers[generated].go deleted file mode 100644 index d950f11..0000000 --- a/vendor/github.com/expr-lang/expr/vm/runtime/helpers[generated].go +++ /dev/null @@ -1,3718 +0,0 @@ -// Code generated by vm/runtime/helpers/main.go. DO NOT EDIT. - -package runtime - -import ( - "fmt" - "reflect" - "time" -) - -func Equal(a, b interface{}) bool { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) == int(y) - case uint8: - return int(x) == int(y) - case uint16: - return int(x) == int(y) - case uint32: - return int(x) == int(y) - case uint64: - return int(x) == int(y) - case int: - return int(x) == int(y) - case int8: - return int(x) == int(y) - case int16: - return int(x) == int(y) - case int32: - return int(x) == int(y) - case int64: - return int(x) == int(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) == float64(y) - case uint8: - return float64(x) == float64(y) - case uint16: - return float64(x) == float64(y) - case uint32: - return float64(x) == float64(y) - case uint64: - return float64(x) == float64(y) - case int: - return float64(x) == float64(y) - case int8: - return float64(x) == float64(y) - case int16: - return float64(x) == float64(y) - case int32: - return float64(x) == float64(y) - case int64: - return float64(x) == float64(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) == float64(y) - case uint8: - return float64(x) == float64(y) - case uint16: - return float64(x) == float64(y) - case uint32: - return float64(x) == float64(y) - case uint64: - return float64(x) == float64(y) - case int: - return float64(x) == float64(y) - case int8: - return float64(x) == float64(y) - case int16: - return float64(x) == float64(y) - case int32: - return float64(x) == float64(y) - case int64: - return float64(x) == float64(y) - case float32: - return float64(x) == float64(y) - case float64: - return float64(x) == float64(y) - } - case []any: - switch y := b.(type) { - case []string: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []uint: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []uint8: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []uint16: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []uint32: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []uint64: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []int: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []int8: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []int16: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []int32: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []int64: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []float32: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []float64: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - case []any: - if len(x) != len(y) { - return false - } - for i := range x { - if !Equal(x[i], y[i]) { - return false - } - } - return true - } - case []string: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []string: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []uint: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []uint: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []uint8: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []uint8: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []uint16: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []uint16: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []uint32: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []uint32: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []uint64: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []uint64: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []int: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []int: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []int8: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []int8: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []int16: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []int16: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []int32: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []int32: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []int64: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []int64: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []float32: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []float32: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case []float64: - switch y := b.(type) { - case []any: - return Equal(y, x) - case []float64: - if len(x) != len(y) { - return false - } - for i := range x { - if x[i] != y[i] { - return false - } - } - return true - } - case string: - switch y := b.(type) { - case string: - return x == y - } - case time.Time: - switch y := b.(type) { - case time.Time: - return x.Equal(y) - } - case time.Duration: - switch y := b.(type) { - case time.Duration: - return x == y - } - case bool: - switch y := b.(type) { - case bool: - return x == y - } - } - if IsNil(a) && IsNil(b) { - return true - } - return reflect.DeepEqual(a, b) -} - -func Less(a, b interface{}) bool { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) < int(y) - case uint8: - return int(x) < int(y) - case uint16: - return int(x) < int(y) - case uint32: - return int(x) < int(y) - case uint64: - return int(x) < int(y) - case int: - return int(x) < int(y) - case int8: - return int(x) < int(y) - case int16: - return int(x) < int(y) - case int32: - return int(x) < int(y) - case int64: - return int(x) < int(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) < float64(y) - case uint8: - return float64(x) < float64(y) - case uint16: - return float64(x) < float64(y) - case uint32: - return float64(x) < float64(y) - case uint64: - return float64(x) < float64(y) - case int: - return float64(x) < float64(y) - case int8: - return float64(x) < float64(y) - case int16: - return float64(x) < float64(y) - case int32: - return float64(x) < float64(y) - case int64: - return float64(x) < float64(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) < float64(y) - case uint8: - return float64(x) < float64(y) - case uint16: - return float64(x) < float64(y) - case uint32: - return float64(x) < float64(y) - case uint64: - return float64(x) < float64(y) - case int: - return float64(x) < float64(y) - case int8: - return float64(x) < float64(y) - case int16: - return float64(x) < float64(y) - case int32: - return float64(x) < float64(y) - case int64: - return float64(x) < float64(y) - case float32: - return float64(x) < float64(y) - case float64: - return float64(x) < float64(y) - } - case string: - switch y := b.(type) { - case string: - return x < y - } - case time.Time: - switch y := b.(type) { - case time.Time: - return x.Before(y) - } - case time.Duration: - switch y := b.(type) { - case time.Duration: - return x < y - } - } - panic(fmt.Sprintf("invalid operation: %T < %T", a, b)) -} - -func More(a, b interface{}) bool { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) > int(y) - case uint8: - return int(x) > int(y) - case uint16: - return int(x) > int(y) - case uint32: - return int(x) > int(y) - case uint64: - return int(x) > int(y) - case int: - return int(x) > int(y) - case int8: - return int(x) > int(y) - case int16: - return int(x) > int(y) - case int32: - return int(x) > int(y) - case int64: - return int(x) > int(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) > float64(y) - case uint8: - return float64(x) > float64(y) - case uint16: - return float64(x) > float64(y) - case uint32: - return float64(x) > float64(y) - case uint64: - return float64(x) > float64(y) - case int: - return float64(x) > float64(y) - case int8: - return float64(x) > float64(y) - case int16: - return float64(x) > float64(y) - case int32: - return float64(x) > float64(y) - case int64: - return float64(x) > float64(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) > float64(y) - case uint8: - return float64(x) > float64(y) - case uint16: - return float64(x) > float64(y) - case uint32: - return float64(x) > float64(y) - case uint64: - return float64(x) > float64(y) - case int: - return float64(x) > float64(y) - case int8: - return float64(x) > float64(y) - case int16: - return float64(x) > float64(y) - case int32: - return float64(x) > float64(y) - case int64: - return float64(x) > float64(y) - case float32: - return float64(x) > float64(y) - case float64: - return float64(x) > float64(y) - } - case string: - switch y := b.(type) { - case string: - return x > y - } - case time.Time: - switch y := b.(type) { - case time.Time: - return x.After(y) - } - case time.Duration: - switch y := b.(type) { - case time.Duration: - return x > y - } - } - panic(fmt.Sprintf("invalid operation: %T > %T", a, b)) -} - -func LessOrEqual(a, b interface{}) bool { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) <= int(y) - case uint8: - return int(x) <= int(y) - case uint16: - return int(x) <= int(y) - case uint32: - return int(x) <= int(y) - case uint64: - return int(x) <= int(y) - case int: - return int(x) <= int(y) - case int8: - return int(x) <= int(y) - case int16: - return int(x) <= int(y) - case int32: - return int(x) <= int(y) - case int64: - return int(x) <= int(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) <= float64(y) - case uint8: - return float64(x) <= float64(y) - case uint16: - return float64(x) <= float64(y) - case uint32: - return float64(x) <= float64(y) - case uint64: - return float64(x) <= float64(y) - case int: - return float64(x) <= float64(y) - case int8: - return float64(x) <= float64(y) - case int16: - return float64(x) <= float64(y) - case int32: - return float64(x) <= float64(y) - case int64: - return float64(x) <= float64(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) <= float64(y) - case uint8: - return float64(x) <= float64(y) - case uint16: - return float64(x) <= float64(y) - case uint32: - return float64(x) <= float64(y) - case uint64: - return float64(x) <= float64(y) - case int: - return float64(x) <= float64(y) - case int8: - return float64(x) <= float64(y) - case int16: - return float64(x) <= float64(y) - case int32: - return float64(x) <= float64(y) - case int64: - return float64(x) <= float64(y) - case float32: - return float64(x) <= float64(y) - case float64: - return float64(x) <= float64(y) - } - case string: - switch y := b.(type) { - case string: - return x <= y - } - case time.Time: - switch y := b.(type) { - case time.Time: - return x.Before(y) || x.Equal(y) - } - case time.Duration: - switch y := b.(type) { - case time.Duration: - return x <= y - } - } - panic(fmt.Sprintf("invalid operation: %T <= %T", a, b)) -} - -func MoreOrEqual(a, b interface{}) bool { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) >= int(y) - case uint8: - return int(x) >= int(y) - case uint16: - return int(x) >= int(y) - case uint32: - return int(x) >= int(y) - case uint64: - return int(x) >= int(y) - case int: - return int(x) >= int(y) - case int8: - return int(x) >= int(y) - case int16: - return int(x) >= int(y) - case int32: - return int(x) >= int(y) - case int64: - return int(x) >= int(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) >= float64(y) - case uint8: - return float64(x) >= float64(y) - case uint16: - return float64(x) >= float64(y) - case uint32: - return float64(x) >= float64(y) - case uint64: - return float64(x) >= float64(y) - case int: - return float64(x) >= float64(y) - case int8: - return float64(x) >= float64(y) - case int16: - return float64(x) >= float64(y) - case int32: - return float64(x) >= float64(y) - case int64: - return float64(x) >= float64(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) >= float64(y) - case uint8: - return float64(x) >= float64(y) - case uint16: - return float64(x) >= float64(y) - case uint32: - return float64(x) >= float64(y) - case uint64: - return float64(x) >= float64(y) - case int: - return float64(x) >= float64(y) - case int8: - return float64(x) >= float64(y) - case int16: - return float64(x) >= float64(y) - case int32: - return float64(x) >= float64(y) - case int64: - return float64(x) >= float64(y) - case float32: - return float64(x) >= float64(y) - case float64: - return float64(x) >= float64(y) - } - case string: - switch y := b.(type) { - case string: - return x >= y - } - case time.Time: - switch y := b.(type) { - case time.Time: - return x.After(y) || x.Equal(y) - } - case time.Duration: - switch y := b.(type) { - case time.Duration: - return x >= y - } - } - panic(fmt.Sprintf("invalid operation: %T >= %T", a, b)) -} - -func Add(a, b interface{}) interface{} { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) + int(y) - case uint8: - return int(x) + int(y) - case uint16: - return int(x) + int(y) - case uint32: - return int(x) + int(y) - case uint64: - return int(x) + int(y) - case int: - return int(x) + int(y) - case int8: - return int(x) + int(y) - case int16: - return int(x) + int(y) - case int32: - return int(x) + int(y) - case int64: - return int(x) + int(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) + float64(y) - case uint8: - return float64(x) + float64(y) - case uint16: - return float64(x) + float64(y) - case uint32: - return float64(x) + float64(y) - case uint64: - return float64(x) + float64(y) - case int: - return float64(x) + float64(y) - case int8: - return float64(x) + float64(y) - case int16: - return float64(x) + float64(y) - case int32: - return float64(x) + float64(y) - case int64: - return float64(x) + float64(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) + float64(y) - case uint8: - return float64(x) + float64(y) - case uint16: - return float64(x) + float64(y) - case uint32: - return float64(x) + float64(y) - case uint64: - return float64(x) + float64(y) - case int: - return float64(x) + float64(y) - case int8: - return float64(x) + float64(y) - case int16: - return float64(x) + float64(y) - case int32: - return float64(x) + float64(y) - case int64: - return float64(x) + float64(y) - case float32: - return float64(x) + float64(y) - case float64: - return float64(x) + float64(y) - } - case string: - switch y := b.(type) { - case string: - return x + y - } - case time.Time: - switch y := b.(type) { - case time.Duration: - return x.Add(y) - } - case time.Duration: - switch y := b.(type) { - case time.Time: - return y.Add(x) - case time.Duration: - return x + y - } - } - panic(fmt.Sprintf("invalid operation: %T + %T", a, b)) -} - -func Subtract(a, b interface{}) interface{} { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) - int(y) - case uint8: - return int(x) - int(y) - case uint16: - return int(x) - int(y) - case uint32: - return int(x) - int(y) - case uint64: - return int(x) - int(y) - case int: - return int(x) - int(y) - case int8: - return int(x) - int(y) - case int16: - return int(x) - int(y) - case int32: - return int(x) - int(y) - case int64: - return int(x) - int(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) - float64(y) - case uint8: - return float64(x) - float64(y) - case uint16: - return float64(x) - float64(y) - case uint32: - return float64(x) - float64(y) - case uint64: - return float64(x) - float64(y) - case int: - return float64(x) - float64(y) - case int8: - return float64(x) - float64(y) - case int16: - return float64(x) - float64(y) - case int32: - return float64(x) - float64(y) - case int64: - return float64(x) - float64(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) - float64(y) - case uint8: - return float64(x) - float64(y) - case uint16: - return float64(x) - float64(y) - case uint32: - return float64(x) - float64(y) - case uint64: - return float64(x) - float64(y) - case int: - return float64(x) - float64(y) - case int8: - return float64(x) - float64(y) - case int16: - return float64(x) - float64(y) - case int32: - return float64(x) - float64(y) - case int64: - return float64(x) - float64(y) - case float32: - return float64(x) - float64(y) - case float64: - return float64(x) - float64(y) - } - case time.Time: - switch y := b.(type) { - case time.Time: - return x.Sub(y) - case time.Duration: - return x.Add(-y) - } - case time.Duration: - switch y := b.(type) { - case time.Duration: - return x - y - } - } - panic(fmt.Sprintf("invalid operation: %T - %T", a, b)) -} - -func Multiply(a, b interface{}) interface{} { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) * int(y) - case uint8: - return int(x) * int(y) - case uint16: - return int(x) * int(y) - case uint32: - return int(x) * int(y) - case uint64: - return int(x) * int(y) - case int: - return int(x) * int(y) - case int8: - return int(x) * int(y) - case int16: - return int(x) * int(y) - case int32: - return int(x) * int(y) - case int64: - return int(x) * int(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) * float64(y) - case uint8: - return float64(x) * float64(y) - case uint16: - return float64(x) * float64(y) - case uint32: - return float64(x) * float64(y) - case uint64: - return float64(x) * float64(y) - case int: - return float64(x) * float64(y) - case int8: - return float64(x) * float64(y) - case int16: - return float64(x) * float64(y) - case int32: - return float64(x) * float64(y) - case int64: - return float64(x) * float64(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return float64(x) * float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) * float64(y) - case uint8: - return float64(x) * float64(y) - case uint16: - return float64(x) * float64(y) - case uint32: - return float64(x) * float64(y) - case uint64: - return float64(x) * float64(y) - case int: - return float64(x) * float64(y) - case int8: - return float64(x) * float64(y) - case int16: - return float64(x) * float64(y) - case int32: - return float64(x) * float64(y) - case int64: - return float64(x) * float64(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return float64(x) * float64(y) - } - case time.Duration: - switch y := b.(type) { - case uint: - return time.Duration(x) * time.Duration(y) - case uint8: - return time.Duration(x) * time.Duration(y) - case uint16: - return time.Duration(x) * time.Duration(y) - case uint32: - return time.Duration(x) * time.Duration(y) - case uint64: - return time.Duration(x) * time.Duration(y) - case int: - return time.Duration(x) * time.Duration(y) - case int8: - return time.Duration(x) * time.Duration(y) - case int16: - return time.Duration(x) * time.Duration(y) - case int32: - return time.Duration(x) * time.Duration(y) - case int64: - return time.Duration(x) * time.Duration(y) - case float32: - return float64(x) * float64(y) - case float64: - return float64(x) * float64(y) - case time.Duration: - return time.Duration(x) * time.Duration(y) - } - } - panic(fmt.Sprintf("invalid operation: %T * %T", a, b)) -} - -func Divide(a, b interface{}) float64 { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case uint8: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case uint16: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case uint32: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case uint64: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case int: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case int8: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case int16: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case int32: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case int64: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case float32: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - case float64: - switch y := b.(type) { - case uint: - return float64(x) / float64(y) - case uint8: - return float64(x) / float64(y) - case uint16: - return float64(x) / float64(y) - case uint32: - return float64(x) / float64(y) - case uint64: - return float64(x) / float64(y) - case int: - return float64(x) / float64(y) - case int8: - return float64(x) / float64(y) - case int16: - return float64(x) / float64(y) - case int32: - return float64(x) / float64(y) - case int64: - return float64(x) / float64(y) - case float32: - return float64(x) / float64(y) - case float64: - return float64(x) / float64(y) - } - } - panic(fmt.Sprintf("invalid operation: %T / %T", a, b)) -} - -func Modulo(a, b interface{}) int { - switch x := a.(type) { - case uint: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case uint8: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case uint16: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case uint32: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case uint64: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case int: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case int8: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case int16: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case int32: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - case int64: - switch y := b.(type) { - case uint: - return int(x) % int(y) - case uint8: - return int(x) % int(y) - case uint16: - return int(x) % int(y) - case uint32: - return int(x) % int(y) - case uint64: - return int(x) % int(y) - case int: - return int(x) % int(y) - case int8: - return int(x) % int(y) - case int16: - return int(x) % int(y) - case int32: - return int(x) % int(y) - case int64: - return int(x) % int(y) - } - } - panic(fmt.Sprintf("invalid operation: %T %% %T", a, b)) -} diff --git a/vendor/github.com/expr-lang/expr/vm/runtime/runtime.go b/vendor/github.com/expr-lang/expr/vm/runtime/runtime.go deleted file mode 100644 index 56759c5..0000000 --- a/vendor/github.com/expr-lang/expr/vm/runtime/runtime.go +++ /dev/null @@ -1,407 +0,0 @@ -package runtime - -//go:generate sh -c "go run ./helpers > ./helpers[generated].go" - -import ( - "fmt" - "math" - "reflect" - - "github.com/expr-lang/expr/internal/deref" -) - -func Fetch(from, i any) any { - v := reflect.ValueOf(from) - if v.Kind() == reflect.Invalid { - panic(fmt.Sprintf("cannot fetch %v from %T", i, from)) - } - - // Methods can be defined on any type. - if v.NumMethod() > 0 { - if methodName, ok := i.(string); ok { - method := v.MethodByName(methodName) - if method.IsValid() { - return method.Interface() - } - } - } - - // Structs, maps, and slices can be access through a pointer or through - // a value, when they are accessed through a pointer we don't want to - // copy them to a value. - // De-reference everything if necessary (interface and pointers) - v = deref.Value(v) - - switch v.Kind() { - case reflect.Array, reflect.Slice, reflect.String: - index := ToInt(i) - l := v.Len() - if index < 0 { - index = l + index - } - if index < 0 || index >= l { - panic(fmt.Sprintf("index out of range: %v (array length is %v)", index, l)) - } - value := v.Index(index) - if value.IsValid() { - return value.Interface() - } - - case reflect.Map: - var value reflect.Value - if i == nil { - value = v.MapIndex(reflect.Zero(v.Type().Key())) - } else { - value = v.MapIndex(reflect.ValueOf(i)) - } - if value.IsValid() { - return value.Interface() - } else { - elem := reflect.TypeOf(from).Elem() - return reflect.Zero(elem).Interface() - } - - case reflect.Struct: - fieldName := i.(string) - value := v.FieldByNameFunc(func(name string) bool { - field, _ := v.Type().FieldByName(name) - switch field.Tag.Get("expr") { - case "-": - return false - case fieldName: - return true - default: - return name == fieldName - } - }) - if value.IsValid() { - return value.Interface() - } - } - panic(fmt.Sprintf("cannot fetch %v from %T", i, from)) -} - -type Field struct { - Index []int - Path []string -} - -func FetchField(from any, field *Field) any { - v := reflect.ValueOf(from) - if v.Kind() != reflect.Invalid { - v = reflect.Indirect(v) - - // We can use v.FieldByIndex here, but it will panic if the field - // is not exists. And we need to recover() to generate a more - // user-friendly error message. - // Also, our fieldByIndex() function is slightly faster than the - // v.FieldByIndex() function as we don't need to verify what a field - // is a struct as we already did it on compilation step. - value := fieldByIndex(v, field) - if value.IsValid() { - return value.Interface() - } - } - panic(fmt.Sprintf("cannot get %v from %T", field.Path[0], from)) -} - -func fieldByIndex(v reflect.Value, field *Field) reflect.Value { - if len(field.Index) == 1 { - return v.Field(field.Index[0]) - } - for i, x := range field.Index { - if i > 0 { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - panic(fmt.Sprintf("cannot get %v from %v", field.Path[i], field.Path[i-1])) - } - v = v.Elem() - } - } - v = v.Field(x) - } - return v -} - -type Method struct { - Index int - Name string -} - -func FetchMethod(from any, method *Method) any { - v := reflect.ValueOf(from) - kind := v.Kind() - if kind != reflect.Invalid { - // Methods can be defined on any type, no need to dereference. - method := v.Method(method.Index) - if method.IsValid() { - return method.Interface() - } - } - panic(fmt.Sprintf("cannot fetch %v from %T", method.Name, from)) -} - -func Slice(array, from, to any) any { - v := reflect.ValueOf(array) - - switch v.Kind() { - case reflect.Array, reflect.Slice, reflect.String: - length := v.Len() - a, b := ToInt(from), ToInt(to) - if a < 0 { - a = length + a - } - if a < 0 { - a = 0 - } - if b < 0 { - b = length + b - } - if b < 0 { - b = 0 - } - if b > length { - b = length - } - if a > b { - a = b - } - if v.Kind() == reflect.Array && !v.CanAddr() { - newValue := reflect.New(v.Type()).Elem() - newValue.Set(v) - v = newValue - } - value := v.Slice(a, b) - if value.IsValid() { - return value.Interface() - } - - case reflect.Ptr: - value := v.Elem() - if value.IsValid() { - return Slice(value.Interface(), from, to) - } - - } - panic(fmt.Sprintf("cannot slice %v", from)) -} - -func In(needle any, array any) bool { - if array == nil { - return false - } - v := reflect.ValueOf(array) - - switch v.Kind() { - - case reflect.Array, reflect.Slice: - for i := 0; i < v.Len(); i++ { - value := v.Index(i) - if value.IsValid() { - if Equal(value.Interface(), needle) { - return true - } - } - } - return false - - case reflect.Map: - var value reflect.Value - if needle == nil { - value = v.MapIndex(reflect.Zero(v.Type().Key())) - } else { - value = v.MapIndex(reflect.ValueOf(needle)) - } - if value.IsValid() { - return true - } - return false - - case reflect.Struct: - n := reflect.ValueOf(needle) - if !n.IsValid() || n.Kind() != reflect.String { - panic(fmt.Sprintf("cannot use %T as field name of %T", needle, array)) - } - field, ok := v.Type().FieldByName(n.String()) - if !ok || !field.IsExported() || field.Tag.Get("expr") == "-" { - return false - } - value := v.FieldByIndex(field.Index) - if value.IsValid() { - return true - } - return false - - case reflect.Ptr: - value := v.Elem() - if value.IsValid() { - return In(needle, value.Interface()) - } - return false - } - - panic(fmt.Sprintf(`operator "in" not defined on %T`, array)) -} - -func Len(a any) int { - v := reflect.ValueOf(a) - switch v.Kind() { - case reflect.Array, reflect.Slice, reflect.Map, reflect.String: - return v.Len() - default: - panic(fmt.Sprintf("invalid argument for len (type %T)", a)) - } -} - -func Negate(i any) any { - switch v := i.(type) { - case float32: - return -v - case float64: - return -v - case int: - return -v - case int8: - return -v - case int16: - return -v - case int32: - return -v - case int64: - return -v - case uint: - return -v - case uint8: - return -v - case uint16: - return -v - case uint32: - return -v - case uint64: - return -v - default: - panic(fmt.Sprintf("invalid operation: - %T", v)) - } -} - -func Exponent(a, b any) float64 { - return math.Pow(ToFloat64(a), ToFloat64(b)) -} - -func MakeRange(min, max int) []int { - size := max - min + 1 - if size <= 0 { - return []int{} - } - rng := make([]int, size) - for i := range rng { - rng[i] = min + i - } - return rng -} - -func ToInt(a any) int { - switch x := a.(type) { - case float32: - return int(x) - case float64: - return int(x) - case int: - return x - case int8: - return int(x) - case int16: - return int(x) - case int32: - return int(x) - case int64: - return int(x) - case uint: - return int(x) - case uint8: - return int(x) - case uint16: - return int(x) - case uint32: - return int(x) - case uint64: - return int(x) - default: - panic(fmt.Sprintf("invalid operation: int(%T)", x)) - } -} - -func ToInt64(a any) int64 { - switch x := a.(type) { - case float32: - return int64(x) - case float64: - return int64(x) - case int: - return int64(x) - case int8: - return int64(x) - case int16: - return int64(x) - case int32: - return int64(x) - case int64: - return x - case uint: - return int64(x) - case uint8: - return int64(x) - case uint16: - return int64(x) - case uint32: - return int64(x) - case uint64: - return int64(x) - default: - panic(fmt.Sprintf("invalid operation: int64(%T)", x)) - } -} - -func ToFloat64(a any) float64 { - switch x := a.(type) { - case float32: - return float64(x) - case float64: - return x - case int: - return float64(x) - case int8: - return float64(x) - case int16: - return float64(x) - case int32: - return float64(x) - case int64: - return float64(x) - case uint: - return float64(x) - case uint8: - return float64(x) - case uint16: - return float64(x) - case uint32: - return float64(x) - case uint64: - return float64(x) - default: - panic(fmt.Sprintf("invalid operation: float(%T)", x)) - } -} - -func IsNil(v any) bool { - if v == nil { - return true - } - r := reflect.ValueOf(v) - switch r.Kind() { - case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Slice: - return r.IsNil() - default: - return false - } -} diff --git a/vendor/github.com/expr-lang/expr/vm/runtime/sort.go b/vendor/github.com/expr-lang/expr/vm/runtime/sort.go deleted file mode 100644 index fb1f340..0000000 --- a/vendor/github.com/expr-lang/expr/vm/runtime/sort.go +++ /dev/null @@ -1,45 +0,0 @@ -package runtime - -type SortBy struct { - Desc bool - Array []any - Values []any -} - -func (s *SortBy) Len() int { - return len(s.Array) -} - -func (s *SortBy) Swap(i, j int) { - s.Array[i], s.Array[j] = s.Array[j], s.Array[i] - s.Values[i], s.Values[j] = s.Values[j], s.Values[i] -} - -func (s *SortBy) Less(i, j int) bool { - a, b := s.Values[i], s.Values[j] - if s.Desc { - return Less(b, a) - } - return Less(a, b) -} - -type Sort struct { - Desc bool - Array []any -} - -func (s *Sort) Len() int { - return len(s.Array) -} - -func (s *Sort) Swap(i, j int) { - s.Array[i], s.Array[j] = s.Array[j], s.Array[i] -} - -func (s *Sort) Less(i, j int) bool { - a, b := s.Array[i], s.Array[j] - if s.Desc { - return Less(b, a) - } - return Less(a, b) -} diff --git a/vendor/github.com/expr-lang/expr/vm/utils.go b/vendor/github.com/expr-lang/expr/vm/utils.go deleted file mode 100644 index 1100513..0000000 --- a/vendor/github.com/expr-lang/expr/vm/utils.go +++ /dev/null @@ -1,37 +0,0 @@ -package vm - -import ( - "reflect" - "time" -) - -type ( - Function = func(params ...any) (any, error) - SafeFunction = func(params ...any) (any, uint, error) -) - -var ( - errorType = reflect.TypeOf((*error)(nil)).Elem() -) - -type Scope struct { - Array reflect.Value - Index int - Len int - Count int - Acc any -} - -type groupBy = map[any][]any - -type Span struct { - Name string `json:"name"` - Expression string `json:"expression"` - Duration int64 `json:"duration"` - Children []*Span `json:"children"` - start time.Time -} - -func GetSpan(program *Program) *Span { - return program.span -} diff --git a/vendor/github.com/expr-lang/expr/vm/vm.go b/vendor/github.com/expr-lang/expr/vm/vm.go deleted file mode 100644 index ed61d2f..0000000 --- a/vendor/github.com/expr-lang/expr/vm/vm.go +++ /dev/null @@ -1,625 +0,0 @@ -package vm - -//go:generate sh -c "go run ./func_types > ./func_types[generated].go" - -import ( - "fmt" - "reflect" - "regexp" - "sort" - "strings" - "time" - - "github.com/expr-lang/expr/builtin" - "github.com/expr-lang/expr/conf" - "github.com/expr-lang/expr/file" - "github.com/expr-lang/expr/internal/deref" - "github.com/expr-lang/expr/vm/runtime" -) - -func Run(program *Program, env any) (any, error) { - if program == nil { - return nil, fmt.Errorf("program is nil") - } - vm := VM{} - return vm.Run(program, env) -} - -func Debug() *VM { - vm := &VM{ - debug: true, - step: make(chan struct{}, 0), - curr: make(chan int, 0), - } - return vm -} - -type VM struct { - Stack []any - Scopes []*Scope - Variables []any - MemoryBudget uint - ip int - memory uint - debug bool - step chan struct{} - curr chan int -} - -func (vm *VM) Run(program *Program, env any) (_ any, err error) { - defer func() { - if r := recover(); r != nil { - var location file.Location - if vm.ip-1 < len(program.locations) { - location = program.locations[vm.ip-1] - } - f := &file.Error{ - Location: location, - Message: fmt.Sprintf("%v", r), - } - if err, ok := r.(error); ok { - f.Wrap(err) - } - err = f.Bind(program.source) - } - }() - - if vm.Stack == nil { - vm.Stack = make([]any, 0, 2) - } else { - clearSlice(vm.Stack) - vm.Stack = vm.Stack[0:0] - } - if vm.Scopes != nil { - clearSlice(vm.Scopes) - vm.Scopes = vm.Scopes[0:0] - } - if len(vm.Variables) < program.variables { - vm.Variables = make([]any, program.variables) - } - if vm.MemoryBudget == 0 { - vm.MemoryBudget = conf.DefaultMemoryBudget - } - vm.memory = 0 - vm.ip = 0 - - for vm.ip < len(program.Bytecode) { - if debug && vm.debug { - <-vm.step - } - - op := program.Bytecode[vm.ip] - arg := program.Arguments[vm.ip] - vm.ip += 1 - - switch op { - - case OpInvalid: - panic("invalid opcode") - - case OpPush: - vm.push(program.Constants[arg]) - - case OpInt: - vm.push(arg) - - case OpPop: - vm.pop() - - case OpStore: - vm.Variables[arg] = vm.pop() - - case OpLoadVar: - vm.push(vm.Variables[arg]) - - case OpLoadConst: - vm.push(runtime.Fetch(env, program.Constants[arg])) - - case OpLoadField: - vm.push(runtime.FetchField(env, program.Constants[arg].(*runtime.Field))) - - case OpLoadFast: - vm.push(env.(map[string]any)[program.Constants[arg].(string)]) - - case OpLoadMethod: - vm.push(runtime.FetchMethod(env, program.Constants[arg].(*runtime.Method))) - - case OpLoadFunc: - vm.push(program.functions[arg]) - - case OpFetch: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Fetch(a, b)) - - case OpFetchField: - a := vm.pop() - vm.push(runtime.FetchField(a, program.Constants[arg].(*runtime.Field))) - - case OpLoadEnv: - vm.push(env) - - case OpMethod: - a := vm.pop() - vm.push(runtime.FetchMethod(a, program.Constants[arg].(*runtime.Method))) - - case OpTrue: - vm.push(true) - - case OpFalse: - vm.push(false) - - case OpNil: - vm.push(nil) - - case OpNegate: - v := runtime.Negate(vm.pop()) - vm.push(v) - - case OpNot: - v := vm.pop().(bool) - vm.push(!v) - - case OpEqual: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Equal(a, b)) - - case OpEqualInt: - b := vm.pop() - a := vm.pop() - vm.push(a.(int) == b.(int)) - - case OpEqualString: - b := vm.pop() - a := vm.pop() - vm.push(a.(string) == b.(string)) - - case OpJump: - vm.ip += arg - - case OpJumpIfTrue: - if vm.current().(bool) { - vm.ip += arg - } - - case OpJumpIfFalse: - if !vm.current().(bool) { - vm.ip += arg - } - - case OpJumpIfNil: - if runtime.IsNil(vm.current()) { - vm.ip += arg - } - - case OpJumpIfNotNil: - if !runtime.IsNil(vm.current()) { - vm.ip += arg - } - - case OpJumpIfEnd: - scope := vm.scope() - if scope.Index >= scope.Len { - vm.ip += arg - } - - case OpJumpBackward: - vm.ip -= arg - - case OpIn: - b := vm.pop() - a := vm.pop() - vm.push(runtime.In(a, b)) - - case OpLess: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Less(a, b)) - - case OpMore: - b := vm.pop() - a := vm.pop() - vm.push(runtime.More(a, b)) - - case OpLessOrEqual: - b := vm.pop() - a := vm.pop() - vm.push(runtime.LessOrEqual(a, b)) - - case OpMoreOrEqual: - b := vm.pop() - a := vm.pop() - vm.push(runtime.MoreOrEqual(a, b)) - - case OpAdd: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Add(a, b)) - - case OpSubtract: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Subtract(a, b)) - - case OpMultiply: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Multiply(a, b)) - - case OpDivide: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Divide(a, b)) - - case OpModulo: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Modulo(a, b)) - - case OpExponent: - b := vm.pop() - a := vm.pop() - vm.push(runtime.Exponent(a, b)) - - case OpRange: - b := vm.pop() - a := vm.pop() - min := runtime.ToInt(a) - max := runtime.ToInt(b) - size := max - min + 1 - if size <= 0 { - size = 0 - } - vm.memGrow(uint(size)) - vm.push(runtime.MakeRange(min, max)) - - case OpMatches: - b := vm.pop() - a := vm.pop() - if runtime.IsNil(a) || runtime.IsNil(b) { - vm.push(false) - break - } - match, err := regexp.MatchString(b.(string), a.(string)) - if err != nil { - panic(err) - } - vm.push(match) - - case OpMatchesConst: - a := vm.pop() - if runtime.IsNil(a) { - vm.push(false) - break - } - r := program.Constants[arg].(*regexp.Regexp) - vm.push(r.MatchString(a.(string))) - - case OpContains: - b := vm.pop() - a := vm.pop() - if runtime.IsNil(a) || runtime.IsNil(b) { - vm.push(false) - break - } - vm.push(strings.Contains(a.(string), b.(string))) - - case OpStartsWith: - b := vm.pop() - a := vm.pop() - if runtime.IsNil(a) || runtime.IsNil(b) { - vm.push(false) - break - } - vm.push(strings.HasPrefix(a.(string), b.(string))) - - case OpEndsWith: - b := vm.pop() - a := vm.pop() - if runtime.IsNil(a) || runtime.IsNil(b) { - vm.push(false) - break - } - vm.push(strings.HasSuffix(a.(string), b.(string))) - - case OpSlice: - from := vm.pop() - to := vm.pop() - node := vm.pop() - vm.push(runtime.Slice(node, from, to)) - - case OpCall: - fn := reflect.ValueOf(vm.pop()) - size := arg - in := make([]reflect.Value, size) - for i := int(size) - 1; i >= 0; i-- { - param := vm.pop() - if param == nil { - in[i] = reflect.Zero(fn.Type().In(i)) - } else { - in[i] = reflect.ValueOf(param) - } - } - out := fn.Call(in) - if len(out) == 2 && out[1].Type() == errorType && !out[1].IsNil() { - panic(out[1].Interface().(error)) - } - vm.push(out[0].Interface()) - - case OpCall0: - out, err := program.functions[arg]() - if err != nil { - panic(err) - } - vm.push(out) - - case OpCall1: - a := vm.pop() - out, err := program.functions[arg](a) - if err != nil { - panic(err) - } - vm.push(out) - - case OpCall2: - b := vm.pop() - a := vm.pop() - out, err := program.functions[arg](a, b) - if err != nil { - panic(err) - } - vm.push(out) - - case OpCall3: - c := vm.pop() - b := vm.pop() - a := vm.pop() - out, err := program.functions[arg](a, b, c) - if err != nil { - panic(err) - } - vm.push(out) - - case OpCallN: - fn := vm.pop().(Function) - size := arg - in := make([]any, size) - for i := int(size) - 1; i >= 0; i-- { - in[i] = vm.pop() - } - out, err := fn(in...) - if err != nil { - panic(err) - } - vm.push(out) - - case OpCallFast: - fn := vm.pop().(func(...any) any) - size := arg - in := make([]any, size) - for i := int(size) - 1; i >= 0; i-- { - in[i] = vm.pop() - } - vm.push(fn(in...)) - - case OpCallSafe: - fn := vm.pop().(SafeFunction) - size := arg - in := make([]any, size) - for i := int(size) - 1; i >= 0; i-- { - in[i] = vm.pop() - } - out, mem, err := fn(in...) - if err != nil { - panic(err) - } - vm.memGrow(mem) - vm.push(out) - - case OpCallTyped: - vm.push(vm.call(vm.pop(), arg)) - - case OpCallBuiltin1: - vm.push(builtin.Builtins[arg].Fast(vm.pop())) - - case OpArray: - size := vm.pop().(int) - vm.memGrow(uint(size)) - array := make([]any, size) - for i := size - 1; i >= 0; i-- { - array[i] = vm.pop() - } - vm.push(array) - - case OpMap: - size := vm.pop().(int) - vm.memGrow(uint(size)) - m := make(map[string]any) - for i := size - 1; i >= 0; i-- { - value := vm.pop() - key := vm.pop() - m[key.(string)] = value - } - vm.push(m) - - case OpLen: - vm.push(runtime.Len(vm.current())) - - case OpCast: - switch arg { - case 0: - vm.push(runtime.ToInt(vm.pop())) - case 1: - vm.push(runtime.ToInt64(vm.pop())) - case 2: - vm.push(runtime.ToFloat64(vm.pop())) - } - - case OpDeref: - a := vm.pop() - vm.push(deref.Interface(a)) - - case OpIncrementIndex: - vm.scope().Index++ - - case OpDecrementIndex: - scope := vm.scope() - scope.Index-- - - case OpIncrementCount: - scope := vm.scope() - scope.Count++ - - case OpGetIndex: - vm.push(vm.scope().Index) - - case OpGetCount: - scope := vm.scope() - vm.push(scope.Count) - - case OpGetLen: - scope := vm.scope() - vm.push(scope.Len) - - case OpGetAcc: - vm.push(vm.scope().Acc) - - case OpSetAcc: - vm.scope().Acc = vm.pop() - - case OpSetIndex: - scope := vm.scope() - scope.Index = vm.pop().(int) - - case OpPointer: - scope := vm.scope() - vm.push(scope.Array.Index(scope.Index).Interface()) - - case OpThrow: - panic(vm.pop().(error)) - - case OpCreate: - switch arg { - case 1: - vm.push(make(groupBy)) - case 2: - scope := vm.scope() - var desc bool - switch vm.pop().(string) { - case "asc": - desc = false - case "desc": - desc = true - default: - panic("unknown order, use asc or desc") - } - vm.push(&runtime.SortBy{ - Desc: desc, - Array: make([]any, 0, scope.Len), - Values: make([]any, 0, scope.Len), - }) - default: - panic(fmt.Sprintf("unknown OpCreate argument %v", arg)) - } - - case OpGroupBy: - scope := vm.scope() - key := vm.pop() - item := scope.Array.Index(scope.Index).Interface() - scope.Acc.(groupBy)[key] = append(scope.Acc.(groupBy)[key], item) - - case OpSortBy: - scope := vm.scope() - value := vm.pop() - item := scope.Array.Index(scope.Index).Interface() - sortable := scope.Acc.(*runtime.SortBy) - sortable.Array = append(sortable.Array, item) - sortable.Values = append(sortable.Values, value) - - case OpSort: - scope := vm.scope() - sortable := scope.Acc.(*runtime.SortBy) - sort.Sort(sortable) - vm.memGrow(uint(scope.Len)) - vm.push(sortable.Array) - - case OpProfileStart: - span := program.Constants[arg].(*Span) - span.start = time.Now() - - case OpProfileEnd: - span := program.Constants[arg].(*Span) - span.Duration += time.Since(span.start).Nanoseconds() - - case OpBegin: - a := vm.pop() - array := reflect.ValueOf(a) - vm.Scopes = append(vm.Scopes, &Scope{ - Array: array, - Len: array.Len(), - }) - - case OpEnd: - vm.Scopes = vm.Scopes[:len(vm.Scopes)-1] - - default: - panic(fmt.Sprintf("unknown bytecode %#x", op)) - } - - if debug && vm.debug { - vm.curr <- vm.ip - } - } - - if debug && vm.debug { - close(vm.curr) - close(vm.step) - } - - if len(vm.Stack) > 0 { - return vm.pop(), nil - } - - return nil, nil -} - -func (vm *VM) push(value any) { - vm.Stack = append(vm.Stack, value) -} - -func (vm *VM) current() any { - return vm.Stack[len(vm.Stack)-1] -} - -func (vm *VM) pop() any { - value := vm.Stack[len(vm.Stack)-1] - vm.Stack = vm.Stack[:len(vm.Stack)-1] - return value -} - -func (vm *VM) memGrow(size uint) { - vm.memory += size - if vm.memory >= vm.MemoryBudget { - panic("memory budget exceeded") - } -} - -func (vm *VM) scope() *Scope { - return vm.Scopes[len(vm.Scopes)-1] -} - -func (vm *VM) Step() { - vm.step <- struct{}{} -} - -func (vm *VM) Position() chan int { - return vm.curr -} - -func clearSlice[S ~[]E, E any](s S) { - var zero E - for i := range s { - s[i] = zero // clear mem, optimized by the compiler, in Go 1.21 the "clear" builtin can be used - } -} diff --git a/vendor/github.com/google/go-cmp/LICENSE b/vendor/github.com/google/go-cmp/LICENSE deleted file mode 100644 index 32017f8..0000000 --- a/vendor/github.com/google/go-cmp/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2017 The Go Authors. All rights reserved. - -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. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -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. diff --git a/vendor/github.com/google/go-cmp/cmp/cmpopts/equate.go b/vendor/github.com/google/go-cmp/cmp/cmpopts/equate.go deleted file mode 100644 index 3d8d0cd..0000000 --- a/vendor/github.com/google/go-cmp/cmp/cmpopts/equate.go +++ /dev/null @@ -1,185 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package cmpopts provides common options for the cmp package. -package cmpopts - -import ( - "errors" - "fmt" - "math" - "reflect" - "time" - - "github.com/google/go-cmp/cmp" -) - -func equateAlways(_, _ interface{}) bool { return true } - -// EquateEmpty returns a [cmp.Comparer] option that determines all maps and slices -// with a length of zero to be equal, regardless of whether they are nil. -// -// EquateEmpty can be used in conjunction with [SortSlices] and [SortMaps]. -func EquateEmpty() cmp.Option { - return cmp.FilterValues(isEmpty, cmp.Comparer(equateAlways)) -} - -func isEmpty(x, y interface{}) bool { - vx, vy := reflect.ValueOf(x), reflect.ValueOf(y) - return (x != nil && y != nil && vx.Type() == vy.Type()) && - (vx.Kind() == reflect.Slice || vx.Kind() == reflect.Map) && - (vx.Len() == 0 && vy.Len() == 0) -} - -// EquateApprox returns a [cmp.Comparer] option that determines float32 or float64 -// values to be equal if they are within a relative fraction or absolute margin. -// This option is not used when either x or y is NaN or infinite. -// -// The fraction determines that the difference of two values must be within the -// smaller fraction of the two values, while the margin determines that the two -// values must be within some absolute margin. -// To express only a fraction or only a margin, use 0 for the other parameter. -// The fraction and margin must be non-negative. -// -// The mathematical expression used is equivalent to: -// -// |x-y| ≤ max(fraction*min(|x|, |y|), margin) -// -// EquateApprox can be used in conjunction with [EquateNaNs]. -func EquateApprox(fraction, margin float64) cmp.Option { - if margin < 0 || fraction < 0 || math.IsNaN(margin) || math.IsNaN(fraction) { - panic("margin or fraction must be a non-negative number") - } - a := approximator{fraction, margin} - return cmp.Options{ - cmp.FilterValues(areRealF64s, cmp.Comparer(a.compareF64)), - cmp.FilterValues(areRealF32s, cmp.Comparer(a.compareF32)), - } -} - -type approximator struct{ frac, marg float64 } - -func areRealF64s(x, y float64) bool { - return !math.IsNaN(x) && !math.IsNaN(y) && !math.IsInf(x, 0) && !math.IsInf(y, 0) -} -func areRealF32s(x, y float32) bool { - return areRealF64s(float64(x), float64(y)) -} -func (a approximator) compareF64(x, y float64) bool { - relMarg := a.frac * math.Min(math.Abs(x), math.Abs(y)) - return math.Abs(x-y) <= math.Max(a.marg, relMarg) -} -func (a approximator) compareF32(x, y float32) bool { - return a.compareF64(float64(x), float64(y)) -} - -// EquateNaNs returns a [cmp.Comparer] option that determines float32 and float64 -// NaN values to be equal. -// -// EquateNaNs can be used in conjunction with [EquateApprox]. -func EquateNaNs() cmp.Option { - return cmp.Options{ - cmp.FilterValues(areNaNsF64s, cmp.Comparer(equateAlways)), - cmp.FilterValues(areNaNsF32s, cmp.Comparer(equateAlways)), - } -} - -func areNaNsF64s(x, y float64) bool { - return math.IsNaN(x) && math.IsNaN(y) -} -func areNaNsF32s(x, y float32) bool { - return areNaNsF64s(float64(x), float64(y)) -} - -// EquateApproxTime returns a [cmp.Comparer] option that determines two non-zero -// [time.Time] values to be equal if they are within some margin of one another. -// If both times have a monotonic clock reading, then the monotonic time -// difference will be used. The margin must be non-negative. -func EquateApproxTime(margin time.Duration) cmp.Option { - if margin < 0 { - panic("margin must be a non-negative number") - } - a := timeApproximator{margin} - return cmp.FilterValues(areNonZeroTimes, cmp.Comparer(a.compare)) -} - -func areNonZeroTimes(x, y time.Time) bool { - return !x.IsZero() && !y.IsZero() -} - -type timeApproximator struct { - margin time.Duration -} - -func (a timeApproximator) compare(x, y time.Time) bool { - // Avoid subtracting times to avoid overflow when the - // difference is larger than the largest representable duration. - if x.After(y) { - // Ensure x is always before y - x, y = y, x - } - // We're within the margin if x+margin >= y. - // Note: time.Time doesn't have AfterOrEqual method hence the negation. - return !x.Add(a.margin).Before(y) -} - -// AnyError is an error that matches any non-nil error. -var AnyError anyError - -type anyError struct{} - -func (anyError) Error() string { return "any error" } -func (anyError) Is(err error) bool { return err != nil } - -// EquateErrors returns a [cmp.Comparer] option that determines errors to be equal -// if [errors.Is] reports them to match. The [AnyError] error can be used to -// match any non-nil error. -func EquateErrors() cmp.Option { - return cmp.FilterValues(areConcreteErrors, cmp.Comparer(compareErrors)) -} - -// areConcreteErrors reports whether x and y are types that implement error. -// The input types are deliberately of the interface{} type rather than the -// error type so that we can handle situations where the current type is an -// interface{}, but the underlying concrete types both happen to implement -// the error interface. -func areConcreteErrors(x, y interface{}) bool { - _, ok1 := x.(error) - _, ok2 := y.(error) - return ok1 && ok2 -} - -func compareErrors(x, y interface{}) bool { - xe := x.(error) - ye := y.(error) - return errors.Is(xe, ye) || errors.Is(ye, xe) -} - -// EquateComparable returns a [cmp.Option] that determines equality -// of comparable types by directly comparing them using the == operator in Go. -// The types to compare are specified by passing a value of that type. -// This option should only be used on types that are documented as being -// safe for direct == comparison. For example, [net/netip.Addr] is documented -// as being semantically safe to use with ==, while [time.Time] is documented -// to discourage the use of == on time values. -func EquateComparable(typs ...interface{}) cmp.Option { - types := make(typesFilter) - for _, typ := range typs { - switch t := reflect.TypeOf(typ); { - case !t.Comparable(): - panic(fmt.Sprintf("%T is not a comparable Go type", typ)) - case types[t]: - panic(fmt.Sprintf("%T is already specified", typ)) - default: - types[t] = true - } - } - return cmp.FilterPath(types.filter, cmp.Comparer(equateAny)) -} - -type typesFilter map[reflect.Type]bool - -func (tf typesFilter) filter(p cmp.Path) bool { return tf[p.Last().Type()] } - -func equateAny(x, y interface{}) bool { return x == y } diff --git a/vendor/github.com/google/go-cmp/cmp/cmpopts/ignore.go b/vendor/github.com/google/go-cmp/cmp/cmpopts/ignore.go deleted file mode 100644 index fb84d11..0000000 --- a/vendor/github.com/google/go-cmp/cmp/cmpopts/ignore.go +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cmpopts - -import ( - "fmt" - "reflect" - "unicode" - "unicode/utf8" - - "github.com/google/go-cmp/cmp" - "github.com/google/go-cmp/cmp/internal/function" -) - -// IgnoreFields returns an [cmp.Option] that ignores fields of the -// given names on a single struct type. It respects the names of exported fields -// that are forwarded due to struct embedding. -// The struct type is specified by passing in a value of that type. -// -// The name may be a dot-delimited string (e.g., "Foo.Bar") to ignore a -// specific sub-field that is embedded or nested within the parent struct. -func IgnoreFields(typ interface{}, names ...string) cmp.Option { - sf := newStructFilter(typ, names...) - return cmp.FilterPath(sf.filter, cmp.Ignore()) -} - -// IgnoreTypes returns an [cmp.Option] that ignores all values assignable to -// certain types, which are specified by passing in a value of each type. -func IgnoreTypes(typs ...interface{}) cmp.Option { - tf := newTypeFilter(typs...) - return cmp.FilterPath(tf.filter, cmp.Ignore()) -} - -type typeFilter []reflect.Type - -func newTypeFilter(typs ...interface{}) (tf typeFilter) { - for _, typ := range typs { - t := reflect.TypeOf(typ) - if t == nil { - // This occurs if someone tries to pass in sync.Locker(nil) - panic("cannot determine type; consider using IgnoreInterfaces") - } - tf = append(tf, t) - } - return tf -} -func (tf typeFilter) filter(p cmp.Path) bool { - if len(p) < 1 { - return false - } - t := p.Last().Type() - for _, ti := range tf { - if t.AssignableTo(ti) { - return true - } - } - return false -} - -// IgnoreInterfaces returns an [cmp.Option] that ignores all values or references of -// values assignable to certain interface types. These interfaces are specified -// by passing in an anonymous struct with the interface types embedded in it. -// For example, to ignore [sync.Locker], pass in struct{sync.Locker}{}. -func IgnoreInterfaces(ifaces interface{}) cmp.Option { - tf := newIfaceFilter(ifaces) - return cmp.FilterPath(tf.filter, cmp.Ignore()) -} - -type ifaceFilter []reflect.Type - -func newIfaceFilter(ifaces interface{}) (tf ifaceFilter) { - t := reflect.TypeOf(ifaces) - if ifaces == nil || t.Name() != "" || t.Kind() != reflect.Struct { - panic("input must be an anonymous struct") - } - for i := 0; i < t.NumField(); i++ { - fi := t.Field(i) - switch { - case !fi.Anonymous: - panic("struct cannot have named fields") - case fi.Type.Kind() != reflect.Interface: - panic("embedded field must be an interface type") - case fi.Type.NumMethod() == 0: - // This matches everything; why would you ever want this? - panic("cannot ignore empty interface") - default: - tf = append(tf, fi.Type) - } - } - return tf -} -func (tf ifaceFilter) filter(p cmp.Path) bool { - if len(p) < 1 { - return false - } - t := p.Last().Type() - for _, ti := range tf { - if t.AssignableTo(ti) { - return true - } - if t.Kind() != reflect.Ptr && reflect.PtrTo(t).AssignableTo(ti) { - return true - } - } - return false -} - -// IgnoreUnexported returns an [cmp.Option] that only ignores the immediate unexported -// fields of a struct, including anonymous fields of unexported types. -// In particular, unexported fields within the struct's exported fields -// of struct types, including anonymous fields, will not be ignored unless the -// type of the field itself is also passed to IgnoreUnexported. -// -// Avoid ignoring unexported fields of a type which you do not control (i.e. a -// type from another repository), as changes to the implementation of such types -// may change how the comparison behaves. Prefer a custom [cmp.Comparer] instead. -func IgnoreUnexported(typs ...interface{}) cmp.Option { - ux := newUnexportedFilter(typs...) - return cmp.FilterPath(ux.filter, cmp.Ignore()) -} - -type unexportedFilter struct{ m map[reflect.Type]bool } - -func newUnexportedFilter(typs ...interface{}) unexportedFilter { - ux := unexportedFilter{m: make(map[reflect.Type]bool)} - for _, typ := range typs { - t := reflect.TypeOf(typ) - if t == nil || t.Kind() != reflect.Struct { - panic(fmt.Sprintf("%T must be a non-pointer struct", typ)) - } - ux.m[t] = true - } - return ux -} -func (xf unexportedFilter) filter(p cmp.Path) bool { - sf, ok := p.Index(-1).(cmp.StructField) - if !ok { - return false - } - return xf.m[p.Index(-2).Type()] && !isExported(sf.Name()) -} - -// isExported reports whether the identifier is exported. -func isExported(id string) bool { - r, _ := utf8.DecodeRuneInString(id) - return unicode.IsUpper(r) -} - -// IgnoreSliceElements returns an [cmp.Option] that ignores elements of []V. -// The discard function must be of the form "func(T) bool" which is used to -// ignore slice elements of type V, where V is assignable to T. -// Elements are ignored if the function reports true. -func IgnoreSliceElements(discardFunc interface{}) cmp.Option { - vf := reflect.ValueOf(discardFunc) - if !function.IsType(vf.Type(), function.ValuePredicate) || vf.IsNil() { - panic(fmt.Sprintf("invalid discard function: %T", discardFunc)) - } - return cmp.FilterPath(func(p cmp.Path) bool { - si, ok := p.Index(-1).(cmp.SliceIndex) - if !ok { - return false - } - if !si.Type().AssignableTo(vf.Type().In(0)) { - return false - } - vx, vy := si.Values() - if vx.IsValid() && vf.Call([]reflect.Value{vx})[0].Bool() { - return true - } - if vy.IsValid() && vf.Call([]reflect.Value{vy})[0].Bool() { - return true - } - return false - }, cmp.Ignore()) -} - -// IgnoreMapEntries returns an [cmp.Option] that ignores entries of map[K]V. -// The discard function must be of the form "func(T, R) bool" which is used to -// ignore map entries of type K and V, where K and V are assignable to T and R. -// Entries are ignored if the function reports true. -func IgnoreMapEntries(discardFunc interface{}) cmp.Option { - vf := reflect.ValueOf(discardFunc) - if !function.IsType(vf.Type(), function.KeyValuePredicate) || vf.IsNil() { - panic(fmt.Sprintf("invalid discard function: %T", discardFunc)) - } - return cmp.FilterPath(func(p cmp.Path) bool { - mi, ok := p.Index(-1).(cmp.MapIndex) - if !ok { - return false - } - if !mi.Key().Type().AssignableTo(vf.Type().In(0)) || !mi.Type().AssignableTo(vf.Type().In(1)) { - return false - } - k := mi.Key() - vx, vy := mi.Values() - if vx.IsValid() && vf.Call([]reflect.Value{k, vx})[0].Bool() { - return true - } - if vy.IsValid() && vf.Call([]reflect.Value{k, vy})[0].Bool() { - return true - } - return false - }, cmp.Ignore()) -} diff --git a/vendor/github.com/google/go-cmp/cmp/cmpopts/sort.go b/vendor/github.com/google/go-cmp/cmp/cmpopts/sort.go deleted file mode 100644 index 720f3cd..0000000 --- a/vendor/github.com/google/go-cmp/cmp/cmpopts/sort.go +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cmpopts - -import ( - "fmt" - "reflect" - "sort" - - "github.com/google/go-cmp/cmp" - "github.com/google/go-cmp/cmp/internal/function" -) - -// SortSlices returns a [cmp.Transformer] option that sorts all []V. -// The lessOrCompareFunc function must be either -// a less function of the form "func(T, T) bool" or -// a compare function of the format "func(T, T) int" -// which is used to sort any slice with element type V that is assignable to T. -// -// A less function must be: -// - Deterministic: less(x, y) == less(x, y) -// - Irreflexive: !less(x, x) -// - Transitive: if !less(x, y) and !less(y, z), then !less(x, z) -// -// A compare function must be: -// - Deterministic: compare(x, y) == compare(x, y) -// - Irreflexive: compare(x, x) == 0 -// - Transitive: if !less(x, y) and !less(y, z), then !less(x, z) -// -// The function does not have to be "total". That is, if x != y, but -// less or compare report inequality, their relative order is maintained. -// -// SortSlices can be used in conjunction with [EquateEmpty]. -func SortSlices(lessOrCompareFunc interface{}) cmp.Option { - vf := reflect.ValueOf(lessOrCompareFunc) - if (!function.IsType(vf.Type(), function.Less) && !function.IsType(vf.Type(), function.Compare)) || vf.IsNil() { - panic(fmt.Sprintf("invalid less or compare function: %T", lessOrCompareFunc)) - } - ss := sliceSorter{vf.Type().In(0), vf} - return cmp.FilterValues(ss.filter, cmp.Transformer("cmpopts.SortSlices", ss.sort)) -} - -type sliceSorter struct { - in reflect.Type // T - fnc reflect.Value // func(T, T) bool -} - -func (ss sliceSorter) filter(x, y interface{}) bool { - vx, vy := reflect.ValueOf(x), reflect.ValueOf(y) - if !(x != nil && y != nil && vx.Type() == vy.Type()) || - !(vx.Kind() == reflect.Slice && vx.Type().Elem().AssignableTo(ss.in)) || - (vx.Len() <= 1 && vy.Len() <= 1) { - return false - } - // Check whether the slices are already sorted to avoid an infinite - // recursion cycle applying the same transform to itself. - ok1 := sort.SliceIsSorted(x, func(i, j int) bool { return ss.less(vx, i, j) }) - ok2 := sort.SliceIsSorted(y, func(i, j int) bool { return ss.less(vy, i, j) }) - return !ok1 || !ok2 -} -func (ss sliceSorter) sort(x interface{}) interface{} { - src := reflect.ValueOf(x) - dst := reflect.MakeSlice(src.Type(), src.Len(), src.Len()) - for i := 0; i < src.Len(); i++ { - dst.Index(i).Set(src.Index(i)) - } - sort.SliceStable(dst.Interface(), func(i, j int) bool { return ss.less(dst, i, j) }) - ss.checkSort(dst) - return dst.Interface() -} -func (ss sliceSorter) checkSort(v reflect.Value) { - start := -1 // Start of a sequence of equal elements. - for i := 1; i < v.Len(); i++ { - if ss.less(v, i-1, i) { - // Check that first and last elements in v[start:i] are equal. - if start >= 0 && (ss.less(v, start, i-1) || ss.less(v, i-1, start)) { - panic(fmt.Sprintf("incomparable values detected: want equal elements: %v", v.Slice(start, i))) - } - start = -1 - } else if start == -1 { - start = i - } - } -} -func (ss sliceSorter) less(v reflect.Value, i, j int) bool { - vx, vy := v.Index(i), v.Index(j) - vo := ss.fnc.Call([]reflect.Value{vx, vy})[0] - if vo.Kind() == reflect.Bool { - return vo.Bool() - } else { - return vo.Int() < 0 - } -} - -// SortMaps returns a [cmp.Transformer] option that flattens map[K]V types to be -// a sorted []struct{K, V}. The lessOrCompareFunc function must be either -// a less function of the form "func(T, T) bool" or -// a compare function of the format "func(T, T) int" -// which is used to sort any map with key K that is assignable to T. -// -// Flattening the map into a slice has the property that [cmp.Equal] is able to -// use [cmp.Comparer] options on K or the K.Equal method if it exists. -// -// A less function must be: -// - Deterministic: less(x, y) == less(x, y) -// - Irreflexive: !less(x, x) -// - Transitive: if !less(x, y) and !less(y, z), then !less(x, z) -// - Total: if x != y, then either less(x, y) or less(y, x) -// -// A compare function must be: -// - Deterministic: compare(x, y) == compare(x, y) -// - Irreflexive: compare(x, x) == 0 -// - Transitive: if compare(x, y) < 0 and compare(y, z) < 0, then compare(x, z) < 0 -// - Total: if x != y, then compare(x, y) != 0 -// -// SortMaps can be used in conjunction with [EquateEmpty]. -func SortMaps(lessOrCompareFunc interface{}) cmp.Option { - vf := reflect.ValueOf(lessOrCompareFunc) - if (!function.IsType(vf.Type(), function.Less) && !function.IsType(vf.Type(), function.Compare)) || vf.IsNil() { - panic(fmt.Sprintf("invalid less or compare function: %T", lessOrCompareFunc)) - } - ms := mapSorter{vf.Type().In(0), vf} - return cmp.FilterValues(ms.filter, cmp.Transformer("cmpopts.SortMaps", ms.sort)) -} - -type mapSorter struct { - in reflect.Type // T - fnc reflect.Value // func(T, T) bool -} - -func (ms mapSorter) filter(x, y interface{}) bool { - vx, vy := reflect.ValueOf(x), reflect.ValueOf(y) - return (x != nil && y != nil && vx.Type() == vy.Type()) && - (vx.Kind() == reflect.Map && vx.Type().Key().AssignableTo(ms.in)) && - (vx.Len() != 0 || vy.Len() != 0) -} -func (ms mapSorter) sort(x interface{}) interface{} { - src := reflect.ValueOf(x) - outType := reflect.StructOf([]reflect.StructField{ - {Name: "K", Type: src.Type().Key()}, - {Name: "V", Type: src.Type().Elem()}, - }) - dst := reflect.MakeSlice(reflect.SliceOf(outType), src.Len(), src.Len()) - for i, k := range src.MapKeys() { - v := reflect.New(outType).Elem() - v.Field(0).Set(k) - v.Field(1).Set(src.MapIndex(k)) - dst.Index(i).Set(v) - } - sort.Slice(dst.Interface(), func(i, j int) bool { return ms.less(dst, i, j) }) - ms.checkSort(dst) - return dst.Interface() -} -func (ms mapSorter) checkSort(v reflect.Value) { - for i := 1; i < v.Len(); i++ { - if !ms.less(v, i-1, i) { - panic(fmt.Sprintf("partial order detected: want %v < %v", v.Index(i-1), v.Index(i))) - } - } -} -func (ms mapSorter) less(v reflect.Value, i, j int) bool { - vx, vy := v.Index(i).Field(0), v.Index(j).Field(0) - vo := ms.fnc.Call([]reflect.Value{vx, vy})[0] - if vo.Kind() == reflect.Bool { - return vo.Bool() - } else { - return vo.Int() < 0 - } -} diff --git a/vendor/github.com/google/go-cmp/cmp/cmpopts/struct_filter.go b/vendor/github.com/google/go-cmp/cmp/cmpopts/struct_filter.go deleted file mode 100644 index ca11a40..0000000 --- a/vendor/github.com/google/go-cmp/cmp/cmpopts/struct_filter.go +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cmpopts - -import ( - "fmt" - "reflect" - "strings" - - "github.com/google/go-cmp/cmp" -) - -// filterField returns a new Option where opt is only evaluated on paths that -// include a specific exported field on a single struct type. -// The struct type is specified by passing in a value of that type. -// -// The name may be a dot-delimited string (e.g., "Foo.Bar") to select a -// specific sub-field that is embedded or nested within the parent struct. -func filterField(typ interface{}, name string, opt cmp.Option) cmp.Option { - // TODO: This is currently unexported over concerns of how helper filters - // can be composed together easily. - // TODO: Add tests for FilterField. - - sf := newStructFilter(typ, name) - return cmp.FilterPath(sf.filter, opt) -} - -type structFilter struct { - t reflect.Type // The root struct type to match on - ft fieldTree // Tree of fields to match on -} - -func newStructFilter(typ interface{}, names ...string) structFilter { - // TODO: Perhaps allow * as a special identifier to allow ignoring any - // number of path steps until the next field match? - // This could be useful when a concrete struct gets transformed into - // an anonymous struct where it is not possible to specify that by type, - // but the transformer happens to provide guarantees about the names of - // the transformed fields. - - t := reflect.TypeOf(typ) - if t == nil || t.Kind() != reflect.Struct { - panic(fmt.Sprintf("%T must be a non-pointer struct", typ)) - } - var ft fieldTree - for _, name := range names { - cname, err := canonicalName(t, name) - if err != nil { - panic(fmt.Sprintf("%s: %v", strings.Join(cname, "."), err)) - } - ft.insert(cname) - } - return structFilter{t, ft} -} - -func (sf structFilter) filter(p cmp.Path) bool { - for i, ps := range p { - if ps.Type().AssignableTo(sf.t) && sf.ft.matchPrefix(p[i+1:]) { - return true - } - } - return false -} - -// fieldTree represents a set of dot-separated identifiers. -// -// For example, inserting the following selectors: -// -// Foo -// Foo.Bar.Baz -// Foo.Buzz -// Nuka.Cola.Quantum -// -// Results in a tree of the form: -// -// {sub: { -// "Foo": {ok: true, sub: { -// "Bar": {sub: { -// "Baz": {ok: true}, -// }}, -// "Buzz": {ok: true}, -// }}, -// "Nuka": {sub: { -// "Cola": {sub: { -// "Quantum": {ok: true}, -// }}, -// }}, -// }} -type fieldTree struct { - ok bool // Whether this is a specified node - sub map[string]fieldTree // The sub-tree of fields under this node -} - -// insert inserts a sequence of field accesses into the tree. -func (ft *fieldTree) insert(cname []string) { - if ft.sub == nil { - ft.sub = make(map[string]fieldTree) - } - if len(cname) == 0 { - ft.ok = true - return - } - sub := ft.sub[cname[0]] - sub.insert(cname[1:]) - ft.sub[cname[0]] = sub -} - -// matchPrefix reports whether any selector in the fieldTree matches -// the start of path p. -func (ft fieldTree) matchPrefix(p cmp.Path) bool { - for _, ps := range p { - switch ps := ps.(type) { - case cmp.StructField: - ft = ft.sub[ps.Name()] - if ft.ok { - return true - } - if len(ft.sub) == 0 { - return false - } - case cmp.Indirect: - default: - return false - } - } - return false -} - -// canonicalName returns a list of identifiers where any struct field access -// through an embedded field is expanded to include the names of the embedded -// types themselves. -// -// For example, suppose field "Foo" is not directly in the parent struct, -// but actually from an embedded struct of type "Bar". Then, the canonical name -// of "Foo" is actually "Bar.Foo". -// -// Suppose field "Foo" is not directly in the parent struct, but actually -// a field in two different embedded structs of types "Bar" and "Baz". -// Then the selector "Foo" causes a panic since it is ambiguous which one it -// refers to. The user must specify either "Bar.Foo" or "Baz.Foo". -func canonicalName(t reflect.Type, sel string) ([]string, error) { - var name string - sel = strings.TrimPrefix(sel, ".") - if sel == "" { - return nil, fmt.Errorf("name must not be empty") - } - if i := strings.IndexByte(sel, '.'); i < 0 { - name, sel = sel, "" - } else { - name, sel = sel[:i], sel[i:] - } - - // Type must be a struct or pointer to struct. - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - if t.Kind() != reflect.Struct { - return nil, fmt.Errorf("%v must be a struct", t) - } - - // Find the canonical name for this current field name. - // If the field exists in an embedded struct, then it will be expanded. - sf, _ := t.FieldByName(name) - if !isExported(name) { - // Avoid using reflect.Type.FieldByName for unexported fields due to - // buggy behavior with regard to embeddeding and unexported fields. - // See https://golang.org/issue/4876 for details. - sf = reflect.StructField{} - for i := 0; i < t.NumField() && sf.Name == ""; i++ { - if t.Field(i).Name == name { - sf = t.Field(i) - } - } - } - if sf.Name == "" { - return []string{name}, fmt.Errorf("does not exist") - } - var ss []string - for i := range sf.Index { - ss = append(ss, t.FieldByIndex(sf.Index[:i+1]).Name) - } - if sel == "" { - return ss, nil - } - ssPost, err := canonicalName(sf.Type, sel) - return append(ss, ssPost...), err -} diff --git a/vendor/github.com/google/go-cmp/cmp/cmpopts/xform.go b/vendor/github.com/google/go-cmp/cmp/cmpopts/xform.go deleted file mode 100644 index 25b4bd0..0000000 --- a/vendor/github.com/google/go-cmp/cmp/cmpopts/xform.go +++ /dev/null @@ -1,36 +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 cmpopts - -import ( - "github.com/google/go-cmp/cmp" -) - -type xformFilter struct{ xform cmp.Option } - -func (xf xformFilter) filter(p cmp.Path) bool { - for _, ps := range p { - if t, ok := ps.(cmp.Transform); ok && t.Option() == xf.xform { - return false - } - } - return true -} - -// AcyclicTransformer returns a [cmp.Transformer] with a filter applied that ensures -// that the transformer cannot be recursively applied upon its own output. -// -// An example use case is a transformer that splits a string by lines: -// -// AcyclicTransformer("SplitLines", func(s string) []string{ -// return strings.Split(s, "\n") -// }) -// -// Had this been an unfiltered [cmp.Transformer] instead, this would result in an -// infinite cycle converting a string to []string to [][]string and so on. -func AcyclicTransformer(name string, xformFunc interface{}) cmp.Option { - xf := xformFilter{cmp.Transformer(name, xformFunc)} - return cmp.FilterPath(xf.filter, xf.xform) -} diff --git a/vendor/github.com/google/go-cmp/cmp/compare.go b/vendor/github.com/google/go-cmp/cmp/compare.go deleted file mode 100644 index 0f5b8a4..0000000 --- a/vendor/github.com/google/go-cmp/cmp/compare.go +++ /dev/null @@ -1,671 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package cmp determines equality of values. -// -// This package is intended to be a more powerful and safer alternative to -// [reflect.DeepEqual] for comparing whether two values are semantically equal. -// It is intended to only be used in tests, as performance is not a goal and -// it may panic if it cannot compare the values. Its propensity towards -// panicking means that its unsuitable for production environments where a -// spurious panic may be fatal. -// -// The primary features of cmp are: -// -// - When the default behavior of equality does not suit the test's needs, -// custom equality functions can override the equality operation. -// For example, an equality function may report floats as equal so long as -// they are within some tolerance of each other. -// -// - Types with an Equal method (e.g., [time.Time.Equal]) may use that method -// to determine equality. This allows package authors to determine -// the equality operation for the types that they define. -// -// - If no custom equality functions are used and no Equal method is defined, -// equality is determined by recursively comparing the primitive kinds on -// both values, much like [reflect.DeepEqual]. Unlike [reflect.DeepEqual], -// unexported fields are not compared by default; they result in panics -// unless suppressed by using an [Ignore] option -// (see [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported]) -// or explicitly compared using the [Exporter] option. -package cmp - -import ( - "fmt" - "reflect" - "strings" - - "github.com/google/go-cmp/cmp/internal/diff" - "github.com/google/go-cmp/cmp/internal/function" - "github.com/google/go-cmp/cmp/internal/value" -) - -// TODO(≥go1.18): Use any instead of interface{}. - -// Equal reports whether x and y are equal by recursively applying the -// following rules in the given order to x and y and all of their sub-values: -// -// - Let S be the set of all [Ignore], [Transformer], and [Comparer] options that -// remain after applying all path filters, value filters, and type filters. -// If at least one [Ignore] exists in S, then the comparison is ignored. -// If the number of [Transformer] and [Comparer] options in S is non-zero, -// then Equal panics because it is ambiguous which option to use. -// If S contains a single [Transformer], then use that to transform -// the current values and recursively call Equal on the output values. -// If S contains a single [Comparer], then use that to compare the current values. -// Otherwise, evaluation proceeds to the next rule. -// -// - If the values have an Equal method of the form "(T) Equal(T) bool" or -// "(T) Equal(I) bool" where T is assignable to I, then use the result of -// x.Equal(y) even if x or y is nil. Otherwise, no such method exists and -// evaluation proceeds to the next rule. -// -// - Lastly, try to compare x and y based on their basic kinds. -// Simple kinds like booleans, integers, floats, complex numbers, strings, -// and channels are compared using the equivalent of the == operator in Go. -// Functions are only equal if they are both nil, otherwise they are unequal. -// -// Structs are equal if recursively calling Equal on all fields report equal. -// If a struct contains unexported fields, Equal panics unless an [Ignore] option -// (e.g., [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported]) ignores that field -// or the [Exporter] option explicitly permits comparing the unexported field. -// -// Slices are equal if they are both nil or both non-nil, where recursively -// calling Equal on all non-ignored slice or array elements report equal. -// Empty non-nil slices and nil slices are not equal; to equate empty slices, -// consider using [github.com/google/go-cmp/cmp/cmpopts.EquateEmpty]. -// -// Maps are equal if they are both nil or both non-nil, where recursively -// calling Equal on all non-ignored map entries report equal. -// Map keys are equal according to the == operator. -// To use custom comparisons for map keys, consider using -// [github.com/google/go-cmp/cmp/cmpopts.SortMaps]. -// Empty non-nil maps and nil maps are not equal; to equate empty maps, -// consider using [github.com/google/go-cmp/cmp/cmpopts.EquateEmpty]. -// -// Pointers and interfaces are equal if they are both nil or both non-nil, -// where they have the same underlying concrete type and recursively -// calling Equal on the underlying values reports equal. -// -// Before recursing into a pointer, slice element, or map, the current path -// is checked to detect whether the address has already been visited. -// If there is a cycle, then the pointed at values are considered equal -// only if both addresses were previously visited in the same path step. -func Equal(x, y interface{}, opts ...Option) bool { - s := newState(opts) - s.compareAny(rootStep(x, y)) - return s.result.Equal() -} - -// Diff returns a human-readable report of the differences between two values: -// y - x. It returns an empty string if and only if Equal returns true for the -// same input values and options. -// -// The output is displayed as a literal in pseudo-Go syntax. -// At the start of each line, a "-" prefix indicates an element removed from x, -// a "+" prefix to indicates an element added from y, and the lack of a prefix -// indicates an element common to both x and y. If possible, the output -// uses fmt.Stringer.String or error.Error methods to produce more humanly -// readable outputs. In such cases, the string is prefixed with either an -// 's' or 'e' character, respectively, to indicate that the method was called. -// -// Do not depend on this output being stable. If you need the ability to -// programmatically interpret the difference, consider using a custom Reporter. -func Diff(x, y interface{}, opts ...Option) string { - s := newState(opts) - - // Optimization: If there are no other reporters, we can optimize for the - // common case where the result is equal (and thus no reported difference). - // This avoids the expensive construction of a difference tree. - if len(s.reporters) == 0 { - s.compareAny(rootStep(x, y)) - if s.result.Equal() { - return "" - } - s.result = diff.Result{} // Reset results - } - - r := new(defaultReporter) - s.reporters = append(s.reporters, reporter{r}) - s.compareAny(rootStep(x, y)) - d := r.String() - if (d == "") != s.result.Equal() { - panic("inconsistent difference and equality results") - } - return d -} - -// rootStep constructs the first path step. If x and y have differing types, -// then they are stored within an empty interface type. -func rootStep(x, y interface{}) PathStep { - vx := reflect.ValueOf(x) - vy := reflect.ValueOf(y) - - // If the inputs are different types, auto-wrap them in an empty interface - // so that they have the same parent type. - var t reflect.Type - if !vx.IsValid() || !vy.IsValid() || vx.Type() != vy.Type() { - t = anyType - if vx.IsValid() { - vvx := reflect.New(t).Elem() - vvx.Set(vx) - vx = vvx - } - if vy.IsValid() { - vvy := reflect.New(t).Elem() - vvy.Set(vy) - vy = vvy - } - } else { - t = vx.Type() - } - - return &pathStep{t, vx, vy} -} - -type state struct { - // These fields represent the "comparison state". - // Calling statelessCompare must not result in observable changes to these. - result diff.Result // The current result of comparison - curPath Path // The current path in the value tree - curPtrs pointerPath // The current set of visited pointers - reporters []reporter // Optional reporters - - // recChecker checks for infinite cycles applying the same set of - // transformers upon the output of itself. - recChecker recChecker - - // dynChecker triggers pseudo-random checks for option correctness. - // It is safe for statelessCompare to mutate this value. - dynChecker dynChecker - - // These fields, once set by processOption, will not change. - exporters []exporter // List of exporters for structs with unexported fields - opts Options // List of all fundamental and filter options -} - -func newState(opts []Option) *state { - // Always ensure a validator option exists to validate the inputs. - s := &state{opts: Options{validator{}}} - s.curPtrs.Init() - s.processOption(Options(opts)) - return s -} - -func (s *state) processOption(opt Option) { - switch opt := opt.(type) { - case nil: - case Options: - for _, o := range opt { - s.processOption(o) - } - case coreOption: - type filtered interface { - isFiltered() bool - } - if fopt, ok := opt.(filtered); ok && !fopt.isFiltered() { - panic(fmt.Sprintf("cannot use an unfiltered option: %v", opt)) - } - s.opts = append(s.opts, opt) - case exporter: - s.exporters = append(s.exporters, opt) - case reporter: - s.reporters = append(s.reporters, opt) - default: - panic(fmt.Sprintf("unknown option %T", opt)) - } -} - -// statelessCompare compares two values and returns the result. -// This function is stateless in that it does not alter the current result, -// or output to any registered reporters. -func (s *state) statelessCompare(step PathStep) diff.Result { - // We do not save and restore curPath and curPtrs because all of the - // compareX methods should properly push and pop from them. - // It is an implementation bug if the contents of the paths differ from - // when calling this function to when returning from it. - - oldResult, oldReporters := s.result, s.reporters - s.result = diff.Result{} // Reset result - s.reporters = nil // Remove reporters to avoid spurious printouts - s.compareAny(step) - res := s.result - s.result, s.reporters = oldResult, oldReporters - return res -} - -func (s *state) compareAny(step PathStep) { - // Update the path stack. - s.curPath.push(step) - defer s.curPath.pop() - for _, r := range s.reporters { - r.PushStep(step) - defer r.PopStep() - } - s.recChecker.Check(s.curPath) - - // Cycle-detection for slice elements (see NOTE in compareSlice). - t := step.Type() - vx, vy := step.Values() - if si, ok := step.(SliceIndex); ok && si.isSlice && vx.IsValid() && vy.IsValid() { - px, py := vx.Addr(), vy.Addr() - if eq, visited := s.curPtrs.Push(px, py); visited { - s.report(eq, reportByCycle) - return - } - defer s.curPtrs.Pop(px, py) - } - - // Rule 1: Check whether an option applies on this node in the value tree. - if s.tryOptions(t, vx, vy) { - return - } - - // Rule 2: Check whether the type has a valid Equal method. - if s.tryMethod(t, vx, vy) { - return - } - - // Rule 3: Compare based on the underlying kind. - switch t.Kind() { - case reflect.Bool: - s.report(vx.Bool() == vy.Bool(), 0) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - s.report(vx.Int() == vy.Int(), 0) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - s.report(vx.Uint() == vy.Uint(), 0) - case reflect.Float32, reflect.Float64: - s.report(vx.Float() == vy.Float(), 0) - case reflect.Complex64, reflect.Complex128: - s.report(vx.Complex() == vy.Complex(), 0) - case reflect.String: - s.report(vx.String() == vy.String(), 0) - case reflect.Chan, reflect.UnsafePointer: - s.report(vx.Pointer() == vy.Pointer(), 0) - case reflect.Func: - s.report(vx.IsNil() && vy.IsNil(), 0) - case reflect.Struct: - s.compareStruct(t, vx, vy) - case reflect.Slice, reflect.Array: - s.compareSlice(t, vx, vy) - case reflect.Map: - s.compareMap(t, vx, vy) - case reflect.Ptr: - s.comparePtr(t, vx, vy) - case reflect.Interface: - s.compareInterface(t, vx, vy) - default: - panic(fmt.Sprintf("%v kind not handled", t.Kind())) - } -} - -func (s *state) tryOptions(t reflect.Type, vx, vy reflect.Value) bool { - // Evaluate all filters and apply the remaining options. - if opt := s.opts.filter(s, t, vx, vy); opt != nil { - opt.apply(s, vx, vy) - return true - } - return false -} - -func (s *state) tryMethod(t reflect.Type, vx, vy reflect.Value) bool { - // Check if this type even has an Equal method. - m, ok := t.MethodByName("Equal") - if !ok || !function.IsType(m.Type, function.EqualAssignable) { - return false - } - - eq := s.callTTBFunc(m.Func, vx, vy) - s.report(eq, reportByMethod) - return true -} - -func (s *state) callTRFunc(f, v reflect.Value, step Transform) reflect.Value { - if !s.dynChecker.Next() { - return f.Call([]reflect.Value{v})[0] - } - - // Run the function twice and ensure that we get the same results back. - // We run in goroutines so that the race detector (if enabled) can detect - // unsafe mutations to the input. - c := make(chan reflect.Value) - go detectRaces(c, f, v) - got := <-c - want := f.Call([]reflect.Value{v})[0] - if step.vx, step.vy = got, want; !s.statelessCompare(step).Equal() { - // To avoid false-positives with non-reflexive equality operations, - // we sanity check whether a value is equal to itself. - if step.vx, step.vy = want, want; !s.statelessCompare(step).Equal() { - return want - } - panic(fmt.Sprintf("non-deterministic function detected: %s", function.NameOf(f))) - } - return want -} - -func (s *state) callTTBFunc(f, x, y reflect.Value) bool { - if !s.dynChecker.Next() { - return f.Call([]reflect.Value{x, y})[0].Bool() - } - - // Swapping the input arguments is sufficient to check that - // f is symmetric and deterministic. - // We run in goroutines so that the race detector (if enabled) can detect - // unsafe mutations to the input. - c := make(chan reflect.Value) - go detectRaces(c, f, y, x) - got := <-c - want := f.Call([]reflect.Value{x, y})[0].Bool() - if !got.IsValid() || got.Bool() != want { - panic(fmt.Sprintf("non-deterministic or non-symmetric function detected: %s", function.NameOf(f))) - } - return want -} - -func detectRaces(c chan<- reflect.Value, f reflect.Value, vs ...reflect.Value) { - var ret reflect.Value - defer func() { - recover() // Ignore panics, let the other call to f panic instead - c <- ret - }() - ret = f.Call(vs)[0] -} - -func (s *state) compareStruct(t reflect.Type, vx, vy reflect.Value) { - var addr bool - var vax, vay reflect.Value // Addressable versions of vx and vy - - var mayForce, mayForceInit bool - step := StructField{&structField{}} - for i := 0; i < t.NumField(); i++ { - step.typ = t.Field(i).Type - step.vx = vx.Field(i) - step.vy = vy.Field(i) - step.name = t.Field(i).Name - step.idx = i - step.unexported = !isExported(step.name) - if step.unexported { - if step.name == "_" { - continue - } - // Defer checking of unexported fields until later to give an - // Ignore a chance to ignore the field. - if !vax.IsValid() || !vay.IsValid() { - // For retrieveUnexportedField to work, the parent struct must - // be addressable. Create a new copy of the values if - // necessary to make them addressable. - addr = vx.CanAddr() || vy.CanAddr() - vax = makeAddressable(vx) - vay = makeAddressable(vy) - } - if !mayForceInit { - for _, xf := range s.exporters { - mayForce = mayForce || xf(t) - } - mayForceInit = true - } - step.mayForce = mayForce - step.paddr = addr - step.pvx = vax - step.pvy = vay - step.field = t.Field(i) - } - s.compareAny(step) - } -} - -func (s *state) compareSlice(t reflect.Type, vx, vy reflect.Value) { - isSlice := t.Kind() == reflect.Slice - if isSlice && (vx.IsNil() || vy.IsNil()) { - s.report(vx.IsNil() && vy.IsNil(), 0) - return - } - - // NOTE: It is incorrect to call curPtrs.Push on the slice header pointer - // since slices represents a list of pointers, rather than a single pointer. - // The pointer checking logic must be handled on a per-element basis - // in compareAny. - // - // A slice header (see reflect.SliceHeader) in Go is a tuple of a starting - // pointer P, a length N, and a capacity C. Supposing each slice element has - // a memory size of M, then the slice is equivalent to the list of pointers: - // [P+i*M for i in range(N)] - // - // For example, v[:0] and v[:1] are slices with the same starting pointer, - // but they are clearly different values. Using the slice pointer alone - // violates the assumption that equal pointers implies equal values. - - step := SliceIndex{&sliceIndex{pathStep: pathStep{typ: t.Elem()}, isSlice: isSlice}} - withIndexes := func(ix, iy int) SliceIndex { - if ix >= 0 { - step.vx, step.xkey = vx.Index(ix), ix - } else { - step.vx, step.xkey = reflect.Value{}, -1 - } - if iy >= 0 { - step.vy, step.ykey = vy.Index(iy), iy - } else { - step.vy, step.ykey = reflect.Value{}, -1 - } - return step - } - - // Ignore options are able to ignore missing elements in a slice. - // However, detecting these reliably requires an optimal differencing - // algorithm, for which diff.Difference is not. - // - // Instead, we first iterate through both slices to detect which elements - // would be ignored if standing alone. The index of non-discarded elements - // are stored in a separate slice, which diffing is then performed on. - var indexesX, indexesY []int - var ignoredX, ignoredY []bool - for ix := 0; ix < vx.Len(); ix++ { - ignored := s.statelessCompare(withIndexes(ix, -1)).NumDiff == 0 - if !ignored { - indexesX = append(indexesX, ix) - } - ignoredX = append(ignoredX, ignored) - } - for iy := 0; iy < vy.Len(); iy++ { - ignored := s.statelessCompare(withIndexes(-1, iy)).NumDiff == 0 - if !ignored { - indexesY = append(indexesY, iy) - } - ignoredY = append(ignoredY, ignored) - } - - // Compute an edit-script for slices vx and vy (excluding ignored elements). - edits := diff.Difference(len(indexesX), len(indexesY), func(ix, iy int) diff.Result { - return s.statelessCompare(withIndexes(indexesX[ix], indexesY[iy])) - }) - - // Replay the ignore-scripts and the edit-script. - var ix, iy int - for ix < vx.Len() || iy < vy.Len() { - var e diff.EditType - switch { - case ix < len(ignoredX) && ignoredX[ix]: - e = diff.UniqueX - case iy < len(ignoredY) && ignoredY[iy]: - e = diff.UniqueY - default: - e, edits = edits[0], edits[1:] - } - switch e { - case diff.UniqueX: - s.compareAny(withIndexes(ix, -1)) - ix++ - case diff.UniqueY: - s.compareAny(withIndexes(-1, iy)) - iy++ - default: - s.compareAny(withIndexes(ix, iy)) - ix++ - iy++ - } - } -} - -func (s *state) compareMap(t reflect.Type, vx, vy reflect.Value) { - if vx.IsNil() || vy.IsNil() { - s.report(vx.IsNil() && vy.IsNil(), 0) - return - } - - // Cycle-detection for maps. - if eq, visited := s.curPtrs.Push(vx, vy); visited { - s.report(eq, reportByCycle) - return - } - defer s.curPtrs.Pop(vx, vy) - - // We combine and sort the two map keys so that we can perform the - // comparisons in a deterministic order. - step := MapIndex{&mapIndex{pathStep: pathStep{typ: t.Elem()}}} - for _, k := range value.SortKeys(append(vx.MapKeys(), vy.MapKeys()...)) { - step.vx = vx.MapIndex(k) - step.vy = vy.MapIndex(k) - step.key = k - if !step.vx.IsValid() && !step.vy.IsValid() { - // It is possible for both vx and vy to be invalid if the - // key contained a NaN value in it. - // - // Even with the ability to retrieve NaN keys in Go 1.12, - // there still isn't a sensible way to compare the values since - // a NaN key may map to multiple unordered values. - // The most reasonable way to compare NaNs would be to compare the - // set of values. However, this is impossible to do efficiently - // since set equality is provably an O(n^2) operation given only - // an Equal function. If we had a Less function or Hash function, - // this could be done in O(n*log(n)) or O(n), respectively. - // - // Rather than adding complex logic to deal with NaNs, make it - // the user's responsibility to compare such obscure maps. - const help = "consider providing a Comparer to compare the map" - panic(fmt.Sprintf("%#v has map key with NaNs\n%s", s.curPath, help)) - } - s.compareAny(step) - } -} - -func (s *state) comparePtr(t reflect.Type, vx, vy reflect.Value) { - if vx.IsNil() || vy.IsNil() { - s.report(vx.IsNil() && vy.IsNil(), 0) - return - } - - // Cycle-detection for pointers. - if eq, visited := s.curPtrs.Push(vx, vy); visited { - s.report(eq, reportByCycle) - return - } - defer s.curPtrs.Pop(vx, vy) - - vx, vy = vx.Elem(), vy.Elem() - s.compareAny(Indirect{&indirect{pathStep{t.Elem(), vx, vy}}}) -} - -func (s *state) compareInterface(t reflect.Type, vx, vy reflect.Value) { - if vx.IsNil() || vy.IsNil() { - s.report(vx.IsNil() && vy.IsNil(), 0) - return - } - vx, vy = vx.Elem(), vy.Elem() - if vx.Type() != vy.Type() { - s.report(false, 0) - return - } - s.compareAny(TypeAssertion{&typeAssertion{pathStep{vx.Type(), vx, vy}}}) -} - -func (s *state) report(eq bool, rf resultFlags) { - if rf&reportByIgnore == 0 { - if eq { - s.result.NumSame++ - rf |= reportEqual - } else { - s.result.NumDiff++ - rf |= reportUnequal - } - } - for _, r := range s.reporters { - r.Report(Result{flags: rf}) - } -} - -// recChecker tracks the state needed to periodically perform checks that -// user provided transformers are not stuck in an infinitely recursive cycle. -type recChecker struct{ next int } - -// Check scans the Path for any recursive transformers and panics when any -// recursive transformers are detected. Note that the presence of a -// recursive Transformer does not necessarily imply an infinite cycle. -// As such, this check only activates after some minimal number of path steps. -func (rc *recChecker) Check(p Path) { - const minLen = 1 << 16 - if rc.next == 0 { - rc.next = minLen - } - if len(p) < rc.next { - return - } - rc.next <<= 1 - - // Check whether the same transformer has appeared at least twice. - var ss []string - m := map[Option]int{} - for _, ps := range p { - if t, ok := ps.(Transform); ok { - t := t.Option() - if m[t] == 1 { // Transformer was used exactly once before - tf := t.(*transformer).fnc.Type() - ss = append(ss, fmt.Sprintf("%v: %v => %v", t, tf.In(0), tf.Out(0))) - } - m[t]++ - } - } - if len(ss) > 0 { - const warning = "recursive set of Transformers detected" - const help = "consider using cmpopts.AcyclicTransformer" - set := strings.Join(ss, "\n\t") - panic(fmt.Sprintf("%s:\n\t%s\n%s", warning, set, help)) - } -} - -// dynChecker tracks the state needed to periodically perform checks that -// user provided functions are symmetric and deterministic. -// The zero value is safe for immediate use. -type dynChecker struct{ curr, next int } - -// Next increments the state and reports whether a check should be performed. -// -// Checks occur every Nth function call, where N is a triangular number: -// -// 0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190 ... -// -// See https://en.wikipedia.org/wiki/Triangular_number -// -// This sequence ensures that the cost of checks drops significantly as -// the number of functions calls grows larger. -func (dc *dynChecker) Next() bool { - ok := dc.curr == dc.next - if ok { - dc.curr = 0 - dc.next++ - } - dc.curr++ - return ok -} - -// makeAddressable returns a value that is always addressable. -// It returns the input verbatim if it is already addressable, -// otherwise it creates a new value and returns an addressable copy. -func makeAddressable(v reflect.Value) reflect.Value { - if v.CanAddr() { - return v - } - vc := reflect.New(v.Type()).Elem() - vc.Set(v) - return vc -} diff --git a/vendor/github.com/google/go-cmp/cmp/export.go b/vendor/github.com/google/go-cmp/cmp/export.go deleted file mode 100644 index 29f82fe..0000000 --- a/vendor/github.com/google/go-cmp/cmp/export.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cmp - -import ( - "reflect" - "unsafe" -) - -// retrieveUnexportedField uses unsafe to forcibly retrieve any field from -// a struct such that the value has read-write permissions. -// -// The parent struct, v, must be addressable, while f must be a StructField -// describing the field to retrieve. If addr is false, -// then the returned value will be shallowed copied to be non-addressable. -func retrieveUnexportedField(v reflect.Value, f reflect.StructField, addr bool) reflect.Value { - ve := reflect.NewAt(f.Type, unsafe.Pointer(uintptr(unsafe.Pointer(v.UnsafeAddr()))+f.Offset)).Elem() - if !addr { - // A field is addressable if and only if the struct is addressable. - // If the original parent value was not addressable, shallow copy the - // value to make it non-addressable to avoid leaking an implementation - // detail of how forcibly exporting a field works. - if ve.Kind() == reflect.Interface && ve.IsNil() { - return reflect.Zero(f.Type) - } - return reflect.ValueOf(ve.Interface()).Convert(f.Type) - } - return ve -} diff --git a/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go b/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go deleted file mode 100644 index 36062a6..0000000 --- a/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !cmp_debug -// +build !cmp_debug - -package diff - -var debug debugger - -type debugger struct{} - -func (debugger) Begin(_, _ int, f EqualFunc, _, _ *EditScript) EqualFunc { - return f -} -func (debugger) Update() {} -func (debugger) Finish() {} diff --git a/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go b/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go deleted file mode 100644 index a3b97a1..0000000 --- a/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build cmp_debug -// +build cmp_debug - -package diff - -import ( - "fmt" - "strings" - "sync" - "time" -) - -// The algorithm can be seen running in real-time by enabling debugging: -// go test -tags=cmp_debug -v -// -// Example output: -// === RUN TestDifference/#34 -// ┌───────────────────────────────┐ -// │ \ · · · · · · · · · · · · · · │ -// │ · # · · · · · · · · · · · · · │ -// │ · \ · · · · · · · · · · · · · │ -// │ · · \ · · · · · · · · · · · · │ -// │ · · · X # · · · · · · · · · · │ -// │ · · · # \ · · · · · · · · · · │ -// │ · · · · · # # · · · · · · · · │ -// │ · · · · · # \ · · · · · · · · │ -// │ · · · · · · · \ · · · · · · · │ -// │ · · · · · · · · \ · · · · · · │ -// │ · · · · · · · · · \ · · · · · │ -// │ · · · · · · · · · · \ · · # · │ -// │ · · · · · · · · · · · \ # # · │ -// │ · · · · · · · · · · · # # # · │ -// │ · · · · · · · · · · # # # # · │ -// │ · · · · · · · · · # # # # # · │ -// │ · · · · · · · · · · · · · · \ │ -// └───────────────────────────────┘ -// [.Y..M.XY......YXYXY.|] -// -// The grid represents the edit-graph where the horizontal axis represents -// list X and the vertical axis represents list Y. The start of the two lists -// is the top-left, while the ends are the bottom-right. The '·' represents -// an unexplored node in the graph. The '\' indicates that the two symbols -// from list X and Y are equal. The 'X' indicates that two symbols are similar -// (but not exactly equal) to each other. The '#' indicates that the two symbols -// are different (and not similar). The algorithm traverses this graph trying to -// make the paths starting in the top-left and the bottom-right connect. -// -// The series of '.', 'X', 'Y', and 'M' characters at the bottom represents -// the currently established path from the forward and reverse searches, -// separated by a '|' character. - -const ( - updateDelay = 100 * time.Millisecond - finishDelay = 500 * time.Millisecond - ansiTerminal = true // ANSI escape codes used to move terminal cursor -) - -var debug debugger - -type debugger struct { - sync.Mutex - p1, p2 EditScript - fwdPath, revPath *EditScript - grid []byte - lines int -} - -func (dbg *debugger) Begin(nx, ny int, f EqualFunc, p1, p2 *EditScript) EqualFunc { - dbg.Lock() - dbg.fwdPath, dbg.revPath = p1, p2 - top := "┌─" + strings.Repeat("──", nx) + "┐\n" - row := "│ " + strings.Repeat("· ", nx) + "│\n" - btm := "└─" + strings.Repeat("──", nx) + "┘\n" - dbg.grid = []byte(top + strings.Repeat(row, ny) + btm) - dbg.lines = strings.Count(dbg.String(), "\n") - fmt.Print(dbg) - - // Wrap the EqualFunc so that we can intercept each result. - return func(ix, iy int) (r Result) { - cell := dbg.grid[len(top)+iy*len(row):][len("│ ")+len("· ")*ix:][:len("·")] - for i := range cell { - cell[i] = 0 // Zero out the multiple bytes of UTF-8 middle-dot - } - switch r = f(ix, iy); { - case r.Equal(): - cell[0] = '\\' - case r.Similar(): - cell[0] = 'X' - default: - cell[0] = '#' - } - return - } -} - -func (dbg *debugger) Update() { - dbg.print(updateDelay) -} - -func (dbg *debugger) Finish() { - dbg.print(finishDelay) - dbg.Unlock() -} - -func (dbg *debugger) String() string { - dbg.p1, dbg.p2 = *dbg.fwdPath, dbg.p2[:0] - for i := len(*dbg.revPath) - 1; i >= 0; i-- { - dbg.p2 = append(dbg.p2, (*dbg.revPath)[i]) - } - return fmt.Sprintf("%s[%v|%v]\n\n", dbg.grid, dbg.p1, dbg.p2) -} - -func (dbg *debugger) print(d time.Duration) { - if ansiTerminal { - fmt.Printf("\x1b[%dA", dbg.lines) // Reset terminal cursor - } - fmt.Print(dbg) - time.Sleep(d) -} diff --git a/vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go b/vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go deleted file mode 100644 index a248e54..0000000 --- a/vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go +++ /dev/null @@ -1,402 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package diff implements an algorithm for producing edit-scripts. -// The edit-script is a sequence of operations needed to transform one list -// of symbols into another (or vice-versa). The edits allowed are insertions, -// deletions, and modifications. The summation of all edits is called the -// Levenshtein distance as this problem is well-known in computer science. -// -// This package prioritizes performance over accuracy. That is, the run time -// is more important than obtaining a minimal Levenshtein distance. -package diff - -import ( - "math/rand" - "time" - - "github.com/google/go-cmp/cmp/internal/flags" -) - -// EditType represents a single operation within an edit-script. -type EditType uint8 - -const ( - // Identity indicates that a symbol pair is identical in both list X and Y. - Identity EditType = iota - // UniqueX indicates that a symbol only exists in X and not Y. - UniqueX - // UniqueY indicates that a symbol only exists in Y and not X. - UniqueY - // Modified indicates that a symbol pair is a modification of each other. - Modified -) - -// EditScript represents the series of differences between two lists. -type EditScript []EditType - -// String returns a human-readable string representing the edit-script where -// Identity, UniqueX, UniqueY, and Modified are represented by the -// '.', 'X', 'Y', and 'M' characters, respectively. -func (es EditScript) String() string { - b := make([]byte, len(es)) - for i, e := range es { - switch e { - case Identity: - b[i] = '.' - case UniqueX: - b[i] = 'X' - case UniqueY: - b[i] = 'Y' - case Modified: - b[i] = 'M' - default: - panic("invalid edit-type") - } - } - return string(b) -} - -// stats returns a histogram of the number of each type of edit operation. -func (es EditScript) stats() (s struct{ NI, NX, NY, NM int }) { - for _, e := range es { - switch e { - case Identity: - s.NI++ - case UniqueX: - s.NX++ - case UniqueY: - s.NY++ - case Modified: - s.NM++ - default: - panic("invalid edit-type") - } - } - return -} - -// Dist is the Levenshtein distance and is guaranteed to be 0 if and only if -// lists X and Y are equal. -func (es EditScript) Dist() int { return len(es) - es.stats().NI } - -// LenX is the length of the X list. -func (es EditScript) LenX() int { return len(es) - es.stats().NY } - -// LenY is the length of the Y list. -func (es EditScript) LenY() int { return len(es) - es.stats().NX } - -// EqualFunc reports whether the symbols at indexes ix and iy are equal. -// When called by Difference, the index is guaranteed to be within nx and ny. -type EqualFunc func(ix int, iy int) Result - -// Result is the result of comparison. -// NumSame is the number of sub-elements that are equal. -// NumDiff is the number of sub-elements that are not equal. -type Result struct{ NumSame, NumDiff int } - -// BoolResult returns a Result that is either Equal or not Equal. -func BoolResult(b bool) Result { - if b { - return Result{NumSame: 1} // Equal, Similar - } else { - return Result{NumDiff: 2} // Not Equal, not Similar - } -} - -// Equal indicates whether the symbols are equal. Two symbols are equal -// if and only if NumDiff == 0. If Equal, then they are also Similar. -func (r Result) Equal() bool { return r.NumDiff == 0 } - -// Similar indicates whether two symbols are similar and may be represented -// by using the Modified type. As a special case, we consider binary comparisons -// (i.e., those that return Result{1, 0} or Result{0, 1}) to be similar. -// -// The exact ratio of NumSame to NumDiff to determine similarity may change. -func (r Result) Similar() bool { - // Use NumSame+1 to offset NumSame so that binary comparisons are similar. - return r.NumSame+1 >= r.NumDiff -} - -var randBool = rand.New(rand.NewSource(time.Now().Unix())).Intn(2) == 0 - -// Difference reports whether two lists of lengths nx and ny are equal -// given the definition of equality provided as f. -// -// This function returns an edit-script, which is a sequence of operations -// needed to convert one list into the other. The following invariants for -// the edit-script are maintained: -// - eq == (es.Dist()==0) -// - nx == es.LenX() -// - ny == es.LenY() -// -// This algorithm is not guaranteed to be an optimal solution (i.e., one that -// produces an edit-script with a minimal Levenshtein distance). This algorithm -// favors performance over optimality. The exact output is not guaranteed to -// be stable and may change over time. -func Difference(nx, ny int, f EqualFunc) (es EditScript) { - // This algorithm is based on traversing what is known as an "edit-graph". - // See Figure 1 from "An O(ND) Difference Algorithm and Its Variations" - // by Eugene W. Myers. Since D can be as large as N itself, this is - // effectively O(N^2). Unlike the algorithm from that paper, we are not - // interested in the optimal path, but at least some "decent" path. - // - // For example, let X and Y be lists of symbols: - // X = [A B C A B B A] - // Y = [C B A B A C] - // - // The edit-graph can be drawn as the following: - // A B C A B B A - // ┌─────────────┐ - // C │_|_|\|_|_|_|_│ 0 - // B │_|\|_|_|\|\|_│ 1 - // A │\|_|_|\|_|_|\│ 2 - // B │_|\|_|_|\|\|_│ 3 - // A │\|_|_|\|_|_|\│ 4 - // C │ | |\| | | | │ 5 - // └─────────────┘ 6 - // 0 1 2 3 4 5 6 7 - // - // List X is written along the horizontal axis, while list Y is written - // along the vertical axis. At any point on this grid, if the symbol in - // list X matches the corresponding symbol in list Y, then a '\' is drawn. - // The goal of any minimal edit-script algorithm is to find a path from the - // top-left corner to the bottom-right corner, while traveling through the - // fewest horizontal or vertical edges. - // A horizontal edge is equivalent to inserting a symbol from list X. - // A vertical edge is equivalent to inserting a symbol from list Y. - // A diagonal edge is equivalent to a matching symbol between both X and Y. - - // Invariants: - // - 0 ≤ fwdPath.X ≤ (fwdFrontier.X, revFrontier.X) ≤ revPath.X ≤ nx - // - 0 ≤ fwdPath.Y ≤ (fwdFrontier.Y, revFrontier.Y) ≤ revPath.Y ≤ ny - // - // In general: - // - fwdFrontier.X < revFrontier.X - // - fwdFrontier.Y < revFrontier.Y - // - // Unless, it is time for the algorithm to terminate. - fwdPath := path{+1, point{0, 0}, make(EditScript, 0, (nx+ny)/2)} - revPath := path{-1, point{nx, ny}, make(EditScript, 0)} - fwdFrontier := fwdPath.point // Forward search frontier - revFrontier := revPath.point // Reverse search frontier - - // Search budget bounds the cost of searching for better paths. - // The longest sequence of non-matching symbols that can be tolerated is - // approximately the square-root of the search budget. - searchBudget := 4 * (nx + ny) // O(n) - - // Running the tests with the "cmp_debug" build tag prints a visualization - // of the algorithm running in real-time. This is educational for - // understanding how the algorithm works. See debug_enable.go. - f = debug.Begin(nx, ny, f, &fwdPath.es, &revPath.es) - - // The algorithm below is a greedy, meet-in-the-middle algorithm for - // computing sub-optimal edit-scripts between two lists. - // - // The algorithm is approximately as follows: - // - Searching for differences switches back-and-forth between - // a search that starts at the beginning (the top-left corner), and - // a search that starts at the end (the bottom-right corner). - // The goal of the search is connect with the search - // from the opposite corner. - // - As we search, we build a path in a greedy manner, - // where the first match seen is added to the path (this is sub-optimal, - // but provides a decent result in practice). When matches are found, - // we try the next pair of symbols in the lists and follow all matches - // as far as possible. - // - When searching for matches, we search along a diagonal going through - // through the "frontier" point. If no matches are found, - // we advance the frontier towards the opposite corner. - // - This algorithm terminates when either the X coordinates or the - // Y coordinates of the forward and reverse frontier points ever intersect. - - // This algorithm is correct even if searching only in the forward direction - // or in the reverse direction. We do both because it is commonly observed - // that two lists commonly differ because elements were added to the front - // or end of the other list. - // - // Non-deterministically start with either the forward or reverse direction - // to introduce some deliberate instability so that we have the flexibility - // to change this algorithm in the future. - if flags.Deterministic || randBool { - goto forwardSearch - } else { - goto reverseSearch - } - -forwardSearch: - { - // Forward search from the beginning. - if fwdFrontier.X >= revFrontier.X || fwdFrontier.Y >= revFrontier.Y || searchBudget == 0 { - goto finishSearch - } - for stop1, stop2, i := false, false, 0; !(stop1 && stop2) && searchBudget > 0; i++ { - // Search in a diagonal pattern for a match. - z := zigzag(i) - p := point{fwdFrontier.X + z, fwdFrontier.Y - z} - switch { - case p.X >= revPath.X || p.Y < fwdPath.Y: - stop1 = true // Hit top-right corner - case p.Y >= revPath.Y || p.X < fwdPath.X: - stop2 = true // Hit bottom-left corner - case f(p.X, p.Y).Equal(): - // Match found, so connect the path to this point. - fwdPath.connect(p, f) - fwdPath.append(Identity) - // Follow sequence of matches as far as possible. - for fwdPath.X < revPath.X && fwdPath.Y < revPath.Y { - if !f(fwdPath.X, fwdPath.Y).Equal() { - break - } - fwdPath.append(Identity) - } - fwdFrontier = fwdPath.point - stop1, stop2 = true, true - default: - searchBudget-- // Match not found - } - debug.Update() - } - // Advance the frontier towards reverse point. - if revPath.X-fwdFrontier.X >= revPath.Y-fwdFrontier.Y { - fwdFrontier.X++ - } else { - fwdFrontier.Y++ - } - goto reverseSearch - } - -reverseSearch: - { - // Reverse search from the end. - if fwdFrontier.X >= revFrontier.X || fwdFrontier.Y >= revFrontier.Y || searchBudget == 0 { - goto finishSearch - } - for stop1, stop2, i := false, false, 0; !(stop1 && stop2) && searchBudget > 0; i++ { - // Search in a diagonal pattern for a match. - z := zigzag(i) - p := point{revFrontier.X - z, revFrontier.Y + z} - switch { - case fwdPath.X >= p.X || revPath.Y < p.Y: - stop1 = true // Hit bottom-left corner - case fwdPath.Y >= p.Y || revPath.X < p.X: - stop2 = true // Hit top-right corner - case f(p.X-1, p.Y-1).Equal(): - // Match found, so connect the path to this point. - revPath.connect(p, f) - revPath.append(Identity) - // Follow sequence of matches as far as possible. - for fwdPath.X < revPath.X && fwdPath.Y < revPath.Y { - if !f(revPath.X-1, revPath.Y-1).Equal() { - break - } - revPath.append(Identity) - } - revFrontier = revPath.point - stop1, stop2 = true, true - default: - searchBudget-- // Match not found - } - debug.Update() - } - // Advance the frontier towards forward point. - if revFrontier.X-fwdPath.X >= revFrontier.Y-fwdPath.Y { - revFrontier.X-- - } else { - revFrontier.Y-- - } - goto forwardSearch - } - -finishSearch: - // Join the forward and reverse paths and then append the reverse path. - fwdPath.connect(revPath.point, f) - for i := len(revPath.es) - 1; i >= 0; i-- { - t := revPath.es[i] - revPath.es = revPath.es[:i] - fwdPath.append(t) - } - debug.Finish() - return fwdPath.es -} - -type path struct { - dir int // +1 if forward, -1 if reverse - point // Leading point of the EditScript path - es EditScript -} - -// connect appends any necessary Identity, Modified, UniqueX, or UniqueY types -// to the edit-script to connect p.point to dst. -func (p *path) connect(dst point, f EqualFunc) { - if p.dir > 0 { - // Connect in forward direction. - for dst.X > p.X && dst.Y > p.Y { - switch r := f(p.X, p.Y); { - case r.Equal(): - p.append(Identity) - case r.Similar(): - p.append(Modified) - case dst.X-p.X >= dst.Y-p.Y: - p.append(UniqueX) - default: - p.append(UniqueY) - } - } - for dst.X > p.X { - p.append(UniqueX) - } - for dst.Y > p.Y { - p.append(UniqueY) - } - } else { - // Connect in reverse direction. - for p.X > dst.X && p.Y > dst.Y { - switch r := f(p.X-1, p.Y-1); { - case r.Equal(): - p.append(Identity) - case r.Similar(): - p.append(Modified) - case p.Y-dst.Y >= p.X-dst.X: - p.append(UniqueY) - default: - p.append(UniqueX) - } - } - for p.X > dst.X { - p.append(UniqueX) - } - for p.Y > dst.Y { - p.append(UniqueY) - } - } -} - -func (p *path) append(t EditType) { - p.es = append(p.es, t) - switch t { - case Identity, Modified: - p.add(p.dir, p.dir) - case UniqueX: - p.add(p.dir, 0) - case UniqueY: - p.add(0, p.dir) - } - debug.Update() -} - -type point struct{ X, Y int } - -func (p *point) add(dx, dy int) { p.X += dx; p.Y += dy } - -// zigzag maps a consecutive sequence of integers to a zig-zag sequence. -// -// [0 1 2 3 4 5 ...] => [0 -1 +1 -2 +2 ...] -func zigzag(x int) int { - if x&1 != 0 { - x = ^x - } - return x >> 1 -} diff --git a/vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go b/vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go deleted file mode 100644 index d8e459c..0000000 --- a/vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go +++ /dev/null @@ -1,9 +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. - -package flags - -// Deterministic controls whether the output of Diff should be deterministic. -// This is only used for testing. -var Deterministic bool diff --git a/vendor/github.com/google/go-cmp/cmp/internal/function/func.go b/vendor/github.com/google/go-cmp/cmp/internal/function/func.go deleted file mode 100644 index def01a6..0000000 --- a/vendor/github.com/google/go-cmp/cmp/internal/function/func.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package function provides functionality for identifying function types. -package function - -import ( - "reflect" - "regexp" - "runtime" - "strings" -) - -type funcType int - -const ( - _ funcType = iota - - tbFunc // func(T) bool - ttbFunc // func(T, T) bool - ttiFunc // func(T, T) int - trbFunc // func(T, R) bool - tibFunc // func(T, I) bool - trFunc // func(T) R - - Equal = ttbFunc // func(T, T) bool - EqualAssignable = tibFunc // func(T, I) bool; encapsulates func(T, T) bool - Transformer = trFunc // func(T) R - ValueFilter = ttbFunc // func(T, T) bool - Less = ttbFunc // func(T, T) bool - Compare = ttiFunc // func(T, T) int - ValuePredicate = tbFunc // func(T) bool - KeyValuePredicate = trbFunc // func(T, R) bool -) - -var boolType = reflect.TypeOf(true) -var intType = reflect.TypeOf(0) - -// IsType reports whether the reflect.Type is of the specified function type. -func IsType(t reflect.Type, ft funcType) bool { - if t == nil || t.Kind() != reflect.Func || t.IsVariadic() { - return false - } - ni, no := t.NumIn(), t.NumOut() - switch ft { - case tbFunc: // func(T) bool - if ni == 1 && no == 1 && t.Out(0) == boolType { - return true - } - case ttbFunc: // func(T, T) bool - if ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == boolType { - return true - } - case ttiFunc: // func(T, T) int - if ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == intType { - return true - } - case trbFunc: // func(T, R) bool - if ni == 2 && no == 1 && t.Out(0) == boolType { - return true - } - case tibFunc: // func(T, I) bool - if ni == 2 && no == 1 && t.In(0).AssignableTo(t.In(1)) && t.Out(0) == boolType { - return true - } - case trFunc: // func(T) R - if ni == 1 && no == 1 { - return true - } - } - return false -} - -var lastIdentRx = regexp.MustCompile(`[_\p{L}][_\p{L}\p{N}]*$`) - -// NameOf returns the name of the function value. -func NameOf(v reflect.Value) string { - fnc := runtime.FuncForPC(v.Pointer()) - if fnc == nil { - return "" - } - fullName := fnc.Name() // e.g., "long/path/name/mypkg.(*MyType).(long/path/name/mypkg.myMethod)-fm" - - // Method closures have a "-fm" suffix. - fullName = strings.TrimSuffix(fullName, "-fm") - - var name string - for len(fullName) > 0 { - inParen := strings.HasSuffix(fullName, ")") - fullName = strings.TrimSuffix(fullName, ")") - - s := lastIdentRx.FindString(fullName) - if s == "" { - break - } - name = s + "." + name - fullName = strings.TrimSuffix(fullName, s) - - if i := strings.LastIndexByte(fullName, '('); inParen && i >= 0 { - fullName = fullName[:i] - } - fullName = strings.TrimSuffix(fullName, ".") - } - return strings.TrimSuffix(name, ".") -} diff --git a/vendor/github.com/google/go-cmp/cmp/internal/value/name.go b/vendor/github.com/google/go-cmp/cmp/internal/value/name.go deleted file mode 100644 index 7b498bb..0000000 --- a/vendor/github.com/google/go-cmp/cmp/internal/value/name.go +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2020, 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 value - -import ( - "reflect" - "strconv" -) - -var anyType = reflect.TypeOf((*interface{})(nil)).Elem() - -// TypeString is nearly identical to reflect.Type.String, -// but has an additional option to specify that full type names be used. -func TypeString(t reflect.Type, qualified bool) string { - return string(appendTypeName(nil, t, qualified, false)) -} - -func appendTypeName(b []byte, t reflect.Type, qualified, elideFunc bool) []byte { - // BUG: Go reflection provides no way to disambiguate two named types - // of the same name and within the same package, - // but declared within the namespace of different functions. - - // Use the "any" alias instead of "interface{}" for better readability. - if t == anyType { - return append(b, "any"...) - } - - // Named type. - if t.Name() != "" { - if qualified && t.PkgPath() != "" { - b = append(b, '"') - b = append(b, t.PkgPath()...) - b = append(b, '"') - b = append(b, '.') - b = append(b, t.Name()...) - } else { - b = append(b, t.String()...) - } - return b - } - - // Unnamed type. - switch k := t.Kind(); k { - case reflect.Bool, reflect.String, reflect.UnsafePointer, - reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, - reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128: - b = append(b, k.String()...) - case reflect.Chan: - if t.ChanDir() == reflect.RecvDir { - b = append(b, "<-"...) - } - b = append(b, "chan"...) - if t.ChanDir() == reflect.SendDir { - b = append(b, "<-"...) - } - b = append(b, ' ') - b = appendTypeName(b, t.Elem(), qualified, false) - case reflect.Func: - if !elideFunc { - b = append(b, "func"...) - } - b = append(b, '(') - for i := 0; i < t.NumIn(); i++ { - if i > 0 { - b = append(b, ", "...) - } - if i == t.NumIn()-1 && t.IsVariadic() { - b = append(b, "..."...) - b = appendTypeName(b, t.In(i).Elem(), qualified, false) - } else { - b = appendTypeName(b, t.In(i), qualified, false) - } - } - b = append(b, ')') - switch t.NumOut() { - case 0: - // Do nothing - case 1: - b = append(b, ' ') - b = appendTypeName(b, t.Out(0), qualified, false) - default: - b = append(b, " ("...) - for i := 0; i < t.NumOut(); i++ { - if i > 0 { - b = append(b, ", "...) - } - b = appendTypeName(b, t.Out(i), qualified, false) - } - b = append(b, ')') - } - case reflect.Struct: - b = append(b, "struct{ "...) - for i := 0; i < t.NumField(); i++ { - if i > 0 { - b = append(b, "; "...) - } - sf := t.Field(i) - if !sf.Anonymous { - if qualified && sf.PkgPath != "" { - b = append(b, '"') - b = append(b, sf.PkgPath...) - b = append(b, '"') - b = append(b, '.') - } - b = append(b, sf.Name...) - b = append(b, ' ') - } - b = appendTypeName(b, sf.Type, qualified, false) - if sf.Tag != "" { - b = append(b, ' ') - b = strconv.AppendQuote(b, string(sf.Tag)) - } - } - if b[len(b)-1] == ' ' { - b = b[:len(b)-1] - } else { - b = append(b, ' ') - } - b = append(b, '}') - case reflect.Slice, reflect.Array: - b = append(b, '[') - if k == reflect.Array { - b = strconv.AppendUint(b, uint64(t.Len()), 10) - } - b = append(b, ']') - b = appendTypeName(b, t.Elem(), qualified, false) - case reflect.Map: - b = append(b, "map["...) - b = appendTypeName(b, t.Key(), qualified, false) - b = append(b, ']') - b = appendTypeName(b, t.Elem(), qualified, false) - case reflect.Ptr: - b = append(b, '*') - b = appendTypeName(b, t.Elem(), qualified, false) - case reflect.Interface: - b = append(b, "interface{ "...) - for i := 0; i < t.NumMethod(); i++ { - if i > 0 { - b = append(b, "; "...) - } - m := t.Method(i) - if qualified && m.PkgPath != "" { - b = append(b, '"') - b = append(b, m.PkgPath...) - b = append(b, '"') - b = append(b, '.') - } - b = append(b, m.Name...) - b = appendTypeName(b, m.Type, qualified, true) - } - if b[len(b)-1] == ' ' { - b = b[:len(b)-1] - } else { - b = append(b, ' ') - } - b = append(b, '}') - default: - panic("invalid kind: " + k.String()) - } - return b -} diff --git a/vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go b/vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go deleted file mode 100644 index e5dfff6..0000000 --- a/vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go +++ /dev/null @@ -1,34 +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 value - -import ( - "reflect" - "unsafe" -) - -// Pointer is an opaque typed pointer and is guaranteed to be comparable. -type Pointer struct { - p unsafe.Pointer - t reflect.Type -} - -// PointerOf returns a Pointer from v, which must be a -// reflect.Ptr, reflect.Slice, or reflect.Map. -func PointerOf(v reflect.Value) Pointer { - // The proper representation of a pointer is unsafe.Pointer, - // which is necessary if the GC ever uses a moving collector. - return Pointer{unsafe.Pointer(v.Pointer()), v.Type()} -} - -// IsNil reports whether the pointer is nil. -func (p Pointer) IsNil() bool { - return p.p == nil -} - -// Uintptr returns the pointer as a uintptr. -func (p Pointer) Uintptr() uintptr { - return uintptr(p.p) -} diff --git a/vendor/github.com/google/go-cmp/cmp/internal/value/sort.go b/vendor/github.com/google/go-cmp/cmp/internal/value/sort.go deleted file mode 100644 index 98533b0..0000000 --- a/vendor/github.com/google/go-cmp/cmp/internal/value/sort.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package value - -import ( - "fmt" - "math" - "reflect" - "sort" -) - -// SortKeys sorts a list of map keys, deduplicating keys if necessary. -// The type of each value must be comparable. -func SortKeys(vs []reflect.Value) []reflect.Value { - if len(vs) == 0 { - return vs - } - - // Sort the map keys. - sort.SliceStable(vs, func(i, j int) bool { return isLess(vs[i], vs[j]) }) - - // Deduplicate keys (fails for NaNs). - vs2 := vs[:1] - for _, v := range vs[1:] { - if isLess(vs2[len(vs2)-1], v) { - vs2 = append(vs2, v) - } - } - return vs2 -} - -// isLess is a generic function for sorting arbitrary map keys. -// The inputs must be of the same type and must be comparable. -func isLess(x, y reflect.Value) bool { - switch x.Type().Kind() { - case reflect.Bool: - return !x.Bool() && y.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return x.Int() < y.Int() - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return x.Uint() < y.Uint() - case reflect.Float32, reflect.Float64: - // NOTE: This does not sort -0 as less than +0 - // since Go maps treat -0 and +0 as equal keys. - fx, fy := x.Float(), y.Float() - return fx < fy || math.IsNaN(fx) && !math.IsNaN(fy) - case reflect.Complex64, reflect.Complex128: - cx, cy := x.Complex(), y.Complex() - rx, ix, ry, iy := real(cx), imag(cx), real(cy), imag(cy) - if rx == ry || (math.IsNaN(rx) && math.IsNaN(ry)) { - return ix < iy || math.IsNaN(ix) && !math.IsNaN(iy) - } - return rx < ry || math.IsNaN(rx) && !math.IsNaN(ry) - case reflect.Ptr, reflect.UnsafePointer, reflect.Chan: - return x.Pointer() < y.Pointer() - case reflect.String: - return x.String() < y.String() - case reflect.Array: - for i := 0; i < x.Len(); i++ { - if isLess(x.Index(i), y.Index(i)) { - return true - } - if isLess(y.Index(i), x.Index(i)) { - return false - } - } - return false - case reflect.Struct: - for i := 0; i < x.NumField(); i++ { - if isLess(x.Field(i), y.Field(i)) { - return true - } - if isLess(y.Field(i), x.Field(i)) { - return false - } - } - return false - case reflect.Interface: - vx, vy := x.Elem(), y.Elem() - if !vx.IsValid() || !vy.IsValid() { - return !vx.IsValid() && vy.IsValid() - } - tx, ty := vx.Type(), vy.Type() - if tx == ty { - return isLess(x.Elem(), y.Elem()) - } - if tx.Kind() != ty.Kind() { - return vx.Kind() < vy.Kind() - } - if tx.String() != ty.String() { - return tx.String() < ty.String() - } - if tx.PkgPath() != ty.PkgPath() { - return tx.PkgPath() < ty.PkgPath() - } - // This can happen in rare situations, so we fallback to just comparing - // the unique pointer for a reflect.Type. This guarantees deterministic - // ordering within a program, but it is obviously not stable. - return reflect.ValueOf(vx.Type()).Pointer() < reflect.ValueOf(vy.Type()).Pointer() - default: - // Must be Func, Map, or Slice; which are not comparable. - panic(fmt.Sprintf("%T is not comparable", x.Type())) - } -} diff --git a/vendor/github.com/google/go-cmp/cmp/options.go b/vendor/github.com/google/go-cmp/cmp/options.go deleted file mode 100644 index ba3fce8..0000000 --- a/vendor/github.com/google/go-cmp/cmp/options.go +++ /dev/null @@ -1,562 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cmp - -import ( - "fmt" - "reflect" - "regexp" - "strings" - - "github.com/google/go-cmp/cmp/internal/function" -) - -// Option configures for specific behavior of [Equal] and [Diff]. In particular, -// the fundamental Option functions ([Ignore], [Transformer], and [Comparer]), -// configure how equality is determined. -// -// The fundamental options may be composed with filters ([FilterPath] and -// [FilterValues]) to control the scope over which they are applied. -// -// The [github.com/google/go-cmp/cmp/cmpopts] package provides helper functions -// for creating options that may be used with [Equal] and [Diff]. -type Option interface { - // filter applies all filters and returns the option that remains. - // Each option may only read s.curPath and call s.callTTBFunc. - // - // An Options is returned only if multiple comparers or transformers - // can apply simultaneously and will only contain values of those types - // or sub-Options containing values of those types. - filter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption -} - -// applicableOption represents the following types: -// -// Fundamental: ignore | validator | *comparer | *transformer -// Grouping: Options -type applicableOption interface { - Option - - // apply executes the option, which may mutate s or panic. - apply(s *state, vx, vy reflect.Value) -} - -// coreOption represents the following types: -// -// Fundamental: ignore | validator | *comparer | *transformer -// Filters: *pathFilter | *valuesFilter -type coreOption interface { - Option - isCore() -} - -type core struct{} - -func (core) isCore() {} - -// Options is a list of [Option] values that also satisfies the [Option] interface. -// Helper comparison packages may return an Options value when packing multiple -// [Option] values into a single [Option]. When this package processes an Options, -// it will be implicitly expanded into a flat list. -// -// Applying a filter on an Options is equivalent to applying that same filter -// on all individual options held within. -type Options []Option - -func (opts Options) filter(s *state, t reflect.Type, vx, vy reflect.Value) (out applicableOption) { - for _, opt := range opts { - switch opt := opt.filter(s, t, vx, vy); opt.(type) { - case ignore: - return ignore{} // Only ignore can short-circuit evaluation - case validator: - out = validator{} // Takes precedence over comparer or transformer - case *comparer, *transformer, Options: - switch out.(type) { - case nil: - out = opt - case validator: - // Keep validator - case *comparer, *transformer, Options: - out = Options{out, opt} // Conflicting comparers or transformers - } - } - } - return out -} - -func (opts Options) apply(s *state, _, _ reflect.Value) { - const warning = "ambiguous set of applicable options" - const help = "consider using filters to ensure at most one Comparer or Transformer may apply" - var ss []string - for _, opt := range flattenOptions(nil, opts) { - ss = append(ss, fmt.Sprint(opt)) - } - set := strings.Join(ss, "\n\t") - panic(fmt.Sprintf("%s at %#v:\n\t%s\n%s", warning, s.curPath, set, help)) -} - -func (opts Options) String() string { - var ss []string - for _, opt := range opts { - ss = append(ss, fmt.Sprint(opt)) - } - return fmt.Sprintf("Options{%s}", strings.Join(ss, ", ")) -} - -// FilterPath returns a new [Option] where opt is only evaluated if filter f -// returns true for the current [Path] in the value tree. -// -// This filter is called even if a slice element or map entry is missing and -// provides an opportunity to ignore such cases. The filter function must be -// symmetric such that the filter result is identical regardless of whether the -// missing value is from x or y. -// -// The option passed in may be an [Ignore], [Transformer], [Comparer], [Options], or -// a previously filtered [Option]. -func FilterPath(f func(Path) bool, opt Option) Option { - if f == nil { - panic("invalid path filter function") - } - if opt := normalizeOption(opt); opt != nil { - return &pathFilter{fnc: f, opt: opt} - } - return nil -} - -type pathFilter struct { - core - fnc func(Path) bool - opt Option -} - -func (f pathFilter) filter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption { - if f.fnc(s.curPath) { - return f.opt.filter(s, t, vx, vy) - } - return nil -} - -func (f pathFilter) String() string { - return fmt.Sprintf("FilterPath(%s, %v)", function.NameOf(reflect.ValueOf(f.fnc)), f.opt) -} - -// FilterValues returns a new [Option] where opt is only evaluated if filter f, -// which is a function of the form "func(T, T) bool", returns true for the -// current pair of values being compared. If either value is invalid or -// the type of the values is not assignable to T, then this filter implicitly -// returns false. -// -// The filter function must be -// symmetric (i.e., agnostic to the order of the inputs) and -// deterministic (i.e., produces the same result when given the same inputs). -// If T is an interface, it is possible that f is called with two values with -// different concrete types that both implement T. -// -// The option passed in may be an [Ignore], [Transformer], [Comparer], [Options], or -// a previously filtered [Option]. -func FilterValues(f interface{}, opt Option) Option { - v := reflect.ValueOf(f) - if !function.IsType(v.Type(), function.ValueFilter) || v.IsNil() { - panic(fmt.Sprintf("invalid values filter function: %T", f)) - } - if opt := normalizeOption(opt); opt != nil { - vf := &valuesFilter{fnc: v, opt: opt} - if ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 { - vf.typ = ti - } - return vf - } - return nil -} - -type valuesFilter struct { - core - typ reflect.Type // T - fnc reflect.Value // func(T, T) bool - opt Option -} - -func (f valuesFilter) filter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption { - if !vx.IsValid() || !vx.CanInterface() || !vy.IsValid() || !vy.CanInterface() { - return nil - } - if (f.typ == nil || t.AssignableTo(f.typ)) && s.callTTBFunc(f.fnc, vx, vy) { - return f.opt.filter(s, t, vx, vy) - } - return nil -} - -func (f valuesFilter) String() string { - return fmt.Sprintf("FilterValues(%s, %v)", function.NameOf(f.fnc), f.opt) -} - -// Ignore is an [Option] that causes all comparisons to be ignored. -// This value is intended to be combined with [FilterPath] or [FilterValues]. -// It is an error to pass an unfiltered Ignore option to [Equal]. -func Ignore() Option { return ignore{} } - -type ignore struct{ core } - -func (ignore) isFiltered() bool { return false } -func (ignore) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption { return ignore{} } -func (ignore) apply(s *state, _, _ reflect.Value) { s.report(true, reportByIgnore) } -func (ignore) String() string { return "Ignore()" } - -// validator is a sentinel Option type to indicate that some options could not -// be evaluated due to unexported fields, missing slice elements, or -// missing map entries. Both values are validator only for unexported fields. -type validator struct{ core } - -func (validator) filter(_ *state, _ reflect.Type, vx, vy reflect.Value) applicableOption { - if !vx.IsValid() || !vy.IsValid() { - return validator{} - } - if !vx.CanInterface() || !vy.CanInterface() { - return validator{} - } - return nil -} -func (validator) apply(s *state, vx, vy reflect.Value) { - // Implies missing slice element or map entry. - if !vx.IsValid() || !vy.IsValid() { - s.report(vx.IsValid() == vy.IsValid(), 0) - return - } - - // Unable to Interface implies unexported field without visibility access. - if !vx.CanInterface() || !vy.CanInterface() { - help := "consider using a custom Comparer; if you control the implementation of type, you can also consider using an Exporter, AllowUnexported, or cmpopts.IgnoreUnexported" - var name string - if t := s.curPath.Index(-2).Type(); t.Name() != "" { - // Named type with unexported fields. - name = fmt.Sprintf("%q.%v", t.PkgPath(), t.Name()) // e.g., "path/to/package".MyType - isProtoMessage := func(t reflect.Type) bool { - m, ok := reflect.PointerTo(t).MethodByName("ProtoReflect") - return ok && m.Type.NumIn() == 1 && m.Type.NumOut() == 1 && - m.Type.Out(0).PkgPath() == "google.golang.org/protobuf/reflect/protoreflect" && - m.Type.Out(0).Name() == "Message" - } - if isProtoMessage(t) { - help = `consider using "google.golang.org/protobuf/testing/protocmp".Transform to compare proto.Message types` - } else if _, ok := reflect.New(t).Interface().(error); ok { - help = "consider using cmpopts.EquateErrors to compare error values" - } else if t.Comparable() { - help = "consider using cmpopts.EquateComparable to compare comparable Go types" - } - } else { - // Unnamed type with unexported fields. Derive PkgPath from field. - var pkgPath string - for i := 0; i < t.NumField() && pkgPath == ""; i++ { - pkgPath = t.Field(i).PkgPath - } - name = fmt.Sprintf("%q.(%v)", pkgPath, t.String()) // e.g., "path/to/package".(struct { a int }) - } - panic(fmt.Sprintf("cannot handle unexported field at %#v:\n\t%v\n%s", s.curPath, name, help)) - } - - panic("not reachable") -} - -// identRx represents a valid identifier according to the Go specification. -const identRx = `[_\p{L}][_\p{L}\p{N}]*` - -var identsRx = regexp.MustCompile(`^` + identRx + `(\.` + identRx + `)*$`) - -// Transformer returns an [Option] that applies a transformation function that -// converts values of a certain type into that of another. -// -// The transformer f must be a function "func(T) R" that converts values of -// type T to those of type R and is implicitly filtered to input values -// assignable to T. The transformer must not mutate T in any way. -// -// To help prevent some cases of infinite recursive cycles applying the -// same transform to the output of itself (e.g., in the case where the -// input and output types are the same), an implicit filter is added such that -// a transformer is applicable only if that exact transformer is not already -// in the tail of the [Path] since the last non-[Transform] step. -// For situations where the implicit filter is still insufficient, -// consider using [github.com/google/go-cmp/cmp/cmpopts.AcyclicTransformer], -// which adds a filter to prevent the transformer from -// being recursively applied upon itself. -// -// The name is a user provided label that is used as the [Transform.Name] in the -// transformation [PathStep] (and eventually shown in the [Diff] output). -// The name must be a valid identifier or qualified identifier in Go syntax. -// If empty, an arbitrary name is used. -func Transformer(name string, f interface{}) Option { - v := reflect.ValueOf(f) - if !function.IsType(v.Type(), function.Transformer) || v.IsNil() { - panic(fmt.Sprintf("invalid transformer function: %T", f)) - } - if name == "" { - name = function.NameOf(v) - if !identsRx.MatchString(name) { - name = "λ" // Lambda-symbol as placeholder name - } - } else if !identsRx.MatchString(name) { - panic(fmt.Sprintf("invalid name: %q", name)) - } - tr := &transformer{name: name, fnc: reflect.ValueOf(f)} - if ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 { - tr.typ = ti - } - return tr -} - -type transformer struct { - core - name string - typ reflect.Type // T - fnc reflect.Value // func(T) R -} - -func (tr *transformer) isFiltered() bool { return tr.typ != nil } - -func (tr *transformer) filter(s *state, t reflect.Type, _, _ reflect.Value) applicableOption { - for i := len(s.curPath) - 1; i >= 0; i-- { - if t, ok := s.curPath[i].(Transform); !ok { - break // Hit most recent non-Transform step - } else if tr == t.trans { - return nil // Cannot directly use same Transform - } - } - if tr.typ == nil || t.AssignableTo(tr.typ) { - return tr - } - return nil -} - -func (tr *transformer) apply(s *state, vx, vy reflect.Value) { - step := Transform{&transform{pathStep{typ: tr.fnc.Type().Out(0)}, tr}} - vvx := s.callTRFunc(tr.fnc, vx, step) - vvy := s.callTRFunc(tr.fnc, vy, step) - step.vx, step.vy = vvx, vvy - s.compareAny(step) -} - -func (tr transformer) String() string { - return fmt.Sprintf("Transformer(%s, %s)", tr.name, function.NameOf(tr.fnc)) -} - -// Comparer returns an [Option] that determines whether two values are equal -// to each other. -// -// The comparer f must be a function "func(T, T) bool" and is implicitly -// filtered to input values assignable to T. If T is an interface, it is -// possible that f is called with two values of different concrete types that -// both implement T. -// -// The equality function must be: -// - Symmetric: equal(x, y) == equal(y, x) -// - Deterministic: equal(x, y) == equal(x, y) -// - Pure: equal(x, y) does not modify x or y -func Comparer(f interface{}) Option { - v := reflect.ValueOf(f) - if !function.IsType(v.Type(), function.Equal) || v.IsNil() { - panic(fmt.Sprintf("invalid comparer function: %T", f)) - } - cm := &comparer{fnc: v} - if ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 { - cm.typ = ti - } - return cm -} - -type comparer struct { - core - typ reflect.Type // T - fnc reflect.Value // func(T, T) bool -} - -func (cm *comparer) isFiltered() bool { return cm.typ != nil } - -func (cm *comparer) filter(_ *state, t reflect.Type, _, _ reflect.Value) applicableOption { - if cm.typ == nil || t.AssignableTo(cm.typ) { - return cm - } - return nil -} - -func (cm *comparer) apply(s *state, vx, vy reflect.Value) { - eq := s.callTTBFunc(cm.fnc, vx, vy) - s.report(eq, reportByFunc) -} - -func (cm comparer) String() string { - return fmt.Sprintf("Comparer(%s)", function.NameOf(cm.fnc)) -} - -// Exporter returns an [Option] that specifies whether [Equal] is allowed to -// introspect into the unexported fields of certain struct types. -// -// Users of this option must understand that comparing on unexported fields -// from external packages is not safe since changes in the internal -// implementation of some external package may cause the result of [Equal] -// to unexpectedly change. However, it may be valid to use this option on types -// defined in an internal package where the semantic meaning of an unexported -// field is in the control of the user. -// -// In many cases, a custom [Comparer] should be used instead that defines -// equality as a function of the public API of a type rather than the underlying -// unexported implementation. -// -// For example, the [reflect.Type] documentation defines equality to be determined -// by the == operator on the interface (essentially performing a shallow pointer -// comparison) and most attempts to compare *[regexp.Regexp] types are interested -// in only checking that the regular expression strings are equal. -// Both of these are accomplished using [Comparer] options: -// -// Comparer(func(x, y reflect.Type) bool { return x == y }) -// Comparer(func(x, y *regexp.Regexp) bool { return x.String() == y.String() }) -// -// In other cases, the [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported] -// option can be used to ignore all unexported fields on specified struct types. -func Exporter(f func(reflect.Type) bool) Option { - return exporter(f) -} - -type exporter func(reflect.Type) bool - -func (exporter) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption { - panic("not implemented") -} - -// AllowUnexported returns an [Option] that allows [Equal] to forcibly introspect -// unexported fields of the specified struct types. -// -// See [Exporter] for the proper use of this option. -func AllowUnexported(types ...interface{}) Option { - m := make(map[reflect.Type]bool) - for _, typ := range types { - t := reflect.TypeOf(typ) - if t.Kind() != reflect.Struct { - panic(fmt.Sprintf("invalid struct type: %T", typ)) - } - m[t] = true - } - return exporter(func(t reflect.Type) bool { return m[t] }) -} - -// Result represents the comparison result for a single node and -// is provided by cmp when calling Report (see [Reporter]). -type Result struct { - _ [0]func() // Make Result incomparable - flags resultFlags -} - -// Equal reports whether the node was determined to be equal or not. -// As a special case, ignored nodes are considered equal. -func (r Result) Equal() bool { - return r.flags&(reportEqual|reportByIgnore) != 0 -} - -// ByIgnore reports whether the node is equal because it was ignored. -// This never reports true if [Result.Equal] reports false. -func (r Result) ByIgnore() bool { - return r.flags&reportByIgnore != 0 -} - -// ByMethod reports whether the Equal method determined equality. -func (r Result) ByMethod() bool { - return r.flags&reportByMethod != 0 -} - -// ByFunc reports whether a [Comparer] function determined equality. -func (r Result) ByFunc() bool { - return r.flags&reportByFunc != 0 -} - -// ByCycle reports whether a reference cycle was detected. -func (r Result) ByCycle() bool { - return r.flags&reportByCycle != 0 -} - -type resultFlags uint - -const ( - _ resultFlags = (1 << iota) / 2 - - reportEqual - reportUnequal - reportByIgnore - reportByMethod - reportByFunc - reportByCycle -) - -// Reporter is an [Option] that can be passed to [Equal]. When [Equal] traverses -// the value trees, it calls PushStep as it descends into each node in the -// tree and PopStep as it ascend out of the node. The leaves of the tree are -// either compared (determined to be equal or not equal) or ignored and reported -// as such by calling the Report method. -func Reporter(r interface { - // PushStep is called when a tree-traversal operation is performed. - // The PathStep itself is only valid until the step is popped. - // The PathStep.Values are valid for the duration of the entire traversal - // and must not be mutated. - // - // Equal always calls PushStep at the start to provide an operation-less - // PathStep used to report the root values. - // - // Within a slice, the exact set of inserted, removed, or modified elements - // is unspecified and may change in future implementations. - // The entries of a map are iterated through in an unspecified order. - PushStep(PathStep) - - // Report is called exactly once on leaf nodes to report whether the - // comparison identified the node as equal, unequal, or ignored. - // A leaf node is one that is immediately preceded by and followed by - // a pair of PushStep and PopStep calls. - Report(Result) - - // PopStep ascends back up the value tree. - // There is always a matching pop call for every push call. - PopStep() -}) Option { - return reporter{r} -} - -type reporter struct{ reporterIface } -type reporterIface interface { - PushStep(PathStep) - Report(Result) - PopStep() -} - -func (reporter) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption { - panic("not implemented") -} - -// normalizeOption normalizes the input options such that all Options groups -// are flattened and groups with a single element are reduced to that element. -// Only coreOptions and Options containing coreOptions are allowed. -func normalizeOption(src Option) Option { - switch opts := flattenOptions(nil, Options{src}); len(opts) { - case 0: - return nil - case 1: - return opts[0] - default: - return opts - } -} - -// flattenOptions copies all options in src to dst as a flat list. -// Only coreOptions and Options containing coreOptions are allowed. -func flattenOptions(dst, src Options) Options { - for _, opt := range src { - switch opt := opt.(type) { - case nil: - continue - case Options: - dst = flattenOptions(dst, opt) - case coreOption: - dst = append(dst, opt) - default: - panic(fmt.Sprintf("invalid option type: %T", opt)) - } - } - return dst -} diff --git a/vendor/github.com/google/go-cmp/cmp/path.go b/vendor/github.com/google/go-cmp/cmp/path.go deleted file mode 100644 index c3c1456..0000000 --- a/vendor/github.com/google/go-cmp/cmp/path.go +++ /dev/null @@ -1,390 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cmp - -import ( - "fmt" - "reflect" - "strings" - "unicode" - "unicode/utf8" - - "github.com/google/go-cmp/cmp/internal/value" -) - -// Path is a list of [PathStep] describing the sequence of operations to get -// from some root type to the current position in the value tree. -// The first Path element is always an operation-less [PathStep] that exists -// simply to identify the initial type. -// -// When traversing structs with embedded structs, the embedded struct will -// always be accessed as a field before traversing the fields of the -// embedded struct themselves. That is, an exported field from the -// embedded struct will never be accessed directly from the parent struct. -type Path []PathStep - -// PathStep is a union-type for specific operations to traverse -// a value's tree structure. Users of this package never need to implement -// these types as values of this type will be returned by this package. -// -// Implementations of this interface: -// - [StructField] -// - [SliceIndex] -// - [MapIndex] -// - [Indirect] -// - [TypeAssertion] -// - [Transform] -type PathStep interface { - String() string - - // Type is the resulting type after performing the path step. - Type() reflect.Type - - // Values is the resulting values after performing the path step. - // The type of each valid value is guaranteed to be identical to Type. - // - // In some cases, one or both may be invalid or have restrictions: - // - For StructField, both are not interface-able if the current field - // is unexported and the struct type is not explicitly permitted by - // an Exporter to traverse unexported fields. - // - For SliceIndex, one may be invalid if an element is missing from - // either the x or y slice. - // - For MapIndex, one may be invalid if an entry is missing from - // either the x or y map. - // - // The provided values must not be mutated. - Values() (vx, vy reflect.Value) -} - -var ( - _ PathStep = StructField{} - _ PathStep = SliceIndex{} - _ PathStep = MapIndex{} - _ PathStep = Indirect{} - _ PathStep = TypeAssertion{} - _ PathStep = Transform{} -) - -func (pa *Path) push(s PathStep) { - *pa = append(*pa, s) -} - -func (pa *Path) pop() { - *pa = (*pa)[:len(*pa)-1] -} - -// Last returns the last [PathStep] in the Path. -// If the path is empty, this returns a non-nil [PathStep] -// that reports a nil [PathStep.Type]. -func (pa Path) Last() PathStep { - return pa.Index(-1) -} - -// Index returns the ith step in the Path and supports negative indexing. -// A negative index starts counting from the tail of the Path such that -1 -// refers to the last step, -2 refers to the second-to-last step, and so on. -// If index is invalid, this returns a non-nil [PathStep] -// that reports a nil [PathStep.Type]. -func (pa Path) Index(i int) PathStep { - if i < 0 { - i = len(pa) + i - } - if i < 0 || i >= len(pa) { - return pathStep{} - } - return pa[i] -} - -// String returns the simplified path to a node. -// The simplified path only contains struct field accesses. -// -// For example: -// -// MyMap.MySlices.MyField -func (pa Path) String() string { - var ss []string - for _, s := range pa { - if _, ok := s.(StructField); ok { - ss = append(ss, s.String()) - } - } - return strings.TrimPrefix(strings.Join(ss, ""), ".") -} - -// GoString returns the path to a specific node using Go syntax. -// -// For example: -// -// (*root.MyMap["key"].(*mypkg.MyStruct).MySlices)[2][3].MyField -func (pa Path) GoString() string { - var ssPre, ssPost []string - var numIndirect int - for i, s := range pa { - var nextStep PathStep - if i+1 < len(pa) { - nextStep = pa[i+1] - } - switch s := s.(type) { - case Indirect: - numIndirect++ - pPre, pPost := "(", ")" - switch nextStep.(type) { - case Indirect: - continue // Next step is indirection, so let them batch up - case StructField: - numIndirect-- // Automatic indirection on struct fields - case nil: - pPre, pPost = "", "" // Last step; no need for parenthesis - } - if numIndirect > 0 { - ssPre = append(ssPre, pPre+strings.Repeat("*", numIndirect)) - ssPost = append(ssPost, pPost) - } - numIndirect = 0 - continue - case Transform: - ssPre = append(ssPre, s.trans.name+"(") - ssPost = append(ssPost, ")") - continue - } - ssPost = append(ssPost, s.String()) - } - for i, j := 0, len(ssPre)-1; i < j; i, j = i+1, j-1 { - ssPre[i], ssPre[j] = ssPre[j], ssPre[i] - } - return strings.Join(ssPre, "") + strings.Join(ssPost, "") -} - -type pathStep struct { - typ reflect.Type - vx, vy reflect.Value -} - -func (ps pathStep) Type() reflect.Type { return ps.typ } -func (ps pathStep) Values() (vx, vy reflect.Value) { return ps.vx, ps.vy } -func (ps pathStep) String() string { - if ps.typ == nil { - return "" - } - s := value.TypeString(ps.typ, false) - if s == "" || strings.ContainsAny(s, "{}\n") { - return "root" // Type too simple or complex to print - } - return fmt.Sprintf("{%s}", s) -} - -// StructField is a [PathStep] that represents a struct field access -// on a field called [StructField.Name]. -type StructField struct{ *structField } -type structField struct { - pathStep - name string - idx int - - // These fields are used for forcibly accessing an unexported field. - // pvx, pvy, and field are only valid if unexported is true. - unexported bool - mayForce bool // Forcibly allow visibility - paddr bool // Was parent addressable? - pvx, pvy reflect.Value // Parent values (always addressable) - field reflect.StructField // Field information -} - -func (sf StructField) Type() reflect.Type { return sf.typ } -func (sf StructField) Values() (vx, vy reflect.Value) { - if !sf.unexported { - return sf.vx, sf.vy // CanInterface reports true - } - - // Forcibly obtain read-write access to an unexported struct field. - if sf.mayForce { - vx = retrieveUnexportedField(sf.pvx, sf.field, sf.paddr) - vy = retrieveUnexportedField(sf.pvy, sf.field, sf.paddr) - return vx, vy // CanInterface reports true - } - return sf.vx, sf.vy // CanInterface reports false -} -func (sf StructField) String() string { return fmt.Sprintf(".%s", sf.name) } - -// Name is the field name. -func (sf StructField) Name() string { return sf.name } - -// Index is the index of the field in the parent struct type. -// See [reflect.Type.Field]. -func (sf StructField) Index() int { return sf.idx } - -// SliceIndex is a [PathStep] that represents an index operation on -// a slice or array at some index [SliceIndex.Key]. -type SliceIndex struct{ *sliceIndex } -type sliceIndex struct { - pathStep - xkey, ykey int - isSlice bool // False for reflect.Array -} - -func (si SliceIndex) Type() reflect.Type { return si.typ } -func (si SliceIndex) Values() (vx, vy reflect.Value) { return si.vx, si.vy } -func (si SliceIndex) String() string { - switch { - case si.xkey == si.ykey: - return fmt.Sprintf("[%d]", si.xkey) - case si.ykey == -1: - // [5->?] means "I don't know where X[5] went" - return fmt.Sprintf("[%d->?]", si.xkey) - case si.xkey == -1: - // [?->3] means "I don't know where Y[3] came from" - return fmt.Sprintf("[?->%d]", si.ykey) - default: - // [5->3] means "X[5] moved to Y[3]" - return fmt.Sprintf("[%d->%d]", si.xkey, si.ykey) - } -} - -// Key is the index key; it may return -1 if in a split state -func (si SliceIndex) Key() int { - if si.xkey != si.ykey { - return -1 - } - return si.xkey -} - -// SplitKeys are the indexes for indexing into slices in the -// x and y values, respectively. These indexes may differ due to the -// insertion or removal of an element in one of the slices, causing -// all of the indexes to be shifted. If an index is -1, then that -// indicates that the element does not exist in the associated slice. -// -// [SliceIndex.Key] is guaranteed to return -1 if and only if the indexes -// returned by SplitKeys are not the same. SplitKeys will never return -1 for -// both indexes. -func (si SliceIndex) SplitKeys() (ix, iy int) { return si.xkey, si.ykey } - -// MapIndex is a [PathStep] that represents an index operation on a map at some index Key. -type MapIndex struct{ *mapIndex } -type mapIndex struct { - pathStep - key reflect.Value -} - -func (mi MapIndex) Type() reflect.Type { return mi.typ } -func (mi MapIndex) Values() (vx, vy reflect.Value) { return mi.vx, mi.vy } -func (mi MapIndex) String() string { return fmt.Sprintf("[%#v]", mi.key) } - -// Key is the value of the map key. -func (mi MapIndex) Key() reflect.Value { return mi.key } - -// Indirect is a [PathStep] that represents pointer indirection on the parent type. -type Indirect struct{ *indirect } -type indirect struct { - pathStep -} - -func (in Indirect) Type() reflect.Type { return in.typ } -func (in Indirect) Values() (vx, vy reflect.Value) { return in.vx, in.vy } -func (in Indirect) String() string { return "*" } - -// TypeAssertion is a [PathStep] that represents a type assertion on an interface. -type TypeAssertion struct{ *typeAssertion } -type typeAssertion struct { - pathStep -} - -func (ta TypeAssertion) Type() reflect.Type { return ta.typ } -func (ta TypeAssertion) Values() (vx, vy reflect.Value) { return ta.vx, ta.vy } -func (ta TypeAssertion) String() string { return fmt.Sprintf(".(%v)", value.TypeString(ta.typ, false)) } - -// Transform is a [PathStep] that represents a transformation -// from the parent type to the current type. -type Transform struct{ *transform } -type transform struct { - pathStep - trans *transformer -} - -func (tf Transform) Type() reflect.Type { return tf.typ } -func (tf Transform) Values() (vx, vy reflect.Value) { return tf.vx, tf.vy } -func (tf Transform) String() string { return fmt.Sprintf("%s()", tf.trans.name) } - -// Name is the name of the [Transformer]. -func (tf Transform) Name() string { return tf.trans.name } - -// Func is the function pointer to the transformer function. -func (tf Transform) Func() reflect.Value { return tf.trans.fnc } - -// Option returns the originally constructed [Transformer] option. -// The == operator can be used to detect the exact option used. -func (tf Transform) Option() Option { return tf.trans } - -// pointerPath represents a dual-stack of pointers encountered when -// recursively traversing the x and y values. This data structure supports -// detection of cycles and determining whether the cycles are equal. -// In Go, cycles can occur via pointers, slices, and maps. -// -// The pointerPath uses a map to represent a stack; where descension into a -// pointer pushes the address onto the stack, and ascension from a pointer -// pops the address from the stack. Thus, when traversing into a pointer from -// reflect.Ptr, reflect.Slice element, or reflect.Map, we can detect cycles -// by checking whether the pointer has already been visited. The cycle detection -// uses a separate stack for the x and y values. -// -// If a cycle is detected we need to determine whether the two pointers -// should be considered equal. The definition of equality chosen by Equal -// requires two graphs to have the same structure. To determine this, both the -// x and y values must have a cycle where the previous pointers were also -// encountered together as a pair. -// -// Semantically, this is equivalent to augmenting Indirect, SliceIndex, and -// MapIndex with pointer information for the x and y values. -// Suppose px and py are two pointers to compare, we then search the -// Path for whether px was ever encountered in the Path history of x, and -// similarly so with py. If either side has a cycle, the comparison is only -// equal if both px and py have a cycle resulting from the same PathStep. -// -// Using a map as a stack is more performant as we can perform cycle detection -// in O(1) instead of O(N) where N is len(Path). -type pointerPath struct { - // mx is keyed by x pointers, where the value is the associated y pointer. - mx map[value.Pointer]value.Pointer - // my is keyed by y pointers, where the value is the associated x pointer. - my map[value.Pointer]value.Pointer -} - -func (p *pointerPath) Init() { - p.mx = make(map[value.Pointer]value.Pointer) - p.my = make(map[value.Pointer]value.Pointer) -} - -// Push indicates intent to descend into pointers vx and vy where -// visited reports whether either has been seen before. If visited before, -// equal reports whether both pointers were encountered together. -// Pop must be called if and only if the pointers were never visited. -// -// The pointers vx and vy must be a reflect.Ptr, reflect.Slice, or reflect.Map -// and be non-nil. -func (p pointerPath) Push(vx, vy reflect.Value) (equal, visited bool) { - px := value.PointerOf(vx) - py := value.PointerOf(vy) - _, ok1 := p.mx[px] - _, ok2 := p.my[py] - if ok1 || ok2 { - equal = p.mx[px] == py && p.my[py] == px // Pointers paired together - return equal, true - } - p.mx[px] = py - p.my[py] = px - return false, false -} - -// Pop ascends from pointers vx and vy. -func (p pointerPath) Pop(vx, vy reflect.Value) { - delete(p.mx, value.PointerOf(vx)) - delete(p.my, value.PointerOf(vy)) -} - -// isExported reports whether the identifier is exported. -func isExported(id string) bool { - r, _ := utf8.DecodeRuneInString(id) - return unicode.IsUpper(r) -} diff --git a/vendor/github.com/google/go-cmp/cmp/report.go b/vendor/github.com/google/go-cmp/cmp/report.go deleted file mode 100644 index f43cd12..0000000 --- a/vendor/github.com/google/go-cmp/cmp/report.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2017, The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package cmp - -// defaultReporter implements the reporter interface. -// -// As Equal serially calls the PushStep, Report, and PopStep methods, the -// defaultReporter constructs a tree-based representation of the compared value -// and the result of each comparison (see valueNode). -// -// When the String method is called, the FormatDiff method transforms the -// valueNode tree into a textNode tree, which is a tree-based representation -// of the textual output (see textNode). -// -// Lastly, the textNode.String method produces the final report as a string. -type defaultReporter struct { - root *valueNode - curr *valueNode -} - -func (r *defaultReporter) PushStep(ps PathStep) { - r.curr = r.curr.PushStep(ps) - if r.root == nil { - r.root = r.curr - } -} -func (r *defaultReporter) Report(rs Result) { - r.curr.Report(rs) -} -func (r *defaultReporter) PopStep() { - r.curr = r.curr.PopStep() -} - -// String provides a full report of the differences detected as a structured -// literal in pseudo-Go syntax. String may only be called after the entire tree -// has been traversed. -func (r *defaultReporter) String() string { - assert(r.root != nil && r.curr == nil) - if r.root.NumDiff == 0 { - return "" - } - ptrs := new(pointerReferences) - text := formatOptions{}.FormatDiff(r.root, ptrs) - resolveReferences(text) - return text.String() -} - -func assert(ok bool) { - if !ok { - panic("assertion failure") - } -} diff --git a/vendor/github.com/google/go-cmp/cmp/report_compare.go b/vendor/github.com/google/go-cmp/cmp/report_compare.go deleted file mode 100644 index 2050bf6..0000000 --- a/vendor/github.com/google/go-cmp/cmp/report_compare.go +++ /dev/null @@ -1,433 +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. - -package cmp - -import ( - "fmt" - "reflect" -) - -// numContextRecords is the number of surrounding equal records to print. -const numContextRecords = 2 - -type diffMode byte - -const ( - diffUnknown diffMode = 0 - diffIdentical diffMode = ' ' - diffRemoved diffMode = '-' - diffInserted diffMode = '+' -) - -type typeMode int - -const ( - // emitType always prints the type. - emitType typeMode = iota - // elideType never prints the type. - elideType - // autoType prints the type only for composite kinds - // (i.e., structs, slices, arrays, and maps). - autoType -) - -type formatOptions struct { - // DiffMode controls the output mode of FormatDiff. - // - // If diffUnknown, then produce a diff of the x and y values. - // If diffIdentical, then emit values as if they were equal. - // If diffRemoved, then only emit x values (ignoring y values). - // If diffInserted, then only emit y values (ignoring x values). - DiffMode diffMode - - // TypeMode controls whether to print the type for the current node. - // - // As a general rule of thumb, we always print the type of the next node - // after an interface, and always elide the type of the next node after - // a slice or map node. - TypeMode typeMode - - // formatValueOptions are options specific to printing reflect.Values. - formatValueOptions -} - -func (opts formatOptions) WithDiffMode(d diffMode) formatOptions { - opts.DiffMode = d - return opts -} -func (opts formatOptions) WithTypeMode(t typeMode) formatOptions { - opts.TypeMode = t - return opts -} -func (opts formatOptions) WithVerbosity(level int) formatOptions { - opts.VerbosityLevel = level - opts.LimitVerbosity = true - return opts -} -func (opts formatOptions) verbosity() uint { - switch { - case opts.VerbosityLevel < 0: - return 0 - case opts.VerbosityLevel > 16: - return 16 // some reasonable maximum to avoid shift overflow - default: - return uint(opts.VerbosityLevel) - } -} - -const maxVerbosityPreset = 6 - -// verbosityPreset modifies the verbosity settings given an index -// between 0 and maxVerbosityPreset, inclusive. -func verbosityPreset(opts formatOptions, i int) formatOptions { - opts.VerbosityLevel = int(opts.verbosity()) + 2*i - if i > 0 { - opts.AvoidStringer = true - } - if i >= maxVerbosityPreset { - opts.PrintAddresses = true - opts.QualifiedNames = true - } - return opts -} - -// FormatDiff converts a valueNode tree into a textNode tree, where the later -// is a textual representation of the differences detected in the former. -func (opts formatOptions) FormatDiff(v *valueNode, ptrs *pointerReferences) (out textNode) { - if opts.DiffMode == diffIdentical { - opts = opts.WithVerbosity(1) - } else if opts.verbosity() < 3 { - opts = opts.WithVerbosity(3) - } - - // Check whether we have specialized formatting for this node. - // This is not necessary, but helpful for producing more readable outputs. - if opts.CanFormatDiffSlice(v) { - return opts.FormatDiffSlice(v) - } - - var parentKind reflect.Kind - if v.parent != nil && v.parent.TransformerName == "" { - parentKind = v.parent.Type.Kind() - } - - // For leaf nodes, format the value based on the reflect.Values alone. - // As a special case, treat equal []byte as a leaf nodes. - isBytes := v.Type.Kind() == reflect.Slice && v.Type.Elem() == byteType - isEqualBytes := isBytes && v.NumDiff+v.NumIgnored+v.NumTransformed == 0 - if v.MaxDepth == 0 || isEqualBytes { - switch opts.DiffMode { - case diffUnknown, diffIdentical: - // Format Equal. - if v.NumDiff == 0 { - outx := opts.FormatValue(v.ValueX, parentKind, ptrs) - outy := opts.FormatValue(v.ValueY, parentKind, ptrs) - if v.NumIgnored > 0 && v.NumSame == 0 { - return textEllipsis - } else if outx.Len() < outy.Len() { - return outx - } else { - return outy - } - } - - // Format unequal. - assert(opts.DiffMode == diffUnknown) - var list textList - outx := opts.WithTypeMode(elideType).FormatValue(v.ValueX, parentKind, ptrs) - outy := opts.WithTypeMode(elideType).FormatValue(v.ValueY, parentKind, ptrs) - for i := 0; i <= maxVerbosityPreset && outx != nil && outy != nil && outx.Equal(outy); i++ { - opts2 := verbosityPreset(opts, i).WithTypeMode(elideType) - outx = opts2.FormatValue(v.ValueX, parentKind, ptrs) - outy = opts2.FormatValue(v.ValueY, parentKind, ptrs) - } - if outx != nil { - list = append(list, textRecord{Diff: '-', Value: outx}) - } - if outy != nil { - list = append(list, textRecord{Diff: '+', Value: outy}) - } - return opts.WithTypeMode(emitType).FormatType(v.Type, list) - case diffRemoved: - return opts.FormatValue(v.ValueX, parentKind, ptrs) - case diffInserted: - return opts.FormatValue(v.ValueY, parentKind, ptrs) - default: - panic("invalid diff mode") - } - } - - // Register slice element to support cycle detection. - if parentKind == reflect.Slice { - ptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, true) - defer ptrs.Pop() - defer func() { out = wrapTrunkReferences(ptrRefs, out) }() - } - - // Descend into the child value node. - if v.TransformerName != "" { - out := opts.WithTypeMode(emitType).FormatDiff(v.Value, ptrs) - out = &textWrap{Prefix: "Inverse(" + v.TransformerName + ", ", Value: out, Suffix: ")"} - return opts.FormatType(v.Type, out) - } else { - switch k := v.Type.Kind(); k { - case reflect.Struct, reflect.Array, reflect.Slice: - out = opts.formatDiffList(v.Records, k, ptrs) - out = opts.FormatType(v.Type, out) - case reflect.Map: - // Register map to support cycle detection. - ptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, false) - defer ptrs.Pop() - - out = opts.formatDiffList(v.Records, k, ptrs) - out = wrapTrunkReferences(ptrRefs, out) - out = opts.FormatType(v.Type, out) - case reflect.Ptr: - // Register pointer to support cycle detection. - ptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, false) - defer ptrs.Pop() - - out = opts.FormatDiff(v.Value, ptrs) - out = wrapTrunkReferences(ptrRefs, out) - out = &textWrap{Prefix: "&", Value: out} - case reflect.Interface: - out = opts.WithTypeMode(emitType).FormatDiff(v.Value, ptrs) - default: - panic(fmt.Sprintf("%v cannot have children", k)) - } - return out - } -} - -func (opts formatOptions) formatDiffList(recs []reportRecord, k reflect.Kind, ptrs *pointerReferences) textNode { - // Derive record name based on the data structure kind. - var name string - var formatKey func(reflect.Value) string - switch k { - case reflect.Struct: - name = "field" - opts = opts.WithTypeMode(autoType) - formatKey = func(v reflect.Value) string { return v.String() } - case reflect.Slice, reflect.Array: - name = "element" - opts = opts.WithTypeMode(elideType) - formatKey = func(reflect.Value) string { return "" } - case reflect.Map: - name = "entry" - opts = opts.WithTypeMode(elideType) - formatKey = func(v reflect.Value) string { return formatMapKey(v, false, ptrs) } - } - - maxLen := -1 - if opts.LimitVerbosity { - if opts.DiffMode == diffIdentical { - maxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc... - } else { - maxLen = (1 << opts.verbosity()) << 1 // 2, 4, 8, 16, 32, 64, etc... - } - opts.VerbosityLevel-- - } - - // Handle unification. - switch opts.DiffMode { - case diffIdentical, diffRemoved, diffInserted: - var list textList - var deferredEllipsis bool // Add final "..." to indicate records were dropped - for _, r := range recs { - if len(list) == maxLen { - deferredEllipsis = true - break - } - - // Elide struct fields that are zero value. - if k == reflect.Struct { - var isZero bool - switch opts.DiffMode { - case diffIdentical: - isZero = r.Value.ValueX.IsZero() || r.Value.ValueY.IsZero() - case diffRemoved: - isZero = r.Value.ValueX.IsZero() - case diffInserted: - isZero = r.Value.ValueY.IsZero() - } - if isZero { - continue - } - } - // Elide ignored nodes. - if r.Value.NumIgnored > 0 && r.Value.NumSame+r.Value.NumDiff == 0 { - deferredEllipsis = !(k == reflect.Slice || k == reflect.Array) - if !deferredEllipsis { - list.AppendEllipsis(diffStats{}) - } - continue - } - if out := opts.FormatDiff(r.Value, ptrs); out != nil { - list = append(list, textRecord{Key: formatKey(r.Key), Value: out}) - } - } - if deferredEllipsis { - list.AppendEllipsis(diffStats{}) - } - return &textWrap{Prefix: "{", Value: list, Suffix: "}"} - case diffUnknown: - default: - panic("invalid diff mode") - } - - // Handle differencing. - var numDiffs int - var list textList - var keys []reflect.Value // invariant: len(list) == len(keys) - groups := coalesceAdjacentRecords(name, recs) - maxGroup := diffStats{Name: name} - for i, ds := range groups { - if maxLen >= 0 && numDiffs >= maxLen { - maxGroup = maxGroup.Append(ds) - continue - } - - // Handle equal records. - if ds.NumDiff() == 0 { - // Compute the number of leading and trailing records to print. - var numLo, numHi int - numEqual := ds.NumIgnored + ds.NumIdentical - for numLo < numContextRecords && numLo+numHi < numEqual && i != 0 { - if r := recs[numLo].Value; r.NumIgnored > 0 && r.NumSame+r.NumDiff == 0 { - break - } - numLo++ - } - for numHi < numContextRecords && numLo+numHi < numEqual && i != len(groups)-1 { - if r := recs[numEqual-numHi-1].Value; r.NumIgnored > 0 && r.NumSame+r.NumDiff == 0 { - break - } - numHi++ - } - if numEqual-(numLo+numHi) == 1 && ds.NumIgnored == 0 { - numHi++ // Avoid pointless coalescing of a single equal record - } - - // Format the equal values. - for _, r := range recs[:numLo] { - out := opts.WithDiffMode(diffIdentical).FormatDiff(r.Value, ptrs) - list = append(list, textRecord{Key: formatKey(r.Key), Value: out}) - keys = append(keys, r.Key) - } - if numEqual > numLo+numHi { - ds.NumIdentical -= numLo + numHi - list.AppendEllipsis(ds) - for len(keys) < len(list) { - keys = append(keys, reflect.Value{}) - } - } - for _, r := range recs[numEqual-numHi : numEqual] { - out := opts.WithDiffMode(diffIdentical).FormatDiff(r.Value, ptrs) - list = append(list, textRecord{Key: formatKey(r.Key), Value: out}) - keys = append(keys, r.Key) - } - recs = recs[numEqual:] - continue - } - - // Handle unequal records. - for _, r := range recs[:ds.NumDiff()] { - switch { - case opts.CanFormatDiffSlice(r.Value): - out := opts.FormatDiffSlice(r.Value) - list = append(list, textRecord{Key: formatKey(r.Key), Value: out}) - keys = append(keys, r.Key) - case r.Value.NumChildren == r.Value.MaxDepth: - outx := opts.WithDiffMode(diffRemoved).FormatDiff(r.Value, ptrs) - outy := opts.WithDiffMode(diffInserted).FormatDiff(r.Value, ptrs) - for i := 0; i <= maxVerbosityPreset && outx != nil && outy != nil && outx.Equal(outy); i++ { - opts2 := verbosityPreset(opts, i) - outx = opts2.WithDiffMode(diffRemoved).FormatDiff(r.Value, ptrs) - outy = opts2.WithDiffMode(diffInserted).FormatDiff(r.Value, ptrs) - } - if outx != nil { - list = append(list, textRecord{Diff: diffRemoved, Key: formatKey(r.Key), Value: outx}) - keys = append(keys, r.Key) - } - if outy != nil { - list = append(list, textRecord{Diff: diffInserted, Key: formatKey(r.Key), Value: outy}) - keys = append(keys, r.Key) - } - default: - out := opts.FormatDiff(r.Value, ptrs) - list = append(list, textRecord{Key: formatKey(r.Key), Value: out}) - keys = append(keys, r.Key) - } - } - recs = recs[ds.NumDiff():] - numDiffs += ds.NumDiff() - } - if maxGroup.IsZero() { - assert(len(recs) == 0) - } else { - list.AppendEllipsis(maxGroup) - for len(keys) < len(list) { - keys = append(keys, reflect.Value{}) - } - } - assert(len(list) == len(keys)) - - // For maps, the default formatting logic uses fmt.Stringer which may - // produce ambiguous output. Avoid calling String to disambiguate. - if k == reflect.Map { - var ambiguous bool - seenKeys := map[string]reflect.Value{} - for i, currKey := range keys { - if currKey.IsValid() { - strKey := list[i].Key - prevKey, seen := seenKeys[strKey] - if seen && prevKey.CanInterface() && currKey.CanInterface() { - ambiguous = prevKey.Interface() != currKey.Interface() - if ambiguous { - break - } - } - seenKeys[strKey] = currKey - } - } - if ambiguous { - for i, k := range keys { - if k.IsValid() { - list[i].Key = formatMapKey(k, true, ptrs) - } - } - } - } - - return &textWrap{Prefix: "{", Value: list, Suffix: "}"} -} - -// coalesceAdjacentRecords coalesces the list of records into groups of -// adjacent equal, or unequal counts. -func coalesceAdjacentRecords(name string, recs []reportRecord) (groups []diffStats) { - var prevCase int // Arbitrary index into which case last occurred - lastStats := func(i int) *diffStats { - if prevCase != i { - groups = append(groups, diffStats{Name: name}) - prevCase = i - } - return &groups[len(groups)-1] - } - for _, r := range recs { - switch rv := r.Value; { - case rv.NumIgnored > 0 && rv.NumSame+rv.NumDiff == 0: - lastStats(1).NumIgnored++ - case rv.NumDiff == 0: - lastStats(1).NumIdentical++ - case rv.NumDiff > 0 && !rv.ValueY.IsValid(): - lastStats(2).NumRemoved++ - case rv.NumDiff > 0 && !rv.ValueX.IsValid(): - lastStats(2).NumInserted++ - default: - lastStats(2).NumModified++ - } - } - return groups -} diff --git a/vendor/github.com/google/go-cmp/cmp/report_references.go b/vendor/github.com/google/go-cmp/cmp/report_references.go deleted file mode 100644 index be31b33..0000000 --- a/vendor/github.com/google/go-cmp/cmp/report_references.go +++ /dev/null @@ -1,264 +0,0 @@ -// Copyright 2020, 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 cmp - -import ( - "fmt" - "reflect" - "strings" - - "github.com/google/go-cmp/cmp/internal/flags" - "github.com/google/go-cmp/cmp/internal/value" -) - -const ( - pointerDelimPrefix = "⟪" - pointerDelimSuffix = "⟫" -) - -// formatPointer prints the address of the pointer. -func formatPointer(p value.Pointer, withDelims bool) string { - v := p.Uintptr() - if flags.Deterministic { - v = 0xdeadf00f // Only used for stable testing purposes - } - if withDelims { - return pointerDelimPrefix + formatHex(uint64(v)) + pointerDelimSuffix - } - return formatHex(uint64(v)) -} - -// pointerReferences is a stack of pointers visited so far. -type pointerReferences [][2]value.Pointer - -func (ps *pointerReferences) PushPair(vx, vy reflect.Value, d diffMode, deref bool) (pp [2]value.Pointer) { - if deref && vx.IsValid() { - vx = vx.Addr() - } - if deref && vy.IsValid() { - vy = vy.Addr() - } - switch d { - case diffUnknown, diffIdentical: - pp = [2]value.Pointer{value.PointerOf(vx), value.PointerOf(vy)} - case diffRemoved: - pp = [2]value.Pointer{value.PointerOf(vx), value.Pointer{}} - case diffInserted: - pp = [2]value.Pointer{value.Pointer{}, value.PointerOf(vy)} - } - *ps = append(*ps, pp) - return pp -} - -func (ps *pointerReferences) Push(v reflect.Value) (p value.Pointer, seen bool) { - p = value.PointerOf(v) - for _, pp := range *ps { - if p == pp[0] || p == pp[1] { - return p, true - } - } - *ps = append(*ps, [2]value.Pointer{p, p}) - return p, false -} - -func (ps *pointerReferences) Pop() { - *ps = (*ps)[:len(*ps)-1] -} - -// trunkReferences is metadata for a textNode indicating that the sub-tree -// represents the value for either pointer in a pair of references. -type trunkReferences struct{ pp [2]value.Pointer } - -// trunkReference is metadata for a textNode indicating that the sub-tree -// represents the value for the given pointer reference. -type trunkReference struct{ p value.Pointer } - -// leafReference is metadata for a textNode indicating that the value is -// truncated as it refers to another part of the tree (i.e., a trunk). -type leafReference struct{ p value.Pointer } - -func wrapTrunkReferences(pp [2]value.Pointer, s textNode) textNode { - switch { - case pp[0].IsNil(): - return &textWrap{Value: s, Metadata: trunkReference{pp[1]}} - case pp[1].IsNil(): - return &textWrap{Value: s, Metadata: trunkReference{pp[0]}} - case pp[0] == pp[1]: - return &textWrap{Value: s, Metadata: trunkReference{pp[0]}} - default: - return &textWrap{Value: s, Metadata: trunkReferences{pp}} - } -} -func wrapTrunkReference(p value.Pointer, printAddress bool, s textNode) textNode { - var prefix string - if printAddress { - prefix = formatPointer(p, true) - } - return &textWrap{Prefix: prefix, Value: s, Metadata: trunkReference{p}} -} -func makeLeafReference(p value.Pointer, printAddress bool) textNode { - out := &textWrap{Prefix: "(", Value: textEllipsis, Suffix: ")"} - var prefix string - if printAddress { - prefix = formatPointer(p, true) - } - return &textWrap{Prefix: prefix, Value: out, Metadata: leafReference{p}} -} - -// resolveReferences walks the textNode tree searching for any leaf reference -// metadata and resolves each against the corresponding trunk references. -// Since pointer addresses in memory are not particularly readable to the user, -// it replaces each pointer value with an arbitrary and unique reference ID. -func resolveReferences(s textNode) { - var walkNodes func(textNode, func(textNode)) - walkNodes = func(s textNode, f func(textNode)) { - f(s) - switch s := s.(type) { - case *textWrap: - walkNodes(s.Value, f) - case textList: - for _, r := range s { - walkNodes(r.Value, f) - } - } - } - - // Collect all trunks and leaves with reference metadata. - var trunks, leaves []*textWrap - walkNodes(s, func(s textNode) { - if s, ok := s.(*textWrap); ok { - switch s.Metadata.(type) { - case leafReference: - leaves = append(leaves, s) - case trunkReference, trunkReferences: - trunks = append(trunks, s) - } - } - }) - - // No leaf references to resolve. - if len(leaves) == 0 { - return - } - - // Collect the set of all leaf references to resolve. - leafPtrs := make(map[value.Pointer]bool) - for _, leaf := range leaves { - leafPtrs[leaf.Metadata.(leafReference).p] = true - } - - // Collect the set of trunk pointers that are always paired together. - // This allows us to assign a single ID to both pointers for brevity. - // If a pointer in a pair ever occurs by itself or as a different pair, - // then the pair is broken. - pairedTrunkPtrs := make(map[value.Pointer]value.Pointer) - unpair := func(p value.Pointer) { - if !pairedTrunkPtrs[p].IsNil() { - pairedTrunkPtrs[pairedTrunkPtrs[p]] = value.Pointer{} // invalidate other half - } - pairedTrunkPtrs[p] = value.Pointer{} // invalidate this half - } - for _, trunk := range trunks { - switch p := trunk.Metadata.(type) { - case trunkReference: - unpair(p.p) // standalone pointer cannot be part of a pair - case trunkReferences: - p0, ok0 := pairedTrunkPtrs[p.pp[0]] - p1, ok1 := pairedTrunkPtrs[p.pp[1]] - switch { - case !ok0 && !ok1: - // Register the newly seen pair. - pairedTrunkPtrs[p.pp[0]] = p.pp[1] - pairedTrunkPtrs[p.pp[1]] = p.pp[0] - case ok0 && ok1 && p0 == p.pp[1] && p1 == p.pp[0]: - // Exact pair already seen; do nothing. - default: - // Pair conflicts with some other pair; break all pairs. - unpair(p.pp[0]) - unpair(p.pp[1]) - } - } - } - - // Correlate each pointer referenced by leaves to a unique identifier, - // and print the IDs for each trunk that matches those pointers. - var nextID uint - ptrIDs := make(map[value.Pointer]uint) - newID := func() uint { - id := nextID - nextID++ - return id - } - for _, trunk := range trunks { - switch p := trunk.Metadata.(type) { - case trunkReference: - if print := leafPtrs[p.p]; print { - id, ok := ptrIDs[p.p] - if !ok { - id = newID() - ptrIDs[p.p] = id - } - trunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id)) - } - case trunkReferences: - print0 := leafPtrs[p.pp[0]] - print1 := leafPtrs[p.pp[1]] - if print0 || print1 { - id0, ok0 := ptrIDs[p.pp[0]] - id1, ok1 := ptrIDs[p.pp[1]] - isPair := pairedTrunkPtrs[p.pp[0]] == p.pp[1] && pairedTrunkPtrs[p.pp[1]] == p.pp[0] - if isPair { - var id uint - assert(ok0 == ok1) // must be seen together or not at all - if ok0 { - assert(id0 == id1) // must have the same ID - id = id0 - } else { - id = newID() - ptrIDs[p.pp[0]] = id - ptrIDs[p.pp[1]] = id - } - trunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id)) - } else { - if print0 && !ok0 { - id0 = newID() - ptrIDs[p.pp[0]] = id0 - } - if print1 && !ok1 { - id1 = newID() - ptrIDs[p.pp[1]] = id1 - } - switch { - case print0 && print1: - trunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id0)+","+formatReference(id1)) - case print0: - trunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id0)) - case print1: - trunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id1)) - } - } - } - } - } - - // Update all leaf references with the unique identifier. - for _, leaf := range leaves { - if id, ok := ptrIDs[leaf.Metadata.(leafReference).p]; ok { - leaf.Prefix = updateReferencePrefix(leaf.Prefix, formatReference(id)) - } - } -} - -func formatReference(id uint) string { - return fmt.Sprintf("ref#%d", id) -} - -func updateReferencePrefix(prefix, ref string) string { - if prefix == "" { - return pointerDelimPrefix + ref + pointerDelimSuffix - } - suffix := strings.TrimPrefix(prefix, pointerDelimPrefix) - return pointerDelimPrefix + ref + ": " + suffix -} diff --git a/vendor/github.com/google/go-cmp/cmp/report_reflect.go b/vendor/github.com/google/go-cmp/cmp/report_reflect.go deleted file mode 100644 index e39f422..0000000 --- a/vendor/github.com/google/go-cmp/cmp/report_reflect.go +++ /dev/null @@ -1,414 +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. - -package cmp - -import ( - "bytes" - "fmt" - "reflect" - "strconv" - "strings" - "unicode" - "unicode/utf8" - - "github.com/google/go-cmp/cmp/internal/value" -) - -var ( - anyType = reflect.TypeOf((*interface{})(nil)).Elem() - stringType = reflect.TypeOf((*string)(nil)).Elem() - bytesType = reflect.TypeOf((*[]byte)(nil)).Elem() - byteType = reflect.TypeOf((*byte)(nil)).Elem() -) - -type formatValueOptions struct { - // AvoidStringer controls whether to avoid calling custom stringer - // methods like error.Error or fmt.Stringer.String. - AvoidStringer bool - - // PrintAddresses controls whether to print the address of all pointers, - // slice elements, and maps. - PrintAddresses bool - - // QualifiedNames controls whether FormatType uses the fully qualified name - // (including the full package path as opposed to just the package name). - QualifiedNames bool - - // VerbosityLevel controls the amount of output to produce. - // A higher value produces more output. A value of zero or lower produces - // no output (represented using an ellipsis). - // If LimitVerbosity is false, then the level is treated as infinite. - VerbosityLevel int - - // LimitVerbosity specifies that formatting should respect VerbosityLevel. - LimitVerbosity bool -} - -// FormatType prints the type as if it were wrapping s. -// This may return s as-is depending on the current type and TypeMode mode. -func (opts formatOptions) FormatType(t reflect.Type, s textNode) textNode { - // Check whether to emit the type or not. - switch opts.TypeMode { - case autoType: - switch t.Kind() { - case reflect.Struct, reflect.Slice, reflect.Array, reflect.Map: - if s.Equal(textNil) { - return s - } - default: - return s - } - if opts.DiffMode == diffIdentical { - return s // elide type for identical nodes - } - case elideType: - return s - } - - // Determine the type label, applying special handling for unnamed types. - typeName := value.TypeString(t, opts.QualifiedNames) - if t.Name() == "" { - // According to Go grammar, certain type literals contain symbols that - // do not strongly bind to the next lexicographical token (e.g., *T). - switch t.Kind() { - case reflect.Chan, reflect.Func, reflect.Ptr: - typeName = "(" + typeName + ")" - } - } - return &textWrap{Prefix: typeName, Value: wrapParens(s)} -} - -// wrapParens wraps s with a set of parenthesis, but avoids it if the -// wrapped node itself is already surrounded by a pair of parenthesis or braces. -// It handles unwrapping one level of pointer-reference nodes. -func wrapParens(s textNode) textNode { - var refNode *textWrap - if s2, ok := s.(*textWrap); ok { - // Unwrap a single pointer reference node. - switch s2.Metadata.(type) { - case leafReference, trunkReference, trunkReferences: - refNode = s2 - if s3, ok := refNode.Value.(*textWrap); ok { - s2 = s3 - } - } - - // Already has delimiters that make parenthesis unnecessary. - hasParens := strings.HasPrefix(s2.Prefix, "(") && strings.HasSuffix(s2.Suffix, ")") - hasBraces := strings.HasPrefix(s2.Prefix, "{") && strings.HasSuffix(s2.Suffix, "}") - if hasParens || hasBraces { - return s - } - } - if refNode != nil { - refNode.Value = &textWrap{Prefix: "(", Value: refNode.Value, Suffix: ")"} - return s - } - return &textWrap{Prefix: "(", Value: s, Suffix: ")"} -} - -// FormatValue prints the reflect.Value, taking extra care to avoid descending -// into pointers already in ptrs. As pointers are visited, ptrs is also updated. -func (opts formatOptions) FormatValue(v reflect.Value, parentKind reflect.Kind, ptrs *pointerReferences) (out textNode) { - if !v.IsValid() { - return nil - } - t := v.Type() - - // Check slice element for cycles. - if parentKind == reflect.Slice { - ptrRef, visited := ptrs.Push(v.Addr()) - if visited { - return makeLeafReference(ptrRef, false) - } - defer ptrs.Pop() - defer func() { out = wrapTrunkReference(ptrRef, false, out) }() - } - - // Check whether there is an Error or String method to call. - if !opts.AvoidStringer && v.CanInterface() { - // Avoid calling Error or String methods on nil receivers since many - // implementations crash when doing so. - if (t.Kind() != reflect.Ptr && t.Kind() != reflect.Interface) || !v.IsNil() { - var prefix, strVal string - func() { - // Swallow and ignore any panics from String or Error. - defer func() { recover() }() - switch v := v.Interface().(type) { - case error: - strVal = v.Error() - prefix = "e" - case fmt.Stringer: - strVal = v.String() - prefix = "s" - } - }() - if prefix != "" { - return opts.formatString(prefix, strVal) - } - } - } - - // Check whether to explicitly wrap the result with the type. - var skipType bool - defer func() { - if !skipType { - out = opts.FormatType(t, out) - } - }() - - switch t.Kind() { - case reflect.Bool: - return textLine(fmt.Sprint(v.Bool())) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return textLine(fmt.Sprint(v.Int())) - case reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return textLine(fmt.Sprint(v.Uint())) - case reflect.Uint8: - if parentKind == reflect.Slice || parentKind == reflect.Array { - return textLine(formatHex(v.Uint())) - } - return textLine(fmt.Sprint(v.Uint())) - case reflect.Uintptr: - return textLine(formatHex(v.Uint())) - case reflect.Float32, reflect.Float64: - return textLine(fmt.Sprint(v.Float())) - case reflect.Complex64, reflect.Complex128: - return textLine(fmt.Sprint(v.Complex())) - case reflect.String: - return opts.formatString("", v.String()) - case reflect.UnsafePointer, reflect.Chan, reflect.Func: - return textLine(formatPointer(value.PointerOf(v), true)) - case reflect.Struct: - var list textList - v := makeAddressable(v) // needed for retrieveUnexportedField - maxLen := v.NumField() - if opts.LimitVerbosity { - maxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc... - opts.VerbosityLevel-- - } - for i := 0; i < v.NumField(); i++ { - vv := v.Field(i) - if vv.IsZero() { - continue // Elide fields with zero values - } - if len(list) == maxLen { - list.AppendEllipsis(diffStats{}) - break - } - sf := t.Field(i) - if !isExported(sf.Name) { - vv = retrieveUnexportedField(v, sf, true) - } - s := opts.WithTypeMode(autoType).FormatValue(vv, t.Kind(), ptrs) - list = append(list, textRecord{Key: sf.Name, Value: s}) - } - return &textWrap{Prefix: "{", Value: list, Suffix: "}"} - case reflect.Slice: - if v.IsNil() { - return textNil - } - - // Check whether this is a []byte of text data. - if t.Elem() == byteType { - b := v.Bytes() - isPrintSpace := func(r rune) bool { return unicode.IsPrint(r) || unicode.IsSpace(r) } - if len(b) > 0 && utf8.Valid(b) && len(bytes.TrimFunc(b, isPrintSpace)) == 0 { - out = opts.formatString("", string(b)) - skipType = true - return opts.FormatType(t, out) - } - } - - fallthrough - case reflect.Array: - maxLen := v.Len() - if opts.LimitVerbosity { - maxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc... - opts.VerbosityLevel-- - } - var list textList - for i := 0; i < v.Len(); i++ { - if len(list) == maxLen { - list.AppendEllipsis(diffStats{}) - break - } - s := opts.WithTypeMode(elideType).FormatValue(v.Index(i), t.Kind(), ptrs) - list = append(list, textRecord{Value: s}) - } - - out = &textWrap{Prefix: "{", Value: list, Suffix: "}"} - if t.Kind() == reflect.Slice && opts.PrintAddresses { - header := fmt.Sprintf("ptr:%v, len:%d, cap:%d", formatPointer(value.PointerOf(v), false), v.Len(), v.Cap()) - out = &textWrap{Prefix: pointerDelimPrefix + header + pointerDelimSuffix, Value: out} - } - return out - case reflect.Map: - if v.IsNil() { - return textNil - } - - // Check pointer for cycles. - ptrRef, visited := ptrs.Push(v) - if visited { - return makeLeafReference(ptrRef, opts.PrintAddresses) - } - defer ptrs.Pop() - - maxLen := v.Len() - if opts.LimitVerbosity { - maxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc... - opts.VerbosityLevel-- - } - var list textList - for _, k := range value.SortKeys(v.MapKeys()) { - if len(list) == maxLen { - list.AppendEllipsis(diffStats{}) - break - } - sk := formatMapKey(k, false, ptrs) - sv := opts.WithTypeMode(elideType).FormatValue(v.MapIndex(k), t.Kind(), ptrs) - list = append(list, textRecord{Key: sk, Value: sv}) - } - - out = &textWrap{Prefix: "{", Value: list, Suffix: "}"} - out = wrapTrunkReference(ptrRef, opts.PrintAddresses, out) - return out - case reflect.Ptr: - if v.IsNil() { - return textNil - } - - // Check pointer for cycles. - ptrRef, visited := ptrs.Push(v) - if visited { - out = makeLeafReference(ptrRef, opts.PrintAddresses) - return &textWrap{Prefix: "&", Value: out} - } - defer ptrs.Pop() - - // Skip the name only if this is an unnamed pointer type. - // Otherwise taking the address of a value does not reproduce - // the named pointer type. - if v.Type().Name() == "" { - skipType = true // Let the underlying value print the type instead - } - out = opts.FormatValue(v.Elem(), t.Kind(), ptrs) - out = wrapTrunkReference(ptrRef, opts.PrintAddresses, out) - out = &textWrap{Prefix: "&", Value: out} - return out - case reflect.Interface: - if v.IsNil() { - return textNil - } - // Interfaces accept different concrete types, - // so configure the underlying value to explicitly print the type. - return opts.WithTypeMode(emitType).FormatValue(v.Elem(), t.Kind(), ptrs) - default: - panic(fmt.Sprintf("%v kind not handled", v.Kind())) - } -} - -func (opts formatOptions) formatString(prefix, s string) textNode { - maxLen := len(s) - maxLines := strings.Count(s, "\n") + 1 - if opts.LimitVerbosity { - maxLen = (1 << opts.verbosity()) << 5 // 32, 64, 128, 256, etc... - maxLines = (1 << opts.verbosity()) << 2 // 4, 8, 16, 32, 64, etc... - } - - // For multiline strings, use the triple-quote syntax, - // but only use it when printing removed or inserted nodes since - // we only want the extra verbosity for those cases. - lines := strings.Split(strings.TrimSuffix(s, "\n"), "\n") - isTripleQuoted := len(lines) >= 4 && (opts.DiffMode == '-' || opts.DiffMode == '+') - for i := 0; i < len(lines) && isTripleQuoted; i++ { - lines[i] = strings.TrimPrefix(strings.TrimSuffix(lines[i], "\r"), "\r") // trim leading/trailing carriage returns for legacy Windows endline support - isPrintable := func(r rune) bool { - return unicode.IsPrint(r) || r == '\t' // specially treat tab as printable - } - line := lines[i] - isTripleQuoted = !strings.HasPrefix(strings.TrimPrefix(line, prefix), `"""`) && !strings.HasPrefix(line, "...") && strings.TrimFunc(line, isPrintable) == "" && len(line) <= maxLen - } - if isTripleQuoted { - var list textList - list = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(prefix + `"""`), ElideComma: true}) - for i, line := range lines { - if numElided := len(lines) - i; i == maxLines-1 && numElided > 1 { - comment := commentString(fmt.Sprintf("%d elided lines", numElided)) - list = append(list, textRecord{Diff: opts.DiffMode, Value: textEllipsis, ElideComma: true, Comment: comment}) - break - } - list = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(line), ElideComma: true}) - } - list = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(prefix + `"""`), ElideComma: true}) - return &textWrap{Prefix: "(", Value: list, Suffix: ")"} - } - - // Format the string as a single-line quoted string. - if len(s) > maxLen+len(textEllipsis) { - return textLine(prefix + formatString(s[:maxLen]) + string(textEllipsis)) - } - return textLine(prefix + formatString(s)) -} - -// formatMapKey formats v as if it were a map key. -// The result is guaranteed to be a single line. -func formatMapKey(v reflect.Value, disambiguate bool, ptrs *pointerReferences) string { - var opts formatOptions - opts.DiffMode = diffIdentical - opts.TypeMode = elideType - opts.PrintAddresses = disambiguate - opts.AvoidStringer = disambiguate - opts.QualifiedNames = disambiguate - opts.VerbosityLevel = maxVerbosityPreset - opts.LimitVerbosity = true - s := opts.FormatValue(v, reflect.Map, ptrs).String() - return strings.TrimSpace(s) -} - -// formatString prints s as a double-quoted or backtick-quoted string. -func formatString(s string) string { - // Use quoted string if it the same length as a raw string literal. - // Otherwise, attempt to use the raw string form. - qs := strconv.Quote(s) - if len(qs) == 1+len(s)+1 { - return qs - } - - // Disallow newlines to ensure output is a single line. - // Only allow printable runes for readability purposes. - rawInvalid := func(r rune) bool { - return r == '`' || r == '\n' || !(unicode.IsPrint(r) || r == '\t') - } - if utf8.ValidString(s) && strings.IndexFunc(s, rawInvalid) < 0 { - return "`" + s + "`" - } - return qs -} - -// formatHex prints u as a hexadecimal integer in Go notation. -func formatHex(u uint64) string { - var f string - switch { - case u <= 0xff: - f = "0x%02x" - case u <= 0xffff: - f = "0x%04x" - case u <= 0xffffff: - f = "0x%06x" - case u <= 0xffffffff: - f = "0x%08x" - case u <= 0xffffffffff: - f = "0x%010x" - case u <= 0xffffffffffff: - f = "0x%012x" - case u <= 0xffffffffffffff: - f = "0x%014x" - case u <= 0xffffffffffffffff: - f = "0x%016x" - } - return fmt.Sprintf(f, u) -} diff --git a/vendor/github.com/google/go-cmp/cmp/report_slices.go b/vendor/github.com/google/go-cmp/cmp/report_slices.go deleted file mode 100644 index 23e444f..0000000 --- a/vendor/github.com/google/go-cmp/cmp/report_slices.go +++ /dev/null @@ -1,614 +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. - -package cmp - -import ( - "bytes" - "fmt" - "math" - "reflect" - "strconv" - "strings" - "unicode" - "unicode/utf8" - - "github.com/google/go-cmp/cmp/internal/diff" -) - -// CanFormatDiffSlice reports whether we support custom formatting for nodes -// that are slices of primitive kinds or strings. -func (opts formatOptions) CanFormatDiffSlice(v *valueNode) bool { - switch { - case opts.DiffMode != diffUnknown: - return false // Must be formatting in diff mode - case v.NumDiff == 0: - return false // No differences detected - case !v.ValueX.IsValid() || !v.ValueY.IsValid(): - return false // Both values must be valid - case v.NumIgnored > 0: - return false // Some ignore option was used - case v.NumTransformed > 0: - return false // Some transform option was used - case v.NumCompared > 1: - return false // More than one comparison was used - case v.NumCompared == 1 && v.Type.Name() != "": - // The need for cmp to check applicability of options on every element - // in a slice is a significant performance detriment for large []byte. - // The workaround is to specify Comparer(bytes.Equal), - // which enables cmp to compare []byte more efficiently. - // If they differ, we still want to provide batched diffing. - // The logic disallows named types since they tend to have their own - // String method, with nicer formatting than what this provides. - return false - } - - // Check whether this is an interface with the same concrete types. - t := v.Type - vx, vy := v.ValueX, v.ValueY - if t.Kind() == reflect.Interface && !vx.IsNil() && !vy.IsNil() && vx.Elem().Type() == vy.Elem().Type() { - vx, vy = vx.Elem(), vy.Elem() - t = vx.Type() - } - - // Check whether we provide specialized diffing for this type. - switch t.Kind() { - case reflect.String: - case reflect.Array, reflect.Slice: - // Only slices of primitive types have specialized handling. - switch t.Elem().Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, - reflect.Bool, reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128: - default: - return false - } - - // Both slice values have to be non-empty. - if t.Kind() == reflect.Slice && (vx.Len() == 0 || vy.Len() == 0) { - return false - } - - // If a sufficient number of elements already differ, - // use specialized formatting even if length requirement is not met. - if v.NumDiff > v.NumSame { - return true - } - default: - return false - } - - // Use specialized string diffing for longer slices or strings. - const minLength = 32 - return vx.Len() >= minLength && vy.Len() >= minLength -} - -// FormatDiffSlice prints a diff for the slices (or strings) represented by v. -// This provides custom-tailored logic to make printing of differences in -// textual strings and slices of primitive kinds more readable. -func (opts formatOptions) FormatDiffSlice(v *valueNode) textNode { - assert(opts.DiffMode == diffUnknown) - t, vx, vy := v.Type, v.ValueX, v.ValueY - if t.Kind() == reflect.Interface { - vx, vy = vx.Elem(), vy.Elem() - t = vx.Type() - opts = opts.WithTypeMode(emitType) - } - - // Auto-detect the type of the data. - var sx, sy string - var ssx, ssy []string - var isString, isMostlyText, isPureLinedText, isBinary bool - switch { - case t.Kind() == reflect.String: - sx, sy = vx.String(), vy.String() - isString = true - case t.Kind() == reflect.Slice && t.Elem() == byteType: - sx, sy = string(vx.Bytes()), string(vy.Bytes()) - isString = true - case t.Kind() == reflect.Array: - // Arrays need to be addressable for slice operations to work. - vx2, vy2 := reflect.New(t).Elem(), reflect.New(t).Elem() - vx2.Set(vx) - vy2.Set(vy) - vx, vy = vx2, vy2 - } - if isString { - var numTotalRunes, numValidRunes, numLines, lastLineIdx, maxLineLen int - for i, r := range sx + sy { - numTotalRunes++ - if (unicode.IsPrint(r) || unicode.IsSpace(r)) && r != utf8.RuneError { - numValidRunes++ - } - if r == '\n' { - if maxLineLen < i-lastLineIdx { - maxLineLen = i - lastLineIdx - } - lastLineIdx = i + 1 - numLines++ - } - } - isPureText := numValidRunes == numTotalRunes - isMostlyText = float64(numValidRunes) > math.Floor(0.90*float64(numTotalRunes)) - isPureLinedText = isPureText && numLines >= 4 && maxLineLen <= 1024 - isBinary = !isMostlyText - - // Avoid diffing by lines if it produces a significantly more complex - // edit script than diffing by bytes. - if isPureLinedText { - ssx = strings.Split(sx, "\n") - ssy = strings.Split(sy, "\n") - esLines := diff.Difference(len(ssx), len(ssy), func(ix, iy int) diff.Result { - return diff.BoolResult(ssx[ix] == ssy[iy]) - }) - esBytes := diff.Difference(len(sx), len(sy), func(ix, iy int) diff.Result { - return diff.BoolResult(sx[ix] == sy[iy]) - }) - efficiencyLines := float64(esLines.Dist()) / float64(len(esLines)) - efficiencyBytes := float64(esBytes.Dist()) / float64(len(esBytes)) - quotedLength := len(strconv.Quote(sx + sy)) - unquotedLength := len(sx) + len(sy) - escapeExpansionRatio := float64(quotedLength) / float64(unquotedLength) - isPureLinedText = efficiencyLines < 4*efficiencyBytes || escapeExpansionRatio > 1.1 - } - } - - // Format the string into printable records. - var list textList - var delim string - switch { - // If the text appears to be multi-lined text, - // then perform differencing across individual lines. - case isPureLinedText: - list = opts.formatDiffSlice( - reflect.ValueOf(ssx), reflect.ValueOf(ssy), 1, "line", - func(v reflect.Value, d diffMode) textRecord { - s := formatString(v.Index(0).String()) - return textRecord{Diff: d, Value: textLine(s)} - }, - ) - delim = "\n" - - // If possible, use a custom triple-quote (""") syntax for printing - // differences in a string literal. This format is more readable, - // but has edge-cases where differences are visually indistinguishable. - // This format is avoided under the following conditions: - // - A line starts with `"""` - // - A line starts with "..." - // - A line contains non-printable characters - // - Adjacent different lines differ only by whitespace - // - // For example: - // - // """ - // ... // 3 identical lines - // foo - // bar - // - baz - // + BAZ - // """ - isTripleQuoted := true - prevRemoveLines := map[string]bool{} - prevInsertLines := map[string]bool{} - var list2 textList - list2 = append(list2, textRecord{Value: textLine(`"""`), ElideComma: true}) - for _, r := range list { - if !r.Value.Equal(textEllipsis) { - line, _ := strconv.Unquote(string(r.Value.(textLine))) - line = strings.TrimPrefix(strings.TrimSuffix(line, "\r"), "\r") // trim leading/trailing carriage returns for legacy Windows endline support - normLine := strings.Map(func(r rune) rune { - if unicode.IsSpace(r) { - return -1 // drop whitespace to avoid visually indistinguishable output - } - return r - }, line) - isPrintable := func(r rune) bool { - return unicode.IsPrint(r) || r == '\t' // specially treat tab as printable - } - isTripleQuoted = !strings.HasPrefix(line, `"""`) && !strings.HasPrefix(line, "...") && strings.TrimFunc(line, isPrintable) == "" - switch r.Diff { - case diffRemoved: - isTripleQuoted = isTripleQuoted && !prevInsertLines[normLine] - prevRemoveLines[normLine] = true - case diffInserted: - isTripleQuoted = isTripleQuoted && !prevRemoveLines[normLine] - prevInsertLines[normLine] = true - } - if !isTripleQuoted { - break - } - r.Value = textLine(line) - r.ElideComma = true - } - if !(r.Diff == diffRemoved || r.Diff == diffInserted) { // start a new non-adjacent difference group - prevRemoveLines = map[string]bool{} - prevInsertLines = map[string]bool{} - } - list2 = append(list2, r) - } - if r := list2[len(list2)-1]; r.Diff == diffIdentical && len(r.Value.(textLine)) == 0 { - list2 = list2[:len(list2)-1] // elide single empty line at the end - } - list2 = append(list2, textRecord{Value: textLine(`"""`), ElideComma: true}) - if isTripleQuoted { - var out textNode = &textWrap{Prefix: "(", Value: list2, Suffix: ")"} - switch t.Kind() { - case reflect.String: - if t != stringType { - out = opts.FormatType(t, out) - } - case reflect.Slice: - // Always emit type for slices since the triple-quote syntax - // looks like a string (not a slice). - opts = opts.WithTypeMode(emitType) - out = opts.FormatType(t, out) - } - return out - } - - // If the text appears to be single-lined text, - // then perform differencing in approximately fixed-sized chunks. - // The output is printed as quoted strings. - case isMostlyText: - list = opts.formatDiffSlice( - reflect.ValueOf(sx), reflect.ValueOf(sy), 64, "byte", - func(v reflect.Value, d diffMode) textRecord { - s := formatString(v.String()) - return textRecord{Diff: d, Value: textLine(s)} - }, - ) - - // If the text appears to be binary data, - // then perform differencing in approximately fixed-sized chunks. - // The output is inspired by hexdump. - case isBinary: - list = opts.formatDiffSlice( - reflect.ValueOf(sx), reflect.ValueOf(sy), 16, "byte", - func(v reflect.Value, d diffMode) textRecord { - var ss []string - for i := 0; i < v.Len(); i++ { - ss = append(ss, formatHex(v.Index(i).Uint())) - } - s := strings.Join(ss, ", ") - comment := commentString(fmt.Sprintf("%c|%v|", d, formatASCII(v.String()))) - return textRecord{Diff: d, Value: textLine(s), Comment: comment} - }, - ) - - // For all other slices of primitive types, - // then perform differencing in approximately fixed-sized chunks. - // The size of each chunk depends on the width of the element kind. - default: - var chunkSize int - if t.Elem().Kind() == reflect.Bool { - chunkSize = 16 - } else { - switch t.Elem().Bits() { - case 8: - chunkSize = 16 - case 16: - chunkSize = 12 - case 32: - chunkSize = 8 - default: - chunkSize = 8 - } - } - list = opts.formatDiffSlice( - vx, vy, chunkSize, t.Elem().Kind().String(), - func(v reflect.Value, d diffMode) textRecord { - var ss []string - for i := 0; i < v.Len(); i++ { - switch t.Elem().Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - ss = append(ss, fmt.Sprint(v.Index(i).Int())) - case reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64: - ss = append(ss, fmt.Sprint(v.Index(i).Uint())) - case reflect.Uint8, reflect.Uintptr: - ss = append(ss, formatHex(v.Index(i).Uint())) - case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128: - ss = append(ss, fmt.Sprint(v.Index(i).Interface())) - } - } - s := strings.Join(ss, ", ") - return textRecord{Diff: d, Value: textLine(s)} - }, - ) - } - - // Wrap the output with appropriate type information. - var out textNode = &textWrap{Prefix: "{", Value: list, Suffix: "}"} - if !isMostlyText { - // The "{...}" byte-sequence literal is not valid Go syntax for strings. - // Emit the type for extra clarity (e.g. "string{...}"). - if t.Kind() == reflect.String { - opts = opts.WithTypeMode(emitType) - } - return opts.FormatType(t, out) - } - switch t.Kind() { - case reflect.String: - out = &textWrap{Prefix: "strings.Join(", Value: out, Suffix: fmt.Sprintf(", %q)", delim)} - if t != stringType { - out = opts.FormatType(t, out) - } - case reflect.Slice: - out = &textWrap{Prefix: "bytes.Join(", Value: out, Suffix: fmt.Sprintf(", %q)", delim)} - if t != bytesType { - out = opts.FormatType(t, out) - } - } - return out -} - -// formatASCII formats s as an ASCII string. -// This is useful for printing binary strings in a semi-legible way. -func formatASCII(s string) string { - b := bytes.Repeat([]byte{'.'}, len(s)) - for i := 0; i < len(s); i++ { - if ' ' <= s[i] && s[i] <= '~' { - b[i] = s[i] - } - } - return string(b) -} - -func (opts formatOptions) formatDiffSlice( - vx, vy reflect.Value, chunkSize int, name string, - makeRec func(reflect.Value, diffMode) textRecord, -) (list textList) { - eq := func(ix, iy int) bool { - return vx.Index(ix).Interface() == vy.Index(iy).Interface() - } - es := diff.Difference(vx.Len(), vy.Len(), func(ix, iy int) diff.Result { - return diff.BoolResult(eq(ix, iy)) - }) - - appendChunks := func(v reflect.Value, d diffMode) int { - n0 := v.Len() - for v.Len() > 0 { - n := chunkSize - if n > v.Len() { - n = v.Len() - } - list = append(list, makeRec(v.Slice(0, n), d)) - v = v.Slice(n, v.Len()) - } - return n0 - v.Len() - } - - var numDiffs int - maxLen := -1 - if opts.LimitVerbosity { - maxLen = (1 << opts.verbosity()) << 2 // 4, 8, 16, 32, 64, etc... - opts.VerbosityLevel-- - } - - groups := coalesceAdjacentEdits(name, es) - groups = coalesceInterveningIdentical(groups, chunkSize/4) - groups = cleanupSurroundingIdentical(groups, eq) - maxGroup := diffStats{Name: name} - for i, ds := range groups { - if maxLen >= 0 && numDiffs >= maxLen { - maxGroup = maxGroup.Append(ds) - continue - } - - // Print equal. - if ds.NumDiff() == 0 { - // Compute the number of leading and trailing equal bytes to print. - var numLo, numHi int - numEqual := ds.NumIgnored + ds.NumIdentical - for numLo < chunkSize*numContextRecords && numLo+numHi < numEqual && i != 0 { - numLo++ - } - for numHi < chunkSize*numContextRecords && numLo+numHi < numEqual && i != len(groups)-1 { - numHi++ - } - if numEqual-(numLo+numHi) <= chunkSize && ds.NumIgnored == 0 { - numHi = numEqual - numLo // Avoid pointless coalescing of single equal row - } - - // Print the equal bytes. - appendChunks(vx.Slice(0, numLo), diffIdentical) - if numEqual > numLo+numHi { - ds.NumIdentical -= numLo + numHi - list.AppendEllipsis(ds) - } - appendChunks(vx.Slice(numEqual-numHi, numEqual), diffIdentical) - vx = vx.Slice(numEqual, vx.Len()) - vy = vy.Slice(numEqual, vy.Len()) - continue - } - - // Print unequal. - len0 := len(list) - nx := appendChunks(vx.Slice(0, ds.NumIdentical+ds.NumRemoved+ds.NumModified), diffRemoved) - vx = vx.Slice(nx, vx.Len()) - ny := appendChunks(vy.Slice(0, ds.NumIdentical+ds.NumInserted+ds.NumModified), diffInserted) - vy = vy.Slice(ny, vy.Len()) - numDiffs += len(list) - len0 - } - if maxGroup.IsZero() { - assert(vx.Len() == 0 && vy.Len() == 0) - } else { - list.AppendEllipsis(maxGroup) - } - return list -} - -// coalesceAdjacentEdits coalesces the list of edits into groups of adjacent -// equal or unequal counts. -// -// Example: -// -// Input: "..XXY...Y" -// Output: [ -// {NumIdentical: 2}, -// {NumRemoved: 2, NumInserted 1}, -// {NumIdentical: 3}, -// {NumInserted: 1}, -// ] -func coalesceAdjacentEdits(name string, es diff.EditScript) (groups []diffStats) { - var prevMode byte - lastStats := func(mode byte) *diffStats { - if prevMode != mode { - groups = append(groups, diffStats{Name: name}) - prevMode = mode - } - return &groups[len(groups)-1] - } - for _, e := range es { - switch e { - case diff.Identity: - lastStats('=').NumIdentical++ - case diff.UniqueX: - lastStats('!').NumRemoved++ - case diff.UniqueY: - lastStats('!').NumInserted++ - case diff.Modified: - lastStats('!').NumModified++ - } - } - return groups -} - -// coalesceInterveningIdentical coalesces sufficiently short (<= windowSize) -// equal groups into adjacent unequal groups that currently result in a -// dual inserted/removed printout. This acts as a high-pass filter to smooth -// out high-frequency changes within the windowSize. -// -// Example: -// -// WindowSize: 16, -// Input: [ -// {NumIdentical: 61}, // group 0 -// {NumRemoved: 3, NumInserted: 1}, // group 1 -// {NumIdentical: 6}, // ├── coalesce -// {NumInserted: 2}, // ├── coalesce -// {NumIdentical: 1}, // ├── coalesce -// {NumRemoved: 9}, // └── coalesce -// {NumIdentical: 64}, // group 2 -// {NumRemoved: 3, NumInserted: 1}, // group 3 -// {NumIdentical: 6}, // ├── coalesce -// {NumInserted: 2}, // ├── coalesce -// {NumIdentical: 1}, // ├── coalesce -// {NumRemoved: 7}, // ├── coalesce -// {NumIdentical: 1}, // ├── coalesce -// {NumRemoved: 2}, // └── coalesce -// {NumIdentical: 63}, // group 4 -// ] -// Output: [ -// {NumIdentical: 61}, -// {NumIdentical: 7, NumRemoved: 12, NumInserted: 3}, -// {NumIdentical: 64}, -// {NumIdentical: 8, NumRemoved: 12, NumInserted: 3}, -// {NumIdentical: 63}, -// ] -func coalesceInterveningIdentical(groups []diffStats, windowSize int) []diffStats { - groups, groupsOrig := groups[:0], groups - for i, ds := range groupsOrig { - if len(groups) >= 2 && ds.NumDiff() > 0 { - prev := &groups[len(groups)-2] // Unequal group - curr := &groups[len(groups)-1] // Equal group - next := &groupsOrig[i] // Unequal group - hadX, hadY := prev.NumRemoved > 0, prev.NumInserted > 0 - hasX, hasY := next.NumRemoved > 0, next.NumInserted > 0 - if ((hadX || hasX) && (hadY || hasY)) && curr.NumIdentical <= windowSize { - *prev = prev.Append(*curr).Append(*next) - groups = groups[:len(groups)-1] // Truncate off equal group - continue - } - } - groups = append(groups, ds) - } - return groups -} - -// cleanupSurroundingIdentical scans through all unequal groups, and -// moves any leading sequence of equal elements to the preceding equal group and -// moves and trailing sequence of equal elements to the succeeding equal group. -// -// This is necessary since coalesceInterveningIdentical may coalesce edit groups -// together such that leading/trailing spans of equal elements becomes possible. -// Note that this can occur even with an optimal diffing algorithm. -// -// Example: -// -// Input: [ -// {NumIdentical: 61}, -// {NumIdentical: 1 , NumRemoved: 11, NumInserted: 2}, // assume 3 leading identical elements -// {NumIdentical: 67}, -// {NumIdentical: 7, NumRemoved: 12, NumInserted: 3}, // assume 10 trailing identical elements -// {NumIdentical: 54}, -// ] -// Output: [ -// {NumIdentical: 64}, // incremented by 3 -// {NumRemoved: 9}, -// {NumIdentical: 67}, -// {NumRemoved: 9}, -// {NumIdentical: 64}, // incremented by 10 -// ] -func cleanupSurroundingIdentical(groups []diffStats, eq func(i, j int) bool) []diffStats { - var ix, iy int // indexes into sequence x and y - for i, ds := range groups { - // Handle equal group. - if ds.NumDiff() == 0 { - ix += ds.NumIdentical - iy += ds.NumIdentical - continue - } - - // Handle unequal group. - nx := ds.NumIdentical + ds.NumRemoved + ds.NumModified - ny := ds.NumIdentical + ds.NumInserted + ds.NumModified - var numLeadingIdentical, numTrailingIdentical int - for j := 0; j < nx && j < ny && eq(ix+j, iy+j); j++ { - numLeadingIdentical++ - } - for j := 0; j < nx && j < ny && eq(ix+nx-1-j, iy+ny-1-j); j++ { - numTrailingIdentical++ - } - if numIdentical := numLeadingIdentical + numTrailingIdentical; numIdentical > 0 { - if numLeadingIdentical > 0 { - // Remove leading identical span from this group and - // insert it into the preceding group. - if i-1 >= 0 { - groups[i-1].NumIdentical += numLeadingIdentical - } else { - // No preceding group exists, so prepend a new group, - // but do so after we finish iterating over all groups. - defer func() { - groups = append([]diffStats{{Name: groups[0].Name, NumIdentical: numLeadingIdentical}}, groups...) - }() - } - // Increment indexes since the preceding group would have handled this. - ix += numLeadingIdentical - iy += numLeadingIdentical - } - if numTrailingIdentical > 0 { - // Remove trailing identical span from this group and - // insert it into the succeeding group. - if i+1 < len(groups) { - groups[i+1].NumIdentical += numTrailingIdentical - } else { - // No succeeding group exists, so append a new group, - // but do so after we finish iterating over all groups. - defer func() { - groups = append(groups, diffStats{Name: groups[len(groups)-1].Name, NumIdentical: numTrailingIdentical}) - }() - } - // Do not increment indexes since the succeeding group will handle this. - } - - // Update this group since some identical elements were removed. - nx -= numIdentical - ny -= numIdentical - groups[i] = diffStats{Name: ds.Name, NumRemoved: nx, NumInserted: ny} - } - ix += nx - iy += ny - } - return groups -} diff --git a/vendor/github.com/google/go-cmp/cmp/report_text.go b/vendor/github.com/google/go-cmp/cmp/report_text.go deleted file mode 100644 index 388fcf5..0000000 --- a/vendor/github.com/google/go-cmp/cmp/report_text.go +++ /dev/null @@ -1,432 +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. - -package cmp - -import ( - "bytes" - "fmt" - "math/rand" - "strings" - "time" - "unicode/utf8" - - "github.com/google/go-cmp/cmp/internal/flags" -) - -var randBool = rand.New(rand.NewSource(time.Now().Unix())).Intn(2) == 0 - -const maxColumnLength = 80 - -type indentMode int - -func (n indentMode) appendIndent(b []byte, d diffMode) []byte { - // The output of Diff is documented as being unstable to provide future - // flexibility in changing the output for more humanly readable reports. - // This logic intentionally introduces instability to the exact output - // so that users can detect accidental reliance on stability early on, - // rather than much later when an actual change to the format occurs. - if flags.Deterministic || randBool { - // Use regular spaces (U+0020). - switch d { - case diffUnknown, diffIdentical: - b = append(b, " "...) - case diffRemoved: - b = append(b, "- "...) - case diffInserted: - b = append(b, "+ "...) - } - } else { - // Use non-breaking spaces (U+00a0). - switch d { - case diffUnknown, diffIdentical: - b = append(b, "  "...) - case diffRemoved: - b = append(b, "- "...) - case diffInserted: - b = append(b, "+ "...) - } - } - return repeatCount(n).appendChar(b, '\t') -} - -type repeatCount int - -func (n repeatCount) appendChar(b []byte, c byte) []byte { - for ; n > 0; n-- { - b = append(b, c) - } - return b -} - -// textNode is a simplified tree-based representation of structured text. -// Possible node types are textWrap, textList, or textLine. -type textNode interface { - // Len reports the length in bytes of a single-line version of the tree. - // Nested textRecord.Diff and textRecord.Comment fields are ignored. - Len() int - // Equal reports whether the two trees are structurally identical. - // Nested textRecord.Diff and textRecord.Comment fields are compared. - Equal(textNode) bool - // String returns the string representation of the text tree. - // It is not guaranteed that len(x.String()) == x.Len(), - // nor that x.String() == y.String() implies that x.Equal(y). - String() string - - // formatCompactTo formats the contents of the tree as a single-line string - // to the provided buffer. Any nested textRecord.Diff and textRecord.Comment - // fields are ignored. - // - // However, not all nodes in the tree should be collapsed as a single-line. - // If a node can be collapsed as a single-line, it is replaced by a textLine - // node. Since the top-level node cannot replace itself, this also returns - // the current node itself. - // - // This does not mutate the receiver. - formatCompactTo([]byte, diffMode) ([]byte, textNode) - // formatExpandedTo formats the contents of the tree as a multi-line string - // to the provided buffer. In order for column alignment to operate well, - // formatCompactTo must be called before calling formatExpandedTo. - formatExpandedTo([]byte, diffMode, indentMode) []byte -} - -// textWrap is a wrapper that concatenates a prefix and/or a suffix -// to the underlying node. -type textWrap struct { - Prefix string // e.g., "bytes.Buffer{" - Value textNode // textWrap | textList | textLine - Suffix string // e.g., "}" - Metadata interface{} // arbitrary metadata; has no effect on formatting -} - -func (s *textWrap) Len() int { - return len(s.Prefix) + s.Value.Len() + len(s.Suffix) -} -func (s1 *textWrap) Equal(s2 textNode) bool { - if s2, ok := s2.(*textWrap); ok { - return s1.Prefix == s2.Prefix && s1.Value.Equal(s2.Value) && s1.Suffix == s2.Suffix - } - return false -} -func (s *textWrap) String() string { - var d diffMode - var n indentMode - _, s2 := s.formatCompactTo(nil, d) - b := n.appendIndent(nil, d) // Leading indent - b = s2.formatExpandedTo(b, d, n) // Main body - b = append(b, '\n') // Trailing newline - return string(b) -} -func (s *textWrap) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) { - n0 := len(b) // Original buffer length - b = append(b, s.Prefix...) - b, s.Value = s.Value.formatCompactTo(b, d) - b = append(b, s.Suffix...) - if _, ok := s.Value.(textLine); ok { - return b, textLine(b[n0:]) - } - return b, s -} -func (s *textWrap) formatExpandedTo(b []byte, d diffMode, n indentMode) []byte { - b = append(b, s.Prefix...) - b = s.Value.formatExpandedTo(b, d, n) - b = append(b, s.Suffix...) - return b -} - -// textList is a comma-separated list of textWrap or textLine nodes. -// The list may be formatted as multi-lines or single-line at the discretion -// of the textList.formatCompactTo method. -type textList []textRecord -type textRecord struct { - Diff diffMode // e.g., 0 or '-' or '+' - Key string // e.g., "MyField" - Value textNode // textWrap | textLine - ElideComma bool // avoid trailing comma - Comment fmt.Stringer // e.g., "6 identical fields" -} - -// AppendEllipsis appends a new ellipsis node to the list if none already -// exists at the end. If cs is non-zero it coalesces the statistics with the -// previous diffStats. -func (s *textList) AppendEllipsis(ds diffStats) { - hasStats := !ds.IsZero() - if len(*s) == 0 || !(*s)[len(*s)-1].Value.Equal(textEllipsis) { - if hasStats { - *s = append(*s, textRecord{Value: textEllipsis, ElideComma: true, Comment: ds}) - } else { - *s = append(*s, textRecord{Value: textEllipsis, ElideComma: true}) - } - return - } - if hasStats { - (*s)[len(*s)-1].Comment = (*s)[len(*s)-1].Comment.(diffStats).Append(ds) - } -} - -func (s textList) Len() (n int) { - for i, r := range s { - n += len(r.Key) - if r.Key != "" { - n += len(": ") - } - n += r.Value.Len() - if i < len(s)-1 { - n += len(", ") - } - } - return n -} - -func (s1 textList) Equal(s2 textNode) bool { - if s2, ok := s2.(textList); ok { - if len(s1) != len(s2) { - return false - } - for i := range s1 { - r1, r2 := s1[i], s2[i] - if !(r1.Diff == r2.Diff && r1.Key == r2.Key && r1.Value.Equal(r2.Value) && r1.Comment == r2.Comment) { - return false - } - } - return true - } - return false -} - -func (s textList) String() string { - return (&textWrap{Prefix: "{", Value: s, Suffix: "}"}).String() -} - -func (s textList) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) { - s = append(textList(nil), s...) // Avoid mutating original - - // Determine whether we can collapse this list as a single line. - n0 := len(b) // Original buffer length - var multiLine bool - for i, r := range s { - if r.Diff == diffInserted || r.Diff == diffRemoved { - multiLine = true - } - b = append(b, r.Key...) - if r.Key != "" { - b = append(b, ": "...) - } - b, s[i].Value = r.Value.formatCompactTo(b, d|r.Diff) - if _, ok := s[i].Value.(textLine); !ok { - multiLine = true - } - if r.Comment != nil { - multiLine = true - } - if i < len(s)-1 { - b = append(b, ", "...) - } - } - // Force multi-lined output when printing a removed/inserted node that - // is sufficiently long. - if (d == diffInserted || d == diffRemoved) && len(b[n0:]) > maxColumnLength { - multiLine = true - } - if !multiLine { - return b, textLine(b[n0:]) - } - return b, s -} - -func (s textList) formatExpandedTo(b []byte, d diffMode, n indentMode) []byte { - alignKeyLens := s.alignLens( - func(r textRecord) bool { - _, isLine := r.Value.(textLine) - return r.Key == "" || !isLine - }, - func(r textRecord) int { return utf8.RuneCountInString(r.Key) }, - ) - alignValueLens := s.alignLens( - func(r textRecord) bool { - _, isLine := r.Value.(textLine) - return !isLine || r.Value.Equal(textEllipsis) || r.Comment == nil - }, - func(r textRecord) int { return utf8.RuneCount(r.Value.(textLine)) }, - ) - - // Format lists of simple lists in a batched form. - // If the list is sequence of only textLine values, - // then batch multiple values on a single line. - var isSimple bool - for _, r := range s { - _, isLine := r.Value.(textLine) - isSimple = r.Diff == 0 && r.Key == "" && isLine && r.Comment == nil - if !isSimple { - break - } - } - if isSimple { - n++ - var batch []byte - emitBatch := func() { - if len(batch) > 0 { - b = n.appendIndent(append(b, '\n'), d) - b = append(b, bytes.TrimRight(batch, " ")...) - batch = batch[:0] - } - } - for _, r := range s { - line := r.Value.(textLine) - if len(batch)+len(line)+len(", ") > maxColumnLength { - emitBatch() - } - batch = append(batch, line...) - batch = append(batch, ", "...) - } - emitBatch() - n-- - return n.appendIndent(append(b, '\n'), d) - } - - // Format the list as a multi-lined output. - n++ - for i, r := range s { - b = n.appendIndent(append(b, '\n'), d|r.Diff) - if r.Key != "" { - b = append(b, r.Key+": "...) - } - b = alignKeyLens[i].appendChar(b, ' ') - - b = r.Value.formatExpandedTo(b, d|r.Diff, n) - if !r.ElideComma { - b = append(b, ',') - } - b = alignValueLens[i].appendChar(b, ' ') - - if r.Comment != nil { - b = append(b, " // "+r.Comment.String()...) - } - } - n-- - - return n.appendIndent(append(b, '\n'), d) -} - -func (s textList) alignLens( - skipFunc func(textRecord) bool, - lenFunc func(textRecord) int, -) []repeatCount { - var startIdx, endIdx, maxLen int - lens := make([]repeatCount, len(s)) - for i, r := range s { - if skipFunc(r) { - for j := startIdx; j < endIdx && j < len(s); j++ { - lens[j] = repeatCount(maxLen - lenFunc(s[j])) - } - startIdx, endIdx, maxLen = i+1, i+1, 0 - } else { - if maxLen < lenFunc(r) { - maxLen = lenFunc(r) - } - endIdx = i + 1 - } - } - for j := startIdx; j < endIdx && j < len(s); j++ { - lens[j] = repeatCount(maxLen - lenFunc(s[j])) - } - return lens -} - -// textLine is a single-line segment of text and is always a leaf node -// in the textNode tree. -type textLine []byte - -var ( - textNil = textLine("nil") - textEllipsis = textLine("...") -) - -func (s textLine) Len() int { - return len(s) -} -func (s1 textLine) Equal(s2 textNode) bool { - if s2, ok := s2.(textLine); ok { - return bytes.Equal([]byte(s1), []byte(s2)) - } - return false -} -func (s textLine) String() string { - return string(s) -} -func (s textLine) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) { - return append(b, s...), s -} -func (s textLine) formatExpandedTo(b []byte, _ diffMode, _ indentMode) []byte { - return append(b, s...) -} - -type diffStats struct { - Name string - NumIgnored int - NumIdentical int - NumRemoved int - NumInserted int - NumModified int -} - -func (s diffStats) IsZero() bool { - s.Name = "" - return s == diffStats{} -} - -func (s diffStats) NumDiff() int { - return s.NumRemoved + s.NumInserted + s.NumModified -} - -func (s diffStats) Append(ds diffStats) diffStats { - assert(s.Name == ds.Name) - s.NumIgnored += ds.NumIgnored - s.NumIdentical += ds.NumIdentical - s.NumRemoved += ds.NumRemoved - s.NumInserted += ds.NumInserted - s.NumModified += ds.NumModified - return s -} - -// String prints a humanly-readable summary of coalesced records. -// -// Example: -// -// diffStats{Name: "Field", NumIgnored: 5}.String() => "5 ignored fields" -func (s diffStats) String() string { - var ss []string - var sum int - labels := [...]string{"ignored", "identical", "removed", "inserted", "modified"} - counts := [...]int{s.NumIgnored, s.NumIdentical, s.NumRemoved, s.NumInserted, s.NumModified} - for i, n := range counts { - if n > 0 { - ss = append(ss, fmt.Sprintf("%d %v", n, labels[i])) - } - sum += n - } - - // Pluralize the name (adjusting for some obscure English grammar rules). - name := s.Name - if sum > 1 { - name += "s" - if strings.HasSuffix(name, "ys") { - name = name[:len(name)-2] + "ies" // e.g., "entrys" => "entries" - } - } - - // Format the list according to English grammar (with Oxford comma). - switch n := len(ss); n { - case 0: - return "" - case 1, 2: - return strings.Join(ss, " and ") + " " + name - default: - return strings.Join(ss[:n-1], ", ") + ", and " + ss[n-1] + " " + name - } -} - -type commentString string - -func (s commentString) String() string { return string(s) } diff --git a/vendor/github.com/google/go-cmp/cmp/report_value.go b/vendor/github.com/google/go-cmp/cmp/report_value.go deleted file mode 100644 index 668d470..0000000 --- a/vendor/github.com/google/go-cmp/cmp/report_value.go +++ /dev/null @@ -1,121 +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. - -package cmp - -import "reflect" - -// valueNode represents a single node within a report, which is a -// structured representation of the value tree, containing information -// regarding which nodes are equal or not. -type valueNode struct { - parent *valueNode - - Type reflect.Type - ValueX reflect.Value - ValueY reflect.Value - - // NumSame is the number of leaf nodes that are equal. - // All descendants are equal only if NumDiff is 0. - NumSame int - // NumDiff is the number of leaf nodes that are not equal. - NumDiff int - // NumIgnored is the number of leaf nodes that are ignored. - NumIgnored int - // NumCompared is the number of leaf nodes that were compared - // using an Equal method or Comparer function. - NumCompared int - // NumTransformed is the number of non-leaf nodes that were transformed. - NumTransformed int - // NumChildren is the number of transitive descendants of this node. - // This counts from zero; thus, leaf nodes have no descendants. - NumChildren int - // MaxDepth is the maximum depth of the tree. This counts from zero; - // thus, leaf nodes have a depth of zero. - MaxDepth int - - // Records is a list of struct fields, slice elements, or map entries. - Records []reportRecord // If populated, implies Value is not populated - - // Value is the result of a transformation, pointer indirect, of - // type assertion. - Value *valueNode // If populated, implies Records is not populated - - // TransformerName is the name of the transformer. - TransformerName string // If non-empty, implies Value is populated -} -type reportRecord struct { - Key reflect.Value // Invalid for slice element - Value *valueNode -} - -func (parent *valueNode) PushStep(ps PathStep) (child *valueNode) { - vx, vy := ps.Values() - child = &valueNode{parent: parent, Type: ps.Type(), ValueX: vx, ValueY: vy} - switch s := ps.(type) { - case StructField: - assert(parent.Value == nil) - parent.Records = append(parent.Records, reportRecord{Key: reflect.ValueOf(s.Name()), Value: child}) - case SliceIndex: - assert(parent.Value == nil) - parent.Records = append(parent.Records, reportRecord{Value: child}) - case MapIndex: - assert(parent.Value == nil) - parent.Records = append(parent.Records, reportRecord{Key: s.Key(), Value: child}) - case Indirect: - assert(parent.Value == nil && parent.Records == nil) - parent.Value = child - case TypeAssertion: - assert(parent.Value == nil && parent.Records == nil) - parent.Value = child - case Transform: - assert(parent.Value == nil && parent.Records == nil) - parent.Value = child - parent.TransformerName = s.Name() - parent.NumTransformed++ - default: - assert(parent == nil) // Must be the root step - } - return child -} - -func (r *valueNode) Report(rs Result) { - assert(r.MaxDepth == 0) // May only be called on leaf nodes - - if rs.ByIgnore() { - r.NumIgnored++ - } else { - if rs.Equal() { - r.NumSame++ - } else { - r.NumDiff++ - } - } - assert(r.NumSame+r.NumDiff+r.NumIgnored == 1) - - if rs.ByMethod() { - r.NumCompared++ - } - if rs.ByFunc() { - r.NumCompared++ - } - assert(r.NumCompared <= 1) -} - -func (child *valueNode) PopStep() (parent *valueNode) { - if child.parent == nil { - return nil - } - parent = child.parent - parent.NumSame += child.NumSame - parent.NumDiff += child.NumDiff - parent.NumIgnored += child.NumIgnored - parent.NumCompared += child.NumCompared - parent.NumTransformed += child.NumTransformed - parent.NumChildren += child.NumChildren + 1 - if parent.MaxDepth < child.MaxDepth+1 { - parent.MaxDepth = child.MaxDepth + 1 - } - return parent -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/.gitignore b/vendor/github.com/lucasb-eyer/go-colorful/.gitignore deleted file mode 100644 index 0aa2c92..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/.gitignore +++ /dev/null @@ -1,101 +0,0 @@ -# Created by https://www.toptal.com/developers/gitignore/api/code,go,linux,macos,windows -# Edit at https://www.toptal.com/developers/gitignore?templates=code,go,linux,macos,windows - -### Code ### -.vscode/* -!.vscode/tasks.json -!.vscode/launch.json -*.code-workspace - -### Go ### -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ - -### Go Patch ### -/vendor/ -/Godeps/ - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -### macOS ### -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### Windows ### -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# End of https://www.toptal.com/developers/gitignore/api/code,go,linux,macos,windows diff --git a/vendor/github.com/lucasb-eyer/go-colorful/CHANGELOG.md b/vendor/github.com/lucasb-eyer/go-colorful/CHANGELOG.md deleted file mode 100644 index 84f9c7b..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/CHANGELOG.md +++ /dev/null @@ -1,42 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -The format of this file is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -but only releases after v1.0.3 properly adhere to it. - - -## [1.2.0] - 2021-01-27 -### Added -- HSLuv and HPLuv color spaces (#41, #51) -- CIE LCh(uv) color space, called `LuvLCh` in code (#51) -- JSON and envconfig serialization support for `HexColor` (#42) -- `DistanceLinearRGB` (#53) - -### Fixed -- RGB to/from XYZ conversion is more accurate (#51) -- A bug in `XYZToLuvWhiteRef` that only applied to very small values was fixed (#51) -- `BlendHCL` output is clamped so that it's not invalid (#46) -- Properly documented `DistanceCIE76` (#40) -- Some small godoc fixes - - -## [1.0.3] - 2019-11-11 -- Remove SQLMock dependency - - -## [1.0.2] - 2019-04-07 -- Fixes SQLMock dependency - - -## [1.0.1] - 2019-03-24 -- Adds support for Go Modules - - -## [1.0.0] - 2018-05-26 -- API Breaking change in `MakeColor`: instead of `panic`ing when alpha is zero, it now returns a secondary, boolean return value indicating success. See [the color.Color interface](#the-colorcolor-interface) section and [this FAQ entry](#q-why-would-makecolor-ever-fail) for details. - - -## [0.9.0] - 2018-05-26 -- Initial version number after having ignored versioning for a long time :) diff --git a/vendor/github.com/lucasb-eyer/go-colorful/LICENSE b/vendor/github.com/lucasb-eyer/go-colorful/LICENSE deleted file mode 100644 index 4e402a0..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) 2013 Lucas Beyer - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/lucasb-eyer/go-colorful/README.md b/vendor/github.com/lucasb-eyer/go-colorful/README.md deleted file mode 100644 index 8b9bd49..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/README.md +++ /dev/null @@ -1,482 +0,0 @@ -go-colorful -=========== - -[![go reportcard](https://goreportcard.com/badge/github.com/lucasb-eyer/go-colorful)](https://goreportcard.com/report/github.com/lucasb-eyer/go-colorful) - -A library for playing with colors in Go. Supports Go 1.13 onwards. - -Why? -==== -I love games. I make games. I love detail and I get lost in detail. -One such detail popped up during the development of [Memory Which Does Not Suck](https://github.com/lucasb-eyer/mwdns/), -when we wanted the server to assign the players random colors. Sometimes -two players got very similar colors, which bugged me. The very same evening, -[I want hue](http://tools.medialab.sciences-po.fr/iwanthue/) was the top post -on HackerNews' frontpage and showed me how to Do It Right™. Last but not -least, there was no library for handling color spaces available in go. Colorful -does just that and implements Go's `color.Color` interface. - -What? -===== -Go-Colorful stores colors in RGB and provides methods from converting these to various color-spaces. Currently supported colorspaces are: - -- **RGB:** All three of Red, Green and Blue in [0..1]. -- **HSL:** Hue in [0..360], Saturation and Luminance in [0..1]. For legacy reasons; please forget that it exists. -- **HSV:** Hue in [0..360], Saturation and Value in [0..1]. You're better off using HCL, see below. -- **Hex RGB:** The "internet" color format, as in #FF00FF. -- **Linear RGB:** See [gamma correct rendering](http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). -- **CIE-XYZ:** CIE's standard color space, almost in [0..1]. -- **CIE-xyY:** encodes chromacity in x and y and luminance in Y, all in [0..1] -- **CIE-L\*a\*b\*:** A *perceptually uniform* color space, i.e. distances are meaningful. L\* in [0..1] and a\*, b\* almost in [-1..1]. -- **CIE-L\*u\*v\*:** Very similar to CIE-L\*a\*b\*, there is [no consensus](http://en.wikipedia.org/wiki/CIELUV#Historical_background) on which one is "better". -- **CIE-L\*C\*h° (HCL):** This is generally the [most useful](http://vis4.net/blog/posts/avoid-equidistant-hsv-colors/) one; CIE-L\*a\*b\* space in polar coordinates, i.e. a *better* HSV. H° is in [0..360], C\* almost in [-1..1] and L\* as in CIE-L\*a\*b\*. -- **CIE LCh(uv):** Called `LuvLCh` in code, this is a cylindrical transformation of the CIE-L\*u\*v\* color space. Like HCL above: H° is in [0..360], C\* almost in [-1..1] and L\* as in CIE-L\*u\*v\*. -- **HSLuv:** The better alternative to HSL, see [here](https://www.hsluv.org/) and [here](https://www.kuon.ch/post/2020-03-08-hsluv/). Hue in [0..360], Saturation and Luminance in [0..1]. -- **HPLuv:** A variant of HSLuv. The color space is smoother, but only pastel colors can be included. Because the valid colors are limited, it's easy to get invalid Saturation values way above 1.0, indicating the color can't be represented in HPLuv beccause it's not pastel. - -For the colorspaces where it makes sense (XYZ, Lab, Luv, HCl), the -[D65](http://en.wikipedia.org/wiki/Illuminant_D65) is used as reference white -by default but methods for using your own reference white are provided. - -A coordinate being *almost in* a range means that generally it is, but for very -bright colors and depending on the reference white, it might overflow this -range slightly. For example, C\* of #0000ff is 1.338. - -Unit-tests are provided. - -Nice, but what's it useful for? -------------------------------- - -- Converting color spaces. Some people like to do that. -- Blending (interpolating) between colors in a "natural" look by using the right colorspace. -- Generating random colors under some constraints (e.g. colors of the same shade, or shades of one color.) -- Generating gorgeous random palettes with distinct colors of a same temperature. - -What not (yet)? -=============== -There are a few features which are currently missing and might be useful. -I just haven't implemented them yet because I didn't have the need for it. -Pull requests welcome. - -- Sorting colors (potentially using above mentioned distances) - -So which colorspace should I use? -================================= -It depends on what you want to do. I think the folks from *I want hue* are -on-spot when they say that RGB fits to how *screens produce* color, CIE L\*a\*b\* -fits how *humans perceive* color and HCL fits how *humans think* colors. - -Whenever you'd use HSV, rather go for CIE-L\*C\*h°. for fixed lightness L\* and -chroma C\* values, the hue angle h° rotates through colors of the same -perceived brightness and intensity. - -How? -==== - -### Installing -Installing the library is as easy as - -```bash -$ go get github.com/lucasb-eyer/go-colorful -``` - -The package can then be used through an - -```go -import "github.com/lucasb-eyer/go-colorful" -``` - -### Basic usage - -Create a beautiful blue color using different source space: - -```go -// Any of the following should be the same -c := colorful.Color{0.313725, 0.478431, 0.721569} -c, err := colorful.Hex("#517AB8") -if err != nil { - log.Fatal(err) -} -c = colorful.Hsv(216.0, 0.56, 0.722) -c = colorful.Xyz(0.189165, 0.190837, 0.480248) -c = colorful.Xyy(0.219895, 0.221839, 0.190837) -c = colorful.Lab(0.507850, 0.040585,-0.370945) -c = colorful.Luv(0.507849,-0.194172,-0.567924) -c = colorful.Hcl(276.2440, 0.373160, 0.507849) -fmt.Printf("RGB values: %v, %v, %v", c.R, c.G, c.B) -``` - -And then converting this color back into various color spaces: - -```go -hex := c.Hex() -h, s, v := c.Hsv() -x, y, z := c.Xyz() -x, y, Y := c.Xyy() -l, a, b := c.Lab() -l, u, v := c.Luv() -h, c, l := c.Hcl() -``` - -Note that, because of Go's unfortunate choice of requiring an initial uppercase, -the name of the functions relating to the xyY space are just off. If you have -any good suggestion, please open an issue. (I don't consider XyY good.) - -### The `color.Color` interface -Because a `colorful.Color` implements Go's `color.Color` interface (found in the -`image/color` package), it can be used anywhere that expects a `color.Color`. - -Furthermore, you can convert anything that implements the `color.Color` interface -into a `colorful.Color` using the `MakeColor` function: - -```go -c, ok := colorful.MakeColor(color.Gray16{12345}) -``` - -**Caveat:** Be aware that this latter conversion (using `MakeColor`) hits a -corner-case when alpha is exactly zero. Because `color.Color` uses pre-multiplied -alpha colors, this means the RGB values are lost (set to 0) and it's impossible -to recover them. In such a case `MakeColor` will return `false` as its second value. - -### Comparing colors -In the RGB color space, the Euclidian distance between colors *doesn't* correspond -to visual/perceptual distance. This means that two pairs of colors which have the -same distance in RGB space can look much further apart. This is fixed by the -CIE-L\*a\*b\*, CIE-L\*u\*v\* and CIE-L\*C\*h° color spaces. -Thus you should only compare colors in any of these space. -(Note that the distance in CIE-L\*a\*b\* and CIE-L\*C\*h° are the same, since it's the same space but in cylindrical coordinates) - -![Color distance comparison](doc/colordist/colordist.png) - -The two colors shown on the top look much more different than the two shown on -the bottom. Still, in RGB space, their distance is the same. -Here is a little example program which shows the distances between the top two -and bottom two colors in RGB, CIE-L\*a\*b\* and CIE-L\*u\*v\* space. You can find it in `doc/colordist/colordist.go`. - -```go -package main - -import "fmt" -import "github.com/lucasb-eyer/go-colorful" - -func main() { - c1a := colorful.Color{150.0 / 255.0, 10.0 / 255.0, 150.0 / 255.0} - c1b := colorful.Color{53.0 / 255.0, 10.0 / 255.0, 150.0 / 255.0} - c2a := colorful.Color{10.0 / 255.0, 150.0 / 255.0, 50.0 / 255.0} - c2b := colorful.Color{99.9 / 255.0, 150.0 / 255.0, 10.0 / 255.0} - - fmt.Printf("DistanceRgb: c1: %v\tand c2: %v\n", c1a.DistanceRgb(c1b), c2a.DistanceRgb(c2b)) - fmt.Printf("DistanceLab: c1: %v\tand c2: %v\n", c1a.DistanceLab(c1b), c2a.DistanceLab(c2b)) - fmt.Printf("DistanceLuv: c1: %v\tand c2: %v\n", c1a.DistanceLuv(c1b), c2a.DistanceLuv(c2b)) - fmt.Printf("DistanceCIE76: c1: %v\tand c2: %v\n", c1a.DistanceCIE76(c1b), c2a.DistanceCIE76(c2b)) - fmt.Printf("DistanceCIE94: c1: %v\tand c2: %v\n", c1a.DistanceCIE94(c1b), c2a.DistanceCIE94(c2b)) - fmt.Printf("DistanceCIEDE2000: c1: %v\tand c2: %v\n", c1a.DistanceCIEDE2000(c1b), c2a.DistanceCIEDE2000(c2b)) -} -``` - -Running the above program shows that you should always prefer any of the CIE distances: - -```bash -$ go run colordist.go -DistanceRgb: c1: 0.3803921568627451 and c2: 0.3858713931171159 -DistanceLab: c1: 0.32048458312798056 and c2: 0.24397151758565272 -DistanceLuv: c1: 0.5134369614199698 and c2: 0.2568692839860636 -DistanceCIE76: c1: 0.32048458312798056 and c2: 0.24397151758565272 -DistanceCIE94: c1: 0.19799168128511324 and c2: 0.12207136371167401 -DistanceCIEDE2000: c1: 0.17274551120971166 and c2: 0.10665210031428465 -``` - -It also shows that `DistanceLab` is more formally known as `DistanceCIE76` and -has been superseded by the slightly more accurate, but much more expensive -`DistanceCIE94` and `DistanceCIEDE2000`. - -Note that `AlmostEqualRgb` is provided mainly for (unit-)testing purposes. Use -it only if you really know what you're doing. It will eat your cat. - -### Blending colors -Blending is highly connected to distance, since it basically "walks through" the -colorspace thus, if the colorspace maps distances well, the walk is "smooth". - -Colorful comes with blending functions in RGB, HSV and any of the LAB spaces. -Of course, you'd rather want to use the blending functions of the LAB spaces since -these spaces map distances well but, just in case, here is an example showing -you how the blendings (`#fdffcc` to `#242a42`) are done in the various spaces: - -![Blending colors in different spaces.](doc/colorblend/colorblend.png) - -What you see is that HSV is really bad: it adds some green, which is not present -in the original colors at all! RGB is much better, but it stays light a little -too long. LUV and LAB both hit the right lightness but LAB has a little more -color. HCL works in the same vein as HSV (both cylindrical interpolations) but -it does it right in that there is no green appearing and the lighthness changes -in a linear manner. - -While this seems all good, you need to know one thing: When interpolating in any -of the CIE color spaces, you might get invalid RGB colors! This is important if -the starting and ending colors are user-input or random. An example of where this -happens is when blending between `#eeef61` and `#1e3140`: - -![Invalid RGB colors may crop up when blending in CIE spaces.](doc/colorblend/invalid.png) - -You can test whether a color is a valid RGB color by calling the `IsValid` method -and indeed, calling IsValid will return false for the redish colors on the bottom. -One way to "fix" this is to get a valid color close to the invalid one by calling -`Clamped`, which always returns a nearby valid color. Doing this, we get the -following result, which is satisfactory: - -![Fixing invalid RGB colors by clamping them to the valid range.](doc/colorblend/clamped.png) - -The following is the code creating the above three images; it can be found in `doc/colorblend/colorblend.go` - -```go -package main - -import "fmt" -import "github.com/lucasb-eyer/go-colorful" -import "image" -import "image/draw" -import "image/png" -import "os" - -func main() { - blocks := 10 - blockw := 40 - img := image.NewRGBA(image.Rect(0,0,blocks*blockw,200)) - - c1, _ := colorful.Hex("#fdffcc") - c2, _ := colorful.Hex("#242a42") - - // Use these colors to get invalid RGB in the gradient. - //c1, _ := colorful.Hex("#EEEF61") - //c2, _ := colorful.Hex("#1E3140") - - for i := 0 ; i < blocks ; i++ { - draw.Draw(img, image.Rect(i*blockw, 0,(i+1)*blockw, 40), &image.Uniform{c1.BlendHsv(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - draw.Draw(img, image.Rect(i*blockw, 40,(i+1)*blockw, 80), &image.Uniform{c1.BlendLuv(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - draw.Draw(img, image.Rect(i*blockw, 80,(i+1)*blockw,120), &image.Uniform{c1.BlendRgb(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - draw.Draw(img, image.Rect(i*blockw,120,(i+1)*blockw,160), &image.Uniform{c1.BlendLab(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - draw.Draw(img, image.Rect(i*blockw,160,(i+1)*blockw,200), &image.Uniform{c1.BlendHcl(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - - // This can be used to "fix" invalid colors in the gradient. - //draw.Draw(img, image.Rect(i*blockw,160,(i+1)*blockw,200), &image.Uniform{c1.BlendHcl(c2, float64(i)/float64(blocks-1)).Clamped()}, image.Point{}, draw.Src) - } - - toimg, err := os.Create("colorblend.png") - if err != nil { - fmt.Printf("Error: %v", err) - return - } - defer toimg.Close() - - png.Encode(toimg, img) -} -``` - -#### Generating color gradients -A very common reason to blend colors is creating gradients. There is an example -program in [doc/gradientgen.go](doc/gradientgen/gradientgen.go); it doesn't use any API -which hasn't been used in the previous example code, so I won't bother pasting -the code in here. Just look at that gorgeous gradient it generated in HCL space: - -!["Spectral" colorbrewer gradient in HCL space.](doc/gradientgen/gradientgen.png) - -### Getting random colors -It is sometimes necessary to generate random colors. You could simply do this -on your own by generating colors with random values. By restricting the random -values to a range smaller than [0..1] and using a space such as CIE-H\*C\*l° or -HSV, you can generate both random shades of a color or random colors of a -lightness: - -```go -random_blue := colorful.Hcl(180.0+rand.Float64()*50.0, 0.2+rand.Float64()*0.8, 0.3+rand.Float64()*0.7) -random_dark := colorful.Hcl(rand.Float64()*360.0, rand.Float64(), rand.Float64()*0.4) -random_light := colorful.Hcl(rand.Float64()*360.0, rand.Float64(), 0.6+rand.Float64()*0.4) -``` - -Since getting random "warm" and "happy" colors is quite a common task, there -are some helper functions: - -```go -colorful.WarmColor() -colorful.HappyColor() -colorful.FastWarmColor() -colorful.FastHappyColor() -``` - -The ones prefixed by `Fast` are faster but less coherent since they use the HSV -space as opposed to the regular ones which use CIE-L\*C\*h° space. The -following picture shows the warm colors in the top two rows and happy colors -in the bottom two rows. Within these, the first is the regular one and the -second is the fast one. - -![Warm, fast warm, happy and fast happy random colors, respectively.](doc/colorgens/colorgens.png) - -Don't forget to initialize the random seed! You can see the code used for -generating this picture in `doc/colorgens/colorgens.go`. - -### Getting random palettes -As soon as you need to generate more than one random color, you probably want -them to be distinguishible. Playing against an opponent which has almost the -same blue as I do is not fun. This is where random palettes can help. - -These palettes are generated using an algorithm which ensures that all colors -on the palette are as distinguishible as possible. Again, there is a `Fast` -method which works in HSV and is less perceptually uniform and a non-`Fast` -method which works in CIE spaces. For more theory on `SoftPalette`, check out -[I want hue](http://tools.medialab.sciences-po.fr/iwanthue/theory.php). Yet -again, there is a `Happy` and a `Warm` version, which do what you expect, but -now there is an additional `Soft` version, which is more configurable: you can -give a constraint on the color space in order to get colors within a certain *feel*. - -Let's start with the simple methods first, all they take is the amount of -colors to generate, which could, for example, be the player count. They return -an array of `colorful.Color` objects: - -```go -pal1, err1 := colorful.WarmPalette(10) -pal2 := colorful.FastWarmPalette(10) -pal3, err3 := colorful.HappyPalette(10) -pal4 := colorful.FastHappyPalette(10) -pal5, err5 := colorful.SoftPalette(10) -``` - -Note that the non-fast methods *may* fail if you ask for way too many colors. -Let's move on to the advanced one, namely `SoftPaletteEx`. Besides the color -count, this function takes a `SoftPaletteSettings` object as argument. The -interesting part here is its `CheckColor` member, which is a boolean function -taking three floating points as arguments: `l`, `a` and `b`. This function -should return `true` for colors which lie within the region you want and `false` -otherwise. The other members are `Iteration`, which should be within [5..100] -where higher means slower but more exact palette, and `ManySamples` which you -should set to `true` in case your `CheckColor` constraint rejects a large part -of the color space. - -For example, to create a palette of 10 brownish colors, you'd call it like this: - -```go -func isbrowny(l, a, b float64) bool { - h, c, L := colorful.LabToHcl(l, a, b) - return 10.0 < h && h < 50.0 && 0.1 < c && c < 0.5 && L < 0.5 -} -// Since the above function is pretty restrictive, we set ManySamples to true. -brownies := colorful.SoftPaletteEx(10, colorful.SoftPaletteSettings{isbrowny, 50, true}) -``` - -The following picture shows the palettes generated by all of these methods -(sourcecode in `doc/palettegens/palettegens.go`), in the order they were presented, i.e. -from top to bottom: `Warm`, `FastWarm`, `Happy`, `FastHappy`, `Soft`, -`SoftEx(isbrowny)`. All of them contain some randomness, so YMMV. - -![All example palettes](doc/palettegens/palettegens.png) - -Again, the code used for generating the above image is available as [doc/palettegens/palettegens.go](https://github.com/lucasb-eyer/go-colorful/blob/master/doc/palettegens/palettegens.go). - -### Sorting colors -TODO: Sort using dist fn. - -### Using linear RGB for computations -There are two methods for transforming RGB<->Linear RGB: a fast and almost precise one, -and a slow and precise one. - -```go -r, g, b := colorful.Hex("#FF0000").FastLinearRgb() -``` - -TODO: describe some more. - -### Want to use some other reference point? - -```go -c := colorful.LabWhiteRef(0.507850, 0.040585,-0.370945, colorful.D50) -l, a, b := c.LabWhiteRef(colorful.D50) -``` - -### Reading and writing colors from databases - -The type `HexColor` makes it easy to store colors as strings in a database. It -implements the [https://godoc.org/database/sql#Scanner](database/sql.Scanner) -and [database/sql/driver.Value](https://godoc.org/database/sql/driver.Value) -interfaces which provide automatic type conversion. - -Example: - -```go -var hc HexColor -_, err := db.QueryRow("SELECT '#ff0000';").Scan(&hc) -// hc == HexColor{R: 1, G: 0, B: 0}; err == nil -``` - -FAQ -=== - -### Q: I get all f!@#ed up values! Your library sucks! -A: You probably provided values in the wrong range. For example, RGB values are -expected to reside between 0 and 1, *not* between 0 and 255. Normalize your colors. - -### Q: Lab/Luv/HCl seem broken! Your library sucks! -They look like this: - - - -A: You're likely trying to generate and display colors that can't be represented by RGB, -and thus monitors. When you're trying to convert, say, `HCL(190.0, 1.0, 1.0).RGB255()`, -you're asking for RGB values of `(-2105.254 300.680 286.185)`, which clearly don't exist, -and the `RGB255` function just casts these numbers to `uint8`, creating wrap-around and -what looks like a completely broken gradient. What you want to do, is either use more -reasonable values of colors which actually exist in RGB, or just `Clamp()` the resulting -color to its nearest existing one, living with the consequences: -`HCL(190.0, 1.0, 1.0).Clamp().RGB255()`. It will look something like this: - - - -[Here's an issue going in-depth about this](https://github.com/lucasb-eyer/go-colorful/issues/14), -as well as [my answer](https://github.com/lucasb-eyer/go-colorful/issues/14#issuecomment-324205385), -both with code and pretty pictures. Also note that this was somewhat covered above in the -["Blending colors" section](https://github.com/lucasb-eyer/go-colorful#blending-colors). - -### Q: In a tight loop, conversion to Lab/Luv/HCl/... are slooooow! -A: Yes, they are. -This library aims for correctness, readability, and modularity; it wasn't written with speed in mind. -A large part of the slowness comes from these conversions going through `LinearRgb` which uses powers. -I implemented a fast approximation to `LinearRgb` called `FastLinearRgb` by using Taylor approximations. -The approximation is roughly 5x faster and precise up to roughly 0.5%, -the major caveat being that if the input values are outside the range 0-1, accuracy drops dramatically. -You can use these in your conversions as follows: - -```go -col := // Get your color somehow -l, a, b := XyzToLab(LinearRgbToXyz(col.LinearRgb())) -``` - -If you need faster versions of `Distance*` and `Blend*` that make use of this fast approximation, -feel free to implement them and open a pull-request, I'll happily accept. - -The derivation of these functions can be followed in [this Jupyter notebook](doc/LinearRGB Approximations.ipynb). -Here's the main figure showing the approximation quality: - -![approximation quality](doc/approx-quality.png) - -More speed could be gained by using SIMD instructions in many places. -You can also get more speed for specific conversions by approximating the full conversion function, -but that is outside the scope of this library. -Thanks to [@ZirconiumX](https://github.com/ZirconiumX) for starting this investigation, -see [issue #18](https://github.com/lucasb-eyer/go-colorful/issues/18) for details. - -### Q: Why would `MakeColor` ever fail!? -A: `MakeColor` fails when the alpha channel is zero. In that case, the -conversion is undefined. See [issue 21](https://github.com/lucasb-eyer/go-colorful/issues/21) -as well as the short caveat note in the ["The `color.Color` interface"](README.md#the-colorcolor-interface) -section above. - -Who? -==== - -This library was developed by Lucas Beyer with contributions from -Bastien Dejean (@baskerville), Phil Kulak (@pkulak) and Christian Muehlhaeuser (@muesli). - -It is now maintained by makeworld (@makeworld-the-better-one). - - -## License - -This repo is under the MIT license, see [LICENSE](LICENSE) for details. diff --git a/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go b/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go deleted file mode 100644 index 2e2e49e..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go +++ /dev/null @@ -1,55 +0,0 @@ -// Various ways to generate single random colors - -package colorful - -import ( - "math/rand" -) - -// Creates a random dark, "warm" color through a restricted HSV space. -func FastWarmColor() Color { - return Hsv( - rand.Float64()*360.0, - 0.5+rand.Float64()*0.3, - 0.3+rand.Float64()*0.3) -} - -// Creates a random dark, "warm" color through restricted HCL space. -// This is slower than FastWarmColor but will likely give you colors which have -// the same "warmness" if you run it many times. -func WarmColor() (c Color) { - for c = randomWarm(); !c.IsValid(); c = randomWarm() { - } - return -} - -func randomWarm() Color { - return Hcl( - rand.Float64()*360.0, - 0.1+rand.Float64()*0.3, - 0.2+rand.Float64()*0.3) -} - -// Creates a random bright, "pimpy" color through a restricted HSV space. -func FastHappyColor() Color { - return Hsv( - rand.Float64()*360.0, - 0.7+rand.Float64()*0.3, - 0.6+rand.Float64()*0.3) -} - -// Creates a random bright, "pimpy" color through restricted HCL space. -// This is slower than FastHappyColor but will likely give you colors which -// have the same "brightness" if you run it many times. -func HappyColor() (c Color) { - for c = randomPimp(); !c.IsValid(); c = randomPimp() { - } - return -} - -func randomPimp() Color { - return Hcl( - rand.Float64()*360.0, - 0.5+rand.Float64()*0.3, - 0.5+rand.Float64()*0.3) -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/colors.go b/vendor/github.com/lucasb-eyer/go-colorful/colors.go deleted file mode 100644 index 0d5bffe..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/colors.go +++ /dev/null @@ -1,979 +0,0 @@ -// The colorful package provides all kinds of functions for working with colors. -package colorful - -import ( - "fmt" - "image/color" - "math" -) - -// A color is stored internally using sRGB (standard RGB) values in the range 0-1 -type Color struct { - R, G, B float64 -} - -// Implement the Go color.Color interface. -func (col Color) RGBA() (r, g, b, a uint32) { - r = uint32(col.R*65535.0 + 0.5) - g = uint32(col.G*65535.0 + 0.5) - b = uint32(col.B*65535.0 + 0.5) - a = 0xFFFF - return -} - -// Constructs a colorful.Color from something implementing color.Color -func MakeColor(col color.Color) (Color, bool) { - r, g, b, a := col.RGBA() - if a == 0 { - return Color{0, 0, 0}, false - } - - // Since color.Color is alpha pre-multiplied, we need to divide the - // RGB values by alpha again in order to get back the original RGB. - r *= 0xffff - r /= a - g *= 0xffff - g /= a - b *= 0xffff - b /= a - - return Color{float64(r) / 65535.0, float64(g) / 65535.0, float64(b) / 65535.0}, true -} - -// Might come in handy sometimes to reduce boilerplate code. -func (col Color) RGB255() (r, g, b uint8) { - r = uint8(col.R*255.0 + 0.5) - g = uint8(col.G*255.0 + 0.5) - b = uint8(col.B*255.0 + 0.5) - return -} - -// Used to simplify HSLuv testing. -func (col Color) values() (float64, float64, float64) { - return col.R, col.G, col.B -} - -// This is the tolerance used when comparing colors using AlmostEqualRgb. -const Delta = 1.0 / 255.0 - -// This is the default reference white point. -var D65 = [3]float64{0.95047, 1.00000, 1.08883} - -// And another one. -var D50 = [3]float64{0.96422, 1.00000, 0.82521} - -// Checks whether the color exists in RGB space, i.e. all values are in [0..1] -func (c Color) IsValid() bool { - return 0.0 <= c.R && c.R <= 1.0 && - 0.0 <= c.G && c.G <= 1.0 && - 0.0 <= c.B && c.B <= 1.0 -} - -// clamp01 clamps from 0 to 1. -func clamp01(v float64) float64 { - return math.Max(0.0, math.Min(v, 1.0)) -} - -// Returns Clamps the color into valid range, clamping each value to [0..1] -// If the color is valid already, this is a no-op. -func (c Color) Clamped() Color { - return Color{clamp01(c.R), clamp01(c.G), clamp01(c.B)} -} - -func sq(v float64) float64 { - return v * v -} - -func cub(v float64) float64 { - return v * v * v -} - -// DistanceRgb computes the distance between two colors in RGB space. -// This is not a good measure! Rather do it in Lab space. -func (c1 Color) DistanceRgb(c2 Color) float64 { - return math.Sqrt(sq(c1.R-c2.R) + sq(c1.G-c2.G) + sq(c1.B-c2.B)) -} - -// DistanceLinearRGB computes the distance between two colors in linear RGB -// space. This is not useful for measuring how humans perceive color, but -// might be useful for other things, like dithering. -func (c1 Color) DistanceLinearRGB(c2 Color) float64 { - r1, g1, b1 := c1.LinearRgb() - r2, g2, b2 := c2.LinearRgb() - return math.Sqrt(sq(r1-r2) + sq(g1-g2) + sq(b1-b2)) -} - -// Check for equality between colors within the tolerance Delta (1/255). -func (c1 Color) AlmostEqualRgb(c2 Color) bool { - return math.Abs(c1.R-c2.R)+ - math.Abs(c1.G-c2.G)+ - math.Abs(c1.B-c2.B) < 3.0*Delta -} - -// You don't really want to use this, do you? Go for BlendLab, BlendLuv or BlendHcl. -func (c1 Color) BlendRgb(c2 Color, t float64) Color { - return Color{c1.R + t*(c2.R-c1.R), - c1.G + t*(c2.G-c1.G), - c1.B + t*(c2.B-c1.B)} -} - -// Utility used by Hxx color-spaces for interpolating between two angles in [0,360]. -func interp_angle(a0, a1, t float64) float64 { - // Based on the answer here: http://stackoverflow.com/a/14498790/2366315 - // With potential proof that it works here: http://math.stackexchange.com/a/2144499 - delta := math.Mod(math.Mod(a1-a0, 360.0)+540, 360.0) - 180.0 - return math.Mod(a0+t*delta+360.0, 360.0) -} - -/// HSV /// -/////////// -// From http://en.wikipedia.org/wiki/HSL_and_HSV -// Note that h is in [0..360] and s,v in [0..1] - -// Hsv returns the Hue [0..360], Saturation and Value [0..1] of the color. -func (col Color) Hsv() (h, s, v float64) { - min := math.Min(math.Min(col.R, col.G), col.B) - v = math.Max(math.Max(col.R, col.G), col.B) - C := v - min - - s = 0.0 - if v != 0.0 { - s = C / v - } - - h = 0.0 // We use 0 instead of undefined as in wp. - if min != v { - if v == col.R { - h = math.Mod((col.G-col.B)/C, 6.0) - } - if v == col.G { - h = (col.B-col.R)/C + 2.0 - } - if v == col.B { - h = (col.R-col.G)/C + 4.0 - } - h *= 60.0 - if h < 0.0 { - h += 360.0 - } - } - return -} - -// Hsv creates a new Color given a Hue in [0..360], a Saturation and a Value in [0..1] -func Hsv(H, S, V float64) Color { - Hp := H / 60.0 - C := V * S - X := C * (1.0 - math.Abs(math.Mod(Hp, 2.0)-1.0)) - - m := V - C - r, g, b := 0.0, 0.0, 0.0 - - switch { - case 0.0 <= Hp && Hp < 1.0: - r = C - g = X - case 1.0 <= Hp && Hp < 2.0: - r = X - g = C - case 2.0 <= Hp && Hp < 3.0: - g = C - b = X - case 3.0 <= Hp && Hp < 4.0: - g = X - b = C - case 4.0 <= Hp && Hp < 5.0: - r = X - b = C - case 5.0 <= Hp && Hp < 6.0: - r = C - b = X - } - - return Color{m + r, m + g, m + b} -} - -// You don't really want to use this, do you? Go for BlendLab, BlendLuv or BlendHcl. -func (c1 Color) BlendHsv(c2 Color, t float64) Color { - h1, s1, v1 := c1.Hsv() - h2, s2, v2 := c2.Hsv() - - // We know that h are both in [0..360] - return Hsv(interp_angle(h1, h2, t), s1+t*(s2-s1), v1+t*(v2-v1)) -} - -/// HSL /// -/////////// - -// Hsl returns the Hue [0..360], Saturation [0..1], and Luminance (lightness) [0..1] of the color. -func (col Color) Hsl() (h, s, l float64) { - min := math.Min(math.Min(col.R, col.G), col.B) - max := math.Max(math.Max(col.R, col.G), col.B) - - l = (max + min) / 2 - - if min == max { - s = 0 - h = 0 - } else { - if l < 0.5 { - s = (max - min) / (max + min) - } else { - s = (max - min) / (2.0 - max - min) - } - - if max == col.R { - h = (col.G - col.B) / (max - min) - } else if max == col.G { - h = 2.0 + (col.B-col.R)/(max-min) - } else { - h = 4.0 + (col.R-col.G)/(max-min) - } - - h *= 60 - - if h < 0 { - h += 360 - } - } - - return -} - -// Hsl creates a new Color given a Hue in [0..360], a Saturation [0..1], and a Luminance (lightness) in [0..1] -func Hsl(h, s, l float64) Color { - if s == 0 { - return Color{l, l, l} - } - - var r, g, b float64 - var t1 float64 - var t2 float64 - var tr float64 - var tg float64 - var tb float64 - - if l < 0.5 { - t1 = l * (1.0 + s) - } else { - t1 = l + s - l*s - } - - t2 = 2*l - t1 - h /= 360 - tr = h + 1.0/3.0 - tg = h - tb = h - 1.0/3.0 - - if tr < 0 { - tr++ - } - if tr > 1 { - tr-- - } - if tg < 0 { - tg++ - } - if tg > 1 { - tg-- - } - if tb < 0 { - tb++ - } - if tb > 1 { - tb-- - } - - // Red - if 6*tr < 1 { - r = t2 + (t1-t2)*6*tr - } else if 2*tr < 1 { - r = t1 - } else if 3*tr < 2 { - r = t2 + (t1-t2)*(2.0/3.0-tr)*6 - } else { - r = t2 - } - - // Green - if 6*tg < 1 { - g = t2 + (t1-t2)*6*tg - } else if 2*tg < 1 { - g = t1 - } else if 3*tg < 2 { - g = t2 + (t1-t2)*(2.0/3.0-tg)*6 - } else { - g = t2 - } - - // Blue - if 6*tb < 1 { - b = t2 + (t1-t2)*6*tb - } else if 2*tb < 1 { - b = t1 - } else if 3*tb < 2 { - b = t2 + (t1-t2)*(2.0/3.0-tb)*6 - } else { - b = t2 - } - - return Color{r, g, b} -} - -/// Hex /// -/////////// - -// Hex returns the hex "html" representation of the color, as in #ff0080. -func (col Color) Hex() string { - // Add 0.5 for rounding - return fmt.Sprintf("#%02x%02x%02x", uint8(col.R*255.0+0.5), uint8(col.G*255.0+0.5), uint8(col.B*255.0+0.5)) -} - -// Hex parses a "html" hex color-string, either in the 3 "#f0c" or 6 "#ff1034" digits form. -func Hex(scol string) (Color, error) { - format := "#%02x%02x%02x" - factor := 1.0 / 255.0 - if len(scol) == 4 { - format = "#%1x%1x%1x" - factor = 1.0 / 15.0 - } - - var r, g, b uint8 - n, err := fmt.Sscanf(scol, format, &r, &g, &b) - if err != nil { - return Color{}, err - } - if n != 3 { - return Color{}, fmt.Errorf("color: %v is not a hex-color", scol) - } - - return Color{float64(r) * factor, float64(g) * factor, float64(b) * factor}, nil -} - -/// Linear /// -////////////// -// http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/ -// http://www.brucelindbloom.com/Eqn_RGB_to_XYZ.html - -func linearize(v float64) float64 { - if v <= 0.04045 { - return v / 12.92 - } - return math.Pow((v+0.055)/1.055, 2.4) -} - -// LinearRgb converts the color into the linear RGB space (see http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). -func (col Color) LinearRgb() (r, g, b float64) { - r = linearize(col.R) - g = linearize(col.G) - b = linearize(col.B) - return -} - -// A much faster and still quite precise linearization using a 6th-order Taylor approximation. -// See the accompanying Jupyter notebook for derivation of the constants. -func linearize_fast(v float64) float64 { - v1 := v - 0.5 - v2 := v1 * v1 - v3 := v2 * v1 - v4 := v2 * v2 - //v5 := v3*v2 - return -0.248750514614486 + 0.925583310193438*v + 1.16740237321695*v2 + 0.280457026598666*v3 - 0.0757991963780179*v4 //+ 0.0437040411548932*v5 -} - -// FastLinearRgb is much faster than and almost as accurate as LinearRgb. -// BUT it is important to NOTE that they only produce good results for valid colors r,g,b in [0,1]. -func (col Color) FastLinearRgb() (r, g, b float64) { - r = linearize_fast(col.R) - g = linearize_fast(col.G) - b = linearize_fast(col.B) - return -} - -func delinearize(v float64) float64 { - if v <= 0.0031308 { - return 12.92 * v - } - return 1.055*math.Pow(v, 1.0/2.4) - 0.055 -} - -// LinearRgb creates an sRGB color out of the given linear RGB color (see http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). -func LinearRgb(r, g, b float64) Color { - return Color{delinearize(r), delinearize(g), delinearize(b)} -} - -func delinearize_fast(v float64) float64 { - // This function (fractional root) is much harder to linearize, so we need to split. - if v > 0.2 { - v1 := v - 0.6 - v2 := v1 * v1 - v3 := v2 * v1 - v4 := v2 * v2 - v5 := v3 * v2 - return 0.442430344268235 + 0.592178981271708*v - 0.287864782562636*v2 + 0.253214392068985*v3 - 0.272557158129811*v4 + 0.325554383321718*v5 - } else if v > 0.03 { - v1 := v - 0.115 - v2 := v1 * v1 - v3 := v2 * v1 - v4 := v2 * v2 - v5 := v3 * v2 - return 0.194915592891669 + 1.55227076330229*v - 3.93691860257828*v2 + 18.0679839248761*v3 - 101.468750302746*v4 + 632.341487393927*v5 - } else { - v1 := v - 0.015 - v2 := v1 * v1 - v3 := v2 * v1 - v4 := v2 * v2 - v5 := v3 * v2 - // You can clearly see from the involved constants that the low-end is highly nonlinear. - return 0.0519565234928877 + 5.09316778537561*v - 99.0338180489702*v2 + 3484.52322764895*v3 - 150028.083412663*v4 + 7168008.42971613*v5 - } -} - -// FastLinearRgb is much faster than and almost as accurate as LinearRgb. -// BUT it is important to NOTE that they only produce good results for valid inputs r,g,b in [0,1]. -func FastLinearRgb(r, g, b float64) Color { - return Color{delinearize_fast(r), delinearize_fast(g), delinearize_fast(b)} -} - -// XyzToLinearRgb converts from CIE XYZ-space to Linear RGB space. -func XyzToLinearRgb(x, y, z float64) (r, g, b float64) { - r = 3.2409699419045214*x - 1.5373831775700935*y - 0.49861076029300328*z - g = -0.96924363628087983*x + 1.8759675015077207*y + 0.041555057407175613*z - b = 0.055630079696993609*x - 0.20397695888897657*y + 1.0569715142428786*z - return -} - -func LinearRgbToXyz(r, g, b float64) (x, y, z float64) { - x = 0.41239079926595948*r + 0.35758433938387796*g + 0.18048078840183429*b - y = 0.21263900587151036*r + 0.71516867876775593*g + 0.072192315360733715*b - z = 0.019330818715591851*r + 0.11919477979462599*g + 0.95053215224966058*b - return -} - -/// XYZ /// -/////////// -// http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/ - -func (col Color) Xyz() (x, y, z float64) { - return LinearRgbToXyz(col.LinearRgb()) -} - -func Xyz(x, y, z float64) Color { - return LinearRgb(XyzToLinearRgb(x, y, z)) -} - -/// xyY /// -/////////// -// http://www.brucelindbloom.com/Eqn_XYZ_to_xyY.html - -// Well, the name is bad, since it's xyY but Golang needs me to start with a -// capital letter to make the method public. -func XyzToXyy(X, Y, Z float64) (x, y, Yout float64) { - return XyzToXyyWhiteRef(X, Y, Z, D65) -} - -func XyzToXyyWhiteRef(X, Y, Z float64, wref [3]float64) (x, y, Yout float64) { - Yout = Y - N := X + Y + Z - if math.Abs(N) < 1e-14 { - // When we have black, Bruce Lindbloom recommends to use - // the reference white's chromacity for x and y. - x = wref[0] / (wref[0] + wref[1] + wref[2]) - y = wref[1] / (wref[0] + wref[1] + wref[2]) - } else { - x = X / N - y = Y / N - } - return -} - -func XyyToXyz(x, y, Y float64) (X, Yout, Z float64) { - Yout = Y - - if -1e-14 < y && y < 1e-14 { - X = 0.0 - Z = 0.0 - } else { - X = Y / y * x - Z = Y / y * (1.0 - x - y) - } - - return -} - -// Converts the given color to CIE xyY space using D65 as reference white. -// (Note that the reference white is only used for black input.) -// x, y and Y are in [0..1] -func (col Color) Xyy() (x, y, Y float64) { - return XyzToXyy(col.Xyz()) -} - -// Converts the given color to CIE xyY space, taking into account -// a given reference white. (i.e. the monitor's white) -// (Note that the reference white is only used for black input.) -// x, y and Y are in [0..1] -func (col Color) XyyWhiteRef(wref [3]float64) (x, y, Y float64) { - X, Y2, Z := col.Xyz() - return XyzToXyyWhiteRef(X, Y2, Z, wref) -} - -// Generates a color by using data given in CIE xyY space. -// x, y and Y are in [0..1] -func Xyy(x, y, Y float64) Color { - return Xyz(XyyToXyz(x, y, Y)) -} - -/// L*a*b* /// -////////////// -// http://en.wikipedia.org/wiki/Lab_color_space#CIELAB-CIEXYZ_conversions -// For L*a*b*, we need to L*a*b*<->XYZ->RGB and the first one is device dependent. - -func lab_f(t float64) float64 { - if t > 6.0/29.0*6.0/29.0*6.0/29.0 { - return math.Cbrt(t) - } - return t/3.0*29.0/6.0*29.0/6.0 + 4.0/29.0 -} - -func XyzToLab(x, y, z float64) (l, a, b float64) { - // Use D65 white as reference point by default. - // http://www.fredmiranda.com/forum/topic/1035332 - // http://en.wikipedia.org/wiki/Standard_illuminant - return XyzToLabWhiteRef(x, y, z, D65) -} - -func XyzToLabWhiteRef(x, y, z float64, wref [3]float64) (l, a, b float64) { - fy := lab_f(y / wref[1]) - l = 1.16*fy - 0.16 - a = 5.0 * (lab_f(x/wref[0]) - fy) - b = 2.0 * (fy - lab_f(z/wref[2])) - return -} - -func lab_finv(t float64) float64 { - if t > 6.0/29.0 { - return t * t * t - } - return 3.0 * 6.0 / 29.0 * 6.0 / 29.0 * (t - 4.0/29.0) -} - -func LabToXyz(l, a, b float64) (x, y, z float64) { - // D65 white (see above). - return LabToXyzWhiteRef(l, a, b, D65) -} - -func LabToXyzWhiteRef(l, a, b float64, wref [3]float64) (x, y, z float64) { - l2 := (l + 0.16) / 1.16 - x = wref[0] * lab_finv(l2+a/5.0) - y = wref[1] * lab_finv(l2) - z = wref[2] * lab_finv(l2-b/2.0) - return -} - -// Converts the given color to CIE L*a*b* space using D65 as reference white. -func (col Color) Lab() (l, a, b float64) { - return XyzToLab(col.Xyz()) -} - -// Converts the given color to CIE L*a*b* space, taking into account -// a given reference white. (i.e. the monitor's white) -func (col Color) LabWhiteRef(wref [3]float64) (l, a, b float64) { - x, y, z := col.Xyz() - return XyzToLabWhiteRef(x, y, z, wref) -} - -// Generates a color by using data given in CIE L*a*b* space using D65 as reference white. -// WARNING: many combinations of `l`, `a`, and `b` values do not have corresponding -// valid RGB values, check the FAQ in the README if you're unsure. -func Lab(l, a, b float64) Color { - return Xyz(LabToXyz(l, a, b)) -} - -// Generates a color by using data given in CIE L*a*b* space, taking -// into account a given reference white. (i.e. the monitor's white) -func LabWhiteRef(l, a, b float64, wref [3]float64) Color { - return Xyz(LabToXyzWhiteRef(l, a, b, wref)) -} - -// DistanceLab is a good measure of visual similarity between two colors! -// A result of 0 would mean identical colors, while a result of 1 or higher -// means the colors differ a lot. -func (c1 Color) DistanceLab(c2 Color) float64 { - l1, a1, b1 := c1.Lab() - l2, a2, b2 := c2.Lab() - return math.Sqrt(sq(l1-l2) + sq(a1-a2) + sq(b1-b2)) -} - -// DistanceCIE76 is the same as DistanceLab. -func (c1 Color) DistanceCIE76(c2 Color) float64 { - return c1.DistanceLab(c2) -} - -// Uses the CIE94 formula to calculate color distance. More accurate than -// DistanceLab, but also more work. -func (cl Color) DistanceCIE94(cr Color) float64 { - l1, a1, b1 := cl.Lab() - l2, a2, b2 := cr.Lab() - - // NOTE: Since all those formulas expect L,a,b values 100x larger than we - // have them in this library, we either need to adjust all constants - // in the formula, or convert the ranges of L,a,b before, and then - // scale the distances down again. The latter is less error-prone. - l1, a1, b1 = l1*100.0, a1*100.0, b1*100.0 - l2, a2, b2 = l2*100.0, a2*100.0, b2*100.0 - - kl := 1.0 // 2.0 for textiles - kc := 1.0 - kh := 1.0 - k1 := 0.045 // 0.048 for textiles - k2 := 0.015 // 0.014 for textiles. - - deltaL := l1 - l2 - c1 := math.Sqrt(sq(a1) + sq(b1)) - c2 := math.Sqrt(sq(a2) + sq(b2)) - deltaCab := c1 - c2 - - // Not taking Sqrt here for stability, and it's unnecessary. - deltaHab2 := sq(a1-a2) + sq(b1-b2) - sq(deltaCab) - sl := 1.0 - sc := 1.0 + k1*c1 - sh := 1.0 + k2*c1 - - vL2 := sq(deltaL / (kl * sl)) - vC2 := sq(deltaCab / (kc * sc)) - vH2 := deltaHab2 / sq(kh*sh) - - return math.Sqrt(vL2+vC2+vH2) * 0.01 // See above. -} - -// DistanceCIEDE2000 uses the Delta E 2000 formula to calculate color -// distance. It is more expensive but more accurate than both DistanceLab -// and DistanceCIE94. -func (cl Color) DistanceCIEDE2000(cr Color) float64 { - return cl.DistanceCIEDE2000klch(cr, 1.0, 1.0, 1.0) -} - -// DistanceCIEDE2000klch uses the Delta E 2000 formula with custom values -// for the weighting factors kL, kC, and kH. -func (cl Color) DistanceCIEDE2000klch(cr Color, kl, kc, kh float64) float64 { - l1, a1, b1 := cl.Lab() - l2, a2, b2 := cr.Lab() - - // As with CIE94, we scale up the ranges of L,a,b beforehand and scale - // them down again afterwards. - l1, a1, b1 = l1*100.0, a1*100.0, b1*100.0 - l2, a2, b2 = l2*100.0, a2*100.0, b2*100.0 - - cab1 := math.Sqrt(sq(a1) + sq(b1)) - cab2 := math.Sqrt(sq(a2) + sq(b2)) - cabmean := (cab1 + cab2) / 2 - - g := 0.5 * (1 - math.Sqrt(math.Pow(cabmean, 7)/(math.Pow(cabmean, 7)+math.Pow(25, 7)))) - ap1 := (1 + g) * a1 - ap2 := (1 + g) * a2 - cp1 := math.Sqrt(sq(ap1) + sq(b1)) - cp2 := math.Sqrt(sq(ap2) + sq(b2)) - - hp1 := 0.0 - if b1 != ap1 || ap1 != 0 { - hp1 = math.Atan2(b1, ap1) - if hp1 < 0 { - hp1 += math.Pi * 2 - } - hp1 *= 180 / math.Pi - } - hp2 := 0.0 - if b2 != ap2 || ap2 != 0 { - hp2 = math.Atan2(b2, ap2) - if hp2 < 0 { - hp2 += math.Pi * 2 - } - hp2 *= 180 / math.Pi - } - - deltaLp := l2 - l1 - deltaCp := cp2 - cp1 - dhp := 0.0 - cpProduct := cp1 * cp2 - if cpProduct != 0 { - dhp = hp2 - hp1 - if dhp > 180 { - dhp -= 360 - } else if dhp < -180 { - dhp += 360 - } - } - deltaHp := 2 * math.Sqrt(cpProduct) * math.Sin(dhp/2*math.Pi/180) - - lpmean := (l1 + l2) / 2 - cpmean := (cp1 + cp2) / 2 - hpmean := hp1 + hp2 - if cpProduct != 0 { - hpmean /= 2 - if math.Abs(hp1-hp2) > 180 { - if hp1+hp2 < 360 { - hpmean += 180 - } else { - hpmean -= 180 - } - } - } - - t := 1 - 0.17*math.Cos((hpmean-30)*math.Pi/180) + 0.24*math.Cos(2*hpmean*math.Pi/180) + 0.32*math.Cos((3*hpmean+6)*math.Pi/180) - 0.2*math.Cos((4*hpmean-63)*math.Pi/180) - deltaTheta := 30 * math.Exp(-sq((hpmean-275)/25)) - rc := 2 * math.Sqrt(math.Pow(cpmean, 7)/(math.Pow(cpmean, 7)+math.Pow(25, 7))) - sl := 1 + (0.015*sq(lpmean-50))/math.Sqrt(20+sq(lpmean-50)) - sc := 1 + 0.045*cpmean - sh := 1 + 0.015*cpmean*t - rt := -math.Sin(2*deltaTheta*math.Pi/180) * rc - - return math.Sqrt(sq(deltaLp/(kl*sl))+sq(deltaCp/(kc*sc))+sq(deltaHp/(kh*sh))+rt*(deltaCp/(kc*sc))*(deltaHp/(kh*sh))) * 0.01 -} - -// BlendLab blends two colors in the L*a*b* color-space, which should result in a smoother blend. -// t == 0 results in c1, t == 1 results in c2 -func (c1 Color) BlendLab(c2 Color, t float64) Color { - l1, a1, b1 := c1.Lab() - l2, a2, b2 := c2.Lab() - return Lab(l1+t*(l2-l1), - a1+t*(a2-a1), - b1+t*(b2-b1)) -} - -/// L*u*v* /// -////////////// -// http://en.wikipedia.org/wiki/CIELUV#XYZ_.E2.86.92_CIELUV_and_CIELUV_.E2.86.92_XYZ_conversions -// For L*u*v*, we need to L*u*v*<->XYZ<->RGB and the first one is device dependent. - -func XyzToLuv(x, y, z float64) (l, a, b float64) { - // Use D65 white as reference point by default. - // http://www.fredmiranda.com/forum/topic/1035332 - // http://en.wikipedia.org/wiki/Standard_illuminant - return XyzToLuvWhiteRef(x, y, z, D65) -} - -func XyzToLuvWhiteRef(x, y, z float64, wref [3]float64) (l, u, v float64) { - if y/wref[1] <= 6.0/29.0*6.0/29.0*6.0/29.0 { - l = y / wref[1] * (29.0 / 3.0 * 29.0 / 3.0 * 29.0 / 3.0) / 100.0 - } else { - l = 1.16*math.Cbrt(y/wref[1]) - 0.16 - } - ubis, vbis := xyz_to_uv(x, y, z) - un, vn := xyz_to_uv(wref[0], wref[1], wref[2]) - u = 13.0 * l * (ubis - un) - v = 13.0 * l * (vbis - vn) - return -} - -// For this part, we do as R's graphics.hcl does, not as wikipedia does. -// Or is it the same? -func xyz_to_uv(x, y, z float64) (u, v float64) { - denom := x + 15.0*y + 3.0*z - if denom == 0.0 { - u, v = 0.0, 0.0 - } else { - u = 4.0 * x / denom - v = 9.0 * y / denom - } - return -} - -func LuvToXyz(l, u, v float64) (x, y, z float64) { - // D65 white (see above). - return LuvToXyzWhiteRef(l, u, v, D65) -} - -func LuvToXyzWhiteRef(l, u, v float64, wref [3]float64) (x, y, z float64) { - //y = wref[1] * lab_finv((l + 0.16) / 1.16) - if l <= 0.08 { - y = wref[1] * l * 100.0 * 3.0 / 29.0 * 3.0 / 29.0 * 3.0 / 29.0 - } else { - y = wref[1] * cub((l+0.16)/1.16) - } - un, vn := xyz_to_uv(wref[0], wref[1], wref[2]) - if l != 0.0 { - ubis := u/(13.0*l) + un - vbis := v/(13.0*l) + vn - x = y * 9.0 * ubis / (4.0 * vbis) - z = y * (12.0 - 3.0*ubis - 20.0*vbis) / (4.0 * vbis) - } else { - x, y = 0.0, 0.0 - } - return -} - -// Converts the given color to CIE L*u*v* space using D65 as reference white. -// L* is in [0..1] and both u* and v* are in about [-1..1] -func (col Color) Luv() (l, u, v float64) { - return XyzToLuv(col.Xyz()) -} - -// Converts the given color to CIE L*u*v* space, taking into account -// a given reference white. (i.e. the monitor's white) -// L* is in [0..1] and both u* and v* are in about [-1..1] -func (col Color) LuvWhiteRef(wref [3]float64) (l, u, v float64) { - x, y, z := col.Xyz() - return XyzToLuvWhiteRef(x, y, z, wref) -} - -// Generates a color by using data given in CIE L*u*v* space using D65 as reference white. -// L* is in [0..1] and both u* and v* are in about [-1..1] -// WARNING: many combinations of `l`, `u`, and `v` values do not have corresponding -// valid RGB values, check the FAQ in the README if you're unsure. -func Luv(l, u, v float64) Color { - return Xyz(LuvToXyz(l, u, v)) -} - -// Generates a color by using data given in CIE L*u*v* space, taking -// into account a given reference white. (i.e. the monitor's white) -// L* is in [0..1] and both u* and v* are in about [-1..1] -func LuvWhiteRef(l, u, v float64, wref [3]float64) Color { - return Xyz(LuvToXyzWhiteRef(l, u, v, wref)) -} - -// DistanceLuv is a good measure of visual similarity between two colors! -// A result of 0 would mean identical colors, while a result of 1 or higher -// means the colors differ a lot. -func (c1 Color) DistanceLuv(c2 Color) float64 { - l1, u1, v1 := c1.Luv() - l2, u2, v2 := c2.Luv() - return math.Sqrt(sq(l1-l2) + sq(u1-u2) + sq(v1-v2)) -} - -// BlendLuv blends two colors in the CIE-L*u*v* color-space, which should result in a smoother blend. -// t == 0 results in c1, t == 1 results in c2 -func (c1 Color) BlendLuv(c2 Color, t float64) Color { - l1, u1, v1 := c1.Luv() - l2, u2, v2 := c2.Luv() - return Luv(l1+t*(l2-l1), - u1+t*(u2-u1), - v1+t*(v2-v1)) -} - -/// HCL /// -/////////// -// HCL is nothing else than L*a*b* in cylindrical coordinates! -// (this was wrong on English wikipedia, I fixed it, let's hope the fix stays.) -// But it is widely popular since it is a "correct HSV" -// http://www.hunterlab.com/appnotes/an09_96a.pdf - -// Converts the given color to HCL space using D65 as reference white. -// H values are in [0..360], C and L values are in [0..1] although C can overshoot 1.0 -func (col Color) Hcl() (h, c, l float64) { - return col.HclWhiteRef(D65) -} - -func LabToHcl(L, a, b float64) (h, c, l float64) { - // Oops, floating point workaround necessary if a ~= b and both are very small (i.e. almost zero). - if math.Abs(b-a) > 1e-4 && math.Abs(a) > 1e-4 { - h = math.Mod(57.29577951308232087721*math.Atan2(b, a)+360.0, 360.0) // Rad2Deg - } else { - h = 0.0 - } - c = math.Sqrt(sq(a) + sq(b)) - l = L - return -} - -// Converts the given color to HCL space, taking into account -// a given reference white. (i.e. the monitor's white) -// H values are in [0..360], C and L values are in [0..1] -func (col Color) HclWhiteRef(wref [3]float64) (h, c, l float64) { - L, a, b := col.LabWhiteRef(wref) - return LabToHcl(L, a, b) -} - -// Generates a color by using data given in HCL space using D65 as reference white. -// H values are in [0..360], C and L values are in [0..1] -// WARNING: many combinations of `h`, `c`, and `l` values do not have corresponding -// valid RGB values, check the FAQ in the README if you're unsure. -func Hcl(h, c, l float64) Color { - return HclWhiteRef(h, c, l, D65) -} - -func HclToLab(h, c, l float64) (L, a, b float64) { - H := 0.01745329251994329576 * h // Deg2Rad - a = c * math.Cos(H) - b = c * math.Sin(H) - L = l - return -} - -// Generates a color by using data given in HCL space, taking -// into account a given reference white. (i.e. the monitor's white) -// H values are in [0..360], C and L values are in [0..1] -func HclWhiteRef(h, c, l float64, wref [3]float64) Color { - L, a, b := HclToLab(h, c, l) - return LabWhiteRef(L, a, b, wref) -} - -// BlendHcl blends two colors in the CIE-L*C*h° color-space, which should result in a smoother blend. -// t == 0 results in c1, t == 1 results in c2 -func (col1 Color) BlendHcl(col2 Color, t float64) Color { - h1, c1, l1 := col1.Hcl() - h2, c2, l2 := col2.Hcl() - - // We know that h are both in [0..360] - return Hcl(interp_angle(h1, h2, t), c1+t*(c2-c1), l1+t*(l2-l1)).Clamped() -} - -// LuvLch - -// Converts the given color to LuvLCh space using D65 as reference white. -// h values are in [0..360], C and L values are in [0..1] although C can overshoot 1.0 -func (col Color) LuvLCh() (l, c, h float64) { - return col.LuvLChWhiteRef(D65) -} - -func LuvToLuvLCh(L, u, v float64) (l, c, h float64) { - // Oops, floating point workaround necessary if u ~= v and both are very small (i.e. almost zero). - if math.Abs(v-u) > 1e-4 && math.Abs(u) > 1e-4 { - h = math.Mod(57.29577951308232087721*math.Atan2(v, u)+360.0, 360.0) // Rad2Deg - } else { - h = 0.0 - } - l = L - c = math.Sqrt(sq(u) + sq(v)) - return -} - -// Converts the given color to LuvLCh space, taking into account -// a given reference white. (i.e. the monitor's white) -// h values are in [0..360], c and l values are in [0..1] -func (col Color) LuvLChWhiteRef(wref [3]float64) (l, c, h float64) { - return LuvToLuvLCh(col.LuvWhiteRef(wref)) -} - -// Generates a color by using data given in LuvLCh space using D65 as reference white. -// h values are in [0..360], C and L values are in [0..1] -// WARNING: many combinations of `l`, `c`, and `h` values do not have corresponding -// valid RGB values, check the FAQ in the README if you're unsure. -func LuvLCh(l, c, h float64) Color { - return LuvLChWhiteRef(l, c, h, D65) -} - -func LuvLChToLuv(l, c, h float64) (L, u, v float64) { - H := 0.01745329251994329576 * h // Deg2Rad - u = c * math.Cos(H) - v = c * math.Sin(H) - L = l - return -} - -// Generates a color by using data given in LuvLCh space, taking -// into account a given reference white. (i.e. the monitor's white) -// h values are in [0..360], C and L values are in [0..1] -func LuvLChWhiteRef(l, c, h float64, wref [3]float64) Color { - L, u, v := LuvLChToLuv(l, c, h) - return LuvWhiteRef(L, u, v, wref) -} - -// BlendLuvLCh blends two colors in the cylindrical CIELUV color space. -// t == 0 results in c1, t == 1 results in c2 -func (col1 Color) BlendLuvLCh(col2 Color, t float64) Color { - l1, c1, h1 := col1.LuvLCh() - l2, c2, h2 := col2.LuvLCh() - - // We know that h are both in [0..360] - return LuvLCh(l1+t*(l2-l1), c1+t*(c2-c1), interp_angle(h1, h2, t)) -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go deleted file mode 100644 index bb66dfa..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go +++ /dev/null @@ -1,25 +0,0 @@ -package colorful - -import ( - "math/rand" -) - -// Uses the HSV color space to generate colors with similar S,V but distributed -// evenly along their Hue. This is fast but not always pretty. -// If you've got time to spare, use Lab (the non-fast below). -func FastHappyPalette(colorsCount int) (colors []Color) { - colors = make([]Color, colorsCount) - - for i := 0; i < colorsCount; i++ { - colors[i] = Hsv(float64(i)*(360.0/float64(colorsCount)), 0.8+rand.Float64()*0.2, 0.65+rand.Float64()*0.2) - } - return -} - -func HappyPalette(colorsCount int) ([]Color, error) { - pimpy := func(l, a, b float64) bool { - _, c, _ := LabToHcl(l, a, b) - return 0.3 <= c && 0.4 <= l && l <= 0.8 - } - return SoftPaletteEx(colorsCount, SoftPaletteSettings{pimpy, 50, true}) -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go b/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go deleted file mode 100644 index 76f31d8..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go +++ /dev/null @@ -1,67 +0,0 @@ -package colorful - -import ( - "database/sql/driver" - "encoding/json" - "fmt" - "reflect" -) - -// A HexColor is a Color stored as a hex string "#rrggbb". It implements the -// database/sql.Scanner, database/sql/driver.Value, -// encoding/json.Unmarshaler and encoding/json.Marshaler interfaces. -type HexColor Color - -type errUnsupportedType struct { - got interface{} - want reflect.Type -} - -func (hc *HexColor) Scan(value interface{}) error { - s, ok := value.(string) - if !ok { - return errUnsupportedType{got: reflect.TypeOf(value), want: reflect.TypeOf("")} - } - c, err := Hex(s) - if err != nil { - return err - } - *hc = HexColor(c) - return nil -} - -func (hc *HexColor) Value() (driver.Value, error) { - return Color(*hc).Hex(), nil -} - -func (e errUnsupportedType) Error() string { - return fmt.Sprintf("unsupported type: got %v, want a %s", e.got, e.want) -} - -func (hc *HexColor) UnmarshalJSON(data []byte) error { - var hexCode string - if err := json.Unmarshal(data, &hexCode); err != nil { - return err - } - - var col, err = Hex(hexCode) - if err != nil { - return err - } - *hc = HexColor(col) - return nil -} - -func (hc HexColor) MarshalJSON() ([]byte, error) { - return json.Marshal(Color(hc).Hex()) -} - -// Decode - deserialize function for https://github.com/kelseyhightower/envconfig -func (hc *HexColor) Decode(hexCode string) error { - var col, err = Hex(hexCode) - if err != nil { - return err - } - *hc = HexColor(col) - return nil -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/hsluv-snapshot-rev4.json b/vendor/github.com/lucasb-eyer/go-colorful/hsluv-snapshot-rev4.json deleted file mode 100644 index 16354ab..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/hsluv-snapshot-rev4.json +++ /dev/null @@ -1 +0,0 @@ -{"#11ee00":{"lch":[82.5213119008325577,127.202882727266427,127.478988192005161],"luv":[82.5213119008325577,-77.3991947082883627,100.945222931227221],"rgb":[0.0666666666666666657,0.933333333333333348,0],"xyz":[0.308043578886299796,0.612655858810891907,0.102019012460713238],"hpluv":[127.478988192005161,308.195222762673438,82.5213119008325577],"hsluv":[127.478988192005161,100.000000000002416,82.5213119008325577]},"#11ee11":{"lch":[82.5429986110943759,126.352581314528209,127.715012949240403],"luv":[82.5429986110943759,-77.2942129186682,99.9528861720763473],"rgb":[0.0666666666666666657,0.933333333333333348,0.0666666666666666657],"xyz":[0.3090552443859369,0.613060525010746815,0.107347117425468874],"hpluv":[127.715012949240403,306.573296560288782,82.5429986110943759],"hsluv":[127.715012949240403,98.9038130800949205,82.5429986110943759]},"#11ee22":{"lch":[82.5831747617793184,124.791738379333623,128.158354445562821],"luv":[82.5831747617793184,-77.1009570540098,98.1245147202868253],"rgb":[0.0666666666666666657,0.933333333333333348,0.133333333333333331],"xyz":[0.310930602524413957,0.613810668266137616,0.117224003621448067],"hpluv":[128.158354445562821,303.59085997924285,82.5831747617793184],"hsluv":[128.158354445562821,98.9085620232469864,82.5831747617793184]},"#11ee33":{"lch":[82.6492529720821381,122.265269823008623,128.905098358231896],"luv":[82.6492529720821381,-76.7865393115689301,95.1452762119380537],"rgb":[0.0666666666666666657,0.933333333333333348,0.2],"xyz":[0.314018353256871663,0.615045768559120742,0.133486157479059203],"hpluv":[128.905098358231896,298.749143147736106,82.6492529720821381],"hsluv":[128.905098358231896,98.916292078887,82.6492529720821381]},"#11ee44":{"lch":[82.7444986901015511,118.712635154498344,130.021230388522838],"luv":[82.7444986901015511,-76.3407023620842,90.9108734321077],"rgb":[0.0666666666666666657,0.933333333333333348,0.266666666666666663],"xyz":[0.318476348501090578,0.616828966656808308,0.156964932431945842],"hpluv":[130.021230388522838,291.911386756693616,82.7444986901015511],"hsluv":[130.021230388522838,98.9272612770947148,82.7444986901015511]},"#11ee55":{"lch":[82.8716000285422894,114.135934527262179,131.587310643629934],"luv":[82.8716000285422894,-75.758934185545,85.3674144008224],"rgb":[0.0666666666666666657,0.933333333333333348,0.333333333333333315],"xyz":[0.324438762540452563,0.619213932272553058,0.188366979705919757],"hpluv":[131.587310643629934,283.052591495130912,82.8716000285422894],"hsluv":[131.587310643629934,98.941589727101146,82.8716000285422894]},"#11ee66":{"lch":[83.0328193013522622,108.602333046050703,133.707640253052432],"luv":[83.0328193013522622,-75.0419109433949103,78.5059128028513697],"rgb":[0.0666666666666666657,0.933333333333333348,0.4],"xyz":[0.332023758313960748,0.622247930581956377,0.228314624113063719],"hpluv":[133.707640253052432,272.269449526145593,83.0328193013522622],"hsluv":[133.707640253052432,98.9592735060659,83.0328193013522622]},"#11ee77":{"lch":[83.2300736177455747,102.250357200027821,136.520544097163679],"luv":[83.2300736177455747,-74.1950209885278866,70.3579022430685228],"rgb":[0.0666666666666666657,0.933333333333333348,0.466666666666666674],"xyz":[0.341337771334162654,0.625973535790037228,0.277368426019461656],"hpluv":[136.520544097163679,259.803949175129901,83.2300736177455747],"hsluv":[136.520544097163679,98.9801962733070155,83.2300736177455747]},"#11ee88":{"lch":[83.4649827070576151,95.3003261118453651,140.209511574476238],"luv":[83.4649827070576151,-73.2277962837693082,60.990507527375577],"rgb":[0.0666666666666666657,0.933333333333333348,0.533333333333333326],"xyz":[0.352478188436106454,0.63042970263081477,0.336041289423033795],"hpluv":[140.209511574476238,246.084644167270028,83.4649827070576151],"hsluv":[140.209511574476238,99.0041428894333109,83.4649827070576151]},"#11ee99":{"lch":[83.7388997377875626,88.07037792773761,145.011549795441141],"luv":[83.7388997377875626,-72.1532115864445416,50.5005497603372433],"rgb":[0.0666666666666666657,0.933333333333333348,0.6],"xyz":[0.365535152545179209,0.635652488274444,0.404807967064151675],"hpluv":[145.011549795441141,231.793725377578141,83.7388997377875626],"hsluv":[145.011549795441141,99.0308160530368582,83.7388997377875626]},"#11eeaa":{"lch":[84.0529327571252907,80.9984265129003802,151.210882439188083],"luv":[84.0529327571252907,-70.9868724309634729,39.0078074241021824],"rgb":[0.0666666666666666657,0.933333333333333348,0.66666666666666663],"xyz":[0.38059284551043171,0.641675565460545,0.484111816681150331],"hpluv":[151.210882439188083,217.967504021816438,84.0529327571252907],"hsluv":[151.210882439188083,99.0598554997167895,84.0529327571252907]},"#11eebb":{"lch":[84.4079608499599914,74.6634505604909435,159.089705667287262],"luv":[84.4079608499599914,-69.7461428935043273,26.6478216947980826],"rgb":[0.0666666666666666657,0.933333333333333348,0.733333333333333282],"xyz":[0.397730437617768384,0.648530602303479808,0.574369801779792],"hpluv":[159.089705667287262,206.122134265545043,84.4079608499599914],"hsluv":[159.089705667287262,99.0908585861444209,84.4079608499599914]},"#11eecc":{"lch":[84.8046473826435,69.7804076798411,168.790807110150524],"luv":[84.8046473826435,-68.449275126866155,13.5647348138992196],"rgb":[0.0666666666666666657,0.933333333333333348,0.8],"xyz":[0.417022813061490139,0.656247552480968666,0.675976312450062178],"hpluv":[168.790807110150524,198.342538571842852,84.8046473826435],"hsluv":[168.790807110150524,99.123400814408285,84.8046473826435]},"#11eedd":{"lch":[85.2434517572140749,67.1146678094459,180.081412911690762],"luv":[85.2434517572140749,-67.114600056421537,-0.0953647673755886743],"rgb":[0.0666666666666666657,0.933333333333333348,0.866666666666666696],"xyz":[0.438541138612123627,0.664854882701222172,0.789306160350068176],"hpluv":[180.081412911690762,197.173954094180345,85.2434517572140749],"hsluv":[180.081412911690762,99.1570549081779546,85.2434517572140749]},"#11eeee":{"lch":[85.7246405502341275,67.2734484234975,192.17705063006116],"luv":[85.7246405502341275,-65.759826803247222,-14.1902093570146306],"rgb":[0.0666666666666666657,0.933333333333333348,0.933333333333333348],"xyz":[0.462353318878298392,0.674379754807692189,0.914716976418591399],"hpluv":[192.17705063006116,205.138082793863816,85.7246405502341275],"hsluv":[192.17705063006116,99.1914073274009098,85.7246405502341275]},"#11eeff":{"lch":[86.2482985645723517,70.4606934075819282,203.935071880927921],"luv":[86.2482985645723517,-64.401481656171029,-28.585983907627277],"rgb":[0.0666666666666666657,0.933333333333333348,1],"xyz":[0.488524367288129757,0.684848174171624913,1.05255116471037335],"hpluv":[203.935071880927921,224.026806300523,86.2482985645723517],"hsluv":[203.935071880927921,99.9999999999942304,86.2482985645723517]},"#11ff00":{"lch":[87.7931168603164,135.408535196841626,127.513270797457935],"luv":[87.7931168603164,-82.4563732780469,107.407718111808407],"rgb":[0.0666666666666666657,1,0],"xyz":[0.359895951315973628,0.716360603670241,0.119303136603937349],"hpluv":[127.513270797457935,491.310985978769054,87.7931168603164],"hsluv":[127.513270797457935,100.000000000002373,87.7931168603164]},"#11ff11":{"lch":[87.8126571401035108,134.634318462908169,127.715012949240432],"luv":[87.8126571401035108,-82.3604359259359313,106.50426424355777],"rgb":[0.0666666666666666657,1,0.0666666666666666657],"xyz":[0.360907616815610732,0.716765269870095922,0.124631241568692985],"hpluv":[127.715012949240432,489.364334505449051,87.8126571401035108],"hsluv":[127.715012949240432,99.999999999991914,87.8126571401035108]},"#11ff22":{"lch":[87.848860165327963,133.211117719966126,128.093229681784152],"luv":[87.848860165327963,-82.1836510367646,104.838205757586152],"rgb":[0.0666666666666666657,1,0.133333333333333331],"xyz":[0.362782974954087789,0.717515413125486723,0.134508127764672164],"hpluv":[128.093229681784152,485.7796458877379,87.848860165327963],"hsluv":[128.093229681784152,99.9999999999918572,87.848860165327963]},"#11ff33":{"lch":[87.9084130007832698,130.901693692038833,128.728166832562891],"luv":[87.9084130007832698,-81.8955348861488659,102.119414300885666],"rgb":[0.0666666666666666657,1,0.2],"xyz":[0.365870725686545495,0.71875051341846985,0.150770281622283314],"hpluv":[128.728166832562891,479.945632467831388,87.9084130007832698],"hsluv":[128.728166832562891,99.9999999999919567,87.9084130007832698]},"#11ff44":{"lch":[87.9942732352876,127.641489512823171,129.672386074694657],"luv":[87.9942732352876,-81.4859348177847806,98.2465891108891185],"rgb":[0.0666666666666666657,1,0.266666666666666663],"xyz":[0.37032872093076441,0.720533711516157416,0.174249056575169953],"hpluv":[129.672386074694657,471.674193406224788,87.9942732352876],"hsluv":[129.672386074694657,99.9999999999918856,87.9942732352876]},"#11ff55":{"lch":[88.1088871723243727,123.41738800901625,130.987994113812931],"luv":[88.1088871723243727,-80.9495722978130772,93.1612494966077662],"rgb":[0.0666666666666666657,1,0.333333333333333315],"xyz":[0.376291134970126395,0.722918677131902165,0.205651103849143868],"hpluv":[130.987994113812931,460.897243009671797,88.1088871723243727],"hsluv":[130.987994113812931,99.9999999999917,88.1088871723243727]},"#11ff66":{"lch":[88.2543278429396,118.268592142924746,132.753132104158254],"luv":[88.2543278429396,-80.2855559529031382,86.8429006471038],"rgb":[0.0666666666666666657,1,0.4],"xyz":[0.38387613074363458,0.725952675441305484,0.24559874825628783],"hpluv":[132.753132104158254,447.675525940365219,88.2543278429396],"hsluv":[132.753132104158254,99.9999999999916724,88.2543278429396]},"#11ff77":{"lch":[88.4323687925046613,112.290518027227137,135.069051083024959],"luv":[88.4323687925046613,-79.4970211443964558,79.3056370505300521],"rgb":[0.0666666666666666657,1,0.466666666666666674],"xyz":[0.393190143763836486,0.729678280649386335,0.294652550162685767],"hpluv":[135.069051083024959,432.222948715922314,88.4323687925046613],"hsluv":[135.069051083024959,99.999999999991644,88.4323687925046613]},"#11ff88":{"lch":[88.6445280109338825,105.641380676940045,138.068036362648229],"luv":[88.6445280109338825,-78.5907289650887577,70.5946076698930369],"rgb":[0.0666666666666666657,1,0.533333333333333326],"xyz":[0.404330560865780286,0.734134447490163877,0.353325413566257907],"hpluv":[138.068036362648229,414.95023459347243,88.6445280109338825],"hsluv":[138.068036362648229,99.9999999999915,88.6445280109338825]},"#11ff99":{"lch":[88.8920961876840465,98.552301258979881,141.921030988541872],"luv":[88.8920961876840465,-77.5765731609304225,60.7818342932124338],"rgb":[0.0666666666666666657,1,0.6],"xyz":[0.417387524974853,0.73935723313379309,0.422092091207375786],"hpluv":[141.921030988541872,396.537381185702543,88.8920961876840465],"hsluv":[141.921030988541872,99.9999999999913456,88.8920961876840465]},"#11ffaa":{"lch":[89.1761561490339147,91.3418654410923523,146.840553381528281],"luv":[89.1761561490339147,-76.4669946123218,49.9613362233014158],"rgb":[0.0666666666666666657,1,0.66666666666666663],"xyz":[0.432445217940105542,0.745380310319894157,0.501395940824374442],"hpluv":[146.840553381528281,378.048392077141443,89.1761561490339147],"hsluv":[146.840553381528281,99.9999999999913,89.1761561490339147]},"#11ffbb":{"lch":[89.4975971674113,84.4340589142561413,153.067388238784645],"luv":[89.4975971674113,-75.2763296710648859,38.2437510711127],"rgb":[0.0666666666666666657,1,0.733333333333333282],"xyz":[0.449582810047442216,0.752235347162828916,0.591653925923016133],"hpluv":[153.067388238784645,361.099415032935838,89.4975971674113],"hsluv":[153.067388238784645,99.9999999999909335,89.4975971674113]},"#11ffcc":{"lch":[89.8571262823018628,78.3714319324892159,160.817799258328876],"luv":[89.8571262823018628,-74.0201316086282901,25.7507564896672143],"rgb":[0.0666666666666666657,1,0.8],"xyz":[0.468875185491163915,0.759952297340317773,0.693260436593286289],"hpluv":[160.817799258328876,348.067615225706845,89.8571262823018628],"hsluv":[160.817799258328876,99.999999999991,89.8571262823018628]},"#11ffdd":{"lch":[90.2552779380141317,73.7997451229305,170.162013498752287],"luv":[90.2552779380141317,-72.7145076797264238,12.6096293801408788],"rgb":[0.0666666666666666657,1,0.866666666666666696],"xyz":[0.490393511041797514,0.768559627560571279,0.806590284493292287],"hpluv":[170.162013498752287,342.256686666565315,90.2552779380141317],"hsluv":[170.162013498752287,99.999999999990834,90.2552779380141317]},"#11ffee":{"lch":[90.6924227584195819,71.3832589696730793,180.844217403257659],"luv":[90.6924227584195819,-71.3755103944163665,-1.05174952720347981],"rgb":[0.0666666666666666657,1,0.933333333333333348],"xyz":[0.514205691307972224,0.778084499667041296,0.93200110056181551],"hpluv":[180.844217403257659,347.82122947809512,90.6924227584195819],"hsluv":[180.844217403257659,99.9999999999901803,90.6924227584195819]},"#11ffff":{"lch":[91.1687759776689859,71.6302608322469467,192.17705063006116],"luv":[91.1687759776689859,-70.0186129384549361,-15.1092061032524665],"rgb":[0.0666666666666666657,1,1],"xyz":[0.540376739717803645,0.788552919030974,1.06983528885359735],"hpluv":[192.17705063006116,369.258709956275879,91.1687759776689859],"hsluv":[192.17705063006116,99.9999999999898108,91.1687759776689859]},"#00aa00":{"lch":[60.5587499434736287,93.727653253516209,127.71501294924046],"luv":[60.5587499434736287,-57.3364240886418415,74.1445038903004559],"rgb":[0,0.66666666666666663,0],"xyz":[0.143740958848290495,0.287481917696585,0.0479136529494288144],"hpluv":[127.71501294924046,196.394882900214554,60.5587499434736287],"hsluv":[127.71501294924046,100.000000000002359,60.5587499434736287]},"#00aa11":{"lch":[60.5946550577951939,92.4075267438518182,128.220974416403209],"luv":[60.5946550577951939,-57.1721703645967665,72.5981675713458543],"rgb":[0,0.66666666666666663,0.0666666666666666657],"xyz":[0.144752624347927628,0.28788658389643984,0.0532417579141844441],"hpluv":[128.220974416403209,193.513984665985475,60.5946550577951939],"hsluv":[128.220974416403209,99.9999999999907772,60.5946550577951939]},"#00aa22":{"lch":[60.661124672570665,90.0113827545795715,129.185497299711983],"luv":[60.661124672570665,-56.8721735728637725,69.7682226983709199],"rgb":[0,0.66666666666666663,0.133333333333333331],"xyz":[0.146627982486404629,0.288636727151830641,0.0631186441101636436],"hpluv":[129.185497299711983,188.289586599726533,60.661124672570665],"hsluv":[129.185497299711983,99.9999999999908624,60.661124672570665]},"#00aa33":{"lch":[60.7703154938824355,86.2098857925288513,130.852037745481823],"luv":[60.7703154938824355,-56.3905639077229353,65.2092685937350751],"rgb":[0,0.66666666666666663,0.2],"xyz":[0.14971573321886239,0.289871827444813768,0.0793807979677747799],"hpluv":[130.852037745481823,180.013429236819462,60.7703154938824355],"hsluv":[130.852037745481823,99.9999999999908,60.7703154938824355]},"#00aa44":{"lch":[60.9274158721733841,81.0355822964375108,133.441426631804489],"luv":[60.9274158721733841,-55.7210928860807044,58.8381288426430444],"rgb":[0,0.66666666666666663,0.266666666666666663],"xyz":[0.15417372846308125,0.291655025542501334,0.102859572920661418],"hpluv":[133.441426631804489,168.77274926729055,60.9274158721733841],"hsluv":[133.441426631804489,99.9999999999908908,60.9274158721733841]},"#00aa55":{"lch":[61.1365343944832915,74.6960845180523592,137.272019015051796],"luv":[61.1365343944832915,-54.8704978500827636,50.6826746335676717],"rgb":[0,0.66666666666666663,0.333333333333333315],"xyz":[0.160136142502443235,0.294039991158246194,0.134261620194635334],"hpluv":[137.272019015051796,155.037353806827582,61.1365343944832915],"hsluv":[137.272019015051796,99.9999999999910614,61.1365343944832915]},"#00aa66":{"lch":[61.4009335299549264,67.6053275851037512,142.80970662058607],"luv":[61.4009335299549264,-53.8565898531593703,40.8649978254956139],"rgb":[0,0.66666666666666663,0.4],"xyz":[0.16772113827595142,0.297073989467649513,0.174209264601779296],"hpluv":[142.80970662058607,139.715720243970395,61.4009335299549264],"hsluv":[142.80970662058607,99.9999999999911893,61.4009335299549264]},"#00aa77":{"lch":[61.7231520087844814,60.4394033477847188,150.696962972825474],"luv":[61.7231520087844814,-52.7057786154446859,29.5807771631501382],"rgb":[0,0.66666666666666663,0.466666666666666674],"xyz":[0.177035151296153326,0.300799594675730309,0.223263066508177205],"hpluv":[150.696962972825474,124.254291935777843,61.7231520087844814],"hsluv":[150.696962972825474,99.9999999999911893,61.7231520087844814]},"#00aa88":{"lch":[62.1050795642419615,54.2095218153359397,161.640221068188367],"luv":[62.1050795642419615,-51.4501140589855126,17.0750700954568337],"rgb":[0,0.66666666666666663,0.533333333333333326],"xyz":[0.188175568398097182,0.305255761516507906,0.281935929911749372],"hpluv":[161.640221068188367,110.761232665855573,62.1050795642419615],"hsluv":[161.640221068188367,99.9999999999911466,62.1050795642419615]},"#00aa99":{"lch":[62.5480102999456307,50.2545412813378576,175.872445658321794],"luv":[62.5480102999456307,-50.1241952468173793,3.61717711159146882],"rgb":[0,0.66666666666666663,0.6],"xyz":[0.201232532507169881,0.310478547160137064,0.350702607552867307],"hpluv":[175.872445658321794,101.95326553071466,62.5480102999456307],"hsluv":[175.872445658321794,99.9999999999913314,62.5480102999456307]},"#00aaaa":{"lch":[63.0526871437625829,49.8847230087107931,192.17705063006116],"luv":[63.0526871437625829,-48.762339705407328,-10.5223484123201398],"rgb":[0,0.66666666666666663,0.66666666666666663],"xyz":[0.216290225472422437,0.316501624346238186,0.430006457169865852],"hpluv":[192.17705063006116,100.392967527320806,63.0526871437625829],"hsluv":[192.17705063006116,99.9999999999914451,63.0526871437625829]},"#00aabb":{"lch":[63.6193436646561565,53.6276681768737,207.895374658889665],"luv":[63.6193436646561565,-47.3963155750249143,-25.0901587081772526],"rgb":[0,0.66666666666666663,0.733333333333333282],"xyz":[0.233427817579759056,0.323356661189172945,0.520264442268507654],"hpluv":[207.895374658889665,106.964349821245364,63.6193436646561565],"hsluv":[207.895374658889665,99.9999999999916,63.6193436646561565]},"#00aacc":{"lch":[64.2477463386430259,60.9097449106327886,220.878520684721707],"luv":[64.2477463386430259,-46.0537892020538,-39.8628338833449],"rgb":[0,0.66666666666666663,0.8],"xyz":[0.25272019302348081,0.331073611366661746,0.62187095293877781],"hpluv":[220.878520684721707,120.300715116377788,64.2477463386430259],"hsluv":[220.878520684721707,99.9999999999916298,64.2477463386430259]},"#00aadd":{"lch":[64.9372385342214926,70.6418801813473465,230.685034316882962],"luv":[64.9372385342214926,-44.7574928469198525,-54.6538385624811625],"rgb":[0,0.66666666666666663,0.866666666666666696],"xyz":[0.274238518574114354,0.339680941586915253,0.735200800838783808],"hpluv":[230.685034316882962,138.04089297290011,64.9372385342214926],"hsluv":[230.685034316882962,99.9999999999918145,64.9372385342214926]},"#00aaee":{"lch":[65.6867863979168618,81.8478503674051,237.87423205753521],"luv":[65.6867863979168618,-43.5250094774703129,-69.3155405356638283],"rgb":[0,0.66666666666666663,0.933333333333333348],"xyz":[0.298050698840289119,0.34920581369338527,0.860611616907307],"hpluv":[237.87423205753521,158.11336767521891,65.6867863979168618],"hsluv":[237.87423205753521,99.999999999991843,65.6867863979168618]},"#00aaff":{"lch":[66.4950261675888,93.8462134827344,243.161780722675303],"luv":[66.4950261675888,-42.369016683119284,-83.7375555551541],"rgb":[0,0.66666666666666663,1],"xyz":[0.324221747250120484,0.359674233057318,0.998445805199088876],"hpluv":[243.161780722675303,179.088178632175044,66.4950261675888],"hsluv":[243.161780722675303,99.9999999999982805,66.4950261675888]},"#00bb00":{"lch":[66.1662429166961772,102.406451239047826,127.71501294924046],"luv":[66.1662429166961772,-62.6455428450044352,81.0099822060849135],"rgb":[0,0.733333333333333282,0],"xyz":[0.177695456756889275,0.355390913513783546,0.0592318189189614333],"hpluv":[127.71501294924046,196.39488290021464,66.1662429166961772],"hsluv":[127.71501294924046,100.000000000002373,66.1662429166961772]},"#00bb11":{"lch":[66.1974173108447559,101.237205455569821,128.123527834983577],"luv":[66.1974173108447559,-62.4996967519340956,79.6414444518024425],"rgb":[0,0.733333333333333282,0.0666666666666666657],"xyz":[0.178707122256526407,0.355795579713638399,0.064559923883717063],"hpluv":[128.123527834983577,194.061073356438868,66.1974173108447559],"hsluv":[128.123527834983577,99.9999999999909335,66.1974173108447559]},"#00bb22":{"lch":[66.2551438620851911,99.1062916374383747,128.898124119483072],"luv":[66.2551438620851911,-62.232564676438038,77.1308299962987718],"rgb":[0,0.733333333333333282,0.133333333333333331],"xyz":[0.180582480395003409,0.3565457229690292,0.0744368100796962556],"hpluv":[128.898124119483072,189.810813804630897,66.2551438620851911],"hsluv":[128.898124119483072,99.9999999999908624,66.2551438620851911]},"#00bb33":{"lch":[66.3500136661217255,95.7008075372637137,130.224174268563928],"luv":[66.3500136661217255,-61.8016571104716235,73.0698278476423155],"rgb":[0,0.733333333333333282,0.2],"xyz":[0.18367023112746117,0.357780823262012326,0.0906989639373074],"hpluv":[130.224174268563928,183.02647365261987,66.3500136661217255],"hsluv":[130.224174268563928,99.9999999999909335,66.3500136661217255]},"#00bb44":{"lch":[66.4865992404304,91.0092453899789859,132.255785626190885],"luv":[66.4865992404304,-61.1983980271068,67.3605138443080875],"rgb":[0,0.733333333333333282,0.266666666666666663],"xyz":[0.18812822637168003,0.359564021359699892,0.114177738890194044],"hpluv":[132.255785626190885,173.696361176634838,66.4865992404304],"hsluv":[132.255785626190885,99.9999999999909619,66.4865992404304]},"#00bb55":{"lch":[66.6685736373934219,85.1496193371524,135.204737263674588],"luv":[66.6685736373934219,-60.4246386982598,59.9943389949978751],"rgb":[0,0.733333333333333282,0.333333333333333315],"xyz":[0.194090640411042015,0.361948986975444753,0.145579786164167946],"hpluv":[135.204737263674588,162.069343805127659,66.6685736373934219],"hsluv":[135.204737263674588,99.9999999999909477,66.6685736373934219]},"#00bb66":{"lch":[66.8989180170192412,78.3861452968700689,139.371990675590268],"luv":[66.8989180170192412,-59.4914065933894,51.0407711152765629],"rgb":[0,0.733333333333333282,0.4],"xyz":[0.2016756361845502,0.364982985284848072,0.185527430571311908],"hpluv":[139.371990675590268,148.682392510907704,66.8989180170192412],"hsluv":[139.371990675590268,99.9999999999911182,66.8989180170192412]},"#00bb77":{"lch":[67.1800303821267448,71.1598447269708316,145.178146497089472],"luv":[67.1800303821267448,-58.4173559625633061,40.6341731047866617],"rgb":[0,0.733333333333333282,0.466666666666666674],"xyz":[0.210989649204752105,0.368708590492928867,0.234581232477709817],"hpluv":[145.178146497089472,134.410786503463328,67.1800303821267448],"hsluv":[145.178146497089472,99.9999999999910898,67.1800303821267448]},"#00bb88":{"lch":[67.5137905946342,64.1363411600919,153.159702568813543],"luv":[67.5137905946342,-57.2268359754185525,28.9578918715820954],"rgb":[0,0.733333333333333282,0.533333333333333326],"xyz":[0.222130066306695961,0.373164757333706465,0.293254095881282],"hpluv":[153.159702568813543,120.545503395456095,67.5137905946342],"hsluv":[153.159702568813543,99.9999999999911608,67.5137905946342]},"#00bb99":{"lch":[67.9016044714860811,58.2533417764790187,163.826150797364875],"luv":[67.9016044714860811,-55.9477282230567141,16.2266304205851419],"rgb":[0,0.733333333333333282,0.6],"xyz":[0.235187030415768661,0.378387542977335622,0.362020773522399919],"hpluv":[163.826150797364875,108.862958898475256,67.9016044714860811],"hsluv":[163.826150797364875,99.9999999999912461,67.9016044714860811]},"#00bbaa":{"lch":[68.3444379186728384,54.6744668749029543,177.202021912208522],"luv":[68.3444379186728384,-54.6092872876890922,2.66890801368250408],"rgb":[0,0.733333333333333282,0.66666666666666663],"xyz":[0.250244723381021217,0.384410620163436745,0.44132462313939852],"hpluv":[177.202021912208522,101.512776720033713,68.3444379186728384],"hsluv":[177.202021912208522,99.9999999999913598,68.3444379186728384]},"#00bbbb":{"lch":[68.8428468315880338,54.4656619866929645,192.177050630061132],"luv":[68.8428468315880338,-53.2402096652165113,-11.4886209116881091],"rgb":[0,0.733333333333333282,0.733333333333333282],"xyz":[0.267382315488357836,0.391265657006371503,0.531582608238040266],"hpluv":[192.177050630061132,100.392967527320806,68.8428468315880338],"hsluv":[192.177050630061132,99.9999999999914451,68.8428468315880338]},"#00bbcc":{"lch":[69.3970058395379397,58.0340346662075675,206.653495587531239],"luv":[69.3970058395379397,-51.8670935918889384,-26.0337047299998297],"rgb":[0,0.733333333333333282,0.8],"xyz":[0.28667469093207959,0.398982607183860305,0.633189118908310422],"hpluv":[206.653495587531239,106.116119046155191,69.3970058395379397],"hsluv":[206.653495587531239,99.9999999999915161,69.3970058395379397]},"#00bbdd":{"lch":[70.0067374807312461,64.9183055759271923,218.91244904401708],"luv":[70.0067374807312461,-50.5133677649133119,-40.7772740125682844],"rgb":[0,0.733333333333333282,0.866666666666666696],"xyz":[0.308193016482713134,0.407589937404113811,0.74651896680831642],"hpluv":[218.91244904401708,117.670246608059514,70.0067374807312461],"hsluv":[218.91244904401708,99.999999999991644,70.0067374807312461]},"#00bbee":{"lch":[70.6715424904064236,74.2108860535778,228.474155043258463],"luv":[70.6715424904064236,-49.1986871961444336,-55.5584807840624819],"rgb":[0,0.733333333333333282,0.933333333333333348],"xyz":[0.332005196748887843,0.417114809510583828,0.871929782876839643],"hpluv":[228.474155043258463,133.248513578578667,70.6715424904064236],"hsluv":[228.474155043258463,99.9999999999918288,70.6715424904064236]},"#00bbff":{"lch":[71.3906313155650167,85.0452269855302,235.688960914523477],"luv":[71.3906313155650167,-47.9387359102869155,-70.246481992653],"rgb":[0,0.733333333333333282,1],"xyz":[0.358176245158719264,0.427583228874516552,1.00976397116862149],"hpluv":[235.688960914523477,151.163886263776277,71.3906313155650167],"hsluv":[235.688960914523477,99.9999999999978,71.3906313155650167]},"#00cc00":{"lch":[71.6795694698327139,110.939506494120423,127.71501294924046],"luv":[71.6795694698327139,-67.8655057683618566,87.7601688009055181],"rgb":[0,0.8,0],"xyz":[0.215919200066506195,0.431838400133018441,0.0719730666888333814],"hpluv":[127.71501294924046,196.394882900214611,71.6795694698327139],"hsluv":[127.71501294924046,100.000000000002359,71.6795694698327139]},"#00cc11":{"lch":[71.7069484470386698,109.895339051400697,128.05073784188761],"luv":[71.7069484470386698,-67.7349868616780668,86.5387606802328548],"rgb":[0,0.8,0.0666666666666666657],"xyz":[0.216930865566143327,0.432243066332873294,0.0773011716535890181],"hpluv":[128.05073784188761,194.472124503698296,71.7069484470386698],"hsluv":[128.05073784188761,99.9999999999908766,71.7069484470386698]},"#00cc22":{"lch":[71.7576566073484,107.986601617430239,128.68476606632143],"luv":[71.7576566073484,-67.4954197535952289,84.2939763041676287],"rgb":[0,0.8,0.133333333333333331],"xyz":[0.218806223704620328,0.432993209588264094,0.0871780578495682107],"hpluv":[128.68476606632143,190.959361108477,71.7576566073484],"hsluv":[128.68476606632143,99.9999999999909193,71.7576566073484]},"#00cc33":{"lch":[71.8410194320707,104.91966800737103,129.762682813168567],"luv":[71.8410194320707,-67.1075822658835364,80.6517770244687853],"rgb":[0,0.8,0.2],"xyz":[0.22189397443707809,0.434228309881247221,0.103440211707179347],"hpluv":[129.762682813168567,185.320621425294917,71.8410194320707],"hsluv":[129.762682813168567,99.9999999999909761,71.8410194320707]},"#00cc44":{"lch":[71.9610975929873717,100.65733905537941,131.396818004218431],"luv":[71.9610975929873717,-66.561699323308261,75.5078809721416491],"rgb":[0,0.8,0.266666666666666663],"xyz":[0.226351969681296949,0.436011507978934787,0.126918986660065986],"hpluv":[131.396818004218431,177.495355343216744,71.9610975929873717],"hsluv":[131.396818004218431,99.9999999999909903,71.9610975929873717]},"#00cc55":{"lch":[72.1211872877728837,95.2615727691762828,133.734892870047815],"luv":[72.1211872877728837,-65.8564749898269639,68.8308938513177],"rgb":[0,0.8,0.333333333333333315],"xyz":[0.232314383720658935,0.438396473594679648,0.158321033934039901],"hpluv":[133.734892870047815,167.607792551030144,72.1211872877728837],"hsluv":[133.734892870047815,99.999999999991033,72.1211872877728837]},"#00cc66":{"lch":[72.3240060759138,88.9026050634798821,136.980115521422647],"luv":[72.3240060759138,-64.9982032665013207,60.6539921126355495],"rgb":[0,0.8,0.4],"xyz":[0.23989937949416712,0.441430471904082966,0.198268678341183863],"hpluv":[136.980115521422647,155.980870440536961,72.3240060759138],"hsluv":[136.980115521422647,99.9999999999910614,72.3240060759138]},"#00cc77":{"lch":[72.5717906268391459,81.8763194870781206,141.413175407098493],"luv":[72.5717906268391459,-63.9997644777707464,51.066249515114805],"rgb":[0,0.8,0.466666666666666674],"xyz":[0.249213392514369025,0.445156077112163762,0.247322480247581772],"hpluv":[141.413175407098493,143.162673336571032,72.5717906268391459],"hsluv":[141.413175407098493,99.9999999999910756,72.5717906268391459]},"#00cc88":{"lch":[72.8663546950801,74.6325704710961162,147.40707881161012],"luv":[72.8663546950801,-62.8793552775828672,40.2020802322297683],"rgb":[0,0.8,0.533333333333333326],"xyz":[0.260353809616312881,0.449612243952941359,0.305995343651153939],"hpluv":[147.40707881161012,129.969270924532168,72.8663546950801],"hsluv":[147.40707881161012,99.9999999999911608,72.8663546950801]},"#00cc99":{"lch":[73.2091273059676695,67.813783770663278,155.40051707617576],"luv":[73.2091273059676695,-61.6589956558222809,28.2290191825639418],"rgb":[0,0.8,0.6],"xyz":[0.273410773725385581,0.454835029596570517,0.374762021292271874],"hpluv":[155.40051707617576,117.541728748843539,73.2091273059676695],"hsluv":[155.40051707617576,99.9999999999911893,73.2091273059676695]},"#00ccaa":{"lch":[73.6011808048110368,62.2803364521242102,165.745935171574274],"luv":[73.6011808048110368,-60.3629393869259374,15.3347923742089414],"rgb":[0,0.8,0.66666666666666663],"xyz":[0.288468466690638137,0.460858106782671639,0.454065870909270419],"hpluv":[165.745935171574274,107.375573062224,73.6011808048110368],"hsluv":[165.745935171574274,99.9999999999912887,73.6011808048110368]},"#00ccbb":{"lch":[74.043253901593,59.041045922693165,178.335616576813749],"luv":[74.043253901593,-59.0161369965186395,1.7148404163965667],"rgb":[0,0.8,0.733333333333333282],"xyz":[0.305606058797974756,0.467713143625606398,0.544323856007912221],"hpluv":[178.335616576813749,101.183074845522739,74.043253901593],"hsluv":[178.335616576813749,99.9999999999913882,74.043253901593]},"#00cccc":{"lch":[74.5357725840108714,58.9696734274942429,192.177050630061132],"luv":[74.5357725840108714,-57.64288292201784,-12.4386668330598962],"rgb":[0,0.8,0.8],"xyz":[0.32489843424169651,0.4754300938030952,0.645930366678182377],"hpluv":[192.177050630061132,100.392967527320835,74.5357725840108714],"hsluv":[192.177050630061132,99.9999999999914877,74.5357725840108714]},"#00ccdd":{"lch":[75.0788705190671,62.3850861111967063,205.58971515357635],"luv":[75.0788705190671,-56.2657375800620656,-26.9456071312750254],"rgb":[0,0.8,0.866666666666666696],"xyz":[0.346416759792330053,0.484037424023348706,0.759260214578188375],"hpluv":[205.58971515357635,105.439266222061761,75.0788705190671],"hsluv":[205.58971515357635,99.9999999999915588,75.0788705190671]},"#00ccee":{"lch":[75.672409810316779,68.9113069897593,217.179575991302841],"luv":[75.672409810316779,-54.9047659259632326,-41.6441461630807765],"rgb":[0,0.8,0.933333333333333348],"xyz":[0.370228940058504818,0.493562296129818723,0.884671030646711598],"hpluv":[217.179575991302841,115.555933163518176,75.672409810316779],"hsluv":[217.179575991302841,99.9999999999916,75.672409810316779]},"#00ccff":{"lch":[76.3160024985922263,77.7871508482342193,226.46755023570978],"luv":[76.3160024985922263,-53.5770891110031471,-56.3944710009551713],"rgb":[0,0.8,1],"xyz":[0.396399988468336184,0.504030715493751447,1.02250521893849333],"hpluv":[226.46755023570978,131.600547876461974,76.3160024985922263],"hsluv":[226.46755023570978,99.9999999999969731,76.3160024985922263]},"#00dd00":{"lch":[77.1074905447145369,119.34037845513086,127.715012949240503],"luv":[77.1074905447145369,-73.004607631587163,94.4057900468603],"rgb":[0,0.866666666666666696,0],"xyz":[0.258553190613681372,0.51710638122737,0.0861843968712247],"hpluv":[127.715012949240503,210.385995725156505,77.1074905447145369],"hsluv":[127.715012949240503,100.000000000002203,77.1074905447145369]},"#00dd11":{"lch":[77.1317715771024268,118.40111864948102,127.995077421524911],"luv":[77.1317715771024268,-72.8869911141770359,93.3076171797906255],"rgb":[0,0.866666666666666696,0.0666666666666666657],"xyz":[0.259564856113318476,0.517511047427224868,0.0915125018359803366],"hpluv":[127.995077421524911,208.997725019578468,77.1317715771024268],"hsluv":[127.995077421524911,99.9999999999909193,77.1317715771024268]},"#00dd22":{"lch":[77.1767486793617081,116.680170458435171,128.522366120948305],"luv":[77.1767486793617081,-72.6707542705971434,91.2864921658838568],"rgb":[0,0.866666666666666696,0.133333333333333331],"xyz":[0.261440214251795533,0.518261190682615669,0.101389388031959529],"hpluv":[128.522366120948305,206.449864525990506,77.1767486793617081],"hsluv":[128.522366120948305,99.9999999999909335,77.1767486793617081]},"#00dd33":{"lch":[77.2507083817471312,113.903613467858165,129.414072915332611],"luv":[77.2507083817471312,-72.3197155087496668,87.9993858488157485],"rgb":[0,0.866666666666666696,0.2],"xyz":[0.264527964984253239,0.519496290975598796,0.117651541889570666],"hpluv":[129.414072915332611,202.327676795977681,77.2507083817471312],"hsluv":[129.414072915332611,99.9999999999909335,77.2507083817471312]},"#00dd44":{"lch":[77.3572825066044,110.019432359123073,130.755032484191332],"luv":[77.3572825066044,-71.8235777962907633,83.3405613681826907],"rgb":[0,0.866666666666666696,0.266666666666666663],"xyz":[0.268985960228472154,0.521279489073286362,0.141130316842457304],"hpluv":[130.755032484191332,196.537344059934071,77.3572825066044],"hsluv":[130.755032484191332,99.9999999999909193,77.3572825066044]},"#00dd55":{"lch":[77.499442461574418,105.05363654061,132.652443872197409],"luv":[77.499442461574418,-71.1790335676869717,77.2645567564888],"rgb":[0,0.866666666666666696,0.333333333333333315],"xyz":[0.274948374267834139,0.523664454689031111,0.172532364116431219],"hpluv":[132.652443872197409,189.094972829508237,77.499442461574418],"hsluv":[132.652443872197409,99.9999999999909477,77.499442461574418]},"#00dd66":{"lch":[77.6796666807438,99.1151742217995,135.249123061333165],"luv":[77.6796666807438,-70.3890792332532413,69.7796194150732276],"rgb":[0,0.866666666666666696,0.4],"xyz":[0.282533370041342324,0.52669845299843443,0.212480008523575181],"hpluv":[135.249123061333165,180.139247328423863,77.6796666807438],"hsluv":[135.249123061333165,99.9999999999909903,77.6796666807438]},"#00dd77":{"lch":[77.9000291762011301,92.4061998396230138,138.73841210181584],"luv":[77.9000291762011301,-69.4623356452591878,60.9416909472136155],"rgb":[0,0.866666666666666696,0.466666666666666674],"xyz":[0.29184738306154423,0.530424058206515281,0.26153381042997309],"hpluv":[138.73841210181584,169.957910917592017,77.9000291762011301],"hsluv":[138.73841210181584,99.9999999999910187,77.9000291762011301]},"#00dd88":{"lch":[78.1622519856154,85.2389230174627386,143.3784757437721],"luv":[78.1622519856154,-68.4122000424903,50.8472701580255091],"rgb":[0,0.866666666666666696,0.533333333333333326],"xyz":[0.30298780016348803,0.534880225047292823,0.320206673833545286],"hpluv":[143.3784757437721,159.033158409305884,78.1622519856154],"hsluv":[143.3784757437721,99.9999999999911608,78.1622519856154]},"#00dd99":{"lch":[78.4677391993035798,78.0607504013048583,149.494791226300919],"luv":[78.4677391993035798,-67.2558167964087801,39.6249398770864545],"rgb":[0,0.866666666666666696,0.6],"xyz":[0.316044764272560785,0.540103010690922,0.388973351474663165],"hpluv":[149.494791226300919,148.113090063328627,78.4677391993035798],"hsluv":[149.494791226300919,99.9999999999911466,78.4677391993035798]},"#00ddaa":{"lch":[78.8176011215583401,71.4835041270533225,157.438879868811341],"luv":[78.8176011215583401,-66.0129273361177,27.4259874352573583],"rgb":[0,0.866666666666666696,0.66666666666666663],"xyz":[0.331102457237813286,0.546126087877023103,0.468277201091661766],"hpluv":[157.438879868811341,138.307036304413771,78.8176011215583401],"hsluv":[157.438879868811341,99.9999999999912319,78.8176011215583401]},"#00ddbb":{"lch":[79.21267314937,66.2909050184163675,167.440816272526462],"luv":[79.21267314937,-64.7046905962200896,14.4148223370296193],"rgb":[0,0.866666666666666696,0.733333333333333282],"xyz":[0.34824004934514996,0.552981124719957862,0.558535186190303512],"hpluv":[167.440816272526462,131.160951364069831,79.21267314937],"hsluv":[167.440816272526462,99.9999999999912319,79.21267314937]},"#00ddcc":{"lch":[79.6535319864315738,63.3571261830985,179.312753048293331],"luv":[79.6535319864315738,-63.3525685364998381,0.759932897798095253],"rgb":[0,0.866666666666666696,0.8],"xyz":[0.367532424788871714,0.560698074897446719,0.660141696860573668],"hpluv":[179.312753048293331,128.577362979680402,79.6535319864315738],"hsluv":[179.312753048293331,99.9999999999913314,79.6535319864315738]},"#00dddd":{"lch":[80.1405107346531338,63.4039144225475795,192.177050630061245],"luv":[80.1405107346531338,-61.9773555359817649,-13.3739958452306631],"rgb":[0,0.866666666666666696,0.866666666666666696],"xyz":[0.389050750339505202,0.569305405117700225,0.773471544760579666],"hpluv":[192.177050630061245,132.399857962191078,80.1405107346531338],"hsluv":[192.177050630061245,99.9999999999915,80.1405107346531338]},"#00ddee":{"lch":[80.6737137665329,66.6843941199945078,204.668960845135786],"luv":[80.6737137665329,-60.59840405426975,-27.8323884211582282],"rgb":[0,0.866666666666666696,0.933333333333333348],"xyz":[0.412862930605679967,0.578830277224170242,0.898882360829102889],"hpluv":[204.668960845135786,143.769811077134563,80.6737137665329],"hsluv":[204.668960845135786,99.9999999999914735,80.6737137665329]},"#00ddff":{"lch":[81.2530318771427,72.8883394631876627,215.643856178856652],"luv":[81.2530318771427,-59.2330695533496296,-42.475328144570291],"rgb":[0,0.866666666666666696,1],"xyz":[0.439033979015511333,0.589298696588103,1.03671654912088473],"hpluv":[215.643856178856652,162.831862460855405,81.2530318771427],"hsluv":[215.643856178856652,99.9999999999960636,81.2530318771427]},"#00ee00":{"lch":[82.4573791946470749,127.620478503329409,127.715012949240503],"luv":[82.4573791946470749,-78.0698291684561241,100.955873068518613],"rgb":[0,0.933333333333333348,0],"xyz":[0.305731966954196188,0.611463933908400925,0.101910655651395884],"hpluv":[127.715012949240503,307.908475174189959,82.4573791946470749],"hsluv":[127.715012949240503,100.000000000002217,82.4573791946470749]},"#00ee11":{"lch":[82.4790940690076582,126.770138643430457,127.951660682688043],"luv":[82.4790940690076582,-77.963182339567652,99.9620440525398],"rgb":[0,0.933333333333333348,0.0666666666666666657],"xyz":[0.306743632453833293,0.611868600108255833,0.107238760616151521],"hpluv":[127.951660682688043,306.293921948395678,82.4790940690076582],"hsluv":[127.951660682688043,99.9999999999909193,82.4790940690076582]},"#00ee22":{"lch":[82.5193223464761729,125.209295581045268,128.396138884075839],"luv":[82.5193223464761729,-77.7668632323815814,98.1309466116455],"rgb":[0,0.933333333333333348,0.133333333333333331],"xyz":[0.308618990592310349,0.612618743363646634,0.117115646812130714],"hpluv":[128.396138884075839,303.325246698320768,82.5193223464761729],"hsluv":[128.396138884075839,99.9999999999907914,82.5193223464761729]},"#00ee33":{"lch":[82.5854861516441616,122.683025615083068,129.144698003447559],"luv":[82.5854861516441616,-77.4474668310457304,95.1473313105795881],"rgb":[0,0.933333333333333348,0.2],"xyz":[0.311706741324768055,0.613853843656629761,0.133377800669741864],"hpluv":[129.144698003447559,298.506449004286878,82.5854861516441616],"hsluv":[129.144698003447559,99.9999999999910187,82.5854861516441616]},"#00ee44":{"lch":[82.680854944152216,119.131104912681948,130.263308305441626],"luv":[82.680854944152216,-76.994580956063885,90.9068460629701889],"rgb":[0,0.933333333333333348,0.266666666666666663],"xyz":[0.31616473656898697,0.615637041754317327,0.156856575622628502],"hpluv":[130.263308305441626,291.702339981024693,82.680854944152216],"hsluv":[130.263308305441626,99.9999999999908624,82.680854944152216]},"#00ee55":{"lch":[82.8081199656530913,114.556122924925475,131.832385242542614],"luv":[82.8081199656530913,-76.4036333062175572,85.3556683366704192],"rgb":[0,0.933333333333333348,0.333333333333333315],"xyz":[0.322127150608348956,0.618022007370062076,0.18825862289660239],"hpluv":[131.832385242542614,282.889526663711365,82.8081199656530913],"hsluv":[131.832385242542614,99.9999999999908908,82.8081199656530913]},"#00ee66":{"lch":[82.9695459516691756,109.025909834785097,133.955863991345211],"luv":[82.9695459516691756,-75.6753248662734137,78.4849936082476347],"rgb":[0,0.933333333333333348,0.4],"xyz":[0.329712146381857141,0.621056005679465395,0.22820626730374638],"hpluv":[133.955863991345211,272.166364406401044,82.9695459516691756],"hsluv":[133.955863991345211,99.9999999999909193,82.9695459516691756]},"#00ee77":{"lch":[83.167051813506589,102.679799146220446,136.771308753659213],"luv":[83.167051813506589,-74.8151450958190338,70.3266323450776127],"rgb":[0,0.933333333333333348,0.466666666666666674],"xyz":[0.339026159402059046,0.624781610887546246,0.277260069210144289],"hpluv":[136.771308753659213,259.776444306911685,83.167051813506589],"hsluv":[136.771308753659213,99.9999999999910898,83.167051813506589]},"#00ee88":{"lch":[83.4022585136551839,95.7389522528198427,140.46074817536558],"luv":[83.4022585136551839,-73.8327925713246742,60.9480575538504],"rgb":[0,0.933333333333333348,0.533333333333333326],"xyz":[0.350166576504002847,0.629237777728323788,0.335932932613716428],"hpluv":[140.46074817536558,246.149488794882956,83.4022585136551839],"hsluv":[140.46074817536558,99.999999999991033,83.4022585136551839]},"#00ee99":{"lch":[83.6765199188301096,88.5221307628359142,145.258543938418427],"luv":[83.6765199188301096,-72.7414610621927,50.4464813176313],"rgb":[0,0.933333333333333348,0.6],"xyz":[0.363223540613075602,0.634460563371953,0.404699610254834363],"hpluv":[145.258543938418427,231.96752956627526,83.6765199188301096],"hsluv":[145.258543938418427,99.9999999999911,83.6765199188301096]},"#00eeaa":{"lch":[83.9909442670452364,81.4671227341597159,151.444498676017645],"luv":[83.9909442670452364,-71.557012704351564,38.9420854527837363],"rgb":[0,0.933333333333333348,0.66666666666666663],"xyz":[0.378281233578328102,0.640483640558054068,0.484003459871832964],"hpluv":[151.444498676017645,218.263507316576721,83.9909442670452364],"hsluv":[151.444498676017645,99.9999999999911893,83.9909442670452364]},"#00eebb":{"lch":[84.3464103530465366,75.1511025294100392,159.294479220170871],"luv":[84.3464103530465366,-70.2970903476626319,26.5707978811035801],"rgb":[0,0.933333333333333348,0.733333333333333282],"xyz":[0.395418825685664777,0.647338677400988827,0.57426144497047471],"hpluv":[159.294479220170871,206.543608310772072,84.3464103530465366],"hsluv":[159.294479220170871,99.9999999999912,84.3464103530465366]},"#00eecc":{"lch":[84.743580800257746,70.2844566194431195,168.945018717488722],"luv":[84.743580800257746,-68.9802322625990456,13.4771064879770393],"rgb":[0,0.933333333333333348,0.8],"xyz":[0.414711201129386531,0.655055627578477684,0.675867955640744866],"hpluv":[168.945018717488722,198.871854707918374,84.743580800257746],"hsluv":[168.945018717488722,99.9999999999913,84.743580800257746]},"#00eedd":{"lch":[85.1829138464002114,67.6253239558150625,180.163192871920216],"luv":[85.1829138464002114,-67.6250496492668418,-0.192613766721418916],"rgb":[0,0.933333333333333348,0.866666666666666696],"xyz":[0.43622952668002,0.66366295779873119,0.789197803540750864],"hpluv":[180.163192871920216,197.760624486431198,85.1829138464002114],"hsluv":[180.163192871920216,99.9999999999913882,85.1829138464002114]},"#00eeee":{"lch":[85.6646745174910507,67.7744082531008303,192.177050630061217],"luv":[85.6646745174910507,-66.2495152673009358,-14.2958784586901881],"rgb":[0,0.933333333333333348,0.933333333333333348],"xyz":[0.460041706946194784,0.673187829905201207,0.914608619609274087],"hpluv":[192.177050630061217,205.696714727687493,85.6646745174910507],"hsluv":[192.177050630061217,99.9999999999914309,85.6646745174910507]},"#00eeff":{"lch":[86.1889457184888,70.9350767712842867,203.864647638418489],"luv":[86.1889457184888,-64.8703943995767247,-28.6987290135183635],"rgb":[0,0.933333333333333348,1],"xyz":[0.486212755356026149,0.683656249269133931,1.05244280790105593],"hpluv":[203.864647638418489,224.453619733699583,86.1889457184888],"hsluv":[203.864647638418489,99.9999999999939888,86.1889457184888]},"#00ff00":{"lch":[87.7355191096597338,135.789531996666284,127.715012949240474],"luv":[87.7355191096597338,-83.0671197143942663,107.418111239344327],"rgb":[0,1,0],"xyz":[0.35758433938387,0.71516867876775,0.11919477979462],"hpluv":[127.715012949240474,490.145375063702204,87.7355191096597338],"hsluv":[127.715012949240474,100.000000000002217,87.7355191096597338]},"#00ff11":{"lch":[87.7550810882892165,135.01527678270574,127.917210072153054],"luv":[87.7550810882892165,-82.9698837721702915,106.513489059100834],"rgb":[0,1,0.0666666666666666657],"xyz":[0.358596004883507125,0.715573344967604941,0.124522884759375632],"hpluv":[127.917210072153054,488.208403570135204,87.7550810882892165],"hsluv":[127.917210072153054,99.9999999999917719,87.7550810882892165]},"#00ff22":{"lch":[87.7913242833811864,133.592052176160422,128.296258949772664],"luv":[87.7913242833811864,-82.7907071985999892,104.845291769319132],"rgb":[0,1,0.133333333333333331],"xyz":[0.360471363021984181,0.716323488222995741,0.134399770955354825],"hpluv":[128.296258949772664,484.641757887342919,87.7913242833811864],"hsluv":[128.296258949772664,99.9999999999919,87.7913242833811864]},"#00ff33":{"lch":[87.850943105558116,131.282721750620482,128.932531697131338],"luv":[87.850943105558116,-82.4986966230128616,102.123053644879462],"rgb":[0,1,0.2],"xyz":[0.363559113754441887,0.717558588515978868,0.150661924812965975],"hpluv":[128.932531697131338,478.837727878060548,87.850943105558116],"hsluv":[128.932531697131338,99.999999999991843,87.850943105558116]},"#00ff44":{"lch":[87.9368982766027756,128.022939247233296,129.878593634905172],"luv":[87.9368982766027756,-82.0835673214571528,98.245411848516369],"rgb":[0,1,0.266666666666666663],"xyz":[0.368017108998660802,0.719341786613666434,0.174140699765852613],"hpluv":[129.878593634905172,470.610169071279643,87.9368982766027756],"hsluv":[129.878593634905172,99.9999999999916724,87.9368982766027756]},"#00ff55":{"lch":[88.0516385770734189,123.799916713223595,131.196479790431113],"luv":[88.0516385770734189,-81.5399771501718362,93.1539129857171133],"rgb":[0,1,0.333333333333333315],"xyz":[0.373979523038022788,0.721726752229411184,0.205542747039826501],"hpluv":[131.196479790431113,459.892953467552729,88.0516385770734189],"hsluv":[131.196479790431113,99.9999999999917719,88.0516385770734189]},"#00ff66":{"lch":[88.197238997611,118.653311588493224,132.964137709394919],"luv":[88.197238997611,-80.8670327043222557,86.8281715373192498],"rgb":[0,1,0.4],"xyz":[0.381564518811531,0.724760750538814502,0.245490391446970491],"hpluv":[132.964137709394919,446.748834194207859,88.197238997611],"hsluv":[132.964137709394919,99.9999999999917719,88.197238997611]},"#00ff77":{"lch":[88.3754745956423164,112.679107800887323,135.2824164931273],"luv":[88.3754745956423164,-80.0679233099649537,79.2824633297525452],"rgb":[0,1,0.466666666666666674],"xyz":[0.390878531831732878,0.728486355746895353,0.2945441933533684],"hpluv":[135.2824164931273,431.3936933951166,88.3754745956423164],"hsluv":[135.2824164931273,99.9999999999915445,88.3754745956423164]},"#00ff88":{"lch":[88.587864465470858,106.036155512425779,138.2828406903445],"luv":[88.587864465470858,-79.1495135423216425,70.5621767086956311],"rgb":[0,1,0.533333333333333326],"xyz":[0.402018948933676679,0.732942522587672896,0.353217056756940539],"hpluv":[138.2828406903445,414.239888157084465,88.587864465470858],"hsluv":[138.2828406903445,99.9999999999914,88.587864465470858]},"#00ff99":{"lch":[88.8357000190422,98.9561663203651278,142.1349886621461],"luv":[88.8357000190422,-78.1218422027535695,60.739613298668921],"rgb":[0,1,0.6],"xyz":[0.415075913042749378,0.738165308231302109,0.421983734398058474],"hpluv":[142.1349886621461,395.967958147281365,88.8357000190422],"hsluv":[142.1349886621461,99.9999999999915303,88.8357000190422]},"#00ffaa":{"lch":[89.1200644426462674,91.7580340339716258,147.049061977519528],"luv":[89.1200644426462674,-76.997527549554917,49.9090929694682828],"rgb":[0,1,0.66666666666666663],"xyz":[0.430133606008001934,0.744188385417403175,0.501287584015057],"hpluv":[147.049061977519528,377.639750156066668,89.1200644426462674],"hsluv":[147.049061977519528,99.9999999999913,89.1200644426462674]},"#00ffbb":{"lch":[89.4418470234824241,84.8653215767476468,153.262243037154207],"luv":[89.4418470234824241,-75.791105608661141,38.1815546689964407],"rgb":[0,1,0.733333333333333282],"xyz":[0.447271198115338608,0.751043422260337934,0.591545569113698821],"hpluv":[153.262243037154207,360.863433446149145,89.4418470234824241],"hsluv":[153.262243037154207,99.9999999999912,89.4418470234824241]},"#00ffcc":{"lch":[89.801754487955634,78.8187300060100569,160.986090443114392],"luv":[89.801754487955634,-74.5183415032407197,25.6789598575702236],"rgb":[0,1,0.8],"xyz":[0.466563573559060307,0.758760372437826791,0.693152079783969],"hpluv":[160.986090443114392,347.997153451554084,89.801754487955634],"hsluv":[160.986090443114392,99.9999999999912461,89.801754487955634]},"#00ffdd":{"lch":[90.2003206582774339,74.260092310928,170.286849800478649],"luv":[90.2003206582774339,-73.1955569867131572,12.5288366352336915],"rgb":[0,1,0.866666666666666696],"xyz":[0.488081899109693906,0.767367702658080297,0.806481927683975],"hpluv":[170.286849800478649,342.308208972166483,90.2003206582774339],"hsluv":[170.286849800478649,99.9999999999913314,90.2003206582774339]},"#00ffee":{"lch":[90.6379152481429458,71.8480695265374294,180.909719109957],"luv":[90.6379152481429458,-71.8390133400929898,-1.14072652818200426],"rgb":[0,1,0.933333333333333348],"xyz":[0.511894079375868616,0.776892574764550314,0.931892743752498198],"hpluv":[180.909719109957,347.895283980605143,90.6379152481429458],"hsluv":[180.909719109957,99.999999999991374,90.6379152481429458]},"#00ffff":{"lch":[91.114752316705065,72.0862882649682,192.17705063006116],"luv":[91.114752316705065,-70.4643799638718207,-15.205397466925735],"rgb":[0,1,1],"xyz":[0.5380651277857,0.787360994128483,1.06972693204428],"hpluv":[192.17705063006116,369.190533917051368,91.114752316705065],"hsluv":[192.17705063006116,99.9999999999914877,91.114752316705065]},"#ff0000":{"lch":[53.23711559542933,179.038096923620287,12.1770506300617765],"luv":[53.23711559542933,175.009822162883836,37.7650936255616],"rgb":[1,0,0],"xyz":[0.41239079926595,0.21263900587151,0.019330818715591],"hpluv":[12.1770506300617765,426.746789183125202,53.23711559542933],"hsluv":[12.1770506300617765,100.000000000002203,53.23711559542933]},"#ff0011":{"lch":[53.2810087118185294,177.689248384364731,11.7592124156573554],"luv":[53.2810087118185294,173.960033822228979,36.2129206771479346],"rgb":[1,0,0.0666666666666666657],"xyz":[0.413402464765587119,0.213043672071364848,0.0246589236803466325],"hpluv":[11.7592124156573554,423.182830024727082,53.2810087118185294],"hsluv":[11.7592124156573554,99.9999999999986073,53.2810087118185294]},"#ff0022":{"lch":[53.362228057366309,175.255817292919801,10.9800713678561319],"luv":[53.362228057366309,172.047495148921342,33.3805468497921751],"rgb":[1,0,0.133333333333333331],"xyz":[0.415277822904064176,0.213793815326755676,0.0345358098763258251],"hpluv":[10.9800713678561319,416.75211680728853,53.362228057366309],"hsluv":[10.9800713678561319,99.9999999999986215,53.362228057366309]},"#ff0033":{"lch":[53.4955416476677499,171.43316235878109,9.68478250033725],"luv":[53.4955416476677499,168.989928530586468,28.8397852204116347],"rgb":[1,0,0.2],"xyz":[0.418365573636521881,0.215028915619738775,0.0507979637339369683],"hpluv":[9.68478250033725,406.646064741178918,53.4955416476677499],"hsluv":[9.68478250033725,99.9999999999986215,53.4955416476677499]},"#ff0044":{"lch":[53.6871179383659722,166.29954793496961,7.78930386328567259],"luv":[53.6871179383659722,164.765128442936401,22.5386799204815809],"rgb":[1,0,0.266666666666666663],"xyz":[0.422823568880740797,0.216812113717426369,0.0742767386868236],"hpluv":[7.78930386328567259,393.061316669856922,53.6871179383659722],"hsluv":[7.78930386328567259,99.9999999999987637,53.6871179383659722]},"#ff0055":{"lch":[53.9417095924386558,160.100368719231,5.2128969892355661],"luv":[53.9417095924386558,159.438189183864722,14.5461986032050437],"rgb":[1,0,0.333333333333333315],"xyz":[0.428785982920102782,0.219197079333171202,0.105678785960797522],"hpluv":[5.2128969892355661,376.623098544524225,53.9417095924386558],"hsluv":[5.2128969892355661,99.9999999999988,53.9417095924386558]},"#ff0066":{"lch":[54.2629295430466669,153.227313284557312,1.88082466234467849],"luv":[54.2629295430466669,153.144763004983872,5.02902580538230204],"rgb":[1,0,0.4],"xyz":[0.436370978693610967,0.222231077642574493,0.145626430367941484],"hpluv":[1.88082466234467849,358.321012364802243,54.2629295430466669],"hsluv":[1.88082466234467849,99.99999999999892,54.2629295430466669]},"#ff0077":{"lch":[54.6533978532017244,146.184101175375929,357.735148851436577],"luv":[54.6533978532017244,146.06990602550718,-5.77702260269427281],"rgb":[1,0,0.466666666666666674],"xyz":[0.445684991713812872,0.225956682850655316,0.194680232274339393],"hpluv":[357.735148851436577,339.408176675868503,54.6533978532017244],"hsluv":[357.735148851436577,99.9999999999990479,54.6533978532017244]},"#ff0088":{"lch":[55.1148373309560782,139.538803635294983,352.754628092234327],"luv":[55.1148373309560782,138.424605854630585,-17.5984719211521572],"rgb":[1,0,0.533333333333333326],"xyz":[0.456825408815756673,0.230412849691432914,0.253353095677911533],"hpluv":[352.754628092234327,321.26675874055752,55.1148373309560782],"hsluv":[352.754628092234327,99.9999999999991616,55.1148373309560782]},"#ff0099":{"lch":[55.6481496721619493,133.863929319774144,346.981903482220218],"luv":[55.6481496721619493,130.423488026195145,-30.1540269949209758],"rgb":[1,0,0.6],"xyz":[0.469882372924829372,0.235635635335062071,0.322119773319029468],"hpluv":[346.981903482220218,305.247535929832054,55.6481496721619493],"hsluv":[346.981903482220218,99.9999999999993463,55.6481496721619493]},"#ff00aa":{"lch":[56.2534865150640258,129.667114810270476,340.549180922221581],"luv":[56.2534865150640258,122.266710865918853,-43.1788383036143273],"rgb":[1,0,0.66666666666666663],"xyz":[0.484940065890081928,0.241658712521163166,0.401423622936028068],"hpluv":[340.549180922221581,292.495864077812769,56.2534865150640258],"hsluv":[340.549180922221581,99.9999999999994742,56.2534865150640258]},"#ff00bb":{"lch":[56.9303217870161689,127.321325924901956,333.685619315648239],"luv":[56.9303217870161689,114.127678427447606,-56.4410582115202928],"rgb":[1,0,0.733333333333333282],"xyz":[0.502077657997418547,0.248513749364097924,0.491681608034669815],"hpluv":[333.685619315648239,283.789838362024682,56.9303217870161689],"hsluv":[333.685619315648239,99.9999999999995879,56.9303217870161689]},"#ff00cc":{"lch":[57.6775275187384153,127.012826563172382,326.690520651062286],"luv":[57.6775275187384153,106.146716951325558,-69.7505024499586312],"rgb":[1,0,0.8],"xyz":[0.521370033441140301,0.256230699541586726,0.593288118704939915],"hpluv":[326.690520651062286,279.434659423159303,57.6775275187384153],"hsluv":[326.690520651062286,99.9999999999997726,57.6775275187384153]},"#ff00dd":{"lch":[58.4934529509690151,128.727977043064641,319.874434183361473],"luv":[58.4934529509690151,98.4297766537384149,-82.9606602040687],"rgb":[1,0,0.866666666666666696],"xyz":[0.542888358991773901,0.264838029761840288,0.706617966604945913],"hpluv":[319.874434183361473,279.257606739571429,58.4934529509690151],"hsluv":[319.874434183361473,99.9999999999999716,58.4934529509690151]},"#ff00ee":{"lch":[59.3760054748790367,132.286429048213932,313.494468670954461],"luv":[59.3760054748790367,91.0507046157626,-95.9659757377649214],"rgb":[1,0,0.933333333333333348],"xyz":[0.56670053925794861,0.274362901868310305,0.832028782673469136],"hpluv":[313.494468670954461,282.711609251625362,59.3760054748790367],"hsluv":[313.494468670954461,100.000000000000156,59.3760054748790367]},"#ff00ff":{"lch":[60.3227313545512942,137.405400537897037,307.715012949243601],"luv":[60.3227313545512942,84.0556019897527875,-108.696365491768773],"rgb":[1,0,1],"xyz":[0.59287158766778,0.284831321232243,0.969862970965251],"hpluv":[307.715012949243601,289.042783730483336,60.3227313545512942],"hsluv":[307.715012949243601,100.000000000000384,60.3227313545512942]},"#ff1100":{"lch":[53.6695097624616864,176.771562285449363,12.5954542867932275],"luv":[53.6695097624616864,172.517389506501019,38.5478345786208934],"rgb":[1,0.0666666666666666657,0],"xyz":[0.414395199526878422,0.216647806393366865,0.019998952135900451],"hpluv":[12.5954542867932275,417.949777534481484,53.6695097624616864],"hsluv":[12.5954542867932275,100.000000000002245,53.6695097624616864]},"#ff1111":{"lch":[53.7128602445647658,175.445128796306847,12.1770506300617765],"luv":[53.7128602445647658,171.497694164414924,37.0072170615611569],"rgb":[1,0.0666666666666666657,0.0666666666666666657],"xyz":[0.415406865026515526,0.217052472593221718,0.0253270571006560807],"hpluv":[12.1770506300617765,414.478837946685644,53.7128602445647658],"hsluv":[12.1770506300617765,99.9999999999986215,53.7128602445647658]},"#ff1122":{"lch":[53.7930781791116743,173.051572118951754,11.3967197916969329],"luv":[53.7930781791116743,169.639425839354459,34.1952016185739538],"rgb":[1,0.0666666666666666657,0.133333333333333331],"xyz":[0.417282223164992583,0.217802615848612546,0.0352039432966352803],"hpluv":[11.3967197916969329,408.214548988049671,53.7930781791116743],"hsluv":[11.3967197916969329,99.9999999999987,53.7930781791116743]},"#ff1133":{"lch":[53.9247555399676912,169.290109899416,10.0990648343251674],"luv":[53.9247555399676912,166.667136068812482,29.6851320424264138],"rgb":[1,0.0666666666666666657,0.2],"xyz":[0.420369973897450289,0.219037716141595645,0.0514660971542464235],"hpluv":[10.0990648343251674,398.366425235699353,53.9247555399676912],"hsluv":[10.0990648343251674,99.9999999999987,53.9247555399676912]},"#ff1144":{"lch":[54.1139966850166445,164.235972949617775,8.19925898659400154],"luv":[54.1139966850166445,162.55716522781,23.4226993279181244],"rgb":[1,0.0666666666666666657,0.266666666666666663],"xyz":[0.424827969141669204,0.220820914239283239,0.074944872107133062],"hpluv":[8.19925898659400154,385.121711929848118,54.1139966850166445],"hsluv":[8.19925898659400154,99.9999999999988489,54.1139966850166445]},"#ff1155":{"lch":[54.365514290002,158.12888296709221,5.61535385404219856],"luv":[54.365514290002,157.370056367003059,15.4728467796533362],"rgb":[1,0.0666666666666666657,0.333333333333333315],"xyz":[0.430790383181031189,0.223205879855028072,0.106346919381106964],"hpluv":[5.61535385404219856,369.085538340858477,54.365514290002],"hsluv":[5.61535385404219856,99.9999999999988916,54.365514290002]},"#ff1166":{"lch":[54.6829025612910442,151.353597545298243,2.27091305216541839],"luv":[54.6829025612910442,151.234730451097789,5.99731567352495443],"rgb":[1,0.0666666666666666657,0.4],"xyz":[0.438375378954539374,0.226239878164431363,0.146294563788250925],"hpluv":[2.27091305216541839,351.221033033747858,54.6829025612910442],"hsluv":[2.27091305216541839,99.999999999999,54.6829025612910442]},"#ff1177":{"lch":[55.0687823252034292,144.407362773795285,358.105880212246802],"luv":[55.0687823252034292,144.328460520523464,-4.77303960367160496],"rgb":[1,0.0666666666666666657,0.466666666666666674],"xyz":[0.44768939197474128,0.229965483372512186,0.195348365694648834],"hpluv":[358.105880212246802,332.753927221166919,55.0687823252034292],"hsluv":[358.105880212246802,99.9999999999990905,55.0687823252034292]},"#ff1188":{"lch":[55.5248949860500716,137.85386672349216,353.096828842063303],"luv":[55.5248949860500716,136.85452147125136,-16.5689023019976744],"rgb":[1,0.0666666666666666657,0.533333333333333326],"xyz":[0.45882980907668508,0.234421650213289784,0.254021229098221],"hpluv":[353.096828842063303,315.043506786171235,55.5248949860500716],"hsluv":[353.096828842063303,99.9999999999992,55.5248949860500716]},"#ff1199":{"lch":[56.0521767726019249,132.264360312052816,347.28491936957397],"luv":[56.0521767726019249,129.020794472918823,-29.1117777254046715],"rgb":[1,0.0666666666666666657,0.6],"xyz":[0.47188677318575778,0.239644435856918941,0.322787906739338937],"hpluv":[347.28491936957397,299.426117704125659,56.0521767726019249],"hsluv":[347.28491936957397,99.9999999999993605,56.0521767726019249]},"#ff11aa":{"lch":[56.6508275614924912,128.148315107741439,340.802676353967],"luv":[56.6508275614924912,121.022209124101792,-42.1380536294115586],"rgb":[1,0.0666666666666666657,0.66666666666666663],"xyz":[0.486944466151010336,0.245667513043020036,0.402091756356337537],"hpluv":[340.802676353967,287.042344439162662,56.6508275614924912],"hsluv":[340.802676353967,99.9999999999995168,56.6508275614924912]},"#ff11bb":{"lch":[57.3203806938084455,125.882364893771992,333.882217516525884],"luv":[57.3203806938084455,113.02864145467457,-55.4156656746030762],"rgb":[1,0.0666666666666666657,0.733333333333333282],"xyz":[0.504082058258347,0.252522549885954795,0.492349741454979284],"hpluv":[333.882217516525884,278.673167271969135,57.3203806938084455],"hsluv":[333.882217516525884,99.9999999999996163,57.3203806938084455]},"#ff11cc":{"lch":[58.0597760671947754,125.656277294901628,326.828156543045054],"luv":[58.0597760671947754,105.178488239830273,-68.7530772780178694],"rgb":[1,0.0666666666666666657,0.8],"xyz":[0.523374433702068709,0.260239500063443596,0.593956252125249384],"hpluv":[326.828156543045054,274.630115267561905,58.0597760671947754],"hsluv":[326.828156543045054,99.9999999999997868,58.0597760671947754]},"#ff11dd":{"lch":[58.8674364673636177,127.458097444326981,319.957026901825429],"luv":[58.8674364673636177,97.5770916499376568,-82.0016938195011846],"rgb":[1,0.0666666666666666657,0.866666666666666696],"xyz":[0.544892759252702308,0.268846830283697158,0.707286100025255382],"hpluv":[319.957026901825429,274.746161939823423,58.8674364673636177],"hsluv":[319.957026901825429,100.000000000000028,58.8674364673636177]},"#ff11ee":{"lch":[59.7413458233107519,131.106916258937218,313.5305052972667],"luv":[59.7413458233107519,90.2986667085849319,-95.0535337669245877],"rgb":[1,0.0666666666666666657,0.933333333333333348],"xyz":[0.568704939518877,0.278371702390167175,0.832696916093778605],"hpluv":[313.5305052972667,278.477381794919836,59.7413458233107519],"hsluv":[313.5305052972667,100.000000000000199,59.7413458233107519]},"#ff11ff":{"lch":[60.6791274610807534,136.317870534400242,307.715012949243601],"luv":[60.6791274610807534,83.3903225409976,-107.83606045076894],"rgb":[1,0.0666666666666666657,1],"xyz":[0.594875987928708438,0.288840121754099899,0.97053110438556045],"hpluv":[307.715012949243601,285.070838096226908,60.6791274610807534],"hsluv":[307.715012949243601,100.000000000000398,60.6791274610807534]},"#ff2200":{"lch":[54.4571507543770679,172.725520469573979,13.3786813235288875],"luv":[54.4571507543770679,168.038102184023103,39.9662562154253393],"rgb":[1,0.133333333333333331,0],"xyz":[0.418110823261646336,0.224079053862902833,0.0212374933808230602],"hpluv":[13.3786813235288875,402.476865089738737,54.4571507543770679],"hsluv":[13.3786813235288875,100.00000000000216,54.4571507543770679]},"#ff2211":{"lch":[54.4995382972682876,171.437527349711331,12.9593558016228254],"luv":[54.4995382972682876,167.070909686171433,38.446546274251638],"rgb":[1,0.133333333333333331,0.0666666666666666657],"xyz":[0.41912248876128344,0.224483720062757686,0.0265655983455786934],"hpluv":[12.9593558016228254,399.164948195999784,54.4995382972682876],"hsluv":[12.9593558016228254,99.999999999998721,54.4995382972682876]},"#ff2222":{"lch":[54.5779789595956117,169.112342257331477,12.1770506300617924],"luv":[54.5779789595956117,165.307392407273255,35.6714216042562171],"rgb":[1,0.133333333333333331,0.133333333333333331],"xyz":[0.420997846899760497,0.225233863318148514,0.036442484541557886],"hpluv":[12.1770506300617924,393.185217729465933,54.5779789595956117],"hsluv":[12.1770506300617924,99.9999999999987494,54.5779789595956117]},"#ff2233":{"lch":[54.7067518227456,165.455769736233549,10.8753803895539445],"luv":[54.7067518227456,162.484163442906947,31.2171166072114978],"rgb":[1,0.133333333333333331,0.2],"xyz":[0.424085597632218203,0.226468963611131613,0.0527046383991690293],"hpluv":[10.8753803895539445,383.778210348001721,54.7067518227456],"hsluv":[10.8753803895539445,99.9999999999987779,54.7067518227456]},"#ff2244":{"lch":[54.8918465894738148,160.537768894747074,8.96806115251763103],"luv":[54.8918465894738148,158.575257224785304,25.0252480066910863],"rgb":[1,0.133333333333333331,0.266666666666666663],"xyz":[0.428543592876437118,0.228252161708819207,0.0761834133520556678],"hpluv":[8.96806115251763103,371.115171122776133,54.8918465894738148],"hsluv":[8.96806115251763103,99.9999999999988347,54.8918465894738148]},"#ff2255":{"lch":[55.1379036013317432,154.588213330392733,6.3708707633682522],"luv":[55.1379036013317432,153.633547891150499,17.1536778289841081],"rgb":[1,0.133333333333333331,0.333333333333333315],"xyz":[0.434506006915799103,0.23063712732456404,0.107585460626029583],"hpluv":[6.3708707633682522,355.76683037739258,55.1379036013317432],"hsluv":[6.3708707633682522,99.9999999999989342,55.1379036013317432]},"#ff2266":{"lch":[55.4484819892530254,147.979820726080618,3.00414546296194196],"luv":[55.4484819892530254,147.776458796099433,7.75535736170059753],"rgb":[1,0.133333333333333331,0.4],"xyz":[0.442091002689307289,0.23367112563396733,0.147533105033173545],"hpluv":[3.00414546296194196,338.650844053811227,55.4484819892530254],"hsluv":[3.00414546296194196,99.9999999999990763,55.4484819892530254]},"#ff2277":{"lch":[55.8262016697843961,141.198613687408425,358.803757025958646],"luv":[55.8262016697843961,141.167840095073672,-2.94778393674187145],"rgb":[1,0.133333333333333331,0.466666666666666674],"xyz":[0.451405015709509194,0.237396730842048154,0.196586906939571454],"hpluv":[358.803757025958646,320.945787006908631,55.8262016697843961],"hsluv":[358.803757025958646,99.9999999999991616,55.8262016697843961]},"#ff2288":{"lch":[56.2728344602164299,134.800794021339357,353.742009538390391],"luv":[56.2728344602164299,133.997535770156077,-14.694028593592142],"rgb":[1,0.133333333333333331,0.533333333333333326],"xyz":[0.462545432811453,0.241852897682825752,0.255259770343143622],"hpluv":[353.742009538390391,303.971583410200083,56.2728344602164299],"hsluv":[353.742009538390391,99.9999999999992752,56.2728344602164299]},"#ff2299":{"lch":[56.7893750973531866,129.355771045476672,347.857065824102108],"luv":[56.7893750973531866,126.461550291410035,-27.2101415039127161],"rgb":[1,0.133333333333333331,0.6],"xyz":[0.47560239692052575,0.247075683326454909,0.324026447984261501],"hpluv":[347.857065824102108,289.040064659782502,56.7893750973531866],"hsluv":[347.857065824102108,99.9999999999994316,56.7893750973531866]},"#ff22aa":{"lch":[57.3761062638205743,125.376808270539939,341.281866819384959],"luv":[57.3761062638205743,118.745473604842076,-40.2350164715945766],"rgb":[1,0.133333333333333331,0.66666666666666663],"xyz":[0.49066008988577825,0.253098760512556031,0.403330297601260102],"hpluv":[341.281866819384959,277.284417349873706,57.3761062638205743],"hsluv":[341.281866819384959,99.999999999999531,57.3761062638205743]},"#ff22bb":{"lch":[58.0326640845464112,123.247659375493754,334.254064951888324],"luv":[58.0326640845464112,111.01274832153284,-53.5364852379920606],"rgb":[1,0.133333333333333331,0.733333333333333282],"xyz":[0.507797681993114924,0.25995379735549079,0.493588282699901848],"hpluv":[334.254064951888324,269.491764983662165,58.0326640845464112],"hsluv":[334.254064951888324,99.9999999999997726,58.0326640845464112]},"#ff22cc":{"lch":[58.7581065478829316,123.164795236141373,327.088444575119183],"luv":[58.7581065478829316,103.398114188518221,-66.9208246199849128],"rgb":[1,0.133333333333333331,0.8],"xyz":[0.527090057436836679,0.267670747532979592,0.595194793370172],"hpluv":[327.088444575119183,265.985598747154427,58.7581065478829316],"hsluv":[327.088444575119183,99.9999999999998721,58.7581065478829316]},"#ff22dd":{"lch":[59.550985046801415,125.119413407905796,320.113090366201448],"luv":[59.550985046801415,96.0055877759378,-80.2358693312108358],"rgb":[1,0.133333333333333331,0.866666666666666696],"xyz":[0.548608382987470167,0.276278077753233098,0.708524641270178],"hpluv":[320.113090366201448,266.609166102550091,59.550985046801415],"hsluv":[320.113090366201448,100.000000000000028,59.550985046801415]},"#ff22ee":{"lch":[60.4094179672163705,128.929416765847606,313.598505937960113],"luv":[60.4094179672163705,88.9098108664153273,-93.3693742041783281],"rgb":[1,0.133333333333333331,0.933333333333333348],"xyz":[0.572420563253645,0.285802949859703115,0.833935457338701225],"hpluv":[313.598505937960113,270.823716236275,60.4094179672163705],"hsluv":[313.598505937960113,100.000000000000227,60.4094179672163705]},"#ff22ff":{"lch":[61.3311646171935223,134.305840538380238,307.715012949243601],"luv":[61.3311646171935223,82.1594946996257249,-106.244417422389745],"rgb":[1,0.133333333333333331,1],"xyz":[0.598591611663476297,0.296271369223635839,0.97176964563048307],"hpluv":[307.715012949243601,277.877263991976,61.3311646171935223],"hsluv":[307.715012949243601,100.000000000000398,61.3311646171935223]},"#ff3300":{"lch":[55.7168894472394811,166.476173059961667,14.689559134518138],"luv":[55.7168894472394811,161.034729269155179,42.2153072463082495],"rgb":[1,0.2,0],"xyz":[0.424228545350657182,0.236314498040924637,0.0232767340771599419],"hpluv":[14.689559134518138,379.144314271077917,55.7168894472394811],"hsluv":[14.689559134518138,100.000000000002203,55.7168894472394811]},"#ff3311":{"lch":[55.7578022303213,165.243627812887922,14.2690908575150317],"luv":[55.7578022303213,160.145669888681539,40.7286256663500339],"rgb":[1,0.2,0.0666666666666666657],"xyz":[0.425240210850294287,0.236719164240779489,0.0286048390419155751],"hpluv":[14.2690908575150317,376.06108995847427,55.7578022303213],"hsluv":[14.2690908575150317,99.9999999999988,55.7578022303213]},"#ff3322":{"lch":[55.8335204651182835,163.01701714894287,13.4842232594842422],"luv":[55.8335204651182835,158.523316810386802,38.0119179675594552],"rgb":[1,0.2,0.133333333333333331],"xyz":[0.427115568988771344,0.237469307496170318,0.0384817252378947677],"hpluv":[13.4842232594842422,370.490653647292163,55.8335204651182835],"hsluv":[13.4842232594842422,99.9999999999987494,55.8335204651182835]},"#ff3333":{"lch":[55.9578428172660267,159.511521097175432,12.1770506300617853],"luv":[55.9578428172660267,155.922585303490365,33.6462888742638455],"rgb":[1,0.2,0.2],"xyz":[0.430203319721229049,0.238704407789153417,0.0547438790955059179],"hpluv":[12.1770506300617853,361.718248261175631,55.9578428172660267],"hsluv":[12.1770506300617853,99.9999999999988773,55.9578428172660267]},"#ff3344":{"lch":[56.1365811585215368,154.789240798906889,10.2588910791084782],"luv":[56.1365811585215368,152.31463646984821,27.5673826135157078],"rgb":[1,0.2,0.266666666666666663],"xyz":[0.434661314965447965,0.240487605886841,0.0782226540483925564],"hpluv":[10.2588910791084782,349.892100101075414,56.1365811585215368],"hsluv":[10.2588910791084782,99.9999999999989626,56.1365811585215368]},"#ff3355":{"lch":[56.3742616664660403,149.065442517766684,7.64169944339336649],"luv":[56.3742616664660403,147.741595680550319,19.8223878173745902],"rgb":[1,0.2,0.333333333333333315],"xyz":[0.44062372900480995,0.242872571502585843,0.109624701322366458],"hpluv":[7.64169944339336649,335.533149366899124,56.3742616664660403],"hsluv":[7.64169944339336649,99.9999999999990195,56.3742616664660403]},"#ff3366":{"lch":[56.674385203130754,142.694983818340035,4.24028319431916056],"luv":[56.674385203130754,142.304390380845462,10.550776523662277],"rgb":[1,0.2,0.4],"xyz":[0.448208724778318135,0.245906569811989134,0.14957234572951042],"hpluv":[4.24028319431916056,319.492902958598108,56.674385203130754],"hsluv":[4.24028319431916056,99.9999999999991758,56.674385203130754]},"#ff3377":{"lch":[57.0395646827704468,136.14730874514737,359.983392279567909],"luv":[57.0395646827704468,136.147303025702882,-0.0394635770517579934],"rgb":[1,0.2,0.466666666666666674],"xyz":[0.457522737798520041,0.249632175020069957,0.198626147635908329],"hpluv":[359.983392279567909,302.881107814185,57.0395646827704468],"hsluv":[359.983392279567909,99.9999999999992895,57.0395646827704468]},"#ff3388":{"lch":[57.4716120619286954,129.967879448766553,354.83565117969431],"luv":[57.4716120619286954,129.440287861866665,-11.6987848363070146],"rgb":[1,0.2,0.533333333333333326],"xyz":[0.468663154900463841,0.254088341860847555,0.257299011039480496],"hpluv":[354.83565117969431,286.960407533356261,57.4716120619286954],"hsluv":[354.83565117969431,99.9999999999993889,57.4716120619286954]},"#ff3399":{"lch":[57.9716047421228353,124.724336507791776,348.82951213288959],"luv":[57.9716047421228353,122.361442957788952,-24.1627273832372573],"rgb":[1,0.2,0.6],"xyz":[0.481720119009536596,0.259311127504476713,0.326065688680598431],"hpluv":[348.82951213288959,273.007894976207297,57.9716047421228353],"hsluv":[348.82951213288959,99.9999999999995737,57.9716047421228353]},"#ff33aa":{"lch":[58.5399451724763935,120.937271340322638,342.098036856126953],"luv":[58.5399451724763935,115.081956962752116,-37.174813797329108],"rgb":[1,0.2,0.66666666666666663],"xyz":[0.496777811974789096,0.265334204690577835,0.405369538297597032],"hpluv":[342.098036856126953,262.148381504719794,58.5399451724763935],"hsluv":[342.098036856126953,99.9999999999996732,58.5399451724763935]},"#ff33bb":{"lch":[59.1764201449825862,119.003132790944747,334.888094830460091],"luv":[59.1764201449825862,107.755032536641394,-50.5034511403585498],"rgb":[1,0.2,0.733333333333333282],"xyz":[0.513915404082125771,0.272189241533512594,0.495627523396238778],"hpluv":[334.888094830460091,255.181409444549388,59.1764201449825862],"hsluv":[334.888094830460091,99.9999999999998295,59.1764201449825862]},"#ff33cc":{"lch":[59.8802624584280494,119.13012657470172,327.532171012183937],"luv":[59.8802624584280494,100.509254029343069,-63.9521454852723039],"rgb":[1,0.2,0.8],"xyz":[0.533207779525847525,0.279906191711001395,0.597234034066508879],"hpluv":[327.532171012183937,252.451080902073329,59.8802624584280494],"hsluv":[327.532171012183937,100.000000000000043,59.8802624584280494]},"#ff33dd":{"lch":[60.650215463767978,121.314823858854638,320.378757122173454],"luv":[60.650215463767978,93.4460015542912146,-77.3636302238999747],"rgb":[1,0.2,0.866666666666666696],"xyz":[0.554726105076481,0.288513521931254902,0.710563881966514876],"hpluv":[320.378757122173454,253.817084039055629,60.650215463767978],"hsluv":[320.378757122173454,100.000000000000171,60.650215463767978]},"#ff33ee":{"lch":[61.484599762034378,125.372817174433621,313.71398784253438],"luv":[61.484599762034378,86.6400000332951805,-90.6192787462169775],"rgb":[1,0.2,0.933333333333333348],"xyz":[0.578538285342655723,0.298038394037724919,0.8359746980350381],"hpluv":[313.71398784253438,258.747618308410438,61.484599762034378],"hsluv":[313.71398784253438,100.000000000000242,61.484599762034378]},"#ff33ff":{"lch":[62.3813806681475,131.007738376122177,307.715012949243658],"luv":[62.3813806681475,80.141932350642,-103.635409940481253],"rgb":[1,0.2,1],"xyz":[0.604709333752487144,0.308506813401657642,0.97380888632682],"hpluv":[307.715012949243658,266.490230971107223,62.3813806681475],"hsluv":[307.715012949243658,100.000000000000597,62.3813806681475]},"#ff4400":{"lch":[57.461133143380664,158.273971604467,16.6278363926044079],"luv":[57.461133143380664,151.655533944896689,45.2907177172089845],"rgb":[1,0.266666666666666663,0],"xyz":[0.433061115833623222,0.253979639006856939,0.0262209242381485352],"hpluv":[16.6278363926044079,349.522099776260404,57.461133143380664],"hsluv":[16.6278363926044079,100.000000000002203,57.461133143380664]},"#ff4411":{"lch":[57.500127691013958,157.107055615985729,16.2066010587584444],"luv":[57.500127691013958,150.863862649088418,43.84885256105823],"rgb":[1,0.266666666666666663,0.0666666666666666657],"xyz":[0.434072781333260327,0.254384305206711792,0.031549029202904165],"hpluv":[16.2066010587584444,346.709871357654038,57.500127691013958],"hsluv":[16.2066010587584444,99.9999999999990195,57.500127691013958]},"#ff4422":{"lch":[57.5723039440668174,154.996970095022306,15.4196600073807488],"luv":[57.5723039440668174,149.417734299680745,41.2116660108183908],"rgb":[1,0.266666666666666663,0.133333333333333331],"xyz":[0.435948139471737384,0.255134448462102592,0.0414259153988833645],"hpluv":[15.4196600073807488,341.624434338608523,57.5723039440668174],"hsluv":[15.4196600073807488,99.9999999999990195,57.5723039440668174]},"#ff4433":{"lch":[57.6908335218327437,151.669616752661852,14.1071803519879388],"luv":[57.6908335218327437,147.095485225188412,36.9674298845038223],"rgb":[1,0.266666666666666663,0.2],"xyz":[0.439035890204195089,0.256369548755085719,0.0576880692564945077],"hpluv":[14.1071803519879388,333.603886972203838,57.6908335218327437],"hsluv":[14.1071803519879388,99.9999999999991189,57.6908335218327437]},"#ff4444":{"lch":[57.8612930010941682,147.177084719743902,12.177050630061812],"luv":[57.8612930010941682,143.865668066403089,31.0445457111261],"rgb":[1,0.266666666666666663,0.266666666666666663],"xyz":[0.443493885448414,0.258152746852773285,0.0811668442093811393],"hpluv":[12.177050630061812,322.76868159643891,57.8612930010941682],"hsluv":[12.177050630061812,99.9999999999991616,57.8612930010941682]},"#ff4455":{"lch":[58.088054010202,141.716285969530816,9.53556562214303405],"luv":[58.088054010202,139.758186425649882,23.4766913344092778],"rgb":[1,0.266666666666666663,0.333333333333333315],"xyz":[0.449456299487776,0.260537712468518146,0.112568891483355055],"hpluv":[9.53556562214303405,309.579547415252762,58.088054010202],"hsluv":[9.53556562214303405,99.9999999999992184,58.088054010202]},"#ff4466":{"lch":[58.3745334436288772,135.619673907166316,6.08910281061040859],"luv":[58.3745334436288772,134.854526247228307,14.3858507333331573],"rgb":[1,0.266666666666666663,0.4],"xyz":[0.457041295261284175,0.263571710777921464,0.152516535890499016],"hpluv":[6.08910281061040859,294.807548797669426,58.3745334436288772],"hsluv":[6.08910281061040859,99.9999999999992468,58.3745334436288772]},"#ff4477":{"lch":[58.7233249761193292,129.336052383116169,1.75519751784143763],"luv":[58.7233249761193292,129.275370036155351,3.96145782045869943],"rgb":[1,0.266666666666666663,0.466666666666666674],"xyz":[0.466355308281486081,0.26729731598600226,0.201570337796896926],"hpluv":[1.75519751784143763,279.478426792191101,58.7233249761193292],"hsluv":[1.75519751784143763,99.99999999999946,58.7233249761193292]},"#ff4488":{"lch":[59.1362810655005831,123.398173767481396,356.485857706034096],"luv":[59.1362810655005831,123.16614811103635,-7.56367957014252212],"rgb":[1,0.266666666666666663,0.533333333333333326],"xyz":[0.477495725383429881,0.271753482826779857,0.260243201200469065],"hpluv":[356.485857706034096,264.785408966002421,59.1362810655005831],"hsluv":[356.485857706034096,99.9999999999995595,59.1362810655005831]},"#ff4499":{"lch":[59.6145739069951901,118.37348532064955,350.303370213710309],"luv":[59.6145739069951901,116.682328099077466,-19.9378117238896806],"rgb":[1,0.266666666666666663,0.6],"xyz":[0.490552689492502636,0.276976268470409,0.329009878841587],"hpluv":[350.303370213710309,251.965637795338,59.6145739069951901],"hsluv":[350.303370213710309,99.9999999999997158,59.6145739069951901]},"#ff44aa":{"lch":[60.1587486598557177,114.795436800176844,343.339450530546515],"luv":[60.1587486598557177,109.976338996192666,-32.9119609129858475],"rgb":[1,0.266666666666666663,0.66666666666666663],"xyz":[0.505610382457755136,0.282999345656510137,0.408313728458585601],"hpluv":[343.339450530546515,242.139230170638513,60.1587486598557177],"hsluv":[343.339450530546515,99.9999999999997726,60.1587486598557177]},"#ff44bb":{"lch":[60.768775409955694,113.081121999454581,335.854341209703],"luv":[60.768775409955694,103.187483930843442,-46.2567110015126133],"rgb":[1,0.266666666666666663,0.733333333333333282],"xyz":[0.522747974565091811,0.289854382499444896,0.498571713557227347],"hpluv":[335.854341209703,236.128794952899398,60.768775409955694],"hsluv":[335.854341209703,99.9999999999999716,60.768775409955694]},"#ff44cc":{"lch":[61.4441027606342232,113.457557937670586,328.208302422827],"luv":[61.4441027606342232,96.4354118722023088,-59.7731443895883743],"rgb":[1,0.266666666666666663,0.8],"xyz":[0.542040350008813565,0.297571332676933697,0.600178224227497559],"hpluv":[328.208302422827,234.310931883055929,61.4441027606342232],"hsluv":[328.208302422827,100.000000000000128,61.4441027606342232]},"#ff44dd":{"lch":[62.1837139115479403,115.929787300919912,320.782684481283354],"luv":[62.1837139115479403,89.8170022013310358,-73.2981698216444357],"rgb":[1,0.266666666666666663,0.866666666666666696],"xyz":[0.563558675559447,0.306178662897187204,0.713508072127503556],"hpluv":[320.782684481283354,236.568931830040128,62.1837139115479403],"hsluv":[320.782684481283354,100.000000000000384,62.1837139115479403]},"#ff44ee":{"lch":[62.986184892514558,120.309477517885213,313.888915695758442],"luv":[62.986184892514558,83.4060394378513195,-86.7052649261745643],"rgb":[1,0.266666666666666663,0.933333333333333348],"xyz":[0.587370855825621874,0.315703535003657221,0.83891888819602678],"hpluv":[313.888915695758442,242.378371703623515,62.986184892514558],"hsluv":[313.888915695758442,100.000000000000512,62.986184892514558]},"#ff44ff":{"lch":[63.8497439492436,126.288239910703226,307.715012949243771],"luv":[63.8497439492436,77.2548530724802447,-99.9019880507531468],"rgb":[1,0.266666666666666663,1],"xyz":[0.613541904235453184,0.326171954367589945,0.976753076487808514],"hpluv":[307.715012949243771,250.982289693600563,63.8497439492436],"hsluv":[307.715012949243771,100.000000000000711,63.8497439492436]},"#ff5500":{"lch":[59.6718499915998279,148.630700843778015,19.3008598736449528],"luv":[59.6718499915998279,140.27705963161867,49.1266910591374923],"rgb":[1,0.333333333333333315,0],"xyz":[0.444874372547969188,0.277606152435549203,0.030158676476263746],"hpluv":[19.3008598736449528,316.066414507984518,59.6718499915998279],"hsluv":[19.3008598736449528,100.00000000000226,59.6718499915998279]},"#ff5511":{"lch":[59.7086010657385486,147.530698996531413,18.8803784611224046],"luv":[59.7086010657385486,139.59299153240957,47.7399608445355526],"rgb":[1,0.333333333333333315,0.0666666666666666657],"xyz":[0.445886038047606292,0.278010818635404056,0.0354867814410193758],"hpluv":[18.8803784611224046,313.53413530658878,59.7086010657385486],"hsluv":[18.8803784611224046,99.9999999999992184,59.7086010657385486]},"#ff5522":{"lch":[59.7766335415963255,145.539064184811622,18.0939597274483681],"luv":[59.7766335415963255,138.341936048844929,45.2009727113036],"rgb":[1,0.333333333333333315,0.133333333333333331],"xyz":[0.447761396186083349,0.278760961890794856,0.0453636676369985753],"hpluv":[18.0939597274483681,308.949467849715688,59.7766335415963255],"hsluv":[18.0939597274483681,99.9999999999993,59.7766335415963255]},"#ff5533":{"lch":[59.8883826376776085,142.391759670631302,16.7797766500676033],"luv":[59.8883826376776085,136.328925827546385,41.1076295206398825],"rgb":[1,0.333333333333333315,0.2],"xyz":[0.450849146918541055,0.279996062183778,0.0616258214946097185],"hpluv":[16.7797766500676033,301.704368813615531,59.8883826376776085],"hsluv":[16.7797766500676033,99.9999999999992752,59.8883826376776085]},"#ff5544":{"lch":[60.0491441299879654,138.129067713899872,14.841281480974498],"luv":[60.0491441299879654,133.520956258941027,35.3806951204903228],"rgb":[1,0.333333333333333315,0.266666666666666663],"xyz":[0.45530714216275997,0.281779260281465549,0.0851045964474963501],"hpluv":[14.841281480974498,291.888903616465711,60.0491441299879654],"hsluv":[14.841281480974498,99.9999999999994458,60.0491441299879654]},"#ff5555":{"lch":[60.2631003442631936,132.926854505406169,12.1770506300618191],"luv":[60.2631003442631936,129.936061471805857,28.0386978637829927],"rgb":[1,0.333333333333333315,0.333333333333333315],"xyz":[0.461269556202121955,0.28416422589721041,0.116506643721470265],"hpluv":[12.1770506300618191,279.898508055628838,60.2631003442631936],"hsluv":[12.1770506300618191,99.99999999999946,60.2631003442631936]},"#ff5566":{"lch":[60.5335583680784168,127.091978224389294,8.68145952340772098],"luv":[60.5335583680784168,125.635857711143842,19.1833830742614],"rgb":[1,0.333333333333333315,0.4],"xyz":[0.468854551975630141,0.287198224206613728,0.156454288128614227],"hpluv":[8.68145952340772098,266.416588145649541,60.5335583680784168],"hsluv":[8.68145952340772098,99.9999999999995737,60.5335583680784168]},"#ff5577":{"lch":[60.8630749033481351,121.049870295691591,4.25532383082281918],"luv":[60.8630749033481351,120.716171483201308,8.98203991541407],"rgb":[1,0.333333333333333315,0.466666666666666674],"xyz":[0.478168564995832046,0.290923829414694524,0.205508090035012136],"hpluv":[4.25532383082281918,252.376995060411161,60.8630749033481351],"hsluv":[4.25532383082281918,99.9999999999997158,60.8630749033481351]},"#ff5588":{"lch":[61.2535329118914404,115.319895978664789,358.830706871579594],"luv":[61.2535329118914404,115.295882188952703,-2.35328680810625102],"rgb":[1,0.333333333333333315,0.533333333333333326],"xyz":[0.489308982097775846,0.295379996255472121,0.264180953438584276],"hpluv":[358.830706871579594,238.897951612134108,61.2535329118914404],"hsluv":[358.830706871579594,99.9999999999997868,61.2535329118914404]},"#ff5599":{"lch":[61.7061969251912075,110.472562823261683,352.412124726619879],"luv":[61.7061969251912075,109.505210454219565,-14.5875296097928366],"rgb":[1,0.333333333333333315,0.6],"xyz":[0.502365946206848601,0.300602781899101279,0.332947631079702211],"hpluv":[352.412124726619879,227.177321581811952,61.7061969251912075],"hsluv":[352.412124726619879,99.9999999999998721,61.7061969251912075]},"#ff55aa":{"lch":[62.2217597266614177,107.062368992166355,345.125792918237266],"luv":[62.2217597266614177,103.474894783269619,-27.4826673342684735],"rgb":[1,0.333333333333333315,0.66666666666666663],"xyz":[0.517423639172101102,0.306625859085202401,0.412251480696700812],"hpluv":[345.125792918237266,218.340291577764589,62.2217597266614177],"hsluv":[345.125792918237266,100.000000000000071,62.2217597266614177]},"#ff55bb":{"lch":[62.8003867495987862,105.538663220643826,337.249357740418191],"luv":[62.8003867495987862,97.3274002701012,-40.8140489422941855],"rgb":[1,0.333333333333333315,0.733333333333333282],"xyz":[0.534561231279437776,0.31348089592813716,0.502509465795342614],"hpluv":[337.249357740418191,213.249782655969199,62.8003867495987862],"hsluv":[337.249357740418191,100.000000000000284,62.8003867495987862]},"#ff55cc":{"lch":[63.441761241476712,106.157882562261193,329.184616986090759],"luv":[63.441761241476712,91.1707664760994447,-54.3818661895983837],"rgb":[1,0.333333333333333315,0.8],"xyz":[0.553853606723159531,0.321197846105625961,0.60411597646561277],"hpluv":[329.184616986090759,212.332436268611161,63.441761241476712],"hsluv":[329.184616986090759,100.000000000000441,63.441761241476712]},"#ff55dd":{"lch":[64.1451313698934769,108.938462409011748,321.364198961949114],"luv":[64.1451313698934769,85.0951546537234549,-68.0176686346904518],"rgb":[1,0.333333333333333315,0.866666666666666696],"xyz":[0.575371932273793,0.329805176325879468,0.717445824365618767],"hpluv":[321.364198961949114,215.504760823814451,64.1451313698934769],"hsluv":[321.364198961949114,100.000000000000597,64.1451313698934769]},"#ff55ee":{"lch":[64.9093593252901258,113.686114680552976,314.13939983200612],"luv":[64.9093593252901258,79.1717442713053288,-81.5865649491316418],"rgb":[1,0.333333333333333315,0.933333333333333348],"xyz":[0.599184112539967728,0.339330048432349485,0.842856640434142],"hpluv":[314.13939983200612,222.248801840624651,64.9093593252901258],"hsluv":[314.13939983200612,100.000000000000753,64.9093593252901258]},"#ff55ff":{"lch":[65.7329718140353378,120.074032289562709,307.715012949243885],"luv":[65.7329718140353378,73.4534088756767147,-94.9861566483116633],"rgb":[1,0.333333333333333315,1],"xyz":[0.625355160949799149,0.349798467796282209,0.980690828725923724],"hpluv":[307.715012949243885,231.795582155087629,65.7329718140353378],"hsluv":[307.715012949243885,100.000000000000981,65.7329718140353378]},"#ff6600":{"lch":[62.3097916023938438,138.227046243322206,22.8239093069931798],"luv":[62.3097916023938438,127.404056867086908,53.6183047751569717],"rgb":[1,0.4,0],"xyz":[0.459902430253815608,0.307662267847242543,0.03516802904487909],"hpluv":[22.8239093069931798,281.498480884542573,62.3097916023938438],"hsluv":[22.8239093069931798,100.000000000002359,62.3097916023938438]},"#ff6611":{"lch":[62.344110015411573,137.186959502953613,22.4076195476895244],"luv":[62.344110015411573,126.828705913080029,52.2947532174930245],"rgb":[1,0.4,0.0666666666666666657],"xyz":[0.460914095753452713,0.308066934047097396,0.0404961340096347197],"hpluv":[22.4076195476895244,279.226561167599414,62.344110015411573],"hsluv":[22.4076195476895244,99.9999999999995737,62.344110015411573]},"#ff6622":{"lch":[62.4076477973658257,135.300699513710725,21.6278909170268392],"luv":[62.4076477973658257,125.775148313603225,49.8687412673566115],"rgb":[1,0.4,0.133333333333333331],"xyz":[0.46278945389192977,0.308817077302488197,0.0503730202056139192],"hpluv":[21.6278909170268392,275.106945224361368,62.4076477973658257],"hsluv":[21.6278909170268392,99.9999999999996163,62.4076477973658257]},"#ff6633":{"lch":[62.5120380635233346,132.311574345484274,20.3215228987586443],"luv":[62.5120380635233346,124.076309265494103,45.9502141979128851],"rgb":[1,0.4,0.2],"xyz":[0.465877204624387475,0.310052177595471323,0.0666351740632250555],"hpluv":[20.3215228987586443,268.579898420339646,62.5120380635233346],"hsluv":[20.3215228987586443,99.9999999999995879,62.5120380635233346]},"#ff6644":{"lch":[62.6622654373265675,128.246261163642686,18.3868048135947362],"luv":[62.6622654373265675,121.699120282046835,40.4527826611364603],"rgb":[1,0.4,0.266666666666666663],"xyz":[0.470335199868606391,0.311835375693158889,0.0901139490161117],"hpluv":[18.3868048135947362,259.703586528718,62.6622654373265675],"hsluv":[18.3868048135947362,99.9999999999997726,62.6622654373265675]},"#ff6655":{"lch":[62.8622967709428764,123.257362768531593,15.7125644918265355],"luv":[62.8622967709428764,118.651528823693667,33.3795174388964284],"rgb":[1,0.4,0.333333333333333315],"xyz":[0.476297613907968376,0.31422034130890375,0.121515996290085609],"hpluv":[15.7125644918265355,248.806632458920831,62.8622967709428764],"hsluv":[15.7125644918265355,99.9999999999997158,62.8622967709428764]},"#ff6666":{"lch":[63.1153061541487119,117.623502253606588,12.1770506300618742],"luv":[63.1153061541487119,114.97702760078576,24.8107115273291683],"rgb":[1,0.4,0.4],"xyz":[0.483882609681476561,0.317254339618307069,0.161463640697229571],"hpluv":[12.1770506300618742,236.482353971627703,63.1153061541487119],"hsluv":[12.1770506300618742,99.9999999999999,63.1153061541487119]},"#ff6677":{"lch":[63.4237926928396121,111.744324598031497,7.65713975886231157],"luv":[63.4237926928396121,110.747917341816802,14.8893547314965815],"rgb":[1,0.4,0.466666666666666674],"xyz":[0.493196622701678467,0.320979944826387864,0.21051744260362748],"hpluv":[7.65713975886231157,223.569519019308729,63.4237926928396121],"hsluv":[7.65713975886231157,100.000000000000071,63.4237926928396121]},"#ff6688":{"lch":[63.7896518301749751,106.125321016318935,2.05404070639815961],"luv":[63.7896518301749751,106.057131857198982,3.80375380925921824],"rgb":[1,0.4,0.533333333333333326],"xyz":[0.504337039803622322,0.325436111667165462,0.26919030600719962],"hpluv":[2.05404070639815961,211.109662635719985,63.7896518301749751],"hsluv":[2.05404070639815961,100.000000000000128,63.7896518301749751]},"#ff6699":{"lch":[64.2142253202301276,101.344202045456129,355.341285926877504],"luv":[64.2142253202301276,101.009378125853075,-8.23121004826552394],"rgb":[1,0.4,0.6],"xyz":[0.517394003912695,0.330658897310794619,0.337956983648317555],"hpluv":[355.341285926877504,200.265890662959123,64.2142253202301276],"hsluv":[355.341285926877504,100.000000000000199,64.2142253202301276]},"#ff66aa":{"lch":[64.6983418323177233,97.9876087444390436,347.629516841099075],"luv":[64.6983418323177233,95.7126081968365838,-20.9920961224008664],"rgb":[1,0.4,0.66666666666666663],"xyz":[0.532451696877947578,0.336681974496895742,0.417260833265316156],"hpluv":[347.629516841099075,192.184047560801417,64.6983418323177233],"hsluv":[347.629516841099075,100.000000000000441,64.6983418323177233]},"#ff66bb":{"lch":[65.2423543089962408,96.5541832870936787,339.215698562051898],"luv":[65.2423543089962408,90.270720679111,-34.2623306024503123],"rgb":[1,0.4,0.733333333333333282],"xyz":[0.549589288985284141,0.3435370113398305,0.507518818363957847],"hpluv":[339.215698562051898,187.793604034801348,65.2423543089962408],"hsluv":[339.215698562051898,100.000000000000597,65.2423543089962408]},"#ff66cc":{"lch":[65.8461771980182533,97.3465701370285,330.562118792095362],"luv":[65.8461771980182533,84.7780628468697159,-47.8438583036069218],"rgb":[1,0.4,0.8],"xyz":[0.568881664429005895,0.351253961517319302,0.609125329034228],"hpluv":[330.562118792095362,187.598522894675455,65.8461771980182533],"hsluv":[330.562118792095362,100.000000000000711,65.8461771980182533]},"#ff66dd":{"lch":[66.5093249736543157,100.405273498350255,322.181562409870594],"luv":[66.5093249736543157,79.3159229397089831,-61.5646271368605298],"rgb":[1,0.4,0.866666666666666696],"xyz":[0.590399989979639495,0.359861291737572808,0.722455176934234],"hpluv":[322.181562409870594,191.563741116159406,66.5093249736543157],"hsluv":[322.181562409870594,100.000000000000952,66.5093249736543157]},"#ff66ee":{"lch":[67.2309523334132706,105.527911758853008,314.488878023448478],"luv":[67.2309523334132706,73.9508789773533408,-75.2821868615750702],"rgb":[1,0.4,0.933333333333333348],"xyz":[0.614212170245814204,0.369386163844042825,0.847865993002757223],"hpluv":[314.488878023448478,199.176184031939982,67.2309523334132706],"hsluv":[314.488878023448478,100.000000000001066,67.2309523334132706]},"#ff66ff":{"lch":[68.0098958254125137,112.360313920932768,307.715012949244056],"luv":[68.0098958254125137,68.7346624616611592,-88.8841173702707437],"rgb":[1,0.4,1],"xyz":[0.640383218655645625,0.379854583207975549,0.985700181294539179],"hpluv":[307.715012949244056,209.642901019847784,68.0098958254125137],"hsluv":[307.715012949244056,100.000000000001421,68.0098958254125137]},"#ff7700":{"lch":[65.3236824647912755,127.817378582796977,27.3102887077963814],"luv":[65.3236824647912755,113.570196302134065,58.6437786953806466],"rgb":[1,0.466666666666666674,0],"xyz":[0.478356168307233265,0.344569743954078356,0.0413192750626848],"hpluv":[27.3102887077963814,248.289625700463205,65.3236824647912755],"hsluv":[27.3102887077963814,100.00000000000226,65.3236824647912755]},"#ff7711":{"lch":[65.3555057958206476,126.824695098806032,26.9045059733925385],"luv":[65.3555057958206476,113.097436843789765,57.3887886809793],"rgb":[1,0.466666666666666674,0.0666666666666666657],"xyz":[0.479367833806870369,0.344974410153933209,0.0466473800274404271],"hpluv":[26.9045059733925385,246.24134425049084,65.3555057958206476],"hsluv":[26.9045059733925385,99.9999999999999716,65.3555057958206476]},"#ff7722":{"lch":[65.4144320044565291,125.020679344179442,26.1430666348463],"luv":[65.4144320044565291,112.230643754756542,55.0858681158159058],"rgb":[1,0.466666666666666674,0.133333333333333331],"xyz":[0.481243191945347426,0.345724553409324,0.0565242662234196266],"hpluv":[26.1430666348463,242.520026060215031,65.4144320044565291],"hsluv":[26.1430666348463,100.000000000000156,65.4144320044565291]},"#ff7733":{"lch":[65.511267747206432,122.151716277204869,24.8632302030062533],"luv":[65.511267747206432,110.829965834679456,51.3591322215488688],"rgb":[1,0.466666666666666674,0.2],"xyz":[0.484330942677805132,0.346959653702307136,0.0727864200810307699],"hpluv":[24.8632302030062533,236.604443239770575,65.511267747206432],"hsluv":[24.8632302030062533,100.000000000000128,65.511267747206432]},"#ff7744":{"lch":[65.6506715027637853,118.22870540382597,22.9581907744090898],"luv":[65.6506715027637853,108.863777518532288,46.1162089276663139],"rgb":[1,0.466666666666666674,0.266666666666666663],"xyz":[0.488788937922024047,0.348742851799994702,0.0962651950339174084],"hpluv":[22.9581907744090898,228.519406804146513,65.6506715027637853],"hsluv":[22.9581907744090898,100.000000000000199,65.6506715027637853]},"#ff7755":{"lch":[65.8363783536997857,113.378413750733145,20.3056908730066645],"luv":[65.8363783536997857,106.332452226692425,39.3455754576116092],"rgb":[1,0.466666666666666674,0.333333333333333315],"xyz":[0.494751351961386032,0.351127817415739563,0.12766724230789131],"hpluv":[20.3056908730066645,218.526329281612362,65.8363783536997857],"hsluv":[20.3056908730066645,100.000000000000171,65.8363783536997857]},"#ff7766":{"lch":[66.0714111968285351,107.847817312906827,16.7638759706376135],"luv":[66.0714111968285351,103.264450834403533,31.1063481146080676],"rgb":[1,0.466666666666666674,0.4],"xyz":[0.502336347734894217,0.354161815725142881,0.167614886715035272],"hpluv":[16.7638759706376135,207.127185394700234,66.0714111968285351],"hsluv":[16.7638759706376135,100.000000000000426,66.0714111968285351]},"#ff7777":{"lch":[66.3581913431115851,102.006782949974053,12.1770506300619488],"luv":[66.3581913431115851,99.7116772923406671,21.5166256497442419],"rgb":[1,0.466666666666666674,0.466666666666666674],"xyz":[0.511650360755096067,0.357887420933223677,0.216668688621433181],"hpluv":[12.1770506300619488,195.062523033846361,66.3581913431115851],"hsluv":[12.1770506300619488,100.000000000000355,66.3581913431115851]},"#ff7788":{"lch":[66.6986047917809,96.3441833198397291,6.39999172914420456],"luv":[66.6986047917809,95.7437601312525,10.7393694179903871],"rgb":[1,0.466666666666666674,0.533333333333333326],"xyz":[0.52279077785704,0.362343587774001274,0.275341552025005376],"hpluv":[6.39999172914420456,183.293927388427107,66.6986047917809],"hsluv":[6.39999172914420456,100.000000000000639,66.6986047917809]},"#ff7799":{"lch":[67.0940474565320244,91.4474963932601,359.352586865695173],"luv":[67.0940474565320244,91.4416585161261679,-1.0332881570442134],"rgb":[1,0.466666666666666674,0.6],"xyz":[0.535847741966112623,0.367566373417630432,0.344108229666123255],"hpluv":[359.352586865695173,172.952623850798517,67.0940474565320244],"hsluv":[359.352586865695173,100.000000000000782,67.0940474565320244]},"#ff77aa":{"lch":[67.5454605183692,87.9484746627524,351.107126776790835],"luv":[67.5454605183692,86.8912550098467449,-13.5957345634056814],"rgb":[1,0.466666666666666674,0.66666666666666663],"xyz":[0.550905434931365234,0.373589450603731554,0.423412079283121856],"hpluv":[351.107126776790835,165.223368139110704,67.5454605183692],"hsluv":[351.107126776790835,100.000000000000938,67.5454605183692]},"#ff77bb":{"lch":[68.0533617234635244,86.4195813509952,341.973592157308417],"luv":[68.0533617234635244,82.1775887588569,-26.7429980866295693],"rgb":[1,0.466666666666666674,0.733333333333333282],"xyz":[0.568043027038701798,0.380444487446666313,0.513670064381763658],"hpluv":[341.973592157308417,161.139458954487083,68.0533617234635244],"hsluv":[341.973592157308417,100.000000000001037,68.0533617234635244]},"#ff77cc":{"lch":[68.6178757233526682,87.2373067072756214,332.49967924393593],"luv":[68.6178757233526682,77.3802105983984347,-40.2821385887937],"rgb":[1,0.466666666666666674,0.8],"xyz":[0.587335402482423552,0.388161437624155115,0.615276575052033814],"hpluv":[332.49967924393593,161.325977991170333,68.6178757233526682],"hsluv":[332.49967924393593,100.000000000001265,68.6178757233526682]},"#ff77dd":{"lch":[69.238765020261809,90.480647802514838,323.326201907778],"luv":[69.238765020261809,72.5699004301545756,-54.0403291840472],"rgb":[1,0.466666666666666674,0.866666666666666696],"xyz":[0.608853728033057151,0.396768767844408621,0.728606422952039812],"hpluv":[323.326201907778,165.823361543811586,69.238765020261809],"hsluv":[323.326201907778,100.00000000000145,69.238765020261809]},"#ff77ee":{"lch":[69.9154621504300593,95.9376886025569604,314.973456368277198],"luv":[69.9154621504300593,67.8067552495039791,-67.8696105553513149],"rgb":[1,0.466666666666666674,0.933333333333333348],"xyz":[0.632665908299231861,0.406293639950878638,0.854017239020563],"hpluv":[314.973456368277198,174.122680701596721,69.9154621504300593],"hsluv":[314.973456368277198,100.000000000001535,69.9154621504300593]},"#ff77ff":{"lch":[70.6471031550122,103.213892868752552,307.715012949244283],"luv":[70.6471031550122,63.1394826173239494,-81.6487196221654],"rgb":[1,0.466666666666666674,1],"xyz":[0.658836956709063282,0.416762059314811362,0.99185142731234488],"hpluv":[307.715012949244283,185.388643374650655,70.6471031550122],"hsluv":[307.715012949244283,100.000000000001975,70.6471031550122]},"#ff8800":{"lch":[68.6580440198892603,118.150361410828182,32.8458067740872153],"luv":[68.6580440198892603,99.2620471866307383,64.0823992202883375],"rgb":[1,0.533333333333333326,0],"xyz":[0.500428538032203774,0.388714483404019873,0.0486767316376747472],"hpluv":[32.8458067740872153,218.364961888913399,68.6580440198892603],"hsluv":[32.8458067740872153,100.000000000002245,68.6580440198892603]},"#ff8811":{"lch":[68.6874112197728408,117.19102013872596,32.4606037779481582],"luv":[68.6874112197728408,98.8811760474647485,62.89871401408422],"rgb":[1,0.533333333333333326,0.0666666666666666657],"xyz":[0.501440203531840933,0.389119149603874726,0.0540048366024303769],"hpluv":[32.4606037779481582,216.499308154785638,68.6874112197728408],"hsluv":[32.4606037779481582,100.000000000000739,68.6874112197728408]},"#ff8822":{"lch":[68.7417963707939492,115.443262249268372,31.7362513605757321],"luv":[68.7417963707939492,98.1820090833864754,60.724294076614548],"rgb":[1,0.533333333333333326,0.133333333333333331],"xyz":[0.503315561670317879,0.389869292859265526,0.0638817227984095765],"hpluv":[31.7362513605757321,213.101761826290613,68.7417963707939492],"hsluv":[31.7362513605757321,100.000000000000668,68.7417963707939492]},"#ff8833":{"lch":[68.8311889682804292,112.651741292777714,30.5141745142023382],"luv":[68.8311889682804292,97.0498776480180823,57.1990914683060439],"rgb":[1,0.533333333333333326,0.2],"xyz":[0.506403312402775696,0.391104393152248653,0.0801438766560207128],"hpluv":[30.5141745142023382,207.678703624478942,68.8311889682804292],"hsluv":[30.5141745142023382,100.000000000000824,68.8311889682804292]},"#ff8844":{"lch":[68.9599197258043688,108.808998086617962,28.6842020071901302],"luv":[68.9599197258043688,95.4557990826346554,52.2263198599069725],"rgb":[1,0.533333333333333326,0.266666666666666663],"xyz":[0.510861307646994556,0.392887591249936219,0.103622651608907351],"hpluv":[28.6842020071901302,200.2199693629492,68.9599197258043688],"hsluv":[28.6842020071901302,100.000000000000838,68.9599197258043688]},"#ff8855":{"lch":[69.1314852187197602,104.012526361958052,26.1137258191789492],"luv":[69.1314852187197602,93.395152113439849,45.7815596272609682],"rgb":[1,0.533333333333333326,0.333333333333333315],"xyz":[0.516823721686356485,0.39527255686568108,0.135024698882881267],"hpluv":[26.1137258191789492,190.918970683811096,69.1314852187197602],"hsluv":[26.1137258191789492,100.000000000000867,69.1314852187197602]},"#ff8866":{"lch":[69.3487452092138881,98.4723154092605171,22.6389332988698087],"luv":[69.3487452092138881,90.8849122177262529,37.9042165627661802],"rgb":[1,0.533333333333333326,0.4],"xyz":[0.524408717459864726,0.398306555175084398,0.174972343290025228],"hpluv":[22.6389332988698087,180.183437843423292,69.3487452092138881],"hsluv":[22.6389332988698087,100.000000000001066,69.3487452092138881]},"#ff8877":{"lch":[69.6140261744794344,92.5206854303452246,18.0637242730473773],"luv":[69.6140261744794344,87.9605480867009248,28.6883114314535526],"rgb":[1,0.533333333333333326,0.466666666666666674],"xyz":[0.533722730480066576,0.402032160383165194,0.224026145196423138],"hpluv":[18.0637242730473773,168.648085666048672,69.6140261744794344],"hsluv":[18.0637242730473773,100.000000000001108,69.6140261744794344]},"#ff8888":{"lch":[69.9291829132988596,86.6211090413054,12.1770506300619186],"luv":[69.9291829132988596,84.672173963834382,18.2712749359175248],"rgb":[1,0.533333333333333326,0.533333333333333326],"xyz":[0.544863147582010487,0.406488327223942791,0.282699008599995305],"hpluv":[12.1770506300619186,157.182652238587849,69.9291829132988596],"hsluv":[12.1770506300619186,100.000000000001251,69.9291829132988596]},"#ff8899":{"lch":[70.29563969089034,81.3665448969888274,4.80888772903122597],"luv":[70.29563969089034,81.0801238487794791,6.82115423812421362],"rgb":[1,0.533333333333333326,0.6],"xyz":[0.557920111691083132,0.411711112867571949,0.351465686241113184],"hpluv":[4.80888772903122597,146.878021536398364,70.29563969089034],"hsluv":[4.80888772903122597,100.00000000000135,70.29563969089034]},"#ff88aa":{"lch":[70.7144212664750427,77.4442353273614827,355.944797831634332],"luv":[70.7144212664750427,77.2503443699940533,-5.47666688388778589],"rgb":[1,0.533333333333333326,0.66666666666666663],"xyz":[0.572977804656335743,0.417734190053673071,0.430769535858111841],"hpluv":[355.944797831634332,138.969799542374091,70.7144212664750427],"hsluv":[355.944797831634332,100.000000000001648,70.7144212664750427]},"#ff88bb":{"lch":[71.1861792611668847,75.5334875912487718,345.875835641341098],"luv":[71.1861792611668847,73.2500487000805,-18.431986141845023],"rgb":[1,0.533333333333333326,0.733333333333333282],"xyz":[0.590115396763672306,0.42458922689660783,0.521027520956753532],"hpluv":[345.875835641341098,134.642814203514433,71.1861792611668847],"hsluv":[345.875835641341098,100.000000000001776,71.1861792611668847]},"#ff88cc":{"lch":[71.711216864189268,76.1313589407537563,335.260476444218114],"luv":[71.711216864189268,69.1440007334156377,-31.8604924121286039],"rgb":[1,0.533333333333333326,0.8],"xyz":[0.609407772207394061,0.432306177074096631,0.622634031627023687],"hpluv":[335.260476444218114,134.714956877670915,71.711216864189268],"hsluv":[335.260476444218114,100.000000000001933,71.711216864189268]},"#ff88dd":{"lch":[72.2895135005839649,79.3885839073469413,324.950129439258774],"luv":[72.2895135005839649,64.9916618916399784,-45.5920074067441803],"rgb":[1,0.533333333333333326,0.866666666666666696],"xyz":[0.63092609775802766,0.440913507294350138,0.735963879527029685],"hpluv":[324.950129439258774,139.354847315526115,72.2895135005839649],"hsluv":[324.950129439258774,100.000000000002245,72.2895135005839649]},"#ff88ee":{"lch":[72.9207502525545124,85.0855243828499,315.651995307064169],"luv":[72.9207502525545124,60.845281511842515,-59.4760302748021203],"rgb":[1,0.533333333333333326,0.933333333333333348],"xyz":[0.654738278024202369,0.450438379400820155,0.861374695595552908],"hpluv":[315.651995307064169,148.062090862911901,72.9207502525545124],"hsluv":[315.651995307064169,100.000000000002444,72.9207502525545124]},"#ff88ff":{"lch":[73.6043362991539709,92.7672005781522842,307.715012949244624],"luv":[73.6043362991539709,56.7488822053271349,-73.3847250560567375],"rgb":[1,0.533333333333333326,1],"xyz":[0.68090932643403379,0.460906798764752879,0.999208883887334753],"hpluv":[307.715012949244624,159.930161835956909,73.6043362991539709],"hsluv":[307.715012949244624,100.000000000002771,73.6043362991539709]},"#ff9900":{"lch":[72.2588108283115389,109.907462524380705,39.4434130396340095],"luv":[72.2588108283115389,84.8763034831777077,69.8259509464759418],"rgb":[1,0.6,0],"xyz":[0.526298138484671219,0.440453684308955595,0.057299931788497],"hpluv":[39.4434130396340095,193.008172097547572,72.2588108283115389],"hsluv":[39.4434130396340095,100.000000000002288,72.2588108283115389]},"#ff9911":{"lch":[72.2858317740783889,108.970035258541955,39.0927051304156805],"luv":[72.2858317740783889,84.5745536570817791,68.7139975401902348],"rgb":[1,0.6,0.0666666666666666657],"xyz":[0.527309803984308378,0.440858350508810448,0.0626280367532526389],"hpluv":[39.0927051304156805,191.2904264008464,72.2858317740783889],"hsluv":[39.0927051304156805,100.000000000001506,72.2858317740783889]},"#ff9922":{"lch":[72.3358777005795304,107.257428554778556,38.4317580680427469],"luv":[72.3358777005795304,84.0200042697796,66.6692947517044274],"rgb":[1,0.6,0.133333333333333331],"xyz":[0.529185162122785324,0.441608493764201249,0.0725049229492318315],"hpluv":[38.4317580680427469,188.15378179700545,72.3358777005795304],"hsluv":[38.4317580680427469,100.00000000000145,72.3358777005795304]},"#ff9933":{"lch":[72.418154282067718,104.508625212907305,37.3122251519614778],"luv":[72.418154282067718,83.1203251002183237,63.3487513620113845],"rgb":[1,0.6,0.2],"xyz":[0.532272912855243141,0.442843594057184375,0.0887670768068429816],"hpluv":[37.3122251519614778,183.123470124205028,72.418154282067718],"hsluv":[37.3122251519614778,100.00000000000162,72.418154282067718]},"#ff9944":{"lch":[72.5366731246789556,100.695423976150749,35.6250099256014607],"luv":[72.5366731246789556,81.8499313718691326,58.6528528219818952],"rgb":[1,0.6,0.266666666666666663],"xyz":[0.536730908099462,0.444626792154871942,0.11224585175972962],"hpluv":[35.6250099256014607,176.153561585765658,72.5366731246789556],"hsluv":[35.6250099256014607,100.000000000001748,72.5366731246789556]},"#ff9955":{"lch":[72.6946936633514582,95.8821930466240673,33.2320443565807508],"luv":[72.6946936633514582,80.201421842029859,52.5464259293328269],"rgb":[1,0.6,0.333333333333333315],"xyz":[0.54269332213882393,0.447011757770616802,0.143647899033703508],"hpluv":[33.2320443565807508,167.368827825995851,72.6946936633514582],"hsluv":[33.2320443565807508,100.000000000001705,72.6946936633514582]},"#ff9966":{"lch":[72.8949069034106,90.2347392462793749,29.9516480142673025],"luv":[72.8949069034106,78.1836232693519406,45.0514064077924345],"rgb":[1,0.6,0.4],"xyz":[0.550278317912332171,0.450045756080020121,0.183595543440847497],"hpluv":[29.9516480142673025,157.078197331028889,72.8949069034106],"hsluv":[29.9516480142673025,100.000000000001819,72.8949069034106]},"#ff9977":{"lch":[73.1395321193821,84.0351966301436,25.5464816978182121],"luv":[73.1395321193821,75.8195571045914,36.2396058633438045],"rgb":[1,0.6,0.466666666666666674],"xyz":[0.559592330932534,0.453771361288100916,0.232649345347245406],"hpluv":[25.5464816978182121,145.796926659053128,73.1395321193821],"hsluv":[25.5464816978182121,100.000000000002018,73.1395321193821]},"#ff9988":{"lch":[73.430374185650777,77.702838567593929,19.7240568661095921],"luv":[73.430374185650777,73.1439295084068419,26.2239718107454713],"rgb":[1,0.6,0.533333333333333326],"xyz":[0.570732748034477932,0.458227528128878514,0.291322208750817546],"hpluv":[19.7240568661095921,134.276641294628575,73.430374185650777],"hsluv":[19.7240568661095921,100.000000000002203,73.430374185650777]},"#ff9999":{"lch":[73.76886125649402,71.8160022700114098,12.1770506300620251],"luv":[73.76886125649402,70.2001752793754,15.1483851545719261],"rgb":[1,0.6,0.6],"xyz":[0.583789712143550577,0.463450313772507672,0.360088886391935481],"hpluv":[12.1770506300620251,123.534275619879125,73.76886125649402],"hsluv":[12.1770506300620251,100.000000000002331,73.76886125649402]},"#ff99aa":{"lch":[74.1560723225582592,67.1124973440613,2.7130535693684088],"luv":[74.1560723225582592,67.0372720786985923,3.17670458229478481],"rgb":[1,0.6,0.66666666666666663],"xyz":[0.598847405108803188,0.469473390958608794,0.439392736008934082],"hpluv":[2.7130535693684088,114.840746523486033,74.1560723225582592],"hsluv":[2.7130535693684088,100.00000000000253,74.1560723225582592]},"#ff99bb":{"lch":[74.5927597146433925,64.4136927281220864,351.502648062184],"luv":[74.5927597146433925,63.7066038913843187,-9.51800564715024322],"rgb":[1,0.6,0.733333333333333282],"xyz":[0.615984997216139751,0.476328427801543552,0.529650721107575828],"hpluv":[351.502648062184,109.577363966618833,74.5927597146433925],"hsluv":[351.502648062184,100.000000000002615,74.5927597146433925]},"#ff99cc":{"lch":[75.0793694015197,64.4152606478183145,339.305696269483292],"luv":[75.0793694015197,60.259134450288677,-22.7631834247409977],"rgb":[1,0.6,0.8],"xyz":[0.635277372659861506,0.484045377979032354,0.631257231777846],"hpluv":[339.305696269483292,108.869813431806975,75.0793694015197],"hsluv":[339.305696269483292,100.000000000002871,75.0793694015197]},"#ff99dd":{"lch":[75.6160606971696296,67.4118390527965232,327.324068761847229],"luv":[75.6160606971696296,56.7430830794555,-36.3947601601954887],"rgb":[1,0.6,0.866666666666666696],"xyz":[0.656795698210495105,0.49265270819928586,0.744587079677852],"hpluv":[327.324068761847229,113.125745227459021,75.6160606971696296],"hsluv":[327.324068761847229,100.00000000000324,75.6160606971696296]},"#ff99ee":{"lch":[76.202726253448489,73.1905233351813393,316.627151984536795],"luv":[76.202726253448489,53.2022056350908201,-50.2630880631028845],"rgb":[1,0.6,0.933333333333333348],"xyz":[0.680607878476669814,0.502177580305755877,0.869997895746375205],"hpluv":[316.627151984536795,123.107716827744753,76.202726253448489],"hsluv":[316.627151984536795,100.000000000003524,76.202726253448489]},"#ff99ff":{"lch":[76.8390127436129,81.2030526869262275,307.715012949245],"luv":[76.8390127436129,49.6746958291708154,-64.2367524082209229],"rgb":[1,0.6,1],"xyz":[0.706778926886501235,0.512645999669688601,1.00783208403815694],"hpluv":[307.715012949245,141.150312559224801,76.8390127436129],"hsluv":[307.715012949245,100.000000000003752,76.8390127436129]},"#ee0000":{"lch":[49.7142799595632,167.190689697178925,12.1770506300617765],"luv":[49.7142799595632,163.428976145092918,35.2660811203203934],"rgb":[0.933333333333333348,0,0],"xyz":[0.352591085030832,0.181804778219026603,0.0165277071108199],"hpluv":[12.1770506300617765,426.746789183125202,49.7142799595632],"hsluv":[12.1770506300617765,100.000000000002217,49.7142799595632]},"#ee0011":{"lch":[49.7630000621001756,165.722449822455,11.6881730851639158],"luv":[49.7630000621001756,162.286136628676445,33.5729092170260728],"rgb":[0.933333333333333348,0,0.0666666666666666657],"xyz":[0.353602750530469079,0.182209444418881455,0.0218558120755755342],"hpluv":[11.6881730851639158,422.585038037937124,49.7630000621001756],"hsluv":[11.6881730851639158,99.9999999999963762,49.7630000621001756]},"#ee0022":{"lch":[49.8531236873270558,163.0858535413212,10.7756858750078184],"luv":[49.8531236873270558,160.210108449799208,30.4912573667411486],"rgb":[0.933333333333333348,0,0.133333333333333331],"xyz":[0.355478108668946136,0.182959587674272284,0.0317326982715547268],"hpluv":[10.7756858750078184,415.110044299310516,49.8531236873270558],"hsluv":[10.7756858750078184,99.9999999999964473,49.8531236873270558]},"#ee0033":{"lch":[50.000975779064234,158.977402767524836,9.25647316775448559],"luv":[50.000975779064234,156.907230803998146,25.5721628363475],"rgb":[0.933333333333333348,0,0.2],"xyz":[0.358565859401403841,0.184194687967255383,0.047994852129165877],"hpluv":[9.25647316775448559,403.456061197389261,50.000975779064234],"hsluv":[9.25647316775448559,99.9999999999965183,50.000975779064234]},"#ee0044":{"lch":[50.2132784041556164,153.529579514286212,7.02933300215353],"luv":[50.2132784041556164,152.375594335021788,18.7885613308314312],"rgb":[0.933333333333333348,0,0.266666666666666663],"xyz":[0.363023854645622757,0.185977886064942977,0.0714736270820525155],"hpluv":[7.02933300215353,387.983100931209492,50.2132784041556164],"hsluv":[7.02933300215353,99.9999999999966462,50.2132784041556164]},"#ee0055":{"lch":[50.4951150037793326,147.071833727726926,3.99754465361350508],"luv":[50.4951150037793326,146.714013644902735,10.2529252527975352],"rgb":[0.933333333333333348,0,0.333333333333333315],"xyz":[0.368986268684984742,0.188362851680687809,0.102875674356026417],"hpluv":[3.99754465361350508,369.589367027053072,50.4951150037793326],"hsluv":[3.99754465361350508,99.999999999996831,50.4951150037793326]},"#ee0066":{"lch":[50.8502318550204109,140.098840030056522,0.0757634158231174915],"luv":[50.8502318550204109,140.0987175463531,0.185255592479522613],"rgb":[0.933333333333333348,0,0.4],"xyz":[0.376571264458492927,0.1913968499900911,0.142823318763170393],"hpluv":[0.0757634158231174915,349.60765112382461,50.8502318550204109],"hsluv":[0.0757634158231174915,99.9999999999970584,50.8502318550204109]},"#ee0077":{"lch":[51.2812017254514956,133.219993530026585,355.209470699020642],"luv":[51.2812017254514956,132.754613083251769,-11.1256182415379214],"rgb":[0.933333333333333348,0,0.466666666666666674],"xyz":[0.385885277478694833,0.195122455198171924,0.191877120669568302],"hpluv":[355.209470699020642,329.648072606093592,51.2812017254514956],"hsluv":[355.209470699020642,99.9999999999973284,51.2812017254514956]},"#ee0088":{"lch":[51.7895361854883163,127.090944021268115,349.407446028193533],"luv":[51.7895361854883163,124.925218603260163,-23.3623160055840167],"rgb":[0.933333333333333348,0,0.533333333333333326],"xyz":[0.397025694580638633,0.199578622038949521,0.250549984073140442],"hpluv":[349.407446028193533,311.395197619459395,51.7895361854883163],"hsluv":[349.407446028193533,99.9999999999974705,51.7895361854883163]},"#ee0099":{"lch":[52.3757812732210652,122.329563392952366,342.780178840499048],"luv":[52.3757812732210652,116.846263825073436,-36.2142611415956637],"rgb":[0.933333333333333348,0,0.6],"xyz":[0.410082658689711388,0.204801407682578679,0.319316661714258376],"hpluv":[342.780178840499048,296.374093031221,52.3757812732210652],"hsluv":[342.780178840499048,99.9999999999978,52.3757812732210652]},"#ee00aa":{"lch":[53.0396114453995722,119.424239873739239,335.563712743666827],"luv":[53.0396114453995722,108.726436909364494,-49.403552366347],"rgb":[0.933333333333333348,0,0.66666666666666663],"xyz":[0.425140351654963888,0.210824484868679773,0.398620511331257],"hpluv":[335.563712743666827,285.713971708863653,53.0396114453995722],"hsluv":[335.563712743666827,99.999999999998,53.0396114453995722]},"#ee00bb":{"lch":[53.779927529436435,118.655378520732356,328.101249142938343],"luv":[53.779927529436435,100.736423933687789,-62.6998544252744381],"rgb":[0.933333333333333348,0,0.733333333333333282],"xyz":[0.442277943762300563,0.217679521711614532,0.488878496429898723],"hpluv":[328.101249142938343,279.966806180862307,53.779927529436435],"hsluv":[328.101249142938343,99.9999999999982094,53.779927529436435]},"#ee00cc":{"lch":[54.5949595671901,120.061129768120921,320.773339602207614],"luv":[54.5949595671901,93.0053918954961,-75.9254368414351575],"rgb":[0.933333333333333348,0,0.8],"xyz":[0.461570319206022317,0.225396471889103334,0.590485007100168824],"hpluv":[320.773339602207614,279.054611328209262,54.5949595671901],"hsluv":[320.773339602207614,99.9999999999984,54.5949595671901]},"#ee00dd":{"lch":[55.4823728661035744,123.466264594666441,313.907226483092529],"luv":[55.4823728661035744,85.6229535549924634,-88.9529556421808252],"rgb":[0.933333333333333348,0,0.866666666666666696],"xyz":[0.483088644756655805,0.234003802109356868,0.703814855000174822],"hpluv":[313.907226483092529,282.379138449157608,55.4823728661035744],"hsluv":[313.907226483092529,99.9999999999986215,55.4823728661035744]},"#ee00ee":{"lch":[56.4393743497109597,128.559742977308588,307.715012949243601],"luv":[56.4393743497109597,78.644409501394918,-101.698890694877051],"rgb":[0.933333333333333348,0,0.933333333333333348],"xyz":[0.506900825022830626,0.243528674215826912,0.829225671068698],"hpluv":[307.715012949243601,289.042783730483393,56.4393743497109597],"hsluv":[307.715012949243601,99.9999999999988489,56.4393743497109597]},"#ee00ff":{"lch":[57.4628159598150745,134.982567880189606,302.284502363601803],"luv":[57.4628159598150745,72.0973885084188879,-114.115118199983058],"rgb":[0.933333333333333348,0,1],"xyz":[0.533071873432661936,0.253997093579759636,0.96705985936047989],"hpluv":[302.284502363601803,298.078126285043766,57.4628159598150745],"hsluv":[302.284502363601803,99.9999999999989484,57.4628159598150745]},"#ee1100":{"lch":[50.1937733395544683,164.746074066243921,12.6667024036514828],"luv":[50.1937733395544683,160.736507742479517,36.1253927174799117],"rgb":[0.933333333333333348,0.0666666666666666657,0],"xyz":[0.354595485291760382,0.185813578740883473,0.0171958405311293527],"hpluv":[12.6667024036514828,416.489977947977081,50.1937733395544683],"hsluv":[12.6667024036514828,100.000000000002245,50.1937733395544683]},"#ee1111":{"lch":[50.2417909300708345,163.305921695383518,12.1770506300617907],"luv":[50.2417909300708345,159.631613634988071,34.4466542507197317],"rgb":[0.933333333333333348,0.0666666666666666657,0.0666666666666666657],"xyz":[0.355607150791397486,0.186218244940738326,0.0225239454958849825],"hpluv":[12.1770506300617907,412.454596338970589,50.2417909300708345],"hsluv":[12.1770506300617907,96.6508962208003197,50.2417909300708345]},"#ee1122":{"lch":[50.3306190654122219,160.718934991358793,11.2629010575952293],"luv":[50.3306190654122219,157.623701713525833,31.390201064696047],"rgb":[0.933333333333333348,0.0666666666666666657,0.133333333333333331],"xyz":[0.357482508929874543,0.186968388196129154,0.032400831691864182],"hpluv":[11.2629010575952293,405.204351077732667,50.3306190654122219],"hsluv":[11.2629010575952293,96.6948337079543592,50.3306190654122219]},"#ee1133":{"lch":[50.4763571232054318,156.685700791802191,9.74029685215880647],"luv":[50.4763571232054318,154.427033260746356,26.5084935615454427],"rgb":[0.933333333333333348,0.0666666666666666657,0.2],"xyz":[0.360570259662332249,0.188203488489112253,0.0486629855494753252],"hpluv":[9.74029685215880647,393.895198182016713,50.4763571232054318],"hsluv":[9.74029685215880647,96.7647175585846,50.4763571232054318]},"#ee1144":{"lch":[50.6856484752898382,151.333831494518165,7.50679337730589413],"luv":[50.6856484752898382,150.036806479185287,19.7708183022028514],"rgb":[0.933333333333333348,0.0666666666666666657,0.266666666666666663],"xyz":[0.365028254906551164,0.189986686586799847,0.0721417605023619568],"hpluv":[7.50679337730589413,378.870112575267399,50.6856484752898382],"hsluv":[7.50679337730589413,96.8605546889772455,50.6856484752898382]},"#ee1155":{"lch":[50.9635312364098496,144.984673036864649,4.46374659640210858],"luv":[50.9635312364098496,144.544902405536135,11.283909082431693],"rgb":[0.933333333333333348,0.0666666666666666657,0.333333333333333315],"xyz":[0.370990668945913149,0.19237165220254468,0.103543807776335872],"hpluv":[4.46374659640210858,360.995599227985224,50.9635312364098496],"hsluv":[4.46374659640210858,96.9801964566503,50.9635312364098496]},"#ee1166":{"lch":[51.3137360134299598,138.123816003378664,0.523151936541392],"luv":[51.3137360134299598,138.118058344046318,1.26115288756691357],"rgb":[0.933333333333333348,0.0666666666666666657,0.4],"xyz":[0.378575664719421334,0.19540565051194797,0.143491452183479834],"hpluv":[0.523151936541392,341.565705345826359,51.3137360134299598],"hsluv":[0.523151936541392,97.1198273857598764,51.3137360134299598]},"#ee1177":{"lch":[51.7388469835676119,131.353183798903302,355.627348241097309],"luv":[51.7388469835676119,130.970848560864681,-10.014775152519368],"rgb":[0.933333333333333348,0.0666666666666666657,0.466666666666666674],"xyz":[0.38788967773962324,0.199131255720028794,0.192545254089877743],"hpluv":[355.627348241097309,322.153744971780554,51.7388469835676119],"hsluv":[355.627348241097309,97.2745732157476,51.7388469835676119]},"#ee1188":{"lch":[52.2404115410600411,125.324707533591734,349.782339698165117],"luv":[52.2404115410600411,123.337180279157977,-22.2311106147846438],"rgb":[0.933333333333333348,0.0666666666666666657,0.533333333333333326],"xyz":[0.39903009484156704,0.203587422560806391,0.251218117493449911],"hpluv":[349.782339698165117,304.417375015566734,52.2404115410600411],"hsluv":[349.782339698165117,97.4391430985313605,52.2404115410600411]},"#ee1199":{"lch":[52.819032808459994,120.657103381490217,343.097768544337384],"luv":[52.819032808459994,115.44498939014953,-35.079780802050081],"rgb":[0.933333333333333348,0.0666666666666666657,0.6],"xyz":[0.412087058950639795,0.208810208204435549,0.31998479513456779],"hpluv":[343.097768544337384,289.869003225703352,52.819032808459994],"hsluv":[343.097768544337384,97.6083995478766298,52.819032808459994]},"#ee11aa":{"lch":[53.4744599034404615,117.843047501566133,335.812437212199143],"luv":[53.4744599034404615,107.497497568615216,-48.2832461723726496],"rgb":[0.933333333333333348,0.0666666666666666657,0.66666666666666663],"xyz":[0.427144751915892296,0.214833285390536644,0.399288644751566446],"hpluv":[335.812437212199143,279.638449078323276,53.4744599034404615],"hsluv":[335.812437212199143,97.7777799659692,53.4744599034404615]},"#ee11bb":{"lch":[54.205681814132376,117.167943285093472,328.276238054291071],"luv":[54.205681814132376,99.6622453247977376,-61.6097702517929662],"rgb":[0.933333333333333348,0.0666666666666666657,0.733333333333333282],"xyz":[0.44428234402322897,0.221688322233471402,0.489546629850208137],"hpluv":[328.276238054291071,274.285798241860448,54.205681814132376],"hsluv":[328.276238054291071,97.9435422525978652,54.205681814132376]},"#ee11cc":{"lch":[55.0110259993956703,118.672848043699901,320.878255441103249],"luv":[55.0110259993956703,92.0672263164348266,-74.8790404666182781],"rgb":[0.933333333333333348,0.0666666666666666657,0.8],"xyz":[0.463574719466950724,0.229405272410960204,0.591153140520478293],"hpluv":[320.878255441103249,273.741691636115945,55.0110259993956703],"hsluv":[320.878255441103249,98.102849778989,55.0110259993956703]},"#ee11dd":{"lch":[55.8882602794840864,122.182226882396691,313.952719233652829],"luv":[55.8882602794840864,84.8023500190691522,-87.9605479586430334],"rgb":[0.933333333333333348,0.0666666666666666657,0.866666666666666696],"xyz":[0.485093045017584212,0.238012602631213738,0.704482988420484291],"hpluv":[313.952719233652829,277.412976370396279,55.8882602794840864],"hsluv":[313.952719233652829,98.2537358693348608,55.8882602794840864]},"#ee11ee":{"lch":[56.83469533821048,127.382376320214306,307.715012949243601],"luv":[56.83469533821048,77.9241738866570302,-100.767519176899128],"rgb":[0.933333333333333348,0.0666666666666666657,0.933333333333333348],"xyz":[0.508905225283758922,0.247537474737683783,0.829893804489007514],"hpluv":[307.715012949243601,284.403630900032795,56.83469533821048],"hsluv":[307.715012949243601,98.3949944120453495,56.83469533821048]},"#ee11ff":{"lch":[57.8472847680859275,133.910906422249354,302.2526850652647],"luv":[57.8472847680859275,71.4621107907268254,-113.248830369952643],"rgb":[0.933333333333333348,0.0666666666666666657,1],"xyz":[0.535076273693590343,0.258005894101616451,0.967727992780789359],"hpluv":[302.2526850652647,293.746227206253536,57.8472847680859275],"hsluv":[302.2526850652647,99.99999999999892,57.8472847680859275]},"#ee2200":{"lch":[51.0646940471157222,160.407609402057773,13.5847947923325787],"luv":[51.0646940471157222,155.919944837816502,37.677207378671163],"rgb":[0.933333333333333348,0.133333333333333331,0],"xyz":[0.358311109026528296,0.19324482621041944,0.018434381776051962],"hpluv":[13.5847947923325787,398.605749597291435,51.0646940471157222],"hsluv":[13.5847947923325787,100.000000000002203,51.0646940471157222]},"#ee2211":{"lch":[51.1114738997186322,159.015005648229618,13.0939108674416342],"luv":[51.1114738997186322,154.880623331235768,36.0244991337056817],"rgb":[0.933333333333333348,0.133333333333333331,0.0666666666666666657],"xyz":[0.3593227745261654,0.193649492410274293,0.0237624867408075952],"hpluv":[13.0939108674416342,394.783534202752207,51.1114738997186322],"hsluv":[13.0939108674416342,96.7702863870018462,51.1114738997186322]},"#ee2222":{"lch":[51.1980191888258105,156.511980987808,12.1770506300618031],"luv":[51.1980191888258105,152.990533465747774,33.0135860305098348],"rgb":[0.933333333333333348,0.133333333333333331,0.133333333333333331],"xyz":[0.361198132664642457,0.194399635665665121,0.0336393729367867877],"hpluv":[12.1770506300618031,387.912483642854795,51.1980191888258105],"hsluv":[12.1770506300618031,90.899918517349,51.1980191888258105]},"#ee2233":{"lch":[51.340031013958,152.605977320930094,10.6487510890373542],"luv":[51.340031013958,149.977869701108148,28.1996970549978769],"rgb":[0.933333333333333348,0.133333333333333331,0.2],"xyz":[0.364285883397100163,0.19563473595864822,0.0499015267943979379],"hpluv":[10.6487510890373542,377.185287566809563,51.340031013958],"hsluv":[10.6487510890373542,91.0856949770771,51.340031013958]},"#ee2244":{"lch":[51.5440125284501391,147.416232714385046,8.4042516634418849],"luv":[51.5440125284501391,145.833202035739902,21.5458314229178391],"rgb":[0.933333333333333348,0.133333333333333331,0.266666666666666663],"xyz":[0.368743878641319078,0.197417934056335814,0.0733803017472845764],"hpluv":[8.4042516634418849,362.916246958463432,51.5440125284501391],"hsluv":[8.4042516634418849,91.3409150161676848,51.5440125284501391]},"#ee2255":{"lch":[51.8149196409757,141.25016266814734,5.34127242035781613],"luv":[51.8149196409757,140.636840571385164,13.1486701942394504],"rgb":[0.933333333333333348,0.133333333333333331,0.333333333333333315],"xyz":[0.374706292680681063,0.199802899672080647,0.104782349021258478],"hpluv":[5.34127242035781613,345.918233291596209,51.8149196409757],"hsluv":[5.34127242035781613,91.6602615743055082,51.8149196409757]},"#ee2266":{"lch":[52.1564522427987924,134.577740656965489,1.36671179444129165],"luv":[52.1564522427987924,134.539455426625494,3.20986196595936],"rgb":[0.933333333333333348,0.133333333333333331,0.4],"xyz":[0.382291288454189249,0.202836897981483938,0.144729993428402454],"hpluv":[1.36671179444129165,327.419481975304109,52.1564522427987924],"hsluv":[1.36671179444129165,92.0339967122243365,52.1564522427987924]},"#ee2277":{"lch":[52.5712108639856694,127.988129961564283,356.416786702014292],"luv":[52.5712108639856694,127.737923683219179,-7.99901644943552803],"rgb":[0.933333333333333348,0.133333333333333331,0.466666666666666674],"xyz":[0.391605301474391154,0.206562503189564761,0.193783795334800363],"hpluv":[356.416786702014292,308.930679724572485,52.5712108639856694],"hsluv":[356.416786702014292,92.4494947830095,52.5712108639856694]},"#ee2288":{"lch":[53.0608018273771194,122.127216672078461,350.491948161024197],"luv":[53.0608018273771194,120.449481512132621,-20.1737318195523763],"rgb":[0.933333333333333348,0.133333333333333331,0.533333333333333326],"xyz":[0.402745718576334955,0.211018670030342359,0.25245665873837253],"hpluv":[350.491948161024197,292.063965437042782,53.0608018273771194],"hsluv":[350.491948161024197,92.892885362452958,53.0608018273771194]},"#ee2299":{"lch":[53.6259244704506557,117.615935516390621,343.699890485995525],"luv":[53.6259244704506557,112.888334232708232,-33.0110933105844282],"rgb":[0.933333333333333348,0.133333333333333331,0.6],"xyz":[0.415802682685407654,0.216241455673971517,0.32122333637949041],"hpluv":[343.699890485995525,278.311211390643507,53.6259244704506557],"hsluv":[343.699890485995525,93.3505397228777412,53.6259244704506557]},"#ee22aa":{"lch":[54.266455218013121,114.955451111725907,336.284451026203612],"luv":[54.266455218013121,105.247863162980167,-46.2346519390706305],"rgb":[0.933333333333333348,0.133333333333333331,0.66666666666666663],"xyz":[0.43086037565066021,0.222264532860072611,0.400527185996489],"hpluv":[336.284451026203612,268.805062052359688,54.266455218013121],"hsluv":[336.284451026203612,93.8102001508292,54.266455218013121]},"#ee22bb":{"lch":[54.981534566577821,114.440827463928798,328.608334651454868],"luv":[54.981534566577821,97.6897319326175,-59.6105633722921],"rgb":[0.933333333333333348,0.133333333333333331,0.733333333333333282],"xyz":[0.447997967757996884,0.22911956970300737,0.490785171095130757],"hpluv":[328.608334651454868,264.121319791368,54.981534566577821],"hsluv":[328.608334651454868,94.2616688954678636,54.981534566577821]},"#ee22cc":{"lch":[55.7696584616915629,116.118636638570607,321.077185717181408],"luv":[55.7696584616915629,90.3394913251054419,-72.9541916679335856],"rgb":[0.933333333333333348,0.133333333333333331,0.8],"xyz":[0.467290343201718583,0.236836519880496171,0.592391681765400913],"hpluv":[321.077185717181408,264.206361207665168,55.7696584616915629],"hsluv":[321.077185717181408,94.6970823725699518,55.7696584616915629]},"#ee22dd":{"lch":[56.6287730491083749,119.812596042269817,314.038835862099],"luv":[56.6287730491083749,83.2872216309056,-86.1295354880806201],"rgb":[0.933333333333333348,0.133333333333333331,0.866666666666666696],"xyz":[0.488808668752352182,0.245443850100749705,0.70572152966540691],"hpluv":[314.038835862099,268.475495638829329,56.6287730491083749],"hsluv":[314.038835862099,95.1108639535381,56.6287730491083749]},"#ee22ee":{"lch":[57.5563705104872128,125.203701850491953,307.715012949243658],"luv":[57.5563705104872128,76.5914038981754,-99.0440498261932163],"rgb":[0.933333333333333348,0.133333333333333331,0.933333333333333348],"xyz":[0.512620849018526892,0.254968722207219722,0.831132345733930133],"hpluv":[307.715012949243658,276.03432908057755,57.5563705104872128],"hsluv":[307.715012949243658,95.4994708803944263,57.5563705104872128]},"#ee22ff":{"lch":[58.5495832280214046,131.922896299071255,302.192710378625122],"luv":[58.5495832280214046,70.2843784028787582,-111.641196341030223],"rgb":[0.933333333333333348,0.133333333333333331,1],"xyz":[0.538791897428358313,0.265437141571152446,0.968966534025712],"hpluv":[302.192710378625122,285.914180736870946,58.5495832280214046],"hsluv":[302.192710378625122,99.9999999999989,58.5495832280214046]},"#ee3300":{"lch":[52.4512471844783761,153.77210005382733,15.1254552240259841],"luv":[52.4512471844783761,148.444942331914945,40.1242800687903269],"rgb":[0.933333333333333348,0.2,0],"xyz":[0.364428831115539142,0.205480270388441244,0.0204736224723888437],"hpluv":[15.1254552240259841,372.015515114283232,52.4512471844783761],"hsluv":[15.1254552240259841,100.000000000002174,52.4512471844783761]},"#ee3311":{"lch":[52.4961529429458693,152.446596739109111,14.6331501802662043],"luv":[52.4961529429458693,147.501711829562538,38.5124637576621893],"rgb":[0.933333333333333348,0.2,0.0666666666666666657],"xyz":[0.365440496615176247,0.205884936588296097,0.0258017274371444769],"hpluv":[14.6331501802662043,368.493287978140756,52.4961529429458693],"hsluv":[14.6331501802662043,96.9493433827183395,52.4961529429458693]},"#ee3322":{"lch":[52.5792408568970302,150.061966488521733,13.7129404445972121],"luv":[52.5792408568970302,145.784540850223095,35.5733247742160685],"rgb":[0.933333333333333348,0.2,0.133333333333333331],"xyz":[0.367315854753653304,0.206635079843686925,0.0356786136331236695],"hpluv":[13.7129404445972121,362.155969729293304,52.5792408568970302],"hsluv":[13.7129404445972121,91.3983957113456,52.5792408568970302]},"#ee3333":{"lch":[52.7156069212027916,146.335083442311,12.177050630061796],"luv":[52.7156069212027916,143.042611430097821,30.8669396171076365],"rgb":[0.933333333333333348,0.2,0.2],"xyz":[0.370403605486111,0.207870180136670024,0.0519407674907348127],"hpluv":[12.177050630061796,352.248031751653059,52.7156069212027916],"hsluv":[12.177050630061796,82.5426319963487316,52.7156069212027916]},"#ee3344":{"lch":[52.9115382124740705,141.372894204534333,9.91688783885485314],"luv":[52.9115382124740705,139.260586308771792,24.3471623953096028],"rgb":[0.933333333333333348,0.2,0.266666666666666663],"xyz":[0.374861600730329925,0.209653378234357618,0.0754195424436214512],"hpluv":[9.91688783885485314,339.043238938553714,52.9115382124740705],"hsluv":[9.91688783885485314,83.0163224279527867,52.9115382124740705]},"#ee3355":{"lch":[53.1718605143623222,135.462446214194244,6.82400118051175664],"luv":[53.1718605143623222,134.502806079917804,16.0956357737583851],"rgb":[0.933333333333333348,0.2,0.333333333333333315],"xyz":[0.38082401476969191,0.212038343850102451,0.106821589717595367],"hpluv":[6.82400118051175664,323.278173463789,53.1718605143623222],"hsluv":[6.82400118051175664,83.6110915378108,53.1718605143623222]},"#ee3366":{"lch":[53.5002196972096158,129.050901787066266,2.79642975700151464],"luv":[53.5002196972096158,128.89722530875369,6.29607494868134765],"rgb":[0.933333333333333348,0.2,0.4],"xyz":[0.388409010543200095,0.215072342159505742,0.146769234124739328],"hpluv":[2.79642975700151464,306.086943567777439,53.5002196972096158],"hsluv":[2.79642975700151464,84.310080928774866,53.5002196972096158]},"#ee3377":{"lch":[53.8992319384372252,122.709031404530748,357.759441587930837],"luv":[53.8992319384372252,122.615219389586755,-4.79732866099687261],"rgb":[0.933333333333333348,0.2,0.466666666666666674],"xyz":[0.397723023563402,0.218797947367586565,0.195823036031137238],"hpluv":[357.759441587930837,288.89051161323988,53.8992319384372252],"hsluv":[357.759441587930837,85.0909052409050872,53.8992319384372252]},"#ee3388":{"lch":[54.3705825415329,117.074862235921088,351.703100554939169],"luv":[54.3705825415329,115.849509832295894,-16.8942131860788436],"rgb":[0.933333333333333348,0.2,0.533333333333333326],"xyz":[0.408863440665345801,0.223254114208364163,0.254495899434709405],"hpluv":[351.703100554939169,273.2366774905733,54.3705825415329],"hsluv":[351.703100554939169,85.9285066952877,54.3705825415329]},"#ee3399":{"lch":[54.9151057717267292,112.774715889061866,344.730687431692274],"luv":[54.9151057717267292,108.793611621096844,-29.6999430015709507],"rgb":[0.933333333333333348,0.2,0.6],"xyz":[0.4219204047744185,0.22847689985199332,0.323262577075827284],"hpluv":[344.730687431692274,260.590898768244074,54.9151057717267292],"hsluv":[344.730687431692274,86.7978129198036896,54.9151057717267292]},"#ee33aa":{"lch":[55.5328602544255,110.325325240584178,337.093995035693695],"luv":[55.5328602544255,101.625579555338021,-42.9408776049389047],"rgb":[0.933333333333333348,0.2,0.66666666666666663],"xyz":[0.436978097739671056,0.234499977038094415,0.402566426692825885],"hpluv":[337.093995035693695,252.095155701888757,55.5328602544255],"hsluv":[337.093995035693695,87.6758366884225779,55.5328602544255]},"#ee33bb":{"lch":[56.2232062298057826,110.03895679054483,329.178007243031175],"luv":[56.2232062298057826,94.4974163460242664,-56.3809392922602726],"rgb":[0.933333333333333348,0.2,0.733333333333333282],"xyz":[0.454115689847007731,0.241355013881029173,0.492824411791467631],"hpluv":[329.178007243031175,248.353441541401367,56.2232062298057826],"hsluv":[329.178007243031175,88.5430404155392665,56.2232062298057826]},"#ee33cc":{"lch":[56.9848866198670123,111.971807156825847,321.417898872172259],"luv":[56.9848866198670123,87.5300782585605788,-69.8295854062993726],"rgb":[0.933333333333333348,0.2,0.8],"xyz":[0.47340806529072943,0.249071964058517975,0.594430922461737787],"hpluv":[321.417898872172259,249.337916143678171,56.9848866198670123],"hsluv":[321.417898872172259,89.3839737673679764,56.9848866198670123]},"#ee33dd":{"lch":[57.8161114567543848,115.945977330727956,314.185904182223908],"luv":[57.8161114567543848,80.813036999634221,-83.1427850752753557],"rgb":[0.933333333333333348,0.2,0.866666666666666696],"xyz":[0.494926390841363029,0.257679294278771509,0.707760770361743785],"hpluv":[314.185904182223908,254.475591939392586,57.8161114567543848],"hsluv":[314.185904182223908,90.1873197259471482,57.8161114567543848]},"#ee33ee":{"lch":[58.7146439354817886,121.632779311923699,307.715012949243715],"luv":[58.7146439354817886,74.4069479563921448,-96.2192241652253415],"rgb":[0.933333333333333348,0.2,0.933333333333333348],"xyz":[0.518738571107537738,0.267204166385241526,0.833171586430267],"hpluv":[307.715012949243715,262.87151341613469,58.7146439354817886],"hsluv":[307.715012949243715,90.9455375510239747,58.7146439354817886]},"#ee33ff":{"lch":[59.6778857977730581,128.651158016084139,302.091050100274117],"luv":[59.6778857977730581,68.3480180420837229,-108.993893813362092],"rgb":[0.933333333333333348,0.2,1],"xyz":[0.544909619517369159,0.27767258574917425,0.971005774722048853],"hpluv":[302.091050100274117,273.551812848380507,59.6778857977730581],"hsluv":[302.091050100274117,99.9999999999986784,59.6778857977730581]},"#ee4400":{"lch":[54.3591594970822598,145.188828472067655,17.4116852889838647],"luv":[54.3591594970822598,138.536177662057611,43.4456372018905412],"rgb":[0.933333333333333348,0.266666666666666663,0],"xyz":[0.373261401598505183,0.223145411354373546,0.023417812633377437],"hpluv":[17.4116852889838647,338.922026437804789,54.3591594970822598],"hsluv":[17.4116852889838647,100.000000000002217,54.3591594970822598]},"#ee4411":{"lch":[54.4016650840252112,143.940172045268554,16.9187727396215735],"luv":[54.4016650840252112,137.710194578710485,41.8888462184768713],"rgb":[0.933333333333333348,0.266666666666666663,0.0666666666666666657],"xyz":[0.374273067098142287,0.223550077554228399,0.0287459175981330667],"hpluv":[16.9187727396215735,335.744689025208913,54.4016650840252112],"hsluv":[16.9187727396215735,97.1754310281257574,54.4016650840252112]},"#ee4422":{"lch":[54.4803236312215944,141.690847159829417,15.9963876830432117],"luv":[54.4803236312215944,136.204446081142294,39.0467032744039173],"rgb":[0.933333333333333348,0.266666666666666663,0.133333333333333331],"xyz":[0.376148425236619344,0.224300220809619227,0.0386228037941122662],"hpluv":[15.9963876830432117,330.020900264600868,54.4803236312215944],"hsluv":[15.9963876830432117,92.0288025918740118,54.4803236312215944]},"#ee4433":{"lch":[54.6094526105793534,138.167821982121467,14.4538486850626899],"luv":[54.6094526105793534,133.794673004457735,34.4867004352900608],"rgb":[0.933333333333333348,0.266666666666666663,0.2],"xyz":[0.37923617596907705,0.225535321102602326,0.0548849576517234095],"hpluv":[14.4538486850626899,321.054243711338643,54.6094526105793534],"hsluv":[14.4538486850626899,83.7991355104008591,54.6094526105793534]},"#ee4444":{"lch":[54.7950558424119549,133.462657054844783,12.1770506300618084],"luv":[54.7950558424119549,130.459808710538397,28.151716454753565],"rgb":[0.933333333333333348,0.266666666666666663,0.266666666666666663],"xyz":[0.383694171213295965,0.22731851920028992,0.078363732604610048],"hpluv":[12.1770506300618084,309.070617226475065,54.7950558424119549],"hsluv":[12.1770506300618084,79.6495466444067546,54.7950558424119549]},"#ee4455":{"lch":[55.04178262974213,127.837203216659944,9.0482956458548145],"luv":[55.04178262974213,126.246413461005446,20.1045670057943724],"rgb":[0.933333333333333348,0.266666666666666663,0.333333333333333315],"xyz":[0.38965658525265795,0.229703484816034753,0.109765779878583963],"hpluv":[9.0482956458548145,294.716259365516066,55.04178262974213],"hsluv":[9.0482956458548145,80.0457187830871106,55.04178262974213]},"#ee4466":{"lch":[55.3531965298607105,121.710491561886229,4.95183922571805102],"luv":[55.3531965298607105,121.256220070521849,10.5058483924504795],"rgb":[0.933333333333333348,0.266666666666666663,0.4],"xyz":[0.397241581026166135,0.232737483125438044,0.149713424285727925],"hpluv":[4.95183922571805102,279.013127650855779,55.3531965298607105],"hsluv":[4.95183922571805102,80.511500113091131,55.3531965298607105]},"#ee4477":{"lch":[55.7319177265462855,115.631099927359429,359.795147057523252],"luv":[55.7319177265462855,115.63036086114974,-0.41342173536332294],"rgb":[0.933333333333333348,0.266666666666666663,0.466666666666666674],"xyz":[0.406555594046368041,0.236463088333518867,0.198767226192125834],"hpluv":[359.795147057523252,263.275227085929203,55.7319177265462855],"hsluv":[359.795147057523252,81.0316034214938412,55.7319177265462855]},"#ee4488":{"lch":[56.1797144871475069,110.229334232011354,353.550243523911263],"luv":[56.1797144871475069,109.531664472369371,-12.3822697089333467],"rgb":[0.933333333333333348,0.266666666666666663,0.533333333333333326],"xyz":[0.417696011148311841,0.240919255174296465,0.257440089595698],"hpluv":[353.550243523911263,248.975712077739217,56.1797144871475069],"hsluv":[353.550243523911263,81.5885451367485217,56.1797144871475069]},"#ee4499":{"lch":[56.6975745677487,106.142668326601637,346.310852745323245],"luv":[56.6975745677487,103.127575819694869,-25.1190992084518889],"rgb":[0.933333333333333348,0.266666666666666663,0.6],"xyz":[0.430752975257384541,0.246142040817925623,0.326206767236815909],"hpluv":[346.310852745323245,237.55536706581762,56.6975745677487],"hsluv":[346.310852745323245,82.1643886194057,56.6975745677487]},"#ee44aa":{"lch":[57.2857706939250164,103.913945498461985,338.339047623856459],"luv":[57.2857706939250164,96.5759938315173798,-38.356035828954532],"rgb":[0.933333333333333348,0.266666666666666663,0.66666666666666663],"xyz":[0.445810668222637096,0.252165118004026745,0.405510616853814509],"hpluv":[338.339047623856459,230.179372132151769,57.2857706939250164],"hsluv":[338.339047623856459,82.742186475039972,57.2857706939250164]},"#ee44bb":{"lch":[57.9439265752057224,103.883653730246948,330.054621671216069],"luv":[57.9439265752057224,90.015359877018625,-51.8560362788815183],"rgb":[0.933333333333333348,0.266666666666666663,0.733333333333333282],"xyz":[0.462948260329973771,0.259020154846961503,0.495768601952456256],"hpluv":[330.054621671216069,227.498543532010189,57.9439265752057224],"hsluv":[330.054621671216069,83.3069826860278,57.9439265752057224]},"#ee44cc":{"lch":[58.6710858878032866,106.123661593235155,321.940977409416575],"luv":[58.6710858878032866,83.5592367986741493,-65.4223623509468837],"rgb":[0.933333333333333348,0.266666666666666663,0.8],"xyz":[0.48224063577369547,0.266737105024450305,0.597375112622726356],"hpluv":[321.940977409416575,229.523641905846944,58.6710858878032866],"hsluv":[321.940977409416575,83.8463488142865288,58.6710858878032866]},"#ee44dd":{"lch":[59.4657843936948041,110.45324904546132,314.41066654104867],"luv":[59.4657843936948041,77.2947793232282407,-78.9014405069524116],"rgb":[0.933333333333333348,0.266666666666666663,0.866666666666666696],"xyz":[0.503758961324329069,0.275344435244703811,0.710704960522732354],"hpluv":[314.41066654104867,235.695163072106425,59.4657843936948041],"hsluv":[314.41066654104867,84.3505154479208699,59.4657843936948041]},"#ee44ee":{"lch":[60.3261240941145189,116.527805305600168,307.715012949243771],"luv":[60.3261240941145189,71.28406005268711,-92.180866733529669],"rgb":[0.933333333333333348,0.266666666666666663,0.933333333333333348],"xyz":[0.527571141590503778,0.284869307351173828,0.836115776591255577],"hpluv":[307.715012949243771,245.111377339321677,60.3261240941145189],"hsluv":[307.715012949243771,84.8122051950840898,60.3261240941145189]},"#ee44ff":{"lch":[61.2498476847862321,123.946828366557639,301.937515996566106],"luv":[61.2498476847862321,65.5671420475233617,-105.184438705774298],"rgb":[0.933333333333333348,0.266666666666666663,1],"xyz":[0.553742190000335199,0.295337726715106552,0.973949964883037422],"hpluv":[301.937515996566106,256.785047727470896,61.2498476847862321],"hsluv":[301.937515996566106,99.9999999999986073,61.2498476847862321]},"#ee5500":{"lch":[56.7595334156469136,135.29504726150742,20.5772435658132551],"luv":[56.7595334156469136,126.663115619922038,47.5521288161507414],"rgb":[0.933333333333333348,0.333333333333333315,0],"xyz":[0.385074658312851148,0.24677192478306581,0.0273555648714926478],"hpluv":[20.5772435658132551,302.470071141489655,56.7595334156469136],"hsluv":[20.5772435658132551,100.000000000002331,56.7595334156469136]},"#ee5511":{"lch":[56.7992830001534799,134.121232245619609,20.0864579205919],"luv":[56.7992830001534799,125.963368804879124,46.0622910677426],"rgb":[0.933333333333333348,0.333333333333333315,0.0666666666666666657],"xyz":[0.386086323812488252,0.247176590982920663,0.0326836698362482775],"hpluv":[20.0864579205919,299.636011805134103,56.7992830001534799],"hsluv":[20.0864579205919,97.4301566790671245,56.7992830001534799]},"#ee5522":{"lch":[56.8728535321199331,132.003018379302972,19.1666168944474329],"luv":[56.8728535321199331,124.685803630375247,43.3387498007741385],"rgb":[0.933333333333333348,0.333333333333333315,0.133333333333333331],"xyz":[0.387961681950965309,0.247926734238311491,0.042560556032227477],"hpluv":[19.1666168944474329,294.522290528054612,56.8728535321199331],"hsluv":[19.1666168944474329,92.7404035063857748,56.8728535321199331]},"#ee5533":{"lch":[56.9936637318031813,128.675597773649343,17.6241311186411558],"luv":[56.9936637318031813,122.635981466153211,38.9592801812266671],"rgb":[0.933333333333333348,0.333333333333333315,0.2],"xyz":[0.391049432683423,0.24916183453129459,0.0588227098898386203],"hpluv":[17.6241311186411558,286.489655583397507,56.9936637318031813],"hsluv":[17.6241311186411558,85.2217597168545353,56.9936637318031813]},"#ee5544":{"lch":[57.1673833238913431,124.212647444540593,15.3377586553938237],"luv":[57.1673833238913431,119.788604494467549,32.8553194848226298],"rgb":[0.933333333333333348,0.333333333333333315,0.266666666666666663],"xyz":[0.39550742792764193,0.250945032628982156,0.0823014848427252588],"hpluv":[15.3377586553938237,275.712737821839653,57.1673833238913431],"hsluv":[15.3377586553938237,78.8138286806830308,57.1673833238913431]},"#ee5555":{"lch":[57.3984455800741813,118.847398490007407,12.1770506300618084],"luv":[57.3984455800741813,116.173386735287238,25.068871978930396],"rgb":[0.933333333333333348,0.333333333333333315,0.333333333333333315],"xyz":[0.401469841967003915,0.253329998244727,0.113703532116699174],"hpluv":[12.1770506300618084,262.741620924066638,57.3984455800741813],"hsluv":[12.1770506300618084,79.1862648733910817,57.3984455800741813]},"#ee5566":{"lch":[57.6903015433249777,112.967028718059339,8.00617638558467881],"luv":[57.6903015433249777,111.865945908872092,15.7340307391382019],"rgb":[0.933333333333333348,0.333333333333333315,0.4],"xyz":[0.409054837740512101,0.256363996554130336,0.153651176523843136],"hpluv":[8.00617638558467881,248.478160638648092,57.6903015433249777],"hsluv":[8.00617638558467881,79.626682914648967,57.6903015433249777]},"#ee5577":{"lch":[58.0455538260385,107.095574323644513,2.70497781295448236],"luv":[58.0455538260385,106.976246145051803,5.05418642558356],"rgb":[0.933333333333333348,0.333333333333333315,0.466666666666666674],"xyz":[0.418368850760714,0.260089601762211131,0.202704978430241045],"hpluv":[2.70497781295448236,234.121819944652458,58.0455538260385],"hsluv":[2.70497781295448236,80.121743738144815,58.0455538260385]},"#ee5588":{"lch":[58.4660405277881523,101.857434077675435,356.214905006905212],"luv":[58.4660405277881523,101.63524992227579,-6.72405012805051783],"rgb":[0.933333333333333348,0.333333333333333315,0.533333333333333326],"xyz":[0.429509267862657806,0.264545768602988729,0.261377841833813185],"hpluv":[356.214905006905212,221.069268787819283,58.4660405277881523],"hsluv":[356.214905006905212,80.6557447307456385,58.4660405277881523]},"#ee5599":{"lch":[58.9528982622070714,97.9100075268454475,348.609359498013816],"luv":[58.9528982622070714,95.9815181358717808,-19.3369529719717974],"rgb":[0.933333333333333348,0.333333333333333315,0.6],"xyz":[0.442566231971730506,0.269768554246617887,0.33014451947493112],"hpluv":[348.609359498013816,210.746926462762332,58.9528982622070714],"hsluv":[348.609359498013816,81.2121283261168685,58.9528982622070714]},"#ee55aa":{"lch":[59.5066178042993812,95.8379147411847327,340.160257686713578],"luv":[59.5066178042993812,90.1495111294489817,-32.5264745255299346],"rgb":[0.933333333333333348,0.333333333333333315,0.66666666666666663],"xyz":[0.457623924936983062,0.275791631432719,0.40944836909192972],"hpluv":[340.160257686713578,204.36730380296666,59.5066178042993812],"hsluv":[340.160257686713578,81.7747968800248515,59.5066178042993812]},"#ee55bb":{"lch":[60.1270988419473156,96.02691270708236,331.338718337462637],"luv":[60.1270988419473156,84.2607812264238305,-46.0574501157669],"rgb":[0.933333333333333348,0.333333333333333315,0.733333333333333282],"xyz":[0.474761517044319736,0.282646668275653767,0.499706354190571467],"hpluv":[331.338718337462637,202.657202566236862,60.1270988419473156],"hsluv":[331.338718337462637,82.3290961128101202,60.1270988419473156]},"#ee55cc":{"lch":[60.8137066481247359,98.5745380895967855,322.704854800823],"luv":[60.8137066481247359,78.4184921400445774,-59.728382282288],"rgb":[0.933333333333333348,0.333333333333333315,0.8],"xyz":[0.494053892488041435,0.290363618453142569,0.601312864860841567],"hpluv":[322.704854800823,205.68499115665557,60.8137066481247359],"hsluv":[322.704854800823,82.862416210457269,60.8137066481247359]},"#ee55dd":{"lch":[61.5653314057239669,103.296154527471415,314.73674606959],"luv":[61.5653314057239669,72.7050419742243577,-73.3762387404091925],"rgb":[0.933333333333333348,0.333333333333333315,0.866666666666666696],"xyz":[0.515572218038675,0.298970948673396075,0.714642712760847565],"hpluv":[314.73674606959,212.905685416828703,61.5653314057239669],"hsluv":[314.73674606959,83.3644351442966496,61.5653314057239669]},"#ee55ee":{"lch":[62.3804497031794796,109.822432229930158,307.715012949243942],"luv":[62.3804497031794796,67.1821530808003473,-86.8764923804219364],"rgb":[0.933333333333333348,0.333333333333333315,0.933333333333333348],"xyz":[0.539384398304849744,0.308495820779866092,0.840053528829370788],"hpluv":[307.715012949243942,223.399338603574023,62.3804497031794796],"hsluv":[307.715012949243942,83.8270760150894318,62.3804497031794796]},"#ee55ff":{"lch":[63.2571870514493355,117.722992850638121,301.718618818209791],"luv":[63.2571870514493355,61.8926401270512301,-100.139922827085911],"rgb":[0.933333333333333348,0.333333333333333315,1],"xyz":[0.565555446714681165,0.318964240143798816,0.977887717121152633],"hpluv":[301.718618818209791,236.15152010236153,63.2571870514493355],"hsluv":[301.718618818209791,99.9999999999986358,63.2571870514493355]},"#ee6600":{"lch":[59.6010827175637274,124.896403377083828,24.7633991985742],"luv":[59.6010827175637274,113.411584725929117,52.315619335764687],"rgb":[0.933333333333333348,0.4,0],"xyz":[0.400102716018697624,0.276828040194759151,0.032364917440108],"hpluv":[24.7633991985742,265.910269095548301,59.6010827175637274],"hsluv":[24.7633991985742,100.000000000002458,59.6010827175637274]},"#ee6611":{"lch":[59.6379025762155521,123.785593795891074,24.2806773941880323],"luv":[59.6379025762155521,112.835768380983566,50.9014990474188],"rgb":[0.933333333333333348,0.4,0.0666666666666666657],"xyz":[0.401114381518334728,0.277232706394614,0.0376930224048636284],"hpluv":[24.2806773941880323,263.38259338209491,59.6379025762155521],"hsluv":[24.2806773941880323,97.6946368166697425,59.6379025762155521]},"#ee6622":{"lch":[59.7060621192549235,121.776511986799889,23.3741045361832462],"luv":[59.7060621192549235,111.782804083827386,48.312768320888857],"rgb":[0.933333333333333348,0.4,0.133333333333333331],"xyz":[0.402989739656811785,0.277982849650004804,0.0475699086008428279],"hpluv":[23.3741045361832462,258.812011755725052,59.7060621192549235],"hsluv":[23.3741045361832462,93.4807634058905847,59.7060621192549235]},"#ee6633":{"lch":[59.818019190990654,118.60827278102343,21.848413141726418],"luv":[59.818019190990654,110.088842330137865,44.1403349161252621],"rgb":[0.933333333333333348,0.4,0.2],"xyz":[0.406077490389269491,0.279217949942987931,0.0638320624584539642],"hpluv":[21.848413141726418,251.606745577849637,59.818019190990654],"hsluv":[21.848413141726418,86.7067277856042722,59.818019190990654]},"#ee6644":{"lch":[59.9790782653121,114.334087778781978,19.5741908506499591],"luv":[59.9790782653121,107.726545105393242,38.3050271878496318],"rgb":[0.933333333333333348,0.4,0.266666666666666663],"xyz":[0.410535485633488406,0.281001148040675497,0.0873108374113406],"hpluv":[19.5741908506499591,241.888527179759762,59.9790782653121],"hsluv":[19.5741908506499591,77.7164494297015551,59.9790782653121]},"#ee6655":{"lch":[60.1934276072459227,109.155383321287928,16.4048569251700904],"luv":[60.1934276072459227,104.711671726378157,30.827966398783424],"rgb":[0.933333333333333348,0.4,0.333333333333333315],"xyz":[0.416497899672850391,0.283386113656420358,0.118712884685314518],"hpluv":[16.4048569251700904,230.109957101660228,60.1934276072459227],"hsluv":[16.4048569251700904,78.0627041699660822,60.1934276072459227]},"#ee6666":{"lch":[60.4643778553048179,103.423697151150392,12.1770506300619203],"luv":[60.4643778553048179,101.096711576265875,21.8155000143976636],"rgb":[0.933333333333333348,0.4,0.4],"xyz":[0.424082895446358576,0.286420111965823676,0.15866052909245848],"hpluv":[12.1770506300619203,217.050003231938149,60.4643778553048179],"hsluv":[12.1770506300619203,78.4746058088251601,60.4643778553048179]},"#ee6677":{"lch":[60.7944870758990845,97.6355083856116,6.72933164538236728],"luv":[60.7944870758990845,96.9628770314166388,11.4408468002682859],"rgb":[0.933333333333333348,0.4,0.466666666666666674],"xyz":[0.433396908466560482,0.290145717173904472,0.207714330998856389],"hpluv":[6.72933164538236728,203.79002370037793,60.7944870758990845],"hsluv":[6.72933164538236728,78.9407958828298177,60.7944870758990845]},"#ee6688":{"lch":[61.1856375663111294,92.4106294683140419,359.951978350089689],"luv":[61.1856375663111294,92.4105970103857,-0.0774526573243247418],"rgb":[0.933333333333333348,0.4,0.533333333333333326],"xyz":[0.444537325568504282,0.294601884014682069,0.266387194402428529],"hpluv":[359.951978350089689,191.6512981090967,61.1856375663111294],"hsluv":[359.951978350089689,79.4474583444281706,61.1856375663111294]},"#ee6699":{"lch":[61.6390913266860281,88.437141466109523,351.875732288608958],"luv":[61.6390913266860281,87.5495765855601746,-12.4979850530316181],"rgb":[0.933333333333333348,0.4,0.6],"xyz":[0.457594289677577,0.299824669658311227,0.335153872043546464],"hpluv":[351.875732288608958,182.061365307506776,61.6390913266860281],"hsluv":[351.875732288608958,79.9795786975914353,61.6390913266860281]},"#ee66aa":{"lch":[62.1555369290736337,86.3639450462453624,342.77320214224],"luv":[62.1555369290736337,82.489654306882187,-25.5770978862333536],"rgb":[0.933333333333333348,0.4,0.66666666666666663],"xyz":[0.472651982642829538,0.305847746844412349,0.414457721660545064],"hpluv":[342.77320214224,176.316102232879075,62.1555369290736337],"hsluv":[342.77320214224,80.5221008496243,62.1555369290736337]},"#ee66bb":{"lch":[62.735134131647655,86.6495273870251168,333.187217955259598],"luv":[62.735134131647655,77.3334216921159765,-39.0855790002422907],"rgb":[0.933333333333333348,0.4,0.733333333333333282],"xyz":[0.489789574750166212,0.312702783687347108,0.504715706759186755],"hpluv":[333.187217955259598,175.264796900814019,62.735134131647655],"hsluv":[333.187217955259598,81.0608551813628679,62.735134131647655]},"#ee66cc":{"lch":[63.3775592853136516,89.4351699392481549,323.800511847500275],"luv":[63.3775592853136516,72.1711045195964545,-52.8202735176909144],"rgb":[0.933333333333333348,0.4,0.8],"xyz":[0.509081950193887911,0.320419733864835909,0.606322217429456911],"hpluv":[323.800511847500275,179.065596131410075,63.3775592853136516],"hsluv":[323.800511847500275,81.5831918811758072,63.3775592853136516]},"#ee66dd":{"lch":[64.0820526997291751,94.5324861988586918,315.200217206616742],"luv":[64.0820526997291751,67.0777383779463179,-66.6105694393704795],"rgb":[0.933333333333333348,0.4,0.866666666666666696],"xyz":[0.53060027574452151,0.329027064085089416,0.719652065329462909],"hpluv":[315.200217206616742,187.190580763285084,64.0820526997291751],"hsluv":[315.200217206616742,82.0783141076240241,64.0820526997291751]},"#ee66ee":{"lch":[64.8474680131467,101.534802649490857,307.715012949244169],"luv":[64.8474680131467,62.1123254704966499,-80.32045302236628],"rgb":[0.933333333333333348,0.4,0.933333333333333348],"xyz":[0.55441245601069622,0.338551936191559433,0.845062881397986132],"hpluv":[307.715012949244169,198.683239249207219,64.8474680131467],"hsluv":[307.715012949244169,82.5373501246235,64.8474680131467]},"#ee66ff":{"lch":[65.6723229483953759,109.966867844968618,301.415067453827589],"luv":[65.6723229483953759,57.3184789471434897,-93.8472375449520797],"rgb":[0.933333333333333348,0.4,1],"xyz":[0.580583504420527641,0.349020355555492157,0.982897069689768088],"hpluv":[301.415067453827589,212.480364902930489,65.6723229483953759],"hsluv":[301.415067453827589,99.9999999999984794,65.6723229483953759]},"#ee7700":{"lch":[62.8217158048736763,114.851740825540901,30.0981414692213356],"luv":[62.8217158048736763,99.3660150566978,57.5961580525066097],"rgb":[0.933333333333333348,0.466666666666666674,0],"xyz":[0.418556454072115225,0.313735516301594908,0.0385161634579137],"hpluv":[30.0981414692213356,231.988851559171735,62.8217158048736763],"hsluv":[30.0981414692213356,100.000000000002203,62.8217158048736763]},"#ee7711":{"lch":[62.8555901763931075,113.786950077776382,29.6341042910547],"luv":[62.8555901763931075,98.9037041004629458,56.2630191441096059],"rgb":[0.933333333333333348,0.466666666666666674,0.0666666666666666657],"xyz":[0.419568119571752329,0.314140182501449761,0.0438442684226693288],"hpluv":[29.6341042910547,229.71421718860654,62.8555901763931075],"hsluv":[29.6341042910547,97.9532933827149463,62.8555901763931075]},"#ee7722":{"lch":[62.9183073649527955,111.855609649988921,28.7604537228304977],"luv":[62.9183073649527955,98.0569879769147406,53.8191835600085398],"rgb":[0.933333333333333348,0.466666666666666674,0.133333333333333331],"xyz":[0.421443477710229386,0.314890325756840561,0.0537211546186485284],"hpluv":[28.7604537228304977,225.59011469442973,62.9183073649527955],"hsluv":[28.7604537228304977,94.206312745702121,62.9183073649527955]},"#ee7733":{"lch":[63.0213536795682501,108.794922632811733,27.2836719807386174],"luv":[63.0213536795682501,96.6912591797812411,49.8711899688373208],"rgb":[0.933333333333333348,0.466666666666666674,0.2],"xyz":[0.424531228442687092,0.316125426049823688,0.0699833084762596647],"hpluv":[27.2836719807386174,219.058559128587405,63.0213536795682501],"hsluv":[27.2836719807386174,88.1668112455654,63.0213536795682501]},"#ee7744":{"lch":[63.1696562136619235,104.634411539935968,25.0668522383795889],"luv":[63.1696562136619235,94.7793214210065571,44.3310309972846497],"rgb":[0.933333333333333348,0.466666666666666674,0.266666666666666663],"xyz":[0.428989223686906,0.317908624147511254,0.0934620834291463],"hpluv":[25.0668522383795889,210.186756956079222,63.1696562136619235],"hsluv":[25.0668522383795889,79.7210233436604199,63.1696562136619235]},"#ee7755":{"lch":[63.3671413614491286,99.5393983003294096,21.9455950678528],"luv":[63.3671413614491286,92.3266881357997278,37.2004633286522051],"rgb":[0.933333333333333348,0.466666666666666674,0.333333333333333315],"xyz":[0.434951637726268,0.320293589763256115,0.124864130703120219],"hpluv":[21.9455950678528,199.328877993420377,63.3671413614491286],"hsluv":[21.9455950678528,76.6090179557391,63.3671413614491286]},"#ee7766":{"lch":[63.6169573916324822,93.8195852400781263,17.7221756586824775],"luv":[63.6169573916324822,89.367258373090749,28.5588463614608763],"rgb":[0.933333333333333348,0.466666666666666674,0.4],"xyz":[0.442536633499776177,0.323327588072659433,0.16481177511026418],"hpluv":[17.7221756586824775,187.13711975631665,63.6169573916324822],"hsluv":[17.7221756586824775,76.9903860669667,63.6169573916324822]},"#ee7777":{"lch":[63.9215909451051232,87.936547917610838,12.1770506300618937],"luv":[63.9215909451051232,85.9580160709841863,18.5487447771187846],"rgb":[0.933333333333333348,0.466666666666666674,0.466666666666666674],"xyz":[0.451850646519978083,0.327053193280740229,0.21386557701666209],"hpluv":[12.1770506300618937,174.56660414904394,63.9215909451051232],"hsluv":[12.1770506300618937,77.4248320836617268,63.9215909451051232]},"#ee7788":{"lch":[64.2829374304473,82.5014209284754543,5.11726519711922112],"luv":[64.2829374304473,82.1725895095950847,7.35866757674724514],"rgb":[0.933333333333333348,0.466666666666666674,0.533333333333333326],"xyz":[0.462991063621921883,0.331509360121517827,0.272538440420234229],"hpluv":[5.11726519711922112,162.85647909200884,64.2829374304473],"hsluv":[5.11726519711922112,77.9003779592442669,64.2829374304473]},"#ee7799":{"lch":[64.7023501026032477,78.2413537817778177,356.48599323172067],"luv":[64.7023501026032477,78.0942478632934893,-4.79561177242263259],"rgb":[0.933333333333333348,0.466666666666666674,0.6],"xyz":[0.476048027730994638,0.336732145765147,0.341305118061352164],"hpluv":[356.48599323172067,153.446019679421255,64.7023501026032477],"hsluv":[356.48599323172067,78.4035888028378167,64.7023501026032477]},"#ee77aa":{"lch":[65.1806796634753596,75.8992199041959,346.522692233148291],"luv":[65.1806796634753596,73.8091300431969302,-17.6890899803221124],"rgb":[0.933333333333333348,0.466666666666666674,0.66666666666666663],"xyz":[0.491105720696247139,0.342755222951248106,0.420608967678350765],"hpluv":[346.522692233148291,147.76029654451807,65.1806796634753596],"hsluv":[346.522692233148291,78.9205551316135256,65.1806796634753596]},"#ee77bb":{"lch":[65.7183104585581646,76.0514193956389875,335.85959217762661],"luv":[65.7183104585581646,69.4004166910179094,-31.1030634376174824],"rgb":[0.933333333333333348,0.466666666666666674,0.733333333333333282],"xyz":[0.508243312803583813,0.349610259794182865,0.510866952776992456],"hpluv":[335.85959217762661,146.845370988132231,65.7183104585581646],"hsluv":[335.85959217762661,79.4377328719524627,65.7183104585581646]},"#ee77cc":{"lch":[66.3151963922866,78.9180750862202416,325.378996221060731],"luv":[66.3151963922866,64.9439055461397459,-44.8369457894756067],"rgb":[0.933333333333333348,0.466666666666666674,0.8],"xyz":[0.527535688247305568,0.357327209971671667,0.612473463447262612],"hpluv":[325.378996221060731,151.008971652655617,66.3151963922866],"hsluv":[325.378996221060731,79.9425706591808307,66.3151963922866]},"#ee77dd":{"lch":[66.9708980107196652,84.3115421117289543,315.859798591258766],"luv":[66.9708980107196652,60.5051526262217152,-58.7159487612646842],"rgb":[0.933333333333333348,0.466666666666666674,0.866666666666666696],"xyz":[0.549054013797939056,0.365934540191925173,0.725803311347268609],"hpluv":[315.859798591258766,159.749768323538632,66.9708980107196652],"hsluv":[315.859798591258766,80.4238985377879345,66.9708980107196652]},"#ee77ee":{"lch":[67.6846211881785251,91.7687338274624409,307.715012949244453],"luv":[67.6846211881785251,56.1380858067324056,-72.5948746830766112],"rgb":[0.933333333333333348,0.466666666666666674,0.933333333333333348],"xyz":[0.572866194064113765,0.37545941229839519,0.851214127415791832],"hpluv":[307.715012949244453,172.045795420537047,67.6846211881785251],"hsluv":[307.715012949244453,80.8720902094370757,67.6846211881785251]},"#ee77ff":{"lch":[68.4552572311626761,100.746525491660947,300.997699928034137],"luv":[68.4552572311626761,51.8848298156272918,-86.3587102361150585],"rgb":[0.933333333333333348,0.466666666666666674,1],"xyz":[0.599037242473945186,0.385927831662327914,0.989048315707573789],"hpluv":[300.997699928034137,186.750854251257437,68.4552572311626761],"hsluv":[300.997699928034137,99.9999999999982,68.4552572311626761]},"#ee8800":{"lch":[66.3576417146455,105.981377873447272,36.6492300119340797],"luv":[66.3576417146455,85.0293774107247771,63.2618165491550428],"rgb":[0.933333333333333348,0.533333333333333326,0],"xyz":[0.440628823797085678,0.35788025575153648,0.045873620032903642],"hpluv":[36.6492300119340797,202.664622836431278,66.3576417146455],"hsluv":[36.6492300119340797,100.000000000002288,66.3576417146455]},"#ee8811":{"lch":[66.3886714607036907,104.946342152180421,36.2201184819273792],"luv":[66.3886714607036907,84.6657638625926552,62.0116373004794923],"rgb":[0.933333333333333348,0.533333333333333326,0.0666666666666666657],"xyz":[0.441640489296722782,0.358284921951391333,0.0512017249976592717],"hpluv":[36.2201184819273792,200.591559481147556,66.3886714607036907],"hsluv":[36.2201184819273792,98.1954604930108701,66.3886714607036907]},"#ee8822":{"lch":[66.4461305943750773,103.062674429887437,35.4099902294173745],"luv":[66.4461305943750773,83.9988395226221201,59.7169140151578],"rgb":[0.933333333333333348,0.533333333333333326,0.133333333333333331],"xyz":[0.443515847435199839,0.359035065206782134,0.0610786111936384712],"hpluv":[35.4099902294173745,196.820821024497235,66.4461305943750773],"hsluv":[35.4099902294173745,94.8869488142181581,66.4461305943750773]},"#ee8833":{"lch":[66.5405621290638578,100.059958052790449,34.0337853874148877],"luv":[66.5405621290638578,82.920456825626232,56.0017235927220369],"rgb":[0.933333333333333348,0.533333333333333326,0.2],"xyz":[0.446603598167657545,0.36027016549976526,0.0773407650512496214],"hpluv":[34.0337853874148877,190.815292572549708,66.5405621290638578],"hsluv":[34.0337853874148877,89.5408718212573689,66.5405621290638578]},"#ee8844":{"lch":[66.6765193585480347,95.9403990837829639,31.9512880443390657],"luv":[66.6765193585480347,81.4052672986078107,50.7714745934935223],"rgb":[0.933333333333333348,0.533333333333333326,0.266666666666666663],"xyz":[0.45106159341187646,0.362053363597452826,0.10081954000413626],"hpluv":[31.9512880443390657,182.586190035925256,66.6765193585480347],"hsluv":[31.9512880443390657,82.0371002457568608,66.6765193585480347]},"#ee8855":{"lch":[66.8576614114874559,90.8274017958005,28.983496619036984],"luv":[66.8576614114874559,79.4521157428502391,44.0111147434430805],"rgb":[0.933333333333333348,0.533333333333333326,0.333333333333333315],"xyz":[0.457024007451238445,0.364438329213197687,0.132221587278110175],"hpluv":[28.983496619036984,172.387208051834335,66.8576614114874559],"hsluv":[28.983496619036984,74.7174368883009663,66.8576614114874559]},"#ee8866":{"lch":[67.0869600103699213,84.978663004295683,24.8971939400565283],"luv":[67.0869600103699213,77.081139807049837,35.7752854921339249],"rgb":[0.933333333333333348,0.533333333333333326,0.4],"xyz":[0.464609003224746631,0.367472327522601,0.172169231685254109],"hpluv":[24.8971939400565283,160.735241770302764,67.0869600103699213],"hsluv":[24.8971939400565283,75.0669061044520447,67.0869600103699213]},"#ee8877":{"lch":[67.3668077908477727,78.8051510957513841,19.4009345351312952],"luv":[67.3668077908477727,74.3303771171996743,26.1772205713113095],"rgb":[0.933333333333333348,0.533333333333333326,0.466666666666666674],"xyz":[0.473923016244948536,0.371197932730681801,0.221223033591652019],"hpluv":[19.4009345351312952,148.438980876884,67.3668077908477727],"hsluv":[19.4009345351312952,75.4672397967126329,67.3668077908477727]},"#ee8888":{"lch":[67.6990830402889117,72.8916076032019191,12.177050630062066],"luv":[67.6990830402889117,71.2515799877231757,15.3752661190709663],"rgb":[0.933333333333333348,0.533333333333333326,0.533333333333333326],"xyz":[0.485063433346892336,0.375654099571459399,0.279895896995224214],"hpluv":[12.177050630062066,136.626224949154164,67.6990830402889117],"hsluv":[12.177050630062066,75.9081099773692927,67.6990830402889117]},"#ee8899":{"lch":[68.0851935471165319,67.9986383575237312,2.99916583787236446],"luv":[68.0851935471165319,67.9055003914663615,3.55778513430191889],"rgb":[0.933333333333333348,0.533333333333333326,0.6],"xyz":[0.498120397455965036,0.380876885215088556,0.348662574636342093],"hpluv":[2.99916583787236446,126.732168582193651,68.0851935471165319],"hsluv":[2.99916583787236446,76.3775584855855385,68.0851935471165319]},"#ee88aa":{"lch":[68.5261104708773274,64.9933943358063573,351.976176804910949],"luv":[68.5261104708773274,64.3571165389368,-9.07209226602857832],"rgb":[0.933333333333333348,0.533333333333333326,0.66666666666666663],"xyz":[0.513178090421217648,0.386899962401189679,0.427966424253340694],"hpluv":[351.976176804910949,120.351764916629207,68.5261104708773274],"hsluv":[351.976176804910949,76.8628030471707859,68.5261104708773274]},"#ee88bb":{"lch":[69.0223979406526098,64.6433047463018,339.810246341231903],"luv":[69.0223979406526098,60.6712812589502875,-22.3103670727442456],"rgb":[0.933333333333333348,0.533333333333333326,0.733333333333333282],"xyz":[0.530315682528554211,0.393754999244124437,0.51822440935198244],"hpluv":[339.810246341231903,118.842788638920595,69.0223979406526098],"hsluv":[339.810246341231903,77.3509666785266887,69.0223979406526098]},"#ee88cc":{"lch":[69.5742414545850778,67.3203562589766307,327.709288072293873],"luv":[69.5742414545850778,56.9091584539883399,-35.9635656031820687],"rgb":[0.933333333333333348,0.533333333333333326,0.8],"xyz":[0.549608057972276,0.401471949421613239,0.619830920022252596],"hpluv":[327.709288072293873,122.782720563937247,69.5742414545850778],"hsluv":[327.709288072293873,77.8296635442389686,69.5742414545850778]},"#ee88dd":{"lch":[70.1814766713242,72.856404222049747,316.817937357318669],"luv":[70.1814766713242,53.1256441200966663,-49.8570112721525547],"rgb":[0.933333333333333348,0.533333333333333326,0.866666666666666696],"xyz":[0.571126383522909564,0.410079279641866745,0.733160767922258594],"hpluv":[316.817937357318669,131.729959343498166,70.1814766713242],"hsluv":[316.817937357318669,78.2874043120714163,70.1814766713242]},"#ee88ee":{"lch":[70.8436192863675558,80.7013698438951224,307.715012949244851],"luv":[70.8436192863675558,49.367799206375345,-63.839889537812887],"rgb":[0.933333333333333348,0.533333333333333326,0.933333333333333348],"xyz":[0.594938563789084274,0.419604151748336762,0.858571583990781817],"hpluv":[307.715012949244851,144.550464850223619,70.8436192863675558],"hsluv":[307.715012949244851,78.7138135635212848,70.8436192863675558]},"#ee88ff":{"lch":[71.5598961203093182,90.2054153167292583,300.42003582834775],"luv":[71.5598961203093182,45.674190228859068,-77.7874366424399426],"rgb":[0.933333333333333348,0.533333333333333326,1],"xyz":[0.621109612198915695,0.430072571112269486,0.996405772282563662],"hpluv":[300.42003582834775,159.956626210428567,71.5598961203093182],"hsluv":[300.42003582834775,99.99999999999784,71.5598961203093182]},"#ee9900":{"lch":[70.1492527845175715,98.9919938823364731,44.3502140795235036],"luv":[70.1492527845175715,70.7872313214223112,69.1995862317686772],"rgb":[0.933333333333333348,0.6,0],"xyz":[0.466498424249553179,0.409619456656472147,0.0544968201837259],"hpluv":[44.3502140795235036,179.06732625175573,70.1492527845175715],"hsluv":[44.3502140795235036,100.000000000002217,70.1492527845175715]},"#ee9911":{"lch":[70.1776126165771785,97.9766822185852533,43.9766782844564119],"luv":[70.1776126165771785,70.5062245085518526,68.0316291449155273],"rgb":[0.933333333333333348,0.6,0.0666666666666666657],"xyz":[0.467510089749190283,0.410024122856327,0.0598249251484815267],"hpluv":[43.9766782844564119,177.15910010767405,70.1776126165771785],"hsluv":[43.9766782844564119,98.4152296143538337,70.1776126165771785]},"#ee9922":{"lch":[70.2301348691785,96.1222676294158447,43.2696050504519505],"luv":[70.2301348691785,69.9901292501651824,65.8852953379296622],"rgb":[0.933333333333333348,0.6,0.133333333333333331],"xyz":[0.46938544788766734,0.410774266111717801,0.0697018113444607262],"hpluv":[43.2696050504519505,173.676009463775955,70.2301348691785],"hsluv":[43.2696050504519505,95.5057584668238,70.2301348691785]},"#ee9933":{"lch":[70.3164728806357573,93.1473438817036339,42.0626701373461103],"luv":[70.3164728806357573,69.1537511222041417,62.4034163964169508],"rgb":[0.933333333333333348,0.6,0.2],"xyz":[0.472473198620125046,0.412009366404700927,0.0859639652020718625],"hpluv":[42.0626701373461103,168.094198140054317,70.3164728806357573],"hsluv":[42.0626701373461103,90.7937976503380213,70.3164728806357573]},"#ee9944":{"lch":[70.4408210614760719,89.024296887742608,40.221678197216157],"luv":[70.4408210614760719,67.9746586813449483,57.4871395488729533],"rgb":[0.933333333333333348,0.6,0.266666666666666663],"xyz":[0.476931193864343961,0.413792564502388494,0.109442740154958501],"hpluv":[40.221678197216157,160.370125602871781,70.4408210614760719],"hsluv":[40.221678197216157,84.1577311163605657,70.4408210614760719]},"#ee9955":{"lch":[70.6065752665828654,83.8291063606938138,37.5652459120346904],"luv":[70.6065752665828654,66.4479455240540631,51.1076276974862154],"rgb":[0.933333333333333348,0.6,0.333333333333333315],"xyz":[0.482893607903705946,0.416177530118133354,0.140844787428932416],"hpluv":[37.5652459120346904,150.656896294971034,70.6065752665828654],"hsluv":[37.5652459120346904,75.5772228053980797,70.6065752665828654]},"#ee9966":{"lch":[70.8165243284349373,77.7550236522342,33.8383101580563],"luv":[70.8165243284349373,64.5842808158336652,43.297971946282189],"rgb":[0.933333333333333348,0.6,0.4],"xyz":[0.490478603677214131,0.419211528427536673,0.180792431836076378],"hpluv":[33.8383101580563,139.326323276972687,70.8165243284349373],"hsluv":[33.8383101580563,72.525293376848623,70.8165243284349373]},"#ee9977":{"lch":[71.0729506656700778,71.1378337295946,28.6840524218341386],"luv":[71.0729506656700778,62.4077841236731601,34.1446901949989154],"rgb":[0.933333333333333348,0.6,0.466666666666666674],"xyz":[0.499792616697416037,0.422937133635617468,0.229846233742474287],"hpluv":[28.6840524218341386,127.009327518651787,71.0729506656700778],"hsluv":[28.6840524218341386,72.8885787597460677,71.0729506656700778]},"#ee9988":{"lch":[71.3776900371935312,64.4963091800695878,21.6331741754282376],"luv":[71.3776900371935312,59.9533946760230378,23.7773918811996943],"rgb":[0.933333333333333348,0.6,0.533333333333333326],"xyz":[0.510933033799359837,0.427393300476395066,0.288519097146046455],"hpluv":[21.6331741754282376,114.659937381049531,71.3776900371935312],"hsluv":[21.6331741754282376,73.2902809537896189,71.3776900371935312]},"#ee9999":{"lch":[71.732171153908709,58.5818834203282179,12.1770506300621602],"luv":[71.732171153908709,57.263818011494017,12.3568690136061505],"rgb":[0.933333333333333348,0.6,0.6],"xyz":[0.523989997908432592,0.432616086120024224,0.35728577478716439],"hpluv":[12.1770506300621602,103.630759412975706,71.732171153908709],"hsluv":[12.1770506300621602,73.7196701825771186,71.732171153908709]},"#ee99aa":{"lch":[72.1374451439022408,54.3863410009709725,0.0659165211073427237],"luv":[72.1374451439022408,54.3863050092105,0.0625693137293968082],"rgb":[0.933333333333333348,0.6,0.66666666666666663],"xyz":[0.539047690873685093,0.438639163306125346,0.436589624404162935],"hpluv":[0.0659165211073427237,95.6683780017161,72.1374451439022408],"hsluv":[0.0659165211073427237,74.1649147609968082,72.1374451439022408]},"#ee99bb":{"lch":[72.5942101669252366,52.9692652640659247,345.882936464906891],"luv":[72.5942101669252366,51.3695627363271683,-12.9194073739288822],"rgb":[0.933333333333333348,0.6,0.733333333333333282],"xyz":[0.556185282981021767,0.445494200149060104,0.526847609502804737],"hpluv":[345.882936464906891,92.5894045166522091,72.5942101669252366],"hsluv":[345.882936464906891,74.6136876066909878,72.5942101669252366]},"#ee99cc":{"lch":[73.1028341171650737,55.013164482536844,331.314039518972208],"luv":[73.1028341171650737,48.2610582375421515,-26.4067893575727517],"rgb":[0.933333333333333348,0.6,0.8],"xyz":[0.575477658424743521,0.453211150326548906,0.628454120173074893],"hpluv":[331.314039518972208,95.4930444317639342,73.1028341171650737],"hsluv":[331.314039518972208,75.0536815693659491,73.1028341171650737]},"#ee99dd":{"lch":[73.6633770412179274,60.4388711558699896,318.269971219550712],"luv":[73.6633770412179274,45.1048908137830935,-40.2294167403973049],"rgb":[0.933333333333333348,0.6,0.866666666666666696],"xyz":[0.596995983975377,0.461818480546802412,0.74178396807308089],"hpluv":[318.269971219550712,104.112780668711437,73.6633770412179274],"hsluv":[318.269971219550712,75.472992612571872,73.6633770412179274]},"#ee99ee":{"lch":[74.2756141069900337,68.5596754700476083,307.71501294924542],"luv":[74.2756141069900337,41.9403078139404499,-54.2350410807456953],"rgb":[0.933333333333333348,0.6,0.933333333333333348],"xyz":[0.620808164241551719,0.471343352653272429,0.867194784141604114],"hpluv":[307.71501294924542,117.128296895720368,74.2756141069900337],"hsluv":[307.71501294924542,75.8603506282489235,74.2756141069900337]},"#ee99ff":{"lch":[74.9390594560707,78.5455210447045857,299.603294913962486],"luv":[74.9390594560707,38.8008486558083519,-68.2927010724659],"rgb":[0.933333333333333348,0.6,1],"xyz":[0.64697921265138314,0.481811772017205153,1.00502897243338585],"hpluv":[299.603294913962486,133.000267199001968,74.9390594560707],"hsluv":[299.603294913962486,99.9999999999973284,74.9390594560707]},"#dd0000":{"lch":[46.1435564305616239,155.182233977468201,12.1770506300617765],"luv":[46.1435564305616239,151.69070515099267,32.7330981276182555],"rgb":[0.866666666666666696,0,0],"xyz":[0.298181282529475455,0.153749723804264049,0.0139772476185688679],"hpluv":[12.1770506300617765,426.746789183125316,46.1435564305616239],"hsluv":[12.1770506300617765,100.000000000002217,46.1435564305616239]},"#dd0011":{"lch":[46.1980288678146636,153.577384001942391,11.5987087531524224],"luv":[46.1980288678146636,150.441300178721519,30.8776306962803169],"rgb":[0.866666666666666696,0,0.0666666666666666657],"xyz":[0.29919294802911256,0.154154390004118902,0.0193053525833244977],"hpluv":[11.5987087531524224,421.835520233675084,46.1980288678146636],"hsluv":[11.5987087531524224,99.9999999999964473,46.1980288678146636]},"#dd0022":{"lch":[46.2987546285526292,150.712226421231577,10.5179424282654246],"luv":[46.2987546285526292,148.17992816752087,27.5115263319381462],"rgb":[0.866666666666666696,0,0.133333333333333331],"xyz":[0.301068306167589617,0.15490453325950973,0.0291822387793036972],"hpluv":[10.5179424282654246,413.065099977246746,46.2987546285526292],"hsluv":[10.5179424282654246,99.9999999999964615,46.2987546285526292]},"#dd0033":{"lch":[46.4638920568500637,146.293058552209629,8.71533624525386585],"luv":[46.4638920568500637,144.603865814948932,22.1671146505918131],"rgb":[0.866666666666666696,0,0.2],"xyz":[0.304156056900047322,0.156139633552492829,0.0454443926369148404],"hpluv":[8.71533624525386585,399.528220173505417,46.4638920568500637],"hsluv":[8.71533624525386585,99.9999999999966,46.4638920568500637]},"#dd0044":{"lch":[46.7007828741672242,140.527307525302433,6.06736355557067153],"luv":[46.7007828741672242,139.740117429456177,14.853408400522655],"rgb":[0.866666666666666696,0,0.266666666666666663],"xyz":[0.308614052144266238,0.157922831650180423,0.0689231675898014789],"hpluv":[6.06736355557067153,381.835137536210595,46.7007828741672242],"hsluv":[6.06736355557067153,99.9999999999967315,46.7007828741672242]},"#dd0055":{"lch":[47.0148448700731194,133.854751810486647,2.4577968894866693],"luv":[47.0148448700731194,133.731616129679537,5.74015936982693],"rgb":[0.866666666666666696,0,0.333333333333333315],"xyz":[0.314576466183628223,0.160307797265925256,0.10032521486377538],"hpluv":[2.4577968894866693,361.275168455412427,47.0148448700731194],"hsluv":[2.4577968894866693,99.9999999999969873,47.0148448700731194]},"#dd0066":{"lch":[47.4099042919878073,126.898325188331157,357.792852491951692],"luv":[47.4099042919878073,126.80418183984473,-4.88716722969802841],"rgb":[0.866666666666666696,0,0.4],"xyz":[0.322161461957136408,0.163341795575328547,0.140272859270919342],"hpluv":[357.792852491951692,339.645713706877359,47.4099042919878073],"hsluv":[357.792852491951692,99.9999999999972857,47.4099042919878073]},"#dd0077":{"lch":[47.8883827301537,120.388643903007392,352.036106438093952],"luv":[47.8883827301537,119.227564738695264,-16.6797298325047478],"rgb":[0.866666666666666696,0,0.466666666666666674],"xyz":[0.331475474977338314,0.16706740078340937,0.189326661177317251],"hpluv":[352.036106438093952,319.002934776287759,47.8883827301537],"hsluv":[352.036106438093952,99.9999999999974136,47.8883827301537]},"#dd0088":{"lch":[48.4514347566520058,115.064311489444805,345.260130057314882],"luv":[48.4514347566520058,111.277652945923506,-29.2759241252361342],"rgb":[0.866666666666666696,0,0.533333333333333326],"xyz":[0.342615892079282114,0.171523567624186968,0.247999524580889419],"hpluv":[345.260130057314882,301.351479235409442,48.4514347566520058],"hsluv":[345.260130057314882,99.9999999999976836,48.4514347566520058]},"#dd0099":{"lch":[49.0990738312553816,111.554442433955828,337.69359677942],"luv":[49.0990738312553816,103.206522936464793,-42.3415546492536166],"rgb":[0.866666666666666696,0,0.6],"xyz":[0.355672856188354869,0.176746353267816125,0.316766202222007354],"hpluv":[337.69359677942,288.305479360883112,49.0990738312553816],"hsluv":[337.69359677942,99.9999999999979252,49.0990738312553816]},"#dd00aa":{"lch":[49.8303011832281442,110.265023964610052,329.72204926251294],"luv":[49.8303011832281442,95.2237329190616606,-55.5951094870335041],"rgb":[0.866666666666666696,0,0.66666666666666663],"xyz":[0.370730549153607369,0.18276943045391722,0.396070051839005954],"hpluv":[329.72204926251294,280.791263168904948,49.8303011832281442],"hsluv":[329.72204926251294,99.9999999999981526,49.8303011832281442]},"#dd00bb":{"lch":[50.6432416523731064,111.311454300018838,321.811503537589374],"luv":[50.6432416523731064,87.4886923962170613,-68.8183737179635244],"rgb":[0.866666666666666696,0,0.733333333333333282],"xyz":[0.387868141260944044,0.189624467296851978,0.486328036937647701],"hpluv":[321.811503537589374,278.905890401213071,50.6432416523731064],"hsluv":[321.811503537589374,99.9999999999984,50.6432416523731064]},"#dd00cc":{"lch":[51.5352850119508901,114.534817141075266,314.3830496716472],"luv":[51.5352850119508901,80.1116001600253753,-81.8557014345352201],"rgb":[0.866666666666666696,0,0.8],"xyz":[0.407160516704665798,0.19734141747434078,0.587934547607917857],"hpluv":[314.3830496716472,282.014975724645751,51.5352850119508901],"hsluv":[314.3830496716472,99.9999999999986215,51.5352850119508901]},"#dd00dd":{"lch":[52.5032286812834883,119.593841400887641,307.715012949243601],"luv":[52.5032286812834883,73.1596596193909647,-94.6062952735996419],"rgb":[0.866666666666666696,0,0.866666666666666696],"xyz":[0.428678842255299286,0.205948747694594314,0.701264395507923854],"hpluv":[307.715012949243601,289.042783730483222,52.5032286812834883],"hsluv":[307.715012949243601,99.9999999999987779,52.5032286812834883]},"#dd00ee":{"lch":[53.5434168792756111,126.080010820296707,301.921476351261958],"luv":[53.5434168792756111,66.6656277920787659,-107.01337860068783],"rgb":[0.866666666666666696,0,0.933333333333333348],"xyz":[0.452491022521474051,0.215473619801064359,0.826675211576447078],"hpluv":[301.921476351261958,298.799235277631283,53.5434168792756111],"hsluv":[301.921476351261958,99.999999999998991,53.5434168792756111]},"#dd00ff":{"lch":[54.6518715304170399,133.605457484958208,296.990855958497434],"luv":[54.6518715304170399,60.6366090811706258,-119.053013019000375],"rgb":[0.866666666666666696,0,1],"xyz":[0.478662070931305417,0.225942039164997055,0.964509399868228923],"hpluv":[296.990855958497434,310.211923209940835,54.6518715304170399],"hsluv":[296.990855958497434,99.99999999999919,54.6518715304170399]},"#dd1100":{"lch":[46.6790301132195,152.538998994032681,12.7564763340959253],"luv":[46.6790301132195,148.773935032481603,33.6817824506429915],"rgb":[0.866666666666666696,0.0666666666666666657,0],"xyz":[0.300185682790403863,0.157758524326120919,0.0146453810388783197],"hpluv":[12.7564763340959253,414.665968881342394,46.6790301132195],"hsluv":[12.7564763340959253,100.000000000002373,46.6790301132195]},"#dd1111":{"lch":[46.7325769897078942,150.969760125239,12.1770506300617818],"luv":[46.7325769897078942,147.573010021229663,31.8445471870185592],"rgb":[0.866666666666666696,0.0666666666666666657,0.0666666666666666657],"xyz":[0.301197348290040967,0.158163190525975772,0.0199734860036339529],"hpluv":[12.1770506300617818,409.92986676092562,46.7325769897078942],"hsluv":[12.1770506300617818,96.0592738250283,46.7325769897078942]},"#dd1122":{"lch":[46.8315975390355774,148.166934443607602,11.093898425687982],"luv":[46.8315975390355774,145.398162733087418,28.509905932130728],"rgb":[0.866666666666666696,0.0666666666666666657,0.133333333333333331],"xyz":[0.303072706428518,0.1589133337813666,0.0298503721996131455],"hpluv":[11.093898425687982,401.468660625611221,46.8315975390355774],"hsluv":[11.093898425687982,96.1199649520447821,46.8315975390355774]},"#dd1133":{"lch":[46.9939567691892393,143.840838530693645,9.28627571582045697],"luv":[46.9939567691892393,141.955717705878527,23.2112265902085468],"rgb":[0.866666666666666696,0.0666666666666666657,0.2],"xyz":[0.30616045716097573,0.160148434074349699,0.0461125260572242957],"hpluv":[9.28627571582045697,388.400266865181436,46.9939567691892393],"hsluv":[9.28627571582045697,96.2159198798013477,46.9939567691892393]},"#dd1144":{"lch":[47.2268997120704555,138.191174032002039,6.62861883301083665],"luv":[47.2268997120704555,137.267398010546174,15.951865839373701],"rgb":[0.866666666666666696,0.0666666666666666657,0.266666666666666663],"xyz":[0.310618452405194645,0.161931632172037293,0.0695913010101109342],"hpluv":[6.62861883301083665,371.304486157060069,47.2268997120704555],"hsluv":[6.62861883301083665,96.346372634165391,47.2268997120704555]},"#dd1155":{"lch":[47.5357948285950442,131.646215003298352,3.00154982487266553],"luv":[47.5357948285950442,131.465612026054913,6.89338663571585908],"rgb":[0.866666666666666696,0.0666666666666666657,0.333333333333333315],"xyz":[0.31658086644455663,0.164316597787782126,0.100993348284084836],"hpluv":[3.00154982487266553,351.420379681935685,47.5357948285950442],"hsluv":[3.00154982487266553,96.5074087268808114,47.5357948285950442]},"#dd1166":{"lch":[47.9244613368761776,124.817323026056556,358.307054390798669],"luv":[47.9244613368761776,124.762840903711279,-3.68750010524401839],"rgb":[0.866666666666666696,0.0666666666666666657,0.4],"xyz":[0.324165862218064815,0.167350596097185417,0.140940992691228811],"hpluv":[358.307054390798669,330.488955339688346,47.9244613368761776],"hsluv":[358.307054390798669,96.6928417837132912,47.9244613368761776]},"#dd1177":{"lch":[48.3953520744879313,118.427317384197096,352.504166614065639],"luv":[48.3953520744879313,117.415279069986227,-15.4493282615978131],"rgb":[0.866666666666666696,0.0666666666666666657,0.466666666666666674],"xyz":[0.333479875238266721,0.17107620130526624,0.189994794597626721],"hpluv":[352.504166614065639,310.51856077863863,48.3953520744879313],"hsluv":[352.504166614065639,96.8952584834877229,48.3953520744879313]},"#dd1188":{"lch":[48.949686611979061,113.213254375126112,345.662599129740954],"luv":[48.949686611979061,109.687147393784173,-28.0351683216148473],"rgb":[0.866666666666666696,0.0666666666666666657,0.533333333333333326],"xyz":[0.344620292340210521,0.175532368146043838,0.248667658001198888],"hpluv":[345.662599129740954,293.48552443008623,48.949686611979061],"hsluv":[345.662599129740954,97.1070447043031209,48.949686611979061]},"#dd1199":{"lch":[49.5875717372425,109.808639676001164,338.012756373247385],"luv":[49.5875717372425,101.821953610845213,-41.1123717433662961],"rgb":[0.866666666666666696,0.0666666666666666657,0.6],"xyz":[0.357677256449283276,0.180755153789673,0.317434335642316767],"hpluv":[338.012756373247385,280.997849503034615,49.5875717372425],"hsluv":[338.012756373247385,97.321211179253126,49.5875717372425]},"#dd11aa":{"lch":[50.3081241313593779,108.626384639058173,329.948207544292131],"luv":[50.3081241313593779,94.0240738412992556,-54.3982074892042462],"rgb":[0.866666666666666696,0.0666666666666666657,0.66666666666666663],"xyz":[0.372734949414535777,0.18677823097577409,0.396738185259315368],"hpluv":[329.948207544292131,273.991145484396441,50.3081241313593779],"hsluv":[329.948207544292131,97.5319211216277751,50.3081241313593779]},"#dd11bb":{"lch":[51.1095995740137,109.78676639377484,321.947120969557943],"luv":[51.1095995740137,86.4507346157054855,-67.6712979010019495],"rgb":[0.866666666666666696,0.0666666666666666657,0.733333333333333282],"xyz":[0.389872541521872451,0.193633267818708849,0.486996170357957114],"hpluv":[321.947120969557943,272.57551535007633,51.1095995740137],"hsluv":[321.947120969557943,97.7347175386083791,51.1095995740137]},"#dd11cc":{"lch":[51.9895276454598303,113.13117809908816,314.441471026924035],"luv":[51.9895276454598303,79.2122218564644527,-80.7718228508547469],"rgb":[0.866666666666666696,0.0666666666666666657,0.8],"xyz":[0.409164916965594205,0.20135021799619765,0.588602681028227326],"hpluv":[314.441471026924035,276.12502270002949,51.9895276454598303],"hsluv":[314.441471026924035,97.9265130550616,51.9895276454598303]},"#dd11dd":{"lch":[52.9448482611329325,118.314931067086022,307.715012949243601],"luv":[52.9448482611329325,72.3773062506166553,-93.594596282658145],"rgb":[0.866666666666666696,0.0666666666666666657,0.866666666666666696],"xyz":[0.430683242516227693,0.209957548216451184,0.701932528928233324],"hpluv":[307.715012949243601,283.566663729067216,52.9448482611329325],"hsluv":[307.715012949243601,98.1054292618058525,52.9448482611329325]},"#dd11ee":{"lch":[53.9720454332022257,124.924845967379298,301.881652150577509],"luv":[53.9720454332022257,65.9811112999591103,-106.078791902980541],"rgb":[0.866666666666666696,0.0666666666666666657,0.933333333333333348],"xyz":[0.454495422782402458,0.219482420322921229,0.827343344996756547],"hpluv":[301.881652150577509,293.71036424495378,53.9720454332022257],"hsluv":[301.881652150577509,98.2705657762439841,53.9720454332022257]},"#dd11ff":{"lch":[55.067273793018515,132.56906123155207,296.926443611211937],"luv":[55.067273793018515,60.0334023394080774,-118.197066796810802],"rgb":[0.866666666666666696,0.0666666666666666657,1],"xyz":[0.480666471192233824,0.229950839686853925,0.965177533288538392],"hpluv":[296.926443611211937,305.483621811531123,55.067273793018515],"hsluv":[296.926443611211937,99.9999999999990763,55.067273793018515]},"#dd2200":{"lch":[47.6481385708110494,147.881667770992,13.8451074484812633],"luv":[47.6481385708110494,143.585141583480663,35.3877772568702937],"rgb":[0.866666666666666696,0.133333333333333331,0],"xyz":[0.303901306525171777,0.165189771795656887,0.0158839222838009289],"hpluv":[13.8451074484812633,393.829031299888356,47.6481385708110494],"hsluv":[13.8451074484812633,100.000000000002302,47.6481385708110494]},"#dd2211":{"lch":[47.7000692420668,146.371743885583,13.2640103652051735],"luv":[47.7000692420668,142.467011758872331,33.583298953557744],"rgb":[0.866666666666666696,0.133333333333333331,0.0666666666666666657],"xyz":[0.304912972024808882,0.16559443799551174,0.0212120272485565586],"hpluv":[13.2640103652051735,389.383517616197651,47.7000692420668],"hsluv":[13.2640103652051735,96.2235359913314596,47.7000692420668]},"#dd2222":{"lch":[47.796111526211412,143.672697420673273,12.1770506300617871],"luv":[47.796111526211412,140.440127868319678,30.3053537920670948],"rgb":[0.866666666666666696,0.133333333333333331,0.133333333333333331],"xyz":[0.306788330163285938,0.166344581250902568,0.0310889134445357582],"hpluv":[12.1770506300617871,381.435408792809369,47.796111526211412],"hsluv":[12.1770506300617871,89.3821391188339618,47.796111526211412]},"#dd2233":{"lch":[47.9536166692339805,139.501418135148583,10.3611027729364178],"luv":[47.9536166692339805,137.226679529052944,25.0895214611231978],"rgb":[0.866666666666666696,0.133333333333333331,0.2],"xyz":[0.309876080895743644,0.167579681543885667,0.0473510673021469],"hpluv":[10.3611027729364178,369.144652707036585,47.9536166692339805],"hsluv":[10.3611027729364178,89.634195646670733,47.9536166692339805]},"#dd2244":{"lch":[48.1796580724099073,134.044487106872765,7.68678657448498281],"luv":[48.1796580724099073,132.839973125453383,17.9294747210675],"rgb":[0.866666666666666696,0.133333333333333331,0.266666666666666663],"xyz":[0.314334076139962559,0.169362879641573261,0.0708298422550335399],"hpluv":[7.68678657448498281,353.040533161258963,48.1796580724099073],"hsluv":[7.68678657448498281,89.9776949827144819,48.1796580724099073]},"#dd2255":{"lch":[48.4795139291676236,127.710640494506933,4.02871777991100277],"luv":[48.4795139291676236,127.395062601571667,8.9724979943620351],"rgb":[0.866666666666666696,0.133333333333333331,0.333333333333333315],"xyz":[0.320296490179324544,0.171747845257318094,0.102231889529007441],"hpluv":[4.02871777991100277,334.278275235680212,48.4795139291676236],"hsluv":[4.02871777991100277,90.4030378986951746,48.4795139291676236]},"#dd2266":{"lch":[48.8569858046774499,121.091623353111601,359.280669781128381],"luv":[48.8569858046774499,121.082080247128843,-1.52022673298942879],"rgb":[0.866666666666666696,0.133333333333333331,0.4],"xyz":[0.32788148595283273,0.174781843566721384,0.142179533936151403],"hpluv":[359.280669781128381,314.504423311283745,48.8569858046774499],"hsluv":[359.280669781128381,90.8946273178398627,48.8569858046774499]},"#dd2277":{"lch":[49.3145747506863046,114.897314975199777,353.392641366134796],"luv":[49.3145747506863046,114.134166521370943,-13.2206286152450421],"rgb":[0.866666666666666696,0.133333333333333331,0.466666666666666674],"xyz":[0.337195498973034635,0.178507448774802208,0.191233335842549312],"hpluv":[353.392641366134796,295.64729776044,49.3145747506863046],"hsluv":[353.392641366134796,91.4334620569677128,49.3145747506863046]},"#dd2288":{"lch":[49.8536069462695934,109.863045744465836,346.42832123602642],"luv":[49.8536069462695934,106.795352255968297,-25.780643063628979],"rgb":[0.866666666666666696,0.133333333333333331,0.533333333333333326],"xyz":[0.348335916074978436,0.182963615615579805,0.24990619924612148],"hpluv":[346.42832123602642,279.636833718457694,49.8536069462695934],"hsluv":[346.42832123602642,91.999736258284841,49.8536069462695934]},"#dd2299":{"lch":[50.4743452384724947,106.631383564155598,338.620922954440232],"luv":[50.4743452384724947,99.2939711585852507,-38.8710593162073792],"rgb":[0.866666666666666696,0.133333333333333331,0.6],"xyz":[0.361392880184051135,0.188186401259208963,0.318672876887239387],"hpluv":[338.620922954440232,268.07337181170567,50.4743452384724947],"hsluv":[338.620922954440232,92.5749897333771088,50.4743452384724947]},"#dd22aa":{"lch":[51.176101525576982,105.62881092572934,330.379319008457628],"luv":[51.176101525576982,91.8248770713425699,-52.2076397514415902],"rgb":[0.866666666666666696,0.133333333333333331,0.66666666666666663],"xyz":[0.376450573149303691,0.194209478445310058,0.397976726504238],"hpluv":[330.379319008457628,261.911470041672374,51.176101525576982],"hsluv":[330.379319008457628,93.1435427232804898,51.176101525576982]},"#dd22bb":{"lch":[51.9573548685870321,106.984993341056935,322.205396597718504],"luv":[51.9573548685870321,84.5409044706425306,-65.5638945721781425],"rgb":[0.866666666666666696,0.133333333333333331,0.733333333333333282],"xyz":[0.393588165256640365,0.201064515288244816,0.488234711602879734],"hpluv":[322.205396597718504,261.285408571692301,51.9573548685870321],"hsluv":[322.205396597718504,93.6931794305449301,51.9573548685870321]},"#dd22cc":{"lch":[52.8158750154556174,110.541708291411879,314.55250800555325],"luv":[52.8158750154556174,77.5519304210182838,-78.7728846745956],"rgb":[0.866666666666666696,0.133333333333333331,0.8],"xyz":[0.412880540700362064,0.208781465465733618,0.58984122227315],"hpluv":[314.55250800555325,265.583456637160452,52.8158750154556174],"hsluv":[314.55250800555325,94.2152138812719073,52.8158750154556174]},"#dd22dd":{"lch":[53.7488483860564088,115.947384169062644,307.715012949243658],"luv":[53.7488483860564088,70.9289965118926204,-91.721716891171],"rgb":[0.866666666666666696,0.133333333333333331,0.866666666666666696],"xyz":[0.434398866250995663,0.217388795685987152,0.703171070173155943],"hpluv":[307.715012949243658,273.735496610715643,53.7488483860564088],"hsluv":[307.715012949243658,94.704144859729837,53.7488483860564088]},"#dd22ee":{"lch":[54.7530025006588374,122.779599443276055,301.806367069585178],"luv":[54.7530025006588374,64.7110170709106,-104.342293961267828],"rgb":[0.866666666666666696,0.133333333333333331,0.933333333333333348],"xyz":[0.458211046517170373,0.226913667792457197,0.828581886241679166],"hpluv":[301.806367069585178,284.549350776984397,54.7530025006588374],"hsluv":[301.806367069585178,95.1571011878196629,54.7530025006588374]},"#dd22ff":{"lch":[55.8247247862810525,130.638613434108407,296.804995701950531],"luv":[55.8247247862810525,58.9121835814083425,-116.601037498200881],"rgb":[0.866666666666666696,0.133333333333333331,1],"xyz":[0.484382094927001794,0.237382087156389893,0.966416074533461],"hpluv":[296.804995701950531,296.950662194199822,55.8247247862810525],"hsluv":[296.804995701950531,99.9999999999989768,55.8247247862810525]},"#dd3300":{"lch":[49.1823134049741526,140.84390252957769,15.6779143459349193],"luv":[49.1823134049741526,135.603943521894649,38.06015476941716],"rgb":[0.866666666666666696,0.2,0],"xyz":[0.310019028614182623,0.17742521597367869,0.0179231629801378106],"hpluv":[15.6779143459349193,363.386194305474646,49.1823134049741526],"hsluv":[15.6779143459349193,100.000000000002331,49.1823134049741526]},"#dd3311":{"lch":[49.2318310772226226,139.415415721210906,15.0950854994101622],"luv":[49.2318310772226226,134.60488288385605,36.3067988748864323],"rgb":[0.866666666666666696,0.2,0.0666666666666666657],"xyz":[0.311030694113819728,0.177829882173533543,0.0232512679448934403],"hpluv":[15.0950854994101622,359.338818773581409,49.2318310772226226],"hsluv":[15.0950854994101622,96.4660724045404834,49.2318310772226226]},"#dd3322":{"lch":[49.3234253076193,136.858666305461554,14.0037238091571297],"luv":[49.3234253076193,132.791226888227897,33.117738516222083],"rgb":[0.866666666666666696,0.2,0.133333333333333331],"xyz":[0.312906052252296785,0.178580025428924372,0.0331281541408726399],"hpluv":[14.0037238091571297,352.093818956611813,49.3234253076193],"hsluv":[14.0037238091571297,90.0546185843159321,49.3234253076193]},"#dd3333":{"lch":[49.4736766963079901,132.899088309008249,12.1770506300618315],"luv":[49.4736766963079901,129.908920002044738,28.0328410488111714],"rgb":[0.866666666666666696,0.2,0.2],"xyz":[0.31599380298475449,0.179815125721907471,0.0493903079984837831],"hpluv":[12.1770506300618315,340.868713502871344,49.4736766963079901],"hsluv":[12.1770506300618315,79.876105021286179,49.4736766963079901]},"#dd3344":{"lch":[49.6893958667399289,127.704341644457742,9.47932118493828391],"luv":[49.6893958667399289,125.960552293014786,21.031836364974712],"rgb":[0.866666666666666696,0.2,0.266666666666666663],"xyz":[0.320451798228973406,0.181598323819595064,0.0728690829513704286],"hpluv":[9.47932118493828391,326.122882655454703,49.6893958667399289],"hsluv":[9.47932118493828391,80.502956859434363,49.6893958667399289]},"#dd3355":{"lch":[49.9757165444531495,121.655077778432485,5.77481987360355742],"luv":[49.9757165444531495,121.037681249067731,12.2408197080725127],"rgb":[0.866666666666666696,0.2,0.333333333333333315],"xyz":[0.326414212268335391,0.183983289435339897,0.10427113022534433],"hpluv":[5.77481987360355742,308.89475746512926,49.9757165444531495],"hsluv":[5.77481987360355742,81.2827465905028674,49.9757165444531495]},"#dd3366":{"lch":[50.3364012453720164,115.314978813651479,0.942739432835561],"luv":[50.3364012453720164,115.29936949267524,1.8972963354308543],"rgb":[0.866666666666666696,0.2,0.4],"xyz":[0.333999208041843576,0.187017287744743188,0.144218774632488278],"hpluv":[0.942739432835561,290.698564526315124,50.3364012453720164],"hsluv":[0.942739432835561,82.1889615211792375,50.3364012453720164]},"#dd3377":{"lch":[50.77400791740952,109.376176789803836,354.916348657894],"luv":[50.77400791740952,108.945933542464203,-9.69183231981436],"rgb":[0.866666666666666696,0.2,0.466666666666666674],"xyz":[0.343313221062045482,0.190742892952824,0.193272576538886187],"hpluv":[354.916348657894,273.35096965093777,50.77400791740952],"hsluv":[354.916348657894,83.1884512053650269,50.77400791740952]},"#dd3388":{"lch":[51.2900053848270545,104.574014460431073,347.747121452304157],"luv":[51.2900053848270545,102.191864987712989,-22.1934051173651383],"rgb":[0.866666666666666696,0.2,0.533333333333333326],"xyz":[0.354453638163989282,0.195199059793601609,0.251945439942458382],"hpluv":[347.747121452304157,258.720214242298141,51.2900053848270545],"hsluv":[347.747121452304157,84.245872474104587,51.2900053848270545]},"#dd3399":{"lch":[51.8848727297214509,101.568582070491487,339.671486537323062],"luv":[51.8848727297214509,95.2425012264059347,-35.2851643605103433],"rgb":[0.866666666666666696,0.2,0.6],"xyz":[0.367510602273062,0.200421845437230767,0.320712117583576262],"hpluv":[339.671486537323062,248.403642764366595,51.8848727297214509],"hsluv":[339.671486537323062,85.3275173092541763,51.8848727297214509]},"#dd33aa":{"lch":[52.5581975758694284,100.811065681036794,331.124654782349864],"luv":[52.5581975758694284,88.2774684157494,-48.6822301651504219],"rgb":[0.866666666666666696,0.2,0.66666666666666663],"xyz":[0.382568295238314537,0.206444922623331861,0.400015967200574862],"hpluv":[331.124654782349864,243.392431352391867,52.5581975758694284],"hsluv":[331.124654782349864,86.4040244757801,52.5581975758694284]},"#dd33bb":{"lch":[53.3087788146031301,102.447919096954379,322.651217662355],"luv":[53.3087788146031301,81.4417156804123579,-62.1516136100020091],"rgb":[0.866666666666666696,0.2,0.733333333333333282],"xyz":[0.399705887345651212,0.21329995946626662,0.490273952299216609],"hpluv":[322.651217662355,243.861776984359892,53.3087788146031301],"hsluv":[322.651217662355,87.4518397844355633,53.3087788146031301]},"#dd33cc":{"lch":[54.1347343907921612,106.321268361530926,314.743497623169446],"luv":[54.1347343907921612,74.8431687457043751,-75.5163041872859253],"rgb":[0.866666666666666696,0.2,0.8],"xyz":[0.418998262789372911,0.221016909643755421,0.59188046296948682],"hpluv":[314.743497623169446,249.220329072313831,54.1347343907921612],"hsluv":[314.743497623169446,88.4535853271675734,54.1347343907921612]},"#dd33dd":{"lch":[55.033612168624586,112.066789743934578,307.715012949243715],"luv":[55.033612168624586,68.5551036430149,-88.6519211749340741],"rgb":[0.866666666666666696,0.2,0.866666666666666696],"xyz":[0.44051658834000651,0.229624239864008955,0.705210310869492818],"hpluv":[307.715012949243715,258.397459164480438,55.033612168624586],"hsluv":[307.715012949243715,89.3976510430439077,55.033612168624586]},"#dd33ee":{"lch":[56.0025007026426351,119.245240694744666,301.678101579798295],"luv":[56.0025007026426351,62.6212128139869506,-101.479116738632214],"rgb":[0.866666666666666696,0.2,0.933333333333333348],"xyz":[0.464328768606181219,0.239149111970479,0.830621126938016],"hpluv":[301.678101579798295,270.192295422478139,56.0025007026426351],"hsluv":[301.678101579798295,90.277343199481848,56.0025007026426351]},"#dd33ff":{"lch":[57.0381364623091116,127.442655532056975,296.59904001960814],"luv":[57.0381364623091116,57.0616979163907772,-113.954346472440875],"rgb":[0.866666666666666696,0.2,1],"xyz":[0.49049981701601264,0.249617531334411696,0.968455315229797886],"hpluv":[296.59904001960814,283.523336448078851,57.0381364623091116],"hsluv":[296.59904001960814,99.9999999999989626,57.0381364623091116]},"#dd4400":{"lch":[51.2775121999195278,131.902040393952689,18.409420821930695],"luv":[51.2775121999195278,125.151834557466444,41.6553305951168156],"rgb":[0.866666666666666696,0.266666666666666663,0],"xyz":[0.318851599097148664,0.19509035693961102,0.0208673531411264039],"hpluv":[18.409420821930695,326.410329295551833,51.2775121999195278],"hsluv":[18.409420821930695,100.000000000002245,51.2775121999195278]},"#dd4411":{"lch":[51.3239968707682124,130.563017922041524,17.8265447991253865],"luv":[51.3239968707682124,124.294382399750674,39.9700907276414128],"rgb":[0.866666666666666696,0.266666666666666663,0.0666666666666666657],"xyz":[0.319863264596785768,0.195495023139465873,0.0261954581058820371],"hpluv":[17.8265447991253865,322.804096021626094,51.3239968707682124],"hsluv":[17.8265447991253865,96.7659447415066154,51.3239968707682124]},"#dd4422":{"lch":[51.4099976690743148,128.162025810787327,16.7333496749677373],"luv":[51.4099976690743148,122.735013936090269,36.9001519513490237],"rgb":[0.866666666666666696,0.266666666666666663,0.133333333333333331],"xyz":[0.321738622735262825,0.196245166394856702,0.0360723443018612297],"hpluv":[16.7333496749677373,316.337811591652041,51.4099976690743148],"hsluv":[16.7333496749677373,90.8878404873512551,51.4099976690743148]},"#dd4433":{"lch":[51.551120550377874,124.432504768689228,14.8985084842763058],"luv":[51.551120550377874,120.249428964759446,31.9925472049216744],"rgb":[0.866666666666666696,0.266666666666666663,0.2],"xyz":[0.324826373467720531,0.197480266687839801,0.0523344981594723729],"hpluv":[14.8985084842763058,306.291581325991444,51.551120550377874],"hsluv":[14.8985084842763058,81.5276169642245634,51.551120550377874]},"#dd4444":{"lch":[51.7538349343952575,119.518854000271219,12.1770506300618191],"luv":[51.7538349343952575,116.829734805674121,25.2105042943215345],"rgb":[0.866666666666666696,0.266666666666666663,0.266666666666666663],"xyz":[0.329284368711939446,0.199263464785527394,0.0758132731123590115],"hpluv":[12.1770506300618191,293.044254198223086,51.7538349343952575],"hsluv":[12.1770506300618191,68.6693518559736,51.7538349343952575]},"#dd4455":{"lch":[52.0230766847265045,113.767549619287195,8.41751308754220773],"luv":[52.0230766847265045,112.542004033713866,16.6539086839248256],"rgb":[0.866666666666666696,0.266666666666666663,0.333333333333333315],"xyz":[0.335246782751301431,0.201648430401272227,0.107215320386332927],"hpluv":[8.41751308754220773,277.499175779034886,52.0230766847265045],"hsluv":[8.41751308754220773,69.8262296658756867,52.0230766847265045]},"#dd4466":{"lch":[52.3625377834239316,107.708396397149357,3.47572472865958737],"luv":[52.3625377834239316,107.51027478189765,6.52989056311981209],"rgb":[0.866666666666666696,0.266666666666666663,0.4],"xyz":[0.342831778524809616,0.204682428710675518,0.147162964793476875],"hpluv":[3.47572472865958737,261.016642983210886,52.3625377834239316],"hsluv":[3.47572472865958737,71.1800009153795088,52.3625377834239316]},"#dd4477":{"lch":[52.7748219535637304,102.013560717275851,357.256373562230806],"luv":[52.7748219535637304,101.896624345108023,-4.88308481282748108],"rgb":[0.866666666666666696,0.266666666666666663,0.466666666666666674],"xyz":[0.352145791545011522,0.208408033918756341,0.196216766699874784],"hpluv":[357.256373562230806,245.284698321799027,52.7748219535637304],"hsluv":[357.256373562230806,72.6848757644217898,52.7748219535637304]},"#dd4488":{"lch":[53.2615487789460502,97.4233940898595137,349.787328406912707],"luv":[53.2615487789460502,95.8798587184095368,-17.273401753155067],"rgb":[0.866666666666666696,0.266666666666666663,0.533333333333333326],"xyz":[0.363286208646955322,0.212864200759533939,0.254889630103446951],"hpluv":[349.787328406912707,232.107295472344475,53.2615487789460502],"hsluv":[349.787328406912707,74.290572198007979,53.2615487789460502]},"#dd4499":{"lch":[53.8234397136373133,94.6288173232078123,341.30539151945959],"luv":[53.8234397136373133,89.63624285692255,-30.330793502376995],"rgb":[0.866666666666666696,0.266666666666666663,0.6],"xyz":[0.376343172756028,0.218086986403163097,0.323656307744564886],"hpluv":[341.30539151945959,223.095746339835301,53.8234397136373133],"hsluv":[341.30539151945959,75.9477058190526577,53.8234397136373133]},"#dd44aa":{"lch":[54.4604007326765327,94.1226543521493539,332.285935566136516],"luv":[54.4604007326765327,83.3248558176969425,-43.7726223255380802],"rgb":[0.866666666666666696,0.266666666666666663,0.66666666666666663],"xyz":[0.391400865721280578,0.224110063589264191,0.402960157361563487],"hpluv":[332.285935566136516,219.307083848265933,54.4604007326765327],"hsluv":[332.285935566136516,77.6118806813578175,54.4604007326765327]},"#dd44bb":{"lch":[55.1716077278512387,96.0796222427451596,323.344264550451],"luv":[55.1716077278512387,77.0786382371216,-57.3600674495728526],"rgb":[0.866666666666666696,0.266666666666666663,0.733333333333333282],"xyz":[0.408538457828617252,0.23096510043219895,0.493218142460205233],"hpluv":[323.344264550451,220.981019921853772,55.1716077278512387],"hsluv":[323.344264550451,79.2461809113807334,55.1716077278512387]},"#dd44cc":{"lch":[55.9555962107488511,100.342448880687911,315.038748994660807],"luv":[55.9555962107488511,71.0007950362134,-70.9048246002984],"rgb":[0.866666666666666696,0.266666666666666663,0.8],"xyz":[0.427830833272338951,0.238682050609687751,0.594824653130475389],"hpluv":[315.038748994660807,227.551915064947707,55.9555962107488511],"hsluv":[315.038748994660807,80.8221578956601547,55.9555962107488511]},"#dd44dd":{"lch":[56.8103543983327484,106.525561993860563,307.715012949243828],"luv":[56.8103543983327484,65.1653443433699664,-84.2684594300729515],"rgb":[0.866666666666666696,0.266666666666666663,0.866666666666666696],"xyz":[0.44934915882297255,0.247289380829941285,0.708154501030481387],"hpluv":[307.715012949243828,237.939016458104504,56.8103543983327484],"hsluv":[307.715012949243828,82.3196529548951474,56.8103543983327484]},"#dd44ee":{"lch":[57.7334174818232384,114.162073161526394,301.482814132357476],"luv":[57.7334174818232384,59.6203198077272134,-97.3570563162323452],"rgb":[0.866666666666666696,0.266666666666666663,0.933333333333333348],"xyz":[0.473161339089147259,0.256814252936411302,0.83356531709900461],"hpluv":[301.482814132357476,250.91920763959763,57.7334174818232384],"hsluv":[301.482814132357476,85.8927976857303577,57.7334174818232384]},"#dd44ff":{"lch":[58.721960397178492,122.814959128704743,296.287773174859751],"luv":[58.721960397178492,54.3922733794591196,-110.113554035820684],"rgb":[0.866666666666666696,0.266666666666666663,1],"xyz":[0.49933238749897868,0.267282672300344,0.971399505390786455],"hpluv":[296.287773174859751,265.393357493052918,58.721960397178492],"hsluv":[296.287773174859751,99.9999999999987779,58.721960397178492]},"#dd5500":{"lch":[53.8905970004369834,121.845910621274882,22.2085433527856502],"luv":[53.8905970004369834,112.806678507237621,46.055175814369008],"rgb":[0.866666666666666696,0.333333333333333315,0],"xyz":[0.330664855811494629,0.218716870368303284,0.0248051053792416147],"hpluv":[22.2085433527856502,286.904453583707834,53.8905970004369834],"hsluv":[22.2085433527856502,100.000000000002217,53.8905970004369834]},"#dd5511":{"lch":[53.9336739056601573,120.58904296901602,21.6306448037720749],"luv":[53.9336739056601573,112.097097503939963,44.4517492948856656],"rgb":[0.866666666666666696,0.333333333333333315,0.0666666666666666657],"xyz":[0.331676521311131733,0.219121536568158137,0.0301332103439972479],"hpluv":[21.6306448037720749,283.71818310283129,53.9336739056601573],"hsluv":[21.6306448037720749,97.0955711707227493,53.9336739056601573]},"#dd5522":{"lch":[54.0133869328819856,118.329807147086328,20.5443811064534074],"luv":[54.0133869328819856,110.804107011743554,41.5258128011568957],"rgb":[0.866666666666666696,0.333333333333333315,0.133333333333333331],"xyz":[0.33355187944960879,0.219871679823548966,0.0400100965399764405],"hpluv":[20.5443811064534074,277.99185559962018,54.0133869328819856],"hsluv":[20.5443811064534074,91.805999212684128,54.0133869328819856]},"#dd5533":{"lch":[54.1442392255445526,114.805940194650788,18.7140712474621722],"luv":[54.1442392255445526,108.736323489647134,36.8349814433582736],"rgb":[0.866666666666666696,0.333333333333333315,0.2],"xyz":[0.336639630182066496,0.221106780116532065,0.0562722503975875837],"hpluv":[18.7140712474621722,269.061420184977408,54.1442392255445526],"hsluv":[18.7140712474621722,83.3546452149230674,54.1442392255445526]},"#dd5544":{"lch":[54.3323026853354207,110.135081135525823,15.9827981501284579],"luv":[54.3323026853354207,105.877744255237971,30.3255563535325479],"rgb":[0.866666666666666696,0.333333333333333315,0.266666666666666663],"xyz":[0.341097625426285411,0.222889978214219658,0.0797510253504742223],"hpluv":[15.9827981501284579,257.221277658214035,54.3323026853354207],"hsluv":[15.9827981501284579,71.6878656400709104,54.3323026853354207]},"#dd5555":{"lch":[54.5822696158357132,104.625049281135261,12.1770506300618937],"luv":[54.5822696158357132,102.271033836367579,22.0689051636128752],"rgb":[0.866666666666666696,0.333333333333333315,0.333333333333333315],"xyz":[0.347060039465647396,0.225274943829964491,0.111153072624448138],"hpluv":[12.1770506300618937,243.233512665758,54.5822696158357132],"hsluv":[12.1770506300618937,61.8784513389384,54.5822696158357132]},"#dd5566":{"lch":[54.8977244977922254,98.7674373059184205,7.11744080010036573],"luv":[54.8977244977922254,98.0063618739055897,12.2376347477602359],"rgb":[0.866666666666666696,0.333333333333333315,0.4],"xyz":[0.354645035239155582,0.228308942139367782,0.151100717031592086],"hpluv":[7.11744080010036573,228.296245111676484,54.8977244977922254],"hsluv":[7.11744080010036573,62.7979151590930655,54.8977244977922254]},"#dd5577":{"lch":[55.2812881935381597,93.2135187108595886,0.661514811515945267],"luv":[55.2812881935381597,93.2073060454778783,1.07618316489082022],"rgb":[0.866666666666666696,0.333333333333333315,0.466666666666666674],"xyz":[0.363959048259357487,0.232034547347448605,0.20015451893799],"hpluv":[0.661514811515945267,213.963687644495565,55.2812881935381597],"hsluv":[0.661514811515945267,63.8225359413096456,55.2812881935381597]},"#dd5588":{"lch":[55.7347110848163538,88.7163187329837,352.791835078768599],"luv":[55.7347110848163538,88.0151786426913532,-11.1316457915027787],"rgb":[0.866666666666666696,0.333333333333333315,0.533333333333333326],"xyz":[0.375099465361301287,0.236490714188226203,0.258827382341562162],"hpluv":[352.791835078768599,201.984054112510194,55.7347110848163538],"hsluv":[352.791835078768599,64.9173177009572,55.7347110848163538]},"#dd5599":{"lch":[56.2589463845586408,86.0173277442407169,343.733753082454825],"luv":[56.2589463845586408,82.5740942724548717,-24.0935598727929836],"rgb":[0.866666666666666696,0.333333333333333315,0.6],"xyz":[0.388156429470374,0.241713499831855361,0.327594059982680097],"hpluv":[343.733753082454825,194.014271994181229,56.2589463845586408],"hsluv":[343.733753082454825,66.0466553819121,56.2589463845586408]},"#dd55aa":{"lch":[56.8542178605490278,85.677853149792881,334.018383993549605],"luv":[56.8542178605490278,77.0187914763158545,-37.5339883290498477],"rgb":[0.866666666666666696,0.333333333333333315,0.66666666666666663],"xyz":[0.403214122435626543,0.247736577017956455,0.406897909599678698],"hpluv":[334.018383993549605,191.225239227061849,56.8542178605490278],"hsluv":[334.018383993549605,67.3075554564469485,56.8542178605490278]},"#dd55bb":{"lch":[57.5200884026389332,87.9206422548043633,324.375348896731964],"luv":[57.5200884026389332,71.4663144117056817,-51.2113780219251638],"rgb":[0.866666666666666696,0.333333333333333315,0.733333333333333282],"xyz":[0.420351714542963217,0.254591613860891242,0.497155894698320444],"hpluv":[324.375348896731964,193.959311397505388,57.5200884026389332],"hsluv":[324.375348896731964,69.5366313504716,57.5200884026389332]},"#dd55cc":{"lch":[58.2555317670128829,92.5910381182408315,315.474469199465034],"luv":[58.2555317670128829,66.0116746837007895,-64.9273374262858596],"rgb":[0.866666666666666696,0.333333333333333315,0.8],"xyz":[0.439644089986684916,0.262308564038380043,0.5987624053685906],"hpluv":[315.474469199465034,201.683843426221756,58.2555317670128829],"hsluv":[315.474469199465034,71.7082017587958802,58.2555317670128829]},"#dd55dd":{"lch":[59.0590075291469532,99.2700295618383848,307.715012949244056],"luv":[59.0590075291469532,60.7268860008133231,-78.5288742174016363],"rgb":[0.866666666666666696,0.333333333333333315,0.866666666666666696],"xyz":[0.461162415537318515,0.270915894258633549,0.712092253268596598],"hpluv":[307.715012949244056,213.290412049590259,59.0590075291469532],"hsluv":[307.715012949244056,73.7919865345850923,59.0590075291469532]},"#dd55ee":{"lch":[59.9285380001613674,107.447476486145689,301.201070052482692],"luv":[59.9285380001613674,55.6624113436061592,-91.905691698915],"rgb":[0.866666666666666696,0.333333333333333315,0.933333333333333348],"xyz":[0.484974595803493225,0.280440766365103566,0.837503069337119821],"hpluv":[301.201070052482692,227.510719406260364,59.9285380001613674],"hsluv":[301.201070052482692,84.9240358585231405,59.9285380001613674]},"#dd55ff":{"lch":[60.8617852443614,116.651127585902827,295.843561463814751],"luv":[60.8617852443614,50.8500320114402413,-104.984569397117028],"rgb":[0.866666666666666696,0.333333333333333315,1],"xyz":[0.511145644213324646,0.29090918572903629,0.975337257628901666],"hpluv":[295.843561463814751,243.211205533984923,60.8617852443614],"hsluv":[295.843561463814751,99.9999999999987,60.8617852443614]},"#dd6600":{"lch":[56.9556719941368783,111.624872970007345,27.247071009398578],"luv":[56.9556719941368783,99.2390381331236568,51.1050445257873349],"rgb":[0.866666666666666696,0.4,0],"xyz":[0.345692913517341105,0.248772985779996625,0.0298144579478569621],"hpluv":[27.247071009398578,248.69286407076,56.9556719941368783],"hsluv":[27.247071009398578,100.000000000002402,56.9556719941368783]},"#dd6611":{"lch":[56.9952083090352204,110.431802069127656,26.6846840374429064],"luv":[56.9952083090352204,98.6698726856829325,49.5927326573774181],"rgb":[0.866666666666666696,0.4,0.0666666666666666657],"xyz":[0.346704579016978209,0.249177651979851478,0.0351425629126125919],"hpluv":[26.6846840374429064,245.864111809588593,56.9952083090352204],"hsluv":[26.6846840374429064,97.4289366186781,56.9952083090352204]},"#dd6622":{"lch":[57.0683850250612181,108.280332786330632,25.6245441521289443],"luv":[57.0683850250612181,97.630674939023308,46.8282156319165637],"rgb":[0.866666666666666696,0.4,0.133333333333333331],"xyz":[0.348579937155455266,0.249927795235242306,0.0450194491085917914],"hpluv":[25.6245441521289443,240.764984433182946,57.0683850250612181],"hsluv":[25.6245441521289443,92.7369917538900239,57.0683850250612181]},"#dd6633":{"lch":[57.1885511035567617,104.905985735707603,23.8291565941278485],"luv":[57.1885511035567617,95.9631904105633566,42.3831561992078036],"rgb":[0.866666666666666696,0.4,0.2],"xyz":[0.351667687887912972,0.251162895528225405,0.0612816029662029346],"hpluv":[23.8291565941278485,232.771873337598265,57.1885511035567617],"hsluv":[23.8291565941278485,85.2149281001260306,57.1885511035567617]},"#dd6644":{"lch":[57.3613500282636153,100.395707721520722,21.1283100845564071],"luv":[57.3613500282636153,93.6466609873464222,36.1884099516133162],"rgb":[0.866666666666666696,0.4,0.266666666666666663],"xyz":[0.356125683132131887,0.252946093625912971,0.0847603779190895801],"hpluv":[21.1283100845564071,222.093121414046323,57.3613500282636153],"hsluv":[21.1283100845564071,74.7790089775498785,57.3613500282636153]},"#dd6655":{"lch":[57.5911977652478555,95.0134939889914136,17.3206113628181804],"luv":[57.5911977652478555,90.7049894048208927,28.2872575034667619],"rgb":[0.866666666666666696,0.4,0.333333333333333315],"xyz":[0.362088097171493872,0.255331059241657832,0.116162425193063482],"hpluv":[17.3206113628181804,209.347849744778358,57.5911977652478555],"hsluv":[17.3206113628181804,61.5516693045169205,57.5911977652478555]},"#dd6666":{"lch":[57.8815358558834703,89.2064417623026742,12.1770506300619559],"luv":[57.8815358558834703,87.1993378887650579,18.8166076552624659],"rgb":[0.866666666666666696,0.4,0.4],"xyz":[0.369673092945002058,0.25836505755106115,0.156110069600207457],"hpluv":[12.1770506300619559,195.566965385494854,57.8815358558834703],"hsluv":[12.1770506300619559,60.6635523422702,57.8815358558834703]},"#dd6677":{"lch":[58.2349645673757834,83.6008411979688901,5.48003957367995387],"luv":[58.2349645673757834,83.2187459143753188,7.98379467713524704],"rgb":[0.866666666666666696,0.4,0.466666666666666674],"xyz":[0.378987105965203963,0.262090662759141946,0.205163871506605366],"hpluv":[5.48003957367995387,182.165511808695555,58.2349645673757834],"hsluv":[5.48003957367995387,61.6238417996400329,58.2349645673757834]},"#dd6688":{"lch":[58.6533262634944208,78.9686504698842,357.125632416080862],"luv":[58.6533262634944208,78.8692993006444,-3.95997283577995],"rgb":[0.866666666666666696,0.4,0.533333333333333326],"xyz":[0.390127523067147763,0.266546829599919544,0.263836734910177506],"hpluv":[357.125632416080862,170.8446551494321,58.6533262634944208],"hsluv":[357.125632416080862,62.6596910240402778,58.6533262634944208]},"#dd6699":{"lch":[59.1377678367746853,76.1279623836736192,347.292482429378936],"luv":[59.1377678367746853,74.2632604984211184,-16.746187531306056],"rgb":[0.866666666666666696,0.4,0.6],"xyz":[0.403184487176220463,0.271769615243548701,0.332603412551295441],"hpluv":[347.292482429378936,163.349798950832565,59.1377678367746853],"hsluv":[347.292482429378936,63.7390009960191435,59.1377678367746853]},"#dd66aa":{"lch":[59.6887956605557406,75.751758533498986,336.577260120739709],"luv":[59.6887956605557406,69.5095811529117,-30.1122408476074845],"rgb":[0.866666666666666696,0.4,0.66666666666666663],"xyz":[0.418242180141473,0.277792692429649823,0.411907262168294042],"hpluv":[336.577260120739709,161.042027442088397,59.6887956605557406],"hsluv":[336.577260120739709,64.8305690383666473,59.6887956605557406]},"#dd66bb":{"lch":[60.3063295400458372,78.1477005551706,325.894443158435308],"luv":[60.3063295400458372,64.706761589723726,-43.8189240697585518],"rgb":[0.866666666666666696,0.4,0.733333333333333282],"xyz":[0.435379772248809693,0.284647729272584582,0.502165247266935788],"hpluv":[325.894443158435308,164.434383230317081,60.3063295400458372],"hsluv":[325.894443158435308,65.9059953936301213,60.3063295400458372]},"#dd66cc":{"lch":[60.9897585015337427,83.1712006992562891,316.109248272524042],"luv":[60.9897585015337427,59.9384091909213694,-57.6613885491638314],"rgb":[0.866666666666666696,0.4,0.8],"xyz":[0.454672147692531392,0.292364679450073384,0.603771757937205944],"hpluv":[316.109248272524042,173.043537218511,60.9897585015337427],"hsluv":[316.109248272524042,66.9408479310096709,60.9897585015337427]},"#dd66dd":{"lch":[61.7379991889007158,90.3518241723814555,307.715012949244283],"luv":[61.7379991889007158,55.2713135142553753,-71.4740094977595675],"rgb":[0.866666666666666696,0.4,0.866666666666666696],"xyz":[0.476190473243165,0.30097200967032689,0.717101605837211942],"hpluv":[307.715012949244283,185.705044478150711,61.7379991889007158],"hsluv":[307.715012949244283,67.9151328937623759,61.7379991889007158]},"#dd66ee":{"lch":[62.5495564285741779,99.1126076890086125,300.803780654240427],"luv":[62.5495564285741779,50.7555210146825431,-85.1304063742412183],"rgb":[0.866666666666666696,0.4,0.933333333333333348],"xyz":[0.500002653509339701,0.310496881776796907,0.842512421905735165],"hpluv":[300.803780654240427,201.068480083703747,62.5495564285741779],"hsluv":[300.803780654240427,83.670703518064812,62.5495564285741779]},"#dd66ff":{"lch":[63.4225848554444696,108.928953372808309,295.226788235463459],"luv":[63.4225848554444696,46.4257694276883512,-98.5401685402585628],"rgb":[0.866666666666666696,0.4,1],"xyz":[0.526173701919171122,0.320965301140729631,0.980346610197517],"hpluv":[295.226788235463459,217.940889521273107,63.4225848554444696],"hsluv":[295.226788235463459,99.9999999999986073,63.4225848554444696]},"#dd7700":{"lch":[60.3985006876916088,102.209421710697811,33.6568691403047779],"luv":[60.3985006876916088,85.0762157619203,56.6463008330327753],"rgb":[0.866666666666666696,0.466666666666666674,0],"xyz":[0.364146651570758706,0.285680461886832382,0.0359657039656626626],"hpluv":[33.6568691403047779,214.735624532269611,60.3985006876916088],"hsluv":[33.6568691403047779,100.000000000002245,60.3985006876916088]},"#dd7711":{"lch":[60.4345564785723894,101.058408313912437,33.1281817520222],"luv":[60.4345564785723894,84.6313647704988,55.2298287886556736],"rgb":[0.866666666666666696,0.466666666666666674,0.0666666666666666657],"xyz":[0.36515831707039581,0.286085128086687235,0.0412938089304182923],"hpluv":[33.1281817520222,212.190746676882327,60.4345564785723894],"hsluv":[33.1281817520222,97.7465438968969238,60.4345564785723894]},"#dd7722":{"lch":[60.5013044729937803,98.9745052833742136,32.1281810047412648],"luv":[60.5013044729937803,83.8175940663154364,52.6361436754539582],"rgb":[0.866666666666666696,0.466666666666666674,0.133333333333333331],"xyz":[0.367033675208872867,0.286835271342078035,0.0511706951263974918],"hpluv":[32.1281810047412648,207.585936448863947,60.5013044729937803],"hsluv":[32.1281810047412648,93.6262478826975126,60.5013044729937803]},"#dd7733":{"lch":[60.6109510167574115,95.6833141687104813,30.4242910043150516],"luv":[60.6109510167574115,82.5076313520097813,48.4539717565960331],"rgb":[0.866666666666666696,0.466666666666666674,0.2],"xyz":[0.370121425941330573,0.288070371635061162,0.067432848984008642],"hpluv":[30.4242910043150516,200.320058173129354,60.6109510167574115],"hsluv":[30.4242910043150516,86.9991150080846722,60.6109510167574115]},"#dd7744":{"lch":[60.7687036553482756,91.2360291121886888,27.8356422373186483],"luv":[60.7687036553482756,80.6791699404734857,42.6014617809804932],"rgb":[0.866666666666666696,0.466666666666666674,0.266666666666666663],"xyz":[0.374579421185549488,0.289853569732748728,0.0909116239368952805],"hpluv":[27.8356422373186483,190.513488615549676,60.7687036553482756],"hsluv":[27.8356422373186483,77.760618312285672,60.7687036553482756]},"#dd7755":{"lch":[60.9786842032445122,85.8448802225428125,24.131655223886618],"luv":[60.9786842032445122,78.3427622472179479,35.096368243717265],"rgb":[0.866666666666666696,0.466666666666666674,0.333333333333333315],"xyz":[0.380541835224911473,0.292238535348493589,0.122313671210869182],"hpluv":[24.131655223886618,178.63875223296418,60.9786842032445122],"hsluv":[24.131655223886618,65.9765814384596894,60.9786842032445122]},"#dd7766":{"lch":[61.2441632046235895,79.8999585154359693,19.0216316495787474],"luv":[61.2441632046235895,75.5370685872685073,26.0414024201977448],"rgb":[0.866666666666666696,0.466666666666666674,0.4],"xyz":[0.388126830998419659,0.295272533657896907,0.162261315618013158],"hpluv":[19.0216316495787474,165.546946717194828,61.2441632046235895],"hsluv":[19.0216316495787474,57.9572057581871576,61.2441632046235895]},"#dd7777":{"lch":[61.5676827516498122,73.9875996712566,12.1770506300619097],"luv":[61.5676827516498122,72.3229127387857318,15.6064473244910626],"rgb":[0.866666666666666696,0.466666666666666674,0.466666666666666674],"xyz":[0.397440844018621564,0.298998138865977703,0.211315117524411067],"hpluv":[12.1770506300619097,152.491436777287873,61.5676827516498122],"hsluv":[12.1770506300619097,58.8480912007490744,61.5676827516498122]},"#dd7788":{"lch":[61.9511315612573,68.8928540500868252,3.33484257213660307],"luv":[61.9511315612573,68.7761927043778769,4.00757485979294081],"rgb":[0.866666666666666696,0.466666666666666674,0.533333333333333326],"xyz":[0.408581261120565364,0.303454305706755301,0.269987980927983207],"hpluv":[3.33484257213660307,141.112101622994089,61.9511315612573],"hsluv":[3.33484257213660307,59.8177792812577849,61.9511315612573]},"#dd7799":{"lch":[62.395798681375723,65.5359342889949659,352.534540584191575],"luv":[62.395798681375723,64.9804103256140309,-8.5149842657693231],"rgb":[0.866666666666666696,0.466666666666666674,0.6],"xyz":[0.421638225229638119,0.308677091350384458,0.338754658569101141],"hpluv":[352.534540584191575,133.27953643418,62.395798681375723],"hsluv":[352.534540584191575,60.8378233331756135,62.395798681375723]},"#dd77aa":{"lch":[62.9024183325334576,64.7691926058513587,340.409048511657261],"luv":[62.9024183325334576,61.0197310981447743,-21.7172909803219412],"rgb":[0.866666666666666696,0.466666666666666674,0.66666666666666663],"xyz":[0.43669591819489062,0.314700168536485581,0.418058508186099742],"hpluv":[340.409048511657261,130.659342151792146,62.9024183325334576],"hsluv":[340.409048511657261,61.8795186032410598,62.9024183325334576]},"#dd77bb":{"lch":[63.4712121738611472,67.0588140204747,328.168414880738283],"luv":[63.4712121738611472,56.973307333119962,-35.3684434115847779],"rgb":[0.866666666666666696,0.466666666666666674,0.733333333333333282],"xyz":[0.453833510302227294,0.321555205379420339,0.508316493284741489],"hpluv":[328.168414880738283,134.065922948238125,63.4712121738611472],"hsluv":[328.168414880738283,62.9156692244191049,63.4712121738611472]},"#dd77cc":{"lch":[64.1019320742502856,72.2937871392105649,317.045265551381931],"luv":[64.1019320742502856,52.9112642996390861,-49.2624580095555586],"rgb":[0.866666666666666696,0.466666666666666674,0.8],"xyz":[0.473125885745949049,0.329272155556909141,0.609923003955011644],"hpluv":[317.045265551381931,143.109736775843601,64.1019320742502856],"hsluv":[317.045265551381931,63.9218174738772262,64.1019320742502856]},"#dd77dd":{"lch":[64.7939046430230547,79.9242419089019904,307.715012949244624],"luv":[64.7939046430230547,48.8924033620837761,-63.225132172198613],"rgb":[0.866666666666666696,0.466666666666666674,0.866666666666666696],"xyz":[0.494644211296582537,0.337879485777162647,0.723252851855017642],"hpluv":[307.715012949244624,156.524995415635317,64.7939046430230547],"hsluv":[307.715012949244624,64.8769154463944,64.7939046430230547]},"#dd77ee":{"lch":[65.5460776792256,89.2673698488479772,300.244676230176196],"luv":[65.5460776792256,44.9634126652007424,-77.116501743983946],"rgb":[0.866666666666666696,0.466666666666666674,0.933333333333333348],"xyz":[0.518456391562757357,0.347404357883632664,0.848663667923540865],"hpluv":[300.244676230176196,172.816560464305326,65.5460776792256],"hsluv":[300.244676230176196,82.07388698168063,65.5460776792256]},"#dd77ff":{"lch":[66.3570680439545,99.7204006423648366,294.377473048092611],"luv":[66.3570680439545,41.1592308753033436,-90.8299290874281837],"rgb":[0.866666666666666696,0.466666666666666674,1],"xyz":[0.544627439972588667,0.357872777247565388,0.98649785621532271],"hpluv":[294.377473048092611,190.693615319177383,66.3570680439545],"hsluv":[294.377473048092611,99.9999999999983373,66.3570680439545]},"#dd8800":{"lch":[64.1467534130096766,94.4821411478558701,41.4445641191571781],"luv":[64.1467534130096766,70.8234804869986192,62.5372657508392],"rgb":[0.866666666666666696,0.533333333333333326,0],"xyz":[0.386219021295729159,0.329825201336773954,0.0433231605406526124],"hpluv":[41.4445641191571781,186.902182331454583,64.1467534130096766],"hsluv":[41.4445641191571781,100.000000000002416,64.1467534130096766]},"#dd8811":{"lch":[64.1795176641247593,93.3565504581455,40.9755438084832377],"luv":[64.1795176641247593,70.4832194968749235,61.2173282886440333],"rgb":[0.866666666666666696,0.533333333333333326,0.0666666666666666657],"xyz":[0.387230686795366263,0.330229867536628807,0.0486512655054082421],"hpluv":[40.9755438084832377,184.581288668542754,64.1795176641247593],"hsluv":[40.9755438084832377,98.0366401848460072,64.1795176641247593]},"#dd8822":{"lch":[64.2401831232140665,91.3094921720035444,40.0852847486271529],"luv":[64.2401831232140665,69.8596876954725303,58.7966614341343359],"rgb":[0.866666666666666696,0.533333333333333326,0.133333333333333331],"xyz":[0.38910604493384332,0.330980010792019608,0.0585281517013874417],"hpluv":[40.0852847486271529,180.363429125237786,64.2401831232140665],"hsluv":[40.0852847486271529,94.440421143342,64.2401831232140665]},"#dd8833":{"lch":[64.3398685532121704,88.0506151089842319,38.5586382769189342],"luv":[64.3398685532121704,68.8529964065635,54.8832916916272],"rgb":[0.866666666666666696,0.533333333333333326,0.2],"xyz":[0.392193795666301,0.332215111085002734,0.0747903055589985849],"hpluv":[38.5586382769189342,173.656703033806934,64.3398685532121704],"hsluv":[38.5586382769189342,88.6389494712849171,64.3398685532121704]},"#dd8844":{"lch":[64.4833562447751376,83.590391105324656,36.2144134416389392],"luv":[64.4833562447751376,67.4417066096926305,49.3859260793323571],"rgb":[0.866666666666666696,0.533333333333333326,0.266666666666666663],"xyz":[0.396651790910519941,0.333998309182690301,0.0982690805118852234],"hpluv":[36.2144134416389392,164.493238171948974,64.4833562447751376],"hsluv":[36.2144134416389392,80.515719620269337,64.4833562447751376]},"#dd8855":{"lch":[64.6744699451661234,78.0792033713498768,32.8038905377638059],"luv":[64.6744699451661234,65.6278986079903746,42.3006019272060527],"rgb":[0.866666666666666696,0.533333333333333326,0.333333333333333315],"xyz":[0.402614204949881926,0.336383274798435161,0.129671127785859125],"hpluv":[32.8038905377638059,153.194023310958244,64.6744699451661234],"hsluv":[32.8038905377638059,70.0933757373770874,64.6744699451661234]},"#dd8866":{"lch":[64.9162913059566762,71.8298791231791114,27.9793586637294176],"luv":[64.9162913059566762,63.4341634455056251,33.69923504798588],"rgb":[0.866666666666666696,0.533333333333333326,0.4],"xyz":[0.410199200723390112,0.33941727310783848,0.169618772193003087],"hpluv":[27.9793586637294176,140.40764710249897,64.9162913059566762],"hsluv":[27.9793586637294176,57.516131894534638,64.9162913059566762]},"#dd8877":{"lch":[65.211273186305,65.3549274640793243,21.2774014292581],"luv":[65.211273186305,60.8999714810578325,23.7162395299384023],"rgb":[0.866666666666666696,0.533333333333333326,0.466666666666666674],"xyz":[0.419513213743592,0.343142878315919275,0.218672574099401],"hpluv":[21.2774014292581,127.173019810527066,65.211273186305],"hsluv":[21.2774014292581,55.3192807564291797,65.211273186305]},"#dd8888":{"lch":[65.5613077882642585,59.4140252364257222,12.17705063006205],"luv":[65.5613077882642585,58.0772370198051675,12.5323954190731097],"rgb":[0.866666666666666696,0.533333333333333326,0.533333333333333326],"xyz":[0.430653630845535818,0.347599045156696873,0.277345437502973191],"hpluv":[12.17705063006205,114.995459986814794,65.5613077882642585],"hsluv":[12.17705063006205,56.217054427929,65.5613077882642585]},"#dd8899":{"lch":[65.9677735951440809,55.0265961591163304,0.371909902430330563],"luv":[65.9677735951440809,55.0254369244830599,0.357178006339119947],"rgb":[0.866666666666666696,0.533333333333333326,0.6],"xyz":[0.443710594954608517,0.352821830800326031,0.34611211514409107],"hpluv":[0.371909902430330563,105.847388780281833,65.9677735951440809],"hsluv":[0.371909902430330563,57.1692646853200088,65.9677735951440809]},"#dd88aa":{"lch":[66.4315725960282,53.3143351650078756,346.342357286170909],"luv":[66.4315725960282,51.8068159744011751,-12.5885723051236678],"rgb":[0.866666666666666696,0.533333333333333326,0.66666666666666663],"xyz":[0.458768287919861073,0.358844907986427153,0.425415964761089671],"hpluv":[346.342357286170909,101.837748961685463,66.4315725960282],"hsluv":[346.342357286170909,58.1497775423036174,66.4315725960282]},"#dd88bb":{"lch":[66.9531637379342754,55.0554122119122695,331.715662007953938],"luv":[66.9531637379342754,48.482176665295448,-26.0878699709014299],"rgb":[0.866666666666666696,0.533333333333333326,0.733333333333333282],"xyz":[0.475905880027197747,0.365699944829361911,0.515673949859731473],"hpluv":[331.715662007953938,104.344182679937973,66.9531637379342754],"hsluv":[331.715662007953938,59.1328526037280824,66.9531637379342754]},"#dd88cc":{"lch":[67.5325957217288391,60.2482932018326949,318.477460357427788],"luv":[67.5325957217288391,45.1075955230381,-39.9394749572899741],"rgb":[0.866666666666666696,0.533333333333333326,0.8],"xyz":[0.495198255470919446,0.373416895006850713,0.617280460530001629],"hpluv":[318.477460357427788,113.206309259525241,67.5325957217288391],"hsluv":[318.477460357427788,60.0943355072680134,67.5325957217288391]},"#dd88dd":{"lch":[68.1695406599531566,68.219499196860184,307.715012949245079],"luv":[68.1695406599531566,41.7322103060295,-53.965940125636024],"rgb":[0.866666666666666696,0.533333333333333326,0.866666666666666696],"xyz":[0.516716581021553,0.382024225227104219,0.730610308430007627],"hpluv":[307.715012949245079,126.986480244117786,68.1695406599531566],"hsluv":[307.715012949245079,61.0124281772922785,68.1695406599531566]},"#dd88ee":{"lch":[68.8633291469121,78.1074456653267504,299.445313850889818],"luv":[68.8633291469121,38.3970440138518896,-68.0179393936650456],"rgb":[0.866666666666666696,0.533333333333333326,0.933333333333333348],"xyz":[0.540528761287727755,0.391549097333574236,0.85602112449853085],"hpluv":[299.445313850889818,143.92748858218269,68.8633291469121],"hsluv":[299.445313850889818,80.0342386911036385,68.8633291469121]},"#dd88ff":{"lch":[69.6129866887261244,89.1875622693819281,293.199992160066699],"luv":[69.6129866887261244,35.1347073752451706,-81.975445111391565],"rgb":[0.866666666666666696,0.533333333333333326,1],"xyz":[0.566699809697559176,0.40201751669750696,0.993855312790312695],"hpluv":[293.199992160066699,162.574846632166981,69.6129866887261244],"hsluv":[293.199992160066699,99.9999999999981242,69.6129866887261244]},"#dd9900":{"lch":[68.1357569139589287,89.1370219700488775,50.3810095729648921],"luv":[68.1357569139589287,56.8408371488252229,68.6624199829113735],"rgb":[0.866666666666666696,0.6,0],"xyz":[0.41208862174819666,0.381564402241709621,0.0519463606914748674],"hpluv":[50.3810095729648921,166.005456049637957,68.1357569139589287],"hsluv":[50.3810095729648921,100.000000000002245,68.1357569139589287]},"#dd9911":{"lch":[68.1654896561650077,88.0318570495471278,50.0002977758109424],"luv":[68.1654896561650077,56.5854364905009248,67.4366089951992507],"rgb":[0.866666666666666696,0.6,0.0666666666666666657],"xyz":[0.413100287247833764,0.381969068441564474,0.0572744656562305],"hpluv":[50.0002977758109424,163.875726960716179,68.1654896561650077],"hsluv":[50.0002977758109424,98.2940371374324826,68.1654896561650077]},"#dd9922":{"lch":[68.2205507365204,86.012937831153792,49.27558445879027],"luv":[68.2205507365204,56.1166821435168472,65.1854543556261774],"rgb":[0.866666666666666696,0.6,0.133333333333333331],"xyz":[0.414975645386310821,0.382719211696955275,0.0671513518522096897],"hpluv":[49.27558445879027,159.988175949224541,68.2205507365204],"hsluv":[49.27558445879027,95.1643810214000325,68.2205507365204]},"#dd9933":{"lch":[68.3110514885433133,82.7730333151944677,48.0261582829398179],"luv":[68.3110514885433133,55.3578808500206918,61.5376313485756867],"rgb":[0.866666666666666696,0.6,0.2],"xyz":[0.418063396118768527,0.383954311989938402,0.0834135057098208399],"hpluv":[48.0261582829398179,153.757824966526499,68.3110514885433133],"hsluv":[48.0261582829398179,90.1021642959546512,68.3110514885433133]},"#dd9944":{"lch":[68.4413718194248,78.2806718730308688,46.0898611008159875],"luv":[68.4413718194248,54.2899414547091936,56.3956190296495805],"rgb":[0.866666666666666696,0.6,0.266666666666666663],"xyz":[0.422521391362987442,0.385737510087625968,0.106892280662707478],"hpluv":[46.0898611008159875,145.136005207448051,68.4413718194248],"hsluv":[46.0898611008159875,82.9860784920926449,68.4413718194248]},"#dd9955":{"lch":[68.615044439797245,72.617894762441864,43.2298844404699452],"luv":[68.615044439797245,52.9102318436571935,49.7379734808277689],"rgb":[0.866666666666666696,0.6,0.333333333333333315],"xyz":[0.428483805402349427,0.388122475703370828,0.138294327936681394],"hpluv":[43.2298844404699452,134.296171447129637,68.615044439797245],"hsluv":[43.2298844404699452,73.8078183466747362,68.615044439797245]},"#dd9966":{"lch":[68.8349542760461333,65.9999398631214262,39.0839575312566296],"luv":[68.8349542760461333,51.2306688139135815,41.6102227200810404],"rgb":[0.866666666666666696,0.6,0.4],"xyz":[0.436068801175857612,0.391156474012774147,0.178241972343825356],"hpluv":[39.0839575312566296,121.667290932950721,68.8349542760461333],"hsluv":[39.0839575312566296,62.6592399312796076,68.8349542760461333]},"#dd9977":{"lch":[69.1034430542988929,58.8170492635600723,33.0939178586399834],"luv":[69.1034430542988929,49.2755524050587468,32.1148753578207291],"rgb":[0.866666666666666696,0.6,0.466666666666666674],"xyz":[0.445382814196059518,0.394882079220854942,0.227295774250223265],"hpluv":[33.0939178586399834,108.004754244465147,69.1034430542988929],"hsluv":[33.0939178586399834,50.7393036295826789,69.1034430542988929]},"#dd9988":{"lch":[69.4223715869125328,51.7141196395305656,24.4437159362198635],"luv":[69.4223715869125328,47.0788901370553745,21.3992587150758773],"rgb":[0.866666666666666696,0.6,0.533333333333333326],"xyz":[0.456523231298003318,0.39933824606163254,0.285968637653795432],"hpluv":[24.4437159362198635,94.5255072345235305,69.4223715869125328],"hsluv":[24.4437159362198635,51.5589665528693786,69.4223715869125328]},"#dd9999":{"lch":[69.7931614924381591,45.7097919546320597,12.1770506300622632],"luv":[69.7931614924381591,44.6813426781189875,9.64171649740066705],"rgb":[0.866666666666666696,0.6,0.6],"xyz":[0.469580195407076073,0.404561031705261698,0.354735315294913311],"hpluv":[12.1770506300622632,83.1066353202273689,69.7931614924381591],"hsluv":[12.1770506300622632,52.4335711570844438,69.7931614924381591]},"#dd99aa":{"lch":[70.2168268189972196,42.2311183685245624,355.977290330288042],"luv":[70.2168268189972196,42.1270745474506256,-2.96259155636920823],"rgb":[0.866666666666666696,0.6,0.66666666666666663],"xyz":[0.484637888372328574,0.41058410889136282,0.434039164911911912],"hpluv":[355.977290330288042,76.3186553239153369,70.2168268189972196],"hsluv":[355.977290330288042,53.3392978779897788,70.2168268189972196]},"#dd99bb":{"lch":[70.694001085559151,42.6623948649138427,337.661645838825223],"luv":[70.694001085559151,39.4608168046039651,-16.2149274658665163],"rgb":[0.866666666666666696,0.6,0.733333333333333282],"xyz":[0.501775480479665248,0.417439145734297579,0.524297150010553659],"hpluv":[337.661645838825223,76.5776430619999502,70.694001085559151],"hsluv":[337.661645838825223,54.2517942883204398,70.694001085559151]},"#dd99cc":{"lch":[71.2249627580945912,47.3730793907595,320.82657583403028],"luv":[71.2249627580945912,36.7253906259007294,-29.9241430008982121],"rgb":[0.866666666666666696,0.6,0.8],"xyz":[0.521067855923387,0.42515609591178638,0.625903660680823815],"hpluv":[320.82657583403028,84.3992741769230719,71.2249627580945912],"hsluv":[320.82657583403028,55.1472527266246075,71.2249627580945912]},"#dd99dd":{"lch":[71.8096607795551876,55.5140341348433424,307.715012949246],"luv":[71.8096607795551876,33.9598410238411077,-43.9151133843462844],"rgb":[0.866666666666666696,0.6,0.866666666666666696],"xyz":[0.54258618147402049,0.433763426132039887,0.739233508580829812],"hpluv":[307.715012949246,98.0977936102115677,71.8096607795551876],"hsluv":[307.715012949246,56.0031828352742878,71.8096607795551876]},"#dd99ee":{"lch":[72.447740927007942,65.8885644567307907,298.26171852853804],"luv":[72.447740927007942,31.1982236173053273,-58.0342465212858656],"rgb":[0.866666666666666696,0.6,0.933333333333333348],"xyz":[0.566398361740195311,0.443288298238509904,0.864644324649353],"hpluv":[298.26171852853804,115.404973126410823,72.447740927007942],"hsluv":[298.26171852853804,77.3800261839098908,72.447740927007942]},"#dd99ff":{"lch":[73.1385732331520302,77.5656763031263,291.532620718417377],"luv":[73.1385732331520302,28.4689992262389602,-72.1522710898123592],"rgb":[0.866666666666666696,0.6,1],"xyz":[0.592569410150026621,0.453756717602442627,1.00247851294113488],"hpluv":[291.532620718417377,134.574391894016571,73.1385732331520302],"hsluv":[291.532620718417377,99.9999999999977689,73.1385732331520302]},"#cc0000":{"lch":[42.5207510295766156,142.998625281495549,12.1770506300617818],"luv":[42.5207510295766156,139.781222041964895,30.163169542547891],"rgb":[0.8,0,0],"xyz":[0.249012838889184379,0.128397245052238429,0.0116724768229302719],"hpluv":[12.1770506300617818,426.746789183124861,42.5207510295766156],"hsluv":[12.1770506300617818,100.000000000002174,42.5207510295766156]},"#cc0011":{"lch":[42.5821659889152784,141.236718626044905,11.4841194603559],"luv":[42.5821659889152784,138.409148973409117,28.119711390930437],"rgb":[0.8,0,0.0666666666666666657],"xyz":[0.250024504388821511,0.128801911252093282,0.0170005817876859033],"hpluv":[11.4841194603559,420.880880123779207,42.5821659889152784],"hsluv":[11.4841194603559,99.9999999999964331,42.5821659889152784]},"#cc0022":{"lch":[42.6956735686566518,138.114600243667155,10.1872609469282853],"luv":[42.6956735686566518,135.937217546775798,24.4277646564013864],"rgb":[0.8,0,0.133333333333333331],"xyz":[0.251899862527298513,0.12955205450748411,0.0268774679836651],"hpluv":[10.1872609469282853,410.482879191578036,42.6956735686566518],"hsluv":[10.1872609469282853,99.9999999999964615,42.6956735686566518]},"#cc0033":{"lch":[42.881611378965772,133.362165770655935,8.01952044887972626],"luv":[42.881611378965772,132.057963211529,18.6054188736068511],"rgb":[0.8,0,0.2],"xyz":[0.254987613259756274,0.130787154800467209,0.0431396218412762461],"hpluv":[8.01952044887972626,394.639788400466045,42.881611378965772],"hsluv":[8.01952044887972626,99.9999999999966604,42.881611378965772]},"#cc0044":{"lch":[43.1480085091585153,127.29097956278504,4.82801781999359658],"luv":[43.1480085091585153,126.839328429887985,10.7134607624411853],"rgb":[0.8,0,0.266666666666666663],"xyz":[0.259445608503975134,0.132570352898154803,0.0666183967941628846],"hpluv":[4.82801781999359658,374.34858804079829,43.1480085091585153],"hsluv":[4.82801781999359658,99.9999999999967741,43.1480085091585153]},"#cc0055":{"lch":[43.5005971125795,120.485699890795146,0.473888563816867114],"luv":[43.5005971125795,120.481578818580687,0.996515708296922487],"rgb":[0.8,0,0.333333333333333315],"xyz":[0.265408022543337119,0.134955318513899636,0.0980204440681367861],"hpluv":[0.473888563816867114,351.463000970195878,43.5005971125795],"hsluv":[0.473888563816867114,99.999999999997,43.5005971125795]},"#cc0066":{"lch":[43.9431844272177372,113.726547538665841,354.863826263116096],"luv":[43.9431844272177372,113.269906269789104,-10.1811565500985228],"rgb":[0.8,0,0.4],"xyz":[0.272993018316845304,0.137989316823302927,0.137968088475280748],"hpluv":[354.863826263116096,328.404920869645196,43.9431844272177372],"hsluv":[354.863826263116096,99.9999999999972857,43.9431844272177372]},"#cc0077":{"lch":[44.4778741065655,107.874648109024193,348.012259047653401],"luv":[44.4778741065655,105.522124609829902,-22.4058234053856609],"rgb":[0.8,0,0.466666666666666674],"xyz":[0.28230703133704721,0.14171492203138375,0.187021890381678657],"hpluv":[348.012259047653401,307.761788629886667,44.4778741065655],"hsluv":[348.012259047653401,99.9999999999975273,44.4778741065655]},"#cc0088":{"lch":[45.1052440924579,103.725434836726933,340.1176986346278],"luv":[45.1052440924579,97.5426962017022703,-35.2758876538989838],"rgb":[0.8,0,0.533333333333333326],"xyz":[0.293447448438991065,0.146171088872161348,0.245694753785250825],"hpluv":[340.1176986346278,291.808241377507443,45.1052440924579],"hsluv":[340.1176986346278,99.9999999999978,45.1052440924579]},"#cc0099":{"lch":[45.8245205562958589,101.850048541314862,331.598662995615],"luv":[45.8245205562958589,89.5911194129305102,-48.4444394147173441],"rgb":[0.8,0,0.6],"xyz":[0.306504412548063765,0.151393874515790505,0.314461431426368732],"hpluv":[331.598662995615,282.034759885138044,45.8245205562958589],"hsluv":[331.598662995615,99.9999999999981,45.8245205562958589]},"#cc00aa":{"lch":[46.633760692471931,102.477609530343315,323.022725489580409],"luv":[46.633760692471931,81.8667129915779,-61.640098629123905],"rgb":[0.8,0,0.66666666666666663],"xyz":[0.321562105513316321,0.1574169517018916,0.393765281043367332],"hpluv":[323.022725489580409,278.848217687739293,46.633760692471931],"hsluv":[323.022725489580409,99.9999999999983658,46.633760692471931]},"#cc00bb":{"lch":[47.5300446684938933,105.484027274260768,314.937463984289479],"luv":[47.5300446684938933,74.5070162947061903,-74.6698368342758414],"rgb":[0.8,0,0.733333333333333282],"xyz":[0.33869969762065294,0.164271988544826358,0.484023266142009079],"hpluv":[314.937463984289479,281.616311803476265,47.5300446684938933],"hsluv":[314.937463984289479,99.9999999999986,47.5300446684938933]},"#cc00cc":{"lch":[48.5096711653281147,110.497164945278598,307.715012949243601],"luv":[48.5096711653281147,67.5949102529980621,-87.4102486487325],"rgb":[0.8,0,0.8],"xyz":[0.357992073064374694,0.17198893872231516,0.585629776812279235],"hpluv":[307.715012949243601,289.042783730483393,48.5096711653281147],"hsluv":[307.715012949243601,99.9999999999988,48.5096711653281147]},"#cc00dd":{"lch":[49.5683488162236614,117.049051317219835,301.506761454082039],"luv":[49.5683488162236614,61.1697383356450075,-99.7935044289451],"rgb":[0.8,0,0.866666666666666696],"xyz":[0.379510398615008238,0.180596268942568694,0.698959624712285232],"hpluv":[301.506761454082039,299.64205877637869,49.5683488162236614],"hsluv":[301.506761454082039,99.9999999999990337,49.5683488162236614]},"#cc00ee":{"lch":[50.7013760136427862,124.695255359169607,296.294949026353493],"luv":[50.7013760136427862,55.2390203059142522,-111.792474454818787],"rgb":[0.8,0,0.933333333333333348],"xyz":[0.403322578881182947,0.190121141049038739,0.824370440780808456],"hpluv":[296.294949026353493,312.082566880879938,50.7013760136427862],"hsluv":[296.294949026353493,99.99999999999919,50.7013760136427862]},"#cc00ff":{"lch":[51.9038030272213,133.072735088441448,291.971633700566258],"luv":[51.9038030272213,49.7888328026579075,-123.407556300526],"rgb":[0.8,0,1],"xyz":[0.429493627291014368,0.200589560412971435,0.962204629072590301],"hpluv":[291.971633700566258,325.333832743425603,51.9038030272213],"hsluv":[291.971633700566258,99.9999999999993321,51.9038030272213]},"#cc1100":{"lch":[43.1235624482234172,140.134259476931788,12.8715382160273855],"luv":[43.1235624482234172,136.61296213687416,31.2171307992428524],"rgb":[0.8,0.0666666666666666657,0],"xyz":[0.251017239150112814,0.132406045574095299,0.0123406102432397219],"hpluv":[12.8715382160273855,412.352867097941,43.1235624482234172],"hsluv":[12.8715382160273855,100.000000000002245,43.1235624482234172]},"#cc1111":{"lch":[43.1837333530957892,138.41807101963343,12.1770506300617676],"luv":[43.1837333530957892,135.303728142340162,29.196978192614182],"rgb":[0.8,0.0666666666666666657,0.0666666666666666657],"xyz":[0.252028904649749919,0.132810711773950152,0.0176687152079953516],"hpluv":[12.1770506300617676,406.735363437937394,43.1837333530957892],"hsluv":[12.1770506300617676,95.3107026807431197,43.1837333530957892]},"#cc1122":{"lch":[43.294951674171287,135.375047793376126,10.8766574447476163],"luv":[43.294951674171287,132.943125696930394,25.5446451333550044],"rgb":[0.8,0.0666666666666666657,0.133333333333333331],"xyz":[0.253904262788227,0.13356085502934098,0.0275456014039745511],"hpluv":[10.8766574447476163,396.771701832449367,43.294951674171287],"hsluv":[10.8766574447476163,95.396390587568618,43.294951674171287]},"#cc1133":{"lch":[43.4771672841157724,130.73841758888139,8.7012157385065958],"luv":[43.4771672841157724,129.233706917218683,19.7783424502448213],"rgb":[0.8,0.0666666666666666657,0.2],"xyz":[0.256992013520684681,0.134795955322324079,0.0438077552615856944],"hpluv":[8.7012157385065958,381.576227833431062,43.4771672841157724],"hsluv":[8.7012157385065958,95.5308510527687389,43.4771672841157724]},"#cc1144":{"lch":[43.7382910834512586,124.807582872189826,5.49437317543092796],"luv":[43.7382910834512586,124.234167693991893,11.9500761411646046],"rgb":[0.8,0.0666666666666666657,0.266666666666666663],"xyz":[0.261450008764903596,0.136579153420011673,0.0672865302144723398],"hpluv":[5.49437317543092796,362.091632024479338,43.7382910834512586],"hsluv":[5.49437317543092796,95.7116850897169229,43.7382910834512586]},"#cc1155":{"lch":[44.0840061747103107,118.151091154502552,1.11194247693657511],"luv":[44.0840061747103107,118.128842001262925,2.29282106589917234],"rgb":[0.8,0.0666666666666666657,0.333333333333333315],"xyz":[0.267412422804265582,0.138964119035756506,0.0986885774884462413],"hpluv":[1.11194247693657511,340.091681007194666,44.0840061747103107],"hsluv":[1.11194247693657511,95.9318436200579754,44.0840061747103107]},"#cc1166":{"lch":[44.5181325219627837,111.53522478210337,355.453854482233226],"luv":[44.5181325219627837,111.184314904818763,-8.84050260677650712],"rgb":[0.8,0.0666666666666666657,0.4],"xyz":[0.274997418577773767,0.141998117345159797,0.138636221895590217],"hpluv":[355.453854482233226,317.917500588946211,44.5181325219627837],"hsluv":[355.453854482233226,96.1812476973727115,44.5181325219627837]},"#cc1177":{"lch":[45.0428415016287857,105.814757555455103,348.528515458334311],"luv":[45.0428415016287857,103.700981473984271,-21.0444614531261323],"rgb":[0.8,0.0666666666666666657,0.466666666666666674],"xyz":[0.284311431597975672,0.14572372255324062,0.187690023801988126],"hpluv":[348.528515458334311,298.098498005115459,45.0428415016287857],"hsluv":[348.528515458334311,96.4486017572014589,45.0428415016287857]},"#cc1188":{"lch":[45.6588256994622341,101.788242110562607,340.533613155211185],"luv":[45.6588256994622341,95.9697371205835594,-33.9213176183443323],"rgb":[0.8,0.0666666666666666657,0.533333333333333326],"xyz":[0.295451848699919473,0.150179889394018218,0.246362887205560266],"hpluv":[340.533613155211185,282.886487347344485,45.6588256994622341],"hsluv":[340.533613155211185,96.7230145871901215,45.6588256994622341]},"#cc1199":{"lch":[46.3654632546324876,100.035938879036408,331.896400713626349],"luv":[46.3654632546324876,88.2414291467186,-47.1236591273953138],"rgb":[0.8,0.0666666666666666657,0.6],"xyz":[0.308508812808992228,0.155402675037647375,0.315129564846678201],"hpluv":[331.896400713626349,273.779405248492822,46.3654632546324876],"hsluv":[331.896400713626349,96.9951405388504355,46.3654632546324876]},"#cc11aa":{"lch":[47.1609900317596882,100.794975336059878,323.201580807901109],"luv":[47.1609900317596882,80.7113646178594735,-60.3763420100941488],"rgb":[0.8,0.0666666666666666657,0.66666666666666663],"xyz":[0.323566505774244728,0.16142575222374847,0.394433414463676801],"hpluv":[323.201580807901109,271.203503720358924,47.1609900317596882],"hsluv":[323.201580807901109,97.2577546113476075,47.1609900317596882]},"#cc11bb":{"lch":[48.0426807208370548,103.942897448445919,315.013990059648165],"luv":[48.0426807208370548,73.5166718264647727,-73.4807790754699681],"rgb":[0.8,0.0666666666666666657,0.733333333333333282],"xyz":[0.340704097881581403,0.168280789066683228,0.484691399562318548],"hpluv":[315.013990059648165,274.540811344802705,48.0426807208370548],"hsluv":[315.013990059648165,97.5058443216483,48.0426807208370548]},"#cc11cc":{"lch":[49.0070341259591515,109.103198367120783,307.715012949243601],"luv":[49.0070341259591515,66.7421730285370387,-86.3075328888743769],"rgb":[0.8,0.0666666666666666657,0.8],"xyz":[0.359996473325303157,0.17599773924417203,0.586297910232588704],"hpluv":[307.715012949243601,282.499958642668389,49.0070341259591515],"hsluv":[307.715012949243601,97.7363817897909541,49.0070341259591515]},"#cc11dd":{"lch":[50.0499556366759037,115.801352096543823,301.456118533327128],"luv":[50.0499556366759037,60.4304023076134555,-98.7831950502093292],"rgb":[0.8,0.0666666666666666657,0.866666666666666696],"xyz":[0.381514798875936645,0.184605069464425564,0.699627758132594701],"hpluv":[301.456118533327128,293.595408819402792,50.0499556366759037],"hsluv":[301.456118533327128,97.9479403979501342,50.0499556366759037]},"#cc11ee":{"lch":[51.1669298024285837,123.587345912593733,296.214453457233276],"luv":[51.1669298024285837,54.5925079172689109,-110.876012505059137],"rgb":[0.8,0.0666666666666666657,0.933333333333333348],"xyz":[0.40532697914211141,0.194129941570895609,0.825038574201117925],"hpluv":[296.214453457233276,306.495409047480564,51.1669298024285837],"hsluv":[296.214453457233276,98.1402788193950215,51.1669298024285837]},"#cc11ff":{"lch":[52.3531771468210678,132.094610043027387,291.87590029388349],"luv":[52.3531771468210678,49.2181193296501576,-122.582881072651375],"rgb":[0.8,0.0666666666666666657,1],"xyz":[0.431498027551942775,0.204598360934828305,0.96287276249289977],"hpluv":[291.87590029388349,320.170549145207644,52.3531771468210678],"hsluv":[291.87590029388349,99.9999999999991189,52.3531771468210678]},"#cc2200":{"lch":[44.2095884480383674,135.132222138307952,14.1797238149512133],"luv":[44.2095884480383674,131.015027118873576,33.102569825888537],"rgb":[0.8,0.133333333333333331,0],"xyz":[0.254732862884880729,0.139837293043631267,0.0135791514881623328],"hpluv":[14.1797238149512133,387.866054960954045,44.2095884480383674],"hsluv":[14.1797238149512133,100.00000000000226,44.2095884480383674]},"#cc2211":{"lch":[44.2676114068871129,133.490625771231663,13.482935392010976],"luv":[44.2676114068871129,129.81154471696064,31.1241068464871375],"rgb":[0.8,0.133333333333333331,0.0666666666666666657],"xyz":[0.255744528384517833,0.14024195924348612,0.0189072564529179643],"hpluv":[13.482935392010976,382.652016671578622,44.2676114068871129],"hsluv":[13.482935392010976,95.5414705532830197,44.2676114068871129]},"#cc2222":{"lch":[44.3748759613401162,130.576558981694717,12.1770506300617747],"luv":[44.3748759613401162,127.638646515421286,27.5429423121666019],"rgb":[0.8,0.133333333333333331,0.133333333333333331],"xyz":[0.25761988652299489,0.140992102498876948,0.0287841426488971604],"hpluv":[12.1770506300617747,373.394050741154899,44.3748759613401162],"hsluv":[12.1770506300617747,87.4977996802062847,44.3748759613401162]},"#cc2233":{"lch":[44.5506596541482907,126.128431434884163,9.98899557195718657],"luv":[44.5506596541482907,124.216461430809,21.8781152257824267],"rgb":[0.8,0.133333333333333331,0.2],"xyz":[0.260707637255452596,0.142227202791860047,0.0450462965065083071],"hpluv":[9.98899557195718657,359.251162664680805,44.5506596541482907],"hsluv":[9.98899557195718657,87.8457930667704829,44.5506596541482907]},"#cc2244":{"lch":[44.8026641682027602,120.425301369152351,6.75586226508684629],"luv":[44.8026641682027602,119.589119356054482,14.1667124448306829],"rgb":[0.8,0.133333333333333331,0.266666666666666663],"xyz":[0.265165632499671511,0.144010400889547641,0.0685250714593949456],"hpluv":[6.75586226508684629,341.077623618219945,44.8026641682027602],"hsluv":[6.75586226508684629,88.3153597242729,44.8026641682027602]},"#cc2255":{"lch":[45.136480402373536,114.008772215671115,2.323188749975583],"luv":[45.136480402373536,113.915065115628011,4.62148047999889577],"rgb":[0.8,0.133333333333333331,0.333333333333333315],"xyz":[0.271128046539033496,0.146395366505292474,0.0999271187333688471],"hpluv":[2.323188749975583,320.51614012782295,45.136480402373536],"hsluv":[2.323188749975583,88.8894607126765663,45.136480402373536]},"#cc2266":{"lch":[45.5559407124691731,107.622008592458101,356.577515499379103],"luv":[45.5559407124691731,107.430062323442542,-6.42483016556681452],"rgb":[0.8,0.133333333333333331,0.4],"xyz":[0.278713042312541681,0.149429364814695764,0.139874763140512809],"hpluv":[356.577515499379103,299.774992396016216,45.5559407124691731],"hsluv":[356.577515499379103,89.543058875786258,45.5559407124691731]},"#cc2277":{"lch":[46.0633224094211542,102.110102175352239,349.514816334356908],"luv":[46.0633224094211542,100.405067655344695,-18.5821246198201955],"rgb":[0.8,0.133333333333333331,0.466666666666666674],"xyz":[0.288027055332743587,0.153154970022776588,0.188928565046910718],"hpluv":[349.514816334356908,281.289018816444,46.0633224094211542],"hsluv":[349.514816334356908,90.2475430222303174,46.0633224094211542]},"#cc2288":{"lch":[46.6595045299101443,98.2790088680822294,341.330158110485115],"luv":[46.6595045299101443,93.107459692013677,-31.4605234189234864],"rgb":[0.8,0.133333333333333331,0.533333333333333326],"xyz":[0.299167472434687387,0.157611136863554185,0.247601428450482886],"hpluv":[341.330158110485115,267.276005324070297,46.6595045299101443],"hsluv":[341.330158110485115,90.9748001704168,46.6595045299101443]},"#cc2299":{"lch":[47.3441166442187154,96.727251962869147,332.467163788405],"luv":[47.3441166442187154,85.772509513995189,-44.7128380217581167],"rgb":[0.8,0.133333333333333331,0.6],"xyz":[0.312224436543760087,0.162833922507183343,0.31636810609160082],"hpluv":[332.467163788405,259.252025571181889,47.3441166442187154],"hsluv":[332.467163788405,91.7002075152857259,47.3441166442187154]},"#cc22aa":{"lch":[48.1156936783416285,97.7076198445846131,323.544141865814368],"luv":[48.1156936783416285,78.5876931080813534,-58.0581903579838254],"rgb":[0.8,0.133333333333333331,0.66666666666666663],"xyz":[0.327282129509012643,0.168856999693284437,0.395671955708599421],"hpluv":[323.544141865814368,257.680176436907345,48.1156936783416285],"hsluv":[323.544141865814368,92.4042695013683328,48.1156936783416285]},"#cc22bb":{"lch":[48.9718390817589295,101.100583268181566,315.160199675634601],"luv":[48.9718390817589295,71.6885121422158846,-71.2887450022924867],"rgb":[0.8,0.133333333333333331,0.733333333333333282],"xyz":[0.344419721616349317,0.175712036536219196,0.485929940807241167],"hpluv":[315.160199675634601,261.96699229126267,48.9718390817589295],"hsluv":[315.160199675634601,93.0730408422972602,48.9718390817589295]},"#cc22cc":{"lch":[49.9093929354593513,106.520702596514482,307.715012949243658],"luv":[49.9093929354593513,65.1623716831421405,-84.2646153393173876],"rgb":[0.8,0.133333333333333331,0.8],"xyz":[0.363712097060071,0.183428986713708,0.587536451477511323],"hpluv":[307.715012949243658,270.826440261226253,49.9093929354593513],"hsluv":[307.715012949243658,93.6976999618693327,49.9093929354593513]},"#cc22dd":{"lch":[50.9245991417877377,113.480326695625976,301.360030221234524],"luv":[50.9245991417877377,59.0567580516805819,-96.9024451465042347],"rgb":[0.8,0.133333333333333331,0.866666666666666696],"xyz":[0.385230422610704615,0.192036316933961532,0.700866299377517321],"hpluv":[301.360030221234524,282.769318292038,50.9245991417877377],"hsluv":[301.360030221234524,94.2736696463096848,50.9245991417877377]},"#cc22ee":{"lch":[52.0132654143591964,121.518329969744158,296.062236941936249],"luv":[52.0132654143591964,53.3887372455597244,-109.162022947361166],"rgb":[0.8,0.133333333333333331,0.933333333333333348],"xyz":[0.409042602876879324,0.201561189040431576,0.826277115446040544],"hpluv":[296.062236941936249,296.460610812118318,52.0132654143591964],"hsluv":[296.062236941936249,94.7995997265514,52.0132654143591964]},"#cc22ff":{"lch":[53.170910599170611,130.261070707018604,291.695402941657903],"luv":[53.170910599170611,48.1538976563848422,-121.033667556747687],"rgb":[0.8,0.133333333333333331,1],"xyz":[0.435213651286710745,0.212029608404364273,0.964111303737822389],"hpluv":[291.695402941657903,310.870757963074425,53.170910599170611],"hsluv":[291.695402941657903,99.9999999999990621,53.170910599170611]},"#cc3300":{"lch":[45.9167915379707807,127.686226573765651,16.3911473443809399],"luv":[45.9167915379707807,122.496750231663356,36.0321889333482446],"rgb":[0.8,0.2,0],"xyz":[0.260850584973891519,0.15207273722165307,0.0156183921844992128],"hpluv":[16.3911473443809399,352.867650162608584,45.9167915379707807],"hsluv":[16.3911473443809399,100.000000000002288,45.9167915379707807]},"#cc3311":{"lch":[45.9716631772740811,126.14350976506573,15.6923563051461095],"luv":[45.9716631772740811,121.44186843726601,34.118289029712578],"rgb":[0.8,0.2,0.0666666666666666657],"xyz":[0.261862250473528624,0.152477403421507923,0.020946497149254846],"hpluv":[15.6923563051461095,348.188177538365835,45.9716631772740811],"hsluv":[15.6923563051461095,95.8756509753329595,45.9716631772740811]},"#cc3322":{"lch":[46.0731243265426613,123.399991281457972,14.3806932854006604],"luv":[46.0731243265426613,119.533487768482047,30.6480529588105668],"rgb":[0.8,0.2,0.133333333333333331],"xyz":[0.263737608612005681,0.153227546676898752,0.0308233833452340386],"hpluv":[14.3806932854006604,339.865273437066321,46.0731243265426613],"hsluv":[14.3806932854006604,88.4197842587317524,46.0731243265426613]},"#cc3333":{"lch":[46.2394596481243951,119.199958247304309,12.1770506300617924],"luv":[46.2394596481243951,116.518014060345578,25.1432385661076303],"rgb":[0.8,0.2,0.2],"xyz":[0.266825359344463386,0.154462646969881851,0.0470855372028451818],"hpluv":[12.1770506300617924,327.11667224844831,46.2394596481243951],"hsluv":[12.1770506300617924,76.6535755019082,46.2394596481243951]},"#cc3344":{"lch":[46.4780522046582405,113.793717346871745,8.90746564227168669],"luv":[46.4780522046582405,112.421330819758609,17.6197186224449389],"rgb":[0.8,0.2,0.266666666666666663],"xyz":[0.271283354588682302,0.156245845067569444,0.0705643121557318204],"hpluv":[8.90746564227168669,310.677421508065,46.4780522046582405],"hsluv":[8.90746564227168669,77.4930753906613887,46.4780522046582405]},"#cc3355":{"lch":[46.7943405275181661,107.68493286266704,4.39945159143432907],"luv":[46.7943405275181661,107.367637754253522,8.26045572038872855],"rgb":[0.8,0.2,0.333333333333333315],"xyz":[0.277245768628044287,0.158630810683314277,0.101966359429705736],"hpluv":[4.39945159143432907,292.012160158640199,46.7943405275181661],"hsluv":[4.39945159143432907,78.5258346284665265,46.7943405275181661]},"#cc3366":{"lch":[47.192153202602185,101.584765682520938,358.514989280316684],"luv":[47.192153202602185,101.55064731932022,-2.63261235272558647],"rgb":[0.8,0.2,0.4],"xyz":[0.284830764401552472,0.161664808992717568,0.141914003836849684],"hpluv":[358.514989280316684,273.148057687163259,47.192153202602185],"hsluv":[358.514989280316684,79.7102211537212781,47.192153202602185]},"#cc3377":{"lch":[47.6738975277608859,96.3272258277819589,351.225603296168742],"luv":[47.6738975277608859,95.1998742335289876,-14.6941614798792699],"rgb":[0.8,0.2,0.466666666666666674],"xyz":[0.294144777421754378,0.165390414200798391,0.190967805743247593],"hpluv":[351.225603296168742,256.39391915093114,47.6738975277608859],"hsluv":[351.225603296168742,80.9972134637005894,47.6738975277608859]},"#cc3388":{"lch":[48.2406991607903279,92.7347249941698095,342.718318936463845],"luv":[48.2406991607903279,88.5482927213948301,-27.5486674064369161],"rgb":[0.8,0.2,0.533333333333333326],"xyz":[0.305285194523698178,0.169846581041576,0.24964066914681976],"hpluv":[342.718318936463845,243.93163202064531,48.2406991607903279],"hsluv":[342.718318936463845,82.3372641433758758,48.2406991607903279]},"#cc3399":{"lch":[48.8925304323200436,91.4400639314067405,333.463846826874658],"luv":[48.8925304323200436,81.8070942553503926,-40.8519843003490877],"rgb":[0.8,0.2,0.6],"xyz":[0.318342158632770933,0.175069366685205147,0.318407346787937695],"hpluv":[333.463846826874658,237.319449797121564,48.8925304323200436],"hsluv":[333.463846826874658,83.6856508008112,48.8925304323200436]},"#cc33aa":{"lch":[49.6283419748853873,92.7248127600779242,324.141487451800515],"luv":[49.6283419748853873,75.1503095778714254,-54.3168654447363792],"rgb":[0.8,0.2,0.66666666666666663],"xyz":[0.333399851598023433,0.181092443871306241,0.397711196404936296],"hpluv":[324.141487451800515,237.085790295602294,49.6283419748853873],"hsluv":[324.141487451800515,85.0057245198840263,49.6283419748853873]},"#cc33bb":{"lch":[50.4462014889725054,96.4744776262418355,315.414049480091705],"luv":[50.4462014889725054,68.7089492450233905,-67.7230029377097],"rgb":[0.8,0.2,0.733333333333333282],"xyz":[0.350537443705360108,0.187947480714241,0.487969181503578042],"hpluv":[315.414049480091705,242.674024226837219,50.4462014889725054],"hsluv":[315.414049480091705,86.2701296035756258,50.4462014889725054]},"#cc33cc":{"lch":[51.3434379695087273,102.286811532428814,307.715012949243771],"luv":[51.3434379695087273,62.5723551280607779,-80.915339628518268],"rgb":[0.8,0.2,0.8],"xyz":[0.369829819149081862,0.195664430891729801,0.589575692173848198],"hpluv":[307.715012949243771,252.798225898109365,51.3434379695087273],"hsluv":[307.715012949243771,87.4604868647498,51.3434379695087273]},"#cc33dd":{"lch":[52.3167871114961827,109.649949983538605,301.195256028086874],"luv":[52.3167871114961827,56.7938698017029751,-93.7953510806358],"rgb":[0.8,0.2,0.866666666666666696],"xyz":[0.39134814469971535,0.204271761111983335,0.702905540073854196],"hpluv":[301.195256028086874,265.954105752122757,52.3167871114961827],"hsluv":[301.195256028086874,88.5661577004671,52.3167871114961827]},"#cc33ee":{"lch":[53.3625327970638494,118.082474280319559,295.802769884900215],"luv":[53.3625327970638494,51.3983045372134626,-106.309383512755787],"rgb":[0.8,0.2,0.933333333333333348],"xyz":[0.415160324965890115,0.21379663321845338,0.828316356142377419],"hpluv":[295.802769884900215,280.794331636146467,53.3625327970638494],"hsluv":[295.802769884900215,89.5826266077864375,53.3625327970638494]},"#cc33ff":{"lch":[54.4766398815527566,127.197777570935344,291.389330811727291],"luv":[54.4766398815527566,46.3894624378335,-118.436870921660102],"rgb":[0.8,0.2,1],"xyz":[0.441331373375721481,0.224265052582386076,0.966150544434159264],"hpluv":[291.389330811727291,296.284230666095709,54.4766398815527566],"hsluv":[291.389330811727291,99.9999999999990195,54.4766398815527566]},"#cc4400":{"lch":[48.2269914221542848,118.435883841274119,19.7039935064818295],"luv":[48.2269914221542848,111.501113106022,39.9319465764175447],"rgb":[0.8,0.266666666666666663,0],"xyz":[0.26968315545685756,0.1697378781875854,0.0185625823454878096],"hpluv":[19.7039935064818295,311.625122342549162,48.2269914221542848],"hsluv":[19.7039935064818295,100.000000000002174,48.2269914221542848]},"#cc4411":{"lch":[48.2779913635395,116.996103035931512,19.0066631306561966],"luv":[48.2779913635395,110.617558299276112,38.1030697123021],"rgb":[0.8,0.266666666666666663,0.0666666666666666657],"xyz":[0.270694820956494664,0.170142544387440253,0.0238906873102434428],"hpluv":[19.0066631306561966,307.511619232155283,48.2779913635395],"hsluv":[19.0066631306561966,96.278384876640132,48.2779913635395]},"#cc4422":{"lch":[48.3723181772035389,114.428966114904512,17.6946931608209894],"luv":[48.3723181772035389,109.015290220227484,34.7800917814421453],"rgb":[0.8,0.266666666666666663,0.133333333333333331],"xyz":[0.272570179094971721,0.170892687642831081,0.0337675735062226354],"hpluv":[17.6946931608209894,300.177682052924467,48.3723181772035389],"hsluv":[17.6946931608209894,89.5341066932624869,48.3723181772035389]},"#cc4433":{"lch":[48.5270263662828114,110.48209503335984,15.4815426750504042],"luv":[48.5270263662828114,106.473417017787412,29.4907577304601034],"rgb":[0.8,0.266666666666666663,0.2],"xyz":[0.275657929827429427,0.17212778793581418,0.0500297273638337786],"hpluv":[15.4815426750504042,288.900004133964501,48.5270263662828114],"hsluv":[15.4815426750504042,78.8475327486048,48.5270263662828114]},"#cc4444":{"lch":[48.7490888960709725,105.371058014361893,12.1770506300618457],"luv":[48.7490888960709725,103.000257716521162,22.2262632351064191],"rgb":[0.8,0.266666666666666663,0.266666666666666663],"xyz":[0.280115925071648342,0.173910986033501774,0.0735085023167204171],"hpluv":[12.1770506300618457,274.28001464324592,48.7490888960709725],"hsluv":[12.1770506300618457,64.2723089184284788,48.7490888960709725]},"#cc4455":{"lch":[49.0437296069087,99.5540950311582691,7.58056168126664254],"luv":[49.0437296069087,98.6840273694228074,13.1331861946711772],"rgb":[0.8,0.266666666666666663,0.333333333333333315],"xyz":[0.286078339111010327,0.176295951649246607,0.104910549590694333],"hpluv":[7.58056168126664254,257.581676799067395,49.0437296069087],"hsluv":[7.58056168126664254,65.7689369270132858,49.0437296069087]},"#cc4466":{"lch":[49.4147368002801244,93.7049448509207679,1.51289058041819868],"luv":[49.4147368002801244,93.6722802728102835,2.47398423725391092],"rgb":[0.8,0.266666666666666663,0.4],"xyz":[0.293663334884518512,0.179329949958649898,0.14485819399783828],"hpluv":[1.51289058041819868,240.627550105868352,49.4147368002801244],"hsluv":[1.51289058041819868,67.500804726855,49.4147368002801244]},"#cc4477":{"lch":[49.8646356184384132,88.6490107187132566,353.900159994018],"luv":[49.8646356184384132,88.1471013723349586,-9.41995865499641383],"rgb":[0.8,0.266666666666666663,0.466666666666666674],"xyz":[0.302977347904720418,0.183055555166730721,0.19391199590423619],"hpluv":[353.900159994018,225.590377060975072,49.8646356184384132],"hsluv":[353.900159994018,69.4017616341687784,49.8646356184384132]},"#cc4488":{"lch":[50.3948096201307436,85.2405150759366279,344.907000147604322],"luv":[50.3948096201307436,82.3000967091543743,-22.1954835963269055],"rgb":[0.8,0.266666666666666663,0.533333333333333326],"xyz":[0.314117765006664218,0.187511722007508319,0.252584859307808385],"hpluv":[344.907000147604322,214.634525667930632,50.3948096201307436],"hsluv":[344.907000147604322,71.4025087995354824,50.3948096201307436]},"#cc4499":{"lch":[51.0056074652318046,84.1718897613591679,335.041688295241613],"luv":[51.0056074652318046,76.3115014820887581,-35.5170630478867793],"rgb":[0.8,0.266666666666666663,0.6],"xyz":[0.327174729115737,0.192734507651137477,0.321351536948926264],"hpluv":[335.041688295241613,209.40569084337892,51.0056074652318046],"hsluv":[335.041688295241613,73.4381222823911344,51.0056074652318046]},"#cc44aa":{"lch":[51.6964496814969152,85.7749410926589348,325.085448007895536],"luv":[51.6964496814969152,70.3360122964612913,-49.093644127128691],"rgb":[0.8,0.266666666666666663,0.66666666666666663],"xyz":[0.342232422080989473,0.198757584837238571,0.400655386565924865],"hpluv":[325.085448007895536,210.542141790665795,51.6964496814969152],"hsluv":[325.085448007895536,75.4531429469973602,51.6964496814969152]},"#cc44bb":{"lch":[52.465940673938249,89.9444778306290829,315.812454406659811],"luv":[52.465940673938249,64.4957791941851326,-62.692133145710109],"rgb":[0.8,0.266666666666666663,0.733333333333333282],"xyz":[0.359370014188326148,0.20561262168017333,0.490913371664566611],"hpluv":[315.812454406659811,217.538619181736436,52.465940673938249],"hsluv":[315.812454406659811,77.4040753157756143,52.465940673938249]},"#cc44cc":{"lch":[53.3119860408958175,96.2498903650287758,307.715012949243885],"luv":[53.3119860408958175,58.8793631430003828,-76.1397530279337502],"rgb":[0.8,0.266666666666666663,0.8],"xyz":[0.378662389632047902,0.213329571857662131,0.592519882334836767],"hpluv":[307.715012949243885,229.094523932317799,53.3119860408958175],"hsluv":[307.715012949243885,79.2597279113993,53.3119860408958175]},"#cc44dd":{"lch":[54.2319126329379486,104.138844540210442,300.941773361922515],"luv":[54.2319126329379486,53.5447276840333259,-89.31887303035586],"rgb":[0.8,0.266666666666666663,0.866666666666666696],"xyz":[0.40018071518268139,0.221936902077915665,0.705849730234842765],"hpluv":[300.941773361922515,243.66724889744043,54.2319126329379486],"hsluv":[300.941773361922515,81.0000946003390538,54.2319126329379486]},"#cc44ee":{"lch":[55.2225876682288401,113.096616320403683,295.407423092027],"luv":[55.2225876682288401,48.5243479249087528,-102.157879194837463],"rgb":[0.8,0.266666666666666663,0.933333333333333348],"xyz":[0.423992895448856155,0.23146177418438571,0.831260546303366],"hpluv":[295.407423092027,259.879597148300718,55.2225876682288401],"hsluv":[295.407423092027,86.8652077390175634,55.2225876682288401]},"#cc44ff":{"lch":[56.2805330741479537,122.715491745326418,290.92682559337851],"luv":[56.2805330741479537,43.8309487146615382,-114.62085259266739],"rgb":[0.8,0.266666666666666663,1],"xyz":[0.450163943858687521,0.241930193548318406,0.969094734595147833],"hpluv":[290.92682559337851,276.681751484143376,56.2805330741479537],"hsluv":[290.92682559337851,99.9999999999989768,56.2805330741479537]},"#cc5500":{"lch":[51.07852272981998,108.355754132896138,24.3337665629108457],"luv":[51.07852272981998,98.7294936728878838,44.6481414260866],"rgb":[0.8,0.333333333333333315,0],"xyz":[0.281496412171203525,0.193364391616277664,0.0225003345836030169],"hpluv":[24.3337665629108457,269.186315008697875,51.07852272981998],"hsluv":[24.3337665629108457,100.000000000002217,51.07852272981998]},"#cc5511":{"lch":[51.1252833166066,107.003417336388864,23.6474066829241423],"luv":[51.1252833166066,98.0184651549503201,42.91983003616388],"rgb":[0.8,0.333333333333333315,0.0666666666666666657],"xyz":[0.282508077670840629,0.193769057816132517,0.0278284395483586466],"hpluv":[23.6474066829241423,265.583595811902,51.1252833166066],"hsluv":[23.6474066829241423,96.7082849697218307,51.1252833166066]},"#cc5522":{"lch":[51.2117930688627467,104.583581473170284,22.351909846807331],"luv":[51.2117930688627467,96.7257518395109486,39.7725337995530808],"rgb":[0.8,0.333333333333333315,0.133333333333333331],"xyz":[0.284383435809317686,0.194519201071523345,0.0377053257443378462],"hpluv":[22.351909846807331,259.139045481141636,51.2117930688627467],"hsluv":[22.351909846807331,90.7274756498525079,51.2117930688627467]},"#cc5533":{"lch":[51.3537468781662625,100.840694749975015,20.1540565840537802],"luv":[51.3537468781662625,94.6661789932146718,34.7442120716858369],"rgb":[0.8,0.333333333333333315,0.2],"xyz":[0.287471186541775392,0.195754301364506444,0.0539674796019489894],"hpluv":[20.1540565840537802,249.174169543579183,51.3537468781662625],"hsluv":[20.1540565840537802,81.2092815218714321,51.3537468781662625]},"#cc5544":{"lch":[51.5576456995760424,95.9504499860225764,16.842752904303623],"luv":[51.5576456995760424,91.8345174188591074,27.8012636936791502],"rgb":[0.8,0.333333333333333315,0.266666666666666663],"xyz":[0.291929181785994307,0.197537499462194038,0.0774462545548356279],"hpluv":[16.842752904303623,236.152889903020736,51.5576456995760424],"hsluv":[16.842752904303623,68.1451659970290109,51.5576456995760424]},"#cc5555":{"lch":[51.8284441386287114,90.3192908744292851,12.1770506300618919],"luv":[51.8284441386287114,88.2871484081680364,19.0513445723360242],"rgb":[0.8,0.333333333333333315,0.333333333333333315],"xyz":[0.297891595825356292,0.199922465077938871,0.108848301828809529],"hpluv":[12.1770506300618919,221.132040760117775,51.8284441386287114],"hsluv":[12.1770506300618919,51.8180912815801,51.8284441386287114]},"#cc5566":{"lch":[52.1698415772242612,84.57836719340618,5.91246023067467696],"luv":[52.1698415772242612,84.1284474176031836,8.71232071300305577],"rgb":[0.8,0.333333333333333315,0.4],"xyz":[0.305476591598864478,0.202956463387342162,0.148795946235953491],"hpluv":[5.91246023067467696,205.721226704565879,52.1698415772242612],"hsluv":[5.91246023067467696,54.0130370973951415,52.1698415772242612]},"#cc5577":{"lch":[52.5844387621358607,79.5477054283049654,357.892334615122479],"luv":[52.5844387621358607,79.493890006545314,-2.92555815796844554],"rgb":[0.8,0.333333333333333315,0.466666666666666674],"xyz":[0.314790604619066383,0.206682068595422985,0.1978497481423514],"hpluv":[357.892334615122479,191.959557587962337,52.5844387621358607],"hsluv":[357.892334615122479,56.4492590331968884,52.5844387621358607]},"#cc5588":{"lch":[53.0738428910491962,76.1348505840982,348.222799824086337],"luv":[53.0738428910491962,74.5321119975331072,-15.5396188708133902],"rgb":[0.8,0.333333333333333315,0.533333333333333326],"xyz":[0.325931021721010183,0.211138235436200583,0.256522611545923596],"hpluv":[348.222799824086337,182.029716109510787,53.0738428910491962],"hsluv":[348.222799824086337,59.0443947768825339,53.0738428910491962]},"#cc5599":{"lch":[53.6387547547300443,75.1322702050955655,337.451566852479516],"luv":[53.6387547547300443,69.3888374020903314,-28.8105409556599774],"rgb":[0.8,0.333333333333333315,0.6],"xyz":[0.338987985830082938,0.216361021079829741,0.325289289187041475],"hpluv":[337.451566852479516,177.740808472615271,53.6387547547300443],"hsluv":[337.451566852479516,61.7180151219793274,53.6387547547300443]},"#cc55aa":{"lch":[54.2790527162633651,76.9604755372169507,326.525055670409472],"luv":[54.2790527162633651,64.1948187783047359,-42.449264268479169],"rgb":[0.8,0.333333333333333315,0.66666666666666663],"xyz":[0.354045678795335439,0.222384098265930835,0.404593138804040076],"hpluv":[326.525055670409472,179.918080614224607,54.2790527162633651],"hsluv":[326.525055670409472,64.3982563598392517,54.2790527162633651]},"#cc55bb":{"lch":[54.9938795911038767,81.534325182187132,316.414019967357433],"luv":[54.9938795911038767,59.0586208757266817,-56.2132144888709888],"rgb":[0.8,0.333333333333333315,0.733333333333333282],"xyz":[0.371183270902672113,0.229239135108865594,0.494851123902681822],"hpluv":[316.414019967357433,188.133202867989326,54.9938795911038767],"hsluv":[316.414019967357433,67.0257727218245378,54.9938795911038767]},"#cc55cc":{"lch":[55.7817339145568667,88.3780574248019,307.715012949244169],"luv":[55.7817339145568667,54.0638926159085145,-69.9126351198200382],"rgb":[0.8,0.333333333333333315,0.8],"xyz":[0.390475646346393868,0.236956085286354395,0.596457634572952],"hpluv":[307.715012949244169,201.044301715196383,55.7817339145568667],"hsluv":[307.715012949244169,69.5552053299685156,55.7817339145568667]},"#cc55dd":{"lch":[56.6405645837994882,96.8744721490496232,300.570417552325068],"luv":[56.6405645837994882,49.2700598324241312,-83.4093793183137],"rgb":[0.8,0.333333333333333315,0.866666666666666696],"xyz":[0.411993971897027356,0.245563415506607929,0.709787482472958],"hpluv":[300.570417552325068,217.030665421015726,56.6405645837994882],"hsluv":[300.570417552325068,72.1703256475756234,56.6405645837994882]},"#cc55ee":{"lch":[57.5678665910353118,106.457154357221242,294.836459829444038],"luv":[57.5678665910353118,44.7151619549172707,-96.6109724885468],"rgb":[0.8,0.333333333333333315,0.933333333333333348],"xyz":[0.435806152163202121,0.255088287613077946,0.835198298541481199],"hpluv":[294.836459829444038,234.657286550118499,57.5678665910353118],"hsluv":[294.836459829444038,85.8995510844284809,57.5678665910353118]},"#cc55ff":{"lch":[58.560775097021633,116.686665261471418,290.266986003053091],"luv":[58.560775097021633,40.4196983751927874,-109.462440284789551],"rgb":[0.8,0.333333333333333315,1],"xyz":[0.461977200573033486,0.26555670697701067,0.973032486833263],"hpluv":[290.266986003053091,252.844632524376181,58.560775097021633],"hsluv":[290.266986003053091,99.9999999999988,58.560775097021633]},"#cc6600":{"lch":[54.388060759003551,98.5584029412379579,30.482787603130209],"luv":[54.388060759003551,84.9358174587045482,49.9966569177284157],"rgb":[0.8,0.4,0],"xyz":[0.29652446987705,0.223420507027971,0.0275096871522183678],"hpluv":[30.482787603130209,229.947880001204965,54.388060759003551],"hsluv":[30.482787603130209,100.000000000002359,54.388060759003551]},"#cc6611":{"lch":[54.430531479182676,97.2669366851907711,29.8266301777559697],"luv":[54.430531479182676,84.3824110244092367,48.3783596438383583],"rgb":[0.8,0.4,0.0666666666666666657],"xyz":[0.297536135376687105,0.223825173227825858,0.032837792116974],"hpluv":[29.8266301777559697,226.757672191171366,54.430531479182676],"hsluv":[29.8266301777559697,97.1300271864182463,54.430531479182676]},"#cc6622":{"lch":[54.5091256699603548,94.945229062596681,28.5830621108902889],"luv":[54.5091256699603548,83.3737269438019695,45.4248629854764],"rgb":[0.8,0.4,0.133333333333333331],"xyz":[0.299411493515164162,0.224575316483216686,0.0427146783129532],"hpluv":[28.5830621108902889,221.025945543219876,54.5091256699603548],"hsluv":[28.5830621108902889,91.902111940908739,54.5091256699603548]},"#cc6633":{"lch":[54.6381494647888388,91.324965774397,26.4577509745500876],"luv":[54.6381494647888388,81.7598754062496624,40.688722605278663],"rgb":[0.8,0.4,0.2],"xyz":[0.302499244247621868,0.225810416776199785,0.0589768321705643403],"hpluv":[26.4577509745500876,212.096187894217309,54.6381494647888388],"hsluv":[26.4577509745500876,83.5463344335908289,54.6381494647888388]},"#cc6644":{"lch":[54.8236025158742137,86.5353782352002,23.2174871910251],"luv":[54.8236025158742137,79.5273159773273903,34.1141861950638798],"rgb":[0.8,0.4,0.266666666666666663],"xyz":[0.306957239491840783,0.227593614873887379,0.0824556071234509858],"hpluv":[23.2174871910251,200.292852977212362,54.8236025158742137],"hsluv":[23.2174871910251,72.0055590941951635,54.8236025158742137]},"#cc6655":{"lch":[55.0701314820163077,80.921365039871,18.5706632184066578],"luv":[55.0701314820163077,76.7079190692017505,25.7713498286149552],"rgb":[0.8,0.4,0.333333333333333315],"xyz":[0.312919653531202768,0.229978580489632212,0.113857654397424887],"hpluv":[18.5706632184066578,186.460314881725708,55.0701314820163077],"hsluv":[18.5706632184066578,57.463707489477386,55.0701314820163077]},"#cc6666":{"lch":[55.3812986167643686,75.0592421503045841,12.1770506300619576],"luv":[55.3812986167643686,73.3704437553848834,15.8324923911544637],"rgb":[0.8,0.4,0.4],"xyz":[0.320504649304710953,0.233012578799035502,0.153805298804568835],"hpluv":[12.1770506300619576,171.980959079196282,55.3812986167643686],"hsluv":[12.1770506300619576,45.9214429163451925,55.3812986167643686]},"#cc6677":{"lch":[55.7597240294908403,69.7578535305897702,3.7339069954147126],"luv":[55.7597240294908403,69.6097753289024,4.54283037928401079],"rgb":[0.8,0.4,0.466666666666666674],"xyz":[0.329818662324912859,0.236738184007116326,0.202859100710966744],"hpluv":[3.7339069954147126,158.749300244695775,55.7597240294908403],"hsluv":[3.7339069954147126,47.4001946683844935,55.7597240294908403]},"#cc6688":{"lch":[56.2071770412836855,65.9988703650454198,353.20230012342131],"luv":[56.2071770412836855,65.534915505775615,-7.81189727997758432],"rgb":[0.8,0.4,0.533333333333333326],"xyz":[0.340959079426856659,0.241194350847893924,0.26153196411453894],"hpluv":[353.20230012342131,148.999240608904586,56.2071770412836855],"hsluv":[353.20230012342131,48.9818497710332537,56.2071770412836855]},"#cc6699":{"lch":[56.7246474757154573,64.7364860461136544,341.13073016495332],"luv":[56.7246474757154573,61.2574795353059756,-20.9364234428957907],"rgb":[0.8,0.4,0.6],"xyz":[0.354016043535929414,0.246417136491523081,0.330298641755656819],"hpluv":[341.13073016495332,144.81603174775961,56.7246474757154573],"hsluv":[341.13073016495332,50.615240188358726,56.7246474757154573]},"#cc66aa":{"lch":[57.3124110050500661,66.5536753014576874,328.724652687595039],"luv":[57.3124110050500661,56.882247269492467,-34.5514347271451925],"rgb":[0.8,0.4,0.66666666666666663],"xyz":[0.369073736501181915,0.252440213677624203,0.40960249137265542],"hpluv":[328.724652687595039,147.354258527000582,57.3124110050500661],"hsluv":[328.724652687595039,52.5782983823555057,57.3124110050500661]},"#cc66bb":{"lch":[57.9700950113726634,71.4140361316817831,317.320615294889421],"luv":[57.9700950113726634,52.5006394421278628,-48.4112323204526405],"rgb":[0.8,0.4,0.733333333333333282],"xyz":[0.386211328608518589,0.259295250520558962,0.499860476471297166],"hpluv":[317.320615294889421,156.321564636453559,57.9700950113726634],"hsluv":[317.320615294889421,55.7867325729046044,57.9700950113726634]},"#cc66cc":{"lch":[58.6967474031167882,78.7715159072838844,307.71501294924451],"luv":[58.6967474031167882,48.1872412824568599,-62.3132529717215391],"rgb":[0.8,0.4,0.8],"xyz":[0.405503704052240344,0.267012200698047764,0.601466987141567322],"hpluv":[307.71501294924451,170.292097080892688,58.6967474031167882],"hsluv":[307.71501294924451,58.9158791245518429,58.6967474031167882]},"#cc66dd":{"lch":[59.4909085631812928,87.9045601549668589,300.035118747227784],"luv":[59.4909085631812928,43.9989332886277964,-76.1006278916348151],"rgb":[0.8,0.4,0.866666666666666696],"xyz":[0.427022029602873832,0.27561953091830127,0.71479683504157332],"hpluv":[300.035118747227784,187.499506963343748,59.4909085631812928],"hsluv":[300.035118747227784,69.8010448945604907,59.4909085631812928]},"#cc66ee":{"lch":[60.3506853352839272,98.1678970647401314,294.030303780460372],"luv":[60.3506853352839272,39.9759075841908498,-89.6597057040320919],"rgb":[0.8,0.4,0.933333333333333348],"xyz":[0.450834209869048597,0.285144403024771287,0.840207651110096543],"hpluv":[294.030303780460372,206.408039079415715,60.3506853352839272],"hsluv":[294.030303780460372,84.6650997716967169,60.3506853352839272]},"#cc66ff":{"lch":[61.2738253236974799,109.076950193692937,289.351384827957531],"luv":[61.2738253236974799,36.143813792667018,-102.914555763887847],"rgb":[0.8,0.4,1],"xyz":[0.477005258278879962,0.295612822388704,0.978041839401878388],"hpluv":[289.351384827957531,225.890163025573315,61.2738253236974799],"hsluv":[289.351384827957531,99.9999999999987,61.2738253236974799]},"#cc7700":{"lch":[58.0681687130694684,90.1274111260576,38.2527636780657616],"luv":[58.0681687130694684,70.775890411238,55.8007488550273862],"rgb":[0.8,0.466666666666666674,0],"xyz":[0.314978207930467602,0.260327983134806762,0.0336609331700240683],"hpluv":[38.2527636780657616,196.95095583694345,58.0681687130694684],"hsluv":[38.2527636780657616,100.00000000000226,58.0681687130694684]},"#cc7711":{"lch":[58.1065272060428,88.8714225311590837,37.658223554494576],"luv":[58.1065272060428,70.356768805075,54.2959927252558288],"rgb":[0.8,0.466666666666666674,0.0666666666666666657],"xyz":[0.315989873430104706,0.260732649334661615,0.0389890381347797],"hpluv":[37.658223554494576,194.078102813960953,58.1065272060428],"hsluv":[37.658223554494576,97.5201736027742925,58.1065272060428]},"#cc7722":{"lch":[58.1775287784180364,86.6008188207648573,36.5262538454337786],"luv":[58.1775287784180364,69.5910513475594286,51.5440335321973748],"rgb":[0.8,0.466666666666666674,0.133333333333333331],"xyz":[0.317865231568581763,0.261482792590052415,0.0488659243307589],"hpluv":[36.5262538454337786,188.888733728089306,58.1775287784180364],"hsluv":[36.5262538454337786,92.9922153048462832,58.1775287784180364]},"#cc7733":{"lch":[58.2941365993826111,83.0249283524691606,34.5753600294232513],"luv":[58.2941365993826111,68.3611064237300781,47.1157920070976459],"rgb":[0.8,0.466666666666666674,0.2],"xyz":[0.320952982301039469,0.262717892883035542,0.0651280781883700477],"hpluv":[34.5753600294232513,180.726967614303447,58.2941365993826111],"hsluv":[34.5753600294232513,85.7262720770138458,58.2941365993826111]},"#cc7744":{"lch":[58.4618482438389577,78.2181767747613321,31.5590767862408974],"luv":[58.4618482438389577,66.6497843857434447,40.9376284034837923],"rgb":[0.8,0.466666666666666674,0.266666666666666663],"xyz":[0.325410977545258384,0.264501090980723108,0.0886068531412566862],"hpluv":[31.5590767862408974,169.775287201810244,58.4618482438389577],"hsluv":[31.5590767862408974,75.6318325574838,58.4618482438389577]},"#cc7755":{"lch":[58.6849825995062133,72.4480337937475,27.1381330463907204],"luv":[58.6849825995062133,64.4721877935720187,33.0462494345479811],"rgb":[0.8,0.466666666666666674,0.333333333333333315],"xyz":[0.331373391584620369,0.266886056596467969,0.120008900415230588],"hpluv":[27.1381330463907204,156.653084219512607,58.6849825995062133],"hsluv":[27.1381330463907204,62.8141161752895059,58.6849825995062133]},"#cc7766":{"lch":[58.9669266929607829,66.2083874258113667,20.8554290651987451],"luv":[58.9669266929607829,61.8705265372573407,23.5709251309504673],"rgb":[0.8,0.466666666666666674,0.4],"xyz":[0.338958387358128554,0.269920054905871287,0.159956544822374536],"hpluv":[20.8554290651987451,142.476698671576116,58.9669266929607829],"hsluv":[20.8554290651987451,47.542957476979069,58.9669266929607829]},"#cc7777":{"lch":[59.3102652975897229,60.2635194006596251,12.177050630062082],"luv":[59.3102652975897229,58.907617956407762,12.7115820123061383],"rgb":[0.8,0.466666666666666674,0.466666666666666674],"xyz":[0.34827240037833046,0.273645660113952083,0.209010346728772445],"hpluv":[12.177050630062082,128.932959302114057,59.3102652975897229],"hsluv":[12.177050630062082,43.5373021749198443,59.3102652975897229]},"#cc7788":{"lch":[59.7168613687891963,55.6638868177661834,0.734433949810619269],"luv":[59.7168613687891963,55.6593138534775917,0.713496335773026069],"rgb":[0.8,0.466666666666666674,0.533333333333333326],"xyz":[0.35941281748027426,0.278101826954729681,0.26768321013234464],"hpluv":[0.734433949810619269,118.281243349182901,59.7168613687891963],"hsluv":[0.734433949810619269,45.0130000154657779,59.7168613687891963]},"#cc7799":{"lch":[60.187915321807921,53.6038783156568073,346.890122071781263],"luv":[60.187915321807921,52.2067938730354371,-12.1583898596044406],"rgb":[0.8,0.466666666666666674,0.6],"xyz":[0.37246978158934696,0.283324612598358838,0.336449887773462519],"hpluv":[346.890122071781263,113.012436406344946,60.187915321807921],"hsluv":[346.890122071781263,46.5549497102544,60.187915321807921]},"#cc77aa":{"lch":[60.7240163061688349,54.9761438743297148,332.197464335395125],"luv":[60.7240163061688349,48.6297161920954863,-25.6422912074417866],"rgb":[0.8,0.466666666666666674,0.66666666666666663],"xyz":[0.387527474554599516,0.28934768978445996,0.41575373739046112],"hpluv":[332.197464335395125,114.882297594683308,60.7240163061688349],"hsluv":[332.197464335395125,48.1189262345266471,60.7240163061688349]},"#cc77bb":{"lch":[61.3251919150652043,59.875823087291181,318.726648244723037],"luv":[61.3251919150652043,45.0009333565193046,-39.4972174643062743],"rgb":[0.8,0.466666666666666674,0.733333333333333282],"xyz":[0.40466506666193619,0.296202726627394719,0.506011722489102866],"hpluv":[318.726648244723037,123.894465684476771,61.3251919150652043],"hsluv":[318.726648244723037,49.6642191709372156,61.3251919150652043]},"#cc77cc":{"lch":[61.9909592768387228,67.6487625915650881,307.715012949244965],"luv":[61.9909592768387228,41.3830711255614219,-53.514451360232222],"rgb":[0.8,0.466666666666666674,0.8],"xyz":[0.423957442105657889,0.303919676804883521,0.607618233159373],"hpluv":[307.715012949244965,138.474825543749517,61.9909592768387228],"hsluv":[307.715012949244965,51.1553628289834066,61.9909592768387228]},"#cc77dd":{"lch":[62.7203784873954362,77.3966796673740305,299.257833182927357],"luv":[62.7203784873954362,37.8268934727942252,-67.5231231041040161],"rgb":[0.8,0.466666666666666674,0.866666666666666696],"xyz":[0.445475767656291488,0.312527007025137,0.720948081059379],"hpluv":[299.257833182927357,156.586020071329443,62.7203784873954362],"hsluv":[299.257833182927357,66.8390608629672158,62.7203784873954362]},"#cc77ee":{"lch":[63.5121081687847351,88.3507940057556453,292.894169444170245],"luv":[63.5121081687847351,34.371127600373157,-81.3909601179783],"rgb":[0.8,0.466666666666666674,0.933333333333333348],"xyz":[0.469287947922466198,0.322051879131607044,0.846358897127902243],"hpluv":[292.894169444170245,176.519730115921618,63.5121081687847351],"hsluv":[292.894169444170245,83.1130682001540322,63.5121081687847351]},"#cc77ff":{"lch":[64.3644622692190467,99.9639900757921112,288.092077643344339],"luv":[64.3644622692190467,31.0433170684360782,-95.0216384686225553],"rgb":[0.8,0.466666666666666674,1],"xyz":[0.495458996332297619,0.332520298495539768,0.984193085419684088],"hpluv":[288.092077643344339,197.077372703744913,64.3644622692190467],"hsluv":[288.092077643344339,99.9999999999984794,64.3644622692190467]},"#cc8800":{"lch":[62.03823759594124,83.9779445354575813,47.4964941193052752],"luv":[62.03823759594124,56.738465406715342,61.9115636346826221],"rgb":[0.8,0.533333333333333326,0],"xyz":[0.337050577655438111,0.304472722584748334,0.0410183897450140181],"hpluv":[47.4964941193052752,171.769129739761638,62.03823759594124],"hsluv":[47.4964941193052752,100.000000000002245,62.03823759594124]},"#cc8811":{"lch":[62.0727951053461879,82.7448035916202542,47.0033697453910904],"luv":[62.0727951053461879,56.4282611354359744,60.519037225048919],"rgb":[0.8,0.533333333333333326,0.0666666666666666657],"xyz":[0.338062243155075215,0.304877388784603187,0.0463464947097696478],"hpluv":[47.0033697453910904,169.152629782786704,62.0727951053461879],"hsluv":[47.0033697453910904,97.8669953021426,62.0727951053461879]},"#cc8822":{"lch":[62.1367747194074127,80.5023095814055836,46.0605806208152728],"luv":[62.1367747194074127,55.8603434591127268,57.9676105818622389],"rgb":[0.8,0.533333333333333326,0.133333333333333331],"xyz":[0.339937601293552272,0.305627532039994,0.0562233809057488473],"hpluv":[46.0605806208152728,164.398919884807611,62.1367747194074127],"hsluv":[46.0605806208152728,93.9640765124603,62.1367747194074127]},"#cc8833":{"lch":[62.2418885518498541,76.9329948636363241,44.4230175211057343],"luv":[62.2418885518498541,54.9448944756850963,53.8492736231801246],"rgb":[0.8,0.533333333333333326,0.2],"xyz":[0.34302535202601,0.306862632332977114,0.0724855347633599906],"hpluv":[44.4230175211057343,156.844467463147254,62.2418885518498541],"hsluv":[44.4230175211057343,87.678806867525978,62.2418885518498541]},"#cc8844":{"lch":[62.3931521103864668,72.0506908450526424,41.8566920827827929],"luv":[62.3931521103864668,53.6645163812677168,48.0772475586321661],"rgb":[0.8,0.533333333333333326,0.266666666666666663],"xyz":[0.347483347270228893,0.30864583043066468,0.0959643097162466291],"hpluv":[41.8566920827827929,146.534723453778,62.3931521103864668],"hsluv":[41.8566920827827929,78.900857077449,62.3931521103864668]},"#cc8855":{"lch":[62.5945538889838673,66.028576146577123,38.0101307109045408],"luv":[62.5945538889838673,52.0240395147187513,40.6604498316892062],"rgb":[0.8,0.533333333333333326,0.333333333333333315],"xyz":[0.353445761309590878,0.311030796046409541,0.127366356990220531],"hpluv":[38.0101307109045408,133.855034432196135,62.5945538889838673],"hsluv":[38.0101307109045408,67.6770944211119314,62.5945538889838673]},"#cc8866":{"lch":[62.8492816845599265,59.2369010326618337,32.3420191431213624],"luv":[62.8492816845599265,50.047464385327217,31.6900891849924626],"rgb":[0.8,0.533333333333333326,0.4],"xyz":[0.361030757083099063,0.31406479435581286,0.167314001397364492],"hpluv":[32.3420191431213624,119.60004374597824,62.8492816845599265],"hsluv":[32.3420191431213624,54.1901780257147436,62.8492816845599265]},"#cc8877":{"lch":[63.1598410661450771,52.3169991415742,24.053169540805424],"luv":[63.1598410661450771,47.7741895619322392,21.3235834436907119],"rgb":[0.8,0.533333333333333326,0.466666666666666674],"xyz":[0.370344770103300969,0.317790399563893655,0.216367803303762402],"hpluv":[24.053169540805424,105.109295035123296,63.1598410661450771],"hsluv":[24.053169540805424,38.7316682482548558,63.1598410661450771]},"#cc8888":{"lch":[63.5281271999152182,46.2961098245983322,12.1770506300622312],"luv":[63.5281271999152182,45.2544686659219906,9.76539045078869528],"rgb":[0.8,0.533333333333333326,0.533333333333333326],"xyz":[0.381485187205244769,0.322246566404671253,0.275040666707334569],"hpluv":[12.1770506300622312,92.4736018048895403,63.5281271999152182],"hsluv":[12.1770506300622312,40.0703189706204199,63.5281271999152182]},"#cc8899":{"lch":[63.9554753143552119,42.6335463086933615,356.296984030050055],"luv":[63.9554753143552119,42.5445368433351,-2.7534806412255004],"rgb":[0.8,0.533333333333333326,0.6],"xyz":[0.394542151314317469,0.327469352048300411,0.343807344348452504],"hpluv":[356.296984030050055,84.588837176407921,63.9554753143552119],"hsluv":[356.296984030050055,41.5088242950414781,63.9554753143552119]},"#cc88aa":{"lch":[64.442701858069384,42.8028595258545153,338.056731442080661],"luv":[64.442701858069384,39.701977128446444,-15.9949303118941444],"rgb":[0.8,0.533333333333333326,0.66666666666666663],"xyz":[0.40959984427957,0.333492429234401533,0.423111193965451104],"hpluv":[338.056731442080661,84.28268641071584,64.442701858069384],"hsluv":[338.056731442080661,42.9831867606486924,64.442701858069384]},"#cc88bb":{"lch":[64.9901424985427099,47.2946673003310707,321.051918945199532],"luv":[64.9901424985427099,36.7818149859187784,-29.7301806484697622],"rgb":[0.8,0.533333333333333326,0.733333333333333282],"xyz":[0.426737436386906699,0.340347466077336291,0.513369179064092851],"hpluv":[321.051918945199532,92.3430068912496296,64.9901424985427099],"hsluv":[321.051918945199532,44.4548878388224864,64.9901424985427099]},"#cc88cc":{"lch":[65.5976900795525637,55.3077284551996158,307.715012949245761],"luv":[65.5976900795525637,33.8336367550969399,-43.751912538747959],"rgb":[0.8,0.533333333333333326,0.8],"xyz":[0.446029811830628398,0.348064416254825093,0.614975689734363],"hpluv":[307.715012949245761,106.988377595373095,65.5976900795525637],"hsluv":[307.715012949245761,45.8886814173124122,65.5976900795525637]},"#cc88dd":{"lch":[66.2648339334855905,65.6132669537387727,298.095232643272539],"luv":[66.2648339334855905,30.8998122908772608,-57.8817967994354774],"rgb":[0.8,0.533333333333333326,0.866666666666666696],"xyz":[0.467548137381262,0.356671746475078599,0.728305537634369],"hpluv":[298.095232643272539,125.645770778198369,66.2648339334855905],"hsluv":[298.095232643272539,63.1276078601331037,66.2648339334855905]},"#cc88ee":{"lch":[66.9907009061042,77.2337728548956193,291.267726386147558],"luv":[66.9907009061042,28.0147259973813227,-71.9738202174461463],"rgb":[0.8,0.533333333333333326,0.933333333333333348],"xyz":[0.491360317647436706,0.366196618581548616,0.853716353702892228],"hpluv":[291.267726386147558,146.295866424915545,66.9907009061042],"hsluv":[291.267726386147558,81.1585487563552874,66.9907009061042]},"#cc88ff":{"lch":[67.7740978167257,89.535143384050329,286.350196506734335],"luv":[67.7740978167257,25.2048126805589376,-85.914255618845857],"rgb":[0.8,0.533333333333333326,1],"xyz":[0.517531366057268127,0.37666503794548134,0.991550541994674073],"hpluv":[286.350196506734335,167.63670457649863,67.7740978167257],"hsluv":[286.350196506734335,99.9999999999982379,67.7740978167257]},"#cc9900":{"lch":[66.2294666531998217,80.7116888085701163,57.6888018595631422],"luv":[66.2294666531998217,43.1418134232290527,68.2140795209226383],"rgb":[0.8,0.6,0],"xyz":[0.362920178107905556,0.356211923489684,0.0496415898958362731],"hpluv":[57.6888018595631422,154.64094800189136,66.2294666531998217],"hsluv":[57.6888018595631422,100.000000000002331,66.2294666531998217]},"#cc9911":{"lch":[66.2605931548954459,79.5070460268624,57.3307205104302042],"luv":[66.2605931548954459,42.9170325725223805,66.9290570909725915],"rgb":[0.8,0.6,0.0666666666666666657],"xyz":[0.36393184360754266,0.356616589689538854,0.0549696948605919],"hpluv":[57.3307205104302042,152.261332222626407,66.2605931548954459],"hsluv":[57.3307205104302042,98.1673920986410877,66.2605931548954459]},"#cc9922":{"lch":[66.318231165714252,77.3048675578901339,56.6444543825244],"luv":[66.318231165714252,42.5047546114663533,64.5708013235236535],"rgb":[0.8,0.6,0.133333333333333331],"xyz":[0.365807201746019717,0.357366732944929655,0.0648465810565711],"hpluv":[56.6444543825244,147.915345655385721,66.318231165714252],"hsluv":[56.6444543825244,94.8079930897652901,66.318231165714252]},"#cc9933":{"lch":[66.4129558628457772,73.7662990604099207,55.446788144651876],"luv":[66.4129558628457772,41.8381333944198062,60.7539091017242114],"rgb":[0.8,0.6,0.2],"xyz":[0.368894952478477423,0.358601833237912782,0.0811087349141822456],"hpluv":[55.446788144651876,140.943324602767206,66.4129558628457772],"hsluv":[55.446788144651876,89.3812598244831804,66.4129558628457772]},"#cc9944":{"lch":[66.5493334014023361,68.8491039809152596,53.5533094328142383],"luv":[66.5493334014023361,40.9015039610359423,55.3829043360877122],"rgb":[0.8,0.6,0.266666666666666663],"xyz":[0.373352947722696338,0.360385031335600348,0.104587509867068884],"hpluv":[53.5533094328142383,131.278591794008349,66.5493334014023361],"hsluv":[53.5533094328142383,81.7675495661837459,66.5493334014023361]},"#cc9955":{"lch":[66.7310322275847341,62.6300376921671571,50.6698876242401539],"luv":[66.7310322275847341,39.6941340540006422,48.4447865412296466],"rgb":[0.8,0.6,0.333333333333333315],"xyz":[0.379315361762058323,0.362769996951345208,0.135989557141042799],"hpluv":[50.6698876242401539,119.095172229338388,66.7310322275847341],"hsluv":[50.6698876242401539,71.9728873324543912,66.7310322275847341]},"#cc9966":{"lch":[66.9610303820851,55.3290996264574488,46.2964172073191236],"luv":[66.9610303820851,38.2284030091626121,39.9987308404091877],"rgb":[0.8,0.6,0.4],"xyz":[0.386900357535566508,0.365803995260748527,0.175937201548186761],"hpluv":[46.2964172073191236,104.850571413887963,66.9610303820851],"hsluv":[46.2964172073191236,60.1139469393688586,66.9610303820851]},"#cc9977":{"lch":[67.2417240975963608,47.3725698769106316,39.5497292985384448],"luv":[67.2417240975963608,36.5276723895038842,30.1643751227811094],"rgb":[0.8,0.6,0.466666666666666674],"xyz":[0.396214370555768414,0.369529600468829322,0.22499100345458467],"hpluv":[39.5497292985384448,89.3979234879296598,67.2417240975963608],"hsluv":[39.5497292985384448,46.4000360859745484,67.2417240975963608]},"#cc9988":{"lch":[67.5749927230407508,39.5461637624335367,28.8927829606528306],"luv":[67.5749927230407508,34.6236706423047593,19.1076031876950658],"rgb":[0.8,0.6,0.533333333333333326],"xyz":[0.407354787657712214,0.37398576730960692,0.28366386685815681],"hpluv":[28.8927829606528306,74.2604675709266076,67.5749927230407508],"hsluv":[28.8927829606528306,33.7758353105824227,67.5749927230407508]},"#cc9999":{"lch":[67.962242737641,33.3028609095241,12.177050630062606],"luv":[67.962242737641,32.5535618700051401,7.02468179598591647],"rgb":[0.8,0.6,0.6],"xyz":[0.420411751766784914,0.379208552953236078,0.352430544499274745],"hpluv":[12.177050630062606,62.1803508213615217,67.962242737641],"hsluv":[12.177050630062606,35.0991912912463349,67.962242737641]},"#cc99aa":{"lch":[68.4044417972397838,30.9200145018949506,349.049331623372325],"luv":[68.4044417972397838,30.3569952347367966,-5.87368173427548168],"rgb":[0.8,0.6,0.66666666666666663],"xyz":[0.43546944473203747,0.3852316301393372,0.431734394116273346],"hpluv":[349.049331623372325,57.3580941092039609,68.4044417972397838],"hsluv":[349.049331623372325,36.4663034143199312,68.4044417972397838]},"#cc99bb":{"lch":[68.9021485343020856,34.1112448474386483,325.385883063702067],"luv":[68.9021485343020856,28.0734328763681233,-19.3767745401024669],"rgb":[0.8,0.6,0.733333333333333282],"xyz":[0.452607036839374144,0.392086666982271959,0.521992379214915],"hpluv":[325.385883063702067,62.8208966420876678,68.9021485343020856],"hsluv":[325.385883063702067,37.8410036888738404,68.9021485343020856]},"#cc99cc":{"lch":[69.4555411877739601,42.0770553751994854,307.715012949247],"luv":[69.4555411877739601,25.7399796927440505,-33.285613025220492],"rgb":[0.8,0.6,0.8],"xyz":[0.471899412283095843,0.39980361715976076,0.623598889885185192],"hpluv":[307.715012949247,76.8736967911951581,69.4555411877739601],"hsluv":[307.715012949247,39.1886552488513473,69.4555411877739601]},"#cc99dd":{"lch":[70.0644466506374215,52.8759829560521695,296.254085335195782],"luv":[70.0644466506374215,23.3898305690433475,-47.4213601610093534],"rgb":[0.8,0.6,0.866666666666666696],"xyz":[0.493417737833729442,0.408410947380014266,0.73692873778519119],"hpluv":[296.254085335195782,95.7635162234915498,70.0644466506374215],"hsluv":[296.254085335195782,58.3905887561973813,70.0644466506374215]},"#cc99ee":{"lch":[70.7283706212672,65.1265075826905218,288.858843135035954],"luv":[70.7283706212672,21.0513451251656711,-61.6303728557552191],"rgb":[0.8,0.6,0.933333333333333348],"xyz":[0.517229918099904151,0.417935819486484283,0.862339553853714413],"hpluv":[288.858843135035954,116.843205481858362,70.7283706212672],"hsluv":[288.858843135035954,78.6530020758075494,70.7283706212672]},"#cc99ff":{"lch":[71.4465289765693115,78.0706881495843561,283.894640570210413],"luv":[71.4465289765693115,18.7476796475605703,-75.7862576987549517],"rgb":[0.8,0.6,1],"xyz":[0.543400966509735572,0.428404238850417,1.00017374214549637],"hpluv":[283.894640570210413,138.658404713871533,71.4465289765693115],"hsluv":[283.894640570210413,99.9999999999978,71.4465289765693115]},"#990000":{"lch":[31.2857235930303546,105.214874065330946,12.1770506300617765],"luv":[31.2857235930303546,102.847587834444283,22.1933188419334826],"rgb":[0.6,0,0],"xyz":[0.131365760434599882,0.067735470224092,0.00615777002037173893],"hpluv":[12.1770506300617765,426.746789183125316,31.2857235930303546],"hsluv":[12.1770506300617765,100.000000000002217,31.2857235930303546]},"#990011":{"lch":[31.379701704172021,102.819321078199806,10.8595456684147944],"luv":[31.379701704172021,100.978030711674904,19.3713732237542438],"rgb":[0.6,0,0.0666666666666666657],"xyz":[0.132377425934237014,0.0681401364239468538,0.0114858749851273704],"hpluv":[10.8595456684147944,415.781582167217948,31.379701704172021],"hsluv":[10.8595456684147944,99.9999999999964473,31.379701704172021]},"#990022":{"lch":[31.5529326060038784,98.7447775317108807,8.37468971343924729],"luv":[31.5529326060038784,97.6918390895904309,14.3817824027706251],"rgb":[0.6,0,0.133333333333333331],"xyz":[0.134252784072714015,0.0688902796793376682,0.0213627611811065682],"hpluv":[8.37468971343924729,397.112659756655944,31.5529326060038784],"hsluv":[8.37468971343924729,99.999999999996632,31.5529326060038784]},"#990033":{"lch":[31.8354354483696653,92.9837515463916162,4.18138532137367758],"luv":[31.8354354483696653,92.7362491408617586,6.7798338419980837],"rgb":[0.6,0,0.2],"xyz":[0.137340534805171777,0.070125379972320781,0.0376249150387177114],"hpluv":[4.18138532137367758,370.62575576901952,31.8354354483696653],"hsluv":[4.18138532137367758,99.9999999999969,31.8354354483696653]},"#990044":{"lch":[32.2375108843075537,86.4821897260425771,357.977822115898675],"luv":[32.2375108843075537,86.4283323676992552,-3.05163955108307716],"rgb":[0.6,0,0.266666666666666663],"xyz":[0.141798530049390636,0.071908578070008361,0.0611036899916043499],"hpluv":[357.977822115898675,340.411718586576399,32.2375108843075537],"hsluv":[357.977822115898675,99.9999999999971294,32.2375108843075537]},"#990055":{"lch":[32.7650133258702,80.5606445545256804,349.629319937368109],"luv":[32.7650133258702,79.244583226626645,-14.502188809930411],"rgb":[0.6,0,0.333333333333333315],"xyz":[0.147760944088752622,0.0742935436857532,0.0925057372655782584],"hpluv":[349.629319937368109,311.998071704954214,32.7650133258702],"hsluv":[349.629319937368109,99.9999999999974847,32.7650133258702]},"#990066":{"lch":[33.4199981031921354,76.5714397631706589,339.419101050621862],"luv":[33.4199981031921354,71.6844038684648268,-26.9171252073414813],"rgb":[0.6,0,0.4],"xyz":[0.155345939862260807,0.0773275419951565124,0.13245338167272222],"hpluv":[339.419101050621862,290.7366076723265,33.4199981031921354],"hsluv":[339.419101050621862,99.9999999999978257,33.4199981031921354]},"#990077":{"lch":[34.2012599030024091,75.4745938555541187,328.234093427391315],"luv":[34.2012599030024091,64.1689603650959413,-39.7335984190155429],"rgb":[0.6,0,0.466666666666666674],"xyz":[0.164659952882462712,0.0810531472032373218,0.181507183579120129],"hpluv":[328.234093427391315,280.025774017920355,34.2012599030024091],"hsluv":[328.234093427391315,99.9999999999982094,34.2012599030024091]},"#990088":{"lch":[35.1048906557013396,77.5195253213057214,317.327493504651898],"luv":[35.1048906557013396,56.9954501323273419,-52.5432723595889613],"rgb":[0.6,0,0.533333333333333326],"xyz":[0.175800369984406568,0.0855093140440149196,0.240180046982692297],"hpluv":[317.327493504651898,280.209468657326,35.1048906557013396],"hsluv":[317.327493504651898,99.9999999999985505,35.1048906557013396]},"#990099":{"lch":[36.1248689761228263,82.286593786153162,307.715012949243601],"luv":[36.1248689761228263,50.3375351282041592,-65.0939019735657922],"rgb":[0.6,0,0.6],"xyz":[0.188857334093479268,0.0907320996876440772,0.308946724623810232],"hpluv":[307.715012949243601,289.042783730483336,36.1248689761228263],"hsluv":[307.715012949243601,99.9999999999988205,36.1248689761228263]},"#9900aa":{"lch":[37.2536516336468,89.0432435337247,299.813571633796073],"luv":[37.2536516336468,44.2704748017611038,-77.2581664281054685],"rgb":[0.6,0,0.66666666666666663],"xyz":[0.203915027058731824,0.0967551768737451856,0.388250574240808777],"hpluv":[299.813571633796073,303.299328566743952,37.2536516336468],"hsluv":[299.813571633796073,99.9999999999990905,37.2536516336468]},"#9900bb":{"lch":[38.4827280957899163,97.0854614833978786,293.557760104203282],"luv":[38.4827280957899163,38.802472411223853,-88.9941288300556579],"rgb":[0.6,0,0.733333333333333282],"xyz":[0.221052619166068443,0.103610213716679944,0.478508559339450579],"hpluv":[293.557760104203282,320.130957524774431,38.4827280957899163],"hsluv":[293.557760104203282,99.9999999999993179,38.4827280957899163]},"#9900cc":{"lch":[39.8031058181596933,105.884836559305498,288.673688741635],"luv":[39.8031058181596933,33.9019931565070394,-100.310784431221492],"rgb":[0.6,0,0.8],"xyz":[0.240344994609790197,0.111327163894168746,0.580115070009720735],"hpluv":[288.673688741635,337.564008898092311,39.8031058181596933],"hsluv":[288.673688741635,99.9999999999995879,39.8031058181596933]},"#9900dd":{"lch":[41.2057071388761145,115.092674624289529,284.860629917023232],"luv":[41.2057071388761145,29.5176685469448401,-111.243116621772529],"rgb":[0.6,0,0.866666666666666696],"xyz":[0.26186332016042374,0.11993449411442228,0.693444917909726732],"hpluv":[284.860629917023232,354.429316861661562,41.2057071388761145],"hsluv":[284.860629917023232,99.9999999999996732,41.2057071388761145]},"#9900ee":{"lch":[42.6816722484951754,124.494824438150232,281.862271937449748],"luv":[42.6816722484951754,25.5911328567321625,-121.836181945245357],"rgb":[0.6,0,0.933333333333333348],"xyz":[0.285675500426598505,0.129459366220892297,0.81885573397825],"hpluv":[281.862271937449748,370.125661914021862,42.6816722484951754],"hsluv":[281.862271937449748,99.9999999999998437,42.6816722484951754]},"#9900ff":{"lch":[44.2225734052255817,133.965544030308308,279.479958267333473],"luv":[44.2225734052255817,22.0644732467518,-132.136013288126151],"rgb":[0.6,0,1],"xyz":[0.311846548836429871,0.139927785584825,0.956689922270031801],"hpluv":[279.479958267333473,384.404468177447882,44.2225734052255817],"hsluv":[279.479958267333473,99.9999999999999574,44.2225734052255817]},"#bb0000":{"lch":[38.8409426943877918,130.623313921981463,12.1770506300617818],"luv":[38.8409426943877918,127.684349491075153,27.5528044852332741],"rgb":[0.733333333333333282,0,0],"xyz":[0.20493059501477473,0.105667338054495463,0.00960612164131736251],"hpluv":[12.1770506300617818,426.746789183125145,38.8409426943877918],"hsluv":[12.1770506300617818,100.000000000002217,38.8409426943877918]},"#bb0011":{"lch":[38.9108602521517142,128.680110500437479,11.3344428162225856],"luv":[38.9108602521517142,126.170422440132384,25.2902222149853806],"rgb":[0.733333333333333282,0,0.0666666666666666657],"xyz":[0.205942260514411862,0.106072004254350316,0.014934226606072994],"hpluv":[11.3344428162225856,419.642938315359174,38.9108602521517142],"hsluv":[11.3344428162225856,99.9999999999964189,38.9108602521517142]},"#bb0022":{"lch":[39.0399998564474373,125.270257566289573,9.75441483214293292],"luv":[39.0399998564474373,123.459226352671962,21.2239689767074431],"rgb":[0.733333333333333282,0,0.133333333333333331],"xyz":[0.207817618652888864,0.10682214750974113,0.0248111128020521918],"hpluv":[9.75441483214293292,407.171610230013243,39.0399998564474373],"hsluv":[9.75441483214293292,99.9999999999965326,39.0399998564474373]},"#bb0033":{"lch":[39.2513155564018916,120.169209623826248,7.10634666793171554],"luv":[39.2513155564018916,119.246098647877318,14.866300779810846],"rgb":[0.733333333333333282,0,0.2],"xyz":[0.210905369385346597,0.108057247802724243,0.041073266659663335],"hpluv":[7.10634666793171554,388.488631169232178,39.2513155564018916],"hsluv":[7.10634666793171554,99.9999999999967173,39.2513155564018916]},"#bb0044":{"lch":[39.5535843326651886,113.833969399977519,3.19865110237705785],"luv":[39.5535843326651886,113.656624965458903,6.3517077086437],"rgb":[0.733333333333333282,0,0.266666666666666663],"xyz":[0.215363364629565485,0.109840445900411823,0.0645520416125499735],"hpluv":[3.19865110237705785,365.195452768261646,39.5535843326651886],"hsluv":[3.19865110237705785,99.9999999999968878,39.5535843326651886]},"#bb0055":{"lch":[39.9527871554326666,107.03859947839959,357.869864695501747],"luv":[39.9527871554326666,106.964633924407806,-3.97855095665153691],"rgb":[0.733333333333333282,0,0.333333333333333315],"xyz":[0.221325778668927498,0.112225411516156656,0.095954088886523875],"hpluv":[357.869864695501747,339.963790558847222,39.9527871554326666],"hsluv":[357.869864695501747,99.9999999999971436,39.9527871554326666]},"#bb0066":{"lch":[40.452535568346093,100.749762000256624,351.053086521713055],"luv":[40.452535568346093,99.5239253968718884,-15.6685295004423661],"rgb":[0.733333333333333282,0,0.4],"xyz":[0.228910774442435655,0.115259409825559975,0.135901733293667837],"hpluv":[351.053086521713055,316.036764522848955,40.452535568346093],"hsluv":[351.053086521713055,99.999999999997442,40.452535568346093]},"#bb0077":{"lch":[41.0543478797665813,95.9494038996296581,342.883287985183927],"luv":[41.0543478797665813,91.699536963203,-28.2397420212797314],"rgb":[0.733333333333333282,0,0.466666666666666674],"xyz":[0.238224787462637588,0.118985015033640784,0.184955535200065746],"hpluv":[342.883287985183927,296.56674422547627,41.0543478797665813],"hsluv":[342.883287985183927,99.9999999999977,41.0543478797665813]},"#bb0088":{"lch":[41.7578935904565398,93.4210879643116243,333.788939203308246],"luv":[41.7578935904565398,83.8148890966975699,-41.2621381189091565],"rgb":[0.733333333333333282,0,0.533333333333333326],"xyz":[0.249365204564581389,0.123441181874418382,0.243628398603637913],"hpluv":[333.788939203308246,283.887103643995431,41.7578935904565398],"hsluv":[333.788939203308246,99.9999999999980531,41.7578935904565398]},"#bb0099":{"lch":[42.5612451572515,93.5592166386053918,324.452137443226093],"luv":[42.5612451572515,76.1225984195714318,-54.3937223205229472],"rgb":[0.733333333333333282,0,0.6],"xyz":[0.262422168673654088,0.12866396751804754,0.31239507624475582],"hpluv":[324.452137443226093,278.940502109978524,42.5612451572515],"hsluv":[324.452137443226093,99.9999999999983089,42.5612451572515]},"#bb00aa":{"lch":[43.461144448190268,96.3048592888224562,315.591494301740738],"luv":[43.461144448190268,68.7971872487792,-67.3911934105362747],"rgb":[0.733333333333333282,0,0.66666666666666663],"xyz":[0.277479861638906644,0.134687044704148634,0.391698925861754421],"hpluv":[315.591494301740738,281.181257774391042,43.461144448190268],"hsluv":[315.591494301740738,99.9999999999985647,43.461144448190268]},"#bb00bb":{"lch":[44.4532771259814652,101.257357078489918,307.715012949243601],"luv":[44.4532771259814652,61.9426024872754866,-80.100976021670192],"rgb":[0.733333333333333282,0,0.733333333333333282],"xyz":[0.294617453746243319,0.141542081547083393,0.481956910960396168],"hpluv":[307.715012949243601,289.042783730483507,44.4532771259814652],"hsluv":[307.715012949243601,99.9999999999988205,44.4532771259814652]},"#bb00cc":{"lch":[45.5325428123826796,107.876917991024385,301.028560594476971],"luv":[45.5325428123826796,55.6068066637028551,-92.44085940701639],"rgb":[0.733333333333333282,0,0.8],"xyz":[0.313909829189965,0.149259031724572194,0.583563421630666324],"hpluv":[301.028560594476971,300.639438898355309,45.5325428123826796],"hsluv":[301.028560594476971,99.999999999999,45.5325428123826796]},"#bb00dd":{"lch":[46.6933085129957348,115.650155059812704,295.504945579136574],"luv":[46.6933085129957348,49.7976850024997,-104.379830109799173],"rgb":[0.733333333333333282,0,0.866666666666666696],"xyz":[0.335428154740598616,0.157866361944825728,0.696893269530672321],"hpluv":[295.504945579136574,314.290242754568055,46.6933085129957348],"hsluv":[295.504945579136574,99.9999999999992468,46.6933085129957348]},"#bb00ee":{"lch":[47.929635203682146,124.167261181765113,290.999747870951808],"luv":[47.929635203682146,44.4970566855085821,-115.920320460682433],"rgb":[0.733333333333333282,0,0.933333333333333348],"xyz":[0.359240335006773326,0.167391234051295773,0.822304085599195544],"hpluv":[290.999747870951808,328.732244305823656,47.929635203682146],"hsluv":[290.999747870951808,99.9999999999993889,47.929635203682146]},"#bb00ff":{"lch":[49.2354711183318727,133.13261796854033,287.33664116340708],"luv":[49.2354711183318727,39.6715752597668896,-127.084460433075606],"rgb":[0.733333333333333282,0,1],"xyz":[0.385411383416604747,0.177859653415228469,0.96013827389097739],"hpluv":[287.33664116340708,343.119737385630629,49.2354711183318727],"hsluv":[287.33664116340708,99.9999999999995595,49.2354711183318727]},"#991100":{"lch":[32.2007428060931531,101.551746681272988,13.5001929330929755],"luv":[32.2007428060931531,98.7457840078795,23.707116962774041],"rgb":[0.6,0.0666666666666666657,0],"xyz":[0.133370160695528289,0.071744270745948871,0.00682590344068119],"hpluv":[13.5001929330929755,400.185025755779861,32.2007428060931531],"hsluv":[13.5001929330929755,100.000000000002359,32.2007428060931531]},"#991111":{"lch":[32.2911967351305,99.2607003603350506,12.1770506300617907],"luv":[32.2911967351305,97.0273802968116854,20.9373854328113431],"rgb":[0.6,0.0666666666666666657,0.0666666666666666657],"xyz":[0.134381826195165421,0.0721489369458037239,0.0121540084054368204],"hpluv":[12.1770506300617907,390.060992150638072,32.2911967351305],"hsluv":[12.1770506300617907,91.4033806551417,32.2911967351305]},"#991122":{"lch":[32.4579836187547883,95.3555453821432337,9.67722696349737355],"luv":[32.4579836187547883,93.9986702773161085,16.0290368151797],"rgb":[0.6,0.0666666666666666657,0.133333333333333331],"xyz":[0.136257184333642423,0.0728990802011945382,0.0220308946014160165],"hpluv":[9.67722696349737355,372.789562407290305,32.4579836187547883],"hsluv":[9.67722696349737355,91.6870397393079,32.4579836187547883]},"#991133":{"lch":[32.7301206059751877,89.8170234432985382,5.44607482402752385],"luv":[32.7301206059751877,89.4115862394302,8.52443231910342547],"rgb":[0.6,0.0666666666666666657,0.2],"xyz":[0.139344935066100184,0.0741341804941776511,0.0382930484590271597],"hpluv":[5.44607482402752385,348.217328437078379,32.7301206059751877],"hsluv":[5.44607482402752385,92.1153976677825312,32.7301206059751877]},"#991144":{"lch":[33.1177416447746893,83.547386161100178,359.159050762907725],"luv":[33.1177416447746893,83.5383872622118275,-1.22620878349376072],"rgb":[0.6,0.0666666666666666657,0.266666666666666663],"xyz":[0.143802930310319044,0.0759173785918652311,0.0617718234119138],"hpluv":[359.159050762907725,320.119020896680809,33.1177416447746893],"hsluv":[359.159050762907725,92.6613616101701609,33.1177416447746893]},"#991155":{"lch":[33.6267967661613341,77.8365467514172451,350.652860745276428],"luv":[33.6267967661613341,76.8030661853154,-12.6418762341523276],"rgb":[0.6,0.0666666666666666657,0.333333333333333315],"xyz":[0.149765344349681029,0.078302344207610064,0.0931738706858877136],"hpluv":[350.652860745276428,293.722615948770908,33.6267967661613341],"hsluv":[350.652860745276428,93.2833986807069664,33.6267967661613341]},"#991166":{"lch":[34.2596587707945375,74.039902428482776,340.197584074025258],"luv":[34.2596587707945375,69.661662743272629,-25.0830599301957804],"rgb":[0.6,0.0666666666666666657,0.4],"xyz":[0.157350340123189214,0.0813363425170133825,0.133121515093031662],"hpluv":[340.197584074025258,274.234525914752396,34.2596587707945375],"hsluv":[340.197584074025258,93.9371476037906774,34.2596587707945375]},"#991177":{"lch":[35.0156115165229096,73.1458980715855773,328.71391057162549],"luv":[35.0156115165229096,62.509382661628635,-37.9855167657472848],"rgb":[0.6,0.0666666666666666657,0.466666666666666674],"xyz":[0.16666435314339112,0.0850619477250941919,0.182175316999429571],"hpluv":[328.71391057162549,265.074278305330154,35.0156115165229096],"hsluv":[328.71391057162549,94.5844210689808165,35.0156115165229096]},"#991188":{"lch":[35.8913494409224185,75.4242755669397269,317.528981112118743],"luv":[35.8913494409224185,55.6343762077295239,-50.9277677576239398],"rgb":[0.6,0.0666666666666666657,0.533333333333333326],"xyz":[0.177804770245334975,0.0895181145658717897,0.240848180403001738],"hpluv":[317.528981112118743,266.661726649655066,35.8913494409224185],"hsluv":[317.528981112118743,95.1976582537924116,35.8913494409224185]},"#991199":{"lch":[36.8815072257793,80.448343562419069,307.715012949243601],"luv":[36.8815072257793,49.2130143411107568,-63.6397297401445599],"rgb":[0.6,0.0666666666666666657,0.6],"xyz":[0.190861734354407675,0.0947409002095009473,0.309614858044119645],"hpluv":[307.715012949243601,276.788327826692239,36.8815072257793],"hsluv":[307.715012949243601,95.7603314825458511,36.8815072257793]},"#9911aa":{"lch":[37.9791974354050694,87.4639739592788,299.695850237394552],"luv":[37.9791974354050694,43.3292813921454609,-75.9771025690614152],"rgb":[0.6,0.0666666666666666657,0.66666666666666663],"xyz":[0.205919427319660231,0.100763977395602056,0.388918707661118246],"hpluv":[299.695850237394552,292.228621346341356,37.9791974354050694],"hsluv":[299.695850237394552,96.26500390067784,37.9791974354050694]},"#9911bb":{"lch":[39.176522525078866,95.7489617369993624,293.383950362709356],"luv":[39.176522525078866,38.0018814997404846,-87.8847010360338459],"rgb":[0.6,0.0666666666666666657,0.733333333333333282],"xyz":[0.22305701942699685,0.107619014238536814,0.47917669275976],"hpluv":[293.383950362709356,310.132668732371314,39.176522525078866],"hsluv":[293.383950362709356,96.7106400677762537,39.176522525078866]},"#9911cc":{"lch":[40.465031277763515,104.765415075180798,288.480743990765689],"luv":[40.465031277763515,33.2091620218187842,-99.3626879350770622],"rgb":[0.6,0.0666666666666666657,0.8],"xyz":[0.242349394870718604,0.115335964416025616,0.580783203430030204],"hpluv":[288.480743990765689,328.531778006508034,40.465031277763515],"hsluv":[288.480743990765689,97.1001366995766,40.465031277763515]},"#9911dd":{"lch":[41.8361001822542917,114.161763941518927,284.668123617886636],"luv":[41.8361001822542917,28.9080153835727351,-110.441092863219225],"rgb":[0.6,0.0666666666666666657,0.866666666666666696],"xyz":[0.263867720421352148,0.12394329463627915,0.694113051330036201],"hpluv":[284.668123617886636,346.265164959266087,41.8361001822542917],"hsluv":[284.668123617886636,97.4384492036098,41.8361001822542917]},"#9911ee":{"lch":[43.2812320372341617,123.724619665436521,281.679545129349094],"luv":[43.2812320372341617,25.0465268392882301,-121.162919264293635],"rgb":[0.6,0.0666666666666666657,0.933333333333333348],"xyz":[0.287679900687526913,0.133468166742749167,0.819523867398559425],"hpluv":[281.679545129349094,362.740326129136179,43.2812320372341617],"hsluv":[281.679545129349094,97.7313369542794561,43.2812320372341617]},"#9911ff":{"lch":[44.7922739406791948,133.33068560825987,279.310828677429186],"luv":[44.7922739406791948,21.5716156333953251,-131.574074664174219],"rgb":[0.6,0.0666666666666666657,1],"xyz":[0.313850949097358278,0.143936586106681863,0.95735805569034127],"hpluv":[279.310828677429186,377.716823123197173,44.7922739406791948],"hsluv":[279.310828677429186,99.9999999999993179,44.7922739406791948]},"#bb1100":{"lch":[39.5258701457598747,127.514079962112703,13.0219609303782402],"luv":[39.5258701457598747,124.2348987579322,28.7320469022032583],"rgb":[0.733333333333333282,0.0666666666666666657,0],"xyz":[0.206934995275703137,0.109676138576352333,0.0102742550616268143],"hpluv":[13.0219609303782402,409.370014873310311,39.5258701457598747],"hsluv":[13.0219609303782402,100.000000000002203,39.5258701457598747]},"#bb1111":{"lch":[39.5940766091873897,125.63034182067031,12.177050630061796],"luv":[39.5940766091873897,122.803716963532779,26.4996204863200759],"rgb":[0.733333333333333282,0.0666666666666666657,0.0666666666666666657],"xyz":[0.20794666077534027,0.110080804776207186,0.0156023600263824457],"hpluv":[12.177050630061796,402.627698793753552,39.5940766091873897],"hsluv":[12.177050630061796,94.3481495348726753,39.5940766091873897]},"#bb1122":{"lch":[39.7200723855077413,122.321798686612851,10.5915831721034426],"luv":[39.7200723855077413,120.23772406897838,22.4835972353282152],"rgb":[0.733333333333333282,0.0666666666666666657,0.133333333333333331],"xyz":[0.209822018913817271,0.110830948031598,0.0254792462223616401],"hpluv":[10.5915831721034426,390.780742551338619,39.7200723855077413],"hsluv":[10.5915831721034426,94.4721603032542561,39.7200723855077413]},"#bb1133":{"lch":[39.9262897734852,117.365304386249704,7.93115519261489421],"luv":[39.9262897734852,116.242655940639409,16.194431559742192],"rgb":[0.733333333333333282,0.0666666666666666657,0.2],"xyz":[0.212909769646275,0.112066048324581113,0.0417414000799727902],"hpluv":[7.93115519261489421,373.009679290071517,39.9262897734852],"hsluv":[7.93115519261489421,94.6648992051481173,39.9262897734852]},"#bb1144":{"lch":[40.2213637516280755,111.198866264944101,3.99799547396429888],"luv":[40.2213637516280755,110.928262725239179,7.75295991020434627],"rgb":[0.733333333333333282,0.0666666666666666657,0.266666666666666663],"xyz":[0.217367764890493892,0.113849246422268693,0.0652201750328594287],"hpluv":[3.99799547396429888,350.818828640487084,40.2213637516280755],"hsluv":[3.99799547396429888,94.920595316052,40.2213637516280755]},"#bb1155":{"lch":[40.6112374139617245,104.574630781207446,358.621384873601698],"luv":[40.6112374139617245,104.544360517453882,-2.51596641918957786],"rgb":[0.733333333333333282,0.0666666666666666657,0.333333333333333315],"xyz":[0.223330178929855905,0.116234212038013526,0.0966222223068333302],"hpluv":[358.621384873601698,326.752894857139097,40.6112374139617245],"hsluv":[358.621384873601698,95.2265760165129791,40.6112374139617245]},"#bb1166":{"lch":[41.0995768863194755,98.4443929415329251,351.723860164231496],"luv":[41.0995768863194755,97.4191751888273672,-14.1704907168206535],"rgb":[0.733333333333333282,0.0666666666666666657,0.4],"xyz":[0.230915174703364062,0.119268210347416845,0.136569866713977306],"hpluv":[351.723860164231496,303.943570446579713,41.0995768863194755],"hsluv":[351.723860164231496,95.5663396203906643,41.0995768863194755]},"#bb1177":{"lch":[41.688035181331955,93.7889310063258,343.43446060875408],"luv":[41.688035181331955,89.8961490854954093,-26.7403432832812094],"rgb":[0.733333333333333282,0.0666666666666666657,0.466666666666666674],"xyz":[0.240229187723566,0.122993815555497654,0.185623668620375215],"hpluv":[343.43446060875408,285.48249634694713,41.688035181331955],"hsluv":[343.43446060875408,95.9227087501184883,41.688035181331955]},"#bb1188":{"lch":[42.3764815581906475,91.4027083669889606,334.189166164708297],"luv":[42.3764815581906475,82.2840505377722309,-39.7968607294366805],"rgb":[0.733333333333333282,0.0666666666666666657,0.533333333333333326],"xyz":[0.251369604825509796,0.127449982396275252,0.244296532023947383],"hpluv":[334.189166164708297,273.699179760613617,42.3764815581906475],"hsluv":[334.189166164708297,96.2803174994205,42.3764815581906475]},"#bb1199":{"lch":[43.1632358766101092,91.692942572352564,324.693570122963422],"luv":[43.1632358766101092,74.8281105443768269,-52.9938637007650755],"rgb":[0.733333333333333282,0.0666666666666666657,0.6],"xyz":[0.264426568934582495,0.13267276803990441,0.31306320966506529],"hpluv":[324.693570122963422,269.563595898888195,43.1632358766101092],"hsluv":[324.693570122963422,96.6270445785018239,43.1632358766101092]},"#bb11aa":{"lch":[44.0453166933651,94.6050581990027553,315.694091730478135],"luv":[44.0453166933651,67.7013389352867847,-66.0806003544619784],"rgb":[0.733333333333333282,0.0666666666666666657,0.66666666666666663],"xyz":[0.279484261899835051,0.138695845226005504,0.39236705928206389],"hpluv":[315.694091730478135,272.554870225691275,44.0453166933651],"hsluv":[315.694091730478135,96.9544350138240105,44.0453166933651]},"#bb11bb":{"lch":[45.0186979872658242,99.7328976909900717,307.715012949243601],"luv":[45.0186979872658242,61.0100383302365472,-78.8950321933172205],"rgb":[0.733333333333333282,0.0666666666666666657,0.733333333333333282],"xyz":[0.296621854007171726,0.145550882068940263,0.482625044380705637],"hpluv":[307.715012949243601,281.115526817766181,45.0186979872658242],"hsluv":[307.715012949243601,97.2574105430315115,45.0186979872658242]},"#bb11cc":{"lch":[46.0785638011469771,106.527215460047387,300.962972083371881],"luv":[46.0785638011469771,54.8065495444917161,-91.3470840295328372],"rgb":[0.733333333333333282,0.0666666666666666657,0.8],"xyz":[0.315914229450893425,0.153267832246429064,0.584231555050975793],"hpluv":[300.962972083371881,293.360047474541318,46.0785638011469771],"hsluv":[300.962972083371881,97.5336183018287528,46.0785638011469771]},"#bb11dd":{"lch":[47.2195492447565,114.4666153484132,295.402801066287566],"luv":[47.2195492447565,49.1038079522977853,-103.3993330438134],"rgb":[0.733333333333333282,0.0666666666666666657,0.866666666666666696],"xyz":[0.337432555001527,0.161875162466682598,0.69756140295098179],"hpluv":[295.402801066287566,307.607082675331128,47.2195492447565],"hsluv":[295.402801066287566,97.7826899351839813,47.2195492447565]},"#bb11ee":{"lch":[48.4359581768354701,123.136484869400022,290.880608651701721],"luv":[48.4359581768354701,43.8885280811888,-115.049515465553711],"rgb":[0.733333333333333282,0.0666666666666666657,0.933333333333333348],"xyz":[0.361244735267701733,0.171400034573152643,0.822972219019505],"hpluv":[290.880608651701721,322.595409245987128,48.4359581768354701],"hsluv":[290.880608651701721,98.0055710342431325,48.4359581768354701]},"#bb11ff":{"lch":[49.7219510368964,132.239138283310353,287.21247838519713],"luv":[49.7219510368964,39.1316890181496575,-126.316667975763593],"rgb":[0.733333333333333282,0.0666666666666666657,1],"xyz":[0.387415783677533154,0.181868453937085339,0.960806407311286859],"hpluv":[287.21247838519713,337.482436204013879,49.7219510368964],"hsluv":[287.21247838519713,99.9999999999991758,49.7219510368964]},"#992200":{"lch":[33.8105832897308716,95.4307991554818358,16.0266852535062476],"luv":[33.8105832897308716,91.7217107848809263,26.3470149760569932],"rgb":[0.6,0.133333333333333331,0],"xyz":[0.137085784430296231,0.0791755182154848525,0.0080644446856038],"hpluv":[16.0266852535062476,358.158468302090569,33.8105832897308716],"hsluv":[16.0266852535062476,100.000000000002331,33.8105832897308716]},"#992211":{"lch":[33.8952997814050718,93.2922690289088195,14.6972380002076104],"luv":[33.8952997814050718,90.239744522062125,23.669304365681274],"rgb":[0.6,0.133333333333333331,0.0666666666666666657],"xyz":[0.138097449929933364,0.0795801844153397,0.0133925496503594314],"hpluv":[14.6972380002076104,349.257308780581,33.8952997814050718],"hsluv":[14.6972380002076104,92.1483909924374274,33.8952997814050718]},"#992222":{"lch":[34.0515850466810335,89.6330213591727,12.1770506300618084],"luv":[34.0515850466810335,87.6163196410811338,18.9065874902323579],"rgb":[0.6,0.133333333333333331,0.133333333333333331],"xyz":[0.139972808068410365,0.0803303276707305197,0.0232694358463386292],"hpluv":[12.1770506300618084,334.018122077437397,34.0515850466810335],"hsluv":[12.1770506300618084,78.2707991117683,34.0515850466810335]},"#992233":{"lch":[34.3068003204445446,84.4135643942939282,7.88651435003668233],"luv":[34.3068003204445446,83.6151628365757773,11.58250394183076],"rgb":[0.6,0.133333333333333331,0.2],"xyz":[0.143060558800868098,0.0815654279637136326,0.0395315897039497724],"hpluv":[7.88651435003668233,312.227643050581207,34.3068003204445446],"hsluv":[7.88651435003668233,79.3008398259009226,34.3068003204445446]},"#992244":{"lch":[34.6707661525426,78.4682482149262199,1.45557545410962708],"luv":[34.6707661525426,78.4429281517087134,1.99323879782018309],"rgb":[0.6,0.133333333333333331,0.266666666666666663],"xyz":[0.147518554045086986,0.0833486260614012126,0.0630103646568364],"hpluv":[1.45557545410962708,287.190351340663,34.6707661525426],"hsluv":[1.45557545410962708,80.6267396657693212,34.6707661525426]},"#992255":{"lch":[35.149531709850983,73.0418005898087443,352.659616011821072],"luv":[35.149531709850983,72.4431965063170082,-9.33209051330535821],"rgb":[0.6,0.133333333333333331,0.333333333333333315],"xyz":[0.153480968084449,0.0857335916771460455,0.0944124119308103193],"hpluv":[352.659616011821072,263.688538908073838,35.149531709850983],"hsluv":[352.659616011821072,82.1555178352066804,35.149531709850983]},"#992266":{"lch":[35.7459223236079495,69.5043059181480203,341.734006615383123],"luv":[35.7459223236079495,66.0021002604389793,-21.7846574995905513],"rgb":[0.6,0.133333333333333331,0.4],"xyz":[0.161065963857957156,0.0887675899865493639,0.134360056337954281],"hpluv":[341.734006615383123,246.731460763727796,35.7459223236079495],"hsluv":[341.734006615383123,83.7834402291280753,35.7459223236079495]},"#992277":{"lch":[36.4599553630224946,68.9051746310403104,329.662355423262511],"luv":[36.4599553630224946,59.4695672743266783,-34.8036443370302],"rgb":[0.6,0.133333333333333331,0.466666666666666674],"xyz":[0.17037997687815909,0.0924931951946301734,0.18341385824435219],"hpluv":[329.662355423262511,239.814275331209444,36.4599553630224946],"hsluv":[329.662355423262511,85.4170781092293225,36.4599553630224946]},"#992288":{"lch":[37.2892540647929,71.5563678213307242,317.925484235555643],"luv":[37.2892540647929,53.1144286836587369,-47.9496740488411],"rgb":[0.6,0.133333333333333331,0.533333333333333326],"xyz":[0.18152039398010289,0.0969493620354077712,0.242086721647924358],"hpluv":[317.925484235555643,243.502777039008038,37.2892540647929],"hsluv":[317.925484235555643,86.9852623869732,37.2892540647929]},"#992299":{"lch":[38.2294870734457888,77.015786119064046,307.715012949243771],"luv":[38.2294870734457888,47.1132010795059841,-60.9243596238766827],"rgb":[0.6,0.133333333333333331,0.6],"xyz":[0.194577358089175617,0.102172147679036929,0.310853399289042265],"hpluv":[307.715012949243771,255.635172818446421,38.2294870734457888],"hsluv":[307.715012949243771,88.441984096309227,38.2294870734457888]},"#9922aa":{"lch":[39.2748221448681178,84.484081905089468,299.468150353755561],"luv":[39.2748221448681178,41.5610713460956234,-73.5543162833468],"rgb":[0.6,0.133333333333333331,0.66666666666666663],"xyz":[0.209635051054428145,0.108195224865138023,0.390157248906040865],"hpluv":[299.468150353755561,272.960615272696657,39.2748221448681178],"hsluv":[299.468150353755561,89.7633288768494708,39.2748221448681178]},"#9922bb":{"lch":[40.4183688993281436,93.2013493596814726,293.05045530637],"luv":[40.4183688993281436,36.4922039393154094,-85.7601922462677919],"rgb":[0.6,0.133333333333333331,0.733333333333333282],"xyz":[0.22677264316176482,0.115050261708072782,0.480415234004682612],"hpluv":[293.05045530637,292.605673863240838,40.4183688993281436],"hsluv":[293.05045530637,90.9419133161227222,40.4183688993281436]},"#9922cc":{"lch":[41.6525852773545182,102.609691310931794,288.11294916137831],"luv":[41.6525852773545182,31.900454524651952,-97.5249186210648702],"rgb":[0.6,0.133333333333333331,0.8],"xyz":[0.246065018605486546,0.122767211885561583,0.582021744674952712],"hpluv":[288.11294916137831,312.597676326075884,41.6525852773545182],"hsluv":[288.11294916137831,91.9812251551093851,41.6525852773545182]},"#9922dd":{"lch":[42.969628845807982,112.350489371469905,284.303043907998301],"luv":[42.969628845807982,27.7562437333976213,-108.867917201630149],"rgb":[0.6,0.133333333333333331,0.866666666666666696],"xyz":[0.267583344156120062,0.131374542105815117,0.69535159257495871],"hpluv":[284.303043907998301,331.781902020401162,42.969628845807982],"hsluv":[284.303043907998301,92.8910125551507235,42.969628845807982]},"#9922ee":{"lch":[44.361642902098545,122.210344632057584,281.334390799049743],"luv":[44.361642902098545,24.018574136526297,-119.826860225637532],"rgb":[0.6,0.133333333333333331,0.933333333333333348],"xyz":[0.291395524422294827,0.140899414212285162,0.820762408643481933],"hpluv":[281.334390799049743,349.574442537581717,44.361642902098545],"hsluv":[281.334390799049743,93.6839973987951566,44.361642902098545]},"#9922ff":{"lch":[45.8209755847726612,132.069283427413211,278.992348895848238],"luv":[45.8209755847726612,20.6427685166220094,-130.446049127597433],"rgb":[0.6,0.133333333333333331,1],"xyz":[0.317566572832126193,0.151367833576217858,0.958596596935263889],"hpluv":[278.992348895848238,365.74366826955071,45.8209755847726612],"hsluv":[278.992348895848238,99.9999999999993179,45.8209755847726612]},"#bb2200":{"lch":[40.7526421249889452,122.145166616692975,14.6188079362681389],"luv":[40.7526421249889452,118.190884669319914,30.8278528104570881],"rgb":[0.733333333333333282,0.133333333333333331,0],"xyz":[0.21065061901047108,0.117107386045888315,0.0115127963065494235],"hpluv":[14.6188079362681389,380.329350781024857,40.7526421249889452],"hsluv":[14.6188079362681389,100.000000000002217,40.7526421249889452]},"#bb2211":{"lch":[40.8179368215716849,120.355879944515436,13.7706881972771793],"luv":[40.8179368215716849,116.896392622501153,28.6491052053056343],"rgb":[0.733333333333333282,0.133333333333333331,0.0666666666666666657],"xyz":[0.211662284510108212,0.117512052245743168,0.0168409012713050532],"hpluv":[13.7706881972771793,374.158477594779924,40.8179368215716849],"hsluv":[13.7706881972771793,94.6800257514418,40.8179368215716849]},"#bb2222":{"lch":[40.9385803904414161,117.208042434762348,12.1770506300618102],"luv":[40.9385803904414161,114.570915436608942,24.7230772236478238],"rgb":[0.733333333333333282,0.133333333333333331,0.133333333333333331],"xyz":[0.213537642648585213,0.118262195501133982,0.0267177874672842527],"hpluv":[12.1770506300618102,363.298797482753,40.9385803904414161],"hsluv":[12.1770506300618102,85.1321689328196101,40.9385803904414161]},"#bb2233":{"lch":[41.136111673530813,112.480172956632245,9.49666640172232235],"luv":[41.136111673530813,110.938654987290519,18.5581286223806821],"rgb":[0.733333333333333282,0.133333333333333331,0.2],"xyz":[0.216625393381042974,0.119497295794117095,0.042979941324895396],"hpluv":[9.49666640172232235,346.970109935861444,41.136111673530813],"hsluv":[9.49666640172232235,85.6217357677037398,41.136111673530813]},"#bb2244":{"lch":[41.4189140922405201,106.57909239531196,5.51995404221549],"luv":[41.4189140922405201,106.084859394728952,10.2520994439692306],"rgb":[0.733333333333333282,0.133333333333333331,0.266666666666666663],"xyz":[0.221083388625261834,0.121280493891804675,0.0664587162777820345],"hpluv":[5.51995404221549,326.522141050690152,41.4189140922405201],"hsluv":[5.51995404221549,86.2742612371986297,41.4189140922405201]},"#bb2255":{"lch":[41.7928521194743823,100.22104851316422,0.0579838467833058424],"luv":[41.7928521194743823,100.220997191859041,0.101424589714973798],"rgb":[0.733333333333333282,0.133333333333333331,0.333333333333333315],"xyz":[0.227045802664623819,0.123665459507549508,0.097860763551755936],"hpluv":[0.0579838467833058424,304.296010337655673,41.7928521194743823],"hsluv":[0.0579838467833058424,87.0597094656736772,41.7928521194743823]},"#bb2266":{"lch":[42.2616671880265216,94.3342448936905,353.011685321171171],"luv":[42.2616671880265216,93.6334344607092106,-11.4773564358193614],"rgb":[0.733333333333333282,0.133333333333333331,0.4],"xyz":[0.234630798438132,0.126699457816952826,0.137808407958899898],"hpluv":[353.011685321171171,283.244886623536,42.2616671880265216],"hsluv":[353.011685321171171,87.937804292381287,42.2616671880265216]},"#bb2277":{"lch":[42.8272221099346666,89.9002723684957,344.496654306277264],"luv":[42.8272221099346666,86.6292371691086771,-24.0298614109202155],"rgb":[0.733333333333333282,0.133333333333333331,0.466666666666666674],"xyz":[0.24394481145833391,0.13042506302503365,0.186862209865297807],"hpluv":[344.496654306277264,266.367005402095344,42.8272221099346666],"hsluv":[344.496654306277264,88.8655868844719805,42.8272221099346666]},"#bb2288":{"lch":[43.4897067779173554,87.7363054907772693,334.961981200390596],"luv":[43.4897067779173554,79.4914755013727898,-37.1317199141871441],"rgb":[0.733333333333333282,0.133333333333333331,0.533333333333333326],"xyz":[0.255085228560277766,0.13488122986581122,0.245535073268869974],"hpluv":[334.961981200390596,255.995416581420926,43.4897067779173554],"hsluv":[334.961981200390596,89.8036443318747786,43.4897067779173554]},"#bb2299":{"lch":[44.2478449340908639,88.2751432264235092,325.159464012784042],"luv":[44.2478449340908639,72.4514028672968635,-50.4310929309115],"rgb":[0.733333333333333282,0.133333333333333331,0.6],"xyz":[0.268142192669350465,0.140104015509440405,0.314301750909987909],"hpluv":[325.159464012784042,253.154489640486645,44.2478449340908639],"hsluv":[325.159464012784042,90.7199745934293844,44.2478449340908639]},"#bb22aa":{"lch":[45.0991127685299062,91.4705260319517919,315.891475419905078],"luv":[45.0991127685299062,65.6779186933914758,-63.6652819727222195],"rgb":[0.733333333333333282,0.133333333333333331,0.66666666666666663],"xyz":[0.283199885634603,0.146127092695541499,0.39360560052698651],"hpluv":[315.891475419905078,257.366789521381691,45.0991127685299062],"hsluv":[315.891475419905078,91.5914304646717,45.0991127685299062]},"#bb22bb":{"lch":[46.0399667792549678,96.9048462314552,307.715012949243658],"luv":[46.0399667792549678,59.2800221375787615,-76.6578645574617497],"rgb":[0.733333333333333282,0.133333333333333331,0.733333333333333282],"xyz":[0.30033747774193964,0.152982129538476258,0.483863585625628256],"hpluv":[307.715012949243658,267.0851991180906,46.0399667792549678],"hsluv":[307.715012949243658,92.4033444706684,46.0399667792549678]},"#bb22cc":{"lch":[47.066072507765945,104.009692587178989,300.837938637053412],"luv":[47.066072507765945,53.3165662395356,-89.3048706202785496],"rgb":[0.733333333333333282,0.133333333333333331,0.8],"xyz":[0.319629853185661394,0.16069907971596506,0.585470096295898412],"hpluv":[300.837938637053412,280.417543020287,47.066072507765945],"hsluv":[300.837938637053412,93.1481326309998,47.066072507765945]},"#bb22dd":{"lch":[48.1725242595717589,112.247547842848149,295.20893392435471],"luv":[48.1725242595717589,47.808517424121824,-101.557164486017044],"rgb":[0.733333333333333282,0.133333333333333331,0.866666666666666696],"xyz":[0.341148178736294938,0.169306409936218594,0.69879994419590441],"hpluv":[295.20893392435471,295.676483579310798,48.1725242595717589],"hsluv":[295.20893392435471,93.8235497257627316,48.1725242595717589]},"#bb22ee":{"lch":[49.3540469689012724,121.194036197623419,290.655339197387],"luv":[49.3540469689012724,42.7506603945962169,-113.403595382583688],"rgb":[0.733333333333333282,0.133333333333333331,0.933333333333333348],"xyz":[0.364960359002469703,0.178831282042688611,0.824210760264427633],"hpluv":[290.655339197387,311.600255956968681,49.3540469689012724],"hsluv":[290.655339197387,94.4310255689598,49.3540469689012724]},"#bb22ff":{"lch":[50.6051737457033397,130.547024148317973,286.97844412333734],"luv":[50.6051737457033397,38.1212848334983647,-124.85709093449519],"rgb":[0.733333333333333282,0.133333333333333331,1],"xyz":[0.391131407412301069,0.189299701406621335,0.962044948556209478],"hpluv":[286.97844412333734,327.349274436557835,50.6051737457033397],"hsluv":[286.97844412333734,99.9999999999991616,50.6051737457033397]},"#993300":{"lch":[36.2545465004255476,86.9834057059747749,20.3835344027483316],"luv":[36.2545465004255476,81.5366895093473,30.2965531383769893],"rgb":[0.6,0.2,0],"xyz":[0.14320350651930705,0.0914109623935066423,0.0101036853819406816],"hpluv":[20.3835344027483316,304.448092478673459,36.2545465004255476],"hsluv":[20.3835344027483316,100.00000000000226,36.2545465004255476]},"#993311":{"lch":[36.3315413581227133,85.0112276295678839,19.0571063974297203],"luv":[36.3315413581227133,80.3520694714869279,27.7570487396543],"rgb":[0.6,0.2,0.0666666666666666657],"xyz":[0.144215172018944182,0.0918156285933615,0.0154317903466963131],"hpluv":[19.0571063974297203,296.914762557758195,36.3315413581227133],"hsluv":[19.0571063974297203,93.1288353931581,36.3315413581227133]},"#993322":{"lch":[36.4736730302835852,81.6150828115545863,16.5278497598068661],"luv":[36.4736730302835852,78.2428757472059573,23.217970134019108],"rgb":[0.6,0.2,0.133333333333333331],"xyz":[0.146090530157421183,0.0925657718487523096,0.0253086765426755109],"hpluv":[16.5278497598068661,283.942401799749632,36.4736730302835852],"hsluv":[16.5278497598068661,80.9121244795507124,36.4736730302835852]},"#993333":{"lch":[36.7060271438600836,76.7221326388105638,12.1770506300618369],"luv":[36.7060271438600836,74.9959199734098121,16.1832513417159589],"rgb":[0.6,0.2,0.2],"xyz":[0.149178280889878945,0.0938008721417354224,0.0415708304002866541],"hpluv":[12.1770506300618369,265.229979343802,36.7060271438600836],"hsluv":[12.1770506300618369,62.1516051360361459,36.7060271438600836]},"#993344":{"lch":[37.0379214664673668,71.077614272095758,5.55118145677439934],"luv":[37.0379214664673668,70.7442733159460744,6.87568495580995354],"rgb":[0.6,0.2,0.266666666666666663],"xyz":[0.153636276134097804,0.095584070239423,0.0650496053531732926],"hpluv":[5.55118145677439934,243.514912685509444,37.0379214664673668],"hsluv":[5.55118145677439934,64.3097526797848644,37.0379214664673668]},"#993355":{"lch":[37.4754277574064858,65.8722356173568073,356.298722520573506],"luv":[37.4754277574064858,65.7348379379961614,-4.25235305377523254],"rgb":[0.6,0.2,0.333333333333333315],"xyz":[0.15959869017345979,0.0979690358551678353,0.0964516526271472],"hpluv":[356.298722520573506,223.046355214908289,37.4754277574064858],"hsluv":[356.298722520573506,66.8387430740197885,37.4754277574064858]},"#993366":{"lch":[38.0218512407041942,62.5198646461221941,344.559385799457459],"luv":[38.0218512407041942,60.2633303059628602,-16.6452544529622166],"rgb":[0.6,0.2,0.4],"xyz":[0.167183685946967975,0.101003034164571154,0.136399297034291156],"hpluv":[344.559385799457459,208.652742449272864,38.0218512407041942],"hsluv":[344.559385799457459,69.5808124884664778,38.0218512407041942]},"#993377":{"lch":[38.6780657603296234,62.1964572713534949,331.414072321130675],"luv":[38.6780657603296234,54.6147414507713478,-29.7595247504508862],"rgb":[0.6,0.2,0.466666666666666674],"xyz":[0.17649769896716988,0.104728639372651963,0.185453098940689065],"hpluv":[331.414072321130675,204.051704505442274,38.6780657603296234],"hsluv":[331.414072321130675,72.3848063102254571,38.6780657603296234]},"#993388":{"lch":[39.4428302118465908,65.3028355433768155,318.6521895607018],"luv":[39.4428302118465908,49.0236963230770257,-43.1409031990296086],"rgb":[0.6,0.2,0.533333333333333326],"xyz":[0.187638116069113736,0.109184806213429561,0.244125962344261233],"hpluv":[318.6521895607018,210.08899125401652,39.4428302118465908],"hsluv":[318.6521895607018,75.1271370389489306,39.4428302118465908]},"#993399":{"lch":[40.3131218316236897,71.3679900272828149,307.715012949243942],"luv":[40.3131218316236897,43.6582502656979656,-56.4565955781255226],"rgb":[0.6,0.2,0.6],"xyz":[0.200695080178186436,0.114407591857058719,0.31289263998537914],"hpluv":[307.715012949243942,224.64479534599792,40.3131218316236897],"hsluv":[307.715012949243942,77.7202573427554313,40.3131218316236897]},"#9933aa":{"lch":[41.2844862133256925,79.5040030135899372,299.063916375798101],"luv":[41.2844862133256925,38.6218522191785354,-69.4927264276258825],"rgb":[0.6,0.2,0.66666666666666663],"xyz":[0.215752773143439,0.120430669043159827,0.39219648960237774],"hpluv":[299.063916375798101,244.366370382710016,41.2844862133256925],"hsluv":[299.063916375798101,80.1114582016200814,41.2844862133256925]},"#9933bb":{"lch":[42.3513893410192637,88.8787943355742,292.467029257400327],"luv":[42.3513893410192637,33.9651845170614,-82.1328577566084],"rgb":[0.6,0.2,0.733333333333333282],"xyz":[0.232890365250775611,0.127285705886094586,0.482454474701019487],"hpluv":[292.467029257400327,266.299173904300574,42.3513893410192637],"hsluv":[292.467029257400327,82.2764131802073848,42.3513893410192637]},"#9933cc":{"lch":[43.5075532005759911,98.8962106119506785,287.477062230467],"luv":[43.5075532005759911,29.700902070050418,-94.3308904316533],"rgb":[0.6,0.2,0.8],"xyz":[0.252182740694497365,0.135002656063583387,0.584060985371289698],"hpluv":[287.477062230467,288.439223502221068,43.5075532005759911],"hsluv":[287.477062230467,84.2111914011780129,43.5075532005759911]},"#9933dd":{"lch":[44.7462588110156716,109.182503226938962,283.677602435208257],"luv":[44.7462588110156716,25.8171133061496079,-106.086265234656878],"rgb":[0.6,0.2,0.866666666666666696],"xyz":[0.273701066245130908,0.143609986283836921,0.697390833271295696],"hpluv":[283.677602435208257,309.624731809924413,44.7462588110156716],"hsluv":[283.677602435208257,85.9249592908513478,44.7462588110156716]},"#9933ee":{"lch":[46.0606056636097208,119.52114969179982,280.747238708189116],"luv":[46.0606056636097208,22.2879081330132465,-117.42467532296601],"rgb":[0.6,0.2,0.933333333333333348],"xyz":[0.297513246511305618,0.153134858390306938,0.822801649339818919],"hpluv":[280.747238708189116,329.271729063034456,46.0606056636097208],"hsluv":[280.747238708189116,90.0471632149093324,46.0606056636097208]},"#9933ff":{"lch":[47.4437223771408512,129.794782591236896,278.453521985212944],"luv":[47.4437223771408512,19.0807517890999456,-128.38461940228359],"rgb":[0.6,0.2,1],"xyz":[0.323684294921137039,0.163603277754239662,0.960635837631600764],"hpluv":[278.453521985212944,347.150508646733101,47.4437223771408512],"hsluv":[278.453521985212944,99.999999999999261,47.4437223771408512]},"#bb3300":{"lch":[42.6640590509798585,114.303280915030754,17.3320761189885637],"luv":[42.6640590509798585,109.113245500432,34.0520143942012652],"rgb":[0.733333333333333282,0.2,0],"xyz":[0.216768341099481898,0.129342830223910105,0.0135520370028863052],"hpluv":[17.3320761189885637,339.966286272656077,42.6640590509798585],"hsluv":[17.3320761189885637,100.000000000002302,42.6640590509798585]},"#bb3311":{"lch":[42.7251747888925806,112.6335820513806,16.4819551739351198],"luv":[42.7251747888925806,108.005370801027979,31.9556518296457135],"rgb":[0.733333333333333282,0.2,0.0666666666666666657],"xyz":[0.21778000659911903,0.129747496423764958,0.0188801419676419349],"hpluv":[16.4819551739351198,334.52099084556113,42.7251747888925806],"hsluv":[16.4819551739351198,95.1490253673008368,42.7251747888925806]},"#bb3322":{"lch":[42.8381318005571785,109.688338781622747,14.8808580240480524],"luv":[42.8381318005571785,106.009603708482885,28.1690536980292627],"rgb":[0.733333333333333282,0.2,0.133333333333333331],"xyz":[0.219655364737596032,0.130497639679155786,0.0287570281636211345],"hpluv":[14.8808580240480524,324.914627119009424,42.8381318005571785],"hsluv":[14.8808580240480524,86.4181297836030211,42.8381318005571785]},"#bb3333":{"lch":[43.023174549414108,105.246046554892928,12.1770506300618351],"luv":[43.023174549414108,102.878058957341324,22.1998941575065203],"rgb":[0.733333333333333282,0.2,0.2],"xyz":[0.222743115470053765,0.131732739972138885,0.0450191820212322777],"hpluv":[12.1770506300618351,310.414975564112126,43.023174549414108],"hsluv":[12.1770506300618351,72.7398502888125762,43.023174549414108]},"#bb3344":{"lch":[43.2883038991094082,99.6704509181560496,8.14070356751482116],"luv":[43.2883038991094082,98.6661026897846085,14.1137863891102171],"rgb":[0.733333333333333282,0.2,0.266666666666666663],"xyz":[0.227201110714272653,0.133515938069826479,0.0684979569741189231],"hpluv":[8.14070356751482116,292.169703441320848,43.2883038991094082],"hsluv":[8.14070356751482116,73.8775464962187556,43.2883038991094082]},"#bb3355":{"lch":[43.6392404977582515,93.6285749325397632,2.54995992142812078],"luv":[43.6392404977582515,93.5358645919991289,4.16558266337591299],"rgb":[0.733333333333333282,0.2,0.333333333333333315],"xyz":[0.233163524753634666,0.135900903685571312,0.0999000042480928246],"hpluv":[2.54995992142812078,272.251672456619758,43.6392404977582515],"hsluv":[2.54995992142812078,75.2585830443305781,43.6392404977582515]},"#bb3366":{"lch":[44.0797950159491521,88.0182600678664784,355.263953050872033],"luv":[44.0797950159491521,87.7177339493983794,-7.26727295188107547],"rgb":[0.733333333333333282,0.2,0.4],"xyz":[0.240748520527142823,0.138934901994974602,0.1398476486552368],"hpluv":[355.263953050872033,253.380121177946961,44.0797950159491521],"hsluv":[355.263953050872033,76.8177075569623753,44.0797950159491521]},"#bb3377":{"lch":[44.6120878205181057,83.829516929164356,346.367941021132197],"luv":[44.6120878205181057,81.4679789337245239,-19.757437005625782],"rgb":[0.733333333333333282,0.2,0.466666666666666674],"xyz":[0.250062533547344756,0.142660507203055426,0.188901450561634709],"hpluv":[346.367941021132197,238.442541154787421,44.6120878205181057],"hsluv":[346.367941021132197,78.4827471040858597,44.6120878205181057]},"#bb3388":{"lch":[45.2367248685103078,81.924239827592,336.329010851829594],"luv":[45.2367248685103078,75.03162551729379,-32.8912791414593499],"rgb":[0.733333333333333282,0.2,0.533333333333333326],"xyz":[0.261202950649288557,0.147116674043833023,0.247574313965206849],"hpluv":[336.329010851829594,229.805591899252,45.2367248685103078],"hsluv":[336.329010851829594,80.18501002925629,45.2367248685103078]},"#bb3399":{"lch":[45.9529692994627226,82.7837935230449347,325.982908927834501],"luv":[45.9529692994627226,68.6170634488305495,-46.3125800806357404],"rgb":[0.733333333333333282,0.2,0.6],"xyz":[0.274259914758361312,0.152339459687462181,0.316340991606324784],"hpluv":[325.982908927834501,228.597286714525296,45.9529692994627226],"hsluv":[325.982908927834501,81.8663863744617402,45.9529692994627226]},"#bb33aa":{"lch":[46.7589216358443664,86.3774619636168524,316.238480868355282],"luv":[46.7589216358443664,62.3839556422166126,-59.7436859735489136],"rgb":[0.733333333333333282,0.2,0.66666666666666663],"xyz":[0.289317607723613812,0.158362536873563275,0.395644841223323385],"hpluv":[316.238480868355282,234.409537876970433,46.7589216358443664],"hsluv":[316.238480868355282,83.4827024616804181,46.7589216358443664]},"#bb33bb":{"lch":[47.6517090930198108,92.2657594707273461,307.715012949243828],"luv":[47.6517090930198108,56.4421334605023191,-72.9880534138084585],"rgb":[0.733333333333333282,0.2,0.733333333333333282],"xyz":[0.306455199830950487,0.165217573716498034,0.485902826321965131],"hpluv":[307.715012949243828,245.697877980233102,47.6517090930198108],"hsluv":[307.715012949243828,85.0039827354176,47.6517090930198108]},"#bb33cc":{"lch":[48.6276786348411179,99.8443429984049402,300.621719827817344],"luv":[48.6276786348411179,50.8574804969275078,-85.9209491700817551],"rgb":[0.733333333333333282,0.2,0.8],"xyz":[0.325747575274672241,0.172934523893986836,0.587509336992235287],"hpluv":[300.621719827817344,260.542905615006589,48.6276786348411179],"hsluv":[300.621719827817344,86.4127454729900535,48.6276786348411179]},"#bb33dd":{"lch":[49.6825862492002273,108.545865187730342,294.87630802524211],"luv":[49.6825862492002273,45.6609809337446322,-98.4747666639588459],"rgb":[0.733333333333333282,0.2,0.866666666666666696],"xyz":[0.347265900825305729,0.18154185411424037,0.700839184892241285],"hpluv":[294.87630802524211,277.235228758227834,49.6825862492002273],"hsluv":[294.87630802524211,87.70141038259,49.6825862492002273]},"#bb33ee":{"lch":[50.8117750205940695,117.927813495206621,290.271422146528892],"luv":[50.8117750205940695,40.8581913283156268,-110.623584271795281],"rgb":[0.733333333333333282,0.2,0.933333333333333348],"xyz":[0.371078081091480494,0.191066726220710414,0.826250000960764508],"hpluv":[290.271422146528892,294.504005794210514,50.8117750205940695],"hsluv":[290.271422146528892,88.8695912604113687,50.8117750205940695]},"#bb33ff":{"lch":[52.0103359867018611,127.679308171663493,286.581788346289272],"luv":[52.0103359867018611,36.4375993761859931,-122.36955130625914],"rgb":[0.733333333333333282,0.2,1],"xyz":[0.39724912950131186,0.201535145584643111,0.964084189252546353],"hpluv":[286.581788346289272,311.508705442628695,52.0103359867018611],"hsluv":[286.581788346289272,99.9999999999991616,52.0103359867018611]},"#994400":{"lch":[39.4244247356725168,77.6708634712958315,27.0445710144404678],"luv":[39.4244247356725168,69.1777945884316097,35.3156589667733627],"rgb":[0.6,0.266666666666666663,0],"xyz":[0.152036077002273062,0.109076103359438958,0.0130478755429292749],"hpluv":[27.0445710144404678,249.995444431237956,39.4244247356725168],"hsluv":[27.0445710144404678,100.000000000002302,39.4244247356725168]},"#994411":{"lch":[39.4928806474909351,75.8240556098730849,25.7566327743493559],"luv":[39.4928806474909351,68.2907795083206395,32.9493071744317447],"rgb":[0.6,0.266666666666666663,0.0666666666666666657],"xyz":[0.153047742501910194,0.109480769559293811,0.0183759805076849081],"hpluv":[25.7566327743493559,243.628181561178451,39.4928806474909351],"hsluv":[25.7566327743493559,94.1783894720599,39.4928806474909351]},"#994422":{"lch":[39.6193348047394807,72.6128884539244268,23.2788782073808527],"luv":[39.6193348047394807,66.7016282141236161,28.6971141964989123],"rgb":[0.6,0.266666666666666663,0.133333333333333331],"xyz":[0.154923100640387196,0.110230912814684626,0.0282528667036641],"hpluv":[23.2788782073808527,232.565805292122405,39.6193348047394807],"hsluv":[23.2788782073808527,83.7619004180350402,39.6193348047394807]},"#994433":{"lch":[39.8262957210095,67.9099451463512764,18.9473520481579776],"luv":[39.8262957210095,64.2304033034813671,22.0503047882012062],"rgb":[0.6,0.266666666666666663,0.2],"xyz":[0.158010851372844929,0.111466013107667739,0.0445150205612752509],"hpluv":[18.9473520481579776,216.372863201479333,39.8262957210095],"hsluv":[18.9473520481579776,67.5996848307310358,39.8262957210095]},"#994444":{"lch":[40.1224193460439267,62.3513134554678956,12.1770506300619097],"luv":[40.1224193460439267,60.9484376060972082,13.1519672672071142],"rgb":[0.6,0.266666666666666663,0.266666666666666663],"xyz":[0.162468846617063817,0.113249211205355318,0.0679937955141618894],"hpluv":[12.1770506300619097,197.195872414250289,40.1224193460439267],"hsluv":[12.1770506300619097,46.2091051210312429,40.1224193460439267]},"#994455":{"lch":[40.5136546800823041,57.0624194645929776,2.37288379618767387],"luv":[40.5136546800823041,57.0134905267935324,2.36254377830001205],"rgb":[0.6,0.266666666666666663,0.333333333333333315],"xyz":[0.16843126065642583,0.115634176821100151,0.0993958427881357909],"hpluv":[2.37288379618767387,178.726144329621945,40.5136546800823041],"hsluv":[2.37288379618767387,49.5312591923758063,40.5136546800823041]},"#994466":{"lch":[41.0036603670202382,53.5416261730848646,349.413399835018254],"luv":[41.0036603670202382,52.6302589877717111,-9.83674601372026558],"rgb":[0.6,0.266666666666666663,0.4],"xyz":[0.176016256429934,0.11866817513050347,0.139343487195279753],"hpluv":[349.413399835018254,165.694562401887765,41.0036603670202382],"hsluv":[349.413399835018254,53.2076295784804643,41.0036603670202382]},"#994477":{"lch":[41.594070304433572,53.2098960104776424,334.460192523955527],"luv":[41.594070304433572,48.0105420863306946,-22.9408125841809181],"rgb":[0.6,0.266666666666666663,0.466666666666666674],"xyz":[0.18533026945013592,0.122393780338584279,0.188397289101677662],"hpluv":[334.460192523955527,162.330570569563577,41.594070304433572],"hsluv":[334.460192523955527,57.0495308436177666,41.594070304433572]},"#994488":{"lch":[42.2847251453823887,56.6612659292255287,319.901700116735],"luv":[42.2847251453823887,43.3424978513170416,-36.4955742071691631],"rgb":[0.6,0.266666666666666663,0.533333333333333326],"xyz":[0.196470686552079721,0.126849947179361877,0.247070152505249829],"hpluv":[319.901700116735,170.036472949794188,42.2847251453823887],"hsluv":[319.901700116735,60.8903164523640683,42.2847251453823887]},"#994499":{"lch":[43.0739091348830314,63.3829857303906,307.715012949244226],"luv":[43.0739091348830314,38.7735489334465555,-50.1399519665159232],"rgb":[0.6,0.266666666666666663,0.6],"xyz":[0.209527650661152448,0.132072732822991035,0.315836830146367764],"hpluv":[307.715012949244226,186.722963823125951,43.0739091348830314],"hsluv":[307.715012949244226,64.600458594127474,43.0739091348830314]},"#9944aa":{"lch":[43.9586008361636686,72.3252063731545,298.405725418599673],"luv":[43.9586008361636686,34.4059763632637896,-63.6173267861038099],"rgb":[0.6,0.266666666666666663,0.66666666666666663],"xyz":[0.224585343626404976,0.138095810009092129,0.395140679763366365],"hpluv":[298.405725418599673,208.77819920337123,43.9586008361636686],"hsluv":[298.405725418599673,68.0913106207235,43.9586008361636686]},"#9944bb":{"lch":[44.9347323991438827,82.5300732915554676,291.540124858279853],"luv":[44.9347323991438827,30.3011407548278626,-76.7662286846607316],"rgb":[0.6,0.266666666666666663,0.733333333333333282],"xyz":[0.241722935733741651,0.144950846852026888,0.485398664862008111],"hpluv":[291.540124858279853,233.060888419388505,44.9347323991438827],"hsluv":[291.540124858279853,71.3111773355981882,44.9347323991438827]},"#9944cc":{"lch":[45.9974464532923903,93.3382836250318206,286.486143775676851],"luv":[45.9974464532923903,26.4878609436744341,-89.5009967134190561],"rgb":[0.6,0.266666666666666663,0.8],"xyz":[0.261015311177463349,0.152667797029515689,0.587005175532278267],"hpluv":[286.486143775676851,257.492992496327645,45.9974464532923903],"hsluv":[286.486143775676851,74.2376853125076792,45.9974464532923903]},"#9944dd":{"lch":[47.1413389271288139,104.350309752399141,282.717215233582351],"luv":[47.1413389271288139,22.9716047676972792,-101.790434323753402],"rgb":[0.6,0.266666666666666663,0.866666666666666696],"xyz":[0.282533636728096949,0.161275127249769223,0.700335023432284265],"hpluv":[282.717215233582351,280.886686990529654,47.1413389271288139],"hsluv":[282.717215233582351,78.691216526215527,47.1413389271288139]},"#9944ee":{"lch":[48.3606780479664593,115.341161543855208,279.855683836472622],"luv":[48.3606780479664593,19.7426125181249787,-113.638958096441911],"rgb":[0.6,0.266666666666666663,0.933333333333333348],"xyz":[0.306345816994271658,0.170799999356239268,0.825745839500807488],"hpluv":[279.855683836472622,302.643440789384783,48.3606780479664593],"hsluv":[279.855683836472622,89.2619995530309325,48.3606780479664593]},"#9944ff":{"lch":[49.6495929972458185,126.19285787586071,277.642335930208503],"luv":[49.6495929972458185,16.7822322716138856,-125.071955525044785],"rgb":[0.6,0.266666666666666663,1],"xyz":[0.332516865404103079,0.181268418720171964,0.963580027792589333],"hpluv":[277.642335930208503,322.521305960549284,49.6495929972458185],"hsluv":[277.642335930208503,99.9999999999991616,49.6495929972458185]},"#bb4400":{"lch":[45.2216387767487547,104.837609625168909,21.4216552556228201],"luv":[45.2216387767487547,97.5952013308911,38.2896992558330354],"rgb":[0.733333333333333282,0.266666666666666663,0],"xyz":[0.225600911582447911,0.147007971189842435,0.0164962271638749],"hpluv":[21.4216552556228201,294.177965476355098,45.2216387767487547],"hsluv":[21.4216552556228201,100.000000000002373,45.2216387767487547]},"#bb4411":{"lch":[45.2777618800582076,103.283777149094803,20.576768268141489],"luv":[45.2777618800582076,96.6944911384892123,36.3003306548646947],"rgb":[0.733333333333333282,0.266666666666666663,0.0666666666666666657],"xyz":[0.226612577082085043,0.147412637389697287,0.0218243321286305317],"hpluv":[20.576768268141489,289.458620037032802,45.2777618800582076],"hsluv":[20.576768268141489,95.6967439910137614,45.2777618800582076]},"#bb4422":{"lch":[45.3815280810129238,100.53232916519147,18.9799525675269258],"luv":[45.3815280810129238,95.0666309197234,32.6968636561903381],"rgb":[0.733333333333333282,0.266666666666666663,0.133333333333333331],"xyz":[0.228487935220562044,0.148162780645088116,0.0317012183246097243],"hpluv":[18.9799525675269258,281.103307599105051,45.3815280810129238],"hsluv":[18.9799525675269258,87.925891065222288,45.3815280810129238]},"#bb4433":{"lch":[45.5516172521931111,96.3559005693685862,16.2666991179303722],"luv":[45.5516172521931111,92.4986058403436147,26.9901369416087924],"rgb":[0.733333333333333282,0.266666666666666663,0.2],"xyz":[0.231575685953019805,0.149397880938071215,0.0479633721822208675],"hpluv":[16.2666991179303722,268.419362556396,45.5516172521931111],"hsluv":[16.2666991179303722,75.6846484949249572,45.5516172521931111]},"#bb4444":{"lch":[45.7955406359936816,91.066890863790789,12.177050630061844],"luv":[45.7955406359936816,89.0179277419259734,19.2090382927107299],"rgb":[0.733333333333333282,0.266666666666666663,0.266666666666666663],"xyz":[0.236033681197238665,0.151181079035758809,0.0714421471351075],"hpluv":[12.177050630061844,252.334507458167678,45.7955406359936816],"hsluv":[12.177050630061844,59.1297963696904461,45.7955406359936816]},"#bb4455":{"lch":[46.1187996938414813,85.2741675307746,6.43569277192082279],"luv":[46.1187996938414813,84.7367941199702273,9.55820957796975],"rgb":[0.733333333333333282,0.266666666666666663,0.333333333333333315],"xyz":[0.24199609523660065,0.153566044651503641,0.102844194409081421],"hpluv":[6.43569277192082279,234.627449284537505,46.1187996938414813],"hsluv":[6.43569277192082279,61.0765315010866274,46.1187996938414813]},"#bb4466":{"lch":[46.5252276318027427,79.8426568240615637,358.82639812637143],"luv":[46.5252276318027427,79.8259079304732779,-1.63532009113408461],"rgb":[0.733333333333333282,0.266666666666666663,0.4],"xyz":[0.249581091010108835,0.156600042960906932,0.142791838816225369],"hpluv":[358.82639812637143,217.763856882437722,46.5252276318027427],"hsluv":[358.82639812637143,63.3003300169989842,46.5252276318027427]},"#bb4477":{"lch":[47.0171837667790697,75.785442181693,349.367581794189107],"luv":[47.0171837667790697,74.484290362097866,-13.9829802234512588],"rgb":[0.733333333333333282,0.266666666666666663,0.466666666666666674],"xyz":[0.258895104030310741,0.160325648168987756,0.191845640722623278],"hpluv":[349.367581794189107,204.535408840651428,47.0171837667790697],"hsluv":[349.367581794189107,65.7062458495858266,47.0171837667790697]},"#bb4488":{"lch":[47.5956997014540235,74.0450948660102,338.538246495536782],"luv":[47.5956997014540235,68.9109568360576219,-27.0916241974425098],"rgb":[0.733333333333333282,0.266666666666666663,0.533333333333333326],"xyz":[0.270035521132254597,0.164781815009765353,0.250518504126195474],"hpluv":[338.538246495536782,197.409434601059019,47.5956997014540235],"hsluv":[338.538246495536782,68.1997676790361,47.5956997014540235]},"#bb4499":{"lch":[48.2606154557730633,75.1911240047971,327.313188255720945],"luv":[48.2606154557730633,63.2834900243205496,-40.6067115074158309],"rgb":[0.733333333333333282,0.266666666666666663,0.6],"xyz":[0.283092485241327296,0.170004600653394511,0.319285181767313353],"hpluv":[327.313188255720945,197.702903480158483,48.2606154557730633],"hsluv":[327.313188255720945,70.6969578310621074,48.2606154557730633]},"#bb44aa":{"lch":[49.0107199856960278,79.2228796099941093,316.794363507436401],"luv":[49.0107199856960278,57.7456584584256944,-54.2374739723603838],"rgb":[0.733333333333333282,0.266666666666666663,0.66666666666666663],"xyz":[0.298150178206579852,0.176027677839495605,0.398589031384311954],"hpluv":[316.794363507436401,205.115683333718124,49.0107199856960278],"hsluv":[316.794363507436401,73.1302855273877128,49.0107199856960278]},"#bb44bb":{"lch":[49.8438993628519427,85.6636869410227746,307.715012949243942],"luv":[49.8438993628519427,52.4034189799077268,-67.7653963284049752],"rgb":[0.733333333333333282,0.266666666666666663,0.733333333333333282],"xyz":[0.315287770313916471,0.182882714682430364,0.4888470164829537],"hpluv":[307.715012949243942,218.084137693810391,49.8438993628519427],"hsluv":[307.715012949243942,75.450469608388417,49.8438993628519427]},"#bb44cc":{"lch":[50.757290285110841,93.8478600934752905,300.284565440631638],"luv":[50.757290285110841,47.3270085455435918,-81.0405769121528152],"rgb":[0.733333333333333282,0.266666666666666663,0.8],"xyz":[0.334580145757638225,0.190599664859919166,0.590453527153223856],"hpluv":[300.284565440631638,234.620130462749955,50.757290285110841],"hsluv":[300.284565440631638,77.6254237907312898,50.757290285110841]},"#bb44dd":{"lch":[51.7474340276366291,103.158361374368454,294.364201848969515],"luv":[51.7474340276366291,42.5564715489483518,-93.971241615445],"rgb":[0.733333333333333282,0.266666666666666663,0.866666666666666696],"xyz":[0.356098471308271769,0.1992069950801727,0.703783375053229854],"hpluv":[294.364201848969515,252.961799427415912,51.7474340276366291],"hsluv":[294.364201848969515,79.6375689955678467,51.7474340276366291]},"#bb44ee":{"lch":[52.8104252671910217,113.122924260907325,289.686672533024307],"luv":[52.8104252671910217,38.1084271425454304,-106.510768347901248],"rgb":[0.733333333333333282,0.266666666666666663,0.933333333333333348],"xyz":[0.379910651574446478,0.208731867186642744,0.829194191121753077],"hpluv":[289.686672533024307,271.813038246621943,52.8104252671910217],"hsluv":[289.686672533024307,87.7449679178180872,52.8104252671910217]},"#bb44ff":{"lch":[53.942050711908152,123.415863319803691,285.982908620336502],"luv":[53.942050711908152,33.9826318144238115,-118.645084406973112],"rgb":[0.733333333333333282,0.266666666666666663,1],"xyz":[0.4060816999842779,0.219200286550575441,0.967028379413534922],"hpluv":[285.982908620336502,290.323946696930363,53.942050711908152],"hsluv":[285.982908620336502,99.9999999999990621,53.942050711908152]},"#995500":{"lch":[43.167672396478018,69.2675138179999,36.3951762413548678],"luv":[43.167672396478018,55.7564526526882105,41.099956911356287],"rgb":[0.6,0.333333333333333315,0],"xyz":[0.163849333716619028,0.132702616788131222,0.0169856277810444857],"hpluv":[36.3951762413548678,203.615246511519132,43.167672396478018],"hsluv":[36.3951762413548678,100.000000000002288,43.167672396478018]},"#995511":{"lch":[43.2277537555276865,67.4837391190291385,35.2266717066771307],"luv":[43.2277537555276865,55.1258789529511333,38.9254738590266101],"rgb":[0.6,0.333333333333333315,0.0666666666666666657],"xyz":[0.16486099921625616,0.133107282987986075,0.0223137327458001189],"hpluv":[35.2266717066771307,198.096040704981476,43.2277537555276865],"hsluv":[35.2266717066771307,95.1659583326808303,43.2277537555276865]},"#995522":{"lch":[43.3388072781739,64.3407602415628475,32.9528815923873708],"luv":[43.3388072781739,53.9895016234129059,34.998101990218963],"rgb":[0.6,0.333333333333333315,0.133333333333333331],"xyz":[0.166736357354733161,0.133857426243376904,0.0321906189417793115],"hpluv":[32.9528815923873708,188.385971738918272,43.3388072781739],"hsluv":[32.9528815923873708,86.4646465379692302,43.3388072781739]},"#995533":{"lch":[43.5207548807750584,59.6262244551406582,28.8908620435756234],"luv":[43.5207548807750584,52.2052395636471,28.8079781462883915],"rgb":[0.6,0.333333333333333315,0.2],"xyz":[0.169824108087190895,0.13509252653636,0.0484527727993904617],"hpluv":[28.8908620435756234,173.852210644027934,43.5207548807750584],"hsluv":[28.8908620435756234,72.8304069554253601,43.5207548807750584]},"#995544":{"lch":[43.7814988718974831,53.8284560366537335,22.2989672577237812],"luv":[43.7814988718974831,49.8029788080235036,20.4246415179685634],"rgb":[0.6,0.333333333333333315,0.266666666666666663],"xyz":[0.174282103331409782,0.136875724634047596,0.0719315477522771],"hpluv":[22.2989672577237812,156.01294104827457,43.7814988718974831],"hsluv":[22.2989672577237812,54.5318604429391058,43.7814988718974831]},"#995555":{"lch":[44.1267187000120629,47.9518139182857226,12.1770506300620411],"luv":[44.1267187000120629,46.8729201797035,10.1146335514957979],"rgb":[0.6,0.333333333333333315,0.333333333333333315],"xyz":[0.180244517370771795,0.139260690249792429,0.103333595026251],"hpluv":[12.1770506300620411,137.893162706519348,44.1267187000120629],"hsluv":[12.1770506300620411,32.3126421104369754,44.1267187000120629]},"#995566":{"lch":[44.5602350881765048,43.578232165907,357.727809148728397],"luv":[44.5602350881765048,43.5439690351937116,-1.72773822316436432],"rgb":[0.6,0.333333333333333315,0.4],"xyz":[0.187829513144279953,0.14229468855919572,0.143281239433394963],"hpluv":[357.727809148728397,124.097051059849122,44.5602350881765048],"hsluv":[357.727809148728397,36.5660257696708157,44.5602350881765048]},"#995577":{"lch":[45.0842241078155226,42.5628566452735342,339.858530865537546],"luv":[45.0842241078155226,39.9599368331855729,-14.6560640723873874],"rgb":[0.6,0.333333333333333315,0.466666666666666674],"xyz":[0.197143526164481886,0.146020293767276543,0.192335041339792873],"hpluv":[339.858530865537546,119.796876557388956,45.0842241078155226],"hsluv":[339.858530865537546,41.1101378179314167,45.0842241078155226]},"#995588":{"lch":[45.699386409692309,45.957423726275,322.088602167082399],"luv":[45.699386409692309,36.2586549471185506,-28.2381787122006145],"rgb":[0.6,0.333333333333333315,0.533333333333333326],"xyz":[0.208283943266425686,0.150476460608054141,0.25100790474336504],"hpluv":[322.088602167082399,127.609977655436467,45.699386409692309],"hsluv":[322.088602167082399,45.7577454208568852,45.699386409692309]},"#995599":{"lch":[46.4051108942887964,53.2218555896971921,307.715012949244795],"luv":[46.4051108942887964,32.5576366947089113,-42.1018551285561102],"rgb":[0.6,0.333333333333333315,0.6],"xyz":[0.221340907375498414,0.155699246251683299,0.319774582384483],"hpluv":[307.715012949244795,145.533684272522947,46.4051108942887964],"hsluv":[307.715012949244795,50.3502223422482516,46.4051108942887964]},"#9955aa":{"lch":[47.1996461355186625,63.0010233462712037,297.353030705211779],"luv":[47.1996461355186625,28.9471952899390068,-55.9570266143899246],"rgb":[0.6,0.333333333333333315,0.66666666666666663],"xyz":[0.236398600340750942,0.161722323437784393,0.399078432001481576],"hpluv":[297.353030705211779,169.374563019623821,47.1996461355186625],"hsluv":[297.353030705211779,54.7667714505238337,47.1996461355186625]},"#9955bb":{"lch":[48.0802807126223541,74.1194144420538,290.114722102094788],"luv":[48.0802807126223541,25.4897394646759068,-69.5985688017783701],"rgb":[0.6,0.333333333333333315,0.733333333333333282],"xyz":[0.253536192448087616,0.168577360280719152,0.489336417100123322],"hpluv":[290.114722102094788,195.615971831826613,48.0802807126223541],"hsluv":[290.114722102094788,58.9252289891592866,48.0802807126223541]},"#9955cc":{"lch":[49.0435277691913,85.8237639836856658,285.007043429489613],"luv":[49.0435277691913,22.2230153813451068,-82.8966588692685491],"rgb":[0.6,0.333333333333333315,0.8],"xyz":[0.272828567891809315,0.176294310458207953,0.590942927770393478],"hpluv":[285.007043429489613,222.057364979540267,49.0435277691913],"hsluv":[285.007043429489613,65.256702758776143,49.0435277691913]},"#9955dd":{"lch":[50.0853068419578875,97.6800340866365104,281.315028513382344],"luv":[50.0853068419578875,19.1651498984824649,-95.7814496055220843],"rgb":[0.6,0.333333333333333315,0.866666666666666696],"xyz":[0.294346893442442914,0.184901640678461487,0.704272775670399476],"hpluv":[281.315028513382344,247.476970093373268,50.0853068419578875],"hsluv":[281.315028513382344,76.6956878028438638,50.0853068419578875]},"#9955ee":{"lch":[51.2011159126469266,109.450459224116145,278.575243894560685],"luv":[51.2011159126469266,16.3199513369978568,-108.226901520499666],"rgb":[0.6,0.333333333333333315,0.933333333333333348],"xyz":[0.318159073708617623,0.194426512784931532,0.829683591738922699],"hpluv":[278.575243894560685,271.254835109068836,51.2011159126469266],"hsluv":[278.575243894560685,88.2491190723243335,51.2011159126469266]},"#9955ff":{"lch":[52.3861878346365444,121.012399839465246,276.491711029928183],"luv":[52.3861878346365444,13.6815981187824764,-120.2364952409323],"rgb":[0.6,0.333333333333333315,1],"xyz":[0.344330122118449045,0.204894932148864228,0.967517780030704544],"hpluv":[276.491711029928183,293.124692446110771,52.3861878346365444],"hsluv":[276.491711029928183,99.9999999999991,52.3861878346365444]},"#bb5500":{"lch":[48.3398816318057811,94.9450628471467724,27.1627331553413143],"luv":[48.3398816318057811,84.4739036935134,43.344256295703957],"rgb":[0.733333333333333282,0.333333333333333315,0],"xyz":[0.237414168296793876,0.170634484618534699,0.0204339794019901093],"hpluv":[27.1627331553413143,249.233335779464397,48.3398816318057811],"hsluv":[27.1627331553413143,100.000000000002217,48.3398816318057811]},"#bb5511":{"lch":[48.3907029738951735,93.4795954244126364,26.3417432533787057],"luv":[48.3907029738951735,83.7729911103365907,41.4791600823755289],"rgb":[0.733333333333333282,0.333333333333333315,0.0666666666666666657],"xyz":[0.238425833796431,0.171039150818389551,0.0257620843667457425],"hpluv":[26.3417432533787057,245.128732426237889,48.3907029738951735],"hsluv":[26.3417432533787057,96.2613278044251786,48.3907029738951735]},"#bb5522":{"lch":[48.4847005727335869,90.8707197847641623,24.7826102649670759],"luv":[48.4847005727335869,82.5019575685759321,38.090874386840035],"rgb":[0.733333333333333282,0.333333333333333315,0.133333333333333331],"xyz":[0.240301191934908,0.17178929407378038,0.0356389705627249351],"hpluv":[24.7826102649670759,237.825586669453713,48.4847005727335869],"hsluv":[24.7826102649670759,89.48684037186257,48.4847005727335869]},"#bb5533":{"lch":[48.6388719159228629,86.8743588299812473,22.1104535643633149],"luv":[48.6388719159228629,80.4856161939384407,32.6989267102511363],"rgb":[0.733333333333333282,0.333333333333333315,0.2],"xyz":[0.243388942667365771,0.173024394366763479,0.0519011244203360783],"hpluv":[22.1104535643633149,226.64567974804504,48.6388719159228629],"hsluv":[22.1104535643633149,78.7542493880857393,48.6388719159228629]},"#bb5544":{"lch":[48.8601705631915,81.7431600256382751,18.0266646696809296],"luv":[48.8601705631915,77.730600917119915,25.2962031151029265],"rgb":[0.733333333333333282,0.333333333333333315,0.266666666666666663],"xyz":[0.24784693791158463,0.174807592464451073,0.0753798993732227168],"hpluv":[18.0266646696809296,212.293047020031764,48.8601705631915],"hsluv":[18.0266646696809296,64.1199207289341,48.8601705631915]},"#bb5555":{"lch":[49.1538097277392154,76.0172073873862075,12.1770506300619399],"luv":[49.1538097277392154,74.3068552156307,16.0345591439297159],"rgb":[0.733333333333333282,0.333333333333333315,0.333333333333333315],"xyz":[0.253809351950946616,0.177192558080195905,0.106781946647196632],"hpluv":[12.1770506300619399,196.242945408672853,49.1538097277392154],"hsluv":[12.1770506300619399,45.9858047870319879,49.1538097277392154]},"#bb5566":{"lch":[49.523574907380123,70.5220596563995,4.21567942747197],"luv":[49.523574907380123,70.3312550088346882,5.18415538569556134],"rgb":[0.733333333333333282,0.333333333333333315,0.4],"xyz":[0.261394347724454801,0.180226556389599196,0.14672959105434058],"hpluv":[4.21567942747197,180.697576197923894,49.523574907380123],"hsluv":[4.21567942747197,48.7291682320237527,49.523574907380123]},"#bb5577":{"lch":[49.971995559373525,66.3094111666939341,354.014227306533371],"luv":[49.971995559373525,65.9478803557508257,-6.91484532417379327],"rgb":[0.733333333333333282,0.333333333333333315,0.466666666666666674],"xyz":[0.270708360744656706,0.18395216159768002,0.195783392960738489],"hpluv":[354.014227306533371,168.378953180241098,49.971995559373525],"hsluv":[354.014227306533371,51.7390719561838495,49.971995559373525]},"#bb5588":{"lch":[50.5004659153875508,64.4571905510646275,342.016521446261379],"luv":[50.5004659153875508,61.308172080607541,-19.9006896832966476],"rgb":[0.733333333333333282,0.333333333333333315,0.533333333333333326],"xyz":[0.281848777846600562,0.188408328438457617,0.254456256364310685],"hpluv":[342.016521446261379,161.962814057843559,50.5004659153875508],"hsluv":[342.016521446261379,54.9055054808170055,50.5004659153875508]},"#bb5599":{"lch":[51.1093507584050286,65.6961991151429459,329.411862939203161],"luv":[51.1093507584050286,56.5544024759803,-33.4303774845774342],"rgb":[0.733333333333333282,0.333333333333333315,0.6],"xyz":[0.294905741955673262,0.193631114082086775,0.323222934005428564],"hpluv":[329.411862939203161,163.109481188372769,51.1093507584050286],"hsluv":[329.411862939203161,58.1255686218068561,51.1093507584050286]},"#bb55aa":{"lch":[51.7980911374347386,70.0901192661774246,317.660759061539352],"luv":[51.7980911374347386,51.8085124997667563,-47.2070212077450151],"rgb":[0.733333333333333282,0.333333333333333315,0.66666666666666663],"xyz":[0.309963434920925818,0.199654191268187869,0.402526783622427164],"hpluv":[317.660759061539352,171.704773930815691,51.7980911374347386],"hsluv":[317.660759061539352,61.3115173935257403,51.7980911374347386]},"#bb55bb":{"lch":[52.5653152299933737,77.1031380177621344,307.715012949244226],"luv":[52.5653152299933737,47.1666372355911179,-60.9934605025180332],"rgb":[0.733333333333333282,0.333333333333333315,0.733333333333333282],"xyz":[0.327101027028262437,0.206509228111122628,0.492784768721068911],"hpluv":[307.715012949244226,186.128169856082764,52.5653152299933737],"hsluv":[307.715012949244226,64.3946779967479,52.5653152299933737]},"#bb55cc":{"lch":[53.4089544864585,85.9678373228364308,299.780474196008072],"luv":[53.4089544864585,42.6983512805399883,-74.6144748148057175],"rgb":[0.733333333333333282,0.333333333333333315,0.8],"xyz":[0.346393402471984191,0.21422617828861143,0.594391279391339067],"hpluv":[299.780474196008072,204.249617293250537,53.4089544864585],"hsluv":[299.780474196008072,67.3259326792693855,53.4089544864585]},"#bb55dd":{"lch":[54.3263625650166944,95.9883710948233926,293.613183872979789],"luv":[54.3263625650166944,38.4490902963257213,-87.9513208588848698],"rgb":[0.733333333333333282,0.333333333333333315,0.866666666666666696],"xyz":[0.367911728022617734,0.222833508508864964,0.707721127291345065],"hpluv":[293.613183872979789,224.206046477737118,54.3263625650166944],"hsluv":[293.613183872979789,73.8407928406032283,54.3263625650166944]},"#bb55ee":{"lch":[55.314433433552054,106.647677925948784,288.842761327535072],"luv":[55.314433433552054,34.444226028074695,-100.932266893812525],"rgb":[0.733333333333333282,0.333333333333333315,0.933333333333333348],"xyz":[0.391723908288792444,0.232358380615335,0.833131943359868288],"hpluv":[288.842761327535072,244.653966901481454,55.314433433552054],"hsluv":[288.842761327535072,86.7715876359309135,55.314433433552054]},"#bb55ff":{"lch":[56.3697148536960526,117.598184211748716,285.129655441003138],"luv":[56.3697148536960526,30.6936185759692179,-113.521956944959783],"rgb":[0.733333333333333282,0.333333333333333315,1],"xyz":[0.417894956698623865,0.242826799979267705,0.970966131651650133],"hpluv":[285.129655441003138,264.724480425834031,56.3697148536960526],"hsluv":[285.129655441003138,99.9999999999989,56.3697148536960526]},"#996600":{"lch":[47.3343652017352454,63.4240894393546952,48.3260196362919672],"luv":[47.3343652017352454,42.1701199842588,47.3740023823666476],"rgb":[0.6,0.4,0],"xyz":[0.178877391422465504,0.162758732199824563,0.0219949803496598331],"hpluv":[48.3260196362919672,170.026654750900292,47.3343652017352454],"hsluv":[48.3260196362919672,100.000000000002288,47.3343652017352454]},"#996611":{"lch":[47.3868110627231189,61.667674323653,47.4017350737566616],"luv":[47.3868110627231189,41.7399921999205,45.3946594616449133],"rgb":[0.6,0.4,0.0666666666666666657],"xyz":[0.179889056922102636,0.163163398399679416,0.0273230853144154628],"hpluv":[47.4017350737566616,165.135107398016657,47.3868110627231189],"hsluv":[47.4017350737566616,96.0239926064661,47.3868110627231189]},"#996622":{"lch":[47.4838028017404099,58.5263777304533406,45.5834379771503322],"luv":[47.4838028017404099,40.9608465044279413,41.8036594557031336],"rgb":[0.6,0.4,0.133333333333333331],"xyz":[0.181764415060579637,0.163913541655070244,0.0371999715103946624],"hpluv":[45.5834379771503322,156.40314428015364,47.4838028017404099],"hsluv":[45.5834379771503322,88.8298219708016177,47.4838028017404099]},"#996633":{"lch":[47.642855645786625,53.6803525088045674,42.2629253198225712],"luv":[47.642855645786625,39.7270268335614887,36.1018501525199724],"rgb":[0.6,0.4,0.2],"xyz":[0.184852165793037371,0.165148641948053343,0.0534621253680058056],"hpluv":[42.2629253198225712,142.973945144987511,47.642855645786625],"hsluv":[42.2629253198225712,77.4596172761956865,47.642855645786625]},"#996644":{"lch":[47.8710980897590872,47.4159845831850149,36.6424092143452071],"luv":[47.8710980897590872,38.045445264132745,28.298757722676072],"rgb":[0.6,0.4,0.266666666666666663],"xyz":[0.189310161037256258,0.166931840045740937,0.0769409003208924441],"hpluv":[36.6424092143452071,125.687101185572914,47.8710980897590872],"hsluv":[36.6424092143452071,62.0095295256686185,47.8710980897590872]},"#996655":{"lch":[48.173837669734425,40.4765536471140521,27.3183313201514686],"luv":[48.173837669734425,35.9622216701857838,18.5760600691352664],"rgb":[0.6,0.4,0.333333333333333315],"xyz":[0.195272575076618271,0.16931680566148577,0.108342947594866346],"hpluv":[27.3183313201514686,106.618264590322553,48.173837669734425],"hsluv":[27.3183313201514686,42.9499413016611484,48.173837669734425]},"#996666":{"lch":[48.5548823199147819,34.3240193245421,12.1770506300621335],"luv":[48.5548823199147819,33.551744690774747,7.24007809326721219],"rgb":[0.6,0.4,0.4],"xyz":[0.202857570850126429,0.17235080397088906,0.148290592002010307],"hpluv":[12.1770506300621335,89.702502372613651,48.5548823199147819],"hsluv":[12.1770506300621335,21.0200766933302461,48.5548823199147819]},"#996677":{"lch":[49.0167186013709,31.3606600839303482,350.2076113500313],"luv":[49.0167186013709,30.9037509766054157,-5.33377694282222681],"rgb":[0.6,0.4,0.466666666666666674],"xyz":[0.212171583870328362,0.176076409178969884,0.197344393908408217],"hpluv":[350.2076113500313,81.185839798992177,49.0167186013709],"hsluv":[350.2076113500313,25.8881256225468483,49.0167186013709]},"#996688":{"lch":[49.5606396668562752,33.7929953796712823,326.289263208678278],"luv":[49.5606396668562752,28.1107077320421368,-18.7551232343109682],"rgb":[0.6,0.4,0.533333333333333326],"xyz":[0.223312000972272162,0.180532576019747482,0.256017257311980384],"hpluv":[326.289263208678278,86.5225105267045365,49.5606396668562752],"hsluv":[326.289263208678278,30.9767265160446463,49.5606396668562752]},"#996699":{"lch":[50.1868595811773304,41.2886932006772,307.715012949245818],"luv":[50.1868595811773304,25.2577114783499113,-32.6619686653465351],"rgb":[0.6,0.4,0.6],"xyz":[0.236368965081344889,0.185755361663376639,0.324783934953098319],"hpluv":[307.715012949245818,104.395179003902854,50.1868595811773304],"hsluv":[307.715012949245818,36.1175524455388413,50.1868595811773304]},"#9966aa":{"lch":[50.8946289106688141,51.8448774557822,295.617938374847199],"luv":[50.8946289106688141,22.4160699516755599,-46.7483810021979451],"rgb":[0.6,0.4,0.66666666666666663],"xyz":[0.251426658046597418,0.191778438849477734,0.40408778457009692],"hpluv":[295.617938374847199,129.262701065701,50.8946289106688141],"hsluv":[295.617938374847199,41.1705422178494445,50.8946289106688141]},"#9966bb":{"lch":[51.6823563026294,63.8712345518136,287.908782454232437],"luv":[51.6823563026294,19.6405628457828776,-60.776499523036378],"rgb":[0.6,0.4,0.733333333333333282],"xyz":[0.268564250153934092,0.198633475692412492,0.494345769668738666],"hpluv":[287.908782454232437,156.820318415219759,51.6823563026294],"hsluv":[287.908782454232437,49.349420166275209,51.6823563026294]},"#9966cc":{"lch":[52.5477355185796569,76.4825896496335389,282.819195018988751],"luv":[52.5477355185796569,16.9695880464031816,-74.5762670093482285],"rgb":[0.6,0.4,0.8],"xyz":[0.287856625597655791,0.206350425869901294,0.595952280339008822],"hpluv":[282.819195018988751,184.691924030055,52.5477355185796569],"hsluv":[282.819195018988751,61.7185051859638136,52.5477355185796569]},"#9966dd":{"lch":[53.4878747475352725,89.2117449852098758,279.306611445978092],"luv":[53.4878747475352725,14.4271177471338046,-88.0374563286358],"rgb":[0.6,0.4,0.866666666666666696],"xyz":[0.30937495114828939,0.214957756090154828,0.70928212823901482],"hpluv":[279.306611445978092,211.644028054176175,53.4878747475352725],"hsluv":[279.306611445978092,74.2596178074049362,53.4878747475352725]},"#9966ee":{"lch":[54.4994239962059339,101.810849438236403,276.783380903602506],"luv":[54.4994239962059339,12.0254847729914225,-101.098154183495325],"rgb":[0.6,0.4,0.933333333333333348],"xyz":[0.333187131414464099,0.224482628196624873,0.834692944307538],"hpluv":[276.783380903602506,237.050827216632513,54.4994239962059339],"hsluv":[276.783380903602506,86.9990828065156734,54.4994239962059339]},"#9966ff":{"lch":[55.5786963614876,114.151421142661491,274.908981870437117],"luv":[55.5786963614876,9.76829238934238475,-113.732701597586171],"rgb":[0.6,0.4,1],"xyz":[0.359358179824295521,0.234951047560557569,0.972527132599319888],"hpluv":[274.908981870437117,260.622732185953453,55.5786963614876],"hsluv":[274.908981870437117,99.999999999998991,55.5786963614876]},"#bb6600":{"lch":[51.9152024616159622,85.9194467179265899,34.7713476038742],"luv":[51.9152024616159622,70.5771984524152884,49.0001059480794936],"rgb":[0.733333333333333282,0.4,0],"xyz":[0.252442226002640324,0.200690600030228039,0.0254433319706054567],"hpluv":[34.7713476038742,210.008196913669821,51.9152024616159622],"hsluv":[34.7713476038742,100.000000000002217,51.9152024616159622]},"#bb6611":{"lch":[51.960819173128,84.5067938711160735,34.0102696578751846],"luv":[51.960819173128,70.0508360673827184,47.2681560528436],"rgb":[0.733333333333333282,0.4,0.0666666666666666657],"xyz":[0.253453891502277429,0.201095266230082892,0.0307714369353610864],"hpluv":[34.0102696578751846,206.373990798532162,51.960819173128],"hsluv":[34.0102696578751846,96.7960731817087492,51.960819173128]},"#bb6622":{"lch":[52.0452187907305586,81.9745670334704215,32.5563816919222901],"luv":[52.0452187907305586,69.0932729256005587,44.1129150788451909],"rgb":[0.733333333333333282,0.4,0.133333333333333331],"xyz":[0.255329249640754485,0.20184540948547372,0.040648323131340286],"hpluv":[32.5563816919222901,199.865401092535734,52.0452187907305586],"hsluv":[32.5563816919222901,90.9716633106406221,52.0452187907305586]},"#bb6633":{"lch":[52.1837271506259412,78.04817012610809,30.0375791414029081],"luv":[52.1837271506259412,67.5660884046363,39.0684086920722109],"rgb":[0.733333333333333282,0.4,0.2],"xyz":[0.258417000373212191,0.203080509778456819,0.0569104769889514292],"hpluv":[30.0375791414029081,189.787216830323956,52.1837271506259412],"hsluv":[30.0375791414029081,81.6941023093515639,52.1837271506259412]},"#bb6644":{"lch":[52.3827138306128859,72.9081368603095257,26.1184165145312406],"luv":[52.3827138306128859,65.4632041398932,32.0961886238895318],"rgb":[0.733333333333333282,0.4,0.266666666666666663],"xyz":[0.262874995617431106,0.204863707876144413,0.0803892519418380747],"hpluv":[26.1184165145312406,176.614896915735159,52.3827138306128859],"hsluv":[26.1184165145312406,68.9437006343278824,52.3827138306128859]},"#bb6655":{"lch":[52.6470547760809637,67.004522830646,20.3474245095699864],"luv":[52.6470547760809637,62.823537757634746,23.2982656731697979],"rgb":[0.733333333333333282,0.4,0.333333333333333315],"xyz":[0.268837409656793092,0.207248673491889246,0.111791299215811976],"hpluv":[20.3474245095699864,161.498824171429789,52.6470547760809637],"hsluv":[20.3474245095699864,52.9816895309479534,52.6470547760809637]},"#bb6666":{"lch":[52.9804174131186727,61.0960132663801261,12.1770506300620109],"luv":[52.9804174131186727,59.7213810933874498,12.8871826767560087],"rgb":[0.733333333333333282,0.4,0.4],"xyz":[0.276422405430301277,0.210282671801292537,0.151738943622955924],"hpluv":[12.1770506300620109,146.331162504643544,52.9804174131186727],"hsluv":[12.1770506300620109,34.2899270044314335,52.9804174131186727]},"#bb6677":{"lch":[53.3854132757716826,56.2661599102721226,1.17050216666979279],"luv":[53.3854132757716826,56.2544190111897535,1.14938799445880213],"rgb":[0.733333333333333282,0.4,0.466666666666666674],"xyz":[0.285736418450503182,0.21400827700937336,0.200792745529353833],"hpluv":[1.17050216666979279,133.74082367080041,53.3854132757716826],"hsluv":[1.17050216666979279,37.694842795415525,53.3854132757716826]},"#bb6688":{"lch":[53.8636991644475387,53.7950791600554297,347.554026547444039],"luv":[53.8636991644475387,52.5308766640911458,-11.5938578022448873],"rgb":[0.733333333333333282,0.4,0.533333333333333326],"xyz":[0.296876835552447,0.218464443850150958,0.259465608932926028],"hpluv":[347.554026547444039,126.731828674836166,53.8636991644475387],"hsluv":[347.554026547444039,41.3310399817098855,53.8636991644475387]},"#bb6699":{"lch":[54.4160596975863484,54.7145736516266723,332.78581188167891],"luv":[54.4160596975863484,48.6578429809048814,-25.0219680745716886],"rgb":[0.733333333333333282,0.4,0.6],"xyz":[0.309933799661519682,0.223687229493780115,0.328232286574043908],"hpluv":[332.78581188167891,127.589593839900076,54.4160596975863484],"hsluv":[332.78581188167891,45.0871489409768813,54.4160596975863484]},"#bb66aa":{"lch":[55.0424859024436,59.2427277394444332,319.03138367428437],"luv":[55.0424859024436,44.7323366642012274,-38.8422301956323963],"rgb":[0.733333333333333282,0.4,0.66666666666666663],"xyz":[0.324991492626772238,0.22971030667988121,0.407536136191042508],"hpluv":[319.03138367428437,136.57661144398341,55.0424859024436],"hsluv":[319.03138367428437,48.8627280546895548,55.0424859024436]},"#bb66bb":{"lch":[55.7422560614222,66.7541112543564168,307.715012949244738],"luv":[55.7422560614222,40.8357821803987235,-52.8067255477370452],"rgb":[0.733333333333333282,0.4,0.733333333333333282],"xyz":[0.342129084734108913,0.236565343522815968,0.497794121289684255],"hpluv":[307.715012949244738,151.961230908585406,55.7422560614222],"hsluv":[307.715012949244738,52.5739577191036176,55.7422560614222]},"#bb66cc":{"lch":[56.5140206008290704,76.3075420390205466,299.031845144425],"luv":[56.5140206008290704,37.0317190732607671,-66.7195080506142801],"rgb":[0.733333333333333282,0.4,0.8],"xyz":[0.361421460177830611,0.24428229370030477,0.599400631959954411],"hpluv":[299.031845144425,171.336773989457299,56.5140206008290704],"hsluv":[299.031845144425,57.7422914315118732,56.5140206008290704]},"#bb66dd":{"lch":[57.3558903641351208,87.0819801731049523,292.529347086481266],"luv":[57.3558903641351208,33.3660351201831276,-80.4361794917420809],"rgb":[0.733333333333333282,0.4,0.866666666666666696],"xyz":[0.38293978572846421,0.252889623920558304,0.712730479859960409],"hpluv":[292.529347086481266,192.659130793538424,57.3558903641351208],"hsluv":[292.529347086481266,71.4699790991907,57.3558903641351208]},"#bb66ee":{"lch":[58.2655263288606164,98.4965661150924916,287.652756970849339],"luv":[58.2655263288606164,29.8688319231142287,-93.8585447149780805],"rgb":[0.733333333333333282,0.4,0.933333333333333348],"xyz":[0.40675196599463892,0.262414496027028321,0.838141295928483632],"hpluv":[287.652756970849339,214.510592558062115,58.2655263288606164],"hsluv":[287.652756970849339,85.5420625539119186,58.2655263288606164]},"#bb66ff":{"lch":[59.2402283004695533,110.175409569553764,283.948158265715847],"luv":[59.2402283004695533,26.5571064878979755,-106.926801919861816],"rgb":[0.733333333333333282,0.4,1],"xyz":[0.432923014404470341,0.272882915390961045,0.975975484220265477],"hpluv":[283.948158265715847,235.997431668916079,59.2402283004695533],"hsluv":[283.948158265715847,99.9999999999988205,59.2402283004695533]},"#997700":{"lch":[51.799451349173637,61.2288227532233265,61.7368019650066202],"luv":[51.799451349173637,28.9932293289078338,53.9292257391759406],"rgb":[0.6,0.466666666666666674,0],"xyz":[0.197331129475883132,0.19966620830666032,0.028146226367465537],"hpluv":[61.7368019650066202,149.992683828924328,51.799451349173637],"hsluv":[61.7368019650066202,100.000000000002373,51.799451349173637]},"#997711":{"lch":[51.8452237949875752,59.5195003520895298,61.1595916745536812],"luv":[51.8452237949875752,28.7105152364728049,52.1371003894409952],"rgb":[0.6,0.466666666666666674,0.0666666666666666657],"xyz":[0.198342794975520265,0.200070874506515173,0.0334743313322211702],"hpluv":[61.1595916745536812,145.676617799321178,51.8452237949875752],"hsluv":[61.1595916745536812,96.7355174862457687,51.8452237949875752]},"#997722":{"lch":[51.9299107218419778,56.4237897442973448,60.0184197539949],"luv":[51.9299107218419778,28.1961842142201746,48.8735024820856836],"rgb":[0.6,0.466666666666666674,0.133333333333333331],"xyz":[0.200218153113997266,0.200821017761906,0.0433512175282003628],"hpluv":[60.0184197539949,137.874516690543771,51.9299107218419778],"hsluv":[60.0184197539949,90.8032063934702762,51.9299107218419778]},"#997733":{"lch":[52.0688882655341843,51.532107019520943,57.9108306747127841],"luv":[52.0688882655341843,27.375836028403171,43.6591531710973797],"rgb":[0.6,0.466666666666666674,0.2],"xyz":[0.203305903846455027,0.2020561180548891,0.0596133713858115061],"hpluv":[57.9108306747127841,125.585333003110208,52.0688882655341843],"hsluv":[57.9108306747127841,81.359583819486275,52.0688882655341843]},"#997744":{"lch":[52.2685439893789265,44.9234500117750244,54.2507061045172563],"luv":[52.2685439893789265,26.2460613351246792,36.4590266649196622],"rgb":[0.6,0.466666666666666674,0.266666666666666663],"xyz":[0.207763899090673887,0.203839316152576694,0.0830921463386981446],"hpluv":[54.2507061045172563,109.061640425204757,52.2685439893789265],"hsluv":[54.2507061045172563,68.3925961892813632,52.2685439893789265]},"#997755":{"lch":[52.5337646967731615,36.9638675487782962,47.8040559904272229],"luv":[52.5337646967731615,24.8274523779219614,27.3847605902560787],"rgb":[0.6,0.466666666666666674,0.333333333333333315],"xyz":[0.213726313130035872,0.206224281768321527,0.11449419361267206],"hpluv":[47.8040559904272229,89.2849392346346,52.5337646967731615],"hsluv":[47.8040559904272229,52.1784042692219217,52.5337646967731615]},"#997766":{"lch":[52.8682223623880958,28.5307109293219519,35.7342712802299047],"luv":[52.8682223623880958,23.1593577603421643,16.6627012894371447],"rgb":[0.6,0.466666666666666674,0.4],"xyz":[0.221311308903544057,0.209258280077724818,0.154441838019816],"hpluv":[35.7342712802299047,68.4789688439394695,52.8682223623880958],"hsluv":[35.7342712802299047,33.2180784313787072,52.8682223623880958]},"#997777":{"lch":[53.2745272921510349,21.7835186536615062,12.1770506300626185],"luv":[53.2745272921510349,21.2933995119794766,4.59486911213486],"rgb":[0.6,0.466666666666666674,0.466666666666666674],"xyz":[0.230625321923745963,0.212983885285805641,0.203495639926213917],"hpluv":[12.1770506300626185,51.8857087556556777,53.2745272921510349],"hsluv":[12.1770506300626185,12.1864056638809046,53.2745272921510349]},"#997788":{"lch":[53.7543298043441524,21.0694932264164443,336.259644884191403],"luv":[53.7543298043441524,19.28657717102978,-8.48242216845644492],"rgb":[0.6,0.466666666666666674,0.533333333333333326],"xyz":[0.241765739025689819,0.217440052126583239,0.262168503329786085],"hpluv":[336.259644884191403,49.7370433553737143,53.7543298043441524],"hsluv":[336.259644884191403,17.3594920402921318,53.7543298043441524]},"#997799":{"lch":[54.308403390094881,28.1087123643927,307.715012949247921],"luv":[54.308403390094881,17.1950646022419384,-22.235769923906151],"rgb":[0.6,0.466666666666666674,0.6],"xyz":[0.254822703134762518,0.222662837770212396,0.330935180970904],"hpluv":[307.715012949247921,65.67699031054849,54.308403390094881],"hsluv":[307.715012949247921,22.7222383700086681,54.308403390094881]},"#9977aa":{"lch":[54.9367240193748785,39.361724048309469,292.510155009375],"luv":[54.9367240193748785,15.0695247856183894,-36.3628208860492137],"rgb":[0.6,0.466666666666666674,0.66666666666666663],"xyz":[0.269880396100015074,0.228685914956313491,0.41023903058790262],"hpluv":[292.510155009375,90.9181689788077847,54.9367240193748785],"hsluv":[292.510155009375,30.8964586946041671,54.9367240193748785]},"#9977bb":{"lch":[55.6385517902762388,52.2405182414828104,284.355371582691191],"luv":[55.6385517902762388,12.9522722169503091,-50.6093903397058824],"rgb":[0.6,0.466666666666666674,0.733333333333333282],"xyz":[0.287017988207351693,0.235540951799248249,0.500497015686544366],"hpluv":[284.355371582691191,119.143673365147691,55.6385517902762388],"hsluv":[284.355371582691191,44.025050152294007,55.6385517902762388]},"#9977cc":{"lch":[56.4125166695819615,65.6830300518217172,279.531250686135081],"luv":[56.4125166695819615,10.8761592408186605,-64.7763042860340192],"rgb":[0.6,0.466666666666666674,0.8],"xyz":[0.306310363651073447,0.243257901976737051,0.602103526356814522],"hpluv":[279.531250686135081,147.746441920881637,56.4125166695819615],"hsluv":[279.531250686135081,57.5215558896316352,56.4125166695819615]},"#9977dd":{"lch":[57.256707620000924,79.2159287347205,276.425234899334782],"luv":[57.256707620000924,8.86478593594131858,-78.718351962006011],"rgb":[0.6,0.466666666666666674,0.866666666666666696],"xyz":[0.327828689201707,0.251865232196990585,0.71543337425682052],"hpluv":[276.425234899334782,175.559960004438778,57.256707620000924],"hsluv":[276.425234899334782,71.3413917340773764,57.256707620000924]},"#9977ee":{"lch":[58.1687631275758434,92.5981917117116211,274.294200356840065],"luv":[58.1687631275758434,6.93354781471817905,-92.3382424728774822],"rgb":[0.6,0.466666666666666674,0.933333333333333348],"xyz":[0.351640869467881756,0.261390104303460602,0.840844190325343743],"hpluv":[274.294200356840065,202.000294664132923,58.1687631275758434],"hsluv":[274.294200356840065,85.4864748016987903,58.1687631275758434]},"#9977ff":{"lch":[59.1459606243173,105.700835267318482,272.760722153075335],"luv":[59.1459606243173,5.0910859147335179,-105.578157875659116],"rgb":[0.6,0.466666666666666674,1],"xyz":[0.377811917877713122,0.271858523667393326,0.978678378617125588],"hpluv":[272.760722153075335,226.773684284234889,59.1459606243173],"hsluv":[272.760722153075335,99.9999999999988,59.1459606243173]},"#bb7700":{"lch":[55.8465021194210323,78.9426527823167703,44.2288975260652037],"luv":[55.8465021194210323,56.5670601566064,55.0645996403160751],"rgb":[0.733333333333333282,0.466666666666666674,0],"xyz":[0.270895964056058,0.237598076137063796,0.0315945779884111572],"hpluv":[44.2288975260652037,179.372171604304526,55.8465021194210323],"hsluv":[44.2288975260652037,100.000000000002402,55.8465021194210323]},"#bb7711":{"lch":[55.8872675460691113,77.5581898683241775,43.5811171927028127],"luv":[55.8872675460691113,56.1830827877517081,53.4671303149482782],"rgb":[0.733333333333333282,0.466666666666666674,0.0666666666666666657],"xyz":[0.271907629555695085,0.238002742336918649,0.0369226829531667869],"hpluv":[43.5811171927028127,176.097874689063588,55.8872675460691113],"hsluv":[43.5811171927028127,97.2747266570755613,55.8872675460691113]},"#bb7722":{"lch":[55.9627137258116534,75.0570685818031365,42.3362918908129799],"luv":[55.9627137258116534,55.4825342436315907,50.549499878809371],"rgb":[0.733333333333333282,0.466666666666666674,0.133333333333333331],"xyz":[0.273782987694172142,0.238752885592309477,0.0467995691491459864],"hpluv":[42.3362918908129799,170.189263625481374,55.9627137258116534],"hsluv":[42.3362918908129799,92.3060252972229875,55.9627137258116534]},"#bb7733":{"lch":[56.086591241629975,71.12386069085467,40.1553843778465094],"luv":[56.086591241629975,54.3598535070873652,45.8651271257379562],"rgb":[0.733333333333333282,0.466666666666666674,0.2],"xyz":[0.276870738426629848,0.239987985885292576,0.0630617230067571366],"hpluv":[40.1553843778465094,160.914656808849855,56.086591241629975],"hsluv":[40.1553843778465094,84.3528141134219425,56.086591241629975]},"#bb7744":{"lch":[56.2646940492590346,65.8532423012147632,36.6949041745596887],"luv":[56.2646940492590346,52.8030258036740747,39.3508575199960617],"rgb":[0.733333333333333282,0.466666666666666674,0.266666666666666663],"xyz":[0.281328733670848763,0.24177118398298017,0.0865404979596437751],"hpluv":[36.6949041745596887,148.518490760970963,56.2646940492590346],"hsluv":[36.6949041745596887,73.3442464951488517,56.2646940492590346]},"#bb7755":{"lch":[56.5015366957073866,59.5720019456390375,31.4313823601585],"luv":[56.5015366957073866,50.8307220514796256,31.0654327434279267],"rgb":[0.733333333333333282,0.466666666666666674,0.333333333333333315],"xyz":[0.287291147710210748,0.244156149598725,0.117942545233617677],"hpluv":[31.4313823601585,133.789263155984059,56.5015366957073866],"hsluv":[31.4313823601585,59.433527841274838,56.5015366957073866]},"#bb7766":{"lch":[56.8006139195957758,52.9060784141758376,23.584548946691168],"luv":[56.8006139195957758,48.4868685528452588,21.1678225404983067],"rgb":[0.733333333333333282,0.466666666666666674,0.4],"xyz":[0.294876143483718933,0.247190147908128294,0.157890189640761625],"hpluv":[23.584548946691168,118.193030459121616,56.8006139195957758],"hsluv":[23.584548946691168,42.9582981176577476,56.8006139195957758]},"#bb7777":{"lch":[57.1645375630264851,46.8887603377642677,12.1770506300621175],"luv":[57.1645375630264851,45.8337848153679062,9.89040016939892652],"rgb":[0.733333333333333282,0.466666666666666674,0.466666666666666674],"xyz":[0.304190156503920839,0.250915753116209117,0.206943991547159534],"hpluv":[12.1770506300621175,104.083378979503351,57.1645375630264851],"hsluv":[12.1770506300621175,30.9338815185941769,57.1645375630264851]},"#bb7788":{"lch":[57.5951231639082408,43.0166042307866761,356.679907444569722],"luv":[57.5951231639082408,42.9444038116514264,-2.49126891562360298],"rgb":[0.733333333333333282,0.466666666666666674,0.533333333333333326],"xyz":[0.315330573605864639,0.255371919956986715,0.265616854950731729],"hpluv":[356.679907444569722,94.7741152880685149,57.5951231639082408],"hsluv":[356.679907444569722,32.9204937798227419,57.5951231639082408]},"#bb7799":{"lch":[58.0934559183715322,42.8683503206465062,338.533521874652],"luv":[58.0934559183715322,39.8946515879682408,-15.6879646190414519],"rgb":[0.733333333333333282,0.466666666666666674,0.6],"xyz":[0.328387537714937339,0.260594705600615872,0.334383532591849608],"hpluv":[338.533521874652,93.6373004736019823,58.0934559183715322],"hsluv":[338.533521874652,34.9811369830312131,58.0934559183715322]},"#bb77aa":{"lch":[58.6599497668646706,47.0820583870944276,321.324781752589786],"luv":[58.6599497668646706,36.7569990603765,-29.4218157502430451],"rgb":[0.733333333333333282,0.466666666666666674,0.66666666666666663],"xyz":[0.343445230680189895,0.266617782786717,0.413687382208848209],"hpluv":[321.324781752589786,101.848135129910219,58.6599497668646706],"hsluv":[321.324781752589786,37.0556810629478051,58.6599497668646706]},"#bb77bb":{"lch":[59.2944060970233693,54.9189596898792303,307.71501294924542],"luv":[59.2944060970233693,33.5958135510894706,-43.4443718479046765],"rgb":[0.733333333333333282,0.466666666666666674,0.733333333333333282],"xyz":[0.360582822787526569,0.273472819629651753,0.50394536730749],"hpluv":[307.71501294924542,117.529775077760561,59.2944060970233693],"hsluv":[307.71501294924542,40.6617226560308467,59.2944060970233693]},"#bb77cc":{"lch":[59.9960747587738155,65.1135012197087519,297.896140559284788],"luv":[59.9960747587738155,30.4646722292654815,-57.5471266620014177],"rgb":[0.733333333333333282,0.466666666666666674,0.8],"xyz":[0.379875198231248268,0.281189769807140555,0.605551877977760111],"hpluv":[297.896140559284788,137.716994859863917,59.9960747587738155],"hsluv":[297.896140559284788,53.5682479917909,59.9960747587738155]},"#bb77dd":{"lch":[60.7637179337253599,76.6332290650186394,290.953982706702106],"luv":[60.7637179337253599,27.4054240934965065,-71.5653165100750357],"rgb":[0.733333333333333282,0.466666666666666674,0.866666666666666696],"xyz":[0.401393523781881867,0.289797100027394061,0.718881725877766109],"hpluv":[290.953982706702106,160.033945707839,60.7637179337253599],"hsluv":[290.953982706702106,68.5485010485900119,60.7637179337253599]},"#bb77ee":{"lch":[61.5956761624293563,88.8082274030350902,285.979672103614405],"luv":[61.5956761624293563,24.4485758512518743,-85.3766267389077456],"rgb":[0.733333333333333282,0.466666666666666674,0.933333333333333348],"xyz":[0.425205704048056576,0.299321972133864078,0.844292541946289332],"hpluv":[285.979672103614405,182.954165183101395,61.5956761624293563],"hsluv":[285.979672103614405,84.0163684558434909,61.5956761624293563]},"#bb77ff":{"lch":[62.4899351736807773,101.23109143545085,282.328516880108566],"luv":[62.4899351736807773,21.6145233767131266,-98.8966442929694693],"rgb":[0.733333333333333282,0.466666666666666674,1],"xyz":[0.451376752457888,0.309790391497796802,0.982126730238071177],"hpluv":[282.328516880108566,205.562159598045383,62.4899351736807773],"hsluv":[282.328516880108566,99.9999999999986784,62.4899351736807773]},"#998800":{"lch":[56.4673516485332527,62.834492950420568,74.7562721675545561],"luv":[56.4673516485332527,16.5207966112614884,60.6237311922136897],"rgb":[0.6,0.533333333333333326,0],"xyz":[0.219403499200853586,0.243810947756601892,0.0355036829424554834],"hpluv":[74.7562721675545561,141.201731332299261,56.4673516485332527],"hsluv":[74.7562721675545561,100.000000000002331,56.4673516485332527]},"#998811":{"lch":[56.5074221469723881,61.2259080808398366,74.51872844438833],"luv":[56.5074221469723881,16.3426261455871646,59.0044946676862878],"rgb":[0.6,0.533333333333333326,0.0666666666666666657],"xyz":[0.220415164700490718,0.244215613956456745,0.0408317879072111131],"hpluv":[74.51872844438833,137.489352382480689,56.5074221469723881],"hsluv":[74.51872844438833,97.3110722480099781,56.5074221469723881]},"#998822":{"lch":[56.5815852437789744,58.2905156727598666,74.0508275651119],"luv":[56.5815852437789744,16.0173304476746452,56.0466711119068961],"rgb":[0.6,0.533333333333333326,0.133333333333333331],"xyz":[0.222290522838967719,0.244965757211847573,0.0507086741031903127],"hpluv":[74.0508275651119,130.726042229432494,56.5815852437789744],"hsluv":[74.0508275651119,92.4075523300517574,56.5815852437789744]},"#998833":{"lch":[56.7033645714083,53.5858970619529273,73.1917859227149],"luv":[56.7033645714083,15.4953822971072128,51.2966031175623911],"rgb":[0.6,0.533333333333333326,0.2],"xyz":[0.22537827357142548,0.246200857504830672,0.066970827960801449],"hpluv":[73.1917859227149,119.917068416956084,56.7033645714083],"hsluv":[73.1917859227149,84.5557602276611533,56.7033645714083]},"#998844":{"lch":[56.8784692361674189,47.0662938677721456,71.7105236832421156],"luv":[56.8784692361674189,14.7702533586865563,44.6886521856241927],"rgb":[0.6,0.533333333333333326,0.266666666666666663],"xyz":[0.22983626881564434,0.247984055602518266,0.0904496029136880875],"hpluv":[71.7105236832421156,105.00293267331034,56.8784692361674189],"hsluv":[71.7105236832421156,73.6816499137771075,56.8784692361674189]},"#998855":{"lch":[57.1113583918905761,38.8337969655052433,69.1066660847648393],"luv":[57.1113583918905761,13.8492700909341142,36.2803184206870242],"rgb":[0.6,0.533333333333333326,0.333333333333333315],"xyz":[0.235798682855006325,0.250369021218263099,0.121851650187662],"hpluv":[69.1066660847648393,86.2832891510872599,57.1113583918905761],"hsluv":[69.1066660847648393,59.9309888570698774,57.1113583918905761]},"#998866":{"lch":[57.4054971647218224,29.1657433305745144,64.0747883902216],"luv":[57.4054971647218224,12.7511922431808031,26.2306629806110223],"rgb":[0.6,0.533333333333333326,0.4],"xyz":[0.24338367862851451,0.253403019527666418,0.161799294594805965],"hpluv":[64.0747883902216,64.4701815948561574,57.4054971647218224],"hsluv":[64.0747883902216,43.6310875702010321,57.4054971647218224]},"#998877":{"lch":[57.7634914296009612,18.7238256654584347,52.0945218145914097],"luv":[57.7634914296009612,11.5031815844705712,14.773573060880608],"rgb":[0.6,0.533333333333333326,0.466666666666666674],"xyz":[0.252697691648716416,0.257128624735747213,0.210853096501203874],"hpluv":[52.0945218145914097,41.1320618043462858,57.7634914296009612],"hsluv":[52.0945218145914097,25.2418236256697028,57.7634914296009612]},"#998888":{"lch":[58.1871725604667489,10.3706980586515272,12.1770506300640946],"luv":[58.1871725604667489,10.1373621264743505,2.18752539195365081],"rgb":[0.6,0.533333333333333326,0.533333333333333326],"xyz":[0.263838108750660272,0.261584791576524811,0.269525959904776],"hpluv":[12.1770506300640946,22.6162221883482317,58.1871725604667489],"hsluv":[12.1770506300640946,7.14421708061451799,58.1871725604667489]},"#998899":{"lch":[58.6776613659523605,14.2013195506443459,307.715012949254117],"luv":[58.6776613659523605,8.6874348403017283,-11.2341422847952668],"rgb":[0.6,0.533333333333333326,0.6],"xyz":[0.276895072859732971,0.266807577220153969,0.338292637545893948],"hpluv":[307.715012949254117,30.7110899398720818,58.6776613659523605],"hsluv":[307.715012949254117,10.6251017733449729,58.6776613659523605]},"#9988aa":{"lch":[59.2354248002074399,26.2127450059066938,285.910383521223935],"luv":[59.2354248002074399,7.18579172527609789,-25.2085778659891844],"rgb":[0.6,0.533333333333333326,0.66666666666666663],"xyz":[0.291952765824985527,0.272830654406255091,0.417596487162892549],"hpluv":[285.910383521223935,56.1526584479988173,59.2354248002074399],"hsluv":[285.910383521223935,23.5088603674401817,59.2354248002074399]},"#9988bb":{"lch":[59.8603319378123189,39.8857557696632696,278.160160819701673],"luv":[59.8603319378123189,5.66141142610705117,-39.4819190767314581],"rgb":[0.6,0.533333333333333326,0.733333333333333282],"xyz":[0.309090357932322146,0.279685691249189849,0.507854472261534351],"hpluv":[278.160160819701673,84.5508603994872,59.8603319378123189],"hsluv":[278.160160819701673,37.7262541103550291,59.8603319378123189]},"#9988cc":{"lch":[60.55171199345871,53.9990869041691823,274.395593429514747],"luv":[60.55171199345871,4.13861667015410095,-53.8402566723222264],"rgb":[0.6,0.533333333333333326,0.8],"xyz":[0.3283827333760439,0.287402641426678651,0.609460982931804507],"hpluv":[274.395593429514747,113.161661700826286,60.55171199345871],"hsluv":[274.395593429514747,52.5240219153236723,60.55171199345871]},"#9988dd":{"lch":[61.3084150605589855,68.1648195931338563,272.216747448240312],"luv":[61.3084150605589855,2.63660773112319324,-68.1138086575451],"rgb":[0.6,0.533333333333333326,0.866666666666666696],"xyz":[0.349901058926677444,0.296009971646932157,0.722790830831810505],"hpluv":[272.216747448240312,141.084572716849891,61.3084150605589855],"hsluv":[272.216747448240312,67.8395486149695,61.3084150605589855]},"#9988ee":{"lch":[62.128875020953032,82.18421866163294,270.815422264053723],"luv":[62.128875020953032,1.1695901512833331,-82.1758958326656597],"rgb":[0.6,0.533333333333333326,0.933333333333333348],"xyz":[0.373713239192852154,0.305534843753402174,0.848201646900333728],"hpluv":[270.815422264053723,167.854994169255662,62.128875020953032],"hsluv":[270.815422264053723,83.6558877567472905,62.128875020953032]},"#9988ff":{"lch":[63.0111734122257303,95.9388777898474387,269.8490772999765],"luv":[63.0111734122257303,-0.252712116882344406,-95.9385449554102],"rgb":[0.6,0.533333333333333326,1],"xyz":[0.399884287602683575,0.316003263117334898,0.986035835192115462],"hpluv":[269.8490772999765,193.204124490752207,63.0111734122257303],"hsluv":[269.8490772999765,99.9999999999985363,63.0111734122257303]},"#bb8800":{"lch":[60.0458653136574,74.8864062555341832,55.056379834278971],"luv":[60.0458653136574,42.8926945435799,61.3855894869476728],"rgb":[0.733333333333333282,0.533333333333333326,0],"xyz":[0.292968333781028434,0.281742815587005313,0.038952034563401107],"hpluv":[55.056379834278971,158.255644288368103,60.0458653136574],"hsluv":[55.056379834278971,100.000000000002288,60.0458653136574]},"#bb8811":{"lch":[60.0822560315187957,73.5298298886522161,54.5759299869630823],"luv":[60.0822560315187957,42.619621560372849,59.9183089005750773],"rgb":[0.733333333333333282,0.533333333333333326,0.0666666666666666657],"xyz":[0.293979999280665538,0.282147481786860166,0.0442801395281567367],"hpluv":[54.5759299869630823,155.294707870281485,60.0822560315187957],"hsluv":[54.5759299869630823,97.6878818876268866,60.0822560315187957]},"#bb8822":{"lch":[60.1496227929862499,71.0610449842002367,53.6488709316330343],"luv":[60.1496227929862499,42.1201645307819774,57.2325419158225586],"rgb":[0.733333333333333282,0.533333333333333326,0.133333333333333331],"xyz":[0.295855357419142595,0.282897625042250966,0.0541570257241359362],"hpluv":[53.6488709316330343,149.912555699661567,60.1496227929862499],"hsluv":[53.6488709316330343,93.46183514856709,60.1496227929862499]},"#bb8833":{"lch":[60.2602822329103844,67.1261991777524,52.0115270519145412],"luv":[60.2602822329103844,41.3163720666953154,52.9044801061090197],"rgb":[0.733333333333333282,0.533333333333333326,0.2],"xyz":[0.298943108151600301,0.284132725335234093,0.0704191795817470795],"hpluv":[52.0115270519145412,141.351435183858257,60.2602822329103844],"hsluv":[52.0115270519145412,86.668700859176,60.2602822329103844]},"#bb8844":{"lch":[60.4194844691316746,61.7320119628667285,49.374045706205429],"luv":[60.4194844691316746,40.1948297943626258,46.8531424643613406],"rgb":[0.733333333333333282,0.533333333333333326,0.266666666666666663],"xyz":[0.303401103395819216,0.285915923432921659,0.093897954534633718],"hpluv":[49.374045706205429,129.650066203053939,60.4194844691316746],"hsluv":[49.374045706205429,77.207197386412,60.4194844691316746]},"#bb8855":{"lch":[60.6313805732006585,55.0590005000961682,45.2500033552910708],"luv":[60.6313805732006585,38.7623447760430935,39.1020992215604082],"rgb":[0.733333333333333282,0.533333333333333326,0.333333333333333315],"xyz":[0.309363517435181201,0.28830088904866652,0.125300001808607619],"hpluv":[45.2500033552910708,115.231228654446355,60.6313805732006585],"hsluv":[45.2500033552910708,65.1528926573884775,60.6313805732006585]},"#bb8866":{"lch":[60.8992588402534949,47.519038379270981,38.7816256818529581],"luv":[60.8992588402534949,37.0429375720225096,29.7637327048519147],"rgb":[0.733333333333333282,0.533333333333333326,0.4],"xyz":[0.316948513208689386,0.291334887358069838,0.165247646215751581],"hpluv":[38.7816256818529581,99.0136254476035305,60.8992588402534949],"hsluv":[38.7816256818529581,50.7321114426118,60.8992588402534949]},"#bb8877":{"lch":[61.2256685857267087,39.8992767652027354,28.4701407483744688],"luv":[61.2256685857267087,35.0740840991728362,19.0200134329710231],"rgb":[0.733333333333333282,0.533333333333333326,0.466666666666666674],"xyz":[0.326262526228891292,0.295060492566150634,0.21430144812214949],"hpluv":[28.4701407483744688,82.6933933486175761,61.2256685857267087],"hsluv":[28.4701407483744688,34.2887258466009897,61.2256685857267087]},"#bb8888":{"lch":[61.6124959728340684,33.6595928281588499,12.1770506300623627],"luv":[61.6124959728340684,32.9022674846918903,7.09992843085263114],"rgb":[0.733333333333333282,0.533333333333333326,0.533333333333333326],"xyz":[0.337402943330835092,0.299516659406928232,0.272974311525721658],"hpluv":[12.1770506300623627,69.3233245158679,61.6124959728340684],"hsluv":[12.1770506300623627,26.8235367690150284,61.6124959728340684]},"#bb8899":{"lch":[62.0610184830546388,31.1131530731089718,349.361203223606594],"luv":[62.0610184830546388,30.5783355372127765,-5.74401339869088723],"rgb":[0.733333333333333282,0.533333333333333326,0.6],"xyz":[0.350459907439907847,0.304739445050557389,0.341740989166839593],"hpluv":[349.361203223606594,63.6157209963685091,62.0610184830546388],"hsluv":[349.361203223606594,28.7433747177793393,62.0610184830546388]},"#bb88aa":{"lch":[62.5719506337331097,34.1093853871598185,325.627133749050586],"luv":[62.5719506337331097,28.1532372220531357,-19.2573467904743723],"rgb":[0.733333333333333282,0.533333333333333326,0.66666666666666663],"xyz":[0.365517600405160348,0.310762522236658512,0.421044838783838193],"hpluv":[325.627133749050586,69.1725086761469328,62.5719506337331097],"hsluv":[325.627133749050586,30.7007491098828176,62.5719506337331097]},"#bb88bb":{"lch":[63.1454872588298,41.9701566603395477,307.715012949246614],"luv":[63.1454872588298,25.674586077978244,-33.2010493782640808],"rgb":[0.733333333333333282,0.533333333333333326,0.733333333333333282],"xyz":[0.382655192512497,0.31761755907959327,0.51130282388247994],"hpluv":[307.715012949246614,84.3407770596407,63.1454872588298],"hsluv":[307.715012949246614,32.6446535119142354,63.1454872588298]},"#bb88cc":{"lch":[63.7813474201422,52.7335158558763055,296.081540752202443],"luv":[63.7813474201422,23.1842810338905281,-47.3636232510092228],"rgb":[0.733333333333333282,0.533333333333333326,0.8],"xyz":[0.401947567956218776,0.325334509257082072,0.612909334552750096],"hpluv":[296.081540752202443,104.913738848088499,63.7813474201422],"hsluv":[296.081540752202443,48.441096457031712,63.7813474201422]},"#bb88dd":{"lch":[64.4788201663492089,64.9599578897110916,288.597779393076337],"luv":[64.4788201663492089,20.7171971389296665,-61.56779898404492],"rgb":[0.733333333333333282,0.533333333333333326,0.866666666666666696],"xyz":[0.423465893506852264,0.333941839477335578,0.726239182452756094],"hpluv":[288.597779393076337,127.840358269428478,64.4788201663492089],"hsluv":[288.597779393076337,64.9415793589177,64.4788201663492089]},"#bb88ee":{"lch":[65.2368122498474463,77.8541115668441392,283.595470556329246],"luv":[65.2368122498474463,18.300798164755431,-75.6726071600252084],"rgb":[0.733333333333333282,0.533333333333333326,0.933333333333333348],"xyz":[0.44727807377302703,0.343466711583805595,0.851649998521279317],"hpluv":[283.595470556329246,151.435657753316406,65.2368122498474463],"hsluv":[283.595470556329246,82.1213401763518789,65.2368122498474463]},"#bb88ff":{"lch":[66.0538972531437452,90.9819525935223652,280.100148709787334],"luv":[66.0538972531437452,15.9554396417090967,-89.5719802369565201],"rgb":[0.733333333333333282,0.533333333333333326,1],"xyz":[0.473449122182858395,0.353935130947738319,0.989484186813061162],"hpluv":[280.100148709787334,174.781769995450787,66.0538972531437452],"hsluv":[280.100148709787334,99.99999999999838,66.0538972531437452]},"#999900":{"lch":[61.2683639221826866,67.5422828804358772,85.8743202181747449],"luv":[61.2683639221826866,4.85929488236129092,67.3672563635114869],"rgb":[0.6,0.6,0],"xyz":[0.245273099653321058,0.295550148661537559,0.0441268830932777384],"hpluv":[85.8743202181747449,139.887458074797593,61.2683639221826866],"hsluv":[85.8743202181747449,100.000000000002359,61.2683639221826866]},"#999911":{"lch":[61.3036130280217861,66.0751339072958785,85.8743202181746881],"luv":[61.3036130280217861,4.75374160235953358,65.9039093047224185],"rgb":[0.6,0.6,0.0666666666666666657],"xyz":[0.24628476515295819,0.295954814861392412,0.0494549880580333681],"hpluv":[85.8743202181746881,136.770144995815713,61.3036130280217861],"hsluv":[85.8743202181746881,97.7715564197957718,61.3036130280217861]},"#999922":{"lch":[61.3688705786650104,63.38848415762304,85.8743202181745744],"luv":[61.3688705786650104,4.56045196477970372,63.2242216375825663],"rgb":[0.6,0.6,0.133333333333333331],"xyz":[0.248160123291435192,0.296704958116783213,0.0593318742540125676],"hpluv":[85.8743202181745744,131.069475710796667,61.3688705786650104],"hsluv":[85.8743202181745744,93.6963738669960691,61.3688705786650104]},"#999933":{"lch":[61.4760769955270945,59.0559618954583243,85.8743202181743754],"luv":[61.4760769955270945,4.24875087387181871,58.9029265097210484],"rgb":[0.6,0.6,0.2],"xyz":[0.251247874023892925,0.29794005840976634,0.0755940281116237178],"hpluv":[85.8743202181743754,121.898097720990123,61.4760769955270945],"hsluv":[85.8743202181743754,87.1401192062652683,61.4760769955270945]},"#999944":{"lch":[61.6303367515695,52.9921690524208,85.8743202181739775],"luv":[61.6303367515695,3.81249440942850049,52.8548471500809569],"rgb":[0.6,0.6,0.266666666666666663],"xyz":[0.255705869268111841,0.299723256507453906,0.0990728030645103563],"hpluv":[85.8743202181739775,109.10797160418339,61.6303367515695],"hsluv":[85.8743202181739775,77.9969649215058,61.6303367515695]},"#999955":{"lch":[61.8357003743425935,45.2147461889200173,85.8743202181734517],"luv":[61.8357003743425935,3.25295171251598125,45.0975784059909],"rgb":[0.6,0.6,0.333333333333333315],"xyz":[0.261668283307473826,0.302108222123198766,0.130474850338484272],"hpluv":[85.8743202181734517,92.7855058259100218,61.8357003743425935],"hsluv":[85.8743202181734517,66.3286810003367577,61.8357003743425935]},"#999966":{"lch":[62.0953945325949377,35.8293841981041083,85.874320218172457],"luv":[62.0953945325949377,2.57772666020637553,35.7365372872164784],"rgb":[0.6,0.6,0.4],"xyz":[0.269253279080982,0.305142220432602085,0.170422494745628206],"hpluv":[85.874320218172457,73.2182390722606,62.0953945325949377],"hsluv":[85.874320218172457,52.3408174542086542,62.0953945325949377]},"#999977":{"lch":[62.4119425079225749,25.0116267171883422,85.8743202181703],"luv":[62.4119425079225749,1.79944864939855109,24.9468125338318],"rgb":[0.6,0.6,0.466666666666666674],"xyz":[0.278567292101183916,0.30886782564068288,0.219476296652026115],"hpluv":[85.8743202181703,50.8526471570801775,62.4119425079225749],"hsluv":[85.8743202181703,36.3525421484824918,62.4119425079225749]},"#999988":{"lch":[62.7872374999600567,12.9853368609797517,85.8743202181639589],"luv":[62.7872374999600567,0.934223397011331502,12.9516871502363],"rgb":[0.6,0.6,0.533333333333333326],"xyz":[0.289707709203127717,0.313323992481460478,0.27814916005559831],"hpluv":[85.8743202181639589,26.2434647477884546,62.7872374999600567],"hsluv":[85.8743202181639589,18.7604129126121961,62.7872374999600567]},"#999999":{"lch":[63.2225945523589843,3.33307052034688283e-12,0],"luv":[63.2225945523589843,3.14807442966336163e-12,1.09498241031769098e-12],"rgb":[0.6,0.6,0.6],"xyz":[0.302764673312200472,0.318546778125089636,0.346915837696716189],"hpluv":[0,6.68977504875838914e-12,63.2225945523589843],"hsluv":[0,3.10313074237261963e-12,63.2225945523589843]},"#9999aa":{"lch":[63.7187933641432238,13.6904464527836414,265.874320218190064],"luv":[63.7187933641432238,-0.984952144759020598,-13.6549695477167123],"rgb":[0.6,0.6,0.66666666666666663],"xyz":[0.317822366277453,0.324569855311190758,0.42621968731371479],"hpluv":[265.874320218190064,27.2639887848552753,63.7187933641432238],"hsluv":[265.874320218190064,14.5770868731616492,63.7187933641432238]},"#9999bb":{"lch":[64.276118203606174,27.8450519356751158,265.874320218183641],"luv":[64.276118203606174,-2.00329797275791854,-27.7728953213882335],"rgb":[0.6,0.6,0.733333333333333282],"xyz":[0.334959958384789647,0.331424892154125517,0.516477672412356537],"hpluv":[265.874320218183641,54.9715165011475904,64.276118203606174],"hsluv":[265.874320218183641,30.0955931685464577,64.276118203606174]},"#9999cc":{"lch":[64.8943980299807635,42.2483295275786332,265.874320218181538],"luv":[64.8943980299807635,-3.03953438803302189,-42.138848804575062],"rgb":[0.6,0.6,0.8],"xyz":[0.354252333828511401,0.339141842331614318,0.618084183082626692],"hpluv":[265.874320218181538,82.6117192029769,64.8943980299807635],"hsluv":[265.874320218181538,46.4456834766813316,64.8943980299807635]},"#9999dd":{"lch":[65.5730481583578353,56.7175687031348,265.874320218180458],"luv":[65.5730481583578353,-4.08051637559571567,-56.570592941061804],"rgb":[0.6,0.6,0.866666666666666696],"xyz":[0.375770659379144889,0.347749172551867824,0.73141403098263269],"hpluv":[265.874320218180458,109.756831209262941,65.5730481583578353],"hsluv":[265.874320218180458,63.5568222493012627,65.5730481583578353]},"#9999ee":{"lch":[66.311113738117,71.1055788100052695,265.874320218179832],"luv":[66.311113738117,-5.11565437949467672,-70.9213185027987691],"rgb":[0.6,0.6,0.933333333333333348],"xyz":[0.399582839645319654,0.357274044658337842,0.856824847051155913],"hpluv":[265.874320218179832,136.068212717368169,66.311113738117],"hsluv":[265.874320218179832,81.4020980414818922,66.311113738117]},"#9999ff":{"lch":[67.1073146704137145,85.2999068143523829,265.874320218179378],"luv":[67.1073146704137145,-6.13685802391602486,-85.0788638624864149],"rgb":[0.6,0.6,1],"xyz":[0.425753888055151,0.367742464022270565,0.994659035342937758],"hpluv":[265.874320218179378,161.293929533565688,67.1073146704137145],"hsluv":[265.874320218179378,99.9999999999983,67.1073146704137145]},"#bb9900":{"lch":[64.4418646198176219,74.1135014806344117,66.2793330800256228],"luv":[64.4418646198176219,29.8142337654579457,67.8522112145111],"rgb":[0.733333333333333282,0.6,0],"xyz":[0.318837934233495934,0.333482016491941036,0.047575234714223362],"hpluv":[66.2793330800256228,145.938057142603384,64.4418646198176219],"hsluv":[66.2793330800256228,100.000000000002416,64.4418646198176219]},"#bb9911":{"lch":[64.4743890579801331,72.806990252212529,65.9899074816349],"luv":[64.4743890579801331,29.6249863695688624,66.5072778888794147],"rgb":[0.733333333333333282,0.6,0.0666666666666666657],"xyz":[0.319849599733133039,0.333886682691795889,0.0529033396789789917],"hpluv":[65.9899074816349,143.29306400111571,64.4743890579801331],"hsluv":[65.9899074816349,98.0367215419372542,64.4743890579801331]},"#bb9922":{"lch":[64.5346112536789,70.4161712525116599,65.4311312102869636],"luv":[64.5346112536789,29.2781077929992222,64.0408430450799671],"rgb":[0.733333333333333282,0.6,0.133333333333333331],"xyz":[0.321724957871610096,0.334636825947186689,0.0627802258749581843],"hpluv":[65.4311312102869636,138.458312961065701,64.5346112536789],"hsluv":[65.4311312102869636,94.4406497380354892,64.5346112536789]},"#bb9933":{"lch":[64.6335704733000398,66.566957174521292,64.4427367566729146],"luv":[64.6335704733000398,28.7178476591491503,60.0536844273559396],"rgb":[0.733333333333333282,0.6,0.2],"xyz":[0.324812708604067801,0.335871926240169816,0.0790423797325693345],"hpluv":[64.4427367566729146,130.689255588928205,64.6335704733000398],"hsluv":[64.4427367566729146,88.6394107340449153,64.6335704733000398]},"#bb9944":{"lch":[64.7760175449466828,61.1991201001527685,62.8442649593615386],"luv":[64.7760175449466828,27.9319304868930693,54.4530950480162872],"rgb":[0.733333333333333282,0.6,0.266666666666666663],"xyz":[0.329270703848286717,0.337655124337857382,0.102521154685455973],"hpluv":[62.8442649593615386,119.886494259466,64.7760175449466828],"hsluv":[62.8442649593615386,80.5164965868838607,64.7760175449466828]},"#bb9955":{"lch":[64.965753761967747,54.3684881208399204,60.3198292286154],"luv":[64.965753761967747,26.9209928274273445,47.235501963369849],"rgb":[0.733333333333333282,0.6,0.333333333333333315],"xyz":[0.335233117887648702,0.340040089953602243,0.133923201959429888],"hpluv":[60.3198292286154,106.194518749025775,64.965753761967747],"hsluv":[60.3198292286154,70.0945405394646883,64.965753761967747]},"#bb9966":{"lch":[65.2058459998609,46.2670609228556557,56.2614414361724258],"luv":[65.2058459998609,25.6969192719684436,38.4747874116176689],"rgb":[0.733333333333333282,0.6,0.4],"xyz":[0.342818113661156887,0.343074088263005561,0.17387084636657385],"hpluv":[56.2614414361724258,90.0377647384168,65.2058459998609],"hsluv":[56.2614414361724258,57.5177389460533064,65.2058459998609]},"#bb9977":{"lch":[65.4987393303808147,37.2952826673053153,49.3796729345645886],"luv":[65.4987393303808147,24.280853083902965,28.3086255892461871],"rgb":[0.733333333333333282,0.6,0.466666666666666674],"xyz":[0.352132126681358792,0.346799693471086357,0.222924648272971759],"hpluv":[49.3796729345645886,72.2537327682772172,65.4987393303808147],"hsluv":[49.3796729345645886,43.0302399575574199,65.4987393303808147]},"#bb9988":{"lch":[65.8463246780106601,28.3139420599436384,36.7022131699001193],"luv":[65.8463246780106601,22.7007755052872291,16.9220006628175241],"rgb":[0.733333333333333282,0.6,0.533333333333333326],"xyz":[0.363272543783302593,0.351255860311863954,0.281597511676543899],"hpluv":[36.7022131699001193,54.564242001153282,65.8463246780106601],"hsluv":[36.7022131699001193,26.9495650592517677,65.8463246780106601]},"#bb9999":{"lch":[66.2499853133799377,21.4719543680734333,12.1770506300627517],"luv":[66.2499853133799377,20.9888452793887552,4.52914983440691099],"rgb":[0.733333333333333282,0.6,0.6],"xyz":[0.376329507892375292,0.356478645955493112,0.350364189317661834],"hpluv":[12.1770506300627517,41.1268186121042731,66.2499853133799377],"hsluv":[12.1770506300627517,20.948078856310218,66.2499853133799377]},"#bb99aa":{"lch":[66.7106335886793715,21.0368039825091344,335.738246937474969],"luv":[66.7106335886793715,19.1787866223333445,-8.64414631375011489],"rgb":[0.733333333333333282,0.6,0.66666666666666663],"xyz":[0.391387200857627848,0.362501723141594234,0.429668038934660435],"hpluv":[335.738246937474969,40.0151105801343192,66.7106335886793715],"hsluv":[335.738246937474969,22.766845509204984,66.7106335886793715]},"#bb99bb":{"lch":[67.2287438260669887,28.2861274819753,307.715012949249171],"luv":[67.2287438260669887,17.3035955220760833,-22.3761165070024362],"rgb":[0.733333333333333282,0.6,0.733333333333333282],"xyz":[0.408524792964964523,0.369356759984529,0.519926024033302125],"hpluv":[307.715012949249171,53.3897422679679323,67.2287438260669887],"hsluv":[307.715012949249171,24.5905380245485432,67.2287438260669887]},"#bb99cc":{"lch":[67.8043844715017343,39.5775547497090656,292.889275489017223],"luv":[67.8043844715017343,15.393749985076461,-36.4611478338680044],"rgb":[0.733333333333333282,0.6,0.8],"xyz":[0.427817168408686221,0.377073710162017794,0.621532534703572281],"hpluv":[292.889275489017223,74.0679810995506642,67.8043844715017343],"hsluv":[292.889275489017223,42.0187450252511,67.8043844715017343]},"#bb99dd":{"lch":[68.4372510447458353,52.4777928084534082,284.879936967142157],"luv":[68.4372510447458353,13.4760025497769718,-50.718005612655638],"rgb":[0.733333333333333282,0.6,0.866666666666666696],"xyz":[0.449335493959319821,0.385681040382271301,0.734862382603578279],"hpluv":[284.879936967142157,97.3021261982971737,68.4372510447458353],"hsluv":[284.879936967142157,60.4059975969609724,68.4372510447458353]},"#bb99ee":{"lch":[69.1267004581107898,66.0165196934359244,280.096152477623832],"luv":[69.1267004581107898,11.5727364631099334,-64.9942508472035456],"rgb":[0.733333333333333282,0.6,0.933333333333333348],"xyz":[0.47314767422549453,0.395205912488741318,0.860273198672101502],"hpluv":[280.096152477623832,121.184234531677617,69.1267004581107898],"hsluv":[280.096152477623832,79.7264365589122548,69.1267004581107898]},"#bb99ff":{"lch":[69.8717866786541,79.7596884688517207,276.986638727898821],"luv":[69.8717866786541,9.70179942494587877,-79.1674364405365765],"rgb":[0.733333333333333282,0.6,1],"xyz":[0.499318722635325951,0.405674331852674042,0.998107386963883347],"hpluv":[276.986638727898821,144.850809586534439,69.8717866786541],"hsluv":[276.986638727898821,99.9999999999980247,69.8717866786541]},"#880000":{"lch":[27.3946073685119416,92.1289276169810876,12.1770506300617765],"luv":[27.3946073685119416,90.0560691570773,19.4330571920800175],"rgb":[0.533333333333333326,0,0],"xyz":[0.101531161901381561,0.0523520053554009795,0.00475927321412716],"hpluv":[12.1770506300617765,426.746789183125316,27.3946073685119416],"hsluv":[12.1770506300617765,100.000000000002245,27.3946073685119416]},"#880011":{"lch":[27.5061298630582485,89.4551794237446529,10.4692299831444977],"luv":[27.5061298630582485,87.9659862388495242,16.254672889999533],"rgb":[0.533333333333333326,0,0.0666666666666666657],"xyz":[0.10254282740101868,0.0527566715552558324,0.0100873781788827915],"hpluv":[10.4692299831444977,412.68181181873,27.5061298630582485],"hsluv":[10.4692299831444977,99.9999999999965,27.5061298630582485]},"#880022":{"lch":[27.711363673312789,85.0234292319238421,7.23413932290422057],"luv":[27.711363673312789,84.3466296586470463,10.7065206104973338],"rgb":[0.533333333333333326,0,0.133333333333333331],"xyz":[0.104418185539495709,0.0535068148106466537,0.0199642643748619876],"hpluv":[7.23413932290422057,389.331950846774873,27.711363673312789],"hsluv":[7.23413932290422057,99.9999999999967,27.711363673312789]},"#880033":{"lch":[28.0451389930846,79.0521177396887396,1.75350406004841131],"luv":[28.0451389930846,79.0150993176991392,2.41896650323101259],"rgb":[0.533333333333333326,0,0.2],"xyz":[0.107505936271953442,0.0547419151036297666,0.0362264182324731343],"hpluv":[1.75350406004841131,357.680479105960103,28.0451389930846],"hsluv":[1.75350406004841131,99.9999999999969589,28.0451389930846]},"#880044":{"lch":[28.5182895144164306,72.8806899851902585,353.674121255230034],"luv":[28.5182895144164306,72.4369406321056459,-8.0302306678086488],"rgb":[0.533333333333333326,0,0.266666666666666663],"xyz":[0.111963931516172316,0.0565251132013173396,0.0597051931853597728],"hpluv":[353.674121255230034,324.286096087098713,28.5182895144164306],"hsluv":[353.674121255230034,99.9999999999972857,28.5182895144164306]},"#880055":{"lch":[29.1358047874334787,68.1690091719341922,343.056201782139055],"luv":[29.1358047874334787,65.2098664506571453,-19.866734230132252],"rgb":[0.533333333333333326,0,0.333333333333333315],"xyz":[0.117926345555534315,0.0589100788170621725,0.0911072404593336743],"hpluv":[343.056201782139055,296.892542908362316,29.1358047874334787],"hsluv":[343.056201782139055,99.9999999999977405,29.1358047874334787]},"#880066":{"lch":[29.8977347275108087,66.3157421691867768,330.790160549998632],"luv":[29.8977347275108087,57.8829185884671915,-32.3627161272186115],"rgb":[0.533333333333333326,0,0.4],"xyz":[0.125511341329042486,0.0619440771264654841,0.13105488486647765],"hpluv":[330.790160549998632,281.460643767249167,29.8977347275108087],"hsluv":[330.790160549998632,99.9999999999981384,29.8977347275108087]},"#880077":{"lch":[30.8000475559674527,67.8890879971799,318.512376228514142],"luv":[30.8000475559674527,50.8556366042998462,-44.9736866918894549],"rgb":[0.533333333333333326,0,0.466666666666666674],"xyz":[0.13482535434924442,0.0656696823345463,0.180108686772875559],"hpluv":[318.512376228514142,279.697068124812404,30.8000475559674527],"hsluv":[318.512376228514142,99.9999999999984652,30.8000475559674527]},"#880088":{"lch":[31.8355421357531156,72.5162027692933862,307.715012949243601],"luv":[31.8355421357531156,44.3606514294377803,-57.3649045046986288],"rgb":[0.533333333333333326,0,0.533333333333333326],"xyz":[0.14596577145118822,0.0701258491753239,0.238781550176447727],"hpluv":[307.715012949243601,289.042783730483279,31.8355421357531156],"hsluv":[307.715012949243601,99.9999999999987921,31.8355421357531156]},"#880099":{"lch":[32.9947769935272675,79.3376809512942,299.026215263792551],"luv":[32.9947769935272675,38.4954159686478121,-69.3726932454703444],"rgb":[0.533333333333333326,0,0.6],"xyz":[0.159022735560260947,0.0753486348189530558,0.307548227817565634],"hpluv":[299.026215263792551,305.122076286487129,32.9947769935272675],"hsluv":[299.026215263792551,99.9999999999991189,32.9947769935272675]},"#8800aa":{"lch":[34.2669429307518527,87.5167556566874651,292.341813883439613],"luv":[34.2669429307518527,33.2678552259606306,-80.9470958672197298],"rgb":[0.533333333333333326,0,0.66666666666666663],"xyz":[0.174080428525513475,0.0813717120050541642,0.386852077434564234],"hpluv":[292.341813883439613,324.082197305514,34.2669429307518527],"hsluv":[292.341813883439613,99.9999999999993605,34.2669429307518527]},"#8800bb":{"lch":[35.6406160405817047,96.4510237672048589,287.271351738157534],"luv":[35.6406160405817047,28.6360630376966157,-92.1019862947753296],"rgb":[0.533333333333333326,0,0.733333333333333282],"xyz":[0.19121802063285015,0.0882267488479889228,0.477110062533206],"hpluv":[287.271351738157534,343.400533998367337,35.6406160405817047],"hsluv":[287.271351738157534,99.999999999999531,35.6406160405817047]},"#8800cc":{"lch":[37.1043554501127346,105.765919518381835,283.413875530142832],"luv":[37.1043554501127346,24.5359458020369345,-102.880596300606314],"rgb":[0.533333333333333326,0,0.8],"xyz":[0.210510396076571876,0.0959436990254777244,0.578716573203476137],"hpluv":[283.413875530142832,361.709723992276565,37.1043554501127346],"hsluv":[283.413875530142832,99.9999999999998,37.1043554501127346]},"#8800dd":{"lch":[38.6471386159700145,115.245648848701009,280.44740978906907],"luv":[38.6471386159700145,20.8978330626497737,-113.335079087825761],"rgb":[0.533333333333333326,0,0.866666666666666696],"xyz":[0.23202872162720542,0.104551029245731258,0.692046421103482134],"hpluv":[280.44740978906907,378.39598449622531,38.6471386159700145],"hsluv":[280.44740978906907,99.9999999999998863,38.6471386159700145]},"#8800ee":{"lch":[40.258648150966188,124.7713904223,278.13468614008417],"luv":[40.258648150966188,17.6552208530237813,-123.515962711485074],"rgb":[0.533333333333333326,0,0.933333333333333348],"xyz":[0.255840901893380157,0.114075901352201275,0.817457237172005358],"hpluv":[278.13468614008417,393.273926011730225,40.258648150966188],"hsluv":[278.13468614008417,99.9999999999999858,40.258648150966188]},"#8800ff":{"lch":[41.9294357887748674,134.280036872974534,276.305800055850909],"luv":[41.9294357887748674,14.7486383519278057,-133.467621426964229],"rgb":[0.533333333333333326,0,1],"xyz":[0.282011950303211578,0.124544320716133985,0.955291425463787203],"hpluv":[276.305800055850909,406.37947026199555,41.9294357887748674],"hsluv":[276.305800055850909,100.000000000000171,41.9294357887748674]},"#aa0000":{"lch":[35.0982840320529732,118.036634932245676,12.1770506300617765],"luv":[35.0982840320529732,115.380864984340803,24.8978549596859438],"rgb":[0.66666666666666663,0,0],"xyz":[0.165771937912151307,0.08547615548595483,0.00777055958963192815],"hpluv":[12.1770506300617765,426.746789183125145,35.0982840320529732],"hsluv":[12.1770506300617765,100.000000000002217,35.0982840320529732]},"#aa0011":{"lch":[35.178794604810534,115.883637018633408,11.1343823918443601],"luv":[35.178794604810534,113.702354404428164,22.3783808966644813],"rgb":[0.66666666666666663,0,0.0666666666666666657],"xyz":[0.166783603411788439,0.0858808216858096829,0.0130986645543875596],"hpluv":[11.1343823918443601,418.004049663923468,35.178794604810534],"hsluv":[11.1343823918443601,99.9999999999964473,35.178794604810534]},"#aa0022":{"lch":[35.327373324777,112.154849255399441,9.17432067350408431],"luv":[35.327373324777,110.720144559212301,17.8818287736043224],"rgb":[0.66666666666666663,0,0.133333333333333331],"xyz":[0.16865896155026544,0.0866309649412005,0.0229755507503667557],"hpluv":[9.17432067350408431,402.852473647417696,35.327373324777],"hsluv":[9.17432067350408431,99.9999999999965752,35.327373324777]},"#aa0033":{"lch":[35.5701485089931921,106.706281850707128,5.8788523359554592],"luv":[35.5701485089931921,106.14508040487398,10.9294323844098908],"rgb":[0.66666666666666663,0,0.2],"xyz":[0.171746712282723202,0.0878660652341836101,0.0392377046079779],"hpluv":[5.8788523359554592,380.665602767339294,35.5701485089931921],"hsluv":[5.8788523359554592,99.9999999999967741,35.5701485089931921]},"#aa0044":{"lch":[35.9166782648329104,100.198740700315142,1.0062433800652546],"luv":[35.9166782648329104,100.183288799466339,1.75962588401964615],"rgb":[0.66666666666666663,0,0.266666666666666663],"xyz":[0.176204707526942062,0.0896492633318711901,0.0627164795608645409],"hpluv":[1.0062433800652546,354.001763490246503,35.9166782648329104],"hsluv":[1.0062433800652546,99.999999999997,35.9166782648329104]},"#aa0055":{"lch":[36.3730398367095,93.6502679946689369,354.384147096436777],"luv":[36.3730398367095,93.2007806216229113,-9.16445235643848832],"rgb":[0.66666666666666663,0,0.333333333333333315],"xyz":[0.182167121566304047,0.092034228947616023,0.0941185268348384424],"hpluv":[354.384147096436777,326.714758289773386,36.3730398367095],"hsluv":[354.384147096436777,99.9999999999973,36.3730398367095]},"#aa0066":{"lch":[36.9423385777606228,88.2319659172366926,346.039412913085584],"luv":[36.9423385777606228,85.6257622699194,-21.2863488018886251],"rgb":[0.66666666666666663,0,0.4],"xyz":[0.189752117339812232,0.0950682272570193415,0.134066171241982418],"hpluv":[346.039412913085584,303.068568849792825,36.9423385777606228],"hsluv":[346.039412913085584,99.9999999999976126,36.9423385777606228]},"#aa0077":{"lch":[37.6250775946346891,84.9907340508927689,336.365700313169],"luv":[37.6250775946346891,77.8619577045834319,-34.0725757306260348],"rgb":[0.66666666666666663,0,0.466666666666666674],"xyz":[0.199066130360014137,0.0987938324651001509,0.183119973148380327],"hpluv":[336.365700313169,286.637826777930513,37.6250775946346891],"hsluv":[336.365700313169,99.9999999999979536,37.6250775946346891]},"#aa0088":{"lch":[38.4195160158879432,84.5572797483387717,326.161033183527252],"luv":[38.4195160158879432,70.2337789048813761,-47.0866208086656215],"rgb":[0.66666666666666663,0,0.533333333333333326],"xyz":[0.210206547461958,0.103249999305877749,0.241792836551952495],"hpluv":[326.161033183527252,279.279102381419364,38.4195160158879432],"hsluv":[326.161033183527252,99.9999999999982379,38.4195160158879432]},"#aa0099":{"lch":[39.3220484546604681,86.9871636461465272,316.374304421046759],"luv":[39.3220484546604681,62.9667468975572859,-60.0162929906574334],"rgb":[0.66666666666666663,0,0.6],"xyz":[0.223263511571030693,0.108472784949506906,0.310559514193070374],"hpluv":[316.374304421046759,280.710309296009257,39.3220484546604681],"hsluv":[316.374304421046759,99.9999999999986,39.3220484546604681]},"#aa00aa":{"lch":[40.3276007574525863,91.8597353001339627,307.715012949243601],"luv":[40.3276007574525863,56.1937545325413,-72.6668626056414411],"rgb":[0.66666666666666663,0,0.66666666666666663],"xyz":[0.238321204536283249,0.114495862135608,0.389863363810069],"hpluv":[307.715012949243601,289.042783730483393,40.3276007574525863],"hsluv":[307.715012949243601,99.9999999999988205,40.3276007574525863]},"#aa00bb":{"lch":[41.4300227805658849,98.5480850422065089,300.471226581677797],"luv":[41.4300227805658849,49.974285465742625,-84.9370111180893304],"rgb":[0.66666666666666663,0,0.733333333333333282],"xyz":[0.255458796643619868,0.121350898978542759,0.480121348908710721],"hpluv":[300.471226581677797,301.836908489583834,41.4300227805658849],"hsluv":[300.471226581677797,99.9999999999990621,41.4300227805658849]},"#aa00cc":{"lch":[42.6224565622471445,106.453892931925211,294.601049164416338],"luv":[42.6224565622471445,44.3164832708711813,-96.7909119228886681],"rgb":[0.66666666666666663,0,0.8],"xyz":[0.274751172087341622,0.129067849156031561,0.581727859578980877],"hpluv":[294.601049164416338,316.929304470761622,42.6224565622471445],"hsluv":[294.601049164416338,99.9999999999992895,42.6224565622471445]},"#aa00dd":{"lch":[43.8976622887243266,115.112632227118652,289.907671140995035],"luv":[43.8976622887243266,39.1964773946494063,-108.233794436426436],"rgb":[0.66666666666666663,0,0.866666666666666696],"xyz":[0.296269497637975165,0.137675179376285095,0.695057707478986875],"hpluv":[289.907671140995035,332.752186796280228,43.8976622887243266],"hsluv":[289.907671140995035,99.9999999999994174,43.8976622887243266]},"#aa00ee":{"lch":[45.2482911917969233,124.202454763835647,286.162342623679535],"luv":[45.2482911917969233,34.5729825657367655,-119.293581746345012],"rgb":[0.66666666666666663,0,0.933333333333333348],"xyz":[0.320081677904149875,0.14720005148275514,0.820468523547510098],"hpluv":[286.162342623679535,348.311106794177135,45.2482911917969233],"hsluv":[286.162342623679535,99.9999999999996589,45.2482911917969233]},"#aa00ff":{"lch":[46.667101462293175,133.514790614533382,283.159905061129905],"luv":[46.667101462293175,30.397247590160724,-130.008486845225434],"rgb":[0.66666666666666663,0,1],"xyz":[0.346252726313981296,0.157668470846687836,0.958302711839291943],"hpluv":[283.159905061129905,363.042841924949244,46.667101462293175],"hsluv":[283.159905061129905,99.9999999999998153,46.667101462293175]},"#881100":{"lch":[28.4751123640698864,88.1761994811112,13.8943544232398857],"luv":[28.4751123640698864,85.5961768878489124,21.1739617718743069],"rgb":[0.533333333333333326,0.0666666666666666657,0],"xyz":[0.103535562162309969,0.0563608058772578496,0.00542740663443661096],"hpluv":[13.8943544232398857,392.939109149716501,28.4751123640698864],"hsluv":[13.8943544232398857,100.000000000002331,28.4751123640698864]},"#881111":{"lch":[28.5813012406410962,85.6429421929893522,12.1770506300617782],"luv":[28.5813012406410962,83.7160154193071548,18.0649469909557752],"rgb":[0.533333333333333326,0.0666666666666666657,0.0666666666666666657],"xyz":[0.104547227661947087,0.0567654720771127,0.0107555115991922433],"hpluv":[12.1770506300617782,380.232213605760478,28.5813012406410962],"hsluv":[12.1770506300617782,89.1001931926906536,28.5813012406410962]},"#881122":{"lch":[28.776819878520115,81.4294437186752589,8.91447414891876377],"luv":[28.776819878520115,80.445837197505071,12.6183034487767767],"rgb":[0.533333333333333326,0.0666666666666666657,0.133333333333333331],"xyz":[0.106422585800424116,0.0575156153325035238,0.0206323977951714393],"hpluv":[8.91447414891876377,359.069069298387092,28.776819878520115],"hsluv":[8.91447414891876377,89.5522119422979,28.776819878520115]},"#881133":{"lch":[29.0950676619922959,75.7256767264573227,3.35964558590209394],"luv":[29.0950676619922959,75.5955308554484162,4.43777313107212557],"rgb":[0.533333333333333326,0.0666666666666666657,0.2],"xyz":[0.10951033653288185,0.0587507156254866367,0.0368945516527825826],"hpluv":[3.35964558590209394,330.265430862114329,29.0950676619922959],"hsluv":[3.35964558590209394,90.2199940579986475,29.0950676619922959]},"#881144":{"lch":[29.5467689283324617,69.8105982852884779,355.112641815866198],"luv":[29.5467689283324617,69.5567752183087435,-5.94765955478224484],"rgb":[0.533333333333333326,0.0666666666666666657,0.266666666666666663],"xyz":[0.113968331777100723,0.0605339137231742097,0.0603733266056692211],"hpluv":[355.112641815866198,299.81315922456514,29.5467689283324617],"hsluv":[355.112641815866198,91.0462468049379083,29.5467689283324617]},"#881155":{"lch":[30.1372440361953267,65.3247498846549,344.189828060851937],"luv":[30.1372440361953267,62.8534910411243928,-17.7977979378353552],"rgb":[0.533333333333333326,0.0666666666666666657,0.333333333333333315],"xyz":[0.119930745816462722,0.0629188793389190426,0.0917753738796431295],"hpluv":[344.189828060851937,275.05120204756264,30.1372440361953267],"hsluv":[344.189828060851937,91.9552565263170294,30.1372440361953267]},"#881166":{"lch":[30.8672249177773494,63.7021552959616173,331.50461515751158],"luv":[30.8672249177773494,55.9849923977636479,-30.3915319714745138],"rgb":[0.533333333333333326,0.0666666666666666657,0.4],"xyz":[0.127515741589970893,0.0659528776483223611,0.131723018286787091],"hpluv":[331.50461515751158,261.876101180723595,30.8672249177773494],"hsluv":[331.50461515751158,92.8754029221989299,30.8672249177773494]},"#881177":{"lch":[31.7336031237729514,65.5512880923603376,318.81152503011009],"luv":[31.7336031237729514,49.3304506912780525,-43.1680206305895737],"rgb":[0.533333333333333326,0.0666666666666666657,0.466666666666666674],"xyz":[0.136829754610172827,0.0696784828564031705,0.180776820193185],"hpluv":[318.81152503011009,262.120610410187965,31.7336031237729514],"hsluv":[318.81152503011009,93.7528273751248094,31.7336031237729514]},"#881188":{"lch":[32.7302234117729114,70.4946015177073377,307.715012949243658],"luv":[32.7302234117729114,43.1239685223607268,-55.7656900075914663],"rgb":[0.533333333333333326,0.0666666666666666657,0.533333333333333326],"xyz":[0.147970171712116627,0.0741346496971807684,0.239449683596757168],"hpluv":[307.715012949243658,273.304143969878908,32.7302234117729114],"hsluv":[307.715012949243658,94.5549099834012736,32.7302234117729114]},"#881199":{"lch":[33.8487030992268245,77.6382380820710836,298.861624073140206],"luv":[33.8487030992268245,37.4756592651389795,-67.9946393117248249],"rgb":[0.533333333333333326,0.0666666666666666657,0.6],"xyz":[0.161027135821189354,0.0793574353408099259,0.308216361237875103],"hpluv":[298.861624073140206,291.053592363859707,33.8487030992268245],"hsluv":[298.861624073140206,95.267111116431,33.8487030992268245]},"#8811aa":{"lch":[35.0792182273937954,86.1162494337963551,292.107316515455238],"luv":[35.0792182273937954,32.4092110837954692,-79.7850327659882623],"rgb":[0.533333333333333326,0.0666666666666666657,0.66666666666666663],"xyz":[0.176084828786441883,0.0853805125269110343,0.387520210854873703],"hpluv":[292.107316515455238,311.511817997128389,35.0792182273937954],"hsluv":[292.107316515455238,95.8874450484264571,35.0792182273937954]},"#8811bb":{"lch":[36.4111998559147381,95.3124415598142,287.019214731984619],"luv":[36.4111998559147381,27.8972267898096504,-91.1383906678789515],"rgb":[0.533333333333333326,0.0666666666666666657,0.733333333333333282],"xyz":[0.193222420893778557,0.0922355493698457929,0.47777819595351545],"hpluv":[287.019214731984619,332.16504711372977,36.4111998559147381],"hsluv":[287.019214731984619,96.4212920970111753,36.4111998559147381]},"#8811cc":{"lch":[37.8339039869932847,104.849214202707898,283.169050576302368],"luv":[37.8339039869932847,23.8872658659353974,-102.091900993053514],"rgb":[0.533333333333333326,0.0666666666666666657,0.8],"xyz":[0.212514796337500284,0.0999524995473346,0.579384706623785606],"hpluv":[283.169050576302368,351.660305548048939,37.8339039869932847],"hsluv":[283.169050576302368,96.8775739500717776,37.8339039869932847]},"#8811dd":{"lch":[39.3368423655390274,114.513051177954694,280.22024610097435],"luv":[39.3368423655390274,20.3183376083265372,-112.696069349906494],"rgb":[0.533333333333333326,0.0666666666666666657,0.866666666666666696],"xyz":[0.234033121888133827,0.108559829767588129,0.692714554523791604],"hpluv":[280.22024610097435,369.398236331583689,39.3368423655390274],"hsluv":[280.22024610097435,97.2663289333616348,39.3368423655390274]},"#8811ee":{"lch":[40.9100807353410261,124.189527798253138,277.928390028110698],"luv":[40.9100807353410261,17.130123009315259,-123.002429652583771],"rgb":[0.533333333333333326,0.0666666666666666657,0.933333333333333348],"xyz":[0.257845302154308564,0.118084701874058146,0.818125370592314827],"hpluv":[277.928390028110698,385.206818333834917,40.9100807353410261],"hsluv":[277.928390028110698,97.5973562787359867,40.9100807353410261]},"#8811ff":{"lch":[42.5444231432324926,133.820472646418182,276.120297984259253],"luv":[42.5444231432324926,14.2674470621751119,-133.057727523202459],"rgb":[0.533333333333333326,0.0666666666666666657,1],"xyz":[0.28401635056414,0.128553121237990842,0.955959558884096672],"hpluv":[276.120297984259253,399.134479754608662,42.5444231432324926],"hsluv":[276.120297984259253,99.9999999999993605,42.5444231432324926]},"#aa1100":{"lch":[35.8849415951509485,114.659477700983,13.2232466646238507],"luv":[35.8849415951509485,111.619416231509064,26.2278810962561089],"rgb":[0.66666666666666663,0.0666666666666666657,0],"xyz":[0.167776338173079714,0.0894849560078117,0.00843869300994137816],"hpluv":[13.2232466646238507,405.449754626827882,35.8849415951509485],"hsluv":[13.2232466646238507,100.000000000002245,35.8849415951509485]},"#aa1111":{"lch":[35.9630348414680086,112.584844162769954,12.1770506300617871],"luv":[35.9630348414680086,110.051736997450746,23.747890832642895],"rgb":[0.66666666666666663,0.0666666666666666657,0.0666666666666666657],"xyz":[0.168788003672716846,0.089889622207666553,0.0137667979746970096],"hpluv":[12.1770506300617871,397.249101663635656,35.9630348414680086],"hsluv":[12.1770506300617871,93.0877775141683514,35.9630348414680086]},"#aa1122":{"lch":[36.1071812157442409,108.986817867719594,10.2082214608018411],"luv":[36.1071812157442409,107.261576994584843,19.3152936702042],"rgb":[0.66666666666666663,0.0666666666666666657,0.133333333333333331],"xyz":[0.170663361811193848,0.0906397654630573674,0.0236436841706762074],"hpluv":[10.2082214608018411,383.018466712830786,36.1071812157442409],"hsluv":[10.2082214608018411,93.272361347425246,36.1071812157442409]},"#aa1133":{"lch":[36.3427932754706546,103.718469067724868,6.89182233030552727],"luv":[36.3427932754706546,102.969049051934846,12.4457126390109512],"rgb":[0.66666666666666663,0.0666666666666666657,0.2],"xyz":[0.173751112543651609,0.0918748657560404802,0.0399058380282873507],"hpluv":[6.89182233030552727,362.140519718911037,36.3427932754706546],"hsluv":[6.89182233030552727,93.5557024333493388,36.3427932754706546]},"#aa1144":{"lch":[36.6792659124992824,97.4113439982971698,1.97455903872184],"luv":[36.6792659124992824,97.3535035649005778,3.35637947697775552],"rgb":[0.66666666666666663,0.0666666666666666657,0.266666666666666663],"xyz":[0.178209107787870469,0.0936580638537280602,0.0633846129811739822],"hpluv":[1.97455903872184,336.99870087691761,36.6792659124992824],"hsluv":[1.97455903872184,93.9250914747756696,36.6792659124992824]},"#aa1155":{"lch":[37.1226754299384396,91.055498296574811,355.267689161716703],"luv":[37.1226754299384396,90.7450919896636634,-7.51212685096688926],"rgb":[0.66666666666666663,0.0666666666666666657,0.333333333333333315],"xyz":[0.184171521827232454,0.0960430294694729,0.0947866602551479],"hpluv":[355.267689161716703,311.247759321881176,37.1226754299384396],"hsluv":[355.267689161716703,94.3576556410013154,37.1226754299384396]},"#aa1166":{"lch":[37.6762679798416,85.8108023849569577,346.783206271719791],"luv":[37.6762679798416,83.5378398512485205,-19.6194576616503156],"rgb":[0.66666666666666663,0.0666666666666666657,0.4],"xyz":[0.191756517600740639,0.0990770277788762116,0.134734304662291859],"hpluv":[346.783206271719791,289.010360822200312,37.6762679798416],"hsluv":[346.783206271719791,94.8263018378468558,37.6762679798416]},"#aa1177":{"lch":[38.3408051028578285,82.7345113545946163,336.916515476294876],"luv":[38.3408051028578285,76.110335477500783,-32.4378822148708],"rgb":[0.66666666666666663,0.0666666666666666657,0.466666666666666674],"xyz":[0.201070530620942545,0.102802632986957021,0.183788106568689769],"hpluv":[336.916515476294876,273.819772016881302,38.3408051028578285],"hsluv":[336.916515476294876,95.3051408978498387,38.3408051028578285]},"#aa1188":{"lch":[39.1148927869010379,82.477083595297529,326.495944929629673],"luv":[39.1148927869010379,68.7732486834780445,-45.5270203714912753],"rgb":[0.66666666666666663,0.0666666666666666657,0.533333333333333326],"xyz":[0.212210947722886401,0.107258799827734619,0.242460969972261936],"hpluv":[326.495944929629673,267.565723971153261,39.1148927869010379],"hsluv":[326.495944929629673,95.7730681487448,39.1148927869010379]},"#aa1199":{"lch":[39.9953287808464424,85.1038505069809617,316.515705271857257],"luv":[39.9953287808464424,61.7482074461545665,-58.5647013848890552],"rgb":[0.66666666666666663,0.0666666666666666657,0.6],"xyz":[0.2252679118319591,0.112481585471363776,0.311227647613379843],"hpluv":[316.515705271857257,270.00963724100518,39.9953287808464424],"hsluv":[316.515705271857257,96.2151887572794,39.9953287808464424]},"#aa11aa":{"lch":[40.9774666162921406,90.1875437006381588,307.715012949243601],"luv":[40.9774666162921406,55.1708175083225498,-71.3440532505540261],"rgb":[0.66666666666666663,0.0666666666666666657,0.66666666666666663],"xyz":[0.240325604797211656,0.118504662657464871,0.390531497230378444],"hpluv":[307.715012949243601,279.28060733669264,40.9774666162921406],"hsluv":[307.715012949243601,96.6225842874192864,40.9774666162921406]},"#aa11bb":{"lch":[42.0555802442747719,97.087212137786878,300.384453602166161],"luv":[42.0555802442747719,49.106684193967304,-83.7523750598249705],"rgb":[0.66666666666666663,0.0666666666666666657,0.733333333333333282],"xyz":[0.257463196904548275,0.12535969950039963,0.48078948232902019],"hpluv":[300.384453602166161,292.939359498794147,42.0555802442747719],"hsluv":[300.384453602166161,96.9911870522472697,42.0555802442747719]},"#aa11cc":{"lch":[43.2232098485165395,105.192683835863036,294.469145625450437],"luv":[43.2232098485165395,43.5711419401365,-95.7447456658814247],"rgb":[0.66666666666666663,0.0666666666666666657,0.8],"xyz":[0.276755572348270029,0.133076649677888431,0.582395992999290346],"hpluv":[294.469145625450437,308.821726609797679,43.2232098485165395],"hsluv":[294.469145625450437,97.3204020480748255,43.2232098485165395]},"#aa11dd":{"lch":[44.4734721926781518,114.032755796715193,289.757274940509092],"luv":[44.4734721926781518,38.5472014936014489,-107.320001172218454],"rgb":[0.66666666666666663,0.0666666666666666657,0.866666666666666696],"xyz":[0.298273897898903573,0.141683979898141965,0.695725840899296344],"hpluv":[289.757274940509092,325.362808980276498,44.4734721926781518],"hsluv":[289.757274940509092,97.611854654502622,44.4734721926781518]},"#aa11ee":{"lch":[45.7993244881172,123.283094749558884,286.008743686799619],"luv":[45.7993244881172,33.9995108001485136,-118.502129585840351],"rgb":[0.66666666666666663,0.0666666666666666657,0.933333333333333348],"xyz":[0.322086078165078282,0.151208852004612,0.821136656967819567],"hpluv":[286.008743686799619,341.573194884792258,45.7993244881172],"hsluv":[286.008743686799619,97.8684161167955153,45.7993244881172]},"#aa11ff":{"lch":[47.1937769411101868,132.735165800167636,283.011169167098501],"luv":[47.1937769411101868,29.8841269734434611,-129.327348983241365],"rgb":[0.66666666666666663,0.0666666666666666657,1],"xyz":[0.348257126574909703,0.161677271368544706,0.958970845259601412],"hpluv":[283.011169167098501,356.89510187446183,47.1937769411101868],"hsluv":[283.011169167098501,99.9999999999993321,47.1937769411101868]},"#882200":{"lch":[30.3496916993887922,81.7292062801124786,17.2000641303745212],"luv":[30.3496916993887922,78.0741152618852254,24.1680716080335465],"rgb":[0.533333333333333326,0.133333333333333331,0],"xyz":[0.107251185897077911,0.0637920533467938311,0.00666594787935922105],"hpluv":[17.2000641303745212,341.713647377264522,30.3496916993887922],"hsluv":[17.2000641303745212,100.000000000002359,30.3496916993887922]},"#882211":{"lch":[30.4474919309639347,79.3871193031655338,15.4743840495427136],"luv":[30.4474919309639347,76.5093230935452908,21.181080969170015],"rgb":[0.533333333333333326,0.133333333333333331,0.0666666666666666657],"xyz":[0.108262851396715029,0.064196719546648684,0.0119940528441148525],"hpluv":[15.4743840495427136,330.855109199112462,30.4474919309639347],"hsluv":[15.4743840495427136,90.2707057474005,30.4474919309639347]},"#882222":{"lch":[30.6277058928754826,75.4670009360781648,12.1770506300618102],"luv":[30.6277058928754826,73.7690281561900321,15.9185022906448506],"rgb":[0.533333333333333326,0.133333333333333331,0.133333333333333331],"xyz":[0.110138209535192058,0.0649468628020395,0.0218709390400940486],"hpluv":[12.1770506300618102,312.666930334371557,30.6277058928754826],"hsluv":[12.1770506300618102,73.2675530922876277,30.6277058928754826]},"#882233":{"lch":[30.9214262019897674,70.1124269978110135,6.50693872003014],"luv":[30.9214262019897674,69.6607724946186266,7.94538828354938],"rgb":[0.533333333333333326,0.133333333333333331,0.2],"xyz":[0.113225960267649792,0.0661819630950226112,0.0381330928977051953],"hpluv":[6.50693872003014,287.723152758323693,30.9214262019897674],"hsluv":[6.50693872003014,74.8097141082451458,30.9214262019897674]},"#882244":{"lch":[31.3391119188553589,64.5127804411509,357.965654494967],"luv":[31.3391119188553589,64.472119792654567,-2.29011128326569047],"rgb":[0.533333333333333326,0.133333333333333331,0.266666666666666663],"xyz":[0.117683955511868665,0.0679651611927101912,0.0616118678505918338],"hpluv":[357.965654494967,261.215173773686786,31.3391119188553589],"hsluv":[357.965654494967,76.7464797952550839,31.3391119188553589]},"#882255":{"lch":[31.8864840032734449,60.2907989794282599,346.464164292394514],"luv":[31.8864840032734449,58.6161449596217778,-14.1112717942230379],"rgb":[0.533333333333333326,0.133333333333333331,0.333333333333333315],"xyz":[0.123646369551230664,0.0703501268084550241,0.0930139151245657353],"hpluv":[346.464164292394514,239.929545755427228,31.8864840032734449],"hsluv":[346.464164292394514,78.9147131880069566,31.8864840032734449]},"#882266":{"lch":[32.565220274416383,58.9629659850378189,332.945096803324191],"luv":[32.565220274416383,52.5107124518348698,-26.8189566455043362],"rgb":[0.533333333333333326,0.133333333333333331,0.4],"xyz":[0.131231365324738836,0.0733841251178583426,0.132961559531709711],"hpluv":[332.945096803324191,229.754818264706444,32.565220274416383],"hsluv":[332.945096803324191,81.1505919454384923,32.565220274416383]},"#882277":{"lch":[33.3735533542235316,61.2256527964903086,319.411642653163199],"luv":[33.3735533542235316,46.4949769025583564,-39.8346291960518499],"rgb":[0.533333333333333326,0.133333333333333331,0.466666666666666674],"xyz":[0.140545378344940741,0.077109730325939152,0.18201536143810762],"hpluv":[319.411642653163199,232.79320602780777,33.3735533542235316],"hsluv":[319.411642653163199,83.3222334130424116,33.3735533542235316]},"#882288":{"lch":[34.3068967831130962,66.691064714973308,307.715012949243771],"luv":[34.3068967831130962,40.7972144472485709,-52.7568517461189046],"rgb":[0.533333333333333326,0.133333333333333331,0.533333333333333326],"xyz":[0.151685795446884597,0.0815658971667167498,0.240688224841679788],"hpluv":[307.715012949243771,246.675229855048,34.3068967831130962],"hsluv":[307.715012949243771,85.3421167175917,34.3068967831130962]},"#882299":{"lch":[35.3585028262625087,74.3915148492043699,298.539568373309862],"luv":[35.3585028262625087,35.5417034620318262,-65.3520068289902554],"rgb":[0.533333333333333326,0.133333333333333331,0.6],"xyz":[0.164742759555957297,0.0867886828103459074,0.309454902482797667],"hpluv":[298.539568373309862,266.973934190138948,35.3585028262625087],"hsluv":[298.539568373309862,87.1641407220543556,35.3585028262625087]},"#8822aa":{"lch":[36.5201138266519365,83.3993900511107142,291.653660077047903],"luv":[36.5201138266519365,30.7739719973965897,-77.5140045953036463],"rgb":[0.533333333333333326,0.133333333333333331,0.66666666666666663],"xyz":[0.179800452521209853,0.092811759996447,0.388758752099796268],"hpluv":[291.653660077047903,289.781114528802732,36.5201138266519365],"hsluv":[291.653660077047903,88.7734689989794532,36.5201138266519365]},"#8822bb":{"lch":[37.7825623664262196,93.0686060696910857,286.53575696187113],"luv":[37.7825623664262196,26.4885972028076893,-89.2195026548722],"rgb":[0.533333333333333326,0.133333333333333331,0.733333333333333282],"xyz":[0.196938044628546471,0.0996667968393817605,0.479016737198438],"hpluv":[286.53575696187113,312.57276028475934,37.7825623664262196],"hsluv":[286.53575696187113,90.1753980157506874,37.7825623664262196]},"#8822cc":{"lch":[39.1362858369643476,103.012880313051866,282.702767559286599],"luv":[39.1362858369643476,22.6518448072254479,-100.491529181421669],"rgb":[0.533333333333333326,0.133333333333333331,0.8],"xyz":[0.216230420072268226,0.107383747016870562,0.580623247868708225],"hpluv":[282.702767559286599,334.003678399645651,39.1362858369643476],"hsluv":[282.702767559286599,91.3862929083300628,39.1362858369643476]},"#8822dd":{"lch":[40.5717373677475379,113.020349666590874,279.789793007972776],"luv":[40.5717373677475379,19.2172965257181652,-111.374570495248548],"rgb":[0.533333333333333326,0.133333333333333331,0.866666666666666696],"xyz":[0.237748745622901769,0.115991077237124096,0.693953095768714223],"hpluv":[279.789793007972776,353.486121759760863,40.5717373677475379],"hsluv":[279.789793007972776,92.4273238443811209,40.5717373677475379]},"#8822ee":{"lch":[42.0796906219744145,122.982600065668066,277.538986095624125],"luv":[42.0796906219744145,16.1354126197819454,-121.919515986988074],"rgb":[0.533333333333333326,0.133333333333333331,0.933333333333333348],"xyz":[0.261560925889076534,0.125515949343594141,0.819363911837237446],"hpluv":[277.538986095624125,370.860397035002336,42.0796906219744145],"hsluv":[277.538986095624125,93.320628909539181,42.0796906219744145]},"#8822ff":{"lch":[43.6514473624058752,132.848943476626658,275.771185477405766],"luv":[43.6514473624058752,13.3587518063908028,-132.175585994657865],"rgb":[0.533333333333333326,0.133333333333333331,1],"xyz":[0.2877319742989079,0.135984368707526837,0.957198100129019291],"hpluv":[275.771185477405766,386.188007357759091,43.6514473624058752],"hsluv":[275.771185477405766,99.9999999999994,43.6514473624058752]},"#ffaa00":{"lch":[76.0766826449234799,103.646966048157225,46.9849230608437125],"luv":[76.0766826449234799,70.7070052858721,75.7839889059127785],"rgb":[1,0.66666666666666663,0],"xyz":[0.556131758114240538,0.500120923568095,0.0672444716650198171],"hpluv":[46.9849230608437125,173.218766512771339,76.0766826449234799],"hsluv":[46.9849230608437125,100.0000000000028,76.0766826449234799]},"#ffaa11":{"lch":[76.1015101579349533,102.726050652762069,46.6846637022245687],"luv":[76.1015101579349533,70.4714195905473275,74.7423608377930719],"rgb":[1,0.66666666666666663,0.0666666666666666657],"xyz":[0.557143423613877697,0.500525589767949919,0.0725725766297754538],"hpluv":[46.6846637022245687,171.896872437304751,76.1015101579349533],"hsluv":[46.6846637022245687,100.000000000002771,76.1015101579349533]},"#ffaa22":{"lch":[76.1474983763177,101.038792737361192,46.1176753587789605],"luv":[76.1474983763177,70.0380208569547591,72.8252241483965719],"rgb":[1,0.66666666666666663,0.133333333333333331],"xyz":[0.559018781752354643,0.501275733023340719,0.0824494628257546464],"hpluv":[46.1176753587789605,169.470349592440897,76.1474983763177],"hsluv":[46.1176753587789605,100.0000000000028,76.1474983763177]},"#ffaa33":{"lch":[76.2231174741888395,98.3169656691378577,45.1538509265191337],"luv":[76.2231174741888395,69.3336656617894533,69.7070193329597885],"rgb":[1,0.66666666666666663,0.2],"xyz":[0.56210653248481246,0.502510833316323846,0.0987116166833657827],"hpluv":[45.1538509265191337,165.543337136749699,76.2231174741888395],"hsluv":[45.1538509265191337,100.000000000002927,76.2231174741888395]},"#ffaa44":{"lch":[76.3320756204529118,94.5107446089494516,43.6926927141772694],"luv":[76.3320756204529118,68.3364903114306514,65.2870962629968119],"rgb":[1,0.66666666666666663,0.266666666666666663],"xyz":[0.56656452772903132,0.504294031414011412,0.122190391636252421],"hpluv":[43.6926927141772694,160.025535099593441,76.3320756204529118],"hsluv":[43.6926927141772694,100.000000000003,76.3320756204529118]},"#ffaa55":{"lch":[76.4774026026215,89.6489515946998807,41.6012791226812411],"luv":[76.4774026026215,67.0379860163697288,59.5217855318358247],"rgb":[1,0.66666666666666663,0.333333333333333315],"xyz":[0.572526941768393249,0.506678997029756162,0.153592438910226337],"hpluv":[41.6012791226812411,152.933128718005122,76.4774026026215],"hsluv":[41.6012791226812411,100.000000000003,76.4774026026215]},"#ffaa66":{"lch":[76.6616205587261,83.8466863985853905,38.6944265301345354],"luv":[76.6616205587261,65.4416029270402788,52.418159318716242],"rgb":[1,0.66666666666666663,0.4],"xyz":[0.58011193754190149,0.50971299533915948,0.193540083317370298],"hpluv":[38.6944265301345354,144.405277715469396,76.6616205587261],"hsluv":[38.6944265301345354,100.000000000003197,76.6616205587261]},"#ffaa77":{"lch":[76.8868341725165,77.3210793721064533,34.7099370327462324],"luv":[76.8868341725165,63.5614296008349058,44.0283315873505927],"rgb":[1,0.66666666666666663,0.466666666666666674],"xyz":[0.58942595056210334,0.513438600547240331,0.242593885223768208],"hpluv":[34.7099370327462324,134.738986801151128,76.8868341725165],"hsluv":[34.7099370327462324,100.000000000003354,76.8868341725165]},"#ffaa88":{"lch":[77.1547840912050873,70.4186738688562741,29.282319230158226],"luv":[77.1547840912050873,61.4205932059712723,34.4427112706728948],"rgb":[1,0.66666666666666663,0.533333333333333326],"xyz":[0.600566367664047251,0.517894767388017874,0.301266748627340375],"hpluv":[29.282319230158226,124.451835787871019,77.1547840912050873],"hsluv":[29.282319230158226,100.000000000003638,77.1547840912050873]},"#ffaa99":{"lch":[77.466881654564645,63.658531214354845,21.9370110659791244],"luv":[77.466881654564645,59.0493431107362383,23.7820031654092716],"rgb":[1,0.66666666666666663,0.6],"xyz":[0.613623331773119896,0.523117553031647087,0.370033426268458254],"hpluv":[21.9370110659791244,114.385173247539697,77.466881654564645],"hsluv":[21.9370110659791244,100.000000000003624,77.466881654564645]},"#ffaaaa":{"lch":[77.8242336850598,57.783013099698,12.1770506300621957],"luv":[77.8242336850598,56.482921905318662,12.1883606739193855],"rgb":[1,0.66666666666666663,0.66666666666666663],"xyz":[0.628681024738372507,0.529140630217748154,0.44933727588545691],"hpluv":[12.1770506300621957,105.841692205508735,77.8242336850598],"hsluv":[12.1770506300621957,100.000000000003837,77.8242336850598]},"#ffaabb":{"lch":[78.227662021793833,53.7597014753195,359.804273109779956],"luv":[78.227662021793833,53.7593877986938224,-0.183647012281759531],"rgb":[1,0.66666666666666663,0.733333333333333282],"xyz":[0.64581861684570907,0.535995667060682912,0.539595260984098601],"hpluv":[359.804273109779956,100.661858044669231,78.227662021793833],"hsluv":[359.804273109779956,100.000000000004135,78.227662021793833]},"#ffaacc":{"lch":[78.6777204654413254,52.5946111834740293,345.492217824016791],"luv":[78.6777204654413254,50.9175596191628586,-13.1755549397286202],"rgb":[1,0.66666666666666663,0.8],"xyz":[0.665110992289430825,0.543712617238171769,0.641201771654368757],"hpluv":[345.492217824016791,100.966318741741958,78.6777204654413254],"hsluv":[345.492217824016791,100.000000000004306,78.6777204654413254]},"#ffaadd":{"lch":[79.1747106956411244,54.8892328831665353,330.97422205899818],"luv":[79.1747106956411244,47.9952274547753177,-26.6324243745640352],"rgb":[1,0.66666666666666663,0.866666666666666696],"xyz":[0.686629317840064424,0.552319947458425275,0.754531619554374755],"hpluv":[330.97422205899818,108.36723319715793,79.1747106956411244],"hsluv":[330.97422205899818,100.000000000004704,79.1747106956411244]},"#ffaaee":{"lch":[79.718698064048283,60.5009523664383337,318.094564198374599],"luv":[79.718698064048283,45.0277239197174595,-40.4087777080146822],"rgb":[1,0.66666666666666663,0.933333333333333348],"xyz":[0.710441498106239133,0.561844819564895293,0.879942435622898],"hpluv":[318.094564198374599,123.247069988098687,79.718698064048283],"hsluv":[318.094564198374599,100.000000000004945,79.718698064048283]},"#ffaaff":{"lch":[80.3095277487323074,68.733917080261989,307.715012949245647],"luv":[80.3095277487323074,42.0468973903394,-54.3728772187255203],"rgb":[1,0.66666666666666663,1],"xyz":[0.736612546516070554,0.572313238928828,1.01777662391468],"hpluv":[307.715012949245647,144.979279509576116,80.3095277487323074],"hsluv":[307.715012949245647,100.000000000005301,80.3095277487323074]},"#aa2200":{"lch":[37.2831780533064929,108.910935722579069,15.2092016225530191],"luv":[37.2831780533064929,105.096262108869439,28.5721474641225],"rgb":[0.66666666666666663,0.133333333333333331,0],"xyz":[0.171491961907847656,0.0969162034773476816,0.00967723425486398912],"hpluv":[15.2092016225530191,370.67892165569458,37.2831780533064929],"hsluv":[15.2092016225530191,100.000000000002217,37.2831780533064929]},"#aa2211":{"lch":[37.3572350214345619,106.95640568906397,14.158492547926917],"luv":[37.3572350214345619,103.707370245599336,26.1620732103901794],"rgb":[0.66666666666666663,0.133333333333333331,0.0666666666666666657],"xyz":[0.172503627407484789,0.0973208696772025345,0.0150053392196196206],"hpluv":[14.158492547926917,363.305022455593,37.3572350214345619],"hsluv":[14.158492547926917,93.5777596020973732,37.3572350214345619]},"#aa2222":{"lch":[37.4939757158163331,103.55828406892158,12.1770506300617907],"luv":[37.4939757158163331,101.228270350344232,21.8438888748564],"rgb":[0.66666666666666663,0.133333333333333331,0.133333333333333331],"xyz":[0.17437898554596179,0.0980710129325933488,0.0248822254155988166],"hpluv":[12.1770506300617907,350.479546677114797,37.4939757158163331],"hsluv":[12.1770506300617907,82.128221128038831,37.4939757158163331]},"#aa2233":{"lch":[37.7176061419824791,98.5638584928897359,8.82735266140639],"luv":[37.7176061419824791,97.3963926843060506,15.125372494284127],"rgb":[0.66666666666666663,0.133333333333333331,0.2],"xyz":[0.177466736278419523,0.0993061132255764617,0.0411443792732099634],"hpluv":[8.82735266140639,331.598763076121088,37.7176061419824791],"hsluv":[8.82735266140639,82.8309253801110401,37.7176061419824791]},"#aa2244":{"lch":[38.0372287502177358,92.5577577991589209,3.83362915136278648],"luv":[38.0372287502177358,92.350650343690134,6.18836892123021798],"rgb":[0.66666666666666663,0.133333333333333331,0.266666666666666663],"xyz":[0.181924731522638411,0.101089311323264042,0.0646231542260966],"hpluv":[3.83362915136278648,308.775819843535,38.0372287502177358],"hsluv":[3.83362915136278648,83.7532195801290698,38.0372287502177358]},"#aa2255":{"lch":[38.4588905236098242,86.4856662057644172,356.973865768881865],"luv":[38.4588905236098242,86.3650670431288603,-4.56570407393633459],"rgb":[0.66666666666666663,0.133333333333333331,0.333333333333333315],"xyz":[0.187887145562000424,0.103474276939008875,0.0960252015000705],"hpluv":[356.973865768881865,285.355803984318584,38.4588905236098242],"hsluv":[356.973865768881865,84.8422496447961,38.4588905236098242]},"#aa2266":{"lch":[38.9860395203518237,81.4924101374980268,348.227712846231327],"luv":[38.9860395203518237,79.7783138580272464,-16.6262908668256522],"rgb":[0.66666666666666663,0.133333333333333331,0.4],"xyz":[0.195472141335508581,0.106508275248412193,0.135972845907214479],"hpluv":[348.227712846231327,265.245100213362434,38.9860395203518237],"hsluv":[348.227712846231327,86.0332228090823747,38.9860395203518237]},"#aa2277":{"lch":[39.619833929041036,78.6591168776988354,337.990195281021442],"luv":[39.619833929041036,72.9264197190586572,-29.4787037526953952],"rgb":[0.66666666666666663,0.133333333333333331,0.466666666666666674],"xyz":[0.204786154355710515,0.110233880456493,0.185026647813612388],"hpluv":[337.990195281021442,251.92759566726761,39.619833929041036],"hsluv":[337.990195281021442,87.2621982611374278,39.619833929041036]},"#aa2288":{"lch":[40.3594266716885386,78.6767938432408,327.148786779116733],"luv":[40.3594266716885386,66.0949636498191637,-42.6789605025813046],"rgb":[0.66666666666666663,0.133333333333333331,0.533333333333333326],"xyz":[0.215926571457654315,0.1146900472972706,0.243699511217184556],"hpluv":[327.148786779116733,247.366561360315984,40.3594266716885386],"hsluv":[327.148786779116733,88.4751585260979283,40.3594266716885386]},"#aa2299":{"lch":[41.2022629883412748,81.6302410017403162,316.790315261789033],"luv":[41.2022629883412748,59.4964385039503,-55.8898027492302489],"rgb":[0.66666666666666663,0.133333333333333331,0.6],"xyz":[0.228983535566727042,0.119912832940899758,0.312466188858302463],"hpluv":[316.790315261789033,251.402351399829286,41.2022629883412748],"hsluv":[316.790315261789033,89.6322731802278554,41.2022629883412748]},"#aa22aa":{"lch":[42.1443943233873242,87.0780915666379229,307.715012949243715],"luv":[42.1443943233873242,53.2686588598376076,-68.8842798769212834],"rgb":[0.66666666666666663,0.133333333333333331,0.66666666666666663],"xyz":[0.24404122853197957,0.125935910127000866,0.391770038475301063],"hpluv":[307.715012949243715,262.185344504614818,42.1443943233873242],"hsluv":[307.715012949243715,90.7081440057972515,42.1443943233873242]},"#aa22bb":{"lch":[43.1807973125030387,94.3504956605328573,300.218008125398399],"luv":[43.1807973125030387,47.4858085519839577,-81.5298351375283801],"rgb":[0.66666666666666663,0.133333333333333331,0.733333333333333282],"xyz":[0.261178820639316245,0.132790946969935625,0.48202802357394281],"hpluv":[300.218008125398399,277.263598469343151,43.1807973125030387],"hsluv":[300.218008125398399,91.6896384965505291,43.1807973125030387]},"#aa22cc":{"lch":[44.3056820912093627,102.813108633557576,294.217612554784239],"luv":[44.3056820912093627,42.1742864712375294,-93.764944769021767],"rgb":[0.66666666666666663,0.133333333333333331,0.8],"xyz":[0.280471196083037944,0.140507897147424426,0.583634534244213],"hpluv":[294.217612554784239,294.461411899371626,44.3056820912093627],"hsluv":[294.217612554784239,92.5728114271618097,44.3056820912093627]},"#aa22dd":{"lch":[45.5127751844210451,111.980933923074502,289.471886144522102],"luv":[45.5127751844210451,37.3282042805071441,-105.576203414769125],"rgb":[0.66666666666666663,0.133333333333333331,0.866666666666666696],"xyz":[0.301989521633671543,0.14911522736767796,0.696964382144219],"hpluv":[289.471886144522102,312.212361278410071,45.5127751844210451],"hsluv":[289.471886144522102,93.3598993754704622,45.5127751844210451]},"#aa22ee":{"lch":[46.7955661660676938,121.524022862348417,285.718434714393425],"luv":[46.7955661660676938,32.9220942551774698,-116.979587289842115],"rgb":[0.66666666666666663,0.133333333333333331,0.933333333333333348],"xyz":[0.325801701899846252,0.158640099474147978,0.822375198212742187],"hpluv":[285.718434714393425,329.531365671141714,46.7955661660676938],"hsluv":[285.718434714393425,94.0568560040361348,46.7955661660676938]},"#aa22ff":{"lch":[48.1475121680676921,131.233078667623346,282.730941389390409],"luv":[48.1475121680676921,28.9202258451599548,-128.006802450680539],"rgb":[0.66666666666666663,0.133333333333333331,1],"xyz":[0.351972750309677673,0.169108518838080701,0.960209386504524],"hpluv":[282.730941389390409,345.866733454918517,48.1475121680676921],"hsluv":[282.730941389390409,99.9999999999992,48.1475121680676921]},"#883300":{"lch":[33.1414787667816597,73.2165592554870841,22.9600016117944072],"luv":[33.1414787667816597,67.4161530625393084,28.5609323282788417],"rgb":[0.533333333333333326,0.2,0],"xyz":[0.113368907986088716,0.076027497524815621,0.00870518857569610102],"hpluv":[22.9600016117944072,280.334636286210525,33.1414787667816597],"hsluv":[22.9600016117944072,100.000000000002245,33.1414787667816597]},"#883311":{"lch":[33.2285118286029402,71.0572306739368287,21.2511434941679589],"luv":[33.2285118286029402,66.2253841559006844,25.7551650053430592],"rgb":[0.533333333333333326,0.2,0.0666666666666666657],"xyz":[0.114380573485725834,0.0764321637246704738,0.0140332935404517325],"hpluv":[21.2511434941679589,271.354302974885854,33.2285118286029402],"hsluv":[21.2511434941679589,91.7325092821930355,33.2285118286029402]},"#883322":{"lch":[33.389038834633638,67.403958774683133,17.9527330699243208],"luv":[33.389038834633638,64.1221355411587126,20.7760774002325519],"rgb":[0.533333333333333326,0.2,0.133333333333333331],"xyz":[0.116255931624202863,0.0771823069800612882,0.0239101797364309268],"hpluv":[17.9527330699243208,256.165602847605,33.389038834633638],"hsluv":[17.9527330699243208,77.1564226992543354,33.389038834633638]},"#883333":{"lch":[33.6510932573449324,62.3280121609532785,12.1770506300618564],"luv":[33.6510932573449324,60.9256605799824484,13.1470522486492083],"rgb":[0.533333333333333326,0.2,0.2],"xyz":[0.119343682356660596,0.0784174072730444,0.04017233359404207],"hpluv":[12.1770506300618564,235.030067027939708,33.6510932573449324],"hsluv":[12.1770506300618564,55.0748296144977,33.6510932573449324]},"#883344":{"lch":[34.0246284162643136,56.9037682047597428,3.23132728809417369],"luv":[34.0246284162643136,56.8132965471078748,3.20751794249172528],"rgb":[0.533333333333333326,0.2,0.266666666666666663],"xyz":[0.12380167760087947,0.080200605370731981,0.0636511085469287086],"hpluv":[3.23132728809417369,212.220318588139889,34.0246284162643136],"hsluv":[3.23132728809417369,58.083398150148156,34.0246284162643136]},"#883355":{"lch":[34.5156618951709859,52.7529688087382524,350.767304332875],"luv":[34.5156618951709859,52.0695471674777721,-8.46392201697997137],"rgb":[0.533333333333333326,0.2,0.333333333333333315],"xyz":[0.129764091640241469,0.0825855709864768139,0.0950531558209026239],"hpluv":[350.767304332875,193.941176615342812,34.5156618951709859],"hsluv":[350.767304332875,61.5291535706030714,34.5156618951709859]},"#883366":{"lch":[35.1268460128593318,51.5738240122621576,335.705329263136434],"luv":[35.1268460128593318,47.0065260432940519,-21.2189969741481157],"rgb":[0.533333333333333326,0.2,0.4],"xyz":[0.137349087413749654,0.0856195692958801324,0.135000800228046586],"hpluv":[335.705329263136434,186.307141954737205,35.1268460128593318],"hsluv":[335.705329263136434,65.1713869724459869,35.1268460128593318]},"#883377":{"lch":[35.8579115963162849,54.2604071268956929,320.552373035814298],"luv":[35.8579115963162849,41.9001950458929713,-34.4755773946224],"rgb":[0.533333333333333326,0.2,0.466666666666666674],"xyz":[0.14666310043395156,0.0893451745039609418,0.184054602134444495],"hpluv":[320.552373035814298,192.015984070736607,35.8579115963162849],"hsluv":[320.552373035814298,68.798738775930957,35.8579115963162849]},"#883388":{"lch":[36.7061150242973682,60.4128011412536097,307.715012949244056],"luv":[36.7061150242973682,36.9565850245806402,-47.7903480323547711],"rgb":[0.533333333333333326,0.2,0.533333333333333326],"xyz":[0.157803517535895388,0.0938013413447385397,0.242727465538016662],"hpluv":[307.715012949244056,208.847787272345244,36.7061150242973682],"hsluv":[307.715012949244056,72.2549736675254479,36.7061150242973682]},"#883399":{"lch":[37.6667130487112445,68.9141309342046213,297.955533412138379],"luv":[37.6667130487112445,32.3059919210196611,-60.8726566564636684],"rgb":[0.533333333333333326,0.2,0.6],"xyz":[0.170860481644968087,0.0990241269883677,0.311494143179134542],"hpluv":[297.955533412138379,232.161331922109071,37.6667130487112445],"hsluv":[297.955533412138379,75.4431641885032604,37.6667130487112445]},"#8833aa":{"lch":[38.7334497692602824,78.7159372772915162,290.848124870138179],"luv":[38.7334497692602824,28.0143748789862741,-73.5621749378178436],"rgb":[0.533333333333333326,0.2,0.66666666666666663],"xyz":[0.185918174610220643,0.105047204174468806,0.390797992796133142],"hpluv":[290.848124870138179,257.878905714084965,38.7334497692602824],"hsluv":[290.848124870138179,78.3166072053086282,38.7334497692602824]},"#8833bb":{"lch":[39.8990272727434743,89.1142300257769193,285.691107407551272],"luv":[39.8990272727434743,24.1010351313191435,-85.7932753698447073],"rgb":[0.533333333333333326,0.2,0.733333333333333282],"xyz":[0.20305576671755729,0.111902241017403564,0.481055977894774889],"hpluv":[285.691107407551272,283.415812953045702,39.8990272727434743],"hsluv":[285.691107407551272,80.8649153118493444,39.8990272727434743]},"#8833cc":{"lch":[41.1555326498064318,99.7027359993818578,281.897918690971494],"luv":[41.1555326498064318,20.5555775093346966,-97.560769774639283],"rgb":[0.533333333333333326,0.2,0.8],"xyz":[0.222348142161279017,0.119619191194892366,0.5826624885650451],"hpluv":[281.897918690971494,307.410130900702256,41.1555326498064318],"hsluv":[281.897918690971494,83.1006969987668356,41.1555326498064318]},"#8833dd":{"lch":[42.4948021164729042,110.266949448261684,279.053462184119098],"luv":[42.4948021164729042,17.3511661022166734,-108.893237510502843],"rgb":[0.533333333333333326,0.2,0.866666666666666696],"xyz":[0.24386646771191256,0.1282265214151459,0.695992336465051098],"hpluv":[279.053462184119098,329.267506795456711,42.4948021164729042],"hsluv":[279.053462184119098,85.0491409670088103,42.4948021164729042]},"#8833ee":{"lch":[43.9087129541284185,120.703343561802441,276.877390721452173],"luv":[43.9087129541284185,14.4536316684396038,-119.834843341123431],"rgb":[0.533333333333333326,0.2,0.933333333333333348],"xyz":[0.267678647978087325,0.137751393521615917,0.821403152533574321],"hpluv":[276.877390721452173,348.825254458779511,43.9087129541284185],"hsluv":[276.877390721452173,90.7214777394212177,43.9087129541284185]},"#8833ff":{"lch":[45.3894029264418037,130.969293653816607,275.181129330284705],"luv":[45.3894029264418037,11.8271264623124566,-130.43417864894198],"rgb":[0.533333333333333326,0.2,1],"xyz":[0.293849696387918691,0.148219812885548641,0.959237340825356166],"hpluv":[275.181129330284705,366.146040402293636,45.3894029264418037],"hsluv":[275.181129330284705,99.9999999999993179,45.3894029264418037]},"#ffbb00":{"lch":[80.0686585320779614,99.7432534700870832,55.1804439586775146],"luv":[80.0686585320779614,56.9527800089419642,81.8846595037867928],"rgb":[1,0.733333333333333282,0],"xyz":[0.590086256022839262,0.568029919385293569,0.0785626376345524291],"hpluv":[55.1804439586775146,207.400278899961506,80.0686585320779614],"hsluv":[55.1804439586775146,100.000000000004661,80.0686585320779614]},"#ffbb11":{"lch":[80.0914663159454,98.8408701901197304,54.9443852376931758],"luv":[80.0914663159454,56.7713575947746136,80.9106332739172558],"rgb":[1,0.733333333333333282,0.0666666666666666657],"xyz":[0.591097921522476422,0.568434585585148477,0.0838907425993080658],"hpluv":[54.9443852376931758,205.801067903733326,80.0914663159454],"hsluv":[54.9443852376931758,100.000000000004746,80.0914663159454]},"#ffbb22":{"lch":[80.1337172522408849,97.1832370837577173,54.4980435584705063],"luv":[80.1337172522408849,56.4372945908461148,79.11645435270664],"rgb":[1,0.733333333333333282,0.133333333333333331],"xyz":[0.592973279660953367,0.569184728840539278,0.0937676287952872584],"hpluv":[54.4980435584705063,202.856099527528187,80.1337172522408849],"hsluv":[54.4980435584705063,100.00000000000469,80.1337172522408849]},"#ffbb33":{"lch":[80.2032020182086569,94.4967793168558643,53.7374633716008248],"luv":[80.2032020182086569,55.8935303906135772,76.1941898161015558],"rgb":[1,0.733333333333333282,0.2],"xyz":[0.596061030393411184,0.570419829133522405,0.110029782652898395],"hpluv":[53.7374633716008248,198.062979410590685,80.2032020182086569],"hsluv":[53.7374633716008248,100.000000000004576,80.2032020182086569]},"#ffbb44":{"lch":[80.3033451682561,90.7120739700224874,52.5796541788809932],"luv":[80.3033451682561,55.1219083097901148,72.0434284874749835],"rgb":[1,0.733333333333333282,0.266666666666666663],"xyz":[0.60051902563763,0.57220302723121,0.133508557605785033],"hpluv":[52.5796541788809932,191.266883403483888,80.3033451682561],"hsluv":[52.5796541788809932,100.000000000004732,80.3033451682561]},"#ffbb55":{"lch":[80.4369584648287343,85.824023801574981,50.9113466162360169],"luv":[80.4369584648287343,54.1139445833304435,66.614143116349922],"rgb":[1,0.733333333333333282,0.333333333333333315],"xyz":[0.606481439676992,0.57458799284695472,0.164910604879758949],"hpluv":[50.9113466162360169,182.412290123698938,80.4369584648287343],"hsluv":[50.9113466162360169,100.000000000004846,80.4369584648287343]},"#ffbb66":{"lch":[80.6063993458739532,79.8959983704508545,48.5678239065140147],"luv":[80.6063993458739532,52.8698192869345931,59.9011916757752374],"rgb":[1,0.733333333333333282,0.4],"xyz":[0.614066435450500214,0.577621991156358,0.20485824928690291],"hpluv":[48.5678239065140147,171.553596694327723,80.6063993458739532],"hsluv":[48.5678239065140147,100.000000000004945,80.6063993458739532]},"#ffbb77":{"lch":[80.8136549908608828,73.0715029906331353,45.3006510664637219],"luv":[80.8136549908608828,51.397517928562209,51.9397699272266067],"rgb":[1,0.733333333333333282,0.466666666666666674],"xyz":[0.623380448470702064,0.58134759636443889,0.253912051193300847],"hpluv":[45.3006510664637219,158.885762577352,80.8136549908608828],"hsluv":[45.3006510664637219,100.000000000005144,80.8136549908608828]},"#ffbb88":{"lch":[81.0603921498240823,65.5982066090816,40.7273497798256443],"luv":[81.0603921498240823,49.7118280718431649,42.8002203275083914],"rgb":[1,0.733333333333333282,0.533333333333333326],"xyz":[0.634520865572646,0.585803763205216432,0.312584914596873],"hpluv":[40.7273497798256443,144.809180382553194,81.0603921498240823],"hsluv":[40.7273497798256443,100.0000000000054,81.0603921498240823]},"#ffbb99":{"lch":[81.347989327564818,57.8755898316684423,34.2609783084776538],"luv":[81.347989327564818,47.8331272298795724,32.5818329406692087],"rgb":[1,0.733333333333333282,0.6],"xyz":[0.64757782968171862,0.591026548848845645,0.381351592237990866],"hpluv":[34.2609783084776538,130.060421106466862,81.347989327564818],"hsluv":[34.2609783084776538,100.000000000005514,81.347989327564818]},"#ffbbaa":{"lch":[81.6775593509345725,50.5427251754064883,25.056975338279841],"luv":[81.6775593509345725,45.7860019440054415,21.405819165362459],"rgb":[1,0.733333333333333282,0.66666666666666663],"xyz":[0.662635522646971231,0.597049626034946712,0.460655441854989522],"hpluv":[25.056975338279841,115.96007016550756,81.6775593509345725],"hsluv":[25.056975338279841,100.000000000005954,81.6775593509345725]},"#ffbbbb":{"lch":[82.0499666293022,44.6012959670408264,12.1770506300623094],"luv":[82.0499666293022,43.5977873399533138,9.40789779917804125],"rgb":[1,0.733333333333333282,0.733333333333333282],"xyz":[0.679773114754307795,0.603904662877881471,0.550913426953631213],"hpluv":[12.1770506300623094,104.793068167285782,82.0499666293022],"hsluv":[12.1770506300623094,100.000000000006168,82.0499666293022]},"#ffbbcc":{"lch":[82.4658415859876,41.4263127316455169,355.474040938847054],"luv":[82.4658415859876,41.2971323922898534,-3.26898190783910625],"rgb":[1,0.733333333333333282,0.8],"xyz":[0.699065490198029549,0.611621613055370328,0.652519937623901369],"hpluv":[355.474040938847054,100.004408983591958,82.4658415859876],"hsluv":[355.474040938847054,100.000000000006509,82.4658415859876]},"#ffbbdd":{"lch":[82.9255937413379,42.2590852539423381,337.045135839305544],"luv":[82.9255937413379,38.9126886018087319,-16.4812909773061058],"rgb":[1,0.733333333333333282,0.866666666666666696],"xyz":[0.720583815748663148,0.620228943275623834,0.765849785523907367],"hpluv":[337.045135839305544,105.181583048825317,82.9255937413379],"hsluv":[337.045135839305544,100.000000000006992,82.9255937413379]},"#ffbbee":{"lch":[83.4294243398036315,47.2826492521794748,320.476273654572083],"luv":[83.4294243398036315,36.4719970678196077,-30.0905691237235686],"rgb":[1,0.733333333333333282,0.933333333333333348],"xyz":[0.744395996014837857,0.629753815382093851,0.89126060159243059],"hpluv":[320.476273654572083,121.793886282549721,83.4294243398036315],"hsluv":[320.476273654572083,100.000000000007375,83.4294243398036315]},"#ffbbff":{"lch":[83.9773390427358493,55.5806936350452148,307.715012949246614],"luv":[83.9773390427358493,34.0006189291922496,-43.9678452665650781],"rgb":[1,0.733333333333333282,1],"xyz":[0.770567044424669279,0.640222234746026575,1.02909478988421244],"hpluv":[307.715012949246614,148.765749509941259,83.9773390427358493],"hsluv":[307.715012949246614,100.00000000000793,83.9773390427358493]},"#aa3300":{"lch":[39.4372171279304595,100.717281062042773,18.6056676884160446],"luv":[39.4372171279304595,95.4534790945485838,32.1341568004684959],"rgb":[0.66666666666666663,0.2,0],"xyz":[0.177609683996858475,0.109151647655369471,0.0117164749512008691],"hpluv":[18.6056676884160446,324.068678498457416,39.4372171279304595],"hsluv":[18.6056676884160446,100.00000000000226,39.4372171279304595]},"#aa3311":{"lch":[39.5056415087576553,98.9056898290362199,17.5539290045831464],"luv":[39.5056415087576553,94.2999972712563,29.8302865423477179],"rgb":[0.66666666666666663,0.2,0.0666666666666666657],"xyz":[0.178621349496495607,0.109556313855224324,0.0170445799159565023],"hpluv":[17.5539290045831464,317.688492914835,39.5056415087576553],"hsluv":[17.5539290045831464,94.2489803369173558,39.5056415087576553]},"#aa3322":{"lch":[39.6320377265530155,95.7434230458582789,15.5633947922033684],"luv":[39.6320377265530155,92.2329117474569102,25.688383505468213],"rgb":[0.66666666666666663,0.2,0.133333333333333331],"xyz":[0.180496707634972609,0.110306457110615139,0.0269214661119356949],"hpluv":[15.5633947922033684,306.55039093266322,39.6320377265530155],"hsluv":[15.5633947922033684,83.9544037116345123,39.6320377265530155]},"#aa3333":{"lch":[39.8389046640011415,91.0660982539230162,12.1770506300618351],"luv":[39.8389046640011415,89.0171529654153488,19.2088711049089049],"rgb":[0.66666666666666663,0.2,0.2],"xyz":[0.18358445836743037,0.111541557403598252,0.0431836199695468381],"hpluv":[12.1770506300618351,290.060550373943784,39.8389046640011415],"hsluv":[12.1770506300618351,67.9701775681036366,39.8389046640011415]},"#aa3344":{"lch":[40.1348956250933142,85.3951569144799691,7.07959423789482756],"luv":[40.1348956250933142,84.7440953003879116,10.5247867516366789],"rgb":[0.66666666666666663,0.2,0.266666666666666663],"xyz":[0.18804245361164923,0.113324755501285832,0.0666623949224334766],"hpluv":[7.07959423789482756,269.991710008472637,40.1348956250933142],"hsluv":[7.07959423789482756,69.5294395234689659,40.1348956250933142]},"#aa3355":{"lch":[40.5259588707466,79.61783322386637,359.98582832830067],"luv":[40.5259588707466,79.6178307884273693,-0.0196928603108827253],"rgb":[0.66666666666666663,0.2,0.333333333333333315],"xyz":[0.194004867651011215,0.115709721117030664,0.098064442196407392],"hpluv":[359.98582832830067,249.296614878837403,40.5259588707466],"hsluv":[359.98582832830067,71.3920974276079079,40.5259588707466]},"#aa3366":{"lch":[41.0157539995587683,74.8661602955128558,350.806369630673316],"luv":[41.0157539995587683,73.9044320805857,-11.9614746682639641],"rgb":[0.66666666666666663,0.2,0.4],"xyz":[0.2015898634245194,0.118743719426433983,0.138012086603551354],"hpluv":[350.806369630673316,231.619002340768361,41.0157539995587683],"hsluv":[350.806369630673316,73.4562780141226597,41.0157539995587683]},"#aa3377":{"lch":[41.6059173351841167,72.2728884464882668,339.921631600955322],"luv":[41.6059173351841167,67.8804264173117531,-24.8116527825629412],"rgb":[0.66666666666666663,0.2,0.466666666666666674],"xyz":[0.210903876444721305,0.122469324634514792,0.187065888509949263],"hpluv":[339.921631600955322,220.424384448141751,41.6059173351841167],"hsluv":[339.921631600955322,75.6166865764569138,41.6059173351841167]},"#aa3388":{"lch":[42.296293156356171,72.6091331125239918,328.324027314743319],"luv":[42.296293156356171,61.7926517819245191,-38.1281313089174],"rgb":[0.66666666666666663,0.2,0.533333333333333326],"xyz":[0.222044293546665161,0.12692549147529239,0.24573875191352143],"hpluv":[328.324027314743319,217.83530631356345,42.296293156356171],"hsluv":[328.324027314743319,77.7798333688196237,42.296293156356171]},"#aa3399":{"lch":[43.0851702185186838,75.9982874692542794,317.281450106519685],"luv":[43.0851702185186838,55.835561651799118,-51.5570533805758799],"rgb":[0.66666666666666663,0.2,0.6],"xyz":[0.235101257655737861,0.132148277118921548,0.314505429554639337],"hpluv":[317.281450106519685,223.828466633931441,43.0851702185186838],"hsluv":[317.281450106519685,79.8726039522015441,43.0851702185186838]},"#aa33aa":{"lch":[43.9695321467927229,81.9717995507402861,307.715012949243828],"luv":[43.9695321467927229,50.1449646844158607,-64.8448798162617521],"rgb":[0.66666666666666663,0.2,0.66666666666666663],"xyz":[0.250158950620990417,0.138171354305022642,0.393809279171637938],"hpluv":[307.715012949243828,236.565795567314069,43.9695321467927229],"hsluv":[307.715012949243828,81.8445603498948628,43.9695321467927229]},"#aa33bb":{"lch":[44.9453163823579231,89.8045713491188593,299.92695612823394],"luv":[44.9453163823579231,44.8030997809084,-77.8302208992172],"rgb":[0.66666666666666663,0.2,0.733333333333333282],"xyz":[0.267296542728327036,0.145026391147957401,0.484067264270279685],"hpluv":[299.92695612823394,253.543994890590483,44.9453163823579231],"hsluv":[299.92695612823394,83.6659201788580305,44.9453163823579231]},"#aa33cc":{"lch":[46.0076707905516145,98.8168321279874249,293.782406660809556],"luv":[46.0076707905516145,39.8493034294229815,-90.425656359246986],"rgb":[0.66666666666666663,0.2,0.8],"xyz":[0.28658891817204879,0.152743341325446202,0.585673774940549841],"hpluv":[293.782406660809556,272.546121846523647,46.0076707905516145],"hsluv":[293.782406660809556,85.323407183561244,46.0076707905516145]},"#aa33dd":{"lch":[47.1511962508372804,108.497592079042477,288.982430572084695],"luv":[47.1511962508372804,35.2919015872993782,-102.597315604759743],"rgb":[0.66666666666666663,0.2,0.866666666666666696],"xyz":[0.308107243722682334,0.161350671545699736,0.699003622840555838],"hpluv":[288.982430572084695,291.989148013150611,47.1511962508372804],"hsluv":[288.982430572084695,86.8156421407842771,47.1511962508372804]},"#aa33ee":{"lch":[48.3701654903461247,118.505438755587946,285.224041333998457],"luv":[48.3701654903461247,31.1188262963008349,-114.346655677352729],"rgb":[0.66666666666666663,0.2,0.933333333333333348],"xyz":[0.331919423988857099,0.170875543652169781,0.824414438909079061],"hpluv":[285.224041333998457,310.885191630161273,48.3701654903461247],"hsluv":[285.224041333998457,89.3017266962351215,48.3701654903461247]},"#aa33ff":{"lch":[49.6587116356326135,128.627945638670809,282.256374557143658],"luv":[49.6587116356326135,27.305962831451918,-125.696192436653462],"rgb":[0.66666666666666663,0.2,1],"xyz":[0.358090472398688464,0.181343963016102477,0.962248627200860907],"hpluv":[282.256374557143658,328.684490794403757,49.6587116356326135],"hsluv":[282.256374557143658,99.9999999999991616,49.6587116356326135]},"#884400":{"lch":[36.685747441671559,64.5393704655657814,31.8123524502136021],"luv":[36.685747441671559,54.844205976921188,34.0212200082916922],"rgb":[0.533333333333333326,0.266666666666666663,0],"xyz":[0.122201478469054756,0.093692638490747937,0.0116493787366846978],"hpluv":[31.8123524502136021,223.237258003095718,36.685747441671559],"hsluv":[31.8123524502136021,100.000000000002245,36.685747441671559]},"#884411":{"lch":[36.7614898568215622,62.4864851085245405,30.2058215583615599],"luv":[36.7614898568215622,54.0023006087270119,31.4374354899146],"rgb":[0.533333333333333326,0.266666666666666663,0.0666666666666666657],"xyz":[0.123213143968691874,0.0940973046906027899,0.016977483701440331],"hpluv":[30.2058215583615599,215.691146343233044,36.7614898568215622],"hsluv":[30.2058215583615599,93.206231917801162,36.7614898568215622]},"#884422":{"lch":[36.9013237077522405,58.9550348899468375,27.0578850153250627],"luv":[36.9013237077522405,52.5022536375556825,26.8180816214102],"rgb":[0.533333333333333326,0.266666666666666663,0.133333333333333331],"xyz":[0.125088502107168903,0.0948474479459936,0.0268543698974195236],"hpluv":[27.0578850153250627,202.730122118290922,36.9013237077522405],"hsluv":[27.0578850153250627,81.1214838671569822,36.9013237077522405]},"#884433":{"lch":[37.1299605496210461,53.9021323280231357,21.3870333458705382],"luv":[37.1299605496210461,50.1903435049312,19.6562785990819577],"rgb":[0.533333333333333326,0.266666666666666663,0.2],"xyz":[0.128176252839626637,0.0960825482389767171,0.0431165237550306668],"hpluv":[21.3870333458705382,184.213216030002656,37.1299605496210461],"hsluv":[21.3870333458705382,62.5495295304316272,37.1299605496210461]},"#884444":{"lch":[37.4566279620983806,48.2433933618324389,12.1770506300619505],"luv":[37.4566279620983806,47.157939219998795,10.1761373608750691],"rgb":[0.533333333333333326,0.266666666666666663,0.266666666666666663],"xyz":[0.132634248083845524,0.0978657463366643,0.0665952987079173],"hpluv":[12.1770506300619505,163.436290620587812,37.4566279620983806],"hsluv":[12.1770506300619505,38.2981887065726,37.4566279620983806]},"#884455":{"lch":[37.8873893879065804,43.5926938841600631,358.470393497241901],"luv":[37.8873893879065804,43.5771602849424937,-1.16364151632571566],"rgb":[0.533333333333333326,0.266666666666666663,0.333333333333333315],"xyz":[0.138596662123207509,0.10025071195240913,0.0979973459818912207],"hpluv":[358.470393497241901,146.001848007416612,37.8873893879065804],"hsluv":[358.470393497241901,42.6300163695831245,37.8873893879065804]},"#884466":{"lch":[38.425613648805637,41.9872152878557756,340.815857604715632],"luv":[38.425613648805637,39.6555541095459816,-13.7972198610307206],"rgb":[0.533333333333333326,0.266666666666666663,0.4],"xyz":[0.146181657896715694,0.103284710261812449,0.137944990389035183],"hpluv":[340.815857604715632,138.655016432961,38.425613648805637],"hsluv":[340.815857604715632,47.3337116796912767,38.425613648805637]},"#884477":{"lch":[39.0722986805963117,44.7783217464764363,322.645837420375756],"luv":[39.0722986805963117,35.5943002873345478,-27.1688035343115608],"rgb":[0.533333333333333326,0.266666666666666663,0.466666666666666674],"xyz":[0.1554956709169176,0.107010315469893258,0.186998792295433092],"hpluv":[322.645837420375756,145.424700121889231,39.0722986805963117],"hsluv":[322.645837420375756,52.1510622716411,39.0722986805963117]},"#884488":{"lch":[39.8263740522966856,51.5911203050634839,307.71501294924451],"luv":[39.8263740522966856,31.5600599218946343,-40.8118403414738609],"rgb":[0.533333333333333326,0.266666666666666663,0.533333333333333326],"xyz":[0.166636088018861428,0.111466482310670856,0.245671655699005259],"hpluv":[307.71501294924451,164.377933698467302,39.8263740522966856],"hsluv":[307.71501294924451,56.8697587177058,39.8263740522966856]},"#884499":{"lch":[40.6850187117946192,61.0189075542410393,296.969581150574243],"luv":[40.6850187117946192,27.6731358367265301,-54.3829443123034295],"rgb":[0.533333333333333326,0.266666666666666663,0.6],"xyz":[0.179693052127934128,0.116689267954300013,0.314438333340123166],"hpluv":[296.969581150574243,190.313341437332326,40.6850187117946192],"hsluv":[296.969581150574243,61.3383523001243134,40.6850187117946192]},"#8844aa":{"lch":[41.643995358805,71.7935926347933417,289.536616505740085],"luv":[41.643995358805,24.0084388126510113,-67.6602897510042141],"rgb":[0.533333333333333326,0.266666666666666663,0.66666666666666663],"xyz":[0.194750745093186683,0.122712345140401108,0.393742182957121767],"hpluv":[289.536616505740085,218.762371943685849,41.643995358805],"hsluv":[289.536616505740085,65.4647221474276506,41.643995358805]},"#8844bb":{"lch":[42.6979882651059626,83.1164887776927515,284.352541737053286],"luv":[42.6979882651059626,20.6035404121657031,-80.5223250360828757],"rgb":[0.533333333333333326,0.266666666666666663,0.733333333333333282],"xyz":[0.21188833720052333,0.129567381983335866,0.484000168055763513],"hpluv":[284.352541737053286,247.012596783276,42.6979882651059626],"hsluv":[284.352541737053286,69.2054262339616741,42.6979882651059626]},"#8844cc":{"lch":[43.840927241858644,94.5481620176080924,280.647262826657595],"luv":[43.840927241858644,17.4689172853010533,-92.9203522904814463],"rgb":[0.533333333333333326,0.266666666666666663,0.8],"xyz":[0.231180712644245057,0.137284332160824668,0.585606678726033669],"hpluv":[280.647262826657595,273.660859280114778,43.840927241858644],"hsluv":[280.647262826657595,72.5522514276637764,43.840927241858644]},"#8844dd":{"lch":[45.0662821798681108,105.864396975636453,277.925647559652191],"luv":[45.0662821798681108,14.5974213234566292,-104.853163222292139],"rgb":[0.533333333333333326,0.266666666666666663,0.866666666666666696],"xyz":[0.2526990381948786,0.145891662381078202,0.698936526626039667],"hpluv":[277.925647559652191,298.083215805211921,45.0662821798681108],"hsluv":[277.925647559652191,79.9664783418063649,45.0662821798681108]},"#8844ee":{"lch":[46.3673172023828,116.961454232737537,275.874868362231723],"luv":[46.3673172023828,11.97173240994087,-116.347150370524886],"rgb":[0.533333333333333326,0.266666666666666663,0.933333333333333348],"xyz":[0.276511218461053365,0.155416534487548247,0.82434734269456289],"hpluv":[275.874868362231723,320.088534026972411,46.3673172023828],"hsluv":[275.874868362231723,89.9071832422553,46.3673172023828]},"#8844ff":{"lch":[47.7372988913525091,127.801124524511906,274.29427304351259],"luv":[47.7372988913525091,9.5696272486796623,-127.442338585146516],"rgb":[0.533333333333333326,0.266666666666666663,1],"xyz":[0.302682266870884731,0.165884953851480943,0.962181530986344735],"hpluv":[274.29427304351259,339.716123682654541,47.7372988913525091],"hsluv":[274.29427304351259,99.9999999999992468,47.7372988913525091]},"#ffcc00":{"lch":[84.1983464973243,98.3335943421723613,63.5926937648685069],"luv":[84.1983464973243,43.7338065737115329,88.0729807536005751],"rgb":[1,0.8,0],"xyz":[0.628309999332456237,0.644477406004528408,0.0913038854044243842],"hpluv":[63.5926937648685069,267.385577483165775,84.1983464973243],"hsluv":[63.5926937648685069,100.000000000007688,84.1983464973243]},"#ffcc11":{"lch":[84.2193135631731877,97.4576917861448777,63.4272907637844199],"luv":[84.2193135631731877,43.5960552023901897,87.1629833075564164],"rgb":[1,0.8,0.0666666666666666657],"xyz":[0.629321664832093397,0.644882072204383316,0.0966319903691800208],"hpluv":[63.4272907637844199,265.403720884510847,84.2193135631731877],"hsluv":[63.4272907637844199,100.000000000007645,84.2193135631731877]},"#ffcc22":{"lch":[84.2581577251319516,95.845309095571892,63.1144413478925301],"luv":[84.2581577251319516,43.342199386504106,85.4855369519677168],"rgb":[1,0.8,0.133333333333333331],"xyz":[0.631197022970570343,0.645632215459774117,0.106508876565159213],"hpluv":[63.1144413478925301,261.744085553517664,84.2581577251319516],"hsluv":[63.1144413478925301,100.00000000000766,84.2581577251319516]},"#ffcc33":{"lch":[84.3220485899852719,93.2224175872051148,62.5809741236821822],"luv":[84.3220485899852719,42.9284172035605494,82.7500461462124832],"rgb":[1,0.8,0.2],"xyz":[0.63428477370302816,0.646867315752757244,0.12277103042277035],"hpluv":[62.5809741236821822,255.758846695652977,84.3220485899852719],"hsluv":[62.5809741236821822,100.000000000007859,84.3220485899852719]},"#ffcc44":{"lch":[84.41414885501203,89.5051620308737,61.7678249437873745],"luv":[84.41414885501203,42.3400226901080785,78.8574442191356439],"rgb":[1,0.8,0.266666666666666663],"xyz":[0.638742768947247,0.64865051385044481,0.146249805375657],"hpluv":[61.7678249437873745,247.206609954939694,84.41414885501203],"hsluv":[61.7678249437873745,100.000000000007887,84.41414885501203]},"#ffcc55":{"lch":[84.5370662928161,84.6613331238571476,60.5932597011580469],"luv":[84.5370662928161,41.569242864558305,73.7532329730438221],"rgb":[1,0.8,0.333333333333333315],"xyz":[0.644705182986609,0.651035479466189559,0.177651852649630904],"hpluv":[60.5932597011580469,235.935294148211483,84.5370662928161],"hsluv":[60.5932597011580469,100.000000000008015,84.5370662928161]},"#ffcc66":{"lch":[84.6930007913096,78.7104448491835456,58.9357730127494222],"luv":[84.6930007913096,40.6144802919859131,67.4225342075500151],"rgb":[1,0.8,0.4],"xyz":[0.65229017876011719,0.654069477775592878,0.217599497056774865],"hpluv":[58.9357730127494222,221.881579382217893,84.6930007913096],"hsluv":[58.9357730127494222,100.000000000008285,84.6930007913096]},"#ffcc77":{"lch":[84.8838226897762809,71.7288671198513441,56.6053668146737863],"luv":[84.8838226897762809,39.4797505573258718,59.8863897244492378],"rgb":[1,0.8,0.466666666666666674],"xyz":[0.661604191780319,0.657795082983673729,0.266653298963172802],"hpluv":[56.6053668146737863,205.087229042099608,84.8838226897762809],"hsluv":[56.6053668146737863,100.000000000008399,84.8838226897762809]},"#ffcc88":{"lch":[85.1111193079521371,63.8628893840605159,53.2910582019814285],"luv":[85.1111193079521371,38.1740592359010691,51.1977523133063457],"rgb":[1,0.8,0.533333333333333326],"xyz":[0.672744608882263,0.662251249824451271,0.325326162366744942],"hpluv":[53.2910582019814285,185.743844227516831,85.1111193079521371],"hsluv":[53.2910582019814285,100.000000000008683,85.1111193079521371]},"#ffcc99":{"lch":[85.3762249003348899,55.3594884395636555,48.4608196634464292],"luv":[85.3762249003348899,36.710650975629143,41.436711563970924],"rgb":[1,0.8,0.6],"xyz":[0.685801572991335595,0.667474035468080484,0.394092840007862821],"hpluv":[48.4608196634464292,164.300705026796521,85.3762249003348899],"hsluv":[48.4608196634464292,100.000000000008811,85.3762249003348899]},"#ffccaa":{"lch":[85.6802414041430467,46.6394331206389836,41.1740083194267896],"luv":[85.6802414041430467,35.1061374539925311,30.7049806200222122],"rgb":[1,0.8,0.66666666666666663],"xyz":[0.700859265956588207,0.673497112654181551,0.473396689624861478],"hpluv":[41.1740083194267896,141.724192848301414,85.6802414041430467],"hsluv":[41.1740083194267896,100.000000000009393,85.6802414041430467]},"#ffccbb":{"lch":[86.0240539433014106,38.4677176438646384,29.8042196075727404],"luv":[86.0240539433014106,33.3795484258888635,19.1199123327444944],"rgb":[1,0.8,0.733333333333333282],"xyz":[0.71799685806392477,0.68035214949711631,0.563654674723503168],"hpluv":[29.8042196075727404,120.116808153279436,86.0240539433014106],"hsluv":[29.8042196075727404,100.000000000009621,86.0240539433014106]},"#ffcccc":{"lch":[86.4083433793485,32.2775975377643,12.1770506300627517],"luv":[86.4083433793485,31.5513664521307504,6.80841962670093892],"rgb":[1,0.8,0.8],"xyz":[0.737289233507646524,0.688069099674605167,0.665261185393773324],"hpluv":[12.1770506300627517,103.973607583717524,86.4083433793485],"hsluv":[12.1770506300627517,100.000000000010388,86.4083433793485]},"#ffccdd":{"lch":[86.8335972965778637,30.2635044437543748,348.373924949033096],"luv":[86.8335972965778637,29.6426074465171432,-6.09881340826452867],"rgb":[1,0.8,0.866666666666666696],"xyz":[0.758807559058280123,0.696676429894858673,0.778591033293779322],"hpluv":[348.373924949033096,100.994037434302086,86.8335972965778637],"hsluv":[348.373924949033096,100.000000000011042,86.8335972965778637]},"#ffccee":{"lch":[87.3001202800073344,33.8382691858854301,324.868297683069],"luv":[87.3001202800073344,27.6740002852911822,-19.4724977777928352],"rgb":[1,0.8,0.933333333333333348],"xyz":[0.782619739324454833,0.70620130200132869,0.904001849362302545],"hpluv":[324.868297683069,117.528800717138253,87.3001202800073344],"hsluv":[324.868297683069,100.000000000011482,87.3001202800073344]},"#ffccff":{"lch":[87.8080440143565255,41.9549825399590404,307.715012949248376],"luv":[87.8080440143565255,25.6653035474654807,-33.1890456889728],"rgb":[1,0.8,1],"xyz":[0.808790787734286254,0.716669721365261414,1.0418360376540845],"hpluv":[307.715012949248376,152.433043069806,87.8080440143565255],"hsluv":[307.715012949248376,100.000000000012506,87.8080440143565255]},"#aa4400":{"lch":[42.2796461632011074,91.196234940608619,23.7609213617016479],"luv":[42.2796461632011074,83.4659581293579578,36.7448921741641357],"rgb":[0.66666666666666663,0.266666666666666663,0],"xyz":[0.186442254479824487,0.126816788621301801,0.0146606651121894659],"hpluv":[23.7609213617016479,273.706361359402308,42.2796461632011074],"hsluv":[23.7609213617016479,100.000000000002331,42.2796461632011074]},"#aa4411":{"lch":[42.3415695164373815,89.5099073241138399,22.7237862619920179],"luv":[42.3415695164373815,82.5619515402106572,34.5766925405446202],"rgb":[0.66666666666666663,0.266666666666666663,0.0666666666666666657],"xyz":[0.18745391997946162,0.127221454821156654,0.0199887700769451],"hpluv":[22.7237862619920179,268.252316854423896,42.3415695164373815],"hsluv":[22.7237862619920179,95.0030043013494634,42.3415695164373815]},"#aa4422":{"lch":[42.4560124733741162,86.5487219398638,20.7501492775311753],"luv":[42.4560124733741162,80.9346773489764075,30.663647399501361],"rgb":[0.66666666666666663,0.266666666666666663,0.133333333333333331],"xyz":[0.189329278117938621,0.127971598076547483,0.0298656562729242916],"hpluv":[20.7501492775311753,258.678767688655569,42.4560124733741162],"hsluv":[20.7501492775311753,86.0172479577967692,42.4560124733741162]},"#aa4433":{"lch":[42.643470741830761,82.1252826930209494,17.3597256589108966],"luv":[42.643470741830761,78.3845002494828691,24.5037176372775498],"rgb":[0.66666666666666663,0.266666666666666663,0.2],"xyz":[0.192417028850396354,0.129206698369530582,0.0461278101305354349],"hpluv":[17.3597256589108966,244.378874013338617,42.643470741830761],"hsluv":[17.3597256589108966,71.9602068881057733,42.643470741830761]},"#aa4444":{"lch":[42.9120210749329871,76.685866981555165,12.1770506300619239],"luv":[42.9120210749329871,74.9604702767477704,16.1756017075590073],"rgb":[0.66666666666666663,0.266666666666666663,0.266666666666666663],"xyz":[0.196875024094615242,0.130989896467218175,0.0696065850834220734],"hpluv":[12.1770506300619239,226.764824908056937,42.9120210749329871],"hsluv":[12.1770506300619239,53.1380271992519795,42.9120210749329871]},"#aa4455":{"lch":[43.2674147484635299,71.0489272172787594,4.80785478807657096],"luv":[43.2674147484635299,70.7989329223205,5.9549270177674023],"rgb":[0.66666666666666663,0.266666666666666663,0.333333333333333315],"xyz":[0.202837438133977255,0.133374862082963,0.101008632357395989],"hpluv":[4.80785478807657096,208.370342069187018,43.2674147484635299],"hsluv":[4.80785478807657096,55.6796565441877931,43.2674147484635299]},"#aa4466":{"lch":[43.7134526285125489,66.3411716499448261,355.020980864279068],"luv":[43.7134526285125489,66.0908363196155477,-5.75781299290188],"rgb":[0.66666666666666663,0.266666666666666663,0.4],"xyz":[0.210422433907485412,0.136408860392366299,0.140956276764539951],"hpluv":[355.020980864279068,192.578302395247789,43.7134526285125489],"hsluv":[355.020980864279068,58.5402216503940949,43.7134526285125489]},"#aa4477":{"lch":[44.252209356870793,63.7921835342278598,343.127789968560137],"luv":[44.252209356870793,61.046215168807521,-18.5149208377531842],"rgb":[0.66666666666666663,0.266666666666666663,0.466666666666666674],"xyz":[0.219736446927687346,0.140134465600447122,0.19001007867093786],"hpluv":[343.127789968560137,182.924482874911519,44.252209356870793],"hsluv":[343.127789968560137,61.5848400189491372,44.252209356870793]},"#aa4488":{"lch":[44.8842146397509367,64.3242328637060865,330.281311898752961],"luv":[44.8842146397509367,55.8636578331810938,-31.8882214461946916],"rgb":[0.66666666666666663,0.266666666666666663,0.533333333333333326],"xyz":[0.230876864029631146,0.14459063244122472,0.248682942074510027],"hpluv":[330.281311898752961,181.852933643495049,44.8842146397509367],"hsluv":[330.281311898752961,64.6866121014520274,44.8842146397509367]},"#aa4499":{"lch":[45.6086312393750077,68.1395242873703779,318.091147538790551],"luv":[45.6086312393750077,50.7100032224043318,-45.5136281051387854],"rgb":[0.66666666666666663,0.266666666666666663,0.6],"xyz":[0.243933828138703873,0.149813418084853878,0.317449619715627906],"hpluv":[318.091147538790551,189.579504981677246,45.6086312393750077],"hsluv":[318.091147538790551,67.7395528675925,45.6086312393750077]},"#aa44aa":{"lch":[46.4234422285949293,74.7240378323112822,307.715012949244056],"luv":[46.4234422285949293,45.7112599542092468,-59.1114417296972476],"rgb":[0.66666666666666663,0.266666666666666663,0.66666666666666663],"xyz":[0.258991521103956401,0.155836495270954972,0.396753469332626507],"hpluv":[307.715012949244056,204.25011915803762,46.4234422285949293],"hsluv":[307.715012949244056,70.6643205278868862,46.4234422285949293]},"#aa44bb":{"lch":[47.3256474704596144,83.2556513741305224,299.464802712285689],"luv":[47.3256474704596144,40.9525224701243289,-72.4872015535482177],"rgb":[0.66666666666666663,0.266666666666666663,0.733333333333333282],"xyz":[0.276129113211293076,0.162691532113889731,0.487011454431268254],"hpluv":[299.464802712285689,223.2320179514779,47.3256474704596144],"hsluv":[299.464802712285689,73.4081717041738244,47.3256474704596144]},"#aa44cc":{"lch":[48.311463406953564,92.9774863668884564,293.103270963637385],"luv":[48.311463406953564,36.4834012629607827,-85.5206080625642073],"rgb":[0.66666666666666663,0.266666666666666663,0.8],"xyz":[0.29542148865501483,0.170408482291378532,0.58861796510153841],"hpluv":[293.103270963637385,244.211962975346665,48.311463406953564],"hsluv":[293.103270963637385,75.9413806031634806,48.311463406953564]},"#aa44dd":{"lch":[49.376518181476186,103.335675962773564,288.229438001673088],"luv":[49.376518181476186,32.3257723855767125,-98.1494083851717676],"rgb":[0.66666666666666663,0.266666666666666663,0.866666666666666696],"xyz":[0.316939814205648318,0.179015812511632066,0.701947813001544407],"hpluv":[288.229438001673088,265.563967984367252,49.376518181476186],"hsluv":[288.229438001673088,78.2521754793284572,49.376518181476186]},"#aa44ee":{"lch":[50.5160343838387149,113.969241853628489,284.471970959088878],"luv":[50.5160343838387149,28.4816380653286,-110.35299897060564],"rgb":[0.66666666666666663,0.266666666666666663,0.933333333333333348],"xyz":[0.340751994471823083,0.188540684618102111,0.82735862907006763],"hpluv":[284.471970959088878,286.284434407824506,50.5160343838387149],"hsluv":[284.471970959088878,88.5420288112715355,50.5160343838387149]},"#aa44ff":{"lch":[51.7249932896939271,124.658572052901789,281.540806859048416],"luv":[51.7249932896939271,24.9399169363974949,-122.138282816953421],"rgb":[0.66666666666666663,0.266666666666666663,1],"xyz":[0.366923042881654449,0.199009103982034807,0.965192817361849476],"hpluv":[281.540806859048416,305.816582895375404,51.7249932896939271],"hsluv":[281.540806859048416,99.9999999999991189,51.7249932896939271]},"#885500":{"lch":[40.7868302215615941,57.8204075903908716,44.0255445375638317],"luv":[40.7868302215615941,41.5746091122878738,40.1839695784202107],"rgb":[0.533333333333333326,0.333333333333333315,0],"xyz":[0.134014735183400707,0.117319151919440201,0.0155871309747999068],"hpluv":[44.0255445375638317,179.887306981779091,40.7868302215615941],"hsluv":[44.0255445375638317,100.000000000002402,40.7868302215615941]},"#885511":{"lch":[40.8520464566488215,55.8013246771799061,42.6953812551229817],"luv":[40.8520464566488215,41.012258348334349,37.838901951530346],"rgb":[0.533333333333333326,0.333333333333333315,0.0666666666666666657],"xyz":[0.135026400683037839,0.117723818119295054,0.0209152359395555383],"hpluv":[42.6953812551229817,173.328515822040885,40.8520464566488215],"hsluv":[42.6953812551229817,94.5141207032234121,40.8520464566488215]},"#885522":{"lch":[40.9725457623763205,52.2529579480882163,40.0436802938645613],"luv":[40.9725457623763205,40.0024704692244413,33.6180601862079769],"rgb":[0.533333333333333326,0.333333333333333315,0.133333333333333331],"xyz":[0.136901758821514841,0.118473961374685868,0.0307921221355347344],"hpluv":[40.0436802938645613,161.829338044896133,40.9725457623763205],"hsluv":[40.0436802938645613,84.6783920295854813,40.9725457623763205]},"#885533":{"lch":[41.169842808691,46.965215190705,35.0963808532685348],"luv":[41.169842808691,38.426283274472091,27.0028182162390955],"rgb":[0.533333333333333326,0.333333333333333315,0.2],"xyz":[0.139989509553972602,0.119709061667668981,0.0470542759931458776],"hpluv":[35.0963808532685348,144.75595347357384,41.169842808691],"hsluv":[35.0963808532685348,69.3663942781120113,41.169842808691]},"#885544":{"lch":[41.4523140669009891,40.5881659839312263,26.5063976077417607],"luv":[41.4523140669009891,36.321721997537459,18.1144066718387258],"rgb":[0.533333333333333326,0.333333333333333315,0.266666666666666663],"xyz":[0.144447504798191462,0.121492259765356561,0.0705330509460325161],"hpluv":[26.5063976077417607,124.248162385526584,41.4523140669009891],"hsluv":[26.5063976077417607,49.0053368988820708,41.4523140669009891]},"#885555":{"lch":[41.8258216452066449,34.5587016635497619,12.1770506300621708],"luv":[41.8258216452066449,33.7811467851905647,7.28958040957408926],"rgb":[0.533333333333333326,0.333333333333333315,0.333333333333333315],"xyz":[0.150409918837553447,0.123877225381101394,0.101935098220006432],"hpluv":[12.1770506300621708,104.846095879990827,41.8258216452066449],"hsluv":[12.1770506300621708,24.5686900376428454,41.8258216452066449]},"#885566":{"lch":[42.2941086985740071,31.3312262907584227,350.801819307985852],"luv":[42.2941086985740071,30.9283487442626033,-5.00829160852097477],"rgb":[0.533333333333333326,0.333333333333333315,0.4],"xyz":[0.157994914611061632,0.126911223690504699,0.141882742627150393],"hpluv":[350.801819307985852,94.0019456509277092,42.2941086985740071],"hsluv":[350.801819307985852,29.8132814869556348,42.2941086985740071]},"#885577":{"lch":[42.8590433503379202,33.3514130793808121,326.760730108285],"luv":[42.8590433503379202,27.8947491372056646,-18.2811302977648822],"rgb":[0.533333333333333326,0.333333333333333315,0.466666666666666674],"xyz":[0.167308927631263538,0.130636828898585522,0.190936544533548302],"hpluv":[326.760730108285,98.7440857113442263,42.8590433503379202],"hsluv":[326.760730108285,35.3342565461126838,42.8590433503379202]},"#885588":{"lch":[43.5208237898043535,40.5407907233736822,307.71501294924542],"luv":[43.5208237898043535,24.8001938501248809,-32.0703304858651137],"rgb":[0.533333333333333326,0.333333333333333315,0.533333333333333326],"xyz":[0.178449344733207393,0.13509299573936312,0.24960940793712047],"hpluv":[307.71501294924542,118.204615389413121,43.5208237898043535],"hsluv":[307.71501294924542,40.8951968507306276,43.5208237898043535]},"#885599":{"lch":[44.278184332936334,50.8805981998246,295.296495298175159],"luv":[44.278184332936334,21.7414099229374891,-46.0015909261276477],"rgb":[0.533333333333333326,0.333333333333333315,0.6],"xyz":[0.191506308842280093,0.140315781382992277,0.318376085578238377],"hpluv":[295.296495298175159,145.814841874582299,44.278184332936334],"hsluv":[295.296495298175159,46.3068912836000735,44.278184332936334]},"#8855aa":{"lch":[45.1286132569148819,62.6826496939872868,287.441560465434577],"luv":[45.1286132569148819,18.7880516159354372,-59.8006997378464717],"rgb":[0.533333333333333326,0.333333333333333315,0.66666666666666663],"xyz":[0.206564001807532649,0.146338858569093372,0.397679935195237],"hpluv":[287.441560465434577,176.252255995348207,45.1286132569148819],"hsluv":[287.441560465434577,51.4349240401982044,45.1286132569148819]},"#8855bb":{"lch":[46.0685799041538857,75.0110486022347374,282.303621490188448],"luv":[46.0685799041538857,15.9842650126874819,-73.2882029006783284],"rgb":[0.533333333333333326,0.333333333333333315,0.733333333333333282],"xyz":[0.223701593914869268,0.15319389541202813,0.487937920293878724],"hpluv":[282.303621490188448,206.613996430434867,46.0685799041538857],"hsluv":[282.303621490188448,56.1963190544194191,46.0685799041538857]},"#8855cc":{"lch":[47.0937627302438173,87.3889723072186229,278.789341148015808],"luv":[47.0937627302438173,13.3532090014702405,-86.3627482788434406],"rgb":[0.533333333333333326,0.333333333333333315,0.8],"xyz":[0.242993969358591022,0.160910845589516932,0.58954443096414888],"hpluv":[278.789341148015808,235.468364438494291,47.0937627302438173],"hsluv":[278.789341148015808,67.0071532265272083,47.0937627302438173]},"#8855dd":{"lch":[48.1992684502362323,99.579643468316263,276.285619014825784],"luv":[48.1992684502362323,10.9024601244232162,-98.9810171523426163],"rgb":[0.533333333333333326,0.333333333333333315,0.866666666666666696],"xyz":[0.264512294909224566,0.169518175809770466,0.702874278864154878],"hpluv":[276.285619014825784,262.161822059859048,48.1992684502362323],"hsluv":[276.285619014825784,77.9008511174594673,48.1992684502362323]},"#8855ee":{"lch":[49.3798334670730128,111.473561000814087,274.439637972028379],"luv":[49.3798334670730128,8.62903279282213198,-111.139077714648238],"rgb":[0.533333333333333326,0.333333333333333315,0.933333333333333348],"xyz":[0.288324475175399275,0.179043047916240511,0.828285094932678101],"hpluv":[274.439637972028379,286.45841220928196,49.3798334670730128],"hsluv":[274.439637972028379,88.8665998649397295,49.3798334670730128]},"#8855ff":{"lch":[50.6300011250937416,123.030386306339324,273.039422554437692],"luv":[50.6300011250937416,6.52344684402536235,-122.857318039912712],"rgb":[0.533333333333333326,0.333333333333333315,1],"xyz":[0.314495523585230696,0.189511467280173207,0.96611928322446],"hpluv":[273.039422554437692,308.349875308867752,50.6300011250937416],"hsluv":[273.039422554437692,99.9999999999992,50.6300011250937416]},"#ffdd00":{"lch":[88.435570144315335,99.3071523162376195,71.7429005549186911],"luv":[88.435570144315335,31.1110916577435432,94.3080615696447211],"rgb":[1,0.866666666666666696,0],"xyz":[0.670943989879631442,0.729745387098879927,0.105515215586815703],"hpluv":[71.7429005549186911,382.363935262913174,88.435570144315335],"hsluv":[71.7429005549186911,100.000000000012946,88.435570144315335]},"#ffdd11":{"lch":[88.454870819445,98.4678340856778,71.6448189166009826],"luv":[88.454870819445,31.0081800872079896,93.4580500395971683],"rgb":[1,0.866666666666666696,0.0666666666666666657],"xyz":[0.671955655379268602,0.730150053298734836,0.110843320551571339],"hpluv":[71.6448189166009826,379.826472639876158,88.454870819445],"hsluv":[71.6448189166009826,100.00000000001296,88.454870819445]},"#ffdd22":{"lch":[88.4906302718539735,96.9204819130462,71.4594307996413],"luv":[88.4906302718539735,30.8183922605744947,91.8901872494037093],"rgb":[1,0.866666666666666696,0.133333333333333331],"xyz":[0.673831013517745547,0.730900196554125636,0.120720206747550532],"hpluv":[71.4594307996413,375.129750349680876,88.4906302718539735],"hsluv":[71.4594307996413,100.00000000001296,88.4906302718539735]},"#ffdd33":{"lch":[88.5494544369894641,94.3967280931520776,71.1436744567929793],"luv":[88.5494544369894641,30.5086598694284135,89.330643945199526],"rgb":[1,0.866666666666666696,0.2],"xyz":[0.676918764250203364,0.732135296847108763,0.136982360605161668],"hpluv":[71.1436744567929793,367.416320973762822,88.5494544369894641],"hsluv":[71.1436744567929793,100.000000000013216,88.5494544369894641]},"#ffdd44":{"lch":[88.6342662809689301,90.8049878425315455,70.6631891871382152],"luv":[88.6342662809689301,30.0674100616276441,85.6825342136204284],"rgb":[1,0.866666666666666696,0.266666666666666663],"xyz":[0.681376759494422224,0.733918494944796329,0.160461135558048307],"hpluv":[70.6631891871382152,356.322085242203968,88.6342662809689301],"hsluv":[70.6631891871382152,100.000000000013173,88.6342662809689301]},"#ffdd55":{"lch":[88.7474847112806486,86.0957791731635353,69.970644696948483],"luv":[88.7474847112806486,29.4879375414461293,80.8884709398435433],"rgb":[1,0.866666666666666696,0.333333333333333315],"xyz":[0.687339173533784153,0.736303460560541079,0.191863182832022222],"hpluv":[69.970644696948483,341.559684906391112,88.7474847112806486],"hsluv":[69.970644696948483,100.000000000013429,88.7474847112806486]},"#ffdd66":{"lch":[88.8911610589964454,80.258955992054581,68.9956984045855819],"luv":[88.8911610589964454,28.7678627944319345,74.9260307715235427],"rgb":[1,0.866666666666666696,0.4],"xyz":[0.694924169307292394,0.739337458869944397,0.231810827239166184],"hpluv":[68.9956984045855819,322.902183683526573,88.8911610589964454],"hsluv":[68.9956984045855819,100.000000000013586,88.8911610589964454]},"#ffdd77":{"lch":[89.0670520916409885,73.323747836811151,67.6276760217336346],"luv":[89.0670520916409885,27.9087592291374555,67.8046691248198812],"rgb":[1,0.866666666666666696,0.466666666666666674],"xyz":[0.704238182327494244,0.743063064078025248,0.280864629145564093],"hpluv":[67.6276760217336346,300.178104609939055,89.0670520916409885],"hsluv":[67.6276760217336346,100.000000000014367,89.0670520916409885]},"#ffdd88":{"lch":[89.2766635023192379,65.3617696880632622,65.6822421460803554],"luv":[89.2766635023192379,26.9157684368328205,59.5625918359016637],"rgb":[1,0.866666666666666696,0.533333333333333326],"xyz":[0.715378599429438156,0.747519230918802791,0.339537492549136233],"hpluv":[65.6822421460803554,273.280966903928913,89.2766635023192379],"hsluv":[65.6822421460803554,100.00000000001468,89.2766635023192379]},"#ffdd99":{"lch":[89.5212778802452362,56.4966374008110606,62.8311838382076928],"luv":[89.5212778802452362,25.7971434460875209,50.2630821540094814],"rgb":[1,0.866666666666666696,0.6],"xyz":[0.7284355635385108,0.752742016562432,0.408304170190254168],"hpluv":[62.8311838382076928,242.212083001239,89.5212778802452362],"hsluv":[62.8311838382076928,100.000000000014893,89.5212778802452362]},"#ffddaa":{"lch":[89.8019739344538408,46.9317870748453103,58.439957868293348],"luv":[89.8019739344538408,24.5637119196041205,39.9902074859498],"rgb":[1,0.866666666666666696,0.66666666666666663],"xyz":[0.743493256503763411,0.75876509374853307,0.487608019807252768],"hpluv":[58.439957868293348,207.216087370130765,89.8019739344538408],"hsluv":[58.439957868293348,100.000000000015916,89.8019739344538408]},"#ffddbb":{"lch":[90.1196406145249114,37.0342016806554142,51.1553076529108282],"luv":[90.1196406145249114,23.228278171915747,28.8440494260352231],"rgb":[1,0.866666666666666696,0.733333333333333282],"xyz":[0.7606308486111,0.765620130591467829,0.57786600490589457],"hpluv":[51.1553076529108282,169.207898233907059,90.1196406145249114],"hsluv":[51.1553076529108282,100.00000000001647,90.1196406145249114]},"#ffddcc":{"lch":[90.4749882420216665,27.6093496047032829,37.8361109659034085],"luv":[90.4749882420216665,21.8049964890922183,16.9357111957368183],"rgb":[1,0.866666666666666696,0.8],"xyz":[0.779923224054821729,0.773337080768956686,0.679472515576164726],"hpluv":[37.8361109659034085,131.228146902908946,90.4749882420216665],"hsluv":[37.8361109659034085,100.000000000017565,90.4749882420216665]},"#ffdddd":{"lch":[90.8685579434819743,20.7762078419716971,12.1770506300632935],"luv":[90.8685579434819743,20.3087527298379129,4.38239373528981613],"rgb":[1,0.866666666666666696,0.866666666666666696],"xyz":[0.801441549605455328,0.781944410989210192,0.792802363476170724],"hpluv":[12.1770506300632935,103.332662997484363,90.8685579434819743],"hsluv":[12.1770506300632935,100.000000000018645,90.8685579434819743]},"#ffddee":{"lch":[91.3007301977477255,20.6730653908416642,335.121130580225611],"luv":[91.3007301977477255,18.7545890012647547,-8.69718483462634318],"rgb":[1,0.866666666666666696,0.933333333333333348],"xyz":[0.82525372987163,0.791469283095680209,0.918213179544694],"hpluv":[335.121130580225611,108.301670079840079,91.3007301977477255],"hsluv":[335.121130580225611,100.000000000019696,91.3007301977477255]},"#ffddff":{"lch":[91.7717330140538081,28.0468143452174594,307.715012949251673],"luv":[91.7717330140538081,17.1571994583452359,-22.1868046744377736],"rgb":[1,0.866666666666666696,1],"xyz":[0.851424778281461458,0.801937702459612933,1.05604736783647568],"hpluv":[307.715012949251673,155.925616416863875,91.7717330140538081],"hsluv":[307.715012949251673,100.000000000021274,91.7717330140538081]},"#aa5500":{"lch":[45.6948541105979729,81.8101604081173406,31.0178153240564285],"luv":[45.6948541105979729,70.1118895783240674,42.1571498770823254],"rgb":[0.66666666666666663,0.333333333333333315,0],"xyz":[0.198255511194170453,0.150443302049994065,0.0185984173503046732],"hpluv":[31.0178153240564285,227.184802334875343,45.6948541105979729],"hsluv":[31.0178153240564285,100.000000000002132,45.6948541105979729]},"#aa5511":{"lch":[45.7501207141343542,80.2053049231342357,30.0334267749456458],"luv":[45.7501207141343542,69.4364235827854088,40.1431690060082786],"rgb":[0.66666666666666663,0.333333333333333315,0.0666666666666666657],"xyz":[0.199267176693807585,0.150847968249848918,0.0239265223150603029],"hpluv":[30.0334267749456458,222.459100300712947,45.7501207141343542],"hsluv":[30.0334267749456458,95.7485290168496874,45.7501207141343542]},"#aa5522":{"lch":[45.8523093955831129,77.3637164970789826,28.1463245173948593],"luv":[45.8523093955831129,68.2151287979892231,36.4943945464800308],"rgb":[0.66666666666666663,0.333333333333333315,0.133333333333333331],"xyz":[0.201142534832284586,0.151598111505239747,0.0338034085110395],"hpluv":[28.1463245173948593,214.099393521154866,45.8523093955831129],"hsluv":[28.1463245173948593,88.0687786146531835,45.8523093955831129]},"#aa5533":{"lch":[46.0198296754266707,73.057054041475979,24.8605966968797674],"luv":[46.0198296754266707,66.2871018342682845,30.7140566456547255],"rgb":[0.66666666666666663,0.333333333333333315,0.2],"xyz":[0.20423028556474232,0.152833211798222846,0.0500655623686506457],"hpluv":[24.8605966968797674,201.444992058953261,46.0198296754266707],"hsluv":[24.8605966968797674,75.9647480733224683,46.0198296754266707]},"#aa5544":{"lch":[46.260105303202792,67.6400753638857,19.7251402693972757],"luv":[46.260105303202792,63.6711277752059743,22.829088529013422],"rgb":[0.66666666666666663,0.333333333333333315,0.266666666666666663],"xyz":[0.208688280808961207,0.154616409895910439,0.0735443373215372842],"hpluv":[19.7251402693972757,185.539675327038225,46.260105303202792],"hsluv":[19.7251402693972757,59.5831884891410581,46.260105303202792]},"#aa5555":{"lch":[46.5785950143652201,61.8404850960729462,12.1770506300619488],"luv":[46.5785950143652201,60.4491026496292108,13.0442165641410206],"rgb":[0.66666666666666663,0.333333333333333315,0.333333333333333315],"xyz":[0.21465069484832322,0.157001375511655272,0.1049463845955112],"hpluv":[12.1770506300619488,168.471262237657498,46.5785950143652201],"hsluv":[12.1770506300619488,39.4780386186733381,46.5785950143652201]},"#aa5566":{"lch":[46.9791292969753727,56.7719582569154682,1.70455911852653919],"luv":[46.9791292969753727,56.7468364589401801,1.68872621441415594],"rgb":[0.66666666666666663,0.333333333333333315,0.4],"xyz":[0.222235690621831378,0.160035373821058563,0.144894029002655161],"hpluv":[1.70455911852653919,153.34451205140752,46.9791292969753727],"hsluv":[1.70455911852653919,42.9013314457092818,46.9791292969753727]},"#aa5577":{"lch":[47.4641008255870247,53.815805251865207,348.374645401059922],"luv":[47.4641008255870247,52.7118371029350072,-10.8444974129891012],"rgb":[0.66666666666666663,0.333333333333333315,0.466666666666666674],"xyz":[0.231549703642033311,0.163760979029139386,0.193947830909053071],"hpluv":[348.374645401059922,143.874527939012694,47.4641008255870247],"hsluv":[348.374645401059922,46.6096363259647291,47.4641008255870247]},"#aa5588":{"lch":[48.0346061313586716,54.1759936988691209,333.519859036575326],"luv":[48.0346061313586716,48.4923339918738,-24.1564036495598238],"rgb":[0.66666666666666663,0.333333333333333315,0.533333333333333326],"xyz":[0.242690120743977111,0.168217145869916984,0.252620694312625238],"hpluv":[333.519859036575326,143.117248614217317,48.0346061313586716],"hsluv":[333.519859036575326,50.4580944804944309,48.0346061313586716]},"#aa5599":{"lch":[48.6905763376225,58.2309730669685877,319.412334073918828],"luv":[48.6905763376225,44.2212637341432782,-37.885697275903027],"rgb":[0.66666666666666663,0.333333333333333315,0.6],"xyz":[0.255747084853049866,0.173439931513546142,0.321387371953743117],"hpluv":[319.412334073918828,151.756904292295189,48.6905763376225],"hsluv":[319.412334073918828,54.3174516364451492,48.6905763376225]},"#aa55aa":{"lch":[49.4309115490906095,65.3990862514302904,307.715012949244453],"luv":[49.4309115490906095,40.0068668547544135,-51.7348150377284242],"rgb":[0.66666666666666663,0.333333333333333315,0.66666666666666663],"xyz":[0.270804777818302367,0.179463008699647236,0.400691221570741718],"hpluv":[307.715012949244453,167.885190443837445,49.4309115490906095],"hsluv":[307.715012949244453,58.0831627335764651,49.4309115490906095]},"#aa55bb":{"lch":[50.2536225490081137,74.6889496830887651,298.754319252296796],"luv":[50.2536225490081137,35.9294822147829578,-65.4790921786531896],"rgb":[0.66666666666666663,0.333333333333333315,0.733333333333333282],"xyz":[0.287942369925639041,0.186318045542582,0.490949206669383464],"hpluv":[298.754319252296796,188.594188212432869,50.2536225490081137],"hsluv":[298.754319252296796,61.6784311565058445,50.2536225490081137]},"#aa55cc":{"lch":[51.1559779262539394,85.2173265065914194,292.086991032215337],"luv":[51.1559779262539394,32.0428980728004476,-78.9635702082114],"rgb":[0.66666666666666663,0.333333333333333315,0.8],"xyz":[0.307234745369360795,0.194034995720070796,0.59255571733965362],"hpluv":[292.086991032215337,211.383381159177,51.1559779262539394],"hsluv":[292.086991032215337,65.0527897247966536,51.1559779262539394]},"#aa55dd":{"lch":[52.1346521614624407,96.3659410029227,287.126655540846059],"luv":[52.1346521614624407,28.3783197098194826,-92.0927008824589137],"rgb":[0.66666666666666663,0.333333333333333315,0.866666666666666696],"xyz":[0.328753070919994284,0.20264232594032433,0.705885565239659618],"hpluv":[287.126655540846059,234.550526854663673,52.1346521614624407],"hsluv":[287.126655540846059,75.3446722268955256,52.1346521614624407]},"#aa55ee":{"lch":[53.1858694266106227,107.745747725204239,283.388779775386126],"luv":[53.1858694266106227,24.9493252566021582,-104.817352199450397],"rgb":[0.66666666666666663,0.333333333333333315,0.933333333333333348],"xyz":[0.352565251186169049,0.212167198046794375,0.831296381308182841],"hpluv":[283.388779775386126,257.065149407391289,53.1858694266106227],"hsluv":[283.388779775386126,87.5522298773574335,53.1858694266106227]},"#aa55ff":{"lch":[54.3055382240479361,119.125691570750178,280.523377624217346],"luv":[54.3055382240479361,21.7567225446561139,-117.12205350114192],"rgb":[0.66666666666666663,0.333333333333333315,1],"xyz":[0.378736299596000414,0.222635617410727071,0.969130569599964686],"hpluv":[280.523377624217346,278.356033354379861,54.3055382240479361],"hsluv":[280.523377624217346,99.999999999999,54.3055382240479361]},"#886600":{"lch":[45.272583339231268,54.7393681124008964,58.6614018365849361],"luv":[45.272583339231268,28.4696504737342408,46.7533680417607513],"rgb":[0.533333333333333326,0.4,0],"xyz":[0.149042792889247183,0.147375267331133541,0.020596483543415256],"hpluv":[58.6614018365849361,153.427719347991228,45.272583339231268],"hsluv":[58.6614018365849361,100.000000000002288,45.272583339231268]},"#886611":{"lch":[45.3286132830504442,52.7569286908504935,57.8019218571504112],"luv":[45.3286132830504442,28.1114182485843394,44.6434954830448234],"rgb":[0.533333333333333326,0.4,0.0666666666666666657],"xyz":[0.150054458388884315,0.147779933530988394,0.0259245885081708857],"hpluv":[57.8019218571504112,147.688404254652824,45.3286132830504442],"hsluv":[57.8019218571504112,95.5933263309827765,45.3286132830504442]},"#886622":{"lch":[45.4322079122274616,49.2027541487777427,56.0700181971155658],"luv":[45.4322079122274616,27.4639619392241023,40.8245246197174367],"rgb":[0.533333333333333326,0.4,0.133333333333333331],"xyz":[0.151929816527361317,0.148530076786379223,0.0358014747041500853],"hpluv":[56.0700181971155658,137.424731357888106,45.4322079122274616],"hsluv":[56.0700181971155658,87.640709221506242,45.4322079122274616]},"#886633":{"lch":[45.6020177209920377,43.6934420281053448,52.7580970187872822],"luv":[45.6020177209920377,26.4424624059276816,34.7838045385277539],"rgb":[0.533333333333333326,0.4,0.2],"xyz":[0.155017567259819078,0.149765177079362322,0.0520636285617612285],"hpluv":[52.7580970187872822,121.582627853675135,45.6020177209920377],"hsluv":[52.7580970187872822,75.126145239043538,45.6020177209920377]},"#886644":{"lch":[45.8455444844743383,36.5157977851307862,46.6690567683987183],"luv":[45.8455444844743383,25.057552877875338,26.56167411246971],"rgb":[0.533333333333333326,0.4,0.266666666666666663],"xyz":[0.159475562504037938,0.151548375177049915,0.0755424035146478601],"hpluv":[46.6690567683987183,101.07016738030697,45.8455444844743383],"hsluv":[46.6690567683987183,58.2269221932267413,45.8455444844743383]},"#886655":{"lch":[46.1682850891648,28.5288655346450497,35.057100942904512],"luv":[46.1682850891648,23.3531590809093643,16.3867669061227161],"rgb":[0.533333333333333326,0.4,0.333333333333333315],"xyz":[0.165437976543399923,0.153933340792794748,0.106944450788621775],"hpluv":[35.057100942904512,78.4115584201214517,46.1682850891648],"hsluv":[35.057100942904512,37.5458750067509825,46.1682850891648]},"#886666":{"lch":[46.5740725388720946,21.8884171395184417,12.1770506300623786],"luv":[46.5740725388720946,21.3959378301945833,4.61699569417310141],"rgb":[0.533333333333333326,0.4,0.4],"xyz":[0.173022972316908108,0.156967339102198039,0.146892095195765737],"hpluv":[12.1770506300623786,59.6361320849851921,46.5740725388720946],"hsluv":[12.1770506300623786,13.9745942082290213,46.5740725388720946]},"#886677":{"lch":[47.0652698878111053,20.9860757761626395,336.621799391030947],"luv":[47.0652698878111053,19.2632377900225293,-8.32724722389627559],"rgb":[0.533333333333333326,0.4,0.466666666666666674],"xyz":[0.18233698533711,0.160692944310278862,0.195945897102163646],"hpluv":[336.621799391030947,56.5809206524471051,47.0652698878111053],"hsluv":[336.621799391030947,19.7183189325496855,47.0652698878111053]},"#886688":{"lch":[47.6429159175320649,27.8420771343032278,307.715012949247239],"luv":[47.6429159175320649,17.0319546757823481,-22.0248445868429776],"rgb":[0.533333333333333326,0.4,0.533333333333333326],"xyz":[0.193477402439053869,0.16514911115105646,0.254618760505735842],"hpluv":[307.715012949247239,74.1553731862279335,47.6429159175320649],"hsluv":[307.715012949247239,25.6555006249089494,47.6429159175320649]},"#886699":{"lch":[48.306860672000596,39.0046617113806562,292.251886736336132],"luv":[48.306860672000596,14.770249996667463,-36.0999078981538304],"rgb":[0.533333333333333326,0.4,0.6],"xyz":[0.206534366548126569,0.170371896794685618,0.323385438146853721],"hpluv":[292.251886736336132,102.458272059709785,48.306860672000596],"hsluv":[292.251886736336132,31.5854767603208231,48.306860672000596]},"#8866aa":{"lch":[49.0559053000777112,51.7871044207240132,284.005102499462396],"luv":[49.0559053000777112,12.5329093477081912,-50.2476901714407305],"rgb":[0.533333333333333326,0.4,0.66666666666666663],"xyz":[0.221592059513379125,0.176394973980786712,0.402689287763852322],"hpluv":[284.005102499462396,133.958310232957899,49.0559053000777112],"hsluv":[284.005102499462396,39.6059098285329867,49.0559053000777112]},"#8866bb":{"lch":[49.8879495217490074,65.0723394771694501,279.16089377463328],"luv":[49.8879495217490074,10.3599978518109275,-64.242352148271],"rgb":[0.533333333333333326,0.4,0.733333333333333282],"xyz":[0.238729651620715744,0.183250010823721471,0.492947272862494068],"hpluv":[279.16089377463328,165.516042277675325,49.8879495217490074],"hsluv":[279.16089377463328,51.4342030459355897,49.8879495217490074]},"#8866cc":{"lch":[50.800144438276476,78.3702679805165161,276.063171305995638],"luv":[50.800144438276476,8.2778522611756955,-77.9318680982312912],"rgb":[0.533333333333333326,0.4,0.8],"xyz":[0.258022027064437498,0.190966961001210273,0.594553783532764224],"hpluv":[276.063171305995638,195.760791019658512,50.800144438276476],"hsluv":[276.063171305995638,63.370404435102877,50.800144438276476]},"#8866dd":{"lch":[51.7890458420015278,91.4433004674113903,273.951375062119212],"luv":[51.7890458420015278,6.3013441888180548,-91.225929766636682],"rgb":[0.533333333333333326,0.4,0.866666666666666696],"xyz":[0.279540352615071042,0.199574291221463807,0.707883631432770222],"hpluv":[273.951375062119212,224.054313572832513,51.7890458420015278],"hsluv":[273.951375062119212,75.4110532620532,51.7890458420015278]},"#8866ee":{"lch":[52.8507624936088831,104.176067138923727,272.440799986921],"luv":[52.8507624936088831,4.4365578942807,-104.081554170680207],"rgb":[0.533333333333333326,0.4,0.933333333333333348],"xyz":[0.303352532881245751,0.209099163327933851,0.833294447501293445],"hpluv":[272.440799986921,250.124381092910085,52.8507624936088831],"hsluv":[272.440799986921,87.5962217171162365,52.8507624936088831]},"#8866ff":{"lch":[53.9810943197935273,116.520298408763196,271.319576027424205],"luv":[53.9810943197935273,2.6833355157121912,-116.48939716462327],"rgb":[0.533333333333333326,0.4,1],"xyz":[0.329523581291077172,0.219567582691866547,0.97112863579307529],"hpluv":[271.319576027424205,273.904539658900717,53.9810943197935273],"hsluv":[271.319576027424205,99.9999999999990621,53.9810943197935273]},"#ffee00":{"lch":[92.75564548426334,102.358730475882979,79.2433869538170228],"luv":[92.75564548426334,19.1039702538988,100.560171167180329],"rgb":[1,0.933333333333333348,0],"xyz":[0.718122766220146147,0.824102939779910892,0.121241474366986887],"hpluv":[79.2433869538170228,651.393632104361359,92.75564548426334],"hsluv":[79.2433869538170228,100.000000000024428,92.75564548426334]},"#ffee11":{"lch":[92.7734436379168,101.564402459740549,79.2015044483446218],"luv":[92.7734436379168,19.0286516433192254,99.765917344759373],"rgb":[1,0.933333333333333348,0.0666666666666666657],"xyz":[0.719134431719783307,0.824507605979765801,0.12656957933174251],"hpluv":[79.2015044483446218,648.021125158270593,92.7734436379168],"hsluv":[79.2015044483446218,100.000000000024428,92.7734436379168]},"#ffee22":{"lch":[92.8064212727168183,100.098587827824673,79.1224559985664797],"luv":[92.8064212727168183,18.8896613956421291,98.3000914418838079],"rgb":[1,0.933333333333333348,0.133333333333333331],"xyz":[0.721009789858260253,0.825257749235156601,0.136446465527721716],"hpluv":[79.1224559985664797,641.762708667564539,92.8064212727168183],"hsluv":[79.1224559985664797,100.000000000024357,92.8064212727168183]},"#ffee33":{"lch":[92.8606749716073665,97.7038183815635506,78.9881622996309147],"luv":[92.8606749716073665,18.6625824309063972,95.9048702796014396],"rgb":[1,0.933333333333333348,0.2],"xyz":[0.72409754059071807,0.826492849528139728,0.152708619385332867],"hpluv":[78.9881622996309147,631.438241912838748,92.8606749716073665],"hsluv":[78.9881622996309147,100.000000000024599,92.8606749716073665]},"#ffee44":{"lch":[92.9389094487226828,94.2867391890675606,78.7846200921967181],"luv":[92.9389094487226828,18.3385503337116411,92.4861436030564192],"rgb":[1,0.933333333333333348,0.266666666666666663],"xyz":[0.728555535834936929,0.828276047625827294,0.176187394338219505],"hpluv":[78.7846200921967181,616.484076987319668,92.9389094487226828],"hsluv":[78.7846200921967181,100.000000000025381,92.9389094487226828]},"#ffee55":{"lch":[93.0433700241155179,89.7896797607108,78.4929149488566082],"luv":[93.0433700241155179,17.9120631143144244,87.984911129805738],"rgb":[1,0.933333333333333348,0.333333333333333315],"xyz":[0.734517949874298859,0.830661013241572,0.207589441612193393],"hpluv":[78.4929149488566082,596.384103057951847,93.0433700241155179],"hsluv":[78.4929149488566082,100.000000000025906,93.0433700241155179]},"#ffee66":{"lch":[93.1759694096933,84.1867368500463,78.0854442567743661],"luv":[93.1759694096933,17.3805845725397461,82.3730656305550895],"rgb":[1,0.933333333333333348,0.4],"xyz":[0.7421029456478071,0.833695011550975362,0.247537086019337382],"hpluv":[78.0854442567743661,570.62648367707834,93.1759694096933],"hsluv":[78.0854442567743661,100.000000000026517,93.1759694096933]},"#ffee77":{"lch":[93.3383558005883742,77.4816602435733586,77.5195453952684659],"luv":[93.3383558005883742,16.7442947506152713,75.6507519288807515],"rgb":[1,0.933333333333333348,0.466666666666666674],"xyz":[0.751416958668009,0.837420616759056213,0.296590887925735291],"hpluv":[77.5195453952684659,538.663675570032183,93.3383558005883742],"hsluv":[77.5195453952684659,100.00000000002693,93.3383558005883742]},"#ffee88":{"lch":[93.5319535615141433,69.7063855050026433,76.7254067288761235],"luv":[93.5319535615141433,16.0058531534094222,67.8438858336072599],"rgb":[1,0.933333333333333348,0.533333333333333326],"xyz":[0.762557375769952861,0.841876783599833756,0.355263751329307431],"hpluv":[76.7254067288761235,499.867858345774721,93.5319535615141433],"hsluv":[76.7254067288761235,100.000000000028109,93.5319535615141433]},"#ffee99":{"lch":[93.7579894103796647,60.9203426164438397,75.5807218945013517],"luv":[93.7579894103796647,15.1701259512809905,59.0013171304435744],"rgb":[1,0.933333333333333348,0.6],"xyz":[0.775614339879025505,0.847099569243463,0.424030428970425366],"hpluv":[75.5807218945013517,453.479030486808085,93.7579894103796647],"hsluv":[75.5807218945013517,100.000000000029459,93.7579894103796647]},"#ffeeaa":{"lch":[94.0175103342715204,51.2122166590618946,73.8511258956299],"luv":[94.0175103342715204,14.2438643230739057,49.191497886124175],"rgb":[1,0.933333333333333348,0.66666666666666663],"xyz":[0.790672032844278116,0.853122646429564,0.503334278587424],"hpluv":[73.8511258956299,398.552269307706354,94.0175103342715204],"hsluv":[73.8511258956299,100.00000000003169,94.0175103342715204]},"#ffeebb":{"lch":[94.3113965930375855,40.7102572776027571,71.0277189369888],"luv":[94.3113965930375855,13.2353397134719373,38.4987120599845625],"rgb":[1,0.933333333333333348,0.733333333333333282],"xyz":[0.80780962495161468,0.859977683272498794,0.593592263686065658],"hpluv":[71.0277189369888,333.94796839081863,94.3113965930375855],"hsluv":[71.0277189369888,100.000000000032855,94.3113965930375855]},"#ffeecc":{"lch":[94.6403717602024841,29.6267857036886042,65.7803861656043125],"luv":[94.6403717602024841,12.1539519061426287,27.0190281874729799],"rgb":[1,0.933333333333333348,0.8],"xyz":[0.827102000395336434,0.867694633449987651,0.695198774356335814],"hpluv":[65.7803861656043125,258.601677072085806,94.6403717602024841],"hsluv":[65.7803861656043125,100.000000000035726,94.6403717602024841]},"#ffeedd":{"lch":[95.0050109981125814,18.4911495042727,53.4580761074439366],"luv":[95.0050109981125814,11.0098304435300403,14.8561853648264481],"rgb":[1,0.933333333333333348,0.866666666666666696],"xyz":[0.84862032594597,0.876301963670241157,0.808528622256341811],"hpluv":[53.4580761074439366,173.670551799097524,95.0050109981125814],"hsluv":[53.4580761074439366,100.000000000039279,95.0050109981125814]},"#ffeeee":{"lch":[95.4057483293867,10.0393308083340358,12.1770506300655121],"luv":[95.4057483293867,9.81345048674430487,2.11762900985580904],"rgb":[1,0.933333333333333348,0.933333333333333348],"xyz":[0.872432506212144743,0.885826835776711174,0.933939438324865],"hpluv":[12.1770506300655121,102.829227108855335,95.4057483293867],"hsluv":[12.1770506300655121,100.000000000042746,95.4057483293867]},"#ffeeff":{"lch":[95.8428833991312104,14.017983351086059,307.715012949261848],"luv":[95.8428833991312104,8.57528179129596,-11.0891117512266888],"rgb":[1,0.933333333333333348,1],"xyz":[0.898603554621976164,0.896295255140643898,1.07177362661664688],"hpluv":[307.715012949261848,159.207478793902965,95.8428833991312104],"hsluv":[307.715012949261848,100.000000000047876,95.8428833991312104]},"#aa6600":{"lch":[49.5566255632669623,74.0434564420528574,40.5370999312324685],"luv":[49.5566255632669623,56.2719368465296,48.1238253407432595],"rgb":[0.66666666666666663,0.4,0],"xyz":[0.213283568900016929,0.180499417461687406,0.0236077699189200241],"hpluv":[40.5370999312324685,189.593866720893345,49.5566255632669623],"hsluv":[40.5370999312324685,100.000000000002302,49.5566255632669623]},"#aa6611":{"lch":[49.6055800152373934,72.4782904829715449,39.6736286483530876],"luv":[49.6055800152373934,55.7860674256664097,46.2711278500211662],"rgb":[0.66666666666666663,0.4,0.0666666666666666657],"xyz":[0.214295234399654061,0.180904083661542259,0.0289358748836756538],"hpluv":[39.6736286483530876,185.402990863318706,49.6055800152373934],"hsluv":[39.6736286483530876,96.4267217319678878,49.6055800152373934]},"#aa6622":{"lch":[49.6961357673044404,69.6784302133091,38.0044715349972151],"luv":[49.6961357673044404,54.9040042209680124,42.902610147809348],"rgb":[0.66666666666666663,0.4,0.133333333333333331],"xyz":[0.216170592538131062,0.181654226916933087,0.0388127610796548533],"hpluv":[38.0044715349972151,177.916023719914563,49.6961357673044404],"hsluv":[38.0044715349972151,89.9454244119252593,49.6961357673044404]},"#aa6633":{"lch":[49.8446929303716502,65.3554895773238798,35.0519229290669685],"luv":[49.8446929303716502,53.5020897896209959,37.5348692023167061],"rgb":[0.66666666666666663,0.4,0.2],"xyz":[0.219258343270588796,0.182889327209916186,0.055074914937266],"hpluv":[35.0519229290669685,166.380518722129068,49.8446929303716502],"hsluv":[35.0519229290669685,79.6601301034586,49.8446929303716502]},"#aa6644":{"lch":[50.0579996788189163,59.7471791719702878,30.3078082111971625],"luv":[50.0579996788189163,51.5813401714318687,30.1511320703974341],"rgb":[0.66666666666666663,0.4,0.266666666666666663],"xyz":[0.223716338514807683,0.18467252530760378,0.0785536898901526282],"hpluv":[30.3078082111971625,151.454869534606559,50.0579996788189163],"hsluv":[30.3078082111971625,65.6016329960131,50.0579996788189163]},"#aa6655":{"lch":[50.3411543587309183,53.4384070136854916,23.0123473649378063],"luv":[50.3411543587309183,49.1858121787411307,20.8906492114991877],"rgb":[0.66666666666666663,0.4,0.333333333333333315],"xyz":[0.229678752554169696,0.187057490923348613,0.109955737164126544],"hpluv":[23.0123473649378063,134.70064023894011,50.3411543587309183],"hsluv":[23.0123473649378063,48.1262851503794238,50.3411543587309183]},"#aa6666":{"lch":[50.6979081899742283,47.4599132867605107,12.1770506300620198],"luv":[50.6979081899742283,46.3920870859415544,10.0108753362152232],"rgb":[0.66666666666666663,0.4,0.4],"xyz":[0.237263748327677854,0.190091489232751903,0.149903381571270505],"hpluv":[12.1770506300620198,118.788999996072334,50.6979081899742283],"hsluv":[12.1770506300620198,27.8359446414257086,50.6979081899742283]},"#aa6677":{"lch":[51.1308297914663399,43.3502150416948382,357.146673366158041],"luv":[51.1308297914663399,43.29647113668576,-2.15794607701909591],"rgb":[0.66666666666666663,0.4,0.466666666666666674],"xyz":[0.246577761347879787,0.193817094440832727,0.198957183477668414],"hpluv":[357.146673366158041,107.584013476394517,51.1308297914663399],"hsluv":[357.146673366158041,31.9217683762365354,51.1308297914663399]},"#aa6688":{"lch":[51.6414184020027,42.8134625942885876,339.120025752150127],"luv":[51.6414184020027,40.0018640870324234,-15.2592086582212207],"rgb":[0.66666666666666663,0.4,0.533333333333333326],"xyz":[0.257718178449823587,0.198273261281610325,0.257630046881240582],"hpluv":[339.120025752150127,105.201399585535427,51.6414184020027],"hsluv":[339.120025752150127,36.2396804223311,51.6414184020027]},"#aa6699":{"lch":[52.2302006219705675,46.6703467022409342,321.661853982703349],"luv":[52.2302006219705675,36.6065194780657563,-28.949680361091449],"rgb":[0.66666666666666663,0.4,0.6],"xyz":[0.270775142558896342,0.203496046925239482,0.326396724522358461],"hpluv":[321.661853982703349,113.385797667979,52.2302006219705675],"hsluv":[321.661853982703349,40.6514838109423,52.2302006219705675]},"#aa66aa":{"lch":[52.8968256208086274,54.2656136904176165,307.715012949245079],"luv":[52.8968256208086274,33.1961393674155048,-42.9275338250028753],"rgb":[0.66666666666666663,0.4,0.66666666666666663],"xyz":[0.285832835524148843,0.209519124111340577,0.405700574139357117],"hpluv":[307.715012949245079,130.177052782763241,52.8968256208086274],"hsluv":[307.715012949245079,45.0372955528084091,52.8968256208086274]},"#aa66bb":{"lch":[53.6401644756464293,64.2916348467718848,297.653919381785329],"luv":[53.6401644756464293,29.8396642728746109,-56.9474209016772193],"rgb":[0.66666666666666663,0.4,0.733333333333333282],"xyz":[0.302970427631485517,0.216374160954275335,0.495958559237998808],"hpluv":[297.653919381785329,152.091062924306783,53.6401644756464293],"hsluv":[297.653919381785329,49.3013965401631964,53.6401644756464293]},"#aa66cc":{"lch":[54.4584144535918853,75.6506824974921699,290.576693925999962],"luv":[54.4584144535918853,26.5882539678026326,-70.824363839571447],"rgb":[0.66666666666666663,0.4,0.8],"xyz":[0.322262803075207271,0.224091111131764137,0.597565069908269],"hpluv":[290.576693925999962,176.273563499159138,54.4584144535918853],"hsluv":[290.576693925999962,59.8478295858589107,54.4584144535918853]},"#aa66dd":{"lch":[55.3492064676394619,87.6329338161637423,285.539109011475546],"luv":[55.3492064676394619,23.4765185392287,-84.4297587732275],"rgb":[0.66666666666666663,0.4,0.866666666666666696],"xyz":[0.343781128625840759,0.232698441352017671,0.710894917808275],"hpluv":[285.539109011475546,200.907097340780666,55.3492064676394619],"hsluv":[285.539109011475546,72.9499123576365,55.3492064676394619]},"#aa66ee":{"lch":[56.3097127205812171,99.8160041995885337,281.866291349003632],"luv":[56.3097127205812171,20.525011879724925,-97.6829492885499775],"rgb":[0.66666666666666663,0.4,0.933333333333333348],"xyz":[0.367593308892015525,0.242223313458487716,0.836305733876798185],"hpluv":[281.866291349003632,224.934563930918017,56.3097127205812171],"hsluv":[281.866291349003632,86.3166325899195215,56.3097127205812171]},"#aa66ff":{"lch":[57.3367512293125543,111.956114799504135,279.118878442970129],"luv":[57.3367512293125543,17.7431860168323468,-110.541173283857603],"rgb":[0.66666666666666663,0.4,1],"xyz":[0.39376435730184689,0.252691732822420412,0.97413992216858],"hpluv":[279.118878442970129,247.773048158040382,57.3367512293125543],"hsluv":[279.118878442970129,99.9999999999988631,57.3367512293125543]},"#887700":{"lch":[50.0114915023736586,55.8665567864094825,73.357205010908],"luv":[50.0114915023736586,16.0004093344436384,53.5262465366231766],"rgb":[0.533333333333333326,0.466666666666666674,0],"xyz":[0.167496530942664812,0.184282743437969299,0.0267477295612209565],"hpluv":[73.357205010908,141.749463920516746,50.0114915023736586],"hsluv":[73.357205010908,100.000000000002359,50.0114915023736586]},"#887711":{"lch":[50.0597743565714524,53.993823922257576,73.0031869817398302],"luv":[50.0597743565714524,15.783394234863108,51.6354286142242103],"rgb":[0.533333333333333326,0.466666666666666674,0.0666666666666666657],"xyz":[0.168508196442301944,0.184687409637824151,0.0320758345259765862],"hpluv":[73.0031869817398302,136.865669051735267,50.0597743565714524],"hsluv":[73.0031869817398302,96.4507191106164328,50.0597743565714524]},"#887722":{"lch":[50.1490916772086592,50.5946145563497751,72.2920831328592755],"luv":[50.1490916772086592,15.3890953737340599,48.1974145124374616],"rgb":[0.533333333333333326,0.466666666666666674,0.133333333333333331],"xyz":[0.170383554580778945,0.18543755289321498,0.0419527207219557857],"hpluv":[72.2920831328592755,128.020802989304741,50.1490916772086592],"hsluv":[72.2920831328592755,90.012010730737714,50.1490916772086592]},"#887733":{"lch":[50.2956280558193356,45.1970113165044083,70.9372107781068735],"luv":[50.2956280558193356,14.7615306672340392,42.718462569532349],"rgb":[0.533333333333333326,0.466666666666666674,0.2],"xyz":[0.173471305313236679,0.186672653186198079,0.058214874579566929],"hpluv":[70.9372107781068735,114.029917097227894,50.2956280558193356],"hsluv":[70.9372107781068735,79.7918184760720237,50.2956280558193356]},"#887744":{"lch":[50.5060566549544916,37.8272673959478567,68.4411772520018076],"luv":[50.5060566549544916,13.89986571870684,35.1809023711225777],"rgb":[0.533333333333333326,0.466666666666666674,0.266666666666666663],"xyz":[0.177929300557455566,0.188455851283885673,0.0816936495324535605],"hpluv":[68.4411772520018076,95.0387759917387598,50.5060566549544916],"hsluv":[68.4411772520018076,65.8173762074568316,50.5060566549544916]},"#887755":{"lch":[50.7854328179731453,28.7445471843262688,63.5083223958924279],"luv":[50.7854328179731453,12.8220173934607509,25.7263456945161408],"rgb":[0.533333333333333326,0.466666666666666674,0.333333333333333315],"xyz":[0.183891714596817579,0.190840816899630505,0.113095696806427476],"hpluv":[63.5083223958924279,71.82169329487634,50.7854328179731453],"hsluv":[63.5083223958924279,48.4385690265679756,50.7854328179731453]},"#887766":{"lch":[51.1374932189691549,18.6360854649452037,51.6613245975388082],"luv":[51.1374932189691549,11.5601245482137447,14.6173596072111405],"rgb":[0.533333333333333326,0.466666666666666674,0.4],"xyz":[0.191476710370325737,0.193874815209033796,0.153043341213571438],"hpluv":[51.6613245975388082,46.2439140208651,51.1374932189691549],"hsluv":[51.6613245975388082,28.2492665088726049,51.1374932189691549]},"#887777":{"lch":[51.5648179079599629,10.388802862097231,12.1770506300635812],"luv":[51.5648179079599629,10.1550595801770775,2.19134429758843829],"rgb":[0.533333333333333326,0.466666666666666674,0.466666666666666674],"xyz":[0.20079072339052767,0.197600420417114619,0.202097143119969347],"hpluv":[12.1770506300635812,25.5653264810281158,51.5648179079599629],"hsluv":[12.1770506300635812,5.9907484084339373,51.5648179079599629]},"#887788":{"lch":[52.0689409540354262,14.1414171783799034,307.715012949252923],"luv":[52.0689409540354262,8.65079050214889378,-11.1867557182995974],"rgb":[0.533333333333333326,0.466666666666666674,0.533333333333333326],"xyz":[0.21193114049247147,0.202056587257892217,0.260770006523541542],"hpluv":[307.715012949252923,34.4630346227371902,52.0689409540354262],"hsluv":[307.715012949252923,11.9231603633022036,52.0689409540354262]},"#887799":{"lch":[52.6504441343355154,26.1446518461971777,285.73365348909897],"luv":[52.6504441343355154,7.08953673880610147,-25.1650807467009763],"rgb":[0.533333333333333326,0.466666666666666674,0.6],"xyz":[0.224988104601544198,0.207279372901521375,0.329536684164659421],"hpluv":[285.73365348909897,63.0115482025775862,52.6504441343355154],"hsluv":[285.73365348909897,20.7849368541844512,52.6504441343355154]},"#8877aa":{"lch":[53.3090485775123142,39.8165287152511951,277.951975125090712],"luv":[53.3090485775123142,5.50833871717125412,-39.4336678931764482],"rgb":[0.533333333333333326,0.466666666666666674,0.66666666666666663],"xyz":[0.240045797566796726,0.213302450087622469,0.408840533781658],"hpluv":[277.951975125090712,94.7767450693341118,53.3090485775123142],"hsluv":[277.951975125090712,33.2193336653547036,53.3090485775123142]},"#8877bb":{"lch":[54.043710164283695,53.8841311835491,274.190220195010625],"luv":[54.043710164283695,3.93720379281895738,-53.7400969453883732],"rgb":[0.533333333333333326,0.466666666666666674,0.733333333333333282],"xyz":[0.2571833896741334,0.220157486930557228,0.499098518880299769],"hpluv":[274.190220195010625,126.518797380186697,54.043710164283695],"hsluv":[274.190220195010625,46.027457746288988,54.043710164283695]},"#8877cc":{"lch":[54.8527197178713095,67.9360625264533695,272.023364737824068],"luv":[54.8527197178713095,2.39862107173988059,-67.8937052203839215],"rgb":[0.533333333333333326,0.466666666666666674,0.8],"xyz":[0.276475765117855099,0.22787443710804603,0.600705029550569924],"hpluv":[272.023364737824068,157.159823716941304,54.8527197178713095],"hsluv":[272.023364737824068,59.1220253911564413,54.8527197178713095]},"#8877dd":{"lch":[55.7338064566187228,81.7667290312133,270.636302714775695],"luv":[55.7338064566187228,0.90804807322034331,-81.7616867803042595],"rgb":[0.533333333333333326,0.466666666666666674,0.866666666666666696],"xyz":[0.297994090668488698,0.236481767328299564,0.714034877450575922],"hpluv":[270.636302714775695,186.164661983392193,55.7338064566187228],"hsluv":[270.636302714775695,72.4679508704990809,55.7338064566187228]},"#8877ee":{"lch":[56.6842419440431939,95.2620356561917419,269.684203716511661],"luv":[56.6842419440431939,-0.525051666249150784,-95.2605886928551229],"rgb":[0.533333333333333326,0.466666666666666674,0.933333333333333348],"xyz":[0.321806270934663408,0.246006639434769608,0.839445693519099145],"hpluv":[269.684203716511661,213.253830698535069,56.6842419440431939],"hsluv":[269.684203716511661,86.076772525698,56.6842419440431939]},"#8877ff":{"lch":[57.7009414002340577,108.362660778640901,268.997474997449615],"luv":[57.7009414002340577,-1.89596396936046907,-108.346073171359961],"rgb":[0.533333333333333326,0.466666666666666674,1],"xyz":[0.347977319344494829,0.256475058798702304,0.977279881810881],"hpluv":[268.997474997449615,238.306609639193027,57.7009414002340577],"hsluv":[268.997474997449615,99.9999999999988631,57.7009414002340577]},"#ffff00":{"lch":[97.1385593417967357,107.085608846920664,85.8743202181747307],"luv":[97.1385593417967357,7.70421917727499928,106.808111250898],"rgb":[1,1,0],"xyz":[0.76997513864982,0.92780768463926,0.138525598510210984],"hpluv":[85.8743202181747307,1784.23591835690763,97.1385593417967357],"hsluv":[85.8743202181747307,100.000000000072717,97.1385593417967357]},"#ffff11":{"lch":[97.1550055288865337,106.340968495662651,85.8743202181747307],"luv":[97.1550055288865337,7.65064640931757278,106.065400532478591],"rgb":[1,1,0.0666666666666666657],"xyz":[0.770986804149457194,0.928212350839114908,0.143853703474966621],"hpluv":[85.8743202181747307,1782.29032599077573,97.1550055288865337],"hsluv":[85.8743202181747307,100.000000000072447,97.1550055288865337]},"#ffff22":{"lch":[97.1854797367251564,104.966044999604463,85.8743202181747],"luv":[97.1854797367251564,7.5517282439387623,104.694039961158666],"rgb":[1,1,0.133333333333333331],"xyz":[0.77286216228793414,0.928962494094505709,0.1537305896709458],"hpluv":[85.8743202181747,1778.69938503976459,97.1854797367251564],"hsluv":[85.8743202181747,100.00000000007401,97.1854797367251564]},"#ffff33":{"lch":[97.2356193677236291,102.717517786777336,85.8743202181746312],"luv":[97.2356193677236291,7.38995910744871409,102.451339496695468],"rgb":[1,1,0.2],"xyz":[0.775949913020392,0.930197594387488835,0.16999274352855695],"hpluv":[85.8743202181746312,1772.83090468185333,97.2356193677236291],"hsluv":[85.8743202181746312,100.000000000075445,97.2356193677236291]},"#ffff44":{"lch":[97.3079311184623776,99.5042093292491,85.874320218174546],"luv":[97.3079311184623776,7.15877927938833114,99.2463578851537704],"rgb":[1,1,0.266666666666666663],"xyz":[0.780407908264610817,0.931980792485176401,0.193471518481443588],"hpluv":[85.874320218174546,1764.45330998562531,97.3079311184623776],"hsluv":[85.874320218174546,100.000000000077918,97.3079311184623776]},"#ffff55":{"lch":[97.4045015397841212,95.2663481722239283,85.8743202181744323],"luv":[97.4045015397841212,6.8538885331141568,95.0194785612246875],"rgb":[1,1,0.333333333333333315],"xyz":[0.786370322303972746,0.934365758100921151,0.224873565755417504],"hpluv":[85.8743202181744323,1753.42077174454698,97.4045015397841212],"hsluv":[85.8743202181744323,100.000000000080163,97.4045015397841212]},"#ffff66":{"lch":[97.5271149532436539,89.9715947326486258,85.8743202181742333],"luv":[97.5271149532436539,6.47296021391862286,89.7384457454272706],"rgb":[1,1,0.4],"xyz":[0.793955318077481,0.93739975641032447,0.264821210162561438],"hpluv":[85.8743202181742333,1739.66322518688298,97.5271149532436539],"hsluv":[85.8743202181742333,100.000000000084981,97.5271149532436539]},"#ffff77":{"lch":[97.6773170086398608,83.6127156419164663,85.8743202181740202],"luv":[97.6773170086398608,6.01547392080898469,83.3960448134325389],"rgb":[1,1,0.466666666666666674],"xyz":[0.803269331097682837,0.941125361618405321,0.313875012068959403],"hpluv":[85.8743202181740202,1723.18045161093028,97.6773170086398608],"hsluv":[85.8743202181740202,100.00000000009112,97.6773170086398608]},"#ffff88":{"lch":[97.8564527859654589,76.2055692953657342,85.8743202181736791],"luv":[97.8564527859654589,5.48257057790026181,76.0080930657330214],"rgb":[1,1,0.533333333333333326],"xyz":[0.814409748199626748,0.945581528459182863,0.372547875472531542],"hpluv":[85.8743202181736791,1704.03672017478311,97.8564527859654589],"hsluv":[85.8743202181736791,100.000000000099803,97.8564527859654589]},"#ffff99":{"lch":[98.0656913545514612,67.7868897983338741,85.8743202181732102],"luv":[98.0656913545514612,4.87689300155069283,67.6112294162950889],"rgb":[1,1,0.6],"xyz":[0.827466712308699393,0.950804314102812076,0.441314553113649422],"hpluv":[85.8743202181732102,1682.35465810463256,98.0656913545514612],"hsluv":[85.8743202181732102,100.000000000112891,98.0656913545514612]},"#ffffaa":{"lch":[98.3060425431328611,58.4116937234916094,85.8743202181725707],"luv":[98.3060425431328611,4.20239933084915052,58.260327869924204],"rgb":[1,1,0.66666666666666663],"xyz":[0.842524405273952,0.956827391288913143,0.520618402730648078],"hpluv":[85.8743202181725707,1658.30791632356272,98.3060425431328611],"hsluv":[85.8743202181725707,100.000000000127613,98.3060425431328611]},"#ffffbb":{"lch":[98.5783690162300559,48.1503065934375414,85.8743202181715759],"luv":[98.5783690162300559,3.46414909943131732,48.0255317103199246],"rgb":[1,1,0.733333333333333282],"xyz":[0.859661997381288567,0.963682428131847901,0.610876387829289769],"hpluv":[85.8743202181715759,1632.1126639545671,98.5783690162300559],"hsluv":[85.8743202181715759,100.000000000152809,98.5783690162300559]},"#ffffcc":{"lch":[98.8833954570195317,37.0851031688938804,85.8743202181698706],"luv":[98.8833954570195317,2.66806871718659799,36.9890022353654899],"rgb":[1,1,0.8],"xyz":[0.878954372825010322,0.971399378309336758,0.712482898499559925],"hpluv":[85.8743202181698706,1604.018210645404,98.8833954570195317],"hsluv":[85.8743202181698706,100.00000000019709,98.8833954570195317]},"#ffffdd":{"lch":[99.2217159651800245,25.3071072074552177,85.8743202181663889],"luv":[99.2217159651800245,1.82070684164607655,25.2415273271332552],"rgb":[1,1,0.866666666666666696],"xyz":[0.900472698375643921,0.980006708529590265,0.825812746399565922],"hpluv":[85.8743202181663889,1574.29719653830034,99.2217159651800245],"hsluv":[85.8743202181663889,100.000000000286278,99.2217159651800245]},"#ffffee":{"lch":[99.5938003805277248,12.9126149352850259,85.8743202181558161],"luv":[99.5938003805277248,0.928991455386458775,12.8791536733888243],"rgb":[1,1,0.933333333333333348],"xyz":[0.92428487864181863,0.989531580636060282,0.951223562468089145],"hpluv":[85.8743202181558161,1543.23583838085528,99.5938003805277248],"hsluv":[85.8743202181558161,100.000000000556355,99.5938003805277248]},"#ffffff":{"lch":[99.99999999999973,5.29610712429325706e-12,0],"luv":[99.99999999999973,4.97935026544381416e-12,1.80411241501587473e-12],"rgb":[1,1,1],"xyz":[0.95045592705165,0.999999999999993,1.0890577507598711],"hpluv":[0,0,100],"hsluv":[0,0,100]},"#aa7700":{"lch":[53.7507838912622304,69.116848270999057,51.9676330333141223],"luv":[53.7507838912622304,42.5833417137676875,54.4407726194696622],"rgb":[0.66666666666666663,0.466666666666666674,0],"xyz":[0.231737306953434558,0.217406893568523163,0.0297590159367257245],"hpluv":[51.9676330333141223,163.169299961930307,53.7507838912622304],"hsluv":[51.9676330333141223,100.000000000002359,53.7507838912622304]},"#aa7711":{"lch":[53.7940335015026,67.5786316453491906,51.3090056740019378],"luv":[53.7940335015026,42.244752971039,52.7470596476588653],"rgb":[0.66666666666666663,0.466666666666666674,0.0666666666666666657],"xyz":[0.23274897245307169,0.217811559768378016,0.0350871209014813543],"hpluv":[51.3090056740019378,159.40965108533166,53.7940335015026],"hsluv":[51.3090056740019378,97.0120153186068,53.7940335015026]},"#aa7722":{"lch":[53.874065271669366,64.7981771198060272,50.0272013346139],"luv":[53.874065271669366,41.6278947732915157,49.6580520640260588],"rgb":[0.66666666666666663,0.466666666666666674,0.133333333333333331],"xyz":[0.234624330591548691,0.218561703023768844,0.0449640070974605538],"hpluv":[50.0272013346139,152.623836787181489,53.874065271669366],"hsluv":[50.0272013346139,91.5730337049880632,53.874065271669366]},"#aa7733":{"lch":[54.0054384284815,60.4215101577181812,47.7291529037971785],"luv":[54.0054384284815,40.6416884431496115,44.7103125713654705],"rgb":[0.66666666666666663,0.466666666666666674,0.2],"xyz":[0.237712081324006452,0.219796803316751943,0.0612261609550717],"hpluv":[47.7291529037971785,141.968961696257139,54.0054384284815],"hsluv":[47.7291529037971785,82.890357503842381,54.0054384284815]},"#aa7744":{"lch":[54.1942453736720324,54.5501661616690754,43.9413891432679051],"luv":[54.1942453736720324,39.2788485799816911,37.8535689532252277],"rgb":[0.66666666666666663,0.466666666666666674,0.266666666666666663],"xyz":[0.242170076568225312,0.221580001414439537,0.0847049359079583286],"hpluv":[43.9413891432679051,127.726858599491337,54.1942453736720324],"hsluv":[43.9413891432679051,70.9191698542686453,54.1942453736720324]},"#aa7755":{"lch":[54.4451912879813307,47.55778496198932,37.8352816528713],"luv":[54.4451912879813307,37.5600659479400178,29.1716361638701045],"rgb":[0.66666666666666663,0.466666666666666674,0.333333333333333315],"xyz":[0.248132490607587297,0.22396496703018437,0.116106983181932244],"hpluv":[37.8352816528713,110.841250641501858,54.4451912879813307],"hsluv":[37.8352816528713,55.8697139193963039,54.4451912879813307]},"#aa7766":{"lch":[54.7618668139504621,40.2221891209492881,27.9562221290694595],"luv":[54.7618668139504621,35.5285027246357359,18.8560333004309904],"rgb":[0.66666666666666663,0.466666666666666674,0.4],"xyz":[0.255717486381095482,0.226998965339587661,0.156054627589076206],"hpluv":[27.9562221290694595,93.2023334238246264,54.7618668139504621],"hsluv":[27.9562221290694595,38.157009054435612,54.7618668139504621]},"#aa7777":{"lch":[55.1468928183874851,34.0080558607991321,12.1770506300622881],"luv":[55.1468928183874851,33.2428902595124569,7.17343088244713467],"rgb":[0.66666666666666663,0.466666666666666674,0.466666666666666674],"xyz":[0.265031499401297388,0.230724570547668484,0.205108429495474115],"hpluv":[12.1770506300622881,78.2528356679829074,55.1468928183874851],"hsluv":[12.1770506300622881,20.6006796366476941,55.1468928183874851]},"#aa7788":{"lch":[55.6020140468043849,31.2700131437067519,349.739442339375785],"luv":[55.6020140468043849,30.7699397165362107,-5.56996695217490778],"rgb":[0.66666666666666663,0.466666666666666674,0.533333333333333326],"xyz":[0.276171916503241244,0.235180737388446082,0.263781292899046282],"hpluv":[349.739442339375785,71.363619208349732,55.6020140468043849],"hsluv":[349.739442339375785,23.0952607722130772,55.6020140468043849]},"#aa7799":{"lch":[56.1281730235999845,34.0192547961324365,325.92167501088062],"luv":[56.1281730235999845,28.1772086346441704,-19.0618627223027133],"rgb":[0.66666666666666663,0.466666666666666674,0.6],"xyz":[0.289228880612313943,0.240403523032075239,0.332547970540164162],"hpluv":[325.92167501088062,76.9100717288581706,56.1281730235999845],"hsluv":[325.92167501088062,27.5449434619861648,56.1281730235999845]},"#aa77aa":{"lch":[56.7255784680210127,41.7295245342496131,307.715012949246272],"luv":[56.7255784680210127,25.5273831431779215,-33.0106941416859],"rgb":[0.66666666666666663,0.466666666666666674,0.66666666666666663],"xyz":[0.304286573577566499,0.246426600218176334,0.411851820157162818],"hpluv":[307.715012949246272,93.3477446513022642,56.7255784680210127],"hsluv":[307.715012949246272,32.2954766233998285,56.7255784680210127]},"#aa77bb":{"lch":[57.3937746480490176,52.417961949749369,295.873528074876958],"luv":[57.3937746480490176,22.8744713506946127,-47.1635589771554891],"rgb":[0.66666666666666663,0.466666666666666674,0.733333333333333282],"xyz":[0.321424165684903118,0.25328163706111112,0.502109805255804509],"hpluv":[295.873528074876958,115.892323381948941,57.3937746480490176],"hsluv":[295.873528074876958,41.7229864085831679,57.3937746480490176]},"#aa77cc":{"lch":[58.1317139736185,64.5762938068646548,288.286403622885132],"luv":[58.1317139736185,20.2619194712353625,-61.3151885031081],"rgb":[0.66666666666666663,0.466666666666666674,0.8],"xyz":[0.340716541128624872,0.260998587238599922,0.603716315926074665],"hpluv":[288.286403622885132,140.961111207958226,58.1317139736185],"hsluv":[288.286403622885132,55.678510160825347,58.1317139736185]},"#aa77dd":{"lch":[58.9378328182195759,77.3666791836153,283.242275299631103],"luv":[58.9378328182195759,17.7223199365118553,-75.3095108466943088],"rgb":[0.66666666666666663,0.466666666666666674,0.866666666666666696],"xyz":[0.362234866679258416,0.269605917458853428,0.717046163826080662],"hpluv":[283.242275299631103,166.570895286205939,58.9378328182195759],"hsluv":[283.242275299631103,70.0408478070886105,58.9378328182195759]},"#aa77ee":{"lch":[59.8101292792768646,90.3373867943789151,279.736895248195651],"luv":[59.8101292792768646,15.2782276108220607,-89.0360556960445138],"rgb":[0.66666666666666663,0.466666666666666674,0.933333333333333348],"xyz":[0.386047046945433125,0.279130789565323445,0.842456979894603886],"hpluv":[279.736895248195651,191.660275847677298,59.8101292792768646],"hsluv":[279.736895248195651,84.8029379630096685,59.8101292792768646]},"#aa77ff":{"lch":[60.7462409754246551,103.238062985892157,277.202485092995744],"luv":[60.7462409754246551,12.9436026905507742,-102.423438716283115],"rgb":[0.66666666666666663,0.466666666666666674,1],"xyz":[0.412218095355264547,0.289599208929256169,0.980291168186385731],"hpluv":[277.202485092995744,215.655115976047284,60.7462409754246551],"hsluv":[277.202485092995744,99.999999999998721,60.7462409754246551]},"#888800":{"lch":[54.9099926918455452,60.532810441385358,85.8743202181747449],"luv":[54.9099926918455452,4.35500198466006783,60.375948006191166],"rgb":[0.533333333333333326,0.533333333333333326,0],"xyz":[0.189568900667635265,0.228427482887910871,0.0341051861362109063],"hpluv":[85.8743202181747449,139.887458074797593,54.9099926918455452],"hsluv":[85.8743202181747449,100.000000000002331,54.9099926918455452]},"#888811":{"lch":[54.9518410557904673,58.8347385736240369,85.8743202181746739],"luv":[54.9518410557904673,4.23283507550337568,58.6822764576347353],"rgb":[0.533333333333333326,0.533333333333333326,0.0666666666666666657],"xyz":[0.190580566167272397,0.228832149087765724,0.039433291100966536],"hpluv":[85.8743202181746739,135.85978011465275,54.9518410557904673],"hsluv":[85.8743202181746739,97.1207726442580395,54.9518410557904673]},"#888822":{"lch":[55.0292864560463215,55.7361292450240882,85.8743202181745602],"luv":[55.0292864560463215,4.00990721741558787,55.5916967480373643],"rgb":[0.533333333333333326,0.533333333333333326,0.133333333333333331],"xyz":[0.192455924305749398,0.229582292343156552,0.0493101772969457355],"hpluv":[85.8743202181745602,128.523412903997382,55.0292864560463215],"hsluv":[85.8743202181745602,91.8762944675706,55.0292864560463215]},"#888833":{"lch":[55.1564325013520573,50.7686053645684225,85.8743202181742902],"luv":[55.1564325013520573,3.65252126093227947,50.6370455210582335],"rgb":[0.533333333333333326,0.533333333333333326,0.2],"xyz":[0.195543675038207132,0.230817392636139651,0.0655723311545568788],"hpluv":[85.8743202181742902,116.798802852822334,55.1564325013520573],"hsluv":[85.8743202181742902,83.4948353914423,55.1564325013520573]},"#888844":{"lch":[55.3392041906722767,43.8756115710196184,85.8743202181737786],"luv":[55.3392041906722767,3.15660835961073616,43.7619139708837039],"rgb":[0.533333333333333326,0.533333333333333326,0.266666666666666663],"xyz":[0.20000167028242602,0.232600590733827245,0.0890511061074435173],"hpluv":[85.8743202181737786,100.607324583255647,55.3392041906722767],"hsluv":[85.8743202181737786,71.9201892491773833,55.3392041906722767]},"#888855":{"lch":[55.5822005995452173,35.1333862553221152,85.8743202181729],"luv":[55.5822005995452173,2.5276534453655044,35.0423429271758167],"rgb":[0.533333333333333326,0.533333333333333326,0.333333333333333315],"xyz":[0.205964084321788032,0.234985556349572078,0.120453153381417433],"hpluv":[85.8743202181729,80.2090919262666233,55.5822005995452173],"hsluv":[85.8743202181729,57.3383011101545321,55.5822005995452173]},"#888866":{"lch":[55.8889601924437187,24.7258905438507242,85.874320218171],"luv":[55.8889601924437187,1.778891507033598,24.6618168064052092],"rgb":[0.533333333333333326,0.533333333333333326,0.4],"xyz":[0.21354908009529619,0.238019554658975369,0.160400797788561394],"hpluv":[85.874320218171,56.1390732800859524,55.8889601924437187],"hsluv":[85.874320218171,40.1315986813270698,55.8889601924437187]},"#888877":{"lch":[56.2621011123828509,12.9137749110131566,85.8743202181651668],"luv":[56.2621011123828509,0.929074909242871283,12.8803106431998842],"rgb":[0.533333333333333326,0.533333333333333326,0.466666666666666674],"xyz":[0.222863093115498123,0.241745159867056192,0.209454599694959304],"hpluv":[85.8743202181651668,29.1257147579972724,56.2621011123828509],"hsluv":[85.8743202181651668,20.8208192205656601,56.2621011123828509]},"#888888":{"lch":[56.703410756754252,2.95076376078202623e-12,0],"luv":[56.703410756754252,2.78254170310414444e-12,9.82073542272051e-13],"rgb":[0.533333333333333326,0.533333333333333326,0.533333333333333326],"xyz":[0.234003510217441923,0.24620132670783379,0.268127463098531471],"hpluv":[0,6.60335407213460764e-12,56.703410756754252],"hsluv":[0,2.14018342731852893e-12,56.703410756754252]},"#888899":{"lch":[57.2139150634865246,13.7029898302256612,265.874320218188814],"luv":[57.2139150634865246,-0.985854571612734376,-13.6674804207248872],"rgb":[0.533333333333333326,0.533333333333333326,0.6],"xyz":[0.247060474326514651,0.251424112351462947,0.33689414073964935],"hpluv":[265.874320218188814,30.3915601408835876,57.2139150634865246],"hsluv":[265.874320218188814,12.5386286039598396,57.2139150634865246]},"#8888aa":{"lch":[57.7939415002624486,27.9001972781706051,265.874320218182902],"luv":[57.7939415002624486,-2.00726537612613365,-27.8278977623291475],"rgb":[0.533333333333333326,0.533333333333333326,0.66666666666666663],"xyz":[0.262118167291767179,0.25744718953756407,0.416197990356647951],"hpluv":[265.874320218182902,61.2582077856443377,57.7939415002624486],"hsluv":[265.874320218182902,25.8334660761224093,57.7939415002624486]},"#8888bb":{"lch":[58.4431822360017605,42.3326731508362428,265.874320218181083],"luv":[58.4431822360017605,-3.04560244672749647,-42.2229738629578222],"rgb":[0.533333333333333326,0.533333333333333326,0.733333333333333282],"xyz":[0.279255759399103853,0.264302226380498828,0.506455975455289753],"hpluv":[265.874320218181083,91.9138937804104756,58.4431822360017605],"hsluv":[265.874320218181083,39.7348050695490116,58.4431822360017605]},"#8888cc":{"lch":[59.1607600358786812,56.7874726838639603,265.874320218180117],"luv":[59.1607600358786812,-4.0855455816182138,-56.6403157752595448],"rgb":[0.533333333333333326,0.533333333333333326,0.8],"xyz":[0.298548134842825608,0.27201917655798763,0.608062486125559909],"hpluv":[265.874320218180117,121.803038601679276,59.1607600358786812],"hsluv":[265.874320218180117,54.1372084350884322,59.1607600358786812]},"#8888dd":{"lch":[59.9452971965242654,71.1002375720468649,265.874320218179605],"luv":[59.9452971965242654,-5.11527010687093497,-70.9159911059223447],"rgb":[0.533333333333333326,0.533333333333333326,0.866666666666666696],"xyz":[0.320066460393459096,0.280626506778241136,0.721392334025565907],"hpluv":[265.874320218179605,150.506501481916018,59.9452971965242654],"hsluv":[265.874320218179605,68.9826297466640881,59.9452971965242654]},"#8888ee":{"lch":[60.7949865781877747,85.1524606014505,265.874320218179207],"luv":[60.7949865781877747,-6.12625008179143,-84.9317997361231676],"rgb":[0.533333333333333326,0.533333333333333326,0.933333333333333348],"xyz":[0.343878640659633861,0.290151378884711153,0.84680315009408913],"hpluv":[265.874320218179207,177.733282428962553,60.7949865781877747],"hsluv":[265.874320218179207,84.2595641984559194,60.7949865781877747]},"#8888ff":{"lch":[61.7076631467729726,98.8655769196339,265.874320218179],"luv":[61.7076631467729726,-7.11283319838656247,-98.6093804034077408],"rgb":[0.533333333333333326,0.533333333333333326,1],"xyz":[0.370049689069465226,0.300619798248643877,0.984637338385871],"hpluv":[265.874320218179,203.303722842755434,61.7076631467729726],"hsluv":[265.874320218179,99.9999999999986073,61.7076631467729726]},"#aa8800":{"lch":[58.1840377660698493,67.6904417424552634,64.2288134226940173],"luv":[58.1840377660698493,29.4303340948507071,60.9577832467208225],"rgb":[0.66666666666666663,0.533333333333333326,0],"xyz":[0.253809676678405038,0.261551633018464735,0.0371164725117156744],"hpluv":[64.2288134226940173,147.625988392398114,58.1840377660698493],"hsluv":[64.2288134226940173,100.000000000002373,58.1840377660698493]},"#aa8811":{"lch":[58.2222766199063955,66.2027965316335809,63.8264905250604926],"luv":[58.2222766199063955,29.2014551434886229,59.4145208354969085],"rgb":[0.66666666666666663,0.533333333333333326,0.0666666666666666657],"xyz":[0.254821342178042143,0.261956299218319588,0.0424445774764713041],"hpluv":[63.8264905250604926,144.286759049554206,58.2222766199063955],"hsluv":[63.8264905250604926,97.5015111084285877,58.2222766199063955]},"#aa8822":{"lch":[58.2930572278629,63.4916551128893474,63.0419050459203],"luv":[58.2930572278629,28.7832252220538578,56.5925455761676304],"rgb":[0.66666666666666663,0.533333333333333326,0.133333333333333331],"xyz":[0.2566967003165192,0.262706442473710389,0.0523214636724505036],"hpluv":[63.0419050459203,138.209896631886636,58.2930572278629],"hsluv":[63.0419050459203,92.9399945222758106,58.2930572278629]},"#aa8833":{"lch":[58.4093035212624585,59.1585039849960737,61.628621374019076],"luv":[58.4093035212624585,28.1112178941065629,52.0527426967384628],"rgb":[0.66666666666666663,0.533333333333333326,0.2],"xyz":[0.259784451048976905,0.263941542766693515,0.0685836175300616468],"hpluv":[61.628621374019076,128.521114132395894,58.4093035212624585],"hsluv":[61.628621374019076,85.621599137751673,58.4093035212624585]},"#aa8844":{"lch":[58.5764981609594315,53.1878639814319953,59.2736460930020499],"luv":[58.5764981609594315,27.1757201885359478,45.7212106919940453],"rgb":[0.66666666666666663,0.533333333333333326,0.266666666666666663],"xyz":[0.264242446293195821,0.265724740864381082,0.0920623924829482854],"hpluv":[59.2736460930020499,115.22015920662389,58.5764981609594315],"hsluv":[59.2736460930020499,75.4571473133808581,58.5764981609594315]},"#aa8855":{"lch":[58.7989500318507083,45.736161182952344,55.3795129841665315],"luv":[58.7989500318507083,25.9844527075537677,37.6378088793954433],"rgb":[0.66666666666666663,0.533333333333333326,0.333333333333333315],"xyz":[0.270204860332557806,0.268109706480125942,0.123464439756922201],"hpluv":[55.3795129841665315,98.7027982667044483,58.7989500318507083],"hsluv":[55.3795129841665315,62.5553187882680319,58.7989500318507083]},"#aa8866":{"lch":[59.0800404303715112,37.1980666756204,48.681601920545944],"luv":[59.0800404303715112,24.5597583059268025,27.9376884576795419],"rgb":[0.66666666666666663,0.533333333333333326,0.4],"xyz":[0.277789856106066,0.271143704789529261,0.163412084164066163],"hpluv":[48.681601920545944,79.8948730878687883,59.0800404303715112],"hsluv":[48.681601920545944,47.1909371341698645,59.0800404303715112]},"#aa8877":{"lch":[59.4223523155875881,28.4467220316745042,36.2691810942760355],"luv":[59.4223523155875881,22.9350730451589406,16.8285001934390941],"rgb":[0.66666666666666663,0.533333333333333326,0.466666666666666674],"xyz":[0.287103869126267897,0.274869309997610056,0.212465886070464072],"hpluv":[36.2691810942760355,60.7465636644032,59.4223523155875881],"hsluv":[36.2691810942760355,29.7643761063162415,59.4223523155875881]},"#aa8888":{"lch":[59.8277504540149323,21.6376696880998622,12.1770506300627677],"luv":[59.8277504540149323,21.1508320810015036,4.56410471095846049],"rgb":[0.66666666666666663,0.533333333333333326,0.533333333333333326],"xyz":[0.298244286228211697,0.279325476838387654,0.271138749474036211],"hpluv":[12.1770506300627677,45.8930730764781174,59.8277504540149323],"hsluv":[12.1770506300627677,15.9793094134510145,59.8277504540149323]},"#aa8899":{"lch":[60.2974403890441693,21.076671863141442,335.972081494736813],"luv":[60.2974403890441693,19.2503183610400761,-8.58203587880762697],"rgb":[0.66666666666666663,0.533333333333333326,0.6],"xyz":[0.311301250337284396,0.284548262482016812,0.339905427115154146],"hpluv":[335.972081494736813,44.3549898137704872,60.2974403890441693],"hsluv":[335.972081494736813,18.3674189175529285,60.2974403890441693]},"#aa88aa":{"lch":[60.8320193568852119,28.2409959286201691,307.715012949248376],"luv":[60.8320193568852119,17.2759870010776844,-22.3404145928166677],"rgb":[0.66666666666666663,0.533333333333333326,0.66666666666666663],"xyz":[0.326358943302536952,0.290571339668117934,0.419209276732152747],"hpluv":[307.715012949248376,58.9097393716334068,60.8320193568852119],"hsluv":[307.715012949248376,20.7885743891348937,60.8320193568852119]},"#aa88bb":{"lch":[61.4315255818646904,39.5305448534603343,292.718173175904553],"luv":[61.4315255818646904,15.2666424694527869,-36.4635928581008],"rgb":[0.66666666666666663,0.533333333333333326,0.733333333333333282],"xyz":[0.343496535409873627,0.297426376511052692,0.509467261830794493],"hpluv":[292.718173175904553,81.6546320542196185,61.4315255818646904],"hsluv":[292.718173175904553,35.3775178816614826,61.4315255818646904]},"#aa88cc":{"lch":[62.0954889075932783,52.4408733717370339,284.64164926901276],"luv":[62.0954889075932783,13.2556230251873277,-50.737891739849438],"rgb":[0.66666666666666663,0.533333333333333326,0.8],"xyz":[0.362788910853595326,0.305143326688541494,0.611073772501064649],"hpluv":[284.64164926901276,107.164068097081099,62.0954889075932783],"hsluv":[284.64164926901276,50.6369924233865092,62.0954889075932783]},"#aa88dd":{"lch":[62.8229837406334894,65.9589053782665644,279.83800714750987],"luv":[62.8229837406334894,11.2699451472508105,-64.988964717689413],"rgb":[0.66666666666666663,0.533333333333333326,0.866666666666666696],"xyz":[0.384307236404228925,0.313750656908795,0.724403620401070647],"hpluv":[279.83800714750987,133.227600809414753,62.8229837406334894],"hsluv":[279.83800714750987,66.50088929558828,62.8229837406334894]},"#aa88ee":{"lch":[63.6126841134072,79.6308922643202237,276.728713669089302],"luv":[63.6126841134072,9.33022805769535,-79.0823990986816767],"rgb":[0.66666666666666663,0.533333333333333326,0.933333333333333348],"xyz":[0.408119416670403634,0.323275529015265,0.84981443646959387],"hpluv":[276.728713669089302,158.846330872338797,63.6126841134072],"hsluv":[276.728713669089302,82.9476730407324112,63.6126841134072]},"#aa88ff":{"lch":[64.4629200033750323,93.219110130063271,274.584640952303687],"luv":[64.4629200033750323,7.4511637136690565,-92.9208407880221756],"rgb":[0.66666666666666663,0.533333333333333326,1],"xyz":[0.434290465080235055,0.333743948379197741,0.987648624761375715],"hpluv":[274.584640952303687,183.499254977583263,64.4629200033750323],"hsluv":[274.584640952303687,99.999999999998451,64.4629200033750323]},"#889900":{"lch":[59.9037942457991477,67.5360782410098892,95.4734085527772578],"luv":[59.9037942457991477,-6.44184579214223074,67.2281524881211396],"rgb":[0.533333333333333326,0.6,0],"xyz":[0.215438501120102766,0.280166683792846538,0.0427283862870331613],"hpluv":[95.4734085527772578,143.060860652479761,59.9037942457991477],"hsluv":[95.4734085527772578,100.000000000002359,59.9037942457991477]},"#889911":{"lch":[59.9403212197486,66.0293008977046867,95.6505578181906628],"luv":[59.9403212197486,-6.50131434341495318,65.7084582747741166],"rgb":[0.533333333333333326,0.6,0.0666666666666666657],"xyz":[0.216450166619739898,0.280571349992701391,0.048056491251788791],"hpluv":[95.6505578181906628,139.783837686775883,59.9403212197486],"hsluv":[95.6505578181906628,97.642419329775592,59.9403212197486]},"#889922":{"lch":[60.0079397017320275,63.2737960078627495,95.9966659299995655],"luv":[60.0079397017320275,-6.6102508868722456,62.9275602932231308],"rgb":[0.533333333333333326,0.6,0.133333333333333331],"xyz":[0.218325524758216899,0.281321493248092191,0.0579333774477679905],"hpluv":[95.9966659299995655,133.799503075015934,60.0079397017320275],"hsluv":[95.9966659299995655,93.3344688530494864,60.0079397017320275]},"#889933":{"lch":[60.1190111745068521,58.8410136656902196,96.6225595920901696],"luv":[60.1190111745068521,-6.78603238946032139,58.4483930798370039],"rgb":[0.533333333333333326,0.6,0.2],"xyz":[0.221413275490674633,0.282556593541075318,0.0741955313053791338],"hpluv":[96.6225595920901696,124.196009967059197,60.1190111745068521],"hsluv":[96.6225595920901696,86.4129060235578,60.1190111745068521]},"#889944":{"lch":[60.2788030378330859,52.6619605596060651,97.6740140778758104],"luv":[60.2788030378330859,-7.03230554676784081,52.1903129773946],"rgb":[0.533333333333333326,0.6,0.266666666666666663],"xyz":[0.22587127073489352,0.284339791638762884,0.0976743062582657723],"hpluv":[97.6740140778758104,110.859197411007315,60.2788030378330859],"hsluv":[97.6740140778758104,76.7791514013919,60.2788030378330859]},"#889955":{"lch":[60.491478208304315,44.7890969420590679,99.4433583384469557],"luv":[60.491478208304315,-7.34865909500015935,44.1821277711999301],"rgb":[0.533333333333333326,0.6,0.333333333333333315],"xyz":[0.231833684774255533,0.286724757254507745,0.129076353532239674],"hpluv":[99.4433583384469557,93.954467458231008,60.491478208304315],"hsluv":[99.4433583384469557,64.5165507795669555,60.491478208304315]},"#889966":{"lch":[60.7603321241253269,35.3998784596055387,102.614945913325585],"luv":[60.7603321241253269,-7.73125582812020351,34.5453191948634597],"rgb":[0.533333333333333326,0.6,0.4],"xyz":[0.23941868054776369,0.289758755563911063,0.169023997939383636],"hpluv":[102.614945913325585,73.9300429237522394,60.7603321241253269],"hsluv":[102.614945913325585,49.862982431557576,60.7603321241253269]},"#889977":{"lch":[61.0879169406466644,24.8557994274465628,109.198389045907604],"luv":[61.0879169406466644,-8.17358342252196,23.4734594640953418],"rgb":[0.533333333333333326,0.6,0.466666666666666674],"xyz":[0.248732693567965624,0.293484360771991859,0.218077799845781545],"hpluv":[109.198389045907604,51.6311437806165543,61.0879169406466644],"hsluv":[109.198389045907604,33.1759220302134779,61.0879169406466644]},"#889988":{"lch":[61.4761176658877702,14.1684419896747276,127.715012949229816],"luv":[61.4761176658877702,-8.66732250724137,11.2081340539023326],"rgb":[0.533333333333333326,0.6,0.533333333333333326],"xyz":[0.259873110669909424,0.297940527612769457,0.276750663249353712],"hpluv":[127.715012949229816,29.2452265306994263,61.4761176658877702],"hsluv":[127.715012949229816,14.8910328511789984,61.4761176658877702]},"#889999":{"lch":[61.9262069462763094,9.41507553536713537,192.177050630058915],"luv":[61.9262069462763094,-9.20324067004397861,-1.98595279549067061],"rgb":[0.533333333333333326,0.6,0.6],"xyz":[0.272930074778982124,0.303163313256398614,0.345517340890471647],"hpluv":[192.177050630058915,19.2925065058214678,61.9262069462763094],"hsluv":[192.177050630058915,19.2169899754877207,61.9262069462763094]},"#8899aa":{"lch":[62.4388911462841207,18.6148502867865133,238.334617604481764],"luv":[62.4388911462841207,-9.77200531832159669,-15.8436284751369474],"rgb":[0.533333333333333326,0.6,0.66666666666666663],"xyz":[0.28798776774423468,0.309186390442499737,0.424821190507470248],"hpluv":[238.334617604481764,37.8306403353000036,62.4388911462841207],"hsluv":[238.334617604481764,23.6900457250072343,62.4388911462841207]},"#8899bb":{"lch":[63.0143540484962,31.8509402607766567,251.009167860858838],"luv":[63.0143540484962,-10.3648329189902189,-30.1173145226625429],"rgb":[0.533333333333333326,0.6,0.733333333333333282],"xyz":[0.305125359851571354,0.316041427285434495,0.515079175606111939],"hpluv":[251.009167860858838,64.1389868285616132,63.0143540484962],"hsluv":[251.009167860858838,32.2218698989210282,63.0143540484962]},"#8899cc":{"lch":[63.6523012354060143,45.9199042321153357,256.173658840600297],"luv":[63.6523012354060143,-10.9739341944061159,-44.5893526863026821],"rgb":[0.533333333333333326,0.6,0.8],"xyz":[0.324417735295293053,0.323758377462923297,0.616685686276382095],"hpluv":[256.173658840600297,91.543221315317254,63.6523012354060143],"hsluv":[256.173658840600297,48.1563502503440546,63.6523012354060143]},"#8899dd":{"lch":[64.3520063546654,60.2052734177332738,258.898139298145679],"luv":[64.3520063546654,-11.5927562398827622,-59.0786166905309358],"rgb":[0.533333333333333326,0.6,0.866666666666666696],"xyz":[0.345936060845926652,0.332365707683176803,0.730015534176388092],"hpluv":[258.898139298145679,118.716686841439611,64.3520063546654],"hsluv":[258.898139298145679,64.7736147673059435,64.3520063546654]},"#8899ee":{"lch":[65.1123593572591091,74.4513212160393465,260.556144021857],"luv":[65.1123593572591091,-12.2160522582942246,-73.442271874149526],"rgb":[0.533333333333333326,0.6,0.933333333333333348],"xyz":[0.369748241112101361,0.34189057978964682,0.855426350244911315],"hpluv":[260.556144021857,145.093615685215838,65.1123593572591091],"hsluv":[260.556144021857,82.0482136329290626,65.1123593572591091]},"#8899ff":{"lch":[65.9319161385595862,88.5102230179824829,261.65889869963604],"luv":[65.9319161385595862,-12.8398242875011679,-87.5739601191992],"rgb":[0.533333333333333326,0.6,1],"xyz":[0.395919289521932782,0.352358999153579544,0.993260538536693161],"hpluv":[261.65889869963604,170.348009793708229,65.9319161385595862],"hsluv":[261.65889869963604,99.9999999999983373,65.9319161385595862]},"#aa9900":{"lch":[62.7844580943873609,69.6780489210530618,75.8779002673010297],"luv":[62.7844580943873609,17.0006834702273615,67.5722373685362072],"rgb":[0.66666666666666663,0.6,0],"xyz":[0.279679277130872483,0.313290833923400402,0.0457396726625379293],"hpluv":[75.8779002673010297,140.82610179048271,62.7844580943873609],"hsluv":[75.8779002673010297,100.000000000002217,62.7844580943873609]},"#aa9911":{"lch":[62.8183644916567232,68.2796688580209548,75.7117398414304],"luv":[62.8183644916567232,16.8514534980901978,66.1675274916835576],"rgb":[0.66666666666666663,0.6,0.0666666666666666657],"xyz":[0.280690942630509588,0.313695500123255255,0.0510677776272935591],"hpluv":[75.7117398414304,137.925354096716262,62.8183644916567232],"hsluv":[75.7117398414304,97.9039601429264792,62.8183644916567232]},"#aa9922":{"lch":[62.8811408657966098,65.7186920323652259,75.3888160486312415],"luv":[62.8811408657966098,16.5780820569936154,63.5933461751813311],"rgb":[0.66666666666666663,0.6,0.133333333333333331],"xyz":[0.282566300768986645,0.314445643378646056,0.0609446638232727586],"hpluv":[75.3888160486312415,132.619634057532949,62.8811408657966098],"hsluv":[75.3888160486312415,94.0678156084237287,62.8811408657966098]},"#aa9933":{"lch":[62.984284118013818,61.5887344728930373,74.8105333616033477],"luv":[62.984284118013818,16.1369729495721401,59.4371122952427768],"rgb":[0.66666666666666663,0.6,0.2],"xyz":[0.28565405150144435,0.315680743671629183,0.0772068176808839],"hpluv":[74.8105333616033477,124.08189266143988,62.984284118013818],"hsluv":[74.8105333616033477,87.8877322232676335,62.984284118013818]},"#aa9944":{"lch":[63.1327254984845325,55.810649390305,73.8551623649617284],"luv":[63.1327254984845325,15.5190685808424753,53.6095802609072862],"rgb":[0.66666666666666663,0.6,0.266666666666666663],"xyz":[0.290112046745663266,0.317463941769316749,0.10068559263377054],"hpluv":[73.8551623649617284,112.176494362550613,63.1327254984845325],"hsluv":[73.8551623649617284,79.2518346201028407,63.1327254984845325]},"#aa9955":{"lch":[63.330394330910508,48.4114193249398497,72.2912631539462893],"luv":[63.330394330910508,14.725704471349518,46.1174495053405593],"rgb":[0.66666666666666663,0.6,0.333333333333333315],"xyz":[0.296074460785025251,0.319848907385061609,0.132087639907744442],"hpluv":[72.2912631539462893,97.0007181904759,63.330394330910508],"hsluv":[72.2912631539462893,68.2014618333714253,63.330394330910508]},"#aa9966":{"lch":[63.5804407621292285,39.5252766283835086,69.6158026784446662],"luv":[63.5804407621292285,13.7671883687516523,37.0501284339143524],"rgb":[0.66666666666666663,0.6,0.4],"xyz":[0.303659456558533436,0.322882905694464928,0.172035284314888404],"hpluv":[69.6158026784446662,78.8843243984218105,63.5804407621292285],"hsluv":[69.6158026784446662,54.9106459007729129,63.5804407621292285]},"#aa9977":{"lch":[63.8853523521207762,29.4269320044373437,64.5162682653354835],"luv":[63.8853523521207762,12.6610788645847681,26.563911782313685],"rgb":[0.66666666666666663,0.6,0.466666666666666674],"xyz":[0.312973469578735342,0.326608510902545723,0.221089086221286313],"hpluv":[64.5162682653354835,58.4497984351079,63.8853523521207762],"hsluv":[64.5162682653354835,39.6604297676390303,63.8853523521207762]},"#aa9988":{"lch":[64.2470245358341288,18.7498828458428441,52.4386898809200943],"luv":[64.2470245358341288,11.4301164327749429,14.8630597477787205],"rgb":[0.66666666666666663,0.6,0.533333333333333326],"xyz":[0.324113886680679142,0.331064677743323321,0.279761949624858508],"hpluv":[52.4386898809200943,37.0326564248891472,64.2470245358341288],"hsluv":[52.4386898809200943,22.8076315183033955,64.2470245358341288]},"#aa9999":{"lch":[64.6668097656484,10.3324715423982241,12.1770506300641514],"luv":[64.6668097656484,10.0999956892392,2.17946214737001709],"rgb":[0.66666666666666663,0.6,0.6],"xyz":[0.337170850789751841,0.336287463386952479,0.348528627265976387],"hpluv":[12.1770506300641514,20.2750581327120152,64.6668097656484],"hsluv":[12.1770506300641514,9.39861318597140283,64.6668097656484]},"#aa99aa":{"lch":[65.1455571833188,14.2173372068657535,307.715012949255367],"luv":[65.1455571833188,8.69723339065650514,-11.2468132643064216],"rgb":[0.66666666666666663,0.6,0.66666666666666663],"xyz":[0.352228543755004397,0.342310540573053601,0.427832476882975],"hpluv":[307.715012949255367,27.6931773999722353,65.1455571833188],"hsluv":[307.715012949255367,11.6506794595111955,65.1455571833188]},"#aa99bb":{"lch":[65.6836488991384186,26.2061362707181722,286.054514249721478],"luv":[65.6836488991384186,7.24735484809431529,-25.1840708771488],"rgb":[0.66666666666666663,0.6,0.733333333333333282],"xyz":[0.369366135862341072,0.34916557741598836,0.51809046198161679],"hpluv":[286.054514249721478,50.6273330900370553,65.6836488991384186],"hsluv":[286.054514249721478,27.5721610485895,65.6836488991384186]},"#aa99cc":{"lch":[66.2810360009151651,39.8419200501833544,278.33213307587846],"luv":[66.2810360009151651,5.77353773601307907,-39.4213756139487757],"rgb":[0.66666666666666663,0.6,0.8],"xyz":[0.388658511306062771,0.356882527593477161,0.619696972651887],"hpluv":[278.33213307587846,76.2764194246967,66.2810360009151651],"hsluv":[278.33213307587846,44.416066179202609,66.2810360009151651]},"#aa99dd":{"lch":[66.937275739096421,53.9476968390211695,274.567192844176702],"luv":[66.937275739096421,4.29575598209881182,-53.7763932853180151],"rgb":[0.66666666666666663,0.6,0.866666666666666696],"xyz":[0.41017683685669637,0.365489857813730668,0.733026820551892944],"hpluv":[274.567192844176702,102.269045280662851,66.937275739096421],"hsluv":[274.567192844176702,62.1125641321495365,66.937275739096421]},"#aa99ee":{"lch":[67.6515703211096309,68.1578213039093299,272.380002942583644],"luv":[67.6515703211096309,2.83038594926376286,-68.0990273078393358],"rgb":[0.66666666666666663,0.6,0.933333333333333348],"xyz":[0.433989017122871079,0.375014729920200685,0.858437636620416167],"hpluv":[272.380002942583644,127.843056183363871,67.6515703211096309],"hsluv":[272.380002942583644,80.63443597048024,67.6515703211096309]},"#aa99ff":{"lch":[68.4228071241374778,82.2834014236355387,270.968064044661787],"luv":[68.4228071241374778,1.39018638405132466,-82.2716569157370543],"rgb":[0.66666666666666663,0.6,1],"xyz":[0.4601600655327025,0.385483149284133408,0.996271824912198],"hpluv":[270.968064044661787,152.598644218259693,68.4228071241374778],"hsluv":[270.968064044661787,99.9999999999981668,68.4228071241374778]},"#770000":{"lch":[23.4140868272264697,78.7423116347599432,12.177050630061796],"luv":[23.4140868272264697,76.9706458719381317,16.6093743302492847],"rgb":[0.466666666666666674,0,0],"xyz":[0.0760757904266185919,0.0392265794387260461,0.00356605267624767169],"hpluv":[12.177050630061796,426.746789183125429,23.4140868272264697],"hsluv":[12.177050630061796,100.000000000002359,23.4140868272264697]},"#770011":{"lch":[23.5491569362977273,75.7570426868466456,9.89164947332394462],"luv":[23.5491569362977273,74.6308667748156864,13.0139633123970793],"rgb":[0.466666666666666674,0,0.0666666666666666657],"xyz":[0.0770874559262557102,0.0396312456385809,0.00889415764100330228],"hpluv":[9.89164947332394462,408.213135586655085,23.5491569362977273],"hsluv":[9.89164947332394462,99.9999999999965183,23.5491569362977273]},"#770022":{"lch":[23.7971287372198219,70.9964864167640854,5.53723409440817704],"luv":[23.7971287372198219,70.6651956613751224,6.85063542055327357],"rgb":[0.466666666666666674,0,0.133333333333333331],"xyz":[0.0789628140647327392,0.0403813888939717203,0.0187710438369825],"hpluv":[5.53723409440817704,378.574731225432288,23.7971287372198219],"hsluv":[5.53723409440817704,99.9999999999967741,23.7971287372198219]},"#770033":{"lch":[24.198804347572846,65.0463245726941182,358.140059561726389],"luv":[24.198804347572846,65.0120550988218895,-2.11116845467566527],"rgb":[0.466666666666666674,0,0.2],"xyz":[0.0820505647971904728,0.0416164891869548331,0.0350331976945936416],"hpluv":[358.140059561726389,341.089366306392606,24.198804347572846],"hsluv":[358.140059561726389,99.9999999999971578,24.198804347572846]},"#770044":{"lch":[24.764944554878376,59.7650645123016702,347.391874641304071],"luv":[24.764944554878376,58.3238787679626398,-13.0456161839744915],"rgb":[0.466666666666666674,0,0.266666666666666663],"xyz":[0.0865085600414093464,0.0433996872846424062,0.0585119726474802801],"hpluv":[347.391874641304071,306.231145677972847,24.764944554878376],"hsluv":[347.391874641304071,99.9999999999975557,24.764944554878376]},"#770055":{"lch":[25.4983947844981387,57.0853266397623571,333.997796644431901],"luv":[25.4983947844981387,51.3069893372134587,-25.0265331742018731],"rgb":[0.466666666666666674,0,0.333333333333333315],"xyz":[0.0924709740807713454,0.0457846529003872391,0.0899140199214541885],"hpluv":[333.997796644431901,284.086748448009075,25.4983947844981387],"hsluv":[333.997796644431901,99.999999999998,25.4983947844981387]},"#770066":{"lch":[26.3955149445472088,58.0812929265372375,320.022905340944305],"luv":[26.3955149445472088,44.5077732621065394,-37.3161453966930949],"rgb":[0.466666666666666674,0,0.4],"xyz":[0.100055969854279517,0.0488186512097905506,0.129861664328598164],"hpluv":[320.022905340944305,279.219318659546161,26.3955149445472088],"hsluv":[320.022905340944305,99.9999999999984,26.3955149445472088]},"#770077":{"lch":[27.4476614837194361,62.5213221502200156,307.715012949243601],"luv":[27.4476614837194361,38.2464397320582776,-49.4583215569799322],"rgb":[0.466666666666666674,0,0.466666666666666674],"xyz":[0.109369982874481436,0.052544256417871367,0.178915466234996073],"hpluv":[307.715012949243601,289.04278373048345,27.4476614837194361],"hsluv":[307.715012949243601,99.9999999999988631,27.4476614837194361]},"#770088":{"lch":[28.6427236217895711,69.3985842918787341,298.067280282401043],"luv":[28.6427236217895711,32.6525926425722872,-61.2370124633397808],"rgb":[0.466666666666666674,0,0.533333333333333326],"xyz":[0.120510399976425264,0.0570004232586489579,0.237588329638568241],"hpluv":[298.067280282401043,307.450798390810235,28.6427236217895711],"hsluv":[298.067280282401043,99.9999999999991473,28.6427236217895711]},"#770099":{"lch":[29.9665727349335924,77.70857748467688,290.909274437861086],"luv":[29.9665727349335924,27.7333531267432782,-72.5912125469701],"rgb":[0.466666666666666674,0,0.6],"xyz":[0.133567364085497964,0.0622232089022781223,0.30635500727968612],"hpluv":[290.909274437861086,329.057057444315717,29.9665727349335924],"hsluv":[290.909274437861086,99.9999999999993605,29.9665727349335924]},"#7700aa":{"lch":[31.4042918618800115,86.7647813143177,285.668616902051383],"luv":[31.4042918618800115,23.4328336498598695,-83.5405864455078415],"rgb":[0.466666666666666674,0,0.66666666666666663],"xyz":[0.14862505705075052,0.0682462860883792238,0.385658856896684721],"hpluv":[285.668616902051383,350.585377409449279,31.4042918618800115],"hsluv":[285.668616902051383,99.9999999999996447,31.4042918618800115]},"#7700bb":{"lch":[32.9411141237069387,96.170393631615,281.802895608829544],"luv":[32.9411141237069387,19.6712233173334745,-94.1370680681067853],"rgb":[0.466666666666666674,0,0.733333333333333282],"xyz":[0.165762649158087166,0.0751013229313139824,0.475916841995326467],"hpluv":[281.802895608829544,370.460950364720645,32.9411141237069387],"hsluv":[281.802895608829544,99.9999999999998295,32.9411141237069387]},"#7700cc":{"lch":[34.5630635499026226,105.713400517707811,278.906152205018032],"luv":[34.5630635499026226,16.3661753747823724,-104.438840249301762],"rgb":[0.466666666666666674,0,0.8],"xyz":[0.185055024601808893,0.082818273108802784,0.577523352665596623],"hpluv":[278.906152205018032,388.112061604616713,34.5630635499026226],"hsluv":[278.906152205018032,99.9999999999998721,34.5630635499026226]},"#7700dd":{"lch":[36.2573361534597964,115.285120662302717,276.696107756350386],"luv":[36.2573361534597964,13.4426218553338188,-114.498711624961956],"rgb":[0.466666666666666674,0,0.866666666666666696],"xyz":[0.206573350152442436,0.091425603329056318,0.690853200565602621],"hpluv":[276.696107756350386,403.475057258468723,36.2573361534597964],"hsluv":[276.696107756350386,100.000000000000156,36.2573361534597964]},"#7700ee":{"lch":[38.012479203832,124.831519574090535,274.979891409884715],"luv":[38.012479203832,10.8361388436516783,-124.360308676593633],"rgb":[0.466666666666666674,0,0.933333333333333348],"xyz":[0.230385530418617201,0.100950475435526349,0.816264016634125844],"hpluv":[274.979891409884715,416.713325299391272,38.012479203832],"hsluv":[274.979891409884715,100.000000000000156,38.012479203832]},"#7700ff":{"lch":[39.8184284160989037,134.326708962856742,273.625091115001112],"luv":[39.8184284160989037,8.49315165227522861,-134.057939398617776],"rgb":[0.466666666666666674,0,1],"xyz":[0.256556578828448567,0.111418894799459045,0.954098204925907689],"hpluv":[273.625091115001112,428.072753406140123,39.8184284160989037],"hsluv":[273.625091115001112,100.000000000000313,39.8184284160989037]},"#771100":{"lch":[24.7134353555624457,74.5310598854495794,14.479461840222152],"luv":[24.7134353555624457,72.1637543524892351,18.6352205622059],"rgb":[0.466666666666666674,0.0666666666666666657,0],"xyz":[0.078080190687547,0.0432353799605829231,0.00423418609655712257],"hpluv":[14.479461840222152,382.686818993669249,24.7134353555624457],"hsluv":[14.479461840222152,100.000000000002174,24.7134353555624457]},"#771111":{"lch":[24.8400617115613187,71.7342088143168723,12.1770506300618244],"luv":[24.8400617115613187,70.1202221387804912,15.1311321924069837],"rgb":[0.466666666666666674,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0790918561871841175,0.043640046160437776,0.00956229106131275403],"hpluv":[12.1770506300618244,366.448517223619376,24.8400617115613187],"hsluv":[12.1770506300618244,85.8702458957174173,24.8400617115613187]},"#771122":{"lch":[25.0727380413203562,67.2476760425649616,7.76714475492354417],"luv":[25.0727380413203562,66.6307123231625,9.0883501491595],"rgb":[0.466666666666666674,0.0666666666666666657,0.133333333333333331],"xyz":[0.0809672143256611465,0.0443901894158286,0.0194391772572919501],"hpluv":[7.76714475492354417,340.341449223453765,25.0727380413203562],"hsluv":[7.76714475492354417,86.6206298981217,25.0727380413203562]},"#771133":{"lch":[25.4501908259833556,61.6001849310061189,0.209311103178295294],"luv":[25.4501908259833556,61.599773884646936,0.225035318388215971],"rgb":[0.466666666666666674,0.0666666666666666657,0.2],"xyz":[0.0840549650581188801,0.0456252897088117101,0.0357013311149031],"hpluv":[0.209311103178295294,307.135699817562568,25.4501908259833556],"hsluv":[0.209311103178295294,87.6964449022470802,25.4501908259833556]},"#771144":{"lch":[25.9833113937366775,56.5829308746863688,349.098656617234155],"luv":[25.9833113937366775,55.5618510799655,-10.7008771106518541],"rgb":[0.466666666666666674,0.0666666666666666657,0.266666666666666663],"xyz":[0.0885129603023377537,0.0474084878064992832,0.0591801060677897353],"hpluv":[349.098656617234155,276.331419289390624,25.9833113937366775],"hsluv":[349.098656617234155,88.9762099121112442,25.9833113937366775]},"#771155":{"lch":[26.6758393728738312,54.157242934368746,335.112354986374442],"luv":[26.6758393728738312,49.127918835603694,-22.7915456504066185],"rgb":[0.466666666666666674,0.0666666666666666657,0.333333333333333315],"xyz":[0.0944753743416997527,0.0497934534222441161,0.0905821533417636438],"hpluv":[335.112354986374442,257.618934567198892,26.6758393728738312],"hsluv":[335.112354986374442,90.3225181656420375,26.6758393728738312]},"#771166":{"lch":[27.5255776115618076,55.4731266930874796,320.490705765847224],"luv":[27.5255776115618076,42.7987039146097388,-35.2921907557026557],"rgb":[0.466666666666666674,0.0666666666666666657,0.4],"xyz":[0.102060370115207924,0.0528274517316474276,0.130529797748907606],"hpluv":[320.490705765847224,255.732268141411282,27.5255776115618076],"hsluv":[320.490705765847224,91.6238582413064364,27.5255776115618076]},"#771177":{"lch":[28.525624322061,60.3055315504910538,307.715012949243658],"luv":[28.525624322061,36.8909645322892956,-47.7054909990940672],"rgb":[0.466666666666666674,0.0666666666666666657,0.466666666666666674],"xyz":[0.111374383135409843,0.056553056939728244,0.179583599655305515],"hpluv":[307.715012949243658,268.263334170626,28.525624322061],"hsluv":[307.715012949243658,92.8109433172232201,28.525624322061]},"#771188":{"lch":[29.665668786552871,67.5901402176946,297.828537901307072],"luv":[29.665668786552871,31.5529142063876336,-59.77324367751811],"rgb":[0.466666666666666674,0.0666666666666666657,0.533333333333333326],"xyz":[0.122514800237353672,0.0610092237805058418,0.238256463058877682],"hpluv":[297.828537901307072,289.113605882780575,29.665668786552871],"hsluv":[297.828537901307072,93.8529472884676892,29.665668786552871]},"#771199":{"lch":[30.9332504381216253,76.2730393291315494,290.583951381139741],"luv":[30.9332504381216253,26.816032696200331,-71.4036197887723461],"rgb":[0.466666666666666674,0.0666666666666666657,0.6],"xyz":[0.135571764346426371,0.066232009424135,0.307023140699995589],"hpluv":[290.583951381139741,312.885056330098905,30.9332504381216253],"hsluv":[290.583951381139741,94.745562802664864,30.9332504381216253]},"#7711aa":{"lch":[32.3148680584756391,85.6471240548678452,285.332056603477554],"luv":[32.3148680584756391,22.6461849228904,-82.5989114172104166],"rgb":[0.466666666666666674,0.0666666666666666657,0.66666666666666663],"xyz":[0.150629457311678927,0.0722550866102361078,0.38632699031699419],"hpluv":[285.332056603477554,336.317699636744408,32.3148680584756391],"hsluv":[285.332056603477554,95.4992611083078771,32.3148680584756391]},"#7711bb":{"lch":[33.796865882550442,95.3131880713117,281.486339493443666],"luv":[33.796865882550442,18.9801244444786903,-93.4042755787407],"rgb":[0.466666666666666674,0.0666666666666666657,0.733333333333333282],"xyz":[0.167767049419015574,0.0791101234531708664,0.476584975415635936],"hpluv":[281.486339493443666,357.862255189103962,33.796865882550442],"hsluv":[281.486339493443666,96.130904738193,33.796865882550442]},"#7711cc":{"lch":[35.36607449089243,105.064609202725904,278.619980375929231],"luv":[35.36607449089243,15.7470979978009513,-103.877817707002151],"rgb":[0.466666666666666674,0.0666666666666666657,0.8],"xyz":[0.1870594248627373,0.086827073630659668,0.578191486085906092],"hpluv":[278.619980375929231,376.971848031202455,35.36607449089243],"hsluv":[278.619980375929231,96.6587778670915441,35.36607449089243]},"#7711dd":{"lch":[37.0102245888209,114.800572621107989,276.441726024966442],"luv":[37.0102245888209,12.8797770828984923,-114.075776641796878],"rgb":[0.466666666666666674,0.0666666666666666657,0.866666666666666696],"xyz":[0.208577750413370844,0.0954344038509132,0.69152133398591209],"hpluv":[276.441726024966442,393.605954910771402,37.0102245888209],"hsluv":[276.441726024966442,97.1000737310191084,37.0102245888209]},"#7711ee":{"lch":[38.7181742300654648,124.475046910670883,274.755182332196796],"luv":[38.7181742300654648,10.3187754184265525,-124.046604859938796],"rgb":[0.466666666666666674,0.0666666666666666657,0.933333333333333348],"xyz":[0.232389930679545609,0.104959275957383219,0.816932150054435313],"hpluv":[274.755182332196796,407.949828918098,38.7181742300654648],"hsluv":[274.755182332196796,97.4698666617264706,38.7181742300654648]},"#7711ff":{"lch":[40.4799968781786,134.069342311184641,273.42679883886251],"luv":[40.4799968781786,8.01376323316973682,-133.829623576382744],"rgb":[0.466666666666666674,0.0666666666666666657,1],"xyz":[0.258560979089377,0.115427695321315929,0.954766338346217158],"hpluv":[273.42679883886251,420.269946860795244,40.4799968781786],"hsluv":[273.42679883886251,99.99999999999946,40.4799968781786]},"#772200":{"lch":[26.9238486490213944,67.8779226750429814,18.9619118830866213],"luv":[26.9238486490213944,64.1945131058521241,22.0562207502031953],"rgb":[0.466666666666666674,0.133333333333333331,0],"xyz":[0.0817958144223149414,0.0506666274301188907,0.00547272734147973266],"hpluv":[18.9619118830866213,319.912145739235086,26.9238486490213944],"hsluv":[18.9619118830866213,100.000000000002203,26.9238486490213944]},"#772211":{"lch":[27.0378210495853537,65.3114997865878451,16.6506371445360628],"luv":[27.0378210495853537,62.5729698674152957,18.7140440938083152],"rgb":[0.466666666666666674,0.133333333333333331,0.0666666666666666657],"xyz":[0.0828074799219520596,0.0510712936299737436,0.0108008323062353633],"hpluv":[16.6506371445360628,306.518925183772069,27.0378210495853537],"hsluv":[16.6506371445360628,87.77659617077137,27.0378210495853537]},"#772222":{"lch":[27.2475131582451553,61.1491638550902934,12.1770506300618262],"luv":[27.2475131582451553,59.7733358183195094,12.8983939049434628],"rgb":[0.466666666666666674,0.133333333333333331,0.133333333333333331],"xyz":[0.0846828380604290887,0.0518214368853645649,0.0206777185022145593],"hpluv":[12.1770506300618262,284.775733052529233,27.2475131582451553],"hsluv":[12.1770506300618262,66.7317810633447,27.2475131582451553]},"#772233":{"lch":[27.5884028886125066,55.830319472153235,4.36926883706767555],"luv":[27.5884028886125066,55.668063043001986,4.25339034219168255],"rgb":[0.466666666666666674,0.133333333333333331,0.2],"xyz":[0.0877705887928868222,0.0530565371783476777,0.0369398723598257],"hpluv":[4.36926883706767555,256.792821962959806,27.5884028886125066],"hsluv":[4.36926883706767555,69.0869865520346,27.5884028886125066]},"#772244":{"lch":[28.0713586292933357,51.0577981227000137,352.597218961633928],"luv":[28.0713586292933357,50.6322267647614197,-6.57847717790113862],"rgb":[0.466666666666666674,0.133333333333333331,0.266666666666666663],"xyz":[0.0922285840371057,0.0548397352760352508,0.0604186473127123411],"hpluv":[352.597218961633928,230.801153887638264,28.0713586292933357],"hsluv":[352.597218961633928,71.9536276136468871,28.0713586292933357]},"#772255":{"lch":[28.7011983995690869,48.8793621784160877,337.425357822166575],"luv":[28.7011983995690869,45.134235573623549,-18.7641367015226166],"rgb":[0.466666666666666674,0.133333333333333331,0.333333333333333315],"xyz":[0.0981909980764677,0.0572247008917800837,0.0918206945866862495],"hpluv":[337.425357822166575,216.105005327694982,28.7011983995690869],"hsluv":[337.425357822166575,75.0482997779786416,28.7011983995690869]},"#772266":{"lch":[29.4776386596593341,50.6214045611569148,321.457127980188602],"luv":[29.4776386596593341,39.5931335065919541,-31.5421999688275427],"rgb":[0.466666666666666674,0.133333333333333331,0.4],"xyz":[0.105775993849975866,0.0602586992011833952,0.131768338993830225],"hpluv":[321.457127980188602,217.911839443782668,29.4776386596593341],"hsluv":[321.457127980188602,78.1196257410634871,29.4776386596593341]},"#772277":{"lch":[30.3962065887853328,56.0773495547330114,307.715012949243828],"luv":[30.3962065887853328,34.3044404103525125,-44.3607315225559375],"rgb":[0.466666666666666674,0.133333333333333331,0.466666666666666674],"xyz":[0.115090006870177786,0.0639843044092642116,0.180822140900228134],"hpluv":[307.715012949243828,234.103236488433623,30.3962065887853328],"hsluv":[307.715012949243828,80.9925899090149,30.3962065887853328]},"#772288":{"lch":[31.4492100235983827,64.0564791390884,297.353574907339521],"luv":[31.4492100235983827,29.432687880373738,-56.8941948166328118],"rgb":[0.466666666666666674,0.133333333333333331,0.533333333333333326],"xyz":[0.126230423972121614,0.0684404712500418094,0.239495004303800302],"hpluv":[297.353574907339521,258.459589193709576,31.4492100235983827],"hsluv":[297.353574907339521,83.5725358287189692,31.4492100235983827]},"#772299":{"lch":[32.6267183371791276,73.3979299617999885,289.947447059718741],"luv":[32.6267183371791276,25.040297814612174,-68.9944896932561136],"rgb":[0.466666666666666674,0.133333333333333331,0.6],"xyz":[0.139287388081194341,0.073663256893670967,0.308261681944918209],"hpluv":[289.947447059718741,285.462946683821,32.6267183371791276],"hsluv":[289.947447059718741,85.8272099061853169,32.6267183371791276]},"#7722aa":{"lch":[33.91747454857272,83.3484305918169213,284.681710760769079],"luv":[33.91747454857272,21.1245907707188039,-80.6269963900962],"rgb":[0.466666666666666674,0.133333333333333331,0.66666666666666663],"xyz":[0.154345081046446869,0.0796863340797720754,0.38756553156191681],"hpluv":[284.681710760769079,311.826661765562392,33.91747454857272],"hsluv":[284.681710760769079,87.7639475735253,33.91747454857272]},"#7722bb":{"lch":[35.3096729107126137,93.4985765466947,280.880145280973409],"luv":[35.3096729107126137,17.6483381470917493,-91.8178630599952186],"rgb":[0.466666666666666674,0.133333333333333331,0.733333333333333282],"xyz":[0.171482673153783516,0.086541370922706834,0.477823516660558556],"hpluv":[280.880145280973409,336.008784107710085,35.3096729107126137],"hsluv":[280.880145280973409,89.410850129911168,35.3096729107126137]},"#7722cc":{"lch":[36.7915673195940158,103.646851370476796,278.075561058441508],"luv":[36.7915673195940158,14.5601992392030191,-102.619054746808203],"rgb":[0.466666666666666674,0.133333333333333331,0.8],"xyz":[0.19077504859750527,0.0942583211001956356,0.579430027330828712],"hpluv":[278.075561058441508,357.476214898523438,36.7915673195940158],"hsluv":[278.075561058441508,90.8041771911133395,36.7915673195940158]},"#7722dd":{"lch":[38.351906528896663,113.703099806952181,275.960131804992216],"luv":[38.351906528896663,11.8065226659589069,-113.088465053903391],"rgb":[0.466666666666666674,0.133333333333333331,0.866666666666666696],"xyz":[0.212293374148138814,0.10286565132044917,0.69275987523083471],"hpluv":[275.960131804992216,376.205095027198126,38.351906528896663],"hsluv":[275.960131804992216,91.9810564333708101,38.351906528896663]},"#7722ee":{"lch":[39.9802139341708269,123.633267676123751,274.331320845995606],"luv":[39.9802139341708269,9.33725773346982812,-123.280170726255989],"rgb":[0.466666666666666674,0.133333333333333331,0.933333333333333348],"xyz":[0.236105554414313523,0.112390523426919187,0.818170691299357933],"hpluv":[274.331320845995606,392.400507860275241,39.9802139341708269],"hsluv":[274.331320845995606,92.975835565241681,39.9802139341708269]},"#7722ff":{"lch":[41.6669409214524222,133.430100966175758,273.053819065229],"luv":[41.6669409214524222,7.10835060884393233,-133.240621416539511],"rgb":[0.466666666666666674,0.133333333333333331,1],"xyz":[0.262276602824144944,0.122858942790851897,0.956004879591139778],"hpluv":[273.053819065229,406.351179140502,41.6669409214524222],"hsluv":[273.053819065229,99.9999999999994,41.6669409214524222]},"#eeaa00":{"lch":[74.1441199778221716,94.3993067628715323,52.9277228913731435],"luv":[74.1441199778221716,56.9059790518510553,75.3189130661151438],"rgb":[0.933333333333333348,0.66666666666666663,0],"xyz":[0.496332043879122442,0.469286695915611562,0.0644413600602487119],"hpluv":[52.9277228913731435,161.559096825574699,74.1441199778221716],"hsluv":[52.9277228913731435,100.00000000000226,74.1441199778221716]},"#eeaa11":{"lch":[74.170022976797469,93.4032488378738748,52.6298301838218165],"luv":[74.170022976797469,56.6922374254564474,74.2304325001913412],"rgb":[0.933333333333333348,0.66666666666666663,0.0666666666666666657],"xyz":[0.497343709378759546,0.469691362115466415,0.0697694650250043485],"hpluv":[52.6298301838218165,159.798572537124,74.170022976797469],"hsluv":[52.6298301838218165,98.6103970010943698,74.170022976797469]},"#eeaa22":{"lch":[74.2180009061856794,91.5777923210439866,52.06484069365154],"luv":[74.2180009061856794,56.2992155036066038,72.2280442769616],"rgb":[0.933333333333333348,0.66666666666666663,0.133333333333333331],"xyz":[0.499219067517236603,0.470441505370857216,0.0796463512209835411],"hpluv":[52.06484069365154,156.574215350823607,74.2180009061856794],"hsluv":[52.06484069365154,96.0561964998804427,74.2180009061856794]},"#eeaa33":{"lch":[74.296884894391,88.6315089581908353,51.0969321655322659],"luv":[74.296884894391,55.6610065739707096,68.9738843866158646],"rgb":[0.933333333333333348,0.66666666666666663,0.2],"xyz":[0.502306818249694365,0.471676605663840343,0.0959085050785946913],"hpluv":[51.0969321655322659,151.375944062314744,74.296884894391],"hsluv":[51.0969321655322659,91.9112466174575786,74.296884894391]},"#eeaa44":{"lch":[74.4105324975616,84.5080331915566,49.6113532778883268],"luv":[74.4105324975616,54.7585847399730952,64.3669563610119582],"rgb":[0.933333333333333348,0.66666666666666663,0.266666666666666663],"xyz":[0.506764813493913224,0.473459803761527909,0.11938728003148133],"hpluv":[49.6113532778883268,144.112916810009352,74.4105324975616],"hsluv":[49.6113532778883268,86.056132752536,74.4105324975616]},"#eeaa55":{"lch":[74.5620870475656545,79.2349762990306203,47.4460085751506284],"luv":[74.5620870475656545,53.5853993814341081,58.3676832008958897],"rgb":[0.933333333333333348,0.66666666666666663,0.333333333333333315],"xyz":[0.512727227533275154,0.475844769377272769,0.150789327305455245],"hpluv":[47.4460085751506284,134.846041865267,74.5620870475656545],"hsluv":[47.4460085751506284,78.4547380743125302,74.5620870475656545]},"#eeaa66":{"lch":[74.7541548019056705,72.9335579755352512,44.3584242628533616],"luv":[74.7541548019056705,52.1460491859645643,50.9911113162453518],"rgb":[0.933333333333333348,0.66666666666666663,0.4],"xyz":[0.520312223306783395,0.478878767686676088,0.190736971712599179],"hpluv":[44.3584242628533616,123.803063546095515,74.7541548019056705],"hsluv":[44.3584242628533616,69.1456590086766,74.7541548019056705]},"#eeaa77":{"lch":[74.988898345165353,65.8409092602829702,39.9757578623994689],"luv":[74.988898345165353,50.4549646902964213,42.3003767160737851],"rgb":[0.933333333333333348,0.66666666666666663,0.466666666666666674],"xyz":[0.529626236326985245,0.482604372894756883,0.239790773618997088],"hpluv":[39.9757578623994689,111.41359114675457,74.988898345165353],"hsluv":[39.9757578623994689,69.3768546233612398,74.988898345165353]},"#eeaa88":{"lch":[75.268091919562039,58.355059996267,33.7246537035848917],"luv":[75.268091919562039,48.5347963512250544,32.3988668060016],"rgb":[0.933333333333333348,0.66666666666666663,0.533333333333333326],"xyz":[0.540766653428929156,0.487060539735534481,0.298463637022569284],"hpluv":[33.7246537035848917,98.3800275430836706,75.268091919562039],"hsluv":[33.7246537035848917,69.7313730072723388,75.268091919562039]},"#eeaa99":{"lch":[75.5931575717450102,51.1191249468368198,24.7740386445795764],"luv":[75.5931575717450102,46.4145012045046172,21.4209946843594],"rgb":[0.933333333333333348,0.66666666666666663,0.6],"xyz":[0.5538236175380018,0.492283325379163639,0.367230314663687163],"hpluv":[24.7740386445795764,85.8104641434512274,75.5931575717450102],"hsluv":[24.7740386445795764,70.1099573125584925,75.5931575717450102]},"#eeaaaa":{"lch":[75.9651912478537,45.142946910964838,12.1770506300622827],"luv":[75.9651912478537,44.1272513869876164,9.52215001119964199],"rgb":[0.933333333333333348,0.66666666666666663,0.66666666666666663],"xyz":[0.568881310503254412,0.498306402565264761,0.446534164280685764],"hpluv":[12.1770506300622827,75.4075094474617771,75.9651912478537],"hsluv":[12.1770506300622827,70.5013292017584661,75.9651912478537]},"#eeaabb":{"lch":[76.3849837125259512,41.8257198613105743,355.706426922992932],"luv":[76.3849837125259512,41.7083375548448743,-3.13136077895000353],"rgb":[0.933333333333333348,0.66666666666666663,0.733333333333333282],"xyz":[0.586018902610591,0.505161439408199464,0.53679214937932751],"hpluv":[355.706426922992932,71.0120800923082243,76.3849837125259512],"hsluv":[355.706426922992932,70.8933377227291857,76.3849837125259512]},"#eeaacc":{"lch":[76.8530390510081,42.4751513806234229,337.329003704434115],"luv":[76.8530390510081,39.1932374848878169,-16.3715796507258275],"rgb":[0.933333333333333348,0.66666666666666663,0.8],"xyz":[0.605311278054312729,0.512878389585688321,0.638398660049597666],"hpluv":[337.329003704434115,73.8860979443606283,76.8530390510081],"hsluv":[337.329003704434115,71.273377003825658,76.8530390510081]},"#eeaadd":{"lch":[77.3695923472492666,47.3596417233686893,320.637369166639587],"luv":[77.3695923472492666,36.6159833837478814,-30.0367345929437413],"rgb":[0.933333333333333348,0.66666666666666663,0.866666666666666696],"xyz":[0.626829603604946328,0.521485719805941828,0.751728507949603664],"hpluv":[320.637369166639587,84.6581146126829,77.3695923472492666],"hsluv":[320.637369166639587,71.6287050870027144,77.3695923472492666]},"#eeaaee":{"lch":[77.9346274334411078,55.5926087174301244,307.715012949246329],"luv":[77.9346274334411078,34.00790779424905,-43.9772708506012506],"rgb":[0.933333333333333348,0.66666666666666663,0.933333333333333348],"xyz":[0.650641783871121,0.531010591912411845,0.877139324018126887],"hpluv":[307.715012949246329,102.440850498764817,77.9346274334411078],"hsluv":[307.715012949246329,71.9466349992656,77.9346274334411078]},"#eeaaff":{"lch":[78.5478951631237123,66.0054362136172,298.40296943037481],"luv":[78.5478951631237123,31.3967924706888546,-58.0599606639755166],"rgb":[0.933333333333333348,0.66666666666666663,1],"xyz":[0.676812832280952459,0.541479011276344568,1.01497351230990884],"hpluv":[298.40296943037481,125.797711632464541,78.5478951631237123],"hsluv":[298.40296943037481,99.9999999999967457,78.5478951631237123]},"#773300":{"lch":[30.1331354048611715,59.6402239078303253,26.8671398719653283],"luv":[30.1331354048611715,53.2024709950710601,26.952799257122777],"rgb":[0.466666666666666674,0.2,0],"xyz":[0.0879135365113257461,0.0629020716081407,0.0075119680378166135],"hpluv":[26.8671398719653283,251.150628123644026,30.1331354048611715],"hsluv":[26.8671398719653283,100.000000000002174,30.1331354048611715]},"#773311":{"lch":[30.23185303241101,57.2493346092074376,24.6191658238461528],"luv":[30.23185303241101,52.0451874365790204,23.8492091669378929],"rgb":[0.466666666666666674,0.2,0.0666666666666666657],"xyz":[0.0889252020109628644,0.0633067378079955473,0.012840073002572245],"hpluv":[24.6191658238461528,240.295148301589592,30.23185303241101],"hsluv":[24.6191658238461528,89.9983576544591131,30.23185303241101]},"#773322":{"lch":[30.4137421865898716,53.2944669038914185,20.1857997859538507],"luv":[30.4137421865898716,50.0210446853216055,18.3900867632275506],"rgb":[0.466666666666666674,0.2,0.133333333333333331],"xyz":[0.0908005601494399,0.0640568810633863617,0.022716959198551441],"hpluv":[20.1857997859538507,222.35740076876786,30.4137421865898716],"hsluv":[20.1857997859538507,72.5478159849102,30.4137421865898716]},"#773333":{"lch":[30.7101510688592612,48.0738359215612618,12.1770506300619186],"luv":[30.7101510688592612,46.9921967440780932,10.1403720532853221],"rgb":[0.466666666666666674,0.2,0.2],"xyz":[0.093888310881897627,0.0652919813563694745,0.0389791130561625843],"hpluv":[12.1770506300619186,198.639745699191,30.7101510688592612],"hsluv":[12.1770506300619186,46.5474493854848177,30.7101510688592612]},"#773344":{"lch":[31.1315732769052218,43.177963340605487,359.450637080068248],"luv":[31.1315732769052218,43.1759786068728815,-0.413992248148033204],"rgb":[0.466666666666666674,0.2,0.266666666666666663],"xyz":[0.0983463061261165,0.0670751794540570545,0.0624578880090492228],"hpluv":[359.450637080068248,175.995032884643848,31.1315732769052218],"hsluv":[359.450637080068248,50.753084379908266,31.1315732769052218]},"#773355":{"lch":[31.6836931484193158,40.8566925980369149,342.103665666318761],"luv":[31.6836931484193158,38.8798033655970627,-12.5550874271345432],"rgb":[0.466666666666666674,0.2,0.333333333333333315],"xyz":[0.1043087201654785,0.0694601450698018874,0.0938599352830231382],"hpluv":[342.103665666318761,163.631433468067485,31.6836931484193158],"hsluv":[342.103665666318761,55.4419897041632623,31.6836931484193158]},"#773366":{"lch":[32.368092831934419,42.8604868736005429,323.403106692152903],"luv":[32.368092831934419,34.4105334223914952,-25.55262265656037],"rgb":[0.466666666666666674,0.2,0.4],"xyz":[0.111893715938986671,0.0724941433792052,0.1338075796901671],"hpluv":[323.403106692152903,168.027093700417197,32.368092831934419],"hsluv":[323.403106692152903,60.2559031079253913,32.368092831934419]},"#773377":{"lch":[33.18286532501061,49.0630735877418189,307.715012949244226],"luv":[33.18286532501061,30.0135669321659,-38.8119954380674201],"rgb":[0.466666666666666674,0.2,0.466666666666666674],"xyz":[0.12120772895918859,0.0762197485872860153,0.182861381596565],"hpluv":[307.715012949244226,187.620458725202155,33.18286532501061],"hsluv":[307.715012949244226,64.9109644958811458,33.18286532501061]},"#773388":{"lch":[34.1232577260479,58.0074356166469371,296.464975996700218],"luv":[34.1232577260479,25.8510525803809479,-51.9286594021626868],"rgb":[0.466666666666666674,0.2,0.533333333333333326],"xyz":[0.132348146061132432,0.0806759154280636132,0.241534245000137177],"hpluv":[296.464975996700218,215.711106662248483,34.1232577260479],"hsluv":[296.464975996700218,69.2226633917654226,34.1232577260479]},"#773399":{"lch":[35.1823459678372572,68.3160830057283,288.793689920994325],"luv":[35.1823459678372572,22.0088074868374761,-64.6737936899706369],"rgb":[0.466666666666666674,0.2,0.6],"xyz":[0.145405110170205132,0.0858987010716927707,0.310300922641255084],"hpluv":[288.793689920994325,246.398176299420243,35.1823459678372572],"hsluv":[288.793689920994325,73.0971646513407,35.1823459678372572]},"#7733aa":{"lch":[36.3517007299652,79.1457370086552316,283.529620316849901],"luv":[36.3517007299652,18.5159885211015585,-76.9493720294691741],"rgb":[0.466666666666666674,0.2,0.66666666666666663],"xyz":[0.160462803135457688,0.0919217782577938791,0.389604772258253684],"hpluv":[283.529620316849901,276.275338575971432,36.3517007299652],"hsluv":[283.529620316849901,76.5077273075914093,36.3517007299652]},"#7733bb":{"lch":[37.6219984216960484,90.0609255961329183,279.823655256592],"luv":[37.6219984216960484,15.3658639022925581,-88.7404110074345596],"rgb":[0.466666666666666674,0.2,0.733333333333333282],"xyz":[0.177600395242794307,0.0987768151007286377,0.479862757356895431],"hpluv":[279.823655256592,303.762299466947354,37.6219984216960484],"hsluv":[279.823655256592,79.4699002038008615,37.6219984216960484]},"#7733cc":{"lch":[38.9835424310364687,100.85881095677091,277.137789072490136],"luv":[38.9835424310364687,12.5323059717609908,-100.077175492935524],"rgb":[0.466666666666666674,0.2,0.8],"xyz":[0.196892770686516061,0.106493765278217439,0.581469268027165587],"hpluv":[277.137789072490136,328.300745951509327,38.9835424310364687],"hsluv":[277.137789072490136,82.0218198813884,38.9835424310364687]},"#7733dd":{"lch":[40.4266769703902469,111.457640409912926,275.137669231249674],"luv":[40.4266769703902469,9.98093438608736,-111.009848907770674],"rgb":[0.466666666666666674,0.2,0.866666666666666696],"xyz":[0.218411096237149605,0.115101095498470973,0.694799115927171584],"hpluv":[275.137669231249674,349.849394775278881,40.4266769703902469],"hsluv":[275.137669231249674,84.2108753320266459,40.4266769703902469]},"#7733ee":{"lch":[41.9420918590451066,121.83559331992231,273.612094072304103],"luv":[41.9420918590451066,7.67578650940870766,-121.593561100411392],"rgb":[0.466666666666666674,0.2,0.933333333333333348],"xyz":[0.242223276503324342,0.12462596760494099,0.820209931995694808],"hpluv":[273.612094072304103,368.606867281158145,41.9420918590451066],"hsluv":[273.612094072304103,91.3228806729277665,41.9420918590451066]},"#7733ff":{"lch":[43.521028110395612,131.998699032970592,272.424037139620168],"luv":[43.521028110395612,5.58285979872954208,-131.88058319125102],"rgb":[0.466666666666666674,0.2,1],"xyz":[0.268394324913155735,0.135094386968873714,0.958044120287476653],"hpluv":[272.424037139620168,384.866252510120546,43.521028110395612],"hsluv":[272.424037139620168,99.9999999999993605,43.521028110395612]},"#eebb00":{"lch":[78.2979307719844115,92.4506686575273307,61.8965912674010781],"luv":[78.2979307719844115,43.5502151824584587,81.5506277890334275],"rgb":[0.933333333333333348,0.733333333333333282,0],"xyz":[0.530286541787721277,0.537195691732810121,0.0757595260297813378],"hpluv":[61.8965912674010781,173.778692590363192,78.2979307719844115],"hsluv":[61.8965912674010781,100.000000000002373,78.2979307719844115]},"#eebb11":{"lch":[78.3216028454340858,91.4822746680663528,61.6861071172261504],"luv":[78.3216028454340858,43.3901974999079059,80.5375523551748],"rgb":[0.933333333333333348,0.733333333333333282,0.0666666666666666657],"xyz":[0.531298207287358437,0.537600357932665,0.0810876309945369744],"hpluv":[61.6861071172261504,172.182825477748111,78.3216028454340858],"hsluv":[61.6861071172261504,98.7812238781787642,78.3216028454340858]},"#eebb22":{"lch":[78.3654531575016335,89.702527227679937,61.2866058237147371],"luv":[78.3654531575016335,43.0956539167563477,78.672155204492924],"rgb":[0.933333333333333348,0.733333333333333282,0.133333333333333331],"xyz":[0.533173565425835383,0.53835050118805583,0.090964517190516167],"hpluv":[61.2866058237147371,169.241982225815036,78.3654531575016335],"hsluv":[61.2866058237147371,96.5386826089343,78.3654531575016335]},"#eebb33":{"lch":[78.4375634156200192,86.8156112143301897,60.6012126372659665],"luv":[78.4375634156200192,42.6165086308843897,75.6358614853528906],"rgb":[0.933333333333333348,0.733333333333333282,0.2],"xyz":[0.5362613161582932,0.539585601481039,0.107226671048127303],"hpluv":[60.6012126372659665,164.44952499458185,78.4375634156200192],"hsluv":[60.6012126372659665,92.89304460263088,78.4375634156200192]},"#eebb44":{"lch":[78.5414800230656,82.7424491039972878,59.5464137785053],"luv":[78.5414800230656,41.9372005918819397,71.3273025583039839],"rgb":[0.933333333333333348,0.733333333333333282,0.266666666666666663],"xyz":[0.540719311402512059,0.541368799578726523,0.130705446001013942],"hpluv":[59.5464137785053,157.640041580932575,78.5414800230656],"hsluv":[59.5464137785053,87.729612164687,78.5414800230656]},"#eebb55":{"lch":[78.6801087960333,77.4695312482544,58.0014729567720551],"luv":[78.6801087960333,41.0509080282697809,65.6989438414256455],"rgb":[0.933333333333333348,0.733333333333333282,0.333333333333333315],"xyz":[0.546681725441874,0.543753765194471272,0.162107493274987857],"hpluv":[58.0014729567720551,148.738759066450825,78.6801087960333],"hsluv":[58.0014729567720551,81.0022494643358613,78.6801087960333]},"#eebb66":{"lch":[78.8558787138066748,71.0520814803831229,55.7790951769469174],"luv":[78.8558787138066748,39.9586324736418845,58.7512210386423703],"rgb":[0.933333333333333348,0.733333333333333282,0.4],"xyz":[0.55426672121538223,0.546787763503874591,0.202055137682131819],"hpluv":[55.7790951769469174,137.768430134850121,78.8558787138066748],"hsluv":[55.7790951769469174,72.7264864885570574,78.8558787138066748]},"#eebb77":{"lch":[79.0708286262536,63.6259938562226566,52.5733668905169],"luv":[79.0708286262536,38.6683825737350801,50.5274507898760348],"rgb":[0.933333333333333348,0.733333333333333282,0.466666666666666674],"xyz":[0.56358073423558408,0.550513368711955442,0.251108939588529756],"hpluv":[52.5733668905169,124.876553308513152,79.0708286262536],"hsluv":[52.5733668905169,64.3532422469102841,79.0708286262536]},"#eebb88":{"lch":[79.3266586201773833,55.4370708593257149,47.8613800964459557],"luv":[79.3266586201773833,37.1942049853437169,41.1079060640423961],"rgb":[0.933333333333333348,0.733333333333333282,0.533333333333333326],"xyz":[0.574721151337528,0.554969535552733,0.309781802992101896],"hpluv":[47.8613800964459557,110.403075040931697,79.3266586201773833],"hsluv":[47.8613800964459557,64.6428486235092379,79.3266586201773833]},"#eebb99":{"lch":[79.6247632766216071,46.9114913521919519,40.7190885070752131],"luv":[79.6247632766216071,35.5550187983100727,30.6027557441907163],"rgb":[0.933333333333333348,0.733333333333333282,0.6],"xyz":[0.587778115446600635,0.560192321196362197,0.378548480633219775],"hpluv":[40.7190885070752131,95.0436922052712845,79.6247632766216071],"hsluv":[40.7190885070752131,64.94797236425741,79.6247632766216071]},"#eebbaa":{"lch":[79.9662551563314,38.821829319770238,29.5464132636418633],"luv":[79.9662551563314,33.7733033676501,19.1441482278540249],"rgb":[0.933333333333333348,0.733333333333333282,0.66666666666666663],"xyz":[0.602835808411853247,0.566215398382463264,0.457852330250218431],"hpluv":[29.5464132636418633,80.2381481795300573,79.9662551563314],"hsluv":[29.5464132636418633,65.2570717669902081,79.9662551563314]},"#eebbbb":{"lch":[80.3519829843595,32.6073830473385868,12.1770506300627979],"luv":[80.3519829843595,31.8737319395561,6.87798236703069765],"rgb":[0.933333333333333348,0.733333333333333282,0.733333333333333282],"xyz":[0.61997340051918981,0.573070435225398,0.548110315348860122],"hpluv":[12.1770506300627979,68.9527679352530498,80.3519829843595],"hsluv":[12.1770506300627979,65.5572779496269646,80.3519829843595]},"#eebbcc":{"lch":[80.7825470949933,30.4869713003172755,348.56539147946927],"luv":[80.7825470949933,29.8818538307637169,-6.04402437976891349],"rgb":[0.933333333333333348,0.733333333333333282,0.8],"xyz":[0.639265775962911564,0.58078738540288688,0.649716826019130278],"hpluv":[348.56539147946927,66.1649916626687542,80.7825470949933],"hsluv":[348.56539147946927,65.8346704867411,80.7825470949933]},"#eebbdd":{"lch":[81.2583136554081165,33.9595526191752555,325.014354592586812],"luv":[81.2583136554081165,27.8229160969035512,-19.4714291709468021],"rgb":[0.933333333333333348,0.733333333333333282,0.866666666666666696],"xyz":[0.660784101513545163,0.589394715623140386,0.763046673919136276],"hpluv":[325.014354592586812,75.8902298772919721,81.2583136554081165],"hsluv":[325.014354592586812,66.0744631525984119,81.2583136554081165]},"#eebbee":{"lch":[81.7794285687783429,42.0458499431423576,307.715012949247921],"luv":[81.7794285687783429,25.7208902583653902,-33.2609275540891716],"rgb":[0.933333333333333348,0.733333333333333282,0.933333333333333348],"xyz":[0.684596281779719873,0.598919587729610403,0.888457489987659499],"hpluv":[307.715012949247921,97.0917602325266245,81.7794285687783429],"hsluv":[307.715012949247921,66.2610602343042103,81.7794285687783429]},"#eebbff":{"lch":[82.3458315671937697,52.842459086223478,296.523687653639684],"luv":[82.3458315671937697,23.5977388768935938,-47.2807804734349446],"rgb":[0.933333333333333348,0.733333333333333282,1],"xyz":[0.710767330189551294,0.609388007093543127,1.02629167827944134],"hpluv":[296.523687653639684,126.563624284615543,82.3458315671937697],"hsluv":[296.523687653639684,99.9999999999958504,82.3458315671937697]},"#774400":{"lch":[34.1007355557283631,52.2824067620925845,38.9690248280103901],"luv":[34.1007355557283631,40.6488429776156863,32.8804139483986475],"rgb":[0.466666666666666674,0.266666666666666663,0],"xyz":[0.0967461069942917862,0.0805672125740730105,0.0104561581988052085],"hpluv":[38.9690248280103901,194.549962435525771,34.1007355557283631],"hsluv":[38.9690248280103901,100.000000000002302,34.1007355557283631]},"#774411":{"lch":[34.1844760931178726,49.9480603042207,37.0032460066389604],"luv":[34.1844760931178726,39.8885915773263164,30.0617529450848728],"rgb":[0.466666666666666674,0.266666666666666663,0.0666666666666666657],"xyz":[0.0977577724939289,0.0809718787739278634,0.0157842631635608383],"hpluv":[37.0032460066389604,185.408237524396696,34.1844760931178726],"hsluv":[37.0032460066389604,92.0774266797174477,34.1844760931178726]},"#774422":{"lch":[34.3389737161705639,45.9687551907429608,33.0232295817012798],"luv":[34.3389737161705639,38.542488289151045,25.0520069109664867],"rgb":[0.466666666666666674,0.266666666666666663,0.133333333333333331],"xyz":[0.0996331306324059335,0.0817220220293186778,0.0256611493595400378],"hpluv":[33.0232295817012798,169.869245826721482,34.3389737161705639],"hsluv":[33.0232295817012798,78.0803941927279794,34.3389737161705639]},"#774433":{"lch":[34.5913049894652787,40.4066166426811861,25.4401077009201266],"luv":[34.5913049894652787,36.4885814660887746,17.357364174931714],"rgb":[0.466666666666666674,0.266666666666666663,0.2],"xyz":[0.102720881364863667,0.0829571223223017906,0.041923303217151181],"hpluv":[25.4401077009201266,148.226163260119392,34.5913049894652787],"hsluv":[25.4401077009201266,56.8050953227402715,34.5913049894652787]},"#774444":{"lch":[34.9512320153617324,34.6101233100924119,12.1770506300620909],"luv":[34.9512320153617324,33.8314114683579277,7.30042694631360689],"rgb":[0.466666666666666674,0.266666666666666663,0.266666666666666663],"xyz":[0.107178876609082541,0.0847403204199893706,0.0654020781700378195],"hpluv":[12.1770506300620909,125.655060642768362,34.9512320153617324],"hsluv":[12.1770506300620909,29.4448754689639038,34.9512320153617324]},"#774455":{"lch":[35.4248138391838907,31.0799263948782318,351.580242092888511],"luv":[35.4248138391838907,30.7449438027498871,-4.55085214842230634],"rgb":[0.466666666666666674,0.266666666666666663,0.333333333333333315],"xyz":[0.11314129064844454,0.0871252860357342,0.0968041254440117349],"hpluv":[351.580242092888511,111.329877567225012,35.4248138391838907],"hsluv":[351.580242092888511,35.0525071981411855,35.4248138391838907]},"#774466":{"lch":[36.0149447056398699,32.55773059028094,327.386935336661793],"luv":[36.0149447056398699,27.4243377055297302,-17.5474078599198116],"rgb":[0.466666666666666674,0.266666666666666663,0.4],"xyz":[0.120726286421952711,0.090159284345137522,0.136751769851155697],"hpluv":[327.386935336661793,114.712488009680612,36.0149447056398699],"hsluv":[327.386935336661793,41.0162201785438469,36.0149447056398699]},"#774477":{"lch":[36.7217587051522898,39.3078830273429531,307.715012949244965],"luv":[36.7217587051522898,24.0459818745983789,-31.0950224919964064],"rgb":[0.466666666666666674,0.266666666666666663,0.466666666666666674],"xyz":[0.130040299442154617,0.0938848895532183314,0.185805571757553606],"hpluv":[307.715012949244965,135.82994003022975,36.7217587051522898],"hsluv":[307.715012949244965,46.9930223744603381,36.7217587051522898]},"#774488":{"lch":[37.5430301686231331,49.3077922843884906,294.880307130505798],"luv":[37.5430301686231331,20.7449732069104158,-44.731470651041306],"rgb":[0.466666666666666674,0.266666666666666663,0.533333333333333326],"xyz":[0.141180716544098472,0.0983410563939959292,0.244478435161125773],"hpluv":[294.880307130505798,166.657768282509579,37.5430301686231331],"hsluv":[294.880307130505798,52.7229750286883814,37.5430301686231331]},"#774499":{"lch":[38.4745988052595678,60.7540316024919775,286.849160899925266],"luv":[38.4745988052595678,17.609743748149274,-58.1459309073396042],"rgb":[0.466666666666666674,0.266666666666666663,0.6],"xyz":[0.154237680653171172,0.103563842037625087,0.313245112802243653],"hpluv":[286.849160899925266,200.373520820200838,38.4745988052595678],"hsluv":[286.849160899925266,58.0391908614757739,38.4745988052595678]},"#7744aa":{"lch":[39.5108096650206306,72.6607854160185695,281.662296555210446],"luv":[39.5108096650206306,14.6878600390207232,-71.1607792589909423],"rgb":[0.466666666666666674,0.266666666666666663,0.66666666666666663],"xyz":[0.169295373618423728,0.109586919223726181,0.392548962419242253],"hpluv":[281.662296555210446,233.358425064810547,39.5108096650206306],"hsluv":[281.662296555210446,62.855979622580108,39.5108096650206306]},"#7744bb":{"lch":[40.6449442050895,84.5532389367896684,278.156646558388104],"luv":[40.6449442050895,11.9964108827533504,-83.6978873128468],"rgb":[0.466666666666666674,0.266666666666666663,0.733333333333333282],"xyz":[0.186432965725760347,0.11644195606666094,0.482806947517884],"hpluv":[278.156646558388104,263.975148792079324,40.6449442050895],"hsluv":[278.156646558388104,67.1480450168623832,40.6449442050895]},"#7744cc":{"lch":[41.8696179576200223,96.2178725735773099,275.685728840067554],"luv":[41.8696179576200223,9.53248740063005151,-95.7445073439828747],"rgb":[0.466666666666666674,0.266666666666666663,0.8],"xyz":[0.205725341169482101,0.124158906244149742,0.584413458188154156],"hpluv":[275.685728840067554,291.605746800226,41.8696179576200223],"hsluv":[275.685728840067554,71.7563947172966721,41.8696179576200223]},"#7744dd":{"lch":[43.1771261833787037,107.572507589609089,273.881356516641858],"luv":[43.1771261833787037,7.28165300546471084,-107.325774717094461],"rgb":[0.466666666666666674,0.266666666666666663,0.866666666666666696],"xyz":[0.227243666720115645,0.132766236464403276,0.697743306088160153],"hpluv":[273.881356516641858,316.145413845169799,43.1771261833787037],"hsluv":[273.881356516641858,81.1040313116107683,43.1771261833787037]},"#7744ee":{"lch":[44.5597272061305958,118.600491111934247,272.524492751992966],"luv":[44.5597272061305958,5.22393127379498168,-118.485387428318177],"rgb":[0.466666666666666674,0.266666666666666663,0.933333333333333348],"xyz":[0.251055846986290354,0.14229110857087332,0.823154122156683377],"hpluv":[272.524492751992966,337.740615485066769,44.5597272061305958],"hsluv":[272.524492751992966,90.4775463334620866,44.5597272061305958]},"#7744ff":{"lch":[46.0098610845945188,129.316457315512423,271.478956563127554],"luv":[46.0098610845945188,3.33763127257498882,-129.273378350389976],"rgb":[0.466666666666666674,0.266666666666666663,1],"xyz":[0.277226895396121775,0.152759527934806016,0.960988310448465222],"hpluv":[271.478956563127554,356.649979093308843,46.0098610845945188],"hsluv":[271.478956563127554,99.9999999999992752,46.0098610845945188]},"#eecc00":{"lch":[82.5742071813858161,93.0890420253441278,70.6743105766144737],"luv":[82.5742071813858161,30.8066573410433797,87.8437226480516529],"rgb":[0.933333333333333348,0.8,0],"xyz":[0.568510285097338142,0.613643178352045071,0.088500773799653279],"hpluv":[70.6743105766144737,226.330948640265689,82.5742071813858161],"hsluv":[70.6743105766144737,100.000000000002331,82.5742071813858161]},"#eecc11":{"lch":[82.5958706312260773,92.1609271203023,70.5494354113464226],"luv":[82.5958706312260773,30.6889817522442812,86.9012248859824297],"rgb":[0.933333333333333348,0.8,0.0666666666666666657],"xyz":[0.569521950596975302,0.6140478445519,0.0938288787644089156],"hpluv":[70.5494354113464226,224.395635781555484,82.5958706312260773],"hsluv":[70.5494354113464226,98.9293851282895389,82.5958706312260773]},"#eecc22":{"lch":[82.636003730849751,90.4517890224530277,70.3125751850760849],"luv":[82.636003730849751,30.4721781878481224,85.1643851257694848],"rgb":[0.933333333333333348,0.8,0.133333333333333331],"xyz":[0.571397308735452247,0.61479798780729078,0.103705764960388108],"hpluv":[70.3125751850760849,220.820363432361461,82.636003730849751],"hsluv":[70.3125751850760849,96.9576791715233668,82.636003730849751]},"#eecc33":{"lch":[82.7020112487531,87.6695564091762236,69.9066450473675332],"luv":[82.7020112487531,30.1189443150749909,82.3334701948554084],"rgb":[0.933333333333333348,0.8,0.2],"xyz":[0.574485059467910064,0.616033088100273907,0.119967918817999258],"hpluv":[69.9066450473675332,214.968262161852493,82.7020112487531],"hsluv":[69.9066450473675332,93.7473974454290726,82.7020112487531]},"#eecc44":{"lch":[82.7971553193909102,83.7217279628800242,69.2828434677537786],"luv":[82.7971553193909102,29.6169744667019792,78.3081257375581],"rgb":[0.933333333333333348,0.8,0.266666666666666663],"xyz":[0.578943054712128924,0.617816286197961473,0.143446693770885897],"hpluv":[69.2828434677537786,206.594355258371763,82.7971553193909102],"hsluv":[69.2828434677537786,89.1900904304584685,82.7971553193909102]},"#eecc55":{"lch":[82.9241214704336471,78.5673404382155098,68.3706518767947387],"luv":[82.9241214704336471,28.9599810639926183,73.0352413585910085],"rgb":[0.933333333333333348,0.8,0.333333333333333315],"xyz":[0.584905468751490853,0.620201251813706222,0.174848741044859812],"hpluv":[68.3706518767947387,195.532369916851508,82.9241214704336471],"hsluv":[68.3706518767947387,83.2339277722755497,82.9241214704336471]},"#eecc66":{"lch":[83.0851700146488241,72.2150018940459688,67.0599726095305186],"luv":[83.0851700146488241,28.1470538355007811,66.503758231685552],"rgb":[0.933333333333333348,0.8,0.4],"xyz":[0.592490464524999094,0.623235250123109541,0.214796385452003746],"hpluv":[67.0599726095305186,181.688085793908328,83.0851700146488241],"hsluv":[67.0599726095305186,75.8779818086204898,83.0851700146488241]},"#eecc77":{"lch":[83.2822165713090925,64.7250307453925586,65.1677162202921778],"luv":[83.2822165713090925,27.1821511319325673,58.740618526133936],"rgb":[0.933333333333333348,0.8,0.466666666666666674],"xyz":[0.601804477545200944,0.626960855331190392,0.263850187358401655],"hpluv":[65.1677162202921778,165.044758034407693,83.2822165713090925],"hsluv":[65.1677162202921778,67.1675472191497533,83.2822165713090925]},"#eecc88":{"lch":[83.5168798492942699,56.2182636624862511,62.3679934299132839],"luv":[83.5168798492942699,26.0735255024375405,49.8062690541919793],"rgb":[0.933333333333333348,0.8,0.533333333333333326],"xyz":[0.612944894647144856,0.631417022171967934,0.322523050761973851],"hpluv":[62.3679934299132839,145.689263900370548,83.5168798492942699],"hsluv":[62.3679934299132839,57.1887031148042198,83.5168798492942699]},"#eecc99":{"lch":[83.79051243806407,46.9027423702446598,58.0311593919332083],"luv":[83.79051243806407,24.8330316313984234,39.7892923013655633],"rgb":[0.933333333333333348,0.8,0.6],"xyz":[0.6260018587562175,0.636639807815597147,0.39128972840309173],"hpluv":[58.0311593919332083,123.89218615802821,83.79051243806407],"hsluv":[58.0311593919332083,56.9799526918745158,83.79051243806407]},"#eeccaa":{"lch":[84.1042222244633,37.1556922719042646,50.8162292091241454],"luv":[84.1042222244633,23.475329457535171,28.8002495660129298],"rgb":[0.933333333333333348,0.8,0.66666666666666663],"xyz":[0.641059551721470111,0.642662885001698214,0.470593578020090331],"hpluv":[50.8162292091241454,100.353156070069275,84.1042222244633],"hsluv":[50.8162292091241454,57.1375361174420533,84.1042222244633]},"#eeccbb":{"lch":[84.4588885299527,27.7950211383377486,37.6158086991229084],"luv":[84.4588885299527,22.0170273242058485,16.9650731765535063],"rgb":[0.933333333333333348,0.8,0.733333333333333282],"xyz":[0.658197143828806674,0.649517921844633,0.560851563118732077],"hpluv":[37.6158086991229084,77.0182985337263517,84.4588885299527],"hsluv":[37.6158086991229084,57.2612530554736736,84.4588885299527]},"#eecccc":{"lch":[84.8551753311588897,20.9471233587290264,12.1770506300631585],"luv":[84.8551753311588897,20.4758227261490333,4.41844550641173317],"rgb":[0.933333333333333348,0.8,0.8],"xyz":[0.677489519272528429,0.65723487202212183,0.662458073789002233],"hpluv":[12.1770506300631585,59.764130158742411,84.8551753311588897],"hsluv":[12.1770506300631585,57.3329985994000637,84.8551753311588897]},"#eeccdd":{"lch":[85.2935429882433596,20.7797326136980232,335.241604291037675],"luv":[85.2935429882433596,18.8696973425293919,-8.70240252448279],"rgb":[0.933333333333333348,0.8,0.866666666666666696],"xyz":[0.699007844823162,0.665842202242375336,0.775787921689008231],"hpluv":[335.241604291037675,61.2821093808529582,85.2935429882433596],"hsluv":[335.241604291037675,57.3323512744098664,85.2935429882433596]},"#eeccee":{"lch":[85.7742593547863805,28.14328338963319,307.715012949251047],"luv":[85.7742593547863805,17.2162128855465397,-22.2631177921859056],"rgb":[0.933333333333333348,0.8,0.933333333333333348],"xyz":[0.722820025089336737,0.675367074348845353,0.901198737757531454],"hpluv":[307.715012949251047,86.153290074940827,85.7742593547863805],"hsluv":[307.715012949251047,57.2362127773837557,85.7742593547863805]},"#eeccff":{"lch":[86.2974107975625344,39.333162863939684,293.258584701896098],"luv":[86.2974107975625344,15.5319389668875889,-36.1366375415599919],"rgb":[0.933333333333333348,0.8,1],"xyz":[0.748991073499168158,0.685835493712778077,1.03903292604931341],"hpluv":[293.258584701896098,125.558261528980708,86.2974107975625344],"hsluv":[293.258584701896098,99.9999999999940314,86.2974107975625344]},"#775500":{"lch":[38.5848153490983421,48.2339285723334328,54.8056311564330656],"luv":[38.5848153490983421,27.7997213245256276,39.4168410682499868],"rgb":[0.466666666666666674,0.333333333333333315,0],"xyz":[0.108559363708637752,0.104193726002765275,0.0143939104369204193],"hpluv":[54.8056311564330656,158.626424871442595,38.5848153490983421],"hsluv":[54.8056311564330656,100.000000000002302,38.5848153490983421]},"#775511":{"lch":[38.6553893217116595,45.9150245993572952,53.4685955296553956],"luv":[38.6553893217116595,27.3315290852913257,36.8941323494598521],"rgb":[0.466666666666666674,0.333333333333333315,0.0666666666666666657],"xyz":[0.10957102920827487,0.104598392202620127,0.0197220154016760491],"hpluv":[53.4685955296553956,150.724584795248319,38.6553893217116595],"hsluv":[53.4685955296553956,93.8009130268131344,38.6553893217116595]},"#775522":{"lch":[38.7857346943923531,41.8305053308362176,50.7011784026830412],"luv":[38.7857346943923531,26.4939762066725,32.3706719268134577],"rgb":[0.466666666666666674,0.333333333333333315,0.133333333333333331],"xyz":[0.111446387346751899,0.105348535458010942,0.0295989015976552486],"hpluv":[50.7011784026830412,136.854920013655288,38.7857346943923531],"hsluv":[50.7011784026830412,82.7342982429400138,38.7857346943923531]},"#775533":{"lch":[38.9990050188249739,35.7224202133018096,45.1472123185964946],"luv":[38.9990050188249739,25.1945818654867857,25.3243825298663161],"rgb":[0.466666666666666674,0.333333333333333315,0.2],"xyz":[0.114534138079209633,0.106583635750994055,0.0458610554552663918],"hpluv":[45.1472123185964946,116.232257903435652,38.9990050188249739],"hsluv":[45.1472123185964946,65.6272728324870656,38.9990050188249739]},"#775544":{"lch":[39.3040305977305735,28.372964966311546,34.1730058033032336],"luv":[39.3040305977305735,23.4742392428959334,15.9369141601135258],"rgb":[0.466666666666666674,0.333333333333333315,0.266666666666666663],"xyz":[0.118992133323428506,0.108366833848681635,0.0693398304081530303],"hpluv":[34.1730058033032336,91.6024225041024,39.3040305977305735],"hsluv":[34.1730058033032336,43.1049791856067799,39.3040305977305735]},"#775555":{"lch":[39.7068052905653701,21.9117916496410494,12.1770506300624941],"luv":[39.7068052905653701,21.4187864245998618,4.62192615633957704],"rgb":[0.466666666666666674,0.333333333333333315,0.333333333333333315],"xyz":[0.124954547362790505,0.110751799464426468,0.100741877682126946],"hpluv":[12.1770506300624941,70.0248633547080601,39.7068052905653701],"hsluv":[12.1770506300624941,16.4089959502104463,39.7068052905653701]},"#775566":{"lch":[40.21091767922141,20.7753835118276839,337.09176723456028],"luv":[40.21091767922141,19.1368182791551824,-8.08694912894311],"rgb":[0.466666666666666674,0.333333333333333315,0.4],"xyz":[0.132539543136298676,0.113785797773829786,0.140689522089270908],"hpluv":[337.09176723456028,65.5608222190156482,40.21091767922141],"hsluv":[337.09176723456028,22.8015335286909036,40.21091767922141]},"#775577":{"lch":[40.8178321801082404,27.3616881241227183,307.715012949246557],"luv":[40.8178321801082404,16.7380842217685313,-21.6448264854847388],"rgb":[0.466666666666666674,0.333333333333333315,0.466666666666666674],"xyz":[0.141853556156500582,0.117511402981910595,0.189743323995668817],"hpluv":[307.715012949246557,85.0613515767839,40.8178321801082404],"hsluv":[307.715012949246557,29.4286369924042717,40.8178321801082404]},"#775588":{"lch":[41.5271394874135922,38.3484586217177892,291.922773984013077],"luv":[41.5271394874135922,14.317648223710199,-35.5754020076188269],"rgb":[0.466666666666666674,0.333333333333333315,0.533333333333333326],"xyz":[0.152993973258444438,0.121967569822688193,0.248416187399240984],"hpluv":[291.922773984013077,117.180466459805771,41.5271394874135922],"hsluv":[291.922773984013077,36.0000576829853429,41.5271394874135922]},"#775599":{"lch":[42.336815252734,50.9328741768069335,283.566916489070877],"luv":[42.336815252734,11.9478768110398388,-49.5116744982298442],"rgb":[0.466666666666666674,0.333333333333333315,0.6],"xyz":[0.166050937367517137,0.127190355466317351,0.317182865040358863],"hpluv":[283.566916489070877,152.657914615048412,42.336815252734],"hsluv":[283.566916489070877,42.2975255710275704,42.336815252734]},"#7755aa":{"lch":[43.2434937800222059,63.9392804809027098,278.705184193400783],"luv":[43.2434937800222059,9.67722671121172517,-63.202712533524668],"rgb":[0.466666666666666674,0.333333333333333315,0.66666666666666663],"xyz":[0.181108630332769693,0.133213432652418445,0.396486714657357464],"hpluv":[278.705184193400783,187.623095354238075,43.2434937800222059],"hsluv":[278.705184193400783,48.1780536314011272,43.2434937800222059]},"#7755bb":{"lch":[44.2427493107278096,76.8690732738289171,275.624120681329657],"luv":[44.2427493107278096,7.53331271169703509,-76.4990432983646116],"rgb":[0.466666666666666674,0.333333333333333315,0.733333333333333282],"xyz":[0.198246222440106312,0.140068469495353204,0.486744699755999211],"hpluv":[275.624120681329657,220.469676556121556,44.2427493107278096],"hsluv":[275.624120681329657,58.1137757976744496,44.2427493107278096]},"#7755cc":{"lch":[45.3293721892173949,89.4999308488430785,273.541003165926895],"luv":[45.3293721892173949,5.52776894932058127,-89.3290624175056536],"rgb":[0.466666666666666674,0.333333333333333315,0.8],"xyz":[0.217538597883828067,0.147785419672842,0.588351210426269366],"hpluv":[273.541003165926895,250.543028147628775,45.3293721892173949],"hsluv":[273.541003165926895,68.560007412736141,45.3293721892173949]},"#7755dd":{"lch":[46.4976270234735622,101.740884988783861,272.062259876532949],"luv":[46.4976270234735622,3.66119191329505167,-101.674988822595736],"rgb":[0.466666666666666674,0.333333333333333315,0.866666666666666696],"xyz":[0.23905692343446161,0.15639274989309554,0.701681058326275364],"hpluv":[272.062259876532949,277.654072578046794,46.4976270234735622],"hsluv":[272.062259876532949,78.9623412233913911,46.4976270234735622]},"#7755ee":{"lch":[47.7414825998049253,113.569026574645434,270.972372145675877],"luv":[47.7414825998049253,1.92729827623402139,-113.552672000560818],"rgb":[0.466666666666666674,0.333333333333333315,0.933333333333333348],"xyz":[0.26286910370063632,0.165917621999565584,0.827091874394798587],"hpluv":[270.972372145675877,301.858443342198598,47.7414825998049253],"hsluv":[270.972372145675877,89.4067229175139175,47.7414825998049253]},"#7755ff":{"lch":[49.0548071408334749,124.996939079083958,270.144864217432826],"luv":[49.0548071408334749,0.31603661949764611,-124.996539552082652],"rgb":[0.466666666666666674,0.333333333333333315,1],"xyz":[0.289040152110467741,0.17638604136349828,0.964926062686580432],"hpluv":[270.144864217432826,323.338286172745597,49.0548071408334749],"hsluv":[270.144864217432826,99.9999999999992184,49.0548071408334749]},"#eedd00":{"lch":[86.9434330779808562,96.0018853881048528,78.7633058197047831],"luv":[86.9434330779808562,18.7071720605167293,94.1615829920517],"rgb":[0.933333333333333348,0.866666666666666696,0],"xyz":[0.611144275644513346,0.69891115944639659,0.102712103982044597],"hpluv":[78.7633058197047831,323.365375109368927,86.9434330779808562],"hsluv":[78.7633058197047831,100.000000000002331,86.9434330779808562]},"#eedd11":{"lch":[86.9632971622836,95.1251800329902153,78.7103442402005555],"luv":[86.9632971622836,18.6225708681111755,93.2845095960255293],"rgb":[0.933333333333333348,0.866666666666666696,0.0666666666666666657],"xyz":[0.612155941144150506,0.699315825646251499,0.108040208946800234],"hpluv":[78.7103442402005555,320.953864246165836,86.9632971622836],"hsluv":[78.7103442402005555,99.0572185708442134,86.9632971622836]},"#eedd22":{"lch":[87.0000996195567,93.508678235103929,78.6100630695382421],"luv":[87.0000996195567,18.466577094457584,91.6671066178629559],"rgb":[0.933333333333333348,0.866666666666666696,0.133333333333333331],"xyz":[0.614031299282627452,0.700065968901642299,0.117917095142779427],"hpluv":[78.6100630695382421,316.490280961531141,87.0000996195567],"hsluv":[78.6100630695382421,97.3195837272491104,87.0000996195567]},"#eedd33":{"lch":[87.0606371109171704,90.8714304533391157,78.438725785200063],"luv":[87.0606371109171704,18.2120693177914781,89.0277339024194561],"rgb":[0.933333333333333348,0.866666666666666696,0.2],"xyz":[0.617119050015085269,0.701301069194625426,0.134179249000390577],"hpluv":[78.438725785200063,309.159510866930361,87.0606371109171704],"hsluv":[78.438725785200063,94.4866487647953335,87.0606371109171704]},"#eedd44":{"lch":[87.1479139339873399,87.1163282896156375,78.1766823729436737],"luv":[87.1479139339873399,17.8496481580416315,85.2680755927926839],"rgb":[0.933333333333333348,0.866666666666666696,0.266666666666666663],"xyz":[0.621577045259304128,0.703084267292313,0.157658023953277215],"hpluv":[78.1766823729436737,298.614243514229941,87.1479139339873399],"hsluv":[78.1766823729436737,90.4569971269957449,87.1479139339873399]},"#eedd55":{"lch":[87.2644132886328,82.1887294441124823,77.7961103956051119],"luv":[87.2644132886328,17.3739699699556027,80.3313912186301],"rgb":[0.933333333333333348,0.866666666666666696,0.333333333333333315],"xyz":[0.627539459298666058,0.705469232908057742,0.189060071227251103],"hpluv":[77.7961103956051119,284.577035202400168,87.2644132886328],"hsluv":[77.7961103956051119,85.1762064326895114,87.2644132886328]},"#eedd66":{"lch":[87.4122373516825775,76.0722975624531,77.2543738936701],"luv":[87.4122373516825775,16.7832968217641607,74.1978126646801428],"rgb":[0.933333333333333348,0.866666666666666696,0.4],"xyz":[0.635124455072174299,0.70850323121746106,0.229007715634395093],"hpluv":[77.2543738936701,266.820521177772889,87.4122373516825775],"hsluv":[77.2543738936701,78.6319742502837187,87.4122373516825775]},"#eedd77":{"lch":[87.5931821049200323,68.7867162946957,76.4818073814204666],"luv":[87.5931821049200323,16.0791769624109904,66.8810317415814524],"rgb":[0.933333333333333348,0.866666666666666696,0.466666666666666674],"xyz":[0.644438468092376149,0.712228836425541911,0.278061517540793],"hpluv":[76.4818073814204666,245.153905791490757,87.5931821049200323],"hsluv":[76.4818073814204666,70.850552214552053,87.5931821049200323]},"#eedd88":{"lch":[87.8087818591101694,60.3863988515096,75.3563176494847],"luv":[87.8087818591101694,15.266108392374667,58.4248500280990655],"rgb":[0.933333333333333348,0.866666666666666696,0.533333333333333326],"xyz":[0.65557888519432006,0.716685003266319454,0.336734380944365141],"hpluv":[75.3563176494847,219.413652035392374,87.8087818591101694],"hsluv":[75.3563176494847,61.8928475378351,87.8087818591101694]},"#eedd99":{"lch":[88.0603378936253165,50.9615259485641658,73.6438422487017164],"luv":[88.0603378936253165,14.3511385044238935,48.8990996914362483],"rgb":[0.933333333333333348,0.866666666666666696,0.6],"xyz":[0.668635849303392704,0.721907788909948667,0.405501058585483076],"hpluv":[73.6438422487017164,189.463858183723431,88.0603378936253165],"hsluv":[73.6438422487017164,51.8496821371243328,88.0603378936253165]},"#eeddaa":{"lch":[88.3489381850503719,40.6474355343677374,70.8361013393810595],"luv":[88.3489381850503719,13.3433963411670824,38.3948927541556],"rgb":[0.933333333333333348,0.866666666666666696,0.66666666666666663],"xyz":[0.683693542268645316,0.727930866096049733,0.484804908202481677],"hpluv":[70.8361013393810595,155.230940371192503,88.3489381850503719],"hsluv":[70.8361013393810595,42.897511243529749,88.3489381850503719]},"#eeddbb":{"lch":[88.6754719765582422,29.6681200622416164,65.6052069824857256],"luv":[88.6754719765582422,12.2535763784239329,27.0193858917206811],"rgb":[0.933333333333333348,0.866666666666666696,0.733333333333333282],"xyz":[0.700831134375981879,0.734785902938984492,0.575062893301123368],"hpluv":[65.6052069824857256,116.881954111652547,88.6754719765582422],"hsluv":[65.6052069824857256,42.5880034653653823,88.6754719765582422]},"#eeddcc":{"lch":[89.0406413623298,18.5684245799280596,53.3136761054906927],"luv":[89.0406413623298,11.093403559257359,14.8903589228712931],"rgb":[0.933333333333333348,0.866666666666666696,0.8],"xyz":[0.720123509819703633,0.742502853116473349,0.676669403971393524],"hpluv":[53.3136761054906927,75.8171941810365837,89.0406413623298],"hsluv":[53.3136761054906927,42.1389745374101,89.0406413623298]},"#eedddd":{"lch":[89.4449712115231677,10.1024117660870978,12.1770506300652031],"luv":[89.4449712115231677,9.87511215198720294,2.13093488339032255],"rgb":[0.933333333333333348,0.866666666666666696,0.866666666666666696],"xyz":[0.741641835370337232,0.751110183336726855,0.789999251871399522],"hpluv":[12.1770506300652031,42.9711785560074802,89.4449712115231677],"hsluv":[12.1770506300652031,41.5103310668104939,89.4449712115231677]},"#eeddee":{"lch":[89.8888182614484919,14.0763196099440542,307.715012949260654],"luv":[89.8888182614484919,8.61096808409750203,-11.1352594229299271],"rgb":[0.933333333333333348,0.866666666666666696,0.933333333333333348],"xyz":[0.765454015636511942,0.760635055443196872,0.915410067939922745],"hpluv":[307.715012949260654,62.7286135322124423,89.8888182614484919],"hsluv":[307.715012949260654,40.6526002298302203,89.8888182614484919]},"#eeddff":{"lch":[90.3723799019863776,25.8444533047225526,286.436741223308786],"luv":[90.3723799019863776,7.31285770395748802,-24.7882609075678033],"rgb":[0.933333333333333348,0.866666666666666696,1],"xyz":[0.791625064046343363,0.771103474807129596,1.05324425623170459],"hpluv":[286.436741223308786,121.429851146909542,90.3723799019863776],"hsluv":[286.436741223308786,99.9999999999912461,90.3723799019863776]},"#776600":{"lch":[43.3967364031710616,48.7618731822316747,71.5665709091534836],"luv":[43.3967364031710616,15.4186312136361749,46.2599836547520695],"rgb":[0.466666666666666674,0.4,0],"xyz":[0.123587421414484214,0.134249841414458615,0.0194032630055357667],"hpluv":[71.5665709091534836,142.581321953300886,43.3967364031710616],"hsluv":[71.5665709091534836,100.000000000002203,43.3967364031710616]},"#776611":{"lch":[43.4563559440565683,46.5521225716425278,71.0105555334865812],"luv":[43.4563559440565683,15.1477793781447385,44.0186880294754204],"rgb":[0.466666666666666674,0.4,0.0666666666666666657],"xyz":[0.124599086914121332,0.134654507614313468,0.0247313679702914],"hpluv":[71.0105555334865812,135.933189968578517,43.4563559440565683],"hsluv":[71.0105555334865812,95.1446041192036,43.4563559440565683]},"#776622":{"lch":[43.5665595032511135,42.5748985848782695,69.8598868578742582],"luv":[43.5665595032511135,14.6592646006394602,39.9715892964128727],"rgb":[0.466666666666666674,0.4,0.133333333333333331],"xyz":[0.126474445052598361,0.135404650869704296,0.0346082541662705925],"hpluv":[69.8598868578742582,124.005139157578384,43.5665595032511135],"hsluv":[69.8598868578742582,86.4059851293991699,43.5665595032511135]},"#776633":{"lch":[43.7471247164395862,36.3538810550032,67.535659471968259],"luv":[43.7471247164395862,13.8911218179866047,33.5952586297408544],"rgb":[0.466666666666666674,0.4,0.2],"xyz":[0.129562195785056095,0.136639751162687395,0.0508704080238817358],"hpluv":[67.535659471968259,105.448545621014873,43.7471247164395862],"hsluv":[67.535659471968259,72.7162107178341,43.7471247164395862]},"#776644":{"lch":[44.0059094002531381,28.0798421405657628,62.7556004259007807],"luv":[44.0059094002531381,12.8545871201011757,24.9647175952547435],"rgb":[0.466666666666666674,0.4,0.266666666666666663],"xyz":[0.134020191029274982,0.138422949260375,0.0743491829767683743],"hpluv":[62.7556004259007807,80.969785387169,44.0059094002531381],"hsluv":[62.7556004259007807,54.3487361937933,44.0059094002531381]},"#776655":{"lch":[44.348573895236818,18.4503377813959695,51.0995937541716287],"luv":[44.348573895236818,11.5862323365157813,14.3587668165439446],"rgb":[0.466666666666666674,0.4,0.333333333333333315],"xyz":[0.139982605068636967,0.140807914876119822,0.10575123025074229],"hpluv":[51.0995937541716287,52.7914984191523473,44.348573895236818],"hsluv":[51.0995937541716287,32.0544530960382303,44.348573895236818]},"#776666":{"lch":[44.7789425039584543,10.3722772339139464,12.177050630063178],"luv":[44.7789425039584543,10.1389057710203723,2.18785849257654696],"rgb":[0.466666666666666674,0.4,0.4],"xyz":[0.147567600842145152,0.143841913185523113,0.145698874657886251],"hpluv":[12.177050630063178,29.3927086392471182,44.7789425039584543],"hsluv":[12.177050630063178,6.88762268030489189,44.7789425039584543]},"#776677":{"lch":[45.2992151274866899,14.0123007519981453,307.715012949251729],"luv":[45.2992151274866899,8.57180555029232849,-11.0846164558105222],"rgb":[0.466666666666666674,0.4,0.466666666666666674],"xyz":[0.156881613862347058,0.147567518393603936,0.194752676564284161],"hpluv":[307.715012949251729,39.2516664249610088,45.2992151274866899],"hsluv":[307.715012949251729,13.5798811229143528,45.2992151274866899]},"#776688":{"lch":[45.9101336093725934,25.9566305949561666,285.511882327844],"luv":[45.9101336093725934,6.94179491604529719,-25.0111606125461954],"rgb":[0.466666666666666674,0.4,0.533333333333333326],"xyz":[0.168022030964290886,0.152023685234381534,0.253425539967856328],"hpluv":[285.511882327844,71.7429261821633304,45.9101336093725934],"hsluv":[285.511882327844,20.4210179876919788,45.9101336093725934]},"#776699":{"lch":[46.6111419677041781,39.5636276789354753,277.694853057332239],"luv":[46.6111419677041781,5.29745753469698322,-39.2073663842078446],"rgb":[0.466666666666666674,0.4,0.6],"xyz":[0.181078995073363613,0.157246470878010691,0.322192217608974207],"hpluv":[277.694853057332239,107.707436484347127,46.6111419677041781],"hsluv":[277.694853057332239,30.3115853005661187,46.6111419677041781]},"#7766aa":{"lch":[47.4005539940279945,53.5010996637438936,273.94010537559177],"luv":[47.4005539940279945,3.67625443841083355,-53.3746458398921959],"rgb":[0.466666666666666674,0.4,0.66666666666666663],"xyz":[0.196136688038616142,0.163269548064111786,0.401496067225972808],"hpluv":[273.94010537559177,143.224929654224553,47.4005539940279945],"hsluv":[273.94010537559177,41.7476492103462178,47.4005539940279945]},"#7766bb":{"lch":[48.2757296522395052,67.3356727079262356,271.790784098674919],"luv":[48.2757296522395052,2.10423911354751,-67.3027859511178],"rgb":[0.466666666666666674,0.4,0.733333333333333282],"xyz":[0.213274280145952788,0.170124584907046544,0.491754052324614555],"hpluv":[271.790784098674919,176.992833999799871,48.2757296522395052],"hsluv":[271.790784098674919,53.26174830093764,48.2757296522395052]},"#7766cc":{"lch":[49.2332558923506838,80.8618894300095263,270.423298283194697],"luv":[49.2332558923506838,0.597398061184884921,-80.8596826468393886],"rgb":[0.466666666666666674,0.4,0.8],"xyz":[0.232566655589674542,0.177841535084535346,0.59336056299488471],"hpluv":[270.423298283194697,208.412927467485218,49.2332558923506838],"hsluv":[270.423298283194697,64.812294986267446,49.2332558923506838]},"#7766dd":{"lch":[50.2691251722936698,93.9789905273776327,269.490145829531343],"luv":[50.2691251722936698,-0.836273601566472236,-93.9752696564806769],"rgb":[0.466666666666666674,0.4,0.866666666666666696],"xyz":[0.254084981140308086,0.18644886530478888,0.706690410894890708],"hpluv":[269.490145829531343,237.229544488008315,50.2691251722936698],"hsluv":[269.490145829531343,76.411365903071939,50.2691251722936698]},"#7766ee":{"lch":[51.378904811117593,106.647241299318011,268.82087794331261],"luv":[51.378904811117593,-2.19459861633770803,-106.624658562961542],"rgb":[0.466666666666666674,0.4,0.933333333333333348],"xyz":[0.277897161406482796,0.195973737411258925,0.832101226963413931],"hpluv":[268.82087794331261,263.392927722023558,51.378904811117593],"hsluv":[268.82087794331261,88.1124589032604177,51.378904811117593]},"#7766ff":{"lch":[52.5578914047646748,118.864223743766644,268.322642340607558],"luv":[52.5578914047646748,-3.47930230784918848,-118.81329109850806],"rgb":[0.466666666666666674,0.4,1],"xyz":[0.304068209816314217,0.206442156775191621,0.969935415255195776],"hpluv":[268.322642340607558,286.980608281330717,52.5578914047646748],"hsluv":[268.322642340607558,99.9999999999990621,52.5578914047646748]},"#eeee00":{"lch":[91.3819857871042416,100.73955854358779,85.8743202181747591],"luv":[91.3819857871042416,7.24765584469138,100.478505862268193],"rgb":[0.933333333333333348,0.933333333333333348,0],"xyz":[0.658323051985028163,0.793268712127427555,0.118438362762215782],"hpluv":[85.8743202181747591,533.074105620447313,91.3819857871042416],"hsluv":[85.8743202181747591,100.000000000002302,91.3819857871042416]},"#eeee11":{"lch":[91.4002420948697,99.9206079899190485,85.8743202181747449],"luv":[91.4002420948697,7.18873686735402107,99.6616775060856526],"rgb":[0.933333333333333348,0.933333333333333348,0.0666666666666666657],"xyz":[0.659334717484665322,0.793673378327282464,0.123766467726971419],"hpluv":[85.8743202181747449,529.940172906192515,91.4002420948697],"hsluv":[85.8743202181747449,99.1672499526241182,91.4002420948697]},"#eeee22":{"lch":[91.4340680155716,98.4094794247264559,85.8743202181747],"luv":[91.4340680155716,7.08001949817026599,98.1544648222952105],"rgb":[0.933333333333333348,0.933333333333333348,0.133333333333333331],"xyz":[0.661210075623142268,0.794423521582673264,0.133643353922950597],"hpluv":[85.8743202181747,524.128135432551403,91.4340680155716],"hsluv":[85.8743202181747,97.631382664670781,91.4340680155716]},"#eeee33":{"lch":[91.4897155548310224,95.9410009888260475,85.874320218174617],"luv":[91.4897155548310224,6.90242608380469225,95.6923831080380864],"rgb":[0.933333333333333348,0.933333333333333348,0.2],"xyz":[0.664297826355600085,0.795658621875656391,0.149905507780561748],"hpluv":[85.874320218174617,514.550466890897383,91.4897155548310224],"hsluv":[85.874320218174617,95.1245282264191,91.4897155548310224]},"#eeee44":{"lch":[91.569956182858661,92.4193611961338917,85.8743202181745],"luv":[91.569956182858661,6.64906351605686385,92.1798691594911],"rgb":[0.933333333333333348,0.933333333333333348,0.266666666666666663],"xyz":[0.668755821599819,0.797441819973344,0.173384282733448386],"hpluv":[85.8743202181745,500.701064757674544,91.569956182858661],"hsluv":[85.8743202181745,91.5525623856835438,91.569956182858661]},"#eeee55":{"lch":[91.6770884747666912,87.7855710128071536,85.8743202181743612],"luv":[91.6770884747666912,6.31568785915728625,87.5580868047623682],"rgb":[0.933333333333333348,0.933333333333333348,0.333333333333333315],"xyz":[0.674718235639180874,0.799826785589088707,0.204786330007422301],"hpluv":[85.8743202181743612,482.129233036801622,91.6770884747666912],"hsluv":[85.8743202181743612,86.8606098102410584,91.6770884747666912]},"#eeee66":{"lch":[91.8130678710263197,82.0131153940214261,85.8743202181741481],"luv":[91.8130678710263197,5.90039150181238092,81.8005897091115912],"rgb":[0.933333333333333348,0.933333333333333348,0.4],"xyz":[0.682303231412689115,0.802860783898492,0.244733974414566263],"hpluv":[85.8743202181741481,458.402522986492727,91.8130678710263197],"hsluv":[85.8743202181741481,81.0287908474737435,91.8130678710263197]},"#eeee77":{"lch":[91.9795762822891163,75.1051560234190703,85.8743202181738923],"luv":[91.9795762822891163,5.40340190972927914,74.9105313631138],"rgb":[0.933333333333333348,0.933333333333333348,0.466666666666666674],"xyz":[0.691617244432891,0.806586389106572876,0.2937877763209642],"hpluv":[85.8743202181738923,429.072804464814112,91.9795762822891163],"hsluv":[85.8743202181738923,74.0694118243717838,91.9795762822891163]},"#eeee88":{"lch":[92.1780636375363542,67.0918310376028444,85.8743202181734233],"luv":[92.1780636375363542,4.82688735568056,66.9179718045445497],"rgb":[0.933333333333333348,0.933333333333333348,0.533333333333333326],"xyz":[0.702757661534834877,0.811042555947350419,0.35246063972453634],"hpluv":[85.8743202181734233,393.637417052406249,92.1780636375363542],"hsluv":[85.8743202181734233,66.0241185279663085,92.1780636375363542]},"#eeee99":{"lch":[92.4097746137617264,58.0271343519240759,85.8743202181728549],"luv":[92.4097746137617264,4.17473240419888647,57.8767650309654],"rgb":[0.933333333333333348,0.933333333333333348,0.6],"xyz":[0.715814625643907521,0.816265341590979632,0.421227317365654219],"hpluv":[85.8743202181728549,351.489405737917593,92.4097746137617264],"hsluv":[85.8743202181728549,56.9604957584853295,92.4097746137617264]},"#eeeeaa":{"lch":[92.6757669457712,47.9852530272659195,85.8743202181718885],"luv":[92.6757669457712,3.45227440531043239,47.8609058577161903],"rgb":[0.933333333333333348,0.933333333333333348,0.66666666666666663],"xyz":[0.730872318609160132,0.822288418777080699,0.500531166982652875],"hpluv":[85.8743202181718885,301.850049763156903,92.6757669457712],"hsluv":[85.8743202181718885,46.9680087594427178,92.6757669457712]},"#eeeebb":{"lch":[92.9769247593952741,37.0564456712956627,85.8743202181703253],"luv":[92.9769247593952741,2.66600696822725,36.9604189997225347],"rgb":[0.933333333333333348,0.933333333333333348,0.733333333333333282],"xyz":[0.748009910716496695,0.829143455620015457,0.590789152081294566],"hpluv":[85.8743202181703253,243.673832720465015,92.9769247593952741],"hsluv":[85.8743202181703253,36.1533987495139,92.9769247593952741]},"#eeeecc":{"lch":[93.3139689281547788,25.3426537884513579,85.8743202181670711],"luv":[93.3139689281547788,1.82326422217474082,25.2769817940640493],"rgb":[0.933333333333333348,0.933333333333333348,0.8],"xyz":[0.76730228616021845,0.836860405797504314,0.692395662751564722],"hpluv":[85.8743202181670711,175.509740066336235,93.3139689281547788],"hsluv":[85.8743202181670711,24.635760697738192,93.3139689281547788]},"#eeeedd":{"lch":[93.6874656794852143,12.9530841337210045,85.8743202181571377],"luv":[93.6874656794852143,0.931902991100789779,12.919518001474831],"rgb":[0.933333333333333348,0.933333333333333348,0.866666666666666696],"xyz":[0.788820611710852,0.84546773601775782,0.80572551065157072],"hpluv":[85.8743202181571377,95.2907564198152812,93.6874656794852143],"hsluv":[85.8743202181571377,12.5415797244653469,93.6874656794852143]},"#eeeeee":{"lch":[94.0978342288501466,4.90671076366048496e-12,0],"luv":[94.0978342288501466,4.6515081442594671e-12,1.56182025281704723e-12],"rgb":[0.933333333333333348,0.933333333333333348,0.933333333333333348],"xyz":[0.812632791977026758,0.854992608124227838,0.931136326720093943],"hpluv":[0,3.87295813278393312e-11,94.0978342288501466],"hsluv":[0,3.8714510065860851e-11,94.0978342288501466]},"#eeeeff":{"lch":[94.5453539438838391,13.4050739145486393,265.874320218197],"luv":[94.5453539438838391,-0.964421163933715353,-13.3703365130825738],"rgb":[0.933333333333333348,0.933333333333333348,1],"xyz":[0.838803840386858179,0.865461027488160561,1.06897051501187579],"hpluv":[265.874320218197,114.885858328026472,94.5453539438838391],"hsluv":[265.874320218197,99.999999999981938,94.5453539438838391]},"#777700":{"lch":[48.4055282063088868,53.3622847060179737,85.8743202181747],"luv":[48.4055282063088868,3.83912219020021839,53.2240036999738706],"rgb":[0.466666666666666674,0.466666666666666674,0],"xyz":[0.142041159467901856,0.171157317521294372,0.0255545090233414707],"hpluv":[85.8743202181747,139.887458074797621,48.4055282063088868],"hsluv":[85.8743202181747,100.000000000002331,48.4055282063088868]},"#777711":{"lch":[48.4562461221814829,51.3697569370731628,85.874320218174617],"luv":[48.4562461221814829,3.69577080233359201,51.2366392921178502],"rgb":[0.466666666666666674,0.466666666666666674,0.0666666666666666657],"xyz":[0.143052824967539,0.171561983721149225,0.0308826139880971],"hpluv":[85.874320218174617,134.523163178361983,48.4562461221814829],"hsluv":[85.874320218174617,96.1652781669932324,48.4562461221814829]},"#777722":{"lch":[48.5500530694338579,47.7524066126053768,85.8743202181744323],"luv":[48.5500530694338579,3.43552238949120969,47.6286628324468282],"rgb":[0.466666666666666674,0.466666666666666674,0.133333333333333331],"xyz":[0.144928183106016,0.172312126976540053,0.0407595001840763],"hpluv":[85.8743202181744323,124.808706278838557,48.5500530694338579],"hsluv":[85.8743202181744323,89.2207979160694293,48.5500530694338579]},"#777733":{"lch":[48.7039135074563063,42.0024110114446501,85.874320218174],"luv":[48.7039135074563063,3.02184190658892726,41.8935675523809934],"rgb":[0.466666666666666674,0.466666666666666674,0.2],"xyz":[0.148015933838473723,0.173547227269523152,0.0570216540416874432],"hpluv":[85.874320218174,109.433348296247431,48.7039135074563063],"hsluv":[85.874320218174,78.2295638238963704,48.7039135074563063]},"#777744":{"lch":[48.9247697387985312,34.1210359912247227,85.8743202181732528],"luv":[48.9247697387985312,2.45482042510454956,34.0326160292585],"rgb":[0.466666666666666674,0.466666666666666674,0.266666666666666663],"xyz":[0.152473929082692611,0.175330425367210746,0.0805004289945740747],"hpluv":[85.8743202181732528,88.497855114462908,48.9247697387985312],"hsluv":[85.8743202181732528,63.2636094274766378,48.9247697387985312]},"#777755":{"lch":[49.2178287935421537,24.2815247917763841,85.8743202181716327],"luv":[49.2178287935421537,1.74692184102758041,24.2186025669317253],"rgb":[0.466666666666666674,0.466666666666666674,0.333333333333333315],"xyz":[0.158436343122054624,0.177715390982955579,0.11190247626854799],"hpluv":[85.8743202181716327,62.6026663147617,49.2178287935421537],"hsluv":[85.8743202181716327,44.7521651878825324,49.2178287935421537]},"#777766":{"lch":[49.5868745078829676,12.7836483150604128,85.8743202181664742],"luv":[49.5868745078829676,0.919713018071489197,12.750521252385596],"rgb":[0.466666666666666674,0.466666666666666674,0.4],"xyz":[0.166021338895562781,0.18074938929235887,0.151850120675691952],"hpluv":[85.8743202181664742,32.7135296885410085,49.5868745078829676],"hsluv":[85.8743202181664742,23.385605928338574,49.5868745078829676]},"#777777":{"lch":[50.0344387925380687,2.67192546523751356e-12,0],"luv":[50.0344387925380687,2.52749706171116152e-12,8.66570421158112546e-13],"rgb":[0.466666666666666674,0.466666666666666674,0.466666666666666674],"xyz":[0.175335351915764714,0.184474994500439693,0.200903922582089861],"hpluv":[0,6.77633132918180515e-12,50.0344387925380687],"hsluv":[0,1.94020402484744743e-12,50.0344387925380687]},"#777788":{"lch":[50.5619220099523545,13.6772258441596737,265.874320218187563],"luv":[50.5619220099523545,-0.984000994856362388,-13.6417831984777926],"rgb":[0.466666666666666674,0.466666666666666674,0.533333333333333326],"xyz":[0.186475769017708515,0.188931161341217291,0.259576785985662029],"hpluv":[265.874320218187563,34.3252548472133,50.5619220099523545],"hsluv":[265.874320218187563,11.1797639211738336,50.5619220099523545]},"#777799":{"lch":[51.1696982290560669,27.8798810968622455,265.87432021818239],"luv":[51.1696982290560669,-2.00580373888746255,-27.8076342276045096],"rgb":[0.466666666666666674,0.466666666666666674,0.6],"xyz":[0.199532733126781242,0.194153946984846448,0.328343463626779908],"hpluv":[265.87432021818239,69.1380916549642563,51.1696982290560669],"hsluv":[265.87432021818239,22.9846011782403536,51.1696982290560669]},"#7777aa":{"lch":[51.8572203345112,42.2927406525888614,265.874320218180628],"luv":[51.8572203345112,-3.04272952363285398,-42.1831448442758443],"rgb":[0.466666666666666674,0.466666666666666674,0.66666666666666663],"xyz":[0.21459042609203377,0.200177024170947543,0.407647313243778564],"hpluv":[265.874320218180628,103.489412577951782,51.8572203345112],"hsluv":[265.874320218180628,35.2207148819814435,51.8572203345112]},"#7777bb":{"lch":[52.6231302285762439,56.6671214785474,265.874320218179832],"luv":[52.6231302285762439,-4.07688697591046,-56.5202764435038816],"rgb":[0.466666666666666674,0.466666666666666674,0.733333333333333282],"xyz":[0.231728018199370445,0.207032061013882301,0.497905298342420255],"hpluv":[265.874320218179832,136.645017565491173,52.6231302285762439],"hsluv":[265.874320218179832,47.751077300634,52.6231302285762439]},"#7777cc":{"lch":[53.4653742998309696,70.8221320427834513,265.874320218179378],"luv":[53.4653742998309696,-5.09526194727884452,-70.6386062488075],"rgb":[0.466666666666666674,0.466666666666666674,0.8],"xyz":[0.251020393643092143,0.214749011191371103,0.599511809012690411],"hpluv":[265.874320218179378,168.087613695837888,53.4653742998309696],"hsluv":[265.874320218179378,60.4968982098403671,53.4653742998309696]},"#7777dd":{"lch":[54.3813217092404102,84.6378263199215581,265.874320218179037],"luv":[54.3813217092404102,-6.08922498249284594,-84.4184990584042083],"rgb":[0.466666666666666674,0.466666666666666674,0.866666666666666696],"xyz":[0.272538719193725743,0.223356341411624637,0.712841656912696409],"hpluv":[265.874320218179037,197.494074150637061,54.3813217092404102],"hsluv":[265.874320218179037,73.4330970128385445,54.3813217092404102]},"#7777ee":{"lch":[55.3678819060931,98.0443353361264656,265.874320218178809],"luv":[55.3678819060931,-7.05374939408338086,-97.7902669542745713],"rgb":[0.466666666666666674,0.466666666666666674,0.933333333333333348],"xyz":[0.296350899459900452,0.232881213518094682,0.838252472981219632],"hpluv":[265.874320218178809,224.700440227144242,55.3678819060931],"hsluv":[265.874320218178809,86.5809092876847,55.3678819060931]},"#7777ff":{"lch":[56.4216176153771158,111.010032393554411,265.874320218178696],"luv":[56.4216176153771158,-7.98655981550332,-110.722365194803288],"rgb":[0.466666666666666674,0.466666666666666674,1],"xyz":[0.322521947869731873,0.243349632882027378,0.976086661273001477],"hpluv":[265.874320218178696,249.664056525023511,56.4216176153771158],"hsluv":[265.874320218178696,99.99999999999892,56.4216176153771158]},"#eeff00":{"lch":[95.8710857598618702,106.837421111995667,91.929871543819857],"luv":[95.8710857598618702,-3.59788306357601462,106.776822332015158],"rgb":[0.933333333333333348,1,0],"xyz":[0.710175424414702,0.896973456986776663,0.135722486905439893],"hpluv":[91.929871543819857,1221.941869030823,95.8710857598618702],"hsluv":[91.929871543819857,100.000000000002217,95.8710857598618702]},"#eeff11":{"lch":[95.8879066370154192,106.077593073364397,91.9648080695471748],"luv":[95.8879066370154192,-3.63693915095535747,106.015227330089402],"rgb":[0.933333333333333348,1,0.0666666666666666657],"xyz":[0.71118708991433921,0.897378123186631571,0.14105059187019553],"hpluv":[91.9648080695471748,1218.36968740939687,95.8879066370154192],"hsluv":[91.9648080695471748,99.9999999999846096,95.8879066370154192]},"#eeff22":{"lch":[95.9190746883988083,104.674935415410417,92.0306447189025221],"luv":[95.9190746883988083,-3.7090534526558554,104.609201443781629],"rgb":[0.933333333333333348,1,0.133333333333333331],"xyz":[0.713062448052816156,0.898128266442022372,0.150927478066174708],"hpluv":[92.0306447189025221,1211.72771901411761,95.9190746883988083],"hsluv":[92.0306447189025221,99.9999999999843254,95.9190746883988083]},"#eeff33":{"lch":[95.9703546560603,102.38192729680722,92.1421884898051076],"luv":[95.9703546560603,-3.826988551916231,102.31037677397255],"rgb":[0.933333333333333348,1,0.2],"xyz":[0.716150198785274,0.899363366735005498,0.167189631923785859],"hpluv":[92.1421884898051076,1200.73225066318059,95.9703546560603],"hsluv":[92.1421884898051076,99.9999999999843,95.9703546560603]},"#eeff44":{"lch":[96.0443082677326316,99.1069805797193482,92.3105231291127666],"luv":[96.0443082677326316,-3.99552836231266495,99.0264073504377],"rgb":[0.933333333333333348,1,0.266666666666666663],"xyz":[0.720608194029492832,0.901146564832693064,0.190668406876672497],"hpluv":[92.3105231291127666,1184.71704479359755,96.0443082677326316],"hsluv":[92.3105231291127666,99.999999999984,96.0443082677326316]},"#eeff55":{"lch":[96.1430663154878,94.7914212488158086,92.5502587525383831],"luv":[96.1430663154878,-4.21781218752730513,94.6975374691506744],"rgb":[0.933333333333333348,1,0.333333333333333315],"xyz":[0.726570608068854762,0.903531530448437814,0.222070454150646412],"hpluv":[92.5502587525383831,1163.01160371768833,96.1430663154878],"hsluv":[92.5502587525383831,99.9999999999832312,96.1430663154878]},"#eeff66":{"lch":[96.2684490440968261,89.4056432425818315,92.8821944044194083],"luv":[96.2684490440968261,-4.49554545672610839,89.2925479234763912],"rgb":[0.933333333333333348,1,0.4],"xyz":[0.734155603842363,0.906565528757841133,0.262018098557790347],"hpluv":[92.8821944044194083,1134.86447310352946,96.2684490440968261],"hsluv":[92.8821944044194083,99.9999999999826912,96.2684490440968261]},"#eeff77":{"lch":[96.4220309754045104,82.947030730659,93.3376121292550494],"luv":[96.4220309754045104,-4.82912482473711879,82.8063370791148827],"rgb":[0.933333333333333348,1,0.466666666666666674],"xyz":[0.743469616862564853,0.910291133965922,0.311071900464188311],"hpluv":[93.3376121292550494,1099.34916045901696,96.4220309754045104],"hsluv":[93.3376121292550494,99.9999999999824354,96.4220309754045104]},"#eeff88":{"lch":[96.6051797330544559,75.4384320618763553,93.966065888554354],"luv":[96.6051797330544559,-5.21774760700183382,75.2577713054536446],"rgb":[0.933333333333333348,1,0.533333333333333326],"xyz":[0.754610033964508764,0.914747300806699526,0.369744763867760451],"hpluv":[93.966065888554354,1055.22684316018899,96.6051797330544559],"hsluv":[93.966065888554354,99.9999999999810711,96.6051797330544559]},"#eeff99":{"lch":[96.8190810543072,66.9270103141668926,94.8508818247366],"luv":[96.8190810543072,-5.65953211211599072,66.6872881879637589],"rgb":[0.933333333333333348,1,0.6],"xyz":[0.767666998073581408,0.919970086450328739,0.43851144150887833],"hpluv":[94.8508818247366,1000.72847038880911,96.8190810543072],"hsluv":[94.8508818247366,99.9999999999804,96.8190810543072]},"#eeffaa":{"lch":[97.0647558759300182,57.4841926777339438,96.1432585072641785],"luv":[97.0647558759300182,-6.15165762861061438,57.1540857352402938],"rgb":[0.933333333333333348,1,0.66666666666666663],"xyz":[0.782724691038834,0.925993163636429806,0.517815291125877],"hpluv":[96.1432585072641785,933.191048721381,97.0647558759300182],"hsluv":[96.1432585072641785,99.9999999999786127,97.0647558759300182]},"#eeffbb":{"lch":[97.3430726615411857,47.2094061136043166,98.1473956779809242],"luv":[97.3430726615411857,-6.69052372550339935,46.7329104366258861],"rgb":[0.933333333333333348,1,0.733333333333333282],"xyz":[0.799862283146170583,0.932848200479364564,0.608073276224518677],"hpluv":[98.1473956779809242,848.432918810296883,97.3430726615411857],"hsluv":[98.1473956779809242,99.9999999999760689,97.3430726615411857]},"#eeffcc":{"lch":[97.6547568121604,36.2474903433398126,101.573139749476653],"luv":[97.6547568121604,-7.27192346215819718,35.5105573787715443],"rgb":[0.933333333333333348,1,0.8],"xyz":[0.819154658589892337,0.940565150656853421,0.709679786894788833],"hpluv":[101.573139749476653,739.717147432346792,97.6547568121604],"hsluv":[101.573139749476653,99.999999999972971,97.6547568121604]},"#eeffdd":{"lch":[98.0003982932414743,24.8675243497069864,108.50155795297276],"luv":[98.0003982932414743,-7.89122250686935445,23.5822470225029335],"rgb":[0.933333333333333348,1,0.866666666666666696],"xyz":[0.840672984140525936,0.949172480877106928,0.823009634794794831],"hpluv":[108.50155795297276,596.728870831386416,98.0003982932414743],"hsluv":[108.50155795297276,99.9999999999688072,98.0003982932414743]},"#eeffee":{"lch":[98.3804582036479,13.96608756186059,127.715012949221688],"luv":[98.3804582036479,-8.54353535492541205,11.0480588984987129],"rgb":[0.933333333333333348,1,0.933333333333333348],"xyz":[0.864485164406700646,0.958697352983577,0.948420450863318],"hpluv":[127.715012949221688,414.943064796341446,98.3804582036479],"hsluv":[127.715012949221688,99.9999999999608491,98.3804582036479]},"#eeffff":{"lch":[98.7952747621608438,9.43620053547767768,192.177050630058204],"luv":[98.7952747621608438,-9.22389036737693679,-1.99040876112424892],"rgb":[0.933333333333333348,1,1],"xyz":[0.890656212816532067,0.969165772347509669,1.0862546391551],"hpluv":[192.177050630058204,378.040319927501173,98.7952747621608438],"hsluv":[192.177050630058204,99.999999999948713,98.7952747621608438]},"#778800":{"lch":[53.5249548615687303,60.5938372915660253,96.5029793655947259],"luv":[53.5249548615687303,-6.86254771619202231,60.2039745910497572],"rgb":[0.466666666666666674,0.533333333333333326,0],"xyz":[0.164113529192872309,0.215302056971235917,0.0329119655983314136],"hpluv":[96.5029793655947259,143.651932639250902,53.5249548615687303],"hsluv":[96.5029793655947259,100.000000000002373,53.5249548615687303]},"#778811":{"lch":[53.5684856288310272,58.8481082257442409,96.7583563096261088],"luv":[53.5684856288310272,-6.9253766303469888,58.4391906196240143],"rgb":[0.466666666666666674,0.533333333333333326,0.0666666666666666657],"xyz":[0.165125194692509442,0.21570672317109077,0.0382400705630870433],"hpluv":[96.7583563096261088,139.399900460742,53.5684856288310272],"hsluv":[96.7583563096261088,96.9357421545617,53.5684856288310272]},"#778822":{"lch":[53.6490362820541407,55.6690512282284615,97.2652817371477],"luv":[53.6490362820541407,-7.04010577997538,55.2220986133077147],"rgb":[0.466666666666666674,0.533333333333333326,0.133333333333333331],"xyz":[0.167000552830986443,0.216456866426481598,0.0481169567590662428],"hpluv":[97.2652817371477,131.671329649176641,53.6490362820541407],"hsluv":[97.2652817371477,91.3605066517003337,53.6490362820541407]},"#778833":{"lch":[53.7812573057213,50.5917713326567053,98.2096275165039856],"luv":[53.7812573057213,-7.22426441450666346,50.0733195448945381],"rgb":[0.466666666666666674,0.533333333333333326,0.2],"xyz":[0.170088303563444176,0.217691966719464697,0.064379110616677393],"hpluv":[98.2096275165039856,119.368094402160139,53.7812573057213],"hsluv":[98.2096275165039856,82.4672262716137539,53.7812573057213]},"#778844":{"lch":[53.9712743947247162,43.5928841845235198,99.8805739619221811],"luv":[53.9712743947247162,-7.48032491712259429,42.9462954241638357],"rgb":[0.466666666666666674,0.533333333333333326,0.266666666666666663],"xyz":[0.174546298807663064,0.219475164817152291,0.0878578855695640315],"hpluv":[99.8805739619221811,102.492540276722124,53.9712743947247162],"hsluv":[99.8805739619221811,70.2195807792145672,53.9712743947247162]},"#778855":{"lch":[54.2238135722873,34.8221097745323078,102.954066597198249],"luv":[54.2238135722873,-7.80606678579386326,33.9358903004666175],"rgb":[0.466666666666666674,0.533333333333333326,0.333333333333333315],"xyz":[0.180508712847025077,0.221860130432897124,0.119259932843537933],"hpluv":[102.954066597198249,81.4900057495692636,54.2238135722873],"hsluv":[102.954066597198249,54.8454134878709638,54.2238135722873]},"#778866":{"lch":[54.542475349788262,24.6519214642532667,109.417534351990682],"luv":[54.542475349788262,-8.19552569001744224,23.2497438812554442],"rgb":[0.466666666666666674,0.533333333333333326,0.4],"xyz":[0.188093708620533234,0.224894128742300414,0.159207577250681909],"hpluv":[109.417534351990682,57.3528835536874197,54.542475349788262],"hsluv":[109.417534351990682,36.7830408334215164,54.542475349788262]},"#778877":{"lch":[54.9298804020046703,14.1239929232838151,127.715012949231166],"luv":[54.9298804020046703,-8.6401314869560828,11.1729720300858784],"rgb":[0.466666666666666674,0.533333333333333326,0.466666666666666674],"xyz":[0.197407721640735168,0.228619733950381238,0.208261379157079818],"hpluv":[127.715012949231166,32.6278280107521041,54.9298804020046703],"hsluv":[127.715012949231166,16.6133799052879709,54.9298804020046703]},"#778888":{"lch":[55.3877640712208574,9.3400800844087577,192.177050630059369],"luv":[55.3877640712208574,-9.12993258220805437,-1.97013375878514596],"rgb":[0.466666666666666674,0.533333333333333326,0.533333333333333326],"xyz":[0.208548138742678968,0.233075900791158835,0.266934242560651958],"hpluv":[192.177050630059369,21.3981433643613,55.3877640712208574],"hsluv":[192.177050630059369,21.3143847536295468,55.3877640712208574]},"#778899":{"lch":[55.9170512374386703,18.5603965019494623,238.655736169794807],"luv":[55.9170512374386703,-9.65472976501325597,-15.851640655596027],"rgb":[0.466666666666666674,0.533333333333333326,0.6],"xyz":[0.221605102851751695,0.238298686434788,0.335700920201769892],"hpluv":[238.655736169794807,42.1194135101242679,55.9170512374386703],"hsluv":[238.655736169794807,26.1912729818073053,55.9170512374386703]},"#7788aa":{"lch":[56.5179258756863732,31.8473117719276075,251.310804784322386],"luv":[56.5179258756863732,-10.2049729927717898,-30.1680260095876527],"rgb":[0.466666666666666674,0.533333333333333326,0.66666666666666663],"xyz":[0.236662795817004223,0.244321763620889087,0.415004769818768493],"hpluv":[251.310804784322386,71.5032678590983721,56.5179258756863732],"hsluv":[251.310804784322386,31.1149405392867244,56.5179258756863732]},"#7788bb":{"lch":[57.1899017055338845,45.9393215269311881,256.438388794294667],"luv":[57.1899017055338845,-10.7723499078102041,-44.6584565319768387],"rgb":[0.466666666666666674,0.533333333333333326,0.733333333333333282],"xyz":[0.253800387924340898,0.251176800463823846,0.505262754917410239],"hpluv":[256.438388794294667,101.930593576715296,57.1899017055338845],"hsluv":[256.438388794294667,41.4357647235180622,57.1899017055338845]},"#7788cc":{"lch":[57.9318961804226547,60.1932243037694406,259.131204763586595],"luv":[57.9318961804226547,-11.3500713849249486,-59.1134513595764233],"rgb":[0.466666666666666674,0.533333333333333326,0.8],"xyz":[0.273092763368062652,0.258893750641312648,0.606869265587680395],"hpluv":[259.131204763586595,131.8466774878151,57.9318961804226547],"hsluv":[259.131204763586595,55.5026255722761661,57.9318961804226547]},"#7788dd":{"lch":[58.7423077351926679,74.3397271130694861,260.762999043897821],"luv":[58.7423077351926679,-11.9329115646152975,-73.3757497327060264],"rgb":[0.466666666666666674,0.533333333333333326,0.866666666666666696],"xyz":[0.29461108891869614,0.267501080861566209,0.720199113487686393],"hpluv":[260.762999043897821,160.586593274196787,58.7423077351926679],"hsluv":[260.762999043897821,69.9489143241080598,58.7423077351926679]},"#7788ee":{"lch":[59.6190949291064101,88.2283098571320465,261.84384456781811],"luv":[59.6190949291064101,-12.5170812067924775,-87.3358880318318285],"rgb":[0.466666666666666674,0.533333333333333326,0.933333333333333348],"xyz":[0.318423269184870905,0.277025952968036226,0.845609929556209616],"hpluv":[261.84384456781811,187.785436290663455,59.6190949291064101],"hsluv":[261.84384456781811,84.7689484415743237,59.6190949291064101]},"#7788ff":{"lch":[60.55985551741054,101.77153783075579,262.604380260147],"luv":[60.55985551741054,-13.1000102630052879,-100.924901008354297],"rgb":[0.466666666666666674,0.533333333333333326,1],"xyz":[0.344594317594702271,0.28749437233196895,0.983444117847991461],"hpluv":[262.604380260147,213.245970352856943,60.55985551741054],"hsluv":[262.604380260147,99.9999999999987921,60.55985551741054]},"#779900":{"lch":[58.6994568897504223,69.1976359459353603,103.993850276975294],"luv":[58.6994568897504223,-16.7332165977800322,67.1439668384135899],"rgb":[0.466666666666666674,0.6,0],"xyz":[0.189983129645339782,0.267041257876171612,0.0415351657491536685],"hpluv":[103.993850276975294,149.587912305351722,58.6994568897504223],"hsluv":[103.993850276975294,100.000000000002444,58.6994568897504223]},"#779911":{"lch":[58.7371702745588493,67.6759907780605232,104.326162498332039],"luv":[58.7371702745588493,-16.7458460058928829,65.5714600214076],"rgb":[0.466666666666666674,0.6,0.0666666666666666657],"xyz":[0.190994795144976914,0.267445924076026464,0.0468632707139093],"hpluv":[104.326162498332039,146.20456366036808,58.7371702745588493],"hsluv":[104.326162498332039,97.5197891999702,58.7371702745588493]},"#779922":{"lch":[58.8069803361006223,64.8997387816913,104.97431376012679],"luv":[58.8069803361006223,-16.7691829588827659,62.6958578920751464],"rgb":[0.466666666666666674,0.6,0.133333333333333331],"xyz":[0.192870153283453916,0.268196067331417265,0.0567401569098885],"hpluv":[104.97431376012679,140.04041716275114,58.8069803361006223],"hsluv":[104.97431376012679,92.9911396041894704,58.8069803361006223]},"#779933":{"lch":[58.9216385591388132,60.4528100001228097,106.14237332279157],"luv":[58.9216385591388132,-16.8074000849803582,58.0693855598141369],"rgb":[0.466666666666666674,0.6,0.2],"xyz":[0.195957904015911677,0.269431167624400392,0.0730023107674996341],"hpluv":[106.14237332279157,130.191012221085145,58.9216385591388132],"hsluv":[106.14237332279157,85.724115661044948,58.9216385591388132]},"#779944":{"lch":[59.0865618982540752,54.3006768161790845,108.091337704968765],"luv":[59.0865618982540752,-16.8621369683366211,51.6161974534756354],"rgb":[0.466666666666666674,0.6,0.266666666666666663],"xyz":[0.200415899260130537,0.271214365722087958,0.0964810857203862726],"hpluv":[108.091337704968765,116.615384645059635,59.0865618982540752],"hsluv":[108.091337704968765,75.6282332091309399,59.0865618982540752]},"#779955":{"lch":[59.3060149965037056,46.5647823410072945,111.326222899357617],"luv":[59.3060149965037056,-16.9345685221747893,43.3762532203180413],"rgb":[0.466666666666666674,0.6,0.333333333333333315],"xyz":[0.206378313299492522,0.273599331337832818,0.127883132994360188],"hpluv":[111.326222899357617,99.6318422422000367,59.3060149965037056],"hsluv":[111.326222899357617,62.8087826319283806,59.3060149965037056]},"#779966":{"lch":[59.5833535636433282,37.5662597340720836,116.949978591108717],"luv":[59.5833535636433282,-17.0254963867212936,33.4866591823296957],"rgb":[0.466666666666666674,0.6,0.4],"xyz":[0.213963309073000707,0.276633329647236137,0.16783077740150415],"hpluv":[116.949978591108717,80.0041177209304522,59.5833535636433282],"hsluv":[116.949978591108717,47.5357009492008,59.5833535636433282]},"#779977":{"lch":[59.921152065724,28.0111989307655129,127.71501294923614],"luv":[59.921152065724,-17.1354122862910181,22.1586306282167591],"rgb":[0.466666666666666674,0.6,0.466666666666666674],"xyz":[0.223277322093202613,0.280358934855316932,0.216884579307902059],"hpluv":[127.71501294923614,59.3185968765002301,59.921152065724],"hsluv":[127.71501294923614,30.2037385091367128,59.921152065724]},"#779988":{"lch":[60.3212826107906608,19.7788738743410271,150.794869664161695],"luv":[60.3212826107906608,-17.2645515875173317,9.65086059473676272],"rgb":[0.466666666666666674,0.6,0.533333333333333326],"xyz":[0.234417739195146468,0.28481510169609453,0.275557442711474199],"hpluv":[150.794869664161695,41.6073752981458043,60.3212826107906608],"hsluv":[150.794869664161695,33.5278156565034706,60.3212826107906608]},"#779999":{"lch":[60.7849725890424537,17.8137422376051369,192.177050630060307],"luv":[60.7849725890424537,-17.4129412378011317,-3.75751113860251662],"rgb":[0.466666666666666674,0.6,0.6],"xyz":[0.247474703304219168,0.290037887339723688,0.344324120352592133],"hpluv":[192.177050630060307,37.1876097830212373,60.7849725890424537],"hsluv":[192.177050630060307,37.0420465685486562,60.7849725890424537]},"#7799aa":{"lch":[61.3128540464897895,25.0117677757311512,225.340924984985747],"luv":[61.3128540464897895,-17.5804418295499474,-17.7909131959243076],"rgb":[0.466666666666666674,0.6,0.66666666666666663],"xyz":[0.262532396269471724,0.29606096452582481,0.423627969969590734],"hpluv":[225.340924984985747,51.7645188682129742,61.3128540464897895],"hsluv":[225.340924984985747,40.6599304384258815,61.3128540464897895]},"#7799bb":{"lch":[61.9050111975332129,36.7727368637825478,241.108601392342877],"luv":[61.9050111975332129,-17.766782778670386,-32.1958942436537],"rgb":[0.466666666666666674,0.6,0.733333333333333282],"xyz":[0.279669988376808343,0.302916001368759569,0.513885955068232425],"hpluv":[241.108601392342877,75.37710856774234,61.9050111975332129],"hsluv":[241.108601392342877,44.3026829048042927,61.9050111975332129]},"#7799cc":{"lch":[62.5610290710097274,50.0883036089361084,248.973595844380469],"luv":[62.5610290710097274,-17.971590279241223,-46.7531827927901],"rgb":[0.466666666666666674,0.6,0.8],"xyz":[0.298962363820530097,0.31063295154624837,0.615492465738502581],"hpluv":[248.973595844380469,101.594866952252644,62.5610290710097274],"hsluv":[248.973595844380469,49.5852758814030068,62.5610290710097274]},"#7799dd":{"lch":[63.2800443412030518,63.9273589508424962,253.464421950176984],"luv":[63.2800443412030518,-18.1944086519195096,-61.2835272829234228],"rgb":[0.466666666666666674,0.6,0.866666666666666696],"xyz":[0.320480689371163641,0.319240281766501877,0.728822313638508579],"hpluv":[253.464421950176984,128.191525099113591,63.2800443412030518],"hsluv":[253.464421950176984,65.7895471985927429,63.2800443412030518]},"#7799ee":{"lch":[64.0607982423263138,77.8622331281598292,256.304567564122067],"luv":[64.0607982423263138,-18.434716379612933,-75.6484539148497106],"rgb":[0.466666666666666674,0.6,0.933333333333333348],"xyz":[0.344292869637338406,0.328765153872971894,0.854233129707031802],"hpluv":[256.304567564122067,154.231767587931557,64.0607982423263138],"hsluv":[256.304567564122067,82.5871459557978085,64.0607982423263138]},"#7799ff":{"lch":[64.9016907971027,91.67329289213788,258.23504341307023],"luv":[64.9016907971027,-18.6919383586334327,-89.7474460365571929],"rgb":[0.466666666666666674,0.6,1],"xyz":[0.370463918047169771,0.339233573236904618,0.992067317998813758],"hpluv":[258.23504341307023,179.236372955016122,64.9016907971027],"hsluv":[258.23504341307023,99.9999999999984368,64.9016907971027]},"#660000":{"lch":[19.330201679573328,65.0080772249371819,12.1770506300617765],"luv":[19.330201679573328,63.5454254137925432,13.7123671721378795],"rgb":[0.4,0,0],"xyz":[0.0547936733227042463,0.0282529878070199789,0.00256845343700170745],"hpluv":[12.1770506300617765,426.746789183125202,19.330201679573328],"hsluv":[12.1770506300617765,100.000000000002217,19.330201679573328]},"#660011":{"lch":[19.4980803058243595,61.695772445130423,8.9911342856641614],"luv":[19.4980803058243595,60.9376877881905799,9.641916024853316],"rgb":[0.4,0,0.0666666666666666657],"xyz":[0.0558053388223413716,0.0286576540068748317,0.0078965584017573389],"hpluv":[8.9911342856641614,401.51602003210553,19.4980803058243595],"hsluv":[8.9911342856641614,99.9999999999966178,19.4980803058243595]},"#660022":{"lch":[19.8051492014688648,56.728751528179842,2.87530221933591967],"luv":[19.8051492014688648,56.6573341637173584,2.84565201787440492],"rgb":[0.4,0,0.133333333333333331],"xyz":[0.0576806969608183867,0.029407797262265653,0.0177734445977365332],"hpluv":[2.87530221933591967,363.466537566247382,19.8051492014688648],"hsluv":[2.87530221933591967,99.9999999999968594,19.8051492014688648]},"#660033":{"lch":[20.2995520444984123,51.2727836305606957,352.516911450402631],"luv":[20.2995520444984123,50.836110988726972,-6.67743669143524787],"rgb":[0.4,0,0.2],"xyz":[0.0607684476932761272,0.0306428975552487659,0.0340355984553476765],"hpluv":[352.516911450402631,320.508659944055125,20.2995520444984123],"hsluv":[352.516911450402631,99.9999999999973852,20.2995520444984123]},"#660044":{"lch":[20.9904438433464762,47.7800185043531087,338.095292373375855],"luv":[20.9904438433464762,44.3305689635839855,-17.8250055719836844],"rgb":[0.4,0,0.266666666666666663],"xyz":[0.0652264429374950078,0.0324260956529363389,0.057514373408234315],"hpluv":[338.095292373375855,288.844444062118953,20.9904438433464762],"hsluv":[338.095292373375855,99.999999999997911,20.9904438433464762]},"#660055":{"lch":[21.8759682447435324,48.0792454528985687,322.009867044845],"luv":[21.8759682447435324,37.8920594608334085,-29.5940141436867741],"rgb":[0.4,0,0.333333333333333315],"xyz":[0.071188856976857,0.0348110612686811718,0.0889164206822082304],"hpluv":[322.009867044845,278.887908627948889,21.8759682447435324],"hsluv":[322.009867044845,99.9999999999984,21.8759682447435324]},"#660066":{"lch":[22.9458380566939866,52.2668983658326383,307.715012949243601],"luv":[22.9458380566939866,31.9734565677830815,-41.3464235441515271],"rgb":[0.4,0,0.4],"xyz":[0.0787738527503651781,0.0378450595780844834,0.128864065089352192],"hpluv":[307.715012949243601,289.042783730483393,22.9458380566939866],"hsluv":[307.715012949243601,99.9999999999988,22.9458380566939866]},"#660077":{"lch":[24.1840444716539054,59.1802438936044553,296.875135467660698],"luv":[24.1840444716539054,26.7522904844618061,-52.7884099129864097],"rgb":[0.4,0,0.466666666666666674],"xyz":[0.0880878657705671,0.0415706647861653,0.177917866995750101],"hpluv":[296.875135467660698,310.518260327731298,24.1840444716539054],"hsluv":[296.875135467660698,99.9999999999992326,24.1840444716539054]},"#660088":{"lch":[25.5714349826340381,67.6035320092512819,289.201479741547303],"luv":[25.5714349826340381,22.2341957091879898,-63.8426039670327725],"rgb":[0.4,0,0.533333333333333326],"xyz":[0.0992282828725109256,0.0460268316269428907,0.236590730399322269],"hpluv":[289.201479741547303,335.469941782198191,25.5714349826340381],"hsluv":[289.201479741547303,99.9999999999995168,25.5714349826340381]},"#660099":{"lch":[27.0878540213863559,76.7583277742970296,283.827270614430063],"luv":[27.0878540213863559,18.3449067131383,-74.5339203342523291],"rgb":[0.4,0,0.6],"xyz":[0.112285246981583625,0.0512496172705720551,0.305357408040440148],"hpluv":[283.827270614430063,359.575614235331898,27.0878540213863559],"hsluv":[283.827270614430063,99.9999999999996732,27.0878540213863559]},"#6600aa":{"lch":[28.7136916664512327,86.2331190336617226,280.0081392435834],"luv":[28.7136916664512327,14.9862877024472088,-84.9209161465722246],"rgb":[0.4,0,0.66666666666666663],"xyz":[0.127342939946836181,0.0572726944566731566,0.384661257657438749],"hpluv":[280.0081392435834,381.087223541781498,28.7136916664512327],"hsluv":[280.0081392435834,99.9999999999998863,28.7136916664512327]},"#6600bb":{"lch":[30.4308478844127208,95.8259209373334784,277.232006261077231],"luv":[30.4308478844127208,12.063278317584528,-95.06358103774852],"rgb":[0.4,0,0.733333333333333282],"xyz":[0.144480532054172828,0.0641277312996079152,0.474919242756080495],"hpluv":[277.232006261077231,399.584170303460496,30.4308478844127208],"hsluv":[277.232006261077231,100.000000000000071,30.4308478844127208]},"#6600cc":{"lch":[32.2232190058254631,105.440117399912424,275.16595430901134],"luv":[32.2232190058254631,9.49391256045434,-105.011827817640437],"rgb":[0.4,0,0.8],"xyz":[0.163772907497894554,0.0718446814770967168,0.576525753426350707],"hpluv":[275.16595430901134,415.218107165999243,32.2232190058254631],"hsluv":[275.16595430901134,100.000000000000284,32.2232190058254631]},"#6600dd":{"lch":[34.0768449366564425,115.029794578821409,273.594219506454294],"luv":[34.0768449366564425,7.21119822634443164,-114.803537667557165],"rgb":[0.4,0,0.866666666666666696],"xyz":[0.185291233048528098,0.0804520116973502508,0.689855601326356704],"hpluv":[273.594219506454294,428.341637585051217,34.0768449366564425],"hsluv":[273.594219506454294,100.000000000000313,34.0768449366564425]},"#6600ee":{"lch":[35.9798440153965657,124.573148355199,272.374748889870204],"luv":[35.9798440153965657,5.16172842086039729,-124.466163477612255],"rgb":[0.4,0,0.933333333333333348],"xyz":[0.209103413314702835,0.0899768838038202817,0.815266417394879928],"hpluv":[272.374748889870204,439.343788723350144,35.9798440153965657],"hsluv":[272.374748889870204,100.000000000000313,35.9798440153965657]},"#6600ff":{"lch":[37.9222328155672699,134.059876636217865,271.411957283269032],"luv":[37.9222328155672699,3.30334385288953181,-134.01917192367489],"rgb":[0.4,0,1],"xyz":[0.235274461724534228,0.100445303167752992,0.953100605686661773],"hpluv":[271.411957283269032,448.58447779597617,37.9222328155672699],"hsluv":[271.411957283269032,100.00000000000054,37.9222328155672699]},"#661100":{"lch":[20.9278595225824304,60.6482483509225645,15.3961031612090817],"luv":[20.9278595225824304,58.4717927536604165,16.1015365791022269],"rgb":[0.4,0.0666666666666666657,0],"xyz":[0.0567980735836326536,0.0322617883288768559,0.00323658685731115833],"hpluv":[15.3961031612090817,367.733145903292666,20.9278595225824304],"hsluv":[15.3961031612090817,100.00000000000216,20.9278595225824304]},"#661111":{"lch":[21.0816163302651134,57.5811303886473453,12.1770506300618102],"luv":[21.0816163302651134,56.2855814623301782,12.1457768908291825],"rgb":[0.4,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0578097390832697788,0.0326664545287317087,0.00856469182206678892],"hpluv":[12.1770506300618102,346.589664487627374,21.0816163302651134],"hsluv":[12.1770506300618102,81.2167011616125762,21.0816163302651134]},"#661122":{"lch":[21.363314856368774,52.932385078801687,5.93410154371749865],"luv":[21.363314856368774,52.6487447994206548,5.4723908098767966],"rgb":[0.4,0.0666666666666666657,0.133333333333333331],"xyz":[0.059685097221746794,0.0334165977841225301,0.018441578018045985],"hpluv":[5.93410154371749865,314.406957937895,21.363314856368774],"hsluv":[5.93410154371749865,82.5199513610387356,21.363314856368774]},"#661133":{"lch":[21.8180817632255923,47.7742586248590229,355.183549580278111],"luv":[21.8180817632255923,47.6055578330604661,-4.01131531521171425],"rgb":[0.4,0.0666666666666666657,0.2],"xyz":[0.0627728479542045414,0.0346516980771056429,0.0347037318756571317],"hpluv":[355.183549580278111,277.854041301729922,21.8180817632255923],"hsluv":[355.183549580278111,84.3121175303292603,21.8180817632255923]},"#661144":{"lch":[22.4559756968324393,44.5402485804784689,339.935360677682411],"luv":[22.4559756968324393,41.8369301419790247,-15.2808710453946635],"rgb":[0.4,0.0666666666666666657,0.266666666666666663],"xyz":[0.0672308431984234151,0.036434896174793216,0.0581825068285437702],"hpluv":[339.935360677682411,251.686564911624259,22.4559756968324393],"hsluv":[339.935360677682411,86.3348863624116518,22.4559756968324393]},"#661155":{"lch":[23.2773926977910151,45.1903944783221903,322.792583995755933],"luv":[23.2773926977910151,35.9919645110905364,-27.3267313035930464],"rgb":[0.4,0.0666666666666666657,0.333333333333333315],"xyz":[0.073193257237785414,0.0388198617905380489,0.0895845541025176717],"hpluv":[322.792583995755933,246.349182588766354,23.2773926977910151],"hsluv":[322.792583995755933,88.344826800164725,23.2773926977910151]},"#661166":{"lch":[24.275087751098269,49.8658315110702119,307.715012949243715],"luv":[24.275087751098269,30.5046415204515107,-39.4470277460696508],"rgb":[0.4,0.0666666666666666657,0.4],"xyz":[0.0807782530112935854,0.0418538600999413604,0.129532198509661634],"hpluv":[307.715012949243715,260.664316843383688,24.275087751098269],"hsluv":[307.715012949243715,90.1819147598703239,24.275087751098269]},"#661177":{"lch":[25.4363091503391701,57.3032374709331265,296.512546946797],"luv":[25.4363091503391701,25.5798087859014238,-51.2770358652572114],"rgb":[0.4,0.0666666666666666657,0.466666666666666674],"xyz":[0.0900922660314955,0.0455794653080221768,0.178586000416059543],"hpluv":[296.512546946797,285.867241464858182,25.4363091503391701],"hsluv":[296.512546946797,91.7740463972148461,25.4363091503391701]},"#661188":{"lch":[26.7449145171680129,66.1973281861227179,288.734792076243366],"luv":[26.7449145171680129,21.2617948521868456,-62.6898902427238127],"rgb":[0.4,0.0666666666666666657,0.533333333333333326],"xyz":[0.101232683133439333,0.0500356321487997746,0.23725886381963171],"hpluv":[288.734792076243366,314.078764213635395,26.7449145171680129],"hsluv":[288.734792076243366,93.110372692245349,26.7449145171680129]},"#661199":{"lch":[28.1832309630650286,75.7381406209258614,283.36677781159608],"luv":[28.1832309630650286,17.5094321789343716,-73.6864012521064637],"rgb":[0.4,0.0666666666666666657,0.6],"xyz":[0.114289647242512032,0.0552584177924289321,0.306025541460749617],"hpluv":[283.36677781159608,341.006914961476241,28.1832309630650286],"hsluv":[283.36677781159608,94.2123428080992,28.1832309630650286]},"#6611aa":{"lch":[29.733500038717203,85.5146667147819102,279.591039159426828],"luv":[29.733500038717203,14.2479867443400359,-84.3193518539685],"rgb":[0.4,0.0666666666666666657,0.66666666666666663],"xyz":[0.129347340207764588,0.0612814949785300336,0.385329391077748218],"hpluv":[279.591039159426828,364.950446526832081,29.733500038717203],"hsluv":[279.591039159426828,95.1136535912152254,29.733500038717203]},"#6611bb":{"lch":[31.378866229854367,95.3367425151459287,276.866082014695],"luv":[31.378866229854367,11.3974241300945351,-94.6530147253534153],"rgb":[0.4,0.0666666666666666657,0.733333333333333282],"xyz":[0.146484932315101235,0.0681365318214647853,0.475587376176389964],"hpluv":[276.866082014695,385.533736621086632,31.378866229854367],"hsluv":[276.866082014695,95.8493220980777636,31.378866229854367]},"#6611cc":{"lch":[33.1039576367877899,105.121866511028642,274.848446148865946],"luv":[33.1039576367877899,8.88494143701037409,-104.745714157780327],"rgb":[0.4,0.0666666666666666657,0.8],"xyz":[0.165777307758822962,0.0758534819989535869,0.577193886846660176],"hpluv":[274.848446148865946,402.951217622234481,33.1039576367877899],"hsluv":[274.848446148865946,96.4508528344463372,33.1039576367877899]},"#6611dd":{"lch":[34.8951509835915559,114.837148656435488,273.319244536407894],"luv":[34.8951509835915559,6.64899595047804048,-114.644500803094743],"rgb":[0.4,0.0666666666666666657,0.866666666666666696],"xyz":[0.187295633309456505,0.0844608122192071209,0.690523734746666173],"hpluv":[273.319244536407894,417.596303228590671,34.8951509835915559],"hsluv":[273.319244536407894,96.944722371929771,34.8951509835915559]},"#6611ee":{"lch":[36.7406193088150914,124.471664845310258,272.136065946829319],"luv":[36.7406193088150914,4.63940101804097527,-124.385173182164465],"rgb":[0.4,0.0666666666666666657,0.933333333333333348],"xyz":[0.211107813575631242,0.0939856843256771657,0.815934550815189397],"hpluv":[272.136065946829319,429.895948632666091,36.7406193088150914],"hsluv":[272.136065946829319,97.3524117238680446,36.7406193088150914]},"#6611ff":{"lch":[38.6302462525687815,134.023748920536207,271.203906716280642],"luv":[38.6302462525687815,2.81591803113255,-133.994163605572282],"rgb":[0.4,0.0666666666666666657,1],"xyz":[0.237278861985462636,0.104454103689609862,0.953768739106971242],"hpluv":[271.203906716280642,440.244168299440901,38.6302462525687815],"hsluv":[271.203906716280642,99.999999999999531,38.6302462525687815]},"#662200":{"lch":[23.5697003211059126,54.0433218319152,21.7646438431993481],"luv":[23.5697003211059126,50.1908335966774928,20.038983444740694],"rgb":[0.4,0.133333333333333331,0],"xyz":[0.0605136973184005889,0.0396930357984128235,0.00447512810223376842],"hpluv":[21.7646438431993481,290.955989204018863,23.5697003211059126],"hsluv":[21.7646438431993481,100.000000000002302,23.5697003211059126]},"#662211":{"lch":[23.7037155268300239,51.2256671637292627,18.5481266113504795],"luv":[23.7037155268300239,48.5648418325832196,16.2949413667354186],"rgb":[0.4,0.133333333333333331,0.0666666666666666657],"xyz":[0.0615253628180377071,0.0400977019982676763,0.0098032330669894],"hpluv":[18.5481266113504795,274.227196288753476,23.7037155268300239],"hsluv":[18.5481266113504795,84.4421944630679775,23.7037155268300239]},"#662222":{"lch":[23.9497782760704823,46.8639841586094761,12.177050630061828],"luv":[23.9497782760704823,45.8095660888384515,9.88517404858116],"rgb":[0.4,0.133333333333333331,0.133333333333333331],"xyz":[0.0634007209565147362,0.0408478452536585,0.0196801192629685942],"hpluv":[12.177050630061828,248.300181449835577,23.9497782760704823],"hsluv":[12.177050630061828,58.184428739378582,23.9497782760704823]},"#662233":{"lch":[24.3484354577474491,41.8866591548313139,0.79920805816821483],"luv":[24.3484354577474491,41.8825842907357284,0.584250188216085209],"rgb":[0.4,0.133333333333333331,0.2],"xyz":[0.0664884716889724697,0.0420829455466416105,0.0359422731205797374],"hpluv":[0.79920805816821483,218.295100847162672,24.3484354577474491],"hsluv":[0.79920805816821483,61.8388407102714908,24.3484354577474491]},"#662244":{"lch":[24.9104705449366364,38.7518995195090881,343.921953822216381],"luv":[24.9104705449366364,37.2361321960480467,-10.7322027305005232],"rgb":[0.4,0.133333333333333331,0.266666666666666663],"xyz":[0.0709464669331913433,0.0438661436443291836,0.059421048073466376],"hpluv":[343.921953822216381,197.40147375767063,24.9104705449366364],"hsluv":[343.921953822216381,66.1143919991375,24.9104705449366364]},"#662255":{"lch":[25.6388481254070371,39.7515606661792376,324.488651014584605],"luv":[25.6388481254070371,32.3577893991285421,-23.0902585650003651],"rgb":[0.4,0.133333333333333331,0.333333333333333315],"xyz":[0.0769088809725533423,0.0462511092600740165,0.0908230953474402913],"hpluv":[324.488651014584605,196.74105716675524,25.6388481254070371],"hsluv":[324.488651014584605,70.5303777194930746,25.6388481254070371]},"#662266":{"lch":[26.530115175026431,45.1550068711170525,307.715012949244],"luv":[26.530115175026431,27.6228683191850166,-35.7204674010796381],"rgb":[0.4,0.133333333333333331,0.4],"xyz":[0.0844938767460615137,0.049285107569477328,0.130770739754584253],"hpluv":[307.715012949244,215.976303505553034,26.530115175026431],"hsluv":[307.715012949244,74.7212231760600076,26.530115175026431]},"#662277":{"lch":[27.5758503181253047,53.47184404785515,295.772994892671647],"luv":[27.5758503181253047,23.2499163509258366,-48.1526686233805137],"rgb":[0.4,0.133333333333333331,0.466666666666666674],"xyz":[0.0938078897662634331,0.0530107127775581444,0.179824541660982162],"hpluv":[295.772994892671647,246.056915236342576,27.5758503181253047],"hsluv":[295.772994892671647,78.4792949436714622,27.5758503181253047]},"#662288":{"lch":[28.7641691288539221,63.1969785740596492,287.807032602413699],"luv":[28.7641691288539221,19.3264050913403267,-60.169329123196718],"rgb":[0.4,0.133333333333333331,0.533333333333333326],"xyz":[0.104948306868207261,0.0574668796183357422,0.23849740506455433],"hpluv":[287.807032602413699,278.794247273594806,28.7641691288539221],"hsluv":[287.807032602413699,81.7283139306751565,28.7641691288539221]},"#662299":{"lch":[30.081149723697223,73.446586603294,282.467625610713],"luv":[30.081149723697223,15.8562317990126083,-71.7145800853016766],"rgb":[0.4,0.133333333333333331,0.6],"xyz":[0.118005270977279975,0.0626896652619649,0.307264082705672237],"hpluv":[282.467625610713,309.825038390781458,30.081149723697223],"hsluv":[282.467625610713,84.475317587044259,30.081149723697223]},"#6622aa":{"lch":[31.512047889249807,83.7990879252892569,278.786617054458873],"luv":[31.512047889249807,12.8007301136733549,-82.8156292354725565],"rgb":[0.4,0.133333333333333331,0.66666666666666663],"xyz":[0.133062963942532531,0.068712742448066,0.386567932322670837],"hpluv":[278.786617054458873,337.444217562648532,31.512047889249807],"hsluv":[278.786617054458873,86.7692530837111349,31.512047889249807]},"#6622bb":{"lch":[33.0422299311305281,94.07636648958254,276.16643073789237],"luv":[33.0422299311305281,10.1053888262289746,-93.5320471739658643],"rgb":[0.4,0.133333333333333331,0.733333333333333282],"xyz":[0.150200556049869149,0.0755677792910007529,0.476825917421312584],"hpluv":[276.16643073789237,361.285484259324733,33.0422299311305281],"hsluv":[276.16643073789237,88.6739591516067662,33.0422299311305281]},"#6622cc":{"lch":[34.6578144612334853,104.214655833315277,274.245119058655746],"luv":[34.6578144612334853,7.71433729467952212,-103.928742369761551],"rgb":[0.4,0.133333333333333331,0.8],"xyz":[0.169492931493590904,0.0832847294684895545,0.578432428091582684],"hpluv":[274.245119058655746,381.563613242959605,34.6578144612334853],"hsluv":[274.245119058655746,90.2534916489383079,34.6578144612334853]},"#6622dd":{"lch":[36.346058304563158,114.200305800004017,272.799119030217753],"luv":[36.346058304563158,5.5769048208672336,-114.064052082299],"rgb":[0.4,0.133333333333333331,0.866666666666666696],"xyz":[0.191011257044224447,0.0918920596887430885,0.691762275991588682],"hpluv":[272.799119030217753,398.702789727268566,36.346058304563158],"hsluv":[272.799119030217753,91.5654894217155118,36.346058304563158]},"#6622ee":{"lch":[38.0955422395423,124.039689220569301,271.686141036519132],"luv":[38.0955422395423,3.64980151132168062,-123.985980864222597],"rgb":[0.4,0.133333333333333331,0.933333333333333348],"xyz":[0.214823437310399185,0.101416931795213133,0.817173092060111905],"hpluv":[271.686141036519132,413.167199445381073,38.0955422395423],"hsluv":[271.686141036519132,92.6590152569973498,38.0955422395423]},"#6622ff":{"lch":[39.8962147757429264,133.745689778340022,270.812765394378914],"luv":[39.8962147757429264,1.89717678294479941,-133.732233416399],"rgb":[0.4,0.133333333333333331,1],"xyz":[0.240994485720230578,0.111885351159145829,0.95500728035189375],"hpluv":[270.812765394378914,425.390148773484384,39.8962147757429264],"hsluv":[270.812765394378914,99.99999999999946,39.8962147757429264]},"#ddaa00":{"lch":[72.3107430320736881,86.5721801417344494,59.9465914104400071],"luv":[72.3107430320736881,43.355958426121056,74.9333253195491267],"rgb":[0.866666666666666696,0.66666666666666663,0],"xyz":[0.441922241377765923,0.441231641500849037,0.0618909005679976823],"hpluv":[59.9465914104400071,151.919966798177825,72.3107430320736881],"hsluv":[59.9465914104400071,100.000000000002402,72.3107430320736881]},"#ddaa11":{"lch":[72.3377322217577188,85.4954146103564625,59.6744594052448178],"luv":[72.3377322217577188,43.1676990261245663,73.7971251485224],"rgb":[0.866666666666666696,0.66666666666666663,0.0666666666666666657],"xyz":[0.442933906877403,0.44163630770070389,0.067219005532753312],"hpluv":[59.6744594052448178,149.974443711406025,72.3377322217577188],"hsluv":[59.6744594052448178,98.5180859943944398,72.3377322217577188]},"#ddaa22":{"lch":[72.3877194091470386,83.5208789068112623,59.1557200492863586],"luv":[72.3877194091470386,42.8217010650181038,71.708013019916109],"rgb":[0.866666666666666696,0.66666666666666663,0.133333333333333331],"xyz":[0.444809265015880084,0.44238645095609469,0.0770958917287325],"hpluv":[59.1557200492863586,146.409577733002152,72.3877194091470386],"hsluv":[59.1557200492863586,95.7957425728033911,72.3877194091470386]},"#ddaa33":{"lch":[72.4698996386445771,80.3304907566891,58.2589820164620633],"luv":[72.4698996386445771,42.2603136650720543,68.3158373595774435],"rgb":[0.866666666666666696,0.66666666666666663,0.2],"xyz":[0.44789701574833779,0.443621551249077817,0.0933580455863436548],"hpluv":[58.2589820164620633,140.657238526484292,72.4698996386445771],"hsluv":[58.2589820164620633,91.3821490755410082,72.4698996386445771]},"#ddaa44":{"lch":[72.5882801580772679,75.8571050863154,56.8623293870095949],"luv":[72.5882801580772679,41.467485474955744,63.5196665644635701],"rgb":[0.866666666666666696,0.66666666666666663,0.266666666666666663],"xyz":[0.452355010992556705,0.445404749346765383,0.116836820539230293],"hpluv":[56.8623293870095949,132.607804442486071,72.5882801580772679],"hsluv":[56.8623293870095949,85.1564308385751332,72.5882801580772679]},"#ddaa55":{"lch":[72.7461171317656579,70.1198989219024469,54.780917696258733],"luv":[72.7461171317656579,40.4384565855633085,57.2846528644045065],"rgb":[0.866666666666666696,0.66666666666666663,0.333333333333333315],"xyz":[0.45831742503191869,0.447789714962510244,0.148238867813204195],"hpluv":[54.780917696258733,122.3124851735341,72.7461171317656579],"hsluv":[54.780917696258733,77.0893717991816345,72.7461171317656579]},"#ddaa66":{"lch":[72.9460991959627307,63.2340905833455835,51.7145858463931702],"luv":[72.9460991959627307,39.17852917707404,49.6345954292357661],"rgb":[0.866666666666666696,0.66666666666666663,0.4],"xyz":[0.465902420805426876,0.450823713271913562,0.188186512220348157],"hpluv":[51.7145858463931702,109.998947735143361,72.9460991959627307],"hsluv":[51.7145858463931702,67.2337497701281421,72.9460991959627307]},"#ddaa77":{"lch":[73.1904440644495651,55.4382228560327377,47.150998877343909],"luv":[73.1904440644495651,37.7017926183457632,40.6444508733775294],"rgb":[0.866666666666666696,0.66666666666666663,0.466666666666666674],"xyz":[0.475216433825628781,0.454549318479994358,0.237240314126746066],"hpluv":[47.150998877343909,96.1156803308001173,73.1904440644495651],"hsluv":[47.150998877343909,55.7140089565642214,73.1904440644495651]},"#ddaa88":{"lch":[73.4809558021361511,47.1613293807763228,40.1850915920125189],"luv":[73.4809558021361511,36.0295555463961819,30.4312687229965526],"rgb":[0.866666666666666696,0.66666666666666663,0.533333333333333326],"xyz":[0.486356850927572582,0.459005485320771955,0.295913177530318261],"hpluv":[40.1850915920125189,81.4424009312931645,73.4809558021361511],"hsluv":[40.1850915920125189,45.325944585658668,73.4809558021361511]},"#ddaa99":{"lch":[73.8190624606049539,39.1833139250455389,29.2463480703396321],"luv":[73.8190624606049539,34.1885051927702435,19.1436204212419021],"rgb":[0.866666666666666696,0.66666666666666663,0.6],"xyz":[0.499413815036645281,0.464228270964401113,0.36467985517143614],"hpluv":[29.2463480703396321,67.3553294964948,73.8190624606049539],"hsluv":[29.2463480703396321,46.1073405736803323,73.8190624606049539]},"#ddaaaa":{"lch":[74.2058435914849923,32.9500913661112946,12.1770506300625296],"luv":[74.2058435914849923,32.2087294789219527,6.95027095793437244],"rgb":[0.866666666666666696,0.66666666666666663,0.66666666666666663],"xyz":[0.514471508001897893,0.470251348150502235,0.443983704788434741],"hpluv":[12.1770506300625296,56.3453191386000114,74.2058435914849923],"hsluv":[12.1770506300625296,46.9171896008106,74.2058435914849923]},"#ddaabb":{"lch":[74.6420527030620633,30.7078714289026884,348.787813428378513],"luv":[74.6420527030620633,30.1217754775259223,-5.97093039446416807],"rgb":[0.866666666666666696,0.66666666666666663,0.733333333333333282],"xyz":[0.531609100109234456,0.477106384993437,0.534241689887076543],"hpluv":[348.787813428378513,52.2042025244198,74.6420527030620633],"hsluv":[348.787813428378513,47.7320050944543937,74.6420527030620633]},"#ddaacc":{"lch":[75.1281375044867445,34.0548346014018435,325.184688201169763],"luv":[75.1281375044867445,27.9589055182432595,-19.4430286208394669],"rgb":[0.866666666666666696,0.66666666666666663,0.8],"xyz":[0.55090147555295621,0.484823335170925795,0.635848200557346699],"hpluv":[325.184688201169763,57.5195499622066393,75.1281375044867445],"hsluv":[325.184688201169763,48.5278754329488109,75.1281375044867445]},"#ddaadd":{"lch":[75.6642595524878772,42.092894356631966,307.715012949247466],"luv":[75.6642595524878772,25.749668941594777,-33.2981426616688125],"rgb":[0.866666666666666696,0.66666666666666663,0.866666666666666696],"xyz":[0.572419801103589809,0.493430665391179302,0.749178048457352697],"hpluv":[307.715012949247466,70.5922995729826255,75.6642595524878772],"hsluv":[307.715012949247466,49.2811497501269855,75.6642595524878772]},"#ddaaee":{"lch":[76.2503141773092636,52.9001531738191915,296.399494755977059],"luv":[76.2503141773092636,23.5208512504545659,-47.3834967290038875],"rgb":[0.866666666666666696,0.66666666666666663,0.933333333333333348],"xyz":[0.596231981369764519,0.502955537497649319,0.87458886452587592],"hpluv":[296.399494755977059,89.1958388421213,76.2503141773092636],"hsluv":[296.399494755977059,73.8038640729286,76.2503141773092636]},"#ddaaff":{"lch":[76.8859510948180542,65.1444004641461447,289.080822119258073],"luv":[76.8859510948180542,21.295808093697417,-61.565261872824486],"rgb":[0.866666666666666696,0.66666666666666663,1],"xyz":[0.62240302977959594,0.513423956861582,1.01242305281765765],"hpluv":[289.080822119258073,113.514774922986319,76.8859510948180542],"hsluv":[289.080822119258073,99.9999999999968736,76.8859510948180542]},"#663300":{"lch":[27.2772702365161024,46.6784293424923,33.1138040531735385],"luv":[27.2772702365161024,39.0972512948193938,25.5006020923387098],"rgb":[0.4,0.2,0],"xyz":[0.0666314194074114075,0.0519284799764346272,0.00651436879857064926],"hpluv":[33.1138040531735385,217.147410386557254,27.2772702365161024],"hsluv":[33.1138040531735385,100.000000000002288,27.2772702365161024]},"#663311":{"lch":[27.3893959478715772,43.971204952951652,30.1269617465812196],"luv":[27.3893959478715772,38.0313691656755353,22.0699303215615963],"rgb":[0.4,0.2,0.0666666666666666657],"xyz":[0.0676430849070485257,0.0523331461762894801,0.0118424737633262799],"hpluv":[30.1269617465812196,203.716046393577358,27.3893959478715772],"hsluv":[30.1269617465812196,87.8713966090680572,27.3893959478715772]},"#663322":{"lch":[27.5957277293980781,39.608651287835805,23.9834802389854467],"luv":[27.5957277293980781,36.1889469500517436,16.0998563809655693],"rgb":[0.4,0.2,0.133333333333333331],"xyz":[0.0695184430455255548,0.0530832894316803,0.0217193599593054759],"hpluv":[23.9834802389854467,182.132533879714401,27.5957277293980781],"hsluv":[23.9834802389854467,66.9779468056010501,27.5957277293980781]},"#663333":{"lch":[27.9312558147072,34.2527069144242517,12.1770506300619683],"luv":[27.9312558147072,33.482036777055967,7.2250359324586606],"rgb":[0.4,0.2,0.2],"xyz":[0.0726061937779832883,0.0543183897246634143,0.0379815138169166192],"hpluv":[12.1770506300619683,155.612242967619039,27.9312558147072],"hsluv":[12.1770506300619683,36.4647718300342518,27.9312558147072]},"#663344":{"lch":[28.4068233476218452,30.4023991370198274,352.642674566889241],"luv":[28.4068233476218452,30.1520905841737843,-3.89323858637544307],"rgb":[0.4,0.2,0.266666666666666663],"xyz":[0.0770641890222021619,0.0561015878223509873,0.0614602887698032577],"hpluv":[352.642674566889241,135.807736934047625,28.4068233476218452],"hsluv":[352.642674566889241,42.3197568133242044,28.4068233476218452]},"#663355":{"lch":[29.027378781744666,31.164203729876963,328.257954430910445],"luv":[29.027378781744666,26.5028264215118483,-16.3953586660521324],"rgb":[0.4,0.2,0.333333333333333315],"xyz":[0.0830266030615641609,0.0584865534380958202,0.0928623360437771661],"hpluv":[328.257954430910445,136.234637721643935,29.027378781744666],"hsluv":[328.257954430910445,48.648881209958347,29.027378781744666]},"#663366":{"lch":[29.7928910898429251,37.2833882928919067,307.715012949244567],"luv":[29.7928910898429251,22.8075289246907325,-29.4935190668720466],"rgb":[0.4,0.2,0.4],"xyz":[0.0906115988350723323,0.0615205517474991317,0.132809980450921128],"hpluv":[307.715012949244567,158.796911496206434,29.7928910898429251],"hsluv":[307.715012949244567,54.9388950129523792,29.7928910898429251]},"#663377":{"lch":[30.6992208566667273,46.7654342463890345,294.320996437271049],"luv":[30.6992208566667273,19.2602655771695837,-42.6151148086008646],"rgb":[0.4,0.2,0.466666666666666674],"xyz":[0.0999256118552742517,0.0652461569555799481,0.181863782357319037],"hpluv":[294.320996437271049,193.302265796468333,30.6992208566667273],"hsluv":[294.320996437271049,60.8304716126584424,30.6992208566667273]},"#663388":{"lch":[31.7390466224972485,57.6768981875091811,286.074834637191429],"luv":[31.7390466224972485,15.9703082974272554,-55.4217812544619122],"rgb":[0.4,0.2,0.533333333333333326],"xyz":[0.11106602895721808,0.0697023237963575459,0.240536645760891205],"hpluv":[286.074834637191429,230.593651019326217,31.7390466224972485],"hsluv":[286.074834637191429,66.1275975958513,31.7390466224972485]},"#663399":{"lch":[32.9028065942714818,68.9918273860838696,280.844497617061506],"luv":[32.9028065942714818,12.9804074562249703,-67.7597319087197292],"rgb":[0.4,0.2,0.6],"xyz":[0.124122993066290793,0.0749251094399867,0.309303323402009112],"hpluv":[280.844497617061506,266.074975063872387,32.9028065942714818],"hsluv":[280.844497617061506,70.7618769362906761,32.9028065942714818]},"#6633aa":{"lch":[34.1795810026756612,80.2563017922262,277.366876751775067],"luv":[34.1795810026756612,10.2906460265496023,-79.5938225097975],"rgb":[0.4,0.2,0.66666666666666663],"xyz":[0.139180686031543321,0.0809481866260878,0.388607173019007712],"hpluv":[277.366876751775067,297.955725741163178,34.1795810026756612],"hsluv":[277.366876751775067,74.7463951454814293,34.1795810026756612]},"#6633bb":{"lch":[35.5578512622049701,91.2933310256451875,274.950579703742051],"luv":[35.5578512622049701,7.87828999249439477,-90.9527615663878208],"rgb":[0.4,0.2,0.733333333333333282],"xyz":[0.15631827813888,0.0878032234690225566,0.478865158117649459],"hpluv":[274.950579703742051,325.793841875348,35.5578512622049701],"hsluv":[274.950579703742051,78.1373397599298158,35.5578512622049701]},"#6633cc":{"lch":[37.0261004663704369,102.052471518039624,273.208108112313198],"luv":[37.0261004663704369,5.71114175070883,-101.892540467119574],"rgb":[0.4,0.2,0.8],"xyz":[0.175610653582601722,0.0955201736465113582,0.58047166878791967],"hpluv":[273.208108112313198,349.747708937339723,37.0261004663704369],"hsluv":[273.208108112313198,81.008127051099,37.0261004663704369]},"#6633dd":{"lch":[38.5732487885037258,112.538160698021628,271.912259810227567],"luv":[38.5732487885037258,3.75528971541350476,-112.475488051606391],"rgb":[0.4,0.2,0.866666666666666696],"xyz":[0.197128979133235266,0.104127503866764892,0.693801516687925668],"hpluv":[271.912259810227567,370.214070757058153,38.5732487885037258],"hsluv":[271.912259810227567,83.8924044294761,38.5732487885037258]},"#6633ee":{"lch":[40.1889386764538372,122.775879994578517,270.923585069715159],"luv":[40.1889386764538372,1.97901241536538453,-122.759929204537158],"rgb":[0.4,0.2,0.933333333333333348],"xyz":[0.22094115939941,0.113652375973234937,0.819212332756448891],"hpluv":[270.923585069715159,387.655406037674595,40.1889386764538372],"hsluv":[270.923585069715159,91.8481370725274502,40.1889386764538372]},"#6633ff":{"lch":[41.8636962738951581,132.796565847050772,270.152898062524457],"luv":[41.8636962738951581,0.354377123439640451,-132.796093005873018],"rgb":[0.4,0.2,1],"xyz":[0.247112207809241397,0.124120795337167633,0.957046521048230736],"hpluv":[270.152898062524457,402.521052726566381,41.8636962738951581],"hsluv":[270.152898062524457,99.9999999999993747,41.8636962738951581]},"#ddbb00":{"lch":[76.6269242453545871,86.8164471599593,69.4373142874166263],"luv":[76.6269242453545871,30.4927107526369845,81.2852390562642],"rgb":[0.866666666666666696,0.733333333333333282,0],"xyz":[0.475876739286364758,0.509140637318047595,0.0732090665375303],"hpluv":[69.4373142874166263,149.25100710879434,76.6269242453545871],"hsluv":[69.4373142874166263,100.000000000002373,76.6269242453545871]},"#ddbb11":{"lch":[76.6514577805917412,85.7837129406502754,69.2755127455160391],"luv":[76.6514577805917412,30.3566774947925779,80.2328956062352461],"rgb":[0.866666666666666696,0.733333333333333282,0.0666666666666666657],"xyz":[0.476888404786001863,0.509545303517902504,0.0785371715022859379],"hpluv":[69.2755127455160391,147.663405788509436,76.6514577805917412],"hsluv":[69.2755127455160391,98.710789014839,76.6514577805917412]},"#ddbb22":{"lch":[76.6969020797125722,83.8847347199512257,68.9672438614109353],"luv":[76.6969020797125722,30.1063672837106679,78.2959473281657523],"rgb":[0.866666666666666696,0.733333333333333282,0.133333333333333331],"xyz":[0.478763762924478919,0.510295446773293304,0.0884140576982651305],"hpluv":[68.9672438614109353,144.735860207932831,76.6969020797125722],"hsluv":[68.9672438614109353,96.3396664069398554,76.6969020797125722]},"#ddbb33":{"lch":[76.7716285455552452,80.8014056767331823,68.4347482297151828],"luv":[76.7716285455552452,29.6994133556607949,75.1452726767666093],"rgb":[0.866666666666666696,0.733333333333333282,0.2],"xyz":[0.481851513656936625,0.511530547066276431,0.104676211555876281],"hpluv":[68.4347482297151828,139.9591753538609,76.7716285455552452],"hsluv":[68.4347482297151828,92.4878111801133542,76.7716285455552452]},"#ddbb44":{"lch":[76.8793043130786771,76.4437058057830683,67.6060651816737277],"luv":[76.8793043130786771,29.122950030038453,70.6788082728408398],"rgb":[0.866666666666666696,0.733333333333333282,0.266666666666666663],"xyz":[0.486309508901155541,0.513313745163964,0.128154986508762919],"hpluv":[67.6060651816737277,133.157612926581692,76.8793043130786771],"hsluv":[67.6060651816737277,87.0382611213693167,76.8793043130786771]},"#ddbb55":{"lch":[77.0229278214451654,70.786451757311653,66.3713649049339551],"luv":[77.0229278214451654,28.3717024864450664,64.851894732620238],"rgb":[0.866666666666666696,0.733333333333333282,0.333333333333333315],"xyz":[0.492271922940517526,0.515698710779708747,0.159557033782736835],"hpluv":[66.3713649049339551,124.235507886155276,77.0229278214451654],"hsluv":[66.3713649049339551,79.9485715087726,77.0229278214451654]},"#ddbb66":{"lch":[77.2049977781888259,63.8693414267369732,64.5489675558404912],"luv":[77.2049977781888259,27.4471820183984,57.6710063509733359],"rgb":[0.866666666666666696,0.733333333333333282,0.4],"xyz":[0.499856918714025711,0.518732709089112065,0.199504678189880769],"hpluv":[64.5489675558404912,113.177180957201557,77.2049977781888259],"hsluv":[64.5489675558404912,71.2432689272834665,77.2049977781888259]},"#ddbb77":{"lch":[77.4276024714994264,55.80459657383539,61.8158033937064815],"luv":[77.4276024714994264,26.3569386858829375,49.1880552764299495],"rgb":[0.866666666666666696,0.733333333333333282,0.466666666666666674],"xyz":[0.509170931734227561,0.522458314297192916,0.248558480096278678],"hpluv":[61.8158033937064815,100.062778032150931,77.4276024714994264],"hsluv":[61.8158033937064815,61.00659046349368,77.4276024714994264]},"#ddbb88":{"lch":[77.6924726660212883,46.8021917196541537,57.5480835848938881],"luv":[77.6924726660212883,25.1136643841879952,39.4936578574539112],"rgb":[0.866666666666666696,0.733333333333333282,0.533333333333333326],"xyz":[0.520311348836171472,0.526914481137970458,0.307231343499850873],"hpluv":[57.5480835848938881,85.1204314231653285,77.6924726660212883],"hsluv":[57.5480835848938881,49.3735690170151145,77.6924726660212883]},"#ddbb99":{"lch":[78.001015952892,37.2494741955694195,50.4191367157405352],"luv":[78.001015952892,23.7341209657771088,28.7091419207933036],"rgb":[0.866666666666666696,0.733333333333333282,0.6],"xyz":[0.533368312945244116,0.532137266781599672,0.375998021140968752],"hpluv":[50.4191367157405352,68.8881727109007471,78.001015952892],"hsluv":[50.4191367157405352,37.2278198354843894,78.001015952892]},"#ddbbaa":{"lch":[78.3543411988951135,27.9779961680489,37.3601297670291643],"luv":[78.3543411988951135,22.2379488027189254,16.9776883770144309],"rgb":[0.866666666666666696,0.733333333333333282,0.66666666666666663],"xyz":[0.548426005910496728,0.538160343967700738,0.455301870757967353],"hpluv":[37.3601297670291643,52.7537881236722086,78.3543411988951135],"hsluv":[37.3601297670291643,37.9002282962103152,78.3543411988951135]},"#ddbbbb":{"lch":[78.7532777240269724,21.1216737069600953,12.1770506300632171],"luv":[78.7532777240269724,20.6464457718990104,4.45526398447083238],"rgb":[0.866666666666666696,0.733333333333333282,0.733333333333333282],"xyz":[0.565563598017833291,0.545015380810635497,0.545559855856609155],"hpluv":[12.1770506300632171,40.7192307977840144,78.7532777240269724],"hsluv":[12.1770506300632171,38.5653299871361952,78.7532777240269724]},"#ddbbcc":{"lch":[79.1983918483363425,20.8793784390591419,335.381067074864461],"luv":[79.1983918483363425,18.9814116783666442,-8.69795692664743747],"rgb":[0.866666666666666696,0.733333333333333282,0.8],"xyz":[0.584855973461555,0.552732330988124354,0.647166366526879311],"hpluv":[335.381067074864461,41.2776027841095186,79.1983918483363425],"hsluv":[335.381067074864461,39.1976988204569,79.1983918483363425]},"#ddbbdd":{"lch":[79.6900023594157858,28.2216267397768341,307.715012949250536],"luv":[79.6900023594157858,17.264138203128045,-22.325092338948604],"rgb":[0.866666666666666696,0.733333333333333282,0.866666666666666696],"xyz":[0.606374299012188644,0.56133966120837786,0.760496214426885309],"hpluv":[307.715012949250536,57.3946451248898555,79.6900023594157858],"hsluv":[307.715012949250536,39.7709084435557401,79.6900023594157858]},"#ddbbee":{"lch":[80.2281958041266,39.4567857635703447,293.154060026294076],"luv":[80.2281958041266,15.5145982189510505,-36.2785774927409221],"rgb":[0.866666666666666696,0.733333333333333282,0.933333333333333348],"xyz":[0.630186479278363354,0.570864533314847877,0.885907030495408532],"hpluv":[293.154060026294076,82.8233888781043674,80.2281958041266],"hsluv":[293.154060026294076,68.7191774169969278,80.2281958041266]},"#ddbbff":{"lch":[80.8128420975971409,52.2658591287574765,285.253756774661895],"luv":[80.8128420975971409,13.7508586713070624,-50.4245368473411],"rgb":[0.866666666666666696,0.733333333333333282,1],"xyz":[0.656357527688194775,0.581332952678780601,1.02374121878719038],"hpluv":[285.253756774661895,113.64059963508393,80.8128420975971409],"hsluv":[285.253756774661895,99.9999999999962768,80.8128420975971409]},"#664400":{"lch":[31.7142168878436834,41.7146560735594463,49.9018869072924431],"luv":[31.7142168878436834,26.8683448374877969,31.9093180282686859],"rgb":[0.4,0.266666666666666663,0],"xyz":[0.0754639898903774337,0.0695936209423669294,0.00945855895955924342],"hpluv":[49.9018869072924431,166.906788900061372,31.7142168878436834],"hsluv":[49.9018869072924431,100.000000000002103,31.7142168878436834]},"#664411":{"lch":[31.8065195391856221,38.988494662362406,47.7128576067384387],"luv":[31.8065195391856221,26.2332728657793552,28.8429906699465946],"rgb":[0.4,0.266666666666666663,0.0666666666666666657],"xyz":[0.0764756553900145519,0.0699982871422217823,0.0147866639243148749],"hpluv":[47.7128576067384387,155.546285842055198,31.8065195391856221],"hsluv":[47.7128576067384387,90.7993319288460157,31.8065195391856221]},"#664422":{"lch":[31.9766874661881033,34.3475437583520318,43.0092135947734064],"luv":[31.9766874661881033,25.116436032279772,23.4290077311931029],"rgb":[0.4,0.266666666666666663,0.133333333333333331],"xyz":[0.078351013528491581,0.0707484303976126,0.0246635501202940727],"hpluv":[43.0092135947734064,136.301783870263904,31.9766874661881033],"hsluv":[43.0092135947734064,74.6688439558526227,31.9766874661881033]},"#664433":{"lch":[32.2542649002247757,27.9288783689085562,32.9719795273007179],"luv":[32.2542649002247757,23.4305644913898661,15.1997004759998031],"rgb":[0.4,0.266666666666666663,0.2],"xyz":[0.0814387642609493145,0.0719835306905957095,0.0409257039779052159],"hpluv":[32.9719795273007179,109.876716511985933,32.2542649002247757],"hsluv":[32.9719795273007179,50.4508902462759465,32.2542649002247757]},"#664444":{"lch":[32.6494757012261942,21.7704999617243,12.1770506300622419],"luv":[32.6494757012261942,21.2806737346177428,4.59212303669972144],"rgb":[0.4,0.266666666666666663,0.266666666666666663],"xyz":[0.0858967595051681881,0.0737667287882832895,0.0644044789307918475],"hpluv":[12.1770506300622419,84.6119136876739,32.6494757012261942],"hsluv":[12.1770506300622419,19.8271939783404392,32.6494757012261942]},"#664455":{"lch":[33.1682230288457163,20.3425996427482829,337.72581918360828],"luv":[33.1682230288457163,18.8246474429619,-7.71064257201243208],"rgb":[0.4,0.266666666666666663,0.333333333333333315],"xyz":[0.0918591735445301871,0.0761516944040281224,0.0958065262047657629],"hpluv":[337.72581918360828,77.8257963773028649,33.1682230288457163],"hsluv":[337.72581918360828,26.9902218950403885,33.1682230288457163]},"#664466":{"lch":[33.8127168447387447,26.5268160416637819,307.715012949245931],"luv":[33.8127168447387447,16.2273642995468066,-20.9843898457416387],"rgb":[0.4,0.266666666666666663,0.4],"xyz":[0.0994441693180383585,0.0791856927134314409,0.135754170611909725],"hpluv":[307.715012949245931,99.5507152142919125,33.8127168447387447],"hsluv":[307.715012949245931,34.4415155187259359,33.8127168447387447]},"#664477":{"lch":[34.5819879544663067,37.1994974310500766,291.489286484323088],"luv":[34.5819879544663067,13.6271894146704895,-34.6136146303646512],"rgb":[0.4,0.266666666666666663,0.466666666666666674],"xyz":[0.108758182338240278,0.0829112979215122503,0.184807972518307634],"hpluv":[291.489286484323088,136.49804898345451,34.5819879544663067],"hsluv":[291.489286484323088,41.7425383187140824,34.5819879544663067]},"#664488":{"lch":[35.4724176022540263,49.4256461635840623,283.003444619748336],"luv":[35.4724176022540263,11.1212465051830698,-48.1582015326441066],"rgb":[0.4,0.266666666666666663,0.533333333333333326],"xyz":[0.119898599440184106,0.0873674647622898481,0.243480835921879801],"hpluv":[283.003444619748336,176.807585609029246,35.4724176022540263],"hsluv":[283.003444619748336,48.5905204317402166,35.4724176022540263]},"#664499":{"lch":[36.4782980897457563,61.9753280698008169,278.131406705371774],"luv":[36.4782980897457563,8.76603164871553453,-61.3522450974139844],"rgb":[0.4,0.266666666666666663,0.6],"xyz":[0.132955563549256806,0.092590250405919,0.312247513562997736],"hpluv":[278.131406705371774,215.5875082467536,36.4782980897457563],"hsluv":[278.131406705371774,54.8155424382278511,36.4782980897457563]},"#6644aa":{"lch":[37.5923984663849922,74.3597011725147468,275.081334091822],"luv":[37.5923984663849922,6.58602388672208239,-74.0674655150911576],"rgb":[0.4,0.266666666666666663,0.66666666666666663],"xyz":[0.148013256514509361,0.0986133275920201,0.391551363179996281],"hpluv":[275.081334091822,251.001852587777108,37.5923984663849922],"hsluv":[275.081334091822,60.3520360208115179,37.5923984663849922]},"#6644bb":{"lch":[38.8064988843830392,86.3901107279874765,273.04172423936518],"luv":[38.8064988843830392,4.58413310153298603,-86.2684006766171905],"rgb":[0.4,0.266666666666666663,0.733333333333333282],"xyz":[0.165150848621846,0.105468364434954859,0.481809348278638083],"hpluv":[273.04172423936518,282.487278503057098,38.8064988843830392],"hsluv":[273.04172423936518,65.2044789549227346,38.8064988843830392]},"#6644cc":{"lch":[40.1118623747323184,98.0126069922284415,271.608181870646],"luv":[40.1118623747323184,2.75066337520804938,-97.9740015535209],"rgb":[0.4,0.266666666666666663,0.8],"xyz":[0.184443224065567735,0.11318531461244366,0.583415858948908239],"hpluv":[271.608181870646,310.061926380003911,40.1118623747323184],"hsluv":[271.608181870646,73.249037078124374,40.1118623747323184]},"#6644dd":{"lch":[41.4996246628331491,109.23540368219534,270.561113733160255],"luv":[41.4996246628331491,1.06975602599714947,-109.230165429047204],"rgb":[0.4,0.266666666666666663,0.866666666666666696],"xyz":[0.205961549616201278,0.121792644832697194,0.696745706848914237],"hpluv":[270.561113733160255,334.009312605211903,41.4996246628331491],"hsluv":[270.561113733160255,82.0982912580276434,41.4996246628331491]},"#6644ee":{"lch":[42.9610953823040305,120.093362966476874,269.772657810053431],"luv":[42.9610953823040305,-0.476513570908160711,-120.092417593346411],"rgb":[0.4,0.266666666666666663,0.933333333333333348],"xyz":[0.229773729882376043,0.131317516939167239,0.82215652291743746],"hpluv":[269.772657810053431,354.717803858999673,42.9610953823040305],"hsluv":[269.772657810053431,90.971694410809846,42.9610953823040305]},"#6644ff":{"lch":[44.4879743720372502,130.630057251556309,269.16406595263021],"luv":[44.4879743720372502,-1.90579898569535566,-130.61615439053088],"rgb":[0.4,0.266666666666666663,1],"xyz":[0.255944778292207409,0.141785936303099935,0.959990711209219305],"hpluv":[269.16406595263021,372.597392941492103,44.4879743720372502],"hsluv":[269.16406595263021,99.9999999999993463,44.4879743720372502]},"#ddcc00":{"lch":[81.0484811072975475,89.5621409057231119,78.2088923998372394],"luv":[81.0484811072975475,18.3014975440108643,87.6723004789036224],"rgb":[0.866666666666666696,0.8,0],"xyz":[0.514100482595981623,0.585588123937282434,0.0859503143074022424],"hpluv":[78.2088923998372394,197.564965691755532,81.0484811072975475],"hsluv":[78.2088923998372394,100.000000000002245,81.0484811072975475]},"#ddcc11":{"lch":[81.070830830397739,88.588371741804238,78.1407504993947413],"luv":[81.070830830397739,18.2056357525625714,86.6974880530521261],"rgb":[0.866666666666666696,0.8,0.0666666666666666657],"xyz":[0.515112148095618783,0.585992790137137343,0.0912784192721578791],"hpluv":[78.1407504993947413,195.686226016320433,81.070830830397739],"hsluv":[78.1407504993947413,98.8754134531589699,81.070830830397739]},"#ddcc22":{"lch":[81.1122340585289265,86.7947856050049751,78.0111959233441894],"luv":[81.1122340585289265,18.0290607078827385,84.9016358983162149],"rgb":[0.866666666666666696,0.8,0.133333333333333331],"xyz":[0.516987506234095728,0.586742933392528143,0.101155305468137072],"hpluv":[78.0111959233441894,192.214732219338657,81.1122340585289265],"hsluv":[78.0111959233441894,96.8049917221618443,81.1122340585289265]},"#ddcc33":{"lch":[81.1803270736657367,83.8738846457710139,77.7882255314295747],"luv":[81.1803270736657367,17.7414783140301893,81.9760237679585089],"rgb":[0.866666666666666696,0.8,0.2],"xyz":[0.520075256966553545,0.58797803368551127,0.117417459325748208],"hpluv":[77.7882255314295747,186.530107062901806,81.1803270736657367],"hsluv":[77.7882255314295747,93.4358723678778631,81.1803270736657367]},"#ddcc44":{"lch":[81.2784695635313312,79.7261575767135469,77.443216014682],"luv":[81.2784695635313312,17.3330313363216426,77.8191893214074213],"rgb":[0.866666666666666696,0.8,0.266666666666666663],"xyz":[0.524533252210772405,0.589761231783198836,0.140896234278634847],"hpluv":[77.443216014682,178.389435414851135,81.2784695635313312],"hsluv":[77.443216014682,88.6570950843060643,81.2784695635313312]},"#ddcc55":{"lch":[81.4094229919429893,74.303525235023784,76.9333685993953509],"luv":[81.4094229919429893,16.7988406729037365,72.37964364652683],"rgb":[0.866666666666666696,0.8,0.333333333333333315],"xyz":[0.530495666250134335,0.592146197398943586,0.172298281552608762],"hpluv":[76.9333685993953509,167.620308244181615,81.4094229919429893],"hsluv":[76.9333685993953509,82.4185745103993668,81.4094229919429893]},"#ddcc66":{"lch":[81.5755062452221154,67.6049359495878406,76.1891492108976252],"luv":[81.5755062452221154,16.1384724175358123,65.6504156329288548],"rgb":[0.866666666666666696,0.8,0.4],"xyz":[0.538080662023642575,0.595180195708346904,0.212245925959752724],"hpluv":[76.1891492108976252,154.10859642349061,81.5755062452221154],"hsluv":[76.1891492108976252,74.724981631947216,81.5755062452221154]},"#ddcc77":{"lch":[81.7786782860545571,59.6741108071854,75.0887439649445554],"luv":[81.7786782860545571,15.3554995822328237,57.6646176889111857],"rgb":[0.866666666666666696,0.8,0.466666666666666674],"xyz":[0.547394675043844425,0.598905800916427755,0.261299727866150633],"hpluv":[75.0887439649445554,137.792143148878608,81.7786782860545571],"hsluv":[75.0887439649445554,65.6305091544174104,81.7786782860545571]},"#ddcc88":{"lch":[82.020587165389415,50.599662209211,73.3985048227604722],"luv":[82.020587165389415,14.4570002873895778,48.4904213054152891],"rgb":[0.866666666666666696,0.8,0.533333333333333326],"xyz":[0.558535092145788337,0.603361967757205298,0.319972591269722773],"hpluv":[73.3985048227604722,118.661765286999071,82.020587165389415],"hsluv":[73.3985048227604722,55.2326761810852389,82.020587165389415]},"#ddcc99":{"lch":[82.3026016456871901,40.5232855707982438,70.6109505258247765],"luv":[82.3026016456871901,13.4529549720920478,38.2250529884698622],"rgb":[0.866666666666666696,0.8,0.6],"xyz":[0.571592056254861,0.608584753400834511,0.388739268910840707],"hpluv":[70.6109505258247765,96.7842051030752231,82.3026016456871901],"hsluv":[70.6109505258247765,43.6647666281718685,82.3026016456871901]},"#ddccaa":{"lch":[82.6258332993788542,29.6818113573176419,65.4008685536862231],"luv":[82.6258332993788542,12.3555588351715961,26.9879619705157374],"rgb":[0.866666666666666696,0.8,0.66666666666666663],"xyz":[0.586649749220113592,0.614607830586935577,0.468043118527839308],"hpluv":[65.4008685536862231,72.4135107626852,82.6258332993788542],"hsluv":[65.4008685536862231,31.0871436920773085,82.6258332993788542]},"#ddccbb":{"lch":[82.9911533066729419,18.6379527757414252,53.1465475992889],"luv":[82.9911533066729419,11.1784915779275345,14.9135713265793797],"rgb":[0.866666666666666696,0.8,0.733333333333333282],"xyz":[0.603787341327450156,0.621462867429870336,0.55830110362648111],"hpluv":[53.1465475992889,46.5946179098545272,82.9911533066729419],"hsluv":[53.1465475992889,24.678645774572626,82.9911533066729419]},"#ddcccc":{"lch":[83.3992063850657,10.164901186858037,12.1770506300648638],"luv":[83.3992063850657,9.93619558955776228,2.14411598208697862],"rgb":[0.866666666666666696,0.8,0.8],"xyz":[0.62307971677117191,0.629179817607359193,0.659907614296751266],"hpluv":[12.1770506300648638,26.1289592314662436,83.3992063850657],"hsluv":[12.1770506300648638,25.0002112827592455,83.3992063850657]},"#ddccdd":{"lch":[83.8504233095379163,14.1290270468723165,307.715012949259346],"luv":[83.8504233095379163,8.64321103323171513,-11.1769543403501022],"rgb":[0.866666666666666696,0.8,0.866666666666666696],"xyz":[0.644598042321805509,0.637787147827612699,0.773237462196757264],"hpluv":[307.715012949259346,37.4791950150616557,83.8504233095379163],"hsluv":[307.715012949259346,25.214872966603707,83.8504233095379163]},"#ddccee":{"lch":[84.3450329093034,25.9620569722210597,286.361909425528779],"luv":[84.3450329093034,7.31360586969829818,-24.9106316943502399],"rgb":[0.866666666666666696,0.8,0.933333333333333348],"xyz":[0.668410222587980218,0.647312019934082716,0.898648278265280487],"hpluv":[286.361909425528779,71.3464154396222199,84.3450329093034],"hsluv":[286.361909425528779,60.879598082714125,84.3450329093034]},"#ddccff":{"lch":[84.8830740665913623,39.380529428060008,278.705583312848262],"luv":[84.8830740665913623,5.96052452183370107,-38.926831947371717],"rgb":[0.866666666666666696,0.8,1],"xyz":[0.694581270997811639,0.65778043929801544,1.03648246655706222],"hpluv":[278.705583312848262,112.590543218900592,84.8830740665913623],"hsluv":[278.705583312848262,99.9999999999947704,84.8830740665913623]},"#665500":{"lch":[36.5970311204425656,41.5054710368830655,69.2006364019199651],"luv":[36.5970311204425656,14.7384507745119784,38.800543743107859],"rgb":[0.4,0.333333333333333315,0],"xyz":[0.0872772466047234,0.0932201343710592,0.0133963111976744542],"hpluv":[69.2006364019199651,143.912599562803223,36.5970311204425656],"hsluv":[69.2006364019199651,100.000000000002359,36.5970311204425656]},"#665511":{"lch":[36.673028710438345,38.8606023214232366,68.2658014049057869],"luv":[36.673028710438345,14.3901304021596417,36.0980686435250391],"rgb":[0.4,0.333333333333333315,0.0666666666666666657],"xyz":[0.0882889121043605174,0.0936248005709140463,0.0187244161624300839],"hpluv":[68.2658014049057869,134.462776824764262,36.673028710438345],"hsluv":[68.2658014049057869,93.0449405246809107,36.673028710438345]},"#665522":{"lch":[36.8133307706753357,34.1687527519613923,66.2355675996872719],"luv":[36.8133307706753357,13.769229594380441,31.2715842419585037],"rgb":[0.4,0.333333333333333315,0.133333333333333331],"xyz":[0.0901642702428375464,0.0943749438263048607,0.0286013023584092835],"hpluv":[66.2355675996872719,117.777773408929676,36.8133307706753357],"hsluv":[66.2355675996872719,80.6853283069105629,36.8133307706753357]},"#665533":{"lch":[37.0427251812615097,27.0303271109949854,61.7081001991288645],"luv":[37.0427251812615097,12.8113945713483854,23.8014023297917383],"rgb":[0.4,0.333333333333333315,0.2],"xyz":[0.09325202097529528,0.0956100441192879735,0.0448634562160204267],"hpluv":[61.7081001991288645,92.5950345984193177,37.0427251812615097],"hsluv":[61.7081001991288645,61.7209513910547045,37.0427251812615097]},"#665544":{"lch":[37.3704580906404473,18.1024774089589755,50.3425610862832542],"luv":[37.3704580906404473,11.5529306171195891,13.9366237840407656],"rgb":[0.4,0.333333333333333315,0.266666666666666663],"xyz":[0.0977100162195141536,0.0973932422169755535,0.0683422311689070583],"hpluv":[50.3425610862832542,61.4679768710498351,37.3704580906404473],"hsluv":[50.3425610862832542,37.0117339514184067,37.3704580906404473]},"#665555":{"lch":[37.8025949068387348,10.2943047784276782,12.1770506300631105],"luv":[37.8025949068387348,10.0626876598879917,2.1714115065313786],"rgb":[0.4,0.333333333333333315,0.333333333333333315],"xyz":[0.103672430258876153,0.0997782078327203864,0.0997442784428809737],"hpluv":[12.1770506300631105,34.5553054430909654,37.8025949068387348],"hsluv":[12.1770506300631105,8.09737912949257321,37.8025949068387348]},"#665566":{"lch":[38.3424918197480693,13.7697499972876347,307.715012949250308],"luv":[38.3424918197480693,8.42342892447929,-10.8927434626015351],"rgb":[0.4,0.333333333333333315,0.4],"xyz":[0.111257426032384324,0.102812206142123705,0.139691922850024935],"hpluv":[307.715012949250308,45.570631638882567,38.3424918197480693],"hsluv":[307.715012949250308,15.7660506346962208,38.3424918197480693]},"#665577":{"lch":[38.9911218270375812,25.5692820710091411,285.225395910208761],"luv":[38.9911218270375812,6.71492531026355,-24.671805035392353],"rgb":[0.4,0.333333333333333315,0.466666666666666674],"xyz":[0.120571439052586243,0.106537811350204514,0.188745724756422845],"hpluv":[285.225395910208761,83.2131821356252885,38.9911218270375812],"hsluv":[285.225395910208761,23.5948697041559434,38.9911218270375812]},"#665588":{"lch":[39.7473800461840554,39.003702064123587,277.369365694294345],"luv":[39.7473800461840554,5.00282395952989312,-38.6815269493963],"rgb":[0.4,0.333333333333333315,0.533333333333333326],"xyz":[0.131711856154530071,0.110993978190982112,0.247418588159995],"hpluv":[277.369365694294345,124.519293959659265,39.7473800461840554],"hsluv":[277.369365694294345,31.2388068533835614,39.7473800461840554]},"#665599":{"lch":[40.6084045881889466,52.6763518020623636,273.629018089310307],"luv":[40.6084045881889466,3.33420095564239061,-52.5707251534733189],"rgb":[0.4,0.333333333333333315,0.6],"xyz":[0.144768820263602771,0.11621676383461127,0.316185265801112947],"hpluv":[273.629018089310307,164.603508765513965,40.6084045881889466],"hsluv":[273.629018089310307,39.2894117268144569,40.6084045881889466]},"#6655aa":{"lch":[41.5699140891343575,66.1399121177165,271.505962745252077],"luv":[41.5699140891343575,1.73822184255944534,-66.1170670838121168],"rgb":[0.4,0.333333333333333315,0.66666666666666663],"xyz":[0.159826513228855327,0.122239841020712364,0.395489115418111492],"hpluv":[271.505962745252077,201.894186201954597,41.5699140891343575],"hsluv":[271.505962745252077,49.6682832978127067,41.5699140891343575]},"#6655bb":{"lch":[42.6265484117568647,79.2031960637105499,270.166039680829499],"luv":[42.6265484117568647,0.229525718995523903,-79.2028634876978],"rgb":[0.4,0.333333333333333315,0.733333333333333282],"xyz":[0.176964105336191974,0.129094877863647123,0.485747100516753294],"hpluv":[270.166039680829499,235.777232293519603,42.6265484117568647],"hsluv":[270.166039680829499,59.8653820834470309,42.6265484117568647]},"#6655cc":{"lch":[43.7721949853351333,91.7929775852419,269.258674658723919],"luv":[43.7721949853351333,-1.18763654850412936,-91.7852943199147688],"rgb":[0.4,0.333333333333333315,0.8],"xyz":[0.1962564807799137,0.136811828041135924,0.58735361118702345],"hpluv":[269.258674658723919,266.103421792879146,43.7721949853351333],"hsluv":[269.258674658723919,69.9112236392489734,43.7721949853351333]},"#6655dd":{"lch":[45.0002850881211458,103.899953671233533,268.61259940679895],"luv":[45.0002850881211458,-2.51566121975990953,-103.869494181457682],"rgb":[0.4,0.333333333333333315,0.866666666666666696],"xyz":[0.217774806330547244,0.145419158261389458,0.700683459087029448],"hpluv":[268.61259940679895,292.98097185143456,45.0002850881211458],"hsluv":[268.61259940679895,79.8793625185682714,45.0002850881211458]},"#6655ee":{"lch":[46.3040490971424106,115.549020689755764,268.134901078425969],"luv":[46.3040490971424106,-3.7607010001107648,-115.487805894602445],"rgb":[0.4,0.333333333333333315,0.933333333333333348],"xyz":[0.241586986596722,0.154944030367859503,0.826094275155552671],"hpluv":[268.134901078425969,316.655201018988919,46.3040490971424106],"hsluv":[268.134901078425969,89.8701820385079344,46.3040490971424106]},"#6655ff":{"lch":[47.6767252326213651,126.781348408818275,267.771145841725911],"luv":[47.6767252326213651,-4.93065761335473951,-126.685432942615918],"rgb":[0.4,0.333333333333333315,1],"xyz":[0.267758035006553374,0.165412449731792199,0.963928463447334516],"hpluv":[267.771145841725911,337.433561350206048,47.6767252326213651],"hsluv":[267.771145841725911,99.9999999999992468,47.6767252326213651]},"#dddd00":{"lch":[85.547159878993142,94.3072427966830844,85.8743202181747449],"luv":[85.547159878993142,6.78488618903739749,94.0628585750738466],"rgb":[0.866666666666666696,0.866666666666666696,0],"xyz":[0.556734473143156827,0.670856105031634,0.100161644489793561],"hpluv":[85.8743202181747449,283.614606809988061,85.547159878993142],"hsluv":[85.8743202181747449,100.000000000002203,85.547159878993142]},"#dddd11":{"lch":[85.5675738163798627,93.4011806547303394,85.8743202181746881],"luv":[85.5675738163798627,6.71970001318247423,93.159144368282],"rgb":[0.866666666666666696,0.866666666666666696,0.0666666666666666657],"xyz":[0.557746138642794,0.671260771231488862,0.105489749454549198],"hpluv":[85.8743202181746881,281.335749103468061,85.5675738163798627],"hsluv":[85.8743202181746881,99.0156164862488,85.5675738163798627]},"#dddd22":{"lch":[85.6053941241358558,91.7307060091609401,85.8743202181746739],"luv":[85.6053941241358558,6.59951857201479086,91.4929985275198447],"rgb":[0.866666666666666696,0.866666666666666696,0.133333333333333331],"xyz":[0.559621496781270933,0.672010914486879662,0.11536663565052839],"hpluv":[85.8743202181746739,277.118842420723468,85.6053941241358558],"hsluv":[85.8743202181746739,97.2017654403352083,85.6053941241358558]},"#dddd33":{"lch":[85.667603455332241,89.0058006932873,85.8743202181745602],"luv":[85.667603455332241,6.4034766573555908,88.775154428206335],"rgb":[0.866666666666666696,0.866666666666666696,0.2],"xyz":[0.56270924751372875,0.673246014779862789,0.131628789508139526],"hpluv":[85.8743202181745602,270.196330508983522,85.667603455332241],"hsluv":[85.8743202181745602,94.2458512979473113,85.667603455332241]},"#dddd44":{"lch":[85.7572852094861418,85.1265937151141117,85.8743202181744607],"luv":[85.7572852094861418,6.12438910193468278,84.9059998802570419],"rgb":[0.866666666666666696,0.866666666666666696,0.266666666666666663],"xyz":[0.567167242757947609,0.675029212877550355,0.155107564461026165],"hpluv":[85.8743202181744607,260.24482525674506,85.7572852094861418],"hsluv":[85.8743202181744607,90.0440000232135844,85.7572852094861418]},"#dddd55":{"lch":[85.8769849033878074,80.0369945631262,85.874320218174276],"luv":[85.8769849033878074,5.75822050268421481,79.8295897229865545],"rgb":[0.866666666666666696,0.866666666666666696,0.333333333333333315],"xyz":[0.573129656797309539,0.677414178493295105,0.18650961173500008],"hpluv":[85.874320218174276,247.008869171162701,85.8769849033878074],"hsluv":[85.874320218174276,84.5423921226573327,85.8769849033878074]},"#dddd66":{"lch":[86.0288537292730098,73.7198014533942398,85.8743202181739775],"luv":[86.0288537292730098,5.30373328608645522,73.5287667485177252],"rgb":[0.866666666666666696,0.866666666666666696,0.4],"xyz":[0.58071465257081778,0.680448176802698423,0.226457256142144042],"hpluv":[85.8743202181739775,230.281095596483937,86.0288537292730098],"hsluv":[85.8743202181739775,77.7321300368988,86.0288537292730098]},"#dddd77":{"lch":[86.2147251389940834,66.1931358813644124,85.8743202181736365],"luv":[86.2147251389940834,4.76223119383214133,66.0216054929389315],"rgb":[0.866666666666666696,0.866666666666666696,0.466666666666666674],"xyz":[0.59002866559101963,0.684173782010779274,0.275511058048541924],"hpluv":[85.8743202181736365,209.886373280136951,86.2147251389940834],"hsluv":[85.8743202181736365,69.6453389130317362,86.2147251389940834]},"#dddd88":{"lch":[86.4361603707972,57.5066396271378224,85.8743202181730823],"luv":[86.4361603707972,4.13728567831694072,57.3576190965201391],"rgb":[0.866666666666666696,0.866666666666666696,0.533333333333333326],"xyz":[0.601169082692963541,0.688629948851556817,0.334183921452114119],"hpluv":[85.8743202181730823,185.665493576193455,86.4361603707972],"hsluv":[85.8743202181730823,60.3508056243124429,86.4361603707972]},"#dddd99":{"lch":[86.6944777431662,47.7369558995854888,85.8743202181722154],"luv":[86.6944777431662,3.43441079587341314,47.613252157820078],"rgb":[0.866666666666666696,0.866666666666666696,0.6],"xyz":[0.614226046802036185,0.693852734495186,0.402950599093232054],"hpluv":[85.8743202181722154,157.456397081560084,86.6944777431662],"hsluv":[85.8743202181722154,49.9486591868920939,86.6944777431662]},"#ddddaa":{"lch":[86.990772885999732,36.9824894935128,85.874320218170638],"luv":[86.990772885999732,2.66068622896724838,36.886654469181245],"rgb":[0.866666666666666696,0.866666666666666696,0.66666666666666663],"xyz":[0.629283739767288797,0.699875811681287097,0.482254448710230599],"hpluv":[85.874320218170638,125.071764704863014,86.990772885999732],"hsluv":[85.874320218170638,38.5641267001819443,86.990772885999732]},"#ddddbb":{"lch":[87.3259337660435477,25.3576808227713499,85.8743202181676821],"luv":[87.3259337660435477,1.82434533444747116,25.2919698878957568],"rgb":[0.866666666666666696,0.866666666666666696,0.733333333333333282],"xyz":[0.64642133187462536,0.706730848524221855,0.572512433808872401],"hpluv":[85.8743202181676821,88.2719508819342735,87.3259337660435477],"hsluv":[85.8743202181676821,26.340671416181145,87.3259337660435477]},"#ddddcc":{"lch":[87.7006527393466797,12.9871390430395461,85.8743202181585445],"luv":[87.7006527393466797,0.934353054076054512,12.9534846621895881],"rgb":[0.866666666666666696,0.866666666666666696,0.8],"xyz":[0.665713707318347114,0.714447798701710712,0.674118944479142557],"hpluv":[85.8743202181585445,46.7319159493201113,87.7006527393466797],"hsluv":[85.8743202181585445,13.4329442518860063,87.7006527393466797]},"#dddddd":{"lch":[88.1154369871094,4.67545248961294327e-12,0],"luv":[88.1154369871094,4.4193702762792188e-12,1.52611347670073729e-12],"rgb":[0.866666666666666696,0.866666666666666696,0.866666666666666696],"xyz":[0.687232032868980713,0.723055128921964219,0.787448792379148554],"hpluv":[0,1.74708563976297451e-11,88.1154369871094],"hsluv":[0,1.74437740136320375e-11,88.1154369871094]},"#ddddee":{"lch":[88.5706181797242209,13.4751686036456029,265.874320218195521],"luv":[88.5706181797242209,-0.969464090371862097,-13.4402495614536726],"rgb":[0.866666666666666696,0.866666666666666696,0.933333333333333348],"xyz":[0.711044213135155423,0.732580001028434236,0.912859608447671778],"hpluv":[265.874320218195521,52.5550848411252431,88.5706181797242209],"hsluv":[265.874320218195521,47.1269490590101725,88.5706181797242209]},"#ddddff":{"lch":[89.0663618949558753,27.3146757005029208,265.874320218186369],"luv":[89.0663618949558753,-1.9651403266809826,-27.2438934831293338],"rgb":[0.866666666666666696,0.866666666666666696,1],"xyz":[0.737215261544986844,0.743048420392367,1.05069379673945362],"hpluv":[265.874320218186369,111.815120511018762,89.0663618949558753],"hsluv":[265.874320218186369,99.9999999999922125,89.0663618949558753]},"#666600":{"lch":[41.7321583215394583,46.0055575524193685,85.8743202181747449],"luv":[41.7321583215394583,3.30984623025532709,45.8863404908370924],"rgb":[0.4,0.4,0],"xyz":[0.102305304310569861,0.123276249782752534,0.0184056637662898],"hpluv":[85.8743202181747449,139.887458074797365,41.7321583215394583],"hsluv":[85.8743202181747449,100.000000000002203,41.7321583215394583]},"#666611":{"lch":[41.7952597887023742,43.6298127640598423,85.8743202181746],"luv":[41.7952597887023742,3.13892449057558931,43.5167521176544625],"rgb":[0.4,0.4,0.0666666666666666657],"xyz":[0.103316969810206979,0.123680915982607387,0.0237337687310454348],"hpluv":[85.8743202181746,132.463323325332908,41.7952597887023742],"hsluv":[85.8743202181746,94.6927802880713756,41.7952597887023742]},"#666622":{"lch":[41.9118699845736913,39.3503176022612067,85.874320218174276],"luv":[41.9118699845736913,2.83103840719259514,39.248346677737],"rgb":[0.4,0.4,0.133333333333333331],"xyz":[0.105192327948684008,0.124431059237998201,0.0336106549270246274],"hpluv":[85.874320218174276,119.138061739500813,41.9118699845736913],"hsluv":[85.874320218174276,85.1670788640685288,41.9118699845736913]},"#666633":{"lch":[42.1028501842444953,32.6344620115447057,85.8743202181736507],"luv":[42.1028501842444953,2.34786962297492563,32.5498943011565842],"rgb":[0.4,0.4,0.2],"xyz":[0.108280078681141742,0.125666159530981314,0.0498728087846357776],"hpluv":[85.8743202181736507,98.3567766096709306,42.1028501842444953],"hsluv":[85.8743202181736507,70.3113616926845,42.1028501842444953]},"#666644":{"lch":[42.3763861696741557,23.5947988734222314,85.8743202181723575],"luv":[42.3763861696741557,1.69751569722617934,23.5336562041455402],"rgb":[0.4,0.4,0.266666666666666663],"xyz":[0.112738073925360616,0.127449357628668908,0.0733515837375224161],"hpluv":[85.8743202181723575,70.6531759312171346,42.3763861696741557],"hsluv":[85.8743202181723575,50.5071554688203506,42.3763861696741557]},"#666655":{"lch":[42.7382714661199543,12.562340839470254,85.87432021816781],"luv":[42.7382714661199543,0.903791165304248856,12.5297872646162745],"rgb":[0.4,0.4,0.333333333333333315],"xyz":[0.118700487964722615,0.129834323244413741,0.104753631011496318],"hpluv":[85.87432021816781,37.2986356199978459,42.7382714661199543],"hsluv":[85.87432021816781,26.6633164497530721,42.7382714661199543]},"#666666":{"lch":[43.1922895629847048,2.27708065554704512e-12,0],"luv":[43.1922895629847048,2.15069538500574498e-12,7.48067960001998255e-13],"rgb":[0.4,0.4,0.4],"xyz":[0.126285483738230786,0.132868321553817031,0.144701275418640279],"hpluv":[0,6.68977504875838914e-12,43.1922895629847048],"hsluv":[0,1.91542116883063395e-12,43.1922895629847048]},"#666677":{"lch":[43.7404449074606489,13.5883126365404472,265.874320218186085],"luv":[43.7404449074606489,-0.977604179760566572,-13.5531003971814314],"rgb":[0.4,0.4,0.466666666666666674],"xyz":[0.135599496758432692,0.136593926761897855,0.193755077325038189],"hpluv":[265.874320218186085,39.4204575510779804,43.7404449074606489],"hsluv":[265.874320218186085,10.3527957183817456,43.7404449074606489]},"#666688":{"lch":[44.3831523723879684,27.7327571842679852,265.874320218181708],"luv":[44.3831523723879684,-1.9952189844931838,-27.660891566352042],"rgb":[0.4,0.4,0.533333333333333326],"xyz":[0.146739913860376547,0.141050093602675453,0.252427940728610356],"hpluv":[265.874320218181708,79.2892354857961692,44.3831523723879684],"hsluv":[265.874320218181708,21.2254167484079588,44.3831523723879684]},"#666699":{"lch":[45.1194249231942308,42.0446421145154,265.87432021818023],"luv":[45.1194249231942308,-3.02488020162380478,-41.9356892193690598],"rgb":[0.4,0.4,0.6],"xyz":[0.159796877969449247,0.14627287924630461,0.321194618369728291],"hpluv":[265.87432021818023,118.245992523098394,45.1194249231942308],"hsluv":[265.87432021818023,32.3647541960069702,45.1194249231942308]},"#6666aa":{"lch":[45.9470714788517682,56.2348015337582652,265.874320218179548],"luv":[45.9470714788517682,-4.04578393932889835,-56.0890767962662125],"rgb":[0.4,0.4,0.66666666666666663],"xyz":[0.174854570934701803,0.152295956432405705,0.400498467986726892],"hpluv":[265.874320218179548,155.305436018888514,45.9470714788517682],"hsluv":[265.874320218179548,43.5990379455573205,45.9470714788517682]},"#6666bb":{"lch":[46.8629040956598786,70.1103551977131,265.874320218179093],"luv":[46.8629040956598786,-5.04405352741049562,-69.9286738753289541],"rgb":[0.4,0.4,0.733333333333333282],"xyz":[0.191992163042038422,0.159150993275340463,0.490756453085368638],"hpluv":[265.874320218179093,189.841997809706953,46.8629040956598786],"hsluv":[265.874320218179093,54.8353857399755285,46.8629040956598786]},"#6666cc":{"lch":[47.8629477245616854,83.5592716582008,265.874320218178866],"luv":[47.8629477245616854,-6.01162892081844,-83.3427393224351505],"rgb":[0.4,0.4,0.8],"xyz":[0.211284538485760176,0.166867943452829265,0.592362963755638794],"hpluv":[265.874320218178866,221.531011478982748,47.8629477245616854],"hsluv":[265.874320218178866,66.0482344892977693,47.8629477245616854]},"#6666dd":{"lch":[48.9426439028117102,96.5306872715973583,265.874320218178696],"luv":[48.9426439028117102,-6.94485076081307,-96.2805413000828736],"rgb":[0.4,0.4,0.866666666666666696],"xyz":[0.23280286403639372,0.175475273673082799,0.705692811655644792],"hpluv":[265.874320218178696,250.274901054084751,48.9426439028117102],"hsluv":[265.874320218178696,77.2646968282616911,48.9426439028117102]},"#6666ee":{"lch":[50.0970402589656203,109.016062738443594,265.874320218178525],"luv":[50.0970402589656203,-7.84310469187671711,-108.73356263723052],"rgb":[0.4,0.4,0.933333333333333348],"xyz":[0.256615044302568429,0.185000145779552844,0.831103627724168],"hpluv":[265.874320218178525,276.132643737939816,50.0970402589656203],"hsluv":[265.874320218178525,88.5507283896609181,50.0970402589656203]},"#6666ff":{"lch":[51.3209595583197142,121.033610519319112,265.874320218178411],"luv":[51.3209595583197142,-8.70770100014002502,-120.719968599376287],"rgb":[0.4,0.4,1],"xyz":[0.28278609271239985,0.19546856514348554,0.96893781601594986],"hpluv":[265.874320218178411,299.261292593223402,51.3209595583197142],"hsluv":[265.874320218178411,99.9999999999991616,51.3209595583197142]},"#ddee00":{"lch":[90.1008574130140261,100.518542770188731,92.3281002120423295],"luv":[90.1008574130140261,-4.08324753875312307,100.435574027231638],"rgb":[0.866666666666666696,0.933333333333333348,0],"xyz":[0.603913249483671644,0.765213657712664919,0.115887903269964759],"hpluv":[92.3281002120423295,458.324419080212692,90.1008574130140261],"hsluv":[92.3281002120423295,100.000000000002288,90.1008574130140261]},"#ddee11":{"lch":[90.1195571422023676,99.6821059706602739,92.3717344777628284],"luv":[90.1195571422023676,-4.12512016496088219,99.5967149778072667],"rgb":[0.866666666666666696,0.933333333333333348,0.0666666666666666657],"xyz":[0.604924914983308804,0.765618323912519827,0.121216008234720396],"hpluv":[92.3717344777628284,455.439701471196656,90.1195571422023676],"hsluv":[92.3717344777628284,99.1349582088955827,90.1195571422023676]},"#ddee22":{"lch":[90.1542040339558213,98.139145338163118,92.4541942657322409],"luv":[90.1542040339558213,-4.20238430415396635,98.0491295925940562],"rgb":[0.866666666666666696,0.933333333333333348,0.133333333333333331],"xyz":[0.606800273121785749,0.766368467167910628,0.131092894430699575],"hpluv":[92.4541942657322409,450.094002053356689,90.1542040339558213],"hsluv":[92.4541942657322409,97.539848527320828,90.1542040339558213]},"#ddee33":{"lch":[90.2112004280082402,95.6198982889531237,92.5945991605726562],"luv":[90.2112004280082402,-4.32860020636881337,95.5218727257959728],"rgb":[0.866666666666666696,0.933333333333333348,0.2],"xyz":[0.609888023854243566,0.767603567460893754,0.147355048288310725],"hpluv":[92.5945991605726562,441.296742170845221,90.2112004280082402],"hsluv":[92.5945991605726562,94.9371734060285348,90.2112004280082402]},"#ddee44":{"lch":[90.2933822328294582,92.028546743238266,92.808164678773025],"luv":[90.2933822328294582,-4.50867173729536486,91.9180357429253689],"rgb":[0.866666666666666696,0.933333333333333348,0.266666666666666663],"xyz":[0.614346019098462426,0.76938676555858132,0.170833823241197363],"hpluv":[92.808164678773025,428.602609406071736,90.2933822328294582],"hsluv":[92.808164678773025,91.2305485856041827,90.2933822328294582]},"#ddee55":{"lch":[90.4030992965535,87.3081168904988658,93.1158428735316477],"luv":[90.4030992965535,-4.74562541158387852,87.1790474507375137],"rgb":[0.866666666666666696,0.933333333333333348,0.333333333333333315],"xyz":[0.620308433137824355,0.77177173117432607,0.202235870515171279],"hpluv":[93.1158428735316477,411.63119840797242,90.4030992965535],"hsluv":[93.1158428735316477,86.365058197250562,90.4030992965535]},"#ddee66":{"lch":[90.5423480313319828,81.4363754503924,93.5488244177654451],"luv":[90.5423480313319828,-5.04083628618753,81.2802141731499717],"rgb":[0.866666666666666696,0.933333333333333348,0.4],"xyz":[0.627893428911332596,0.774805729483729388,0.242183514922315241],"hpluv":[93.5488244177654451,390.03815237863023,90.5423480313319828],"hsluv":[93.5488244177654451,80.3228278296054583,90.5423480313319828]},"#ddee77":{"lch":[90.7128424721769449,74.4235139877598613,94.1564113073248],"luv":[90.7128424721769449,-5.39417557361030209,74.2277731322134855],"rgb":[0.866666666666666696,0.933333333333333348,0.466666666666666674],"xyz":[0.637207441931534446,0.77853133469181024,0.291237316828713122],"hpluv":[94.1564113073248,363.492124647987794,90.7128424721769449],"hsluv":[94.1564113073248,73.1200108954656116,90.7128424721769449]},"#ddee88":{"lch":[90.9160566530372449,66.3104835404903099,95.0215233218939801],"luv":[90.9160566530372449,-5.80415396856009735,66.0559764448523197],"rgb":[0.866666666666666696,0.933333333333333348,0.533333333333333326],"xyz":[0.648347859033478358,0.782987501532587782,0.349910180232285317],"hpluv":[95.0215233218939801,331.65301907995223,90.9160566530372449],"hsluv":[95.0215233218939801,64.803658473982523,90.9160566530372449]},"#ddee99":{"lch":[91.1532518637430798,57.1683554138076389,96.2947128608995513],"luv":[91.1532518637430798,-6.26808654843775237,56.8236918172404799],"rgb":[0.866666666666666696,0.933333333333333348,0.6],"xyz":[0.661404823142551,0.788210287176217,0.418676857873403252],"hpluv":[96.2947128608995513,294.152965661212647,91.1532518637430798],"hsluv":[96.2947128608995513,55.4479539090275679,91.1532518637430798]},"#ddeeaa":{"lch":[91.4254953447680805,47.1012792006961263,98.2790075719046712],"luv":[91.4254953447680805,-6.78228473243696595,46.6104185365255219],"rgb":[0.866666666666666696,0.933333333333333348,0.66666666666666663],"xyz":[0.676462516107803613,0.794233364362318062,0.497980707490401797],"hpluv":[98.2790075719046712,250.593114601078071,91.4254953447680805],"hsluv":[98.2790075719046712,45.1497304611624699,91.4254953447680805]},"#ddeebb":{"lch":[91.7336739482950634,36.2629153409390739,101.681625346389353],"luv":[91.7336739482950634,-7.34227032126066,35.5118303605101318],"rgb":[0.866666666666666696,0.933333333333333348,0.733333333333333282],"xyz":[0.693600108215140176,0.80108840120525282,0.588238692589043599],"hpluv":[101.681625346389353,200.613962446551909,91.7336739482950634],"hsluv":[101.681625346389353,34.0234190840686495,91.7336739482950634]},"#ddeecc":{"lch":[92.0785048140775189,24.9340669502590622,108.575873850927678],"luv":[92.0785048140775189,-7.94300120518182506,23.6350677285782567],"rgb":[0.866666666666666696,0.933333333333333348,0.8],"xyz":[0.712892483658861931,0.808805351382741677,0.689845203259313755],"hpluv":[108.575873850927678,144.339382081965653,92.0785048140775189],"hsluv":[108.575873850927678,22.1956929245148693,92.0785048140775189]},"#ddeedd":{"lch":[92.4605443140240908,14.0242187757329084,127.71501294922345],"luv":[92.4605443140240908,-8.57909621466854766,11.0940443666446207],"rgb":[0.866666666666666696,0.933333333333333348,0.866666666666666696],"xyz":[0.73441080920949553,0.817412681602995184,0.803175051159319753],"hpluv":[127.71501294922345,85.5555802205660854,92.4605443140240908],"hsluv":[127.71501294922345,19.0167034911391681,92.4605443140240908]},"#ddeeee":{"lch":[92.8801960589335636,9.45784403502816851,192.177050630058346],"luv":[92.8801960589335636,-9.24504689815110403,-1.99497409554724747],"rgb":[0.866666666666666696,0.933333333333333348,0.933333333333333348],"xyz":[0.758222989475670239,0.826937553709465201,0.928585867227843],"hpluv":[192.177050630058346,61.3009405779386327,92.8801960589335636],"hsluv":[192.177050630058346,16.5065503962475049,92.8801960589335636]},"#ddeeff":{"lch":[93.3377184761608305,18.4254994321377019,237.36941304521946],"luv":[93.3377184761608305,-9.93540601395951306,-15.5173044263971267],"rgb":[0.866666666666666696,0.933333333333333348,1],"xyz":[0.78439403788550166,0.837405973073397925,1.06642005551962482],"hpluv":[237.36941304521946,128.083838047846456,93.3377184761608305],"hsluv":[237.36941304521946,99.9999999999860592,93.3377184761608305]},"#667700":{"lch":[46.9985837429297462,53.5023535392226,97.7743932102929705],"luv":[46.9985837429297462,-7.23741162388150272,53.0105810873873509],"rgb":[0.4,0.466666666666666674,0],"xyz":[0.12075904236398749,0.160183725889588319,0.0245569097840955056],"hpluv":[97.7743932102929705,144.453291553004675,46.9985837429297462],"hsluv":[97.7743932102929705,100.000000000002416,46.9985837429297462]},"#667711":{"lch":[47.0515894602548315,51.4525286527524344,98.1592061252685681],"luv":[47.0515894602548315,-7.3023584206057679,50.9317019768564],"rgb":[0.4,0.466666666666666674,0.0666666666666666657],"xyz":[0.121770707863624608,0.160588392089443172,0.0298850147488511353],"hpluv":[98.1592061252685681,138.762383385982389,47.0515894602548315],"hsluv":[98.1592061252685681,95.8888552433840573,47.0515894602548315]},"#667722":{"lch":[47.1496128779850068,47.7434140964333835,98.9413563019921],"luv":[47.1496128779850068,-7.4204465613794337,47.1632331632727],"rgb":[0.4,0.466666666666666674,0.133333333333333331],"xyz":[0.123646066002101637,0.161338535344834,0.0397619009448303348],"hpluv":[98.9413563019921,128.491579290861381,47.1496128779850068],"hsluv":[98.9413563019921,88.4562635009272071,47.1496128779850068]},"#667733":{"lch":[47.3103471969426579,41.884713336750373,100.466311561708949],"luv":[47.3103471969426579,-7.6086666810921777,41.1878307590699961],"rgb":[0.4,0.466666666666666674,0.2],"xyz":[0.126733816734559357,0.162573635637817099,0.0560240548024414781],"hpluv":[100.466311561708949,112.341117260385403,47.3103471969426579],"hsluv":[100.466311561708949,76.7252257071794,47.3103471969426579]},"#667744":{"lch":[47.5409803755201068,33.9506682862991624,103.399633201782777],"luv":[47.5409803755201068,-7.86778476785512915,33.0264415269496823],"rgb":[0.4,0.466666666666666674,0.266666666666666663],"xyz":[0.131191811978778244,0.164356833735504693,0.0795028297553281166],"hpluv":[103.399633201782777,90.6190532449782324,47.5409803755201068],"hsluv":[103.399633201782777,60.8161329795325543,47.5409803755201068]},"#667755":{"lch":[47.8468512336942808,24.3055974565694441,109.700167733355244],"luv":[47.8468512336942808,-8.19336864569332768,22.8829800934354815],"rgb":[0.4,0.466666666666666674,0.333333333333333315],"xyz":[0.137154226018140257,0.166741799351249526,0.110904877029302018],"hpluv":[109.700167733355244,64.4602914823941262,47.8468512336942808],"hsluv":[109.700167733355244,41.23982633361328,47.8468512336942808]},"#667766":{"lch":[48.2317738399223543,14.0211946941261125,127.715012949232488],"luv":[48.2317738399223543,-8.57724628010491408,11.0916521267580634],"rgb":[0.4,0.466666666666666674,0.4],"xyz":[0.144739221791648415,0.169775797660652816,0.15085252143644598],"hpluv":[127.715012949232488,36.8885098590324958,48.2317738399223543],"hsluv":[127.715012949232488,18.7828263722028552,48.2317738399223543]},"#667777":{"lch":[48.6982180758881356,9.21652694043341,192.177050630059739],"luv":[48.6982180758881356,-9.00915932709454736,-1.94407228846053126],"rgb":[0.4,0.466666666666666674,0.466666666666666674],"xyz":[0.154053234811850348,0.17350140286873364,0.199906323342843889],"hpluv":[192.177050630059739,24.0156061835451808,48.6982180758881356],"hsluv":[192.177050630059739,23.9216020554503501,48.6982180758881356]},"#667788":{"lch":[49.2474401880289605,18.4334880243097601,239.056580638027469],"luv":[49.2474401880289605,-9.47834019220879398,-15.8099509152663327],"rgb":[0.4,0.466666666666666674,0.533333333333333326],"xyz":[0.165193651913794148,0.177957569709511237,0.258579186746416056],"hpluv":[239.056580638027469,47.4966726259429564,49.2474401880289605],"hsluv":[239.056580638027469,29.274081353383373,49.2474401880289605]},"#667799":{"lch":[49.8796002039077422,31.7351192214463786,251.680675473596239],"luv":[49.8796002039077422,-9.97474964621831,-30.126768188683684],"rgb":[0.4,0.466666666666666674,0.6],"xyz":[0.178250616022866876,0.183180355353140395,0.327345864387534],"hpluv":[251.680675473596239,80.734004933806176,49.8796002039077422],"hsluv":[251.680675473596239,34.661761655835349,49.8796002039077422]},"#6677aa":{"lch":[50.5938810850088174,45.7960576637453798,256.758518919433186],"luv":[50.5938810850088174,-10.4898463625666416,-44.5784928057335676],"rgb":[0.4,0.466666666666666674,0.66666666666666663],"xyz":[0.193308308988119404,0.18920343253924149,0.406649714004532592],"hpluv":[256.758518919433186,114.860161977636537,50.5938810850088174],"hsluv":[256.758518919433186,39.9381656359214858,50.5938810850088174]},"#6677bb":{"lch":[51.388614147457119,59.9444468574027738,259.409682348511467],"luv":[51.388614147457119,-11.0169047239158306,-58.9233783768730106],"rgb":[0.4,0.466666666666666674,0.733333333333333282],"xyz":[0.210445901095456078,0.196058469382176248,0.496907699103174338],"hpluv":[259.409682348511467,148.020333314730891,51.388614147457119],"hsluv":[259.409682348511467,49.2101017344363356,51.388614147457119]},"#6677cc":{"lch":[52.2614099661724225,73.9004259234932306,261.00752312302825],"luv":[52.2614099661724225,-11.5509895931656974,-72.9921063615257566],"rgb":[0.4,0.466666666666666674,0.8],"xyz":[0.229738276539177805,0.20377541955966505,0.598514209773444494],"hpluv":[261.00752312302825,179.434168102703751,52.2614099661724225],"hsluv":[261.00752312302825,61.6581230008595327,52.2614099661724225]},"#6677dd":{"lch":[53.2092913421323,87.5170631601914266,262.060353074135],"luv":[53.2092913421323,-12.0887245225321198,-86.6781349799548],"rgb":[0.4,0.466666666666666674,0.866666666666666696],"xyz":[0.251256602089811376,0.212382749779918584,0.711844057673450492],"hpluv":[262.060353074135,208.710638687620559,53.2092913421323],"hsluv":[262.060353074135,74.2459971892304083,53.2092913421323]},"#6677ee":{"lch":[54.2288239257805884,100.719531231348427,262.797438231409785],"luv":[54.2288239257805884,-12.6279723106459851,-99.9247631309883531],"rgb":[0.4,0.466666666666666674,0.933333333333333348],"xyz":[0.275068782355986086,0.221907621886388629,0.837254873741973715],"hpluv":[262.797438231409785,235.68005803746027,54.2288239257805884],"hsluv":[262.797438231409785,87.0042080584200193,54.2288239257805884]},"#6677ff":{"lch":[55.3162401631211793,113.47857319487936,263.336661992011841],"luv":[55.3162401631211793,-13.1675101506557386,-112.712036849566218],"rgb":[0.4,0.466666666666666674,1],"xyz":[0.301239830765817507,0.232376041250321325,0.97508906203375556],"hpluv":[263.336661992011841,260.315806593762318,55.3162401631211793],"hsluv":[263.336661992011841,99.999999999999,55.3162401631211793]},"#ddff00":{"lch":[94.69236188875891,107.73563953931891,97.6513944636985],"luv":[94.69236188875891,-14.3445112693176284,106.77641604488548],"rgb":[0.866666666666666696,1,0],"xyz":[0.65576562191334542,0.868918402572014,0.13317202741318887],"hpluv":[97.6513944636985,949.977135711580445,94.69236188875891],"hsluv":[97.6513944636985,100.000000000002302,94.69236188875891]},"#ddff11":{"lch":[94.7095428290633237,106.965998536257018,97.7198690947758308],"luv":[94.7095428290633237,-14.3687245726656343,105.996531061225838],"rgb":[0.866666666666666696,1,0.0666666666666666657],"xyz":[0.65677728741298258,0.869323068771868934,0.138500132377944507],"hpluv":[97.7198690947758308,946.378692368412885,94.7095428290633237],"hsluv":[97.7198690947758308,99.9999999999867697,94.7095428290633237]},"#ddff22":{"lch":[94.7413776147606086,105.545731309599958,97.8489007917202827],"luv":[94.7413776147606086,-14.4134418215914106,104.556941866783148],"rgb":[0.866666666666666696,1,0.133333333333333331],"xyz":[0.658652645551459526,0.870073212027259735,0.148377018573923686],"hpluv":[97.8489007917202827,939.695870823628752,94.7413776147606086],"hsluv":[97.8489007917202827,99.9999999999872,94.7413776147606086]},"#ddff33":{"lch":[94.7937532988665197,103.225383790498825,98.0674915546983],"luv":[94.7937532988665197,-14.4865977424562669,102.203807876928138],"rgb":[0.866666666666666696,1,0.2],"xyz":[0.661740396283917343,0.871308312320242861,0.164639172431534836],"hpluv":[98.0674915546983,928.656435156239354,94.7937532988665197],"hsluv":[98.0674915546983,99.9999999999868834,94.7937532988665197]},"#ddff44":{"lch":[94.8692843830354491,99.9146373114600692,98.397314807396512],"luv":[94.8692843830354491,-14.5912004882884094,98.8434702820129729],"rgb":[0.866666666666666696,1,0.266666666666666663],"xyz":[0.666198391528136202,0.873091510417930428,0.188117947384421474],"hpluv":[98.397314807396512,912.633071017653265,94.8692843830354491],"hsluv":[98.397314807396512,99.9999999999866276,94.8692843830354491]},"#ddff55":{"lch":[94.9701440016210654,95.558111661139634,98.8668834316730738],"luv":[94.9701440016210654,-14.7292629682473848,94.4161083536863828],"rgb":[0.866666666666666696,1,0.333333333333333315],"xyz":[0.672160805567498132,0.875476476033675177,0.21951999465839539],"hpluv":[98.8668834316730738,891.031026100052486,94.9701440016210654],"hsluv":[98.8668834316730738,99.9999999999861586,94.9701440016210654]},"#ddff66":{"lch":[95.0981866754888,90.1320341607989235,99.5166683548804798],"luv":[95.0981866754888,-14.9019372161492765,88.8915960547979438],"rgb":[0.866666666666666696,1,0.4],"xyz":[0.679745801341006373,0.878510474343078496,0.259467639065539379],"hpluv":[99.5166683548804798,863.234823568518,95.0981866754888],"hsluv":[99.5166683548804798,99.9999999999856186,95.0981866754888]},"#ddff77":{"lch":[95.2550143462764396,83.6430269583913599,100.407261812829162],"luv":[95.2550143462764396,-15.1095945804084604,82.2669806810598487],"rgb":[0.866666666666666696,1,0.466666666666666674],"xyz":[0.689059814361208223,0.882236079551159347,0.308521440971937233],"hpluv":[100.407261812829162,828.556184265804632,95.2550143462764396],"hsluv":[100.407261812829162,99.9999999999855476,95.2550143462764396]},"#ddff88":{"lch":[95.4420158908659175,76.1281736437493,101.633961649281417],"luv":[95.4420158908659175,-15.3518949618923237,74.5641880758576434],"rgb":[0.866666666666666696,1,0.533333333333333326],"xyz":[0.700200231463152134,0.886692246391936889,0.367194304375509428],"hpluv":[101.633961649281417,786.17501332264635,95.4420158908659175],"hsluv":[101.633961649281417,99.9999999999848512,95.4420158908659175]},"#ddff99":{"lch":[95.6603925662724208,67.6570848719276086,103.355147801887099],"luv":[95.6603925662724208,-15.6278614338241617,65.8274341013866859],"rgb":[0.866666666666666696,1,0.6],"xyz":[0.713257195572224778,0.891915032035566102,0.435960982016627363],"hpluv":[103.355147801887099,735.074270676232231,95.6603925662724208],"hsluv":[103.355147801887099,99.9999999999844107,95.6603925662724208]},"#ddffaa":{"lch":[95.9111754000973775,58.338925144698,105.852499131344544],"luv":[95.9111754000973775,-15.935965587620279,56.1201852084333268],"rgb":[0.866666666666666696,1,0.66666666666666663],"xyz":[0.72831488853747739,0.897938109221667169,0.515264831633625908],"hpluv":[105.852499131344544,673.992295850936557,95.9111754000973775],"hsluv":[105.852499131344544,99.9999999999831886,95.9111754000973775]},"#ddffbb":{"lch":[96.1952377631310185,48.3433070572267596,109.672211431084662],"luv":[96.1952377631310185,-16.2742233848326485,45.5216980180866813],"rgb":[0.866666666666666696,1,0.733333333333333282],"xyz":[0.745452480644814,0.904793146064601927,0.60552281673226771],"hpluv":[109.672211431084662,601.502194015230771,96.1952377631310185],"hsluv":[109.672211431084662,99.9999999999821654,96.1952377631310185]},"#ddffcc":{"lch":[96.513305005727517,37.9644197829535202,115.996292551248089],"luv":[96.513305005727517,-16.6402982513575566,34.1232712904577653],"rgb":[0.866666666666666696,1,0.8],"xyz":[0.764744856088535707,0.912510096242090785,0.707129327402537866],"hpluv":[115.996292551248089,516.693096965009204,96.513305005727517],"hsluv":[115.996292551248089,99.9999999999804885,96.513305005727517]},"#ddffdd":{"lch":[96.8659623148576,27.841508205801528,127.715012949232161],"luv":[96.8659623148576,-17.0316066426751398,22.0243945284064],"rgb":[0.866666666666666696,1,0.866666666666666696],"xyz":[0.786263181639169306,0.921117426462344291,0.820459175302543864],"hpluv":[127.715012949232161,422.676993554754517,96.8659623148576],"hsluv":[127.715012949232161,99.9999999999786411,96.8659623148576]},"#ddffee":{"lch":[97.2536615310726802,19.7831433293950418,151.864226334417424],"luv":[97.2536615310726802,-17.4454209009420502,9.32898974060759478],"rgb":[0.866666666666666696,1,0.933333333333333348],"xyz":[0.810075361905344,0.930642298568814308,0.945869991371067087],"hpluv":[151.864226334417424,343.73229759561508,97.2536615310726802],"hsluv":[151.864226334417424,99.9999999999752,97.2536615310726802]},"#ddffff":{"lch":[97.6767274082888406,18.2904922799610645,192.177050630059568],"luv":[97.6767274082888406,-17.878964623675607,-3.85807359036494368],"rgb":[0.866666666666666696,1,1],"xyz":[0.836246410315175437,0.941110717932747,1.08370417966284882],"hpluv":[192.177050630059568,376.852754928906336,97.6767274082888406],"hsluv":[192.177050630059568,99.9999999999715072,97.6767274082888406]},"#668800":{"lch":[52.32310792684153,62.4331707825390509,105.73052795354684],"luv":[52.32310792684153,-16.9264656143939405,60.0948881001240167],"rgb":[0.4,0.533333333333333326,0],"xyz":[0.142831412088957943,0.204328465339529863,0.0319143663590854554],"hpluv":[105.73052795354684,151.412310196323318,52.32310792684153],"hsluv":[105.73052795354684,100.000000000002359,52.32310792684153]},"#668811":{"lch":[52.3681821172622222,60.6739112189649603,106.201766876928076],"luv":[52.3681821172622222,-16.9292783492562116,58.26425179456308],"rgb":[0.4,0.533333333333333326,0.0666666666666666657],"xyz":[0.143843077588595075,0.204733131539384716,0.0372424713238410851],"hpluv":[106.201766876928076,147.019120365759306,52.3681821172622222],"hsluv":[106.201766876928076,96.7617570127925859,52.3681821172622222]},"#668822":{"lch":[52.4515808002199,57.4815115963739842,107.134347730867304],"luv":[52.4515808002199,-16.9348150675510247,54.9302850350507796],"rgb":[0.4,0.533333333333333326,0.133333333333333331],"xyz":[0.145718435727072076,0.205483274794775544,0.0471193575198202846],"hpluv":[107.134347730867304,139.062145386582984,52.4515808002199],"hsluv":[107.134347730867304,90.8761910280814647,52.4515808002199]},"#668833":{"lch":[52.5884544541714121,52.4173031151438593,108.860637572968898],"luv":[52.5884544541714121,-16.9448041098426323,49.6028958786070291],"rgb":[0.4,0.533333333333333326,0.2],"xyz":[0.14880618645952981,0.206718375087758643,0.0633815113774314209],"hpluv":[108.860637572968898,126.480505252334424,52.5884544541714121],"hsluv":[108.860637572968898,81.504484256448066,52.5884544541714121]},"#668844":{"lch":[52.7851097594501937,45.5231929703366234,111.874794573011059],"luv":[52.7851097594501937,-16.9610118856818559,42.2455343678863215],"rgb":[0.4,0.533333333333333326,0.266666666666666663],"xyz":[0.153264181703748698,0.208501573185446237,0.0868602863303180595],"hpluv":[111.874794573011059,109.436101408621766,52.7851097594501937],"hsluv":[111.874794573011059,68.6312430201703734,52.7851097594501937]},"#668855":{"lch":[53.0463844713544859,37.0894540992544819,117.255878513522262],"luv":[53.0463844713544859,-16.9856764955971045,32.9714179156375593],"rgb":[0.4,0.533333333333333326,0.333333333333333315],"xyz":[0.15922659574311071,0.21088653880119107,0.118262333604291975],"hpluv":[117.255878513522262,88.7225425584692715,53.0463844713544859],"hsluv":[117.255878513522262,52.5261258187504225,53.0463844713544859]},"#668866":{"lch":[53.3759296841588906,27.8248149657310222,127.715012949236794],"luv":[53.3759296841588906,-17.0213948144824521,22.0111891193247189],"rgb":[0.4,0.533333333333333326,0.4],"xyz":[0.166811591516618868,0.213920537110594361,0.158209978011435937],"hpluv":[127.715012949236794,66.1494380276081415,53.3759296841588906],"hsluv":[127.715012949236794,33.681854155652033,53.3759296841588906]},"#668877":{"lch":[53.7763606180623839,19.6211535767711887,150.461713858693599],"luv":[53.7763606180623839,-17.0709226847205855,9.67332757511772101],"rgb":[0.4,0.533333333333333326,0.466666666666666674],"xyz":[0.176125604536820801,0.217646142318675184,0.207263779917833846],"hpluv":[150.461713858693599,46.2990901048939207,53.7763606180623839],"hsluv":[150.461713858693599,37.1484166060608132,53.7763606180623839]},"#668888":{"lch":[54.2493559855519436,17.5313913512660982,192.17705063006045],"luv":[54.2493559855519436,-17.1369431164247104,-3.69795393909545],"rgb":[0.4,0.533333333333333326,0.533333333333333326],"xyz":[0.187266021638764601,0.222102309159452782,0.265936643321406],"hpluv":[192.17705063006045,41.0072951616226788,54.2493559855519436],"hsluv":[192.17705063006045,40.8467805779917228,54.2493559855519436]},"#668899":{"lch":[54.7957384612029728,24.7393499057112685,225.882505108050964],"luv":[54.7957384612029728,-17.2218541013304964,-17.7607200042594577],"rgb":[0.4,0.533333333333333326,0.6],"xyz":[0.200322985747837329,0.22732509480308194,0.33470332096252392],"hpluv":[225.882505108050964,57.2902642666713859,54.7957384612029728],"hsluv":[225.882505108050964,44.6631352998217963,54.7957384612029728]},"#6688aa":{"lch":[55.4155508256813363,36.5699037808867828,241.717344836465486],"luv":[55.4155508256813363,-17.3276119763631087,-32.2042190673817643],"rgb":[0.4,0.533333333333333326,0.66666666666666663],"xyz":[0.215380678713089857,0.233348171989183034,0.414007170579522521],"hpluv":[241.717344836465486,83.7397171719788389,55.4155508256813363],"hsluv":[241.717344836465486,48.4952118884804193,55.4155508256813363]},"#6688bb":{"lch":[56.1081340603271457,49.918102431374308,249.531909378681803],"luv":[56.1081340603271457,-17.4556451944419777,-46.7666270025424495],"rgb":[0.4,0.533333333333333326,0.733333333333333282],"xyz":[0.232518270820426531,0.240203208832117793,0.504265155678164323],"hpluv":[249.531909378681803,112.8941838879785,56.1081340603271457],"hsluv":[249.531909378681803,52.2580147864780216,56.1081340603271457]},"#6688cc":{"lch":[56.8722093096567107,63.7230017864969795,253.960340799970709],"luv":[56.8722093096567107,-17.6068348542363715,-61.2423082770199372],"rgb":[0.4,0.533333333333333326,0.8],"xyz":[0.251810646264148286,0.247920159009606594,0.605871666348434479],"hpluv":[253.960340799970709,142.178999158492672,56.8722093096567107],"hsluv":[253.960340799970709,56.6402695601832349,56.8722093096567107]},"#6688dd":{"lch":[57.7059632125805564,77.5471512008463719,256.744147904563079],"luv":[57.7059632125805564,-17.7815469636593271,-75.4809727477468755],"rgb":[0.4,0.533333333333333326,0.866666666666666696],"xyz":[0.273328971814781774,0.256527489229860128,0.719201514248440477],"hpluv":[256.744147904563079,170.523595036459966,57.7059632125805564],"hsluv":[256.744147904563079,70.7529337108087475,57.7059632125805564]},"#6688ee":{"lch":[58.6071348177704721,91.1720868217648501,258.626369492504523],"luv":[58.6071348177704721,-17.979697586292076,-89.3816529839368599],"rgb":[0.4,0.533333333333333326,0.933333333333333348],"xyz":[0.297141152080956539,0.266052361336330145,0.8446123303169637],"hpluv":[258.626369492504523,197.40162879311913,58.6071348177704721],"hsluv":[258.626369492504523,85.1920367601911295,58.6071348177704721]},"#6688ff":{"lch":[59.57310174908622,104.481663139573541,259.967822360236937],"luv":[59.57310174908622,-18.2008336002305597,-102.884146439906075],"rgb":[0.4,0.533333333333333326,1],"xyz":[0.323312200490787904,0.276520780700262869,0.982446518608745434],"hpluv":[259.967822360236937,222.550815911907222,59.57310174908622],"hsluv":[259.967822360236937,99.9999999999987352,59.57310174908622]},"#669900":{"lch":[57.6618978033021961,71.9113437902946373,111.072092359847389],"luv":[57.6618978033021961,-25.8551729794803826,67.1025438856612624],"rgb":[0.4,0.6,0],"xyz":[0.168701012541425444,0.25606766624446553,0.0405375665099077104],"hpluv":[111.072092359847389,158.251486754186431,57.6618978033021961],"hsluv":[111.072092359847389,100.000000000002444,57.6618978033021961]},"#669911":{"lch":[57.7006802499588929,70.3894808316696867,111.521292839157113],"luv":[57.7006802499588929,-25.8221679479897865,65.4820177928093727],"rgb":[0.4,0.6,0.0666666666666666657],"xyz":[0.169712678041062576,0.256472332444320383,0.0458656714746633401],"hpluv":[111.521292839157113,154.798288730060023,57.7006802499588929],"hsluv":[111.521292839157113,97.4070268725327821,57.7006802499588929]},"#669922":{"lch":[57.7724648019637499,67.6202459496272326,112.394641072548438],"luv":[57.7724648019637499,-25.7622250908158499,62.5204400229094404],"rgb":[0.4,0.6,0.133333333333333331],"xyz":[0.171588036179539577,0.257222475699711184,0.0557425576706425396],"hpluv":[112.394641072548438,148.523500329687067,57.7724648019637499],"hsluv":[112.394641072548438,92.6757293451634183,57.7724648019637499]},"#669933":{"lch":[57.8903535973237524,63.206621217633213,113.958803391015238],"luv":[57.8903535973237524,-25.6669247559924365,57.7605915769530824],"rgb":[0.4,0.6,0.2],"xyz":[0.174675786911997311,0.258457575992694311,0.0720047115282536898],"hpluv":[113.958803391015238,138.546544821103367,57.8903535973237524],"hsluv":[113.958803391015238,85.092275495173979,57.8903535973237524]},"#669944":{"lch":[58.0598969225296457,57.1535921702901888,116.538768682419729],"luv":[58.0598969225296457,-25.5364113217858204,51.131446241744662],"rgb":[0.4,0.6,0.266666666666666663],"xyz":[0.179133782156216198,0.260240774090381877,0.0954834864811403283],"hpluv":[116.538768682419729,124.912700512594284,58.0598969225296457],"hsluv":[116.538768682419729,74.5746503624431796,58.0598969225296457]},"#669955":{"lch":[58.2854489010818355,49.6561447471622515,120.7300937454592],"luv":[58.2854489010818355,-25.3740154630121886,42.6836274282534163],"rgb":[0.4,0.6,0.333333333333333315],"xyz":[0.185096196195578211,0.262625739706126737,0.126885533755114244],"hpluv":[120.7300937454592,108.106592630407334,58.2854489010818355],"hsluv":[120.7300937454592,61.2495338993745833,58.2854489010818355]},"#669966":{"lch":[58.5704165792398754,41.1710358166226,127.715012949238272],"luv":[58.5704165792398754,-25.1857364161826034,32.5688942303571949],"rgb":[0.4,0.6,0.4],"xyz":[0.192681191969086368,0.265659738015530056,0.166833178162258178],"hpluv":[127.715012949238272,89.1975256314243552,58.5704165792398754],"hsluv":[127.715012949238272,45.4174387408809324,58.5704165792398754]},"#669977":{"lch":[58.9173908027988489,32.643461159974926,139.926834832055846],"luv":[58.9173908027988489,-24.9795271581232114,21.0147276798767138],"rgb":[0.4,0.6,0.466666666666666674],"xyz":[0.201995204989288302,0.269385343223610851,0.215886980068656087],"hpluv":[139.926834832055846,70.3059403526018514,58.9173908027988489],"hsluv":[139.926834832055846,47.7876005322921813,58.9173908027988489]},"#669988":{"lch":[59.328227692638464,26.116847909850911,161.480821243886396],"luv":[59.328227692638464,-24.7644493579715288,8.29528738156475498],"rgb":[0.4,0.6,0.533333333333333326],"xyz":[0.213135622091232102,0.273841510064388449,0.274559843472228282],"hpluv":[161.480821243886396,55.8597144892801083,59.328227692638464],"hsluv":[161.480821243886396,50.3655359274122105,59.328227692638464]},"#669999":{"lch":[59.8041090330486043,25.1148951486962346,192.17705063006062],"luv":[59.8041090330486043,-24.5498215694726056,-5.29756729424584893],"rgb":[0.4,0.6,0.6],"xyz":[0.226192586200304829,0.279064295708017607,0.343326521113346161],"hpluv":[192.17705063006062,53.2892577697712042,59.8041090330486043],"hsluv":[192.17705063006062,53.0806679813151447,59.8041090330486043]},"#6699aa":{"lch":[60.3455948386344119,31.1785657150768039,218.6653689057203],"luv":[60.3455948386344119,-24.3444790905776323,-19.4794583563761137],"rgb":[0.4,0.6,0.66666666666666663],"xyz":[0.241250279165557358,0.285087372894118729,0.422630370730344762],"hpluv":[218.6653689057203,65.5616517705923911,60.3455948386344119],"hsluv":[218.6653689057203,55.8649153078387357,60.3455948386344119]},"#6699bb":{"lch":[60.9526745558420231,41.7013653705125407,234.60099737489486],"luv":[60.9526745558420231,-24.1562241025528444,-33.9923625373734168],"rgb":[0.4,0.6,0.733333333333333282],"xyz":[0.258387871272894032,0.291942409737053488,0.512888355828986509],"hpluv":[234.60099737489486,86.8154127469588,60.9526745558420231],"hsluv":[234.60099737489486,58.6571249967150123,60.9526745558420231]},"#6699cc":{"lch":[61.6248198105828493,54.2138016672169485,243.734276496040906],"luv":[61.6248198105828493,-23.9914938552849968,-48.6162988492970101],"rgb":[0.4,0.6,0.8],"xyz":[0.277680246716615731,0.299659359914542289,0.614494866499256664],"hpluv":[243.734276496040906,111.633239234030881,61.6248198105828493],"hsluv":[243.734276496040906,61.4057918386087067,61.6248198105828493]},"#6699dd":{"lch":[62.361039595623,67.5283063616342361,249.312993820438976],"luv":[62.361039595623,-23.8552311607989473,-63.1743627299522288],"rgb":[0.4,0.6,0.866666666666666696],"xyz":[0.29919857226724933,0.308266690134795796,0.727824714399262662],"hpluv":[249.312993820438976,137.407942777337979,62.361039595623],"hsluv":[249.312993820438976,66.62550454031512,62.361039595623]},"#6699ee":{"lch":[63.1599376048740453,81.0888167917790526,252.968345076420633],"luv":[63.1599376048740453,-23.7509145884581336,-77.5325110189427278],"rgb":[0.4,0.6,0.933333333333333348],"xyz":[0.323010752533424039,0.317791562241265813,0.853235530467785885],"hpluv":[252.968345076420633,162.914071535813093,63.1599376048740453],"hsluv":[252.968345076420633,83.0301883133999183,63.1599376048740453]},"#6699ff":{"lch":[64.0197707514621186,94.6074384193794771,255.504450424431923],"luv":[64.0197707514621186,-23.6806962224400728,-91.5958079318982499],"rgb":[0.4,0.6,1],"xyz":[0.34918180094325546,0.328259981605198536,0.99106971875956773],"hpluv":[255.504450424431923,187.521252715437782,64.0197707514621186],"hsluv":[255.504450424431923,99.9999999999985079,64.0197707514621186]},"#550000":{"lch":[15.1243819173422267,50.8637728648741643,12.1770506300617765],"luv":[15.1243819173422267,49.7193613905117289,10.7288626130266547],"rgb":[0.333333333333333315,0,0],"xyz":[0.0374622858816120868,0.019316491157706641,0.00175604465070052949],"hpluv":[12.1770506300617765,426.746789183125202,15.1243819173422267],"hsluv":[12.1770506300617765,100.000000000002203,15.1243819173422267]},"#550011":{"lch":[15.3402258633588957,47.2707050856887108,7.4875089370669734],"luv":[15.3402258633588957,46.8676416739534929,6.15984766208174239],"rgb":[0.333333333333333315,0,0.0666666666666666657],"xyz":[0.0384739513812492051,0.0197211573575614939,0.00708414961545616138],"hpluv":[7.4875089370669734,391.020613457768548,15.3402258633588957],"hsluv":[7.4875089370669734,99.9999999999966889,15.3402258633588957]},"#550022":{"lch":[15.7326592199860933,42.4312907985821823,358.411234527054887],"luv":[15.7326592199860933,42.4149789665186745,-1.17643448760390168],"rgb":[0.333333333333333315,0,0.133333333333333331],"xyz":[0.0403493095197262272,0.0204713006129523117,0.0169610358114353557],"hpluv":[358.411234527054887,342.234221563623748,15.7326592199860933],"hsluv":[358.411234527054887,99.9999999999971578,15.7326592199860933]},"#550033":{"lch":[16.358416636328208,38.360101220613565,343.406058671947278],"luv":[16.358416636328208,36.7625096026365128,-10.9551473459637485],"rgb":[0.333333333333333315,0,0.2],"xyz":[0.0434370602521839677,0.0217064009059354281,0.0332231896690465],"hpluv":[343.406058671947278,297.562230749163234,16.358416636328208],"hsluv":[343.406058671947278,99.9999999999977547,16.358416636328208]},"#550044":{"lch":[17.2212923868602061,37.8614359764106112,324.728975934647224],"luv":[17.2212923868602061,30.9112016871952413,-21.8628896637516235],"rgb":[0.333333333333333315,0,0.266666666666666663],"xyz":[0.0478950554964028483,0.0234895990036230046,0.0567019646219331375],"hpluv":[324.728975934647224,278.978456842737614,17.2212923868602061],"hsluv":[324.728975934647224,99.9999999999983089,17.2212923868602061]},"#550055":{"lch":[18.3096014215038,41.7063030886972754,307.715012949243544],"luv":[18.3096014215038,25.5131777875110508,-32.9923245090298636],"rgb":[0.333333333333333315,0,0.333333333333333315],"xyz":[0.0538574695357648403,0.025874564619367834,0.0881040118959070528],"hpluv":[307.715012949243544,289.042783730483393,18.3096014215038],"hsluv":[307.715012949243544,99.9999999999988,18.3096014215038]},"#550066":{"lch":[19.6013792550641099,48.6148100748190828,295.355623011865077],"luv":[19.6013792550641099,20.818580180871372,-43.9316113733990079],"rgb":[0.333333333333333315,0,0.4],"xyz":[0.0614424653092730116,0.028908562928771149,0.128051656303051015],"hpluv":[295.355623011865077,314.717786655224245,19.6013792550641099],"hsluv":[295.355623011865077,99.9999999999992468,19.6013792550641099]},"#550077":{"lch":[21.069395574911745,57.1127554515679421,287.139622223683091],"luv":[21.069395574911745,16.83119884103942,-54.5763463493480572],"rgb":[0.333333333333333315,0,0.466666666666666674],"xyz":[0.0707564783294749311,0.0326341681368519654,0.177105458209448924],"hpluv":[287.139622223683091,343.969838941793114,21.069395574911745],"hsluv":[287.139622223683091,99.9999999999995737,21.069395574911745]},"#550088":{"lch":[22.6852054601189934,66.3294491167530822,281.703433904835379],"luv":[22.6852054601189934,13.454662288017035,-64.9505033302079084],"rgb":[0.333333333333333315,0,0.533333333333333326],"xyz":[0.0818968954314187592,0.0370903349776295563,0.235778321613021091],"hpluv":[281.703433904835379,371.024851449370942,22.6852054601189934],"hsluv":[281.703433904835379,99.9999999999998721,22.6852054601189934]},"#550099":{"lch":[24.4218644362266417,75.8503102235033424,278.01254475278904],"luv":[24.4218644362266417,10.5727682252252198,-75.1098271403773339],"rgb":[0.333333333333333315,0,0.6],"xyz":[0.0949538595404914726,0.0423131206212587208,0.304544999254138971],"hpluv":[278.01254475278904,394.110378481836165,24.4218644362266417],"hsluv":[278.01254475278904,100.000000000000071,24.4218644362266417]},"#5500aa":{"lch":[26.2553935553790794,85.4876195151354,275.424483319872081],"luv":[26.2553935553790794,8.0814629277942,-85.1047768771603614],"rgb":[0.333333333333333315,0,0.66666666666666663],"xyz":[0.110011552505744015,0.0483361978073598153,0.383848848871137571],"hpluv":[275.424483319872081,413.165469396605374,26.2553935553790794],"hsluv":[275.424483319872081,100.00000000000027,26.2553935553790794]},"#5500bb":{"lch":[28.1653177219846,95.1546470205467756,273.553022331801344],"luv":[28.1653177219846,5.89694295360029841,-94.9717479748942708],"rgb":[0.333333333333333315,0,0.733333333333333282],"xyz":[0.127149144613080661,0.0551912346502945739,0.474106833969779318],"hpluv":[273.553022331801344,428.701175528050442,28.1653177219846],"hsluv":[273.553022331801344,100.000000000000355,28.1653177219846]},"#5500cc":{"lch":[30.1346298593711452,104.80902699908826,272.162345307959299],"luv":[30.1346298593711452,3.95455850560158062,-104.734395532324456],"rgb":[0.333333333333333315,0,0.8],"xyz":[0.146441520056802388,0.0629081848277833755,0.575713344640049529],"hpluv":[272.162345307959299,441.338845171454864,30.1346298593711452],"hsluv":[272.162345307959299,100.000000000000441,30.1346298593711452]},"#5500dd":{"lch":[32.1494591091083208,114.428501102308275,271.104225820707256],"luv":[32.1494591091083208,2.20517261265448461,-114.407250986418532],"rgb":[0.333333333333333315,0,0.866666666666666696],"xyz":[0.167959845607435931,0.0715155150480369095,0.689043192540055527],"hpluv":[271.104225820707256,451.647764573950099,32.1494591091083208],"hsluv":[271.104225820707256,100.000000000000483,32.1494591091083208]},"#5500ee":{"lch":[34.1986254005705774,124.000502171291956,270.282536199645165],"luv":[34.1986254005705774,0.611467178704377612,-123.998994538754019],"rgb":[0.333333333333333315,0,0.933333333333333348],"xyz":[0.191772025873610696,0.0810403871545069404,0.81445400860857875],"hpluv":[270.282536199645165,460.101999214721616,34.1986254005705774],"hsluv":[270.282536199645165,100.000000000000597,34.1986254005705774]},"#5500ff":{"lch":[36.2731838611955055,133.517545782829444,269.6330586770423],"luv":[36.2731838611955055,-0.855085145745556,-133.514807647929],"rgb":[0.333333333333333315,0,1],"xyz":[0.217943074283442062,0.0915088065184396504,0.952288196900360595],"hpluv":[269.6330586770423,467.080772865482345,36.2731838611955055],"hsluv":[269.6330586770423,100.000000000000668,36.2731838611955055]},"#551100":{"lch":[17.1436512350983392,46.6418802884309827,16.9386517648024579],"luv":[17.1436512350983392,44.618427652544149,13.5889996193616174],"rgb":[0.333333333333333315,0.0666666666666666657,0],"xyz":[0.0394666861425404941,0.0233252916795635146,0.00242417807100998037],"hpluv":[16.9386517648024579,345.232802292268,17.1436512350983392],"hsluv":[16.9386517648024579,100.000000000002245,17.1436512350983392]},"#551111":{"lch":[17.3342210988239742,43.3325537190722372,12.1770506300618173],"luv":[17.3342210988239742,42.3575912084996133,9.14027783111198566],"rgb":[0.333333333333333315,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0404783516421776124,0.0237299578794183674,0.0077522830357656114],"hpluv":[12.1770506300618173,317.211759513802576,17.3342210988239742],"hsluv":[12.1770506300618173,74.3325474389658751,17.3342210988239742]},"#551122":{"lch":[17.681833534927847,38.7809423842287515,2.75476418742331486],"luv":[17.681833534927847,38.7361268795629599,1.86385798259144919],"rgb":[0.333333333333333315,0.0666666666666666657,0.133333333333333331],"xyz":[0.0423537097806546345,0.0244801011348091888,0.0176291692317448075],"hpluv":[2.75476418742331486,278.311009894887945,17.681833534927847],"hsluv":[2.75476418742331486,76.7057995287142234,17.681833534927847]},"#551133":{"lch":[18.2390179286851222,34.9181665436168771,346.660743506282301],"luv":[18.2390179286851222,33.9761101882180157,-8.05619582966011727],"rgb":[0.333333333333333315,0.0666666666666666657,0.2],"xyz":[0.045441460513112375,0.0257152014277923,0.0338913230893559542],"hpluv":[346.660743506282301,242.9345634355779,18.2390179286851222],"hsluv":[346.660743506282301,79.7834922439867285,18.2390179286851222]},"#551144":{"lch":[19.0128230091186055,34.7408929356053093,326.164658676814156],"luv":[19.0128230091186055,28.8572161490225767,-19.3440098762325228],"rgb":[0.333333333333333315,0.0666666666666666657,0.266666666666666663],"xyz":[0.0498994557573312555,0.0274983995254798746,0.0573700980422425927],"hpluv":[326.164658676814156,231.864199750183133,19.0128230091186055],"hsluv":[326.164658676814156,83.0221027238197706,19.0128230091186055]},"#551155":{"lch":[19.9971255718025702,39.1813209297373,307.715012949243771],"luv":[19.9971255718025702,23.9685594933690105,-30.9949038651824331],"rgb":[0.333333333333333315,0.0666666666666666657,0.333333333333333315],"xyz":[0.0558618697966932476,0.0298833651412247076,0.0887721453162165],"hpluv":[307.715012949243771,248.628452083429778,19.9971255718025702],"hsluv":[307.715012949243771,86.0178721207098391,19.9971255718025702]},"#551166":{"lch":[21.1763147828962417,46.7756191769153702,294.771362117319313],"luv":[21.1763147828962417,19.5989049109657927,-42.4716549674572263],"rgb":[0.333333333333333315,0.0666666666666666657,0.4],"xyz":[0.0634468655702014189,0.0329173634506280191,0.128719789723360456],"hpluv":[294.771362117319313,280.29057047770084,21.1763147828962417],"hsluv":[294.771362117319313,88.5810746573468464,21.1763147828962417]},"#551177":{"lch":[22.529041607596703,55.8726050260016436,286.442196236272423],"luv":[22.529041607596703,15.8146223861076685,-53.5877384405836494],"rgb":[0.333333333333333315,0.0666666666666666657,0.466666666666666674],"xyz":[0.0727608785904033384,0.0366429686587088355,0.177773591629758365],"hpluv":[286.442196236272423,314.699121073082495,22.529041607596703],"hsluv":[286.442196236272423,90.6792509168865166,22.529041607596703]},"#551188":{"lch":[24.0315326783493077,65.5523157673088548,281.05474383939486],"luv":[24.0315326783493077,12.5694476912001676,-64.3359548557037613],"rgb":[0.333333333333333315,0.0666666666666666657,0.533333333333333326],"xyz":[0.0839012956923471664,0.0410991354994864333,0.236446455033330533],"hpluv":[281.05474383939486,346.135302225987516,24.0315326783493077],"hsluv":[281.05474383939486,92.3586421581981654,24.0315326783493077]},"#551199":{"lch":[25.6600874124784752,75.409923320082811,277.450872837297311],"luv":[25.6600874124784752,9.77886091464338847,-74.7731931533810439],"rgb":[0.333333333333333315,0.0666666666666666657,0.6],"xyz":[0.0969582598014198799,0.0463219211431155908,0.30521313267444844],"hpluv":[277.450872837297311,372.914863977489176,25.6600874124784752],"hsluv":[277.450872837297311,93.6909530677945099,25.6600874124784752]},"#5511aa":{"lch":[27.3926712394503795,85.2829889480110097,274.948569823839534],"luv":[27.3926712394503795,7.3566383451248436,-84.9650991652784882],"rgb":[0.333333333333333315,0.0666666666666666657,0.66666666666666663],"xyz":[0.112015952766672422,0.0523449983292166923,0.38451698229144704],"hpluv":[274.948569823839534,395.063906765864772,27.3926712394503795],"hsluv":[274.948569823839534,94.7471527755802185,27.3926712394503795]},"#5511bb":{"lch":[29.2097366740877575,95.1102004757886732,273.151254165932869],"luv":[29.2097366740877575,5.22840137893499524,-94.9663838079847125],"rgb":[0.333333333333333315,0.0666666666666666657,0.733333333333333282],"xyz":[0.129153544874009069,0.0592000351721514509,0.474774967390088787],"hpluv":[273.151254165932869,413.179515249173164,29.2097366740877575],"hsluv":[273.151254165932869,95.5878244802283,29.2097366740877575]},"#5511cc":{"lch":[31.0944914716528729,104.870266468627406,271.822015936655589],"luv":[31.0944914716528729,3.33433100744475697,-104.81724584215],"rgb":[0.333333333333333315,0.0666666666666666657,0.8],"xyz":[0.148445920317730795,0.0669169853496402456,0.576381478060359],"hpluv":[271.822015936655589,427.964986778194486,31.0944914716528729],"hsluv":[271.822015936655589,96.2613872132177733,31.0944914716528729]},"#5511dd":{"lch":[33.0328257175950526,114.557035031638449,270.814150293263936],"luv":[33.0328257175950526,1.62775523553093748,-114.545469959022128],"rgb":[0.333333333333333315,0.0666666666666666657,0.866666666666666696],"xyz":[0.169964245868364339,0.0755243155698937796,0.689711325960365],"hpluv":[270.814150293263936,440.063516862193467,33.0328257175950526],"hsluv":[270.814150293263936,96.8053522828386832,33.0328257175950526]},"#5511ee":{"lch":[35.0130604571318926,124.169729525043778,270.033521846843314],"luv":[35.0130604571318926,0.0726475571782520396,-124.169708273213573],"rgb":[0.333333333333333315,0.0666666666666666657,0.933333333333333348],"xyz":[0.193776426134539104,0.0850491876763638244,0.815122142028888219],"hpluv":[270.033521846843314,450.012925469310176,35.0130604571318926],"hsluv":[270.033521846843314,97.2483877085506663,35.0130604571318926]},"#5511ff":{"lch":[37.0256255288684244,133.709282746677673,269.417732433602225],"luv":[37.0256255288684244,-1.35879534673770408,-133.702378317802101],"rgb":[0.333333333333333315,0.0666666666666666657,1],"xyz":[0.219947474544370469,0.0955176070402965205,0.952956330320670064],"hpluv":[269.417732433602225,458.245787382607887,37.0256255288684244],"hsluv":[269.417732433602225,99.999999999999531,37.0256255288684244]},"#552200":{"lch":[20.34436993371488,40.5799496107340403,26.5709502396200712],"luv":[20.34436993371488,36.2939416756913289,18.1516420207988389],"rgb":[0.333333333333333315,0.133333333333333331,0],"xyz":[0.0431823098773084293,0.0307565391490994891,0.0036627193159325909],"hpluv":[26.5709502396200712,253.10841584108,20.34436993371488],"hsluv":[26.5709502396200712,100.000000000002359,20.34436993371488]},"#552211":{"lch":[20.5030711832139332,37.4561676233306144,21.8926823519782197],"luv":[20.5030711832139332,34.7549742653004543,13.9662542166947503],"rgb":[0.333333333333333315,0.133333333333333331,0.0666666666666666657],"xyz":[0.0441939753769455546,0.031161205348954342,0.00899082428068822236],"hpluv":[21.8926823519782197,231.816181029165051,20.5030711832139332],"hsluv":[21.8926823519782197,79.998991439989,20.5030711832139332]},"#552222":{"lch":[20.7936643332181177,32.9512801850020054,12.1770506300619488],"luv":[20.7936643332181177,32.2098915499349658,6.95052171940595098],"rgb":[0.333333333333333315,0.133333333333333331,0.133333333333333331],"xyz":[0.0460693335154225697,0.0319113486043451633,0.0188677104766674167],"hpluv":[12.1770506300619488,201.08542320769223,20.7936643332181177],"hsluv":[12.1770506300619488,47.1205474310924046,20.7936643332181177]},"#552233":{"lch":[21.2623572347893699,28.8586800011052311,354.1745907436],"luv":[21.2623572347893699,28.7096478626609084,-2.92908364650122532],"rgb":[0.333333333333333315,0.133333333333333331,0.2],"xyz":[0.0491570842478803102,0.0331464488973282762,0.0351298643342785599],"hpluv":[354.1745907436,172.228245917758017,21.2623572347893699],"hsluv":[354.1745907436,52.8325366869496236,21.2623572347893699]},"#552244":{"lch":[21.9189283311679688,28.7014290952845421,329.54904741067952],"luv":[21.9189283311679688,24.7424491748557642,-14.5459011732283336],"rgb":[0.333333333333333315,0.133333333333333331,0.266666666666666663],"xyz":[0.0536150794920991908,0.0349296469950158492,0.0586086392871652],"hpluv":[329.54904741067952,166.158870546468904,21.9189283311679688],"hsluv":[329.54904741067952,59.1960886419386,21.9189283311679688]},"#552255":{"lch":[22.7630226511172538,33.9275210993755394,307.715012949244226],"luv":[22.7630226511172538,20.7546297224435,-26.8388157904337739],"rgb":[0.333333333333333315,0.133333333333333331,0.333333333333333315],"xyz":[0.0595774935314611828,0.0373146126107606821,0.0900106865611391138],"hpluv":[307.715012949244226,189.13048019699076,22.7630226511172538],"hsluv":[307.715012949244226,65.4333859354686211,22.7630226511172538]},"#552266":{"lch":[23.7863579144178132,42.6539605518829816,293.531429927677038],"luv":[23.7863579144178132,17.0296819355444384,-39.1069083914310625],"rgb":[0.333333333333333315,0.133333333333333331,0.4],"xyz":[0.0671624893049693611,0.0403486109201639936,0.129958330968283076],"hpluv":[293.531429927677038,227.546804006344104,23.7863579144178132],"hsluv":[293.531429927677038,71.0608597854246,23.7863579144178132]},"#552277":{"lch":[24.975052770659552,52.81712200152176,285.022920758889427],"luv":[24.975052770659552,13.6904851349353347,-51.0119495147337858],"rgb":[0.333333333333333315,0.133333333333333331,0.466666666666666674],"xyz":[0.0764765023251712805,0.04407421612824481,0.179012132874680985],"hpluv":[285.022920758889427,268.353735360872861,24.975052770659552],"hsluv":[285.022920758889427,75.8822745115455604,24.975052770659552]},"#552288":{"lch":[26.3119033569515395,63.3751525334233818,279.769698022236867],"luv":[26.3119033569515395,10.754023379801918,-62.4560720809542573],"rgb":[0.333333333333333315,0.133333333333333331,0.533333333333333326],"xyz":[0.0876169194271151086,0.0485303829690224,0.237684996278253152],"hpluv":[279.769698022236867,305.637106002952862,26.3119033569515395],"hsluv":[279.769698022236867,79.8897505498065357,26.3119033569515395]},"#552299":{"lch":[27.7783456471686065,73.9162973481211,276.357347681517297],"luv":[27.7783456471686065,8.18468635974612368,-73.4617582341209783],"rgb":[0.333333333333333315,0.133333333333333331,0.6],"xyz":[0.100673883536187808,0.0537531686126515654,0.306451673919371059],"hpluv":[276.357347681517297,337.654974874305083,27.7783456471686065],"hsluv":[276.357347681517297,83.1678045973750102,27.7783456471686065]},"#5522aa":{"lch":[29.3559430420228864,84.3037876124251824,274.032676149589577],"luv":[29.3559430420228864,5.92869585954675404,-84.0950603258353482],"rgb":[0.333333333333333315,0.133333333333333331,0.66666666666666663],"xyz":[0.115731576501440364,0.0597762457987526669,0.38575552353636966],"hpluv":[274.032676149589577,364.410076381253305,29.3559430420228864],"hsluv":[274.032676149589577,85.8312635149374898,29.3559430420228864]},"#5522bb":{"lch":[31.0273723986379082,94.5090555446981568,272.384235640696716],"luv":[31.0273723986379082,3.93164792491766635,-94.4272403734501324],"rgb":[0.333333333333333315,0.133333333333333331,0.733333333333333282],"xyz":[0.132869168608777,0.0666312826416874254,0.476013508635011406],"hpluv":[272.384235640696716,386.516244750379769,31.0273723986379082],"hsluv":[272.384235640696716,87.9935415010939437,31.0273723986379082]},"#5522cc":{"lch":[32.7769760620793207,104.54175742802569,271.176024316906762],"luv":[32.7769760620793207,2.1456208028374788,-104.519736688869415],"rgb":[0.333333333333333315,0.133333333333333331,0.8],"xyz":[0.152161544052498737,0.0743482328191762271,0.577620019305281507],"hpluv":[271.176024316906762,404.725193356887132,32.7769760620793207],"hsluv":[271.176024316906762,89.7538092894248507,32.7769760620793207]},"#5522dd":{"lch":[34.5909880118612847,114.421842397276407,270.265889656874094],"luv":[34.5909880118612847,0.530989812409553341,-114.420610326139567],"rgb":[0.333333333333333315,0.133333333333333331,0.866666666666666696],"xyz":[0.173679869603132281,0.0829555630394297611,0.690949867205287505],"hpluv":[270.265889656874094,419.744772471420788,34.5909880118612847],"hsluv":[270.265889656874094,91.1938440016712519,34.5909880118612847]},"#5522ee":{"lch":[36.4575428526747132,124.16924767107497,269.564389707514863],"luv":[36.4575428526747132,-0.94402906580191559,-124.165659005715739],"rgb":[0.333333333333333315,0.133333333333333331,0.933333333333333348],"xyz":[0.197492049869307018,0.092480435145899792,0.816360683273810728],"hpluv":[269.564389707514863,432.181309790662738,36.4575428526747132],"hsluv":[269.564389707514863,92.960018101107309,36.4575428526747132]},"#5522ff":{"lch":[38.3665568136218695,133.800754994484379,269.013084090219763],"luv":[38.3665568136218695,-2.30459494965050871,-133.780906258001124],"rgb":[0.333333333333333315,0.133333333333333331,1],"xyz":[0.223663098279138411,0.102948854509832488,0.954194871565592573],"hpluv":[269.013084090219763,442.532391911887146,38.3665568136218695],"hsluv":[269.013084090219763,99.9999999999994458,38.3665568136218695]},"#ccaa00":{"lch":[70.5858735612972623,80.4904122142546186,67.9906634155396],"luv":[70.5858735612972623,30.1643998932495876,74.6244962294604335],"rgb":[0.8,0.66666666666666663,0],"xyz":[0.392753797737474875,0.415879162748823417,0.059586129772359088],"hpluv":[67.9906634155396,144.699051457387782,70.5858735612972623],"hsluv":[67.9906634155396,100.000000000002373,70.5858735612972623]},"#ccaa11":{"lch":[70.6139482370970342,79.3332745728624786,67.7767588069511078],"luv":[70.6139482370970342,30.0051392857341135,73.4401802210267078],"rgb":[0.8,0.66666666666666663,0.0666666666666666657],"xyz":[0.393765463237112,0.416283828948678269,0.0649142347371147177],"hpluv":[67.7767588069511078,142.56214209062793,70.6139482370970342],"hsluv":[67.7767588069511078,98.4234445622979308,70.6139482370970342]},"#ccaa22":{"lch":[70.6659431154106,77.2098224605726529,67.3668792611096166],"luv":[70.6659431154106,29.7125737342128318,71.263733037795],"rgb":[0.8,0.66666666666666663,0.133333333333333331],"xyz":[0.395640821375589036,0.41703397220406907,0.0747911209330939103],"hpluv":[67.3668792611096166,138.644204697820271,70.6659431154106],"hsluv":[67.3668792611096166,95.5289103121581746,70.6659431154106]},"#ccaa33":{"lch":[70.7514162745237911,73.7740913884545,66.6515854645136159],"luv":[70.7514162745237911,29.2382542862800783,67.7328653349528622],"rgb":[0.8,0.66666666666666663,0.2],"xyz":[0.398728572108046742,0.418269072497052197,0.0910532747907050605],"hpluv":[66.6515854645136159,132.314688307412609,70.7514162745237911],"hsluv":[66.6515854645136159,90.8407422295077822,70.7514162745237911]},"#ccaa44":{"lch":[70.8745233475107597,68.9449101039795096,65.5199261400916271],"luv":[70.8745233475107597,28.5691680681362534,62.74713750555],"rgb":[0.8,0.66666666666666663,0.266666666666666663],"xyz":[0.403186567352265657,0.420052270594739763,0.114532049743591699],"hpluv":[65.5199261400916271,123.438713002021714,70.8745233475107597],"hsluv":[65.5199261400916271,84.237349466135143,70.8745233475107597]},"#ccaa55":{"lch":[71.0386313772099,62.7256766939065713,63.7915144306433959],"luv":[71.0386313772099,27.7020883768036121,56.2770363138665672],"rgb":[0.8,0.66666666666666663,0.333333333333333315],"xyz":[0.409148981391627642,0.422437236210484623,0.1459340970175656],"hpluv":[63.7915144306433959,112.044384698186093,71.0386313772099],"hsluv":[63.7915144306433959,75.6976413431368229,71.0386313772099]},"#ccaa66":{"lch":[71.2465086991263661,55.2096541299921952,61.1466680322388356],"luv":[71.2465086991263661,26.6424757380098143,48.3558103613508123],"rgb":[0.8,0.66666666666666663,0.4],"xyz":[0.416733977165135827,0.425471234519887942,0.185881741424709562],"hpluv":[61.1466680322388356,98.331070119416168,71.2465086991263661],"hsluv":[61.1466680322388356,65.2901205751262,71.2465086991263661]},"#ccaa77":{"lch":[71.5004247203994794,46.6032511345785068,56.9687004258729388],"luv":[71.5004247203994794,25.4032971934547263,39.0709035986321638],"rgb":[0.8,0.66666666666666663,0.466666666666666674],"xyz":[0.426047990185337733,0.429196839727968737,0.234935543331107471],"hpluv":[56.9687004258729388,82.707885898124573,71.5004247203994794],"hsluv":[56.9687004258729388,53.160756563752912,71.5004247203994794]},"#ccaa88":{"lch":[71.8022091544958556,37.3024926838847648,49.9478623796008847],"luv":[71.8022091544958556,24.003572993357885,28.5535364531929083],"rgb":[0.8,0.66666666666666663,0.533333333333333326],"xyz":[0.437188407287281533,0.433653006568746335,0.293608406734679639],"hpluv":[49.9478623796008847,65.9233659814751149,71.8022091544958556],"hsluv":[49.9478623796008847,39.5178130280575743,71.8022091544958556]},"#ccaa99":{"lch":[72.1532912119235874,28.1535194843350283,37.0598425499876214],"luv":[72.1532912119235874,22.4666918036374241,16.9666855559712388],"rgb":[0.8,0.66666666666666663,0.6],"xyz":[0.450245371396354233,0.438875792212375493,0.362375084375797574],"hpluv":[37.0598425499876214,49.5126161932360702,72.1532912119235874],"hsluv":[37.0598425499876214,26.6696495224772221,72.1532912119235874]},"#ccaaaa":{"lch":[72.5547286434336,21.297823518763618,12.177050630063027],"luv":[72.5547286434336,20.8186322940273918,4.49241984263274841],"rgb":[0.8,0.66666666666666663,0.66666666666666663],"xyz":[0.465303064361606789,0.444898869398476615,0.441678933992796174],"hpluv":[12.177050630063027,37.2485034287350203,72.5547286434336],"hsluv":[12.177050630063027,27.9047031904792959,72.5547286434336]},"#ccaabb":{"lch":[73.0072318845295,20.9674028584132515,335.544386587188285],"luv":[73.0072318845295,19.0862548050106788,-8.68025691700441193],"rgb":[0.8,0.66666666666666663,0.733333333333333282],"xyz":[0.482440656468943463,0.451753906241411374,0.531936919091437921],"hpluv":[335.544386587188285,36.4433325399841053,73.0072318845295],"hsluv":[335.544386587188285,29.1493731958161852,73.0072318845295]},"#ccaacc":{"lch":[73.5111862218870442,28.2733952257813925,307.715012949249683],"luv":[73.5111862218870442,17.2958067637387,-22.366044486780595],"rgb":[0.8,0.66666666666666663,0.8],"xyz":[0.501733031912665162,0.459470856418900175,0.633543429761708077],"hpluv":[307.715012949249683,48.8049486057506,73.5111862218870442],"hsluv":[307.715012949249683,30.3693282248248444,73.5111862218870442]},"#ccaadd":{"lch":[74.0666736076556,39.5441054640130645,293.032470315564865],"luv":[74.0666736076556,15.4717391639018693,-36.3917787995197202],"rgb":[0.8,0.66666666666666663,0.866666666666666696],"xyz":[0.523251357463298761,0.468078186639153682,0.746873277661714075],"hpluv":[293.032470315564865,67.7482749884916871,74.0666736076556],"hsluv":[293.032470315564865,52.1368854824616719,74.0666736076556]},"#ccaaee":{"lch":[74.6734949675833093,52.4074038625381462,285.081329657377239],"luv":[74.6734949675833093,13.6358764846886817,-50.6023601436286],"rgb":[0.8,0.66666666666666663,0.933333333333333348],"xyz":[0.54706353772947347,0.477603058745623699,0.872284093730237298],"hpluv":[285.081329657377239,89.0564736794959799,74.6734949675833093],"hsluv":[285.081329657377239,75.3315532053798194,74.6734949675833093]},"#ccaaff":{"lch":[75.3311933526529316,65.9300530396585458,280.316334998223624],"luv":[75.3311933526529316,11.8069327652914797,-64.8642292214135239],"rgb":[0.8,0.66666666666666663,1],"xyz":[0.573234586139304891,0.488071478109556423,1.01011828202201914],"hpluv":[280.316334998223624,111.057502918871393,75.3311933526529316],"hsluv":[280.316334998223624,99.9999999999973426,75.3311933526529316]},"#553300":{"lch":[24.6368918170402651,35.1311640480653367,43.6144672720514848],"luv":[24.6368918170402651,25.4348822629288698,24.2335604409056025],"rgb":[0.333333333333333315,0.2,0],"xyz":[0.049300031966319241,0.0429919833271212859,0.00570196001226947087],"hpluv":[43.6144672720514848,180.944734702515461,24.6368918170402651],"hsluv":[43.6144672720514848,100.000000000002245,24.6368918170402651]},"#553311":{"lch":[24.7639934196671305,31.9442274162558917,39.8156129865950632],"luv":[24.7639934196671305,24.536650698978292,20.4544967598277161],"rgb":[0.333333333333333315,0.2,0.0666666666666666657],"xyz":[0.0503116974659563593,0.0433966495269761388,0.0110300649770251023],"hpluv":[39.8156129865950632,163.685811409294416,24.7639934196671305],"hsluv":[39.8156129865950632,85.3309596574143256,24.7639934196671305]},"#553322":{"lch":[24.9975315322943885,26.9096454002331456,31.2519949010175395],"luv":[24.9975315322943885,23.0048892205904032,13.9608054035092266],"rgb":[0.333333333333333315,0.2,0.133333333333333331],"xyz":[0.0521870556044333814,0.0441467927823669601,0.0209069511730043],"hpluv":[31.2519949010175395,136.59983556614165,24.9975315322943885],"hsluv":[31.2519949010175395,60.4417762068684823,24.9975315322943885]},"#553333":{"lch":[25.3763514371309924,21.2787516643900716,12.1770506300621495],"luv":[25.3763514371309924,20.7999895475976082,4.48839695377019332],"rgb":[0.333333333333333315,0.2,0.2],"xyz":[0.0552748063368911219,0.0453818930753500729,0.0371691050306154416],"hpluv":[12.1770506300621495,106.403592780468983,25.3763514371309924],"hsluv":[12.1770506300621495,24.9336598370546909,25.3763514371309924]},"#553344":{"lch":[25.9113402150992655,19.4972565515274532,338.627269772390264],"luv":[25.9113402150992655,18.1564179844864455,-7.10545558065754257],"rgb":[0.333333333333333315,0.2,0.266666666666666663],"xyz":[0.05973280158111,0.047165091173037646,0.0606478799835020801],"hpluv":[338.627269772390264,95.4823185470749536,25.9113402150992655],"hsluv":[338.627269772390264,32.9723178491547841,25.9113402150992655]},"#553355":{"lch":[26.6061908173450519,25.0719265662328183,307.715012949245363],"luv":[26.6061908173450519,15.3373584467403763,-19.8334802195371829],"rgb":[0.333333333333333315,0.2,0.333333333333333315],"xyz":[0.065695215620472,0.0495500567887824789,0.0920499272574759886],"hpluv":[307.715012949245363,119.576085528419512,26.6061908173450519],"hsluv":[307.715012949245363,41.369683748934996,26.6061908173450519]},"#553366":{"lch":[27.4586282592714284,35.2024776289392847,290.893042573756475],"luv":[27.4586282592714284,12.5540679631371699,-32.8878367910220533],"rgb":[0.333333333333333315,0.2,0.4],"xyz":[0.0732802113939801658,0.0525840550981857904,0.13199757166461995],"hpluv":[290.893042573756475,162.679833835368925,27.4586282592714284],"hsluv":[290.893042573756475,49.429407074258,27.4586282592714284]},"#553377":{"lch":[28.461655060413058,46.8206771520520633,282.253113271302652],"luv":[28.461655060413058,9.93678843358592445,-45.7540822725452898],"rgb":[0.333333333333333315,0.2,0.466666666666666674],"xyz":[0.0825942244141820853,0.0563096603062666068,0.18105137357101786],"hpluv":[282.253113271302652,208.74537696470955,28.461655060413058],"hsluv":[282.253113271302652,56.732994513665389,28.461655060413058]},"#553388":{"lch":[29.6048600369324433,58.6666973974172876,277.388246485053742],"luv":[29.6048600369324433,7.54407762538358551,-58.1796207988872567],"rgb":[0.333333333333333315,0.2,0.533333333333333326],"xyz":[0.0937346415161259133,0.0607658271470442046,0.239724236974590027],"hpluv":[277.388246485053742,251.459446283522851,29.6048600369324433],"hsluv":[277.388246485053742,63.1061783000114715,29.6048600369324433]},"#553399":{"lch":[30.8756880539778678,70.2946203588512759,274.394660626066695],"luv":[30.8756880539778678,5.38640350826703,-70.0879469569565714],"rgb":[0.333333333333333315,0.2,0.6],"xyz":[0.106791605625198627,0.0659886127906733622,0.308490914615707934],"hpluv":[274.394660626066695,288.898157334443908,30.8756880539778678],"hsluv":[274.394660626066695,68.537799314251,30.8756880539778678]},"#5533aa":{"lch":[32.2605562861205,81.571224268378316,272.422737250332261],"luv":[32.2605562861205,3.44819039224039026,-81.498310483475251],"rgb":[0.333333333333333315,0.2,0.66666666666666663],"xyz":[0.121849298590451169,0.0720116899767744567,0.387794764232706535],"hpluv":[272.422737250332261,320.851781583216223,32.2605562861205],"hsluv":[272.422737250332261,73.1042224024611897,32.2605562861205]},"#5533bb":{"lch":[33.7457437232739395,92.4864953275551755,271.055064965734516],"luv":[33.7457437232739395,1.70298313903478205,-92.4708152143261231],"rgb":[0.333333333333333315,0.2,0.733333333333333282],"xyz":[0.138986890697787802,0.0788667268197092153,0.478052749331348281],"hpluv":[271.055064965734516,347.775228922495899,33.7457437232739395],"hsluv":[271.055064965734516,76.9172199670655772,33.7457437232739395]},"#5533cc":{"lch":[35.3180325241442,103.075547069605378,270.067872161558512],"luv":[35.3180325241442,0.12210251098248695,-103.075474748725966],"rgb":[0.333333333333333315,0.2,0.8],"xyz":[0.158279266141509556,0.0865836769971980169,0.579659260001618493],"hpluv":[270.067872161558512,370.338167129355497,35.3180325241442],"hsluv":[270.067872161558512,80.0940957669769205,35.3180325241442]},"#5533dd":{"lch":[36.9651203282397915,113.385246995104879,269.332372034398134],"luv":[36.9651203282397915,-1.32116971635525937,-113.377549570986602],"rgb":[0.333333333333333315,0.2,0.866666666666666696],"xyz":[0.179797591692143099,0.0951910072174515509,0.69298910790162449],"hpluv":[269.332372034398134,389.227711455139399,36.9651203282397915],"hsluv":[269.332372034398134,84.8119298710034855,36.9651203282397915]},"#5533ee":{"lch":[38.6758450270606247,123.460606758128,268.77009087446072],"luv":[38.6758450270606247,-2.64999738284680575,-123.432163292052948],"rgb":[0.333333333333333315,0.2,0.933333333333333348],"xyz":[0.203609771958317837,0.104715879323921596,0.818399923970147714],"hpluv":[268.77009087446072,405.067987408818738,38.6758450270606247],"hsluv":[268.77009087446072,92.2936685874649356,38.6758450270606247]},"#5533ff":{"lch":[40.4402700894382363,133.340096114557781,268.33094335317071],"luv":[40.4402700894382363,-3.88371885476632706,-133.283524712158766],"rgb":[0.333333333333333315,0.2,1],"xyz":[0.22978082036814923,0.115184298687854292,0.956234112261929559],"hpluv":[268.33094335317071,418.394573227645935,40.4402700894382363],"hsluv":[268.33094335317071,99.99999999999946,40.4402700894382363]},"#ccbb00":{"lch":[75.0632334950121418,83.0331806403360275,77.5616137481136292],"luv":[75.0632334950121418,17.8844849446013434,81.0842419062853423],"rgb":[0.8,0.733333333333333282,0],"xyz":[0.426708295646073654,0.483788158566022,0.0709042957418917],"hpluv":[77.5616137481136292,140.366584388758554,75.0632334950121418],"hsluv":[77.5616137481136292,100.000000000002373,75.0632334950121418]},"#ccbb11":{"lch":[75.0886164663743898,81.9438461169387438,77.472162284636525],"luv":[75.0886164663743898,17.7747618107910519,79.9928231718707394],"rgb":[0.8,0.733333333333333282,0.0666666666666666657],"xyz":[0.427719961145710759,0.484192824765876828,0.0762324007066473436],"hpluv":[77.472162284636525,138.478250548668058,75.0886164663743898],"hsluv":[77.472162284636525,98.6397508878022222,75.0886164663743898]},"#ccbb22":{"lch":[75.1356323460541802,79.9401497843360289,77.301186242421764],"luv":[75.1356323460541802,17.5729239259544805,77.9847414064744839],"rgb":[0.8,0.733333333333333282,0.133333333333333331],"xyz":[0.429595319284187815,0.484942968021267629,0.0861092869026265362],"hpluv":[77.301186242421764,135.007637737713509,75.1356323460541802],"hsluv":[77.301186242421764,96.1390577710114087,75.1356323460541802]},"#ccbb33":{"lch":[75.2129378077961235,76.6847204783522471,77.0041162235267223],"luv":[75.2129378077961235,17.2449407213965777,74.720535158405653],"rgb":[0.8,0.733333333333333282,0.2],"xyz":[0.432683070016645521,0.486178068314250755,0.102371440760237686],"hpluv":[77.0041162235267223,129.376563997369885,75.2129378077961235],"hsluv":[77.0041162235267223,92.0797058264172392,75.2129378077961235]},"#ccbb44":{"lch":[75.3243183189310628,72.0782997366288,76.5373230188340585],"luv":[75.3243183189310628,16.7806861485978907,70.0977165484408431],"rgb":[0.8,0.733333333333333282,0.266666666666666663],"xyz":[0.437141065260864436,0.487961266411938321,0.125850215713124325],"hpluv":[76.5373230188340585,121.425150369898518,75.3243183189310628],"hsluv":[76.5373230188340585,86.34290383100182,75.3243183189310628]},"#ccbb55":{"lch":[75.4728625341146397,66.0852327898053,75.831238609121371],"luv":[75.4728625341146397,16.1762634357197506,64.0748507149330351],"rgb":[0.8,0.733333333333333282,0.333333333333333315],"xyz":[0.443103479300226422,0.490346232027683182,0.157252262987098212],"hpluv":[75.831238609121371,111.10994393806304,75.4728625341146397],"hsluv":[75.831238609121371,78.8905565478608395,75.4728625341146397]},"#ccbb66":{"lch":[75.6611363515091284,58.7289677793131,74.7643785098968863],"luv":[75.6611363515091284,15.4333320312120961,56.6648384700597134],"rgb":[0.8,0.733333333333333282,0.4],"xyz":[0.450688475073734607,0.493380230337086501,0.197199907394242202],"hpluv":[74.7643785098968863,98.4960546107130739,75.6611363515091284],"hsluv":[74.7643785098968863,69.7569980114599701,75.6611363515091284]},"#ccbb77":{"lch":[75.8912747684230737,50.090867045562554,73.1036630558194389],"luv":[75.8912747684230737,14.5584607724557671,47.9285528814827799],"rgb":[0.8,0.733333333333333282,0.466666666666666674],"xyz":[0.460002488093936512,0.497105835545167296,0.246253709300640111],"hpluv":[73.1036630558194389,83.7540906733876795,75.8912747684230737],"hsluv":[73.1036630558194389,59.0406908273499624,75.8912747684230737]},"#ccbb88":{"lch":[76.1650362860674335,40.3168412407358332,70.3426656865815119],"luv":[76.1650362860674335,13.5623472284534756,37.9672283066009157],"rgb":[0.8,0.733333333333333282,0.533333333333333326],"xyz":[0.471142905195880313,0.501562002385944838,0.304926572704212251],"hpluv":[70.3426656865815119,67.6831847004182379,76.1650362860674335],"hsluv":[70.3426656865815119,46.8939441374685586,76.1650362860674335]},"#ccbb99":{"lch":[76.4838383644648871,29.6573629081618826,65.1594516064859732],"luv":[76.4838383644648871,12.4588924968264081,26.9134756658990248],"rgb":[0.8,0.733333333333333282,0.6],"xyz":[0.484199869304953068,0.506784788029574,0.373693250345330186],"hpluv":[65.1594516064859732,50.6096239917615662,76.4838383644648871],"hsluv":[65.1594516064859732,33.5105935092195324,76.4838383644648871]},"#ccbbaa":{"lch":[76.8487828748923,18.695758935396551,52.9508743401004551],"luv":[76.8487828748923,11.26418644921627,14.9214444946778713],"rgb":[0.8,0.733333333333333282,0.66666666666666663],"xyz":[0.499257562270205568,0.512807865215675118,0.452997099962328786],"hpluv":[52.9508743401004551,32.5142912020767696,76.8487828748923],"hsluv":[52.9508743401004551,19.1124274046376854,76.8487828748923]},"#ccbbbb":{"lch":[77.2606763328388126,10.2255548171674207,12.1770506300639045],"luv":[77.2606763328388126,9.99548454110707,2.15690985147396086],"rgb":[0.8,0.733333333333333282,0.733333333333333282],"xyz":[0.516395154377542243,0.519662902058609877,0.543255085060970533],"hpluv":[12.1770506300639045,18.1733155366010308,77.2606763328388126],"hsluv":[12.1770506300639045,17.1437484893634,77.2606763328388126]},"#ccbbcc":{"lch":[77.7200476270310361,14.1732404034447406,307.715012949257925],"luv":[77.7200476270310361,8.67025786172679247,-11.2119299027867267],"rgb":[0.8,0.733333333333333282,0.8],"xyz":[0.535687529821264,0.527379852236098734,0.644861595731240689],"hpluv":[307.715012949257925,25.815587331502627,77.7200476270310361],"hsluv":[307.715012949257925,18.1614974693692588,77.7200476270310361]},"#ccbbdd":{"lch":[78.2271648233418375,26.0669286991650679,286.275412631614586],"luv":[78.2271648233418375,7.3053819239814537,-25.022313377306272],"rgb":[0.8,0.733333333333333282,0.866666666666666696],"xyz":[0.557205855371897485,0.53598718245635224,0.758191443631246687],"hpluv":[286.275412631614586,48.8074477639820898,78.2271648233418375],"hsluv":[286.275412631614586,43.4510455050629929,78.2271648233418375]},"#ccbbee":{"lch":[78.7820519440635,39.5678846485468299,278.599571826643512],"luv":[78.7820519440635,5.9165048525659989,-39.1230426461218741],"rgb":[0.8,0.733333333333333282,0.933333333333333348],"xyz":[0.581018035638072305,0.545512054562822257,0.88360225969976991],"hpluv":[278.599571826643512,76.4037468789834,78.7820519440635],"hsluv":[278.599571826643512,70.6968150087455314,78.7820519440635]},"#ccbbff":{"lch":[79.3845061922316546,53.5695670840829834,274.837592460092935],"luv":[79.3845061922316546,4.51760925339512553,-53.3787385033564235],"rgb":[0.8,0.733333333333333282,1],"xyz":[0.607189084047903616,0.555980473926755,1.02143644799155164],"hpluv":[274.837592460092935,107.038572744282547,79.3845061922316546],"hsluv":[274.837592460092935,99.9999999999963762,79.3845061922316546]},"#554400":{"lch":[29.5776499109456879,34.0768703371065413,65.9474553070004674],"luv":[29.5776499109456879,13.8888553561515469,31.1180460322924546],"rgb":[0.333333333333333315,0.266666666666666663,0],"xyz":[0.0581326024492852811,0.0606571242930536,0.0086461501732580659],"hpluv":[65.9474553070004674,146.195957524823825,29.5776499109456879],"hsluv":[65.9474553070004674,100.000000000002217,29.5776499109456879]},"#554411":{"lch":[29.6787804923011507,30.8713815411758574,64.2244588846852906],"luv":[29.6787804923011507,13.4243191404277429,27.7998175151708296],"rgb":[0.333333333333333315,0.266666666666666663,0.0666666666666666657],"xyz":[0.0591442679489224,0.0610617904929084548,0.0139742551380136974],"hpluv":[64.2244588846852906,131.992525946838612,29.6787804923011507],"hsluv":[64.2244588846852906,89.4077694450363509,29.6787804923011507]},"#554422":{"lch":[29.8650740872788916,25.3442505658492152,60.1547603291711539],"luv":[29.8650740872788916,12.6127938179319639,21.9829131111162219],"rgb":[0.333333333333333315,0.266666666666666663,0.133333333333333331],"xyz":[0.0610196260873994215,0.0618119337482992762,0.0238511413339928952],"hpluv":[60.1547603291711539,107.684992873038837,29.8650740872788916],"hsluv":[60.1547603291711539,70.9921927199271892,29.8650740872788916]},"#554433":{"lch":[30.1685472793317686,17.4710669916127905,49.2680266756281497],"luv":[30.1685472793317686,11.400244593092479,13.2390560480378525],"rgb":[0.333333333333333315,0.266666666666666663,0.2],"xyz":[0.064107376819857162,0.0630470340412823821,0.0401132951916040384],"hpluv":[49.2680266756281497,73.4859575586117302,30.1685472793317686],"hsluv":[49.2680266756281497,43.7071568358896,30.1685472793317686]},"#554444":{"lch":[30.5997780424982437,10.1013456632853149,12.1770506300629258],"luv":[30.5997780424982437,9.87407003600776356,2.13071000682558],"rgb":[0.333333333333333315,0.266666666666666663,0.266666666666666663],"xyz":[0.0685653720640760356,0.0648302321389699621,0.06359207014449067],"hpluv":[12.1770506300629258,41.8890279889816597,30.5997780424982437],"hsluv":[12.1770506300629258,9.81589763549682282,30.5997780424982437]},"#554455":{"lch":[31.1643459369041338,13.3310860490153988,307.715012949249],"luv":[31.1643459369041338,8.15508312366709198,-10.5457325251654854],"rgb":[0.333333333333333315,0.266666666666666663,0.333333333333333315],"xyz":[0.0745277861034380346,0.0672151977547148,0.0949941174184645853],"hpluv":[307.715012949249,54.2808752323906702,31.1643459369041338],"hsluv":[307.715012949249,18.7795296363480162,31.1643459369041338]},"#554466":{"lch":[31.8635722620044533,24.8340912161126894,284.841165372516684],"luv":[31.8635722620044533,6.36101223964894835,-24.005616214070443],"rgb":[0.333333333333333315,0.266666666666666663,0.4],"xyz":[0.0821127818769462,0.0702491960641181135,0.134941761825608547],"hpluv":[284.841165372516684,98.8992811700442331,31.8635722620044533],"hsluv":[284.841165372516684,27.8963704264996828,31.8635722620044533]},"#554477":{"lch":[32.6951743277909443,37.9095930577936784,276.944338121378166],"luv":[32.6951743277909443,4.58346102749711282,-37.6314912117090259],"rgb":[0.333333333333333315,0.266666666666666663,0.466666666666666674],"xyz":[0.0914267948971481254,0.0739748012721989229,0.183995563732006456],"hpluv":[276.944338121378166,147.131204947893167,32.6951743277909443],"hsluv":[276.944338121378166,36.6308714978363952,32.6951743277909443]},"#554488":{"lch":[33.6539551717380903,51.1018638808679526,273.231940865766],"luv":[33.6539551717380903,2.88102600900669881,-51.0205858574182116],"rgb":[0.333333333333333315,0.266666666666666663,0.533333333333333326],"xyz":[0.102567211999091953,0.0784309681129765207,0.242668427135578624],"hpluv":[273.231940865766,192.681471981123309,33.6539551717380903],"hsluv":[273.231940865766,44.6505812495932801,33.6539551717380903]},"#554499":{"lch":[34.7325237210335871,63.9719124096453271,271.149517924849135],"luv":[34.7325237210335871,1.28337422751110575,-63.9590378909774913],"rgb":[0.333333333333333315,0.266666666666666663,0.6],"xyz":[0.115624176108164667,0.0836537537566056782,0.311435104776696559],"hpluv":[271.149517924849135,233.718085138698228,34.7325237210335871],"hsluv":[271.149517924849135,51.7999710200133876,34.7325237210335871]},"#5544aa":{"lch":[35.9219992682327671,76.3678985235758461,269.849629436139082],"luv":[35.9219992682327671,-0.200424374653859844,-76.367635520403681],"rgb":[0.333333333333333315,0.266666666666666663,0.66666666666666663],"xyz":[0.130681869073417223,0.0896768309427067867,0.390738954393695104],"hpluv":[269.849629436139082,269.767524553786757,35.9219992682327671],"hsluv":[269.849629436139082,58.0490239963672465,35.9219992682327671]},"#5544bb":{"lch":[37.2126506061998725,88.2627815084196925,268.978337620063314],"luv":[37.2126506061998725,-1.57376312233016602,-88.2487499584998574],"rgb":[0.333333333333333315,0.266666666666666663,0.733333333333333282],"xyz":[0.147819461180753842,0.0965318677856415452,0.480996939492336906],"hpluv":[268.978337620063314,300.972163983169935,37.2126506061998725],"hsluv":[268.978337620063314,66.0075029321504729,37.2126506061998725]},"#5544cc":{"lch":[38.5944341452357733,99.6871153018899605,268.363808876145868],"luv":[38.5944341452357733,-2.84637030136680202,-99.6464707519528758],"rgb":[0.333333333333333315,0.266666666666666663,0.8],"xyz":[0.167111836624475596,0.104248817963130347,0.582603450162607062],"hpluv":[268.363808876145868,327.758284181939189,38.5944341452357733],"hsluv":[268.363808876145868,74.5283681063652352,38.5944341452357733]},"#5544dd":{"lch":[40.0574145710935738,110.694467066426,267.913412719582],"luv":[40.0574145710935738,-4.03035995406870118,-110.621070496360275],"rgb":[0.333333333333333315,0.266666666666666663,0.866666666666666696],"xyz":[0.18863016217510914,0.112856148183383881,0.695933298062613059],"hpluv":[267.913412719582,350.65684831918054,40.0574145710935738],"hsluv":[267.913412719582,82.9425769408534,40.0574145710935738]},"#5544ee":{"lch":[41.5920687629554777,121.343449115737442,267.573227144435918],"luv":[41.5920687629554777,-5.13798666158471651,-121.23462268002875],"rgb":[0.333333333333333315,0.266666666666666663,0.933333333333333348],"xyz":[0.212442342441283877,0.122381020289853898,0.821344114131136283],"hpluv":[267.573227144435918,370.207437425804358,41.5920687629554777],"hsluv":[267.573227144435918,91.3878688389195872,41.5920687629554777]},"#5544ff":{"lch":[43.1894854939413833,131.689092168021887,267.309962581974105],"luv":[43.1894854939413833,-6.18053297470727,-131.543977468321657],"rgb":[0.333333333333333315,0.266666666666666663,1],"xyz":[0.23861339085111527,0.132849439653786594,0.959178302422918128],"hpluv":[267.309962581974105,386.911020330846497,43.1894854939413833],"hsluv":[267.309962581974105,99.9999999999994174,43.1894854939413833]},"#cccc00":{"lch":[79.627228346343,87.7811065558180132,85.8743202181747449],"luv":[79.627228346343,6.31536666608958797,87.5536339167982192],"rgb":[0.8,0.8,0],"xyz":[0.464932038955690574,0.560235645185256814,0.0836455435117636481],"hpluv":[85.8743202181747449,177.871840357077815,79.627228346343],"hsluv":[85.8743202181747449,100.000000000002245,79.627228346343]},"#cccc11":{"lch":[79.6502471087807891,86.7718911178833707,85.8743202181747],"luv":[79.6502471087807891,6.24275917928854351,86.5470337215737],"rgb":[0.8,0.8,0.0666666666666666657],"xyz":[0.465943704455327679,0.560640311385111723,0.0889736484765192848],"hpluv":[85.8743202181747,176.061859354342118,79.6502471087807891],"hsluv":[85.8743202181747,98.8217369524532927,79.6502471087807891]},"#cccc22":{"lch":[79.6928884771461838,84.9132131482774497,85.8743202181746597],"luv":[79.6928884771461838,6.10903754655005482,84.6931722597497298],"rgb":[0.8,0.8,0.133333333333333331],"xyz":[0.467819062593804735,0.561390454640502523,0.0988505346724984774],"hpluv":[85.8743202181746597,172.717957044242922,79.6928884771461838],"hsluv":[85.8743202181746597,96.653203912443459,79.6928884771461838]},"#cccc33":{"lch":[79.7630142061039891,81.8867831673476445,85.8743202181745602],"luv":[79.7630142061039891,5.89130259459140682,81.6745848549912665],"rgb":[0.8,0.8,0.2],"xyz":[0.470906813326262441,0.56262555493348565,0.115112688530109614],"hpluv":[85.8743202181745602,167.243641009868185,79.7630142061039891],"hsluv":[85.8743202181745602,93.1263971058523623,79.7630142061039891]},"#cccc44":{"lch":[79.8640786601047523,77.5899505798540901,85.8743202181744],"luv":[79.8640786601047523,5.58216917901353593,77.3888869169280156],"rgb":[0.8,0.8,0.266666666666666663],"xyz":[0.475364808570481356,0.564408753031173216,0.138591463482996252],"hpluv":[85.8743202181744,159.406599578518,79.8640786601047523],"hsluv":[85.8743202181744,88.1281264379617113,79.8640786601047523]},"#cccc55":{"lch":[79.9989166638852396,71.9729259129294832,85.8743202181741481],"luv":[79.9989166638852396,5.17805522174052,71.7864179952492236],"rgb":[0.8,0.8,0.333333333333333315],"xyz":[0.481327222609843342,0.566793718646918,0.169993510756970168],"hpluv":[85.8743202181741481,149.042041148428552,79.9989166638852396],"hsluv":[85.8743202181741481,81.6104176612222147,79.9989166638852396]},"#cccc66":{"lch":[80.1699032642976448,65.0330295388014,85.8743202181738],"luv":[80.1699032642976448,4.67876793832737103,64.8645054060685453],"rgb":[0.8,0.8,0.4],"xyz":[0.488912218383351527,0.569827716956321284,0.209941155164114129],"hpluv":[85.8743202181738,136.038559250079544,80.1699032642976448],"hsluv":[85.8743202181738,73.5839630734023,80.1699032642976448]},"#cccc77":{"lch":[80.3790384438565724,56.8098315426934803,85.8743202181733096],"luv":[80.3790384438565724,4.0871541782499472,56.6626166941875837],"rgb":[0.8,0.8,0.466666666666666674],"xyz":[0.498226231403553432,0.573553322164402135,0.258994957070512],"hpluv":[85.8743202181733096,120.326663009793734,80.3790384438565724],"hsluv":[85.8743202181733096,64.1122831116318252,80.3790384438565724]},"#cccc88":{"lch":[80.6279973255091704,47.3795499902223085,85.8743202181724854],"luv":[80.6279973255091704,3.40869741112766222,47.2567724166107865],"rgb":[0.8,0.8,0.533333333333333326],"xyz":[0.509366648505497288,0.578009489005179677,0.317667820474084206],"hpluv":[85.8743202181724854,101.866799769447482,80.6279973255091704],"hsluv":[85.8743202181724854,53.3047126681541172,80.6279973255091704]},"#cccc99":{"lch":[80.9181626169042119,36.8483625211582861,85.8743202181711496],"luv":[80.9181626169042119,2.65103653276840934,36.7528750683892724],"rgb":[0.8,0.8,0.6],"xyz":[0.522423612614569932,0.58323227464880889,0.386434498115202141],"hpluv":[85.8743202181711496,80.635831276566,80.9181626169042119],"hsluv":[85.8743202181711496,41.30786304104587,80.9181626169042119]},"#ccccaa":{"lch":[81.2506473976222452,25.3448572993520607,85.8743202181683216],"luv":[81.2506473976222452,1.82342275263520492,25.27917959487],"rgb":[0.8,0.8,0.66666666666666663],"xyz":[0.537481305579822544,0.58925535183491,0.465738347732200686],"hpluv":[85.8743202181683216,56.6117825452175509,81.2506473976222452],"hsluv":[85.8743202181683216,28.2959036617823898,81.2506473976222452]},"#ccccbb":{"lch":[81.6263125989092657,13.0121158497344798,85.8743202181599],"luv":[81.6263125989092657,0.936149997616518514,12.9783967449324749],"rgb":[0.8,0.8,0.733333333333333282],"xyz":[0.554618897687159107,0.596110388677844716,0.555996332830842488],"hpluv":[85.8743202181599,29.7570160502500514,81.6263125989092657],"hsluv":[85.8743202181599,14.4603328966824272,81.6263125989092657]},"#cccccc":{"lch":[82.0457816743453,4.34523248843710382e-12,0],"luv":[82.0457816743453,4.08534684758697557e-12,1.48019813318368677e-12],"rgb":[0.8,0.8,0.8],"xyz":[0.573911273130880861,0.603827338855333573,0.657602843501112644],"hpluv":[0,1.02065966511349575e-11,82.0457816743453],"hsluv":[0,1.01642596056880755e-11,82.0457816743453]},"#ccccdd":{"lch":[82.5094539517328087,13.5418343873660199,265.874320218194214],"luv":[82.5094539517328087,-0.974260325972223118,-13.5067425899839115],"rgb":[0.8,0.8,0.866666666666666696],"xyz":[0.59542959868151446,0.612434669075587079,0.770932691401118642],"hpluv":[265.874320218194214,32.7843842039110882,82.5094539517328087],"hsluv":[265.874320218194214,30.4637656032122131,82.5094539517328087]},"#ccccee":{"lch":[83.0175175610870895,27.4698052042972165,265.874320218185687],"luv":[83.0175175610870895,-1.97630103922669687,-27.3986209901955817],"rgb":[0.8,0.8,0.933333333333333348],"xyz":[0.61924177894768917,0.621959541182057096,0.896343507469641865],"hpluv":[265.874320218185687,68.7964750954906776,83.0175175610870895],"hsluv":[265.874320218185687,63.7216981471091941,83.0175175610870895]},"#ccccff":{"lch":[83.5699624582004219,41.6509292947620153,265.874320218182845],"luv":[83.5699624582004219,-2.99655473483939438,-41.5429966521238825],"rgb":[0.8,0.8,1],"xyz":[0.645412827357520591,0.63242796054598982,1.03417769576142371],"hpluv":[265.874320218182845,108.336501116640306,83.5699624582004219],"hsluv":[265.874320218182845,99.9999999999952536,83.5699624582004219]},"#555500":{"lch":[34.8595382729148753,38.4291768930055397,85.8743202181747307],"luv":[34.8595382729148753,2.76476741155027961,38.3295929776711901],"rgb":[0.333333333333333315,0.333333333333333315,0],"xyz":[0.0699458591636312466,0.084283637721745866,0.0125839024113732767],"hpluv":[85.8743202181747307,139.887458074797564,34.8595382729148753],"hsluv":[85.8743202181747307,100.000000000002331,34.8595382729148753]},"#555511":{"lch":[34.9408046802893,35.5443725161734108,85.8743202181745318],"luv":[34.9408046802893,2.55722164100294558,35.4522641737772517],"rgb":[0.333333333333333315,0.333333333333333315,0.0666666666666666657],"xyz":[0.0709575246632683648,0.0846883039216007188,0.0179120073761289064],"hpluv":[85.8743202181745318,129.085444875460666,34.9408046802893],"hsluv":[85.8743202181745318,92.2780688504912,34.9408046802893]},"#555522":{"lch":[35.0907688239250604,30.4130442263608813,85.8743202181740202],"luv":[35.0907688239250604,2.18805086034508589,30.3342330139914047],"rgb":[0.333333333333333315,0.333333333333333315,0.133333333333333331],"xyz":[0.0728328828017454,0.0854384471769915332,0.027788893572108106],"hpluv":[85.8743202181740202,109.978131404858061,35.0907688239250604],"hsluv":[85.8743202181740202,78.6190076783406653,35.0907688239250604]},"#555533":{"lch":[35.3357817552570097,22.5221214621125654,85.8743202181728549],"luv":[35.3357817552570097,1.62034247131604014,22.4637584885032275],"rgb":[0.333333333333333315,0.333333333333333315,0.2],"xyz":[0.0759206335342031274,0.0866735474699746461,0.0440510474297192492],"hpluv":[85.8743202181728549,80.8786547215116656,35.3357817552570097],"hsluv":[85.8743202181728549,57.8169450175211566,35.3357817552570097]},"#555544":{"lch":[35.6854507669058592,12.1926559388895619,85.8743202181691743],"luv":[35.6854507669058592,0.877194374836262392,12.1610603515028455],"rgb":[0.333333333333333315,0.333333333333333315,0.266666666666666663],"xyz":[0.080378628778422,0.0884567455676622261,0.0675298223826058808],"hpluv":[85.8743202181691743,43.355725530805,35.6854507669058592],"hsluv":[85.8743202181691743,30.9932899828832262,35.6854507669058592]},"#555555":{"lch":[36.1458508397197278,1.89718584003012571e-12,0],"luv":[36.1458508397197278,1.79982851973451413e-12,5.9994283991150471e-13],"rgb":[0.333333333333333315,0.333333333333333315,0.333333333333333315],"xyz":[0.086341042817784,0.090841711183407059,0.0989318696565798],"hpluv":[0,6.66025333978279224e-12,36.1458508397197278],"hsluv":[0,1.90696849203660445e-12,36.1458508397197278]},"#555566":{"lch":[36.7200402720523087,13.391014832031539,265.874320218184835],"luv":[36.7200402720523087,-0.963409690459316,-13.3563138627398903],"rgb":[0.333333333333333315,0.333333333333333315,0.4],"xyz":[0.0939260385912921714,0.0938757094928103775,0.138879514063723758],"hpluv":[265.874320218184835,46.2753453717946712,36.7200402720523087],"hsluv":[265.874320218184835,10.0205788523093844,36.7200402720523087]},"#555577":{"lch":[37.4084382237490445,27.3651172837118537,265.874320218181],"luv":[37.4084382237490445,-1.96876932050326592,-27.294204353927416],"rgb":[0.333333333333333315,0.333333333333333315,0.466666666666666674],"xyz":[0.103240051611494091,0.0976013147008911869,0.187933315970121667],"hpluv":[265.874320218181,92.8254499938530131,37.4084382237490445],"hsluv":[265.874320218181,20.457601163446,37.4084382237490445]},"#555588":{"lch":[38.2091925227490421,41.4380747403329508,265.874320218179832],"luv":[38.2091925227490421,-2.98124102314999906,-41.330693680935326],"rgb":[0.333333333333333315,0.333333333333333315,0.533333333333333326],"xyz":[0.114380468713437919,0.102057481541668785,0.246606179373693835],"hpluv":[265.874320218179832,137.616667264503377,38.2091925227490421],"hsluv":[265.874320218179832,30.9677616121988244,38.2091925227490421]},"#555599":{"lch":[39.1185695394092079,55.2798607696674651,265.874320218179207],"luv":[39.1185695394092079,-3.97708121608675258,-55.1366106295487626],"rgb":[0.333333333333333315,0.333333333333333315,0.6],"xyz":[0.127437432822510632,0.107280267185297942,0.315372857014811769],"hpluv":[265.874320218179207,179.317758559659353,39.1185695394092079],"hsluv":[265.874320218179207,41.3377460212352688,39.1185695394092079]},"#5555aa":{"lch":[40.1313601009005083,68.6985541131433166,265.874320218178866],"luv":[40.1313601009005083,-4.94248222285034178,-68.5205312786852829],"rgb":[0.333333333333333315,0.333333333333333315,0.66666666666666663],"xyz":[0.142495125787763188,0.113303344371399051,0.394676706631810315],"hpluv":[265.874320218178866,217.221618066114,40.1313601009005083],"hsluv":[265.874320218178866,51.4705865731736907,40.1313601009005083]},"#5555bb":{"lch":[41.2412811653463791,81.6070675548115787,265.874320218178639],"luv":[41.2412811653463791,-5.8711785983783864,-81.3955940869131],"rgb":[0.333333333333333315,0.333333333333333315,0.733333333333333282],"xyz":[0.159632717895099807,0.120158381214333809,0.484934691730452117],"hpluv":[265.874320218178639,251.093199488524249,41.2412811653463791],"hsluv":[265.874320218178639,61.3584924374872642,41.2412811653463791]},"#5555cc":{"lch":[42.4413509436270431,93.9883543596933,265.874320218178468],"luv":[42.4413509436270431,-6.76194392407029365,-93.7447964935174838],"rgb":[0.333333333333333315,0.333333333333333315,0.8],"xyz":[0.178925093338821561,0.127875331391822611,0.586541202400722272],"hpluv":[265.874320218178468,281.011551484187919,42.4413509436270431],"hsluv":[265.874320218178468,71.0546332315999791,42.4413509436270431]},"#5555dd":{"lch":[43.7242196004532389,105.866759380085014,265.874320218178411],"luv":[43.7242196004532389,-7.61652967783202328,-105.592420264465588],"rgb":[0.333333333333333315,0.333333333333333315,0.866666666666666696],"xyz":[0.200443418889455105,0.136482661612076145,0.69987105030072827],"hpluv":[265.874320218178411,307.239379297131052,43.7242196004532389],"hsluv":[265.874320218178411,80.6500300064864462,43.7242196004532389]},"#5555ee":{"lch":[45.0824447652298588,117.287521338877212,265.874320218178354],"luv":[45.0824447652298588,-8.43819053636753402,-116.983586892732674],"rgb":[0.333333333333333315,0.333333333333333315,0.933333333333333348],"xyz":[0.224255599155629842,0.146007533718546162,0.825281866369251493],"hpluv":[265.874320218178354,330.128999417958312,45.0824447652298588],"hsluv":[265.874320218178354,90.2572110855712708,45.0824447652298588]},"#5555ff":{"lch":[46.508708270344421,128.30356479361032,265.874320218178241],"luv":[46.508708270344421,-9.23073412981071,-127.971083789162734],"rgb":[0.333333333333333315,0.333333333333333315,1],"xyz":[0.250426647565461236,0.156475953082478858,0.963116054661033338],"hpluv":[265.874320218178241,350.061034522531031,46.508708270344421],"hsluv":[265.874320218178241,99.9999999999992468,46.508708270344421]},"#ccdd00":{"lch":[84.2515012159558552,94.1174138813685772,92.7819892835375555],"luv":[84.2515012159558552,-4.56806363508048818,94.0064912138661128],"rgb":[0.8,0.866666666666666696,0],"xyz":[0.507566029502865779,0.645503626279608334,0.0978568736941549666],"hpluv":[92.7819892835375555,256.902059824464118,84.2515012159558552],"hsluv":[92.7819892835375555,100.000000000002373,84.2515012159558552]},"#ccdd11":{"lch":[84.2724460606142287,93.1910749716768692,92.8373396690251695],"luv":[84.2724460606142287,-4.61302172096193619,93.0768310858219508],"rgb":[0.8,0.866666666666666696,0.0666666666666666657],"xyz":[0.508577695002502939,0.645908292479463242,0.103184978658910603],"hpluv":[92.8373396690251695,254.758074317949962,84.2724460606142287],"hsluv":[92.8373396690251695,98.9747327605244465,84.2724460606142287]},"#ccdd22":{"lch":[84.3112490917695396,91.4838404394451175,92.9423140418060711],"luv":[84.3112490917695396,-4.69591125178302349,91.3632392106652],"rgb":[0.8,0.866666666666666696,0.133333333333333331],"xyz":[0.510453053140979884,0.646658435734854,0.113061864854889796],"hpluv":[92.9423140418060711,250.792999873820406,84.3112490917695396],"hsluv":[92.9423140418060711,97.0860193213801637,84.3112490917695396]},"#ccdd33":{"lch":[84.3750724084435291,88.7007441607730271,93.1221866378423329],"luv":[84.3750724084435291,-4.83112791130122865,88.5690816130525],"rgb":[0.8,0.866666666666666696,0.2],"xyz":[0.513540803873437701,0.647893536027837169,0.129324018712500932],"hpluv":[93.1221866378423329,244.290353733928498,84.3750724084435291],"hsluv":[93.1221866378423329,94.0094146319777,84.3750724084435291]},"#ccdd44":{"lch":[84.4670755276021197,84.7426243382763857,93.3985511967960491],"luv":[84.4670755276021197,-5.02363867224446459,84.5935897939611152],"rgb":[0.8,0.866666666666666696,0.266666666666666663],"xyz":[0.517998799117656561,0.649676734125524735,0.152802793665387571],"hpluv":[93.3985511967960491,234.956854948695792,84.4670755276021197],"hsluv":[93.3985511967960491,89.638788485123,84.4670755276021197]},"#ccdd55":{"lch":[84.5898637292301601,79.5568981087007359,93.8026723407881633],"luv":[84.5898637292301601,-5.27624840258561711,79.3817437416967095],"rgb":[0.8,0.866666666666666696,0.333333333333333315],"xyz":[0.523961213157018491,0.652061699741269485,0.184204840939361486],"hpluv":[93.8026723407881633,222.570337020009788,84.5898637292301601],"hsluv":[93.8026723407881633,83.9211409492819485,84.5898637292301601]},"#ccdd66":{"lch":[84.7456349568684857,73.1331501088793772,94.3836122863904],"luv":[84.7456349568684857,-5.58984810871231,72.9192103836116],"rgb":[0.8,0.866666666666666696,0.4],"xyz":[0.531546208930526731,0.655095698050672803,0.224152485346505448],"hpluv":[94.3836122863904,206.963810787645969,84.7456349568684857],"hsluv":[94.3836122863904,76.851201462777,84.7456349568684857]},"#ccdd77":{"lch":[84.9362580835765186,65.5005774458529828,95.2238145131341156],"luv":[84.9362580835765186,-5.96359854749608687,65.2285300930849274],"rgb":[0.8,0.866666666666666696,0.466666666666666674],"xyz":[0.540860221950728581,0.658821303258753654,0.273206287252903357],"hpluv":[95.2238145131341156,188.015270942662227,84.9362580835765186],"hsluv":[95.2238145131341156,68.4671748287691,84.9362580835765186]},"#ccdd88":{"lch":[85.1633194008604733,56.7265968622164536,96.4730545580279],"luv":[85.1633194008604733,-6.39512608731957588,56.3649638862273221],"rgb":[0.8,0.866666666666666696,0.533333333333333326],"xyz":[0.552000639052672493,0.663277470099531197,0.331879150656475552],"hpluv":[96.4730545580279,165.642146962004915,85.1633194008604733],"hsluv":[96.4730545580279,58.8458897999489707,85.1633194008604733]},"#ccdd99":{"lch":[85.4281525463895548,46.9188240443766134,98.432972024211054],"luv":[85.4281525463895548,-6.88075351903593724,46.4115425375783843],"rgb":[0.8,0.866666666666666696,0.6],"xyz":[0.565057603161745137,0.66850025574316041,0.400645828297593432],"hpluv":[98.432972024211054,139.807612964747022,85.4281525463895548],"hsluv":[98.432972024211054,48.0968721297954644,85.4281525463895548]},"#ccddaa":{"lch":[85.7318592309590457,36.2402041704229134,101.807730551991185],"luv":[85.7318592309590457,-7.41576493035038453,35.4733537857886176],"rgb":[0.8,0.866666666666666696,0.66666666666666663],"xyz":[0.580115296126997748,0.674523332929261477,0.479949677914592032],"hpluv":[101.807730551991185,110.570541660882469,85.7318592309590457],"hsluv":[101.807730551991185,36.355428538792907,85.7318592309590457]},"#ccddbb":{"lch":[86.0753247228475828,24.9849555175277693,108.661729708420211],"luv":[86.0753247228475828,-7.99469198849898,23.671351930590518],"rgb":[0.8,0.866666666666666696,0.733333333333333282],"xyz":[0.597252888234334312,0.681378369772196235,0.570207663013233779],"hpluv":[108.661729708420211,78.3375416693066313,86.0753247228475828],"hsluv":[108.661729708420211,23.7751141135998658,86.0753247228475828]},"#ccddcc":{"lch":[86.4592303781436158,14.0773589090278701,127.715012949224516],"luv":[86.4592303781436158,-8.61160385902942771,11.1360815742673065],"rgb":[0.8,0.866666666666666696,0.8],"xyz":[0.616545263678056066,0.689095319949685092,0.671814173683503935],"hpluv":[127.715012949224516,45.5363150686036633,86.4592303781436158],"hsluv":[127.715012949224516,10.5200784033656536,86.4592303781436158]},"#ccdddd":{"lch":[86.8840646031333677,9.47353258269296106,192.177050630057835],"luv":[86.8840646031333677,-9.26038246071566817,-1.99828333241680145],"rgb":[0.8,0.866666666666666696,0.866666666666666696],"xyz":[0.638063589228689665,0.697702650169938599,0.785144021583509932],"hpluv":[192.177050630057835,31.7497104564534354,86.8840646031333677],"hsluv":[192.177050630057835,13.7818607651735867,86.8840646031333677]},"#ccddee":{"lch":[87.3501331068194276,18.4943223550678582,237.507437159903361],"luv":[87.3501331068194276,-9.9349674143158051,-15.5992429896340141],"rgb":[0.8,0.866666666666666696,0.933333333333333348],"xyz":[0.661875769494864374,0.707227522276408616,0.910554837652033155],"hpluv":[237.507437159903361,64.5162574350921432,87.3501331068194276],"hsluv":[237.507437159903361,51.9237885878372083,87.3501331068194276]},"#ccddff":{"lch":[87.8575689716950876,31.3946063828198874,250.2096672964189],"luv":[87.8575689716950876,-10.6295595905023852,-29.5403752996496962],"rgb":[0.8,0.866666666666666696,1],"xyz":[0.688046817904695795,0.717695941640341339,1.04838902594381489],"hpluv":[250.2096672964189,114.576774718516177,87.8575689716950876],"hsluv":[250.2096672964189,99.999999999992923,87.8575689716950876]},"#556600":{"lch":[40.3019892206732919,46.2375853800199934,99.381148915360626],"luv":[40.3019892206732919,-7.53678920078613679,45.6191967302971264],"rgb":[0.333333333333333315,0.4,0],"xyz":[0.0849739168694777086,0.114339753133439206,0.0175932549799886241],"hpluv":[99.381148915360626,145.582103533726,40.3019892206732919],"hsluv":[99.381148915360626,100.000000000002302,40.3019892206732919]},"#556611":{"lch":[40.3683315206726334,43.7939991819964618,99.9948312384981364],"luv":[40.3683315206726334,-7.60085740022420797,43.1293557931736729],"rgb":[0.333333333333333315,0.4,0.0666666666666666657],"xyz":[0.0859855823691148269,0.114744419333294059,0.0229213599447442573],"hpluv":[99.9948312384981364,137.661701347396985,40.3683315206726334],"hsluv":[99.9948312384981364,94.2576138599214204,40.3683315206726334]},"#556622":{"lch":[40.4909010608148421,39.4175015547736436,101.28961011017671],"luv":[40.4909010608148421,-7.7166980000465113,38.6547797923705758],"rgb":[0.333333333333333315,0.4,0.133333333333333331],"xyz":[0.0878609405075918559,0.115494562588684874,0.0327982461407234499],"hpluv":[101.28961011017671,123.529583899053776,40.4909010608148421],"hsluv":[101.28961011017671,83.977954812826539,40.4909010608148421]},"#556633":{"lch":[40.6915589391927455,32.6300466430477343,104.01044750968255],"luv":[40.6915589391927455,-7.89969574444685207,31.6593548745491518],"rgb":[0.333333333333333315,0.4,0.2],"xyz":[0.0909486912400495895,0.116729662881667987,0.0490603999983346],"hpluv":[104.01044750968255,101.754281640855311,40.6915589391927455],"hsluv":[104.01044750968255,68.015525760737134,40.6915589391927455]},"#556644":{"lch":[40.9787805135115306,23.7356999706126039,110.078417815454017],"luv":[40.9787805135115306,-8.1486066005911173,22.2931304119395044],"rgb":[0.333333333333333315,0.4,0.266666666666666663],"xyz":[0.0954066864842684631,0.118512860979355567,0.0725391749512212386],"hpluv":[110.078417815454017,73.4991539757345436,40.9787805135115306],"hsluv":[110.078417815454017,46.8659194429644117,40.9787805135115306]},"#556655":{"lch":[41.3584605937638372,13.8246485480389332,127.71501294923371],"luv":[41.3584605937638372,-8.45701225317865202,10.9361716896901875],"rgb":[0.333333333333333315,0.4,0.333333333333333315],"xyz":[0.101369100523630462,0.120897826595100399,0.10394122222519514],"hpluv":[127.71501294923371,42.4159365242361659,41.3584605937638372],"hsluv":[127.71501294923371,21.5972717302380097,41.3584605937638372]},"#556666":{"lch":[41.8343160733152146,9.01834401177998402,192.177050630060307],"luv":[41.8343160733152146,-8.8154354231024481,-1.90226891261946607],"rgb":[0.333333333333333315,0.4,0.4],"xyz":[0.108954096297138633,0.123931824904503718,0.143888866632339102],"hpluv":[192.177050630060307,27.3547941496945484,41.8343160733152146],"hsluv":[192.177050630060307,27.2477194602778816,41.8343160733152146]},"#556677":{"lch":[42.4081371223492525,18.1914318380534858,239.570903430569189],"luv":[42.4081371223492525,-9.21344558994119289,-15.6856817728697795],"rgb":[0.333333333333333315,0.4,0.466666666666666674],"xyz":[0.118268109317340553,0.127657430112584541,0.192942668538737],"hpluv":[239.570903430569189,54.4323412384199443,42.4081371223492525],"hsluv":[239.570903430569189,33.1626844996427934,42.4081371223492525]},"#556688":{"lch":[43.0800011190655425,31.444407039181371,252.144687081813345],"luv":[43.0800011190655425,-9.64130614192028546,-29.9298504828121246],"rgb":[0.333333333333333315,0.4,0.533333333333333326],"xyz":[0.129408526419284381,0.132113596953362111,0.251615531942309179],"hpluv":[252.144687081813345,92.6204805766441694,43.0800011190655425],"hsluv":[252.144687081813345,39.0862788716996903,43.0800011190655425]},"#556699":{"lch":[43.8484890486876964,45.3842681536749,257.153237313451427],"luv":[43.8484890486876964,-10.090933534038701,-44.2482186789059639],"rgb":[0.333333333333333315,0.4,0.6],"xyz":[0.142465490528357108,0.137336382596991269,0.320382209583427113],"hpluv":[257.153237313451427,131.337888607863903,43.8484890486876964],"hsluv":[257.153237313451427,44.8182326355090055,43.8484890486876964]},"#5566aa":{"lch":[44.7109144588579,59.3119903927914223,259.748012643434],"luv":[44.7109144588579,-10.5562103110165033,-58.3650462882037928],"rgb":[0.333333333333333315,0.4,0.66666666666666663],"xyz":[0.157523183493609636,0.143359459783092391,0.399686059200425714],"hpluv":[259.748012643434,168.332615885742257,44.7109144588579],"hsluv":[259.748012643434,50.2202557252039341,44.7109144588579]},"#5566bb":{"lch":[45.6635615252987463,72.9454914642558805,261.300749278862554],"luv":[45.6635615252987463,-11.0328519112314041,-72.1063166696695532],"rgb":[0.333333333333333315,0.4,0.733333333333333282],"xyz":[0.174660775600946283,0.15021449662602715,0.48994404429906746],"hpluv":[261.300749278862554,202.706651650989187,45.6635615252987463],"hsluv":[261.300749278862554,56.1551480082100767,45.6635615252987463]},"#5566cc":{"lch":[46.7019230239281953,86.153038102066219,262.316955218783903],"luv":[46.7019230239281953,-11.5180515282988498,-85.3796255742992],"rgb":[0.333333333333333315,0.4,0.8],"xyz":[0.193953151044668037,0.157931446803515951,0.591550554969337616],"hpluv":[262.316955218783903,234.085848684940913,46.7019230239281953],"hsluv":[262.316955218783903,67.0801136297732086,46.7019230239281953]},"#5566dd":{"lch":[47.8209277182799539,98.8836589551542,263.023825475898036],"luv":[47.8209277182799539,-12.010072956506761,-98.1515978267222664],"rgb":[0.333333333333333315,0.4,0.866666666666666696],"xyz":[0.215471476595301581,0.166538777023769485,0.704880402869343614],"hpluv":[263.023825475898036,262.38914084011509,47.8209277182799539],"hsluv":[263.023825475898036,77.9738615315733909,47.8209277182799539]},"#5566ee":{"lch":[49.0151480019121095,111.133834597019145,263.537783903780621],"luv":[49.0151480019121095,-12.5078880087352609,-110.427722650603215],"rgb":[0.333333333333333315,0.4,0.933333333333333348],"xyz":[0.23928365686147629,0.176063649130239502,0.830291218937866837],"hpluv":[263.537783903780621,287.710232398192659,49.0151480019121095],"hsluv":[263.537783903780621,88.9133133505171145,49.0151480019121095]},"#5566ff":{"lch":[50.2789812841098751,122.927042369796439,263.924295565134457],"luv":[50.2789812841098751,-13.0108962765956715,-122.236550687040406],"rgb":[0.333333333333333315,0.4,1],"xyz":[0.265454705271307712,0.186532068494172198,0.968125407229648682],"hpluv":[263.924295565134457,310.2417842032321,50.2789812841098751],"hsluv":[263.924295565134457,99.99999999999919,50.2789812841098751]},"#ccee00":{"lch":[88.9159222564839382,101.512339113439552,98.3897184755654],"luv":[88.9159222564839382,-14.8112090817394879,100.426007975120399],"rgb":[0.8,0.933333333333333348,0],"xyz":[0.554744805843380595,0.739861178960639299,0.113583132474326151],"hpluv":[98.3897184755654,409.405376777149172,88.9159222564839382],"hsluv":[98.3897184755654,100.000000000002402,88.9159222564839382]},"#ccee11":{"lch":[88.9350466502285855,100.665090554083037,98.4749110233884863],"luv":[88.9350466502285855,-14.8356507509631186,99.5658773027044],"rgb":[0.8,0.933333333333333348,0.0666666666666666657],"xyz":[0.555756471343017755,0.740265845160494207,0.118911237439081788],"hpluv":[98.4749110233884863,406.753799510206477,88.9350466502285855],"hsluv":[98.4749110233884863,99.103544824997428,88.9350466502285855]},"#ccee22":{"lch":[88.9704797513205108,99.1029038393990191,98.635890718104875],"luv":[88.9704797513205108,-14.8807650249594605,97.9793262973016823],"rgb":[0.8,0.933333333333333348,0.133333333333333331],"xyz":[0.557631829481494701,0.741015988415885,0.12878812363506098],"hpluv":[98.635890718104875,401.844579090604725,88.9704797513205108],"hsluv":[98.635890718104875,97.4508266239822376,88.9704797513205108]},"#ccee33":{"lch":[89.0287677898111696,96.5543294248683281,98.9099371535565837],"luv":[89.0287677898111696,-14.95450175665089,95.3892101230339335],"rgb":[0.8,0.933333333333333348,0.2],"xyz":[0.560719580213952518,0.742251088708868134,0.145050277492672131],"hpluv":[98.9099371535565837,393.778440936160052,89.0287677898111696],"hsluv":[98.9099371535565837,94.7550356083218333,89.0287677898111696]},"#ccee44":{"lch":[89.1128082270408157,92.9258219449750698,99.3266297509707101],"luv":[89.1128082270408157,-15.0597883526499068,91.6973890518296],"rgb":[0.8,0.933333333333333348,0.266666666666666663],"xyz":[0.565177575458171377,0.7440342868065557,0.168529052445558769],"hpluv":[99.3266297509707101,382.168331694223468,89.1128082270408157],"hsluv":[99.3266297509707101,90.9176847425828782,89.1128082270408157]},"#ccee55":{"lch":[89.224999764075946,88.1655281542066263,99.9265688821158591],"luv":[89.224999764075946,-15.1984931464969293,86.8456456063635187],"rgb":[0.8,0.933333333333333348,0.333333333333333315],"xyz":[0.571139989497533307,0.74641925242230045,0.199931099719532657],"hpluv":[99.9265688821158591,366.702481299920066,89.224999764075946],"hsluv":[99.9265688821158591,85.8839575374920372,89.224999764075946]},"#ccee66":{"lch":[89.3673776950467555,82.2600687786622444,100.76990980050725],"luv":[89.3673776950467555,-15.3715621348797811,80.8111006793235873],"rgb":[0.8,0.933333333333333348,0.4],"xyz":[0.578724985271041548,0.749453250731703768,0.239878744126676646],"hpluv":[100.76990980050725,347.124780760482849,89.3673776950467555],"hsluv":[100.76990980050725,79.6381055931254451,89.3673776950467555]},"#ccee77":{"lch":[89.5416863487684651,75.2338064272131817,101.95104715507324],"luv":[89.5416863487684651,-15.5791079616514043,73.6031047215169707],"rgb":[0.8,0.933333333333333348,0.466666666666666674],"xyz":[0.588038998291243398,0.753178855939784619,0.288932546033074555],"hpluv":[101.95104715507324,323.225079834159544,89.5416863487684651],"hsluv":[101.95104715507324,72.2002225208687349,89.5416863487684651]},"#ccee88":{"lch":[89.7494222523926481,67.150335761217363,103.626883623375818],"luv":[89.7494222523926481,-15.8204941270879562,65.2600916212887654],"rgb":[0.8,0.933333333333333348,0.533333333333333326],"xyz":[0.599179415393187309,0.757635022780562162,0.347605409436646695],"hpluv":[103.626883623375818,294.840431689210504,89.7494222523926481],"hsluv":[103.626883623375818,63.6228180815060256,89.7494222523926481]},"#ccee99":{"lch":[89.9918618926625697,58.1187887690418705,106.076645299715267],"luv":[89.9918618926625697,-16.094429395756972,55.8458857070554586],"rgb":[0.8,0.933333333333333348,0.6],"xyz":[0.61223637950226,0.762857808424191375,0.41637208707776463],"hpluv":[106.076645299715267,261.881276027636488,89.9918618926625697],"hsluv":[106.076645299715267,53.9866751643902418,89.9918618926625697]},"#cceeaa":{"lch":[90.2700807835134071,48.3136880988356481,109.842100564752428],"luv":[90.2700807835134071,-16.3990756203548145,45.4453823452884791],"rgb":[0.8,0.933333333333333348,0.66666666666666663],"xyz":[0.627294072467512565,0.768880885610292442,0.495675936694763231],"hpluv":[109.842100564752428,224.429228200920562,90.2700807835134071],"hsluv":[109.842100564752428,43.3959332818477037,90.2700807835134071]},"#cceebb":{"lch":[90.5849674500281736,38.0375276056681,116.096591597387416],"luv":[90.5849674500281736,-16.7321662581560417,34.1597441246474745],"rgb":[0.8,0.933333333333333348,0.733333333333333282],"xyz":[0.644431664574849128,0.7757359224532272,0.585933921793405],"hpluv":[116.096591597387416,183.067580850930824,90.5849674500281736],"hsluv":[116.096591597387416,31.9725829176952736,90.5849674500281736]},"#cceecc":{"lch":[90.9372344233822,27.9388105970907,127.715012949233042],"luv":[90.9372344233822,-17.0911298567764973,22.1013668762570106],"rgb":[0.8,0.933333333333333348,0.8],"xyz":[0.663724040018570882,0.783452872630716057,0.687540432463675133],"hpluv":[127.715012949233042,140.086760618050221,90.9372344233822],"hsluv":[127.715012949233042,30.3633811556705,90.9372344233822]},"#cceedd":{"lch":[91.327427526889025,19.8359452431300802,151.749458426713772],"luv":[91.327427526889025,-17.4732117028180483,9.38890816213244861],"rgb":[0.8,0.933333333333333348,0.866666666666666696],"xyz":[0.685242365569204481,0.792060202850969564,0.800870280363681131],"hpluv":[151.749458426713772,104.258293798779974,91.327427526889025],"hsluv":[151.749458426713772,29.0871711351253381,91.327427526889025]},"#cceeee":{"lch":[91.7559342603931,18.2870370266976643,192.177050630059739],"luv":[91.7559342603931,-17.87558711202,-3.8573447624494035],"rgb":[0.8,0.933333333333333348,0.933333333333333348],"xyz":[0.709054545835379191,0.801585074957439581,0.926281096432204354],"hpluv":[192.177050630059739,101.458793010104,91.7559342603931],"hsluv":[192.177050630059739,27.4217374065650326,91.7559342603931]},"#cceeff":{"lch":[92.2229917973594553,25.3309747642836847,223.758903531404655],"luv":[92.2229917973594553,-18.2954610486514362,-17.5195430170439934],"rgb":[0.8,0.933333333333333348,1],"xyz":[0.735225594245210612,0.812053494321372304,1.06411528472398609],"hpluv":[223.758903531404655,149.53216426558339,92.2229917973594553],"hsluv":[223.758903531404655,99.9999999999890861,92.2229917973594553]},"#557700":{"lch":[45.8045523271613533,55.5294361467329836,107.801769483020877],"luv":[45.8045523271613533,-16.9767207468495087,52.8706840456749276],"rgb":[0.333333333333333315,0.466666666666666674,0],"xyz":[0.103427654922895337,0.151247229240274977,0.023744500997794328],"hpluv":[107.801769483020877,153.83457187868342,45.8045523271613533],"hsluv":[107.801769483020877,100.000000000002288,45.8045523271613533]},"#557711":{"lch":[45.859623178970125,53.470483995502839,108.496139146384877],"luv":[45.859623178970125,-16.9630166203079504,50.7084679896019068],"rgb":[0.333333333333333315,0.466666666666666674,0.0666666666666666657],"xyz":[0.104439320422532456,0.15165189544012983,0.0290726059625499578],"hpluv":[108.496139146384877,147.952722071756682,45.859623178970125],"hsluv":[108.496139146384877,95.6324690191426,45.859623178970125]},"#557722":{"lch":[45.9614512879267494,49.76586948312967,109.899607245517743],"luv":[45.9614512879267494,-16.93896350220896,46.7943723206405409],"rgb":[0.333333333333333315,0.466666666666666674,0.133333333333333331],"xyz":[0.106314678561009485,0.152402038695520659,0.0389494921585291573],"hpluv":[109.899607245517743,137.396980684000368,45.9614512879267494],"hsluv":[109.899607245517743,87.7486210093461239,45.9614512879267494]},"#557733":{"lch":[46.1283843073061,43.9801463057798472,112.602269297118809],"luv":[46.1283843073061,-16.9029726498973396,40.6022509803905223],"rgb":[0.333333333333333315,0.466666666666666674,0.2],"xyz":[0.109402429293467218,0.153637138988503757,0.0552116460161403],"hpluv":[112.602269297118809,120.983948144693443,46.1283843073061],"hsluv":[112.602269297118809,75.3373974156097432,46.1283843073061]},"#557744":{"lch":[46.3678258482665413,36.3216896494577526,117.654446368962965],"luv":[46.3678258482665413,-16.8582748313623227,32.1724060135666861],"rgb":[0.333333333333333315,0.466666666666666674,0.266666666666666663],"xyz":[0.113860424537686092,0.155420337086191351,0.0786904209690269391],"hpluv":[117.654446368962965,99.4005156049610861,46.3678258482665413],"hsluv":[117.654446368962965,58.5682493514162346,46.3678258482665413]},"#557755":{"lch":[46.6852246722490349,27.4798560002662136,127.715012949237362],"luv":[46.6852246722490349,-16.8103715694690621,21.7383047520213317],"rgb":[0.333333333333333315,0.466666666666666674,0.333333333333333315],"xyz":[0.119822838577048091,0.157805302701936184,0.110092468243000841],"hpluv":[127.715012949237362,74.6920408293198506,46.6852246722490349],"hsluv":[127.715012949237362,38.0315615795731219,46.6852246722490349]},"#557766":{"lch":[47.0844103757355299,19.3533005907945039,150.034269154893224],"luv":[47.0844103757355299,-16.7662346577491,9.66662397939114371],"rgb":[0.333333333333333315,0.466666666666666674,0.4],"xyz":[0.127407834350556276,0.160839301011339475,0.150040112650144802],"hpluv":[150.034269154893224,52.1575559127659147,47.0844103757355299],"hsluv":[150.034269154893224,41.6155983808333403,47.0844103757355299]},"#557777":{"lch":[47.5677829408255519,17.1184872206298522,192.177050630060563],"luv":[47.5677829408255519,-16.733329138647683,-3.61085871511915846],"rgb":[0.333333333333333315,0.466666666666666674,0.466666666666666674],"xyz":[0.136721847370758182,0.164564906219420298,0.199093914556542712],"hpluv":[192.177050630060563,45.665876663612373,47.5677829408255519],"hsluv":[192.177050630060563,45.4871270252879683,47.5677829408255519]},"#557788":{"lch":[48.1364533988364371,24.3189053895014062,226.569261606948],"luv":[48.1364533988364371,-16.7186932071720697,-17.6605338760746164],"rgb":[0.333333333333333315,0.466666666666666674,0.533333333333333326],"xyz":[0.147862264472702,0.169021073060197896,0.257766777960114879],"hpluv":[226.569261606948,64.1075619232690173,48.1364533988364371],"hsluv":[226.569261606948,49.4930397679002567,48.1364533988364371]},"#557799":{"lch":[48.7903733600049776,36.1922931768580227,242.470518495943224],"luv":[48.7903733600049776,-16.7282575252316086,-32.0943528610435749],"rgb":[0.333333333333333315,0.466666666666666674,0.6],"xyz":[0.160919228581774709,0.174243858703827054,0.326533455601232814],"hpluv":[242.470518495943224,94.128532149155447,48.7903733600049776],"hsluv":[242.470518495943224,53.4981409183259657,48.7903733600049776]},"#5577aa":{"lch":[49.5284680294880957,49.5215284063763121,250.210257263218182],"luv":[49.5284680294880957,-16.7664778987851584,-46.5968560588918308],"rgb":[0.333333333333333315,0.466666666666666674,0.66666666666666663],"xyz":[0.175976921547027265,0.180266935889928148,0.405837305218231414],"hpluv":[250.210257263218182,126.875705911364861,49.5284680294880957],"hsluv":[250.210257263218182,57.3943781585142503,49.5284680294880957]},"#5577bb":{"lch":[50.3487764471929324,63.2168000831305,254.554261837862072],"luv":[50.3487764471929324,-16.8362555209572413,-60.9336057753316069],"rgb":[0.333333333333333315,0.466666666666666674,0.733333333333333282],"xyz":[0.193114513654363912,0.187121972732862907,0.496095290316873161],"hpluv":[254.554261837862072,159.324628464713726,50.3487764471929324],"hsluv":[254.554261837862072,61.1035457400689737,50.3487764471929324]},"#5577cc":{"lch":[51.2485971738404942,76.8367273058076279,257.264224247337211],"luv":[51.2485971738404942,-16.9390629845235594,-74.9463195111900546],"rgb":[0.333333333333333315,0.466666666666666674,0.8],"xyz":[0.212406889098085638,0.194838922910351708,0.597701800987143317],"hpluv":[257.264224247337211,190.250673687597981,51.2485971738404942],"hsluv":[257.264224247337211,64.5753193228694329,51.2485971738404942]},"#5577dd":{"lch":[52.2246350466270428,90.1721178795433502,259.084439545341468],"luv":[52.2246350466270428,-17.075183181685393,-88.5406627612090347],"rgb":[0.333333333333333315,0.466666666666666674,0.866666666666666696],"xyz":[0.233925214648719182,0.203446253130605242,0.711031648887149315],"hpluv":[259.084439545341468,219.096874823476185,52.2246350466270428],"hsluv":[259.084439545341468,74.9139940771913757,52.2246350466270428]},"#5577ee":{"lch":[53.2731438322457791,103.123503170291656,260.373961187264626],"luv":[53.2731438322457791,-17.2439851141504441,-101.671539200978515],"rgb":[0.333333333333333315,0.466666666666666674,0.933333333333333348],"xyz":[0.257737394914893947,0.212971125237075287,0.836442464955672538],"hpluv":[260.373961187264626,245.63410016831412,53.2731438322457791],"hsluv":[260.373961187264626,87.3510385353649,53.2731438322457791]},"#5577ff":{"lch":[54.3900599484937572,115.652149768064447,261.324783585170792],"luv":[54.3900599484937572,-17.4441870719707097,-114.32899931064253],"rgb":[0.333333333333333315,0.466666666666666674,1],"xyz":[0.283908443324725313,0.223439544601007983,0.974276653247454383],"hpluv":[261.324783585170792,269.819603010977914,54.3900599484937572],"hsluv":[261.324783585170792,99.9999999999989768,54.3900599484937572]},"#ccff00":{"lch":[93.605159534834371,109.568762044642341,102.903766821995461],"luv":[93.605159534834371,-24.4682604068618268,106.801768939739262],"rgb":[0.8,1,0],"xyz":[0.606597178273054372,0.843565923819988406,0.130867256617550276],"hpluv":[102.903766821995461,795.170643052662513,93.605159534834371],"hsluv":[102.903766821995461,100.000000000002359,93.605159534834371]},"#ccff11":{"lch":[93.6226829283917681,108.793716578542018,103.00230683973929],"luv":[93.6226829283917681,-24.4775292120886689,106.004355243751533],"rgb":[0.8,1,0.0666666666666666657],"xyz":[0.607608843772691531,0.843970590019843314,0.136195361582305913],"hpluv":[103.00230683973929,791.823376913543598,93.6226829283917681],"hsluv":[103.00230683973929,99.9999999999883755,93.6226829283917681]},"#ccff22":{"lch":[93.6551518183817535,107.364125357399203,103.187929529698394],"luv":[93.6551518183817535,-24.4946701604029187,104.532609971684906],"rgb":[0.8,1,0.133333333333333331],"xyz":[0.609484201911168477,0.844720733275234115,0.146072247778285091],"hpluv":[103.187929529698394,785.615721446726184,93.6551518183817535],"hsluv":[103.187929529698394,99.9999999999883613,93.6551518183817535]},"#ccff33":{"lch":[93.7085695338431464,105.030410790236445,103.502196488744218],"luv":[93.7085695338431464,-24.5227776356263192,102.127472150246831],"rgb":[0.8,1,0.2],"xyz":[0.612571952643626294,0.845955833568217241,0.162334401635896242],"hpluv":[103.502196488744218,775.386532390006209,93.7085695338431464],"hsluv":[103.502196488744218,99.9999999999882334,93.7085695338431464]},"#ccff44":{"lch":[93.7856006692118456,101.704796230104463,103.975902087852319],"luv":[93.7856006692118456,-24.5631097372148304,98.6940687997238],"rgb":[0.8,1,0.266666666666666663],"xyz":[0.617029947887845154,0.847739031665904808,0.18581317658878288],"hpluv":[103.975902087852319,760.597322717251814,93.7856006692118456],"hsluv":[103.975902087852319,99.9999999999883329,93.7856006692118456]},"#ccff55":{"lch":[93.8884584724407887,97.3367975087049473,104.649262803016768],"luv":[93.8884584724407887,-24.6166025777849207,94.1725810773922802],"rgb":[0.8,1,0.333333333333333315],"xyz":[0.622992361927207083,0.850123997281649557,0.217215223862756796],"hpluv":[104.649262803016768,740.773636872505676,93.8884584724407887],"hsluv":[104.649262803016768,99.999999999988,93.8884584724407887]},"#ccff66":{"lch":[94.0190298395239381,91.9106503723783561,105.578857731119598],"luv":[94.0190298395239381,-24.6839280463924027,88.5340123798424514],"rgb":[0.8,1,0.4],"xyz":[0.630577357700715324,0.853157995591052876,0.257162868269900757],"hpluv":[105.578857731119598,715.472563222964368,94.0190298395239381],"hsluv":[105.578857731119598,99.9999999999875371,94.0190298395239381]},"#ccff77":{"lch":[94.1789424927264349,85.4453105292158597,106.848417981185563],"luv":[94.1789424927264349,-24.7655268674123263,81.7775627566241781],"rgb":[0.8,1,0.466666666666666674],"xyz":[0.639891370720917174,0.856883600799133727,0.306216670176298666],"hpluv":[106.848417981185563,684.262206540111833,94.1789424927264349],"hsluv":[106.848417981185563,99.9999999999873381,94.1789424927264349]},"#ccff88":{"lch":[94.3696051468525781,77.9966506735583778,108.587502777405675],"luv":[94.3696051468525781,-24.8616333733667219,73.92818611532],"rgb":[0.8,1,0.533333333333333326],"xyz":[0.651031787822861086,0.861339767639911269,0.364889533579870862],"hpluv":[108.587502777405675,646.714804777793233,94.3696051468525781],"hsluv":[108.587502777405675,99.9999999999870397,94.3696051468525781]},"#ccff99":{"lch":[94.5922333645115572,69.6635615227201868,111.00626449694991],"luv":[94.5922333645115572,-24.9722983929036886,65.0338074927618],"rgb":[0.8,1,0.6],"xyz":[0.66408875193193373,0.866562553283540482,0.433656211220988741],"hpluv":[111.00626449694991,602.43247210261859,94.5922333645115572],"hsluv":[111.00626449694991,99.999999999986656,94.5922333645115572]},"#ccffaa":{"lch":[94.8478672375315881,60.6030718965076574,114.464397640121035],"luv":[94.8478672375315881,-25.0974127381864349,55.1620539605116],"rgb":[0.8,1,0.66666666666666663],"xyz":[0.679146444897186341,0.872585630469641549,0.512960060837987397],"hpluv":[114.464397640121035,551.164539659931279,94.8478672375315881],"hsluv":[114.464397640121035,99.9999999999858886,94.8478672375315881]},"#ccffbb":{"lch":[95.1373841969384,51.0680528276179899,119.615591899534252],"luv":[95.1373841969384,-25.2367319023901224,44.3965469658538439],"rgb":[0.8,1,0.733333333333333282],"xyz":[0.696284037004522904,0.879440667312576307,0.603218045936629088],"hpluv":[119.615591899534252,493.192076617112832,95.1373841969384],"hsluv":[119.615591899534252,99.999999999985036,95.1373841969384]},"#ccffcc":{"lch":[95.4615088709507802,41.5047839306073527,127.715012949235671],"luv":[95.4615088709507802,-25.3899015983654444,32.8329101048280876],"rgb":[0.8,1,0.8],"xyz":[0.715576412448244659,0.887157617490065165,0.704824556606899244],"hpluv":[127.715012949235671,430.524428546451247,95.4615088709507802],"hsluv":[127.715012949235671,99.9999999999844,95.4615088709507802]},"#ccffdd":{"lch":[95.8208211701733603,32.8093273722257,141.163585516297758],"luv":[95.8208211701733603,-25.5564832849791728,20.5746962243056899],"rgb":[0.8,1,0.866666666666666696],"xyz":[0.737094737998878258,0.895764947710318671,0.818154404506905242],"hpluv":[141.163585516297758,370.598640927928557,95.8208211701733603],"hsluv":[141.163585516297758,99.9999999999829612,95.8208211701733603]},"#ccffee":{"lch":[96.2157633520208293,26.8716381406037179,163.283084738459195],"luv":[96.2157633520208293,-25.7359786647352209,7.72944619800421506],"rgb":[0.8,1,0.933333333333333348],"xyz":[0.760906918265053,0.905289819816788688,0.943565220575428465],"hpluv":[163.283084738459195,336.210724351278486,96.2157633520208293],"hsluv":[163.283084738459195,99.9999999999813411,96.2157633520208293]},"#ccffff":{"lch":[96.6466465538527899,26.5246444827845806,192.177050630060279],"luv":[96.6466465538527899,-25.9278521925209873,-5.59493034995961125],"rgb":[0.8,1,1],"xyz":[0.787077966674884388,0.915758239180721412,1.08139940886721031],"hpluv":[192.177050630060279,375.729722461639881,96.6466465538527899],"hsluv":[192.177050630060279,99.9999999999789111,96.6466465538527899]},"#558800":{"lch":[51.3121649295003266,65.2833526322192,113.133039202335894],"luv":[51.3121649295003266,-25.6477049188799029,60.0342515843809466],"rgb":[0.333333333333333315,0.533333333333333326,0],"xyz":[0.125500024647865804,0.195391968690216522,0.0311019575727842744],"hpluv":[113.133039202335894,161.443824642532,51.3121649295003266],"hsluv":[113.133039202335894,100.000000000002416,51.3121649295003266]},"#558811":{"lch":[51.3586018009433758,63.5282336791645363,113.757082680238781],"luv":[51.3586018009433758,-25.5929736747770171,58.1449582756467862],"rgb":[0.333333333333333315,0.533333333333333326,0.0666666666666666657],"xyz":[0.126511690147502937,0.195796634890071375,0.0364300625375399076],"hpluv":[113.757082680238781,156.961418592175818,51.3586018009433758],"hsluv":[113.757082680238781,96.6047658949560315,51.3586018009433758]},"#558822":{"lch":[51.4445144263052754,60.3557257759597761,114.985955444381503],"luv":[51.4445144263052754,-25.4940226670596211,54.707115096615226],"rgb":[0.333333333333333315,0.533333333333333326,0.133333333333333331],"xyz":[0.128387048285979938,0.196546778145462203,0.0463069487335191],"hpluv":[114.985955444381503,148.873956641671725,51.4445144263052754],"hsluv":[114.985955444381503,90.4397474873449454,51.4445144263052754]},"#558833":{"lch":[51.5854933484676366,55.3603846502330512,117.238150003797628],"luv":[51.5854933484676366,-25.3378965271949284,49.2215723864945502],"rgb":[0.333333333333333315,0.533333333333333326,0.2],"xyz":[0.131474799018437671,0.197781878438445302,0.0625691025911302434],"hpluv":[117.238150003797628,136.179218375975154,51.5854933484676366],"hsluv":[117.238150003797628,80.6386945119108844,51.5854933484676366]},"#558844":{"lch":[51.788002513998137,48.6519311113283521,121.094634958525788],"luv":[51.788002513998137,-25.1264429677671792,41.6614001762900799],"rgb":[0.333333333333333315,0.533333333333333326,0.266666666666666663],"xyz":[0.135932794262656559,0.199565076536132896,0.0860478775440168819],"hpluv":[121.094634958525788,119.20933058927335,51.788002513998137],"hsluv":[121.094634958525788,67.2069053574962112,51.788002513998137]},"#558855":{"lch":[52.0569745246593669,40.6501953066927229,127.715012949238655],"luv":[52.0569745246593669,-24.8671203906742271,32.1568764333225801],"rgb":[0.333333333333333315,0.533333333333333326,0.333333333333333315],"xyz":[0.141895208302018572,0.201950042151877729,0.117449924817990797],"hpluv":[127.715012949238655,99.0884509425644495,52.0569745246593669],"hsluv":[127.715012949238655,50.4536826414745647,52.0569745246593669]},"#558866":{"lch":[52.3961000606252156,32.296627997442414,139.535908661945541],"luv":[52.3961000606252156,-24.57168930668605,20.9595864611130054],"rgb":[0.333333333333333315,0.533333333333333326,0.4],"xyz":[0.149480204075526729,0.20498404046128102,0.157397569225134759],"hpluv":[139.535908661945541,78.2163498792783258,52.3961000606252156],"hsluv":[139.535908661945541,52.7717106037122505,52.3961000606252156]},"#558877":{"lch":[52.8079833364028417,25.6675371494617757,160.900154113051656],"luv":[52.8079833364028417,-24.2545338981935465,8.39881233868101873],"rgb":[0.333333333333333315,0.533333333333333326,0.466666666666666674],"xyz":[0.158794217095728663,0.208709645669361843,0.206451371131532668],"hpluv":[160.900154113051656,61.6770996704155934,52.8079833364028417],"hsluv":[160.900154113051656,55.3375604028527732,52.8079833364028417]},"#558888":{"lch":[53.2942460543653311,24.4817100724115,192.177050630060762],"luv":[53.2942460543653311,-23.9308828659180151,-5.16400748714853908],"rgb":[0.333333333333333315,0.533333333333333326,0.533333333333333326],"xyz":[0.169934634197672463,0.213165812510139441,0.265124234535104808],"hpluv":[192.177050630060762,58.2908991249141764,53.2942460543653311],"hsluv":[192.177050630060762,58.0627314448554515,53.2942460543653311]},"#558899":{"lch":[53.8556132197311399,30.5464388010487,219.367537814697016],"luv":[53.8556132197311399,-23.6152401502492637,-19.3753801529742589],"rgb":[0.333333333333333315,0.533333333333333326,0.6],"xyz":[0.18299159830674519,0.218388598153768598,0.333890912176222743],"hpluv":[219.367537814697016,71.9728892793730921,53.8556132197311399],"hsluv":[219.367537814697016,60.861676067449,53.8556132197311399]},"#5588aa":{"lch":[54.491995562986105,41.1624410064978434,235.49057853568965],"luv":[54.491995562986105,-23.3202411533326384,-33.9192114024460452],"rgb":[0.333333333333333315,0.533333333333333326,0.66666666666666663],"xyz":[0.198049291271997718,0.224411675339869693,0.413194761793221343],"hpluv":[235.49057853568965,95.8534470006528494,54.491995562986105],"hsluv":[235.49057853568965,63.6587877222075207,54.491995562986105]},"#5588bb":{"lch":[55.2025746803936102,53.7318677649407164,244.589939769846183],"luv":[55.2025746803936102,-23.0560079965343867,-48.5338449823709865],"rgb":[0.333333333333333315,0.533333333333333326,0.733333333333333282],"xyz":[0.215186883379334393,0.231266712182804451,0.503452746891863],"hpluv":[244.589939769846183,123.512789385845494,55.2025746803936102],"hsluv":[244.589939769846183,66.3923972476147,55.2025746803936102]},"#5588cc":{"lch":[55.9858924676882,67.0258402153595227,250.085698604565607],"luv":[55.9858924676882,-22.8299557310329213,-63.0179052166444436],"rgb":[0.333333333333333315,0.533333333333333326,0.8],"xyz":[0.234479258823056119,0.238983662360293253,0.60505925756213319],"hpluv":[250.085698604565607,151.915814945370954,55.9858924676882],"hsluv":[250.085698604565607,69.0160689386852653,55.9858924676882]},"#5588dd":{"lch":[56.8399439373084761,80.4799585659197589,253.656315856923044],"luv":[56.8399439373084761,-22.6469326722406379,-77.2278458285038596],"rgb":[0.333333333333333315,0.533333333333333326,0.866666666666666696],"xyz":[0.255997584373689691,0.247590992580546787,0.718389105462139188],"hpluv":[253.656315856923044,179.669115472769334,56.8399439373084761],"hsluv":[253.656315856923044,71.4978966707909791,56.8399439373084761]},"#5588ee":{"lch":[57.7622712344346212,93.8110643698785083,256.11666422549024],"luv":[57.7622712344346212,-22.5095618551803298,-91.0704969970917517],"rgb":[0.333333333333333315,0.533333333333333326,0.933333333333333348],"xyz":[0.2798097646398644,0.257115864687016804,0.843799921530662411],"hpluv":[256.11666422549024,206.086302990026525,57.7622712344346212],"hsluv":[256.11666422549024,85.5354286092897098,57.7622712344346212]},"#5588ff":{"lch":[58.7500561820581169,106.871298098059711,257.890974112124525],"luv":[58.7500561820581169,-22.4186692043534066,-104.493433421771144],"rgb":[0.333333333333333315,0.533333333333333326,1],"xyz":[0.305980813049695821,0.267584284050949528,0.981634109822444256],"hpluv":[257.890974112124525,230.829932612430156,58.7500561820581169],"hsluv":[257.890974112124525,99.9999999999988489,58.7500561820581169]},"#559900":{"lch":[56.7948235068901113,75.0667586450735769,116.650835958582277],"luv":[56.7948235068901113,-33.6713638042581849,67.0914116190665766],"rgb":[0.333333333333333315,0.6,0],"xyz":[0.151369625100333277,0.247131169595152217,0.0397251577236065259],"hpluv":[116.650835958582277,167.717444253109818,56.7948235068901113],"hsluv":[116.650835958582277,100.000000000002373,56.7948235068901113]},"#559911":{"lch":[56.8345345919718,73.5501475520203343,117.179331557793219],"luv":[56.8345345919718,-33.596019870913949,65.4288289193465431],"rgb":[0.333333333333333315,0.6,0.0666666666666666657],"xyz":[0.152381290599970409,0.24753583579500707,0.0450532626883621556],"hpluv":[117.179331557793219,164.214146288467191,56.8345345919718],"hsluv":[117.179331557793219,97.3073310640873501,56.8345345919718]},"#559922":{"lch":[56.9080340332033785,70.7973668034807559,118.203267177206257],"luv":[56.9080340332033785,-33.458907670269852,62.3920559351826256],"rgb":[0.333333333333333315,0.6,0.133333333333333331],"xyz":[0.154256648738447411,0.248285979050397898,0.0549301488843413552],"hpluv":[118.203267177206257,157.863907732936383,56.9080340332033785],"hsluv":[118.203267177206257,92.3971004449738444,56.9080340332033785]},"#559933":{"lch":[57.0287279601738675,66.4302504595433163,120.024921583566851],"luv":[57.0287279601738675,-33.2401456716524066,57.5158316626386181],"rgb":[0.333333333333333315,0.6,0.2],"xyz":[0.157344399470905172,0.249521079343381,0.0711923027419525],"hpluv":[120.024921583566851,147.812625691912672,57.0287279601738675],"hsluv":[120.024921583566851,84.5348632876942645,57.0287279601738675]},"#559944":{"lch":[57.2022813646338335,60.4886548808755862,122.993651447985457],"luv":[57.2022813646338335,-32.9388613723515604,50.7337045837447178],"rgb":[0.333333333333333315,0.6,0.266666666666666663],"xyz":[0.161802394715124032,0.251304277441068591,0.0946710776948391369],"hpluv":[122.993651447985457,134.183743453609452,57.2022813646338335],"hsluv":[122.993651447985457,73.6468983233054075,57.2022813646338335]},"#559955":{"lch":[57.4331244004656583,53.227141365646645,127.715012949239252],"luv":[57.4331244004656583,-32.5608701853658573,42.1060365117673499],"rgb":[0.333333333333333315,0.6,0.333333333333333315],"xyz":[0.167764808754486017,0.253689243056813396,0.126073124968813038],"hpluv":[127.715012949239252,117.600732304920115,57.4331244004656583],"hsluv":[127.715012949239252,59.8797334066369444,57.4331244004656583]},"#559966":{"lch":[57.7247064038159152,45.1954856350919556,135.286653522876605],"luv":[57.7247064038159152,-32.1175213159608433,31.7977475037242847],"rgb":[0.333333333333333315,0.6,0.4],"xyz":[0.175349804527994202,0.256723241366216715,0.166020769375957],"hpluv":[135.286653522876605,99.3510934192793371,57.7247064038159152],"hsluv":[135.286653522876605,61.4133131906424055,57.7247064038159152]},"#559977":{"lch":[58.0796295741768631,37.4448814339638858,147.624029462041108],"luv":[58.0796295741768631,-31.624170974627738,20.0507096076703846],"rgb":[0.333333333333333315,0.6,0.466666666666666674],"xyz":[0.184663817548196107,0.260448846574297566,0.215074571282354909],"hpluv":[147.624029462041108,81.8102930750829671,58.0796295741768631],"hsluv":[147.624029462041108,63.1432913181764448,58.0796295741768631]},"#559988":{"lch":[58.4997327930321092,31.9103493306277741,167.047427400638497],"luv":[58.4997327930321092,-31.0984204046450543,7.15252701768072],"rgb":[0.333333333333333315,0.6,0.533333333333333326],"xyz":[0.195804234650139963,0.264905013415075108,0.273747434685927105],"hpluv":[167.047427400638497,69.2176742514874093,58.4997327930321092],"hsluv":[167.047427400638497,65.0191416919107752,58.4997327930321092]},"#559999":{"lch":[58.9861545428406373,31.2617491707160085,192.177050630060933],"luv":[58.9861545428406373,-30.5583742056962677,-6.59414339527129822],"rgb":[0.333333333333333315,0.6,0.6],"xyz":[0.208861198759212663,0.270127799058704321,0.342514112327045],"hpluv":[192.177050630060933,67.2515837667627494,58.9861545428406373],"hsluv":[192.177050630060933,66.9883413382070216,58.9861545428406373]},"#5599aa":{"lch":[59.5393884281606915,36.5784761777074152,214.841775998693208],"luv":[59.5393884281606915,-30.0211576326403424,-20.8977274812183715],"rgb":[0.333333333333333315,0.6,0.66666666666666663],"xyz":[0.223918891724465219,0.276150876244805388,0.421817961944043585],"hpluv":[214.841775998693208,77.957978019602777,59.5393884281606915],"hsluv":[214.841775998693208,69.0007957908225,59.5393884281606915]},"#5599bb":{"lch":[60.1593377819191488,46.1560476826162613,230.269588518041076],"luv":[60.1593377819191488,-29.5018430010724479,-35.4967885479802],"rgb":[0.333333333333333315,0.6,0.733333333333333282],"xyz":[0.241056483831801838,0.283005913087740146,0.512075947042685331],"hpluv":[230.269588518041076,97.3564866347465312,60.1593377819191488],"hsluv":[230.269588518041076,71.0120526680823758,60.1593377819191488]},"#5599cc":{"lch":[60.8453721774886276,57.9560381686168284,239.960256152221575],"luv":[60.8453721774886276,-29.0128279276179057,-50.1712883614184761],"rgb":[0.333333333333333315,0.6,0.8],"xyz":[0.260348859275523592,0.290722863265228948,0.613682457712955487],"hpluv":[239.960256152221575,120.867757439807349,60.8453721774886276],"hsluv":[239.960256152221575,72.9851794318318667,60.8453721774886276]},"#5599dd":{"lch":[61.596386585270082,70.7674616346471623,246.194917025964173],"luv":[61.596386585270082,-28.563620381934669,-64.7468394355121],"rgb":[0.333333333333333315,0.6,0.866666666666666696],"xyz":[0.281867184826157136,0.29933019348548251,0.727012305612961485],"hpluv":[246.194917025964173,145.7866339341696,61.596386585270082],"hsluv":[246.194917025964173,74.8914393241793164,61.596386585270082]},"#5599ee":{"lch":[62.4108626997728209,83.9573424358243,250.401946751580681],"luv":[62.4108626997728209,-28.1609349474859023,-79.0935970339554757],"rgb":[0.333333333333333315,0.6,0.933333333333333348],"xyz":[0.305679365092331845,0.308855065591952527,0.852423121681484708],"hpluv":[250.401946751580681,170.701691169737018,62.4108626997728209],"hsluv":[250.401946751580681,83.3865807682554845,62.4108626997728209]},"#5599ff":{"lch":[63.2869312953637,97.1853240423286309,253.372761171991215],"luv":[63.2869312953637,-27.8089904224615658,-93.1216798650875859],"rgb":[0.333333333333333315,0.6,1],"xyz":[0.331850413502163266,0.319323484955885251,0.990257309973266553],"hpluv":[253.372761171991215,194.861470594675211,63.2869312953637],"hsluv":[253.372761171991215,99.9999999999986215,63.2869312953637]},"#440000":{"lch":[10.7708306123528814,36.2226426723970221,12.1770506300617765],"luv":[10.7708306123528814,35.407649887332731,7.64056094984030221],"rgb":[0.266666666666666663,0,0],"xyz":[0.0238384275584062923,0.0122916892098035059,0.00111742629180027137],"hpluv":[12.1770506300617765,426.746789183125145,10.7708306123528814],"hsluv":[12.1770506300617765,100.000000000002203,10.7708306123528814]},"#440011":{"lch":[11.0614468716721248,32.5827232355020158,4.73042674181564848],"luv":[11.0614468716721248,32.4717377839629151,2.68702414036008763],"rgb":[0.266666666666666663,0,0.0666666666666666657],"xyz":[0.024850093058043414,0.0126963554096583605,0.00644553125655590239],"hpluv":[4.73042674181564848,373.778888471265759,11.0614468716721248],"hsluv":[4.73042674181564848,99.999999999996831,11.0614468716721248]},"#440022":{"lch":[11.5842423793746683,28.6540476811609395,350.304317532446703],"luv":[11.5842423793746683,28.2447579299318896,-4.82577434136679706],"rgb":[0.266666666666666663,0,0.133333333333333331],"xyz":[0.0267254511965204326,0.0134464986650491784,0.0163224174525351],"hpluv":[350.304317532446703,313.875682434467763,11.5842423793746683],"hsluv":[350.304317532446703,99.9999999999974847,11.5842423793746683]},"#440033":{"lch":[12.4041921203750505,27.3919603751935874,328.642516788172941],"luv":[12.4041921203750505,23.3910134404871357,-14.2541216293086901],"rgb":[0.266666666666666663,0,0.2],"xyz":[0.0298132019289781731,0.0146815989580322912,0.0325845713101462417],"hpluv":[328.642516788172941,280.216663156604227,12.4041921203750505],"hsluv":[328.642516788172941,99.9999999999981668,12.4041921203750505]},"#440044":{"lch":[13.5105146335658439,30.7747615701782742,307.715012949243601],"luv":[13.5105146335658439,18.8259784531467211,-24.3447835271332202],"rgb":[0.266666666666666663,0,0.266666666666666663],"xyz":[0.0342711971731970502,0.0164647970557198695,0.0560633462630328802],"hpluv":[307.715012949243601,289.042783730483222,13.5105146335658439],"hsluv":[307.715012949243601,99.9999999999987779,13.5105146335658439]},"#440055":{"lch":[14.871657786523194,37.5926423334987589,293.358518425732086],"luv":[14.871657786523194,14.9048564440935021,-34.5116214049025416],"rgb":[0.266666666666666663,0,0.333333333333333315],"xyz":[0.0402336112125590423,0.0188497626714647,0.0874653935370067886],"hpluv":[293.358518425732086,320.761913781574776,14.871657786523194],"hsluv":[293.358518425732086,99.999999999999261,14.871657786523194]},"#440066":{"lch":[16.4463097679727497,46.0898544445027,284.618444278650202],"luv":[16.4463097679727497,11.6321972733021664,-44.597832562922008],"rgb":[0.266666666666666663,0,0.4],"xyz":[0.0478186069860672205,0.0218837609808680139,0.127413037944150764],"hpluv":[284.618444278650202,355.611827609674208,16.4463097679727497],"hsluv":[284.618444278650202,99.9999999999996447,16.4463097679727497]},"#440077":{"lch":[18.1919811936642475,55.3198462112611651,279.251207899416613],"luv":[18.1919811936642475,8.8934050845755,-54.6002997321373],"rgb":[0.266666666666666663,0,0.466666666666666674],"xyz":[0.0571326200062691331,0.0256093661889488303,0.176466839850548673],"hpluv":[279.251207899416613,385.869357778503058,18.1919811936642475],"hsluv":[279.251207899416613,100.000000000000028,18.1919811936642475]},"#440088":{"lch":[20.0701231572475791,64.8751824688912,275.807883046004235],"luv":[20.0701231572475791,6.56492582220058196,-64.5421648949036353],"rgb":[0.266666666666666663,0,0.533333333333333326],"xyz":[0.0682730371082129611,0.0300655330297264212,0.235139703254120841],"hpluv":[275.807883046004235,410.173767132845569,20.0701231572475791],"hsluv":[275.807883046004235,100.000000000000284,20.0701231572475791]},"#440099":{"lch":[22.0482755473713041,74.5764302852581267,273.495279820248],"luv":[22.0482755473713041,4.54664979059262,-74.4377050275844283],"rgb":[0.266666666666666663,0,0.6],"xyz":[0.0813300012172856746,0.0352883186733555787,0.303906380895238748],"hpluv":[273.495279820248,429.20649964036636,22.0482755473713041],"hsluv":[273.495279820248,100.000000000000384,22.0482755473713041]},"#4400aa":{"lch":[24.1003299188330615,84.3353594354864811,271.878389761009714],"luv":[24.1003299188330615,2.7643624238057809,-84.290041828810061],"rgb":[0.266666666666666663,0,0.66666666666666663],"xyz":[0.0963876941825382166,0.0413113958594566871,0.383210230512237349],"hpluv":[271.878389761009714,444.044033459252,24.1003299188330615],"hsluv":[271.878389761009714,100.000000000000398,24.1003299188330615]},"#4400bb":{"lch":[26.2058661049044161,94.1030045511215434,270.708980538846049],"luv":[26.2058661049044161,1.16440507249082947,-94.0958002589677704],"rgb":[0.266666666666666663,0,0.733333333333333282],"xyz":[0.113525286289874863,0.0481664327023914457,0.473468215610879095],"hpluv":[270.708980538846049,455.663559843794246,26.2058661049044161],"hsluv":[270.708980538846049,100.000000000000597,26.2058661049044161]},"#4400cc":{"lch":[28.3491756730399374,103.84959146554381,269.838851579513857],"luv":[28.3491756730399374,-0.292083914573144032,-103.849180711969012],"rgb":[0.266666666666666663,0,0.8],"xyz":[0.132817661733596604,0.0558833828798802473,0.575074726281149196],"hpluv":[269.838851579513857,464.840204698682,28.3491756730399374],"hsluv":[269.838851579513857,100.00000000000054,28.3491756730399374]},"#4400dd":{"lch":[30.5182871942398464,113.556060117994207,269.175711116484081],"luv":[30.5182871942398464,-1.63362415099869285,-113.544308803456943],"rgb":[0.266666666666666663,0,0.866666666666666696],"xyz":[0.154335987284230147,0.0644907131001337813,0.688404574181155193],"hpluv":[269.175711116484081,472.160320460814546,30.5182871942398464],"hsluv":[269.175711116484081,100.000000000000583,30.5182871942398464]},"#4400ee":{"lch":[32.7041215904695406,123.209994802530275,268.6598990566049],"luv":[32.7041215904695406,-2.88151723804096926,-123.176295112519156],"rgb":[0.266666666666666663,0,0.933333333333333348],"xyz":[0.178148167550404884,0.0740155852066038122,0.813815390249678416],"hpluv":[268.6598990566049,478.060407115886846,32.7041215904695406],"hsluv":[268.6598990566049,100.000000000000682,32.7041215904695406]},"#4400ff":{"lch":[34.8998090420324161,132.803387625161918,268.251574356178935],"luv":[34.8998090420324161,-4.05197057625710322,-132.741558297197031],"rgb":[0.266666666666666663,0,1],"xyz":[0.204319215960236278,0.0844840045705365084,0.951649578541460262],"hpluv":[268.251574356178935,482.864668803745815,34.8998090420324161],"hsluv":[268.251574356178935,100.000000000000824,34.8998090420324161]},"#441100":{"lch":[13.412021407860891,32.8203905090178907,19.8063713084711637],"luv":[13.412021407860891,30.878837797926078,11.1209446277644677],"rgb":[0.266666666666666663,0.0666666666666666657,0],"xyz":[0.025842827819334703,0.0163004897316603795,0.00178555971210972225],"hpluv":[19.8063713084711637,310.519467471828818,13.412021407860891],"hsluv":[19.8063713084711637,100.00000000000226,13.412021407860891]},"#441111":{"lch":[13.6534230745514442,29.3615880370140658,12.1770506300618155],"luv":[13.6534230745514442,28.7009658227648572,6.19333616848069],"rgb":[0.266666666666666663,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0268544933189718248,0.0167051559315152323,0.00711366467686535414],"hpluv":[12.1770506300618155,272.883526996448495,13.6534230745514442],"hsluv":[12.1770506300618155,63.9450685777404857,13.6534230745514442]},"#441122":{"lch":[14.0908014406849,25.4444274015795777,356.558123350094036],"luv":[14.0908014406849,25.3985311285907684,-1.52758053936917793],"rgb":[0.266666666666666663,0.0666666666666666657,0.133333333333333331],"xyz":[0.0287298514574488434,0.0174552991869060536,0.0169905508728445502],"hpluv":[356.558123350094036,229.137575437366081,14.0908014406849],"hsluv":[356.558123350094036,68.4589860949294,14.0908014406849]},"#441133":{"lch":[14.7844111345271223,24.27011571268606,331.648240125609],"luv":[14.7844111345271223,21.358884082162259,-11.5254755854986932],"rgb":[0.266666666666666663,0.0666666666666666657,0.2],"xyz":[0.0318176021899065839,0.0186903994798891665,0.0332527047304557],"hpluv":[331.648240125609,208.308572243058649,14.7844111345271223],"hsluv":[331.648240125609,73.8494669394836762,14.7844111345271223]},"#441144":{"lch":[15.733846020816415,28.3218749128348932,307.715012949243942],"luv":[15.733846020816415,17.3254634530922189,-22.4043949865608347],"rgb":[0.266666666666666663,0.0666666666666666657,0.266666666666666663],"xyz":[0.0362755974341254644,0.0204735975775767395,0.0567314796833423354],"hpluv":[307.715012949243942,228.415952286272613,15.733846020816415],"hsluv":[307.715012949243942,79.0249627886423127,15.733846020816415]},"#441155":{"lch":[16.9210970319156715,36.0495621705848492,292.339268883647492],"luv":[16.9210970319156715,13.7020846665308547,-33.3440220801582683],"rgb":[0.266666666666666663,0.0666666666666666657,0.333333333333333315],"xyz":[0.0422380114734874565,0.0228585631933215724,0.0881335269573162439],"hpluv":[292.339268883647492,270.340308544513618,16.9210970319156715],"hsluv":[292.339268883647492,83.4150097743113292,16.9210970319156715]},"#441166":{"lch":[18.3175541838796221,45.305096001334384,283.521508601515677],"luv":[18.3175541838796221,10.592801308498224,-44.0493392019540195],"rgb":[0.266666666666666663,0.0666666666666666657,0.4],"xyz":[0.0498230072469956348,0.025892561502724884,0.128081171364460206],"hpluv":[283.521508601515677,313.84766122316239,18.3175541838796221],"hsluv":[283.521508601515677,86.9023417707839485,18.3175541838796221]},"#441177":{"lch":[19.8903241139664431,55.0653797371295326,278.304914930180701],"luv":[19.8903241139664431,7.95370312292975612,-54.4879312529533735],"rgb":[0.266666666666666663,0.0666666666666666657,0.466666666666666674],"xyz":[0.0591370202671975473,0.0296181667108057,0.177134973270858115],"hpluv":[278.304914930180701,351.298345972174616,19.8903241139664431],"hsluv":[278.304914930180701,89.590178354910762,19.8903241139664431]},"#441188":{"lch":[21.6068634066631873,64.9598488176177824,275.03199667533886],"luv":[21.6068634066631873,5.69776159856002,-64.7094851716016422],"rgb":[0.266666666666666663,0.0666666666666666657,0.533333333333333326],"xyz":[0.0702774373691413823,0.0340743335515832912,0.235807836674430282],"hpluv":[275.03199667533886,381.498298720028686,21.6068634066631873],"hsluv":[275.03199667533886,91.6417594317348545,21.6068634066631873]},"#441199":{"lch":[23.437698327746169,74.8628785955689153,272.864058339832695],"luv":[23.437698327746169,3.74063102269824954,-74.769367197849931],"rgb":[0.266666666666666663,0.0666666666666666657,0.6],"xyz":[0.0833344014782140818,0.0392971191952124557,0.304574514315548162],"hpluv":[272.864058339832695,405.313331644098525,23.437698327746169],"hsluv":[272.864058339832695,93.2101268622270283,23.437698327746169]},"#4411aa":{"lch":[25.3575925472355337,84.7316846097945273,271.361966301038933],"luv":[25.3575925472355337,2.01394993465393446,-84.7077468858332878],"rgb":[0.266666666666666663,0.0666666666666666657,0.66666666666666663],"xyz":[0.0983920944434666378,0.0453201963813135572,0.383878363932546762],"hpluv":[271.361966301038933,424.011024215555381,25.3575925472355337],"hsluv":[271.361966301038933,94.4180404350203872,25.3575925472355337]},"#4411bb":{"lch":[27.345710117802,94.5503656807627,270.282295464151048],"luv":[27.345710117802,0.465846378280231621,-94.5492180693092337],"rgb":[0.266666666666666663,0.0666666666666666657,0.733333333333333282],"xyz":[0.115529686550803284,0.0521752332242483158,0.474136349031188509],"hpluv":[270.282295464151048,438.746165283595928,27.345710117802],"hsluv":[270.282295464151048,95.3579307613671,27.345710117802]},"#4411cc":{"lch":[29.3852471201757481,104.311620276565549,269.482476007084244],"luv":[29.3852471201757481,-0.942181651797373232,-104.307365120864873],"rgb":[0.266666666666666663,0.0666666666666666657,0.8],"xyz":[0.134822061994525,0.0598921834017371174,0.575742859701458665],"hpluv":[269.482476007084244,450.445933463405538,29.3852471201757481],"hsluv":[269.482476007084244,96.097629526357963,29.3852471201757481]},"#4411dd":{"lch":[31.4628506304707116,114.011096091836691,268.874895171215144],"luv":[31.4628506304707116,-2.23866735310417164,-113.989115272223103],"rgb":[0.266666666666666663,0.0666666666666666657,0.866666666666666696],"xyz":[0.156340387545158555,0.0684995136219906514,0.689072707601464662],"hpluv":[268.874895171215144,459.820552568088715,31.4628506304707116],"hsluv":[268.874895171215144,96.6865382756064378,31.4628506304707116]},"#4411ee":{"lch":[33.5680052377948073,123.64577428881995,268.40345713539682],"luv":[33.5680052377948073,-3.44493495426529961,-123.597774747940718],"rgb":[0.266666666666666663,0.0666666666666666657,0.933333333333333348],"xyz":[0.180152567811333292,0.0780243857284606823,0.814483523669987886],"hpluv":[268.40345713539682,467.404695294247745,33.5680052377948073],"hsluv":[268.40345713539682,97.1606953094382817,33.5680052377948073]},"#4411ff":{"lch":[35.6924730299026081,133.21354134861582,268.030966648817412],"luv":[35.6924730299026081,-4.57713081064657,-133.134884505082312],"rgb":[0.266666666666666663,0.0666666666666666657,1],"xyz":[0.206323616221164685,0.0884928050923933784,0.952317711961769731],"hpluv":[268.030966648817412,473.599309181226886,35.6924730299026081],"hsluv":[268.030966648817412,99.999999999999531,35.6924730299026081]},"#99aa00":{"lch":[66.1528677227115907,74.3468963767982842,94.6234982733471384],"luv":[66.1528677227115907,-5.99293371363564553,74.1049643840839565],"rgb":[0.6,0.66666666666666663,0],"xyz":[0.275106719282890377,0.355217387920677,0.0540714229698005533],"hpluv":[94.6234982733471384,142.611154102436132,66.1528677227115907],"hsluv":[94.6234982733471384,100.000000000002217,66.1528677227115907]},"#99aa11":{"lch":[66.184052262829,73.0311244080130706,94.7508326892346275],"luv":[66.184052262829,-6.04863423256243316,72.7802112955118901],"rgb":[0.6,0.66666666666666663,0.0666666666666666657],"xyz":[0.276118384782527482,0.355622054120531828,0.059399527934556183],"hpluv":[94.7508326892346275,140.021252931940353,66.184052262829],"hsluv":[94.7508326892346275,98.1390759685954,66.184052262829]},"#99aa22":{"lch":[66.2417975711995695,70.6178785015108872,94.9968669170454376],"luv":[66.2417975711995695,-6.15090676716144458,70.3494926065273],"rgb":[0.6,0.66666666666666663,0.133333333333333331],"xyz":[0.277993742921004539,0.356372197375922628,0.0692764141305353826],"hpluv":[94.9968669170454376,135.276352185575888,66.2417975711995695],"hsluv":[94.9968669170454376,94.7283581868373403,66.2417975711995695]},"#99aa33":{"lch":[66.3366981156763273,66.7162457715457,95.432805623918],"luv":[66.3366981156763273,-6.31658226271684953,66.416550937003791],"rgb":[0.6,0.66666666666666663,0.2],"xyz":[0.281081493653462244,0.357607297668905755,0.0855385679881465189],"hpluv":[95.432805623918,127.619510800204154,66.3366981156763273],"hsluv":[95.432805623918,89.220332613511431,66.3366981156763273]},"#99aa44":{"lch":[66.4733277612737652,61.2361369282317085,96.1403021162386],"luv":[66.4733277612737652,-6.55002950525979344,60.8848222414533211],"rgb":[0.6,0.66666666666666663,0.266666666666666663],"xyz":[0.28553948889768116,0.359390495766593321,0.109017342941033157],"hpluv":[96.1403021162386,116.896010950353556,66.4733277612737652],"hsluv":[96.1403021162386,81.495914591183535,66.4733277612737652]},"#99aa55":{"lch":[66.6553605356915853,54.1785870660784568,97.2658616968833769],"luv":[66.6553605356915853,-6.85216039608048888,53.7435316515674231],"rgb":[0.6,0.66666666666666663,0.333333333333333315],"xyz":[0.291501902937043145,0.361775461382338182,0.140419390215007073],"hpluv":[97.2658616968833769,103.141138146130345,66.6553605356915853],"hsluv":[97.2658616968833769,71.5645731506566563,66.6553605356915853]},"#99aa66":{"lch":[66.8857782590742573,45.6318272725976186,99.1048787772859328],"luv":[66.8857782590742573,-7.22087825912546055,45.0568815765480224],"rgb":[0.6,0.66666666666666663,0.4],"xyz":[0.29908689871055133,0.3648094596917415,0.180367034622151035],"hpluv":[99.1048787772859328,86.5711928674077882,66.8857782590742573],"hsluv":[99.1048787772859328,59.5487850828384495,66.8857782590742573]},"#99aa77":{"lch":[67.16697930835997,35.7793898766585272,102.348317274789],"luv":[67.16697930835997,-7.65157453727816339,34.9516544250255947],"rgb":[0.6,0.66666666666666663,0.466666666666666674],"xyz":[0.308400911730753235,0.368535064899822296,0.229420836528548944],"hpluv":[102.348317274789,67.5952906506277742,67.16697930835997],"hsluv":[102.348317274789,45.6652750399669927,67.16697930835997]},"#99aa88":{"lch":[67.5008436530857523,24.9656779050761699,109.02352802026725],"luv":[67.5008436530857523,-8.13772239581267165,23.6021725158659379],"rgb":[0.6,0.66666666666666663,0.533333333333333326],"xyz":[0.319541328832697036,0.372991231740599893,0.288093699932121083],"hpluv":[109.02352802026725,46.9324783865521482,67.5008436530857523],"hsluv":[109.02352802026725,30.201776912068496,67.5008436530857523]},"#99aa99":{"lch":[67.8887769686822509,14.1753245834603039,127.715012949228395],"luv":[67.8887769686822509,-8.67153282620695443,11.213578621049983],"rgb":[0.6,0.66666666666666663,0.6],"xyz":[0.332598292941769791,0.378214017384229051,0.356860377573239],"hpluv":[127.715012949228395,26.4956363039349618,67.8887769686822509],"hsluv":[127.715012949228395,13.4910013502760879,67.8887769686822509]},"#99aaaa":{"lch":[68.3317447891119798,9.45739632834534838,192.177050630059227],"luv":[68.3317447891119798,-9.24460926466251642,-1.99487965930680966],"rgb":[0.6,0.66666666666666663,0.66666666666666663],"xyz":[0.347655985907022291,0.384237094570330173,0.436164227190237619],"hpluv":[192.177050630059227,17.5625836428344968,68.3317447891119798],"hsluv":[192.177050630059227,17.4938385380963979,68.3317447891119798]},"#99aabb":{"lch":[68.8303024285350205,18.6222464744475609,238.07162859052869],"luv":[68.8303024285350205,-9.84853629911531137,-15.8048852105949411],"rgb":[0.6,0.66666666666666663,0.733333333333333282],"xyz":[0.364793578014358966,0.391092131413264932,0.52642221228887931],"hpluv":[238.07162859052869,34.3314162301526622,68.8303024285350205],"hsluv":[238.07162859052869,21.6214176811966929,68.8303024285350205]},"#99aacc":{"lch":[69.3846237501618646,31.7868422871013969,250.758533684062627],"luv":[69.3846237501618646,-10.475354770609286,-30.0111693376804425],"rgb":[0.6,0.66666666666666663,0.8],"xyz":[0.38408595345808072,0.398809081590753733,0.628028722959149466],"hpluv":[250.758533684062627,58.1330991079694357,69.3846237501618646],"hsluv":[250.758533684062627,38.7837447081888556,69.3846237501618646]},"#99aadd":{"lch":[69.9945303682966,45.800012761152324,255.951164454091042],"luv":[69.9945303682966,-11.1178995355210173,-44.4300965432191859],"rgb":[0.6,0.66666666666666663,0.866666666666666696],"xyz":[0.405604279008714208,0.40741641181100724,0.741358570859155463],"hpluv":[255.951164454091042,83.0311057452140346,69.9945303682966],"hsluv":[255.951164454091042,58.1375555879370935,69.9945303682966]},"#99aaee":{"lch":[70.6595219654936,60.0690973767372896,258.700300270425373],"luv":[70.6595219654936,-11.7699993169592201,-58.9046990972259],"rgb":[0.6,0.66666666666666663,0.933333333333333348],"xyz":[0.429416459274889,0.416941283917477257,0.866769386927678687],"hpluv":[258.700300270425373,107.874733956899746,70.6595219654936],"hsluv":[258.700300270425373,78.5353046306170199,70.6595219654936]},"#99aaff":{"lch":[71.378807837336737,74.3523754541628676,260.378973553217],"luv":[71.378807837336737,-12.4265554124673407,-73.3065921746310636],"rgb":[0.6,0.66666666666666663,1],"xyz":[0.455587507684720339,0.42740970328141,1.00460357521946064],"hpluv":[260.378973553217,132.179737350703419,71.378807837336737],"hsluv":[260.378973553217,99.99999999999784,71.378807837336737]},"#442200":{"lch":[17.3350542344952459,28.221345162136295,35.6239292836567927],"luv":[17.3350542344952459,22.9399340369809366,16.4378754448194186],"rgb":[0.266666666666666663,0.133333333333333331,0],"xyz":[0.0295584515541026382,0.023731737201196354,0.00302410095703233277],"hpluv":[35.6239292836567927,206.581692971425213,17.3350542344952459],"hsluv":[35.6239292836567927,100.000000000002331,17.3350542344952459]},"#442211":{"lch":[17.5234603686317101,24.6335663377647,28.604455948929278],"luv":[17.5234603686317101,21.6269347365689519,11.7935696215031331],"rgb":[0.266666666666666663,0.133333333333333331,0.0666666666666666657],"xyz":[0.03057011705373976,0.0241364034010512069,0.00835220592178796337],"hpluv":[28.604455948929278,178.380241443971528,17.5234603686317101],"hsluv":[28.604455948929278,74.2089163354216765,17.5234603686317101]},"#442222":{"lch":[17.8672188947691239,19.9697171584766728,12.1770506300619807],"luv":[17.8672188947691239,19.520407715454283,4.21227800744330061],"rgb":[0.266666666666666663,0.133333333333333331,0.133333333333333331],"xyz":[0.0324454751922167786,0.0248865466564420282,0.0182290921177671594],"hpluv":[12.1770506300619807,141.825486578211439,17.8672188947691239],"hsluv":[12.1770506300619807,33.2341074785113406,17.8672188947691239]},"#442233":{"lch":[18.4184657925371695,17.8165085202964129,340.00784749027008],"luv":[18.4184657925371695,16.7428760354525643,-6.09131167444770583],"rgb":[0.266666666666666663,0.133333333333333331,0.2],"xyz":[0.0355332259246745191,0.026121646949425141,0.0344912459753783],"hpluv":[340.00784749027008,122.746318288975218,18.4184657925371695],"hsluv":[340.00784749027008,42.0888291674463915,18.4184657925371695]},"#442244":{"lch":[19.1844846541763658,22.4593922221866436,307.715012949244738],"luv":[19.1844846541763658,13.7391814744519145,-17.7668002578431441],"rgb":[0.266666666666666663,0.133333333333333331,0.266666666666666663],"xyz":[0.0399912211688934,0.0279048450471127141,0.0579700209282649412],"hpluv":[307.715012949244738,148.554970924606664,19.1844846541763658],"hsluv":[307.715012949244738,51.3954955066877517,19.1844846541763658]},"#442255":{"lch":[20.1595909359386596,31.6741463862469885,290.023039430837684],"luv":[20.1595909359386596,10.8451637140407797,-29.7596030436068872],"rgb":[0.266666666666666663,0.133333333333333331,0.333333333333333315],"xyz":[0.0459536352082553917,0.030289810662857547,0.0893720682022388496],"hpluv":[290.023039430837684,199.371249454156271,20.1595909359386596],"hsluv":[290.023039430837684,59.9942694866150177,20.1595909359386596]},"#442266":{"lch":[21.3287002071660226,42.3208084503031685,281.207510247893651],"luv":[21.3287002071660226,8.22559640374024781,-41.5137373852322256],"rgb":[0.266666666666666663,0.133333333333333331,0.4],"xyz":[0.0535386309817635631,0.0333238089722608585,0.129319712609382825],"hpluv":[281.207510247893651,251.784442505332123,21.3287002071660226],"hsluv":[281.207510247893651,67.3437899952651406,21.3287002071660226]},"#442277":{"lch":[22.6709734328231463,53.1747129073287113,276.391210783405313],"luv":[22.6709734328231463,5.91922219198187882,-52.8442324328661215],"rgb":[0.266666666666666663,0.133333333333333331,0.466666666666666674],"xyz":[0.0628526440019654825,0.0370494141803416749,0.178373514515780734],"hpluv":[276.391210783405313,297.628360698128461,22.6709734328231463],"hsluv":[276.391210783405313,73.3546851738733,22.6709734328231463]},"#442288":{"lch":[24.1630625686767715,63.8732961962266543,273.501787345358252],"luv":[24.1630625686767715,3.90136026108148481,-63.7540379512086801],"rgb":[0.266666666666666663,0.133333333333333331,0.533333333333333326],"xyz":[0.0739930611039093106,0.0415055810211192727,0.237046377919352902],"hpluv":[273.501787345358252,335.433687598002,24.1630625686767715],"hsluv":[273.501787345358252,78.1624380374364875,24.1630625686767715]},"#442299":{"lch":[25.7815797239733442,74.3421908873045112,271.638748742297366],"luv":[25.7815797239733442,2.1260128283266071,-74.3117851715204836],"rgb":[0.266666666666666663,0.133333333333333331,0.6],"xyz":[0.087050025212982024,0.0467283666647484303,0.305813055560470781],"hpluv":[271.638748742297366,365.902315457699217,25.7815797239733442],"hsluv":[271.638748742297366,81.974423252689391,25.7815797239733442]},"#4422aa":{"lch":[27.5046927955253,84.5952413694672885,270.370058715866037],"luv":[27.5046927955253,0.546375125789773097,-84.5934769150692176],"rgb":[0.266666666666666663,0.133333333333333331,0.66666666666666663],"xyz":[0.102107718178234566,0.0527514438508495317,0.385116905177469382],"hpluv":[270.370058715866037,390.281946032504152,27.5046927955253],"hsluv":[270.370058715866037,84.9950544768410765,27.5046927955253]},"#4422bb":{"lch":[29.3129652277151251,94.666070770970677,269.4687873747244],"luv":[29.3129652277151251,-0.87767531850734,-94.6620020982533],"rgb":[0.266666666666666663,0.133333333333333331,0.733333333333333282],"xyz":[0.119245310285571213,0.0596064806937842903,0.475374890276111128],"hpluv":[269.4687873747244,409.801860030343846,29.3129652277151251],"hsluv":[269.4687873747244,87.3984435941311517,29.3129652277151251]},"#4422cc":{"lch":[31.1896477872922873,104.586362634530047,268.806646243455475],"luv":[31.1896477872922873,-2.17816227055809408,-104.563678484665701],"rgb":[0.266666666666666663,0.133333333333333331,0.8],"xyz":[0.138537685729292953,0.0673234308712731,0.576981400946381284],"hpluv":[268.806646243455475,425.504262664631483,31.1896477872922873],"hsluv":[268.806646243455475,89.3235413687926325,31.1896477872922873]},"#4422dd":{"lch":[33.1206275871571,114.38069493574325,268.306702684458742],"luv":[33.1206275871571,-3.37987077956927,-114.330747603157818],"rgb":[0.266666666666666663,0.133333333333333331,0.866666666666666696],"xyz":[0.160056011279926497,0.0759307610915266329,0.690311248846387282],"hpluv":[268.306702684458742,438.22131720165,33.1206275871571],"hsluv":[268.306702684458742,90.877884626449017,33.1206275871571]},"#4422ee":{"lch":[35.0941942457284952,124.066768949832422,267.920557621455941],"luv":[35.0941942457284952,-4.50178121539094178,-123.985068147498538],"rgb":[0.266666666666666663,0.133333333333333331,0.933333333333333348],"xyz":[0.183868191546101234,0.0854556331979966499,0.815722064914910505],"hpluv":[267.920557621455941,448.600262181889605,35.0941942457284952],"hsluv":[267.920557621455941,93.3452679661598523,35.0941942457284952]},"#4422ff":{"lch":[37.1007304630435,133.656986375695226,267.616535799179189],"luv":[37.1007304630435,-5.55843332369103926,-133.54135623850334],"rgb":[0.266666666666666663,0.133333333333333331,1],"xyz":[0.210039239955932627,0.0959240525619293599,0.95355625320669235],"hpluv":[267.616535799179189,457.139270395610822,37.1007304630435],"hsluv":[267.616535799179189,99.999999999999531,37.1007304630435]},"#bbaa00":{"lch":[68.9787767407419,76.4078567958722346,76.7962953219783344],"luv":[68.9787767407419,17.4526104568015299,74.3879490803561652],"rgb":[0.733333333333333282,0.66666666666666663,0],"xyz":[0.348671553863065253,0.393149255751080451,0.0575197745907461769],"hpluv":[76.7962953219783344,140.560034871296551,68.9787767407419],"hsluv":[76.7962953219783344,100.000000000002245,68.9787767407419]},"#bbaa11":{"lch":[69.0079227935645747,75.1793224892161902,76.6760735029220797],"luv":[69.0079227935645747,17.325534429098667,73.1556996185784811],"rgb":[0.733333333333333282,0.66666666666666663,0.0666666666666666657],"xyz":[0.349683219362702358,0.393553921950935304,0.0628478795555018],"hpluv":[76.6760735029220797,138.241608756115426,69.0079227935645747],"hsluv":[76.6760735029220797,98.327691673723,69.0079227935645747]},"#bbaa22":{"lch":[69.0618990033698168,72.923722885125926,76.4446579961253718],"luv":[69.0618990033698168,17.0921879270318975,70.8923583420220496],"rgb":[0.733333333333333282,0.66666666666666663,0.133333333333333331],"xyz":[0.351558577501179415,0.394304065206326104,0.072724765751481],"hpluv":[76.4446579961253718,133.98915323660276,69.0618990033698168],"hsluv":[76.4446579961253718,95.2591470849694701,69.0618990033698168]},"#bbaa33":{"lch":[69.1506211183474448,69.2704933393546298,76.037430434814425],"luv":[69.1506211183474448,16.7141363744442764,67.2237970716773248],"rgb":[0.733333333333333282,0.66666666666666663,0.2],"xyz":[0.35464632823363712,0.395539165499309231,0.0889869196090921494],"hpluv":[76.037430434814425,127.113454601419591,69.1506211183474448],"hsluv":[76.037430434814425,90.2940538071316752,69.1506211183474448]},"#bbaa44":{"lch":[69.2783900215706439,64.125663575375043,75.3840533289293688],"luv":[69.2783900215706439,16.1813855024742246,62.0504914743025964],"rgb":[0.733333333333333282,0.66666666666666663,0.266666666666666663],"xyz":[0.359104323477856036,0.397322363596996797,0.112465694561978788],"hpluv":[75.3840533289293688,117.455514697890109,69.2783900215706439],"hsluv":[75.3840533289293688,83.3108908827552455,69.2783900215706439]},"#bbaa55":{"lch":[69.4486803199850158,57.4759826537307603,74.3632861967268752],"luv":[69.4486803199850158,15.4919003466967737,55.3487994961044762],"rgb":[0.733333333333333282,0.66666666666666663,0.333333333333333315],"xyz":[0.365066737517218,0.399707329212741658,0.143867741835952689],"hpluv":[74.3632861967268752,105.017514149864908,69.4486803199850158],"hsluv":[74.3632861967268752,74.2978448337225501,69.4486803199850158]},"#bbaa66":{"lch":[69.6643364030220766,49.3851711615203186,72.7428070953876],"luv":[69.6643364030220766,14.6506772614363818,47.1619845472377079],"rgb":[0.733333333333333282,0.66666666666666663,0.4],"xyz":[0.372651733290726206,0.402741327522145,0.183815386243096651],"hpluv":[72.7428070953876,89.9550160304510342,69.6643364030220766],"hsluv":[72.7428070953876,63.3404983901227254,69.6643364030220766]},"#bbaa77":{"lch":[69.927675331165787,39.998456174204172,70.017617272721],"luv":[69.927675331165787,13.6687200676018641,37.5904587366697314],"rgb":[0.733333333333333282,0.66666666666666663,0.466666666666666674],"xyz":[0.381965746310928111,0.406466932730225772,0.23286918814949456],"hpluv":[70.017617272721,72.5827577171275635,69.927675331165787],"hsluv":[70.017617272721,50.6076787731359303,69.927675331165787]},"#bbaa88":{"lch":[70.2405480333122,29.5797452752191568,64.8698942165899837],"luv":[70.2405480333122,12.5617839686329518,26.7798975739685403],"rgb":[0.733333333333333282,0.66666666666666663,0.533333333333333326],"xyz":[0.393106163412871912,0.41092309957100337,0.291542051553066728],"hpluv":[64.8698942165899837,53.4374671266607422,70.2405480333122],"hsluv":[64.8698942165899837,36.3337734813298923,70.2405480333122]},"#bbaa99":{"lch":[70.6043801086793,18.7359983934483161,52.7186742094296079],"luv":[70.6043801086793,11.3489394865138475,14.907689570511744],"rgb":[0.733333333333333282,0.66666666666666663,0.6],"xyz":[0.406163127521944611,0.416145885214632527,0.360308729194184663],"hpluv":[52.7186742094296079,33.6732102985619051,70.6043801086793],"hsluv":[52.7186742094296079,20.7983697782308,70.6043801086793]},"#bbaaaa":{"lch":[71.0202025015365876,10.2824341490213804,12.177050630064155],"luv":[71.0202025015365876,10.0510841141786607,2.16890759569567715],"rgb":[0.733333333333333282,0.66666666666666663,0.66666666666666663],"xyz":[0.421220820487197167,0.422168962400733649,0.439612578811183263],"hpluv":[12.177050630064155,18.3718697222702261,71.0202025015365876],"hsluv":[12.177050630064155,12.5020210815887047,71.0202025015365876]},"#bbaabb":{"lch":[71.4886774714552615,14.2047670368859897,307.715012949256788],"luv":[71.4886774714552615,8.68954378602241562,-11.236869464535129],"rgb":[0.733333333333333282,0.66666666666666663,0.733333333333333282],"xyz":[0.438358412594533842,0.429023999243668408,0.529870563909825],"hpluv":[307.715012949256788,25.2136766683934965,71.4886774714552615],"hsluv":[307.715012949256788,14.1682246563909,71.4886774714552615]},"#bbaacc":{"lch":[72.010122844957138,26.1519063744379174,286.174295641089373],"luv":[72.010122844957138,7.28488198445553525,-25.1167812724863673],"rgb":[0.733333333333333282,0.66666666666666663,0.8],"xyz":[0.45765078803825554,0.43674094942115721,0.631477074580095166],"hpluv":[286.174295641089373,46.0838895939184923,72.010122844957138],"hsluv":[286.174295641089373,33.6938059680335442,72.010122844957138]},"#bbaadd":{"lch":[72.5845361735228494,39.7272427931479,278.476565574149959],"luv":[72.5845361735228494,5.85598959517198825,-39.2932717625671799],"rgb":[0.733333333333333282,0.66666666666666663,0.866666666666666696],"xyz":[0.47916911358888914,0.445348279641410716,0.744806922480101163],"hpluv":[278.476565574149959,69.451822258827633,72.5845361735228494],"hsluv":[278.476565574149959,54.5084651382981775,72.5845361735228494]},"#bbaaee":{"lch":[73.2116196006959825,53.7916684525604,274.71268656160521],"luv":[73.2116196006959825,4.41947960396952144,-53.6098106221266093],"rgb":[0.733333333333333282,0.66666666666666663,0.933333333333333348],"xyz":[0.502981293855063849,0.454873151747880733,0.870217738548624387],"hpluv":[274.71268656160521,93.2340021292866084,73.2116196006959825],"hsluv":[274.71268656160521,76.5987468488048506,73.2116196006959825]},"#bbaaff":{"lch":[73.8908057188696574,67.9996555049746121,272.519622378571285],"luv":[73.8908057188696574,2.98936916429642707,-67.9339150998584671],"rgb":[0.733333333333333282,0.66666666666666663,1],"xyz":[0.52915234226489527,0.465341571111813457,1.00805192684040623],"hpluv":[272.519622378571285,116.776549017196231,73.8908057188696574],"hsluv":[272.519622378571285,99.9999999999974847,73.8908057188696574]},"#99bb00":{"lch":[71.0859361318702696,82.3913749493211327,101.26222245755217],"luv":[71.0859361318702696,-16.0909976916487061,80.8048170552163185],"rgb":[0.6,0.733333333333333282,0],"xyz":[0.309061217191489157,0.423126383737875533,0.0653895889393331653],"hpluv":[101.26222245755217,147.074503152999483,71.0859361318702696],"hsluv":[101.26222245755217,100.000000000002302,71.0859361318702696]},"#99bb11":{"lch":[71.1136894680978457,81.2167121813616291,101.442926834262664],"luv":[71.1136894680978457,-16.1127230849120338,79.6023523040561685],"rgb":[0.6,0.733333333333333282,0.0666666666666666657],"xyz":[0.310072882691126261,0.423531049937730386,0.0707176939040888],"hpluv":[101.442926834262664,144.921066000062638,71.1136894680978457],"hsluv":[101.442926834262664,98.4331733262411,71.1136894680978457]},"#99bb22":{"lch":[71.1650900316793837,79.0601549481488917,101.789083890819583],"luv":[71.1650900316793837,-16.1527448632600859,77.392486287802754],"rgb":[0.6,0.733333333333333282,0.133333333333333331],"xyz":[0.311948240829603318,0.424281193193121187,0.080594580100068],"hpluv":[101.789083890819583,140.971066242853169,71.1650900316793837],"hsluv":[101.789083890819583,95.5563304227746357,71.1650900316793837]},"#99bb33":{"lch":[71.2495884989653,75.5680342451554168,102.392870056849247],"luv":[71.2495884989653,-16.2179420391938294,73.807222923575253],"rgb":[0.6,0.733333333333333282,0.2],"xyz":[0.315035991562061,0.425516293486104313,0.0968567339576791309],"hpluv":[102.392870056849247,134.584514176993849,71.2495884989653],"hsluv":[102.392870056849247,90.8963478676004826,71.2495884989653]},"#99bb44":{"lch":[71.3712967033779648,70.652786516275043,103.347443045401377],"luv":[71.3712967033779648,-16.3105834167977157,68.7443169368786471],"rgb":[0.6,0.733333333333333282,0.266666666666666663],"xyz":[0.319493986806279939,0.427299491583791879,0.120335508910565769],"hpluv":[103.347443045401377,125.616021445862458,71.3712967033779648],"hsluv":[103.347443045401377,84.331672265085615,71.3712967033779648]},"#99bb55":{"lch":[71.5335490617920442,64.3081830776187502,104.804237401434776],"luv":[71.5335490617920442,-16.4318507493525949,62.1734404042074189],"rgb":[0.6,0.733333333333333282,0.333333333333333315],"xyz":[0.325456400845641924,0.42968445719953674,0.151737556184539685],"hpluv":[104.804237401434776,114.076396323867073,71.5335490617920442],"hsluv":[104.804237401434776,75.8403293762878263,71.5335490617920442]},"#99bb66":{"lch":[71.7390905918245494,56.6109161874071347,107.032342660002968],"luv":[71.7390905918245494,-16.5819871692753225,54.1279367156704367],"rgb":[0.6,0.733333333333333282,0.4],"xyz":[0.33304139661915011,0.432718455508940059,0.191685200591683647],"hpluv":[107.032342660002968,100.134479122606095,71.7390905918245494],"hsluv":[107.032342660002968,65.4891515707011,71.7390905918245494]},"#99bb77":{"lch":[71.9901757540345102,47.73532562127712,110.555323727161408],"luv":[71.9901757540345102,-16.7604289857032249,44.6961892378372099],"rgb":[0.6,0.733333333333333282,0.466666666666666674],"xyz":[0.342355409639352,0.436444060717020854,0.240739002498081556],"hpluv":[110.555323727161408,84.1406731320706,71.9901757540345102],"hsluv":[110.555323727161408,53.4218452589237,71.9901757540345102]},"#99bb88":{"lch":[72.2886271035685581,38.007890289968195,116.511646356383693],"luv":[72.2886271035685581,-16.9659512259030869,34.0111191126451473],"rgb":[0.6,0.733333333333333282,0.533333333333333326],"xyz":[0.353495826741295815,0.440900227557798452,0.299411865901653695],"hpluv":[116.511646356383693,66.7180145269523592,72.2886271035685581],"hsluv":[116.511646356383693,39.8440619041218724,72.2886271035685581]},"#99bb99":{"lch":[72.6358740128595315,28.1115962970155238,127.715012949234961],"luv":[72.6358740128595315,-17.1968288028560856,22.2380512970816788],"rgb":[0.6,0.733333333333333282,0.6],"xyz":[0.366552790850368515,0.44612301320142761,0.36817854354277163],"hpluv":[127.715012949234961,49.1104221429672094,72.6358740128595315],"hsluv":[127.715012949234961,25.0059581073328268,72.6358740128595315]},"#99bbaa":{"lch":[73.0329812495468929,19.8989345424194468,151.280397210880039],"luv":[73.0329812495468929,-17.4510036711552878,9.56190706882358654],"rgb":[0.6,0.733333333333333282,0.66666666666666663],"xyz":[0.381610483815621071,0.452146090387528732,0.447482393159770231],"hpluv":[151.280397210880039,34.5740392557976648,73.0329812495468929],"hsluv":[151.280397210880039,28.0327457551748473,73.0329812495468929]},"#99bbbb":{"lch":[73.4806726048520602,18.1342571597367979,192.177050630060279],"luv":[73.4806726048520602,-17.7262447217336288,-3.82511840348453136],"rgb":[0.6,0.733333333333333282,0.733333333333333282],"xyz":[0.398748075922957745,0.45900112723046349,0.537740378258412],"hpluv":[192.177050630060279,31.3159775944509384,73.4806726048520602],"hsluv":[192.177050630060279,31.1933976709334857,73.4806726048520602]},"#99bbcc":{"lch":[73.9793524714423,25.2831678504957686,224.541830016242],"luv":[73.9793524714423,-18.0202882726228886,-17.734367401402082],"rgb":[0.6,0.733333333333333282,0.8],"xyz":[0.418040451366679444,0.466718077407952292,0.639346888928682189],"hpluv":[224.541830016242,43.3670907410057183,73.9793524714423],"hsluv":[224.541830016242,34.4349286550277398,73.9793524714423]},"#99bbdd":{"lch":[74.5291269946933284,36.8692317824205347,240.185846709470951],"luv":[74.5291269946933284,-18.3309507682094441,-31.9893184697537762],"rgb":[0.6,0.733333333333333282,0.866666666666666696],"xyz":[0.439558776917313043,0.475325407628205798,0.752676736828688187],"hpluv":[240.185846709470951,62.7736499155611796,74.5291269946933284],"hsluv":[240.185846709470951,50.9371920612126914,74.5291269946933284]},"#99bbee":{"lch":[75.129825653719962,50.0395173115419851,248.109771752659725],"luv":[75.129825653719962,-18.6562099892881648,-46.4316607672792],"rgb":[0.6,0.733333333333333282,0.933333333333333348],"xyz":[0.463370957183487753,0.484850279734675815,0.87808755289721141],"hpluv":[248.109771752659725,84.5162185097210568,75.129825653719962],"hsluv":[248.109771752659725,74.708817528734329,75.129825653719962]},"#99bbff":{"lch":[75.7810236401202104,63.8171103470632701,252.684342225014],"luv":[75.7810236401202104,-18.9942553989637197,-60.9248868270445527],"rgb":[0.6,0.733333333333333282,1],"xyz":[0.489542005593319174,0.495318699098608539,1.01592174118899314],"hpluv":[252.684342225014,106.860202909060845,75.7810236401202104],"hsluv":[252.684342225014,99.9999999999971,75.7810236401202104]},"#443300":{"lch":[22.2907133772276609,26.4379209369795269,61.2454831359909],"luv":[22.2907133772276609,12.7181702882918319,23.1778300966244757],"rgb":[0.266666666666666663,0.2,0],"xyz":[0.0356761736431134499,0.0359671813792181508,0.00506334165336921362],"hpluv":[61.2454831359909,150.502134175174433,22.2907133772276609],"hsluv":[61.2454831359909,100.000000000002217,22.2907133772276609]},"#443311":{"lch":[22.433780901835803,22.5495741902090607,57.6291729330006959],"luv":[22.433780901835803,12.072970412625418,19.0453847841311372],"rgb":[0.266666666666666663,0.2,0.0666666666666666657],"xyz":[0.0366878391427505751,0.0363718475790730036,0.0103914466181248451],"hpluv":[57.6291729330006959,127.548453681164943,22.433780901835803],"hsluv":[57.6291729330006959,82.4396262904162853,22.433780901835803]},"#443322":{"lch":[22.6962080128251955,16.3034653251506185,47.6268315603120129],"luv":[22.6962080128251955,10.9878263584328284,12.044527949459761],"rgb":[0.266666666666666663,0.2,0.133333333333333331],"xyz":[0.0385631972812275903,0.037121990834463825,0.0202683328141040411],"hpluv":[47.6268315603120129,91.1519465603444,22.6962080128251955],"hsluv":[47.6268315603120129,53.1527363908354289,22.6962080128251955]},"#443333":{"lch":[23.1206934094119845,9.67437860897999613,12.1770506300626202],"luv":[23.1206934094119845,9.4567095438703852,2.04064844418642899],"rgb":[0.266666666666666663,0.2,0.2],"xyz":[0.0416509480136853308,0.0383570911274469378,0.0365304866717151844],"hpluv":[12.1770506300626202,53.0959690287213917,23.1206934094119845],"hsluv":[12.1770506300626202,12.4420312875371923,23.1206934094119845]},"#443344":{"lch":[23.7177668131648574,12.5269391023357528,307.715012949247694],"luv":[23.7177668131648574,7.66315882209806354,-9.90960141180911],"rgb":[0.266666666666666663,0.2,0.266666666666666663],"xyz":[0.0461089432579042113,0.0401402892251345109,0.0600092616246018229],"hpluv":[307.715012949247694,67.0209373905010608,23.7177668131648574],"hsluv":[307.715012949247694,23.1872031280306743,23.7177668131648574]},"#443355":{"lch":[24.4893027034144382,23.4497607107203301,284.299245815683662],"luv":[24.4893027034144382,5.79176863833153277,-22.7232632654309157],"rgb":[0.266666666666666663,0.2,0.333333333333333315],"xyz":[0.0520713572972662,0.0425252548408793438,0.0914113088985757383],"hpluv":[284.299245815683662,121.507006770462795,24.4893027034144382],"hsluv":[284.299245815683662,34.0172562824217479,24.4893027034144382]},"#443366":{"lch":[25.4301832846655458,35.8361728283181407,276.366541048647719],"luv":[25.4301832846655458,3.97382245046802396,-35.6151655634680964],"rgb":[0.266666666666666663,0.2,0.4],"xyz":[0.0596563530707743817,0.0455592531502826553,0.1313589533057197],"hpluv":[276.366541048647719,178.818092823782393,25.4301832846655458],"hsluv":[276.366541048647719,44.0521665839457555,25.4301832846655458]},"#443377":{"lch":[26.5300434901181958,48.2102429207408818,272.708376965990851],"luv":[26.5300434901181958,2.27805419202829862,-48.1563909733176416],"rgb":[0.266666666666666663,0.2,0.466666666666666674],"xyz":[0.0689703660909762872,0.0492848583583634717,0.180412755212117609],"hpluv":[272.708376965990851,230.590114205629249,26.5300434901181958],"hsluv":[272.708376965990851,52.8563285469964583,26.5300434901181958]},"#443388":{"lch":[27.7750487339787355,60.1896827108213373,270.691543734184165],"luv":[27.7750487339787355,0.726454682878815761,-60.1852986070773568],"rgb":[0.266666666666666663,0.2,0.533333333333333326],"xyz":[0.0801107831929201153,0.0537410251991410626,0.239085618615689777],"hpluv":[270.691543734184165,274.983446475144433,27.7750487339787355],"hsluv":[270.691543734184165,60.324174233719404,27.7750487339787355]},"#443399":{"lch":[29.1495234429961272,71.6961686956082218,269.452076389218803],"luv":[29.1495234429961272,-0.685625105343165342,-71.6928903298230438],"rgb":[0.266666666666666663,0.2,0.6],"xyz":[0.0931677473019928426,0.058963810842770227,0.307852296256807656],"hpluv":[269.452076389218803,312.107220431461315,29.1495234429961272],"hsluv":[269.452076389218803,66.5368599437509,29.1495234429961272]},"#4433aa":{"lch":[30.6372824460415245,82.7612763398458924,268.632918119842316],"luv":[30.6372824460415245,-1.97450330946598829,-82.7377193188284821],"rgb":[0.266666666666666663,0.2,0.66666666666666663],"xyz":[0.108225440267245371,0.0649868880288713285,0.387156145873806257],"hpluv":[268.632918119842316,342.78062465137026,30.6372824460415245],"hsluv":[268.632918119842316,71.6553387322885698,30.6372824460415245]},"#4433bb":{"lch":[32.2226022397772525,93.4505902198726375,268.062492493372758],"luv":[32.2226022397772525,-3.15951219941267691,-93.3971642776391633],"rgb":[0.266666666666666663,0.2,0.733333333333333282],"xyz":[0.125363032374582017,0.0718419248718060871,0.477414130972448],"hpluv":[268.062492493372758,368.010970109266054,32.2226022397772525],"hsluv":[268.062492493372758,75.8581190135042789,32.2226022397772525]},"#4433cc":{"lch":[33.8908458580626331,103.832026214070311,267.649236367220567],"luv":[33.8908458580626331,-4.25888397543315911,-103.744646006447894],"rgb":[0.266666666666666663,0.2,0.8],"xyz":[0.144655407818303772,0.0795588750492948887,0.579020641642718159],"hpluv":[267.649236367220567,388.765974213008576,33.8908458580626331],"hsluv":[267.649236367220567,79.3114034284002,33.8908458580626331]},"#4433dd":{"lch":[35.628800942302739,113.96424557581804,267.340372831489958],"luv":[35.628800942302739,-5.28823530427115518,-113.841485571087048],"rgb":[0.266666666666666663,0.2,0.866666666666666696],"xyz":[0.166173733368937315,0.0881662052695484227,0.692350489542724157],"hpluv":[267.340372831489958,405.888493424646128,35.628800942302739],"hsluv":[267.340372831489958,85.5677988674314,35.628800942302739]},"#4433ee":{"lch":[37.4248062251042484,123.894025620863303,267.103630337901393],"luv":[37.4248062251042484,-6.26032296204841732,-123.73575853791813],"rgb":[0.266666666666666663,0.2,0.933333333333333348],"xyz":[0.189985913635112053,0.0976910773760184536,0.81776130561124738],"hpluv":[267.103630337901393,420.078186698807599,37.4248062251042484],"hsluv":[267.103630337901393,92.6566888343209,37.4248062251042484]},"#4433ff":{"lch":[39.2687372084732473,133.657198385904053,266.918330051954797],"luv":[39.2687372084732473,-7.18532525912719411,-133.4639193988003],"rgb":[0.266666666666666663,0.2,1],"xyz":[0.216156962044943446,0.10815949673995115,0.955595493903029225],"hpluv":[266.918330051954797,431.901531941155895,39.2687372084732473],"hsluv":[266.918330051954797,99.99999999999946,39.2687372084732473]},"#bbbb00":{"lch":[73.6141498101152223,81.1522849996882485,85.8743202181747591],"luv":[73.6141498101152223,5.83845950082822274,80.9419900380996],"rgb":[0.733333333333333282,0.733333333333333282,0],"xyz":[0.382626051771664,0.461058251568279,0.0688379405602788],"hpluv":[85.8743202181747591,139.887458074797564,73.6141498101152223],"hsluv":[85.8743202181747591,100.000000000002331,73.6141498101152223]},"#bbbb11":{"lch":[73.6403599567658205,80.0195247391518478,85.8743202181747449],"luv":[73.6403599567658205,5.75696364516240155,79.8121651696532695],"rgb":[0.733333333333333282,0.733333333333333282,0.0666666666666666657],"xyz":[0.383637717271301082,0.461462917768133862,0.0741660455250344325],"hpluv":[85.8743202181747449,137.885751829634614,73.6403599567658205],"hsluv":[85.8743202181747449,98.5690595334933732,73.6403599567658205]},"#bbbb22":{"lch":[73.6889060807276763,77.9361940700347873,85.8743202181746597],"luv":[73.6889060807276763,5.60707948923862176,77.7342331648256817],"rgb":[0.733333333333333282,0.733333333333333282,0.133333333333333331],"xyz":[0.385513075409778139,0.462213061023524663,0.0840429317210136251],"hpluv":[85.8743202181746597,134.207383902194948,73.6889060807276763],"hsluv":[85.8743202181746597,95.9395400768792541,73.6889060807276763]},"#bbbb33":{"lch":[73.768722281637082,74.5519121144895536,85.8743202181745318],"luv":[73.768722281637082,5.36359906059884217,74.3587211095223],"rgb":[0.733333333333333282,0.733333333333333282,0.2],"xyz":[0.388600826142235845,0.46344816131650779,0.100305085578624775],"hpluv":[85.8743202181745318,128.24069174643796,73.768722281637082],"hsluv":[85.8743202181745318,91.6741883163470419,73.768722281637082]},"#bbbb44":{"lch":[73.8837085661944144,69.7637661309282464,85.8743202181743328],"luv":[73.8837085661944144,5.01911835485944824,69.5829829463408629],"rgb":[0.733333333333333282,0.733333333333333282,0.266666666666666663],"xyz":[0.39305882138645476,0.465231359414195356,0.123783860531511414],"hpluv":[85.8743202181743328,119.817583791868643,73.8837085661944144],"hsluv":[85.8743202181743328,85.652842249664161,73.8837085661944144]},"#bbbb55":{"lch":[74.0370403615741,63.5337415760462747,85.8743202181740628],"luv":[74.0370403615741,4.57090243520957262,63.3691026414263376],"rgb":[0.733333333333333282,0.733333333333333282,0.333333333333333315],"xyz":[0.399021235425816745,0.467616325029940216,0.155185907805485301],"hpluv":[85.8743202181740628,108.891682763750694,74.0370403615741],"hsluv":[85.8743202181740628,77.8423486010655239,74.0370403615741]},"#bbbb66":{"lch":[74.2313474843288361,55.8815023675101799,85.8743202181735512],"luv":[74.2313474843288361,4.02036601211528843,55.7366931561128212],"rgb":[0.733333333333333282,0.733333333333333282,0.4],"xyz":[0.40660623119932493,0.470650323339343535,0.195133552212629291],"hpluv":[85.8743202181735512,95.5256619678334857,74.2313474843288361],"hsluv":[85.8743202181735512,68.2875100330713138,74.2313474843288361]},"#bbbb77":{"lch":[74.468808451125966,46.8772880877030289,85.8743202181728549],"luv":[74.468808451125966,3.37256243628739805,46.7558120565865849],"rgb":[0.733333333333333282,0.733333333333333282,0.466666666666666674],"xyz":[0.415920244219526836,0.47437592854742433,0.2441873541190272],"hpluv":[85.8743202181728549,79.8780401793102328,74.468808451125966],"hsluv":[85.8743202181728549,57.1016453359253688,74.468808451125966]},"#bbbb88":{"lch":[74.7512063572608128,36.6333476151433146,85.874320218171647],"luv":[74.7512063572608128,2.63556739569020726,36.5384173438683746],"rgb":[0.733333333333333282,0.733333333333333282,0.533333333333333326],"xyz":[0.427060661321470636,0.478832095388201928,0.30286021752259934],"hpluv":[85.874320218171647,62.1867310089120195,74.7512063572608128],"hsluv":[85.874320218171647,44.4548295213588744,74.7512063572608128]},"#bbbb99":{"lch":[75.079965438194165,25.2938928616919938,85.8743202181691316],"luv":[75.079965438194165,1.81975614231989979,25.2283472245258693],"rgb":[0.733333333333333282,0.733333333333333282,0.6],"xyz":[0.440117625430543336,0.484054881031831086,0.371626895163717275],"hpluv":[85.8743202181691316,42.7494899193068392,75.079965438194165],"hsluv":[85.8743202181691316,30.559916169503893,75.079965438194165]},"#bbbbaa":{"lch":[75.4561775549407372,13.0242335847304886,85.8743202181613583],"luv":[75.4561775549407372,0.937021801842234714,12.9904830784884187],"rgb":[0.733333333333333282,0.733333333333333282,0.66666666666666663],"xyz":[0.455175318395795891,0.490077958217932208,0.450930744780715875],"hpluv":[85.8743202181613583,21.9026519543336242,75.4561775549407372],"hsluv":[85.8743202181613583,15.6573378741524305,75.4561775549407372]},"#bbbbbb":{"lch":[75.8806235332097856,3.97454725928322e-12,0],"luv":[75.8806235332097856,3.75098259432623098e-12,1.31421287976393485e-12],"rgb":[0.733333333333333282,0.733333333333333282,0.733333333333333282],"xyz":[0.472312910503132566,0.496932995060866967,0.541188729879357622],"hpluv":[0,6.64654731741433278e-12,75.8806235332097856],"hsluv":[0,6.51507609526145538e-12,75.8806235332097856]},"#bbbbcc":{"lch":[76.3537921403793,13.6026726964261613,265.874320218192793],"luv":[76.3537921403793,-0.97863730689855577,-13.5674232449512715],"rgb":[0.733333333333333282,0.733333333333333282,0.8],"xyz":[0.491605285946854265,0.504649945238355713,0.642795240549627778],"hpluv":[265.874320218192793,23.0577392955455913,76.3537921403793],"hsluv":[265.874320218192793,22.3559583930985184,76.3537921403793]},"#bbbbdd":{"lch":[76.875898300454,27.6153317552162676,265.874320218184891],"luv":[76.875898300454,-1.98677087225565296,-27.543770429115412],"rgb":[0.733333333333333282,0.733333333333333282,0.866666666666666696],"xyz":[0.513123611497487864,0.51325727545860933,0.756125088449633775],"hpluv":[265.874320218184891,48.094692651754464,76.875898300454],"hsluv":[265.874320218184891,46.4508399898830717,76.875898300454]},"#bbbbee":{"lch":[77.4469014383288794,41.8833893600305487,265.874320218182334],"luv":[77.4469014383288794,-3.01327895494808,-41.7748543291725554],"rgb":[0.733333333333333282,0.733333333333333282,0.933333333333333348],"xyz":[0.536935791763662573,0.522782147565079347,0.881535904518157],"hpluv":[265.874320218182334,75.1781465494946,77.4469014383288794],"hsluv":[265.874320218182334,72.306149300046286,77.4469014383288794]},"#bbbbff":{"lch":[78.0665243938900915,56.270213901735211,265.874320218181083],"luv":[78.0665243938900915,-4.04833166396953814,-56.1243973979724444],"rgb":[0.733333333333333282,0.733333333333333282,1],"xyz":[0.563106840173494,0.533250566929012,1.01937009280993873],"hpluv":[265.874320218181083,104.437018855576454,78.0665243938900915],"hsluv":[265.874320218181083,99.9999999999968,78.0665243938900915]},"#99cc00":{"lch":[76.0430979526319,91.0941172293808,106.263360497649074],"luv":[76.0430979526319,-25.5111694560196547,87.4489475453331124],"rgb":[0.6,0.8,0],"xyz":[0.347284960501106077,0.499573870357110428,0.0781308367092051204],"hpluv":[106.263360497649074,152.00919412554731,76.0430979526319],"hsluv":[106.263360497649074,100.000000000002444,76.0430979526319]},"#99cc11":{"lch":[76.0679435797449202,90.0431717383104342,106.457693210299354],"luv":[76.0679435797449202,-25.5098862277023812,86.3540299079582496],"rgb":[0.6,0.8,0.0666666666666666657],"xyz":[0.348296626000743181,0.499978536556965281,0.083458941673960757],"hpluv":[106.457693210299354,150.416675371578,76.0679435797449202],"hsluv":[106.457693210299354,98.6698238814781377,76.0679435797449202]},"#99cc22":{"lch":[76.1139653123302224,88.1120975577654235,106.827460928226145],"luv":[76.1139653123302224,-25.5076232207001254,84.3392132620406301],"rgb":[0.6,0.8,0.133333333333333331],"xyz":[0.350171984139220238,0.500728679812356137,0.0933358278699399496],"hpluv":[106.827460928226145,147.536178080277807,76.1139653123302224],"hsluv":[106.827460928226145,96.2239688839219554,76.1139653123302224]},"#99cc33":{"lch":[76.1896394090333615,84.9806694979027668,107.464683868975555],"luv":[76.1896394090333615,-25.5042190273125513,81.0632407452271195],"rgb":[0.6,0.8,0.2],"xyz":[0.353259734871677944,0.501963780105339263,0.109597981727551086],"hpluv":[107.464683868975555,142.843382477451314,76.1896394090333615],"hsluv":[107.464683868975555,92.2523981769505497,76.1896394090333615]},"#99cc44":{"lch":[76.2986765643697566,80.5641186971074461,108.452476349375274],"luv":[76.2986765643697566,-25.4999909675489818,76.4220366262018445],"rgb":[0.6,0.8,0.266666666666666663],"xyz":[0.357717730115896859,0.503746978203026829,0.133076756680437724],"hpluv":[108.452476349375274,136.177549938509202,76.2986765643697566],"hsluv":[108.452476349375274,86.6370393323296,76.2986765643697566]},"#99cc55":{"lch":[76.4441084930992645,74.8483308647658276,109.915235611542258],"luv":[76.4441084930992645,-25.4955548836031696,70.3722197633315858],"rgb":[0.6,0.8,0.333333333333333315],"xyz":[0.363680144155258844,0.506131943818771579,0.16447880395441164],"hpluv":[109.915235611542258,127.465568679298812,76.4441084930992645],"hsluv":[109.915235611542258,79.3378797119037245,76.4441084930992645]},"#99cc66":{"lch":[76.6284587708723279,67.8919791104198111,112.053749389120497],"luv":[76.6284587708723279,-25.4918238993559072,62.9244606001029396],"rgb":[0.6,0.8,0.4],"xyz":[0.37126513992876703,0.509165942128174898,0.204426448361555602],"hpluv":[112.053749389120497,116.726185086844026,76.6284587708723279],"hsluv":[112.053749389120497,70.3850130172815796,76.6284587708723279]},"#99cc77":{"lch":[76.8538330837355801,59.8379910057359723,115.212918879407354],"luv":[76.8538330837355801,-25.4899847789994141,54.1372869986012262],"rgb":[0.6,0.8,0.466666666666666674],"xyz":[0.380579152948968935,0.512891547336255749,0.253480250267953511],"hpluv":[115.212918879407354,104.093311342856381,76.8538330837355801],"hsluv":[115.212918879407354,59.8707914454029577,76.8538330837355801]},"#99cc88":{"lch":[77.1219726780439885,50.9458531819172649,120.024060615406185],"luv":[77.1219726780439885,-25.4914521322680621,44.1097021597488919],"rgb":[0.6,0.8,0.533333333333333326],"xyz":[0.391719570050912735,0.517347714177033291,0.31215311367152565],"hpluv":[120.024060615406185,89.8814395273866324,77.1219726780439885],"hsluv":[120.024060615406185,47.9401368886289845,77.1219726780439885]},"#99cc99":{"lch":[77.4342891130262103,41.681173098632776,127.715012949236964],"luv":[77.4342891130262103,-25.4978049096247332,32.9724450969124447],"rgb":[0.6,0.8,0.6],"xyz":[0.40477653415998549,0.522570499820662504,0.380919791312643585],"hpluv":[127.715012949236964,74.7648437658604337,77.4342891130262103],"hsluv":[127.715012949236964,34.7788947556027495,77.4342891130262103]},"#99ccaa":{"lch":[77.7918890721377352,32.9651751214879525,140.702563314804109],"luv":[77.7918890721377352,-25.5107121176450882,20.8783701002018844],"rgb":[0.6,0.8,0.66666666666666663],"xyz":[0.419834227125238,0.528593577006763571,0.460223640929642186],"hpluv":[140.702563314804109,60.2770963674260756,77.7918890721377352],"hsluv":[140.702563314804109,37.0803100068772622,77.7918890721377352]},"#99ccbb":{"lch":[78.1955939192693421,26.7536671513630395,162.617393192268167],"luv":[78.1955939192693421,-25.5318556358660231,7.9926875226808507],"rgb":[0.6,0.8,0.733333333333333282],"xyz":[0.436971819232574665,0.535448613849698329,0.550481626028283877],"hpluv":[162.617393192268167,50.006554278151107,78.1955939192693421],"hsluv":[162.617393192268167,39.5096284608221353,78.1955939192693421]},"#99cccc":{"lch":[78.6459566685868481,26.1512486118356264,192.177050630060364],"luv":[78.6459566685868481,-25.562857556775878,-5.51616873291790277],"rgb":[0.6,0.8,0.8],"xyz":[0.45626419467629642,0.543165564027187187,0.652088136698554],"hpluv":[192.177050630060364,50.1138147500145,78.6459566685868481],"hsluv":[192.177050630060364,42.0292910605185952,78.6459566685868481]},"#99ccdd":{"lch":[79.1432779300782,32.1756084020034763,217.269502822152816],"luv":[79.1432779300782,-25.6052179328205156,-19.4844191766612091],"rgb":[0.6,0.8,0.866666666666666696],"xyz":[0.477782520226929908,0.551772894247440693,0.76541798459856],"hpluv":[217.269502822152816,63.4104034428488532,79.1432779300782],"hsluv":[217.269502822152816,44.6030324020319142,79.1432779300782]},"#99ccee":{"lch":[79.6876217339600146,42.4043636674930298,232.761609201673764],"luv":[79.6876217339600146,-25.6602666815912279,-33.7591583407321],"rgb":[0.6,0.8,0.933333333333333348],"xyz":[0.501594700493104728,0.56129776635391071,0.890828800667083254],"hpluv":[232.761609201673764,86.2263034184575901,79.6876217339600146],"hsluv":[232.761609201673764,69.2463215394111842,79.6876217339600146]},"#99ccff":{"lch":[80.278831719152322,54.6396736698167231,241.908088190648726],"luv":[80.278831719152322,-25.7291311718118969,-48.2027566419988105],"rgb":[0.6,0.8,1],"xyz":[0.527765748902936,0.571766185717843434,1.02866298895886521],"hpluv":[241.908088190648726,115.039816302159181,80.278831719152322],"hsluv":[241.908088190648726,99.9999999999963762,80.278831719152322]},"#444400":{"lch":[27.7455139749470092,30.5866720374503593,85.8743202181747307],"luv":[27.7455139749470092,2.20054242411605072,30.5074108925390952],"rgb":[0.266666666666666663,0.266666666666666663,0],"xyz":[0.044508744126079483,0.0536323223451504599,0.00800753181435780864],"hpluv":[85.8743202181747307,139.887458074797593,27.7455139749470092],"hsluv":[85.8743202181747307,100.000000000002331,27.7455139749470092]},"#444411":{"lch":[27.8552611903384602,27.0161424908788135,85.8743202181744],"luv":[27.8552611903384602,1.9436625081132386,26.9461338811715763],"rgb":[0.266666666666666663,0.266666666666666663,0.0666666666666666657],"xyz":[0.0455204096257166,0.0540369885450053128,0.0133356367791134401],"hpluv":[85.8743202181744,123.070915058641674,27.8552611903384602],"hsluv":[85.8743202181744,87.9785198418851451,27.8552611903384602]},"#444422":{"lch":[28.0572627170229296,20.802612285424587,85.8743202181735086],"luv":[28.0572627170229296,1.49663326596887214,20.7487051828516122],"rgb":[0.266666666666666663,0.266666666666666663,0.133333333333333331],"xyz":[0.0473957677641936234,0.0547871318003961341,0.0232125229750926379],"hpluv":[85.8743202181735086,94.0831614915658463,28.0572627170229296],"hsluv":[85.8743202181735086,67.2563236092702539,28.0572627170229296]},"#444433":{"lch":[28.3858756417530103,11.5666907278610811,85.8743202181704],"luv":[28.3858756417530103,0.832159628943940688,11.5367172430437677],"rgb":[0.266666666666666663,0.266666666666666663,0.2],"xyz":[0.0504835184966513639,0.056022232093379247,0.0394746768327037811],"hpluv":[85.8743202181704,51.7066205750809758,28.3858756417530103],"hsluv":[85.8743202181704,36.9630139018145201,28.3858756417530103]},"#444444":{"lch":[28.8519023983998864,1.56211738287899238e-12,0],"luv":[28.8519023983998864,1.45745810878583046e-12,5.6216241338882039e-13],"rgb":[0.266666666666666663,0.266666666666666663,0.266666666666666663],"xyz":[0.0549415137408702445,0.05780543019106682,0.0629534517855904197],"hpluv":[0,6.87034486140541504e-12,28.8519023983998864],"hsluv":[0,1.96712204652458306e-12,28.8519023983998864]},"#444455":{"lch":[29.4604491554767947,12.996237632929807,265.874320218183527],"luv":[29.4604491554767947,-0.935007647451096213,-12.9625596743385874],"rgb":[0.266666666666666663,0.266666666666666663,0.333333333333333315],"xyz":[0.0609039277802322365,0.0601903958068116529,0.094355499059564335],"hpluv":[265.874320218183527,55.9780294653588157,29.4604491554767947],"hsluv":[265.874320218183527,10.903125265393685,29.4604491554767947]},"#444466":{"lch":[30.2117995944983235,26.5936989313503034,265.874320218180401],"luv":[30.2117995944983235,-1.9132700229980284,-26.52478502590359],"rgb":[0.266666666666666663,0.266666666666666663,0.4],"xyz":[0.0684889235537404079,0.0632243941162149714,0.134303143466708297],"hpluv":[265.874320218180401,111.69699235114156,30.2117995944983235],"hsluv":[265.874320218180401,21.7557908165695544,30.2117995944983235]},"#444477":{"lch":[31.1022350000615333,40.188693881548005,265.874320218179378],"luv":[31.1022350000615333,-2.89135495838767076,-40.084550420447286],"rgb":[0.266666666666666663,0.266666666666666663,0.466666666666666674],"xyz":[0.0778029365739423273,0.0669499993242957808,0.183356945373106206],"hpluv":[265.874320218179378,163.965176201048621,31.1022350000615333],"hsluv":[265.874320218179378,31.9363305989270607,31.1022350000615333]},"#444488":{"lch":[32.1249060438116132,53.4239352836437,265.874320218178923],"luv":[32.1249060438116132,-3.84355760936744639,-53.2854945186250859],"rgb":[0.266666666666666663,0.266666666666666663,0.533333333333333326],"xyz":[0.0889433536758861554,0.0714061661650733787,0.242029808776678373],"hpluv":[265.874320218178923,211.024721596932807,32.1249060438116132],"hsluv":[265.874320218178923,41.1023574005893479,32.1249060438116132]},"#444499":{"lch":[33.2707247827276404,66.1374776044503818,265.874320218178639],"luv":[33.2707247827276404,-4.75822688765494473,-65.9660914467787336],"rgb":[0.266666666666666663,0.266666666666666663,0.6],"xyz":[0.102000317784958869,0.0766289518087025362,0.31079648641779628],"hpluv":[265.874320218178639,252.246234683596128,33.2707247827276404],"hsluv":[265.874320218178639,50.2337582903708224,33.2707247827276404]},"#4444aa":{"lch":[34.5292085317775772,78.2936422443982707,265.874320218178468],"luv":[34.5292085317775772,-5.63279591471267516,-78.090755061511743],"rgb":[0.266666666666666663,0.266666666666666663,0.66666666666666663],"xyz":[0.117058010750211411,0.0826520289948036446,0.390100336034794881],"hpluv":[265.874320218178468,287.726060771882089,34.5292085317775772],"hsluv":[265.874320218178468,59.0260968416557645,34.5292085317775772]},"#4444bb":{"lch":[35.8892144652077647,89.9250819913669801,265.874320218178354],"luv":[35.8892144652077647,-6.46961387860876,-89.6920535355044],"rgb":[0.266666666666666663,0.266666666666666663,0.733333333333333282],"xyz":[0.134195602857548058,0.0895070658377384,0.480358321133436628],"hpluv":[265.874320218178354,317.948086985701252,35.8892144652077647],"hsluv":[265.874320218178354,67.4283717547759807,35.8892144652077647]},"#4444cc":{"lch":[37.3395287853000397,101.093816173965237,265.874320218178298],"luv":[37.3395287853000397,-7.27314272811459173,-100.831845482823283],"rgb":[0.266666666666666663,0.266666666666666663,0.8],"xyz":[0.153487978301269812,0.0972240160152272,0.581964831803706728],"hpluv":[265.874320218178298,343.55405942077391,37.3395287853000397],"hsluv":[265.874320218178298,75.5808548987534294,37.3395287853000397]},"#4444dd":{"lch":[38.8693012328948697,111.868746538356049,265.874320218178241],"luv":[38.8693012328948697,-8.04833956400084105,-111.578854100252741],"rgb":[0.266666666666666663,0.266666666666666663,0.866666666666666696],"xyz":[0.175006303851903355,0.105831346235480739,0.695294679703712726],"hpluv":[265.874320218178241,365.208910634554,38.8693012328948697],"hsluv":[265.874320218178241,83.6313726076760702,38.8693012328948697]},"#4444ee":{"lch":[40.4683363226646691,122.314460404417545,265.874320218178127],"luv":[40.4683363226646691,-8.799851087852959,-121.997499338533331],"rgb":[0.266666666666666663,0.266666666666666663,0.933333333333333348],"xyz":[0.198818484118078065,0.115356218341950756,0.820705495772236],"hpluv":[265.874320218178127,383.532154053589807,40.4683363226646691],"hsluv":[265.874320218178127,91.7249319236633625,40.4683363226646691]},"#4444ff":{"lch":[42.1272645151277203,132.4867415013303,265.874320218178127],"luv":[42.1272645151277203,-9.53169063144130568,-132.143420370999962],"rgb":[0.266666666666666663,0.266666666666666663,1],"xyz":[0.224989532527909486,0.12582463770588348,0.958539684064017794],"hpluv":[265.874320218178127,399.069452944254863,42.1272645151277203],"hsluv":[265.874320218178127,99.9999999999994458,42.1272645151277203]},"#bbcc00":{"lch":[78.3160688649495711,87.6272661942945916,93.3039767998847651],"luv":[78.3160688649495711,-5.05025027162958828,87.4816137990130471],"rgb":[0.733333333333333282,0.8,0],"xyz":[0.420849795081280953,0.537505738187513904,0.081579188330150737],"hpluv":[93.3039767998847651,164.876849582678972,78.3160688649495711],"hsluv":[93.3039767998847651,100.000000000002302,78.3160688649495711]},"#bbcc11":{"lch":[78.3397318378619332,86.5943586896397193,93.3754549086192],"luv":[78.3397318378619332,-5.09856582429126703,86.4441298377475249],"rgb":[0.733333333333333282,0.8,0.0666666666666666657],"xyz":[0.421861460580918057,0.537910404387368812,0.0869072932949063737],"hpluv":[93.3754549086192,163.146061131239662,78.3397318378619332],"hsluv":[93.3754549086192,98.7690619278293,78.3397318378619332]},"#bbcc22":{"lch":[78.3835653101130134,84.6929692802742125,93.5116381573829329],"luv":[78.3835653101130134,-5.18755307791811582,84.5339478468458481],"rgb":[0.733333333333333282,0.8,0.133333333333333331],"xyz":[0.423736818719395114,0.538660547642759613,0.0967841794908855663],"hpluv":[93.5116381573829329,159.95035726483485,78.3835653101130134],"hsluv":[93.5116381573829329,96.5043106774720343,78.3835653101130134]},"#bbcc33":{"lch":[78.4556479267243,81.5996211754986405,93.7468972468941644],"luv":[78.4556479267243,-5.33246113691784,81.4251990123951],"rgb":[0.733333333333333282,0.8,0.2],"xyz":[0.42682456945185282,0.53989564793574274,0.113046333348496703],"hpluv":[93.7468972468941644,154.72407311273281,78.4556479267243],"hsluv":[93.7468972468941644,92.8230308779070157,78.4556479267243]},"#bbcc44":{"lch":[78.5595248117047475,77.2136355312914873,94.1131309849175],"luv":[78.5595248117047475,-5.53822791342104281,77.0147618547127877],"rgb":[0.733333333333333282,0.8,0.266666666666666663],"xyz":[0.431282564696071735,0.541678846033430306,0.136525108301383341],"hpluv":[94.1131309849175,147.254264694427633,78.5595248117047475],"hsluv":[94.1131309849175,87.6101015600037556,78.5595248117047475]},"#bbcc55":{"lch":[78.6981007967589079,71.4912273296626921,94.6593076474989488],"luv":[78.6981007967589079,-5.80727962831129307,71.2549723768110823],"rgb":[0.733333333333333282,0.8,0.333333333333333315],"xyz":[0.43724497873543372,0.544063811649175,0.167927155575357256],"hpluv":[94.6593076474989488,137.398731222980217,78.6981007967589079],"hsluv":[94.6593076474989488,80.8199795518833639,78.6981007967589079]},"#bbcc66":{"lch":[78.8738041161037273,64.440755538040392,95.4673459440295176],"luv":[78.8738041161037273,-6.13981465986491681,64.1475927081912403],"rgb":[0.733333333333333282,0.8,0.4],"xyz":[0.444829974508941905,0.547097809958578374,0.207874799982501218],"hpluv":[95.4673459440295176,125.075317361724217,78.8738041161037273],"hsluv":[95.4673459440295176,72.4696955468646848,78.8738041161037273]},"#bbcc77":{"lch":[79.0886730863018244,56.1202023011108153,96.6860819525870454],"luv":[79.0886730863018244,-6.5340457953894715,55.7385266387743386],"rgb":[0.733333333333333282,0.8,0.466666666666666674],"xyz":[0.454143987529143811,0.550823415166659225,0.2569286018888991],"hpluv":[96.6860819525870454,110.256785788709905,79.0886730863018244],"hsluv":[96.6860819525870454,62.6323703341884,79.0886730863018244]},"#bbcc88":{"lch":[79.3444074564468451,46.6379090458556931,98.6154841820407],"luv":[79.3444074564468451,-6.9864776714612713,46.1116437563841473],"rgb":[0.733333333333333282,0.8,0.533333333333333326],"xyz":[0.465284404631087611,0.555279582007436767,0.315601465292471295],"hpluv":[98.6154841820407,92.9740665461038702,79.3444074564468451],"hsluv":[98.6154841820407,51.4293340198482483,79.3444074564468451]},"#bbcc99":{"lch":[79.6424016540563,36.1659853952486898,101.956116252097843],"luv":[79.6424016540563,-7.49223418159530397,35.3814206410296137],"rgb":[0.733333333333333282,0.8,0.6],"xyz":[0.478341368740160311,0.560502367651066,0.38436814293358923],"hpluv":[101.956116252097843,73.3480812445522616,79.6424016540563],"hsluv":[101.956116252097843,39.0205672484538439,79.6424016540563]},"#bbccaa":{"lch":[79.9837682606211899,25.01387761080953,108.762036830266098],"luv":[79.9837682606211899,-8.04542335958215382,23.6847046866463593],"rgb":[0.733333333333333282,0.8,0.66666666666666663],"xyz":[0.493399061705412867,0.566525444837167,0.463671992550587775],"hpluv":[108.762036830266098,51.7527419020047645,79.9837682606211899],"hsluv":[108.762036830266098,25.5939208298632828,79.9837682606211899]},"#bbccbb":{"lch":[80.3693561861161356,14.1229851396422195,127.715012949226079],"luv":[80.3693561861161356,-8.63951499109438892,11.1721748094634776],"rgb":[0.733333333333333282,0.8,0.733333333333333282],"xyz":[0.510536653812749486,0.573380481680101806,0.553929977649229577],"hpluv":[127.715012949226079,29.8960175179438359,80.3693561861161356],"hsluv":[127.715012949226079,11.3539027840963094,80.3693561861161356]},"#bbcccc":{"lch":[80.7997661027856537,9.48102181692548207,192.177050630058517],"luv":[80.7997661027856537,-9.26770319062559622,-1.99986306118322021],"rgb":[0.733333333333333282,0.8,0.8],"xyz":[0.52982902925647124,0.581097431857590663,0.655536488319499733],"hpluv":[192.177050630058517,20.5979746439306091,80.7997661027856537],"hsluv":[192.177050630058517,14.8313634310922779,80.7997661027856537]},"#bbccdd":{"lch":[81.2753646562375138,18.5534915910332536,237.666646406054781],"luv":[81.2753646562375138,-9.9232294288842251,-15.6767843616051454],"rgb":[0.733333333333333282,0.8,0.866666666666666696],"xyz":[0.551347354807104839,0.589704762077844169,0.76886633621950573],"hpluv":[237.666646406054781,41.5059211719903089,81.2753646562375138],"hsluv":[237.666646406054781,34.6395739712995834,81.2753646562375138]},"#bbccee":{"lch":[81.7962983545147466,31.5457627715974915,250.366116177600304],"luv":[81.7962983545147466,-10.5996485000078611,-29.7116576534899401],"rgb":[0.733333333333333282,0.8,0.933333333333333348],"xyz":[0.575159535073279549,0.599229634184314186,0.894277152288029],"hpluv":[250.366116177600304,72.9233806917818725,81.7962983545147466],"hsluv":[250.366116177600304,65.9765826509477478,81.7962983545147466]},"#bbccff":{"lch":[82.3625076456434329,45.3963265868234203,255.598148289110497],"luv":[82.3625076456434329,-11.2910283768039683,-43.9697526234994669],"rgb":[0.733333333333333282,0.8,1],"xyz":[0.601330583483111,0.60969805354824691,1.0321113405798108],"hpluv":[255.598148289110497,108.847942718229262,82.3625076456434329],"hsluv":[255.598148289110497,99.9999999999958789,82.3625076456434329]},"#99dd00":{"lch":[81.0072374435841738,100.100388992767378,110.059278565234735],"luv":[81.0072374435841738,-34.3336498242400623,94.028125400062109],"rgb":[0.6,0.866666666666666696,0],"xyz":[0.389918951048281226,0.584841851451462,0.0923421668915964389],"hpluv":[110.059278565234735,220.251619684458433,81.0072374435841738],"hsluv":[110.059278565234735,100.000000000002245,81.0072374435841738]},"#99dd11":{"lch":[81.0296061686003,99.1554895677318626,110.248463134872608],"luv":[81.0296061686003,-34.3169109383134483,93.0277417498051733],"rgb":[0.6,0.866666666666666696,0.0666666666666666657],"xyz":[0.39093061654791833,0.585246517651316855,0.0976702718563520755],"hpluv":[110.248463134872608,218.472914234601802,81.0296061686003],"hsluv":[110.248463134872608,98.8616036668283,81.0296061686003]},"#99dd22":{"lch":[81.0710445633976,97.4178442494470431,110.606606003803336],"luv":[81.0710445633976,-34.2861684396920552,91.184949591117217],"rgb":[0.6,0.866666666666666696,0.133333333333333331],"xyz":[0.392805974686395387,0.585996660906707656,0.107547158052331268],"hpluv":[110.606606003803336,215.192819254761019,81.0710445633976],"hsluv":[110.606606003803336,96.7659338960775131,81.0710445633976]},"#99dd33":{"lch":[81.1391953168863154,94.5961335984436857,111.218234049095599],"luv":[81.1391953168863154,-34.2363517117206513,88.1833358024404106],"rgb":[0.6,0.866666666666666696,0.2],"xyz":[0.395893725418853093,0.587231761199690783,0.123809311909942404],"hpluv":[111.218234049095599,209.840835623165077,81.1391953168863154],"hsluv":[111.218234049095599,93.3562182204636599,81.1391953168863154]},"#99dd44":{"lch":[81.2374208116197565,90.6080011845065343,112.152709421166279],"luv":[81.2374208116197565,-34.1661449288095653,83.9195115533635487],"rgb":[0.6,0.866666666666666696,0.266666666666666663],"xyz":[0.400351720663072,0.589014959297378349,0.147288086862829043],"hpluv":[112.152709421166279,202.22119953609328,81.2374208116197565],"hsluv":[112.152709421166279,88.5208972681928827,81.2374208116197565]},"#99dd55":{"lch":[81.3684846041416421,85.4315699411036604,113.506988965296216],"luv":[81.3684846041416421,-34.0753153837539244,78.3417259453695607],"rgb":[0.6,0.866666666666666696,0.333333333333333315],"xyz":[0.406314134702434,0.591399924913123098,0.178690134136802958],"hpluv":[113.506988965296216,192.231211336261111,81.3684846041416421],"hsluv":[113.506988965296216,82.2103932307851579,81.3684846041416421]},"#99dd66":{"lch":[81.5347071887187695,79.1067404569191837,115.426438711198742],"luv":[81.5347071887187695,-33.9646313013793,71.4442454385217758],"rgb":[0.6,0.866666666666666696,0.4],"xyz":[0.413899130475942179,0.594433923222526417,0.21863777854394692],"hpluv":[115.426438711198742,179.864586291563711,81.5347071887187695],"hsluv":[115.426438711198742,74.4308834765056,81.5347071887187695]},"#99dd77":{"lch":[81.7380487099571,71.7428264562351217,118.139890255285593],"luv":[81.7380487099571,-33.8357763954940651,63.2627329764024324],"rgb":[0.6,0.866666666666666696,0.466666666666666674],"xyz":[0.423213143496144084,0.598159528430607268,0.267691580450344802],"hpluv":[118.139890255285593,165.232292085670224,81.7380487099571],"hsluv":[118.139890255285593,65.2389156719347,81.7380487099571]},"#99dd88":{"lch":[81.9801580086414248,63.5371271244577898,122.023063704989269],"luv":[81.9801580086414248,-33.6912346765093815,53.8689820694792942],"rgb":[0.6,0.866666666666666696,0.533333333333333326],"xyz":[0.434353560598087884,0.60261569527138481,0.326364443853917],"hpluv":[122.023063704989269,148.614644251947254,81.9801580086414248],"hsluv":[122.023063704989269,54.7350081565161943,81.9801580086414248]},"#99dd99":{"lch":[82.2624042681600827,54.8181455895933,127.715012949238044],"luv":[82.2624042681600827,-33.5341421039979721,43.3646215160552],"rgb":[0.6,0.866666666666666696,0.6],"xyz":[0.447410524707160584,0.607838480915014,0.395131121495034932],"hpluv":[127.715012949238044,130.58293025992694,82.2624042681600827],"hsluv":[127.715012949238044,43.0558433261763724,82.2624042681600827]},"#99ddaa":{"lch":[82.5858991321833855,46.1452119261310898,136.311935434488049],"luv":[82.5858991321833855,-33.3681126370237138,31.8739649675161907],"rgb":[0.6,0.866666666666666696,0.66666666666666663],"xyz":[0.46246821767241314,0.61386155810111509,0.474434971112033477],"hpluv":[136.311935434488049,112.281381223378744,82.5858991321833855],"hsluv":[136.311935434488049,44.8180878493830122,82.5858991321833855]},"#99ddbb":{"lch":[82.9515135213076,38.5190468703316,149.523212457301526],"luv":[82.9515135213076,-33.1970516149390349,19.536446347119437],"rgb":[0.6,0.866666666666666696,0.733333333333333282],"xyz":[0.479605809779749814,0.620716594944049849,0.564692956210675279],"hpluv":[149.523212457301526,96.0401150933983416,82.9515135213076],"hsluv":[149.523212457301526,46.6955526922259807,82.9515135213076]},"#99ddcc":{"lch":[83.3598915829196585,33.6584009809739158,168.866706644517421],"luv":[83.3598915829196585,-33.0249710093605202,6.49917274942921],"rgb":[0.6,0.866666666666666696,0.8],"xyz":[0.498898185223471513,0.628433545121538706,0.666299466880945435],"hpluv":[168.866706644517421,86.2854242091523,83.3598915829196585],"hsluv":[168.866706644517421,48.6618587245334879,83.3598915829196585]},"#99dddd":{"lch":[83.811463234187741,33.6120761253887,192.17705063006062],"luv":[83.811463234187741,-32.85581988586,-7.08990557672323529],"rgb":[0.6,0.866666666666666696,0.866666666666666696],"xyz":[0.520416510774105112,0.637040875341792212,0.779629314780951432],"hpluv":[192.17705063006062,88.9162454401141,83.811463234187741],"hsluv":[192.17705063006062,50.6906605199231777,83.811463234187741]},"#99ddee":{"lch":[84.3064561843391402,38.9043785470910208,212.822778279485817],"luv":[84.3064561843391402,-32.6933403312743565,-21.0878203738277712],"rgb":[0.6,0.866666666666666696,0.933333333333333348],"xyz":[0.544228691040279822,0.646565747448262229,0.905040130849474656],"hpluv":[212.822778279485817,106.615167592423816,84.3064561843391402],"hsluv":[212.822778279485817,60.6575363344623781,84.3064561843391402]},"#99ddff":{"lch":[84.8449079615810575,48.055447414973429,227.378328123916845],"luv":[84.8449079615810575,-32.5409551013358396,-35.3611689193969099],"rgb":[0.6,0.866666666666666696,1],"xyz":[0.570399739450111243,0.657034166812195,1.04287431914125639],"hpluv":[227.378328123916845,137.001856984753886,84.8449079615810575],"hsluv":[227.378328123916845,99.999999999994813,84.8449079615810575]},"#445500":{"lch":[33.4053570608210535,38.7644311760376397,101.469350612776353],"luv":[33.4053570608210535,-7.7080633936099785,37.9903525006263791],"rgb":[0.266666666666666663,0.333333333333333315,0],"xyz":[0.0563220008404254485,0.0772588357738427239,0.0119452840524730177],"hpluv":[101.469350612776353,147.25044771073371,33.4053570608210535],"hsluv":[101.469350612776353,100.000000000002245,33.4053570608210535]},"#445511":{"lch":[33.4914653280992525,35.8039831739898275,102.524785035338],"luv":[33.4914653280992525,-7.76452054412734,34.9519303021045076],"rgb":[0.266666666666666663,0.333333333333333315,0.0666666666666666657],"xyz":[0.0573336663400625668,0.0776635019736975768,0.0172733890172286492],"hpluv":[102.524785035338,135.655223597469387,33.4914653280992525],"hsluv":[102.524785035338,91.5452633494882093,33.4914653280992525]},"#445522":{"lch":[33.6502992474903806,30.5965852313305291,104.897478349629381],"luv":[33.6502992474903806,-7.86608410210478493,29.5681543001366229],"rgb":[0.266666666666666663,0.333333333333333315,0.133333333333333331],"xyz":[0.0592090244785395889,0.0784136452290883912,0.0271502752132078452],"hpluv":[104.897478349629381,115.378092601865731,33.6502992474903806],"hsluv":[104.897478349629381,76.6558497494370243,33.6502992474903806]},"#445533":{"lch":[33.9096245159150911,22.79863905315759,110.61032755328398],"luv":[33.9096245159150911,-8.02535730567797501,21.3394372651287],"rgb":[0.266666666666666663,0.333333333333333315,0.2],"xyz":[0.0622967752109973294,0.0796487455220715,0.0434124290708189919],"hpluv":[110.61032755328398,85.3149751467856419,33.9096245159150911],"hsluv":[110.61032755328398,54.1403397653178331,33.9096245159150911]},"#445544":{"lch":[34.2793424585633204,13.4702363502677187,127.715012949235046],"luv":[34.2793424585633204,-8.24020614134090401,10.6558092175245633],"rgb":[0.266666666666666663,0.333333333333333315,0.266666666666666663],"xyz":[0.0667547704552162,0.081431943619759084,0.0668912040237056305],"hpluv":[127.715012949235046,49.8634197051089814,34.2793424585633204],"hsluv":[127.715012949235046,25.3893680776039865,34.2793424585633204]},"#445555":{"lch":[34.7654846399243738,8.70030094248716424,192.177050630060222],"luv":[34.7654846399243738,-8.50454817645784544,-1.83518304377262664],"rgb":[0.266666666666666663,0.333333333333333315,0.333333333333333315],"xyz":[0.0727171844945782,0.0838169092355039169,0.098293251297679532],"hpluv":[192.177050630060222,31.7559649298661668,34.7654846399243738],"hsluv":[192.177050630060222,31.6316627668381969,34.7654846399243738]},"#445566":{"lch":[35.3707740335649916,17.7582093223154978,240.254504050727519],"luv":[35.3707740335649916,-8.81070452432763318,-15.4183489427423961],"rgb":[0.266666666666666663,0.333333333333333315,0.4],"xyz":[0.0803021802680863733,0.0868509075449072354,0.138240895704823508],"hpluv":[240.254504050727519,63.7079944588343352,35.3707740335649916],"hsluv":[240.254504050727519,38.2083413049732812,35.3707740335649916]},"#445577":{"lch":[36.0950574442792913,30.8488081821149329,252.743594747999822],"luv":[36.0950574442792913,-9.15124765847803623,-29.4602042177260124],"rgb":[0.266666666666666663,0.333333333333333315,0.466666666666666674],"xyz":[0.0896161932882882928,0.0905765127529880448,0.187294697611221417],"hpluv":[252.743594747999822,108.450105614435046,36.0950574442792913],"hsluv":[252.743594747999822,44.7362415879762878,36.0950574442792913]},"#445588":{"lch":[36.935739068143242,44.5159055243500319,257.651563208142],"luv":[36.935739068143242,-9.5200062368872409,-43.4860359874579245],"rgb":[0.266666666666666663,0.333333333333333315,0.533333333333333326],"xyz":[0.100756610390232121,0.0950326795937656427,0.245967561014793584],"hpluv":[257.651563208142,152.935302017774575,36.935739068143242],"hsluv":[257.651563208142,50.9359550606187952,36.935739068143242]},"#445599":{"lch":[37.8882410462664865,58.0440865604997711,260.167284745959819],"luv":[37.8882410462664865,-9.91231220062277885,-57.1914508600732674],"rgb":[0.266666666666666663,0.333333333333333315,0.6],"xyz":[0.113813574499304834,0.1002554652373948,0.314734238655911491],"hpluv":[260.167284745959819,194.398479571090235,37.8882410462664865],"hsluv":[260.167284745959819,56.6374271499956805,37.8882410462664865]},"#4455aa":{"lch":[38.9464770503006932,71.1678309986128141,261.658277796723496],"luv":[38.9464770503006932,-10.3247958657557941,-70.4149043837850144],"rgb":[0.266666666666666663,0.333333333333333315,0.66666666666666663],"xyz":[0.128871267464557376,0.106278542423495909,0.394038088272910092],"hpluv":[261.658277796723496,231.875507383352442,38.9464770503006932],"hsluv":[261.658277796723496,61.7617646139185652,38.9464770503006932]},"#4455bb":{"lch":[40.1033117689144,83.7900384834958,262.625350778636744],"luv":[40.1033117689144,-10.7550224317659584,-83.0969316013408417],"rgb":[0.266666666666666663,0.333333333333333315,0.733333333333333282],"xyz":[0.146008859571894023,0.113133579266430667,0.484296073371551838],"hpluv":[262.625350778636744,265.125486140416797,40.1033117689144],"hsluv":[262.625350778636744,66.2950009745661,40.1033117689144]},"#4455cc":{"lch":[41.3509797710146,95.8983760986006075,263.292411358069444],"luv":[41.3509797710146,-11.2011488171863753,-95.24196975873555],"rgb":[0.266666666666666663,0.333333333333333315,0.8],"xyz":[0.165301235015615777,0.120850529443919469,0.585902584041821939],"hpluv":[263.292411358069444,294.28272942652967,41.3509797710146],"hsluv":[263.292411358069444,71.9850161095278906,41.3509797710146]},"#4455dd":{"lch":[42.6814446156526657,107.523441304607104,263.773623462042394],"luv":[42.6814446156526657,-11.661670844638417,-106.88917561239117],"rgb":[0.266666666666666663,0.333333333333333315,0.866666666666666696],"xyz":[0.186819560566249321,0.129457859664173,0.699232431941827937],"hpluv":[263.773623462042394,319.67109728436958,42.6814446156526657],"hsluv":[263.773623462042394,81.2732363837730247,42.6814446156526657]},"#4455ee":{"lch":[44.0866885883675,118.714724855013472,264.132858108854521],"luv":[44.0866885883675,-12.1352655753704255,-118.092850024109339],"rgb":[0.266666666666666663,0.333333333333333315,0.933333333333333348],"xyz":[0.21063174083242403,0.13898273177064302,0.82464324801035116],"hpluv":[264.132858108854521,341.693279595385377,44.0866885883675],"hsluv":[264.132858108854521,90.5684283810677186,44.0866885883675]},"#4455ff":{"lch":[45.5589321196955765,129.526958246416882,264.408404412275218],"luv":[45.5589321196955765,-12.6207071057408875,-128.910630534181024],"rgb":[0.266666666666666663,0.333333333333333315,1],"xyz":[0.236802789242255451,0.149451151134575744,0.962477436302133],"hpluv":[264.408404412275218,360.766296003954039,45.5589321196955765],"hsluv":[264.408404412275218,99.9999999999992752,45.5589321196955765]},"#bbdd00":{"lch":[83.0607051195576673,95.2176030862527796,99.223939245402],"luv":[83.0607051195576673,-15.2627740644400269,93.9863802119702427],"rgb":[0.733333333333333282,0.866666666666666696,0],"xyz":[0.463483785628456102,0.622773719281865423,0.0957905185125420555],"hpluv":[99.223939245402,239.164338292747971,83.0607051195576673],"hsluv":[99.223939245402,100.00000000000216,83.0607051195576673]},"#bbdd11":{"lch":[83.082156377860457,94.2793845093074765,99.3314951275217481],"luv":[83.082156377860457,-15.2870500651298524,93.0317604034238457],"rgb":[0.733333333333333282,0.866666666666666696,0.0666666666666666657],"xyz":[0.464495451128093206,0.623178385481720332,0.101118623477297692],"hpluv":[99.3314951275217481,237.15213625798873,83.082156377860457],"hsluv":[99.3314951275217481,98.93507934353417,83.082156377860457]},"#bbdd22":{"lch":[83.1218967422411765,92.5513012339483794,99.5354402549794486],"luv":[83.1218967422411765,-15.3318301742674485,91.2725497814347],"rgb":[0.733333333333333282,0.866666666666666696,0.133333333333333331],"xyz":[0.466370809266570263,0.623928528737111132,0.110995509673276885],"hpluv":[99.5354402549794486,233.433860498438293,83.1218967422411765],"hsluv":[99.5354402549794486,96.9737920722735538,83.1218967422411765]},"#bbdd33":{"lch":[83.1872593514570298,89.7372330308786,99.8847694763800718],"luv":[83.1872593514570298,-15.4049421957575614,88.4050832700449263],"rgb":[0.733333333333333282,0.866666666666666696,0.2],"xyz":[0.469458559999027969,0.625163629030094259,0.127257663530888021],"hpluv":[99.8847694763800718,227.34486653748678,83.1872593514570298],"hsluv":[99.8847694763800718,93.7802848880547373,83.1872593514570298]},"#bbdd44":{"lch":[83.2814760883348697,85.7419087717973,100.421139587323779],"luv":[83.2814760883348697,-15.5091702542505097,84.3275788686944452],"rgb":[0.733333333333333282,0.866666666666666696,0.266666666666666663],"xyz":[0.473916555243246884,0.626946827127781825,0.15073643848377466],"hpluv":[100.421139587323779,218.62539011377612,83.2814760883348697],"hsluv":[100.421139587323779,89.2463889616074511,83.2814760883348697]},"#bbdd55":{"lch":[83.4072088624658,80.5207963453540572,101.204557559233223],"luv":[83.4072088624658,-15.6461875861262687,78.9860459708531835],"rgb":[0.733333333333333282,0.866666666666666696,0.333333333333333315],"xyz":[0.479878969282608869,0.629331792743526575,0.182138485757748575],"hpluv":[101.204557559233223,207.093501481883948,83.4072088624658],"hsluv":[101.204557559233223,83.3201121340644448,83.4072088624658]},"#bbdd66":{"lch":[83.5666996797624364,74.0772937371066149,102.328486133362119],"luv":[83.5666996797624364,-15.816696660053216,72.3690372616455164],"rgb":[0.733333333333333282,0.866666666666666696,0.4],"xyz":[0.487463965056117055,0.632365791052929893,0.222086130164892537],"hpluv":[102.328486133362119,192.635686460640301,83.5666996797624364],"hsluv":[102.328486133362119,75.9999631534792854,83.5666996797624364]},"#bbdd77":{"lch":[83.7618505003220122,66.4632811318093388,103.948126608074304],"luv":[83.7618505003220122,-16.0205304866066705,64.5035684418593149],"rgb":[0.733333333333333282,0.866666666666666696,0.466666666666666674],"xyz":[0.49677797807631896,0.636091396261010744,0.271139932071290446],"hpluv":[103.948126608074304,175.207590447676779,83.7618505003220122],"hsluv":[103.948126608074304,67.3303268013154,83.7618505003220122]},"#bbdd88":{"lch":[83.9942706402616,57.7845188457632091,106.339844930601203],"luv":[83.9942706402616,-16.2567564016803381,55.4505950331715454],"rgb":[0.733333333333333282,0.866666666666666696,0.533333333333333326],"xyz":[0.50791839517826276,0.640547563101788286,0.329812795474862641],"hpluv":[106.339844930601203,154.850612540446264,83.9942706402616],"hsluv":[106.339844930601203,57.39610210967858,83.9942706402616]},"#bbdd99":{"lch":[84.2653073070245711,48.2191913160874819,110.040291826115165],"luv":[84.2653073070245711,-16.5237946272095257,45.2996095159246153],"rgb":[0.733333333333333282,0.866666666666666696,0.6],"xyz":[0.520975359287335515,0.6457703487454175,0.39857947311598052],"hpluv":[110.040291826115165,131.749772406416298,84.2653073070245711],"hsluv":[110.040291826115165,46.3161497548768466,84.2653073070245711]},"#bbddaa":{"lch":[84.5760668100806328,38.0784660246866622,116.212889721452115],"luv":[84.5760668100806328,-16.8195514991441222,34.1624393473425059],"rgb":[0.733333333333333282,0.866666666666666696,0.66666666666666663],"xyz":[0.536033052252588,0.651793425931518566,0.477883322732979121],"hpluv":[116.212889721452115,106.421399158629868,84.5760668100806328],"hsluv":[116.212889721452115,34.2356923349747433,84.5760668100806328]},"#bbddbb":{"lch":[84.9274305013996553,28.0212505683590543,127.715012949233824],"luv":[84.9274305013996553,-17.1415612181778,22.1665821095230058],"rgb":[0.733333333333333282,0.866666666666666696,0.733333333333333282],"xyz":[0.55317064435992469,0.658648462774453325,0.568141307831620868],"hpluv":[127.715012949233824,80.3800713533813109,84.9274305013996553],"hsluv":[127.715012949233824,21.3181094477761164,84.9274305013996553]},"#bbddcc":{"lch":[85.3200677868051,19.876471170849122,151.617083508593169],"luv":[85.3200677868051,-17.4871274790593141,9.44851727715650291],"rgb":[0.733333333333333282,0.866666666666666696,0.8],"xyz":[0.572463019803646445,0.666365412951942182,0.669747818501891],"hpluv":[151.617083508593169,58.7374284962306703,85.3200677868051],"hsluv":[151.617083508593169,24.0698773292010699,85.3200677868051]},"#bbdddd":{"lch":[85.7544476215988,18.2643967282432129,192.177050630059739],"luv":[85.7544476215988,-17.8534562098583329,-3.85256916996079246],"rgb":[0.733333333333333282,0.866666666666666696,0.866666666666666696],"xyz":[0.593981345354279933,0.674972743172195688,0.783077666401897],"hpluv":[192.177050630059739,55.8245506661868234,85.7544476215988],"hsluv":[192.177050630059739,26.9205986284609722,85.7544476215988]},"#bbddee":{"lch":[86.2308493598319359,25.3453434934362818,223.980933900351914],"luv":[86.2308493598319359,-18.2377721186398958,-17.6002870700688909],"rgb":[0.733333333333333282,0.866666666666666696,0.933333333333333348],"xyz":[0.617793525620454753,0.684497615278665705,0.908488482470420244],"hpluv":[223.980933900351914,80.4705047412629142,86.2308493598319359],"hsluv":[223.980933900351914,55.5800524236117397,86.2308493598319359]},"#bbddff":{"lch":[86.7493734858622076,36.743147173338194,239.520163688183],"luv":[86.7493734858622076,-18.6374141011141354,-31.6655279416778761],"rgb":[0.733333333333333282,0.866666666666666696,1],"xyz":[0.643964574030286063,0.694966034642598429,1.0463226707622022],"hpluv":[239.520163688183,121.752323062157373,86.7493734858622076],"hsluv":[239.520163688183,99.9999999999938325,86.7493734858622076]},"#99ee00":{"lch":[85.9664003491010646,109.204546268980621,112.979852313128234],"luv":[85.9664003491010646,-42.6342645949387915,100.538313136150634],"rgb":[0.6,0.933333333333333348,0],"xyz":[0.437097727388796042,0.679199404132492912,0.108068425671767623],"hpluv":[112.979852313128234,339.428934639809256,85.9664003491010646],"hsluv":[112.979852313128234,100.000000000002444,85.9664003491010646]},"#99ee11":{"lch":[85.9866468155118326,108.350123359521945,113.156064955940181],"luv":[85.9866468155118326,-42.6072764400583495,99.6211284135251702],"rgb":[0.6,0.933333333333333348,0.0666666666666666657],"xyz":[0.438109392888433147,0.67960407033234782,0.11339653063652326],"hpluv":[113.156064955940181,337.317445797395,85.9866468155118326],"hsluv":[113.156064955940181,99.0182391276988,85.9866468155118326]},"#99ee22":{"lch":[86.0241571186350455,106.77763062148405,113.488368653358094],"luv":[86.0241571186350455,-42.5576013317541353,97.9301433166804287],"rgb":[0.6,0.933333333333333348,0.133333333333333331],"xyz":[0.439984751026910204,0.680354213587738621,0.123273416832502453],"hpluv":[113.488368653358094,333.419677856626379,86.0241571186350455],"hsluv":[113.488368653358094,97.2091916908085238,86.0241571186350455]},"#99ee33":{"lch":[86.0858572784747906,104.220652596579697,114.05202992935186],"luv":[86.0858572784747906,-42.476800751453851,95.1717701084636],"rgb":[0.6,0.933333333333333348,0.2],"xyz":[0.443072501759367909,0.681589313880721748,0.139535570690113603],"hpluv":[114.05202992935186,327.048640581280779,86.0858572784747906],"hsluv":[114.05202992935186,94.2610252844147709,86.0858572784747906]},"#99ee44":{"lch":[86.1748066309051239,100.599171066032113,114.904029942881266],"luv":[86.1748066309051239,-42.3622716989010186,91.2448966007484756],"rgb":[0.6,0.933333333333333348,0.266666666666666663],"xyz":[0.447530497003586825,0.683372511978409314,0.163014345643000241],"hpluv":[114.904029942881266,317.953677409096201,86.1748066309051239],"hsluv":[114.904029942881266,90.0700159696272777,86.1748066309051239]},"#99ee55":{"lch":[86.2935317577421586,95.884762204841536,116.119599614249481],"luv":[86.2935317577421586,-42.2129155656731854,86.0927254913233355],"rgb":[0.6,0.933333333333333348,0.333333333333333315],"xyz":[0.45349291104294881,0.685757477594154063,0.194416392916974157],"hpluv":[116.119599614249481,305.984138616458665,86.2935317577421586],"hsluv":[116.119599614249481,84.5822993375075924,86.2935317577421586]},"#99ee66":{"lch":[86.4441689863048879,90.1009507230509143,117.805124209421223],"luv":[86.4441689863048879,-42.0290075887870955,79.6978283411745565],"rgb":[0.6,0.933333333333333348,0.4],"xyz":[0.461077906816457,0.688791475903557382,0.234364037324118091],"hpluv":[117.805124209421223,291.090686380889622,86.4441689863048879],"hsluv":[117.805124209421223,77.7887546135139587,86.4441689863048879]},"#99ee77":{"lch":[86.6285404402691199,83.3280712532883712,120.117619079442107],"luv":[86.6285404402691199,-41.8120893585486826,72.0785449510868261],"rgb":[0.6,0.933333333333333348,0.466666666666666674],"xyz":[0.470391919836658901,0.692517081111638233,0.283417839230516],"hpluv":[120.117619079442107,273.344218704658658,86.6285404402691199],"hsluv":[120.117619079442107,69.7211272565473,86.6285404402691199]},"#99ee88":{"lch":[86.8481992617441563,75.7142340291470646,123.296374810060541],"luv":[86.8481992617441563,-41.5648380664255939,63.2851441582641],"rgb":[0.6,0.933333333333333348,0.533333333333333326],"xyz":[0.481532336938602701,0.696973247952415775,0.342090702634088195],"hpluv":[123.296374810060541,252.981665625798911,86.8481992617441563],"hsluv":[123.296374810060541,60.4476982156994964,86.8481992617441563]},"#99ee99":{"lch":[87.1044587056640864,67.4980907628946483,127.715012949238613],"luv":[87.1044587056640864,-41.2908999939099388,53.3952604107227131],"rgb":[0.6,0.933333333333333348,0.6],"xyz":[0.4945893010476754,0.702196033596045,0.410857380275206074],"hpluv":[127.715012949238613,230.504268403717248,87.1044587056640864],"hsluv":[127.715012949238613,50.0680020008431583,87.1044587056640864]},"#99eeaa":{"lch":[87.3984122167822477,59.0554460818204134,133.961345837807],"luv":[87.3984122167822477,-40.9946911699179566,42.5085992218733182],"rgb":[0.6,0.933333333333333348,0.66666666666666663],"xyz":[0.509646994012928,0.708219110782146,0.490161229892204675],"hpluv":[133.961345837807,206.883546406693341,87.3984122167822477],"hsluv":[133.961345837807,51.4281429353489514,87.3984122167822477]},"#99eebb":{"lch":[87.7309483141988409,50.9899623050450046,142.923108379062683],"luv":[87.7309483141988409,-40.6811762109167603,30.7411476358032338],"rgb":[0.6,0.933333333333333348,0.733333333333333282],"xyz":[0.526784586120264575,0.715074147625080814,0.580419214990846477],"hpluv":[142.923108379062683,183.977628608542716,87.7309483141988409],"hsluv":[142.923108379062683,52.8887094272277523,87.7309483141988409]},"#99eecc":{"lch":[88.1027624984453581,44.2777406304916781,155.702396707036257],"luv":[88.1027624984453581,-40.3556400464907483,18.219237958245273],"rgb":[0.6,0.933333333333333348,0.8],"xyz":[0.546076961563986329,0.722791097802569671,0.682025725661116633],"hpluv":[155.702396707036257,165.259943503195302,88.1027624984453581],"hsluv":[155.702396707036257,54.4312604691531305,88.1027624984453581]},"#99eedd":{"lch":[88.514367527899708,40.3437945821223494,172.775068456479858],"luv":[88.514367527899708,-40.023467685182176,5.07383442158517628],"rgb":[0.6,0.933333333333333348,0.866666666666666696],"xyz":[0.567595287114619929,0.731398428022823177,0.795355573561122631],"hpluv":[172.775068456479858,156.503534311163719,88.514367527899708],"hsluv":[172.775068456479858,56.0368199873083199,88.514367527899708]},"#99eeee":{"lch":[88.9661029048661476,40.6035054290346196,192.177050630060762],"luv":[88.9661029048661476,-39.6899452486728,-8.56463071492281891],"rgb":[0.6,0.933333333333333348,0.933333333333333348],"xyz":[0.591407467380794638,0.740923300129293194,0.920766389629645854],"hpluv":[192.177050630060762,164.568757380081195,88.9661029048661476],"hsluv":[192.177050630060762,57.6866071933722324,88.9661029048661476]},"#99eeff":{"lch":[89.4581440962481338,45.3723498615675496,209.831659516829347],"luv":[89.4581440962481338,-39.3600920674606272,-22.5706287994267498],"rgb":[0.6,0.933333333333333348,1],"xyz":[0.617578515790626059,0.751391719493225918,1.05860057792142759],"hpluv":[209.831659516829347,193.255751503994162,89.4581440962481338],"hsluv":[209.831659516829347,99.9999999999917293,89.4581440962481338]},"#446600":{"lch":[39.1245088935371612,48.4489514943966242,110.29724752770484],"luv":[39.1245088935371612,-16.806485623906017,45.4405429311736668],"rgb":[0.266666666666666663,0.4,0],"xyz":[0.0713500585462719106,0.107314951185536064,0.0169546366210883669],"hpluv":[110.29724752770484,157.13568029472475,39.1245088935371612],"hsluv":[110.29724752770484,100.000000000002302,39.1245088935371612]},"#446611":{"lch":[39.1937103273453289,46.0071342898824156,111.370502443062165],"luv":[39.1937103273453289,-16.7648801632844737,42.843846683952],"rgb":[0.266666666666666663,0.4,0.0666666666666666657],"xyz":[0.0723617240459090288,0.107719617385390917,0.022282741585844],"hpluv":[111.370502443062165,148.9526145018813,39.1937103273453289],"hsluv":[111.370502443062165,93.861989786091,39.1937103273453289]},"#446622":{"lch":[39.3215343087732165,41.6757739733598,113.610346420587263],"luv":[39.3215343087732165,-16.6917518579939177,38.1871124358693947],"rgb":[0.266666666666666663,0.4,0.133333333333333331],"xyz":[0.0742370821843860579,0.108469760640781732,0.0321596277818231926],"hpluv":[113.610346420587263,134.490790122462073,39.3215343087732165],"hsluv":[113.610346420587263,82.9003633409612,39.3215343087732165]},"#446633":{"lch":[39.530716823468623,35.0960892868442684,118.194686061271412],"luv":[39.530716823468623,-16.5818151114938139,30.931842668007679],"rgb":[0.266666666666666663,0.4,0.2],"xyz":[0.0773248329168437915,0.109704860933764844,0.0484217816394343359],"hpluv":[118.194686061271412,112.658344014206364,39.530716823468623],"hsluv":[118.194686061271412,65.945418212904,39.530716823468623]},"#446644":{"lch":[39.8299759493166761,26.8801274380109838,127.715012949238059],"luv":[39.8299759493166761,-16.4434970133495142,21.2638815143349724],"rgb":[0.266666666666666663,0.4,0.266666666666666663],"xyz":[0.0817828281610626651,0.111488059031452424,0.0719005565923209744],"hpluv":[127.715012949238059,85.6368345314009,39.8299759493166761],"hsluv":[127.715012949238059,43.6044123282566858,39.8299759493166761]},"#446655":{"lch":[40.2252775564066809,18.9132283301115756,149.466153210293243],"luv":[40.2252775564066809,-16.2905155992652197,9.6088140463343148],"rgb":[0.266666666666666663,0.4,0.333333333333333315],"xyz":[0.087745242200424664,0.113873024647197257,0.10330260386629489],"hpluv":[149.466153210293243,59.6631175613842473,40.2252775564066809],"hsluv":[149.466153210293243,47.2452022491104273,40.2252775564066809]},"#446666":{"lch":[40.7202569602655728,16.510473073285187,192.177050630060847],"luv":[40.7202569602655728,-16.1389950297194247,-3.48260829470770128],"rgb":[0.266666666666666663,0.4,0.4],"xyz":[0.0953302379739328354,0.116907022956600576,0.143250248273438852],"hpluv":[192.177050630060847,51.4503500463259655,40.7202569602655728],"hsluv":[192.177050630060847,51.2489582821824214,40.7202569602655728]},"#446677":{"lch":[41.3164898648363632,23.6752994583974647,227.46784435344162],"luv":[41.3164898648363632,-16.0045942322577233,-17.4462823519963166],"rgb":[0.266666666666666663,0.4,0.466666666666666674],"xyz":[0.104644250994134755,0.120632628164681385,0.192304050179836761],"hpluv":[227.46784435344162,72.7128872034151783,41.3164898648363632],"hsluv":[227.46784435344162,55.4049423234493261,41.3164898648363632]},"#446688":{"lch":[42.0137303768536654,35.5424939627414,243.425378218088099],"luv":[42.0137303768536654,-15.9003964812462133,-31.7875175002811758],"rgb":[0.266666666666666663,0.4,0.533333333333333326],"xyz":[0.115784668096078583,0.125088795005458969,0.2509769135834089],"hpluv":[243.425378218088099,107.348500116853913,42.0137303768536654],"hsluv":[243.425378218088099,59.5313600522085409,42.0137303768536654]},"#446699":{"lch":[42.8101553746289696,48.7666560663799089,251.050944767945737],"luv":[42.8101553746289696,-15.8358652521886238,-46.1238779333558782],"rgb":[0.266666666666666663,0.4,0.6],"xyz":[0.128841632205151296,0.130311580649088155,0.319743591224526835],"hpluv":[251.050944767945737,144.549135771893674,42.8101553746289696],"hsluv":[251.050944767945737,63.4907652576423231,42.8101553746289696]},"#4466aa":{"lch":[43.7026231888915078,62.2363741998113298,255.27738032783347],"luv":[43.7026231888915078,-15.8167390859625119,-60.1929982491778404],"rgb":[0.266666666666666663,0.4,0.66666666666666663],"xyz":[0.143899325170403825,0.136334657835189249,0.399047440841525436],"hpluv":[255.27738032783347,180.707469421570693,43.7026231888915078],"hsluv":[255.27738032783347,67.1924648453768896,43.7026231888915078]},"#4466bb":{"lch":[44.6869405362706402,75.5191451090451409,257.888120209084718],"luv":[44.6869405362706402,-15.8455247037125186,-73.83807029483539],"rgb":[0.266666666666666663,0.4,0.733333333333333282],"xyz":[0.161036917277740499,0.143189694678124,0.489305425940167182],"hpluv":[257.888120209084718,214.444923406304468,44.6869405362706402],"hsluv":[257.888120209084718,70.5866413561882098,44.6869405362706402]},"#4466cc":{"lch":[45.7581261645645299,88.428992560325014,259.626929599743789],"luv":[45.7581261645645299,-15.9222446749778896,-86.983727499712],"rgb":[0.266666666666666663,0.4,0.8],"xyz":[0.180329292721462225,0.150906644855612809,0.590911936610437283],"hpluv":[259.626929599743789,245.225581131482073,45.7581261645645299],"hsluv":[259.626929599743789,73.6549291646736179,45.7581261645645299]},"#4466dd":{"lch":[46.9106590907269165,100.895184366494064,260.849495088158733],"luv":[46.9106590907269165,-16.0451985527389489,-99.6111933055317422],"rgb":[0.266666666666666663,0.4,0.866666666666666696],"xyz":[0.201847618272095769,0.159513975075866343,0.704241784510443281],"hpluv":[260.849495088158733,272.92180192815988,46.9106590907269165],"hsluv":[260.849495088158733,78.541907894368677,46.9106590907269165]},"#4466ee":{"lch":[48.1387014995781897,112.90717489320852,261.744736192665698],"luv":[48.1387014995781897,-16.2116120228509466,-111.737253313235385],"rgb":[0.266666666666666663,0.4,0.933333333333333348],"xyz":[0.225659798538270506,0.16903884718233636,0.829652600578966504],"hpluv":[261.744736192665698,297.623004098842955,48.1387014995781897],"hsluv":[261.744736192665698,89.2025828989012126,48.1387014995781897]},"#4466ff":{"lch":[49.4362898036433194,124.485902067172418,262.421323096893047],"luv":[49.4362898036433194,-16.4181334215125325,-123.398479360286501],"rgb":[0.266666666666666663,0.4,1],"xyz":[0.251830846948101872,0.179507266546269084,0.967486788870748349],"hpluv":[262.421323096893047,319.531462910383539,49.4362898036433194],"hsluv":[262.421323096893047,99.9999999999992,49.4362898036433194]},"#bbee00":{"lch":[87.830324097455545,103.474670767003104,103.901308289378321],"luv":[87.830324097455545,-24.8598111448325625,100.444000717728017],"rgb":[0.733333333333333282,0.933333333333333348,0],"xyz":[0.510662561968970863,0.717131271962896388,0.111516777292713254],"hpluv":[103.901308289378321,376.707439149390723,87.830324097455545],"hsluv":[103.901308289378321,100.000000000002331,87.830324097455545]},"#bbee11":{"lch":[87.8498503793181413,102.621932764236291,104.023160127863235],"luv":[87.8498503793181413,-24.8667401733108697,99.5635792718425705],"rgb":[0.733333333333333282,0.933333333333333348,0.0666666666666666657],"xyz":[0.511674227468608,0.717535938162751297,0.116844882257468891],"hpluv":[104.023160127863235,374.263941750279344,87.8498503793181413],"hsluv":[104.023160127863235,99.0733759990956315,87.8498503793181413]},"#bbee22":{"lch":[87.8860274909110757,101.050540606732312,104.253301125000391],"luv":[87.8860274909110757,-24.8795662288424886,97.9398741125263],"rgb":[0.733333333333333282,0.933333333333333348,0.133333333333333331],"xyz":[0.513549585607085,0.718286081418142097,0.126721768453448069],"hpluv":[104.253301125000391,369.744422226518111,87.8860274909110757],"hsluv":[104.253301125000391,97.3653524759520224,87.8860274909110757]},"#bbee33":{"lch":[87.9455377581158899,98.4895893313188111,104.644745385959411],"luv":[87.9455377581158899,-24.9006321902472507,95.2898615970127878],"rgb":[0.733333333333333282,0.933333333333333348,0.2],"xyz":[0.516637336339542785,0.719521181711125224,0.142983922311059219],"hpluv":[104.644745385959411,362.331462484484575,87.9455377581158899],"hsluv":[104.644745385959411,94.5802259429375454,87.9455377581158899]},"#bbee44":{"lch":[88.03133674845418,94.8494424101932339,105.239087045756335],"luv":[88.03133674845418,-24.9309340294718567,91.5142898892991781],"rgb":[0.733333333333333282,0.933333333333333348,0.266666666666666663],"xyz":[0.521095331583761645,0.72130437980881279,0.166462697263945858],"hpluv":[105.239087045756335,351.690778632920285,88.03133674845418],"hsluv":[105.239087045756335,90.61757843521751,88.03133674845418]},"#bbee55":{"lch":[88.145869167101,90.085489786575252,106.092871571181419],"luv":[88.145869167101,-24.9712578135623886,86.5553681367929499],"rgb":[0.733333333333333282,0.933333333333333348,0.333333333333333315],"xyz":[0.527057745623123575,0.72368934542455754,0.197864744537919773],"hpluv":[106.092871571181419,337.573290416608245,88.145869167101],"hsluv":[106.092871571181419,85.422816781051381,88.145869167101]},"#bbee66":{"lch":[88.2912067804751786,84.1961694748550116,107.288882190620882],"luv":[88.2912067804751786,-25.0222263001917433,80.3920589686599527],"rgb":[0.733333333333333282,0.933333333333333348,0.4],"xyz":[0.534642741396631815,0.726723343733960858,0.237812388945063735],"hpluv":[107.288882190620882,319.804166688067426,88.2912067804751786],"hsluv":[107.288882190620882,78.9823949944632631,88.2912067804751786]},"#bbee77":{"lch":[88.4691221578712828,77.2243366572971439,108.954917992899311],"luv":[88.4691221578712828,-25.0843250262429365,73.0368044901840534],"rgb":[0.733333333333333282,0.933333333333333348,0.466666666666666674],"xyz":[0.543956754416833665,0.730448948942041709,0.286866190851461644],"hpluv":[108.954917992899311,298.285685525501094,88.4691221578712828],"hsluv":[108.954917992899311,71.3203705839542,88.4691221578712828]},"#bbee88":{"lch":[88.6811325759484106,69.2626802552854599,111.298371855766348],"luv":[88.6811325759484106,-25.1579200624522237,64.5321465184381822],"rgb":[0.733333333333333282,0.933333333333333348,0.533333333333333326],"xyz":[0.555097171518777577,0.734905115782819252,0.34553905425503384],"hpluv":[111.298371855766348,273.019747479454225,88.6811325759484106],"hsluv":[111.298371855766348,62.4946759175697224,88.6811325759484106]},"#bbee99":{"lch":[88.9285282571087095,60.4678989000773228,114.674688063820184],"luv":[88.9285282571087095,-25.2432722518949362,54.9467378777547069],"rgb":[0.733333333333333282,0.933333333333333348,0.6],"xyz":[0.568154135627850221,0.740127901426448465,0.414305731896151719],"hpluv":[114.674688063820184,244.173567048365754,88.9285282571087095],"hsluv":[114.674688063820184,52.5925914284503548,88.9285282571087095]},"#bbeeaa":{"lch":[89.2123917942545148,51.0969811847688931,119.731125412935242],"luv":[89.2123917942545148,-25.3405499711494109,44.3706886734509212],"rgb":[0.733333333333333282,0.933333333333333348,0.66666666666666663],"xyz":[0.583211828593102832,0.746150978612549531,0.493609581513150319],"hpluv":[119.731125412935242,212.254877789093854,89.2123917942545148],"hsluv":[119.731125412935242,41.7253920748903084,89.2123917942545148]},"#bbeebb":{"lch":[89.5336124490095,41.6027669810227181,127.715012949236097],"luv":[89.5336124490095,-25.4498411950279184,32.9104208971130276],"rgb":[0.733333333333333282,0.933333333333333348,0.733333333333333282],"xyz":[0.600349420700439396,0.75300601545548429,0.583867566611792066],"hpluv":[127.715012949236097,178.587287563939924,89.5336124490095],"hsluv":[127.715012949236097,37.7465419844818,89.5336124490095]},"#bbeecc":{"lch":[89.8928974614309766,32.8889663829363883,141.03222670888556],"luv":[89.8928974614309766,-25.571165029146556,20.6833176446640721],"rgb":[0.733333333333333282,0.933333333333333348,0.8],"xyz":[0.61964179614416115,0.760722965632973147,0.685474077282062222],"hpluv":[141.03222670888556,146.627829178506289,89.8928974614309766],"hsluv":[141.03222670888556,37.1073685119788,89.8928974614309766]},"#bbeedd":{"lch":[90.290781675649967,26.8655052232995288,163.094148385079734],"luv":[90.290781675649967,-25.704482585445124,7.81248653872008436],"rgb":[0.733333333333333282,0.933333333333333348,0.866666666666666696],"xyz":[0.641160121694794749,0.769330295853226653,0.79880392518206822],"hpluv":[163.094148385079734,125.084011642469022,90.290781675649967],"hsluv":[163.094148385079734,36.2429238875219255,90.290781675649967]},"#bbeeee":{"lch":[90.7276363011350782,26.4447005646089579,192.177050630060336],"luv":[90.7276363011350782,-25.8497069757021904,-5.5780675168164624],"rgb":[0.733333333333333282,0.933333333333333348,0.933333333333333348],"xyz":[0.664972301960969459,0.77885516795969667,0.924214741250591443],"hpluv":[192.177050630060336,129.38009793870765,90.7276363011350782],"hsluv":[192.177050630060336,36.8413123479339077,90.7276363011350782]},"#bbeeff":{"lch":[91.2036773284388289,32.4261328799939648,216.675663960190036],"luv":[91.2036773284388289,-26.0067122100428421,-19.367627980086624],"rgb":[0.733333333333333282,0.933333333333333348,1],"xyz":[0.69114335037080088,0.789323587323629394,1.06204892954237318],"hpluv":[216.675663960190036,167.86892764061264,91.2036773284388289],"hsluv":[216.675663960190036,99.9999999999901235,91.2036773284388289]},"#99ff00":{"lch":[90.9122626200542214,118.290950299530564,115.261698016578393],"luv":[90.9122626200542214,-50.4810643573161286,106.978554225220847],"rgb":[0.6,1,0],"xyz":[0.48895009981846993,0.782904148991842,0.125352549814991721],"hpluv":[115.261698016578393,591.369219456757151,90.9122626200542214],"hsluv":[115.261698016578393,100.000000000002402,90.9122626200542214]},"#99ff11":{"lch":[90.9306796583728,117.513960007406183,115.422432906031332],"luv":[90.9306796583728,-50.4474247175277384,106.134764031356056],"rgb":[0.6,1,0.0666666666666666657],"xyz":[0.489961765318107034,0.783308815191696928,0.130680654779747357],"hpluv":[115.422432906031332,588.764777700997797,90.9306796583728],"hsluv":[115.422432906031332,99.9999999999905356,90.9306796583728]},"#99ff22":{"lch":[90.9648031673089577,116.082935310332914,115.724658723180369],"luv":[90.9648031673089577,-50.3854319755480944,104.577990585497247],"rgb":[0.6,1,0.133333333333333331],"xyz":[0.491837123456584091,0.784058958447087728,0.140557540975726536],"hpluv":[115.724658723180369,583.951350293788323,90.9648031673089577],"hsluv":[115.724658723180369,99.9999999999904219,90.9648031673089577]},"#99ff33":{"lch":[91.0209396556716399,113.753057852482627,116.234667099004312],"luv":[91.0209396556716399,-50.2843870930134642,102.035477092383132],"rgb":[0.6,1,0.2],"xyz":[0.494924874189041797,0.785294058740070855,0.156819694833337686],"hpluv":[116.234667099004312,576.067585056329449,91.0209396556716399],"hsluv":[116.234667099004312,99.9999999999905924,91.0209396556716399]},"#99ff44":{"lch":[91.1018839706868562,110.446777199697451,116.999375135233294],"luv":[91.1018839706868562,-50.1407143313292565,98.409345898362929],"rgb":[0.6,1,0.266666666666666663],"xyz":[0.499382869433260712,0.787077256837758421,0.180298469786224325],"hpluv":[116.999375135233294,564.777897061868,91.1018839706868562],"hsluv":[116.999375135233294,99.9999999999903793,91.1018839706868562]},"#99ff55":{"lch":[91.2099533036034558,106.130684884370282,118.07780645420398],"luv":[91.2099533036034558,-49.9525457622324112,93.6400846106921279],"rgb":[0.6,1,0.333333333333333315],"xyz":[0.505345283472622642,0.789462222453503171,0.21170051706019824],"hpluv":[118.07780645420398,549.854625367801646,91.2099533036034558],"hsluv":[118.07780645420398,99.9999999999901377,91.2099533036034558]},"#99ff66":{"lch":[91.3471179899501351,100.815112661229691,119.549522622156928],"luv":[91.3471179899501351,-49.7195590247369807,87.7020660605103899],"rgb":[0.6,1,0.4],"xyz":[0.512930279246130882,0.792496220762906489,0.251648161467342202],"hpluv":[119.549522622156928,531.176396965461777,91.3471179899501351],"hsluv":[119.549522622156928,99.9999999999902656,91.3471179899501351]},"#99ff77":{"lch":[91.5150716426202,94.5571579863012488,121.52621580287979],"luv":[91.5150716426202,-49.442863485124569,80.6006164792656534],"rgb":[0.6,1,0.466666666666666674],"xyz":[0.522244292266332732,0.79622182597098734,0.300701963373740111],"hpluv":[121.52621580287979,508.746904082031563,91.5150716426202],"hsluv":[121.52621580287979,99.9999999999900098,91.5150716426202]},"#99ff88":{"lch":[91.7152730008064481,87.4673964918121385,124.169042550433474],"luv":[91.7152730008064481,-49.1248751175299461,72.3691377159004077],"rgb":[0.6,1,0.533333333333333326],"xyz":[0.533384709368276644,0.800677992811764883,0.359374826777312251],"hpluv":[124.169042550433474,482.74240688111388,91.7152730008064481],"hsluv":[124.169042550433474,99.999999999989754,91.7152730008064481]},"#99ff99":{"lch":[91.9489728509177,79.7227767672504,127.715012949239039],"luv":[91.9489728509177,-48.7691602166467675,63.0657604984184559],"rgb":[0.6,1,0.6],"xyz":[0.546441673477349288,0.805900778455394096,0.428141504418430185],"hpluv":[127.715012949239039,453.611771943482722,91.9489728509177],"hsluv":[127.715012949239039,99.9999999999896119,91.9489728509177]},"#99ffaa":{"lch":[92.2172324754492365,71.5909188251234525,132.515331265000469],"luv":[92.2172324754492365,-48.380245540777544,52.769418223432119],"rgb":[0.6,1,0.66666666666666663],"xyz":[0.561499366442601899,0.811923855641495162,0.507445354035428786],"hpluv":[132.515331265000469,422.278899597361089,92.2172324754492365],"hsluv":[132.515331265000469,99.999999999989285,92.2172324754492365]},"#99ffbb":{"lch":[92.5209371039878334,63.4744472180726902,139.080731133451],"luv":[92.5209371039878334,-47.9634018094000325,41.5754439123617558],"rgb":[0.6,1,0.733333333333333282],"xyz":[0.578636958549938463,0.818778892484429921,0.597703339134070477],"hpluv":[139.080731133451,390.542311531215887,92.5209371039878334],"hsluv":[139.080731133451,99.9999999999889866,92.5209371039878334]},"#99ffcc":{"lch":[92.8608063839845,55.9838497302527216,148.091690615728766],"luv":[92.8608063839845,-47.524412431304512,29.5909049148346774],"rgb":[0.6,1,0.8],"xyz":[0.597929333993660217,0.826495842661918778,0.699309849804340633],"hpluv":[148.091690615728766,361.818313682118117,92.8608063839845],"hsluv":[148.091690615728766,99.999999999988475,92.8608063839845]},"#99ffdd":{"lch":[93.237403107538583,50.0214511206169306,160.217319691395858],"luv":[93.237403107538583,-47.0693412211659066,16.9299347080170577],"rgb":[0.6,1,0.866666666666666696],"xyz":[0.619447659544293816,0.835103172882172284,0.812639697704346631],"hpluv":[160.217319691395858,342.295010089686684,93.237403107538583],"hsluv":[160.217319691395858,99.999999999988,93.237403107538583]},"#99ffee":{"lch":[93.6511409780710267,46.7516947594382444,175.449324589633676],"luv":[93.6511409780710267,-46.6043124006013088,3.70931645277729727],"rgb":[0.6,1,0.933333333333333348],"xyz":[0.643259839810468526,0.844628044988642301,0.938050513772869854],"hpluv":[175.449324589633676,341.869484566500148,93.6511409780710267],"hsluv":[175.449324589633676,99.9999999999875,93.6511409780710267]},"#99ffff":{"lch":[94.102291921527609,47.1972299789563579,192.177050630060847],"luv":[94.102291921527609,-46.1353140316371437,-9.95546668362271703],"rgb":[0.6,1,1],"xyz":[0.6694308882203,0.855096464352575,1.07588470206465181],"hpluv":[192.177050630060847,372.830957625984183,94.102291921527609],"hsluv":[192.177050630060847,99.999999999986585,94.102291921527609]},"#447700":{"lch":[44.83248944102629,58.4741115144389809,115.479055163134589],"luv":[44.83248944102629,-25.1544589141716,52.7870714677211339],"rgb":[0.266666666666666663,0.466666666666666674,0],"xyz":[0.0898037965996895393,0.144222427292371835,0.0231058826388940708],"hpluv":[115.479055163134589,165.50461307776385,44.83248944102629],"hsluv":[115.479055163134589,100.00000000000216,44.83248944102629]},"#447711":{"lch":[44.8893318820142468,56.4264635629906337,116.3750363045054],"luv":[44.8893318820142468,-25.0671673404006405,50.5527735317644158],"rgb":[0.266666666666666663,0.466666666666666674,0.0666666666666666657],"xyz":[0.0908154620993266576,0.144627093492226688,0.0284339876036497],"hpluv":[116.3750363045054,159.506732057184706,44.8893318820142468],"hsluv":[116.3750363045054,95.4073228169634433,44.8893318820142468]},"#447722":{"lch":[44.9944227930058389,52.7636609180533824,118.171656995978211],"luv":[44.9944227930058389,-24.9105023189221484,46.5131248971114388],"rgb":[0.266666666666666663,0.466666666666666674,0.133333333333333331],"xyz":[0.0926908202378036866,0.145377236747617516,0.0383108737996289],"hpluv":[118.171656995978211,148.804327803607492,44.9944227930058389],"hsluv":[118.171656995978211,87.128369469673089,44.9944227930058389]},"#447733":{"lch":[45.1666686690004795,47.1090234718488,121.574089601592789],"luv":[45.1666686690004795,-24.6663168629185812,40.1351828809748881],"rgb":[0.266666666666666663,0.466666666666666674,0.2],"xyz":[0.0957785709702614202,0.146612337040600615,0.0545730276572400433],"hpluv":[121.574089601592789,132.350433634303585,45.1666686690004795],"hsluv":[121.574089601592789,74.1245535442141232,45.1666686690004795]},"#447744":{"lch":[45.4136534494367368,39.7908238780444137,127.715012949239082],"luv":[45.4136534494367368,-24.3414133770851677,31.4770592606648769],"rgb":[0.266666666666666663,0.466666666666666674,0.266666666666666663],"xyz":[0.100236566214480294,0.148395535138288209,0.0780518026101266749],"hpluv":[127.715012949239082,111.18234158710581,45.4136534494367368],"hsluv":[127.715012949239082,56.6116285441109,45.4136534494367368]},"#447755":{"lch":[45.7409133262359902,31.7219583115713704,139.030718806592802],"luv":[45.7409133262359902,-23.9520203549447466,20.798638417872084],"rgb":[0.266666666666666663,0.466666666666666674,0.333333333333333315],"xyz":[0.106198980253842293,0.150780500754033042,0.10945384988410059],"hpluv":[139.030718806592802,88.0023935360314766,45.7409133262359902],"hsluv":[139.030718806592802,58.7992252631310066,45.7409133262359902]},"#447766":{"lch":[46.1522822994750328,25.0075472636366349,160.141849635166039],"luv":[46.1522822994750328,-23.5205108300662609,8.49488024846472],"rgb":[0.266666666666666663,0.466666666666666674,0.4],"xyz":[0.113783976027350464,0.153814499063436333,0.149401494291244552],"hpluv":[160.141849635166039,68.7570511480334,46.1522822994750328],"hsluv":[160.141849635166039,61.2825519214888672,46.1522822994750328]},"#447777":{"lch":[46.650089933282672,23.6026970305602966,192.177050630060933],"luv":[46.650089933282672,-23.0716472128555,-4.97859438013953248],"rgb":[0.266666666666666663,0.466666666666666674,0.466666666666666674],"xyz":[0.123097989047552384,0.157540104271517156,0.198455296197642461],"hpluv":[192.177050630060933,64.2019875277067,46.650089933282672],"hsluv":[192.177050630060933,63.9506821134950414,46.650089933282672]},"#447788":{"lch":[47.2353114433284134,29.6592888392359697,220.273189901853613],"luv":[47.2353114433284134,-22.6291741496980734,-19.1727382434503575],"rgb":[0.266666666666666663,0.466666666666666674,0.533333333333333326],"xyz":[0.134238406149496226,0.161996271112294754,0.257128159601214601],"hpluv":[220.273189901853613,79.6770556088496,47.2353114433284134],"hsluv":[220.273189901853613,66.6958169909158585,47.2353114433284134]},"#447799":{"lch":[47.9077085122244526,40.3569508451274856,236.603980798736757],"luv":[47.9077085122244526,-22.2133832668581981,-33.6934576046404],"rgb":[0.266666666666666663,0.466666666666666674,0.6],"xyz":[0.147295370258568925,0.167219056755923912,0.325894837242332536],"hpluv":[236.603980798736757,106.893740352524901,47.9077085122244526],"hsluv":[236.603980798736757,69.4246608010291197,47.9077085122244526]},"#4477aa":{"lch":[48.6659751090485,52.9419227285019574,245.636459716194196],"luv":[48.6659751090485,-21.8398581964299439,-48.2272513849846476],"rgb":[0.266666666666666663,0.466666666666666674,0.66666666666666663],"xyz":[0.162353063223821481,0.173242133942025,0.405198686859331136],"hpluv":[245.636459716194196,138.042751347741245,48.6659751090485],"hsluv":[245.636459716194196,72.0643617009564,48.6659751090485]},"#4477bb":{"lch":[49.5078912458612,66.145388752002,251.014275727268966],"luv":[49.5078912458612,-21.5192486824625604,-62.5470573991759125],"rgb":[0.266666666666666663,0.466666666666666674,0.733333333333333282],"xyz":[0.1794906553311581,0.180097170784959765,0.495456671957972883],"hpluv":[251.014275727268966,169.536991245322184,49.5078912458612],"hsluv":[251.014275727268966,74.5637193650047578,49.5078912458612]},"#4477cc":{"lch":[50.4304819457797606,79.4031370336833,254.471410742848605],"luv":[50.4304819457797606,-21.2577420931439356,-76.5046833330565761],"rgb":[0.266666666666666663,0.466666666666666674,0.8],"xyz":[0.198783030774879854,0.187814120962448566,0.597063182628243094],"hpluv":[254.471410742848605,199.794656417231295,50.4304819457797606],"hsluv":[254.471410742848605,76.8911855438839638,50.4304819457797606]},"#4477dd":{"lch":[51.4301761714764183,92.4467030892661654,256.833353640671476],"luv":[51.4301761714764183,-21.0578873175855144,-90.0164334652001514],"rgb":[0.266666666666666663,0.466666666666666674,0.866666666666666696],"xyz":[0.220301356325513398,0.1964214511827021,0.710393030528249092],"hpluv":[256.833353640671476,228.093412194404408,51.4301761714764183],"hsluv":[256.833353640671476,79.0312420746427904,51.4301761714764183]},"#4477ee":{"lch":[52.5029598761355913,105.148975578657073,258.524369979875587],"luv":[52.5029598761355913,-20.9195063280493,-103.046985983248078],"rgb":[0.266666666666666663,0.466666666666666674,0.933333333333333348],"xyz":[0.244113536591688135,0.205946323289172145,0.835803846596772315],"hpluv":[258.524369979875587,254.132720010738154,52.5029598761355913],"hsluv":[258.524369979875587,87.6254974090696,52.5029598761355913]},"#4477ff":{"lch":[53.6445179522116,117.458222301342076,259.779939364455799],"luv":[53.6445179522116,-20.8405325230258285,-115.594576820663164],"rgb":[0.266666666666666663,0.466666666666666674,1],"xyz":[0.270284585001519528,0.216414742653104841,0.973638034888554],"hpluv":[259.779939364455799,277.841684308431127,53.6445179522116],"hsluv":[259.779939364455799,99.999999999999,53.6445179522116]},"#bbff00":{"lch":[92.6117448358007778,112.09772632761252,107.605046807390437],"luv":[92.6117448358007778,-33.9043888880720843,106.847520616749406],"rgb":[0.733333333333333282,1,0],"xyz":[0.56251493439864475,0.820836016822245496,0.128800901435937365],"hpluv":[107.605046807390437,698.685604225905081,92.6117448358007778],"hsluv":[107.605046807390437,100.000000000002302,92.6117448358007778]},"#bbff11":{"lch":[92.6295901709342,111.320425805292416,107.729052066712285],"luv":[92.6295901709342,-33.8988588935206678,106.033506813595423],"rgb":[0.733333333333333282,1,0.0666666666666666657],"xyz":[0.56352659989828191,0.821240683022100404,0.134129006400693],"hpluv":[107.729052066712285,695.618439183936061,92.6295901709342],"hsluv":[107.729052066712285,99.9999999999893703,92.6295901709342]},"#bbff22":{"lch":[92.6626551654141,109.887399193340656,107.962519071076329],"luv":[92.6626551654141,-33.888700280085942,104.531318248662245],"rgb":[0.733333333333333282,1,0.133333333333333331],"xyz":[0.565401958036758856,0.821990826277491204,0.14400589259667218],"hpluv":[107.962519071076329,689.937572971075,92.6626551654141],"hsluv":[107.962519071076329,99.9999999999891713,92.6626551654141]},"#bbff33":{"lch":[92.7170524122382318,107.550157892444602,108.357408717671873],"luv":[92.7170524122382318,-33.8722333827189388,102.076972272674624],"rgb":[0.733333333333333282,1,0.2],"xyz":[0.568489708769216673,0.823225926570474331,0.160268046454283331],"hpluv":[108.357408717671873,680.59767216104342,92.7170524122382318],"hsluv":[108.357408717671873,99.9999999999894271,92.7170524122382318]},"#bbff44":{"lch":[92.7954935084343475,104.224206838295117,108.951712424811362],"luv":[92.7954935084343475,-33.8490183743317,98.5744857768270464],"rgb":[0.733333333333333282,1,0.266666666666666663],"xyz":[0.572947704013435533,0.825009124668161897,0.183746821407169969],"hpluv":[108.951712424811362,667.142517523628385,92.7954935084343475],"hsluv":[108.951712424811362,99.9999999999890576,92.7954935084343475]},"#bbff55":{"lch":[92.9002292713318809,99.8647848732016,109.794505003516988],"luv":[92.9002292713318809,-33.8189779888925628,93.9640994505754605],"rgb":[0.733333333333333282,1,0.333333333333333315],"xyz":[0.578910118052797462,0.827394090283906647,0.215148868681143884],"hpluv":[109.794505003516988,649.201221057988732,92.9002292713318809],"hsluv":[109.794505003516988,99.9999999999888445,92.9002292713318809]},"#bbff66":{"lch":[93.0331768315467826,94.4651128464689691,110.953951756581517],"luv":[93.0331768315467826,-33.7823795150753,88.2179595059619146],"rgb":[0.733333333333333282,1,0.4],"xyz":[0.586495113826305703,0.83042808859331,0.255096513088287846],"hpluv":[110.953951756581517,626.470359589551208,93.0331768315467826],"hsluv":[110.953951756581517,99.9999999999888871,93.0331768315467826]},"#bbff77":{"lch":[93.1959878807374196,88.0576290523864742,112.529317332402641],"luv":[93.1959878807374196,-33.7398191848892566,81.3373876867131571],"rgb":[0.733333333333333282,1,0.466666666666666674],"xyz":[0.595809126846507553,0.834153693801390816,0.304150314994685755],"hpluv":[112.529317332402641,598.713569857690459,93.1959878807374196],"hsluv":[112.529317332402641,99.9999999999886455,93.1959878807374196]},"#bbff88":{"lch":[93.3900894470196334,80.7182094219550805,114.670873894576516],"luv":[93.3900894470196334,-33.6921989698203319,73.3502901212028888],"rgb":[0.733333333333333282,1,0.533333333333333326],"xyz":[0.606949543948451464,0.838609860642168359,0.362823178398257951],"hpluv":[114.670873894576516,565.785048639302204,93.3900894470196334],"hsluv":[114.670873894576516,99.9999999999880913,93.3900894470196334]},"#bbff99":{"lch":[93.6167101348934239,72.575742292483838,117.61482369288214],"luv":[93.6167101348934239,-33.6406927329059684,64.3081811417119411],"rgb":[0.733333333333333282,1,0.6],"xyz":[0.620006508057524108,0.843832646285797572,0.43158985603937583],"hpluv":[117.61482369288214,527.702623330867254,93.6167101348934239],"hsluv":[117.61482369288214,99.9999999999881,93.6167101348934239]},"#bbffaa":{"lch":[93.8768980816178384,63.8331941826517948,121.746607961207644],"luv":[93.8768980816178384,-33.5867019719833948,54.2826872050868303],"rgb":[0.733333333333333282,1,0.66666666666666663],"xyz":[0.63506420102277672,0.849855723471898639,0.510893705656374486],"hpluv":[121.746607961207644,484.836572610502856,93.8768980816178384],"hsluv":[121.746607961207644,99.9999999999878781,93.8768980816178384]},"#bbffbb":{"lch":[94.1715339943383,54.8143223318485937,127.715012949237362],"luv":[94.1715339943383,-33.5318032859449531,43.3615970772812602],"rgb":[0.733333333333333282,1,0.733333333333333282],"xyz":[0.652201793130113283,0.856710760314833397,0.601151690755016177],"hpluv":[127.715012949237362,438.38038704048256,94.1715339943383],"hsluv":[127.715012949237362,99.999999999986926,94.1715339943383]},"#bbffcc":{"lch":[94.5013412228876888,46.0666753200389323,136.612331153023604],"luv":[94.5013412228876888,-33.4776907719138919,31.6446329670924698],"rgb":[0.733333333333333282,1,0.8],"xyz":[0.671494168573835,0.864427710492322254,0.702758201425286333],"hpluv":[136.612331153023604,391.513584290668746,94.5013412228876888],"hsluv":[136.612331153023604,99.9999999999865707,94.5013412228876888]},"#bbffdd":{"lch":[94.8668940681869515,38.5674836948257322,150.076437256866],"luv":[94.8668940681869515,-33.4261169986321818,19.2391658068743077],"rgb":[0.733333333333333282,1,0.866666666666666696],"xyz":[0.693012494124468637,0.873035040712575761,0.816088049325292331],"hpluv":[150.076437256866,352.109825744613431,94.8668940681869515],"hsluv":[150.076437256866,99.9999999999853628,94.8668940681869515]},"#bbffee":{"lch":[95.2686250900245568,33.9600576278843675,169.384373669661102],"luv":[95.2686250900245568,-33.3788361105619771,6.25610214058809699],"rgb":[0.733333333333333282,1,0.933333333333333348],"xyz":[0.716824674390643346,0.882559912819045778,0.941498865393815554],"hpluv":[169.384373669661102,337.406400875084444,95.2686250900245568],"hsluv":[169.384373669661102,99.9999999999845,95.2686250900245568]},"#bbffff":{"lch":[95.7068319095003,34.1048965933827191,192.177050630060478],"luv":[95.7068319095003,-33.3375521201936849,-7.19385781613020914],"rgb":[0.733333333333333282,1,1],"xyz":[0.742995722800474767,0.893028332182978501,1.0793330536855974],"hpluv":[192.177050630060478,374.679972152143307,95.7068319095003],"hsluv":[192.177050630060478,99.9999999999829186,95.7068319095003]},"#448800":{"lch":[50.4956227619448157,68.4221216779621244,118.715311426014551],"luv":[50.4956227619448157,-32.873947818662586,60.0074186224478723],"rgb":[0.266666666666666663,0.533333333333333326,0],"xyz":[0.111876166324659992,0.18836716674231338,0.0304633392138840171],"hpluv":[118.715311426014551,171.942062028892252,50.4956227619448157],"hsluv":[118.715311426014551,100.000000000002373,50.4956227619448157]},"#448811":{"lch":[50.543205868460916,66.6756511812714763,119.435612575278299],"luv":[50.543205868460916,-32.7674265649617098,58.0683925794095899],"rgb":[0.266666666666666663,0.533333333333333326,0.0666666666666666657],"xyz":[0.112887831824297111,0.188771832942168233,0.0357914441786396503],"hpluv":[119.435612575278299,167.395510973175305,50.543205868460916],"hsluv":[119.435612575278299,96.4702491056824272,50.543205868460916]},"#448822":{"lch":[50.6312327062127565,63.5295563644356918,120.846986072134357],"luv":[50.6312327062127565,-32.5745953261955492,54.5426463530750425],"rgb":[0.266666666666666663,0.533333333333333326,0.133333333333333331],"xyz":[0.11476318996277414,0.189521976197559061,0.0456683303746188429],"hpluv":[120.846986072134357,159.219643782083125,50.6312327062127565],"hsluv":[120.846986072134357,90.0662104861249,50.6312327062127565]},"#448833":{"lch":[50.775662969350762,58.6076690216783831,123.408487274566809],"luv":[50.775662969350762,-32.2696404838739213,48.9237076599487182],"rgb":[0.266666666666666663,0.533333333333333326,0.2],"xyz":[0.117850940695231873,0.19075707649054216,0.0619304842322299931],"hpluv":[123.408487274566809,146.466455796741883,50.775662969350762],"hsluv":[123.408487274566809,79.8990388198805732,50.775662969350762]},"#448844":{"lch":[50.9830910358637652,52.0733509329185,127.715012949239537],"luv":[50.9830910358637652,-31.855056956676961,41.1933152789351382],"rgb":[0.266666666666666663,0.533333333333333326,0.266666666666666663],"xyz":[0.122308935939450747,0.192540274588229754,0.0854092591851166316],"hpluv":[127.715012949239537,129.607069016793787,50.9830910358637652],"hsluv":[127.715012949239537,65.9930987522981241,50.9830910358637652]},"#448855":{"lch":[51.2585265038955384,44.4350179761376651,134.860489600104756],"luv":[51.2585265038955384,-31.3437036744621551,31.4967151066136601],"rgb":[0.266666666666666663,0.533333333333333326,0.333333333333333315],"xyz":[0.128271349978812732,0.194925240203974587,0.116811306459090533],"hpluv":[134.860489600104756,110.001490313735033,51.2585265038955384],"hsluv":[134.860489600104756,67.3517725464548676,51.2585265038955384]},"#448866":{"lch":[51.6056896491522537,36.7437212642011914,146.829747927558799],"luv":[51.6056896491522537,-30.7562765884277063,20.1035445321824895],"rgb":[0.266666666666666663,0.533333333333333326,0.4],"xyz":[0.135856345752320917,0.197959238513377878,0.156758950866234509],"hpluv":[146.829747927558799,90.3493178961374781,51.6056896491522537],"hsluv":[146.829747927558799,68.9308752248562797,51.6056896491522537]},"#448877":{"lch":[52.0271709342862039,31.0045548915217921,166.266503182991642],"luv":[52.0271709342862039,-30.1181499011556575,7.36067052332227245],"rgb":[0.266666666666666663,0.533333333333333326,0.466666666666666674],"xyz":[0.145170358772522823,0.201684843721458701,0.205812752772632418],"hpluv":[166.266503182991642,75.6196418937204555,52.0271709342862039],"hsluv":[166.266503182991642,70.6726995402934506,52.0271709342862039]},"#448888":{"lch":[52.5245390493459041,30.1341009641634088,192.177050630061],"luv":[52.5245390493459041,-29.456097564679137,-6.35628485662009179],"rgb":[0.266666666666666663,0.533333333333333326,0.533333333333333326],"xyz":[0.156310775874466679,0.206141010562236299,0.264485616176204585],"hpluv":[192.177050630061,72.8006598676027181,52.5245390493459041],"hsluv":[192.177050630061,72.5156967272479847,52.5245390493459041]},"#448899":{"lch":[53.0984315279962118,35.4547108695225,215.690916113393854],"luv":[53.0984315279962118,-28.7954664423823949,-20.6847198484066084],"rgb":[0.266666666666666663,0.533333333333333326,0.6],"xyz":[0.169367739983539378,0.211363796205865456,0.333252293817322465],"hpluv":[215.690916113393854,84.7289026839812,53.0984315279962118],"hsluv":[215.690916113393854,74.4011420122721319,53.0984315279962118]},"#4488aa":{"lch":[53.7486427971268625,45.1587425535104146,231.425064236121358],"luv":[53.7486427971268625,-28.1581765792043193,-35.3048030832715654],"rgb":[0.266666666666666663,0.533333333333333326,0.66666666666666663],"xyz":[0.184425432948791934,0.217386873391966551,0.412556143434321065],"hpluv":[231.425064236121358,106.613859301848393,53.7486427971268625],"hsluv":[231.425064236121358,76.2778611087785,53.7486427971268625]},"#4488bb":{"lch":[54.4742155909258514,57.0545505189943469,241.113543257937238],"luv":[54.4742155909258514,-27.5616516575745152,-49.9557513488787208],"rgb":[0.266666666666666663,0.533333333333333326,0.733333333333333282],"xyz":[0.201563025056128553,0.224241910234901309,0.502814128532962812],"hpluv":[241.113543257937238,132.904176722924205,54.4742155909258514],"hsluv":[241.113543257937238,78.1047803623200707,54.4742155909258514]},"#4488cc":{"lch":[55.273536978614473,69.875332030770025,247.25266296501286],"luv":[55.273536978614473,-27.0185618464256976,-64.4403549195783398],"rgb":[0.266666666666666663,0.533333333333333326,0.8],"xyz":[0.220855400499850307,0.231958860412390111,0.604420639203233],"hpluv":[247.25266296501286,160.415361718249983,55.273536978614473],"hsluv":[247.25266296501286,79.8515774594708603,55.273536978614473]},"#4488dd":{"lch":[56.1444377207636194,82.97891177410213,251.348812353132246],"luv":[56.1444377207636194,-26.53714651812043,-78.6211145551246631],"rgb":[0.266666666666666663,0.533333333333333326,0.866666666666666696],"xyz":[0.242373726050483851,0.240566190632643645,0.717750487103239],"hpluv":[251.348812353132246,187.542769341675751,56.1444377207636194],"hsluv":[251.348812353132246,81.4979766670821,56.1444377207636194]},"#4488ee":{"lch":[57.0842924141545609,96.0325607902411775,254.216059778839536],"luv":[57.0842924141545609,-26.1218678035424112,-92.4115834426919776],"rgb":[0.266666666666666663,0.533333333333333326,0.933333333333333348],"xyz":[0.266185906316658616,0.25009106273911369,0.843161303171762189],"hpluv":[254.216059778839536,213.472145126724115,57.0842924141545609],"hsluv":[254.216059778839536,85.8050168900109469,57.0842924141545609]},"#4488ff":{"lch":[58.090117466996233,108.861046277687535,256.304473865935392],"luv":[58.090117466996233,-25.7741898685227575,-105.765866579412872],"rgb":[0.266666666666666663,0.533333333333333326,1],"xyz":[0.29235695472649,0.260559482103046358,0.980995491463544],"hpluv":[256.304473865935392,237.798754650411269,58.090117466996233],"hsluv":[256.304473865935392,99.9999999999988631,58.090117466996233]},"#449900":{"lch":[56.0984423000037538,78.159424491283,120.852962610827774],"luv":[56.0984423000037538,-40.0830169860907191,67.0987882610508279],"rgb":[0.266666666666666663,0.6,0],"xyz":[0.137745766777127493,0.240106367647249075,0.0390865393647062687],"hpluv":[120.852962610827774,176.794958777624345,56.0984423000037538],"hsluv":[120.852962610827774,100.000000000002416,56.0984423000037538]},"#449911":{"lch":[56.1389235634784143,76.6482268999804859,121.431666795625887],"luv":[56.1389235634784143,-39.9706170908808929,65.4010738159938256],"rgb":[0.266666666666666663,0.6,0.0666666666666666657],"xyz":[0.138757432276764625,0.240511033847103928,0.0444146443294619],"hpluv":[121.431666795625887,173.251641588156104,56.1389235634784143],"hsluv":[121.431666795625887,97.2234127009916,56.1389235634784143]},"#449922":{"lch":[56.21384509356389,73.9109075723002746,122.549403254372123],"luv":[56.21384509356389,-39.7660359546788555,62.3015621201611793],"rgb":[0.266666666666666663,0.6,0.133333333333333331],"xyz":[0.140632790415241626,0.241261177102494756,0.0542915305254411],"hpluv":[122.549403254372123,166.841685682494415,56.21384509356389],"hsluv":[122.549403254372123,92.1627352690631,56.21384509356389]},"#449933":{"lch":[56.3368647095541064,69.5846668696270143,124.526315047954697],"luv":[56.3368647095541064,-39.4395235157555177,57.3284383897480296],"rgb":[0.266666666666666663,0.6,0.2],"xyz":[0.143720541147699388,0.242496277395477855,0.0705536843830522342],"hpluv":[124.526315047954697,156.73291295139785,56.3368647095541064],"hsluv":[124.526315047954697,84.0665441712718859,56.3368647095541064]},"#449944":{"lch":[56.5137417426914368,63.7361451042890153,127.715012949239735],"luv":[56.5137417426914368,-38.9895886498958575,50.4193233757345922],"rgb":[0.266666666666666663,0.6,0.266666666666666663],"xyz":[0.148178536391918247,0.244279475493165449,0.0940324593359388727],"hpluv":[127.715012949239735,143.110354253444,56.5137417426914368],"hsluv":[127.715012949239735,72.8686777069245,56.5137417426914368]},"#449955":{"lch":[56.7489681974646629,56.6620380577650309,132.698160989074609],"luv":[56.7489681974646629,-38.4245724364924328,41.642992086692793],"rgb":[0.266666666666666663,0.6,0.333333333333333315],"xyz":[0.154140950431280233,0.246664441108910282,0.125434506609912788],"hpluv":[132.698160989074609,126.69910537289924,56.7489681974646629],"hsluv":[132.698160989074609,73.7405349232989664,56.7489681974646629]},"#449966":{"lch":[57.0460268500437166,48.9673458777373511,140.456743036678859],"luv":[57.0460268500437166,-37.7608817984154683,31.1755796757022061],"rgb":[0.266666666666666663,0.6,0.4],"xyz":[0.161725946204788418,0.249698439418313572,0.16538215101705675],"hpluv":[140.456743036678859,108.923224533285605,57.0460268500437166],"hsluv":[140.456743036678859,74.7718537787272766,57.0460268500437166]},"#449977":{"lch":[57.4075272841014481,41.7361359201695734,152.500832231763781],"luv":[57.4075272841014481,-37.0206846158697,19.2710651526888199],"rgb":[0.266666666666666663,0.6,0.466666666666666674],"xyz":[0.171039959224990323,0.253424044626394396,0.214435952923454659],"hpluv":[152.500832231763781,92.2534727828265915,57.4075272841014481],"hsluv":[152.500832231763781,75.9325502249844817,57.4075272841014481]},"#449988":{"lch":[57.8352917232380861,36.7607331244742284,170.245603374965924],"luv":[57.8352917232380861,-36.2292854489646174,6.22819200942437323],"rgb":[0.266666666666666663,0.6,0.533333333333333326],"xyz":[0.182180376326934179,0.257880211467172,0.273108816327026827],"hpluv":[170.245603374965924,80.6548633994409414,57.8352917232380861],"hsluv":[170.245603374965924,77.1878957355486222,57.8352917232380861]},"#449999":{"lch":[58.3304201548299517,36.2276744984656105,192.17705063006116],"luv":[58.3304201548299517,-35.4125684996312486,-7.64162232943372643],"rgb":[0.266666666666666663,0.6,0.6],"xyz":[0.195237340436006879,0.263102997110801151,0.341875493968144761],"hpluv":[192.17705063006116,78.8106081595615251,58.3304201548299517],"hsluv":[192.17705063006116,78.5021203184449803,58.3304201548299517]},"#4499aa":{"lch":[58.8933484328044585,41.0197173156303379,212.502133513081617],"luv":[58.8933484328044585,-34.5948579745346478,-22.041166266239177],"rgb":[0.266666666666666663,0.6,0.66666666666666663],"xyz":[0.210295033401259435,0.269126074296902273,0.421179343585143307],"hpluv":[212.502133513081617,88.3823902117899536,58.8933484328044585],"hsluv":[212.502133513081617,79.8414276244135692,58.8933484328044585]},"#4499bb":{"lch":[59.523905851944221,49.8962585520308082,227.36281958486083],"luv":[59.523905851944221,-33.7974051546762055,-36.7065664738854878],"rgb":[0.266666666666666663,0.6,0.733333333333333282],"xyz":[0.227432625508596054,0.275981111139837032,0.511437328683785108],"hpluv":[227.36281958486083,106.36919851968392,59.523905851944221],"hsluv":[227.36281958486083,81.1761313086710885,59.523905851944221]},"#4499cc":{"lch":[60.2213749252976385,61.1171242450200438,237.278146949597897],"luv":[60.2213749252976385,-33.0375484580145766,-51.4181219791773],"rgb":[0.266666666666666663,0.6,0.8],"xyz":[0.246725000952317808,0.283698061317325834,0.613043839354055264],"hpluv":[237.278146949597897,128.780934100622716,60.2213749252976385],"hsluv":[237.278146949597897,82.4818489079811741,60.2213749252976385]},"#4499dd":{"lch":[60.9845539619455508,73.4958381074912,243.904542785491344],"luv":[60.9845539619455508,-32.3284648877968195,-66.0038527445257728],"rgb":[0.266666666666666663,0.6,0.866666666666666696],"xyz":[0.268243326502951351,0.29230539153757934,0.726373687254061262],"hpluv":[243.904542785491344,152.926314240713424,60.9845539619455508],"hsluv":[243.904542785491344,83.7398679369964469,60.9845539619455508]},"#4499ee":{"lch":[61.8118218103912653,86.3580647779335351,248.479300934605874],"luv":[61.8118218103912653,-31.6793620640961606,-80.3376211460214193],"rgb":[0.266666666666666663,0.6,0.933333333333333348],"xyz":[0.292055506769126061,0.301830263644049357,0.851784503322584485],"hpluv":[248.479300934605874,177.284466220706,61.8118218103912653],"hsluv":[248.479300934605874,84.9368954206658344,61.8118218103912653]},"#4499ff":{"lch":[62.7012034705467585,99.3269113509348,251.755860244601337],"luv":[62.7012034705467585,-31.0959452870692914,-94.3338619225358173],"rgb":[0.266666666666666663,0.6,1],"xyz":[0.318226555178957482,0.312298683007982081,0.98961869161436633],"hpluv":[251.755860244601337,201.015886170810859,62.7012034705467585],"hsluv":[251.755860244601337,99.9999999999986073,62.7012034705467585]},"#330000":{"lch":[6.35863201887414942,21.3842798011123882,12.1770506300617836],"luv":[6.35863201887414942,20.9031433498234946,4.51065635013277699],"rgb":[0.2,0,0],"xyz":[0.0136521011456799905,0.00703936465324139522,0.000639942241203736136],"hpluv":[12.1770506300617836,426.746789183125031,6.35863201887414942],"hsluv":[12.1770506300617836,100.000000000002217,6.35863201887414942]},"#330011":{"lch":[6.72416549840036915,18.2596394021459751,358.956333183931122],"luv":[6.72416549840036915,18.2566101970553,-0.332588648601129133],"rgb":[0.2,0,0.0666666666666666657],"xyz":[0.0146637666453171122,0.00744403085309625,0.00596804720595936738],"hpluv":[358.956333183931122,344.582429927088697,6.72416549840036915],"hsluv":[358.956333183931122,99.9999999999970868,6.72416549840036915]},"#330022":{"lch":[7.4017671226143058,16.6083885778583671,334.642609555635659],"luv":[7.4017671226143058,15.0082373074967617,-7.11276205668364714],"rgb":[0.2,0,0.133333333333333331],"xyz":[0.0165391247837941326,0.00819417410848706854,0.0158449334019385643],"hpluv":[334.642609555635659,284.728805881674077,7.4017671226143058],"hsluv":[334.642609555635659,99.999999999998,7.4017671226143058]},"#330033":{"lch":[8.50665746950019,19.3767863388894384,307.715012949243601],"luv":[8.50665746950019,11.8534455994177517,-15.3282639670843448],"rgb":[0.2,0,0.2],"xyz":[0.0196268755162518696,0.00942927440147018139,0.0321070872595497075],"hpluv":[307.715012949243601,289.042783730483279,8.50665746950019],"hsluv":[307.715012949243601,99.9999999999987921,8.50665746950019]},"#330044":{"lch":[9.96321399083228343,25.9151774110163871,290.632214162589],"luv":[9.96321399083228343,9.13167627644372,-24.2530185467023678],"rgb":[0.2,0,0.266666666666666663],"xyz":[0.0240848707604707502,0.0112124724991577579,0.0555858622124363461],"hpluv":[290.632214162589,330.060881015257678,9.96321399083228343],"hsluv":[290.632214162589,99.9999999999994,9.96321399083228343]},"#330055":{"lch":[11.6870713271151807,34.2775786608295405,281.502617436257196],"luv":[11.6870713271151807,6.83538450996046,-33.589133919325],"rgb":[0.2,0,0.333333333333333315],"xyz":[0.0300472847998327422,0.0135974381149025891,0.0869879094864102614],"hpluv":[281.502617436257196,372.172061509357604,11.6870713271151807],"hsluv":[281.502617436257196,99.9999999999999289,11.6870713271151807]},"#330066":{"lch":[13.6097387714237676,43.4818398400869768,276.434806151814087],"luv":[13.6097387714237676,4.87312317733106592,-43.2079051375733059],"rgb":[0.2,0,0.4],"xyz":[0.0376322805733409205,0.0166314364243059024,0.126935553893554209],"hpluv":[276.434806151814087,405.412793254212261,13.6097387714237676],"hsluv":[276.434806151814087,100.00000000000027,13.6097387714237676]},"#330077":{"lch":[15.6735112457106673,53.108485659557914,273.408523183706109],"luv":[15.6735112457106673,3.15755804167271537,-53.0145364618510655],"rgb":[0.2,0,0.466666666666666674],"xyz":[0.046946293593542833,0.0203570416323867187,0.175989355799952119],"hpluv":[273.408523183706109,429.968801903614121,15.6735112457106673],"hsluv":[273.408523183706109,100.000000000000313,15.6735112457106673]},"#330088":{"lch":[17.8339183845063687,62.9511834901283365,271.47985970994057],"luv":[17.8339183845063687,1.62574911173865799,-62.9301870538574448],"rgb":[0.2,0,0.533333333333333326],"xyz":[0.058086710695486661,0.0248132084731643096,0.234662219203524286],"hpluv":[271.47985970994057,447.91587095992594,17.8339183845063687],"hsluv":[271.47985970994057,100.000000000000441,17.8339183845063687]},"#330099":{"lch":[20.0583065104412341,72.8932825114363,270.184356583024851],"luv":[20.0583065104412341,0.234543162084408924,-72.8929051746271313],"rgb":[0.2,0,0.6],"xyz":[0.0711436748045593814,0.0300359941167934706,0.303428896844642193],"hpluv":[270.184356583024851,461.139761646516433,20.0583065104412341],"hsluv":[270.184356583024851,100.000000000000625,20.0583065104412341]},"#3300aa":{"lch":[22.3232943619689834,82.8637729479105474,269.276671227287579],"luv":[22.3232943619689834,-1.04608331699459467,-82.8571697371855578],"rgb":[0.2,0,0.66666666666666663],"xyz":[0.0862013677698119235,0.0360590713028945756,0.382732746461640794],"hpluv":[269.276671227287579,471.026936966419044,22.3232943619689834],"hsluv":[269.276671227287579,100.000000000000554,22.3232943619689834]},"#3300bb":{"lch":[24.6123405885396807,92.8181896970849,268.61855571411644],"luv":[24.6123405885396807,-2.23769945956788,-92.7912120826788538],"rgb":[0.2,0,0.733333333333333282],"xyz":[0.10333895987714857,0.0429141081458293341,0.47299073156028254],"hpluv":[268.61855571411644,478.541387025058441,24.6123405885396807],"hsluv":[268.61855571411644,100.000000000000625,24.6123405885396807]},"#3300cc":{"lch":[26.9138017967000778,102.728605647013808,268.127719933063759],"luv":[26.9138017967000778,-3.35631165306985224,-102.673762910819349],"rgb":[0.2,0,0.8],"xyz":[0.122631335320870311,0.0506310583233181358,0.574597242230552752],"hpluv":[268.127719933063759,484.345947247320225,26.9138017967000778],"hsluv":[268.127719933063759,100.000000000000881,26.9138017967000778]},"#3300dd":{"lch":[29.2194977691074271,112.577730384171886,267.752877980499],"luv":[29.2194977691074271,-4.41413050162269105,-112.49115889867052],"rgb":[0.2,0,0.866666666666666696],"xyz":[0.144149660871503854,0.0592383885435716698,0.687927090130558749],"hpluv":[267.752877980499,488.89890937186334,29.2194977691074271],"hsluv":[267.752877980499,100.000000000000753,29.2194977691074271]},"#3300ee":{"lch":[31.5236887929336334,122.355215968494591,267.460804758990776],"luv":[31.5236887929336334,-5.42068013199621,-122.235081304851008],"rgb":[0.2,0,0.933333333333333348],"xyz":[0.167961841137678591,0.0687632606500417,0.813337906199082],"hpluv":[267.460804758990776,492.52103452607281,31.5236887929336334],"hsluv":[267.460804758990776,100.000000000000824,31.5236887929336334]},"#3300ff":{"lch":[33.8223579343154,132.055276159319874,267.229255072945307],"luv":[33.8223579343154,-6.38352242786170443,-131.900896899631505],"rgb":[0.2,0,1],"xyz":[0.194132889547509985,0.0792316800139744,0.951172094490863818],"hpluv":[267.229255072945307,495.440155164142311,33.8223579343154],"hsluv":[267.229255072945307,100.000000000000881,33.8223579343154]},"#331100":{"lch":[9.83576796362177319,19.9321083570360571,25.9770166386959609],"luv":[9.83576796362177319,17.918363864654,8.73047421223431108],"rgb":[0.2,0.0666666666666666657,0],"xyz":[0.0156565014066084,0.0110481651750982679,0.00130807566151318702],"hpluv":[25.9770166386959609,257.148675223584291,9.83576796362177319],"hsluv":[25.9770166386959609,100.000000000002302,9.83576796362177319]},"#331111":{"lch":[10.1474261289244687,16.4836545456174051,12.1770506300618813],"luv":[10.1474261289244687,16.1127799065782149,3.4769513746129066],"rgb":[0.2,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0166681669062455212,0.0114528313749531225,0.00663618062626881826],"hpluv":[12.1770506300618813,206.127972902374523,10.1474261289244687],"hsluv":[12.1770506300618813,48.3021731216650707,10.1474261289244687]},"#331122":{"lch":[10.7062693823806221,14.2435433110065777,342.375847990242676],"luv":[10.7062693823806221,13.5749958919169824,-4.31254131423193],"rgb":[0.2,0.0666666666666666657,0.133333333333333331],"xyz":[0.0185435250447225398,0.0122029746303439404,0.0165130668222480161],"hpluv":[342.375847990242676,168.818174775843545,10.7062693823806221],"hsluv":[342.375847990242676,57.1044970617697913,10.7062693823806221]},"#331133":{"lch":[11.5784810016780177,17.5377888786733784,307.715012949244169],"luv":[11.5784810016780177,10.7284677021084427,-13.8735006223280077],"rgb":[0.2,0.0666666666666666657,0.2],"xyz":[0.0216312757771802804,0.0134380749233270532,0.0327752206798591628],"hpluv":[307.715012949244169,192.204068690519591,11.5784810016780177],"hsluv":[307.715012949244169,66.4967539441281,11.5784810016780177]},"#331144":{"lch":[12.7480449023252049,25.2894553184220108,288.641508688419037],"luv":[12.7480449023252049,8.08366941467993172,-23.9626968243691536],"rgb":[0.2,0.0666666666666666657,0.266666666666666663],"xyz":[0.0260892710213991574,0.0152212730210146297,0.0562539956327458],"hpluv":[288.641508688419037,251.73014018207067,12.7480449023252049],"hsluv":[288.641508688419037,74.5439781366083309,12.7480449023252049]},"#331155":{"lch":[14.1772863520069095,34.570642435857458,279.659572498507771],"luv":[14.1772863520069095,5.80074057604611415,-34.0805036230000695],"rgb":[0.2,0.0666666666666666657,0.333333333333333315],"xyz":[0.0320516850607611564,0.0176062386367594609,0.0876560429067197],"hpluv":[279.659572498507771,309.423764447612427,14.1772863520069095],"hsluv":[279.659572498507771,80.733364837348816,14.1772863520069095]},"#331166":{"lch":[15.8197098676790517,44.2946391552180785,274.993838621827194],"luv":[15.8197098676790517,3.85578699555013271,-44.1264995726595686],"rgb":[0.2,0.0666666666666666657,0.4],"xyz":[0.0396366808342693278,0.0206402369461627724,0.127603687313863678],"hpluv":[274.993838621827194,355.297359803625511,15.8197098676790517],"hsluv":[274.993838621827194,85.2848648605675095,15.8197098676790517]},"#331177":{"lch":[17.6293493428787755,54.1580116435351115,272.303494486185969],"luv":[17.6293493428787755,2.17675853502087469,-54.1142490242773135],"rgb":[0.2,0.0666666666666666657,0.466666666666666674],"xyz":[0.0489506938544712472,0.0243658421542435888,0.176657489220261588],"hpluv":[272.303494486185969,389.821469213037517,17.6293493428787755],"hsluv":[272.303494486185969,88.5936990192462588,17.6293493428787755]},"#331188":{"lch":[19.5658128626021437,64.0679547566568,270.623065923527406],"luv":[19.5658128626021437,0.696696562564985133,-64.064166587888522],"rgb":[0.2,0.0666666666666666657,0.533333333333333326],"xyz":[0.0600911109564150753,0.0288220089950211832,0.235330352623833755],"hpluv":[270.623065923527406,415.51077593183,19.5658128626021437],"hsluv":[270.623065923527406,91.0112456871911348,19.5658128626021437]},"#331199":{"lch":[21.5959931816331263,73.9854871429769645,269.508319412823],"luv":[21.5959931816331263,-0.634894604710849,-73.9827629696574576],"rgb":[0.2,0.0666666666666666657,0.6],"xyz":[0.0731480750654877887,0.0340447946386503442,0.304097030264951662],"hpluv":[269.508319412823,434.723064450461493,21.5959931816331263],"hsluv":[269.508319412823,92.7998436287799,21.5959931816331263]},"#3311aa":{"lch":[23.6938673935249824,83.8866252842298792,268.733700318675346],"luv":[23.6938673935249824,-1.85383566080119344,-83.8661385478044821],"rgb":[0.2,0.0666666666666666657,0.66666666666666663],"xyz":[0.0882057680307403308,0.0400678718247514457,0.383400879881950263],"hpluv":[268.733700318675346,449.258286440651602,23.6938673935249824],"hsluv":[268.733700318675346,94.1436997610677,23.6938673935249824]},"#3311bb":{"lch":[25.8394818705352094,93.7535423490500079,268.175268957576],"luv":[25.8394818705352094,-2.98531729009247,-93.7060007879569525],"rgb":[0.2,0.0666666666666666657,0.733333333333333282],"xyz":[0.105343360138076977,0.0469229086676862042,0.473658864980592],"hpluv":[268.175268957576,460.408371224539451,25.8394818705352094],"hsluv":[268.175268957576,95.1697562295976525,25.8394818705352094]},"#3311cc":{"lch":[28.017750605254669,103.572636018550753,267.760492630427507],"luv":[28.017750605254669,-4.04728980779695124,-103.493528189171812],"rgb":[0.2,0.0666666666666666657,0.8],"xyz":[0.124635735581798718,0.0546398588451750059,0.57526537565086211],"hpluv":[267.760492630427507,469.084508820223505,28.017750605254669],"hsluv":[267.760492630427507,95.9655004656031423,28.017750605254669]},"#3311dd":{"lch":[30.2173526676312889,113.33386550323506,267.444704079349265],"luv":[30.2173526676312889,-5.05282540459801588,-113.221173043455181],"rgb":[0.2,0.0666666666666666657,0.866666666666666696],"xyz":[0.146154061132432261,0.0632471890654285329,0.688595223550868107],"hpluv":[267.444704079349265,475.929488946899937,30.2173526676312889],"hsluv":[267.444704079349265,96.591763702558211,30.2173526676312889]},"#3311ee":{"lch":[32.429822932533412,123.030197380053124,267.199217974228532],"luv":[32.429822932533412,-6.01167404447580456,-122.883234180085807],"rgb":[0.2,0.0666666666666666657,0.933333333333333348],"xyz":[0.169966241398607,0.0727720611718985777,0.814006039619391331],"hpluv":[267.199217974228532,481.400425551936735,32.429822932533412],"hsluv":[267.199217974228532,97.0913881744298095,32.429822932533412]},"#3311ff":{"lch":[34.6488414224811834,132.657034918193688,267.004954598207064],"luv":[34.6488414224811834,-6.93127707868383425,-132.475832933200962],"rgb":[0.2,0.0666666666666666657,1],"xyz":[0.196137289808438392,0.0832404805358312738,0.951840227911173176],"hpluv":[267.004954598207064,485.826158631145177,34.6488414224811834],"hsluv":[267.004954598207064,99.999999999999531,34.6488414224811834]},"#88aa00":{"lch":[64.9493872277699467,75.8454165204624502,102.522158340464031],"luv":[64.9493872277699467,-16.4445883060260414,74.0412231301438624],"rgb":[0.533333333333333326,0.66666666666666663,0],"xyz":[0.245272120749672057,0.339833923051985953,0.0526729261635559762],"hpluv":[102.522158340464031,148.181371186867864,64.9493872277699467],"hsluv":[102.522158340464031,100.000000000002217,64.9493872277699467]},"#88aa11":{"lch":[64.9815053546997206,74.514883993558044,102.764001416735823],"luv":[64.9815053546997206,-16.4630035423646639,72.6734989589568414],"rgb":[0.533333333333333326,0.66666666666666663,0.0666666666666666657],"xyz":[0.246283786249309189,0.340238589251840806,0.0580010311283116059],"hpluv":[102.764001416735823,145.509915409181133,64.9815053546997206],"hsluv":[102.764001416735823,98.0498740713468635,64.9815053546997206]},"#88aa22":{"lch":[65.040976504183746,72.0784265262596762,103.230826782560158],"luv":[65.040976504183746,-16.4969246852166869,70.1651697527462801],"rgb":[0.533333333333333326,0.66666666666666663,0.133333333333333331],"xyz":[0.24815914438778619,0.340988732507231607,0.0678779173242908],"hpluv":[103.230826782560158,140.623392494363173,65.040976504183746],"hsluv":[103.230826782560158,94.4776072436414296,65.040976504183746]},"#88aa33":{"lch":[65.138705174337673,68.1506383708936596,104.056367163177015],"luv":[65.138705174337673,-16.5521781693680836,66.1100212389152],"rgb":[0.533333333333333326,0.66666666666666663,0.2],"xyz":[0.251246895120243952,0.342223832800214733,0.0841400711819019487],"hpluv":[104.056367163177015,132.760883332008575,65.138705174337673],"hsluv":[104.056367163177015,88.7139905695652544,65.138705174337673]},"#88aa44":{"lch":[65.2793887406011,62.6606585185119442,105.391240881396499],"luv":[65.2793887406011,-16.6306856640551395,60.4133960336360687],"rgb":[0.533333333333333326,0.66666666666666663,0.266666666666666663],"xyz":[0.255704890364462811,0.344007030897902299,0.107618846134788587],"hpluv":[105.391240881396499,121.803060858356815,65.2793887406011],"hsluv":[105.391240881396499,80.6421361820775,65.2793887406011]},"#88aa55":{"lch":[65.4667902277309821,55.6467221212728731,107.50018297907917],"luv":[65.4667902277309821,-16.7334615527701551,53.0711687011330397],"rgb":[0.533333333333333326,0.66666666666666663,0.333333333333333315],"xyz":[0.261667304403824796,0.34639199651364716,0.139020893408762503],"hpluv":[107.50018297907917,107.859366541167589,65.4667902277309821],"hsluv":[107.50018297907917,70.2829236383929157,65.4667902277309821]},"#88aa66":{"lch":[65.7039511656785606,47.2674293485405386,110.898270106627507],"luv":[65.7039511656785606,-16.8607549547505542,44.1579530727492582],"rgb":[0.533333333333333326,0.66666666666666663,0.4],"xyz":[0.269252300177333,0.349425994823050479,0.178968537815906464],"hpluv":[110.898270106627507,91.2871867148882075,65.7039511656785606],"hsluv":[110.898270106627507,57.7776943224234358,65.7039511656785606]},"#88aa77":{"lch":[65.993303036365262,37.8517489546572605,116.707912668539493],"luv":[65.993303036365262,-17.0121797895697142,33.8133204186420073],"rgb":[0.533333333333333326,0.66666666666666663,0.466666666666666674],"xyz":[0.278566313197534887,0.353151600031131274,0.228022339722304374],"hpluv":[116.707912668539493,72.782239014817236,65.993303036365262],"hsluv":[116.707912668539493,43.3670204896631262,65.993303036365262]},"#88aa88":{"lch":[66.3367341259492,28.0952907790087707,127.715012949235486],"luv":[66.3367341259492,-17.1868541575625393,22.2251526006848934],"rgb":[0.533333333333333326,0.66666666666666663,0.533333333333333326],"xyz":[0.289706730299478743,0.357607766871908872,0.286695203125876541],"hpluv":[127.715012949235486,53.7426121206727316,66.3367341259492],"hsluv":[127.715012949235486,27.3645684281827677,66.3367341259492]},"#88aa99":{"lch":[66.7356352778598705,19.8636867466165334,151.061783220075199],"luv":[66.7356352778598705,-17.3835461247401071,9.6113669837720046],"rgb":[0.533333333333333326,0.66666666666666663,0.6],"xyz":[0.302763694408551443,0.36283055251553803,0.35546188076699442],"hpluv":[151.061783220075199,37.7695130125235536,66.7356352778598705],"hsluv":[151.061783220075199,30.5390729913306274,66.7356352778598705]},"#88aaaa":{"lch":[67.1909358184889811,18.0059400546344968,192.177050630060364],"luv":[67.1909358184889811,-17.6008146924254447,-3.79805205519771905],"rgb":[0.533333333333333326,0.66666666666666663,0.66666666666666663],"xyz":[0.317821387373804,0.368853629701639152,0.434765730383993],"hpluv":[192.177050630060364,34.0051297749840913,67.1909358184889811],"hsluv":[192.177050630060364,33.872023720911649,67.1909358184889811]},"#88aabb":{"lch":[67.7031355134684674,25.1829477340388976,224.903065382651],"luv":[67.7031355134684674,-17.8371340556046292,-17.7768812016541453],"rgb":[0.533333333333333326,0.66666666666666663,0.733333333333333282],"xyz":[0.334958979481140617,0.37570866654457391,0.525023715482634823],"hpluv":[224.903065382651,47.1994684953027459,67.7031355134684674],"hsluv":[224.903065382651,37.296330310174362,67.7031355134684674]},"#88aacc":{"lch":[68.2723356589922901,36.8600300209604939,240.606662797769701],"luv":[68.2723356589922901,-18.0909926283411373,-32.1150712106857341],"rgb":[0.533333333333333326,0.66666666666666663,0.8],"xyz":[0.354251354924862372,0.383425616722062712,0.626630226152905],"hpluv":[240.606662797769701,68.5094136262693,68.2723356589922901],"hsluv":[240.606662797769701,40.7502319604911136,68.2723356589922901]},"#88aadd":{"lch":[68.8982708583434,50.1120766914241216,248.506358436024811],"luv":[68.8982708583434,-18.3609632112572676,-46.6271944285953168],"rgb":[0.533333333333333326,0.66666666666666663,0.866666666666666696],"xyz":[0.375769680475495915,0.392032946942316218,0.739960074052911],"hpluv":[248.506358436024811,92.2939864083951278,68.8982708583434],"hsluv":[248.506358436024811,59.5109742880650217,68.8982708583434]},"#88aaee":{"lch":[69.5803420919898,63.9362726255054454,253.044423586561948],"luv":[69.5803420919898,-18.6457452648911577,-61.1570367231747554],"rgb":[0.533333333333333326,0.66666666666666663,0.933333333333333348],"xyz":[0.39958186074167068,0.401557819048786235,0.8653708901214342],"hpluv":[253.044423586561948,116.600410917186778,69.5803420919898],"hsluv":[253.044423586561948,79.2673662112875093,69.5803420919898]},"#88aaff":{"lch":[70.3176511000829549,77.916964899147743,255.928474825822],"luv":[70.3176511000829549,-18.9441834980668631,-75.578907974954177],"rgb":[0.533333333333333326,0.66666666666666663,1],"xyz":[0.425752909151502046,0.412026238412718959,1.00320507841321604],"hpluv":[255.928474825822,140.607018245256825,70.3176511000829549],"hsluv":[255.928474825822,99.9999999999979394,70.3176511000829549]},"#332200":{"lch":[14.6681357538016819,18.4720509904151484,54.0318728094203635],"luv":[14.6681357538016819,10.8492842291989344,14.9502407842332925],"rgb":[0.2,0.133333333333333331,0],"xyz":[0.0193721251413763347,0.0184794126446342424,0.00254661690643579732],"hpluv":[54.0318728094203635,159.801011716648361,14.6681357538016819],"hsluv":[54.0318728094203635,100.000000000002359,14.6681357538016819]},"#332211":{"lch":[14.8903804788128475,14.003495227987683,44.8263438888978243],"luv":[14.8903804788128475,9.93193249146711,9.87190941941900668],"rgb":[0.2,0.133333333333333331,0.0666666666666666657],"xyz":[0.0203837906410134564,0.0188840788444890953,0.00787472187119143],"hpluv":[44.8263438888978243,119.33558852926538,14.8903804788128475],"hsluv":[44.8263438888978243,67.0844803779226595,14.8903804788128475]},"#332222":{"lch":[15.2941064614028619,8.70381909014442101,12.1770506300622809],"luv":[15.2941064614028619,8.50798716741232397,1.83592513820952408],"rgb":[0.2,0.133333333333333331,0.133333333333333331],"xyz":[0.0222591487794904751,0.0196342220998799166,0.0177516080671706253],"hpluv":[12.1770506300622809,72.2146104972558476,15.2941064614028619],"hsluv":[12.1770506300622809,16.9221215783466867,15.2941064614028619]},"#332233":{"lch":[15.9369990430381634,10.9638268591401484,307.7150129492465],"luv":[15.9369990430381634,6.70694938589646661,-8.67308072902737],"rgb":[0.2,0.133333333333333331,0.2],"xyz":[0.0253468995119482156,0.0208693223928630295,0.0340137619247817685],"hpluv":[307.7150129492465,87.2961214462547,15.9369990430381634],"hsluv":[307.7150129492465,30.2017993044426838,15.9369990430381634]},"#332244":{"lch":[16.8218835175385664,20.7382675483863608,283.478697838556343],"luv":[16.8218835175385664,4.83375477674434428,-20.1670661145035197],"rgb":[0.2,0.133333333333333331,0.266666666666666663],"xyz":[0.0298048947561670927,0.0226525204905506025,0.057492536877668407],"hpluv":[283.478697838556343,156.436171283708973,16.8218835175385664],"hsluv":[283.478697838556343,43.2894908809756558,16.8218835175385664]},"#332255":{"lch":[17.9355503164319856,31.8518286021958055,275.537546938931484],"luv":[17.9355503164319856,3.0736387963894658,-31.7031816992078603],"rgb":[0.2,0.133333333333333331,0.333333333333333315],"xyz":[0.0357673087955290847,0.0250374861062954354,0.0888945841516423224],"hpluv":[275.537546938931484,225.350740722061715,17.9355503164319856],"hsluv":[275.537546938931484,54.6600619512456092,17.9355503164319856]},"#332266":{"lch":[19.2543827660255502,42.9346801988288,271.988815040461645],"luv":[19.2543827660255502,1.49002234071320738,-42.9088172430781114],"rgb":[0.2,0.133333333333333331,0.4],"xyz":[0.043352304569037263,0.028071484415698747,0.12884222855878627],"hpluv":[271.988815040461645,282.955381276792764,19.2543827660255502],"hsluv":[271.988815040461645,63.8744485302889515,19.2543827660255502]},"#332277":{"lch":[20.7496984269819,53.7295137018198687,270.083996688769219],"luv":[20.7496984269819,0.0787684479011579453,-53.7294559637975908],"rgb":[0.2,0.133333333333333331,0.466666666666666674],"xyz":[0.0526663175892391755,0.0317970896237795633,0.17789603046518418],"hpluv":[270.083996688769219,328.579487011522247,20.7496984269819],"hsluv":[270.083996688769219,71.0892762838988546,20.7496984269819]},"#332288":{"lch":[22.3919640579388926,64.2366699579867,268.940142222195846],"luv":[22.3919640579388926,-1.18818265954209568,-64.2256801385464087],"rgb":[0.2,0.133333333333333331,0.533333333333333326],"xyz":[0.063806734691183,0.0362532564645571542,0.236568893868756347],"hpluv":[268.940142222195846,364.024117005976393,22.3919640579388926],"hsluv":[268.940142222195846,76.6637840765232426,22.3919640579388926]},"#332299":{"lch":[24.1535324867621668,74.5121507797046689,268.199285594367666],"luv":[24.1535324867621668,-2.34141182983712737,-74.4753543426316469],"rgb":[0.2,0.133333333333333331,0.6],"xyz":[0.076863698800255717,0.0414760421081863187,0.305335571509874282],"hpluv":[268.199285594367666,391.458538227207669,24.1535324867621668],"hsluv":[268.199285594367666,80.9654036049547301,24.1535324867621668]},"#3322aa":{"lch":[26.0100477302332607,84.6098540849434926,267.692459882235937],"luv":[26.0100477302332607,-3.40667075751279169,-84.541244387726735],"rgb":[0.2,0.133333333333333331,0.66666666666666663],"xyz":[0.0919213917655082591,0.0474991192942874202,0.384639421126872882],"hpluv":[267.692459882235937,412.780453116303818,26.0100477302332607],"hsluv":[267.692459882235937,84.3023702715129,26.0100477302332607]},"#3322bb":{"lch":[27.9408960039881222,94.5690254119923281,267.330995248517297],"luv":[27.9408960039881222,-4.40370835341661504,-94.4664380619492761],"rgb":[0.2,0.133333333333333331,0.733333333333333282],"xyz":[0.109058983872844906,0.0543541561372221788,0.474897406225514629],"hpluv":[267.330995248517297,429.484911570580266,27.9408960039881222],"hsluv":[267.330995248517297,86.9134730370406743,27.9408960039881222]},"#3322cc":{"lch":[29.9290875828623939,104.415306333233346,267.064581258752071],"luv":[29.9290875828623939,-5.34714045276937444,-104.278302084572317],"rgb":[0.2,0.133333333333333331,0.8],"xyz":[0.12835135931656666,0.0620711063147109804,0.576503916895784729],"hpluv":[267.064581258752071,442.700503900749,29.9290875828623939],"hsluv":[267.064581258752071,88.9774620844202389,29.9290875828623939]},"#3322dd":{"lch":[31.9608605817263296,114.164622106097937,266.862904678446171],"luv":[31.9608605817263296,-6.2476920173399213,-113.993540541052639],"rgb":[0.2,0.133333333333333331,0.866666666666666696],"xyz":[0.149869684867200204,0.0706784365349645144,0.689833764795790727],"hpluv":[266.862904678446171,453.265229710644405,31.9608605817263296],"hsluv":[266.862904678446171,90.6264253960307826,31.9608605817263296]},"#3322ee":{"lch":[34.0251904593745635,123.826689560879501,266.706806867468629],"luv":[34.0251904593745635,-7.11327635006579229,-123.622208147136817],"rgb":[0.2,0.133333333333333331,0.933333333333333348],"xyz":[0.173681865133374941,0.0802033086414345453,0.815244580864314],"hpluv":[266.706806867468629,461.799038215803307,34.0251904593745635],"hsluv":[266.706806867468629,93.6430785136650741,34.0251904593745635]},"#3322ff":{"lch":[36.1133053940478774,133.407509730883817,266.583697157343806],"luv":[36.1133053940478774,-7.94980801741223875,-133.170432923686747],"rgb":[0.2,0.133333333333333331,1],"xyz":[0.199852913543206334,0.0906717280053672414,0.953078769156095795],"hpluv":[266.583697157343806,468.761962088723578,36.1133053940478774],"hsluv":[266.583697157343806,99.999999999999531,36.1133053940478774]},"#aaaa00":{"lch":[67.4983691984715506,74.4102446110960472,85.8743202181747449],"luv":[67.4983691984715506,5.35340686476390193,74.217420717938225],"rgb":[0.66666666666666663,0.66666666666666663,0],"xyz":[0.309512896760441802,0.372958073182539818,0.0556842125390607443],"hpluv":[85.8743202181747449,139.887458074797593,67.4983691984715506],"hsluv":[85.8743202181747449,100.000000000002373,67.4983691984715506]},"#aaaa11":{"lch":[67.528557359020084,73.1276023311446863,85.8743202181746881],"luv":[67.528557359020084,5.26112782412359792,72.9381022286724345],"rgb":[0.66666666666666663,0.66666666666666663,0.0666666666666666657],"xyz":[0.310524562260078907,0.373362739382394671,0.061012317503816374],"hpluv":[85.8743202181746881,137.414698385368666,67.528557359020084],"hsluv":[85.8743202181746881,98.2323220941626118,67.528557359020084]},"#aaaa22":{"lch":[67.5844605157977,70.7729399531690575,85.8743202181746],"luv":[67.5844605157977,5.09172284764045369,70.589541633712912],"rgb":[0.66666666666666663,0.66666666666666663,0.133333333333333331],"xyz":[0.312399920398555964,0.374112882637785471,0.0708892036997955666],"hpluv":[85.8743202181746,132.880028295953878,67.5844605157977],"hsluv":[85.8743202181746,94.9906661574379854,67.5844605157977]},"#aaaa33":{"lch":[67.6763416895574181,66.9597491826677924,85.8743202181744607],"luv":[67.6763416895574181,4.81738479440415723,66.7862322215321882],"rgb":[0.66666666666666663,0.66666666666666663,0.2],"xyz":[0.315487671131013669,0.375347982930768598,0.0871513575574067167],"hpluv":[85.8743202181744607,125.549870841925909,67.6763416895574181],"hsluv":[85.8743202181744607,89.7506270896691376,67.6763416895574181]},"#aaaa44":{"lch":[67.8086418759902898,61.5895608625658824,85.8743202181741623],"luv":[67.8086418759902898,4.43102935143870269,61.429960004304057],"rgb":[0.66666666666666663,0.66666666666666663,0.266666666666666663],"xyz":[0.319945666375232585,0.377131181028456164,0.110630132510293355],"hpluv":[85.8743202181741623,115.255428047766188,67.8086418759902898],"hsluv":[85.8743202181741623,82.3915379076671854,67.8086418759902898]},"#aaaa55":{"lch":[67.9849384953625844,54.6449851984581514,85.8743202181737786],"luv":[67.9849384953625844,3.93140541890911,54.5033802508787772],"rgb":[0.66666666666666663,0.66666666666666663,0.333333333333333315],"xyz":[0.32590808041459457,0.379516146644201,0.142032179784267271],"hpluv":[85.8743202181737786,101.994541545207838,67.9849384953625844],"hsluv":[85.8743202181737786,72.9118556794948631,67.9849384953625844]},"#aaaa66":{"lch":[68.2081473948541515,46.1798212544818156,85.8743202181731675],"luv":[68.2081473948541515,3.32238354287766668,46.0601526125338268],"rgb":[0.66666666666666663,0.66666666666666663,0.4],"xyz":[0.333493076188102755,0.382550144953604343,0.181979824191411232],"hpluv":[85.8743202181731675,85.9122949373369806,68.2081473948541515],"hsluv":[85.8743202181731675,61.415294923296095,68.2081473948541515]},"#aaaa77":{"lch":[68.4806287458147551,36.3079853189649668,85.874320218171988],"luv":[68.4806287458147551,2.61215937225179973,36.2138981792368284],"rgb":[0.66666666666666663,0.66666666666666663,0.466666666666666674],"xyz":[0.342807089208304661,0.386275750161685139,0.231033626097809142],"hpluv":[85.874320218171988,67.2781031791916604,68.4806287458147551],"hsluv":[85.874320218171988,48.0944497134402909,68.4806287458147551]},"#aaaa88":{"lch":[68.804250183835336,25.1900382005990835,85.8743202181696574],"luv":[68.804250183835336,1.81228437202058101,25.1247616884732103],"rgb":[0.66666666666666663,0.66666666666666663,0.533333333333333326],"xyz":[0.353947506310248461,0.390731917002462736,0.289706489501381281],"hpluv":[85.8743202181696574,46.4571845078746506,68.804250183835336],"hsluv":[85.8743202181696574,33.210400093935057,68.804250183835336]},"#aaaa99":{"lch":[69.1804292601881485,13.0180161266067085,85.8743202181625236],"luv":[69.1804292601881485,0.936574490007753058,12.9842817320504498],"rgb":[0.66666666666666663,0.66666666666666663,0.6],"xyz":[0.36700447041932116,0.395954702646091894,0.358473167142499216],"hpluv":[85.8743202181625236,23.8781611725121081,69.1804292601881485],"hsluv":[85.8743202181625236,17.0695511242654057,69.1804292601881485]},"#aaaaaa":{"lch":[69.6101658300367916,3.6866289517569387e-12,0],"luv":[69.6101658300367916,3.46613397703382525e-12,1.25584564385283521e-12],"rgb":[0.66666666666666663,0.66666666666666663,0.66666666666666663],"xyz":[0.382062163384573716,0.401977779832193,0.437777016759497817],"hpluv":[0,6.72041492281092149e-12,69.6101658300367916],"hsluv":[0,4.48262290109626775e-12,69.6101658300367916]},"#aaaabb":{"lch":[70.0940699613229441,13.6540669730780309,265.874320218191428],"luv":[70.0940699613229441,-0.982334841759501587,-13.618684340418703],"rgb":[0.66666666666666663,0.66666666666666663,0.733333333333333282],"xyz":[0.399199755491910391,0.408832816675127775,0.528035001858139563],"hpluv":[265.874320218191428,24.7183841606301087,70.0940699613229441],"hsluv":[265.874320218191428,17.6184615311656536,70.0940699613229441]},"#aaaacc":{"lch":[70.6323884029978188,27.7441307883788433,265.87432021818438],"luv":[70.6323884029978188,-1.99603725260327192,-27.6722356973355303],"rgb":[0.66666666666666663,0.66666666666666663,0.8],"xyz":[0.41849213093563209,0.416549766852616576,0.629641512528409719],"hpluv":[265.87432021818438,49.8432735452352063,70.6323884029978188],"hsluv":[265.87432021818438,36.467826786828347,70.6323884029978188]},"#aaaadd":{"lch":[71.2250312240615813,42.0886841218373817,265.874320218182],"luv":[71.2250312240615813,-3.02804878123905441,-41.979617097899343],"rgb":[0.66666666666666663,0.66666666666666663,0.866666666666666696],"xyz":[0.440010456486265689,0.425157097072870083,0.742971360428415717],"hpluv":[265.874320218182,74.9845908684596,71.2250312240615813],"hsluv":[265.874320218182,56.4865697219014891,71.2250312240615813]},"#aaaaee":{"lch":[71.8715993709786432,56.5301989351418541,265.874320218180742],"luv":[71.8715993709786432,-4.0670361537863835,-56.3837087159979902],"rgb":[0.66666666666666663,0.66666666666666663,0.933333333333333348],"xyz":[0.463822636752440398,0.4346819691793401,0.86838217649693894],"hpluv":[265.874320218180742,99.8073514218055,71.8715993709786432],"hsluv":[265.874320218180742,77.6546881169827259,71.8715993709786432]},"#aaaaff":{"lch":[72.5714133442747595,70.9376272522327,265.87432021818006],"luv":[72.5714133442747595,-5.10357119085512778,-70.7538021683399],"rgb":[0.66666666666666663,0.66666666666666663,1],"xyz":[0.489993685162271819,0.445150388543272824,1.00621636478872079],"hpluv":[265.87432021818006,124.036757123492009,72.5714133442747595],"hsluv":[265.87432021818006,99.999999999997641,72.5714133442747595]},"#88bb00":{"lch":[70.0174964893220135,84.793654921948729,107.670265811619984],"luv":[70.0174964893220135,-25.7381496181260658,80.7930168347331659],"rgb":[0.533333333333333326,0.733333333333333282,0],"xyz":[0.279226618658270809,0.407742918869184512,0.0639910921330886],"hpluv":[107.670265811619984,153.672481251000221,70.0174964893220135],"hsluv":[107.670265811619984,100.000000000002288,70.0174964893220135]},"#88bb11":{"lch":[70.045943224524,83.6147085810298,107.921872667069366],"luv":[70.045943224524,-25.7299069713944561,79.5574721715938296],"rgb":[0.533333333333333326,0.733333333333333282,0.0666666666666666657],"xyz":[0.280238284157907913,0.408147585069039365,0.0693191970978442318],"hpluv":[107.921872667069366,151.474322676164348,70.045943224524],"hsluv":[107.921872667069366,98.3704135852689,70.045943224524]},"#88bb22":{"lch":[70.0986261940145567,81.4532385975490172,108.403169751544382],"luv":[70.0986261940145567,-25.7149121100318041,77.2876016784231],"rgb":[0.533333333333333326,0.733333333333333282,0.133333333333333331],"xyz":[0.28211364229638497,0.408897728324430165,0.0791960832938234244],"hpluv":[108.403169751544382,147.447759071005407,70.0986261940145567],"hsluv":[108.403169751544382,95.3794817356858431,70.0986261940145567]},"#88bb33":{"lch":[70.185227758130182,77.9617926087192643,109.240455548552404],"luv":[70.185227758130182,-25.6910124331637526,73.6071530961765887],"rgb":[0.533333333333333326,0.733333333333333282,0.2],"xyz":[0.285201393028842676,0.410132828617413292,0.0954582371514345607],"hpluv":[109.240455548552404,140.95335886915251,70.185227758130182],"hsluv":[109.240455548552404,90.5378353052476399,70.185227758130182]},"#88bb44":{"lch":[70.3099541281250708,73.067556170236557,110.558097475340105],"luv":[70.3099541281250708,-25.6581823155790048,68.4143657790612281],"rgb":[0.533333333333333326,0.733333333333333282,0.266666666666666663],"xyz":[0.289659388273061591,0.411916026715100858,0.118937012104321199],"hpluv":[110.558097475340105,131.870330314080604,70.3099541281250708],"hsluv":[110.558097475340105,83.7238240635208655,70.3099541281250708]},"#88bb55":{"lch":[70.4762099132372,66.7907607981454845,112.553407091589676],"luv":[70.4762099132372,-25.6172250438111178,61.682765089203194],"rgb":[0.533333333333333326,0.733333333333333282,0.333333333333333315],"xyz":[0.295621802312423576,0.414300992330845719,0.150339059378295115],"hpluv":[112.553407091589676,120.257778383662554,70.4762099132372],"hsluv":[112.553407091589676,74.9213657205140606,70.4762099132372]},"#88bb66":{"lch":[70.6867901559138687,59.2534136994931373,115.564788197424377],"luv":[70.6867901559138687,-25.56971066242372,53.4523800375924836],"rgb":[0.533333333333333326,0.733333333333333282,0.4],"xyz":[0.303206798085931761,0.417334990640249037,0.190286703785439076],"hpluv":[115.564788197424377,106.368844477737383,70.6867901559138687],"hsluv":[115.564788197424377,64.2082802413586791,70.6867901559138687]},"#88bb77":{"lch":[70.9439811929011483,50.7088031944788611,120.213509646437856],"luv":[70.9439811929011483,-25.5178724843925657,43.8203252530908287],"rgb":[0.533333333333333326,0.733333333333333282,0.466666666666666674],"xyz":[0.312520811106133667,0.421060595848329833,0.239340505691836986],"hpluv":[120.213509646437856,90.6999673798200519,70.9439811929011483],"hsluv":[120.213509646437856,51.7430673824667338,70.9439811929011483]},"#88bb88":{"lch":[71.2496205680497781,41.6266624709187667,127.715012949237462],"luv":[71.2496205680497781,-25.4644588867656232,32.9293237414924747],"rgb":[0.533333333333333326,0.733333333333333282,0.533333333333333326],"xyz":[0.323661228208077467,0.425516762689107431,0.298013369095409153],"hpluv":[127.715012949237462,74.1358655131278397,71.2496205680497781],"hsluv":[127.715012949237462,37.7483692132655,71.2496205680497781]},"#88bb99":{"lch":[71.605136773449729,32.9376822973712677,140.491872589160209],"luv":[71.605136773449729,-25.4125532319559895,20.9545473192710077],"rgb":[0.533333333333333326,0.733333333333333282,0.6],"xyz":[0.336718192317150167,0.430739548332736588,0.366780046736527088],"hpluv":[140.491872589160209,58.3697971606621948,71.605136773449729],"hsluv":[140.491872589160209,40.0947707109065163,71.605136773449729]},"#88bbaa":{"lch":[72.0115788449514298,26.624214972975043,162.310745910586235],"luv":[72.0115788449514298,-25.3653817896029707,8.0898843993512255],"rgb":[0.533333333333333326,0.733333333333333282,0.66666666666666663],"xyz":[0.351775885282402723,0.43676262551883771,0.446083896353525633],"hpluv":[162.310745910586235,46.9152251525928463,72.0115788449514298],"hsluv":[162.310745910586235,42.5902472855224445,72.0115788449514298]},"#88bbbb":{"lch":[72.4696411221425478,25.9090725846495289,192.177050630060563],"luv":[72.4696411221425478,-25.3261303787159093,-5.46508574835939687],"rgb":[0.533333333333333326,0.733333333333333282,0.733333333333333282],"xyz":[0.368913477389739397,0.443617662361772469,0.536341881452167435],"hpluv":[192.177050630060563,45.3664800039612786,72.4696411221425478],"hsluv":[192.177050630060563,45.1889022919971595,72.4696411221425478]},"#88bbcc":{"lch":[72.9796861172365539,31.9509756483125074,217.648879320727843],"luv":[72.9796861172365539,-25.297786835453639,-19.5163220435359541],"rgb":[0.533333333333333326,0.733333333333333282,0.8],"xyz":[0.388205852833461096,0.451334612539261271,0.637948392122437591],"hpluv":[217.648879320727843,55.5547835161394303,72.9796861172365539],"hsluv":[217.648879320727843,47.846459663484211,72.9796861172365539]},"#88bbdd":{"lch":[73.5417671198988501,42.2771793498237827,233.271065498294831],"luv":[73.5417671198988501,-25.2830202693059967,-33.8840490472881442],"rgb":[0.533333333333333326,0.733333333333333282,0.866666666666666696],"xyz":[0.409724178384094695,0.459941942759514777,0.751278240022443589],"hpluv":[233.271065498294831,72.9476439375157781,73.5417671198988501],"hsluv":[233.271065498294831,52.600286903313318,73.5417671198988501]},"#88bbee":{"lch":[74.1556513704433655,54.6140049995012049,242.42172167609948],"luv":[74.1556513704433655,-25.2841013367454792,-48.4087157615106349],"rgb":[0.533333333333333326,0.733333333333333282,0.933333333333333348],"xyz":[0.433536358650269404,0.469466814865984794,0.876689056090966812],"hpluv":[242.42172167609948,93.4542589851821646,74.1556513704433655],"hsluv":[242.42172167609948,75.5983078602269387,74.1556513704433655]},"#88bbff":{"lch":[74.8208441285393206,67.8489412305869877,248.103607922481928],"luv":[74.8208441285393206,-25.3028619495915343,-62.9543009116260492],"rgb":[0.533333333333333326,0.733333333333333282,1],"xyz":[0.459707407060100826,0.479935234229917518,1.01452324438274855],"hpluv":[248.103607922481928,115.069386567942303,74.8208441285393206],"hsluv":[248.103607922481928,99.9999999999973568,74.8208441285393206]},"#333300":{"lch":[20.3279441284931792,22.4095383785379596,85.8743202181747449],"luv":[20.3279441284931792,1.61224273913978733,22.3514671484727536],"rgb":[0.2,0.2,0],"xyz":[0.0254898472303871464,0.0307148568226560392,0.00458585760277267773],"hpluv":[85.8743202181747449,139.887458074797735,20.3279441284931792],"hsluv":[85.8743202181747449,100.000000000002458,20.3279441284931792]},"#333311":{"lch":[20.4867879892499971,17.9332091798965507,85.8743202181741],"luv":[20.4867879892499971,1.2901955319819518,17.8867377399899183],"rgb":[0.2,0.2,0.0666666666666666657],"xyz":[0.0265015127300242681,0.0311195230225108921,0.00991396256752831],"hpluv":[85.8743202181741,111.076827622251201,20.4867879892499971],"hsluv":[85.8743202181741,79.4044220625277717,20.4867879892499971]},"#333322":{"lch":[20.7776374982028358,10.4602453251552614,85.8743202181717749],"luv":[20.7776374982028358,0.752556982220839221,10.4331390411008691],"rgb":[0.2,0.2,0.133333333333333331],"xyz":[0.0283768708685012867,0.0318696662779017134,0.019790848763507507],"hpluv":[85.8743202181717749,63.8829601302186703,20.7776374982028358],"hsluv":[85.8743202181717749,45.6673964981637113,20.7776374982028358]},"#333333":{"lch":[21.246731294981295,1.12524964979295229e-12,0],"luv":[21.246731294981295,1.05794917113478783e-12,3.83314917077821647e-13],"rgb":[0.2,0.2,0.2],"xyz":[0.0314646216009590307,0.0331047665708848263,0.0360530026211186502],"hpluv":[0,6.72041492281092149e-12,21.246731294981295],"hsluv":[0,1.92419399944792236e-12,21.246731294981295]},"#333344":{"lch":[21.9038391599933462,12.2084714240410825,265.874320218182163],"luv":[21.9038391599933462,-0.878332211796974,-12.176834853004598],"rgb":[0.2,0.2,0.266666666666666663],"xyz":[0.0359226168451779043,0.0348879646685724,0.0595317775740052887],"hpluv":[265.874320218182163,70.7262082967351517,21.9038391599933462],"hsluv":[265.874320218182163,13.7757030029577514,21.9038391599933462]},"#333355":{"lch":[22.7485838486986935,25.0264321710322868,265.874320218179776],"luv":[22.7485838486986935,-1.80051382017376982,-24.9615796213830023],"rgb":[0.2,0.2,0.333333333333333315],"xyz":[0.0418850308845399,0.0372729302843172322,0.0909338248479792],"hpluv":[265.874320218179776,139.599512106194084,22.7485838486986935],"hsluv":[265.874320218179776,27.1905063829271256,22.7485838486986935]},"#333366":{"lch":[23.7726526978294,37.7235732610660364,265.874320218179],"luv":[23.7726526978294,-2.71400312032964841,-37.625817820292724],"rgb":[0.2,0.2,0.4],"xyz":[0.0494700266580480746,0.0403069285937205438,0.130881469255123173],"hpluv":[265.874320218179,201.360603518100845,23.7726526978294],"hsluv":[265.874320218179,39.2200280117306193,23.7726526978294]},"#333377":{"lch":[24.9621315786770737,49.9646270765614062,265.874320218178639],"luv":[24.9621315786770737,-3.59467945556105306,-49.8351506319748268],"rgb":[0.2,0.2,0.466666666666666674],"xyz":[0.0587840396782499941,0.0440325338018013601,0.179935271161521082],"hpluv":[265.874320218178639,253.992158426909725,24.9621315786770737],"hsluv":[265.874320218178639,49.4713434217918646,24.9621315786770737]},"#333388":{"lch":[26.2997861111378413,61.6680265106551175,265.874320218178468],"luv":[26.2997861111378413,-4.43667452222106906,-61.5082223194812912],"rgb":[0.2,0.2,0.533333333333333326],"xyz":[0.0699244567801938222,0.048488700642578958,0.238608134565093222],"hpluv":[265.874320218178468,297.541234413863208,26.2997861111378413],"hsluv":[265.874320218178468,57.953618257344317,26.2997861111378413]},"#333399":{"lch":[27.7670269025285634,72.8744236647892336,265.874320218178354],"luv":[27.7670269025285634,-5.24291301488723782,-72.6855796399362788],"rgb":[0.2,0.2,0.6],"xyz":[0.0829814208892665356,0.0537114862862081155,0.307374812206211157],"hpluv":[265.874320218178354,333.031319879373427,27.7670269025285634],"hsluv":[265.874320218178354,64.8662025552495862,27.7670269025285634]},"#3333aa":{"lch":[29.34539826905295,83.6653121043175361,265.874320218178241],"luv":[29.34539826905295,-6.01925794630032573,-83.4485049793509575],"rgb":[0.2,0.2,0.66666666666666663],"xyz":[0.0980391138545190777,0.059734563472309217,0.386678661823209757],"hpluv":[265.874320218178241,361.780166220798492,29.34539826905295],"hsluv":[265.874320218178241,70.4657614516561353,29.34539826905295]},"#3333bb":{"lch":[31.0175640968910713,94.1237197643615247,265.874320218178184],"luv":[31.0175640968910713,-6.77168271864664284,-93.8798111173964855],"rgb":[0.2,0.2,0.733333333333333282],"xyz":[0.115176705961855724,0.0665896003152439686,0.476936646921851504],"hpluv":[265.874320218178184,385.062051502536349,31.0175640968910713],"hsluv":[265.874320218178184,75.0004925607309758,31.0175640968910713]},"#3333cc":{"lch":[32.7678589751368321,104.319620441623087,265.874320218178127],"luv":[32.7678589751368321,-7.50522156082274261,-104.049290523324899],"rgb":[0.2,0.2,0.8],"xyz":[0.134469081405577451,0.0743065504927327702,0.578543157592121604],"hpluv":[265.874320218178127,403.977575952485893,32.7678589751368321],"hsluv":[265.874320218178127,79.524052836351089,32.7678589751368321]},"#3333dd":{"lch":[34.5825131799139243,114.307143948468337,265.874320218178127],"luv":[34.5825131799139243,-8.22376881440244745,-114.010932739554079],"rgb":[0.2,0.2,0.866666666666666696],"xyz":[0.155987406956211,0.0829138807129863,0.691873005492127602],"hpluv":[265.874320218178127,419.426773039758132,34.5825131799139243],"hsluv":[265.874320218178127,86.1542613798901584,34.5825131799139243]},"#3333ee":{"lch":[36.4496605331747929,124.126383834434506,265.87432021817807],"luv":[36.4496605331747929,-8.93020898923314732,-123.80472741871364],"rgb":[0.2,0.2,0.933333333333333348],"xyz":[0.179799587222385732,0.092438752819456349,0.817283821560650825],"hpluv":[265.87432021817807,432.12554656995303,36.4496605331747929],"hsluv":[265.87432021817807,92.9362870993519,36.4496605331747929]},"#3333ff":{"lch":[38.3592184432327414,133.806417871427385,265.87432021817807],"luv":[38.3592184432327414,-9.62663407069321231,-133.45967698167118],"rgb":[0.2,0.2,1],"xyz":[0.205970635632217125,0.102907172183389045,0.95511800985243267],"hpluv":[265.87432021817807,442.635784237250618,38.3592184432327414],"hsluv":[265.87432021817807,99.99999999999946,38.3592184432327414]},"#aabb00":{"lch":[72.2864137555308162,81.0402066187271686,93.9104624709461291],"luv":[72.2864137555308162,-5.52673715975233737,80.8515322376329664],"rgb":[0.66666666666666663,0.733333333333333282,0],"xyz":[0.343467394669040582,0.440867068999738376,0.0670023785085933632],"hpluv":[93.9104624709461291,142.260125307220505,72.2864137555308162],"hsluv":[93.9104624709461291,100.00000000000226,72.2864137555308162]},"#aabb11":{"lch":[72.3134178153803759,79.8795424406406198,94.0047051989067199],"luv":[72.3134178153803759,-5.5786590117117969,79.6845020324350912],"rgb":[0.66666666666666663,0.733333333333333282,0.0666666666666666657],"xyz":[0.344479060168677687,0.441271735199593229,0.072330483473349],"hpluv":[94.0047051989067199,140.170301198642704,72.3134178153803759],"hsluv":[94.0047051989067199,98.4998030851846522,72.3134178153803759]},"#aabb22":{"lch":[72.3634325080893319,77.7463008610920667,94.1853407287125179],"luv":[72.3634325080893319,-5.67416055225396132,77.5389656857163],"rgb":[0.66666666666666663,0.733333333333333282,0.133333333333333331],"xyz":[0.346354418307154743,0.44202187845498403,0.0822073696693281925],"hpluv":[94.1853407287125179,136.332658010127801,72.3634325080893319],"hsluv":[94.1853407287125179,95.7441801677588131,72.3634325080893319]},"#aabb33":{"lch":[72.4456578556837343,74.284969405898,94.5007685828256427],"luv":[72.4456578556837343,-5.82932493434540167,74.0558954469191377],"rgb":[0.66666666666666663,0.733333333333333282,0.2],"xyz":[0.349442169039612449,0.443256978747967156,0.0984695235269393288],"hpluv":[94.5007685828256427,130.115164427369336,72.4456578556837343],"hsluv":[94.5007685828256427,91.2774770665997721,72.4456578556837343]},"#aabb44":{"lch":[72.5641031469497193,69.3968632274838768,95.0004815565242922],"luv":[72.5641031469497193,-6.04891620231322502,69.1327363742496317],"rgb":[0.66666666666666663,0.733333333333333282,0.266666666666666663],"xyz":[0.353900164283831364,0.445040176845654722,0.121948298479825967],"hpluv":[95.0004815565242922,121.354905136961719,72.5641031469497193],"hsluv":[95.0004815565242922,84.978619462346515,72.5641031469497193]},"#aabb55":{"lch":[72.7220260779140659,63.0543258899363366,95.7659530899235705],"luv":[72.7220260779140659,-6.33475857174489843,62.7353078200147181],"rgb":[0.66666666666666663,0.733333333333333282,0.333333333333333315],"xyz":[0.359862578323193349,0.447425142461399583,0.153350345753799883],"hpluv":[95.7659530899235705,110.024206089370551,72.7220260779140659],"hsluv":[95.7659530899235705,76.8198788639563475,72.7220260779140659]},"#aabb66":{"lch":[72.922116394456026,55.2958006214329245,96.9449007941817342],"luv":[72.922116394456026,-6.68608027099689206,54.8900892418207675],"rgb":[0.66666666666666663,0.733333333333333282,0.4],"xyz":[0.367447574096701535,0.450459140770802902,0.193297990160943844],"hpluv":[96.9449007941817342,96.2215198645611167,72.922116394456026],"hsluv":[96.9449007941817342,66.8569788454327778,72.922116394456026]},"#aabb77":{"lch":[73.1665925415562555,46.2248747385797927,98.8352478745929801],"luv":[73.1665925415562555,-7.09985217623529596,45.6763740206356488],"rgb":[0.66666666666666663,0.733333333333333282,0.466666666666666674],"xyz":[0.37676158711690344,0.454184745978883697,0.242351792067341754],"hpluv":[98.8352478745929801,80.1682197570307267,73.1665925415562555],"hsluv":[98.8352478745929801,55.2184354086421223,73.1665925415562555]},"#aabb88":{"lch":[73.4572589636137,36.0214199172978056,102.133241078873],"luv":[73.4572589636137,-7.57119112276486117,35.2167539367396216],"rgb":[0.66666666666666663,0.733333333333333282,0.533333333333333326],"xyz":[0.387902004218847241,0.458640912819661295,0.301024655470913949],"hpluv":[102.133241078873,62.2250760292602862,73.4572589636137],"hsluv":[102.133241078873,42.0922357464751116,73.4572589636137]},"#aabb99":{"lch":[73.7955437608147236,25.0118273668521454,108.880774444702425],"luv":[73.7955437608147236,-8.09382587885112592,23.6660408786948082],"rgb":[0.66666666666666663,0.733333333333333282,0.6],"xyz":[0.40095896832792,0.463863698463290453,0.369791333112031828],"hpluv":[108.880774444702425,43.0085312761643337,73.7955437608147236],"hsluv":[108.880774444702425,27.7101400322224,73.7955437608147236]},"#aabbaa":{"lch":[74.1825262226786464,14.1574418893213867,127.715012949227386],"luv":[74.1825262226786464,-8.66059336811296632,11.1994322785447302],"rgb":[0.66666666666666663,0.733333333333333282,0.66666666666666663],"xyz":[0.416016661293172496,0.469886775649391575,0.449095182729030429],"hpluv":[127.715012949227386,24.2171200924073027,74.1825262226786464],"hsluv":[127.715012949227386,12.3308304853939106,74.1825262226786464]},"#aabbbb":{"lch":[74.6189593067414734,9.47715438031144153,192.177050630059],"luv":[74.6189593067414734,-9.26392276955498417,-1.99904729008021675],"rgb":[0.66666666666666663,0.733333333333333282,0.733333333333333282],"xyz":[0.43315425340050917,0.476741812492326333,0.539353167827672175],"hpluv":[192.177050630059,16.1164020856357908,74.6189593067414734],"hsluv":[192.177050630059,16.0533177597809029,74.6189593067414734]},"#aabbcc":{"lch":[75.1052899078477623,18.5983929047544514,237.852316168687679],"luv":[75.1052899078477623,-9.89626817417043547,-15.7468757175676597],"rgb":[0.66666666666666663,0.733333333333333282,0.8],"xyz":[0.452446628844230925,0.484458762669815135,0.640959678497942331],"hpluv":[237.852316168687679,31.4227520087917149,75.1052899078477623],"hsluv":[237.852316168687679,25.8004515395991127,75.1052899078477623]},"#aabbdd":{"lch":[75.6416785331857682,31.6798915222297,250.547006926215033],"luv":[75.6416785331857682,-10.5504613433008458,-29.8714461033234144],"rgb":[0.66666666666666663,0.733333333333333282,0.866666666666666696],"xyz":[0.473964954394864413,0.493066092890068641,0.754289526397948329],"hpluv":[250.547006926215033,53.1449318902714438,75.6416785331857682],"hsluv":[250.547006926215033,48.9122949421499484,75.6416785331857682]},"#aabbee":{"lch":[76.2280192594463699,45.6175545861468166,255.761586302643195],"luv":[76.2280192594463699,-11.2199701465387403,-44.2162137267639],"rgb":[0.66666666666666663,0.733333333333333282,0.933333333333333348],"xyz":[0.497777134661039178,0.502590964996538658,0.879700342466471552],"hpluv":[255.761586302643195,76.8288153841444483,76.2280192594463699],"hsluv":[255.761586302643195,73.6249760737912311,76.2280192594463699]},"#aabbff":{"lch":[76.863960378353255,59.8395450787859247,258.530312903596609],"luv":[76.863960378353255,-11.8990616804050067,-58.6445520603744583],"rgb":[0.66666666666666663,0.733333333333333282,1],"xyz":[0.523948183070870543,0.513059384360471382,1.01753453075825329],"hpluv":[258.530312903596609,104.151140840900069,76.863960378353255],"hsluv":[258.530312903596609,99.9999999999969305,76.863960378353255]},"#88cc00":{"lch":[75.0884647575288,93.9986167747887,111.475410134903882],"luv":[75.0884647575288,-34.413070492851,87.4727416674912348],"rgb":[0.533333333333333326,0.8,0],"xyz":[0.317450361967887784,0.484190405488419406,0.0767323399029605363],"hpluv":[111.475410134903882,158.85012628624969,75.0884647575288],"hsluv":[111.475410134903882,100.000000000002288,75.0884647575288]},"#88cc11":{"lch":[75.1138336746799,92.9472917959209752,111.713770271434171],"luv":[75.1138336746799,-34.3877142984514421,86.3520941119794685],"rgb":[0.533333333333333326,0.8,0.0666666666666666657],"xyz":[0.318462027467524889,0.484595071688274259,0.082060444867716173],"hpluv":[111.713770271434171,157.020421425354783,75.1138336746799],"hsluv":[111.713770271434171,98.6248626695712289,75.1138336746799]},"#88cc22":{"lch":[75.1608235532889495,91.0175657840787551,112.166724150973],"luv":[75.1608235532889495,-34.3412008388942667,84.2904455214339805],"rgb":[0.533333333333333326,0.8,0.133333333333333331],"xyz":[0.320337385606001945,0.48534521494366506,0.0919373310636953656],"hpluv":[112.166724150973,153.664310911800271,75.1608235532889495],"hsluv":[112.166724150973,96.0970283406349,75.1608235532889495]},"#88cc33":{"lch":[75.2380863503033908,87.8942550668024865,112.94545296029041],"luv":[75.2380863503033908,-34.2659803117460342,80.9397471396048331],"rgb":[0.533333333333333326,0.8,0.2],"xyz":[0.323425136338459651,0.486580315236648187,0.108199484921306516],"hpluv":[112.94545296029041,148.2388630129999,75.2380863503033908],"hsluv":[112.94545296029041,91.9942509365254324,75.2380863503033908]},"#88cc44":{"lch":[75.3494055810326415,83.5027286146262,114.147802574759467],"luv":[75.3494055810326415,-34.1602904869016655,76.1956707427555244],"rgb":[0.533333333333333326,0.8,0.266666666666666663],"xyz":[0.327883131582678566,0.488363513334335753,0.131678259874193154],"hpluv":[114.147802574759467,140.624231819797672,75.3494055810326415],"hsluv":[114.147802574759467,86.1974134191241177,75.3494055810326415]},"#88cc55":{"lch":[75.4978684165763241,77.8461227965530469,115.917002828128631],"luv":[75.4978684165763241,-34.0241050685150555,70.0169915716368365],"rgb":[0.533333333333333326,0.8,0.333333333333333315],"xyz":[0.333845545622040552,0.490748478950080613,0.16308030714816707],"hpluv":[115.917002828128631,130.840327774204638,75.4978684165763241],"hsluv":[115.917002828128631,78.6694108520956092,75.4978684165763241]},"#88cc66":{"lch":[75.6860396561484663,71.0106875190110287,118.477611184333398],"luv":[75.6860396561484663,-33.8589835890750237,62.4186428259808963],"rgb":[0.533333333333333326,0.8,0.4],"xyz":[0.341430541395548737,0.493782477259483932,0.203027951555311],"hpluv":[118.477611184333398,119.054896833398359,75.6860396561484663],"hsluv":[118.477611184333398,69.4467240035668141,75.6860396561484663]},"#88cc77":{"lch":[75.9160535408259705,63.1826013081171638,122.199343200922883],"luv":[75.9160535408259705,-33.6678964132470924,53.4650713940171656],"rgb":[0.533333333333333326,0.8,0.466666666666666674],"xyz":[0.350744554415750642,0.497508082467564727,0.252081753461708913],"hpluv":[122.199343200922883,105.609553255175555,75.9160535408259705],"hsluv":[122.199343200922883,58.6308874961384063,75.9160535408259705]},"#88cc88":{"lch":[76.1896681333118124,54.6887581458639929,127.715012949238314],"luv":[76.1896681333118124,-33.4549913615237,43.2622678616965288],"rgb":[0.533333333333333326,0.8,0.533333333333333326],"xyz":[0.361884971517694443,0.50196424930834227,0.310754616865281108],"hpluv":[127.715012949238314,91.92606633748386,76.1896681333118124],"hsluv":[127.715012949238314,46.3779062484352878,76.1896681333118124]},"#88cc99":{"lch":[76.5083007543168492,46.0935908553499587,136.122445502284393],"luv":[76.5083007543168492,-33.2253063874269188,31.9483666781575764],"rgb":[0.533333333333333326,0.8,0.6],"xyz":[0.374941935626767142,0.507187034951971483,0.379521294506399],"hpluv":[136.122445502284393,78.7570782006024643,76.5083007543168492],"hsluv":[136.122445502284393,48.1280089891728622,76.5083007543168492]},"#88ccaa":{"lch":[76.8730534179438223,38.4110576559043437,149.173477570542047],"luv":[76.8730534179438223,-32.9844501501569098,19.6833787378341469],"rgb":[0.533333333333333326,0.8,0.66666666666666663],"xyz":[0.389999628592019698,0.513210112138072549,0.458825144123397588],"hpluv":[149.173477570542047,66.8865090410736229,76.8730534179438223],"hsluv":[149.173477570542047,50.0095890879800891,76.8730534179438223]},"#88ccbb":{"lch":[77.2847330465352087,33.404634806871222,168.536638924911273],"luv":[77.2847330465352087,-32.73827895277973,6.638879257104497],"rgb":[0.533333333333333326,0.8,0.733333333333333282],"xyz":[0.407137220699356372,0.520065148981007308,0.54908312922203939],"hpluv":[168.536638924911273,59.444025112992847,77.2847330465352087],"hsluv":[168.536638924911273,51.9915664660802292,77.2847330465352087]},"#88cccc":{"lch":[77.7438691793350074,33.2404934388306,192.177050630060876],"luv":[77.7438691793350074,-32.4925976386916417,-7.01152642061846443],"rgb":[0.533333333333333326,0.8,0.8],"xyz":[0.426429596143078071,0.527782099158496165,0.650689639892309546],"hpluv":[192.177050630060876,60.6231146417445359,77.7438691793350074],"hsluv":[192.177050630060876,54.0427382519684585,77.7438691793350074]},"#88ccdd":{"lch":[78.2507307533704,38.5418325774740964,213.193277164244591],"luv":[78.2507307533704,-32.2529061156020589,-21.1003058159876602],"rgb":[0.533333333333333326,0.8,0.866666666666666696],"xyz":[0.44794792169371167,0.536389429378749671,0.764019487792315544],"hpluv":[213.193277164244591,72.2588367593471759,78.2507307533704],"hsluv":[213.193277164244591,56.1332045791076126,78.2507307533704]},"#88ccee":{"lch":[78.8053428571366368,47.78945312574524,227.924421751618695],"luv":[78.8053428571366368,-32.0242046898233,-35.4722728908382834],"rgb":[0.533333333333333326,0.8,0.933333333333333348],"xyz":[0.47176010195988638,0.545914301485219688,0.889430303860838767],"hpluv":[227.924421751618695,92.3999074491721473,78.8053428571366368],"hsluv":[227.924421751618695,70.4270935368067796,78.8053428571366368]},"#88ccff":{"lch":[79.4075039272108114,59.2521837878726885,237.529017152572294],"luv":[79.4075039272108114,-31.8108626015509195,-49.9889018100727327],"rgb":[0.533333333333333326,0.8,1],"xyz":[0.497931150369717801,0.556382720849152412,1.02726449215262061],"hpluv":[237.529017152572294,118.549697277888072,79.4075039272108114],"hsluv":[237.529017152572294,99.999999999996561,79.4075039272108114]},"#334400":{"lch":[26.2681529832905483,31.0251081485104194,104.276907196552472],"luv":[26.2681529832905483,-7.65105337509169647,30.0669040288198879],"rgb":[0.2,0.266666666666666663,0],"xyz":[0.034322417713353183,0.0483799977885883553,0.00753004776376127276],"hpluv":[104.276907196552472,149.872894059772364,26.2681529832905483],"hsluv":[104.276907196552472,100.000000000002302,26.2681529832905483]},"#334411":{"lch":[26.3856741683463127,27.3886432490873446,106.295788944443402],"luv":[26.3856741683463127,-7.68514827558869662,26.2883296351821087],"rgb":[0.2,0.266666666666666663,0.0666666666666666657],"xyz":[0.0353340832129903082,0.0487846639884432082,0.0128581527285169042],"hpluv":[106.295788944443402,131.716945387015755,26.3856741683463127],"hsluv":[106.295788944443402,86.6296124974134614,26.3856741683463127]},"#334422":{"lch":[26.6018195362025054,21.2226436820006832,111.412237748000109],"luv":[26.6018195362025054,-7.74787020962619799,19.7578114189793403],"rgb":[0.2,0.266666666666666663,0.133333333333333331],"xyz":[0.0372094413514673233,0.0495348072438340295,0.0227350389244961],"hpluv":[111.412237748000109,101.234249163259577,26.6018195362025054],"hsluv":[111.412237748000109,63.7673799144094,26.6018195362025054]},"#334433":{"lch":[26.9529945323855813,12.8320575385027151,127.715012949236225],"luv":[26.9529945323855813,-7.8498102472204323,10.150969399721264],"rgb":[0.2,0.266666666666666663,0.2],"xyz":[0.0402971920839250639,0.0507699075368171424,0.038997192782107247],"hpluv":[127.715012949236225,60.4127494816677171,26.9529945323855813],"hsluv":[127.715012949236225,30.7608572023581708,26.9529945323855813]},"#334444":{"lch":[27.4501004194092673,8.17817622085537721,192.177050630060421],"luv":[27.4501004194092673,-7.99417102070306651,-1.72504956193021397],"rgb":[0.2,0.266666666666666663,0.266666666666666663],"xyz":[0.0447551873281439444,0.0525531056345047154,0.0624759677349938855],"hpluv":[192.177050630060421,37.8052272806132379,27.4501004194092673],"hsluv":[192.177050630060421,37.6572465300637518,27.4501004194092673]},"#334455":{"lch":[28.0976851129048839,16.9879579660521678,241.20654356816641],"luv":[28.0976851129048839,-8.1823109542023289,-14.8875956186718064],"rgb":[0.2,0.266666666666666663,0.333333333333333315],"xyz":[0.0507176013675059364,0.0549380712502495483,0.0938780150089678],"hpluv":[241.20654356816641,76.720241835207986,28.0976851129048839],"hsluv":[241.20654356816641,44.9859363973003568,28.0976851129048839]},"#334466":{"lch":[28.8949601880565652,29.7043747380071501,253.545194757545516],"luv":[28.8949601880565652,-8.41402976058801855,-28.487786536758108],"rgb":[0.2,0.266666666666666663,0.4],"xyz":[0.0583025971410141147,0.0579720695596528598,0.133825659416111742],"hpluv":[253.545194757545516,130.448064952476017,28.8949601880565652],"hsluv":[253.545194757545516,52.1427730716471629,28.8949601880565652]},"#334477":{"lch":[29.8367962202096138,42.8398018741040758,258.299336276781332],"luv":[29.8367962202096138,-8.68785350705267589,-41.9496105590085691],"rgb":[0.2,0.266666666666666663,0.466666666666666674],"xyz":[0.0676166101612160342,0.0616976747677336762,0.182879461322509651],"hpluv":[258.299336276781332,182.19421868795277,29.8367962202096138],"hsluv":[258.299336276781332,58.7347196438674857,29.8367962202096138]},"#334488":{"lch":[30.9147794404111025,55.6960507233291082,260.699324576281469],"luv":[30.9147794404111025,-9.00134255207500189,-54.9638599302837605],"rgb":[0.2,0.266666666666666663,0.533333333333333326],"xyz":[0.0787570272631598622,0.066153841608511274,0.241552324726081818],"hpluv":[260.699324576281469,228.611238042833349,30.9147794404111025],"hsluv":[260.699324576281469,64.5716173949788583,30.9147794404111025]},"#334499":{"lch":[32.1182691124294664,68.0605660836803281,262.102678541403236],"luv":[32.1182691124294664,-9.35140200670356769,-67.4150720250304],"rgb":[0.2,0.266666666666666663,0.6],"xyz":[0.0918139913722325618,0.0713766272521404316,0.310319002367199726],"hpluv":[262.102678541403236,268.895014901030436,32.1182691124294664],"hsluv":[262.102678541403236,69.6097770986353623,32.1182691124294664]},"#3344aa":{"lch":[33.435366318838156,79.8975403264742852,263.001802037450773],"luv":[33.435366318838156,-9.73456660877536528,-79.3023023824649158],"rgb":[0.2,0.266666666666666663,0.66666666666666663],"xyz":[0.106871684337485118,0.07739970443824154,0.389622851984198326],"hpluv":[263.001802037450773,303.226149032408784,33.435366318838156],"hsluv":[263.001802037450773,73.891501645941716,33.435366318838156]},"#3344bb":{"lch":[34.8537252521307721,91.2457354427413492,263.615054402289786],"luv":[34.8537252521307721,-10.1472390443123768,-90.6797539490724773],"rgb":[0.2,0.266666666666666663,0.733333333333333282],"xyz":[0.124009276444821764,0.0842547412811763,0.479880837082840073],"hpluv":[263.615054402289786,332.202349056841342,34.8537252521307721],"hsluv":[263.615054402289786,77.4995146205371412,34.8537252521307721]},"#3344cc":{"lch":[36.3611746115969083,102.170263494902102,264.052905077601281],"luv":[36.3611746115969083,-10.5858721727669973,-101.620382074461631],"rgb":[0.2,0.266666666666666663,0.8],"xyz":[0.143301651888543491,0.0919716914586651,0.581487347753110284],"hpluv":[264.052905077601281,356.55451128807033,36.3611746115969083],"hsluv":[264.052905077601281,80.5286468598271767,36.3611746115969083]},"#3344dd":{"lch":[37.9461503215655611,112.73940211649635,264.376684246138268],"luv":[37.9461503215655611,-11.0470957042534899,-112.196855865421313],"rgb":[0.2,0.266666666666666663,0.866666666666666696],"xyz":[0.164819977439177034,0.100579021678918634,0.694817195653116282],"hpluv":[264.376684246138268,377.005191833442723,37.9461503215655611],"hsluv":[264.376684246138268,84.1625325255073,37.9461503215655611]},"#3344ee":{"lch":[39.5979632159824462,123.014623823289881,264.622878978329823],"luv":[39.5979632159824462,-11.5277944422180187,-122.473293536523641],"rgb":[0.2,0.266666666666666663,0.933333333333333348],"xyz":[0.188632157705351772,0.110103893785388651,0.820228011721639505],"hpluv":[264.622878978329823,394.205992168221826,39.5979632159824462],"hsluv":[264.622878978329823,91.9832832027675664,39.5979632159824462]},"#3344ff":{"lch":[41.3069357297154482,133.047388274610427,264.814390787746049],"luv":[41.3069357297154482,-12.0251481753234213,-132.502842754623401],"rgb":[0.2,0.266666666666666663,1],"xyz":[0.214803206115183165,0.120572313149321361,0.95806220001342135],"hpluv":[264.814390787746049,408.716999433792864,41.3069357297154482],"hsluv":[264.814390787746049,99.9999999999994458,41.3069357297154482]},"#aacc00":{"lch":[77.1199831352121,88.8460909387721,100.173289143969555],"luv":[77.1199831352121,-15.692520471132994,87.4492577233428108],"rgb":[0.66666666666666663,0.8,0],"xyz":[0.381691137978657502,0.517314555618973326,0.0797436262784653],"hpluv":[100.173289143969555,156.730643533439519,77.1199831352121],"hsluv":[100.173289143969555,100.000000000002373,77.1199831352121]},"#aacc11":{"lch":[77.1442576556984676,87.800209961997254,100.311366942902],"luv":[77.1442576556984676,-15.7160097521192821,86.3821967007212237],"rgb":[0.66666666666666663,0.8,0.0666666666666666657],"xyz":[0.382702803478294606,0.517719221818828235,0.085071731243220941],"hpluv":[100.311366942902,155.08420894585916,77.1442576556984676],"hsluv":[100.311366942902,98.7181568051142,77.1442576556984676]},"#aacc22":{"lch":[77.1892227090432641,85.8765024717939411,100.574350259733862],"luv":[77.1892227090432641,-15.7593085348968636,84.4181134075499102],"rgb":[0.66666666666666663,0.8,0.133333333333333331],"xyz":[0.384578161616771663,0.518469365074219,0.0949486174392001336],"hpluv":[100.574350259733862,152.047171814071362,77.1892227090432641],"hsluv":[100.574350259733862,96.3604791744028404,77.1892227090432641]},"#aacc33":{"lch":[77.2631626362465482,82.7513779572315116,101.028364552392574],"luv":[77.2631626362465482,-15.8299191574657527,81.2231753460099668],"rgb":[0.66666666666666663,0.8,0.2],"xyz":[0.387665912349229369,0.519704465367202162,0.111210771296811284],"hpluv":[101.028364552392574,147.088857703341773,77.2631626362465482],"hsluv":[101.028364552392574,92.5301726329619,77.2631626362465482]},"#aacc44":{"lch":[77.3697083481362569,78.3307208035327278,101.734312614214147],"luv":[77.3697083481362569,-15.9304072801298968,76.6937021240348],"rgb":[0.66666666666666663,0.8,0.266666666666666663],"xyz":[0.392123907593448284,0.521487663464889728,0.134689546249697922],"hpluv":[101.734312614214147,140.021584702469511,77.3697083481362569],"hsluv":[101.734312614214147,87.1104907412273377,77.3697083481362569]},"#aacc55":{"lch":[77.5118305539362495,72.5836718124644875,102.784946304826448],"luv":[77.5118305539362495,-16.0622064150904862,70.7841432727597493],"rgb":[0.66666666666666663,0.8,0.333333333333333315],"xyz":[0.398086321632810269,0.523872629080634478,0.16609159352367181],"hpluv":[102.784946304826448,130.736122666873541,77.5118305539362495],"hsluv":[102.784946304826448,80.0585735006639,77.5118305539362495]},"#aacc66":{"lch":[77.6920071630818114,65.5409770618580865,104.333567867024144],"luv":[77.6920071630818114,-16.225762577214013,63.5007425390513731],"rgb":[0.66666666666666663,0.8,0.4],"xyz":[0.405671317406318455,0.526906627390037796,0.2060392379308158],"hpluv":[104.333567867024144,119.198186871977654,77.6920071630818114],"hsluv":[104.333567867024144,71.3979720959128,77.6920071630818114]},"#aacc77":{"lch":[77.912311817127474,57.2990991241466574,106.653185897117098],"luv":[77.912311817127474,-16.4206512214041886,54.8958010589496865],"rgb":[0.66666666666666663,0.8,0.466666666666666674],"xyz":[0.41498533042652036,0.530632232598118647,0.255093039837213709],"hpluv":[106.653185897117098,105.457526508453554,77.912311817127474],"hsluv":[106.653185897117098,61.2114900666368769,77.912311817127474]},"#aacc88":{"lch":[78.1744663257663,48.0371110011961946,110.274462486898784],"luv":[78.1744663257663,-16.6457037997795574,45.0608985524173633],"rgb":[0.66666666666666663,0.8,0.533333333333333326],"xyz":[0.42612574752846416,0.53508839943889619,0.313765903240785848],"hpluv":[110.274462486898784,89.6844859178180513,78.1744663257663],"hsluv":[110.274462486898784,49.6324036967210418,78.1744663257663]},"#aacc99":{"lch":[78.4798746855988583,38.0746183254558517,116.349336294343573],"luv":[78.4798746855988583,-16.8991518201031816,34.1188397866961779],"rgb":[0.66666666666666663,0.8,0.6],"xyz":[0.43918271163753686,0.540311185082525403,0.382532580881903783],"hpluv":[116.349336294343573,72.2917022308792383,78.4798746855988583],"hsluv":[116.349336294343573,36.8338589582570535,78.4798746855988583]},"#aaccaa":{"lch":[78.8296472340984593,28.0820980315160789,127.715012949234293],"luv":[78.8296472340984593,-17.1787837008838338,22.2147163027108476],"rgb":[0.66666666666666663,0.8,0.66666666666666663],"xyz":[0.454240404602789416,0.546334262268626469,0.461836430498902384],"hpluv":[127.715012949234293,54.3703242245777503,78.8296472340984593],"hsluv":[127.715012949234293,23.0170216670413055,78.8296472340984593]},"#aaccbb":{"lch":[79.2246195207133,19.8998018903229301,151.462718702096396],"luv":[79.2246195207133,-17.4821042808439238,9.50674209115818236],"rgb":[0.66666666666666663,0.8,0.733333333333333282],"xyz":[0.47137799671012609,0.553189299111561228,0.55209441559754413],"hpluv":[151.462718702096396,39.3999249764932173,79.2246195207133],"hsluv":[151.462718702096396,25.9022649263565761,79.2246195207133]},"#aacccc":{"lch":[79.665368512397464,18.216345023755192,192.177050630059796],"luv":[79.665368512397464,-17.80648564660072,-3.84243346616347603],"rgb":[0.66666666666666663,0.8,0.8],"xyz":[0.490670372153847789,0.560906249289050085,0.653700926267814286],"hpluv":[192.177050630059796,36.9937893704297878,79.665368512397464],"hsluv":[192.177050630059796,28.9019874878943099,79.665368512397464]},"#aaccdd":{"lch":[80.1522276755556504,25.332665849504842,224.238778454296437],"luv":[80.1522276755556504,-18.1492995031005968,-17.6733382978265112],"rgb":[0.66666666666666663,0.8,0.866666666666666696],"xyz":[0.512188697704481388,0.569513579509303591,0.767030774167820284],"hpluv":[224.238778454296437,52.9363308364733882,80.1522276755556504],"hsluv":[224.238778454296437,37.9969627853472787,80.1522276755556504]},"#aaccee":{"lch":[80.6853018377357216,36.8247992939862954,239.828051209207672],"luv":[80.6853018377357216,-18.5080244281037345,-31.8358112007702587],"rgb":[0.66666666666666663,0.8,0.933333333333333348],"xyz":[0.536000877970656098,0.579038451615773608,0.892441590236343507],"hpluv":[239.828051209207672,79.4490805971393854,80.6853018377357216],"hsluv":[239.828051209207672,67.7857500876551313,80.6853018377357216]},"#aaccff":{"lch":[81.2644823279674284,49.9029399741520834,247.769045833277914],"luv":[81.2644823279674284,-18.8803249793402337,-46.1934708236816434],"rgb":[0.66666666666666663,0.8,1],"xyz":[0.562171926380487519,0.589506870979706332,1.03027577852812535],"hpluv":[247.769045833277914,111.562078640814406,81.2644823279674284],"hsluv":[247.769045833277914,99.9999999999962625,81.2644823279674284]},"#88dd00":{"lch":[80.1491214608994085,103.252993693735874,114.339076779275487],"luv":[80.1491214608994085,-42.5542610136121837,94.0761158653142218],"rgb":[0.533333333333333326,0.866666666666666696,0],"xyz":[0.360084352515062933,0.569458386582770926,0.0909436700853518548],"hpluv":[114.339076779275487,215.722602995807392,80.1491214608994085],"hsluv":[114.339076779275487,100.000000000002288,80.1491214608994085]},"#88dd11":{"lch":[80.1718911006532551,102.308936337717924,114.55620444532569],"luv":[80.1718911006532551,-42.518128048011647,93.0555062414261727],"rgb":[0.533333333333333326,0.866666666666666696,0.0666666666666666657],"xyz":[0.361096018014700038,0.569863052782625834,0.0962717750501074915],"hpluv":[114.55620444532569,214.038948901986089,80.1718911006532551],"hsluv":[114.55620444532569,98.8288322371321186,80.1718911006532551]},"#88dd22":{"lch":[80.2140714473537315,100.574216022873557,114.966813202702411],"luv":[80.2140714473537315,-42.4516967311958453,91.1757992740300125],"rgb":[0.533333333333333326,0.866666666666666696,0.133333333333333331],"xyz":[0.362971376153177094,0.570613196038016635,0.106148661246086684],"hpluv":[114.966813202702411,210.937294411552,80.2140714473537315],"hsluv":[114.966813202702411,96.6732644510524,80.2140714473537315]},"#88dd33":{"lch":[80.283440325316,97.7612202004146695,115.666709499512805],"luv":[80.283440325316,-42.3438510501166832,88.1150069699792908],"rgb":[0.533333333333333326,0.866666666666666696,0.2],"xyz":[0.3660591268856348,0.571848296330999761,0.122410815103697834],"hpluv":[115.666709499512805,205.88559104418357,80.283440325316],"hsluv":[115.666709499512805,93.1672856447162303,80.283440325316]},"#88dd44":{"lch":[80.3834168948860821,93.7943752395521,116.732715571790365],"luv":[80.3834168948860821,-42.1914333437924896,83.7691338081886698],"rgb":[0.533333333333333326,0.866666666666666696,0.266666666666666663],"xyz":[0.370517122129853715,0.573631494428687327,0.145889590056584473],"hpluv":[116.732715571790365,198.714220363605108,80.3834168948860821],"hsluv":[116.732715571790365,88.1979852499996184,80.3834168948860821]},"#88dd55":{"lch":[80.5168087418625475,88.6629430887769,118.270203219525229],"luv":[80.5168087418625475,-41.9934519908601374,78.0875628192801088],"rgb":[0.533333333333333326,0.866666666666666696,0.333333333333333315],"xyz":[0.376479536169215701,0.576016460044432077,0.17729163733055836],"hpluv":[118.270203219525229,189.352414361266369,80.5168087418625475],"hsluv":[118.270203219525229,81.7170886524359474,80.5168087418625475]},"#88dd66":{"lch":[80.6859701106092757,82.4238546620344437,120.433562333743893],"luv":[80.6859701106092757,-41.7508898851674672,71.0672569552589266],"rgb":[0.533333333333333326,0.866666666666666696,0.4],"xyz":[0.384064531942723886,0.579050458353835396,0.21723928173770235],"hpluv":[120.433562333743893,177.835721711884361,80.6859701106092757],"hsluv":[120.433562333743893,73.7344666622195604,80.6859701106092757]},"#88dd77":{"lch":[80.8928858528116734,75.2114908165065827,123.458458278308711],"luv":[80.8928858528116734,-41.4665196955592208,62.7478772165182832],"rgb":[0.533333333333333326,0.866666666666666696,0.466666666666666674],"xyz":[0.393378544962925791,0.582776063561916247,0.266293083644100259],"hpluv":[123.458458278308711,164.332036041008877,80.8928858528116734],"hsluv":[123.458458278308711,64.312379996729149,80.8928858528116734]},"#88dd88":{"lch":[81.1392211885512,67.2590471315356524,127.71501294923884],"luv":[81.1392211885512,-41.1446687958856145,53.2061617739807531],"rgb":[0.533333333333333326,0.866666666666666696,0.533333333333333326],"xyz":[0.404518962064869592,0.587232230402693789,0.324965947047672399],"hpluv":[127.71501294923884,149.199726190229825,81.1392211885512],"hsluv":[127.71501294923884,53.5585775308776633,81.1392211885512]},"#88dd99":{"lch":[81.4263538436063072,58.943488890057,133.791370377408185],"luv":[81.4263538436063072,-40.7909253788266,42.5492102073736831],"rgb":[0.533333333333333326,0.866666666666666696,0.6],"xyz":[0.417575926173942347,0.592455016046323,0.393732624688790334],"hpluv":[133.791370377408185,133.11083868071384,81.4263538436063072],"hsluv":[133.791370377408185,54.8771054313611515,81.4263538436063072]},"#88ddaa":{"lch":[81.7553965772464437,50.8758256364689956,142.591286230634154],"luv":[81.7553965772464437,-40.4117997418374131,30.906893661738728],"rgb":[0.533333333333333326,0.866666666666666696,0.66666666666666663],"xyz":[0.432633619139194847,0.598478093232424069,0.473036474305788934],"hpluv":[142.591286230634154,117.302359569381537,81.7553965772464437],"hsluv":[142.591286230634154,56.3076629138628,81.7553965772464437]},"#88ddbb":{"lch":[82.1272144034785327,44.0521153731503716,155.27715859232552],"luv":[82.1272144034785327,-40.0143654100278567,18.4238820470094566],"rgb":[0.533333333333333326,0.866666666666666696,0.733333333333333282],"xyz":[0.449771211246531522,0.605333130075358827,0.563294459404430681],"hpluv":[155.27715859232552,104.020343594656595,82.1272144034785327],"hsluv":[155.27715859232552,57.829298146967858,82.1272144034785327]},"#88ddcc":{"lch":[82.542438979776648,39.9525966793572422,172.446474622419316],"luv":[82.542438979776648,-39.6059077008678173,5.25186220437346396],"rgb":[0.533333333333333326,0.866666666666666696,0.8],"xyz":[0.469063586690253276,0.613050080252847684,0.664900970074700837],"hpluv":[172.446474622419316,96.9346789585341355,82.542438979776648],"hsluv":[172.446474622419316,59.4202271347422908,82.542438979776648]},"#88dddd":{"lch":[83.0014816422074375,40.0957403917498354,192.177050630060734],"luv":[83.0014816422074375,-39.1936046909777,-8.4575261684472629],"rgb":[0.533333333333333326,0.866666666666666696,0.866666666666666696],"xyz":[0.490581912240886764,0.621657410473101191,0.778230817974706834],"hpluv":[192.177050630060734,100.308679558078737,83.0014816422074375],"hsluv":[192.177050630060734,61.0588228331018783,83.0014816422074375]},"#88ddee":{"lch":[83.5045459788204,44.8677054153188,210.184175125347622],"luv":[83.5045459788204,-38.7842593009493157,-22.5586395802706683],"rgb":[0.533333333333333326,0.866666666666666696,0.933333333333333348],"xyz":[0.514394092507061584,0.631182282579571208,0.903641634043230058],"hpluv":[210.184175125347622,116.175045715242419,83.5045459788204],"hsluv":[210.184175125347622,62.7244468832174746,83.5045459788204]},"#88ddff":{"lch":[84.0516404633952732,53.2556266987753659,223.883407592331508],"luv":[84.0516404633952732,-38.3840933399078779,-36.9164347351224436],"rgb":[0.533333333333333326,0.866666666666666696,1],"xyz":[0.540565140916892894,0.641650701943503932,1.04147582233501179],"hpluv":[223.883407592331508,143.298172182841085,84.0516404633952732],"hsluv":[223.883407592331508,99.9999999999952,84.0516404633952732]},"#335500":{"lch":[32.2593993637483862,41.1235506245754365,113.326494368716226],"luv":[32.2593993637483862,-16.2836990313566261,37.7622504868051223],"rgb":[0.2,0.333333333333333315,0],"xyz":[0.0461356744276991415,0.0720065112172806193,0.0114678000018764836],"hpluv":[113.326494368716226,161.760937136611716,32.2593993637483862],"hsluv":[113.326494368716226,100.000000000002288,32.2593993637483862]},"#335511":{"lch":[32.3496341583576381,38.1897920123001313,115.090818108356473],"luv":[32.3496341583576381,-16.1945453684027605,34.5860797757347456],"rgb":[0.2,0.333333333333333315,0.0666666666666666657],"xyz":[0.0471473399273362598,0.0724111774171354722,0.016795904966632115],"hpluv":[115.090818108356473,149.801873896373706,32.3496341583576381],"hsluv":[115.090818108356473,90.8995446090399923,32.3496341583576381]},"#335522":{"lch":[32.5160201858231659,33.1206139518783189,118.966642902489184],"luv":[32.5160201858231659,-16.0403246718637718,28.9772851207727022],"rgb":[0.2,0.333333333333333315,0.133333333333333331],"xyz":[0.0490226980658132819,0.0731613206725262866,0.0266727911626113111],"hpluv":[118.966642902489184,129.252907346834121,32.5160201858231659],"hsluv":[118.966642902489184,74.935129302234273,32.5160201858231659]},"#335533":{"lch":[32.7875119073456176,25.8516304293262671,127.715012949238741],"luv":[32.7875119073456176,-15.8143300747053051,20.4502753072602665],"rgb":[0.2,0.333333333333333315,0.2],"xyz":[0.0521104487982710224,0.0743964209655094,0.0429349450202224578],"hpluv":[127.715012949238741,100.050394151032577,32.7875119073456176],"hsluv":[127.715012949238741,50.9434831873252207,32.7875119073456176]},"#335544":{"lch":[33.1742322541989836,18.1915220066791647,148.674883917516439],"luv":[33.1742322541989836,-15.539762262897943,9.45765624941535421],"rgb":[0.2,0.333333333333333315,0.266666666666666663],"xyz":[0.0565684440424899,0.0761796190631969794,0.0664137199731090894],"hpluv":[148.674883917516439,69.5836942134034899,33.1742322541989836],"hsluv":[148.674883917516439,54.5088767633859703,33.1742322541989836]},"#335555":{"lch":[33.6821363315134121,15.5994691341387064,192.177050630060819],"luv":[33.6821363315134121,-15.2484882598238034,-3.29044724269541522],"rgb":[0.2,0.333333333333333315,0.333333333333333315],"xyz":[0.0625308580818519,0.0785645846789418123,0.097815767247083],"hpluv":[192.177050630060819,58.7691644617976934,33.6821363315134121],"hsluv":[192.177050630060819,58.539124710901028,33.6821363315134121]},"#335566":{"lch":[34.3136156967701496,22.6822476529859181,228.692277460856218],"luv":[34.3136156967701496,-14.9726179113300351,-17.0383412183435361],"rgb":[0.2,0.333333333333333315,0.4],"xyz":[0.0701158538553600663,0.0815985829883451308,0.137763411654226953],"hpluv":[228.692277460856218,83.8800984368335,34.3136156967701496],"hsluv":[228.692277460856218,62.7386213411417089,34.3136156967701496]},"#335577":{"lch":[35.0679836745485218,34.4527831327976131,244.673076132176305],"luv":[35.0679836745485218,-14.7383029974912176,-31.1412377780608658],"rgb":[0.2,0.333333333333333315,0.466666666666666674],"xyz":[0.0794298668755619858,0.0853241881964259402,0.186817213560624862],"hpluv":[244.673076132176305,124.667382519216758,35.0679836745485218],"hsluv":[244.673076132176305,66.8604241763398335,35.0679836745485218]},"#335588":{"lch":[35.9419713942028523,47.4274747217606318,252.117898483801355],"luv":[35.9419713942028523,-14.5630489263951493,-45.1362710516793229],"rgb":[0.2,0.333333333333333315,0.533333333333333326],"xyz":[0.0905702839775058138,0.089780355037203538,0.245490076964197029],"hpluv":[252.117898483801355,167.443168522882189,35.9419713942028523],"hsluv":[252.117898483801355,70.7327730687023433,35.9419713942028523]},"#335599":{"lch":[36.9302538454711851,60.4953772811161272,256.174865065393647],"luv":[36.9302538454711851,-14.4559426241851021,-58.7427986669927833],"rgb":[0.2,0.333333333333333315,0.6],"xyz":[0.103627248086578527,0.0950031406808327,0.314256754605314936],"hpluv":[256.174865065393647,207.863972679723531,36.9302538454711851],"hsluv":[256.174865065393647,74.2581677802949258,36.9302538454711851]},"#3355aa":{"lch":[38.0259842211890557,73.2582460718320903,258.648348715518409],"luv":[38.0259842211890557,-14.4194259870406505,-71.8251402485603165],"rgb":[0.2,0.333333333333333315,0.66666666666666663],"xyz":[0.118684941051831069,0.101026217866933804,0.393560604222313537],"hpluv":[258.648348715518409,244.464262316607687,38.0259842211890557],"hsluv":[258.648348715518409,77.3978910060545,38.0259842211890557]},"#3355bb":{"lch":[39.2213032744107579,85.5750988898230815,260.277622363739169],"luv":[39.2213032744107579,-14.4514388960387397,-84.3460340729607623],"rgb":[0.2,0.333333333333333315,0.733333333333333282],"xyz":[0.135822533159167702,0.107881254709868563,0.483818589320955283],"hpluv":[260.277622363739169,276.862869377010384,39.2213032744107579],"hsluv":[260.277622363739169,80.1529964351826578,39.2213032744107579]},"#3355cc":{"lch":[40.5077939091134667,97.4185991778777,261.412040351160215],"luv":[40.5077939091134667,-14.5472816309580448,-96.326320717286734],"rgb":[0.2,0.333333333333333315,0.8],"xyz":[0.155114908602889456,0.115598204887357364,0.585425099991225495],"hpluv":[261.412040351160215,305.17054630009352,40.5077939091134667],"hsluv":[261.412040351160215,82.5478264076183734,40.5077939091134667]},"#3355dd":{"lch":[41.8768615158020552,108.813506268261335,262.235450095721887],"luv":[41.8768615158020552,-14.7009821832840935,-107.815862790406285],"rgb":[0.2,0.333333333333333315,0.866666666666666696],"xyz":[0.176633234153523,0.124205535107610898,0.698754947891231493],"hpluv":[262.235450095721887,329.72206067647727,41.8768615158020552],"hsluv":[262.235450095721887,84.6180359154754456,41.8768615158020552]},"#3355ee":{"lch":[43.3200322197542533,119.805986402952101,262.852770803428143],"luv":[43.3200322197542533,-14.9061911990543372,-118.875059797762361],"rgb":[0.2,0.333333333333333315,0.933333333333333348],"xyz":[0.200445414419697737,0.133730407214080915,0.824165763959754716],"hpluv":[262.852770803428143,350.936931775297865,43.3200322197542533],"hsluv":[262.852770803428143,90.8055999978327577,43.3200322197542533]},"#3355ff":{"lch":[44.8291710285026497,130.447860525532377,263.327743444412704],"luv":[44.8291710285026497,-15.1567128937849134,-129.564340657235334],"rgb":[0.2,0.333333333333333315,1],"xyz":[0.226616462829529131,0.144198826578013639,0.961999952251536561],"hpluv":[263.327743444412704,369.245812735261836,44.8291710285026497],"hsluv":[263.327743444412704,99.9999999999993,44.8291710285026497]},"#aadd00":{"lch":[81.9783608763648175,97.3184216433040916,105.014728605041086],"luv":[81.9783608763648175,-25.2120246284188454,93.9958988747909245],"rgb":[0.66666666666666663,0.866666666666666696,0],"xyz":[0.424325128525832707,0.602582536713324846,0.0939549564608566229],"hpluv":[105.014728605041086,227.603505169437568,81.9783608763648175],"hsluv":[105.014728605041086,100.000000000002203,81.9783608763648175]},"#aadd11":{"lch":[82.0002885274849262,96.374791846509865,105.167446282879951],"luv":[82.0002885274849262,-25.2155818179290208,93.017605521973266],"rgb":[0.66666666666666663,0.866666666666666696,0.0666666666666666657],"xyz":[0.425336794025469811,0.602987202913179754,0.0992830614256122596],"hpluv":[105.167446282879951,225.71449396257529,82.0002885274849262],"hsluv":[105.167446282879951,98.8971907906987298,82.0002885274849262]},"#aadd22":{"lch":[82.0409106120811,94.6380623122949345,105.456830413527484],"luv":[82.0409106120811,-25.2222030700150874,91.2151484706391216],"rgb":[0.66666666666666663,0.866666666666666696,0.133333333333333331],"xyz":[0.427212152163946868,0.603737346168570554,0.109159947621591452],"hpluv":[105.456830413527484,222.227322886837186,82.0409106120811],"hsluv":[105.456830413527484,96.86659260915998,82.0409106120811]},"#aadd33":{"lch":[82.1077210543303693,91.8137349028061891,105.951891130476156],"luv":[82.1077210543303693,-25.2331804702422886,88.2782448860360773],"rgb":[0.66666666666666663,0.866666666666666696,0.2],"xyz":[0.430299902896404574,0.604972446461553681,0.125422101479202602],"hpluv":[105.951891130476156,216.526835376233663,82.1077210543303693],"hsluv":[105.951891130476156,93.5615293661406469,82.1077210543303693]},"#aadd44":{"lch":[82.204019596801416,87.812555976334508,106.710442618715334],"luv":[82.204019596801416,-25.2491908313752447,84.1042409718896238],"rgb":[0.66666666666666663,0.866666666666666696,0.266666666666666663],"xyz":[0.434757898140623489,0.606755644559241247,0.148900876432089241],"hpluv":[106.710442618715334,208.386709262610594,82.204019596801416],"hsluv":[106.710442618715334,88.8720213109455415,82.204019596801416]},"#aadd55":{"lch":[82.332521082647844,82.6008871447080537,107.814707884186447],"luv":[82.332521082647844,-25.2708912490316564,78.6402480449573],"rgb":[0.66666666666666663,0.866666666666666696,0.333333333333333315],"xyz":[0.440720312179985474,0.609140610174986,0.180302923706063156],"hpluv":[107.814707884186447,197.666387369374576,82.332521082647844],"hsluv":[107.814707884186447,82.7472331150865,82.332521082647844]},"#aadd66":{"lch":[82.495508489392364,76.2000100439918526,109.390646830849064],"luv":[82.495508489392364,-25.2989483474785786,71.8777068583581666],"rgb":[0.66666666666666663,0.866666666666666696,0.4],"xyz":[0.448305307953493659,0.612174608484389315,0.22025056811320709],"hpluv":[109.390646830849064,184.308617744019813,82.495508489392364],"hsluv":[109.390646830849064,75.1895211365387723,82.495508489392364]},"#aadd77":{"lch":[82.694914273715753,68.6905071379487,111.642517734809914],"luv":[82.694914273715753,-25.3340491820501299,63.8480361711309499],"rgb":[0.66666666666666663,0.866666666666666696,0.466666666666666674],"xyz":[0.457619320973695565,0.615900213692470166,0.269304370019605],"hpluv":[111.642517734809914,168.351618208890358,82.694914273715753],"hsluv":[111.642517734809914,66.2494286969421182,82.694914273715753]},"#aadd88":{"lch":[82.9323686283524921,60.2252781448786436,114.920875432447886],"luv":[82.9323686283524921,-25.3769003534370228,54.6177357282387277],"rgb":[0.66666666666666663,0.866666666666666696,0.533333333333333326],"xyz":[0.468759738075639365,0.620356380533247709,0.327977233423177195],"hpluv":[114.920875432447886,149.967217229555729,82.9323686283524921],"hsluv":[114.920875432447886,56.0198042099318698,82.9323686283524921]},"#aadd99":{"lch":[83.2092305924335,51.0640475908324305,119.865599423026282],"luv":[83.2092305924335,-25.4282188712646082,44.2825320120006438],"rgb":[0.66666666666666663,0.866666666666666696,0.6],"xyz":[0.481816702184712065,0.625579166176876922,0.396743911064295074],"hpluv":[119.865599423026282,129.562195810811914,83.2092305924335],"hsluv":[119.865599423026282,44.6286172342680487,83.2092305924335]},"#aaddaa":{"lch":[83.526609727912188,41.6663179647472717,127.715012949236481],"luv":[83.526609727912188,-25.4887175141036408,32.9606937461220255],"rgb":[0.66666666666666663,0.866666666666666696,0.66666666666666663],"xyz":[0.496874395149964621,0.631602243362978,0.476047760681293675],"hpluv":[127.715012949236481,108.050849780995421,83.526609727912188],"hsluv":[127.715012949236481,32.2306770176982198,83.526609727912188]},"#aaddbb":{"lch":[83.8853825066367449,32.9442078204095523,140.880295511025736],"luv":[83.8853825066367449,-25.5590871805440472,20.7859060762739638],"rgb":[0.66666666666666663,0.866666666666666696,0.733333333333333282],"xyz":[0.514011987257301239,0.638457280205912747,0.566305745779935421],"hpluv":[140.880295511025736,87.605014056209555,83.8853825066367449],"hsluv":[140.880295511025736,34.4766875289621382,83.8853825066367449]},"#aaddcc":{"lch":[84.2862057978904602,26.8294893367150316,162.87488866986746],"luv":[84.2862057978904602,-25.639978502468459,7.90018990036700242],"rgb":[0.66666666666666663,0.866666666666666696,0.8],"xyz":[0.533304362701023,0.646174230383401604,0.667912256450205577],"hpluv":[162.87488866986746,73.4171355960865526,84.2862057978904602],"hsluv":[162.87488866986746,36.8333761539634708,84.2862057978904602]},"#aadddd":{"lch":[84.729528894444158,26.3242685722419552,192.177050630060421],"luv":[84.729528894444158,-25.7319846477226655,-5.55266440124834],"rgb":[0.66666666666666663,0.866666666666666696,0.866666666666666696],"xyz":[0.554822688251656593,0.654781560603655111,0.781242104350211575],"hpluv":[192.177050630060421,74.4077864529294146,84.729528894444158],"hsluv":[192.177050630060421,39.269697519551606,84.729528894444158]},"#aaddee":{"lch":[85.2156049558348769,32.3281965376105802,216.94937298104162],"luv":[85.2156049558348769,-25.8356267715816657,-19.4327733659894548],"rgb":[0.66666666666666663,0.866666666666666696,0.933333333333333348],"xyz":[0.578634868517831302,0.664306432710125128,0.906652920418734798],"hpluv":[216.94937298104162,94.7745998726022094,85.2156049558348769],"hsluv":[216.94937298104162,58.4216362813771397,85.2156049558348769]},"#aaddff":{"lch":[85.744502396509489,42.4619511969095527,232.326067904807843],"luv":[85.744502396509489,-25.9513430438233641,-33.608705623253762],"rgb":[0.66666666666666663,0.866666666666666696,1],"xyz":[0.604805916927662723,0.674774852074057852,1.04448710871051675],"hpluv":[232.326067904807843,129.682154580054771,85.744502396509489],"hsluv":[232.326067904807843,99.9999999999945572,85.744502396509489]},"#88ee00":{"lch":[85.1906878331824515,112.448241602139106,116.535675589642423],"luv":[85.1906878331824515,-50.2368100475369914,100.602534538950536],"rgb":[0.533333333333333326,0.933333333333333348,0],"xyz":[0.40726312885557775,0.663815939263801891,0.106669928865523039],"hpluv":[116.535675589642423,329.03324103323672,85.1906878331824515],"hsluv":[116.535675589642423,100.000000000002416,85.1906878331824515]},"#88ee11":{"lch":[85.2112458075113182,111.594873497969587,116.730132104203335],"luv":[85.2112458075113182,-50.1941202672300193,99.669283541253],"rgb":[0.533333333333333326,0.933333333333333348,0.0666666666666666657],"xyz":[0.408274794355214854,0.664220605463656799,0.111998033830278676],"hpluv":[116.730132104203335,327.047318494663614,85.2112458075113182],"hsluv":[116.730132104203335,98.9939616796445,85.2112458075113182]},"#88ee22":{"lch":[85.2493327369145,110.025246585506409,117.096539077460619],"luv":[85.2493327369145,-50.115524286233132,97.9489107224652429],"rgb":[0.533333333333333326,0.933333333333333348,0.133333333333333331],"xyz":[0.410150152493691911,0.6649707487190476,0.121874920026257869],"hpluv":[117.096539077460619,323.384561507736407,85.2493327369145],"hsluv":[117.096539077460619,97.140453749143191,85.2493327369145]},"#88ee33":{"lch":[85.3119799721786,107.475578977757436,117.717135468026783],"luv":[85.3119799721786,-49.9876247553973769,95.1432469906181097],"rgb":[0.533333333333333326,0.933333333333333348,0.2],"xyz":[0.413237903226149617,0.666205849012030726,0.138137073883869],"hpluv":[117.717135468026783,317.406918528502,85.3119799721786],"hsluv":[117.717135468026783,94.120593299189423,85.3119799721786]},"#88ee44":{"lch":[85.4022915890189864,103.870397610997969,118.652974854946393],"luv":[85.4022915890189864,-49.8062112723248518,91.1504296126099],"rgb":[0.533333333333333326,0.933333333333333348,0.266666666666666663],"xyz":[0.417695898470368532,0.667989047109718292,0.161615848836755643],"hpluv":[118.652974854946393,308.894438519259097,85.4022915890189864],"hsluv":[118.652974854946393,89.8292917088674869,85.4022915890189864]},"#88ee55":{"lch":[85.5228293578601466,99.1885702075232,119.98340282305692],"luv":[85.5228293578601466,-49.5693999595221584,85.9141842041562],"rgb":[0.533333333333333326,0.933333333333333348,0.333333333333333315],"xyz":[0.423658312509730517,0.670374012725463,0.193017896110729559],"hpluv":[119.98340282305692,297.731707367046795,85.5228293578601466],"hsluv":[119.98340282305692,84.2131356884780473,85.5228293578601466]},"#88ee66":{"lch":[85.6757572108422,93.4644574192068234,121.818598205465591],"luv":[85.6757572108422,-49.2774194314266083,79.4187681524083189],"rgb":[0.533333333333333326,0.933333333333333348,0.4],"xyz":[0.431243308283238702,0.673408011034866361,0.232965540517873521],"hpluv":[121.818598205465591,283.912655540997662,85.6757572108422],"hsluv":[121.818598205465591,77.2651144072775082,85.6757572108422]},"#88ee77":{"lch":[85.8629182835971676,86.7937408847250822,124.317503927832064],"luv":[85.8629182835971676,-48.9324360738715,71.6852157466327071],"rgb":[0.533333333333333326,0.933333333333333348,0.466666666666666674],"xyz":[0.440557321303440608,0.677133616242947212,0.282019342424271402],"hpluv":[124.317503927832064,267.563092583833793,85.8629182835971676],"hsluv":[124.317503927832064,69.0205357789205749,85.8629182835971676]},"#88ee88":{"lch":[86.0858807036169793,79.3454652904755164,127.71501294923921],"luv":[86.0858807036169793,-48.5383458294846,62.7672832477191918],"rgb":[0.533333333333333326,0.933333333333333348,0.533333333333333326],"xyz":[0.451697738405384408,0.681589783083724754,0.340692205827843597],"hpluv":[127.71501294923921,248.989760930573482,86.0858807036169793],"hsluv":[127.71501294923921,59.5524101967812,86.0858807036169793]},"#88ee99":{"lch":[86.3459670558122525,71.3853284581525429,132.362204285947513],"luv":[86.3459670558122525,-48.1005130697284287,52.7466184841000825],"rgb":[0.533333333333333326,0.933333333333333348,0.6],"xyz":[0.464754702514457163,0.686812568727354,0.409458883468961532],"hpluv":[132.362204285947513,228.778132650246619,86.3459670558122525],"hsluv":[132.362204285947513,60.5562348819982645,86.3459670558122525]},"#88eeaa":{"lch":[86.6442747471204768,63.319361027400987,138.776693085718904],"luv":[86.6442747471204768,-47.625461320552418,41.7271723811105204],"rgb":[0.533333333333333326,0.933333333333333348,0.66666666666666663],"xyz":[0.479812395479709664,0.692835645913455,0.488762733085960077],"hpluv":[138.776693085718904,207.981038552319745,86.6442747471204768],"hsluv":[138.776693085718904,61.6537348625427342,86.6442747471204768]},"#88eebb":{"lch":[86.9816911545789679,55.7684583245382299,147.664608842749317],"luv":[86.9816911545789679,-47.1205330954276,29.8291184029711189],"rgb":[0.533333333333333326,0.933333333333333348,0.733333333333333282],"xyz":[0.496949987587046338,0.699690682756389792,0.579020718184601879],"hpluv":[147.664608842749317,188.458500832318975,86.9816911545789679],"hsluv":[147.664608842749317,62.830800627143077,86.9816911545789679]},"#88eecc":{"lch":[87.3589058048410294,49.6608679924305463,159.75715297219557],"luv":[87.3589058048410294,-46.5935415809549696,17.182656741768227],"rgb":[0.533333333333333326,0.933333333333333348,0.8],"xyz":[0.516242363030768092,0.70740763293387865,0.680627228854872],"hpluv":[159.75715297219557,173.371642714007834,87.3589058048410294],"hsluv":[159.75715297219557,64.0722902507549179,87.3589058048410294]},"#88eedd":{"lch":[87.7764209496729,46.2191498548509543,175.132102674355139],"luv":[87.7764209496729,-46.0524373199716166,3.92209512827700335],"rgb":[0.533333333333333326,0.933333333333333348,0.866666666666666696],"xyz":[0.53776068858140158,0.716014963154132156,0.793957076754878],"hpluv":[175.132102674355139,167.447502067072264,87.7764209496729],"hsluv":[175.132102674355139,65.3626972838926434,87.7764209496729]},"#88eeee":{"lch":[88.2345613859691866,46.5524177333431339,192.177050630060933],"luv":[88.2345613859691866,-45.5050097647113958,-9.8194543195231],"rgb":[0.533333333333333326,0.933333333333333348,0.933333333333333348],"xyz":[0.56157286884757629,0.725539835260602173,0.919367892823401256],"hpluv":[192.177050630060933,175.887543813927181,88.2345613859691866],"hsluv":[192.177050630060933,66.6867488369664443,88.2345613859691866]},"#88eeff":{"lch":[88.7334840469836763,50.9233073192915242,208.009521596121829],"luv":[88.7334840469836763,-44.9586380478967271,-23.9145163700465169],"rgb":[0.533333333333333326,0.933333333333333348,1],"xyz":[0.587743917257407711,0.736008254624534897,1.05720208111518299],"hpluv":[208.009521596121829,201.749007974481685,88.7334840469836763],"hsluv":[208.009521596121829,99.9999999999925109,88.7334840469836763]},"#336600":{"lch":[38.2101034680229574,51.4017776291135888,118.130952889189317],"luv":[38.2101034680229574,-24.2353400261634,45.3298029694491902],"rgb":[0.2,0.4,0],"xyz":[0.0611637321335456105,0.10206262662897396,0.0164771525704918292],"hpluv":[118.130952889189317,170.702252266418213,38.2101034680229574],"hsluv":[118.130952889189317,100.000000000002288,38.2101034680229574]},"#336611":{"lch":[38.2816545292110959,48.9828222693822468,119.470954908934345],"luv":[38.2816545292110959,-24.0986808399199681,42.6447002480913682],"rgb":[0.2,0.4,0.0666666666666666657],"xyz":[0.0621753976331827357,0.102467292828828813,0.021805257535247459],"hpluv":[119.470954908934345,162.365005406289157,38.2816545292110959],"hsluv":[119.470954908934345,93.5286374368429,38.2816545292110959]},"#336622":{"lch":[38.4137944304132617,44.7307250918699282,122.230818066602779],"luv":[38.4137944304132617,-23.8562978467226365,37.8380076152656173],"rgb":[0.2,0.4,0.133333333333333331],"xyz":[0.0640507557716597509,0.103217436084219627,0.0316821437312266585],"hpluv":[122.230818066602779,147.760399550800031,38.4137944304132617],"hsluv":[122.230818066602779,81.994947572555219,38.4137944304132617]},"#336633":{"lch":[38.6299730126545171,38.3921679396875817,127.715012949239437],"luv":[38.6299730126545171,-23.4858075099586969,30.3706339201924216],"rgb":[0.2,0.4,0.2],"xyz":[0.0671385065041174844,0.10445253637720274,0.0479442975888378],"hpluv":[127.715012949239437,126.112332565807833,38.6299730126545171],"hsluv":[127.715012949239437,64.2136550115152,38.6299730126545171]},"#336644":{"lch":[38.9390987599147635,30.7877900918170191,138.353415806708398],"luv":[38.9390987599147635,-23.0064236741332095,20.4595329483365589],"rgb":[0.2,0.4,0.266666666666666663],"xyz":[0.0715965017483363719,0.10623573447489032,0.0714230725417244472],"hpluv":[138.353415806708398,100.330262339301328,38.9390987599147635],"hsluv":[138.353415806708398,66.1490613915476899,38.9390987599147635]},"#336655":{"lch":[39.3471830293532108,24.0314899024670439,159.111050143656939],"luv":[39.3471830293532108,-22.4519783641565418,8.56861566811244479],"rgb":[0.2,0.4,0.333333333333333315],"xyz":[0.077558915787698357,0.108620700090635153,0.102825119815698349],"hpluv":[159.111050143656939,77.5008343503898089,39.3471830293532108],"hsluv":[159.111050143656939,68.4324421599544337,39.3471830293532108]},"#336666":{"lch":[39.8577781510875653,22.3660784387423632,192.177050630061],"luv":[39.8577781510875653,-21.8628519700770774,-4.71775036033837925],"rgb":[0.2,0.4,0.4],"xyz":[0.0851439115612065422,0.111654698400038471,0.142772764222842297],"hpluv":[192.177050630061,71.205917149352544,39.8577781510875653],"hsluv":[192.177050630061,70.9271962998489727,39.8577781510875653]},"#336677":{"lch":[40.4722660639059,28.403364995264031,221.483563289625266],"luv":[40.4722660639059,-21.2782609928981294,-18.8145356618838697],"rgb":[0.2,0.4,0.466666666666666674],"xyz":[0.0944579245814084478,0.115380303608119281,0.191826566129240206],"hpluv":[221.483563289625266,89.0536244466218534,40.4722660639059],"hsluv":[221.483563289625266,73.4989606489913,40.4722660639059]},"#336688":{"lch":[41.1901179582142731,39.1584560294521253,238.034471274574031],"luv":[41.1901179582142731,-20.7308371309926542,-33.2207325394668516],"rgb":[0.2,0.4,0.533333333333333326],"xyz":[0.105598341683352276,0.119836470448896878,0.250499429532812401],"hpluv":[238.034471274574031,120.634589470818128,41.1901179582142731],"hsluv":[238.034471274574031,76.0346320246428746,41.1901179582142731]},"#336699":{"lch":[42.0091634944821948,51.6886413393569626,246.942440261812],"luv":[42.0091634944821948,-20.2441498032976277,-47.5593318103852951],"rgb":[0.2,0.4,0.6],"xyz":[0.118655305792425,0.12505925609252605,0.31926610717393028],"hpluv":[246.942440261812,156.131455895945,42.0091634944821948],"hsluv":[246.942440261812,78.4511744564818514,42.0091634944821948]},"#3366aa":{"lch":[42.9258754740709847,64.6951641030825,252.148217293940775],"luv":[42.9258754740709847,-19.832670948043944,-61.5802681172418218],"rgb":[0.2,0.4,0.66666666666666663],"xyz":[0.133712998757677531,0.131082333278627144,0.398569956790928881],"hpluv":[252.148217293940775,191.245834212653307,42.9258754740709847],"hsluv":[252.148217293940775,80.6959595489171,42.9258754740709847]},"#3366bb":{"lch":[43.9356615222631106,77.6311657782158164,255.449757662516049],"luv":[43.9356615222631106,-19.5031901130623,-75.1413566253536374],"rgb":[0.2,0.4,0.733333333333333282],"xyz":[0.150850590865014178,0.137937370121561903,0.488827941889570627],"hpluv":[255.449757662516049,224.211696450950683,43.9356615222631106],"hsluv":[255.449757662516049,82.7420790911240402,43.9356615222631106]},"#3366cc":{"lch":[45.0331492258045287,90.2591849706621332,257.681278432902445],"luv":[45.0331492258045287,-19.2567634880452658,-88.1810497302775786],"rgb":[0.2,0.4,0.8],"xyz":[0.170142966308735932,0.145654320299050705,0.590434452559840839],"hpluv":[257.681278432902445,254.330482568364204,45.0331492258045287],"hsluv":[257.681278432902445,84.5818015821218694,45.0331492258045287]},"#3366dd":{"lch":[46.2124513047425367,102.485732700579547,259.264483160570819],"luv":[46.2124513047425367,-19.0906003056708045,-100.691977769551045],"rgb":[0.2,0.4,0.866666666666666696],"xyz":[0.191661291859369476,0.154261650519304239,0.703764300459846837],"hpluv":[259.264483160570819,281.412724566330553,46.2124513047425367],"hsluv":[259.264483160570819,86.2202337385041488,46.2124513047425367]},"#3366ee":{"lch":[47.467400384741687,114.289765210034219,260.43068521754094],"luv":[47.467400384741687,-18.99960653492559,-112.699447129445844],"rgb":[0.2,0.4,0.933333333333333348],"xyz":[0.215473472125544213,0.163786522625774256,0.82917511652837006],"hpluv":[260.43068521754094,305.528142270574733,47.467400384741687],"hsluv":[260.43068521754094,89.4216395109538524,47.467400384741687]},"#3366ff":{"lch":[48.7917470574018068,125.686826272807437,261.315666926990161],"luv":[48.7917470574018068,-18.9775194272026404,-124.245853270525785],"rgb":[0.2,0.4,1],"xyz":[0.241644520535375606,0.17425494198970698,0.967009304820151905],"hpluv":[261.315666926990161,326.875761207371056,48.7917470574018068],"hsluv":[261.315666926990161,99.9999999999992184,48.7917470574018068]},"#aaee00":{"lch":[86.8465682321076713,106.130019137569278,108.773889799394041],"luv":[86.8465682321076713,-34.1562767274136,100.483479847491182],"rgb":[0.66666666666666663,0.933333333333333348,0],"xyz":[0.471503904866347523,0.696940089394355811,0.109681215241027807],"hpluv":[108.773889799394041,354.560190530248747,86.8465682321076713],"hsluv":[108.773889799394041,100.000000000002302,86.8465682321076713]},"#aaee11":{"lch":[86.8664697406872364,105.275413073012288,108.926122010215039],"luv":[86.8664697406872364,-34.1459453835818323,99.5839696515197801],"rgb":[0.66666666666666663,0.933333333333333348,0.0666666666666666657],"xyz":[0.472515570365984627,0.697344755594210719,0.115009320205783444],"hpluv":[108.926122010215039,352.296735211520456,86.8664697406872364],"hsluv":[108.926122010215039,99.0448212343627,86.8664697406872364]},"#aaee22":{"lch":[86.9033414770782286,103.701584155213482,109.21343759479339],"luv":[86.9033414770782286,-34.1269596340241961,97.9253245204656224],"rgb":[0.66666666666666663,0.933333333333333348,0.133333333333333331],"xyz":[0.474390928504461684,0.69809489884960152,0.124886206401762637],"hpluv":[109.21343759479339,348.114419217609168,86.9033414770782286],"hsluv":[109.21343759479339,97.2844700630890742,86.9033414770782286]},"#aaee33":{"lch":[86.9639927659971,101.139559122436452,109.701502859778287],"luv":[86.9639927659971,-34.0961634116812462,95.2190215245081504],"rgb":[0.66666666666666663,0.933333333333333348,0.2],"xyz":[0.47747867923691939,0.699329999142584646,0.141148360259373773],"hpluv":[109.701502859778287,341.266668172598315,86.9639927659971],"hsluv":[109.701502859778287,94.4148698146506,86.9639927659971]},"#aaee44":{"lch":[87.0514332975086091,97.5044422856038864,110.440992284795044],"luv":[87.0514332975086091,-34.052698770047833,91.3648180204122298],"rgb":[0.66666666666666663,0.933333333333333348,0.266666666666666663],"xyz":[0.481936674481138305,0.701113197240272212,0.164627135212260411],"hpluv":[110.440992284795044,331.464832239423686,87.0514332975086091],"hsluv":[110.440992284795044,90.3338544995677353,87.0514332975086091]},"#aaee55":{"lch":[87.1681505263978,92.7597711807761556,111.499860176168639],"luv":[87.1681505263978,-33.9963593100021271,86.3054036730909644],"rgb":[0.66666666666666663,0.933333333333333348,0.333333333333333315],"xyz":[0.48789908852050029,0.703498162856017,0.196029182486234327],"hpluv":[111.499860176168639,318.513853400728863,87.1681505263978],"hsluv":[111.499860176168639,84.9871568734489813,87.1681505263978]},"#aaee66":{"lch":[87.3162499846890086,86.9168013961255923,112.975973936880195],"luv":[87.3162499846890086,-33.9275471197994563,80.0215715377255492],"rgb":[0.66666666666666663,0.933333333333333348,0.4],"xyz":[0.495484084294008476,0.70653216116542028,0.235976826893378289],"hpluv":[112.975973936880195,302.308385752370668,87.3162499846890086],"hsluv":[112.975973936880195,78.3634586897027106,87.3162499846890086]},"#aaee77":{"lch":[87.4975302296396,80.0378594698754853,115.017197938190947],"luv":[87.4975302296396,-33.8472328521792534,72.5287789554594298],"rgb":[0.66666666666666663,0.933333333333333348,0.466666666666666674],"xyz":[0.504798097314210326,0.710257766373501132,0.285030628799776198],"hpluv":[115.017197938190947,282.845349503141222,87.4975302296396],"hsluv":[115.017197938190947,70.4907283307095,87.4975302296396]},"#aaee88":{"lch":[87.7135274362348838,72.2451165326571072,117.856267937731204],"luv":[87.7135274362348838,-33.7569011423620324,63.8735351149597861],"rgb":[0.66666666666666663,0.933333333333333348,0.533333333333333326],"xyz":[0.515938514416154237,0.714713933214278674,0.343703492203348393],"hpluv":[117.856267937731204,260.261444274219798,87.7135274362348838],"hsluv":[117.856267937731204,61.4321883079204412,87.7135274362348838]},"#aaee99":{"lch":[87.9655440812905312,63.7405265694191954,121.874104620002555],"luv":[87.9655440812905312,-33.6584769753751445,54.1291202131068871],"rgb":[0.66666666666666663,0.933333333333333348,0.6],"xyz":[0.528995478525226881,0.719936718857907887,0.412470169844466272],"hpluv":[121.874104620002555,234.922523447188695,87.9655440812905312],"hsluv":[121.874104620002555,51.2814060811362182,87.9655440812905312]},"#aaeeaa":{"lch":[88.2546687059401,54.8509913255605497,127.715012949237604],"luv":[88.2546687059401,-33.5542349686064441,43.3906045713616138],"rgb":[0.66666666666666663,0.933333333333333348,0.66666666666666663],"xyz":[0.544053171490479492,0.725959796044009,0.491774019461464873],"hpluv":[127.715012949237604,207.631017102058365,88.2546687059401],"hsluv":[127.715012949237604,42.8122115000723795,88.2546687059401]},"#aaeebb":{"lch":[88.5817905154621457,46.1299748711590425,136.47329364537066],"luv":[88.5817905154621457,-33.4466969972147226,31.7693726974624511],"rgb":[0.66666666666666663,0.933333333333333348,0.733333333333333282],"xyz":[0.561190763597816056,0.732814832886943712,0.582032004560106619],"hpluv":[136.47329364537066,180.106084736741337,88.5817905154621457],"hsluv":[136.47329364537066,42.5306558804052,88.5817905154621457]},"#aaeecc":{"lch":[88.947610994722524,38.5659339652702471,149.820563383504265],"luv":[88.947610994722524,-33.3385252257337896,19.3874701388989088],"rgb":[0.66666666666666663,0.933333333333333348,0.8],"xyz":[0.58048313904153781,0.740531783064432569,0.683638515230376775],"hpluv":[149.820563383504265,156.025185046421541,88.947610994722524],"hsluv":[149.820563383504265,43.7743007306855176,88.947610994722524]},"#aaeedd":{"lch":[89.3526538659385636,33.8378115459028308,169.14561851222],"luv":[89.3526538659385636,-33.2324178366612202,6.37211856022751721],"rgb":[0.66666666666666663,0.933333333333333348,0.866666666666666696],"xyz":[0.602001464592171409,0.749139113284686076,0.796968363130382773],"hpluv":[169.14561851222,142.575756051086472,89.3526538659385636],"hsluv":[169.14561851222,45.7128350403065866,89.3526538659385636]},"#aaeeee":{"lch":[89.797274219494,33.893604395025335,192.177050630060734],"luv":[89.797274219494,-33.1310138990311174,-7.14928925898844092],"rgb":[0.66666666666666663,0.933333333333333348,0.933333333333333348],"xyz":[0.625813644858346119,0.758663985391156093,0.922379179198906],"hpluv":[192.177050630060734,149.574468983420843,89.797274219494],"hsluv":[192.177050630060734,47.7079369778472326,89.797274219494]},"#aaeeff":{"lch":[90.2816673401601406,39.1749897548907384,212.508271358442045],"luv":[90.2816673401601406,-33.0368122621910558,-21.0534761464356919],"rgb":[0.66666666666666663,0.933333333333333348,1],"xyz":[0.65198469326817754,0.769132404755088817,1.06021336749068773],"hpluv":[212.508271358442045,182.211685385120148,90.2816673401601406],"hsluv":[212.508271358442045,99.9999999999910898,90.2816673401601406]},"#88ff00":{"lch":[90.2073775103659727,121.530167505498795,118.25137340908573],"luv":[90.2073775103659727,-57.5251845782800331,107.053420090856534],"rgb":[0.533333333333333326,1,0],"xyz":[0.459115501285251582,0.767520684123151,0.12395405300874715],"hpluv":[118.25137340908573,560.639311859311,90.2073775103659727],"hsluv":[118.25137340908573,100.00000000000226,90.2073775103659727]},"#88ff11":{"lch":[90.2260397586701828,120.75410845816802,118.424372307304225],"luv":[90.2260397586701828,-57.4787561773275684,106.196738640291272],"rgb":[0.533333333333333326,1,0.0666666666666666657],"xyz":[0.460127166784888686,0.767925350323005906,0.129282157973502787],"hpluv":[118.424372307304225,558.207032378019221,90.2260397586701828],"hsluv":[118.424372307304225,99.9999999999909335,90.2260397586701828]},"#88ff22":{"lch":[90.260617257984066,119.32542599803422,118.749452026898098],"luv":[90.260617257984066,-57.393189210317729,104.616342518179295],"rgb":[0.533333333333333326,1,0.133333333333333331],"xyz":[0.462002524923365743,0.768675493578396707,0.139159044169481966],"hpluv":[118.749452026898098,553.71568515647823,90.260617257984066],"hsluv":[118.749452026898098,99.9999999999907772,90.260617257984066]},"#88ff33":{"lch":[90.3174996442954665,117.001153508636776,119.297411154505227],"luv":[90.3174996442954665,-57.253701051451273,102.035697862378711],"rgb":[0.533333333333333326,1,0.2],"xyz":[0.465090275655823449,0.769910593871379834,0.155421198027093116],"hpluv":[119.297411154505227,546.370637823869743,90.3174996442954665],"hsluv":[119.297411154505227,99.9999999999907914,90.3174996442954665]},"#88ff44":{"lch":[90.399517385893148,113.706822542904789,120.117552028257023],"luv":[90.399517385893148,-57.0553255590242614,98.3561452994036074],"rgb":[0.533333333333333326,1,0.266666666666666663],"xyz":[0.469548270900042364,0.7716937919690674,0.178899972979979754],"hpluv":[120.117552028257023,535.877566613280692,90.399517385893148],"hsluv":[120.117552028257023,99.9999999999907914,90.399517385893148]},"#88ff55":{"lch":[90.5090160073098389,109.413894688598035,121.271093020798972],"luv":[90.5090160073098389,-56.7954345723420317,93.518334901057969],"rgb":[0.533333333333333326,1,0.333333333333333315],"xyz":[0.475510684939404349,0.774078757584812149,0.21030202025395367],"hpluv":[121.271093020798972,522.05545338002139,90.5090160073098389],"hsluv":[121.271093020798972,99.9999999999906493,90.5090160073098389]},"#88ff66":{"lch":[90.6479884721694,104.139810410505333,122.839359042112989],"luv":[90.6479884721694,-56.4735097148607039,87.4976731851854908],"rgb":[0.533333333333333326,1,0.4],"xyz":[0.483095680712912534,0.777112755894215468,0.250249664661097659],"hpluv":[122.839359042112989,504.839052288882328,90.6479884721694],"hsluv":[122.839359042112989,99.9999999999905498,90.6479884721694]},"#88ff77":{"lch":[90.8181461195308515,97.9515013566305441,124.934550835890477],"luv":[90.8181461195308515,-56.0909812525741813,80.3012978733306],"rgb":[0.533333333333333326,1,0.466666666666666674],"xyz":[0.49240969373311444,0.780838361102296319,0.299303466567495513],"hpluv":[124.934550835890477,484.301391198376791,90.8181461195308515],"hsluv":[124.934550835890477,99.9999999999904,90.8181461195308515]},"#88ff88":{"lch":[91.0209609702079803,90.9725812653771,127.715012949239437],"luv":[91.0209609702079803,-55.6510519447396348,71.9650676337452779],"rgb":[0.533333333333333326,1,0.533333333333333326],"xyz":[0.503550110835058295,0.785294527943073861,0.357976329971067708],"hpluv":[127.715012949239437,460.703998076760797,91.0209609702079803],"hsluv":[127.715012949239437,99.9999999999902087,91.0209609702079803]},"#88ff99":{"lch":[91.2576929391802167,83.3964386150156116,131.406800448379954],"luv":[91.2576929391802167,-55.158478848678719,62.5500454417735057],"rgb":[0.533333333333333326,1,0.6],"xyz":[0.51660707494413094,0.790517313586703074,0.426743007612185643],"hpluv":[131.406800448379954,434.595507650037121,91.2576929391802167],"hsluv":[131.406800448379954,99.9999999999900524,91.2576929391802167]},"#88ffaa":{"lch":[91.5294084976530229,75.5094657025462226,136.33125230150921],"luv":[91.5294084976530229,-54.6193101996060264,52.1383770748881048],"rgb":[0.533333333333333326,1,0.66666666666666663],"xyz":[0.531664767909383551,0.796540390772804141,0.506046857229184188],"hpluv":[136.33125230150921,406.99849880976177,91.5294084976530229],"hsluv":[136.33125230150921,99.9999999999897824,91.5294084976530229]},"#88ffbb":{"lch":[91.8369943060547911,67.7301008509963225,142.928263991524119],"luv":[91.8369943060547911,-54.0405872892441,40.8286846067776423],"rgb":[0.533333333333333326,1,0.733333333333333282],"xyz":[0.548802360016720114,0.8033954276157389,0.596304842327826],"hpluv":[142.928263991524119,379.751065707187763,91.8369943060547911],"hsluv":[142.928263991524119,99.9999999999894413,91.8369943060547911]},"#88ffcc":{"lch":[92.1811678623774498,60.665065650155249,151.731515164157571],"luv":[92.1811678623774498,-53.4300279465168941,28.7312078404662543],"rgb":[0.533333333333333326,1,0.8],"xyz":[0.568094735460441869,0.811112377793227757,0.697911352998096146],"hpluv":[151.731515164157571,356.080713038752435,92.1811678623774498],"hsluv":[151.731515164157571,99.9999999999893134,92.1811678623774498]},"#88ffdd":{"lch":[92.5624864174544371,55.1561732277505712,163.177123134509742],"luv":[92.5624864174544371,-52.7957106082625316,15.9629692256241533],"rgb":[0.533333333333333326,1,0.866666666666666696],"xyz":[0.589613061011075468,0.819719708013481263,0.811241200898102144],"hpluv":[163.177123134509742,341.369587308077,92.5624864174544371],"hsluv":[163.177123134509742,99.9999999999887,92.5624864174544371]},"#88ffee":{"lch":[92.9813549493531752,52.2127257219241301,177.098205352907513],"luv":[92.9813549493531752,-52.1457771028834927,2.64322864112605771],"rgb":[0.533333333333333326,1,0.933333333333333348],"xyz":[0.613425241277250177,0.82924458011995128,0.936652016966625367],"hpluv":[177.098205352907513,343.566349205584061,92.9813549493531752],"hsluv":[177.098205352907513,99.9999999999882,92.9813549493531752]},"#88ffff":{"lch":[93.4380337051328524,52.6732939730945162,192.177050630061075],"luv":[93.4380337051328524,-51.4881691068088543,-11.1105508416409933],"rgb":[0.533333333333333326,1,1],"xyz":[0.639596289687081598,0.839712999483884,1.07448620525840721],"hpluv":[192.177050630061075,372.044084252862206,93.4380337051328524],"hsluv":[192.177050630061075,99.9999999999874802,93.4380337051328524]},"#337700":{"lch":[44.0848685544221084,61.4877933810524127,120.932619831412623],"luv":[44.0848685544221084,-31.6065510805688668,52.7425318283298168],"rgb":[0.2,0.466666666666666674,0],"xyz":[0.0796174701869632462,0.138970102735809731,0.0226283985882975332],"hpluv":[120.932619831412623,176.985906279588789,44.0848685544221084],"hsluv":[120.932619831412623,100.000000000002217,44.0848685544221084]},"#337711":{"lch":[44.1431322932100159,59.4532082216814146,121.943929432148849],"luv":[44.1431322932100159,-31.4560442613915434,50.449987584497805],"rgb":[0.2,0.466666666666666674,0.0666666666666666657],"xyz":[0.0806291356866003645,0.139374768935664584,0.0279565035530531664],"hpluv":[121.943929432148849,170.903703930819205,44.1431322932100159],"hsluv":[121.943929432148849,95.223210781581642,44.1431322932100159]},"#337722":{"lch":[44.2508401312458517,55.8308883755444327,123.957293362486936],"luv":[44.2508401312458517,-31.1857277137109214,46.3091619851707605],"rgb":[0.2,0.466666666666666674,0.133333333333333331],"xyz":[0.0825044938250774,0.140124912191055412,0.037833389749032359],"hpluv":[123.957293362486936,160.100373243526178,44.2508401312458517],"hsluv":[123.957293362486936,86.6219708852072,44.2508401312458517]},"#337733":{"lch":[44.4273451577554681,50.2894934834324943,127.715012949239792],"luv":[44.4273451577554681,-30.7638100974309978,39.782171171385329],"rgb":[0.2,0.466666666666666674,0.2],"xyz":[0.0855922445575351271,0.141360012484038511,0.0540955436066435091],"hpluv":[127.715012949239792,143.636966976451419,44.4273451577554681],"hsluv":[127.715012949239792,73.1368174441878409,44.4273451577554681]},"#337744":{"lch":[44.6803728315295743,43.2379901525315873,134.305487238163835],"luv":[44.6803728315295743,-30.2010367205865329,30.9422231494797764],"rgb":[0.2,0.466666666666666674,0.266666666666666663],"xyz":[0.090050239801754,0.143143210581726105,0.0775743185595301477],"hpluv":[134.305487238163835,122.797079037201513,44.6803728315295743],"hsluv":[134.305487238163835,74.2422920898123664,44.6803728315295743]},"#337755":{"lch":[45.0155248592042057,35.7001949681147,145.791078733963843],"luv":[45.0155248592042057,-29.5238129364495734,20.071083439987369],"rgb":[0.2,0.466666666666666674,0.333333333333333315],"xyz":[0.096012653841116,0.145528176197470938,0.108976365833504049],"hpluv":[145.791078733963843,100.634662922797503,45.0155248592042057],"hsluv":[145.791078733963843,75.5860232244433377,45.0155248592042057]},"#337766":{"lch":[45.436632811343884,29.7520619336037022,165.22669317203713],"luv":[45.436632811343884,-28.7685269489331041,7.58663604567268468],"rgb":[0.2,0.466666666666666674,0.4],"xyz":[0.103597649614624171,0.148562174506874228,0.148924010240648025],"hpluv":[165.22669317203713,83.0902864995861847,45.436632811343884],"hsluv":[165.22669317203713,77.1054195363406194,45.436632811343884]},"#337777":{"lch":[45.9459628200325696,28.6191137838588361,192.177050630061018],"luv":[45.9459628200325696,-27.9751968985082726,-6.03672363647301413],"rgb":[0.2,0.466666666666666674,0.466666666666666674],"xyz":[0.11291166263482609,0.152287779714955052,0.197977812147045934],"hpluv":[192.177050630061018,79.0402219352416324,45.9459628200325696],"hsluv":[192.177050630061018,78.7308353184449743,45.9459628200325696]},"#337788":{"lch":[46.5443737533918309,33.948531272854666,216.805091226728479],"luv":[46.5443737533918309,-27.1818468531358306,-20.3383867904182836],"rgb":[0.2,0.466666666666666674,0.533333333333333326],"xyz":[0.124052079736769919,0.156743946555732649,0.256650675550618101],"hpluv":[216.805091226728479,92.5535593562344587,46.5443737533918309],"hsluv":[216.805091226728479,80.3955897349876381,46.5443737533918309]},"#337799":{"lch":[47.2314677007312085,43.7891028043947799,232.889035089769209],"luv":[47.2314677007312085,-26.4206199262946413,-34.9204290798973105],"rgb":[0.2,0.466666666666666674,0.6],"xyz":[0.137109043845842632,0.161966732199361807,0.325417353191736],"hpluv":[232.889035089769209,117.645124104106614,47.2314677007312085],"hsluv":[232.889035089769209,82.0429045074046144,47.2314677007312085]},"#3377aa":{"lch":[48.0057466772197472,55.756363166772573,242.534195481556935],"luv":[48.0057466772197472,-25.7159019754829359,-49.471854818395343],"rgb":[0.2,0.466666666666666674,0.66666666666666663],"xyz":[0.15216673681109516,0.167989809385462902,0.404721202808734581],"hpluv":[242.534195481556935,147.380673097935755,48.0057466772197472],"hsluv":[242.534195481556935,83.6292827510673078,48.0057466772197472]},"#3377bb":{"lch":[48.8647777502949623,68.5281348418467076,248.528316013511841],"luv":[48.8647777502949623,-25.0841318464231762,-63.7721851155626],"rgb":[0.2,0.466666666666666674,0.733333333333333282],"xyz":[0.169304328918431835,0.17484484622839766,0.494979187907376328],"hpluv":[248.528316013511841,177.955866809146045,48.8647777502949623],"hsluv":[248.528316013511841,85.1249045257873,48.8647777502949623]},"#3377cc":{"lch":[49.8053630390326845,81.4640551302433096,252.471981644912631],"luv":[49.8053630390326845,-24.5347040681135518,-77.6816617648812553],"rgb":[0.2,0.466666666666666674,0.8],"xyz":[0.188596704362153561,0.182561796405886462,0.596585698577646539],"hpluv":[252.471981644912631,207.553107999557341,49.8053630390326845],"hsluv":[252.471981644912631,86.5120902950020678,49.8053630390326845]},"#3377dd":{"lch":[50.8237086019957047,94.2508792352234,255.202895611269554],"luv":[50.8237086019957047,-24.0713820337122506,-91.1251710758325],"rgb":[0.2,0.466666666666666674,0.866666666666666696],"xyz":[0.210115029912787105,0.19116912662614,0.709915546477652537],"hpluv":[255.202895611269554,235.319753343529385,50.8237086019957047],"hsluv":[255.202895611269554,87.7828608732328,50.8237086019957047]},"#3377ee":{"lch":[51.9155858415672498,106.73807185779232,257.174602046687482],"luv":[51.9155858415672498,-23.6937959642247655,-104.075069141100855],"rgb":[0.2,0.466666666666666674,0.933333333333333348],"xyz":[0.233927210178961842,0.200693998732610041,0.83532636254617576],"hpluv":[257.174602046687482,260.892095272406607,51.9155858415672498],"hsluv":[257.174602046687482,88.9363454602875692,51.9155858415672498]},"#3377ff":{"lch":[53.0764799083082721,118.861737619173724,258.646767383963777],"luv":[53.0764799083082721,-23.3987809317452253,-116.535873106771263],"rgb":[0.2,0.466666666666666674,1],"xyz":[0.260098258588793207,0.211162418096542737,0.973160550837957605],"hpluv":[258.646767383963777,284.170694785425781,53.0764799083082721],"hsluv":[258.646767383963777,99.9999999999990763,53.0764799083082721]},"#aaff00":{"lch":[91.7137860391432156,115.080534629040301,111.722667154579099],"luv":[91.7137860391432156,-42.5929524944460596,106.908230966149674],"rgb":[0.66666666666666663,1,0],"xyz":[0.523356277296021299,0.800644834253704918,0.126965339384251918],"hpluv":[111.722667154579099,635.020942157405898,91.7137860391432156],"hsluv":[111.722667154579099,100.000000000002359,91.7137860391432156]},"#aaff11":{"lch":[91.7319300755291209,114.302910123776968,111.867287470019974],"luv":[91.7319300755291209,-42.5730312099484394,106.078707931238455],"rgb":[0.66666666666666663,1,0.0666666666666666657],"xyz":[0.524367942795658459,0.801049500453559826,0.132293444349007555],"hpluv":[111.867287470019974,632.205251281199821,91.7319300755291209],"hsluv":[111.867287470019974,99.9999999999902087,91.7319300755291209]},"#aaff22":{"lch":[91.76554812600844,112.870020698142184,112.139393409643191],"luv":[91.76554812600844,-42.5363318976714595,104.548084827461963],"rgb":[0.66666666666666663,1,0.133333333333333331],"xyz":[0.526243300934135405,0.801799643708950627,0.142170330544986734],"hpluv":[112.139393409643191,626.996151229530483,91.76554812600844],"hsluv":[112.139393409643191,99.9999999999901,91.76554812600844]},"#aaff33":{"lch":[91.8208541183991116,110.535111156119868,112.599114759903571],"luv":[91.8208541183991116,-42.4765495373732875,102.047800258971023],"rgb":[0.66666666666666663,1,0.2],"xyz":[0.529331051666593222,0.803034744001933753,0.158432484402597884],"hpluv":[112.599114759903571,618.449193227995465,91.8208541183991116],"hsluv":[112.599114759903571,99.9999999999900808,91.8208541183991116]},"#aaff44":{"lch":[91.9006031807778498,107.217215837920833,113.289723447654],"luv":[91.9006031807778498,-42.3916247074254713,98.4808688360338],"rgb":[0.66666666666666663,1,0.266666666666666663],"xyz":[0.533789046910812082,0.80481794209962132,0.181911259355484523],"hpluv":[113.289723447654,606.175591066234915,91.9006031807778498],"hsluv":[113.289723447654,99.9999999999900808,91.9006031807778498]},"#aaff55":{"lch":[92.0070808640835338,102.877427982590888,114.266397603879824],"luv":[92.0070808640835338,-42.2805422001356135,93.7876374559873796],"rgb":[0.66666666666666663,1,0.333333333333333315],"xyz":[0.539751460950174,0.807202907715366069,0.213313306629458438],"hpluv":[114.266397603879824,589.885725054723707,92.0070808640835338],"hsluv":[114.266397603879824,99.9999999999897,92.0070808640835338]},"#aaff66":{"lch":[92.142232175119787,97.5178938455906,115.604656391492952],"luv":[92.142232175119787,-42.1432392632638226,87.9413839126902559],"rgb":[0.66666666666666663,1,0.4],"xyz":[0.547336456723682252,0.810236906024769388,0.2532609510366024],"hpluv":[115.604656391492952,569.381090837871511,92.142232175119787],"hsluv":[115.604656391492952,99.9999999999898,92.142232175119787]},"#aaff77":{"lch":[92.3077308115560555,91.1840841453542197,117.412488820025033],"luv":[92.3077308115560555,-41.9805406670279666,80.9454841651530899],"rgb":[0.66666666666666663,1,0.466666666666666674],"xyz":[0.556650469743884102,0.813962511232850239,0.302314752943000309],"hpluv":[117.412488820025033,544.56608764574878,92.3077308115560555],"hsluv":[117.412488820025033,99.9999999999895692,92.3077308115560555]},"#aaff88":{"lch":[92.5050204995058749,83.9705472319660657,119.849478645386625],"luv":[92.5050204995058749,-41.7940850853900727,72.8306752289927601],"rgb":[0.66666666666666663,1,0.533333333333333326],"xyz":[0.567790886845828,0.818418678073627781,0.360987616346572504],"hpluv":[119.849478645386625,515.487838204951345,92.5050204995058749],"hsluv":[119.849478645386625,99.9999999999892708,92.5050204995058749]},"#aaff99":{"lch":[92.7353415895377,76.0327408171719,123.158131820453576],"luv":[92.7353415895377,-41.5862309318022625,63.6518897838709137],"rgb":[0.66666666666666663,1,0.6],"xyz":[0.580847850954900657,0.823641463717257,0.429754293987690383],"hpluv":[123.158131820453576,482.430180447041607,92.7353415895377],"hsluv":[123.158131820453576,99.9999999999891145,92.7353415895377]},"#aaffaa":{"lch":[92.9997492696274435,67.6109506527765802,127.715012949238414],"luv":[92.9997492696274435,-41.3599402641421108,53.4845397242865488],"rgb":[0.66666666666666663,1,0.66666666666666663],"xyz":[0.595905543920153269,0.829664540903358061,0.509058143604689],"hpluv":[127.715012949238414,446.121940639593902,92.9997492696274435],"hsluv":[127.715012949238414,99.9999999999887308,92.9997492696274435]},"#aaffbb":{"lch":[93.2991268167713201,59.0781485982363,134.10730048328],"luv":[93.2991268167713201,-41.1186450338129887,42.4203332421914823],"rgb":[0.66666666666666663,1,0.733333333333333282],"xyz":[0.613043136027489832,0.836519577746292819,0.599316128703330731],"hpluv":[134.10730048328,408.190288953842469,93.2991268167713201],"hsluv":[134.10730048328,99.9999999999883613,93.2991268167713201]},"#aaffcc":{"lch":[93.6341958749929404,51.0306218960527929,143.208028901391231],"luv":[93.6341958749929404,-40.8661030238149436,30.5628204644932246],"rgb":[0.66666666666666663,1,0.8],"xyz":[0.632335511471211587,0.844236527923781677,0.700922639373600886],"hpluv":[143.208028901391231,372.11656739719416,93.6341958749929404],"hsluv":[143.208028901391231,99.9999999999879492,93.6341958749929404]},"#aaffdd":{"lch":[94.005524978734,44.4262644213682094,156.066165366624773],"luv":[94.005524978734,-40.6062520520773305,18.0229094410556279],"rgb":[0.66666666666666663,1,0.866666666666666696],"xyz":[0.653853837021845186,0.852843858144035183,0.814252487273606884],"hpluv":[156.066165366624773,345.018188987702331,94.005524978734],"hsluv":[156.066165366624773,99.999999999986926,94.005524978734]},"#aaffee":{"lch":[94.4135370960349576,40.641316399200953,173.054449077896464],"luv":[94.4135370960349576,-40.3430708217409446,4.91459411670529711],"rgb":[0.66666666666666663,1,0.933333333333333348],"xyz":[0.677666017288019895,0.8623687302505052,0.939663303342130107],"hpluv":[173.054449077896464,339.745490646316398,94.4135370960349576],"hsluv":[173.054449077896464,99.9999999999862865,94.4135370960349576]},"#aaffff":{"lch":[94.8585166918378633,41.0030022313427764,192.177050630060705],"luv":[94.8585166918378633,-40.0804535568370639,-8.64889788711415264],"rgb":[0.66666666666666663,1,1],"xyz":[0.703837065697851316,0.872837149614437924,1.07749749163391195],"hpluv":[192.177050630060705,373.711432895013843,94.8585166918378633],"hsluv":[192.177050630060705,99.9999999999852491,94.8585166918378633]},"#338800":{"lch":[49.8717454753508918,71.2965557675853461,122.69380865426514],"luv":[49.8717454753508918,-38.5107906934601871,60.0009821960016509],"rgb":[0.2,0.533333333333333326,0],"xyz":[0.101689839911933699,0.183114842185751275,0.0299858551632874795],"hpluv":[122.69380865426514,181.406693814272955,49.8717454753508918],"hsluv":[122.69380865426514,100.000000000002245,49.8717454753508918]},"#338811":{"lch":[49.9202331837381053,69.5570511040883162,123.47043015419375],"luv":[49.9202331837381053,-38.361169332567485,58.0224443274741475],"rgb":[0.2,0.533333333333333326,0.0666666666666666657],"xyz":[0.102701505411570818,0.183519508385606128,0.0353139601280431092],"hpluv":[123.47043015419375,176.808802540010674,49.9202331837381053],"hsluv":[123.47043015419375,96.3624965314944291,49.9202331837381053]},"#338822":{"lch":[50.0099282713402,66.4316762124597915,124.985970570646856],"luv":[50.0099282713402,-38.0903182709230137,54.426971791721833],"rgb":[0.2,0.533333333333333326,0.133333333333333331],"xyz":[0.104576863550047847,0.184269651640996956,0.0451908463240223088],"hpluv":[124.985970570646856,168.561468288507513,50.0099282713402],"hsluv":[124.985970570646856,89.7672781446156876,50.0099282713402]},"#338833":{"lch":[50.1570811029395429,61.5658815699287487,127.715012949239991],"luv":[50.1570811029395429,-37.6619639194057143,48.7025076070614134],"rgb":[0.2,0.533333333333333326,0.2],"xyz":[0.10766461428250558,0.185504751933980055,0.061453000181633452],"hpluv":[127.715012949239991,155.756856758587162,50.1570811029395429],"hsluv":[127.715012949239991,79.3080015418374416,50.1570811029395429]},"#338844":{"lch":[50.3683877843642165,55.1600753981733334,132.238380805917416],"luv":[50.3683877843642165,-37.0795228857786441,40.8380080377971524],"rgb":[0.2,0.533333333333333326,0.266666666666666663],"xyz":[0.112122609526724454,0.187287950031667649,0.0849317751345200905],"hpluv":[132.238380805917416,138.965222681713072,50.3683877843642165],"hsluv":[132.238380805917416,79.9701630926319922,50.3683877843642165]},"#338855":{"lch":[50.648916869713247,47.7759983149871488,139.558488969535745],"luv":[50.648916869713247,-36.3608093871966886,30.990926990033774],"rgb":[0.2,0.533333333333333326,0.333333333333333315],"xyz":[0.118085023566086453,0.189672915647412482,0.116333822408493992],"hpluv":[139.558488969535745,119.695806374350084,50.648916869713247],"hsluv":[139.558488969535745,80.7922551095087726,50.648916869713247]},"#338866":{"lch":[51.0024095938582747,40.50700493167151,151.3112863122482],"luv":[51.0024095938582747,-35.5343950908498,19.4454162738124445],"rgb":[0.2,0.533333333333333326,0.4],"xyz":[0.125670019339594624,0.192706913956815773,0.156281466815637954],"hpluv":[151.3112863122482,100.78102351571394,51.0024095938582747],"hsluv":[151.3112863122482,81.7453783644028249,51.0024095938582747]},"#338877":{"lch":[51.4314426692160964,35.2513066472794421,169.271441625736571],"luv":[51.4314426692160964,-34.635118433957949,6.56225505495134165],"rgb":[0.2,0.533333333333333326,0.466666666666666674],"xyz":[0.134984032359796557,0.196432519164896596,0.205335268722035863],"hpluv":[169.271441625736571,86.9732781104886499,51.4314426692160964],"hsluv":[169.271441625736571,82.7938072280844182,51.4314426692160964]},"#338888":{"lch":[51.9375397067754818,34.4751674240590873,192.177050630061075],"luv":[51.9375397067754818,-33.6994920276336458,-7.27196025816705482],"rgb":[0.2,0.533333333333333326,0.533333333333333326],"xyz":[0.146124449461740358,0.200888686005674194,0.26400813212560803],"hpluv":[192.177050630061075,84.229522237058,51.9375397067754818],"hsluv":[192.177050630061075,83.8998231764876579,51.9375397067754818]},"#338899":{"lch":[52.5212658253882267,39.2899369869163,213.503984387174484],"luv":[52.5212658253882267,-32.7618132949538179,-21.68784770470414],"rgb":[0.2,0.533333333333333326,0.6],"xyz":[0.159181413570813085,0.206111471649303352,0.332774809766725965],"hpluv":[213.503984387174484,94.9260641143146415,52.5212658253882267],"hsluv":[213.503984387174484,85.0278067813718081,52.5212658253882267]},"#3388aa":{"lch":[53.1823203703714142,48.3403865273999855,228.783963154055925],"luv":[53.1823203703714142,-31.8514822326876157,-36.3631138545534753],"rgb":[0.2,0.533333333333333326,0.66666666666666663],"xyz":[0.174239106536065613,0.212134548835404446,0.412078659383724566],"hpluv":[228.783963154055925,115.340588590435829,53.1823203703714142],"hsluv":[228.783963154055925,86.1470646970195588,53.1823203703714142]},"#3388bb":{"lch":[53.9196335036436238,59.7107302664646866,238.732819450220632],"luv":[53.9196335036436238,-30.9916356267104831,-51.0381213421469],"rgb":[0.2,0.533333333333333326,0.733333333333333282],"xyz":[0.191376698643402288,0.218989585678339205,0.502336644482366257],"hpluv":[238.732819450220632,140.522147305520861,53.9196335036436238],"hsluv":[238.732819450220632,87.2332789223686262,53.9196335036436238]},"#3388cc":{"lch":[54.7314676322995268,72.1439684856409826,245.254262274299492],"luv":[54.7314676322995268,-30.1989009668194051,-65.5192992121664446],"rgb":[0.2,0.533333333333333326,0.8],"xyz":[0.210669074087124014,0.226706535855828,0.603943155152636413],"hpluv":[245.254262274299492,167.263916186866481,54.7314676322995268],"hsluv":[245.254262274299492,88.2687848362996,54.7314676322995268]},"#3388dd":{"lch":[55.6155220749816692,84.9545141717074728,249.692682338977761],"luv":[55.6155220749816692,-29.4839257322198733,-79.6741338300441697],"rgb":[0.2,0.533333333333333326,0.866666666666666696],"xyz":[0.232187399637757558,0.23531386607608154,0.717273003052642411],"hpluv":[249.692682338977761,193.833915517882872,55.6155220749816692],"hsluv":[249.692682338977761,89.2420383366021923,55.6155220749816692]},"#3388ee":{"lch":[56.5690381344568323,97.7754852991564434,252.83721230554255],"luv":[56.5690381344568323,-28.8523290085395629,-93.4215640859675602],"rgb":[0.2,0.533333333333333326,0.933333333333333348],"xyz":[0.255999579903932295,0.244838738182551585,0.842683819121165634],"hpluv":[252.83721230554255,219.32619909500923,56.5690381344568323],"hsluv":[252.83721230554255,90.146641202583325,56.5690381344568323]},"#3388ff":{"lch":[57.5889013880528182,110.410831334845568,255.145344615238457],"luv":[57.5889013880528182,-28.3057941013035759,-106.720821287817699],"rgb":[0.2,0.533333333333333326,1],"xyz":[0.282170628313763716,0.255307157546484254,0.980518007412947479],"hpluv":[255.145344615238457,243.283252172694205,57.5889013880528182],"hsluv":[255.145344615238457,99.9999999999988489,57.5889013880528182]},"#339900":{"lch":[55.5688440832231,80.82821284508357,123.866754715109295],"luv":[55.5688440832231,-45.0426054376311527,67.1145564473163603],"rgb":[0.2,0.6,0],"xyz":[0.127559440364401172,0.23485404309068697,0.0386090553141097345],"hpluv":[123.866754715109295,184.574176757765827,55.5688440832231],"hsluv":[123.866754715109295,100.00000000000226,55.5688440832231]},"#339911":{"lch":[55.6099261578814463,79.3206910999707446,124.475743785225987],"luv":[55.6099261578814463,-44.9000555787807372,65.3892731692238556],"rgb":[0.2,0.6,0.0666666666666666657],"xyz":[0.128571105864038304,0.235258709290541823,0.0439371602788653642],"hpluv":[124.475743785225987,180.997883954149785,55.6099261578814463],"hsluv":[124.475743785225987,97.1571693172972601,55.6099261578814463]},"#339922":{"lch":[55.6859569378682124,76.5942224429011418,125.649114872203555],"luv":[55.6859569378682124,-44.6406262928881503,62.240576763164114],"rgb":[0.2,0.6,0.133333333333333331],"xyz":[0.130446464002515305,0.236008852545932651,0.0538140464748445638],"hpluv":[125.649114872203555,174.537861698610129,55.6859569378682124],"hsluv":[125.649114872203555,91.9778413864117113,55.6859569378682124]},"#339933":{"lch":[55.8107903110879278,72.2971425020977563,127.715012949240148],"luv":[55.8107903110879278,-44.2266447414942618,57.191613973364035],"rgb":[0.2,0.6,0.2],"xyz":[0.133534214734973067,0.23724395283891575,0.070076200332455707],"hpluv":[127.715012949240148,164.377468022308932,55.8107903110879278],"hsluv":[127.715012949240148,83.6974291768240874,55.8107903110879278]},"#339944":{"lch":[55.9902586993563602,66.5149718399310501,131.021169741293448],"luv":[55.9902586993563602,-43.6562926505411042,50.1833597009719128],"rgb":[0.2,0.6,0.266666666666666663],"xyz":[0.137992209979191927,0.239027150936603344,0.0935549752853423455],"hpluv":[131.021169741293448,150.746162046382238,55.9902586993563602],"hsluv":[131.021169741293448,84.1112663411127386,55.9902586993563602]},"#339955":{"lch":[56.2289015921924,59.572114639014508,136.121417864766215],"luv":[56.2289015921924,-42.9401916463123783,41.2913645202220323],"rgb":[0.2,0.6,0.333333333333333315],"xyz":[0.143954624018553912,0.241412116552348177,0.124957022559316261],"hpluv":[136.121417864766215,134.438216783596687,56.2289015921924],"hsluv":[136.121417864766215,84.6329955380286236,56.2289015921924]},"#339966":{"lch":[56.5302268191487514,52.1043875673731947,143.898662284026642],"luv":[56.5302268191487514,-42.0991012865816785,30.700698275986678],"rgb":[0.2,0.6,0.4],"xyz":[0.151539619792062097,0.244446114861751468,0.164904666966460223],"hpluv":[143.898662284026642,116.958797396111564,56.5302268191487514],"hsluv":[143.898662284026642,85.2491724948614689,56.5302268191487514]},"#339977":{"lch":[56.8968484427531678,45.1992705399313124,155.596009487994166],"luv":[56.8968484427531678,-41.1609366004351855,18.6748856895258584],"rgb":[0.2,0.6,0.466666666666666674],"xyz":[0.160853632812264,0.248171720069832291,0.213958468872858132],"hpluv":[155.596009487994166,100.805108459810327,56.8968484427531678],"hsluv":[155.596009487994166,85.9413862611579873,56.8968484427531678]},"#339988":{"lch":[57.330574208667926,40.5351988689668303,172.17134267960472],"luv":[57.330574208667926,-40.1574041849560217,5.52134371985359085],"rgb":[0.2,0.6,0.533333333333333326],"xyz":[0.171994049914207858,0.252627886910609889,0.272631332276430272],"hpluv":[172.17134267960472,89.7191897797317,57.330574208667926],"hsluv":[172.17134267960472,86.6885468018933665,57.330574208667926]},"#339999":{"lch":[57.8324724587931627,40.0212192418936539,192.177050630061103],"luv":[57.8324724587931627,-39.1207602326874735,-8.44180717763071],"rgb":[0.2,0.6,0.6],"xyz":[0.185051014023280558,0.257850672554239047,0.341398009917548206],"hpluv":[192.177050630061103,87.8128114771670312,57.8324724587931627],"hsluv":[192.177050630061103,87.4690863712762194,57.8324724587931627]},"#3399aa":{"lch":[58.4029323329449568,44.4430671798845367,211.035048784986628],"luv":[58.4029323329449568,-38.0811346860811923,-22.913170914918652],"rgb":[0.2,0.6,0.66666666666666663],"xyz":[0.200108706988533114,0.263873749740340169,0.420701859534546807],"hpluv":[211.035048784986628,96.5625435737210154,58.4029323329449568],"hsluv":[211.035048784986628,88.2627766327166,58.4029323329449568]},"#3399bb":{"lch":[59.0417237507550823,52.8166449153409445,225.431517702392057],"luv":[59.0417237507550823,-37.064675814253917,-37.6272213549907448],"rgb":[0.2,0.6,0.733333333333333282],"xyz":[0.217246299095869733,0.270728786583274927,0.510959844633188554],"hpluv":[225.431517702392057,113.514439229551684,59.0417237507550823],"hsluv":[225.431517702392057,89.0519907331041196,59.0417237507550823]},"#3399cc":{"lch":[59.7480598269018373,63.5982744854026194,235.423336237979868],"luv":[59.7480598269018373,-36.0925574956591646,-52.364757336811472],"rgb":[0.2,0.6,0.8],"xyz":[0.236538674539591487,0.278445736760763729,0.612566355303458709],"hpluv":[235.423336237979868,135.070607162709791,59.7480598269018373],"hsluv":[235.423336237979868,89.8223822716188636,59.7480598269018373]},"#3399dd":{"lch":[60.5206621982976856,75.6357863680042186,242.281144195606601],"luv":[60.5206621982976856,-35.1807304699237235,-66.9558689220665286],"rgb":[0.2,0.6,0.866666666666666696],"xyz":[0.25805700009022503,0.287053066981017235,0.725896203203464707],"hpluv":[242.281144195606601,158.58531958905732,60.5206621982976856],"hsluv":[242.281144195606601,90.5630616197976508,60.5206621982976856]},"#3399ee":{"lch":[61.3578284965586818,88.2341933332873083,247.095644636752098],"luv":[61.3578284965586818,-34.3402162860227946,-81.277441019049661],"rgb":[0.2,0.6,0.933333333333333348],"xyz":[0.28186918035639974,0.296577939087487252,0.85130701927198793],"hpluv":[247.095644636752098,182.476215369006297,61.3578284965586818],"hsluv":[247.095644636752098,91.2664056494933504,61.3578284965586818]},"#3399ff":{"lch":[62.2575005434706554,100.992674077385175,250.5808182685887],"luv":[62.2575005434706554,-33.5777301361133595,-95.2473425151972],"rgb":[0.2,0.6,1],"xyz":[0.308040228766231161,0.30704635845142,0.989141207563769775],"hpluv":[250.5808182685887,205.84367033720622,62.2575005434706554],"hsluv":[250.5808182685887,99.9999999999985789,62.2575005434706554]},"#220000":{"lch":[3.07250446727781679,10.3329293192956264,12.1770506300617765],"luv":[3.07250446727781679,10.1004431663672367,2.17955870775360072],"rgb":[0.133333333333333331,0,0],"xyz":[0.00659672420629513,0.00340143591887099878,0.000309221447170077699],"hpluv":[12.1770506300617765,426.746789183125429,3.07250446727781679],"hsluv":[12.1770506300617765,100.000000000002217,3.07250446727781679]},"#220011":{"lch":[3.43803794680403607,8.12070857757986353,344.488545895364155],"luv":[3.43803794680403607,7.82492808895188574,-2.17172931202554675],"rgb":[0.133333333333333331,0,0.0666666666666666657],"xyz":[0.00760838970593225201,0.00380610211872585338,0.00563732641192570948],"hpluv":[344.488545895364155,299.724735916282839,3.43803794680403607],"hsluv":[344.488545895364155,99.9999999999976836,3.43803794680403607]},"#220022":{"lch":[4.11563957101797229,9.37475958111893348,307.715012949243601],"luv":[4.11563957101797229,5.73486236359989565,-7.41602797151862436],"rgb":[0.133333333333333331,0,0.133333333333333331],"xyz":[0.00948374784440927,0.00455624537411667124,0.0155142126079049047],"hpluv":[307.715012949243601,289.042783730483393,4.11563957101797229],"hsluv":[307.715012949243601,99.9999999999988205,4.11563957101797229]},"#220033":{"lch":[5.23130109110515384,14.2535250315243012,286.735013267555587],"luv":[5.23130109110515384,4.10424250296207127,-13.6498413654214126],"rgb":[0.133333333333333331,0,0.2],"xyz":[0.0125714985768670112,0.00579134566709978496,0.0317763664655160497],"hpluv":[286.735013267555587,345.74180296647927,5.23130109110515384],"hsluv":[286.735013267555587,99.9999999999995737,5.23130109110515384]},"#220044":{"lch":[6.84205732813722722,21.3889830656619786,277.641816515271671],"luv":[6.84205732813722722,2.84430225454687724,-21.1990221771654959],"rgb":[0.133333333333333331,0,0.266666666666666663],"xyz":[0.01702949382108589,0.0075745437647873606,0.0552551414184026882],"hpluv":[277.641816515271671,396.682237683346386,6.84205732813722722],"hsluv":[277.641816515271671,100.000000000000085,6.84205732813722722]},"#220055":{"lch":[8.95766614306443,30.4428627575942237,273.263558660643355],"luv":[8.95766614306443,1.73308321478426808,-30.3934913336449455],"rgb":[0.133333333333333331,0,0.333333333333333315],"xyz":[0.0229919078604478855,0.00995950938053219263,0.0866571886923766],"hpluv":[273.263558660643355,431.250830347711485,8.95766614306443],"hsluv":[273.263558660643355,100.000000000000242,8.95766614306443]},"#220066":{"lch":[11.2709410858812937,40.3162667149428913,270.881506896841],"luv":[11.2709410858812937,0.620249265146302853,-40.3114952920317435],"rgb":[0.133333333333333331,0,0.4],"xyz":[0.0305769036339560568,0.0129935076899355059,0.126604833099520558],"hpluv":[270.881506896841,453.899240935372916,11.2709410858812937],"hsluv":[270.881506896841,100.000000000000469,11.2709410858812937]},"#220077":{"lch":[13.6616791408408957,50.492834518379162,269.459540268375122],"luv":[13.6616791408408957,-0.476281836738408071,-50.4905881656414763],"rgb":[0.133333333333333331,0,0.466666666666666674],"xyz":[0.0398909166541579763,0.0167191128980163223,0.175658635005918468],"hpluv":[269.459540268375122,468.991527020998944,13.6616791408408957],"hsluv":[269.459540268375122,100.000000000000711,13.6616791408408957]},"#220088":{"lch":[16.0923146306383913,60.7890037695263104,268.549935621017426],"luv":[16.0923146306383913,-1.53830805749361632,-60.7695366743217278],"rgb":[0.133333333333333331,0,0.533333333333333326],"xyz":[0.0510313337561018043,0.0211752797387939132,0.234331498409490635],"hpluv":[268.549935621017426,479.34239057424071,16.0923146306383913],"hsluv":[268.549935621017426,100.000000000000711,16.0923146306383913]},"#220099":{"lch":[18.5394450926422749,71.1015482986176437,267.936483797094468],"luv":[18.5394450926422749,-2.56017951479828287,-71.0554406876254916],"rgb":[0.133333333333333331,0,0.6],"xyz":[0.0640882978651745178,0.0263980653824230742,0.30309817605060857],"hpluv":[267.936483797094468,486.655519564945394,18.5394450926422749],"hsluv":[267.936483797094468,100.000000000000739,18.5394450926422749]},"#2200aa":{"lch":[20.9885603179873783,81.3727160976321,267.505178931910336],"luv":[20.9885603179873783,-3.54207977840461252,-81.2955878012407851],"rgb":[0.133333333333333331,0,0.66666666666666663],"xyz":[0.0791459908304270598,0.0324211425685241791,0.382402025667607171],"hpluv":[267.505178931910336,491.966452636739518,20.9885603179873783],"hsluv":[267.505178931910336,100.000000000000782,20.9885603179873783]},"#2200bb":{"lch":[23.4306921856835828,91.57073581353,267.191578225858507],"luv":[23.4306921856835828,-4.48665301772878333,-91.4607544366971155],"rgb":[0.133333333333333331,0,0.733333333333333282],"xyz":[0.0962835829377637,0.0392761794114589377,0.472660010766248917],"hpluv":[267.191578225858507,495.919187528698728,23.4306921856835828],"hsluv":[267.191578225858507,100.000000000000909,23.4306921856835828]},"#2200cc":{"lch":[25.860342630381858,101.678845182637474,266.957159441292106],"luv":[25.860342630381858,-5.39738007409318588,-101.535490573545474],"rgb":[0.133333333333333331,0,0.8],"xyz":[0.115575958381485447,0.0469931295889477393,0.574266521436519],"hpluv":[266.957159441292106,498.925449111647538,25.860342630381858],"hsluv":[266.957159441292106,100.000000000000881,25.860342630381858]},"#2200dd":{"lch":[28.2742062228116282,111.689036790699618,266.777814373778199],"luv":[28.2742062228116282,-6.27782958394359714,-111.512464751476173],"rgb":[0.133333333333333331,0,0.866666666666666696],"xyz":[0.137094283932118977,0.0556004598092012733,0.687596369336525],"hpluv":[266.777814373778199,501.255846139694427,28.2742062228116282],"hsluv":[266.777814373778199,100.000000000000838,28.2742062228116282]},"#2200ee":{"lch":[30.6703766456275062,121.598437280905173,266.637867063772376],"luv":[30.6703766456275062,-7.13133722672581882,-121.389142753859758],"rgb":[0.133333333333333331,0,0.933333333333333348],"xyz":[0.160906464198293714,0.0651253319156713,0.813007185405048238],"hpluv":[266.637867063772376,503.092926092128948,30.6703766456275062],"hsluv":[266.637867063772376,100.000000000000838,30.6703766456275062]},"#2200ff":{"lch":[33.0478477502328261,131.407178056457695,266.526788769360394],"luv":[33.0478477502328261,-7.96089030872800674,-131.165813649189772],"rgb":[0.133333333333333331,0,1],"xyz":[0.187077512608125107,0.0755937512796040073,0.950841373696830083],"hpluv":[266.526788769360394,504.562807291912918,33.0478477502328261],"hsluv":[266.526788769360394,100.000000000000824,33.0478477502328261]},"#221100":{"lch":[6.69363913087575835,9.72440836304526535,42.3457761997067053],"luv":[6.69363913087575835,7.18724369375563921,6.55039282011655288],"rgb":[0.133333333333333331,0.0666666666666666657,0],"xyz":[0.00860112446722354,0.00741023644072787233,0.000977354867479528471],"hpluv":[42.3457761997067053,184.348759610596915,6.69363913087575835],"hsluv":[42.3457761997067053,100.000000000002402,6.69363913087575835]},"#221111":{"lch":[7.0591726104019763,6.19439175917428564,12.1770506300621],"luv":[7.0591726104019763,6.05502079617615863,1.30660339200560327],"rgb":[0.133333333333333331,0.0666666666666666657,0.0666666666666666657],"xyz":[0.00961278996686066103,0.00781490264058272606,0.00630545983223516],"hpluv":[12.1770506300621,111.348454543071412,7.0591726104019763],"hsluv":[12.1770506300621,26.092394217240134,7.0591726104019763]},"#221122":{"lch":[7.73677423461591474,7.55259268754738677,307.715012949245249],"luv":[7.73677423461591474,4.62018030186617779,-5.97457866985129],"rgb":[0.133333333333333331,0.0666666666666666657,0.133333333333333331],"xyz":[0.0114881481053376797,0.00856504589597354565,0.0161823460282143547],"hpluv":[307.715012949245249,123.872660774597591,7.73677423461591474],"hsluv":[307.715012949245249,42.856167926372315,7.73677423461591474]},"#221133":{"lch":[8.8238329822443653,14.9761175001236957,282.095598903329574],"luv":[8.8238329822443653,3.13814740657790647,-14.6436377390353236],"rgb":[0.133333333333333331,0.0666666666666666657,0.2],"xyz":[0.0145758988377954202,0.00980014618895665851,0.0324444998858255],"hpluv":[282.095598903329574,215.36805510923017,8.8238329822443653],"hsluv":[282.095598903329574,58.3941618505161273,8.8238329822443653]},"#221144":{"lch":[10.2463738670161,23.9334379374521049,274.255517801158362],"luv":[10.2463738670161,1.77596948547040223,-23.8674544912638211],"rgb":[0.133333333333333331,0.0666666666666666657,0.266666666666666663],"xyz":[0.0190338940820143,0.011583344286644235,0.0559232748387121364],"hpluv":[274.255517801158362,296.397281412249697,10.2463738670161],"hsluv":[274.255517801158362,70.1230959508528287,10.2463738670161]},"#221155":{"lch":[11.9365395500671561,33.3852442414483903,270.945812779521702],"luv":[11.9365395500671561,0.551083463009601,-33.3806956200430349],"rgb":[0.133333333333333331,0.0666666666666666657,0.333333333333333315],"xyz":[0.0249963081213762928,0.0139683099023890662,0.0873253221126860518],"hpluv":[270.945812779521702,354.907717298979946,11.9365395500671561],"hsluv":[270.945812779521702,78.3035236172291,11.9365395500671561]},"#221166":{"lch":[13.8282163263251512,43.1006504094303509,269.247085426223],"luv":[13.8282163263251512,-0.566362377205730683,-43.0969291176716496],"rgb":[0.133333333333333331,0.0666666666666666657,0.4],"xyz":[0.0325813038948844641,0.0170023082117923795,0.12727296651983],"hpluv":[269.247085426223,395.509560036398682,13.8282163263251512],"hsluv":[269.247085426223,83.9084652674952167,13.8282163263251512]},"#221177":{"lch":[15.8647012598499089,52.9790758801604,268.263491631539182],"luv":[15.8647012598499089,-1.60543281970815044,-52.954745458525224],"rgb":[0.133333333333333331,0.0666666666666666657,0.466666666666666674],"xyz":[0.0418953169150863836,0.0207279134198731958,0.176326768426227909],"hpluv":[268.263491631539182,423.75204448359591,15.8647012598499089],"hsluv":[268.263491631539182,87.783734282584831,15.8647012598499089]},"#221188":{"lch":[18.0016522099437424,62.9493123294311872,267.645454528547475],"luv":[18.0016522099437424,-2.58614693443793442,-62.8961665507666297],"rgb":[0.133333333333333331,0.0666666666666666657,0.533333333333333326],"xyz":[0.0530357340170302116,0.0251840802606507867,0.234999631829800076],"hpluv":[267.645454528547475,443.729139668046173,18.0016522099437424],"hsluv":[267.645454528547475,90.5156952975567464,18.0016522099437424]},"#221199":{"lch":[20.2061107483083475,72.9561611588118524,267.23334268313738],"luv":[20.2061107483083475,-3.52148568403582729,-72.8711231531918742],"rgb":[0.133333333333333331,0.0666666666666666657,0.6],"xyz":[0.066092698126102925,0.0304068659042799477,0.303766309470918],"hpluv":[267.23334268313738,458.161478440778865,20.2061107483083475],"hsluv":[267.23334268313738,92.4853336382361704,20.2061107483083475]},"#2211aa":{"lch":[22.4542330055690798,82.9584275230068471,266.945798214496847],"luv":[22.4542330055690798,-4.42007776686241449,-82.8405915576709759],"rgb":[0.133333333333333331,0.0666666666666666657,0.66666666666666663],"xyz":[0.0811503910913554671,0.0364299430903810492,0.383070159087916584],"hpluv":[266.945798214496847,468.815123306781686,22.4542330055690798],"hsluv":[266.945798214496847,93.9373181855700921,22.4542330055690798]},"#2211bb":{"lch":[24.7289983316777295,92.9268656932788701,266.737844101991243],"luv":[24.7289983316777295,-5.28796663316276483,-92.7762888698575097],"rgb":[0.133333333333333331,0.0666666666666666657,0.733333333333333282],"xyz":[0.0982879831986921138,0.0432849799333158078,0.473328144186558331],"hpluv":[266.737844101991243,476.841549380862261,24.7289983316777295],"hsluv":[266.737844101991243,95.0302193246277369,24.7289983316777295]},"#2211cc":{"lch":[27.0183279904475668,102.841627589427389,266.583003116257],"luv":[27.0183279904475668,-6.12961814831514129,-102.658794784462174],"rgb":[0.133333333333333331,0.0666666666666666657,0.8],"xyz":[0.117580358642413854,0.0510019301108046094,0.574934654856828486],"hpluv":[266.583003116257,483.002966655360069,27.0183279904475668],"hsluv":[266.583003116257,95.8686128249461689,27.0183279904475668]},"#2211dd":{"lch":[29.313669578695368,112.689841457512074,266.464886381494523],"luv":[29.313669578695368,-6.94848190374932617,-112.475414944566779],"rgb":[0.133333333333333331,0.0666666666666666657,0.866666666666666696],"xyz":[0.139098684193047384,0.0596092603310581434,0.688264502756834484],"hpluv":[266.464886381494523,487.813602393737767,29.313669578695368],"hsluv":[266.464886381494523,96.5228774582602256,29.313669578695368]},"#2211ee":{"lch":[31.6089746608533417,122.463629630364608,266.372923821556242],"luv":[31.6089746608533417,-7.74731231829930689,-122.21832814306471],"rgb":[0.133333333333333331,0.0666666666666666657,0.933333333333333348],"xyz":[0.162910864459222149,0.0691341324375281813,0.813675318825357707],"hpluv":[266.372923821556242,491.627361233059389,31.6089746608533417],"hsluv":[266.372923821556242,97.0413663214109761,31.6089746608533417]},"#2211ff":{"lch":[33.8999739889387115,132.15860685194221,266.300059947999785],"luv":[33.8999739889387115,-8.52836196764118,-131.883146789857562],"rgb":[0.133333333333333331,0.0666666666666666657,1],"xyz":[0.189081912869053514,0.0796025518014608774,0.951509507117139552],"hpluv":[266.300059947999785,494.692599475339,33.8999739889387115],"hsluv":[266.300059947999785,99.9999999999995737,33.8999739889387115]},"#77aa00":{"lch":[63.8935034159882491,78.4053265973676616,109.262687899665323],"luv":[63.8935034159882491,-25.8658938451783591,74.0158819067222424],"rgb":[0.466666666666666674,0.66666666666666663,0],"xyz":[0.219816749274909073,0.326708497135311,0.0514797056256764834],"hpluv":[109.262687899665323,155.714190603412163,63.8935034159882491],"hsluv":[109.262687899665323,100.000000000002132,63.8935034159882491]},"#77aa11":{"lch":[63.9264755829735662,77.0719876411919,109.595002167467626],"luv":[63.9264755829735662,-25.8475857965541422,72.6084952843247464],"rgb":[0.466666666666666674,0.66666666666666663,0.0666666666666666657],"xyz":[0.220828414774546206,0.32711316333516588,0.0568078105904321132],"hpluv":[109.595002167467626,152.98720995680398,63.9264755829735662],"hsluv":[109.595002167467626,97.9667163347824612,63.9264755829735662]},"#77aa22":{"lch":[63.9875253363426424,74.6349938152274603,110.235118064089221],"luv":[63.9875253363426424,-25.8142561390327501,70.0286118796271],"rgb":[0.466666666666666674,0.66666666666666663,0.133333333333333331],"xyz":[0.222703772913023207,0.32786330659055668,0.0666846967864113127],"hpluv":[110.235118064089221,148.008450888663447,63.9875253363426424],"hsluv":[110.235118064089221,94.2440053809013421,63.9875253363426424]},"#77aa33":{"lch":[64.0878403339217328,70.7199026331045,111.362593229805157],"luv":[64.0878403339217328,-25.7610573917560757,65.8610093340090685],"rgb":[0.466666666666666674,0.66666666666666663,0.2],"xyz":[0.22579152364548094,0.329098406883539807,0.0829468506440224629],"hpluv":[111.362593229805157,140.024923426145421,64.0878403339217328],"hsluv":[111.362593229805157,88.2427941375042,64.0878403339217328]},"#77aa44":{"lch":[64.2322300921174616,65.2796522257345,113.17268826837423],"luv":[64.2322300921174616,-25.6877867579927681,60.0130869576689463],"rgb":[0.466666666666666674,0.66666666666666663,0.266666666666666663],"xyz":[0.230249518889699828,0.330881604981227373,0.106425625596909101],"hpluv":[113.17268826837423,128.962712139229978,64.2322300921174616],"hsluv":[113.17268826837423,79.8488372015295482,64.2322300921174616]},"#77aa55":{"lch":[64.4245377454048338,58.3957340906732298,115.996670283872277],"luv":[64.4245377454048338,-25.5959546947607706,52.487225714952487],"rgb":[0.466666666666666674,0.66666666666666663,0.333333333333333315],"xyz":[0.236211932929061841,0.333266570596972234,0.137827672870883],"hpluv":[115.996670283872277,115.018880896771989,64.4245377454048338],"hsluv":[115.996670283872277,69.0944053471027075,64.4245377454048338]},"#77aa66":{"lch":[64.6678576456364,50.3036055521827663,120.443938093288892],"luv":[64.6678576456364,-25.4885877435648602,43.368013862617552],"rgb":[0.466666666666666674,0.66666666666666663,0.4],"xyz":[0.24379692870257,0.336300568906375552,0.177775317278026979],"hpluv":[120.443938093288892,98.707457943709727,64.6678576456364],"hsluv":[120.443938093288892,56.1391996219007723,64.6678576456364]},"#77aa77":{"lch":[64.964649263009,41.4721527505437351,127.71501294923786],"luv":[64.964649263009,-25.3699399849719889,32.8070967768157118],"rgb":[0.466666666666666674,0.66666666666666663,0.466666666666666674],"xyz":[0.253110941722771932,0.340026174114456348,0.226829119184424888],"hpluv":[127.71501294923786,81.006302212696113,64.964649263009],"hsluv":[127.71501294923786,41.2466460512923874,64.964649263009]},"#77aa88":{"lch":[65.3168057391263375,32.8409027786736161,140.238161573904051],"luv":[65.3168057391263375,-25.2451203613846147,21.004970679758074],"rgb":[0.466666666666666674,0.66666666666666663,0.533333333333333326],"xyz":[0.264251358824715732,0.344482340955233945,0.285501982587997],"hpluv":[140.238161573904051,63.8012923553667,65.3168057391263375],"hsluv":[140.238161573904051,43.6199696205744232,65.3168057391263375]},"#77aa99":{"lch":[65.7257012160132,26.4214783611449491,161.939459903532622],"luv":[65.7257012160132,-25.1196781367095241,8.19123245284666],"rgb":[0.466666666666666674,0.66666666666666663,0.6],"xyz":[0.277308322933788487,0.349705126598863103,0.354268660229114962],"hpluv":[161.939459903532622,51.0106916742292213,65.7257012160132],"hsluv":[161.939459903532622,46.1685656356417766,65.7257012160132]},"#77aaaa":{"lch":[66.1922284915170565,25.5746156232648509,192.177050630060677],"luv":[66.1922284915170565,-24.9991985449953802,-5.39453764336142338],"rgb":[0.466666666666666674,0.66666666666666663,0.66666666666666663],"xyz":[0.292366015899041,0.355728203784964225,0.433572509846113563],"hpluv":[192.177050630060677,49.0276908522131265,66.1922284915170565],"hsluv":[192.177050630060677,48.8357820868943122,66.1922284915170565]},"#77aabb":{"lch":[66.7168329685055568,31.6300901405034409,218.105494045696133],"luv":[66.7168329685055568,-24.8889541052261336,-19.519287021925777],"rgb":[0.466666666666666674,0.66666666666666663,0.733333333333333282],"xyz":[0.309503608006377662,0.362583240627899,0.523830494944755309],"hpluv":[218.105494045696133,60.1595160354738923,66.7168329685055568],"hsluv":[218.105494045696133,51.56699221483656,66.7168329685055568]},"#77aacc":{"lch":[67.2995460165272306,42.0550186755790207,233.874741843371567],"luv":[67.2995460165272306,-24.7936410920562054,-33.9691029790543908],"rgb":[0.466666666666666674,0.66666666666666663,0.8],"xyz":[0.328795983450099416,0.370300190805387786,0.625437005615025465],"hpluv":[233.874741843371567,79.2948573353567099,67.2995460165272306],"hsluv":[233.874741843371567,54.3124963748670382,67.2995460165272306]},"#77aadd":{"lch":[67.9400192524912,54.4863937886276304,243.022531341574677],"luv":[67.9400192524912,-24.7172120267711577,-48.557456046554158],"rgb":[0.466666666666666674,0.66666666666666663,0.866666666666666696],"xyz":[0.350314309000732904,0.378907521025641292,0.738766853515031463],"hpluv":[243.022531341574677,101.765770647841308,67.9400192524912],"hsluv":[243.022531341574677,60.6446157506369659,67.9400192524912]},"#77aaee":{"lch":[68.6375602707836,67.7758398266106781,248.660849953701415],"luv":[68.6375602707836,-24.6627990544268876,-63.1293181256010882],"rgb":[0.466666666666666674,0.66666666666666663,0.933333333333333348],"xyz":[0.374126489266907669,0.388432393132111309,0.864177669583554686],"hpluv":[248.660849953701415,125.300382334337471,68.6375602707836],"hsluv":[248.660849953701415,79.8712566390148453,68.6375602707836]},"#77aaff":{"lch":[69.3911697465266428,81.3794470542267874,252.380781260055755],"luv":[69.3911697465266428,-24.6327125013740549,-77.5618712878715399],"rgb":[0.466666666666666674,0.66666666666666663,1],"xyz":[0.400297537676739035,0.398900812496044033,1.00201185787533653],"hpluv":[252.380781260055755,148.816077288451226,69.3911697465266428],"hsluv":[252.380781260055755,99.9999999999980531,69.3911697465266428]},"#222200":{"lch":[12.5069288045758107,13.787646171799997,85.8743202181747307],"luv":[12.5069288045758107,0.991945128669063814,13.751917387057734],"rgb":[0.133333333333333331,0.133333333333333331,0],"xyz":[0.0123167482019914745,0.014841483910263846,0.002215896112402139],"hpluv":[85.8743202181747307,139.887458074797621,12.5069288045758107],"hsluv":[85.8743202181747307,100.000000000002359,12.5069288045758107]},"#222211":{"lch":[12.7636979604368612,8.34346759842367,85.8743202181729828],"luv":[12.7636979604368612,0.600266494900015157,8.32184665209868513],"rgb":[0.133333333333333331,0.133333333333333331,0.0666666666666666657],"xyz":[0.0133284137016285963,0.0152461501101187,0.00754400107715777046],"hpluv":[85.8743202181729828,82.9486632734846552,12.7636979604368612],"hsluv":[85.8743202181729828,59.2967120963297631,12.7636979604368612]},"#222222":{"lch":[13.2279109842717837,6.86787642036123471e-13,0],"luv":[13.2279109842717837,6.53891093021720259e-13,2.10008818196756883e-13],"rgb":[0.133333333333333331,0.133333333333333331,0.133333333333333331],"xyz":[0.0152037718401056149,0.0159962933655095202,0.0174208872731369674],"hpluv":[0,6.58825703928357502e-12,13.2279109842717837],"hsluv":[0,1.88635445986832e-12,13.2279109842717837]},"#222233":{"lch":[13.9615854376221584,10.5260121123804868,265.874320218180912],"luv":[13.9615854376221584,-0.757288539977712838,-10.4987354027615698],"rgb":[0.133333333333333331,0.133333333333333331,0.2],"xyz":[0.0182915225725633554,0.017231393658492633,0.0336830411307481106],"hpluv":[265.874320218180912,95.6683874279760431,13.9615854376221584],"hsluv":[265.874320218180912,18.6338179823007195,13.9615854376221584]},"#222244":{"lch":[14.9613810506728697,21.7214686924654536,265.874320218179207],"luv":[14.9613810506728697,-1.5627399186581008,-21.6651805001571454],"rgb":[0.133333333333333331,0.133333333333333331,0.266666666666666663],"xyz":[0.0227495178167822359,0.0190145917561802061,0.0571618160836347491],"hpluv":[265.874320218179207,184.228505509793536,14.9613810506728697],"hsluv":[265.874320218179207,35.8831222215914138,14.9613810506728697]},"#222255":{"lch":[16.2052187005970154,32.8139057554865161,265.874320218178639],"luv":[16.2052187005970154,-2.3607796110480268,-32.728873041368395],"rgb":[0.133333333333333331,0.133333333333333331,0.333333333333333315],"xyz":[0.028711931856144228,0.021399557371925039,0.0885638633576086576],"hpluv":[265.874320218178639,256.946292996249099,16.2052187005970154],"hsluv":[265.874320218178639,50.0467352240393097,16.2052187005970154]},"#222266":{"lch":[17.6604729086265309,43.5908485911403716,265.874320218178354],"luv":[17.6604729086265309,-3.13612123314657865,-43.477888915018994],"rgb":[0.133333333333333331,0.133333333333333331,0.4],"xyz":[0.0362969276296524063,0.0244335556813283505,0.128511507764752619],"hpluv":[265.874320218178354,313.207621322876264,17.6604729086265309],"hsluv":[265.874320218178354,61.00504004829466,17.6604729086265309]},"#222277":{"lch":[19.2910482951380544,54.0745009411091573,265.874320218178241],"luv":[19.2910482951380544,-3.89036222175517965,-53.9343743248547867],"rgb":[0.133333333333333331,0.133333333333333331,0.466666666666666674],"xyz":[0.0456109406498543188,0.0281591608894091669,0.177565309671150529],"hpluv":[265.874320218178241,355.693573155256843,19.2910482951380544],"hsluv":[265.874320218178241,69.2802447897283429,19.2910482951380544]},"#222288":{"lch":[21.0622605487373207,64.3390225585563371,265.874320218178184],"luv":[21.0622605487373207,-4.62883796225993471,-64.1722968492601353],"rgb":[0.133333333333333331,0.133333333333333331,0.533333333333333326],"xyz":[0.0567513577517981468,0.0326153277301867578,0.236238173074722696],"hpluv":[265.874320218178184,387.622344883614403,21.0622605487373207],"hsluv":[265.874320218178184,75.4991739133377706,21.0622605487373207]},"#222299":{"lch":[22.9434551626666803,74.4470789880776351,265.874320218178127],"luv":[22.9434551626666803,-5.35605689510984373,-74.2541596437089737],"rgb":[0.133333333333333331,0.133333333333333331,0.6],"xyz":[0.0698083218608708533,0.0378381133738159223,0.305004850715840603],"hpluv":[265.874320218178127,411.744842564929684,22.9434551626666803],"hsluv":[265.874320218178127,80.1976353712613559,22.9434551626666803]},"#2222aa":{"lch":[24.9089307040763188,84.4389391258505526,265.87432021817807],"luv":[24.9089307040763188,-6.07491614537627278,-84.2201272530844705],"rgb":[0.133333333333333331,0.133333333333333331,0.66666666666666663],"xyz":[0.0848660148261234093,0.0438611905599170238,0.384308700332839204],"hpluv":[265.87432021817807,430.157015573344836,24.9089307040763188],"hsluv":[265.87432021817807,83.7838678741945557,24.9089307040763188]},"#2222bb":{"lch":[26.937850813592469,94.3371638934954149,265.87432021817807],"luv":[26.937850813592469,-6.78703884698804139,-94.0927021354881106],"rgb":[0.133333333333333331,0.133333333333333331,0.733333333333333282],"xyz":[0.102003606933460056,0.0507162274028517823,0.47456668543148095],"hpluv":[265.87432021817807,444.384803230596,26.937850813592469],"hsluv":[265.87432021817807,86.5550863782758,26.937850813592469]},"#2222cc":{"lch":[29.0136770200274086,104.153206308830732,265.874320218178],"luv":[29.0136770200274086,-7.49324898143496743,-103.883307629821275],"rgb":[0.133333333333333331,0.133333333333333331,0.8],"xyz":[0.121295982377181782,0.058433177580340584,0.576173196101751106],"hpluv":[265.874320218178,455.521834046362642,29.0136770200274086],"hsluv":[265.874320218178,88.7243024658832695,29.0136770200274086]},"#2222dd":{"lch":[31.1234509916598299,113.892375340460845,265.874320218178],"luv":[31.1234509916598299,-8.19392849973896809,-113.597238947227837],"rgb":[0.133333333333333331,0.133333333333333331,0.866666666666666696],"xyz":[0.142814307927815326,0.067040507800594118,0.689503044001757104],"hpluv":[265.874320218178,464.350835522916555,31.1234509916598299],"hsluv":[265.874320218178,90.4439719502614565,31.1234509916598299]},"#2222ee":{"lch":[33.2570959032629503,123.556928623667645,265.874320218178],"luv":[33.2570959032629503,-8.88923982631188103,-123.236747872639071],"rgb":[0.133333333333333331,0.133333333333333331,0.933333333333333348],"xyz":[0.166626488193990063,0.0765653799070641489,0.814913860070280327],"hpluv":[265.874320218178,471.435310205520636,33.2570959032629503],"hsluv":[265.874320218178,93.8546607467714296,33.2570959032629503]},"#2222ff":{"lch":[35.4068078244889,133.147814572056944,265.874320218177957],"luv":[35.4068078244889,-9.57925119428392335,-132.802780361977625],"rgb":[0.133333333333333331,0.133333333333333331,1],"xyz":[0.192797536603821457,0.0870337992709968589,0.952748048362062172],"hpluv":[265.874320218177957,477.184793215987838,35.4068078244889],"hsluv":[265.874320218177957,99.999999999999531,35.4068078244889]},"#77bb00":{"lch":[69.0844312744863629,87.8096536524333544,113.037133893102563],"luv":[69.0844312744863629,-34.3623439699837476,80.8069588058406225],"rgb":[0.466666666666666674,0.733333333333333282,0],"xyz":[0.253771247183507853,0.394617492952509585,0.0627978715952091093],"hpluv":[113.037133893102563,161.287757631366873,69.0844312744863629],"hsluv":[113.037133893102563,100.000000000002331,69.0844312744863629]},"#77bb11":{"lch":[69.1135050244688216,86.6316159473835654,113.342165034517933],"luv":[69.1135050244688216,-34.3252912529264051,79.5412550948043275],"rgb":[0.466666666666666674,0.733333333333333282,0.0666666666666666657],"xyz":[0.254782912683144958,0.395022159152364438,0.068125976559964746],"hpluv":[113.342165034517933,159.057013433643618,69.1135050244688216],"hsluv":[113.342165034517933,98.3127503818399,69.1135050244688216]},"#77bb22":{"lch":[69.1673475306790664,84.4748154027895595,113.924619678029501],"luv":[69.1673475306790664,-34.2574435126740582,77.2167209955934197],"rgb":[0.466666666666666674,0.733333333333333282,0.133333333333333331],"xyz":[0.256658270821622,0.395772302407755239,0.0780028627559439386],"hpluv":[113.924619678029501,154.976360107776344,69.1673475306790664],"hsluv":[113.924619678029501,95.2170715716625438,69.1673475306790664]},"#77bb33":{"lch":[69.2558504240405313,80.9996568929936132,114.934551128374181],"luv":[69.2558504240405313,-34.1480550559542593,73.4496749664571666],"rgb":[0.466666666666666674,0.733333333333333282,0.2],"xyz":[0.25974602155407972,0.397007402700738365,0.0942650166135550749],"hpluv":[114.934551128374181,148.410982175614635,69.2558504240405313],"hsluv":[114.934551128374181,90.2088459481891363,69.2558504240405313]},"#77bb44":{"lch":[69.3833048234310752,76.148419012573342,116.514961433737128],"luv":[69.3833048234310752,-33.9950520676451049,68.1389620777462426],"rgb":[0.466666666666666674,0.733333333333333282,0.266666666666666663],"xyz":[0.264204016798298635,0.398790600798425932,0.117743791566441713],"hpluv":[116.514961433737128,139.266042804817573,69.3833048234310752],"hsluv":[116.514961433737128,83.166634884803841,69.3833048234310752]},"#77bb55":{"lch":[69.5531781358710788,69.9670725739878918,118.886197685461212],"luv":[69.5531781358710788,-33.7990968432466516,61.2618339356121666],"rgb":[0.466666666666666674,0.733333333333333282,0.333333333333333315],"xyz":[0.270166430837660621,0.401175566414170792,0.149145838840415629],"hpluv":[118.886197685461212,127.648598426560824,69.5531781358710788],"hsluv":[118.886197685461212,74.0801666731923092,69.5531781358710788]},"#77bb66":{"lch":[69.7683097004737647,62.6192143930699672,122.411113057511386],"luv":[69.7683097004737647,-33.5633071802414804,52.8646424591145],"rgb":[0.466666666666666674,0.733333333333333282,0.4],"xyz":[0.277751426611168806,0.404209564723574111,0.189093483247559591],"hpluv":[122.411113057511386,113.8908252780179,69.7683097004737647],"hsluv":[122.411113057511386,63.0377921091212627,69.7683097004737647]},"#77bb77":{"lch":[70.0310134677453391,54.4237865803123384,127.71501294923867],"luv":[70.0310134677453391,-33.2928991557924476,43.0526585885427053],"rgb":[0.466666666666666674,0.733333333333333282,0.466666666666666674],"xyz":[0.287065439631370711,0.407935169931654906,0.2381472851539575],"hpluv":[127.71501294923867,98.6137944921033522,70.0310134677453391],"hsluv":[127.71501294923867,50.2119979074062357,70.0310134677453391]},"#77bb88":{"lch":[70.3431390634792422,45.948041729110173,135.896820739423845],"luv":[70.3431390634792422,-32.9947227526694,31.9776610966863863],"rgb":[0.466666666666666674,0.733333333333333282,0.533333333333333326],"xyz":[0.298205856733314512,0.412391336772432504,0.296820148557529695],"hpluv":[135.896820739423845,82.8866502392756246,70.3431390634792422],"hsluv":[135.896820739423845,51.9268484553617711,70.3431390634792422]},"#77bb99":{"lch":[70.7061124793432612,38.2197788608509725,148.75629343317604],"luv":[70.7061124793432612,-32.6767203094589,19.8238100775241328],"rgb":[0.466666666666666674,0.733333333333333282,0.6],"xyz":[0.311262820842387211,0.417614122416061662,0.365586826198647574],"hpluv":[148.75629343317604,68.5915373148405,70.7061124793432612],"hsluv":[148.75629343317604,53.7921873551213565,70.7061124793432612]},"#77bbaa":{"lch":[71.1209666334754615,33.0529501718716148,168.140026251468868],"luv":[71.1209666334754615,-32.3473621836046874,6.79306078486928744],"rgb":[0.466666666666666674,0.733333333333333282,0.66666666666666663],"xyz":[0.326320513807639767,0.423637199602162784,0.444890675815646175],"hpluv":[168.140026251468868,58.9728212370576585,71.1209666334754615],"hsluv":[168.140026251468868,55.7713219876506372,71.1209666334754615]},"#77bbbb":{"lch":[71.5883672123020744,32.7520226121926044,192.177050630060876],"luv":[71.5883672123020744,-32.0151171807858432,-6.90849166534396097],"rgb":[0.466666666666666674,0.733333333333333282,0.733333333333333282],"xyz":[0.343458105914976441,0.430492236445097542,0.535148660914287921],"hpluv":[192.177050630060876,58.0543804308889762,71.5883672123020744],"hsluv":[192.177050630060876,57.8271385543864938,71.5883672123020744]},"#77bbcc":{"lch":[72.1086367753872111,38.0603267014846267,213.636027248927832],"luv":[72.1086367753872111,-31.6880044447458609,-21.0821925551758049],"rgb":[0.466666666666666674,0.733333333333333282,0.8],"xyz":[0.36275048135869814,0.438209186622586344,0.636755171584558077],"hpluv":[213.636027248927832,66.97682452789428,72.1086367753872111],"hsluv":[213.636027248927832,59.9241419588218278,72.1086367753872111]},"#77bbdd":{"lch":[72.6817787487410101,47.4106862821029651,228.567760630430627],"luv":[72.6817787487410101,-31.3732552756954277,-35.5456330249727728],"rgb":[0.466666666666666674,0.733333333333333282,0.866666666666666696],"xyz":[0.384268806909331739,0.44681651684283985,0.750085019484564075],"hpluv":[228.567760630430627,82.7732525696479371,72.6817787487410101],"hsluv":[228.567760630430627,62.0300015657167449,72.6817787487410101]},"#77bbee":{"lch":[73.3075021126589803,58.9885691422652769,238.208313348868131],"luv":[73.3075021126589803,-31.0770938488335098,-50.1384635520735316],"rgb":[0.466666666666666674,0.733333333333333282,0.933333333333333348],"xyz":[0.408080987175506449,0.456341388949309867,0.875495835553087298],"hpluv":[238.208313348868131,102.107764199280055,73.3075021126589803],"hsluv":[238.208313348868131,76.3238953534044,73.3075021126589803]},"#77bbff":{"lch":[73.9852470697490219,71.6819577745528846,244.548916872628638],"luv":[73.9852470697490219,-30.8046295043453391,-64.7254036023940102],"rgb":[0.466666666666666674,0.733333333333333282,1],"xyz":[0.43425203558533787,0.466809808313242591,1.01333002384486903],"hpluv":[244.548916872628638,122.943070755930805,73.9852470697490219],"hsluv":[244.548916872628638,99.9999999999974,73.9852470697490219]},"#223300":{"lch":[18.8330192465532917,22.9063411551717806,108.204985820955727],"luv":[18.8330192465532917,-7.15634373768739707,21.7597612446731326],"rgb":[0.133333333333333331,0.2,0],"xyz":[0.0184344702910022862,0.0270769280882856428,0.00425513680873902],"hpluv":[108.204985820955727,154.338793470845559,18.8330192465532917],"hsluv":[108.204985820955727,100.000000000002331,18.8330192465532917]},"#223311":{"lch":[19.0056890338669575,18.4529510656336271,112.754551304246377],"luv":[19.0056890338669575,-7.13731020483261602,17.0167625026225657],"rgb":[0.133333333333333331,0.2,0.0666666666666666657],"xyz":[0.0194461357906394079,0.0274815942881404957,0.0095832417734946513],"hpluv":[112.754551304246377,123.203072156705915,19.0056890338669575],"hsluv":[112.754551304246377,76.6034511576994248,19.0056890338669575]},"#223322":{"lch":[19.3213416797184507,11.6344605438365232,127.71501294923759],"luv":[19.3213416797184507,-7.11719904028337247,9.20359440474635],"rgb":[0.133333333333333331,0.2,0.133333333333333331],"xyz":[0.0213214939291164265,0.028231737543531317,0.0194601279694738491],"hpluv":[127.71501294923759,76.4096652359405084,19.3213416797184507],"hsluv":[127.71501294923759,38.9061385447444366,19.3213416797184507]},"#223333":{"lch":[19.8290945906418372,7.27996715422488894,192.177050630060677],"luv":[19.8290945906418372,-7.11617124458192585,-1.53558737438758408],"rgb":[0.133333333333333331,0.2,0.2],"xyz":[0.0244092446615741671,0.0294668378365144298,0.0357222818270849923],"hpluv":[192.177050630060677,46.5871198449043149,19.8290945906418372],"hsluv":[192.177050630060677,46.4047641905018935,19.8290945906418372]},"#223344":{"lch":[20.5377244517829496,15.5714684077650816,242.621028364370432],"luv":[20.5377244517829496,-7.16091210703038339,-13.8272183091687548],"rgb":[0.133333333333333331,0.2,0.266666666666666663],"xyz":[0.0288672399057930476,0.031250035934202,0.0592010567799716309],"hpluv":[242.621028364370432,96.2091932027738181,20.5377244517829496],"hsluv":[242.621028364370432,54.472556800898019,20.5377244517829496]},"#223355":{"lch":[21.4445377167678828,27.4997828393463344,254.670418676715883],"luv":[21.4445377167678828,-7.27014529691604761,-26.5213695644274097],"rgb":[0.133333333333333331,0.2,0.333333333333333315],"xyz":[0.0348296539451550397,0.0336350015499468358,0.0906031040539455323],"hpluv":[254.670418676715883,162.72410902482622,21.4445377167678828],"hsluv":[254.670418676715883,62.1025047738862597,21.4445377167678828]},"#223366":{"lch":[22.538163137523668,39.6650934211933617,259.172698399253136],"luv":[22.538163137523668,-7.45106225263504562,-38.9589695374422647],"rgb":[0.133333333333333331,0.2,0.4],"xyz":[0.042414649718663211,0.0366689998593501473,0.130550748461089494],"hpluv":[259.172698399253136,223.320859110196579,22.538163137523668],"hsluv":[259.172698399253136,68.7622962285398103,22.538163137523668]},"#223377":{"lch":[23.8014699151847751,51.4679604591091,261.393782909523054],"luv":[23.8014699151847751,-7.70180102721624227,-50.8884389105972517],"rgb":[0.133333333333333331,0.2,0.466666666666666674],"xyz":[0.0517286627388651304,0.0403946050674309637,0.179604550367487403],"hpluv":[261.393782909523054,274.392670476726266,23.8014699151847751],"hsluv":[261.393782909523054,74.3066649079193837,23.8014699151847751]},"#223388":{"lch":[25.214303338898695,62.8010579136007649,262.667168962641028],"luv":[25.214303338898695,-8.01548446335257658,-62.2874376089207189],"rgb":[0.133333333333333331,0.2,0.533333333333333326],"xyz":[0.0628690798408089585,0.0448507719082085615,0.238277413771059571],"hpluv":[262.667168962641028,316.052560368409843,25.214303338898695],"hsluv":[262.667168962641028,78.8060188103052184,25.214303338898695]},"#223399":{"lch":[26.7557115473943199,73.7050787305795723,263.468936800572067],"luv":[26.7557115473943199,-8.38335327394953111,-73.2267575314180732],"rgb":[0.133333333333333331,0.2,0.6],"xyz":[0.0759260439498816719,0.0500735575518377191,0.307044091412177478],"hpluv":[263.468936800572067,349.558796760350788,26.7557115473943199],"hsluv":[263.468936800572067,82.4151943494814105,26.7557115473943199]},"#2233aa":{"lch":[28.4055164492709622,84.2578478733767184,264.007358934798901],"luv":[28.4055164492709622,-8.79658068794244485,-83.7974050699281],"rgb":[0.133333333333333331,0.2,0.66666666666666663],"xyz":[0.090983736915134214,0.0560966347379388205,0.386347941029176078],"hpluv":[264.007358934798901,376.397732872534505,28.4055164492709622],"hsluv":[264.007358934798901,85.301735461295209,28.4055164492709622]},"#2233bb":{"lch":[30.1452579578322855,94.5340435151979506,264.386468786418391],"luv":[30.1452579578322855,-9.24712484322681583,-94.0806891209195868],"rgb":[0.133333333333333331,0.2,0.733333333333333282],"xyz":[0.108121329022470861,0.0629516715808735861,0.476605926127817825],"hpluv":[264.386468786418391,397.931717533943186,30.1452579578322855],"hsluv":[264.386468786418391,87.6154589527103553,30.1452579578322855]},"#2233cc":{"lch":[31.9586404471462444,104.593501952517812,264.663323368501551],"luv":[31.9586404471462444,-9.72802821613955615,-104.140127317558722],"rgb":[0.133333333333333331,0.2,0.8],"xyz":[0.127413704466192601,0.0706686217583623877,0.578212436798088],"hpluv":[264.663323368501551,415.294074833826699,31.9586404471462444],"hsluv":[264.663323368501551,89.4797268300864,31.9586404471462444]},"#2233dd":{"lch":[33.8316358854510284,114.480561125644712,264.87147297862515],"luv":[33.8316358854510284,-10.233440845943651,-114.022259072932982],"rgb":[0.133333333333333331,0.2,0.866666666666666696],"xyz":[0.148932030016826145,0.0792759519786159217,0.691542284698094],"hpluv":[264.87147297862515,429.386195390892226,33.8316358854510284],"hsluv":[264.87147297862515,90.9921469937159,33.8316358854510284]},"#2233ee":{"lch":[35.7523793143002209,124.226868169083772,265.031742065807748],"luv":[35.7523793143002209,-10.7585230682670669,-123.760126682580946],"rgb":[0.133333333333333331,0.2,0.933333333333333348],"xyz":[0.172744210283000882,0.0888008240850859387,0.816953100766617202],"hpluv":[265.031742065807748,440.909964314972513,35.7523793143002209],"hsluv":[265.031742065807748,93.1343838757889557,35.7523793143002209]},"#2233ff":{"lch":[37.7109573358094536,133.854664271403067,265.157628752861342],"luv":[37.7109573358094536,-11.2993072928814158,-133.376897556927247],"rgb":[0.133333333333333331,0.2,1],"xyz":[0.198915258692832275,0.0992692434490186487,0.954787289058399],"hpluv":[265.157628752861342,450.407151983715153,37.7109573358094536],"hsluv":[265.157628752861342,99.9999999999994884,37.7109573358094536]},"#77cc00":{"lch":[74.2578384949046892,97.2071675743180776,115.806356387580706],"luv":[74.2578384949046892,-42.3172913249353897,87.5127435448238202],"rgb":[0.466666666666666674,0.8,0],"xyz":[0.291994990493124773,0.47106497957174448,0.0755391193650810505],"hpluv":[115.806356387580706,166.109821583261578,74.2578384949046892],"hsluv":[115.806356387580706,100.000000000002331,74.2578384949046892]},"#77cc11":{"lch":[74.283676291108776,96.1575231653334441,116.077287726142885],"luv":[74.283676291108776,-42.2692272766684525,86.3688698937585144],"rgb":[0.466666666666666674,0.8,0.0666666666666666657],"xyz":[0.293006655992761877,0.471469645771599333,0.0808672243298366872],"hpluv":[116.077287726142885,164.2590118749402,74.283676291108776],"hsluv":[116.077287726142885,98.5840266713216522,74.283676291108776]},"#77cc22":{"lch":[74.3315335987815331,94.2328042547367914,116.591431825394338],"luv":[74.3315335987815331,-42.1809937248656581,84.2649699821603519],"rgb":[0.466666666666666674,0.8,0.133333333333333331],"xyz":[0.294882014131238934,0.472219789026990133,0.0907441105258158798],"hpluv":[116.591431825394338,160.867513369155,74.3315335987815331],"hsluv":[116.591431825394338,95.9817736999432611,74.3315335987815331]},"#77cc33":{"lch":[74.410219680569412,91.1231466477069176,117.473161926834081],"luv":[74.410219680569412,-42.0381214847294515,80.8469182901527148],"rgb":[0.466666666666666674,0.8,0.2],"xyz":[0.29796976486369664,0.47345488931997326,0.10700626438342703],"hpluv":[117.473161926834081,155.394430123968846,74.410219680569412],"hsluv":[117.473161926834081,91.7599970515073551,74.410219680569412]},"#77cc44":{"lch":[74.5235830687713445,86.7634188586395,118.828926444460791],"luv":[74.5235830687713445,-41.8369758074171045,76.0102513305232748],"rgb":[0.466666666666666674,0.8,0.266666666666666663],"xyz":[0.302427760107915555,0.475238087417660826,0.130485039336313668],"hpluv":[118.828926444460791,147.734611978654129,74.5235830687713445],"hsluv":[118.828926444460791,85.7987877580492153,74.5235830687713445]},"#77cc55":{"lch":[74.6747602628398,81.1723246922669688,120.810965560633605],"luv":[74.6747602628398,-41.5770530159641396,69.7158156981220571],"rgb":[0.466666666666666674,0.8,0.333333333333333315],"xyz":[0.30839017414727754,0.477623053033405687,0.161887086610287556],"hpluv":[120.810965560633605,137.934680546119694,74.6747602628398],"hsluv":[120.810965560633605,78.0638956664307671,74.6747602628398]},"#77cc66":{"lch":[74.866352492363319,74.4599116278811692,123.651008617564372],"luv":[74.866352492363319,-41.2606832822808798,61.982533464768764],"rgb":[0.466666666666666674,0.8,0.4],"xyz":[0.315975169920785726,0.480657051342809,0.201834731017431546],"hpluv":[123.651008617564372,126.204595224585091,74.866352492363319],"hsluv":[123.651008617564372,68.5978490432360388,74.866352492363319]},"#77cc77":{"lch":[75.1005189251371519,66.8471540376336719,127.715012949239053],"luv":[75.1005189251371519,-40.8926996459993219,52.8803282761483189],"rgb":[0.466666666666666674,0.8,0.466666666666666674],"xyz":[0.325289182940987631,0.484382656550889801,0.250888532923829455],"hpluv":[127.715012949239053,112.948199149412858,75.1005189251371519],"hsluv":[127.715012949239053,57.5107647824030153,75.1005189251371519]},"#77cc88":{"lch":[75.3790318815133,58.7087525381891311,133.590980823477452],"luv":[75.3790318815133,-40.4800101313413947,42.5215992685696946],"rgb":[0.466666666666666674,0.8,0.533333333333333326],"xyz":[0.336429600042931432,0.488838823391667399,0.309561396327401595],"hpluv":[133.590980823477452,98.8306436104363542,75.3790318815133],"hsluv":[133.590980823477452,58.7660231359317748,75.3790318815133]},"#77cc99":{"lch":[75.7033128937519848,50.6622606125816759,142.200076129410462],"luv":[75.7033128937519848,-40.0310804193600305,31.0512036938324556],"rgb":[0.466666666666666674,0.8,0.6],"xyz":[0.349486564152004187,0.494061609035296556,0.378328073968519529],"hpluv":[142.200076129410462,84.9198084445103802,75.7033128937519848],"hsluv":[142.200076129410462,60.1459848784672815,75.7033128937519848]},"#77ccaa":{"lch":[76.0744587192654,43.7254195479873289,154.773618890386814],"luv":[76.0744587192654,-39.5553661600219684,18.6355928962322395],"rgb":[0.466666666666666674,0.8,0.66666666666666663],"xyz":[0.364544257117256687,0.500084686221397678,0.45763192358551813],"hpluv":[154.773618890386814,73.067319501552376,76.0744587192654],"hsluv":[154.773618890386814,61.6269813218812459,76.0744587192654]},"#77ccbb":{"lch":[76.4932621718819235,39.4413790272598561,172.054536865796422],"luv":[76.4932621718819235,-39.0627454070693716,5.45199970968949721],"rgb":[0.466666666666666674,0.8,0.733333333333333282],"xyz":[0.381681849224593361,0.506939723064332437,0.547889908684159876],"hpluv":[172.054536865796422,67.3385729198675733,76.4932621718819235],"hsluv":[172.054536865796422,63.1840553036415713,76.4932621718819235]},"#77cccc":{"lch":[76.9602305249106,39.4506200876857847,192.177050630060961],"luv":[76.9602305249106,-38.5629992967744357,-8.32144882456723778],"rgb":[0.466666666666666674,0.8,0.8],"xyz":[0.400974224668315116,0.514656673241821183,0.64949641935443],"hpluv":[192.177050630060961,69.0111626451701312,76.9602305249106],"hsluv":[192.177050630060961,64.792316690459316,76.9602305249106]},"#77ccdd":{"lch":[77.4756030772436475,44.2250390945155942,210.602473757279853],"luv":[77.4756030772436475,-38.0653777824919359,-22.5140200139291444],"rgb":[0.466666666666666674,0.8,0.866666666666666696],"xyz":[0.422492550218948604,0.5232640034620748,0.762826267254436],"hpluv":[210.602473757279853,79.5030322309331439,77.4756030772436475],"hsluv":[210.602473757279853,66.4280770246703156,77.4756030772436475]},"#77ccee":{"lch":[78.0393687787239116,52.7144148097026246,224.531483635923479],"luv":[78.0393687787239116,-37.5782716813780482,-36.9686762837126182],"rgb":[0.466666666666666674,0.8,0.933333333333333348],"xyz":[0.446304730485123369,0.532788875568544817,0.888237083322959253],"hpluv":[224.531483635923479,97.6926138158747648,78.0393687787239116],"hsluv":[224.531483635923479,71.3781641956177282,78.0393687787239116]},"#77ccff":{"lch":[78.6512843692400736,63.5145451324089052,234.249283216901347],"luv":[78.6512843692400736,-37.1089966152940249,-51.5462880679385549],"rgb":[0.466666666666666674,0.8,1],"xyz":[0.472475778894954734,0.54325729493247743,1.0260712716147411],"hpluv":[234.249283216901347,121.749546403725816,78.6512843692400736],"hsluv":[234.249283216901347,99.9999999999968168,78.6512843692400736]},"#224400":{"lch":[25.1809799681870601,33.4179584834008523,116.999863609689683],"luv":[25.1809799681870601,-15.1713647924420147,29.7756551486773162],"rgb":[0.133333333333333331,0.266666666666666663,0],"xyz":[0.0272670407739683193,0.0447420690542179589,0.00719932696972761486],"hpluv":[116.999863609689683,168.401755360818214,25.1809799681870601],"hsluv":[116.999863609689683,100.000000000002217,25.1809799681870601]},"#224411":{"lch":[25.304760275593587,29.8643723317269938,120.153298663054528],"luv":[25.304760275593587,-15.0013316265206242,25.8232605261065515],"rgb":[0.133333333333333331,0.266666666666666663,0.0666666666666666657],"xyz":[0.0282787062736054411,0.0451467352540728117,0.0125274319344832463],"hpluv":[120.153298663054528,149.758158325470362,25.304760275593587],"hsluv":[120.153298663054528,85.5029145399767287,25.304760275593587]},"#224422":{"lch":[25.5322735505540379,24.0578500603585184,127.715012949239281],"luv":[25.5322735505540379,-14.7170130248608242,19.0312815425753499],"rgb":[0.133333333333333331,0.266666666666666663,0.133333333333333331],"xyz":[0.0301540644120824597,0.0458968785094636331,0.0224043181304624424],"hpluv":[127.715012949239281,119.565711231297882,25.5322735505540379],"hsluv":[127.715012949239281,60.8802579098014363,25.5322735505540379]},"#224433":{"lch":[25.9015299317797343,16.981905402382786,147.498859327993841],"luv":[25.9015299317797343,-14.3222120947549634,9.12465625699578098],"rgb":[0.133333333333333331,0.266666666666666663,0.2],"xyz":[0.0332418151445402,0.0471319788024467459,0.0386664719880735891],"hpluv":[147.498859327993841,83.1955939146196357,25.9015299317797343],"hsluv":[147.498859327993841,64.09678513773909,25.9015299317797343]},"#224444":{"lch":[26.423438440277998,14.1959776348833024,192.177050630061],"luv":[26.423438440277998,-13.8765746732054378,-2.99440417262938974],"rgb":[0.133333333333333331,0.266666666666666663,0.266666666666666663],"xyz":[0.0376998103887590807,0.048915176900134319,0.0621452469409602276],"hpluv":[192.177050630061,68.1734546180548762,26.423438440277998],"hsluv":[192.177050630061,67.9066037165366367,26.423438440277998]},"#224455":{"lch":[27.1020089847707979,21.1158760403194243,230.453768193421723],"luv":[27.1020089847707979,-13.4444916811297333,-16.2826860310628518],"rgb":[0.133333333333333331,0.266666666666666663,0.333333333333333315],"xyz":[0.0436622244281210728,0.0513001425158791519,0.0935472942149341291],"hpluv":[230.453768193421723,98.865995891455,27.1020089847707979],"hsluv":[230.453768193421723,71.8953118433392717,27.1020089847707979]},"#224466":{"lch":[27.935501760142138,32.6185654266362306,246.366656325875056],"luv":[27.935501760142138,-13.0762038460066634,-29.8828329224226863],"rgb":[0.133333333333333331,0.266666666666666663,0.4],"xyz":[0.0512472202016292511,0.0543341408252824634,0.133494938622078091],"hpluv":[246.366656325875056,148.165710166053657,27.935501760142138],"hsluv":[246.366656325875056,75.7322080769735351,27.935501760142138]},"#224477":{"lch":[28.9175817086007072,45.1016041758277453,253.511262930840303],"luv":[28.9175817086007072,-12.8010466495854338,-43.2468253621948548],"rgb":[0.133333333333333331,0.266666666666666663,0.466666666666666674],"xyz":[0.0605612332218311636,0.0580597460333632798,0.182548740528476],"hpluv":[253.511262930840303,197.910731630760921,28.9175817086007072],"hsluv":[253.511262930840303,79.2164102145581381,28.9175817086007072]},"#224488":{"lch":[30.0385370730522183,57.5093846577101502,257.31357801273],"luv":[30.0385370730522183,-12.6299243743950456,-56.1053859625395432],"rgb":[0.133333333333333331,0.266666666666666663,0.533333333333333326],"xyz":[0.0717016503237749847,0.0625159128741408776,0.241221603932048168],"hpluv":[257.31357801273,242.94013543841632,30.0385370730522183],"hsluv":[257.31357801273,82.2624245727818106,30.0385370730522183]},"#224499":{"lch":[31.2864747985506213,69.5224780150470139,259.59064804278853],"luv":[31.2864747985506213,-12.5612993437317204,-68.3782765807230675],"rgb":[0.133333333333333331,0.266666666666666663,0.6],"xyz":[0.084758614432847712,0.0677386985177700351,0.309988281573166102],"hpluv":[259.59064804278853,281.973268281811727,31.2864747985506213],"hsluv":[259.59064804278853,84.8626039888072796,31.2864747985506213]},"#2244aa":{"lch":[32.6483868166792277,81.0719578322086676,261.068394107427196],"luv":[32.6483868166792277,-12.5868550230291323,-80.0889095154670372],"rgb":[0.133333333333333331,0.266666666666666663,0.66666666666666663],"xyz":[0.0998163073981002402,0.0737617757038711297,0.389292131190164703],"hpluv":[261.068394107427196,315.099896322028769,32.6483868166792277],"hsluv":[261.068394107427196,87.0515845849570695,32.6483868166792277]},"#2244bb":{"lch":[34.1110146972578292,92.183713113584,262.084105297610279],"luv":[34.1110146972578292,-12.6954785449376448,-91.3053217940914266],"rgb":[0.133333333333333331,0.266666666666666663,0.733333333333333282],"xyz":[0.116953899505436887,0.0806168125468058883,0.479550116288806449],"hpluv":[262.084105297610279,342.924793116778346,34.1110146972578292],"hsluv":[262.084105297610279,88.8814901896574128,34.1110146972578292]},"#2244cc":{"lch":[35.6614866183058439,102.915147630289923,262.812952152813068],"luv":[35.6614866183058439,-12.875606592693158,-102.106544191029045],"rgb":[0.133333333333333331,0.266666666666666663,0.8],"xyz":[0.136246274949158641,0.0883337627242946899,0.58115662695907655],"hpluv":[262.812952152813068,366.200711918304478,35.6614866183058439],"hsluv":[262.812952152813068,90.4075680541016453,35.6614866183058439]},"#2244dd":{"lch":[37.2877389569632456,113.32806156453313,263.353781276912969],"luv":[37.2877389569632456,-13.1164125913708496,-112.566465959927598],"rgb":[0.133333333333333331,0.266666666666666663,0.866666666666666696],"xyz":[0.157764600499792185,0.0969410929445482239,0.694486474859082548],"hpluv":[263.353781276912969,385.665452845521429,37.2877389569632456],"hsluv":[263.353781276912969,91.6811227311716408,37.2877389569632456]},"#2244ee":{"lch":[38.9787575249373575,123.477944203962494,263.76603971616106],"luv":[38.9787575249373575,-13.4082956886680194,-122.74779147325674],"rgb":[0.133333333333333331,0.266666666666666663,0.933333333333333348],"xyz":[0.181576780765966922,0.106465965051018269,0.819897290927605771],"hpluv":[263.76603971616106,401.976556214066079,38.9787575249373575],"hsluv":[263.76603971616106,92.7467647141115208,38.9787575249373575]},"#2244ff":{"lch":[40.7246816385265333,133.410810959437413,264.087324287658078],"luv":[40.7246816385265333,-13.7429938745542355,-132.701072340123574],"rgb":[0.133333333333333331,0.266666666666666663,1],"xyz":[0.207747829175798315,0.116934384414950965,0.957731479219387616],"hpluv":[264.087324287658078,415.692943868353552,40.7246816385265333],"hsluv":[264.087324287658078,99.9999999999994174,40.7246816385265333]},"#77dd00":{"lch":[79.4046595803128525,106.500737968556749,117.886764510297155],"luv":[79.4046595803128525,-49.8131268255250319,94.1332012826045457],"rgb":[0.466666666666666674,0.866666666666666696,0],"xyz":[0.3346289810403,0.556332960666096,0.089750449547472369],"hpluv":[117.886764510297155,213.048114553231642,79.4046595803128525],"hsluv":[117.886764510297155,100.000000000002288,79.4046595803128525]},"#77dd11":{"lch":[79.427785829561941,105.558219679332908,118.124490997004173],"luv":[79.427785829561941,-49.7589732732473422,93.0944806133132801],"rgb":[0.466666666666666674,0.866666666666666696,0.0666666666666666657],"xyz":[0.335640646539937082,0.556737626865951,0.095078554512228],"hpluv":[118.124490997004173,211.44368721760469,79.427785829561941],"hsluv":[118.124490997004173,98.7993418471683498,79.427785829561941]},"#77dd22":{"lch":[79.4706261070012658,103.827566318990023,118.57359388187615],"luv":[79.4706261070012658,-49.6593926395600249,91.1817319993116],"rgb":[0.466666666666666674,0.866666666666666696,0.133333333333333331],"xyz":[0.337516004678414139,0.557487770121341764,0.104955440708207198],"hpluv":[118.57359388187615,208.49071074424171,79.4706261070012658],"hsluv":[118.57359388187615,96.5898934808467,79.4706261070012658]},"#77dd33":{"lch":[79.5410783702752582,101.02472031386101,119.337697767432388],"luv":[79.5410783702752582,-49.4976803830995067,88.0680063995226874],"rgb":[0.466666666666666674,0.866666666666666696,0.2],"xyz":[0.340603755410871845,0.55872287041432489,0.121217594565818348],"hpluv":[119.337697767432388,203.689012727245881,79.5410783702752582],"hsluv":[119.337697767432388,92.9973786049096276,79.5410783702752582]},"#77dd44":{"lch":[79.6426121547728485,97.0801788178617073,120.498016398630853],"luv":[79.6426121547728485,-49.2690191092090188,83.6488187323909642],"rgb":[0.466666666666666674,0.866666666666666696,0.266666666666666663],"xyz":[0.34506175065509076,0.560506068512012456,0.144696369518705],"hpluv":[120.498016398630853,196.890303230407255,79.6426121547728485],"hsluv":[120.498016398630853,87.9077551580221126,79.6426121547728485]},"#77dd55":{"lch":[79.7780740091910729,91.9929116678805912,122.163902680224],"luv":[79.7780740091910729,-48.9717875622404577,77.8746417012192325],"rgb":[0.466666666666666674,0.866666666666666696,0.333333333333333315],"xyz":[0.351024164694452745,0.562891034127757206,0.176098416792678902],"hpluv":[122.163902680224,188.049297266091,79.7780740091910729],"hsluv":[122.163902680224,81.2740392578912889,79.7780740091910729]},"#77dd66":{"lch":[79.9498479155991788,85.8342168020908645,124.492086237753256],"luv":[79.9498479155991788,-48.6072648253697466,70.7449403153661],"rgb":[0.466666666666666674,0.866666666666666696,0.4],"xyz":[0.35860916046796093,0.565925032437160525,0.216046061199822836],"hpluv":[124.492086237753256,177.233761467474238,79.9498479155991788],"hsluv":[124.492086237753256,73.1095665987697174,79.9498479155991788]},"#77dd77":{"lch":[80.1599403321921,78.7586110849663896,127.715012949239352],"luv":[80.1599403321921,-48.1793469594900188,62.3030444407821093],"rgb":[0.466666666666666674,0.866666666666666696,0.466666666666666674],"xyz":[0.367923173488162836,0.569650637645241376,0.265099863106220746],"hpluv":[127.715012949239352,164.652954432832814,80.1599403321921],"hsluv":[127.715012949239352,63.4818861677236654,80.1599403321921]},"#77dd88":{"lch":[80.4100305893493754,71.0258644695610855,132.183293417803185],"luv":[80.4100305893493754,-47.69419139775556,52.6301959958607597],"rgb":[0.466666666666666674,0.866666666666666696,0.533333333333333326],"xyz":[0.379063590590106636,0.574106804486018918,0.323772726509792941],"hpluv":[132.183293417803185,150.716476916292407,80.4100305893493754],"hsluv":[132.183293417803185,64.4129914780986184,80.4100305893493754]},"#77dd99":{"lch":[80.7015034668449829,63.0436351039456042,138.421724913218469],"luv":[80.7015034668449829,-47.1597772740100254,41.838443261971527],"rgb":[0.466666666666666674,0.866666666666666696,0.6],"xyz":[0.392120554699179391,0.579329590129648131,0.39253940415091082],"hpluv":[138.421724913218469,136.149613262507529,80.7015034668449829],"hsluv":[138.421724913218469,65.4455974050235909,80.7015034668449829]},"#77ddaa":{"lch":[81.0354720941451916,55.4433276111880673,147.164903113494319],"luv":[81.0354720941451916,-46.5854032558204594,30.0626475895607292],"rgb":[0.466666666666666674,0.866666666666666696,0.66666666666666663],"xyz":[0.407178247664431892,0.585352667315749198,0.471843253767909421],"hpluv":[147.164903113494319,122.204418643173668,81.0354720941451916],"hsluv":[147.164903113494319,66.5644374268903505,81.0354720941451916]},"#77ddbb":{"lch":[81.4127955433910415,49.1817473647014651,159.215751775487576],"luv":[81.4127955433910415,-45.9811599326092804,17.452140415923953],"rgb":[0.466666666666666674,0.866666666666666696,0.733333333333333282],"xyz":[0.424315839771768566,0.592207704158684,0.562101238866551167],"hpluv":[159.215751775487576,110.971854928909636,81.4127955433910415],"hsluv":[159.215751775487576,67.7527973989238461,81.4127955433910415]},"#77ddcc":{"lch":[81.8340936239464298,45.5480287935550479,174.756411210455894],"luv":[81.8340936239464298,-45.3574175840417197,4.16264304083146897],"rgb":[0.466666666666666674,0.866666666666666696,0.8],"xyz":[0.44360821521549032,0.599924654336172813,0.663707749536821323],"hpluv":[174.756411210455894,105.54602277980743,81.8340936239464298],"hsluv":[174.756411210455894,68.9933910523739371,81.8340936239464298]},"#77dddd":{"lch":[82.299760373596115,45.7538051586653296,192.177050630060847],"luv":[82.299760373596115,-44.7243656053231931,-9.65100034703627],"rgb":[0.466666666666666674,0.866666666666666696,0.866666666666666696],"xyz":[0.465126540766123808,0.60853198455642632,0.777037597436827321],"hpluv":[192.177050630060847,109.256318691998032,82.299760373596115],"hsluv":[192.177050630060847,70.2691471280789557,82.299760373596115]},"#77ddee":{"lch":[82.8099771424448221,50.1244355238275574,208.400620203695752],"luv":[82.8099771424448221,-44.0916301090396274,-23.8408722766172367],"rgb":[0.466666666666666674,0.866666666666666696,0.933333333333333348],"xyz":[0.488938721032298573,0.618056856662896337,0.902448413505350544],"hpluv":[208.400620203695752,123.794681382199428,82.8099771424448221],"hsluv":[208.400620203695752,71.5638635335918,82.8099771424448221]},"#77ddff":{"lch":[83.364725787715372,57.9146258331384161,221.361714592462022],"luv":[83.364725787715372,-43.4679842885535521,-38.2705921992655504],"rgb":[0.466666666666666674,0.866666666666666696,1],"xyz":[0.515109769442129939,0.628525276026829061,1.0402826017971325],"hpluv":[221.361714592462022,148.517135389694232,83.364725787715372],"hsluv":[221.361714592462022,99.9999999999953531,83.364725787715372]},"#225500":{"lch":[31.4325909084541877,43.9203091385023825,121.065637009975248],"luv":[31.4325909084541877,-22.6637443991712324,37.6211143459447541],"rgb":[0.133333333333333331,0.333333333333333315,0],"xyz":[0.0390802974883142848,0.0683685824829102229,0.0111370792078428239],"hpluv":[121.065637009975248,177.306450001223254,31.4325909084541877],"hsluv":[121.065637009975248,100.000000000002373,31.4325909084541877]},"#225511":{"lch":[31.5259896590935043,41.027632513747335,123.178290947815412],"luv":[31.5259896590935043,-22.452213479362328,34.3389682366875704],"rgb":[0.133333333333333331,0.333333333333333315,0.0666666666666666657],"xyz":[0.04009196298795141,0.0687732486827650757,0.0164651841725984571],"hpluv":[123.178290947815412,165.138012967735222,31.5259896590935043],"hsluv":[123.178290947815412,90.3912533003173877,31.5259896590935043]},"#225522":{"lch":[31.6981615382414716,36.1013694166085486,127.715012949239792],"luv":[31.6981615382414716,-22.0844473877159331,28.5584673491706482],"rgb":[0.133333333333333331,0.333333333333333315,0.133333333333333331],"xyz":[0.0419673211264284252,0.0695233919381558901,0.0263420703685776497],"hpluv":[127.715012949239792,144.520324593974209,31.6981615382414716],"hsluv":[127.715012949239792,73.5866039174798345,31.6981615382414716]},"#225533":{"lch":[31.9789617713411829,29.2625646618711706,137.400330584271074],"luv":[31.9789617713411829,-21.5402028917408828,19.8070025489176231],"rgb":[0.133333333333333331,0.333333333333333315,0.2],"xyz":[0.0450550718588861657,0.070758492231139,0.0426042242261888],"hpluv":[137.400330584271074,116.114739730974975,31.9789617713411829],"hsluv":[137.400330584271074,75.0932106461487,31.9789617713411829]},"#225544":{"lch":[32.3786649626227785,22.5648709259736577,157.632626155133437],"luv":[32.3786649626227785,-20.8671549807805796,8.58692278490586247],"rgb":[0.133333333333333331,0.333333333333333315,0.266666666666666663],"xyz":[0.0495130671031050462,0.072541690328826583,0.0660829991790754384],"hpluv":[157.632626155133437,88.4327727432137465,32.3786649626227785],"hsluv":[157.632626155133437,76.9882679005547459,32.3786649626227785]},"#225555":{"lch":[32.9031430542149863,20.5945867127178737,192.177050630061132],"luv":[32.9031430542149863,-20.1312179923833199,-4.34408379417313384],"rgb":[0.133333333333333331,0.333333333333333315,0.333333333333333315],"xyz":[0.0554754811424670383,0.0749266559445714159,0.0974850464530493399],"hpluv":[192.177050630061132,79.4245973683706268,32.9031430542149863],"hsluv":[192.177050630061132,79.1137061933639245,32.9031430542149863]},"#225566":{"lch":[33.5545056011551,26.6006796322727546,223.177731373198952],"luv":[33.5545056011551,-19.398136743372234,-18.2018803364993715],"rgb":[0.133333333333333331,0.333333333333333315,0.4],"xyz":[0.0630604769159752165,0.0779606542539747344,0.137432690860193302],"hpluv":[223.177731373198952,100.596116474312993,33.5545056011551],"hsluv":[223.177731373198952,81.3097794801720113,33.5545056011551]},"#225577":{"lch":[34.3316296590174,37.3644949384619807,239.932022094073261],"luv":[34.3316296590174,-18.7206257951117045,-32.3364137134245127],"rgb":[0.133333333333333331,0.333333333333333315,0.466666666666666674],"xyz":[0.0723744899361771221,0.0816862594620555438,0.186486492766591211],"hpluv":[239.932022094073261,138.103289638438355,34.3316296590174],"hsluv":[239.932022094073261,83.4469752602442298,34.3316296590174]},"#225588":{"lch":[35.230707776085,49.7211482448765594,248.610781811292384],"luv":[35.230707776085,-18.1333810040152876,-46.2965773697387775],"rgb":[0.133333333333333331,0.333333333333333315,0.533333333333333326],"xyz":[0.0835149070381209502,0.0861424263028331416,0.245159356170163378],"hpluv":[248.610781811292384,179.084957393431893,35.230707776085],"hsluv":[248.610781811292384,85.4385601139613158,35.230707776085]},"#225599":{"lch":[36.2458273864096512,62.3718238545276336,253.557833057747018],"luv":[36.2458273864096512,-17.6541819100499602,-59.8211858126123],"rgb":[0.133333333333333331,0.333333333333333315,0.6],"xyz":[0.0965718711471936775,0.0913652119464623,0.313926033811281313],"hpluv":[253.557833057747018,218.35832406203005,36.2458273864096512],"hsluv":[253.557833057747018,87.2381583586425791,36.2458273864096512]},"#2255aa":{"lch":[37.3695533294905928,74.8190204360075,256.640324292617947],"luv":[37.3695533294905928,-17.2879233745104131,-72.7943234352841841],"rgb":[0.133333333333333331,0.333333333333333315,0.66666666666666663],"xyz":[0.111629564112446206,0.0973882891325634,0.393229883428279914],"hpluv":[256.640324292617947,254.058329165629146,37.3695533294905928],"hsluv":[256.640324292617947,88.8301308270208807,37.3695533294905928]},"#2255bb":{"lch":[38.5934754222231291,86.8805221786483,258.695157685582501],"luv":[38.5934754222231291,-17.0311035792378,-85.1948745225196831],"rgb":[0.133333333333333331,0.333333333333333315,0.733333333333333282],"xyz":[0.128767156219782852,0.104243325975498152,0.48348786852692166],"hpluv":[258.695157685582501,285.658965815982469,38.5934754222231291],"hsluv":[258.695157685582501,90.2188193496234874,38.5934754222231291]},"#2255cc":{"lch":[39.9086891196534097,98.5112685419302,260.136263381096],"luv":[39.9086891196534097,-16.8755295039118458,-97.0550695930042],"rgb":[0.133333333333333331,0.333333333333333315,0.8],"xyz":[0.148059531663504607,0.111960276152986954,0.585094379197191761],"hpluv":[260.136263381096,313.22597901471056,39.9086891196534097],"hsluv":[260.136263381096,91.4196885710314433,39.9086891196534097]},"#2255dd":{"lch":[41.3061900239028503,109.727240919989157,261.187210775965298],"luv":[41.3061900239028503,-16.8109176424286737,-108.431823962952976],"rgb":[0.133333333333333331,0.333333333333333315,0.866666666666666696],"xyz":[0.16957785721413815,0.120567606373240488,0.698424227097197758],"hpluv":[261.187210775965298,337.084394380702577,41.3061900239028503],"hsluv":[261.187210775965298,92.4531471705562353,41.3061900239028503]},"#2255ee":{"lch":[42.7771763125841602,120.569176865205208,261.977669343247612],"luv":[42.7771763125841602,-16.8265186863462972,-119.389256965822398],"rgb":[0.133333333333333331,0.333333333333333315,0.933333333333333348],"xyz":[0.193390037480312887,0.130092478479710533,0.823835043165721],"hpluv":[261.977669343247612,357.654347674158601,42.7771763125841602],"hsluv":[261.977669343247612,93.3407272081067,42.7771763125841602]},"#2255ff":{"lch":[44.3132637322964129,131.084767922007643,262.587267096581058],"luv":[44.3132637322964129,-16.9120289519133,-129.989229007238322],"rgb":[0.133333333333333331,0.333333333333333315,1],"xyz":[0.219561085890144281,0.140560897843643229,0.961669231457502827],"hpluv":[262.587267096581058,375.368494421854962,44.3132637322964129],"hsluv":[262.587267096581058,99.9999999999993463,44.3132637322964129]},"#77ee00":{"lch":[84.5193058633960703,115.647601499010833,119.483871035599748],"luv":[84.5193058633960703,-56.9192667804191,100.670575649757225],"rgb":[0.466666666666666674,0.933333333333333348,0],"xyz":[0.381807757380814794,0.650690513347127,0.105476708327643554],"hpluv":[119.483871035599748,321.869538605652735,84.5193058633960703],"hsluv":[119.483871035599748,100.000000000002359,84.5193058633960703]},"#77ee11":{"lch":[84.5401392884337355,114.795422022346642,119.691827475064969],"luv":[84.5401392884337355,-56.862163274863434,99.7230329712822083],"rgb":[0.466666666666666674,0.933333333333333348,0.0666666666666666657],"xyz":[0.382819422880451898,0.651095179546981928,0.11080481329239919],"hpluv":[119.691827475064969,319.985367790437692,84.5401392884337355],"hsluv":[119.691827475064969,98.9722780394741477,84.5401392884337355]},"#77ee22":{"lch":[84.5787360835130499,113.228793274865538,120.083373039169615],"luv":[84.5787360835130499,-56.7570256545281637,97.9765260934141651],"rgb":[0.466666666666666674,0.933333333333333348,0.133333333333333331],"xyz":[0.384694781018928955,0.651845322802372729,0.120681699488378383],"hpluv":[120.083373039169615,316.512949618186383,84.5787360835130499],"hsluv":[120.083373039169615,97.0790709390529,84.5787360835130499]},"#77ee33":{"lch":[84.6422206992536275,110.686316006337648,120.745647293955486],"luv":[84.6422206992536275,-56.585921413754825,95.1288286946244313],"rgb":[0.466666666666666674,0.933333333333333348,0.2],"xyz":[0.387782531751386661,0.653080423095355855,0.136943853345989519],"hpluv":[120.745647293955486,310.853610471304819,84.6422206992536275],"hsluv":[120.745647293955486,93.9952250088888093,84.6422206992536275]},"#77ee44":{"lch":[84.7337366993681513,107.096480548503891,121.742158736883837],"luv":[84.7337366993681513,-56.3431952848259598,91.0774422728923412],"rgb":[0.466666666666666674,0.933333333333333348,0.266666666666666663],"xyz":[0.392240526995605576,0.654863621193043421,0.160422628298876158],"hpluv":[121.742158736883837,302.811644310583176,84.7337366993681513],"hsluv":[121.742158736883837,89.6144795711786628,84.7337366993681513]},"#77ee55":{"lch":[84.8558768548969766,102.444399932600575,123.154228511336783],"luv":[84.8558768548969766,-56.0262879596216621,85.7666026785261266],"rgb":[0.466666666666666674,0.933333333333333348,0.333333333333333315],"xyz":[0.398202941034967561,0.657248586808788171,0.191824675572850073],"hpluv":[123.154228511336783,292.298881153811294,84.8558768548969766],"hsluv":[123.154228511336783,83.883891015311761,84.8558768548969766]},"#77ee66":{"lch":[85.0108293450033159,96.7735040486586,125.092887734820366],"luv":[85.0108293450033159,-55.6354444449268186,79.1821217654036],"rgb":[0.466666666666666674,0.933333333333333348,0.4],"xyz":[0.405787936808475747,0.66028258511819149,0.231772319979994035],"hpluv":[125.092887734820366,279.341716913636219,85.0108293450033159],"hsluv":[125.092887734820366,76.7984153057879411,85.0108293450033159]},"#77ee77":{"lch":[85.2004556710930814,90.1918871908529667,127.71501294923965],"luv":[85.2004556710930814,-55.1734745704367882,71.3474892261312306],"rgb":[0.466666666666666674,0.933333333333333348,0.466666666666666674],"xyz":[0.415101949828677652,0.664008190326272341,0.280826121886391944],"hpluv":[127.71501294923965,264.105357222364148,85.2004556710930814],"hsluv":[127.71501294923965,68.3966317942099522,85.2004556710930814]},"#77ee88":{"lch":[85.4263369442757323,82.8846309918514521,131.246169999264879],"luv":[85.4263369442757323,-54.6454688778224167,62.3196179848555],"rgb":[0.466666666666666674,0.933333333333333348,0.533333333333333326],"xyz":[0.426242366930621452,0.668464357167049883,0.339498985289964139],"hpluv":[131.246169999264879,246.94310788397641,85.4263369442757323],"hsluv":[131.246169999264879,69.0963798671032379,85.4263369442757323]},"#77ee99":{"lch":[85.6898036798217,75.1362836057233,136.010896750223054],"luv":[85.6898036798217,-54.0584447513185395,52.1837682153016473],"rgb":[0.466666666666666674,0.933333333333333348,0.6],"xyz":[0.439299331039694207,0.673687142810679096,0.408265662931082],"hpluv":[136.010896750223054,228.489214549916312,85.6898036798217],"hsluv":[136.010896750223054,69.8780652000076827,85.6898036798217]},"#77eeaa":{"lch":[85.9919564191548602,67.3699388554866232,142.461966648640384],"luv":[85.9919564191548602,-53.4209300451477489,41.0476904892764551],"rgb":[0.466666666666666674,0.933333333333333348,0.66666666666666663],"xyz":[0.454357024004946708,0.679710219996780163,0.487569512548080619],"hpluv":[142.461966648640384,209.826142071523691,85.9919564191548602],"hsluv":[142.461966648640384,70.7318226594993575,85.9919564191548602]},"#77eebb":{"lch":[86.3336811163097337,60.2064759054885243,151.166773543866697],"luv":[86.3336811163097337,-52.7425080063862524,29.0352818163428843],"rgb":[0.466666666666666674,0.933333333333333348,0.733333333333333282],"xyz":[0.471494616112283382,0.686565256839714921,0.577827497646722366],"hpluv":[151.166773543866697,192.758378827545073,86.3336811163097337],"hsluv":[151.166773543866697,71.6464628016145895,86.3336811163097337]},"#77eecc":{"lch":[86.7156615657761449,54.5207620102438284,162.626180625161169],"luv":[86.7156615657761449,-52.0333543078463094,16.2801575438255028],"rgb":[0.466666666666666674,0.933333333333333348,0.8],"xyz":[0.490786991556005137,0.694282207017203778,0.679434008316992522],"hpluv":[162.626180625161169,180.150974339718545,86.7156615657761449],"hsluv":[162.626180625161169,72.6100300694190111,86.7156615657761449]},"#77eedd":{"lch":[87.1383902516757445,51.3868015721907483,176.742975614533037],"luv":[87.1383902516757445,-51.3037971188162771,2.91955082350760353],"rgb":[0.466666666666666674,0.933333333333333348,0.866666666666666696],"xyz":[0.512305317106638625,0.702889537237457285,0.792763856216998519],"hpluv":[176.742975614533037,175.997429168902841,87.1383902516757445],"hsluv":[176.742975614533037,73.6103328445444305,87.1383902516757445]},"#77eeee":{"lch":[87.6021784736708327,51.7277775307036,192.177050630061075],"luv":[87.6021784736708327,-50.5639263491039941,-10.9111099540033418],"rgb":[0.466666666666666674,0.933333333333333348,0.933333333333333348],"xyz":[0.536117497372813334,0.712414409343927302,0.918174672285521742],"hpluv":[192.177050630061075,184.503896016801804,87.6021784736708327],"hsluv":[192.177050630061075,74.6354143053272594,87.6021784736708327]},"#77eeff":{"lch":[88.107166277409533,55.7808213308350673,206.722210113893169],"luv":[88.107166277409533,-49.8232704905303336,-25.0826981397535107],"rgb":[0.466666666666666674,0.933333333333333348,1],"xyz":[0.562288545782644755,0.72288282870786,1.05600886057730348],"hpluv":[206.722210113893169,208.278116369071,88.107166277409533],"hsluv":[206.722210113893169,99.9999999999928804,88.107166277409533]},"#226600":{"lch":[37.5582057574881532,54.1200869321592961,123.236537452327113],"luv":[37.5582057574881532,-29.6630419039077431,45.2668505040000824],"rgb":[0.133333333333333331,0.4,0],"xyz":[0.0541083551941607538,0.0984246978946035633,0.0161464317764581713],"hpluv":[123.236537452327113,182.849162381267462,37.5582057574881532],"hsluv":[123.236537452327113,100.000000000002288,37.5582057574881532]},"#226611":{"lch":[37.6315056544729529,51.7196180195473119,124.710513292064419],"luv":[37.6315056544729529,-29.4507212427394194,42.5155725160833242],"rgb":[0.133333333333333331,0.4,0.0666666666666666657],"xyz":[0.0551200206937978721,0.0988293640944584162,0.0214745367412138],"hpluv":[124.710513292064419,174.398618448608886,37.6315056544729529],"hsluv":[124.710513292064419,93.2756924270169918,37.6315056544729529]},"#226622":{"lch":[37.7668566222969062,47.5272711912458519,127.715012949240034],"luv":[37.7668566222969062,-29.0740638670039928,37.5970785719263176],"rgb":[0.133333333333333331,0.4,0.133333333333333331],"xyz":[0.0569953788322748942,0.0995795073498492306,0.031351422937193],"hpluv":[127.715012949240034,159.687663587322874,37.7668566222969062],"hsluv":[127.715012949240034,81.309482828258183,37.7668566222969062]},"#226633":{"lch":[37.9882367851431084,41.3581300307957349,133.555287588173542],"luv":[37.9882367851431084,-28.497993426715972,29.9726423642471254],"rgb":[0.133333333333333331,0.4,0.2],"xyz":[0.0600831295647326347,0.100814607642832343,0.0476135767948041438],"hpluv":[133.555287588173542,138.150062101989391,37.9882367851431084],"hsluv":[133.555287588173542,82.0766642375396742,37.9882367851431084]},"#226644":{"lch":[38.3046909892153806,34.1393686276432291,144.379277801066621],"luv":[38.3046909892153806,-27.7515572052733894,19.8833488873617412],"rgb":[0.133333333333333331,0.4,0.266666666666666663],"xyz":[0.0645411248089515083,0.102597805740519923,0.0710923517476907824],"hpluv":[144.379277801066621,113.094855071532635,38.3046909892153806],"hsluv":[144.379277801066621,83.0794073538424414,38.3046909892153806]},"#226655":{"lch":[38.7222568592555234,28.0005039743963025,163.778220785970291],"luv":[38.7222568592555234,-26.8857357715149732,7.82211191715276755],"rgb":[0.133333333333333331,0.4,0.333333333333333315],"xyz":[0.0705035388483135073,0.104982771356264756,0.102494399021664684],"hpluv":[163.778220785970291,91.7581213405574516,38.7222568592555234],"hsluv":[163.778220785970291,84.2573678500350809,38.7222568592555234]},"#226666":{"lch":[39.2444156655659739,26.5583838540848376,192.177050630061103],"luv":[39.2444156655659739,-25.9608324434988,-5.60204710632589631],"rgb":[0.133333333333333331,0.4,0.4],"xyz":[0.0780885346218216786,0.108016769665668075,0.142442043428808646],"hpluv":[192.177050630061103,85.8742788705857691,39.2444156655659739],"hsluv":[192.177050630061103,85.5381417500271652,39.2444156655659739]},"#226677":{"lch":[39.8723950361637449,31.9118423017057466,218.325872967111877],"luv":[39.8723950361637449,-25.034725973132506,-19.7895976345933065],"rgb":[0.133333333333333331,0.4,0.466666666666666674],"xyz":[0.0874025476420236,0.111742374873748884,0.191495845335206555],"hpluv":[218.325872967111877,101.559108573692257,39.8723950361637449],"hsluv":[218.325872967111877,86.8516914397336137,39.8723950361637449]},"#226688":{"lch":[40.6054458094686836,41.8995680003496318,234.7955790683381],"luv":[40.6054458094686836,-24.1549067561574908,-34.2361545477476241],"rgb":[0.133333333333333331,0.4,0.533333333333333326],"xyz":[0.0985429647439674261,0.116198541714526482,0.250168708738778722],"hpluv":[234.7955790683381,130.937664052949941,40.6054458094686836],"hsluv":[234.7955790683381,88.1401386465251733,40.6054458094686836]},"#226699":{"lch":[41.4411308461218226,53.8933488408681782,244.319142730286046],"luv":[41.4411308461218226,-23.3551142576285748,-48.5698639826860301],"rgb":[0.133333333333333331,0.4,0.6],"xyz":[0.11159992885304014,0.12142132735815564,0.318935386379896657],"hpluv":[244.319142730286046,165.022400136876769,41.4411308461218226],"hsluv":[244.319142730286046,89.3619383181549267,41.4411308461218226]},"#2266aa":{"lch":[42.3756299296545578,66.5269840788925251,250.089735516440328],"luv":[42.3756299296545578,-22.655631138578233,-62.5504755245386193],"rgb":[0.133333333333333331,0.4,0.66666666666666663],"xyz":[0.126657621818292682,0.127444404544256734,0.398239235996895258],"hpluv":[250.089735516440328,199.214522587526545,42.3756299296545578],"hsluv":[250.089735516440328,90.4915899210210597,42.3756299296545578]},"#2266bb":{"lch":[43.404050412459263,79.1834510223872599,253.819475134999237],"luv":[43.404050412459263,-22.0656311263342282,-76.0468726432017803],"rgb":[0.133333333333333331,0.4,0.733333333333333282],"xyz":[0.143795213925629328,0.134299441387191493,0.488497221095537],"hpluv":[253.819475134999237,231.496000814517572,43.404050412459263],"hsluv":[253.819475134999237,91.5168425909476895,43.404050412459263]},"#2266cc":{"lch":[44.520728505208055,91.5877705166709,256.367788484306971],"luv":[44.520728505208055,-21.5861851194902563,-89.0076194502553193],"rgb":[0.133333333333333331,0.4,0.8],"xyz":[0.163087589369351083,0.142016391564680294,0.590103731765807105],"hpluv":[256.367788484306971,261.044502527732277,44.520728505208055],"hsluv":[256.367788484306971,92.43509558526695,44.520728505208055]},"#2266dd":{"lch":[45.7195068588792211,103.627896901795907,258.1878164043369],"luv":[45.7195068588792211,-21.2130654589597789,-101.433460308337743],"rgb":[0.133333333333333331,0.4,0.866666666666666696],"xyz":[0.184605914919984626,0.150623721784933828,0.703433579665813102],"hpluv":[258.1878164043369,287.616948003961852,45.7195068588792211],"hsluv":[258.1878164043369,93.2500413525610696,45.7195068588792211]},"#2266ee":{"lch":[46.9939777237187144,115.273293340910215,259.534328145616598],"luv":[46.9939777237187144,-20.9389771714321675,-113.35559709460216],"rgb":[0.133333333333333331,0.4,0.933333333333333348],"xyz":[0.208418095186159336,0.160148593891403873,0.828844395734336326],"hpluv":[259.534328145616598,311.261797341727515,46.9939777237187144],"hsluv":[259.534328145616598,93.969002023907521,46.9939777237187144]},"#2266ff":{"lch":[48.3376856243364728,126.534150990995641,260.559220542156197],"luv":[48.3376856243364728,-20.75515631493003,-124.820330288598825],"rgb":[0.133333333333333331,0.4,1],"xyz":[0.234589143595990757,0.170617013255336569,0.966678584026118171],"hpluv":[260.559220542156197,332.170629177470857,48.3376856243364728],"hsluv":[260.559220542156197,99.9999999999992184,48.3376856243364728]},"#77ff00":{"lch":[89.5984732569245921,124.632639236881928,120.733702851753719],"luv":[89.5984732569245921,-63.6933378884713406,107.128210438594465],"rgb":[0.466666666666666674,1,0],"xyz":[0.433660129810488626,0.754395258206476127,0.122760832470867665],"hpluv":[120.733702851753719,538.628162219261071,89.5984732569245921],"hsluv":[120.733702851753719,100.000000000002359,89.5984732569245921]},"#77ff11":{"lch":[89.6173512893739144,123.857431845856226,120.915842858481739],"luv":[89.6173512893739144,-63.635285050623331,106.260123846986147],"rgb":[0.466666666666666674,1,0.0666666666666666657],"xyz":[0.43467179531012573,0.754799924406331,0.128088937435623301],"hpluv":[120.915842858481739,536.333532616984598,89.6173512893739144],"hsluv":[120.915842858481739,99.9999999999912461,89.6173512893739144]},"#77ff22":{"lch":[89.6523282897647107,122.430860002153082,121.257903913559275],"luv":[89.6523282897647107,-63.5282943614823736,104.658832863679763],"rgb":[0.466666666666666674,1,0.133333333333333331],"xyz":[0.436547153448602787,0.755550067661721836,0.13796582363160248],"hpluv":[121.257903913559275,532.099457877515,89.6523282897647107],"hsluv":[121.257903913559275,99.9999999999912319,89.6523282897647107]},"#77ff33":{"lch":[89.7098670229763684,120.111567958755899,121.833904144252088],"luv":[89.7098670229763684,-63.3538816193187557,102.044472860004433],"rgb":[0.466666666666666674,1,0.2],"xyz":[0.439634904181060493,0.756785167954705,0.15422797748921363],"hpluv":[121.833904144252088,525.184015431200237,89.7098670229763684],"hsluv":[121.833904144252088,99.9999999999911893,89.7098670229763684]},"#77ff44":{"lch":[89.7928292607091834,116.827732221897932,122.694629127971339],"luv":[89.7928292607091834,-63.1058355300939766,98.317712230097257],"rgb":[0.466666666666666674,1,0.266666666666666663],"xyz":[0.444092899425279408,0.758568366052392529,0.177706752442100269],"hpluv":[122.694629127971339,515.324540814372313,89.7928292607091834],"hsluv":[122.694629127971339,99.9999999999912319,89.7928292607091834]},"#77ff55":{"lch":[89.9035853929870683,112.554947355203538,123.902387884937639],"luv":[89.9035853929870683,-62.7808648215699492,93.4193726503684161],"rgb":[0.466666666666666674,1,0.333333333333333315],"xyz":[0.450055313464641393,0.760953331668137278,0.209108799716074184],"hpluv":[123.902387884937639,502.374863630046946,89.9035853929870683],"hsluv":[123.902387884937639,99.9999999999911466,89.9035853929870683]},"#77ff66":{"lch":[90.0441481999633169,107.316590618570714,125.538864396596409],"luv":[90.0441481999633169,-62.3783098318914213,87.3258099562234662],"rgb":[0.466666666666666674,1,0.4],"xyz":[0.457640309238149579,0.763987329977540597,0.249056444123218146],"hpluv":[125.538864396596409,486.310350268178581,90.0441481999633169],"hsluv":[125.538864396596409,99.9999999999909193,90.0441481999633169]},"#77ff77":{"lch":[90.2162444924982,101.18761180958829,127.715012949239778],"luv":[90.2162444924982,-61.8999369112410065,80.0458031011764746],"rgb":[0.466666666666666674,1,0.466666666666666674],"xyz":[0.466954322258351484,0.767712935185621448,0.298110246029616055],"hpluv":[127.715012949239778,467.252180695244249,90.2162444924982],"hsluv":[127.715012949239778,99.9999999999908908,90.2162444924982]},"#77ff88":{"lch":[90.4213578195287084,94.3018691223763312,130.584388318929172],"luv":[90.4213578195287084,-61.3497133683486666,71.6174223886566352],"rgb":[0.466666666666666674,1,0.533333333333333326],"xyz":[0.478094739360295284,0.772169102026399,0.35678310943318825],"hpluv":[130.584388318929172,445.517691352744919,90.4213578195287084],"hsluv":[130.584388318929172,99.999999999990834,90.4213578195287084]},"#77ff99":{"lch":[90.660755936805927,86.8649116623181,134.360625617567337],"luv":[90.660755936805927,-60.7335297134313734,62.1043577106315],"rgb":[0.466666666666666674,1,0.6],"xyz":[0.491151703469368,0.777391887670028203,0.425549787074306129],"hpluv":[134.360625617567337,421.714412879972315,90.660755936805927],"hsluv":[134.360625617567337,99.9999999999904645,90.660755936805927]},"#77ffaa":{"lch":[90.9355096576679927,79.1755179707932513,139.336843070371486],"luv":[90.9355096576679927,-60.0588662825700368,51.5916197341755947],"rgb":[0.466666666666666674,1,0.66666666666666663],"xyz":[0.506209396434620595,0.78341496485612927,0.504853636691304786],"hpluv":[139.336843070371486,396.909453229520182,90.9355096576679927],"hsluv":[139.336843070371486,99.9999999999902371,90.9355096576679927]},"#77ffbb":{"lch":[91.2465066485729466,71.6593730134265599,145.894485367843032],"luv":[91.2465066485729466,-59.3344173347434776,40.1807498713488229],"rgb":[0.466666666666666674,1,0.733333333333333282],"xyz":[0.523346988541957159,0.790270001699064,0.595111621789946477],"hpluv":[145.894485367843032,372.920765055848051,91.2465066485729466],"hsluv":[145.894485367843032,99.9999999999901803,91.2465066485729466]},"#77ffcc":{"lch":[91.5944622372901591,64.9119206982031329,154.461378490718602],"luv":[91.5944622372901591,-58.5696939322881676,27.9847887504604707],"rgb":[0.466666666666666674,1,0.8],"xyz":[0.542639363985678913,0.797986951876552886,0.696718132460216633],"hpluv":[154.461378490718602,352.767904832744364,91.5944622372901591],"hsluv":[154.461378490718602,99.999999999989825,91.5944622372901591]},"#77ffdd":{"lch":[91.9799284987297,59.7212008687906604,165.331177548206284],"luv":[91.9799284987297,-57.7746296637575298,15.1232933062250314],"rgb":[0.466666666666666674,1,0.866666666666666696],"xyz":[0.564157689536312512,0.806594282096806392,0.81004798036022263],"hpluv":[165.331177548206284,341.200809564626638,91.9799284987297],"hsluv":[165.331177548206284,99.9999999999894698,91.9799284987297]},"#77ffee":{"lch":[92.4033024177180238,56.9851054432815545,178.272694676027839],"luv":[92.4033024177180238,-56.9592119034112,1.71767916801026743],"rgb":[0.466666666666666674,1,0.933333333333333348],"xyz":[0.587969869802487222,0.816119154203276409,0.935458796428745853],"hpluv":[178.272694676027839,344.865805035808421,92.4033024177180238],"hsluv":[178.272694676027839,99.9999999999889582,92.4033024177180238]},"#77ffff":{"lch":[92.8648336399367196,57.4251975820971623,192.177050630061018],"luv":[92.8648336399367196,-56.1331570721439945,-12.112885471963672],"rgb":[0.466666666666666674,1,1],"xyz":[0.614140918212318643,0.826587573567209133,1.0732929847205277],"hpluv":[192.177050630061018,371.354821198433683,92.8648336399367196],"hsluv":[192.177050630061018,99.9999999999883187,92.8648336399367196]},"#227700":{"lch":[43.5559297152692295,63.9882214930525208,124.519604676885976],"luv":[43.5559297152692295,-36.2613695379953711,52.7219647687080268],"rgb":[0.133333333333333331,0.466666666666666674,0],"xyz":[0.0725620932475783825,0.13533217400143932,0.0222976777942638753],"hpluv":[124.519604676885976,186.419817132403381,43.5559297152692295],"hsluv":[124.519604676885976,100.000000000002331,43.5559297152692295]},"#227711":{"lch":[43.6152314308602769,61.9621092027414093,125.591738779589861],"luv":[43.6152314308602769,-36.0623023987336282,50.3866383335378174],"rgb":[0.133333333333333331,0.466666666666666674,0.0666666666666666657],"xyz":[0.0735737587472155,0.135736840201294173,0.0276257827590195085],"hpluv":[125.591738779589861,180.271610265320959,43.6152314308602769],"hsluv":[125.591738779589861,95.0867888092805345,43.6152314308602769]},"#227722":{"lch":[43.7248500006056062,58.3665782213362476,127.715012949240148],"luv":[43.7248500006056062,-35.7048401974777292,46.1716562377823081],"rgb":[0.133333333333333331,0.466666666666666674,0.133333333333333331],"xyz":[0.0754491168856925298,0.136486983456685,0.0375026689549987],"hpluv":[127.715012949240148,169.385110384242353,43.7248500006056062],"hsluv":[127.715012949240148,86.2472116803111248,43.7248500006056062]},"#227733":{"lch":[43.9044636679785,52.8998675233047422,131.63685913347058],"luv":[43.9044636679785,-35.1470498804547518,39.5358175416168365],"rgb":[0.133333333333333331,0.466666666666666674,0.2],"xyz":[0.0785368676181502634,0.137722083749668101,0.0537648228126098443],"hpluv":[131.63685913347058,152.892166506547881,43.9044636679785],"hsluv":[131.63685913347058,86.6671370230467204,43.9044636679785]},"#227744":{"lch":[44.1618994548856207,46.0187725021067919,138.382113458020484],"luv":[44.1618994548856207,-34.403210499316,30.5638107889119937],"rgb":[0.133333333333333331,0.466666666666666674,0.266666666666666663],"xyz":[0.082994862862369137,0.139505281847355694,0.0772435977654964828],"hpluv":[138.382113458020484,132.228969104156789,44.1618994548856207],"hsluv":[138.382113458020484,87.230083060842972,44.1618994548856207]},"#227755":{"lch":[44.5028042963196171,38.7961505601339098,149.7341572603126],"luv":[44.5028042963196171,-33.5080868304533865,19.5537570621958743],"rgb":[0.133333333333333331,0.466666666666666674,0.333333333333333315],"xyz":[0.088957276901731136,0.141890247463100527,0.108645645039470398],"hpluv":[149.7341572603126,110.621765171639552,44.5028042963196171],"hsluv":[149.7341572603126,87.9126674499387235,44.5028042963196171]},"#227766":{"lch":[44.9310046324235657,33.2418513983527504,167.948858330193701],"luv":[44.9310046324235657,-32.5092552143098246,6.94038974417402166],"rgb":[0.133333333333333331,0.466666666666666674,0.4],"xyz":[0.0965422726752393073,0.144924245772503818,0.148593289446614346],"hpluv":[167.948858330193701,93.8811500215461,44.9310046324235657],"hsluv":[167.948858330193701,88.6822605795820778,44.9310046324235657]},"#227777":{"lch":[45.4487163896678652,32.1827345016432886,192.177050630061217],"luv":[45.4487163896678652,-31.4586377906525136,-6.7884098550242733],"rgb":[0.133333333333333331,0.466666666666666674,0.466666666666666674],"xyz":[0.105856285695441227,0.148649850980584641,0.197647091353012255],"hpluv":[192.177050630061217,89.8546686552558,45.4487163896678652],"hsluv":[192.177050630061217,89.5029511213474,45.4487163896678652]},"#227788":{"lch":[46.0567093690380389,37.0457871068229778,214.840569513336618],"luv":[46.0567093690380389,-30.4051407329018595,-21.1640676472289648],"rgb":[0.133333333333333331,0.466666666666666674,0.533333333333333326],"xyz":[0.116996702797385055,0.153106017821362239,0.256319954756584423],"hpluv":[214.840569513336618,102.066975938242322,46.0567093690380389],"hsluv":[214.840569513336618,90.3407286635711415,46.0567093690380389]},"#227799":{"lch":[46.7544651468991219,46.3079141704010908,230.605362437026685],"luv":[46.7544651468991219,-29.3896969252833173,-35.7864308006991223],"rgb":[0.133333333333333331,0.466666666666666674,0.6],"xyz":[0.130053666906457754,0.158328803464991397,0.325086632397702358],"hpluv":[230.605362437026685,125.681528260779189,46.7544651468991219],"hsluv":[230.605362437026685,91.1669787694701,46.7544651468991219]},"#2277aa":{"lch":[47.5403420753171133,57.8256716053654429,240.536105931551504],"luv":[47.5403420753171133,-28.4430017925967782,-50.3468365007961935],"rgb":[0.133333333333333331,0.466666666666666674,0.66666666666666663],"xyz":[0.14511135987171031,0.164351880651092491,0.404390482014700958],"hpluv":[240.536105931551504,154.346828351852139,47.5403420753171133],"hsluv":[240.536105931551504,91.9600907928071365,47.5403420753171133]},"#2277bb":{"lch":[48.4117490016133161,70.2708193466387172,246.886175208709233],"luv":[48.4117490016133161,-27.5854458877112236,-64.6299561103370337],"rgb":[0.133333333333333331,0.466666666666666674,0.733333333333333282],"xyz":[0.162248951979046957,0.17120691749402725,0.494648467113342705],"hpluv":[246.886175208709233,184.188949495161438,48.4117490016133161],"hsluv":[246.886175208709233,92.7055270960754427,48.4117490016133161]},"#2277cc":{"lch":[49.3653235224945348,82.9601291275659634,251.131977113837081],"luv":[49.3653235224945348,-26.8284223951791141,-78.5023488607078],"rgb":[0.133333333333333331,0.466666666666666674,0.8],"xyz":[0.181541327422768684,0.178923867671516051,0.596254977783612805],"hpluv":[251.131977113837081,213.248879712122147,49.3653235224945348],"hsluv":[251.131977113837081,93.3949294454883301,49.3653235224945348]},"#2277dd":{"lch":[50.3971082370692898,95.5506012475210156,254.100456017762497],"luv":[50.3971082370692898,-26.1762366694964186,-91.8951687118820928],"rgb":[0.133333333333333331,0.466666666666666674,0.866666666666666696],"xyz":[0.203059652973402227,0.187531197891769585,0.709584825683618803],"hpluv":[254.100456017762497,240.584217083197558,50.3971082370692898],"hsluv":[254.100456017762497,94.0248036114472399,50.3971082370692898]},"#2277ee":{"lch":[51.5027182397596448,107.874744495734575,256.256689112315712],"luv":[51.5027182397596448,-25.6280715933506258,-104.786270314512635],"rgb":[0.133333333333333331,0.466666666666666674,0.933333333333333348],"xyz":[0.226871833239577,0.19705606999823963,0.834995641752142],"hpluv":[256.256689112315712,265.784074864026707,51.5027182397596448],"hsluv":[256.256689112315712,94.5951642228933594,51.5027182397596448]},"#2277ff":{"lch":[52.6774941409559432,119.859275592882611,257.873120264558906],"luv":[52.6774941409559432,-25.1797078347732324,-117.18459053564186],"rgb":[0.133333333333333331,0.466666666666666674,1],"xyz":[0.253042881649408358,0.207524489362172326,0.972829830043923871],"hpluv":[257.873120264558906,288.725982332353851,52.6774941409559432],"hsluv":[257.873120264558906,99.9999999999990195,52.6774941409559432]},"#228800":{"lch":[49.4326013626652951,73.5543249838887903,125.335546592141156],"luv":[49.4326013626652951,-42.5411625112882845,60.0040683289365475],"rgb":[0.133333333333333331,0.533333333333333326,0],"xyz":[0.0946344629725488357,0.179476913451380865,0.0296551343692538216],"hpluv":[125.335546592141156,188.81394887832684,49.4326013626652951],"hsluv":[125.335546592141156,100.000000000002359,49.4326013626652951]},"#228811":{"lch":[49.4817413630627669,71.8188220709608,126.143293588176633],"luv":[49.4817413630627669,-42.3592238010278379,57.9968909738682825],"rgb":[0.133333333333333331,0.533333333333333326,0.0666666666666666657],"xyz":[0.0956461284721859539,0.179881579651235718,0.0349832393340094513],"hpluv":[126.143293588176633,184.175827324420425,49.4817413630627669],"hsluv":[126.143293588176633,96.2839239867753776,49.4817413630627669]},"#228822":{"lch":[49.5726392440562904,68.7061860444130161,127.715012949240233],"luv":[49.5726392440562904,-42.0299333634258545,54.3509402148249521],"rgb":[0.133333333333333331,0.533333333333333326,0.133333333333333331],"xyz":[0.097521486610662983,0.180631722906626546,0.0448601255299886509],"hpluv":[127.715012949240233,175.870551812838869,49.5726392440562904],"hsluv":[127.715012949240233,89.549457305464,49.5726392440562904]},"#228833":{"lch":[49.7217546026668913,63.8760413965615115,130.529662443073192],"luv":[49.7217546026668913,-41.5093107949551552,48.5502397710151357],"rgb":[0.133333333333333331,0.533333333333333326,0.2],"xyz":[0.100609237343120717,0.181866823199609645,0.0611222793875997941],"hpluv":[130.529662443073192,163.016240956960957,49.7217546026668913],"hsluv":[130.529662443073192,89.7937238944362122,49.7217546026668913]},"#228844":{"lch":[49.9358562328630171,57.5522088774297558,135.149605574971361],"luv":[49.9358562328630171,-40.8016788905052792,40.5891579906186308],"rgb":[0.133333333333333331,0.533333333333333326,0.266666666666666663],"xyz":[0.10506723258733959,0.183650021297297239,0.0846010543404864257],"hpluv":[135.149605574971361,146.247625060139768,49.9358562328630171],"hsluv":[135.149605574971361,90.1269016918236616,49.9358562328630171]},"#228855":{"lch":[50.2200542052193697,50.3265642713731509,142.503880569306347],"luv":[50.2200542052193697,-39.9288227743001443,30.6341669254964764],"rgb":[0.133333333333333331,0.533333333333333326,0.333333333333333315],"xyz":[0.111029646626701589,0.186034986913042072,0.116003101614460341],"hpluv":[142.503880569306347,127.162609675202816,50.2200542052193697],"hsluv":[142.503880569306347,90.5399352865824341,50.2200542052193697]},"#228866":{"lch":[50.5781035519961648,43.3062651916131074,154.006170397495453],"luv":[50.5781035519961648,-38.9254575775356315,18.9800252166796355],"rgb":[0.133333333333333331,0.533333333333333326,0.4],"xyz":[0.11861464240020976,0.189068985222445363,0.155950746021604303],"hpluv":[154.006170397495453,108.649446020320369,50.5781035519961648],"hsluv":[154.006170397495453,91.0179493017372607,50.5781035519961648]},"#228877":{"lch":[51.0125694858746357,38.3061120533697519,170.992189866461246],"luv":[51.0125694858746357,-37.8336830583721451,5.997553408179356],"rgb":[0.133333333333333331,0.533333333333333326,0.466666666666666674],"xyz":[0.12792865542041168,0.192794590430526186,0.205004547928002212],"hpluv":[170.992189866461246,95.2862426106229634,51.0125694858746357],"hsluv":[170.992189866461246,91.5427076584867621,51.0125694858746357]},"#228888":{"lch":[51.5249413470067594,37.5420496271247259,192.177050630061103],"luv":[51.5249413470067594,-36.6973707929670923,-7.91886779085127834],"rgb":[0.133333333333333331,0.533333333333333326,0.533333333333333326],"xyz":[0.139069072522355508,0.197250757271303784,0.263677411331574407],"hpluv":[192.177050630061103,92.4570004995607775,51.5249413470067594],"hsluv":[192.177050630061103,92.0950966753639761,51.5249413470067594]},"#228899":{"lch":[52.1157302062907064,42.0223592343639183,212.203992327233067],"luv":[52.1157302062907064,-35.5574728144251,-22.3951959730954577],"rgb":[0.133333333333333331,0.533333333333333326,0.6],"xyz":[0.152126036631428208,0.202473542914932941,0.332444088972692287],"hpluv":[212.203992327233067,102.317738016510475,52.1157302062907064],"hsluv":[212.203992327233067,92.6571999954113465,52.1157302062907064]},"#2288aa":{"lch":[52.784565077464336,50.6329849579481888,227.127925237574203],"luv":[52.784565077464336,-34.4488478228089221,-37.1076279143892478],"rgb":[0.133333333333333331,0.533333333333333326,0.66666666666666663],"xyz":[0.167183729596680763,0.208496620101034036,0.411747938589690887],"hpluv":[227.127925237574203,121.72111165959474,52.784565077464336],"hsluv":[227.127925237574203,93.213704377986,52.784565077464336]},"#2288bb":{"lch":[53.5302933631107294,61.6316847476891141,237.186375672219185],"luv":[53.5302933631107294,-33.3987075035381409,-51.7975955226846381],"rgb":[0.133333333333333331,0.533333333333333326,0.733333333333333282],"xyz":[0.18432132170401741,0.215351656943968794,0.502005923688332634],"hpluv":[237.186375672219185,146.097822373379188,53.5302933631107294],"hsluv":[237.186375672219185,93.7525919029994,53.5302933631107294]},"#2288cc":{"lch":[54.351086283976727,73.7818378825302261,243.928624140525301],"luv":[54.351086283976727,-32.4264148607849876,-66.274333045306733],"rgb":[0.133333333333333331,0.533333333333333326,0.8],"xyz":[0.203613697147739137,0.223068607121457596,0.60361243435860279],"hpluv":[243.928624140525301,172.258462735913952,54.351086283976727],"hsluv":[243.928624140525301,94.2652369190112864,54.351086283976727]},"#2288dd":{"lch":[55.2445474530087779,86.375042864399532,248.580085361336785],"luv":[55.2445474530087779,-31.544198041281593,-80.4090268549449831],"rgb":[0.133333333333333331,0.533333333333333326,0.866666666666666696],"xyz":[0.22513202269837268,0.23167593734171113,0.716942282258608787],"hpluv":[248.580085361336785,198.39840761978212,55.2445474530087779],"hsluv":[248.580085361336785,94.7460999996689566,55.2445474530087779]},"#2288ee":{"lch":[56.2078215466105604,99.0227420546019772,251.903461744910402],"luv":[56.2078215466105604,-30.7583451142169402,-94.1245326673496265],"rgb":[0.133333333333333331,0.533333333333333326,0.933333333333333348],"xyz":[0.248944202964547445,0.241200809448181175,0.842353098327132],"hpluv":[251.903461744910402,223.551465466634539,56.2078215466105604],"hsluv":[251.903461744910402,95.1922101623356838,56.2078215466105604]},"#2288ff":{"lch":[57.2376997180489866,111.514610807296222,254.356224713070389],"luv":[57.2376997180489866,-30.0705415498761575,-107.383755542446536],"rgb":[0.133333333333333331,0.533333333333333326,1],"xyz":[0.275115251374378811,0.251669228812113843,0.980187286618913856],"hpluv":[254.356224713070389,247.223031548482197,57.2376997180489866],"hsluv":[254.356224713070389,99.9999999999988773,57.2376997180489866]},"#229900":{"lch":[55.1973816023000694,82.8565734474734086,125.883775052172936],"luv":[55.1973816023000694,-48.5657961090338617,67.1310301704979508],"rgb":[0.133333333333333331,0.6,0],"xyz":[0.120504063425016322,0.23121611435631656,0.0382783345200760766],"hpluv":[125.883775052172936,190.479314261094402,55.1973816023000694],"hsluv":[125.883775052172936,100.000000000002331,55.1973816023000694]},"#229911":{"lch":[55.2388931006948951,81.3509781714907376,126.510168490119042],"luv":[55.2388931006948951,-48.4010205856972817,65.3859530459048273],"rgb":[0.133333333333333331,0.6,0.0666666666666666657],"xyz":[0.121515728924653441,0.231620780556171413,0.0436064394848317063],"hpluv":[126.510168490119042,186.877552842351321,55.2388931006948951],"hsluv":[126.510168490119042,97.109403045153627,55.2388931006948951]},"#229922":{"lch":[55.3157166450500739,78.6308396618125869,127.715012949240275],"luv":[55.3157166450500739,-48.1011847922964293,62.2019691609440102],"rgb":[0.133333333333333331,0.6,0.133333333333333331],"xyz":[0.12339108706313047,0.232370923811562241,0.0534833256808109059],"hpluv":[127.715012949240275,180.378053709807,55.3157166450500739],"hsluv":[127.715012949240275,91.8445791693357592,55.3157166450500739]},"#229933":{"lch":[55.4418461137647,74.3518111171957656,129.829614369777261],"luv":[55.4418461137647,-47.6228343175573201,57.0986643273697],"rgb":[0.133333333333333331,0.6,0.2],"xyz":[0.126478837795588217,0.23360602410454534,0.0697454795384220561],"hpluv":[129.829614369777261,170.173995330187722,55.4418461137647],"hsluv":[129.829614369777261,91.9941043082508827,55.4418461137647]},"#229944":{"lch":[55.6231658975890042,68.6117263626113925,133.195472742568398],"luv":[55.6231658975890042,-46.964006542137362,50.0195070344354846],"rgb":[0.133333333333333331,0.6,0.266666666666666663],"xyz":[0.130936833039807077,0.235389222202232934,0.0932242544913087],"hpluv":[133.195472742568398,156.524371813771666,55.6231658975890042],"hsluv":[133.195472742568398,92.2005608183228844,55.6231658975890042]},"#229955":{"lch":[55.8642490130281715,61.7521412094073696,138.342726405552],"luv":[55.8642490130281715,-46.1371272258517706,41.0450049980768625],"rgb":[0.133333333333333331,0.6,0.333333333333333315],"xyz":[0.136899247079169062,0.237774187817977767,0.124626301765282596],"hpluv":[138.342726405552,140.267605312348593,55.8642490130281715],"hsluv":[138.342726405552,92.4605995247666357,55.8642490130281715]},"#229966":{"lch":[56.1686206396836383,54.4254646973719787,146.085824005346524],"luv":[56.1686206396836383,-45.1662924386951516,30.3667126121210664],"rgb":[0.133333333333333331,0.6,0.4],"xyz":[0.144484242852677247,0.240808186127381058,0.164573946172426544],"hpluv":[146.085824005346524,122.955430161041207,56.1686206396836383],"hsluv":[146.085824005346524,92.7673635780271,56.1686206396836383]},"#229977":{"lch":[56.5388973522399,47.7139826201784629,157.505617321427167],"luv":[56.5388973522399,-44.0837619060267798,18.2550287233801534],"rgb":[0.133333333333333331,0.6,0.466666666666666674],"xyz":[0.153798255872879153,0.244533791335461881,0.213627748078824453],"hpluv":[157.505617321427167,107.087223886255089,56.5388973522399],"hsluv":[157.505617321427167,93.1115325865156,56.5388973522399]},"#229988":{"lch":[56.9768757530356,43.2189787336254057,173.325138204180888],"luv":[56.9768757530356,-42.9260293704251126,5.02355703331473169],"rgb":[0.133333333333333331,0.6,0.533333333333333326],"xyz":[0.164938672974823,0.248989958176239479,0.272300611482396648],"hpluv":[173.325138204180888,96.2532040641867,56.9768757530356],"hsluv":[173.325138204180888,93.4824878896153706,56.9768757530356]},"#229999":{"lch":[57.4836007022547477,42.6905833214490045,192.177050630061103],"luv":[57.4836007022547477,-41.7300648492924537,-9.00486490733903366],"rgb":[0.133333333333333331,0.6,0.6],"xyz":[0.177995637083895708,0.254212743819868636,0.341067289123514528],"hpluv":[192.177050630061103,94.2383018299879467,57.4836007022547477],"hsluv":[192.177050630061103,93.8694254698009587,57.4836007022547477]},"#2299aa":{"lch":[58.0594270662980563,46.8633307325653,210.133219640519371],"luv":[58.0594270662980563,-40.5302437993065823,-23.5259666096543114],"rgb":[0.133333333333333331,0.6,0.66666666666666663],"xyz":[0.193053330049148264,0.260235821005969759,0.420371138740513128],"hpluv":[210.133219640519371,102.423528384682896,58.0594270662980563],"hsluv":[210.133219640519371,94.2622655036202701,58.0594270662980563]},"#2299bb":{"lch":[58.704081470592044,54.8976329577059445,224.200669016044458],"luv":[58.704081470592044,-39.3562485070025474,-38.2731734745639],"rgb":[0.133333333333333331,0.6,0.733333333333333282],"xyz":[0.210190922156484883,0.267090857848904517,0.51062912383915493],"hpluv":[224.200669016044458,118.665547847191604,58.704081470592044],"hsluv":[224.200669016044458,94.6522748426748279,58.704081470592044]},"#2299cc":{"lch":[59.4167266489170771,65.3729917945351247,234.209137470411804],"luv":[59.4167266489170771,-38.231976961148348,-53.0277662532618663],"rgb":[0.133333333333333331,0.6,0.8],"xyz":[0.229483297600206637,0.274807808026393319,0.612235634509425086],"hpluv":[234.209137470411804,139.613998456385502,59.4167266489170771],"hsluv":[234.209137470411804,95.032392249276171,59.4167266489170771]},"#2299dd":{"lch":[60.1960287785942114,77.1664383037622201,241.199920521286145],"luv":[60.1960287785942114,-37.1753089722913614,-67.6214137925481],"rgb":[0.133333333333333331,0.6,0.866666666666666696],"xyz":[0.251001623150840181,0.283415138246646825,0.725565482409431084],"hpluv":[241.199920521286145,162.667181112599422,60.1960287785942114],"hsluv":[241.199920521286145,95.397300800485425,60.1960287785942114]},"#2299ee":{"lch":[61.0402269370523243,89.5733454479413211,246.163931095701571],"luv":[61.0402269370523243,-36.1984881015500051,-81.9332269222821],"rgb":[0.133333333333333331,0.6,0.933333333333333348],"xyz":[0.27481380341701489,0.292940010353116842,0.850976298477954307],"hpluv":[246.163931095701571,186.209563381880429,61.0402269370523243],"hsluv":[246.163931095701571,95.74331870201,61.0402269370523243]},"#2299ff":{"lch":[61.9472031658153384,102.178145565387652,249.783903318571561],"luv":[61.9472031658153384,-35.3088685699608078,-95.8835607989752532],"rgb":[0.133333333333333331,0.6,1],"xyz":[0.300984851826846311,0.303408429717049566,0.988810486769736152],"hpluv":[249.783903318571561,209.303089797111312,61.9472031658153384],"hsluv":[249.783903318571561,99.9999999999986,61.9472031658153384]},"#110000":{"lch":[1.07666134976862637,3.62084603829176643,12.1770506300617818],"luv":[1.07666134976862637,3.53937866928378497,0.763756943295526236],"rgb":[0.0666666666666666657,0,0],"xyz":[0.00231161193210362246,0.00119192490249095569,0.000108356809317355026],"hpluv":[12.1770506300617818,426.746789183125145,1.07666134976862637],"hsluv":[12.1770506300617818,100.000000000002203,1.07666134976862637]},"#110011":{"lch":[1.44219482929484544,3.28508596549136378,307.715012949243601],"luv":[1.44219482929484544,2.00959989444743092,-2.59871084672866193],"rgb":[0.0666666666666666657,0,0.0666666666666666657],"xyz":[0.0033232774317407442,0.00159659110234581,0.00543646177407298634],"hpluv":[307.715012949243601,289.042783730483393,1.44219482929484544],"hsluv":[307.715012949243601,99.9999999999988347,1.44219482929484544]},"#110022":{"lch":[2.1197964535087821,6.27745605271938789,280.884754167684719],"luv":[2.1197964535087821,1.18539805862553327,-6.16451830530416167],"rgb":[0.0666666666666666657,0,0.133333333333333331],"xyz":[0.00519863557021776369,0.00234673435773662814,0.0153133479700521824],"hpluv":[280.884754167684719,375.775833064690062,2.1197964535087821],"hsluv":[280.884754167684719,99.9999999999998721,2.1197964535087821]},"#110033":{"lch":[3.23545797359596321,11.0622687483975319,272.972319481398301],"luv":[3.23545797359596321,0.57361730895702967,-11.0473867065762477],"rgb":[0.0666666666666666657,0,0.2],"xyz":[0.00828638630267550247,0.00358183465071974143,0.0315755018276633256],"hpluv":[272.972319481398301,433.858158519435221,3.23545797359596321],"hsluv":[272.972319481398301,100.000000000000355,3.23545797359596321]},"#110044":{"lch":[4.84621421062803659,17.7312810137515946,269.891014646828467],"luv":[4.84621421062803659,-0.0337275934556249754,-17.7312489362161827],"rgb":[0.0666666666666666657,0,0.266666666666666663],"xyz":[0.012744381546894383,0.0053650327484073175,0.0550542767805499642],"hpluv":[269.891014646828467,464.276639746945534,4.84621421062803659],"hsluv":[269.891014646828467,100.000000000000711,4.84621421062803659]},"#110055":{"lch":[7.00054481789469563,26.532890242342738,268.413820694361107],"luv":[7.00054481789469563,-0.734444075336115332,-26.5227233992365541],"rgb":[0.0666666666666666657,0,0.333333333333333315],"xyz":[0.0187067955862563751,0.00774999836415214954,0.0864563240545238726],"hpluv":[268.413820694361107,480.941270902403687,7.00054481789469563],"hsluv":[268.413820694361107,100.000000000000682,7.00054481789469563]},"#110066":{"lch":[9.62818818466394,37.2351477319955,267.604082628906383],"luv":[9.62818818466394,-1.55659527409507947,-37.20259719127408],"rgb":[0.0666666666666666657,0,0.4],"xyz":[0.0262917913597645499,0.010783996673555462,0.126403968461667848],"hpluv":[267.604082628906383,490.735908571457742,9.62818818466394],"hsluv":[267.604082628906383,100.000000000000753,9.62818818466394]},"#110077":{"lch":[12.2928363787590555,48.1341065988899643,267.117295446388],"luv":[12.2928363787590555,-2.42073458662620622,-48.0731969202633138],"rgb":[0.0666666666666666657,0,0.466666666666666674],"xyz":[0.0356058043799664659,0.0145096018816362783,0.175457770368065757],"hpluv":[267.117295446388,496.866985521105335,12.2928363787590555],"hsluv":[267.117295446388,100.000000000000739,12.2928363787590555]},"#110088":{"lch":[14.9348588897968106,58.9551979191609803,266.804247897724281],"luv":[14.9348588897968106,-3.28660375460643372,-58.8635166928348781],"rgb":[0.0666666666666666657,0,0.533333333333333326],"xyz":[0.0467462214819102939,0.0189657687224138727,0.234130633771637925],"hpluv":[266.804247897724281,500.910695182750828,14.9348588897968106],"hsluv":[266.804247897724281,100.000000000000753,14.9348588897968106]},"#110099":{"lch":[17.5475874535139624,69.6538923837914297,266.59230255326986],"luv":[17.5475874535139624,-4.14026096141065292,-69.5307339482636],"rgb":[0.0666666666666666657,0,0.6],"xyz":[0.0598031855909830073,0.0241885543660430302,0.302897311412755832],"hpluv":[266.59230255326986,503.694607743992833,17.5475874535139624],"hsluv":[266.59230255326986,100.000000000000796,17.5475874535139624]},"#1100aa":{"lch":[20.1284543895036734,80.2134478690449,266.442863009455],"luv":[20.1284543895036734,-4.97675334080985809,-80.0589104673847203],"rgb":[0.0666666666666666657,0,0.66666666666666663],"xyz":[0.0748608785562355494,0.0302116315521441317,0.382201161029754433],"hpluv":[266.442863009455,505.680355905096519,20.1284543895036734],"hsluv":[266.442863009455,100.000000000000782,20.1284543895036734]},"#1100bb":{"lch":[22.6769756305364183,90.6302333913987894,266.3339747285724],"luv":[22.6769756305364183,-5.79494806122388795,-90.444777525002138],"rgb":[0.0666666666666666657,0,0.733333333333333282],"xyz":[0.0919984706635722,0.0370666683950788903,0.472459146128396179],"hpluv":[266.3339747285724,507.139328846885462,22.6769756305364183],"hsluv":[266.3339747285724,100.000000000001,22.6769756305364183]},"#1100cc":{"lch":[25.1937235339869332,100.906819147977927,266.252448568601267],"luv":[25.1937235339869332,-6.59531864805210422,-100.691051849175651],"rgb":[0.0666666666666666657,0,0.8],"xyz":[0.111290846107293936,0.0447836185725676919,0.574065656798666279],"hpluv":[266.252448568601267,508.238409831726415,25.1937235339869332],"hsluv":[266.252448568601267,100.000000000000824,25.1937235339869332]},"#1100dd":{"lch":[27.6797893663012289,111.048607057141055,266.189998210144608],"luv":[27.6797893663012289,-7.37896669992084409,-110.803176758488192],"rgb":[0.0666666666666666657,0,0.866666666666666696],"xyz":[0.132809171657927494,0.0533909487928212259,0.687395504698672277],"hpluv":[266.189998210144608,509.084249760461944,27.6797893663012289],"hsluv":[266.189998210144608,100.000000000000938,27.6797893663012289]},"#1100ee":{"lch":[30.1364964584496846,121.062148077250455,266.141219022825339],"luv":[30.1364964584496846,-8.14718371295858823,-120.787694301304626],"rgb":[0.0666666666666666657,0,0.933333333333333348],"xyz":[0.156621351924102231,0.0629158208992912638,0.8128063207671955],"hpluv":[266.141219022825339,509.74730741907581,30.1364964584496846],"hsluv":[266.141219022825339,100.000000000000952,30.1364964584496846]},"#1100ff":{"lch":[32.5652456752648263,130.954293728553409,266.102472093749839],"luv":[32.5652456752648263,-8.90125725083502495,-130.651424275813781],"rgb":[0.0666666666666666657,0,1],"xyz":[0.182792400333933625,0.0733842402632239599,0.950640509058977345],"hpluv":[266.102472093749839,510.275492181060656,32.5652456752648263],"hsluv":[266.102472093749839,100.000000000001108,32.5652456752648263]},"#111100":{"lch":[4.69779601336656771,5.17885327658484673,85.8743202181747307],"luv":[4.69779601336656771,0.372589941443898953,5.16543299210515716],"rgb":[0.0666666666666666657,0.0666666666666666657,0],"xyz":[0.00431601219303203148,0.00520072542434782924,0.000776490229626805866],"hpluv":[85.8743202181747307,139.887458074797621,4.69779601336656771],"hsluv":[85.8743202181747307,100.000000000002359,4.69779601336656771]},"#111111":{"lch":[5.06332949289278655,2.68159353999537178e-13,0],"luv":[5.06332949289278655,2.52120910544652531e-13,9.13481559944393266e-14],"rgb":[0.0666666666666666657,0.0666666666666666657,0.0666666666666666657],"xyz":[0.00532767769266915322,0.00560539162420268383,0.00610459519438243722],"hpluv":[0,6.72041492281092e-12,5.06332949289278655],"hsluv":[0,1.92419399944792277e-12,5.06332949289278655]},"#111122":{"lch":[5.74093111710672321,6.60006851394265048,265.874320218179719],"luv":[5.74093111710672321,-0.474838542395297381,-6.58296534605743222],"rgb":[0.0666666666666666657,0.0666666666666666657,0.133333333333333331],"xyz":[0.00720303583114617271,0.00635553487959350169,0.0159814813903616341],"hpluv":[265.874320218179719,145.883251481840432,5.74093111710672321],"hsluv":[265.874320218179719,28.41442223352254,5.74093111710672321]},"#111133":{"lch":[6.85659263719390388,14.212336546779186,265.874320218178582],"luv":[6.85659263719390388,-1.02249925976518052,-14.1755072354640976],"rgb":[0.0666666666666666657,0.0666666666666666657,0.2],"xyz":[0.0102907865636039132,0.00759063517257661455,0.0322436352479727809],"hpluv":[265.874320218178582,263.024656142887807,6.85659263719390388],"hsluv":[265.874320218178582,51.2306489028398957,6.85659263719390388]},"#111144":{"lch":[8.45853257854777141,22.7927945223118087,265.874320218178241],"luv":[8.45853257854777141,-1.63981590573345759,-22.7337301367732181],"rgb":[0.0666666666666666657,0.0666666666666666657,0.266666666666666663],"xyz":[0.0147487818078227903,0.00937383327026419105,0.0557224102008594194],"hpluv":[265.874320218178241,341.933676209697239,8.45853257854777141],"hsluv":[265.874320218178241,66.600159737267461,8.45853257854777141]},"#111155":{"lch":[10.3782295585045325,32.1242805487719707,265.874320218178127],"luv":[10.3782295585045325,-2.31116487943396587,-32.0410349033279545],"rgb":[0.0666666666666666657,0.0666666666666666657,0.333333333333333315],"xyz":[0.0207111958471847858,0.011758798886009024,0.0871244574748333278],"hpluv":[265.874320218178127,392.780088665713265,10.3782295585045325],"hsluv":[265.874320218178127,76.5037738801481453,10.3782295585045325]},"#111166":{"lch":[12.4757228248048477,41.8651930040424887,265.87432021817807],"luv":[12.4757228248048477,-3.01196982745712916,-41.7567051265328644],"rgb":[0.0666666666666666657,0.0666666666666666657,0.4],"xyz":[0.0282961916206929606,0.0147927971954123355,0.12707210188197729],"hpluv":[265.87432021817807,425.820638501567,12.4757228248048477],"hsluv":[265.87432021817807,82.9392496755345263,12.4757228248048477]},"#111177":{"lch":[14.6896895275036599,51.8467212520223697,265.874320218178],"luv":[14.6896895275036599,-3.73008575521422614,-51.7123676197837199],"rgb":[0.0666666666666666657,0.0666666666666666657,0.466666666666666674],"xyz":[0.0376102046408948731,0.0185184024034931519,0.176125903788375199],"hpluv":[265.874320218178,447.865910041391658,14.6896895275036599],"hsluv":[265.874320218178,87.2331192419333235,14.6896895275036599]},"#111188":{"lch":[16.9766940539391484,61.9476661879793511,265.874320218178],"luv":[16.9766940539391484,-4.45679305530888747,-61.7871373491236469],"rgb":[0.0666666666666666657,0.0666666666666666657,0.533333333333333326],"xyz":[0.0487506217428387,0.0229745692442707428,0.234798767191947366],"hpluv":[265.874320218178,463.03215765547759,16.9766940539391484],"hsluv":[265.874320218178,90.1871263608273495,16.9766940539391484]},"#111199":{"lch":[19.3069968916820471,72.0861980616198537,265.874320218178],"luv":[19.3069968916820471,-5.18620452834737478,-71.8993966147786],"rgb":[0.0666666666666666657,0.0666666666666666657,0.6],"xyz":[0.0618075858519114146,0.0281973548878999072,0.303565444833065246],"hpluv":[265.874320218178,473.779996738615694,19.3069968916820471],"hsluv":[265.874320218178,92.280537596895428,19.3069968916820471]},"#1111aa":{"lch":[21.6605350192491244,82.2093341223612839,265.874320218177957],"luv":[21.6605350192491244,-5.91450835752722703,-81.9962999636616274],"rgb":[0.0666666666666666657,0.0666666666666666657,0.66666666666666663],"xyz":[0.0768652788171639567,0.0342204320740010087,0.382869294450063846],"hpluv":[265.874320218177957,481.605322004481,21.6605350192491244],"hsluv":[265.874320218177957,93.8047159652847569,21.6605350192491244]},"#1111bb":{"lch":[24.0238472654082429,92.2838634174554215,265.874320218177957],"luv":[24.0238472654082429,-6.63931519789526092,-92.0447225046312241],"rgb":[0.0666666666666666657,0.0666666666666666657,0.733333333333333282],"xyz":[0.0940028709245006,0.0410754689169357673,0.473127279548705593],"hpluv":[265.874320218177957,487.441538809997496,24.0238472654082429],"hsluv":[265.874320218177957,94.9414655706975736,24.0238472654082429]},"#1111cc":{"lch":[26.3879200105999,102.289669569688542,265.874320218177957],"luv":[26.3879200105999,-7.35917778701558589,-102.024599989292597],"rgb":[0.0666666666666666657,0.0666666666666666657,0.8],"xyz":[0.113295246368222344,0.0487924190944245689,0.574733790218975749],"hpluv":[265.874320218177957,491.887677819884516,26.3879200105999],"hsluv":[265.874320218177957,95.8074626598259727,26.3879200105999]},"#1111dd":{"lch":[28.7467318202544035,112.215160110792439,265.874320218177957],"luv":[28.7467318202544035,-8.07326211070735766,-111.924369989661315],"rgb":[0.0666666666666666657,0.0666666666666666657,0.866666666666666696],"xyz":[0.134813571918855901,0.0573997493146781,0.688063638118981746],"hpluv":[265.874320218177957,495.338839734480189,28.7467318202544035],"hsluv":[265.874320218177957,96.479663003878315,28.7467318202544035]},"#1111ee":{"lch":[31.096282761883856,122.054240127147821,265.874320218177957],"luv":[31.096282761883856,-8.78112967353786367,-121.737953386246701],"rgb":[0.0666666666666666657,0.0666666666666666657,0.933333333333333348],"xyz":[0.158625752185030638,0.0669246214211481338,0.813474454187505],"hpluv":[265.874320218177957,498.062358817216193,31.096282761883856],"hsluv":[265.874320218177957,97.0101366558694451,31.096282761883856]},"#1111ff":{"lch":[33.4339475813396589,131.804336466263976,265.874320218177957],"luv":[33.4339475813396589,-9.48259535137154863,-131.462783694528071],"rgb":[0.0666666666666666657,0.0666666666666666657,1],"xyz":[0.184796800594862032,0.07739304078508083,0.951308642479286815],"hpluv":[265.874320218177957,500.243401112503761,33.4339475813396589],"hsluv":[265.874320218177957,99.9999999999995168,33.4339475813396589]},"#66aa00":{"lch":[62.9888010115071921,81.5107592316300185,114.758667910078074],"luv":[62.9888010115071921,-34.136471206054587,74.0182761493062884],"rgb":[0.4,0.66666666666666663,0],"xyz":[0.198534632170994735,0.315734905503604946,0.0504821063864305253],"hpluv":[114.758667910078074,164.206718875588678,62.9888010115071921],"hsluv":[114.758667910078074,100.000000000002245,62.9888010115071921]},"#66aa11":{"lch":[63.0225323172591345,80.1801511939703744,115.156040801232848],"luv":[63.0225323172591345,-34.0833758310267285,72.5753411114886262],"rgb":[0.4,0.66666666666666663,0.0666666666666666657],"xyz":[0.199546297670631867,0.316139571703459799,0.055810211351186155],"hpluv":[115.156040801232848,161.439702186697787,63.0225323172591345],"hsluv":[115.156040801232848,97.8915472494395,63.0225323172591345]},"#66aa22":{"lch":[63.0849851082382287,77.7526522520100372,115.919582231606014],"luv":[63.0849851082382287,-33.9864002990590066,69.9313915701248],"rgb":[0.4,0.66666666666666663,0.133333333333333331],"xyz":[0.201421655809108868,0.316889714958850599,0.0656870975471653545],"hpluv":[115.919582231606014,156.397041701241,63.0849851082382287],"hsluv":[115.919582231606014,94.0329763727763748,63.0849851082382287]},"#66aa33":{"lch":[63.1875983682703577,73.8659889058236416,117.258215410479664],"luv":[63.1875983682703577,-33.8307250746429062,65.6632801340230827],"rgb":[0.4,0.66666666666666663,0.2],"xyz":[0.20450940654156663,0.318124815251833726,0.0819492514047764908],"hpluv":[117.258215410479664,148.337854737344315,63.1875983682703577],"hsluv":[117.258215410479664,87.8175568215645228,63.1875983682703577]},"#66aa44":{"lch":[63.3352806074861121,68.495891054581449,119.389904478135335],"luv":[63.3352806074861121,-33.6143748396710436,59.6804900742209057],"rgb":[0.4,0.66666666666666663,0.266666666666666663],"xyz":[0.208967401785785489,0.319908013349521292,0.105428026357663129],"hpluv":[119.389904478135335,137.232870385557277,63.3352806074861121],"hsluv":[119.389904478135335,79.1339200396795093,63.3352806074861121]},"#66aa55":{"lch":[63.5319451116367162,61.7628687774086131,122.670093374403834],"luv":[63.5319451116367162,-33.3396585938880747,51.9915293529473],"rgb":[0.4,0.66666666666666663,0.333333333333333315],"xyz":[0.214929815825147474,0.322292978965266153,0.136830073631637045],"hpluv":[122.670093374403834,123.360077774302084,63.5319451116367162],"hsluv":[122.670093374403834,68.0252461175988401,63.5319451116367162]},"#66aa66":{"lch":[63.7807317293932101,53.9656100581627314,127.715012949238869],"luv":[63.7807317293932101,-33.0126168434810836,42.6902119706049703],"rgb":[0.4,0.66666666666666663,0.4],"xyz":[0.22251481159865566,0.325326977274669471,0.176777718038781],"hpluv":[127.715012949238869,107.366036241042551,63.7807317293932101],"hsluv":[127.715012949238869,54.6684489206366493,63.7807317293932101]},"#66aa77":{"lch":[64.0841229578331308,45.668717811445795,135.623736827110406],"luv":[64.0841229578331308,-32.6422859505805931,31.9392071670853355],"rgb":[0.4,0.66666666666666663,0.466666666666666674],"xyz":[0.231828824618857565,0.329052582482750267,0.225831519945178916],"hpluv":[135.623736827110406,90.428994130424627,64.0841229578331308],"hsluv":[135.623736827110406,56.3153951517164302,64.0841229578331308]},"#66aa88":{"lch":[64.4440140424290888,37.9133385548872752,148.25026899586868],"luv":[64.4440140424290888,-32.239785461804118,19.9503752785341248],"rgb":[0.4,0.66666666666666663,0.533333333333333326],"xyz":[0.242969241720801421,0.333508749323527864,0.284504383348751055],"hpluv":[148.25026899586868,74.65325904191441,64.4440140424290888],"hsluv":[148.25026899586868,58.1346686170252127,64.4440140424290888]},"#66aa99":{"lch":[64.861761772217136,32.5704605989434484,167.654678216446086],"luv":[64.861761772217136,-31.8173259789585323,6.96366793981576304],"rgb":[0.4,0.66666666666666663,0.6],"xyz":[0.256026205829874121,0.338731534967157,0.353271060989869],"hpluv":[167.654678216446086,63.7198120272805681,64.861761772217136],"hsluv":[167.654678216446086,60.083023100845935,64.861761772217136]},"#66aaaa":{"lch":[65.3382237636027,32.1097126044189949,192.177050630060876],"luv":[65.3382237636027,-31.387258852500235,-6.77300710648746396],"rgb":[0.4,0.66666666666666663,0.66666666666666663],"xyz":[0.271083898795126677,0.344754612153258144,0.432574910606867591],"hpluv":[192.177050630060876,62.3603323483304592,65.3382237636027],"hsluv":[192.177050630060876,62.1162357127798757,65.3382237636027]},"#66aabb":{"lch":[65.8737942906507641,37.4229485671739255,214.174175962111633],"luv":[65.8737942906507641,-30.9612713447490577,-21.020864781881972],"rgb":[0.4,0.66666666666666663,0.733333333333333282],"xyz":[0.288221490902463295,0.351609648996192903,0.522832895705509282],"hpluv":[214.174175962111633,72.0882777495769744,65.8737942906507641],"hsluv":[214.174175962111633,64.192083786910942,65.8737942906507641]},"#66aacc":{"lch":[66.4684397846860833,46.8829891397435361,229.336310284400895],"luv":[66.4684397846860833,-30.5497910563422188,-35.5629714322516],"rgb":[0.4,0.66666666666666663,0.8],"xyz":[0.30751386634618505,0.359326599173681704,0.624439406375779438],"hpluv":[229.336310284400895,89.5033179536005,66.4684397846860833],"hsluv":[229.336310284400895,66.2725553364081748,66.4684397846860833]},"#66aadd":{"lch":[67.1217354618507471,58.5746749070863473,239.007496148652194],"luv":[67.1217354618507471,-30.1616186688116876,-50.2122425285710676],"rgb":[0.4,0.66666666666666663,0.866666666666666696],"xyz":[0.329032191896818593,0.367933929393935211,0.737769254275785435],"hpluv":[239.007496148652194,110.735287258409116,67.1217354618507471],"hsluv":[239.007496148652194,68.3252248927570349,67.1217354618507471]},"#66aaee":{"lch":[67.8329035309127,71.3390505041132,245.305718817638592],"luv":[67.8329035309127,-29.803771094245274,-64.8150858627082584],"rgb":[0.4,0.66666666666666663,0.933333333333333348],"xyz":[0.352844372162993358,0.377458801500405228,0.863180070344308659],"hpluv":[245.305718817638592,133.452355648257935,67.8329035309127],"hsluv":[245.305718817638592,80.362890995181445,67.8329035309127]},"#66aaff":{"lch":[68.6008528128324144,84.5574659264264312,249.594848961048797],"luv":[68.6008528128324144,-29.4814940521041038,-79.2515397475312],"rgb":[0.4,0.66666666666666663,1],"xyz":[0.379015420572824724,0.387927220864337952,1.00101425863609061],"hpluv":[249.594848961048797,156.409011428865199,68.6008528128324144],"hsluv":[249.594848961048797,99.9999999999981,68.6008528128324144]},"#112200":{"lch":[11.0156269675282488,14.1286449823385087,113.920199516574741],"luv":[11.0156269675282488,-5.72865521459208082,12.9151507335100835],"rgb":[0.0666666666666666657,0.133333333333333331,0],"xyz":[0.00803163592779996757,0.0126319728938838038,0.00201503147454941628],"hpluv":[113.920199516574741,162.753605553330914,11.0156269675282488],"hsluv":[113.920199516574741,100.000000000002302,11.0156269675282488]},"#112211":{"lch":[11.3010826742418828,9.17677244733547,127.715012949238741],"luv":[11.3010826742418828,-5.61374683501564142,7.25940762201209555],"rgb":[0.0666666666666666657,0.133333333333333331,0.0666666666666666657],"xyz":[0.00904330142743709,0.0130366390937386584,0.00734313643930504731],"hpluv":[127.715012949238741,103.040803658029205,11.3010826742418828],"hsluv":[127.715012949238741,52.4661346244892783,11.3010826742418828]},"#112222":{"lch":[11.8149934741043623,5.60956124878379736,192.177050630060876],"luv":[11.8149934741043623,-5.48334870304322308,-1.18324317225625331],"rgb":[0.0666666666666666657,0.133333333333333331,0.133333333333333331],"xyz":[0.0109186595659141079,0.0137867823491294762,0.0172200226352842434],"hpluv":[192.177050630060876,60.2469040904941551,11.8149934741043623],"hsluv":[192.177050630060876,60.0110800331641911,11.8149934741043623]},"#112233":{"lch":[12.6219648570067733,12.7575995118883281,244.93155638428982],"luv":[12.6219648570067733,-5.40540262923445,-11.5558629154900672],"rgb":[0.0666666666666666657,0.133333333333333331,0.2],"xyz":[0.0140064102983718484,0.0150218826421125891,0.0334821764928953866],"hpluv":[244.93155638428982,128.257072990564865,12.6219648570067733],"hsluv":[244.93155638428982,68.2965554989448265,12.6219648570067733]},"#112244":{"lch":[13.7124312845167182,23.0561698733830092,256.354402060867073],"luv":[13.7124312845167182,-5.43930918870511082,-22.4053762472305387],"rgb":[0.0666666666666666657,0.133333333333333331,0.266666666666666663],"xyz":[0.0184644055425907255,0.0168050807398001656,0.0569609514457820251],"hpluv":[256.354402060867073,213.359519949101497,13.7124312845167182],"hsluv":[256.354402060867073,75.5965994738604508,13.7124312845167182]},"#112255":{"lch":[15.056320299603339,33.5848303856462849,260.40485184836416],"luv":[15.056320299603339,-5.59809589119781581,-33.114983835502386],"rgb":[0.0666666666666666657,0.133333333333333331,0.333333333333333315],"xyz":[0.024426819581952721,0.019190046355545,0.0883629987197559336],"hpluv":[260.40485184836416,283.050313811336878,15.056320299603339],"hsluv":[260.40485184836416,81.3424686793067,15.056320299603339]},"#112266":{"lch":[16.6136212231118279,43.9645077489691118,262.329755848243337],"luv":[16.6136212231118279,-5.86800935048734384,-43.5711419160865958],"rgb":[0.0666666666666666657,0.133333333333333331,0.4],"xyz":[0.0320118153554608958,0.02222404466494831,0.128310643126899909],"hpluv":[262.329755848243337,335.797328537363626,16.6136212231118279],"hsluv":[262.329755848243337,85.6428490187558396,16.6136212231118279]},"#112277":{"lch":[18.3427569840269769,54.1821774694947678,263.400149453671133],"luv":[18.3427569840269769,-6.22740469049246936,-53.8231157232341815],"rgb":[0.0666666666666666657,0.133333333333333331,0.466666666666666674],"xyz":[0.0413258283756628153,0.0259496498730291264,0.177364445033297818],"hpluv":[263.400149453671133,374.827260372181627,18.3427569840269769],"hsluv":[263.400149453671133,88.8099744527525559,18.3427569840269769]},"#112288":{"lch":[20.2056943122802366,64.2803592359499,264.056887374403459],"luv":[20.2056943122802366,-6.65565132438349316,-63.9348644242795103],"rgb":[0.0666666666666666657,0.133333333333333331,0.533333333333333326],"xyz":[0.0524662454776066434,0.0304058167138067173,0.236037308436869986],"hpluv":[264.056887374403459,403.686144257890874,20.2056943122802366],"hsluv":[264.056887374403459,91.1461001738222762,20.2056943122802366]},"#112299":{"lch":[22.17018380613613,74.2918952905243799,264.488199331991609],"luv":[22.17018380613613,-7.13579321215933149,-73.9484020185124677],"rgb":[0.0666666666666666657,0.133333333333333331,0.6],"xyz":[0.0655232095866793568,0.0356286023574358818,0.304803986077987865],"hpluv":[264.488199331991609,425.217833826531262,22.17018380613613],"hsluv":[264.488199331991609,92.8866294242426136,22.17018380613613]},"#1122aa":{"lch":[24.2101316823922517,84.2333021684004848,264.786067280823943],"luv":[24.2101316823922517,-7.6546801533155886,-83.8847725510625537],"rgb":[0.0666666666666666657,0.133333333333333331,0.66666666666666663],"xyz":[0.0805809025519319,0.0416516795435369833,0.384107835694986466],"hpluv":[264.786067280823943,441.495215422381477,24.2101316823922517],"hsluv":[264.786067280823943,94.2012423737010209,24.2101316823922517]},"#1122bb":{"lch":[26.3050242232650149,94.1101405136049891,264.999933480500431],"luv":[26.3050242232650149,-8.20234804116949334,-93.7520134935884926],"rgb":[0.0666666666666666657,0.133333333333333331,0.733333333333333282],"xyz":[0.0977184946592685455,0.0485067163864717418,0.474365820793628212],"hpluv":[264.999933480500431,453.98033637772636,26.3050242232650149],"hsluv":[264.999933480500431,95.2089691602506605,26.3050242232650149]},"#1122cc":{"lch":[28.4390102065576187,103.92243186966887,265.158337172634162],"luv":[28.4390102065576187,-8.77130520241401612,-103.551610565708117],"rgb":[0.0666666666666666657,0.133333333333333331,0.8],"xyz":[0.117010870102990286,0.0562236665639605435,0.575972331463898368],"hpluv":[265.158337172634162,463.69685512523705,28.4390102065576187],"hsluv":[265.158337172634162,95.9928942328389496,28.4390102065576187]},"#1122dd":{"lch":[30.599961250020371,113.668086087716972,265.278693166229971],"luv":[30.599961250020371,-9.35592092097037664,-113.282392888591403],"rgb":[0.0666666666666666657,0.133333333333333331,0.866666666666666696],"xyz":[0.138529195653623816,0.0648309967842140705,0.689302179363904366],"hpluv":[265.278693166229971,471.364637015548908,30.599961250020371],"hsluv":[265.278693166229971,96.6113336559982,30.599961250020371]},"#1122ee":{"lch":[32.7786459144851463,123.344693870669801,265.37211393361406],"luv":[32.7786459144851463,-9.95194954038693247,-122.942556531067964],"rgb":[0.0666666666666666657,0.133333333333333331,0.933333333333333348],"xyz":[0.162341375919798553,0.0743558688906841,0.814712995432427589],"hpluv":[265.37211393361406,477.494956838131543,32.7786459144851463],"hsluv":[265.37211393361406,97.1056530386567118,32.7786459144851463]},"#1122ff":{"lch":[34.9680553815075,132.950321242967135,265.445956583698],"luv":[34.9680553815075,-10.5561742154436597,-132.530581770930752],"rgb":[0.0666666666666666657,0.133333333333333331,1],"xyz":[0.188512424329629946,0.0848242882546168114,0.952547183724209434],"hpluv":[265.445956583698,482.455471693424897,34.9680553815075],"hsluv":[265.445956583698,99.9999999999995595,34.9680553815075]},"#66bb00":{"lch":[68.2883247343563,91.0397787832552297,117.384795663234385],"luv":[68.2883247343563,-41.875036539852637,80.8376313092488914],"rgb":[0.4,0.733333333333333282,0],"xyz":[0.232489130079593515,0.383643901320803504,0.0618002723559631373],"hpluv":[117.384795663234385,169.170277477244,68.2883247343563],"hsluv":[117.384795663234385,100.000000000002402,68.2883247343563]},"#66bb11":{"lch":[68.3179499939719079,89.8644626985519466,117.727722441428654],"luv":[68.3179499939719079,-41.8112733484955896,79.5452014710932644],"rgb":[0.4,0.733333333333333282,0.0666666666666666657],"xyz":[0.233500795579230647,0.384048567520658357,0.0671283773207187739],"hpluv":[117.727722441428654,166.91389144855998,68.3179499939719079],"hsluv":[117.727722441428654,98.2613130840239108,68.3179499939719079]},"#66bb22":{"lch":[68.3728123300379309,87.7153655991844374,118.381366327960222],"luv":[68.3728123300379309,-41.6944557120635579,77.1722600749346839],"rgb":[0.4,0.733333333333333282,0.133333333333333331],"xyz":[0.235376153717707648,0.384798710776049158,0.0770052635166979665],"hpluv":[118.381366327960222,162.791438416492724,68.3728123300379309],"hsluv":[118.381366327960222,95.072259168186676,68.3728123300379309]},"#66bb33":{"lch":[68.4629872592027766,84.2604886941914515,119.511012469656151],"luv":[68.4629872592027766,-41.5059446288263274,73.3286200296498691],"rgb":[0.4,0.733333333333333282,0.2],"xyz":[0.238463904450165409,0.386033811069032284,0.0932674173743091],"hpluv":[119.511012469656151,156.173540237969377,68.4629872592027766],"hsluv":[119.511012469656151,89.9157079277594846,68.4629872592027766]},"#66bb44":{"lch":[68.5928402387875451,79.4555052917154683,121.268984442668796],"luv":[68.5928402387875451,-41.2418962487648457,67.9137932600435761],"rgb":[0.4,0.733333333333333282,0.266666666666666663],"xyz":[0.242921899694384269,0.38781700916671985,0.116746192327195741],"hpluv":[121.268984442668796,146.988898097842537,68.5928402387875451],"hsluv":[121.268984442668796,82.6706505658268,68.5928402387875451]},"#66bb55":{"lch":[68.7658933773114711,73.3682686647690474,123.883282583110088],"luv":[68.7658933773114711,-40.9030232283392365,60.9085013577552417],"rgb":[0.4,0.733333333333333282,0.333333333333333315],"xyz":[0.248884313733746254,0.390201974782464711,0.148148239601169657],"hpluv":[123.883282583110088,135.386233996967292,68.7658933773114711],"hsluv":[123.883282583110088,73.3323147762666565,68.7658933773114711]},"#66bb66":{"lch":[68.985024233854773,66.1955602149500493,127.715012949239338],"luv":[68.985024233854773,-40.4940973290304953,52.3648763359380354],"rgb":[0.4,0.733333333333333282,0.4],"xyz":[0.256469309507254439,0.39323597309186803,0.188095884008313619],"hpluv":[127.715012949239338,121.76244699215377,68.985024233854773],"hsluv":[127.715012949239338,61.9987879490855889,68.985024233854773]},"#66bb77":{"lch":[69.2525700917713,58.3030977404443149,133.351332140289912],"luv":[69.2525700917713,-40.0233333378199134,42.395565742911792],"rgb":[0.4,0.733333333333333282,0.466666666666666674],"xyz":[0.265783322527456345,0.396961578299948825,0.237149685914711528],"hpluv":[133.351332140289912,106.830450835327468,69.2525700917713],"hsluv":[133.351332140289912,63.1630001095548,69.2525700917713]},"#66bb88":{"lch":[69.5703900447947632,50.3125315521488901,141.732198444264128],"luv":[69.5703900447947632,-39.5016033478381487,31.1604583428427624],"rgb":[0.4,0.733333333333333282,0.533333333333333326],"xyz":[0.276923739629400201,0.401417745140726423,0.295822549318283667],"hpluv":[141.732198444264128,91.7679559652102625,69.5703900447947632],"hsluv":[141.732198444264128,64.4651291783298888,69.5703900447947632]},"#66bb99":{"lch":[69.9399065468101924,43.264635747530761,154.168279853010262],"luv":[69.9399065468101924,-38.9415329854338594,18.8516767188195544],"rgb":[0.4,0.733333333333333282,0.6],"xyz":[0.2899807037384729,0.406640530784355581,0.364589226959401602],"hpluv":[154.168279853010262,78.4959645714096865,69.9399065468101924],"hsluv":[154.168279853010262,65.8787579381207848,69.9399065468101924]},"#66bbaa":{"lch":[70.3621368583926881,38.7745898249838348,171.579209782291855],"luv":[70.3621368583926881,-38.3565710720190296,5.67822786553099768],"rgb":[0.4,0.733333333333333282,0.66666666666666663],"xyz":[0.305038396703725456,0.412663607970456703,0.443893076576400203],"hpluv":[171.579209782291855,69.9274221790226278,70.3621368583926881],"hsluv":[171.579209782291855,67.37547943529961,70.3621368583926881]},"#66bbbb":{"lch":[70.8377198879813221,38.6292683935386592,192.177050630060933],"luv":[70.8377198879813221,-37.7601276376370194,-8.14819841495072161],"rgb":[0.4,0.733333333333333282,0.733333333333333282],"xyz":[0.322175988811062075,0.419518644813391461,0.534151061675042],"hpluv":[192.177050630060933,69.1976324805594629,70.8377198879813221],"hsluv":[192.177050630060933,68.9267726464228758,70.8377198879813221]},"#66bbcc":{"lch":[71.3669414392261103,43.4063518114314,211.106579982723787],"luv":[71.3669414392261103,-37.1648552128157,-22.4250956427882215],"rgb":[0.4,0.733333333333333282,0.8],"xyz":[0.341468364254783829,0.427235594990880263,0.635757572345312161],"hpluv":[211.106579982723787,77.1783568223693806,71.3669414392261103],"hsluv":[211.106579982723787,70.5055674968506736,71.3669414392261103]},"#66bbdd":{"lch":[71.9497594848613602,52.0084901368895629,225.300588521911806],"luv":[71.9497594848613602,-36.5821167433876298,-36.9679831866995059],"rgb":[0.4,0.733333333333333282,0.866666666666666696],"xyz":[0.362986689805417373,0.435842925211133769,0.749087420245318159],"hpluv":[225.300588521911806,91.724261948179759,71.9497594848613602],"hsluv":[225.300588521911806,72.0874065633031336,71.9497594848613602]},"#66bbee":{"lch":[72.5858302461357852,62.9426478584387183,235.089705553804919],"luv":[72.5858302461357852,-36.0216507769597953,-51.6160594653851135],"rgb":[0.4,0.733333333333333282,0.933333333333333348],"xyz":[0.386798870071592082,0.445367797317603786,0.874498236313841382],"hpluv":[235.089705553804919,110.035415213757233,72.5858302461357852],"hsluv":[235.089705553804919,76.908955535231712,72.5858302461357852]},"#66bbff":{"lch":[73.2745353232689638,75.1445669264803513,241.815748730615525],"luv":[73.2745353232689638,-35.4914181095182641,-66.2349241650025817],"rgb":[0.4,0.733333333333333282,1],"xyz":[0.412969918481423504,0.45583621668153651,1.01233242460562312],"hpluv":[241.815748730615525,130.131920555189879,73.2745353232689638],"hsluv":[241.815748730615525,99.9999999999976552,73.2745353232689638]},"#113300":{"lch":[17.8585390793191152,25.0449080182821966,121.332554648991049],"luv":[17.8585390793191152,-13.0234653569097247,21.3924465113644295],"rgb":[0.0666666666666666657,0.2,0],"xyz":[0.0141493580168107792,0.0248674170719056023,0.00405427217088629669],"hpluv":[121.332554648991049,177.956083469309505,17.8585390793191152],"hsluv":[121.332554648991049,100.000000000002288,17.8585390793191152]},"#113311":{"lch":[18.041211184449395,20.8015074137336562,127.715012949239792],"luv":[18.041211184449395,-12.7249964056056086,16.4553084796651738],"rgb":[0.0666666666666666657,0.2,0.0666666666666666657],"xyz":[0.015161023516447901,0.0252720832717604552,0.00938237713564192902],"hpluv":[127.715012949239792,146.308124837666583,18.041211184449395],"hsluv":[127.715012949239792,74.4969128915689254,18.041211184449395]},"#113322":{"lch":[18.3747440863758129,14.8635488733567129,145.575764327225926],"luv":[18.3747440863758129,-12.2605616690393529,8.40260154180516672],"rgb":[0.0666666666666666657,0.2,0.133333333333333331],"xyz":[0.0170363816549249196,0.0260222265271512765,0.0192592633316211251],"hpluv":[145.575764327225926,102.645648490479701,18.3747440863758129],"hsluv":[145.575764327225926,76.8412554017051,18.3747440863758129]},"#113333":{"lch":[18.910205854271,11.9516732098830207,192.177050630061075],"luv":[18.910205854271,-11.6827660646039035,-2.5210056714682163],"rgb":[0.0666666666666666657,0.2,0.2],"xyz":[0.0201241323873826601,0.0272573268201343893,0.0355214171892322683],"hpluv":[192.177050630061075,80.19952200231,18.910205854271],"hsluv":[192.177050630061075,79.885597544945341,18.910205854271]},"#113344":{"lch":[19.6554681695294136,18.5554908550806559,233.185939638237187],"luv":[19.6554681695294136,-11.1188227079461566,-14.8552355236207116],"rgb":[0.0666666666666666657,0.2,0.266666666666666663],"xyz":[0.0245821276316015372,0.0290405249178219624,0.0590001921421189068],"hpluv":[233.185939638237187,119.79215597403514,19.6554681695294136],"hsluv":[233.185939638237187,83.0941728600946163,19.6554681695294136]},"#113355":{"lch":[20.6059777210847557,29.4541985213363553,248.778672986371305],"luv":[20.6059777210847557,-10.6615827984222822,-27.4568837045772334],"rgb":[0.0666666666666666657,0.2,0.333333333333333315],"xyz":[0.0305445416709635327,0.0314254905335667953,0.0904022394160928222],"hpluv":[248.778672986371305,181.381634101163,20.6059777210847557],"hsluv":[248.778672986371305,86.0667890851332089,20.6059777210847557]},"#113366":{"lch":[21.7480278014825927,41.0513772817531262,255.392805777322508],"luv":[21.7480278014825927,-10.3527823296753354,-39.7244946445288178],"rgb":[0.0666666666666666657,0.2,0.4],"xyz":[0.0381295374444717075,0.0344594888429701068,0.130349883823236784],"hpluv":[255.392805777322508,239.522976201191227,21.7480278014825927],"hsluv":[255.392805777322508,88.6137215649990537,21.7480278014825927]},"#113377":{"lch":[23.0621320749224097,52.4639032010768602,258.793139915612699],"luv":[23.0621320749224097,-10.1964540550792755,-51.4635158514711293],"rgb":[0.0666666666666666657,0.2,0.466666666666666674],"xyz":[0.04744355046467362,0.0381850940510509232,0.179403685729634693],"hpluv":[258.793139915612699,288.669213908808,23.0621320749224097],"hsluv":[258.793139915612699,90.7010140503724926,23.0621320749224097]},"#113388":{"lch":[24.5260866455155693,63.5079254673071389,260.778240759541745],"luv":[24.5260866455155693,-10.1775299952298717,-62.6871157444433322],"rgb":[0.0666666666666666657,0.2,0.533333333333333326],"xyz":[0.0585839675666174481,0.0426412608918285141,0.238076549133206861],"hpluv":[260.778240759541745,328.5783880762134,24.5260866455155693],"hsluv":[260.778240759541745,92.3732755032704,24.5260866455155693]},"#113399":{"lch":[26.1173586094444445,74.1961224571638667,262.040130643645512],"luv":[26.1173586094444445,-10.2746398160742789,-73.4812653968914447],"rgb":[0.0666666666666666657,0.2,0.6],"xyz":[0.0716409316756901615,0.0478640465354576786,0.30684322677432474],"hpluv":[262.040130643645512,360.488391101723778,26.1173586094444445],"hsluv":[262.040130643645512,93.700931793532277,26.1173586094444445]},"#1133aa":{"lch":[27.8146812937100378,84.589542856674214,262.892366774415223],"luv":[27.8146812937100378,-10.4665753413372666,-83.9395113240792767],"rgb":[0.0666666666666666657,0.2,0.66666666666666663],"xyz":[0.0866986246409427,0.0538871237215587801,0.386147076391323341],"hpluv":[262.892366774415223,385.906342473210088,27.8146812937100378],"hsluv":[262.892366774415223,94.7540719156047544,27.8146812937100378]},"#1133bb":{"lch":[29.5989386642012917,94.7497677250031245,263.494633441352278],"luv":[29.5989386642012917,-10.734795769033445,-94.1396974912241],"rgb":[0.0666666666666666657,0.2,0.733333333333333282],"xyz":[0.10383621674827935,0.0607421605644935386,0.476405061489965087],"hpluv":[263.494633441352278,406.201330660618282,29.5989386642012917],"hsluv":[263.494633441352278,95.59270717643426,29.5989386642012917]},"#1133cc":{"lch":[31.4535171675710927,104.725970292241058,263.935552719695806],"luv":[31.4535171675710927,-11.0639900580249932,-104.139891384844844],"rgb":[0.0666666666666666657,0.2,0.8],"xyz":[0.123128592192001091,0.0684591107419823403,0.578011572160235243],"hpluv":[263.935552719695806,422.497850271701509,31.4535171675710927],"hsluv":[263.935552719695806,96.2648935085394299,31.4535171675710927]},"#1133dd":{"lch":[33.3643121953656845,114.554023382916327,264.267643395871801],"luv":[33.3643121953656845,-11.4418472625073555,-113.981175658242762],"rgb":[0.0666666666666666657,0.2,0.866666666666666696],"xyz":[0.144646917742634634,0.0770664409622358743,0.691341420060241241],"hpluv":[264.267643395871801,435.679872957086786,33.3643121953656845],"hsluv":[264.267643395871801,96.8079128297289913,33.3643121953656845]},"#1133ee":{"lch":[35.3195411096734375,124.259061611723823,264.523680461367292],"luv":[35.3195411096734375,-11.8585821660500468,-123.691909281234786],"rgb":[0.0666666666666666657,0.2,0.933333333333333348],"xyz":[0.168459098008809371,0.0865913130687059,0.816752236128764464],"hpluv":[264.523680461367292,446.428943593210363,35.3195411096734375],"hsluv":[264.523680461367292,97.2502875158067752,35.3195411096734375]},"#1133ff":{"lch":[37.3094684856901466,133.858437412957159,264.724991571549936],"luv":[37.3094684856901466,-12.3064438760062309,-133.291532760957],"rgb":[0.0666666666666666657,0.2,1],"xyz":[0.194630146418640765,0.0970597324326386,0.954586424420546309],"hpluv":[264.724991571549936,455.266836240216,37.3094684856901466],"hsluv":[264.724991571549936,99.9999999999995168,37.3094684856901466]},"#66cc00":{"lch":[73.5514640948473328,100.417876322708906,119.311479215942285],"luv":[73.5514640948473328,-49.1602904566029579,87.5614968315714322],"rgb":[0.4,0.8,0],"xyz":[0.270712873389210462,0.460091387940038399,0.0745415201258350923],"hpluv":[119.311479215942285,173.244332851636557,73.5514640948473328],"hsluv":[119.311479215942285,100.00000000000226,73.5514640948473328]},"#66cc11":{"lch":[73.5777109322390572,99.3703085818509,119.605548775623987],"luv":[73.5777109322390572,-49.0915230219986611,86.397225621155485],"rgb":[0.4,0.8,0.0666666666666666657],"xyz":[0.271724538888847567,0.460496054139893252,0.079869625090590729],"hpluv":[119.605548775623987,171.375877908330068,73.5777109322390572],"hsluv":[119.605548775623987,98.5479766016144652,73.5777109322390572]},"#66cc22":{"lch":[73.626324929263788,97.4510710028789333,120.162888823436575],"luv":[73.626324929263788,-48.965269014871545,84.2562381661406192],"rgb":[0.4,0.8,0.133333333333333331],"xyz":[0.273599897027324623,0.461246197395284052,0.0897465112865699216],"hpluv":[120.162888823436575,167.954954584373922,73.626324929263788],"hsluv":[120.162888823436575,95.8800576342850377,73.626324929263788]},"#66cc33":{"lch":[73.7062524827218084,94.3550745227874,121.116489614327122],"luv":[73.7062524827218084,-48.7607908304490252,80.779114663321],"rgb":[0.4,0.8,0.2],"xyz":[0.276687647759782329,0.462481297688267179,0.106008665144181058],"hpluv":[121.116489614327122,162.442721914772306,73.7062524827218084],"hsluv":[121.116489614327122,91.5533619475712896,73.7062524827218084]},"#66cc44":{"lch":[73.8213986639243,90.0253172969507318,122.577193203242018],"luv":[73.8213986639243,-48.472817822786439,75.8613451418811451],"rgb":[0.4,0.8,0.266666666666666663],"xyz":[0.281145643004001244,0.464264495785954745,0.129487440097067696],"hpluv":[122.577193203242018,154.746814564283426,73.8213986639243],"hsluv":[122.577193203242018,85.4474048693987527,73.8213986639243]},"#66cc55":{"lch":[73.974942724102462,84.4934421806047879,124.700104619680829],"luv":[73.974942724102462,-48.100513339115345,69.4656921655632118],"rgb":[0.4,0.8,0.333333333333333315],"xyz":[0.28710805704336323,0.466649461401699606,0.160889487371041612],"hpluv":[124.700104619680829,144.936474170198323,73.974942724102462],"hsluv":[124.700104619680829,77.5306238992907,73.974942724102462]},"#66cc66":{"lch":[74.1695172801941567,77.8884466842553564,127.715012949239551],"luv":[74.1695172801941567,-47.6470375142611218,61.6146893443493937],"rgb":[0.4,0.8,0.4],"xyz":[0.294693052816871415,0.469683459711102924,0.200837131778185574],"hpluv":[127.715012949239551,133.256044234036153,74.1695172801941567],"hsluv":[127.715012949239551,67.8510775159793,74.1695172801941567]},"#66cc77":{"lch":[74.407302734023375,70.4570986939790203,131.971622948486811],"luv":[74.407302734023375,-47.1190629819757234,52.3831715350808551],"rgb":[0.4,0.8,0.466666666666666674],"xyz":[0.30400706583707332,0.47340906491918372,0.249890933684583483],"hpluv":[131.971622948486811,120.156846155807528,74.407302734023375],"hsluv":[131.971622948486811,68.6882673601907499,74.407302734023375]},"#66cc88":{"lch":[74.6900832163393602,62.6050444414555045,138.002106903522986],"luv":[74.6900832163393602,-46.5261552249599859,41.8892404980031543],"rgb":[0.4,0.8,0.533333333333333326],"xyz":[0.315147482939017121,0.477865231759961318,0.308563797088155622],"hpluv":[138.002106903522986,106.361808066007058,74.6900832163393602],"hsluv":[138.002106903522986,69.6340873295455367,74.6900832163393602]},"#66cc99":{"lch":[75.0192831982140405,54.9734389641357382,146.572693391746668],"luv":[75.0192831982140405,-45.8800303566060634,30.2836887782922481],"rgb":[0.4,0.8,0.6],"xyz":[0.32820444704808982,0.483088017403590475,0.377330474729273557],"hpluv":[146.572693391746668,92.9863760296957338,75.0192831982140405],"hsluv":[146.572693391746668,70.6723780843603,75.0192831982140405]},"#66ccaa":{"lch":[75.3959940236094,48.5503126646653,158.569930493367366],"luv":[75.3959940236094,-45.1937477629490587,17.7386026218441692],"rgb":[0.4,0.8,0.66666666666666663],"xyz":[0.343262140013342376,0.489111094589691597,0.456634324346272158],"hpluv":[158.569930493367366,81.7114817988577187,75.3959940236094],"hsluv":[158.569930493367366,71.7849539596152368,75.3959940236094]},"#66ccbb":{"lch":[75.8209952994642,44.7015709258060667,174.304687468137473],"luv":[75.8209952994642,-44.4809102105153755,4.43610979112772],"rgb":[0.4,0.8,0.733333333333333282],"xyz":[0.360399732120679051,0.495966131432626356,0.546892309444913849],"hpluv":[174.304687468137473,74.8122352806046109,75.8209952994642],"hsluv":[174.304687468137473,72.9527506991265113,75.8209952994642]},"#66cccc":{"lch":[76.2947739303160262,44.7620652034609634,192.177050630061018],"luv":[76.2947739303160262,-43.7549393425641924,-9.44180938207391],"rgb":[0.4,0.8,0.8],"xyz":[0.379692107564400749,0.503683081610115102,0.648498820115184],"hpluv":[192.177050630061018,75.6461904464395,76.2947739303160262],"hsluv":[192.177050630061018,74.1568646821725679,76.2947739303160262]},"#66ccdd":{"lch":[76.8175423984245782,49.1342213212598082,208.868111129197587],"luv":[76.8175423984245782,-43.0284772118039101,-23.7217590764220851],"rgb":[0.4,0.8,0.866666666666666696],"xyz":[0.401210433115034348,0.512290411830368719,0.76182866801519],"hpluv":[208.868111129197587,85.3113130970085791,76.8175423984245782],"hsluv":[208.868111129197587,75.3794120212671714,76.8175423984245782]},"#66ccee":{"lch":[77.3892571801628435,57.0358051623713038,222.109360872917676],"luv":[77.3892571801628435,-42.312941633688304,-38.245235531031426],"rgb":[0.4,0.8,0.933333333333333348],"xyz":[0.425022613381209058,0.521815283936838736,0.887239484083713226],"hpluv":[222.109360872917676,102.061631830010029,77.3892571801628435],"hsluv":[222.109360872917676,76.6041682601332923,77.3892571801628435]},"#66ccff":{"lch":[78.0096377377628158,67.2874731922355664,231.792303901557148],"luv":[78.0096377377628158,-41.6182406850010267,-52.872734853430309],"rgb":[0.4,0.8,1],"xyz":[0.451193661791040479,0.53228370330077146,1.02507367237549518],"hpluv":[231.792303901557148,124.498094909356865,78.0096377377628158],"hsluv":[231.792303901557148,99.9999999999966604,78.0096377377628158]},"#114400":{"lch":[24.4916204196936391,35.767443133059956,124.131260038140155],"luv":[24.4916204196936391,-20.0687794552527912,29.6066559991685239],"rgb":[0.0666666666666666657,0.266666666666666663,0],"xyz":[0.0229819284997768124,0.0425325580378379114,0.00699846233187489172],"hpluv":[124.131260038140155,185.314627891622,24.4916204196936391],"hsluv":[124.131260038140155,100.000000000002416,24.4916204196936391]},"#114411":{"lch":[24.6196313539200702,32.2821952767626144,127.715012949240105],"luv":[24.6196313539200702,-19.7481274165088401,25.5372589646650674],"rgb":[0.0666666666666666657,0.266666666666666663,0.0666666666666666657],"xyz":[0.0239935939994139341,0.0429372242376927643,0.0123265672966305223],"hpluv":[127.715012949240105,166.387555424049935,24.6196313539200702],"hsluv":[127.715012949240105,84.7209219338948,24.6196313539200702]},"#114422":{"lch":[24.8548180969752792,26.7199561105771828,135.968420687644709],"luv":[24.8548180969752792,-19.2104947057918238,18.5718321042894203],"rgb":[0.0666666666666666657,0.266666666666666663,0.133333333333333331],"xyz":[0.0258689521378909527,0.0436873674930835856,0.0222034534926097184],"hpluv":[135.968420687644709,136.415738329938534,24.8548180969752792],"hsluv":[135.968420687644709,85.5945702875542338,24.8548180969752792]},"#114433":{"lch":[25.2362525898650887,20.3101465248311648,155.348193219538018],"luv":[25.2362525898650887,-18.4590663004995292,8.4714180143512],"rgb":[0.0666666666666666657,0.266666666666666663,0.2],"xyz":[0.0289567028703486933,0.0449224677860667,0.0384656073502208651],"hpluv":[155.348193219538018,102.123929581721498,25.2362525898650887],"hsluv":[155.348193219538018,86.8340768870874911,25.2362525898650887]},"#114444":{"lch":[25.774812755707849,18.0038630185053101,192.177050630061132],"luv":[25.774812755707849,-17.5987843886529483,-3.79761393914762779],"rgb":[0.0666666666666666657,0.266666666666666663,0.266666666666666663],"xyz":[0.0334146981145675703,0.0467056658837542715,0.0619443823031075036],"hpluv":[192.177050630061132,88.6358691141452226,25.774812755707849],"hsluv":[192.177050630061132,88.2889223192016743,25.774812755707849]},"#114455":{"lch":[26.4741010086829718,23.9697809957076196,225.699525295295985],"luv":[26.4741010086829718,-16.7410035671662349,-17.1548593857925162],"rgb":[0.0666666666666666657,0.266666666666666663,0.333333333333333315],"xyz":[0.0393771121539295693,0.0490906314994991044,0.0933464295770814],"hpluv":[225.699525295295985,114.889984549549212,26.4741010086829718],"hsluv":[225.699525295295985,89.7968555301121398,26.4741010086829718]},"#114466":{"lch":[27.3316922889079734,34.6428172107851182,242.548035964380944],"luv":[27.3316922889079734,-15.9705048052882308,-30.7419544037807526],"rgb":[0.0666666666666666657,0.266666666666666663,0.4],"xyz":[0.0469621079274377407,0.052124629808902416,0.133294073984225381],"hpluv":[242.548035964380944,160.837015687659374,27.3316922889079734],"hsluv":[242.548035964380944,91.2329185483074525,27.3316922889079734]},"#114477":{"lch":[28.3404051997208484,46.6267191674415,250.798290317077829],"luv":[28.3404051997208484,-15.3352867062553546,-44.0327142242719844],"rgb":[0.0666666666666666657,0.266666666666666663,0.466666666666666674],"xyz":[0.0562761209476396601,0.0558502350169832323,0.18234787589062329],"hpluv":[250.798290317077829,208.770018220734585,28.3404051997208484],"hsluv":[250.798290317077829,92.5248535524246734,28.3404051997208484]},"#114488":{"lch":[29.4896359978219706,58.6954673108201632,255.342505689020953],"luv":[29.4896359978219706,-14.8523182742844106,-56.7852667926718055],"rgb":[0.0666666666666666657,0.266666666666666663,0.533333333333333326],"xyz":[0.0674165380495834882,0.0603064018577608302,0.241020739294195457],"hpluv":[255.342505689020953,252.565763352450517,29.4896359978219706],"hsluv":[255.342505689020953,93.6449802292742817,29.4896359978219706]},"#114499":{"lch":[30.7666487879374699,70.4540899928233699,258.107815399211404],"luv":[30.7666487879374699,-14.5185243824624628,-68.9419411278265102],"rgb":[0.0666666666666666657,0.266666666666666663,0.6],"xyz":[0.0804735021586562,0.0655291875013899877,0.309787416935313364],"hpluv":[258.107815399211404,290.579747717257874,30.7666487879374699],"hsluv":[258.107815399211404,94.5943513350065359,30.7666487879374699]},"#1144aa":{"lch":[32.1577052090601185,81.8040240174920541,259.917940759024589],"luv":[32.1577052090601185,-14.3204852090806973,-80.5408098347099894],"rgb":[0.0666666666666666657,0.266666666666666663,0.66666666666666663],"xyz":[0.0955311951239087437,0.0715522646874911,0.389091266552311965],"hpluv":[259.917940759024589,322.796594575352628,32.1577052090601185],"hsluv":[259.917940759024589,95.3887741756132925,32.1577052090601185]},"#1144bb":{"lch":[33.6489603009756664,92.7573184463875435,261.168522985608377],"luv":[33.6489603009756664,-14.2409127099882671,-91.6576048702508928],"rgb":[0.0666666666666666657,0.266666666666666663,0.733333333333333282],"xyz":[0.11266878723124539,0.0784073015304258547,0.479349251650953712],"hpluv":[261.168522985608377,349.796823816496214,33.6489603009756664],"hsluv":[261.168522985608377,96.0495339612535872,33.6489603009756664]},"#1144cc":{"lch":[35.2271045850644597,103.362934076908545,262.068884255867147],"luv":[35.2271045850644597,-14.262270250582695,-102.374234005860515],"rgb":[0.0666666666666666657,0.266666666666666663,0.8],"xyz":[0.131961162674967131,0.0861242517079146563,0.580955762321223812],"hpluv":[262.068884255867147,372.329293739207799,35.2271045850644597],"hsluv":[262.068884255867147,96.5982694251149638,35.2271045850644597]},"#1144dd":{"lch":[36.8797734412618,113.676357292171801,262.73849416957313],"luv":[36.8797734412618,-14.3684841809298494,-112.764625967365617],"rgb":[0.0666666666666666657,0.266666666666666663,0.866666666666666696],"xyz":[0.153479488225600674,0.0947315819281681903,0.69428561022122981],"hpluv":[262.73849416957313,391.13009227787353,36.8797734412618],"hsluv":[262.73849416957313,97.0546019825808,36.8797734412618]},"#1144ee":{"lch":[38.5957670998368911,123.747928777943088,263.249741523271325],"luv":[38.5957670998368911,-14.5455638799169762,-122.890099065165245],"rgb":[0.0666666666666666657,0.266666666666666663,0.933333333333333348],"xyz":[0.177291668491775412,0.104256454034638207,0.819696426289753],"hpluv":[263.249741523271325,406.853061330967478,38.5957670998368911],"hsluv":[263.249741523271325,97.4353215147193623,38.5957670998368911]},"#1144ff":{"lch":[40.3651306844127546,133.619394536005728,263.648645306126298],"luv":[40.3651306844127546,-14.7816672391382209,-132.799265471613751],"rgb":[0.0666666666666666657,0.266666666666666663,1],"xyz":[0.203462716901606805,0.114724873398570917,0.957530614581534878],"hpluv":[263.648645306126298,420.051425771921231,40.3651306844127546],"hsluv":[263.648645306126298,99.9999999999994458,40.3651306844127546]},"#66dd00":{"lch":[78.7732081443282084,109.616469768408933,120.762072840728067],"luv":[78.7732081443282084,-56.0659919017112145,94.1932853050883],"rgb":[0.4,0.866666666666666696,0],"xyz":[0.313346863936385611,0.54535936903439,0.0887528503082264109],"hpluv":[120.762072840728067,211.559351010719155,78.7732081443282084],"hsluv":[120.762072840728067,100.000000000002444,78.7732081443282084]},"#66dd11":{"lch":[78.7966434753788576,108.675393583239966,121.014553037765893],"luv":[78.7966434753788576,-55.9956244091473678,93.1387739746547],"rgb":[0.4,0.866666666666666696,0.0666666666666666657],"xyz":[0.314358529436022716,0.545764035234244882,0.0940809552729820475],"hpluv":[121.014553037765893,210.019013530063148,78.7966434753788576],"hsluv":[121.014553037765893,98.7735218244661866,78.7966434753788576]},"#66dd22":{"lch":[78.8400557089289435,106.948443645027297,121.491090191754736],"luv":[78.8400557089289435,-55.866227309203758,91.1972271745690506],"rgb":[0.4,0.866666666666666696,0.133333333333333331],"xyz":[0.316233887574499772,0.546514178489635682,0.10395784146896124],"hpluv":[121.491090191754736,207.186246213049145,78.8400557089289435],"hsluv":[121.491090191754736,96.5169147905729,78.8400557089289435]},"#66dd33":{"lch":[78.911446872650572,104.154611952746194,122.300539429107701],"luv":[78.911446872650572,-55.6560904548950788,88.037394249850891],"rgb":[0.4,0.866666666666666696,0.2],"xyz":[0.319321638306957478,0.547749278782618809,0.120219995326572376],"hpluv":[122.300539429107701,202.586476802368111,78.911446872650572],"hsluv":[122.300539429107701,92.8487034899531807,78.911446872650572]},"#66dd44":{"lch":[79.0143300648071687,100.229492569308348,123.526451276321851],"luv":[79.0143300648071687,-55.3589437481663,83.5544045983716899],"rgb":[0.4,0.866666666666666696,0.266666666666666663],"xyz":[0.323779633551176393,0.549532476880306375,0.143698770279459015],"hpluv":[123.526451276321851,196.088207898644384,79.0143300648071687],"hsluv":[123.526451276321851,87.6539206040991843,79.0143300648071687]},"#66dd55":{"lch":[79.1515854502963,95.1800529291645603,125.27945296022996],"luv":[79.1515854502963,-54.9726586351532518,77.699737954393882],"rgb":[0.4,0.866666666666666696,0.333333333333333315],"xyz":[0.329742047590538379,0.551917442496051125,0.17510081755343293],"hpluv":[125.27945296022996,187.665730733793509,79.1515854502963],"hsluv":[125.27945296022996,80.8868034505971707,79.1515854502963]},"#66dd66":{"lch":[79.3256225689869723,89.0890908185611607,127.715012949239735],"luv":[79.3256225689869723,-54.4988561596450722,70.4751075215082921],"rgb":[0.4,0.866666666666666696,0.4],"xyz":[0.337327043364046564,0.554951440805454443,0.215048461960576892],"hpluv":[127.715012949239735,177.410630109117562,79.3256225689869723],"hsluv":[127.715012949239735,72.5638298210149,79.3256225689869723]},"#66dd77":{"lch":[79.538466322575843,82.1265081512392072,131.057978326052336],"luv":[79.538466322575843,-53.9425296262626048,61.9271090770055395],"rgb":[0.4,0.866666666666666696,0.466666666666666674],"xyz":[0.346641056384248469,0.558677046013535294,0.264102263866974774],"hpluv":[131.057978326052336,165.560886464635786,79.538466322575843],"hsluv":[131.057978326052336,73.175897046832489,79.538466322575843]},"#66dd88":{"lch":[79.7918079202835173,74.5708009722257543,135.636001638862723],"luv":[79.7918079202835173,-53.3115731427918,52.1409678341327378],"rgb":[0.4,0.866666666666666696,0.533333333333333326],"xyz":[0.35778147348619227,0.563133212854312837,0.322775127270546969],"hpluv":[135.636001638862723,152.557764790666909,79.7918079202835173],"hsluv":[135.636001638862723,73.8730513922454435,79.7918079202835173]},"#66dd99":{"lch":[80.0870378401123162,66.8478260511747919,141.915708870878916],"luv":[80.0870378401123162,-52.6162023759431392,41.2330825345609924],"rgb":[0.4,0.866666666666666696,0.6],"xyz":[0.370838437595265,0.568355998497942,0.391541804911664904],"hpluv":[141.915708870878916,139.150468179242381,80.0870378401123162],"hsluv":[141.915708870878916,74.6453790933081791,80.0870378401123162]},"#66ddaa":{"lch":[80.4252690581998877,59.592891473004542,150.502508447871207],"luv":[80.4252690581998877,-51.8682972227800931,29.3426729750825572],"rgb":[0.4,0.866666666666666696,0.66666666666666663],"xyz":[0.385896130560517525,0.574379075684043117,0.470845654528663449],"hpluv":[150.502508447871207,126.571308780245914,80.4252690581998877],"hsluv":[150.502508447871207,75.4812281571350638,80.4252690581998877]},"#66ddbb":{"lch":[80.807354973374558,53.7174771102931672,161.973645166837599],"luv":[80.807354973374558,-51.0807157732000334,16.6231111165276104],"rgb":[0.4,0.866666666666666696,0.733333333333333282],"xyz":[0.4030337226678542,0.581234112526977875,0.561103639627305251],"hpluv":[161.973645166837599,116.757770235740637,80.807354973374558],"hsluv":[161.973645166837599,76.3679029554368753,80.807354973374558]},"#66ddcc":{"lch":[81.2339045655681389,50.3705316419042148,176.319314132685548],"luv":[81.2339045655681389,-50.2666331071559256,3.23358221770368903],"rgb":[0.4,0.866666666666666696,0.8],"xyz":[0.422326098111575954,0.588951062704466732,0.662710150297575407],"hpluv":[176.319314132685548,112.393665646206941,81.2339045655681389],"hsluv":[176.319314132685548,77.2923330418296501,81.2339045655681389]},"#66dddd":{"lch":[81.7052962965957903,50.5769089008318389,192.177050630061],"luv":[81.7052962965957903,-49.4389517336029,-10.6683534552210038],"rgb":[0.4,0.866666666666666696,0.866666666666666696],"xyz":[0.443844423662209442,0.597558392924720239,0.776039998197581404],"hpluv":[192.177050630061,116.242714563462513,81.7052962965957903],"hsluv":[192.177050630061,78.2416694753709407,81.7052962965957903]},"#66ddee":{"lch":[82.2216916522674524,54.6311568672274745,207.154140846621715],"luv":[82.2216916522674524,-48.6098170936026577,-24.9328895793911158],"rgb":[0.4,0.866666666666666696,0.933333333333333348],"xyz":[0.467656603928384207,0.607083265031190256,0.901450814266104627],"hpluv":[207.154140846621715,129.793318723999505,82.2216916522674524],"hsluv":[207.154140846621715,79.2037752530793,82.2216916522674524]},"#66ddff":{"lch":[82.7830488398693376,61.9519841783888339,219.519505956683815],"luv":[82.7830488398693376,-47.7902556034158366,-39.4225799891321387],"rgb":[0.4,0.866666666666666696,1],"xyz":[0.493827652338215572,0.617551684395123,1.03928500255788636],"hpluv":[219.519505956683815,152.730665075356086,82.7830488398693376],"hsluv":[219.519505956683815,99.9999999999957,82.7830488398693376]},"#115500":{"lch":[30.9160157060817227,46.0913193883500583,125.457330883646421],"luv":[30.9160157060817227,-26.7374134918097575,37.543580579466358],"rgb":[0.0666666666666666657,0.333333333333333315,0],"xyz":[0.0347951852141227744,0.0661590714665301755,0.0109362145699901016],"hpluv":[125.457330883646421,189.179880792461034,30.9160157060817227],"hsluv":[125.457330883646421,100.000000000002402,30.9160157060817227]},"#115511":{"lch":[31.0114762783458957,43.2230667766736616,127.715012949240275],"luv":[31.0114762783458957,-26.4410342208804181,34.1921805521528697],"rgb":[0.0666666666666666657,0.333333333333333315,0.0666666666666666657],"xyz":[0.0358068507137599,0.0665637376663850283,0.0162643195347457331],"hpluv":[127.715012949240275,176.861157643680144,31.0114762783458957],"hsluv":[127.715012949240275,90.0538522348087156,31.0114762783458957]},"#115522":{"lch":[31.1874163697014737,38.3803455570512071,132.492971129528541],"luv":[31.1874163697014737,-25.925914044022,28.3001396827055132],"rgb":[0.0666666666666666657,0.333333333333333315,0.133333333333333331],"xyz":[0.0376822088522369147,0.0673138809217758427,0.0261412057307249292],"hpluv":[132.492971129528541,156.159643444286843,31.1874163697014737],"hsluv":[132.492971129528541,90.4316047034468653,31.1874163697014737]},"#115533":{"lch":[31.4742731349983,31.7764378074468219,142.363318860140765],"luv":[31.4742731349983,-25.163724938647551,19.4043538140960301],"rgb":[0.0666666666666666657,0.333333333333333315,0.2],"xyz":[0.0407699595846946553,0.0685489812147589556,0.0424033595883360759],"hpluv":[142.363318860140765,128.111709873485438,31.4742731349983],"hsluv":[142.363318860140765,90.9947325890089616,31.4742731349983]},"#115544":{"lch":[31.8824114421380642,25.5202649789159608,161.635705606154772],"luv":[31.8824114421380642,-24.2205825435089714,8.04035483341083435],"rgb":[0.0666666666666666657,0.333333333333333315,0.266666666666666663],"xyz":[0.0452279548289135358,0.0703321793124465355,0.0658821345412227144],"hpluv":[161.635705606154772,101.571845607751229,31.8824114421380642],"hsluv":[161.635705606154772,91.6999843863076194,31.8824114421380642]},"#115555":{"lch":[32.417637609391285,23.7206023942150033,192.177050630061103],"luv":[32.417637609391285,-23.1868997601056,-5.00346454561771115],"rgb":[0.0666666666666666657,0.333333333333333315,0.333333333333333315],"xyz":[0.0511903688682755278,0.0727171449281913684,0.0972841818151966159],"hpluv":[192.177050630061103,92.8503782686988899,32.417637609391285],"hsluv":[192.177050630061103,92.4869346485079,32.417637609391285]},"#115566":{"lch":[33.0818646063754045,29.1355194477524577,220.509575549450261],"luv":[33.0818646063754045,-22.1516601517912761,-18.9257085999416219],"rgb":[0.0666666666666666657,0.333333333333333315,0.4],"xyz":[0.0587753646417837061,0.0757511432375946869,0.137231826222340592],"hpluv":[220.509575549450261,111.756325010930979,33.0818646063754045],"hsluv":[220.509575549450261,93.2955878193037904,33.0818646063754045]},"#115577":{"lch":[33.8736729304774826,39.2775515041961185,237.359341141202208],"luv":[33.8736729304774826,-21.1850732372535866,-33.0744421585153958],"rgb":[0.0666666666666666657,0.333333333333333315,0.466666666666666674],"xyz":[0.0680893776619856117,0.0794767484456755,0.186285628128738501],"hpluv":[237.359341141202208,147.13684637222039,33.8736729304774826],"hsluv":[237.359341141202208,94.078253732623736,33.8736729304774826]},"#115588":{"lch":[34.7888943497230514,51.2161985161337938,246.60972521059881],"luv":[34.7888943497230514,-20.3324266151093482,-47.0073549392562455],"rgb":[0.0666666666666666657,0.333333333333333315,0.533333333333333326],"xyz":[0.0792297947639294398,0.0839329152864531,0.244958491532310668],"hpluv":[246.60972521059881,186.812546427038342,34.7888943497230514],"hsluv":[246.60972521059881,94.8038015691112719,34.7888943497230514]},"#115599":{"lch":[35.8212274371681403,63.5782184467896,252.028930114170464],"luv":[35.8212274371681403,-19.6162163870228632,-60.476391389741444],"rgb":[0.0666666666666666657,0.333333333333333315,0.6],"xyz":[0.0922867588730021671,0.0891557009300822517,0.313725169173428575],"hpluv":[252.028930114170464,225.22013661091745,35.8212274371681403],"hsluv":[252.028930114170464,95.4562831747131355,35.8212274371681403]},"#1155aa":{"lch":[36.9628521043173777,75.808874965898184,255.452401876993463],"luv":[36.9628521043173777,-19.0419916394553752,-73.3783897206670588],"rgb":[0.0666666666666666657,0.333333333333333315,0.66666666666666663],"xyz":[0.107344451838254695,0.0951787781161833601,0.393029018790427176],"hpluv":[255.452401876993463,260.251896817562397,36.9628521043173777],"hsluv":[255.452401876993463,96.0310300088164155,36.9628521043173777]},"#1155bb":{"lch":[38.2050019251475845,87.6984258792502089,257.752076786877694],"luv":[38.2050019251475845,-18.6045414354547205,-85.7023041678273216],"rgb":[0.0666666666666666657,0.333333333333333315,0.733333333333333282],"xyz":[0.124482043945591342,0.102033814959118119,0.483287003889068922],"hpluv":[257.752076786877694,291.280156181798475,38.2050019251475845],"hsluv":[257.752076786877694,96.5305142623785,38.2050019251475845]},"#1155cc":{"lch":[39.5384610498345523,99.1886562531622,259.372402836059223],"luv":[39.5384610498345523,-18.292845239891637,-97.4872368176334447],"rgb":[0.0666666666666666657,0.333333333333333315,0.8],"xyz":[0.143774419389313096,0.10975076513660692,0.584893514559339],"hpluv":[259.372402836059223,318.332933912315752,39.5384610498345523],"hsluv":[259.372402836059223,96.9610449958707,39.5384610498345523]},"#1155dd":{"lch":[40.9539668975822053,110.288480556245688,260.557616930578945],"luv":[40.9539668975822053,-18.0934548393737415,-108.7941902648341],"rgb":[0.0666666666666666657,0.333333333333333315,0.866666666666666696],"xyz":[0.16529274493994664,0.118358095356860454,0.698223362459345],"hpluv":[260.557616930578945,341.722445031840948,40.9539668975822053],"hsluv":[260.557616930578945,97.330522563257,40.9539668975822053]},"#1155ee":{"lch":[42.4425141949683038,121.034132372772049,261.450904748640312],"luv":[42.4425141949683038,-17.992549051743687,-119.689303523123172],"rgb":[0.0666666666666666657,0.333333333333333315,0.933333333333333348],"xyz":[0.189104925206121377,0.127882967463330471,0.823634178527868244],"hpluv":[261.450904748640312,361.864588035447412,42.4425141949683038],"hsluv":[261.450904748640312,97.6470858685672596,42.4425141949683038]},"#1155ff":{"lch":[43.9955669218353762,131.469960671873054,262.140820458865903],"luv":[43.9955669218353762,-17.9770474653633769,-130.235081001594637],"rgb":[0.0666666666666666657,0.333333333333333315,1],"xyz":[0.21527597361595277,0.138351386827263168,0.961468366819650089],"hpluv":[262.140820458865903,379.190057269809415,43.9955669218353762],"hsluv":[262.140820458865903,99.9999999999993321,43.9955669218353762]},"#66ee00":{"lch":[83.9510288300903511,118.631054776009961,121.878900606421581],"luv":[83.9510288300903511,-62.6521043104729145,100.737485489455693],"rgb":[0.4,0.933333333333333348,0],"xyz":[0.360525640276900428,0.639716921715420939,0.104479109088397595],"hpluv":[121.878900606421581,316.932305812441825,83.9510288300903511],"hsluv":[121.878900606421581,100.000000000002245,83.9510288300903511]},"#66ee11":{"lch":[83.9720997528394406,117.779830021225337,122.096631719604488],"luv":[83.9720997528394406,-62.5821687959979371,99.7775551344988401],"rgb":[0.4,0.933333333333333348,0.0666666666666666657],"xyz":[0.361537305776537532,0.640121587915275847,0.109807214053153232],"hpluv":[122.096631719604488,315.12898496103287,83.9720997528394406],"hsluv":[122.096631719604488,98.9534187198870825,83.9720997528394406]},"#66ee22":{"lch":[84.0111361497279461,116.215639794016113,122.506307539641156],"luv":[84.0111361497279461,-62.4534076072217061,98.0084017366813498],"rgb":[0.4,0.933333333333333348,0.133333333333333331],"xyz":[0.363412663915014589,0.640871731170666648,0.119684100249132425],"hpluv":[122.506307539641156,311.807725961995743,84.0111361497279461],"hsluv":[122.506307539641156,97.0256918708191,84.0111361497279461]},"#66ee33":{"lch":[84.0753427139745213,113.679067087327056,123.198426402241765],"luv":[84.0753427139745213,-62.2438639038254564,95.1242960560921],"rgb":[0.4,0.933333333333333348,0.2],"xyz":[0.366500414647472295,0.642106831463649774,0.135946254106743575],"hpluv":[123.198426402241765,306.400922934277446,84.0753427139745213],"hsluv":[123.198426402241765,93.8862320250161133,84.0753427139745213]},"#66ee44":{"lch":[84.1678970009459704,110.10189342016568,124.237870325737177],"luv":[84.1678970009459704,-61.946619900698991,91.0222127702015626],"rgb":[0.4,0.933333333333333348,0.266666666666666663],"xyz":[0.37095840989169121,0.64389002956133734,0.159425029059630213],"hpluv":[124.237870325737177,298.731636810455427,84.1678970009459704],"hsluv":[124.237870325737177,89.4277949312148337,84.1678970009459704]},"#66ee55":{"lch":[84.2914184237995414,105.474359140243067,125.706632503417083],"luv":[84.2914184237995414,-61.5585501093914829,85.6468641835444657],"rgb":[0.4,0.933333333333333348,0.333333333333333315],"xyz":[0.376920823931053195,0.64627499517708209,0.190827076333604129],"hpluv":[125.706632503417083,288.732343582820249,84.2914184237995414],"hsluv":[125.706632503417083,83.5978964235977315,84.2914184237995414]},"#66ee66":{"lch":[84.4481159447294374,99.8471979874678652,127.715012949239849],"luv":[84.4481159447294374,-61.0799597466417339,78.9854509596370633],"rgb":[0.4,0.933333333333333348,0.4],"xyz":[0.38450581970456138,0.649308993486485408,0.230774720740748063],"hpluv":[127.715012949239849,276.453302697114395,84.4481159447294374],"hsluv":[127.715012949239849,76.3932656313124454,84.4481159447294374]},"#66ee77":{"lch":[84.6398667383604391,93.3381964812165,130.416076861551431],"luv":[84.6398667383604391,-60.5142850922984863,71.0636350191446127],"rgb":[0.4,0.933333333333333348,0.466666666666666674],"xyz":[0.393819832724763286,0.65303459869456626,0.279828522647145972],"hpluv":[130.416076861551431,262.087365127001192,84.6398667383604391],"hsluv":[130.416076861551431,76.8478121958162461,84.6398667383604391]},"#66ee88":{"lch":[84.8682629083727704,86.1443361377895513,134.024834696689027],"luv":[84.8682629083727704,-59.8677379892917187,61.9411058721588503],"rgb":[0.4,0.933333333333333348,0.533333333333333326],"xyz":[0.404960249826707086,0.657490765535343802,0.338501386050718167],"hpluv":[134.024834696689027,246.018013362770375,84.8682629083727704],"hsluv":[134.024834696689027,77.3690194462974858,84.8682629083727704]},"#66ee99":{"lch":[85.1346415661787432,78.5628931277068,138.840952739605655],"luv":[85.1346415661787432,-59.1488647733143296,51.7062856200641718],"rgb":[0.4,0.933333333333333348,0.6],"xyz":[0.418017213935779841,0.662713551178973,0.407268063691836046],"hpluv":[138.840952739605655,228.905884969324347,85.1346415661787432],"hsluv":[138.840952739605655,77.9507906120806,85.1346415661787432]},"#66eeaa":{"lch":[85.4401056772853451,71.025817565124143,145.263991147699045],"luv":[85.4401056772853451,-58.3680297483556387,40.4702342974360576],"rgb":[0.4,0.933333333333333348,0.66666666666666663],"xyz":[0.433074906901032342,0.668736628365074082,0.486571913308834647],"hpluv":[145.263991147699045,211.83630636980061,85.4401056772853451],"hsluv":[145.263991147699045,78.5856392083502868,85.4401056772853451]},"#66eebb":{"lch":[85.7855396574798448,64.1465768711300228,153.7611846199909],"luv":[85.7855396574798448,-57.5368534805651,28.3600743271201026],"rgb":[0.4,0.933333333333333348,0.733333333333333282],"xyz":[0.450212499008369,0.67559166520800884,0.576829898407476449],"hpluv":[153.7611846199909,196.542528595596508,85.7855396574798448],"hsluv":[153.7611846199909,79.2651091664321683,85.7855396574798448]},"#66eecc":{"lch":[86.1716220205593,58.7524914026155827,164.690737532459508],"luv":[86.1716220205593,-56.6676444389915517,15.5123602250092176],"rgb":[0.4,0.933333333333333348,0.8],"xyz":[0.46950487445209077,0.683308615385497697,0.678436409077746605],"hpluv":[164.690737532459508,185.645341664818176,86.1716220205593],"hsluv":[164.690737532459508,79.9801993176568118,86.1716220205593]},"#66eedd":{"lch":[86.5988364705929285,55.8111450312658164,177.877712634427581],"luv":[86.5988364705929285,-55.7728621696499403,2.06682246606168096],"rgb":[0.4,0.933333333333333348,0.866666666666666696],"xyz":[0.491023200002724258,0.691915945605751204,0.791766256977752603],"hpluv":[177.877712634427581,182.628088950326941,86.5988364705929285],"hsluv":[177.877712634427581,80.7217641095277543,86.5988364705929285]},"#66eeee":{"lch":[87.0674822997282263,56.1274864183573783,192.177050630061075],"luv":[87.0674822997282263,-54.8646438121880493,-11.8391549953798521],"rgb":[0.4,0.933333333333333348,0.933333333333333348],"xyz":[0.514835380268899,0.701440817712221221,0.917177073046275826],"hpluv":[192.177050630061075,191.066910285097691,87.0674822997282263],"hsluv":[192.177050630061075,81.4808670778618165,87.0674822997282263]},"#66eeff":{"lch":[87.5776846199412518,59.9248574237073512,205.793536431897621],"luv":[87.5776846199412518,-53.9544158989052178,-26.0750751151289606],"rgb":[0.4,0.933333333333333348,1],"xyz":[0.541006428678730389,0.711909237076154,1.05501126133805756],"hpluv":[205.793536431897621,213.276590696447101,87.5776846199412518],"hsluv":[205.793536431897621,99.9999999999933351,87.5776846199412518]},"#116600":{"lch":[37.1543973335168118,56.0416844920186463,126.180156646926719],"luv":[37.1543973335168118,-33.0828721903909511,45.2348755755691201],"rgb":[0.0666666666666666657,0.4,0],"xyz":[0.0498232429199692434,0.0962151868782235159,0.0159455671386054508],"hpluv":[126.180156646926719,191.399273993181851,37.1543973335168118],"hsluv":[126.180156646926719,100.000000000002359,37.1543973335168118]},"#116611":{"lch":[37.2288128297302237,53.6508389550451668,127.715012949240304],"luv":[37.2288128297302237,-32.820060550512963,42.4412081124095124],"rgb":[0.0666666666666666657,0.4,0.0666666666666666657],"xyz":[0.0508349084196063616,0.0966198530780783688,0.021273672103361084],"hpluv":[127.715012949240304,182.867554307566394,37.2288128297302237],"hsluv":[127.715012949240304,93.1121786917857719,37.2288128297302237]},"#116622":{"lch":[37.366211587350719,49.4912288674311,130.823584918521846],"luv":[37.366211587350719,-32.3540076461773722,37.4513006989015125],"rgb":[0.0666666666666666657,0.4,0.133333333333333331],"xyz":[0.0527102665580833837,0.0973699963334691831,0.0311505582993402766],"hpluv":[130.823584918521846,168.069340269208539,37.366211587350719],"hsluv":[130.823584918521846,93.2954788878505639,37.366211587350719]},"#116633":{"lch":[37.5909073580641291,43.4152735453156,136.786924005406348],"luv":[37.5909073580641291,-31.6415889136076061,29.7270218494359924],"rgb":[0.0666666666666666657,0.4,0.2],"xyz":[0.0557980172905411242,0.0986050966264523,0.0474127121569514198],"hpluv":[136.786924005406348,146.554466726503705,37.5909073580641291],"hsluv":[136.786924005406348,93.5769168130898095,37.5909073580641291]},"#116644":{"lch":[37.9120295698984506,36.3990668435195417,147.559563985674146],"luv":[37.9120295698984506,-30.7189764474867033,19.525279846848818],"rgb":[0.0666666666666666657,0.4,0.266666666666666663],"xyz":[0.0602560125347600048,0.100388294724139876,0.0708914871098380583],"hpluv":[147.559563985674146,121.829522477327146,37.9120295698984506],"hsluv":[147.559563985674146,93.9439470857740559,37.9120295698984506]},"#116655":{"lch":[38.335629212958338,30.5483862618043851,166.063087397862887],"luv":[38.335629212958338,-29.6490880228798659,7.35768187759708869],"rgb":[0.0666666666666666657,0.4,0.333333333333333315],"xyz":[0.066218426574122,0.102773260339884709,0.102293534383811974],"hpluv":[166.063087397862887,101.117192726530064,38.335629212958338],"hsluv":[166.063087397862887,94.3739252192313529,38.335629212958338]},"#116666":{"lch":[38.8651381017916293,29.1618890828208741,192.177050630061217],"luv":[38.8651381017916293,-28.5057600031098204,-6.15121301239451324],"rgb":[0.0666666666666666657,0.4,0.4],"xyz":[0.0738034223476301682,0.105807258649288027,0.142241178790955936],"hpluv":[192.177050630061217,95.2126746116157392,38.8651381017916293],"hsluv":[192.177050630061217,94.8399842705083245,38.8651381017916293]},"#116677":{"lch":[39.5016809883423079,34.1234106492309124,216.700227589977857],"luv":[39.5016809883423079,-27.3592385518708738,-20.3931169809293316],"rgb":[0.0666666666666666657,0.4,0.466666666666666674],"xyz":[0.0831174353678320876,0.109532863857368837,0.191294980697353845],"hpluv":[216.700227589977857,109.616563248578402,39.5016809883423079],"hsluv":[216.700227589977857,95.3164106037614687,39.5016809883423079]},"#116688":{"lch":[40.2443638992953723,43.6497103352843823,233.004065811630028],"luv":[40.2443638992953723,-26.2665776267255495,-34.862072688430807],"rgb":[0.0666666666666666657,0.4,0.533333333333333326],"xyz":[0.0942578524697759157,0.113989030698146435,0.249967844100926],"hpluv":[233.004065811630028,137.630797119362086,40.2443638992953723],"hsluv":[233.004065811630028,95.7822055324918864,40.2443638992953723]},"#116699":{"lch":[41.090575936542443,55.3002439505846866,242.81143298809],"luv":[41.090575936542443,-25.2678118474637223,-49.189985418125],"rgb":[0.0666666666666666657,0.4,0.6],"xyz":[0.107314816578848629,0.119211816341775592,0.318734521742043919],"hpluv":[242.81143298809,170.774941475023041,41.090575936542443],"hsluv":[242.81143298809,96.2225162944548202,41.090575936542443]},"#1166aa":{"lch":[42.0363074660961757,67.6887016451143,248.882871092507173],"luv":[42.0363074660961757,-24.3865946332867658,-63.1431257746482615],"rgb":[0.0666666666666666657,0.4,0.66666666666666663],"xyz":[0.122372509544101171,0.125234893527876701,0.39803837135904252],"hpluv":[248.882871092507173,204.329442679703192,42.0363074660961757],"hsluv":[248.882871092507173,96.6284204735347885,42.0363074660961757]},"#1166bb":{"lch":[43.0764730814379746,80.16050208662584,252.853006907061769],"luv":[43.0764730814379746,-23.6332520973097289,-76.5974901030376429],"rgb":[0.0666666666666666657,0.4,0.733333333333333282],"xyz":[0.139510101651437818,0.132089930370811459,0.488296356457684266],"hpluv":[252.853006907061769,236.134594524550181,43.0764730814379746],"hsluv":[252.853006907061769,96.9958197331145,43.0764730814379746]},"#1166cc":{"lch":[44.2052232400861271,92.4179309088515737,255.583916344807051],"luv":[44.2052232400861271,-23.008531750755072,-89.5079964033815259],"rgb":[0.0666666666666666657,0.4,0.8],"xyz":[0.158802477095159544,0.139806880548300261,0.589902867127954367],"hpluv":[255.583916344807051,265.290671800528912,44.2052232400861271],"hsluv":[255.583916344807051,97.3240770235992159,44.2052232400861271]},"#1166dd":{"lch":[45.4162296513266455,104.336857924373376,257.542523527564185],"luv":[45.4162296513266455,-22.507022318245486,-101.880390006599782],"rgb":[0.0666666666666666657,0.4,0.866666666666666696],"xyz":[0.180320802645793088,0.148414210768553795,0.703232715027960364],"hpluv":[257.542523527564185,291.518421142394175,45.4162296513266455],"hsluv":[257.542523527564185,97.6147741074162,45.4162296513266455]},"#1166ee":{"lch":[46.7029335650228674,115.880201424536907,258.995545526323895],"luv":[46.7029335650228674,-22.1198283610194721,-113.74943637429719],"rgb":[0.0666666666666666657,0.4,0.933333333333333348],"xyz":[0.204132982911967853,0.157939082875023812,0.828643531096483588],"hpluv":[258.995545526323895,314.850514307077333,46.7029335650228674],"hsluv":[258.995545526323895,97.870742288996567,46.7029335650228674]},"#1166ff":{"lch":[48.0587511138394348,127.054293237547355,260.103604495506659],"luv":[48.0587511138394348,-21.8364562757409573,-125.163743182322264],"rgb":[0.0666666666666666657,0.4,1],"xyz":[0.230304031321799219,0.168407502238956508,0.966477719388265433],"hpluv":[260.103604495506659,335.471932494038299,48.0587511138394348],"hsluv":[260.103604495506659,99.9999999999992184,48.0587511138394348]},"#66ff00":{"lch":[89.0839511722278417,127.467952451328657,122.755484474710229],"luv":[89.0839511722278417,-68.9671698198214074,107.198919720201],"rgb":[0.4,1,0],"xyz":[0.41237801270657426,0.74342166657477,0.121763233231621706],"hpluv":[122.755484474710229,522.717702913530729,89.0839511722278417],"hsluv":[122.755484474710229,100.000000000002402,89.0839511722278417]},"#66ff11":{"lch":[89.1030144718140917,126.693355761899767,122.944319876693868],"luv":[89.1030144718140917,-68.8988566751164342,106.320994836735167],"rgb":[0.4,1,0.0666666666666666657],"xyz":[0.413389678206211364,0.743826332774625,0.127091338196377329],"hpluv":[122.944319876693868,520.53129302948,89.1030144718140917],"hsluv":[122.944319876693868,99.9999999999913456,89.1030144718140917]},"#66ff22":{"lch":[89.1383344673707825,125.268361506965746,123.29878008449495],"luv":[89.1383344673707825,-68.7729595958538482,104.70168300016438],"rgb":[0.4,1,0.133333333333333331],"xyz":[0.415265036344688421,0.744576476030015755,0.136968224392356536],"hpluv":[123.29878008449495,516.49933125362179,89.1383344673707825],"hsluv":[123.29878008449495,99.9999999999914877,89.1383344673707825]},"#66ff33":{"lch":[89.1964366933732,122.952924407393425,123.895139690212403],"luv":[89.1964366933732,-68.5677350303770368,102.0582546055644],"rgb":[0.4,1,0.2],"xyz":[0.418352787077146127,0.745811576322998881,0.153230378249967686],"hpluv":[123.895139690212403,509.920932540516333,89.1964366933732],"hsluv":[123.895139690212403,99.9999999999913456,89.1964366933732]},"#66ff44":{"lch":[89.2802097655713,119.677402261160566,124.785058224819977],"luv":[89.2802097655713,-68.2758869475835439,98.2908127624369143],"rgb":[0.4,1,0.266666666666666663],"xyz":[0.422810782321365042,0.747594774420686448,0.176709153202854324],"hpluv":[124.785058224819977,500.557479589511445,89.2802097655713],"hsluv":[124.785058224819977,99.9999999999914451,89.2802097655713]},"#66ff55":{"lch":[89.392045372062455,115.420778437487911,126.031255758612545],"luv":[89.392045372062455,-67.8935601171189802,93.3403481337991536],"rgb":[0.4,1,0.333333333333333315],"xyz":[0.428773196360727,0.749979740036431197,0.20811120047682824],"hpluv":[126.031255758612545,488.288652672415253,89.392045372062455],"hsluv":[126.031255758612545,99.9999999999912177,89.392045372062455]},"#66ff66":{"lch":[89.5339732348528088,110.211236984550467,127.715012949239977],"luv":[89.5339732348528088,-67.4199983006921428,87.1840615410833664],"rgb":[0.4,1,0.4],"xyz":[0.436358192134235212,0.753013738345834516,0.248058844883972174],"hpluv":[127.715012949239977,473.1190638884799,89.5339732348528088],"hsluv":[127.715012949239977,99.9999999999912177,89.5339732348528088]},"#66ff77":{"lch":[89.7077333531255,104.130085615398272,129.945267186452298],"luv":[89.7077333531255,-66.8572982376138754,79.8321764869086223],"rgb":[0.4,1,0.466666666666666674],"xyz":[0.445672205154437118,0.756739343553915367,0.297112646790370083],"hpluv":[129.945267186452298,455.203211628206077,89.7077333531255],"hsluv":[129.945267186452298,99.9999999999911466,89.7077333531255]},"#66ff88":{"lch":[89.9148190538961529,97.3190386909276413,132.870301628739924],"luv":[89.9148190538961529,-66.2101394375234378,71.3246992800528687],"rgb":[0.4,1,0.533333333333333326],"xyz":[0.456812622256380918,0.761195510394692909,0.355785510193942278],"hpluv":[132.870301628739924,434.894743355908361,89.9148190538961529],"hsluv":[132.870301628739924,99.999999999990834,89.9148190538961529]},"#66ff99":{"lch":[90.1565046807361,89.9924560427222247,136.692010716646195],"luv":[90.1565046807361,-65.4854512845448795,61.7276098246221707],"rgb":[0.4,1,0.6],"xyz":[0.469869586365453618,0.766418296038322122,0.424552187835060157],"hpluv":[136.692010716646195,412.835114866532763,90.1565046807361],"hsluv":[136.692010716646195,99.9999999999909903,90.1565046807361]},"#66ffaa":{"lch":[90.4338646074596113,82.4570841698328678,141.679424663280656],"luv":[90.4338646074596113,-64.6920148236146,51.1284064669742264],"rgb":[0.4,1,0.66666666666666663],"xyz":[0.484927279330706174,0.772441373224423189,0.503856037452058758],"hpluv":[141.679424663280656,390.10709074414774,90.4338646074596113],"hsluv":[141.679424663280656,99.9999999999905924,90.4338646074596113]},"#66ffbb":{"lch":[90.747787175062669,75.1410408914244101,148.168460326052468],"luv":[90.747787175062669,-63.84001546278364,39.631155067172358],"rgb":[0.4,1,0.733333333333333282],"xyz":[0.502064871438042792,0.779296410067358,0.59411402255070056],"hpluv":[148.168460326052468,368.486167720556807,90.747787175062669],"hsluv":[148.168460326052468,99.9999999999904077,90.747787175062669]},"#66ffcc":{"lch":[91.0989856399247486,68.6265957122477,156.512275503644645],"luv":[91.0989856399247486,-62.9405723747737085,27.3513068826366492],"rgb":[0.4,1,0.8],"xyz":[0.521357246881764547,0.787013360244846805,0.695720533220970716],"hpluv":[156.512275503644645,350.804850059399143,91.0989856399247486],"hsluv":[156.512275503644645,99.9999999999903508,91.0989856399247486]},"#66ffdd":{"lch":[91.4880074096490716,63.6578272942329875,166.916209854529029],"luv":[91.4880074096490716,-62.0052733715472826,14.410588119229697],"rgb":[0.4,1,0.866666666666666696],"xyz":[0.542875572432398146,0.795620690465100311,0.809050381120976714],"hpluv":[166.916209854529029,341.336295176875581,91.4880074096490716],"hsluv":[166.916209854529029,99.9999999999898819,91.4880074096490716]},"#66ffee":{"lch":[91.9152423718395113,61.0528599966611765,179.125088100836763],"luv":[91.9152423718395113,-61.045742111776633,0.93224663816584552],"rgb":[0.4,1,0.933333333333333348],"xyz":[0.566687752698572855,0.805145562571570328,0.934461197189499937],"hpluv":[179.125088100836763,345.840646438583576,91.9152423718395113],"hsluv":[179.125088100836763,99.9999999999894,91.9152423718395113]},"#66ffff":{"lch":[92.3809308294128,61.4559907165056,192.17705063006116],"luv":[92.3809308294128,-60.0732592166006256,-12.9631139022354667],"rgb":[0.4,1,1],"xyz":[0.592858801108404276,0.815613981935503,1.07229538548128178],"hpluv":[192.17705063006116,370.76546272919029,92.3809308294128],"hsluv":[192.17705063006116,99.9999999999889866,92.3809308294128]},"#117700":{"lch":[43.2300348418233042,65.6725964696673685,126.613348243544976],"luv":[43.2300348418233042,-39.1679175007181684,52.7139845365981],"rgb":[0.0666666666666666657,0.466666666666666674,0],"xyz":[0.0682769809733868721,0.133122662985059287,0.0220968131564111547],"hpluv":[126.613348243544976,192.769325646383436,43.2300348418233042],"hsluv":[126.613348243544976,100.000000000002359,43.2300348418233042]},"#117711":{"lch":[43.289989941732955,63.6505577690815443,127.715012949240403],"luv":[43.289989941732955,-38.9372319378938414,50.351618378457772],"rgb":[0.0666666666666666657,0.466666666666666674,0.0666666666666666657],"xyz":[0.0692886464730239904,0.13352732918491414,0.0274249181211667845],"hpluv":[127.715012949240403,186.57525992916959,43.289989941732955],"hsluv":[127.715012949240403,95.0000616991484321,43.289989941732955]},"#117722":{"lch":[43.400811094951429,60.069144786817489,129.889765673233825],"luv":[43.400811094951429,-38.5230987158151308,46.089836414888758],"rgb":[0.0666666666666666657,0.466666666666666674,0.133333333333333331],"xyz":[0.0711640046115010194,0.134277472440304968,0.037301804317145984],"hpluv":[129.889765673233825,175.627665872500842,43.400811094951429],"hsluv":[129.889765673233825,95.0973605906006725,43.400811094951429]},"#117733":{"lch":[43.5823807888255317,54.6433249694405205,133.881596062605809],"luv":[43.5823807888255317,-37.8771324094584756,39.3854770715327476],"rgb":[0.0666666666666666657,0.466666666666666674,0.2],"xyz":[0.074251755343958753,0.135512572733288067,0.0535639581747571272],"hpluv":[133.881596062605809,159.098283206795713,43.5823807888255317],"hsluv":[133.881596062605809,95.249567515942033,43.5823807888255317]},"#117744":{"lch":[43.8425891980029,47.8554364611196803,140.669149905405504],"luv":[43.8425891980029,-37.0161352468332083,30.3306533110056051],"rgb":[0.0666666666666666657,0.466666666666666674,0.266666666666666663],"xyz":[0.0787097505881776266,0.137295770830975661,0.0770427331276437588],"hpluv":[140.669149905405504,138.507858249946878,43.8425891980029],"hsluv":[140.669149905405504,95.4533619015585373,43.8425891980029]},"#117755":{"lch":[44.18711059062651,40.7988283335817243,151.872601466806259],"luv":[44.18711059062651,-35.9805491223838843,19.2339407882209947],"rgb":[0.0666666666666666657,0.466666666666666674,0.333333333333333315],"xyz":[0.0846721646275396256,0.139680736446720494,0.108444780401617674],"hpluv":[151.872601466806259,117.163251003272293,44.18711059062651],"hsluv":[151.872601466806259,95.7000805167539426,44.18711059062651]},"#117766":{"lch":[44.6197667240920879,35.4343089397309186,169.362936023125116],"luv":[44.6197667240920879,-34.8254110013137463,6.54071850990925796],"rgb":[0.0666666666666666657,0.466666666666666674,0.4],"xyz":[0.0922571604010478,0.142714734756123784,0.148392424808761636],"hpluv":[169.362936023125116,100.771099800457392,44.6197667240920879],"hsluv":[169.362936023125116,95.9777414193434453,44.6197667240920879]},"#117777":{"lch":[45.1427402486772138,34.384087641882445,192.177050630061217],"luv":[45.1427402486772138,-33.6104614986274584,-7.25274850066749],"rgb":[0.0666666666666666657,0.466666666666666674,0.466666666666666674],"xyz":[0.101571173421249716,0.146440339964204608,0.197446226715159545],"hpluv":[192.177050630061217,96.651570122263351,45.1427402486772138],"hsluv":[192.177050630061217,96.2732475219964385,45.1427402486772138]},"#117788":{"lch":[45.7567431438856502,38.9735922704815891,213.78628123605418],"luv":[45.7567431438856502,-32.3916401681270685,-21.6730833451154119],"rgb":[0.0666666666666666657,0.466666666666666674,0.533333333333333326],"xyz":[0.112711590523193544,0.150896506804982206,0.256119090118731685],"hpluv":[213.78628123605418,108.082320192335175,45.7567431438856502],"hsluv":[213.78628123605418,96.5742797371803192,45.7567431438856502]},"#117799":{"lch":[46.4611794427891169,47.8902134896154763,229.321579893426758],"luv":[46.4611794427891169,-31.2154548044213769,-36.3189747850083791],"rgb":[0.0666666666666666657,0.466666666666666674,0.6],"xyz":[0.125768554632266272,0.156119292448611363,0.32488576775984962],"hpluv":[229.321579893426758,130.796423620493698,46.4611794427891169],"hsluv":[229.321579893426758,96.8705519561321,46.4611794427891169]},"#1177aa":{"lch":[47.254315604307827,59.1280670765604199,239.379878554404911],"luv":[47.254315604307827,-30.1165063567495856,-50.8834389666627231],"rgb":[0.0666666666666666657,0.466666666666666674,0.66666666666666663],"xyz":[0.1408262475975188,0.162142369634712458,0.40418961737684822],"hpluv":[239.379878554404911,158.77844008322549,47.254315604307827],"hsluv":[239.379878554404911,97.1543662497403488,47.254315604307827]},"#1177bb":{"lch":[48.1334597651774914,71.3648635001192133,245.920143546346225],"luv":[48.1334597651774914,-29.1175429122131746,-65.1545273725937761],"rgb":[0.0666666666666666657,0.466666666666666674,0.733333333333333282],"xyz":[0.157963839704855447,0.168997406477647216,0.494447602475489967],"hpluv":[245.920143546346225,188.138070935962588,48.1334597651774914],"hsluv":[245.920143546346225,97.4206074841270464,48.1334597651774914]},"#1177cc":{"lch":[49.0951452720171488,83.8954152066927463,250.336037436893122],"luv":[49.0951452720171488,-28.2310616920000612,-79.0028344329863756],"rgb":[0.0666666666666666657,0.466666666666666674,0.8],"xyz":[0.177256215148577201,0.176714356655136018,0.596054113145760178],"hpluv":[250.336037436893122,216.83980339157776,49.0951452720171488],"hsluv":[250.336037436893122,97.666394869173061,49.0951452720171488]},"#1177dd":{"lch":[50.1353116048344702,96.3594544857749,253.441700788778064],"luv":[50.1353116048344702,-27.4615589113116805,-92.3634519220491512],"rgb":[0.0666666666666666657,0.466666666666666674,0.866666666666666696],"xyz":[0.198774540699210744,0.185321686875389552,0.709383961045766176],"hpluv":[253.441700788778064,243.887723915279508,50.1353116048344702],"hsluv":[253.441700788778064,97.8905898818146341,50.1353116048344702]},"#1177ee":{"lch":[51.2494756916451593,108.579054392530807,255.706052301270915],"luv":[51.2494756916451593,-26.8078049752198453,-105.217644172385562],"rgb":[0.0666666666666666657,0.466666666666666674,0.933333333333333348],"xyz":[0.222586720965385454,0.194846558981859597,0.834794777114289399],"hpluv":[255.706052301270915,268.841280267375566,51.2494756916451593],"hsluv":[255.706052301270915,98.0932983984315,51.2494756916451593]},"#1177ff":{"lch":[52.4328877873246739,120.474912105814852,257.407785454377859],"luv":[52.4328877873246739,-26.2648114927385947,-117.577056112809359],"rgb":[0.0666666666666666657,0.466666666666666674,1],"xyz":[0.248757769375216875,0.205314978345792293,0.972628965406071133],"hpluv":[257.407785454377859,291.562836812545811,52.4328877873246739],"hsluv":[257.407785454377859,99.9999999999990905,52.4328877873246739]},"#118800":{"lch":[49.1629818744817157,75.0325981068150725,126.891404302910644],"luv":[49.1629818744817157,-45.0420871994947447,60.0091756264985],"rgb":[0.0666666666666666657,0.533333333333333326,0],"xyz":[0.0903493506983573252,0.177267402435000831,0.0294542697314011],"hpluv":[126.891404302910644,193.664979881129256,49.1629818744817157],"hsluv":[126.891404302910644,100.000000000002487,49.1629818744817157]},"#118811":{"lch":[49.2125288978643,73.2988946552939211,127.715012949240403],"luv":[49.2125288978643,-44.8394509336223663,57.9840633075946883],"rgb":[0.0666666666666666657,0.533333333333333326,0.0666666666666666657],"xyz":[0.0913610161979944435,0.177672068634855684,0.0347823746961567343],"hpluv":[127.715012949240403,188.999680167490567,49.2125288978643],"hsluv":[127.715012949240403,96.2345237189928326,49.2125288978643]},"#118822":{"lch":[49.3041772439320312,70.1927728141533,129.31476933948187],"luv":[49.3041772439320312,-44.4727599639014315,54.3065279366352556],"rgb":[0.0666666666666666657,0.533333333333333326,0.133333333333333331],"xyz":[0.0932363743364714725,0.178422211890246513,0.0446592608921359269],"hpluv":[129.31476933948187,180.6541776618526,49.3041772439320312],"hsluv":[129.31476933948187,96.2899748067816859,49.3041772439320312]},"#118833":{"lch":[49.454516912369769,65.3819990709954766,132.170105234646456],"luv":[49.454516912369769,-43.8931572746598917,48.4581938064309767],"rgb":[0.0666666666666666657,0.533333333333333326,0.2],"xyz":[0.0963241250689292,0.179657312183229612,0.060921414749747077],"hpluv":[132.170105234646456,167.761213036429979,49.454516912369769],"hsluv":[132.170105234646456,96.3778002926358,49.454516912369769]},"#118844":{"lch":[49.6703617695526,59.1036258375550787,136.829676092870073],"luv":[49.6703617695526,-43.1056388924535057,40.4368950689726887],"rgb":[0.0666666666666666657,0.533333333333333326,0.266666666666666663],"xyz":[0.10078212031314808,0.181440510280917205,0.0844001897026337156],"hpluv":[136.829676092870073,150.9927614306973,49.6703617695526],"hsluv":[136.829676092870073,96.4975069627829356,49.6703617695526]},"#118855":{"lch":[49.9568473676091145,51.9652717779864091,144.176427678513875],"luv":[49.9568473676091145,-42.1346422468413806,30.4148219408018328],"rgb":[0.0666666666666666657,0.533333333333333326,0.333333333333333315],"xyz":[0.106744534352510079,0.183825475896662038,0.115802236976607617],"hpluv":[144.176427678513875,131.995007799011802,49.9568473676091145],"hsluv":[144.176427678513875,96.6457662191899658,49.9568473676091145]},"#118866":{"lch":[50.3177367885428879,45.0776565581224133,155.49998607369966],"luv":[50.3177367885428879,-41.0189171061503615,18.6934095394821433],"rgb":[0.0666666666666666657,0.533333333333333326,0.4],"xyz":[0.11432953012601825,0.186859474206065329,0.155749881383751593],"hpluv":[155.49998607369966,113.67882025976219,50.3177367885428879],"hsluv":[155.49998607369966,96.8171590628882512,50.3177367885428879]},"#118877":{"lch":[50.7555873970602391,40.2042284802375036,171.921706717236162],"luv":[50.7555873970602391,-39.8052806191025255,5.64974535051283322],"rgb":[0.0666666666666666657,0.533333333333333326,0.466666666666666674],"xyz":[0.12364354314622017,0.190585079414146152,0.204803683290149502],"hpluv":[171.921706717236162,100.514149141729121,50.7555873970602391],"hsluv":[171.921706717236162,97.0050762990714333,50.7555873970602391]},"#118888":{"lch":[51.2718664023781088,39.4294820301430349,192.17705063006116],"luv":[51.2718664023781088,-38.5423368357954814,-8.3169901046866368],"rgb":[0.0666666666666666657,0.533333333333333326,0.533333333333333326],"xyz":[0.134783960248164,0.19504124625492375,0.263476546693721669],"hpluv":[192.17705063006116,97.5845966821491118,51.2718664023781088],"hsluv":[192.17705063006116,97.2026219422035,51.2718664023781088]},"#118899":{"lch":[51.8670503792929907,43.7110075029310678,211.486174513119295],"luv":[51.8670503792929907,-37.2752705782940623,-22.8299448145688864],"rgb":[0.0666666666666666657,0.533333333333333326,0.6],"xyz":[0.147840924357236725,0.200264031898552908,0.332243224334839549],"hpluv":[211.486174513119295,106.93960912970239,51.8670503792929907],"hsluv":[211.486174513119295,97.4033619208845,51.8670503792929907]},"#1188aa":{"lch":[52.5407237145479371,52.059033028958666,226.184651315961702],"luv":[52.5407237145479371,-36.0423686073764102,-37.5644856890150507],"rgb":[0.0666666666666666657,0.533333333333333326,0.66666666666666663],"xyz":[0.162898617322489253,0.206287109084654,0.411547073951838149],"hpluv":[226.184651315961702,125.730132415512543,52.5407237145479371],"hsluv":[226.184651315961702,97.6018250350267,52.5407237145479371]},"#1188bb":{"lch":[53.2916815113449047,62.8295543710454396,236.286042109927791],"luv":[53.2916815113449047,-34.8733609598062557,-52.2628127623381573],"rgb":[0.0666666666666666657,0.533333333333333326,0.733333333333333282],"xyz":[0.1800362094298259,0.213142145927588761,0.501805059050479896],"hpluv":[236.286042109927791,149.604233097343041,53.2916815113449047],"hsluv":[236.286042109927791,97.7937430875757201,53.2916815113449047]},"#1188cc":{"lch":[54.1180375597057548,74.8024459991104607,243.146336149822275],"luv":[54.1180375597057548,-33.7892633498457826,-66.735984369188742],"rgb":[0.0666666666666666657,0.533333333333333326,0.8],"xyz":[0.199328584873547654,0.220859096105077563,0.60341156972075],"hpluv":[243.146336149822275,175.393335022858878,54.1180375597057548],"hsluv":[243.146336149822275,97.9760759990174819,54.1180375597057548]},"#1188dd":{"lch":[55.0173353812408266,87.2581949437380331,247.918019831454984],"luv":[55.0173353812408266,-32.8032215872693484,-80.8575366823396138],"rgb":[0.0666666666666666657,0.533333333333333326,0.866666666666666696],"xyz":[0.220846910424181198,0.229466426325331097,0.716741417620756],"hpluv":[247.918019831454984,201.254684785248685,55.0173353812408266],"hsluv":[247.918019831454984,98.1468934162311513,55.0173353812408266]},"#1188ee":{"lch":[55.9866591638471363,99.7959623087877645,251.344854654704591],"luv":[55.9866591638471363,-31.921869990719685,-94.5527805483930734],"rgb":[0.0666666666666666657,0.533333333333333326,0.933333333333333348],"xyz":[0.244659090690355907,0.238991298431801141,0.842152233689279273],"hpluv":[251.344854654704591,226.187053837960264,55.9866591638471363],"hsluv":[251.344854654704591,98.3051827042817,55.9866591638471363]},"#1188ff":{"lch":[57.0227411270994082,112.196885547184024,253.882464988485651],"luv":[57.0227411270994082,-31.1468293758358783,-107.786901552649141],"rgb":[0.0666666666666666657,0.533333333333333326,1],"xyz":[0.270830139100187328,0.249459717795733837,0.979986421981061118],"hpluv":[253.882464988485651,249.673263359937977,57.0227411270994082],"hsluv":[253.882464988485651,99.9999999999988916,57.0227411270994082]},"#119900":{"lch":[54.9698669410824721,84.160615619067471,127.079428544988929],"luv":[54.9698669410824721,-50.7422517332937772,67.1433772639973],"rgb":[0.0666666666666666657,0.6,0],"xyz":[0.116218951150824812,0.229006603339936526,0.0380774698822233526],"hpluv":[127.079428544988929,194.277964405092661,54.9698669410824721],"hsluv":[127.079428544988929,100.000000000002373,54.9698669410824721]},"#119911":{"lch":[55.0116447857556494,82.6558224500047,127.715012949240403],"luv":[55.0116447857556494,-50.563404981135136,65.3859852078442],"rgb":[0.0666666666666666657,0.6,0.0666666666666666657],"xyz":[0.11723061665046193,0.229411269539791379,0.0434055748469789823],"hpluv":[127.715012949240403,190.659367551848248,55.0116447857556494],"hsluv":[127.715012949240403,97.0796004133795094,55.0116447857556494]},"#119922":{"lch":[55.0889600096002852,79.9388272851777657,128.936266554168185],"luv":[55.0889600096002852,-50.237998627918941,62.1800579091938204],"rgb":[0.0666666666666666657,0.6,0.133333333333333331],"xyz":[0.119105974788938959,0.230161412795182208,0.0532824610429581819],"hpluv":[128.936266554168185,184.133380166819137,55.0889600096002852],"hsluv":[128.936266554168185,97.113065541928691,55.0889600096002852]},"#119933":{"lch":[55.215893256771821,75.6695179958245916,131.075562701176153],"luv":[55.215893256771821,-49.7189430335536,57.0429895547794175],"rgb":[0.0666666666666666657,0.6,0.2],"xyz":[0.122193725521396693,0.231396513088165307,0.0695446149005693182],"hpluv":[131.075562701176153,173.898642472918851,55.215893256771821],"hsluv":[131.075562701176153,97.1665253707361,55.215893256771821]},"#119944":{"lch":[55.398361036949,69.9528706873860671,134.469703140623466],"luv":[55.398361036949,-49.0042253731102591,49.9198358669935303],"rgb":[0.0666666666666666657,0.6,0.266666666666666663],"xyz":[0.126651720765615566,0.2331797111858529,0.0930233898534559567],"hpluv":[134.469703140623466,160.231519707698453,55.398361036949],"hsluv":[134.469703140623466,97.2403070889690184,55.398361036949]},"#119955":{"lch":[55.6409569880907497,63.1400511875114887,139.633471194580181],"luv":[55.6409569880907497,-48.1074656204671172,40.8942271664002206],"rgb":[0.0666666666666666657,0.6,0.333333333333333315],"xyz":[0.132614134804977579,0.235564676801597733,0.124425437127429872],"hpluv":[139.633471194580181,143.995747016857166,55.6409569880907497],"hsluv":[139.633471194580181,97.3331834328701575,55.6409569880907497]},"#119966":{"lch":[55.9472168173363,55.8918514512489466,147.340496807064056],"luv":[55.9472168173363,-47.0549257965888,30.1617807320125095],"rgb":[0.0666666666666666657,0.6,0.4],"xyz":[0.140199130578485737,0.238598675111001024,0.164373081534573834],"hpluv":[147.340496807064056,126.76791164907155,55.9472168173363],"hsluv":[147.340496807064056,97.4426708460479,55.9472168173363]},"#119977":{"lch":[56.319758368673476,49.2851425936320169,158.582299284916047],"luv":[56.319758368673476,-45.8816608646539308,17.9971796894826],"rgb":[0.0666666666666666657,0.6,0.466666666666666674],"xyz":[0.14951314359868767,0.242324280319081847,0.213426883440971743],"hpluv":[158.582299284916047,111.043862853999471,56.319758368673476],"hsluv":[158.582299284916047,97.5654087237770398,56.319758368673476]},"#119988":{"lch":[56.7603710001512951,44.8759084930006864,173.96527373508107],"luv":[56.7603710001512951,-44.6272223318454451,4.71785862613608131],"rgb":[0.0666666666666666657,0.6,0.533333333333333326],"xyz":[0.16065356070063147,0.246780447159859445,0.27209974684454391],"hpluv":[173.96527373508107,100.324581054675164,56.7603710001512951],"hsluv":[173.96527373508107,97.6975811674153647,56.7603710001512951]},"#119999":{"lch":[57.2700846473106822,44.3289506401906692,192.177050630061103],"luv":[57.2700846473106822,-43.3315696575835219,-9.35045110518458422],"rgb":[0.0666666666666666657,0.6,0.6],"xyz":[0.173710524809704198,0.252003232803488575,0.340866424485661845],"hpluv":[192.177050630061103,98.2197789195824384,57.2700846473106822],"hsluv":[192.177050630061103,97.8353178900151903,57.2700846473106822]},"#1199aa":{"lch":[57.849232550626823,48.3524707931101716,209.625127722111756],"luv":[57.849232550626823,-42.0317498411296384,-23.9017454821038378],"rgb":[0.0666666666666666657,0.6,0.66666666666666663],"xyz":[0.188768217774956726,0.258026309989589697,0.42017027410266039],"hpluv":[209.625127722111756,106.062142541807418,57.849232550626823],"hsluv":[209.625127722111756,97.9750198241805492,57.849232550626823]},"#1199bb":{"lch":[58.4975141278551263,56.1838887208170235,223.492153209811363],"luv":[58.4975141278551263,-40.7596491137071553,-38.6688551152037832],"rgb":[0.0666666666666666657,0.6,0.733333333333333282],"xyz":[0.2059058098822934,0.264881346832524456,0.510428259201302192],"hpluv":[223.492153209811363,121.8747424026255,58.4975141278551263],"hsluv":[223.492153209811363,98.1135798876595686,58.4975141278551263]},"#1199cc":{"lch":[59.2140605434028515,66.4726101728698211,233.498474693243395],"luv":[59.2140605434028515,-39.5408457239066138,-53.4334111079625274],"rgb":[0.0666666666666666657,0.6,0.8],"xyz":[0.225198185326015127,0.272598297010013257,0.612034769871572348],"hpluv":[233.498474693243395,142.448281943894045,59.2140605434028515],"hsluv":[233.498474693243395,98.2484961488154482,59.2140605434028515]},"#1199dd":{"lch":[59.9975033067865553,78.1149919905427907,240.560044488236258],"luv":[59.9975033067865553,-38.3943918665613637,-68.0281018909060151],"rgb":[0.0666666666666666657,0.6,0.866666666666666696],"xyz":[0.24671651087664867,0.281205627230266819,0.725364617771578346],"hpluv":[240.560044488236258,165.211601361935521,59.9975033067865553],"hsluv":[240.560044488236258,98.3778942246892285,59.9975033067865553]},"#1199ee":{"lch":[60.8460449735814706,90.4022578402124,245.60857134482],"luv":[60.8460449735814706,-37.3332566635070862,-82.3334450239084106],"rgb":[0.0666666666666666657,0.6,0.933333333333333348],"xyz":[0.270528691142823408,0.290730499336736836,0.850775433840101569],"hpluv":[245.60857134482,188.532510112076068,60.8460449735814706],"hsluv":[245.60857134482,98.5004851129029788,60.8460449735814706]},"#1199ff":{"lch":[61.7575303771721877,102.910627792409826,249.306643617498082],"luv":[61.7575303771721877,-36.3651553748586,-96.2713497733895167],"rgb":[0.0666666666666666657,0.6,1],"xyz":[0.296699739552654829,0.301198918700669505,0.988609622131883414],"hpluv":[249.306643617498082,211.450946466820028,61.7575303771721877],"hsluv":[249.306643617498082,99.9999999999986215,61.7575303771721877]},"#000000":{"lch":[0,0,0],"luv":[0,0,0],"rgb":[0,0,0],"xyz":[0,0,0],"hpluv":[0,0,0],"hsluv":[0,0,0]},"#000011":{"lch":[0.365533479526218952,1.47895322486610792,265.8743202181779],"luv":[0.365533479526218952,-0.106402530834795422,-1.47512072142377915],"rgb":[0,0,0.0666666666666666657],"xyz":[0.00101166549963712174,0.000404666199854854377,0.00532810496475563146],"hpluv":[265.8743202181779,513.41269684428039,0.365533479526218952],"hsluv":[265.8743202181779,100.000000000000867,0.365533479526218952]},"#000022":{"lch":[1.04313510374015572,4.22053823263236,265.8743202181779],"luv":[1.04313510374015572,-0.303644457367982512,-4.20960128950726],"rgb":[0,0,0.133333333333333331],"xyz":[0.0028870236381141408,0.00115480945524567245,0.0152049911607348275],"hpluv":[265.8743202181779,513.41269684428039,1.04313510374015572],"hsluv":[265.8743202181779,100.000000000000838,1.04313510374015572]},"#000033":{"lch":[2.15879662382733661,8.73451929157831,265.8743202181779],"luv":[2.15879662382733661,-0.62840050829424543,-8.71188498868810868],"rgb":[0,0,0.2],"xyz":[0.00597477437057188088,0.00238990974822878574,0.0314671450183459725],"hpluv":[265.8743202181779,513.412696844280276,2.15879662382733661],"hsluv":[265.8743202181779,100.000000000000838,2.15879662382733661]},"#000044":{"lch":[3.76955286085941,15.251660031516769,265.874320218177957],"luv":[3.76955286085941,-1.0972728545435857,-15.2121374566379668],"rgb":[0,0,0.266666666666666663],"xyz":[0.0104327696147907597,0.00417310784591636182,0.054945919971232611],"hpluv":[265.874320218177957,513.41269684428039,3.76955286085941],"hsluv":[265.874320218177957,100.000000000000981,3.76955286085941]},"#000055":{"lch":[5.92388346812606947,23.9681097618519345,265.8743202181779],"luv":[5.92388346812606947,-1.7243733575266309,-23.905999708860417],"rgb":[0,0,0.333333333333333315],"xyz":[0.0163951836541527535,0.00655807346166119385,0.0863479672452065194],"hpluv":[265.8743202181779,513.41269684428039,5.92388346812606947],"hsluv":[265.8743202181779,100.000000000000838,5.92388346812606947]},"#000066":{"lch":[8.64689012997685,34.9854302247980513,265.8743202181779],"luv":[8.64689012997685,-2.51700882467034193,-34.8947703043127149],"rgb":[0,0,0.4],"xyz":[0.0239801794276609283,0.00959207177106450627,0.126295611652350481],"hpluv":[265.8743202181779,513.412696844280276,8.64689012997685],"hsluv":[265.8743202181779,100.000000000000838,8.64689012997685]},"#000077":{"lch":[11.4958709948623863,46.5124439559768703,265.874320218177957],"luv":[11.4958709948623863,-3.34631391244679577,-46.3919133681426672],"rgb":[0,0,0.466666666666666674],"xyz":[0.0332941924478628443,0.0133176769791453226,0.17534941355874839],"hpluv":[265.874320218177957,513.412696844280276,11.4958709948623863],"hsluv":[265.874320218177957,100.000000000001,11.4958709948623863]},"#000088":{"lch":[14.2727431262745554,57.7477048111956535,265.874320218177957],"luv":[14.2727431262745554,-4.15462898927595781,-57.598059593379169],"rgb":[0,0,0.533333333333333326],"xyz":[0.0444346095498066723,0.0177738438199229153,0.234022276962320558],"hpluv":[265.874320218177957,513.41269684428039,14.2727431262745554],"hsluv":[265.874320218177957,100.000000000000952,14.2727431262745554]},"#000099":{"lch":[16.9872454361813823,68.7306165552763701,265.874320218177957],"luv":[16.9872454361813823,-4.94478893879780923,-68.5525106354185567],"rgb":[0,0,0.6],"xyz":[0.0574915736588793858,0.0229966294635520763,0.302788954603438465],"hpluv":[265.874320218177957,513.412696844280163,16.9872454361813823],"hsluv":[265.874320218177957,100.000000000000952,16.9872454361813823]},"#0000aa":{"lch":[19.6469460262523299,79.4917998262647529,265.8743202181779],"luv":[19.6469460262523299,-5.71899674710351302,-79.2858077831434116],"rgb":[0,0,0.66666666666666663],"xyz":[0.0725492666241319278,0.0290197066496531778,0.382092804220437066],"hpluv":[265.8743202181779,513.41269684428039,19.6469460262523299],"hsluv":[265.8743202181779,100.000000000000824,19.6469460262523299]},"#0000bb":{"lch":[22.2578820656552736,90.0556810893410926,265.8743202181779],"luv":[22.2578820656552736,-6.47900976369593895,-89.8223142039161644],"rgb":[0,0,0.733333333333333282],"xyz":[0.0896868587314685745,0.0358747434925879363,0.472350789319078812],"hpluv":[265.8743202181779,513.41269684428039,22.2578820656552736],"hsluv":[265.8743202181779,100.000000000000796,22.2578820656552736]},"#0000cc":{"lch":[24.8249727536546274,100.442163488877583,265.874320218177957],"luv":[24.8249727536546274,-7.22625991008361535,-100.18188146585355],"rgb":[0,0,0.8],"xyz":[0.108979234175190315,0.043591693670076738,0.573957299989349],"hpluv":[265.874320218177957,513.41269684428039,24.8249727536546274],"hsluv":[265.874320218177957,100.000000000001,24.8249727536546274]},"#0000dd":{"lch":[27.3522973211786535,110.667751646404724,265.8743202181779],"luv":[27.3522973211786535,-7.96193460279319343,-110.380971421034161],"rgb":[0,0,0.866666666666666696],"xyz":[0.130497559725823858,0.052199023890330272,0.687287147889355],"hpluv":[265.8743202181779,513.412696844280276,27.3522973211786535],"hsluv":[265.8743202181779,100.000000000000824,27.3522973211786535]},"#0000ee":{"lch":[29.8432887766479737,120.746335558760222,265.8743202181779],"luv":[29.8432887766479737,-8.68703315051946,-120.433438072283309],"rgb":[0,0,0.933333333333333348],"xyz":[0.154309739991998596,0.0617238959968003,0.812697963957878189],"hpluv":[265.8743202181779,513.41269684428039,29.8432887766479737],"hsluv":[265.8743202181779,100.000000000000838,29.8432887766479737]},"#0000ff":{"lch":[32.3008729039800215,130.68975298582734,265.8743202181779],"luv":[32.3008729039800215,-9.40240721482262,-130.351088503561101],"rgb":[0,0,1],"xyz":[0.18048078840183,0.072192315360733,0.95053215224966],"hpluv":[265.8743202181779,513.41269684428039,32.3008729039800215],"hsluv":[265.8743202181779,100.000000000000824,32.3008729039800215]},"#001100":{"lch":[3.62113466359794112,5.60448249758782424,127.715012949240474],"luv":[3.62113466359794112,-3.42845440085753106,4.43350025228474376],"rgb":[0,0.0666666666666666657,0],"xyz":[0.00200440026092840902,0.00400880052185687355,0.00066813342030945088],"hpluv":[127.715012949240474,196.394882900214469,3.62113466359794112],"hsluv":[127.715012949240474,100.000000000002217,3.62113466359794112]},"#001111":{"lch":[3.9866681431241604,3.15408977882195618,192.17705063006116],"luv":[3.9866681431241604,-3.08312421078118115,-0.665302512969894178],"rgb":[0,0.0666666666666666657,0.0666666666666666657],"xyz":[0.00301606576056553076,0.00441346672171172814,0.00599623838506508234],"hpluv":[192.17705063006116,100.392967527320764,3.9866681431241604],"hsluv":[192.17705063006116,99.9999999999914,3.9866681431241604]},"#001122":{"lch":[4.66426976733809706,7.30142401028103372,246.87889630792742],"luv":[4.66426976733809706,-2.86709314837997242,-6.71495118794031054],"rgb":[0,0.0666666666666666657,0.133333333333333331],"xyz":[0.00489142389904254939,0.005163609977102546,0.0158731245810442775],"hpluv":[246.87889630792742,198.638412351210178,4.66426976733809706],"hsluv":[246.87889630792742,99.9999999999921414,4.66426976733809706]},"#001133":{"lch":[5.77993128742527773,13.8979406242137369,257.974087263939282],"luv":[5.77993128742527773,-2.89569220292521434,-13.5929290537429299],"rgb":[0,0.0666666666666666657,0.2],"xyz":[0.00797917463150029,0.00639871027008565886,0.0321352784386554208],"hpluv":[257.974087263939282,305.117489912579458,5.77993128742527773],"hsluv":[257.974087263939282,99.9999999999925,5.77993128742527773]},"#001144":{"lch":[7.39068752445735111,21.802452480470059,261.611708702028636],"luv":[7.39068752445735111,-3.1805605696034065,-21.569213444774455],"rgb":[0,0.0666666666666666657,0.266666666666666663],"xyz":[0.0124371698757191687,0.00818190836777323537,0.0556140533915420593],"hpluv":[261.611708702028636,374.334482048802613,7.39068752445735111],"hsluv":[261.611708702028636,99.9999999999929656,7.39068752445735111]},"#001155":{"lch":[9.4550232844459714,31.0886305445366773,263.238579866128873],"luv":[9.4550232844459714,-3.6602302532303379,-30.8724094237562916],"rgb":[0,0.0666666666666666657,0.333333333333333315],"xyz":[0.0183995839150811608,0.0105668739835180665,0.0870161006655159747],"hpluv":[263.238579866128873,417.232678203522596,9.4550232844459714],"hsluv":[263.238579866128873,99.9999999999929514,9.4550232844459714]},"#001166":{"lch":[11.6894020192987682,40.9340765206813302,264.100423242359113],"luv":[11.6894020192987682,-4.20741678933990659,-40.7172723123955791],"rgb":[0,0.0666666666666666657,0.4],"xyz":[0.025984579688589339,0.0136008722929213798,0.126963745072659923],"hpluv":[264.100423242359113,444.357002567308371,11.6894020192987682],"hsluv":[264.100423242359113,99.9999999999928235,11.6894020192987682]},"#001177":{"lch":[14.0165943101603965,51.0460922578313898,264.608714664977526],"luv":[14.0165943101603965,-4.79613195559092276,-50.8202779710972621],"rgb":[0,0.0666666666666666657,0.466666666666666674],"xyz":[0.0352985927087912515,0.0173264775010021979,0.176017546979057832],"hpluv":[264.608714664977526,462.124851551559573,14.0165943101603965],"hsluv":[264.608714664977526,99.9999999999931504,14.0165943101603965]},"#001188":{"lch":[16.3962585295353378,61.2721603523949625,264.931782730652174],"luv":[16.3962585295353378,-5.41289085195630371,-61.0325998698597871],"rgb":[0,0.0666666666666666657,0.533333333333333326],"xyz":[0.0464390098107350796,0.0217826443417797888,0.23469041038263],"hpluv":[264.931782730652174,474.195864485329537,16.3962585295353378],"hsluv":[264.931782730652174,99.9999999999933209,16.3962585295353378]},"#001199":{"lch":[18.8023327262484941,71.5200065602600148,265.148843888859801],"luv":[18.8023327262484941,-6.04826966448705239,-71.2638040834565771],"rgb":[0,0.0666666666666666657,0.6],"xyz":[0.059495973919807793,0.0270054299854089498,0.303457088023747934],"hpluv":[265.148843888859801,482.675370310212884,18.8023327262484941],"hsluv":[265.148843888859801,99.9999999999930651,18.8023327262484941]},"#0011aa":{"lch":[21.2181090603332123,81.7349311996174919,265.301088447161305],"luv":[21.2181090603332123,-6.69569086805443892,-81.4602154551880488],"rgb":[0,0.0666666666666666657,0.66666666666666663],"xyz":[0.0745536668850603351,0.0330285071715100548,0.382760937640746535],"hpluv":[265.301088447161305,488.81030222212587,21.2181090603332123],"hsluv":[265.301088447161305,99.9999999999931788,21.2181090603332123]},"#0011bb":{"lch":[23.6329047323064216,91.8852368853417,265.411605614461337],"luv":[23.6329047323064216,-7.35054503717070418,-91.590754146539723],"rgb":[0,0.0666666666666666657,0.733333333333333282],"xyz":[0.0916912589923969817,0.0398835440144448133,0.473018922739388281],"hpluv":[265.411605614461337,493.364573724961247,23.6329047323064216],"hsluv":[265.411605614461337,99.999999999993,23.6329047323064216]},"#0011cc":{"lch":[26.0399131129061345,101.953231398784169,265.494123438592396],"luv":[26.0399131129061345,-8.00958293333115,-101.638122640513785],"rgb":[0,0.0666666666666666657,0.8],"xyz":[0.110983634436118722,0.047600494191933615,0.574625433409658437],"hpluv":[265.494123438592396,496.821968194535657,26.0399131129061345],"hsluv":[265.494123438592396,99.9999999999927383,26.0399131129061345]},"#0011dd":{"lch":[28.43483595206839,111.929749681002491,265.557201901085818],"luv":[28.43483595206839,-8.67050070949402496,-111.593419524175076],"rgb":[0,0.0666666666666666657,0.866666666666666696],"xyz":[0.132501959986752266,0.056207824412187149,0.687955281309664435],"hpluv":[265.557201901085818,499.498435149301031,28.43483595206839],"hsluv":[265.557201901085818,99.9999999999932214,28.43483595206839]},"#0011ee":{"lch":[30.8150119654139019,121.810820553676152,265.60639254385444],"luv":[30.8150119654139019,-9.33165721729429798,-121.452855781734542],"rgb":[0,0.0666666666666666657,0.933333333333333348],"xyz":[0.156314140252927,0.0657326965186571799,0.813366097378187658],"hpluv":[265.60639254385444,501.606152289563909,30.8150119654139019],"hsluv":[265.60639254385444,99.9999999999933635,30.8150119654139019]},"#0011ff":{"lch":[33.1788572452669683,131.59562707663585,265.645416939351662],"luv":[33.1788572452669683,-9.99188030865750321,-131.215743695604147],"rgb":[0,0.0666666666666666657,1],"xyz":[0.182485188662758396,0.076201115882589876,0.951200285669969503],"hpluv":[265.645416939351662,503.291227463659,33.1788572452669683],"hsluv":[265.645416939351662,99.9999999999995,33.1788572452669683]},"#55aa00":{"lch":[62.2364297391950743,84.7105424007581291,119.071642820441127],"luv":[62.2364297391950743,-41.1610955154551661,74.0380997176333437],"rgb":[0.333333333333333315,0.66666666666666663,0],"xyz":[0.181203244729902568,0.306798408854291604,0.0496696976001293408],"hpluv":[119.071642820441127,172.715819722381468,62.2364297391950743],"hsluv":[119.071642820441127,100.00000000000216,62.2364297391950743]},"#55aa11":{"lch":[62.270812500354296,83.3839078255156352,119.512873370738717],"luv":[62.270812500354296,-41.0765057562956173,72.5644317769187808],"rgb":[0.333333333333333315,0.66666666666666663,0.0666666666666666657],"xyz":[0.182214910229539701,0.307203075054146457,0.0549978025648849705],"hpluv":[119.512873370738717,169.917081036602212,62.270812500354296],"hsluv":[119.512873370738717,97.826098763204655,62.270812500354296]},"#55aa22":{"lch":[62.3344691942433826,80.9675552156414,120.358690899927907],"luv":[62.3344691942433826,-40.9219560187625078,69.8651451955580285],"rgb":[0.333333333333333315,0.66666666666666663,0.133333333333333331],"xyz":[0.184090268368016702,0.307953218309537258,0.0648746887608641631],"hpluv":[120.358690899927907,164.824621464176317,62.3344691942433826],"hsluv":[120.358690899927907,93.8493385636837729,62.3344691942433826]},"#55aa33":{"lch":[62.4390542004851312,77.1100321042589343,121.835090998601942],"luv":[62.4390542004851312,-40.6737079775314143,65.5103543760705094],"rgb":[0.333333333333333315,0.66666666666666663,0.2],"xyz":[0.187178019100474435,0.309188318602520384,0.0811368426184753133],"hpluv":[121.835090998601942,156.708983850290963,62.4390542004851312],"hsluv":[121.835090998601942,87.4478443822902,62.4390542004851312]},"#55aa44":{"lch":[62.5895604608427192,71.8060360850404322,124.168545167949461],"luv":[62.5895604608427192,-40.3283690350335959,59.4115264003566281],"rgb":[0.333333333333333315,0.66666666666666663,0.266666666666666663],"xyz":[0.191636014344693323,0.310971516700207951,0.104615617571361952],"hpluv":[124.168545167949461,145.578881327618376,62.5895604608427192],"hsluv":[124.168545167949461,78.5131262768233569,62.5895604608427192]},"#55aa55":{"lch":[62.7899606618147317,65.2067785819955361,127.715012949239551],"luv":[62.7899606618147317,-39.8892256495404212,51.582687503865472],"rgb":[0.333333333333333315,0.66666666666666663,0.333333333333333315],"xyz":[0.197598428384055336,0.313356482315952811,0.136017664845335867],"hpluv":[127.715012949239551,131.777681042751937,62.7899606618147317],"hsluv":[127.715012949239551,67.0983271543339583,62.7899606618147317]},"#55aa66":{"lch":[63.0434325957243402,57.6560159218084,133.059858461454269],"luv":[63.0434325957243402,-39.3653397911167744,42.1258376190401904],"rgb":[0.333333333333333315,0.66666666666666663,0.4],"xyz":[0.205183424157563493,0.31639048062535613,0.175965309252479829],"hpluv":[133.059858461454269,116.049721847977636,63.0434325957243402],"hsluv":[133.059858461454269,68.1368400599560289,63.0434325957243402]},"#55aa77":{"lch":[63.3524771250310863,49.7736139598232441,141.163090238883626],"luv":[63.3524771250310863,-38.7703675351212311,31.2133184364163512],"rgb":[0.333333333333333315,0.66666666666666663,0.466666666666666674],"xyz":[0.214497437177765427,0.320116085833436925,0.225019111158877738],"hpluv":[141.163090238883626,99.6953496544650903,63.3524771250310863],"hsluv":[141.163090238883626,69.3257510819996696,63.3524771250310863]},"#55aa88":{"lch":[63.7189896387035901,42.62351374085884,153.427389325734708],"luv":[63.7189896387035901,-38.1211143540371324,19.0668446268281784],"rgb":[0.333333333333333315,0.66666666666666663,0.533333333333333326],"xyz":[0.225637854279709227,0.324572252674214523,0.283691974562449878],"hpluv":[153.427389325734708,84.882799477410984,63.7189896387035901],"hsluv":[153.427389325734708,70.6362499177174783,63.7189896387035901]},"#55aa99":{"lch":[64.1443101574831473,37.9035590936142697,170.991128647613664],"luv":[64.1443101574831473,-37.4359848569684885,5.93521943587048106],"rgb":[0.333333333333333315,0.66666666666666663,0.6],"xyz":[0.238694818388781954,0.329795038317843681,0.352458652203567813],"hpluv":[170.991128647613664,74.9827180661079211,64.1443101574831473],"hsluv":[170.991128647613664,72.0364673991159918,64.1443101574831473]},"#55aaaa":{"lch":[64.6292640862610881,37.5790288142004414,192.177050630061],"luv":[64.6292640862610881,-36.7335179653569526,-7.92666793219602717],"rgb":[0.333333333333333315,0.66666666666666663,0.66666666666666663],"xyz":[0.253752511354034482,0.335818115503944803,0.431762501820566413],"hpluv":[192.177050630061,73.7828909738526,64.6292640862610881],"hsluv":[192.177050630061,73.4940830927894808,64.6292640862610881]},"#55aabb":{"lch":[65.1741997434662466,42.3607987370151307,211.725401595501864],"luv":[65.1741997434662466,-36.0311661131296148,-22.2753751520813346],"rgb":[0.333333333333333315,0.66666666666666663,0.733333333333333282],"xyz":[0.270890103461371157,0.342673152346879561,0.522020486919208104],"hpluv":[211.725401595501864,82.4760322189960249,65.1741997434662466],"hsluv":[211.725401595501864,74.9784994025983,65.1741997434662466]},"#55aacc":{"lch":[65.7790257871148327,51.0903516363502916,226.227071697937646],"luv":[65.7790257871148327,-35.3444111183519212,-36.8916878581455236],"rgb":[0.333333333333333315,0.66666666666666663,0.8],"xyz":[0.290182478905092855,0.350390102524368363,0.62362699758947826],"hpluv":[226.227071697937646,98.5577501957325808,65.7790257871148327],"hsluv":[226.227071697937646,76.4624197891718,65.7790257871148327]},"#55aadd":{"lch":[66.4432499478878071,62.1650528283955595,236.084470311275709],"luv":[66.4432499478878071,-34.6862381636523693,-51.5883579425784404],"rgb":[0.333333333333333315,0.66666666666666663,0.866666666666666696],"xyz":[0.311700804455726455,0.358997432744621869,0.736956845489484258],"hpluv":[236.084470311275709,118.722973851074883,66.4432499478878071],"hsluv":[236.084470311275709,77.9227939155192928,66.4432499478878071]},"#55aaee":{"lch":[67.1660194476775274,74.4631251020179832,242.774049894046698],"luv":[67.1660194476775274,-34.0669326024190866,-66.2133000462974763],"rgb":[0.333333333333333315,0.66666666666666663,0.933333333333333348],"xyz":[0.335512984721901164,0.368522304851091886,0.862367661558007481],"hpluv":[242.774049894046698,140.679551339708695,67.1660194476775274],"hsluv":[242.774049894046698,80.7550915423080085,67.1660194476775274]},"#55aaff":{"lch":[67.9461628502375135,87.3278464079016,247.446578213330071],"luv":[67.9461628502375135,-33.4941307575646476,-80.6492155140842897],"rgb":[0.333333333333333315,0.66666666666666663,1],"xyz":[0.361684033131732585,0.37899072421502461,1.00020184984978933],"hpluv":[247.446578213330071,163.089927997179217,67.9461628502375135],"hsluv":[247.446578213330071,99.9999999999981,67.9461628502375135]},"#002200":{"lch":[10.1376941245203973,15.6902558355344119,127.715012949240474],"luv":[10.1376941245203973,-9.59826829561359141,12.4119850914324186],"rgb":[0,0.133333333333333331,0],"xyz":[0.00572002399569634425,0.0114400479913928481,0.00190667466523206119],"hpluv":[127.715012949240474,196.394882900214583,10.1376941245203973],"hsluv":[127.715012949240474,100.000000000002331,10.1376941245203973]},"#002211":{"lch":[10.4423176349325608,11.2803579121031614,143.951720967420982],"luv":[10.4423176349325608,-9.12041102953238614,6.63811549142769763],"rgb":[0,0.133333333333333331,0.0666666666666666657],"xyz":[0.00673168949533346599,0.0118447141912477027,0.00723477962998769243],"hpluv":[143.951720967420982,137.077225818420459,10.4423176349325608],"hsluv":[143.951720967420982,99.9999999999911,10.4423176349325608]},"#002222":{"lch":[10.9891417742670896,8.69416226881610399,192.17705063006116],"luv":[10.9891417742670896,-8.49854762011842,-1.83388819318003415],"rgb":[0,0.133333333333333331,0.133333333333333331],"xyz":[0.00860704763381048461,0.0125948574466385205,0.0171116658259668902],"hpluv":[192.17705063006116,100.392967527320849,10.9891417742670896],"hsluv":[192.17705063006116,99.9999999999915,10.9891417742670896]},"#002233":{"lch":[11.8439988341371283,14.4341695325786503,236.81663495428262],"luv":[11.8439988341371283,-7.90011340243738758,-12.0802921456333543],"rgb":[0,0.133333333333333331,0.2],"xyz":[0.0116947983662682251,0.0138299577396216334,0.0333738196835780335],"hpluv":[236.81663495428262,154.643892414528665,11.8439988341371283],"hsluv":[236.81663495428262,99.9999999999918572,11.8439988341371283]},"#002244":{"lch":[12.9926705590666103,23.9154033254141893,251.756603241059679],"luv":[12.9926705590666103,-7.48682111947174356,-22.713300635140282],"rgb":[0,0.133333333333333331,0.266666666666666663],"xyz":[0.0161527936104871039,0.0156131558373092099,0.056852594636464672],"hpluv":[251.756603241059679,233.570832873869165,12.9926705590666103],"hsluv":[251.756603241059679,99.9999999999922551,12.9926705590666103]},"#002255":{"lch":[14.3995425627967926,34.0053227001087492,257.612107564284656],"luv":[14.3995425627967926,-7.29512566501762105,-33.2135983216232162],"rgb":[0,0.133333333333333331,0.333333333333333315],"xyz":[0.022115207649849096,0.0179981214530540411,0.0882546419104385804],"hpluv":[257.612107564284656,299.666041626864057,14.3995425627967926],"hsluv":[257.612107564284656,99.9999999999922551,14.3995425627967926]},"#002266":{"lch":[16.0198287291043684,44.1221041927951489,260.479541157990241],"luv":[16.0198287291043684,-7.29778599254304705,-43.514392998258792],"rgb":[0,0.133333333333333331,0.4],"xyz":[0.0297002034233572743,0.0210321197624573561,0.128202286317582542],"hpluv":[260.479541157990241,349.492349810916096,16.0198287291043684],"hsluv":[260.479541157990241,99.9999999999926672,16.0198287291043684]},"#002277":{"lch":[17.8086814865908138,54.1839210795750787,262.094384047744654],"luv":[17.8086814865908138,-7.45254493353373,-53.6689563674502708],"rgb":[0,0.133333333333333331,0.466666666666666674],"xyz":[0.0390142164435591868,0.0247577249705381724,0.177256088223980451],"hpluv":[262.094384047744654,386.080609388904179,17.8086814865908138],"hsluv":[262.094384047744654,99.9999999999926246,17.8086814865908138]},"#002288":{"lch":[19.7262797638069571,64.1945165648047862,263.091662768615947],"luv":[19.7262797638069571,-7.7213996360385595,-63.7284547486409778],"rgb":[0,0.133333333333333331,0.533333333333333326],"xyz":[0.0501546335455030148,0.0292138918113157633,0.235928951627552619],"hpluv":[263.091662768615947,412.944865974292611,19.7262797638069571],"hsluv":[263.091662768615947,99.9999999999928093,19.7262797638069571]},"#002299":{"lch":[21.7396965211461932,74.1610579713059082,263.749129578079874],"luv":[21.7396965211461932,-8.0748025544340809,-73.7201470639492129],"rgb":[0,0.133333333333333331,0.6],"xyz":[0.0632115976545757352,0.0344366774549449278,0.304695629268670554],"hpluv":[263.749129578079874,432.874263951475,21.7396965211461932],"hsluv":[263.749129578079874,99.9999999999928662,21.7396965211461932]},"#0022aa":{"lch":[23.8228560713303921,84.0831956926279389,264.204285416148139],"luv":[23.8228560713303921,-8.49087961251211532,-83.6533846373868641],"rgb":[0,0.133333333333333331,0.66666666666666663],"xyz":[0.0782692906198282773,0.0404597546410460224,0.383999478885669154],"hpluv":[264.204285416148139,447.872821658188343,23.8228560713303921],"hsluv":[264.204285416148139,99.9999999999925251,23.8228560713303921]},"#0022bb":{"lch":[25.9556350824861326,93.9557715434331868,264.531619021467236],"luv":[25.9556350824861326,-8.95364890679069,-93.5281731756572725],"rgb":[0,0.133333333333333331,0.733333333333333282],"xyz":[0.0954068827271649239,0.0473147914839807809,0.474257463984310901],"hpluv":[264.531619021467236,459.336683180505304,25.9556350824861326],"hsluv":[264.531619021467236,99.9999999999932783,25.9556350824861326]},"#0022cc":{"lch":[28.122733334265547,103.772183036952711,264.774345627526145],"luv":[28.122733334265547,-9.45141286238599143,-103.340876555018355],"rgb":[0,0.133333333333333331,0.8],"xyz":[0.114699258170886664,0.0550317416614695826,0.575863974654581057],"hpluv":[264.774345627526145,468.233789407088068,28.122733334265547],"hsluv":[264.774345627526145,99.9999999999932,28.122733334265547]},"#0022dd":{"lch":[30.3126112219004114,113.526334495176528,264.958927468127968],"luv":[30.3126112219004114,-9.97554123069502552,-113.087210599012522],"rgb":[0,0.133333333333333331,0.866666666666666696],"xyz":[0.136217583721520208,0.0636390718817231166,0.689193822554587],"hpluv":[264.958927468127968,475.239568383116307,30.3126112219004114],"hsluv":[264.958927468127968,99.9999999999930651,30.3126112219004114]},"#0022ee":{"lch":[32.516600051948771,123.213441320075319,265.102292473050682],"luv":[32.516600051948771,-10.519601137712538,-122.76355368691101],"rgb":[0,0.133333333333333331,0.933333333333333348],"xyz":[0.160029763987694945,0.0731639439881931475,0.814604638623110278],"hpluv":[265.102292473050682,480.830806343612153,32.516600051948771],"hsluv":[265.102292473050682,99.9999999999931504,32.516600051948771]},"#0022ff":{"lch":[34.728199222084136,132.830192238289243,265.215668718406278],"luv":[34.728199222084136,-11.0787458291525667,-132.367372720447662],"rgb":[0,0.133333333333333331,1],"xyz":[0.186200812397526339,0.0836323633521258575,0.952438826914892123],"hpluv":[265.215668718406278,485.348691920142073,34.728199222084136],"hsluv":[265.215668718406278,99.9999999999995595,34.728199222084136]},"#55bb00":{"lch":[67.6287132051522093,94.1564927152114421,120.799924159261636],"luv":[67.6287132051522093,-48.2120532219748839,80.8767150949587403],"rgb":[0.333333333333333315,0.733333333333333282,0],"xyz":[0.215157742638501348,0.374707404671490163,0.0609878635696619598],"hpluv":[120.799924159261636,176.668237076728246,67.6287132051522093],"hsluv":[120.799924159261636,100.000000000002245,67.6287132051522093]},"#55bb11":{"lch":[67.658807387059241,92.983820197622,121.168613223743336],"luv":[67.658807387059241,-48.1245535730997,79.5614112615755],"rgb":[0.333333333333333315,0.733333333333333282,0.0666666666666666657],"xyz":[0.21616940813813848,0.375112070871345,0.0663159685344176],"hpluv":[121.168613223743336,174.390319462510746,67.658807387059241],"hsluv":[121.168613223743336,98.2170484527892853,67.658807387059241]},"#55bb22":{"lch":[67.7145367797011,90.8418307914021739,121.8702408444057],"luv":[67.7145367797011,-47.9642424389893733,77.1470651987980318],"rgb":[0.333333333333333315,0.733333333333333282,0.133333333333333331],"xyz":[0.218044766276615481,0.375862214126735816,0.076192854730396789],"hpluv":[121.8702408444057,170.232819736279453,67.7145367797011],"hsluv":[121.8702408444057,94.9476871157098401,67.7145367797011]},"#55bb33":{"lch":[67.8061331119394595,87.4049119918652337,123.079288563119889],"luv":[67.8061331119394595,-47.7055226907732077,73.2379802090816128],"rgb":[0.333333333333333315,0.733333333333333282,0.2],"xyz":[0.221132517009073215,0.377097314419718943,0.0924550085880079253],"hpluv":[123.079288563119889,163.570954697809668,67.8061331119394595],"hsluv":[123.079288563119889,89.6636954368763526,67.8061331119394595]},"#55bb44":{"lch":[67.9380247917114701,82.6396215824211851,124.951716096499126],"luv":[67.9380247917114701,-47.3430758547011195,67.7343356349037293],"rgb":[0.333333333333333315,0.733333333333333282,0.266666666666666663],"xyz":[0.225590512253292103,0.378880512517406509,0.115933783540894564],"hpluv":[124.951716096499126,154.352877500253584,67.9380247917114701],"hsluv":[124.951716096499126,82.2446152582935213,67.9380247917114701]},"#55bb55":{"lch":[68.1137800414251,76.6309713561306154,127.715012949239735],"luv":[68.1137800414251,-46.8777966745344372,60.6199467990950964],"rgb":[0.333333333333333315,0.733333333333333282,0.333333333333333315],"xyz":[0.231552926292654115,0.38126547813315137,0.147335830814868479],"hpluv":[127.715012949239735,142.760701907139094,68.1137800414251],"hsluv":[127.715012949239735,72.6906423420812189,68.1137800414251]},"#55bb66":{"lch":[68.3363083667640723,69.6002362161904813,131.717534816394789],"luv":[68.3363083667640723,-46.3160914021311,51.9520216986687728],"rgb":[0.333333333333333315,0.733333333333333282,0.4],"xyz":[0.239137922066162273,0.384299476442554688,0.187283475222012441],"hpluv":[131.717534816394789,129.240469264566769,68.3363083667640723],"hsluv":[131.717534816394789,73.4099839145656432,68.3363083667640723]},"#55bb77":{"lch":[68.6079661831172416,61.943926665161591,137.498849513297245],"luv":[68.6079661831172416,-45.6690129611091,41.8496273084595956],"rgb":[0.333333333333333315,0.733333333333333282,0.466666666666666674],"xyz":[0.248451935086364206,0.388025081650635484,0.23633727712841035],"hpluv":[137.498849513297245,114.568047908441656,68.6079661831172416],"hsluv":[137.498849513297245,74.2430874467708719,68.6079661831172416]},"#55bb88":{"lch":[68.930619778887035,54.3103726013937376,145.860320527647957],"luv":[68.930619778887035,-44.9511677919681389,30.4796503628330058],"rgb":[0.333333333333333315,0.733333333333333282,0.533333333333333326],"xyz":[0.259592352188308,0.392481248491413082,0.29501014053198249],"hpluv":[145.860320527647957,99.9792617157038421,68.930619778887035],"hsluv":[145.860320527647957,75.173468866550067,68.930619778887035]},"#55bb99":{"lch":[69.3056876145919176,47.7211055743842465,157.786981113384826],"luv":[69.3056876145919176,-44.1794697421466793,18.0410191104680564],"rgb":[0.333333333333333315,0.733333333333333282,0.6],"xyz":[0.272649316297380762,0.397704034135042239,0.363776818173100425],"hpluv":[157.786981113384826,87.3737441175344713,69.3056876145919176],"hsluv":[157.786981113384826,76.1818306173187807,69.3056876145919176]},"#55bbaa":{"lch":[69.7341725511637378,43.6310575063277497,173.751690425302456],"luv":[69.7341725511637378,-43.37186937951342,4.74869725787034813],"rgb":[0.333333333333333315,0.733333333333333282,0.66666666666666663],"xyz":[0.287707009262633262,0.403727111321143362,0.443080667790099],"hpluv":[173.751690425302456,79.3943164161001675,69.7341725511637378],"hsluv":[173.751690425302456,77.247554342351421,69.7341725511637378]},"#55bbbb":{"lch":[70.2166895771587605,43.5254926875218899,192.177050630061075],"luv":[70.2166895771587605,-42.5461891389785691,-9.18097508120914796],"rgb":[0.333333333333333315,0.733333333333333282,0.733333333333333282],"xyz":[0.304844601369969936,0.41058214816407812,0.533338652888740716],"hpluv":[192.177050630061075,78.6579587560082274,70.2166895771587605],"hsluv":[192.177050630061075,78.350068429440185,70.2166895771587605]},"#55bbcc":{"lch":[70.753492069254392,47.9033609117661214,209.436295084806801],"luv":[70.753492069254392,-41.719164640327179,-23.5423721905035848],"rgb":[0.333333333333333315,0.733333333333333282,0.8],"xyz":[0.324136976813691691,0.418299098341566922,0.634945163559010872],"hpluv":[209.436295084806801,85.9127126132272849,70.753492069254392],"hsluv":[209.436295084806801,79.4699741443966445,70.753492069254392]},"#55bbdd":{"lch":[71.3444981992470701,55.9344204047748121,223.003151043067675],"luv":[71.3444981992470701,-40.905747403701568,-38.1494327004039633],"rgb":[0.333333333333333315,0.733333333333333282,0.866666666666666696],"xyz":[0.345655302364325179,0.426906428561820428,0.74827501145901687],"hpluv":[223.003151043067675,99.4850863142100081,71.3444981992470701],"hsluv":[223.003151043067675,80.5898663629362,71.3444981992470701]},"#55bbee":{"lch":[71.9893182406489,66.3452770137575385,232.793079173014576],"luv":[71.9893182406489,-40.1186787976363846,-52.8411524624918272],"rgb":[0.333333333333333315,0.733333333333333282,0.933333333333333348],"xyz":[0.369467482630499944,0.436431300668290445,0.873685827527540093],"hpluv":[232.793079173014576,116.944897502912525,71.9893182406489],"hsluv":[232.793079173014576,81.6948376758296888,71.9893182406489]},"#55bbff":{"lch":[72.6872829834048417,78.1278426582451146,239.741904567598624],"luv":[72.6872829834048417,-39.3683093588317803,-67.4840426816504788],"rgb":[0.333333333333333315,0.733333333333333282,1],"xyz":[0.395638531040331309,0.446899720032223169,1.01152001581932205],"hpluv":[239.741904567598624,136.39131713467242,72.6872829834048417],"hsluv":[239.741904567598624,99.9999999999976126,72.6872829834048417]},"#003300":{"lch":[17.3086983277836381,26.7889227675687067,127.71501294924046],"luv":[17.3086983277836381,-16.3877039844862402,21.1917328494772867],"rgb":[0,0.2,0],"xyz":[0.0118377460847071559,0.0236754921694146449,0.00394591536156894181],"hpluv":[127.71501294924046,196.394882900214611,17.3086983277836381],"hsluv":[127.71501294924046,100.000000000002402,17.3086983277836381]},"#003311":{"lch":[17.4974002223845133,22.6621201022865968,134.58430385811792],"luv":[17.4974002223845133,-15.9078557679049606,16.1403783226414816],"rgb":[0,0.2,0.0666666666666666657],"xyz":[0.0128494115843442776,0.0240801583692694977,0.00927402032632457241],"hpluv":[134.58430385811792,164.348724425256108,17.4974002223845133],"hsluv":[134.58430385811792,99.9999999999909335,17.4974002223845133]},"#003322":{"lch":[17.8416856931397234,17.1190432019509622,152.323942273369369],"luv":[17.8416856931397234,-15.1604156821769873,7.95131665159082601],"rgb":[0,0.2,0.133333333333333331],"xyz":[0.0147247697228212963,0.0248303016246603156,0.0191509065223037685],"hpluv":[152.323942273369369,121.753913655152402,17.8416856931397234],"hsluv":[152.323942273369369,99.9999999999912177,17.8416856931397234]},"#003333":{"lch":[18.3937448040413543,14.5523831926532932,192.17705063006116],"luv":[18.3937448040413543,-14.2249612699966086,-3.06958196712752551],"rgb":[0,0.2,0.2],"xyz":[0.017812520455279035,0.0260654019176434319,0.0354130603799149152],"hpluv":[192.17705063006116,100.392967527320849,18.3937448040413543],"hsluv":[192.17705063006116,99.9999999999915,18.3937448040413543]},"#003344":{"lch":[19.1608294605123817,20.3566459399555,229.223567805483242],"luv":[19.1608294605123817,-13.2951121246929258,-15.41535038578591],"rgb":[0,0.2,0.266666666666666663],"xyz":[0.0222705156994979156,0.0278486000153310084,0.0588918353328015537],"hpluv":[229.223567805483242,134.812835768594709,19.1608294605123817],"hsluv":[229.223567805483242,99.9999999999917577,19.1608294605123817]},"#003355":{"lch":[20.1371955335767296,30.6237106081975696,245.893961784182551],"luv":[20.1371955335767296,-12.5075398018694361,-27.9530517031554915],"rgb":[0,0.2,0.333333333333333315],"xyz":[0.0282329297388599076,0.0302335656310758379,0.0902938826067754552],"hpluv":[245.893961784182551,192.973712242731381,20.1371955335767296],"hsluv":[245.893961784182551,99.9999999999920419,20.1371955335767296]},"#003366":{"lch":[21.3076868402923836,41.8514919359335167,253.451236278131262],"luv":[21.3076868402923836,-11.9206140697212764,-40.1179054471226308],"rgb":[0,0.2,0.4],"xyz":[0.0358179255123680859,0.0332675639404791529,0.130241527013919417],"hpluv":[253.451236278131262,249.237832456686277,21.3076868402923836],"hsluv":[253.451236278131262,99.9999999999920846,21.3076868402923836]},"#003377":{"lch":[22.6513946103128916,53.0186284648852251,257.430711853641924],"luv":[22.6513946103128916,-11.5379190314963687,-51.7479602372902434],"rgb":[0,0.2,0.466666666666666674],"xyz":[0.04513193853257,0.0369931691485599692,0.179295328920317326],"hpluv":[257.430711853641924,297.011229333042763,22.6513946103128916],"hsluv":[257.430711853641924,99.9999999999922409,22.6513946103128916]},"#003388":{"lch":[24.1449124481648099,63.8887963004775941,259.778872090702237],"luv":[24.1449124481648099,-11.3369168899634012,-62.8748964862287636],"rgb":[0,0.2,0.533333333333333326],"xyz":[0.0562723556345138265,0.0414493359893375601,0.237968192323889494],"hpluv":[259.778872090702237,335.767299249073346,24.1449124481648099],"hsluv":[259.778872090702237,99.9999999999925677,24.1449124481648099]},"#003399":{"lch":[25.764809398314533,74.4520642325545481,261.279947020055374],"luv":[25.764809398314533,-11.2874373109462987,-73.5914643653724596],"rgb":[0,0.2,0.6],"xyz":[0.0693293197435865399,0.0466721216329667177,0.306734869965007428],"hpluv":[261.279947020055374,366.681615332004242,25.764809398314533],"hsluv":[261.279947020055374,99.9999999999928662,25.764809398314533]},"#0033aa":{"lch":[27.4892253326185596,84.7561178753388447,262.297068677869788],"luv":[27.4892253326185596,-11.360446037840406,-83.9913077831251],"rgb":[0,0.2,0.66666666666666663],"xyz":[0.084387012708839082,0.0526951988190678261,0.386038719582006029],"hpluv":[262.297068677869788,391.244172205097584,27.4892253326185596],"hsluv":[262.297068677869788,99.9999999999925819,27.4892253326185596]},"#0033bb":{"lch":[29.2987082140811808,94.8530383242648725,263.01737082090068],"luv":[29.2987082140811808,-11.531133966499155,-94.1495184734957178],"rgb":[0,0.2,0.733333333333333282],"xyz":[0.101524604816175729,0.0595502356620025847,0.476296704680647776],"hpluv":[263.01737082090068,410.811034734971429,29.2987082140811808],"hsluv":[263.01737082090068,99.999999999992923,29.2987082140811808]},"#0033cc":{"lch":[31.1765026722858281,104.784892642773883,263.545454640352943],"luv":[31.1765026722858281,-11.7793879173059235,-104.120697973319764],"rgb":[0,0.2,0.8],"xyz":[0.120816980259897469,0.0672671858394913863,0.577903215350917931],"hpluv":[263.545454640352943,426.491720029659064,31.1765026722858281],"hsluv":[263.545454640352943,99.9999999999928519,31.1765026722858281]},"#0033dd":{"lch":[33.108496036114694,114.582250296133722,263.943596884481394],"luv":[33.108496036114694,-12.0892798728815123,-113.942711022166648],"rgb":[0,0.2,0.866666666666666696],"xyz":[0.142335305810531026,0.0758745160597449203,0.691233063250923929],"hpluv":[263.943596884481394,439.154381827523366,33.108496036114694],"hsluv":[263.943596884481394,99.999999999992724,33.108496036114694]},"#0033ee":{"lch":[35.0829820911796091,124.266344101148519,264.250786122927309],"luv":[35.0829820911796091,-12.4483077284590724,-123.641271066592637],"rgb":[0,0.2,0.933333333333333348],"xyz":[0.166147486076705764,0.0853993881662149512,0.816643879319447152],"hpluv":[264.250786122927309,449.46548401365061,35.0829820911796091],"hsluv":[264.250786122927309,99.9999999999932214,35.0829820911796091]},"#0033ff":{"lch":[37.0903499028545482,133.851694130242549,264.492451291459133],"luv":[37.0903499028545482,-12.8466699872586325,-133.233776092154926],"rgb":[0,0.2,1],"xyz":[0.192318534486537157,0.0958678075301476473,0.954478067611229],"hpluv":[264.492451291459133,457.933345064777,37.0903499028545482],"hsluv":[264.492451291459133,99.999999999999531,37.0903499028545482]},"#55cc00":{"lch":[72.9678739916599,103.392643433537373,122.072672834653702],"luv":[72.9678739916599,-54.9009234662034089,87.6123696673744661],"rgb":[0.333333333333333315,0.8,0],"xyz":[0.253381485948118268,0.451154891290725057,0.0737291113395339148],"hpluv":[122.072672834653702,179.803140433373983,72.9678739916599],"hsluv":[122.072672834653702,100.000000000002444,72.9678739916599]},"#55cc11":{"lch":[72.9944661394807497,102.34674561848017,122.382691003133885],"luv":[72.9944661394807497,-54.8140205324080085,86.4307786136781431],"rgb":[0.333333333333333315,0.8,0.0666666666666666657],"xyz":[0.254393151447755372,0.45155955749057991,0.0790572163042895515],"hpluv":[122.382691003133885,177.91945009175069,72.9944661394807497],"hsluv":[122.382691003133885,98.5172338886757757,72.9944661394807497]},"#55cc22":{"lch":[73.0437189009647909,100.431941691916791,122.969611448584445],"luv":[73.0437189009647909,-54.6544745496639663,84.2583130836875114],"rgb":[0.333333333333333315,0.8,0.133333333333333331],"xyz":[0.256268509586232429,0.452309700745970711,0.0889341025002687441],"hpluv":[122.969611448584445,174.473032354427772,73.0437189009647909],"hsluv":[122.969611448584445,95.7933392549395,73.0437189009647909]},"#55cc33":{"lch":[73.1246943704287702,97.3470237033586,123.971835615120114],"luv":[73.1246943704287702,-54.3960871275936384,80.7310889875115123],"rgb":[0.333333333333333315,0.8,0.2],"xyz":[0.259356260318690135,0.453544801038953838,0.10519625635787988],"hpluv":[123.971835615120114,168.926560877595364,73.1246943704287702],"hsluv":[123.971835615120114,91.3772697810403542,73.1246943704287702]},"#55cc44":{"lch":[73.2413452172043,93.0415252478239836,125.502056943833935],"luv":[73.2413452172043,-54.0322080150887771,75.7446098244333399],"rgb":[0.333333333333333315,0.8,0.266666666666666663],"xyz":[0.26381425556290905,0.455327999136641404,0.128675031310766519],"hpluv":[125.502056943833935,161.198069131808353,73.2413452172043],"hsluv":[125.502056943833935,85.148140842768953,73.2413452172043]},"#55cc55":{"lch":[73.3968865779486919,87.5572640326508207,127.71501294923992],"luv":[73.3968865779486919,-53.5617851120033066,69.2633356148757144],"rgb":[0.333333333333333315,0.8,0.333333333333333315],"xyz":[0.269776669602271035,0.457712964752386264,0.160077078584740434],"hpluv":[127.71501294923992,151.374900584602614,73.3968865779486919],"hsluv":[127.71501294923992,77.0768048277098,73.3968865779486919]},"#55cc66":{"lch":[73.5939772793636,81.0375847478920832,130.834727778769576],"luv":[73.5939772793636,-52.9887999422805,61.3129449826769175],"rgb":[0.333333333333333315,0.8,0.4],"xyz":[0.277361665375779221,0.460746963061789583,0.200024722991884396],"hpluv":[130.834727778769576,139.728031568505,73.5939772793636],"hsluv":[130.834727778769576,77.5857883184082766,73.5939772793636]},"#55cc77":{"lch":[73.8348152761848553,73.7475179973278898,135.191797127350526],"luv":[73.8348152761848553,-52.3216404431773,51.972515352838883],"rgb":[0.333333333333333315,0.8,0.466666666666666674],"xyz":[0.286675678395981126,0.464472568269870378,0.249078524898282305],"hpluv":[135.191797127350526,126.743455190439619,73.8348152761848553],"hsluv":[135.191797127350526,78.1806978106980779,73.8348152761848553]},"#55cc88":{"lch":[74.1211942127210648,66.1117924559585646,141.267644806662588],"luv":[74.1211942127210648,-51.5723023085178269,41.3650424433311343],"rgb":[0.333333333333333315,0.8,0.533333333333333326],"xyz":[0.297816095497924926,0.468928735110648,0.307751388301854445],"hpluv":[141.267644806662588,113.181605649052202,74.1211942127210648],"hsluv":[141.267644806662588,78.852064841283763,74.1211942127210648]},"#55cc99":{"lch":[74.4545405069311,58.7794373107374923,149.710693018120253],"luv":[74.4545405069311,-50.7554383804248,29.646377947024483],"rgb":[0.333333333333333315,0.8,0.6],"xyz":[0.310873059606997626,0.474151520754277134,0.37651806594297238],"hpluv":[149.710693018120253,100.178278207809555,74.4545405069311],"hsluv":[149.710693018120253,79.5881732610030355,74.4545405069311]},"#55ccaa":{"lch":[74.8359403329188808,52.7021878309829361,161.189357777818884],"luv":[74.8359403329188808,-49.8873315971569866,16.9933736582089097],"rgb":[0.333333333333333315,0.8,0.66666666666666663],"xyz":[0.325930752572250182,0.480174597940378256,0.455821915559971],"hpluv":[161.189357777818884,89.3630022499163772,74.8359403329188808],"hsluv":[161.189357777818884,80.3759073289738097,74.8359403329188808]},"#55ccbb":{"lch":[75.2661614985634,49.1164256219739315,175.805780272408356],"luv":[75.2661614985634,-48.9848849956305372,3.59225665059547428],"rgb":[0.333333333333333315,0.8,0.733333333333333282],"xyz":[0.343068344679586856,0.487029634783313,0.546079900658612782],"hpluv":[175.805780272408356,82.8068592257523619,75.2661614985634],"hsluv":[175.805780272408356,81.2015846585734238,75.2661614985634]},"#55cccc":{"lch":[75.7456730324682894,49.1710405410584386,192.177050630061103],"luv":[75.7456730324682894,-48.0647147647340063,-10.3718090261618983],"rgb":[0.333333333333333315,0.8,0.8],"xyz":[0.362360720123308555,0.494746584960801816,0.647686411328882938],"hpluv":[192.177050630061103,82.3741405590198639,75.7456730324682894],"hsluv":[192.177050630061103,82.0517040066532815,75.7456730324682894]},"#55ccdd":{"lch":[76.2746640882933349,53.2320113470533514,207.674227909684788],"luv":[76.2746640882933349,-47.1424090239802069,-24.7232745296525458],"rgb":[0.333333333333333315,0.8,0.866666666666666696],"xyz":[0.383879045673942154,0.503353915181055322,0.761016259228888936],"hpluv":[207.674227909684788,89.8673986045394,76.2746640882933349],"hsluv":[207.674227909684788,82.913556803619926,76.2746640882933349]},"#55ccee":{"lch":[76.8530630513789674,60.6801737900983298,220.368363670310828],"luv":[76.8530630513789674,-46.2319850937693673,-39.3025068600722207],"rgb":[0.333333333333333315,0.8,0.933333333333333348],"xyz":[0.407691225940116864,0.51287878728752534,0.886427075297412159],"hpluv":[220.368363670310828,105.55411204702996,76.8530630513789674],"hsluv":[220.368363670310828,83.7756757275922865,76.8530630513789674]},"#55ccff":{"lch":[77.4805572724897758,70.4908339109135511,229.9629437526429],"luv":[77.4805572724897758,-45.3455492712466395,-53.9697955040126445],"rgb":[0.333333333333333315,0.8,1],"xyz":[0.433862274349948285,0.523347206651458063,1.02426126358919389],"hpluv":[229.9629437526429,126.754412601721029,77.4805572724897758],"hsluv":[229.9629437526429,99.9999999999968878,77.4805572724897758]},"#004400":{"lch":[24.1097877444294397,37.3150672336374782,127.715012949240432],"luv":[24.1097877444294397,-22.8269080205926969,29.5185791133361732],"rgb":[0,0.266666666666666663,0],"xyz":[0.0206703165676731908,0.0413406331353469575,0.00689010552255753684],"hpluv":[127.715012949240432,196.39488290021464,24.1097877444294397],"hsluv":[127.715012949240432,100.000000000002458,24.1097877444294397]},"#004411":{"lch":[24.2402356883412295,33.8624764720942082,131.447767669063751],"luv":[24.2402356883412295,-22.4148262696793807,25.3819399598065552],"rgb":[0,0.266666666666666663,0.0666666666666666657],"xyz":[0.0216819820673103125,0.0417452993352018104,0.0122182104873131692],"hpluv":[131.447767669063751,177.264269230781338,24.2402356883412295],"hsluv":[131.447767669063751,99.9999999999909335,24.2402356883412295]},"#004422":{"lch":[24.4798388415780295,28.4164365287723264,139.862893984056171],"luv":[24.4798388415780295,-21.7244820008415864,18.3177713379345413],"rgb":[0,0.266666666666666663,0.133333333333333331],"xyz":[0.0235573402057873311,0.0424954425905926317,0.0220950966832923652],"hpluv":[139.862893984056171,147.299199898382369,24.4798388415780295],"hsluv":[139.862893984056171,99.9999999999911466,24.4798388415780295]},"#004433":{"lch":[24.8682723444395748,22.2877633761795622,158.664607016269599],"luv":[24.8682723444395748,-20.760308528761005,8.10888316004269427],"rgb":[0,0.266666666666666663,0.2],"xyz":[0.0266450909382450717,0.0437305428835757445,0.0383572505409035119],"hpluv":[158.664607016269599,113.726114076625834,24.8682723444395748],"hsluv":[158.664607016269599,99.9999999999913172,24.8682723444395748]},"#004444":{"lch":[25.4163828994624552,20.1084089871091685,192.17705063006116],"luv":[25.4163828994624552,-19.6559790417892835,-4.24153273022775057],"rgb":[0,0.266666666666666663,0.266666666666666663],"xyz":[0.0311030861824639487,0.0455137409812633176,0.0618360254937901505],"hpluv":[192.17705063006116,100.392967527320792,25.4163828994624552],"hsluv":[192.17705063006116,99.9999999999914166,25.4163828994624552]},"#004455":{"lch":[26.1275223832094383,25.5944772375096541,223.546306053382096],"luv":[26.1275223832094383,-18.5513329588178841,-17.6330743352507042],"rgb":[0,0.266666666666666663,0.333333333333333315],"xyz":[0.0370655002218259477,0.0478987065970081505,0.093238072767764052],"hpluv":[223.546306053382096,124.304646155287358,26.1275223832094383],"hsluv":[223.546306053382096,99.999999999991644,26.1275223832094383]},"#004466":{"lch":[26.9988561724938734,35.8050932952910514,240.647496291889979],"luv":[26.9988561724938734,-17.5509899640931621,-31.2084516944496499],"rgb":[0,0.266666666666666663,0.4],"xyz":[0.0446504959953341191,0.050932704906411462,0.133185717174908],"hpluv":[240.647496291889979,168.282428552664811,26.9988561724938734],"hsluv":[240.647496291889979,99.9999999999920135,26.9988561724938734]},"#004477":{"lch":[28.0227048150185141,47.4927479988473422,249.396343090395135],"luv":[28.0227048150185141,-16.7127641209025413,-44.4549730392572684],"rgb":[0,0.266666666666666663,0.466666666666666674],"xyz":[0.0539645090155360385,0.0546583101144922784,0.182239519081305923],"hpluv":[249.396343090395135,215.05848085050232,28.0227048150185141],"hsluv":[249.396343090395135,99.9999999999921698,28.0227048150185141]},"#004488":{"lch":[29.1879465441319326,59.3592998069098,254.306666373838311],"luv":[29.1879465441319326,-16.0560040952153962,-57.1465765034181956],"rgb":[0,0.266666666666666663,0.533333333333333326],"xyz":[0.0651049261174798666,0.0591144769552698762,0.24091238248487809],"hpluv":[254.306666373838311,258.06229412425995,29.1879465441319326],"hsluv":[254.306666373838311,99.9999999999923,29.1879465441319326]},"#004499":{"lch":[30.4813623757938217,70.9684349502494,257.321762040288718],"luv":[30.4813623757938217,-15.5758442205369825,-69.2380808233832141],"rgb":[0,0.266666666666666663,0.6],"xyz":[0.07816189022655258,0.0643372625988990338,0.309679060125996],"hpluv":[257.321762040288718,295.440602563868879,30.4813623757938217],"hsluv":[257.321762040288718,99.9999999999926672,30.4813623757938217]},"#0044aa":{"lch":[31.8888011745219231,82.2033012029853,259.305022310013101],"luv":[31.8888011745219231,-15.2553283345918977,-80.7753532092093138],"rgb":[0,0.266666666666666663,0.66666666666666663],"xyz":[0.0932195831918051221,0.0703603397850001422,0.388982909742994598],"hpluv":[259.305022310013101,327.107417663034141,31.8888011745219231],"hsluv":[259.305022310013101,99.9999999999925109,31.8888011745219231]},"#0044bb":{"lch":[33.3960915948532602,93.0667571364503,260.679203518012741],"luv":[33.3960915948532602,-15.0732787327803415,-91.8379962332527],"rgb":[0,0.266666666666666663,0.733333333333333282],"xyz":[0.110357175299141769,0.0772153766279349,0.479240894841636345],"hpluv":[260.679203518012741,353.621176249907,33.3960915948532602],"hsluv":[260.679203518012741,99.9999999999929656,33.3960915948532602]},"#0044cc":{"lch":[34.9896851087579108,103.60206818965716,261.670396128603272],"luv":[34.9896851087579108,-15.0085679377548828,-102.509177255659253],"rgb":[0,0.266666666666666663,0.8],"xyz":[0.129649550742863495,0.0849323268054237,0.5808474055119065],"hpluv":[261.670396128603272,375.722944942957042,34.9896851087579108],"hsluv":[261.670396128603272,99.999999999992923,34.9896851087579108]},"#0044dd":{"lch":[36.6570567010139499,113.860579159150092,262.408492682931296],"luv":[36.6570567010139499,-15.0420602661110987,-112.862606338006245],"rgb":[0,0.266666666666666663,0.866666666666666696],"xyz":[0.151167876293497039,0.0935396570256772364,0.694177253411912498],"hpluv":[262.408492682931296,394.144185167595538,36.6570567010139499],"hsluv":[262.408492682931296,99.9999999999929088,36.6570567010139499]},"#0044ee":{"lch":[38.386911506645724,123.889384104134805,262.972536787865295],"luv":[38.386911506645724,-15.1572566165017264,-122.958680318078251],"rgb":[0,0.266666666666666663,0.933333333333333348],"xyz":[0.174980056559671776,0.103064529132147253,0.819588069480435721],"hpluv":[262.972536787865295,409.534269399062566,38.386911506645724],"hsluv":[262.972536787865295,99.9999999999931,38.386911506645724]},"#0044ff":{"lch":[40.1692504091911928,133.727629508879147,263.412926975584469],"luv":[40.1692504091911928,-15.3403008413028115,-132.844849595919101],"rgb":[0,0.266666666666666663,1],"xyz":[0.201151104969503169,0.113532948496079963,0.957422257772217566],"hpluv":[263.412926975584469,422.441664595501038,40.1692504091911928],"hsluv":[263.412926975584469,99.9999999999994174,40.1692504091911928]},"#55dd00":{"lch":[78.2526895057908121,112.425836873112019,123.034721453117925],"luv":[78.2526895057908121,-61.2886270790004488,94.2511166373683267],"rgb":[0.333333333333333315,0.866666666666666696,0],"xyz":[0.296015476495293473,0.536422872385076577,0.0879404415219252333],"hpluv":[123.034721453117925,210.800433631405241,78.2526895057908121],"hsluv":[123.034721453117925,100.000000000002288,78.2526895057908121]},"#55dd11":{"lch":[78.2763843013059102,111.485784004679431,123.297526334296066],"luv":[78.2763843013059102,-61.2042162992655108,93.1832814529020368],"rgb":[0.333333333333333315,0.866666666666666696,0.0666666666666666657],"xyz":[0.297027141994930577,0.536827538584931485,0.09326854648668087],"hpluv":[123.297526334296066,209.310421322213443,78.2763843013059102],"hsluv":[123.297526334296066,98.7516598856555561,78.2763843013059102]},"#55dd22":{"lch":[78.3202766586626353,109.761570808260174,123.793166282380056],"luv":[78.3202766586626353,-61.0490014413279738,91.2174426812846235],"rgb":[0.333333333333333315,0.866666666666666696,0.133333333333333331],"xyz":[0.298902500133407634,0.537577681840322286,0.103145432682660063],"hpluv":[123.793166282380056,206.571995072092733,78.3202766586626353],"hsluv":[123.793166282380056,96.4551350157602201,78.3202766586626353]},"#55dd33":{"lch":[78.3924559312840898,106.97461234521991,124.633900466047606],"luv":[78.3924559312840898,-60.7969536029841819,88.018737317724927],"rgb":[0.333333333333333315,0.866666666666666696,0.2],"xyz":[0.30199025086586534,0.538812782133305412,0.119407586540271199],"hpluv":[124.633900466047606,202.130538056106332,78.3924559312840898],"hsluv":[124.633900466047606,92.7228817840519355,78.3924559312840898]},"#55dd44":{"lch":[78.4964717161501255,103.064578059178857,125.904361390923313],"luv":[78.4964717161501255,-60.4405744101571756,83.4819993500804],"rgb":[0.333333333333333315,0.866666666666666696,0.266666666666666663],"xyz":[0.306448246110084255,0.540595980230993,0.142886361493157837],"hpluv":[125.904361390923313,195.867385876976442,78.4964717161501255],"hsluv":[125.904361390923313,87.4391970363123221,78.4964717161501255]},"#55dd55":{"lch":[78.635232286968062,98.0447483954765175,127.715012949239977],"luv":[78.635232286968062,-59.9773394353739,77.559599291037074],"rgb":[0.333333333333333315,0.866666666666666696,0.333333333333333315],"xyz":[0.31241066014944624,0.542980945846737728,0.174288408767131753],"hpluv":[127.715012949239977,187.771435495127037,78.635232286968062],"hsluv":[127.715012949239977,80.5594181605674891,78.635232286968062]},"#55dd66":{"lch":[78.8111684825228451,92.0067823672703469,130.218539636235505],"luv":[78.8111684825228451,-59.4092211255214551,70.2551951590567],"rgb":[0.333333333333333315,0.866666666666666696,0.4],"xyz":[0.319995655922954425,0.546014944156141,0.214236053174275715],"hpluv":[130.218539636235505,177.951388767985407,78.8111684825228451],"hsluv":[130.218539636235505,80.9267337864342693,78.8111684825228451]},"#55dd77":{"lch":[79.0263204832261863,85.1319563310668315,133.631202536406704],"luv":[79.0263204832261863,-58.7422260542947043,61.618186170487121],"rgb":[0.333333333333333315,0.866666666666666696,0.466666666666666674],"xyz":[0.329309668943156331,0.549740549364221898,0.263289855080673596],"hpluv":[133.631202536406704,166.66460441184762,79.0263204832261863],"hsluv":[133.631202536406704,81.3592233632428,79.0263204832261863]},"#55dd88":{"lch":[79.2823892178289,77.7115996221609322,138.259418470179128],"luv":[79.2823892178289,-57.9858175415186921,51.7371982221375],"rgb":[0.333333333333333315,0.866666666666666696,0.533333333333333326],"xyz":[0.340450086045100131,0.55419671620499944,0.321962718484245791],"hpluv":[138.259418470179128,154.371102046011828,79.2823892178289],"hsluv":[138.259418470179128,81.8514411788724,79.2823892178289]},"#55dd99":{"lch":[79.5807696492298504,70.1818875082800133,144.522564094970761],"luv":[79.5807696492298504,-57.1522092721799737,40.7323251181885624],"rgb":[0.333333333333333315,0.866666666666666696,0.6],"xyz":[0.353507050154172831,0.559419501848628653,0.390729396125363726],"hpluv":[144.522564094970761,141.828030979619143,79.5807696492298504],"hsluv":[144.522564094970761,82.3962440946128538,79.5807696492298504]},"#55ddaa":{"lch":[79.9225742847085,63.1747442044720913,152.933070337002903],"luv":[79.9225742847085,-56.2555676549498145,28.7464678372812266],"rgb":[0.333333333333333315,0.866666666666666696,0.66666666666666663],"xyz":[0.368564743119425386,0.56544257903472972,0.470033245742362271],"hpluv":[152.933070337002903,130.236824512138128,79.9225742847085],"hsluv":[152.933070337002903,82.9852754707380313,79.9225742847085]},"#55ddbb":{"lch":[80.3086513857730466,57.5612329714098649,163.927126105934775],"luv":[80.3086513857730466,-55.3111838467604926,15.9363886328987263],"rgb":[0.333333333333333315,0.866666666666666696,0.733333333333333282],"xyz":[0.385702335226762061,0.572297615877664478,0.560291230841004073],"hpluv":[163.927126105934775,121.406580229851471,80.3086513857730466],"hsluv":[163.927126105934775,83.6094665313934,80.3086513857730466]},"#55ddcc":{"lch":[80.7396004409482657,54.3905283694756534,177.403333860877041],"luv":[80.7396004409482657,-54.3346805898883076,2.46415533308082235],"rgb":[0.333333333333333315,0.866666666666666696,0.8],"xyz":[0.40499471067048376,0.580014566055153336,0.661897741511274229],"hpluv":[177.403333860877041,117.73427745544555,80.7396004409482657],"hsluv":[177.403333860877041,84.2595162876674664,80.7396004409482657]},"#55dddd":{"lch":[81.2157864208401605,54.5690893966631236,192.177050630061103],"luv":[81.2157864208401605,-53.3413100060750764,-11.5104371948595805],"rgb":[0.333333333333333315,0.866666666666666696,0.866666666666666696],"xyz":[0.426513036221117359,0.588621896275406842,0.775227589411280227],"hpluv":[192.177050630061103,121.625211000731653,81.2157864208401605],"hsluv":[192.177050630061103,84.9263164151063847,81.2157864208401605]},"#55ddee":{"lch":[81.73735371635685,58.3741450028570412,206.269517439458],"luv":[81.73735371635685,-52.3453816136692609,-25.8360567528002605],"rgb":[0.333333333333333315,0.866666666666666696,0.933333333333333348],"xyz":[0.450325216487292068,0.598146768381876859,0.90063840547980345],"hpluv":[206.269517439458,134.436687270459231,81.73735371635685],"hsluv":[206.269517439458,85.6012975649288421,81.73735371635685]},"#55ddff":{"lch":[82.3042402700550753,65.3293790133507599,218.171205050819623],"luv":[82.3042402700550753,-51.3598401525014268,-40.374429801293],"rgb":[0.333333333333333315,0.866666666666666696,1],"xyz":[0.476496264897123489,0.608615187745809583,1.0384725937715853],"hpluv":[218.171205050819623,156.046773818868189,82.3042402700550753],"hsluv":[218.171205050819623,99.9999999999958078,82.3042402700550753]},"#005500":{"lch":[30.6325595368381371,47.4104554868850059,127.715012949240474],"luv":[30.6325595368381371,-29.0026036892131067,37.5046699588244152],"rgb":[0,0.333333333333333315,0],"xyz":[0.0324835732820191528,0.0649671465640392215,0.0108278577606727468],"hpluv":[127.715012949240474,196.39488290021464,30.6325595368381371],"hsluv":[127.715012949240474,100.000000000002331,30.6325595368381371]},"#005511":{"lch":[30.7291805540017933,44.5531719728198325,130.030983014983661],"luv":[30.7291805540017933,-28.6566785608310113,34.1142185415534129],"rgb":[0,0.333333333333333315,0.0666666666666666657],"xyz":[0.033495238781656278,0.0653718127638940744,0.01615596272542838],"hpluv":[130.030983014983661,183.978458821492183,30.7291805540017933],"hsluv":[130.030983014983661,99.9999999999909335,30.7291805540017933]},"#005522":{"lch":[30.9072407208055395,39.7502752239143149,134.89425658266407],"luv":[30.9072407208055395,-28.0557665948475297,28.1595159964153758],"rgb":[0,0.333333333333333315,0.133333333333333331],"xyz":[0.0353705969201332932,0.0661219560192848888,0.0260328489214075726],"hpluv":[134.89425658266407,163.199653312489744,30.9072407208055395],"hsluv":[134.89425658266407,99.9999999999909903,30.9072407208055395]},"#005533":{"lch":[31.1975029455576802,33.2574057268159,144.773587953954916],"luv":[31.1975029455576802,-27.1672793055155033,19.1831689460880241],"rgb":[0,0.333333333333333315,0.2],"xyz":[0.0384583476525910337,0.067357056312268,0.0422950027790187227],"hpluv":[144.773587953954916,135.271984326190278,31.1975029455576802],"hsluv":[144.773587953954916,99.9999999999912177,31.1975029455576802]},"#005544":{"lch":[31.6103799108948778,27.1932751339722678,163.464109831123295],"luv":[31.6103799108948778,-26.0686058468900157,7.73963834500076331],"rgb":[0,0.333333333333333315,0.266666666666666663],"xyz":[0.0429163428968099142,0.0691402544099555816,0.0657737777319053613],"hpluv":[163.464109831123295,109.16191048912313,31.6103799108948778],"hsluv":[163.464109831123295,99.999999999991374,31.6103799108948778]},"#005555":{"lch":[32.1516370434520482,25.4370682812028797,192.17705063006116],"luv":[32.1516370434520482,-24.8647459548099441,-5.36552433088697445],"rgb":[0,0.333333333333333315,0.333333333333333315],"xyz":[0.0488787569361719063,0.0715252200257004145,0.0971758250058792628],"hpluv":[192.17705063006116,100.392967527320877,32.1516370434520482],"hsluv":[192.17705063006116,99.9999999999915,32.1516370434520482]},"#005566":{"lch":[32.8230722751799036,30.545644410021449,219.238547792689275],"luv":[32.8230722751799036,-23.6581848019048806,-19.3216636007977201],"rgb":[0,0.333333333333333315,0.4],"xyz":[0.0564637527096800845,0.074559218335103733,0.137123469413023225],"hpluv":[219.238547792689275,118.088984839520307,32.8230722751799036],"hsluv":[219.238547792689275,99.9999999999916298,32.8230722751799036]},"#005577":{"lch":[33.6230950493472065,40.3511971197610322,236.060106868306946],"luv":[33.6230950493472065,-22.5289967279924532,-33.4763112577822142],"rgb":[0,0.333333333333333315,0.466666666666666674],"xyz":[0.065777765729882,0.0782848235431845424,0.186177271319421134],"hpluv":[236.060106868306946,152.285327594300298,33.6230950493472065],"hsluv":[236.060106868306946,99.9999999999918,33.6230950493472065]},"#005588":{"lch":[34.5473308406039266,52.0529464564925703,245.569923252468897],"luv":[34.5473308406039266,-21.5281838547339461,-47.3924733973576764],"rgb":[0,0.333333333333333315,0.533333333333333326],"xyz":[0.076918182831825832,0.0827409903839621402,0.244850134722993301],"hpluv":[245.569923252468897,191.192188881903292,34.5473308406039266],"hsluv":[245.569923252468897,99.9999999999919709,34.5473308406039266]},"#005599":{"lch":[35.5892574919693772,64.2489447401961655,251.22324643469841],"luv":[35.5892574919693772,-20.6805523421639172,-60.8296116628390067],"rgb":[0,0.333333333333333315,0.6],"xyz":[0.0899751469408985316,0.0879637760275913,0.313616812364111208],"hpluv":[251.22324643469841,229.079590546614583,35.5892574919693772],"hsluv":[251.22324643469841,99.9999999999922125,35.5892574919693772]},"#0055aa":{"lch":[36.7408379507026,76.3552968047486189,254.821646708521541],"luv":[36.7408379507026,-19.9916927982920107,-73.6916791042243347],"rgb":[0,0.333333333333333315,0.66666666666666663],"xyz":[0.105032839906151088,0.0939868532136924,0.392920661981109809],"hpluv":[254.821646708521541,263.711724718685957,36.7408379507026],"hsluv":[254.821646708521541,99.9999999999921556,36.7408379507026]},"#0055bb":{"lch":[37.993106438468665,88.146943006458784,257.249085911334646],"luv":[37.993106438468665,-19.4551758320548949,-85.9731335635018],"rgb":[0,0.333333333333333315,0.733333333333333282],"xyz":[0.122170432013487734,0.100841890056627165,0.483178647079751555],"hpluv":[257.249085911334646,294.402692429224658,37.993106438468665],"hsluv":[257.249085911334646,99.9999999999924114,37.993106438468665]},"#0055cc":{"lch":[39.3366742314503384,99.5579220492412,258.963845190076711],"luv":[39.3366742314503384,-19.0582121518786707,-97.7167559446012888],"rgb":[0,0.333333333333333315,0.8],"xyz":[0.141462807457209461,0.108558840234115966,0.584785157750021711],"hpluv":[258.963845190076711,321.157087606315883,39.3366742314503384],"hsluv":[258.963845190076711,99.9999999999926,39.3366742314503384]},"#0055dd":{"lch":[40.7621365800243538,110.592821589198408,260.220233587680809],"luv":[40.7621365800243538,-18.7854624460211568,-108.985680654613518],"rgb":[0,0.333333333333333315,0.866666666666666696],"xyz":[0.162981133007843,0.1171661704543695,0.698115005650027709],"hpluv":[260.220233587680809,344.278042660470817,40.7621365800243538],"hsluv":[260.220233587680809,99.9999999999926672,40.7621365800243538]},"#0055ee":{"lch":[42.2603772648371105,121.285075365136905,261.168248695532611],"luv":[42.2603772648371105,-18.6213165580406681,-119.847052846418293],"rgb":[0,0.333333333333333315,0.933333333333333348],"xyz":[0.186793313274017742,0.126691042560839517,0.823525821718550932],"hpluv":[261.168248695532611,364.177675198016914,42.2603772648371105],"hsluv":[261.168248695532611,99.9999999999924256,42.2603772648371105]},"#0055ff":{"lch":[43.8227784910393,131.676969611306021,261.90102950371454],"luv":[43.8227784910393,-18.5511048350842884,-130.363648443170376],"rgb":[0,0.333333333333333315,1],"xyz":[0.212964361683849135,0.137159461924772241,0.961360010010332777],"hpluv":[261.90102950371454,381.28457852045068,43.8227784910393],"hsluv":[261.90102950371454,99.9999999999993321,43.8227784910393]},"#55ee00":{"lch":[83.4834241678481277,121.26988118033438,123.77813801339137],"luv":[83.4834241678481277,-67.423446821455,100.799121524975831],"rgb":[0.333333333333333315,0.933333333333333348,0],"xyz":[0.343194252835808289,0.630780425066107542,0.103666700302096418],"hpluv":[123.77813801339137,313.542875178701877,83.4834241678481277],"hsluv":[123.77813801339137,100.000000000002402,83.4834241678481277]},"#55ee11":{"lch":[83.5046935730824487,120.419265504422668,124.002811201886018],"luv":[83.5046935730824487,-67.3424968648776456,99.8287915414615412],"rgb":[0.333333333333333315,0.933333333333333348,0.0666666666666666657],"xyz":[0.344205918335445393,0.63118509126596245,0.108994805266852055],"hpluv":[124.002811201886018,311.80236567126093,83.5046935730824487],"hsluv":[124.002811201886018,98.9375412624106616,83.5046935730824487]},"#55ee22":{"lch":[83.5440973470955868,118.856748008926118,124.425313598414533],"luv":[83.5440973470955868,-67.1934622190367463,98.0406302625408728],"rgb":[0.333333333333333315,0.933333333333333348,0.133333333333333331],"xyz":[0.34608127647392245,0.631935234521353251,0.118871691462831247],"hpluv":[124.425313598414533,308.59848358059196,83.5440973470955868],"hsluv":[124.425313598414533,96.9807587800033133,83.5440973470955868]},"#55ee33":{"lch":[83.6089072227085524,116.32446068797897,125.138397832270286],"luv":[83.6089072227085524,-66.950941309724243,95.1259775880964469],"rgb":[0.333333333333333315,0.933333333333333348,0.2],"xyz":[0.349169027206380156,0.633170334814336377,0.135133845320442397],"hpluv":[125.138397832270286,303.387603747434184,83.6089072227085524],"hsluv":[125.138397832270286,93.7945051225822084,83.6089072227085524]},"#55ee44":{"lch":[83.7023291233000748,112.756808619009803,126.207644663357115],"luv":[83.7023291233000748,-66.6069499756988535,90.9813832873448547],"rgb":[0.333333333333333315,0.933333333333333348,0.266666666666666663],"xyz":[0.353627022450599071,0.634953532912023944,0.158612620273329036],"hpluv":[126.207644663357115,296.007020538140409,83.7023291233000748],"hsluv":[126.207644663357115,89.2707337544585,83.7023291233000748]},"#55ee55":{"lch":[83.8270046653184,108.148092962556504,127.715012949240077],"luv":[83.8270046653184,-66.1579022543843,85.5519840841642747],"rgb":[0.333333333333333315,0.933333333333333348,0.333333333333333315],"xyz":[0.359589436489961056,0.637338498527768693,0.190014667547302951],"hpluv":[127.715012949240077,286.404562223907249,83.8270046653184],"hsluv":[127.715012949240077,83.3573838846113091,83.8270046653184]},"#55ee66":{"lch":[83.985160091985378,102.554744038676162,129.769393513035965],"luv":[83.985160091985378,-65.6041880698479645,78.8261760618539853],"rgb":[0.333333333333333315,0.933333333333333348,0.4],"xyz":[0.367174432263469241,0.640372496837172,0.229962311954446885],"hpluv":[129.769393513035965,274.647728218817576,83.985160091985378],"hsluv":[129.769393513035965,83.6273111034757477,83.985160091985378]},"#55ee77":{"lch":[84.1786855608653752,96.1019099790829756,132.519661951802362],"luv":[84.1786855608653752,-64.9498200787083,70.8314758661090451],"rgb":[0.333333333333333315,0.933333333333333348,0.466666666666666674],"xyz":[0.376488445283671147,0.644098102045252863,0.279016113860844794],"hpluv":[132.519661951802362,260.948457539577589,84.1786855608653752],"hsluv":[132.519661951802362,83.9470254314832687,84.1786855608653752]},"#55ee88":{"lch":[84.4091822183787741,88.9952087097784,136.170997575445568],"luv":[84.4091822183787741,-64.2020140446184371,61.6299323860706],"rgb":[0.333333333333333315,0.933333333333333348,0.533333333333333326],"xyz":[0.387628862385614947,0.648554268886030405,0.337688977264417],"hpluv":[136.170997575445568,245.709397001158351,84.4091822183787741],"hsluv":[136.170997575445568,84.3134084109568533,84.4091822183787741]},"#55ee99":{"lch":[84.6779925165317877,81.540352796223317,141.002136712429774],"luv":[84.6779925165317877,-63.3706695007570531,51.3126434824633151],"rgb":[0.333333333333333315,0.933333333333333348,0.6],"xyz":[0.400685826494687647,0.653777054529659618,0.406455654905534869],"hpluv":[141.002136712429774,229.604367075154897,84.6779925165317877],"hsluv":[141.002136712429774,84.7220894550445394,84.6779925165317877]},"#55eeaa":{"lch":[84.9862212486181363,74.1734332109310373,147.37159021859884],"luv":[84.9862212486181363,-62.4677637576075426,39.9934580327855755],"rgb":[0.333333333333333315,0.933333333333333348,0.66666666666666663],"xyz":[0.415743519459940203,0.659800131715760685,0.48575950452253347],"hpluv":[147.37159021859884,213.709694911287,84.9862212486181363],"hsluv":[147.37159021859884,85.1677250765186358,84.9862212486181363]},"#55eebb":{"lch":[85.334751323756052,67.4984157699475418,155.676120933413],"luv":[85.334751323756052,-61.5066955643592337,27.8022037293077737],"rgb":[0.333333333333333315,0.933333333333333348,0.733333333333333282],"xyz":[0.432881111567276877,0.666655168558695443,0.576017489621175272],"hpluv":[155.676120933413,199.690784145783283,85.334751323756052],"hsluv":[155.676120933413,85.6443005177139298,85.334751323756052]},"#55eecc":{"lch":[85.7242566025865784,62.3040769944455,166.184583472908372],"luv":[85.7242566025865784,-60.5016239571924643,14.8778865660505755],"rgb":[0.333333333333333315,0.933333333333333348,0.8],"xyz":[0.452173487010998576,0.674372118736184301,0.677624000291445427],"hpluv":[166.184583472908372,189.979166061651426,85.7242566025865784],"hsluv":[166.184583472908372,86.1454332210543186,85.7242566025865784]},"#55eedd":{"lch":[86.1552131978466349,59.4824491826881427,178.687660418725557],"luv":[86.1552131978466349,-59.4668469392298462,1.36230535390821395],"rgb":[0.333333333333333315,0.933333333333333348,0.866666666666666696],"xyz":[0.473691812561632175,0.682979448956437807,0.790953848191451425],"hpluv":[178.687660418725557,187.703134777137279,86.1552131978466349],"hsluv":[178.687660418725557,86.6646578889921,86.1552131978466349]},"#55eeee":{"lch":[86.6279101052896578,59.7608483004272202,192.177050630061245],"luv":[86.6279101052896578,-58.4162567245265265,-12.6055519466972967],"rgb":[0.333333333333333315,0.933333333333333348,0.933333333333333348],"xyz":[0.497503992827806885,0.692504321062907824,0.916364664259974648],"hpluv":[192.177050630061245,196.025490067494644,86.6279101052896578],"hsluv":[192.177050630061245,87.195676441965972,86.6279101052896578]},"#55eeff":{"lch":[87.1424596935915901,63.3545065705612274,205.119112492248092],"luv":[87.1424596935915901,-57.3628964007582169,-26.8940814923128677],"rgb":[0.333333333333333315,0.933333333333333348,1],"xyz":[0.523675041237638306,0.702972740426840548,1.05419885255175649],"hpluv":[205.119112492248092,217.06231600799947,87.1424596935915901],"hsluv":[205.119112492248092,99.9999999999933,87.1424596935915901]},"#006600":{"lch":[36.9339903888407548,57.1632711650289735,127.71501294924046],"luv":[36.9339903888407548,-34.9687359497521086,45.2197642227726249],"rgb":[0,0.4,0],"xyz":[0.0475116309878656218,0.0950232619757325619,0.0158372103292880942],"hpluv":[127.71501294924046,196.394882900214554,36.9339903888407548],"hsluv":[127.71501294924046,100.000000000002331,36.9339903888407548]},"#006611":{"lch":[37.0090255636121412,54.7765813256580216,129.276595687178855],"luv":[37.0090255636121412,-34.6771211058740789,42.4024897091546933],"rgb":[0,0.4,0.0666666666666666657],"xyz":[0.04852329648750274,0.0954279281755874148,0.0211653152940437239],"hpluv":[129.276595687178855,187.813410896691579,37.0090255636121412],"hsluv":[129.276595687178855,99.9999999999908908,37.0090255636121412]},"#006622":{"lch":[37.1475616040544949,50.6324758020482761,132.428423847637788],"luv":[37.1475616040544949,-34.160143827310165,37.3728802682170453],"rgb":[0,0.4,0.133333333333333331],"xyz":[0.0503986546259797621,0.0961780714309782292,0.0310422014900229234],"hpluv":[132.428423847637788,172.957013965329963,37.1475616040544949],"hsluv":[132.428423847637788,99.9999999999909619,37.1475616040544949]},"#006633":{"lch":[37.3740982281225911,44.601943170857588,138.432874640413417],"luv":[37.3740982281225911,-33.3702331720845464,29.5932572160807972],"rgb":[0,0.4,0.2],"xyz":[0.0534864053584375,0.0974131717239613421,0.0473043553476340667],"hpluv":[138.432874640413417,151.43364776149042,37.3740982281225911],"hsluv":[138.432874640413417,99.9999999999910187,37.3740982281225911]},"#006644":{"lch":[37.6978110334583292,37.6830106217376226,149.139540405640531],"luv":[37.6978110334583292,-32.3478161181420845,19.3294615006434647],"rgb":[0,0.4,0.266666666666666663],"xyz":[0.0579444006026563832,0.099196369821648922,0.0707831303005207],"hpluv":[149.139540405640531,126.843666215367492,37.6978110334583292],"hsluv":[149.139540405640531,99.9999999999911893,37.6978110334583292]},"#006655":{"lch":[38.1247572916394191,31.9621551107412678,167.158861879927684],"luv":[38.1247572916394191,-31.1627826377188839,7.10354401671241],"rgb":[0,0.4,0.333333333333333315],"xyz":[0.0639068146420183752,0.101581335437393755,0.102185177574494607],"hpluv":[167.158861879927684,106.382034992292617,38.1247572916394191],"hsluv":[167.158861879927684,99.9999999999912461,38.1247572916394191]},"#006666":{"lch":[38.6583399620500714,30.584907136256998,192.177050630061132],"luv":[38.6583399620500714,-29.8967608054288689,-6.45137488264605441],"rgb":[0,0.4,0.4],"xyz":[0.0714918104155265466,0.104615333746797073,0.142132821981638569],"hpluv":[192.177050630061132,100.392967527320849,38.6583399620500714],"hsluv":[192.177050630061132,99.9999999999914877,38.6583399620500714]},"#006677":{"lch":[39.2996251720959648,35.3400629634721852,215.899751113488037],"luv":[39.2996251720959648,-28.6270125920824867,-20.7223116547099835],"rgb":[0,0.4,0.466666666666666674],"xyz":[0.080805823435728466,0.108340938954877883,0.191186623888036478],"hpluv":[215.899751113488037,114.108563264217921,39.2996251720959648],"hsluv":[215.899751113488037,99.999999999991644,39.2996251720959648]},"#006688":{"lch":[40.0476371065618721,44.619030030948764,232.088426656893603],"luv":[40.0476371065618721,-27.4159210327312195,-35.2026293738089109],"rgb":[0,0.4,0.533333333333333326],"xyz":[0.0919462405376723,0.112797105795655481,0.249859487291608645],"hpluv":[232.088426656893603,141.378234692038774,40.0476371065618721],"hsluv":[232.088426656893603,99.9999999999918145,40.0476371065618721]},"#006699":{"lch":[40.8996671875350728,56.0796471869528546,242.024131169727298],"luv":[40.8996671875350728,-26.3069429553173038,-49.5264735364712863],"rgb":[0,0.4,0.6],"xyz":[0.105003204646745008,0.118019891439284638,0.318626164932726552],"hpluv":[242.024131169727298,173.990215160848891,40.8996671875350728],"hsluv":[242.024131169727298,99.9999999999919,40.8996671875350728]},"#0066aa":{"lch":[41.8515997707465104,68.3303466488807345,248.245335088520562],"luv":[41.8515997707465104,-25.3254853434547229,-63.4638169768779861],"rgb":[0,0.4,0.66666666666666663],"xyz":[0.12006089761199755,0.124042968625385747,0.397930014549725153],"hpluv":[248.245335088520562,207.176688473106537,41.8515997707465104],"hsluv":[248.245335088520562,99.9999999999921,41.8515997707465104]},"#0066bb":{"lch":[42.8982420202673396,80.6980154219041452,252.339105133311591],"luv":[42.8982420202673396,-24.4823887435570384,-76.8946183711398],"rgb":[0,0.4,0.733333333333333282],"xyz":[0.137198489719334182,0.130898005468320505,0.488187999648366899],"hpluv":[252.339105133311591,238.705643004687346,42.8982420202673396],"hsluv":[252.339105133311591,99.9999999999922125,42.8982420202673396]},"#0066cc":{"lch":[44.0336413015701211,92.8728169416488356,255.165448618736946],"luv":[44.0336413015701211,-23.7781103155697018,-89.7772888680517696],"rgb":[0,0.4,0.8],"xyz":[0.156490865163055937,0.138614955645809307,0.589794510318637],"hpluv":[255.165448618736946,267.63526922347819,44.0336413015701211],"hsluv":[255.165448618736946,99.9999999999922835,44.0336413015701211]},"#0066dd":{"lch":[45.2513748624169807,104.723900430114114,257.197154574648096],"luv":[45.2513748624169807,-23.2064943358636171,-102.120291528843495],"rgb":[0,0.4,0.866666666666666696],"xyz":[0.17800919071368948,0.147222285866062841,0.703124358218643],"hpluv":[257.197154574648096,293.665789717253858,45.2513748624169807],"hsluv":[257.197154574648096,99.9999999999923119,45.2513748624169807]},"#0066ee":{"lch":[46.5448008930790422,116.210429262859975,258.70668283343889],"luv":[46.5448008930790422,-22.7576936505684415,-113.960305585607557],"rgb":[0,0.4,0.933333333333333348],"xyz":[0.201821370979864217,0.156747157972532858,0.828535174287166276],"hpluv":[258.70668283343889,316.82048544727013,46.5448008930790422],"hsluv":[258.70668283343889,99.9999999999923119,46.5448008930790422]},"#0066ff":{"lch":[47.9072652547968758,127.336469583599694,259.859032010401279],"luv":[47.9072652547968758,-22.4202120236612075,-125.347160234402949],"rgb":[0,0.4,1],"xyz":[0.227992419389695611,0.167215577336465582,0.966369362578948121],"hpluv":[259.859032010401279,337.280125749862,47.9072652547968758],"hsluv":[259.859032010401279,99.9999999999992326,47.9072652547968758]},"#55ff00":{"lch":[88.6611895097861691,129.940408372856581,124.363532639485271],"luv":[88.6611895097861691,-73.3437881830395213,107.262288168144963],"rgb":[0.333333333333333315,1,0],"xyz":[0.395046625265482121,0.734485169925456649,0.120950824445320529],"hpluv":[124.363532639485271,511.214684976108288,88.6611895097861691],"hsluv":[124.363532639485271,100.000000000002203,88.6611895097861691]},"#55ff11":{"lch":[88.6804070841335488,129.16615931328721,124.557188606571273],"luv":[88.6804070841335488,-73.2667318726085597,106.376137890284312],"rgb":[0.333333333333333315,1,0.0666666666666666657],"xyz":[0.396058290765119225,0.734889836125311557,0.126278929410076152],"hpluv":[124.557188606571273,509.111714190739917,88.6804070841335488],"hsluv":[124.557188606571273,99.999999999991374,88.6804070841335488]},"#55ff22":{"lch":[88.7160126920472862,127.742171235629925,124.920549061750862],"luv":[88.7160126920472862,-73.1247263453711867,104.741762009752222],"rgb":[0.333333333333333315,1,0.133333333333333331],"xyz":[0.397933648903596282,0.735639979380702358,0.136155815606055358],"hpluv":[124.920549061750862,505.235489858807625,88.7160126920472862],"hsluv":[124.920549061750862,99.9999999999912461,88.7160126920472862]},"#55ff33":{"lch":[88.7745841250638819,125.429409451765778,125.531442964179078],"luv":[88.7745841250638819,-72.893256299655377,102.074041467218606],"rgb":[0.333333333333333315,1,0.2],"xyz":[0.401021399636054,0.736875079673685485,0.152417969463666508],"hpluv":[125.531442964179078,498.916518871762833,88.7745841250638819],"hsluv":[125.531442964179078,99.9999999999915445,88.7745841250638819]},"#55ff44":{"lch":[88.8590323294941271,122.159967165607114,126.442013329478428],"luv":[88.8590323294941271,-72.5641116581323189,98.2726171279075658],"rgb":[0.333333333333333315,1,0.266666666666666663],"xyz":[0.405479394880272903,0.738658277771373,0.175896744416553147],"hpluv":[126.442013329478428,489.934204596741552,88.8590323294941271],"hsluv":[126.442013329478428,99.9999999999914735,88.8590323294941271]},"#55ff55":{"lch":[88.9717666926620154,117.915518658848484,127.715012949240119],"luv":[88.9717666926620154,-72.1329719647303,93.2786357968462],"rgb":[0.333333333333333315,1,0.333333333333333315],"xyz":[0.411441808919634888,0.7410432433871178,0.207298791690527062],"hpluv":[127.715012949240119,478.187207442594797,88.9717666926620154],"hsluv":[127.715012949240119,99.9999999999912461,88.9717666926620154]},"#55ff66":{"lch":[89.1148309932425,112.728028648536309,129.430986513959965],"luv":[89.1148309932425,-71.5990188667543919,87.0700232014633713],"rgb":[0.333333333333333315,1,0.4],"xyz":[0.419026804693143073,0.744077241696521119,0.247246436097671],"hpluv":[129.430986513959965,463.701047487447568,89.1148309932425],"hsluv":[129.430986513959965,99.999999999991374,89.1148309932425]},"#55ff77":{"lch":[89.2899761450384233,106.6837193332601,131.696695826109391],"luv":[89.2899761450384233,-70.9646547782272705,79.6582308552282825],"rgb":[0.333333333333333315,1,0.466666666666666674],"xyz":[0.428340817713345,0.747802846904602,0.296300238004068905],"hpluv":[131.696695826109391,446.653165807945641,89.2899761450384233],"hsluv":[131.696695826109391,99.9999999999911466,89.2899761450384233]},"#55ff88":{"lch":[89.4987035327786344,99.9302046144725722,134.655503696120093],"luv":[89.4987035327786344,-70.2351927280585784,71.0849034376696807],"rgb":[0.333333333333333315,1,0.533333333333333326],"xyz":[0.439481234815288779,0.752259013745379512,0.354973101407641101],"hpluv":[134.655503696120093,427.420708471833962,89.4987035327786344],"hsluv":[134.655503696120093,99.9999999999910472,89.4987035327786344]},"#55ff99":{"lch":[89.7422928839939544,92.6881300553494185,138.499225093055145],"luv":[89.7422928839939544,-69.4184746025382395,61.4179520744067275],"rgb":[0.333333333333333315,1,0.6],"xyz":[0.452538198924361534,0.757481799389008725,0.423739779048759],"hpluv":[138.499225093055145,406.664135605650245,89.7422928839939544],"hsluv":[138.499225093055145,99.9999999999909193,89.7422928839939544]},"#55ffaa":{"lch":[90.021821419032733,85.2692799565717081,143.477548510033301],"luv":[90.021821419032733,-68.524415632830582,50.7469660816416095],"rgb":[0.333333333333333315,1,0.66666666666666663],"xyz":[0.467595891889614035,0.763504876575109792,0.503043628665757581],"hpluv":[143.477548510033301,385.467603776639692,90.021821419032733],"hsluv":[143.477548510033301,99.9999999999908908,90.021821419032733]},"#55ffbb":{"lch":[90.3381779071049635,78.1017696608261929,149.892156464581973],"luv":[90.3381779071049635,-67.5644942943643514,39.178125719584358],"rgb":[0.333333333333333315,1,0.733333333333333282],"xyz":[0.484733483996950709,0.770359913418044551,0.593301613764399383],"hpluv":[149.892156464581973,365.560319764238727,90.3381779071049635],"hsluv":[149.892156464581973,99.9999999999906,90.3381779071049635]},"#55ffcc":{"lch":[90.6920737330737836,71.7555158590460849,158.04408297895796],"luv":[90.6920737330737836,-66.5512174426729217,26.828893251416094],"rgb":[0.333333333333333315,1,0.8],"xyz":[0.504025859440672463,0.778076863595533408,0.694908124434669539],"hpluv":[158.04408297895796,349.620992563925881,90.6920737330737836],"hsluv":[158.04408297895796,99.9999999999905214,90.6920737330737836]},"#55ffdd":{"lch":[91.0840522607878142,66.9403052018893874,168.083008151042208],"luv":[91.0840522607878142,-65.4975936461766,13.8227959213187273],"rgb":[0.333333333333333315,1,0.866666666666666696],"xyz":[0.525544184991306,0.786684193815786914,0.808237972334675536],"hpluv":[168.083008151042208,341.570927955438208,91.0840522607878142],"hsluv":[168.083008151042208,99.9999999999901092,91.0840522607878142]},"#55ffee":{"lch":[91.5144973031429,64.4172738793593,179.746868091755],"luv":[91.5144973031429,-64.4166452130874347,0.284593639433804613],"rgb":[0.333333333333333315,1,0.933333333333333348],"xyz":[0.549356365257480661,0.796209065922256931,0.933648788403198759],"hpluv":[179.746868091755,346.559914030924404,91.5144973031429],"hsluv":[179.746868091755,99.9999999999898108,91.5144973031429]},"#55ffff":{"lch":[91.9836412143362,64.7784688708661918,192.177050630061103],"luv":[91.9836412143362,-63.3209831419883,-13.663935128132529],"rgb":[0.333333333333333315,1,1],"xyz":[0.575527413667312082,0.806677485286189655,1.07148297669498049],"hpluv":[192.177050630061103,370.276433987554753,91.9836412143362],"hsluv":[192.177050630061103,99.9999999999890719,91.9836412143362]},"#007700":{"lch":[43.052730924646589,66.6333343982289534,127.715012949240503],"luv":[43.052730924646589,-40.7618988300426395,52.7111834129681611],"rgb":[0,0.466666666666666674,0],"xyz":[0.0659653690412832505,0.131930738082568333,0.0219884563470937981],"hpluv":[127.715012949240503,196.394882900214441,43.052730924646589],"hsluv":[127.715012949240503,100.000000000002217,43.052730924646589]},"#007711":{"lch":[43.1130460407029,64.6129906803504497,128.830381027920708],"luv":[43.1130460407029,-40.513441406878222,50.333881531534],"rgb":[0,0.466666666666666674,0.0666666666666666657],"xyz":[0.0669770345409203688,0.132335404282423186,0.0273165613118494313],"hpluv":[128.830381027920708,190.173702516526191,43.1130460407029],"hsluv":[128.830381027920708,99.9999999999908908,43.1130460407029]},"#007722":{"lch":[43.2245297597171856,61.038201507507992,131.028383581415682],"luv":[43.2245297597171856,-40.0674788501528809,46.0462721820529381],"rgb":[0,0.466666666666666674,0.133333333333333331],"xyz":[0.0688523926793974,0.133085547537814014,0.0371934475078286239],"hpluv":[131.028383581415682,179.188765673473426,43.2245297597171856],"hsluv":[131.028383581415682,99.9999999999909193,43.2245297597171856]},"#007733":{"lch":[43.4071769639209251,55.6324991773261601,135.049443606961],"luv":[43.4071769639209251,-39.3720497464739694,39.3041558041433419],"rgb":[0,0.466666666666666674,0.2],"xyz":[0.0719401434118551314,0.134320647830797113,0.0534556013654397671],"hpluv":[135.049443606961,162.632131787412106,43.4071769639209251],"hsluv":[135.049443606961,99.9999999999909193,43.4071769639209251]},"#007744":{"lch":[43.6689123670523855,48.8909209361139787,141.845848120172377],"luv":[43.6689123670523855,-38.4454486392046704,30.2038015639029105],"rgb":[0,0.466666666666666674,0.266666666666666663],"xyz":[0.076398138656074,0.136103845928484707,0.0769343763183264],"hpluv":[141.845848120172377,142.067640978907804,43.6689123670523855],"hsluv":[141.845848120172377,99.9999999999910614,43.6689123670523855]},"#007755":{"lch":[44.0154249216106,41.9153980271179,152.953344682219807],"luv":[44.0154249216106,-37.3313854656975224,19.0595973457790286],"rgb":[0,0.466666666666666674,0.333333333333333315],"xyz":[0.082360552695436,0.13848881154422954,0.108336423592300321],"hpluv":[152.953344682219807,120.839250305189026,44.0154249216106],"hsluv":[152.953344682219807,99.9999999999912461,44.0154249216106]},"#007766":{"lch":[44.4505333250062549,36.6388362985735725,170.062665906075836],"luv":[44.4505333250062549,-36.0891470448365865,6.32279929223085357],"rgb":[0,0.466666666666666674,0.4],"xyz":[0.0899455484689441753,0.141522809853632831,0.148284067999444269],"hpluv":[170.062665906075836,104.593337643625588,44.4505333250062549],"hsluv":[170.062665906075836,99.9999999999913314,44.4505333250062549]},"#007777":{"lch":[44.9764013416840669,35.58350047386471,192.17705063006116],"luv":[44.9764013416840669,-34.7828880940388601,-7.50574458738768],"rgb":[0,0.466666666666666674,0.466666666666666674],"xyz":[0.0992595614891461,0.145248415061713654,0.197337869905842178],"hpluv":[192.17705063006116,100.392967527320835,44.9764013416840669],"hsluv":[192.17705063006116,99.9999999999914451,44.9764013416840669]},"#007788":{"lch":[45.5937085159301603,40.0276538709377,213.25546015720218],"luv":[45.5937085159301603,-33.4724811425817,-21.9500815618326577],"rgb":[0,0.466666666666666674,0.533333333333333326],"xyz":[0.110399978591089923,0.149704581902491252,0.256010733309414373],"hpluv":[213.25546015720218,111.402399127386914,45.5937085159301603],"hsluv":[213.25546015720218,99.9999999999916156,45.5937085159301603]},"#007799":{"lch":[46.3018156057360244,48.7595612734022907,228.659125647543163],"luv":[46.3018156057360244,-32.2075160625452597,-36.6083422822662357],"rgb":[0,0.466666666666666674,0.6],"xyz":[0.123456942700162636,0.154927367546120409,0.324777410950532253],"hpluv":[228.659125647543163,133.62911578541167,46.3018156057360244],"hsluv":[228.659125647543163,99.9999999999917577,46.3018156057360244]},"#0077aa":{"lch":[47.0989379645613795,59.8445186957143,238.773531847525192],"luv":[47.0989379645613795,-31.0247207616125031,-51.1745358511991597],"rgb":[0,0.466666666666666674,0.66666666666666663],"xyz":[0.138514635665415164,0.160950444732221504,0.404081260567530853],"hpluv":[238.773531847525192,161.232500989130415,47.0989379645613795],"hsluv":[238.773531847525192,99.999999999991914,47.0989379645613795]},"#0077bb":{"lch":[47.9823278818304146,71.9659744020705432,245.408717039049918],"luv":[47.9823278818304146,-29.9480972873728,-65.4386196408934495],"rgb":[0,0.466666666666666674,0.733333333333333282],"xyz":[0.155652227772751839,0.167805481575156262,0.4943392456661726],"hpluv":[245.408717039049918,190.32034768447943,47.9823278818304146],"hsluv":[245.408717039049918,99.9999999999920561,47.9823278818304146]},"#0077cc":{"lch":[48.9484610491917067,84.4081580704908276,249.9122747909542],"luv":[48.9484610491917067,-28.9906993044602252,-79.2734287305105454],"rgb":[0,0.466666666666666674,0.8],"xyz":[0.174944603216473565,0.175522431752645064,0.595945756336442756],"hpluv":[249.9122747909542,218.818838178067409,48.9484610491917067],"hsluv":[249.9122747909542,99.9999999999922125,48.9484610491917067]},"#0077dd":{"lch":[49.9932200675849,96.8017840095652389,253.089738624096071],"luv":[49.9932200675849,-28.15707849035525,-92.6162206005108715],"rgb":[0,0.466666666666666674,0.866666666666666696],"xyz":[0.196462928767107109,0.184129761972898598,0.709275604236448753],"hpluv":[253.089738624096071,245.70363248193695,49.9932200675849],"hsluv":[253.089738624096071,99.9999999999921272,49.9932200675849]},"#0077ee":{"lch":[51.1120678627821547,108.963279527823246,255.411176145550684],"luv":[51.1120678627821547,-27.4457353077348785,-105.450120430828804],"rgb":[0,0.466666666666666674,0.933333333333333348],"xyz":[0.220275109033281846,0.193654634079368643,0.834686420304972],"hpluv":[255.411176145550684,270.517920771775039,51.1120678627821547],"hsluv":[255.411176145550684,99.9999999999922551,51.1120678627821547]},"#0077ff":{"lch":[52.300205122294,120.810007187166491,257.158195690943],"luv":[52.300205122294,-26.851223719183885,-117.788240590245493],"rgb":[0,0.466666666666666674,1],"xyz":[0.24644615744311324,0.204123053443301339,0.972520608596753822],"hpluv":[257.158195690943,293.11554041762389,52.300205122294],"hsluv":[257.158195690943,99.9999999999991189,52.300205122294]},"#008800":{"lch":[49.0166039301270473,75.8637069146273291,127.71501294924046],"luv":[49.0166039301270473,-46.4084346679225348,60.0129920808956214],"rgb":[0,0.533333333333333326,0],"xyz":[0.0880377387662537,0.176075477532509878,0.0293459129220837445],"hpluv":[127.71501294924046,196.394882900214583,49.0166039301270473],"hsluv":[127.71501294924046,100.000000000002359,49.0166039301270473]},"#008811":{"lch":[49.066374048408079,74.1307167522113133,128.546257021813432],"luv":[49.066374048408079,-46.1942790787678064,57.9780281364371461],"rgb":[0,0.533333333333333326,0.0666666666666666657],"xyz":[0.0890494042658908219,0.17648014373236473,0.0346740178868393742],"hpluv":[128.546257021813432,191.713881645209739,49.066374048408079],"hsluv":[128.546257021813432,99.9999999999908908,49.066374048408079]},"#008822":{"lch":[49.1584337135343503,71.0276132120671,130.159311596065152],"luv":[49.1584337135343503,-45.8067815452400779,54.2831521106656112],"rgb":[0,0.533333333333333326,0.133333333333333331],"xyz":[0.090924762404367851,0.177230286987755559,0.0445509040828185737],"hpluv":[130.159311596065152,183.344763498744726,49.1584337135343503],"hsluv":[130.159311596065152,99.9999999999909335,49.1584337135343503]},"#008833":{"lch":[49.3094443496477197,66.226384742663825,133.033255321350083],"luv":[49.3094443496477197,-45.1943905199784481,48.4086882864121648],"rgb":[0,0.533333333333333326,0.2],"xyz":[0.0940125131368255845,0.178465387280738658,0.060813057940429717],"hpluv":[133.033255321350083,170.427732437953466,49.3094443496477197],"hsluv":[133.033255321350083,99.9999999999909903,49.3094443496477197]},"#008844":{"lch":[49.5262444349700388,59.9709063982634589,137.708745518338219],"luv":[49.5262444349700388,-44.3625073014275202,40.3543995143041],"rgb":[0,0.533333333333333326,0.266666666666666663],"xyz":[0.0984705083810444581,0.180248585378426252,0.0842918328933163485],"hpluv":[137.708745518338219,153.654237765673173,49.5262444349700388],"hsluv":[137.708745518338219,99.9999999999910756,49.5262444349700388]},"#008855":{"lch":[49.8139833497656355,52.876539169604392,145.043769270071607],"luv":[49.8139833497656355,-43.3370811793054074,30.2956397756013871],"rgb":[0,0.533333333333333326,0.333333333333333315],"xyz":[0.104432922420406457,0.182633550994171084,0.115693880167290264],"hpluv":[145.043769270071607,134.694876863850226,49.8139833497656355],"hsluv":[145.043769270071607,99.9999999999911893,49.8139833497656355]},"#008866":{"lch":[50.1764284055384593,46.0546718070978613,156.264738854980266],"luv":[50.1764284055384593,-42.1591397878491918,18.5375221539472825],"rgb":[0,0.533333333333333326,0.4],"xyz":[0.112017918193914628,0.185667549303574375,0.155641524574434226],"hpluv":[156.264738854980266,116.469784961641182,50.1764284055384593],"hsluv":[156.264738854980266,99.9999999999912461,50.1764284055384593]},"#008877":{"lch":[50.6161324463586766,41.2412500498738694,172.391379993232761],"luv":[50.6161324463586766,-40.8781468825216336,5.46056893805106114],"rgb":[0,0.533333333333333326,0.466666666666666674],"xyz":[0.121331931214116548,0.189393154511655198,0.204695326480832135],"hpluv":[172.391379993232761,103.390869865470918,50.6161324463586766],"hsluv":[172.391379993232761,99.9999999999913456,50.6161324463586766]},"#008888":{"lch":[51.1345503085294695,40.4555776108317602,192.177050630061132],"luv":[51.1345503085294695,-39.545345738280993,-8.53342781453345],"rgb":[0,0.533333333333333326,0.533333333333333326],"xyz":[0.132472348316060362,0.193849321352432796,0.263368189884404302],"hpluv":[192.177050630061132,100.392967527320849,51.1345503085294695],"hsluv":[192.177050630061132,99.9999999999914877,51.1345503085294695]},"#008899":{"lch":[51.7321394091786715,44.6308971675799881,211.11913642158629],"luv":[51.7321394091786715,-38.208266400248,-23.066108485628412],"rgb":[0,0.533333333333333326,0.6],"xyz":[0.145529312425133089,0.199072106996061954,0.332134867525522237],"hpluv":[211.11913642158629,109.474886689832829,51.7321394091786715],"hsluv":[211.11913642158629,99.999999999991573,51.7321394091786715]},"#0088aa":{"lch":[52.4084594351014914,52.8385448128107598,225.694192047300788],"luv":[52.4084594351014914,-36.9070805124816346,-37.8124215831333572],"rgb":[0,0.533333333333333326,0.66666666666666663],"xyz":[0.160587005390385618,0.205095184182163048,0.411438717142520782],"hpluv":[225.694192047300788,127.934825585488483,52.4084594351014914],"hsluv":[225.694192047300788,99.9999999999917,52.4084594351014914]},"#0088bb":{"lch":[53.1622766119302952,63.4852929684367,235.812153399491365],"luv":[53.1622766119302952,-35.672889398211332,-52.5150205681309856],"rgb":[0,0.533333333333333326,0.733333333333333282],"xyz":[0.177724597497722292,0.211950221025097807,0.501696702241162584],"hpluv":[235.812153399491365,151.533580059798538,53.1622766119302952],"hsluv":[235.812153399491365,99.9999999999918572,53.1622766119302952]},"#0088cc":{"lch":[53.9916730817088961,75.3609801883338406,242.731381598031476],"luv":[53.9916730817088961,-34.5275961267233455,-66.9859868976812578],"rgb":[0,0.533333333333333326,0.8],"xyz":[0.197016972941444019,0.219667171202586609,0.60330321291143274],"hpluv":[242.731381598031476,177.116523654060018,53.9916730817088961],"hsluv":[242.731381598031476,99.9999999999919282,53.9916730817088961]},"#0088dd":{"lch":[54.894159312243417,87.7409205251226,247.565131731451658],"luv":[54.894159312243417,-33.4848266090853,-81.1001573460580545],"rgb":[0,0.533333333333333326,0.866666666666666696],"xyz":[0.218535298492077562,0.228274501422840143,0.716633060811438738],"hpluv":[247.565131731451658,202.822146488853946,54.894159312243417],"hsluv":[247.565131731451658,99.9999999999921414,54.894159312243417]},"#0088ee":{"lch":[55.8667862779657725,100.217939448335898,251.046181944553609],"luv":[55.8667862779657725,-32.551381555669181,-94.7841914355319091],"rgb":[0,0.533333333333333326,0.933333333333333348],"xyz":[0.242347478758252299,0.237799373529310187,0.842043876879962],"hpluv":[251.046181944553609,227.630842720065772,55.8667862779657725],"hsluv":[251.046181944553609,99.9999999999923261,55.8667862779657725]},"#0088ff":{"lch":[56.9062538959811803,112.568622459607909,253.628629682131134],"luv":[56.9062538959811803,-31.728824885135996,-108.00452043253614],"rgb":[0,0.533333333333333326,1],"xyz":[0.268518527168083665,0.248267792893242883,0.979878065171743806],"hpluv":[253.628629682131134,251.013269675548315,56.9062538959811803],"hsluv":[253.628629682131134,99.9999999999989,56.9062538959811803]},"#009900":{"lch":[54.8465256129575778,84.8867610313905629,127.71501294924046],"luv":[54.8465256129575778,-51.9281467214630865,67.1507987776363677],"rgb":[0,0.6,0],"xyz":[0.11390733921872119,0.227814678437445572,0.037969113072906],"hpluv":[127.71501294924046,196.394882900214611,54.8465256129575778],"hsluv":[127.71501294924046,100.000000000002359,54.8465256129575778]},"#009911":{"lch":[54.8884489227774139,83.3822613920475533,128.355135015114286],"luv":[54.8884489227774139,-51.7415219578455918,65.3866685214771195],"rgb":[0,0.6,0.0666666666666666657],"xyz":[0.114919004718358309,0.228219344637300425,0.0432972180376616292],"hpluv":[128.355135015114286,192.766711025891595,54.8884489227774139],"hsluv":[128.355135015114286,99.9999999999908908,54.8884489227774139]},"#009922":{"lch":[54.9660326693047665,80.6666974094322882,129.584419925030318],"luv":[54.9660326693047665,-51.4019848556742147,62.168738316310943],"rgb":[0,0.6,0.133333333333333331],"xyz":[0.116794362856835338,0.228969487892691254,0.0531741042336408287],"hpluv":[129.584419925030318,186.225526863887183,54.9660326693047665],"hsluv":[129.584419925030318,99.9999999999908766,54.9660326693047665]},"#009933":{"lch":[55.0934048637144826,76.4021664793699529,131.735569901926],"luv":[55.0934048637144826,-50.8604445821364948,57.0132109221080725],"rgb":[0,0.6,0.2],"xyz":[0.119882113589293071,0.230204588185674353,0.0694362580912519789],"hpluv":[131.735569901926,175.972736191316358,55.0934048637144826],"hsluv":[131.735569901926,99.9999999999909903,55.0934048637144826]},"#009944":{"lch":[55.2764995203901321,70.6973886175228614,135.142608572152881],"luv":[55.2764995203901321,-50.1148739946869739,49.8660221176072795],"rgb":[0,0.6,0.266666666666666663],"xyz":[0.124340108833511945,0.231987786283361946,0.0929150330441386174],"hpluv":[135.142608572152881,162.293888564466016,55.2764995203901321],"hsluv":[135.142608572152881,99.9999999999910472,55.2764995203901321]},"#009955":{"lch":[55.5199214835444792,63.9084670453141044,140.311824754994205],"luv":[55.5199214835444792,-49.1795700812718,40.8125231602173173],"rgb":[0,0.6,0.333333333333333315],"xyz":[0.130302522872873944,0.234372751899106779,0.124317080318112519],"hpluv":[140.311824754994205,146.065915008593578,55.5199214835444792],"hsluv":[140.311824754994205,99.999999999991033,55.5199214835444792]},"#009966":{"lch":[55.8272121342916847,56.7002292022714229,147.995210176352344],"luv":[55.8272121342916847,-48.0820094218291771,30.0505634148387166],"rgb":[0,0.6,0.4],"xyz":[0.137887518646382129,0.23740675020851007,0.164264724725256495],"hpluv":[147.995210176352344,128.877825594911201,55.8272121342916847],"hsluv":[147.995210176352344,99.9999999999911893,55.8272121342916847]},"#009977":{"lch":[56.2009899164422393,50.1460500452165832,159.138923639260469],"luv":[56.2009899164422393,-46.85880632633,17.8571723631952],"rgb":[0,0.6,0.466666666666666674],"xyz":[0.147201531666584035,0.241132355416590893,0.213318526631654404],"hpluv":[159.138923639260469,113.222330796973324,56.2009899164422393],"hsluv":[159.138923639260469,99.9999999999912887,56.2009899164422393]},"#009988":{"lch":[56.6430401241061077,45.7780774967248476,174.293450088826631],"luv":[56.6430401241061077,-45.5512109338885409,4.55187453172192669],"rgb":[0,0.6,0.533333333333333326],"xyz":[0.158341948768527863,0.245588522257368491,0.271991390035226543],"hpluv":[174.293450088826631,102.553461073272217,56.6430401241061077],"hsluv":[174.293450088826631,99.9999999999913456,56.6430401241061077]},"#009999":{"lch":[57.1543844255405133,45.2182256610376498,192.177050630061132],"luv":[57.1543844255405133,-44.2008363998384866,-9.53802880511673301],"rgb":[0,0.6,0.6],"xyz":[0.171398912877600562,0.250811307900997649,0.340758067676344478],"hpluv":[192.177050630061132,100.392967527320849,57.1543844255405133],"hsluv":[192.177050630061132,99.9999999999914877,57.1543844255405133]},"#0099aa":{"lch":[57.7353441317496,49.1617433665336065,209.362441333496832],"luv":[57.7353441317496,-42.8462007667450138,-24.1056028900479831],"rgb":[0,0.6,0.66666666666666663],"xyz":[0.186456605842853118,0.256834385087098771,0.420061917293343079],"hpluv":[209.362441333496832,108.050017888493571,57.7353441317496],"hsluv":[209.362441333496832,99.9999999999915872,57.7353441317496]},"#0099bb":{"lch":[58.3856036871333686,56.8846197873520509,223.121526867409756],"luv":[58.3856036871333686,-41.5203973647636531,-38.8833713947714656],"rgb":[0,0.6,0.733333333333333282],"xyz":[0.203594197950189765,0.26368942193003353,0.51031990239198477],"hpluv":[223.121526867409756,123.631292939903787,58.3856036871333686],"hsluv":[223.121526867409756,99.9999999999917151,58.3856036871333686]},"#0099cc":{"lch":[59.1042769117952531,67.0724902608298237,233.123241992210865],"luv":[59.1042769117952531,-40.2499186561976856,-53.6531732328907225],"rgb":[0,0.6,0.8],"xyz":[0.222886573393911491,0.271406372107522331,0.611926413062254926],"hpluv":[233.123241992210865,144.000781521109104,59.1042769117952531],"hsluv":[233.123241992210865,99.9999999999918572,59.1042769117952531]},"#0099dd":{"lch":[59.889976295668248,78.6325369214165448,240.220044999287609],"luv":[59.889976295668248,-39.0544489896310338,-68.2482664747921888],"rgb":[0,0.6,0.866666666666666696],"xyz":[0.244404898944545035,0.280013702327775837,0.725256260962260924],"hpluv":[240.220044999287609,166.60478591483178,59.889976295668248],"hsluv":[240.220044999287609,99.9999999999918288,59.889976295668248]},"#0099ee":{"lch":[60.7408843834734853,90.8542474807105549,245.312254820906361],"luv":[60.7408843834734853,-37.9473430473261288,-82.5499451298106521],"rgb":[0,0.6,0.933333333333333348],"xyz":[0.2682170792107198,0.289538574434245854,0.850667077030784147],"hpluv":[245.312254820906361,189.803165481490907,60.7408843834734853],"hsluv":[245.312254820906361,99.9999999999919424,60.7408843834734853]},"#0099ff":{"lch":[61.6548256470178444,103.309645725501895,249.051296659176671],"luv":[61.6548256470178444,-36.936501733242423,-96.4809708680364082],"rgb":[0,0.6,1],"xyz":[0.294388127620551165,0.300006993798178578,0.988501265322566],"hpluv":[249.051296659176671,212.624411607996194,61.6548256470178444],"hsluv":[249.051296659176671,99.9999999999986926,61.6548256470178444]},"#44aa00":{"lch":[61.6346835386869714,87.655425968627469,122.331376925101353],"luv":[61.6346835386869714,-46.8794507107122556,74.0661245293922],"rgb":[0.266666666666666663,0.66666666666666663,0],"xyz":[0.167579386406696784,0.29977360690638849,0.0490310792412290836],"hpluv":[122.331376925101353,180.464989524422549,61.6346835386869714],"hsluv":[122.331376925101353,100.00000000000226,61.6346835386869714]},"#44aa11":{"lch":[61.6696010074672927,86.3319887480293175,122.80087722620695],"luv":[61.6696010074672927,-46.7678581574140253,72.5670705248452492],"rgb":[0.266666666666666663,0.66666666666666663,0.0666666666666666657],"xyz":[0.168591051906333916,0.300178273106243343,0.0543591842059847133],"hpluv":[122.80087722620695,177.639660035048053,61.6696010074672927],"hsluv":[122.80087722620695,97.7717273205757778,61.6696010074672927]},"#44aa22":{"lch":[61.7342457720645541,83.9245562706402097,123.699102784065559],"luv":[61.7342457720645541,-46.5639790081192,69.8221097085679],"rgb":[0.266666666666666663,0.66666666666666663,0.133333333333333331],"xyz":[0.170466410044810918,0.300928416361634143,0.0642360704019639128],"hpluv":[123.699102784065559,172.505216938407472,61.7342457720645541],"hsluv":[123.699102784065559,93.6968530578778882,61.7342457720645541]},"#44aa33":{"lch":[61.8404488118369784,80.0901636841586111,125.261260913590505],"luv":[61.8404488118369784,-46.2365065380172098,65.3958697634278],"rgb":[0.266666666666666663,0.66666666666666663,0.2],"xyz":[0.173554160777268651,0.30216351665461727,0.080498224259575063],"hpluv":[125.261260913590505,164.340980941234676,61.8404488118369784],"hsluv":[125.261260913590505,87.1410828818075913,61.8404488118369784]},"#44aa44":{"lch":[61.9932720073472,74.8379874444649573,127.71501294923992],"luv":[61.9932720073472,-45.7809668449718501,59.2015830825281526],"rgb":[0.266666666666666663,0.66666666666666663,0.266666666666666663],"xyz":[0.178012156021487539,0.303946714752304836,0.103976999212461702],"hpluv":[127.71501294923992,153.185220958209158,61.9932720073472],"hsluv":[127.71501294923992,77.998580561819125,61.9932720073472]},"#44aa55":{"lch":[62.1967362447927883,68.3415808764166854,131.40733952388851],"luv":[62.1967362447927883,-45.2016647888952292,51.2579864704043118],"rgb":[0.266666666666666663,0.66666666666666663,0.333333333333333315],"xyz":[0.183974570060849552,0.306331680368049697,0.135379046486435617],"hpluv":[131.40733952388851,139.430168232009549,62.1967362447927883],"hsluv":[131.40733952388851,78.575415606985473,62.1967362447927883]},"#44aa66":{"lch":[62.4540496972210377,60.9745995384144,136.885019691281769],"luv":[62.4540496972210377,-44.510458035487396,41.6739836629655684],"rgb":[0.266666666666666663,0.66666666666666663,0.4],"xyz":[0.191559565834357709,0.309365678677453,0.175326690893579551],"hpluv":[136.885019691281769,123.88755407265441,62.4540496972210377],"hsluv":[136.885019691281769,79.2669246679894854,62.4540496972210377]},"#44aa77":{"lch":[62.7677273349888196,53.3862032124370103,144.988299459670287],"luv":[62.7677273349888196,-43.7251633677153,30.629998072253084],"rgb":[0.266666666666666663,0.66666666666666663,0.466666666666666674],"xyz":[0.200873578854559642,0.313091283885533811,0.22438049279997746],"hpluv":[144.988299459670287,107.927460302012818,62.7677273349888196],"hsluv":[144.988299459670287,80.0573307147673603,62.7677273349888196]},"#44aa88":{"lch":[63.1396635168947142,46.6323085826041606,156.819414130132799],"luv":[63.1396635168947142,-42.8676249510766354,18.3558964585511255],"rgb":[0.266666666666666663,0.66666666666666663,0.533333333333333326],"xyz":[0.212013995956503443,0.317547450726311409,0.283053356203549655],"hpluv":[156.819414130132799,93.7182088199909,63.1396635168947142],"hsluv":[156.819414130132799,80.9270306732118456,63.1396635168947142]},"#44aa99":{"lch":[63.5711832083111,42.2713825005608328,173.059905511526438],"luv":[63.5711832083111,-41.9616613239929848,5.10771548142927578],"rgb":[0.266666666666666663,0.66666666666666663,0.6],"xyz":[0.22507096006557617,0.322770236369940566,0.351820033844667535],"hpluv":[173.059905511526438,84.3772726773670598,63.5711832083111],"hsluv":[173.059905511526438,81.8544924931781281,63.5711832083111]},"#44aaaa":{"lch":[64.0630839897801536,41.9755778813547948,192.177050630061],"luv":[64.0630839897801536,-41.03114670244819,-8.85404646225986802],"rgb":[0.266666666666666663,0.66666666666666663,0.66666666666666663],"xyz":[0.240128653030828698,0.328793313556041689,0.431123883461666135],"hpluv":[192.177050630061,83.1434743556685731,64.0630839897801536],"hsluv":[192.177050630061,82.8180264051213868,64.0630839897801536]},"#44aabb":{"lch":[64.6156750410269893,46.3675567205894481,210.140689328835606],"luv":[64.6156750410269893,-40.0984334486196374,-23.2823098339426302],"rgb":[0.266666666666666663,0.66666666666666663,0.733333333333333282],"xyz":[0.257266245138165373,0.335648350398976447,0.521381868560307882],"hpluv":[210.140689328835606,91.0574853549996135,64.6156750410269893],"hsluv":[210.140689328835606,83.7972417316187,64.6156750410269893]},"#44aacc":{"lch":[65.2288162125558131,54.5527176111565382,224.088695054270687],"luv":[65.2288162125558131,-39.1832309762682058,-37.956203827872514],"rgb":[0.266666666666666663,0.66666666666666663,0.8],"xyz":[0.276558620581887071,0.343365300576465249,0.622988379230578],"hpluv":[224.088695054270687,106.124637545316332,65.2288162125558131],"hsluv":[224.088695054270687,84.7740840933985424,65.2288162125558131]},"#44aadd":{"lch":[65.9019585504415772,65.1392687949415574,233.984713087438024],"luv":[65.9019585504415772,-38.3019605797345406,-52.6885581021924381],"rgb":[0.266666666666666663,0.66666666666666663,0.866666666666666696],"xyz":[0.29807694613252067,0.351972630796718755,0.736318227130584],"hpluv":[233.984713087438024,125.424934833645892,65.9019585504415772],"hsluv":[233.984713087438024,85.7334354760652246,65.9019585504415772]},"#44aaee":{"lch":[66.634186587349916,77.0517400481588,240.904642753345257],"luv":[66.634186587349916,-37.4675316968449081,-67.3287064556787698],"rgb":[0.266666666666666663,0.66666666666666663,0.933333333333333348],"xyz":[0.32188912639869538,0.361497502903188772,0.861729043199107259],"hpluv":[240.904642753345257,146.73194579095005,66.634186587349916],"hsluv":[240.904642753345257,86.6633273618325717,66.634186587349916]},"#44aaff":{"lch":[67.4242620727880677,89.6163291450103827,245.832487512483851],"luv":[67.4242620727880677,-36.6894434071527229,-81.7616731231704534],"rgb":[0.266666666666666663,0.66666666666666663,1],"xyz":[0.348060174808526801,0.371965922267121496,0.999563231490889104],"hpluv":[245.832487512483851,168.659292786049974,67.4242620727880677],"hsluv":[245.832487512483851,99.9999999999982094,67.4242620727880677]},"#44bb00":{"lch":[67.1028050092269126,96.9162111575721497,123.392710981560953],"luv":[67.1028050092269126,-53.3402140179528601,80.9170782570533476],"rgb":[0.266666666666666663,0.733333333333333282,0],"xyz":[0.201533884315295564,0.367682602723587049,0.0603492452107617],"hpluv":[123.392710981560953,183.271561122122193,67.1028050092269126],"hsluv":[123.392710981560953,100.00000000000226,67.1028050092269126]},"#44bb11":{"lch":[67.1332810832727347,95.7453830613523138,123.778355355208646],"luv":[67.1332810832727347,-53.2326764896654581,79.5830417319651673],"rgb":[0.266666666666666663,0.733333333333333282,0.0666666666666666657],"xyz":[0.202545549814932696,0.368087268923441902,0.0656773501755173322],"hpluv":[123.778355355208646,180.975295348072393,67.1332810832727347],"hsluv":[123.778355355208646,98.1806384027583334,67.1332810832727347]},"#44bb22":{"lch":[67.1897165718252438,93.6085464076245728,124.511290753684577],"luv":[67.1897165718252438,-53.03566579282883,77.1348048189646391],"rgb":[0.266666666666666663,0.733333333333333282,0.133333333333333331],"xyz":[0.204420907953409697,0.368837412178832702,0.0755542363714965248],"hpluv":[124.511290753684577,176.787689053856155,67.1897165718252438],"hsluv":[124.511290753684577,94.8452524510698538,67.1897165718252438]},"#44bb33":{"lch":[67.2824703298360873,90.1849869824975627,125.771296969252688],"luv":[67.2824703298360873,-52.7177504009765485,73.1721987485246501],"rgb":[0.266666666666666663,0.733333333333333282,0.2],"xyz":[0.207508658685867431,0.370072512471815829,0.091816390229107675],"hpluv":[125.771296969252688,170.087205132927863,67.2824703298360873],"hsluv":[125.771296969252688,89.4565739304913308,67.2824703298360873]},"#44bb44":{"lch":[67.4160218575577375,85.4495691526201284,127.715012949240077],"luv":[67.4160218575577375,-52.2724357759646807,67.5960156105081182],"rgb":[0.266666666666666663,0.733333333333333282,0.266666666666666663],"xyz":[0.211966653930086318,0.371855710569503395,0.115295165181994314],"hpluv":[127.715012949240077,160.837043785954393,67.4160218575577375],"hsluv":[127.715012949240077,81.8947222100884318,67.4160218575577375]},"#44bb55":{"lch":[67.5939766620447813,79.5000401119176,130.566112214394138],"luv":[67.5939766620447813,-51.7008659583180759,60.3926886051327756],"rgb":[0.266666666666666663,0.733333333333333282,0.333333333333333315],"xyz":[0.217929067969448331,0.374240676185248256,0.146697212455968229],"hpluv":[130.566112214394138,149.244617358403957,67.5939766620447813],"hsluv":[130.566112214394138,82.2871698148834412,67.5939766620447813]},"#44bb66":{"lch":[67.8192698910356313,72.5749222232247,134.657948179728322],"luv":[67.8192698910356313,-51.0109407747319139,51.6236695420221778],"rgb":[0.266666666666666663,0.733333333333333282,0.4],"xyz":[0.225514063742956489,0.377274674494651574,0.186644856863112191],"hpluv":[134.657948179728322,135.791565604529097,67.8192698910356313],"hsluv":[134.657948179728322,82.7624878443234451,67.8192698910356313]},"#44bb77":{"lch":[68.0942730594189527,65.0902087481164671,140.487577627549143],"luv":[68.0942730594189527,-50.2162275054035163,41.4133525568618168],"rgb":[0.266666666666666663,0.733333333333333282,0.466666666666666674],"xyz":[0.234828076763158422,0.38100027970273237,0.2356986587695101],"hpluv":[140.487577627549143,121.295420087000366,68.0942730594189527],"hsluv":[140.487577627549143,83.3123735080707206,68.0942730594189527]},"#44bb88":{"lch":[68.4208577329380461,57.7058903955470939,148.752185803016886],"luv":[68.4208577329380461,-49.3345927236295907,29.9343907092910229],"rgb":[0.266666666666666663,0.733333333333333282,0.533333333333333326],"xyz":[0.245968493865102222,0.385456446543509967,0.294371522173082267],"hpluv":[148.752185803016886,107.021481540968693,68.4208577329380461],"hsluv":[148.752185803016886,83.9257037652282776,68.4208577329380461]},"#44bb99":{"lch":[68.8004384509552267,51.4171630403873507,160.23039633414129],"luv":[68.8004384509552267,-48.3866530594068536,17.3912754227620781],"rgb":[0.266666666666666663,0.733333333333333282,0.6],"xyz":[0.259025457974175,0.390679232187139125,0.363138199814200147],"hpluv":[160.23039633414129,94.8322885243955,68.8004384509552267],"hsluv":[160.23039633414129,84.5895330052649683,68.8004384509552267]},"#44bbaa":{"lch":[69.2340056114394571,47.5630236168925,175.171204236910796],"luv":[69.2340056114394571,-47.3942071553531576,4.003791165451279],"rgb":[0.266666666666666663,0.733333333333333282,0.66666666666666663],"xyz":[0.274083150939427478,0.396702309373240247,0.442442049431198747],"hpluv":[175.171204236910796,87.1744714415039113,69.2340056114394571],"hsluv":[175.171204236910796,85.2901010545764251,69.2340056114394571]},"#44bbbb":{"lch":[69.722153945093,47.4463312905994243,192.177050630061103],"luv":[69.722153945093,-46.3788106784417877,-10.0080104411700219],"rgb":[0.266666666666666663,0.733333333333333282,0.733333333333333282],"xyz":[0.291220743046764152,0.403557346216175,0.532700034529840494],"hpluv":[192.177050630061103,86.3517549054621156,69.722153945093],"hsluv":[192.177050630061103,86.0137488036252,69.722153945093]},"#44bbcc":{"lch":[70.265109629848,51.5238495855336254,208.311647260201596],"luv":[70.265109629848,-45.3606162241423405,-24.4360711219862],"rgb":[0.266666666666666663,0.733333333333333282,0.8],"xyz":[0.310513118490485907,0.411274296393663807,0.63430654520011065],"hpluv":[208.311647260201596,93.0481841100277478,70.265109629848],"hsluv":[208.311647260201596,86.7476639801695484,70.265109629848]},"#44bbdd":{"lch":[70.8627576511434683,59.1258582536945,221.390354970453018],"luv":[70.8627576511434683,-44.357542252504274,-39.0931651258026491],"rgb":[0.266666666666666663,0.733333333333333282,0.866666666666666696],"xyz":[0.332031444041119395,0.419881626613917314,0.747636393100116647],"hpluv":[221.390354970453018,105.876295000483495,70.8627576511434683],"hsluv":[221.390354970453018,87.4804162985680449,70.8627576511434683]},"#44bbee":{"lch":[71.5146701379092207,69.1277260896420813,231.126492355228834],"luv":[71.5146701379092207,-43.3847784652122499,-53.8182451576511269],"rgb":[0.266666666666666663,0.733333333333333282,0.933333333333333348],"xyz":[0.35584362430729416,0.429406498720387331,0.873047209168639871],"hpluv":[231.126492355228834,122.65816352572412,71.5146701379092207],"hsluv":[231.126492355228834,88.202277385306985,71.5146701379092207]},"#44bbff":{"lch":[72.2201358507708,80.5712163793027685,238.202407995552562],"luv":[72.2201358507708,-42.4545914747530801,-68.4786723845625573],"rgb":[0.266666666666666663,0.733333333333333282,1],"xyz":[0.382014672717125525,0.439874918084320055,1.01088139746042183],"hpluv":[238.202407995552562,141.566646923483631,72.2201358507708],"hsluv":[238.202407995552562,99.9999999999976694,72.2201358507708]},"#44cc00":{"lch":[72.503692055952385,105.959797206167082,124.178253965335855],"luv":[72.503692055952385,-59.5249745926526543,87.6598883396283384],"rgb":[0.266666666666666663,0.8,0],"xyz":[0.239757627624912484,0.444130089342821943,0.0730904929806336506],"hpluv":[124.178253965335855,185.447217969921951,72.503692055952385],"hsluv":[124.178253965335855,100.000000000002359,72.503692055952385]},"#44cc11":{"lch":[72.5305637479271752,104.914943747871533,124.498982817725434],"luv":[72.5305637479271752,-59.4229434801529877,86.4642076802510928],"rgb":[0.266666666666666663,0.8,0.0666666666666666657],"xyz":[0.240769293124549616,0.444534755542676796,0.0784185979453892873],"hpluv":[124.498982817725434,183.55052269402043,72.5305637479271752],"hsluv":[124.498982817725434,98.4921383302381628,72.5305637479271752]},"#44cc22":{"lch":[72.5803335982668,103.003123626508128,125.105641856618192],"luv":[72.5803335982668,-59.2356349500081265,84.2661440252673088],"rgb":[0.266666666666666663,0.8,0.133333333333333331],"xyz":[0.242644651263026617,0.445284898798067597,0.0882954841413684799],"hpluv":[125.105641856618192,180.082189217111164,72.5803335982668],"hsluv":[125.105641856618192,95.7225658430248387,72.5803335982668]},"#44cc33":{"lch":[72.6621573160580283,99.9260617146724144,126.139923542820412],"luv":[72.6621573160580283,-58.9323161564504758,80.6982027200153],"rgb":[0.266666666666666663,0.8,0.2],"xyz":[0.245732401995484351,0.446519999091050723,0.10455763799897963],"hpluv":[126.139923542820412,174.505777504147545,72.6621573160580283],"hsluv":[126.139923542820412,91.233607132201584,72.6621573160580283]},"#44cc44":{"lch":[72.780026014363628,95.6382843785450518,127.715012949240148],"luv":[72.780026014363628,-58.5052227586060383,75.6559339961998],"rgb":[0.266666666666666663,0.8,0.266666666666666663],"xyz":[0.250190397239703266,0.448303197188738289,0.128036412951866269],"hpluv":[127.715012949240148,166.747333178852926,72.780026014363628],"hsluv":[127.715012949240148,84.9041129363740339,72.780026014363628]},"#44cc55":{"lch":[72.9371837422115732,90.1892610669535912,129.983942971096695],"luv":[72.9371837422115732,-57.9531752136704,69.1052262456084492],"rgb":[0.266666666666666663,0.8,0.333333333333333315],"xyz":[0.256152811279065251,0.45068816280448315,0.159438460225840184],"hpluv":[129.983942971096695,156.908028239254975,72.9371837422115732],"hsluv":[129.983942971096695,85.1779272269293557,72.9371837422115732]},"#44cc66":{"lch":[73.1363103507417236,83.732792729713168,133.164212643981188],"luv":[73.1363103507417236,-57.28090462038152,61.074368962666],"rgb":[0.266666666666666663,0.8,0.4],"xyz":[0.263737807052573436,0.453722161113886469,0.199386104632984118],"hpluv":[133.164212643981188,145.278670258241675,73.1363103507417236],"hsluv":[133.164212643981188,85.5122241677148764,73.1363103507417236]},"#44cc77":{"lch":[73.3796177536812309,76.5464624175537,137.569101073773794],"luv":[73.3796177536812309,-56.4983001604517625,51.6459387330839],"rgb":[0.266666666666666663,0.8,0.466666666666666674],"xyz":[0.273051820072775342,0.457447766321967264,0.248439906539382027],"hpluv":[137.569101073773794,132.369828459728325,73.3796177536812309],"hsluv":[137.569101073773794,85.9026534082125153,73.3796177536812309]},"#44cc88":{"lch":[73.6689069899719442,69.0664605730878378,143.639563525196422],"luv":[73.6689069899719442,-55.6194534086204087,40.9469459010095278],"rgb":[0.266666666666666663,0.8,0.533333333333333326],"xyz":[0.284192237174719142,0.461903933162744862,0.307112769942954222],"hpluv":[143.639563525196422,118.965846887396481,73.6689069899719442],"hsluv":[143.639563525196422,86.3428682965135863,73.6689069899719442]},"#44cc99":{"lch":[74.0056056952011,61.9424628035573548,151.940118655705163],"luv":[74.0056056952011,-54.661526046940331,29.1373689338922652],"rgb":[0.266666666666666663,0.8,0.6],"xyz":[0.297249201283791842,0.467126718806374,0.375879447584072102],"hpluv":[151.940118655705163,106.209454381597496,74.0056056952011],"hsluv":[151.940118655705163,86.8250568088678,74.0056056952011]},"#44ccaa":{"lch":[74.3907954563299256,56.0938540204294327,163.002493202880316],"luv":[74.3907954563299256,-53.6435329798001206,16.3979214631106132],"rgb":[0.266666666666666663,0.8,0.66666666666666663],"xyz":[0.312306894249044398,0.473149795992475142,0.455183297201070702],"hpluv":[163.002493202880316,95.6831366692641581,74.3907954563299256],"hsluv":[163.002493202880316,87.3405106459777727,74.3907954563299256]},"#44ccbb":{"lch":[74.8252340948823331,52.6660587979454959,176.823724318960615],"luv":[74.8252340948823331,-52.5851528012588929,2.91812511330579927],"rgb":[0.266666666666666663,0.8,0.733333333333333282],"xyz":[0.329444486356381072,0.4800048328354099,0.545441282299712449],"hpluv":[176.823724318960615,89.3145186414393493,74.8252340948823331],"hsluv":[176.823724318960615,87.8801809558037235,74.8252340948823331]},"#44cccc":{"lch":[75.3093757141467393,52.6911947618550442,192.177050630061103],"luv":[75.3093757141467393,-51.5056671360628826,-11.1143267137884898],"rgb":[0.266666666666666663,0.8,0.8],"xyz":[0.348736861800102771,0.487721783012898702,0.647047792969982605],"hpluv":[192.177050630061103,88.7826952764381758,75.3093757141467393],"hsluv":[192.177050630061103,88.4351737608208168,75.3093757141467393]},"#44ccdd":{"lch":[75.8433901234223669,56.5143539908888,206.846753698803184],"luv":[75.8433901234223669,-50.423101427505074,-25.5222069860548118],"rgb":[0.266666666666666663,0.8,0.866666666666666696],"xyz":[0.37025518735073637,0.496329113233152208,0.760377640869988602],"hpluv":[206.846753698803184,94.5540981724771257,75.8433901234223669],"hsluv":[206.846753698803184,88.9971515077065334,75.8433901234223669]},"#44ccee":{"lch":[76.4271825186181104,63.6191993934700264,219.125479385679029],"luv":[76.4271825186181104,-49.3536035237008,-40.1450414209705926],"rgb":[0.266666666666666663,0.8,0.933333333333333348],"xyz":[0.39406736761691108,0.505853985339622225,0.885788456938511826],"hpluv":[219.125479385679029,108.248092211119214,76.4271825186181104],"hsluv":[219.125479385679029,89.5586239337052,76.4271825186181104]},"#44ccff":{"lch":[77.0604138316104752,73.087044724203011,228.6232677289035],"luv":[77.0604138316104752,-48.3110621928290342,-54.8430248647743426],"rgb":[0.266666666666666663,0.8,1],"xyz":[0.420238416026742501,0.516322404703555,1.02362264523029367],"hpluv":[228.6232677289035,128.526456918779161,77.0604138316104752],"hsluv":[228.6232677289035,99.9999999999969731,77.0604138316104752]},"#44dd00":{"lch":[77.8394471675691193,114.806757868746558,124.774603647715026],"luv":[77.8394471675691193,-65.4799812263264869,94.3025116894186],"rgb":[0.266666666666666663,0.866666666666666696,0],"xyz":[0.282391618172087688,0.529398070437173462,0.0873018231630249691],"hpluv":[124.774603647715026,210.465861771712326,77.8394471675691193],"hsluv":[124.774603647715026,100.000000000002174,77.8394471675691193]},"#44dd11":{"lch":[77.8633510332093692,113.867279553553601,125.04447057905567],"luv":[77.8633510332093692,-65.3839645843072503,93.2238946202376724],"rgb":[0.266666666666666663,0.866666666666666696,0.0666666666666666657],"xyz":[0.283403283671724793,0.529802736637028371,0.0926299281277806],"hpluv":[125.04447057905567,209.014039294370775,77.8633510332093692],"hsluv":[125.04447057905567,98.7339197526847272,77.8633510332093692]},"#44dd22":{"lch":[77.9076302523257738,112.144788460185168,125.553114236235714],"luv":[77.9076302523257738,-65.2074178024426914,91.2384033306006472],"rgb":[0.266666666666666663,0.866666666666666696,0.133333333333333331],"xyz":[0.28527864181020185,0.530552879892419171,0.102506814323759798],"hpluv":[125.553114236235714,206.347170822894697,77.9076302523257738],"hsluv":[125.553114236235714,96.4050109160080382,77.9076302523257738]},"#44dd33":{"lch":[77.9804445180848802,109.362510567887881,126.41495586461761],"luv":[77.9804445180848802,-64.9207541848309546,88.0082632130877869],"rgb":[0.266666666666666663,0.866666666666666696,0.2],"xyz":[0.288366392542659555,0.531787980185402298,0.118768968181370949],"hpluv":[126.41495586461761,202.025685311970193,77.9804445180848802],"hsluv":[126.41495586461761,92.6208241654068729,77.9804445180848802]},"#44dd44":{"lch":[78.0853727898892345,105.463232003770898,127.715012949240119],"luv":[78.0853727898892345,-64.5154806081751389,83.428089194092081],"rgb":[0.266666666666666663,0.866666666666666696,0.266666666666666663],"xyz":[0.292824387786878471,0.533571178283089864,0.142247743134257587],"hpluv":[127.715012949240119,195.940425098340825,78.0853727898892345],"hsluv":[127.715012949240119,87.2650912217990395,78.0853727898892345]},"#44dd55":{"lch":[78.2253459168282888,100.46502238820301,129.562971792001804],"luv":[78.2253459168282888,-63.9887749627021662,77.4510000079714303],"rgb":[0.266666666666666663,0.866666666666666696,0.333333333333333315],"xyz":[0.298786801826240456,0.535956143898834614,0.173649790408231475],"hpluv":[129.562971792001804,188.090878204767051,78.2253459168282888],"hsluv":[129.562971792001804,87.4605090914447,78.2253459168282888]},"#44dd66":{"lch":[78.4028117957757615,94.4661355921174,132.108441056441876],"luv":[78.4028117957757615,-63.3429373931831776,70.0822592109557],"rgb":[0.266666666666666663,0.866666666666666696,0.4],"xyz":[0.306371797599748641,0.538990142208237932,0.213597434815375464],"hpluv":[132.108441056441876,178.59774401526758,78.4028117957757615],"hsluv":[132.108441056441876,87.7006053461373654,78.4028117957757615]},"#44dd77":{"lch":[78.6198227824069278,87.656024220764337,135.559861003190832],"luv":[78.6198227824069278,-62.584854150819659,61.3735660778470375],"rgb":[0.266666666666666663,0.866666666666666696,0.466666666666666674],"xyz":[0.315685810619950546,0.542715747416318783,0.262651236721773373],"hpluv":[135.559861003190832,167.73117312681623,78.6198227824069278],"hsluv":[135.559861003190832,87.9831439767702221,78.6198227824069278]},"#44dd88":{"lch":[78.8780874692010201,80.3346414261830404,140.206181380764804],"luv":[78.8780874692010201,-61.7253288138421823,51.416324216113189],"rgb":[0.266666666666666663,0.866666666666666696,0.533333333333333326],"xyz":[0.326826227721894347,0.547171914257096326,0.321324100125345513],"hpluv":[140.206181380764804,155.961921377148798,78.8780874692010201],"hsluv":[140.206181380764804,88.3044935606717729,78.8780874692010201]},"#44dd99":{"lch":[79.1790042342924,72.9438114093828602,146.430978952194238],"luv":[79.1790042342924,-60.7782665628728651,40.3336328210091182],"rgb":[0.266666666666666663,0.866666666666666696,0.6],"xyz":[0.339883191830967046,0.552394699900725539,0.390090777766463448],"hpluv":[146.430978952194238,144.047423549525234,79.1790042342924],"hsluv":[146.430978952194238,88.6599152631773109,79.1790042342924]},"#44ddaa":{"lch":[79.5236849812282,66.109750002698334,154.681927012774025],"luv":[79.5236849812282,-59.7597565852220498,28.2713731236083063],"rgb":[0.266666666666666663,0.866666666666666696,0.66666666666666663],"xyz":[0.354940884796219602,0.558417777086826606,0.469394627383462049],"hpluv":[154.681927012774025,133.15854000611057,79.5236849812282],"hsluv":[154.681927012774025,89.0438856180527267,79.5236849812282]},"#44ddbb":{"lch":[79.9129735834354733,60.6712530747818448,165.306614809553963],"luv":[79.9129735834354733,-58.687123678359157,15.3890371376899697],"rgb":[0.266666666666666663,0.866666666666666696,0.733333333333333282],"xyz":[0.372078476903556277,0.565272813929761364,0.55965261248210374],"hpluv":[165.306614809553963,125.005338667233715,79.9129735834354733],"hsluv":[165.306614809553963,89.4504295982059574,79.9129735834354733]},"#44ddcc":{"lch":[80.3474616163736783,57.6077690930220925,178.158710030216184],"luv":[80.3474616163736783,-57.5780241737671616,1.85099760130491053],"rgb":[0.266666666666666663,0.866666666666666696,0.8],"xyz":[0.391370852347278,0.572989764107250221,0.661259123152373895],"hpluv":[178.158710030216184,121.786592068950441,80.3474616163736783],"hsluv":[178.158710030216184,89.8734379183952399,80.3474616163736783]},"#44dddd":{"lch":[80.8275029051271758,57.7489755309586,192.177050630061132],"luv":[80.8275029051271758,-56.4496501662069505,-12.1811810177875159],"rgb":[0.266666666666666663,0.866666666666666696,0.866666666666666696],"xyz":[0.412889177897911575,0.581597094327503727,0.774588971052379893],"hpluv":[192.177050630061132,125.674721736272474,80.8275029051271758],"hsluv":[192.177050630061132,90.3069463225795204,80.8275029051271758]},"#44ddee":{"lch":[81.3532277894993143,61.361693698739991,205.642938459455962],"luv":[81.3532277894993143,-55.3180860243278758,-26.5549771640468073],"rgb":[0.266666666666666663,0.866666666666666696,0.933333333333333348],"xyz":[0.436701358164086284,0.591121966433973745,0.899999787120903116],"hpluv":[205.642938459455962,137.939634766348263,81.3532277894993143],"hsluv":[205.642938459455962,90.7453615563817806,81.3532277894993143]},"#44ddff":{"lch":[81.9245576129038113,68.0382655080336463,217.195369709248553],"luv":[81.9245576129038113,-54.1978382178125813,-41.1314953029609],"rgb":[0.266666666666666663,0.866666666666666696,1],"xyz":[0.462872406573917705,0.601590385797906468,1.03783397541268507],"hpluv":[217.195369709248553,158.576151866946,81.9245576129038113],"hsluv":[217.195369709248553,99.9999999999957367,81.9245576129038113]},"#44ee00":{"lch":[83.112739541513335,123.476763986331008,125.23710114083579],"luv":[83.112739541513335,-71.241317589729718,100.852297507867192],"rgb":[0.266666666666666663,0.933333333333333348,0],"xyz":[0.329570394512602505,0.623755623118204428,0.103028081943196154],"hpluv":[125.23710114083579,311.240798427125753,83.112739541513335],"hsluv":[125.23710114083579,100.000000000002402,83.112739541513335]},"#44ee11":{"lch":[83.1341682891089135,122.626446998812852,125.466600012922257],"luv":[83.1341682891089135,-71.1513320296005674,99.8735873690646656],"rgb":[0.266666666666666663,0.933333333333333348,0.0666666666666666657],"xyz":[0.330582060012239609,0.624160289318059336,0.10835618690795179],"hpluv":[125.466600012922257,309.547675363147619,83.1341682891089135],"hsluv":[125.466600012922257,98.9247180409442279,83.1341682891089135]},"#44ee22":{"lch":[83.1738669889620184,121.064908518289769,125.897986234483838],"luv":[83.1738669889620184,-70.9856689153146192,98.0701120789979],"rgb":[0.266666666666666663,0.933333333333333348,0.133333333333333331],"xyz":[0.332457418150716666,0.624910432573450136,0.118233073103930983],"hpluv":[125.897986234483838,306.432309176179558,83.1738669889620184],"hsluv":[125.897986234483838,96.9444732717922,83.1738669889620184]},"#44ee33":{"lch":[83.2391611795664517,118.535427876706891,126.625494433478437],"luv":[83.2391611795664517,-70.7161072615436694,95.1308563805026921],"rgb":[0.266666666666666663,0.933333333333333348,0.2],"xyz":[0.335545168883174372,0.626145532866433263,0.134495226961542119],"hpluv":[126.625494433478437,301.369067751793693,83.2391611795664517],"hsluv":[126.625494433478437,93.7204451717133651,83.2391611795664517]},"#44ee44":{"lch":[83.3332795320092714,114.974418092600288,127.715012949240275],"luv":[83.3332795320092714,-70.3337997514069855,90.9520391649414],"rgb":[0.266666666666666663,0.933333333333333348,0.266666666666666663],"xyz":[0.340003164127393287,0.627928730964120829,0.157974001914428758],"hpluv":[127.715012949240275,294.205765091151079,83.3332795320092714],"hsluv":[127.715012949240275,89.1439564147074321,83.3332795320092714]},"#44ee55":{"lch":[83.4588814464859183,110.379279114867671,129.248151137931956],"luv":[83.4588814464859183,-69.8347997913980123,85.479155330485213],"rgb":[0.266666666666666663,0.933333333333333348,0.333333333333333315],"xyz":[0.345965578166755272,0.630313696579865579,0.189376049188402673],"hpluv":[129.248151137931956,284.901382538762221,83.4588814464859183],"hsluv":[129.248151137931956,89.2862876088480419,83.4588814464859183]},"#44ee66":{"lch":[83.6182069813856,104.810737833959209,131.33226272314829],"luv":[83.6182069813856,-69.2195888954281,78.7015837099029],"rgb":[0.266666666666666663,0.933333333333333348,0.4],"xyz":[0.353550573940263457,0.633347694889268897,0.229323693595546635],"hpluv":[131.33226272314829,273.53562680177663,83.6182069813856],"hsluv":[131.33226272314829,89.462046779026835,83.6182069813856]},"#44ee77":{"lch":[83.8131566406418642,98.3993759238413759,134.112401675041724],"luv":[83.8131566406418642,-68.4926783274834889,70.6483559449852123],"rgb":[0.266666666666666663,0.933333333333333348,0.466666666666666674],"xyz":[0.362864586960465363,0.637073300097349748,0.278377495501944572],"hpluv":[134.112401675041724,260.333399951005049,83.8131566406418642],"hsluv":[134.112401675041724,89.6701381262035682,83.8131566406418642]},"#44ee88":{"lch":[84.045338735079568,91.3569443918750892,137.785521400150031],"luv":[84.045338735079568,-67.6621349200187439,61.3834406553211949],"rgb":[0.266666666666666663,0.933333333333333348,0.533333333333333326],"xyz":[0.374005004062409163,0.641529466938127291,0.337050358905516712],"hpluv":[137.785521400150031,245.709311488591595,84.045338735079568],"hsluv":[137.785521400150031,89.9084899734552323,84.045338735079568]},"#44ee99":{"lch":[84.3160998906388386,83.9946679616676306,142.613931790318958],"luv":[84.3160998906388386,-66.738995210465,51.0001055321292895],"rgb":[0.266666666666666663,0.933333333333333348,0.6],"xyz":[0.387061968171481863,0.646752252581756504,0.405817036546634591],"hpluv":[142.613931790318958,230.343048149298568,84.3160998906388386],"hsluv":[142.613931790318958,90.1742147406472725,84.3160998906388386]},"#44eeaa":{"lch":[84.626546237332235,76.7502660373389887,148.925817786423067],"luv":[84.626546237332235,-65.7365837009088239,39.6144531722415607],"rgb":[0.266666666666666663,0.933333333333333348,0.66666666666666663],"xyz":[0.402119661136734419,0.652775329767857571,0.485120886163633247],"hpluv":[148.925817786423067,215.298316825794302,84.626546237332235],"hsluv":[148.925817786423067,90.4637941794664897,84.626546237332235]},"#44eebb":{"lch":[84.9775593290447,70.218708007349818,157.069253127653155],"luv":[84.9775593290447,-64.6697768267590618,27.3584889823731068],"rgb":[0.266666666666666663,0.933333333333333348,0.733333333333333282],"xyz":[0.419257253244071093,0.659630366610792329,0.575378871262274938],"hpluv":[157.069253127653155,202.183693696822303,84.9775593290447],"hsluv":[157.069253127653155,90.7732788992861401,84.9775593290447]},"#44eecc":{"lch":[85.3698091329633826,65.1592886039499462,167.256585364158155],"luv":[85.3698091329633826,-63.5542641697608914,14.3731832665241086],"rgb":[0.266666666666666663,0.933333333333333348,0.8],"xyz":[0.438549628687792792,0.667347316788281186,0.676985381932545094],"hpluv":[167.256585364158155,193.290067765431047,85.3698091329633826],"hsluv":[167.256585364158155,91.0984884260964,85.3698091329633826]},"#44eedd":{"lch":[85.803765500838054,62.4110099600490216,179.263728091065275],"luv":[85.803765500838054,-62.4058570040272613,0.801982435119061421],"rgb":[0.266666666666666663,0.933333333333333348,0.866666666666666696],"xyz":[0.460067954238426391,0.675954647008534693,0.790315229832551092],"hpluv":[179.263728091065275,191.499842549603557,85.803765500838054],"hsluv":[179.263728091065275,91.4351983708881875,85.803765500838054]},"#44eeee":{"lch":[86.2797089909746546,62.6494691870182407,192.17705063006116],"luv":[86.2797089909746546,-61.2398849709435922,-13.2148582346064085],"rgb":[0.266666666666666663,0.933333333333333348,0.933333333333333348],"xyz":[0.4838801345046011,0.68547951911500471,0.915726045901074315],"hpluv":[192.17705063006116,199.700166684316315,86.2797089909746546],"hsluv":[192.17705063006116,91.7793037580661775,86.2797089909746546]},"#44eeff":{"lch":[86.7977415696122847,66.0848691943621134,204.633388514668525],"luv":[86.7977415696122847,-60.0707080483631159,-27.5448719547627086],"rgb":[0.266666666666666663,0.933333333333333348,1],"xyz":[0.510051182914432522,0.695947938478937433,1.05356023419285627],"hpluv":[204.633388514668525,219.870556477974674,86.7977415696122847],"hsluv":[204.633388514668525,99.9999999999936904,86.7977415696122847]},"#44ff00":{"lch":[88.3264513606833,131.987460278186802,125.602389702763816],"luv":[88.3264513606833,-76.837408418496949,107.315899745634312],"rgb":[0.266666666666666663,1,0],"xyz":[0.381422766942276337,0.727460367977553535,0.120312206086420265],"hpluv":[125.602389702763816,502.990651378155178,88.3264513606833],"hsluv":[125.602389702763816,100.000000000002331,88.3264513606833]},"#44ff11":{"lch":[88.3457924202418496,131.213348009411362,125.799444038401859],"luv":[88.3457924202418496,-76.7532223203665609,106.423143908077066],"rgb":[0.266666666666666663,1,0.0666666666666666657],"xyz":[0.382434432441913441,0.727865034177408443,0.125640311051175901],"hpluv":[125.799444038401859,500.950310911531346,88.3457924202418496],"hsluv":[125.799444038401859,99.9999999999917577,88.3457924202418496]},"#44ff22":{"lch":[88.3816266358799538,129.789896608084,126.169061428897493],"luv":[88.3816266358799538,-76.5980824061806089,104.776672180562713],"rgb":[0.266666666666666663,1,0.133333333333333331],"xyz":[0.384309790580390498,0.728615177432799244,0.13551719724715508],"hpluv":[126.169061428897493,497.190929074143924,88.3816266358799538],"hsluv":[126.169061428897493,99.9999999999915445,88.3816266358799538]},"#44ff33":{"lch":[88.4405736189592204,127.478814054469,126.790121098902588],"luv":[88.4405736189592204,-76.3452168675528071,102.089450454884],"rgb":[0.266666666666666663,1,0.2],"xyz":[0.387397541312848204,0.72985027772578237,0.15177935110476623],"hpluv":[126.790121098902588,491.06642972530841,88.4405736189592204],"hsluv":[126.790121098902588,99.9999999999916,88.4405736189592204]},"#44ff44":{"lch":[88.5255621746627099,124.213522374992053,127.715012949240247],"luv":[88.5255621746627099,-75.9856771103925,98.2607552122302],"rgb":[0.266666666666666663,1,0.266666666666666663],"xyz":[0.391855536557067119,0.731633475823469936,0.175258126057652869],"hpluv":[127.715012949240247,482.369437382385513,88.5255621746627099],"hsluv":[127.715012949240247,99.9999999999915872,88.5255621746627099]},"#44ff55":{"lch":[88.6390158335401,119.977757557138,129.006344472088813],"luv":[88.6390158335401,-75.5147735105559832,93.2318684253877734],"rgb":[0.266666666666666663,1,0.333333333333333315],"xyz":[0.397817950596429104,0.734018441439214686,0.206660173331626784],"hpluv":[129.006344472088813,471.012302242813519,88.6390158335401],"hsluv":[129.006344472088813,99.9999999999916724,88.6390158335401]},"#44ff66":{"lch":[88.7829895920100256,114.806361082699226,130.743859599912923],"luv":[88.7829895920100256,-74.9316504675157518,86.9813100801842438],"rgb":[0.266666666666666663,1,0.4],"xyz":[0.405402946369937289,0.737052439748618,0.246607817738770746],"hpluv":[130.743859599912923,457.03528250903878,88.7829895920100256],"hsluv":[130.743859599912923,99.999999999991374,88.7829895920100256]},"#44ff77":{"lch":[88.9592430558717524,108.789243130847709,133.032335199193767],"luv":[88.9592430558717524,-74.2389756563468239,79.5215311376676226],"rgb":[0.266666666666666663,1,0.466666666666666674],"xyz":[0.414716959390139195,0.740778044956698856,0.295661619645168683],"hpluv":[133.032335199193767,440.631455855157412,88.9592430558717524],"hsluv":[133.032335199193767,99.999999999991374,88.9592430558717524]},"#44ff88":{"lch":[89.1692840038805343,102.078340317719523,136.01097660716411],"luv":[89.1692840038805343,-73.4425963051882462,70.8955048643657904],"rgb":[0.266666666666666663,1,0.533333333333333326],"xyz":[0.425857376492083,0.745234211797476398,0.354334483048740823],"hpluv":[136.01097660716411,422.1930512248951,89.1692840038805343],"hsluv":[136.01097660716411,99.9999999999912177,89.1692840038805343]},"#44ff99":{"lch":[89.4143964062191117,94.8987049380611438,139.863519733640288],"luv":[89.4143964062191117,-72.5511163277215303,61.1727040314764139],"rgb":[0.266666666666666663,1,0.6],"xyz":[0.43891434060115575,0.750456997441105611,0.423101160689858702],"hpluv":[139.863519733640288,402.3908266141122,89.4143964062191117],"hsluv":[139.863519733640288,99.9999999999912,89.4143964062191117]},"#44ffaa":{"lch":[89.695659684091666,87.5652599917726207,144.82485232612342],"luv":[89.695659684091666,-71.5753927145854192,50.4444042008586777],"rgb":[0.266666666666666663,1,0.66666666666666663],"xyz":[0.453972033566408251,0.756480074627206678,0.502405010306857358],"hpluv":[144.82485232612342,382.304282325397367,89.695659684091666],"hsluv":[144.82485232612342,99.9999999999909335,89.695659684091666]},"#44ffbb":{"lch":[90.0139628620153616,80.5050918065685153,151.171682460988421],"luv":[90.0139628620153616,-70.527972915407986,38.8184858440859557],"rgb":[0.266666666666666663,1,0.733333333333333282],"xyz":[0.471109625673744925,0.763335111470141436,0.592662995405499],"hpluv":[151.171682460988421,363.621116250194575,90.0139628620153616],"hsluv":[151.171682460988421,99.999999999990834,90.0139628620153616]},"#44ffcc":{"lch":[90.3700157308713443,74.2777558665274853,159.169074542576084],"luv":[90.3700157308713443,-69.4225064855060481,26.4140229771485018],"rgb":[0.266666666666666663,1,0.8],"xyz":[0.490402001117466679,0.771052061647630294,0.694269506075769205],"hpluv":[159.169074542576084,348.900804743837909,90.3700157308713443],"hsluv":[159.169074542576084,99.9999999999905924,90.3700157308713443]},"#44ffdd":{"lch":[90.7643583149998,69.56728840997188,168.931262835156701],"luv":[90.7643583149998,-68.2731674827513899,13.3559806299794577],"rgb":[0.266666666666666663,1,0.866666666666666696],"xyz":[0.511920326668100167,0.7796593918678838,0.807599353975775203],"hpluv":[168.931262835156701,341.810509676969502,90.7643583149998],"hsluv":[168.931262835156701,99.9999999999902798,90.7643583149998]},"#44ffee":{"lch":[91.1973694573754869,67.0945142582603182,180.196137266844971],"luv":[91.1973694573754869,-67.094121132442,-0.229680249688981986],"rgb":[0.266666666666666663,1,0.933333333333333348],"xyz":[0.535732506934274877,0.789184263974353817,0.933010170044298426],"hpluv":[180.196137266844971,347.079488330816218,91.1973694573754869],"hsluv":[180.196137266844971,99.999999999989825,91.1973694573754869]},"#44ffff":{"lch":[91.6692750397398726,67.4158875874256,192.177050630061103],"luv":[91.6692750397398726,-65.8990611515587261,-14.2202545175369188],"rgb":[0.266666666666666663,1,1],"xyz":[0.561903555344106298,0.799652683338286541,1.07084435833608027],"hpluv":[192.177050630061103,369.886157390881351,91.6692750397398726],"hsluv":[192.177050630061103,99.9999999999897,91.6692750397398726]},"#33aa00":{"lch":[61.1785977172963129,90.1064171712311435,124.683940112874311],"luv":[61.1785977172963129,-51.2749716142469723,74.09482911373847],"rgb":[0.2,0.66666666666666663,0],"xyz":[0.157393059993970491,0.294521282349826385,0.0485535951906325494],"hpluv":[124.683940112874311,186.894073454811917,61.1785977172963129],"hsluv":[124.683940112874311,100.000000000002302,61.1785977172963129]},"#33aa11":{"lch":[61.2139288108167818,88.7849168066190089,125.171000261233829],"luv":[61.2139288108167818,-51.1417680861379793,72.5760360544852148],"rgb":[0.2,0.66666666666666663,0.0666666666666666657],"xyz":[0.158404725493607623,0.294925948549681238,0.0538817001553881791],"hpluv":[125.171000261233829,184.046797309440706,61.2139288108167818],"hsluv":[125.171000261233829,97.729263879491441,61.2139288108167818]},"#33aa22":{"lch":[61.2793378507832642,86.3832953662584657,126.10140218084841],"luv":[61.2793378507832642,-50.8984310656693708,69.7955831939783593],"rgb":[0.2,0.66666666666666663,0.133333333333333331],"xyz":[0.160280083632084625,0.295676091805072039,0.0637585863513673717],"hpluv":[126.10140218084841,178.877217305585333,61.2793378507832642],"hsluv":[126.10140218084841,93.5778090815338146,61.2793378507832642]},"#33aa33":{"lch":[61.3867923044640946,82.5646745763668548,127.715012949240119],"luv":[61.3867923044640946,-50.5076466968263134,65.3138814728533],"rgb":[0.2,0.66666666666666663,0.2],"xyz":[0.163367834364542386,0.296911192098055166,0.0800207402089785219],"hpluv":[127.715012949240119,170.670578118814461,61.3867923044640946],"hsluv":[127.715012949240119,86.9017438736093339,61.3867923044640946]},"#33aa44":{"lch":[61.5414071550205364,77.3485744588317488,130.237764523164799],"luv":[61.5414071550205364,-49.9641607354037305,59.0456146789935588],"rgb":[0.2,0.66666666666666663,0.266666666666666663],"xyz":[0.167825829608761246,0.298694390195742732,0.10349951516186516],"hpluv":[130.237764523164799,159.486606837004757,61.5414071550205364],"hsluv":[130.237764523164799,87.1702267355774723,61.5414071550205364]},"#33aa55":{"lch":[61.7472402279952775,70.9239260559490106,134.00596147156574],"luv":[61.7472402279952775,-49.2732069613111605,51.0132763399638876],"rgb":[0.2,0.66666666666666663,0.333333333333333315],"xyz":[0.173788243648123231,0.301079355811487592,0.134901562435839062],"hpluv":[134.00596147156574,145.752006815371971,61.7472402279952775],"hsluv":[134.00596147156574,87.512567621072165,61.7472402279952775]},"#33aa66":{"lch":[62.0075227235960824,63.6834089970413046,139.532932917076664],"luv":[62.0075227235960824,-48.4490087982300253,41.3312246123130436],"rgb":[0.2,0.66666666666666663,0.4],"xyz":[0.181373239421631416,0.304113354120890911,0.174849206842983024],"hpluv":[139.532932917076664,130.323054003441854,62.0075227235960824],"hsluv":[139.532932917076664,87.9225345315596769,62.0075227235960824]},"#33aa77":{"lch":[62.3247799262656201,56.2910074750267,147.571074265173024],"luv":[62.3247799262656201,-47.5128361285441727,30.1862207898839152],"rgb":[0.2,0.66666666666666663,0.466666666666666674],"xyz":[0.190687252441833321,0.307838959328971706,0.223903008749380933],"hpluv":[147.571074265173024,114.608702125460667,62.3247799262656201],"hsluv":[147.571074265173024,88.3905588997681519,62.3247799262656201]},"#33aa88":{"lch":[62.7009046876535052,49.786919253891476,159.033972270618222],"luv":[62.7009046876535052,-46.4906641824602147,17.8144736848221363],"rgb":[0.2,0.66666666666666663,0.533333333333333326],"xyz":[0.201827669543777177,0.312295126169749304,0.2825758721529531],"hpluv":[159.033972270618222,100.758286424528237,62.7009046876535052],"hsluv":[159.033972270618222,88.9048289963628804,62.7009046876535052]},"#33aa99":{"lch":[63.1372095297142835,45.6309193537352797,174.368717478757389],"luv":[63.1372095297142835,-45.4107033068770818,4.47759156711236095],"rgb":[0.2,0.66666666666666663,0.6],"xyz":[0.214884633652849877,0.317517911813378462,0.351342549794071035],"hpluv":[174.368717478757389,91.7092542399893631,63.1372095297142835],"hsluv":[174.368717478757389,89.4524406674979,63.1372095297142835]},"#33aaaa":{"lch":[63.6344696573538897,45.3208071547743288,192.17705063006116],"luv":[63.6344696573538897,-44.3011098571894,-9.5596666563997],"rgb":[0.2,0.66666666666666663,0.66666666666666663],"xyz":[0.229942326618102433,0.323540988999479584,0.430646399411069636],"hpluv":[192.17705063006116,90.3742140686623117,63.6344696573538897],"hsluv":[192.17705063006116,90.0204628815860559,63.6344696573538897]},"#33aabb":{"lch":[64.1929631055189844,49.4317459506583177,209.109442205543161],"luv":[64.1929631055189844,-43.188124160558381,-24.0475245965695663],"rgb":[0.2,0.66666666666666663,0.733333333333333282],"xyz":[0.247079918725439052,0.330396025842414343,0.520904384509711327],"hpluv":[209.109442205543161,97.7142389408223835,64.1929631055189844],"hsluv":[209.109442205543161,90.5968047396532228,64.1929631055189844]},"#33aacc":{"lch":[64.8125111239688181,57.2242456540803062,222.641155468482083],"luv":[64.8125111239688181,-42.0947673064025736,-38.7639633693247347],"rgb":[0.2,0.66666666666666663,0.8],"xyz":[0.266372294169160806,0.338112976019903144,0.622510895179981483],"hpluv":[222.641155468482083,112.036763534802631,64.8125111239688181],"hsluv":[222.641155468482083,91.1708232266795875,64.8125111239688181]},"#33aadd":{"lch":[65.4925201274692199,67.4454999587780151,232.519386199289158],"luv":[65.4925201274692199,-41.0401119544032653,-53.5220017886062465],"rgb":[0.2,0.66666666666666663,0.866666666666666696],"xyz":[0.28789061971979435,0.34672030624015665,0.73584074307998748],"hpluv":[232.519386199289158,130.67743538587149,65.4925201274692199],"hsluv":[232.519386199289158,91.7336648454097485,65.4925201274692199]},"#33aaee":{"lch":[66.23202547083838,79.0605595482254,239.573325902293959],"luv":[66.23202547083838,-40.039054494753934,-68.1721804788773],"rgb":[0.2,0.66666666666666663,0.933333333333333348],"xyz":[0.311702799985969059,0.356245178346626667,0.861251559148510704],"hpluv":[239.573325902293959,151.471586303299148,66.23202547083838],"hsluv":[239.573325902293959,92.278374899274425,66.23202547083838]},"#33aaff":{"lch":[67.0297366624436,91.3892467801412778,244.667711773110682],"luv":[67.0297366624436,-39.1024682991195291,-82.6014007142609898],"rgb":[0.2,0.66666666666666663,1],"xyz":[0.33787384839580048,0.366713597710559391,0.999085747440292549],"hpluv":[244.667711773110682,173.00828905748071,67.0297366624436],"hsluv":[244.667711773110682,99.9999999999982094,67.0297366624436]},"#33bb00":{"lch":[66.705199456007648,99.1588934495857757,125.274120260315158],"luv":[66.705199456007648,-57.2631629787864327,80.9531735993793262],"rgb":[0.2,0.733333333333333282,0],"xyz":[0.191347557902569271,0.362430278167024944,0.0598717611601651684],"hpluv":[125.274120260315158,188.630237299381349,66.705199456007648],"hsluv":[125.274120260315158,100.000000000002331,66.705199456007648]},"#33bb11":{"lch":[66.7359690986495764,97.9890755357957914,125.670572132139952],"luv":[66.7359690986495764,-57.1397853669544133,79.6046723036925385],"rgb":[0.2,0.733333333333333282,0.0666666666666666657],"xyz":[0.192359223402206403,0.362834944366879797,0.0651998661249208],"hpluv":[125.670572132139952,186.318944611331347,66.7359690986495764],"hsluv":[125.670572132139952,98.1524285745497451,66.7359690986495764]},"#33bb22":{"lch":[66.7929473545782,95.8553977164860243,126.423299967719473],"luv":[66.7929473545782,-56.9137739802675,77.1302768224563],"rgb":[0.2,0.733333333333333282,0.133333333333333331],"xyz":[0.194234581540683404,0.363585087622270597,0.0750767523209],"hpluv":[126.423299967719473,182.106434833594022,66.7929473545782],"hsluv":[126.423299967719473,94.7659081903439073,66.7929473545782]},"#33bb33":{"lch":[66.8865907457163,92.4406335233364302,127.715012949240233],"luv":[66.8865907457163,-56.5491099236273058,73.126389853740946],"rgb":[0.2,0.733333333333333282,0.2],"xyz":[0.197322332273141166,0.364820187915253724,0.0913389061785111478],"hpluv":[127.715012949240233,175.373180985258983,66.8865907457163],"hsluv":[127.715012949240233,89.2962069049265637,66.8865907457163]},"#33bb44":{"lch":[67.0214179407225572,87.725631811763563,129.70178400392939],"luv":[67.0214179407225572,-56.0384119529137763,67.4943172612971409],"rgb":[0.2,0.733333333333333282,0.266666666666666663],"xyz":[0.201780327517360025,0.36660338601294129,0.114817681131397786],"hpluv":[129.70178400392939,166.093340387543549,67.0214179407225572],"hsluv":[129.70178400392939,89.4761749642590871,67.0214179407225572]},"#33bb55":{"lch":[67.2010629421400552,81.8171313208689099,132.60288320444127],"luv":[67.2010629421400552,-55.3830806540106479,60.2225651632978796],"rgb":[0.2,0.733333333333333282,0.333333333333333315],"xyz":[0.207742741556722,0.368988351628686151,0.146219728405371674],"hpluv":[132.60288320444127,154.492511096020365,67.2010629421400552],"hsluv":[132.60288320444127,89.7076242739581,67.2010629421400552]},"#33bb66":{"lch":[67.4284803792762091,74.9653268862145,136.738510871982356],"luv":[67.4284803792762091,-54.5922668909562248,51.3759148907695788],"rgb":[0.2,0.733333333333333282,0.4],"xyz":[0.215327737330230196,0.372022349938089469,0.186167372812515663],"hpluv":[136.738510871982356,141.07705768332076,67.4284803792762091],"hsluv":[136.738510871982356,89.9877463438330096,67.4284803792762091]},"#33bb77":{"lch":[67.7060530794905446,67.5982244112705,142.572908280802977],"luv":[67.7060530794905446,-53.681598162732449,41.0829156980295878],"rgb":[0.2,0.733333333333333282,0.466666666666666674],"xyz":[0.224641750350432101,0.375747955146170265,0.235221174718913573],"hpluv":[142.572908280802977,126.69139486293237,67.7060530794905446],"hsluv":[142.572908280802977,90.3115397167098,67.7060530794905446]},"#33bb88":{"lch":[68.0356563096068641,60.380187227113133,150.730801091974854],"luv":[68.0356563096068641,-52.67158330257773,29.5206931148449],"rgb":[0.2,0.733333333333333282,0.533333333333333326],"xyz":[0.235782167452375957,0.380204121986947863,0.293894038122485712],"hpluv":[150.730801091974854,112.615249481580875,68.0356563096068641],"hsluv":[150.730801091974854,90.6723452470342437,68.0356563096068641]},"#33bb99":{"lch":[68.4187011865960244,54.2829584497859159,161.862695711717],"luv":[68.4187011865960244,-51.585814888834193,16.8980259295610082],"rgb":[0.2,0.733333333333333282,0.6],"xyz":[0.248839131561448657,0.385426907630577,0.362660715763603647],"hpluv":[161.862695711717,100.676477021468287,68.4187011865960244],"hsluv":[161.862695711717,91.0624469223214,68.4187011865960244]},"#33bbaa":{"lch":[68.8561680799326439,50.5661966451060749,176.101011456941364],"luv":[68.8561680799326439,-50.4491601398581224,3.43838397135738649],"rgb":[0.2,0.733333333333333282,0.66666666666666663],"xyz":[0.263896824526701212,0.391449984816678143,0.441964565380602248],"hpluv":[176.101011456941364,93.1873079321678404,68.8561680799326439],"hsluv":[176.101011456941364,91.473675634614068,68.8561680799326439]},"#33bbbb":{"lch":[69.3486356756669835,50.4205674478029,192.177050630061103],"luv":[69.3486356756669835,-49.286127891295429,-10.635375839212843],"rgb":[0.2,0.733333333333333282,0.733333333333333282],"xyz":[0.281034416634037831,0.398305021659612901,0.532222550479243939],"hpluv":[192.177050630061103,92.2590830970113132,69.3486356756669835],"hsluv":[192.177050630061103,91.8979539795913922,69.3486356756669835]},"#33bbcc":{"lch":[69.8963087653012423,54.2786660468549442,207.559867588447844],"luv":[69.8963087653012423,-48.1195504219082224,-25.1133919457216273],"rgb":[0.2,0.733333333333333282,0.8],"xyz":[0.300326792077759586,0.406021971837101703,0.633829061149514095],"hpluv":[207.559867588447844,98.540384199822455,69.8963087653012423],"hsluv":[207.559867588447844,92.3277362004695306,69.8963087653012423]},"#33bbdd":{"lch":[70.4990463576295241,61.569428837921933,220.28187220447964],"luv":[70.4990463576295241,-46.9696505240293618,-39.807618580850594],"rgb":[0.2,0.733333333333333282,0.866666666666666696],"xyz":[0.321845117628393129,0.414629302057355209,0.747158909049520092],"hpluv":[220.28187220447964,110.820781636478685,70.4990463576295241],"hsluv":[220.28187220447964,92.7563200135089119,70.4990463576295241]},"#33bbee":{"lch":[71.1563908243766576,71.2672074810155181,229.953995552192254],"luv":[71.1563908243766576,-45.8534981630350487,-54.557048750410388],"rgb":[0.2,0.733333333333333282,0.933333333333333348],"xyz":[0.345657297894567894,0.424154174163825226,0.872569725118043316],"hpluv":[229.953995552192254,127.091105244163856,71.1563908243766576],"hsluv":[229.953995552192254,93.1780289437208893,71.1563908243766576]},"#33bbff":{"lch":[71.8675982303626597,82.4526478797043296,237.101125866277243],"luv":[71.8675982303626597,-44.7848112977892,-69.2297610814592161],"rgb":[0.2,0.733333333333333282,1],"xyz":[0.37182834630439926,0.43462259352775795,1.01040391340982527],"hpluv":[237.101125866277243,145.583046200088774,71.8675982303626597],"hsluv":[237.101125866277243,99.9999999999977831,71.8675982303626597]},"#33cc00":{"lch":[72.1534232831706532,108.011475964841438,125.713046635977918],"luv":[72.1534232831706532,-63.0491190384013507,87.6999859098336287],"rgb":[0.2,0.8,0],"xyz":[0.229571301212186191,0.438877764786259839,0.0726130089300371234],"hpluv":[125.713046635977918,189.955680955455,72.1534232831706532],"hsluv":[125.713046635977918,100.000000000002402,72.1534232831706532]},"#33cc11":{"lch":[72.1805088449519,106.967132064598133,126.040754358939225],"luv":[72.1805088449519,-62.9352412435677095,86.493483868665578],"rgb":[0.2,0.8,0.0666666666666666657],"xyz":[0.230582966711823323,0.439282430986114691,0.0779411138947927601],"hpluv":[126.040754358939225,188.048441784684599,72.1805088449519],"hsluv":[126.040754358939225,98.4728126855506645,72.1805088449519]},"#33cc22":{"lch":[72.2306742907645543,105.057034533260762,126.660198785960176],"luv":[72.2306742907645543,-62.7261976516662614,84.2757653960309199],"rgb":[0.2,0.8,0.133333333333333331],"xyz":[0.232458324850300324,0.440032574241505492,0.0878180000907719527],"hpluv":[126.660198785960176,184.562215611711281,72.2306742907645543],"hsluv":[126.660198785960176,95.6680740449206866,72.2306742907645543]},"#33cc33":{"lch":[72.31314692234902,101.984984863208481,127.715012949240304],"luv":[72.31314692234902,-62.3877173898115416,80.6765756365369668],"rgb":[0.2,0.8,0.2],"xyz":[0.235546075582758085,0.441267674534488619,0.104080153948383103],"hpluv":[127.715012949240304,178.960959976488198,72.31314692234902],"hsluv":[127.715012949240304,91.1230258822071306,72.31314692234902]},"#33cc44":{"lch":[72.4319472107582669,97.7091257880760651,129.318260791805528],"luv":[72.4319472107582669,-61.9111863445413135,75.5915224590797123],"rgb":[0.2,0.8,0.266666666666666663],"xyz":[0.240004070826976945,0.443050872632176185,0.127558928901269741],"hpluv":[129.318260791805528,171.176559629977817,72.4319472107582669],"hsluv":[129.318260791805528,91.2471619418673612,72.4319472107582669]},"#33cc55":{"lch":[72.590341240881628,92.2844112105744756,131.621023493746776],"luv":[72.590341240881628,-61.2953573189119396,68.9876200751215407],"rgb":[0.2,0.8,0.333333333333333315],"xyz":[0.24596648486633893,0.445435838247921045,0.158960976175243629],"hpluv":[131.621023493746776,161.32023063104279,72.590341240881628],"hsluv":[131.621023493746776,91.4078622695478,72.590341240881628]},"#33cc66":{"lch":[72.7910248315973405,85.8719567505974197,134.835055825888389],"luv":[72.7910248315973405,-60.5455878238572112,60.8951948123993319],"rgb":[0.2,0.8,0.4],"xyz":[0.253551480639847115,0.448469836557324364,0.198908620582387619],"hpluv":[134.835055825888389,149.696915507144809,72.7910248315973405],"hsluv":[134.835055825888389,91.6039613293452533,72.7910248315973405]},"#33cc77":{"lch":[73.0362204241858421,78.757716060864837,139.259917231121676],"luv":[73.0362204241858421,-59.6729854923348,51.3995393126768079],"rgb":[0.2,0.8,0.466666666666666674],"xyz":[0.262865493660049,0.452195441765405159,0.247962422488785528],"hpluv":[139.259917231121676,136.834039856532058,73.0362204241858421],"hsluv":[139.259917231121676,91.8328510325735294,73.0362204241858421]},"#33cc88":{"lch":[73.3277345291399,71.3846311778678597,145.306874573990314],"luv":[73.3277345291399,-58.6933246064594201,40.6307668527313197],"rgb":[0.2,0.8,0.533333333333333326],"xyz":[0.274005910761992877,0.456651608606182757,0.306635285892357667],"hpluv":[145.306874573990314,123.530949311180805,73.3277345291399],"hsluv":[145.306874573990314,92.0907512285691894,73.3277345291399]},"#33cc99":{"lch":[73.6669954969027714,64.400374936046,153.483372150156],"luv":[73.6669954969027714,-57.6257667092137709,28.7520312861295437],"rgb":[0.2,0.8,0.6],"xyz":[0.287062874871065576,0.461874394249811915,0.375401963533475602],"hpluv":[153.483372150156,110.931469165383049,73.6669954969027714],"hsluv":[153.483372150156,92.3730273510429072,73.6669954969027714]},"#33ccaa":{"lch":[74.0550811623464114,58.6991946004706691,164.236139418897579],"luv":[74.0550811623464114,-56.4914910882685106,15.9470022690160835],"rgb":[0.2,0.8,0.66666666666666663],"xyz":[0.302120567836318132,0.467897471435913037,0.454705813150474203],"hpluv":[164.236139418897579,100.581152280716978,74.0550811623464114],"hsluv":[164.236139418897579,92.6745296641919794,74.0550811623464114]},"#33ccbb":{"lch":[74.4927414449451106,55.3647402049724846,177.507530206592946],"luv":[74.4927414449451106,-55.3123621552270137,2.40770653799565881],"rgb":[0.2,0.8,0.733333333333333282],"xyz":[0.319258159943654751,0.474752508278847796,0.544963798249115894],"hpluv":[177.507530206592946,94.310193436061823,74.4927414449451106],"hsluv":[177.507530206592946,92.9899230693886,74.4927414449451106]},"#33cccc":{"lch":[74.9804187561532416,55.3552144916165361,192.177050630061132],"luv":[74.9804187561532416,-54.1097476482840918,-11.6762571422475752],"rgb":[0.2,0.8,0.8],"xyz":[0.338550535387376506,0.482469458456336597,0.646570308919386],"hpluv":[192.177050630061132,93.6806731785530928,74.9804187561532416],"hsluv":[192.177050630061132,93.3139795405001422,74.9804187561532416]},"#33ccdd":{"lch":[75.5182678303382602,59.0031963362726231,206.282454691493683],"luv":[75.5182678303382602,-52.9035678654544128,-26.1264173778571198],"rgb":[0.2,0.8,0.866666666666666696],"xyz":[0.360068860938010049,0.491076788676590104,0.759900156819392],"hpluv":[206.282454691493683,99.1431801932779564,75.5182678303382602],"hsluv":[206.282454691493683,93.6418135046530296,75.5182678303382602]},"#33ccee":{"lch":[76.106175853756767,65.8577115847402439,218.26062431545347],"luv":[76.106175853756767,-51.7116147040808585,-40.7817003063324606],"rgb":[0.2,0.8,0.933333333333333348],"xyz":[0.383881041204184759,0.500601660783060121,0.885310972887915271],"hpluv":[218.26062431545347,110.229350215344013,76.106175853756767],"hsluv":[218.26062431545347,93.969050662624,76.106175853756767]},"#33ccff":{"lch":[76.7437832939395435,75.0714180144803,227.674056146546604],"luv":[76.7437832939395435,-50.5491406549608,-55.5022718611574248],"rgb":[0.2,0.8,1],"xyz":[0.41005208961401618,0.511070080146992844,1.02314516117969712],"hpluv":[227.674056146546604,129.845560156838474,76.7437832939395435],"hsluv":[227.674056146546604,99.9999999999969731,76.7437832939395435]},"#33dd00":{"lch":[77.5280782787270653,116.686614644285086,126.047543424376144],"luv":[77.5280782787270653,-68.6649809221669187,94.3445092843369508],"rgb":[0.2,0.866666666666666696,0],"xyz":[0.272205291759361367,0.524145745880611358,0.0868243391124284419],"hpluv":[126.047543424376144,210.356208283509261,77.5280782787270653],"hsluv":[126.047543424376144,100.000000000002416,77.5280782787270653]},"#33dd11":{"lch":[77.5521415069474926,115.747372453695789,126.322097671746874],"luv":[77.5521415069474926,-68.5599423432795,93.2576459912042],"rgb":[0.2,0.866666666666666696,0.0666666666666666657],"xyz":[0.273216957258998472,0.524550412080466266,0.0921524440771840786],"hpluv":[126.322097671746874,208.932074165120611,77.5521415069474926],"hsluv":[126.322097671746874,98.7203227917640902,77.5521415069474926]},"#33dd22":{"lch":[77.5967156031793337,114.025807364398673,126.839335004613],"luv":[77.5967156031793337,-68.36681588768,91.2571270119929778],"rgb":[0.2,0.866666666666666696,0.133333333333333331],"xyz":[0.275092315397475529,0.525300555335857067,0.102029330273163271],"hpluv":[126.839335004613,206.31706664059891,77.5967156031793337],"hsluv":[126.839335004613,96.3665979525037102,77.5967156031793337]},"#33dd33":{"lch":[77.670013861504259,111.246421345384377,127.715012949240332],"luv":[77.670013861504259,-68.0532561222895,88.0029578668175247],"rgb":[0.2,0.866666666666666696,0.2],"xyz":[0.278180066129933234,0.526535655628840193,0.118291484130774421],"hpluv":[127.715012949240332,202.082466523340599,77.670013861504259],"hsluv":[127.715012949240332,92.5426273046004439,77.670013861504259]},"#33dd44":{"lch":[77.7756375941771267,107.354265763003397,129.034195217585733],"luv":[77.7756375941771267,-67.6100090567609726,83.3895979895470134],"rgb":[0.2,0.866666666666666696,0.266666666666666663],"xyz":[0.28263806137415215,0.52831885372652776,0.14177025908366106],"hpluv":[129.034195217585733,196.125875311323085,77.7756375941771267],"hsluv":[129.034195217585733,92.6304308505642098,77.7756375941771267]},"#33dd55":{"lch":[77.9165348137244,102.370875286307594,130.905664069221132],"luv":[77.9165348137244,-67.0340391276217105,77.3707548439410431],"rgb":[0.2,0.866666666666666696,0.333333333333333315],"xyz":[0.288600475413514135,0.530703819342272509,0.173172306357634975],"hpluv":[130.905664069221132,188.454179514464698,77.9165348137244],"hsluv":[130.905664069221132,92.7446831943234287,77.9165348137244]},"#33dd66":{"lch":[78.095166356878579,96.3992072274516261,133.476315028685519],"luv":[78.095166356878579,-66.3279238591037767,69.9529389705828777],"rgb":[0.2,0.866666666666666696,0.4],"xyz":[0.29618547118702232,0.533737817651675828,0.213119950764778909],"hpluv":[133.476315028685519,179.196222734944627,78.095166356878579],"hsluv":[133.476315028685519,92.8850067954864187,78.095166356878579]},"#33dd77":{"lch":[78.3135937781308513,89.6343875602499196,136.948304354896891],"luv":[78.3135937781308513,-65.499258897229538,61.1896275296294192],"rgb":[0.2,0.866666666666666696,0.466666666666666674],"xyz":[0.305499484207224226,0.537463422859756679,0.262173752671176818],"hpluv":[136.948304354896891,168.630388284117117,78.3135937781308513],"hsluv":[136.948304354896891,93.050064801238122,78.3135937781308513]},"#33dd88":{"lch":[78.5735314106716487,82.3820261839553609,141.59738099104726],"luv":[78.5735314106716487,-64.5599157920348432,51.1743638074698],"rgb":[0.2,0.866666666666666696,0.533333333333333326],"xyz":[0.316639901309168,0.541919589700534221,0.320846616074749],"hpluv":[141.59738099104726,157.233383580683977,78.5735314106716487],"hsluv":[141.59738099104726,93.2377028740416449,78.5735314106716487]},"#33dd99":{"lch":[78.8763801167060592,75.0869406053615762,147.781507566587862],"luv":[78.8763801167060592,-63.5251386535812799,40.0325543591259105],"rgb":[0.2,0.866666666666666696,0.6],"xyz":[0.329696865418240725,0.547142375344163434,0.389613293715866893],"hpluv":[147.781507566587862,145.760006886720333,78.8763801167060592],"hsluv":[147.781507566587862,93.4451205095912343,78.8763801167060592]},"#33ddaa":{"lch":[79.2232512041385633,68.3697583649377094,155.904677195463563],"luv":[79.2232512041385633,-62.4125308872686801,27.9123601138582131],"rgb":[0.2,0.866666666666666696,0.66666666666666663],"xyz":[0.344754558383493281,0.553165452530264501,0.468917143332865494],"hpluv":[155.904677195463563,135.355769729163313,79.2232512041385633],"hsluv":[155.904677195463563,93.6690625743759,79.2232512041385633]},"#33ddbb":{"lch":[79.6149850527770866,63.045401416642612,166.259028854183981],"luv":[79.6149850527770866,-61.2410113290283604,14.9753521221847095],"rgb":[0.2,0.866666666666666696,0.733333333333333282],"xyz":[0.361892150490829956,0.560020489373199259,0.559175128431507296],"hpluv":[166.259028854183981,127.658944712944631,79.6149850527770866],"hsluv":[166.259028854183981,93.9060163408359614,79.6149850527770866]},"#33ddcc":{"lch":[80.0521670478692613,60.0458591823856054,178.675787060338223],"luv":[80.0521670478692613,-60.0298228841068138,1.3876488942262355],"rgb":[0.2,0.866666666666666696,0.8],"xyz":[0.381184525934551655,0.567737439550688117,0.660781639101777452],"hpluv":[178.675787060338223,124.734340702728062,80.0521670478692613],"hsluv":[178.675787060338223,94.1523985056595905,80.0521670478692613]},"#33dddd":{"lch":[80.5351423549551555,60.1510343961145963,192.177050630061245],"luv":[80.5351423549551555,-58.7976638126828,-12.6878551809710149],"rgb":[0.2,0.866666666666666696,0.866666666666666696],"xyz":[0.402702851485185254,0.576344769770941623,0.774111487001783449],"hpluv":[192.177050630061245,128.603021497070955,80.5351423549551555],"hsluv":[192.177050630061245,94.4047190696773271,80.5351423549551555]},"#33ddee":{"lch":[81.0640304387754,63.6213092914002303,205.209077734070348],"luv":[81.0640304387754,-57.5619892131040913,-27.0977562499646396],"rgb":[0.2,0.866666666666666696,0.933333333333333348],"xyz":[0.426515031751359963,0.58586964187741164,0.899522303070306672],"hpluv":[205.209077734070348,140.476637056352985,81.0640304387754],"hsluv":[205.209077734070348,94.6597131799347835,81.0640304387754]},"#33ddff":{"lch":[81.6387398294900208,70.0938175080633528,216.50946924270437],"luv":[81.6387398294900208,-56.3385046754299452,-41.7027114680837769],"rgb":[0.2,0.866666666666666696,1],"xyz":[0.452686080161191384,0.596338061241344364,1.03735649136208852],"hpluv":[216.50946924270437,160.421433033358312,81.6387398294900208],"hsluv":[216.50946924270437,99.999999999996,81.6387398294900208]},"#33ee00":{"lch":[82.833762600699373,125.203353646442437,126.3077634478595],"luv":[82.833762600699373,-74.1357070958390239,100.894879442497455],"rgb":[0.2,0.933333333333333348,0],"xyz":[0.319384068099876184,0.618503298561642323,0.102550597892599626],"hpluv":[126.3077634478595,309.713105305240845,82.833762600699373],"hsluv":[126.3077634478595,100.000000000002302,82.833762600699373]},"#33ee11":{"lch":[82.85531245284119,124.353122892884315,126.540515263097504],"luv":[82.85531245284119,-74.0387382831010541,99.9097813362598544],"rgb":[0.2,0.933333333333333348,0.0666666666666666657],"xyz":[0.320395733599513288,0.618907964761497231,0.107878702857355263],"hpluv":[126.540515263097504,308.054239915702169,82.85531245284119],"hsluv":[126.540515263097504,98.9149262576223833,82.85531245284119]},"#33ee22":{"lch":[82.8952353009988,122.792060636983948,126.977870705292972],"luv":[82.8952353009988,-73.860225327277135,98.0946342573363808],"rgb":[0.2,0.933333333333333348,0.133333333333333331],"xyz":[0.322271091737990345,0.619658108016888,0.117755589053334456],"hpluv":[126.977870705292972,305.002845011722627,82.8952353009988],"hsluv":[126.977870705292972,96.9167682151396264,82.8952353009988]},"#33ee33":{"lch":[82.9608975691188846,120.264250910780831,127.715012949240375],"luv":[82.9608975691188846,-73.5697721383487391,95.1366316128687259],"rgb":[0.2,0.933333333333333348,0.2],"xyz":[0.325358842470448051,0.620893208309871159,0.134017742910945592],"hpluv":[127.715012949240375,300.046240285686,82.9608975691188846],"hsluv":[127.715012949240375,93.6639064416312834,82.9608975691188846]},"#33ee44":{"lch":[83.0555452014946241,116.707569363843,128.817932535493583],"luv":[83.0555452014946241,-73.1578713419028,90.9317469728687513],"rgb":[0.2,0.933333333333333348,0.266666666666666663],"xyz":[0.329816837714666966,0.622676406407558725,0.157496517863832231],"hpluv":[128.817932535493583,293.039720989359807,83.0555452014946241],"hsluv":[128.817932535493583,93.7274034182796356,83.0555452014946241]},"#33ee55":{"lch":[83.1818510898783643,112.121671621867506,130.367812557605703],"luv":[83.1818510898783643,-72.6203079673681202,85.4257579305358092],"rgb":[0.2,0.933333333333333348,0.333333333333333315],"xyz":[0.335779251754028951,0.625061372023303474,0.188898565137806146],"hpluv":[130.367812557605703,283.950089878719211,83.1818510898783643],"hsluv":[130.367812557605703,93.8103653792530139,83.1818510898783643]},"#33ee66":{"lch":[83.3420657578551,106.5703857928128,132.470647679843353],"luv":[83.3420657578551,-71.9576476395269,78.6088040502757224],"rgb":[0.2,0.933333333333333348,0.4],"xyz":[0.343364247527537136,0.628095370332706793,0.228846209544950108],"hpluv":[132.470647679843353,272.865433725808,83.3420657578551],"hsluv":[132.470647679843353,93.912785079345241,83.3420657578551]},"#33ee77":{"lch":[83.5380975272703523,100.188150337510052,135.268396470867572],"luv":[83.5380975272703523,-71.1748024762597851,70.5110839550557387],"rgb":[0.2,0.933333333333333348,0.466666666666666674],"xyz":[0.352678260547739042,0.631820975540787644,0.277900011451348],"hpluv":[135.268396470867572,260.019238129472967,83.5380975272703523],"hsluv":[135.268396470867572,94.0340074276028304,83.5380975272703523]},"#33ee88":{"lch":[83.7715600973053682,93.1909370684561651,138.951686086792108],"luv":[83.7715600973053682,-70.2805135444840801,61.1980405537673],"rgb":[0.2,0.933333333333333348,0.533333333333333326],"xyz":[0.363818677649682842,0.636277142381565186,0.336572874854920157],"hpluv":[138.951686086792108,245.83342468256393,83.7715600973053682],"hsluv":[138.951686086792108,94.1728069818675237,83.7715600973053682]},"#33ee99":{"lch":[84.0438031984902807,85.8935006436990278,143.770719305914184],"luv":[84.0438031984902807,-69.2867121669879822,50.7646035138469784],"rgb":[0.2,0.933333333333333348,0.6],"xyz":[0.376875641758755542,0.641499928025194399,0.405339552496038091],"hpluv":[143.770719305914184,230.989810482694878,84.0438031984902807],"hsluv":[143.770719305914184,94.3274826341768886,84.0438031984902807]},"#33eeaa":{"lch":[84.3559338989094698,78.7339796376561907,150.032255922422308],"luv":[84.3559338989094698,-68.2077782157370223,39.328596980513943],"rgb":[0.2,0.933333333333333348,0.66666666666666663],"xyz":[0.391933334724008098,0.647523005211295466,0.484643402113036692],"hpluv":[150.032255922422308,216.540119706931335,84.3559338989094698],"hsluv":[150.032255922422308,94.495967075681591,84.3559338989094698]},"#33eebb":{"lch":[84.7088326356722,72.2999891840671,158.051587623557367],"luv":[84.7088326356722,-67.0597412553262,27.0236847743774931],"rgb":[0.2,0.933333333333333348,0.733333333333333282],"xyz":[0.409070926831344772,0.654378042054230225,0.574901387211678383],"hpluv":[158.051587623557367,204.04938686040532,84.7088326356722],"hsluv":[158.051587623557367,94.6759444498571838,84.7088326356722]},"#33eecc":{"lch":[85.1031663228954,67.3294619946068451,168.005441410177127],"luv":[85.1031663228954,-65.8594808644086,13.992327638881461],"rgb":[0.2,0.933333333333333348,0.8],"xyz":[0.428363302275066471,0.662094992231719082,0.676507897881948539],"hpluv":[168.005441410177127,195.708498626929867,85.1031663228954],"hsluv":[168.005441410177127,94.8649680125767389,85.1031663228954]},"#33eedd":{"lch":[85.539399954776755,64.6250931348259314,179.663789762776076],"luv":[85.539399954776755,-64.6239805156479861,0.37921629457989664],"rgb":[0.2,0.933333333333333348,0.866666666666666696],"xyz":[0.44988162782570007,0.670702322451972588,0.789837745781954537],"hpluv":[179.663789762776076,194.233009793031641,85.539399954776755],"hsluv":[179.663789762776076,95.0605698730458926,85.539399954776755]},"#33eeee":{"lch":[86.0178075751720286,64.8282855412949601,192.177050630061217],"luv":[86.0178075751720286,-63.3696789602654533,-13.6744431219908602],"rgb":[0.2,0.933333333333333348,0.933333333333333348],"xyz":[0.47369380809187478,0.680227194558442605,0.91524856185047776],"hpluv":[192.177050630061217,202.327515221469156,86.0178075751720286],"hsluv":[192.177050630061217,95.2603564020327127,86.0178075751720286]},"#33eeff":{"lch":[86.538483142230433,68.1460620684978124,204.293044736593487],"luv":[86.538483142230433,-62.1119480142598803,-28.035543321245509],"rgb":[0.2,0.933333333333333348,1],"xyz":[0.499864856501706201,0.690695613922375329,1.05308275014225972],"hpluv":[204.293044736593487,221.878852364873978,86.538483142230433],"hsluv":[204.293044736593487,99.999999999993932,86.538483142230433]},"#33ff00":{"lch":[88.074762753062231,133.577745567808222,126.513803819973305],"luv":[88.074762753062231,-79.4809541468946,107.358241597361044],"rgb":[0.2,1,0],"xyz":[0.37123644052955,0.72220804342099143,0.119834722035823737],"hpluv":[126.513803819973305,497.272976699974663,88.074762753062231],"hsluv":[126.513803819973305,100.00000000000226,88.074762753062231]},"#33ff11":{"lch":[88.0941974462199,132.80363803677966,126.71317891025123],"luv":[88.0941974462199,-79.3912833442141448,106.460464045403725],"rgb":[0.2,1,0.0666666666666666657],"xyz":[0.37224810602918712,0.722612709620846339,0.125162827000579374],"hpluv":[126.71317891025123,495.277769978645495,88.0941974462199],"hsluv":[126.71317891025123,99.9999999999917861,88.0941974462199]},"#33ff22":{"lch":[88.1302050034733355,131.38040615815558,127.087058789859782],"luv":[88.1302050034733355,-79.2260405323659285,104.804797713872986],"rgb":[0.2,1,0.133333333333333331],"xyz":[0.374123464167664177,0.723362852876237139,0.135039713196558553],"hpluv":[127.087058789859782,491.602558840386564,88.1302050034733355],"hsluv":[127.087058789859782,99.9999999999915161,88.1302050034733355]},"#33ff33":{"lch":[88.1894367416410745,129.070276381710187,127.715012949240347],"luv":[88.1894367416410745,-78.9567203165017162,102.10275491931047],"rgb":[0.2,1,0.2],"xyz":[0.377211214900121883,0.724597953169220266,0.151301867054169703],"hpluv":[127.715012949240347,485.618062737129037,88.1894367416410745],"hsluv":[127.715012949240347,99.9999999999917577,88.1894367416410745]},"#33ff44":{"lch":[88.2748349985884,125.807640063387211,128.649544439126117],"luv":[88.2748349985884,-78.5738101086462137,98.2533391968394909],"rgb":[0.2,1,0.266666666666666663],"xyz":[0.381669210144340798,0.726381151266907832,0.174780642007056342],"hpluv":[128.649544439126117,477.126267833886629,88.2748349985884],"hsluv":[128.649544439126117,99.9999999999917151,88.2748349985884]},"#33ff55":{"lch":[88.3888340150102181,121.57774004888698,129.95306271607248],"luv":[88.3888340150102181,-78.0723424240601,93.1979410921456122],"rgb":[0.2,1,0.333333333333333315],"xyz":[0.387631624183702783,0.728766116882652581,0.206182689281030257],"hpluv":[129.95306271607248,466.04908765344419,88.3888340150102181],"hsluv":[129.95306271607248,99.999999999991644,88.3888340150102181]},"#33ff66":{"lch":[88.5334972733264,116.417510431790106,131.704600668064415],"luv":[88.5334972733264,-77.4514410423726929,86.9155395518881],"rgb":[0.2,1,0.4],"xyz":[0.395216619957210968,0.7318001151920559,0.246130333688174219],"hpluv":[131.704600668064415,452.43688525451455,88.5334972733264],"hsluv":[131.704600668064415,99.9999999999913882,88.5334972733264]},"#33ff77":{"lch":[88.7105909437740081,110.419515958012653,134.007319384137503],"luv":[88.7105909437740081,-76.7139872603015505,79.419353202025647],"rgb":[0.2,1,0.466666666666666674],"xyz":[0.404530632977412874,0.735525720400136751,0.295184135594572128],"hpluv":[134.007319384137503,436.493157669178117,88.7105909437740081],"hsluv":[134.007319384137503,99.9999999999915,88.7105909437740081]},"#33ff88":{"lch":[88.9216276204312379,103.738746998712813,136.99719245927011],"luv":[88.9216276204312379,-75.8662497359534882,70.7533729221786558],"rgb":[0.2,1,0.533333333333333326],"xyz":[0.415671050079356674,0.739981887240914293,0.353856998998144268],"hpluv":[136.99719245927011,418.619650658891032,88.9216276204312379],"hsluv":[136.99719245927011,99.9999999999912603,88.9216276204312379]},"#33ff99":{"lch":[89.1678944508512359,96.6032590942606788,140.85189111032139],"luv":[89.1678944508512359,-74.9174292298428242,60.9882649796200695],"rgb":[0.2,1,0.6],"xyz":[0.428728014188429429,0.745204672884543506,0.422623676639262202],"hpluv":[140.85189111032139,399.492483487252343,89.1678944508512359],"hsluv":[140.85189111032139,99.9999999999913456,89.1678944508512359]},"#33ffaa":{"lch":[89.4504724790268426,89.3298939826383105,145.795546705853383],"luv":[89.4504724790268426,-73.8791171714821,50.2165909327964926],"rgb":[0.2,1,0.66666666666666663],"xyz":[0.44378570715368193,0.751227750070644573,0.501927526256260803],"hpluv":[145.795546705853383,380.184928602968114,89.4504724790268426],"hsluv":[145.795546705853383,99.9999999999912,89.4504724790268426]},"#33ffbb":{"lch":[89.7702508712150262,82.3444719603705,152.087330110215447],"luv":[89.7702508712150262,-72.7646918614874494,38.5475249625060314],"rgb":[0.2,1,0.733333333333333282],"xyz":[0.460923299261018604,0.758082786913579332,0.592185511354902605],"hpluv":[152.087330110215447,362.351543222333419,89.7702508712150262],"hsluv":[152.087330110215447,99.9999999999909761,89.7702508712150262]},"#33ffcc":{"lch":[90.127938152783571,76.1985663634222,159.968053619612647],"luv":[90.127938152783571,-71.5886883295869723,26.1013643147272063],"rgb":[0.2,1,0.8],"xyz":[0.480215674704740358,0.765799737091068189,0.693792022025172761],"hpluv":[159.968053619612647,348.464440630653087,90.127938152783571],"hsluv":[159.968053619612647,99.999999999990834,90.127938152783571]},"#33ffdd":{"lch":[90.5240717550146314,71.5577226375514357,169.529475161807255],"luv":[90.5240717550146314,-70.3661811113599924,13.0041618290463337],"rgb":[0.2,1,0.866666666666666696],"xyz":[0.501734000255373846,0.774407067311321695,0.807121869925178759],"hpluv":[169.529475161807255,342.013155745428833,90.5240717550146314],"hsluv":[169.529475161807255,99.9999999999904077,90.5240717550146314]},"#33ffee":{"lch":[90.9590266887802,69.1149718308150511,180.51167449693034],"luv":[90.9590266887802,-69.1122158161064561,-0.61721646306864264],"rgb":[0.2,1,0.933333333333333348],"xyz":[0.525546180521548667,0.783931939417791712,0.932532685993702],"hpluv":[180.51167449693034,347.442342228089899,90.9590266887802],"hsluv":[180.51167449693034,99.9999999999901519,90.9590266887802]},"#33ffff":{"lch":[91.4330238629877243,69.4028497051403122,192.177050630061132],"luv":[91.4330238629877243,-67.8413175363212702,-14.6393709608822622],"rgb":[0.2,1,1],"xyz":[0.55171722893138,0.794400358781724436,1.07036687428548372],"hpluv":[192.177050630061132,369.590917988860895,91.4330238629877243],"hsluv":[192.177050630061132,99.9999999999897256,91.4330238629877243]},"#22aa00":{"lch":[60.8595101229647923,91.9296409673314656,126.268252023172565],"luv":[60.8595101229647923,-54.3824975763784053,74.1188427172042594],"rgb":[0.133333333333333331,0.66666666666666663,0],"xyz":[0.150337683054585614,0.290883353615456,0.0482228743965988915],"hpluv":[126.268252023172565,191.675426474830772,60.8595101229647923],"hsluv":[126.268252023172565,100.000000000002288,60.8595101229647923]},"#22aa11":{"lch":[60.8951349805759605,90.6090655032342482,126.765726538166419],"luv":[60.8951349805759605,-54.2335583573106,72.5859759132132893],"rgb":[0.133333333333333331,0.66666666666666663,0.0666666666666666657],"xyz":[0.151349348554222746,0.291288019815310828,0.0535509793613545212],"hpluv":[126.765726538166419,188.811473003651798,60.8951349805759605],"hsluv":[126.765726538166419,97.6988909499644365,60.8951349805759605]},"#22aa22":{"lch":[60.9610867967894592,88.21068058626,127.715012949240347],"luv":[60.9610867967894592,-53.9615024560723953,69.7802294505720226],"rgb":[0.133333333333333331,0.66666666666666663,0.133333333333333331],"xyz":[0.153224706692699747,0.292038163070701628,0.0634278655573337208],"hpluv":[127.715012949240347,183.614848439340193,60.9610867967894592],"hsluv":[127.715012949240347,93.4926845994439475,60.9610867967894592]},"#22aa33":{"lch":[61.0694299105106495,84.4016098893730629,129.358188857231823],"luv":[61.0694299105106495,-53.5246691509727626,65.259034196016259],"rgb":[0.133333333333333331,0.66666666666666663,0.2],"xyz":[0.156312457425157481,0.293273263363684755,0.0796900194149448571],"hpluv":[129.358188857231823,175.374397166590711,61.0694299105106495],"hsluv":[129.358188857231823,93.5882360519160699,61.0694299105106495]},"#22aa44":{"lch":[61.2253168994486145,79.2082340196825214,131.918899994809664],"luv":[61.2253168994486145,-52.917281977470445,58.938150671985575],"rgb":[0.133333333333333331,0.66666666666666663,0.266666666666666663],"xyz":[0.160770452669376368,0.295056461461372321,0.103168794367831496],"hpluv":[131.918899994809664,164.164260791814144,61.2253168994486145],"hsluv":[131.918899994809664,93.7213426507132397,61.2253168994486145]},"#22aa55":{"lch":[61.4328316402448422,72.8294169380228169,135.724592815827151],"luv":[61.4328316402448422,-52.1453123372646488,50.8428005993127883],"rgb":[0.133333333333333331,0.66666666666666663,0.333333333333333315],"xyz":[0.166732866708738381,0.297441427077117182,0.134570841641805411],"hpluv":[135.724592815827151,150.433869175471955,61.4328316402448422],"hsluv":[135.724592815827151,93.8909627694616802,61.4328316402448422]},"#22aa66":{"lch":[61.695221435526193,65.6694032551541511,141.26425661379642],"luv":[61.695221435526193,-51.2247747289881588,41.0912761769754056],"rgb":[0.133333333333333331,0.66666666666666663,0.4],"xyz":[0.174317862482246538,0.3004754253865205,0.174518486048949373],"hpluv":[141.26425661379642,135.067502346464636,61.695221435526193],"hsluv":[141.26425661379642,94.0939374356695737,61.695221435526193]},"#22aa77":{"lch":[62.015018576984005,58.3994247120946,149.232117680428786],"luv":[62.015018576984005,-50.1795183581889,29.8748848373309741],"rgb":[0.133333333333333331,0.66666666666666663,0.466666666666666674],"xyz":[0.183631875502448472,0.304201030594601296,0.223572287955347282],"hpluv":[149.232117680428786,119.495353216490457,62.015018576984005],"hsluv":[149.232117680428786,94.3254538020573534,62.015018576984005]},"#22aa88":{"lch":[62.3941144695078265,52.0455462506657582,160.428514439052776],"luv":[62.3941144695078265,-49.0385773736463904,17.4343572780611709],"rgb":[0.133333333333333331,0.66666666666666663,0.533333333333333326],"xyz":[0.194772292604392272,0.308657197435378894,0.282245151358919477],"hpluv":[160.428514439052776,105.847175197261592,62.3941144695078265],"hsluv":[160.428514439052776,94.5795977554836753,62.3941144695078265]},"#22aa99":{"lch":[62.8338123759312168,48.0032947436357915,175.177921691935865],"luv":[62.8338123759312168,-47.8333890460383486,4.03524455451089725],"rgb":[0.133333333333333331,0.66666666666666663,0.6],"xyz":[0.207829256713465,0.313879983079008051,0.351011829000037356],"hpluv":[175.177921691935865,96.9431131493944918,62.8338123759312168],"hsluv":[175.177921691935865,94.8499327714938119,62.8338123759312168]},"#22aaaa":{"lch":[63.334871160235295,47.6677335272966047,192.177050630061132],"luv":[63.334871160235295,-46.595231466735612,-10.0547115418935782],"rgb":[0.133333333333333331,0.66666666666666663,0.66666666666666663],"xyz":[0.222886949678717528,0.319903060265109174,0.430315678617035957],"hpluv":[192.177050630061132,95.5038628742744748,63.334871160235295],"hsluv":[192.177050630061132,95.1300327368807075,63.334871160235295]},"#22aabb":{"lch":[63.8975462810157211,51.5875561200845425,208.460106210027732],"luv":[63.8975462810157211,-45.3531553267970224,-24.5838818811491713],"rgb":[0.133333333333333331,0.66666666666666663,0.733333333333333282],"xyz":[0.240024541786054202,0.326758097108043932,0.520573663715677704],"hpluv":[208.460106210027732,102.447201536891086,63.8975462810157211],"hsluv":[208.460106210027732,95.4139121453229393,63.8975462810157211]},"#22aacc":{"lch":[64.5216311304052681,59.1142282054053112,221.706391964203618],"luv":[64.5216311304052681,-44.1325525375176184,-39.3295027027292079],"rgb":[0.133333333333333331,0.66666666666666663,0.8],"xyz":[0.259316917229775901,0.334475047285532734,0.62218017438594786],"hpluv":[221.706391964203618,116.258847224370101,64.5216311304052681],"hsluv":[221.706391964203618,95.6963242429470853,64.5216311304052681]},"#22aadd":{"lch":[65.2065000175346796,69.0826091468118619,231.553565124642319],"luv":[65.2065000175346796,-42.9543721979751538,-54.1047945713593279],"rgb":[0.133333333333333331,0.66666666666666663,0.866666666666666696],"xyz":[0.2808352427804095,0.34308237750578624,0.735510022285953857],"hpluv":[231.553565124642319,134.436491082611866,65.2065000175346796],"hsluv":[231.553565124642319,95.9729250289437,65.2065000175346796]},"#22aaee":{"lch":[65.951153016283925,80.4876559434330687,238.683318882444183],"luv":[65.951153016283925,-41.8348964739996418,-68.7612114224159825],"rgb":[0.133333333333333331,0.66666666666666663,0.933333333333333348],"xyz":[0.304647423046584209,0.352607249612256257,0.86092083835447708],"hpluv":[238.683318882444183,154.862481256054423,65.951153016283925],"hsluv":[238.683318882444183,96.2403212652285305,65.951153016283925]},"#22aaff":{"lch":[66.7542622474436911,92.6475815050926741,243.881654723446388],"luv":[66.7542622474436911,-40.785937465112724,-83.187028218555227],"rgb":[0.133333333333333331,0.66666666666666663,1],"xyz":[0.33081847145641563,0.363075668976189,0.998755026646258925],"hpluv":[243.881654723446388,176.114215620682756,66.7542622474436911],"hsluv":[243.881654723446388,99.9999999999982521,66.7542622474436911]},"#22bb00":{"lch":[66.4275479271698117,100.802558180890344,126.547308547849156],"luv":[66.4275479271698117,-60.0265444602621798,80.9812922592122533],"rgb":[0.133333333333333331,0.733333333333333282,0],"xyz":[0.184292180963184393,0.358792349432654534,0.0595410403661315105],"hpluv":[126.547308547849156,192.558484368086766,66.4275479271698117],"hsluv":[126.547308547849156,100.000000000002402,66.4275479271698117]},"#22bb11":{"lch":[66.4585250929908682,99.6331665050874449,126.950333401467461],"luv":[66.4585250929908682,-59.891738470658936,79.6225315522727612],"rgb":[0.133333333333333331,0.733333333333333282,0.0666666666666666657],"xyz":[0.185303846462821525,0.359197015632509387,0.0648691453308871402],"hpluv":[126.950333401467461,190.235936561387632,66.4585250929908682],"hsluv":[126.950333401467461,98.1323711753334464,66.4585250929908682]},"#22bb22":{"lch":[66.5158870179191553,97.5011623585143496,127.715012949240375],"luv":[66.5158870179191553,-59.6448091899021904,77.1295883430057785],"rgb":[0.133333333333333331,0.733333333333333282,0.133333333333333331],"xyz":[0.187179204601298527,0.359947158887900187,0.0747460315268663328],"hpluv":[127.715012949240375,186.004620566556611,66.5158870179191553],"hsluv":[127.715012949240375,94.7095045552014341,66.5158870179191553]},"#22bb33":{"lch":[66.6101592341861561,94.091611241079562,129.025604662043349],"luv":[66.6101592341861561,-59.2464412491434089,73.0964465979998721],"rgb":[0.133333333333333331,0.733333333333333282,0.2],"xyz":[0.19026695533375626,0.361182259180883314,0.091008185384477483],"hpluv":[129.025604662043349,179.246118589082698,66.6101592341861561],"hsluv":[129.025604662043349,94.7728361420699628,66.6101592341861561]},"#22bb44":{"lch":[66.7458880420052907,89.3893698914418735,131.03732282887168],"luv":[66.7458880420052907,-58.6886365964374903,67.424797990356],"rgb":[0.133333333333333331,0.733333333333333282,0.266666666666666663],"xyz":[0.194724950577975148,0.36296545727857088,0.114486960337364121],"hpluv":[131.03732282887168,169.941985039444177,66.7458880420052907],"hsluv":[131.03732282887168,94.8616428317247511,66.7458880420052907]},"#22bb55":{"lch":[66.9267274999506,83.5071173210959472,133.96576260666626],"luv":[66.9267274999506,-57.9730125462468777,60.1046459068846488],"rgb":[0.133333333333333331,0.733333333333333282,0.333333333333333315],"xyz":[0.200687364617337161,0.365350422894315741,0.145889007611338023],"hpluv":[133.96576260666626,158.330006142604873,66.9267274999506],"hsluv":[133.96576260666626,94.9758066387206128,66.9267274999506]},"#22bb66":{"lch":[67.1556458878222315,76.7025221245859541,138.121353671725132],"luv":[67.1556458878222315,-57.1096598103208919,51.2031606116460054],"rgb":[0.133333333333333331,0.733333333333333282,0.4],"xyz":[0.208272360390845318,0.368384421203719059,0.185836652018481985],"hpluv":[138.121353671725132,144.932719296840418,67.1556458878222315],"hsluv":[138.121353671725132,95.1139083236691363,67.1556458878222315]},"#22bb77":{"lch":[67.4350338747947831,69.4107315991336407,143.945643371462126],"luv":[67.4350338747947831,-56.1157304677756557,40.8518598743670935],"rgb":[0.133333333333333331,0.733333333333333282,0.466666666666666674],"xyz":[0.217586373411047251,0.372110026411799855,0.234890453924879894],"hpluv":[143.945643371462126,130.611184627207962,67.4350338747947831],"hsluv":[143.945643371462126,95.2734443978328471,67.4350338747947831]},"#22bb88":{"lch":[67.7667691572368653,62.2973404800357571,152.016434409622292],"luv":[67.7667691572368653,-55.0136735570032656,29.2310511724943218],"rgb":[0.133333333333333331,0.733333333333333282,0.533333333333333326],"xyz":[0.228726790512991052,0.376566193252577452,0.293563317328452089],"hpluv":[152.016434409622292,116.65196328010299,67.7667691572368653],"hsluv":[152.016434409622292,95.4510958201536823,67.7667691572368653]},"#22bb99":{"lch":[68.1522602188863402,56.3167420179958214,162.907285030510934],"luv":[68.1522602188863402,-53.8292536917802948,16.552549003324323],"rgb":[0.133333333333333331,0.733333333333333282,0.6],"xyz":[0.241783754622063779,0.38178897889620661,0.362329994969569968],"hpluv":[162.907285030510934,104.856796539193,68.1522602188863402],"hsluv":[162.907285030510934,95.6430286983925555,68.1522602188863402]},"#22bbaa":{"lch":[68.5924801056558238,52.6774965449754617,176.68900923381463],"luv":[68.5924801056558238,-52.5895649511659542,3.04241688349887474],"rgb":[0.133333333333333331,0.733333333333333282,0.66666666666666663],"xyz":[0.256841447587316307,0.387812056082307732,0.441633844586568569],"hpluv":[176.68900923381463,97.4513697523019,68.5924801056558238],"hsluv":[176.68900923381463,95.8451953079369616,68.5924801056558238]},"#22bbbb":{"lch":[69.087995915136645,52.5025293878432677,192.177050630061075],"luv":[69.087995915136645,-51.3212466461144174,-11.0745309069971647],"rgb":[0.133333333333333331,0.733333333333333282,0.733333333333333282],"xyz":[0.273979039694653,0.394667092925242491,0.531891829685210316],"hpluv":[192.177050630061075,96.4310638968393903,69.087995915136645],"hsluv":[192.177050630061075,96.05360442262905,69.087995915136645]},"#22bbcc":{"lch":[69.6389970716796824,56.2104265974936,207.07804051519031],"luv":[69.6389970716796824,-50.0490518690675117,-25.5871933841835393],"rgb":[0.133333333333333331,0.733333333333333282,0.8],"xyz":[0.293271415138374736,0.402384043102731292,0.633498340355480472],"hpluv":[207.07804051519031,102.424464009042,69.6389970716796824],"hsluv":[207.07804051519031,96.2645382772070519,69.6389970716796824]},"#22bbdd":{"lch":[70.2453239794146924,63.2897284454122868,219.558412279776348],"luv":[70.2453239794146924,-48.7948432782897541,-40.3069844585422956],"rgb":[0.133333333333333331,0.733333333333333282,0.866666666666666696],"xyz":[0.314789740689008224,0.410991373322984799,0.746828188255486469],"hpluv":[219.558412279776348,114.328666738486675,70.2453239794146924],"hsluv":[219.558412279776348,96.4747049793171101,70.2453239794146924]},"#22bbee":{"lch":[70.9064977498674409,72.7777709471329644,229.176572531806158],"luv":[70.9064977498674409,-47.5770176148035588,-55.072963774560229],"rgb":[0.133333333333333331,0.733333333333333282,0.933333333333333348],"xyz":[0.338601920955183,0.420516245429454816,0.872239004324009692],"hpluv":[229.176572531806158,130.242295294742263,70.9064977498674409],"hsluv":[229.176572531806158,96.6813261778791286,70.9064977498674409]},"#22bbff":{"lch":[71.621751136046143,83.782469360031385,236.362391595167765],"luv":[71.621751136046143,-46.4103062114400586,-69.7537500742789121],"rgb":[0.133333333333333331,0.733333333333333282,1],"xyz":[0.364772969365014355,0.43098466479338754,1.01007319261579154],"hpluv":[236.362391595167765,148.438838585801221,71.621751136046143],"hsluv":[236.362391595167765,99.9999999999977405,71.621751136046143]},"#22cc00":{"lch":[71.9091745039523431,109.499123564337054,126.755635680122666],"luv":[71.9091745039523431,-65.5246489265194185,87.7301455852794732],"rgb":[0.133333333333333331,0.8,0],"xyz":[0.222515924272801313,0.435239836051889428,0.0722822881360034586],"hpluv":[126.755635680122666,193.226045742870838,71.9091745039523431],"hsluv":[126.755635680122666,100.000000000002288,71.9091745039523431]},"#22cc11":{"lch":[71.9364107151438077,108.454952609175663,127.087674169957992],"luv":[71.9364107151438077,-65.4022833696805,86.5159989567857508],"rgb":[0.133333333333333331,0.8,0.0666666666666666657],"xyz":[0.223527589772438445,0.435644502251744281,0.0776103931007591],"hpluv":[127.087674169957992,191.311003889673145,71.9364107151438077],"hsluv":[127.087674169957992,98.4591341389350418,71.9364107151438077]},"#22cc22":{"lch":[71.9868548113652196,106.54571101335867,127.715012949240403],"luv":[71.9868548113652196,-65.1776701905061771,84.2843985793322332],"rgb":[0.133333333333333331,0.8,0.133333333333333331],"xyz":[0.225402947910915447,0.436394645507135082,0.0874872792967382878],"hpluv":[127.715012949240403,187.811464536348922,71.9868548113652196],"hsluv":[127.715012949240403,95.6295101801496,71.9868548113652196]},"#22cc33":{"lch":[72.0697845089905229,103.47656324227728,128.782383231673776],"luv":[72.0697845089905229,-64.8140104316899084,80.6631464312780224],"rgb":[0.133333333333333331,0.8,0.2],"xyz":[0.22849069864337318,0.437629745800118208,0.103749433154349424],"hpluv":[128.782383231673776,182.191494825933376,72.0697845089905229],"hsluv":[128.782383231673776,95.6728206524347,72.0697845089905229]},"#22cc44":{"lch":[72.1892409305665126,99.2080881077430092,130.402545810446583],"luv":[72.1892409305665126,-64.3020931154350563,75.5479024657046381],"rgb":[0.133333333333333331,0.8,0.266666666666666663],"xyz":[0.232948693887592068,0.439412943897805774,0.127228208107236063],"hpluv":[130.402545810446583,174.38692971209278,72.1892409305665126],"hsluv":[130.402545810446583,95.7338579762306807,72.1892409305665126]},"#22cc55":{"lch":[72.3485056391290584,93.798910065649892,132.724941359454647],"luv":[72.3485056391290584,-63.6406395178356732,68.9064912128369116],"rgb":[0.133333333333333331,0.8,0.333333333333333315],"xyz":[0.23891110792695408,0.441797909513550635,0.158630255381209978],"hpluv":[132.724941359454647,164.515777124050715,72.3485056391290584],"hsluv":[132.724941359454647,95.8128514989610665,72.3485056391290584]},"#22cc66":{"lch":[72.5502856399570106,87.4149553130202577,135.957009780349864],"luv":[72.5502856399570106,-62.8354766726053597,60.7706942835425821],"rgb":[0.133333333333333331,0.8,0.4],"xyz":[0.246496103700462238,0.444831907822953954,0.19857789978835394],"hpluv":[135.957009780349864,152.89241471165704,72.5502856399570106],"hsluv":[135.957009780349864,95.9092114165347454,72.5502856399570106]},"#22cc77":{"lch":[72.7968107106438,80.347487444586676,140.388595454497391],"luv":[72.7968107106438,-61.8986076052927601,51.2277377519640922],"rgb":[0.133333333333333331,0.8,0.466666666666666674],"xyz":[0.255810116720664171,0.448557513031034749,0.247631701694751849],"hpluv":[140.388595454497391,140.055211607516185,72.7968107106438],"hsluv":[140.388595454497391,96.0216367005683651,72.7968107106438]},"#22cc88":{"lch":[73.0898911189871399,73.0433057087839899,146.410934307510047],"luv":[73.0898911189871399,-60.8470337434031379,40.4099368162836328],"rgb":[0.133333333333333331,0.8,0.533333333333333326],"xyz":[0.266950533822607972,0.453013679871812347,0.306304565098324044],"hpluv":[146.410934307510047,126.812607157634474,73.0898911189871399],"hsluv":[146.410934307510047,96.1482500942118463,73.0898911189871399]},"#22cc99":{"lch":[73.4309556061454316,66.1476907411168,154.494840416347301],"luv":[73.4309556061454316,-59.7013675833161201,28.4826912187770667],"rgb":[0.133333333333333331,0.8,0.6],"xyz":[0.280007497931680671,0.458236465515441505,0.375071242739441923],"hpluv":[154.494840416347301,114.307528246897718,73.4309556061454316],"hsluv":[154.494840416347301,96.2867563581127826,73.4309556061454316]},"#22ccaa":{"lch":[73.8210792378530272,60.5373530055450857,165.03572853292485],"luv":[73.8210792378530272,-58.4843517505691963,15.631753236079188],"rgb":[0.133333333333333331,0.8,0.66666666666666663],"xyz":[0.295065190896933227,0.464259542701542627,0.454375092356440524],"hpluv":[165.03572853292485,104.059650734936554,73.8210792378530272],"hsluv":[165.03572853292485,96.4346108423233233,73.8210792378530272]},"#22ccbb":{"lch":[74.2610062314211916,57.2561659312404601,177.947236116536601],"luv":[74.2610062314211916,-57.2194225987583565,2.05090580243043252],"rgb":[0.133333333333333331,0.8,0.733333333333333282],"xyz":[0.312202783004269901,0.471114579544477385,0.544633077455082271],"hpluv":[177.947236116536601,97.8364666306377302,74.2610062314211916],"hsluv":[177.947236116536601,96.5891828531354406,74.2610062314211916]},"#22cccc":{"lch":[74.7511706210643467,57.2167927817266,192.177050630061132],"luv":[74.7511706210643467,-55.9294412838427633,-12.0689259631595149],"rgb":[0.133333333333333331,0.8,0.8],"xyz":[0.3314951584479916,0.478831529721966187,0.646239588125352427],"hpluv":[192.177050630061132,97.128087782713564,74.7511706210643467],"hsluv":[192.177050630061132,96.747899952527,74.7511706210643467]},"#22ccdd":{"lch":[75.2917163799825602,60.7443465218384091,205.915913497891523],"luv":[75.2917163799825602,-54.6356779140553357,-26.5484148912282159],"rgb":[0.133333333333333331,0.8,0.866666666666666696],"xyz":[0.353013483998625199,0.487438859942219693,0.759569436025358424],"hpluv":[205.915913497891523,102.375961416692178,75.2917163799825602],"hsluv":[205.915913497891523,96.9083635301369,75.2917163799825602]},"#22ccee":{"lch":[75.8825178700112843,67.4282526949852894,217.691288579377613],"luv":[75.8825178700112843,-53.3570890727704779,-41.2260877015904583],"rgb":[0.133333333333333331,0.8,0.933333333333333348],"xyz":[0.376825664264799909,0.49696373204868971,0.884980252093881647],"hpluv":[217.691288579377613,112.755958051566466,75.8825178700112843],"hsluv":[217.691288579377613,97.0684311053177851,75.8825178700112843]},"#22ccff":{"lch":[76.5232010138481,76.4669756721874165,227.041443142980768],"luv":[76.5232010138481,-52.1098871667616095,-55.9621124325938553],"rgb":[0.133333333333333331,0.8,1],"xyz":[0.40299671267463133,0.507432151412622434,1.02281444038566338],"hpluv":[227.041443142980768,130.754689276117347,76.5232010138481],"hsluv":[227.041443142980768,99.999999999997,76.5232010138481]},"#22dd00":{"lch":[77.3111928538645543,118.038829613749726,126.914864539429317],"luv":[77.3111928538645543,-70.8973873693031607,94.3754510494695],"rgb":[0.133333333333333331,0.866666666666666696,0],"xyz":[0.265149914819976518,0.520507817146241,0.0864936183183947771],"hpluv":[126.914864539429317,210.347075729226248,77.3111928538645543],"hsluv":[126.914864539429317,100.000000000002288,77.3111928538645543]},"#22dd11":{"lch":[77.3353680300965323,117.099630973594756,127.192375056145337],"luv":[77.3353680300965323,-70.7859197567446756,93.2827805028547346],"rgb":[0.133333333333333331,0.866666666666666696,0.0666666666666666657],"xyz":[0.266161580319613622,0.520912483346095856,0.0918217232831504138],"hpluv":[127.192375056145337,208.941659016378082,77.3353680300965323],"hsluv":[127.192375056145337,98.7107326231664217,77.3353680300965323]},"#22dd22":{"lch":[77.3801492665193535,115.37848303888174,127.715012949240432],"luv":[77.3801492665193535,-70.5809801545768636,91.2716801027172409],"rgb":[0.133333333333333331,0.866666666666666696,0.133333333333333331],"xyz":[0.268036938458090679,0.521662626601486656,0.101698609479129606],"hpluv":[127.715012949240432,206.361699793513822,77.3801492665193535],"hsluv":[127.715012949240432,96.3395071146262154,77.3801492665193535]},"#22dd33":{"lch":[77.4537875025684315,112.600723810091978,128.59932725776207],"luv":[77.4537875025684315,-70.24826089977104,88.0005956974969195],"rgb":[0.133333333333333331,0.866666666666666696,0.2],"xyz":[0.271124689190548385,0.522897726894469783,0.117960763336740743],"hpluv":[128.59932725776207,202.185786680839726,77.4537875025684315],"hsluv":[128.59932725776207,96.3699377868481122,77.4537875025684315]},"#22dd44":{"lch":[77.5598997380018,108.71293616133481,129.930302741787841],"luv":[77.5598997380018,-69.7779723132927217,83.3638834787812],"rgb":[0.133333333333333331,0.866666666666666696,0.266666666666666663],"xyz":[0.2755826844347673,0.524680924992157349,0.141439538289627381],"hpluv":[129.930302741787841,196.316024449944422,77.5598997380018],"hsluv":[129.930302741787841,96.4129906320409162,77.5598997380018]},"#22dd55":{"lch":[77.7014460191091416,103.73899221962921,131.815952634500974],"luv":[77.7014460191091416,-69.1669361195931,77.3156740549574266],"rgb":[0.133333333333333331,0.866666666666666696,0.333333333333333315],"xyz":[0.281545098474129285,0.527065890607902099,0.172841585563601297],"hpluv":[131.815952634500974,188.764163413831653,77.7014460191091416],"hsluv":[131.815952634500974,96.4690009350202189,77.7014460191091416]},"#22dd66":{"lch":[77.880896240080375,97.784990294992113,134.401120560320578],"luv":[77.880896240080375,-68.4179393254247117,69.8633659756971923],"rgb":[0.133333333333333331,0.866666666666666696,0.4],"xyz":[0.28913009424763747,0.530099888917305417,0.212789229970745258],"hpluv":[134.401120560320578,179.664283635232721,77.880896240080375],"hsluv":[134.401120560320578,96.5377748783722467,77.880896240080375]},"#22dd77":{"lch":[78.1003183749745205,91.0497694522495635,137.883451987021573],"luv":[78.1003183749745205,-67.5390964016577584,61.0616980975421],"rgb":[0.133333333333333331,0.866666666666666696,0.466666666666666674],"xyz":[0.298444107267839376,0.533825494125386268,0.261843031877143195],"hpluv":[137.883451987021573,169.299836923025936,78.1003183749745205],"hsluv":[137.883451987021573,96.6186469084632478,78.1003183749745205]},"#22dd88":{"lch":[78.3614307373917285,83.8424849668191143,142.529576014285681],"luv":[78.3614307373917285,-66.5430534683674608,51.0057283108209205],"rgb":[0.133333333333333331,0.866666666666666696,0.533333333333333326],"xyz":[0.309584524369783176,0.538281660966163811,0.320515895280715335],"hpluv":[142.529576014285681,158.150702843881334,78.3614307373917285],"hsluv":[142.529576014285681,96.7105501690208,78.3614307373917285]},"#22dd99":{"lch":[78.665635872828048,76.6094810635621144,148.680389056502293],"luv":[78.665635872828048,-65.4460211356496586,39.8224924677044854],"rgb":[0.133333333333333331,0.866666666666666696,0.6],"xyz":[0.322641488478855876,0.543504446609793,0.389282572921833214],"hpluv":[148.680389056502293,146.968629494944878,78.665635872828048],"hsluv":[148.680389056502293,96.8121015046769884,78.665635872828048]},"#22ddaa":{"lch":[79.0140446006893882,69.96699558248838,156.711923446039975],"luv":[79.0140446006893882,-64.2666918031728613,27.6617569130368608],"rgb":[0.133333333333333331,0.866666666666666696,0.66666666666666663],"xyz":[0.337699181444108432,0.549527523795894091,0.46858642253883187],"hpluv":[156.711923446039975,136.880679993502099,79.0140446006893882],"hsluv":[156.711923446039975,96.9216963326973513,79.0140446006893882]},"#22ddbb":{"lch":[79.4074947696843196,64.7136880558744849,166.88262774299784],"luv":[79.4074947696843196,-63.0251268096233161,14.6865520944819572],"rgb":[0.133333333333333331,0.866666666666666696,0.733333333333333282],"xyz":[0.354836773551445106,0.556382560638828849,0.558844407637473561],"hpluv":[166.88262774299784,129.476815865977585,79.4074947696843196],"hsluv":[166.88262774299784,97.0376060255481,79.4074947696843196]},"#22ddcc":{"lch":[79.8465673347569123,61.7508733998812431,179.012513434233142],"luv":[79.8465673347569123,-61.7417023409151184,1.06421693934889783],"rgb":[0.133333333333333331,0.866666666666666696,0.8],"xyz":[0.374129148995166805,0.564099510816317706,0.660450918307743717],"hpluv":[179.012513434233142,126.735630147597362,79.8465673347569123],"hsluv":[179.012513434233142,97.1580701030331824,79.8465673347569123]},"#22dddd":{"lch":[80.3316012938198867,61.8272738566169,192.177050630061245],"luv":[80.3316012938198867,-60.4361886569793,-13.0414298740249546],"rgb":[0.133333333333333331,0.866666666666666696,0.866666666666666696],"xyz":[0.395647474545800404,0.572706841036571213,0.773780766207749715],"hpluv":[192.177050630061245,130.583134255532286,80.3316012938198867],"hsluv":[192.177050630061245,97.2813767637234434,80.3316012938198867]},"#22ddee":{"lch":[80.8627083873859078,65.1993477029452606,204.924336649163848],"luv":[80.8627083873859078,-59.1270126845314579,-27.4763773429615092],"rgb":[0.133333333333333331,0.866666666666666696,0.933333333333333348],"xyz":[0.419459654811975113,0.58223171314304123,0.899191582276272938],"hpluv":[204.924336649163848,142.193638870282854,80.8627083873859078],"hsluv":[204.924336649163848,97.405927410883,80.8627083873859078]},"#22ddff":{"lch":[81.4397880620905141,71.5324096951162574,216.054756332513932],"luv":[81.4397880620905141,-57.8307265123863,-42.1009822669203544],"rgb":[0.133333333333333331,0.866666666666666696,1],"xyz":[0.445630703221806534,0.592700132506974,1.03702577056805478],"hpluv":[216.054756332513932,161.676156351457934,81.4397880620905141],"hsluv":[216.054756332513932,99.9999999999961,81.4397880620905141]},"#22ee00":{"lch":[82.639607109796458,126.437751030410212,127.039022267349651],"luv":[82.639607109796458,-76.1608929793909368,100.92583052028732],"rgb":[0.133333333333333331,0.933333333333333348,0],"xyz":[0.312328691160491334,0.614865369827271913,0.102219877098565962],"hpluv":[127.039022267349651,308.746810598848469,82.639607109796458],"hsluv":[127.039022267349651,100.000000000002203,82.639607109796458]},"#22ee11":{"lch":[82.6612418520526262,125.587498690937579,127.273852876359626],"luv":[82.6612418520526262,-76.0589691017437,99.9362449095734462],"rgb":[0.133333333333333331,0.933333333333333348,0.0666666666666666657],"xyz":[0.313340356660128438,0.615270036027126821,0.107547982063321598],"hpluv":[127.273852876359626,307.111076239802628,82.6612418520526262],"hsluv":[127.273852876359626,98.9080389542438638,82.6612418520526262]},"#22ee22":{"lch":[82.7013218186993271,124.026614606467561,127.715012949240375],"luv":[82.7013218186993271,-75.8713392100017643,98.112899341636421],"rgb":[0.133333333333333331,0.933333333333333348,0.133333333333333331],"xyz":[0.315215714798605495,0.616020179282517621,0.117424868259300791],"hpluv":[127.715012949240375,304.102865014696874,82.7013218186993271],"hsluv":[127.715012949240375,96.8972824334497176,82.7013218186993271]},"#22ee33":{"lch":[82.7672420886773921,121.499708898279266,128.458265706389938],"luv":[82.7672420886773921,-75.5660658728233443,95.1417308591278754],"rgb":[0.133333333333333331,0.933333333333333348,0.2],"xyz":[0.318303465531063201,0.617255279575500748,0.133687022116911941],"hpluv":[128.458265706389938,299.21821405622444,82.7672420886773921],"hsluv":[128.458265706389938,96.9191735237910308,82.7672420886773921]},"#22ee44":{"lch":[82.8622607061112575,117.945648419515081,129.569612755667265],"luv":[82.8622607061112575,-75.1331770294334,90.918544261133448],"rgb":[0.133333333333333331,0.933333333333333348,0.266666666666666663],"xyz":[0.322761460775282116,0.619038477673188314,0.15716579706979858],"hpluv":[129.569612755667265,292.317409010606752,82.8622607061112575],"hsluv":[129.569612755667265,96.9502397298715692,82.8622607061112575]},"#22ee55":{"lch":[82.9890600071846194,113.365618159982461,131.129866929811442],"luv":[82.9890600071846194,-74.5682726576598185,85.3893207236587],"rgb":[0.133333333333333331,0.933333333333333348,0.333333333333333315],"xyz":[0.328723874814644101,0.621423443288933064,0.188567844343772495],"hpluv":[131.129866929811442,283.372415217622233,82.9890600071846194],"hsluv":[131.129866929811442,96.9908233877961266,82.9890600071846194]},"#22ee66":{"lch":[83.1498978333136,107.825536766413322,133.243989823694022],"luv":[83.1498978333136,-73.8719849852999175,78.5447402013449647],"rgb":[0.133333333333333331,0.933333333333333348,0.4],"xyz":[0.336308870588152287,0.624457441598336382,0.228515488750916429],"hpluv":[133.243989823694022,272.476761047092111,83.1498978333136],"hsluv":[133.243989823694022,97.0409162623008683,83.1498978333136]},"#22ee77":{"lch":[83.3466879629012709,101.462411308546436,136.05169958656856],"luv":[83.3466879629012709,-73.0495185954435726,70.415827350948561],"rgb":[0.133333333333333331,0.933333333333333348,0.466666666666666674],"xyz":[0.345622883608354192,0.628183046806417233,0.277569290657314338],"hpluv":[136.05169958656856,259.869348467080897,83.3466879629012709],"hsluv":[136.05169958656856,97.1001922741487391,83.3466879629012709]},"#22ee88":{"lch":[83.5810478428977746,94.494960715205238,139.739189865999265],"luv":[83.5810478428977746,-72.1101014829990277,61.0690663485185681],"rgb":[0.133333333333333331,0.933333333333333348,0.533333333333333326],"xyz":[0.356763300710298,0.632639213647194776,0.336242154060886533],"hpluv":[139.739189865999265,245.976403795765407,83.5810478428977746],"hsluv":[139.739189865999265,97.1680458209452098,83.5810478428977746]},"#22ee99":{"lch":[83.8543293451422187,87.2401092672494514,144.548413258572367],"luv":[83.8543293451422187,-71.0663081347816,50.6005584263049286],"rgb":[0.133333333333333331,0.933333333333333348,0.6],"xyz":[0.369820264819370692,0.637861999290824,0.405008831702004413],"hpluv":[144.548413258572367,231.480208097577446,83.8543293451422187],"hsluv":[144.548413258572367,97.2436385928483844,83.8543293451422187]},"#22eeaa":{"lch":[84.1676401551603846,80.1359348037682508,150.771943883792943],"luv":[84.1676401551603846,-69.9332745317766324,39.1293388665967328],"rgb":[0.133333333333333331,0.933333333333333348,0.66666666666666663],"xyz":[0.384877957784623248,0.643885076476925056,0.484312681319003],"hpluv":[150.771943883792943,217.42312560604816,84.1676401551603846],"hsluv":[150.771943883792943,97.3259536357082311,84.1676401551603846]},"#22eebb":{"lch":[84.5218598825754697,73.7647249619211181,158.704077932293842],"luv":[84.5218598825754697,-68.7278540770417834,26.7902355844945639],"rgb":[0.133333333333333331,0.933333333333333348,0.733333333333333282],"xyz":[0.402015549891959922,0.650740113319859814,0.57457066641764476],"hpluv":[158.704077932293842,205.339796192481117,84.5218598825754697],"hsluv":[158.704077932293842,97.4138533690930331,84.5218598825754697]},"#22eecc":{"lch":[84.9176532530853621,68.8500130904050422,168.499772582144715],"luv":[84.9176532530853621,-67.467774257192545,13.7267526869778429],"rgb":[0.133333333333333331,0.933333333333333348,0.8],"xyz":[0.421307925335681621,0.658457063497348671,0.676177177087914916],"hpluv":[168.499772582144715,197.354512375483154,84.9176532530853621],"hsluv":[168.499772582144715,97.5061375012374896,84.9176532530853621]},"#22eedd":{"lch":[85.3554818050158275,66.1709053937965166,179.926877690260085],"luv":[85.3554818050158275,-66.170851505859261,0.0844489448895467398],"rgb":[0.133333333333333331,0.933333333333333348,0.866666666666666696],"xyz":[0.44282625088631522,0.667064393717602178,0.789507024987920913],"hpluv":[179.926877690260085,196.075052309852396,85.3554818050158275],"hsluv":[179.926877690260085,97.6015969291830174,85.3554818050158275]},"#22eeee":{"lch":[85.8356149635753667,66.3470894225537648,192.177050630061245],"luv":[85.8356149635753667,-64.8543104533760868,-13.9948094114017536],"rgb":[0.133333333333333331,0.933333333333333348,0.933333333333333348],"xyz":[0.46663843115248993,0.676589265824072195,0.914917841056444137],"hpluv":[192.177050630061245,204.089886920334152,85.8356149635753667],"hsluv":[192.177050630061245,97.6990604766853608,85.8356149635753667]},"#22eeff":{"lch":[86.35814102124138,69.583621560973242,204.067857145017655],"luv":[86.35814102124138,-63.5342376580599435,-28.377474072755291],"rgb":[0.133333333333333331,0.933333333333333348,1],"xyz":[0.492809479562321351,0.687057685188004919,1.05275202934822598],"hpluv":[204.067857145017655,223.225826840448832,86.35814102124138],"hsluv":[204.067857145017655,99.9999999999940883,86.35814102124138]},"#22ff00":{"lch":[87.8997189713237361,134.70927246092154,127.137510750393233],"luv":[87.8997189713237361,-81.328032504319566,107.388729464162736],"rgb":[0.133333333333333331,1,0],"xyz":[0.364181063590165166,0.718570114686621,0.119504001241790073],"hpluv":[127.137510750393233,493.515561032875894,87.8997189713237361],"hsluv":[127.137510750393233,100.000000000002359,87.8997189713237361]},"#22ff11":{"lch":[87.9192191859362708,133.935112153716517,127.338384986715198],"luv":[87.9192191859362708,-81.2344832365115792,106.487431187561],"rgb":[0.133333333333333331,1,0.0666666666666666657],"xyz":[0.36519272908980227,0.718974780886475928,0.124832106206545709],"hpluv":[127.338384986715198,491.550771148457443,87.9192191859362708],"hsluv":[127.338384986715198,99.9999999999918572,87.9192191859362708]},"#22ff22":{"lch":[87.9553480404818089,132.511927889398493,127.71501294924046],"luv":[87.9553480404818089,-81.0620967295481449,104.825319015849075],"rgb":[0.133333333333333331,1,0.133333333333333331],"xyz":[0.367068087228279327,0.719724924141866729,0.134708992402524902],"hpluv":[127.71501294924046,487.932270281505453,87.9553480404818089],"hsluv":[127.71501294924046,99.9999999999918,87.9553480404818089]},"#22ff33":{"lch":[88.0147790356886,130.202284180175667,128.347396099003475],"luv":[88.0147790356886,-80.7811428723405101,102.112887345201102],"rgb":[0.133333333333333331,1,0.2],"xyz":[0.370155837960737033,0.720960024434849855,0.150971146260136052],"hpluv":[128.347396099003475,482.0420586134328,88.0147790356886],"hsluv":[128.347396099003475,99.9999999999918572,88.0147790356886]},"#22ff44":{"lch":[88.1004639745127349,126.941230298117631,129.288082018787549],"luv":[88.1004639745127349,-80.3817123888383,98.2489504424236486],"rgb":[0.133333333333333331,1,0.266666666666666663],"xyz":[0.374613833204955948,0.722743222532537422,0.174449921213022691],"hpluv":[129.288082018787549,473.688351575452941,88.1004639745127349],"hsluv":[129.288082018787549,99.9999999999917719,88.1004639745127349]},"#22ff55":{"lch":[88.2148445849976497,122.715034192366474,130.599301535876663],"luv":[88.2148445849976497,-79.8586444797792865,93.1749779645044498],"rgb":[0.133333333333333331,1,0.333333333333333315],"xyz":[0.380576247244317933,0.725128188148282171,0.205851968486996606],"hpluv":[130.599301535876663,462.799362736769183,88.2148445849976497],"hsluv":[130.599301535876663,99.9999999999917,88.2148445849976497]},"#22ff66":{"lch":[88.3599902775167863,117.562049147645283,132.359544385640646],"luv":[88.3599902775167863,-79.2110524978463104,86.8702743288911279],"rgb":[0.133333333333333331,1,0.4],"xyz":[0.388161243017826119,0.72816218645768549,0.24579961289414054],"hpluv":[132.359544385640646,449.432018335727776,88.3599902775167863],"hsluv":[132.359544385640646,99.999999999991644,88.3599902775167863]},"#22ff77":{"lch":[88.5376718023346427,111.576626717172417,134.67079586388752],"luv":[88.5376718023346427,-78.441973739162,79.3486004003085839],"rgb":[0.133333333333333331,1,0.466666666666666674],"xyz":[0.397475256038028,0.731887791665766341,0.294853414800538449],"hpluv":[134.67079586388752,433.796433649144,88.5376718023346427],"hsluv":[134.67079586388752,99.9999999999914593,88.5376718023346427]},"#22ff88":{"lch":[88.7494051061703,104.915784817642518,137.666744209541747],"luv":[88.7494051061703,-77.5579802767934581,70.6546643845003786],"rgb":[0.133333333333333331,1,0.533333333333333326],"xyz":[0.408615673139971824,0.736343958506543883,0.353526278204110644],"hpluv":[137.666744209541747,416.300130961303353,88.7494051061703],"hsluv":[137.666744209541747,99.9999999999915161,88.7494051061703]},"#22ff99":{"lch":[88.996479539624346,97.8095196496336143,141.520869213027311],"luv":[88.996479539624346,-76.5687003963823827,60.8599725082183696],"rgb":[0.133333333333333331,1,0.6],"xyz":[0.42167263724904458,0.741566744150173096,0.422292955845228524],"hpluv":[141.520869213027311,397.621886071746928,88.996479539624346],"hsluv":[141.520869213027311,99.9999999999913882,88.996479539624346]},"#22ffaa":{"lch":[89.2799772586324281,90.5758041558366784,146.450029989774293],"luv":[89.2799772586324281,-75.4862499862398,50.057989986528554],"rgb":[0.133333333333333331,1,0.66666666666666663],"xyz":[0.43673033021429708,0.747589821336274163,0.50159680546222718],"hpluv":[146.450029989774293,378.829469872945424,89.2799772586324281],"hsluv":[146.450029989774293,99.9999999999911893,89.2799772586324281]},"#22ffbb":{"lch":[89.6007875020334552,83.6393655876379825,152.701818689515648],"luv":[89.6007875020334552,-74.3245992165371661,38.3587985630895787],"rgb":[0.133333333333333331,1,0.733333333333333282],"xyz":[0.453867922321633754,0.754444858179208921,0.591854790560868871],"hpluv":[152.701818689515648,361.553698033539774,89.6007875020334552],"hsluv":[152.701818689515648,99.9999999999909903,89.6007875020334552]},"#22ffcc":{"lch":[89.9596178804745,77.5461751086222,160.50148390925915],"luv":[89.9596178804745,-73.0989125181650223,25.8835519710636532],"rgb":[0.133333333333333331,1,0.8],"xyz":[0.473160297765355509,0.762161808356697779,0.693461301231139],"hpluv":[160.50148390925915,348.207300802542932,89.9596178804745],"hsluv":[160.50148390925915,99.999999999990834,89.9596178804745]},"#22ffdd":{"lch":[90.3570039795250466,72.9493687180361,169.926987012389134],"luv":[90.3570039795250466,-71.8249031216737421,12.7590629719491808],"rgb":[0.133333333333333331,1,0.866666666666666696],"xyz":[0.494678623315989,0.770769138576951285,0.806791149131145],"hpluv":[169.926987012389134,342.16275562632859,90.3570039795250466],"hsluv":[169.926987012389134,99.9999999999906,90.3570039795250466]},"#22ffee":{"lch":[90.793318095908873,70.5238201303846637,180.720785562676866],"luv":[90.793318095908873,-70.5182397089352,-0.887171987837557796],"rgb":[0.133333333333333331,1,0.933333333333333348],"xyz":[0.518490803582163817,0.780294010683421302,0.932201965199668248],"hpluv":[180.720785562676866,347.681124246536797,90.793318095908873],"hsluv":[180.720785562676866,99.9999999999901661,90.793318095908873]},"#22ffff":{"lch":[91.2687776254429082,70.7867026205843786,192.177050630061217],"luv":[91.2687776254429082,-69.1940343982234225,-14.9312715999851058],"rgb":[0.133333333333333331,1,1],"xyz":[0.544661851991995127,0.790762430047354,1.0700361534914502],"hpluv":[192.177050630061217,369.384676987995,91.2687776254429082],"hsluv":[192.177050630061217,99.9999999999901803,91.2687776254429082]},"#11aa00":{"lch":[60.6644104521350869,93.0873160838275,127.211890667698796],"luv":[60.6644104521350869,-56.2958954857129186,74.1351506854346241],"rgb":[0.0666666666666666657,0.66666666666666663,0],"xyz":[0.146052570780394131,0.288673842599075969,0.0480220097587461675],"hpluv":[127.211890667698796,194.713406103753528,60.6644104521350869],"hsluv":[127.211890667698796,100.000000000002444,60.6644104521350869]},"#11aa11":{"lch":[60.7002167335786424,91.7670835597914447,127.715012949240375],"luv":[60.7002167335786424,-56.1370762813229547,72.5935692169401],"rgb":[0.0666666666666666657,0.66666666666666663,0.0666666666666666657],"xyz":[0.147064236280031263,0.289078508798930822,0.0533501147235018],"hpluv":[127.715012949240375,191.838607973199288,60.7002167335786424],"hsluv":[127.715012949240375,97.6800439707354826,60.7002167335786424]},"#11aa22":{"lch":[60.7665037483511696,89.3702510768545153,128.6744569519864],"luv":[60.7665037483511696,-55.8469935821418844,69.7721655488506229],"rgb":[0.0666666666666666657,0.66666666666666663,0.133333333333333331],"xyz":[0.148939594418508264,0.289828652054321623,0.063227000919481],"hpluv":[128.6744569519864,186.624241227076766,60.7665037483511696],"hsluv":[128.6744569519864,97.7012125574833163,60.7665037483511696]},"#11aa33":{"lch":[60.8753956347493101,85.5662665428975799,130.333267948257316],"luv":[60.8753956347493101,-55.3812688292774595,65.2265362636212274],"rgb":[0.0666666666666666657,0.66666666666666663,0.2],"xyz":[0.152027345150966,0.291063752347304749,0.0794891547770921469],"hpluv":[130.333267948257316,178.361088002118152,60.8753956347493101],"hsluv":[130.333267948257316,97.7352371443594876,60.8753956347493101]},"#11aa44":{"lch":[61.0320681383245898,80.3855440613202603,132.913331110856149],"luv":[61.0320681383245898,-54.7338170014505394,58.8731260464924233],"rgb":[0.0666666666666666657,0.66666666666666663,0.266666666666666663],"xyz":[0.156485340395184885,0.292846950444992316,0.102967929729978785],"hpluv":[132.913331110856149,167.131840298358668,61.0320681383245898],"hsluv":[132.913331110856149,97.7826211010278428,61.0320681383245898]},"#11aa55":{"lch":[61.2406211479126199,74.0326893716562466,136.73626291081149],"luv":[61.2406211479126199,-53.9110982897111626,50.7388665304739064],"rgb":[0.0666666666666666657,0.66666666666666663,0.333333333333333315],"xyz":[0.162447754434546898,0.295231916060737176,0.134369977003952701],"hpluv":[136.73626291081149,153.399260409180499,61.2406211479126199],"hsluv":[136.73626291081149,97.8429805383323412,61.2406211479126199]},"#11aa66":{"lch":[61.5043118059827236,66.9183608277608926,142.276062400218507],"luv":[61.5043118059827236,-52.9302802927860938,40.944504442006675],"rgb":[0.0666666666666666657,0.66666666666666663,0.4],"xyz":[0.170032750208055056,0.298265914370140495,0.174317621411096635],"hpluv":[142.276062400218507,138.063556785316223,61.5043118059827236],"hsluv":[142.276062400218507,97.9151756761398246,61.5043118059827236]},"#11aa77":{"lch":[61.8256765996828648,59.7171413308715628,150.193024237310198],"luv":[61.8256765996828648,-51.8168585560505335,29.6841731923518672],"rgb":[0.0666666666666666657,0.66666666666666663,0.466666666666666674],"xyz":[0.179346763228257,0.30199151957822129,0.223371423317494544],"hpluv":[150.193024237310198,122.565843528602272,61.8256765996828648],"hsluv":[150.193024237310198,97.9974781059027578,61.8256765996828648]},"#11aa88":{"lch":[62.2066058842594,53.445591933814967,161.225226782668472],"luv":[62.2066058842594,-50.6018085779820197,17.201403018159084],"rgb":[0.0666666666666666657,0.66666666666666663,0.533333333333333326],"xyz":[0.190487180330200789,0.306447686418998888,0.282044286721066739],"hpluv":[161.225226782668472,109.022142353571084,62.2066058842594],"hsluv":[161.225226782668472,98.0877698343988698,62.2066058842594]},"#11aa99":{"lch":[62.6483970296267643,49.4620441969123803,175.635441576327452],"luv":[62.6483970296267643,-49.3186051456987613,3.76417356400704],"rgb":[0.0666666666666666657,0.66666666666666663,0.6],"xyz":[0.203544144439273517,0.311670472062628046,0.350810964362184619],"hpluv":[175.635441576327452,100.184705161952,62.6483970296267643],"hsluv":[175.635441576327452,98.1837511724305756,62.6483970296267643]},"#11aaaa":{"lch":[63.1517986220979424,49.10533458105958,192.177050630061103],"luv":[63.1517986220979424,-48.0004871585874326,-10.3579494522848794],"rgb":[0.0666666666666666657,0.66666666666666663,0.66666666666666663],"xyz":[0.218601837404526045,0.317693549248729168,0.430114813979183219],"hpluv":[192.177050630061103,98.6693521766944741,63.1517986220979424],"hsluv":[192.177050630061103,98.283131385506934,63.1517986220979424]},"#11aabb":{"lch":[63.7170519890822931,52.9100997091116483,208.088870357104184],"luv":[63.7170519890822931,-46.6782604891356812,-24.9122188681885817],"rgb":[0.0666666666666666657,0.66666666666666663,0.733333333333333282],"xyz":[0.235739429511862719,0.324548586091663926,0.520372799077825],"hpluv":[208.088870357104184,105.371274370578277,63.7170519890822931],"hsluv":[208.088870357104184,98.3837818799450474,63.7170519890822931]},"#11aacc":{"lch":[64.3439331362496603,60.2774830024396,221.163749704229559],"luv":[64.3439331362496603,-45.3787880982832661,-39.6754401089704345],"rgb":[0.0666666666666666657,0.66666666666666663,0.8],"xyz":[0.255031804955584418,0.332265536269152728,0.621979309748095122],"hpluv":[221.163749704229559,118.873987633214512,64.3439331362496603],"hsluv":[221.163749704229559,98.4838416101877385,64.3439331362496603]},"#11aadd":{"lch":[65.0317963778061738,70.0923801470555,230.985682804055784],"luv":[65.0317963778061738,-44.1241742926816372,-54.4609860144708762],"rgb":[0.0666666666666666657,0.66666666666666663,0.866666666666666696],"xyz":[0.276550130506218,0.340872866489406234,0.735309157648101119],"hpluv":[230.985682804055784,136.767964522831733,65.0317963778061738],"hsluv":[230.985682804055784,98.5817742563244,65.0317963778061738]},"#11aaee":{"lch":[65.7796198544585877,81.3683973110580325,238.155251398024461],"luv":[65.7796198544585877,-42.9315457639956293,-69.1208974137644248],"rgb":[0.0666666666666666657,0.66666666666666663,0.933333333333333348],"xyz":[0.300362310772392727,0.350397738595876251,0.860719973716624343],"hpluv":[238.155251398024461,156.965326989669,65.7796198544585877],"hsluv":[238.155251398024461,98.676383948407647,65.7796198544585877]},"#11aaff":{"lch":[66.5860524818013317,93.423779787985481,243.412392023658668],"luv":[66.5860524818013317,-41.8132782993845566,-83.5443139162218529],"rgb":[0.0666666666666666657,0.66666666666666663,1],"xyz":[0.326533359182224148,0.360866157959809,0.998554162008406188],"hpluv":[243.412392023658668,178.038321821181739,66.5860524818013317],"hsluv":[243.412392023658668,99.9999999999982805,66.5860524818013317]},"#11bb00":{"lch":[66.2579979425279788,101.837028338191359,127.308350947248712],"luv":[66.2579979425279788,-61.7238643700190792,80.9996599251199285],"rgb":[0.0666666666666666657,0.733333333333333282,0],"xyz":[0.180007068688992911,0.356582838416274528,0.0593401757282787864],"hpluv":[127.308350947248712,195.032386644097869,66.2579979425279788],"hsluv":[127.308350947248712,100.000000000002416,66.2579979425279788]},"#11bb11":{"lch":[66.2891028676776,100.667761827005108,127.715012949240403],"luv":[66.2891028676776,-61.5819268253258301,79.6345688739434507],"rgb":[0.0666666666666666657,0.733333333333333282,0.0666666666666666657],"xyz":[0.181018734188630043,0.356987504616129381,0.0646682806930344162],"hpluv":[127.715012949240403,192.702610495025482,66.2891028676776],"hsluv":[127.715012949240403,98.1199752505464318,66.2891028676776]},"#11bb22":{"lch":[66.3467009890152895,98.5365229927559199,128.48627008521666],"luv":[66.3467009890152895,-61.3219466901703356,77.130183570569983],"rgb":[0.0666666666666666657,0.733333333333333282,0.133333333333333331],"xyz":[0.182894092327107044,0.357737647871520181,0.0745451668890136088],"hpluv":[128.48627008521666,188.459149582366734,66.3467009890152895],"hsluv":[128.48627008521666,98.1339007760711155,66.3467009890152895]},"#11bb33":{"lch":[66.4413603116689586,95.1297105779412107,129.807139434656818],"luv":[66.4413603116689586,-60.9025570517959949,73.0790009455219121],"rgb":[0.0666666666666666657,0.733333333333333282,0.2],"xyz":[0.185981843059564778,0.358972748164503308,0.0908073207466247589],"hpluv":[129.807139434656818,181.684126992490178,66.4413603116689586],"hsluv":[129.807139434656818,98.1563849168539093,66.4413603116689586]},"#11bb44":{"lch":[66.5776441235544,90.4345556189602888,131.832147550242752],"luv":[66.5776441235544,-60.3153845158839061,67.3829595721343679],"rgb":[0.0666666666666666657,0.733333333333333282,0.266666666666666663],"xyz":[0.190439838303783665,0.360755946262190874,0.114286095699511397],"hpluv":[131.832147550242752,172.363503065423913,66.5776441235544],"hsluv":[131.832147550242752,98.1879073212924567,66.5776441235544]},"#11bb55":{"lch":[66.7592187944261,84.5672269635890501,134.774448398028227],"luv":[66.7592187944261,-59.5621947933412841,60.0329978237906374],"rgb":[0.0666666666666666657,0.733333333333333282,0.333333333333333315],"xyz":[0.196402252343145678,0.363140911877935735,0.145688142973485313],"hpluv":[134.774448398028227,160.742297130584,66.7592187944261],"hsluv":[134.774448398028227,98.2284201297941451,66.7592187944261]},"#11bb66":{"lch":[66.9890609579081513,77.7896938122995749,138.938350400658521],"luv":[66.9890609579081513,-58.6536805127572336,51.0977712402284752],"rgb":[0.0666666666666666657,0.733333333333333282,0.4],"xyz":[0.203987248116653835,0.366174910187339053,0.185635787380629275],"hpluv":[138.938350400658521,147.352496635070423,66.9890609579081513],"hsluv":[138.938350400658521,98.2774122804504486,66.9890609579081513]},"#11bb77":{"lch":[67.2695660469751573,70.5410036497719375,144.751753478195667],"luv":[67.2695660469751573,-57.6079608572489548,40.7106379437464625],"rgb":[0.0666666666666666657,0.733333333333333282,0.466666666666666674],"xyz":[0.213301261136855769,0.369900515395419849,0.234689589287027184],"hpluv":[144.751753478195667,133.064539371584743,67.2695660469751573],"hsluv":[144.751753478195667,98.33398740837616,67.2695660469751573]},"#11bb88":{"lch":[67.6026131767386289,63.4868829762913904,152.765342955174589],"luv":[67.6026131767386289,-56.44870944299889,29.0538725863731493],"rgb":[0.0666666666666666657,0.733333333333333282,0.533333333333333326],"xyz":[0.224441678238799569,0.374356682236197447,0.293362452690599351],"hpluv":[152.765342955174589,119.168054047142519,67.6026131767386289],"hsluv":[152.765342955174589,98.3969602233376293,67.6026131767386289]},"#11bb99":{"lch":[67.9896091217093357,57.5709210660889568,163.510238814203348],"luv":[67.9896091217093357,-55.2030563361408468,16.3411604100414145],"rgb":[0.0666666666666666657,0.733333333333333282,0.6],"xyz":[0.237498642347872296,0.379579467879826604,0.362129130331717231],"hpluv":[163.510238814203348,107.448401728013394,67.9896091217093357],"hsluv":[163.510238814203348,98.464964167861,67.9896091217093357]},"#11bbaa":{"lch":[68.431522322705149,53.97217733059707,177.026074660918823],"luv":[68.431522322705149,-53.8994902384006807,2.80015675382041573],"rgb":[0.0666666666666666657,0.733333333333333282,0.66666666666666663],"xyz":[0.252556335313124825,0.385602545065927726,0.441432979948715831],"hpluv":[177.026074660918823,100.081328983600983,68.431522322705149],"hsluv":[177.026074660918823,98.5365589333087684,68.431522322705149]},"#11bbbb":{"lch":[68.9289126417652511,53.7759127589290102,192.177050630061103],"luv":[68.9289126417652511,-52.5659794775517426,-11.3431298424003177],"rgb":[0.0666666666666666657,0.733333333333333282,0.733333333333333282],"xyz":[0.269693927420461499,0.392457581908862485,0.531690965047357578],"hpluv":[192.177050630061103,98.9978332941913095,68.9289126417652511],"hsluv":[192.177050630061103,98.6103267315429122,68.9289126417652511]},"#11bbcc":{"lch":[69.4819599404948463,57.3930965266865485,206.799543430538137],"luv":[69.4819599404948463,-51.2284702417124365,-25.8768499940688805],"rgb":[0.0666666666666666657,0.733333333333333282,0.8],"xyz":[0.288986302864183253,0.400174532086351287,0.633297475717627734],"hpluv":[206.799543430538137,104.81584090136549,69.4819599404948463],"hsluv":[206.799543430538137,98.6849492658553658,69.4819599404948463]},"#11bbdd":{"lch":[70.0904930703520535,64.3454332007566876,219.135570681285316],"luv":[70.0904930703520535,-49.9098388382008054,-40.6121011637893901],"rgb":[0.0666666666666666657,0.733333333333333282,0.866666666666666696],"xyz":[0.310504628414816741,0.408781862306604793,0.746627323617633731],"hpluv":[219.135570681285316,116.492493254234162,70.0904930703520535],"hsluv":[219.135570681285316,98.7592614999562244,70.0904930703520535]},"#11bbee":{"lch":[70.7540199625255184,73.7064384587933858,228.717665412779098],"luv":[70.7540199625255184,-48.6292974270947838,-55.3879996211006826],"rgb":[0.0666666666666666657,0.733333333333333282,0.933333333333333348],"xyz":[0.334316808680991506,0.41830673441307481,0.872038139686157],"hpluv":[228.717665412779098,132.188487390259695,70.7540199625255184],"hsluv":[228.717665412779098,98.8322822642660412,70.7540199625255184]},"#11bbff":{"lch":[71.471758937406932,84.600620314641418,235.923069973878228],"luv":[71.471758937406932,-47.4021956671632836,-70.0735099988154246],"rgb":[0.0666666666666666657,0.733333333333333282,1],"xyz":[0.360487857090822872,0.428775153777007534,1.00987232797793891],"hpluv":[235.923069973878228,150.202929688167188,71.471758937406932],"hsluv":[235.923069973878228,99.9999999999978115,71.471758937406932]},"#11cc00":{"lch":[71.760164015117,110.429324102022079,127.380540485202317],"luv":[71.760164015117,-67.042304751477019,87.7494444155603617],"rgb":[0.0666666666666666657,0.8,0],"xyz":[0.21823081199860983,0.433030325035509422,0.0720814234981507346],"hpluv":[127.380540485202317,195.272154443078705,71.760164015117],"hsluv":[127.380540485202317,100.000000000002245,71.760164015117]},"#11cc11":{"lch":[71.7874927519263366,109.385174124956521,127.715012949240432],"luv":[71.7874927519263366,-66.9146672826053219,86.5305935539869466],"rgb":[0.0666666666666666657,0.8,0.0666666666666666657],"xyz":[0.219242477498246963,0.433434991235364275,0.0774095284629063712],"hpluv":[127.715012949240432,193.352149077988855,71.7874927519263366],"hsluv":[127.715012949240432,98.4507061603193563,71.7874927519263366]},"#11cc22":{"lch":[71.8381079866900905,107.476295008714118,128.346772012349533],"luv":[71.8381079866900905,-66.680384726115463,84.2904519004221129],"rgb":[0.0666666666666666657,0.8,0.133333333333333331],"xyz":[0.221117835636723964,0.434185134490755076,0.0872864146588855638],"hpluv":[128.346772012349533,189.84411001864018,71.8381079866900905],"hsluv":[128.346772012349533,98.4601754700601361,71.8381079866900905]},"#11cc33":{"lch":[71.9213183931711626,104.40864440796355,129.421122123890029],"luv":[71.9213183931711626,-66.3010906987881441,80.6556284412913556],"rgb":[0.0666666666666666657,0.8,0.2],"xyz":[0.224205586369181697,0.435420234783738203,0.103548568516496714],"hpluv":[129.421122123890029,184.212095875088124,71.9213183931711626],"hsluv":[129.421122123890029,98.4755168761512749,71.9213183931711626]},"#11cc44":{"lch":[72.0411777660314669,100.144250866202455,131.050559631523186],"luv":[72.0411777660314669,-65.7672084530810395,75.5218198525557085],"rgb":[0.0666666666666666657,0.8,0.266666666666666663],"xyz":[0.228663581613400585,0.437203432881425769,0.127027343469383353],"hpluv":[131.050559631523186,176.394298837834185,72.0411777660314669],"hsluv":[131.050559631523186,98.4971346697200261,72.0411777660314669]},"#11cc55":{"lch":[72.2009771566369523,94.7439152050601621,133.383427271112737],"luv":[72.2009771566369523,-65.077446685205,68.8573554627095],"rgb":[0.0666666666666666657,0.8,0.333333333333333315],"xyz":[0.234625995652762598,0.439588398497170629,0.158429390743357268],"hpluv":[133.383427271112737,166.512782767528847,72.2009771566369523],"hsluv":[133.383427271112737,98.5251071985599225,72.2009771566369523]},"#11cc66":{"lch":[72.4034304155724,88.37638367841096,136.624435218533876],"luv":[72.4034304155724,-64.2379326004453333,60.6949191225620339],"rgb":[0.0666666666666666657,0.8,0.4],"xyz":[0.242210991426270755,0.442622396806573948,0.198377035150501202],"hpluv":[136.624435218533876,154.887514188688357,72.4034304155724],"hsluv":[136.624435218533876,98.5592219307307289,72.4034304155724]},"#11cc77":{"lch":[72.6507717937069657,81.3359578844494422,141.057484765247835],"luv":[72.6507717937069657,-63.261234579889333,51.1229326663597],"rgb":[0.0666666666666666657,0.8,0.466666666666666674],"xyz":[0.251525004446472689,0.446348002014654743,0.247430837056899111],"hpluv":[141.057484765247835,142.063228414279422,72.6507717937069657],"hsluv":[141.057484765247835,98.5990140248714795,72.6507717937069657]},"#11cc88":{"lch":[72.9448138267759703,74.0714793913140284,147.061910762632237],"luv":[72.9448138267759703,-62.1651250648783815,40.2750702654370087],"rgb":[0.0666666666666666657,0.8,0.533333333333333326],"xyz":[0.262665421548416489,0.450804168855432341,0.306103700460471306],"hpluv":[147.061910762632237,128.853412583983044,72.9448138267759703],"hsluv":[147.061910762632237,98.6438145792393755,72.9448138267759703]},"#11cc99":{"lch":[73.286985449663689,67.2264361640895203,155.087429558943455],"luv":[73.286985449663689,-60.9711251229010074,28.3181147072320734],"rgb":[0.0666666666666666657,0.8,0.6],"xyz":[0.275722385657489188,0.456026954499061499,0.374870378101589186],"hpluv":[155.087429558943455,116.399886643338576,73.286985449663689],"hsluv":[155.087429558943455,98.6928071276572609,73.286985449663689]},"#11ccaa":{"lch":[73.6783599756885224,61.6669147974486336,165.501022011161467],"luv":[73.6783599756885224,-59.7029534543248275,15.4390974304365383],"rgb":[0.0666666666666666657,0.8,0.66666666666666663],"xyz":[0.290780078622741744,0.462050031685162621,0.454174227718587786],"hpluv":[165.501022011161467,106.206622375239988,73.6783599756885224],"hsluv":[165.501022011161467,98.7450877264532494,73.6783599756885224]},"#11ccbb":{"lch":[74.1196780643846864,58.4137876130139801,178.201908682105085],"luv":[74.1196780643846864,-58.3850250256368426,1.83287644266177074],"rgb":[0.0666666666666666657,0.8,0.733333333333333282],"xyz":[0.307917670730078419,0.46890506852809738,0.544432212817229533],"hpluv":[178.201908682105085,100.004874571957387,74.1196780643846864],"hsluv":[178.201908682105085,98.7997230732590452,74.1196780643846864]},"#11cccc":{"lch":[74.6113685470067,58.3540675645504,192.177050630061103],"luv":[74.6113685470067,-57.0411279075965751,-12.3088150671508707],"rgb":[0.0666666666666666657,0.8,0.8],"xyz":[0.327210046173800118,0.476622018705586181,0.646038723487499689],"hpluv":[192.177050630061103,99.244272920381249,74.6113685470067],"hsluv":[192.177050630061103,98.8558017207376167,74.6113685470067]},"#11ccdd":{"lch":[75.1535687293590087,61.8087365466066316,205.702276410621693],"luv":[75.1535687293590087,-55.6933672323303881,-26.8061328768737823],"rgb":[0.0666666666666666657,0.8,0.866666666666666696],"xyz":[0.348728371724433717,0.485229348925839687,0.759368571387505686],"hpluv":[205.702276410621693,104.361325002032586,75.1535687293590087],"hsluv":[205.702276410621693,98.9124749687685352,75.1535687293590087]},"#11ccee":{"lch":[75.7461450403856418,68.3900229325434168,217.356690237772426],"luv":[75.7461450403856418,-54.3614174191380712,-41.4973677827407],"rgb":[0.0666666666666666657,0.8,0.933333333333333348],"xyz":[0.372540551990608426,0.494754221032309704,0.88477938745602891],"hpluv":[217.356690237772426,114.570165581500433,75.7461450403856418],"hsluv":[217.356690237772426,98.968985855810871,75.7461450403856418]},"#11ccff":{"lch":[76.3887144168947714,77.3228649101567811,226.666757851513921],"luv":[76.3887144168947714,-53.0620799518220849,-56.2426982736496726],"rgb":[0.0666666666666666657,0.8,1],"xyz":[0.398711600400439847,0.505222640396242428,1.02261357574781075],"hpluv":[226.666757851513921,131.304642630845649,76.3887144168947714],"hsluv":[226.666757851513921,99.9999999999969162,76.3887144168947714]},"#11dd00":{"lch":[77.1789729208637851,118.880191052714352,127.435820588671049],"luv":[77.1789729208637851,-72.2639845338074,94.3950017957916572],"rgb":[0.0666666666666666657,0.866666666666666696,0],"xyz":[0.260864802545785,0.518298306129860942,0.0862927536805420531],"hpluv":[127.435820588671049,210.367240137055802,77.1789729208637851],"hsluv":[127.435820588671049,100.000000000002302,77.1789729208637851]},"#11dd11":{"lch":[77.2032167276219,117.940964566200989,127.715012949240474],"luv":[77.2032167276219,-72.148538100067,93.2987651195291],"rgb":[0.0666666666666666657,0.866666666666666696,0.0666666666666666657],"xyz":[0.261876468045422084,0.51870297232971585,0.0916208586452976897],"hpluv":[127.715012949240474,208.973000844217893,77.2032167276219],"hsluv":[127.715012949240474,98.7048375113237739,77.2032167276219]},"#11dd22":{"lch":[77.2481249515021773,116.219968574506154,128.240715222563949],"luv":[77.2481249515021773,-71.936288170647174,91.2811674974022509],"rgb":[0.0666666666666666657,0.866666666666666696,0.133333333333333331],"xyz":[0.263751826183899141,0.519453115585106651,0.101497744841276882],"hpluv":[128.240715222563949,206.413967447437244,77.2481249515021773],"hsluv":[128.240715222563949,98.7114617332334348,77.2481249515021773]},"#11dd33":{"lch":[77.3219716074714114,113.443027450646795,129.129905575085218],"luv":[77.3219716074714114,-71.591714193384675,87.9996984996024],"rgb":[0.0666666666666666657,0.866666666666666696,0.2],"xyz":[0.266839576916356847,0.520688215878089777,0.117759898698888033],"hpluv":[129.129905575085218,202.273081507843187,77.3219716074714114],"hsluv":[129.129905575085218,98.7222220245650419,77.3219716074714114]},"#11dd44":{"lch":[77.4283833065767,109.557638087167803,130.467479357182611],"luv":[77.4283833065767,-71.1046976382296378,83.3486534805139],"rgb":[0.0666666666666666657,0.866666666666666696,0.266666666666666663],"xyz":[0.271297572160575762,0.522471413975777343,0.141238673651774671],"hpluv":[130.467479357182611,196.45511110559741,77.4283833065767],"hsluv":[130.467479357182611,98.737444128486942,77.4283833065767]},"#11dd55":{"lch":[77.5703274630482156,104.589066335953675,132.360930841179908],"luv":[77.5703274630482156,-70.4719757705036471,77.2824263854860192],"rgb":[0.0666666666666666657,0.866666666666666696,0.333333333333333315],"xyz":[0.277259986199937747,0.524856379591522093,0.172640720925748559],"hpluv":[132.360930841179908,188.974657198429043,77.5703274630482156],"hsluv":[132.360930841179908,98.7572451358875583,77.5703274630482156]},"#11dd66":{"lch":[77.7502795105496176,98.645271303892585,134.953797592355841],"luv":[77.7502795105496176,-69.6964700953403167,69.8089650895062732],"rgb":[0.0666666666666666657,0.866666666666666696,0.4],"xyz":[0.284844981973445932,0.527890377900925412,0.212588365332892548],"hpluv":[134.953797592355841,179.968822287066047,77.7502795105496176],"hsluv":[134.953797592355841,98.7815546318288114,77.7502795105496176]},"#11dd77":{"lch":[77.9703113413929714,91.9272626112809377,138.440937564009943],"luv":[77.9703113413929714,-68.7866216277350588,60.9837871589344616],"rgb":[0.0666666666666666657,0.866666666666666696,0.466666666666666674],"xyz":[0.294158994993647838,0.531615983109006263,0.261642167239290457],"hpluv":[138.440937564009943,169.723893920939275,77.9703113413929714],"hsluv":[138.440937564009943,98.8101351189296,77.9703113413929714]},"#11dd88":{"lch":[78.2321436880382919,84.7462074021241705,143.083472555296623],"luv":[78.2321436880382919,-67.7555613828794492,50.90288371727776],"rgb":[0.0666666666666666657,0.866666666666666696,0.533333333333333326],"xyz":[0.305299412095591638,0.536072149949783805,0.320315030642862597],"hpluv":[143.083472555296623,158.721324423216174,78.2321436880382919],"hsluv":[143.083472555296623,98.842607114853692,78.2321436880382919]},"#11dd99":{"lch":[78.5371801027425,77.5491781494168748,149.212222309724666],"luv":[78.5371801027425,-66.6201031545698,39.6942928810235145],"rgb":[0.0666666666666666657,0.866666666666666696,0.6],"xyz":[0.318356376204664393,0.541294935593413,0.389081708283980532],"hpluv":[149.212222309724666,147.710574340426348,78.5371801027425],"hsluv":[149.212222309724666,98.8784794246756746,78.5371801027425]},"#11ddaa":{"lch":[78.8865310768390771,70.9495750262721288,157.187121587348372],"luv":[78.8865310768390771,-65.3996173248364414,27.5087667875819264],"rgb":[0.0666666666666666657,0.866666666666666696,0.66666666666666663],"xyz":[0.333414069169916893,0.547318012779514085,0.468385557900979133],"hpluv":[157.187121587348372,137.807232739715857,78.8865310768390771],"hsluv":[157.187121587348372,98.9171828916172728,78.8865310768390771]},"#11ddbb":{"lch":[79.2810328759594398,65.7363215025974483,167.247861929956969],"luv":[79.2810328759594398,-64.1148749316804611,14.5102300873497096],"rgb":[0.0666666666666666657,0.866666666666666696,0.733333333333333282],"xyz":[0.350551661277253568,0.554173049622448843,0.558643542999620824],"hpluv":[167.247861929956969,130.572542181043048,79.2810328759594398],"hsluv":[167.247861929956969,98.9581049946704496,79.2810328759594398]},"#11ddcc":{"lch":[79.7212637056701396,62.7929370759791,179.209087927276954],"luv":[79.7212637056701396,-62.7869545437069903,0.866767416521026846],"rgb":[0.0666666666666666657,0.866666666666666696,0.8],"xyz":[0.369844036720975322,0.561889999799937701,0.660250053669891],"hpluv":[179.209087927276954,127.935201467087722,79.7212637056701396],"hsluv":[179.209087927276954,99.0006225499112,79.7212637056701396]},"#11dddd":{"lch":[80.2075587483664378,62.8503941808937796,192.177050630061132],"luv":[80.2075587483664378,-61.4362892449526,-13.2572400032679489],"rgb":[0.0666666666666666657,0.866666666666666696,0.866666666666666696],"xyz":[0.39136236227160881,0.570497330020191207,0.773579901569897],"hpluv":[192.177050630061132,131.767009082741112,80.2075587483664378],"hsluv":[192.177050630061132,99.0441302201931109,80.2075587483664378]},"#11ddee":{"lch":[80.7400249746916643,66.1629514334268691,204.757295278220823],"luv":[80.7400249746916643,-60.0819052998990202,-27.707414132610225],"rgb":[0.0666666666666666657,0.866666666666666696,0.933333333333333348],"xyz":[0.415174542537783575,0.580022202126661224,0.8989907176384202],"hpluv":[204.757295278220823,143.22067561241397,80.7400249746916643],"hsluv":[204.757295278220823,99.0880633014724594,80.7400249746916643]},"#11ddff":{"lch":[81.3185562290371848,72.4120095186264194,215.786316478612605],"luv":[81.3185562290371848,-58.7408753400219084,-42.3439332940817934],"rgb":[0.0666666666666666657,0.866666666666666696,1],"xyz":[0.441345590947614941,0.590490621490594,1.03682490593020216],"hpluv":[215.786316478612605,162.428807277722512,81.3185562290371848],"hsluv":[215.786316478612605,99.9999999999959925,81.3185562290371848]}} \ No newline at end of file diff --git a/vendor/github.com/lucasb-eyer/go-colorful/hsluv.go b/vendor/github.com/lucasb-eyer/go-colorful/hsluv.go deleted file mode 100644 index d19fb64..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/hsluv.go +++ /dev/null @@ -1,207 +0,0 @@ -package colorful - -import "math" - -// Source: https://github.com/hsluv/hsluv-go -// Under MIT License -// Modified so that Saturation and Luminance are in [0..1] instead of [0..100]. - -// HSLuv uses a rounded version of the D65. This has no impact on the final RGB -// values, but to keep high levels of accuracy for internal operations and when -// comparing to the test values, this modified white reference is used internally. -// -// See this GitHub thread for details on these values: -// https://github.com/hsluv/hsluv/issues/79 -var hSLuvD65 = [3]float64{0.95045592705167, 1.0, 1.089057750759878} - -func LuvLChToHSLuv(l, c, h float64) (float64, float64, float64) { - // [-1..1] but the code expects it to be [-100..100] - c *= 100.0 - l *= 100.0 - - var s, max float64 - if l > 99.9999999 || l < 0.00000001 { - s = 0.0 - } else { - max = maxChromaForLH(l, h) - s = c / max * 100.0 - } - return h, clamp01(s / 100.0), clamp01(l / 100.0) -} - -func HSLuvToLuvLCh(h, s, l float64) (float64, float64, float64) { - l *= 100.0 - s *= 100.0 - - var c, max float64 - if l > 99.9999999 || l < 0.00000001 { - c = 0.0 - } else { - max = maxChromaForLH(l, h) - c = max / 100.0 * s - } - - // c is [-100..100], but for LCh it's supposed to be almost [-1..1] - return clamp01(l / 100.0), c / 100.0, h -} - -func LuvLChToHPLuv(l, c, h float64) (float64, float64, float64) { - // [-1..1] but the code expects it to be [-100..100] - c *= 100.0 - l *= 100.0 - - var s, max float64 - if l > 99.9999999 || l < 0.00000001 { - s = 0.0 - } else { - max = maxSafeChromaForL(l) - s = c / max * 100.0 - } - return h, s / 100.0, l / 100.0 -} - -func HPLuvToLuvLCh(h, s, l float64) (float64, float64, float64) { - // [-1..1] but the code expects it to be [-100..100] - l *= 100.0 - s *= 100.0 - - var c, max float64 - if l > 99.9999999 || l < 0.00000001 { - c = 0.0 - } else { - max = maxSafeChromaForL(l) - c = max / 100.0 * s - } - return l / 100.0, c / 100.0, h -} - -// HSLuv creates a new Color from values in the HSLuv color space. -// Hue in [0..360], a Saturation [0..1], and a Luminance (lightness) in [0..1]. -// -// The returned color values are clamped (using .Clamped), so this will never output -// an invalid color. -func HSLuv(h, s, l float64) Color { - // HSLuv -> LuvLCh -> CIELUV -> CIEXYZ -> Linear RGB -> sRGB - l, u, v := LuvLChToLuv(HSLuvToLuvLCh(h, s, l)) - return LinearRgb(XyzToLinearRgb(LuvToXyzWhiteRef(l, u, v, hSLuvD65))).Clamped() -} - -// HPLuv creates a new Color from values in the HPLuv color space. -// Hue in [0..360], a Saturation [0..1], and a Luminance (lightness) in [0..1]. -// -// The returned color values are clamped (using .Clamped), so this will never output -// an invalid color. -func HPLuv(h, s, l float64) Color { - // HPLuv -> LuvLCh -> CIELUV -> CIEXYZ -> Linear RGB -> sRGB - l, u, v := LuvLChToLuv(HPLuvToLuvLCh(h, s, l)) - return LinearRgb(XyzToLinearRgb(LuvToXyzWhiteRef(l, u, v, hSLuvD65))).Clamped() -} - -// HSLuv returns the Hue, Saturation and Luminance of the color in the HSLuv -// color space. Hue in [0..360], a Saturation [0..1], and a Luminance -// (lightness) in [0..1]. -func (col Color) HSLuv() (h, s, l float64) { - // sRGB -> Linear RGB -> CIEXYZ -> CIELUV -> LuvLCh -> HSLuv - return LuvLChToHSLuv(col.LuvLChWhiteRef(hSLuvD65)) -} - -// HPLuv returns the Hue, Saturation and Luminance of the color in the HSLuv -// color space. Hue in [0..360], a Saturation [0..1], and a Luminance -// (lightness) in [0..1]. -// -// Note that HPLuv can only represent pastel colors, and so the Saturation -// value could be much larger than 1 for colors it can't represent. -func (col Color) HPLuv() (h, s, l float64) { - return LuvLChToHPLuv(col.LuvLChWhiteRef(hSLuvD65)) -} - -// DistanceHSLuv calculates Euclidan distance in the HSLuv colorspace. No idea -// how useful this is. -// -// The Hue value is divided by 100 before the calculation, so that H, S, and L -// have the same relative ranges. -func (c1 Color) DistanceHSLuv(c2 Color) float64 { - h1, s1, l1 := c1.HSLuv() - h2, s2, l2 := c2.HSLuv() - return math.Sqrt(sq((h1-h2)/100.0) + sq(s1-s2) + sq(l1-l2)) -} - -// DistanceHPLuv calculates Euclidean distance in the HPLuv colorspace. No idea -// how useful this is. -// -// The Hue value is divided by 100 before the calculation, so that H, S, and L -// have the same relative ranges. -func (c1 Color) DistanceHPLuv(c2 Color) float64 { - h1, s1, l1 := c1.HPLuv() - h2, s2, l2 := c2.HPLuv() - return math.Sqrt(sq((h1-h2)/100.0) + sq(s1-s2) + sq(l1-l2)) -} - -var m = [3][3]float64{ - {3.2409699419045214, -1.5373831775700935, -0.49861076029300328}, - {-0.96924363628087983, 1.8759675015077207, 0.041555057407175613}, - {0.055630079696993609, -0.20397695888897657, 1.0569715142428786}, -} - -const kappa = 903.2962962962963 -const epsilon = 0.0088564516790356308 - -func maxChromaForLH(l, h float64) float64 { - hRad := h / 360.0 * math.Pi * 2.0 - minLength := math.MaxFloat64 - for _, line := range getBounds(l) { - length := lengthOfRayUntilIntersect(hRad, line[0], line[1]) - if length > 0.0 && length < minLength { - minLength = length - } - } - return minLength -} - -func getBounds(l float64) [6][2]float64 { - var sub2 float64 - var ret [6][2]float64 - sub1 := math.Pow(l+16.0, 3.0) / 1560896.0 - if sub1 > epsilon { - sub2 = sub1 - } else { - sub2 = l / kappa - } - for i := range m { - for k := 0; k < 2; k++ { - top1 := (284517.0*m[i][0] - 94839.0*m[i][2]) * sub2 - top2 := (838422.0*m[i][2]+769860.0*m[i][1]+731718.0*m[i][0])*l*sub2 - 769860.0*float64(k)*l - bottom := (632260.0*m[i][2]-126452.0*m[i][1])*sub2 + 126452.0*float64(k) - ret[i*2+k][0] = top1 / bottom - ret[i*2+k][1] = top2 / bottom - } - } - return ret -} - -func lengthOfRayUntilIntersect(theta, x, y float64) (length float64) { - length = y / (math.Sin(theta) - x*math.Cos(theta)) - return -} - -func maxSafeChromaForL(l float64) float64 { - minLength := math.MaxFloat64 - for _, line := range getBounds(l) { - m1 := line[0] - b1 := line[1] - x := intersectLineLine(m1, b1, -1.0/m1, 0.0) - dist := distanceFromPole(x, b1+x*m1) - if dist < minLength { - minLength = dist - } - } - return minLength -} - -func intersectLineLine(x1, y1, x2, y2 float64) float64 { - return (y1 - y2) / (x2 - x1) -} - -func distanceFromPole(x, y float64) float64 { - return math.Sqrt(math.Pow(x, 2.0) + math.Pow(y, 2.0)) -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go deleted file mode 100644 index 9f7bf6f..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go +++ /dev/null @@ -1,185 +0,0 @@ -// Largely inspired by the descriptions in http://lab.medialab.sciences-po.fr/iwanthue/ -// but written from scratch. - -package colorful - -import ( - "fmt" - "math" - "math/rand" -) - -// The algorithm works in L*a*b* color space and converts to RGB in the end. -// L* in [0..1], a* and b* in [-1..1] -type lab_t struct { - L, A, B float64 -} - -type SoftPaletteSettings struct { - // A function which can be used to restrict the allowed color-space. - CheckColor func(l, a, b float64) bool - - // The higher, the better quality but the slower. Usually two figures. - Iterations int - - // Use up to 160000 or 8000 samples of the L*a*b* space (and thus calls to CheckColor). - // Set this to true only if your CheckColor shapes the Lab space weirdly. - ManySamples bool -} - -// Yeah, windows-stype Foo, FooEx, screw you golang... -// Uses K-means to cluster the color-space and return the means of the clusters -// as a new palette of distinctive colors. Falls back to K-medoid if the mean -// happens to fall outside of the color-space, which can only happen if you -// specify a CheckColor function. -func SoftPaletteEx(colorsCount int, settings SoftPaletteSettings) ([]Color, error) { - - // Checks whether it's a valid RGB and also fulfills the potentially provided constraint. - check := func(col lab_t) bool { - c := Lab(col.L, col.A, col.B) - return c.IsValid() && (settings.CheckColor == nil || settings.CheckColor(col.L, col.A, col.B)) - } - - // Sample the color space. These will be the points k-means is run on. - dl := 0.05 - dab := 0.1 - if settings.ManySamples { - dl = 0.01 - dab = 0.05 - } - - samples := make([]lab_t, 0, int(1.0/dl*2.0/dab*2.0/dab)) - for l := 0.0; l <= 1.0; l += dl { - for a := -1.0; a <= 1.0; a += dab { - for b := -1.0; b <= 1.0; b += dab { - if check(lab_t{l, a, b}) { - samples = append(samples, lab_t{l, a, b}) - } - } - } - } - - // That would cause some infinite loops down there... - if len(samples) < colorsCount { - return nil, fmt.Errorf("palettegen: more colors requested (%v) than samples available (%v). Your requested color count may be wrong, you might want to use many samples or your constraint function makes the valid color space too small", colorsCount, len(samples)) - } else if len(samples) == colorsCount { - return labs2cols(samples), nil // Oops? - } - - // We take the initial means out of the samples, so they are in fact medoids. - // This helps us avoid infinite loops or arbitrary cutoffs with too restrictive constraints. - means := make([]lab_t, colorsCount) - for i := 0; i < colorsCount; i++ { - for means[i] = samples[rand.Intn(len(samples))]; in(means, i, means[i]); means[i] = samples[rand.Intn(len(samples))] { - } - } - - clusters := make([]int, len(samples)) - samples_used := make([]bool, len(samples)) - - // The actual k-means/medoid iterations - for i := 0; i < settings.Iterations; i++ { - // Reassing the samples to clusters, i.e. to their closest mean. - // By the way, also check if any sample is used as a medoid and if so, mark that. - for isample, sample := range samples { - samples_used[isample] = false - mindist := math.Inf(+1) - for imean, mean := range means { - dist := lab_dist(sample, mean) - if dist < mindist { - mindist = dist - clusters[isample] = imean - } - - // Mark samples which are used as a medoid. - if lab_eq(sample, mean) { - samples_used[isample] = true - } - } - } - - // Compute new means according to the samples. - for imean := range means { - // The new mean is the average of all samples belonging to it.. - nsamples := 0 - newmean := lab_t{0.0, 0.0, 0.0} - for isample, sample := range samples { - if clusters[isample] == imean { - nsamples++ - newmean.L += sample.L - newmean.A += sample.A - newmean.B += sample.B - } - } - if nsamples > 0 { - newmean.L /= float64(nsamples) - newmean.A /= float64(nsamples) - newmean.B /= float64(nsamples) - } else { - // That mean doesn't have any samples? Get a new mean from the sample list! - var inewmean int - for inewmean = rand.Intn(len(samples_used)); samples_used[inewmean]; inewmean = rand.Intn(len(samples_used)) { - } - newmean = samples[inewmean] - samples_used[inewmean] = true - } - - // But now we still need to check whether the new mean is an allowed color. - if nsamples > 0 && check(newmean) { - // It does, life's good (TM) - means[imean] = newmean - } else { - // New mean isn't an allowed color or doesn't have any samples! - // Switch to medoid mode and pick the closest (unused) sample. - // This should always find something thanks to len(samples) >= colorsCount - mindist := math.Inf(+1) - for isample, sample := range samples { - if !samples_used[isample] { - dist := lab_dist(sample, newmean) - if dist < mindist { - mindist = dist - newmean = sample - } - } - } - } - } - } - return labs2cols(means), nil -} - -// A wrapper which uses common parameters. -func SoftPalette(colorsCount int) ([]Color, error) { - return SoftPaletteEx(colorsCount, SoftPaletteSettings{nil, 50, false}) -} - -func in(haystack []lab_t, upto int, needle lab_t) bool { - for i := 0; i < upto && i < len(haystack); i++ { - if haystack[i] == needle { - return true - } - } - return false -} - -const LAB_DELTA = 1e-6 - -func lab_eq(lab1, lab2 lab_t) bool { - return math.Abs(lab1.L-lab2.L) < LAB_DELTA && - math.Abs(lab1.A-lab2.A) < LAB_DELTA && - math.Abs(lab1.B-lab2.B) < LAB_DELTA -} - -// That's faster than using colorful's DistanceLab since we would have to -// convert back and forth for that. Here is no conversion. -func lab_dist(lab1, lab2 lab_t) float64 { - return math.Sqrt(sq(lab1.L-lab2.L) + sq(lab1.A-lab2.A) + sq(lab1.B-lab2.B)) -} - -func labs2cols(labs []lab_t) (cols []Color) { - cols = make([]Color, len(labs)) - for k, v := range labs { - cols[k] = Lab(v.L, v.A, v.B) - } - return cols -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go deleted file mode 100644 index 00f42a5..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go +++ /dev/null @@ -1,25 +0,0 @@ -package colorful - -import ( - "math/rand" -) - -// Uses the HSV color space to generate colors with similar S,V but distributed -// evenly along their Hue. This is fast but not always pretty. -// If you've got time to spare, use Lab (the non-fast below). -func FastWarmPalette(colorsCount int) (colors []Color) { - colors = make([]Color, colorsCount) - - for i := 0; i < colorsCount; i++ { - colors[i] = Hsv(float64(i)*(360.0/float64(colorsCount)), 0.55+rand.Float64()*0.2, 0.35+rand.Float64()*0.2) - } - return -} - -func WarmPalette(colorsCount int) ([]Color, error) { - warmy := func(l, a, b float64) bool { - _, c, _ := LabToHcl(l, a, b) - return 0.1 <= c && c <= 0.4 && 0.2 <= l && l <= 0.5 - } - return SoftPaletteEx(colorsCount, SoftPaletteSettings{warmy, 50, true}) -} diff --git a/vendor/github.com/mattn/go-isatty/LICENSE b/vendor/github.com/mattn/go-isatty/LICENSE deleted file mode 100644 index 65dc692..0000000 --- a/vendor/github.com/mattn/go-isatty/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (c) Yasuhiro MATSUMOTO - -MIT License (Expat) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/mattn/go-isatty/README.md b/vendor/github.com/mattn/go-isatty/README.md deleted file mode 100644 index 3841835..0000000 --- a/vendor/github.com/mattn/go-isatty/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# go-isatty - -[![Godoc Reference](https://godoc.org/github.com/mattn/go-isatty?status.svg)](http://godoc.org/github.com/mattn/go-isatty) -[![Codecov](https://codecov.io/gh/mattn/go-isatty/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-isatty) -[![Coverage Status](https://coveralls.io/repos/github/mattn/go-isatty/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-isatty?branch=master) -[![Go Report Card](https://goreportcard.com/badge/mattn/go-isatty)](https://goreportcard.com/report/mattn/go-isatty) - -isatty for golang - -## Usage - -```go -package main - -import ( - "fmt" - "github.com/mattn/go-isatty" - "os" -) - -func main() { - if isatty.IsTerminal(os.Stdout.Fd()) { - fmt.Println("Is Terminal") - } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) { - fmt.Println("Is Cygwin/MSYS2 Terminal") - } else { - fmt.Println("Is Not Terminal") - } -} -``` - -## Installation - -``` -$ go get github.com/mattn/go-isatty -``` - -## License - -MIT - -## Author - -Yasuhiro Matsumoto (a.k.a mattn) - -## Thanks - -* k-takata: base idea for IsCygwinTerminal - - https://github.com/k-takata/go-iscygpty diff --git a/vendor/github.com/mattn/go-isatty/doc.go b/vendor/github.com/mattn/go-isatty/doc.go deleted file mode 100644 index 17d4f90..0000000 --- a/vendor/github.com/mattn/go-isatty/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package isatty implements interface to isatty -package isatty diff --git a/vendor/github.com/mattn/go-isatty/go.test.sh b/vendor/github.com/mattn/go-isatty/go.test.sh deleted file mode 100644 index 012162b..0000000 --- a/vendor/github.com/mattn/go-isatty/go.test.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e -echo "" > coverage.txt - -for d in $(go list ./... | grep -v vendor); do - go test -race -coverprofile=profile.out -covermode=atomic "$d" - if [ -f profile.out ]; then - cat profile.out >> coverage.txt - rm profile.out - fi -done diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go deleted file mode 100644 index d0ea68f..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_bsd.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build (darwin || freebsd || openbsd || netbsd || dragonfly || hurd) && !appengine && !tinygo -// +build darwin freebsd openbsd netbsd dragonfly hurd -// +build !appengine -// +build !tinygo - -package isatty - -import "golang.org/x/sys/unix" - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - _, err := unix.IoctlGetTermios(int(fd), unix.TIOCGETA) - return err == nil -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_others.go b/vendor/github.com/mattn/go-isatty/isatty_others.go deleted file mode 100644 index 7402e06..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_others.go +++ /dev/null @@ -1,17 +0,0 @@ -//go:build (appengine || js || nacl || tinygo || wasm) && !windows -// +build appengine js nacl tinygo wasm -// +build !windows - -package isatty - -// IsTerminal returns true if the file descriptor is terminal which -// is always false on js and appengine classic which is a sandboxed PaaS. -func IsTerminal(fd uintptr) bool { - return false -} - -// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_plan9.go b/vendor/github.com/mattn/go-isatty/isatty_plan9.go deleted file mode 100644 index bae7f9b..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_plan9.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build plan9 -// +build plan9 - -package isatty - -import ( - "syscall" -) - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd uintptr) bool { - path, err := syscall.Fd2path(int(fd)) - if err != nil { - return false - } - return path == "/dev/cons" || path == "/mnt/term/dev/cons" -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_solaris.go b/vendor/github.com/mattn/go-isatty/isatty_solaris.go deleted file mode 100644 index 0c3acf2..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_solaris.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build solaris && !appengine -// +build solaris,!appengine - -package isatty - -import ( - "golang.org/x/sys/unix" -) - -// IsTerminal returns true if the given file descriptor is a terminal. -// see: https://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/isatty.c -func IsTerminal(fd uintptr) bool { - _, err := unix.IoctlGetTermio(int(fd), unix.TCGETA) - return err == nil -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go deleted file mode 100644 index 0337d8c..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build (linux || aix || zos) && !appengine && !tinygo -// +build linux aix zos -// +build !appengine -// +build !tinygo - -package isatty - -import "golang.org/x/sys/unix" - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - _, err := unix.IoctlGetTermios(int(fd), unix.TCGETS) - return err == nil -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_windows.go b/vendor/github.com/mattn/go-isatty/isatty_windows.go deleted file mode 100644 index 8e3c991..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_windows.go +++ /dev/null @@ -1,125 +0,0 @@ -//go:build windows && !appengine -// +build windows,!appengine - -package isatty - -import ( - "errors" - "strings" - "syscall" - "unicode/utf16" - "unsafe" -) - -const ( - objectNameInfo uintptr = 1 - fileNameInfo = 2 - fileTypePipe = 3 -) - -var ( - kernel32 = syscall.NewLazyDLL("kernel32.dll") - ntdll = syscall.NewLazyDLL("ntdll.dll") - procGetConsoleMode = kernel32.NewProc("GetConsoleMode") - procGetFileInformationByHandleEx = kernel32.NewProc("GetFileInformationByHandleEx") - procGetFileType = kernel32.NewProc("GetFileType") - procNtQueryObject = ntdll.NewProc("NtQueryObject") -) - -func init() { - // Check if GetFileInformationByHandleEx is available. - if procGetFileInformationByHandleEx.Find() != nil { - procGetFileInformationByHandleEx = nil - } -} - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - var st uint32 - r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0) - return r != 0 && e == 0 -} - -// Check pipe name is used for cygwin/msys2 pty. -// Cygwin/MSYS2 PTY has a name like: -// \{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master -func isCygwinPipeName(name string) bool { - token := strings.Split(name, "-") - if len(token) < 5 { - return false - } - - if token[0] != `\msys` && - token[0] != `\cygwin` && - token[0] != `\Device\NamedPipe\msys` && - token[0] != `\Device\NamedPipe\cygwin` { - return false - } - - if token[1] == "" { - return false - } - - if !strings.HasPrefix(token[2], "pty") { - return false - } - - if token[3] != `from` && token[3] != `to` { - return false - } - - if token[4] != "master" { - return false - } - - return true -} - -// getFileNameByHandle use the undocomented ntdll NtQueryObject to get file full name from file handler -// since GetFileInformationByHandleEx is not available under windows Vista and still some old fashion -// guys are using Windows XP, this is a workaround for those guys, it will also work on system from -// Windows vista to 10 -// see https://stackoverflow.com/a/18792477 for details -func getFileNameByHandle(fd uintptr) (string, error) { - if procNtQueryObject == nil { - return "", errors.New("ntdll.dll: NtQueryObject not supported") - } - - var buf [4 + syscall.MAX_PATH]uint16 - var result int - r, _, e := syscall.Syscall6(procNtQueryObject.Addr(), 5, - fd, objectNameInfo, uintptr(unsafe.Pointer(&buf)), uintptr(2*len(buf)), uintptr(unsafe.Pointer(&result)), 0) - if r != 0 { - return "", e - } - return string(utf16.Decode(buf[4 : 4+buf[0]/2])), nil -} - -// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 -// terminal. -func IsCygwinTerminal(fd uintptr) bool { - if procGetFileInformationByHandleEx == nil { - name, err := getFileNameByHandle(fd) - if err != nil { - return false - } - return isCygwinPipeName(name) - } - - // Cygwin/msys's pty is a pipe. - ft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0) - if ft != fileTypePipe || e != 0 { - return false - } - - var buf [2 + syscall.MAX_PATH]uint16 - r, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), - 4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)), - uintptr(len(buf)*2), 0, 0) - if r == 0 || e != 0 { - return false - } - - l := *(*uint32)(unsafe.Pointer(&buf)) - return isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2]))) -} diff --git a/vendor/github.com/mattn/go-localereader/README.md b/vendor/github.com/mattn/go-localereader/README.md deleted file mode 100644 index 9e10953..0000000 --- a/vendor/github.com/mattn/go-localereader/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# go-localereader - -CodePage decoder for Windows - -## Usage - -``` -io.Copy(os.Stdout, localereader.NewAcpReader(bytes.Reader(bytesSjis))) -``` - -## Installation - -``` -$ go get github.com/mattn/go-localereader -``` - -## License - -MIT - -## Author - -Yasuhiro Matsumoto (a.k.a. mattn) diff --git a/vendor/github.com/mattn/go-localereader/localereader.go b/vendor/github.com/mattn/go-localereader/localereader.go deleted file mode 100644 index 47a3137..0000000 --- a/vendor/github.com/mattn/go-localereader/localereader.go +++ /dev/null @@ -1,19 +0,0 @@ -package localereader - -import ( - "bytes" - "io" -) - -func NewReader(r io.Reader) io.Reader { - return newReader(r) -} - -func UTF8(b []byte) ([]byte, error) { - var buf bytes.Buffer - n, err := io.Copy(&buf, newReader(bytes.NewReader(b))) - if err != nil { - return nil, err - } - return buf.Bytes()[:n], nil -} diff --git a/vendor/github.com/mattn/go-localereader/localereader_unix.go b/vendor/github.com/mattn/go-localereader/localereader_unix.go deleted file mode 100644 index d85e12e..0000000 --- a/vendor/github.com/mattn/go-localereader/localereader_unix.go +++ /dev/null @@ -1,11 +0,0 @@ -// +build !windows - -package localereader - -import ( - "io" -) - -func newReader(r io.Reader) io.Reader { - return r -} diff --git a/vendor/github.com/mattn/go-localereader/localereader_windows.go b/vendor/github.com/mattn/go-localereader/localereader_windows.go deleted file mode 100644 index 57c238f..0000000 --- a/vendor/github.com/mattn/go-localereader/localereader_windows.go +++ /dev/null @@ -1,85 +0,0 @@ -// +build windows - -package localereader - -import ( - "io" - "syscall" - "unicode/utf8" - "unsafe" - - "golang.org/x/text/transform" -) - -const ( - CP_ACP = 0 - MB_ERR_INVALID_CHARS = 8 -) - -var ( - modkernel32 = syscall.NewLazyDLL("kernel32.dll") - procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") - procIsDBCSLeadByte = modkernel32.NewProc("IsDBCSLeadByte") -) - -type codepageDecoder struct { - transform.NopResetter - - cp int -} - -func (codepageDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - default: - br, _, _ := procIsDBCSLeadByte.Call(uintptr(src[nSrc])) - if br == 0 { - r = rune(src[nSrc]) - size = 1 - break - } - if nSrc >= len(src)-1 { - r = rune(src[nSrc]) - size = 1 - break - } - n, _, _ := procMultiByteToWideChar.Call(CP_ACP, 0, uintptr(unsafe.Pointer(&src[nSrc])), uintptr(2), uintptr(0), 0) - if n <= 0 { - err = syscall.GetLastError() - break - } - var us [1]uint16 - rc, _, _ := procMultiByteToWideChar.Call(CP_ACP, 0, uintptr(unsafe.Pointer(&src[nSrc])), uintptr(2), uintptr(unsafe.Pointer(&us[0])), 1) - if rc == 0 { - size = 1 - break - } - r = rune(us[0]) - size = 2 - } - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err - -} - -func newReader(r io.Reader) io.Reader { - return transform.NewReader(r, NewAcpDecoder()) -} - -func NewCodePageDecoder(cp int) transform.Transformer { - return &codepageDecoder{cp: cp} -} - -func NewAcpDecoder() transform.Transformer { - return &codepageDecoder{cp: CP_ACP} -} diff --git a/vendor/github.com/mattn/go-runewidth/LICENSE b/vendor/github.com/mattn/go-runewidth/LICENSE deleted file mode 100644 index 91b5cef..0000000 --- a/vendor/github.com/mattn/go-runewidth/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Yasuhiro Matsumoto - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/mattn/go-runewidth/README.md b/vendor/github.com/mattn/go-runewidth/README.md deleted file mode 100644 index 5e2cfd9..0000000 --- a/vendor/github.com/mattn/go-runewidth/README.md +++ /dev/null @@ -1,27 +0,0 @@ -go-runewidth -============ - -[![Build Status](https://github.com/mattn/go-runewidth/workflows/test/badge.svg?branch=master)](https://github.com/mattn/go-runewidth/actions?query=workflow%3Atest) -[![Codecov](https://codecov.io/gh/mattn/go-runewidth/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-runewidth) -[![GoDoc](https://godoc.org/github.com/mattn/go-runewidth?status.svg)](http://godoc.org/github.com/mattn/go-runewidth) -[![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-runewidth)](https://goreportcard.com/report/github.com/mattn/go-runewidth) - -Provides functions to get fixed width of the character or string. - -Usage ------ - -```go -runewidth.StringWidth("つのだ☆HIRO") == 12 -``` - - -Author ------- - -Yasuhiro Matsumoto - -License -------- - -under the MIT License: http://mattn.mit-license.org/2013 diff --git a/vendor/github.com/mattn/go-runewidth/runewidth.go b/vendor/github.com/mattn/go-runewidth/runewidth.go deleted file mode 100644 index 7dfbb3b..0000000 --- a/vendor/github.com/mattn/go-runewidth/runewidth.go +++ /dev/null @@ -1,358 +0,0 @@ -package runewidth - -import ( - "os" - "strings" - - "github.com/rivo/uniseg" -) - -//go:generate go run script/generate.go - -var ( - // EastAsianWidth will be set true if the current locale is CJK - EastAsianWidth bool - - // StrictEmojiNeutral should be set false if handle broken fonts - StrictEmojiNeutral bool = true - - // DefaultCondition is a condition in current locale - DefaultCondition = &Condition{ - EastAsianWidth: false, - StrictEmojiNeutral: true, - } -) - -func init() { - handleEnv() -} - -func handleEnv() { - env := os.Getenv("RUNEWIDTH_EASTASIAN") - if env == "" { - EastAsianWidth = IsEastAsian() - } else { - EastAsianWidth = env == "1" - } - // update DefaultCondition - if DefaultCondition.EastAsianWidth != EastAsianWidth { - DefaultCondition.EastAsianWidth = EastAsianWidth - if len(DefaultCondition.combinedLut) > 0 { - DefaultCondition.combinedLut = DefaultCondition.combinedLut[:0] - CreateLUT() - } - } -} - -type interval struct { - first rune - last rune -} - -type table []interval - -func inTables(r rune, ts ...table) bool { - for _, t := range ts { - if inTable(r, t) { - return true - } - } - return false -} - -func inTable(r rune, t table) bool { - if r < t[0].first { - return false - } - - bot := 0 - top := len(t) - 1 - for top >= bot { - mid := (bot + top) >> 1 - - switch { - case t[mid].last < r: - bot = mid + 1 - case t[mid].first > r: - top = mid - 1 - default: - return true - } - } - - return false -} - -var private = table{ - {0x00E000, 0x00F8FF}, {0x0F0000, 0x0FFFFD}, {0x100000, 0x10FFFD}, -} - -var nonprint = table{ - {0x0000, 0x001F}, {0x007F, 0x009F}, {0x00AD, 0x00AD}, - {0x070F, 0x070F}, {0x180B, 0x180E}, {0x200B, 0x200F}, - {0x2028, 0x202E}, {0x206A, 0x206F}, {0xD800, 0xDFFF}, - {0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFB}, {0xFFFE, 0xFFFF}, -} - -// Condition have flag EastAsianWidth whether the current locale is CJK or not. -type Condition struct { - combinedLut []byte - EastAsianWidth bool - StrictEmojiNeutral bool -} - -// NewCondition return new instance of Condition which is current locale. -func NewCondition() *Condition { - return &Condition{ - EastAsianWidth: EastAsianWidth, - StrictEmojiNeutral: StrictEmojiNeutral, - } -} - -// RuneWidth returns the number of cells in r. -// See http://www.unicode.org/reports/tr11/ -func (c *Condition) RuneWidth(r rune) int { - if r < 0 || r > 0x10FFFF { - return 0 - } - if len(c.combinedLut) > 0 { - return int(c.combinedLut[r>>1]>>(uint(r&1)*4)) & 3 - } - // optimized version, verified by TestRuneWidthChecksums() - if !c.EastAsianWidth { - switch { - case r < 0x20: - return 0 - case (r >= 0x7F && r <= 0x9F) || r == 0xAD: // nonprint - return 0 - case r < 0x300: - return 1 - case inTable(r, narrow): - return 1 - case inTables(r, nonprint, combining): - return 0 - case inTable(r, doublewidth): - return 2 - default: - return 1 - } - } else { - switch { - case inTables(r, nonprint, combining): - return 0 - case inTable(r, narrow): - return 1 - case inTables(r, ambiguous, doublewidth): - return 2 - case !c.StrictEmojiNeutral && inTables(r, ambiguous, emoji, narrow): - return 2 - default: - return 1 - } - } -} - -// CreateLUT will create an in-memory lookup table of 557056 bytes for faster operation. -// This should not be called concurrently with other operations on c. -// If options in c is changed, CreateLUT should be called again. -func (c *Condition) CreateLUT() { - const max = 0x110000 - lut := c.combinedLut - if len(c.combinedLut) != 0 { - // Remove so we don't use it. - c.combinedLut = nil - } else { - lut = make([]byte, max/2) - } - for i := range lut { - i32 := int32(i * 2) - x0 := c.RuneWidth(i32) - x1 := c.RuneWidth(i32 + 1) - lut[i] = uint8(x0) | uint8(x1)<<4 - } - c.combinedLut = lut -} - -// StringWidth return width as you can see -func (c *Condition) StringWidth(s string) (width int) { - g := uniseg.NewGraphemes(s) - for g.Next() { - var chWidth int - for _, r := range g.Runes() { - chWidth = c.RuneWidth(r) - if chWidth > 0 { - break // Our best guess at this point is to use the width of the first non-zero-width rune. - } - } - width += chWidth - } - return -} - -// Truncate return string truncated with w cells -func (c *Condition) Truncate(s string, w int, tail string) string { - if c.StringWidth(s) <= w { - return s - } - w -= c.StringWidth(tail) - var width int - pos := len(s) - g := uniseg.NewGraphemes(s) - for g.Next() { - var chWidth int - for _, r := range g.Runes() { - chWidth = c.RuneWidth(r) - if chWidth > 0 { - break // See StringWidth() for details. - } - } - if width+chWidth > w { - pos, _ = g.Positions() - break - } - width += chWidth - } - return s[:pos] + tail -} - -// TruncateLeft cuts w cells from the beginning of the `s`. -func (c *Condition) TruncateLeft(s string, w int, prefix string) string { - if c.StringWidth(s) <= w { - return prefix - } - - var width int - pos := len(s) - - g := uniseg.NewGraphemes(s) - for g.Next() { - var chWidth int - for _, r := range g.Runes() { - chWidth = c.RuneWidth(r) - if chWidth > 0 { - break // See StringWidth() for details. - } - } - - if width+chWidth > w { - if width < w { - _, pos = g.Positions() - prefix += strings.Repeat(" ", width+chWidth-w) - } else { - pos, _ = g.Positions() - } - - break - } - - width += chWidth - } - - return prefix + s[pos:] -} - -// Wrap return string wrapped with w cells -func (c *Condition) Wrap(s string, w int) string { - width := 0 - out := "" - for _, r := range s { - cw := c.RuneWidth(r) - if r == '\n' { - out += string(r) - width = 0 - continue - } else if width+cw > w { - out += "\n" - width = 0 - out += string(r) - width += cw - continue - } - out += string(r) - width += cw - } - return out -} - -// FillLeft return string filled in left by spaces in w cells -func (c *Condition) FillLeft(s string, w int) string { - width := c.StringWidth(s) - count := w - width - if count > 0 { - b := make([]byte, count) - for i := range b { - b[i] = ' ' - } - return string(b) + s - } - return s -} - -// FillRight return string filled in left by spaces in w cells -func (c *Condition) FillRight(s string, w int) string { - width := c.StringWidth(s) - count := w - width - if count > 0 { - b := make([]byte, count) - for i := range b { - b[i] = ' ' - } - return s + string(b) - } - return s -} - -// RuneWidth returns the number of cells in r. -// See http://www.unicode.org/reports/tr11/ -func RuneWidth(r rune) int { - return DefaultCondition.RuneWidth(r) -} - -// IsAmbiguousWidth returns whether is ambiguous width or not. -func IsAmbiguousWidth(r rune) bool { - return inTables(r, private, ambiguous) -} - -// IsNeutralWidth returns whether is neutral width or not. -func IsNeutralWidth(r rune) bool { - return inTable(r, neutral) -} - -// StringWidth return width as you can see -func StringWidth(s string) (width int) { - return DefaultCondition.StringWidth(s) -} - -// Truncate return string truncated with w cells -func Truncate(s string, w int, tail string) string { - return DefaultCondition.Truncate(s, w, tail) -} - -// TruncateLeft cuts w cells from the beginning of the `s`. -func TruncateLeft(s string, w int, prefix string) string { - return DefaultCondition.TruncateLeft(s, w, prefix) -} - -// Wrap return string wrapped with w cells -func Wrap(s string, w int) string { - return DefaultCondition.Wrap(s, w) -} - -// FillLeft return string filled in left by spaces in w cells -func FillLeft(s string, w int) string { - return DefaultCondition.FillLeft(s, w) -} - -// FillRight return string filled in left by spaces in w cells -func FillRight(s string, w int) string { - return DefaultCondition.FillRight(s, w) -} - -// CreateLUT will create an in-memory lookup table of 557055 bytes for faster operation. -// This should not be called concurrently with other operations. -func CreateLUT() { - if len(DefaultCondition.combinedLut) > 0 { - return - } - DefaultCondition.CreateLUT() -} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_appengine.go b/vendor/github.com/mattn/go-runewidth/runewidth_appengine.go deleted file mode 100644 index 84b6528..0000000 --- a/vendor/github.com/mattn/go-runewidth/runewidth_appengine.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build appengine -// +build appengine - -package runewidth - -// IsEastAsian return true if the current locale is CJK -func IsEastAsian() bool { - return false -} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_js.go b/vendor/github.com/mattn/go-runewidth/runewidth_js.go deleted file mode 100644 index c2abbc2..0000000 --- a/vendor/github.com/mattn/go-runewidth/runewidth_js.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build js && !appengine -// +build js,!appengine - -package runewidth - -func IsEastAsian() bool { - // TODO: Implement this for the web. Detect east asian in a compatible way, and return true. - return false -} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_posix.go b/vendor/github.com/mattn/go-runewidth/runewidth_posix.go deleted file mode 100644 index 5a31d73..0000000 --- a/vendor/github.com/mattn/go-runewidth/runewidth_posix.go +++ /dev/null @@ -1,81 +0,0 @@ -//go:build !windows && !js && !appengine -// +build !windows,!js,!appengine - -package runewidth - -import ( - "os" - "regexp" - "strings" -) - -var reLoc = regexp.MustCompile(`^[a-z][a-z][a-z]?(?:_[A-Z][A-Z])?\.(.+)`) - -var mblenTable = map[string]int{ - "utf-8": 6, - "utf8": 6, - "jis": 8, - "eucjp": 3, - "euckr": 2, - "euccn": 2, - "sjis": 2, - "cp932": 2, - "cp51932": 2, - "cp936": 2, - "cp949": 2, - "cp950": 2, - "big5": 2, - "gbk": 2, - "gb2312": 2, -} - -func isEastAsian(locale string) bool { - charset := strings.ToLower(locale) - r := reLoc.FindStringSubmatch(locale) - if len(r) == 2 { - charset = strings.ToLower(r[1]) - } - - if strings.HasSuffix(charset, "@cjk_narrow") { - return false - } - - for pos, b := range []byte(charset) { - if b == '@' { - charset = charset[:pos] - break - } - } - max := 1 - if m, ok := mblenTable[charset]; ok { - max = m - } - if max > 1 && (charset[0] != 'u' || - strings.HasPrefix(locale, "ja") || - strings.HasPrefix(locale, "ko") || - strings.HasPrefix(locale, "zh")) { - return true - } - return false -} - -// IsEastAsian return true if the current locale is CJK -func IsEastAsian() bool { - locale := os.Getenv("LC_ALL") - if locale == "" { - locale = os.Getenv("LC_CTYPE") - } - if locale == "" { - locale = os.Getenv("LANG") - } - - // ignore C locale - if locale == "POSIX" || locale == "C" { - return false - } - if len(locale) > 1 && locale[0] == 'C' && (locale[1] == '.' || locale[1] == '-') { - return false - } - - return isEastAsian(locale) -} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_table.go b/vendor/github.com/mattn/go-runewidth/runewidth_table.go deleted file mode 100644 index ad025ad..0000000 --- a/vendor/github.com/mattn/go-runewidth/runewidth_table.go +++ /dev/null @@ -1,450 +0,0 @@ -// Code generated by script/generate.go. DO NOT EDIT. - -package runewidth - -var combining = table{ - {0x0300, 0x036F}, {0x0483, 0x0489}, {0x07EB, 0x07F3}, - {0x0C00, 0x0C00}, {0x0C04, 0x0C04}, {0x0CF3, 0x0CF3}, - {0x0D00, 0x0D01}, {0x135D, 0x135F}, {0x1A7F, 0x1A7F}, - {0x1AB0, 0x1ACE}, {0x1B6B, 0x1B73}, {0x1DC0, 0x1DFF}, - {0x20D0, 0x20F0}, {0x2CEF, 0x2CF1}, {0x2DE0, 0x2DFF}, - {0x3099, 0x309A}, {0xA66F, 0xA672}, {0xA674, 0xA67D}, - {0xA69E, 0xA69F}, {0xA6F0, 0xA6F1}, {0xA8E0, 0xA8F1}, - {0xFE20, 0xFE2F}, {0x101FD, 0x101FD}, {0x10376, 0x1037A}, - {0x10EAB, 0x10EAC}, {0x10F46, 0x10F50}, {0x10F82, 0x10F85}, - {0x11300, 0x11301}, {0x1133B, 0x1133C}, {0x11366, 0x1136C}, - {0x11370, 0x11374}, {0x16AF0, 0x16AF4}, {0x1CF00, 0x1CF2D}, - {0x1CF30, 0x1CF46}, {0x1D165, 0x1D169}, {0x1D16D, 0x1D172}, - {0x1D17B, 0x1D182}, {0x1D185, 0x1D18B}, {0x1D1AA, 0x1D1AD}, - {0x1D242, 0x1D244}, {0x1E000, 0x1E006}, {0x1E008, 0x1E018}, - {0x1E01B, 0x1E021}, {0x1E023, 0x1E024}, {0x1E026, 0x1E02A}, - {0x1E08F, 0x1E08F}, {0x1E8D0, 0x1E8D6}, -} - -var doublewidth = table{ - {0x1100, 0x115F}, {0x231A, 0x231B}, {0x2329, 0x232A}, - {0x23E9, 0x23EC}, {0x23F0, 0x23F0}, {0x23F3, 0x23F3}, - {0x25FD, 0x25FE}, {0x2614, 0x2615}, {0x2648, 0x2653}, - {0x267F, 0x267F}, {0x2693, 0x2693}, {0x26A1, 0x26A1}, - {0x26AA, 0x26AB}, {0x26BD, 0x26BE}, {0x26C4, 0x26C5}, - {0x26CE, 0x26CE}, {0x26D4, 0x26D4}, {0x26EA, 0x26EA}, - {0x26F2, 0x26F3}, {0x26F5, 0x26F5}, {0x26FA, 0x26FA}, - {0x26FD, 0x26FD}, {0x2705, 0x2705}, {0x270A, 0x270B}, - {0x2728, 0x2728}, {0x274C, 0x274C}, {0x274E, 0x274E}, - {0x2753, 0x2755}, {0x2757, 0x2757}, {0x2795, 0x2797}, - {0x27B0, 0x27B0}, {0x27BF, 0x27BF}, {0x2B1B, 0x2B1C}, - {0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x2E80, 0x2E99}, - {0x2E9B, 0x2EF3}, {0x2F00, 0x2FD5}, {0x2FF0, 0x303E}, - {0x3041, 0x3096}, {0x3099, 0x30FF}, {0x3105, 0x312F}, - {0x3131, 0x318E}, {0x3190, 0x31E3}, {0x31EF, 0x321E}, - {0x3220, 0x3247}, {0x3250, 0x4DBF}, {0x4E00, 0xA48C}, - {0xA490, 0xA4C6}, {0xA960, 0xA97C}, {0xAC00, 0xD7A3}, - {0xF900, 0xFAFF}, {0xFE10, 0xFE19}, {0xFE30, 0xFE52}, - {0xFE54, 0xFE66}, {0xFE68, 0xFE6B}, {0xFF01, 0xFF60}, - {0xFFE0, 0xFFE6}, {0x16FE0, 0x16FE4}, {0x16FF0, 0x16FF1}, - {0x17000, 0x187F7}, {0x18800, 0x18CD5}, {0x18D00, 0x18D08}, - {0x1AFF0, 0x1AFF3}, {0x1AFF5, 0x1AFFB}, {0x1AFFD, 0x1AFFE}, - {0x1B000, 0x1B122}, {0x1B132, 0x1B132}, {0x1B150, 0x1B152}, - {0x1B155, 0x1B155}, {0x1B164, 0x1B167}, {0x1B170, 0x1B2FB}, - {0x1F004, 0x1F004}, {0x1F0CF, 0x1F0CF}, {0x1F18E, 0x1F18E}, - {0x1F191, 0x1F19A}, {0x1F200, 0x1F202}, {0x1F210, 0x1F23B}, - {0x1F240, 0x1F248}, {0x1F250, 0x1F251}, {0x1F260, 0x1F265}, - {0x1F300, 0x1F320}, {0x1F32D, 0x1F335}, {0x1F337, 0x1F37C}, - {0x1F37E, 0x1F393}, {0x1F3A0, 0x1F3CA}, {0x1F3CF, 0x1F3D3}, - {0x1F3E0, 0x1F3F0}, {0x1F3F4, 0x1F3F4}, {0x1F3F8, 0x1F43E}, - {0x1F440, 0x1F440}, {0x1F442, 0x1F4FC}, {0x1F4FF, 0x1F53D}, - {0x1F54B, 0x1F54E}, {0x1F550, 0x1F567}, {0x1F57A, 0x1F57A}, - {0x1F595, 0x1F596}, {0x1F5A4, 0x1F5A4}, {0x1F5FB, 0x1F64F}, - {0x1F680, 0x1F6C5}, {0x1F6CC, 0x1F6CC}, {0x1F6D0, 0x1F6D2}, - {0x1F6D5, 0x1F6D7}, {0x1F6DC, 0x1F6DF}, {0x1F6EB, 0x1F6EC}, - {0x1F6F4, 0x1F6FC}, {0x1F7E0, 0x1F7EB}, {0x1F7F0, 0x1F7F0}, - {0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1F9FF}, - {0x1FA70, 0x1FA7C}, {0x1FA80, 0x1FA88}, {0x1FA90, 0x1FABD}, - {0x1FABF, 0x1FAC5}, {0x1FACE, 0x1FADB}, {0x1FAE0, 0x1FAE8}, - {0x1FAF0, 0x1FAF8}, {0x20000, 0x2FFFD}, {0x30000, 0x3FFFD}, -} - -var ambiguous = table{ - {0x00A1, 0x00A1}, {0x00A4, 0x00A4}, {0x00A7, 0x00A8}, - {0x00AA, 0x00AA}, {0x00AD, 0x00AE}, {0x00B0, 0x00B4}, - {0x00B6, 0x00BA}, {0x00BC, 0x00BF}, {0x00C6, 0x00C6}, - {0x00D0, 0x00D0}, {0x00D7, 0x00D8}, {0x00DE, 0x00E1}, - {0x00E6, 0x00E6}, {0x00E8, 0x00EA}, {0x00EC, 0x00ED}, - {0x00F0, 0x00F0}, {0x00F2, 0x00F3}, {0x00F7, 0x00FA}, - {0x00FC, 0x00FC}, {0x00FE, 0x00FE}, {0x0101, 0x0101}, - {0x0111, 0x0111}, {0x0113, 0x0113}, {0x011B, 0x011B}, - {0x0126, 0x0127}, {0x012B, 0x012B}, {0x0131, 0x0133}, - {0x0138, 0x0138}, {0x013F, 0x0142}, {0x0144, 0x0144}, - {0x0148, 0x014B}, {0x014D, 0x014D}, {0x0152, 0x0153}, - {0x0166, 0x0167}, {0x016B, 0x016B}, {0x01CE, 0x01CE}, - {0x01D0, 0x01D0}, {0x01D2, 0x01D2}, {0x01D4, 0x01D4}, - {0x01D6, 0x01D6}, {0x01D8, 0x01D8}, {0x01DA, 0x01DA}, - {0x01DC, 0x01DC}, {0x0251, 0x0251}, {0x0261, 0x0261}, - {0x02C4, 0x02C4}, {0x02C7, 0x02C7}, {0x02C9, 0x02CB}, - {0x02CD, 0x02CD}, {0x02D0, 0x02D0}, {0x02D8, 0x02DB}, - {0x02DD, 0x02DD}, {0x02DF, 0x02DF}, {0x0300, 0x036F}, - {0x0391, 0x03A1}, {0x03A3, 0x03A9}, {0x03B1, 0x03C1}, - {0x03C3, 0x03C9}, {0x0401, 0x0401}, {0x0410, 0x044F}, - {0x0451, 0x0451}, {0x2010, 0x2010}, {0x2013, 0x2016}, - {0x2018, 0x2019}, {0x201C, 0x201D}, {0x2020, 0x2022}, - {0x2024, 0x2027}, {0x2030, 0x2030}, {0x2032, 0x2033}, - {0x2035, 0x2035}, {0x203B, 0x203B}, {0x203E, 0x203E}, - {0x2074, 0x2074}, {0x207F, 0x207F}, {0x2081, 0x2084}, - {0x20AC, 0x20AC}, {0x2103, 0x2103}, {0x2105, 0x2105}, - {0x2109, 0x2109}, {0x2113, 0x2113}, {0x2116, 0x2116}, - {0x2121, 0x2122}, {0x2126, 0x2126}, {0x212B, 0x212B}, - {0x2153, 0x2154}, {0x215B, 0x215E}, {0x2160, 0x216B}, - {0x2170, 0x2179}, {0x2189, 0x2189}, {0x2190, 0x2199}, - {0x21B8, 0x21B9}, {0x21D2, 0x21D2}, {0x21D4, 0x21D4}, - {0x21E7, 0x21E7}, {0x2200, 0x2200}, {0x2202, 0x2203}, - {0x2207, 0x2208}, {0x220B, 0x220B}, {0x220F, 0x220F}, - {0x2211, 0x2211}, {0x2215, 0x2215}, {0x221A, 0x221A}, - {0x221D, 0x2220}, {0x2223, 0x2223}, {0x2225, 0x2225}, - {0x2227, 0x222C}, {0x222E, 0x222E}, {0x2234, 0x2237}, - {0x223C, 0x223D}, {0x2248, 0x2248}, {0x224C, 0x224C}, - {0x2252, 0x2252}, {0x2260, 0x2261}, {0x2264, 0x2267}, - {0x226A, 0x226B}, {0x226E, 0x226F}, {0x2282, 0x2283}, - {0x2286, 0x2287}, {0x2295, 0x2295}, {0x2299, 0x2299}, - {0x22A5, 0x22A5}, {0x22BF, 0x22BF}, {0x2312, 0x2312}, - {0x2460, 0x24E9}, {0x24EB, 0x254B}, {0x2550, 0x2573}, - {0x2580, 0x258F}, {0x2592, 0x2595}, {0x25A0, 0x25A1}, - {0x25A3, 0x25A9}, {0x25B2, 0x25B3}, {0x25B6, 0x25B7}, - {0x25BC, 0x25BD}, {0x25C0, 0x25C1}, {0x25C6, 0x25C8}, - {0x25CB, 0x25CB}, {0x25CE, 0x25D1}, {0x25E2, 0x25E5}, - {0x25EF, 0x25EF}, {0x2605, 0x2606}, {0x2609, 0x2609}, - {0x260E, 0x260F}, {0x261C, 0x261C}, {0x261E, 0x261E}, - {0x2640, 0x2640}, {0x2642, 0x2642}, {0x2660, 0x2661}, - {0x2663, 0x2665}, {0x2667, 0x266A}, {0x266C, 0x266D}, - {0x266F, 0x266F}, {0x269E, 0x269F}, {0x26BF, 0x26BF}, - {0x26C6, 0x26CD}, {0x26CF, 0x26D3}, {0x26D5, 0x26E1}, - {0x26E3, 0x26E3}, {0x26E8, 0x26E9}, {0x26EB, 0x26F1}, - {0x26F4, 0x26F4}, {0x26F6, 0x26F9}, {0x26FB, 0x26FC}, - {0x26FE, 0x26FF}, {0x273D, 0x273D}, {0x2776, 0x277F}, - {0x2B56, 0x2B59}, {0x3248, 0x324F}, {0xE000, 0xF8FF}, - {0xFE00, 0xFE0F}, {0xFFFD, 0xFFFD}, {0x1F100, 0x1F10A}, - {0x1F110, 0x1F12D}, {0x1F130, 0x1F169}, {0x1F170, 0x1F18D}, - {0x1F18F, 0x1F190}, {0x1F19B, 0x1F1AC}, {0xE0100, 0xE01EF}, - {0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD}, -} -var narrow = table{ - {0x0020, 0x007E}, {0x00A2, 0x00A3}, {0x00A5, 0x00A6}, - {0x00AC, 0x00AC}, {0x00AF, 0x00AF}, {0x27E6, 0x27ED}, - {0x2985, 0x2986}, -} - -var neutral = table{ - {0x0000, 0x001F}, {0x007F, 0x00A0}, {0x00A9, 0x00A9}, - {0x00AB, 0x00AB}, {0x00B5, 0x00B5}, {0x00BB, 0x00BB}, - {0x00C0, 0x00C5}, {0x00C7, 0x00CF}, {0x00D1, 0x00D6}, - {0x00D9, 0x00DD}, {0x00E2, 0x00E5}, {0x00E7, 0x00E7}, - {0x00EB, 0x00EB}, {0x00EE, 0x00EF}, {0x00F1, 0x00F1}, - {0x00F4, 0x00F6}, {0x00FB, 0x00FB}, {0x00FD, 0x00FD}, - {0x00FF, 0x0100}, {0x0102, 0x0110}, {0x0112, 0x0112}, - {0x0114, 0x011A}, {0x011C, 0x0125}, {0x0128, 0x012A}, - {0x012C, 0x0130}, {0x0134, 0x0137}, {0x0139, 0x013E}, - {0x0143, 0x0143}, {0x0145, 0x0147}, {0x014C, 0x014C}, - {0x014E, 0x0151}, {0x0154, 0x0165}, {0x0168, 0x016A}, - {0x016C, 0x01CD}, {0x01CF, 0x01CF}, {0x01D1, 0x01D1}, - {0x01D3, 0x01D3}, {0x01D5, 0x01D5}, {0x01D7, 0x01D7}, - {0x01D9, 0x01D9}, {0x01DB, 0x01DB}, {0x01DD, 0x0250}, - {0x0252, 0x0260}, {0x0262, 0x02C3}, {0x02C5, 0x02C6}, - {0x02C8, 0x02C8}, {0x02CC, 0x02CC}, {0x02CE, 0x02CF}, - {0x02D1, 0x02D7}, {0x02DC, 0x02DC}, {0x02DE, 0x02DE}, - {0x02E0, 0x02FF}, {0x0370, 0x0377}, {0x037A, 0x037F}, - {0x0384, 0x038A}, {0x038C, 0x038C}, {0x038E, 0x0390}, - {0x03AA, 0x03B0}, {0x03C2, 0x03C2}, {0x03CA, 0x0400}, - {0x0402, 0x040F}, {0x0450, 0x0450}, {0x0452, 0x052F}, - {0x0531, 0x0556}, {0x0559, 0x058A}, {0x058D, 0x058F}, - {0x0591, 0x05C7}, {0x05D0, 0x05EA}, {0x05EF, 0x05F4}, - {0x0600, 0x070D}, {0x070F, 0x074A}, {0x074D, 0x07B1}, - {0x07C0, 0x07FA}, {0x07FD, 0x082D}, {0x0830, 0x083E}, - {0x0840, 0x085B}, {0x085E, 0x085E}, {0x0860, 0x086A}, - {0x0870, 0x088E}, {0x0890, 0x0891}, {0x0898, 0x0983}, - {0x0985, 0x098C}, {0x098F, 0x0990}, {0x0993, 0x09A8}, - {0x09AA, 0x09B0}, {0x09B2, 0x09B2}, {0x09B6, 0x09B9}, - {0x09BC, 0x09C4}, {0x09C7, 0x09C8}, {0x09CB, 0x09CE}, - {0x09D7, 0x09D7}, {0x09DC, 0x09DD}, {0x09DF, 0x09E3}, - {0x09E6, 0x09FE}, {0x0A01, 0x0A03}, {0x0A05, 0x0A0A}, - {0x0A0F, 0x0A10}, {0x0A13, 0x0A28}, {0x0A2A, 0x0A30}, - {0x0A32, 0x0A33}, {0x0A35, 0x0A36}, {0x0A38, 0x0A39}, - {0x0A3C, 0x0A3C}, {0x0A3E, 0x0A42}, {0x0A47, 0x0A48}, - {0x0A4B, 0x0A4D}, {0x0A51, 0x0A51}, {0x0A59, 0x0A5C}, - {0x0A5E, 0x0A5E}, {0x0A66, 0x0A76}, {0x0A81, 0x0A83}, - {0x0A85, 0x0A8D}, {0x0A8F, 0x0A91}, {0x0A93, 0x0AA8}, - {0x0AAA, 0x0AB0}, {0x0AB2, 0x0AB3}, {0x0AB5, 0x0AB9}, - {0x0ABC, 0x0AC5}, {0x0AC7, 0x0AC9}, {0x0ACB, 0x0ACD}, - {0x0AD0, 0x0AD0}, {0x0AE0, 0x0AE3}, {0x0AE6, 0x0AF1}, - {0x0AF9, 0x0AFF}, {0x0B01, 0x0B03}, {0x0B05, 0x0B0C}, - {0x0B0F, 0x0B10}, {0x0B13, 0x0B28}, {0x0B2A, 0x0B30}, - {0x0B32, 0x0B33}, {0x0B35, 0x0B39}, {0x0B3C, 0x0B44}, - {0x0B47, 0x0B48}, {0x0B4B, 0x0B4D}, {0x0B55, 0x0B57}, - {0x0B5C, 0x0B5D}, {0x0B5F, 0x0B63}, {0x0B66, 0x0B77}, - {0x0B82, 0x0B83}, {0x0B85, 0x0B8A}, {0x0B8E, 0x0B90}, - {0x0B92, 0x0B95}, {0x0B99, 0x0B9A}, {0x0B9C, 0x0B9C}, - {0x0B9E, 0x0B9F}, {0x0BA3, 0x0BA4}, {0x0BA8, 0x0BAA}, - {0x0BAE, 0x0BB9}, {0x0BBE, 0x0BC2}, {0x0BC6, 0x0BC8}, - {0x0BCA, 0x0BCD}, {0x0BD0, 0x0BD0}, {0x0BD7, 0x0BD7}, - {0x0BE6, 0x0BFA}, {0x0C00, 0x0C0C}, {0x0C0E, 0x0C10}, - {0x0C12, 0x0C28}, {0x0C2A, 0x0C39}, {0x0C3C, 0x0C44}, - {0x0C46, 0x0C48}, {0x0C4A, 0x0C4D}, {0x0C55, 0x0C56}, - {0x0C58, 0x0C5A}, {0x0C5D, 0x0C5D}, {0x0C60, 0x0C63}, - {0x0C66, 0x0C6F}, {0x0C77, 0x0C8C}, {0x0C8E, 0x0C90}, - {0x0C92, 0x0CA8}, {0x0CAA, 0x0CB3}, {0x0CB5, 0x0CB9}, - {0x0CBC, 0x0CC4}, {0x0CC6, 0x0CC8}, {0x0CCA, 0x0CCD}, - {0x0CD5, 0x0CD6}, {0x0CDD, 0x0CDE}, {0x0CE0, 0x0CE3}, - {0x0CE6, 0x0CEF}, {0x0CF1, 0x0CF3}, {0x0D00, 0x0D0C}, - {0x0D0E, 0x0D10}, {0x0D12, 0x0D44}, {0x0D46, 0x0D48}, - {0x0D4A, 0x0D4F}, {0x0D54, 0x0D63}, {0x0D66, 0x0D7F}, - {0x0D81, 0x0D83}, {0x0D85, 0x0D96}, {0x0D9A, 0x0DB1}, - {0x0DB3, 0x0DBB}, {0x0DBD, 0x0DBD}, {0x0DC0, 0x0DC6}, - {0x0DCA, 0x0DCA}, {0x0DCF, 0x0DD4}, {0x0DD6, 0x0DD6}, - {0x0DD8, 0x0DDF}, {0x0DE6, 0x0DEF}, {0x0DF2, 0x0DF4}, - {0x0E01, 0x0E3A}, {0x0E3F, 0x0E5B}, {0x0E81, 0x0E82}, - {0x0E84, 0x0E84}, {0x0E86, 0x0E8A}, {0x0E8C, 0x0EA3}, - {0x0EA5, 0x0EA5}, {0x0EA7, 0x0EBD}, {0x0EC0, 0x0EC4}, - {0x0EC6, 0x0EC6}, {0x0EC8, 0x0ECE}, {0x0ED0, 0x0ED9}, - {0x0EDC, 0x0EDF}, {0x0F00, 0x0F47}, {0x0F49, 0x0F6C}, - {0x0F71, 0x0F97}, {0x0F99, 0x0FBC}, {0x0FBE, 0x0FCC}, - {0x0FCE, 0x0FDA}, {0x1000, 0x10C5}, {0x10C7, 0x10C7}, - {0x10CD, 0x10CD}, {0x10D0, 0x10FF}, {0x1160, 0x1248}, - {0x124A, 0x124D}, {0x1250, 0x1256}, {0x1258, 0x1258}, - {0x125A, 0x125D}, {0x1260, 0x1288}, {0x128A, 0x128D}, - {0x1290, 0x12B0}, {0x12B2, 0x12B5}, {0x12B8, 0x12BE}, - {0x12C0, 0x12C0}, {0x12C2, 0x12C5}, {0x12C8, 0x12D6}, - {0x12D8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135A}, - {0x135D, 0x137C}, {0x1380, 0x1399}, {0x13A0, 0x13F5}, - {0x13F8, 0x13FD}, {0x1400, 0x169C}, {0x16A0, 0x16F8}, - {0x1700, 0x1715}, {0x171F, 0x1736}, {0x1740, 0x1753}, - {0x1760, 0x176C}, {0x176E, 0x1770}, {0x1772, 0x1773}, - {0x1780, 0x17DD}, {0x17E0, 0x17E9}, {0x17F0, 0x17F9}, - {0x1800, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x18AA}, - {0x18B0, 0x18F5}, {0x1900, 0x191E}, {0x1920, 0x192B}, - {0x1930, 0x193B}, {0x1940, 0x1940}, {0x1944, 0x196D}, - {0x1970, 0x1974}, {0x1980, 0x19AB}, {0x19B0, 0x19C9}, - {0x19D0, 0x19DA}, {0x19DE, 0x1A1B}, {0x1A1E, 0x1A5E}, - {0x1A60, 0x1A7C}, {0x1A7F, 0x1A89}, {0x1A90, 0x1A99}, - {0x1AA0, 0x1AAD}, {0x1AB0, 0x1ACE}, {0x1B00, 0x1B4C}, - {0x1B50, 0x1B7E}, {0x1B80, 0x1BF3}, {0x1BFC, 0x1C37}, - {0x1C3B, 0x1C49}, {0x1C4D, 0x1C88}, {0x1C90, 0x1CBA}, - {0x1CBD, 0x1CC7}, {0x1CD0, 0x1CFA}, {0x1D00, 0x1F15}, - {0x1F18, 0x1F1D}, {0x1F20, 0x1F45}, {0x1F48, 0x1F4D}, - {0x1F50, 0x1F57}, {0x1F59, 0x1F59}, {0x1F5B, 0x1F5B}, - {0x1F5D, 0x1F5D}, {0x1F5F, 0x1F7D}, {0x1F80, 0x1FB4}, - {0x1FB6, 0x1FC4}, {0x1FC6, 0x1FD3}, {0x1FD6, 0x1FDB}, - {0x1FDD, 0x1FEF}, {0x1FF2, 0x1FF4}, {0x1FF6, 0x1FFE}, - {0x2000, 0x200F}, {0x2011, 0x2012}, {0x2017, 0x2017}, - {0x201A, 0x201B}, {0x201E, 0x201F}, {0x2023, 0x2023}, - {0x2028, 0x202F}, {0x2031, 0x2031}, {0x2034, 0x2034}, - {0x2036, 0x203A}, {0x203C, 0x203D}, {0x203F, 0x2064}, - {0x2066, 0x2071}, {0x2075, 0x207E}, {0x2080, 0x2080}, - {0x2085, 0x208E}, {0x2090, 0x209C}, {0x20A0, 0x20A8}, - {0x20AA, 0x20AB}, {0x20AD, 0x20C0}, {0x20D0, 0x20F0}, - {0x2100, 0x2102}, {0x2104, 0x2104}, {0x2106, 0x2108}, - {0x210A, 0x2112}, {0x2114, 0x2115}, {0x2117, 0x2120}, - {0x2123, 0x2125}, {0x2127, 0x212A}, {0x212C, 0x2152}, - {0x2155, 0x215A}, {0x215F, 0x215F}, {0x216C, 0x216F}, - {0x217A, 0x2188}, {0x218A, 0x218B}, {0x219A, 0x21B7}, - {0x21BA, 0x21D1}, {0x21D3, 0x21D3}, {0x21D5, 0x21E6}, - {0x21E8, 0x21FF}, {0x2201, 0x2201}, {0x2204, 0x2206}, - {0x2209, 0x220A}, {0x220C, 0x220E}, {0x2210, 0x2210}, - {0x2212, 0x2214}, {0x2216, 0x2219}, {0x221B, 0x221C}, - {0x2221, 0x2222}, {0x2224, 0x2224}, {0x2226, 0x2226}, - {0x222D, 0x222D}, {0x222F, 0x2233}, {0x2238, 0x223B}, - {0x223E, 0x2247}, {0x2249, 0x224B}, {0x224D, 0x2251}, - {0x2253, 0x225F}, {0x2262, 0x2263}, {0x2268, 0x2269}, - {0x226C, 0x226D}, {0x2270, 0x2281}, {0x2284, 0x2285}, - {0x2288, 0x2294}, {0x2296, 0x2298}, {0x229A, 0x22A4}, - {0x22A6, 0x22BE}, {0x22C0, 0x2311}, {0x2313, 0x2319}, - {0x231C, 0x2328}, {0x232B, 0x23E8}, {0x23ED, 0x23EF}, - {0x23F1, 0x23F2}, {0x23F4, 0x2426}, {0x2440, 0x244A}, - {0x24EA, 0x24EA}, {0x254C, 0x254F}, {0x2574, 0x257F}, - {0x2590, 0x2591}, {0x2596, 0x259F}, {0x25A2, 0x25A2}, - {0x25AA, 0x25B1}, {0x25B4, 0x25B5}, {0x25B8, 0x25BB}, - {0x25BE, 0x25BF}, {0x25C2, 0x25C5}, {0x25C9, 0x25CA}, - {0x25CC, 0x25CD}, {0x25D2, 0x25E1}, {0x25E6, 0x25EE}, - {0x25F0, 0x25FC}, {0x25FF, 0x2604}, {0x2607, 0x2608}, - {0x260A, 0x260D}, {0x2610, 0x2613}, {0x2616, 0x261B}, - {0x261D, 0x261D}, {0x261F, 0x263F}, {0x2641, 0x2641}, - {0x2643, 0x2647}, {0x2654, 0x265F}, {0x2662, 0x2662}, - {0x2666, 0x2666}, {0x266B, 0x266B}, {0x266E, 0x266E}, - {0x2670, 0x267E}, {0x2680, 0x2692}, {0x2694, 0x269D}, - {0x26A0, 0x26A0}, {0x26A2, 0x26A9}, {0x26AC, 0x26BC}, - {0x26C0, 0x26C3}, {0x26E2, 0x26E2}, {0x26E4, 0x26E7}, - {0x2700, 0x2704}, {0x2706, 0x2709}, {0x270C, 0x2727}, - {0x2729, 0x273C}, {0x273E, 0x274B}, {0x274D, 0x274D}, - {0x274F, 0x2752}, {0x2756, 0x2756}, {0x2758, 0x2775}, - {0x2780, 0x2794}, {0x2798, 0x27AF}, {0x27B1, 0x27BE}, - {0x27C0, 0x27E5}, {0x27EE, 0x2984}, {0x2987, 0x2B1A}, - {0x2B1D, 0x2B4F}, {0x2B51, 0x2B54}, {0x2B5A, 0x2B73}, - {0x2B76, 0x2B95}, {0x2B97, 0x2CF3}, {0x2CF9, 0x2D25}, - {0x2D27, 0x2D27}, {0x2D2D, 0x2D2D}, {0x2D30, 0x2D67}, - {0x2D6F, 0x2D70}, {0x2D7F, 0x2D96}, {0x2DA0, 0x2DA6}, - {0x2DA8, 0x2DAE}, {0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE}, - {0x2DC0, 0x2DC6}, {0x2DC8, 0x2DCE}, {0x2DD0, 0x2DD6}, - {0x2DD8, 0x2DDE}, {0x2DE0, 0x2E5D}, {0x303F, 0x303F}, - {0x4DC0, 0x4DFF}, {0xA4D0, 0xA62B}, {0xA640, 0xA6F7}, - {0xA700, 0xA7CA}, {0xA7D0, 0xA7D1}, {0xA7D3, 0xA7D3}, - {0xA7D5, 0xA7D9}, {0xA7F2, 0xA82C}, {0xA830, 0xA839}, - {0xA840, 0xA877}, {0xA880, 0xA8C5}, {0xA8CE, 0xA8D9}, - {0xA8E0, 0xA953}, {0xA95F, 0xA95F}, {0xA980, 0xA9CD}, - {0xA9CF, 0xA9D9}, {0xA9DE, 0xA9FE}, {0xAA00, 0xAA36}, - {0xAA40, 0xAA4D}, {0xAA50, 0xAA59}, {0xAA5C, 0xAAC2}, - {0xAADB, 0xAAF6}, {0xAB01, 0xAB06}, {0xAB09, 0xAB0E}, - {0xAB11, 0xAB16}, {0xAB20, 0xAB26}, {0xAB28, 0xAB2E}, - {0xAB30, 0xAB6B}, {0xAB70, 0xABED}, {0xABF0, 0xABF9}, - {0xD7B0, 0xD7C6}, {0xD7CB, 0xD7FB}, {0xD800, 0xDFFF}, - {0xFB00, 0xFB06}, {0xFB13, 0xFB17}, {0xFB1D, 0xFB36}, - {0xFB38, 0xFB3C}, {0xFB3E, 0xFB3E}, {0xFB40, 0xFB41}, - {0xFB43, 0xFB44}, {0xFB46, 0xFBC2}, {0xFBD3, 0xFD8F}, - {0xFD92, 0xFDC7}, {0xFDCF, 0xFDCF}, {0xFDF0, 0xFDFF}, - {0xFE20, 0xFE2F}, {0xFE70, 0xFE74}, {0xFE76, 0xFEFC}, - {0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFC}, {0x10000, 0x1000B}, - {0x1000D, 0x10026}, {0x10028, 0x1003A}, {0x1003C, 0x1003D}, - {0x1003F, 0x1004D}, {0x10050, 0x1005D}, {0x10080, 0x100FA}, - {0x10100, 0x10102}, {0x10107, 0x10133}, {0x10137, 0x1018E}, - {0x10190, 0x1019C}, {0x101A0, 0x101A0}, {0x101D0, 0x101FD}, - {0x10280, 0x1029C}, {0x102A0, 0x102D0}, {0x102E0, 0x102FB}, - {0x10300, 0x10323}, {0x1032D, 0x1034A}, {0x10350, 0x1037A}, - {0x10380, 0x1039D}, {0x1039F, 0x103C3}, {0x103C8, 0x103D5}, - {0x10400, 0x1049D}, {0x104A0, 0x104A9}, {0x104B0, 0x104D3}, - {0x104D8, 0x104FB}, {0x10500, 0x10527}, {0x10530, 0x10563}, - {0x1056F, 0x1057A}, {0x1057C, 0x1058A}, {0x1058C, 0x10592}, - {0x10594, 0x10595}, {0x10597, 0x105A1}, {0x105A3, 0x105B1}, - {0x105B3, 0x105B9}, {0x105BB, 0x105BC}, {0x10600, 0x10736}, - {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785}, - {0x10787, 0x107B0}, {0x107B2, 0x107BA}, {0x10800, 0x10805}, - {0x10808, 0x10808}, {0x1080A, 0x10835}, {0x10837, 0x10838}, - {0x1083C, 0x1083C}, {0x1083F, 0x10855}, {0x10857, 0x1089E}, - {0x108A7, 0x108AF}, {0x108E0, 0x108F2}, {0x108F4, 0x108F5}, - {0x108FB, 0x1091B}, {0x1091F, 0x10939}, {0x1093F, 0x1093F}, - {0x10980, 0x109B7}, {0x109BC, 0x109CF}, {0x109D2, 0x10A03}, - {0x10A05, 0x10A06}, {0x10A0C, 0x10A13}, {0x10A15, 0x10A17}, - {0x10A19, 0x10A35}, {0x10A38, 0x10A3A}, {0x10A3F, 0x10A48}, - {0x10A50, 0x10A58}, {0x10A60, 0x10A9F}, {0x10AC0, 0x10AE6}, - {0x10AEB, 0x10AF6}, {0x10B00, 0x10B35}, {0x10B39, 0x10B55}, - {0x10B58, 0x10B72}, {0x10B78, 0x10B91}, {0x10B99, 0x10B9C}, - {0x10BA9, 0x10BAF}, {0x10C00, 0x10C48}, {0x10C80, 0x10CB2}, - {0x10CC0, 0x10CF2}, {0x10CFA, 0x10D27}, {0x10D30, 0x10D39}, - {0x10E60, 0x10E7E}, {0x10E80, 0x10EA9}, {0x10EAB, 0x10EAD}, - {0x10EB0, 0x10EB1}, {0x10EFD, 0x10F27}, {0x10F30, 0x10F59}, - {0x10F70, 0x10F89}, {0x10FB0, 0x10FCB}, {0x10FE0, 0x10FF6}, - {0x11000, 0x1104D}, {0x11052, 0x11075}, {0x1107F, 0x110C2}, - {0x110CD, 0x110CD}, {0x110D0, 0x110E8}, {0x110F0, 0x110F9}, - {0x11100, 0x11134}, {0x11136, 0x11147}, {0x11150, 0x11176}, - {0x11180, 0x111DF}, {0x111E1, 0x111F4}, {0x11200, 0x11211}, - {0x11213, 0x11241}, {0x11280, 0x11286}, {0x11288, 0x11288}, - {0x1128A, 0x1128D}, {0x1128F, 0x1129D}, {0x1129F, 0x112A9}, - {0x112B0, 0x112EA}, {0x112F0, 0x112F9}, {0x11300, 0x11303}, - {0x11305, 0x1130C}, {0x1130F, 0x11310}, {0x11313, 0x11328}, - {0x1132A, 0x11330}, {0x11332, 0x11333}, {0x11335, 0x11339}, - {0x1133B, 0x11344}, {0x11347, 0x11348}, {0x1134B, 0x1134D}, - {0x11350, 0x11350}, {0x11357, 0x11357}, {0x1135D, 0x11363}, - {0x11366, 0x1136C}, {0x11370, 0x11374}, {0x11400, 0x1145B}, - {0x1145D, 0x11461}, {0x11480, 0x114C7}, {0x114D0, 0x114D9}, - {0x11580, 0x115B5}, {0x115B8, 0x115DD}, {0x11600, 0x11644}, - {0x11650, 0x11659}, {0x11660, 0x1166C}, {0x11680, 0x116B9}, - {0x116C0, 0x116C9}, {0x11700, 0x1171A}, {0x1171D, 0x1172B}, - {0x11730, 0x11746}, {0x11800, 0x1183B}, {0x118A0, 0x118F2}, - {0x118FF, 0x11906}, {0x11909, 0x11909}, {0x1190C, 0x11913}, - {0x11915, 0x11916}, {0x11918, 0x11935}, {0x11937, 0x11938}, - {0x1193B, 0x11946}, {0x11950, 0x11959}, {0x119A0, 0x119A7}, - {0x119AA, 0x119D7}, {0x119DA, 0x119E4}, {0x11A00, 0x11A47}, - {0x11A50, 0x11AA2}, {0x11AB0, 0x11AF8}, {0x11B00, 0x11B09}, - {0x11C00, 0x11C08}, {0x11C0A, 0x11C36}, {0x11C38, 0x11C45}, - {0x11C50, 0x11C6C}, {0x11C70, 0x11C8F}, {0x11C92, 0x11CA7}, - {0x11CA9, 0x11CB6}, {0x11D00, 0x11D06}, {0x11D08, 0x11D09}, - {0x11D0B, 0x11D36}, {0x11D3A, 0x11D3A}, {0x11D3C, 0x11D3D}, - {0x11D3F, 0x11D47}, {0x11D50, 0x11D59}, {0x11D60, 0x11D65}, - {0x11D67, 0x11D68}, {0x11D6A, 0x11D8E}, {0x11D90, 0x11D91}, - {0x11D93, 0x11D98}, {0x11DA0, 0x11DA9}, {0x11EE0, 0x11EF8}, - {0x11F00, 0x11F10}, {0x11F12, 0x11F3A}, {0x11F3E, 0x11F59}, - {0x11FB0, 0x11FB0}, {0x11FC0, 0x11FF1}, {0x11FFF, 0x12399}, - {0x12400, 0x1246E}, {0x12470, 0x12474}, {0x12480, 0x12543}, - {0x12F90, 0x12FF2}, {0x13000, 0x13455}, {0x14400, 0x14646}, - {0x16800, 0x16A38}, {0x16A40, 0x16A5E}, {0x16A60, 0x16A69}, - {0x16A6E, 0x16ABE}, {0x16AC0, 0x16AC9}, {0x16AD0, 0x16AED}, - {0x16AF0, 0x16AF5}, {0x16B00, 0x16B45}, {0x16B50, 0x16B59}, - {0x16B5B, 0x16B61}, {0x16B63, 0x16B77}, {0x16B7D, 0x16B8F}, - {0x16E40, 0x16E9A}, {0x16F00, 0x16F4A}, {0x16F4F, 0x16F87}, - {0x16F8F, 0x16F9F}, {0x1BC00, 0x1BC6A}, {0x1BC70, 0x1BC7C}, - {0x1BC80, 0x1BC88}, {0x1BC90, 0x1BC99}, {0x1BC9C, 0x1BCA3}, - {0x1CF00, 0x1CF2D}, {0x1CF30, 0x1CF46}, {0x1CF50, 0x1CFC3}, - {0x1D000, 0x1D0F5}, {0x1D100, 0x1D126}, {0x1D129, 0x1D1EA}, - {0x1D200, 0x1D245}, {0x1D2C0, 0x1D2D3}, {0x1D2E0, 0x1D2F3}, - {0x1D300, 0x1D356}, {0x1D360, 0x1D378}, {0x1D400, 0x1D454}, - {0x1D456, 0x1D49C}, {0x1D49E, 0x1D49F}, {0x1D4A2, 0x1D4A2}, - {0x1D4A5, 0x1D4A6}, {0x1D4A9, 0x1D4AC}, {0x1D4AE, 0x1D4B9}, - {0x1D4BB, 0x1D4BB}, {0x1D4BD, 0x1D4C3}, {0x1D4C5, 0x1D505}, - {0x1D507, 0x1D50A}, {0x1D50D, 0x1D514}, {0x1D516, 0x1D51C}, - {0x1D51E, 0x1D539}, {0x1D53B, 0x1D53E}, {0x1D540, 0x1D544}, - {0x1D546, 0x1D546}, {0x1D54A, 0x1D550}, {0x1D552, 0x1D6A5}, - {0x1D6A8, 0x1D7CB}, {0x1D7CE, 0x1DA8B}, {0x1DA9B, 0x1DA9F}, - {0x1DAA1, 0x1DAAF}, {0x1DF00, 0x1DF1E}, {0x1DF25, 0x1DF2A}, - {0x1E000, 0x1E006}, {0x1E008, 0x1E018}, {0x1E01B, 0x1E021}, - {0x1E023, 0x1E024}, {0x1E026, 0x1E02A}, {0x1E030, 0x1E06D}, - {0x1E08F, 0x1E08F}, {0x1E100, 0x1E12C}, {0x1E130, 0x1E13D}, - {0x1E140, 0x1E149}, {0x1E14E, 0x1E14F}, {0x1E290, 0x1E2AE}, - {0x1E2C0, 0x1E2F9}, {0x1E2FF, 0x1E2FF}, {0x1E4D0, 0x1E4F9}, - {0x1E7E0, 0x1E7E6}, {0x1E7E8, 0x1E7EB}, {0x1E7ED, 0x1E7EE}, - {0x1E7F0, 0x1E7FE}, {0x1E800, 0x1E8C4}, {0x1E8C7, 0x1E8D6}, - {0x1E900, 0x1E94B}, {0x1E950, 0x1E959}, {0x1E95E, 0x1E95F}, - {0x1EC71, 0x1ECB4}, {0x1ED01, 0x1ED3D}, {0x1EE00, 0x1EE03}, - {0x1EE05, 0x1EE1F}, {0x1EE21, 0x1EE22}, {0x1EE24, 0x1EE24}, - {0x1EE27, 0x1EE27}, {0x1EE29, 0x1EE32}, {0x1EE34, 0x1EE37}, - {0x1EE39, 0x1EE39}, {0x1EE3B, 0x1EE3B}, {0x1EE42, 0x1EE42}, - {0x1EE47, 0x1EE47}, {0x1EE49, 0x1EE49}, {0x1EE4B, 0x1EE4B}, - {0x1EE4D, 0x1EE4F}, {0x1EE51, 0x1EE52}, {0x1EE54, 0x1EE54}, - {0x1EE57, 0x1EE57}, {0x1EE59, 0x1EE59}, {0x1EE5B, 0x1EE5B}, - {0x1EE5D, 0x1EE5D}, {0x1EE5F, 0x1EE5F}, {0x1EE61, 0x1EE62}, - {0x1EE64, 0x1EE64}, {0x1EE67, 0x1EE6A}, {0x1EE6C, 0x1EE72}, - {0x1EE74, 0x1EE77}, {0x1EE79, 0x1EE7C}, {0x1EE7E, 0x1EE7E}, - {0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B}, {0x1EEA1, 0x1EEA3}, - {0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x1EEF0, 0x1EEF1}, - {0x1F000, 0x1F003}, {0x1F005, 0x1F02B}, {0x1F030, 0x1F093}, - {0x1F0A0, 0x1F0AE}, {0x1F0B1, 0x1F0BF}, {0x1F0C1, 0x1F0CE}, - {0x1F0D1, 0x1F0F5}, {0x1F10B, 0x1F10F}, {0x1F12E, 0x1F12F}, - {0x1F16A, 0x1F16F}, {0x1F1AD, 0x1F1AD}, {0x1F1E6, 0x1F1FF}, - {0x1F321, 0x1F32C}, {0x1F336, 0x1F336}, {0x1F37D, 0x1F37D}, - {0x1F394, 0x1F39F}, {0x1F3CB, 0x1F3CE}, {0x1F3D4, 0x1F3DF}, - {0x1F3F1, 0x1F3F3}, {0x1F3F5, 0x1F3F7}, {0x1F43F, 0x1F43F}, - {0x1F441, 0x1F441}, {0x1F4FD, 0x1F4FE}, {0x1F53E, 0x1F54A}, - {0x1F54F, 0x1F54F}, {0x1F568, 0x1F579}, {0x1F57B, 0x1F594}, - {0x1F597, 0x1F5A3}, {0x1F5A5, 0x1F5FA}, {0x1F650, 0x1F67F}, - {0x1F6C6, 0x1F6CB}, {0x1F6CD, 0x1F6CF}, {0x1F6D3, 0x1F6D4}, - {0x1F6E0, 0x1F6EA}, {0x1F6F0, 0x1F6F3}, {0x1F700, 0x1F776}, - {0x1F77B, 0x1F7D9}, {0x1F800, 0x1F80B}, {0x1F810, 0x1F847}, - {0x1F850, 0x1F859}, {0x1F860, 0x1F887}, {0x1F890, 0x1F8AD}, - {0x1F8B0, 0x1F8B1}, {0x1F900, 0x1F90B}, {0x1F93B, 0x1F93B}, - {0x1F946, 0x1F946}, {0x1FA00, 0x1FA53}, {0x1FA60, 0x1FA6D}, - {0x1FB00, 0x1FB92}, {0x1FB94, 0x1FBCA}, {0x1FBF0, 0x1FBF9}, - {0xE0001, 0xE0001}, {0xE0020, 0xE007F}, -} - -var emoji = table{ - {0x203C, 0x203C}, {0x2049, 0x2049}, {0x2122, 0x2122}, - {0x2139, 0x2139}, {0x2194, 0x2199}, {0x21A9, 0x21AA}, - {0x231A, 0x231B}, {0x2328, 0x2328}, {0x2388, 0x2388}, - {0x23CF, 0x23CF}, {0x23E9, 0x23F3}, {0x23F8, 0x23FA}, - {0x24C2, 0x24C2}, {0x25AA, 0x25AB}, {0x25B6, 0x25B6}, - {0x25C0, 0x25C0}, {0x25FB, 0x25FE}, {0x2600, 0x2605}, - {0x2607, 0x2612}, {0x2614, 0x2685}, {0x2690, 0x2705}, - {0x2708, 0x2712}, {0x2714, 0x2714}, {0x2716, 0x2716}, - {0x271D, 0x271D}, {0x2721, 0x2721}, {0x2728, 0x2728}, - {0x2733, 0x2734}, {0x2744, 0x2744}, {0x2747, 0x2747}, - {0x274C, 0x274C}, {0x274E, 0x274E}, {0x2753, 0x2755}, - {0x2757, 0x2757}, {0x2763, 0x2767}, {0x2795, 0x2797}, - {0x27A1, 0x27A1}, {0x27B0, 0x27B0}, {0x27BF, 0x27BF}, - {0x2934, 0x2935}, {0x2B05, 0x2B07}, {0x2B1B, 0x2B1C}, - {0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x3030, 0x3030}, - {0x303D, 0x303D}, {0x3297, 0x3297}, {0x3299, 0x3299}, - {0x1F000, 0x1F0FF}, {0x1F10D, 0x1F10F}, {0x1F12F, 0x1F12F}, - {0x1F16C, 0x1F171}, {0x1F17E, 0x1F17F}, {0x1F18E, 0x1F18E}, - {0x1F191, 0x1F19A}, {0x1F1AD, 0x1F1E5}, {0x1F201, 0x1F20F}, - {0x1F21A, 0x1F21A}, {0x1F22F, 0x1F22F}, {0x1F232, 0x1F23A}, - {0x1F23C, 0x1F23F}, {0x1F249, 0x1F3FA}, {0x1F400, 0x1F53D}, - {0x1F546, 0x1F64F}, {0x1F680, 0x1F6FF}, {0x1F774, 0x1F77F}, - {0x1F7D5, 0x1F7FF}, {0x1F80C, 0x1F80F}, {0x1F848, 0x1F84F}, - {0x1F85A, 0x1F85F}, {0x1F888, 0x1F88F}, {0x1F8AE, 0x1F8FF}, - {0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1FAFF}, - {0x1FC00, 0x1FFFD}, -} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_windows.go b/vendor/github.com/mattn/go-runewidth/runewidth_windows.go deleted file mode 100644 index 5f987a3..0000000 --- a/vendor/github.com/mattn/go-runewidth/runewidth_windows.go +++ /dev/null @@ -1,28 +0,0 @@ -//go:build windows && !appengine -// +build windows,!appengine - -package runewidth - -import ( - "syscall" -) - -var ( - kernel32 = syscall.NewLazyDLL("kernel32") - procGetConsoleOutputCP = kernel32.NewProc("GetConsoleOutputCP") -) - -// IsEastAsian return true if the current locale is CJK -func IsEastAsian() bool { - r1, _, _ := procGetConsoleOutputCP.Call() - if r1 == 0 { - return false - } - - switch int(r1) { - case 932, 51932, 936, 949, 950: - return true - } - - return false -} diff --git a/vendor/github.com/muesli/ansi/.gitignore b/vendor/github.com/muesli/ansi/.gitignore deleted file mode 100644 index 66fd13c..0000000 --- a/vendor/github.com/muesli/ansi/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ diff --git a/vendor/github.com/muesli/ansi/.golangci.yml b/vendor/github.com/muesli/ansi/.golangci.yml deleted file mode 100644 index cd299e2..0000000 --- a/vendor/github.com/muesli/ansi/.golangci.yml +++ /dev/null @@ -1,27 +0,0 @@ -run: - tests: false - -issues: - max-issues-per-linter: 0 - max-same-issues: 0 - -linters: - enable: - - bodyclose - - dupl - - exportloopref - - goconst - - godot - - godox - - goimports - - golint - - goprintffuncname - - gosec - - ifshort - - misspell - - prealloc - - rowserrcheck - - sqlclosecheck - - unconvert - - unparam - - whitespace diff --git a/vendor/github.com/muesli/ansi/LICENSE b/vendor/github.com/muesli/ansi/LICENSE deleted file mode 100644 index bd9cdc6..0000000 --- a/vendor/github.com/muesli/ansi/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Christian Muehlhaeuser - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/muesli/ansi/README.md b/vendor/github.com/muesli/ansi/README.md deleted file mode 100644 index f9d0fe9..0000000 --- a/vendor/github.com/muesli/ansi/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# ansi - -[![Latest Release](https://img.shields.io/github/release/muesli/ansi.svg)](https://github.com/muesli/ansi/releases) -[![Build Status](https://github.com/muesli/ansi/workflows/build/badge.svg)](https://github.com/muesli/ansi/actions) -[![Coverage Status](https://coveralls.io/repos/github/muesli/ansi/badge.svg?branch=master)](https://coveralls.io/github/muesli/ansi?branch=master) -[![Go ReportCard](https://goreportcard.com/badge/muesli/ansi)](https://goreportcard.com/report/muesli/ansi) -[![GoDoc](https://godoc.org/github.com/golang/gddo?status.svg)](https://pkg.go.dev/github.com/muesli/ansi) - -Raw ANSI sequence helpers - -## ANSI Writer - -```go -import "github.com/muesli/ansi" - -w := ansi.Writer{Forward: os.Stdout} -w.Write([]byte("\x1b[31mHello, world!\x1b[0m")) -w.Close() -``` - -## Compressor - -The ANSI compressor eliminates unnecessary/redundant ANSI sequences. - -```go -import "github.com/muesli/ansi/compressor" - -w := compressor.Writer{Forward: os.Stdout} -w.Write([]byte("\x1b[31mHello, world!\x1b[0m")) -w.Close() -``` diff --git a/vendor/github.com/muesli/ansi/ansi.go b/vendor/github.com/muesli/ansi/ansi.go deleted file mode 100644 index f3d0700..0000000 --- a/vendor/github.com/muesli/ansi/ansi.go +++ /dev/null @@ -1,7 +0,0 @@ -package ansi - -const Marker = '\x1B' - -func IsTerminator(c rune) bool { - return (c >= 0x40 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a) -} diff --git a/vendor/github.com/muesli/ansi/buffer.go b/vendor/github.com/muesli/ansi/buffer.go deleted file mode 100644 index 471bcaf..0000000 --- a/vendor/github.com/muesli/ansi/buffer.go +++ /dev/null @@ -1,40 +0,0 @@ -package ansi - -import ( - "bytes" - - "github.com/mattn/go-runewidth" -) - -// Buffer is a buffer aware of ANSI escape sequences. -type Buffer struct { - bytes.Buffer -} - -// PrintableRuneWidth returns the cell width of all printable runes in the -// buffer. -func (w Buffer) PrintableRuneWidth() int { - return PrintableRuneWidth(w.String()) -} - -// PrintableRuneWidth returns the cell width of the given string. -func PrintableRuneWidth(s string) int { - var n int - var ansi bool - - for _, c := range s { - if c == Marker { - // ANSI escape sequence - ansi = true - } else if ansi { - if IsTerminator(c) { - // ANSI sequence terminated - ansi = false - } - } else { - n += runewidth.RuneWidth(c) - } - } - - return n -} diff --git a/vendor/github.com/muesli/ansi/compressor/writer.go b/vendor/github.com/muesli/ansi/compressor/writer.go deleted file mode 100644 index 98c5482..0000000 --- a/vendor/github.com/muesli/ansi/compressor/writer.go +++ /dev/null @@ -1,132 +0,0 @@ -package compressor - -import ( - "bytes" - "io" - "unicode/utf8" - - "github.com/muesli/ansi" -) - -type Writer struct { - Forward io.Writer - - ansi bool - ansiseq bytes.Buffer - lastseq bytes.Buffer - prevlastseq bytes.Buffer - resetreq bool - runeBuf []byte - compressed int - uncompressed int -} - -// Bytes is shorthand for declaring a new default compressor instance, -// used to immediately compress a byte slice. -func Bytes(b []byte) []byte { - var buf bytes.Buffer - f := Writer{ - Forward: &buf, - } - _, _ = f.Write(b) - _ = f.Close() - - return buf.Bytes() -} - -// String is shorthand for declaring a new default compressor instance, -// used to immediately compress a string. -func String(s string) string { - return string(Bytes([]byte(s))) -} - -// Write is used to write content to the ANSI buffer. -func (w *Writer) Write(b []byte) (int, error) { - w.uncompressed += len(b) - - for _, c := range string(b) { - if c == ansi.Marker { - // ANSI escape sequence - w.ansi = true - _, _ = w.ansiseq.WriteRune(c) - } else if w.ansi { - _, _ = w.ansiseq.WriteRune(c) - if ansi.IsTerminator(c) { - // ANSI sequence terminated - w.ansi = false - - terminated := false - if bytes.HasSuffix(w.ansiseq.Bytes(), []byte("[0m")) { - // reset sequence - w.prevlastseq.Reset() - w.prevlastseq.Write(w.lastseq.Bytes()) - - w.lastseq.Reset() - terminated = true - w.resetreq = true - } else if c == 'm' { - // color code - _, _ = w.lastseq.Write(w.ansiseq.Bytes()) - } - - if !terminated { - // did we reset the sequence just to restore it again? - if bytes.Equal(w.ansiseq.Bytes(), w.prevlastseq.Bytes()) { - w.resetreq = false - w.ansiseq.Reset() - } - - w.prevlastseq.Reset() - - if w.resetreq { - w.ResetAnsi() - } - - _, _ = w.Forward.Write(w.ansiseq.Bytes()) - w.compressed += w.ansiseq.Len() - } - - w.ansiseq.Reset() - } - } else { - if w.resetreq { - w.ResetAnsi() - } - - _, err := w.writeRune(c) - if err != nil { - return 0, err - } - } - } - - return len(b), nil -} - -func (w *Writer) writeRune(r rune) (int, error) { - if w.runeBuf == nil { - w.runeBuf = make([]byte, utf8.UTFMax) - } - n := utf8.EncodeRune(w.runeBuf, r) - w.compressed += n - return w.Forward.Write(w.runeBuf[:n]) -} - -// Close finishes the compression operation. Always call it before trying to -// retrieve the final result. -func (w *Writer) Close() error { - if w.resetreq { - w.ResetAnsi() - } - - // log.Println("Written uncompressed: ", w.uncompressed) - // log.Println("Written compressed: ", w.compressed) - - return nil -} - -func (w *Writer) ResetAnsi() { - w.prevlastseq.Reset() - _, _ = w.Forward.Write([]byte("\x1b[0m")) - w.resetreq = false -} diff --git a/vendor/github.com/muesli/ansi/writer.go b/vendor/github.com/muesli/ansi/writer.go deleted file mode 100644 index a6aaa1e..0000000 --- a/vendor/github.com/muesli/ansi/writer.go +++ /dev/null @@ -1,76 +0,0 @@ -package ansi - -import ( - "bytes" - "io" - "unicode/utf8" -) - -type Writer struct { - Forward io.Writer - - ansi bool - ansiseq bytes.Buffer - lastseq bytes.Buffer - seqchanged bool - runeBuf []byte -} - -// Write is used to write content to the ANSI buffer. -func (w *Writer) Write(b []byte) (int, error) { - for _, c := range string(b) { - if c == Marker { - // ANSI escape sequence - w.ansi = true - w.seqchanged = true - _, _ = w.ansiseq.WriteRune(c) - } else if w.ansi { - _, _ = w.ansiseq.WriteRune(c) - if IsTerminator(c) { - // ANSI sequence terminated - w.ansi = false - - if bytes.HasSuffix(w.ansiseq.Bytes(), []byte("[0m")) { - // reset sequence - w.lastseq.Reset() - w.seqchanged = false - } else if c == 'm' { - // color code - _, _ = w.lastseq.Write(w.ansiseq.Bytes()) - } - - _, _ = w.ansiseq.WriteTo(w.Forward) - } - } else { - _, err := w.writeRune(c) - if err != nil { - return 0, err - } - } - } - - return len(b), nil -} - -func (w *Writer) writeRune(r rune) (int, error) { - if w.runeBuf == nil { - w.runeBuf = make([]byte, utf8.UTFMax) - } - n := utf8.EncodeRune(w.runeBuf, r) - return w.Forward.Write(w.runeBuf[:n]) -} - -func (w *Writer) LastSequence() string { - return w.lastseq.String() -} - -func (w *Writer) ResetAnsi() { - if !w.seqchanged { - return - } - _, _ = w.Forward.Write([]byte("\x1b[0m")) -} - -func (w *Writer) RestoreAnsi() { - _, _ = w.Forward.Write(w.lastseq.Bytes()) -} diff --git a/vendor/github.com/muesli/cancelreader/.gitignore b/vendor/github.com/muesli/cancelreader/.gitignore deleted file mode 100644 index 66fd13c..0000000 --- a/vendor/github.com/muesli/cancelreader/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ diff --git a/vendor/github.com/muesli/cancelreader/.golangci-soft.yml b/vendor/github.com/muesli/cancelreader/.golangci-soft.yml deleted file mode 100644 index ef456e0..0000000 --- a/vendor/github.com/muesli/cancelreader/.golangci-soft.yml +++ /dev/null @@ -1,47 +0,0 @@ -run: - tests: false - -issues: - include: - - EXC0001 - - EXC0005 - - EXC0011 - - EXC0012 - - EXC0013 - - max-issues-per-linter: 0 - max-same-issues: 0 - -linters: - enable: - # - dupl - - exhaustive - # - exhaustivestruct - - goconst - - godot - - godox - - gomnd - - gomoddirectives - - goprintffuncname - - ifshort - # - lll - - misspell - - nakedret - - nestif - - noctx - - nolintlint - - prealloc - - wrapcheck - - # disable default linters, they are already enabled in .golangci.yml - disable: - - deadcode - - errcheck - - gosimple - - govet - - ineffassign - - staticcheck - - structcheck - - typecheck - - unused - - varcheck diff --git a/vendor/github.com/muesli/cancelreader/.golangci.yml b/vendor/github.com/muesli/cancelreader/.golangci.yml deleted file mode 100644 index a5a91d0..0000000 --- a/vendor/github.com/muesli/cancelreader/.golangci.yml +++ /dev/null @@ -1,29 +0,0 @@ -run: - tests: false - -issues: - include: - - EXC0001 - - EXC0005 - - EXC0011 - - EXC0012 - - EXC0013 - - max-issues-per-linter: 0 - max-same-issues: 0 - -linters: - enable: - - bodyclose - - exportloopref - - goimports - - gosec - - nilerr - - predeclared - - revive - - rowserrcheck - - sqlclosecheck - - tparallel - - unconvert - - unparam - - whitespace diff --git a/vendor/github.com/muesli/cancelreader/LICENSE b/vendor/github.com/muesli/cancelreader/LICENSE deleted file mode 100644 index 4b19b92..0000000 --- a/vendor/github.com/muesli/cancelreader/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Erik Geiser and Christian Muehlhaeuser - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/muesli/cancelreader/README.md b/vendor/github.com/muesli/cancelreader/README.md deleted file mode 100644 index 83609fb..0000000 --- a/vendor/github.com/muesli/cancelreader/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# CancelReader - -[![Latest Release](https://img.shields.io/github/release/muesli/cancelreader.svg?style=for-the-badge)](https://github.com/muesli/cancelreader/releases) -[![Go Doc](https://img.shields.io/badge/godoc-reference-blue.svg?style=for-the-badge)](https://pkg.go.dev/github.com/muesli/cancelreader) -[![Software License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)](/LICENSE) -[![Build Status](https://img.shields.io/github/workflow/status/muesli/cancelreader/build?style=for-the-badge)](https://github.com/muesli/cancelreader/actions) -[![Go ReportCard](https://goreportcard.com/badge/github.com/muesli/cancelreader?style=for-the-badge)](https://goreportcard.com/report/muesli/cancelreader) - -A cancelable reader for Go - -This package is based on the fantastic work of [Erik Geiser](https://github.com/erikgeiser) -in Charm's [Bubble Tea](https://github.com/charmbracelet/bubbletea) framework. - -## Usage - -`NewReader` returns a reader with a `Cancel` function. If the input reader is a -`File`, the cancel function can be used to interrupt a blocking `Read` call. -In this case, the cancel function returns true if the call was canceled -successfully. If the input reader is not a `File`, the cancel function does -nothing and always returns false. - -```go -r, err := cancelreader.NewReader(file) -if err != nil { - // handle error - ... -} - -// cancel after five seconds -go func() { - time.Sleep(5 * time.Second) - r.Cancel() -}() - -// keep reading -for { - var buf [1024]byte - _, err := r.Read(buf[:]) - - if errors.Is(err, cancelreader.ErrCanceled) { - fmt.Println("canceled!") - break - } - if err != nil { - // handle other errors - ... - } - - // handle data - ... -} -``` - -## Implementations - -- The Linux implementation is based on the epoll mechanism -- The BSD and macOS implementation is based on the kqueue mechanism -- The generic Unix implementation is based on the posix select syscall - -## Caution - -The Windows implementation is based on WaitForMultipleObject with overlapping -reads from CONIN$. At this point it only supports canceling reads from -`os.Stdin`. diff --git a/vendor/github.com/muesli/cancelreader/cancelreader.go b/vendor/github.com/muesli/cancelreader/cancelreader.go deleted file mode 100644 index 18d3825..0000000 --- a/vendor/github.com/muesli/cancelreader/cancelreader.go +++ /dev/null @@ -1,93 +0,0 @@ -package cancelreader - -import ( - "fmt" - "io" - "sync" -) - -// ErrCanceled gets returned when trying to read from a canceled reader. -var ErrCanceled = fmt.Errorf("read canceled") - -// CancelReader is a io.Reader whose Read() calls can be canceled without data -// being consumed. The cancelReader has to be closed. -type CancelReader interface { - io.ReadCloser - - // Cancel cancels ongoing and future reads an returns true if it succeeded. - Cancel() bool -} - -// File represents an input/output resource with a file descriptor. -type File interface { - io.ReadWriteCloser - - // Fd returns its file descriptor - Fd() uintptr - - // Name returns its file name. - Name() string -} - -// fallbackCancelReader implements cancelReader but does not actually support -// cancelation during an ongoing Read() call. Thus, Cancel() always returns -// false. However, after calling Cancel(), new Read() calls immediately return -// errCanceled and don't consume any data anymore. -type fallbackCancelReader struct { - r io.Reader - cancelMixin -} - -// newFallbackCancelReader is a fallback for NewReader that cannot actually -// cancel an ongoing read but will immediately return on future reads if it has -// been canceled. -func newFallbackCancelReader(reader io.Reader) (CancelReader, error) { - return &fallbackCancelReader{r: reader}, nil -} - -func (r *fallbackCancelReader) Read(data []byte) (int, error) { - if r.isCanceled() { - return 0, ErrCanceled - } - - n, err := r.r.Read(data) - /* - If the underlying reader is a blocking reader (e.g. an open connection), - it might happen that 1 goroutine cancels the reader while its stuck in - the read call waiting for something. - If that happens, we should still cancel the read. - */ - if r.isCanceled() { - return 0, ErrCanceled - } - return n, err // nolint: wrapcheck -} - -func (r *fallbackCancelReader) Cancel() bool { - r.setCanceled() - return false -} - -func (r *fallbackCancelReader) Close() error { - return nil -} - -// cancelMixin represents a goroutine-safe cancelation status. -type cancelMixin struct { - unsafeCanceled bool - lock sync.Mutex -} - -func (c *cancelMixin) isCanceled() bool { - c.lock.Lock() - defer c.lock.Unlock() - - return c.unsafeCanceled -} - -func (c *cancelMixin) setCanceled() { - c.lock.Lock() - defer c.lock.Unlock() - - c.unsafeCanceled = true -} diff --git a/vendor/github.com/muesli/cancelreader/cancelreader_bsd.go b/vendor/github.com/muesli/cancelreader/cancelreader_bsd.go deleted file mode 100644 index 3ddb6cf..0000000 --- a/vendor/github.com/muesli/cancelreader/cancelreader_bsd.go +++ /dev/null @@ -1,146 +0,0 @@ -//go:build darwin || freebsd || netbsd || openbsd || dragonfly -// +build darwin freebsd netbsd openbsd dragonfly - -package cancelreader - -import ( - "errors" - "fmt" - "io" - "os" - "strings" - - "golang.org/x/sys/unix" -) - -// NewReader returns a reader and a cancel function. If the input reader is a -// File, the cancel function can be used to interrupt a blocking read call. -// In this case, the cancel function returns true if the call was canceled -// successfully. If the input reader is not a File, the cancel function -// does nothing and always returns false. The BSD and macOS implementation is -// based on the kqueue mechanism. -func NewReader(reader io.Reader) (CancelReader, error) { - file, ok := reader.(File) - if !ok { - return newFallbackCancelReader(reader) - } - - // kqueue returns instantly when polling /dev/tty so fallback to select - if file.Name() == "/dev/tty" { - return newSelectCancelReader(reader) - } - - kQueue, err := unix.Kqueue() - if err != nil { - return nil, fmt.Errorf("create kqueue: %w", err) - } - - r := &kqueueCancelReader{ - file: file, - kQueue: kQueue, - } - - r.cancelSignalReader, r.cancelSignalWriter, err = os.Pipe() - if err != nil { - _ = unix.Close(kQueue) - return nil, err - } - - unix.SetKevent(&r.kQueueEvents[0], int(file.Fd()), unix.EVFILT_READ, unix.EV_ADD) - unix.SetKevent(&r.kQueueEvents[1], int(r.cancelSignalReader.Fd()), unix.EVFILT_READ, unix.EV_ADD) - - return r, nil -} - -type kqueueCancelReader struct { - file File - cancelSignalReader File - cancelSignalWriter File - cancelMixin - kQueue int - kQueueEvents [2]unix.Kevent_t -} - -func (r *kqueueCancelReader) Read(data []byte) (int, error) { - if r.isCanceled() { - return 0, ErrCanceled - } - - err := r.wait() - if err != nil { - if errors.Is(err, ErrCanceled) { - // remove signal from pipe - var b [1]byte - _, errRead := r.cancelSignalReader.Read(b[:]) - if errRead != nil { - return 0, fmt.Errorf("reading cancel signal: %w", errRead) - } - } - - return 0, err - } - - return r.file.Read(data) -} - -func (r *kqueueCancelReader) Cancel() bool { - r.setCanceled() - - // send cancel signal - _, err := r.cancelSignalWriter.Write([]byte{'c'}) - return err == nil -} - -func (r *kqueueCancelReader) Close() error { - var errMsgs []string - - // close kqueue - err := unix.Close(r.kQueue) - if err != nil { - errMsgs = append(errMsgs, fmt.Sprintf("closing kqueue: %v", err)) - } - - // close pipe - err = r.cancelSignalWriter.Close() - if err != nil { - errMsgs = append(errMsgs, fmt.Sprintf("closing cancel signal writer: %v", err)) - } - - err = r.cancelSignalReader.Close() - if err != nil { - errMsgs = append(errMsgs, fmt.Sprintf("closing cancel signal reader: %v", err)) - } - - if len(errMsgs) > 0 { - return fmt.Errorf(strings.Join(errMsgs, ", ")) - } - - return nil -} - -func (r *kqueueCancelReader) wait() error { - events := make([]unix.Kevent_t, 1) - - for { - _, err := unix.Kevent(r.kQueue, r.kQueueEvents[:], events, nil) - if errors.Is(err, unix.EINTR) { - continue // try again if the syscall was interrupted - } - - if err != nil { - return fmt.Errorf("kevent: %w", err) - } - - break - } - - ident := uint64(events[0].Ident) - switch ident { - case uint64(r.file.Fd()): - return nil - case uint64(r.cancelSignalReader.Fd()): - return ErrCanceled - } - - return fmt.Errorf("unknown error") -} diff --git a/vendor/github.com/muesli/cancelreader/cancelreader_default.go b/vendor/github.com/muesli/cancelreader/cancelreader_default.go deleted file mode 100644 index 8e275fa..0000000 --- a/vendor/github.com/muesli/cancelreader/cancelreader_default.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !darwin && !windows && !linux && !solaris && !freebsd && !netbsd && !openbsd && !dragonfly -// +build !darwin,!windows,!linux,!solaris,!freebsd,!netbsd,!openbsd,!dragonfly - -package cancelreader - -import "io" - -// NewReader returns a fallbackCancelReader that satisfies the CancelReader but -// does not actually support cancellation. -func NewReader(reader io.Reader) (CancelReader, error) { - return newFallbackCancelReader(reader) -} diff --git a/vendor/github.com/muesli/cancelreader/cancelreader_linux.go b/vendor/github.com/muesli/cancelreader/cancelreader_linux.go deleted file mode 100644 index 09f7369..0000000 --- a/vendor/github.com/muesli/cancelreader/cancelreader_linux.go +++ /dev/null @@ -1,154 +0,0 @@ -//go:build linux -// +build linux - -package cancelreader - -import ( - "errors" - "fmt" - "io" - "os" - "strings" - - "golang.org/x/sys/unix" -) - -// NewReader returns a reader and a cancel function. If the input reader is a -// File, the cancel function can be used to interrupt a blocking read call. -// In this case, the cancel function returns true if the call was canceled -// successfully. If the input reader is not a File, the cancel function -// does nothing and always returns false. The Linux implementation is based on -// the epoll mechanism. -func NewReader(reader io.Reader) (CancelReader, error) { - file, ok := reader.(File) - if !ok { - return newFallbackCancelReader(reader) - } - - epoll, err := unix.EpollCreate1(0) - if err != nil { - return nil, fmt.Errorf("create epoll: %w", err) - } - - r := &epollCancelReader{ - file: file, - epoll: epoll, - } - - r.cancelSignalReader, r.cancelSignalWriter, err = os.Pipe() - if err != nil { - _ = unix.Close(epoll) - return nil, err - } - - err = unix.EpollCtl(epoll, unix.EPOLL_CTL_ADD, int(file.Fd()), &unix.EpollEvent{ - Events: unix.EPOLLIN, - Fd: int32(file.Fd()), - }) - if err != nil { - _ = unix.Close(epoll) - return nil, fmt.Errorf("add reader to epoll interest list") - } - - err = unix.EpollCtl(epoll, unix.EPOLL_CTL_ADD, int(r.cancelSignalReader.Fd()), &unix.EpollEvent{ - Events: unix.EPOLLIN, - Fd: int32(r.cancelSignalReader.Fd()), - }) - if err != nil { - _ = unix.Close(epoll) - return nil, fmt.Errorf("add reader to epoll interest list") - } - - return r, nil -} - -type epollCancelReader struct { - file File - cancelSignalReader File - cancelSignalWriter File - cancelMixin - epoll int -} - -func (r *epollCancelReader) Read(data []byte) (int, error) { - if r.isCanceled() { - return 0, ErrCanceled - } - - err := r.wait() - if err != nil { - if errors.Is(err, ErrCanceled) { - // remove signal from pipe - var b [1]byte - _, readErr := r.cancelSignalReader.Read(b[:]) - if readErr != nil { - return 0, fmt.Errorf("reading cancel signal: %w", readErr) - } - } - - return 0, err - } - - return r.file.Read(data) -} - -func (r *epollCancelReader) Cancel() bool { - r.setCanceled() - - // send cancel signal - _, err := r.cancelSignalWriter.Write([]byte{'c'}) - return err == nil -} - -func (r *epollCancelReader) Close() error { - var errMsgs []string - - // close kqueue - err := unix.Close(r.epoll) - if err != nil { - errMsgs = append(errMsgs, fmt.Sprintf("closing epoll: %v", err)) - } - - // close pipe - err = r.cancelSignalWriter.Close() - if err != nil { - errMsgs = append(errMsgs, fmt.Sprintf("closing cancel signal writer: %v", err)) - } - - err = r.cancelSignalReader.Close() - if err != nil { - errMsgs = append(errMsgs, fmt.Sprintf("closing cancel signal reader: %v", err)) - } - - if len(errMsgs) > 0 { - return fmt.Errorf(strings.Join(errMsgs, ", ")) - } - - return nil -} - -func (r *epollCancelReader) wait() error { - events := make([]unix.EpollEvent, 1) - - for { - _, err := unix.EpollWait(r.epoll, events, -1) - if errors.Is(err, unix.EINTR) { - continue // try again if the syscall was interrupted - } - - if err != nil { - return fmt.Errorf("kevent: %w", err) - } - - break - } - - switch events[0].Fd { - case int32(r.file.Fd()): - return nil - case int32(r.cancelSignalReader.Fd()): - return ErrCanceled - } - - return fmt.Errorf("unknown error") -} diff --git a/vendor/github.com/muesli/cancelreader/cancelreader_select.go b/vendor/github.com/muesli/cancelreader/cancelreader_select.go deleted file mode 100644 index 03f2a3e..0000000 --- a/vendor/github.com/muesli/cancelreader/cancelreader_select.go +++ /dev/null @@ -1,136 +0,0 @@ -//go:build solaris || darwin || freebsd || netbsd || openbsd || dragonfly -// +build solaris darwin freebsd netbsd openbsd dragonfly - -package cancelreader - -import ( - "errors" - "fmt" - "io" - "os" - "strings" - - "golang.org/x/sys/unix" -) - -// newSelectCancelReader returns a reader and a cancel function. If the input -// reader is a File, the cancel function can be used to interrupt a -// blocking call read call. In this case, the cancel function returns true if -// the call was canceled successfully. If the input reader is not a File or -// the file descriptor is 1024 or larger, the cancel function does nothing and -// always returns false. The generic unix implementation is based on the posix -// select syscall. -func newSelectCancelReader(reader io.Reader) (CancelReader, error) { - file, ok := reader.(File) - if !ok || file.Fd() >= unix.FD_SETSIZE { - return newFallbackCancelReader(reader) - } - r := &selectCancelReader{file: file} - - var err error - - r.cancelSignalReader, r.cancelSignalWriter, err = os.Pipe() - if err != nil { - return nil, err - } - - return r, nil -} - -type selectCancelReader struct { - file File - cancelSignalReader File - cancelSignalWriter File - cancelMixin -} - -func (r *selectCancelReader) Read(data []byte) (int, error) { - if r.isCanceled() { - return 0, ErrCanceled - } - - for { - err := waitForRead(r.file, r.cancelSignalReader) - if err != nil { - if errors.Is(err, unix.EINTR) { - continue // try again if the syscall was interrupted - } - - if errors.Is(err, ErrCanceled) { - // remove signal from pipe - var b [1]byte - _, readErr := r.cancelSignalReader.Read(b[:]) - if readErr != nil { - return 0, fmt.Errorf("reading cancel signal: %w", readErr) - } - } - - return 0, err - } - - return r.file.Read(data) - } -} - -func (r *selectCancelReader) Cancel() bool { - r.setCanceled() - - // send cancel signal - _, err := r.cancelSignalWriter.Write([]byte{'c'}) - return err == nil -} - -func (r *selectCancelReader) Close() error { - var errMsgs []string - - // close pipe - err := r.cancelSignalWriter.Close() - if err != nil { - errMsgs = append(errMsgs, fmt.Sprintf("closing cancel signal writer: %v", err)) - } - - err = r.cancelSignalReader.Close() - if err != nil { - errMsgs = append(errMsgs, fmt.Sprintf("closing cancel signal reader: %v", err)) - } - - if len(errMsgs) > 0 { - return fmt.Errorf(strings.Join(errMsgs, ", ")) - } - - return nil -} - -func waitForRead(reader, abort File) error { - readerFd := int(reader.Fd()) - abortFd := int(abort.Fd()) - - maxFd := readerFd - if abortFd > maxFd { - maxFd = abortFd - } - - // this is a limitation of the select syscall - if maxFd >= unix.FD_SETSIZE { - return fmt.Errorf("cannot select on file descriptor %d which is larger than 1024", maxFd) - } - - fdSet := &unix.FdSet{} - fdSet.Set(int(reader.Fd())) - fdSet.Set(int(abort.Fd())) - - _, err := unix.Select(maxFd+1, fdSet, nil, nil, nil) - if err != nil { - return fmt.Errorf("select: %w", err) - } - - if fdSet.IsSet(abortFd) { - return ErrCanceled - } - - if fdSet.IsSet(readerFd) { - return nil - } - - return fmt.Errorf("select returned without setting a file descriptor") -} diff --git a/vendor/github.com/muesli/cancelreader/cancelreader_unix.go b/vendor/github.com/muesli/cancelreader/cancelreader_unix.go deleted file mode 100644 index 3c10ee0..0000000 --- a/vendor/github.com/muesli/cancelreader/cancelreader_unix.go +++ /dev/null @@ -1,18 +0,0 @@ -//go:build solaris -// +build solaris - -package cancelreader - -import ( - "io" -) - -// NewReader returns a reader and a cancel function. If the input reader is a -// File, the cancel function can be used to interrupt a blocking read call. -// In this case, the cancel function returns true if the call was canceled -// successfully. If the input reader is not a File or the file descriptor -// is 1024 or larger, the cancel function does nothing and always returns false. -// The generic unix implementation is based on the posix select syscall. -func NewReader(reader io.Reader) (CancelReader, error) { - return newSelectCancelReader(reader) -} diff --git a/vendor/github.com/muesli/cancelreader/cancelreader_windows.go b/vendor/github.com/muesli/cancelreader/cancelreader_windows.go deleted file mode 100644 index c1dc8d5..0000000 --- a/vendor/github.com/muesli/cancelreader/cancelreader_windows.go +++ /dev/null @@ -1,244 +0,0 @@ -//go:build windows -// +build windows - -package cancelreader - -import ( - "fmt" - "io" - "os" - "syscall" - "time" - "unicode/utf16" - - "golang.org/x/sys/windows" -) - -var fileShareValidFlags uint32 = 0x00000007 - -// NewReader returns a reader and a cancel function. If the input reader is a -// File with the same file descriptor as os.Stdin, the cancel function can -// be used to interrupt a blocking read call. In this case, the cancel function -// returns true if the call was canceled successfully. If the input reader is -// not a File with the same file descriptor as os.Stdin, the cancel -// function does nothing and always returns false. The Windows implementation -// is based on WaitForMultipleObject with overlapping reads from CONIN$. -func NewReader(reader io.Reader) (CancelReader, error) { - if f, ok := reader.(File); !ok || f.Fd() != os.Stdin.Fd() { - return newFallbackCancelReader(reader) - } - - // it is necessary to open CONIN$ (NOT windows.STD_INPUT_HANDLE) in - // overlapped mode to be able to use it with WaitForMultipleObjects. - conin, err := windows.CreateFile( - &(utf16.Encode([]rune("CONIN$\x00"))[0]), windows.GENERIC_READ|windows.GENERIC_WRITE, - fileShareValidFlags, nil, windows.OPEN_EXISTING, windows.FILE_FLAG_OVERLAPPED, 0) - if err != nil { - return nil, fmt.Errorf("open CONIN$ in overlapping mode: %w", err) - } - - resetConsole, err := prepareConsole(conin) - if err != nil { - return nil, fmt.Errorf("prepare console: %w", err) - } - - // flush input, otherwise it can contain events which trigger - // WaitForMultipleObjects but which ReadFile cannot read, resulting in an - // un-cancelable read - err = flushConsoleInputBuffer(conin) - if err != nil { - return nil, fmt.Errorf("flush console input buffer: %w", err) - } - - cancelEvent, err := windows.CreateEvent(nil, 0, 0, nil) - if err != nil { - return nil, fmt.Errorf("create stop event: %w", err) - } - - return &winCancelReader{ - conin: conin, - cancelEvent: cancelEvent, - resetConsole: resetConsole, - blockingReadSignal: make(chan struct{}, 1), - }, nil -} - -type winCancelReader struct { - conin windows.Handle - cancelEvent windows.Handle - cancelMixin - - resetConsole func() error - blockingReadSignal chan struct{} -} - -func (r *winCancelReader) Read(data []byte) (int, error) { - if r.isCanceled() { - return 0, ErrCanceled - } - - err := r.wait() - if err != nil { - return 0, err - } - - if r.isCanceled() { - return 0, ErrCanceled - } - - // windows.Read does not work on overlapping windows.Handles - return r.readAsync(data) -} - -// Cancel cancels ongoing and future Read() calls and returns true if the -// cancelation of the ongoing Read() was successful. On Windows Terminal, -// WaitForMultipleObjects sometimes immediately returns without input being -// available. In this case, graceful cancelation is not possible and Cancel() -// returns false. -func (r *winCancelReader) Cancel() bool { - r.setCanceled() - - select { - case r.blockingReadSignal <- struct{}{}: - err := windows.SetEvent(r.cancelEvent) - if err != nil { - return false - } - <-r.blockingReadSignal - case <-time.After(100 * time.Millisecond): - // Read() hangs in a GetOverlappedResult which is likely due to - // WaitForMultipleObjects returning without input being available - // so we cannot cancel this ongoing read. - return false - } - - return true -} - -func (r *winCancelReader) Close() error { - err := windows.CloseHandle(r.cancelEvent) - if err != nil { - return fmt.Errorf("closing cancel event handle: %w", err) - } - - err = r.resetConsole() - if err != nil { - return err - } - - err = windows.Close(r.conin) - if err != nil { - return fmt.Errorf("closing CONIN$") - } - - return nil -} - -func (r *winCancelReader) wait() error { - event, err := windows.WaitForMultipleObjects([]windows.Handle{r.conin, r.cancelEvent}, false, windows.INFINITE) - switch { - case windows.WAIT_OBJECT_0 <= event && event < windows.WAIT_OBJECT_0+2: - if event == windows.WAIT_OBJECT_0+1 { - return ErrCanceled - } - - if event == windows.WAIT_OBJECT_0 { - return nil - } - - return fmt.Errorf("unexpected wait object is ready: %d", event-windows.WAIT_OBJECT_0) - case windows.WAIT_ABANDONED <= event && event < windows.WAIT_ABANDONED+2: - return fmt.Errorf("abandoned") - case event == uint32(windows.WAIT_TIMEOUT): - return fmt.Errorf("timeout") - case event == windows.WAIT_FAILED: - return fmt.Errorf("failed") - default: - return fmt.Errorf("unexpected error: %w", error(err)) - } -} - -// readAsync is necessary to read from a windows.Handle in overlapping mode. -func (r *winCancelReader) readAsync(data []byte) (int, error) { - hevent, err := windows.CreateEvent(nil, 0, 0, nil) - if err != nil { - return 0, fmt.Errorf("create event: %w", err) - } - - overlapped := windows.Overlapped{ - HEvent: hevent, - } - - var n uint32 - - err = windows.ReadFile(r.conin, data, &n, &overlapped) - if err != nil && err != windows.ERROR_IO_PENDING { - return int(n), err - } - - r.blockingReadSignal <- struct{}{} - err = windows.GetOverlappedResult(r.conin, &overlapped, &n, true) - if err != nil { - return int(n), nil - } - <-r.blockingReadSignal - - return int(n), nil -} - -func prepareConsole(input windows.Handle) (reset func() error, err error) { - var originalMode uint32 - - err = windows.GetConsoleMode(input, &originalMode) - if err != nil { - return nil, fmt.Errorf("get console mode: %w", err) - } - - var newMode uint32 - newMode &^= windows.ENABLE_ECHO_INPUT - newMode &^= windows.ENABLE_LINE_INPUT - newMode &^= windows.ENABLE_MOUSE_INPUT - newMode &^= windows.ENABLE_WINDOW_INPUT - newMode &^= windows.ENABLE_PROCESSED_INPUT - - newMode |= windows.ENABLE_EXTENDED_FLAGS - newMode |= windows.ENABLE_INSERT_MODE - newMode |= windows.ENABLE_QUICK_EDIT_MODE - - // Enabling virtual terminal input is necessary for processing certain - // types of input like X10 mouse events and arrows keys with the current - // bytes-based input reader. It does, however, prevent cancelReader from - // being able to cancel input. The planned solution for this is to read - // Windows events in a more native fashion, rather than the current simple - // bytes-based input reader which works well on unix systems. - newMode |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT - - err = windows.SetConsoleMode(input, newMode) - if err != nil { - return nil, fmt.Errorf("set console mode: %w", err) - } - - return func() error { - err := windows.SetConsoleMode(input, originalMode) - if err != nil { - return fmt.Errorf("reset console mode: %w", err) - } - - return nil - }, nil -} - -var ( - modkernel32 = windows.NewLazySystemDLL("kernel32.dll") - procFlushConsoleInputBuffer = modkernel32.NewProc("FlushConsoleInputBuffer") -) - -func flushConsoleInputBuffer(consoleInput windows.Handle) error { - r, _, e := syscall.Syscall(procFlushConsoleInputBuffer.Addr(), 1, - uintptr(consoleInput), 0, 0) - if r == 0 { - return error(e) - } - - return nil -} diff --git a/vendor/github.com/muesli/termenv/.gitignore b/vendor/github.com/muesli/termenv/.gitignore deleted file mode 100644 index 66fd13c..0000000 --- a/vendor/github.com/muesli/termenv/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ diff --git a/vendor/github.com/muesli/termenv/.golangci-soft.yml b/vendor/github.com/muesli/termenv/.golangci-soft.yml deleted file mode 100644 index 84e3d41..0000000 --- a/vendor/github.com/muesli/termenv/.golangci-soft.yml +++ /dev/null @@ -1,43 +0,0 @@ -run: - tests: false - -issues: - include: - - EXC0001 - - EXC0005 - - EXC0011 - - EXC0012 - - EXC0013 - - max-issues-per-linter: 0 - max-same-issues: 0 - -linters: - enable: - # - dupl - - exhaustive - # - exhaustivestruct - - goconst - - godot - - godox - - mnd - - gomoddirectives - - goprintffuncname - # - lll - - misspell - - nakedret - - nestif - - noctx - - nolintlint - - prealloc - - wrapcheck - - # disable default linters, they are already enabled in .golangci.yml - disable: - - errcheck - - gosimple - - govet - - ineffassign - - staticcheck - - typecheck - - unused diff --git a/vendor/github.com/muesli/termenv/.golangci.yml b/vendor/github.com/muesli/termenv/.golangci.yml deleted file mode 100644 index 684d54b..0000000 --- a/vendor/github.com/muesli/termenv/.golangci.yml +++ /dev/null @@ -1,28 +0,0 @@ -run: - tests: false - -issues: - include: - - EXC0001 - - EXC0005 - - EXC0011 - - EXC0012 - - EXC0013 - - max-issues-per-linter: 0 - max-same-issues: 0 - -linters: - enable: - - bodyclose - - goimports - - gosec - - nilerr - - predeclared - - revive - - rowserrcheck - - sqlclosecheck - - tparallel - - unconvert - - unparam - - whitespace diff --git a/vendor/github.com/muesli/termenv/LICENSE b/vendor/github.com/muesli/termenv/LICENSE deleted file mode 100644 index 8532c45..0000000 --- a/vendor/github.com/muesli/termenv/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Christian Muehlhaeuser - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/muesli/termenv/README.md b/vendor/github.com/muesli/termenv/README.md deleted file mode 100644 index fa7929d..0000000 --- a/vendor/github.com/muesli/termenv/README.md +++ /dev/null @@ -1,431 +0,0 @@ -

- termenv Logo -
- Latest Release - GoDoc - Build Status - Coverage Status - Go ReportCard -
- Example terminal output -

- -`termenv` lets you safely use advanced styling options on the terminal. It -gathers information about the terminal environment in terms of its ANSI & color -support and offers you convenient methods to colorize and style your output, -without you having to deal with all kinds of weird ANSI escape sequences and -color conversions. - -## Features - -- RGB/TrueColor support -- Detects the supported color range of your terminal -- Automatically converts colors to the best matching, available colors -- Terminal theme (light/dark) detection -- Chainable syntax -- Nested styles - -## Installation - -```bash -go get github.com/muesli/termenv -``` - -## Usage - -```go -output := termenv.NewOutput(os.Stdout) -``` - -`termenv` queries the terminal's capabilities it is running in, so you can -safely use advanced features, like RGB colors or ANSI styles. `output.Profile` -returns the supported profile: - -- `termenv.Ascii` - no ANSI support detected, ASCII only -- `termenv.ANSI` - 16 color ANSI support -- `termenv.ANSI256` - Extended 256 color ANSI support -- `termenv.TrueColor` - RGB/TrueColor support - -Alternatively, you can use `termenv.EnvColorProfile` which evaluates the -terminal like `ColorProfile`, but also respects the `NO_COLOR` and -`CLICOLOR_FORCE` environment variables. - -You can also query the terminal for its color scheme, so you know whether your -app is running in a light- or dark-themed environment: - -```go -// Returns terminal's foreground color -color := output.ForegroundColor() - -// Returns terminal's background color -color := output.BackgroundColor() - -// Returns whether terminal uses a dark-ish background -darkTheme := output.HasDarkBackground() -``` - -### Manual Profile Selection - -If you don't want to rely on the automatic detection, you can manually select -the profile you want to use: - -```go -output := termenv.NewOutput(os.Stdout, termenv.WithProfile(termenv.TrueColor)) -``` - -## Colors - -`termenv` supports multiple color profiles: Ascii (black & white only), -ANSI (16 colors), ANSI Extended (256 colors), and TrueColor (24-bit RGB). Colors -will automatically be degraded to the best matching available color in the -desired profile: - -`TrueColor` => `ANSI 256 Colors` => `ANSI 16 Colors` => `Ascii` - -```go -s := output.String("Hello World") - -// Supports hex values -// Will automatically degrade colors on terminals not supporting RGB -s.Foreground(output.Color("#abcdef")) -// but also supports ANSI colors (0-255) -s.Background(output.Color("69")) -// ...or the color.Color interface -s.Foreground(output.FromColor(color.RGBA{255, 128, 0, 255})) - -// Combine fore- & background colors -s.Foreground(output.Color("#ffffff")).Background(output.Color("#0000ff")) - -// Supports the fmt.Stringer interface -fmt.Println(s) -``` - -## Styles - -You can use a chainable syntax to compose your own styles: - -```go -s := output.String("foobar") - -// Text styles -s.Bold() -s.Faint() -s.Italic() -s.CrossOut() -s.Underline() -s.Overline() - -// Reverse swaps current fore- & background colors -s.Reverse() - -// Blinking text -s.Blink() - -// Combine multiple options -s.Bold().Underline() -``` - -## Template Helpers - -`termenv` provides a set of helper functions to style your Go templates: - -```go -// load template helpers -f := output.TemplateFuncs() -tpl := template.New("tpl").Funcs(f) - -// apply bold style in a template -bold := `{{ Bold "Hello World" }}` - -// examples for colorized templates -col := `{{ Color "#ff0000" "#0000ff" "Red on Blue" }}` -fg := `{{ Foreground "#ff0000" "Red Foreground" }}` -bg := `{{ Background "#0000ff" "Blue Background" }}` - -// wrap styles -wrap := `{{ Bold (Underline "Hello World") }}` - -// parse and render -tpl, err = tpl.Parse(bold) - -var buf bytes.Buffer -tpl.Execute(&buf, nil) -fmt.Println(&buf) -``` - -Other available helper functions are: `Faint`, `Italic`, `CrossOut`, -`Underline`, `Overline`, `Reverse`, and `Blink`. - -## Positioning - -```go -// Move the cursor to a given position -output.MoveCursor(row, column) - -// Save the cursor position -output.SaveCursorPosition() - -// Restore a saved cursor position -output.RestoreCursorPosition() - -// Move the cursor up a given number of lines -output.CursorUp(n) - -// Move the cursor down a given number of lines -output.CursorDown(n) - -// Move the cursor up a given number of lines -output.CursorForward(n) - -// Move the cursor backwards a given number of cells -output.CursorBack(n) - -// Move the cursor down a given number of lines and place it at the beginning -// of the line -output.CursorNextLine(n) - -// Move the cursor up a given number of lines and place it at the beginning of -// the line -output.CursorPrevLine(n) -``` - -## Screen - -```go -// Reset the terminal to its default style, removing any active styles -output.Reset() - -// RestoreScreen restores a previously saved screen state -output.RestoreScreen() - -// SaveScreen saves the screen state -output.SaveScreen() - -// Switch to the altscreen. The former view can be restored with ExitAltScreen() -output.AltScreen() - -// Exit the altscreen and return to the former terminal view -output.ExitAltScreen() - -// Clear the visible portion of the terminal -output.ClearScreen() - -// Clear the current line -output.ClearLine() - -// Clear a given number of lines -output.ClearLines(n) - -// Set the scrolling region of the terminal -output.ChangeScrollingRegion(top, bottom) - -// Insert the given number of lines at the top of the scrollable region, pushing -// lines below down -output.InsertLines(n) - -// Delete the given number of lines, pulling any lines in the scrollable region -// below up -output.DeleteLines(n) -``` - -## Session - -```go -// SetWindowTitle sets the terminal window title -output.SetWindowTitle(title) - -// SetForegroundColor sets the default foreground color -output.SetForegroundColor(color) - -// SetBackgroundColor sets the default background color -output.SetBackgroundColor(color) - -// SetCursorColor sets the cursor color -output.SetCursorColor(color) - -// Hide the cursor -output.HideCursor() - -// Show the cursor -output.ShowCursor() - -// Copy to clipboard -output.Copy(message) - -// Copy to primary clipboard (X11) -output.CopyPrimary(message) - -// Trigger notification -output.Notify(title, body) -``` - -## Mouse - -```go -// Enable X10 mouse mode, only button press events are sent -output.EnableMousePress() - -// Disable X10 mouse mode -output.DisableMousePress() - -// Enable Mouse Tracking mode -output.EnableMouse() - -// Disable Mouse Tracking mode -output.DisableMouse() - -// Enable Hilite Mouse Tracking mode -output.EnableMouseHilite() - -// Disable Hilite Mouse Tracking mode -output.DisableMouseHilite() - -// Enable Cell Motion Mouse Tracking mode -output.EnableMouseCellMotion() - -// Disable Cell Motion Mouse Tracking mode -output.DisableMouseCellMotion() - -// Enable All Motion Mouse mode -output.EnableMouseAllMotion() - -// Disable All Motion Mouse mode -output.DisableMouseAllMotion() -``` - -## Bracketed Paste - -```go -// Enables bracketed paste mode -termenv.EnableBracketedPaste() - -// Disables bracketed paste mode -termenv.DisableBracketedPaste() -``` - -## Terminal Feature Support - -### Color Support - -- 24-bit (RGB): alacritty, foot, iTerm, kitty, Konsole, st, tmux, vte-based, wezterm, Ghostty, Windows Terminal -- 8-bit (256): rxvt, screen, xterm, Apple Terminal -- 4-bit (16): Linux Console - -### Control Sequences - -
-Click to show feature matrix - -| Terminal | Query Color Scheme | Query Cursor Position | Set Window Title | Change Cursor Color | Change Default Foreground Setting | Change Default Background Setting | Bracketed Paste | Extended Mouse (SGR) | Pixels Mouse (SGR-Pixels) | -| ---------------- | :----------------: | :-------------------: | :--------------: | :-----------------: | :-------------------------------: | :-------------------------------: | :-------------: | :------------------: | :-----------------------: | -| alacritty | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| foot | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| kitty | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| Konsole | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | -| rxvt | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| urxvt | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| screen | ⛔[^mux] | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | -| st | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| tmux | ⛔[^mux] | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| vte-based[^vte] | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | -| wezterm | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| xterm | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | -| Linux Console | ❌ | ✅ | ⛔ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Apple Terminal | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | -| iTerm | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | -| Windows cmd | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | -| Windows Terminal | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | - -[^vte]: This covers all vte-based terminals, including Gnome Terminal, guake, Pantheon Terminal, Terminator, Tilix, XFCE Terminal. -[^mux]: Unavailable as multiplexers (like tmux or screen) can be connected to multiple terminals (with different color settings) at the same time. - -You can help improve this list! Check out [how to](ansi_compat.md) and open an issue or pull request. - -
- -### System Commands - -
-Click to show feature matrix - -| Terminal | Copy to Clipboard (OSC52) | Hyperlinks (OSC8) | Notifications (OSC777) | -| ---------------- | :-----------------------: | :---------------: | :--------------------: | -| alacritty | ✅ | ✅[^alacritty] | ❌ | -| foot | ✅ | ✅ | ✅ | -| kitty | ✅ | ✅ | ✅ | -| Konsole | ❌[^konsole] | ✅ | ❌ | -| rxvt | ❌ | ❌ | ❌ | -| urxvt | ✅[^urxvt] | ❌ | ✅ | -| screen | ✅ | ❌[^screen] | ❌ | -| st | ✅ | ❌ | ❌ | -| tmux | ✅ | ❌[^tmux] | ❌ | -| vte-based[^vte] | ❌[^vte] | ✅ | ❌ | -| wezterm | ✅ | ✅ | ❌ | -| xterm | ✅ | ❌ | ❌ | -| Linux Console | ⛔ | ⛔ | ❌ | -| Apple Terminal | ✅[^apple] | ❌ | ❌ | -| iTerm | ✅ | ✅ | ❌ | -| Windows cmd | ❌ | ❌ | ❌ | -| Windows Terminal | ✅ | ✅ | ❌ | - -[^vte]: This covers all vte-based terminals, including Gnome Terminal, guake, Pantheon Terminal, Terminator, Tilix, XFCE Terminal. OSC52 is not supported, see [issue#2495](https://gitlab.gnome.org/GNOME/vte/-/issues/2495). -[^urxvt]: Workaround for urxvt not supporting OSC52. See [this](https://unix.stackexchange.com/a/629485) for more information. -[^konsole]: OSC52 is not supported, for more info see [bug#372116](https://bugs.kde.org/show_bug.cgi?id=372116). -[^apple]: OSC52 works with a [workaround](https://github.com/roy2220/osc52pty). -[^tmux]: OSC8 is not supported, for more info see [issue#911](https://github.com/tmux/tmux/issues/911). -[^screen]: OSC8 is not supported, for more info see [bug#50952](https://savannah.gnu.org/bugs/index.php?50952). -[^alacritty]: OSC8 is supported since [v0.11.0](https://github.com/alacritty/alacritty/releases/tag/v0.11.0) - -
- -## Platform Support - -`termenv` works on Unix systems (like Linux, macOS, or BSD) and Windows. While -terminal applications on Unix support ANSI styling out-of-the-box, on Windows -you need to enable ANSI processing in your application first: - -```go - restoreConsole, err := termenv.EnableVirtualTerminalProcessing(termenv.DefaultOutput()) - if err != nil { - panic(err) - } - defer restoreConsole() -``` - -The above code is safe to include on non-Windows systems or when os.Stdout does -not refer to a terminal (e.g. in tests). - -## Color Chart - -![ANSI color chart](https://github.com/muesli/termenv/raw/master/examples/color-chart/color-chart.png) - -You can find the source code used to create this chart in `termenv`'s examples. - -## Related Projects - -- [reflow](https://github.com/muesli/reflow) - ANSI-aware text operations -- [Lip Gloss](https://github.com/charmbracelet/lipgloss) - style definitions for nice terminal layouts 👄 -- [ansi](https://github.com/muesli/ansi) - ANSI sequence helpers - -## termenv in the Wild - -Need some inspiration or just want to see how others are using `termenv`? Check -out these projects: - -- [Bubble Tea](https://github.com/charmbracelet/bubbletea) - a powerful little TUI framework 🏗 -- [Glamour](https://github.com/charmbracelet/glamour) - stylesheet-based markdown rendering for your CLI apps 💇🏻‍♀️ -- [Glow](https://github.com/charmbracelet/glow) - a markdown renderer for the command-line 💅🏻 -- [duf](https://github.com/muesli/duf) - Disk Usage/Free Utility - a better 'df' alternative -- [gitty](https://github.com/muesli/gitty) - contextual information about your git projects -- [slides](https://github.com/maaslalani/slides) - terminal-based presentation tool - -## Feedback - -Got some feedback or suggestions? Please open an issue or drop me a note! - -- [Twitter](https://twitter.com/mueslix) -- [The Fediverse](https://mastodon.social/@fribbledom) - -## License - -[MIT](https://github.com/muesli/termenv/raw/master/LICENSE) diff --git a/vendor/github.com/muesli/termenv/ansi_compat.md b/vendor/github.com/muesli/termenv/ansi_compat.md deleted file mode 100644 index 6b68a3a..0000000 --- a/vendor/github.com/muesli/termenv/ansi_compat.md +++ /dev/null @@ -1,65 +0,0 @@ -## Change Foreground Color - -This command should enable a blue foreground color: - -```bash -echo -ne "\033]10;#0000ff\007" -``` - -## Change Background Color - -This command should enable a green background color: - -```bash -echo -ne "\033]11;#00ff00\007" -``` - -## Change Cursor Color - -This command should enable a red cursor color: - -```bash -echo -ne "\033]12;#ff0000\007" -``` - -## Query Color Scheme - -These two commands should print out the currently active color scheme: - -```bash -echo -ne "\033]10;?\033\\" -echo -ne "\033]11;?\033\\" -``` - -## Query Cursor Position - -This command should print out the current cursor position: - -```bash -echo -ne "\033[6n" -``` - -## Set Window Title - -This command should set the window title to "Test": - -```bash -echo -ne "\033]2;Test\007" && sleep 10 -``` - -## Bracketed paste - -Enter this command, then paste a word from the clipboard. The text -displayed on the terminal should contain the codes `200~` and `201~`: - -```bash -echo -ne "\033[?2004h" && sleep 10 -``` - -## Trigger Notification - -This command should trigger a notification: - -```bash -echo -ne "\033]777;notify;Title;Body\033\\" -``` diff --git a/vendor/github.com/muesli/termenv/ansicolors.go b/vendor/github.com/muesli/termenv/ansicolors.go deleted file mode 100644 index 1a301b0..0000000 --- a/vendor/github.com/muesli/termenv/ansicolors.go +++ /dev/null @@ -1,281 +0,0 @@ -package termenv - -// ANSI color codes. -const ( - ANSIBlack ANSIColor = iota - ANSIRed - ANSIGreen - ANSIYellow - ANSIBlue - ANSIMagenta - ANSICyan - ANSIWhite - ANSIBrightBlack - ANSIBrightRed - ANSIBrightGreen - ANSIBrightYellow - ANSIBrightBlue - ANSIBrightMagenta - ANSIBrightCyan - ANSIBrightWhite -) - -// RGB values of ANSI colors (0-255). -var ansiHex = []string{ - "#000000", - "#800000", - "#008000", - "#808000", - "#000080", - "#800080", - "#008080", - "#c0c0c0", - "#808080", - "#ff0000", - "#00ff00", - "#ffff00", - "#0000ff", - "#ff00ff", - "#00ffff", - "#ffffff", - "#000000", - "#00005f", - "#000087", - "#0000af", - "#0000d7", - "#0000ff", - "#005f00", - "#005f5f", - "#005f87", - "#005faf", - "#005fd7", - "#005fff", - "#008700", - "#00875f", - "#008787", - "#0087af", - "#0087d7", - "#0087ff", - "#00af00", - "#00af5f", - "#00af87", - "#00afaf", - "#00afd7", - "#00afff", - "#00d700", - "#00d75f", - "#00d787", - "#00d7af", - "#00d7d7", - "#00d7ff", - "#00ff00", - "#00ff5f", - "#00ff87", - "#00ffaf", - "#00ffd7", - "#00ffff", - "#5f0000", - "#5f005f", - "#5f0087", - "#5f00af", - "#5f00d7", - "#5f00ff", - "#5f5f00", - "#5f5f5f", - "#5f5f87", - "#5f5faf", - "#5f5fd7", - "#5f5fff", - "#5f8700", - "#5f875f", - "#5f8787", - "#5f87af", - "#5f87d7", - "#5f87ff", - "#5faf00", - "#5faf5f", - "#5faf87", - "#5fafaf", - "#5fafd7", - "#5fafff", - "#5fd700", - "#5fd75f", - "#5fd787", - "#5fd7af", - "#5fd7d7", - "#5fd7ff", - "#5fff00", - "#5fff5f", - "#5fff87", - "#5fffaf", - "#5fffd7", - "#5fffff", - "#870000", - "#87005f", - "#870087", - "#8700af", - "#8700d7", - "#8700ff", - "#875f00", - "#875f5f", - "#875f87", - "#875faf", - "#875fd7", - "#875fff", - "#878700", - "#87875f", - "#878787", - "#8787af", - "#8787d7", - "#8787ff", - "#87af00", - "#87af5f", - "#87af87", - "#87afaf", - "#87afd7", - "#87afff", - "#87d700", - "#87d75f", - "#87d787", - "#87d7af", - "#87d7d7", - "#87d7ff", - "#87ff00", - "#87ff5f", - "#87ff87", - "#87ffaf", - "#87ffd7", - "#87ffff", - "#af0000", - "#af005f", - "#af0087", - "#af00af", - "#af00d7", - "#af00ff", - "#af5f00", - "#af5f5f", - "#af5f87", - "#af5faf", - "#af5fd7", - "#af5fff", - "#af8700", - "#af875f", - "#af8787", - "#af87af", - "#af87d7", - "#af87ff", - "#afaf00", - "#afaf5f", - "#afaf87", - "#afafaf", - "#afafd7", - "#afafff", - "#afd700", - "#afd75f", - "#afd787", - "#afd7af", - "#afd7d7", - "#afd7ff", - "#afff00", - "#afff5f", - "#afff87", - "#afffaf", - "#afffd7", - "#afffff", - "#d70000", - "#d7005f", - "#d70087", - "#d700af", - "#d700d7", - "#d700ff", - "#d75f00", - "#d75f5f", - "#d75f87", - "#d75faf", - "#d75fd7", - "#d75fff", - "#d78700", - "#d7875f", - "#d78787", - "#d787af", - "#d787d7", - "#d787ff", - "#d7af00", - "#d7af5f", - "#d7af87", - "#d7afaf", - "#d7afd7", - "#d7afff", - "#d7d700", - "#d7d75f", - "#d7d787", - "#d7d7af", - "#d7d7d7", - "#d7d7ff", - "#d7ff00", - "#d7ff5f", - "#d7ff87", - "#d7ffaf", - "#d7ffd7", - "#d7ffff", - "#ff0000", - "#ff005f", - "#ff0087", - "#ff00af", - "#ff00d7", - "#ff00ff", - "#ff5f00", - "#ff5f5f", - "#ff5f87", - "#ff5faf", - "#ff5fd7", - "#ff5fff", - "#ff8700", - "#ff875f", - "#ff8787", - "#ff87af", - "#ff87d7", - "#ff87ff", - "#ffaf00", - "#ffaf5f", - "#ffaf87", - "#ffafaf", - "#ffafd7", - "#ffafff", - "#ffd700", - "#ffd75f", - "#ffd787", - "#ffd7af", - "#ffd7d7", - "#ffd7ff", - "#ffff00", - "#ffff5f", - "#ffff87", - "#ffffaf", - "#ffffd7", - "#ffffff", - "#080808", - "#121212", - "#1c1c1c", - "#262626", - "#303030", - "#3a3a3a", - "#444444", - "#4e4e4e", - "#585858", - "#626262", - "#6c6c6c", - "#767676", - "#808080", - "#8a8a8a", - "#949494", - "#9e9e9e", - "#a8a8a8", - "#b2b2b2", - "#bcbcbc", - "#c6c6c6", - "#d0d0d0", - "#dadada", - "#e4e4e4", - "#eeeeee", -} diff --git a/vendor/github.com/muesli/termenv/color.go b/vendor/github.com/muesli/termenv/color.go deleted file mode 100644 index 59e639b..0000000 --- a/vendor/github.com/muesli/termenv/color.go +++ /dev/null @@ -1,205 +0,0 @@ -package termenv - -import ( - "errors" - "fmt" - "math" - "strings" - - "github.com/lucasb-eyer/go-colorful" -) - -// ErrInvalidColor gets returned when a color is invalid. -var ErrInvalidColor = errors.New("invalid color") - -// Foreground and Background sequence codes. -const ( - Foreground = "38" - Background = "48" -) - -// Color is an interface implemented by all colors that can be converted to an -// ANSI sequence. -type Color interface { - // Sequence returns the ANSI Sequence for the color. - Sequence(bg bool) string -} - -// NoColor is a nop for terminals that don't support colors. -type NoColor struct{} - -func (c NoColor) String() string { - return "" -} - -// ANSIColor is a color (0-15) as defined by the ANSI Standard. -type ANSIColor int - -func (c ANSIColor) String() string { - return ansiHex[c] -} - -// ANSI256Color is a color (16-255) as defined by the ANSI Standard. -type ANSI256Color int - -func (c ANSI256Color) String() string { - return ansiHex[c] -} - -// RGBColor is a hex-encoded color, e.g. "#abcdef". -type RGBColor string - -// ConvertToRGB converts a Color to a colorful.Color. -func ConvertToRGB(c Color) colorful.Color { - var hex string - switch v := c.(type) { - case RGBColor: - hex = string(v) - case ANSIColor: - hex = ansiHex[v] - case ANSI256Color: - hex = ansiHex[v] - } - - ch, _ := colorful.Hex(hex) - return ch -} - -// Sequence returns the ANSI Sequence for the color. -func (c NoColor) Sequence(_ bool) string { - return "" -} - -// Sequence returns the ANSI Sequence for the color. -// -//nolint:mnd -func (c ANSIColor) Sequence(bg bool) string { - col := int(c) - bgMod := func(c int) int { - if bg { - return c + 10 - } - return c - } - - if col < 8 { - return fmt.Sprintf("%d", bgMod(col)+30) //nolint:mnd - } - return fmt.Sprintf("%d", bgMod(col-8)+90) //nolint:mnd -} - -// Sequence returns the ANSI Sequence for the color. -func (c ANSI256Color) Sequence(bg bool) string { - prefix := Foreground - if bg { - prefix = Background - } - return fmt.Sprintf("%s;5;%d", prefix, c) -} - -// Sequence returns the ANSI Sequence for the color. -func (c RGBColor) Sequence(bg bool) string { - f, err := colorful.Hex(string(c)) - if err != nil { - return "" - } - - prefix := Foreground - if bg { - prefix = Background - } - return fmt.Sprintf("%s;2;%d;%d;%d", prefix, uint8(f.R*255), uint8(f.G*255), uint8(f.B*255)) //nolint:mnd -} - -func xTermColor(s string) (RGBColor, error) { - if len(s) < 24 || len(s) > 25 { - return RGBColor(""), ErrInvalidColor - } - - switch { - case strings.HasSuffix(s, string(BEL)): - s = strings.TrimSuffix(s, string(BEL)) - case strings.HasSuffix(s, string(ESC)): - s = strings.TrimSuffix(s, string(ESC)) - case strings.HasSuffix(s, ST): - s = strings.TrimSuffix(s, ST) - default: - return RGBColor(""), ErrInvalidColor - } - - s = s[4:] - - prefix := ";rgb:" - if !strings.HasPrefix(s, prefix) { - return RGBColor(""), ErrInvalidColor - } - s = strings.TrimPrefix(s, prefix) - - h := strings.Split(s, "/") - hex := fmt.Sprintf("#%s%s%s", h[0][:2], h[1][:2], h[2][:2]) - return RGBColor(hex), nil -} - -func ansi256ToANSIColor(c ANSI256Color) ANSIColor { - var r int - md := math.MaxFloat64 - - h, _ := colorful.Hex(ansiHex[c]) - for i := 0; i <= 15; i++ { - hb, _ := colorful.Hex(ansiHex[i]) - d := h.DistanceHSLuv(hb) - - if d < md { - md = d - r = i - } - } - - return ANSIColor(r) -} - -//nolint:mnd -func hexToANSI256Color(c colorful.Color) ANSI256Color { - v2ci := func(v float64) int { - if v < 48 { - return 0 - } - if v < 115 { - return 1 - } - return int((v - 35) / 40) - } - - // Calculate the nearest 0-based color index at 16..231 - r := v2ci(c.R * 255.0) // 0..5 each - g := v2ci(c.G * 255.0) - b := v2ci(c.B * 255.0) - ci := 36*r + 6*g + b /* 0..215 */ - - // Calculate the represented colors back from the index - i2cv := [6]int{0, 0x5f, 0x87, 0xaf, 0xd7, 0xff} - cr := i2cv[r] // r/g/b, 0..255 each - cg := i2cv[g] - cb := i2cv[b] - - // Calculate the nearest 0-based gray index at 232..255 - var grayIdx int - average := (r + g + b) / 3 - if average > 238 { - grayIdx = 23 - } else { - grayIdx = (average - 3) / 10 // 0..23 - } - gv := 8 + 10*grayIdx // same value for r/g/b, 0..255 - - // Return the one which is nearer to the original input rgb value - c2 := colorful.Color{R: float64(cr) / 255.0, G: float64(cg) / 255.0, B: float64(cb) / 255.0} - g2 := colorful.Color{R: float64(gv) / 255.0, G: float64(gv) / 255.0, B: float64(gv) / 255.0} - colorDist := c.DistanceHSLuv(c2) - grayDist := c.DistanceHSLuv(g2) - - if colorDist <= grayDist { - return ANSI256Color(16 + ci) - } - return ANSI256Color(232 + grayIdx) -} diff --git a/vendor/github.com/muesli/termenv/constants_linux.go b/vendor/github.com/muesli/termenv/constants_linux.go deleted file mode 100644 index 4262f03..0000000 --- a/vendor/github.com/muesli/termenv/constants_linux.go +++ /dev/null @@ -1,8 +0,0 @@ -package termenv - -import "golang.org/x/sys/unix" - -const ( - tcgetattr = unix.TCGETS - tcsetattr = unix.TCSETS -) diff --git a/vendor/github.com/muesli/termenv/constants_solaris.go b/vendor/github.com/muesli/termenv/constants_solaris.go deleted file mode 100644 index 4262f03..0000000 --- a/vendor/github.com/muesli/termenv/constants_solaris.go +++ /dev/null @@ -1,8 +0,0 @@ -package termenv - -import "golang.org/x/sys/unix" - -const ( - tcgetattr = unix.TCGETS - tcsetattr = unix.TCSETS -) diff --git a/vendor/github.com/muesli/termenv/constants_unix.go b/vendor/github.com/muesli/termenv/constants_unix.go deleted file mode 100644 index 5d66424..0000000 --- a/vendor/github.com/muesli/termenv/constants_unix.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && !solaris && !illumos -// +build darwin dragonfly freebsd netbsd openbsd -// +build !solaris -// +build !illumos - -package termenv - -import "golang.org/x/sys/unix" - -const ( - tcgetattr = unix.TIOCGETA - tcsetattr = unix.TIOCSETA -) diff --git a/vendor/github.com/muesli/termenv/constants_zos.go b/vendor/github.com/muesli/termenv/constants_zos.go deleted file mode 100644 index 4262f03..0000000 --- a/vendor/github.com/muesli/termenv/constants_zos.go +++ /dev/null @@ -1,8 +0,0 @@ -package termenv - -import "golang.org/x/sys/unix" - -const ( - tcgetattr = unix.TCGETS - tcsetattr = unix.TCSETS -) diff --git a/vendor/github.com/muesli/termenv/copy.go b/vendor/github.com/muesli/termenv/copy.go deleted file mode 100644 index 4bf5c9f..0000000 --- a/vendor/github.com/muesli/termenv/copy.go +++ /dev/null @@ -1,37 +0,0 @@ -package termenv - -import ( - "strings" - - "github.com/aymanbagabas/go-osc52/v2" -) - -// Copy copies text to clipboard using OSC 52 escape sequence. -func (o Output) Copy(str string) { - s := osc52.New(str) - if strings.HasPrefix(o.environ.Getenv("TERM"), "screen") { - s = s.Screen() - } - _, _ = s.WriteTo(o) -} - -// CopyPrimary copies text to primary clipboard (X11) using OSC 52 escape -// sequence. -func (o Output) CopyPrimary(str string) { - s := osc52.New(str).Primary() - if strings.HasPrefix(o.environ.Getenv("TERM"), "screen") { - s = s.Screen() - } - _, _ = s.WriteTo(o) -} - -// Copy copies text to clipboard using OSC 52 escape sequence. -func Copy(str string) { - output.Copy(str) -} - -// CopyPrimary copies text to primary clipboard (X11) using OSC 52 escape -// sequence. -func CopyPrimary(str string) { - output.CopyPrimary(str) -} diff --git a/vendor/github.com/muesli/termenv/hyperlink.go b/vendor/github.com/muesli/termenv/hyperlink.go deleted file mode 100644 index 97e760a..0000000 --- a/vendor/github.com/muesli/termenv/hyperlink.go +++ /dev/null @@ -1,11 +0,0 @@ -package termenv - -// Hyperlink creates a hyperlink using OSC8. -func Hyperlink(link, name string) string { - return output.Hyperlink(link, name) -} - -// Hyperlink creates a hyperlink using OSC8. -func (o *Output) Hyperlink(link, name string) string { - return OSC + "8;;" + link + ST + name + OSC + "8;;" + ST -} diff --git a/vendor/github.com/muesli/termenv/notification.go b/vendor/github.com/muesli/termenv/notification.go deleted file mode 100644 index 2a8cf06..0000000 --- a/vendor/github.com/muesli/termenv/notification.go +++ /dev/null @@ -1,11 +0,0 @@ -package termenv - -// Notify triggers a notification using OSC777. -func Notify(title, body string) { - output.Notify(title, body) -} - -// Notify triggers a notification using OSC777. -func (o *Output) Notify(title, body string) { - _, _ = o.WriteString(OSC + "777;notify;" + title + ";" + body + ST) -} diff --git a/vendor/github.com/muesli/termenv/output.go b/vendor/github.com/muesli/termenv/output.go deleted file mode 100644 index e4434de..0000000 --- a/vendor/github.com/muesli/termenv/output.go +++ /dev/null @@ -1,205 +0,0 @@ -package termenv - -import ( - "io" - "os" - "sync" -) - -// output is the default global output. -var output = NewOutput(os.Stdout) - -// File represents a file descriptor. -// -// Deprecated: Use *os.File instead. -type File interface { - io.ReadWriter - Fd() uintptr -} - -// OutputOption sets an option on Output. -type OutputOption = func(*Output) - -// Output is a terminal output. -type Output struct { - Profile - w io.Writer - environ Environ - - assumeTTY bool - unsafe bool - cache bool - fgSync *sync.Once - fgColor Color - bgSync *sync.Once - bgColor Color -} - -// Environ is an interface for getting environment variables. -type Environ interface { - Environ() []string - Getenv(string) string -} - -type osEnviron struct{} - -func (oe *osEnviron) Environ() []string { - return os.Environ() -} - -func (oe *osEnviron) Getenv(key string) string { - return os.Getenv(key) -} - -// DefaultOutput returns the default global output. -func DefaultOutput() *Output { - return output -} - -// SetDefaultOutput sets the default global output. -func SetDefaultOutput(o *Output) { - output = o -} - -// NewOutput returns a new Output for the given writer. -func NewOutput(w io.Writer, opts ...OutputOption) *Output { - o := &Output{ - w: w, - environ: &osEnviron{}, - Profile: -1, - fgSync: &sync.Once{}, - fgColor: NoColor{}, - bgSync: &sync.Once{}, - bgColor: NoColor{}, - } - - if o.w == nil { - o.w = os.Stdout - } - for _, opt := range opts { - opt(o) - } - if o.Profile < 0 { - o.Profile = o.EnvColorProfile() - } - - return o -} - -// WithEnvironment returns a new OutputOption for the given environment. -func WithEnvironment(environ Environ) OutputOption { - return func(o *Output) { - o.environ = environ - } -} - -// WithProfile returns a new OutputOption for the given profile. -func WithProfile(profile Profile) OutputOption { - return func(o *Output) { - o.Profile = profile - } -} - -// WithColorCache returns a new OutputOption with fore- and background color values -// pre-fetched and cached. -func WithColorCache(v bool) OutputOption { - return func(o *Output) { - o.cache = v - - // cache the values now - _ = o.ForegroundColor() - _ = o.BackgroundColor() - } -} - -// WithTTY returns a new OutputOption to assume whether or not the output is a TTY. -// This is useful when mocking console output. -func WithTTY(v bool) OutputOption { - return func(o *Output) { - o.assumeTTY = v - } -} - -// WithUnsafe returns a new OutputOption with unsafe mode enabled. Unsafe mode doesn't -// check whether or not the terminal is a TTY. -// -// This option supersedes WithTTY. -// -// This is useful when mocking console output and enforcing ANSI escape output -// e.g. on SSH sessions. -func WithUnsafe() OutputOption { - return func(o *Output) { - o.unsafe = true - } -} - -// ForegroundColor returns the terminal's default foreground color. -func (o *Output) ForegroundColor() Color { - f := func() { - if !o.isTTY() { - return - } - - o.fgColor = o.foregroundColor() - } - - if o.cache { - o.fgSync.Do(f) - } else { - f() - } - - return o.fgColor -} - -// BackgroundColor returns the terminal's default background color. -func (o *Output) BackgroundColor() Color { - f := func() { - if !o.isTTY() { - return - } - - o.bgColor = o.backgroundColor() - } - - if o.cache { - o.bgSync.Do(f) - } else { - f() - } - - return o.bgColor -} - -// HasDarkBackground returns whether terminal uses a dark-ish background. -func (o *Output) HasDarkBackground() bool { - c := ConvertToRGB(o.BackgroundColor()) - _, _, l := c.Hsl() - return l < 0.5 //nolint:mnd -} - -// TTY returns the terminal's file descriptor. This may be nil if the output is -// not a terminal. -// -// Deprecated: Use Writer() instead. -func (o Output) TTY() File { - if f, ok := o.w.(File); ok { - return f - } - return nil -} - -// Writer returns the underlying writer. This may be of type io.Writer, -// io.ReadWriter, or *os.File. -func (o Output) Writer() io.Writer { - return o.w -} - -func (o Output) Write(p []byte) (int, error) { - return o.w.Write(p) //nolint:wrapcheck -} - -// WriteString writes the given string to the output. -func (o Output) WriteString(s string) (int, error) { - return o.Write([]byte(s)) -} diff --git a/vendor/github.com/muesli/termenv/profile.go b/vendor/github.com/muesli/termenv/profile.go deleted file mode 100644 index 7d38f5f..0000000 --- a/vendor/github.com/muesli/termenv/profile.go +++ /dev/null @@ -1,112 +0,0 @@ -package termenv - -import ( - "image/color" - "strconv" - "strings" - - "github.com/lucasb-eyer/go-colorful" -) - -// Profile is a color profile: Ascii, ANSI, ANSI256, or TrueColor. -type Profile int - -const ( - // TrueColor, 24-bit color profile. - TrueColor = Profile(iota) - // ANSI256, 8-bit color profile. - ANSI256 - // ANSI, 4-bit color profile. - ANSI - // Ascii, uncolored profile. - Ascii //nolint:revive -) - -// Name returns the profile name as a string. -func (p Profile) Name() string { - switch p { - case Ascii: - return "Ascii" - case ANSI: - return "ANSI" - case ANSI256: - return "ANSI256" - case TrueColor: - return "TrueColor" - } - return "Unknown" -} - -// String returns a new Style. -func (p Profile) String(s ...string) Style { - return Style{ - profile: p, - string: strings.Join(s, " "), - } -} - -// Convert transforms a given Color to a Color supported within the Profile. -func (p Profile) Convert(c Color) Color { - if p == Ascii { - return NoColor{} - } - - switch v := c.(type) { - case ANSIColor: - return v - - case ANSI256Color: - if p == ANSI { - return ansi256ToANSIColor(v) - } - return v - - case RGBColor: - h, err := colorful.Hex(string(v)) - if err != nil { - return nil - } - if p != TrueColor { - ac := hexToANSI256Color(h) - if p == ANSI { - return ansi256ToANSIColor(ac) - } - return ac - } - return v - } - - return c -} - -// Color creates a Color from a string. Valid inputs are hex colors, as well as -// ANSI color codes (0-15, 16-255). -func (p Profile) Color(s string) Color { - if len(s) == 0 { - return nil - } - - var c Color - if strings.HasPrefix(s, "#") { - c = RGBColor(s) - } else { - i, err := strconv.Atoi(s) - if err != nil { - return nil - } - - if i < 16 { //nolint:mnd - c = ANSIColor(i) - } else { - c = ANSI256Color(i) - } - } - - return p.Convert(c) -} - -// FromColor creates a Color from a color.Color. -func (p Profile) FromColor(c color.Color) Color { - col, _ := colorful.MakeColor(c) - return p.Color(col.Hex()) -} diff --git a/vendor/github.com/muesli/termenv/screen.go b/vendor/github.com/muesli/termenv/screen.go deleted file mode 100644 index 75c11d0..0000000 --- a/vendor/github.com/muesli/termenv/screen.go +++ /dev/null @@ -1,590 +0,0 @@ -package termenv - -import ( - "fmt" - "strings" -) - -// Sequence definitions. -const ( - // Cursor positioning. - CursorUpSeq = "%dA" - CursorDownSeq = "%dB" - CursorForwardSeq = "%dC" - CursorBackSeq = "%dD" - CursorNextLineSeq = "%dE" - CursorPreviousLineSeq = "%dF" - CursorHorizontalSeq = "%dG" - CursorPositionSeq = "%d;%dH" - EraseDisplaySeq = "%dJ" - EraseLineSeq = "%dK" - ScrollUpSeq = "%dS" - ScrollDownSeq = "%dT" - SaveCursorPositionSeq = "s" - RestoreCursorPositionSeq = "u" - ChangeScrollingRegionSeq = "%d;%dr" - InsertLineSeq = "%dL" - DeleteLineSeq = "%dM" - - // Explicit values for EraseLineSeq. - EraseLineRightSeq = "0K" - EraseLineLeftSeq = "1K" - EraseEntireLineSeq = "2K" - - // Mouse. - EnableMousePressSeq = "?9h" // press only (X10) - DisableMousePressSeq = "?9l" - EnableMouseSeq = "?1000h" // press, release, wheel - DisableMouseSeq = "?1000l" - EnableMouseHiliteSeq = "?1001h" // highlight - DisableMouseHiliteSeq = "?1001l" - EnableMouseCellMotionSeq = "?1002h" // press, release, move on pressed, wheel - DisableMouseCellMotionSeq = "?1002l" - EnableMouseAllMotionSeq = "?1003h" // press, release, move, wheel - DisableMouseAllMotionSeq = "?1003l" - EnableMouseExtendedModeSeq = "?1006h" // press, release, move, wheel, extended coordinates - DisableMouseExtendedModeSeq = "?1006l" - EnableMousePixelsModeSeq = "?1016h" // press, release, move, wheel, extended pixel coordinates - DisableMousePixelsModeSeq = "?1016l" - - // Screen. - RestoreScreenSeq = "?47l" - SaveScreenSeq = "?47h" - AltScreenSeq = "?1049h" - ExitAltScreenSeq = "?1049l" - - // Bracketed paste. - // https://en.wikipedia.org/wiki/Bracketed-paste - EnableBracketedPasteSeq = "?2004h" - DisableBracketedPasteSeq = "?2004l" - StartBracketedPasteSeq = "200~" - EndBracketedPasteSeq = "201~" - - // Session. - SetWindowTitleSeq = "2;%s" + string(BEL) - SetForegroundColorSeq = "10;%s" + string(BEL) - SetBackgroundColorSeq = "11;%s" + string(BEL) - SetCursorColorSeq = "12;%s" + string(BEL) - ShowCursorSeq = "?25h" - HideCursorSeq = "?25l" -) - -// Reset the terminal to its default style, removing any active styles. -func (o Output) Reset() { - fmt.Fprint(o.w, CSI+ResetSeq+"m") //nolint:errcheck -} - -// SetForegroundColor sets the default foreground color. -func (o Output) SetForegroundColor(color Color) { - fmt.Fprintf(o.w, OSC+SetForegroundColorSeq, color) //nolint:errcheck -} - -// SetBackgroundColor sets the default background color. -func (o Output) SetBackgroundColor(color Color) { - fmt.Fprintf(o.w, OSC+SetBackgroundColorSeq, color) //nolint:errcheck -} - -// SetCursorColor sets the cursor color. -func (o Output) SetCursorColor(color Color) { - fmt.Fprintf(o.w, OSC+SetCursorColorSeq, color) //nolint:errcheck -} - -// RestoreScreen restores a previously saved screen state. -func (o Output) RestoreScreen() { - fmt.Fprint(o.w, CSI+RestoreScreenSeq) //nolint:errcheck -} - -// SaveScreen saves the screen state. -func (o Output) SaveScreen() { - fmt.Fprint(o.w, CSI+SaveScreenSeq) //nolint:errcheck -} - -// AltScreen switches to the alternate screen buffer. The former view can be -// restored with ExitAltScreen(). -func (o Output) AltScreen() { - fmt.Fprint(o.w, CSI+AltScreenSeq) //nolint:errcheck -} - -// ExitAltScreen exits the alternate screen buffer and returns to the former -// terminal view. -func (o Output) ExitAltScreen() { - fmt.Fprint(o.w, CSI+ExitAltScreenSeq) //nolint:errcheck -} - -// ClearScreen clears the visible portion of the terminal. -func (o Output) ClearScreen() { - fmt.Fprintf(o.w, CSI+EraseDisplaySeq, 2) //nolint:errcheck,mnd - o.MoveCursor(1, 1) -} - -// MoveCursor moves the cursor to a given position. -func (o Output) MoveCursor(row int, column int) { - fmt.Fprintf(o.w, CSI+CursorPositionSeq, row, column) //nolint:errcheck -} - -// HideCursor hides the cursor. -func (o Output) HideCursor() { - fmt.Fprint(o.w, CSI+HideCursorSeq) //nolint:errcheck -} - -// ShowCursor shows the cursor. -func (o Output) ShowCursor() { - fmt.Fprint(o.w, CSI+ShowCursorSeq) //nolint:errcheck -} - -// SaveCursorPosition saves the cursor position. -func (o Output) SaveCursorPosition() { - fmt.Fprint(o.w, CSI+SaveCursorPositionSeq) //nolint:errcheck -} - -// RestoreCursorPosition restores a saved cursor position. -func (o Output) RestoreCursorPosition() { - fmt.Fprint(o.w, CSI+RestoreCursorPositionSeq) //nolint:errcheck -} - -// CursorUp moves the cursor up a given number of lines. -func (o Output) CursorUp(n int) { - fmt.Fprintf(o.w, CSI+CursorUpSeq, n) //nolint:errcheck -} - -// CursorDown moves the cursor down a given number of lines. -func (o Output) CursorDown(n int) { - fmt.Fprintf(o.w, CSI+CursorDownSeq, n) //nolint:errcheck -} - -// CursorForward moves the cursor up a given number of lines. -func (o Output) CursorForward(n int) { - fmt.Fprintf(o.w, CSI+CursorForwardSeq, n) //nolint:errcheck -} - -// CursorBack moves the cursor backwards a given number of cells. -func (o Output) CursorBack(n int) { - fmt.Fprintf(o.w, CSI+CursorBackSeq, n) //nolint:errcheck -} - -// CursorNextLine moves the cursor down a given number of lines and places it at -// the beginning of the line. -func (o Output) CursorNextLine(n int) { - fmt.Fprintf(o.w, CSI+CursorNextLineSeq, n) //nolint:errcheck -} - -// CursorPrevLine moves the cursor up a given number of lines and places it at -// the beginning of the line. -func (o Output) CursorPrevLine(n int) { - fmt.Fprintf(o.w, CSI+CursorPreviousLineSeq, n) //nolint:errcheck -} - -// ClearLine clears the current line. -func (o Output) ClearLine() { - fmt.Fprint(o.w, CSI+EraseEntireLineSeq) //nolint:errcheck -} - -// ClearLineLeft clears the line to the left of the cursor. -func (o Output) ClearLineLeft() { - fmt.Fprint(o.w, CSI+EraseLineLeftSeq) //nolint:errcheck -} - -// ClearLineRight clears the line to the right of the cursor. -func (o Output) ClearLineRight() { - fmt.Fprint(o.w, CSI+EraseLineRightSeq) //nolint:errcheck -} - -// ClearLines clears a given number of lines. -func (o Output) ClearLines(n int) { - clearLine := fmt.Sprintf(CSI+EraseLineSeq, 2) //nolint:mnd - cursorUp := fmt.Sprintf(CSI+CursorUpSeq, 1) - fmt.Fprint(o.w, clearLine+strings.Repeat(cursorUp+clearLine, n)) //nolint:errcheck -} - -// ChangeScrollingRegion sets the scrolling region of the terminal. -func (o Output) ChangeScrollingRegion(top, bottom int) { - fmt.Fprintf(o.w, CSI+ChangeScrollingRegionSeq, top, bottom) //nolint:errcheck -} - -// InsertLines inserts the given number of lines at the top of the scrollable -// region, pushing lines below down. -func (o Output) InsertLines(n int) { - fmt.Fprintf(o.w, CSI+InsertLineSeq, n) //nolint:errcheck -} - -// DeleteLines deletes the given number of lines, pulling any lines in -// the scrollable region below up. -func (o Output) DeleteLines(n int) { - fmt.Fprintf(o.w, CSI+DeleteLineSeq, n) //nolint:errcheck -} - -// EnableMousePress enables X10 mouse mode. Button press events are sent only. -func (o Output) EnableMousePress() { - fmt.Fprint(o.w, CSI+EnableMousePressSeq) //nolint:errcheck -} - -// DisableMousePress disables X10 mouse mode. -func (o Output) DisableMousePress() { - fmt.Fprint(o.w, CSI+DisableMousePressSeq) //nolint:errcheck -} - -// EnableMouse enables Mouse Tracking mode. -func (o Output) EnableMouse() { - fmt.Fprint(o.w, CSI+EnableMouseSeq) //nolint:errcheck -} - -// DisableMouse disables Mouse Tracking mode. -func (o Output) DisableMouse() { - fmt.Fprint(o.w, CSI+DisableMouseSeq) //nolint:errcheck -} - -// EnableMouseHilite enables Hilite Mouse Tracking mode. -func (o Output) EnableMouseHilite() { - fmt.Fprint(o.w, CSI+EnableMouseHiliteSeq) //nolint:errcheck -} - -// DisableMouseHilite disables Hilite Mouse Tracking mode. -func (o Output) DisableMouseHilite() { - fmt.Fprint(o.w, CSI+DisableMouseHiliteSeq) //nolint:errcheck -} - -// EnableMouseCellMotion enables Cell Motion Mouse Tracking mode. -func (o Output) EnableMouseCellMotion() { - fmt.Fprint(o.w, CSI+EnableMouseCellMotionSeq) //nolint:errcheck -} - -// DisableMouseCellMotion disables Cell Motion Mouse Tracking mode. -func (o Output) DisableMouseCellMotion() { - fmt.Fprint(o.w, CSI+DisableMouseCellMotionSeq) //nolint:errcheck -} - -// EnableMouseAllMotion enables All Motion Mouse mode. -func (o Output) EnableMouseAllMotion() { - fmt.Fprint(o.w, CSI+EnableMouseAllMotionSeq) //nolint:errcheck -} - -// DisableMouseAllMotion disables All Motion Mouse mode. -func (o Output) DisableMouseAllMotion() { - fmt.Fprint(o.w, CSI+DisableMouseAllMotionSeq) //nolint:errcheck -} - -// EnableMouseExtendedMotion enables Extended Mouse mode (SGR). This should be -// enabled in conjunction with EnableMouseCellMotion, and EnableMouseAllMotion. -func (o Output) EnableMouseExtendedMode() { - fmt.Fprint(o.w, CSI+EnableMouseExtendedModeSeq) //nolint:errcheck -} - -// DisableMouseExtendedMotion disables Extended Mouse mode (SGR). -func (o Output) DisableMouseExtendedMode() { - fmt.Fprint(o.w, CSI+DisableMouseExtendedModeSeq) //nolint:errcheck -} - -// EnableMousePixelsMotion enables Pixel Motion Mouse mode (SGR-Pixels). This -// should be enabled in conjunction with EnableMouseCellMotion, and -// EnableMouseAllMotion. -func (o Output) EnableMousePixelsMode() { - fmt.Fprint(o.w, CSI+EnableMousePixelsModeSeq) //nolint:errcheck -} - -// DisableMousePixelsMotion disables Pixel Motion Mouse mode (SGR-Pixels). -func (o Output) DisableMousePixelsMode() { - fmt.Fprint(o.w, CSI+DisableMousePixelsModeSeq) //nolint:errcheck -} - -// SetWindowTitle sets the terminal window title. -func (o Output) SetWindowTitle(title string) { - fmt.Fprintf(o.w, OSC+SetWindowTitleSeq, title) //nolint:errcheck -} - -// EnableBracketedPaste enables bracketed paste. -func (o Output) EnableBracketedPaste() { - fmt.Fprintf(o.w, CSI+EnableBracketedPasteSeq) //nolint:errcheck -} - -// DisableBracketedPaste disables bracketed paste. -func (o Output) DisableBracketedPaste() { - fmt.Fprintf(o.w, CSI+DisableBracketedPasteSeq) //nolint:errcheck -} - -// Legacy functions. - -// Reset the terminal to its default style, removing any active styles. -// -// Deprecated: please use termenv.Output instead. -func Reset() { - output.Reset() -} - -// SetForegroundColor sets the default foreground color. -// -// Deprecated: please use termenv.Output instead. -func SetForegroundColor(color Color) { - output.SetForegroundColor(color) -} - -// SetBackgroundColor sets the default background color. -// -// Deprecated: please use termenv.Output instead. -func SetBackgroundColor(color Color) { - output.SetBackgroundColor(color) -} - -// SetCursorColor sets the cursor color. -// -// Deprecated: please use termenv.Output instead. -func SetCursorColor(color Color) { - output.SetCursorColor(color) -} - -// RestoreScreen restores a previously saved screen state. -// -// Deprecated: please use termenv.Output instead. -func RestoreScreen() { - output.RestoreScreen() -} - -// SaveScreen saves the screen state. -// -// Deprecated: please use termenv.Output instead. -func SaveScreen() { - output.SaveScreen() -} - -// AltScreen switches to the alternate screen buffer. The former view can be -// restored with ExitAltScreen(). -// -// Deprecated: please use termenv.Output instead. -func AltScreen() { - output.AltScreen() -} - -// ExitAltScreen exits the alternate screen buffer and returns to the former -// terminal view. -// -// Deprecated: please use termenv.Output instead. -func ExitAltScreen() { - output.ExitAltScreen() -} - -// ClearScreen clears the visible portion of the terminal. -// -// Deprecated: please use termenv.Output instead. -func ClearScreen() { - output.ClearScreen() -} - -// MoveCursor moves the cursor to a given position. -// -// Deprecated: please use termenv.Output instead. -func MoveCursor(row int, column int) { - output.MoveCursor(row, column) -} - -// HideCursor hides the cursor. -// -// Deprecated: please use termenv.Output instead. -func HideCursor() { - output.HideCursor() -} - -// ShowCursor shows the cursor. -// -// Deprecated: please use termenv.Output instead. -func ShowCursor() { - output.ShowCursor() -} - -// SaveCursorPosition saves the cursor position. -// -// Deprecated: please use termenv.Output instead. -func SaveCursorPosition() { - output.SaveCursorPosition() -} - -// RestoreCursorPosition restores a saved cursor position. -// -// Deprecated: please use termenv.Output instead. -func RestoreCursorPosition() { - output.RestoreCursorPosition() -} - -// CursorUp moves the cursor up a given number of lines. -// -// Deprecated: please use termenv.Output instead. -func CursorUp(n int) { - output.CursorUp(n) -} - -// CursorDown moves the cursor down a given number of lines. -// -// Deprecated: please use termenv.Output instead. -func CursorDown(n int) { - output.CursorDown(n) -} - -// CursorForward moves the cursor up a given number of lines. -// -// Deprecated: please use termenv.Output instead. -func CursorForward(n int) { - output.CursorForward(n) -} - -// CursorBack moves the cursor backwards a given number of cells. -// -// Deprecated: please use termenv.Output instead. -func CursorBack(n int) { - output.CursorBack(n) -} - -// CursorNextLine moves the cursor down a given number of lines and places it at -// the beginning of the line. -// -// Deprecated: please use termenv.Output instead. -func CursorNextLine(n int) { - output.CursorNextLine(n) -} - -// CursorPrevLine moves the cursor up a given number of lines and places it at -// the beginning of the line. -// -// Deprecated: please use termenv.Output instead. -func CursorPrevLine(n int) { - output.CursorPrevLine(n) -} - -// ClearLine clears the current line. -// -// Deprecated: please use termenv.Output instead. -func ClearLine() { - output.ClearLine() -} - -// ClearLineLeft clears the line to the left of the cursor. -// -// Deprecated: please use termenv.Output instead. -func ClearLineLeft() { - output.ClearLineLeft() -} - -// ClearLineRight clears the line to the right of the cursor. -// -// Deprecated: please use termenv.Output instead. -func ClearLineRight() { - output.ClearLineRight() -} - -// ClearLines clears a given number of lines. -// -// Deprecated: please use termenv.Output instead. -func ClearLines(n int) { - output.ClearLines(n) -} - -// ChangeScrollingRegion sets the scrolling region of the terminal. -// -// Deprecated: please use termenv.Output instead. -func ChangeScrollingRegion(top, bottom int) { - output.ChangeScrollingRegion(top, bottom) -} - -// InsertLines inserts the given number of lines at the top of the scrollable -// region, pushing lines below down. -// -// Deprecated: please use termenv.Output instead. -func InsertLines(n int) { - output.InsertLines(n) -} - -// DeleteLines deletes the given number of lines, pulling any lines in -// the scrollable region below up. -// -// Deprecated: please use termenv.Output instead. -func DeleteLines(n int) { - output.DeleteLines(n) -} - -// EnableMousePress enables X10 mouse mode. Button press events are sent only. -// -// Deprecated: please use termenv.Output instead. -func EnableMousePress() { - output.EnableMousePress() -} - -// DisableMousePress disables X10 mouse mode. -// -// Deprecated: please use termenv.Output instead. -func DisableMousePress() { - output.DisableMousePress() -} - -// EnableMouse enables Mouse Tracking mode. -// -// Deprecated: please use termenv.Output instead. -func EnableMouse() { - output.EnableMouse() -} - -// DisableMouse disables Mouse Tracking mode. -// -// Deprecated: please use termenv.Output instead. -func DisableMouse() { - output.DisableMouse() -} - -// EnableMouseHilite enables Hilite Mouse Tracking mode. -// -// Deprecated: please use termenv.Output instead. -func EnableMouseHilite() { - output.EnableMouseHilite() -} - -// DisableMouseHilite disables Hilite Mouse Tracking mode. -// -// Deprecated: please use termenv.Output instead. -func DisableMouseHilite() { - output.DisableMouseHilite() -} - -// EnableMouseCellMotion enables Cell Motion Mouse Tracking mode. -// -// Deprecated: please use termenv.Output instead. -func EnableMouseCellMotion() { - output.EnableMouseCellMotion() -} - -// DisableMouseCellMotion disables Cell Motion Mouse Tracking mode. -// -// Deprecated: please use termenv.Output instead. -func DisableMouseCellMotion() { - output.DisableMouseCellMotion() -} - -// EnableMouseAllMotion enables All Motion Mouse mode. -// -// Deprecated: please use termenv.Output instead. -func EnableMouseAllMotion() { - output.EnableMouseAllMotion() -} - -// DisableMouseAllMotion disables All Motion Mouse mode. -// -// Deprecated: please use termenv.Output instead. -func DisableMouseAllMotion() { - output.DisableMouseAllMotion() -} - -// SetWindowTitle sets the terminal window title. -// -// Deprecated: please use termenv.Output instead. -func SetWindowTitle(title string) { - output.SetWindowTitle(title) -} - -// EnableBracketedPaste enables bracketed paste. -// -// Deprecated: please use termenv.Output instead. -func EnableBracketedPaste() { - output.EnableBracketedPaste() -} - -// DisableBracketedPaste disables bracketed paste. -// -// Deprecated: please use termenv.Output instead. -func DisableBracketedPaste() { - output.DisableBracketedPaste() -} diff --git a/vendor/github.com/muesli/termenv/style.go b/vendor/github.com/muesli/termenv/style.go deleted file mode 100644 index dedc1f9..0000000 --- a/vendor/github.com/muesli/termenv/style.go +++ /dev/null @@ -1,126 +0,0 @@ -package termenv - -import ( - "fmt" - "strings" - - "github.com/rivo/uniseg" -) - -// Sequence definitions. -const ( - ResetSeq = "0" - BoldSeq = "1" - FaintSeq = "2" - ItalicSeq = "3" - UnderlineSeq = "4" - BlinkSeq = "5" - ReverseSeq = "7" - CrossOutSeq = "9" - OverlineSeq = "53" -) - -// Style is a string that various rendering styles can be applied to. -type Style struct { - profile Profile - string - styles []string -} - -// String returns a new Style. -func String(s ...string) Style { - return Style{ - profile: ANSI, - string: strings.Join(s, " "), - } -} - -func (t Style) String() string { - return t.Styled(t.string) -} - -// Styled renders s with all applied styles. -func (t Style) Styled(s string) string { - if t.profile == Ascii { - return s - } - if len(t.styles) == 0 { - return s - } - - seq := strings.Join(t.styles, ";") - if seq == "" { - return s - } - - return fmt.Sprintf("%s%sm%s%sm", CSI, seq, s, CSI+ResetSeq) -} - -// Foreground sets a foreground color. -func (t Style) Foreground(c Color) Style { - if c != nil { - t.styles = append(t.styles, c.Sequence(false)) - } - return t -} - -// Background sets a background color. -func (t Style) Background(c Color) Style { - if c != nil { - t.styles = append(t.styles, c.Sequence(true)) - } - return t -} - -// Bold enables bold rendering. -func (t Style) Bold() Style { - t.styles = append(t.styles, BoldSeq) - return t -} - -// Faint enables faint rendering. -func (t Style) Faint() Style { - t.styles = append(t.styles, FaintSeq) - return t -} - -// Italic enables italic rendering. -func (t Style) Italic() Style { - t.styles = append(t.styles, ItalicSeq) - return t -} - -// Underline enables underline rendering. -func (t Style) Underline() Style { - t.styles = append(t.styles, UnderlineSeq) - return t -} - -// Overline enables overline rendering. -func (t Style) Overline() Style { - t.styles = append(t.styles, OverlineSeq) - return t -} - -// Blink enables blink mode. -func (t Style) Blink() Style { - t.styles = append(t.styles, BlinkSeq) - return t -} - -// Reverse enables reverse color mode. -func (t Style) Reverse() Style { - t.styles = append(t.styles, ReverseSeq) - return t -} - -// CrossOut enables crossed-out rendering. -func (t Style) CrossOut() Style { - t.styles = append(t.styles, CrossOutSeq) - return t -} - -// Width returns the width required to print all runes in Style. -func (t Style) Width() int { - return uniseg.StringWidth(t.string) -} diff --git a/vendor/github.com/muesli/termenv/templatehelper.go b/vendor/github.com/muesli/termenv/templatehelper.go deleted file mode 100644 index 4c7c80f..0000000 --- a/vendor/github.com/muesli/termenv/templatehelper.go +++ /dev/null @@ -1,88 +0,0 @@ -package termenv - -import ( - "text/template" -) - -// TemplateFuncs returns template helpers for the given output. -func (o Output) TemplateFuncs() template.FuncMap { - return TemplateFuncs(o.Profile) -} - -// TemplateFuncs contains a few useful template helpers. -// -//nolint:mnd -func TemplateFuncs(p Profile) template.FuncMap { - if p == Ascii { - return noopTemplateFuncs - } - - return template.FuncMap{ - "Color": func(values ...interface{}) string { - s := p.String(values[len(values)-1].(string)) - switch len(values) { - case 2: - s = s.Foreground(p.Color(values[0].(string))) - case 3: - s = s. - Foreground(p.Color(values[0].(string))). - Background(p.Color(values[1].(string))) - } - - return s.String() - }, - "Foreground": func(values ...interface{}) string { - s := p.String(values[len(values)-1].(string)) - if len(values) == 2 { - s = s.Foreground(p.Color(values[0].(string))) - } - - return s.String() - }, - "Background": func(values ...interface{}) string { - s := p.String(values[len(values)-1].(string)) - if len(values) == 2 { - s = s.Background(p.Color(values[0].(string))) - } - - return s.String() - }, - "Bold": styleFunc(p, Style.Bold), - "Faint": styleFunc(p, Style.Faint), - "Italic": styleFunc(p, Style.Italic), - "Underline": styleFunc(p, Style.Underline), - "Overline": styleFunc(p, Style.Overline), - "Blink": styleFunc(p, Style.Blink), - "Reverse": styleFunc(p, Style.Reverse), - "CrossOut": styleFunc(p, Style.CrossOut), - } -} - -func styleFunc(p Profile, f func(Style) Style) func(...interface{}) string { - return func(values ...interface{}) string { - s := p.String(values[0].(string)) - return f(s).String() - } -} - -var noopTemplateFuncs = template.FuncMap{ - "Color": noColorFunc, - "Foreground": noColorFunc, - "Background": noColorFunc, - "Bold": noStyleFunc, - "Faint": noStyleFunc, - "Italic": noStyleFunc, - "Underline": noStyleFunc, - "Overline": noStyleFunc, - "Blink": noStyleFunc, - "Reverse": noStyleFunc, - "CrossOut": noStyleFunc, -} - -func noColorFunc(values ...interface{}) string { - return values[len(values)-1].(string) -} - -func noStyleFunc(values ...interface{}) string { - return values[0].(string) -} diff --git a/vendor/github.com/muesli/termenv/termenv.go b/vendor/github.com/muesli/termenv/termenv.go deleted file mode 100644 index d702cd5..0000000 --- a/vendor/github.com/muesli/termenv/termenv.go +++ /dev/null @@ -1,115 +0,0 @@ -package termenv - -import ( - "errors" - "os" - - "github.com/mattn/go-isatty" -) - -var ( - // ErrStatusReport gets returned when the terminal can't be queried. - ErrStatusReport = errors.New("unable to retrieve status report") -) - -const ( - // Escape character. - ESC = '\x1b' - // Bell. - BEL = '\a' - // Control Sequence Introducer. - CSI = string(ESC) + "[" - // Operating System Command. - OSC = string(ESC) + "]" - // String Terminator. - ST = string(ESC) + `\` -) - -func (o *Output) isTTY() bool { - if o.assumeTTY || o.unsafe { - return true - } - if len(o.environ.Getenv("CI")) > 0 { - return false - } - if f, ok := o.Writer().(*os.File); ok { - return isatty.IsTerminal(f.Fd()) - } - - return false -} - -// ColorProfile returns the supported color profile: -// Ascii, ANSI, ANSI256, or TrueColor. -func ColorProfile() Profile { - return output.ColorProfile() -} - -// ForegroundColor returns the terminal's default foreground color. -func ForegroundColor() Color { - return output.ForegroundColor() -} - -// BackgroundColor returns the terminal's default background color. -func BackgroundColor() Color { - return output.BackgroundColor() -} - -// HasDarkBackground returns whether terminal uses a dark-ish background. -func HasDarkBackground() bool { - return output.HasDarkBackground() -} - -// EnvNoColor returns true if the environment variables explicitly disable color output -// by setting NO_COLOR (https://no-color.org/) -// or CLICOLOR/CLICOLOR_FORCE (https://bixense.com/clicolors/) -// If NO_COLOR is set, this will return true, ignoring CLICOLOR/CLICOLOR_FORCE -// If CLICOLOR=="0", it will be true only if CLICOLOR_FORCE is also "0" or is unset. -func (o *Output) EnvNoColor() bool { - return o.environ.Getenv("NO_COLOR") != "" || (o.environ.Getenv("CLICOLOR") == "0" && !o.cliColorForced()) -} - -// EnvNoColor returns true if the environment variables explicitly disable color output -// by setting NO_COLOR (https://no-color.org/) -// or CLICOLOR/CLICOLOR_FORCE (https://bixense.com/clicolors/) -// If NO_COLOR is set, this will return true, ignoring CLICOLOR/CLICOLOR_FORCE -// If CLICOLOR=="0", it will be true only if CLICOLOR_FORCE is also "0" or is unset. -func EnvNoColor() bool { - return output.EnvNoColor() -} - -// EnvColorProfile returns the color profile based on environment variables set -// Supports NO_COLOR (https://no-color.org/) -// and CLICOLOR/CLICOLOR_FORCE (https://bixense.com/clicolors/) -// If none of these environment variables are set, this behaves the same as ColorProfile() -// It will return the Ascii color profile if EnvNoColor() returns true -// If the terminal does not support any colors, but CLICOLOR_FORCE is set and not "0" -// then the ANSI color profile will be returned. -func EnvColorProfile() Profile { - return output.EnvColorProfile() -} - -// EnvColorProfile returns the color profile based on environment variables set -// Supports NO_COLOR (https://no-color.org/) -// and CLICOLOR/CLICOLOR_FORCE (https://bixense.com/clicolors/) -// If none of these environment variables are set, this behaves the same as ColorProfile() -// It will return the Ascii color profile if EnvNoColor() returns true -// If the terminal does not support any colors, but CLICOLOR_FORCE is set and not "0" -// then the ANSI color profile will be returned. -func (o *Output) EnvColorProfile() Profile { - if o.EnvNoColor() { - return Ascii - } - p := o.ColorProfile() - if o.cliColorForced() && p == Ascii { - return ANSI - } - return p -} - -func (o *Output) cliColorForced() bool { - if forced := o.environ.Getenv("CLICOLOR_FORCE"); forced != "" { - return forced != "0" - } - return false -} diff --git a/vendor/github.com/muesli/termenv/termenv_other.go b/vendor/github.com/muesli/termenv/termenv_other.go deleted file mode 100644 index 93a43b6..0000000 --- a/vendor/github.com/muesli/termenv/termenv_other.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build js || plan9 || aix -// +build js plan9 aix - -package termenv - -import "io" - -// ColorProfile returns the supported color profile: -// ANSI256 -func (o Output) ColorProfile() Profile { - return ANSI256 -} - -func (o Output) foregroundColor() Color { - // default gray - return ANSIColor(7) -} - -func (o Output) backgroundColor() Color { - // default black - return ANSIColor(0) -} - -// EnableVirtualTerminalProcessing enables virtual terminal processing on -// Windows for w and returns a function that restores w to its previous state. -// On non-Windows platforms, or if w does not refer to a terminal, then it -// returns a non-nil no-op function and no error. -func EnableVirtualTerminalProcessing(w io.Writer) (func() error, error) { - return func() error { return nil }, nil -} diff --git a/vendor/github.com/muesli/termenv/termenv_posix.go b/vendor/github.com/muesli/termenv/termenv_posix.go deleted file mode 100644 index c971dd9..0000000 --- a/vendor/github.com/muesli/termenv/termenv_posix.go +++ /dev/null @@ -1,17 +0,0 @@ -//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || zos -// +build darwin dragonfly freebsd linux netbsd openbsd zos - -package termenv - -import ( - "golang.org/x/sys/unix" -) - -func isForeground(fd int) bool { - pgrp, err := unix.IoctlGetInt(fd, unix.TIOCGPGRP) - if err != nil { - return false - } - - return pgrp == unix.Getpgrp() -} diff --git a/vendor/github.com/muesli/termenv/termenv_solaris.go b/vendor/github.com/muesli/termenv/termenv_solaris.go deleted file mode 100644 index 27a95a9..0000000 --- a/vendor/github.com/muesli/termenv/termenv_solaris.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build solaris || illumos -// +build solaris illumos - -package termenv - -import ( - "golang.org/x/sys/unix" -) - -func isForeground(fd int) bool { - pgrp, err := unix.IoctlGetInt(fd, unix.TIOCGPGRP) - if err != nil { - return false - } - - g, err := unix.Getpgrp() - if err != nil { - return false - } - - return pgrp == g -} diff --git a/vendor/github.com/muesli/termenv/termenv_unix.go b/vendor/github.com/muesli/termenv/termenv_unix.go deleted file mode 100644 index bef49ca..0000000 --- a/vendor/github.com/muesli/termenv/termenv_unix.go +++ /dev/null @@ -1,301 +0,0 @@ -//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos -// +build darwin dragonfly freebsd linux netbsd openbsd solaris zos - -package termenv - -import ( - "fmt" - "io" - "strconv" - "strings" - "time" - - "golang.org/x/sys/unix" -) - -const ( - // timeout for OSC queries. - OSCTimeout = 5 * time.Second -) - -// ColorProfile returns the supported color profile: -// Ascii, ANSI, ANSI256, or TrueColor. -func (o *Output) ColorProfile() Profile { - if !o.isTTY() { - return Ascii - } - - if o.environ.Getenv("GOOGLE_CLOUD_SHELL") == "true" { - return TrueColor - } - - term := o.environ.Getenv("TERM") - colorTerm := o.environ.Getenv("COLORTERM") - - switch strings.ToLower(colorTerm) { - case "24bit": - fallthrough - case "truecolor": - if strings.HasPrefix(term, "screen") { - // tmux supports TrueColor, screen only ANSI256 - if o.environ.Getenv("TERM_PROGRAM") != "tmux" { - return ANSI256 - } - } - return TrueColor - case "yes": - fallthrough - case "true": - return ANSI256 - } - - switch term { - case - "alacritty", - "contour", - "rio", - "wezterm", - "xterm-ghostty", - "xterm-kitty": - return TrueColor - case "linux", "xterm": - return ANSI - } - - if strings.Contains(term, "256color") { - return ANSI256 - } - if strings.Contains(term, "color") { - return ANSI - } - if strings.Contains(term, "ansi") { - return ANSI - } - - return Ascii -} - -//nolint:mnd -func (o Output) foregroundColor() Color { - s, err := o.termStatusReport(10) - if err == nil { - c, err := xTermColor(s) - if err == nil { - return c - } - } - - colorFGBG := o.environ.Getenv("COLORFGBG") - if strings.Contains(colorFGBG, ";") { - c := strings.Split(colorFGBG, ";") - i, err := strconv.Atoi(c[0]) - if err == nil { - return ANSIColor(i) - } - } - - // default gray - return ANSIColor(7) -} - -//nolint:mnd -func (o Output) backgroundColor() Color { - s, err := o.termStatusReport(11) - if err == nil { - c, err := xTermColor(s) - if err == nil { - return c - } - } - - colorFGBG := o.environ.Getenv("COLORFGBG") - if strings.Contains(colorFGBG, ";") { - c := strings.Split(colorFGBG, ";") - i, err := strconv.Atoi(c[len(c)-1]) - if err == nil { - return ANSIColor(i) - } - } - - // default black - return ANSIColor(0) -} - -func (o *Output) waitForData(timeout time.Duration) error { - fd := o.TTY().Fd() - tv := unix.NsecToTimeval(int64(timeout)) - var readfds unix.FdSet - readfds.Set(int(fd)) //nolint:gosec - - for { - n, err := unix.Select(int(fd)+1, &readfds, nil, nil, &tv) //nolint:gosec - if err == unix.EINTR { - continue - } - if err != nil { - return err //nolint:wrapcheck - } - if n == 0 { - return fmt.Errorf("timeout") - } - - break - } - - return nil -} - -func (o *Output) readNextByte() (byte, error) { - if !o.unsafe { - if err := o.waitForData(OSCTimeout); err != nil { - return 0, err - } - } - - var b [1]byte - n, err := o.TTY().Read(b[:]) - if err != nil { - return 0, err //nolint:wrapcheck - } - - if n == 0 { - panic("read returned no data") - } - - return b[0], nil -} - -// readNextResponse reads either an OSC response or a cursor position response: -// - OSC response: "\x1b]11;rgb:1111/1111/1111\x1b\\" -// - cursor position response: "\x1b[42;1R" -func (o *Output) readNextResponse() (response string, isOSC bool, err error) { - start, err := o.readNextByte() - if err != nil { - return "", false, err - } - - // first byte must be ESC - for start != ESC { - start, err = o.readNextByte() - if err != nil { - return "", false, err - } - } - - response += string(start) - - // next byte is either '[' (cursor position response) or ']' (OSC response) - tpe, err := o.readNextByte() - if err != nil { - return "", false, err - } - - response += string(tpe) - - var oscResponse bool - switch tpe { - case '[': - oscResponse = false - case ']': - oscResponse = true - default: - return "", false, ErrStatusReport - } - - for { - b, err := o.readNextByte() - if err != nil { - return "", false, err - } - - response += string(b) - - if oscResponse { - // OSC can be terminated by BEL (\a) or ST (ESC) - if b == BEL || strings.HasSuffix(response, string(ESC)) { - return response, true, nil - } - } else { - // cursor position response is terminated by 'R' - if b == 'R' { - return response, false, nil - } - } - - // both responses have less than 25 bytes, so if we read more, that's an error - if len(response) > 25 { //nolint:mnd - break - } - } - - return "", false, ErrStatusReport -} - -func (o Output) termStatusReport(sequence int) (string, error) { - // screen/tmux can't support OSC, because they can be connected to multiple - // terminals concurrently. - term := o.environ.Getenv("TERM") - if strings.HasPrefix(term, "screen") || strings.HasPrefix(term, "tmux") || strings.HasPrefix(term, "dumb") { - return "", ErrStatusReport - } - - tty := o.TTY() - if tty == nil { - return "", ErrStatusReport - } - - if !o.unsafe { - fd := int(tty.Fd()) //nolint:gosec - // if in background, we can't control the terminal - if !isForeground(fd) { - return "", ErrStatusReport - } - - t, err := unix.IoctlGetTermios(fd, tcgetattr) - if err != nil { - return "", fmt.Errorf("%s: %s", ErrStatusReport, err) - } - defer unix.IoctlSetTermios(fd, tcsetattr, t) //nolint:errcheck - - noecho := *t - noecho.Lflag = noecho.Lflag &^ unix.ECHO - noecho.Lflag = noecho.Lflag &^ unix.ICANON - if err := unix.IoctlSetTermios(fd, tcsetattr, &noecho); err != nil { - return "", fmt.Errorf("%s: %s", ErrStatusReport, err) - } - } - - // first, send OSC query, which is ignored by terminal which do not support it - fmt.Fprintf(tty, OSC+"%d;?"+ST, sequence) //nolint:errcheck - - // then, query cursor position, should be supported by all terminals - fmt.Fprintf(tty, CSI+"6n") //nolint:errcheck - - // read the next response - res, isOSC, err := o.readNextResponse() - if err != nil { - return "", fmt.Errorf("%s: %s", ErrStatusReport, err) - } - - // if this is not OSC response, then the terminal does not support it - if !isOSC { - return "", ErrStatusReport - } - - // read the cursor query response next and discard the result - _, _, err = o.readNextResponse() - if err != nil { - return "", err - } - - // fmt.Println("Rcvd", res[1:]) - return res, nil -} - -// EnableVirtualTerminalProcessing enables virtual terminal processing on -// Windows for w and returns a function that restores w to its previous state. -// On non-Windows platforms, or if w does not refer to a terminal, then it -// returns a non-nil no-op function and no error. -func EnableVirtualTerminalProcessing(_ io.Writer) (func() error, error) { - return func() error { return nil }, nil -} diff --git a/vendor/github.com/muesli/termenv/termenv_windows.go b/vendor/github.com/muesli/termenv/termenv_windows.go deleted file mode 100644 index f9b1def..0000000 --- a/vendor/github.com/muesli/termenv/termenv_windows.go +++ /dev/null @@ -1,140 +0,0 @@ -//go:build windows -// +build windows - -package termenv - -import ( - "fmt" - "os" - "strconv" - - "golang.org/x/sys/windows" -) - -func (o *Output) ColorProfile() Profile { - if !o.isTTY() { - return Ascii - } - - if o.environ.Getenv("ConEmuANSI") == "ON" { - return TrueColor - } - - winVersion, _, buildNumber := windows.RtlGetNtVersionNumbers() - if buildNumber < 10586 || winVersion < 10 { - // No ANSI support before Windows 10 build 10586. - if o.environ.Getenv("ANSICON") != "" { - conVersion := o.environ.Getenv("ANSICON_VER") - cv, err := strconv.ParseInt(conVersion, 10, 64) - if err != nil || cv < 181 { - // No 8 bit color support before v1.81 release. - return ANSI - } - - return ANSI256 - } - - return Ascii - } - if buildNumber < 14931 { - // No true color support before build 14931. - return ANSI256 - } - - return TrueColor -} - -func (o Output) foregroundColor() Color { - // default gray - return ANSIColor(7) -} - -func (o Output) backgroundColor() Color { - // default black - return ANSIColor(0) -} - -// EnableWindowsANSIConsole enables virtual terminal processing on Windows -// platforms. This allows the use of ANSI escape sequences in Windows console -// applications. Ensure this gets called before anything gets rendered with -// termenv. -// -// Returns the original console mode and an error if one occurred. -func EnableWindowsANSIConsole() (uint32, error) { - handle, err := windows.GetStdHandle(windows.STD_OUTPUT_HANDLE) - if err != nil { - return 0, err - } - - var mode uint32 - err = windows.GetConsoleMode(handle, &mode) - if err != nil { - return 0, err - } - - // See https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences - if mode&windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING != windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING { - vtpmode := mode | windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING - if err := windows.SetConsoleMode(handle, vtpmode); err != nil { - return 0, err - } - } - - return mode, nil -} - -// RestoreWindowsConsole restores the console mode to a previous state. -func RestoreWindowsConsole(mode uint32) error { - handle, err := windows.GetStdHandle(windows.STD_OUTPUT_HANDLE) - if err != nil { - return err - } - - return windows.SetConsoleMode(handle, mode) -} - -// EnableVirtualTerminalProcessing enables virtual terminal processing on -// Windows for o and returns a function that restores o to its previous state. -// On non-Windows platforms, or if o does not refer to a terminal, then it -// returns a non-nil no-op function and no error. -func EnableVirtualTerminalProcessing(o *Output) (restoreFunc func() error, err error) { - // There is nothing to restore until we set the console mode. - restoreFunc = func() error { - return nil - } - - // If o is not a tty, then there is nothing to do. - tty, ok := o.Writer().(*os.File) - if tty == nil || !ok { - return - } - - // Get the current console mode. If there is an error, assume that o is not - // a terminal, discard the error, and return. - var mode uint32 - if err2 := windows.GetConsoleMode(windows.Handle(tty.Fd()), &mode); err2 != nil { - return - } - - // If virtual terminal processing is already set, then there is nothing to - // do and nothing to restore. - if mode&windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING == windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING { - return - } - - // Enable virtual terminal processing. See - // https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences - if err2 := windows.SetConsoleMode(windows.Handle(tty.Fd()), mode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING); err2 != nil { - err = fmt.Errorf("windows.SetConsoleMode: %w", err2) - return - } - - // Set the restore function. We maintain a reference to the tty in the - // closure (rather than just its handle) to ensure that the tty is not - // closed by a finalizer. - restoreFunc = func() error { - return windows.SetConsoleMode(windows.Handle(tty.Fd()), mode) - } - - return -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/LICENSE b/vendor/github.com/neo4j/neo4j-go-driver/v5/LICENSE deleted file mode 100644 index 20e4bd8..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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 - - https://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. diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/aliases.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/aliases.go deleted file mode 100644 index 76df603..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/aliases.go +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype" -) - -// Aliases to simplify client usage (fewer imports) and to provide some backwards -// compatibility with 1.x driver. -// -// A separate dbtype package is needed to avoid circular package references and to avoid -// unnecessary copying/conversions between structs since serializing/deserializing is -// handled within bolt package and bolt package is used from this package. -type ( - Point2D = dbtype.Point2D - Point3D = dbtype.Point3D - Date = dbtype.Date - LocalTime = dbtype.LocalTime - LocalDateTime = dbtype.LocalDateTime - Time = dbtype.Time - OffsetTime = dbtype.Time - Duration = dbtype.Duration - Entity = dbtype.Entity - Node = dbtype.Node - Relationship = dbtype.Relationship - Path = dbtype.Path - Record = db.Record - InvalidValue = dbtype.InvalidValue -) - -// DateOf creates a neo4j.Date from time.Time. -// Hour, minute, second and nanoseconds are set to zero and location is set to UTC. -// -// Conversion can also be done by casting a time.Time to neo4j.Date but beware that time -// components and location will be left as is but ignored when used as query parameter. -func DateOf(t time.Time) Date { - y, m, d := t.Date() - t = time.Date(y, m, d, 0, 0, 0, 0, time.UTC) - return dbtype.Date(t) -} - -// LocalTimeOf creates a neo4j.LocalTime from time.Time. -// Year, month and day are set to zero and location is set to local. -// -// Conversion can also be done by casting a time.Time to neo4j.LocalTime but beware that date -// components and location will be left as is but ignored when used as query parameter. -func LocalTimeOf(t time.Time) LocalTime { - t = time.Date(0, 0, 0, t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.Local) - return dbtype.LocalTime(t) -} - -// LocalDateTimeOf creates a neo4j.Local from time.Time. -// -// Conversion can also be done by casting a time.Time to neo4j.LocalTime but beware that location -// will be left as is but interpreted as local when used as query parameter. -func LocalDateTimeOf(t time.Time) LocalDateTime { - t = time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.Local) - return dbtype.LocalDateTime(t) -} - -// OffsetTimeOf creates a neo4j.OffsetTime from time.Time. -// Year, month and day are set to zero and location is set to "Offset" using zone offset from -// time.Time. -// -// Conversion can also be done by casting a time.Time to neo4j.OffsetTime but beware that date -// components and location will be left as is but ignored when used as query parameter. Since -// location will contain the original value, the value "offset" will not be used by the driver -// but the actual name of the location in time.Time and that offset. -func OffsetTimeOf(t time.Time) OffsetTime { - _, offset := t.Zone() - l := time.FixedZone("Offset", int(offset)) - t = time.Date(0, 0, 0, t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), l) - return dbtype.Time(t) -} - -// DurationOf creates neo4j.Duration from specified time parts. -func DurationOf(months, days, seconds int64, nanos int) Duration { - return Duration{Months: months, Days: days, Seconds: seconds, Nanos: nanos} -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/auth.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/auth.go deleted file mode 100644 index 4c0b1ae..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/auth.go +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 auth - -import ( - "context" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" -) - -// TokenManager is an interface for components that can provide auth tokens. -// The `neo4j` package provides default implementations of `auth.TokenManager` for common authentication schemes. -// See `neo4j.NewDriverWithContext`. -// Custom implementations of this class can be used to provide more complex authentication refresh functionality. -// -// WARNING: -// -// The manager *must not* interact with the driver in any way as this can cause deadlocks and undefined behaviour. -// Furthermore, the manager is expected to be thread-safe. -type TokenManager interface { - // GetAuthToken retrieves an auth.Token or returns an error if the retrieval fails. - // auth.Token can be created with built-in functions such as: - // - `neo4j.NoAuth` - // - `neo4j.BasicAuth` - // - `neo4j.KerberosAuth` - // - `neo4j.BearerAuth` - // - `neo4j.CustomAuth` - // - // The token returned must always belong to the same identity. - // Switching identities using the `TokenManager` is undefined behavior. - GetAuthToken(ctx context.Context) (auth.Token, error) - - // HandleSecurityException is called when the server returns any `Neo.ClientError.Security.*` error. - // It should return true if the error was handled, in which case the driver will mark the error as retryable. - HandleSecurityException(context.Context, auth.Token, *db.Neo4jError) (bool, error) -} - -type authTokenProvider = func(context.Context) (auth.Token, error) - -type authTokenWithExpirationProvider = func(context.Context) (auth.Token, *time.Time, error) - -type neo4jAuthTokenManager struct { - provider authTokenWithExpirationProvider - token *auth.Token - expiration *time.Time - mutex racing.Mutex - handledSecurityCodes collections.Set[string] -} - -func (m *neo4jAuthTokenManager) GetAuthToken(ctx context.Context) (auth.Token, error) { - if !m.mutex.TryLock(ctx) { - return auth.Token{}, racing.LockTimeoutError( - "could not acquire lock in time when getting token in neo4jAuthTokenManager") - } - defer m.mutex.Unlock() - if m.token == nil || m.expiration != nil && itime.Now().After(*m.expiration) { - token, expiration, err := m.provider(ctx) - if err != nil { - return auth.Token{}, err - } - m.token = &token - m.expiration = expiration - } - return *m.token, nil -} - -func (m *neo4jAuthTokenManager) HandleSecurityException(ctx context.Context, token auth.Token, securityException *db.Neo4jError) (bool, error) { - if !m.handledSecurityCodes.Contains(securityException.Code) { - return false, nil - } - if !m.mutex.TryLock(ctx) { - return false, racing.LockTimeoutError( - "could not acquire lock in time when handling security exception in neo4jAuthTokenManager") - } - defer m.mutex.Unlock() - if m.token != nil && reflect.DeepEqual(token.Tokens, m.token.Tokens) { - m.token = nil - } - return true, nil -} - -// BasicTokenManager generates a TokenManager to manage basic auth password rotation. -// The provider is invoked solely when a new token instance is required, triggered by server -// rejection of the current token due to an authentication exception. -// -// WARNING: -// -// The provider function *must not* interact with the driver in any way as this can cause deadlocks and undefined -// behaviour. -// -// The provider function must only ever return auth information belonging to the same identity. -// Switching identities is undefined behavior. -func BasicTokenManager(provider authTokenProvider) TokenManager { - return &neo4jAuthTokenManager{ - provider: wrapWithNilExpiration(provider), - mutex: racing.NewMutex(), - handledSecurityCodes: collections.NewSet([]string{ - "Neo.ClientError.Security.Unauthorized", - }), - } -} - -// BearerTokenManager generates a TokenManager to manage possibly expiring authentication details. -// -// The provider is invoked when a new token instance is required, triggered by server -// rejection of the current token due to authentication or token expiration exceptions. -// -// WARNING: -// -// The provider function *must not* interact with the driver in any way as this can cause deadlocks and undefined -// behaviour. -// -// The provider function must only ever return auth information belonging to the same identity. -// Switching identities is undefined behavior. -func BearerTokenManager(provider authTokenWithExpirationProvider) TokenManager { - return &neo4jAuthTokenManager{ - provider: provider, - mutex: racing.NewMutex(), - handledSecurityCodes: collections.NewSet([]string{ - "Neo.ClientError.Security.TokenExpired", - "Neo.ClientError.Security.Unauthorized", - }), - } -} - -func wrapWithNilExpiration(provider authTokenProvider) authTokenWithExpirationProvider { - return func(ctx context.Context) (auth.Token, *time.Time, error) { - token, err := provider(ctx) - return token, nil, err - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/cert.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/cert.go deleted file mode 100644 index 942b503..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth/cert.go +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 auth - -import ( - "crypto/tls" - "crypto/x509" - "encoding/pem" - "errors" - "os" - "sync" -) - -// ClientCertificate holds paths to a TLS certificate file and its corresponding private key file. -// This struct is used to load client certificate-key pairs for use in mutual TLS. -type ClientCertificate struct { - CertFile string // Path to the TLS certificate file. - KeyFile string // Path to the TLS private key file. - Password *string // Optional password for decrypting the private key file. Nil indicates no password is set. -} - -// ClientCertificateProvider defines an interface for retrieving a tls.Certificate. -// Implementations of this interface can provide static or dynamically updatable certificates. -type ClientCertificateProvider interface { - // GetCertificate returns a tls.Certificate for use in TLS connections. - // Implementations should ensure thread-safety and handle any necessary logic - // to provide the most up-to-date certificate. - // - // If a nil value is returned, it indicates that no client certificate is available for use in the TLS connection. - // This might be the case if the certificate is not yet available, or if no certificate is configured for use. - GetCertificate() *tls.Certificate -} - -// StaticClientCertificateProvider is an implementation of ClientCertificateProvider -// that provides a static, unchangeable tls.Certificate. It is intended for use cases -// where the certificate does not need to be updated over the lifetime of the application. -type StaticClientCertificateProvider struct { - certificate *tls.Certificate -} - -// NewStaticClientCertificateProvider creates a new StaticClientCertificateProvider given a ClientCertificate. -// This function loads the certificate-key pair specified in the ClientCertificate and returns -// a provider that will always return this loaded certificate. -func NewStaticClientCertificateProvider(cert ClientCertificate) (*StaticClientCertificateProvider, error) { - tlsCert, err := loadCertificate(cert.CertFile, cert.KeyFile, cert.Password) - if err != nil { - return nil, err - } - return &StaticClientCertificateProvider{certificate: &tlsCert}, nil -} - -func (p *StaticClientCertificateProvider) GetCertificate() *tls.Certificate { - return p.certificate -} - -// RotatingClientCertificateProvider is an implementation of ClientCertificateProvider -// that supports dynamic updates to the tls.Certificate it provides. It is useful for scenarios -// where certificates need to be rotated or updated without restarting the application. -type RotatingClientCertificateProvider struct { - mu sync.RWMutex - certificate *tls.Certificate -} - -// NewRotatingClientCertificateProvider creates a new RotatingClientCertificateProvider given a ClientCertificate. -// This function loads the certificate-key pair specified in the ClientCertificate and returns -// a provider that allows updating the certificate dynamically through its UpdateCertificate method. -func NewRotatingClientCertificateProvider(cert ClientCertificate) (*RotatingClientCertificateProvider, error) { - tlsCert, err := loadCertificate(cert.CertFile, cert.KeyFile, cert.Password) - if err != nil { - return nil, err - } - return &RotatingClientCertificateProvider{certificate: &tlsCert}, nil -} - -func (p *RotatingClientCertificateProvider) GetCertificate() *tls.Certificate { - p.mu.RLock() - defer p.mu.RUnlock() - return p.certificate -} - -// UpdateCertificate updates the certificate stored in the provider with a new certificate specified -// by the ClientCertificate. This method allows dynamic updates to the certificate used in TLS connections, -// facilitating use cases such as certificate rotation. -func (p *RotatingClientCertificateProvider) UpdateCertificate(cert ClientCertificate) error { - tlsCert, err := loadCertificate(cert.CertFile, cert.KeyFile, cert.Password) - if err != nil { - return err - } - - p.mu.Lock() - defer p.mu.Unlock() - p.certificate = &tlsCert - return nil -} - -// loadCertificate attempts to load a certificate and its corresponding private key -// from the given paths. If a password is provided, it will attempt to decrypt -// the private key assuming it is encrypted. -func loadCertificate(certFile string, keyFile string, password *string) (tls.Certificate, error) { - // Load certificate PEM block - certPEMBlock, err := os.ReadFile(certFile) - if err != nil { - return tls.Certificate{}, err - } - // Load private key PEM block - keyPEMBlock, err := os.ReadFile(keyFile) - if err != nil { - return tls.Certificate{}, err - } - // Decrypt the private key if a password is provided - if password != nil { - decodedKeyPEMBlock, _ := pem.Decode(keyPEMBlock) - if decodedKeyPEMBlock == nil { - return tls.Certificate{}, errors.New("failed to parse PEM block containing the key") - } - //lint:ignore SA1019 Using due to lack of stdlib alternatives; aware of RFC 1423's insecurity. - decryptedDERBlock, decryptErr := x509.DecryptPEMBlock(decodedKeyPEMBlock, []byte(*password)) - if decryptErr != nil { - return tls.Certificate{}, decryptErr - } - // Re-encode the decrypted block to PEM - keyPEMBlock = pem.EncodeToMemory(&pem.Block{Type: decodedKeyPEMBlock.Type, Bytes: decryptedDERBlock}) - } - // Create the tls.Certificate - return tls.X509KeyPair(certPEMBlock, keyPEMBlock) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth_tokens.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth_tokens.go deleted file mode 100644 index feac1d5..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/auth_tokens.go +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - -// AuthToken contains credentials to be sent over to the neo4j server. -type AuthToken = auth.Token - -const keyScheme = "scheme" -const schemeNone = "none" -const schemeBasic = "basic" -const schemeKerberos = "kerberos" -const schemeBearer = "bearer" -const keyPrincipal = "principal" -const keyCredentials = "credentials" -const keyRealm = "realm" - -// NoAuth generates an empty authentication token -func NoAuth() AuthToken { - return AuthToken{Tokens: map[string]any{ - keyScheme: schemeNone, - }} -} - -// BasicAuth generates a basic authentication token with provided username, password and realm -func BasicAuth(username string, password string, realm string) AuthToken { - tokens := map[string]any{ - keyScheme: schemeBasic, - keyPrincipal: username, - keyCredentials: password, - } - - if realm != "" { - tokens[keyRealm] = realm - } - - return AuthToken{Tokens: tokens} -} - -// KerberosAuth generates a kerberos authentication token with provided base-64 encoded kerberos ticket -func KerberosAuth(ticket string) AuthToken { - token := AuthToken{ - Tokens: map[string]any{ - keyScheme: schemeKerberos, - // Backwards compatibility: Neo4j servers pre 4.4 require the presence of the principal. - keyPrincipal: "", - keyCredentials: ticket, - }, - } - - return token -} - -// BearerAuth generates an authentication token with the provided base-64 value generated by a Single Sign-On provider -func BearerAuth(token string) AuthToken { - result := AuthToken{ - Tokens: map[string]any{ - keyScheme: schemeBearer, - keyCredentials: token, - }, - } - - return result -} - -// CustomAuth generates a custom authentication token with provided parameters -func CustomAuth(scheme string, username string, password string, realm string, parameters map[string]any) AuthToken { - tokens := map[string]any{ - keyScheme: scheme, - keyPrincipal: username, - } - - if password != "" { - tokens[keyCredentials] = password - } - - if realm != "" { - tokens[keyRealm] = realm - } - - if len(parameters) > 0 { - tokens["parameters"] = parameters - } - - return AuthToken{Tokens: tokens} -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/bookmarks.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/bookmarks.go deleted file mode 100644 index e1224fc..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/bookmarks.go +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections" - "sync" -) - -// Bookmarks is a holder for server-side bookmarks which are used for causally-chained sessions. -// See also CombineBookmarks. -// Note: this will be changed from being a type alias to being a struct in 6.0. Please use BookmarksFromRawValues for construction -// from raw values and BookmarksToRawValues for accessing the raw values. -type Bookmarks = []string - -// BookmarkManager centralizes bookmark manager supply and notification -type BookmarkManager interface { - // UpdateBookmarks updates the bookmark tracked by this bookmark manager - // previousBookmarks are the initial bookmarks of the bookmark holder (like a Session) - // newBookmarks are the bookmarks that are received after completion of the bookmark holder operation (like the end of a Session) - UpdateBookmarks(ctx context.Context, previousBookmarks, newBookmarks Bookmarks) error - - // GetBookmarks returns all the bookmarks tracked by this bookmark manager - // Note: the order of the returned bookmark slice does not need to be deterministic - GetBookmarks(ctx context.Context) (Bookmarks, error) -} - -type BookmarkManagerConfig struct { - // Initial bookmarks per database - InitialBookmarks Bookmarks - - // Supplier providing external bookmarks - BookmarkSupplier func(context.Context) (Bookmarks, error) - - // Hook called whenever bookmarks get updated - // The hook is called with the database and the new bookmarks - // Note: the order of the supplied bookmark slice is not guaranteed - BookmarkConsumer func(ctx context.Context, bookmarks Bookmarks) error -} - -type bookmarkManager struct { - bookmarks collections.Set[string] - supplyBookmarks func(context.Context) (Bookmarks, error) - consumeBookmarks func(context.Context, Bookmarks) error - mutex sync.RWMutex -} - -func (b *bookmarkManager) UpdateBookmarks(ctx context.Context, previousBookmarks, newBookmarks Bookmarks) error { - if len(newBookmarks) == 0 { - return nil - } - b.mutex.Lock() - defer b.mutex.Unlock() - var bookmarksToNotify Bookmarks - b.bookmarks.RemoveAll(previousBookmarks) - b.bookmarks.AddAll(newBookmarks) - bookmarksToNotify = b.bookmarks.Values() - if b.consumeBookmarks != nil { - return b.consumeBookmarks(ctx, bookmarksToNotify) - } - return nil -} - -func (b *bookmarkManager) GetBookmarks(ctx context.Context) (Bookmarks, error) { - var extraBookmarks Bookmarks - if b.supplyBookmarks != nil { - bookmarks, err := b.supplyBookmarks(ctx) - if err != nil { - return nil, err - } - extraBookmarks = bookmarks - } - b.mutex.RLock() - defer b.mutex.RUnlock() - if len(b.bookmarks) == 0 { - return extraBookmarks, nil - } - bookmarks := b.bookmarks.Copy() - if extraBookmarks == nil { - return bookmarks.Values(), nil - } - bookmarks.AddAll(extraBookmarks) - return bookmarks.Values(), nil -} - -func NewBookmarkManager(config BookmarkManagerConfig) BookmarkManager { - return &bookmarkManager{ - bookmarks: collections.NewSet(config.InitialBookmarks), - supplyBookmarks: config.BookmarkSupplier, - consumeBookmarks: config.BookmarkConsumer, - } -} - -// CombineBookmarks is a helper method to combine []Bookmarks into a single Bookmarks instance. -// Let s1, s2, s3 be Session interfaces. You can easily causally chain the sessions like so: -// ```go -// -// s4 := driver.NewSession(neo4j.SessionConfig{ -// Bookmarks: neo4j.CombineBookmarks(s1.LastBookmarks(), s2.LastBookmarks(), s3.LastBookmarks()), -// }) -// -// ``` -// The server will then make sure to execute all transactions in s4 after any that were already executed in s1, s2, or s3 -// at the time of calling LastBookmarks. -func CombineBookmarks(bookmarks ...Bookmarks) Bookmarks { - var lenSum int - for _, b := range bookmarks { - lenSum += len(b) - } - res := make([]string, lenSum) - var i int - for _, b := range bookmarks { - i += copy(res[i:], b) - } - return res -} - -// BookmarksToRawValues exposes the raw server-side bookmarks. -// You should not need to use this method unless you want to serialize bookmarks. -// See Session.LastBookmarks and CombineBookmarks for alternatives. -func BookmarksToRawValues(bookmarks Bookmarks) []string { - return bookmarks -} - -// BookmarksFromRawValues creates Bookmarks from raw server-side bookmarks. -// You should not need to use this method unless you want to de-serialize bookmarks. -// See Session.LastBookmarks and CombineBookmarks for alternatives. -func BookmarksFromRawValues(values ...string) Bookmarks { - return values -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config.go deleted file mode 100644 index 589fdae..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config.go +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/config" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" - "math" - "net/url" - "time" -) - -// Deprecated: please use config.Config directly. This alias will be removed in 6.0. -type Config = config.Config - -// Deprecated: please use config.ServerAddressResolver directly. This alias will be removed in 6.0. -type ServerAddressResolver = config.ServerAddressResolver - -// Deprecated: please use config.ServerAddress directly. This alias will be removed in 6.0. -type ServerAddress = config.ServerAddress - -func defaultConfig() *Config { - return &Config{ - AddressResolver: nil, - MaxTransactionRetryTime: 30 * time.Second, - MaxConnectionPoolSize: 100, - MaxConnectionLifetime: 1 * time.Hour, - ConnectionAcquisitionTimeout: 1 * time.Minute, - ConnectionLivenessCheckTimeout: pool.DefaultConnectionLivenessCheckTimeout, - SocketConnectTimeout: 5 * time.Second, - SocketKeepalive: true, - RootCAs: nil, - UserAgent: UserAgent, - FetchSize: FetchDefault, - NotificationsMinSeverity: notifications.DefaultLevel, - NotificationsDisabledCategories: notifications.NotificationDisabledCategories{}, - NotificationsDisabledClassifications: notifications.NotificationDisabledClassifications{}, - TelemetryDisabled: false, - ReadBufferSize: bolt.DefaultReadBufferSize, - } -} - -func validateAndNormaliseConfig(config *Config) error { - // Max Transaction Retry Time - if config.MaxTransactionRetryTime < 0 { - return &UsageError{Message: "Maximum transaction retry time cannot be smaller than 0"} - } - - // Max Connection Pool Size - if config.MaxConnectionPoolSize == 0 { - return &UsageError{Message: "Maximum connection pool cannot be 0"} - } - - if config.MaxConnectionPoolSize < 0 { - config.MaxConnectionPoolSize = math.MaxInt32 - } - - // Max Connection Lifetime - if config.MaxConnectionLifetime <= 0 { - config.MaxConnectionLifetime = 1<<63 - 1 - } - - // Connection Acquisition Timeout - if config.ConnectionAcquisitionTimeout < 0 { - config.ConnectionAcquisitionTimeout = -1 - } - - // Connection Liveness Check Timeout - if config.ConnectionLivenessCheckTimeout < 0 { - return &UsageError{Message: "Connection liveness check timeout cannot be smaller than 0"} - } - - // Socket Connect Timeout - if config.SocketConnectTimeout < 0 { - config.SocketConnectTimeout = 0 - } - - // Check notifications have not been configured with both categories and classifications. - if len(config.NotificationsDisabledCategories.DisabledCategories()) > 0 && - len(config.NotificationsDisabledClassifications.DisabledClassifications()) > 0 { - return &UsageError{Message: "Notifications cannot be disabled for both categories and classifications at the same time."} - } - - return nil -} - -func newServerAddressURL(hostname string, port string) *url.URL { - if hostname == "" { - return nil - } - - hostAndPort := hostname - if port != "" { - hostAndPort = hostAndPort + ":" + port - } - - return &url.URL{Host: hostAndPort} -} - -// NewServerAddress generates a ServerAddress with provided hostname and port information. -func NewServerAddress(hostname string, port string) ServerAddress { - return newServerAddressURL(hostname, port) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config/driver.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config/driver.go deleted file mode 100644 index a581960..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/config/driver.go +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 config - -import ( - "crypto/tls" - "crypto/x509" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" - "time" -) - -// A Config contains options that can be used to customize certain -// aspects of the driver -type Config struct { - // RootCAs defines the set of certificate authorities that the driver trusts. If set - // to nil, the driver uses hosts system certificates. - // - // The trusted certificates are used to validate connections for URI schemes 'bolt+s' - // and 'neo4j+s'. - // - // Deprecated: RootCAs will be removed in 6.0. - // Please rely on TlsConfig's RootCAs attribute instead. - // RootCAs is ignored if TlsConfig is set. - RootCAs *x509.CertPool - // TlsConfig defines the TLS configuration of the driver. - // - // The configuration is only used for URI schemes 'bolt+s', 'bolt+ssc', - // 'neo4j+s' and 'neo4j+ssc'. - // - // The default MinVersion attribute is tls.VersionTLS12. This is overridable. - // The InsecureSkipVerify attribute of TlsConfig is always derived from the initial URI scheme. - // The ServerName attribute of TlsConfig is always derived from the initial URI host. - // - // This is considered an advanced setting, use it at your own risk. - // Introduced in 5.0. - TlsConfig *tls.Config - // ClientCertificateProvider specifies a provider for the client TLS certificate for mutual TLS authentication. - // Use auth.NewStaticClientCertificateProvider for static certificates, or auth.NewRotatingClientCertificateProvider - // for certificates that require runtime updates without application restart. - // - // Static certificate example: - // config.ClientCertificateProvider = auth.NewStaticClientCertificateProvider(auth.ClientCertificateProvider{ - // CertFile: "path/to/client.crt", - // KeyFile: "path/to/client.key", - // }) - // - // Rotatable certificate example: - // provider, _ := auth.NewRotatingClientCertificateProvider(auth.ClientCertificateProvider{ - // CertFile: "path/to/initial_client.crt", - // KeyFile: "path/to/initial_client.key", - // }) - // config.ClientCertificateProvider = provider - // // Dynamically update the certificate later without restarting the application. - // _ = provider.UpdateCertificate(auth.ClientCertificateProvider{ - // CertFile: "path/to/new_client.crt", - // KeyFile: "path/to/new_client.key", - // }) - // - // Note: This option is not applicable for 'bolt://' or 'neo4j://' schemes where encryption isn't used. - ClientCertificateProvider auth.ClientCertificateProvider - // Logging target the driver will send its log outputs - // - // Possible to use custom logger (implement log.Logger interface) or - // use neo4j.ConsoleLogger. - // - // default: No Op Logger (log.Void) - Log log.Logger - // Resolver that would be used to resolve initial router address. This may - // be useful if you want to provide more than one URL for initial router. - // If not specified, the URL provided to NewDriver or NewDriverWithContext - // is used as the initial router. - // - // default: nil - AddressResolver ServerAddressResolver - // Maximum amount of time a retryable operation would continue retrying. It - // cannot be specified as a negative value. - // - // default: 30 * time.Second - MaxTransactionRetryTime time.Duration - // Maximum number of connections per URL to allow on this driver. It - // cannot be specified as 0 and negative values are interpreted as - // math.MaxInt32. - // - // default: 100 - MaxConnectionPoolSize int - // Maximum connection lifetime on pooled connections. Values less than - // or equal to 0 disables the lifetime check. - // - // default: 1 * time.Hour - MaxConnectionLifetime time.Duration - // Maximum amount of time to either acquire an idle connection from the pool - // or create a new connection (when the pool is not full). Negative values - // result in an infinite wait time, whereas a 0 value results in no timeout. - // If no timeout is set, an immediate failure follows when there are no - // available connections. - // - // Since 4.3, this setting competes with connection read timeout hints, if - // the server-side option called - // "dbms.connector.bolt.connection_keep_alive_for_requests" is enabled. - // The read timeout is automatically applied and may result in connections - // being dropped if they are idle beyond the corresponding period. - // - // Since 5.0, this setting competes with the context-aware APIs. These APIs - // are discoverable through NewDriverWithContext. - // When a connection needs to be acquired from the internal driver - // connection pool and the user-provided context.Context carries a deadline - // (through context.WithTimeout or context.WithDeadline), the earliest - // deadline wins. Connections are still subject to early terminations if a read timeout - // hint is received. - // - // default: 1 * time.Minute - ConnectionAcquisitionTimeout time.Duration - // ConnectionLivenessCheckTimeout sets the timeout duration for idle connections in the pool. - // Connections idle longer than this timeout will be tested for liveliness before reuse. A low timeout value - // can increase network requests when acquiring a connection, impacting performance. Conversely, a high - // timeout may result in using connections that are no longer active, causing exceptions in your application. - // These exceptions typically resolve with a retry or using a driver API with automatic - // retries, assuming the database is operational. - // - // The parameter balances the likelihood of encountering connection issues against performance. - // Typically, adjustment of this parameter is not necessary. - // - // By default, no liveliness check is performed. A value of 0 ensures connections are always tested for - // validity, and negative values are not permitted. - // - // default: pool.DefaultConnectionLivenessCheckTimeout - ConnectionLivenessCheckTimeout time.Duration - // Connect timeout that will be set on underlying sockets. Values less than - // or equal to 0 results in no timeout being applied. - // - // Since 5.0, this setting competes with the context-aware APIs. These APIs - // are discoverable through NewDriverWithContext. - // If a connection needs to be created when one of these APIs is called - // and the user-provided context.Context carries a deadline (through - // context.WithTimeout or context.WithDeadline), the TCP dialer will pick - // the earliest between this setting and the context deadline. - // - // default: 5 * time.Second - SocketConnectTimeout time.Duration - // Whether to enable TCP keep alive on underlying sockets. - // - // default: true - SocketKeepalive bool - // Optionally override the user agent string sent to Neo4j server. - // - // default: neo4j.UserAgent - UserAgent string - // FetchSize defines how many records to pull from server in each batch. - // From Bolt protocol v4 (Neo4j 4+) records can be fetched in batches as - // compared to fetching all in previous versions. - // If the underlying protocol does not support FetchSize, it is ignored. - // - // If FetchSize is set to `FetchDefault`, the driver decides the appropriate size. - // If set to a positive value that size is used; negative values behaves as `FetchAll` (see below). - // - // To turn off fetching in batches and always fetch everything, set FetchSize to `FetchAll`. - // A limited FetchSize ensures the client is not overflown with records, - // and allows to bound memory usage. - FetchSize int - // NotificationsMinSeverity defines the minimum severity level of notifications the server should send. - // By default, the server's settings are used. - // Disabling severities allows the server to skip analysis for those, which can speed up query execution. - NotificationsMinSeverity notifications.NotificationMinimumSeverityLevel - // NotificationsDisabledCategories defines the categories of notifications the server should not send. - // By default, the server's settings are used. - // Disabling categories allows the server to skip analysis for those, which can speed up query execution. - NotificationsDisabledCategories notifications.NotificationDisabledCategories - // NotificationsDisabledClassifications is identical to NotificationsDisabledCategories. - // This alternative is provided for a consistent naming with neo4j.GqlStatusObject Classification. - // - // NotificationsDisabledClassifications is part of the GQL compliant notifications preview feature - // (see README on what it means in terms of support and compatibility guarantees) - NotificationsDisabledClassifications notifications.NotificationDisabledClassifications - // By default, if the server requests it, the driver will automatically transmit anonymous usage - // statistics to the server it is connected to. - // - // By configuring TelemetryDisabled=True, the driver will refrain from transmitting any telemetry data. - // - // Each time one of the specified APIs is utilized to execute a query for the first time, the driver - // informs the server of this action without providing additional details such as arguments or client identifiers: - // - // neo4j.ExecuteQuery - // SessionWithContext.Run - // SessionWithContext.BeginTransaction - // SessionWithContext.ExecuteRead - // SessionWithContext.ExecuteWrite - // - // default: true - TelemetryDisabled bool - // ReadBufferSize defines the size of the buffer used for reading data from the network connection. - // A larger buffer size can improve performance by reducing the number of read operations required - // for large data transfers. Currently, the default value is 8 KiB, but may change in the future. - // Set to 0 or below to disable buffering. - ReadBufferSize int -} - -// ServerAddressResolver is a function type that defines the resolver function used by the routing driver to -// resolve the initial address used to create the driver. -type ServerAddressResolver func(address ServerAddress) []ServerAddress - -// ServerAddress represents a host and port. Host can either be an IP address or a DNS name. -// Both IPv4 and IPv6 hosts are supported. -type ServerAddress interface { - // Hostname returns the host portion of this ServerAddress. - Hostname() string - // Port returns the port portion of this ServerAddress. - Port() string -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/consolelogger.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/consolelogger.go deleted file mode 100644 index 7325828..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/consolelogger.go +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// LogLevel is the type that default logging implementations use for available -// log levels -// -// Deprecated: use log.Level instead. -type LogLevel = log.Level - -const ( - // ERROR is the level that error messages are written - // - // Deprecated: use log.ERROR instead. - ERROR = log.ERROR - // WARNING is the level that warning messages are written - // - // Deprecated: use log.WARNING instead. - WARNING = log.WARNING - // INFO is the level that info messages are written - // - // Deprecated: use log.INFO instead. - INFO = log.INFO - // DEBUG is the level that debug messages are written - // - // Deprecated: use log.DEBUG instead. - DEBUG = log.DEBUG -) - -// Deprecated: use log.ToConsole() instead. -func ConsoleLogger(level log.Level) *log.Console { - return &log.Console{ - Errors: level >= log.ERROR, - Warns: level >= log.WARNING, - Infos: level >= log.INFO, - Debugs: level >= log.DEBUG, - } -} - -// Deprecated: use log.BoltToConsole() instead. -func ConsoleBoltLogger() *log.ConsoleBoltLogger { - return &log.ConsoleBoltLogger{} -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/errors.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/errors.go deleted file mode 100644 index 1fa7230..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/errors.go +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -import ( - "fmt" - "reflect" - "strings" -) - -type ErrorClassification string - -const ( - ClientError ErrorClassification = "CLIENT_ERROR" - DatabaseError ErrorClassification = "DATABASE_ERROR" - TransientError ErrorClassification = "TRANSIENT_ERROR" - UnknownError ErrorClassification = "UNKNOWN" -) - -// TODO: when we no longer need to support the old Neo4jError, rename the following fields: -// - Neo4jError -> GqlError -// - GqlStatusDescription -> StatusDescription -// - GqlClassification -> Classification -// - GqlRawClassification -> RawClassification -// - GqlDiagnosticRecord -> DiagnosticRecord -// - GqlCause -> Cause -// - GqlStatus to remain as-is to comply with GQLSTATUS. - -// Neo4jError is created when the database server fails to fulfill a request. -type Neo4jError struct { - // Code is the Neo4j-specific error code, to be deprecated in favor of GqlStatus. - Code string - // Msg is the specific error message describing the failure. - Msg string - // GqlStatus returns the GQLSTATUS. - // GqlStatus is the error code compliant with the GQL specification. - // - // GqlStatus is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlStatus string - // GqlStatusDescription provides a standard description for the associated GQLStatus code. - // - // GqlStatusDescription is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlStatusDescription string - // GqlClassification is a high-level categorization of the error, specific to GQL error handling. - // - // GqlClassification is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlClassification ErrorClassification - // GqlRawClassification holds the raw classification as received from the server. - // - // GqlRawClassification is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlRawClassification string - // GqlDiagnosticRecord returns further information about the status for diagnostic purposes. - // - // GqlDiagnosticRecord is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlDiagnosticRecord map[string]any - // GqlCause represents the underlying error, if any, which caused the current error. - // - // GqlCause is part of the GQL compliant errors preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlCause *Neo4jError - parsed bool - classification string // Legacy non-GQL classification - category string - title string - retriable bool -} - -func (e *Neo4jError) Error() string { - return fmt.Sprintf("Neo4jError: %s (%s)", e.Code, e.Msg) -} - -// TODO 6.0: remove in favour of GqlClassification -func (e *Neo4jError) Classification() string { - e.parse() - return e.classification -} - -func (e *Neo4jError) Category() string { - e.parse() - return e.category -} - -func (e *Neo4jError) Title() string { - e.parse() - return e.title -} - -// parse code from Neo4j into usable parts. -// Code Neo.ClientError.General.ForbiddenReadOnlyDatabase is split into: -// -// Classification: ClientError -// Category: General -// Title: ForbiddenReadOnlyDatabase -func (e *Neo4jError) parse() { - if e.parsed { - return - } - e.parsed = true - e.reclassify() - parts := strings.Split(e.Code, ".") - if len(parts) != 4 { - return - } - e.classification = parts[1] - e.category = parts[2] - e.title = parts[3] -} - -// reclassify classifies specific errors coming from pre-5.x servers into their -// 5.x classifications -// this function can be removed once support for pre-5.x servers is dropped -func (e *Neo4jError) reclassify() { - switch e.Code { - case "Neo.TransientError.Transaction.LockClientStopped": - e.Code = "Neo.ClientError.Transaction.LockClientStopped" - case "Neo.TransientError.Transaction.Terminated": - e.Code = "Neo.ClientError.Transaction.Terminated" - } -} - -func (e *Neo4jError) HasSecurityCode() bool { - return strings.HasPrefix(e.Code, "Neo.ClientError.Security.") -} - -func (e *Neo4jError) IsAuthenticationFailed() bool { - return e.Code == "Neo.ClientError.Security.Unauthorized" -} - -func (e *Neo4jError) IsRetriable() bool { - return e.retriable || - e.IsRetriableTransient() || - e.IsRetriableCluster() || - e.Code == "Neo.ClientError.Security.AuthorizationExpired" -} - -func (e *Neo4jError) IsRetriableTransient() bool { - e.parse() - return e.classification == "TransientError" -} - -func (e *Neo4jError) IsRetriableCluster() bool { - switch e.Code { - case "Neo.ClientError.Cluster.NotALeader", "Neo.ClientError.General.ForbiddenOnReadOnlyDatabase": - return true - } - return false -} - -func (e *Neo4jError) MarkRetriable() { - e.retriable = true -} - -type FeatureNotSupportedError struct { - Server string - Feature string - Reason string -} - -func (e *FeatureNotSupportedError) Error() string { - return fmt.Sprintf("Server %s does not support: %s (%s)", e.Server, e.Feature, e.Reason) -} - -type UnsupportedTypeError struct { - Type reflect.Type -} - -func (e *UnsupportedTypeError) Error() string { - return fmt.Sprintf("Usage of type '%s' is not supported", e.Type.String()) -} - -type ProtocolError struct { - MessageType string - Field string - Err string -} - -func (e *ProtocolError) Error() string { - if e.MessageType == "" { - return fmt.Sprintf("ProtocolError: %s", e.Err) - } - if e.Field == "" { - return fmt.Sprintf("ProtocolError: message %s could not be hydrated: %s", e.MessageType, e.Err) - } - return fmt.Sprintf("ProtocolError: field %s of message %s could not be hydrated: %s", - e.Field, e.MessageType, e.Err) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/record.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/record.go deleted file mode 100644 index 54ddbbf..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/record.go +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -type Record struct { - // Values contains all the values in the record. - Values []any - // Keys contains names of the values in the record. - // Should not be modified. Same instance is used for all records within the same result. - Keys []string -} - -// Get returns the value corresponding to the given key along with a boolean that is true if -// a value was found and false if there were no key with the given name. -// -// If there are a lot of keys in combination with a lot of records to iterate, consider to retrieve -// values from Values slice directly or make a key -> index map before iterating. This implementation -// does not make or use a key -> index map since the overhead of making the map might not be beneficial -// for small and few records. -func (r Record) Get(key string) (any, bool) { - for i, ckey := range r.Keys { - if key == ckey { - return r.Values[i], true - } - } - return nil, false -} - -// AsMap returns a dictionary copy made of the record keys and the corresponding values -func (r Record) AsMap() map[string]any { - result := make(map[string]any, len(r.Keys)) - for i, key := range r.Keys { - result[key] = r.Values[i] - } - return result -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/summary.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/summary.go deleted file mode 100644 index 698a81c..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/db/summary.go +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -// Definitions of these should correspond to public API -type StatementType int - -const ( - StatementTypeUnknown StatementType = 0 - StatementTypeRead StatementType = 1 - StatementTypeReadWrite StatementType = 2 - StatementTypeWrite StatementType = 3 - StatementTypeSchemaWrite StatementType = 4 -) - -// Counter key names -const ( - NodesCreated = "nodes-created" - NodesDeleted = "nodes-deleted" - RelationshipsCreated = "relationships-created" - RelationshipsDeleted = "relationships-deleted" - PropertiesSet = "properties-set" - LabelsAdded = "labels-added" - LabelsRemoved = "labels-removed" - IndexesAdded = "indexes-added" - IndexesRemoved = "indexes-removed" - ConstraintsAdded = "constraints-added" - ConstraintsRemoved = "constraints-removed" - SystemUpdates = "system-updates" -) - -// Plan describes the actual plan that the database planner produced and used (or will use) to execute your statement. -// This can be extremely helpful in understanding what a statement is doing, and how to optimize it. For more details, -// see the Neo4j Manual. The plan for the statement is a tree of plans - each sub-tree containing zero or more child -// plans. The statement starts with the root plan. Each sub-plan is of a specific operator, which describes what -// that part of the plan does - for instance, perform an index lookup or filter results. -// The Neo4j Manual contains a reference of the available operator types, and these may differ across Neo4j versions. -type Plan struct { - // Operator is the operation this plan is performing. - Operator string - // Arguments for the operator. - // Many operators have arguments defining their specific behavior. This map contains those arguments. - Arguments map[string]any - // List of identifiers used by this plan. Identifiers used by this part of the plan. - // These can be both identifiers introduced by you, or automatically generated. - Identifiers []string - // Zero or more child plans. A plan is a tree, where each child is another plan. - // The children are where this part of the plan gets its input records - unless this is an operator that - // introduces new records on its own. - Children []Plan -} - -// ProfiledPlan is the same as a regular Plan - except this plan has been executed, meaning it also -// contains detailed information about how much work each step of the plan incurred on the database. -type ProfiledPlan struct { - // Operator contains the operation this plan is performing. - Operator string - // Arguments contains the arguments for the operator used. - // Many operators have arguments defining their specific behavior. This map contains those arguments. - Arguments map[string]any - // Identifiers contains a list of identifiers used by this plan. Identifiers used by this part of the plan. - // These can be both identifiers introduced by you, or automatically generated. - Identifiers []string - // DbHits contains the number of times this part of the plan touched the underlying data stores/ - DbHits int64 - // Records contains the number of records this part of the plan produced. - Records int64 - // Children contains zero or more child plans. A plan is a tree, where each child is another plan. - // The children are where this part of the plan gets its input records - unless this is an operator that - // introduces new records on its own. - Children []ProfiledPlan - PageCacheMisses int64 - PageCacheHits int64 - PageCacheHitRatio float64 - Time int64 -} - -// StreamSummary is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type StreamSummary struct { - HadRecord bool - HadKey bool -} - -type Notification struct { - Code string - Title string - Description string - Position *InputPosition - Severity string - Category string -} - -// GqlStatusObject represents a GqlStatusObject generated when executing a statement. -// A GqlStatusObject can be visualized in a client pinpointing problems or other information about the statement. -// Contrary to failures or errors, GqlStatusObjects do not affect the execution of the statement. -// -// GqlStatusObject is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type GqlStatusObject struct { - // Deprecated: for backward compatibility with Notification.Code only. - Code string - // Deprecated: for backward compatibility with Notification.Title only. - Title string - // Deprecated: for backward compatibility with Notification.Description only. - Description string - // GqlStatus returns the GQLSTATUS. - // The following GQLSTATUS codes denote codes that the driver will use for - // polyfilling (when connected to an old, non-GQL-aware server). Further, they may be used by servers - // during the transition-phase to GQLSTATUS-awareness. - // - "01N42" (warning - unknown warning) - // - "02N42" (no data - unknown subcondition) - // - "03N42" (informational - unknown notification) - // - "05N42" (general processing exception - unknown error) - // - // This means these codes are not guaranteed to be stable and may change in future versions. - GqlStatus string - // StatusDescription returns a description of the status. - StatusDescription string - // Position returns the position in the statement where this status points to. - // Not all statuses have a unique position to point to and in that case the position would be set to nil. - // - // Only Notifications (see IsNotification) have a meaningful position. - Position *InputPosition - // Classification returns the mapped Classification of this status. - // If the Classification is not a known value, Classification returns notifications.UnknownClassification. - // - // Only Notifications (see IsNotification) have a meaningful classification. - Classification string - // Severity returns the mapped Severity of this status. - // If the Severity is not a known value, Severity returns notifications.UnknownSeverity. - // - // Only Notifications (see IsNotification) have a meaningful severity. - Severity string - // DiagnosticRecord returns further information about the status for diagnostic purposes. - DiagnosticRecord map[string]any - // IsNotification returns true if this status is a Notification. - // - // Only some statuses are Notifications. - IsNotification bool -} - -// InputPosition contains information about a specific position in a statement -type InputPosition struct { - // Offset contains the character offset referred to by this position; offset numbers start at 0. - Offset int - // Line contains the line number referred to by this position; line numbers start at 1. - Line int - // Column contains the column number referred to by this position; column numbers start at 1. - Column int -} - -type ProtocolVersion struct { - Major int - Minor int -} - -type Summary struct { - Bookmark string - StmntType StatementType - ServerName string - Agent string - Major int - Minor int - Counters map[string]int - TFirst int64 - TLast int64 - Plan *Plan - ProfiledPlan *ProfiledPlan - Notifications []Notification - GqlStatusObjects []GqlStatusObject - Database string - ContainsSystemUpdates *bool - ContainsUpdates *bool - StreamSummary StreamSummary -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/graph.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/graph.go deleted file mode 100644 index 2195d86..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/graph.go +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 dbtype contains definitions of supported database types. -package dbtype - -type Entity interface { - // Deprecated: GetId is deprecated and will be removed in 6.0. Use GetElementId instead. - GetId() int64 - GetElementId() string - GetProperties() map[string]any -} - -// Node represents a node in the neo4j graph database -type Node struct { - // Deprecated: Id is deprecated and will be removed in 6.0. Use ElementId instead. - Id int64 // Id of this Node. - ElementId string // ElementId of this Node. - Labels []string // Labels attached to this Node. - Props map[string]any // Properties of this Node. -} - -func (n Node) GetId() int64 { - return n.Id -} - -func (n Node) GetElementId() string { - return n.ElementId -} - -func (n Node) GetProperties() map[string]any { - return n.Props -} - -// Relationship represents a relationship in the neo4j graph database -type Relationship struct { - // Deprecated: Id is deprecated and will be removed in 6.0. Use ElementId instead. - Id int64 // Id of this Relationship. - ElementId string // ElementId of this Relationship. - // Deprecated: StartId is deprecated and will be removed in 6.0. Use StartElementId instead. - StartId int64 // Id of the start Node of this Relationship. - StartElementId string // ElementId of the start Node of this Relationship. - // Deprecated: EndId is deprecated and will be removed in 6.0. Use EndElementId instead. - EndId int64 // Id of the end Node of this Relationship. - EndElementId string // ElementId of the end Node of this Relationship. - Type string // Type of this Relationship. - Props map[string]any // Properties of this Relationship. -} - -func (r Relationship) GetId() int64 { - return r.Id -} - -func (r Relationship) GetElementId() string { - return r.ElementId -} - -func (r Relationship) GetProperties() map[string]any { - return r.Props -} - -// Path represents a directed sequence of relationships between two nodes. -// This generally represents a traversal or walk through a graph and maintains a direction separate from that of any -// relationships traversed. It is allowed to be of size 0, meaning there are no relationships in it. In this case, -// it contains only a single node which is both the start and the end of the path. -type Path struct { - Nodes []Node // All the nodes in the path. - Relationships []Relationship -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/invalid.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/invalid.go deleted file mode 100644 index 308b89f..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/invalid.go +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 dbtype - -import "fmt" - -type InvalidValue struct { - Message string - Err error -} - -func (i *InvalidValue) String() string { - return fmt.Sprintf(`{"message": %q, "error": %q}`, i.Message, i.Err) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/spatial.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/spatial.go deleted file mode 100644 index 70cdf7f..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/spatial.go +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 dbtype - -import ( - "fmt" -) - -// Point2D represents a two dimensional point in a particular coordinate reference system. -type Point2D struct { - X float64 - Y float64 - SpatialRefId uint32 // Id of coordinate reference system. -} - -// Point3D represents a three dimensional point in a particular coordinate reference system. -type Point3D struct { - X float64 - Y float64 - Z float64 - SpatialRefId uint32 // Id of coordinate reference system. -} - -// String returns string representation of this point. -func (p Point2D) String() string { - return fmt.Sprintf("Point{SpatialRefId=%d, X=%f, Y=%f}", p.SpatialRefId, p.X, p.Y) -} - -// String returns string representation of this point. -func (p Point3D) String() string { - return fmt.Sprintf("Point{SpatialRefId=%d, X=%f, Y=%f, Z=%f}", p.SpatialRefId, p.X, p.Y, p.Z) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/temporal.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/temporal.go deleted file mode 100644 index 31823ec..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype/temporal.go +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 dbtype - -import ( - "fmt" - "time" -) - -// Cypher DateTime corresponds to Go time.Time - -type ( - Time time.Time // Time since start of day with timezone information - Date time.Time // Date value, without a time zone and time related components. - LocalTime time.Time // Time since start of day in local timezone - LocalDateTime time.Time // Date and time in local timezone -) - -// Time casts LocalDateTime to time.Time -// -// Note that the resulting time.Time will have its location set to time.Local. -// From the DBMS's perspective, however, a LocalDateTime is considered to not have any timezone information. -func (t LocalDateTime) Time() time.Time { - return time.Time(t) -} - -// String returns the string representation of this LocalDateTime in ISO-8601 compliant form: -// `YYYY-MM-DDThh:mm:ss.nnnnnnnnn`. -func (t LocalDateTime) String() string { - return t.Time().Format("2006-01-02T15:04:05.999999999") -} - -// Time casts LocalTime to time.Time -// -// Note that the resulting time.Time will have its location set to time.Local. -// From the DBMS's perspective, however, a LocalTime is considered to not have any timezone information. -func (t LocalTime) Time() time.Time { - return time.Time(t) -} - -// String returns the string representation of this LocalTime in ISO-8601 compliant form: -// `hh:mm:ss.nnnnnnnnn`. -func (t LocalTime) String() string { - return t.Time().Format("15:04:05.999999999") -} - -// Time casts Date to time.Time -func (t Date) Time() time.Time { - return time.Time(t) -} - -// String returns the string representation of this Date in ISO-8601 compliant form: -// `YYYY-MM-DD`. -func (t Date) String() string { - return t.Time().Format("2006-01-02") -} - -// Time casts Time to time.Time -func (t Time) Time() time.Time { - return time.Time(t) -} - -// String returns the string representation of this Time in ISO-8601 compliant form: -// `hh:mm:ss.nnnnnnnnn±Z/hh:mm`. -func (t Time) String() string { - return t.Time().Format("15:04:05.999999999Z07:00") -} - -// Duration represents temporal amount containing months, days, seconds and nanoseconds. -// Supports longer durations than time.Duration -type Duration struct { - Months int64 - Days int64 - Seconds int64 - Nanos int -} - -// String returns the string representation of this Duration in ISO-8601 compliant form. -func (d Duration) String() string { - sign := "" - if d.Seconds < 0 && d.Nanos > 0 { - d.Seconds++ - d.Nanos = int(time.Second) - d.Nanos - - if d.Seconds == 0 { - sign = "-" - } - } - - timePart := "" - if d.Nanos == 0 { - timePart = fmt.Sprintf("%s%d", sign, d.Seconds) - } else { - timePart = fmt.Sprintf("%s%d.%09d", sign, d.Seconds, d.Nanos) - } - - return fmt.Sprintf("P%dM%dDT%sS", d.Months, d.Days, timePart) -} - -func (d1 Duration) Equal(d2 Duration) bool { - return d1.Months == d2.Months && d1.Days == d2.Days && d1.Seconds == d2.Seconds && d1.Nanos == d2.Nanos -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/directrouter.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/directrouter.go deleted file mode 100644 index 08426b3..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/directrouter.go +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// A router implementation that never routes -type directRouter struct { - address string -} - -func (r *directRouter) InvalidateWriter(string, string) {} - -func (r *directRouter) InvalidateReader(string, string) {} - -func (r *directRouter) InvalidateServer(string) {} - -func (r *directRouter) GetOrUpdateReaders(context.Context, func(context.Context) ([]string, error), db.DatabaseSelection, *db.ReAuthToken, log.BoltLogger, func(string)) ([]string, error) { - return []string{r.address}, nil -} - -func (r *directRouter) Readers(string) []string { - return []string{r.address} -} - -func (r *directRouter) GetOrUpdateWriters(context.Context, func(context.Context) ([]string, error), db.DatabaseSelection, *db.ReAuthToken, log.BoltLogger, func(string)) ([]string, error) { - return []string{r.address}, nil -} - -func (r *directRouter) Writers(string) []string { - return []string{r.address} -} - -func (r *directRouter) GetNameOfDefaultDatabase(context.Context, []string, string, *db.ReAuthToken, log.BoltLogger) (string, error) { - return db.DefaultDatabase, nil -} - -func (r *directRouter) Invalidate(string) {} - -func (r *directRouter) CleanUp() {} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver.go deleted file mode 100644 index e5b9309..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver.go +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j provides required functionality to connect and execute statements against a Neo4j Database. -package neo4j - -import ( - "context" - "net/url" -) - -// Driver represents a pool(s) of connections to a neo4j server or cluster. It's -// safe for concurrent use. -// -// Deprecated: please use DriverWithContext instead. This interface will be removed in 6.0. -type Driver interface { - // Target returns the url this driver is bootstrapped - Target() url.URL - // NewSession creates a new session based on the specified session configuration. - NewSession(config SessionConfig) Session - // VerifyConnectivity checks that the driver can connect to a remote server or cluster by - // establishing a network connection with the remote. Returns nil if succesful - // or error describing the problem. - VerifyConnectivity() error - // Close the driver and all underlying connections. - // This function may not be called while the driver is in use (i.e., concurrently). - // - // Connections that are still in use will be closed lazily when returned to the connection pool. - // This can lead to behavior that is hard to predict and which depends on driver implementation details. - // Therefore, it is strongly recommended to make sure you are done using the driver and have closed - // all resources spawned from it (such as sessions or transactions) before calling the method - Close() error - // IsEncrypted determines whether the driver communication with the server - // is encrypted. This is a static check. The function can also be called on - // a closed Driver. - IsEncrypted() bool -} - -// NewDriver is the entry point to the neo4j driver to create an instance of a Driver. It is the first function to -// be called in order to establish a connection to a neo4j database. It requires a Bolt URI and an authentication -// token as parameters and can also take optional configuration function(s) as variadic parameters. -// -// In order to connect to a single instance database, you need to pass a URI with scheme 'bolt', 'bolt+s' or 'bolt+ssc'. -// -// driver, err = NewDriver("bolt://db.server:7687", BasicAuth(username, password)) -// -// In order to connect to a causal cluster database, you need to pass a URI with scheme 'neo4j', 'neo4j+s' or 'neo4j+ssc' -// and its host part set to be one of the core cluster members. -// -// driver, err = NewDriver("neo4j://core.db.server:7687", BasicAuth(username, password)) -// -// You can override default configuration options by providing a configuration function(s) -// -// driver, err = NewDriver(uri, BasicAuth(username, password), function (config *Config) { -// config.MaxConnectionPoolSize = 10 -// }) -// -// Deprecated: please use NewDriverWithContext instead. This function will be removed in 6.0. -func NewDriver(target string, auth AuthToken, configurers ...func(*Config)) (Driver, error) { - delegate, err := NewDriverWithContext(target, auth, configurers...) - if err != nil { - return nil, err - } - return &driver{delegate: delegate}, nil -} - -type driver struct { - delegate DriverWithContext -} - -func (d *driver) Target() url.URL { - return d.delegate.Target() -} - -func (d *driver) NewSession(config SessionConfig) Session { - return d.delegate.NewSession(context.Background(), config).legacy() -} - -func (d *driver) VerifyConnectivity() error { - return d.delegate.VerifyConnectivity(context.Background()) -} - -func (d *driver) Close() error { - return d.delegate.Close(context.Background()) -} - -func (d *driver) IsEncrypted() bool { - return d.delegate.IsEncrypted() -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context.go deleted file mode 100644 index e8f9bf2..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context.go +++ /dev/null @@ -1,744 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j provides required functionality to connect and execute statements against a Neo4j Database. -package neo4j - -import ( - "context" - "fmt" - "net/url" - "strings" - "sync" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// AccessMode defines modes that routing driver decides to which cluster member -// a connection should be opened. -type AccessMode int - -const ( - // AccessModeWrite tells the driver to use a connection to 'Leader' - AccessModeWrite AccessMode = 0 - // AccessModeRead tells the driver to use a connection to one of the 'Follower' or 'Read Replica'. - AccessModeRead AccessMode = 1 -) - -// DriverWithContext represents a pool of connections to a neo4j server or cluster. It's -// safe for concurrent use. -type DriverWithContext interface { - // ExecuteQueryBookmarkManager returns the bookmark manager instance used by ExecuteQuery by default. - // - // This is useful when ExecuteQuery is called without custom bookmark managers and the lower-level - // neo4j.SessionWithContext APIs are called as well. - // In that case, the recommended approach is as follows: - // results, err := neo4j.ExecuteQuery(ctx, driver, query, params, transformerFunc) - // // [...] do something with results and error - // bookmarkManager := driver.ExecuteQueryBookmarkManager() - // // maintain consistency with sessions as well - // session := driver.NewSession(ctx, neo4j.SessionConfig {BookmarkManager: bookmarkManager}) - // // [...] run something within the session - ExecuteQueryBookmarkManager() BookmarkManager - // Target returns the url this driver is bootstrapped - Target() url.URL - // NewSession creates a new session based on the specified session configuration. - NewSession(ctx context.Context, config SessionConfig) SessionWithContext - // VerifyConnectivity checks that the driver can connect to a remote server or cluster by - // establishing a network connection with the remote. Returns nil if successful - // or error describing the problem. - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - VerifyConnectivity(ctx context.Context) error - // VerifyAuthentication verifies that the authentication information is valid. - // - // It's much like `DriverWithContext.VerifyConnectivity`, but for checking authentication. - // - // Passing `nil` as `auth` will use the authentication information that was used to create the driver. - // - // Tries to establish a working read connection to the remote server or a member of a cluster and exchange some data. - // In a cluster, there is no guarantee about which server will be contacted. - // If the data exchange is successful, the authentication information is valid no error is returned. - // Otherwise, the error will be matched against a list of known authentication errors. - // If the error is on that list, an `neo4j.InvalidAuthenticationError` is returned. - // Otherwise, the original error is returned. - VerifyAuthentication(ctx context.Context, auth *AuthToken) error - // Close the driver and all underlying connections. - // This function may not be called while the driver is in use (i.e., concurrently). - // - // Connections that are still in use will be closed lazily when returned to the connection pool. - // This can lead to behavior that is hard to predict and which depends on driver implementation details. - // Therefore, it is strongly recommended to make sure you are done using the driver and have closed - // all resources spawned from it (such as sessions or transactions) before calling the method - Close(ctx context.Context) error - // IsEncrypted determines whether the driver communication with the server - // is encrypted. This is a static check. The function can also be called on - // a closed Driver. - IsEncrypted() bool - // GetServerInfo attempts to obtain server information from the target Neo4j - // deployment - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - GetServerInfo(ctx context.Context) (ServerInfo, error) -} - -// ResultTransformer is a record accumulator that produces an instance of T when the processing of records is over. -type ResultTransformer[T any] interface { - // Accept is called whenever a new record is fetched from the server - // Implementers are free to accumulate or discard the specified record - Accept(*Record) error - - // Complete is called when the record fetching is over and no error occurred. - // In particular, it is important to note that Accept may be called several times before an error occurs. - // In that case, Complete will not be called. - Complete(keys []string, summary ResultSummary) (T, error) -} - -// NewDriverWithContext is the entry point to the neo4j driver to create an instance of a Driver. It is the first function to -// be called in order to establish a connection to a neo4j database. It requires a Bolt URI and authentication -// as parameters and can also take optional configuration function(s) as variadic parameters. -// -// No connectivity happens when NewDriverWithContext is called. -// Call DriverWithContext.VerifyConnectivity once the driver is created if you want to eagerly check that the provided -// URI and credentials are correct. -// -// In order to connect to a single instance database, you need to pass a URI with scheme 'bolt', 'bolt+s' or 'bolt+ssc'. -// -// driver, err = NewDriverWithContext("bolt://db.server:7687", BasicAuth(username, password)) -// -// In order to connect to a causal cluster database, you need to pass a URI with scheme 'neo4j', 'neo4j+s' or 'neo4j+ssc' -// and its host part set to be one of the core cluster members. -// -// driver, err = NewDriverWithContext("neo4j://core.db.server:7687", BasicAuth(username, password)) -// -// You can override default configuration options by providing a configuration function(s) -// -// driver, err = NewDriverWithContext(uri, BasicAuth(username, password), function (config *Config) { -// config.MaxConnectionPoolSize = 10 -// }) -// -// The authentication can be nil, in which case the driver will not authenticate with the server. -// Else, an implementation of `auth.TokenManager` is required. -// The `neo4j` package provides default implementations of `auth.TokenManager` for common authentication schemes: -// - `neo4j.NoAuth` (equivalent to `nil`) -// - `neo4j.BasicAuth` -// - `neo4j.KerberosAuth` -// - `neo4j.BearerAuth` -// - `neo4j.CustomAuth` -func NewDriverWithContext(target string, auth auth.TokenManager, configurers ...func(*Config)) (DriverWithContext, error) { - parsed, err := url.Parse(target) - if err != nil { - return nil, err - } - - d := driverWithContext{target: parsed, mut: sync.Mutex{}, auth: auth} - - routing := true - d.connector.Network = "tcp" - address := parsed.Host - switch parsed.Scheme { - case "bolt": - routing = false - d.connector.SkipEncryption = true - case "bolt+unix": - // bolt+unix:// - routing = false - d.connector.SkipEncryption = true - d.connector.Network = "unix" - if parsed.Host != "" { - return nil, &UsageError{ - Message: fmt.Sprintf("Host part should be empty for scheme %s", parsed.Scheme), - } - } - address = parsed.Path - case "bolt+s": - routing = false - case "bolt+ssc": - d.connector.SkipVerify = true - routing = false - case "neo4j": - d.connector.SkipEncryption = true - case "neo4j+ssc": - d.connector.SkipVerify = true - case "neo4j+s": - default: - return nil, &UsageError{ - Message: fmt.Sprintf("URI scheme %s is not supported", parsed.Scheme), - } - } - - if parsed.Host != "" && parsed.Port() == "" { - address += ":7687" - parsed.Host = address - } - - if !routing && len(parsed.RawQuery) > 0 { - return nil, &UsageError{ - Message: fmt.Sprintf("Routing context is not supported for URL scheme %s", parsed.Scheme), - } - } - - // Apply client hooks for setting up configuration - d.config = defaultConfig() - for _, configurer := range configurers { - configurer(d.config) - } - if err := validateAndNormaliseConfig(d.config); err != nil { - return nil, err - } - if auth == nil { - auth = NoAuth() - } - - // Setup logging - d.log = d.config.Log - if d.log == nil { - // Default to void logger - d.log = log.ToVoid() - } - d.logId = log.NewId() - - routingContext, err := routingContextFromUrl(routing, parsed) - if err != nil { - return nil, err - } - - d.connector.Log = d.log - d.connector.LogId = d.logId - d.connector.RoutingContext = routingContext - d.connector.Config = d.config - - // Create cache for home database - d.cache, err = homedb.NewCache(homedb.DefaultCacheMaxSize) - if err != nil { - return nil, err - } - - // Let the pool use the same log ID as the driver to simplify log reading. - d.pool = pool.New(d.config, d.connector.Connect, d.log, d.logId, d.cache) - - if !routing { - d.router = &directRouter{address: address} - } else { - var routersResolver func() []string - addressResolverHook := d.config.AddressResolver - if addressResolverHook != nil { - routersResolver = func() []string { - addresses := addressResolverHook(parsed) - servers := make([]string, len(addresses)) - for i, a := range addresses { - servers[i] = fmt.Sprintf("%s:%s", a.Hostname(), a.Port()) - } - return servers - } - } - // Let the router use the same log ID as the driver to simplify log reading. - d.router = router.New( - address, - routersResolver, - routingContext, - d.pool, - d.config.ConnectionLivenessCheckTimeout, - d.log, - d.logId, - ) - } - - d.pool.SetRouter(d.router) - - d.log.Infof(log.Driver, d.logId, "Created { target: %s }", address) - return &d, nil -} - -const routingContextAddressKey = "address" - -func routingContextFromUrl(useRouting bool, u *url.URL) (map[string]string, error) { - if !useRouting { - return nil, nil - } - queryValues := u.Query() - routingContext := make(map[string]string, len(queryValues)+1 /*For address*/) - for k, vs := range queryValues { - if len(vs) > 1 { - return nil, &UsageError{ - Message: fmt.Sprintf("Duplicated routing context key '%s'", k), - } - } - if len(vs) == 0 { - return nil, &UsageError{ - Message: fmt.Sprintf("Empty routing context key '%s'", k), - } - } - v := vs[0] - v = strings.TrimSpace(v) - if len(v) == 0 { - return nil, &UsageError{ - Message: fmt.Sprintf("Empty routing context value for key '%s'", k), - } - } - if k == routingContextAddressKey { - return nil, &UsageError{Message: fmt.Sprintf("Illegal key '%s' for routing context", k)} - } - routingContext[k] = v - } - routingContext[routingContextAddressKey] = u.Host - return routingContext, nil -} - -type sessionRouter interface { - // GetOrUpdateReaders returns the list of servers that can serve reads on the requested database. - // note: bookmarks are lazily supplied, only when a new routing table needs to be fetched - // this is needed because custom bookmark managers may provide bookmarks from external systems - // they should not be called when it is not needed (e.g. when a routing table is cached) - GetOrUpdateReaders(ctx context.Context, bookmarks func(context.Context) ([]string, error), dbSelection idb.DatabaseSelection, auth *idb.ReAuthToken, boltLogger log.BoltLogger, onRoutingTableUpdated func(string)) ([]string, error) - // Readers returns the list of servers that can serve reads on the requested database. - Readers(database string) []string - // GetOrUpdateWriters returns the list of servers that can serve writes on the requested database. - // note: bookmarks are lazily supplied, see Readers documentation to learn why - GetOrUpdateWriters(ctx context.Context, bookmarks func(context.Context) ([]string, error), dbSelection idb.DatabaseSelection, auth *idb.ReAuthToken, boltLogger log.BoltLogger, onRoutingTableUpdated func(string)) ([]string, error) - // Writers returns the list of servers that can serve writes on the requested database. - Writers(database string) []string - // GetNameOfDefaultDatabase returns the name of the default database for the specified user. - // The correct database name is needed when requesting readers or writers. - // the bookmarks are eagerly provided since this method always fetches a new routing table - GetNameOfDefaultDatabase(ctx context.Context, bookmarks []string, user string, auth *idb.ReAuthToken, boltLogger log.BoltLogger) (string, error) - Invalidate(db string) - CleanUp() - InvalidateWriter(db string, server string) - InvalidateReader(db string, server string) - InvalidateServer(server string) -} - -type driverWithContext struct { - target *url.URL - config *Config - pool *pool.Pool - mut sync.Mutex - connector connector.Connector - router sessionRouter - logId string - log log.Logger - // visible for tests - executeQueryBookmarkManagerInitializer sync.Once - // instance of the bookmark manager only used by default by managed sessions of ExecuteQuery - // this is *not* used by default by user-created session (see NewSession) - executeQueryBookmarkManager BookmarkManager - auth auth.TokenManager - cache *homedb.Cache -} - -func (d *driverWithContext) Target() url.URL { - return *d.target -} - -func (d *driverWithContext) NewSession(ctx context.Context, config SessionConfig) SessionWithContext { - if config.DatabaseName == "" { - config.DatabaseName = idb.DefaultDatabase - } - - var reAuthToken *idb.ReAuthToken - if config.Auth == nil { - reAuthToken = &idb.ReAuthToken{ - Manager: d.auth, - FromSession: false, - ForceReAuth: config.forceReAuth, - } - } else { - reAuthToken = &idb.ReAuthToken{ - Manager: config.Auth, - FromSession: true, - ForceReAuth: config.forceReAuth, - } - } - - d.mut.Lock() - defer d.mut.Unlock() - if d.pool == nil { - return &erroredSessionWithContext{ - err: &UsageError{Message: "Trying to create session on closed driver"}} - } - return newSessionWithContext(ctx, d.config, config, d.router, d.pool, d.cache, d.log, reAuthToken) -} - -func (d *driverWithContext) VerifyConnectivity(ctx context.Context) error { - _, err := d.GetServerInfo(ctx) - return err -} - -func (d *driverWithContext) IsEncrypted() bool { - return !d.connector.SkipEncryption -} - -func (d *driverWithContext) GetServerInfo(ctx context.Context) (_ ServerInfo, err error) { - session := d.NewSession(ctx, SessionConfig{}) - defer func() { - err = deferredClose(ctx, session, err) - }() - return session.getServerInfo(ctx) -} - -func (d *driverWithContext) Close(ctx context.Context) error { - d.mut.Lock() - defer d.mut.Unlock() - if d.pool == nil { - // Safeguard against closing more than once - return nil - } - pool := d.pool - d.pool = nil - - pool.Close(ctx) - pool = nil - d.log.Infof(log.Driver, d.logId, "Closed") - return nil -} - -func (d *driverWithContext) VerifyAuthentication(ctx context.Context, auth *AuthToken) (err error) { - session := d.NewSession(ctx, SessionConfig{Auth: auth, forceReAuth: true, DatabaseName: "system"}) - defer func() { - err = deferredClose(ctx, session, err) - }() - err = session.verifyAuthentication(ctx) - - if tokenExpiredError, ok := err.(*TokenExpiredError); ok { - return &InvalidAuthenticationError{inner: tokenExpiredError} - } - if neo4jError, ok := err.(*Neo4jError); ok { - if neo4jError.Code == "Neo.ClientError.Security.CredentialsExpired" || - neo4jError.Code == "Neo.ClientError.Security.Forbidden" || - neo4jError.Code == "Neo.ClientError.Security.Unauthorized" { - return &InvalidAuthenticationError{inner: neo4jError} - } - } - return err -} - -// ExecuteQuery runs the specified query with its parameters and returns the query result, transformed by the specified -// ResultTransformer function. -// -// result, err := ExecuteQuery[*EagerResult](ctx, driver, query, params, EagerResultTransformer) -// -// Passing a nil ResultTransformer function is invalid and will return an error. -// -// Likewise, passing a function that returns a nil ResultTransformer is invalid and will return an error. -// -// ExecuteQuery runs the query in a single explicit, retryable transaction within a session entirely managed by -// the driver. -// -// Retries occur in the same conditions as when calling SessionWithContext.ExecuteRead and -// SessionWithContext.ExecuteWrite. -// -// Because it is an explicit transaction from the server point of view, Cypher queries using -// "CALL {} IN TRANSACTIONS" or the older "USING PERIODIC COMMIT" construct will not work (call -// SessionWithContext.Run for these). -// -// Specific settings can be configured via configuration callbacks. Built-in callbacks are provided such as: -// -// neo4j.ExecuteQueryWithDatabase -// neo4j.ExecuteQueryWithWritersRouting -// ... -// -// see neo4j.ExecuteQueryConfiguration for all possibilities. -// -// These built-in callbacks can be used and combined as follows: -// -// ExecuteQuery[T](ctx, driver, query, params, transformerFunc, -// neo4j.ExecuteQueryWithDatabase("my-db"), -// neo4j.ExecuteQueryWithWritersRouting()) -// -// For complete control over the configuration, you can also define your own callback: -// -// ExecuteQuery[T](ctx, driver, query, params, transformerFunc, func(config *neo4j.ExecuteQueryConfiguration) { -// config.Database = "my-db" -// config.RoutingControl = neo4j.Write -// config.ImpersonatedUser = "selda_bağcan" -// }) -// -// ExecuteQuery causal consistency is guaranteed by default across different successful calls to ExecuteQuery -// targeting the same database. -// In other words, a successful read query run by ExecuteQuery is guaranteed to be able to read results created -// from a previous successful write query run by ExecuteQuery on the same database. -// This is achieved through the use of bookmarks, managed by a default neo4j.BookmarkManager instance. -// This default BookmarkManager instance can be retrieved with DriverWithContext.DefaultExecuteQueryBookmarkManager. -// Such a consistency guarantee is *not* maintained between ExecuteQuery calls and the lower-level -// neo4j.SessionWithContext API calls, unless sessions are explicitly configured with the same bookmark manager. -// That guarantee may also break if a custom implementation of neo4j.BookmarkManager is provided via for instance -// the built-in callback neo4j.ExecuteQueryWithBookmarkManager. -// You can disable bookmark management by passing the neo4j.ExecuteQueryWithoutBookmarkManager callback to ExecuteQuery. -// -// The equivalent functionality of ExecuteQuery can be replicated with sessions and transaction functions as follows: -// -// // all the error handling bits have been omitted for brevity (do not do this in production!) -// session := driver.NewSession(ctx, neo4j.SessionConfig{ -// DatabaseName: "", -// ImpersonatedUser: "", -// BookmarkManager: bookmarkManager, -// }) -// defer handleClose(ctx, session) -// // session.ExecuteRead is called if the routing is set to neo4j.Read -// result, _ := session.ExecuteWrite(ctx, func(tx neo4j.ManagedTransaction) (any, error) { -// result, _ := tx.Run(ctx, "", parameters) -// records, _ := result.Collect(ctx) // real implementation does not use Collect -// keys, _ := result.Keys() -// summary, _ := result.Consume(ctx) -// return &neo4j.EagerResult{ -// Keys: keys, -// Records: records, -// Summary: summary, -// }, nil -// }) -// eagerResult := result.(*neo4j.EagerResult) -// // do something with eagerResult -// -// The available ResultTransformer implementation, EagerResultTransformer, computes an *EagerResult. -// As the latter's name suggests, this is not optimal when the result is made from a large number of records. -// In that situation, it is advised to create a custom implementation of ResultTransformer APIs, which do not require -// keeping all records in memory. -// -// The provided ResultTransformer function may be called several times since ExecuteQuery relies on transaction -// functions. -// Since ResultTransformer implementations are inherently stateful, the function must return a new ResultTransformer -// instance every time it is called. -// -// Contexts terminating too early negatively affect connection pooling and degrade the driver performance. -func ExecuteQuery[T any]( - ctx context.Context, - driver DriverWithContext, - query string, - parameters map[string]any, - newResultTransformer func() ResultTransformer[T], - settings ...ExecuteQueryConfigurationOption) (res T, err error) { - - if driver == nil { - return *new(T), &UsageError{Message: "nil is not a valid DriverWithContext argument."} - } - - if newResultTransformer == nil { - return *new(T), &UsageError{Message: "nil is not a valid ResultTransformer function argument. " + - "Consider passing EagerResultTransformer or a function that returns an instance of your own " + - "ResultTransformer implementation"} - } - - bookmarkManager := driver.ExecuteQueryBookmarkManager() - configuration := &ExecuteQueryConfiguration{ - BookmarkManager: bookmarkManager, - } - for _, setter := range settings { - setter(configuration) - } - session := driver.NewSession(ctx, configuration.toSessionConfig()) - defer func() { - err = errorutil.CombineAllErrors(err, session.Close(ctx)) - }() - txFunction, err := configuration.selectTxFunctionApi(session) - if err != nil { - return *new(T), err - } - result, err := txFunction(ctx, executeQueryCallback(ctx, query, parameters, newResultTransformer), configuration.TransactionConfigurers...) - if err != nil { - return *new(T), err - } - return result.(T), err -} - -func (d *driverWithContext) ExecuteQueryBookmarkManager() BookmarkManager { - d.executeQueryBookmarkManagerInitializer.Do(func() { - if d.executeQueryBookmarkManager == nil { // this allows tests to init the field themselves - d.executeQueryBookmarkManager = NewBookmarkManager(BookmarkManagerConfig{}) - } - }) - return d.executeQueryBookmarkManager -} - -func executeQueryCallback[T any]( - ctx context.Context, - query string, - parameters map[string]any, - newTransformer func() ResultTransformer[T]) ManagedTransactionWork { - - return func(tx ManagedTransaction) (any, error) { - transformer := newTransformer() - if transformer == nil { - return nil, &UsageError{Message: "expected the result transformer function to return a valid " + - "ResultTransformer instance, but got nil"} - } - cursor, err := tx.Run(ctx, query, parameters) - if err != nil { - return nil, err - } - for cursor.Next(ctx) { - if err := transformer.Accept(cursor.Record()); err != nil { - return nil, err - } - } - if err = cursor.Err(); err != nil { - return nil, err - } - keys, err := cursor.Keys() - if err != nil { - return nil, err - } - summary, err := cursor.Consume(ctx) - if err != nil { - return nil, err - } - return transformer.Complete(keys, summary) - } -} - -func EagerResultTransformer() ResultTransformer[*EagerResult] { - return &eagerResultTransformer{} -} - -type eagerResultTransformer struct { - records []*Record -} - -func (e *eagerResultTransformer) Accept(record *Record) error { - e.records = append(e.records, record) - return nil -} - -func (e *eagerResultTransformer) Complete(keys []string, summary ResultSummary) (*EagerResult, error) { - return &EagerResult{ - Keys: keys, - Records: e.records, - Summary: summary, - }, nil -} - -// ExecuteQueryConfigurationOption is a callback that configures the execution of neo4j.ExecuteQuery -type ExecuteQueryConfigurationOption func(*ExecuteQueryConfiguration) - -// ExecuteQueryWithReadersRouting configures neo4j.ExecuteQuery to route to reader members of the cluster -func ExecuteQueryWithReadersRouting() ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.Routing = Read - } -} - -// ExecuteQueryWithWritersRouting configures neo4j.ExecuteQuery to route to writer members of the cluster -func ExecuteQueryWithWritersRouting() ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.Routing = Write - } -} - -// ExecuteQueryWithImpersonatedUser configures neo4j.ExecuteQuery to impersonate the specified user -func ExecuteQueryWithImpersonatedUser(user string) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.ImpersonatedUser = user - } -} - -// ExecuteQueryWithDatabase configures neo4j.ExecuteQuery to target the specified database -func ExecuteQueryWithDatabase(db string) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.Database = db - } -} - -// ExecuteQueryWithBookmarkManager configures neo4j.ExecuteQuery to rely on the specified BookmarkManager -func ExecuteQueryWithBookmarkManager(bookmarkManager BookmarkManager) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.BookmarkManager = bookmarkManager - } -} - -// ExecuteQueryWithoutBookmarkManager configures neo4j.ExecuteQuery to not rely on any BookmarkManager -func ExecuteQueryWithoutBookmarkManager() ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.BookmarkManager = nil - } -} - -// ExecuteQueryWithBoltLogger configures neo4j.ExecuteQuery to log Bolt messages with the provided BoltLogger -func ExecuteQueryWithBoltLogger(boltLogger log.BoltLogger) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.BoltLogger = boltLogger - } -} - -// ExecuteQueryWithTransactionConfig configures neo4j.ExecuteQuery with additional transaction configuration. -func ExecuteQueryWithTransactionConfig(configurers ...func(*TransactionConfig)) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.TransactionConfigurers = configurers - } -} - -// ExecuteQueryWithAuthToken configures neo4j.ExecuteQuery to overwrite the AuthToken for the session. -func ExecuteQueryWithAuthToken(auth AuthToken) ExecuteQueryConfigurationOption { - return func(configuration *ExecuteQueryConfiguration) { - configuration.Auth = &auth - } -} - -// ExecuteQueryConfiguration holds all the possible configuration settings for neo4j.ExecuteQuer -type ExecuteQueryConfiguration struct { - Routing RoutingControl - ImpersonatedUser string - Database string - BookmarkManager BookmarkManager - BoltLogger log.BoltLogger - TransactionConfigurers []func(*TransactionConfig) - Auth *AuthToken -} - -// RoutingControl specifies how the query executed by neo4j.ExecuteQuery is to be routed -type RoutingControl int - -const ( - // Write routes the query to execute to a writer member of the cluster - Write RoutingControl = iota - // Read routes the query to execute to a reader member of the cluster - Read -) - -func (c *ExecuteQueryConfiguration) toSessionConfig() SessionConfig { - return SessionConfig{ - ImpersonatedUser: c.ImpersonatedUser, - DatabaseName: c.Database, - BookmarkManager: c.BookmarkManager, - BoltLogger: c.BoltLogger, - Auth: c.Auth, - } -} - -type transactionFunction func(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) - -func (c *ExecuteQueryConfiguration) selectTxFunctionApi(session SessionWithContext) (transactionFunction, error) { - switch c.Routing { - case Read: - return session.executeQueryRead, nil - case Write: - return session.executeQueryWrite, nil - } - return nil, fmt.Errorf("unsupported routing control, expected %d (Write) or %d (Read) "+ - "but got: %d", Write, Read, c.Routing) -} - -// EagerResult holds the result and result metadata of the query executed via neo4j.ExecuteQuery -type EagerResult struct { - Keys []string - Records []*Record - Summary ResultSummary -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context_testkit.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context_testkit.go deleted file mode 100644 index 141651d..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/driver_with_context_testkit.go +++ /dev/null @@ -1,76 +0,0 @@ -//go:build internal_neo4j_go_driver_testkit && internal_neo4j_go_driver_time_mock - -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "fmt" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type RoutingTable = idb.RoutingTable - -func ForceRoutingTableUpdate(d DriverWithContext, database string, bookmarks []string, logger log.BoltLogger) error { - driver := d.(*driverWithContext) - ctx := context.Background() - driver.router.Invalidate(database) - getBookmarks := func(context.Context) ([]string, error) { - return bookmarks, nil - } - auth := &idb.ReAuthToken{ - Manager: driver.auth, - FromSession: false, - ForceReAuth: false, - } - dbSelection := idb.DatabaseSelection{Name: database} - _, err := driver.router.GetOrUpdateReaders(ctx, getBookmarks, dbSelection, auth, logger, func(db string) { - if dbSelection.Name == "" { - dbSelection.Name = db - } - }) - if err != nil { - return errorutil.WrapError(err) - } - _, err = driver.router.GetOrUpdateWriters(ctx, getBookmarks, dbSelection, auth, logger, nil) - return errorutil.WrapError(err) -} - -func RegisterDnsResolver(d DriverWithContext, hook func(address string) []string) { - d.(*driverWithContext).connector.TestKitDnsResolver = hook -} - -func GetRoutingTable(d DriverWithContext, database string) (*RoutingTable, error) { - driver := d.(*driverWithContext) - router, ok := driver.router.(*router.Router) - if !ok { - return nil, fmt.Errorf("GetRoutingTable is only supported for direct drivers") - } - table := router.GetTable(database) - return table, nil -} - -var Now = itime.Now -var FreezeTime = itime.FreezeTime -var TickTime = itime.TickTime -var UnfreezeTime = itime.UnfreezeTime diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/error.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/error.go deleted file mode 100644 index 50ddf1c..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/error.go +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry" -) - -// IsRetryable determines whether an operation can be retried based on the error -// it triggered. This API is meant for use in scenarios where users want to -// implement their own retry mechanism. -// A similar logic is used by the driver for transaction functions. -// -// NOTE: This does not apply when running auto-commit transactions (Session.Run/SessionWithContext.Run) -func IsRetryable(err error) bool { - if err == nil { - return false - } - return retry.IsRetryable(err) -} - -// Neo4jError represents errors originating from Neo4j service. -// Alias for convenience. This error is defined in db package and -// used internally. -type Neo4jError = db.Neo4jError - -type UsageError = errorutil.UsageError - -type ConnectivityError = errorutil.ConnectivityError - -type TransactionExecutionLimit = errorutil.TransactionExecutionLimit - -type InvalidAuthenticationError struct { - inner error -} - -func (i *InvalidAuthenticationError) Error() string { - return fmt.Sprintf("InvalidAuthenticationError: %s", i.inner.Error()) -} - -func (i *InvalidAuthenticationError) Unwrap() error { - return i.inner -} - -// IsNeo4jError returns true if the provided error is an instance of Neo4jError. -func IsNeo4jError(err error) bool { - _, is := err.(*Neo4jError) - return is -} - -// IsUsageError returns true if the provided error is an instance of UsageError. -func IsUsageError(err error) bool { - _, is := err.(*UsageError) - return is -} - -// IsConnectivityError returns true if the provided error is an instance of ConnectivityError. -func IsConnectivityError(err error) bool { - _, is := err.(*ConnectivityError) - return is -} - -// IsTransactionExecutionLimit returns true if the provided error is an instance of TransactionExecutionLimit. -func IsTransactionExecutionLimit(err error) bool { - _, is := err.(*TransactionExecutionLimit) - return is -} - -type TokenExpiredError = errorutil.TokenExpiredError - -type ctxCloser interface { - Close(ctx context.Context) error -} - -func deferredClose(ctx context.Context, closer ctxCloser, prevErr error) error { - return errorutil.CombineErrors(prevErr, closer.Close(ctx)) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/graph.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/graph.go deleted file mode 100644 index 37636aa..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/graph.go +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "fmt" - "time" -) - -type PropertyValue interface { - bool | int64 | float64 | string | - Point2D | Point3D | - Date | LocalTime | LocalDateTime | Time | Duration | time.Time | /* OffsetTime == Time == dbtype.Time */ - []byte | []any -} - -// GetProperty returns the value matching the property of the given neo4j.Node or neo4j.Relationship -// The property type T must adhere to neo4j.PropertyValue -// If the property does not exist, an error is returned -// If the property type does not match the type specification, an error is returned -// -// Note: due to the current limited generics support, any property array value other than byte array is typed as []any. -func GetProperty[T PropertyValue](entity Entity, key string) (T, error) { - rawValue, found := entity.GetProperties()[key] - if !found { - return *new(T), fmt.Errorf("could not find any property named %s", key) - } - value, ok := rawValue.(T) - if !ok { - zeroValue := *new(T) - return zeroValue, fmt.Errorf("expected value to have type %T but found type %T", zeroValue, rawValue) - } - return value, nil -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth/auth.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth/auth.go deleted file mode 100644 index cbc5ed3..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth/auth.go +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 auth - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" -) - -type Token struct { - Tokens map[string]any -} - -func (a Token) GetAuthToken(context.Context) (Token, error) { - return a, nil -} - -func (a Token) HandleSecurityException(context.Context, Token, *db.Neo4jError) (bool, error) { - return false, nil -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt3.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt3.go deleted file mode 100644 index 08037ff..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt3.go +++ /dev/null @@ -1,886 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "errors" - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - iauth "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "io" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const ( - bolt3_ready = iota // Ready for use - bolt3_streaming // Receiving result from auto commit query - bolt3_tx // Transaction pending - bolt3_streamingtx // Receiving result from a query within a transaction - bolt3_failed // Recoverable error, needs reset - bolt3_dead // Non recoverable protocol or connection error - bolt3_unauthorized // Initial state, not sent hello message with authentication -) - -type internalTx3 struct { - mode idb.AccessMode - bookmarks []string - timeout time.Duration - txMeta map[string]any -} - -func (i *internalTx3) toMeta(logger log.Logger, logId string) map[string]any { - meta := map[string]any{} - if i.mode == idb.ReadMode { - meta["mode"] = "r" - } - if len(i.bookmarks) > 0 { - meta["bookmarks"] = i.bookmarks - } - ms := i.timeout.Milliseconds() - if i.timeout.Nanoseconds()%int64(time.Millisecond) > 0 { - ms++ - logger.Infof(log.Bolt5, logId, "The transaction timeout was rounded up to the next millisecond due to a fractional millisecond value in the config.") - } - if ms > 0 { - meta["tx_timeout"] = ms - } - if len(i.txMeta) > 0 { - meta["tx_metadata"] = i.txMeta - } - return meta -} - -type bolt3 struct { - state int - txId idb.TxHandle - currStream *stream - conn io.ReadWriteCloser - serverName string - out *outgoing - in *incoming - connId string - logId string - serverVersion string - bookmark string // Last bookmark - birthDate time.Time - log log.Logger - err error // Last fatal error - minor int - idleDate time.Time - auth map[string]any - authManager auth.TokenManager - resetAuth bool - errorListener ConnectionErrorListener -} - -func NewBolt3( - serverName string, - conn io.ReadWriteCloser, - errorListener ConnectionErrorListener, - logger log.Logger, - boltLog log.BoltLogger, -) *bolt3 { - now := itime.Now() - b := &bolt3{ - state: bolt3_unauthorized, - conn: conn, - serverName: serverName, - in: &incoming{ - buf: make([]byte, 4096), - hyd: hydrator{ - boltLogger: boltLog, - boltMajor: 3, - }, - connReadTimeout: -1, - }, - birthDate: now, - idleDate: now, - log: logger, - errorListener: errorListener, - } - b.out = &outgoing{ - chunker: newChunker(), - packer: packstream.Packer{}, - onPackErr: func(err error) { - if b.err == nil { - b.err = err - } - b.state = bolt3_dead - }, - onIoErr: func(ctx context.Context, err error) { - if b.err == nil { - b.err = err - } - if ctxErr := handleTerminatedContextError(err, b.conn); ctxErr != nil { - b.err = ctxErr - } - b.state = bolt3_dead - }, - boltLogger: boltLog, - useUtc: false, - } - return b -} - -func (b *bolt3) ServerName() string { - return b.serverName -} - -func (b *bolt3) ConnId() string { - return b.connId -} - -func (b *bolt3) ServerVersion() string { - return b.serverVersion -} - -// Sets b.err and b.state on failure -func (b *bolt3) receiveMsg(ctx context.Context) any { - msg, err := b.in.next(ctx, b.conn) - if err != nil { - b.err = err - b.log.Error(log.Bolt3, b.logId, b.err) - b.state = bolt3_dead - return nil - } - b.idleDate = itime.Now() - return msg -} - -// Receives a message that is assumed to be a success response or a failure in response -// to a sent command. -// Sets b.err and b.state on failure -func (b *bolt3) receiveSuccess(ctx context.Context) *success { - switch message := b.receiveMsg(ctx).(type) { - case *success: - return message - case *db.Neo4jError: - b.state = bolt3_failed - b.err = message - if message.Classification() == "ClientError" { - // These could include potentially large cypher statement, only log to debug - b.log.Debugf(log.Bolt3, b.logId, "%s", message) - } else { - b.log.Error(log.Bolt3, b.logId, message) - } - if err := b.errorListener.OnNeo4jError(ctx, b, message); err != nil { - b.err = errorutil.CombineErrors(message, b.err) - } - return nil - default: - // Receive failed, state has been set - if b.err != nil { - return nil - } - // Unexpected message received - b.state = bolt3_dead - b.err = errors.New("expected success or database error") - b.log.Error(log.Bolt3, b.logId, b.err) - return nil - } -} - -func (b *bolt3) Connect( - ctx context.Context, - minor int, - auth *idb.ReAuthToken, - userAgent string, - _ map[string]string, - notificationConfig idb.NotificationConfig, -) error { - if err := b.assertState(bolt3_unauthorized); err != nil { - return err - } - - b.minor = minor - - if err := checkReAuth(auth, b); err != nil { - return err - } - - hello := map[string]any{ - "user_agent": userAgent, - } - // Merge authentication info into hello message - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - b.auth = token.Tokens - b.authManager = auth.Manager - for k, v := range token.Tokens { - _, exists := hello[k] - if exists { - continue - } - hello[k] = v - } - - if err := checkNotificationFiltering(notificationConfig, b); err != nil { - return err - } - - // Send hello message and wait for confirmation - b.out.appendHello(hello) - if b.out.send(ctx, b.conn); b.err != nil { - return b.err - } - - succ := b.receiveSuccess(ctx) - if b.err != nil { - return b.err - } - - b.connId = succ.connectionId - connectionLogId := fmt.Sprintf("%s@%s", b.connId, b.serverName) - b.logId = connectionLogId - b.in.hyd.logId = connectionLogId - b.out.logId = connectionLogId - b.serverVersion = succ.server - - // Transition into ready state - b.state = bolt3_ready - b.log.Infof(log.Bolt3, b.logId, "Connected") - return nil -} - -func (b *bolt3) TxBegin( - ctx context.Context, - txConfig idb.TxConfig, - _ bool, -) (idb.TxHandle, error) { - // Ok, to begin transaction while streaming auto-commit, just empty the stream and continue. - if b.state == bolt3_streaming { - if err := b.bufferStream(ctx); err != nil { - return 0, err - } - } - - if err := b.assertState(bolt3_ready); err != nil { - return 0, err - } - if err := b.checkImpersonation(txConfig.ImpersonatedUser); err != nil { - return 0, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return 0, err - } - - tx := &internalTx3{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - } - - b.out.appendBegin(tx.toMeta(b.log, b.logId)) - if b.out.send(ctx, b.conn); b.err != nil { - return 0, b.err - } - if b.receiveSuccess(ctx); b.err != nil { - return 0, b.err - } - b.state = bolt3_tx - b.txId = idb.TxHandle(time.Now().Unix()) - return b.txId, nil -} - -// Should NOT set b.err or change b.state as this is used to guard from -// misuse from clients that stick to their connections when they shouldn't. -func (b *bolt3) assertTxHandle(h1, h2 idb.TxHandle) error { - if h1 != h2 { - err := errors.New(errorutil.InvalidTransactionError) - b.log.Error(log.Bolt3, b.logId, err) - return err - } - return nil -} - -// Should NOT set b.err or b.state since the connection is still valid -func (b *bolt3) assertState(allowed ...int) error { - // Forward prior error instead, this former error is probably the - // root cause of any state error. Like a call to Run with malformed - // cypher causes an error and another call to Commit would cause the - // state to be wrong. Do not log this. - if b.err != nil { - return b.err - } - for _, a := range allowed { - if b.state == a { - return nil - } - } - err := fmt.Errorf("invalid state %d, expected: %+v", b.state, allowed) - b.log.Error(log.Bolt3, b.logId, err) - return err -} - -func (b *bolt3) TxCommit(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Consume pending stream if any to turn state from streamingtx to tx - // Access to streams outside of tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.state == bolt3_streamingtx { - if err := b.discardStream(ctx); err != nil { - return err - } - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt3_tx); err != nil { - return err - } - - // Send request to server to commit - b.out.appendCommit() - if b.out.send(ctx, b.conn); b.err != nil { - return b.err - } - - // Evaluate server response - succ := b.receiveSuccess(ctx) - if b.err != nil { - return b.err - } - // Keep track of bookmark - if len(succ.bookmark) > 0 { - b.bookmark = succ.bookmark - } - - // Transition into ready state - b.state = bolt3_ready - return nil -} - -func (b *bolt3) TxRollback(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Can not send rollback while still streaming, consume to turn state into tx - // Access to streams outside of tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.state == bolt3_streamingtx { - if err := b.discardStream(ctx); err != nil { - return err - } - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt3_tx); err != nil { - return err - } - - // Send rollback request to server - b.out.appendRollback() - if b.out.send(ctx, b.conn); b.err != nil { - return b.err - } - - // Receive rollback confirmation - if b.receiveSuccess(ctx); b.err != nil { - return b.err - } - - b.state = bolt3_ready - return nil -} - -// Discards all records in current stream -func (b *bolt3) discardStream(ctx context.Context) error { - if b.state != bolt3_streaming && b.state != bolt3_streamingtx { - // Nothing to do - return nil - } - - var ( - sum *db.Summary - err error - ) - for sum == nil && err == nil { - _, sum, err = b.receiveNext(ctx) - } - return err -} - -// Collects all records in current stream -func (b *bolt3) bufferStream(ctx context.Context) error { - if b.state != bolt3_streaming && b.state != bolt3_streamingtx { - // Nothing to do - return nil - } - - n := 0 - var ( - sum *db.Summary - err error - rec *db.Record - ) - for sum == nil && err == nil { - rec, sum, err = b.receiveNext(ctx) - if rec != nil { - b.currStream.push(rec) - n++ - } - } - - if n > 0 { - b.log.Warnf(log.Bolt3, b.logId, "Buffered %d records", n) - } - - return err -} - -func (b *bolt3) run(ctx context.Context, cypher string, params map[string]any, tx *internalTx3) (*stream, error) { - // If already streaming, finish current stream first - if err := b.bufferStream(ctx); err != nil { - return nil, err - } - - if err := b.assertState(bolt3_tx, bolt3_ready); err != nil { - return nil, err - } - - var meta map[string]any - if tx != nil { - meta = tx.toMeta(b.log, b.logId) - } - - // Append run message - b.out.appendRun(cypher, params, meta) - - // Append pull all message and send it along with other pending messages - b.out.appendPullAll() - if b.out.send(ctx, b.conn); b.err != nil { - return nil, b.err - } - - // Receive confirmation of run message - succ := b.receiveSuccess(ctx) - if b.err != nil { - return nil, b.err - } - - b.currStream = &stream{keys: succ.fields, tfirst: succ.tfirst} - // Change state to streaming - if b.state == bolt3_ready { - b.state = bolt3_streaming - } else { - b.state = bolt3_streamingtx - } - return b.currStream, nil -} - -func (b *bolt3) Run( - ctx context.Context, - runCommand idb.Command, - txConfig idb.TxConfig, -) (idb.StreamHandle, error) { - if err := b.assertState(bolt3_streaming, bolt3_ready); err != nil { - return nil, err - } - if err := b.checkImpersonation(txConfig.ImpersonatedUser); err != nil { - return nil, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return nil, err - } - - tx := internalTx3{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - } - stream, err := b.run(ctx, runCommand.Cypher, runCommand.Params, &tx) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt3) RunTx(ctx context.Context, txh idb.TxHandle, runCommand idb.Command) (idb.StreamHandle, error) { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return nil, err - } - - stream, err := b.run(ctx, runCommand.Cypher, runCommand.Params, nil) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt3) Keys(streamHandle idb.StreamHandle) ([]string, error) { - stream, ok := streamHandle.(*stream) - if !ok { - return nil, errors.New("invalid stream handle") - } - // Don't care about if the stream is the current or even if it belongs to this connection. - return stream.keys, nil -} - -// Reads one record from the stream. -func (b *bolt3) Next(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Record, *db.Summary, error) { - stream, ok := streamHandle.(*stream) - if !ok { - return nil, nil, errors.New("invalid stream handle") - } - - // Buffered stream or someone elses stream, doesn't matter... - buf, rec, sum, err := stream.bufferedNext() - if buf { - return rec, sum, err - } - - // Nothing in the stream buffer, the stream must be the current - // one to fetch on it otherwise something is wrong. - if stream != b.currStream { - return nil, nil, errors.New("invalid stream handle") - } - - return b.receiveNext(ctx) -} - -func (b *bolt3) Consume(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Summary, error) { - stream, ok := streamHandle.(*stream) - if !ok { - return nil, errors.New("invalid stream handle") - } - - // If the stream isn't current, it should either already be complete - // or have an error. - if stream != b.currStream { - return stream.sum, stream.err - } - - // It is the current stream, it should not be complete but... - if stream.err != nil || stream.sum != nil { - return stream.sum, stream.err - } - - b.discardStream(ctx) - return stream.sum, stream.err -} - -func (b *bolt3) Buffer(ctx context.Context, - streamHandle idb.StreamHandle) error { - stream, ok := streamHandle.(*stream) - if !ok { - return errors.New("invalid stream handle") - } - - // If the stream isn't current, it should either already be complete - // or have an error. - if stream != b.currStream { - return stream.Err() - } - - // It is the current stream, it should not be complete but... - if stream.err != nil || stream.sum != nil { - return stream.Err() - } - - b.bufferStream(ctx) - return stream.Err() -} - -// Reads one record from the network. -func (b *bolt3) receiveNext(ctx context.Context) (*db.Record, *db.Summary, error) { - if err := b.assertState(bolt3_streaming, bolt3_streamingtx); err != nil { - return nil, nil, err - } - - res := b.receiveMsg(ctx) - if b.err != nil { - return nil, nil, b.err - } - - switch message := res.(type) { - case *db.Record: - message.Keys = b.currStream.keys - b.currStream.hadRecord = true - return message, nil, nil - case *success: - // End of stream, parse summary - sum := message.summary() - if sum == nil { - b.state = bolt3_dead - b.err = errors.New("failed to parse summary") - b.currStream.err = b.err - b.currStream = nil - b.log.Error(log.Bolt3, b.logId, b.err) - return nil, nil, b.err - } - if b.state == bolt3_streamingtx { - b.state = bolt3_tx - } else { - b.state = bolt3_ready - // Keep bookmark for auto-commit tx - if len(sum.Bookmark) > 0 { - b.bookmark = sum.Bookmark - } - } - // Add some extras to the summary - sum.Agent = b.serverVersion - sum.Major = 3 - sum.Minor = b.minor - sum.ServerName = b.serverName - sum.TFirst = b.currStream.tfirst - sum.StreamSummary = b.currStream.ToSummary() - b.currStream.sum = sum - b.currStream = nil - return nil, sum, nil - case *db.Neo4jError: - b.err = message - b.currStream.err = b.err - b.currStream = nil - b.state = bolt3_failed - if message.Classification() == "ClientError" { - // These could include potentially large cypher statement, only log to debug - b.log.Debugf(log.Bolt3, b.logId, "%s", message) - } else { - b.log.Error(log.Bolt3, b.logId, message) - } - if err := b.errorListener.OnNeo4jError(ctx, b, message); err != nil { - return nil, nil, errorutil.CombineErrors(message, err) - } - return nil, nil, message - default: - b.state = bolt3_dead - b.err = errors.New("unknown response") - b.currStream.err = b.err - b.currStream = nil - b.log.Error(log.Bolt3, b.logId, b.err) - return nil, nil, b.err - } -} - -func (b *bolt3) Bookmark() string { - return b.bookmark -} - -func (b *bolt3) IsAlive() bool { - return b.state != bolt3_dead -} - -func (b *bolt3) HasFailed() bool { - return b.state == bolt3_failed -} - -func (b *bolt3) Birthdate() time.Time { - return b.birthDate -} - -func (b *bolt3) IdleDate() time.Time { - return b.idleDate -} - -func (b *bolt3) Reset(ctx context.Context) { - defer func() { - b.log.Debugf(log.Bolt3, b.logId, "Resetting connection internal state") - b.txId = 0 - b.currStream = nil - b.bookmark = "" - b.err = nil - }() - - if b.state == bolt3_ready || b.state == bolt3_dead { - // No need for reset - return - } - - // Discard any pending stream - b.discardStream(ctx) - - if b.state == bolt3_ready { - // No need for reset - return - } - - b.ForceReset(ctx) -} - -func (b *bolt3) ForceReset(ctx context.Context) { - if b.state == bolt3_dead { - return - } - // Send the reset message to the server - // Need to clear any pending error - b.err = nil - b.out.appendReset() - if b.out.send(ctx, b.conn); b.err != nil { - return - } - - // Should receive x number of ignores until we get a success - for { - msg := b.receiveMsg(ctx) - if b.err != nil { - return - } - switch msg.(type) { - case *ignored: - // Command ignored - case *success: - // Reset confirmed - b.state = bolt3_ready - return - default: - b.state = bolt3_dead - return - } - } -} - -func (b *bolt3) checkImpersonation(impersonatedUser string) error { - if impersonatedUser != "" { - return &db.FeatureNotSupportedError{Server: b.serverName, Feature: "user impersonation", Reason: "requires least server v4.4"} - } - return nil -} - -func (b *bolt3) GetRoutingTable(ctx context.Context, - routingContext map[string]string, _ []string, database, impersonatedUser string) (*idb.RoutingTable, error) { - if err := b.assertState(bolt3_ready); err != nil { - return nil, err - } - if database != idb.DefaultDatabase { - return nil, &db.FeatureNotSupportedError{Server: b.serverName, Feature: "route to database", Reason: "requires at least server v4"} - } - if err := b.checkImpersonation(impersonatedUser); err != nil { - return nil, err - } - - // Only available when Neo4j is setup with clustering - runCommand := idb.Command{ - Cypher: "CALL dbms.cluster.routing.getRoutingTable($context)", - Params: map[string]any{"context": routingContext}, - } - txConfig := idb.TxConfig{Mode: idb.ReadMode, Timeout: idb.DefaultTxConfigTimeout} - streamHandle, err := b.Run(ctx, runCommand, txConfig) - if err != nil { - // Give a better error - dbError, isDbError := err.(*db.Neo4jError) - if isDbError && dbError.Code == "Neo.ClientError.Procedure.ProcedureNotFound" { - return nil, &db.FeatureNotSupportedError{Server: b.serverName, Feature: "routing", Reason: "requires cluster setup"} - } - return nil, err - } - - rec, _, err := b.Next(ctx, streamHandle) - if err != nil { - return nil, err - } - if rec == nil { - return nil, errors.New("no routing table record") - } - // Just empty the stream, ignore the summary should leave the connecion in ready state - b.Next(ctx, streamHandle) - - table := parseRoutingTableRecord(rec) - if table == nil { - return nil, errors.New("unable to parse routing table") - } - // Just because - table.DatabaseName = idb.DefaultDatabase - - return table, nil -} - -// Close closes the underlying connection. -// Beware: could be called on another thread when driver is closed. -func (b *bolt3) Close(ctx context.Context) { - b.log.Infof(log.Bolt3, b.logId, "Close") - if b.state != bolt3_dead { - b.out.appendGoodbye() - b.out.send(ctx, b.conn) - } - if err := b.conn.Close(); err != nil { - b.log.Warnf(log.Driver, b.serverName, "could not close underlying socket") - } - b.state = bolt3_dead -} - -func (b *bolt3) SetBoltLogger(boltLogger log.BoltLogger) { - b.in.hyd.boltLogger = boltLogger - b.out.boltLogger = boltLogger -} - -func (b *bolt3) ReAuth(ctx context.Context, auth *idb.ReAuthToken) error { - if err := checkReAuth(auth, b); err != nil { - return err - } - if b.resetAuth { - b.log.Infof(log.Bolt4, b.logId, "Closing connection because auth token expired (informed by other connection)") - b.Close(ctx) - return nil - } - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - if !reflect.DeepEqual(b.auth, token.Tokens) { - b.log.Infof(log.Bolt4, b.logId, "Closing connection because auth token expired (informed by auth manager)") - b.Close(ctx) - } - return nil -} - -func (b *bolt3) Version() db.ProtocolVersion { - return db.ProtocolVersion{ - Major: 3, - Minor: b.minor, - } -} - -func (b *bolt3) ResetAuth() { - b.resetAuth = true -} - -func (b *bolt3) GetCurrentAuth() (auth.TokenManager, iauth.Token) { - token := iauth.Token{Tokens: b.auth} - return b.authManager, token -} - -func (b *bolt3) Telemetry(telemetry.API, func()) { - // TELEMETRY not support by this protocol version, so we ignore it. -} - -func (b *bolt3) SetPinHomeDatabaseCallback(func(context.Context, string)) { - // Home database not supported by this protocol version, so we ignore it. -} - -func (b *bolt3) IsSsrEnabled() bool { - return false -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt4.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt4.go deleted file mode 100644 index 21d2873..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt4.go +++ /dev/null @@ -1,1206 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "errors" - "fmt" - "io" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - iauth "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const ( - bolt4_ready = iota // Ready for use - bolt4_streaming // Receiving result from auto commit query - bolt4_tx // Transaction pending - bolt4_streamingtx // Receiving result from a query within a transaction - bolt4_failed // Recoverable error, needs reset - bolt4_dead // Non recoverable protocol or connection error - bolt4_unauthorized // Initial state, not sent hello message with authentication -) - -// Default fetch size -const bolt4_fetchsize = 1000 - -type internalTx4 struct { - mode idb.AccessMode - bookmarks []string - timeout time.Duration - txMeta map[string]any - databaseName string - impersonatedUser string -} - -func (i *internalTx4) toMeta(logger log.Logger, logId string) map[string]any { - if i == nil { - return nil - } - meta := map[string]any{} - if i.mode == idb.ReadMode { - meta["mode"] = "r" - } - if len(i.bookmarks) > 0 { - meta["bookmarks"] = i.bookmarks - } - ms := i.timeout.Milliseconds() - if i.timeout.Nanoseconds()%int64(time.Millisecond) > 0 { - ms++ - logger.Infof(log.Bolt5, logId, "The transaction timeout was rounded up to the next millisecond due to a fractional millisecond value in the config.") - } - if ms > 0 { - meta["tx_timeout"] = ms - } - if len(i.txMeta) > 0 { - meta["tx_metadata"] = i.txMeta - } - if i.databaseName != idb.DefaultDatabase { - meta["db"] = i.databaseName - } - if i.impersonatedUser != "" { - meta["imp_user"] = i.impersonatedUser - } - return meta -} - -type bolt4 struct { - state int - txId idb.TxHandle - streams openstreams - conn io.ReadWriteCloser - serverName string - connId string - logId string - serverVersion string - bookmark string // Last bookmark - birthDate time.Time - log log.Logger - databaseName string - err error // Last fatal error - minor int - lastQid int64 // Last seen qid - idleDate time.Time - queue messageQueue - auth map[string]any - authManager auth.TokenManager - resetAuth bool - errorListener ConnectionErrorListener -} - -func NewBolt4( - serverName string, - conn io.ReadWriteCloser, - errorListener ConnectionErrorListener, - logger log.Logger, - boltLog log.BoltLogger, -) *bolt4 { - now := itime.Now() - b := &bolt4{ - state: bolt4_unauthorized, - conn: conn, - serverName: serverName, - birthDate: now, - idleDate: now, - log: logger, - streams: openstreams{}, - lastQid: -1, - errorListener: errorListener, - } - b.queue = newMessageQueue( - conn, - &incoming{ - buf: make([]byte, 4096), - hyd: hydrator{ - boltLogger: boltLog, - boltMajor: 4, - }, - connReadTimeout: -1, - }, - &outgoing{ - chunker: newChunker(), - packer: packstream.Packer{}, - onPackErr: func(err error) { b.setError(err, true) }, - onIoErr: b.onIoError, - boltLogger: boltLog, - }, - b.onNextMessage, - b.onIoError, - ) - - return b -} - -func (b *bolt4) checkStreams() { - if b.streams.num <= 0 { - // Perform state transition from streaming, if in that state otherwise keep the current - // state as we are in some kind of bad shape - switch b.state { - case bolt4_streamingtx: - b.state = bolt4_tx - case bolt4_streaming: - b.state = bolt4_ready - } - } -} - -func (b *bolt4) ServerName() string { - return b.serverName -} - -func (b *bolt4) ConnId() string { - return b.connId -} - -func (b *bolt4) ServerVersion() string { - return b.serverVersion -} - -// Sets b.err and b.state to bolt4_failed or bolt4_dead when fatal is true. -func (b *bolt4) setError(err error, fatal bool) { - // Has no effect, can reduce nested ifs - if err == nil { - return - } - - wasDead := b.state == bolt5Dead - // No previous error - if b.err == nil { - b.err = err - b.state = bolt4_failed - } - - // Increase severity even if it was a previous error - if fatal { - if ctxErr := handleTerminatedContextError(err, b.conn); ctxErr != nil { - b.err = ctxErr - } - b.state = bolt4_dead - } - - // Forward error to current stream if there is one - if b.streams.curr != nil { - b.streams.detach(nil, err) - b.checkStreams() - } - - // Do not log big cypher statements as errors - neo4jErr, casted := err.(*db.Neo4jError) - if casted && neo4jErr.Classification() == "ClientError" { - b.log.Debugf(log.Bolt4, b.logId, "%s", err) - } else if wasDead { - b.log.Debugf(log.Bolt4, b.logId, "Already broken connection: %s", err) - } else { - b.log.Error(log.Bolt4, b.logId, err) - } -} - -func (b *bolt4) Connect( - ctx context.Context, - minor int, - auth *idb.ReAuthToken, - userAgent string, - routingContext map[string]string, - notificationConfig idb.NotificationConfig, -) error { - if err := b.assertState(bolt4_unauthorized); err != nil { - return err - } - - b.minor = minor - - if err := checkReAuth(auth, b); err != nil { - return err - } - - // Prepare hello message - hello := map[string]any{ - "user_agent": userAgent, - } - if routingContext != nil { - hello["routing"] = routingContext - } - checkUtcPatch := b.minor >= 3 - if checkUtcPatch { - hello["patch_bolt"] = []string{"utc"} - } - // Merge authentication keys into hello, avoid overwriting existing keys - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - b.auth = token.Tokens - b.authManager = auth.Manager - for k, v := range token.Tokens { - _, exists := hello[k] - if !exists { - hello[k] = v - } - } - - if err := checkNotificationFiltering(notificationConfig, b); err != nil { - return err - } - - b.queue.appendHello(hello, b.helloResponseHandler(checkUtcPatch)) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receive(ctx); err != nil { - return err - } - if b.err != nil { // onNextMessageErr kicked in - return b.err - } - - // Transition into ready state - b.state = bolt4_ready - b.streams.reset() - b.log.Infof(log.Bolt4, b.logId, "Connected") - return nil -} - -func (b *bolt4) checkImpersonationAndVersion(impersonatedUser string) error { - if impersonatedUser != "" && b.minor < 4 { - return &db.FeatureNotSupportedError{Server: b.serverName, Feature: "user impersonation", Reason: "requires at least server v4.4"} - } - return nil -} - -func (b *bolt4) TxBegin( - ctx context.Context, - txConfig idb.TxConfig, - syncMessages bool, -) (idb.TxHandle, error) { - // Ok, to begin transaction while streaming auto-commit, just empty the stream and continue. - if b.state == bolt4_streaming { - if b.bufferStream(ctx); b.err != nil { - return 0, b.err - } - } - // Makes all outstanding streams invalid - b.streams.reset() - - if err := b.assertState(bolt4_ready); err != nil { - return 0, err - } - if err := b.checkImpersonationAndVersion(txConfig.ImpersonatedUser); err != nil { - return 0, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return 0, err - } - - tx := internalTx4{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - databaseName: b.databaseName, - impersonatedUser: txConfig.ImpersonatedUser, - } - - b.queue.appendBegin(tx.toMeta(b.log, b.logId), b.beginResponseHandler()) - if syncMessages { - if b.queue.send(ctx); b.err != nil { - return 0, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return 0, err - } - } - - if b.err != nil { // onNextMessageErr kicked in - return 0, b.err - } - - b.state = bolt4_tx - b.txId = idb.TxHandle(time.Now().Unix()) - return b.txId, nil -} - -// Should NOT set b.err or change b.state as this is used to guard against -// misuse from clients that stick to their connections when they shouldn't. -func (b *bolt4) assertTxHandle(h1, h2 idb.TxHandle) error { - if h1 != h2 { - err := errors.New(errorutil.InvalidTransactionError) - b.log.Error(log.Bolt4, b.logId, err) - return err - } - return nil -} - -// Should NOT set b.err or b.state since the connection is still valid -func (b *bolt4) assertState(allowed ...int) error { - // Forward prior error instead, this former error is probably the - // root cause of any state error. Like a call to Run with malformed - // cypher causes an error and another call to Commit would cause the - // state to be wrong. Do not log this. - if b.err != nil { - return b.err - } - for _, a := range allowed { - if b.state == a { - return nil - } - } - err := fmt.Errorf("invalid state %d, expected: %+v", b.state, allowed) - b.log.Error(log.Bolt4, b.logId, err) - return err -} - -func (b *bolt4) TxCommit(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Consume pending stream if any to turn state from streamingtx to tx - // Access to streams outside tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.discardAllStreams(ctx); b.err != nil { - return b.err - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt4_tx); err != nil { - return err - } - - b.queue.appendCommit(b.commitResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - - // Transition into ready state - b.state = bolt4_ready - return nil -} - -func (b *bolt4) TxRollback(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Can not send rollback while still streaming, consume to turn state into tx - // Access to streams outside tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.discardAllStreams(ctx); b.err != nil { - return b.err - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt4_tx); err != nil { - return err - } - - b.queue.appendRollback(b.rollbackResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - - b.state = bolt4_ready - return nil -} - -// Discards all records in current stream if in streaming state and there is a current stream. -func (b *bolt4) discardStream(ctx context.Context) { - if b.state != bolt4_streaming && b.state != bolt4_streamingtx { - return - } - - stream := b.streams.curr - if stream == nil { - return - } - - stream.discarding = true // pull response handler will discard any accumulated record for this stream - discarded := false - for { - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch && discarded { - b.streams.remove(stream) - b.checkStreams() - return - } - discarded = true - stream.fetchSize = -1 // request infinite batch to consume the rest - if b.state == bolt4_streamingtx && stream.qid != b.lastQid { - b.queue.appendDiscardNQid(stream.fetchSize, stream.qid, b.discardResponseHandler(stream)) - } else { - b.queue.appendDiscardN(stream.fetchSize, b.discardResponseHandler(stream)) - } - if b.queue.send(ctx); b.err != nil { - return - } - } -} - -func (b *bolt4) discardAllStreams(ctx context.Context) { - if b.state != bolt4_streaming && b.state != bolt4_streamingtx { - return - } - - // Discard current - b.discardStream(ctx) - b.streams.reset() - b.checkStreams() -} - -func (b *bolt4) appendPullN(stream *stream) { - if b.state == bolt4_streaming { - b.queue.appendPullN(stream.fetchSize, b.pullResponseHandler(stream)) - } else if b.state == bolt4_streamingtx { - if stream.qid == b.lastQid { - b.queue.appendPullN(stream.fetchSize, b.pullResponseHandler(stream)) - } else { - b.queue.appendPullNQid(stream.fetchSize, stream.qid, b.pullResponseHandler(stream)) - } - } -} - -// Collects all records in current stream if in streaming state and there is a current stream. -func (b *bolt4) bufferStream(ctx context.Context) { - stream := b.streams.curr - if stream == nil { - return - } - - for { - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch { - stream.fetchSize = -1 - b.appendPullN(stream) - if b.queue.send(ctx); b.err != nil { - return - } - } - } -} - -// Prepares the current stream for being switched out by collecting all records in the current -// stream up until the next batch. Assumes that we are in a streaming state. -func (b *bolt4) pauseStream(ctx context.Context) { - stream := b.streams.curr - if stream == nil { - return - } - - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch { - b.streams.pause() - } -} - -func (b *bolt4) resumeStream(ctx context.Context, s *stream) { - b.streams.resume(s) - b.appendPullN(s) - b.queue.send(ctx) -} - -func (b *bolt4) run(ctx context.Context, cypher string, params map[string]any, rawFetchSize int, tx *internalTx4) (*stream, error) { - // If already streaming, consume the whole thing first - if b.state == bolt4_streaming { - if b.bufferStream(ctx); b.err != nil { - return nil, b.err - } - } else if b.state == bolt4_streamingtx { - if b.pauseStream(ctx); b.err != nil { - return nil, b.err - } - } - - if err := b.assertState(bolt4_tx, bolt4_ready, bolt4_streamingtx); err != nil { - return nil, err - } - - fetchSize := b.normalizeFetchSize(rawFetchSize) - stream := &stream{fetchSize: fetchSize} - b.queue.appendRun(cypher, params, tx.toMeta(b.log, b.logId), b.runResponseHandler(stream)) - b.queue.appendPullN(fetchSize, b.pullResponseHandler(stream)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - // only read response for RUN - if err := b.queue.receive(ctx); err != nil { - // rely on RESET to deal with unhandled PULL response - return nil, err - } - if b.err != nil { - return nil, b.err - } - - // Change state to streaming - if b.state == bolt4_ready { - b.state = bolt4_streaming - } else { - b.state = bolt4_streamingtx - } - - return stream, nil -} - -func (b *bolt4) normalizeFetchSize(fetchSize int) int { - if fetchSize < 0 { - return -1 - } - if fetchSize == 0 { - return bolt4_fetchsize - } - return fetchSize -} - -func (b *bolt4) Run( - ctx context.Context, - cmd idb.Command, - txConfig idb.TxConfig, -) (idb.StreamHandle, error) { - if err := b.assertState(bolt4_streaming, bolt4_ready); err != nil { - return nil, err - } - if err := b.checkImpersonationAndVersion(txConfig.ImpersonatedUser); err != nil { - return 0, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return nil, err - } - - tx := internalTx4{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - databaseName: b.databaseName, - impersonatedUser: txConfig.ImpersonatedUser, - } - stream, err := b.run(ctx, cmd.Cypher, cmd.Params, cmd.FetchSize, &tx) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt4) RunTx(ctx context.Context, txh idb.TxHandle, - cmd idb.Command) (idb.StreamHandle, error) { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return nil, err - } - - stream, err := b.run(ctx, cmd.Cypher, cmd.Params, cmd.FetchSize, nil) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt4) Keys(streamHandle idb.StreamHandle) ([]string, error) { - // Don't care about if the stream is the current or even if it belongs to this connection. - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, err - } - return stream.keys, nil -} - -// Next reads one record from the stream. -func (b *bolt4) Next(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Record, *db.Summary, error) { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, nil, err - } - - for { - buf, rec, sum, err := stream.bufferedNext() - if buf { - return rec, sum, err - } - if stream.endOfBatch { - b.appendPullN(stream) - if b.queue.send(ctx); b.err != nil { - return nil, nil, b.err - } - stream.endOfBatch = false - } - if b.queue.isEmpty() { - return nil, nil, errors.New("there should be more results to pull") - } - err = b.queue.receive(ctx) - if err != nil { - return nil, nil, err - } - if b.err != nil { - return nil, nil, b.err - } - } -} - -func (b *bolt4) Consume(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Summary, error) { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, err - } - - // If the stream already is complete we don't care about who it belongs to - if stream.sum != nil || stream.err != nil { - return stream.sum, stream.err - } - - // Make sure the stream is safe (tied to this bolt instance and scope) - if err = b.streams.isSafe(stream); err != nil { - return nil, err - } - - // We should be streaming otherwise it is an internal error, shouldn't be - // a safe stream while not streaming. - if err = b.assertState(bolt4_streaming, bolt4_streamingtx); err != nil { - return nil, err - } - - // If the stream isn't current, we need to pause the current one. - if stream != b.streams.curr { - b.pauseStream(ctx) - if b.err != nil { - return nil, b.err - } - b.resumeStream(ctx, stream) - } - - // If the stream is current, discard everything up to next batch and discard the - // stream on the server. - b.discardStream(ctx) - return stream.sum, stream.err -} - -func (b *bolt4) Buffer(ctx context.Context, - streamHandle idb.StreamHandle) error { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return err - } - - // If the stream already is complete we don't care about who it belongs to - if stream.sum != nil || stream.err != nil { - return stream.Err() - } - - // Make sure the stream is safe - // Do NOT set b.err for this error - if err = b.streams.isSafe(stream); err != nil { - return err - } - - // We should be streaming otherwise it is an internal error, shouldn't be - // a safe stream while not streaming. - if err = b.assertState(bolt4_streaming, bolt4_streamingtx); err != nil { - return err - } - - // If the stream isn't current, we need to pause the current one. - if stream != b.streams.curr { - b.pauseStream(ctx) - if b.err != nil { - return b.err - } - b.resumeStream(ctx, stream) - } - - b.bufferStream(ctx) - return stream.Err() -} - -func (b *bolt4) Bookmark() string { - return b.bookmark -} - -func (b *bolt4) IsAlive() bool { - return b.state != bolt4_dead -} - -func (b *bolt4) HasFailed() bool { - return b.state == bolt4_failed -} - -func (b *bolt4) Birthdate() time.Time { - return b.birthDate -} - -func (b *bolt4) IdleDate() time.Time { - return b.idleDate -} - -func (b *bolt4) Reset(ctx context.Context) { - defer func() { - b.log.Debugf(log.Bolt4, b.logId, "Resetting connection internal state") - b.txId = 0 - b.bookmark = "" - b.databaseName = idb.DefaultDatabase - b.err = nil - b.lastQid = -1 - b.streams.reset() - }() - - if b.state == bolt4_ready { - // No need for reset - return - } - b.ForceReset(ctx) -} - -func (b *bolt4) ForceReset(ctx context.Context) { - if b.state == bolt4_dead { - return - } - // Reset any pending error, should be matching bolt4_failed, so - // it should be recoverable. - b.err = nil - - if err := b.queue.receiveAll(ctx); b.err != nil || err != nil { - return - } - b.queue.appendReset(b.resetResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return - } - if err := b.queue.receive(ctx); b.err != nil || err != nil { - return - } -} - -func (b *bolt4) GetRoutingTable(ctx context.Context, - routingContext map[string]string, bookmarks []string, database, impersonatedUser string) (*idb.RoutingTable, error) { - if err := b.assertState(bolt4_ready); err != nil { - return nil, err - } - - b.log.Infof(log.Bolt4, b.logId, "Retrieving routing table") - if b.minor > 3 { - extras := map[string]any{} - if database != idb.DefaultDatabase { - extras["db"] = database - } - if impersonatedUser != "" { - extras["imp_user"] = impersonatedUser - } - var routingTable *idb.RoutingTable - b.queue.appendRoute(routingContext, bookmarks, extras, b.routeResponseHandler(&routingTable)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return nil, err - } - if b.err != nil { - return nil, b.err - } - return routingTable, nil - } - - if err := b.checkImpersonationAndVersion(impersonatedUser); err != nil { - return nil, err - } - - if b.minor > 2 { - var routingTable *idb.RoutingTable - b.queue.appendRouteV43(routingContext, bookmarks, database, b.routeResponseHandler(&routingTable)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return nil, err - } - if b.err != nil { - return nil, b.err - } - routingTable.DatabaseName = database - return routingTable, nil - } - return b.callGetRoutingTable(ctx, routingContext, bookmarks, database) -} - -func (b *bolt4) callGetRoutingTable(ctx context.Context, - routingContext map[string]string, bookmarks []string, database string) (*idb.RoutingTable, error) { - // The query should run in system database, preserve current setting and restore it when - // done. - originalDatabaseName := b.databaseName - b.databaseName = "system" - defer func() { b.databaseName = originalDatabaseName }() - - // Query for the users default database or a specific database - runCommand := idb.Command{ - Cypher: "CALL dbms.routing.getRoutingTable($context)", - Params: map[string]any{"context": routingContext}, - FetchSize: -1, - } - if database != idb.DefaultDatabase { - runCommand.Cypher = "CALL dbms.routing.getRoutingTable($context, $database)" - runCommand.Params["database"] = database - } - txConfig := idb.TxConfig{Mode: idb.ReadMode, Bookmarks: bookmarks, Timeout: idb.DefaultTxConfigTimeout} - streamHandle, err := b.Run(ctx, runCommand, txConfig) - if err != nil { - return nil, err - } - rec, _, err := b.Next(ctx, streamHandle) - if err != nil { - return nil, err - } - if rec == nil { - return nil, errors.New("no routing table record") - } - // Just empty the stream, ignore the summary should leave the connection in ready state - _, _, _ = b.Next(ctx, streamHandle) - - table := parseRoutingTableRecord(rec) - if table == nil { - return nil, errors.New("unable to parse routing table") - } - // On this version we will not receive the database name - table.DatabaseName = database - return table, nil -} - -// Close closes the underlying connection. -// Beware: could be called on another thread when driver is closed. -func (b *bolt4) Close(ctx context.Context) { - b.log.Infof(log.Bolt4, b.logId, "Close") - if b.state != bolt4_dead { - b.queue.appendGoodbye() - b.queue.send(ctx) - } - if err := b.conn.Close(); err != nil { - b.log.Warnf(log.Driver, b.serverName, "could not close underlying socket") - } - b.state = bolt4_dead -} - -func (b *bolt4) SelectDatabase(database string) { - b.databaseName = database -} - -func (b *bolt4) Database() string { - return b.databaseName -} - -func (b *bolt4) SetBoltLogger(boltLogger log.BoltLogger) { - b.queue.setBoltLogger(boltLogger) -} - -func (b *bolt4) ReAuth(ctx context.Context, auth *idb.ReAuthToken) error { - if err := checkReAuth(auth, b); err != nil { - return err - } - if b.resetAuth { - b.log.Infof(log.Bolt4, b.logId, "Closing connection because auth token expired (informed by other connection)") - b.Close(ctx) - return nil - } - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - if !reflect.DeepEqual(b.auth, token.Tokens) { - b.log.Infof(log.Bolt4, b.logId, "Closing connection because auth token expired (informed by auth manager)") - b.Close(ctx) - } - return nil -} - -func (b *bolt4) Version() db.ProtocolVersion { - return db.ProtocolVersion{ - Major: 4, - Minor: b.minor, - } -} - -func (b *bolt4) ResetAuth() { - b.resetAuth = true -} - -func (b *bolt4) GetCurrentAuth() (auth.TokenManager, iauth.Token) { - token := iauth.Token{Tokens: b.auth} - return b.authManager, token -} - -func (b *bolt4) Telemetry(telemetry.API, func()) { - // TELEMETRY not support by this protocol version, so we ignore it. -} - -func (b *bolt4) SetPinHomeDatabaseCallback(func(context.Context, string)) { - // Home database not supported by this protocol version, so we ignore it. -} - -func (b *bolt4) IsSsrEnabled() bool { - return false -} - -func (b *bolt4) helloResponseHandler(checkUtcPatch bool) responseHandler { - return b.expectedSuccessHandler(b.onHelloSuccess(checkUtcPatch)) -} - -func (b *bolt4) beginResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt4) commitResponseHandler() responseHandler { - return b.expectedSuccessHandler(b.onCommitSuccess) -} - -func (b *bolt4) rollbackResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt4) discardResponseHandler(stream *stream) responseHandler { - return responseHandler{ - onIgnored: func(*ignored) { - stream.err = fmt.Errorf("stream interrupted while discarding results") - b.streams.remove(stream) - b.checkStreams() - }, - onSuccess: func(discardSuccess *success) { - if discardSuccess.hasMore { - stream.endOfBatch = true - return - } - summary := b.extractSummary(discardSuccess, stream) - if len(summary.Bookmark) > 0 { - b.bookmark = summary.Bookmark - } - stream.sum = summary - b.streams.remove(stream) - b.checkStreams() - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - stream.err = failure - b.onFailure(ctx, failure) // Will detach the stream - }, - } -} - -func (b *bolt4) pullResponseHandler(stream *stream) responseHandler { - return responseHandler{ - onRecord: func(record *db.Record) { - if record != nil { - stream.hadRecord = true - } - if stream.discarding { - stream.emptyRecords() - } else { - record.Keys = stream.keys - stream.push(record) - } - b.queue.pushFront(b.pullResponseHandler(stream)) - }, - onIgnored: func(*ignored) { - stream.err = fmt.Errorf("stream interrupted while pulling results") - b.streams.remove(stream) - b.checkStreams() - }, - onSuccess: func(pullSuccess *success) { - if stream.discarding { - stream.emptyRecords() - } - if pullSuccess.hasMore { - stream.endOfBatch = true - return - } - summary := b.extractSummary(pullSuccess, stream) - if len(summary.Bookmark) > 0 { - b.bookmark = summary.Bookmark - } - stream.sum = summary - b.streams.remove(stream) - b.checkStreams() - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - stream.err = failure - b.onFailure(ctx, failure) // will detach the stream - }, - } - -} - -func (b *bolt4) runResponseHandler(stream *stream) responseHandler { - return b.expectedSuccessHandler(func(runSuccess *success) { - stream.keys = runSuccess.fields - stream.qid = runSuccess.qid - stream.tfirst = runSuccess.tfirst - if runSuccess.qid > -1 { - b.lastQid = runSuccess.qid - } - b.streams.attach(stream) - }) -} - -func (b *bolt4) resetResponseHandler() responseHandler { - return responseHandler{ - onSuccess: func(resetSuccess *success) { - b.state = bolt4_ready - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - _ = b.errorListener.OnNeo4jError(ctx, b, failure) - b.state = bolt4_dead - }, - } -} - -func (b *bolt4) routeResponseHandler(table **idb.RoutingTable) responseHandler { - return b.expectedSuccessHandler(func(routeSuccess *success) { - *table = routeSuccess.routingTable - }) -} - -func (b *bolt4) onHelloSuccess(checkUtcPatch bool) func(*success) { - return func(helloSuccess *success) { - if checkUtcPatch { - useUtc := collections.SliceContains(helloSuccess.patches, "utc") - b.queue.in.hyd.useUtc = useUtc - b.queue.out.useUtc = useUtc - } - b.connId = helloSuccess.connectionId - b.serverVersion = helloSuccess.server - - connectionLogId := fmt.Sprintf("%s@%s", b.connId, b.serverName) - b.logId = connectionLogId - b.queue.setLogId(connectionLogId) - b.initializeReadTimeoutHint(helloSuccess.configurationHints) - } -} - -func (b *bolt4) onCommitSuccess(commitSuccess *success) { - if len(commitSuccess.bookmark) > 0 { - b.bookmark = commitSuccess.bookmark - } -} - -func (b *bolt4) expectedSuccessHandler(onSuccess func(*success)) responseHandler { - return responseHandler{ - onSuccess: onSuccess, - onFailure: b.onFailure, - onIgnored: onIgnoredNoOp, - } -} - -func (b *bolt4) onNextMessage() { - b.idleDate = itime.Now() -} - -func (b *bolt4) onFailure(ctx context.Context, failure *db.Neo4jError) { - var err error - err = failure - if callbackErr := b.errorListener.OnNeo4jError(ctx, b, failure); callbackErr != nil { - err = errorutil.CombineErrors(failure, callbackErr) - } - b.setError(err, isFatalError(failure)) -} - -func (b *bolt4) onIoError(ctx context.Context, err error) { - if b.state != bolt4_failed && b.state != bolt4_dead { - // Don't call callback when connections break after sending RESET. - // The server chooses to close the connection on some errors. - b.errorListener.OnIoError(ctx, b, err) - } - b.setError(err, true) -} - -const readTimeoutHintName = "connection.recv_timeout_seconds" - -func (b *bolt4) initializeReadTimeoutHint(hints map[string]any) { - readTimeoutHint, ok := hints[readTimeoutHintName] - if !ok { - return - } - readTimeout, ok := readTimeoutHint.(int64) - if !ok { - b.log.Warnf(log.Bolt4, b.logId, `invalid %q value: %v, ignoring hint. Only strictly positive integer values are accepted`, readTimeoutHintName, readTimeoutHint) - return - } - if readTimeout <= 0 { - b.log.Warnf(log.Bolt4, b.logId, `invalid %q integer value: %d. Only strictly positive values are accepted"`, readTimeoutHintName, readTimeout) - return - } - b.log.Infof(log.Bolt4, b.logId, `received "connection.recv_timeout_seconds" hint value of %d second(s)`, readTimeout) - b.queue.in.connReadTimeout = time.Duration(readTimeout) * time.Second -} - -func (b *bolt4) extractSummary(success *success, stream *stream) *db.Summary { - summary := success.summary() - summary.Agent = b.serverVersion - summary.Major = 4 - summary.Minor = b.minor - summary.ServerName = b.serverName - summary.TFirst = stream.tfirst - summary.StreamSummary = stream.ToSummary() - return summary -} - -func isFatalError(err *db.Neo4jError) bool { - // Treat expired auth as fatal so that pool is cleaned up of old connections - return err != nil && err.Code == "Status.Security.AuthorizationExpired" -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt5.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt5.go deleted file mode 100644 index c89daac..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt5.go +++ /dev/null @@ -1,1240 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "errors" - "fmt" - "io" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - iauth "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const ( - bolt5Ready = iota // Ready for use - bolt5Streaming // Receiving result from auto commit query - bolt5Tx // Transaction pending - bolt5StreamingTx // Receiving result from a query within a transaction - bolt5Failed // Recoverable error, needs reset - bolt5Dead // Non recoverable protocol or connection error - bolt5Unauthorized // Initial state, not sent hello message with authentication -) - -// Default fetch size -const bolt5FetchSize = 1000 - -const ( - telemetryEnabledHintName = "telemetry.enabled" - ssrEnabledHintName = "ssr.enabled" -) - -type internalTx5 struct { - mode idb.AccessMode - bookmarks []string - timeout time.Duration - txMeta map[string]any - databaseName string - impersonatedUser string - notificationConfig idb.NotificationConfig -} - -func (i *internalTx5) toMeta(logger log.Logger, logId string, version db.ProtocolVersion) map[string]any { - if i == nil { - return nil - } - meta := map[string]any{} - if i.mode == idb.ReadMode { - meta["mode"] = "r" - } - if len(i.bookmarks) > 0 { - meta["bookmarks"] = i.bookmarks - } - ms := i.timeout.Milliseconds() - if i.timeout.Nanoseconds()%int64(time.Millisecond) > 0 { - ms++ - logger.Infof(log.Bolt5, logId, "The transaction timeout was rounded up to the next millisecond due to a fractional millisecond value in the config.") - } - if ms > 0 { - meta["tx_timeout"] = ms - } - if len(i.txMeta) > 0 { - meta["tx_metadata"] = i.txMeta - } - if i.databaseName != idb.DefaultDatabase { - meta["db"] = i.databaseName - } - if i.impersonatedUser != "" { - meta["imp_user"] = i.impersonatedUser - } - i.notificationConfig.ToMeta(meta, version) - return meta -} - -type bolt5 struct { - state int - txId idb.TxHandle - streams openstreams - conn io.ReadWriteCloser - serverName string - queue messageQueue - connId string - logId string - serverVersion string - bookmark string // Last bookmark - birthDate time.Time - log log.Logger - databaseName string - err error // Last fatal error - minor int - lastQid int64 // Last seen qid - idleDate time.Time - auth map[string]any - authManager auth.TokenManager - resetAuth bool - errorListener ConnectionErrorListener - telemetryEnabled bool - ssrEnabled bool - pinHomeDatabaseCallback func(context.Context, string) -} - -func NewBolt5( - serverName string, - conn io.ReadWriteCloser, - errorListener ConnectionErrorListener, - logger log.Logger, - boltLog log.BoltLogger, -) *bolt5 { - now := itime.Now() - b := &bolt5{ - state: bolt5Unauthorized, - conn: conn, - serverName: serverName, - birthDate: now, - idleDate: now, - log: logger, - streams: openstreams{}, - lastQid: -1, - errorListener: errorListener, - } - b.queue = newMessageQueue( - conn, - &incoming{ - buf: make([]byte, 4096), - hyd: hydrator{ - boltLogger: boltLog, - boltMajor: 5, - useUtc: true, - }, - connReadTimeout: -1, - }, - &outgoing{ - chunker: newChunker(), - packer: packstream.Packer{}, - onPackErr: func(err error) { b.setError(err, true) }, - onIoErr: b.onIoError, - boltLogger: boltLog, - useUtc: true, - }, - b.onNextMessage, - b.onIoError, - ) - return b -} - -func (b *bolt5) checkStreams() { - if b.streams.num <= 0 { - // Perform state transition from streaming, if in that state otherwise keep the current - // state as we are in some kind of bad shape - switch b.state { - case bolt5StreamingTx: - b.state = bolt5Tx - case bolt5Streaming: - b.state = bolt5Ready - } - } -} - -func (b *bolt5) ServerName() string { - return b.serverName -} - -func (b *bolt5) ConnId() string { - return b.connId -} - -func (b *bolt5) ServerVersion() string { - return b.serverVersion -} - -// Sets b.err and b.state to bolt5Failed or bolt5Dead when fatal is true. -func (b *bolt5) setError(err error, fatal bool) { - // Has no effect, can reduce nested ifs - if err == nil { - return - } - - wasDead := b.state == bolt5Dead - // No previous error - if b.err == nil { - b.err = err - b.state = bolt5Failed - } - - // Increase severity even if it was a previous error - if fatal { - if ctxErr := handleTerminatedContextError(err, b.conn); ctxErr != nil { - b.err = ctxErr - } - b.state = bolt5Dead - } - - // Forward error to current stream if there is one - if b.streams.curr != nil { - b.streams.detach(nil, err) - b.checkStreams() - } - - // Do not log big cypher statements as errors - neo4jErr, casted := err.(*db.Neo4jError) - if casted && neo4jErr.Classification() == "ClientError" { - b.log.Debugf(log.Bolt5, b.logId, "%s", err) - } else if wasDead { - b.log.Debugf(log.Bolt5, b.logId, "Already broken connection: %s", err) - } else { - b.log.Error(log.Bolt5, b.logId, err) - } -} - -func (b *bolt5) Connect( - ctx context.Context, - minor int, - auth *idb.ReAuthToken, - userAgent string, - routingContext map[string]string, - notificationConfig idb.NotificationConfig, -) error { - if err := b.assertState(bolt5Unauthorized); err != nil { - return err - } - - b.minor = minor - - if err := checkReAuth(auth, b); err != nil { - return err - } - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - b.auth = token.Tokens - b.authManager = auth.Manager - - hello := map[string]any{ - "user_agent": userAgent, - } - if routingContext != nil { - hello["routing"] = routingContext - } - // On bolt >= 5.3 add bolt agent information to hello - if b.minor >= 3 { - info := boltagent.New() - hello["bolt_agent"] = map[string]string{ - "product": info.Product(), - "platform": info.Platform(), - "language": info.Language(), - } - } - if b.minor == 0 { - // Merge authentication keys into hello, avoid overwriting existing keys - for k, v := range token.Tokens { - _, exists := hello[k] - if !exists { - hello[k] = v - } - } - } - - if err := checkNotificationFiltering(notificationConfig, b); err != nil { - return err - } - notificationConfig.ToMeta(hello, b.Version()) - b.queue.appendHello(hello, b.helloResponseHandler()) - if b.minor > 0 { - b.queue.appendLogon(token.Tokens, b.logonResponseHandler()) - } - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { // onNextMessageErr kicked in - return b.err - } - - b.state = bolt5Ready - b.streams.reset() - b.log.Infof(log.Bolt5, b.logId, "Connected") - return nil -} - -func (b *bolt5) TxBegin( - ctx context.Context, - txConfig idb.TxConfig, - syncMessages bool, -) (idb.TxHandle, error) { - // Ok, to begin transaction while streaming auto-commit, just empty the stream and continue. - if b.state == bolt5Streaming { - if b.bufferStream(ctx); b.err != nil { - return 0, b.err - } - } - // Makes all outstanding streams invalid - b.streams.reset() - - if err := b.assertState(bolt5Ready); err != nil { - return 0, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return 0, err - } - - tx := internalTx5{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - databaseName: b.databaseName, - impersonatedUser: txConfig.ImpersonatedUser, - notificationConfig: txConfig.NotificationConfig, - } - - b.queue.appendBegin(tx.toMeta(b.log, b.logId, b.Version()), b.beginResponseHandler(ctx)) - if syncMessages { - if b.queue.send(ctx); b.err != nil { - return 0, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return 0, err - } - } - - if b.err != nil { // onNextMessageErr kicked in - return 0, b.err - } - - b.state = bolt5Tx - b.txId = idb.TxHandle(time.Now().Unix()) - return b.txId, nil -} - -// Should NOT set b.err or change b.state as this is used to guard against -// misuse from clients that stick to their connections when they shouldn't. -func (b *bolt5) assertTxHandle(h1, h2 idb.TxHandle) error { - if h1 != h2 { - err := errors.New(errorutil.InvalidTransactionError) - b.log.Error(log.Bolt5, b.logId, err) - return err - } - return nil -} - -// Should NOT set b.err or b.state since the connection is still valid -func (b *bolt5) assertState(allowed ...int) error { - // Forward prior error instead, this former error is probably the - // root cause of any state error. Like a call to Run with malformed - // cypher causes an error and another call to Commit would cause the - // state to be wrong. Do not log this. - if b.err != nil { - return b.err - } - for _, a := range allowed { - if b.state == a { - return nil - } - } - err := fmt.Errorf("invalid state %d, expected: %+v", b.state, allowed) - b.log.Error(log.Bolt5, b.logId, err) - return err -} - -func (b *bolt5) TxCommit(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Consume pending stream if any to turn state from streamingtx to tx - // Access to the streams outside tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.discardAllStreams(ctx); b.err != nil { - return b.err - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt5Tx); err != nil { - return err - } - - b.queue.appendCommit(b.commitResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - - // Transition into ready state - b.state = bolt5Ready - return nil -} - -func (b *bolt5) TxRollback(ctx context.Context, txh idb.TxHandle) error { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return err - } - - // Can not send rollback while still streaming, consume to turn state into tx - // Access to the streams outside tx boundary is not allowed, therefore we should discard - // the stream (not buffer). - if b.discardAllStreams(ctx); b.err != nil { - return b.err - } - - // Should be in vanilla tx state now - if err := b.assertState(bolt5Tx); err != nil { - return err - } - - b.queue.appendRollback(b.rollbackResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - - b.state = bolt5Ready - return nil -} - -// Discards all records in current stream if in streaming state and there is a current stream. -func (b *bolt5) discardStream(ctx context.Context) { - if b.state != bolt5Streaming && b.state != bolt5StreamingTx { - return - } - - stream := b.streams.curr - if stream == nil { - return - } - - stream.discarding = true // pull response handler will discard any accumulated record for this stream - discarded := false - for { - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch && discarded { - b.streams.remove(stream) - b.checkStreams() - return - } - discarded = true - stream.fetchSize = -1 // request infinite batch to consume the rest - if b.state == bolt5StreamingTx && stream.qid != b.lastQid { - b.queue.appendDiscardNQid(stream.fetchSize, stream.qid, b.discardResponseHandler(stream)) - } else { - b.queue.appendDiscardN(stream.fetchSize, b.discardResponseHandler(stream)) - } - if b.queue.send(ctx); b.err != nil { - return - } - } -} - -func (b *bolt5) discardAllStreams(ctx context.Context) { - if b.state != bolt5Streaming && b.state != bolt5StreamingTx { - return - } - - // Discard current - b.discardStream(ctx) - b.streams.reset() - b.checkStreams() -} - -// bufferStream pulls all the records of the current stream if there is a current stream. -func (b *bolt5) bufferStream(ctx context.Context) { - stream := b.streams.curr - if stream == nil { - return - } - - for { - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch { - stream.fetchSize = -1 - b.appendPullN(stream) - if b.queue.send(ctx); b.err != nil { - return - } - } - } -} - -// pauseStream pulls all the records of the current stream ongoing batch of records and unsets the stream as current -func (b *bolt5) pauseStream(ctx context.Context) { - stream := b.streams.curr - if stream == nil { - return - } - - if err := b.queue.receiveAll(ctx); err != nil { - return - } - if b.err != nil { - return - } - if stream.sum != nil || stream.err != nil { - return - } - if stream.endOfBatch { - b.streams.pause() - } -} - -// resumeStream marks the current stream as current and requests PULL -func (b *bolt5) resumeStream(ctx context.Context, s *stream) { - b.streams.resume(s) - b.appendPullN(s) - b.queue.send(ctx) -} - -func (b *bolt5) run(ctx context.Context, cypher string, params map[string]any, rawFetchSize int, tx *internalTx5) (*stream, error) { - // If already streaming, consume the whole thing first - if b.state == bolt5Streaming { - if b.bufferStream(ctx); b.err != nil { - return nil, b.err - } - } else if b.state == bolt5StreamingTx { - if b.pauseStream(ctx); b.err != nil { - return nil, b.err - } - } - - if err := b.assertState(bolt5Tx, bolt5Ready, bolt5StreamingTx); err != nil { - return nil, err - } - - fetchSize := b.normalizeFetchSize(rawFetchSize) - stream := &stream{fetchSize: fetchSize} - b.Version() - b.queue.appendRun(cypher, params, tx.toMeta(b.log, b.logId, b.Version()), b.runResponseHandler(ctx, stream)) - b.queue.appendPullN(fetchSize, b.pullResponseHandler(stream)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - // only read response for RUN - for !stream.attached { - if err := b.queue.receive(ctx); err != nil { - // rely on RESET to deal with unhandled PULL response - return nil, err - } - if b.err != nil { - return nil, b.err - } - } - - if b.state == bolt5Ready { - b.state = bolt5Streaming - } else if b.state == bolt5Tx { - b.state = bolt5StreamingTx - } - return stream, nil -} - -func (b *bolt5) normalizeFetchSize(fetchSize int) int { - if fetchSize < 0 { - return -1 - } - if fetchSize == 0 { - return bolt5FetchSize - } - return fetchSize -} - -func (b *bolt5) Run( - ctx context.Context, - cmd idb.Command, - txConfig idb.TxConfig, -) (idb.StreamHandle, error) { - if err := b.assertState(bolt5Streaming, bolt5Ready); err != nil { - return nil, err - } - if err := checkNotificationFiltering(txConfig.NotificationConfig, b); err != nil { - return nil, err - } - - tx := internalTx5{ - mode: txConfig.Mode, - bookmarks: txConfig.Bookmarks, - timeout: txConfig.Timeout, - txMeta: txConfig.Meta, - databaseName: b.databaseName, - impersonatedUser: txConfig.ImpersonatedUser, - notificationConfig: txConfig.NotificationConfig, - } - stream, err := b.run(ctx, cmd.Cypher, cmd.Params, cmd.FetchSize, &tx) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt5) RunTx(ctx context.Context, txh idb.TxHandle, cmd idb.Command) (idb.StreamHandle, error) { - if err := b.assertTxHandle(b.txId, txh); err != nil { - return nil, err - } - - stream, err := b.run(ctx, cmd.Cypher, cmd.Params, cmd.FetchSize, nil) - if err != nil { - return nil, err - } - return stream, nil -} - -func (b *bolt5) Keys(streamHandle idb.StreamHandle) ([]string, error) { - // Don't care about if the stream is the current or even if it belongs to this connection. - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, err - } - return stream.keys, nil -} - -// Next reads one record from the stream. -func (b *bolt5) Next(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Record, *db.Summary, error) { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, nil, err - } - - for { - buf, rec, sum, err := stream.bufferedNext() - if buf { - return rec, sum, err - } - if stream.endOfBatch { - b.appendPullN(stream) - if b.queue.send(ctx); b.err != nil { - return nil, nil, b.err - } - stream.endOfBatch = false - } - if b.queue.isEmpty() { - return nil, nil, errors.New("there should be more results to pull") - } - err = b.queue.receive(ctx) - if err != nil { - return nil, nil, err - } - if b.err != nil { - return nil, nil, b.err - } - } -} - -func (b *bolt5) Consume(ctx context.Context, streamHandle idb.StreamHandle) ( - *db.Summary, error) { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return nil, err - } - - // If the stream already is complete we don't care about whom it belongs to - if stream.sum != nil || stream.err != nil { - return stream.sum, stream.err - } - - // Make sure the stream is safe (tied to this bolt instance and scope) - if err = b.streams.isSafe(stream); err != nil { - return nil, err - } - - // We should be streaming otherwise it is an internal error, shouldn't be - // a safe stream while not streaming. - if err = b.assertState(bolt5Streaming, bolt5StreamingTx); err != nil { - return nil, err - } - - // If the stream isn't current, we need to pause the current one. - if stream != b.streams.curr { - b.pauseStream(ctx) - if b.err != nil { - return nil, b.err - } - b.resumeStream(ctx, stream) - } - - // If the stream is current, discard everything up to next batch and discard the - // stream on the server. - b.discardStream(ctx) - return stream.sum, stream.err -} - -func (b *bolt5) Buffer(ctx context.Context, - streamHandle idb.StreamHandle) error { - // Do NOT set b.err for this error - stream, err := b.streams.getUnsafe(streamHandle) - if err != nil { - return err - } - - // If the stream already is complete we don't care about whom it belongs to - if stream.sum != nil || stream.err != nil { - return stream.Err() - } - - // Make sure the stream is safe - // Do NOT set b.err for this error - if err = b.streams.isSafe(stream); err != nil { - return err - } - - // We should be streaming otherwise it is an internal error, shouldn't be - // a safe stream while not streaming. - if err = b.assertState(bolt5Streaming, bolt5StreamingTx); err != nil { - return err - } - - // If the stream isn't current, we need to pause the current one. - if stream != b.streams.curr { - b.pauseStream(ctx) - if b.err != nil { - return b.err - } - b.resumeStream(ctx, stream) - } - - b.bufferStream(ctx) - return stream.Err() -} - -func (b *bolt5) Bookmark() string { - return b.bookmark -} - -func (b *bolt5) IsAlive() bool { - return b.state != bolt5Dead -} - -func (b *bolt5) HasFailed() bool { - return b.state == bolt5Failed -} - -func (b *bolt5) Birthdate() time.Time { - return b.birthDate -} - -func (b *bolt5) IdleDate() time.Time { - return b.idleDate -} - -func (b *bolt5) Reset(ctx context.Context) { - defer func() { - b.log.Debugf(log.Bolt5, b.logId, "Resetting connection internal state") - b.txId = 0 - b.bookmark = "" - b.databaseName = idb.DefaultDatabase - b.err = nil - b.lastQid = -1 - b.streams.reset() - }() - - if b.state == bolt5Ready { - // No need for reset - return - } - - b.ForceReset(ctx) -} - -func (b *bolt5) ForceReset(ctx context.Context) { - if b.state == bolt5Dead { - return - } - - // Reset any pending error, should be matching bolt5_failed, so - // it should be recoverable. - b.err = nil - - if err := b.queue.receiveAll(ctx); b.err != nil || err != nil { - return - } - b.queue.appendReset(b.resetResponseHandler()) - if b.queue.send(ctx); b.err != nil { - return - } - if err := b.queue.receive(ctx); b.err != nil || err != nil { - return - } -} - -func (b *bolt5) GetRoutingTable(ctx context.Context, - routingContext map[string]string, bookmarks []string, database, impersonatedUser string) (*idb.RoutingTable, error) { - if err := b.assertState(bolt5Ready); err != nil { - return nil, err - } - - b.log.Infof(log.Bolt5, b.logId, "Retrieving routing table") - extras := map[string]any{} - if database != idb.DefaultDatabase { - extras["db"] = database - } - if impersonatedUser != "" { - extras["imp_user"] = impersonatedUser - } - - var routingTable *idb.RoutingTable - b.queue.appendRoute(routingContext, bookmarks, extras, b.routeResponseHandler(&routingTable)) - if b.queue.send(ctx); b.err != nil { - return nil, b.err - } - if err := b.queue.receiveAll(ctx); err != nil { - return nil, err - } - if b.err != nil { - return nil, b.err - } - return routingTable, nil -} - -func (b *bolt5) SetBoltLogger(boltLogger log.BoltLogger) { - b.queue.setBoltLogger(boltLogger) -} - -func (b *bolt5) SetPinHomeDatabaseCallback(callback func(context.Context, string)) { - b.pinHomeDatabaseCallback = callback -} - -func (b *bolt5) IsSsrEnabled() bool { - return b.ssrEnabled -} - -func (b *bolt5) ReAuth(ctx context.Context, auth *idb.ReAuthToken) error { - if b.minor == 0 { - return b.fallbackReAuth(ctx, auth) - } - return b.reAuth(ctx, auth) -} - -func (b *bolt5) fallbackReAuth(ctx context.Context, auth *idb.ReAuthToken) error { - if err := checkReAuth(auth, b); err != nil { - return err - } - if b.resetAuth { - b.log.Infof(log.Bolt5, b.logId, "Closing connection because auth token expired (informed by other connection)") - b.Close(ctx) - return nil - } - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - if !reflect.DeepEqual(b.auth, token.Tokens) { - b.log.Infof(log.Bolt5, b.logId, "Closing connection because auth token expired (informed by auth manager)") - b.Close(ctx) - } - return nil -} - -func (b *bolt5) reAuth(ctx context.Context, auth *idb.ReAuthToken) error { - token, err := auth.Manager.GetAuthToken(ctx) - if err != nil { - return err - } - if b.resetAuth { - b.log.Infof( - log.Bolt5, b.logId, - "Re-authenticating connection because auth token expired (informed by other connection)") - b.queue.appendLogoff(b.logoffResponseHandler()) - b.queue.appendLogon(token.Tokens, b.logonResponseHandler()) - } else if !reflect.DeepEqual(b.auth, token.Tokens) { - b.log.Infof( - log.Bolt5, b.logId, - "Re-authenticating connection because auth token expired (informed by auth manager)") - b.queue.appendLogoff(b.logoffResponseHandler()) - b.queue.appendLogon(token.Tokens, b.logonResponseHandler()) - } else if auth.ForceReAuth { - b.log.Infof( - log.Bolt5, b.logId, - "Re-authenticating connection because auth token expired (forced by verifyAuthentication)") - b.queue.appendLogoff(b.logoffResponseHandler()) - b.queue.appendLogon(token.Tokens, b.logonResponseHandler()) - } else { - return nil - } - - if b.queue.send(ctx); b.err != nil { - return b.err - } - b.auth = token.Tokens - b.authManager = auth.Manager - if auth.ForceReAuth { - if err := b.queue.receiveAll(ctx); err != nil { - return err - } - if b.err != nil { - return b.err - } - } - return nil -} - -// Close closes the underlying connection. -// Beware: could be called on another thread when driver is closed. -func (b *bolt5) Close(ctx context.Context) { - b.log.Infof(log.Bolt5, b.logId, "Close") - if b.state != bolt5Dead { - b.state = bolt5Dead - b.queue.appendGoodbye() - b.queue.send(ctx) - } - if err := b.conn.Close(); err != nil { - b.log.Warnf(log.Driver, b.serverName, "Could not close underlying socket: %v", err) - } -} - -func (b *bolt5) SelectDatabase(database string) { - b.databaseName = database -} - -func (b *bolt5) Database() string { - return b.databaseName -} - -func (b *bolt5) Version() db.ProtocolVersion { - return db.ProtocolVersion{ - Major: 5, - Minor: b.minor, - } -} - -func (b *bolt5) ResetAuth() { - b.resetAuth = true -} - -func (b *bolt5) GetCurrentAuth() (auth.TokenManager, iauth.Token) { - token := iauth.Token{Tokens: b.auth} - return b.authManager, token -} - -func (b *bolt5) Telemetry(api telemetry.API, onSuccess func()) { - if b.telemetryEnabled && b.Version().Minor >= 4 { - b.queue.appendTelemetry(api.AsInt(), b.telemetryResponseHandler(func(*success) { - if onSuccess != nil { - onSuccess() - } - })) - } -} - -func (b *bolt5) appendPullN(stream *stream) { - if b.state == bolt5Streaming { - b.queue.appendPullN(stream.fetchSize, b.pullResponseHandler(stream)) - } else if b.state == bolt5StreamingTx { - if stream.qid == b.lastQid { - b.queue.appendPullN(stream.fetchSize, b.pullResponseHandler(stream)) - } else { - b.queue.appendPullNQid(stream.fetchSize, stream.qid, b.pullResponseHandler(stream)) - } - } -} - -func (b *bolt5) helloResponseHandler() responseHandler { - return b.expectedSuccessHandler(b.onHelloSuccess) -} - -func (b *bolt5) logoffResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt5) logonResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt5) routeResponseHandler(table **idb.RoutingTable) responseHandler { - return b.expectedSuccessHandler(func(routeSuccess *success) { - *table = routeSuccess.routingTable - }) -} - -func (b *bolt5) beginResponseHandler(ctx context.Context) responseHandler { - return b.expectedSuccessHandler(func(beginSuccess *success) { - if b.pinHomeDatabaseCallback != nil && beginSuccess.db != "" { - b.pinHomeDatabaseCallback(ctx, beginSuccess.db) - } - }) -} - -func (b *bolt5) runResponseHandler(ctx context.Context, stream *stream) responseHandler { - return b.expectedSuccessHandler(func(runSuccess *success) { - if b.pinHomeDatabaseCallback != nil && runSuccess.db != "" { - b.pinHomeDatabaseCallback(ctx, runSuccess.db) - } - stream.attached = true - stream.keys = runSuccess.fields - stream.qid = runSuccess.qid - stream.tfirst = runSuccess.tfirst - if runSuccess.qid > -1 { - b.lastQid = runSuccess.qid - } - b.streams.attach(stream) - }) -} - -func (b *bolt5) commitResponseHandler() responseHandler { - return b.expectedSuccessHandler(b.onCommitSuccess) -} - -func (b *bolt5) rollbackResponseHandler() responseHandler { - return b.expectedSuccessHandler(onSuccessNoOp) -} - -func (b *bolt5) discardResponseHandler(stream *stream) responseHandler { - return responseHandler{ - onIgnored: func(*ignored) { - stream.err = fmt.Errorf("stream interrupted while discarding results") - b.streams.remove(stream) - b.checkStreams() - }, - onSuccess: func(discardSuccess *success) { - if discardSuccess.hasMore { - stream.endOfBatch = true - return - } - summary := b.extractSummary(discardSuccess, stream) - if len(summary.Bookmark) > 0 { - b.bookmark = summary.Bookmark - } - stream.sum = summary - b.streams.remove(stream) - b.checkStreams() - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - stream.err = failure - b.onFailure(ctx, failure) // Will detach the stream - }, - } -} - -func (b *bolt5) pullResponseHandler(stream *stream) responseHandler { - return responseHandler{ - onRecord: func(record *db.Record) { - if record != nil { - stream.hadRecord = true - } - if stream.discarding { - stream.emptyRecords() - } else { - record.Keys = stream.keys - stream.push(record) - } - b.queue.pushFront(b.pullResponseHandler(stream)) - }, - onIgnored: func(*ignored) { - stream.err = fmt.Errorf("stream interrupted while pulling results") - b.streams.remove(stream) - b.checkStreams() - }, - onSuccess: func(pullSuccess *success) { - if stream.discarding { - stream.emptyRecords() - } - if pullSuccess.hasMore { - stream.endOfBatch = true - return - } - summary := b.extractSummary(pullSuccess, stream) - if len(summary.Bookmark) > 0 { - b.bookmark = summary.Bookmark - } - stream.sum = summary - b.streams.remove(stream) - b.checkStreams() - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - stream.err = failure - b.onFailure(ctx, failure) // Will detach the stream - }, - } -} - -func (b *bolt5) resetResponseHandler() responseHandler { - return responseHandler{ - onSuccess: func(resetSuccess *success) { - b.state = bolt5Ready - }, - onFailure: func(ctx context.Context, failure *db.Neo4jError) { - _ = b.errorListener.OnNeo4jError(ctx, b, failure) - b.state = bolt5Dead - }, - } -} - -func (b *bolt5) telemetryResponseHandler(onSuccess func(*success)) responseHandler { - return b.expectedSuccessHandler(onSuccess) -} - -func (b *bolt5) expectedSuccessHandler(onSuccess func(*success)) responseHandler { - return responseHandler{ - onSuccess: onSuccess, - onFailure: b.onFailure, - onIgnored: onIgnoredNoOp, - } -} - -func (b *bolt5) onHelloSuccess(helloSuccess *success) { - b.connId = helloSuccess.connectionId - b.serverVersion = helloSuccess.server - - connectionLogId := fmt.Sprintf("%s@%s", b.connId, b.serverName) - b.logId = connectionLogId - b.queue.setLogId(connectionLogId) - b.initializeReadTimeoutHint(helloSuccess.configurationHints) - b.initializeTelemetryEnabledHint(helloSuccess.configurationHints) - b.initializeSsrEnabledHint(helloSuccess.configurationHints) -} - -func (b *bolt5) onCommitSuccess(commitSuccess *success) { - if len(commitSuccess.bookmark) > 0 { - b.bookmark = commitSuccess.bookmark - } -} - -func (b *bolt5) onNextMessage() { - b.idleDate = itime.Now() -} - -func (b *bolt5) onFailure(ctx context.Context, failure *db.Neo4jError) { - var err error - err = failure - if callbackErr := b.errorListener.OnNeo4jError(ctx, b, failure); callbackErr != nil { - err = errorutil.CombineErrors(callbackErr, failure) - } - b.setError(err, isFatalError(failure)) -} - -func (b *bolt5) onIoError(ctx context.Context, err error) { - if b.state != bolt5Failed && b.state != bolt5Dead { - // Don't call callback when connections break after sending RESET. - // The server chooses to close the connection on some errors. - b.errorListener.OnIoError(ctx, b, err) - } - b.setError(err, true) -} - -func (b *bolt5) initializeReadTimeoutHint(hints map[string]any) { - readTimeoutHint, ok := hints[readTimeoutHintName] - if !ok { - return - } - readTimeout, ok := readTimeoutHint.(int64) - if !ok { - b.log.Infof(log.Bolt5, b.logId, `invalid %q value: %v, ignoring hint. Only strictly positive integer values are accepted`, readTimeoutHintName, readTimeoutHint) - return - } - if readTimeout <= 0 { - b.log.Infof(log.Bolt5, b.logId, `invalid %q integer value: %d. Only strictly positive values are accepted"`, readTimeoutHintName, readTimeout) - return - } - b.queue.in.connReadTimeout = time.Duration(readTimeout) * time.Second -} - -func (b *bolt5) initializeTelemetryEnabledHint(hints map[string]any) { - telemetryEnabledHint, ok := hints[telemetryEnabledHintName] - if !ok { - return - } - telemetryEnabled, ok := telemetryEnabledHint.(bool) - if !ok { - b.log.Infof(log.Bolt5, b.logId, `invalid %q value: %v, ignoring hint. Only boolean values are accepted`, telemetryEnabledHintName, telemetryEnabledHint) - return - } - b.telemetryEnabled = telemetryEnabled -} - -func (b *bolt5) initializeSsrEnabledHint(hints map[string]any) { - ssrEnabledHint, ok := hints[ssrEnabledHintName] - if !ok { - return - } - ssrEnabled, ok := ssrEnabledHint.(bool) - if !ok { - b.log.Infof(log.Bolt5, b.logId, `invalid %q value: %v, ignoring hint. Only boolean values are accepted`, ssrEnabledHintName, ssrEnabledHint) - return - } - b.ssrEnabled = ssrEnabled -} - -func (b *bolt5) extractSummary(success *success, stream *stream) *db.Summary { - summary := success.summary() - summary.Agent = b.serverVersion - summary.Major = 5 - summary.Minor = b.minor - summary.ServerName = b.serverName - summary.TFirst = stream.tfirst - summary.StreamSummary = stream.ToSummary() - return summary -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt_logging.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt_logging.go deleted file mode 100644 index 701dd22..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/bolt_logging.go +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "encoding/json" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "strings" -) - -type loggableDictionary map[string]any - -func copyAndSanitizeDictionary[T any | string](in map[string]T) map[string]T { - out := make(map[string]T, len(in)) - for k, v := range in { - if k == "credentials" { - var redacted any = "" - out[k] = redacted.(T) - } else { - out[k] = v - } - } - return out -} - -func (d loggableDictionary) String() string { - return serializeTrace(copyAndSanitizeDictionary(d)) -} - -type loggableStringDictionary map[string]string - -func (sd loggableStringDictionary) String() string { - return serializeTrace(copyAndSanitizeDictionary(sd)) -} - -type loggableList []any - -func (l loggableList) String() string { - return serializeTrace(l) -} - -type loggableStringList []string - -func (s loggableStringList) String() string { - return serializeTrace(s) -} - -type loggableSuccess success -type loggedSuccess struct { - Server string `json:"server,omitempty"` - ConnectionId string `json:"connection_id,omitempty"` - Fields []string `json:"fields,omitempty"` - TFirst int64 `json:"t_first,omitempty"` - Bookmark string `json:"bookmark,omitempty"` - TLast int64 `json:"t_last,omitempty"` - HasMore bool `json:"has_more,omitempty"` - Db string `json:"db,omitempty"` - Qid int64 `json:"qid,omitempty"` - ConfigHints loggableDictionary `json:"hints,omitempty"` - RoutingTable *loggedRoutingTable `json:"routing_table,omitempty"` -} - -func (s loggableSuccess) String() string { - success := loggedSuccess{ - Server: s.server, - ConnectionId: s.connectionId, - Fields: s.fields, - Bookmark: s.bookmark, - HasMore: s.hasMore, - Db: s.db, - ConfigHints: s.configurationHints, - } - if s.tfirst > -1 { - success.TFirst = s.tfirst - } - if s.tlast > -1 { - success.TFirst = s.tlast - } - if s.qid > -1 { - success.Qid = s.qid - } - routingTable := s.routingTable - if routingTable != nil { - success.RoutingTable = &loggedRoutingTable{ - TimeToLive: routingTable.TimeToLive, - DatabaseName: routingTable.DatabaseName, - Routers: routingTable.Routers, - Readers: routingTable.Readers, - Writers: routingTable.Writers, - } - } - return serializeTrace(success) -} - -type loggedRoutingTable struct { - TimeToLive int `json:"ttl,omitempty"` - DatabaseName string `json:"db,omitempty"` - Routers []string `json:"routers,omitempty"` - Readers []string `json:"readers,omitempty"` - Writers []string `json:"writers,omitempty"` -} - -type loggableFailure db.Neo4jError - -func (f loggableFailure) String() string { - return serializeTrace(map[string]any{ - "code": f.Code, - "message": f.Msg, - }) -} - -func serializeTrace(v any) string { - builder := strings.Builder{} - encoder := json.NewEncoder(&builder) - encoder.SetEscapeHTML(false) - _ = encoder.Encode(v) - return strings.TrimSpace(builder.String()) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/chunker.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/chunker.go deleted file mode 100644 index f961493..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/chunker.go +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "encoding/binary" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - rio "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - "io" -) - -type chunker struct { - buf []byte - sizes []int - offset int -} - -func newChunker() chunker { - return chunker{ - buf: make([]byte, 0, 1024), - sizes: make([]int, 0, 3), - offset: 0, - } -} - -func (c *chunker) beginMessage() { - // Space for length of next message - c.buf = append(c.buf, 0, 0) - c.offset += 2 -} - -func (c *chunker) endMessage() { - // Calculate size and stash it - size := len(c.buf) - c.offset - c.offset += size - c.sizes = append(c.sizes, size) - - // Add zero chunk to mark end of message - c.buf = append(c.buf, 0, 0) - c.offset += 2 -} - -func (c *chunker) send(ctx context.Context, wr io.Writer) error { - // Try to make as few writes as possible to reduce network overhead - // Whenever we encounter a message that is bigger than max chunk size we need - // to write and make a new chunk - start := 0 - end := 0 - - writer := rio.NewRacingWriter(wr) - - for _, size := range c.sizes { - if size <= 0xffff { - binary.BigEndian.PutUint16(c.buf[end:], uint16(size)) - // Size + message + end of message marker - end += 2 + size + 2 - } else { - // Could be a message that ranges over multiple chunks - for size > 0xffff { - c.buf[end] = 0xff - c.buf[end+1] = 0xff - // Size + message - end += 2 + 0xffff - - _, err := writer.Write(ctx, c.buf[start:end]) - if err != nil { - return processWriteError(err, ctx) - } - // Reuse part of buffer that has already been written to specify size - // of the chunk - end -= 2 - start = end - size -= 0xffff - } - binary.BigEndian.PutUint16(c.buf[end:], uint16(size)) - // Size + message + end of message marker - end += 2 + size + 2 - } - } - - if end > start { - _, err := writer.Write(ctx, c.buf[start:end]) - if err != nil { - return processWriteError(err, ctx) - } - } - - // Prepare for reuse - c.offset = 0 - c.buf = c.buf[:0] - c.sizes = c.sizes[:0] - - return nil -} - -func processWriteError(err error, ctx context.Context) error { - if errorutil.IsTimeoutError(err) { - return &errorutil.ConnectionWriteTimeout{ - UserContext: ctx, - Err: err, - } - } - if err == context.Canceled { - return &errorutil.ConnectionWriteCanceled{ - Err: err, - } - } - return err -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connect.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connect.go deleted file mode 100644 index 0089bb6..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connect.go +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt contains implementations of the database functionality. -package bolt - -import ( - "context" - "encoding/binary" - "fmt" - "io" - "net" - "strings" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type protocolVersion struct { - major byte - minor byte - back byte // Number of minor versions back -} - -func (p *protocolVersion) formatProtocol() string { - return fmt.Sprintf("%#04X%02X%02X", p.back, p.minor, p.major) -} - -// versions lists the supported protocol versions in priority order. -// The first proposal is a marker indicating that the client wishes to use the -// new manifest-style negotiation. -var versions = [4]protocolVersion{ - {major: 0xFF, minor: 0x01, back: 0x00}, // Bolt manifest marker - {major: 5, minor: 8, back: 8}, - {major: 4, minor: 4, back: 2}, - {major: 3, minor: 0, back: 0}, -} - -// Connect initiates the negotiation of the Bolt protocol version. -// Returns the instance of bolt protocol implementing the low-level Connection interface. -func Connect(ctx context.Context, - serverName string, - conn net.Conn, - auth *db.ReAuthToken, - userAgent string, - routingContext map[string]string, - errorListener ConnectionErrorListener, - logger log.Logger, - boltLogger log.BoltLogger, - notificationConfig db.NotificationConfig, - readBufferSize int, -) (db.Connection, error) { - // Perform Bolt handshake to negotiate version - // Send handshake to server - handshake := []byte{ - 0x60, 0x60, 0xb0, 0x17, // Magic: GoGoBolt - 0x00, versions[0].back, versions[0].minor, versions[0].major, - 0x00, versions[1].back, versions[1].minor, versions[1].major, - 0x00, versions[2].back, versions[2].minor, versions[2].major, - 0x00, versions[3].back, versions[3].minor, versions[3].major, - } - if boltLogger != nil { - boltLogger.LogClientMessage("", " %#010X", handshake[0:4]) - boltLogger.LogClientMessage("", " %#010X %#010X %#010X %#010X", handshake[4:8], handshake[8:12], handshake[12:16], handshake[16:20]) - } - // Write handshake proposals to server - _, err := racing.NewRacingWriter(conn).Write(ctx, handshake) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return nil, err - } - - // Receive accepted server version - buf := make([]byte, 4) - _, err = racing.NewRacingReader(conn).ReadFull(ctx, buf) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return nil, err - } - - major := buf[3] - minor := buf[2] - - if major == 80 && minor == 84 { - return nil, &errorutil.UsageError{Message: "server responded HTTP. Make sure you are not trying to connect to the http endpoint " + - "(HTTP defaults to port 7474 whereas BOLT defaults to port 7687)"} - } - - // Log legacy handshake response. - if !(major == 0xFF && minor == 0x01) && boltLogger != nil { - boltLogger.LogServerMessage("", " %#010X", buf) - } - - bufferedConn := bufferedConnection(conn, readBufferSize) - - // If the server selected manifest negotiation, perform the extended handshake. - if major == 0xFF && minor == 0x01 { - major, minor, err = performManifestNegotiation(ctx, bufferedConn, serverName, errorListener, boltLogger, buf) - if err != nil { - return nil, err - } - } - - var boltConn db.Connection - switch major { - case 3: - boltConn = NewBolt3(serverName, bufferedConn, errorListener, logger, boltLogger) - case 4: - boltConn = NewBolt4(serverName, bufferedConn, errorListener, logger, boltLogger) - case 5: - boltConn = NewBolt5(serverName, bufferedConn, errorListener, logger, boltLogger) - case 0: - return nil, fmt.Errorf("server did not accept any of the requested Bolt versions (%#v)", versions) - default: - return nil, &errorutil.UsageError{Message: fmt.Sprintf("server responded with unsupported version %d.%d", major, minor)} - } - if err = boltConn.Connect(ctx, int(minor), auth, userAgent, routingContext, notificationConfig); err != nil { - boltConn.Close(ctx) - return nil, err - } - return boltConn, nil -} - -// performManifestNegotiation handles the manifest-style handshake. -// Returns the negotiated protocol's major and minor version. -func performManifestNegotiation( - ctx context.Context, - conn io.ReadWriteCloser, - serverName string, - errorListener ConnectionErrorListener, - boltLogger log.BoltLogger, - response []byte, -) (byte, byte, error) { - reader := racing.NewRacingReader(conn) - - // Read the protocol offerings. - supported, err := readProtocolOfferings(ctx, reader, serverName, errorListener) - if err != nil { - return 0, 0, err - } - - // Read the capability mask. - _, capBytes, err := readCapabilityMask(ctx, reader, serverName, errorListener) - if err != nil { - return 0, 0, err - } - - // Log the complete server handshake message. - logManifestHandshake(boltLogger, response, supported, capBytes) - - // Select an acceptable protocol version. - chosen, err := selectProtocol(supported) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - // Best-effort attempt to send an invalid handshake (ignore any error). - invalidHandshake := []byte{0x00, 0x00, 0x00, 0x00, 0x00} // 4 bytes for version + 1 byte for capabilities. - _, _ = racing.NewRacingWriter(conn).Write(ctx, invalidHandshake) - return 0, 0, err - } - - // Send the handshake confirmation. - if err = sendHandshakeConfirmation(ctx, conn, boltLogger, errorListener, serverName, chosen, []byte{0x00}); err != nil { - return 0, 0, err - } - - return chosen.major, chosen.minor, nil -} - -// readProtocolOfferings reads the number of protocol offerings and returns the count and -// a slice of supported protocol versions. -func readProtocolOfferings(ctx context.Context, r racing.RacingReader, serverName string, errorListener ConnectionErrorListener) ([]protocolVersion, error) { - count, _, err := readVarInt(ctx, r) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return nil, fmt.Errorf("failed to read manifest protocol count: %w", err) - } - supported := make([]protocolVersion, 0, count) - for i := uint64(0); i < count; i++ { - var versionBytes [4]byte - _, err := r.ReadFull(ctx, versionBytes[:]) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return nil, fmt.Errorf("failed to read manifest protocol version: %w", err) - } - supported = append(supported, protocolVersion{ - back: versionBytes[1], - minor: versionBytes[2], - major: versionBytes[3], - }) - } - return supported, nil -} - -// readCapabilityMask reads the capability bit mask (a Base128 VarInt) and returns both the -// raw value and its encoded byte slice. -func readCapabilityMask(ctx context.Context, r racing.RacingReader, serverName string, errorListener ConnectionErrorListener) (uint64, []byte, error) { - capMask, capBytes, err := readVarInt(ctx, r) - if err != nil { - errorListener.OnDialError(ctx, serverName, err) - return 0, capBytes, fmt.Errorf("failed to read capability mask: %w", err) - } - return capMask, capBytes, nil -} - -// logManifestHandshake logs the complete server handshake message for manifest negotiation. -// It prints the initial response, count of offerings, each supported protocol, and the capability mask. -func logManifestHandshake(boltLogger log.BoltLogger, response []byte, supported []protocolVersion, capBytes []byte) { - if boltLogger == nil { - return - } - supportedProtocols := make([]string, 0, len(supported)) - for _, p := range supported { - supportedProtocols = append(supportedProtocols, p.formatProtocol()) - } - boltLogger.LogServerMessage("", " %s [%d] %s %s", - fmt.Sprintf("%#X", response), - len(supported), - strings.Join(supportedProtocols, " "), - fmt.Sprintf("%#X", capBytes)) -} - -// selectProtocol iterates over our protocol proposals (skipping the manifest marker) -// and returns the first candidate whose major version matches and whose minor version -// falls within the range offered by the server. -func selectProtocol(offers []protocolVersion) (protocolVersion, error) { - for _, candidate := range versions[1:] { - for v := int(candidate.minor); v >= int(candidate.minor)-int(candidate.back); v-- { - for _, offer := range offers { - if offer.major != candidate.major { - continue - } - if byte(v) <= offer.minor && byte(v) >= offer.minor-offer.back { - return protocolVersion{major: candidate.major, minor: byte(v)}, nil - } - } - } - } - return protocolVersion{}, fmt.Errorf("none of the server offered Bolt versions are supported (offered: %#v)", offers) -} - -// sendHandshakeConfirmation sends the chosen protocol version and capability mask back to the server. -func sendHandshakeConfirmation(ctx context.Context, conn io.ReadWriteCloser, boltLogger log.BoltLogger, errorListener ConnectionErrorListener, serverName string, chosen protocolVersion, capBytes []byte) error { - chosenBytes := []byte{0x00, 0x00, chosen.minor, chosen.major} - if boltLogger != nil { - boltLogger.LogClientMessage("", " %#X %#X", chosenBytes, capBytes) - } - writer := racing.NewRacingWriter(conn) - if _, err := writer.Write(ctx, chosenBytes); err != nil { - errorListener.OnDialError(ctx, serverName, err) - return err - } - if _, err := writer.Write(ctx, capBytes); err != nil { - errorListener.OnDialError(ctx, serverName, err) - return err - } - return nil -} - -// readVarInt returns a Base128-encoded variable-length integer from the reader. -func readVarInt(ctx context.Context, r racing.RacingReader) (uint64, []byte, error) { - var buf [binary.MaxVarintLen64]byte - // Read one byte at a time until a byte with the MSB not set is encountered. - for i := 0; i < len(buf); i++ { - if _, err := r.Read(ctx, buf[i:i+1]); err != nil { - return 0, buf[:i], err - } - // If the continuation bit is not set, we've reached the end of the varint. - if buf[i]&0x80 == 0 { - value, n := binary.Uvarint(buf[:i+1]) - if n <= 0 { - return 0, buf[:i+1], fmt.Errorf("failed to decode varint") - } - return value, buf[:i+1], nil - } - } - return 0, buf[:], fmt.Errorf("varint too long") -} - -// encodeVarInt returns the encoded unsigned integer into a Base128 variable-length integer. -func encodeVarInt(value uint64) []byte { - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], value) - return buf[:n] -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connections.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connections.go deleted file mode 100644 index 5f1639b..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/connections.go +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "bufio" - "context" - "io" - "net" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" -) - -// DefaultReadBufferSize specifies the default size (in bytes) of the buffer used for reading data from the network connection. -const DefaultReadBufferSize = 8192 - -func bufferedConnection(conn net.Conn, readBufferSize int) io.ReadWriteCloser { - var reader io.Reader - if readBufferSize > 0 { - reader = bufio.NewReaderSize(conn, readBufferSize) - } else { - reader = conn - } - - return struct { - io.Reader - io.Writer - io.Closer - }{ - Reader: reader, - Writer: conn, - Closer: conn, - } -} - -type ConnectionErrorListener interface { - OnNeo4jError(context.Context, idb.Connection, *db.Neo4jError) error - OnIoError(context.Context, idb.Connection, error) - OnDialError(context.Context, string, error) -} - -func handleTerminatedContextError(err error, connection io.Closer) error { - if !contextTerminatedErr(err) { - return nil - } - closeErr := connection.Close() - if closeErr == nil { - return nil - } - return errorutil.CombineErrors(err, closeErr) -} - -func contextTerminatedErr(err error) bool { - switch err.(type) { - case *errorutil.ConnectionWriteTimeout: - return true - case *errorutil.ConnectionReadTimeout: - return true - case *errorutil.ConnectionWriteCanceled: - return true - case *errorutil.ConnectionReadCanceled: - return true - } - return false -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/dechunker.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/dechunker.go deleted file mode 100644 index f3d7b06..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/dechunker.go +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "encoding/binary" - "io" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - rio "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" -) - -// dechunkMessage takes a buffer to be reused and returns the reusable buffer -// (might have been reallocated to handle growth), the message buffer and -// error. -// Reads will race against the provided context ctx -// If the server provides the connection read timeout hint readTimeout, a new context will be created from that timeout -// and the user-provided context ctx before every read -func dechunkMessage(ctx context.Context, conn io.Reader, msgBuf []byte, readTimeout time.Duration) ([]byte, []byte, error) { - - sizeBuf := []byte{0x00, 0x00} - off := 0 - - reader := rio.NewRacingReader(conn) - - for { - updatedCtx, cancelFunc := newContext(ctx, readTimeout) - _, err := reader.ReadFull(updatedCtx, sizeBuf) - if err != nil { - return msgBuf, nil, processReadError(err, ctx, readTimeout) - } - if cancelFunc != nil { // reading has been completed, time to release the context - cancelFunc() - } - chunkSize := int(binary.BigEndian.Uint16(sizeBuf)) - if chunkSize == 0 { - if off > 0 { - return msgBuf, msgBuf[:off], nil - } - // Got a nop chunk - continue - } - - // Need to expand buffer - if (off + chunkSize) > cap(msgBuf) { - newMsgBuf := make([]byte, (off+chunkSize)+4096) - copy(newMsgBuf, msgBuf) - msgBuf = newMsgBuf - } - // Read the chunk into buffer - updatedCtx, cancelFunc = newContext(ctx, readTimeout) - _, err = reader.ReadFull(updatedCtx, msgBuf[off:(off+chunkSize)]) - if err != nil { - return msgBuf, nil, processReadError(err, ctx, readTimeout) - } - if cancelFunc != nil { // reading has been completed, time to release the context - cancelFunc() - } - off += chunkSize - } -} - -// newContext computes a new context and cancel function if a readTimeout is set -func newContext(ctx context.Context, readTimeout time.Duration) (context.Context, context.CancelFunc) { - if readTimeout >= 0 { - return context.WithTimeout(ctx, readTimeout) - } - return ctx, nil -} - -func processReadError(err error, ctx context.Context, readTimeout time.Duration) error { - if errorutil.IsTimeoutError(err) { - return &errorutil.ConnectionReadTimeout{ - UserContext: ctx, - ReadTimeout: readTimeout, - Err: err, - } - } - if err == context.Canceled { - return &errorutil.ConnectionReadCanceled{ - Err: err, - } - } - return err -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/hydrator.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/hydrator.go deleted file mode 100644 index 45de57d..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/hydrator.go +++ /dev/null @@ -1,1080 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "errors" - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const containsSystemUpdatesKey = "contains-system-updates" -const containsUpdatesKey = "contains-updates" - -type ignored struct{} -type success struct { - fields []string - tfirst int64 - qid int64 - bookmark string - connectionId string - server string - db string - hasMore bool - tlast int64 - qtype db.StatementType - counters map[string]any - plan *db.Plan - profile *db.ProfiledPlan - notifications []db.Notification - statuses []db.GqlStatusObject - routingTable *idb.RoutingTable - num uint32 - configurationHints map[string]any - patches []string -} - -func (s *success) String() string { - str := fmt.Sprintf("%#v", s) - if s.plan != nil { - str += fmt.Sprintf(" \nplan: %#v", s.plan) - } - if s.profile != nil { - str += fmt.Sprintf(" \nprofile: %#v", s.profile) - } - if s.routingTable != nil { - str += fmt.Sprintf(" \nrouting table: %#v", s.routingTable) - } - return str -} - -func (s *success) summary() *db.Summary { - return &db.Summary{ - Bookmark: s.bookmark, - StmntType: s.qtype, - Counters: extractIntCounters(s.counters), - TLast: s.tlast, - Plan: s.plan, - ProfiledPlan: s.profile, - Notifications: s.notifications, - GqlStatusObjects: s.statuses, - Database: s.db, - ContainsSystemUpdates: extractBoolPointer(s.counters, containsSystemUpdatesKey), - ContainsUpdates: extractBoolPointer(s.counters, containsUpdatesKey), - } -} - -func extractIntCounters(counters map[string]any) map[string]int { - result := make(map[string]int, len(counters)) - for k, v := range counters { - if k != containsSystemUpdatesKey && k != containsUpdatesKey { - result[k] = v.(int) - } - } - return result -} - -func extractBoolPointer(counters map[string]any, key string) *bool { - result, ok := counters[key] - if !ok { - return nil - } - return result.(*bool) -} - -type hydrator struct { - unpacker packstream.Unpacker - unp *packstream.Unpacker - err error - cachedIgnored ignored - cachedSuccess success - boltLogger log.BoltLogger - logId string - boltMajor int - useUtc bool -} - -func (h *hydrator) setErr(err error) { - if h.err == nil { - h.err = err - } -} - -func (h *hydrator) getErr() error { - if h.unp.Err != nil { - return h.unp.Err - } - return h.err -} - -func (h *hydrator) assertLength(structType string, expected, actual uint32) { - if expected != actual { - h.setErr(&db.ProtocolError{ - MessageType: structType, - Err: fmt.Sprintf("Invalid length of struct, expected %d but was %d", - expected, actual), - }) - } -} - -// hydrate hydrates a top-level struct message -func (h *hydrator) hydrate(buf []byte) (x any, err error) { - h.unp = &h.unpacker - h.unp.Reset(buf) - h.unp.Next() - - if h.unp.Curr != packstream.PackedStruct { - return nil, errors.New("expected struct") - } - - n := h.unp.Len() - t := h.unp.StructTag() - switch t { - case msgSuccess: - x = h.success(n) - case msgIgnored: - x = h.ignored(n) - case msgFailure: - x = h.failure(n, false) - case msgRecord: - x = h.record(n) - default: - return nil, fmt.Errorf("unexpected tag at top level: %d", t) - } - err = h.getErr() - return -} - -func (h *hydrator) ignored(n uint32) *ignored { - h.assertLength("ignored", 0, n) - if h.getErr() != nil { - return nil - } - if h.boltLogger != nil { - h.boltLogger.LogServerMessage(h.logId, "IGNORED") - } - return &h.cachedIgnored -} - -func (h *hydrator) failure(n uint32, isNestedError bool) *db.Neo4jError { - h.assertLength("failure", 1, n) - if h.getErr() != nil { - return nil - } - dberr := db.Neo4jError{} - // Skip h.unp.Next() for nested errors to avoid reprocessing the unpacker, - // as it's already handled by the recursive call. - if !isNestedError { - h.unp.Next() // Detect map - } - for maplen := h.unp.Len(); maplen > 0; maplen-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - switch key { - case "gql_status": - dberr.GqlStatus = h.unp.String() - case "description": - dberr.GqlStatusDescription = h.unp.String() - case "neo4j_code": - fallthrough - case "code": - dberr.Code = h.unp.String() - case "message": - dberr.Msg = h.unp.String() - case "diagnostic_record": - dberr.GqlDiagnosticRecord = h.amap() - case "cause": - dberr.GqlCause = h.failure(1, true) - default: - // Do not fail on unknown value in map - h.trash() - } - } - errorutil.PolyfillGqlError(&dberr) - if h.boltLogger != nil { - h.boltLogger.LogServerMessage(h.logId, "FAILURE %s", loggableFailure(dberr)) - } - return &dberr -} - -func (h *hydrator) success(n uint32) *success { - h.assertLength("success", 1, n) - if h.getErr() != nil { - return nil - } - // Use cached success but clear it first - h.cachedSuccess = success{} - h.cachedSuccess.qid = -1 - h.cachedSuccess.tfirst = -1 - h.cachedSuccess.tlast = -1 - succ := &h.cachedSuccess - - h.unp.Next() // Detect map - n = h.unp.Len() - succ.num = n - for ; n > 0; n-- { - // Key - h.unp.Next() - key := h.unp.String() - // Value - h.unp.Next() - switch key { - case "fields": - succ.fields = h.strings() - case "t_first": - succ.tfirst = h.unp.Int() - case "qid": - succ.qid = h.unp.Int() - case "bookmark": - succ.bookmark = h.unp.String() - case "connection_id": - succ.connectionId = h.unp.String() - case "server": - succ.server = h.unp.String() - case "has_more": - succ.hasMore = h.unp.Bool() - case "t_last": - succ.tlast = h.unp.Int() - case "type": - statementType := h.unp.String() - switch statementType { - case "r": - succ.qtype = db.StatementTypeRead - case "w": - succ.qtype = db.StatementTypeWrite - case "rw": - succ.qtype = db.StatementTypeReadWrite - case "s": - succ.qtype = db.StatementTypeSchemaWrite - default: - h.setErr(&db.ProtocolError{ - MessageType: "success", - Field: "type", - Err: fmt.Sprintf("unrecognized success statement type %s", statementType), - }) - } - case "db": - succ.db = h.unp.String() - case "stats": - succ.counters = h.successStats() - case "plan": - m := h.amap() - succ.plan = parsePlan(m) - case "profile": - m := h.amap() - succ.profile = parseProfile(m) - case "notifications": - l := h.array() - succ.notifications = parseNotifications(l) - case "statuses": - l := h.array() - succ.statuses = parseGqlStatusObjects(l) - case "rt": - succ.routingTable = h.routingTable() - case "hints": - hints := h.amap() - succ.configurationHints = hints - case "patch_bolt": - patches := h.strings() - succ.patches = patches - default: - // Unknown key, waste it - h.trash() - } - } - if h.boltLogger != nil { - h.boltLogger.LogServerMessage(h.logId, "SUCCESS %s", loggableSuccess(*succ)) - } - return succ -} - -func (h *hydrator) successStats() map[string]any { - n := h.unp.Len() - if n == 0 { - return nil - } - counts := make(map[string]any, n) - for ; n > 0; n-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - val := h.parseStatValue(key) - counts[key] = val - } - return counts -} - -func (h *hydrator) parseStatValue(key string) any { - var val any - switch key { - case containsSystemUpdatesKey, containsUpdatesKey: - boolValue := h.unp.Bool() - val = &boolValue - default: - val = int(h.unp.Int()) - } - return val -} - -// routingTable parses a routing table sent from the server. This is done -// the 'hard' way to reduce number of allocations (would be easier to go via -// a map) since it is called in normal flow (not that frequent...). -func (h *hydrator) routingTable() *idb.RoutingTable { - rt := idb.RoutingTable{} - // Length of map - nkeys := h.unp.Len() - for ; nkeys > 0; nkeys-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - switch key { - case "ttl": - rt.TimeToLive = int(h.unp.Int()) - case "servers": - nservers := h.unp.Len() - for ; nservers > 0; nservers-- { - h.routingTableRole(&rt) - } - case "db": - rt.DatabaseName = h.unp.String() - default: - // Unknown key, waste the value - h.trash() - } - } - return &rt -} - -func (h *hydrator) routingTableRole(rt *idb.RoutingTable) { - h.unp.Next() - nkeys := h.unp.Len() - var role string - var addresses []string - for ; nkeys > 0; nkeys-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - switch key { - case "role": - role = h.unp.String() - case "addresses": - addresses = h.strings() - default: - // Unknown key, waste the value - h.trash() - } - } - switch role { - case "READ": - rt.Readers = addresses - case "WRITE": - rt.Writers = addresses - case "ROUTE": - rt.Routers = addresses - } -} - -func (h *hydrator) strings() []string { - n := h.unp.Len() - slice := make([]string, n) - for i := range slice { - h.unp.Next() - slice[i] = h.unp.String() - } - return slice -} - -func (h *hydrator) amap() map[string]any { - n := h.unp.Len() - m := make(map[string]any, n) - for ; n > 0; n-- { - h.unp.Next() - key := h.unp.String() - h.unp.Next() - m[key] = h.value() - } - return m -} - -func (h *hydrator) array() []any { - n := h.unp.Len() - a := make([]any, n) - for i := range a { - h.unp.Next() - a[i] = h.value() - } - return a -} - -func (h *hydrator) record(n uint32) *db.Record { - h.assertLength("record", 1, n) - if h.getErr() != nil { - return nil - } - rec := db.Record{} - h.unp.Next() // Detect array - n = h.unp.Len() - rec.Values = make([]any, n) - for i := range rec.Values { - h.unp.Next() - rec.Values[i] = h.value() - } - if h.boltLogger != nil { - h.boltLogger.LogServerMessage(h.logId, "RECORD %s", loggableList(rec.Values)) - } - return &rec -} - -func (h *hydrator) value() any { - valueType := h.unp.Curr - switch valueType { - case packstream.PackedInt: - return h.unp.Int() - case packstream.PackedFloat: - return h.unp.Float() - case packstream.PackedStr: - return h.unp.String() - case packstream.PackedStruct: - t := h.unp.StructTag() - n := h.unp.Len() - switch t { - case 'N': - if h.boltMajor >= 5 { - return h.nodeWithElementId(n) - } - return h.node(n) - case 'R': - if h.boltMajor >= 5 { - return h.relationshipWithElementId(n) - } - return h.relationship(n) - case 'r': - if h.boltMajor >= 5 { - return h.relationnodeWithElementId(n) - } - return h.relationnode(n) - case 'P': - return h.path(n) - case 'X': - return h.point2d(n) - case 'Y': - return h.point3d(n) - case 'F': - if h.useUtc { - return h.unknownStructError(t) - } - return h.dateTimeOffset(n) - case 'I': - if !h.useUtc { - return h.unknownStructError(t) - } - return h.utcDateTimeOffset(n) - case 'f': - if h.useUtc { - return h.unknownStructError(t) - } - return h.dateTimeNamedZone(n) - case 'i': - if !h.useUtc { - return h.unknownStructError(t) - } - return h.utcDateTimeNamedZone(n) - case 'd': - return h.localDateTime(n) - case 'D': - return h.date(n) - case 'T': - return h.time(n) - case 't': - return h.localTime(n) - case 'E': - return h.duration(n) - default: - return h.unknownStructError(t) - } - case packstream.PackedByteArray: - return h.unp.ByteArray() - case packstream.PackedArray: - return h.array() - case packstream.PackedMap: - return h.amap() - case packstream.PackedNil: - return nil - case packstream.PackedTrue: - return true - case packstream.PackedFalse: - return false - default: - h.setErr(&db.ProtocolError{ - Err: fmt.Sprintf("Received unknown packstream value type: %d", valueType), - }) - return nil - } -} - -// Trashes current value -func (h *hydrator) trash() { - // TODO Less consuming implementation - h.value() -} - -func (h *hydrator) node(num uint32) any { - h.assertLength("node", 3, num) - if h.getErr() != nil { - return nil - } - n := dbtype.Node{} - h.unp.Next() - //lint:ignore SA1019 Id is supported at least until 6.0 - n.Id = h.unp.Int() - h.unp.Next() - n.Labels = h.strings() - h.unp.Next() - n.Props = h.amap() - //lint:ignore SA1019 Id is supported at least until 6.0 - n.ElementId = fmt.Sprintf("%d", n.Id) - return n -} - -func (h *hydrator) nodeWithElementId(num uint32) any { - h.assertLength("node", 4, num) - if h.getErr() != nil { - return nil - } - n := dbtype.Node{} - h.unp.Next() - //lint:ignore SA1019 Id is supported at least until 6.0 - n.Id = h.unp.Int() - h.unp.Next() - n.Labels = h.strings() - h.unp.Next() - n.Props = h.amap() - h.unp.Next() - n.ElementId = h.unp.String() - return n -} - -func (h *hydrator) relationship(n uint32) any { - h.assertLength("relationship", 5, n) - if h.getErr() != nil { - return nil - } - r := dbtype.Relationship{} - h.unp.Next() - //lint:ignore SA1019 Id is supported at least until 6.0 - r.Id = h.unp.Int() - h.unp.Next() - //lint:ignore SA1019 StartId is supported at least until 6.0 - r.StartId = h.unp.Int() - h.unp.Next() - //lint:ignore SA1019 EndId is supported at least until 6.0 - r.EndId = h.unp.Int() - h.unp.Next() - r.Type = h.unp.String() - h.unp.Next() - r.Props = h.amap() - //lint:ignore SA1019 Id is supported at least until 6.0 - r.ElementId = fmt.Sprintf("%d", r.Id) - //lint:ignore SA1019 StartId is supported at least until 6.0 - r.StartElementId = fmt.Sprintf("%d", r.StartId) - //lint:ignore SA1019 EndId is supported at least until 6.0 - r.EndElementId = fmt.Sprintf("%d", r.EndId) - return r -} - -func (h *hydrator) relationshipWithElementId(n uint32) any { - h.assertLength("relationship", 8, n) - if h.getErr() != nil { - return nil - } - r := dbtype.Relationship{} - h.unp.Next() - //lint:ignore SA1019 Id is supported at least until 6.0 - r.Id = h.unp.Int() - h.unp.Next() - //lint:ignore SA1019 StartId is supported at least until 6.0 - r.StartId = h.unp.Int() - h.unp.Next() - //lint:ignore SA1019 EndId is supported at least until 6.0 - r.EndId = h.unp.Int() - h.unp.Next() - r.Type = h.unp.String() - h.unp.Next() - r.Props = h.amap() - h.unp.Next() - r.ElementId = h.unp.String() - h.unp.Next() - r.StartElementId = h.unp.String() - h.unp.Next() - r.EndElementId = h.unp.String() - return r -} - -func (h *hydrator) relationnode(n uint32) any { - h.assertLength("relationnode", 3, n) - if h.getErr() != nil { - return nil - } - r := relNode{} - h.unp.Next() - r.id = h.unp.Int() - h.unp.Next() - r.name = h.unp.String() - h.unp.Next() - r.props = h.amap() - r.elementId = fmt.Sprintf("%d", r.id) - return &r -} - -func (h *hydrator) relationnodeWithElementId(n uint32) any { - h.assertLength("relationnode", 4, n) - if h.getErr() != nil { - return nil - } - r := relNode{} - h.unp.Next() - r.id = h.unp.Int() - h.unp.Next() - r.name = h.unp.String() - h.unp.Next() - r.props = h.amap() - h.unp.Next() - r.elementId = h.unp.String() - return &r -} - -func (h *hydrator) path(n uint32) any { - h.assertLength("path", 3, n) - if h.getErr() != nil { - return nil - } - // Array of nodes - h.unp.Next() - num := h.unp.Len() - nodes := make([]dbtype.Node, num) - for i := range nodes { - h.unp.Next() - node, ok := h.value().(dbtype.Node) - if !ok { - h.setErr(&db.ProtocolError{ - MessageType: "path", - Field: "nodes", - Err: "value could not be cast to Node", - }) - return nil - } - nodes[i] = node - } - // Array of relnodes - h.unp.Next() - num = h.unp.Len() - rnodes := make([]*relNode, num) - for i := range rnodes { - h.unp.Next() - rnode, ok := h.value().(*relNode) - if !ok { - h.setErr(&db.ProtocolError{ - MessageType: "path", - Field: "rnodes", - Err: "value could be not cast to *relNode", - }) - return nil - } - rnodes[i] = rnode - } - // Array of indexes - h.unp.Next() - num = h.unp.Len() - indexes := make([]int, num) - for i := range indexes { - h.unp.Next() - indexes[i] = int(h.unp.Int()) - } - - if (len(indexes) & 0x01) == 1 { - h.setErr(&db.ProtocolError{ - MessageType: "path", - Field: "indices", - Err: fmt.Sprintf("there should be an even number of indices, found %d", len(indexes)), - }) - return nil - } - - return buildPath(nodes, rnodes, indexes) -} - -func (h *hydrator) point2d(n uint32) any { - p := dbtype.Point2D{} - h.unp.Next() - p.SpatialRefId = uint32(h.unp.Int()) - h.unp.Next() - p.X = h.unp.Float() - h.unp.Next() - p.Y = h.unp.Float() - return p -} - -func (h *hydrator) point3d(n uint32) any { - p := dbtype.Point3D{} - h.unp.Next() - p.SpatialRefId = uint32(h.unp.Int()) - h.unp.Next() - p.X = h.unp.Float() - h.unp.Next() - p.Y = h.unp.Float() - h.unp.Next() - p.Z = h.unp.Float() - return p -} - -func (h *hydrator) dateTimeOffset(n uint32) any { - h.unp.Next() - seconds := h.unp.Int() - h.unp.Next() - nanos := h.unp.Int() - h.unp.Next() - offset := h.unp.Int() - // time.Time in local timezone, e.g. 15th of June 2020, 15:30 in Paris (UTC+2h) - unixTime := time.Unix(seconds, nanos) - // time.Time computed in UTC timezone, e.g. 15th of June 2020, 13:30 in UTC - utcTime := unixTime.UTC() - // time.Time **copied** as-is in the target timezone, e.g. 15th of June 2020, 13:30 in target tz - timeZone := time.FixedZone("Offset", int(offset)) - return time.Date( - utcTime.Year(), - utcTime.Month(), - utcTime.Day(), - utcTime.Hour(), - utcTime.Minute(), - utcTime.Second(), - utcTime.Nanosecond(), - timeZone, - ) -} - -func (h *hydrator) utcDateTimeOffset(n uint32) any { - h.unp.Next() - seconds := h.unp.Int() - h.unp.Next() - nanos := h.unp.Int() - h.unp.Next() - offset := h.unp.Int() - timeZone := time.FixedZone("Offset", int(offset)) - return time.Unix(seconds, nanos).In(timeZone) -} - -func (h *hydrator) dateTimeNamedZone(n uint32) any { - h.unp.Next() - seconds := h.unp.Int() - h.unp.Next() - nanos := h.unp.Int() - h.unp.Next() - zone := h.unp.String() - // time.Time in local timezone, e.g. 15th of June 2020, 15:30 in Paris (UTC+2h) - unixTime := time.Unix(seconds, nanos) - // time.Time computed in UTC timezone, e.g. 15th of June 2020, 13:30 in UTC - utcTime := unixTime.UTC() - // time.Time **copied** as-is in the target timezone, e.g. 15th of June 2020, 13:30 in target tz - l, err := time.LoadLocation(zone) - if err != nil { - return &dbtype.InvalidValue{ - Message: "dateTimeNamedZone", - Err: err, - } - } - return time.Date( - utcTime.Year(), - utcTime.Month(), - utcTime.Day(), - utcTime.Hour(), - utcTime.Minute(), - utcTime.Second(), - utcTime.Nanosecond(), - l, - ) -} - -func (h *hydrator) utcDateTimeNamedZone(n uint32) any { - h.unp.Next() - secs := h.unp.Int() - h.unp.Next() - nans := h.unp.Int() - h.unp.Next() - zone := h.unp.String() - timeZone, err := time.LoadLocation(zone) - if err != nil { - return &dbtype.InvalidValue{ - Message: "utcDateTimeNamedZone", - Err: err, - } - } - return time.Unix(secs, nans).In(timeZone) -} - -func (h *hydrator) localDateTime(n uint32) any { - h.unp.Next() - secs := h.unp.Int() - h.unp.Next() - nans := h.unp.Int() - t := time.Unix(secs, nans).UTC() - t = time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.Local) - return dbtype.LocalDateTime(t) -} - -func (h *hydrator) date(n uint32) any { - h.unp.Next() - days := h.unp.Int() - secs := days * 86400 - return dbtype.Date(time.Unix(secs, 0).UTC()) -} - -func (h *hydrator) time(n uint32) any { - h.unp.Next() - nans := h.unp.Int() - h.unp.Next() - offs := h.unp.Int() - secs := nans / int64(time.Second) - nans -= secs * int64(time.Second) - l := time.FixedZone("Offset", int(offs)) - t := time.Date(0, 0, 0, 0, 0, int(secs), int(nans), l) - return dbtype.Time(t) -} - -func (h *hydrator) localTime(n uint32) any { - h.unp.Next() - nans := h.unp.Int() - secs := nans / int64(time.Second) - nans -= secs * int64(time.Second) - t := time.Date(0, 0, 0, 0, 0, int(secs), int(nans), time.Local) - return dbtype.LocalTime(t) -} - -func (h *hydrator) duration(n uint32) any { - h.unp.Next() - mon := h.unp.Int() - h.unp.Next() - day := h.unp.Int() - h.unp.Next() - sec := h.unp.Int() - h.unp.Next() - nan := h.unp.Int() - return dbtype.Duration{Months: mon, Days: day, Seconds: sec, Nanos: int(nan)} -} - -func parseNotifications(notificationsx []any) []db.Notification { - var notifications []db.Notification - if notificationsx != nil { - notifications = make([]db.Notification, 0, len(notificationsx)) - for _, x := range notificationsx { - notificationx, ok := x.(map[string]any) - if ok { - notifications = append(notifications, parseNotification(notificationx)) - } - } - } - return notifications -} - -func parseGqlStatusObjects(statuses []any) []db.GqlStatusObject { - var gqlStatusObjects []db.GqlStatusObject - if statuses != nil { - gqlStatusObjects = make([]db.GqlStatusObject, 0, len(statuses)) - for _, x := range statuses { - status, ok := x.(map[string]any) - if ok { - gqlStatusObjects = append(gqlStatusObjects, parseGqlStatusObject(status)) - } - } - } - return gqlStatusObjects -} - -func parsePlanOpIdArgsChildren(planx map[string]any) (string, []string, map[string]any, []any) { - operator, _ := planx["operatorType"].(string) - identifiersx, _ := planx["identifiers"].([]any) - arguments, _ := planx["args"].(map[string]any) - - identifiers := make([]string, len(identifiersx)) - for i, id := range identifiersx { - identifiers[i], _ = id.(string) - } - - childrenx, _ := planx["children"].([]any) - - return operator, identifiers, arguments, childrenx -} - -func parsePlan(planx map[string]any) *db.Plan { - op, ids, args, childrenx := parsePlanOpIdArgsChildren(planx) - plan := &db.Plan{ - Operator: op, - Arguments: args, - Identifiers: ids, - } - - plan.Children = make([]db.Plan, 0, len(childrenx)) - for _, c := range childrenx { - childPlanx, _ := c.(map[string]any) - if len(childPlanx) > 0 { - childPlan := parsePlan(childPlanx) - if childPlan != nil { - plan.Children = append(plan.Children, *childPlan) - } - } - } - - return plan -} - -func parseProfile(profilex map[string]any) *db.ProfiledPlan { - op, ids, args, childrenx := parsePlanOpIdArgsChildren(profilex) - plan := &db.ProfiledPlan{ - Operator: op, - Arguments: args, - Identifiers: ids, - } - - plan.DbHits, _ = profilex["dbHits"].(int64) - plan.Records, _ = profilex["rows"].(int64) - - plan.Children = make([]db.ProfiledPlan, 0, len(childrenx)) - for _, c := range childrenx { - childPlanx, _ := c.(map[string]any) - if len(childPlanx) > 0 { - childPlan := parseProfile(childPlanx) - if childPlan != nil { - if pageCacheMisses, ok := childPlanx["pageCacheMisses"]; ok { - childPlan.PageCacheMisses = pageCacheMisses.(int64) - } - if pageCacheHits, ok := childPlanx["pageCacheHits"]; ok { - childPlan.PageCacheHits = pageCacheHits.(int64) - } - if pageCacheHitRatio, ok := childPlanx["pageCacheHitRatio"]; ok { - childPlan.PageCacheHitRatio = pageCacheHitRatio.(float64) - } - if planTime, ok := childPlanx["time"]; ok { - childPlan.Time = planTime.(int64) - } - plan.Children = append(plan.Children, *childPlan) - } - } - } - - return plan -} - -func parseInputPosition(m map[string]any) *db.InputPosition { - if m == nil { - return nil - } - pos := &db.InputPosition{} - if i, ok := m["column"].(int64); ok { - pos.Column = int(i) - } - if i, ok := m["line"].(int64); ok { - pos.Line = int(i) - } - if i, ok := m["offset"].(int64); ok { - pos.Offset = int(i) - } - return pos -} - -func parseNotification(m map[string]any) db.Notification { - n := db.Notification{} - n.Code, _ = m["code"].(string) - if description, ok := m["description"].(string); ok { - n.Description = description - } - n.Severity, _ = m["severity"].(string) - n.Category, _ = m["category"].(string) - n.Title, _ = m["title"].(string) - if pos, ok := m["position"].(map[string]any); ok { - n.Position = parseInputPosition(pos) - } - return n -} - -func parseGqlStatusObject(m map[string]any) db.GqlStatusObject { - g := db.GqlStatusObject{} - - if status, ok := m["gql_status"].(string); ok { - g.GqlStatus = status - } - - if statusDescription, ok := m["status_description"].(string); ok { - g.StatusDescription = statusDescription - } - - // Backward compatibility support for older Notification API. - if code, ok := m["neo4j_code"].(string); ok { - //lint:ignore SA1019 Code is supported at least until 6.0 - g.Code = code - g.IsNotification = true - } - - // Backward compatibility support for older Notification API. - if title, ok := m["title"].(string); ok { - //lint:ignore SA1019 Title is supported at least until 6.0 - g.Title = title - } - - // Backward compatibility support for older Notification API. - if description, ok := m["description"].(string); ok { - //lint:ignore SA1019 Description is supported at least until 6.0 - g.Description = description - } - - // Initialize the default diagnostic record - diagnosticRecord := gql.NewDefaultDiagnosticRecord() - - // Merge the diagnostic record from the map m - if dr, ok := m["diagnostic_record"].(map[string]any); ok { - for key, value := range dr { - diagnosticRecord[key] = value - } - if pos, ok := dr["_position"].(map[string]any); ok { - g.Position = parseInputPosition(pos) - } - if classification, ok := dr["_classification"].(string); ok { - g.Classification = classification - } - if severity, ok := dr["_severity"].(string); ok { - g.Severity = severity - } - } - - g.DiagnosticRecord = diagnosticRecord - return g -} - -func (h *hydrator) unknownStructError(t byte) any { - h.setErr(&db.ProtocolError{ - Err: fmt.Sprintf("Received unknown struct tag: %d", t), - }) - return nil -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/incoming.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/incoming.go deleted file mode 100644 index 76486bd..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/incoming.go +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "io" - "time" -) - -type incoming struct { - buf []byte // Reused buffer - hyd hydrator - connReadTimeout time.Duration -} - -func (i *incoming) next(ctx context.Context, reader io.Reader) (any, error) { - // Get next message from transport layer - var err error - var msg []byte - i.buf, msg, err = dechunkMessage(ctx, reader, i.buf, i.connReadTimeout) - if err != nil { - return nil, err - } - return i.hyd.hydrate(msg) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/message_queue.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/message_queue.go deleted file mode 100644 index dedcc68..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/message_queue.go +++ /dev/null @@ -1,235 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "container/list" - "context" - "errors" - "fmt" - "io" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type messageQueue struct { - in *incoming - out *outgoing - handlers list.List // List[responseHandler] - targetConnection io.ReadWriteCloser - err error - - onNextMessage func() - onIoErr func(context.Context, error) -} - -func newMessageQueue( - target io.ReadWriteCloser, - in *incoming, out *outgoing, - onNext func(), - onIoErr func(context.Context, error), -) messageQueue { - return messageQueue{ - in: in, - out: out, - handlers: list.List{}, - targetConnection: target, - onNextMessage: onNext, - onIoErr: onIoErr, - } -} - -func (q *messageQueue) appendHello(hello map[string]any, helloHandler responseHandler) { - q.out.appendHello(hello) - q.enqueueCallback(helloHandler) -} - -func (q *messageQueue) appendLogoff(logoffHandler responseHandler) { - q.out.appendLogoff() - q.enqueueCallback(logoffHandler) -} -func (q *messageQueue) appendLogon(token map[string]any, logonHandler responseHandler) { - q.out.appendLogon(token) - q.enqueueCallback(logonHandler) -} - -func (q *messageQueue) appendRoute(routingContext map[string]string, bookmarks []string, extras map[string]any, handler responseHandler) { - q.out.appendRoute(routingContext, bookmarks, extras) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendRouteV43(routingContext map[string]string, bookmarks []string, database string, handler responseHandler) { - q.out.appendRouteToV43(routingContext, bookmarks, database) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendBegin(meta map[string]any, handler responseHandler) { - q.out.appendBegin(meta) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendRun(cypher string, params, meta map[string]any, runHandler responseHandler) { - q.out.appendRun(cypher, params, meta) - q.enqueueCallback(runHandler) -} - -func (q *messageQueue) appendPullN(fetchSize int, handler responseHandler) { - q.out.appendPullN(fetchSize) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendPullNQid(fetchSize int, qid int64, handler responseHandler) { - q.out.appendPullNQid(fetchSize, qid) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendCommit(handler responseHandler) { - q.out.appendCommit() - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendRollback(handler responseHandler) { - q.out.appendRollback() - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendDiscardNQid(fetchSize int, qid int64, handler responseHandler) { - q.out.appendDiscardNQid(fetchSize, qid) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendDiscardN(fetchSize int, handler responseHandler) { - q.out.appendDiscardN(fetchSize) - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendReset(handler responseHandler) { - q.out.appendReset() - q.enqueueCallback(handler) -} - -func (q *messageQueue) appendGoodbye() { - q.out.appendGoodbye() - // no response expected here -} - -func (q *messageQueue) appendTelemetry(api int, handler responseHandler) { - q.out.appendTelemetry(api) - q.enqueueCallback(handler) -} - -func (q *messageQueue) send(ctx context.Context) { - q.out.send(ctx, q.targetConnection) -} - -func (q *messageQueue) receiveAll(ctx context.Context) error { - for { - if q.handlers.Len() == 0 { - return nil - } - if err := q.receive(ctx); err != nil { - return err - } - } -} - -func (q *messageQueue) receive(ctx context.Context) error { - res := q.receiveMsg(ctx) - if q.err != nil { - return q.err - } - - if q.handlers.Len() == 0 { - return errors.New("no more response callback to apply") - } - handler := q.pop() - switch message := res.(type) { - case *db.Record: - onRecord := handler.onRecord - if onRecord == nil { - return errors.New("protocol violation: the server sent an unexpected RECORD response") - } - onRecord(message) - case *success: - onSuccess := handler.onSuccess - if onSuccess == nil { - return errors.New("protocol violation: the server sent an unexpected SUCCESS response") - } - onSuccess(message) - case *db.Neo4jError: - onFailure := handler.onFailure - if onFailure == nil { - return errors.New("protocol violation: the server sent an unexpected FAILURE response") - } - onFailure(ctx, message) - return message - case *ignored: - onIgnored := handler.onIgnored - if onIgnored == nil { - return errors.New("protocol violation: the server sent an unexpected IGNORED response") - } - onIgnored(message) - default: - panic(fmt.Errorf("did not expect message %v", res)) - } - return nil -} - -func (q *messageQueue) pushFront(handler responseHandler) { - q.handlers.PushFront(handler) -} - -func (q *messageQueue) pop() responseHandler { - return q.handlers.Remove(q.handlers.Front()).(responseHandler) -} - -func (q *messageQueue) receiveMsg(ctx context.Context) any { - // Potentially dangerous to receive when an error has occurred, could hang. - // Important, a lot of code has been simplified relying on this check. - if q.err != nil { - return nil - } - - msg, err := q.in.next(ctx, q.targetConnection) - q.err = err - if err != nil { - q.onIoErr(ctx, err) - } else { - q.onNextMessage() - } - return msg -} - -func (q *messageQueue) enqueueCallback(handler responseHandler) { - q.handlers.PushBack(handler) -} - -func (q *messageQueue) setLogId(logId string) { - q.in.hyd.logId = logId - q.out.logId = logId -} - -func (q *messageQueue) setBoltLogger(logger log.BoltLogger) { - q.in.hyd.boltLogger = logger - q.out.boltLogger = logger -} - -func (q *messageQueue) isEmpty() bool { - return q.handlers.Len() == 0 -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/messages.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/messages.go deleted file mode 100644 index 6c37a8b..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/messages.go +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -// Message struct tags -// Shared between bolt versions -const ( - msgReset byte = 0x0f - msgRun byte = 0x10 - msgDiscardAll byte = 0x2f - msgDiscardN = msgDiscardAll // Different name >= 4.0 - msgPullAll byte = 0x3f - msgPullN = msgPullAll // Different name >= 4.0 - msgRecord byte = 0x71 - msgSuccess byte = 0x70 - msgIgnored byte = 0x7e - msgFailure byte = 0x7f - msgHello byte = 0x01 - msgLogon byte = 0x6A - msgLogoff byte = 0x6B - msgGoodbye byte = 0x02 - msgBegin byte = 0x11 - msgCommit byte = 0x12 - msgRollback byte = 0x13 - msgRoute byte = 0x66 // > 4.2 - msgTelemetry byte = 0x54 -) diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/notifications.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/notifications.go deleted file mode 100644 index 4c5878b..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/notifications.go +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" -) - -func checkNotificationFiltering( - notificationConfig idb.NotificationConfig, - bolt idb.Connection, -) error { - if notificationConfig.MinSev == notifications.DefaultLevel && - !notificationConfig.DisCats.DisablesNone() && len(notificationConfig.DisCats.DisabledCategories()) == 0 && - !notificationConfig.DisClas.DisablesNone() && len(notificationConfig.DisClas.DisabledClassifications()) == 0 { - return nil - } - version := bolt.Version() - if version.Major < 5 || version.Major == 5 && version.Minor < 2 { - return &db.FeatureNotSupportedError{ - Server: bolt.ServerName(), - Feature: "notification filtering", - Reason: "requires least server v5.7", - } - } - return nil -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/outgoing.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/outgoing.go deleted file mode 100644 index a6be197..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/outgoing.go +++ /dev/null @@ -1,565 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" - "io" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream" -) - -type outgoing struct { - chunker chunker - packer packstream.Packer - onPackErr func(error) - onIoErr func(context.Context, error) - boltLogger log.BoltLogger - logId string - useUtc bool -} - -func (o *outgoing) begin() { - o.chunker.beginMessage() - o.packer.Begin(o.chunker.buf) -} - -func (o *outgoing) end() { - buf, err := o.packer.End() - o.chunker.buf = buf - o.chunker.endMessage() - if err != nil { - o.onPackErr(err) - } -} - -func (o *outgoing) appendHello(hello map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "HELLO %s", loggableDictionary(hello)) - } - o.begin() - o.packer.StructHeader(msgHello, 1) - o.packMap(hello) - o.end() -} - -func (o *outgoing) appendLogoff() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "LOGOFF") - } - o.begin() - o.packer.StructHeader(msgLogoff, 0) - o.end() -} - -func (o *outgoing) appendLogon(logon map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "LOGON %s", loggableDictionary(logon)) - } - o.begin() - o.packer.StructHeader(msgLogon, 1) - o.packMap(logon) - o.end() -} - -func (o *outgoing) appendBegin(meta map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "BEGIN %s", loggableDictionary(meta)) - } - o.begin() - o.packer.StructHeader(msgBegin, 1) - o.packMap(meta) - o.end() -} - -func (o *outgoing) appendCommit() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "COMMIT") - } - o.begin() - o.packer.StructHeader(msgCommit, 0) - o.end() -} - -func (o *outgoing) appendRollback() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "ROLLBACK") - } - o.begin() - o.packer.StructHeader(msgRollback, 0) - o.end() -} - -func (o *outgoing) appendRun(cypher string, params, meta map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "RUN %q %s %s", cypher, loggableDictionary(params), loggableDictionary(meta)) - } - o.begin() - o.packer.StructHeader(msgRun, 3) - o.packer.String(cypher) - o.packMap(params) - o.packMap(meta) - o.end() -} - -func (o *outgoing) appendPullN(n int) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "PULL %s", loggableDictionary{"n": n}) - } - o.begin() - o.packer.StructHeader(msgPullN, 1) - o.packer.MapHeader(1) - o.packer.String("n") - o.packer.Int(n) - o.end() -} - -func (o *outgoing) appendPullNQid(n int, qid int64) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "PULL %s", loggableDictionary{"n": n, "qid": qid}) - } - o.begin() - o.packer.StructHeader(msgPullN, 1) - o.packer.MapHeader(2) - o.packer.String("n") - o.packer.Int(n) - o.packer.String("qid") - o.packer.Int64(qid) - o.end() -} - -func (o *outgoing) appendDiscardN(n int) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "DISCARD %s", loggableDictionary{"n": n}) - } - o.begin() - o.packer.StructHeader(msgDiscardN, 1) - o.packer.MapHeader(1) - o.packer.String("n") - o.packer.Int(n) - o.end() -} - -func (o *outgoing) appendDiscardNQid(n int, qid int64) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "DISCARD %s", loggableDictionary{"n": n, "qid": qid}) - } - o.begin() - o.packer.StructHeader(msgDiscardN, 1) - o.packer.MapHeader(2) - o.packer.String("n") - o.packer.Int(n) - o.packer.String("qid") - o.packer.Int64(qid) - o.end() -} - -func (o *outgoing) appendPullAll() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "PULL ALL") - } - o.begin() - o.packer.StructHeader(msgPullAll, 0) - o.end() -} - -// Only valid for V4.3 -func (o *outgoing) appendRouteToV43(context map[string]string, bookmarks []string, database string) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "ROUTE %s %s %q", loggableStringDictionary(context), loggableStringList(bookmarks), database) - } - o.begin() - o.packer.StructHeader(msgRoute, 3) - o.packer.MapHeader(len(context)) - for k, v := range context { - o.packer.String(k) - o.packer.String(v) - } - o.packer.ArrayHeader(len(bookmarks)) - for _, bookmark := range bookmarks { - o.packer.String(bookmark) - } - if database == idb.DefaultDatabase { - o.packer.Nil() - } else { - o.packer.String(database) - } - o.end() -} - -func (o *outgoing) appendRoute(context map[string]string, bookmarks []string, what map[string]any) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "ROUTE %s %s %s", loggableStringDictionary(context), loggableStringList(bookmarks), loggableDictionary(what)) - } - o.begin() - o.packer.StructHeader(msgRoute, 3) - o.packer.MapHeader(len(context)) - for k, v := range context { - o.packer.String(k) - o.packer.String(v) - } - o.packer.ArrayHeader(len(bookmarks)) - for _, bookmark := range bookmarks { - o.packer.String(bookmark) - } - o.packMap(what) - o.end() -} - -func (o *outgoing) appendReset() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "RESET") - } - o.begin() - o.packer.StructHeader(msgReset, 0) - o.end() -} - -func (o *outgoing) appendGoodbye() { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "GOODBYE") - } - o.begin() - o.packer.StructHeader(msgGoodbye, 0) - o.end() -} - -func (o *outgoing) appendTelemetry(api int) { - if o.boltLogger != nil { - o.boltLogger.LogClientMessage(o.logId, "TELEMETRY %d", api) - } - o.begin() - o.packer.StructHeader(msgTelemetry, 1) - o.packer.Int(api) - o.end() -} - -// For tests -func (o *outgoing) appendX(tag byte, fields ...any) { - o.begin() - o.packer.StructHeader(tag, len(fields)) - for _, f := range fields { - o.packX(f) - } - o.end() -} - -func (o *outgoing) send(ctx context.Context, wr io.Writer) { - err := o.chunker.send(ctx, wr) - if err != nil { - o.onIoErr(ctx, err) - } -} - -func (o *outgoing) packMap(m map[string]any) { - o.packer.MapHeader(len(m)) - for k, v := range m { - o.packer.String(k) - o.packX(v) - } -} - -func (o *outgoing) packStruct(x any) { - switch v := x.(type) { - case *dbtype.Point2D: - o.packer.StructHeader('X', 3) - o.packer.Uint32(v.SpatialRefId) - o.packer.Float64(v.X) - o.packer.Float64(v.Y) - case dbtype.Point2D: - o.packer.StructHeader('X', 3) - o.packer.Uint32(v.SpatialRefId) - o.packer.Float64(v.X) - o.packer.Float64(v.Y) - case *dbtype.Point3D: - o.packer.StructHeader('Y', 4) - o.packer.Uint32(v.SpatialRefId) - o.packer.Float64(v.X) - o.packer.Float64(v.Y) - o.packer.Float64(v.Z) - case dbtype.Point3D: - o.packer.StructHeader('Y', 4) - o.packer.Uint32(v.SpatialRefId) - o.packer.Float64(v.X) - o.packer.Float64(v.Y) - o.packer.Float64(v.Z) - case time.Time: - if o.useUtc { - if zone, _ := v.Zone(); zone == "Offset" { - o.packUtcDateTimeWithTzOffset(v) - } else { - o.packUtcDateTimeWithTzName(v) - } - break - } - if zone, _ := v.Zone(); zone == "Offset" { - o.packLegacyDateTimeWithTzOffset(v) - } else { - o.packLegacyDateTimeWithTzName(v) - } - case dbtype.LocalDateTime: - t := time.Time(v) - _, offset := t.Zone() - secs := t.Unix() + int64(offset) - o.packer.StructHeader('d', 2) - o.packer.Int64(secs) - o.packer.Int(t.Nanosecond()) - case dbtype.Date: - t := time.Time(v) - secs := t.Unix() - _, offset := t.Zone() - secs += int64(offset) - days := secs / (60 * 60 * 24) - o.packer.StructHeader('D', 1) - o.packer.Int64(days) - case dbtype.Time: - t := time.Time(v) - _, tzOffsetSecs := t.Zone() - d := t.Sub( - time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())) - o.packer.StructHeader('T', 2) - o.packer.Int64(d.Nanoseconds()) - o.packer.Int(tzOffsetSecs) - case dbtype.LocalTime: - t := time.Time(v) - nanos := int64(time.Hour)*int64(t.Hour()) + - int64(time.Minute)*int64(t.Minute()) + - int64(time.Second)*int64(t.Second()) + - int64(t.Nanosecond()) - o.packer.StructHeader('t', 1) - o.packer.Int64(nanos) - case dbtype.Duration: - o.packer.StructHeader('E', 4) - o.packer.Int64(v.Months) - o.packer.Int64(v.Days) - o.packer.Int64(v.Seconds) - o.packer.Int(v.Nanos) - default: - o.onPackErr(&db.UnsupportedTypeError{Type: reflect.TypeOf(x)}) - } -} - -func (o *outgoing) packX(x any) { - if x == nil { - o.packer.Nil() - return - } - - v := reflect.ValueOf(x) - switch v.Kind() { - case reflect.Bool: - o.packer.Bool(v.Bool()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - o.packer.Int64(v.Int()) - case reflect.Uint8, reflect.Uint16, reflect.Uint32: - o.packer.Uint32(uint32(v.Uint())) - case reflect.Uint64, reflect.Uint: - o.packer.Uint64(v.Uint()) - case reflect.Float32, reflect.Float64: - o.packer.Float64(v.Float()) - case reflect.String: - o.packer.String(v.String()) - case reflect.Ptr: - if v.IsNil() { - o.packer.Nil() - return - } - // Inspect what the pointer points to - i := reflect.Indirect(v) - switch i.Kind() { - case reflect.Struct: - o.packStruct(x) - default: - o.packV(i) - } - case reflect.Struct: - o.packStruct(x) - case reflect.Slice: - // Optimizations - switch s := x.(type) { - case []byte: - o.packer.Bytes(s) // Not just optimization - case []int: - o.packer.Ints(s) - case []int64: - o.packer.Int64s(s) - case []string: - o.packer.Strings(s) - case []float64: - o.packer.Float64s(s) - case []any: - o.packer.ArrayHeader(len(s)) - for _, e := range s { - o.packX(e) - } - default: - num := v.Len() - o.packer.ArrayHeader(num) - for i := 0; i < num; i++ { - o.packV(v.Index(i)) - } - } - case reflect.Map: - // Optimizations - switch m := x.(type) { - case map[string][]byte: - o.packer.BytesMap(m) - case map[string]int: - o.packer.IntMap(m) - case map[string]int64: - o.packer.Int64Map(m) - case map[string]string: - o.packer.StringMap(m) - case map[string]float64: - o.packer.Float64Map(m) - case map[string]any: - o.packMap(m) - default: - t := reflect.TypeOf(x) - if t.Key().Kind() != reflect.String { - o.onPackErr(&db.UnsupportedTypeError{Type: reflect.TypeOf(x)}) - return - } - l := v.Len() - o.packer.MapHeader(l) - if l == 0 { - return - } - key := reflect.New(t.Key()).Elem() - value := reflect.New(t.Elem()).Elem() - iter := v.MapRange() - for iter.Next() { - key.SetIterKey(iter) - value.SetIterValue(iter) - o.packer.String(key.String()) - o.packV(value) - } - } - default: - o.onPackErr(&db.UnsupportedTypeError{Type: reflect.TypeOf(x)}) - } -} - -func typeForPrimitive[T any]() reflect.Type { - var v T - return reflect.TypeOf(v) -} - -var intT = typeForPrimitive[int]() -var int64T = typeForPrimitive[int64]() -var stringT = typeForPrimitive[string]() -var float64T = typeForPrimitive[float64]() -var anyT = reflect.TypeOf((*any)(nil)).Elem() - -func (o *outgoing) packV(v reflect.Value) { - switch v.Kind() { - case reflect.Bool: - o.packer.Bool(v.Bool()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - o.packer.Int64(v.Int()) - case reflect.Uint8, reflect.Uint16, reflect.Uint32: - o.packer.Uint32(uint32(v.Uint())) - case reflect.Uint64, reflect.Uint: - o.packer.Uint64(v.Uint()) - case reflect.Float32, reflect.Float64: - o.packer.Float64(v.Float()) - case reflect.String: - o.packer.String(v.String()) - case reflect.Ptr: - if v.IsNil() { - o.packer.Nil() - return - } - // Inspect what the pointer points to - i := reflect.Indirect(v) - switch i.Kind() { - case reflect.Struct: - o.packStruct(v.Interface()) - default: - o.packV(i) - } - case reflect.Struct: - o.packStruct(v.Interface()) - case reflect.Slice: - elemType := v.Type().Elem() - if elemType.Kind() == reflect.Uint8 { - o.packer.Bytes(v.Bytes()) - return - } - num := v.Len() - if num > 5 { - switch elemType { - case intT, int64T, stringT, float64T, anyT: - // Accept the cost of an allocation (v.Interface()) - // because this slice type is optimized in packX. - // The exact length from which the optimization amortizes - // the allocation cost depends on many factors. - // 5 seemed a close to the cross-over point on my system - // running Go 1.23.0 linux/amd64. - // cf. https://github.com/neo4j/neo4j-go-driver/pull/617 - o.packX(v.Interface()) - return - } - } - o.packer.ArrayHeader(num) - for i := 0; i < num; i++ { - o.packV(v.Index(i)) - } - default: - o.packX(v.Interface()) - } -} - -// deprecated: remove once 4.x Neo4j all reach EOL -func (o *outgoing) packLegacyDateTimeWithTzOffset(dateTime time.Time) { - _, offset := dateTime.Zone() - o.packer.StructHeader('F', 3) - o.packer.Int64(dateTime.Unix() + int64(offset)) - o.packer.Int(dateTime.Nanosecond()) - o.packer.Int(offset) -} - -// deprecated: remove once 4.x Neo4j all reach EOL -func (o *outgoing) packLegacyDateTimeWithTzName(dateTime time.Time) { - _, offset := dateTime.Zone() - o.packer.StructHeader('f', 3) - o.packer.Int64(dateTime.Unix() + int64(offset)) - o.packer.Int(dateTime.Nanosecond()) - o.packer.String(dateTime.Location().String()) -} - -func (o *outgoing) packUtcDateTimeWithTzOffset(dateTime time.Time) { - _, offset := dateTime.Zone() - o.packer.StructHeader('I', 3) - o.packer.Int64(dateTime.Unix()) - o.packer.Int(dateTime.Nanosecond()) - o.packer.Int(offset) -} - -func (o *outgoing) packUtcDateTimeWithTzName(dateTime time.Time) { - o.packer.StructHeader('i', 3) - o.packer.Int64(dateTime.Unix()) - o.packer.Int(dateTime.Nanosecond()) - o.packer.String(dateTime.Location().String()) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/parseroutingtable.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/parseroutingtable.go deleted file mode 100644 index 25e2d10..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/parseroutingtable.go +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" -) - -// Parses a record assumed to contain a routing table into common DB API routing table struct -// Returns nil if error while parsing -func parseRoutingTableRecord(rec *db.Record) *idb.RoutingTable { - ttl, ok := rec.Values[0].(int64) - if !ok { - return nil - } - listOfX, ok := rec.Values[1].([]any) - if !ok { - return nil - } - - table := &idb.RoutingTable{ - TimeToLive: int(ttl), - } - - for _, x := range listOfX { - // Each x should be a map consisting of addresses and the role - m, ok := x.(map[string]any) - if !ok { - return nil - } - addressesX, ok := m["addresses"].([]any) - if !ok { - return nil - } - addresses := make([]string, len(addressesX)) - for i, addrX := range addressesX { - addr, ok := addrX.(string) - if !ok { - return nil - } - addresses[i] = addr - } - role, ok := m["role"].(string) - if !ok { - return nil - } - switch role { - case "READ": - table.Readers = addresses - case "WRITE": - table.Writers = addresses - case "ROUTE": - table.Routers = addresses - } - } - return table -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/path.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/path.go deleted file mode 100644 index 6c24dcd..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/path.go +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype" -) - -// Intermediate representation of part of path -type relNode struct { - // Deprecated: id is deprecated and will be removed in 6.0. Use elementId instead. - id int64 - elementId string - name string - props map[string]any -} - -// buildPath builds a path from Bolt representation -func buildPath(nodes []dbtype.Node, relNodes []*relNode, indexes []int) dbtype.Path { - num := len(indexes) / 2 - if num == 0 { - var path dbtype.Path - if len(nodes) > 0 { - // there could be a single, disconnected node - path.Nodes = nodes - } - return path - } - rels := make([]dbtype.Relationship, 0, num) - - i := 0 - n1 := nodes[0] - for num > 0 { - relni := indexes[i] - i++ - n2i := indexes[i] - i++ - num-- - var reln *relNode - var n1start bool - if relni < 0 { - reln = relNodes[(relni*-1)-1] - } else { - reln = relNodes[relni-1] - n1start = true - } - n2 := nodes[n2i] - - rel := dbtype.Relationship{ - Id: reln.id, - ElementId: reln.elementId, - Type: reln.name, - Props: reln.props, - } - if n1start { - //lint:ignore SA1019 Id, StartId and EndId are supported at least until 6.0 - rel.StartId, rel.EndId = n1.Id, n2.Id - rel.StartElementId, rel.EndElementId = n1.ElementId, n2.ElementId - } else { - //lint:ignore SA1019 Id, StartId and EndId are supported at least until 6.0 - rel.StartId, rel.EndId = n2.Id, n1.Id - rel.StartElementId, rel.EndElementId = n2.ElementId, n1.ElementId - } - rels = append(rels, rel) - n1 = n2 - } - - return dbtype.Path{Nodes: nodes, Relationships: rels} -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/reauth.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/reauth.go deleted file mode 100644 index 2cefdb9..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/reauth.go +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" -) - -func checkReAuth(auth *db.ReAuthToken, connection db.Connection) error { - fromSession := auth.FromSession - version := connection.Version() - if !fromSession { - return nil - } - if version.Major < 5 || (version.Major == 5 && version.Minor == 0) { - serverName := connection.ServerName() - return &idb.FeatureNotSupportedError{ - Server: serverName, - Feature: "session auth", - Reason: "requires least server v5.5", - } - } - return nil -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/response_handler.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/response_handler.go deleted file mode 100644 index d8e7ee5..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/response_handler.go +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" -) - -type responseHandler struct { - onSuccess func(*success) - onRecord func(*db.Record) - onFailure func(context.Context, *db.Neo4jError) - onIgnored func(*ignored) -} - -func onSuccessNoOp(*success) {} -func onIgnoredNoOp(*ignored) {} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/stream.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/stream.go deleted file mode 100644 index 07c869e..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt/stream.go +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 bolt - -import ( - "container/list" - "errors" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" -) - -type stream struct { - attached bool - keys []string - fifo list.List - sum *db.Summary - err error - qid int64 - fetchSize int - key int64 - endOfBatch bool - discarding bool - tfirst int64 // Time that server started streaming - hadRecord bool -} - -// Acts on buffered data, first return value indicates if buffering -// is active or not. -func (s *stream) bufferedNext() (bool, *db.Record, *db.Summary, error) { - e := s.fifo.Front() - if e != nil { - s.fifo.Remove(e) - return true, e.Value.(*db.Record), nil, nil - } - if s.err != nil { - return true, nil, nil, s.err - } - if s.sum != nil { - return true, nil, s.sum, nil - } - - return false, nil, nil, nil -} - -func (s *stream) emptyRecords() { - if s.fifo.Len() == 0 { - return - } - s.fifo.Init() -} - -// Delayed error until fifo emptied -func (s *stream) Err() error { - if s.fifo.Len() > 0 { - return nil - } - return s.err -} - -func (s *stream) push(rec *db.Record) { - s.fifo.PushBack(rec) -} - -func (s *stream) ToSummary() db.StreamSummary { - return db.StreamSummary{ - HadRecord: s.hadRecord, - HadKey: len(s.keys) > 0, - } -} - -// Only need to keep track of current stream. Client keeps track of other -// open streams and a key in each stream is used to validate if it belongs to -// current bolt connection or not. -type openstreams struct { - curr *stream - num int - key int64 -} - -var ( - errInvalidStream = errors.New("invalid stream handle") -) - -// Adds a new open stream and sets it as current. -// There should NOT be a current stream . -func (o *openstreams) attach(s *stream) { - if o.curr != nil { - return - } - // Track number of open streams and set the stream as current - o.num++ - o.curr = s - s.key = o.key -} - -// Detaches the current stream from being current and -// removes it from set of open streams it is no longer open. -// The stream should be either in failed state or completed. -func (o *openstreams) detach(sum *db.Summary, err error) { - if o.curr == nil { - return - } - - o.curr.sum = sum - o.curr.err = err - o.remove(o.curr) -} - -// Streams can be paused when they have received a "has_more" response from server -// Pauses the current stream -func (o *openstreams) pause() { - o.curr = nil -} - -// When resuming a stream a new PULL message needs to be sent. -func (o *openstreams) resume(s *stream) { - if o.curr != nil { - return - } - o.curr = s -} - -// Removes the stream by disabling its key and removing it from the count of streams. -// If the stream is current the current is set to nil. -func (o *openstreams) remove(s *stream) { - o.num-- - s.key = 0 - if o.curr == s { - o.curr = nil - } -} - -func (o *openstreams) reset() { - o.num = 0 - o.curr = nil - o.key = time.Now().UnixNano() -} - -// Checks that the handle represents a stream but not necessarily a stream belonging -// to this set of open streams. -func (o openstreams) getUnsafe(h idb.StreamHandle) (*stream, error) { - stream, ok := h.(*stream) - if !ok || stream == nil { - return nil, errInvalidStream - } - return stream, nil -} - -func (o openstreams) isSafe(s *stream) error { - if s.key == o.key { - return nil - } - return errInvalidStream -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent/bolt_agent.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent/bolt_agent.go deleted file mode 100644 index e2d2a98..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent/bolt_agent.go +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 boltagent - -import ( - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata" - "runtime" -) - -var os = runtime.GOOS -var arch = runtime.GOARCH -var goVersion = runtime.Version() -var driverVersion = metadata.DriverVersion - -type BoltAgent struct { - product string - platform string - language string -} - -// New returns a BoltAgent containing immutable, preformatted driver information. -func New() *BoltAgent { - return &BoltAgent{ - product: fmt.Sprintf("neo4j-go/%s", driverVersion), - platform: fmt.Sprintf("%s; %s", os, arch), - language: fmt.Sprintf("Go/%s", goVersion), - } -} - -func (b *BoltAgent) Product() string { - return b.product -} - -func (b *BoltAgent) Platform() string { - return b.platform -} - -func (b *BoltAgent) Language() string { - return b.language -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/set.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/set.go deleted file mode 100644 index 2f04c29..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/set.go +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 collections - -type Set[T comparable] map[T]struct{} - -func NewSet[T comparable](values []T) Set[T] { - result := make(Set[T], len(values)) - for _, value := range values { - result[value] = struct{}{} - } - return result -} - -func (set Set[T]) Union(other Set[T]) { - set.AddAll(other.Values()) -} - -func (set Set[T]) AddAll(values []T) { - for _, value := range values { - set.Add(value) - } -} - -func (set Set[T]) Add(value T) { - set[value] = struct{}{} -} - -func (set Set[T]) RemoveAll(values []T) { - for _, value := range values { - set.Remove(value) - } -} - -func (set Set[T]) Remove(value T) { - delete(set, value) -} - -func (set Set[T]) Values() []T { - if len(set) == 0 { - return nil - } - result := make([]T, len(set)) - i := 0 - for value := range set { - result[i] = value - i++ - } - return result -} - -func (set Set[T]) Copy() Set[T] { - result := make(map[T]struct{}, len(set)) - for k, v := range set { - result[k] = v - } - return result -} - -func (set Set[T]) Contains(value T) bool { - _, ok := set[value] - return ok -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/slices.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/slices.go deleted file mode 100644 index a47b014..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections/slices.go +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 collections - -func SliceContains[T comparable](items []T, expectedItem T) bool { - for _, item := range items { - if item == expectedItem { - return true - } - } - return false -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector/connector.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector/connector.go deleted file mode 100644 index 110e6bc..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector/connector.go +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 connector is responsible for connecting to a database server. -package connector - -import ( - "context" - "crypto/tls" - "errors" - "io" - "net" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/config" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type Connector struct { - SkipEncryption bool - SkipVerify bool - Log log.Logger - LogId string - RoutingContext map[string]string - Network string - Config *config.Config - SupplyConnection func(context.Context, string) (net.Conn, error) - TestKitDnsResolver func(string) []string -} - -func (c *Connector) Connect( - ctx context.Context, - address string, - auth *db.ReAuthToken, - errorListener bolt.ConnectionErrorListener, - boltLogger log.BoltLogger, -) (connection db.Connection, err error) { - if c.SupplyConnection == nil { - c.SupplyConnection = c.createConnection - } - - conn, err := c.SupplyConnection(ctx, address) - if err != nil { - errorListener.OnDialError(ctx, address, err) - return nil, err - } - - defer func() { - if err != nil && connection == nil { - if err := conn.Close(); err != nil { - c.Log.Warnf(log.Driver, address, "could not close socket after failed connection %s", err) - } - } - }() - - notificationConfig := db.NotificationConfig{ - MinSev: c.Config.NotificationsMinSeverity, - DisCats: c.Config.NotificationsDisabledCategories, - DisClas: c.Config.NotificationsDisabledClassifications, - } - - // TLS not requested - if c.SkipEncryption { - connection, err := bolt.Connect( - ctx, - address, - conn, - auth, - c.Config.UserAgent, - c.RoutingContext, - errorListener, - c.Log, - boltLogger, - notificationConfig, - c.Config.ReadBufferSize, - ) - if err != nil { - return nil, err - } - return connection, nil - } - - // TLS requested, continue with handshake - serverName, _, err := net.SplitHostPort(address) - if err != nil { - errorListener.OnDialError(ctx, address, err) - return nil, err - } - tlsConfig := c.tlsConfig(serverName) - tlsConn := tls.Client(conn, tlsConfig) - err = tlsConn.HandshakeContext(ctx) - if err != nil { - if err == io.EOF { - // Give a bit nicer error message - err = errors.New("remote end closed the connection, check that TLS is enabled on the server") - } - err = &errorutil.TlsError{Inner: err} - errorListener.OnDialError(ctx, address, err) - return nil, err - } - connection, err = bolt.Connect( - ctx, - address, - tlsConn, - auth, - c.Config.UserAgent, - c.RoutingContext, - errorListener, - c.Log, - boltLogger, - notificationConfig, - c.Config.ReadBufferSize, - ) - if err != nil { - return nil, err - } - return -} - -func (c Connector) createConnection(ctx context.Context, address string) (net.Conn, error) { - dialer := net.Dialer{Timeout: c.Config.SocketConnectTimeout} - if !c.Config.SocketKeepalive { - dialer.KeepAlive = -1 * time.Second // Turns keep-alive off - } - - if c.TestKitDnsResolver == nil { - c.Log.Debugf(log.Driver, c.LogId, "dialing %s", address) - return dialer.DialContext(ctx, c.Network, address) - } - - addresses := c.TestKitDnsResolver(address) - - if len(addresses) == 0 { - return nil, errors.New("TestKit DNS resolver returned no address") - } - - var ( - err error - con net.Conn - ) - for _, address := range addresses { - con, err = dialer.DialContext(ctx, c.Network, address) - if err == nil { - c.Log.Debugf(log.Driver, c.LogId, "dialing %s", address) - return con, nil - } - } - return nil, err -} - -func (c Connector) tlsConfig(serverName string) *tls.Config { - var config *tls.Config - if c.Config.TlsConfig != nil { - // Use Clone to safely copy the config without copying the mutex. - config = c.Config.TlsConfig.Clone() - } else { - config = &tls.Config{ - // Use RootCAs from the connector's config. - //lint:ignore SA1019 RootCAs is supported until 6.0 - RootCAs: c.Config.RootCAs, - // It's safe to set MinVersion and other settings here since we're initializing a new config. - MinVersion: tls.VersionTLS12, - } - } - - // Ensure MinVersion is set to at least TLS 1.2 if no version is specified. - if config.MinVersion == 0 { - config.MinVersion = tls.VersionTLS12 - } - - // Update the config with the client certificate, if provided. - if c.Config.ClientCertificateProvider != nil && !c.SkipEncryption { - cert := c.Config.ClientCertificateProvider.GetCertificate() - if cert != nil { - // Append the obtained certificate to the Certificates slice. - config.Certificates = append(config.Certificates, *cert) - } - } - - // Configure server name and whether to skip certificate verification. - config.ServerName = serverName - config.InsecureSkipVerify = c.SkipVerify - - return config -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/connection.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/connection.go deleted file mode 100644 index 3288232..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/connection.go +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db defines generic database functionality. -package db - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - iauth "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" - "math" - "time" -) - -// Definitions of these should correspond to public API -type AccessMode int - -const ( - WriteMode AccessMode = 0 - ReadMode AccessMode = 1 -) - -type ( - TxHandle uint64 - StreamHandle any -) - -type Command struct { - Cypher string - Params map[string]any - FetchSize int -} - -type TxConfig struct { - Mode AccessMode - Bookmarks []string - Timeout time.Duration - ImpersonatedUser string - Meta map[string]any - NotificationConfig NotificationConfig -} - -type NotificationConfig struct { - MinSev notifications.NotificationMinimumSeverityLevel - DisCats notifications.NotificationDisabledCategories - DisClas notifications.NotificationDisabledClassifications -} - -func (n *NotificationConfig) ToMeta(meta map[string]any, version db.ProtocolVersion) { - if n.MinSev != notifications.DefaultLevel { - meta["notifications_minimum_severity"] = string(n.MinSev) - } - - disabledKey := "notifications_disabled_categories" - if version.Minor >= 5 { - disabledKey = "notifications_disabled_classifications" - } - if n.DisCats.DisablesNone() || n.DisClas.DisablesNone() { - meta[disabledKey] = make([]string, 0) - } else { - if len(n.DisCats.DisabledCategories()) > 0 { - meta[disabledKey] = n.DisCats.DisabledCategories() - } - if len(n.DisClas.DisabledClassifications()) > 0 { - meta[disabledKey] = n.DisClas.DisabledClassifications() - } - } -} - -const DefaultTxConfigTimeout = math.MinInt - -// Connection defines an abstract database server connection. -type Connection interface { - Connect( - ctx context.Context, - minor int, - auth *ReAuthToken, - userAgent string, - routingContext map[string]string, - notificationConfig NotificationConfig, - ) error - - TxBegin(ctx context.Context, txConfig TxConfig, syncMessages bool) (TxHandle, error) - TxRollback(ctx context.Context, tx TxHandle) error - TxCommit(ctx context.Context, tx TxHandle) error - Run(ctx context.Context, cmd Command, txConfig TxConfig) (StreamHandle, error) - RunTx(ctx context.Context, tx TxHandle, cmd Command) (StreamHandle, error) - // Keys for the specified stream. - Keys(streamHandle StreamHandle) ([]string, error) - // Next moves to next item in the stream. - // If error is nil, either Record or Summary has a value, if Record is nil there are no more records. - // If error is non nil, neither Record or Summary has a value. - Next(ctx context.Context, streamHandle StreamHandle) (*db.Record, *db.Summary, error) - // Consume discards all records on the stream and returns the summary otherwise it will return the error. - Consume(ctx context.Context, streamHandle StreamHandle) (*db.Summary, error) - // Buffer buffers all records on the stream, records, summary and error will be received through call to Next - // The Connection implementation should preserve/buffer streams automatically if needed when new - // streams are created and the server doesn't support multiple streams. Use Buffer to force - // buffering before calling Reset to get all records and the bookmark. - Buffer(ctx context.Context, streamHandle StreamHandle) error - // Bookmark returns the bookmark and optionally its database from last committed transaction or last finished auto-commit transaction. - // The returned database is relevant for queries executed with the USE clause, since the returned database may be different from the session's database. - // Note that if there is an ongoing auto-commit transaction (stream active) the bookmark - // from that is not included, use Buffer or Consume to end the stream with a bookmark. - // Empty string if no bookmark. - Bookmark() string - // ServerName returns the name of the remote server - ServerName() string - // ConnId returns the connection id as assigned by the server ("" if not available) - ConnId() string - // ServerVersion returns the server version on pattern Neo4j/1.2.3 - ServerVersion() string - // IsAlive returns true if the connection is fully functional. - // Implementation of this should be passive, no pinging or similar since it might be - // called rather frequently. - IsAlive() bool - // HasFailed returns true if the connection has received a recoverable error (``FAILURE``). - HasFailed() bool - // Birthdate returns the point in time when this connection was established. - Birthdate() time.Time - // IdleDate returns the point in time since which the connection is idle - IdleDate() time.Time - // Reset resets connection to same state as directly after a connection. - // Active streams will be discarded and the bookmark will be lost. - Reset(ctx context.Context) - // ForceReset behaves like Reset except it also resets connections in the - // ready state (while Reset does not) - ForceReset(ctx context.Context) - // Close closes the database connection as well as any underlying connection. - // The instance should not be used after being closed. - Close(ctx context.Context) - // GetRoutingTable gets the routing table for specified database name or the default database if - // database equals DefaultDatabase. If the underlying connection does not support - // multiple databases, DefaultDatabase should be used as database. - // If user impersonation is used (impersonatedUser != "") and default database is used - // the database name in the returned routing table will contain the actual name of the - // configured default database for the impersonated user. If no impersonation is used - // database name in routing table will be set to the name of the requested database. - GetRoutingTable(ctx context.Context, context map[string]string, bookmarks []string, database, impersonatedUser string) (*RoutingTable, error) - // SetBoltLogger sets Bolt message logger on already initialized connections - SetBoltLogger(boltLogger log.BoltLogger) - // ReAuth enqueues a `LOGOFF` and `LOGON` message if the passed credentials differ - // or `ReAuthToken.ForceReAuth` is `true`. - // If `ReAuthToken.ForceReAuth` is `true` the messages will be sent and their responses received. - // If `ReAuthToken.FromSession` is `false`, the credentials changed, and the protocol version does not support - // re-auth (bolt 5.1 and earlier) the connection will be closed. - // If it's `true` (under otherwise same conditions) a `FeatureNotSupportedError` will be returned. - ReAuth(context.Context, *ReAuthToken) error - // Version returns the protocol version of the connection - Version() db.ProtocolVersion - // ResetAuth clears any authentication token held by this connection - ResetAuth() - // GetCurrentAuth returns the current authentication manager and token that this connection is authenticated with - GetCurrentAuth() (auth.TokenManager, iauth.Token) - // Telemetry sends telemetry information about the API usage to the server. - Telemetry(api telemetry.API, onSuccess func()) - // SetPinHomeDatabaseCallback registers a callback to update the session's cached home database. - // The callback is triggered on successful BEGIN or RUN responses containing a database name. - SetPinHomeDatabaseCallback(callback func(ctx context.Context, database string)) - // IsSsrEnabled returns true if the connection supports Server-Side Routing. - IsSsrEnabled() bool -} - -type RoutingTable struct { - TimeToLive int - DatabaseName string - Routers []string - Readers []string - Writers []string -} - -// Marker for using the default database instance. -const DefaultDatabase = "" - -// DatabaseSelector allows to select a database if the database server connection supports selecting which database instance on the server -// to connect to. Prior to Neo4j 4 there was only one database per server. -type DatabaseSelector interface { - // SelectDatabase should be called immediately after Reset. Not allowed to call multiple times with different - // databases without a reset in-between. - SelectDatabase(database string) - Database() string -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/database_selection.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/database_selection.go deleted file mode 100644 index 976bc5f..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/database_selection.go +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -// DatabaseSelection encapsulates the database name and whether it is guessed. -type DatabaseSelection struct { - Name string - IsHomeDbGuess bool -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/reauth_token.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/reauth_token.go deleted file mode 100644 index c3260e0..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db/reauth_token.go +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 db - -import "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - -type ReAuthToken struct { - Manager auth.TokenManager - FromSession bool - ForceReAuth bool -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/bolt.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/bolt.go deleted file mode 100644 index c2852d3..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/bolt.go +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import ( - "context" - "fmt" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "strings" - "time" -) - -const InvalidTransactionError = "invalid transaction handle" - -type ConnectionReadTimeout struct { - UserContext context.Context - ReadTimeout time.Duration - Err error -} - -func (crt *ConnectionReadTimeout) Error() string { - userDeadline := "N/A" - if deadline, ok := crt.UserContext.Deadline(); ok { - userDeadline = deadline.String() - } - return fmt.Sprintf( - "Timeout while reading from connection [server-side timeout hint: %s, user-provided context deadline: %s]: %s", - crt.ReadTimeout.String(), - userDeadline, - crt.Err) -} - -type ConnectionWriteTimeout struct { - UserContext context.Context - Err error -} - -func (cwt *ConnectionWriteTimeout) Error() string { - userDeadline := "N/A" - if deadline, ok := cwt.UserContext.Deadline(); ok { - userDeadline = deadline.String() - } - return fmt.Sprintf("Timeout while writing to connection [user-provided context deadline: %s]: %s", userDeadline, cwt.Err) -} - -type ConnectionReadCanceled struct { - Err error -} - -func (crc *ConnectionReadCanceled) Error() string { - return fmt.Sprintf("Reading from connection has been canceled: %s", crc.Err) -} - -type ConnectionWriteCanceled struct { - Err error -} - -func (cwc *ConnectionWriteCanceled) Error() string { - return fmt.Sprintf("Writing to connection has been canceled: %s", cwc.Err) -} - -type timeout interface { - Timeout() bool -} - -func IsTimeoutError(err error) bool { - if err == context.DeadlineExceeded { - return true - } - timeoutErr, ok := err.(timeout) - return ok && timeoutErr.Timeout() -} - -func IsFatalDuringDiscovery(err error) bool { - if _, ok := err.(*idb.FeatureNotSupportedError); ok { - return true - } - if err, ok := err.(*idb.Neo4jError); ok { - if err.Code == "Neo.ClientError.Database.DatabaseNotFound" || - err.Code == "Neo.ClientError.Transaction.InvalidBookmark" || - err.Code == "Neo.ClientError.Transaction.InvalidBookmarkMixture" || - err.Code == "Neo.ClientError.Statement.TypeError" || - err.Code == "Neo.ClientError.Statement.ArgumentError" || - err.Code == "Neo.ClientError.Request.Invalid" { - return true - } - if strings.HasPrefix(err.Code, "Neo.ClientError.Security.") && - err.Code != "Neo.ClientError.Security.AuthorizationExpired" { - return true - } - } - if err == context.DeadlineExceeded || - err == context.Canceled { - return true - } - return false -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/errors.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/errors.go deleted file mode 100644 index 8ffc8f0..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/errors.go +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import ( - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql" - "io" - "net" -) - -const unknownNeo4jCode = "Neo.DatabaseError.General.UnknownError" -const unknownMessage = "An unknown error occurred" -const unknownGqlStatus = "50N42" -const unknownGqlStatusDescription = "error: general processing exception - unexpected error." - -func CombineAllErrors(errs ...error) error { - if len(errs) == 0 { - return nil - } - result := errs[0] - for _, err := range errs[1:] { - result = CombineErrors(result, err) - } - return result -} - -func CombineErrors(err1, err2 error) error { - if err2 == nil { - return err1 - } - if err1 == nil { - return err2 - } - return fmt.Errorf("error %v occurred after previous error %w", err2, err1) -} - -func WrapError(err error) error { - if err == nil { - return nil - } - if err == io.EOF { - return &ConnectivityError{Inner: err} - } - switch e := err.(type) { - case *db.UnsupportedTypeError: - // Usage of a type not supported by database network protocol or feature - // not supported by current version or edition. - return &UsageError{Message: err.Error()} - case *db.FeatureNotSupportedError: - return &UsageError{Message: fmt.Sprintf("feature not supported: %s", err.Error())} - case *PoolClosed: - return &UsageError{Message: err.Error()} - case *TlsError, net.Error: - return &ConnectivityError{Inner: err} - case *PoolTimeout, *PoolFull: - return &ConnectivityError{Inner: err} - case *ReadRoutingTableError: - return &ConnectivityError{Inner: err} - case *CommitFailedDeadError: - return &ConnectivityError{Inner: err} - case *ConnectionReadTimeout: - return &ConnectivityError{Inner: err} - case *ConnectionWriteTimeout: - return &ConnectivityError{Inner: err} - case *db.Neo4jError: - if e.Code == "Neo.ClientError.Security.TokenExpired" { - return &TokenExpiredError{Code: e.Code, Message: e.Msg, cause: e} - } - } - if err != nil && err.Error() == InvalidTransactionError { - return &UsageError{Message: InvalidTransactionError} - } - return err -} - -// UsageError represents errors caused by incorrect usage of the driver API. -// This does not include Cypher syntax (those errors will be Neo4jError). -type UsageError struct { - Message string -} - -func (e *UsageError) Error() string { - return e.Message -} - -// ConnectivityError represent errors caused by the driver not being able to connect to Neo4j services, -// or lost connections. -type ConnectivityError struct { - Inner error -} - -func (e *ConnectivityError) Error() string { - return fmt.Sprintf("ConnectivityError: %s", e.Inner.Error()) -} - -// TokenExpiredError represent errors caused by the driver not being able to connect to Neo4j services, -// or lost connections. -type TokenExpiredError struct { - Code string - Message string - cause *db.Neo4jError -} - -func (e *TokenExpiredError) Unwrap() error { - return e.cause -} - -func (e *TokenExpiredError) Error() string { - return fmt.Sprintf("TokenExpiredError: %s (%s)", e.Code, e.Message) -} - -func PolyfillGqlError(dberr *db.Neo4jError) { - if dberr.Code == "" { - dberr.Code = unknownNeo4jCode - } - if dberr.Msg == "" { - dberr.Msg = unknownMessage - } - if dberr.GqlStatus == "" { - dberr.GqlStatus = unknownGqlStatus - } - if dberr.GqlStatusDescription == "" { - dberr.GqlStatusDescription = fmt.Sprintf("%s %s", unknownGqlStatusDescription, dberr.Msg) - } - // Ensure diagnostic record exists or fill missing keys - defaultRecord := gql.NewDefaultDiagnosticRecord() - if dberr.GqlDiagnosticRecord == nil { - dberr.GqlDiagnosticRecord = defaultRecord - } else { - // Polyfill any missing keys from default record - for key, value := range defaultRecord { - if _, exists := dberr.GqlDiagnosticRecord[key]; !exists { - dberr.GqlDiagnosticRecord[key] = value - } - } - } - // Extract classification from diagnostic record - if classification, ok := dberr.GqlDiagnosticRecord["_classification"].(string); ok { - // Set the raw classification string - dberr.GqlRawClassification = classification - switch classification { - case string(db.ClientError): - dberr.GqlClassification = db.ClientError - case string(db.DatabaseError): - dberr.GqlClassification = db.DatabaseError - case string(db.TransientError): - dberr.GqlClassification = db.TransientError - default: - dberr.GqlClassification = db.UnknownError - } - } else { - dberr.GqlRawClassification = "" - dberr.GqlClassification = db.UnknownError - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/pool.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/pool.go deleted file mode 100644 index 9340a5d..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/pool.go +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import "fmt" - -type PoolTimeout struct { - Err error - Servers []string -} - -func (e *PoolTimeout) Error() string { - return fmt.Sprintf("Timeout while waiting for connection to any of [%s]: %s", e.Servers, e.Err) -} - -type PoolFull struct { - Servers []string -} - -func (e *PoolFull) Error() string { - return fmt.Sprintf("No idle connections on any of [%s]", e.Servers) -} - -type PoolClosed struct { -} - -func (e *PoolClosed) Error() string { - return "Pool closed" -} - -type PoolOutOfServers struct { -} - -func (e *PoolOutOfServers) Error() string { - return "Pool could not find any servers to connect to" -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/retry.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/retry.go deleted file mode 100644 index 2524d90..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/retry.go +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import "fmt" - -type CommitFailedDeadError struct { - Inner error -} - -func (e *CommitFailedDeadError) Error() string { - return fmt.Sprintf("Connection lost during commit: %s", e.Inner) -} - -// TransactionExecutionLimit error indicates that a retryable transaction has -// failed due to reaching a limit like a timeout or maximum number of attempts. -type TransactionExecutionLimit struct { - Cause string - Errors []error -} - -func (e *TransactionExecutionLimit) Error() string { - cause := e.Cause - var err error - l := len(e.Errors) - - if l > 0 { - err = e.Errors[l-1] - } - return fmt.Sprintf("TransactionExecutionLimit: %s after %d attempts, last error: %s", cause, len(e.Errors), err) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/router.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/router.go deleted file mode 100644 index 7e4ae08..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/router.go +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -import ( - "fmt" -) - -type ReadRoutingTableError struct { - Err error - Server string -} - -func (e *ReadRoutingTableError) Error() string { - if e.Err != nil || len(e.Server) > 0 { - return fmt.Sprintf("Unable to retrieve routing table from %s: %s", e.Server, e.Err) - } - return "Unable to retrieve routing table, no router provided" -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/tls.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/tls.go deleted file mode 100644 index d94510a..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil/tls.go +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 errorutil - -// TlsError encapsulates all errors related to TLS connection creation -// This is needed since the tls package does not provide a common error type -// à la net.Error, and a common type is needed to properly classify the error -// for Testkit -type TlsError struct { - Inner error -} - -func (e *TlsError) Error() string { - return e.Inner.Error() -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql/diagnostic_record.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql/diagnostic_record.go deleted file mode 100644 index 599d733..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql/diagnostic_record.go +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 gql - -func NewDefaultDiagnosticRecord() map[string]any { - return map[string]any{ - "OPERATION": "", - "OPERATION_CODE": "0", - "CURRENT_SCHEMA": "/", - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb/cache.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb/cache.go deleted file mode 100644 index d08ce27..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb/cache.go +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 homedb - -import ( - "encoding/json" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "math" - "sort" - "sync" - "time" -) - -// DefaultCacheMaxSize defines the maximum number of entries the cache can hold. -const DefaultCacheMaxSize = 1000 - -const keyScheme = "scheme" -const schemeNone = "none" -const schemeBasic = "basic" -const schemeKerberos = "kerberos" -const schemeBearer = "bearer" -const keyPrincipal = "principal" -const keyCredentials = "credentials" - -type cacheEntry struct { - database string - lastUsed time.Time -} - -type Cache struct { - maxSize int - pruneFactor int - cache map[string]*cacheEntry - enabled bool - mu sync.RWMutex -} - -// NewCache creates and returns a new cache instance with the given max size. -func NewCache(maxSize int) (*Cache, error) { - if maxSize <= 0 { - return nil, &errorutil.UsageError{Message: "Maximum cache size must be greater than 0"} - } - - c := 0.01 - pruneFactor := int(math.Max(1, math.Round(c*float64(maxSize)*math.Log(float64(maxSize))))) - - return &Cache{ - maxSize: maxSize, - pruneFactor: pruneFactor, - cache: make(map[string]*cacheEntry, maxSize+1), - enabled: false, - }, nil -} - -// Get retrieves the home database for a given user, if it exists. -// It updates the `lastUsed` timestamp for the entry. -func (c *Cache) Get(user string) (string, bool) { - if !c.IsEnabled() { - return "", false - } - - c.mu.Lock() - defer c.mu.Unlock() - - entry, exists := c.cache[user] - if !exists { - return "", false - } - entry.lastUsed = time.Now() - return entry.database, true -} - -// Set adds or updates an entry in the cache. -// If the cache exceeds its max size, it prunes the least recently used entries. -func (c *Cache) Set(user string, database string) { - c.mu.Lock() - defer c.mu.Unlock() - - c.cache[user] = &cacheEntry{ - database: database, - lastUsed: time.Now(), - } - c.prune() -} - -// ComputeKey generates a cache key based on user impersonation and an optional session auth token. -func (c *Cache) ComputeKey(impersonatedUser string, sessionAuth *auth.Token) (string, error) { - // If an impersonated user is provided, use it as the key. - if impersonatedUser != "" { - return "basic:" + impersonatedUser, nil - } - - // If no session authentication token is provided, return a default key. - if sessionAuth == nil { - return "DEFAULT", nil - } - - // Process based on auth scheme - if scheme, ok := sessionAuth.Tokens[keyScheme].(string); ok { - switch scheme { - case schemeBasic: - if principal, ok := sessionAuth.Tokens[keyPrincipal].(string); ok { - return "basic:" + principal, nil - } - return "basic:", nil - case schemeKerberos: - if credentials, ok := sessionAuth.Tokens[keyCredentials].(string); ok { - return "kerberos:" + credentials, nil - } - case schemeBearer: - if credentials, ok := sessionAuth.Tokens[keyCredentials].(string); ok { - return "bearer:" + credentials, nil - } - case schemeNone: - return "none", nil - default: - return marshalCacheKey(scheme, sessionAuth.Tokens) - } - } - return marshalCacheKey("unknown", sessionAuth.Tokens) -} - -// SetEnabled enables or disables the cache. -func (c *Cache) SetEnabled(enabled bool) { - c.mu.Lock() - defer c.mu.Unlock() - c.enabled = enabled -} - -// IsEnabled checks whether the cache is enabled. -func (c *Cache) IsEnabled() bool { - c.mu.RLock() - defer c.mu.RUnlock() - return c.enabled -} - -// prune removes a chunk of the least recently used entries if the cache exceeds its max size. -func (c *Cache) prune() { - if len(c.cache) <= c.maxSize { - return - } - - // Collect all entries to a slice ready to be sorted. - entries := make([]struct { - user string - entry *cacheEntry - }, 0, len(c.cache)) - - for user, entry := range c.cache { - entries = append(entries, struct { - user string - entry *cacheEntry - }{user: user, entry: entry}) - } - - // Sort the entries by `lastUsed` (oldest first). - sort.Slice(entries, func(i, j int) bool { - return entries[i].entry.lastUsed.Before(entries[j].entry.lastUsed) - }) - - // Ensure we do not prune more than the number of entries in the cache - pruneCount := c.pruneFactor - if pruneCount > len(entries) { - pruneCount = len(entries) - } - - // Remove the least recently used entries - for i := 0; i < pruneCount; i++ { - delete(c.cache, entries[i].user) - } -} - -// marshalCacheKey returns a deterministic JSON string representation of a cache key built from the scheme and tokens. -func marshalCacheKey(scheme string, tokens map[string]any) (string, error) { - b, err := json.Marshal(struct { - Scheme string `json:"scheme"` - Tokens map[string]any `json:"tokens"` - }{ - Scheme: scheme, - Tokens: tokens, - }) - return string(b), err -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata/metadata.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata/metadata.go deleted file mode 100644 index acfd6e2..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata/metadata.go +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 metadata - -const DriverVersion = "5.28.4" diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications/notifications.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications/notifications.go deleted file mode 100644 index b8ef26c..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications/notifications.go +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 notifications - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" -) - -func newSuccessGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "00000", - StatusDescription: "note: successful completion", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -func newNoDataGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "02000", - StatusDescription: "note: no data", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -func newOmittedResultGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "00001", - StatusDescription: "note: successful completion - omitted result", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -func newUnknownWarningResultGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "01N42", - StatusDescription: "warn: unknown warning", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -func newUnknownInformationResultGqlStatusObject() *db.GqlStatusObject { - return &db.GqlStatusObject{ - GqlStatus: "03N42", - StatusDescription: "info: unknown notification", - DiagnosticRecord: gql.NewDefaultDiagnosticRecord(), - } -} - -// ToNotification returns a db.Notification that corresponds to the given db.GqlStatusObject. -// It maps fields from the status to their respective notification fields. -func ToNotification(gqlStatusObject db.GqlStatusObject) *db.Notification { - return &db.Notification{ - //lint:ignore SA1019 Code is supported at least until 6.0 - Code: gqlStatusObject.Code, - //lint:ignore SA1019 Title is supported at least until 6.0 - Title: gqlStatusObject.Title, - //lint:ignore SA1019 Description is supported at least until 6.0 - Description: gqlStatusObject.Description, - Position: gqlStatusObject.Position, - Severity: gqlStatusObject.Severity, - Category: gqlStatusObject.Classification, - } -} - -// ToGqlStatusObject returns a db.GqlStatusObject that corresponds to the given db.Notification. -// It maps fields from the notification to their respective status fields. -func ToGqlStatusObject(notification db.Notification) *db.GqlStatusObject { - var defaultStatus *db.GqlStatusObject - if notification.Severity == string(notifications.Warning) { - defaultStatus = newUnknownWarningResultGqlStatusObject() - } else { - defaultStatus = newUnknownInformationResultGqlStatusObject() - } - - statusDescription := notification.Description - if statusDescription == "" { - statusDescription = defaultStatus.StatusDescription - } - - diagnosticRecord := gql.NewDefaultDiagnosticRecord() - - if notification.Position != nil { - diagnosticRecord["_position"] = map[string]any{ - "offset": notification.Position.Offset, - "line": notification.Position.Line, - "column": notification.Position.Column, - } - } - if notification.Severity != "" { - diagnosticRecord["_severity"] = notification.Severity - } - if notification.Category != "" { - diagnosticRecord["_classification"] = notification.Category - } - - return &db.GqlStatusObject{ - Code: notification.Code, - Title: notification.Title, - Description: notification.Description, - GqlStatus: defaultStatus.GqlStatus, - StatusDescription: statusDescription, - Position: notification.Position, - Classification: notification.Category, - Severity: notification.Severity, - DiagnosticRecord: diagnosticRecord, - IsNotification: true, - } -} - -// ToGqlStatusObjectFromSummary creates a new db.GqlStatusObject based on the context of the db.StreamSummary. -func ToGqlStatusObjectFromSummary(summary db.StreamSummary) *db.GqlStatusObject { - if summary.HadRecord { - return newSuccessGqlStatusObject() - } else if summary.HadKey { - return newNoDataGqlStatusObject() - } else { - return newOmittedResultGqlStatusObject() - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/errors.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/errors.go deleted file mode 100644 index 416fbc3..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/errors.go +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 packstream handles serialization of data sent to database server and -// deserialization of data received from database server. -package packstream - -type OverflowError struct { - msg string -} - -func (e *OverflowError) Error() string { - return e.msg -} - -type IoError struct{} - -func (e *IoError) Error() string { - return "IO error" -} - -type UnpackError struct { - msg string -} - -func (e *UnpackError) Error() string { - return e.msg -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/packer.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/packer.go deleted file mode 100644 index 4c6230b..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/packer.go +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 packstream - -import ( - "encoding/binary" - "fmt" - "math" -) - -type Packer struct { - buf []byte - err error -} - -func (p *Packer) Begin(buf []byte) { - p.buf = buf - p.err = nil -} - -func (p *Packer) End() ([]byte, error) { - return p.buf, p.err - -} - -func (p *Packer) setErr(err error) { - if p.err == nil { - p.err = err - } -} - -func (p *Packer) StructHeader(tag byte, num int) { - if num > 0x0f { - p.setErr(&OverflowError{msg: "Trying to pack struct with too many fields"}) - return - } - - p.buf = append(p.buf, 0xb0+byte(num), byte(tag)) -} - -func (p *Packer) Int64(i int64) { - switch { - case int64(-0x10) <= i && i < int64(0x80): - p.buf = append(p.buf, byte(i)) - case int64(-0x80) <= i && i < int64(-0x10): - p.buf = append(p.buf, 0xc8, byte(i)) - case int64(-0x8000) <= i && i < int64(0x8000): - buf := [3]byte{0xc9} - binary.BigEndian.PutUint16(buf[1:], uint16(i)) - p.buf = append(p.buf, buf[:]...) - case int64(-0x80000000) <= i && i < int64(0x80000000): - buf := [5]byte{0xca} - binary.BigEndian.PutUint32(buf[1:], uint32(i)) - p.buf = append(p.buf, buf[:]...) - default: - buf := [9]byte{0xcb} - binary.BigEndian.PutUint64(buf[1:], uint64(i)) - p.buf = append(p.buf, buf[:]...) - } -} - -func (p *Packer) Int32(i int32) { - p.Int64(int64(i)) -} - -func (p *Packer) Int16(i int16) { - p.Int64(int64(i)) -} - -func (p *Packer) Int8(i int8) { - p.Int64(int64(i)) -} - -func (p *Packer) Int(i int) { - p.Int64(int64(i)) -} - -func (p *Packer) Uint64(i uint64) { - p.checkOverflowInt(i) - p.Int64(int64(i)) -} - -func (p *Packer) Uint32(i uint32) { - p.Int64(int64(i)) -} - -func (p *Packer) Uint16(i uint16) { - p.Int64(int64(i)) -} - -func (p *Packer) Uint8(i uint8) { - p.Int64(int64(i)) -} - -func (p *Packer) Float64(f float64) { - buf := [9]byte{0xc1} - binary.BigEndian.PutUint64(buf[1:], math.Float64bits(f)) - p.buf = append(p.buf, buf[:]...) -} - -func (p *Packer) Float32(f float32) { - p.Float64(float64(f)) -} - -func (p *Packer) listHeader(ll int, shortOffset, longOffset byte) { - l := int64(ll) - hdr := make([]byte, 0, 1+4) - if l < 0x10 { - hdr = append(hdr, shortOffset+byte(l)) - } else { - switch { - case l < 0x100: - hdr = append(hdr, []byte{longOffset, byte(l)}...) - case l < 0x10000: - hdr = hdr[:1+2] - hdr[0] = longOffset + 1 - binary.BigEndian.PutUint16(hdr[1:], uint16(l)) - case l < math.MaxUint32: - hdr = hdr[:1+4] - hdr[0] = longOffset + 2 - binary.BigEndian.PutUint32(hdr[1:], uint32(l)) - default: - p.err = &OverflowError{msg: fmt.Sprintf("Trying to pack too large list of size %d ", l)} - return - } - } - p.buf = append(p.buf, hdr...) -} - -func (p *Packer) String(s string) { - p.listHeader(len(s), 0x80, 0xd0) - p.buf = append(p.buf, []byte(s)...) -} - -func (p *Packer) Strings(ss []string) { - p.listHeader(len(ss), 0x90, 0xd4) - for _, s := range ss { - p.String(s) - } -} - -func (p *Packer) Ints(ii []int) { - p.listHeader(len(ii), 0x90, 0xd4) - for _, i := range ii { - p.Int(i) - } -} - -func (p *Packer) Int64s(ii []int64) { - p.listHeader(len(ii), 0x90, 0xd4) - for _, i := range ii { - p.Int64(i) - } -} - -func (p *Packer) Float64s(ii []float64) { - p.listHeader(len(ii), 0x90, 0xd4) - for _, i := range ii { - p.Float64(i) - } -} - -func (p *Packer) ArrayHeader(l int) { - p.listHeader(l, 0x90, 0xd4) -} - -func (p *Packer) MapHeader(l int) { - p.listHeader(l, 0xa0, 0xd8) -} - -func (p *Packer) BytesMap(m map[string][]byte) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.Bytes(v) - } -} - -func (p *Packer) IntMap(m map[string]int) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.Int(v) - } -} - -func (p *Packer) Int64Map(m map[string]int64) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.Int64(v) - } -} - -func (p *Packer) StringMap(m map[string]string) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.String(v) - } -} - -func (p *Packer) Float64Map(m map[string]float64) { - p.listHeader(len(m), 0xa0, 0xd8) - for k, v := range m { - p.String(k) - p.Float64(v) - } -} - -func (p *Packer) Bytes(b []byte) { - hdr := make([]byte, 0, 1+4) - l := int64(len(b)) - switch { - case l < 0x100: - hdr = append(hdr, 0xcc, byte(l)) - case l < 0x10000: - hdr = hdr[:1+2] - hdr[0] = 0xcd - binary.BigEndian.PutUint16(hdr[1:], uint16(l)) - case l < 0x100000000: - hdr = hdr[:1+4] - hdr[0] = 0xce - binary.BigEndian.PutUint32(hdr[1:], uint32(l)) - default: - p.err = &OverflowError{msg: fmt.Sprintf("Trying to pack too large byte array of size %d", l)} - return - } - p.buf = append(p.buf, hdr...) - p.buf = append(p.buf, b...) -} - -func (p *Packer) Bool(b bool) { - if b { - p.buf = append(p.buf, 0xc3) - return - } - p.buf = append(p.buf, 0xc2) -} - -func (p *Packer) Nil() { - p.buf = append(p.buf, 0xc0) -} - -func (p *Packer) checkOverflowInt(i uint64) { - if i > math.MaxInt64 { - p.err = &OverflowError{msg: "Trying to pack uint64 that doesn't fit into int64"} - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/unpacker.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/unpacker.go deleted file mode 100644 index 2e9e878..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream/unpacker.go +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 packstream - -import ( - "encoding/binary" - "fmt" - "math" -) - -const ( - PackedUndef = iota // Undefined must be zero! - PackedInt - PackedFloat - PackedStr - PackedStruct - PackedByteArray - PackedArray - PackedMap - PackedNil - PackedTrue - PackedFalse -) - -type Unpacker struct { - buf []byte - off uint32 - len uint32 - mrk marker - Err error - Curr int // Packed type -} - -func (u *Unpacker) Reset(buf []byte) { - u.buf = buf - u.off = 0 - u.len = uint32(len(buf)) - u.Err = nil - u.mrk.typ = PackedUndef - u.Curr = PackedUndef -} - -func (u *Unpacker) setErr(err error) { - if u.Err == nil { - u.Err = err - } -} - -func (u *Unpacker) Next() { - i := u.pop() - u.mrk = markers[i] - u.Curr = u.mrk.typ -} - -func (u *Unpacker) Len() uint32 { - if u.mrk.numlenbytes == 0 { - return uint32(u.mrk.shortlen) - } - return u.readlen(uint32(u.mrk.numlenbytes)) -} - -func (u *Unpacker) Int() int64 { - n := u.mrk.numlenbytes - if n == 0 { - return int64(u.mrk.shortlen) - } - - end := u.off + uint32(n) - if end > u.len { - u.setErr(&IoError{}) - return 0 - } - i := int64(0) - switch n { - case 1: - i = int64(int8(u.buf[u.off])) - case 2: - i = int64(int16(binary.BigEndian.Uint16(u.buf[u.off:]))) - case 4: - i = int64(int32(binary.BigEndian.Uint32(u.buf[u.off:]))) - case 8: - i = int64(binary.BigEndian.Uint64(u.buf[u.off:])) - default: - u.setErr(&UnpackError{msg: fmt.Sprintf("Illegal int length: %d", n)}) - return 0 - } - u.off = end - return i -} - -func (u *Unpacker) Float() float64 { - buf := u.read(8) - if u.Err != nil { - return math.NaN() - } - return math.Float64frombits(binary.BigEndian.Uint64(buf)) -} - -func (u *Unpacker) StructTag() byte { - return u.pop() -} - -func (u *Unpacker) String() string { - n := uint32(u.mrk.numlenbytes) - if n == 0 { - n = uint32(u.mrk.shortlen) - } else { - n = u.readlen(n) - } - return string(u.read(n)) -} - -func (u *Unpacker) Bool() bool { - switch u.Curr { - case PackedTrue: - return true - case PackedFalse: - return false - default: - u.setErr(&UnpackError{msg: "Illegal value for bool"}) - return false - } -} - -func (u *Unpacker) ByteArray() []byte { - n := u.Len() - buf := u.read(n) - out := make([]byte, n) - copy(out, buf) - return out -} - -func (u *Unpacker) pop() byte { - if u.off < u.len { - x := u.buf[u.off] - u.off += 1 - return x - } - u.setErr(&IoError{}) - return 0 -} - -func (u *Unpacker) read(n uint32) []byte { - start := u.off - end := u.off + n - if end > u.len { - u.setErr(&IoError{}) - return []byte{} - } - u.off = end - return u.buf[start:end] -} - -func (u *Unpacker) readlen(n uint32) uint32 { - end := u.off + n - if end > u.len { - u.setErr(&IoError{}) - return 0 - } - l := uint32(0) - switch n { - case 1: - l = uint32(u.buf[u.off]) - case 2: - l = uint32(binary.BigEndian.Uint16(u.buf[u.off:])) - case 4: - l = uint32(binary.BigEndian.Uint32(u.buf[u.off:])) - default: - u.setErr(&UnpackError{msg: fmt.Sprintf("Illegal length: %d (%d)", n, u.Curr)}) - } - u.off = end - return l -} - -type marker struct { - typ int - shortlen int8 - numlenbytes byte -} - -var markers [0x100]marker - -func init() { - i := 0 - // Tiny int - for ; i < 0x80; i++ { - markers[i] = marker{typ: PackedInt, shortlen: int8(i)} - } - // Tiny string - for ; i < 0x90; i++ { - markers[i] = marker{typ: PackedStr, shortlen: int8(i - 0x80)} - } - // Tiny array - for ; i < 0xa0; i++ { - markers[i] = marker{typ: PackedArray, shortlen: int8(i - 0x90)} - } - // Tiny map - for ; i < 0xb0; i++ { - markers[i] = marker{typ: PackedMap, shortlen: int8(i - 0xa0)} - } - // Struct - for ; i < 0xc0; i++ { - markers[i] = marker{typ: PackedStruct, shortlen: int8(i - 0xb0)} - } - - markers[0xc0] = marker{typ: PackedNil} - markers[0xc1] = marker{typ: PackedFloat, numlenbytes: 8} - markers[0xc2] = marker{typ: PackedFalse} - markers[0xc3] = marker{typ: PackedTrue} - - markers[0xc8] = marker{typ: PackedInt, numlenbytes: 1} - markers[0xc9] = marker{typ: PackedInt, numlenbytes: 2} - markers[0xca] = marker{typ: PackedInt, numlenbytes: 4} - markers[0xcb] = marker{typ: PackedInt, numlenbytes: 8} - - markers[0xcc] = marker{typ: PackedByteArray, numlenbytes: 1} - markers[0xcd] = marker{typ: PackedByteArray, numlenbytes: 2} - markers[0xce] = marker{typ: PackedByteArray, numlenbytes: 4} - - markers[0xd0] = marker{typ: PackedStr, numlenbytes: 1} - markers[0xd1] = marker{typ: PackedStr, numlenbytes: 2} - markers[0xd2] = marker{typ: PackedStr, numlenbytes: 4} - - markers[0xd4] = marker{typ: PackedArray, numlenbytes: 1} - markers[0xd5] = marker{typ: PackedArray, numlenbytes: 2} - markers[0xd6] = marker{typ: PackedArray, numlenbytes: 4} - - markers[0xd8] = marker{typ: PackedMap, numlenbytes: 1} - markers[0xd9] = marker{typ: PackedMap, numlenbytes: 2} - markers[0xda] = marker{typ: PackedMap, numlenbytes: 4} - - for i = 0xf0; i < 0x100; i++ { - markers[i] = marker{typ: PackedInt, shortlen: int8(i - 0x100)} - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/pool.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/pool.go deleted file mode 100644 index 60be6c9..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/pool.go +++ /dev/null @@ -1,571 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 pool handles the database connection pool. -package pool - -// Thread safe - -import ( - "container/list" - "context" - "math" - "sort" - "sync" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/config" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// DefaultConnectionLivenessCheckTimeout disables the liveness check of connections. -// Liveness checks are performed before a connection is deemed idle enough to be reset. -const DefaultConnectionLivenessCheckTimeout = math.MaxInt64 - -type Connect func(context.Context, string, *idb.ReAuthToken, bolt.ConnectionErrorListener, log.BoltLogger) (idb.Connection, error) - -type poolRouter interface { - InvalidateWriter(db string, server string) - InvalidateReader(db string, server string) - InvalidateServer(server string) -} - -type qitem struct { - wakeup chan bool -} - -type Pool struct { - config *config.Config - connect Connect - router poolRouter - servers map[string]*server - serversMut sync.Mutex - queueMut sync.Mutex - queue list.List - closed bool - log log.Logger - logId string - cache *homedb.Cache - ssrTracker *ssrTracker -} - -type serverPenalty struct { - name string - penalty uint32 -} - -func New(config *config.Config, connect Connect, logger log.Logger, logId string, cache *homedb.Cache) *Pool { - // Means infinite life, simplifies checking later on - - p := &Pool{ - config: config, - connect: connect, - router: nil, - servers: make(map[string]*server), - serversMut: sync.Mutex{}, - queueMut: sync.Mutex{}, - logId: logId, - log: logger, - cache: cache, - ssrTracker: &ssrTracker{}, - } - p.log.Infof(log.Pool, p.logId, "Created") - return p -} - -func (p *Pool) SetRouter(router poolRouter) { - p.router = router -} - -func (p *Pool) Close(ctx context.Context) { - p.closed = true - p.queueMut.Lock() - for e := p.queue.Front(); e != nil; e = e.Next() { - queuedRequest := e.Value.(*qitem) - p.queue.Remove(e) - queuedRequest.wakeup <- true - } - p.queueMut.Unlock() - // Go through each server and close all connections to it - p.serversMut.Lock() - pendingConnections := 0 - for _, s := range p.servers { - s.startClosing(ctx, p.closeConnection) - pendingConnections += s.size() - } - p.serversMut.Unlock() - if pendingConnections == 0 { - p.log.Infof(log.Pool, p.logId, "Closed") - } else { - p.log.Warnf( - log.Pool, - p.logId, - "Called close with %d in-flight connections (will be closed when work is done).", - pendingConnections, - ) - } -} - -// For testing -func (p *Pool) queueSize() int { - p.queueMut.Lock() - defer p.queueMut.Unlock() - return p.queue.Len() -} - -// For testing -func (p *Pool) getServers() map[string]*server { - p.serversMut.Lock() - defer p.serversMut.Unlock() - servers := make(map[string]*server) - for k, v := range p.servers { - servers[k] = v - } - return servers -} - -// CleanUp prunes all old connection on all the servers, this makes sure that servers -// gets removed from the map at some point in time. If there is a noticed -// failed connect still active we should wait a while with removal to get -// prioritization right. -func (p *Pool) CleanUp(ctx context.Context) { - p.serversMut.Lock() - defer p.serversMut.Unlock() - now := itime.Now() - for n, s := range p.servers { - p.removeIdleOlderThanLocked(ctx, s, now, p.config.MaxConnectionLifetime) - if s.size() == 0 && !s.hasFailedConnect(now) { - delete(p.servers, n) - } - } -} - -func (p *Pool) getPenaltiesForServers(ctx context.Context, serverNames []string) []serverPenalty { - p.serversMut.Lock() - defer p.serversMut.Unlock() - - // Retrieve penalty for each server - penalties := make([]serverPenalty, len(serverNames)) - now := itime.Now() - for i, n := range serverNames { - s := p.servers[n] - penalties[i].name = n - if s != nil { - // Make sure that we don't get a too old connection - p.removeIdleOlderThanLocked(ctx, s, now, p.config.MaxConnectionLifetime) - penalties[i].penalty = s.calculatePenalty(now) - } else { - penalties[i].penalty = newConnectionPenalty - } - } - return penalties -} - -func (p *Pool) anyHasCapacity(serverNames []string) bool { - p.serversMut.Lock() - defer p.serversMut.Unlock() - for _, serverName := range serverNames { - srv := p.servers[serverName] - if srv != nil { - if srv.numIdle() > 0 || srv.size() < p.config.MaxConnectionPoolSize { - return true - } - } - } - return false -} - -func (p *Pool) Borrow( - ctx context.Context, - getServerNames func() []string, - wait bool, - boltLogger log.BoltLogger, - idlenessTimeout time.Duration, - auth *idb.ReAuthToken, -) (idb.Connection, error) { - for { - if err := p.checkClosed(); err != nil { - return nil, err - } - serverNames := getServerNames() - if len(serverNames) == 0 { - return nil, &errorutil.PoolOutOfServers{} - } - p.log.Debugf(log.Pool, p.logId, "Trying to borrow connection from %s", serverNames) - // Retrieve penalty for each server - penalties := p.getPenaltiesForServers(ctx, serverNames) - // Sort server penalties by lowest penalty - sort.Slice(penalties, func(i, j int) bool { - return penalties[i].penalty < penalties[j].penalty - }) - - var err error - - var conn idb.Connection - for _, s := range penalties { - conn, err = p.tryBorrow(ctx, s.name, boltLogger, idlenessTimeout, auth) - if conn != nil { - // Update the cache state after borrowing a connection since ssr support may have changed. - p.updateCacheState() - return conn, nil - } - - if errorutil.IsTimeoutError(err) { - p.log.Warnf(log.Pool, p.logId, "Borrow time-out") - return nil, &errorutil.PoolTimeout{Servers: serverNames, Err: err} - } - if errorutil.IsFatalDuringDiscovery(err) { - return nil, err - } - } - - if err != nil { - // Intentionally return last error from last connection attempt to make it easier to - // see connection errors for users. - return nil, err - } - - if !wait { - return nil, &errorutil.PoolFull{Servers: serverNames} - } - - // Wait for a matching connection to be returned from another thread. - p.queueMut.Lock() - // By owning the queue lock, we are guaranteed that every call to Return from now on, until we release the - // lock, will notify us (or another waiter). To avoid starving this thread, we have to check once more whether - // any call to Return between checking for capacity above and acquiring the lock happened. In that case, we - // are no longer guaranteed to be notified, so we have to start over. - if p.anyHasCapacity(serverNames) { - p.queueMut.Unlock() - continue - } - // Add a waiting request to the queue and unlock the queue to let other threads that return - // their connections access the queue. - q := &qitem{ - wakeup: make(chan bool, 1), - } - e := p.queue.PushBack(q) - p.queueMut.Unlock() - - p.log.Warnf(log.Pool, p.logId, "Borrow queued") - // Wait for either a wake-up signal that indicates that we got a connection or a timeout. - select { - case <-q.wakeup: - continue - case <-ctx.Done(): - p.queueMut.Lock() - p.queue.Remove(e) - if len(q.wakeup) == 1 { - // We got notified, but are no longer interested. - // Ask the next waiter. - if e := p.queue.Front(); e != nil { - queuedRequest := e.Value.(*qitem) - p.queue.Remove(e) - queuedRequest.wakeup <- true - } - p.queueMut.Unlock() - continue - } - p.queueMut.Unlock() - p.log.Warnf(log.Pool, p.logId, "Borrow time-out") - return nil, &errorutil.PoolTimeout{Err: ctx.Err(), Servers: serverNames} - } - } -} - -func (p *Pool) tryBorrow( - ctx context.Context, - serverName string, - boltLogger log.BoltLogger, - idlenessTimeout time.Duration, - auth *idb.ReAuthToken, -) (idb.Connection, error) { - p.serversMut.Lock() - var unlock = new(sync.Once) - defer unlock.Do(p.serversMut.Unlock) - - if err := p.checkClosed(); err != nil { - return nil, err - } - - srv := p.servers[serverName] - for { - if srv != nil { - srv.closing = false - connection := srv.getIdle() - if connection == nil { - if srv.size() >= p.config.MaxConnectionPoolSize { - return nil, nil - } - break - } - unlock.Do(p.serversMut.Unlock) - healthy, err := srv.healthCheck(ctx, connection, idlenessTimeout, auth, boltLogger) - if healthy { - return connection, nil - } - p.unreg(ctx, serverName, connection, itime.Now()) - if err != nil { - p.log.Debugf(log.Pool, p.logId, "Health check failed for %s: %s", serverName, err) - return nil, err - } - p.serversMut.Lock() - *unlock = sync.Once{} - srv = p.servers[serverName] - } else { - // Make sure that there is a server in the map - srv = NewServer() - p.servers[serverName] = srv - break - } - } - - srv.reservations++ - unlock.Do(p.serversMut.Unlock) - - // No idle connection, try to connect - p.log.Infof(log.Pool, p.logId, "Connecting to %s", serverName) - c, err := p.connect(ctx, serverName, auth, p, boltLogger) - p.serversMut.Lock() - *unlock = sync.Once{} - srv.reservations-- - if err != nil { - p.log.Warnf(log.Pool, p.logId, "Failed to connect to %s: %s", serverName, err) - // FeatureNotSupportedError is not the server fault, don't penalize it - if _, ok := err.(*db.FeatureNotSupportedError); !ok { - srv.notifyFailedConnect(itime.Now()) - } - return nil, err - } - - // Ok, got a connection, register the connection - p.ssrTracker.addConnection(c) - srv.registerBusy(c) - srv.notifySuccessfulConnect() - return c, nil -} - -func (p *Pool) checkClosed() error { - if p.closed { - return &errorutil.PoolClosed{} - } - return nil -} - -func (p *Pool) unreg(ctx context.Context, serverName string, c idb.Connection, now time.Time) { - p.serversMut.Lock() - defer p.serversMut.Unlock() - p.unregLocked(ctx, serverName, c, now) -} - -func (p *Pool) unregLocked(ctx context.Context, serverName string, c idb.Connection, now time.Time) { - defer p.closeConnection(ctx, c) - - server := p.servers[serverName] - // Check for strange condition of not finding the server. - if server == nil { - p.log.Warnf(log.Pool, p.logId, "Server %s not found", serverName) - return - } - - server.unregisterBusy(c) - if server.size() == 0 && !server.hasFailedConnect(now) { - delete(p.servers, serverName) - } -} - -func (p *Pool) removeIdleOlderThanOnServer(ctx context.Context, serverName string, now time.Time, maxAge time.Duration) { - p.serversMut.Lock() - defer p.serversMut.Unlock() - server := p.servers[serverName] - if server == nil { - return - } - p.removeIdleOlderThanLocked(ctx, server, now, maxAge) -} - -func (p *Pool) removeIdleOlderThanLocked(ctx context.Context, s *server, now time.Time, maxAge time.Duration) { - s.removeIdleOlderThan(ctx, now, maxAge, p.closeConnection) -} - -func (p *Pool) closeConnection(ctx context.Context, c idb.Connection) { - p.ssrTracker.removeConnection(c) - // Close connection in another thread to avoid potential long blocking operation during close. - go func() { - ctx, cancelFunc := context.WithTimeout(context.Background(), 30*time.Second) - defer cancelFunc() - c.Close(ctx) - if ctxErr := ctx.Err(); ctxErr != nil { - p.log.Debugf( - log.Pool, - p.logId, - "Connection %s timed out during graceful shutdown: %s", - c.ConnId(), - ctxErr, - ) - } - }() -} - -func (p *Pool) Return(ctx context.Context, c idb.Connection) { - if p.closed { - p.log.Warnf(log.Pool, p.logId, "Trying to return connection to closed pool") - } - - // Get the name of the server that the connection belongs to. - serverName := c.ServerName() - isAlive := c.IsAlive() - p.log.Debugf( - log.Pool, - p.logId, - "Returning connection %s to %s {alive:%t}", - c.ConnId(), - serverName, - isAlive, - ) - - // If the connection is dead, remove all other idle connections on the same server that older - // or of the same age as the dead connection, otherwise perform normal cleanup of old connections - maxAge := p.config.MaxConnectionLifetime - now := itime.Now() - age := now.Sub(c.Birthdate()) - if !isAlive { - // Since this connection has died all other connections that connected before this one - // might also be bad, remove the idle ones. - if age < maxAge { - maxAge = age - } - } - p.removeIdleOlderThanOnServer(ctx, serverName, now, maxAge) - - // Prepare connection for being used by someone else if is alive. - // Since reset could find the connection to be in a bad state or non-recoverable state, - // make sure again that it really is alive. - if isAlive { - c.Reset(ctx) - isAlive = c.IsAlive() - } - - c.SetBoltLogger(nil) - - // Shouldn't return a too old or dead connection back to the pool - if !isAlive || age >= p.config.MaxConnectionLifetime { - // Fix for race condition where expired connections could be reused or closed concurrently. - // See: https://github.com/neo4j/neo4j-go-driver/issues/574 - isAlive = false - p.unreg(ctx, serverName, c, now) - p.log.Infof(log.Pool, p.logId, "Unregistering dead or too old connection to %s", serverName) - } - - if isAlive { - // Just put it back in the list of idle connections for this server - p.serversMut.Lock() - server := p.servers[serverName] - if server != nil { // Strange when server not found - server.returnBusy(ctx, c, p.closeConnection) - if server.closing && server.size() == 0 { - delete(p.servers, serverName) - } - } else { - p.log.Warnf(log.Pool, p.logId, "Server %s not found", serverName) - p.closeConnection(ctx, c) - } - p.serversMut.Unlock() - } - // Update the cache state after returning a connection since ssr support may have changed. - p.updateCacheState() - - // Check if there is anyone in the queue waiting for a connection to this server. - p.queueMut.Lock() - - if e := p.queue.Front(); e != nil { - queuedRequest := e.Value.(*qitem) - p.queue.Remove(e) - queuedRequest.wakeup <- true - } - p.queueMut.Unlock() -} - -func (p *Pool) OnNeo4jError(ctx context.Context, connection idb.Connection, error *db.Neo4jError) error { - if error.Code == "Neo.ClientError.Security.AuthorizationExpired" { - serverName := connection.ServerName() - p.serversMut.Lock() - defer p.serversMut.Unlock() - server := p.servers[serverName] - server.executeForAllConnections(func(c idb.Connection) { - c.ResetAuth() - }) - } - if error.Code == "Neo.TransientError.General.DatabaseUnavailable" { - p.deactivate(ctx, connection.ServerName()) - } - if error.IsRetriableCluster() { - var database string - if dbSelector, ok := connection.(idb.DatabaseSelector); ok { - database = dbSelector.Database() - } - p.deactivateWriter(connection.ServerName(), database) - } - if error.HasSecurityCode() { - manager, token := connection.GetCurrentAuth() - if manager != nil { - handled, err := manager.HandleSecurityException(ctx, token, error) - if err != nil { - return err - } - if handled { - error.MarkRetriable() - } - } - } - - return nil -} - -func (p *Pool) OnIoError(ctx context.Context, connection idb.Connection, _ error) { - p.deactivate(ctx, connection.ServerName()) -} - -func (p *Pool) OnDialError(ctx context.Context, serverName string, _ error) { - p.deactivate(ctx, serverName) -} - -func (p *Pool) deactivate(ctx context.Context, serverName string) { - p.log.Debugf(log.Pool, p.logId, "Deactivating server %s", serverName) - p.router.InvalidateServer(serverName) - p.serversMut.Lock() - defer p.serversMut.Unlock() - server := p.servers[serverName] - if server != nil { - server.startClosing(ctx, p.closeConnection) - } -} - -func (p *Pool) deactivateWriter(serverName string, db string) { - p.log.Debugf(log.Pool, p.logId, "Deactivating writer %s for database %s", serverName, db) - p.router.InvalidateWriter(db, serverName) -} - -func (p *Pool) updateCacheState() { - p.cache.SetEnabled(p.ssrTracker.ssrEnabled()) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/server.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/server.go deleted file mode 100644 index 871cf3e..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/server.go +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 pool - -import ( - "container/list" - "context" - "sync/atomic" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// Represents a server with a number of connections that either is in use (borrowed) or -// is ready for use. -// Not thread safe -type server struct { - idle list.List - busy list.List - reservations int - failedConnectAt time.Time - roundRobin uint32 - closing bool -} - -func NewServer() *server { - return &server{ - idle: list.List{}, - busy: list.List{}, - } -} - -type closeFunc = func(context.Context, db.Connection) - -var sharedRoundRobin uint32 - -const rememberFailedConnectDuration = 3 * time.Minute - -// Returns an idle connection if any -func (s *server) getIdle() db.Connection { - availableConnection := s.idle.Front() - found := availableConnection != nil - if found { - idleConnection := s.idle.Remove(availableConnection) - connection := idleConnection.(db.Connection) - s.busy.PushFront(idleConnection) - return connection - } - return nil -} - -// Returns an idle connection if any -func (s *server) healthCheck( - ctx context.Context, - connection db.Connection, - idlenessTimeout time.Duration, - auth *db.ReAuthToken, - boltLogger log.BoltLogger) (healthy bool, _ error) { - - connection.SetBoltLogger(boltLogger) - if itime.Since(connection.IdleDate()) > idlenessTimeout { - connection.ForceReset(ctx) - if !connection.IsAlive() { - return false, ctx.Err() - } - } - if err := connection.ReAuth(ctx, auth); err != nil { - return false, err - } - if !connection.IsAlive() { - return false, ctx.Err() - } - // Update round-robin counter every time we give away a connection and keep track - // of our own round-robin index - atomic.StoreUint32(&s.roundRobin, atomic.AddUint32(&sharedRoundRobin, 1)) - return true, nil -} - -func (s *server) notifyFailedConnect(now time.Time) { - s.failedConnectAt = now -} - -func (s *server) notifySuccessfulConnect() { - s.failedConnectAt = time.Time{} -} - -func (s *server) hasFailedConnect(now time.Time) bool { - if s.failedConnectAt.IsZero() { - return false - } - return now.Sub(s.failedConnectAt) < rememberFailedConnectDuration -} - -const newConnectionPenalty = uint32(1 << 8) - -// Calculates a penalty value for how this server compares to other servers -// when there is more than one server to choose from. The lower penalty the better choice. -func (s *server) calculatePenalty(now time.Time) uint32 { - penalty := uint32(0) - - // If a connection to the server has failed recently, add a penalty - if s.hasFailedConnect(now) { - penalty = 1 << 31 - } - // The more busy connections, the higher penalty - numBusy := uint32(s.busy.Len()) - if numBusy > 0xff { - numBusy = 0xff - } - penalty |= numBusy << 16 - // If there are no idle connections, add a penalty as the cost of connect would - // add to the transaction time - if s.idle.Len() == 0 { - penalty |= newConnectionPenalty - } - // Use last round-robin value as lowest priority penalty, so when all other is equal we will - // make sure to spread usage among the servers. And yes it will wrap around once in a while - // but since number of busy servers weights higher it will even out pretty fast. - - roundRobin := atomic.LoadUint32(&s.roundRobin) - penalty |= roundRobin & 0xff - return penalty -} - -// Returns a busy connection, makes it idle -func (s *server) returnBusy(ctx context.Context, c db.Connection, close closeFunc) { - s.unregisterBusy(c) - if s.closing { - close(ctx, c) - } else { - s.idle.PushFront(c) - } -} - -// Number of idle connections -func (s *server) numIdle() int { - return s.idle.Len() -} - -// Number of busy connections -func (s *server) numBusy() int { - return s.busy.Len() -} - -// Adds a connection to the busy list -func (s *server) registerBusy(c db.Connection) { - // Update round-robin to indicate when this server was last used. - atomic.StoreUint32(&s.roundRobin, atomic.AddUint32(&sharedRoundRobin, 1)) - s.busy.PushFront(c) -} - -func (s *server) unregisterBusy(c db.Connection) { - for e := s.busy.Front(); e != nil; e = e.Next() { - x := e.Value.(db.Connection) - if x == c { - s.busy.Remove(e) - return - } - } -} - -func (s *server) size() int { - return s.busy.Len() + s.idle.Len() + s.reservations -} - -func (s *server) removeIdleOlderThan(ctx context.Context, now time.Time, maxAge time.Duration, close closeFunc) { - e := s.idle.Front() - for e != nil { - n := e.Next() - c := e.Value.(db.Connection) - - age := now.Sub(c.Birthdate()) - if age >= maxAge { - s.idle.Remove(e) - close(ctx, c) - } - - e = n - } -} - -func (s *server) executeForAllConnections(callback func(c db.Connection)) { - for item := s.busy.Front(); item != nil; item = item.Next() { - callback(item.Value.(db.Connection)) - } - for item := s.idle.Front(); item != nil; item = item.Next() { - callback(item.Value.(db.Connection)) - } -} - -func (s *server) startClosing(ctx context.Context, close closeFunc) { - s.closing = true - s.closeAndEmptyConnections(ctx, &s.idle, close) -} - -func (s *server) closeAndEmptyConnections(ctx context.Context, l *list.List, close closeFunc) { - for e := l.Front(); e != nil; e = e.Next() { - c := e.Value.(db.Connection) - close(ctx, c) - } - l.Init() -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/ssr_tracker.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/ssr_tracker.go deleted file mode 100644 index 0271438..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool/ssr_tracker.go +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 pool - -import ( - "sync/atomic" - - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" -) - -type ssrTracker struct { - ssrEnabledCount uint64 - ssrDisabledCount uint64 -} - -func (s *ssrTracker) addConnection(c idb.Connection) { - if c.IsSsrEnabled() { - atomic.AddUint64(&s.ssrEnabledCount, 1) - } else { - atomic.AddUint64(&s.ssrDisabledCount, 1) - } -} - -func (s *ssrTracker) removeConnection(c idb.Connection) { - if c.IsSsrEnabled() { - atomic.AddUint64(&s.ssrEnabledCount, ^uint64(0)) - } else { - atomic.AddUint64(&s.ssrDisabledCount, ^uint64(0)) - } -} - -func (s *ssrTracker) ssrEnabled() bool { - return atomic.LoadUint64(&s.ssrEnabledCount) > 0 && - atomic.LoadUint64(&s.ssrDisabledCount) == 0 -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/lock.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/lock.go deleted file mode 100644 index 7711a39..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/lock.go +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 racing - -import ( - "context" - "time" -) - -type LockTimeoutError string - -func (l LockTimeoutError) Error() string { - return string(l) -} - -type Mutex interface { - // TryLock attempts to acquire the lock before the deadline set by the provided context - // If the context does not define a deadline, TryLock will block until the lock is acquired - // Returns true if the lock is acquired, false otherwise - TryLock(ctx context.Context) bool - // Unlock frees this lock, if locked - // It is a run-time error if the lock is not locked on entry to Unlock. - Unlock() -} - -type contextLock struct { - ch chan struct{} -} - -func NewMutex() Mutex { - return &contextLock{ch: make(chan struct{}, 1)} -} - -func (c *contextLock) TryLock(ctx context.Context) bool { - deadline, hasDeadline := ctx.Deadline() - err := ctx.Err() - switch { - case !hasDeadline && err == nil: - c.ch <- struct{}{} - return true - case deadline.Before(time.Now()) || err != nil: - return false - } - - select { - case c.ch <- struct{}{}: - return true - case <-ctx.Done(): - return false - } -} - -func (c *contextLock) Unlock() { - select { - case <-c.ch: - return - default: - panic("Lock is not locked") - } - -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/reader.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/reader.go deleted file mode 100644 index 95abf96..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/reader.go +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 racing - -import ( - "context" - "io" - "time" -) - -type RacingReader interface { - Read(ctx context.Context, bytes []byte) (int, error) - ReadFull(ctx context.Context, bytes []byte) (int, error) -} - -func NewRacingReader(reader io.Reader) RacingReader { - return &racingReader{reader: reader} -} - -type racingReader struct { - reader io.Reader -} - -func (rr *racingReader) Read(ctx context.Context, bytes []byte) (int, error) { - return rr.race(ctx, bytes, read) -} - -func (rr *racingReader) ReadFull(ctx context.Context, bytes []byte) (int, error) { - return rr.race(ctx, bytes, readFull) -} - -func (rr *racingReader) race(ctx context.Context, bytes []byte, readFn func(io.Reader, []byte) (int, error)) (int, error) { - deadline, hasDeadline := ctx.Deadline() - err := ctx.Err() - switch { - case !hasDeadline && err == nil: - return readFn(rr.reader, bytes) - case deadline.Before(time.Now()) || err != nil: - return 0, err - } - resultChan := make(chan *ioResult, 1) - go func() { - defer close(resultChan) - n, err := readFn(rr.reader, bytes) - resultChan <- &ioResult{ - n: n, - err: err, - } - }() - select { - case <-ctx.Done(): - return 0, ctx.Err() - case result := <-resultChan: - return result.n, result.err - } -} - -func read(reader io.Reader, bytes []byte) (int, error) { - return reader.Read(bytes) -} - -func readFull(reader io.Reader, bytes []byte) (int, error) { - return io.ReadFull(reader, bytes) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/time.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/time.go deleted file mode 100644 index 5c54631..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/time.go +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 racing - -import ( - "context" - "time" -) - -func Sleep(ctx context.Context, d time.Duration) error { - select { - case <-time.After(d): - return nil - case <-ctx.Done(): - return ctx.Err() - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/writer.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/writer.go deleted file mode 100644 index 0f918c9..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing/writer.go +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 racing - -import ( - "context" - "io" - "time" -) - -type RacingWriter interface { - Write(ctx context.Context, bytes []byte) (int, error) -} - -func NewRacingWriter(writer io.Writer) RacingWriter { - return &racingWriter{writer: writer} -} - -type racingWriter struct { - writer io.Writer -} - -type ioResult struct { - n int - err error -} - -func (rw *racingWriter) Write(ctx context.Context, bytes []byte) (int, error) { - deadline, hasDeadline := ctx.Deadline() - err := ctx.Err() - switch { - case !hasDeadline && err == nil: - return rw.writer.Write(bytes) - case deadline.Before(time.Now()) || err != nil: - return 0, err - } - resultChan := make(chan *ioResult, 1) - go func() { - defer close(resultChan) - n, err := rw.writer.Write(bytes) - resultChan <- &ioResult{ - n: n, - err: err, - } - }() - select { - case <-ctx.Done(): - return 0, ctx.Err() - case result := <-resultChan: - return result.n, result.err - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/state.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/state.go deleted file mode 100644 index 58cbbc6..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/state.go +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 retry handles retry operations. -package retry - -import ( - "context" - "errors" - "fmt" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -type State struct { - Errs []error - MaxTransactionRetryTime time.Duration - Log log.Logger - LogName string - LogId string - Sleep func(context.Context, time.Duration) error - Throttle Throttler - MaxDeadConnections int - DatabaseName string - TelemetrySent bool - - start time.Time - cause string - deadErrors int - skipSleep bool -} - -func (s *State) OnFailure(_ context.Context, err error, conn idb.Connection, isCommitting bool) { - if conn != nil && !conn.IsAlive() { - if isCommitting { - // FIXME: CommitFailedDeadError should be returned even when not using transaction functions - s.Errs = append(s.Errs, &errorutil.CommitFailedDeadError{Inner: err}) - } else { - s.Errs = append(s.Errs, err) - } - s.deadErrors += 1 - s.skipSleep = true - return - } - - s.Errs = append(s.Errs, err) - s.skipSleep = false -} - -func (s *State) Continue(ctx context.Context) bool { - if s.start.IsZero() { - s.start = itime.Now() - } - - select { - case <-ctx.Done(): - s.Errs = append(s.Errs, ctx.Err()) - return false - default: - } - - if len(s.Errs) == 0 { - return true - } - - lastErr := s.Errs[len(s.Errs)-1] - if !IsRetryable(errorutil.WrapError(lastErr)) { - return false - } - - if itime.Since(s.start) > s.MaxTransactionRetryTime { - s.Errs = []error{&errorutil.TransactionExecutionLimit{ - Cause: fmt.Sprintf("timeout (exceeded max retry time: %s)", s.MaxTransactionRetryTime.String()), - Errors: s.Errs, - }} - return false - } - - if s.deadErrors > s.MaxDeadConnections { - s.Errs = []error{&errorutil.TransactionExecutionLimit{ - Cause: fmt.Sprintf("too many failed connection attempts (allowed max %d)", s.MaxDeadConnections), - Errors: s.Errs, - }} - return false - } - - if s.skipSleep { - s.Log.Debugf(s.LogName, s.LogId, "Retrying transaction (%s): %s", s.cause, lastErr) - } else { - s.Throttle = s.Throttle.next() - sleepTime := s.Throttle.delay() - s.Log.Debugf(s.LogName, s.LogId, - "Retrying transaction (%s): %s [after %s]", s.cause, lastErr, sleepTime) - - err := s.Sleep(ctx, sleepTime) - if err != nil { - s.Errs = []error{&errorutil.TransactionExecutionLimit{ - Cause: err.Error(), - Errors: s.Errs, - }} - return false - } - } - return true -} - -func (s *State) ProduceError() error { - lastErr := s.Errs[len(s.Errs)-1] - if limitReachedErr, ok := lastErr.(*errorutil.TransactionExecutionLimit); ok { - return limitReachedErr - } - return errorutil.WrapError(lastErr) -} - -func IsRetryable(err error) bool { - if connectivityErr, ok := err.(*errorutil.ConnectivityError); ok { - if _, ok := connectivityErr.Inner.(*errorutil.CommitFailedDeadError); ok { - return false - } - return true - } - if _, ok := err.(*errorutil.PoolTimeout); ok { - return true - } - var dbError *db.Neo4jError - if !errors.As(err, &dbError) { - return false - } - return dbError.IsRetriable() -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/throttler.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/throttler.go deleted file mode 100644 index a2aadcd..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry/throttler.go +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 retry - -import ( - "math/rand" - "time" -) - -type Throttler time.Duration - -func (t Throttler) next() Throttler { - delay := time.Duration(t) - const delayJitter = 0.2 - jitter := float64(delay) * delayJitter - return Throttler(2*delay - time.Duration(jitter) + time.Duration(2*jitter*rand.Float64())) -} - -func (t Throttler) delay() time.Duration { - return time.Duration(t) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/readtable.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/readtable.go deleted file mode 100644 index 8efa1c1..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/readtable.go +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 router - -import ( - "context" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -// Tries to read routing table from any of the specified routers using new or existing connection -// from the supplied pool. -func readTable( - ctx context.Context, - connectionPool Pool, - routers []string, - routerContext map[string]string, - idlenessTimeout time.Duration, - bookmarks []string, - database, - impersonatedUser string, - auth *db.ReAuthToken, - boltLogger log.BoltLogger, -) (*db.RoutingTable, error) { - // Preserve last error to be returned, set a default for case of no routers - var err error = &errorutil.ReadRoutingTableError{} - - // Try the routers one at the time since some of them might no longer support routing and we - // can't force the pool to not re-use these when putting them back in the pool and retrieving - // another db. - for _, router := range routers { - var conn db.Connection - if conn, err = connectionPool.Borrow(ctx, getStaticServer(router), true, boltLogger, idlenessTimeout, auth); err != nil { - // Check if failed due to context timing out - if ctx.Err() != nil { - return nil, wrapError(router, ctx.Err()) - } - if errorutil.IsFatalDuringDiscovery(err) { - return nil, err - } - err = wrapError(router, err) - continue - } - - // We have a connection to the "router" - var table *db.RoutingTable - table, err = conn.GetRoutingTable(ctx, routerContext, bookmarks, database, impersonatedUser) - connectionPool.Return(ctx, conn) - if err == nil { - return table, nil - } - if errorutil.IsFatalDuringDiscovery(err) { - return nil, err - } - err = wrapError(router, err) - } - return nil, err -} - -func getStaticServer(server string) func() []string { - return func() []string { - return []string{server} - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router.go deleted file mode 100644 index 2a76e86..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router.go +++ /dev/null @@ -1,424 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 router - -import ( - "context" - "errors" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - "sync" - "time" - - itime "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" -) - -const missingWriterRetries = 100 -const missingReaderRetries = 100 - -type databaseRouter struct { - dueUnix int64 - table *idb.RoutingTable -} - -// Router is thread safe -type Router struct { - routerContext map[string]string - pool Pool - idlenessTimeout time.Duration - dbRouters map[string]*databaseRouter - updating map[string][]chan struct{} - dbRoutersMut sync.Mutex - sleep func(time.Duration) - rootRouter string - getRouters func() []string - log log.Logger - logId string -} - -type Pool interface { - // Borrow acquires a connection from the provided list of servers - // If all connections are busy and the pool is full, calls to Borrow may wait for a connection to become idle - // If a connection has been idle for longer than idlenessTimeout, it will be reset - // to check if it's still alive. - Borrow(ctx context.Context, getServers func() []string, wait bool, boltLogger log.BoltLogger, idlenessTimeout time.Duration, auth *idb.ReAuthToken) (idb.Connection, error) - Return(ctx context.Context, c idb.Connection) -} - -func New(rootRouter string, getRouters func() []string, routerContext map[string]string, pool Pool, idlenessTimeout time.Duration, logger log.Logger, logId string) *Router { - r := &Router{ - rootRouter: rootRouter, - getRouters: getRouters, - routerContext: routerContext, - pool: pool, - idlenessTimeout: idlenessTimeout, - dbRouters: make(map[string]*databaseRouter), - updating: make(map[string][]chan struct{}), - dbRoutersMut: sync.Mutex{}, - sleep: time.Sleep, - log: logger, - logId: logId, - } - r.log.Infof(log.Router, r.logId, "Created {context: %v}", routerContext) - return r -} - -func (r *Router) readTable( - ctx context.Context, - dbRouter *databaseRouter, - bookmarks []string, - database, - impersonatedUser string, - auth *idb.ReAuthToken, - boltLogger log.BoltLogger, -) (*idb.RoutingTable, error) { - var ( - table *idb.RoutingTable - err error - ) - - // Try last known set of routers if there are any - if dbRouter != nil && len(dbRouter.table.Routers) > 0 { - routers := dbRouter.table.Routers - r.log.Infof(log.Router, r.logId, "Reading routing table for '%s' from previously known routers: %v", database, routers) - table, err = readTable(ctx, r.pool, routers, r.routerContext, r.idlenessTimeout, bookmarks, database, impersonatedUser, auth, boltLogger) - } - if errorutil.IsFatalDuringDiscovery(err) { - r.log.Error(log.Router, r.logId, err) - return nil, err - } - - // Try initial router if no routers or failed - if table == nil { - r.log.Infof(log.Router, r.logId, "Reading routing table from initial router: %s", r.rootRouter) - table, err = readTable(ctx, r.pool, []string{r.rootRouter}, r.routerContext, r.idlenessTimeout, bookmarks, database, impersonatedUser, auth, boltLogger) - } - if errorutil.IsFatalDuringDiscovery(err) { - r.log.Error(log.Router, r.logId, err) - return nil, err - } - - // Use hook to retrieve possibly different set of routers and retry - if table == nil && r.getRouters != nil { - routers := r.getRouters() - r.log.Infof(log.Router, r.logId, "Reading routing table for '%s' from custom routers: %v", routers) - table, err = readTable(ctx, r.pool, routers, r.routerContext, r.idlenessTimeout, bookmarks, database, impersonatedUser, auth, boltLogger) - } - if errorutil.IsFatalDuringDiscovery(err) { - r.log.Error(log.Router, r.logId, err) - return nil, err - } - - if err != nil { - r.log.Error(log.Router, r.logId, err) - return nil, err - } - - if table == nil { - // Safeguard for logical error somewhere else - err = errors.New("no error and no table") - r.log.Error(log.Router, r.logId, err) - return nil, err - } - return table, nil -} - -func (r *Router) getTable(database string) *idb.RoutingTable { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - - dbRouter := r.dbRouters[database] - return r.getTableLocked(dbRouter) -} - -func (r *Router) getOrUpdateTable( - ctx context.Context, - bookmarksFn func(context.Context) ([]string, error), - dbSelection idb.DatabaseSelection, - auth *idb.ReAuthToken, - boltLogger log.BoltLogger, - onRoutingTableUpdated func(string), -) (*idb.RoutingTable, error) { - r.dbRoutersMut.Lock() - var unlock = new(sync.Once) - defer unlock.Do(r.dbRoutersMut.Unlock) - for { - dbRouter := r.dbRouters[dbSelection.Name] - if table := r.getTableLocked(dbRouter); table != nil { - return table, nil - } - waiters, ok := r.updating[dbSelection.Name] - if ok { - // Wait for the table to be updated by other goroutine - ch := make(chan struct{}) - r.updating[dbSelection.Name] = append(waiters, ch) - unlock.Do(r.dbRoutersMut.Unlock) - select { - case <-ctx.Done(): - return nil, racing.LockTimeoutError("timed out waiting for other goroutine to update routing table") - case <-ch: - r.dbRoutersMut.Lock() - *unlock = sync.Once{} - continue - } - } - // this goroutine will update the table - r.updating[dbSelection.Name] = make([]chan struct{}, 0) - unlock.Do(r.dbRoutersMut.Unlock) - // Use an empty string for updating the routing table if the home database is a guess, - // as we cannot guarantee the guess is correct. - targetDatabase := dbSelection.Name - if dbSelection.IsHomeDbGuess { - targetDatabase = "" - } - table, err := r.updateTable(ctx, bookmarksFn, targetDatabase, auth, boltLogger, dbRouter) - if err == nil && onRoutingTableUpdated != nil { - onRoutingTableUpdated(table.DatabaseName) - } - r.dbRoutersMut.Lock() - *unlock = sync.Once{} - // notify all waiters - for _, waiter := range r.updating[dbSelection.Name] { - close(waiter) - } - delete(r.updating, dbSelection.Name) - return table, err - } -} - -func (r *Router) getTableLocked(dbRouter *databaseRouter) *idb.RoutingTable { - now := itime.Now() - if dbRouter != nil && now.Unix() < dbRouter.dueUnix { - return dbRouter.table - } - return nil -} - -func (r *Router) updateTable(ctx context.Context, bookmarksFn func(context.Context) ([]string, error), database string, auth *idb.ReAuthToken, boltLogger log.BoltLogger, dbRouter *databaseRouter) (*idb.RoutingTable, error) { - bookmarks, err := bookmarksFn(ctx) - if err != nil { - return nil, err - } - table, err := r.readTable(ctx, dbRouter, bookmarks, database, "", auth, boltLogger) - if err != nil { - return nil, err - } - - err = r.storeRoutingTable(ctx, database, table, itime.Now()) - if err != nil { - return nil, err - } - - return table, nil -} - -func (r *Router) GetOrUpdateReaders( - ctx context.Context, - bookmarks func(context.Context) ([]string, error), - dbSelection idb.DatabaseSelection, - auth *idb.ReAuthToken, - boltLogger log.BoltLogger, - onRoutingTableUpdated func(string), -) ([]string, error) { - table, err := r.getOrUpdateTable(ctx, bookmarks, dbSelection, auth, boltLogger, onRoutingTableUpdated) - if err != nil { - return nil, err - } - - // During startup, we can get tables without any readers - retries := missingReaderRetries - for len(table.Readers) == 0 { - retries-- - if retries == 0 { - break - } - r.log.Infof(log.Router, r.logId, "Invalidating routing table, no readers") - r.Invalidate(table.DatabaseName) - r.sleep(100 * time.Millisecond) - table, err = r.getOrUpdateTable(ctx, bookmarks, dbSelection, auth, boltLogger, onRoutingTableUpdated) - if err != nil { - return nil, err - } - } - if len(table.Readers) == 0 { - return nil, wrapError(r.rootRouter, errors.New("no readers")) - } - - return table.Readers, nil -} - -func (r *Router) Readers(database string) []string { - table := r.getTable(database) - if table == nil { - return nil - } - return table.Readers -} - -func (r *Router) GetOrUpdateWriters( - ctx context.Context, - bookmarks func(context.Context) ([]string, error), - dbSelection idb.DatabaseSelection, - auth *idb.ReAuthToken, - boltLogger log.BoltLogger, - onRoutingTableUpdated func(string), -) ([]string, error) { - table, err := r.getOrUpdateTable(ctx, bookmarks, dbSelection, auth, boltLogger, onRoutingTableUpdated) - if err != nil { - return nil, err - } - - // During election, we can get tables without any writers - retries := missingWriterRetries - for len(table.Writers) == 0 { - retries-- - if retries == 0 { - break - } - r.log.Infof(log.Router, r.logId, "Invalidating routing table, no writers") - r.Invalidate(dbSelection.Name) - r.sleep(100 * time.Millisecond) - table, err = r.getOrUpdateTable(ctx, bookmarks, dbSelection, auth, boltLogger, onRoutingTableUpdated) - if err != nil { - return nil, err - } - } - if len(table.Writers) == 0 { - return nil, wrapError(r.rootRouter, errors.New("no writers")) - } - - return table.Writers, nil -} - -func (r *Router) Writers(database string) []string { - table := r.getTable(database) - if table == nil { - return nil - } - return table.Writers -} - -func (r *Router) GetNameOfDefaultDatabase(ctx context.Context, bookmarks []string, user string, auth *idb.ReAuthToken, boltLogger log.BoltLogger) (string, error) { - table, err := r.readTable(ctx, nil, bookmarks, idb.DefaultDatabase, user, auth, boltLogger) - if err != nil { - return "", err - } - // Store the fresh routing table as well to avoid another roundtrip to receive servers from session. - now := itime.Now() - err = r.storeRoutingTable(ctx, table.DatabaseName, table, now) - if err != nil { - return "", err - } - return table.DatabaseName, err -} - -func (r *Router) Context() map[string]string { - return r.routerContext -} - -func (r *Router) Invalidate(database string) { - r.log.Infof(log.Router, r.logId, "Invalidating routing table for '%s'", database) - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - // Reset due time to the 70s, this will make next access refresh the routing table using - // last set of routers instead of the original one. - dbRouter := r.dbRouters[database] - if dbRouter != nil { - dbRouter.dueUnix = 0 - } -} - -func (r *Router) InvalidateWriter(db string, server string) { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - - router := r.dbRouters[db] - if router == nil { - return - } - router.table.Writers = removeServerFromList(router.table.Writers, server) -} - -func (r *Router) InvalidateReader(db string, server string) { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - - router := r.dbRouters[db] - if router == nil { - return - } - router.table.Readers = removeServerFromList(router.table.Readers, server) -} - -func (r *Router) InvalidateServer(server string) { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - for _, routing := range r.dbRouters { - routing.table.Routers = removeServerFromList(routing.table.Routers, server) - routing.table.Readers = removeServerFromList(routing.table.Readers, server) - routing.table.Writers = removeServerFromList(routing.table.Writers, server) - } -} - -func removeServerFromList(list []string, server string) []string { - for i, s := range list { - if s == server { - return append(list[0:i], list[i+1:]...) - } - } - return list -} - -func (r *Router) CleanUp() { - r.log.Debugf(log.Router, r.logId, "Cleaning up") - now := itime.Now().Unix() - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - - for dbName, dbRouter := range r.dbRouters { - if now > dbRouter.dueUnix { - delete(r.dbRouters, dbName) - } - } -} - -func (r *Router) storeRoutingTable(_ context.Context, database string, table *idb.RoutingTable, now time.Time) error { - r.dbRoutersMut.Lock() - defer r.dbRoutersMut.Unlock() - if database == "" { - database = table.DatabaseName - } - r.dbRouters[database] = &databaseRouter{ - table: table, - dueUnix: now.Add(time.Duration(table.TimeToLive) * time.Second).Unix(), - } - r.log.Debugf(log.Router, r.logId, "New routing table for '%s', TTL %d", database, table.TimeToLive) - return nil -} - -func wrapError(server string, err error) error { - // Preserve error originating from the database, wrap other errors - _, isNeo4jErr := err.(*db.Neo4jError) - if isNeo4jErr { - return err - } - return &errorutil.ReadRoutingTableError{Server: server, Err: err} -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router_testkit.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router_testkit.go deleted file mode 100644 index fcef3a2..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router/router_testkit.go +++ /dev/null @@ -1,26 +0,0 @@ -//go:build internal_neo4j_go_driver_testkit - -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 router - -import idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - -func (r *Router) GetTable(database string) *idb.RoutingTable { - return r.getTable(database) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry/telemetry.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry/telemetry.go deleted file mode 100644 index 8a8ef0b..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry/telemetry.go +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 telemetry - -type API int - -const ( - ManagedTransaction API = 0 - UnmanagedTransaction API = 1 - AutoCommitTransaction API = 2 - ExecuteQuery API = 3 -) - -func (a API) AsInt() int { - return int(a) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time.go deleted file mode 100644 index aaae33e..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time.go +++ /dev/null @@ -1,25 +0,0 @@ -//go:build !internal_neo4j_go_driver_time_mock - -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 time - -import "time" - -var Now = time.Now -var Since = time.Since diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time_mockable.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time_mockable.go deleted file mode 100644 index 3867543..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time/time_mockable.go +++ /dev/null @@ -1,130 +0,0 @@ -//go:build internal_neo4j_go_driver_time_mock - -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 time - -import ( - "errors" - "sync" - "time" -) - -type Ticker = func(*time.Time) - -var frozenNow *time.Time = nil -var tickerRegistry []Ticker = nil -var frozenNowMutex = &sync.Mutex{} - -func now() time.Time { - if frozenNow == nil { - return time.Now() - } - for _, ticker := range tickerRegistry { - ticker(frozenNow) - } - return *frozenNow -} - -func Now() time.Time { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - return now() -} - -func Since(t time.Time) time.Duration { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow == nil { - return time.Since(t) - } - return frozenNow.Sub(t) -} - -func FreezeTime() error { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow != nil { - return errors.New("time already frozen") - } - now := now() - frozenNow = &now - return nil -} - -func ForceFreezeTime() { - if err := FreezeTime(); err != nil { - panic(err) - } -} - -func TickTime(d time.Duration) error { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow == nil { - return errors.New("time not frozen") - } - newNow := frozenNow.Add(d) - frozenNow = &newNow - return nil -} - -func ForceTickTime(d time.Duration) { - if err := TickTime(d); err != nil { - panic(err) - } -} - -func AddTicker(ticker Ticker) error { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow == nil { - return errors.New("time not frozen") - } - tickerRegistry = append(tickerRegistry, ticker) - return nil -} - -func ForceAddTicker(ticker Ticker) { - if err := AddTicker(ticker); err != nil { - panic(err) - } -} - -func UnfreezeTime() error { - frozenNowMutex.Lock() - defer frozenNowMutex.Unlock() - - if frozenNow == nil { - return errors.New("time not frozen") - } - frozenNow = nil - tickerRegistry = nil - return nil -} - -func ForceUnfreezeTime() { - if err := UnfreezeTime(); err != nil { - panic(err) - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/bolt_logger.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/bolt_logger.go deleted file mode 100644 index 343b878..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/bolt_logger.go +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log - -import ( - "fmt" - "os" - "time" -) - -type BoltLogger interface { - LogClientMessage(context string, msg string, args ...any) - LogServerMessage(context string, msg string, args ...any) -} - -type consoleBoltLogger struct { -} - -func (cbl *consoleBoltLogger) LogClientMessage(id, msg string, args ...any) { - cbl.logBoltMessage("C", id, msg, args) -} - -func (cbl *consoleBoltLogger) LogServerMessage(id, msg string, args ...any) { - cbl.logBoltMessage("S", id, msg, args) -} - -func (cbl *consoleBoltLogger) logBoltMessage(src, id string, msg string, args []any) { - _, _ = fmt.Fprintf(os.Stdout, "%s BOLT %s%s: %s\n", time.Now().Format(timeFormat), formatId(id), src, fmt.Sprintf(msg, args...)) -} - -func formatId(id string) string { - if id == "" { - return "" - } - return fmt.Sprintf("[%s] ", id) -} - -// Deprecated: use log.BoltToConsole() instead. -type ConsoleBoltLogger = consoleBoltLogger - -// BoltToConsole returns a BoltLogger implementation that writes to stdout. -func BoltToConsole() BoltLogger { - return &consoleBoltLogger{} -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/console.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/console.go deleted file mode 100644 index 229eb16..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/console.go +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log - -import ( - "fmt" - "os" - "time" -) - -type console struct { - Errors bool - Infos bool - Warns bool - Debugs bool -} - -const timeFormat = "2006-01-02 15:04:05.000" - -func (l *console) Error(name, id string, err error) { - if !l.Errors { - return - } - now := time.Now() - fmt.Fprintf(os.Stderr, "%s ERROR [%s %s] %s\n", now.Format(timeFormat), name, id, err.Error()) -} - -func (l *console) Infof(name, id string, msg string, args ...any) { - if !l.Infos { - return - } - now := time.Now() - fmt.Fprintf(os.Stdout, "%s INFO [%s %s] %s\n", now.Format(timeFormat), name, id, fmt.Sprintf(msg, args...)) -} - -func (l *console) Warnf(name, id string, msg string, args ...any) { - if !l.Warns { - return - } - now := time.Now() - fmt.Fprintf(os.Stdout, "%s WARN [%s %s] %s\n", now.Format(timeFormat), name, id, fmt.Sprintf(msg, args...)) -} - -func (l *console) Debugf(name, id string, msg string, args ...any) { - if !l.Debugs { - return - } - now := time.Now() - fmt.Fprintf(os.Stdout, "%s DEBUG [%s %s] %s\n", now.Format(timeFormat), name, id, fmt.Sprintf(msg, args...)) -} - -// Console is a simple logger that logs to stdout/console. -// Turn the different log levels on/off as wished, all are off by default. -// -// Deprecated: use log.ToConsole() instead. -type Console = console - -// ToConsole returns a simple logger that logs to stdout/console. -// -// level is the minimum log level that will be logged. -func ToConsole(level Level) Logger { - return &console{ - Errors: level >= ERROR, - Warns: level >= WARNING, - Infos: level >= INFO, - Debugs: level >= DEBUG, - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/level.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/level.go deleted file mode 100644 index d14298b..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/level.go +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log - -// Level is the type that default logging implementations use for available -// log levels -type Level int - -const ( - // ERROR is the level that error messages are written - ERROR Level = 1 - // WARNING is the level that warning messages are written - WARNING = 2 - // INFO is the level that info messages are written - INFO = 3 - // DEBUG is the level that debug messages are written - DEBUG = 4 -) diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/logger.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/logger.go deleted file mode 100644 index 448ce33..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/logger.go +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log defines the logging interface used internally by the driver and -// provides default logging implementations. -package log - -import ( - "strconv" - "sync/atomic" -) - -// Logger is used throughout the driver for logging purposes. -// Driver client can implement this interface and provide an implementation -// upon driver creation. -// -// All logging functions takes a name and id that corresponds to the name of -// the logging component and it's identity, for example "router" and "1" to -// indicate who is logging and what instance. -// -// Database connections takes to form of "bolt3" and "bolt-123@192.168.0.1:7687" -// where "bolt3" is the name of the protocol handler in use, "bolt-123" is the -// databases identity of the connection on server "192.168.0.1:7687". -type Logger interface { - // Error is called whenever the driver encounters an error that might - // or might not cause a retry operation which means that all logged - // errors are not critical. Type of err might or might not be a publicly - // exported type. The same root cause of an error might be reported - // more than once by different components using same or different err types. - Error(name string, id string, err error) - Warnf(name string, id string, msg string, args ...any) - Infof(name string, id string, msg string, args ...any) - Debugf(name string, id string, msg string, args ...any) -} - -// List of component names used as parameter to logger functions. -const ( - Bolt3 = "bolt3" - Bolt4 = "bolt4" - Bolt5 = "bolt5" - Driver = "driver" - Pool = "pool" - Router = "router" - Session = "session" -) - -// Last used component id -var id uint32 - -// NewId generates a new id atomically. -func NewId() string { - return strconv.FormatUint(uint64(atomic.AddUint32(&id, 1)), 10) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/void.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/void.go deleted file mode 100644 index 6b73446..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/log/void.go +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 log - -// Logger implementation that throws away all log events. -type void struct{} - -func (l void) Error(name, id string, err error) { -} - -func (l void) Infof(name, id, msg string, args ...any) { -} - -func (l void) Warnf(name, id, msg string, args ...any) { -} - -func (l void) Debugf(name, id, msg string, args ...any) { -} - -// Void is a Logger implementation that throws away all log events. -// -// Deprecated: use log.ToVoid() instead. -type Void = void - -// ToVoid returns a Logger implementation that throws away all log events. -func ToVoid() Logger { - return void{} -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications/notifications.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications/notifications.go deleted file mode 100644 index c1ef401..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications/notifications.go +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 notifications - -type NotificationCategory string - -// NotificationClassification is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type NotificationClassification = NotificationCategory - -const ( - Hint NotificationCategory = "HINT" - Unrecognized NotificationCategory = "UNRECOGNIZED" - Unsupported NotificationCategory = "UNSUPPORTED" - Performance NotificationCategory = "PERFORMANCE" - Deprecation NotificationCategory = "DEPRECATION" - Generic NotificationCategory = "GENERIC" - // Security requires server version 5.14 or newer. - Security NotificationCategory = "SECURITY" - // Topology requires server version 5.14 or newer. - Topology NotificationCategory = "TOPOLOGY" - // Schema requires server version 5.17 or newer. - Schema NotificationCategory = "SCHEMA" - Unknown NotificationCategory = "UNKNOWN" -) - -type NotificationSeverity string - -const ( - Warning NotificationSeverity = "WARNING" - Information NotificationSeverity = "INFORMATION" - UnknownSeverity NotificationSeverity = "UNKNOWN" -) - -// NotificationMinimumSeverityLevel defines the minimum severity level of notifications the server should send. -// Can be used for NotificationsMinSeverity of config.Config and config.SessionConfig. -type NotificationMinimumSeverityLevel string - -const ( - DefaultLevel NotificationMinimumSeverityLevel = "" - DisabledLevel NotificationMinimumSeverityLevel = "OFF" - WarningLevel NotificationMinimumSeverityLevel = "WARNING" - InformationLevel NotificationMinimumSeverityLevel = "INFORMATION" -) - -type NotificationDisabledCategories struct { - categories []NotificationCategory - none bool -} - -// NotificationDisabledClassifications is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type NotificationDisabledClassifications struct { - classifications []NotificationClassification - none bool -} - -// DisableCategories creates a NotificationDisabledCategories that disables the given categories. -// Can be used for NotificationsDisabledCategories of config.Config and config.SessionConfig. -func DisableCategories(value ...NotificationCategory) NotificationDisabledCategories { - return NotificationDisabledCategories{value, false} -} - -// DisableClassifications creates a NotificationDisabledClassifications that disables the given classifications. -// Can be used for NotificationsDisabledClassifications of config.Config and config.SessionConfig. -// -// DisableClassifications is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -func DisableClassifications(value ...NotificationClassification) NotificationDisabledClassifications { - return NotificationDisabledClassifications{value, false} -} - -// DisableNoCategories creates a NotificationDisabledCategories that enables all categories. -// Can be used for NotificationsDisabledCategories of neo4j.Config and neo4j.SessionConfig. -func DisableNoCategories() NotificationDisabledCategories { - return NotificationDisabledCategories{nil, true} -} - -// DisableNoClassifications creates a NotificationDisabledClassifications that enables all classifications. -// Can be used for NotificationsDisabledClassifications of neo4j.Config and neo4j.SessionConfig. -// -// DisableNoClassifications is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -func DisableNoClassifications() NotificationDisabledClassifications { - return NotificationDisabledClassifications{nil, true} -} - -// DisablesNone returns true if all categories are enabled. -func (n *NotificationDisabledCategories) DisablesNone() bool { - return n.none -} - -// DisablesNone returns true if all classifications are enabled. -// -// DisablesNone is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -func (n *NotificationDisabledClassifications) DisablesNone() bool { - return n.none -} - -// DisabledCategories returns the categories that are disabled. -func (n *NotificationDisabledCategories) DisabledCategories() []NotificationCategory { - return n.categories -} - -// DisabledClassifications returns the classifications that are disabled. -// -// DisabledClassifications is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -func (n *NotificationDisabledClassifications) DisabledClassifications() []NotificationClassification { - return n.classifications -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/record.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/record.go deleted file mode 100644 index 2cf7f90..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/record.go +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "fmt" - "time" -) - -type RecordValue interface { - bool | int64 | float64 | string | - Point2D | Point3D | - Date | LocalTime | LocalDateTime | Time | Duration | time.Time | /* OffsetTime == Time == dbtype.Time */ - []byte | []any | map[string]any | - Node | Relationship | Path -} - -// GetRecordValue returns the value of the current provided record named by the specified key -// The value type T must adhere to neo4j.RecordValue -// If the key specified for the value does not exist, an error is returned -// If the value is not defined for the provided existing key, the returned boolean is true -// If the value type does not match the type specification, an error is returned -// -// Take this simple graph made of three nodes: `(:Person {name: "Arya"})`, `(:Person {name: ""})`, `(:Person)` -// and the query: `MATCH (p:Person) RETURN p.name AS name`. -// The following code illustrates when an error is returned vs. when the nil flag is set to true: -// -// // the above query has been executed, `result` holds the cursor over the person nodes -// for result.Next() { -// record := result.Record() -// name, isNil, err := neo4j.GetRecordValue[string](record, "name") -// // for the person with the non-blank name, name == "Arya", isNil == false, err == nil -// // for the person with the blank name, name == "", isNil == false, err == nil -// // for the node without name, name == "", isNil == true, err == nil -// -// _, _, err := neo4j.GetRecordValue[string](record, "invalid-key") -// // this results in an error, since "invalid-key" is not part of the query result keys -// } -func GetRecordValue[T RecordValue](record *Record, key string) (T, bool, error) { - rawValue, found := record.Get(key) - if !found { - return *new(T), false, fmt.Errorf("record value %s not found", key) - } - if rawValue == nil { - return *new(T), true, nil - } - value, ok := rawValue.(T) - if !ok { - zeroValue := *new(T) - return zeroValue, false, fmt.Errorf("expected value to have type %T but found type %T", zeroValue, rawValue) - } - return value, false, nil -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result.go deleted file mode 100644 index b728451..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result.go +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" -) - -// Result is created via the Session type. -// -// Deprecated: use ResultWithContext instead. -type Result interface { - // Keys returns the keys available on the result set. - Keys() ([]string, error) - // Next returns true only if there is a record to be processed. - Next() bool - // NextRecord returns true if there is a record to be processed, record parameter is set - // to point to current record. - NextRecord(record **Record) bool - // PeekRecord returns true if there is a record after the current one to be processed without advancing the record - // stream, record parameter is set to point to that record if present. - PeekRecord(record **Record) bool - // Err returns the latest error that caused this Next to return false. - Err() error - // Record returns the current record. - Record() *Record - // Collect fetches all remaining records and returns them. - Collect() ([]*Record, error) - // Single returns one and only one record from the stream. - // If the result stream contains zero or more than one records, error is returned. - Single() (*Record, error) - // Consume discards all remaining records and returns the summary information - // about the statement execution. - Consume() (ResultSummary, error) -} - -// deprecated: use resultWithContext instead -type result struct { - delegate ResultWithContext -} - -func (r *result) Keys() ([]string, error) { - return r.delegate.Keys() -} - -func (r *result) Next() bool { - return r.delegate.Next(context.Background()) -} - -func (r *result) NextRecord(out **Record) bool { - return r.delegate.NextRecord(context.Background(), out) -} - -func (r *result) PeekRecord(out **Record) bool { - return r.delegate.PeekRecord(context.Background(), out) -} - -func (r *result) Record() *Record { - return r.delegate.Record() -} - -func (r *result) Err() error { - return r.delegate.Err() -} - -func (r *result) Collect() ([]*Record, error) { - return r.delegate.Collect(context.Background()) -} - -func (r *result) Single() (*Record, error) { - return r.delegate.Single(context.Background()) -} - -func (r *result) Consume() (ResultSummary, error) { - return r.delegate.Consume(context.Background()) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_helpers.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_helpers.go deleted file mode 100644 index 598fbcf..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_helpers.go +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "fmt" -) - -// SingleTWithContext maps the single record left to an instance of T with the provided mapper function. -// It relies on ResultWithContext.Single and propagate its error, if any. -// It accepts a context.Context, which may be canceled or carry a deadline, to control the overall record fetching -// execution time. -func SingleTWithContext[T any](ctx context.Context, result ResultWithContext, mapper func(*Record) (T, error)) (T, error) { - single, err := result.Single(ctx) - if err != nil { - return *new(T), err - } - return mapper(single) -} - -// SingleT maps the single record left to an instance of T with the provided mapper function. -// It relies on Result.Single and propagate its error, if any. -// -// Deprecated: use SingleTWithContext instead (the entry point of context-aware -// APIs is NewDriverWithContext) -func SingleT[T any](result Result, mapper func(*Record) (T, error)) (T, error) { - single, err := result.Single() - if err != nil { - return *new(T), err - } - return mapper(single) -} - -// SingleWithContext returns one and only one record from the result stream. Any error passed in -// or reported while navigating the result stream is returned without any conversion. -// If the result stream contains zero or more than one records error is returned. -// -// result, err := session.Run(...) -// record, err := neo4j.SingleWithContext(ctx, result, err) -// -// It accepts a context.Context, which may be canceled or carry a deadline, to control the overall record fetching -// execution time. -func SingleWithContext(ctx context.Context, result ResultWithContext, err error) (*Record, error) { - if err != nil { - return nil, err - } - return result.Single(ctx) -} - -// Single returns one and only one record from the result stream. Any error passed in -// or reported while navigating the result stream is returned without any conversion. -// If the result stream contains zero or more than one records error is returned. -// -// record, err := neo4j.Single(session.Run(...)) -// -// Deprecated: use SingleWithContext instead (the entry point of context-aware -// APIs is NewDriverWithContext) -func Single(result Result, err error) (*Record, error) { - if err != nil { - return nil, err - } - return result.Single() -} - -// CollectTWithContext maps the records to a slice of T with the provided mapper function. -// It relies on ResultWithContext.Collect and propagate its error, if any. -// It accepts a context.Context, which may be canceled or carry a deadline, to control the overall record fetching -// execution time. -func CollectTWithContext[T any](ctx context.Context, result ResultWithContext, mapper func(*Record) (T, error)) ([]T, error) { - records, err := result.Collect(ctx) - if err != nil { - return nil, err - } - return mapAll(records, mapper) -} - -// CollectT maps the records to a slice of T with the provided mapper function. -// It relies on Result.Collect and propagate its error, if any. -// -// Deprecated: use CollectTWithContext instead (the entry point of context-aware -// APIs is NewDriverWithContext) -func CollectT[T any](result Result, mapper func(*Record) (T, error)) ([]T, error) { - records, err := result.Collect() - if err != nil { - return nil, err - } - return mapAll(records, mapper) -} - -// CollectWithContext aggregates the records into a slice. -// It relies on ResultWithContext.Collect and propagate its error, if any. -// -// result, err := session.Run(...) -// records, err := neo4j.CollectWithContext(ctx, result, err) -// -// It accepts a context.Context, which may be canceled or carry a deadline, to control the overall record fetching -// execution time. -func CollectWithContext(ctx context.Context, result ResultWithContext, err error) ([]*Record, error) { - if err != nil { - return nil, err - } - return result.Collect(ctx) -} - -// Collect aggregates the records into a slice. -// It relies on Result.Collect and propagate its error, if any. -// -// records, err := neo4j.Collect(session.Run(...)) -// -// Deprecated: use CollectWithContext instead (the entry point of context-aware -// APIs is NewDriverWithContext) -func Collect(result Result, err error) ([]*Record, error) { - if err != nil { - return nil, err - } - return result.Collect() -} - -// AsRecords passes any existing error or casts from to a slice of records. -// Use in combination with Collect and transactional functions: -// -// records, err := neo4j.AsRecords(session.ExecuteRead(func (tx neo4j.Transaction) { -// return neo4j.Collect(tx.Run(...)) -// })) -func AsRecords(from any, err error) ([]*Record, error) { - if err != nil { - return nil, err - } - recs, ok := from.([]*Record) - if !ok { - return nil, &UsageError{ - Message: fmt.Sprintf("Expected type []*Record, not %T", from), - } - } - return recs, nil -} - -// AsRecord passes any existing error or casts from to a record. -// Use in combination with Single and transactional functions: -// -// record, err := neo4j.AsRecord(session.ExecuteRead(func (tx neo4j.Transaction) { -// return neo4j.Single(tx.Run(...)) -// })) -func AsRecord(from any, err error) (*Record, error) { - if err != nil { - return nil, err - } - rec, ok := from.(*Record) - if !ok { - return nil, &UsageError{ - Message: fmt.Sprintf("Expected type *Record, not %T", from), - } - } - return rec, nil -} - -func mapAll[T any](records []*Record, mapper func(*Record) (T, error)) ([]T, error) { - results := make([]T, len(records)) - for i, record := range records { - mappedRecord, err := mapper(record) - if err != nil { - return nil, err - } - results[i] = mappedRecord - } - return results, nil -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_with_context.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_with_context.go deleted file mode 100644 index b689dde..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/result_with_context.go +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" -) - -type ResultWithContext interface { - // Keys returns the keys available on the result set. - Keys() ([]string, error) - // NextRecord returns true if there is a record to be processed, record parameter is set - // to point to current record. - NextRecord(ctx context.Context, record **Record) bool - // Next returns true only if there is a record to be processed. - Next(ctx context.Context) bool - // PeekRecord returns true if there is a record after the current one to be processed without advancing the record - // stream, record parameter is set to point to that record if present. - PeekRecord(ctx context.Context, record **Record) bool - // Peek returns true only if there is a record after the current one to be processed without advancing the record - // stream - Peek(ctx context.Context) bool - // Err returns the latest error that caused this Next to return false. - Err() error - // Record returns the current record. - Record() *Record - // Collect fetches all remaining records and returns them. - Collect(ctx context.Context) ([]*Record, error) - // Records returns a single-use iterator over the records in this result. - // This method's signature is in the style of and compatible with iter.Seq2 (go 1.23.0 and newer). - Records(ctx context.Context) func(yield func(*Record, error) bool) - // Single returns the only remaining record from the stream. - // If none or more than one record is left, an error is returned. - // The result is fully consumed after this call and its summary is immediately available when calling Consume. - Single(ctx context.Context) (*Record, error) - // Consume discards all remaining records and returns the summary information - // about the statement execution. - Consume(ctx context.Context) (ResultSummary, error) - // IsOpen determines whether this result cursor is available - IsOpen() bool - buffer(ctx context.Context) - legacy() Result - errorHandler(err error) -} - -const consumedResultError = "result cursor is not available anymore" - -const resultFailedError = "result failed due to invalid transaction" - -type resultWithContext struct { - conn idb.Connection - streamHandle idb.StreamHandle - cypher string - params map[string]any - record *Record - summary *db.Summary - err error - peekedRecord *Record - peekedSummary *db.Summary - peeked bool - txState *transactionState - afterConsumptionHook func() -} - -func newResultWithContext( - connection idb.Connection, - stream idb.StreamHandle, - cypher string, - params map[string]any, - txState *transactionState, - afterConsumptionHook func(), -) ResultWithContext { - return &resultWithContext{ - conn: connection, - streamHandle: stream, - cypher: cypher, - params: params, - txState: txState, - afterConsumptionHook: afterConsumptionHook, - } -} - -func (r *resultWithContext) Keys() ([]string, error) { - return r.conn.Keys(r.streamHandle) -} - -func (r *resultWithContext) NextRecord(ctx context.Context, out **Record) bool { - hasNext := r.Next(ctx) - if out != nil { - *out = r.record - } - return hasNext -} - -func (r *resultWithContext) Next(ctx context.Context) bool { - r.checkOpen() - if r.err != nil { - return false - } - r.advance(ctx) - if r.summary != nil { - r.callAfterConsumptionHook() - } - return r.record != nil -} - -func (r *resultWithContext) PeekRecord(ctx context.Context, out **Record) bool { - hasNext := r.Peek(ctx) - if out != nil { - *out = r.peekedRecord - } - return hasNext -} - -func (r *resultWithContext) Peek(ctx context.Context) bool { - r.checkOpen() - if r.err != nil { - return false - } - r.peek(ctx) - return r.peekedRecord != nil -} - -func (r *resultWithContext) Err() error { - return errorutil.WrapError(r.err) -} - -func (r *resultWithContext) Record() *Record { - if r.peekedRecord != nil { - return r.peekedRecord - } - return r.record -} - -func (r *resultWithContext) Records(ctx context.Context) func(yield func(*Record, error) bool) { - return func(yield func(*db.Record, error) bool) { - for { - r.checkOpen() - if r.err != nil { - break - } - r.advance(ctx) - if r.record == nil || r.err != nil || r.summary != nil { - break - } - if !yield(r.record, nil) { - return - } - } - if r.err != nil { - yield(nil, errorutil.WrapError(r.err)) - } - if r.summary != nil { - r.callAfterConsumptionHook() - } - } -} - -func (r *resultWithContext) Collect(ctx context.Context) ([]*Record, error) { - if r.err != nil { - return nil, errorutil.WrapError(r.err) - } - if r.summary != nil { - return []*Record{}, nil - } - recs := make([]*Record, 0, 1024) - var err error - r.Records(ctx)(func(r *Record, innerErr error) bool { - if innerErr != nil { - err = innerErr - return false - } - - recs = append(recs, r) - return true - }) - if err != nil { - return nil, err - } - return recs, nil -} - -func (r *resultWithContext) Single(ctx context.Context) (*Record, error) { - // Try retrieving the single record - r.advance(ctx) - if r.err != nil { - return nil, errorutil.WrapError(r.err) - } - if r.summary != nil { - r.err = &UsageError{Message: "Result contains no more records"} - return nil, r.err - } - - // This is the potential single record - single := r.record - - // Probe connection for more records - r.advance(ctx) - if r.record != nil { - // There were more records, consume the stream since the user didn't - // expect more records and should therefore not use them. - r.summary, _ = r.conn.Consume(ctx, r.streamHandle) - r.err = &UsageError{Message: "Result contains more than one record"} - r.record = nil - return nil, r.err - } - if r.err != nil { - // Might be more records or not, anyway something is bad. - // Both r.record and r.summary are nil at this point which is good. - return nil, errorutil.WrapError(r.err) - } - // We got the expected summary - // r.record contains the single record and r.summary the summary. - r.record = single - r.callAfterConsumptionHook() - return single, nil -} - -func (r *resultWithContext) Consume(ctx context.Context) (ResultSummary, error) { - // Already failed, reuse the internal error, might have been - // set by Single to indicate some kind of usage error that "destroyed" - // the result. - if r.err != nil { - return nil, errorutil.WrapError(r.err) - } - - r.record = nil - r.summary, r.err = r.conn.Consume(ctx, r.streamHandle) - if r.err != nil { - return nil, errorutil.WrapError(r.err) - } - r.callAfterConsumptionHook() - return r.toResultSummary(), nil -} - -func (r *resultWithContext) IsOpen() bool { - return r.isOpen() -} - -func (r *resultWithContext) legacy() Result { - return &result{delegate: r} -} - -func (r *resultWithContext) buffer(ctx context.Context) { - if r.err = r.conn.Buffer(ctx, r.streamHandle); r.err == nil { - r.callAfterConsumptionHook() - } -} - -func (r *resultWithContext) toResultSummary() ResultSummary { - return &resultSummary{ - sum: r.summary, - cypher: r.cypher, - params: r.params, - } -} - -func (r *resultWithContext) advance(ctx context.Context) { - if r.peeked { - r.record, r.peekedRecord = r.peekedRecord, nil - r.summary, r.peekedSummary = r.peekedSummary, nil - r.peeked = false - } else { - r.record, r.summary, r.err = r.conn.Next(ctx, r.streamHandle) - if r.err != nil { - r.txState.onError(r.err) - } - } -} - -func (r *resultWithContext) peek(ctx context.Context) { - if !r.peeked { - r.peekedRecord, r.peekedSummary, r.err = r.conn.Next(ctx, r.streamHandle) - r.peeked = true - } -} - -func (r *resultWithContext) checkOpen() { - alreadyChecked := r.err != nil && r.err.Error() == consumedResultError - if !alreadyChecked && !r.isOpen() { - r.err = &UsageError{Message: consumedResultError} - } -} - -func (r *resultWithContext) isOpen() bool { - return r.summary == nil -} - -func (r *resultWithContext) callAfterConsumptionHook() { - if r.afterConsumptionHook == nil { - return - } - r.afterConsumptionHook() - r.afterConsumptionHook = nil -} - -func (r *resultWithContext) errorHandler(error) { - if r.err == nil { - r.err = &UsageError{Message: resultFailedError} - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/resultsummary.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/resultsummary.go deleted file mode 100644 index 1a89dab..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/resultsummary.go +++ /dev/null @@ -1,832 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - inotifications "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" - "math" - "sort" - "time" -) - -// StatementType defines the type of the statement -type StatementType int - -const ( - // StatementTypeUnknown identifies an unknown statement type - StatementTypeUnknown StatementType = 0 - // StatementTypeReadOnly identifies a read-only statement - StatementTypeReadOnly StatementType = 1 - // StatementTypeReadWrite identifies a read-write statement - StatementTypeReadWrite StatementType = 2 - // StatementTypeWriteOnly identifies a write-only statement - StatementTypeWriteOnly StatementType = 3 - // StatementTypeSchemaWrite identifies a schema-write statement - StatementTypeSchemaWrite StatementType = 4 -) - -func (st StatementType) String() string { - switch st { - case StatementTypeReadOnly: - return "r" - case StatementTypeReadWrite: - return "rw" - case StatementTypeWriteOnly: - return "w" - case StatementTypeSchemaWrite: - return "s" - default: - return "" - } -} - -type ResultSummary interface { - // Server returns basic information about the server where the statement is carried out. - Server() ServerInfo - // Query returns the query that has been executed. - Query() Query - // StatementType returns type of statement that has been executed. - StatementType() StatementType - // Counters returns statistics counts for the statement. - Counters() Counters - // Plan returns statement plan for the executed statement if available, otherwise null. - Plan() Plan - // Profile returns profiled statement plan for the executed statement if available, otherwise null. - Profile() ProfiledPlan - // Notifications returns a slice of notifications produced while executing the statement. - // The list will be empty if no notifications produced while executing the statement. - Notifications() []Notification - // GqlStatusObjects returns a slice of GqlStatusObjects that arose when executing the query. - // - // The slice always contains at least 1 status representing the Success, No Data, or Omitted Result. - // All other statuses are notifications such as warnings about problematic queries or other valuable - // information that can be presented to a client. - // - // The GqlStatusObjects will be presented in the following order: - // - A "no data" (``02xxx``) has precedence over a warning. - // - A "warning" (``01xxx``) has precedence over a success. - // - A "success" (``00xxx``) has precedence over anything informational (``03xxx``). - // - // GqlStatusObjects is part of the GQL compliant notifications preview feature - // (see README on what it means in terms of support and compatibility guarantees) - GqlStatusObjects() []GqlStatusObject - // ResultAvailableAfter returns the time it took for the server to make the result available for consumption. - // Since 5.0, this returns a negative duration if the server has not sent the corresponding statistic. - ResultAvailableAfter() time.Duration - // ResultConsumedAfter returns the time it took the server to consume the result. - // Since 5.0, this returns a negative duration if the server has not sent the corresponding statistic. - ResultConsumedAfter() time.Duration - // Database returns information about the database where the result is obtained from - // Returns nil for Neo4j versions prior to v4. - // Returns the default "neo4j" database for Community Edition servers. - Database() DatabaseInfo -} - -// Counters contains statistics about the changes made to the database made as part -// of the statement execution. -type Counters interface { - // Whether there were any updates at all, eg. any of the counters are greater than 0. - ContainsUpdates() bool - // The number of nodes created. - NodesCreated() int - // The number of nodes deleted. - NodesDeleted() int - // The number of relationships created. - RelationshipsCreated() int - // The number of relationships deleted. - RelationshipsDeleted() int - PropertiesSet() int - // The number of labels added to nodes. - LabelsAdded() int - // The number of labels removed from nodes. - LabelsRemoved() int - // The number of indexes added to the schema. - IndexesAdded() int - // The number of indexes removed from the schema. - IndexesRemoved() int - // The number of constraints added to the schema. - ConstraintsAdded() int - // The number of constraints removed from the schema. - ConstraintsRemoved() int - // The number of system updates - SystemUpdates() int - // ContainsSystemUpdates indicates whether the query contains system updates - ContainsSystemUpdates() bool -} - -type Statement interface { - Query -} - -type Query interface { - // Text returns the statement's text. - Text() string - // Parameters returns the statement's parameters. - Parameters() map[string]any -} - -// ServerInfo contains basic information of the server. -type ServerInfo interface { - // Address returns the address of the server. - Address() string - Agent() string - ProtocolVersion() db.ProtocolVersion -} - -type simpleServerInfo struct { - address string - agent string - protocolVersion db.ProtocolVersion -} - -func (s simpleServerInfo) Address() string { - return s.address -} - -func (s simpleServerInfo) Agent() string { - return s.agent -} - -func (s simpleServerInfo) ProtocolVersion() db.ProtocolVersion { - return s.protocolVersion -} - -// DatabaseInfo contains basic information of the database the query result has been obtained from. -type DatabaseInfo interface { - Name() string -} - -// Plan describes the actual plan that the database planner produced and used (or will use) to execute your statement. -// This can be extremely helpful in understanding what a statement is doing, and how to optimize it. For more details, -// see the Neo4j Manual. The plan for the statement is a tree of plans - each sub-tree containing zero or more child -// plans. The statement starts with the root plan. Each sub-plan is of a specific operator, which describes what -// that part of the plan does - for instance, perform an index lookup or filter results. -// The Neo4j Manual contains a reference of the available operator types, and these may differ across Neo4j versions. -type Plan interface { - // Operator returns the operation this plan is performing. - Operator() string - // Arguments returns the arguments for the operator used. - // Many operators have arguments defining their specific behavior. This map contains those arguments. - Arguments() map[string]any - // Identifiers returns a list of identifiers used by this plan. Identifiers used by this part of the plan. - // These can be both identifiers introduced by you, or automatically generated. - Identifiers() []string - // Children returns zero or more child plans. A plan is a tree, where each child is another plan. - // The children are where this part of the plan gets its input records - unless this is an operator that - // introduces new records on its own. - Children() []Plan -} - -// ProfiledPlan is the same as a regular Plan - except this plan has been executed, meaning it also -// contains detailed information about how much work each step of the plan incurred on the database. -type ProfiledPlan interface { - // Operator returns the operation this plan is performing. - Operator() string - // Arguments returns the arguments for the operator used. - // Many operators have arguments defining their specific behavior. This map contains those arguments. - Arguments() map[string]any - // Identifiers returns a list of identifiers used by this plan. Identifiers used by this part of the plan. - // These can be both identifiers introduced by you, or automatically generated. - Identifiers() []string - // DbHits returns the number of times this part of the plan touched the underlying data stores/ - DbHits() int64 - // Records returns the number of records this part of the plan produced. - Records() int64 - // Children returns zero or more child plans. A plan is a tree, where each child is another plan. - // The children are where this part of the plan gets its input records - unless this is an operator that - // introduces new records on its own. - Children() []ProfiledPlan - PageCacheMisses() int64 - PageCacheHits() int64 - PageCacheHitRatio() float64 - Time() int64 -} - -// Notification represents notifications generated when executing a statement. -// A notification can be visualized in a client pinpointing problems or other information about the statement. -// Contrary to failures or errors, notifications do not affect the execution of the statement. -type Notification interface { - // Code returns a notification code for the discovered issue of this notification. - Code() string - // Title returns a short summary of this notification. - Title() string - // Description returns a longer description of this notification. - Description() string - // Position returns the position in the statement where this notification points to. - // Not all notifications have a unique position to point to and in that case the position would be set to nil. - Position() InputPosition - // Severity returns the severity level of this notification. - // - // Deprecated: please use SeverityLevel (or RawSeverityLevel) instead. Severity will be removed in 6.0. - Severity() string - // RawSeverityLevel returns the unmapped severity level of this notification. - // This is useful when the driver cannot interpret the severity level returned by the server - // In that case, SeverityLevel returns UnknownSeverity while RawSeverityLevel returns the raw string - RawSeverityLevel() string - // RawCategory returns the unmapped category of this notification. - // This is useful when the driver cannot interpret the category returned by the server - // In that case, Category returns UnknownCategory while RawCategory returns the raw string - RawCategory() string - // SeverityLevel returns the mapped security level of this notification. - // If the severity level is not a known value, SeverityLevel returns notifications.UnknownSeverity - // Call RawSeverityLevel to get access to the raw string value - SeverityLevel() notifications.NotificationSeverity - // Category returns the mapped category of this notification. - // If the category is not a known value, Category returns UnknownCategory - // Call RawCategory to get access to the raw string value - Category() notifications.NotificationCategory -} - -// GqlStatusObject represents a GqlStatusObject generated when executing a statement. -// A GqlStatusObject can be visualized in a client pinpointing problems or other information about the statement. -// Contrary to failures or errors, GqlStatusObjects do not affect the execution of the statement. -// -// GqlStatusObject is part of the GQL compliant notifications preview feature -// (see README on what it means in terms of support and compatibility guarantees) -type GqlStatusObject interface { - // GqlStatus returns the GQLSTATUS. - // The following GQLSTATUS codes denote codes that the driver will use for - // polyfilling (when connected to an old, non-GQL-aware server). Further, they may be used by servers - // during the transition-phase to GQLSTATUS-awareness. - // - "01N42" (warning - unknown warning) - // - "02N42" (no data - unknown subcondition) - // - "03N42" (informational - unknown notification) - // - "05N42" (general processing exception - unknown error) - // - // This means these codes are not guaranteed to be stable and may change in future versions. - GqlStatus() string - // StatusDescription returns a description of the status. - StatusDescription() string - // Position returns the position in the statement where this status points to. - // Not all statuses have a unique position to point to and in that case the position would be set to nil. - // - // Only Notifications (see IsNotification) have a meaningful position. - Position() InputPosition - // Classification returns the mapped Classification of this status. - // If the Classification is not a known value, Classification returns notifications.UnknownClassification. - // Call RawClassification to get access to the raw string value - // - // Only Notifications (see IsNotification) have a meaningful classification. - Classification() notifications.NotificationClassification - // RawClassification returns the unmapped Classification of this status. - // This is useful when the driver cannot interpret the Classification returned by the server. - // - // Only Notifications (see IsNotification) have a meaningful classification. - RawClassification() string - // Severity returns the mapped Severity of this status. - // If the Severity is not a known value, Severity returns notifications.UnknownSeverity. - // Call RawSeverity to get access to the raw string value - // - // Only Notifications (see IsNotification) have a meaningful severity. - Severity() notifications.NotificationSeverity - // RawSeverity returns the unmapped Severity level of this status. - // This is useful when the driver cannot interpret the Severity returned by the server - // - // Only Notifications (see IsNotification) have a meaningful severity. - RawSeverity() string - // DiagnosticRecord returns further information about the status for diagnostic purposes. - // Call RawDiagnosticRecord to get access to the raw string value. - DiagnosticRecord() map[string]any - // RawDiagnosticRecord returns a string version of DiagnosticRecord. - // The purpose of this function is to provide a serialized object for human inspection. - RawDiagnosticRecord() string - // IsNotification returns true if this status is a Notification. - // - // Only some statuses are Notifications. - IsNotification() bool -} - -// InputPosition contains information about a specific position in a statement -type InputPosition interface { - // Offset returns the character offset referred to by this position; offset numbers start at 0. - Offset() int - // Line returns the line number referred to by this position; line numbers start at 1. - Line() int - // Column returns the column number referred to by this position; column numbers start at 1. - Column() int -} - -// Deprecated: please use notifications.NotificationSeverity directly. This will be removed in 6.0. -type NotificationSeverity = notifications.NotificationSeverity - -const ( - // Deprecated: please use notifications.Warning directly. This will be removed in 6.0. - Warning NotificationSeverity = notifications.Warning - // Deprecated: please use notifications.Information directly. This will be removed in 6.0. - Information NotificationSeverity = notifications.Information - // Deprecated: please use notifications.UnknownSeverity directly. This will be removed in 6.0. - UnknownSeverity NotificationSeverity = notifications.UnknownSeverity -) - -// Deprecated: please use notifications.NotificationCategory directly. This will be removed in 6.0. -type NotificationCategory = notifications.NotificationCategory - -const ( - // Deprecated: please use notifications.Hint directly. This will be removed in 6.0. - Hint NotificationCategory = notifications.Hint - // Deprecated: please use notifications.Unrecognized directly. This will be removed in 6.0. - Unrecognized NotificationCategory = notifications.Unrecognized - // Deprecated: please use notifications.Unsupported directly. This will be removed in 6.0. - Unsupported NotificationCategory = notifications.Unsupported - // Deprecated: please use notifications.Performance directly. This will be removed in 6.0. - Performance NotificationCategory = notifications.Performance - // Deprecated: please use notifications.Deprecation directly. This will be removed in 6.0. - Deprecation NotificationCategory = notifications.Deprecation - // Deprecated: please use notifications.Generic directly. This will be removed in 6.0. - Generic NotificationCategory = notifications.Generic - // Deprecated: please use notifications.Security directly. This will be removed in 6.0. - Security NotificationCategory = notifications.Security - // Deprecated: please use notifications.Topology directly. This will be removed in 6.0. - Topology NotificationCategory = notifications.Topology - // Deprecated: please use notifications.Schema directly. This will be removed in 6.0. - Schema NotificationCategory = notifications.Schema - // Deprecated: please use notifications.Unknown directly. This will be removed in 6.0. - UnknownCategory NotificationCategory = notifications.Unknown -) - -type resultSummary struct { - sum *db.Summary - cypher string - params map[string]any -} - -func (s *resultSummary) Agent() string { - return s.sum.Agent -} - -func (s *resultSummary) ProtocolVersion() db.ProtocolVersion { - return db.ProtocolVersion{ - Major: s.sum.Major, - Minor: s.sum.Minor, - } -} - -func (s *resultSummary) Server() ServerInfo { - return s -} - -func (s *resultSummary) Address() string { - return s.sum.ServerName -} - -func (s *resultSummary) Query() Query { - return s -} - -func (s *resultSummary) StatementType() StatementType { - return StatementType(s.sum.StmntType) -} - -func (s *resultSummary) Text() string { - return s.cypher -} - -func (s *resultSummary) Parameters() map[string]any { - return s.params -} - -func (s *resultSummary) Counters() Counters { - return s -} - -func (s *resultSummary) ContainsUpdates() bool { - if s.sum.ContainsUpdates != nil { - return *s.sum.ContainsUpdates - } - return s.ConstraintsAdded() > 0 || s.ConstraintsRemoved() > 0 || - s.IndexesAdded() > 0 || s.IndexesRemoved() > 0 || - s.NodesCreated() > 0 || s.NodesDeleted() > 0 || - s.RelationshipsCreated() > 0 || s.RelationshipsDeleted() > 0 || - s.LabelsAdded() > 0 || s.LabelsRemoved() > 0 || - s.PropertiesSet() > 0 -} - -func (s *resultSummary) getCounter(n string) int { - if s.sum.Counters == nil { - return 0 - } - return s.sum.Counters[n] -} - -func (s *resultSummary) SystemUpdates() int { - return s.getCounter(db.SystemUpdates) -} - -func (s *resultSummary) ContainsSystemUpdates() bool { - if s.sum.ContainsSystemUpdates != nil { - return *s.sum.ContainsSystemUpdates - } - return s.getCounter(db.SystemUpdates) > 0 -} - -func (s *resultSummary) NodesCreated() int { - return s.getCounter(db.NodesCreated) -} - -func (s *resultSummary) NodesDeleted() int { - return s.getCounter(db.NodesDeleted) -} - -func (s *resultSummary) RelationshipsCreated() int { - return s.getCounter(db.RelationshipsCreated) -} - -func (s *resultSummary) RelationshipsDeleted() int { - return s.getCounter(db.RelationshipsDeleted) -} - -func (s *resultSummary) PropertiesSet() int { - return s.getCounter(db.PropertiesSet) -} - -func (s *resultSummary) LabelsAdded() int { - return s.getCounter(db.LabelsAdded) -} - -func (s *resultSummary) LabelsRemoved() int { - return s.getCounter(db.LabelsRemoved) -} - -func (s *resultSummary) IndexesAdded() int { - return s.getCounter(db.IndexesAdded) -} - -func (s *resultSummary) IndexesRemoved() int { - return s.getCounter(db.IndexesRemoved) -} - -func (s *resultSummary) ConstraintsAdded() int { - return s.getCounter(db.ConstraintsAdded) -} - -func (s *resultSummary) ConstraintsRemoved() int { - return s.getCounter(db.ConstraintsRemoved) -} - -func (s *resultSummary) ResultAvailableAfter() time.Duration { - return time.Duration(s.sum.TFirst) * time.Millisecond -} - -func (s *resultSummary) ResultConsumedAfter() time.Duration { - return time.Duration(s.sum.TLast) * time.Millisecond -} - -func (s *resultSummary) Plan() Plan { - if s.sum.Plan == nil { - return nil - } - return &plan{plan: s.sum.Plan} -} - -func (s *resultSummary) Database() DatabaseInfo { - database := s.sum.Database - if database == "" { - return nil - } - return &databaseInfo{name: database} -} - -type databaseInfo struct { - name string -} - -func (d *databaseInfo) Name() string { - return d.name -} - -type plan struct { - plan *db.Plan -} - -func (p *plan) Operator() string { - return p.plan.Operator -} - -func (p *plan) Arguments() map[string]any { - return p.plan.Arguments -} - -func (p *plan) Identifiers() []string { - return p.plan.Identifiers -} - -func (p *plan) Children() []Plan { - children := make([]Plan, len(p.plan.Children)) - for i, c := range p.plan.Children { - children[i] = &plan{plan: &c} - } - return children -} - -func (s *resultSummary) Profile() ProfiledPlan { - if s.sum.ProfiledPlan == nil { - return nil - } - return &profile{profile: s.sum.ProfiledPlan} -} - -type profile struct { - profile *db.ProfiledPlan -} - -func (p *profile) String() string { - return fmt.Sprintf("%v", *p.profile) -} - -func (p *profile) Operator() string { - return p.profile.Operator -} - -func (p *profile) Arguments() map[string]any { - return p.profile.Arguments -} - -func (p *profile) Identifiers() []string { - return p.profile.Identifiers -} - -func (p *profile) DbHits() int64 { - return p.profile.DbHits -} - -func (p *profile) Records() int64 { - return p.profile.Records -} - -func (p *profile) Children() []ProfiledPlan { - children := make([]ProfiledPlan, len(p.profile.Children)) - for i, c := range p.profile.Children { - child := c - children[i] = &profile{profile: &child} - } - return children -} - -func (p *profile) PageCacheMisses() int64 { - return p.profile.PageCacheMisses -} - -func (p *profile) PageCacheHits() int64 { - return p.profile.PageCacheHits -} - -func (p *profile) PageCacheHitRatio() float64 { - return p.profile.PageCacheHitRatio -} - -func (p *profile) Time() int64 { - return p.profile.Time -} - -func (s *resultSummary) Notifications() []Notification { - if s.sum.Notifications != nil { - n := make([]Notification, 0, len(s.sum.Notifications)) - for i := range s.sum.Notifications { - n = append(n, ¬ification{notification: &s.sum.Notifications[i]}) - } - return n - } - - if s.sum.GqlStatusObjects != nil { - // Polyfill Notifications from GqlStatusObjects - n := make([]Notification, 0, len(s.sum.GqlStatusObjects)) - for i := range s.sum.GqlStatusObjects { - status := s.sum.GqlStatusObjects[i] - if status.IsNotification { - n = append(n, ¬ification{notification: inotifications.ToNotification(status)}) - } - } - return n - } - return nil -} - -func (s *resultSummary) GqlStatusObjects() []GqlStatusObject { - if s.sum.GqlStatusObjects != nil { - g := make([]GqlStatusObject, 0, len(s.sum.GqlStatusObjects)) - for i := range s.sum.GqlStatusObjects { - g = append(g, &gqlStatusObject{gqlStatusObject: &s.sum.GqlStatusObjects[i]}) - } - return g - } - if s.sum.Notifications != nil { - // Polyfill GqlStatusObjects from Notifications - g := make([]GqlStatusObject, 0, len(s.sum.Notifications)) - for i := range s.sum.Notifications { - g = append(g, &gqlStatusObject{gqlStatusObject: inotifications.ToGqlStatusObject(s.sum.Notifications[i])}) - } - // Append client generated polyfill status - g = append(g, &gqlStatusObject{gqlStatusObject: inotifications.ToGqlStatusObjectFromSummary(s.sum.StreamSummary)}) - // Sort by GqlStatus weight - sort.Slice(g, func(i, j int) bool { - return calculateGqlStatusWeight(g[i]) < calculateGqlStatusWeight(g[j]) - }) - return g - } - // If both s.sum.GqlStatusObjects and s.sum.Notifications are nil - return []GqlStatusObject{&gqlStatusObject{gqlStatusObject: inotifications.ToGqlStatusObjectFromSummary(s.sum.StreamSummary)}} -} - -func calculateGqlStatusWeight(gqlStatusObject GqlStatusObject) int { - status := gqlStatusObject.GqlStatus()[:2] - switch status { - case "02": - return 0 // no data - case "01": - return 1 // warning - case "00": - return 2 // success - case "03": - return 3 // informational - default: - return math.MaxInt // unknown or error statuses - } -} - -type notification struct { - notification *db.Notification -} - -func (n *notification) Code() string { - return n.notification.Code -} - -func (n *notification) Title() string { - return n.notification.Title -} - -func (n *notification) Description() string { - return n.notification.Description -} - -func (n *notification) Severity() string { - return n.RawSeverityLevel() -} - -func (n *notification) RawSeverityLevel() string { - return n.notification.Severity -} - -func (n *notification) SeverityLevel() notifications.NotificationSeverity { - switch n.notification.Severity { - case "WARNING": - return Warning - case "INFORMATION": - return Information - default: - return UnknownSeverity - } -} - -func (n *notification) RawCategory() string { - return n.notification.Category -} - -func (n *notification) Category() notifications.NotificationCategory { - switch n.notification.Category { - case "HINT": - return Hint - case "UNRECOGNIZED": - return Unrecognized - case "UNSUPPORTED": - return Unsupported - case "PERFORMANCE": - return Performance - case "DEPRECATION": - return Deprecation - case "SECURITY": - return Security - case "TOPOLOGY": - return Topology - case "SCHEMA": - return Schema - case "GENERIC": - return Generic - default: - return UnknownCategory - } -} - -func (n *notification) Position() InputPosition { - if n.notification.Position == nil { - return nil - } - return n -} - -func (n *notification) Offset() int { - return n.notification.Position.Offset -} - -func (n *notification) Column() int { - return n.notification.Position.Column -} - -func (n *notification) Line() int { - return n.notification.Position.Line -} - -type gqlStatusObject struct { - gqlStatusObject *db.GqlStatusObject -} - -func (g *gqlStatusObject) GqlStatus() string { - return g.gqlStatusObject.GqlStatus -} - -func (g *gqlStatusObject) StatusDescription() string { - return g.gqlStatusObject.StatusDescription -} - -func (g *gqlStatusObject) Position() InputPosition { - if g.gqlStatusObject.Position == nil { - return nil - } - return g -} - -func (g *gqlStatusObject) Offset() int { - return g.gqlStatusObject.Position.Offset -} - -func (g *gqlStatusObject) Column() int { - return g.gqlStatusObject.Position.Column -} - -func (g *gqlStatusObject) Line() int { - return g.gqlStatusObject.Position.Line -} - -func (g *gqlStatusObject) Classification() notifications.NotificationClassification { - switch g.gqlStatusObject.Classification { - case "HINT": - return notifications.Hint - case "UNRECOGNIZED": - return notifications.Unrecognized - case "UNSUPPORTED": - return notifications.Unsupported - case "PERFORMANCE": - return notifications.Performance - case "DEPRECATION": - return notifications.Deprecation - case "SECURITY": - return notifications.Security - case "TOPOLOGY": - return notifications.Topology - case "SCHEMA": - return notifications.Schema - case "GENERIC": - return notifications.Generic - default: - return notifications.Unknown - } -} - -func (g *gqlStatusObject) RawClassification() string { - return g.gqlStatusObject.Classification -} - -func (g *gqlStatusObject) Severity() notifications.NotificationSeverity { - switch g.gqlStatusObject.Severity { - case "WARNING": - return Warning - case "INFORMATION": - return Information - default: - return UnknownSeverity - } -} - -func (g *gqlStatusObject) RawSeverity() string { - return g.gqlStatusObject.Severity -} - -func (g *gqlStatusObject) DiagnosticRecord() map[string]any { - return g.gqlStatusObject.DiagnosticRecord -} - -func (g *gqlStatusObject) RawDiagnosticRecord() string { - return fmt.Sprintf("%v", g.gqlStatusObject.DiagnosticRecord) -} - -func (g *gqlStatusObject) IsNotification() bool { - return g.gqlStatusObject.IsNotification -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session.go deleted file mode 100644 index 40dd384..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session.go +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" -) - -// Session represents a logical connection (which is not tied to a physical connection) -// to the server -// -// SessionWithContext is created via the context-aware driver returned -// by NewDriverWithContext. -// -// Deprecated: use SessionWithContext instead. Session will be removed in 6.0. -type Session interface { - // LastBookmarks returns the bookmark received following the last successfully completed transaction. - // If no bookmark was received or if this transaction was rolled back, the initial set of bookmarks will be - // returned. - LastBookmarks() Bookmarks - // LastBookmark returns the bookmark received following the last successfully completed transaction. - // If no bookmark was received or if this transaction was rolled back, the bookmark value will not be changed. - // Warning: this method can lead to unexpected behaviour if the session has not yet successfully completed a - // transaction. - // - // Deprecated: since version 5.0. Will be removed in 6.0. Use LastBookmarks instead. - LastBookmark() string - // BeginTransaction starts a new explicit transaction on this session - BeginTransaction(configurers ...func(*TransactionConfig)) (Transaction, error) - // ReadTransaction executes the given unit of work in a AccessModeRead transaction with - // retry logic in place - ReadTransaction(work TransactionWork, configurers ...func(*TransactionConfig)) (any, error) - // WriteTransaction executes the given unit of work in a AccessModeWrite transaction with - // retry logic in place - WriteTransaction(work TransactionWork, configurers ...func(*TransactionConfig)) (any, error) - // Run executes an auto-commit statement and returns a result - Run(cypher string, params map[string]any, configurers ...func(*TransactionConfig)) (Result, error) - // Close closes any open resources and marks this session as unusable - Close() error -} - -type session struct { - delegate *sessionWithContext -} - -func (s *session) LastBookmarks() Bookmarks { - return s.delegate.LastBookmarks() -} - -func (s *session) LastBookmark() string { - return s.delegate.lastBookmark() -} - -func (s *session) BeginTransaction(configurers ...func(*TransactionConfig)) (Transaction, error) { - tx, err := s.delegate.BeginTransaction(context.Background(), configurers...) - if err != nil { - return nil, err - } - return tx.legacy(), nil -} - -func (s *session) ReadTransaction( - work TransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.delegate.ExecuteRead( - context.Background(), - transactionWorkBridge(work), - configurers..., - ) -} - -func (s *session) WriteTransaction( - work TransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.delegate.ExecuteWrite( - context.Background(), - transactionWorkBridge(work), - configurers..., - ) -} - -func (s *session) Run( - cypher string, params map[string]any, configurers ...func(*TransactionConfig)) (Result, error) { - - result, err := s.delegate.Run(context.Background(), cypher, params, configurers...) - if err != nil { - return nil, err - } - return result.legacy(), nil -} - -func (s *session) Close() error { - return s.delegate.Close(context.Background()) -} - -func transactionWorkBridge(work TransactionWork) ManagedTransactionWork { - return func(txc ManagedTransaction) (any, error) { - return work(txc.legacy()) - } -} - -type erroredSession struct { - err error -} - -func (s *erroredSession) LastBookmark() string { - return "" -} - -func (s *erroredSession) LastBookmarks() Bookmarks { - return []string{} -} - -func (s *erroredSession) BeginTransaction(...func(*TransactionConfig)) (Transaction, error) { - return nil, s.err -} -func (s *erroredSession) ReadTransaction(TransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSession) WriteTransaction(TransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSession) Run(string, map[string]any, ...func(*TransactionConfig)) (Result, error) { - return nil, s.err -} -func (s *erroredSession) Close() error { - return s.err -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_bookmarks.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_bookmarks.go deleted file mode 100644 index d877109..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_bookmarks.go +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import "context" - -type sessionBookmarks struct { - bookmarkManager BookmarkManager - bookmarks Bookmarks -} - -func newSessionBookmarks(bookmarkManager BookmarkManager, bookmarks Bookmarks) *sessionBookmarks { - return &sessionBookmarks{ - bookmarkManager: bookmarkManager, - bookmarks: cleanupBookmarks(bookmarks), - } -} - -func (sb *sessionBookmarks) currentBookmarks() Bookmarks { - return sb.bookmarks -} - -func (sb *sessionBookmarks) lastBookmark() string { - bookmarks := sb.currentBookmarks() - count := len(bookmarks) - if count == 0 { - return "" - } - return bookmarks[count-1] -} - -func (sb *sessionBookmarks) replaceBookmarks(ctx context.Context, previousBookmarks []string, newBookmark string) error { - if len(newBookmark) == 0 { - return nil - } - if sb.bookmarkManager != nil { - if err := sb.bookmarkManager.UpdateBookmarks(ctx, previousBookmarks, []string{newBookmark}); err != nil { - return err - } - } - sb.replaceSessionBookmarks(newBookmark) - return nil -} - -func (sb *sessionBookmarks) replaceSessionBookmarks(newBookmark string) { - if len(newBookmark) == 0 { - return - } - sb.bookmarks = []string{newBookmark} -} - -func (sb *sessionBookmarks) getBookmarks(ctx context.Context) (Bookmarks, error) { - if sb.bookmarkManager == nil { - return nil, nil - } - return sb.bookmarkManager.GetBookmarks(ctx) -} - -// Remove empty string bookmarks to check for "bad" callers -// To avoid allocating, first check if this is a problem -func cleanupBookmarks(bookmarks Bookmarks) Bookmarks { - hasBad := false - for _, b := range bookmarks { - if len(b) == 0 { - hasBad = true - break - } - } - - if !hasBad { - return bookmarks - } - - cleaned := make(Bookmarks, 0, len(bookmarks)-1) - for _, b := range bookmarks { - if len(b) > 0 { - cleaned = append(cleaned, b) - } - } - return cleaned -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_with_context.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_with_context.go deleted file mode 100644 index 8e4efde..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/session_with_context.go +++ /dev/null @@ -1,998 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "fmt" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing" - "math" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections" - idb "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/log" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications" -) - -// TransactionWork represents a unit of work that will be executed against the provided -// transaction -// ManagedTransactionWork is created via the context-aware driver returned -// by NewDriverWithContext. -// -// Deprecated: use ManagedTransactionWork instead. TransactionWork will be removed in 6.0. -type TransactionWork func(tx Transaction) (any, error) - -// ManagedTransactionWork represents a unit of work that will be executed against the provided -// transaction -type ManagedTransactionWork func(tx ManagedTransaction) (any, error) - -// SessionWithContext represents a logical connection (which is not tied to a physical connection) -// to the server -type SessionWithContext interface { - // LastBookmarks returns the bookmark received following the last successfully completed transaction. - // If no bookmark was received or if this transaction was rolled back, the initial set of bookmarks will be - // returned. - LastBookmarks() Bookmarks - lastBookmark() string - // BeginTransaction starts a new explicit transaction on this session - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - BeginTransaction(ctx context.Context, configurers ...func(*TransactionConfig)) (ExplicitTransaction, error) - // ExecuteRead executes the given unit of work in a AccessModeRead transaction with - // retry logic in place - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - ExecuteRead(ctx context.Context, work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) - // ExecuteWrite executes the given unit of work in a AccessModeWrite transaction with - // retry logic in place - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - ExecuteWrite(ctx context.Context, work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) - // Run executes an auto-commit statement and returns a result - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Run(ctx context.Context, cypher string, params map[string]any, configurers ...func(*TransactionConfig)) (ResultWithContext, error) - // Close closes any open resources and marks this session as unusable - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Close(ctx context.Context) error - executeQueryRead(ctx context.Context, work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) - executeQueryWrite(ctx context.Context, work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) - legacy() Session - getServerInfo(ctx context.Context) (ServerInfo, error) - verifyAuthentication(ctx context.Context) error -} - -// SessionConfig is used to configure a new session, its zero value uses safe defaults. -type SessionConfig struct { - // AccessMode used when using Session.Run and explicit transactions. Used to route query - // to read or write servers when running in a cluster. Session.ReadTransaction and Session.WriteTransaction - // does not rely on this mode. - AccessMode AccessMode - // Bookmarks are the initial bookmarks used to ensure that the executing server is at least up - // to date to the point represented by the latest of the provided bookmarks. After running commands - // on the session the bookmark can be retrieved with Session.LastBookmark. All commands executing - // within the same session will automatically use the bookmark from the previous command in the - // session. - Bookmarks Bookmarks - // DatabaseName sets the target database name for the queries executed within the session created with this - // configuration. - // Usage of Cypher clauses like USE is not a replacement for this option. - // Drive​r sends Cypher to the server for processing. - // This option has no explicit value by default, but it is recommended to set one if the target database is known - // in advance. This has the benefit of ensuring a consistent target database name throughout the session in a - // straightforward way and potentially simplifies driver logic as well as reduces network communication resulting - // in better performance. - // When no explicit name is set, the driver behavior depends on the connection URI scheme supplied to the driver on - // instantiation and Bolt protocol version. - // - // Specifically, the following applies: - // - // - for bolt schemes - // queries are dispatched to the server for execution without explicit database name supplied, - // meaning that the target database name for query execution is determined by the server. - // It is important to note that the target database may change (even within the same session), for instance if the - // user's home database is changed on the server. - // - // - for neo4j schemes - // providing that Bolt protocol version 4.4, which was introduced with Neo4j server 4.4, or above - // is available, the driver fetches the user's home database name from the server on first query execution - // within the session and uses the fetched database name explicitly for all queries executed within the session. - // This ensures that the database name remains consistent within the given session. For instance, if the user's - // home database name is 'movies' and the server supplies it to the driver upon database name fetching for the - // session, all queries within that session are executed with the explicit database name 'movies' supplied. - // Any change to the user’s home database is reflected only in sessions created after such change takes effect. - // This behavior requires additional network communication. - // In clustered environments, it is strongly recommended to avoid a single point of failure. - // For instance, by ensuring that the connection URI resolves to multiple endpoints. - // For older Bolt protocol versions, the behavior is the same as described for the bolt schemes above. - DatabaseName string - // FetchSize defines how many records to pull from server in each batch. - // From Bolt protocol v4 (Neo4j 4+) records can be fetched in batches as - // compared to fetching all in previous versions. - // If the underlying protocol does not support FetchSize, it is ignored. - // - // If FetchSize is set to `FetchDefault`, the driver decides the appropriate size. - // If set to a positive value that size is used; negative values behaves as `FetchAll` (see below). - // - // To turn off fetching in batches and always fetch everything, set FetchSize to `FetchAll`. - // A limited FetchSize ensures the client is not overflown with records, - // and allows to bound memory usage. - FetchSize int - // Logging target the session will send its Bolt message traces - // - // Possible to use custom logger (implement log.BoltLogger interface) or - // use neo4j.ConsoleBoltLogger. - BoltLogger log.BoltLogger - // ImpersonatedUser sets the Neo4j user that the session will be acting as. - // If not set, the user configured for the driver will be used. - // - // If user impersonation is used, the default database for that impersonated - // user will be used unless DatabaseName is set. - // - // In the former case, when routing is enabled, using impersonation - // without DatabaseName will cause the driver to query the - // cluster for the name of the default database of the impersonated user. - // This is done at the beginning of the session so that queries are routed - // to the correct cluster member (different databases may have different - // leaders). - ImpersonatedUser string - // BookmarkManager defines a central point to externally supply bookmarks - // and be notified of bookmark updates per database - // Since 5.0 - // default: nil (no-op) - BookmarkManager BookmarkManager - // NotificationsMinSeverity defines the minimum severity level of notifications the server should send. - // By default, the driver's settings are used. - // Else, this option overrides the driver's settings. - // Disabling severities allows the server to skip analysis for those, which can speed up query execution. - NotificationsMinSeverity notifications.NotificationMinimumSeverityLevel - // NotificationsDisabledCategories defines the categories of notifications the server should not send. - // By default, the driver's settings are used. - // Else, this option overrides the driver's settings. - // Disabling categories allows the server to skip analysis for those, which can speed up query execution. - NotificationsDisabledCategories notifications.NotificationDisabledCategories - // NotificationsDisabledClassifications is identical to NotificationsDisabledCategories. - // This alternative is provided for a consistent naming with neo4j.GqlStatusObject Classification. - // - // NotificationsDisabledClassifications is part of the GQL compliant notifications preview feature - // (see README on what it means in terms of support and compatibility guarantees) - NotificationsDisabledClassifications notifications.NotificationDisabledClassifications - // Auth is used to overwrite the authentication information for the session. - // This requires the server to support re-authentication on the protocol level. - // `nil` will make the driver use the authentication information from the driver configuration. - // The `neo4j` package provides factory functions for common authentication schemes: - // - `neo4j.NoAuth` - // - `neo4j.BasicAuth` - // - `neo4j.KerberosAuth` - // - `neo4j.BearerAuth` - // - `neo4j.CustomAuth` - Auth *AuthToken - - forceReAuth bool -} - -// FetchAll turns off fetching records in batches. -const FetchAll = -1 - -// FetchDefault lets the driver decide fetch size -const FetchDefault = 0 - -// Connection pool as seen by the session. -type sessionPool interface { - Borrow(ctx context.Context, getServerNames func() []string, wait bool, boltLogger log.BoltLogger, livenessCheckTimeout time.Duration, auth *idb.ReAuthToken) (idb.Connection, error) - Return(ctx context.Context, c idb.Connection) - CleanUp(ctx context.Context) -} - -type sessionWithContext struct { - driverConfig *Config - defaultMode idb.AccessMode - bookmarks *sessionBookmarks - resolveHomeDb bool - homeDbGuess string - pool sessionPool - router sessionRouter - cache *homedb.Cache - pinHomeDatabaseCallback func(context.Context, string) - explicitTx *explicitTransaction - autocommitTx *autocommitTransaction - sleep func(context.Context, time.Duration) error - logId string - log log.Logger - throttleTime time.Duration - fetchSize int - config SessionConfig - auth *idb.ReAuthToken - closed bool -} - -func newSessionWithContext( - ctx context.Context, - config *Config, - sessConfig SessionConfig, - router sessionRouter, - pool sessionPool, - cache *homedb.Cache, - logger log.Logger, - token *idb.ReAuthToken, -) *sessionWithContext { - logId := log.NewId() - logger.Debugf(log.Session, logId, "Created") - - fetchSize := config.FetchSize - if sessConfig.FetchSize != FetchDefault { - fetchSize = sessConfig.FetchSize - } - - key, err := computeCacheKey(ctx, token, cache, sessConfig.ImpersonatedUser) - if err != nil { - logger.Warnf(log.Session, logId, "Failed to compute cache key: %v", err) - } - - homeDbGuess, found := cache.Get(key) - if found { - logger.Debugf(log.Session, logId, "Home database guess retrieved from cache: '%s'", homeDbGuess) - } else { - logger.Debugf(log.Session, logId, "No home database guess found in cache for provided user") - } - - session := &sessionWithContext{ - driverConfig: config, - router: router, - pool: pool, - cache: cache, - defaultMode: idb.AccessMode(sessConfig.AccessMode), - bookmarks: newSessionBookmarks(sessConfig.BookmarkManager, sessConfig.Bookmarks), - config: sessConfig, - resolveHomeDb: sessConfig.DatabaseName == "", - homeDbGuess: homeDbGuess, - sleep: racing.Sleep, - log: logger, - logId: logId, - throttleTime: time.Second * 1, - fetchSize: fetchSize, - auth: token, - } - session.pinHomeDatabaseCallback = func(ctx context.Context, database string) { - session.pinHomeDatabase(ctx, database) - } - return session -} - -func (s *sessionWithContext) lastBookmark() string { - // Pick up bookmark from pending auto-commit if there is a bookmark on it - // Note: the bookmark manager should not be notified here because: - // - the results of the autocommit transaction may have not been consumed - // yet, in which case, the underlying connection may have an outdated - // cached bookmark value - // - moreover, the bookmark manager may already hold newer bookmarks - // because other sessions for the same DB have completed some work in - // parallel - if s.autocommitTx != nil { - s.retrieveSessionBookmarks(s.autocommitTx.conn) - } - - // Report bookmark from previously closed connection or from initial set - return s.bookmarks.lastBookmark() -} - -func (s *sessionWithContext) LastBookmarks() Bookmarks { - // Pick up bookmark from pending auto-commit if there is a bookmark on it - // Note: the bookmark manager should not be notified here because: - // - the results of the autocommit transaction may have not been consumed - // yet, in which case, the underlying connection may have an outdated - // cached bookmark value - // - moreover, the bookmark manager may already hold newer bookmarks - // because other sessions for the same DB have completed some work in - // parallel - if s.autocommitTx != nil { - s.retrieveSessionBookmarks(s.autocommitTx.conn) - } - - // Report bookmarks from previously closed connection or from initial set - return s.bookmarks.currentBookmarks() -} - -func (s *sessionWithContext) BeginTransaction(ctx context.Context, configurers ...func(*TransactionConfig)) (ExplicitTransaction, error) { - - if s.closed { - err := &UsageError{Message: "Operation attempted on a closed session"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - // Guard for more than one transaction per session - if s.explicitTx != nil { - err := &UsageError{Message: "Session already has a pending transaction"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - if s.autocommitTx != nil { - s.autocommitTx.done(ctx) - } - - // Apply configuration functions - config := defaultTransactionConfig() - for _, c := range configurers { - c(&config) - } - if err := validateTransactionConfig(config); err != nil { - return nil, err - } - - // Get a connection from the pool. This could fail in clustered environment. - conn, err := s.getConnection(ctx, s.defaultMode, s.driverConfig.ConnectionLivenessCheckTimeout) - if err != nil { - return nil, errorutil.WrapError(err) - } - - if !s.driverConfig.TelemetryDisabled { - conn.Telemetry(telemetry.UnmanagedTransaction, nil) - } - - beginBookmarks, err := s.getBookmarks(ctx) - if err != nil { - s.pool.Return(ctx, conn) - return nil, errorutil.WrapError(err) - } - txHandle, err := conn.TxBegin(ctx, - idb.TxConfig{ - Mode: s.defaultMode, - Bookmarks: beginBookmarks, - Timeout: config.Timeout, - Meta: config.Metadata, - ImpersonatedUser: s.config.ImpersonatedUser, - NotificationConfig: idb.NotificationConfig{ - MinSev: s.config.NotificationsMinSeverity, - DisCats: s.config.NotificationsDisabledCategories, - DisClas: s.config.NotificationsDisabledClassifications, - }, - }, true) - if err != nil { - s.pool.Return(ctx, conn) - return nil, errorutil.WrapError(err) - } - - // Create transaction wrapper - txState := &transactionState{} - tx := &explicitTransaction{ - conn: conn, - fetchSize: s.fetchSize, - txHandle: txHandle, - txState: txState, - } - - onClose := func() { - if tx.conn == nil { - return - } - // On run failure, transaction closed (rolled back or committed) - bookmarkErr := s.retrieveBookmarks(ctx, tx.conn, beginBookmarks) - s.pool.Return(ctx, tx.conn) - tx.txState.err = errorutil.CombineAllErrors(tx.txState.err, bookmarkErr) - tx.conn = nil - s.explicitTx = nil - } - tx.onClosed = onClose - txState.resultErrorHandlers = append(txState.resultErrorHandlers, func(error) { onClose() }) - - s.explicitTx = tx - - return s.explicitTx, nil -} - -func (s *sessionWithContext) ExecuteRead(ctx context.Context, - work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.runRetriable(ctx, idb.ReadMode, work, true, telemetry.ManagedTransaction, configurers...) -} - -func (s *sessionWithContext) ExecuteWrite(ctx context.Context, - work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.runRetriable(ctx, idb.WriteMode, work, true, telemetry.ManagedTransaction, configurers...) -} - -func (s *sessionWithContext) executeQueryRead(ctx context.Context, - work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.runRetriable(ctx, idb.ReadMode, work, false, telemetry.ExecuteQuery, configurers...) -} - -func (s *sessionWithContext) executeQueryWrite(ctx context.Context, - work ManagedTransactionWork, configurers ...func(*TransactionConfig)) (any, error) { - - return s.runRetriable(ctx, idb.WriteMode, work, false, telemetry.ExecuteQuery, configurers...) -} - -func (s *sessionWithContext) runRetriable( - ctx context.Context, - mode idb.AccessMode, - work ManagedTransactionWork, - blockingTxBegin bool, - api telemetry.API, - configurers ...func(*TransactionConfig)) (any, error) { - - if s.closed { - err := &UsageError{Message: "Operation attempted on a closed session"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - // Guard for more than one transaction per session - if s.explicitTx != nil { - err := &UsageError{Message: "Session already has a pending transaction"} - return nil, err - } - - if s.autocommitTx != nil { - s.autocommitTx.done(ctx) - } - - config := defaultTransactionConfig() - for _, c := range configurers { - c(&config) - } - if err := validateTransactionConfig(config); err != nil { - return nil, err - } - - state := retry.State{ - MaxTransactionRetryTime: s.driverConfig.MaxTransactionRetryTime, - Log: s.log, - LogName: log.Session, - LogId: s.logId, - Sleep: s.sleep, - Throttle: retry.Throttler(s.throttleTime), - MaxDeadConnections: s.driverConfig.MaxConnectionPoolSize, - DatabaseName: s.config.DatabaseName, - } - for state.Continue(ctx) { - if hasCompleted, result := s.executeTransactionFunction(ctx, mode, config, &state, work, blockingTxBegin, api); hasCompleted { - return result, nil - } - } - - err := state.ProduceError() - s.log.Error(log.Session, s.logId, err) - return nil, err -} - -func (s *sessionWithContext) executeTransactionFunction( - ctx context.Context, - mode idb.AccessMode, - config TransactionConfig, - state *retry.State, - work ManagedTransactionWork, - blockingTxBegin bool, - api telemetry.API) (bool, any) { - - conn, err := s.getConnection(ctx, mode, s.driverConfig.ConnectionLivenessCheckTimeout) - if err != nil { - state.OnFailure(ctx, err, conn, false) - return false, nil - } - - if !s.driverConfig.TelemetryDisabled && !state.TelemetrySent { - conn.Telemetry(api, func() { - state.TelemetrySent = true - }) - } - - // handle transaction function panic as well - defer func() { - s.pool.Return(ctx, conn) - }() - - beginBookmarks, err := s.getBookmarks(ctx) - if err != nil { - state.OnFailure(ctx, err, conn, false) - return false, nil - } - txHandle, err := conn.TxBegin(ctx, - idb.TxConfig{ - Mode: mode, - Bookmarks: beginBookmarks, - Timeout: config.Timeout, - Meta: config.Metadata, - ImpersonatedUser: s.config.ImpersonatedUser, - NotificationConfig: idb.NotificationConfig{ - MinSev: s.config.NotificationsMinSeverity, - DisCats: s.config.NotificationsDisabledCategories, - DisClas: s.config.NotificationsDisabledClassifications, - }, - }, - blockingTxBegin) - if err != nil { - state.OnFailure(ctx, err, conn, false) - return false, nil - } - - tx := managedTransaction{conn: conn, fetchSize: s.fetchSize, txHandle: txHandle, txState: &transactionState{}} - x, err := work(&tx) - if err != nil { - // If the client returns a client specific error that means that - // client wants to rollback. We don't do an explicit rollback here - // but instead rely on the pool invoking reset on the connection, - // that will do an implicit rollback. - state.OnFailure(ctx, err, conn, false) - return false, nil - } - - err = conn.TxCommit(ctx, txHandle) - if err != nil { - state.OnFailure(ctx, err, conn, true) - return false, nil - } - - // transaction has been committed so let's ignore (ie just log) the error - if err = s.retrieveBookmarks(ctx, conn, beginBookmarks); err != nil { - s.log.Warnf(log.Session, s.logId, "could not retrieve bookmarks after successful commit: %s\n"+ - "the results of this transaction may not be visible to subsequent operations", err.Error()) - } - return true, x -} - -func (s *sessionWithContext) getOrUpdateServers( - ctx context.Context, - mode idb.AccessMode, - isHomeDbGuess bool, - onRoutingTableUpdated func(string), -) ([]string, error) { - database := s.config.DatabaseName - if isHomeDbGuess { - database = s.homeDbGuess - } - dbSelection := idb.DatabaseSelection{ - Name: database, - IsHomeDbGuess: isHomeDbGuess, - } - if mode == idb.ReadMode { - return s.router.GetOrUpdateReaders(ctx, s.getBookmarks, dbSelection, s.auth, s.config.BoltLogger, onRoutingTableUpdated) - } else { - return s.router.GetOrUpdateWriters(ctx, s.getBookmarks, dbSelection, s.auth, s.config.BoltLogger, onRoutingTableUpdated) - } -} - -func (s *sessionWithContext) getServers(mode idb.AccessMode) func() []string { - return func() []string { - if mode == idb.ReadMode { - return s.router.Readers(s.config.DatabaseName) - } else { - return s.router.Writers(s.config.DatabaseName) - } - } -} - -func (s *sessionWithContext) getConnection(ctx context.Context, mode idb.AccessMode, livenessCheckTimeout time.Duration) (idb.Connection, error) { - ctx, cancel := s.applyConnectionTimeout(ctx) - if cancel != nil { - defer cancel() - } - - serverList, usedHomeDbGuess, err := s.getServerList(ctx, mode) - if err != nil { - return nil, errorutil.WrapError(err) - } - - conn, err := s.borrowConnection(ctx, serverList, livenessCheckTimeout) - if err != nil { - return nil, errorutil.WrapError(err) - } - - // Return the connection if SSR is disabled, and we used the home database guess, then resolve as normal. - if !conn.IsSsrEnabled() && usedHomeDbGuess { - s.log.Debugf( - log.Session, - s.logId, - "Connection without SSR enabled was acquired using home database guess '%s', "+ - "falling back to resolving as normal", - s.homeDbGuess, - ) - s.pool.Return(ctx, conn) - - serverList, _, err = s.getServerList(ctx, mode) - if err != nil { - return nil, errorutil.WrapError(err) - } - - conn, err = s.borrowConnection(ctx, serverList, livenessCheckTimeout) - if err != nil { - return nil, errorutil.WrapError(err) - } - } - - conn.SetPinHomeDatabaseCallback(s.pinHomeDatabaseCallback) - - // Select database on server - if s.config.DatabaseName != idb.DefaultDatabase { - if err := s.selectDatabase(ctx, conn); err != nil { - s.pool.Return(ctx, conn) - return nil, err - } - } - - return conn, nil -} - -// applyConnectionTimeout sets a timeout on the context if configured. -func (s *sessionWithContext) applyConnectionTimeout(ctx context.Context) (context.Context, context.CancelFunc) { - timeout := s.driverConfig.ConnectionAcquisitionTimeout - if timeout > 0 { - ctx, cancel := context.WithTimeout(ctx, timeout) - deadline, _ := ctx.Deadline() - s.log.Debugf(log.Session, s.logId, "connection acquisition timeout is %s, resolved deadline is: %s", timeout, deadline) - return ctx, cancel - } - if deadline, ok := ctx.Deadline(); ok { - s.log.Debugf(log.Session, s.logId, "connection acquisition user-provided deadline is: %s", deadline) - } - return ctx, nil -} - -// getServerList resolves the server list based on the session configuration. -// It returns a list of servers, a boolean indicating whether the home database guess was used, and an error if resolution fails. -func (s *sessionWithContext) getServerList(ctx context.Context, mode idb.AccessMode) ([]string, bool, error) { - if !s.resolveHomeDb { - serverList, err := s.getOrUpdateServers(ctx, mode, false, nil) - return serverList, false, err - } - - // Use cached home database if available - if s.homeDbGuess != "" && s.cache.IsEnabled() { - s.log.Debugf(log.Session, s.logId, "Using cached home database guess '%s' for server list resolution", s.homeDbGuess) - serverList, err := s.getOrUpdateServers(ctx, mode, true, func(database string) { - s.pinHomeDatabase(ctx, database) - }) - return serverList, true, err - } - - // Resolve home database if cache is unavailable, there's no guess, or a table doesn't exist. - s.log.Debugf(log.Session, s.logId, "No valid cached home database guess available, resolving home database") - if err := s.resolveHomeDatabase(ctx); err != nil { - return nil, false, err - } - serverList, err := s.getOrUpdateServers(ctx, mode, false, nil) - return serverList, false, err -} - -// borrowConnection requests a connection from the pool using the provided `serverList`. -func (s *sessionWithContext) borrowConnection( - ctx context.Context, - serverList []string, - livenessCheckTimeout time.Duration, -) (idb.Connection, error) { - return s.pool.Borrow( - ctx, - func() []string { return serverList }, - s.driverConfig.ConnectionAcquisitionTimeout != 0, - s.config.BoltLogger, - livenessCheckTimeout, - s.auth, - ) -} - -// selectDatabase ensures the correct database is selected on the connection. -func (s *sessionWithContext) selectDatabase(ctx context.Context, conn idb.Connection) error { - dbSelector, ok := conn.(idb.DatabaseSelector) - if !ok { - err := &db.FeatureNotSupportedError{ - Server: conn.ServerName(), Feature: "multi-database", Reason: "requires at least server v4", - } - return err - } - dbSelector.SelectDatabase(s.config.DatabaseName) - return nil -} - -func (s *sessionWithContext) retrieveBookmarks(ctx context.Context, conn idb.Connection, sentBookmarks Bookmarks) error { - if conn == nil { - return nil - } - return s.bookmarks.replaceBookmarks(ctx, sentBookmarks, conn.Bookmark()) -} - -func (s *sessionWithContext) retrieveSessionBookmarks(conn idb.Connection) { - if conn == nil { - return - } - s.bookmarks.replaceSessionBookmarks(conn.Bookmark()) -} - -func (s *sessionWithContext) Run(ctx context.Context, - cypher string, params map[string]any, configurers ...func(*TransactionConfig)) (ResultWithContext, error) { - - if s.closed { - err := &UsageError{Message: "Operation attempted on a closed session"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - if s.explicitTx != nil { - err := &UsageError{Message: "Trying to run auto-commit transaction while in explicit transaction"} - s.log.Error(log.Session, s.logId, err) - return nil, err - } - - if s.autocommitTx != nil { - s.autocommitTx.done(ctx) - } - - config := defaultTransactionConfig() - for _, c := range configurers { - c(&config) - } - if err := validateTransactionConfig(config); err != nil { - return nil, err - } - - conn, err := s.getConnection(ctx, s.defaultMode, s.driverConfig.ConnectionLivenessCheckTimeout) - if err != nil { - return nil, errorutil.WrapError(err) - } - - if !s.driverConfig.TelemetryDisabled { - conn.Telemetry(telemetry.AutoCommitTransaction, nil) - } - - runBookmarks, err := s.getBookmarks(ctx) - if err != nil { - s.pool.Return(ctx, conn) - return nil, errorutil.WrapError(err) - } - stream, err := conn.Run( - ctx, - idb.Command{ - Cypher: cypher, - Params: params, - FetchSize: s.fetchSize, - }, - idb.TxConfig{ - Mode: s.defaultMode, - Bookmarks: runBookmarks, - Timeout: config.Timeout, - Meta: config.Metadata, - ImpersonatedUser: s.config.ImpersonatedUser, - NotificationConfig: idb.NotificationConfig{ - MinSev: s.config.NotificationsMinSeverity, - DisCats: s.config.NotificationsDisabledCategories, - DisClas: s.config.NotificationsDisabledClassifications, - }, - }, - ) - if err != nil { - s.pool.Return(ctx, conn) - return nil, errorutil.WrapError(err) - } - - s.autocommitTx = &autocommitTransaction{ - conn: conn, - res: newResultWithContext(conn, stream, cypher, params, &transactionState{}, func() { - if err := s.retrieveBookmarks(ctx, conn, runBookmarks); err != nil { - s.log.Warnf(log.Session, s.logId, "could not retrieve bookmarks after result consumption: %s\n"+ - "the result of the initiating auto-commit transaction may not be visible to subsequent operations", err.Error()) - } - }), - onClosed: func() { - s.pool.Return(ctx, conn) - s.autocommitTx = nil - }, - } - - return s.autocommitTx.res, nil -} - -func (s *sessionWithContext) Close(ctx context.Context) error { - if s.closed { - // Safeguard against closing more than once - return nil - } - - var txErr error - if s.explicitTx != nil { - txErr = s.explicitTx.Close(ctx) - } - - if s.autocommitTx != nil { - s.autocommitTx.discard(ctx) - } - - defer s.log.Debugf(log.Session, s.logId, "Closed") - poolCleanUpChan := make(chan struct{}, 1) - routerCleanUpChan := make(chan struct{}, 1) - go func() { - s.pool.CleanUp(ctx) - poolCleanUpChan <- struct{}{} - }() - go func() { - s.router.CleanUp() - routerCleanUpChan <- struct{}{} - }() - <-poolCleanUpChan - <-routerCleanUpChan - s.closed = true - return txErr -} - -func (s *sessionWithContext) legacy() Session { - return &session{delegate: s} -} - -func (s *sessionWithContext) getServerInfo(ctx context.Context) (ServerInfo, error) { - if err := s.resolveHomeDatabase(ctx); err != nil { - return nil, errorutil.WrapError(err) - } - _, err := s.getOrUpdateServers(ctx, idb.ReadMode, false, nil) - if err != nil { - return nil, errorutil.WrapError(err) - } - conn, err := s.pool.Borrow( - ctx, - s.getServers(idb.ReadMode), - s.driverConfig.ConnectionAcquisitionTimeout != 0, - s.config.BoltLogger, - 0, - s.auth) - if err != nil { - return nil, errorutil.WrapError(err) - } - defer s.pool.Return(ctx, conn) - return &simpleServerInfo{ - address: conn.ServerName(), - agent: conn.ServerVersion(), - protocolVersion: conn.Version(), - }, nil -} - -func (s *sessionWithContext) verifyAuthentication(ctx context.Context) error { - _, err := s.getOrUpdateServers(ctx, idb.ReadMode, false, nil) - if err != nil { - return errorutil.WrapError(err) - } - conn, err := s.pool.Borrow( - ctx, - s.getServers(idb.ReadMode), - s.driverConfig.ConnectionAcquisitionTimeout != 0, - s.config.BoltLogger, - 0, - s.auth) - if err != nil { - return errorutil.WrapError(err) - } - defer s.pool.Return(ctx, conn) - return nil -} - -func (s *sessionWithContext) resolveHomeDatabase(ctx context.Context) error { - if !s.resolveHomeDb { - return nil - } - - bookmarks, err := s.getBookmarks(ctx) - if err != nil { - return err - } - defaultDb, err := s.router.GetNameOfDefaultDatabase( - ctx, - bookmarks, - s.config.ImpersonatedUser, - s.auth, - s.config.BoltLogger) - if err != nil { - return err - } - s.pinHomeDatabase(ctx, defaultDb) - return nil -} - -func (s *sessionWithContext) pinHomeDatabase(ctx context.Context, database string) { - if !s.resolveHomeDb { - return - } - - if key, err := computeCacheKey(ctx, s.auth, s.cache, s.config.ImpersonatedUser); err == nil { - s.cache.Set(key, database) - s.log.Debugf(log.Session, s.logId, "Cached home database '%s'", database) - } else { - s.log.Warnf(log.Session, s.logId, "Failed to compute cache key: %v", err) - } - - s.log.Debugf(log.Session, s.logId, "Resolved home database, uses db '%s'", database) - s.homeDbGuess = database - s.config.DatabaseName = database - s.resolveHomeDb = false -} - -func (s *sessionWithContext) getBookmarks(ctx context.Context) (Bookmarks, error) { - bookmarks, err := s.bookmarks.getBookmarks(ctx) - if err != nil { - return nil, err - } - result := collections.NewSet(bookmarks) - result.AddAll(s.bookmarks.currentBookmarks()) - return result.Values(), nil -} - -type erroredSessionWithContext struct { - err error -} - -func (s *erroredSessionWithContext) LastBookmarks() Bookmarks { - return nil -} - -func (s *erroredSessionWithContext) lastBookmark() string { - return "" -} -func (s *erroredSessionWithContext) BeginTransaction(context.Context, ...func(*TransactionConfig)) (ExplicitTransaction, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) ExecuteRead(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) ExecuteWrite(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) executeQueryRead(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) executeQueryWrite(context.Context, ManagedTransactionWork, ...func(*TransactionConfig)) (any, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) Run(context.Context, string, map[string]any, ...func(*TransactionConfig)) (ResultWithContext, error) { - return nil, s.err -} -func (s *erroredSessionWithContext) Close(context.Context) error { - return s.err -} -func (s *erroredSessionWithContext) legacy() Session { - return &erroredSession{err: s.err} -} -func (s *erroredSessionWithContext) getServerInfo(context.Context) (ServerInfo, error) { - return nil, s.err -} - -func (s *erroredSessionWithContext) verifyAuthentication(context.Context) error { - return s.err -} - -func defaultTransactionConfig() TransactionConfig { - return TransactionConfig{Timeout: math.MinInt, Metadata: nil} -} - -func validateTransactionConfig(config TransactionConfig) error { - if config.Timeout != math.MinInt && config.Timeout < 0 { - err := fmt.Sprintf("Negative transaction timeouts are not allowed. Given: %d", config.Timeout) - return &UsageError{Message: err} - } - return nil -} - -func computeCacheKey(ctx context.Context, token *idb.ReAuthToken, cache *homedb.Cache, impersonatedUser string) (string, error) { - if token.FromSession { - t, err := token.Manager.GetAuthToken(ctx) - if err != nil { - return "", err - } - return cache.ComputeKey(impersonatedUser, &t) - } - return cache.ComputeKey(impersonatedUser, nil) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction.go deleted file mode 100644 index 8fa53c2..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction.go +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" -) - -// Transaction represents a transaction in the Neo4j database -// ExplicitTransaction is available via SessionWithContext. -// SessionWithContext is available via the context-aware driver/returned -// by NewDriverWithContext. -// -// Deprecated: use ExplicitTransaction instead. Transaction will be removed in 6.0. -type Transaction interface { - // Run executes a statement on this transaction and returns a result - Run(cypher string, params map[string]any) (Result, error) - // Commit commits the transaction - Commit() error - // Rollback rolls back the transaction - Rollback() error - // Close rolls back the actual transaction if it's not already committed/rolled back - // and closes all resources associated with this transaction - Close() error -} - -// Transaction implementation when explicit transaction started -type transaction struct { - delegate ExplicitTransaction -} - -func (tx *transaction) Run(cypher string, params map[string]any) (Result, error) { - result, err := tx.delegate.Run(context.Background(), cypher, params) - if err != nil { - return nil, err - } - return result.legacy(), nil -} - -func (tx *transaction) Commit() error { - return tx.delegate.Commit(context.Background()) -} - -func (tx *transaction) Rollback() error { - return tx.delegate.Rollback(context.Background()) -} - -func (tx *transaction) Close() error { - return tx.delegate.Close(context.Background()) -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_config.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_config.go deleted file mode 100644 index f7cca87..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_config.go +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import "time" - -// TransactionConfig holds the settings for explicit and auto-commit transactions. Actual configuration is expected -// to be done using configuration functions that are predefined, i.e. 'WithTxTimeout' and 'WithTxMetadata', or one -// that you could write by your own. -type TransactionConfig struct { - // Timeout is the configured transaction timeout. - Timeout time.Duration - // Metadata is the configured transaction metadata that will be attached to the underlying transaction. - Metadata map[string]any -} - -// WithTxTimeout returns a transaction configuration function that applies a timeout to a transaction. -// -// Transactions that execute longer than the configured timeout will be terminated by the database. -// This functionality allows user code to limit query/transaction execution time. -// The specified timeout overrides the default timeout configured in the database using the `db.transaction.timeout` -// setting (`dbms.transaction.timeout` before Neo4j 5.0). -// Values higher than `db.transaction.timeout` will be ignored and will fall back to the default for server versions -// between 4.2 and 5.2 (inclusive). -// A `0` duration will make the transaction execute indefinitely. -// `math.MinInt` will use the default timeout configured on the server. -// Other negative durations are invalid. -// -// To apply a transaction timeout to an explicit transaction: -// -// session.BeginTransaction(WithTxTimeout(5*time.Second)) -// -// To apply a transaction timeout to an auto-commit transaction: -// -// session.Run("RETURN 1", nil, WithTxTimeout(5*time.Second)) -// -// To apply a transaction timeout to a read transaction function: -// -// session.ExecuteRead(DoWork, WithTxTimeout(5*time.Second)) -// -// To apply a transaction timeout to a write transaction function: -// -// session.ExecuteWrite(DoWork, WithTxTimeout(5*time.Second)) -// -// To apply a transaction timeout with the ExecuteQuery function, use ExecuteQueryWithTransactionConfig: -// -// ExecuteQuery(ctx, driver, query, parameters, transformer, -// ExecuteQueryWithTransactionConfig(WithTxTimeout(*time.Second)) -// ) -func WithTxTimeout(timeout time.Duration) func(*TransactionConfig) { - return func(config *TransactionConfig) { - config.Timeout = timeout - } -} - -// WithTxMetadata returns a transaction configuration function that attaches metadata to a transaction. -// -// To attach metadata to an explicit transaction: -// -// session.BeginTransaction(WithTxMetadata(map[string]any{"work-id": 1})) -// -// To attach metadata to an auto-commit transaction: -// -// session.Run("RETURN 1", nil, WithTxMetadata(map[string]any{"work-id": 1})) -// -// To attach metadata to a read transaction function: -// -// session.ExecuteRead(DoWork, WithTxMetadata(map[string]any{"work-id": 1})) -// -// To attach metadata to a write transaction function: -// -// session.ExecuteWrite(DoWork, WithTxMetadata(map[string]any{"work-id": 1})) -// -// To attach metadata with the ExecuteQuery function, use ExecuteQueryWithTransactionConfig: -// -// ExecuteQuery(ctx, driver, query, parameters, transformer, -// ExecuteQueryWithTransactionConfig(WithTxMetadata(map[string]any{"work-id": 1})) -// ) -func WithTxMetadata(metadata map[string]any) func(*TransactionConfig) { - return func(config *TransactionConfig) { - config.Metadata = metadata - } -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_helpers.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_helpers.go deleted file mode 100644 index 39a01bb..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_helpers.go +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" -) - -type ManagedTransactionWorkT[T any] func(tx ManagedTransaction) (T, error) - -// ExecuteRead executes the given unit of work in a read transaction with -// retry logic in place, via the provided session. -// -// This is the generic variant of SessionWithContext.ExecuteRead. -// -// If an error occurs, the zero value of T is returned. -func ExecuteRead[T any](ctx context.Context, session SessionWithContext, - work ManagedTransactionWorkT[T], - configurers ...func(config *TransactionConfig)) (T, error) { - - return castGeneric[T](session.ExecuteRead(ctx, transactionWorkAdapter(work), configurers...)) -} - -// ExecuteWrite executes the given unit of work in a write transaction with -// retry logic in place, via the provided session. -// -// This is the generic variant of SessionWithContext.ExecuteWrite. -// -// If an error occurs, the zero value of T is returned. -func ExecuteWrite[T any](ctx context.Context, session SessionWithContext, - work ManagedTransactionWorkT[T], - configurers ...func(config *TransactionConfig)) (T, error) { - - return castGeneric[T](session.ExecuteWrite(ctx, transactionWorkAdapter(work), configurers...)) -} - -func transactionWorkAdapter[T any](work ManagedTransactionWorkT[T]) ManagedTransactionWork { - return func(tx ManagedTransaction) (any, error) { - return work(tx) - } -} - -// castGeneric performs a type assertion on the given `result` to the generic type T, unless an error has occurred. -// -// Implementation note: the function currently assumes that `result` is compatible with T and does not perform a soft -// assertion. -// -// For instance, the following code would currently panic instead of returning an error: -// -// str, err := castGeneric[string](42, nil) -func castGeneric[T any](result any, err error) (T, error) { - if err != nil { - return *new(T), err - } - return result.(T), nil -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_with_context.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_with_context.go deleted file mode 100644 index d1a7add..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/transaction_with_context.go +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "context" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil" -) - -// ManagedTransaction represents a transaction managed by the driver and operated on by the user, via transaction functions -type ManagedTransaction interface { - // Run executes a statement on this transaction and returns a result - Run(ctx context.Context, cypher string, params map[string]any) (ResultWithContext, error) - - legacy() Transaction -} - -// ExplicitTransaction represents a transaction in the Neo4j database -type ExplicitTransaction interface { - // Run executes a statement on this transaction and returns a result - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Run(ctx context.Context, cypher string, params map[string]any) (ResultWithContext, error) - // Commit commits the transaction - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Commit(ctx context.Context) error - // Rollback rolls back the transaction - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Rollback(ctx context.Context) error - // Close rolls back the actual transaction if it's not already committed/rolled back - // and closes all resources associated with this transaction - // Contexts terminating too early negatively affect connection pooling and degrade the driver performance. - Close(ctx context.Context) error - - // legacy returns the non-cancelling, legacy variant of this ExplicitTransaction type - // This is used so that legacy transaction functions can delegate work to their newer, context-aware variants - legacy() Transaction -} - -type transactionState struct { - err error - resultErrorHandlers []func(error) -} - -func (t *transactionState) onError(err error) { - t.err = err - for _, resultErrorHandler := range t.resultErrorHandlers { - resultErrorHandler(err) - } -} - -// Transaction implementation when explicit transaction started -type explicitTransaction struct { - conn db.Connection - fetchSize int - txHandle db.TxHandle - txState *transactionState - onClosed func() -} - -func (tx *explicitTransaction) Run(ctx context.Context, cypher string, params map[string]any) (ResultWithContext, error) { - if tx.conn == nil { - return nil, transactionAlreadyCompletedError() - } - stream, err := tx.conn.RunTx(ctx, tx.txHandle, db.Command{Cypher: cypher, Params: params, FetchSize: tx.fetchSize}) - if err != nil { - tx.txState.onError(err) - return nil, errorutil.WrapError(tx.txState.err) - } - // no result consumption hook here since bookmarks are sent after commit, not after pulling results - result := newResultWithContext(tx.conn, stream, cypher, params, tx.txState, nil) - tx.txState.resultErrorHandlers = append(tx.txState.resultErrorHandlers, result.errorHandler) - return result, nil -} - -func (tx *explicitTransaction) Commit(ctx context.Context) error { - if tx.txState.err != nil { - return transactionAlreadyCompletedError() - } - if tx.conn == nil { - return transactionAlreadyCompletedError() - } - tx.txState.err = tx.conn.TxCommit(ctx, tx.txHandle) - tx.onClosed() - return errorutil.WrapError(tx.txState.err) -} - -func (tx *explicitTransaction) Close(ctx context.Context) error { - if tx.conn == nil { - // repeated calls to Close => NOOP - return nil - } - return tx.Rollback(ctx) -} - -func (tx *explicitTransaction) Rollback(ctx context.Context) error { - if tx.txState.err != nil { - return nil - } - if tx.conn == nil { - return transactionAlreadyCompletedError() - } - if !tx.conn.IsAlive() || tx.conn.HasFailed() { - // tx implicitly rolled back by having failed - tx.txState.err = nil - } else { - tx.txState.err = tx.conn.TxRollback(ctx, tx.txHandle) - } - tx.onClosed() - return errorutil.WrapError(tx.txState.err) -} - -func (tx *explicitTransaction) legacy() Transaction { - return &transaction{ - delegate: tx, - } -} - -// ManagedTransaction implementation used as parameter to transactional functions -type managedTransaction struct { - conn db.Connection - fetchSize int - txHandle db.TxHandle - txState *transactionState -} - -func (tx *managedTransaction) Run(ctx context.Context, cypher string, params map[string]any) (ResultWithContext, error) { - stream, err := tx.conn.RunTx(ctx, tx.txHandle, db.Command{Cypher: cypher, Params: params, FetchSize: tx.fetchSize}) - if err != nil { - return nil, errorutil.WrapError(err) - } - // no result consumption hook here since bookmarks are sent after commit, not after pulling results - return newResultWithContext(tx.conn, stream, cypher, params, tx.txState, nil), nil -} - -// legacy interop only - remove in 6.0 -func (tx *managedTransaction) Commit(context.Context) error { - return &UsageError{Message: "Commit not allowed on retryable transaction"} -} - -// legacy interop only - remove in 6.0 -func (tx *managedTransaction) Rollback(context.Context) error { - return &UsageError{Message: "Rollback not allowed on retryable transaction"} -} - -// legacy interop only - remove in 6.0 -func (tx *managedTransaction) Close(context.Context) error { - return &UsageError{Message: "Close not allowed on retryable transaction"} -} - -// legacy interop only - remove in 6.0 -func (tx *managedTransaction) legacy() Transaction { - return &transaction{ - delegate: tx, - } -} - -// Represents an auto commit transaction. -// Does not implement the ExplicitTransaction nor the ManagedTransaction interface. -type autocommitTransaction struct { - conn db.Connection - res ResultWithContext - closed bool - onClosed func() -} - -func (tx *autocommitTransaction) done(ctx context.Context) { - if !tx.closed { - tx.res.buffer(ctx) - tx.closed = true - tx.onClosed() - } -} - -func (tx *autocommitTransaction) discard(ctx context.Context) { - if !tx.closed { - tx.res.Consume(ctx) - tx.closed = true - tx.onClosed() - } -} - -func transactionAlreadyCompletedError() *UsageError { - return &UsageError{Message: "cannot use this transaction, because it has been committed or rolled back either because of an error or explicit termination"} -} diff --git a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/useragent.go b/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/useragent.go deleted file mode 100644 index 6c36a51..0000000 --- a/vendor/github.com/neo4j/neo4j-go-driver/v5/neo4j/useragent.go +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) "Neo4j" - * Neo4j Sweden AB [https://neo4j.com] - * - * 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 - * - * https://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 neo4j - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata" -) - -const UserAgent = "Go Driver/" + metadata.DriverVersion diff --git a/vendor/github.com/oklog/ulid/v2/.gitignore b/vendor/github.com/oklog/ulid/v2/.gitignore deleted file mode 100644 index c92c4d5..0000000 --- a/vendor/github.com/oklog/ulid/v2/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -#### joe made this: http://goel.io/joe - -#####=== Go ===##### - -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof - diff --git a/vendor/github.com/oklog/ulid/v2/AUTHORS.md b/vendor/github.com/oklog/ulid/v2/AUTHORS.md deleted file mode 100644 index 95581c7..0000000 --- a/vendor/github.com/oklog/ulid/v2/AUTHORS.md +++ /dev/null @@ -1,2 +0,0 @@ -- Peter Bourgon (@peterbourgon) -- Tomás Senart (@tsenart) diff --git a/vendor/github.com/oklog/ulid/v2/CHANGELOG.md b/vendor/github.com/oklog/ulid/v2/CHANGELOG.md deleted file mode 100644 index 8da38c6..0000000 --- a/vendor/github.com/oklog/ulid/v2/CHANGELOG.md +++ /dev/null @@ -1,33 +0,0 @@ -## 1.3.1 / 2018-10-02 - -* Use underlying entropy source for random increments in Monotonic (#32) - -## 1.3.0 / 2018-09-29 - -* Monotonic entropy support (#31) - -## 1.2.0 / 2018-09-09 - -* Add a function to convert Unix time in milliseconds back to time.Time (#30) - -## 1.1.0 / 2018-08-15 - -* Ensure random part is always read from the entropy reader in full (#28) - -## 1.0.0 / 2018-07-29 - -* Add ParseStrict and MustParseStrict functions (#26) -* Enforce overflow checking when parsing (#20) - -## 0.3.0 / 2017-01-03 - -* Implement ULID.Compare method - -## 0.2.0 / 2016-12-13 - -* Remove year 2262 Timestamp bug. (#1) -* Gracefully handle invalid encodings when parsing. - -## 0.1.0 / 2016-12-06 - -* First ULID release diff --git a/vendor/github.com/oklog/ulid/v2/CONTRIBUTING.md b/vendor/github.com/oklog/ulid/v2/CONTRIBUTING.md deleted file mode 100644 index 68f03f2..0000000 --- a/vendor/github.com/oklog/ulid/v2/CONTRIBUTING.md +++ /dev/null @@ -1,17 +0,0 @@ -# Contributing - -We use GitHub to manage reviews of pull requests. - -* If you have a trivial fix or improvement, go ahead and create a pull - request, addressing (with `@...`) one or more of the maintainers - (see [AUTHORS.md](AUTHORS.md)) in the description of the pull request. - -* If you plan to do something more involved, first propose your ideas - in a Github issue. This will avoid unnecessary work and surely give - you and us a good deal of inspiration. - -* Relevant coding style guidelines are the [Go Code Review - Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments) - and the _Formatting and style_ section of Peter Bourgon's [Go: Best - Practices for Production - Environments](http://peter.bourgon.org/go-in-production/#formatting-and-style). diff --git a/vendor/github.com/oklog/ulid/v2/LICENSE b/vendor/github.com/oklog/ulid/v2/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/vendor/github.com/oklog/ulid/v2/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. diff --git a/vendor/github.com/oklog/ulid/v2/README.md b/vendor/github.com/oklog/ulid/v2/README.md deleted file mode 100644 index c0094ce..0000000 --- a/vendor/github.com/oklog/ulid/v2/README.md +++ /dev/null @@ -1,234 +0,0 @@ -# Universally Unique Lexicographically Sortable Identifier - -[![Project status](https://img.shields.io/github/release/oklog/ulid.svg?style=flat-square)](https://github.com/oklog/ulid/releases/latest) -![Build Status](https://github.com/oklog/ulid/actions/workflows/test.yml/badge.svg) -[![Go Report Card](https://goreportcard.com/badge/oklog/ulid?cache=0)](https://goreportcard.com/report/oklog/ulid) -[![Coverage Status](https://coveralls.io/repos/github/oklog/ulid/badge.svg?branch=master&cache=0)](https://coveralls.io/github/oklog/ulid?branch=master) -[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/oklog/ulid/v2) -[![Apache 2 licensed](https://img.shields.io/badge/license-Apache2-blue.svg)](https://raw.githubusercontent.com/oklog/ulid/master/LICENSE) - -A Go port of [ulid/javascript](https://github.com/ulid/javascript) with binary format implemented. - -## Background - -A GUID/UUID can be suboptimal for many use-cases because: - -- It isn't the most character efficient way of encoding 128 bits -- UUID v1/v2 is impractical in many environments, as it requires access to a unique, stable MAC address -- UUID v3/v5 requires a unique seed and produces randomly distributed IDs, which can cause fragmentation in many data structures -- UUID v4 provides no other information than randomness which can cause fragmentation in many data structures - -A ULID however: - -- Is compatible with UUID/GUID's -- 1.21e+24 unique ULIDs per millisecond (1,208,925,819,614,629,174,706,176 to be exact) -- Lexicographically sortable -- Canonically encoded as a 26 character string, as opposed to the 36 character UUID -- Uses Crockford's base32 for better efficiency and readability (5 bits per character) -- Case insensitive -- No special characters (URL safe) -- Monotonic sort order (correctly detects and handles the same millisecond) - -## Install - -This package requires Go modules. - -```shell -go get github.com/oklog/ulid/v2 -``` - -## Usage - -ULIDs are constructed from two things: a timestamp with millisecond precision, -and some random data. - -Timestamps are modeled as uint64 values representing a Unix time in milliseconds. -They can be produced by passing a [time.Time](https://pkg.go.dev/time#Time) to -[ulid.Timestamp](https://pkg.go.dev/github.com/oklog/ulid/v2#Timestamp), -or by calling [time.Time.UnixMilli](https://pkg.go.dev/time#Time.UnixMilli) -and converting the returned value to `uint64`. - -Random data is taken from a provided [io.Reader](https://pkg.go.dev/io#Reader). -This design allows for greater flexibility when choosing trade-offs, but can be -a bit confusing to newcomers. - -If you just want to generate a ULID and don't (yet) care about details like -performance, cryptographic security, monotonicity, etc., use the -[ulid.Make](https://pkg.go.dev/github.com/oklog/ulid/v2#Make) helper function. -This function calls [time.Now](https://pkg.go.dev/time#Now) to get a timestamp, -and uses a source of entropy which is process-global, -[pseudo-random](https://pkg.go.dev/math/rand)), and -[monotonic](https://pkg.go.dev/oklog/ulid/v2#LockedMonotonicReader)). - -```go -println(ulid.Make()) -// 01G65Z755AFWAKHE12NY0CQ9FH -``` - -More advanced use cases should utilize -[ulid.New](https://pkg.go.dev/github.com/oklog/ulid/v2#New). - -```go -entropy := rand.New(rand.NewSource(time.Now().UnixNano())) -ms := ulid.Timestamp(time.Now()) -println(ulid.New(ms, entropy)) -// 01G65Z755AFWAKHE12NY0CQ9FH -``` - -Care should be taken when providing a source of entropy. - -The above example utilizes [math/rand.Rand](https://pkg.go.dev/math/rand#Rand), -which is not safe for concurrent use by multiple goroutines. Consider -alternatives such as -[x/exp/rand](https://pkg.go.dev/golang.org/x/exp/rand#LockedSource). -Security-sensitive use cases should always use cryptographically secure entropy -provided by [crypto/rand](https://pkg.go.dev/crypto/rand). - -Performance-sensitive use cases should avoid synchronization when generating -IDs. One option is to use a unique source of entropy for each concurrent -goroutine, which results in no lock contention, but cannot provide strong -guarantees about the random data, and does not provide monotonicity within a -given millisecond. One common performance optimization is to pool sources of -entropy using a [sync.Pool](https://pkg.go.dev/sync#Pool). - -Monotonicity is a property that says each ULID is "bigger than" the previous -one. ULIDs are automatically monotonic, but only to millisecond precision. ULIDs -generated within the same millisecond are ordered by their random component, -which means they are by default un-ordered. You can use -[ulid.MonotonicEntropy](https://pkg.go.dev/oklog/ulid/v2#MonotonicEntropy) or -[ulid.LockedMonotonicEntropy](https://pkg.go.dev/oklog/ulid/v2#LockedMonotonicEntropy) -to create ULIDs that are monotonic within a given millisecond, with caveats. See -the documentation for details. - -If you don't care about time-based ordering of generated IDs, then there's no -reason to use ULIDs! There are many other kinds of IDs that are easier, faster, -smaller, etc. Consider UUIDs. - -## Commandline tool - -This repo also provides a tool to generate and parse ULIDs at the command line. -These commands should install the latest version of the tool at `bin/ulid`: - -```shell -cd $(mktemp -d) -env GOPATH=$(pwd) GO111MODULE=on go get -v github.com/oklog/ulid/v2/cmd/ulid -``` - -Usage: - -```shell -Usage: ulid [-hlqz] [-f ] [parameters ...] - -f, --format= when parsing, show times in this format: default, rfc3339, unix, ms - -h, --help print this help text - -l, --local when parsing, show local time instead of UTC - -q, --quick when generating, use non-crypto-grade entropy - -z, --zero when generating, fix entropy to all-zeroes -``` - -Examples: - -```shell -$ ulid -01D78XYFJ1PRM1WPBCBT3VHMNV -$ ulid -z -01D78XZ44G0000000000000000 -$ ulid 01D78XZ44G0000000000000000 -Sun Mar 31 03:51:23.536 UTC 2019 -$ ulid --format=rfc3339 --local 01D78XZ44G0000000000000000 -2019-03-31T05:51:23.536+02:00 -``` - -## Specification - -Below is the current specification of ULID as implemented in this repository. - -### Components - -**Timestamp** -- 48 bits -- UNIX-time in milliseconds -- Won't run out of space till the year 10889 AD - -**Entropy** -- 80 bits -- User defined entropy source. -- Monotonicity within the same millisecond with [`ulid.Monotonic`](https://godoc.org/github.com/oklog/ulid#Monotonic) - -### Encoding - -[Crockford's Base32](http://www.crockford.com/wrmg/base32.html) is used as shown. -This alphabet excludes the letters I, L, O, and U to avoid confusion and abuse. - -``` -0123456789ABCDEFGHJKMNPQRSTVWXYZ -``` - -### Binary Layout and Byte Order - -The components are encoded as 16 octets. Each component is encoded with the Most Significant Byte first (network byte order). - -``` -0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| 32_bit_uint_time_high | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| 16_bit_uint_time_low | 16_bit_uint_random | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| 32_bit_uint_random | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| 32_bit_uint_random | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -``` - -### String Representation - -``` - 01AN4Z07BY 79KA1307SR9X4MV3 -|----------| |----------------| - Timestamp Entropy - 10 chars 16 chars - 48bits 80bits - base32 base32 -``` - -## Test - -```shell -go test ./... -``` - -## Benchmarks - -On a Intel Core i7 Ivy Bridge 2.7 GHz, MacOS 10.12.1 and Go 1.8.0beta1 - -``` -BenchmarkNew/WithCryptoEntropy-8 2000000 771 ns/op 20.73 MB/s 16 B/op 1 allocs/op -BenchmarkNew/WithEntropy-8 20000000 65.8 ns/op 243.01 MB/s 16 B/op 1 allocs/op -BenchmarkNew/WithoutEntropy-8 50000000 30.0 ns/op 534.06 MB/s 16 B/op 1 allocs/op -BenchmarkMustNew/WithCryptoEntropy-8 2000000 781 ns/op 20.48 MB/s 16 B/op 1 allocs/op -BenchmarkMustNew/WithEntropy-8 20000000 70.0 ns/op 228.51 MB/s 16 B/op 1 allocs/op -BenchmarkMustNew/WithoutEntropy-8 50000000 34.6 ns/op 462.98 MB/s 16 B/op 1 allocs/op -BenchmarkParse-8 50000000 30.0 ns/op 866.16 MB/s 0 B/op 0 allocs/op -BenchmarkMustParse-8 50000000 35.2 ns/op 738.94 MB/s 0 B/op 0 allocs/op -BenchmarkString-8 20000000 64.9 ns/op 246.40 MB/s 32 B/op 1 allocs/op -BenchmarkMarshal/Text-8 20000000 55.8 ns/op 286.84 MB/s 32 B/op 1 allocs/op -BenchmarkMarshal/TextTo-8 100000000 22.4 ns/op 714.91 MB/s 0 B/op 0 allocs/op -BenchmarkMarshal/Binary-8 300000000 4.02 ns/op 3981.77 MB/s 0 B/op 0 allocs/op -BenchmarkMarshal/BinaryTo-8 2000000000 1.18 ns/op 13551.75 MB/s 0 B/op 0 allocs/op -BenchmarkUnmarshal/Text-8 100000000 20.5 ns/op 1265.27 MB/s 0 B/op 0 allocs/op -BenchmarkUnmarshal/Binary-8 300000000 4.94 ns/op 3240.01 MB/s 0 B/op 0 allocs/op -BenchmarkNow-8 100000000 15.1 ns/op 528.09 MB/s 0 B/op 0 allocs/op -BenchmarkTimestamp-8 2000000000 0.29 ns/op 27271.59 MB/s 0 B/op 0 allocs/op -BenchmarkTime-8 2000000000 0.58 ns/op 13717.80 MB/s 0 B/op 0 allocs/op -BenchmarkSetTime-8 2000000000 0.89 ns/op 9023.95 MB/s 0 B/op 0 allocs/op -BenchmarkEntropy-8 200000000 7.62 ns/op 1311.66 MB/s 0 B/op 0 allocs/op -BenchmarkSetEntropy-8 2000000000 0.88 ns/op 11376.54 MB/s 0 B/op 0 allocs/op -BenchmarkCompare-8 200000000 7.34 ns/op 4359.23 MB/s 0 B/op 0 allocs/op -``` - -## Prior Art - -- [ulid/javascript](https://github.com/ulid/javascript) -- [RobThree/NUlid](https://github.com/RobThree/NUlid) -- [imdario/go-ulid](https://github.com/imdario/go-ulid) diff --git a/vendor/github.com/oklog/ulid/v2/ulid.go b/vendor/github.com/oklog/ulid/v2/ulid.go deleted file mode 100644 index 0cb258d..0000000 --- a/vendor/github.com/oklog/ulid/v2/ulid.go +++ /dev/null @@ -1,696 +0,0 @@ -// Copyright 2016 The Oklog Authors -// 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 ulid - -import ( - "bufio" - "bytes" - "database/sql/driver" - "encoding/binary" - "errors" - "io" - "math" - "math/bits" - "math/rand" - "sync" - "time" -) - -/* -An ULID is a 16 byte Universally Unique Lexicographically Sortable Identifier - - The components are encoded as 16 octets. - Each component is encoded with the MSB first (network byte order). - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 32_bit_uint_time_high | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 16_bit_uint_time_low | 16_bit_uint_random | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 32_bit_uint_random | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 32_bit_uint_random | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -*/ -type ULID [16]byte - -var ( - // ErrDataSize is returned when parsing or unmarshaling ULIDs with the wrong - // data size. - ErrDataSize = errors.New("ulid: bad data size when unmarshaling") - - // ErrInvalidCharacters is returned when parsing or unmarshaling ULIDs with - // invalid Base32 encodings. - ErrInvalidCharacters = errors.New("ulid: bad data characters when unmarshaling") - - // ErrBufferSize is returned when marshalling ULIDs to a buffer of insufficient - // size. - ErrBufferSize = errors.New("ulid: bad buffer size when marshaling") - - // ErrBigTime is returned when constructing an ULID with a time that is larger - // than MaxTime. - ErrBigTime = errors.New("ulid: time too big") - - // ErrOverflow is returned when unmarshaling a ULID whose first character is - // larger than 7, thereby exceeding the valid bit depth of 128. - ErrOverflow = errors.New("ulid: overflow when unmarshaling") - - // ErrMonotonicOverflow is returned by a Monotonic entropy source when - // incrementing the previous ULID's entropy bytes would result in overflow. - ErrMonotonicOverflow = errors.New("ulid: monotonic entropy overflow") - - // ErrScanValue is returned when the value passed to scan cannot be unmarshaled - // into the ULID. - ErrScanValue = errors.New("ulid: source value must be a string or byte slice") -) - -// MonotonicReader is an interface that should yield monotonically increasing -// entropy into the provided slice for all calls with the same ms parameter. If -// a MonotonicReader is provided to the New constructor, its MonotonicRead -// method will be used instead of Read. -type MonotonicReader interface { - io.Reader - MonotonicRead(ms uint64, p []byte) error -} - -// New returns an ULID with the given Unix milliseconds timestamp and an -// optional entropy source. Use the Timestamp function to convert -// a time.Time to Unix milliseconds. -// -// ErrBigTime is returned when passing a timestamp bigger than MaxTime. -// Reading from the entropy source may also return an error. -// -// Safety for concurrent use is only dependent on the safety of the -// entropy source. -func New(ms uint64, entropy io.Reader) (id ULID, err error) { - if err = id.SetTime(ms); err != nil { - return id, err - } - - switch e := entropy.(type) { - case nil: - return id, err - case MonotonicReader: - err = e.MonotonicRead(ms, id[6:]) - default: - _, err = io.ReadFull(e, id[6:]) - } - - return id, err -} - -// MustNew is a convenience function equivalent to New that panics on failure -// instead of returning an error. -func MustNew(ms uint64, entropy io.Reader) ULID { - id, err := New(ms, entropy) - if err != nil { - panic(err) - } - return id -} - -var ( - entropy io.Reader - entropyOnce sync.Once -) - -// DefaultEntropy returns a thread-safe per process monotonically increasing -// entropy source. -func DefaultEntropy() io.Reader { - entropyOnce.Do(func() { - rng := rand.New(rand.NewSource(time.Now().UnixNano())) - entropy = &LockedMonotonicReader{ - MonotonicReader: Monotonic(rng, 0), - } - }) - return entropy -} - -// Make returns an ULID with the current time in Unix milliseconds and -// monotonically increasing entropy for the same millisecond. -// It is safe for concurrent use, leveraging a sync.Pool underneath for minimal -// contention. -func Make() (id ULID) { - // NOTE: MustNew can't panic since DefaultEntropy never returns an error. - return MustNew(Now(), DefaultEntropy()) -} - -// Parse parses an encoded ULID, returning an error in case of failure. -// -// ErrDataSize is returned if the len(ulid) is different from an encoded -// ULID's length. Invalid encodings produce undefined ULIDs. For a version that -// returns an error instead, see ParseStrict. -func Parse(ulid string) (id ULID, err error) { - return id, parse([]byte(ulid), false, &id) -} - -// ParseStrict parses an encoded ULID, returning an error in case of failure. -// -// It is like Parse, but additionally validates that the parsed ULID consists -// only of valid base32 characters. It is slightly slower than Parse. -// -// ErrDataSize is returned if the len(ulid) is different from an encoded -// ULID's length. Invalid encodings return ErrInvalidCharacters. -func ParseStrict(ulid string) (id ULID, err error) { - return id, parse([]byte(ulid), true, &id) -} - -func parse(v []byte, strict bool, id *ULID) error { - // Check if a base32 encoded ULID is the right length. - if len(v) != EncodedSize { - return ErrDataSize - } - - // Check if all the characters in a base32 encoded ULID are part of the - // expected base32 character set. - if strict && - (dec[v[0]] == 0xFF || - dec[v[1]] == 0xFF || - dec[v[2]] == 0xFF || - dec[v[3]] == 0xFF || - dec[v[4]] == 0xFF || - dec[v[5]] == 0xFF || - dec[v[6]] == 0xFF || - dec[v[7]] == 0xFF || - dec[v[8]] == 0xFF || - dec[v[9]] == 0xFF || - dec[v[10]] == 0xFF || - dec[v[11]] == 0xFF || - dec[v[12]] == 0xFF || - dec[v[13]] == 0xFF || - dec[v[14]] == 0xFF || - dec[v[15]] == 0xFF || - dec[v[16]] == 0xFF || - dec[v[17]] == 0xFF || - dec[v[18]] == 0xFF || - dec[v[19]] == 0xFF || - dec[v[20]] == 0xFF || - dec[v[21]] == 0xFF || - dec[v[22]] == 0xFF || - dec[v[23]] == 0xFF || - dec[v[24]] == 0xFF || - dec[v[25]] == 0xFF) { - return ErrInvalidCharacters - } - - // Check if the first character in a base32 encoded ULID will overflow. This - // happens because the base32 representation encodes 130 bits, while the - // ULID is only 128 bits. - // - // See https://github.com/oklog/ulid/issues/9 for details. - if v[0] > '7' { - return ErrOverflow - } - - // Use an optimized unrolled loop (from https://github.com/RobThree/NUlid) - // to decode a base32 ULID. - - // 6 bytes timestamp (48 bits) - (*id)[0] = (dec[v[0]] << 5) | dec[v[1]] - (*id)[1] = (dec[v[2]] << 3) | (dec[v[3]] >> 2) - (*id)[2] = (dec[v[3]] << 6) | (dec[v[4]] << 1) | (dec[v[5]] >> 4) - (*id)[3] = (dec[v[5]] << 4) | (dec[v[6]] >> 1) - (*id)[4] = (dec[v[6]] << 7) | (dec[v[7]] << 2) | (dec[v[8]] >> 3) - (*id)[5] = (dec[v[8]] << 5) | dec[v[9]] - - // 10 bytes of entropy (80 bits) - (*id)[6] = (dec[v[10]] << 3) | (dec[v[11]] >> 2) - (*id)[7] = (dec[v[11]] << 6) | (dec[v[12]] << 1) | (dec[v[13]] >> 4) - (*id)[8] = (dec[v[13]] << 4) | (dec[v[14]] >> 1) - (*id)[9] = (dec[v[14]] << 7) | (dec[v[15]] << 2) | (dec[v[16]] >> 3) - (*id)[10] = (dec[v[16]] << 5) | dec[v[17]] - (*id)[11] = (dec[v[18]] << 3) | dec[v[19]]>>2 - (*id)[12] = (dec[v[19]] << 6) | (dec[v[20]] << 1) | (dec[v[21]] >> 4) - (*id)[13] = (dec[v[21]] << 4) | (dec[v[22]] >> 1) - (*id)[14] = (dec[v[22]] << 7) | (dec[v[23]] << 2) | (dec[v[24]] >> 3) - (*id)[15] = (dec[v[24]] << 5) | dec[v[25]] - - return nil -} - -// MustParse is a convenience function equivalent to Parse that panics on failure -// instead of returning an error. -func MustParse(ulid string) ULID { - id, err := Parse(ulid) - if err != nil { - panic(err) - } - return id -} - -// MustParseStrict is a convenience function equivalent to ParseStrict that -// panics on failure instead of returning an error. -func MustParseStrict(ulid string) ULID { - id, err := ParseStrict(ulid) - if err != nil { - panic(err) - } - return id -} - -// Bytes returns bytes slice representation of ULID. -func (id ULID) Bytes() []byte { - return id[:] -} - -// String returns a lexicographically sortable string encoded ULID -// (26 characters, non-standard base 32) e.g. 01AN4Z07BY79KA1307SR9X4MV3. -// Format: tttttttttteeeeeeeeeeeeeeee where t is time and e is entropy. -func (id ULID) String() string { - ulid := make([]byte, EncodedSize) - _ = id.MarshalTextTo(ulid) - return string(ulid) -} - -// MarshalBinary implements the encoding.BinaryMarshaler interface by -// returning the ULID as a byte slice. -func (id ULID) MarshalBinary() ([]byte, error) { - ulid := make([]byte, len(id)) - return ulid, id.MarshalBinaryTo(ulid) -} - -// MarshalBinaryTo writes the binary encoding of the ULID to the given buffer. -// ErrBufferSize is returned when the len(dst) != 16. -func (id ULID) MarshalBinaryTo(dst []byte) error { - if len(dst) != len(id) { - return ErrBufferSize - } - - copy(dst, id[:]) - return nil -} - -// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface by -// copying the passed data and converting it to an ULID. ErrDataSize is -// returned if the data length is different from ULID length. -func (id *ULID) UnmarshalBinary(data []byte) error { - if len(data) != len(*id) { - return ErrDataSize - } - - copy((*id)[:], data) - return nil -} - -// Encoding is the base 32 encoding alphabet used in ULID strings. -const Encoding = "0123456789ABCDEFGHJKMNPQRSTVWXYZ" - -// MarshalText implements the encoding.TextMarshaler interface by -// returning the string encoded ULID. -func (id ULID) MarshalText() ([]byte, error) { - ulid := make([]byte, EncodedSize) - return ulid, id.MarshalTextTo(ulid) -} - -// MarshalTextTo writes the ULID as a string to the given buffer. -// ErrBufferSize is returned when the len(dst) != 26. -func (id ULID) MarshalTextTo(dst []byte) error { - // Optimized unrolled loop ahead. - // From https://github.com/RobThree/NUlid - - if len(dst) != EncodedSize { - return ErrBufferSize - } - - // 10 byte timestamp - dst[0] = Encoding[(id[0]&224)>>5] - dst[1] = Encoding[id[0]&31] - dst[2] = Encoding[(id[1]&248)>>3] - dst[3] = Encoding[((id[1]&7)<<2)|((id[2]&192)>>6)] - dst[4] = Encoding[(id[2]&62)>>1] - dst[5] = Encoding[((id[2]&1)<<4)|((id[3]&240)>>4)] - dst[6] = Encoding[((id[3]&15)<<1)|((id[4]&128)>>7)] - dst[7] = Encoding[(id[4]&124)>>2] - dst[8] = Encoding[((id[4]&3)<<3)|((id[5]&224)>>5)] - dst[9] = Encoding[id[5]&31] - - // 16 bytes of entropy - dst[10] = Encoding[(id[6]&248)>>3] - dst[11] = Encoding[((id[6]&7)<<2)|((id[7]&192)>>6)] - dst[12] = Encoding[(id[7]&62)>>1] - dst[13] = Encoding[((id[7]&1)<<4)|((id[8]&240)>>4)] - dst[14] = Encoding[((id[8]&15)<<1)|((id[9]&128)>>7)] - dst[15] = Encoding[(id[9]&124)>>2] - dst[16] = Encoding[((id[9]&3)<<3)|((id[10]&224)>>5)] - dst[17] = Encoding[id[10]&31] - dst[18] = Encoding[(id[11]&248)>>3] - dst[19] = Encoding[((id[11]&7)<<2)|((id[12]&192)>>6)] - dst[20] = Encoding[(id[12]&62)>>1] - dst[21] = Encoding[((id[12]&1)<<4)|((id[13]&240)>>4)] - dst[22] = Encoding[((id[13]&15)<<1)|((id[14]&128)>>7)] - dst[23] = Encoding[(id[14]&124)>>2] - dst[24] = Encoding[((id[14]&3)<<3)|((id[15]&224)>>5)] - dst[25] = Encoding[id[15]&31] - - return nil -} - -// Byte to index table for O(1) lookups when unmarshaling. -// We use 0xFF as sentinel value for invalid indexes. -var dec = [...]byte{ - 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, 0x00, 0x01, - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, - 0x0F, 0x10, 0x11, 0xFF, 0x12, 0x13, 0xFF, 0x14, 0x15, 0xFF, - 0x16, 0x17, 0x18, 0x19, 0x1A, 0xFF, 0x1B, 0x1C, 0x1D, 0x1E, - 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x0B, 0x0C, - 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0xFF, 0x12, 0x13, 0xFF, 0x14, - 0x15, 0xFF, 0x16, 0x17, 0x18, 0x19, 0x1A, 0xFF, 0x1B, 0x1C, - 0x1D, 0x1E, 0x1F, 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, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -} - -// EncodedSize is the length of a text encoded ULID. -const EncodedSize = 26 - -// UnmarshalText implements the encoding.TextUnmarshaler interface by -// parsing the data as string encoded ULID. -// -// ErrDataSize is returned if the len(v) is different from an encoded -// ULID's length. Invalid encodings produce undefined ULIDs. -func (id *ULID) UnmarshalText(v []byte) error { - return parse(v, false, id) -} - -// Time returns the Unix time in milliseconds encoded in the ULID. -// Use the top level Time function to convert the returned value to -// a time.Time. -func (id ULID) Time() uint64 { - return uint64(id[5]) | uint64(id[4])<<8 | - uint64(id[3])<<16 | uint64(id[2])<<24 | - uint64(id[1])<<32 | uint64(id[0])<<40 -} - -// maxTime is the maximum Unix time in milliseconds that can be -// represented in an ULID. -var maxTime = ULID{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}.Time() - -// MaxTime returns the maximum Unix time in milliseconds that -// can be encoded in an ULID. -func MaxTime() uint64 { return maxTime } - -// Now is a convenience function that returns the current -// UTC time in Unix milliseconds. Equivalent to: -// Timestamp(time.Now().UTC()) -func Now() uint64 { return Timestamp(time.Now().UTC()) } - -// Timestamp converts a time.Time to Unix milliseconds. -// -// Because of the way ULID stores time, times from the year -// 10889 produces undefined results. -func Timestamp(t time.Time) uint64 { - return uint64(t.Unix())*1000 + - uint64(t.Nanosecond()/int(time.Millisecond)) -} - -// Time converts Unix milliseconds in the format -// returned by the Timestamp function to a time.Time. -func Time(ms uint64) time.Time { - s := int64(ms / 1e3) - ns := int64((ms % 1e3) * 1e6) - return time.Unix(s, ns) -} - -// SetTime sets the time component of the ULID to the given Unix time -// in milliseconds. -func (id *ULID) SetTime(ms uint64) error { - if ms > maxTime { - return ErrBigTime - } - - (*id)[0] = byte(ms >> 40) - (*id)[1] = byte(ms >> 32) - (*id)[2] = byte(ms >> 24) - (*id)[3] = byte(ms >> 16) - (*id)[4] = byte(ms >> 8) - (*id)[5] = byte(ms) - - return nil -} - -// Entropy returns the entropy from the ULID. -func (id ULID) Entropy() []byte { - e := make([]byte, 10) - copy(e, id[6:]) - return e -} - -// SetEntropy sets the ULID entropy to the passed byte slice. -// ErrDataSize is returned if len(e) != 10. -func (id *ULID) SetEntropy(e []byte) error { - if len(e) != 10 { - return ErrDataSize - } - - copy((*id)[6:], e) - return nil -} - -// Compare returns an integer comparing id and other lexicographically. -// The result will be 0 if id==other, -1 if id < other, and +1 if id > other. -func (id ULID) Compare(other ULID) int { - return bytes.Compare(id[:], other[:]) -} - -// Scan implements the sql.Scanner interface. It supports scanning -// a string or byte slice. -func (id *ULID) Scan(src interface{}) error { - switch x := src.(type) { - case nil: - return nil - case string: - return id.UnmarshalText([]byte(x)) - case []byte: - return id.UnmarshalBinary(x) - } - - return ErrScanValue -} - -// Value implements the sql/driver.Valuer interface, returning the ULID as a -// slice of bytes, by invoking MarshalBinary. If your use case requires a string -// representation instead, you can create a wrapper type that calls String() -// instead. -// -// type stringValuer ulid.ULID -// -// func (v stringValuer) Value() (driver.Value, error) { -// return ulid.ULID(v).String(), nil -// } -// -// // Example usage. -// db.Exec("...", stringValuer(id)) -// -// All valid ULIDs, including zero-value ULIDs, return a valid Value with a nil -// error. If your use case requires zero-value ULIDs to return a non-nil error, -// you can create a wrapper type that special-cases this behavior. -// -// var zeroValueULID ulid.ULID -// -// type invalidZeroValuer ulid.ULID -// -// func (v invalidZeroValuer) Value() (driver.Value, error) { -// if ulid.ULID(v).Compare(zeroValueULID) == 0 { -// return nil, fmt.Errorf("zero value") -// } -// return ulid.ULID(v).Value() -// } -// -// // Example usage. -// db.Exec("...", invalidZeroValuer(id)) -// -func (id ULID) Value() (driver.Value, error) { - return id.MarshalBinary() -} - -// Monotonic returns an entropy source that is guaranteed to yield -// strictly increasing entropy bytes for the same ULID timestamp. -// On conflicts, the previous ULID entropy is incremented with a -// random number between 1 and `inc` (inclusive). -// -// The provided entropy source must actually yield random bytes or else -// monotonic reads are not guaranteed to terminate, since there isn't -// enough randomness to compute an increment number. -// -// When `inc == 0`, it'll be set to a secure default of `math.MaxUint32`. -// The lower the value of `inc`, the easier the next ULID within the -// same millisecond is to guess. If your code depends on ULIDs having -// secure entropy bytes, then don't go under this default unless you know -// what you're doing. -// -// The returned type isn't safe for concurrent use. -func Monotonic(entropy io.Reader, inc uint64) *MonotonicEntropy { - m := MonotonicEntropy{ - Reader: bufio.NewReader(entropy), - inc: inc, - } - - if m.inc == 0 { - m.inc = math.MaxUint32 - } - - if rng, ok := entropy.(rng); ok { - m.rng = rng - } - - return &m -} - -type rng interface{ Int63n(n int64) int64 } - -// LockedMonotonicReader wraps a MonotonicReader with a sync.Mutex for -// safe concurrent use. -type LockedMonotonicReader struct { - mu sync.Mutex - MonotonicReader -} - -// MonotonicRead synchronizes calls to the wrapped MonotonicReader. -func (r *LockedMonotonicReader) MonotonicRead(ms uint64, p []byte) (err error) { - r.mu.Lock() - err = r.MonotonicReader.MonotonicRead(ms, p) - r.mu.Unlock() - return err -} - -// MonotonicEntropy is an opaque type that provides monotonic entropy. -type MonotonicEntropy struct { - io.Reader - ms uint64 - inc uint64 - entropy uint80 - rand [8]byte - rng rng -} - -// MonotonicRead implements the MonotonicReader interface. -func (m *MonotonicEntropy) MonotonicRead(ms uint64, entropy []byte) (err error) { - if !m.entropy.IsZero() && m.ms == ms { - err = m.increment() - m.entropy.AppendTo(entropy) - } else if _, err = io.ReadFull(m.Reader, entropy); err == nil { - m.ms = ms - m.entropy.SetBytes(entropy) - } - return err -} - -// increment the previous entropy number with a random number -// of up to m.inc (inclusive). -func (m *MonotonicEntropy) increment() error { - if inc, err := m.random(); err != nil { - return err - } else if m.entropy.Add(inc) { - return ErrMonotonicOverflow - } - return nil -} - -// random returns a uniform random value in [1, m.inc), reading entropy -// from m.Reader. When m.inc == 0 || m.inc == 1, it returns 1. -// Adapted from: https://golang.org/pkg/crypto/rand/#Int -func (m *MonotonicEntropy) random() (inc uint64, err error) { - if m.inc <= 1 { - return 1, nil - } - - // Fast path for using a underlying rand.Rand directly. - if m.rng != nil { - // Range: [1, m.inc) - return 1 + uint64(m.rng.Int63n(int64(m.inc))), nil - } - - // bitLen is the maximum bit length needed to encode a value < m.inc. - bitLen := bits.Len64(m.inc) - - // byteLen is the maximum byte length needed to encode a value < m.inc. - byteLen := uint(bitLen+7) / 8 - - // msbitLen is the number of bits in the most significant byte of m.inc-1. - msbitLen := uint(bitLen % 8) - if msbitLen == 0 { - msbitLen = 8 - } - - for inc == 0 || inc >= m.inc { - if _, err = io.ReadFull(m.Reader, m.rand[:byteLen]); err != nil { - return 0, err - } - - // Clear bits in the first byte to increase the probability - // that the candidate is < m.inc. - m.rand[0] &= uint8(int(1< b { - return a - } - return b -} - -func calculateRatio(matches, length int) float64 { - if length > 0 { - return 2.0 * float64(matches) / float64(length) - } - return 1.0 -} - -type Match struct { - A int - B int - Size int -} - -type OpCode struct { - Tag byte - I1 int - I2 int - J1 int - J2 int -} - -// SequenceMatcher compares sequence of strings. The basic -// algorithm predates, and is a little fancier than, an algorithm -// published in the late 1980's by Ratcliff and Obershelp under the -// hyperbolic name "gestalt pattern matching". The basic idea is to find -// the longest contiguous matching subsequence that contains no "junk" -// elements (R-O doesn't address junk). The same idea is then applied -// recursively to the pieces of the sequences to the left and to the right -// of the matching subsequence. This does not yield minimal edit -// sequences, but does tend to yield matches that "look right" to people. -// -// SequenceMatcher tries to compute a "human-friendly diff" between two -// sequences. Unlike e.g. UNIX(tm) diff, the fundamental notion is the -// longest *contiguous* & junk-free matching subsequence. That's what -// catches peoples' eyes. The Windows(tm) windiff has another interesting -// notion, pairing up elements that appear uniquely in each sequence. -// That, and the method here, appear to yield more intuitive difference -// reports than does diff. This method appears to be the least vulnerable -// to synching up on blocks of "junk lines", though (like blank lines in -// ordinary text files, or maybe "

" lines in HTML files). That may be -// because this is the only method of the 3 that has a *concept* of -// "junk" . -// -// Timing: Basic R-O is cubic time worst case and quadratic time expected -// case. SequenceMatcher is quadratic time for the worst case and has -// expected-case behavior dependent in a complicated way on how many -// elements the sequences have in common; best case time is linear. -type SequenceMatcher struct { - a []string - b []string - b2j map[string][]int - IsJunk func(string) bool - autoJunk bool - bJunk map[string]struct{} - matchingBlocks []Match - fullBCount map[string]int - bPopular map[string]struct{} - opCodes []OpCode -} - -func NewMatcher(a, b []string) *SequenceMatcher { - m := SequenceMatcher{autoJunk: true} - m.SetSeqs(a, b) - return &m -} - -func NewMatcherWithJunk(a, b []string, autoJunk bool, - isJunk func(string) bool) *SequenceMatcher { - - m := SequenceMatcher{IsJunk: isJunk, autoJunk: autoJunk} - m.SetSeqs(a, b) - return &m -} - -// Set two sequences to be compared. -func (m *SequenceMatcher) SetSeqs(a, b []string) { - m.SetSeq1(a) - m.SetSeq2(b) -} - -// Set the first sequence to be compared. The second sequence to be compared is -// not changed. -// -// SequenceMatcher computes and caches detailed information about the second -// sequence, so if you want to compare one sequence S against many sequences, -// use .SetSeq2(s) once and call .SetSeq1(x) repeatedly for each of the other -// sequences. -// -// See also SetSeqs() and SetSeq2(). -func (m *SequenceMatcher) SetSeq1(a []string) { - if &a == &m.a { - return - } - m.a = a - m.matchingBlocks = nil - m.opCodes = nil -} - -// Set the second sequence to be compared. The first sequence to be compared is -// not changed. -func (m *SequenceMatcher) SetSeq2(b []string) { - if &b == &m.b { - return - } - m.b = b - m.matchingBlocks = nil - m.opCodes = nil - m.fullBCount = nil - m.chainB() -} - -func (m *SequenceMatcher) chainB() { - // Populate line -> index mapping - b2j := map[string][]int{} - for i, s := range m.b { - indices := b2j[s] - indices = append(indices, i) - b2j[s] = indices - } - - // Purge junk elements - m.bJunk = map[string]struct{}{} - if m.IsJunk != nil { - junk := m.bJunk - for s, _ := range b2j { - if m.IsJunk(s) { - junk[s] = struct{}{} - } - } - for s, _ := range junk { - delete(b2j, s) - } - } - - // Purge remaining popular elements - popular := map[string]struct{}{} - n := len(m.b) - if m.autoJunk && n >= 200 { - ntest := n/100 + 1 - for s, indices := range b2j { - if len(indices) > ntest { - popular[s] = struct{}{} - } - } - for s, _ := range popular { - delete(b2j, s) - } - } - m.bPopular = popular - m.b2j = b2j -} - -func (m *SequenceMatcher) isBJunk(s string) bool { - _, ok := m.bJunk[s] - return ok -} - -// Find longest matching block in a[alo:ahi] and b[blo:bhi]. -// -// If IsJunk is not defined: -// -// Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where -// alo <= i <= i+k <= ahi -// blo <= j <= j+k <= bhi -// and for all (i',j',k') meeting those conditions, -// k >= k' -// i <= i' -// and if i == i', j <= j' -// -// In other words, of all maximal matching blocks, return one that -// starts earliest in a, and of all those maximal matching blocks that -// start earliest in a, return the one that starts earliest in b. -// -// If IsJunk is defined, first the longest matching block is -// determined as above, but with the additional restriction that no -// junk element appears in the block. Then that block is extended as -// far as possible by matching (only) junk elements on both sides. So -// the resulting block never matches on junk except as identical junk -// happens to be adjacent to an "interesting" match. -// -// If no blocks match, return (alo, blo, 0). -func (m *SequenceMatcher) findLongestMatch(alo, ahi, blo, bhi int) Match { - // CAUTION: stripping common prefix or suffix would be incorrect. - // E.g., - // ab - // acab - // Longest matching block is "ab", but if common prefix is - // stripped, it's "a" (tied with "b"). UNIX(tm) diff does so - // strip, so ends up claiming that ab is changed to acab by - // inserting "ca" in the middle. That's minimal but unintuitive: - // "it's obvious" that someone inserted "ac" at the front. - // Windiff ends up at the same place as diff, but by pairing up - // the unique 'b's and then matching the first two 'a's. - besti, bestj, bestsize := alo, blo, 0 - - // find longest junk-free match - // during an iteration of the loop, j2len[j] = length of longest - // junk-free match ending with a[i-1] and b[j] - j2len := map[int]int{} - for i := alo; i != ahi; i++ { - // look at all instances of a[i] in b; note that because - // b2j has no junk keys, the loop is skipped if a[i] is junk - newj2len := map[int]int{} - for _, j := range m.b2j[m.a[i]] { - // a[i] matches b[j] - if j < blo { - continue - } - if j >= bhi { - break - } - k := j2len[j-1] + 1 - newj2len[j] = k - if k > bestsize { - besti, bestj, bestsize = i-k+1, j-k+1, k - } - } - j2len = newj2len - } - - // Extend the best by non-junk elements on each end. In particular, - // "popular" non-junk elements aren't in b2j, which greatly speeds - // the inner loop above, but also means "the best" match so far - // doesn't contain any junk *or* popular non-junk elements. - for besti > alo && bestj > blo && !m.isBJunk(m.b[bestj-1]) && - m.a[besti-1] == m.b[bestj-1] { - besti, bestj, bestsize = besti-1, bestj-1, bestsize+1 - } - for besti+bestsize < ahi && bestj+bestsize < bhi && - !m.isBJunk(m.b[bestj+bestsize]) && - m.a[besti+bestsize] == m.b[bestj+bestsize] { - bestsize += 1 - } - - // Now that we have a wholly interesting match (albeit possibly - // empty!), we may as well suck up the matching junk on each - // side of it too. Can't think of a good reason not to, and it - // saves post-processing the (possibly considerable) expense of - // figuring out what to do with it. In the case of an empty - // interesting match, this is clearly the right thing to do, - // because no other kind of match is possible in the regions. - for besti > alo && bestj > blo && m.isBJunk(m.b[bestj-1]) && - m.a[besti-1] == m.b[bestj-1] { - besti, bestj, bestsize = besti-1, bestj-1, bestsize+1 - } - for besti+bestsize < ahi && bestj+bestsize < bhi && - m.isBJunk(m.b[bestj+bestsize]) && - m.a[besti+bestsize] == m.b[bestj+bestsize] { - bestsize += 1 - } - - return Match{A: besti, B: bestj, Size: bestsize} -} - -// Return list of triples describing matching subsequences. -// -// Each triple is of the form (i, j, n), and means that -// a[i:i+n] == b[j:j+n]. The triples are monotonically increasing in -// i and in j. It's also guaranteed that if (i, j, n) and (i', j', n') are -// adjacent triples in the list, and the second is not the last triple in the -// list, then i+n != i' or j+n != j'. IOW, adjacent triples never describe -// adjacent equal blocks. -// -// The last triple is a dummy, (len(a), len(b), 0), and is the only -// triple with n==0. -func (m *SequenceMatcher) GetMatchingBlocks() []Match { - if m.matchingBlocks != nil { - return m.matchingBlocks - } - - var matchBlocks func(alo, ahi, blo, bhi int, matched []Match) []Match - matchBlocks = func(alo, ahi, blo, bhi int, matched []Match) []Match { - match := m.findLongestMatch(alo, ahi, blo, bhi) - i, j, k := match.A, match.B, match.Size - if match.Size > 0 { - if alo < i && blo < j { - matched = matchBlocks(alo, i, blo, j, matched) - } - matched = append(matched, match) - if i+k < ahi && j+k < bhi { - matched = matchBlocks(i+k, ahi, j+k, bhi, matched) - } - } - return matched - } - matched := matchBlocks(0, len(m.a), 0, len(m.b), nil) - - // It's possible that we have adjacent equal blocks in the - // matching_blocks list now. - nonAdjacent := []Match{} - i1, j1, k1 := 0, 0, 0 - for _, b := range matched { - // Is this block adjacent to i1, j1, k1? - i2, j2, k2 := b.A, b.B, b.Size - if i1+k1 == i2 && j1+k1 == j2 { - // Yes, so collapse them -- this just increases the length of - // the first block by the length of the second, and the first - // block so lengthened remains the block to compare against. - k1 += k2 - } else { - // Not adjacent. Remember the first block (k1==0 means it's - // the dummy we started with), and make the second block the - // new block to compare against. - if k1 > 0 { - nonAdjacent = append(nonAdjacent, Match{i1, j1, k1}) - } - i1, j1, k1 = i2, j2, k2 - } - } - if k1 > 0 { - nonAdjacent = append(nonAdjacent, Match{i1, j1, k1}) - } - - nonAdjacent = append(nonAdjacent, Match{len(m.a), len(m.b), 0}) - m.matchingBlocks = nonAdjacent - return m.matchingBlocks -} - -// Return list of 5-tuples describing how to turn a into b. -// -// Each tuple is of the form (tag, i1, i2, j1, j2). The first tuple -// has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the -// tuple preceding it, and likewise for j1 == the previous j2. -// -// The tags are characters, with these meanings: -// -// 'r' (replace): a[i1:i2] should be replaced by b[j1:j2] -// -// 'd' (delete): a[i1:i2] should be deleted, j1==j2 in this case. -// -// 'i' (insert): b[j1:j2] should be inserted at a[i1:i1], i1==i2 in this case. -// -// 'e' (equal): a[i1:i2] == b[j1:j2] -func (m *SequenceMatcher) GetOpCodes() []OpCode { - if m.opCodes != nil { - return m.opCodes - } - i, j := 0, 0 - matching := m.GetMatchingBlocks() - opCodes := make([]OpCode, 0, len(matching)) - for _, m := range matching { - // invariant: we've pumped out correct diffs to change - // a[:i] into b[:j], and the next matching block is - // a[ai:ai+size] == b[bj:bj+size]. So we need to pump - // out a diff to change a[i:ai] into b[j:bj], pump out - // the matching block, and move (i,j) beyond the match - ai, bj, size := m.A, m.B, m.Size - tag := byte(0) - if i < ai && j < bj { - tag = 'r' - } else if i < ai { - tag = 'd' - } else if j < bj { - tag = 'i' - } - if tag > 0 { - opCodes = append(opCodes, OpCode{tag, i, ai, j, bj}) - } - i, j = ai+size, bj+size - // the list of matching blocks is terminated by a - // sentinel with size 0 - if size > 0 { - opCodes = append(opCodes, OpCode{'e', ai, i, bj, j}) - } - } - m.opCodes = opCodes - return m.opCodes -} - -// Isolate change clusters by eliminating ranges with no changes. -// -// Return a generator of groups with up to n lines of context. -// Each group is in the same format as returned by GetOpCodes(). -func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode { - if n < 0 { - n = 3 - } - codes := m.GetOpCodes() - if len(codes) == 0 { - codes = []OpCode{OpCode{'e', 0, 1, 0, 1}} - } - // Fixup leading and trailing groups if they show no changes. - if codes[0].Tag == 'e' { - c := codes[0] - i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2} - } - if codes[len(codes)-1].Tag == 'e' { - c := codes[len(codes)-1] - i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)} - } - nn := n + n - groups := [][]OpCode{} - group := []OpCode{} - for _, c := range codes { - i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - // End the current group and start a new one whenever - // there is a large range with no changes. - if c.Tag == 'e' && i2-i1 > nn { - group = append(group, OpCode{c.Tag, i1, min(i2, i1+n), - j1, min(j2, j1+n)}) - groups = append(groups, group) - group = []OpCode{} - i1, j1 = max(i1, i2-n), max(j1, j2-n) - } - group = append(group, OpCode{c.Tag, i1, i2, j1, j2}) - } - if len(group) > 0 && !(len(group) == 1 && group[0].Tag == 'e') { - groups = append(groups, group) - } - return groups -} - -// Return a measure of the sequences' similarity (float in [0,1]). -// -// Where T is the total number of elements in both sequences, and -// M is the number of matches, this is 2.0*M / T. -// Note that this is 1 if the sequences are identical, and 0 if -// they have nothing in common. -// -// .Ratio() is expensive to compute if you haven't already computed -// .GetMatchingBlocks() or .GetOpCodes(), in which case you may -// want to try .QuickRatio() or .RealQuickRation() first to get an -// upper bound. -func (m *SequenceMatcher) Ratio() float64 { - matches := 0 - for _, m := range m.GetMatchingBlocks() { - matches += m.Size - } - return calculateRatio(matches, len(m.a)+len(m.b)) -} - -// Return an upper bound on ratio() relatively quickly. -// -// This isn't defined beyond that it is an upper bound on .Ratio(), and -// is faster to compute. -func (m *SequenceMatcher) QuickRatio() float64 { - // viewing a and b as multisets, set matches to the cardinality - // of their intersection; this counts the number of matches - // without regard to order, so is clearly an upper bound - if m.fullBCount == nil { - m.fullBCount = map[string]int{} - for _, s := range m.b { - m.fullBCount[s] = m.fullBCount[s] + 1 - } - } - - // avail[x] is the number of times x appears in 'b' less the - // number of times we've seen it in 'a' so far ... kinda - avail := map[string]int{} - matches := 0 - for _, s := range m.a { - n, ok := avail[s] - if !ok { - n = m.fullBCount[s] - } - avail[s] = n - 1 - if n > 0 { - matches += 1 - } - } - return calculateRatio(matches, len(m.a)+len(m.b)) -} - -// Return an upper bound on ratio() very quickly. -// -// This isn't defined beyond that it is an upper bound on .Ratio(), and -// is faster to compute than either .Ratio() or .QuickRatio(). -func (m *SequenceMatcher) RealQuickRatio() float64 { - la, lb := len(m.a), len(m.b) - return calculateRatio(min(la, lb), la+lb) -} - -// Convert range to the "ed" format -func formatRangeUnified(start, stop int) string { - // Per the diff spec at http://www.unix.org/single_unix_specification/ - beginning := start + 1 // lines start numbering with one - length := stop - start - if length == 1 { - return fmt.Sprintf("%d", beginning) - } - if length == 0 { - beginning -= 1 // empty ranges begin at line just before the range - } - return fmt.Sprintf("%d,%d", beginning, length) -} - -// Unified diff parameters -type UnifiedDiff struct { - A []string // First sequence lines - FromFile string // First file name - FromDate string // First file time - B []string // Second sequence lines - ToFile string // Second file name - ToDate string // Second file time - Eol string // Headers end of line, defaults to LF - Context int // Number of context lines -} - -// Compare two sequences of lines; generate the delta as a unified diff. -// -// Unified diffs are a compact way of showing line changes and a few -// lines of context. The number of context lines is set by 'n' which -// defaults to three. -// -// By default, the diff control lines (those with ---, +++, or @@) are -// created with a trailing newline. This is helpful so that inputs -// created from file.readlines() result in diffs that are suitable for -// file.writelines() since both the inputs and outputs have trailing -// newlines. -// -// For inputs that do not have trailing newlines, set the lineterm -// argument to "" so that the output will be uniformly newline free. -// -// The unidiff format normally has a header for filenames and modification -// times. Any or all of these may be specified using strings for -// 'fromfile', 'tofile', 'fromfiledate', and 'tofiledate'. -// The modification times are normally expressed in the ISO 8601 format. -func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { - buf := bufio.NewWriter(writer) - defer buf.Flush() - wf := func(format string, args ...interface{}) error { - _, err := buf.WriteString(fmt.Sprintf(format, args...)) - return err - } - ws := func(s string) error { - _, err := buf.WriteString(s) - return err - } - - if len(diff.Eol) == 0 { - diff.Eol = "\n" - } - - started := false - m := NewMatcher(diff.A, diff.B) - for _, g := range m.GetGroupedOpCodes(diff.Context) { - if !started { - started = true - fromDate := "" - if len(diff.FromDate) > 0 { - fromDate = "\t" + diff.FromDate - } - toDate := "" - if len(diff.ToDate) > 0 { - toDate = "\t" + diff.ToDate - } - if diff.FromFile != "" || diff.ToFile != "" { - err := wf("--- %s%s%s", diff.FromFile, fromDate, diff.Eol) - if err != nil { - return err - } - err = wf("+++ %s%s%s", diff.ToFile, toDate, diff.Eol) - if err != nil { - return err - } - } - } - first, last := g[0], g[len(g)-1] - range1 := formatRangeUnified(first.I1, last.I2) - range2 := formatRangeUnified(first.J1, last.J2) - if err := wf("@@ -%s +%s @@%s", range1, range2, diff.Eol); err != nil { - return err - } - for _, c := range g { - i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - if c.Tag == 'e' { - for _, line := range diff.A[i1:i2] { - if err := ws(" " + line); err != nil { - return err - } - } - continue - } - if c.Tag == 'r' || c.Tag == 'd' { - for _, line := range diff.A[i1:i2] { - if err := ws("-" + line); err != nil { - return err - } - } - } - if c.Tag == 'r' || c.Tag == 'i' { - for _, line := range diff.B[j1:j2] { - if err := ws("+" + line); err != nil { - return err - } - } - } - } - } - return nil -} - -// Like WriteUnifiedDiff but returns the diff a string. -func GetUnifiedDiffString(diff UnifiedDiff) (string, error) { - w := &bytes.Buffer{} - err := WriteUnifiedDiff(w, diff) - return string(w.Bytes()), err -} - -// Convert range to the "ed" format. -func formatRangeContext(start, stop int) string { - // Per the diff spec at http://www.unix.org/single_unix_specification/ - beginning := start + 1 // lines start numbering with one - length := stop - start - if length == 0 { - beginning -= 1 // empty ranges begin at line just before the range - } - if length <= 1 { - return fmt.Sprintf("%d", beginning) - } - return fmt.Sprintf("%d,%d", beginning, beginning+length-1) -} - -type ContextDiff UnifiedDiff - -// Compare two sequences of lines; generate the delta as a context diff. -// -// Context diffs are a compact way of showing line changes and a few -// lines of context. The number of context lines is set by diff.Context -// which defaults to three. -// -// By default, the diff control lines (those with *** or ---) are -// created with a trailing newline. -// -// For inputs that do not have trailing newlines, set the diff.Eol -// argument to "" so that the output will be uniformly newline free. -// -// The context diff format normally has a header for filenames and -// modification times. Any or all of these may be specified using -// strings for diff.FromFile, diff.ToFile, diff.FromDate, diff.ToDate. -// The modification times are normally expressed in the ISO 8601 format. -// If not specified, the strings default to blanks. -func WriteContextDiff(writer io.Writer, diff ContextDiff) error { - buf := bufio.NewWriter(writer) - defer buf.Flush() - var diffErr error - wf := func(format string, args ...interface{}) { - _, err := buf.WriteString(fmt.Sprintf(format, args...)) - if diffErr == nil && err != nil { - diffErr = err - } - } - ws := func(s string) { - _, err := buf.WriteString(s) - if diffErr == nil && err != nil { - diffErr = err - } - } - - if len(diff.Eol) == 0 { - diff.Eol = "\n" - } - - prefix := map[byte]string{ - 'i': "+ ", - 'd': "- ", - 'r': "! ", - 'e': " ", - } - - started := false - m := NewMatcher(diff.A, diff.B) - for _, g := range m.GetGroupedOpCodes(diff.Context) { - if !started { - started = true - fromDate := "" - if len(diff.FromDate) > 0 { - fromDate = "\t" + diff.FromDate - } - toDate := "" - if len(diff.ToDate) > 0 { - toDate = "\t" + diff.ToDate - } - if diff.FromFile != "" || diff.ToFile != "" { - wf("*** %s%s%s", diff.FromFile, fromDate, diff.Eol) - wf("--- %s%s%s", diff.ToFile, toDate, diff.Eol) - } - } - - first, last := g[0], g[len(g)-1] - ws("***************" + diff.Eol) - - range1 := formatRangeContext(first.I1, last.I2) - wf("*** %s ****%s", range1, diff.Eol) - for _, c := range g { - if c.Tag == 'r' || c.Tag == 'd' { - for _, cc := range g { - if cc.Tag == 'i' { - continue - } - for _, line := range diff.A[cc.I1:cc.I2] { - ws(prefix[cc.Tag] + line) - } - } - break - } - } - - range2 := formatRangeContext(first.J1, last.J2) - wf("--- %s ----%s", range2, diff.Eol) - for _, c := range g { - if c.Tag == 'r' || c.Tag == 'i' { - for _, cc := range g { - if cc.Tag == 'd' { - continue - } - for _, line := range diff.B[cc.J1:cc.J2] { - ws(prefix[cc.Tag] + line) - } - } - break - } - } - } - return diffErr -} - -// Like WriteContextDiff but returns the diff a string. -func GetContextDiffString(diff ContextDiff) (string, error) { - w := &bytes.Buffer{} - err := WriteContextDiff(w, diff) - return string(w.Bytes()), err -} - -// Split a string on "\n" while preserving them. The output can be used -// as input for UnifiedDiff and ContextDiff structures. -func SplitLines(s string) []string { - lines := strings.SplitAfter(s, "\n") - lines[len(lines)-1] += "\n" - return lines -} diff --git a/vendor/github.com/rivo/uniseg/LICENSE.txt b/vendor/github.com/rivo/uniseg/LICENSE.txt deleted file mode 100644 index 5040f1e..0000000 --- a/vendor/github.com/rivo/uniseg/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Oliver Kuederle - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/rivo/uniseg/README.md b/vendor/github.com/rivo/uniseg/README.md deleted file mode 100644 index a8191b8..0000000 --- a/vendor/github.com/rivo/uniseg/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# Unicode Text Segmentation for Go - -[![Go Reference](https://pkg.go.dev/badge/github.com/rivo/uniseg.svg)](https://pkg.go.dev/github.com/rivo/uniseg) -[![Go Report](https://img.shields.io/badge/go%20report-A%2B-brightgreen.svg)](https://goreportcard.com/report/github.com/rivo/uniseg) - -This Go package implements Unicode Text Segmentation according to [Unicode Standard Annex #29](https://unicode.org/reports/tr29/), Unicode Line Breaking according to [Unicode Standard Annex #14](https://unicode.org/reports/tr14/) (Unicode version 15.0.0), and monospace font string width calculation similar to [wcwidth](https://man7.org/linux/man-pages/man3/wcwidth.3.html). - -## Background - -### Grapheme Clusters - -In Go, [strings are read-only slices of bytes](https://go.dev/blog/strings). They can be turned into Unicode code points using the `for` loop or by casting: `[]rune(str)`. However, multiple code points may be combined into one user-perceived character or what the Unicode specification calls "grapheme cluster". Here are some examples: - -|String|Bytes (UTF-8)|Code points (runes)|Grapheme clusters| -|-|-|-|-| -|Käse|6 bytes: `4b 61 cc 88 73 65`|5 code points: `4b 61 308 73 65`|4 clusters: `[4b],[61 308],[73],[65]`| -|🏳️‍🌈|14 bytes: `f0 9f 8f b3 ef b8 8f e2 80 8d f0 9f 8c 88`|4 code points: `1f3f3 fe0f 200d 1f308`|1 cluster: `[1f3f3 fe0f 200d 1f308]`| -|🇩🇪|8 bytes: `f0 9f 87 a9 f0 9f 87 aa`|2 code points: `1f1e9 1f1ea`|1 cluster: `[1f1e9 1f1ea]`| - -This package provides tools to iterate over these grapheme clusters. This may be used to determine the number of user-perceived characters, to split strings in their intended places, or to extract individual characters which form a unit. - -### Word Boundaries - -Word boundaries are used in a number of different contexts. The most familiar ones are selection (double-click mouse selection), cursor movement ("move to next word" control-arrow keys), and the dialog option "Whole Word Search" for search and replace. They are also used in database queries, to determine whether elements are within a certain number of words of one another. Searching may also use word boundaries in determining matching items. This package provides tools to determine word boundaries within strings. - -### Sentence Boundaries - -Sentence boundaries are often used for triple-click or some other method of selecting or iterating through blocks of text that are larger than single words. They are also used to determine whether words occur within the same sentence in database queries. This package provides tools to determine sentence boundaries within strings. - -### Line Breaking - -Line breaking, also known as word wrapping, is the process of breaking a section of text into lines such that it will fit in the available width of a page, window or other display area. This package provides tools to determine where a string may or may not be broken and where it must be broken (for example after newline characters). - -### Monospace Width - -Most terminals or text displays / text editors using a monospace font (for example source code editors) use a fixed width for each character. Some characters such as emojis or characters found in Asian and other languages may take up more than one character cell. This package provides tools to determine the number of cells a string will take up when displayed in a monospace font. See [here](https://pkg.go.dev/github.com/rivo/uniseg#hdr-Monospace_Width) for more information. - -## Installation - -```bash -go get github.com/rivo/uniseg -``` - -## Examples - -### Counting Characters in a String - -```go -n := uniseg.GraphemeClusterCount("🇩🇪🏳️‍🌈") -fmt.Println(n) -// 2 -``` - -### Calculating the Monospace String Width - -```go -width := uniseg.StringWidth("🇩🇪🏳️‍🌈!") -fmt.Println(width) -// 5 -``` - -### Using the [`Graphemes`](https://pkg.go.dev/github.com/rivo/uniseg#Graphemes) Class - -This is the most convenient method of iterating over grapheme clusters: - -```go -gr := uniseg.NewGraphemes("👍🏼!") -for gr.Next() { - fmt.Printf("%x ", gr.Runes()) -} -// [1f44d 1f3fc] [21] -``` - -### Using the [`Step`](https://pkg.go.dev/github.com/rivo/uniseg#Step) or [`StepString`](https://pkg.go.dev/github.com/rivo/uniseg#StepString) Function - -This avoids allocating a new `Graphemes` object but it requires the handling of states and boundaries: - -```go -str := "🇩🇪🏳️‍🌈" -state := -1 -var c string -for len(str) > 0 { - c, str, _, state = uniseg.StepString(str, state) - fmt.Printf("%x ", []rune(c)) -} -// [1f1e9 1f1ea] [1f3f3 fe0f 200d 1f308] -``` - -### Advanced Examples - -The [`Graphemes`](https://pkg.go.dev/github.com/rivo/uniseg#Graphemes) class offers the most convenient way to access all functionality of this package. But in some cases, it may be better to use the specialized functions directly. For example, if you're only interested in word segmentation, use [`FirstWord`](https://pkg.go.dev/github.com/rivo/uniseg#FirstWord) or [`FirstWordInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstWordInString): - -```go -str := "Hello, world!" -state := -1 -var c string -for len(str) > 0 { - c, str, state = uniseg.FirstWordInString(str, state) - fmt.Printf("(%s)\n", c) -} -// (Hello) -// (,) -// ( ) -// (world) -// (!) -``` - -Similarly, use - -- [`FirstGraphemeCluster`](https://pkg.go.dev/github.com/rivo/uniseg#FirstGraphemeCluster) or [`FirstGraphemeClusterInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstGraphemeClusterInString) for grapheme cluster determination only, -- [`FirstSentence`](https://pkg.go.dev/github.com/rivo/uniseg#FirstSentence) or [`FirstSentenceInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstSentenceInString) for sentence segmentation only, and -- [`FirstLineSegment`](https://pkg.go.dev/github.com/rivo/uniseg#FirstLineSegment) or [`FirstLineSegmentInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstLineSegmentInString) for line breaking / word wrapping (although using [`Step`](https://pkg.go.dev/github.com/rivo/uniseg#Step) or [`StepString`](https://pkg.go.dev/github.com/rivo/uniseg#StepString) is preferred as it will observe grapheme cluster boundaries). - -If you're only interested in the width of characters, use [`FirstGraphemeCluster`](https://pkg.go.dev/github.com/rivo/uniseg#FirstGraphemeCluster) or [`FirstGraphemeClusterInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstGraphemeClusterInString). It is much faster than using [`Step`](https://pkg.go.dev/github.com/rivo/uniseg#Step), [`StepString`](https://pkg.go.dev/github.com/rivo/uniseg#StepString), or the [`Graphemes`](https://pkg.go.dev/github.com/rivo/uniseg#Graphemes) class because it does not include the logic for word / sentence / line boundaries. - -Finally, if you need to reverse a string while preserving grapheme clusters, use [`ReverseString`](https://pkg.go.dev/github.com/rivo/uniseg#ReverseString): - -```go -fmt.Println(uniseg.ReverseString("🇩🇪🏳️‍🌈")) -// 🏳️‍🌈🇩🇪 -``` - -## Documentation - -Refer to https://pkg.go.dev/github.com/rivo/uniseg for the package's documentation. - -## Dependencies - -This package does not depend on any packages outside the standard library. - -## Sponsor this Project - -[Become a Sponsor on GitHub](https://github.com/sponsors/rivo?metadata_source=uniseg_readme) to support this project! - -## Your Feedback - -Add your issue here on GitHub, preferably before submitting any PR's. Feel free to get in touch if you have any questions. \ No newline at end of file diff --git a/vendor/github.com/rivo/uniseg/doc.go b/vendor/github.com/rivo/uniseg/doc.go deleted file mode 100644 index 11224ae..0000000 --- a/vendor/github.com/rivo/uniseg/doc.go +++ /dev/null @@ -1,108 +0,0 @@ -/* -Package uniseg implements Unicode Text Segmentation, Unicode Line Breaking, and -string width calculation for monospace fonts. Unicode Text Segmentation conforms -to Unicode Standard Annex #29 (https://unicode.org/reports/tr29/) and Unicode -Line Breaking conforms to Unicode Standard Annex #14 -(https://unicode.org/reports/tr14/). - -In short, using this package, you can split a string into grapheme clusters -(what people would usually refer to as a "character"), into words, and into -sentences. Or, in its simplest case, this package allows you to count the number -of characters in a string, especially when it contains complex characters such -as emojis, combining characters, or characters from Asian, Arabic, Hebrew, or -other languages. Additionally, you can use it to implement line breaking (or -"word wrapping"), that is, to determine where text can be broken over to the -next line when the width of the line is not big enough to fit the entire text. -Finally, you can use it to calculate the display width of a string for monospace -fonts. - -# Getting Started - -If you just want to count the number of characters in a string, you can use -[GraphemeClusterCount]. If you want to determine the display width of a string, -you can use [StringWidth]. If you want to iterate over a string, you can use -[Step], [StepString], or the [Graphemes] class (more convenient but less -performant). This will provide you with all information: grapheme clusters, -word boundaries, sentence boundaries, line breaks, and monospace character -widths. The specialized functions [FirstGraphemeCluster], -[FirstGraphemeClusterInString], [FirstWord], [FirstWordInString], -[FirstSentence], and [FirstSentenceInString] can be used if only one type of -information is needed. - -# Grapheme Clusters - -Consider the rainbow flag emoji: 🏳️‍🌈. On most modern systems, it appears as one -character. But its string representation actually has 14 bytes, so counting -bytes (or using len("🏳️‍🌈")) will not work as expected. Counting runes won't, -either: The flag has 4 Unicode code points, thus 4 runes. The stdlib function -utf8.RuneCountInString("🏳️‍🌈") and len([]rune("🏳️‍🌈")) will both return 4. - -The [GraphemeClusterCount] function will return 1 for the rainbow flag emoji. -The Graphemes class and a variety of functions in this package will allow you to -split strings into its grapheme clusters. - -# Word Boundaries - -Word boundaries are used in a number of different contexts. The most familiar -ones are selection (double-click mouse selection), cursor movement ("move to -next word" control-arrow keys), and the dialog option "Whole Word Search" for -search and replace. This package provides methods for determining word -boundaries. - -# Sentence Boundaries - -Sentence boundaries are often used for triple-click or some other method of -selecting or iterating through blocks of text that are larger than single words. -They are also used to determine whether words occur within the same sentence in -database queries. This package provides methods for determining sentence -boundaries. - -# Line Breaking - -Line breaking, also known as word wrapping, is the process of breaking a section -of text into lines such that it will fit in the available width of a page, -window or other display area. This package provides methods to determine the -positions in a string where a line must be broken, may be broken, or must not be -broken. - -# Monospace Width - -Monospace width, as referred to in this package, is the width of a string in a -monospace font. This is commonly used in terminal user interfaces or text -displays or editors that don't support proportional fonts. A width of 1 -corresponds to a single character cell. The C function [wcswidth()] and its -implementation in other programming languages is in widespread use for the same -purpose. However, there is no standard for the calculation of such widths, and -this package differs from wcswidth() in a number of ways, presumably to generate -more visually pleasing results. - -To start, we assume that every code point has a width of 1, with the following -exceptions: - - - Code points with grapheme cluster break properties Control, CR, LF, Extend, - and ZWJ have a width of 0. - - U+2E3A, Two-Em Dash, has a width of 3. - - U+2E3B, Three-Em Dash, has a width of 4. - - Characters with the East-Asian Width properties "Fullwidth" (F) and "Wide" - (W) have a width of 2. (Properties "Ambiguous" (A) and "Neutral" (N) both - have a width of 1.) - - Code points with grapheme cluster break property Regional Indicator have a - width of 2. - - Code points with grapheme cluster break property Extended Pictographic have - a width of 2, unless their Emoji Presentation flag is "No", in which case - the width is 1. - -For Hangul grapheme clusters composed of conjoining Jamo and for Regional -Indicators (flags), all code points except the first one have a width of 0. For -grapheme clusters starting with an Extended Pictographic, any additional code -point will force a total width of 2, except if the Variation Selector-15 -(U+FE0E) is included, in which case the total width is always 1. Grapheme -clusters ending with Variation Selector-16 (U+FE0F) have a width of 2. - -Note that whether these widths appear correct depends on your application's -render engine, to which extent it conforms to the Unicode Standard, and its -choice of font. - -[wcswidth()]: https://man7.org/linux/man-pages/man3/wcswidth.3.html -*/ -package uniseg diff --git a/vendor/github.com/rivo/uniseg/eastasianwidth.go b/vendor/github.com/rivo/uniseg/eastasianwidth.go deleted file mode 100644 index 5fc54d9..0000000 --- a/vendor/github.com/rivo/uniseg/eastasianwidth.go +++ /dev/null @@ -1,2588 +0,0 @@ -// Code generated via go generate from gen_properties.go. DO NOT EDIT. - -package uniseg - -// eastAsianWidth are taken from -// https://www.unicode.org/Public/15.0.0/ucd/EastAsianWidth.txt -// and -// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt -// ("Extended_Pictographic" only) -// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode -// license agreement. -var eastAsianWidth = [][3]int{ - {0x0000, 0x001F, prN}, // Cc [32] .. - {0x0020, 0x0020, prNa}, // Zs SPACE - {0x0021, 0x0023, prNa}, // Po [3] EXCLAMATION MARK..NUMBER SIGN - {0x0024, 0x0024, prNa}, // Sc DOLLAR SIGN - {0x0025, 0x0027, prNa}, // Po [3] PERCENT SIGN..APOSTROPHE - {0x0028, 0x0028, prNa}, // Ps LEFT PARENTHESIS - {0x0029, 0x0029, prNa}, // Pe RIGHT PARENTHESIS - {0x002A, 0x002A, prNa}, // Po ASTERISK - {0x002B, 0x002B, prNa}, // Sm PLUS SIGN - {0x002C, 0x002C, prNa}, // Po COMMA - {0x002D, 0x002D, prNa}, // Pd HYPHEN-MINUS - {0x002E, 0x002F, prNa}, // Po [2] FULL STOP..SOLIDUS - {0x0030, 0x0039, prNa}, // Nd [10] DIGIT ZERO..DIGIT NINE - {0x003A, 0x003B, prNa}, // Po [2] COLON..SEMICOLON - {0x003C, 0x003E, prNa}, // Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN - {0x003F, 0x0040, prNa}, // Po [2] QUESTION MARK..COMMERCIAL AT - {0x0041, 0x005A, prNa}, // Lu [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z - {0x005B, 0x005B, prNa}, // Ps LEFT SQUARE BRACKET - {0x005C, 0x005C, prNa}, // Po REVERSE SOLIDUS - {0x005D, 0x005D, prNa}, // Pe RIGHT SQUARE BRACKET - {0x005E, 0x005E, prNa}, // Sk CIRCUMFLEX ACCENT - {0x005F, 0x005F, prNa}, // Pc LOW LINE - {0x0060, 0x0060, prNa}, // Sk GRAVE ACCENT - {0x0061, 0x007A, prNa}, // Ll [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z - {0x007B, 0x007B, prNa}, // Ps LEFT CURLY BRACKET - {0x007C, 0x007C, prNa}, // Sm VERTICAL LINE - {0x007D, 0x007D, prNa}, // Pe RIGHT CURLY BRACKET - {0x007E, 0x007E, prNa}, // Sm TILDE - {0x007F, 0x007F, prN}, // Cc - {0x0080, 0x009F, prN}, // Cc [32] .. - {0x00A0, 0x00A0, prN}, // Zs NO-BREAK SPACE - {0x00A1, 0x00A1, prA}, // Po INVERTED EXCLAMATION MARK - {0x00A2, 0x00A3, prNa}, // Sc [2] CENT SIGN..POUND SIGN - {0x00A4, 0x00A4, prA}, // Sc CURRENCY SIGN - {0x00A5, 0x00A5, prNa}, // Sc YEN SIGN - {0x00A6, 0x00A6, prNa}, // So BROKEN BAR - {0x00A7, 0x00A7, prA}, // Po SECTION SIGN - {0x00A8, 0x00A8, prA}, // Sk DIAERESIS - {0x00A9, 0x00A9, prN}, // So COPYRIGHT SIGN - {0x00AA, 0x00AA, prA}, // Lo FEMININE ORDINAL INDICATOR - {0x00AB, 0x00AB, prN}, // Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - {0x00AC, 0x00AC, prNa}, // Sm NOT SIGN - {0x00AD, 0x00AD, prA}, // Cf SOFT HYPHEN - {0x00AE, 0x00AE, prA}, // So REGISTERED SIGN - {0x00AF, 0x00AF, prNa}, // Sk MACRON - {0x00B0, 0x00B0, prA}, // So DEGREE SIGN - {0x00B1, 0x00B1, prA}, // Sm PLUS-MINUS SIGN - {0x00B2, 0x00B3, prA}, // No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE - {0x00B4, 0x00B4, prA}, // Sk ACUTE ACCENT - {0x00B5, 0x00B5, prN}, // Ll MICRO SIGN - {0x00B6, 0x00B7, prA}, // Po [2] PILCROW SIGN..MIDDLE DOT - {0x00B8, 0x00B8, prA}, // Sk CEDILLA - {0x00B9, 0x00B9, prA}, // No SUPERSCRIPT ONE - {0x00BA, 0x00BA, prA}, // Lo MASCULINE ORDINAL INDICATOR - {0x00BB, 0x00BB, prN}, // Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - {0x00BC, 0x00BE, prA}, // No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS - {0x00BF, 0x00BF, prA}, // Po INVERTED QUESTION MARK - {0x00C0, 0x00C5, prN}, // Lu [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE - {0x00C6, 0x00C6, prA}, // Lu LATIN CAPITAL LETTER AE - {0x00C7, 0x00CF, prN}, // Lu [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS - {0x00D0, 0x00D0, prA}, // Lu LATIN CAPITAL LETTER ETH - {0x00D1, 0x00D6, prN}, // Lu [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS - {0x00D7, 0x00D7, prA}, // Sm MULTIPLICATION SIGN - {0x00D8, 0x00D8, prA}, // Lu LATIN CAPITAL LETTER O WITH STROKE - {0x00D9, 0x00DD, prN}, // Lu [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE - {0x00DE, 0x00E1, prA}, // L& [4] LATIN CAPITAL LETTER THORN..LATIN SMALL LETTER A WITH ACUTE - {0x00E2, 0x00E5, prN}, // Ll [4] LATIN SMALL LETTER A WITH CIRCUMFLEX..LATIN SMALL LETTER A WITH RING ABOVE - {0x00E6, 0x00E6, prA}, // Ll LATIN SMALL LETTER AE - {0x00E7, 0x00E7, prN}, // Ll LATIN SMALL LETTER C WITH CEDILLA - {0x00E8, 0x00EA, prA}, // Ll [3] LATIN SMALL LETTER E WITH GRAVE..LATIN SMALL LETTER E WITH CIRCUMFLEX - {0x00EB, 0x00EB, prN}, // Ll LATIN SMALL LETTER E WITH DIAERESIS - {0x00EC, 0x00ED, prA}, // Ll [2] LATIN SMALL LETTER I WITH GRAVE..LATIN SMALL LETTER I WITH ACUTE - {0x00EE, 0x00EF, prN}, // Ll [2] LATIN SMALL LETTER I WITH CIRCUMFLEX..LATIN SMALL LETTER I WITH DIAERESIS - {0x00F0, 0x00F0, prA}, // Ll LATIN SMALL LETTER ETH - {0x00F1, 0x00F1, prN}, // Ll LATIN SMALL LETTER N WITH TILDE - {0x00F2, 0x00F3, prA}, // Ll [2] LATIN SMALL LETTER O WITH GRAVE..LATIN SMALL LETTER O WITH ACUTE - {0x00F4, 0x00F6, prN}, // Ll [3] LATIN SMALL LETTER O WITH CIRCUMFLEX..LATIN SMALL LETTER O WITH DIAERESIS - {0x00F7, 0x00F7, prA}, // Sm DIVISION SIGN - {0x00F8, 0x00FA, prA}, // Ll [3] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER U WITH ACUTE - {0x00FB, 0x00FB, prN}, // Ll LATIN SMALL LETTER U WITH CIRCUMFLEX - {0x00FC, 0x00FC, prA}, // Ll LATIN SMALL LETTER U WITH DIAERESIS - {0x00FD, 0x00FD, prN}, // Ll LATIN SMALL LETTER Y WITH ACUTE - {0x00FE, 0x00FE, prA}, // Ll LATIN SMALL LETTER THORN - {0x00FF, 0x00FF, prN}, // Ll LATIN SMALL LETTER Y WITH DIAERESIS - {0x0100, 0x0100, prN}, // Lu LATIN CAPITAL LETTER A WITH MACRON - {0x0101, 0x0101, prA}, // Ll LATIN SMALL LETTER A WITH MACRON - {0x0102, 0x0110, prN}, // L& [15] LATIN CAPITAL LETTER A WITH BREVE..LATIN CAPITAL LETTER D WITH STROKE - {0x0111, 0x0111, prA}, // Ll LATIN SMALL LETTER D WITH STROKE - {0x0112, 0x0112, prN}, // Lu LATIN CAPITAL LETTER E WITH MACRON - {0x0113, 0x0113, prA}, // Ll LATIN SMALL LETTER E WITH MACRON - {0x0114, 0x011A, prN}, // L& [7] LATIN CAPITAL LETTER E WITH BREVE..LATIN CAPITAL LETTER E WITH CARON - {0x011B, 0x011B, prA}, // Ll LATIN SMALL LETTER E WITH CARON - {0x011C, 0x0125, prN}, // L& [10] LATIN CAPITAL LETTER G WITH CIRCUMFLEX..LATIN SMALL LETTER H WITH CIRCUMFLEX - {0x0126, 0x0127, prA}, // L& [2] LATIN CAPITAL LETTER H WITH STROKE..LATIN SMALL LETTER H WITH STROKE - {0x0128, 0x012A, prN}, // L& [3] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH MACRON - {0x012B, 0x012B, prA}, // Ll LATIN SMALL LETTER I WITH MACRON - {0x012C, 0x0130, prN}, // L& [5] LATIN CAPITAL LETTER I WITH BREVE..LATIN CAPITAL LETTER I WITH DOT ABOVE - {0x0131, 0x0133, prA}, // L& [3] LATIN SMALL LETTER DOTLESS I..LATIN SMALL LIGATURE IJ - {0x0134, 0x0137, prN}, // L& [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA - {0x0138, 0x0138, prA}, // Ll LATIN SMALL LETTER KRA - {0x0139, 0x013E, prN}, // L& [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON - {0x013F, 0x0142, prA}, // L& [4] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH STROKE - {0x0143, 0x0143, prN}, // Lu LATIN CAPITAL LETTER N WITH ACUTE - {0x0144, 0x0144, prA}, // Ll LATIN SMALL LETTER N WITH ACUTE - {0x0145, 0x0147, prN}, // L& [3] LATIN CAPITAL LETTER N WITH CEDILLA..LATIN CAPITAL LETTER N WITH CARON - {0x0148, 0x014B, prA}, // L& [4] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER ENG - {0x014C, 0x014C, prN}, // Lu LATIN CAPITAL LETTER O WITH MACRON - {0x014D, 0x014D, prA}, // Ll LATIN SMALL LETTER O WITH MACRON - {0x014E, 0x0151, prN}, // L& [4] LATIN CAPITAL LETTER O WITH BREVE..LATIN SMALL LETTER O WITH DOUBLE ACUTE - {0x0152, 0x0153, prA}, // L& [2] LATIN CAPITAL LIGATURE OE..LATIN SMALL LIGATURE OE - {0x0154, 0x0165, prN}, // L& [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON - {0x0166, 0x0167, prA}, // L& [2] LATIN CAPITAL LETTER T WITH STROKE..LATIN SMALL LETTER T WITH STROKE - {0x0168, 0x016A, prN}, // L& [3] LATIN CAPITAL LETTER U WITH TILDE..LATIN CAPITAL LETTER U WITH MACRON - {0x016B, 0x016B, prA}, // Ll LATIN SMALL LETTER U WITH MACRON - {0x016C, 0x017F, prN}, // L& [20] LATIN CAPITAL LETTER U WITH BREVE..LATIN SMALL LETTER LONG S - {0x0180, 0x01BA, prN}, // L& [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL - {0x01BB, 0x01BB, prN}, // Lo LATIN LETTER TWO WITH STROKE - {0x01BC, 0x01BF, prN}, // L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN - {0x01C0, 0x01C3, prN}, // Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK - {0x01C4, 0x01CD, prN}, // L& [10] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON - {0x01CE, 0x01CE, prA}, // Ll LATIN SMALL LETTER A WITH CARON - {0x01CF, 0x01CF, prN}, // Lu LATIN CAPITAL LETTER I WITH CARON - {0x01D0, 0x01D0, prA}, // Ll LATIN SMALL LETTER I WITH CARON - {0x01D1, 0x01D1, prN}, // Lu LATIN CAPITAL LETTER O WITH CARON - {0x01D2, 0x01D2, prA}, // Ll LATIN SMALL LETTER O WITH CARON - {0x01D3, 0x01D3, prN}, // Lu LATIN CAPITAL LETTER U WITH CARON - {0x01D4, 0x01D4, prA}, // Ll LATIN SMALL LETTER U WITH CARON - {0x01D5, 0x01D5, prN}, // Lu LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON - {0x01D6, 0x01D6, prA}, // Ll LATIN SMALL LETTER U WITH DIAERESIS AND MACRON - {0x01D7, 0x01D7, prN}, // Lu LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE - {0x01D8, 0x01D8, prA}, // Ll LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE - {0x01D9, 0x01D9, prN}, // Lu LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON - {0x01DA, 0x01DA, prA}, // Ll LATIN SMALL LETTER U WITH DIAERESIS AND CARON - {0x01DB, 0x01DB, prN}, // Lu LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE - {0x01DC, 0x01DC, prA}, // Ll LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE - {0x01DD, 0x024F, prN}, // L& [115] LATIN SMALL LETTER TURNED E..LATIN SMALL LETTER Y WITH STROKE - {0x0250, 0x0250, prN}, // Ll LATIN SMALL LETTER TURNED A - {0x0251, 0x0251, prA}, // Ll LATIN SMALL LETTER ALPHA - {0x0252, 0x0260, prN}, // Ll [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK - {0x0261, 0x0261, prA}, // Ll LATIN SMALL LETTER SCRIPT G - {0x0262, 0x0293, prN}, // Ll [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL - {0x0294, 0x0294, prN}, // Lo LATIN LETTER GLOTTAL STOP - {0x0295, 0x02AF, prN}, // Ll [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL - {0x02B0, 0x02C1, prN}, // Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP - {0x02C2, 0x02C3, prN}, // Sk [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD - {0x02C4, 0x02C4, prA}, // Sk MODIFIER LETTER UP ARROWHEAD - {0x02C5, 0x02C5, prN}, // Sk MODIFIER LETTER DOWN ARROWHEAD - {0x02C6, 0x02C6, prN}, // Lm MODIFIER LETTER CIRCUMFLEX ACCENT - {0x02C7, 0x02C7, prA}, // Lm CARON - {0x02C8, 0x02C8, prN}, // Lm MODIFIER LETTER VERTICAL LINE - {0x02C9, 0x02CB, prA}, // Lm [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT - {0x02CC, 0x02CC, prN}, // Lm MODIFIER LETTER LOW VERTICAL LINE - {0x02CD, 0x02CD, prA}, // Lm MODIFIER LETTER LOW MACRON - {0x02CE, 0x02CF, prN}, // Lm [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT - {0x02D0, 0x02D0, prA}, // Lm MODIFIER LETTER TRIANGULAR COLON - {0x02D1, 0x02D1, prN}, // Lm MODIFIER LETTER HALF TRIANGULAR COLON - {0x02D2, 0x02D7, prN}, // Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN - {0x02D8, 0x02DB, prA}, // Sk [4] BREVE..OGONEK - {0x02DC, 0x02DC, prN}, // Sk SMALL TILDE - {0x02DD, 0x02DD, prA}, // Sk DOUBLE ACUTE ACCENT - {0x02DE, 0x02DE, prN}, // Sk MODIFIER LETTER RHOTIC HOOK - {0x02DF, 0x02DF, prA}, // Sk MODIFIER LETTER CROSS ACCENT - {0x02E0, 0x02E4, prN}, // Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP - {0x02E5, 0x02EB, prN}, // Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK - {0x02EC, 0x02EC, prN}, // Lm MODIFIER LETTER VOICING - {0x02ED, 0x02ED, prN}, // Sk MODIFIER LETTER UNASPIRATED - {0x02EE, 0x02EE, prN}, // Lm MODIFIER LETTER DOUBLE APOSTROPHE - {0x02EF, 0x02FF, prN}, // Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW - {0x0300, 0x036F, prA}, // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X - {0x0370, 0x0373, prN}, // L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI - {0x0374, 0x0374, prN}, // Lm GREEK NUMERAL SIGN - {0x0375, 0x0375, prN}, // Sk GREEK LOWER NUMERAL SIGN - {0x0376, 0x0377, prN}, // L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA - {0x037A, 0x037A, prN}, // Lm GREEK YPOGEGRAMMENI - {0x037B, 0x037D, prN}, // Ll [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL - {0x037E, 0x037E, prN}, // Po GREEK QUESTION MARK - {0x037F, 0x037F, prN}, // Lu GREEK CAPITAL LETTER YOT - {0x0384, 0x0385, prN}, // Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS - {0x0386, 0x0386, prN}, // Lu GREEK CAPITAL LETTER ALPHA WITH TONOS - {0x0387, 0x0387, prN}, // Po GREEK ANO TELEIA - {0x0388, 0x038A, prN}, // Lu [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS - {0x038C, 0x038C, prN}, // Lu GREEK CAPITAL LETTER OMICRON WITH TONOS - {0x038E, 0x0390, prN}, // L& [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS - {0x0391, 0x03A1, prA}, // Lu [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO - {0x03A3, 0x03A9, prA}, // Lu [7] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER OMEGA - {0x03AA, 0x03B0, prN}, // L& [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS - {0x03B1, 0x03C1, prA}, // Ll [17] GREEK SMALL LETTER ALPHA..GREEK SMALL LETTER RHO - {0x03C2, 0x03C2, prN}, // Ll GREEK SMALL LETTER FINAL SIGMA - {0x03C3, 0x03C9, prA}, // Ll [7] GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA - {0x03CA, 0x03F5, prN}, // L& [44] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK LUNATE EPSILON SYMBOL - {0x03F6, 0x03F6, prN}, // Sm GREEK REVERSED LUNATE EPSILON SYMBOL - {0x03F7, 0x03FF, prN}, // L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL - {0x0400, 0x0400, prN}, // Lu CYRILLIC CAPITAL LETTER IE WITH GRAVE - {0x0401, 0x0401, prA}, // Lu CYRILLIC CAPITAL LETTER IO - {0x0402, 0x040F, prN}, // Lu [14] CYRILLIC CAPITAL LETTER DJE..CYRILLIC CAPITAL LETTER DZHE - {0x0410, 0x044F, prA}, // L& [64] CYRILLIC CAPITAL LETTER A..CYRILLIC SMALL LETTER YA - {0x0450, 0x0450, prN}, // Ll CYRILLIC SMALL LETTER IE WITH GRAVE - {0x0451, 0x0451, prA}, // Ll CYRILLIC SMALL LETTER IO - {0x0452, 0x0481, prN}, // L& [48] CYRILLIC SMALL LETTER DJE..CYRILLIC SMALL LETTER KOPPA - {0x0482, 0x0482, prN}, // So CYRILLIC THOUSANDS SIGN - {0x0483, 0x0487, prN}, // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE - {0x0488, 0x0489, prN}, // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN - {0x048A, 0x04FF, prN}, // L& [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE - {0x0500, 0x052F, prN}, // L& [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER - {0x0531, 0x0556, prN}, // Lu [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH - {0x0559, 0x0559, prN}, // Lm ARMENIAN MODIFIER LETTER LEFT HALF RING - {0x055A, 0x055F, prN}, // Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK - {0x0560, 0x0588, prN}, // Ll [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE - {0x0589, 0x0589, prN}, // Po ARMENIAN FULL STOP - {0x058A, 0x058A, prN}, // Pd ARMENIAN HYPHEN - {0x058D, 0x058E, prN}, // So [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN - {0x058F, 0x058F, prN}, // Sc ARMENIAN DRAM SIGN - {0x0591, 0x05BD, prN}, // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG - {0x05BE, 0x05BE, prN}, // Pd HEBREW PUNCTUATION MAQAF - {0x05BF, 0x05BF, prN}, // Mn HEBREW POINT RAFE - {0x05C0, 0x05C0, prN}, // Po HEBREW PUNCTUATION PASEQ - {0x05C1, 0x05C2, prN}, // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT - {0x05C3, 0x05C3, prN}, // Po HEBREW PUNCTUATION SOF PASUQ - {0x05C4, 0x05C5, prN}, // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT - {0x05C6, 0x05C6, prN}, // Po HEBREW PUNCTUATION NUN HAFUKHA - {0x05C7, 0x05C7, prN}, // Mn HEBREW POINT QAMATS QATAN - {0x05D0, 0x05EA, prN}, // Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV - {0x05EF, 0x05F2, prN}, // Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD - {0x05F3, 0x05F4, prN}, // Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM - {0x0600, 0x0605, prN}, // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE - {0x0606, 0x0608, prN}, // Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY - {0x0609, 0x060A, prN}, // Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN - {0x060B, 0x060B, prN}, // Sc AFGHANI SIGN - {0x060C, 0x060D, prN}, // Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR - {0x060E, 0x060F, prN}, // So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA - {0x0610, 0x061A, prN}, // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA - {0x061B, 0x061B, prN}, // Po ARABIC SEMICOLON - {0x061C, 0x061C, prN}, // Cf ARABIC LETTER MARK - {0x061D, 0x061F, prN}, // Po [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK - {0x0620, 0x063F, prN}, // Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE - {0x0640, 0x0640, prN}, // Lm ARABIC TATWEEL - {0x0641, 0x064A, prN}, // Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH - {0x064B, 0x065F, prN}, // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW - {0x0660, 0x0669, prN}, // Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE - {0x066A, 0x066D, prN}, // Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR - {0x066E, 0x066F, prN}, // Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF - {0x0670, 0x0670, prN}, // Mn ARABIC LETTER SUPERSCRIPT ALEF - {0x0671, 0x06D3, prN}, // Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE - {0x06D4, 0x06D4, prN}, // Po ARABIC FULL STOP - {0x06D5, 0x06D5, prN}, // Lo ARABIC LETTER AE - {0x06D6, 0x06DC, prN}, // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN - {0x06DD, 0x06DD, prN}, // Cf ARABIC END OF AYAH - {0x06DE, 0x06DE, prN}, // So ARABIC START OF RUB EL HIZB - {0x06DF, 0x06E4, prN}, // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA - {0x06E5, 0x06E6, prN}, // Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH - {0x06E7, 0x06E8, prN}, // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON - {0x06E9, 0x06E9, prN}, // So ARABIC PLACE OF SAJDAH - {0x06EA, 0x06ED, prN}, // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM - {0x06EE, 0x06EF, prN}, // Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V - {0x06F0, 0x06F9, prN}, // Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE - {0x06FA, 0x06FC, prN}, // Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW - {0x06FD, 0x06FE, prN}, // So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN - {0x06FF, 0x06FF, prN}, // Lo ARABIC LETTER HEH WITH INVERTED V - {0x0700, 0x070D, prN}, // Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS - {0x070F, 0x070F, prN}, // Cf SYRIAC ABBREVIATION MARK - {0x0710, 0x0710, prN}, // Lo SYRIAC LETTER ALAPH - {0x0711, 0x0711, prN}, // Mn SYRIAC LETTER SUPERSCRIPT ALAPH - {0x0712, 0x072F, prN}, // Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH - {0x0730, 0x074A, prN}, // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH - {0x074D, 0x074F, prN}, // Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE - {0x0750, 0x077F, prN}, // Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE - {0x0780, 0x07A5, prN}, // Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU - {0x07A6, 0x07B0, prN}, // Mn [11] THAANA ABAFILI..THAANA SUKUN - {0x07B1, 0x07B1, prN}, // Lo THAANA LETTER NAA - {0x07C0, 0x07C9, prN}, // Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE - {0x07CA, 0x07EA, prN}, // Lo [33] NKO LETTER A..NKO LETTER JONA RA - {0x07EB, 0x07F3, prN}, // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE - {0x07F4, 0x07F5, prN}, // Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE - {0x07F6, 0x07F6, prN}, // So NKO SYMBOL OO DENNEN - {0x07F7, 0x07F9, prN}, // Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK - {0x07FA, 0x07FA, prN}, // Lm NKO LAJANYALAN - {0x07FD, 0x07FD, prN}, // Mn NKO DANTAYALAN - {0x07FE, 0x07FF, prN}, // Sc [2] NKO DOROME SIGN..NKO TAMAN SIGN - {0x0800, 0x0815, prN}, // Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF - {0x0816, 0x0819, prN}, // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH - {0x081A, 0x081A, prN}, // Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT - {0x081B, 0x0823, prN}, // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A - {0x0824, 0x0824, prN}, // Lm SAMARITAN MODIFIER LETTER SHORT A - {0x0825, 0x0827, prN}, // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U - {0x0828, 0x0828, prN}, // Lm SAMARITAN MODIFIER LETTER I - {0x0829, 0x082D, prN}, // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA - {0x0830, 0x083E, prN}, // Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU - {0x0840, 0x0858, prN}, // Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN - {0x0859, 0x085B, prN}, // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK - {0x085E, 0x085E, prN}, // Po MANDAIC PUNCTUATION - {0x0860, 0x086A, prN}, // Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA - {0x0870, 0x0887, prN}, // Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT - {0x0888, 0x0888, prN}, // Sk ARABIC RAISED ROUND DOT - {0x0889, 0x088E, prN}, // Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL - {0x0890, 0x0891, prN}, // Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE - {0x0898, 0x089F, prN}, // Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA - {0x08A0, 0x08C8, prN}, // Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF - {0x08C9, 0x08C9, prN}, // Lm ARABIC SMALL FARSI YEH - {0x08CA, 0x08E1, prN}, // Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA - {0x08E2, 0x08E2, prN}, // Cf ARABIC DISPUTED END OF AYAH - {0x08E3, 0x08FF, prN}, // Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA - {0x0900, 0x0902, prN}, // Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA - {0x0903, 0x0903, prN}, // Mc DEVANAGARI SIGN VISARGA - {0x0904, 0x0939, prN}, // Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA - {0x093A, 0x093A, prN}, // Mn DEVANAGARI VOWEL SIGN OE - {0x093B, 0x093B, prN}, // Mc DEVANAGARI VOWEL SIGN OOE - {0x093C, 0x093C, prN}, // Mn DEVANAGARI SIGN NUKTA - {0x093D, 0x093D, prN}, // Lo DEVANAGARI SIGN AVAGRAHA - {0x093E, 0x0940, prN}, // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II - {0x0941, 0x0948, prN}, // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI - {0x0949, 0x094C, prN}, // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU - {0x094D, 0x094D, prN}, // Mn DEVANAGARI SIGN VIRAMA - {0x094E, 0x094F, prN}, // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW - {0x0950, 0x0950, prN}, // Lo DEVANAGARI OM - {0x0951, 0x0957, prN}, // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE - {0x0958, 0x0961, prN}, // Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL - {0x0962, 0x0963, prN}, // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL - {0x0964, 0x0965, prN}, // Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA - {0x0966, 0x096F, prN}, // Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE - {0x0970, 0x0970, prN}, // Po DEVANAGARI ABBREVIATION SIGN - {0x0971, 0x0971, prN}, // Lm DEVANAGARI SIGN HIGH SPACING DOT - {0x0972, 0x097F, prN}, // Lo [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA - {0x0980, 0x0980, prN}, // Lo BENGALI ANJI - {0x0981, 0x0981, prN}, // Mn BENGALI SIGN CANDRABINDU - {0x0982, 0x0983, prN}, // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA - {0x0985, 0x098C, prN}, // Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L - {0x098F, 0x0990, prN}, // Lo [2] BENGALI LETTER E..BENGALI LETTER AI - {0x0993, 0x09A8, prN}, // Lo [22] BENGALI LETTER O..BENGALI LETTER NA - {0x09AA, 0x09B0, prN}, // Lo [7] BENGALI LETTER PA..BENGALI LETTER RA - {0x09B2, 0x09B2, prN}, // Lo BENGALI LETTER LA - {0x09B6, 0x09B9, prN}, // Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA - {0x09BC, 0x09BC, prN}, // Mn BENGALI SIGN NUKTA - {0x09BD, 0x09BD, prN}, // Lo BENGALI SIGN AVAGRAHA - {0x09BE, 0x09C0, prN}, // Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II - {0x09C1, 0x09C4, prN}, // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR - {0x09C7, 0x09C8, prN}, // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI - {0x09CB, 0x09CC, prN}, // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU - {0x09CD, 0x09CD, prN}, // Mn BENGALI SIGN VIRAMA - {0x09CE, 0x09CE, prN}, // Lo BENGALI LETTER KHANDA TA - {0x09D7, 0x09D7, prN}, // Mc BENGALI AU LENGTH MARK - {0x09DC, 0x09DD, prN}, // Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA - {0x09DF, 0x09E1, prN}, // Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL - {0x09E2, 0x09E3, prN}, // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL - {0x09E6, 0x09EF, prN}, // Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE - {0x09F0, 0x09F1, prN}, // Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL - {0x09F2, 0x09F3, prN}, // Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN - {0x09F4, 0x09F9, prN}, // No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN - {0x09FA, 0x09FA, prN}, // So BENGALI ISSHAR - {0x09FB, 0x09FB, prN}, // Sc BENGALI GANDA MARK - {0x09FC, 0x09FC, prN}, // Lo BENGALI LETTER VEDIC ANUSVARA - {0x09FD, 0x09FD, prN}, // Po BENGALI ABBREVIATION SIGN - {0x09FE, 0x09FE, prN}, // Mn BENGALI SANDHI MARK - {0x0A01, 0x0A02, prN}, // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI - {0x0A03, 0x0A03, prN}, // Mc GURMUKHI SIGN VISARGA - {0x0A05, 0x0A0A, prN}, // Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU - {0x0A0F, 0x0A10, prN}, // Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI - {0x0A13, 0x0A28, prN}, // Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA - {0x0A2A, 0x0A30, prN}, // Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA - {0x0A32, 0x0A33, prN}, // Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA - {0x0A35, 0x0A36, prN}, // Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA - {0x0A38, 0x0A39, prN}, // Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA - {0x0A3C, 0x0A3C, prN}, // Mn GURMUKHI SIGN NUKTA - {0x0A3E, 0x0A40, prN}, // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II - {0x0A41, 0x0A42, prN}, // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU - {0x0A47, 0x0A48, prN}, // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI - {0x0A4B, 0x0A4D, prN}, // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA - {0x0A51, 0x0A51, prN}, // Mn GURMUKHI SIGN UDAAT - {0x0A59, 0x0A5C, prN}, // Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA - {0x0A5E, 0x0A5E, prN}, // Lo GURMUKHI LETTER FA - {0x0A66, 0x0A6F, prN}, // Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE - {0x0A70, 0x0A71, prN}, // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK - {0x0A72, 0x0A74, prN}, // Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR - {0x0A75, 0x0A75, prN}, // Mn GURMUKHI SIGN YAKASH - {0x0A76, 0x0A76, prN}, // Po GURMUKHI ABBREVIATION SIGN - {0x0A81, 0x0A82, prN}, // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA - {0x0A83, 0x0A83, prN}, // Mc GUJARATI SIGN VISARGA - {0x0A85, 0x0A8D, prN}, // Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E - {0x0A8F, 0x0A91, prN}, // Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O - {0x0A93, 0x0AA8, prN}, // Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA - {0x0AAA, 0x0AB0, prN}, // Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA - {0x0AB2, 0x0AB3, prN}, // Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA - {0x0AB5, 0x0AB9, prN}, // Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA - {0x0ABC, 0x0ABC, prN}, // Mn GUJARATI SIGN NUKTA - {0x0ABD, 0x0ABD, prN}, // Lo GUJARATI SIGN AVAGRAHA - {0x0ABE, 0x0AC0, prN}, // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II - {0x0AC1, 0x0AC5, prN}, // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E - {0x0AC7, 0x0AC8, prN}, // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI - {0x0AC9, 0x0AC9, prN}, // Mc GUJARATI VOWEL SIGN CANDRA O - {0x0ACB, 0x0ACC, prN}, // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU - {0x0ACD, 0x0ACD, prN}, // Mn GUJARATI SIGN VIRAMA - {0x0AD0, 0x0AD0, prN}, // Lo GUJARATI OM - {0x0AE0, 0x0AE1, prN}, // Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL - {0x0AE2, 0x0AE3, prN}, // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL - {0x0AE6, 0x0AEF, prN}, // Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE - {0x0AF0, 0x0AF0, prN}, // Po GUJARATI ABBREVIATION SIGN - {0x0AF1, 0x0AF1, prN}, // Sc GUJARATI RUPEE SIGN - {0x0AF9, 0x0AF9, prN}, // Lo GUJARATI LETTER ZHA - {0x0AFA, 0x0AFF, prN}, // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE - {0x0B01, 0x0B01, prN}, // Mn ORIYA SIGN CANDRABINDU - {0x0B02, 0x0B03, prN}, // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA - {0x0B05, 0x0B0C, prN}, // Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L - {0x0B0F, 0x0B10, prN}, // Lo [2] ORIYA LETTER E..ORIYA LETTER AI - {0x0B13, 0x0B28, prN}, // Lo [22] ORIYA LETTER O..ORIYA LETTER NA - {0x0B2A, 0x0B30, prN}, // Lo [7] ORIYA LETTER PA..ORIYA LETTER RA - {0x0B32, 0x0B33, prN}, // Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA - {0x0B35, 0x0B39, prN}, // Lo [5] ORIYA LETTER VA..ORIYA LETTER HA - {0x0B3C, 0x0B3C, prN}, // Mn ORIYA SIGN NUKTA - {0x0B3D, 0x0B3D, prN}, // Lo ORIYA SIGN AVAGRAHA - {0x0B3E, 0x0B3E, prN}, // Mc ORIYA VOWEL SIGN AA - {0x0B3F, 0x0B3F, prN}, // Mn ORIYA VOWEL SIGN I - {0x0B40, 0x0B40, prN}, // Mc ORIYA VOWEL SIGN II - {0x0B41, 0x0B44, prN}, // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR - {0x0B47, 0x0B48, prN}, // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI - {0x0B4B, 0x0B4C, prN}, // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU - {0x0B4D, 0x0B4D, prN}, // Mn ORIYA SIGN VIRAMA - {0x0B55, 0x0B56, prN}, // Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK - {0x0B57, 0x0B57, prN}, // Mc ORIYA AU LENGTH MARK - {0x0B5C, 0x0B5D, prN}, // Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA - {0x0B5F, 0x0B61, prN}, // Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL - {0x0B62, 0x0B63, prN}, // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL - {0x0B66, 0x0B6F, prN}, // Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE - {0x0B70, 0x0B70, prN}, // So ORIYA ISSHAR - {0x0B71, 0x0B71, prN}, // Lo ORIYA LETTER WA - {0x0B72, 0x0B77, prN}, // No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS - {0x0B82, 0x0B82, prN}, // Mn TAMIL SIGN ANUSVARA - {0x0B83, 0x0B83, prN}, // Lo TAMIL SIGN VISARGA - {0x0B85, 0x0B8A, prN}, // Lo [6] TAMIL LETTER A..TAMIL LETTER UU - {0x0B8E, 0x0B90, prN}, // Lo [3] TAMIL LETTER E..TAMIL LETTER AI - {0x0B92, 0x0B95, prN}, // Lo [4] TAMIL LETTER O..TAMIL LETTER KA - {0x0B99, 0x0B9A, prN}, // Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA - {0x0B9C, 0x0B9C, prN}, // Lo TAMIL LETTER JA - {0x0B9E, 0x0B9F, prN}, // Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA - {0x0BA3, 0x0BA4, prN}, // Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA - {0x0BA8, 0x0BAA, prN}, // Lo [3] TAMIL LETTER NA..TAMIL LETTER PA - {0x0BAE, 0x0BB9, prN}, // Lo [12] TAMIL LETTER MA..TAMIL LETTER HA - {0x0BBE, 0x0BBF, prN}, // Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I - {0x0BC0, 0x0BC0, prN}, // Mn TAMIL VOWEL SIGN II - {0x0BC1, 0x0BC2, prN}, // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU - {0x0BC6, 0x0BC8, prN}, // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI - {0x0BCA, 0x0BCC, prN}, // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU - {0x0BCD, 0x0BCD, prN}, // Mn TAMIL SIGN VIRAMA - {0x0BD0, 0x0BD0, prN}, // Lo TAMIL OM - {0x0BD7, 0x0BD7, prN}, // Mc TAMIL AU LENGTH MARK - {0x0BE6, 0x0BEF, prN}, // Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE - {0x0BF0, 0x0BF2, prN}, // No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND - {0x0BF3, 0x0BF8, prN}, // So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN - {0x0BF9, 0x0BF9, prN}, // Sc TAMIL RUPEE SIGN - {0x0BFA, 0x0BFA, prN}, // So TAMIL NUMBER SIGN - {0x0C00, 0x0C00, prN}, // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE - {0x0C01, 0x0C03, prN}, // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA - {0x0C04, 0x0C04, prN}, // Mn TELUGU SIGN COMBINING ANUSVARA ABOVE - {0x0C05, 0x0C0C, prN}, // Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L - {0x0C0E, 0x0C10, prN}, // Lo [3] TELUGU LETTER E..TELUGU LETTER AI - {0x0C12, 0x0C28, prN}, // Lo [23] TELUGU LETTER O..TELUGU LETTER NA - {0x0C2A, 0x0C39, prN}, // Lo [16] TELUGU LETTER PA..TELUGU LETTER HA - {0x0C3C, 0x0C3C, prN}, // Mn TELUGU SIGN NUKTA - {0x0C3D, 0x0C3D, prN}, // Lo TELUGU SIGN AVAGRAHA - {0x0C3E, 0x0C40, prN}, // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II - {0x0C41, 0x0C44, prN}, // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR - {0x0C46, 0x0C48, prN}, // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI - {0x0C4A, 0x0C4D, prN}, // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA - {0x0C55, 0x0C56, prN}, // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK - {0x0C58, 0x0C5A, prN}, // Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA - {0x0C5D, 0x0C5D, prN}, // Lo TELUGU LETTER NAKAARA POLLU - {0x0C60, 0x0C61, prN}, // Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL - {0x0C62, 0x0C63, prN}, // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL - {0x0C66, 0x0C6F, prN}, // Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE - {0x0C77, 0x0C77, prN}, // Po TELUGU SIGN SIDDHAM - {0x0C78, 0x0C7E, prN}, // No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR - {0x0C7F, 0x0C7F, prN}, // So TELUGU SIGN TUUMU - {0x0C80, 0x0C80, prN}, // Lo KANNADA SIGN SPACING CANDRABINDU - {0x0C81, 0x0C81, prN}, // Mn KANNADA SIGN CANDRABINDU - {0x0C82, 0x0C83, prN}, // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA - {0x0C84, 0x0C84, prN}, // Po KANNADA SIGN SIDDHAM - {0x0C85, 0x0C8C, prN}, // Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L - {0x0C8E, 0x0C90, prN}, // Lo [3] KANNADA LETTER E..KANNADA LETTER AI - {0x0C92, 0x0CA8, prN}, // Lo [23] KANNADA LETTER O..KANNADA LETTER NA - {0x0CAA, 0x0CB3, prN}, // Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA - {0x0CB5, 0x0CB9, prN}, // Lo [5] KANNADA LETTER VA..KANNADA LETTER HA - {0x0CBC, 0x0CBC, prN}, // Mn KANNADA SIGN NUKTA - {0x0CBD, 0x0CBD, prN}, // Lo KANNADA SIGN AVAGRAHA - {0x0CBE, 0x0CBE, prN}, // Mc KANNADA VOWEL SIGN AA - {0x0CBF, 0x0CBF, prN}, // Mn KANNADA VOWEL SIGN I - {0x0CC0, 0x0CC4, prN}, // Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR - {0x0CC6, 0x0CC6, prN}, // Mn KANNADA VOWEL SIGN E - {0x0CC7, 0x0CC8, prN}, // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI - {0x0CCA, 0x0CCB, prN}, // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO - {0x0CCC, 0x0CCD, prN}, // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA - {0x0CD5, 0x0CD6, prN}, // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK - {0x0CDD, 0x0CDE, prN}, // Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA - {0x0CE0, 0x0CE1, prN}, // Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL - {0x0CE2, 0x0CE3, prN}, // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL - {0x0CE6, 0x0CEF, prN}, // Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE - {0x0CF1, 0x0CF2, prN}, // Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA - {0x0CF3, 0x0CF3, prN}, // Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT - {0x0D00, 0x0D01, prN}, // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU - {0x0D02, 0x0D03, prN}, // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA - {0x0D04, 0x0D0C, prN}, // Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L - {0x0D0E, 0x0D10, prN}, // Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI - {0x0D12, 0x0D3A, prN}, // Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA - {0x0D3B, 0x0D3C, prN}, // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA - {0x0D3D, 0x0D3D, prN}, // Lo MALAYALAM SIGN AVAGRAHA - {0x0D3E, 0x0D40, prN}, // Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II - {0x0D41, 0x0D44, prN}, // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR - {0x0D46, 0x0D48, prN}, // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI - {0x0D4A, 0x0D4C, prN}, // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU - {0x0D4D, 0x0D4D, prN}, // Mn MALAYALAM SIGN VIRAMA - {0x0D4E, 0x0D4E, prN}, // Lo MALAYALAM LETTER DOT REPH - {0x0D4F, 0x0D4F, prN}, // So MALAYALAM SIGN PARA - {0x0D54, 0x0D56, prN}, // Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL - {0x0D57, 0x0D57, prN}, // Mc MALAYALAM AU LENGTH MARK - {0x0D58, 0x0D5E, prN}, // No [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH - {0x0D5F, 0x0D61, prN}, // Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL - {0x0D62, 0x0D63, prN}, // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL - {0x0D66, 0x0D6F, prN}, // Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE - {0x0D70, 0x0D78, prN}, // No [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS - {0x0D79, 0x0D79, prN}, // So MALAYALAM DATE MARK - {0x0D7A, 0x0D7F, prN}, // Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K - {0x0D81, 0x0D81, prN}, // Mn SINHALA SIGN CANDRABINDU - {0x0D82, 0x0D83, prN}, // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA - {0x0D85, 0x0D96, prN}, // Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA - {0x0D9A, 0x0DB1, prN}, // Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA - {0x0DB3, 0x0DBB, prN}, // Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA - {0x0DBD, 0x0DBD, prN}, // Lo SINHALA LETTER DANTAJA LAYANNA - {0x0DC0, 0x0DC6, prN}, // Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA - {0x0DCA, 0x0DCA, prN}, // Mn SINHALA SIGN AL-LAKUNA - {0x0DCF, 0x0DD1, prN}, // Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA - {0x0DD2, 0x0DD4, prN}, // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA - {0x0DD6, 0x0DD6, prN}, // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA - {0x0DD8, 0x0DDF, prN}, // Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA - {0x0DE6, 0x0DEF, prN}, // Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE - {0x0DF2, 0x0DF3, prN}, // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA - {0x0DF4, 0x0DF4, prN}, // Po SINHALA PUNCTUATION KUNDDALIYA - {0x0E01, 0x0E30, prN}, // Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A - {0x0E31, 0x0E31, prN}, // Mn THAI CHARACTER MAI HAN-AKAT - {0x0E32, 0x0E33, prN}, // Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM - {0x0E34, 0x0E3A, prN}, // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU - {0x0E3F, 0x0E3F, prN}, // Sc THAI CURRENCY SYMBOL BAHT - {0x0E40, 0x0E45, prN}, // Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO - {0x0E46, 0x0E46, prN}, // Lm THAI CHARACTER MAIYAMOK - {0x0E47, 0x0E4E, prN}, // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN - {0x0E4F, 0x0E4F, prN}, // Po THAI CHARACTER FONGMAN - {0x0E50, 0x0E59, prN}, // Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE - {0x0E5A, 0x0E5B, prN}, // Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT - {0x0E81, 0x0E82, prN}, // Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG - {0x0E84, 0x0E84, prN}, // Lo LAO LETTER KHO TAM - {0x0E86, 0x0E8A, prN}, // Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM - {0x0E8C, 0x0EA3, prN}, // Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING - {0x0EA5, 0x0EA5, prN}, // Lo LAO LETTER LO LOOT - {0x0EA7, 0x0EB0, prN}, // Lo [10] LAO LETTER WO..LAO VOWEL SIGN A - {0x0EB1, 0x0EB1, prN}, // Mn LAO VOWEL SIGN MAI KAN - {0x0EB2, 0x0EB3, prN}, // Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM - {0x0EB4, 0x0EBC, prN}, // Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO - {0x0EBD, 0x0EBD, prN}, // Lo LAO SEMIVOWEL SIGN NYO - {0x0EC0, 0x0EC4, prN}, // Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI - {0x0EC6, 0x0EC6, prN}, // Lm LAO KO LA - {0x0EC8, 0x0ECE, prN}, // Mn [7] LAO TONE MAI EK..LAO YAMAKKAN - {0x0ED0, 0x0ED9, prN}, // Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE - {0x0EDC, 0x0EDF, prN}, // Lo [4] LAO HO NO..LAO LETTER KHMU NYO - {0x0F00, 0x0F00, prN}, // Lo TIBETAN SYLLABLE OM - {0x0F01, 0x0F03, prN}, // So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA - {0x0F04, 0x0F12, prN}, // Po [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD - {0x0F13, 0x0F13, prN}, // So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN - {0x0F14, 0x0F14, prN}, // Po TIBETAN MARK GTER TSHEG - {0x0F15, 0x0F17, prN}, // So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS - {0x0F18, 0x0F19, prN}, // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS - {0x0F1A, 0x0F1F, prN}, // So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG - {0x0F20, 0x0F29, prN}, // Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE - {0x0F2A, 0x0F33, prN}, // No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO - {0x0F34, 0x0F34, prN}, // So TIBETAN MARK BSDUS RTAGS - {0x0F35, 0x0F35, prN}, // Mn TIBETAN MARK NGAS BZUNG NYI ZLA - {0x0F36, 0x0F36, prN}, // So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN - {0x0F37, 0x0F37, prN}, // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS - {0x0F38, 0x0F38, prN}, // So TIBETAN MARK CHE MGO - {0x0F39, 0x0F39, prN}, // Mn TIBETAN MARK TSA -PHRU - {0x0F3A, 0x0F3A, prN}, // Ps TIBETAN MARK GUG RTAGS GYON - {0x0F3B, 0x0F3B, prN}, // Pe TIBETAN MARK GUG RTAGS GYAS - {0x0F3C, 0x0F3C, prN}, // Ps TIBETAN MARK ANG KHANG GYON - {0x0F3D, 0x0F3D, prN}, // Pe TIBETAN MARK ANG KHANG GYAS - {0x0F3E, 0x0F3F, prN}, // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES - {0x0F40, 0x0F47, prN}, // Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA - {0x0F49, 0x0F6C, prN}, // Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA - {0x0F71, 0x0F7E, prN}, // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO - {0x0F7F, 0x0F7F, prN}, // Mc TIBETAN SIGN RNAM BCAD - {0x0F80, 0x0F84, prN}, // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA - {0x0F85, 0x0F85, prN}, // Po TIBETAN MARK PALUTA - {0x0F86, 0x0F87, prN}, // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS - {0x0F88, 0x0F8C, prN}, // Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN - {0x0F8D, 0x0F97, prN}, // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA - {0x0F99, 0x0FBC, prN}, // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA - {0x0FBE, 0x0FC5, prN}, // So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE - {0x0FC6, 0x0FC6, prN}, // Mn TIBETAN SYMBOL PADMA GDAN - {0x0FC7, 0x0FCC, prN}, // So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL - {0x0FCE, 0x0FCF, prN}, // So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM - {0x0FD0, 0x0FD4, prN}, // Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA - {0x0FD5, 0x0FD8, prN}, // So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS - {0x0FD9, 0x0FDA, prN}, // Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS - {0x1000, 0x102A, prN}, // Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU - {0x102B, 0x102C, prN}, // Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA - {0x102D, 0x1030, prN}, // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU - {0x1031, 0x1031, prN}, // Mc MYANMAR VOWEL SIGN E - {0x1032, 0x1037, prN}, // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW - {0x1038, 0x1038, prN}, // Mc MYANMAR SIGN VISARGA - {0x1039, 0x103A, prN}, // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT - {0x103B, 0x103C, prN}, // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA - {0x103D, 0x103E, prN}, // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA - {0x103F, 0x103F, prN}, // Lo MYANMAR LETTER GREAT SA - {0x1040, 0x1049, prN}, // Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE - {0x104A, 0x104F, prN}, // Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE - {0x1050, 0x1055, prN}, // Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL - {0x1056, 0x1057, prN}, // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR - {0x1058, 0x1059, prN}, // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL - {0x105A, 0x105D, prN}, // Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE - {0x105E, 0x1060, prN}, // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA - {0x1061, 0x1061, prN}, // Lo MYANMAR LETTER SGAW KAREN SHA - {0x1062, 0x1064, prN}, // Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO - {0x1065, 0x1066, prN}, // Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA - {0x1067, 0x106D, prN}, // Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5 - {0x106E, 0x1070, prN}, // Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA - {0x1071, 0x1074, prN}, // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE - {0x1075, 0x1081, prN}, // Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA - {0x1082, 0x1082, prN}, // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA - {0x1083, 0x1084, prN}, // Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E - {0x1085, 0x1086, prN}, // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y - {0x1087, 0x108C, prN}, // Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 - {0x108D, 0x108D, prN}, // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE - {0x108E, 0x108E, prN}, // Lo MYANMAR LETTER RUMAI PALAUNG FA - {0x108F, 0x108F, prN}, // Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 - {0x1090, 0x1099, prN}, // Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE - {0x109A, 0x109C, prN}, // Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A - {0x109D, 0x109D, prN}, // Mn MYANMAR VOWEL SIGN AITON AI - {0x109E, 0x109F, prN}, // So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION - {0x10A0, 0x10C5, prN}, // Lu [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE - {0x10C7, 0x10C7, prN}, // Lu GEORGIAN CAPITAL LETTER YN - {0x10CD, 0x10CD, prN}, // Lu GEORGIAN CAPITAL LETTER AEN - {0x10D0, 0x10FA, prN}, // Ll [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN - {0x10FB, 0x10FB, prN}, // Po GEORGIAN PARAGRAPH SEPARATOR - {0x10FC, 0x10FC, prN}, // Lm MODIFIER LETTER GEORGIAN NAR - {0x10FD, 0x10FF, prN}, // Ll [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN - {0x1100, 0x115F, prW}, // Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER - {0x1160, 0x11FF, prN}, // Lo [160] HANGUL JUNGSEONG FILLER..HANGUL JONGSEONG SSANGNIEUN - {0x1200, 0x1248, prN}, // Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA - {0x124A, 0x124D, prN}, // Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE - {0x1250, 0x1256, prN}, // Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO - {0x1258, 0x1258, prN}, // Lo ETHIOPIC SYLLABLE QHWA - {0x125A, 0x125D, prN}, // Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE - {0x1260, 0x1288, prN}, // Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA - {0x128A, 0x128D, prN}, // Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE - {0x1290, 0x12B0, prN}, // Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA - {0x12B2, 0x12B5, prN}, // Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE - {0x12B8, 0x12BE, prN}, // Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO - {0x12C0, 0x12C0, prN}, // Lo ETHIOPIC SYLLABLE KXWA - {0x12C2, 0x12C5, prN}, // Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE - {0x12C8, 0x12D6, prN}, // Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O - {0x12D8, 0x1310, prN}, // Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA - {0x1312, 0x1315, prN}, // Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE - {0x1318, 0x135A, prN}, // Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA - {0x135D, 0x135F, prN}, // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK - {0x1360, 0x1368, prN}, // Po [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR - {0x1369, 0x137C, prN}, // No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND - {0x1380, 0x138F, prN}, // Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE - {0x1390, 0x1399, prN}, // So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT - {0x13A0, 0x13F5, prN}, // Lu [86] CHEROKEE LETTER A..CHEROKEE LETTER MV - {0x13F8, 0x13FD, prN}, // Ll [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV - {0x1400, 0x1400, prN}, // Pd CANADIAN SYLLABICS HYPHEN - {0x1401, 0x166C, prN}, // Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA - {0x166D, 0x166D, prN}, // So CANADIAN SYLLABICS CHI SIGN - {0x166E, 0x166E, prN}, // Po CANADIAN SYLLABICS FULL STOP - {0x166F, 0x167F, prN}, // Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W - {0x1680, 0x1680, prN}, // Zs OGHAM SPACE MARK - {0x1681, 0x169A, prN}, // Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH - {0x169B, 0x169B, prN}, // Ps OGHAM FEATHER MARK - {0x169C, 0x169C, prN}, // Pe OGHAM REVERSED FEATHER MARK - {0x16A0, 0x16EA, prN}, // Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X - {0x16EB, 0x16ED, prN}, // Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION - {0x16EE, 0x16F0, prN}, // Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL - {0x16F1, 0x16F8, prN}, // Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC - {0x1700, 0x1711, prN}, // Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA - {0x1712, 0x1714, prN}, // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA - {0x1715, 0x1715, prN}, // Mc TAGALOG SIGN PAMUDPOD - {0x171F, 0x171F, prN}, // Lo TAGALOG LETTER ARCHAIC RA - {0x1720, 0x1731, prN}, // Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA - {0x1732, 0x1733, prN}, // Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U - {0x1734, 0x1734, prN}, // Mc HANUNOO SIGN PAMUDPOD - {0x1735, 0x1736, prN}, // Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION - {0x1740, 0x1751, prN}, // Lo [18] BUHID LETTER A..BUHID LETTER HA - {0x1752, 0x1753, prN}, // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U - {0x1760, 0x176C, prN}, // Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA - {0x176E, 0x1770, prN}, // Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA - {0x1772, 0x1773, prN}, // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U - {0x1780, 0x17B3, prN}, // Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU - {0x17B4, 0x17B5, prN}, // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA - {0x17B6, 0x17B6, prN}, // Mc KHMER VOWEL SIGN AA - {0x17B7, 0x17BD, prN}, // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA - {0x17BE, 0x17C5, prN}, // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU - {0x17C6, 0x17C6, prN}, // Mn KHMER SIGN NIKAHIT - {0x17C7, 0x17C8, prN}, // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU - {0x17C9, 0x17D3, prN}, // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT - {0x17D4, 0x17D6, prN}, // Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH - {0x17D7, 0x17D7, prN}, // Lm KHMER SIGN LEK TOO - {0x17D8, 0x17DA, prN}, // Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT - {0x17DB, 0x17DB, prN}, // Sc KHMER CURRENCY SYMBOL RIEL - {0x17DC, 0x17DC, prN}, // Lo KHMER SIGN AVAKRAHASANYA - {0x17DD, 0x17DD, prN}, // Mn KHMER SIGN ATTHACAN - {0x17E0, 0x17E9, prN}, // Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE - {0x17F0, 0x17F9, prN}, // No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON - {0x1800, 0x1805, prN}, // Po [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS - {0x1806, 0x1806, prN}, // Pd MONGOLIAN TODO SOFT HYPHEN - {0x1807, 0x180A, prN}, // Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU - {0x180B, 0x180D, prN}, // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE - {0x180E, 0x180E, prN}, // Cf MONGOLIAN VOWEL SEPARATOR - {0x180F, 0x180F, prN}, // Mn MONGOLIAN FREE VARIATION SELECTOR FOUR - {0x1810, 0x1819, prN}, // Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE - {0x1820, 0x1842, prN}, // Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI - {0x1843, 0x1843, prN}, // Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN - {0x1844, 0x1878, prN}, // Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS - {0x1880, 0x1884, prN}, // Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA - {0x1885, 0x1886, prN}, // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA - {0x1887, 0x18A8, prN}, // Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA - {0x18A9, 0x18A9, prN}, // Mn MONGOLIAN LETTER ALI GALI DAGALGA - {0x18AA, 0x18AA, prN}, // Lo MONGOLIAN LETTER MANCHU ALI GALI LHA - {0x18B0, 0x18F5, prN}, // Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S - {0x1900, 0x191E, prN}, // Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA - {0x1920, 0x1922, prN}, // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U - {0x1923, 0x1926, prN}, // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU - {0x1927, 0x1928, prN}, // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O - {0x1929, 0x192B, prN}, // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA - {0x1930, 0x1931, prN}, // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA - {0x1932, 0x1932, prN}, // Mn LIMBU SMALL LETTER ANUSVARA - {0x1933, 0x1938, prN}, // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA - {0x1939, 0x193B, prN}, // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I - {0x1940, 0x1940, prN}, // So LIMBU SIGN LOO - {0x1944, 0x1945, prN}, // Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK - {0x1946, 0x194F, prN}, // Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE - {0x1950, 0x196D, prN}, // Lo [30] TAI LE LETTER KA..TAI LE LETTER AI - {0x1970, 0x1974, prN}, // Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 - {0x1980, 0x19AB, prN}, // Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA - {0x19B0, 0x19C9, prN}, // Lo [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2 - {0x19D0, 0x19D9, prN}, // Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE - {0x19DA, 0x19DA, prN}, // No NEW TAI LUE THAM DIGIT ONE - {0x19DE, 0x19DF, prN}, // So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV - {0x19E0, 0x19FF, prN}, // So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC - {0x1A00, 0x1A16, prN}, // Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA - {0x1A17, 0x1A18, prN}, // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U - {0x1A19, 0x1A1A, prN}, // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O - {0x1A1B, 0x1A1B, prN}, // Mn BUGINESE VOWEL SIGN AE - {0x1A1E, 0x1A1F, prN}, // Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION - {0x1A20, 0x1A54, prN}, // Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA - {0x1A55, 0x1A55, prN}, // Mc TAI THAM CONSONANT SIGN MEDIAL RA - {0x1A56, 0x1A56, prN}, // Mn TAI THAM CONSONANT SIGN MEDIAL LA - {0x1A57, 0x1A57, prN}, // Mc TAI THAM CONSONANT SIGN LA TANG LAI - {0x1A58, 0x1A5E, prN}, // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA - {0x1A60, 0x1A60, prN}, // Mn TAI THAM SIGN SAKOT - {0x1A61, 0x1A61, prN}, // Mc TAI THAM VOWEL SIGN A - {0x1A62, 0x1A62, prN}, // Mn TAI THAM VOWEL SIGN MAI SAT - {0x1A63, 0x1A64, prN}, // Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA - {0x1A65, 0x1A6C, prN}, // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW - {0x1A6D, 0x1A72, prN}, // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI - {0x1A73, 0x1A7C, prN}, // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN - {0x1A7F, 0x1A7F, prN}, // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT - {0x1A80, 0x1A89, prN}, // Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE - {0x1A90, 0x1A99, prN}, // Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE - {0x1AA0, 0x1AA6, prN}, // Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA - {0x1AA7, 0x1AA7, prN}, // Lm TAI THAM SIGN MAI YAMOK - {0x1AA8, 0x1AAD, prN}, // Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG - {0x1AB0, 0x1ABD, prN}, // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW - {0x1ABE, 0x1ABE, prN}, // Me COMBINING PARENTHESES OVERLAY - {0x1ABF, 0x1ACE, prN}, // Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T - {0x1B00, 0x1B03, prN}, // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG - {0x1B04, 0x1B04, prN}, // Mc BALINESE SIGN BISAH - {0x1B05, 0x1B33, prN}, // Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA - {0x1B34, 0x1B34, prN}, // Mn BALINESE SIGN REREKAN - {0x1B35, 0x1B35, prN}, // Mc BALINESE VOWEL SIGN TEDUNG - {0x1B36, 0x1B3A, prN}, // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA - {0x1B3B, 0x1B3B, prN}, // Mc BALINESE VOWEL SIGN RA REPA TEDUNG - {0x1B3C, 0x1B3C, prN}, // Mn BALINESE VOWEL SIGN LA LENGA - {0x1B3D, 0x1B41, prN}, // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG - {0x1B42, 0x1B42, prN}, // Mn BALINESE VOWEL SIGN PEPET - {0x1B43, 0x1B44, prN}, // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG - {0x1B45, 0x1B4C, prN}, // Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA - {0x1B50, 0x1B59, prN}, // Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE - {0x1B5A, 0x1B60, prN}, // Po [7] BALINESE PANTI..BALINESE PAMENENG - {0x1B61, 0x1B6A, prN}, // So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE - {0x1B6B, 0x1B73, prN}, // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG - {0x1B74, 0x1B7C, prN}, // So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING - {0x1B7D, 0x1B7E, prN}, // Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG - {0x1B80, 0x1B81, prN}, // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR - {0x1B82, 0x1B82, prN}, // Mc SUNDANESE SIGN PANGWISAD - {0x1B83, 0x1BA0, prN}, // Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA - {0x1BA1, 0x1BA1, prN}, // Mc SUNDANESE CONSONANT SIGN PAMINGKAL - {0x1BA2, 0x1BA5, prN}, // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU - {0x1BA6, 0x1BA7, prN}, // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG - {0x1BA8, 0x1BA9, prN}, // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG - {0x1BAA, 0x1BAA, prN}, // Mc SUNDANESE SIGN PAMAAEH - {0x1BAB, 0x1BAD, prN}, // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA - {0x1BAE, 0x1BAF, prN}, // Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA - {0x1BB0, 0x1BB9, prN}, // Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE - {0x1BBA, 0x1BBF, prN}, // Lo [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M - {0x1BC0, 0x1BE5, prN}, // Lo [38] BATAK LETTER A..BATAK LETTER U - {0x1BE6, 0x1BE6, prN}, // Mn BATAK SIGN TOMPI - {0x1BE7, 0x1BE7, prN}, // Mc BATAK VOWEL SIGN E - {0x1BE8, 0x1BE9, prN}, // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE - {0x1BEA, 0x1BEC, prN}, // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O - {0x1BED, 0x1BED, prN}, // Mn BATAK VOWEL SIGN KARO O - {0x1BEE, 0x1BEE, prN}, // Mc BATAK VOWEL SIGN U - {0x1BEF, 0x1BF1, prN}, // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H - {0x1BF2, 0x1BF3, prN}, // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN - {0x1BFC, 0x1BFF, prN}, // Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT - {0x1C00, 0x1C23, prN}, // Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A - {0x1C24, 0x1C2B, prN}, // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU - {0x1C2C, 0x1C33, prN}, // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T - {0x1C34, 0x1C35, prN}, // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG - {0x1C36, 0x1C37, prN}, // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA - {0x1C3B, 0x1C3F, prN}, // Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK - {0x1C40, 0x1C49, prN}, // Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE - {0x1C4D, 0x1C4F, prN}, // Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA - {0x1C50, 0x1C59, prN}, // Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE - {0x1C5A, 0x1C77, prN}, // Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH - {0x1C78, 0x1C7D, prN}, // Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD - {0x1C7E, 0x1C7F, prN}, // Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD - {0x1C80, 0x1C88, prN}, // Ll [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK - {0x1C90, 0x1CBA, prN}, // Lu [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN - {0x1CBD, 0x1CBF, prN}, // Lu [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN - {0x1CC0, 0x1CC7, prN}, // Po [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA - {0x1CD0, 0x1CD2, prN}, // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA - {0x1CD3, 0x1CD3, prN}, // Po VEDIC SIGN NIHSHVASA - {0x1CD4, 0x1CE0, prN}, // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA - {0x1CE1, 0x1CE1, prN}, // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA - {0x1CE2, 0x1CE8, prN}, // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL - {0x1CE9, 0x1CEC, prN}, // Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL - {0x1CED, 0x1CED, prN}, // Mn VEDIC SIGN TIRYAK - {0x1CEE, 0x1CF3, prN}, // Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA - {0x1CF4, 0x1CF4, prN}, // Mn VEDIC TONE CANDRA ABOVE - {0x1CF5, 0x1CF6, prN}, // Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA - {0x1CF7, 0x1CF7, prN}, // Mc VEDIC SIGN ATIKRAMA - {0x1CF8, 0x1CF9, prN}, // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE - {0x1CFA, 0x1CFA, prN}, // Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA - {0x1D00, 0x1D2B, prN}, // Ll [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL - {0x1D2C, 0x1D6A, prN}, // Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI - {0x1D6B, 0x1D77, prN}, // Ll [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G - {0x1D78, 0x1D78, prN}, // Lm MODIFIER LETTER CYRILLIC EN - {0x1D79, 0x1D7F, prN}, // Ll [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE - {0x1D80, 0x1D9A, prN}, // Ll [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK - {0x1D9B, 0x1DBF, prN}, // Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA - {0x1DC0, 0x1DFF, prN}, // Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW - {0x1E00, 0x1EFF, prN}, // L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP - {0x1F00, 0x1F15, prN}, // L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA - {0x1F18, 0x1F1D, prN}, // Lu [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA - {0x1F20, 0x1F45, prN}, // L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA - {0x1F48, 0x1F4D, prN}, // Lu [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA - {0x1F50, 0x1F57, prN}, // Ll [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI - {0x1F59, 0x1F59, prN}, // Lu GREEK CAPITAL LETTER UPSILON WITH DASIA - {0x1F5B, 0x1F5B, prN}, // Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA - {0x1F5D, 0x1F5D, prN}, // Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA - {0x1F5F, 0x1F7D, prN}, // L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA - {0x1F80, 0x1FB4, prN}, // L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI - {0x1FB6, 0x1FBC, prN}, // L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI - {0x1FBD, 0x1FBD, prN}, // Sk GREEK KORONIS - {0x1FBE, 0x1FBE, prN}, // Ll GREEK PROSGEGRAMMENI - {0x1FBF, 0x1FC1, prN}, // Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI - {0x1FC2, 0x1FC4, prN}, // Ll [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI - {0x1FC6, 0x1FCC, prN}, // L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI - {0x1FCD, 0x1FCF, prN}, // Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI - {0x1FD0, 0x1FD3, prN}, // Ll [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA - {0x1FD6, 0x1FDB, prN}, // L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA - {0x1FDD, 0x1FDF, prN}, // Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI - {0x1FE0, 0x1FEC, prN}, // L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA - {0x1FED, 0x1FEF, prN}, // Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA - {0x1FF2, 0x1FF4, prN}, // Ll [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI - {0x1FF6, 0x1FFC, prN}, // L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI - {0x1FFD, 0x1FFE, prN}, // Sk [2] GREEK OXIA..GREEK DASIA - {0x2000, 0x200A, prN}, // Zs [11] EN QUAD..HAIR SPACE - {0x200B, 0x200F, prN}, // Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK - {0x2010, 0x2010, prA}, // Pd HYPHEN - {0x2011, 0x2012, prN}, // Pd [2] NON-BREAKING HYPHEN..FIGURE DASH - {0x2013, 0x2015, prA}, // Pd [3] EN DASH..HORIZONTAL BAR - {0x2016, 0x2016, prA}, // Po DOUBLE VERTICAL LINE - {0x2017, 0x2017, prN}, // Po DOUBLE LOW LINE - {0x2018, 0x2018, prA}, // Pi LEFT SINGLE QUOTATION MARK - {0x2019, 0x2019, prA}, // Pf RIGHT SINGLE QUOTATION MARK - {0x201A, 0x201A, prN}, // Ps SINGLE LOW-9 QUOTATION MARK - {0x201B, 0x201B, prN}, // Pi SINGLE HIGH-REVERSED-9 QUOTATION MARK - {0x201C, 0x201C, prA}, // Pi LEFT DOUBLE QUOTATION MARK - {0x201D, 0x201D, prA}, // Pf RIGHT DOUBLE QUOTATION MARK - {0x201E, 0x201E, prN}, // Ps DOUBLE LOW-9 QUOTATION MARK - {0x201F, 0x201F, prN}, // Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK - {0x2020, 0x2022, prA}, // Po [3] DAGGER..BULLET - {0x2023, 0x2023, prN}, // Po TRIANGULAR BULLET - {0x2024, 0x2027, prA}, // Po [4] ONE DOT LEADER..HYPHENATION POINT - {0x2028, 0x2028, prN}, // Zl LINE SEPARATOR - {0x2029, 0x2029, prN}, // Zp PARAGRAPH SEPARATOR - {0x202A, 0x202E, prN}, // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE - {0x202F, 0x202F, prN}, // Zs NARROW NO-BREAK SPACE - {0x2030, 0x2030, prA}, // Po PER MILLE SIGN - {0x2031, 0x2031, prN}, // Po PER TEN THOUSAND SIGN - {0x2032, 0x2033, prA}, // Po [2] PRIME..DOUBLE PRIME - {0x2034, 0x2034, prN}, // Po TRIPLE PRIME - {0x2035, 0x2035, prA}, // Po REVERSED PRIME - {0x2036, 0x2038, prN}, // Po [3] REVERSED DOUBLE PRIME..CARET - {0x2039, 0x2039, prN}, // Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK - {0x203A, 0x203A, prN}, // Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - {0x203B, 0x203B, prA}, // Po REFERENCE MARK - {0x203C, 0x203D, prN}, // Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG - {0x203E, 0x203E, prA}, // Po OVERLINE - {0x203F, 0x2040, prN}, // Pc [2] UNDERTIE..CHARACTER TIE - {0x2041, 0x2043, prN}, // Po [3] CARET INSERTION POINT..HYPHEN BULLET - {0x2044, 0x2044, prN}, // Sm FRACTION SLASH - {0x2045, 0x2045, prN}, // Ps LEFT SQUARE BRACKET WITH QUILL - {0x2046, 0x2046, prN}, // Pe RIGHT SQUARE BRACKET WITH QUILL - {0x2047, 0x2051, prN}, // Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY - {0x2052, 0x2052, prN}, // Sm COMMERCIAL MINUS SIGN - {0x2053, 0x2053, prN}, // Po SWUNG DASH - {0x2054, 0x2054, prN}, // Pc INVERTED UNDERTIE - {0x2055, 0x205E, prN}, // Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS - {0x205F, 0x205F, prN}, // Zs MEDIUM MATHEMATICAL SPACE - {0x2060, 0x2064, prN}, // Cf [5] WORD JOINER..INVISIBLE PLUS - {0x2066, 0x206F, prN}, // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES - {0x2070, 0x2070, prN}, // No SUPERSCRIPT ZERO - {0x2071, 0x2071, prN}, // Lm SUPERSCRIPT LATIN SMALL LETTER I - {0x2074, 0x2074, prA}, // No SUPERSCRIPT FOUR - {0x2075, 0x2079, prN}, // No [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE - {0x207A, 0x207C, prN}, // Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN - {0x207D, 0x207D, prN}, // Ps SUPERSCRIPT LEFT PARENTHESIS - {0x207E, 0x207E, prN}, // Pe SUPERSCRIPT RIGHT PARENTHESIS - {0x207F, 0x207F, prA}, // Lm SUPERSCRIPT LATIN SMALL LETTER N - {0x2080, 0x2080, prN}, // No SUBSCRIPT ZERO - {0x2081, 0x2084, prA}, // No [4] SUBSCRIPT ONE..SUBSCRIPT FOUR - {0x2085, 0x2089, prN}, // No [5] SUBSCRIPT FIVE..SUBSCRIPT NINE - {0x208A, 0x208C, prN}, // Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN - {0x208D, 0x208D, prN}, // Ps SUBSCRIPT LEFT PARENTHESIS - {0x208E, 0x208E, prN}, // Pe SUBSCRIPT RIGHT PARENTHESIS - {0x2090, 0x209C, prN}, // Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T - {0x20A0, 0x20A8, prN}, // Sc [9] EURO-CURRENCY SIGN..RUPEE SIGN - {0x20A9, 0x20A9, prH}, // Sc WON SIGN - {0x20AA, 0x20AB, prN}, // Sc [2] NEW SHEQEL SIGN..DONG SIGN - {0x20AC, 0x20AC, prA}, // Sc EURO SIGN - {0x20AD, 0x20C0, prN}, // Sc [20] KIP SIGN..SOM SIGN - {0x20D0, 0x20DC, prN}, // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE - {0x20DD, 0x20E0, prN}, // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH - {0x20E1, 0x20E1, prN}, // Mn COMBINING LEFT RIGHT ARROW ABOVE - {0x20E2, 0x20E4, prN}, // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE - {0x20E5, 0x20F0, prN}, // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE - {0x2100, 0x2101, prN}, // So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT - {0x2102, 0x2102, prN}, // Lu DOUBLE-STRUCK CAPITAL C - {0x2103, 0x2103, prA}, // So DEGREE CELSIUS - {0x2104, 0x2104, prN}, // So CENTRE LINE SYMBOL - {0x2105, 0x2105, prA}, // So CARE OF - {0x2106, 0x2106, prN}, // So CADA UNA - {0x2107, 0x2107, prN}, // Lu EULER CONSTANT - {0x2108, 0x2108, prN}, // So SCRUPLE - {0x2109, 0x2109, prA}, // So DEGREE FAHRENHEIT - {0x210A, 0x2112, prN}, // L& [9] SCRIPT SMALL G..SCRIPT CAPITAL L - {0x2113, 0x2113, prA}, // Ll SCRIPT SMALL L - {0x2114, 0x2114, prN}, // So L B BAR SYMBOL - {0x2115, 0x2115, prN}, // Lu DOUBLE-STRUCK CAPITAL N - {0x2116, 0x2116, prA}, // So NUMERO SIGN - {0x2117, 0x2117, prN}, // So SOUND RECORDING COPYRIGHT - {0x2118, 0x2118, prN}, // Sm SCRIPT CAPITAL P - {0x2119, 0x211D, prN}, // Lu [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R - {0x211E, 0x2120, prN}, // So [3] PRESCRIPTION TAKE..SERVICE MARK - {0x2121, 0x2122, prA}, // So [2] TELEPHONE SIGN..TRADE MARK SIGN - {0x2123, 0x2123, prN}, // So VERSICLE - {0x2124, 0x2124, prN}, // Lu DOUBLE-STRUCK CAPITAL Z - {0x2125, 0x2125, prN}, // So OUNCE SIGN - {0x2126, 0x2126, prA}, // Lu OHM SIGN - {0x2127, 0x2127, prN}, // So INVERTED OHM SIGN - {0x2128, 0x2128, prN}, // Lu BLACK-LETTER CAPITAL Z - {0x2129, 0x2129, prN}, // So TURNED GREEK SMALL LETTER IOTA - {0x212A, 0x212A, prN}, // Lu KELVIN SIGN - {0x212B, 0x212B, prA}, // Lu ANGSTROM SIGN - {0x212C, 0x212D, prN}, // Lu [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C - {0x212E, 0x212E, prN}, // So ESTIMATED SYMBOL - {0x212F, 0x2134, prN}, // L& [6] SCRIPT SMALL E..SCRIPT SMALL O - {0x2135, 0x2138, prN}, // Lo [4] ALEF SYMBOL..DALET SYMBOL - {0x2139, 0x2139, prN}, // Ll INFORMATION SOURCE - {0x213A, 0x213B, prN}, // So [2] ROTATED CAPITAL Q..FACSIMILE SIGN - {0x213C, 0x213F, prN}, // L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI - {0x2140, 0x2144, prN}, // Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y - {0x2145, 0x2149, prN}, // L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J - {0x214A, 0x214A, prN}, // So PROPERTY LINE - {0x214B, 0x214B, prN}, // Sm TURNED AMPERSAND - {0x214C, 0x214D, prN}, // So [2] PER SIGN..AKTIESELSKAB - {0x214E, 0x214E, prN}, // Ll TURNED SMALL F - {0x214F, 0x214F, prN}, // So SYMBOL FOR SAMARITAN SOURCE - {0x2150, 0x2152, prN}, // No [3] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE TENTH - {0x2153, 0x2154, prA}, // No [2] VULGAR FRACTION ONE THIRD..VULGAR FRACTION TWO THIRDS - {0x2155, 0x215A, prN}, // No [6] VULGAR FRACTION ONE FIFTH..VULGAR FRACTION FIVE SIXTHS - {0x215B, 0x215E, prA}, // No [4] VULGAR FRACTION ONE EIGHTH..VULGAR FRACTION SEVEN EIGHTHS - {0x215F, 0x215F, prN}, // No FRACTION NUMERATOR ONE - {0x2160, 0x216B, prA}, // Nl [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE - {0x216C, 0x216F, prN}, // Nl [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND - {0x2170, 0x2179, prA}, // Nl [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN - {0x217A, 0x2182, prN}, // Nl [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND - {0x2183, 0x2184, prN}, // L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C - {0x2185, 0x2188, prN}, // Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND - {0x2189, 0x2189, prA}, // No VULGAR FRACTION ZERO THIRDS - {0x218A, 0x218B, prN}, // So [2] TURNED DIGIT TWO..TURNED DIGIT THREE - {0x2190, 0x2194, prA}, // Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW - {0x2195, 0x2199, prA}, // So [5] UP DOWN ARROW..SOUTH WEST ARROW - {0x219A, 0x219B, prN}, // Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE - {0x219C, 0x219F, prN}, // So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW - {0x21A0, 0x21A0, prN}, // Sm RIGHTWARDS TWO HEADED ARROW - {0x21A1, 0x21A2, prN}, // So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL - {0x21A3, 0x21A3, prN}, // Sm RIGHTWARDS ARROW WITH TAIL - {0x21A4, 0x21A5, prN}, // So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR - {0x21A6, 0x21A6, prN}, // Sm RIGHTWARDS ARROW FROM BAR - {0x21A7, 0x21AD, prN}, // So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW - {0x21AE, 0x21AE, prN}, // Sm LEFT RIGHT ARROW WITH STROKE - {0x21AF, 0x21B7, prN}, // So [9] DOWNWARDS ZIGZAG ARROW..CLOCKWISE TOP SEMICIRCLE ARROW - {0x21B8, 0x21B9, prA}, // So [2] NORTH WEST ARROW TO LONG BAR..LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR - {0x21BA, 0x21CD, prN}, // So [20] ANTICLOCKWISE OPEN CIRCLE ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE - {0x21CE, 0x21CF, prN}, // Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE - {0x21D0, 0x21D1, prN}, // So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW - {0x21D2, 0x21D2, prA}, // Sm RIGHTWARDS DOUBLE ARROW - {0x21D3, 0x21D3, prN}, // So DOWNWARDS DOUBLE ARROW - {0x21D4, 0x21D4, prA}, // Sm LEFT RIGHT DOUBLE ARROW - {0x21D5, 0x21E6, prN}, // So [18] UP DOWN DOUBLE ARROW..LEFTWARDS WHITE ARROW - {0x21E7, 0x21E7, prA}, // So UPWARDS WHITE ARROW - {0x21E8, 0x21F3, prN}, // So [12] RIGHTWARDS WHITE ARROW..UP DOWN WHITE ARROW - {0x21F4, 0x21FF, prN}, // Sm [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW - {0x2200, 0x2200, prA}, // Sm FOR ALL - {0x2201, 0x2201, prN}, // Sm COMPLEMENT - {0x2202, 0x2203, prA}, // Sm [2] PARTIAL DIFFERENTIAL..THERE EXISTS - {0x2204, 0x2206, prN}, // Sm [3] THERE DOES NOT EXIST..INCREMENT - {0x2207, 0x2208, prA}, // Sm [2] NABLA..ELEMENT OF - {0x2209, 0x220A, prN}, // Sm [2] NOT AN ELEMENT OF..SMALL ELEMENT OF - {0x220B, 0x220B, prA}, // Sm CONTAINS AS MEMBER - {0x220C, 0x220E, prN}, // Sm [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF - {0x220F, 0x220F, prA}, // Sm N-ARY PRODUCT - {0x2210, 0x2210, prN}, // Sm N-ARY COPRODUCT - {0x2211, 0x2211, prA}, // Sm N-ARY SUMMATION - {0x2212, 0x2214, prN}, // Sm [3] MINUS SIGN..DOT PLUS - {0x2215, 0x2215, prA}, // Sm DIVISION SLASH - {0x2216, 0x2219, prN}, // Sm [4] SET MINUS..BULLET OPERATOR - {0x221A, 0x221A, prA}, // Sm SQUARE ROOT - {0x221B, 0x221C, prN}, // Sm [2] CUBE ROOT..FOURTH ROOT - {0x221D, 0x2220, prA}, // Sm [4] PROPORTIONAL TO..ANGLE - {0x2221, 0x2222, prN}, // Sm [2] MEASURED ANGLE..SPHERICAL ANGLE - {0x2223, 0x2223, prA}, // Sm DIVIDES - {0x2224, 0x2224, prN}, // Sm DOES NOT DIVIDE - {0x2225, 0x2225, prA}, // Sm PARALLEL TO - {0x2226, 0x2226, prN}, // Sm NOT PARALLEL TO - {0x2227, 0x222C, prA}, // Sm [6] LOGICAL AND..DOUBLE INTEGRAL - {0x222D, 0x222D, prN}, // Sm TRIPLE INTEGRAL - {0x222E, 0x222E, prA}, // Sm CONTOUR INTEGRAL - {0x222F, 0x2233, prN}, // Sm [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL - {0x2234, 0x2237, prA}, // Sm [4] THEREFORE..PROPORTION - {0x2238, 0x223B, prN}, // Sm [4] DOT MINUS..HOMOTHETIC - {0x223C, 0x223D, prA}, // Sm [2] TILDE OPERATOR..REVERSED TILDE - {0x223E, 0x2247, prN}, // Sm [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO - {0x2248, 0x2248, prA}, // Sm ALMOST EQUAL TO - {0x2249, 0x224B, prN}, // Sm [3] NOT ALMOST EQUAL TO..TRIPLE TILDE - {0x224C, 0x224C, prA}, // Sm ALL EQUAL TO - {0x224D, 0x2251, prN}, // Sm [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO - {0x2252, 0x2252, prA}, // Sm APPROXIMATELY EQUAL TO OR THE IMAGE OF - {0x2253, 0x225F, prN}, // Sm [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO - {0x2260, 0x2261, prA}, // Sm [2] NOT EQUAL TO..IDENTICAL TO - {0x2262, 0x2263, prN}, // Sm [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO - {0x2264, 0x2267, prA}, // Sm [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO - {0x2268, 0x2269, prN}, // Sm [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO - {0x226A, 0x226B, prA}, // Sm [2] MUCH LESS-THAN..MUCH GREATER-THAN - {0x226C, 0x226D, prN}, // Sm [2] BETWEEN..NOT EQUIVALENT TO - {0x226E, 0x226F, prA}, // Sm [2] NOT LESS-THAN..NOT GREATER-THAN - {0x2270, 0x2281, prN}, // Sm [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED - {0x2282, 0x2283, prA}, // Sm [2] SUBSET OF..SUPERSET OF - {0x2284, 0x2285, prN}, // Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF - {0x2286, 0x2287, prA}, // Sm [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO - {0x2288, 0x2294, prN}, // Sm [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP - {0x2295, 0x2295, prA}, // Sm CIRCLED PLUS - {0x2296, 0x2298, prN}, // Sm [3] CIRCLED MINUS..CIRCLED DIVISION SLASH - {0x2299, 0x2299, prA}, // Sm CIRCLED DOT OPERATOR - {0x229A, 0x22A4, prN}, // Sm [11] CIRCLED RING OPERATOR..DOWN TACK - {0x22A5, 0x22A5, prA}, // Sm UP TACK - {0x22A6, 0x22BE, prN}, // Sm [25] ASSERTION..RIGHT ANGLE WITH ARC - {0x22BF, 0x22BF, prA}, // Sm RIGHT TRIANGLE - {0x22C0, 0x22FF, prN}, // Sm [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP - {0x2300, 0x2307, prN}, // So [8] DIAMETER SIGN..WAVY LINE - {0x2308, 0x2308, prN}, // Ps LEFT CEILING - {0x2309, 0x2309, prN}, // Pe RIGHT CEILING - {0x230A, 0x230A, prN}, // Ps LEFT FLOOR - {0x230B, 0x230B, prN}, // Pe RIGHT FLOOR - {0x230C, 0x2311, prN}, // So [6] BOTTOM RIGHT CROP..SQUARE LOZENGE - {0x2312, 0x2312, prA}, // So ARC - {0x2313, 0x2319, prN}, // So [7] SEGMENT..TURNED NOT SIGN - {0x231A, 0x231B, prW}, // So [2] WATCH..HOURGLASS - {0x231C, 0x231F, prN}, // So [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER - {0x2320, 0x2321, prN}, // Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL - {0x2322, 0x2328, prN}, // So [7] FROWN..KEYBOARD - {0x2329, 0x2329, prW}, // Ps LEFT-POINTING ANGLE BRACKET - {0x232A, 0x232A, prW}, // Pe RIGHT-POINTING ANGLE BRACKET - {0x232B, 0x237B, prN}, // So [81] ERASE TO THE LEFT..NOT CHECK MARK - {0x237C, 0x237C, prN}, // Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW - {0x237D, 0x239A, prN}, // So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL - {0x239B, 0x23B3, prN}, // Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM - {0x23B4, 0x23DB, prN}, // So [40] TOP SQUARE BRACKET..FUSE - {0x23DC, 0x23E1, prN}, // Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET - {0x23E2, 0x23E8, prN}, // So [7] WHITE TRAPEZIUM..DECIMAL EXPONENT SYMBOL - {0x23E9, 0x23EC, prW}, // So [4] BLACK RIGHT-POINTING DOUBLE TRIANGLE..BLACK DOWN-POINTING DOUBLE TRIANGLE - {0x23ED, 0x23EF, prN}, // So [3] BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR - {0x23F0, 0x23F0, prW}, // So ALARM CLOCK - {0x23F1, 0x23F2, prN}, // So [2] STOPWATCH..TIMER CLOCK - {0x23F3, 0x23F3, prW}, // So HOURGLASS WITH FLOWING SAND - {0x23F4, 0x23FF, prN}, // So [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL - {0x2400, 0x2426, prN}, // So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO - {0x2440, 0x244A, prN}, // So [11] OCR HOOK..OCR DOUBLE BACKSLASH - {0x2460, 0x249B, prA}, // No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP - {0x249C, 0x24E9, prA}, // So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z - {0x24EA, 0x24EA, prN}, // No CIRCLED DIGIT ZERO - {0x24EB, 0x24FF, prA}, // No [21] NEGATIVE CIRCLED NUMBER ELEVEN..NEGATIVE CIRCLED DIGIT ZERO - {0x2500, 0x254B, prA}, // So [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL - {0x254C, 0x254F, prN}, // So [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL - {0x2550, 0x2573, prA}, // So [36] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT DIAGONAL CROSS - {0x2574, 0x257F, prN}, // So [12] BOX DRAWINGS LIGHT LEFT..BOX DRAWINGS HEAVY UP AND LIGHT DOWN - {0x2580, 0x258F, prA}, // So [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK - {0x2590, 0x2591, prN}, // So [2] RIGHT HALF BLOCK..LIGHT SHADE - {0x2592, 0x2595, prA}, // So [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK - {0x2596, 0x259F, prN}, // So [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT - {0x25A0, 0x25A1, prA}, // So [2] BLACK SQUARE..WHITE SQUARE - {0x25A2, 0x25A2, prN}, // So WHITE SQUARE WITH ROUNDED CORNERS - {0x25A3, 0x25A9, prA}, // So [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL - {0x25AA, 0x25B1, prN}, // So [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM - {0x25B2, 0x25B3, prA}, // So [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE - {0x25B4, 0x25B5, prN}, // So [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE - {0x25B6, 0x25B6, prA}, // So BLACK RIGHT-POINTING TRIANGLE - {0x25B7, 0x25B7, prA}, // Sm WHITE RIGHT-POINTING TRIANGLE - {0x25B8, 0x25BB, prN}, // So [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER - {0x25BC, 0x25BD, prA}, // So [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE - {0x25BE, 0x25BF, prN}, // So [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE - {0x25C0, 0x25C0, prA}, // So BLACK LEFT-POINTING TRIANGLE - {0x25C1, 0x25C1, prA}, // Sm WHITE LEFT-POINTING TRIANGLE - {0x25C2, 0x25C5, prN}, // So [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER - {0x25C6, 0x25C8, prA}, // So [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND - {0x25C9, 0x25CA, prN}, // So [2] FISHEYE..LOZENGE - {0x25CB, 0x25CB, prA}, // So WHITE CIRCLE - {0x25CC, 0x25CD, prN}, // So [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL - {0x25CE, 0x25D1, prA}, // So [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK - {0x25D2, 0x25E1, prN}, // So [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE - {0x25E2, 0x25E5, prA}, // So [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE - {0x25E6, 0x25EE, prN}, // So [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK - {0x25EF, 0x25EF, prA}, // So LARGE CIRCLE - {0x25F0, 0x25F7, prN}, // So [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT - {0x25F8, 0x25FC, prN}, // Sm [5] UPPER LEFT TRIANGLE..BLACK MEDIUM SQUARE - {0x25FD, 0x25FE, prW}, // Sm [2] WHITE MEDIUM SMALL SQUARE..BLACK MEDIUM SMALL SQUARE - {0x25FF, 0x25FF, prN}, // Sm LOWER RIGHT TRIANGLE - {0x2600, 0x2604, prN}, // So [5] BLACK SUN WITH RAYS..COMET - {0x2605, 0x2606, prA}, // So [2] BLACK STAR..WHITE STAR - {0x2607, 0x2608, prN}, // So [2] LIGHTNING..THUNDERSTORM - {0x2609, 0x2609, prA}, // So SUN - {0x260A, 0x260D, prN}, // So [4] ASCENDING NODE..OPPOSITION - {0x260E, 0x260F, prA}, // So [2] BLACK TELEPHONE..WHITE TELEPHONE - {0x2610, 0x2613, prN}, // So [4] BALLOT BOX..SALTIRE - {0x2614, 0x2615, prW}, // So [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE - {0x2616, 0x261B, prN}, // So [6] WHITE SHOGI PIECE..BLACK RIGHT POINTING INDEX - {0x261C, 0x261C, prA}, // So WHITE LEFT POINTING INDEX - {0x261D, 0x261D, prN}, // So WHITE UP POINTING INDEX - {0x261E, 0x261E, prA}, // So WHITE RIGHT POINTING INDEX - {0x261F, 0x263F, prN}, // So [33] WHITE DOWN POINTING INDEX..MERCURY - {0x2640, 0x2640, prA}, // So FEMALE SIGN - {0x2641, 0x2641, prN}, // So EARTH - {0x2642, 0x2642, prA}, // So MALE SIGN - {0x2643, 0x2647, prN}, // So [5] JUPITER..PLUTO - {0x2648, 0x2653, prW}, // So [12] ARIES..PISCES - {0x2654, 0x265F, prN}, // So [12] WHITE CHESS KING..BLACK CHESS PAWN - {0x2660, 0x2661, prA}, // So [2] BLACK SPADE SUIT..WHITE HEART SUIT - {0x2662, 0x2662, prN}, // So WHITE DIAMOND SUIT - {0x2663, 0x2665, prA}, // So [3] BLACK CLUB SUIT..BLACK HEART SUIT - {0x2666, 0x2666, prN}, // So BLACK DIAMOND SUIT - {0x2667, 0x266A, prA}, // So [4] WHITE CLUB SUIT..EIGHTH NOTE - {0x266B, 0x266B, prN}, // So BEAMED EIGHTH NOTES - {0x266C, 0x266D, prA}, // So [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN - {0x266E, 0x266E, prN}, // So MUSIC NATURAL SIGN - {0x266F, 0x266F, prA}, // Sm MUSIC SHARP SIGN - {0x2670, 0x267E, prN}, // So [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN - {0x267F, 0x267F, prW}, // So WHEELCHAIR SYMBOL - {0x2680, 0x2692, prN}, // So [19] DIE FACE-1..HAMMER AND PICK - {0x2693, 0x2693, prW}, // So ANCHOR - {0x2694, 0x269D, prN}, // So [10] CROSSED SWORDS..OUTLINED WHITE STAR - {0x269E, 0x269F, prA}, // So [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT - {0x26A0, 0x26A0, prN}, // So WARNING SIGN - {0x26A1, 0x26A1, prW}, // So HIGH VOLTAGE SIGN - {0x26A2, 0x26A9, prN}, // So [8] DOUBLED FEMALE SIGN..HORIZONTAL MALE WITH STROKE SIGN - {0x26AA, 0x26AB, prW}, // So [2] MEDIUM WHITE CIRCLE..MEDIUM BLACK CIRCLE - {0x26AC, 0x26BC, prN}, // So [17] MEDIUM SMALL WHITE CIRCLE..SESQUIQUADRATE - {0x26BD, 0x26BE, prW}, // So [2] SOCCER BALL..BASEBALL - {0x26BF, 0x26BF, prA}, // So SQUARED KEY - {0x26C0, 0x26C3, prN}, // So [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING - {0x26C4, 0x26C5, prW}, // So [2] SNOWMAN WITHOUT SNOW..SUN BEHIND CLOUD - {0x26C6, 0x26CD, prA}, // So [8] RAIN..DISABLED CAR - {0x26CE, 0x26CE, prW}, // So OPHIUCHUS - {0x26CF, 0x26D3, prA}, // So [5] PICK..CHAINS - {0x26D4, 0x26D4, prW}, // So NO ENTRY - {0x26D5, 0x26E1, prA}, // So [13] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..RESTRICTED LEFT ENTRY-2 - {0x26E2, 0x26E2, prN}, // So ASTRONOMICAL SYMBOL FOR URANUS - {0x26E3, 0x26E3, prA}, // So HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE - {0x26E4, 0x26E7, prN}, // So [4] PENTAGRAM..INVERTED PENTAGRAM - {0x26E8, 0x26E9, prA}, // So [2] BLACK CROSS ON SHIELD..SHINTO SHRINE - {0x26EA, 0x26EA, prW}, // So CHURCH - {0x26EB, 0x26F1, prA}, // So [7] CASTLE..UMBRELLA ON GROUND - {0x26F2, 0x26F3, prW}, // So [2] FOUNTAIN..FLAG IN HOLE - {0x26F4, 0x26F4, prA}, // So FERRY - {0x26F5, 0x26F5, prW}, // So SAILBOAT - {0x26F6, 0x26F9, prA}, // So [4] SQUARE FOUR CORNERS..PERSON WITH BALL - {0x26FA, 0x26FA, prW}, // So TENT - {0x26FB, 0x26FC, prA}, // So [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL - {0x26FD, 0x26FD, prW}, // So FUEL PUMP - {0x26FE, 0x26FF, prA}, // So [2] CUP ON BLACK SQUARE..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE - {0x2700, 0x2704, prN}, // So [5] BLACK SAFETY SCISSORS..WHITE SCISSORS - {0x2705, 0x2705, prW}, // So WHITE HEAVY CHECK MARK - {0x2706, 0x2709, prN}, // So [4] TELEPHONE LOCATION SIGN..ENVELOPE - {0x270A, 0x270B, prW}, // So [2] RAISED FIST..RAISED HAND - {0x270C, 0x2727, prN}, // So [28] VICTORY HAND..WHITE FOUR POINTED STAR - {0x2728, 0x2728, prW}, // So SPARKLES - {0x2729, 0x273C, prN}, // So [20] STRESS OUTLINED WHITE STAR..OPEN CENTRE TEARDROP-SPOKED ASTERISK - {0x273D, 0x273D, prA}, // So HEAVY TEARDROP-SPOKED ASTERISK - {0x273E, 0x274B, prN}, // So [14] SIX PETALLED BLACK AND WHITE FLORETTE..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK - {0x274C, 0x274C, prW}, // So CROSS MARK - {0x274D, 0x274D, prN}, // So SHADOWED WHITE CIRCLE - {0x274E, 0x274E, prW}, // So NEGATIVE SQUARED CROSS MARK - {0x274F, 0x2752, prN}, // So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE - {0x2753, 0x2755, prW}, // So [3] BLACK QUESTION MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT - {0x2756, 0x2756, prN}, // So BLACK DIAMOND MINUS WHITE X - {0x2757, 0x2757, prW}, // So HEAVY EXCLAMATION MARK SYMBOL - {0x2758, 0x2767, prN}, // So [16] LIGHT VERTICAL BAR..ROTATED FLORAL HEART BULLET - {0x2768, 0x2768, prN}, // Ps MEDIUM LEFT PARENTHESIS ORNAMENT - {0x2769, 0x2769, prN}, // Pe MEDIUM RIGHT PARENTHESIS ORNAMENT - {0x276A, 0x276A, prN}, // Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT - {0x276B, 0x276B, prN}, // Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT - {0x276C, 0x276C, prN}, // Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT - {0x276D, 0x276D, prN}, // Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT - {0x276E, 0x276E, prN}, // Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT - {0x276F, 0x276F, prN}, // Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT - {0x2770, 0x2770, prN}, // Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT - {0x2771, 0x2771, prN}, // Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT - {0x2772, 0x2772, prN}, // Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT - {0x2773, 0x2773, prN}, // Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT - {0x2774, 0x2774, prN}, // Ps MEDIUM LEFT CURLY BRACKET ORNAMENT - {0x2775, 0x2775, prN}, // Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT - {0x2776, 0x277F, prA}, // No [10] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED NUMBER TEN - {0x2780, 0x2793, prN}, // No [20] DINGBAT CIRCLED SANS-SERIF DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN - {0x2794, 0x2794, prN}, // So HEAVY WIDE-HEADED RIGHTWARDS ARROW - {0x2795, 0x2797, prW}, // So [3] HEAVY PLUS SIGN..HEAVY DIVISION SIGN - {0x2798, 0x27AF, prN}, // So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW - {0x27B0, 0x27B0, prW}, // So CURLY LOOP - {0x27B1, 0x27BE, prN}, // So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW - {0x27BF, 0x27BF, prW}, // So DOUBLE CURLY LOOP - {0x27C0, 0x27C4, prN}, // Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET - {0x27C5, 0x27C5, prN}, // Ps LEFT S-SHAPED BAG DELIMITER - {0x27C6, 0x27C6, prN}, // Pe RIGHT S-SHAPED BAG DELIMITER - {0x27C7, 0x27E5, prN}, // Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK - {0x27E6, 0x27E6, prNa}, // Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET - {0x27E7, 0x27E7, prNa}, // Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET - {0x27E8, 0x27E8, prNa}, // Ps MATHEMATICAL LEFT ANGLE BRACKET - {0x27E9, 0x27E9, prNa}, // Pe MATHEMATICAL RIGHT ANGLE BRACKET - {0x27EA, 0x27EA, prNa}, // Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET - {0x27EB, 0x27EB, prNa}, // Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET - {0x27EC, 0x27EC, prNa}, // Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET - {0x27ED, 0x27ED, prNa}, // Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET - {0x27EE, 0x27EE, prN}, // Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS - {0x27EF, 0x27EF, prN}, // Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS - {0x27F0, 0x27FF, prN}, // Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW - {0x2800, 0x28FF, prN}, // So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678 - {0x2900, 0x297F, prN}, // Sm [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL - {0x2980, 0x2982, prN}, // Sm [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON - {0x2983, 0x2983, prN}, // Ps LEFT WHITE CURLY BRACKET - {0x2984, 0x2984, prN}, // Pe RIGHT WHITE CURLY BRACKET - {0x2985, 0x2985, prNa}, // Ps LEFT WHITE PARENTHESIS - {0x2986, 0x2986, prNa}, // Pe RIGHT WHITE PARENTHESIS - {0x2987, 0x2987, prN}, // Ps Z NOTATION LEFT IMAGE BRACKET - {0x2988, 0x2988, prN}, // Pe Z NOTATION RIGHT IMAGE BRACKET - {0x2989, 0x2989, prN}, // Ps Z NOTATION LEFT BINDING BRACKET - {0x298A, 0x298A, prN}, // Pe Z NOTATION RIGHT BINDING BRACKET - {0x298B, 0x298B, prN}, // Ps LEFT SQUARE BRACKET WITH UNDERBAR - {0x298C, 0x298C, prN}, // Pe RIGHT SQUARE BRACKET WITH UNDERBAR - {0x298D, 0x298D, prN}, // Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER - {0x298E, 0x298E, prN}, // Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER - {0x298F, 0x298F, prN}, // Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER - {0x2990, 0x2990, prN}, // Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER - {0x2991, 0x2991, prN}, // Ps LEFT ANGLE BRACKET WITH DOT - {0x2992, 0x2992, prN}, // Pe RIGHT ANGLE BRACKET WITH DOT - {0x2993, 0x2993, prN}, // Ps LEFT ARC LESS-THAN BRACKET - {0x2994, 0x2994, prN}, // Pe RIGHT ARC GREATER-THAN BRACKET - {0x2995, 0x2995, prN}, // Ps DOUBLE LEFT ARC GREATER-THAN BRACKET - {0x2996, 0x2996, prN}, // Pe DOUBLE RIGHT ARC LESS-THAN BRACKET - {0x2997, 0x2997, prN}, // Ps LEFT BLACK TORTOISE SHELL BRACKET - {0x2998, 0x2998, prN}, // Pe RIGHT BLACK TORTOISE SHELL BRACKET - {0x2999, 0x29D7, prN}, // Sm [63] DOTTED FENCE..BLACK HOURGLASS - {0x29D8, 0x29D8, prN}, // Ps LEFT WIGGLY FENCE - {0x29D9, 0x29D9, prN}, // Pe RIGHT WIGGLY FENCE - {0x29DA, 0x29DA, prN}, // Ps LEFT DOUBLE WIGGLY FENCE - {0x29DB, 0x29DB, prN}, // Pe RIGHT DOUBLE WIGGLY FENCE - {0x29DC, 0x29FB, prN}, // Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS - {0x29FC, 0x29FC, prN}, // Ps LEFT-POINTING CURVED ANGLE BRACKET - {0x29FD, 0x29FD, prN}, // Pe RIGHT-POINTING CURVED ANGLE BRACKET - {0x29FE, 0x29FF, prN}, // Sm [2] TINY..MINY - {0x2A00, 0x2AFF, prN}, // Sm [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR - {0x2B00, 0x2B1A, prN}, // So [27] NORTH EAST WHITE ARROW..DOTTED SQUARE - {0x2B1B, 0x2B1C, prW}, // So [2] BLACK LARGE SQUARE..WHITE LARGE SQUARE - {0x2B1D, 0x2B2F, prN}, // So [19] BLACK VERY SMALL SQUARE..WHITE VERTICAL ELLIPSE - {0x2B30, 0x2B44, prN}, // Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET - {0x2B45, 0x2B46, prN}, // So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW - {0x2B47, 0x2B4C, prN}, // Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR - {0x2B4D, 0x2B4F, prN}, // So [3] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW - {0x2B50, 0x2B50, prW}, // So WHITE MEDIUM STAR - {0x2B51, 0x2B54, prN}, // So [4] BLACK SMALL STAR..WHITE RIGHT-POINTING PENTAGON - {0x2B55, 0x2B55, prW}, // So HEAVY LARGE CIRCLE - {0x2B56, 0x2B59, prA}, // So [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE - {0x2B5A, 0x2B73, prN}, // So [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR - {0x2B76, 0x2B95, prN}, // So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW - {0x2B97, 0x2BFF, prN}, // So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL - {0x2C00, 0x2C5F, prN}, // L& [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI - {0x2C60, 0x2C7B, prN}, // L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E - {0x2C7C, 0x2C7D, prN}, // Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V - {0x2C7E, 0x2C7F, prN}, // Lu [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL - {0x2C80, 0x2CE4, prN}, // L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI - {0x2CE5, 0x2CEA, prN}, // So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA - {0x2CEB, 0x2CEE, prN}, // L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA - {0x2CEF, 0x2CF1, prN}, // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS - {0x2CF2, 0x2CF3, prN}, // L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI - {0x2CF9, 0x2CFC, prN}, // Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER - {0x2CFD, 0x2CFD, prN}, // No COPTIC FRACTION ONE HALF - {0x2CFE, 0x2CFF, prN}, // Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER - {0x2D00, 0x2D25, prN}, // Ll [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE - {0x2D27, 0x2D27, prN}, // Ll GEORGIAN SMALL LETTER YN - {0x2D2D, 0x2D2D, prN}, // Ll GEORGIAN SMALL LETTER AEN - {0x2D30, 0x2D67, prN}, // Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO - {0x2D6F, 0x2D6F, prN}, // Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK - {0x2D70, 0x2D70, prN}, // Po TIFINAGH SEPARATOR MARK - {0x2D7F, 0x2D7F, prN}, // Mn TIFINAGH CONSONANT JOINER - {0x2D80, 0x2D96, prN}, // Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE - {0x2DA0, 0x2DA6, prN}, // Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO - {0x2DA8, 0x2DAE, prN}, // Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO - {0x2DB0, 0x2DB6, prN}, // Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO - {0x2DB8, 0x2DBE, prN}, // Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO - {0x2DC0, 0x2DC6, prN}, // Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO - {0x2DC8, 0x2DCE, prN}, // Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO - {0x2DD0, 0x2DD6, prN}, // Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO - {0x2DD8, 0x2DDE, prN}, // Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO - {0x2DE0, 0x2DFF, prN}, // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS - {0x2E00, 0x2E01, prN}, // Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER - {0x2E02, 0x2E02, prN}, // Pi LEFT SUBSTITUTION BRACKET - {0x2E03, 0x2E03, prN}, // Pf RIGHT SUBSTITUTION BRACKET - {0x2E04, 0x2E04, prN}, // Pi LEFT DOTTED SUBSTITUTION BRACKET - {0x2E05, 0x2E05, prN}, // Pf RIGHT DOTTED SUBSTITUTION BRACKET - {0x2E06, 0x2E08, prN}, // Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER - {0x2E09, 0x2E09, prN}, // Pi LEFT TRANSPOSITION BRACKET - {0x2E0A, 0x2E0A, prN}, // Pf RIGHT TRANSPOSITION BRACKET - {0x2E0B, 0x2E0B, prN}, // Po RAISED SQUARE - {0x2E0C, 0x2E0C, prN}, // Pi LEFT RAISED OMISSION BRACKET - {0x2E0D, 0x2E0D, prN}, // Pf RIGHT RAISED OMISSION BRACKET - {0x2E0E, 0x2E16, prN}, // Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE - {0x2E17, 0x2E17, prN}, // Pd DOUBLE OBLIQUE HYPHEN - {0x2E18, 0x2E19, prN}, // Po [2] INVERTED INTERROBANG..PALM BRANCH - {0x2E1A, 0x2E1A, prN}, // Pd HYPHEN WITH DIAERESIS - {0x2E1B, 0x2E1B, prN}, // Po TILDE WITH RING ABOVE - {0x2E1C, 0x2E1C, prN}, // Pi LEFT LOW PARAPHRASE BRACKET - {0x2E1D, 0x2E1D, prN}, // Pf RIGHT LOW PARAPHRASE BRACKET - {0x2E1E, 0x2E1F, prN}, // Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW - {0x2E20, 0x2E20, prN}, // Pi LEFT VERTICAL BAR WITH QUILL - {0x2E21, 0x2E21, prN}, // Pf RIGHT VERTICAL BAR WITH QUILL - {0x2E22, 0x2E22, prN}, // Ps TOP LEFT HALF BRACKET - {0x2E23, 0x2E23, prN}, // Pe TOP RIGHT HALF BRACKET - {0x2E24, 0x2E24, prN}, // Ps BOTTOM LEFT HALF BRACKET - {0x2E25, 0x2E25, prN}, // Pe BOTTOM RIGHT HALF BRACKET - {0x2E26, 0x2E26, prN}, // Ps LEFT SIDEWAYS U BRACKET - {0x2E27, 0x2E27, prN}, // Pe RIGHT SIDEWAYS U BRACKET - {0x2E28, 0x2E28, prN}, // Ps LEFT DOUBLE PARENTHESIS - {0x2E29, 0x2E29, prN}, // Pe RIGHT DOUBLE PARENTHESIS - {0x2E2A, 0x2E2E, prN}, // Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK - {0x2E2F, 0x2E2F, prN}, // Lm VERTICAL TILDE - {0x2E30, 0x2E39, prN}, // Po [10] RING POINT..TOP HALF SECTION SIGN - {0x2E3A, 0x2E3B, prN}, // Pd [2] TWO-EM DASH..THREE-EM DASH - {0x2E3C, 0x2E3F, prN}, // Po [4] STENOGRAPHIC FULL STOP..CAPITULUM - {0x2E40, 0x2E40, prN}, // Pd DOUBLE HYPHEN - {0x2E41, 0x2E41, prN}, // Po REVERSED COMMA - {0x2E42, 0x2E42, prN}, // Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK - {0x2E43, 0x2E4F, prN}, // Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER - {0x2E50, 0x2E51, prN}, // So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR - {0x2E52, 0x2E54, prN}, // Po [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK - {0x2E55, 0x2E55, prN}, // Ps LEFT SQUARE BRACKET WITH STROKE - {0x2E56, 0x2E56, prN}, // Pe RIGHT SQUARE BRACKET WITH STROKE - {0x2E57, 0x2E57, prN}, // Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE - {0x2E58, 0x2E58, prN}, // Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE - {0x2E59, 0x2E59, prN}, // Ps TOP HALF LEFT PARENTHESIS - {0x2E5A, 0x2E5A, prN}, // Pe TOP HALF RIGHT PARENTHESIS - {0x2E5B, 0x2E5B, prN}, // Ps BOTTOM HALF LEFT PARENTHESIS - {0x2E5C, 0x2E5C, prN}, // Pe BOTTOM HALF RIGHT PARENTHESIS - {0x2E5D, 0x2E5D, prN}, // Pd OBLIQUE HYPHEN - {0x2E80, 0x2E99, prW}, // So [26] CJK RADICAL REPEAT..CJK RADICAL RAP - {0x2E9B, 0x2EF3, prW}, // So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE - {0x2F00, 0x2FD5, prW}, // So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE - {0x2FF0, 0x2FFB, prW}, // So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID - {0x3000, 0x3000, prF}, // Zs IDEOGRAPHIC SPACE - {0x3001, 0x3003, prW}, // Po [3] IDEOGRAPHIC COMMA..DITTO MARK - {0x3004, 0x3004, prW}, // So JAPANESE INDUSTRIAL STANDARD SYMBOL - {0x3005, 0x3005, prW}, // Lm IDEOGRAPHIC ITERATION MARK - {0x3006, 0x3006, prW}, // Lo IDEOGRAPHIC CLOSING MARK - {0x3007, 0x3007, prW}, // Nl IDEOGRAPHIC NUMBER ZERO - {0x3008, 0x3008, prW}, // Ps LEFT ANGLE BRACKET - {0x3009, 0x3009, prW}, // Pe RIGHT ANGLE BRACKET - {0x300A, 0x300A, prW}, // Ps LEFT DOUBLE ANGLE BRACKET - {0x300B, 0x300B, prW}, // Pe RIGHT DOUBLE ANGLE BRACKET - {0x300C, 0x300C, prW}, // Ps LEFT CORNER BRACKET - {0x300D, 0x300D, prW}, // Pe RIGHT CORNER BRACKET - {0x300E, 0x300E, prW}, // Ps LEFT WHITE CORNER BRACKET - {0x300F, 0x300F, prW}, // Pe RIGHT WHITE CORNER BRACKET - {0x3010, 0x3010, prW}, // Ps LEFT BLACK LENTICULAR BRACKET - {0x3011, 0x3011, prW}, // Pe RIGHT BLACK LENTICULAR BRACKET - {0x3012, 0x3013, prW}, // So [2] POSTAL MARK..GETA MARK - {0x3014, 0x3014, prW}, // Ps LEFT TORTOISE SHELL BRACKET - {0x3015, 0x3015, prW}, // Pe RIGHT TORTOISE SHELL BRACKET - {0x3016, 0x3016, prW}, // Ps LEFT WHITE LENTICULAR BRACKET - {0x3017, 0x3017, prW}, // Pe RIGHT WHITE LENTICULAR BRACKET - {0x3018, 0x3018, prW}, // Ps LEFT WHITE TORTOISE SHELL BRACKET - {0x3019, 0x3019, prW}, // Pe RIGHT WHITE TORTOISE SHELL BRACKET - {0x301A, 0x301A, prW}, // Ps LEFT WHITE SQUARE BRACKET - {0x301B, 0x301B, prW}, // Pe RIGHT WHITE SQUARE BRACKET - {0x301C, 0x301C, prW}, // Pd WAVE DASH - {0x301D, 0x301D, prW}, // Ps REVERSED DOUBLE PRIME QUOTATION MARK - {0x301E, 0x301F, prW}, // Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK - {0x3020, 0x3020, prW}, // So POSTAL MARK FACE - {0x3021, 0x3029, prW}, // Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE - {0x302A, 0x302D, prW}, // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK - {0x302E, 0x302F, prW}, // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK - {0x3030, 0x3030, prW}, // Pd WAVY DASH - {0x3031, 0x3035, prW}, // Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF - {0x3036, 0x3037, prW}, // So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL - {0x3038, 0x303A, prW}, // Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY - {0x303B, 0x303B, prW}, // Lm VERTICAL IDEOGRAPHIC ITERATION MARK - {0x303C, 0x303C, prW}, // Lo MASU MARK - {0x303D, 0x303D, prW}, // Po PART ALTERNATION MARK - {0x303E, 0x303E, prW}, // So IDEOGRAPHIC VARIATION INDICATOR - {0x303F, 0x303F, prN}, // So IDEOGRAPHIC HALF FILL SPACE - {0x3041, 0x3096, prW}, // Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE - {0x3099, 0x309A, prW}, // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - {0x309B, 0x309C, prW}, // Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - {0x309D, 0x309E, prW}, // Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK - {0x309F, 0x309F, prW}, // Lo HIRAGANA DIGRAPH YORI - {0x30A0, 0x30A0, prW}, // Pd KATAKANA-HIRAGANA DOUBLE HYPHEN - {0x30A1, 0x30FA, prW}, // Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO - {0x30FB, 0x30FB, prW}, // Po KATAKANA MIDDLE DOT - {0x30FC, 0x30FE, prW}, // Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK - {0x30FF, 0x30FF, prW}, // Lo KATAKANA DIGRAPH KOTO - {0x3105, 0x312F, prW}, // Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN - {0x3131, 0x318E, prW}, // Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE - {0x3190, 0x3191, prW}, // So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK - {0x3192, 0x3195, prW}, // No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK - {0x3196, 0x319F, prW}, // So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK - {0x31A0, 0x31BF, prW}, // Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH - {0x31C0, 0x31E3, prW}, // So [36] CJK STROKE T..CJK STROKE Q - {0x31F0, 0x31FF, prW}, // Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO - {0x3200, 0x321E, prW}, // So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU - {0x3220, 0x3229, prW}, // No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN - {0x322A, 0x3247, prW}, // So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO - {0x3248, 0x324F, prA}, // No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE - {0x3250, 0x3250, prW}, // So PARTNERSHIP SIGN - {0x3251, 0x325F, prW}, // No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE - {0x3260, 0x327F, prW}, // So [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL - {0x3280, 0x3289, prW}, // No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN - {0x328A, 0x32B0, prW}, // So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT - {0x32B1, 0x32BF, prW}, // No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY - {0x32C0, 0x32FF, prW}, // So [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA - {0x3300, 0x33FF, prW}, // So [256] SQUARE APAATO..SQUARE GAL - {0x3400, 0x4DBF, prW}, // Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF - {0x4DC0, 0x4DFF, prN}, // So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION - {0x4E00, 0x9FFF, prW}, // Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF - {0xA000, 0xA014, prW}, // Lo [21] YI SYLLABLE IT..YI SYLLABLE E - {0xA015, 0xA015, prW}, // Lm YI SYLLABLE WU - {0xA016, 0xA48C, prW}, // Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR - {0xA490, 0xA4C6, prW}, // So [55] YI RADICAL QOT..YI RADICAL KE - {0xA4D0, 0xA4F7, prN}, // Lo [40] LISU LETTER BA..LISU LETTER OE - {0xA4F8, 0xA4FD, prN}, // Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU - {0xA4FE, 0xA4FF, prN}, // Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP - {0xA500, 0xA60B, prN}, // Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG - {0xA60C, 0xA60C, prN}, // Lm VAI SYLLABLE LENGTHENER - {0xA60D, 0xA60F, prN}, // Po [3] VAI COMMA..VAI QUESTION MARK - {0xA610, 0xA61F, prN}, // Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG - {0xA620, 0xA629, prN}, // Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE - {0xA62A, 0xA62B, prN}, // Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO - {0xA640, 0xA66D, prN}, // L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O - {0xA66E, 0xA66E, prN}, // Lo CYRILLIC LETTER MULTIOCULAR O - {0xA66F, 0xA66F, prN}, // Mn COMBINING CYRILLIC VZMET - {0xA670, 0xA672, prN}, // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN - {0xA673, 0xA673, prN}, // Po SLAVONIC ASTERISK - {0xA674, 0xA67D, prN}, // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK - {0xA67E, 0xA67E, prN}, // Po CYRILLIC KAVYKA - {0xA67F, 0xA67F, prN}, // Lm CYRILLIC PAYEROK - {0xA680, 0xA69B, prN}, // L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O - {0xA69C, 0xA69D, prN}, // Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN - {0xA69E, 0xA69F, prN}, // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E - {0xA6A0, 0xA6E5, prN}, // Lo [70] BAMUM LETTER A..BAMUM LETTER KI - {0xA6E6, 0xA6EF, prN}, // Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM - {0xA6F0, 0xA6F1, prN}, // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS - {0xA6F2, 0xA6F7, prN}, // Po [6] BAMUM NJAEMLI..BAMUM QUESTION MARK - {0xA700, 0xA716, prN}, // Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR - {0xA717, 0xA71F, prN}, // Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK - {0xA720, 0xA721, prN}, // Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE - {0xA722, 0xA76F, prN}, // L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON - {0xA770, 0xA770, prN}, // Lm MODIFIER LETTER US - {0xA771, 0xA787, prN}, // L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T - {0xA788, 0xA788, prN}, // Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT - {0xA789, 0xA78A, prN}, // Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN - {0xA78B, 0xA78E, prN}, // L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT - {0xA78F, 0xA78F, prN}, // Lo LATIN LETTER SINOLOGICAL DOT - {0xA790, 0xA7CA, prN}, // L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY - {0xA7D0, 0xA7D1, prN}, // L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G - {0xA7D3, 0xA7D3, prN}, // Ll LATIN SMALL LETTER DOUBLE THORN - {0xA7D5, 0xA7D9, prN}, // L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S - {0xA7F2, 0xA7F4, prN}, // Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q - {0xA7F5, 0xA7F6, prN}, // L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H - {0xA7F7, 0xA7F7, prN}, // Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I - {0xA7F8, 0xA7F9, prN}, // Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE - {0xA7FA, 0xA7FA, prN}, // Ll LATIN LETTER SMALL CAPITAL TURNED M - {0xA7FB, 0xA7FF, prN}, // Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M - {0xA800, 0xA801, prN}, // Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I - {0xA802, 0xA802, prN}, // Mn SYLOTI NAGRI SIGN DVISVARA - {0xA803, 0xA805, prN}, // Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O - {0xA806, 0xA806, prN}, // Mn SYLOTI NAGRI SIGN HASANTA - {0xA807, 0xA80A, prN}, // Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO - {0xA80B, 0xA80B, prN}, // Mn SYLOTI NAGRI SIGN ANUSVARA - {0xA80C, 0xA822, prN}, // Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO - {0xA823, 0xA824, prN}, // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I - {0xA825, 0xA826, prN}, // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E - {0xA827, 0xA827, prN}, // Mc SYLOTI NAGRI VOWEL SIGN OO - {0xA828, 0xA82B, prN}, // So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4 - {0xA82C, 0xA82C, prN}, // Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA - {0xA830, 0xA835, prN}, // No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS - {0xA836, 0xA837, prN}, // So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK - {0xA838, 0xA838, prN}, // Sc NORTH INDIC RUPEE MARK - {0xA839, 0xA839, prN}, // So NORTH INDIC QUANTITY MARK - {0xA840, 0xA873, prN}, // Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU - {0xA874, 0xA877, prN}, // Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD - {0xA880, 0xA881, prN}, // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA - {0xA882, 0xA8B3, prN}, // Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA - {0xA8B4, 0xA8C3, prN}, // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU - {0xA8C4, 0xA8C5, prN}, // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU - {0xA8CE, 0xA8CF, prN}, // Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA - {0xA8D0, 0xA8D9, prN}, // Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE - {0xA8E0, 0xA8F1, prN}, // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA - {0xA8F2, 0xA8F7, prN}, // Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA - {0xA8F8, 0xA8FA, prN}, // Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET - {0xA8FB, 0xA8FB, prN}, // Lo DEVANAGARI HEADSTROKE - {0xA8FC, 0xA8FC, prN}, // Po DEVANAGARI SIGN SIDDHAM - {0xA8FD, 0xA8FE, prN}, // Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY - {0xA8FF, 0xA8FF, prN}, // Mn DEVANAGARI VOWEL SIGN AY - {0xA900, 0xA909, prN}, // Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE - {0xA90A, 0xA925, prN}, // Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO - {0xA926, 0xA92D, prN}, // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU - {0xA92E, 0xA92F, prN}, // Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA - {0xA930, 0xA946, prN}, // Lo [23] REJANG LETTER KA..REJANG LETTER A - {0xA947, 0xA951, prN}, // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R - {0xA952, 0xA953, prN}, // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA - {0xA95F, 0xA95F, prN}, // Po REJANG SECTION MARK - {0xA960, 0xA97C, prW}, // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH - {0xA980, 0xA982, prN}, // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR - {0xA983, 0xA983, prN}, // Mc JAVANESE SIGN WIGNYAN - {0xA984, 0xA9B2, prN}, // Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA - {0xA9B3, 0xA9B3, prN}, // Mn JAVANESE SIGN CECAK TELU - {0xA9B4, 0xA9B5, prN}, // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG - {0xA9B6, 0xA9B9, prN}, // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT - {0xA9BA, 0xA9BB, prN}, // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE - {0xA9BC, 0xA9BD, prN}, // Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET - {0xA9BE, 0xA9C0, prN}, // Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON - {0xA9C1, 0xA9CD, prN}, // Po [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH - {0xA9CF, 0xA9CF, prN}, // Lm JAVANESE PANGRANGKEP - {0xA9D0, 0xA9D9, prN}, // Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE - {0xA9DE, 0xA9DF, prN}, // Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN - {0xA9E0, 0xA9E4, prN}, // Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA - {0xA9E5, 0xA9E5, prN}, // Mn MYANMAR SIGN SHAN SAW - {0xA9E6, 0xA9E6, prN}, // Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION - {0xA9E7, 0xA9EF, prN}, // Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA - {0xA9F0, 0xA9F9, prN}, // Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE - {0xA9FA, 0xA9FE, prN}, // Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA - {0xAA00, 0xAA28, prN}, // Lo [41] CHAM LETTER A..CHAM LETTER HA - {0xAA29, 0xAA2E, prN}, // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE - {0xAA2F, 0xAA30, prN}, // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI - {0xAA31, 0xAA32, prN}, // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE - {0xAA33, 0xAA34, prN}, // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA - {0xAA35, 0xAA36, prN}, // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA - {0xAA40, 0xAA42, prN}, // Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG - {0xAA43, 0xAA43, prN}, // Mn CHAM CONSONANT SIGN FINAL NG - {0xAA44, 0xAA4B, prN}, // Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS - {0xAA4C, 0xAA4C, prN}, // Mn CHAM CONSONANT SIGN FINAL M - {0xAA4D, 0xAA4D, prN}, // Mc CHAM CONSONANT SIGN FINAL H - {0xAA50, 0xAA59, prN}, // Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE - {0xAA5C, 0xAA5F, prN}, // Po [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA - {0xAA60, 0xAA6F, prN}, // Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA - {0xAA70, 0xAA70, prN}, // Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION - {0xAA71, 0xAA76, prN}, // Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM - {0xAA77, 0xAA79, prN}, // So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO - {0xAA7A, 0xAA7A, prN}, // Lo MYANMAR LETTER AITON RA - {0xAA7B, 0xAA7B, prN}, // Mc MYANMAR SIGN PAO KAREN TONE - {0xAA7C, 0xAA7C, prN}, // Mn MYANMAR SIGN TAI LAING TONE-2 - {0xAA7D, 0xAA7D, prN}, // Mc MYANMAR SIGN TAI LAING TONE-5 - {0xAA7E, 0xAA7F, prN}, // Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA - {0xAA80, 0xAAAF, prN}, // Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O - {0xAAB0, 0xAAB0, prN}, // Mn TAI VIET MAI KANG - {0xAAB1, 0xAAB1, prN}, // Lo TAI VIET VOWEL AA - {0xAAB2, 0xAAB4, prN}, // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U - {0xAAB5, 0xAAB6, prN}, // Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O - {0xAAB7, 0xAAB8, prN}, // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA - {0xAAB9, 0xAABD, prN}, // Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN - {0xAABE, 0xAABF, prN}, // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK - {0xAAC0, 0xAAC0, prN}, // Lo TAI VIET TONE MAI NUENG - {0xAAC1, 0xAAC1, prN}, // Mn TAI VIET TONE MAI THO - {0xAAC2, 0xAAC2, prN}, // Lo TAI VIET TONE MAI SONG - {0xAADB, 0xAADC, prN}, // Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG - {0xAADD, 0xAADD, prN}, // Lm TAI VIET SYMBOL SAM - {0xAADE, 0xAADF, prN}, // Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI - {0xAAE0, 0xAAEA, prN}, // Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA - {0xAAEB, 0xAAEB, prN}, // Mc MEETEI MAYEK VOWEL SIGN II - {0xAAEC, 0xAAED, prN}, // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI - {0xAAEE, 0xAAEF, prN}, // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU - {0xAAF0, 0xAAF1, prN}, // Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM - {0xAAF2, 0xAAF2, prN}, // Lo MEETEI MAYEK ANJI - {0xAAF3, 0xAAF4, prN}, // Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK - {0xAAF5, 0xAAF5, prN}, // Mc MEETEI MAYEK VOWEL SIGN VISARGA - {0xAAF6, 0xAAF6, prN}, // Mn MEETEI MAYEK VIRAMA - {0xAB01, 0xAB06, prN}, // Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO - {0xAB09, 0xAB0E, prN}, // Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO - {0xAB11, 0xAB16, prN}, // Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO - {0xAB20, 0xAB26, prN}, // Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO - {0xAB28, 0xAB2E, prN}, // Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO - {0xAB30, 0xAB5A, prN}, // Ll [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG - {0xAB5B, 0xAB5B, prN}, // Sk MODIFIER BREVE WITH INVERTED BREVE - {0xAB5C, 0xAB5F, prN}, // Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK - {0xAB60, 0xAB68, prN}, // Ll [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE - {0xAB69, 0xAB69, prN}, // Lm MODIFIER LETTER SMALL TURNED W - {0xAB6A, 0xAB6B, prN}, // Sk [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK - {0xAB70, 0xABBF, prN}, // Ll [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA - {0xABC0, 0xABE2, prN}, // Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM - {0xABE3, 0xABE4, prN}, // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP - {0xABE5, 0xABE5, prN}, // Mn MEETEI MAYEK VOWEL SIGN ANAP - {0xABE6, 0xABE7, prN}, // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP - {0xABE8, 0xABE8, prN}, // Mn MEETEI MAYEK VOWEL SIGN UNAP - {0xABE9, 0xABEA, prN}, // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG - {0xABEB, 0xABEB, prN}, // Po MEETEI MAYEK CHEIKHEI - {0xABEC, 0xABEC, prN}, // Mc MEETEI MAYEK LUM IYEK - {0xABED, 0xABED, prN}, // Mn MEETEI MAYEK APUN IYEK - {0xABF0, 0xABF9, prN}, // Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE - {0xAC00, 0xD7A3, prW}, // Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH - {0xD7B0, 0xD7C6, prN}, // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E - {0xD7CB, 0xD7FB, prN}, // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH - {0xD800, 0xDB7F, prN}, // Cs [896] .. - {0xDB80, 0xDBFF, prN}, // Cs [128] .. - {0xDC00, 0xDFFF, prN}, // Cs [1024] .. - {0xE000, 0xF8FF, prA}, // Co [6400] .. - {0xF900, 0xFA6D, prW}, // Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D - {0xFA6E, 0xFA6F, prW}, // Cn [2] .. - {0xFA70, 0xFAD9, prW}, // Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 - {0xFADA, 0xFAFF, prW}, // Cn [38] .. - {0xFB00, 0xFB06, prN}, // Ll [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST - {0xFB13, 0xFB17, prN}, // Ll [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH - {0xFB1D, 0xFB1D, prN}, // Lo HEBREW LETTER YOD WITH HIRIQ - {0xFB1E, 0xFB1E, prN}, // Mn HEBREW POINT JUDEO-SPANISH VARIKA - {0xFB1F, 0xFB28, prN}, // Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV - {0xFB29, 0xFB29, prN}, // Sm HEBREW LETTER ALTERNATIVE PLUS SIGN - {0xFB2A, 0xFB36, prN}, // Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH - {0xFB38, 0xFB3C, prN}, // Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH - {0xFB3E, 0xFB3E, prN}, // Lo HEBREW LETTER MEM WITH DAGESH - {0xFB40, 0xFB41, prN}, // Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH - {0xFB43, 0xFB44, prN}, // Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH - {0xFB46, 0xFB4F, prN}, // Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED - {0xFB50, 0xFBB1, prN}, // Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM - {0xFBB2, 0xFBC2, prN}, // Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE - {0xFBD3, 0xFD3D, prN}, // Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM - {0xFD3E, 0xFD3E, prN}, // Pe ORNATE LEFT PARENTHESIS - {0xFD3F, 0xFD3F, prN}, // Ps ORNATE RIGHT PARENTHESIS - {0xFD40, 0xFD4F, prN}, // So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH - {0xFD50, 0xFD8F, prN}, // Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM - {0xFD92, 0xFDC7, prN}, // Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM - {0xFDCF, 0xFDCF, prN}, // So ARABIC LIGATURE SALAAMUHU ALAYNAA - {0xFDF0, 0xFDFB, prN}, // Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU - {0xFDFC, 0xFDFC, prN}, // Sc RIAL SIGN - {0xFDFD, 0xFDFF, prN}, // So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL - {0xFE00, 0xFE0F, prA}, // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 - {0xFE10, 0xFE16, prW}, // Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK - {0xFE17, 0xFE17, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET - {0xFE18, 0xFE18, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET - {0xFE19, 0xFE19, prW}, // Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS - {0xFE20, 0xFE2F, prN}, // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF - {0xFE30, 0xFE30, prW}, // Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER - {0xFE31, 0xFE32, prW}, // Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH - {0xFE33, 0xFE34, prW}, // Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE - {0xFE35, 0xFE35, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS - {0xFE36, 0xFE36, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS - {0xFE37, 0xFE37, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET - {0xFE38, 0xFE38, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET - {0xFE39, 0xFE39, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET - {0xFE3A, 0xFE3A, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET - {0xFE3B, 0xFE3B, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET - {0xFE3C, 0xFE3C, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET - {0xFE3D, 0xFE3D, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET - {0xFE3E, 0xFE3E, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET - {0xFE3F, 0xFE3F, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET - {0xFE40, 0xFE40, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET - {0xFE41, 0xFE41, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET - {0xFE42, 0xFE42, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET - {0xFE43, 0xFE43, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET - {0xFE44, 0xFE44, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET - {0xFE45, 0xFE46, prW}, // Po [2] SESAME DOT..WHITE SESAME DOT - {0xFE47, 0xFE47, prW}, // Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET - {0xFE48, 0xFE48, prW}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET - {0xFE49, 0xFE4C, prW}, // Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE - {0xFE4D, 0xFE4F, prW}, // Pc [3] DASHED LOW LINE..WAVY LOW LINE - {0xFE50, 0xFE52, prW}, // Po [3] SMALL COMMA..SMALL FULL STOP - {0xFE54, 0xFE57, prW}, // Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK - {0xFE58, 0xFE58, prW}, // Pd SMALL EM DASH - {0xFE59, 0xFE59, prW}, // Ps SMALL LEFT PARENTHESIS - {0xFE5A, 0xFE5A, prW}, // Pe SMALL RIGHT PARENTHESIS - {0xFE5B, 0xFE5B, prW}, // Ps SMALL LEFT CURLY BRACKET - {0xFE5C, 0xFE5C, prW}, // Pe SMALL RIGHT CURLY BRACKET - {0xFE5D, 0xFE5D, prW}, // Ps SMALL LEFT TORTOISE SHELL BRACKET - {0xFE5E, 0xFE5E, prW}, // Pe SMALL RIGHT TORTOISE SHELL BRACKET - {0xFE5F, 0xFE61, prW}, // Po [3] SMALL NUMBER SIGN..SMALL ASTERISK - {0xFE62, 0xFE62, prW}, // Sm SMALL PLUS SIGN - {0xFE63, 0xFE63, prW}, // Pd SMALL HYPHEN-MINUS - {0xFE64, 0xFE66, prW}, // Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN - {0xFE68, 0xFE68, prW}, // Po SMALL REVERSE SOLIDUS - {0xFE69, 0xFE69, prW}, // Sc SMALL DOLLAR SIGN - {0xFE6A, 0xFE6B, prW}, // Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT - {0xFE70, 0xFE74, prN}, // Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM - {0xFE76, 0xFEFC, prN}, // Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM - {0xFEFF, 0xFEFF, prN}, // Cf ZERO WIDTH NO-BREAK SPACE - {0xFF01, 0xFF03, prF}, // Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN - {0xFF04, 0xFF04, prF}, // Sc FULLWIDTH DOLLAR SIGN - {0xFF05, 0xFF07, prF}, // Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE - {0xFF08, 0xFF08, prF}, // Ps FULLWIDTH LEFT PARENTHESIS - {0xFF09, 0xFF09, prF}, // Pe FULLWIDTH RIGHT PARENTHESIS - {0xFF0A, 0xFF0A, prF}, // Po FULLWIDTH ASTERISK - {0xFF0B, 0xFF0B, prF}, // Sm FULLWIDTH PLUS SIGN - {0xFF0C, 0xFF0C, prF}, // Po FULLWIDTH COMMA - {0xFF0D, 0xFF0D, prF}, // Pd FULLWIDTH HYPHEN-MINUS - {0xFF0E, 0xFF0F, prF}, // Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS - {0xFF10, 0xFF19, prF}, // Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE - {0xFF1A, 0xFF1B, prF}, // Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON - {0xFF1C, 0xFF1E, prF}, // Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN - {0xFF1F, 0xFF20, prF}, // Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT - {0xFF21, 0xFF3A, prF}, // Lu [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z - {0xFF3B, 0xFF3B, prF}, // Ps FULLWIDTH LEFT SQUARE BRACKET - {0xFF3C, 0xFF3C, prF}, // Po FULLWIDTH REVERSE SOLIDUS - {0xFF3D, 0xFF3D, prF}, // Pe FULLWIDTH RIGHT SQUARE BRACKET - {0xFF3E, 0xFF3E, prF}, // Sk FULLWIDTH CIRCUMFLEX ACCENT - {0xFF3F, 0xFF3F, prF}, // Pc FULLWIDTH LOW LINE - {0xFF40, 0xFF40, prF}, // Sk FULLWIDTH GRAVE ACCENT - {0xFF41, 0xFF5A, prF}, // Ll [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z - {0xFF5B, 0xFF5B, prF}, // Ps FULLWIDTH LEFT CURLY BRACKET - {0xFF5C, 0xFF5C, prF}, // Sm FULLWIDTH VERTICAL LINE - {0xFF5D, 0xFF5D, prF}, // Pe FULLWIDTH RIGHT CURLY BRACKET - {0xFF5E, 0xFF5E, prF}, // Sm FULLWIDTH TILDE - {0xFF5F, 0xFF5F, prF}, // Ps FULLWIDTH LEFT WHITE PARENTHESIS - {0xFF60, 0xFF60, prF}, // Pe FULLWIDTH RIGHT WHITE PARENTHESIS - {0xFF61, 0xFF61, prH}, // Po HALFWIDTH IDEOGRAPHIC FULL STOP - {0xFF62, 0xFF62, prH}, // Ps HALFWIDTH LEFT CORNER BRACKET - {0xFF63, 0xFF63, prH}, // Pe HALFWIDTH RIGHT CORNER BRACKET - {0xFF64, 0xFF65, prH}, // Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT - {0xFF66, 0xFF6F, prH}, // Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU - {0xFF70, 0xFF70, prH}, // Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK - {0xFF71, 0xFF9D, prH}, // Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N - {0xFF9E, 0xFF9F, prH}, // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK - {0xFFA0, 0xFFBE, prH}, // Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH - {0xFFC2, 0xFFC7, prH}, // Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E - {0xFFCA, 0xFFCF, prH}, // Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE - {0xFFD2, 0xFFD7, prH}, // Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU - {0xFFDA, 0xFFDC, prH}, // Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I - {0xFFE0, 0xFFE1, prF}, // Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN - {0xFFE2, 0xFFE2, prF}, // Sm FULLWIDTH NOT SIGN - {0xFFE3, 0xFFE3, prF}, // Sk FULLWIDTH MACRON - {0xFFE4, 0xFFE4, prF}, // So FULLWIDTH BROKEN BAR - {0xFFE5, 0xFFE6, prF}, // Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN - {0xFFE8, 0xFFE8, prH}, // So HALFWIDTH FORMS LIGHT VERTICAL - {0xFFE9, 0xFFEC, prH}, // Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW - {0xFFED, 0xFFEE, prH}, // So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE - {0xFFF9, 0xFFFB, prN}, // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR - {0xFFFC, 0xFFFC, prN}, // So OBJECT REPLACEMENT CHARACTER - {0xFFFD, 0xFFFD, prA}, // So REPLACEMENT CHARACTER - {0x10000, 0x1000B, prN}, // Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE - {0x1000D, 0x10026, prN}, // Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO - {0x10028, 0x1003A, prN}, // Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO - {0x1003C, 0x1003D, prN}, // Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE - {0x1003F, 0x1004D, prN}, // Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO - {0x10050, 0x1005D, prN}, // Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 - {0x10080, 0x100FA, prN}, // Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 - {0x10100, 0x10102, prN}, // Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK - {0x10107, 0x10133, prN}, // No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND - {0x10137, 0x1013F, prN}, // So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT - {0x10140, 0x10174, prN}, // Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS - {0x10175, 0x10178, prN}, // No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN - {0x10179, 0x10189, prN}, // So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN - {0x1018A, 0x1018B, prN}, // No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN - {0x1018C, 0x1018E, prN}, // So [3] GREEK SINUSOID SIGN..NOMISMA SIGN - {0x10190, 0x1019C, prN}, // So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL - {0x101A0, 0x101A0, prN}, // So GREEK SYMBOL TAU RHO - {0x101D0, 0x101FC, prN}, // So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND - {0x101FD, 0x101FD, prN}, // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE - {0x10280, 0x1029C, prN}, // Lo [29] LYCIAN LETTER A..LYCIAN LETTER X - {0x102A0, 0x102D0, prN}, // Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 - {0x102E0, 0x102E0, prN}, // Mn COPTIC EPACT THOUSANDS MARK - {0x102E1, 0x102FB, prN}, // No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED - {0x10300, 0x1031F, prN}, // Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS - {0x10320, 0x10323, prN}, // No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY - {0x1032D, 0x1032F, prN}, // Lo [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE - {0x10330, 0x10340, prN}, // Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA - {0x10341, 0x10341, prN}, // Nl GOTHIC LETTER NINETY - {0x10342, 0x10349, prN}, // Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL - {0x1034A, 0x1034A, prN}, // Nl GOTHIC LETTER NINE HUNDRED - {0x10350, 0x10375, prN}, // Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA - {0x10376, 0x1037A, prN}, // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII - {0x10380, 0x1039D, prN}, // Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU - {0x1039F, 0x1039F, prN}, // Po UGARITIC WORD DIVIDER - {0x103A0, 0x103C3, prN}, // Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA - {0x103C8, 0x103CF, prN}, // Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH - {0x103D0, 0x103D0, prN}, // Po OLD PERSIAN WORD DIVIDER - {0x103D1, 0x103D5, prN}, // Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED - {0x10400, 0x1044F, prN}, // L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW - {0x10450, 0x1047F, prN}, // Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW - {0x10480, 0x1049D, prN}, // Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO - {0x104A0, 0x104A9, prN}, // Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE - {0x104B0, 0x104D3, prN}, // Lu [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA - {0x104D8, 0x104FB, prN}, // Ll [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA - {0x10500, 0x10527, prN}, // Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE - {0x10530, 0x10563, prN}, // Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW - {0x1056F, 0x1056F, prN}, // Po CAUCASIAN ALBANIAN CITATION MARK - {0x10570, 0x1057A, prN}, // Lu [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA - {0x1057C, 0x1058A, prN}, // Lu [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE - {0x1058C, 0x10592, prN}, // Lu [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE - {0x10594, 0x10595, prN}, // Lu [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE - {0x10597, 0x105A1, prN}, // Ll [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA - {0x105A3, 0x105B1, prN}, // Ll [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE - {0x105B3, 0x105B9, prN}, // Ll [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE - {0x105BB, 0x105BC, prN}, // Ll [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE - {0x10600, 0x10736, prN}, // Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 - {0x10740, 0x10755, prN}, // Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE - {0x10760, 0x10767, prN}, // Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807 - {0x10780, 0x10785, prN}, // Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK - {0x10787, 0x107B0, prN}, // Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK - {0x107B2, 0x107BA, prN}, // Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL - {0x10800, 0x10805, prN}, // Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA - {0x10808, 0x10808, prN}, // Lo CYPRIOT SYLLABLE JO - {0x1080A, 0x10835, prN}, // Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO - {0x10837, 0x10838, prN}, // Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE - {0x1083C, 0x1083C, prN}, // Lo CYPRIOT SYLLABLE ZA - {0x1083F, 0x1083F, prN}, // Lo CYPRIOT SYLLABLE ZO - {0x10840, 0x10855, prN}, // Lo [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW - {0x10857, 0x10857, prN}, // Po IMPERIAL ARAMAIC SECTION SIGN - {0x10858, 0x1085F, prN}, // No [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND - {0x10860, 0x10876, prN}, // Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW - {0x10877, 0x10878, prN}, // So [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON - {0x10879, 0x1087F, prN}, // No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY - {0x10880, 0x1089E, prN}, // Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW - {0x108A7, 0x108AF, prN}, // No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED - {0x108E0, 0x108F2, prN}, // Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH - {0x108F4, 0x108F5, prN}, // Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW - {0x108FB, 0x108FF, prN}, // No [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED - {0x10900, 0x10915, prN}, // Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU - {0x10916, 0x1091B, prN}, // No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE - {0x1091F, 0x1091F, prN}, // Po PHOENICIAN WORD SEPARATOR - {0x10920, 0x10939, prN}, // Lo [26] LYDIAN LETTER A..LYDIAN LETTER C - {0x1093F, 0x1093F, prN}, // Po LYDIAN TRIANGULAR MARK - {0x10980, 0x1099F, prN}, // Lo [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2 - {0x109A0, 0x109B7, prN}, // Lo [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA - {0x109BC, 0x109BD, prN}, // No [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF - {0x109BE, 0x109BF, prN}, // Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN - {0x109C0, 0x109CF, prN}, // No [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY - {0x109D2, 0x109FF, prN}, // No [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS - {0x10A00, 0x10A00, prN}, // Lo KHAROSHTHI LETTER A - {0x10A01, 0x10A03, prN}, // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R - {0x10A05, 0x10A06, prN}, // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O - {0x10A0C, 0x10A0F, prN}, // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA - {0x10A10, 0x10A13, prN}, // Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA - {0x10A15, 0x10A17, prN}, // Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA - {0x10A19, 0x10A35, prN}, // Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA - {0x10A38, 0x10A3A, prN}, // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW - {0x10A3F, 0x10A3F, prN}, // Mn KHAROSHTHI VIRAMA - {0x10A40, 0x10A48, prN}, // No [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF - {0x10A50, 0x10A58, prN}, // Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES - {0x10A60, 0x10A7C, prN}, // Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH - {0x10A7D, 0x10A7E, prN}, // No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY - {0x10A7F, 0x10A7F, prN}, // Po OLD SOUTH ARABIAN NUMERIC INDICATOR - {0x10A80, 0x10A9C, prN}, // Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH - {0x10A9D, 0x10A9F, prN}, // No [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY - {0x10AC0, 0x10AC7, prN}, // Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW - {0x10AC8, 0x10AC8, prN}, // So MANICHAEAN SIGN UD - {0x10AC9, 0x10AE4, prN}, // Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW - {0x10AE5, 0x10AE6, prN}, // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW - {0x10AEB, 0x10AEF, prN}, // No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED - {0x10AF0, 0x10AF6, prN}, // Po [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER - {0x10B00, 0x10B35, prN}, // Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE - {0x10B39, 0x10B3F, prN}, // Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION - {0x10B40, 0x10B55, prN}, // Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW - {0x10B58, 0x10B5F, prN}, // No [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND - {0x10B60, 0x10B72, prN}, // Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW - {0x10B78, 0x10B7F, prN}, // No [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND - {0x10B80, 0x10B91, prN}, // Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW - {0x10B99, 0x10B9C, prN}, // Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT - {0x10BA9, 0x10BAF, prN}, // No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED - {0x10C00, 0x10C48, prN}, // Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH - {0x10C80, 0x10CB2, prN}, // Lu [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US - {0x10CC0, 0x10CF2, prN}, // Ll [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US - {0x10CFA, 0x10CFF, prN}, // No [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND - {0x10D00, 0x10D23, prN}, // Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA - {0x10D24, 0x10D27, prN}, // Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI - {0x10D30, 0x10D39, prN}, // Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE - {0x10E60, 0x10E7E, prN}, // No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS - {0x10E80, 0x10EA9, prN}, // Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET - {0x10EAB, 0x10EAC, prN}, // Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK - {0x10EAD, 0x10EAD, prN}, // Pd YEZIDI HYPHENATION MARK - {0x10EB0, 0x10EB1, prN}, // Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE - {0x10EFD, 0x10EFF, prN}, // Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA - {0x10F00, 0x10F1C, prN}, // Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL - {0x10F1D, 0x10F26, prN}, // No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF - {0x10F27, 0x10F27, prN}, // Lo OLD SOGDIAN LIGATURE AYIN-DALETH - {0x10F30, 0x10F45, prN}, // Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN - {0x10F46, 0x10F50, prN}, // Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW - {0x10F51, 0x10F54, prN}, // No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED - {0x10F55, 0x10F59, prN}, // Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT - {0x10F70, 0x10F81, prN}, // Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH - {0x10F82, 0x10F85, prN}, // Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW - {0x10F86, 0x10F89, prN}, // Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS - {0x10FB0, 0x10FC4, prN}, // Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW - {0x10FC5, 0x10FCB, prN}, // No [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED - {0x10FE0, 0x10FF6, prN}, // Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH - {0x11000, 0x11000, prN}, // Mc BRAHMI SIGN CANDRABINDU - {0x11001, 0x11001, prN}, // Mn BRAHMI SIGN ANUSVARA - {0x11002, 0x11002, prN}, // Mc BRAHMI SIGN VISARGA - {0x11003, 0x11037, prN}, // Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA - {0x11038, 0x11046, prN}, // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA - {0x11047, 0x1104D, prN}, // Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS - {0x11052, 0x11065, prN}, // No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND - {0x11066, 0x1106F, prN}, // Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE - {0x11070, 0x11070, prN}, // Mn BRAHMI SIGN OLD TAMIL VIRAMA - {0x11071, 0x11072, prN}, // Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O - {0x11073, 0x11074, prN}, // Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O - {0x11075, 0x11075, prN}, // Lo BRAHMI LETTER OLD TAMIL LLA - {0x1107F, 0x1107F, prN}, // Mn BRAHMI NUMBER JOINER - {0x11080, 0x11081, prN}, // Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA - {0x11082, 0x11082, prN}, // Mc KAITHI SIGN VISARGA - {0x11083, 0x110AF, prN}, // Lo [45] KAITHI LETTER A..KAITHI LETTER HA - {0x110B0, 0x110B2, prN}, // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II - {0x110B3, 0x110B6, prN}, // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI - {0x110B7, 0x110B8, prN}, // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU - {0x110B9, 0x110BA, prN}, // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA - {0x110BB, 0x110BC, prN}, // Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN - {0x110BD, 0x110BD, prN}, // Cf KAITHI NUMBER SIGN - {0x110BE, 0x110C1, prN}, // Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA - {0x110C2, 0x110C2, prN}, // Mn KAITHI VOWEL SIGN VOCALIC R - {0x110CD, 0x110CD, prN}, // Cf KAITHI NUMBER SIGN ABOVE - {0x110D0, 0x110E8, prN}, // Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE - {0x110F0, 0x110F9, prN}, // Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE - {0x11100, 0x11102, prN}, // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA - {0x11103, 0x11126, prN}, // Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA - {0x11127, 0x1112B, prN}, // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU - {0x1112C, 0x1112C, prN}, // Mc CHAKMA VOWEL SIGN E - {0x1112D, 0x11134, prN}, // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA - {0x11136, 0x1113F, prN}, // Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE - {0x11140, 0x11143, prN}, // Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK - {0x11144, 0x11144, prN}, // Lo CHAKMA LETTER LHAA - {0x11145, 0x11146, prN}, // Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI - {0x11147, 0x11147, prN}, // Lo CHAKMA LETTER VAA - {0x11150, 0x11172, prN}, // Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA - {0x11173, 0x11173, prN}, // Mn MAHAJANI SIGN NUKTA - {0x11174, 0x11175, prN}, // Po [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK - {0x11176, 0x11176, prN}, // Lo MAHAJANI LIGATURE SHRI - {0x11180, 0x11181, prN}, // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA - {0x11182, 0x11182, prN}, // Mc SHARADA SIGN VISARGA - {0x11183, 0x111B2, prN}, // Lo [48] SHARADA LETTER A..SHARADA LETTER HA - {0x111B3, 0x111B5, prN}, // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II - {0x111B6, 0x111BE, prN}, // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O - {0x111BF, 0x111C0, prN}, // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA - {0x111C1, 0x111C4, prN}, // Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM - {0x111C5, 0x111C8, prN}, // Po [4] SHARADA DANDA..SHARADA SEPARATOR - {0x111C9, 0x111CC, prN}, // Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK - {0x111CD, 0x111CD, prN}, // Po SHARADA SUTRA MARK - {0x111CE, 0x111CE, prN}, // Mc SHARADA VOWEL SIGN PRISHTHAMATRA E - {0x111CF, 0x111CF, prN}, // Mn SHARADA SIGN INVERTED CANDRABINDU - {0x111D0, 0x111D9, prN}, // Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE - {0x111DA, 0x111DA, prN}, // Lo SHARADA EKAM - {0x111DB, 0x111DB, prN}, // Po SHARADA SIGN SIDDHAM - {0x111DC, 0x111DC, prN}, // Lo SHARADA HEADSTROKE - {0x111DD, 0x111DF, prN}, // Po [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2 - {0x111E1, 0x111F4, prN}, // No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND - {0x11200, 0x11211, prN}, // Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA - {0x11213, 0x1122B, prN}, // Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA - {0x1122C, 0x1122E, prN}, // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II - {0x1122F, 0x11231, prN}, // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI - {0x11232, 0x11233, prN}, // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU - {0x11234, 0x11234, prN}, // Mn KHOJKI SIGN ANUSVARA - {0x11235, 0x11235, prN}, // Mc KHOJKI SIGN VIRAMA - {0x11236, 0x11237, prN}, // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA - {0x11238, 0x1123D, prN}, // Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN - {0x1123E, 0x1123E, prN}, // Mn KHOJKI SIGN SUKUN - {0x1123F, 0x11240, prN}, // Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I - {0x11241, 0x11241, prN}, // Mn KHOJKI VOWEL SIGN VOCALIC R - {0x11280, 0x11286, prN}, // Lo [7] MULTANI LETTER A..MULTANI LETTER GA - {0x11288, 0x11288, prN}, // Lo MULTANI LETTER GHA - {0x1128A, 0x1128D, prN}, // Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA - {0x1128F, 0x1129D, prN}, // Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA - {0x1129F, 0x112A8, prN}, // Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA - {0x112A9, 0x112A9, prN}, // Po MULTANI SECTION MARK - {0x112B0, 0x112DE, prN}, // Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA - {0x112DF, 0x112DF, prN}, // Mn KHUDAWADI SIGN ANUSVARA - {0x112E0, 0x112E2, prN}, // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II - {0x112E3, 0x112EA, prN}, // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA - {0x112F0, 0x112F9, prN}, // Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE - {0x11300, 0x11301, prN}, // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU - {0x11302, 0x11303, prN}, // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA - {0x11305, 0x1130C, prN}, // Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L - {0x1130F, 0x11310, prN}, // Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI - {0x11313, 0x11328, prN}, // Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA - {0x1132A, 0x11330, prN}, // Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA - {0x11332, 0x11333, prN}, // Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA - {0x11335, 0x11339, prN}, // Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA - {0x1133B, 0x1133C, prN}, // Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA - {0x1133D, 0x1133D, prN}, // Lo GRANTHA SIGN AVAGRAHA - {0x1133E, 0x1133F, prN}, // Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I - {0x11340, 0x11340, prN}, // Mn GRANTHA VOWEL SIGN II - {0x11341, 0x11344, prN}, // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR - {0x11347, 0x11348, prN}, // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI - {0x1134B, 0x1134D, prN}, // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA - {0x11350, 0x11350, prN}, // Lo GRANTHA OM - {0x11357, 0x11357, prN}, // Mc GRANTHA AU LENGTH MARK - {0x1135D, 0x11361, prN}, // Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL - {0x11362, 0x11363, prN}, // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL - {0x11366, 0x1136C, prN}, // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX - {0x11370, 0x11374, prN}, // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA - {0x11400, 0x11434, prN}, // Lo [53] NEWA LETTER A..NEWA LETTER HA - {0x11435, 0x11437, prN}, // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II - {0x11438, 0x1143F, prN}, // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI - {0x11440, 0x11441, prN}, // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU - {0x11442, 0x11444, prN}, // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA - {0x11445, 0x11445, prN}, // Mc NEWA SIGN VISARGA - {0x11446, 0x11446, prN}, // Mn NEWA SIGN NUKTA - {0x11447, 0x1144A, prN}, // Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI - {0x1144B, 0x1144F, prN}, // Po [5] NEWA DANDA..NEWA ABBREVIATION SIGN - {0x11450, 0x11459, prN}, // Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE - {0x1145A, 0x1145B, prN}, // Po [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK - {0x1145D, 0x1145D, prN}, // Po NEWA INSERTION SIGN - {0x1145E, 0x1145E, prN}, // Mn NEWA SANDHI MARK - {0x1145F, 0x11461, prN}, // Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA - {0x11480, 0x114AF, prN}, // Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA - {0x114B0, 0x114B2, prN}, // Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II - {0x114B3, 0x114B8, prN}, // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL - {0x114B9, 0x114B9, prN}, // Mc TIRHUTA VOWEL SIGN E - {0x114BA, 0x114BA, prN}, // Mn TIRHUTA VOWEL SIGN SHORT E - {0x114BB, 0x114BE, prN}, // Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU - {0x114BF, 0x114C0, prN}, // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA - {0x114C1, 0x114C1, prN}, // Mc TIRHUTA SIGN VISARGA - {0x114C2, 0x114C3, prN}, // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA - {0x114C4, 0x114C5, prN}, // Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG - {0x114C6, 0x114C6, prN}, // Po TIRHUTA ABBREVIATION SIGN - {0x114C7, 0x114C7, prN}, // Lo TIRHUTA OM - {0x114D0, 0x114D9, prN}, // Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE - {0x11580, 0x115AE, prN}, // Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA - {0x115AF, 0x115B1, prN}, // Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II - {0x115B2, 0x115B5, prN}, // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR - {0x115B8, 0x115BB, prN}, // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU - {0x115BC, 0x115BD, prN}, // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA - {0x115BE, 0x115BE, prN}, // Mc SIDDHAM SIGN VISARGA - {0x115BF, 0x115C0, prN}, // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA - {0x115C1, 0x115D7, prN}, // Po [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES - {0x115D8, 0x115DB, prN}, // Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U - {0x115DC, 0x115DD, prN}, // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU - {0x11600, 0x1162F, prN}, // Lo [48] MODI LETTER A..MODI LETTER LLA - {0x11630, 0x11632, prN}, // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II - {0x11633, 0x1163A, prN}, // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI - {0x1163B, 0x1163C, prN}, // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU - {0x1163D, 0x1163D, prN}, // Mn MODI SIGN ANUSVARA - {0x1163E, 0x1163E, prN}, // Mc MODI SIGN VISARGA - {0x1163F, 0x11640, prN}, // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA - {0x11641, 0x11643, prN}, // Po [3] MODI DANDA..MODI ABBREVIATION SIGN - {0x11644, 0x11644, prN}, // Lo MODI SIGN HUVA - {0x11650, 0x11659, prN}, // Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE - {0x11660, 0x1166C, prN}, // Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT - {0x11680, 0x116AA, prN}, // Lo [43] TAKRI LETTER A..TAKRI LETTER RRA - {0x116AB, 0x116AB, prN}, // Mn TAKRI SIGN ANUSVARA - {0x116AC, 0x116AC, prN}, // Mc TAKRI SIGN VISARGA - {0x116AD, 0x116AD, prN}, // Mn TAKRI VOWEL SIGN AA - {0x116AE, 0x116AF, prN}, // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II - {0x116B0, 0x116B5, prN}, // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU - {0x116B6, 0x116B6, prN}, // Mc TAKRI SIGN VIRAMA - {0x116B7, 0x116B7, prN}, // Mn TAKRI SIGN NUKTA - {0x116B8, 0x116B8, prN}, // Lo TAKRI LETTER ARCHAIC KHA - {0x116B9, 0x116B9, prN}, // Po TAKRI ABBREVIATION SIGN - {0x116C0, 0x116C9, prN}, // Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE - {0x11700, 0x1171A, prN}, // Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA - {0x1171D, 0x1171F, prN}, // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA - {0x11720, 0x11721, prN}, // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA - {0x11722, 0x11725, prN}, // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU - {0x11726, 0x11726, prN}, // Mc AHOM VOWEL SIGN E - {0x11727, 0x1172B, prN}, // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER - {0x11730, 0x11739, prN}, // Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE - {0x1173A, 0x1173B, prN}, // No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY - {0x1173C, 0x1173E, prN}, // Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI - {0x1173F, 0x1173F, prN}, // So AHOM SYMBOL VI - {0x11740, 0x11746, prN}, // Lo [7] AHOM LETTER CA..AHOM LETTER LLA - {0x11800, 0x1182B, prN}, // Lo [44] DOGRA LETTER A..DOGRA LETTER RRA - {0x1182C, 0x1182E, prN}, // Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II - {0x1182F, 0x11837, prN}, // Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA - {0x11838, 0x11838, prN}, // Mc DOGRA SIGN VISARGA - {0x11839, 0x1183A, prN}, // Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA - {0x1183B, 0x1183B, prN}, // Po DOGRA ABBREVIATION SIGN - {0x118A0, 0x118DF, prN}, // L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO - {0x118E0, 0x118E9, prN}, // Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE - {0x118EA, 0x118F2, prN}, // No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY - {0x118FF, 0x118FF, prN}, // Lo WARANG CITI OM - {0x11900, 0x11906, prN}, // Lo [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E - {0x11909, 0x11909, prN}, // Lo DIVES AKURU LETTER O - {0x1190C, 0x11913, prN}, // Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA - {0x11915, 0x11916, prN}, // Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA - {0x11918, 0x1192F, prN}, // Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA - {0x11930, 0x11935, prN}, // Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E - {0x11937, 0x11938, prN}, // Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O - {0x1193B, 0x1193C, prN}, // Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU - {0x1193D, 0x1193D, prN}, // Mc DIVES AKURU SIGN HALANTA - {0x1193E, 0x1193E, prN}, // Mn DIVES AKURU VIRAMA - {0x1193F, 0x1193F, prN}, // Lo DIVES AKURU PREFIXED NASAL SIGN - {0x11940, 0x11940, prN}, // Mc DIVES AKURU MEDIAL YA - {0x11941, 0x11941, prN}, // Lo DIVES AKURU INITIAL RA - {0x11942, 0x11942, prN}, // Mc DIVES AKURU MEDIAL RA - {0x11943, 0x11943, prN}, // Mn DIVES AKURU SIGN NUKTA - {0x11944, 0x11946, prN}, // Po [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK - {0x11950, 0x11959, prN}, // Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE - {0x119A0, 0x119A7, prN}, // Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR - {0x119AA, 0x119D0, prN}, // Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA - {0x119D1, 0x119D3, prN}, // Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II - {0x119D4, 0x119D7, prN}, // Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR - {0x119DA, 0x119DB, prN}, // Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI - {0x119DC, 0x119DF, prN}, // Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA - {0x119E0, 0x119E0, prN}, // Mn NANDINAGARI SIGN VIRAMA - {0x119E1, 0x119E1, prN}, // Lo NANDINAGARI SIGN AVAGRAHA - {0x119E2, 0x119E2, prN}, // Po NANDINAGARI SIGN SIDDHAM - {0x119E3, 0x119E3, prN}, // Lo NANDINAGARI HEADSTROKE - {0x119E4, 0x119E4, prN}, // Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E - {0x11A00, 0x11A00, prN}, // Lo ZANABAZAR SQUARE LETTER A - {0x11A01, 0x11A0A, prN}, // Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK - {0x11A0B, 0x11A32, prN}, // Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA - {0x11A33, 0x11A38, prN}, // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA - {0x11A39, 0x11A39, prN}, // Mc ZANABAZAR SQUARE SIGN VISARGA - {0x11A3A, 0x11A3A, prN}, // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA - {0x11A3B, 0x11A3E, prN}, // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA - {0x11A3F, 0x11A46, prN}, // Po [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK - {0x11A47, 0x11A47, prN}, // Mn ZANABAZAR SQUARE SUBJOINER - {0x11A50, 0x11A50, prN}, // Lo SOYOMBO LETTER A - {0x11A51, 0x11A56, prN}, // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE - {0x11A57, 0x11A58, prN}, // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU - {0x11A59, 0x11A5B, prN}, // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK - {0x11A5C, 0x11A89, prN}, // Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA - {0x11A8A, 0x11A96, prN}, // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA - {0x11A97, 0x11A97, prN}, // Mc SOYOMBO SIGN VISARGA - {0x11A98, 0x11A99, prN}, // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER - {0x11A9A, 0x11A9C, prN}, // Po [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD - {0x11A9D, 0x11A9D, prN}, // Lo SOYOMBO MARK PLUTA - {0x11A9E, 0x11AA2, prN}, // Po [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2 - {0x11AB0, 0x11ABF, prN}, // Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA - {0x11AC0, 0x11AF8, prN}, // Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL - {0x11B00, 0x11B09, prN}, // Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU - {0x11C00, 0x11C08, prN}, // Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L - {0x11C0A, 0x11C2E, prN}, // Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA - {0x11C2F, 0x11C2F, prN}, // Mc BHAIKSUKI VOWEL SIGN AA - {0x11C30, 0x11C36, prN}, // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L - {0x11C38, 0x11C3D, prN}, // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA - {0x11C3E, 0x11C3E, prN}, // Mc BHAIKSUKI SIGN VISARGA - {0x11C3F, 0x11C3F, prN}, // Mn BHAIKSUKI SIGN VIRAMA - {0x11C40, 0x11C40, prN}, // Lo BHAIKSUKI SIGN AVAGRAHA - {0x11C41, 0x11C45, prN}, // Po [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2 - {0x11C50, 0x11C59, prN}, // Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE - {0x11C5A, 0x11C6C, prN}, // No [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK - {0x11C70, 0x11C71, prN}, // Po [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD - {0x11C72, 0x11C8F, prN}, // Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A - {0x11C92, 0x11CA7, prN}, // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA - {0x11CA9, 0x11CA9, prN}, // Mc MARCHEN SUBJOINED LETTER YA - {0x11CAA, 0x11CB0, prN}, // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA - {0x11CB1, 0x11CB1, prN}, // Mc MARCHEN VOWEL SIGN I - {0x11CB2, 0x11CB3, prN}, // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E - {0x11CB4, 0x11CB4, prN}, // Mc MARCHEN VOWEL SIGN O - {0x11CB5, 0x11CB6, prN}, // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU - {0x11D00, 0x11D06, prN}, // Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E - {0x11D08, 0x11D09, prN}, // Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O - {0x11D0B, 0x11D30, prN}, // Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA - {0x11D31, 0x11D36, prN}, // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R - {0x11D3A, 0x11D3A, prN}, // Mn MASARAM GONDI VOWEL SIGN E - {0x11D3C, 0x11D3D, prN}, // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O - {0x11D3F, 0x11D45, prN}, // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA - {0x11D46, 0x11D46, prN}, // Lo MASARAM GONDI REPHA - {0x11D47, 0x11D47, prN}, // Mn MASARAM GONDI RA-KARA - {0x11D50, 0x11D59, prN}, // Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE - {0x11D60, 0x11D65, prN}, // Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU - {0x11D67, 0x11D68, prN}, // Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI - {0x11D6A, 0x11D89, prN}, // Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA - {0x11D8A, 0x11D8E, prN}, // Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU - {0x11D90, 0x11D91, prN}, // Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI - {0x11D93, 0x11D94, prN}, // Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU - {0x11D95, 0x11D95, prN}, // Mn GUNJALA GONDI SIGN ANUSVARA - {0x11D96, 0x11D96, prN}, // Mc GUNJALA GONDI SIGN VISARGA - {0x11D97, 0x11D97, prN}, // Mn GUNJALA GONDI VIRAMA - {0x11D98, 0x11D98, prN}, // Lo GUNJALA GONDI OM - {0x11DA0, 0x11DA9, prN}, // Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE - {0x11EE0, 0x11EF2, prN}, // Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA - {0x11EF3, 0x11EF4, prN}, // Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U - {0x11EF5, 0x11EF6, prN}, // Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O - {0x11EF7, 0x11EF8, prN}, // Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION - {0x11F00, 0x11F01, prN}, // Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA - {0x11F02, 0x11F02, prN}, // Lo KAWI SIGN REPHA - {0x11F03, 0x11F03, prN}, // Mc KAWI SIGN VISARGA - {0x11F04, 0x11F10, prN}, // Lo [13] KAWI LETTER A..KAWI LETTER O - {0x11F12, 0x11F33, prN}, // Lo [34] KAWI LETTER KA..KAWI LETTER JNYA - {0x11F34, 0x11F35, prN}, // Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA - {0x11F36, 0x11F3A, prN}, // Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R - {0x11F3E, 0x11F3F, prN}, // Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI - {0x11F40, 0x11F40, prN}, // Mn KAWI VOWEL SIGN EU - {0x11F41, 0x11F41, prN}, // Mc KAWI SIGN KILLER - {0x11F42, 0x11F42, prN}, // Mn KAWI CONJOINER - {0x11F43, 0x11F4F, prN}, // Po [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL - {0x11F50, 0x11F59, prN}, // Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE - {0x11FB0, 0x11FB0, prN}, // Lo LISU LETTER YHA - {0x11FC0, 0x11FD4, prN}, // No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH - {0x11FD5, 0x11FDC, prN}, // So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI - {0x11FDD, 0x11FE0, prN}, // Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN - {0x11FE1, 0x11FF1, prN}, // So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA - {0x11FFF, 0x11FFF, prN}, // Po TAMIL PUNCTUATION END OF TEXT - {0x12000, 0x12399, prN}, // Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U - {0x12400, 0x1246E, prN}, // Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM - {0x12470, 0x12474, prN}, // Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON - {0x12480, 0x12543, prN}, // Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU - {0x12F90, 0x12FF0, prN}, // Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114 - {0x12FF1, 0x12FF2, prN}, // Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302 - {0x13000, 0x1342F, prN}, // Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D - {0x13430, 0x1343F, prN}, // Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE - {0x13440, 0x13440, prN}, // Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY - {0x13441, 0x13446, prN}, // Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN - {0x13447, 0x13455, prN}, // Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED - {0x14400, 0x14646, prN}, // Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530 - {0x16800, 0x16A38, prN}, // Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ - {0x16A40, 0x16A5E, prN}, // Lo [31] MRO LETTER TA..MRO LETTER TEK - {0x16A60, 0x16A69, prN}, // Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE - {0x16A6E, 0x16A6F, prN}, // Po [2] MRO DANDA..MRO DOUBLE DANDA - {0x16A70, 0x16ABE, prN}, // Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA - {0x16AC0, 0x16AC9, prN}, // Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE - {0x16AD0, 0x16AED, prN}, // Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I - {0x16AF0, 0x16AF4, prN}, // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE - {0x16AF5, 0x16AF5, prN}, // Po BASSA VAH FULL STOP - {0x16B00, 0x16B2F, prN}, // Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU - {0x16B30, 0x16B36, prN}, // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM - {0x16B37, 0x16B3B, prN}, // Po [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM - {0x16B3C, 0x16B3F, prN}, // So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB - {0x16B40, 0x16B43, prN}, // Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM - {0x16B44, 0x16B44, prN}, // Po PAHAWH HMONG SIGN XAUS - {0x16B45, 0x16B45, prN}, // So PAHAWH HMONG SIGN CIM TSOV ROG - {0x16B50, 0x16B59, prN}, // Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE - {0x16B5B, 0x16B61, prN}, // No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS - {0x16B63, 0x16B77, prN}, // Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS - {0x16B7D, 0x16B8F, prN}, // Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ - {0x16E40, 0x16E7F, prN}, // L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y - {0x16E80, 0x16E96, prN}, // No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM - {0x16E97, 0x16E9A, prN}, // Po [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH - {0x16F00, 0x16F4A, prN}, // Lo [75] MIAO LETTER PA..MIAO LETTER RTE - {0x16F4F, 0x16F4F, prN}, // Mn MIAO SIGN CONSONANT MODIFIER BAR - {0x16F50, 0x16F50, prN}, // Lo MIAO LETTER NASALIZATION - {0x16F51, 0x16F87, prN}, // Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI - {0x16F8F, 0x16F92, prN}, // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW - {0x16F93, 0x16F9F, prN}, // Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 - {0x16FE0, 0x16FE1, prW}, // Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK - {0x16FE2, 0x16FE2, prW}, // Po OLD CHINESE HOOK MARK - {0x16FE3, 0x16FE3, prW}, // Lm OLD CHINESE ITERATION MARK - {0x16FE4, 0x16FE4, prW}, // Mn KHITAN SMALL SCRIPT FILLER - {0x16FF0, 0x16FF1, prW}, // Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY - {0x17000, 0x187F7, prW}, // Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 - {0x18800, 0x18AFF, prW}, // Lo [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768 - {0x18B00, 0x18CD5, prW}, // Lo [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5 - {0x18D00, 0x18D08, prW}, // Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08 - {0x1AFF0, 0x1AFF3, prW}, // Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 - {0x1AFF5, 0x1AFFB, prW}, // Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 - {0x1AFFD, 0x1AFFE, prW}, // Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 - {0x1B000, 0x1B0FF, prW}, // Lo [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2 - {0x1B100, 0x1B122, prW}, // Lo [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU - {0x1B132, 0x1B132, prW}, // Lo HIRAGANA LETTER SMALL KO - {0x1B150, 0x1B152, prW}, // Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO - {0x1B155, 0x1B155, prW}, // Lo KATAKANA LETTER SMALL KO - {0x1B164, 0x1B167, prW}, // Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N - {0x1B170, 0x1B2FB, prW}, // Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB - {0x1BC00, 0x1BC6A, prN}, // Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M - {0x1BC70, 0x1BC7C, prN}, // Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK - {0x1BC80, 0x1BC88, prN}, // Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL - {0x1BC90, 0x1BC99, prN}, // Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW - {0x1BC9C, 0x1BC9C, prN}, // So DUPLOYAN SIGN O WITH CROSS - {0x1BC9D, 0x1BC9E, prN}, // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK - {0x1BC9F, 0x1BC9F, prN}, // Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP - {0x1BCA0, 0x1BCA3, prN}, // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP - {0x1CF00, 0x1CF2D, prN}, // Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT - {0x1CF30, 0x1CF46, prN}, // Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG - {0x1CF50, 0x1CFC3, prN}, // So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK - {0x1D000, 0x1D0F5, prN}, // So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO - {0x1D100, 0x1D126, prN}, // So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2 - {0x1D129, 0x1D164, prN}, // So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE - {0x1D165, 0x1D166, prN}, // Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM - {0x1D167, 0x1D169, prN}, // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 - {0x1D16A, 0x1D16C, prN}, // So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3 - {0x1D16D, 0x1D172, prN}, // Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 - {0x1D173, 0x1D17A, prN}, // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE - {0x1D17B, 0x1D182, prN}, // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE - {0x1D183, 0x1D184, prN}, // So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN - {0x1D185, 0x1D18B, prN}, // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE - {0x1D18C, 0x1D1A9, prN}, // So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH - {0x1D1AA, 0x1D1AD, prN}, // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO - {0x1D1AE, 0x1D1EA, prN}, // So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON - {0x1D200, 0x1D241, prN}, // So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54 - {0x1D242, 0x1D244, prN}, // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME - {0x1D245, 0x1D245, prN}, // So GREEK MUSICAL LEIMMA - {0x1D2C0, 0x1D2D3, prN}, // No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN - {0x1D2E0, 0x1D2F3, prN}, // No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN - {0x1D300, 0x1D356, prN}, // So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING - {0x1D360, 0x1D378, prN}, // No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE - {0x1D400, 0x1D454, prN}, // L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G - {0x1D456, 0x1D49C, prN}, // L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A - {0x1D49E, 0x1D49F, prN}, // Lu [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D - {0x1D4A2, 0x1D4A2, prN}, // Lu MATHEMATICAL SCRIPT CAPITAL G - {0x1D4A5, 0x1D4A6, prN}, // Lu [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K - {0x1D4A9, 0x1D4AC, prN}, // Lu [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q - {0x1D4AE, 0x1D4B9, prN}, // L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D - {0x1D4BB, 0x1D4BB, prN}, // Ll MATHEMATICAL SCRIPT SMALL F - {0x1D4BD, 0x1D4C3, prN}, // Ll [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N - {0x1D4C5, 0x1D505, prN}, // L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B - {0x1D507, 0x1D50A, prN}, // Lu [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G - {0x1D50D, 0x1D514, prN}, // Lu [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q - {0x1D516, 0x1D51C, prN}, // Lu [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y - {0x1D51E, 0x1D539, prN}, // L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B - {0x1D53B, 0x1D53E, prN}, // Lu [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G - {0x1D540, 0x1D544, prN}, // Lu [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M - {0x1D546, 0x1D546, prN}, // Lu MATHEMATICAL DOUBLE-STRUCK CAPITAL O - {0x1D54A, 0x1D550, prN}, // Lu [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y - {0x1D552, 0x1D6A5, prN}, // L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J - {0x1D6A8, 0x1D6C0, prN}, // Lu [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA - {0x1D6C1, 0x1D6C1, prN}, // Sm MATHEMATICAL BOLD NABLA - {0x1D6C2, 0x1D6DA, prN}, // Ll [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA - {0x1D6DB, 0x1D6DB, prN}, // Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL - {0x1D6DC, 0x1D6FA, prN}, // L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA - {0x1D6FB, 0x1D6FB, prN}, // Sm MATHEMATICAL ITALIC NABLA - {0x1D6FC, 0x1D714, prN}, // Ll [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA - {0x1D715, 0x1D715, prN}, // Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL - {0x1D716, 0x1D734, prN}, // L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA - {0x1D735, 0x1D735, prN}, // Sm MATHEMATICAL BOLD ITALIC NABLA - {0x1D736, 0x1D74E, prN}, // Ll [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA - {0x1D74F, 0x1D74F, prN}, // Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL - {0x1D750, 0x1D76E, prN}, // L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA - {0x1D76F, 0x1D76F, prN}, // Sm MATHEMATICAL SANS-SERIF BOLD NABLA - {0x1D770, 0x1D788, prN}, // Ll [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA - {0x1D789, 0x1D789, prN}, // Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL - {0x1D78A, 0x1D7A8, prN}, // L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA - {0x1D7A9, 0x1D7A9, prN}, // Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA - {0x1D7AA, 0x1D7C2, prN}, // Ll [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA - {0x1D7C3, 0x1D7C3, prN}, // Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL - {0x1D7C4, 0x1D7CB, prN}, // L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA - {0x1D7CE, 0x1D7FF, prN}, // Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE - {0x1D800, 0x1D9FF, prN}, // So [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD - {0x1DA00, 0x1DA36, prN}, // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN - {0x1DA37, 0x1DA3A, prN}, // So [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE - {0x1DA3B, 0x1DA6C, prN}, // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT - {0x1DA6D, 0x1DA74, prN}, // So [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING - {0x1DA75, 0x1DA75, prN}, // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS - {0x1DA76, 0x1DA83, prN}, // So [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH - {0x1DA84, 0x1DA84, prN}, // Mn SIGNWRITING LOCATION HEAD NECK - {0x1DA85, 0x1DA86, prN}, // So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS - {0x1DA87, 0x1DA8B, prN}, // Po [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS - {0x1DA9B, 0x1DA9F, prN}, // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 - {0x1DAA1, 0x1DAAF, prN}, // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 - {0x1DF00, 0x1DF09, prN}, // Ll [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK - {0x1DF0A, 0x1DF0A, prN}, // Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK - {0x1DF0B, 0x1DF1E, prN}, // Ll [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL - {0x1DF25, 0x1DF2A, prN}, // Ll [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK - {0x1E000, 0x1E006, prN}, // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE - {0x1E008, 0x1E018, prN}, // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU - {0x1E01B, 0x1E021, prN}, // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI - {0x1E023, 0x1E024, prN}, // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS - {0x1E026, 0x1E02A, prN}, // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA - {0x1E030, 0x1E06D, prN}, // Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE - {0x1E08F, 0x1E08F, prN}, // Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - {0x1E100, 0x1E12C, prN}, // Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W - {0x1E130, 0x1E136, prN}, // Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D - {0x1E137, 0x1E13D, prN}, // Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER - {0x1E140, 0x1E149, prN}, // Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE - {0x1E14E, 0x1E14E, prN}, // Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ - {0x1E14F, 0x1E14F, prN}, // So NYIAKENG PUACHUE HMONG CIRCLED CA - {0x1E290, 0x1E2AD, prN}, // Lo [30] TOTO LETTER PA..TOTO LETTER A - {0x1E2AE, 0x1E2AE, prN}, // Mn TOTO SIGN RISING TONE - {0x1E2C0, 0x1E2EB, prN}, // Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH - {0x1E2EC, 0x1E2EF, prN}, // Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI - {0x1E2F0, 0x1E2F9, prN}, // Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE - {0x1E2FF, 0x1E2FF, prN}, // Sc WANCHO NGUN SIGN - {0x1E4D0, 0x1E4EA, prN}, // Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL - {0x1E4EB, 0x1E4EB, prN}, // Lm NAG MUNDARI SIGN OJOD - {0x1E4EC, 0x1E4EF, prN}, // Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH - {0x1E4F0, 0x1E4F9, prN}, // Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE - {0x1E7E0, 0x1E7E6, prN}, // Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO - {0x1E7E8, 0x1E7EB, prN}, // Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE - {0x1E7ED, 0x1E7EE, prN}, // Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE - {0x1E7F0, 0x1E7FE, prN}, // Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE - {0x1E800, 0x1E8C4, prN}, // Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON - {0x1E8C7, 0x1E8CF, prN}, // No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE - {0x1E8D0, 0x1E8D6, prN}, // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS - {0x1E900, 0x1E943, prN}, // L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA - {0x1E944, 0x1E94A, prN}, // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA - {0x1E94B, 0x1E94B, prN}, // Lm ADLAM NASALIZATION MARK - {0x1E950, 0x1E959, prN}, // Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE - {0x1E95E, 0x1E95F, prN}, // Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK - {0x1EC71, 0x1ECAB, prN}, // No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE - {0x1ECAC, 0x1ECAC, prN}, // So INDIC SIYAQ PLACEHOLDER - {0x1ECAD, 0x1ECAF, prN}, // No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS - {0x1ECB0, 0x1ECB0, prN}, // Sc INDIC SIYAQ RUPEE MARK - {0x1ECB1, 0x1ECB4, prN}, // No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK - {0x1ED01, 0x1ED2D, prN}, // No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND - {0x1ED2E, 0x1ED2E, prN}, // So OTTOMAN SIYAQ MARRATAN - {0x1ED2F, 0x1ED3D, prN}, // No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH - {0x1EE00, 0x1EE03, prN}, // Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL - {0x1EE05, 0x1EE1F, prN}, // Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF - {0x1EE21, 0x1EE22, prN}, // Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM - {0x1EE24, 0x1EE24, prN}, // Lo ARABIC MATHEMATICAL INITIAL HEH - {0x1EE27, 0x1EE27, prN}, // Lo ARABIC MATHEMATICAL INITIAL HAH - {0x1EE29, 0x1EE32, prN}, // Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF - {0x1EE34, 0x1EE37, prN}, // Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH - {0x1EE39, 0x1EE39, prN}, // Lo ARABIC MATHEMATICAL INITIAL DAD - {0x1EE3B, 0x1EE3B, prN}, // Lo ARABIC MATHEMATICAL INITIAL GHAIN - {0x1EE42, 0x1EE42, prN}, // Lo ARABIC MATHEMATICAL TAILED JEEM - {0x1EE47, 0x1EE47, prN}, // Lo ARABIC MATHEMATICAL TAILED HAH - {0x1EE49, 0x1EE49, prN}, // Lo ARABIC MATHEMATICAL TAILED YEH - {0x1EE4B, 0x1EE4B, prN}, // Lo ARABIC MATHEMATICAL TAILED LAM - {0x1EE4D, 0x1EE4F, prN}, // Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN - {0x1EE51, 0x1EE52, prN}, // Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF - {0x1EE54, 0x1EE54, prN}, // Lo ARABIC MATHEMATICAL TAILED SHEEN - {0x1EE57, 0x1EE57, prN}, // Lo ARABIC MATHEMATICAL TAILED KHAH - {0x1EE59, 0x1EE59, prN}, // Lo ARABIC MATHEMATICAL TAILED DAD - {0x1EE5B, 0x1EE5B, prN}, // Lo ARABIC MATHEMATICAL TAILED GHAIN - {0x1EE5D, 0x1EE5D, prN}, // Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON - {0x1EE5F, 0x1EE5F, prN}, // Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF - {0x1EE61, 0x1EE62, prN}, // Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM - {0x1EE64, 0x1EE64, prN}, // Lo ARABIC MATHEMATICAL STRETCHED HEH - {0x1EE67, 0x1EE6A, prN}, // Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF - {0x1EE6C, 0x1EE72, prN}, // Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF - {0x1EE74, 0x1EE77, prN}, // Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH - {0x1EE79, 0x1EE7C, prN}, // Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH - {0x1EE7E, 0x1EE7E, prN}, // Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH - {0x1EE80, 0x1EE89, prN}, // Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH - {0x1EE8B, 0x1EE9B, prN}, // Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN - {0x1EEA1, 0x1EEA3, prN}, // Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL - {0x1EEA5, 0x1EEA9, prN}, // Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH - {0x1EEAB, 0x1EEBB, prN}, // Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN - {0x1EEF0, 0x1EEF1, prN}, // Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL - {0x1F000, 0x1F003, prN}, // So [4] MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND - {0x1F004, 0x1F004, prW}, // So MAHJONG TILE RED DRAGON - {0x1F005, 0x1F02B, prN}, // So [39] MAHJONG TILE GREEN DRAGON..MAHJONG TILE BACK - {0x1F030, 0x1F093, prN}, // So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06 - {0x1F0A0, 0x1F0AE, prN}, // So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES - {0x1F0B1, 0x1F0BF, prN}, // So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER - {0x1F0C1, 0x1F0CE, prN}, // So [14] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD KING OF DIAMONDS - {0x1F0CF, 0x1F0CF, prW}, // So PLAYING CARD BLACK JOKER - {0x1F0D1, 0x1F0F5, prN}, // So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21 - {0x1F100, 0x1F10A, prA}, // No [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA - {0x1F10B, 0x1F10C, prN}, // No [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO - {0x1F10D, 0x1F10F, prN}, // So [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH - {0x1F110, 0x1F12D, prA}, // So [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD - {0x1F12E, 0x1F12F, prN}, // So [2] CIRCLED WZ..COPYLEFT SYMBOL - {0x1F130, 0x1F169, prA}, // So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z - {0x1F16A, 0x1F16F, prN}, // So [6] RAISED MC SIGN..CIRCLED HUMAN FIGURE - {0x1F170, 0x1F18D, prA}, // So [30] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED SA - {0x1F18E, 0x1F18E, prW}, // So NEGATIVE SQUARED AB - {0x1F18F, 0x1F190, prA}, // So [2] NEGATIVE SQUARED WC..SQUARE DJ - {0x1F191, 0x1F19A, prW}, // So [10] SQUARED CL..SQUARED VS - {0x1F19B, 0x1F1AC, prA}, // So [18] SQUARED THREE D..SQUARED VOD - {0x1F1AD, 0x1F1AD, prN}, // So MASK WORK SYMBOL - {0x1F1E6, 0x1F1FF, prN}, // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z - {0x1F200, 0x1F202, prW}, // So [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA - {0x1F210, 0x1F23B, prW}, // So [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D - {0x1F240, 0x1F248, prW}, // So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 - {0x1F250, 0x1F251, prW}, // So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT - {0x1F260, 0x1F265, prW}, // So [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI - {0x1F300, 0x1F320, prW}, // So [33] CYCLONE..SHOOTING STAR - {0x1F321, 0x1F32C, prN}, // So [12] THERMOMETER..WIND BLOWING FACE - {0x1F32D, 0x1F335, prW}, // So [9] HOT DOG..CACTUS - {0x1F336, 0x1F336, prN}, // So HOT PEPPER - {0x1F337, 0x1F37C, prW}, // So [70] TULIP..BABY BOTTLE - {0x1F37D, 0x1F37D, prN}, // So FORK AND KNIFE WITH PLATE - {0x1F37E, 0x1F393, prW}, // So [22] BOTTLE WITH POPPING CORK..GRADUATION CAP - {0x1F394, 0x1F39F, prN}, // So [12] HEART WITH TIP ON THE LEFT..ADMISSION TICKETS - {0x1F3A0, 0x1F3CA, prW}, // So [43] CAROUSEL HORSE..SWIMMER - {0x1F3CB, 0x1F3CE, prN}, // So [4] WEIGHT LIFTER..RACING CAR - {0x1F3CF, 0x1F3D3, prW}, // So [5] CRICKET BAT AND BALL..TABLE TENNIS PADDLE AND BALL - {0x1F3D4, 0x1F3DF, prN}, // So [12] SNOW CAPPED MOUNTAIN..STADIUM - {0x1F3E0, 0x1F3F0, prW}, // So [17] HOUSE BUILDING..EUROPEAN CASTLE - {0x1F3F1, 0x1F3F3, prN}, // So [3] WHITE PENNANT..WAVING WHITE FLAG - {0x1F3F4, 0x1F3F4, prW}, // So WAVING BLACK FLAG - {0x1F3F5, 0x1F3F7, prN}, // So [3] ROSETTE..LABEL - {0x1F3F8, 0x1F3FA, prW}, // So [3] BADMINTON RACQUET AND SHUTTLECOCK..AMPHORA - {0x1F3FB, 0x1F3FF, prW}, // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 - {0x1F400, 0x1F43E, prW}, // So [63] RAT..PAW PRINTS - {0x1F43F, 0x1F43F, prN}, // So CHIPMUNK - {0x1F440, 0x1F440, prW}, // So EYES - {0x1F441, 0x1F441, prN}, // So EYE - {0x1F442, 0x1F4FC, prW}, // So [187] EAR..VIDEOCASSETTE - {0x1F4FD, 0x1F4FE, prN}, // So [2] FILM PROJECTOR..PORTABLE STEREO - {0x1F4FF, 0x1F53D, prW}, // So [63] PRAYER BEADS..DOWN-POINTING SMALL RED TRIANGLE - {0x1F53E, 0x1F54A, prN}, // So [13] LOWER RIGHT SHADOWED WHITE CIRCLE..DOVE OF PEACE - {0x1F54B, 0x1F54E, prW}, // So [4] KAABA..MENORAH WITH NINE BRANCHES - {0x1F54F, 0x1F54F, prN}, // So BOWL OF HYGIEIA - {0x1F550, 0x1F567, prW}, // So [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY - {0x1F568, 0x1F579, prN}, // So [18] RIGHT SPEAKER..JOYSTICK - {0x1F57A, 0x1F57A, prW}, // So MAN DANCING - {0x1F57B, 0x1F594, prN}, // So [26] LEFT HAND TELEPHONE RECEIVER..REVERSED VICTORY HAND - {0x1F595, 0x1F596, prW}, // So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS - {0x1F597, 0x1F5A3, prN}, // So [13] WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX - {0x1F5A4, 0x1F5A4, prW}, // So BLACK HEART - {0x1F5A5, 0x1F5FA, prN}, // So [86] DESKTOP COMPUTER..WORLD MAP - {0x1F5FB, 0x1F5FF, prW}, // So [5] MOUNT FUJI..MOYAI - {0x1F600, 0x1F64F, prW}, // So [80] GRINNING FACE..PERSON WITH FOLDED HANDS - {0x1F650, 0x1F67F, prN}, // So [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD - {0x1F680, 0x1F6C5, prW}, // So [70] ROCKET..LEFT LUGGAGE - {0x1F6C6, 0x1F6CB, prN}, // So [6] TRIANGLE WITH ROUNDED CORNERS..COUCH AND LAMP - {0x1F6CC, 0x1F6CC, prW}, // So SLEEPING ACCOMMODATION - {0x1F6CD, 0x1F6CF, prN}, // So [3] SHOPPING BAGS..BED - {0x1F6D0, 0x1F6D2, prW}, // So [3] PLACE OF WORSHIP..SHOPPING TROLLEY - {0x1F6D3, 0x1F6D4, prN}, // So [2] STUPA..PAGODA - {0x1F6D5, 0x1F6D7, prW}, // So [3] HINDU TEMPLE..ELEVATOR - {0x1F6DC, 0x1F6DF, prW}, // So [4] WIRELESS..RING BUOY - {0x1F6E0, 0x1F6EA, prN}, // So [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE - {0x1F6EB, 0x1F6EC, prW}, // So [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING - {0x1F6F0, 0x1F6F3, prN}, // So [4] SATELLITE..PASSENGER SHIP - {0x1F6F4, 0x1F6FC, prW}, // So [9] SCOOTER..ROLLER SKATE - {0x1F700, 0x1F776, prN}, // So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE - {0x1F77B, 0x1F77F, prN}, // So [5] HAUMEA..ORCUS - {0x1F780, 0x1F7D9, prN}, // So [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR - {0x1F7E0, 0x1F7EB, prW}, // So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE - {0x1F7F0, 0x1F7F0, prW}, // So HEAVY EQUALS SIGN - {0x1F800, 0x1F80B, prN}, // So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD - {0x1F810, 0x1F847, prN}, // So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW - {0x1F850, 0x1F859, prN}, // So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW - {0x1F860, 0x1F887, prN}, // So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW - {0x1F890, 0x1F8AD, prN}, // So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS - {0x1F8B0, 0x1F8B1, prN}, // So [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST - {0x1F900, 0x1F90B, prN}, // So [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT - {0x1F90C, 0x1F93A, prW}, // So [47] PINCHED FINGERS..FENCER - {0x1F93B, 0x1F93B, prN}, // So MODERN PENTATHLON - {0x1F93C, 0x1F945, prW}, // So [10] WRESTLERS..GOAL NET - {0x1F946, 0x1F946, prN}, // So RIFLE - {0x1F947, 0x1F9FF, prW}, // So [185] FIRST PLACE MEDAL..NAZAR AMULET - {0x1FA00, 0x1FA53, prN}, // So [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP - {0x1FA60, 0x1FA6D, prN}, // So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER - {0x1FA70, 0x1FA7C, prW}, // So [13] BALLET SHOES..CRUTCH - {0x1FA80, 0x1FA88, prW}, // So [9] YO-YO..FLUTE - {0x1FA90, 0x1FABD, prW}, // So [46] RINGED PLANET..WING - {0x1FABF, 0x1FAC5, prW}, // So [7] GOOSE..PERSON WITH CROWN - {0x1FACE, 0x1FADB, prW}, // So [14] MOOSE..PEA POD - {0x1FAE0, 0x1FAE8, prW}, // So [9] MELTING FACE..SHAKING FACE - {0x1FAF0, 0x1FAF8, prW}, // So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND - {0x1FB00, 0x1FB92, prN}, // So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK - {0x1FB94, 0x1FBCA, prN}, // So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON - {0x1FBF0, 0x1FBF9, prN}, // Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE - {0x20000, 0x2A6DF, prW}, // Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF - {0x2A6E0, 0x2A6FF, prW}, // Cn [32] .. - {0x2A700, 0x2B739, prW}, // Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 - {0x2B73A, 0x2B73F, prW}, // Cn [6] .. - {0x2B740, 0x2B81D, prW}, // Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D - {0x2B81E, 0x2B81F, prW}, // Cn [2] .. - {0x2B820, 0x2CEA1, prW}, // Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 - {0x2CEA2, 0x2CEAF, prW}, // Cn [14] .. - {0x2CEB0, 0x2EBE0, prW}, // Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 - {0x2EBE1, 0x2F7FF, prW}, // Cn [3103] .. - {0x2F800, 0x2FA1D, prW}, // Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D - {0x2FA1E, 0x2FA1F, prW}, // Cn [2] .. - {0x2FA20, 0x2FFFD, prW}, // Cn [1502] .. - {0x30000, 0x3134A, prW}, // Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A - {0x3134B, 0x3134F, prW}, // Cn [5] .. - {0x31350, 0x323AF, prW}, // Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF - {0x323B0, 0x3FFFD, prW}, // Cn [56398] .. - {0xE0001, 0xE0001, prN}, // Cf LANGUAGE TAG - {0xE0020, 0xE007F, prN}, // Cf [96] TAG SPACE..CANCEL TAG - {0xE0100, 0xE01EF, prA}, // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 - {0xF0000, 0xFFFFD, prA}, // Co [65534] .. - {0x100000, 0x10FFFD, prA}, // Co [65534] .. -} diff --git a/vendor/github.com/rivo/uniseg/emojipresentation.go b/vendor/github.com/rivo/uniseg/emojipresentation.go deleted file mode 100644 index 9b5f499..0000000 --- a/vendor/github.com/rivo/uniseg/emojipresentation.go +++ /dev/null @@ -1,295 +0,0 @@ -// Code generated via go generate from gen_properties.go. DO NOT EDIT. - -package uniseg - -// emojiPresentation are taken from -// -// and -// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt -// ("Extended_Pictographic" only) -// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode -// license agreement. -var emojiPresentation = [][3]int{ - {0x231A, 0x231B, prEmojiPresentation}, // E0.6 [2] (⌚..⌛) watch..hourglass done - {0x23E9, 0x23EC, prEmojiPresentation}, // E0.6 [4] (⏩..⏬) fast-forward button..fast down button - {0x23F0, 0x23F0, prEmojiPresentation}, // E0.6 [1] (⏰) alarm clock - {0x23F3, 0x23F3, prEmojiPresentation}, // E0.6 [1] (⏳) hourglass not done - {0x25FD, 0x25FE, prEmojiPresentation}, // E0.6 [2] (◽..◾) white medium-small square..black medium-small square - {0x2614, 0x2615, prEmojiPresentation}, // E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage - {0x2648, 0x2653, prEmojiPresentation}, // E0.6 [12] (♈..♓) Aries..Pisces - {0x267F, 0x267F, prEmojiPresentation}, // E0.6 [1] (♿) wheelchair symbol - {0x2693, 0x2693, prEmojiPresentation}, // E0.6 [1] (⚓) anchor - {0x26A1, 0x26A1, prEmojiPresentation}, // E0.6 [1] (⚡) high voltage - {0x26AA, 0x26AB, prEmojiPresentation}, // E0.6 [2] (⚪..⚫) white circle..black circle - {0x26BD, 0x26BE, prEmojiPresentation}, // E0.6 [2] (⚽..⚾) soccer ball..baseball - {0x26C4, 0x26C5, prEmojiPresentation}, // E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud - {0x26CE, 0x26CE, prEmojiPresentation}, // E0.6 [1] (⛎) Ophiuchus - {0x26D4, 0x26D4, prEmojiPresentation}, // E0.6 [1] (⛔) no entry - {0x26EA, 0x26EA, prEmojiPresentation}, // E0.6 [1] (⛪) church - {0x26F2, 0x26F3, prEmojiPresentation}, // E0.6 [2] (⛲..⛳) fountain..flag in hole - {0x26F5, 0x26F5, prEmojiPresentation}, // E0.6 [1] (⛵) sailboat - {0x26FA, 0x26FA, prEmojiPresentation}, // E0.6 [1] (⛺) tent - {0x26FD, 0x26FD, prEmojiPresentation}, // E0.6 [1] (⛽) fuel pump - {0x2705, 0x2705, prEmojiPresentation}, // E0.6 [1] (✅) check mark button - {0x270A, 0x270B, prEmojiPresentation}, // E0.6 [2] (✊..✋) raised fist..raised hand - {0x2728, 0x2728, prEmojiPresentation}, // E0.6 [1] (✨) sparkles - {0x274C, 0x274C, prEmojiPresentation}, // E0.6 [1] (❌) cross mark - {0x274E, 0x274E, prEmojiPresentation}, // E0.6 [1] (❎) cross mark button - {0x2753, 0x2755, prEmojiPresentation}, // E0.6 [3] (❓..❕) red question mark..white exclamation mark - {0x2757, 0x2757, prEmojiPresentation}, // E0.6 [1] (❗) red exclamation mark - {0x2795, 0x2797, prEmojiPresentation}, // E0.6 [3] (➕..➗) plus..divide - {0x27B0, 0x27B0, prEmojiPresentation}, // E0.6 [1] (➰) curly loop - {0x27BF, 0x27BF, prEmojiPresentation}, // E1.0 [1] (➿) double curly loop - {0x2B1B, 0x2B1C, prEmojiPresentation}, // E0.6 [2] (⬛..⬜) black large square..white large square - {0x2B50, 0x2B50, prEmojiPresentation}, // E0.6 [1] (⭐) star - {0x2B55, 0x2B55, prEmojiPresentation}, // E0.6 [1] (⭕) hollow red circle - {0x1F004, 0x1F004, prEmojiPresentation}, // E0.6 [1] (🀄) mahjong red dragon - {0x1F0CF, 0x1F0CF, prEmojiPresentation}, // E0.6 [1] (🃏) joker - {0x1F18E, 0x1F18E, prEmojiPresentation}, // E0.6 [1] (🆎) AB button (blood type) - {0x1F191, 0x1F19A, prEmojiPresentation}, // E0.6 [10] (🆑..🆚) CL button..VS button - {0x1F1E6, 0x1F1FF, prEmojiPresentation}, // E0.0 [26] (🇦..🇿) regional indicator symbol letter a..regional indicator symbol letter z - {0x1F201, 0x1F201, prEmojiPresentation}, // E0.6 [1] (🈁) Japanese “here” button - {0x1F21A, 0x1F21A, prEmojiPresentation}, // E0.6 [1] (🈚) Japanese “free of charge” button - {0x1F22F, 0x1F22F, prEmojiPresentation}, // E0.6 [1] (🈯) Japanese “reserved” button - {0x1F232, 0x1F236, prEmojiPresentation}, // E0.6 [5] (🈲..🈶) Japanese “prohibited” button..Japanese “not free of charge” button - {0x1F238, 0x1F23A, prEmojiPresentation}, // E0.6 [3] (🈸..🈺) Japanese “application” button..Japanese “open for business” button - {0x1F250, 0x1F251, prEmojiPresentation}, // E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button - {0x1F300, 0x1F30C, prEmojiPresentation}, // E0.6 [13] (🌀..🌌) cyclone..milky way - {0x1F30D, 0x1F30E, prEmojiPresentation}, // E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas - {0x1F30F, 0x1F30F, prEmojiPresentation}, // E0.6 [1] (🌏) globe showing Asia-Australia - {0x1F310, 0x1F310, prEmojiPresentation}, // E1.0 [1] (🌐) globe with meridians - {0x1F311, 0x1F311, prEmojiPresentation}, // E0.6 [1] (🌑) new moon - {0x1F312, 0x1F312, prEmojiPresentation}, // E1.0 [1] (🌒) waxing crescent moon - {0x1F313, 0x1F315, prEmojiPresentation}, // E0.6 [3] (🌓..🌕) first quarter moon..full moon - {0x1F316, 0x1F318, prEmojiPresentation}, // E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon - {0x1F319, 0x1F319, prEmojiPresentation}, // E0.6 [1] (🌙) crescent moon - {0x1F31A, 0x1F31A, prEmojiPresentation}, // E1.0 [1] (🌚) new moon face - {0x1F31B, 0x1F31B, prEmojiPresentation}, // E0.6 [1] (🌛) first quarter moon face - {0x1F31C, 0x1F31C, prEmojiPresentation}, // E0.7 [1] (🌜) last quarter moon face - {0x1F31D, 0x1F31E, prEmojiPresentation}, // E1.0 [2] (🌝..🌞) full moon face..sun with face - {0x1F31F, 0x1F320, prEmojiPresentation}, // E0.6 [2] (🌟..🌠) glowing star..shooting star - {0x1F32D, 0x1F32F, prEmojiPresentation}, // E1.0 [3] (🌭..🌯) hot dog..burrito - {0x1F330, 0x1F331, prEmojiPresentation}, // E0.6 [2] (🌰..🌱) chestnut..seedling - {0x1F332, 0x1F333, prEmojiPresentation}, // E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree - {0x1F334, 0x1F335, prEmojiPresentation}, // E0.6 [2] (🌴..🌵) palm tree..cactus - {0x1F337, 0x1F34A, prEmojiPresentation}, // E0.6 [20] (🌷..🍊) tulip..tangerine - {0x1F34B, 0x1F34B, prEmojiPresentation}, // E1.0 [1] (🍋) lemon - {0x1F34C, 0x1F34F, prEmojiPresentation}, // E0.6 [4] (🍌..🍏) banana..green apple - {0x1F350, 0x1F350, prEmojiPresentation}, // E1.0 [1] (🍐) pear - {0x1F351, 0x1F37B, prEmojiPresentation}, // E0.6 [43] (🍑..🍻) peach..clinking beer mugs - {0x1F37C, 0x1F37C, prEmojiPresentation}, // E1.0 [1] (🍼) baby bottle - {0x1F37E, 0x1F37F, prEmojiPresentation}, // E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn - {0x1F380, 0x1F393, prEmojiPresentation}, // E0.6 [20] (🎀..🎓) ribbon..graduation cap - {0x1F3A0, 0x1F3C4, prEmojiPresentation}, // E0.6 [37] (🎠..🏄) carousel horse..person surfing - {0x1F3C5, 0x1F3C5, prEmojiPresentation}, // E1.0 [1] (🏅) sports medal - {0x1F3C6, 0x1F3C6, prEmojiPresentation}, // E0.6 [1] (🏆) trophy - {0x1F3C7, 0x1F3C7, prEmojiPresentation}, // E1.0 [1] (🏇) horse racing - {0x1F3C8, 0x1F3C8, prEmojiPresentation}, // E0.6 [1] (🏈) american football - {0x1F3C9, 0x1F3C9, prEmojiPresentation}, // E1.0 [1] (🏉) rugby football - {0x1F3CA, 0x1F3CA, prEmojiPresentation}, // E0.6 [1] (🏊) person swimming - {0x1F3CF, 0x1F3D3, prEmojiPresentation}, // E1.0 [5] (🏏..🏓) cricket game..ping pong - {0x1F3E0, 0x1F3E3, prEmojiPresentation}, // E0.6 [4] (🏠..🏣) house..Japanese post office - {0x1F3E4, 0x1F3E4, prEmojiPresentation}, // E1.0 [1] (🏤) post office - {0x1F3E5, 0x1F3F0, prEmojiPresentation}, // E0.6 [12] (🏥..🏰) hospital..castle - {0x1F3F4, 0x1F3F4, prEmojiPresentation}, // E1.0 [1] (🏴) black flag - {0x1F3F8, 0x1F407, prEmojiPresentation}, // E1.0 [16] (🏸..🐇) badminton..rabbit - {0x1F408, 0x1F408, prEmojiPresentation}, // E0.7 [1] (🐈) cat - {0x1F409, 0x1F40B, prEmojiPresentation}, // E1.0 [3] (🐉..🐋) dragon..whale - {0x1F40C, 0x1F40E, prEmojiPresentation}, // E0.6 [3] (🐌..🐎) snail..horse - {0x1F40F, 0x1F410, prEmojiPresentation}, // E1.0 [2] (🐏..🐐) ram..goat - {0x1F411, 0x1F412, prEmojiPresentation}, // E0.6 [2] (🐑..🐒) ewe..monkey - {0x1F413, 0x1F413, prEmojiPresentation}, // E1.0 [1] (🐓) rooster - {0x1F414, 0x1F414, prEmojiPresentation}, // E0.6 [1] (🐔) chicken - {0x1F415, 0x1F415, prEmojiPresentation}, // E0.7 [1] (🐕) dog - {0x1F416, 0x1F416, prEmojiPresentation}, // E1.0 [1] (🐖) pig - {0x1F417, 0x1F429, prEmojiPresentation}, // E0.6 [19] (🐗..🐩) boar..poodle - {0x1F42A, 0x1F42A, prEmojiPresentation}, // E1.0 [1] (🐪) camel - {0x1F42B, 0x1F43E, prEmojiPresentation}, // E0.6 [20] (🐫..🐾) two-hump camel..paw prints - {0x1F440, 0x1F440, prEmojiPresentation}, // E0.6 [1] (👀) eyes - {0x1F442, 0x1F464, prEmojiPresentation}, // E0.6 [35] (👂..👤) ear..bust in silhouette - {0x1F465, 0x1F465, prEmojiPresentation}, // E1.0 [1] (👥) busts in silhouette - {0x1F466, 0x1F46B, prEmojiPresentation}, // E0.6 [6] (👦..👫) boy..woman and man holding hands - {0x1F46C, 0x1F46D, prEmojiPresentation}, // E1.0 [2] (👬..👭) men holding hands..women holding hands - {0x1F46E, 0x1F4AC, prEmojiPresentation}, // E0.6 [63] (👮..💬) police officer..speech balloon - {0x1F4AD, 0x1F4AD, prEmojiPresentation}, // E1.0 [1] (💭) thought balloon - {0x1F4AE, 0x1F4B5, prEmojiPresentation}, // E0.6 [8] (💮..💵) white flower..dollar banknote - {0x1F4B6, 0x1F4B7, prEmojiPresentation}, // E1.0 [2] (💶..💷) euro banknote..pound banknote - {0x1F4B8, 0x1F4EB, prEmojiPresentation}, // E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag - {0x1F4EC, 0x1F4ED, prEmojiPresentation}, // E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag - {0x1F4EE, 0x1F4EE, prEmojiPresentation}, // E0.6 [1] (📮) postbox - {0x1F4EF, 0x1F4EF, prEmojiPresentation}, // E1.0 [1] (📯) postal horn - {0x1F4F0, 0x1F4F4, prEmojiPresentation}, // E0.6 [5] (📰..📴) newspaper..mobile phone off - {0x1F4F5, 0x1F4F5, prEmojiPresentation}, // E1.0 [1] (📵) no mobile phones - {0x1F4F6, 0x1F4F7, prEmojiPresentation}, // E0.6 [2] (📶..📷) antenna bars..camera - {0x1F4F8, 0x1F4F8, prEmojiPresentation}, // E1.0 [1] (📸) camera with flash - {0x1F4F9, 0x1F4FC, prEmojiPresentation}, // E0.6 [4] (📹..📼) video camera..videocassette - {0x1F4FF, 0x1F502, prEmojiPresentation}, // E1.0 [4] (📿..🔂) prayer beads..repeat single button - {0x1F503, 0x1F503, prEmojiPresentation}, // E0.6 [1] (🔃) clockwise vertical arrows - {0x1F504, 0x1F507, prEmojiPresentation}, // E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker - {0x1F508, 0x1F508, prEmojiPresentation}, // E0.7 [1] (🔈) speaker low volume - {0x1F509, 0x1F509, prEmojiPresentation}, // E1.0 [1] (🔉) speaker medium volume - {0x1F50A, 0x1F514, prEmojiPresentation}, // E0.6 [11] (🔊..🔔) speaker high volume..bell - {0x1F515, 0x1F515, prEmojiPresentation}, // E1.0 [1] (🔕) bell with slash - {0x1F516, 0x1F52B, prEmojiPresentation}, // E0.6 [22] (🔖..🔫) bookmark..water pistol - {0x1F52C, 0x1F52D, prEmojiPresentation}, // E1.0 [2] (🔬..🔭) microscope..telescope - {0x1F52E, 0x1F53D, prEmojiPresentation}, // E0.6 [16] (🔮..🔽) crystal ball..downwards button - {0x1F54B, 0x1F54E, prEmojiPresentation}, // E1.0 [4] (🕋..🕎) kaaba..menorah - {0x1F550, 0x1F55B, prEmojiPresentation}, // E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock - {0x1F55C, 0x1F567, prEmojiPresentation}, // E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty - {0x1F57A, 0x1F57A, prEmojiPresentation}, // E3.0 [1] (🕺) man dancing - {0x1F595, 0x1F596, prEmojiPresentation}, // E1.0 [2] (🖕..🖖) middle finger..vulcan salute - {0x1F5A4, 0x1F5A4, prEmojiPresentation}, // E3.0 [1] (🖤) black heart - {0x1F5FB, 0x1F5FF, prEmojiPresentation}, // E0.6 [5] (🗻..🗿) mount fuji..moai - {0x1F600, 0x1F600, prEmojiPresentation}, // E1.0 [1] (😀) grinning face - {0x1F601, 0x1F606, prEmojiPresentation}, // E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face - {0x1F607, 0x1F608, prEmojiPresentation}, // E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns - {0x1F609, 0x1F60D, prEmojiPresentation}, // E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes - {0x1F60E, 0x1F60E, prEmojiPresentation}, // E1.0 [1] (😎) smiling face with sunglasses - {0x1F60F, 0x1F60F, prEmojiPresentation}, // E0.6 [1] (😏) smirking face - {0x1F610, 0x1F610, prEmojiPresentation}, // E0.7 [1] (😐) neutral face - {0x1F611, 0x1F611, prEmojiPresentation}, // E1.0 [1] (😑) expressionless face - {0x1F612, 0x1F614, prEmojiPresentation}, // E0.6 [3] (😒..😔) unamused face..pensive face - {0x1F615, 0x1F615, prEmojiPresentation}, // E1.0 [1] (😕) confused face - {0x1F616, 0x1F616, prEmojiPresentation}, // E0.6 [1] (😖) confounded face - {0x1F617, 0x1F617, prEmojiPresentation}, // E1.0 [1] (😗) kissing face - {0x1F618, 0x1F618, prEmojiPresentation}, // E0.6 [1] (😘) face blowing a kiss - {0x1F619, 0x1F619, prEmojiPresentation}, // E1.0 [1] (😙) kissing face with smiling eyes - {0x1F61A, 0x1F61A, prEmojiPresentation}, // E0.6 [1] (😚) kissing face with closed eyes - {0x1F61B, 0x1F61B, prEmojiPresentation}, // E1.0 [1] (😛) face with tongue - {0x1F61C, 0x1F61E, prEmojiPresentation}, // E0.6 [3] (😜..😞) winking face with tongue..disappointed face - {0x1F61F, 0x1F61F, prEmojiPresentation}, // E1.0 [1] (😟) worried face - {0x1F620, 0x1F625, prEmojiPresentation}, // E0.6 [6] (😠..😥) angry face..sad but relieved face - {0x1F626, 0x1F627, prEmojiPresentation}, // E1.0 [2] (😦..😧) frowning face with open mouth..anguished face - {0x1F628, 0x1F62B, prEmojiPresentation}, // E0.6 [4] (😨..😫) fearful face..tired face - {0x1F62C, 0x1F62C, prEmojiPresentation}, // E1.0 [1] (😬) grimacing face - {0x1F62D, 0x1F62D, prEmojiPresentation}, // E0.6 [1] (😭) loudly crying face - {0x1F62E, 0x1F62F, prEmojiPresentation}, // E1.0 [2] (😮..😯) face with open mouth..hushed face - {0x1F630, 0x1F633, prEmojiPresentation}, // E0.6 [4] (😰..😳) anxious face with sweat..flushed face - {0x1F634, 0x1F634, prEmojiPresentation}, // E1.0 [1] (😴) sleeping face - {0x1F635, 0x1F635, prEmojiPresentation}, // E0.6 [1] (😵) face with crossed-out eyes - {0x1F636, 0x1F636, prEmojiPresentation}, // E1.0 [1] (😶) face without mouth - {0x1F637, 0x1F640, prEmojiPresentation}, // E0.6 [10] (😷..🙀) face with medical mask..weary cat - {0x1F641, 0x1F644, prEmojiPresentation}, // E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes - {0x1F645, 0x1F64F, prEmojiPresentation}, // E0.6 [11] (🙅..🙏) person gesturing NO..folded hands - {0x1F680, 0x1F680, prEmojiPresentation}, // E0.6 [1] (🚀) rocket - {0x1F681, 0x1F682, prEmojiPresentation}, // E1.0 [2] (🚁..🚂) helicopter..locomotive - {0x1F683, 0x1F685, prEmojiPresentation}, // E0.6 [3] (🚃..🚅) railway car..bullet train - {0x1F686, 0x1F686, prEmojiPresentation}, // E1.0 [1] (🚆) train - {0x1F687, 0x1F687, prEmojiPresentation}, // E0.6 [1] (🚇) metro - {0x1F688, 0x1F688, prEmojiPresentation}, // E1.0 [1] (🚈) light rail - {0x1F689, 0x1F689, prEmojiPresentation}, // E0.6 [1] (🚉) station - {0x1F68A, 0x1F68B, prEmojiPresentation}, // E1.0 [2] (🚊..🚋) tram..tram car - {0x1F68C, 0x1F68C, prEmojiPresentation}, // E0.6 [1] (🚌) bus - {0x1F68D, 0x1F68D, prEmojiPresentation}, // E0.7 [1] (🚍) oncoming bus - {0x1F68E, 0x1F68E, prEmojiPresentation}, // E1.0 [1] (🚎) trolleybus - {0x1F68F, 0x1F68F, prEmojiPresentation}, // E0.6 [1] (🚏) bus stop - {0x1F690, 0x1F690, prEmojiPresentation}, // E1.0 [1] (🚐) minibus - {0x1F691, 0x1F693, prEmojiPresentation}, // E0.6 [3] (🚑..🚓) ambulance..police car - {0x1F694, 0x1F694, prEmojiPresentation}, // E0.7 [1] (🚔) oncoming police car - {0x1F695, 0x1F695, prEmojiPresentation}, // E0.6 [1] (🚕) taxi - {0x1F696, 0x1F696, prEmojiPresentation}, // E1.0 [1] (🚖) oncoming taxi - {0x1F697, 0x1F697, prEmojiPresentation}, // E0.6 [1] (🚗) automobile - {0x1F698, 0x1F698, prEmojiPresentation}, // E0.7 [1] (🚘) oncoming automobile - {0x1F699, 0x1F69A, prEmojiPresentation}, // E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck - {0x1F69B, 0x1F6A1, prEmojiPresentation}, // E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway - {0x1F6A2, 0x1F6A2, prEmojiPresentation}, // E0.6 [1] (🚢) ship - {0x1F6A3, 0x1F6A3, prEmojiPresentation}, // E1.0 [1] (🚣) person rowing boat - {0x1F6A4, 0x1F6A5, prEmojiPresentation}, // E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light - {0x1F6A6, 0x1F6A6, prEmojiPresentation}, // E1.0 [1] (🚦) vertical traffic light - {0x1F6A7, 0x1F6AD, prEmojiPresentation}, // E0.6 [7] (🚧..🚭) construction..no smoking - {0x1F6AE, 0x1F6B1, prEmojiPresentation}, // E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water - {0x1F6B2, 0x1F6B2, prEmojiPresentation}, // E0.6 [1] (🚲) bicycle - {0x1F6B3, 0x1F6B5, prEmojiPresentation}, // E1.0 [3] (🚳..🚵) no bicycles..person mountain biking - {0x1F6B6, 0x1F6B6, prEmojiPresentation}, // E0.6 [1] (🚶) person walking - {0x1F6B7, 0x1F6B8, prEmojiPresentation}, // E1.0 [2] (🚷..🚸) no pedestrians..children crossing - {0x1F6B9, 0x1F6BE, prEmojiPresentation}, // E0.6 [6] (🚹..🚾) men’s room..water closet - {0x1F6BF, 0x1F6BF, prEmojiPresentation}, // E1.0 [1] (🚿) shower - {0x1F6C0, 0x1F6C0, prEmojiPresentation}, // E0.6 [1] (🛀) person taking bath - {0x1F6C1, 0x1F6C5, prEmojiPresentation}, // E1.0 [5] (🛁..🛅) bathtub..left luggage - {0x1F6CC, 0x1F6CC, prEmojiPresentation}, // E1.0 [1] (🛌) person in bed - {0x1F6D0, 0x1F6D0, prEmojiPresentation}, // E1.0 [1] (🛐) place of worship - {0x1F6D1, 0x1F6D2, prEmojiPresentation}, // E3.0 [2] (🛑..🛒) stop sign..shopping cart - {0x1F6D5, 0x1F6D5, prEmojiPresentation}, // E12.0 [1] (🛕) hindu temple - {0x1F6D6, 0x1F6D7, prEmojiPresentation}, // E13.0 [2] (🛖..🛗) hut..elevator - {0x1F6DC, 0x1F6DC, prEmojiPresentation}, // E15.0 [1] (🛜) wireless - {0x1F6DD, 0x1F6DF, prEmojiPresentation}, // E14.0 [3] (🛝..🛟) playground slide..ring buoy - {0x1F6EB, 0x1F6EC, prEmojiPresentation}, // E1.0 [2] (🛫..🛬) airplane departure..airplane arrival - {0x1F6F4, 0x1F6F6, prEmojiPresentation}, // E3.0 [3] (🛴..🛶) kick scooter..canoe - {0x1F6F7, 0x1F6F8, prEmojiPresentation}, // E5.0 [2] (🛷..🛸) sled..flying saucer - {0x1F6F9, 0x1F6F9, prEmojiPresentation}, // E11.0 [1] (🛹) skateboard - {0x1F6FA, 0x1F6FA, prEmojiPresentation}, // E12.0 [1] (🛺) auto rickshaw - {0x1F6FB, 0x1F6FC, prEmojiPresentation}, // E13.0 [2] (🛻..🛼) pickup truck..roller skate - {0x1F7E0, 0x1F7EB, prEmojiPresentation}, // E12.0 [12] (🟠..🟫) orange circle..brown square - {0x1F7F0, 0x1F7F0, prEmojiPresentation}, // E14.0 [1] (🟰) heavy equals sign - {0x1F90C, 0x1F90C, prEmojiPresentation}, // E13.0 [1] (🤌) pinched fingers - {0x1F90D, 0x1F90F, prEmojiPresentation}, // E12.0 [3] (🤍..🤏) white heart..pinching hand - {0x1F910, 0x1F918, prEmojiPresentation}, // E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns - {0x1F919, 0x1F91E, prEmojiPresentation}, // E3.0 [6] (🤙..🤞) call me hand..crossed fingers - {0x1F91F, 0x1F91F, prEmojiPresentation}, // E5.0 [1] (🤟) love-you gesture - {0x1F920, 0x1F927, prEmojiPresentation}, // E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face - {0x1F928, 0x1F92F, prEmojiPresentation}, // E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head - {0x1F930, 0x1F930, prEmojiPresentation}, // E3.0 [1] (🤰) pregnant woman - {0x1F931, 0x1F932, prEmojiPresentation}, // E5.0 [2] (🤱..🤲) breast-feeding..palms up together - {0x1F933, 0x1F93A, prEmojiPresentation}, // E3.0 [8] (🤳..🤺) selfie..person fencing - {0x1F93C, 0x1F93E, prEmojiPresentation}, // E3.0 [3] (🤼..🤾) people wrestling..person playing handball - {0x1F93F, 0x1F93F, prEmojiPresentation}, // E12.0 [1] (🤿) diving mask - {0x1F940, 0x1F945, prEmojiPresentation}, // E3.0 [6] (🥀..🥅) wilted flower..goal net - {0x1F947, 0x1F94B, prEmojiPresentation}, // E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform - {0x1F94C, 0x1F94C, prEmojiPresentation}, // E5.0 [1] (🥌) curling stone - {0x1F94D, 0x1F94F, prEmojiPresentation}, // E11.0 [3] (🥍..🥏) lacrosse..flying disc - {0x1F950, 0x1F95E, prEmojiPresentation}, // E3.0 [15] (🥐..🥞) croissant..pancakes - {0x1F95F, 0x1F96B, prEmojiPresentation}, // E5.0 [13] (🥟..🥫) dumpling..canned food - {0x1F96C, 0x1F970, prEmojiPresentation}, // E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts - {0x1F971, 0x1F971, prEmojiPresentation}, // E12.0 [1] (🥱) yawning face - {0x1F972, 0x1F972, prEmojiPresentation}, // E13.0 [1] (🥲) smiling face with tear - {0x1F973, 0x1F976, prEmojiPresentation}, // E11.0 [4] (🥳..🥶) partying face..cold face - {0x1F977, 0x1F978, prEmojiPresentation}, // E13.0 [2] (🥷..🥸) ninja..disguised face - {0x1F979, 0x1F979, prEmojiPresentation}, // E14.0 [1] (🥹) face holding back tears - {0x1F97A, 0x1F97A, prEmojiPresentation}, // E11.0 [1] (🥺) pleading face - {0x1F97B, 0x1F97B, prEmojiPresentation}, // E12.0 [1] (🥻) sari - {0x1F97C, 0x1F97F, prEmojiPresentation}, // E11.0 [4] (🥼..🥿) lab coat..flat shoe - {0x1F980, 0x1F984, prEmojiPresentation}, // E1.0 [5] (🦀..🦄) crab..unicorn - {0x1F985, 0x1F991, prEmojiPresentation}, // E3.0 [13] (🦅..🦑) eagle..squid - {0x1F992, 0x1F997, prEmojiPresentation}, // E5.0 [6] (🦒..🦗) giraffe..cricket - {0x1F998, 0x1F9A2, prEmojiPresentation}, // E11.0 [11] (🦘..🦢) kangaroo..swan - {0x1F9A3, 0x1F9A4, prEmojiPresentation}, // E13.0 [2] (🦣..🦤) mammoth..dodo - {0x1F9A5, 0x1F9AA, prEmojiPresentation}, // E12.0 [6] (🦥..🦪) sloth..oyster - {0x1F9AB, 0x1F9AD, prEmojiPresentation}, // E13.0 [3] (🦫..🦭) beaver..seal - {0x1F9AE, 0x1F9AF, prEmojiPresentation}, // E12.0 [2] (🦮..🦯) guide dog..white cane - {0x1F9B0, 0x1F9B9, prEmojiPresentation}, // E11.0 [10] (🦰..🦹) red hair..supervillain - {0x1F9BA, 0x1F9BF, prEmojiPresentation}, // E12.0 [6] (🦺..🦿) safety vest..mechanical leg - {0x1F9C0, 0x1F9C0, prEmojiPresentation}, // E1.0 [1] (🧀) cheese wedge - {0x1F9C1, 0x1F9C2, prEmojiPresentation}, // E11.0 [2] (🧁..🧂) cupcake..salt - {0x1F9C3, 0x1F9CA, prEmojiPresentation}, // E12.0 [8] (🧃..🧊) beverage box..ice - {0x1F9CB, 0x1F9CB, prEmojiPresentation}, // E13.0 [1] (🧋) bubble tea - {0x1F9CC, 0x1F9CC, prEmojiPresentation}, // E14.0 [1] (🧌) troll - {0x1F9CD, 0x1F9CF, prEmojiPresentation}, // E12.0 [3] (🧍..🧏) person standing..deaf person - {0x1F9D0, 0x1F9E6, prEmojiPresentation}, // E5.0 [23] (🧐..🧦) face with monocle..socks - {0x1F9E7, 0x1F9FF, prEmojiPresentation}, // E11.0 [25] (🧧..🧿) red envelope..nazar amulet - {0x1FA70, 0x1FA73, prEmojiPresentation}, // E12.0 [4] (🩰..🩳) ballet shoes..shorts - {0x1FA74, 0x1FA74, prEmojiPresentation}, // E13.0 [1] (🩴) thong sandal - {0x1FA75, 0x1FA77, prEmojiPresentation}, // E15.0 [3] (🩵..🩷) light blue heart..pink heart - {0x1FA78, 0x1FA7A, prEmojiPresentation}, // E12.0 [3] (🩸..🩺) drop of blood..stethoscope - {0x1FA7B, 0x1FA7C, prEmojiPresentation}, // E14.0 [2] (🩻..🩼) x-ray..crutch - {0x1FA80, 0x1FA82, prEmojiPresentation}, // E12.0 [3] (🪀..🪂) yo-yo..parachute - {0x1FA83, 0x1FA86, prEmojiPresentation}, // E13.0 [4] (🪃..🪆) boomerang..nesting dolls - {0x1FA87, 0x1FA88, prEmojiPresentation}, // E15.0 [2] (🪇..🪈) maracas..flute - {0x1FA90, 0x1FA95, prEmojiPresentation}, // E12.0 [6] (🪐..🪕) ringed planet..banjo - {0x1FA96, 0x1FAA8, prEmojiPresentation}, // E13.0 [19] (🪖..🪨) military helmet..rock - {0x1FAA9, 0x1FAAC, prEmojiPresentation}, // E14.0 [4] (🪩..🪬) mirror ball..hamsa - {0x1FAAD, 0x1FAAF, prEmojiPresentation}, // E15.0 [3] (🪭..🪯) folding hand fan..khanda - {0x1FAB0, 0x1FAB6, prEmojiPresentation}, // E13.0 [7] (🪰..🪶) fly..feather - {0x1FAB7, 0x1FABA, prEmojiPresentation}, // E14.0 [4] (🪷..🪺) lotus..nest with eggs - {0x1FABB, 0x1FABD, prEmojiPresentation}, // E15.0 [3] (🪻..🪽) hyacinth..wing - {0x1FABF, 0x1FABF, prEmojiPresentation}, // E15.0 [1] (🪿) goose - {0x1FAC0, 0x1FAC2, prEmojiPresentation}, // E13.0 [3] (🫀..🫂) anatomical heart..people hugging - {0x1FAC3, 0x1FAC5, prEmojiPresentation}, // E14.0 [3] (🫃..🫅) pregnant man..person with crown - {0x1FACE, 0x1FACF, prEmojiPresentation}, // E15.0 [2] (🫎..🫏) moose..donkey - {0x1FAD0, 0x1FAD6, prEmojiPresentation}, // E13.0 [7] (🫐..🫖) blueberries..teapot - {0x1FAD7, 0x1FAD9, prEmojiPresentation}, // E14.0 [3] (🫗..🫙) pouring liquid..jar - {0x1FADA, 0x1FADB, prEmojiPresentation}, // E15.0 [2] (🫚..🫛) ginger root..pea pod - {0x1FAE0, 0x1FAE7, prEmojiPresentation}, // E14.0 [8] (🫠..🫧) melting face..bubbles - {0x1FAE8, 0x1FAE8, prEmojiPresentation}, // E15.0 [1] (🫨) shaking face - {0x1FAF0, 0x1FAF6, prEmojiPresentation}, // E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands - {0x1FAF7, 0x1FAF8, prEmojiPresentation}, // E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand -} diff --git a/vendor/github.com/rivo/uniseg/gen_breaktest.go b/vendor/github.com/rivo/uniseg/gen_breaktest.go deleted file mode 100644 index 6bfbeb5..0000000 --- a/vendor/github.com/rivo/uniseg/gen_breaktest.go +++ /dev/null @@ -1,215 +0,0 @@ -//go:build generate - -// This program generates a Go containing a slice of test cases based on the -// Unicode Character Database auxiliary data files. The command line arguments -// are as follows: -// -// 1. The name of the Unicode data file (just the filename, without extension). -// 2. The name of the locally generated Go file. -// 3. The name of the slice containing the test cases. -// 4. The name of the generator, for logging purposes. -// -//go:generate go run gen_breaktest.go GraphemeBreakTest graphemebreak_test.go graphemeBreakTestCases graphemes -//go:generate go run gen_breaktest.go WordBreakTest wordbreak_test.go wordBreakTestCases words -//go:generate go run gen_breaktest.go SentenceBreakTest sentencebreak_test.go sentenceBreakTestCases sentences -//go:generate go run gen_breaktest.go LineBreakTest linebreak_test.go lineBreakTestCases lines - -package main - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "go/format" - "io/ioutil" - "log" - "net/http" - "os" - "time" -) - -// We want to test against a specific version rather than the latest. When the -// package is upgraded to a new version, change these to generate new tests. -const ( - testCaseURL = `https://www.unicode.org/Public/15.0.0/ucd/auxiliary/%s.txt` -) - -func main() { - if len(os.Args) < 5 { - fmt.Println("Not enough arguments, see code for details") - os.Exit(1) - } - - log.SetPrefix("gen_breaktest (" + os.Args[4] + "): ") - log.SetFlags(0) - - // Read text of testcases and parse into Go source code. - src, err := parse(fmt.Sprintf(testCaseURL, os.Args[1])) - if err != nil { - log.Fatal(err) - } - - // Format the Go code. - formatted, err := format.Source(src) - if err != nil { - log.Fatalln("gofmt:", err) - } - - // Write it out. - log.Print("Writing to ", os.Args[2]) - if err := ioutil.WriteFile(os.Args[2], formatted, 0644); err != nil { - log.Fatal(err) - } -} - -// parse reads a break text file, either from a local file or from a URL. It -// parses the file data into Go source code representing the test cases. -func parse(url string) ([]byte, error) { - log.Printf("Parsing %s", url) - res, err := http.Get(url) - if err != nil { - return nil, err - } - body := res.Body - defer body.Close() - - buf := new(bytes.Buffer) - buf.Grow(120 << 10) - buf.WriteString(`// Code generated via go generate from gen_breaktest.go. DO NOT EDIT. - -package uniseg - -// ` + os.Args[3] + ` are Grapheme testcases taken from -// ` + url + ` -// on ` + time.Now().Format("January 2, 2006") + `. See -// https://www.unicode.org/license.html for the Unicode license agreement. -var ` + os.Args[3] + ` = []testCase { -`) - - sc := bufio.NewScanner(body) - num := 1 - var line []byte - original := make([]byte, 0, 64) - expected := make([]byte, 0, 64) - for sc.Scan() { - num++ - line = sc.Bytes() - if len(line) == 0 || line[0] == '#' { - continue - } - var comment []byte - if i := bytes.IndexByte(line, '#'); i >= 0 { - comment = bytes.TrimSpace(line[i+1:]) - line = bytes.TrimSpace(line[:i]) - } - original, expected, err := parseRuneSequence(line, original[:0], expected[:0]) - if err != nil { - return nil, fmt.Errorf(`line %d: %v: %q`, num, err, line) - } - fmt.Fprintf(buf, "\t{original: \"%s\", expected: %s}, // %s\n", original, expected, comment) - } - if err := sc.Err(); err != nil { - return nil, err - } - - // Check for final "# EOF", useful check if we're streaming via HTTP - if !bytes.Equal(line, []byte("# EOF")) { - return nil, fmt.Errorf(`line %d: exected "# EOF" as final line, got %q`, num, line) - } - buf.WriteString("}\n") - return buf.Bytes(), nil -} - -// Used by parseRuneSequence to match input via bytes.HasPrefix. -var ( - prefixBreak = []byte("÷ ") - prefixDontBreak = []byte("× ") - breakOk = []byte("÷") - breakNo = []byte("×") -) - -// parseRuneSequence parses a rune + breaking opportunity sequence from b -// and appends the Go code for testcase.original to orig -// and appends the Go code for testcase.expected to exp. -// It retuns the new orig and exp slices. -// -// E.g. for the input b="÷ 0020 × 0308 ÷ 1F1E6 ÷" -// it will append -// -// "\u0020\u0308\U0001F1E6" -// -// and "[][]rune{{0x0020,0x0308},{0x1F1E6},}" -// to orig and exp respectively. -// -// The formatting of exp is expected to be cleaned up by gofmt or format.Source. -// Note we explicitly require the sequence to start with ÷ and we implicitly -// require it to end with ÷. -func parseRuneSequence(b, orig, exp []byte) ([]byte, []byte, error) { - // Check for and remove first ÷ or ×. - if !bytes.HasPrefix(b, prefixBreak) && !bytes.HasPrefix(b, prefixDontBreak) { - return nil, nil, errors.New("expected ÷ or × as first character") - } - if bytes.HasPrefix(b, prefixBreak) { - b = b[len(prefixBreak):] - } else { - b = b[len(prefixDontBreak):] - } - - boundary := true - exp = append(exp, "[][]rune{"...) - for len(b) > 0 { - if boundary { - exp = append(exp, '{') - } - exp = append(exp, "0x"...) - // Find end of hex digits. - var i int - for i = 0; i < len(b) && b[i] != ' '; i++ { - if d := b[i]; ('0' <= d || d <= '9') || - ('A' <= d || d <= 'F') || - ('a' <= d || d <= 'f') { - continue - } - return nil, nil, errors.New("bad hex digit") - } - switch i { - case 4: - orig = append(orig, "\\u"...) - case 5: - orig = append(orig, "\\U000"...) - default: - return nil, nil, errors.New("unsupport code point hex length") - } - orig = append(orig, b[:i]...) - exp = append(exp, b[:i]...) - b = b[i:] - - // Check for space between hex and ÷ or ×. - if len(b) < 1 || b[0] != ' ' { - return nil, nil, errors.New("bad input") - } - b = b[1:] - - // Check for next boundary. - switch { - case bytes.HasPrefix(b, breakOk): - boundary = true - b = b[len(breakOk):] - case bytes.HasPrefix(b, breakNo): - boundary = false - b = b[len(breakNo):] - default: - return nil, nil, errors.New("missing ÷ or ×") - } - if boundary { - exp = append(exp, '}') - } - exp = append(exp, ',') - if len(b) > 0 && b[0] == ' ' { - b = b[1:] - } - } - exp = append(exp, '}') - return orig, exp, nil -} diff --git a/vendor/github.com/rivo/uniseg/gen_properties.go b/vendor/github.com/rivo/uniseg/gen_properties.go deleted file mode 100644 index 8992d2c..0000000 --- a/vendor/github.com/rivo/uniseg/gen_properties.go +++ /dev/null @@ -1,261 +0,0 @@ -//go:build generate - -// This program generates a property file in Go file from Unicode Character -// Database auxiliary data files. The command line arguments are as follows: -// -// 1. The name of the Unicode data file (just the filename, without extension). -// Can be "-" (to skip) if the emoji flag is included. -// 2. The name of the locally generated Go file. -// 3. The name of the slice mapping code points to properties. -// 4. The name of the generator, for logging purposes. -// 5. (Optional) Flags, comma-separated. The following flags are available: -// - "emojis=": include the specified emoji properties (e.g. -// "Extended_Pictographic"). -// - "gencat": include general category properties. -// -//go:generate go run gen_properties.go auxiliary/GraphemeBreakProperty graphemeproperties.go graphemeCodePoints graphemes emojis=Extended_Pictographic -//go:generate go run gen_properties.go auxiliary/WordBreakProperty wordproperties.go workBreakCodePoints words emojis=Extended_Pictographic -//go:generate go run gen_properties.go auxiliary/SentenceBreakProperty sentenceproperties.go sentenceBreakCodePoints sentences -//go:generate go run gen_properties.go LineBreak lineproperties.go lineBreakCodePoints lines gencat -//go:generate go run gen_properties.go EastAsianWidth eastasianwidth.go eastAsianWidth eastasianwidth -//go:generate go run gen_properties.go - emojipresentation.go emojiPresentation emojipresentation emojis=Emoji_Presentation -package main - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "go/format" - "io/ioutil" - "log" - "net/http" - "os" - "regexp" - "sort" - "strconv" - "strings" - "time" -) - -// We want to test against a specific version rather than the latest. When the -// package is upgraded to a new version, change these to generate new tests. -const ( - propertyURL = `https://www.unicode.org/Public/15.0.0/ucd/%s.txt` - emojiURL = `https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt` -) - -// The regular expression for a line containing a code point range property. -var propertyPattern = regexp.MustCompile(`^([0-9A-F]{4,6})(\.\.([0-9A-F]{4,6}))?\s*;\s*([A-Za-z0-9_]+)\s*#\s(.+)$`) - -func main() { - if len(os.Args) < 5 { - fmt.Println("Not enough arguments, see code for details") - os.Exit(1) - } - - log.SetPrefix("gen_properties (" + os.Args[4] + "): ") - log.SetFlags(0) - - // Parse flags. - flags := make(map[string]string) - if len(os.Args) >= 6 { - for _, flag := range strings.Split(os.Args[5], ",") { - flagFields := strings.Split(flag, "=") - if len(flagFields) == 1 { - flags[flagFields[0]] = "yes" - } else { - flags[flagFields[0]] = flagFields[1] - } - } - } - - // Parse the text file and generate Go source code from it. - _, includeGeneralCategory := flags["gencat"] - var mainURL string - if os.Args[1] != "-" { - mainURL = fmt.Sprintf(propertyURL, os.Args[1]) - } - src, err := parse(mainURL, flags["emojis"], includeGeneralCategory) - if err != nil { - log.Fatal(err) - } - - // Format the Go code. - formatted, err := format.Source([]byte(src)) - if err != nil { - log.Fatal("gofmt:", err) - } - - // Save it to the (local) target file. - log.Print("Writing to ", os.Args[2]) - if err := ioutil.WriteFile(os.Args[2], formatted, 0644); err != nil { - log.Fatal(err) - } -} - -// parse parses the Unicode Properties text files located at the given URLs and -// returns their equivalent Go source code to be used in the uniseg package. If -// "emojiProperty" is not an empty string, emoji code points for that emoji -// property (e.g. "Extended_Pictographic") will be included. In those cases, you -// may pass an empty "propertyURL" to skip parsing the main properties file. If -// "includeGeneralCategory" is true, the Unicode General Category property will -// be extracted from the comments and included in the output. -func parse(propertyURL, emojiProperty string, includeGeneralCategory bool) (string, error) { - if propertyURL == "" && emojiProperty == "" { - return "", errors.New("no properties to parse") - } - - // Temporary buffer to hold properties. - var properties [][4]string - - // Open the first URL. - if propertyURL != "" { - log.Printf("Parsing %s", propertyURL) - res, err := http.Get(propertyURL) - if err != nil { - return "", err - } - in1 := res.Body - defer in1.Close() - - // Parse it. - scanner := bufio.NewScanner(in1) - num := 0 - for scanner.Scan() { - num++ - line := strings.TrimSpace(scanner.Text()) - - // Skip comments and empty lines. - if strings.HasPrefix(line, "#") || line == "" { - continue - } - - // Everything else must be a code point range, a property and a comment. - from, to, property, comment, err := parseProperty(line) - if err != nil { - return "", fmt.Errorf("%s line %d: %v", os.Args[4], num, err) - } - properties = append(properties, [4]string{from, to, property, comment}) - } - if err := scanner.Err(); err != nil { - return "", err - } - } - - // Open the second URL. - if emojiProperty != "" { - log.Printf("Parsing %s", emojiURL) - res, err := http.Get(emojiURL) - if err != nil { - return "", err - } - in2 := res.Body - defer in2.Close() - - // Parse it. - scanner := bufio.NewScanner(in2) - num := 0 - for scanner.Scan() { - num++ - line := scanner.Text() - - // Skip comments, empty lines, and everything not containing - // "Extended_Pictographic". - if strings.HasPrefix(line, "#") || line == "" || !strings.Contains(line, emojiProperty) { - continue - } - - // Everything else must be a code point range, a property and a comment. - from, to, property, comment, err := parseProperty(line) - if err != nil { - return "", fmt.Errorf("emojis line %d: %v", num, err) - } - properties = append(properties, [4]string{from, to, property, comment}) - } - if err := scanner.Err(); err != nil { - return "", err - } - } - - // Avoid overflow during binary search. - if len(properties) >= 1<<31 { - return "", errors.New("too many properties") - } - - // Sort properties. - sort.Slice(properties, func(i, j int) bool { - left, _ := strconv.ParseUint(properties[i][0], 16, 64) - right, _ := strconv.ParseUint(properties[j][0], 16, 64) - return left < right - }) - - // Header. - var ( - buf bytes.Buffer - emojiComment string - ) - columns := 3 - if includeGeneralCategory { - columns = 4 - } - if emojiURL != "" { - emojiComment = ` -// and -// ` + emojiURL + ` -// ("Extended_Pictographic" only)` - } - buf.WriteString(`// Code generated via go generate from gen_properties.go. DO NOT EDIT. - -package uniseg - -// ` + os.Args[3] + ` are taken from -// ` + propertyURL + emojiComment + ` -// on ` + time.Now().Format("January 2, 2006") + `. See https://www.unicode.org/license.html for the Unicode -// license agreement. -var ` + os.Args[3] + ` = [][` + strconv.Itoa(columns) + `]int{ - `) - - // Properties. - for _, prop := range properties { - if includeGeneralCategory { - generalCategory := "gc" + prop[3][:2] - if generalCategory == "gcL&" { - generalCategory = "gcLC" - } - prop[3] = prop[3][3:] - fmt.Fprintf(&buf, "{0x%s,0x%s,%s,%s}, // %s\n", prop[0], prop[1], translateProperty("pr", prop[2]), generalCategory, prop[3]) - } else { - fmt.Fprintf(&buf, "{0x%s,0x%s,%s}, // %s\n", prop[0], prop[1], translateProperty("pr", prop[2]), prop[3]) - } - } - - // Tail. - buf.WriteString("}") - - return buf.String(), nil -} - -// parseProperty parses a line of the Unicode properties text file containing a -// property for a code point range and returns it along with its comment. -func parseProperty(line string) (from, to, property, comment string, err error) { - fields := propertyPattern.FindStringSubmatch(line) - if fields == nil { - err = errors.New("no property found") - return - } - from = fields[1] - to = fields[3] - if to == "" { - to = from - } - property = fields[4] - comment = fields[5] - return -} - -// translateProperty translates a property name as used in the Unicode data file -// to a variable used in the Go code. -func translateProperty(prefix, property string) string { - return prefix + strings.ReplaceAll(property, "_", "") -} diff --git a/vendor/github.com/rivo/uniseg/grapheme.go b/vendor/github.com/rivo/uniseg/grapheme.go deleted file mode 100644 index b12403d..0000000 --- a/vendor/github.com/rivo/uniseg/grapheme.go +++ /dev/null @@ -1,331 +0,0 @@ -package uniseg - -import "unicode/utf8" - -// Graphemes implements an iterator over Unicode grapheme clusters, or -// user-perceived characters. While iterating, it also provides information -// about word boundaries, sentence boundaries, line breaks, and monospace -// character widths. -// -// After constructing the class via [NewGraphemes] for a given string "str", -// [Graphemes.Next] is called for every grapheme cluster in a loop until it -// returns false. Inside the loop, information about the grapheme cluster as -// well as boundary information and character width is available via the various -// methods (see examples below). -// -// This class basically wraps the [StepString] parser and provides a convenient -// interface to it. If you are only interested in some parts of this package's -// functionality, using the specialized functions starting with "First" is -// almost always faster. -type Graphemes struct { - // The original string. - original string - - // The remaining string to be parsed. - remaining string - - // The current grapheme cluster. - cluster string - - // The byte offset of the current grapheme cluster relative to the original - // string. - offset int - - // The current boundary information of the [Step] parser. - boundaries int - - // The current state of the [Step] parser. - state int -} - -// NewGraphemes returns a new grapheme cluster iterator. -func NewGraphemes(str string) *Graphemes { - return &Graphemes{ - original: str, - remaining: str, - state: -1, - } -} - -// Next advances the iterator by one grapheme cluster and returns false if no -// clusters are left. This function must be called before the first cluster is -// accessed. -func (g *Graphemes) Next() bool { - if len(g.remaining) == 0 { - // We're already past the end. - g.state = -2 - g.cluster = "" - return false - } - g.offset += len(g.cluster) - g.cluster, g.remaining, g.boundaries, g.state = StepString(g.remaining, g.state) - return true -} - -// Runes returns a slice of runes (code points) which corresponds to the current -// grapheme cluster. If the iterator is already past the end or [Graphemes.Next] -// has not yet been called, nil is returned. -func (g *Graphemes) Runes() []rune { - if g.state < 0 { - return nil - } - return []rune(g.cluster) -} - -// Str returns a substring of the original string which corresponds to the -// current grapheme cluster. If the iterator is already past the end or -// [Graphemes.Next] has not yet been called, an empty string is returned. -func (g *Graphemes) Str() string { - return g.cluster -} - -// Bytes returns a byte slice which corresponds to the current grapheme cluster. -// If the iterator is already past the end or [Graphemes.Next] has not yet been -// called, nil is returned. -func (g *Graphemes) Bytes() []byte { - if g.state < 0 { - return nil - } - return []byte(g.cluster) -} - -// Positions returns the interval of the current grapheme cluster as byte -// positions into the original string. The first returned value "from" indexes -// the first byte and the second returned value "to" indexes the first byte that -// is not included anymore, i.e. str[from:to] is the current grapheme cluster of -// the original string "str". If [Graphemes.Next] has not yet been called, both -// values are 0. If the iterator is already past the end, both values are 1. -func (g *Graphemes) Positions() (int, int) { - if g.state == -1 { - return 0, 0 - } else if g.state == -2 { - return 1, 1 - } - return g.offset, g.offset + len(g.cluster) -} - -// IsWordBoundary returns true if a word ends after the current grapheme -// cluster. -func (g *Graphemes) IsWordBoundary() bool { - if g.state < 0 { - return true - } - return g.boundaries&MaskWord != 0 -} - -// IsSentenceBoundary returns true if a sentence ends after the current -// grapheme cluster. -func (g *Graphemes) IsSentenceBoundary() bool { - if g.state < 0 { - return true - } - return g.boundaries&MaskSentence != 0 -} - -// LineBreak returns whether the line can be broken after the current grapheme -// cluster. A value of [LineDontBreak] means the line may not be broken, a value -// of [LineMustBreak] means the line must be broken, and a value of -// [LineCanBreak] means the line may or may not be broken. -func (g *Graphemes) LineBreak() int { - if g.state == -1 { - return LineDontBreak - } - if g.state == -2 { - return LineMustBreak - } - return g.boundaries & MaskLine -} - -// Width returns the monospace width of the current grapheme cluster. -func (g *Graphemes) Width() int { - if g.state < 0 { - return 0 - } - return g.boundaries >> ShiftWidth -} - -// Reset puts the iterator into its initial state such that the next call to -// [Graphemes.Next] sets it to the first grapheme cluster again. -func (g *Graphemes) Reset() { - g.state = -1 - g.offset = 0 - g.cluster = "" - g.remaining = g.original -} - -// GraphemeClusterCount returns the number of user-perceived characters -// (grapheme clusters) for the given string. -func GraphemeClusterCount(s string) (n int) { - state := -1 - for len(s) > 0 { - _, s, _, state = FirstGraphemeClusterInString(s, state) - n++ - } - return -} - -// ReverseString reverses the given string while observing grapheme cluster -// boundaries. -func ReverseString(s string) string { - str := []byte(s) - reversed := make([]byte, len(str)) - state := -1 - index := len(str) - for len(str) > 0 { - var cluster []byte - cluster, str, _, state = FirstGraphemeCluster(str, state) - index -= len(cluster) - copy(reversed[index:], cluster) - if index <= len(str)/2 { - break - } - } - return string(reversed) -} - -// The number of bits the grapheme property must be shifted to make place for -// grapheme states. -const shiftGraphemePropState = 4 - -// FirstGraphemeCluster returns the first grapheme cluster found in the given -// byte slice according to the rules of [Unicode Standard Annex #29, Grapheme -// Cluster Boundaries]. This function can be called continuously to extract all -// grapheme clusters from a byte slice, as illustrated in the example below. -// -// If you don't know the current state, for example when calling the function -// for the first time, you must pass -1. For consecutive calls, pass the state -// and rest slice returned by the previous call. -// -// The "rest" slice is the sub-slice of the original byte slice "b" starting -// after the last byte of the identified grapheme cluster. If the length of the -// "rest" slice is 0, the entire byte slice "b" has been processed. The -// "cluster" byte slice is the sub-slice of the input slice containing the -// identified grapheme cluster. -// -// The returned width is the width of the grapheme cluster for most monospace -// fonts where a value of 1 represents one character cell. -// -// Given an empty byte slice "b", the function returns nil values. -// -// While slightly less convenient than using the Graphemes class, this function -// has much better performance and makes no allocations. It lends itself well to -// large byte slices. -// -// [Unicode Standard Annex #29, Grapheme Cluster Boundaries]: http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries -func FirstGraphemeCluster(b []byte, state int) (cluster, rest []byte, width, newState int) { - // An empty byte slice returns nothing. - if len(b) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRune(b) - if len(b) <= length { // If we're already past the end, there is nothing else to parse. - var prop int - if state < 0 { - prop = propertyGraphemes(r) - } else { - prop = state >> shiftGraphemePropState - } - return b, nil, runeWidth(r, prop), grAny | (prop << shiftGraphemePropState) - } - - // If we don't know the state, determine it now. - var firstProp int - if state < 0 { - state, firstProp, _ = transitionGraphemeState(state, r) - } else { - firstProp = state >> shiftGraphemePropState - } - width += runeWidth(r, firstProp) - - // Transition until we find a boundary. - for { - var ( - prop int - boundary bool - ) - - r, l := utf8.DecodeRune(b[length:]) - state, prop, boundary = transitionGraphemeState(state&maskGraphemeState, r) - - if boundary { - return b[:length], b[length:], width, state | (prop << shiftGraphemePropState) - } - - if firstProp == prExtendedPictographic { - if r == vs15 { - width = 1 - } else if r == vs16 { - width = 2 - } - } else if firstProp != prRegionalIndicator && firstProp != prL { - width += runeWidth(r, prop) - } - - length += l - if len(b) <= length { - return b, nil, width, grAny | (prop << shiftGraphemePropState) - } - } -} - -// FirstGraphemeClusterInString is like [FirstGraphemeCluster] but its input and -// outputs are strings. -func FirstGraphemeClusterInString(str string, state int) (cluster, rest string, width, newState int) { - // An empty string returns nothing. - if len(str) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRuneInString(str) - if len(str) <= length { // If we're already past the end, there is nothing else to parse. - var prop int - if state < 0 { - prop = propertyGraphemes(r) - } else { - prop = state >> shiftGraphemePropState - } - return str, "", runeWidth(r, prop), grAny | (prop << shiftGraphemePropState) - } - - // If we don't know the state, determine it now. - var firstProp int - if state < 0 { - state, firstProp, _ = transitionGraphemeState(state, r) - } else { - firstProp = state >> shiftGraphemePropState - } - width += runeWidth(r, firstProp) - - // Transition until we find a boundary. - for { - var ( - prop int - boundary bool - ) - - r, l := utf8.DecodeRuneInString(str[length:]) - state, prop, boundary = transitionGraphemeState(state&maskGraphemeState, r) - - if boundary { - return str[:length], str[length:], width, state | (prop << shiftGraphemePropState) - } - - if firstProp == prExtendedPictographic { - if r == vs15 { - width = 1 - } else if r == vs16 { - width = 2 - } - } else if firstProp != prRegionalIndicator && firstProp != prL { - width += runeWidth(r, prop) - } - - length += l - if len(str) <= length { - return str, "", width, grAny | (prop << shiftGraphemePropState) - } - } -} diff --git a/vendor/github.com/rivo/uniseg/graphemeproperties.go b/vendor/github.com/rivo/uniseg/graphemeproperties.go deleted file mode 100644 index 0aff4a6..0000000 --- a/vendor/github.com/rivo/uniseg/graphemeproperties.go +++ /dev/null @@ -1,1915 +0,0 @@ -// Code generated via go generate from gen_properties.go. DO NOT EDIT. - -package uniseg - -// graphemeCodePoints are taken from -// https://www.unicode.org/Public/15.0.0/ucd/auxiliary/GraphemeBreakProperty.txt -// and -// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt -// ("Extended_Pictographic" only) -// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode -// license agreement. -var graphemeCodePoints = [][3]int{ - {0x0000, 0x0009, prControl}, // Cc [10] .. - {0x000A, 0x000A, prLF}, // Cc - {0x000B, 0x000C, prControl}, // Cc [2] .. - {0x000D, 0x000D, prCR}, // Cc - {0x000E, 0x001F, prControl}, // Cc [18] .. - {0x007F, 0x009F, prControl}, // Cc [33] .. - {0x00A9, 0x00A9, prExtendedPictographic}, // E0.6 [1] (©️) copyright - {0x00AD, 0x00AD, prControl}, // Cf SOFT HYPHEN - {0x00AE, 0x00AE, prExtendedPictographic}, // E0.6 [1] (®️) registered - {0x0300, 0x036F, prExtend}, // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X - {0x0483, 0x0487, prExtend}, // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE - {0x0488, 0x0489, prExtend}, // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN - {0x0591, 0x05BD, prExtend}, // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG - {0x05BF, 0x05BF, prExtend}, // Mn HEBREW POINT RAFE - {0x05C1, 0x05C2, prExtend}, // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT - {0x05C4, 0x05C5, prExtend}, // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT - {0x05C7, 0x05C7, prExtend}, // Mn HEBREW POINT QAMATS QATAN - {0x0600, 0x0605, prPrepend}, // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE - {0x0610, 0x061A, prExtend}, // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA - {0x061C, 0x061C, prControl}, // Cf ARABIC LETTER MARK - {0x064B, 0x065F, prExtend}, // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW - {0x0670, 0x0670, prExtend}, // Mn ARABIC LETTER SUPERSCRIPT ALEF - {0x06D6, 0x06DC, prExtend}, // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN - {0x06DD, 0x06DD, prPrepend}, // Cf ARABIC END OF AYAH - {0x06DF, 0x06E4, prExtend}, // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA - {0x06E7, 0x06E8, prExtend}, // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON - {0x06EA, 0x06ED, prExtend}, // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM - {0x070F, 0x070F, prPrepend}, // Cf SYRIAC ABBREVIATION MARK - {0x0711, 0x0711, prExtend}, // Mn SYRIAC LETTER SUPERSCRIPT ALAPH - {0x0730, 0x074A, prExtend}, // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH - {0x07A6, 0x07B0, prExtend}, // Mn [11] THAANA ABAFILI..THAANA SUKUN - {0x07EB, 0x07F3, prExtend}, // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE - {0x07FD, 0x07FD, prExtend}, // Mn NKO DANTAYALAN - {0x0816, 0x0819, prExtend}, // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH - {0x081B, 0x0823, prExtend}, // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A - {0x0825, 0x0827, prExtend}, // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U - {0x0829, 0x082D, prExtend}, // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA - {0x0859, 0x085B, prExtend}, // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK - {0x0890, 0x0891, prPrepend}, // Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE - {0x0898, 0x089F, prExtend}, // Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA - {0x08CA, 0x08E1, prExtend}, // Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA - {0x08E2, 0x08E2, prPrepend}, // Cf ARABIC DISPUTED END OF AYAH - {0x08E3, 0x0902, prExtend}, // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA - {0x0903, 0x0903, prSpacingMark}, // Mc DEVANAGARI SIGN VISARGA - {0x093A, 0x093A, prExtend}, // Mn DEVANAGARI VOWEL SIGN OE - {0x093B, 0x093B, prSpacingMark}, // Mc DEVANAGARI VOWEL SIGN OOE - {0x093C, 0x093C, prExtend}, // Mn DEVANAGARI SIGN NUKTA - {0x093E, 0x0940, prSpacingMark}, // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II - {0x0941, 0x0948, prExtend}, // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI - {0x0949, 0x094C, prSpacingMark}, // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU - {0x094D, 0x094D, prExtend}, // Mn DEVANAGARI SIGN VIRAMA - {0x094E, 0x094F, prSpacingMark}, // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW - {0x0951, 0x0957, prExtend}, // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE - {0x0962, 0x0963, prExtend}, // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL - {0x0981, 0x0981, prExtend}, // Mn BENGALI SIGN CANDRABINDU - {0x0982, 0x0983, prSpacingMark}, // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA - {0x09BC, 0x09BC, prExtend}, // Mn BENGALI SIGN NUKTA - {0x09BE, 0x09BE, prExtend}, // Mc BENGALI VOWEL SIGN AA - {0x09BF, 0x09C0, prSpacingMark}, // Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II - {0x09C1, 0x09C4, prExtend}, // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR - {0x09C7, 0x09C8, prSpacingMark}, // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI - {0x09CB, 0x09CC, prSpacingMark}, // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU - {0x09CD, 0x09CD, prExtend}, // Mn BENGALI SIGN VIRAMA - {0x09D7, 0x09D7, prExtend}, // Mc BENGALI AU LENGTH MARK - {0x09E2, 0x09E3, prExtend}, // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL - {0x09FE, 0x09FE, prExtend}, // Mn BENGALI SANDHI MARK - {0x0A01, 0x0A02, prExtend}, // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI - {0x0A03, 0x0A03, prSpacingMark}, // Mc GURMUKHI SIGN VISARGA - {0x0A3C, 0x0A3C, prExtend}, // Mn GURMUKHI SIGN NUKTA - {0x0A3E, 0x0A40, prSpacingMark}, // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II - {0x0A41, 0x0A42, prExtend}, // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU - {0x0A47, 0x0A48, prExtend}, // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI - {0x0A4B, 0x0A4D, prExtend}, // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA - {0x0A51, 0x0A51, prExtend}, // Mn GURMUKHI SIGN UDAAT - {0x0A70, 0x0A71, prExtend}, // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK - {0x0A75, 0x0A75, prExtend}, // Mn GURMUKHI SIGN YAKASH - {0x0A81, 0x0A82, prExtend}, // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA - {0x0A83, 0x0A83, prSpacingMark}, // Mc GUJARATI SIGN VISARGA - {0x0ABC, 0x0ABC, prExtend}, // Mn GUJARATI SIGN NUKTA - {0x0ABE, 0x0AC0, prSpacingMark}, // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II - {0x0AC1, 0x0AC5, prExtend}, // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E - {0x0AC7, 0x0AC8, prExtend}, // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI - {0x0AC9, 0x0AC9, prSpacingMark}, // Mc GUJARATI VOWEL SIGN CANDRA O - {0x0ACB, 0x0ACC, prSpacingMark}, // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU - {0x0ACD, 0x0ACD, prExtend}, // Mn GUJARATI SIGN VIRAMA - {0x0AE2, 0x0AE3, prExtend}, // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL - {0x0AFA, 0x0AFF, prExtend}, // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE - {0x0B01, 0x0B01, prExtend}, // Mn ORIYA SIGN CANDRABINDU - {0x0B02, 0x0B03, prSpacingMark}, // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA - {0x0B3C, 0x0B3C, prExtend}, // Mn ORIYA SIGN NUKTA - {0x0B3E, 0x0B3E, prExtend}, // Mc ORIYA VOWEL SIGN AA - {0x0B3F, 0x0B3F, prExtend}, // Mn ORIYA VOWEL SIGN I - {0x0B40, 0x0B40, prSpacingMark}, // Mc ORIYA VOWEL SIGN II - {0x0B41, 0x0B44, prExtend}, // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR - {0x0B47, 0x0B48, prSpacingMark}, // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI - {0x0B4B, 0x0B4C, prSpacingMark}, // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU - {0x0B4D, 0x0B4D, prExtend}, // Mn ORIYA SIGN VIRAMA - {0x0B55, 0x0B56, prExtend}, // Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK - {0x0B57, 0x0B57, prExtend}, // Mc ORIYA AU LENGTH MARK - {0x0B62, 0x0B63, prExtend}, // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL - {0x0B82, 0x0B82, prExtend}, // Mn TAMIL SIGN ANUSVARA - {0x0BBE, 0x0BBE, prExtend}, // Mc TAMIL VOWEL SIGN AA - {0x0BBF, 0x0BBF, prSpacingMark}, // Mc TAMIL VOWEL SIGN I - {0x0BC0, 0x0BC0, prExtend}, // Mn TAMIL VOWEL SIGN II - {0x0BC1, 0x0BC2, prSpacingMark}, // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU - {0x0BC6, 0x0BC8, prSpacingMark}, // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI - {0x0BCA, 0x0BCC, prSpacingMark}, // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU - {0x0BCD, 0x0BCD, prExtend}, // Mn TAMIL SIGN VIRAMA - {0x0BD7, 0x0BD7, prExtend}, // Mc TAMIL AU LENGTH MARK - {0x0C00, 0x0C00, prExtend}, // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE - {0x0C01, 0x0C03, prSpacingMark}, // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA - {0x0C04, 0x0C04, prExtend}, // Mn TELUGU SIGN COMBINING ANUSVARA ABOVE - {0x0C3C, 0x0C3C, prExtend}, // Mn TELUGU SIGN NUKTA - {0x0C3E, 0x0C40, prExtend}, // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II - {0x0C41, 0x0C44, prSpacingMark}, // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR - {0x0C46, 0x0C48, prExtend}, // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI - {0x0C4A, 0x0C4D, prExtend}, // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA - {0x0C55, 0x0C56, prExtend}, // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK - {0x0C62, 0x0C63, prExtend}, // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL - {0x0C81, 0x0C81, prExtend}, // Mn KANNADA SIGN CANDRABINDU - {0x0C82, 0x0C83, prSpacingMark}, // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA - {0x0CBC, 0x0CBC, prExtend}, // Mn KANNADA SIGN NUKTA - {0x0CBE, 0x0CBE, prSpacingMark}, // Mc KANNADA VOWEL SIGN AA - {0x0CBF, 0x0CBF, prExtend}, // Mn KANNADA VOWEL SIGN I - {0x0CC0, 0x0CC1, prSpacingMark}, // Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U - {0x0CC2, 0x0CC2, prExtend}, // Mc KANNADA VOWEL SIGN UU - {0x0CC3, 0x0CC4, prSpacingMark}, // Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR - {0x0CC6, 0x0CC6, prExtend}, // Mn KANNADA VOWEL SIGN E - {0x0CC7, 0x0CC8, prSpacingMark}, // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI - {0x0CCA, 0x0CCB, prSpacingMark}, // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO - {0x0CCC, 0x0CCD, prExtend}, // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA - {0x0CD5, 0x0CD6, prExtend}, // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK - {0x0CE2, 0x0CE3, prExtend}, // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL - {0x0CF3, 0x0CF3, prSpacingMark}, // Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT - {0x0D00, 0x0D01, prExtend}, // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU - {0x0D02, 0x0D03, prSpacingMark}, // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA - {0x0D3B, 0x0D3C, prExtend}, // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA - {0x0D3E, 0x0D3E, prExtend}, // Mc MALAYALAM VOWEL SIGN AA - {0x0D3F, 0x0D40, prSpacingMark}, // Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II - {0x0D41, 0x0D44, prExtend}, // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR - {0x0D46, 0x0D48, prSpacingMark}, // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI - {0x0D4A, 0x0D4C, prSpacingMark}, // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU - {0x0D4D, 0x0D4D, prExtend}, // Mn MALAYALAM SIGN VIRAMA - {0x0D4E, 0x0D4E, prPrepend}, // Lo MALAYALAM LETTER DOT REPH - {0x0D57, 0x0D57, prExtend}, // Mc MALAYALAM AU LENGTH MARK - {0x0D62, 0x0D63, prExtend}, // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL - {0x0D81, 0x0D81, prExtend}, // Mn SINHALA SIGN CANDRABINDU - {0x0D82, 0x0D83, prSpacingMark}, // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA - {0x0DCA, 0x0DCA, prExtend}, // Mn SINHALA SIGN AL-LAKUNA - {0x0DCF, 0x0DCF, prExtend}, // Mc SINHALA VOWEL SIGN AELA-PILLA - {0x0DD0, 0x0DD1, prSpacingMark}, // Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA - {0x0DD2, 0x0DD4, prExtend}, // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA - {0x0DD6, 0x0DD6, prExtend}, // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA - {0x0DD8, 0x0DDE, prSpacingMark}, // Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA - {0x0DDF, 0x0DDF, prExtend}, // Mc SINHALA VOWEL SIGN GAYANUKITTA - {0x0DF2, 0x0DF3, prSpacingMark}, // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA - {0x0E31, 0x0E31, prExtend}, // Mn THAI CHARACTER MAI HAN-AKAT - {0x0E33, 0x0E33, prSpacingMark}, // Lo THAI CHARACTER SARA AM - {0x0E34, 0x0E3A, prExtend}, // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU - {0x0E47, 0x0E4E, prExtend}, // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN - {0x0EB1, 0x0EB1, prExtend}, // Mn LAO VOWEL SIGN MAI KAN - {0x0EB3, 0x0EB3, prSpacingMark}, // Lo LAO VOWEL SIGN AM - {0x0EB4, 0x0EBC, prExtend}, // Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO - {0x0EC8, 0x0ECE, prExtend}, // Mn [7] LAO TONE MAI EK..LAO YAMAKKAN - {0x0F18, 0x0F19, prExtend}, // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS - {0x0F35, 0x0F35, prExtend}, // Mn TIBETAN MARK NGAS BZUNG NYI ZLA - {0x0F37, 0x0F37, prExtend}, // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS - {0x0F39, 0x0F39, prExtend}, // Mn TIBETAN MARK TSA -PHRU - {0x0F3E, 0x0F3F, prSpacingMark}, // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES - {0x0F71, 0x0F7E, prExtend}, // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO - {0x0F7F, 0x0F7F, prSpacingMark}, // Mc TIBETAN SIGN RNAM BCAD - {0x0F80, 0x0F84, prExtend}, // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA - {0x0F86, 0x0F87, prExtend}, // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS - {0x0F8D, 0x0F97, prExtend}, // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA - {0x0F99, 0x0FBC, prExtend}, // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA - {0x0FC6, 0x0FC6, prExtend}, // Mn TIBETAN SYMBOL PADMA GDAN - {0x102D, 0x1030, prExtend}, // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU - {0x1031, 0x1031, prSpacingMark}, // Mc MYANMAR VOWEL SIGN E - {0x1032, 0x1037, prExtend}, // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW - {0x1039, 0x103A, prExtend}, // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT - {0x103B, 0x103C, prSpacingMark}, // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA - {0x103D, 0x103E, prExtend}, // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA - {0x1056, 0x1057, prSpacingMark}, // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR - {0x1058, 0x1059, prExtend}, // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL - {0x105E, 0x1060, prExtend}, // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA - {0x1071, 0x1074, prExtend}, // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE - {0x1082, 0x1082, prExtend}, // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA - {0x1084, 0x1084, prSpacingMark}, // Mc MYANMAR VOWEL SIGN SHAN E - {0x1085, 0x1086, prExtend}, // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y - {0x108D, 0x108D, prExtend}, // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE - {0x109D, 0x109D, prExtend}, // Mn MYANMAR VOWEL SIGN AITON AI - {0x1100, 0x115F, prL}, // Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER - {0x1160, 0x11A7, prV}, // Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE - {0x11A8, 0x11FF, prT}, // Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN - {0x135D, 0x135F, prExtend}, // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK - {0x1712, 0x1714, prExtend}, // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA - {0x1715, 0x1715, prSpacingMark}, // Mc TAGALOG SIGN PAMUDPOD - {0x1732, 0x1733, prExtend}, // Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U - {0x1734, 0x1734, prSpacingMark}, // Mc HANUNOO SIGN PAMUDPOD - {0x1752, 0x1753, prExtend}, // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U - {0x1772, 0x1773, prExtend}, // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U - {0x17B4, 0x17B5, prExtend}, // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA - {0x17B6, 0x17B6, prSpacingMark}, // Mc KHMER VOWEL SIGN AA - {0x17B7, 0x17BD, prExtend}, // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA - {0x17BE, 0x17C5, prSpacingMark}, // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU - {0x17C6, 0x17C6, prExtend}, // Mn KHMER SIGN NIKAHIT - {0x17C7, 0x17C8, prSpacingMark}, // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU - {0x17C9, 0x17D3, prExtend}, // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT - {0x17DD, 0x17DD, prExtend}, // Mn KHMER SIGN ATTHACAN - {0x180B, 0x180D, prExtend}, // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE - {0x180E, 0x180E, prControl}, // Cf MONGOLIAN VOWEL SEPARATOR - {0x180F, 0x180F, prExtend}, // Mn MONGOLIAN FREE VARIATION SELECTOR FOUR - {0x1885, 0x1886, prExtend}, // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA - {0x18A9, 0x18A9, prExtend}, // Mn MONGOLIAN LETTER ALI GALI DAGALGA - {0x1920, 0x1922, prExtend}, // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U - {0x1923, 0x1926, prSpacingMark}, // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU - {0x1927, 0x1928, prExtend}, // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O - {0x1929, 0x192B, prSpacingMark}, // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA - {0x1930, 0x1931, prSpacingMark}, // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA - {0x1932, 0x1932, prExtend}, // Mn LIMBU SMALL LETTER ANUSVARA - {0x1933, 0x1938, prSpacingMark}, // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA - {0x1939, 0x193B, prExtend}, // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I - {0x1A17, 0x1A18, prExtend}, // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U - {0x1A19, 0x1A1A, prSpacingMark}, // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O - {0x1A1B, 0x1A1B, prExtend}, // Mn BUGINESE VOWEL SIGN AE - {0x1A55, 0x1A55, prSpacingMark}, // Mc TAI THAM CONSONANT SIGN MEDIAL RA - {0x1A56, 0x1A56, prExtend}, // Mn TAI THAM CONSONANT SIGN MEDIAL LA - {0x1A57, 0x1A57, prSpacingMark}, // Mc TAI THAM CONSONANT SIGN LA TANG LAI - {0x1A58, 0x1A5E, prExtend}, // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA - {0x1A60, 0x1A60, prExtend}, // Mn TAI THAM SIGN SAKOT - {0x1A62, 0x1A62, prExtend}, // Mn TAI THAM VOWEL SIGN MAI SAT - {0x1A65, 0x1A6C, prExtend}, // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW - {0x1A6D, 0x1A72, prSpacingMark}, // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI - {0x1A73, 0x1A7C, prExtend}, // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN - {0x1A7F, 0x1A7F, prExtend}, // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT - {0x1AB0, 0x1ABD, prExtend}, // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW - {0x1ABE, 0x1ABE, prExtend}, // Me COMBINING PARENTHESES OVERLAY - {0x1ABF, 0x1ACE, prExtend}, // Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T - {0x1B00, 0x1B03, prExtend}, // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG - {0x1B04, 0x1B04, prSpacingMark}, // Mc BALINESE SIGN BISAH - {0x1B34, 0x1B34, prExtend}, // Mn BALINESE SIGN REREKAN - {0x1B35, 0x1B35, prExtend}, // Mc BALINESE VOWEL SIGN TEDUNG - {0x1B36, 0x1B3A, prExtend}, // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA - {0x1B3B, 0x1B3B, prSpacingMark}, // Mc BALINESE VOWEL SIGN RA REPA TEDUNG - {0x1B3C, 0x1B3C, prExtend}, // Mn BALINESE VOWEL SIGN LA LENGA - {0x1B3D, 0x1B41, prSpacingMark}, // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG - {0x1B42, 0x1B42, prExtend}, // Mn BALINESE VOWEL SIGN PEPET - {0x1B43, 0x1B44, prSpacingMark}, // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG - {0x1B6B, 0x1B73, prExtend}, // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG - {0x1B80, 0x1B81, prExtend}, // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR - {0x1B82, 0x1B82, prSpacingMark}, // Mc SUNDANESE SIGN PANGWISAD - {0x1BA1, 0x1BA1, prSpacingMark}, // Mc SUNDANESE CONSONANT SIGN PAMINGKAL - {0x1BA2, 0x1BA5, prExtend}, // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU - {0x1BA6, 0x1BA7, prSpacingMark}, // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG - {0x1BA8, 0x1BA9, prExtend}, // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG - {0x1BAA, 0x1BAA, prSpacingMark}, // Mc SUNDANESE SIGN PAMAAEH - {0x1BAB, 0x1BAD, prExtend}, // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA - {0x1BE6, 0x1BE6, prExtend}, // Mn BATAK SIGN TOMPI - {0x1BE7, 0x1BE7, prSpacingMark}, // Mc BATAK VOWEL SIGN E - {0x1BE8, 0x1BE9, prExtend}, // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE - {0x1BEA, 0x1BEC, prSpacingMark}, // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O - {0x1BED, 0x1BED, prExtend}, // Mn BATAK VOWEL SIGN KARO O - {0x1BEE, 0x1BEE, prSpacingMark}, // Mc BATAK VOWEL SIGN U - {0x1BEF, 0x1BF1, prExtend}, // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H - {0x1BF2, 0x1BF3, prSpacingMark}, // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN - {0x1C24, 0x1C2B, prSpacingMark}, // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU - {0x1C2C, 0x1C33, prExtend}, // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T - {0x1C34, 0x1C35, prSpacingMark}, // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG - {0x1C36, 0x1C37, prExtend}, // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA - {0x1CD0, 0x1CD2, prExtend}, // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA - {0x1CD4, 0x1CE0, prExtend}, // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA - {0x1CE1, 0x1CE1, prSpacingMark}, // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA - {0x1CE2, 0x1CE8, prExtend}, // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL - {0x1CED, 0x1CED, prExtend}, // Mn VEDIC SIGN TIRYAK - {0x1CF4, 0x1CF4, prExtend}, // Mn VEDIC TONE CANDRA ABOVE - {0x1CF7, 0x1CF7, prSpacingMark}, // Mc VEDIC SIGN ATIKRAMA - {0x1CF8, 0x1CF9, prExtend}, // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE - {0x1DC0, 0x1DFF, prExtend}, // Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW - {0x200B, 0x200B, prControl}, // Cf ZERO WIDTH SPACE - {0x200C, 0x200C, prExtend}, // Cf ZERO WIDTH NON-JOINER - {0x200D, 0x200D, prZWJ}, // Cf ZERO WIDTH JOINER - {0x200E, 0x200F, prControl}, // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK - {0x2028, 0x2028, prControl}, // Zl LINE SEPARATOR - {0x2029, 0x2029, prControl}, // Zp PARAGRAPH SEPARATOR - {0x202A, 0x202E, prControl}, // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE - {0x203C, 0x203C, prExtendedPictographic}, // E0.6 [1] (‼️) double exclamation mark - {0x2049, 0x2049, prExtendedPictographic}, // E0.6 [1] (⁉️) exclamation question mark - {0x2060, 0x2064, prControl}, // Cf [5] WORD JOINER..INVISIBLE PLUS - {0x2065, 0x2065, prControl}, // Cn - {0x2066, 0x206F, prControl}, // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES - {0x20D0, 0x20DC, prExtend}, // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE - {0x20DD, 0x20E0, prExtend}, // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH - {0x20E1, 0x20E1, prExtend}, // Mn COMBINING LEFT RIGHT ARROW ABOVE - {0x20E2, 0x20E4, prExtend}, // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE - {0x20E5, 0x20F0, prExtend}, // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE - {0x2122, 0x2122, prExtendedPictographic}, // E0.6 [1] (™️) trade mark - {0x2139, 0x2139, prExtendedPictographic}, // E0.6 [1] (ℹ️) information - {0x2194, 0x2199, prExtendedPictographic}, // E0.6 [6] (↔️..↙️) left-right arrow..down-left arrow - {0x21A9, 0x21AA, prExtendedPictographic}, // E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right - {0x231A, 0x231B, prExtendedPictographic}, // E0.6 [2] (⌚..⌛) watch..hourglass done - {0x2328, 0x2328, prExtendedPictographic}, // E1.0 [1] (⌨️) keyboard - {0x2388, 0x2388, prExtendedPictographic}, // E0.0 [1] (⎈) HELM SYMBOL - {0x23CF, 0x23CF, prExtendedPictographic}, // E1.0 [1] (⏏️) eject button - {0x23E9, 0x23EC, prExtendedPictographic}, // E0.6 [4] (⏩..⏬) fast-forward button..fast down button - {0x23ED, 0x23EE, prExtendedPictographic}, // E0.7 [2] (⏭️..⏮️) next track button..last track button - {0x23EF, 0x23EF, prExtendedPictographic}, // E1.0 [1] (⏯️) play or pause button - {0x23F0, 0x23F0, prExtendedPictographic}, // E0.6 [1] (⏰) alarm clock - {0x23F1, 0x23F2, prExtendedPictographic}, // E1.0 [2] (⏱️..⏲️) stopwatch..timer clock - {0x23F3, 0x23F3, prExtendedPictographic}, // E0.6 [1] (⏳) hourglass not done - {0x23F8, 0x23FA, prExtendedPictographic}, // E0.7 [3] (⏸️..⏺️) pause button..record button - {0x24C2, 0x24C2, prExtendedPictographic}, // E0.6 [1] (Ⓜ️) circled M - {0x25AA, 0x25AB, prExtendedPictographic}, // E0.6 [2] (▪️..▫️) black small square..white small square - {0x25B6, 0x25B6, prExtendedPictographic}, // E0.6 [1] (▶️) play button - {0x25C0, 0x25C0, prExtendedPictographic}, // E0.6 [1] (◀️) reverse button - {0x25FB, 0x25FE, prExtendedPictographic}, // E0.6 [4] (◻️..◾) white medium square..black medium-small square - {0x2600, 0x2601, prExtendedPictographic}, // E0.6 [2] (☀️..☁️) sun..cloud - {0x2602, 0x2603, prExtendedPictographic}, // E0.7 [2] (☂️..☃️) umbrella..snowman - {0x2604, 0x2604, prExtendedPictographic}, // E1.0 [1] (☄️) comet - {0x2605, 0x2605, prExtendedPictographic}, // E0.0 [1] (★) BLACK STAR - {0x2607, 0x260D, prExtendedPictographic}, // E0.0 [7] (☇..☍) LIGHTNING..OPPOSITION - {0x260E, 0x260E, prExtendedPictographic}, // E0.6 [1] (☎️) telephone - {0x260F, 0x2610, prExtendedPictographic}, // E0.0 [2] (☏..☐) WHITE TELEPHONE..BALLOT BOX - {0x2611, 0x2611, prExtendedPictographic}, // E0.6 [1] (☑️) check box with check - {0x2612, 0x2612, prExtendedPictographic}, // E0.0 [1] (☒) BALLOT BOX WITH X - {0x2614, 0x2615, prExtendedPictographic}, // E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage - {0x2616, 0x2617, prExtendedPictographic}, // E0.0 [2] (☖..☗) WHITE SHOGI PIECE..BLACK SHOGI PIECE - {0x2618, 0x2618, prExtendedPictographic}, // E1.0 [1] (☘️) shamrock - {0x2619, 0x261C, prExtendedPictographic}, // E0.0 [4] (☙..☜) REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX - {0x261D, 0x261D, prExtendedPictographic}, // E0.6 [1] (☝️) index pointing up - {0x261E, 0x261F, prExtendedPictographic}, // E0.0 [2] (☞..☟) WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX - {0x2620, 0x2620, prExtendedPictographic}, // E1.0 [1] (☠️) skull and crossbones - {0x2621, 0x2621, prExtendedPictographic}, // E0.0 [1] (☡) CAUTION SIGN - {0x2622, 0x2623, prExtendedPictographic}, // E1.0 [2] (☢️..☣️) radioactive..biohazard - {0x2624, 0x2625, prExtendedPictographic}, // E0.0 [2] (☤..☥) CADUCEUS..ANKH - {0x2626, 0x2626, prExtendedPictographic}, // E1.0 [1] (☦️) orthodox cross - {0x2627, 0x2629, prExtendedPictographic}, // E0.0 [3] (☧..☩) CHI RHO..CROSS OF JERUSALEM - {0x262A, 0x262A, prExtendedPictographic}, // E0.7 [1] (☪️) star and crescent - {0x262B, 0x262D, prExtendedPictographic}, // E0.0 [3] (☫..☭) FARSI SYMBOL..HAMMER AND SICKLE - {0x262E, 0x262E, prExtendedPictographic}, // E1.0 [1] (☮️) peace symbol - {0x262F, 0x262F, prExtendedPictographic}, // E0.7 [1] (☯️) yin yang - {0x2630, 0x2637, prExtendedPictographic}, // E0.0 [8] (☰..☷) TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH - {0x2638, 0x2639, prExtendedPictographic}, // E0.7 [2] (☸️..☹️) wheel of dharma..frowning face - {0x263A, 0x263A, prExtendedPictographic}, // E0.6 [1] (☺️) smiling face - {0x263B, 0x263F, prExtendedPictographic}, // E0.0 [5] (☻..☿) BLACK SMILING FACE..MERCURY - {0x2640, 0x2640, prExtendedPictographic}, // E4.0 [1] (♀️) female sign - {0x2641, 0x2641, prExtendedPictographic}, // E0.0 [1] (♁) EARTH - {0x2642, 0x2642, prExtendedPictographic}, // E4.0 [1] (♂️) male sign - {0x2643, 0x2647, prExtendedPictographic}, // E0.0 [5] (♃..♇) JUPITER..PLUTO - {0x2648, 0x2653, prExtendedPictographic}, // E0.6 [12] (♈..♓) Aries..Pisces - {0x2654, 0x265E, prExtendedPictographic}, // E0.0 [11] (♔..♞) WHITE CHESS KING..BLACK CHESS KNIGHT - {0x265F, 0x265F, prExtendedPictographic}, // E11.0 [1] (♟️) chess pawn - {0x2660, 0x2660, prExtendedPictographic}, // E0.6 [1] (♠️) spade suit - {0x2661, 0x2662, prExtendedPictographic}, // E0.0 [2] (♡..♢) WHITE HEART SUIT..WHITE DIAMOND SUIT - {0x2663, 0x2663, prExtendedPictographic}, // E0.6 [1] (♣️) club suit - {0x2664, 0x2664, prExtendedPictographic}, // E0.0 [1] (♤) WHITE SPADE SUIT - {0x2665, 0x2666, prExtendedPictographic}, // E0.6 [2] (♥️..♦️) heart suit..diamond suit - {0x2667, 0x2667, prExtendedPictographic}, // E0.0 [1] (♧) WHITE CLUB SUIT - {0x2668, 0x2668, prExtendedPictographic}, // E0.6 [1] (♨️) hot springs - {0x2669, 0x267A, prExtendedPictographic}, // E0.0 [18] (♩..♺) QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS - {0x267B, 0x267B, prExtendedPictographic}, // E0.6 [1] (♻️) recycling symbol - {0x267C, 0x267D, prExtendedPictographic}, // E0.0 [2] (♼..♽) RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL - {0x267E, 0x267E, prExtendedPictographic}, // E11.0 [1] (♾️) infinity - {0x267F, 0x267F, prExtendedPictographic}, // E0.6 [1] (♿) wheelchair symbol - {0x2680, 0x2685, prExtendedPictographic}, // E0.0 [6] (⚀..⚅) DIE FACE-1..DIE FACE-6 - {0x2690, 0x2691, prExtendedPictographic}, // E0.0 [2] (⚐..⚑) WHITE FLAG..BLACK FLAG - {0x2692, 0x2692, prExtendedPictographic}, // E1.0 [1] (⚒️) hammer and pick - {0x2693, 0x2693, prExtendedPictographic}, // E0.6 [1] (⚓) anchor - {0x2694, 0x2694, prExtendedPictographic}, // E1.0 [1] (⚔️) crossed swords - {0x2695, 0x2695, prExtendedPictographic}, // E4.0 [1] (⚕️) medical symbol - {0x2696, 0x2697, prExtendedPictographic}, // E1.0 [2] (⚖️..⚗️) balance scale..alembic - {0x2698, 0x2698, prExtendedPictographic}, // E0.0 [1] (⚘) FLOWER - {0x2699, 0x2699, prExtendedPictographic}, // E1.0 [1] (⚙️) gear - {0x269A, 0x269A, prExtendedPictographic}, // E0.0 [1] (⚚) STAFF OF HERMES - {0x269B, 0x269C, prExtendedPictographic}, // E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis - {0x269D, 0x269F, prExtendedPictographic}, // E0.0 [3] (⚝..⚟) OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT - {0x26A0, 0x26A1, prExtendedPictographic}, // E0.6 [2] (⚠️..⚡) warning..high voltage - {0x26A2, 0x26A6, prExtendedPictographic}, // E0.0 [5] (⚢..⚦) DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN - {0x26A7, 0x26A7, prExtendedPictographic}, // E13.0 [1] (⚧️) transgender symbol - {0x26A8, 0x26A9, prExtendedPictographic}, // E0.0 [2] (⚨..⚩) VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN - {0x26AA, 0x26AB, prExtendedPictographic}, // E0.6 [2] (⚪..⚫) white circle..black circle - {0x26AC, 0x26AF, prExtendedPictographic}, // E0.0 [4] (⚬..⚯) MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL - {0x26B0, 0x26B1, prExtendedPictographic}, // E1.0 [2] (⚰️..⚱️) coffin..funeral urn - {0x26B2, 0x26BC, prExtendedPictographic}, // E0.0 [11] (⚲..⚼) NEUTER..SESQUIQUADRATE - {0x26BD, 0x26BE, prExtendedPictographic}, // E0.6 [2] (⚽..⚾) soccer ball..baseball - {0x26BF, 0x26C3, prExtendedPictographic}, // E0.0 [5] (⚿..⛃) SQUARED KEY..BLACK DRAUGHTS KING - {0x26C4, 0x26C5, prExtendedPictographic}, // E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud - {0x26C6, 0x26C7, prExtendedPictographic}, // E0.0 [2] (⛆..⛇) RAIN..BLACK SNOWMAN - {0x26C8, 0x26C8, prExtendedPictographic}, // E0.7 [1] (⛈️) cloud with lightning and rain - {0x26C9, 0x26CD, prExtendedPictographic}, // E0.0 [5] (⛉..⛍) TURNED WHITE SHOGI PIECE..DISABLED CAR - {0x26CE, 0x26CE, prExtendedPictographic}, // E0.6 [1] (⛎) Ophiuchus - {0x26CF, 0x26CF, prExtendedPictographic}, // E0.7 [1] (⛏️) pick - {0x26D0, 0x26D0, prExtendedPictographic}, // E0.0 [1] (⛐) CAR SLIDING - {0x26D1, 0x26D1, prExtendedPictographic}, // E0.7 [1] (⛑️) rescue worker’s helmet - {0x26D2, 0x26D2, prExtendedPictographic}, // E0.0 [1] (⛒) CIRCLED CROSSING LANES - {0x26D3, 0x26D3, prExtendedPictographic}, // E0.7 [1] (⛓️) chains - {0x26D4, 0x26D4, prExtendedPictographic}, // E0.6 [1] (⛔) no entry - {0x26D5, 0x26E8, prExtendedPictographic}, // E0.0 [20] (⛕..⛨) ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD - {0x26E9, 0x26E9, prExtendedPictographic}, // E0.7 [1] (⛩️) shinto shrine - {0x26EA, 0x26EA, prExtendedPictographic}, // E0.6 [1] (⛪) church - {0x26EB, 0x26EF, prExtendedPictographic}, // E0.0 [5] (⛫..⛯) CASTLE..MAP SYMBOL FOR LIGHTHOUSE - {0x26F0, 0x26F1, prExtendedPictographic}, // E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground - {0x26F2, 0x26F3, prExtendedPictographic}, // E0.6 [2] (⛲..⛳) fountain..flag in hole - {0x26F4, 0x26F4, prExtendedPictographic}, // E0.7 [1] (⛴️) ferry - {0x26F5, 0x26F5, prExtendedPictographic}, // E0.6 [1] (⛵) sailboat - {0x26F6, 0x26F6, prExtendedPictographic}, // E0.0 [1] (⛶) SQUARE FOUR CORNERS - {0x26F7, 0x26F9, prExtendedPictographic}, // E0.7 [3] (⛷️..⛹️) skier..person bouncing ball - {0x26FA, 0x26FA, prExtendedPictographic}, // E0.6 [1] (⛺) tent - {0x26FB, 0x26FC, prExtendedPictographic}, // E0.0 [2] (⛻..⛼) JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL - {0x26FD, 0x26FD, prExtendedPictographic}, // E0.6 [1] (⛽) fuel pump - {0x26FE, 0x2701, prExtendedPictographic}, // E0.0 [4] (⛾..✁) CUP ON BLACK SQUARE..UPPER BLADE SCISSORS - {0x2702, 0x2702, prExtendedPictographic}, // E0.6 [1] (✂️) scissors - {0x2703, 0x2704, prExtendedPictographic}, // E0.0 [2] (✃..✄) LOWER BLADE SCISSORS..WHITE SCISSORS - {0x2705, 0x2705, prExtendedPictographic}, // E0.6 [1] (✅) check mark button - {0x2708, 0x270C, prExtendedPictographic}, // E0.6 [5] (✈️..✌️) airplane..victory hand - {0x270D, 0x270D, prExtendedPictographic}, // E0.7 [1] (✍️) writing hand - {0x270E, 0x270E, prExtendedPictographic}, // E0.0 [1] (✎) LOWER RIGHT PENCIL - {0x270F, 0x270F, prExtendedPictographic}, // E0.6 [1] (✏️) pencil - {0x2710, 0x2711, prExtendedPictographic}, // E0.0 [2] (✐..✑) UPPER RIGHT PENCIL..WHITE NIB - {0x2712, 0x2712, prExtendedPictographic}, // E0.6 [1] (✒️) black nib - {0x2714, 0x2714, prExtendedPictographic}, // E0.6 [1] (✔️) check mark - {0x2716, 0x2716, prExtendedPictographic}, // E0.6 [1] (✖️) multiply - {0x271D, 0x271D, prExtendedPictographic}, // E0.7 [1] (✝️) latin cross - {0x2721, 0x2721, prExtendedPictographic}, // E0.7 [1] (✡️) star of David - {0x2728, 0x2728, prExtendedPictographic}, // E0.6 [1] (✨) sparkles - {0x2733, 0x2734, prExtendedPictographic}, // E0.6 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star - {0x2744, 0x2744, prExtendedPictographic}, // E0.6 [1] (❄️) snowflake - {0x2747, 0x2747, prExtendedPictographic}, // E0.6 [1] (❇️) sparkle - {0x274C, 0x274C, prExtendedPictographic}, // E0.6 [1] (❌) cross mark - {0x274E, 0x274E, prExtendedPictographic}, // E0.6 [1] (❎) cross mark button - {0x2753, 0x2755, prExtendedPictographic}, // E0.6 [3] (❓..❕) red question mark..white exclamation mark - {0x2757, 0x2757, prExtendedPictographic}, // E0.6 [1] (❗) red exclamation mark - {0x2763, 0x2763, prExtendedPictographic}, // E1.0 [1] (❣️) heart exclamation - {0x2764, 0x2764, prExtendedPictographic}, // E0.6 [1] (❤️) red heart - {0x2765, 0x2767, prExtendedPictographic}, // E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET - {0x2795, 0x2797, prExtendedPictographic}, // E0.6 [3] (➕..➗) plus..divide - {0x27A1, 0x27A1, prExtendedPictographic}, // E0.6 [1] (➡️) right arrow - {0x27B0, 0x27B0, prExtendedPictographic}, // E0.6 [1] (➰) curly loop - {0x27BF, 0x27BF, prExtendedPictographic}, // E1.0 [1] (➿) double curly loop - {0x2934, 0x2935, prExtendedPictographic}, // E0.6 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down - {0x2B05, 0x2B07, prExtendedPictographic}, // E0.6 [3] (⬅️..⬇️) left arrow..down arrow - {0x2B1B, 0x2B1C, prExtendedPictographic}, // E0.6 [2] (⬛..⬜) black large square..white large square - {0x2B50, 0x2B50, prExtendedPictographic}, // E0.6 [1] (⭐) star - {0x2B55, 0x2B55, prExtendedPictographic}, // E0.6 [1] (⭕) hollow red circle - {0x2CEF, 0x2CF1, prExtend}, // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS - {0x2D7F, 0x2D7F, prExtend}, // Mn TIFINAGH CONSONANT JOINER - {0x2DE0, 0x2DFF, prExtend}, // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS - {0x302A, 0x302D, prExtend}, // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK - {0x302E, 0x302F, prExtend}, // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK - {0x3030, 0x3030, prExtendedPictographic}, // E0.6 [1] (〰️) wavy dash - {0x303D, 0x303D, prExtendedPictographic}, // E0.6 [1] (〽️) part alternation mark - {0x3099, 0x309A, prExtend}, // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - {0x3297, 0x3297, prExtendedPictographic}, // E0.6 [1] (㊗️) Japanese “congratulations” button - {0x3299, 0x3299, prExtendedPictographic}, // E0.6 [1] (㊙️) Japanese “secret” button - {0xA66F, 0xA66F, prExtend}, // Mn COMBINING CYRILLIC VZMET - {0xA670, 0xA672, prExtend}, // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN - {0xA674, 0xA67D, prExtend}, // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK - {0xA69E, 0xA69F, prExtend}, // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E - {0xA6F0, 0xA6F1, prExtend}, // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS - {0xA802, 0xA802, prExtend}, // Mn SYLOTI NAGRI SIGN DVISVARA - {0xA806, 0xA806, prExtend}, // Mn SYLOTI NAGRI SIGN HASANTA - {0xA80B, 0xA80B, prExtend}, // Mn SYLOTI NAGRI SIGN ANUSVARA - {0xA823, 0xA824, prSpacingMark}, // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I - {0xA825, 0xA826, prExtend}, // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E - {0xA827, 0xA827, prSpacingMark}, // Mc SYLOTI NAGRI VOWEL SIGN OO - {0xA82C, 0xA82C, prExtend}, // Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA - {0xA880, 0xA881, prSpacingMark}, // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA - {0xA8B4, 0xA8C3, prSpacingMark}, // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU - {0xA8C4, 0xA8C5, prExtend}, // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU - {0xA8E0, 0xA8F1, prExtend}, // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA - {0xA8FF, 0xA8FF, prExtend}, // Mn DEVANAGARI VOWEL SIGN AY - {0xA926, 0xA92D, prExtend}, // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU - {0xA947, 0xA951, prExtend}, // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R - {0xA952, 0xA953, prSpacingMark}, // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA - {0xA960, 0xA97C, prL}, // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH - {0xA980, 0xA982, prExtend}, // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR - {0xA983, 0xA983, prSpacingMark}, // Mc JAVANESE SIGN WIGNYAN - {0xA9B3, 0xA9B3, prExtend}, // Mn JAVANESE SIGN CECAK TELU - {0xA9B4, 0xA9B5, prSpacingMark}, // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG - {0xA9B6, 0xA9B9, prExtend}, // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT - {0xA9BA, 0xA9BB, prSpacingMark}, // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE - {0xA9BC, 0xA9BD, prExtend}, // Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET - {0xA9BE, 0xA9C0, prSpacingMark}, // Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON - {0xA9E5, 0xA9E5, prExtend}, // Mn MYANMAR SIGN SHAN SAW - {0xAA29, 0xAA2E, prExtend}, // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE - {0xAA2F, 0xAA30, prSpacingMark}, // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI - {0xAA31, 0xAA32, prExtend}, // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE - {0xAA33, 0xAA34, prSpacingMark}, // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA - {0xAA35, 0xAA36, prExtend}, // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA - {0xAA43, 0xAA43, prExtend}, // Mn CHAM CONSONANT SIGN FINAL NG - {0xAA4C, 0xAA4C, prExtend}, // Mn CHAM CONSONANT SIGN FINAL M - {0xAA4D, 0xAA4D, prSpacingMark}, // Mc CHAM CONSONANT SIGN FINAL H - {0xAA7C, 0xAA7C, prExtend}, // Mn MYANMAR SIGN TAI LAING TONE-2 - {0xAAB0, 0xAAB0, prExtend}, // Mn TAI VIET MAI KANG - {0xAAB2, 0xAAB4, prExtend}, // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U - {0xAAB7, 0xAAB8, prExtend}, // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA - {0xAABE, 0xAABF, prExtend}, // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK - {0xAAC1, 0xAAC1, prExtend}, // Mn TAI VIET TONE MAI THO - {0xAAEB, 0xAAEB, prSpacingMark}, // Mc MEETEI MAYEK VOWEL SIGN II - {0xAAEC, 0xAAED, prExtend}, // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI - {0xAAEE, 0xAAEF, prSpacingMark}, // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU - {0xAAF5, 0xAAF5, prSpacingMark}, // Mc MEETEI MAYEK VOWEL SIGN VISARGA - {0xAAF6, 0xAAF6, prExtend}, // Mn MEETEI MAYEK VIRAMA - {0xABE3, 0xABE4, prSpacingMark}, // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP - {0xABE5, 0xABE5, prExtend}, // Mn MEETEI MAYEK VOWEL SIGN ANAP - {0xABE6, 0xABE7, prSpacingMark}, // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP - {0xABE8, 0xABE8, prExtend}, // Mn MEETEI MAYEK VOWEL SIGN UNAP - {0xABE9, 0xABEA, prSpacingMark}, // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG - {0xABEC, 0xABEC, prSpacingMark}, // Mc MEETEI MAYEK LUM IYEK - {0xABED, 0xABED, prExtend}, // Mn MEETEI MAYEK APUN IYEK - {0xAC00, 0xAC00, prLV}, // Lo HANGUL SYLLABLE GA - {0xAC01, 0xAC1B, prLVT}, // Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH - {0xAC1C, 0xAC1C, prLV}, // Lo HANGUL SYLLABLE GAE - {0xAC1D, 0xAC37, prLVT}, // Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH - {0xAC38, 0xAC38, prLV}, // Lo HANGUL SYLLABLE GYA - {0xAC39, 0xAC53, prLVT}, // Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH - {0xAC54, 0xAC54, prLV}, // Lo HANGUL SYLLABLE GYAE - {0xAC55, 0xAC6F, prLVT}, // Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH - {0xAC70, 0xAC70, prLV}, // Lo HANGUL SYLLABLE GEO - {0xAC71, 0xAC8B, prLVT}, // Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH - {0xAC8C, 0xAC8C, prLV}, // Lo HANGUL SYLLABLE GE - {0xAC8D, 0xACA7, prLVT}, // Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH - {0xACA8, 0xACA8, prLV}, // Lo HANGUL SYLLABLE GYEO - {0xACA9, 0xACC3, prLVT}, // Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH - {0xACC4, 0xACC4, prLV}, // Lo HANGUL SYLLABLE GYE - {0xACC5, 0xACDF, prLVT}, // Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH - {0xACE0, 0xACE0, prLV}, // Lo HANGUL SYLLABLE GO - {0xACE1, 0xACFB, prLVT}, // Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH - {0xACFC, 0xACFC, prLV}, // Lo HANGUL SYLLABLE GWA - {0xACFD, 0xAD17, prLVT}, // Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH - {0xAD18, 0xAD18, prLV}, // Lo HANGUL SYLLABLE GWAE - {0xAD19, 0xAD33, prLVT}, // Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH - {0xAD34, 0xAD34, prLV}, // Lo HANGUL SYLLABLE GOE - {0xAD35, 0xAD4F, prLVT}, // Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH - {0xAD50, 0xAD50, prLV}, // Lo HANGUL SYLLABLE GYO - {0xAD51, 0xAD6B, prLVT}, // Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH - {0xAD6C, 0xAD6C, prLV}, // Lo HANGUL SYLLABLE GU - {0xAD6D, 0xAD87, prLVT}, // Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH - {0xAD88, 0xAD88, prLV}, // Lo HANGUL SYLLABLE GWEO - {0xAD89, 0xADA3, prLVT}, // Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH - {0xADA4, 0xADA4, prLV}, // Lo HANGUL SYLLABLE GWE - {0xADA5, 0xADBF, prLVT}, // Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH - {0xADC0, 0xADC0, prLV}, // Lo HANGUL SYLLABLE GWI - {0xADC1, 0xADDB, prLVT}, // Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH - {0xADDC, 0xADDC, prLV}, // Lo HANGUL SYLLABLE GYU - {0xADDD, 0xADF7, prLVT}, // Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH - {0xADF8, 0xADF8, prLV}, // Lo HANGUL SYLLABLE GEU - {0xADF9, 0xAE13, prLVT}, // Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH - {0xAE14, 0xAE14, prLV}, // Lo HANGUL SYLLABLE GYI - {0xAE15, 0xAE2F, prLVT}, // Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH - {0xAE30, 0xAE30, prLV}, // Lo HANGUL SYLLABLE GI - {0xAE31, 0xAE4B, prLVT}, // Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH - {0xAE4C, 0xAE4C, prLV}, // Lo HANGUL SYLLABLE GGA - {0xAE4D, 0xAE67, prLVT}, // Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH - {0xAE68, 0xAE68, prLV}, // Lo HANGUL SYLLABLE GGAE - {0xAE69, 0xAE83, prLVT}, // Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH - {0xAE84, 0xAE84, prLV}, // Lo HANGUL SYLLABLE GGYA - {0xAE85, 0xAE9F, prLVT}, // Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH - {0xAEA0, 0xAEA0, prLV}, // Lo HANGUL SYLLABLE GGYAE - {0xAEA1, 0xAEBB, prLVT}, // Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH - {0xAEBC, 0xAEBC, prLV}, // Lo HANGUL SYLLABLE GGEO - {0xAEBD, 0xAED7, prLVT}, // Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH - {0xAED8, 0xAED8, prLV}, // Lo HANGUL SYLLABLE GGE - {0xAED9, 0xAEF3, prLVT}, // Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH - {0xAEF4, 0xAEF4, prLV}, // Lo HANGUL SYLLABLE GGYEO - {0xAEF5, 0xAF0F, prLVT}, // Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH - {0xAF10, 0xAF10, prLV}, // Lo HANGUL SYLLABLE GGYE - {0xAF11, 0xAF2B, prLVT}, // Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH - {0xAF2C, 0xAF2C, prLV}, // Lo HANGUL SYLLABLE GGO - {0xAF2D, 0xAF47, prLVT}, // Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH - {0xAF48, 0xAF48, prLV}, // Lo HANGUL SYLLABLE GGWA - {0xAF49, 0xAF63, prLVT}, // Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH - {0xAF64, 0xAF64, prLV}, // Lo HANGUL SYLLABLE GGWAE - {0xAF65, 0xAF7F, prLVT}, // Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH - {0xAF80, 0xAF80, prLV}, // Lo HANGUL SYLLABLE GGOE - {0xAF81, 0xAF9B, prLVT}, // Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH - {0xAF9C, 0xAF9C, prLV}, // Lo HANGUL SYLLABLE GGYO - {0xAF9D, 0xAFB7, prLVT}, // Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH - {0xAFB8, 0xAFB8, prLV}, // Lo HANGUL SYLLABLE GGU - {0xAFB9, 0xAFD3, prLVT}, // Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH - {0xAFD4, 0xAFD4, prLV}, // Lo HANGUL SYLLABLE GGWEO - {0xAFD5, 0xAFEF, prLVT}, // Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH - {0xAFF0, 0xAFF0, prLV}, // Lo HANGUL SYLLABLE GGWE - {0xAFF1, 0xB00B, prLVT}, // Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH - {0xB00C, 0xB00C, prLV}, // Lo HANGUL SYLLABLE GGWI - {0xB00D, 0xB027, prLVT}, // Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH - {0xB028, 0xB028, prLV}, // Lo HANGUL SYLLABLE GGYU - {0xB029, 0xB043, prLVT}, // Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH - {0xB044, 0xB044, prLV}, // Lo HANGUL SYLLABLE GGEU - {0xB045, 0xB05F, prLVT}, // Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH - {0xB060, 0xB060, prLV}, // Lo HANGUL SYLLABLE GGYI - {0xB061, 0xB07B, prLVT}, // Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH - {0xB07C, 0xB07C, prLV}, // Lo HANGUL SYLLABLE GGI - {0xB07D, 0xB097, prLVT}, // Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH - {0xB098, 0xB098, prLV}, // Lo HANGUL SYLLABLE NA - {0xB099, 0xB0B3, prLVT}, // Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH - {0xB0B4, 0xB0B4, prLV}, // Lo HANGUL SYLLABLE NAE - {0xB0B5, 0xB0CF, prLVT}, // Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH - {0xB0D0, 0xB0D0, prLV}, // Lo HANGUL SYLLABLE NYA - {0xB0D1, 0xB0EB, prLVT}, // Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH - {0xB0EC, 0xB0EC, prLV}, // Lo HANGUL SYLLABLE NYAE - {0xB0ED, 0xB107, prLVT}, // Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH - {0xB108, 0xB108, prLV}, // Lo HANGUL SYLLABLE NEO - {0xB109, 0xB123, prLVT}, // Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH - {0xB124, 0xB124, prLV}, // Lo HANGUL SYLLABLE NE - {0xB125, 0xB13F, prLVT}, // Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH - {0xB140, 0xB140, prLV}, // Lo HANGUL SYLLABLE NYEO - {0xB141, 0xB15B, prLVT}, // Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH - {0xB15C, 0xB15C, prLV}, // Lo HANGUL SYLLABLE NYE - {0xB15D, 0xB177, prLVT}, // Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH - {0xB178, 0xB178, prLV}, // Lo HANGUL SYLLABLE NO - {0xB179, 0xB193, prLVT}, // Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH - {0xB194, 0xB194, prLV}, // Lo HANGUL SYLLABLE NWA - {0xB195, 0xB1AF, prLVT}, // Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH - {0xB1B0, 0xB1B0, prLV}, // Lo HANGUL SYLLABLE NWAE - {0xB1B1, 0xB1CB, prLVT}, // Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH - {0xB1CC, 0xB1CC, prLV}, // Lo HANGUL SYLLABLE NOE - {0xB1CD, 0xB1E7, prLVT}, // Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH - {0xB1E8, 0xB1E8, prLV}, // Lo HANGUL SYLLABLE NYO - {0xB1E9, 0xB203, prLVT}, // Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH - {0xB204, 0xB204, prLV}, // Lo HANGUL SYLLABLE NU - {0xB205, 0xB21F, prLVT}, // Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH - {0xB220, 0xB220, prLV}, // Lo HANGUL SYLLABLE NWEO - {0xB221, 0xB23B, prLVT}, // Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH - {0xB23C, 0xB23C, prLV}, // Lo HANGUL SYLLABLE NWE - {0xB23D, 0xB257, prLVT}, // Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH - {0xB258, 0xB258, prLV}, // Lo HANGUL SYLLABLE NWI - {0xB259, 0xB273, prLVT}, // Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH - {0xB274, 0xB274, prLV}, // Lo HANGUL SYLLABLE NYU - {0xB275, 0xB28F, prLVT}, // Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH - {0xB290, 0xB290, prLV}, // Lo HANGUL SYLLABLE NEU - {0xB291, 0xB2AB, prLVT}, // Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH - {0xB2AC, 0xB2AC, prLV}, // Lo HANGUL SYLLABLE NYI - {0xB2AD, 0xB2C7, prLVT}, // Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH - {0xB2C8, 0xB2C8, prLV}, // Lo HANGUL SYLLABLE NI - {0xB2C9, 0xB2E3, prLVT}, // Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH - {0xB2E4, 0xB2E4, prLV}, // Lo HANGUL SYLLABLE DA - {0xB2E5, 0xB2FF, prLVT}, // Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH - {0xB300, 0xB300, prLV}, // Lo HANGUL SYLLABLE DAE - {0xB301, 0xB31B, prLVT}, // Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH - {0xB31C, 0xB31C, prLV}, // Lo HANGUL SYLLABLE DYA - {0xB31D, 0xB337, prLVT}, // Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH - {0xB338, 0xB338, prLV}, // Lo HANGUL SYLLABLE DYAE - {0xB339, 0xB353, prLVT}, // Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH - {0xB354, 0xB354, prLV}, // Lo HANGUL SYLLABLE DEO - {0xB355, 0xB36F, prLVT}, // Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH - {0xB370, 0xB370, prLV}, // Lo HANGUL SYLLABLE DE - {0xB371, 0xB38B, prLVT}, // Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH - {0xB38C, 0xB38C, prLV}, // Lo HANGUL SYLLABLE DYEO - {0xB38D, 0xB3A7, prLVT}, // Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH - {0xB3A8, 0xB3A8, prLV}, // Lo HANGUL SYLLABLE DYE - {0xB3A9, 0xB3C3, prLVT}, // Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH - {0xB3C4, 0xB3C4, prLV}, // Lo HANGUL SYLLABLE DO - {0xB3C5, 0xB3DF, prLVT}, // Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH - {0xB3E0, 0xB3E0, prLV}, // Lo HANGUL SYLLABLE DWA - {0xB3E1, 0xB3FB, prLVT}, // Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH - {0xB3FC, 0xB3FC, prLV}, // Lo HANGUL SYLLABLE DWAE - {0xB3FD, 0xB417, prLVT}, // Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH - {0xB418, 0xB418, prLV}, // Lo HANGUL SYLLABLE DOE - {0xB419, 0xB433, prLVT}, // Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH - {0xB434, 0xB434, prLV}, // Lo HANGUL SYLLABLE DYO - {0xB435, 0xB44F, prLVT}, // Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH - {0xB450, 0xB450, prLV}, // Lo HANGUL SYLLABLE DU - {0xB451, 0xB46B, prLVT}, // Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH - {0xB46C, 0xB46C, prLV}, // Lo HANGUL SYLLABLE DWEO - {0xB46D, 0xB487, prLVT}, // Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH - {0xB488, 0xB488, prLV}, // Lo HANGUL SYLLABLE DWE - {0xB489, 0xB4A3, prLVT}, // Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH - {0xB4A4, 0xB4A4, prLV}, // Lo HANGUL SYLLABLE DWI - {0xB4A5, 0xB4BF, prLVT}, // Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH - {0xB4C0, 0xB4C0, prLV}, // Lo HANGUL SYLLABLE DYU - {0xB4C1, 0xB4DB, prLVT}, // Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH - {0xB4DC, 0xB4DC, prLV}, // Lo HANGUL SYLLABLE DEU - {0xB4DD, 0xB4F7, prLVT}, // Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH - {0xB4F8, 0xB4F8, prLV}, // Lo HANGUL SYLLABLE DYI - {0xB4F9, 0xB513, prLVT}, // Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH - {0xB514, 0xB514, prLV}, // Lo HANGUL SYLLABLE DI - {0xB515, 0xB52F, prLVT}, // Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH - {0xB530, 0xB530, prLV}, // Lo HANGUL SYLLABLE DDA - {0xB531, 0xB54B, prLVT}, // Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH - {0xB54C, 0xB54C, prLV}, // Lo HANGUL SYLLABLE DDAE - {0xB54D, 0xB567, prLVT}, // Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH - {0xB568, 0xB568, prLV}, // Lo HANGUL SYLLABLE DDYA - {0xB569, 0xB583, prLVT}, // Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH - {0xB584, 0xB584, prLV}, // Lo HANGUL SYLLABLE DDYAE - {0xB585, 0xB59F, prLVT}, // Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH - {0xB5A0, 0xB5A0, prLV}, // Lo HANGUL SYLLABLE DDEO - {0xB5A1, 0xB5BB, prLVT}, // Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH - {0xB5BC, 0xB5BC, prLV}, // Lo HANGUL SYLLABLE DDE - {0xB5BD, 0xB5D7, prLVT}, // Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH - {0xB5D8, 0xB5D8, prLV}, // Lo HANGUL SYLLABLE DDYEO - {0xB5D9, 0xB5F3, prLVT}, // Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH - {0xB5F4, 0xB5F4, prLV}, // Lo HANGUL SYLLABLE DDYE - {0xB5F5, 0xB60F, prLVT}, // Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH - {0xB610, 0xB610, prLV}, // Lo HANGUL SYLLABLE DDO - {0xB611, 0xB62B, prLVT}, // Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH - {0xB62C, 0xB62C, prLV}, // Lo HANGUL SYLLABLE DDWA - {0xB62D, 0xB647, prLVT}, // Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH - {0xB648, 0xB648, prLV}, // Lo HANGUL SYLLABLE DDWAE - {0xB649, 0xB663, prLVT}, // Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH - {0xB664, 0xB664, prLV}, // Lo HANGUL SYLLABLE DDOE - {0xB665, 0xB67F, prLVT}, // Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH - {0xB680, 0xB680, prLV}, // Lo HANGUL SYLLABLE DDYO - {0xB681, 0xB69B, prLVT}, // Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH - {0xB69C, 0xB69C, prLV}, // Lo HANGUL SYLLABLE DDU - {0xB69D, 0xB6B7, prLVT}, // Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH - {0xB6B8, 0xB6B8, prLV}, // Lo HANGUL SYLLABLE DDWEO - {0xB6B9, 0xB6D3, prLVT}, // Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH - {0xB6D4, 0xB6D4, prLV}, // Lo HANGUL SYLLABLE DDWE - {0xB6D5, 0xB6EF, prLVT}, // Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH - {0xB6F0, 0xB6F0, prLV}, // Lo HANGUL SYLLABLE DDWI - {0xB6F1, 0xB70B, prLVT}, // Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH - {0xB70C, 0xB70C, prLV}, // Lo HANGUL SYLLABLE DDYU - {0xB70D, 0xB727, prLVT}, // Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH - {0xB728, 0xB728, prLV}, // Lo HANGUL SYLLABLE DDEU - {0xB729, 0xB743, prLVT}, // Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH - {0xB744, 0xB744, prLV}, // Lo HANGUL SYLLABLE DDYI - {0xB745, 0xB75F, prLVT}, // Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH - {0xB760, 0xB760, prLV}, // Lo HANGUL SYLLABLE DDI - {0xB761, 0xB77B, prLVT}, // Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH - {0xB77C, 0xB77C, prLV}, // Lo HANGUL SYLLABLE RA - {0xB77D, 0xB797, prLVT}, // Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH - {0xB798, 0xB798, prLV}, // Lo HANGUL SYLLABLE RAE - {0xB799, 0xB7B3, prLVT}, // Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH - {0xB7B4, 0xB7B4, prLV}, // Lo HANGUL SYLLABLE RYA - {0xB7B5, 0xB7CF, prLVT}, // Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH - {0xB7D0, 0xB7D0, prLV}, // Lo HANGUL SYLLABLE RYAE - {0xB7D1, 0xB7EB, prLVT}, // Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH - {0xB7EC, 0xB7EC, prLV}, // Lo HANGUL SYLLABLE REO - {0xB7ED, 0xB807, prLVT}, // Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH - {0xB808, 0xB808, prLV}, // Lo HANGUL SYLLABLE RE - {0xB809, 0xB823, prLVT}, // Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH - {0xB824, 0xB824, prLV}, // Lo HANGUL SYLLABLE RYEO - {0xB825, 0xB83F, prLVT}, // Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH - {0xB840, 0xB840, prLV}, // Lo HANGUL SYLLABLE RYE - {0xB841, 0xB85B, prLVT}, // Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH - {0xB85C, 0xB85C, prLV}, // Lo HANGUL SYLLABLE RO - {0xB85D, 0xB877, prLVT}, // Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH - {0xB878, 0xB878, prLV}, // Lo HANGUL SYLLABLE RWA - {0xB879, 0xB893, prLVT}, // Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH - {0xB894, 0xB894, prLV}, // Lo HANGUL SYLLABLE RWAE - {0xB895, 0xB8AF, prLVT}, // Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH - {0xB8B0, 0xB8B0, prLV}, // Lo HANGUL SYLLABLE ROE - {0xB8B1, 0xB8CB, prLVT}, // Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH - {0xB8CC, 0xB8CC, prLV}, // Lo HANGUL SYLLABLE RYO - {0xB8CD, 0xB8E7, prLVT}, // Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH - {0xB8E8, 0xB8E8, prLV}, // Lo HANGUL SYLLABLE RU - {0xB8E9, 0xB903, prLVT}, // Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH - {0xB904, 0xB904, prLV}, // Lo HANGUL SYLLABLE RWEO - {0xB905, 0xB91F, prLVT}, // Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH - {0xB920, 0xB920, prLV}, // Lo HANGUL SYLLABLE RWE - {0xB921, 0xB93B, prLVT}, // Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH - {0xB93C, 0xB93C, prLV}, // Lo HANGUL SYLLABLE RWI - {0xB93D, 0xB957, prLVT}, // Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH - {0xB958, 0xB958, prLV}, // Lo HANGUL SYLLABLE RYU - {0xB959, 0xB973, prLVT}, // Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH - {0xB974, 0xB974, prLV}, // Lo HANGUL SYLLABLE REU - {0xB975, 0xB98F, prLVT}, // Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH - {0xB990, 0xB990, prLV}, // Lo HANGUL SYLLABLE RYI - {0xB991, 0xB9AB, prLVT}, // Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH - {0xB9AC, 0xB9AC, prLV}, // Lo HANGUL SYLLABLE RI - {0xB9AD, 0xB9C7, prLVT}, // Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH - {0xB9C8, 0xB9C8, prLV}, // Lo HANGUL SYLLABLE MA - {0xB9C9, 0xB9E3, prLVT}, // Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH - {0xB9E4, 0xB9E4, prLV}, // Lo HANGUL SYLLABLE MAE - {0xB9E5, 0xB9FF, prLVT}, // Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH - {0xBA00, 0xBA00, prLV}, // Lo HANGUL SYLLABLE MYA - {0xBA01, 0xBA1B, prLVT}, // Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH - {0xBA1C, 0xBA1C, prLV}, // Lo HANGUL SYLLABLE MYAE - {0xBA1D, 0xBA37, prLVT}, // Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH - {0xBA38, 0xBA38, prLV}, // Lo HANGUL SYLLABLE MEO - {0xBA39, 0xBA53, prLVT}, // Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH - {0xBA54, 0xBA54, prLV}, // Lo HANGUL SYLLABLE ME - {0xBA55, 0xBA6F, prLVT}, // Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH - {0xBA70, 0xBA70, prLV}, // Lo HANGUL SYLLABLE MYEO - {0xBA71, 0xBA8B, prLVT}, // Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH - {0xBA8C, 0xBA8C, prLV}, // Lo HANGUL SYLLABLE MYE - {0xBA8D, 0xBAA7, prLVT}, // Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH - {0xBAA8, 0xBAA8, prLV}, // Lo HANGUL SYLLABLE MO - {0xBAA9, 0xBAC3, prLVT}, // Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH - {0xBAC4, 0xBAC4, prLV}, // Lo HANGUL SYLLABLE MWA - {0xBAC5, 0xBADF, prLVT}, // Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH - {0xBAE0, 0xBAE0, prLV}, // Lo HANGUL SYLLABLE MWAE - {0xBAE1, 0xBAFB, prLVT}, // Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH - {0xBAFC, 0xBAFC, prLV}, // Lo HANGUL SYLLABLE MOE - {0xBAFD, 0xBB17, prLVT}, // Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH - {0xBB18, 0xBB18, prLV}, // Lo HANGUL SYLLABLE MYO - {0xBB19, 0xBB33, prLVT}, // Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH - {0xBB34, 0xBB34, prLV}, // Lo HANGUL SYLLABLE MU - {0xBB35, 0xBB4F, prLVT}, // Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH - {0xBB50, 0xBB50, prLV}, // Lo HANGUL SYLLABLE MWEO - {0xBB51, 0xBB6B, prLVT}, // Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH - {0xBB6C, 0xBB6C, prLV}, // Lo HANGUL SYLLABLE MWE - {0xBB6D, 0xBB87, prLVT}, // Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH - {0xBB88, 0xBB88, prLV}, // Lo HANGUL SYLLABLE MWI - {0xBB89, 0xBBA3, prLVT}, // Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH - {0xBBA4, 0xBBA4, prLV}, // Lo HANGUL SYLLABLE MYU - {0xBBA5, 0xBBBF, prLVT}, // Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH - {0xBBC0, 0xBBC0, prLV}, // Lo HANGUL SYLLABLE MEU - {0xBBC1, 0xBBDB, prLVT}, // Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH - {0xBBDC, 0xBBDC, prLV}, // Lo HANGUL SYLLABLE MYI - {0xBBDD, 0xBBF7, prLVT}, // Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH - {0xBBF8, 0xBBF8, prLV}, // Lo HANGUL SYLLABLE MI - {0xBBF9, 0xBC13, prLVT}, // Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH - {0xBC14, 0xBC14, prLV}, // Lo HANGUL SYLLABLE BA - {0xBC15, 0xBC2F, prLVT}, // Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH - {0xBC30, 0xBC30, prLV}, // Lo HANGUL SYLLABLE BAE - {0xBC31, 0xBC4B, prLVT}, // Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH - {0xBC4C, 0xBC4C, prLV}, // Lo HANGUL SYLLABLE BYA - {0xBC4D, 0xBC67, prLVT}, // Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH - {0xBC68, 0xBC68, prLV}, // Lo HANGUL SYLLABLE BYAE - {0xBC69, 0xBC83, prLVT}, // Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH - {0xBC84, 0xBC84, prLV}, // Lo HANGUL SYLLABLE BEO - {0xBC85, 0xBC9F, prLVT}, // Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH - {0xBCA0, 0xBCA0, prLV}, // Lo HANGUL SYLLABLE BE - {0xBCA1, 0xBCBB, prLVT}, // Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH - {0xBCBC, 0xBCBC, prLV}, // Lo HANGUL SYLLABLE BYEO - {0xBCBD, 0xBCD7, prLVT}, // Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH - {0xBCD8, 0xBCD8, prLV}, // Lo HANGUL SYLLABLE BYE - {0xBCD9, 0xBCF3, prLVT}, // Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH - {0xBCF4, 0xBCF4, prLV}, // Lo HANGUL SYLLABLE BO - {0xBCF5, 0xBD0F, prLVT}, // Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH - {0xBD10, 0xBD10, prLV}, // Lo HANGUL SYLLABLE BWA - {0xBD11, 0xBD2B, prLVT}, // Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH - {0xBD2C, 0xBD2C, prLV}, // Lo HANGUL SYLLABLE BWAE - {0xBD2D, 0xBD47, prLVT}, // Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH - {0xBD48, 0xBD48, prLV}, // Lo HANGUL SYLLABLE BOE - {0xBD49, 0xBD63, prLVT}, // Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH - {0xBD64, 0xBD64, prLV}, // Lo HANGUL SYLLABLE BYO - {0xBD65, 0xBD7F, prLVT}, // Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH - {0xBD80, 0xBD80, prLV}, // Lo HANGUL SYLLABLE BU - {0xBD81, 0xBD9B, prLVT}, // Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH - {0xBD9C, 0xBD9C, prLV}, // Lo HANGUL SYLLABLE BWEO - {0xBD9D, 0xBDB7, prLVT}, // Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH - {0xBDB8, 0xBDB8, prLV}, // Lo HANGUL SYLLABLE BWE - {0xBDB9, 0xBDD3, prLVT}, // Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH - {0xBDD4, 0xBDD4, prLV}, // Lo HANGUL SYLLABLE BWI - {0xBDD5, 0xBDEF, prLVT}, // Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH - {0xBDF0, 0xBDF0, prLV}, // Lo HANGUL SYLLABLE BYU - {0xBDF1, 0xBE0B, prLVT}, // Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH - {0xBE0C, 0xBE0C, prLV}, // Lo HANGUL SYLLABLE BEU - {0xBE0D, 0xBE27, prLVT}, // Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH - {0xBE28, 0xBE28, prLV}, // Lo HANGUL SYLLABLE BYI - {0xBE29, 0xBE43, prLVT}, // Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH - {0xBE44, 0xBE44, prLV}, // Lo HANGUL SYLLABLE BI - {0xBE45, 0xBE5F, prLVT}, // Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH - {0xBE60, 0xBE60, prLV}, // Lo HANGUL SYLLABLE BBA - {0xBE61, 0xBE7B, prLVT}, // Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH - {0xBE7C, 0xBE7C, prLV}, // Lo HANGUL SYLLABLE BBAE - {0xBE7D, 0xBE97, prLVT}, // Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH - {0xBE98, 0xBE98, prLV}, // Lo HANGUL SYLLABLE BBYA - {0xBE99, 0xBEB3, prLVT}, // Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH - {0xBEB4, 0xBEB4, prLV}, // Lo HANGUL SYLLABLE BBYAE - {0xBEB5, 0xBECF, prLVT}, // Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH - {0xBED0, 0xBED0, prLV}, // Lo HANGUL SYLLABLE BBEO - {0xBED1, 0xBEEB, prLVT}, // Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH - {0xBEEC, 0xBEEC, prLV}, // Lo HANGUL SYLLABLE BBE - {0xBEED, 0xBF07, prLVT}, // Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH - {0xBF08, 0xBF08, prLV}, // Lo HANGUL SYLLABLE BBYEO - {0xBF09, 0xBF23, prLVT}, // Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH - {0xBF24, 0xBF24, prLV}, // Lo HANGUL SYLLABLE BBYE - {0xBF25, 0xBF3F, prLVT}, // Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH - {0xBF40, 0xBF40, prLV}, // Lo HANGUL SYLLABLE BBO - {0xBF41, 0xBF5B, prLVT}, // Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH - {0xBF5C, 0xBF5C, prLV}, // Lo HANGUL SYLLABLE BBWA - {0xBF5D, 0xBF77, prLVT}, // Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH - {0xBF78, 0xBF78, prLV}, // Lo HANGUL SYLLABLE BBWAE - {0xBF79, 0xBF93, prLVT}, // Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH - {0xBF94, 0xBF94, prLV}, // Lo HANGUL SYLLABLE BBOE - {0xBF95, 0xBFAF, prLVT}, // Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH - {0xBFB0, 0xBFB0, prLV}, // Lo HANGUL SYLLABLE BBYO - {0xBFB1, 0xBFCB, prLVT}, // Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH - {0xBFCC, 0xBFCC, prLV}, // Lo HANGUL SYLLABLE BBU - {0xBFCD, 0xBFE7, prLVT}, // Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH - {0xBFE8, 0xBFE8, prLV}, // Lo HANGUL SYLLABLE BBWEO - {0xBFE9, 0xC003, prLVT}, // Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH - {0xC004, 0xC004, prLV}, // Lo HANGUL SYLLABLE BBWE - {0xC005, 0xC01F, prLVT}, // Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH - {0xC020, 0xC020, prLV}, // Lo HANGUL SYLLABLE BBWI - {0xC021, 0xC03B, prLVT}, // Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH - {0xC03C, 0xC03C, prLV}, // Lo HANGUL SYLLABLE BBYU - {0xC03D, 0xC057, prLVT}, // Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH - {0xC058, 0xC058, prLV}, // Lo HANGUL SYLLABLE BBEU - {0xC059, 0xC073, prLVT}, // Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH - {0xC074, 0xC074, prLV}, // Lo HANGUL SYLLABLE BBYI - {0xC075, 0xC08F, prLVT}, // Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH - {0xC090, 0xC090, prLV}, // Lo HANGUL SYLLABLE BBI - {0xC091, 0xC0AB, prLVT}, // Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH - {0xC0AC, 0xC0AC, prLV}, // Lo HANGUL SYLLABLE SA - {0xC0AD, 0xC0C7, prLVT}, // Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH - {0xC0C8, 0xC0C8, prLV}, // Lo HANGUL SYLLABLE SAE - {0xC0C9, 0xC0E3, prLVT}, // Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH - {0xC0E4, 0xC0E4, prLV}, // Lo HANGUL SYLLABLE SYA - {0xC0E5, 0xC0FF, prLVT}, // Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH - {0xC100, 0xC100, prLV}, // Lo HANGUL SYLLABLE SYAE - {0xC101, 0xC11B, prLVT}, // Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH - {0xC11C, 0xC11C, prLV}, // Lo HANGUL SYLLABLE SEO - {0xC11D, 0xC137, prLVT}, // Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH - {0xC138, 0xC138, prLV}, // Lo HANGUL SYLLABLE SE - {0xC139, 0xC153, prLVT}, // Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH - {0xC154, 0xC154, prLV}, // Lo HANGUL SYLLABLE SYEO - {0xC155, 0xC16F, prLVT}, // Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH - {0xC170, 0xC170, prLV}, // Lo HANGUL SYLLABLE SYE - {0xC171, 0xC18B, prLVT}, // Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH - {0xC18C, 0xC18C, prLV}, // Lo HANGUL SYLLABLE SO - {0xC18D, 0xC1A7, prLVT}, // Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH - {0xC1A8, 0xC1A8, prLV}, // Lo HANGUL SYLLABLE SWA - {0xC1A9, 0xC1C3, prLVT}, // Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH - {0xC1C4, 0xC1C4, prLV}, // Lo HANGUL SYLLABLE SWAE - {0xC1C5, 0xC1DF, prLVT}, // Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH - {0xC1E0, 0xC1E0, prLV}, // Lo HANGUL SYLLABLE SOE - {0xC1E1, 0xC1FB, prLVT}, // Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH - {0xC1FC, 0xC1FC, prLV}, // Lo HANGUL SYLLABLE SYO - {0xC1FD, 0xC217, prLVT}, // Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH - {0xC218, 0xC218, prLV}, // Lo HANGUL SYLLABLE SU - {0xC219, 0xC233, prLVT}, // Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH - {0xC234, 0xC234, prLV}, // Lo HANGUL SYLLABLE SWEO - {0xC235, 0xC24F, prLVT}, // Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH - {0xC250, 0xC250, prLV}, // Lo HANGUL SYLLABLE SWE - {0xC251, 0xC26B, prLVT}, // Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH - {0xC26C, 0xC26C, prLV}, // Lo HANGUL SYLLABLE SWI - {0xC26D, 0xC287, prLVT}, // Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH - {0xC288, 0xC288, prLV}, // Lo HANGUL SYLLABLE SYU - {0xC289, 0xC2A3, prLVT}, // Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH - {0xC2A4, 0xC2A4, prLV}, // Lo HANGUL SYLLABLE SEU - {0xC2A5, 0xC2BF, prLVT}, // Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH - {0xC2C0, 0xC2C0, prLV}, // Lo HANGUL SYLLABLE SYI - {0xC2C1, 0xC2DB, prLVT}, // Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH - {0xC2DC, 0xC2DC, prLV}, // Lo HANGUL SYLLABLE SI - {0xC2DD, 0xC2F7, prLVT}, // Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH - {0xC2F8, 0xC2F8, prLV}, // Lo HANGUL SYLLABLE SSA - {0xC2F9, 0xC313, prLVT}, // Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH - {0xC314, 0xC314, prLV}, // Lo HANGUL SYLLABLE SSAE - {0xC315, 0xC32F, prLVT}, // Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH - {0xC330, 0xC330, prLV}, // Lo HANGUL SYLLABLE SSYA - {0xC331, 0xC34B, prLVT}, // Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH - {0xC34C, 0xC34C, prLV}, // Lo HANGUL SYLLABLE SSYAE - {0xC34D, 0xC367, prLVT}, // Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH - {0xC368, 0xC368, prLV}, // Lo HANGUL SYLLABLE SSEO - {0xC369, 0xC383, prLVT}, // Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH - {0xC384, 0xC384, prLV}, // Lo HANGUL SYLLABLE SSE - {0xC385, 0xC39F, prLVT}, // Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH - {0xC3A0, 0xC3A0, prLV}, // Lo HANGUL SYLLABLE SSYEO - {0xC3A1, 0xC3BB, prLVT}, // Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH - {0xC3BC, 0xC3BC, prLV}, // Lo HANGUL SYLLABLE SSYE - {0xC3BD, 0xC3D7, prLVT}, // Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH - {0xC3D8, 0xC3D8, prLV}, // Lo HANGUL SYLLABLE SSO - {0xC3D9, 0xC3F3, prLVT}, // Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH - {0xC3F4, 0xC3F4, prLV}, // Lo HANGUL SYLLABLE SSWA - {0xC3F5, 0xC40F, prLVT}, // Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH - {0xC410, 0xC410, prLV}, // Lo HANGUL SYLLABLE SSWAE - {0xC411, 0xC42B, prLVT}, // Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH - {0xC42C, 0xC42C, prLV}, // Lo HANGUL SYLLABLE SSOE - {0xC42D, 0xC447, prLVT}, // Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH - {0xC448, 0xC448, prLV}, // Lo HANGUL SYLLABLE SSYO - {0xC449, 0xC463, prLVT}, // Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH - {0xC464, 0xC464, prLV}, // Lo HANGUL SYLLABLE SSU - {0xC465, 0xC47F, prLVT}, // Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH - {0xC480, 0xC480, prLV}, // Lo HANGUL SYLLABLE SSWEO - {0xC481, 0xC49B, prLVT}, // Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH - {0xC49C, 0xC49C, prLV}, // Lo HANGUL SYLLABLE SSWE - {0xC49D, 0xC4B7, prLVT}, // Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH - {0xC4B8, 0xC4B8, prLV}, // Lo HANGUL SYLLABLE SSWI - {0xC4B9, 0xC4D3, prLVT}, // Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH - {0xC4D4, 0xC4D4, prLV}, // Lo HANGUL SYLLABLE SSYU - {0xC4D5, 0xC4EF, prLVT}, // Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH - {0xC4F0, 0xC4F0, prLV}, // Lo HANGUL SYLLABLE SSEU - {0xC4F1, 0xC50B, prLVT}, // Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH - {0xC50C, 0xC50C, prLV}, // Lo HANGUL SYLLABLE SSYI - {0xC50D, 0xC527, prLVT}, // Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH - {0xC528, 0xC528, prLV}, // Lo HANGUL SYLLABLE SSI - {0xC529, 0xC543, prLVT}, // Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH - {0xC544, 0xC544, prLV}, // Lo HANGUL SYLLABLE A - {0xC545, 0xC55F, prLVT}, // Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH - {0xC560, 0xC560, prLV}, // Lo HANGUL SYLLABLE AE - {0xC561, 0xC57B, prLVT}, // Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH - {0xC57C, 0xC57C, prLV}, // Lo HANGUL SYLLABLE YA - {0xC57D, 0xC597, prLVT}, // Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH - {0xC598, 0xC598, prLV}, // Lo HANGUL SYLLABLE YAE - {0xC599, 0xC5B3, prLVT}, // Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH - {0xC5B4, 0xC5B4, prLV}, // Lo HANGUL SYLLABLE EO - {0xC5B5, 0xC5CF, prLVT}, // Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH - {0xC5D0, 0xC5D0, prLV}, // Lo HANGUL SYLLABLE E - {0xC5D1, 0xC5EB, prLVT}, // Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH - {0xC5EC, 0xC5EC, prLV}, // Lo HANGUL SYLLABLE YEO - {0xC5ED, 0xC607, prLVT}, // Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH - {0xC608, 0xC608, prLV}, // Lo HANGUL SYLLABLE YE - {0xC609, 0xC623, prLVT}, // Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH - {0xC624, 0xC624, prLV}, // Lo HANGUL SYLLABLE O - {0xC625, 0xC63F, prLVT}, // Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH - {0xC640, 0xC640, prLV}, // Lo HANGUL SYLLABLE WA - {0xC641, 0xC65B, prLVT}, // Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH - {0xC65C, 0xC65C, prLV}, // Lo HANGUL SYLLABLE WAE - {0xC65D, 0xC677, prLVT}, // Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH - {0xC678, 0xC678, prLV}, // Lo HANGUL SYLLABLE OE - {0xC679, 0xC693, prLVT}, // Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH - {0xC694, 0xC694, prLV}, // Lo HANGUL SYLLABLE YO - {0xC695, 0xC6AF, prLVT}, // Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH - {0xC6B0, 0xC6B0, prLV}, // Lo HANGUL SYLLABLE U - {0xC6B1, 0xC6CB, prLVT}, // Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH - {0xC6CC, 0xC6CC, prLV}, // Lo HANGUL SYLLABLE WEO - {0xC6CD, 0xC6E7, prLVT}, // Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH - {0xC6E8, 0xC6E8, prLV}, // Lo HANGUL SYLLABLE WE - {0xC6E9, 0xC703, prLVT}, // Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH - {0xC704, 0xC704, prLV}, // Lo HANGUL SYLLABLE WI - {0xC705, 0xC71F, prLVT}, // Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH - {0xC720, 0xC720, prLV}, // Lo HANGUL SYLLABLE YU - {0xC721, 0xC73B, prLVT}, // Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH - {0xC73C, 0xC73C, prLV}, // Lo HANGUL SYLLABLE EU - {0xC73D, 0xC757, prLVT}, // Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH - {0xC758, 0xC758, prLV}, // Lo HANGUL SYLLABLE YI - {0xC759, 0xC773, prLVT}, // Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH - {0xC774, 0xC774, prLV}, // Lo HANGUL SYLLABLE I - {0xC775, 0xC78F, prLVT}, // Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH - {0xC790, 0xC790, prLV}, // Lo HANGUL SYLLABLE JA - {0xC791, 0xC7AB, prLVT}, // Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH - {0xC7AC, 0xC7AC, prLV}, // Lo HANGUL SYLLABLE JAE - {0xC7AD, 0xC7C7, prLVT}, // Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH - {0xC7C8, 0xC7C8, prLV}, // Lo HANGUL SYLLABLE JYA - {0xC7C9, 0xC7E3, prLVT}, // Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH - {0xC7E4, 0xC7E4, prLV}, // Lo HANGUL SYLLABLE JYAE - {0xC7E5, 0xC7FF, prLVT}, // Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH - {0xC800, 0xC800, prLV}, // Lo HANGUL SYLLABLE JEO - {0xC801, 0xC81B, prLVT}, // Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH - {0xC81C, 0xC81C, prLV}, // Lo HANGUL SYLLABLE JE - {0xC81D, 0xC837, prLVT}, // Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH - {0xC838, 0xC838, prLV}, // Lo HANGUL SYLLABLE JYEO - {0xC839, 0xC853, prLVT}, // Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH - {0xC854, 0xC854, prLV}, // Lo HANGUL SYLLABLE JYE - {0xC855, 0xC86F, prLVT}, // Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH - {0xC870, 0xC870, prLV}, // Lo HANGUL SYLLABLE JO - {0xC871, 0xC88B, prLVT}, // Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH - {0xC88C, 0xC88C, prLV}, // Lo HANGUL SYLLABLE JWA - {0xC88D, 0xC8A7, prLVT}, // Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH - {0xC8A8, 0xC8A8, prLV}, // Lo HANGUL SYLLABLE JWAE - {0xC8A9, 0xC8C3, prLVT}, // Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH - {0xC8C4, 0xC8C4, prLV}, // Lo HANGUL SYLLABLE JOE - {0xC8C5, 0xC8DF, prLVT}, // Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH - {0xC8E0, 0xC8E0, prLV}, // Lo HANGUL SYLLABLE JYO - {0xC8E1, 0xC8FB, prLVT}, // Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH - {0xC8FC, 0xC8FC, prLV}, // Lo HANGUL SYLLABLE JU - {0xC8FD, 0xC917, prLVT}, // Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH - {0xC918, 0xC918, prLV}, // Lo HANGUL SYLLABLE JWEO - {0xC919, 0xC933, prLVT}, // Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH - {0xC934, 0xC934, prLV}, // Lo HANGUL SYLLABLE JWE - {0xC935, 0xC94F, prLVT}, // Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH - {0xC950, 0xC950, prLV}, // Lo HANGUL SYLLABLE JWI - {0xC951, 0xC96B, prLVT}, // Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH - {0xC96C, 0xC96C, prLV}, // Lo HANGUL SYLLABLE JYU - {0xC96D, 0xC987, prLVT}, // Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH - {0xC988, 0xC988, prLV}, // Lo HANGUL SYLLABLE JEU - {0xC989, 0xC9A3, prLVT}, // Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH - {0xC9A4, 0xC9A4, prLV}, // Lo HANGUL SYLLABLE JYI - {0xC9A5, 0xC9BF, prLVT}, // Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH - {0xC9C0, 0xC9C0, prLV}, // Lo HANGUL SYLLABLE JI - {0xC9C1, 0xC9DB, prLVT}, // Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH - {0xC9DC, 0xC9DC, prLV}, // Lo HANGUL SYLLABLE JJA - {0xC9DD, 0xC9F7, prLVT}, // Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH - {0xC9F8, 0xC9F8, prLV}, // Lo HANGUL SYLLABLE JJAE - {0xC9F9, 0xCA13, prLVT}, // Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH - {0xCA14, 0xCA14, prLV}, // Lo HANGUL SYLLABLE JJYA - {0xCA15, 0xCA2F, prLVT}, // Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH - {0xCA30, 0xCA30, prLV}, // Lo HANGUL SYLLABLE JJYAE - {0xCA31, 0xCA4B, prLVT}, // Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH - {0xCA4C, 0xCA4C, prLV}, // Lo HANGUL SYLLABLE JJEO - {0xCA4D, 0xCA67, prLVT}, // Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH - {0xCA68, 0xCA68, prLV}, // Lo HANGUL SYLLABLE JJE - {0xCA69, 0xCA83, prLVT}, // Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH - {0xCA84, 0xCA84, prLV}, // Lo HANGUL SYLLABLE JJYEO - {0xCA85, 0xCA9F, prLVT}, // Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH - {0xCAA0, 0xCAA0, prLV}, // Lo HANGUL SYLLABLE JJYE - {0xCAA1, 0xCABB, prLVT}, // Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH - {0xCABC, 0xCABC, prLV}, // Lo HANGUL SYLLABLE JJO - {0xCABD, 0xCAD7, prLVT}, // Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH - {0xCAD8, 0xCAD8, prLV}, // Lo HANGUL SYLLABLE JJWA - {0xCAD9, 0xCAF3, prLVT}, // Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH - {0xCAF4, 0xCAF4, prLV}, // Lo HANGUL SYLLABLE JJWAE - {0xCAF5, 0xCB0F, prLVT}, // Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH - {0xCB10, 0xCB10, prLV}, // Lo HANGUL SYLLABLE JJOE - {0xCB11, 0xCB2B, prLVT}, // Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH - {0xCB2C, 0xCB2C, prLV}, // Lo HANGUL SYLLABLE JJYO - {0xCB2D, 0xCB47, prLVT}, // Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH - {0xCB48, 0xCB48, prLV}, // Lo HANGUL SYLLABLE JJU - {0xCB49, 0xCB63, prLVT}, // Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH - {0xCB64, 0xCB64, prLV}, // Lo HANGUL SYLLABLE JJWEO - {0xCB65, 0xCB7F, prLVT}, // Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH - {0xCB80, 0xCB80, prLV}, // Lo HANGUL SYLLABLE JJWE - {0xCB81, 0xCB9B, prLVT}, // Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH - {0xCB9C, 0xCB9C, prLV}, // Lo HANGUL SYLLABLE JJWI - {0xCB9D, 0xCBB7, prLVT}, // Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH - {0xCBB8, 0xCBB8, prLV}, // Lo HANGUL SYLLABLE JJYU - {0xCBB9, 0xCBD3, prLVT}, // Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH - {0xCBD4, 0xCBD4, prLV}, // Lo HANGUL SYLLABLE JJEU - {0xCBD5, 0xCBEF, prLVT}, // Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH - {0xCBF0, 0xCBF0, prLV}, // Lo HANGUL SYLLABLE JJYI - {0xCBF1, 0xCC0B, prLVT}, // Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH - {0xCC0C, 0xCC0C, prLV}, // Lo HANGUL SYLLABLE JJI - {0xCC0D, 0xCC27, prLVT}, // Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH - {0xCC28, 0xCC28, prLV}, // Lo HANGUL SYLLABLE CA - {0xCC29, 0xCC43, prLVT}, // Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH - {0xCC44, 0xCC44, prLV}, // Lo HANGUL SYLLABLE CAE - {0xCC45, 0xCC5F, prLVT}, // Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH - {0xCC60, 0xCC60, prLV}, // Lo HANGUL SYLLABLE CYA - {0xCC61, 0xCC7B, prLVT}, // Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH - {0xCC7C, 0xCC7C, prLV}, // Lo HANGUL SYLLABLE CYAE - {0xCC7D, 0xCC97, prLVT}, // Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH - {0xCC98, 0xCC98, prLV}, // Lo HANGUL SYLLABLE CEO - {0xCC99, 0xCCB3, prLVT}, // Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH - {0xCCB4, 0xCCB4, prLV}, // Lo HANGUL SYLLABLE CE - {0xCCB5, 0xCCCF, prLVT}, // Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH - {0xCCD0, 0xCCD0, prLV}, // Lo HANGUL SYLLABLE CYEO - {0xCCD1, 0xCCEB, prLVT}, // Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH - {0xCCEC, 0xCCEC, prLV}, // Lo HANGUL SYLLABLE CYE - {0xCCED, 0xCD07, prLVT}, // Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH - {0xCD08, 0xCD08, prLV}, // Lo HANGUL SYLLABLE CO - {0xCD09, 0xCD23, prLVT}, // Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH - {0xCD24, 0xCD24, prLV}, // Lo HANGUL SYLLABLE CWA - {0xCD25, 0xCD3F, prLVT}, // Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH - {0xCD40, 0xCD40, prLV}, // Lo HANGUL SYLLABLE CWAE - {0xCD41, 0xCD5B, prLVT}, // Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH - {0xCD5C, 0xCD5C, prLV}, // Lo HANGUL SYLLABLE COE - {0xCD5D, 0xCD77, prLVT}, // Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH - {0xCD78, 0xCD78, prLV}, // Lo HANGUL SYLLABLE CYO - {0xCD79, 0xCD93, prLVT}, // Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH - {0xCD94, 0xCD94, prLV}, // Lo HANGUL SYLLABLE CU - {0xCD95, 0xCDAF, prLVT}, // Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH - {0xCDB0, 0xCDB0, prLV}, // Lo HANGUL SYLLABLE CWEO - {0xCDB1, 0xCDCB, prLVT}, // Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH - {0xCDCC, 0xCDCC, prLV}, // Lo HANGUL SYLLABLE CWE - {0xCDCD, 0xCDE7, prLVT}, // Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH - {0xCDE8, 0xCDE8, prLV}, // Lo HANGUL SYLLABLE CWI - {0xCDE9, 0xCE03, prLVT}, // Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH - {0xCE04, 0xCE04, prLV}, // Lo HANGUL SYLLABLE CYU - {0xCE05, 0xCE1F, prLVT}, // Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH - {0xCE20, 0xCE20, prLV}, // Lo HANGUL SYLLABLE CEU - {0xCE21, 0xCE3B, prLVT}, // Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH - {0xCE3C, 0xCE3C, prLV}, // Lo HANGUL SYLLABLE CYI - {0xCE3D, 0xCE57, prLVT}, // Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH - {0xCE58, 0xCE58, prLV}, // Lo HANGUL SYLLABLE CI - {0xCE59, 0xCE73, prLVT}, // Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH - {0xCE74, 0xCE74, prLV}, // Lo HANGUL SYLLABLE KA - {0xCE75, 0xCE8F, prLVT}, // Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH - {0xCE90, 0xCE90, prLV}, // Lo HANGUL SYLLABLE KAE - {0xCE91, 0xCEAB, prLVT}, // Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH - {0xCEAC, 0xCEAC, prLV}, // Lo HANGUL SYLLABLE KYA - {0xCEAD, 0xCEC7, prLVT}, // Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH - {0xCEC8, 0xCEC8, prLV}, // Lo HANGUL SYLLABLE KYAE - {0xCEC9, 0xCEE3, prLVT}, // Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH - {0xCEE4, 0xCEE4, prLV}, // Lo HANGUL SYLLABLE KEO - {0xCEE5, 0xCEFF, prLVT}, // Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH - {0xCF00, 0xCF00, prLV}, // Lo HANGUL SYLLABLE KE - {0xCF01, 0xCF1B, prLVT}, // Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH - {0xCF1C, 0xCF1C, prLV}, // Lo HANGUL SYLLABLE KYEO - {0xCF1D, 0xCF37, prLVT}, // Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH - {0xCF38, 0xCF38, prLV}, // Lo HANGUL SYLLABLE KYE - {0xCF39, 0xCF53, prLVT}, // Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH - {0xCF54, 0xCF54, prLV}, // Lo HANGUL SYLLABLE KO - {0xCF55, 0xCF6F, prLVT}, // Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH - {0xCF70, 0xCF70, prLV}, // Lo HANGUL SYLLABLE KWA - {0xCF71, 0xCF8B, prLVT}, // Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH - {0xCF8C, 0xCF8C, prLV}, // Lo HANGUL SYLLABLE KWAE - {0xCF8D, 0xCFA7, prLVT}, // Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH - {0xCFA8, 0xCFA8, prLV}, // Lo HANGUL SYLLABLE KOE - {0xCFA9, 0xCFC3, prLVT}, // Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH - {0xCFC4, 0xCFC4, prLV}, // Lo HANGUL SYLLABLE KYO - {0xCFC5, 0xCFDF, prLVT}, // Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH - {0xCFE0, 0xCFE0, prLV}, // Lo HANGUL SYLLABLE KU - {0xCFE1, 0xCFFB, prLVT}, // Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH - {0xCFFC, 0xCFFC, prLV}, // Lo HANGUL SYLLABLE KWEO - {0xCFFD, 0xD017, prLVT}, // Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH - {0xD018, 0xD018, prLV}, // Lo HANGUL SYLLABLE KWE - {0xD019, 0xD033, prLVT}, // Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH - {0xD034, 0xD034, prLV}, // Lo HANGUL SYLLABLE KWI - {0xD035, 0xD04F, prLVT}, // Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH - {0xD050, 0xD050, prLV}, // Lo HANGUL SYLLABLE KYU - {0xD051, 0xD06B, prLVT}, // Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH - {0xD06C, 0xD06C, prLV}, // Lo HANGUL SYLLABLE KEU - {0xD06D, 0xD087, prLVT}, // Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH - {0xD088, 0xD088, prLV}, // Lo HANGUL SYLLABLE KYI - {0xD089, 0xD0A3, prLVT}, // Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH - {0xD0A4, 0xD0A4, prLV}, // Lo HANGUL SYLLABLE KI - {0xD0A5, 0xD0BF, prLVT}, // Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH - {0xD0C0, 0xD0C0, prLV}, // Lo HANGUL SYLLABLE TA - {0xD0C1, 0xD0DB, prLVT}, // Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH - {0xD0DC, 0xD0DC, prLV}, // Lo HANGUL SYLLABLE TAE - {0xD0DD, 0xD0F7, prLVT}, // Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH - {0xD0F8, 0xD0F8, prLV}, // Lo HANGUL SYLLABLE TYA - {0xD0F9, 0xD113, prLVT}, // Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH - {0xD114, 0xD114, prLV}, // Lo HANGUL SYLLABLE TYAE - {0xD115, 0xD12F, prLVT}, // Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH - {0xD130, 0xD130, prLV}, // Lo HANGUL SYLLABLE TEO - {0xD131, 0xD14B, prLVT}, // Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH - {0xD14C, 0xD14C, prLV}, // Lo HANGUL SYLLABLE TE - {0xD14D, 0xD167, prLVT}, // Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH - {0xD168, 0xD168, prLV}, // Lo HANGUL SYLLABLE TYEO - {0xD169, 0xD183, prLVT}, // Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH - {0xD184, 0xD184, prLV}, // Lo HANGUL SYLLABLE TYE - {0xD185, 0xD19F, prLVT}, // Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH - {0xD1A0, 0xD1A0, prLV}, // Lo HANGUL SYLLABLE TO - {0xD1A1, 0xD1BB, prLVT}, // Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH - {0xD1BC, 0xD1BC, prLV}, // Lo HANGUL SYLLABLE TWA - {0xD1BD, 0xD1D7, prLVT}, // Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH - {0xD1D8, 0xD1D8, prLV}, // Lo HANGUL SYLLABLE TWAE - {0xD1D9, 0xD1F3, prLVT}, // Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH - {0xD1F4, 0xD1F4, prLV}, // Lo HANGUL SYLLABLE TOE - {0xD1F5, 0xD20F, prLVT}, // Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH - {0xD210, 0xD210, prLV}, // Lo HANGUL SYLLABLE TYO - {0xD211, 0xD22B, prLVT}, // Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH - {0xD22C, 0xD22C, prLV}, // Lo HANGUL SYLLABLE TU - {0xD22D, 0xD247, prLVT}, // Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH - {0xD248, 0xD248, prLV}, // Lo HANGUL SYLLABLE TWEO - {0xD249, 0xD263, prLVT}, // Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH - {0xD264, 0xD264, prLV}, // Lo HANGUL SYLLABLE TWE - {0xD265, 0xD27F, prLVT}, // Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH - {0xD280, 0xD280, prLV}, // Lo HANGUL SYLLABLE TWI - {0xD281, 0xD29B, prLVT}, // Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH - {0xD29C, 0xD29C, prLV}, // Lo HANGUL SYLLABLE TYU - {0xD29D, 0xD2B7, prLVT}, // Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH - {0xD2B8, 0xD2B8, prLV}, // Lo HANGUL SYLLABLE TEU - {0xD2B9, 0xD2D3, prLVT}, // Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH - {0xD2D4, 0xD2D4, prLV}, // Lo HANGUL SYLLABLE TYI - {0xD2D5, 0xD2EF, prLVT}, // Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH - {0xD2F0, 0xD2F0, prLV}, // Lo HANGUL SYLLABLE TI - {0xD2F1, 0xD30B, prLVT}, // Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH - {0xD30C, 0xD30C, prLV}, // Lo HANGUL SYLLABLE PA - {0xD30D, 0xD327, prLVT}, // Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH - {0xD328, 0xD328, prLV}, // Lo HANGUL SYLLABLE PAE - {0xD329, 0xD343, prLVT}, // Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH - {0xD344, 0xD344, prLV}, // Lo HANGUL SYLLABLE PYA - {0xD345, 0xD35F, prLVT}, // Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH - {0xD360, 0xD360, prLV}, // Lo HANGUL SYLLABLE PYAE - {0xD361, 0xD37B, prLVT}, // Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH - {0xD37C, 0xD37C, prLV}, // Lo HANGUL SYLLABLE PEO - {0xD37D, 0xD397, prLVT}, // Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH - {0xD398, 0xD398, prLV}, // Lo HANGUL SYLLABLE PE - {0xD399, 0xD3B3, prLVT}, // Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH - {0xD3B4, 0xD3B4, prLV}, // Lo HANGUL SYLLABLE PYEO - {0xD3B5, 0xD3CF, prLVT}, // Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH - {0xD3D0, 0xD3D0, prLV}, // Lo HANGUL SYLLABLE PYE - {0xD3D1, 0xD3EB, prLVT}, // Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH - {0xD3EC, 0xD3EC, prLV}, // Lo HANGUL SYLLABLE PO - {0xD3ED, 0xD407, prLVT}, // Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH - {0xD408, 0xD408, prLV}, // Lo HANGUL SYLLABLE PWA - {0xD409, 0xD423, prLVT}, // Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH - {0xD424, 0xD424, prLV}, // Lo HANGUL SYLLABLE PWAE - {0xD425, 0xD43F, prLVT}, // Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH - {0xD440, 0xD440, prLV}, // Lo HANGUL SYLLABLE POE - {0xD441, 0xD45B, prLVT}, // Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH - {0xD45C, 0xD45C, prLV}, // Lo HANGUL SYLLABLE PYO - {0xD45D, 0xD477, prLVT}, // Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH - {0xD478, 0xD478, prLV}, // Lo HANGUL SYLLABLE PU - {0xD479, 0xD493, prLVT}, // Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH - {0xD494, 0xD494, prLV}, // Lo HANGUL SYLLABLE PWEO - {0xD495, 0xD4AF, prLVT}, // Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH - {0xD4B0, 0xD4B0, prLV}, // Lo HANGUL SYLLABLE PWE - {0xD4B1, 0xD4CB, prLVT}, // Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH - {0xD4CC, 0xD4CC, prLV}, // Lo HANGUL SYLLABLE PWI - {0xD4CD, 0xD4E7, prLVT}, // Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH - {0xD4E8, 0xD4E8, prLV}, // Lo HANGUL SYLLABLE PYU - {0xD4E9, 0xD503, prLVT}, // Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH - {0xD504, 0xD504, prLV}, // Lo HANGUL SYLLABLE PEU - {0xD505, 0xD51F, prLVT}, // Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH - {0xD520, 0xD520, prLV}, // Lo HANGUL SYLLABLE PYI - {0xD521, 0xD53B, prLVT}, // Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH - {0xD53C, 0xD53C, prLV}, // Lo HANGUL SYLLABLE PI - {0xD53D, 0xD557, prLVT}, // Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH - {0xD558, 0xD558, prLV}, // Lo HANGUL SYLLABLE HA - {0xD559, 0xD573, prLVT}, // Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH - {0xD574, 0xD574, prLV}, // Lo HANGUL SYLLABLE HAE - {0xD575, 0xD58F, prLVT}, // Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH - {0xD590, 0xD590, prLV}, // Lo HANGUL SYLLABLE HYA - {0xD591, 0xD5AB, prLVT}, // Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH - {0xD5AC, 0xD5AC, prLV}, // Lo HANGUL SYLLABLE HYAE - {0xD5AD, 0xD5C7, prLVT}, // Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH - {0xD5C8, 0xD5C8, prLV}, // Lo HANGUL SYLLABLE HEO - {0xD5C9, 0xD5E3, prLVT}, // Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH - {0xD5E4, 0xD5E4, prLV}, // Lo HANGUL SYLLABLE HE - {0xD5E5, 0xD5FF, prLVT}, // Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH - {0xD600, 0xD600, prLV}, // Lo HANGUL SYLLABLE HYEO - {0xD601, 0xD61B, prLVT}, // Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH - {0xD61C, 0xD61C, prLV}, // Lo HANGUL SYLLABLE HYE - {0xD61D, 0xD637, prLVT}, // Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH - {0xD638, 0xD638, prLV}, // Lo HANGUL SYLLABLE HO - {0xD639, 0xD653, prLVT}, // Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH - {0xD654, 0xD654, prLV}, // Lo HANGUL SYLLABLE HWA - {0xD655, 0xD66F, prLVT}, // Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH - {0xD670, 0xD670, prLV}, // Lo HANGUL SYLLABLE HWAE - {0xD671, 0xD68B, prLVT}, // Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH - {0xD68C, 0xD68C, prLV}, // Lo HANGUL SYLLABLE HOE - {0xD68D, 0xD6A7, prLVT}, // Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH - {0xD6A8, 0xD6A8, prLV}, // Lo HANGUL SYLLABLE HYO - {0xD6A9, 0xD6C3, prLVT}, // Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH - {0xD6C4, 0xD6C4, prLV}, // Lo HANGUL SYLLABLE HU - {0xD6C5, 0xD6DF, prLVT}, // Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH - {0xD6E0, 0xD6E0, prLV}, // Lo HANGUL SYLLABLE HWEO - {0xD6E1, 0xD6FB, prLVT}, // Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH - {0xD6FC, 0xD6FC, prLV}, // Lo HANGUL SYLLABLE HWE - {0xD6FD, 0xD717, prLVT}, // Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH - {0xD718, 0xD718, prLV}, // Lo HANGUL SYLLABLE HWI - {0xD719, 0xD733, prLVT}, // Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH - {0xD734, 0xD734, prLV}, // Lo HANGUL SYLLABLE HYU - {0xD735, 0xD74F, prLVT}, // Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH - {0xD750, 0xD750, prLV}, // Lo HANGUL SYLLABLE HEU - {0xD751, 0xD76B, prLVT}, // Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH - {0xD76C, 0xD76C, prLV}, // Lo HANGUL SYLLABLE HYI - {0xD76D, 0xD787, prLVT}, // Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH - {0xD788, 0xD788, prLV}, // Lo HANGUL SYLLABLE HI - {0xD789, 0xD7A3, prLVT}, // Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH - {0xD7B0, 0xD7C6, prV}, // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E - {0xD7CB, 0xD7FB, prT}, // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH - {0xFB1E, 0xFB1E, prExtend}, // Mn HEBREW POINT JUDEO-SPANISH VARIKA - {0xFE00, 0xFE0F, prExtend}, // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 - {0xFE20, 0xFE2F, prExtend}, // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF - {0xFEFF, 0xFEFF, prControl}, // Cf ZERO WIDTH NO-BREAK SPACE - {0xFF9E, 0xFF9F, prExtend}, // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK - {0xFFF0, 0xFFF8, prControl}, // Cn [9] .. - {0xFFF9, 0xFFFB, prControl}, // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR - {0x101FD, 0x101FD, prExtend}, // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE - {0x102E0, 0x102E0, prExtend}, // Mn COPTIC EPACT THOUSANDS MARK - {0x10376, 0x1037A, prExtend}, // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII - {0x10A01, 0x10A03, prExtend}, // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R - {0x10A05, 0x10A06, prExtend}, // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O - {0x10A0C, 0x10A0F, prExtend}, // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA - {0x10A38, 0x10A3A, prExtend}, // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW - {0x10A3F, 0x10A3F, prExtend}, // Mn KHAROSHTHI VIRAMA - {0x10AE5, 0x10AE6, prExtend}, // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW - {0x10D24, 0x10D27, prExtend}, // Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI - {0x10EAB, 0x10EAC, prExtend}, // Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK - {0x10EFD, 0x10EFF, prExtend}, // Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA - {0x10F46, 0x10F50, prExtend}, // Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW - {0x10F82, 0x10F85, prExtend}, // Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW - {0x11000, 0x11000, prSpacingMark}, // Mc BRAHMI SIGN CANDRABINDU - {0x11001, 0x11001, prExtend}, // Mn BRAHMI SIGN ANUSVARA - {0x11002, 0x11002, prSpacingMark}, // Mc BRAHMI SIGN VISARGA - {0x11038, 0x11046, prExtend}, // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA - {0x11070, 0x11070, prExtend}, // Mn BRAHMI SIGN OLD TAMIL VIRAMA - {0x11073, 0x11074, prExtend}, // Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O - {0x1107F, 0x11081, prExtend}, // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA - {0x11082, 0x11082, prSpacingMark}, // Mc KAITHI SIGN VISARGA - {0x110B0, 0x110B2, prSpacingMark}, // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II - {0x110B3, 0x110B6, prExtend}, // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI - {0x110B7, 0x110B8, prSpacingMark}, // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU - {0x110B9, 0x110BA, prExtend}, // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA - {0x110BD, 0x110BD, prPrepend}, // Cf KAITHI NUMBER SIGN - {0x110C2, 0x110C2, prExtend}, // Mn KAITHI VOWEL SIGN VOCALIC R - {0x110CD, 0x110CD, prPrepend}, // Cf KAITHI NUMBER SIGN ABOVE - {0x11100, 0x11102, prExtend}, // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA - {0x11127, 0x1112B, prExtend}, // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU - {0x1112C, 0x1112C, prSpacingMark}, // Mc CHAKMA VOWEL SIGN E - {0x1112D, 0x11134, prExtend}, // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA - {0x11145, 0x11146, prSpacingMark}, // Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI - {0x11173, 0x11173, prExtend}, // Mn MAHAJANI SIGN NUKTA - {0x11180, 0x11181, prExtend}, // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA - {0x11182, 0x11182, prSpacingMark}, // Mc SHARADA SIGN VISARGA - {0x111B3, 0x111B5, prSpacingMark}, // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II - {0x111B6, 0x111BE, prExtend}, // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O - {0x111BF, 0x111C0, prSpacingMark}, // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA - {0x111C2, 0x111C3, prPrepend}, // Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA - {0x111C9, 0x111CC, prExtend}, // Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK - {0x111CE, 0x111CE, prSpacingMark}, // Mc SHARADA VOWEL SIGN PRISHTHAMATRA E - {0x111CF, 0x111CF, prExtend}, // Mn SHARADA SIGN INVERTED CANDRABINDU - {0x1122C, 0x1122E, prSpacingMark}, // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II - {0x1122F, 0x11231, prExtend}, // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI - {0x11232, 0x11233, prSpacingMark}, // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU - {0x11234, 0x11234, prExtend}, // Mn KHOJKI SIGN ANUSVARA - {0x11235, 0x11235, prSpacingMark}, // Mc KHOJKI SIGN VIRAMA - {0x11236, 0x11237, prExtend}, // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA - {0x1123E, 0x1123E, prExtend}, // Mn KHOJKI SIGN SUKUN - {0x11241, 0x11241, prExtend}, // Mn KHOJKI VOWEL SIGN VOCALIC R - {0x112DF, 0x112DF, prExtend}, // Mn KHUDAWADI SIGN ANUSVARA - {0x112E0, 0x112E2, prSpacingMark}, // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II - {0x112E3, 0x112EA, prExtend}, // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA - {0x11300, 0x11301, prExtend}, // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU - {0x11302, 0x11303, prSpacingMark}, // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA - {0x1133B, 0x1133C, prExtend}, // Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA - {0x1133E, 0x1133E, prExtend}, // Mc GRANTHA VOWEL SIGN AA - {0x1133F, 0x1133F, prSpacingMark}, // Mc GRANTHA VOWEL SIGN I - {0x11340, 0x11340, prExtend}, // Mn GRANTHA VOWEL SIGN II - {0x11341, 0x11344, prSpacingMark}, // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR - {0x11347, 0x11348, prSpacingMark}, // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI - {0x1134B, 0x1134D, prSpacingMark}, // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA - {0x11357, 0x11357, prExtend}, // Mc GRANTHA AU LENGTH MARK - {0x11362, 0x11363, prSpacingMark}, // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL - {0x11366, 0x1136C, prExtend}, // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX - {0x11370, 0x11374, prExtend}, // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA - {0x11435, 0x11437, prSpacingMark}, // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II - {0x11438, 0x1143F, prExtend}, // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI - {0x11440, 0x11441, prSpacingMark}, // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU - {0x11442, 0x11444, prExtend}, // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA - {0x11445, 0x11445, prSpacingMark}, // Mc NEWA SIGN VISARGA - {0x11446, 0x11446, prExtend}, // Mn NEWA SIGN NUKTA - {0x1145E, 0x1145E, prExtend}, // Mn NEWA SANDHI MARK - {0x114B0, 0x114B0, prExtend}, // Mc TIRHUTA VOWEL SIGN AA - {0x114B1, 0x114B2, prSpacingMark}, // Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II - {0x114B3, 0x114B8, prExtend}, // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL - {0x114B9, 0x114B9, prSpacingMark}, // Mc TIRHUTA VOWEL SIGN E - {0x114BA, 0x114BA, prExtend}, // Mn TIRHUTA VOWEL SIGN SHORT E - {0x114BB, 0x114BC, prSpacingMark}, // Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O - {0x114BD, 0x114BD, prExtend}, // Mc TIRHUTA VOWEL SIGN SHORT O - {0x114BE, 0x114BE, prSpacingMark}, // Mc TIRHUTA VOWEL SIGN AU - {0x114BF, 0x114C0, prExtend}, // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA - {0x114C1, 0x114C1, prSpacingMark}, // Mc TIRHUTA SIGN VISARGA - {0x114C2, 0x114C3, prExtend}, // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA - {0x115AF, 0x115AF, prExtend}, // Mc SIDDHAM VOWEL SIGN AA - {0x115B0, 0x115B1, prSpacingMark}, // Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II - {0x115B2, 0x115B5, prExtend}, // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR - {0x115B8, 0x115BB, prSpacingMark}, // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU - {0x115BC, 0x115BD, prExtend}, // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA - {0x115BE, 0x115BE, prSpacingMark}, // Mc SIDDHAM SIGN VISARGA - {0x115BF, 0x115C0, prExtend}, // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA - {0x115DC, 0x115DD, prExtend}, // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU - {0x11630, 0x11632, prSpacingMark}, // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II - {0x11633, 0x1163A, prExtend}, // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI - {0x1163B, 0x1163C, prSpacingMark}, // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU - {0x1163D, 0x1163D, prExtend}, // Mn MODI SIGN ANUSVARA - {0x1163E, 0x1163E, prSpacingMark}, // Mc MODI SIGN VISARGA - {0x1163F, 0x11640, prExtend}, // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA - {0x116AB, 0x116AB, prExtend}, // Mn TAKRI SIGN ANUSVARA - {0x116AC, 0x116AC, prSpacingMark}, // Mc TAKRI SIGN VISARGA - {0x116AD, 0x116AD, prExtend}, // Mn TAKRI VOWEL SIGN AA - {0x116AE, 0x116AF, prSpacingMark}, // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II - {0x116B0, 0x116B5, prExtend}, // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU - {0x116B6, 0x116B6, prSpacingMark}, // Mc TAKRI SIGN VIRAMA - {0x116B7, 0x116B7, prExtend}, // Mn TAKRI SIGN NUKTA - {0x1171D, 0x1171F, prExtend}, // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA - {0x11722, 0x11725, prExtend}, // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU - {0x11726, 0x11726, prSpacingMark}, // Mc AHOM VOWEL SIGN E - {0x11727, 0x1172B, prExtend}, // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER - {0x1182C, 0x1182E, prSpacingMark}, // Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II - {0x1182F, 0x11837, prExtend}, // Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA - {0x11838, 0x11838, prSpacingMark}, // Mc DOGRA SIGN VISARGA - {0x11839, 0x1183A, prExtend}, // Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA - {0x11930, 0x11930, prExtend}, // Mc DIVES AKURU VOWEL SIGN AA - {0x11931, 0x11935, prSpacingMark}, // Mc [5] DIVES AKURU VOWEL SIGN I..DIVES AKURU VOWEL SIGN E - {0x11937, 0x11938, prSpacingMark}, // Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O - {0x1193B, 0x1193C, prExtend}, // Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU - {0x1193D, 0x1193D, prSpacingMark}, // Mc DIVES AKURU SIGN HALANTA - {0x1193E, 0x1193E, prExtend}, // Mn DIVES AKURU VIRAMA - {0x1193F, 0x1193F, prPrepend}, // Lo DIVES AKURU PREFIXED NASAL SIGN - {0x11940, 0x11940, prSpacingMark}, // Mc DIVES AKURU MEDIAL YA - {0x11941, 0x11941, prPrepend}, // Lo DIVES AKURU INITIAL RA - {0x11942, 0x11942, prSpacingMark}, // Mc DIVES AKURU MEDIAL RA - {0x11943, 0x11943, prExtend}, // Mn DIVES AKURU SIGN NUKTA - {0x119D1, 0x119D3, prSpacingMark}, // Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II - {0x119D4, 0x119D7, prExtend}, // Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR - {0x119DA, 0x119DB, prExtend}, // Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI - {0x119DC, 0x119DF, prSpacingMark}, // Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA - {0x119E0, 0x119E0, prExtend}, // Mn NANDINAGARI SIGN VIRAMA - {0x119E4, 0x119E4, prSpacingMark}, // Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E - {0x11A01, 0x11A0A, prExtend}, // Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK - {0x11A33, 0x11A38, prExtend}, // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA - {0x11A39, 0x11A39, prSpacingMark}, // Mc ZANABAZAR SQUARE SIGN VISARGA - {0x11A3A, 0x11A3A, prPrepend}, // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA - {0x11A3B, 0x11A3E, prExtend}, // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA - {0x11A47, 0x11A47, prExtend}, // Mn ZANABAZAR SQUARE SUBJOINER - {0x11A51, 0x11A56, prExtend}, // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE - {0x11A57, 0x11A58, prSpacingMark}, // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU - {0x11A59, 0x11A5B, prExtend}, // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK - {0x11A84, 0x11A89, prPrepend}, // Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA - {0x11A8A, 0x11A96, prExtend}, // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA - {0x11A97, 0x11A97, prSpacingMark}, // Mc SOYOMBO SIGN VISARGA - {0x11A98, 0x11A99, prExtend}, // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER - {0x11C2F, 0x11C2F, prSpacingMark}, // Mc BHAIKSUKI VOWEL SIGN AA - {0x11C30, 0x11C36, prExtend}, // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L - {0x11C38, 0x11C3D, prExtend}, // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA - {0x11C3E, 0x11C3E, prSpacingMark}, // Mc BHAIKSUKI SIGN VISARGA - {0x11C3F, 0x11C3F, prExtend}, // Mn BHAIKSUKI SIGN VIRAMA - {0x11C92, 0x11CA7, prExtend}, // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA - {0x11CA9, 0x11CA9, prSpacingMark}, // Mc MARCHEN SUBJOINED LETTER YA - {0x11CAA, 0x11CB0, prExtend}, // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA - {0x11CB1, 0x11CB1, prSpacingMark}, // Mc MARCHEN VOWEL SIGN I - {0x11CB2, 0x11CB3, prExtend}, // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E - {0x11CB4, 0x11CB4, prSpacingMark}, // Mc MARCHEN VOWEL SIGN O - {0x11CB5, 0x11CB6, prExtend}, // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU - {0x11D31, 0x11D36, prExtend}, // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R - {0x11D3A, 0x11D3A, prExtend}, // Mn MASARAM GONDI VOWEL SIGN E - {0x11D3C, 0x11D3D, prExtend}, // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O - {0x11D3F, 0x11D45, prExtend}, // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA - {0x11D46, 0x11D46, prPrepend}, // Lo MASARAM GONDI REPHA - {0x11D47, 0x11D47, prExtend}, // Mn MASARAM GONDI RA-KARA - {0x11D8A, 0x11D8E, prSpacingMark}, // Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU - {0x11D90, 0x11D91, prExtend}, // Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI - {0x11D93, 0x11D94, prSpacingMark}, // Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU - {0x11D95, 0x11D95, prExtend}, // Mn GUNJALA GONDI SIGN ANUSVARA - {0x11D96, 0x11D96, prSpacingMark}, // Mc GUNJALA GONDI SIGN VISARGA - {0x11D97, 0x11D97, prExtend}, // Mn GUNJALA GONDI VIRAMA - {0x11EF3, 0x11EF4, prExtend}, // Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U - {0x11EF5, 0x11EF6, prSpacingMark}, // Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O - {0x11F00, 0x11F01, prExtend}, // Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA - {0x11F02, 0x11F02, prPrepend}, // Lo KAWI SIGN REPHA - {0x11F03, 0x11F03, prSpacingMark}, // Mc KAWI SIGN VISARGA - {0x11F34, 0x11F35, prSpacingMark}, // Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA - {0x11F36, 0x11F3A, prExtend}, // Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R - {0x11F3E, 0x11F3F, prSpacingMark}, // Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI - {0x11F40, 0x11F40, prExtend}, // Mn KAWI VOWEL SIGN EU - {0x11F41, 0x11F41, prSpacingMark}, // Mc KAWI SIGN KILLER - {0x11F42, 0x11F42, prExtend}, // Mn KAWI CONJOINER - {0x13430, 0x1343F, prControl}, // Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE - {0x13440, 0x13440, prExtend}, // Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY - {0x13447, 0x13455, prExtend}, // Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED - {0x16AF0, 0x16AF4, prExtend}, // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE - {0x16B30, 0x16B36, prExtend}, // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM - {0x16F4F, 0x16F4F, prExtend}, // Mn MIAO SIGN CONSONANT MODIFIER BAR - {0x16F51, 0x16F87, prSpacingMark}, // Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI - {0x16F8F, 0x16F92, prExtend}, // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW - {0x16FE4, 0x16FE4, prExtend}, // Mn KHITAN SMALL SCRIPT FILLER - {0x16FF0, 0x16FF1, prSpacingMark}, // Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY - {0x1BC9D, 0x1BC9E, prExtend}, // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK - {0x1BCA0, 0x1BCA3, prControl}, // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP - {0x1CF00, 0x1CF2D, prExtend}, // Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT - {0x1CF30, 0x1CF46, prExtend}, // Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG - {0x1D165, 0x1D165, prExtend}, // Mc MUSICAL SYMBOL COMBINING STEM - {0x1D166, 0x1D166, prSpacingMark}, // Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM - {0x1D167, 0x1D169, prExtend}, // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 - {0x1D16D, 0x1D16D, prSpacingMark}, // Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT - {0x1D16E, 0x1D172, prExtend}, // Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5 - {0x1D173, 0x1D17A, prControl}, // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE - {0x1D17B, 0x1D182, prExtend}, // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE - {0x1D185, 0x1D18B, prExtend}, // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE - {0x1D1AA, 0x1D1AD, prExtend}, // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO - {0x1D242, 0x1D244, prExtend}, // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME - {0x1DA00, 0x1DA36, prExtend}, // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN - {0x1DA3B, 0x1DA6C, prExtend}, // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT - {0x1DA75, 0x1DA75, prExtend}, // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS - {0x1DA84, 0x1DA84, prExtend}, // Mn SIGNWRITING LOCATION HEAD NECK - {0x1DA9B, 0x1DA9F, prExtend}, // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 - {0x1DAA1, 0x1DAAF, prExtend}, // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 - {0x1E000, 0x1E006, prExtend}, // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE - {0x1E008, 0x1E018, prExtend}, // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU - {0x1E01B, 0x1E021, prExtend}, // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI - {0x1E023, 0x1E024, prExtend}, // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS - {0x1E026, 0x1E02A, prExtend}, // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA - {0x1E08F, 0x1E08F, prExtend}, // Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - {0x1E130, 0x1E136, prExtend}, // Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D - {0x1E2AE, 0x1E2AE, prExtend}, // Mn TOTO SIGN RISING TONE - {0x1E2EC, 0x1E2EF, prExtend}, // Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI - {0x1E4EC, 0x1E4EF, prExtend}, // Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH - {0x1E8D0, 0x1E8D6, prExtend}, // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS - {0x1E944, 0x1E94A, prExtend}, // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA - {0x1F000, 0x1F003, prExtendedPictographic}, // E0.0 [4] (🀀..🀃) MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND - {0x1F004, 0x1F004, prExtendedPictographic}, // E0.6 [1] (🀄) mahjong red dragon - {0x1F005, 0x1F0CE, prExtendedPictographic}, // E0.0 [202] (🀅..🃎) MAHJONG TILE GREEN DRAGON..PLAYING CARD KING OF DIAMONDS - {0x1F0CF, 0x1F0CF, prExtendedPictographic}, // E0.6 [1] (🃏) joker - {0x1F0D0, 0x1F0FF, prExtendedPictographic}, // E0.0 [48] (🃐..🃿) .. - {0x1F10D, 0x1F10F, prExtendedPictographic}, // E0.0 [3] (🄍..🄏) CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH - {0x1F12F, 0x1F12F, prExtendedPictographic}, // E0.0 [1] (🄯) COPYLEFT SYMBOL - {0x1F16C, 0x1F16F, prExtendedPictographic}, // E0.0 [4] (🅬..🅯) RAISED MR SIGN..CIRCLED HUMAN FIGURE - {0x1F170, 0x1F171, prExtendedPictographic}, // E0.6 [2] (🅰️..🅱️) A button (blood type)..B button (blood type) - {0x1F17E, 0x1F17F, prExtendedPictographic}, // E0.6 [2] (🅾️..🅿️) O button (blood type)..P button - {0x1F18E, 0x1F18E, prExtendedPictographic}, // E0.6 [1] (🆎) AB button (blood type) - {0x1F191, 0x1F19A, prExtendedPictographic}, // E0.6 [10] (🆑..🆚) CL button..VS button - {0x1F1AD, 0x1F1E5, prExtendedPictographic}, // E0.0 [57] (🆭..🇥) MASK WORK SYMBOL.. - {0x1F1E6, 0x1F1FF, prRegionalIndicator}, // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z - {0x1F201, 0x1F202, prExtendedPictographic}, // E0.6 [2] (🈁..🈂️) Japanese “here” button..Japanese “service charge” button - {0x1F203, 0x1F20F, prExtendedPictographic}, // E0.0 [13] (🈃..🈏) .. - {0x1F21A, 0x1F21A, prExtendedPictographic}, // E0.6 [1] (🈚) Japanese “free of charge” button - {0x1F22F, 0x1F22F, prExtendedPictographic}, // E0.6 [1] (🈯) Japanese “reserved” button - {0x1F232, 0x1F23A, prExtendedPictographic}, // E0.6 [9] (🈲..🈺) Japanese “prohibited” button..Japanese “open for business” button - {0x1F23C, 0x1F23F, prExtendedPictographic}, // E0.0 [4] (🈼..🈿) .. - {0x1F249, 0x1F24F, prExtendedPictographic}, // E0.0 [7] (🉉..🉏) .. - {0x1F250, 0x1F251, prExtendedPictographic}, // E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button - {0x1F252, 0x1F2FF, prExtendedPictographic}, // E0.0 [174] (🉒..🋿) .. - {0x1F300, 0x1F30C, prExtendedPictographic}, // E0.6 [13] (🌀..🌌) cyclone..milky way - {0x1F30D, 0x1F30E, prExtendedPictographic}, // E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas - {0x1F30F, 0x1F30F, prExtendedPictographic}, // E0.6 [1] (🌏) globe showing Asia-Australia - {0x1F310, 0x1F310, prExtendedPictographic}, // E1.0 [1] (🌐) globe with meridians - {0x1F311, 0x1F311, prExtendedPictographic}, // E0.6 [1] (🌑) new moon - {0x1F312, 0x1F312, prExtendedPictographic}, // E1.0 [1] (🌒) waxing crescent moon - {0x1F313, 0x1F315, prExtendedPictographic}, // E0.6 [3] (🌓..🌕) first quarter moon..full moon - {0x1F316, 0x1F318, prExtendedPictographic}, // E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon - {0x1F319, 0x1F319, prExtendedPictographic}, // E0.6 [1] (🌙) crescent moon - {0x1F31A, 0x1F31A, prExtendedPictographic}, // E1.0 [1] (🌚) new moon face - {0x1F31B, 0x1F31B, prExtendedPictographic}, // E0.6 [1] (🌛) first quarter moon face - {0x1F31C, 0x1F31C, prExtendedPictographic}, // E0.7 [1] (🌜) last quarter moon face - {0x1F31D, 0x1F31E, prExtendedPictographic}, // E1.0 [2] (🌝..🌞) full moon face..sun with face - {0x1F31F, 0x1F320, prExtendedPictographic}, // E0.6 [2] (🌟..🌠) glowing star..shooting star - {0x1F321, 0x1F321, prExtendedPictographic}, // E0.7 [1] (🌡️) thermometer - {0x1F322, 0x1F323, prExtendedPictographic}, // E0.0 [2] (🌢..🌣) BLACK DROPLET..WHITE SUN - {0x1F324, 0x1F32C, prExtendedPictographic}, // E0.7 [9] (🌤️..🌬️) sun behind small cloud..wind face - {0x1F32D, 0x1F32F, prExtendedPictographic}, // E1.0 [3] (🌭..🌯) hot dog..burrito - {0x1F330, 0x1F331, prExtendedPictographic}, // E0.6 [2] (🌰..🌱) chestnut..seedling - {0x1F332, 0x1F333, prExtendedPictographic}, // E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree - {0x1F334, 0x1F335, prExtendedPictographic}, // E0.6 [2] (🌴..🌵) palm tree..cactus - {0x1F336, 0x1F336, prExtendedPictographic}, // E0.7 [1] (🌶️) hot pepper - {0x1F337, 0x1F34A, prExtendedPictographic}, // E0.6 [20] (🌷..🍊) tulip..tangerine - {0x1F34B, 0x1F34B, prExtendedPictographic}, // E1.0 [1] (🍋) lemon - {0x1F34C, 0x1F34F, prExtendedPictographic}, // E0.6 [4] (🍌..🍏) banana..green apple - {0x1F350, 0x1F350, prExtendedPictographic}, // E1.0 [1] (🍐) pear - {0x1F351, 0x1F37B, prExtendedPictographic}, // E0.6 [43] (🍑..🍻) peach..clinking beer mugs - {0x1F37C, 0x1F37C, prExtendedPictographic}, // E1.0 [1] (🍼) baby bottle - {0x1F37D, 0x1F37D, prExtendedPictographic}, // E0.7 [1] (🍽️) fork and knife with plate - {0x1F37E, 0x1F37F, prExtendedPictographic}, // E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn - {0x1F380, 0x1F393, prExtendedPictographic}, // E0.6 [20] (🎀..🎓) ribbon..graduation cap - {0x1F394, 0x1F395, prExtendedPictographic}, // E0.0 [2] (🎔..🎕) HEART WITH TIP ON THE LEFT..BOUQUET OF FLOWERS - {0x1F396, 0x1F397, prExtendedPictographic}, // E0.7 [2] (🎖️..🎗️) military medal..reminder ribbon - {0x1F398, 0x1F398, prExtendedPictographic}, // E0.0 [1] (🎘) MUSICAL KEYBOARD WITH JACKS - {0x1F399, 0x1F39B, prExtendedPictographic}, // E0.7 [3] (🎙️..🎛️) studio microphone..control knobs - {0x1F39C, 0x1F39D, prExtendedPictographic}, // E0.0 [2] (🎜..🎝) BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES - {0x1F39E, 0x1F39F, prExtendedPictographic}, // E0.7 [2] (🎞️..🎟️) film frames..admission tickets - {0x1F3A0, 0x1F3C4, prExtendedPictographic}, // E0.6 [37] (🎠..🏄) carousel horse..person surfing - {0x1F3C5, 0x1F3C5, prExtendedPictographic}, // E1.0 [1] (🏅) sports medal - {0x1F3C6, 0x1F3C6, prExtendedPictographic}, // E0.6 [1] (🏆) trophy - {0x1F3C7, 0x1F3C7, prExtendedPictographic}, // E1.0 [1] (🏇) horse racing - {0x1F3C8, 0x1F3C8, prExtendedPictographic}, // E0.6 [1] (🏈) american football - {0x1F3C9, 0x1F3C9, prExtendedPictographic}, // E1.0 [1] (🏉) rugby football - {0x1F3CA, 0x1F3CA, prExtendedPictographic}, // E0.6 [1] (🏊) person swimming - {0x1F3CB, 0x1F3CE, prExtendedPictographic}, // E0.7 [4] (🏋️..🏎️) person lifting weights..racing car - {0x1F3CF, 0x1F3D3, prExtendedPictographic}, // E1.0 [5] (🏏..🏓) cricket game..ping pong - {0x1F3D4, 0x1F3DF, prExtendedPictographic}, // E0.7 [12] (🏔️..🏟️) snow-capped mountain..stadium - {0x1F3E0, 0x1F3E3, prExtendedPictographic}, // E0.6 [4] (🏠..🏣) house..Japanese post office - {0x1F3E4, 0x1F3E4, prExtendedPictographic}, // E1.0 [1] (🏤) post office - {0x1F3E5, 0x1F3F0, prExtendedPictographic}, // E0.6 [12] (🏥..🏰) hospital..castle - {0x1F3F1, 0x1F3F2, prExtendedPictographic}, // E0.0 [2] (🏱..🏲) WHITE PENNANT..BLACK PENNANT - {0x1F3F3, 0x1F3F3, prExtendedPictographic}, // E0.7 [1] (🏳️) white flag - {0x1F3F4, 0x1F3F4, prExtendedPictographic}, // E1.0 [1] (🏴) black flag - {0x1F3F5, 0x1F3F5, prExtendedPictographic}, // E0.7 [1] (🏵️) rosette - {0x1F3F6, 0x1F3F6, prExtendedPictographic}, // E0.0 [1] (🏶) BLACK ROSETTE - {0x1F3F7, 0x1F3F7, prExtendedPictographic}, // E0.7 [1] (🏷️) label - {0x1F3F8, 0x1F3FA, prExtendedPictographic}, // E1.0 [3] (🏸..🏺) badminton..amphora - {0x1F3FB, 0x1F3FF, prExtend}, // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 - {0x1F400, 0x1F407, prExtendedPictographic}, // E1.0 [8] (🐀..🐇) rat..rabbit - {0x1F408, 0x1F408, prExtendedPictographic}, // E0.7 [1] (🐈) cat - {0x1F409, 0x1F40B, prExtendedPictographic}, // E1.0 [3] (🐉..🐋) dragon..whale - {0x1F40C, 0x1F40E, prExtendedPictographic}, // E0.6 [3] (🐌..🐎) snail..horse - {0x1F40F, 0x1F410, prExtendedPictographic}, // E1.0 [2] (🐏..🐐) ram..goat - {0x1F411, 0x1F412, prExtendedPictographic}, // E0.6 [2] (🐑..🐒) ewe..monkey - {0x1F413, 0x1F413, prExtendedPictographic}, // E1.0 [1] (🐓) rooster - {0x1F414, 0x1F414, prExtendedPictographic}, // E0.6 [1] (🐔) chicken - {0x1F415, 0x1F415, prExtendedPictographic}, // E0.7 [1] (🐕) dog - {0x1F416, 0x1F416, prExtendedPictographic}, // E1.0 [1] (🐖) pig - {0x1F417, 0x1F429, prExtendedPictographic}, // E0.6 [19] (🐗..🐩) boar..poodle - {0x1F42A, 0x1F42A, prExtendedPictographic}, // E1.0 [1] (🐪) camel - {0x1F42B, 0x1F43E, prExtendedPictographic}, // E0.6 [20] (🐫..🐾) two-hump camel..paw prints - {0x1F43F, 0x1F43F, prExtendedPictographic}, // E0.7 [1] (🐿️) chipmunk - {0x1F440, 0x1F440, prExtendedPictographic}, // E0.6 [1] (👀) eyes - {0x1F441, 0x1F441, prExtendedPictographic}, // E0.7 [1] (👁️) eye - {0x1F442, 0x1F464, prExtendedPictographic}, // E0.6 [35] (👂..👤) ear..bust in silhouette - {0x1F465, 0x1F465, prExtendedPictographic}, // E1.0 [1] (👥) busts in silhouette - {0x1F466, 0x1F46B, prExtendedPictographic}, // E0.6 [6] (👦..👫) boy..woman and man holding hands - {0x1F46C, 0x1F46D, prExtendedPictographic}, // E1.0 [2] (👬..👭) men holding hands..women holding hands - {0x1F46E, 0x1F4AC, prExtendedPictographic}, // E0.6 [63] (👮..💬) police officer..speech balloon - {0x1F4AD, 0x1F4AD, prExtendedPictographic}, // E1.0 [1] (💭) thought balloon - {0x1F4AE, 0x1F4B5, prExtendedPictographic}, // E0.6 [8] (💮..💵) white flower..dollar banknote - {0x1F4B6, 0x1F4B7, prExtendedPictographic}, // E1.0 [2] (💶..💷) euro banknote..pound banknote - {0x1F4B8, 0x1F4EB, prExtendedPictographic}, // E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag - {0x1F4EC, 0x1F4ED, prExtendedPictographic}, // E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag - {0x1F4EE, 0x1F4EE, prExtendedPictographic}, // E0.6 [1] (📮) postbox - {0x1F4EF, 0x1F4EF, prExtendedPictographic}, // E1.0 [1] (📯) postal horn - {0x1F4F0, 0x1F4F4, prExtendedPictographic}, // E0.6 [5] (📰..📴) newspaper..mobile phone off - {0x1F4F5, 0x1F4F5, prExtendedPictographic}, // E1.0 [1] (📵) no mobile phones - {0x1F4F6, 0x1F4F7, prExtendedPictographic}, // E0.6 [2] (📶..📷) antenna bars..camera - {0x1F4F8, 0x1F4F8, prExtendedPictographic}, // E1.0 [1] (📸) camera with flash - {0x1F4F9, 0x1F4FC, prExtendedPictographic}, // E0.6 [4] (📹..📼) video camera..videocassette - {0x1F4FD, 0x1F4FD, prExtendedPictographic}, // E0.7 [1] (📽️) film projector - {0x1F4FE, 0x1F4FE, prExtendedPictographic}, // E0.0 [1] (📾) PORTABLE STEREO - {0x1F4FF, 0x1F502, prExtendedPictographic}, // E1.0 [4] (📿..🔂) prayer beads..repeat single button - {0x1F503, 0x1F503, prExtendedPictographic}, // E0.6 [1] (🔃) clockwise vertical arrows - {0x1F504, 0x1F507, prExtendedPictographic}, // E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker - {0x1F508, 0x1F508, prExtendedPictographic}, // E0.7 [1] (🔈) speaker low volume - {0x1F509, 0x1F509, prExtendedPictographic}, // E1.0 [1] (🔉) speaker medium volume - {0x1F50A, 0x1F514, prExtendedPictographic}, // E0.6 [11] (🔊..🔔) speaker high volume..bell - {0x1F515, 0x1F515, prExtendedPictographic}, // E1.0 [1] (🔕) bell with slash - {0x1F516, 0x1F52B, prExtendedPictographic}, // E0.6 [22] (🔖..🔫) bookmark..water pistol - {0x1F52C, 0x1F52D, prExtendedPictographic}, // E1.0 [2] (🔬..🔭) microscope..telescope - {0x1F52E, 0x1F53D, prExtendedPictographic}, // E0.6 [16] (🔮..🔽) crystal ball..downwards button - {0x1F546, 0x1F548, prExtendedPictographic}, // E0.0 [3] (🕆..🕈) WHITE LATIN CROSS..CELTIC CROSS - {0x1F549, 0x1F54A, prExtendedPictographic}, // E0.7 [2] (🕉️..🕊️) om..dove - {0x1F54B, 0x1F54E, prExtendedPictographic}, // E1.0 [4] (🕋..🕎) kaaba..menorah - {0x1F54F, 0x1F54F, prExtendedPictographic}, // E0.0 [1] (🕏) BOWL OF HYGIEIA - {0x1F550, 0x1F55B, prExtendedPictographic}, // E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock - {0x1F55C, 0x1F567, prExtendedPictographic}, // E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty - {0x1F568, 0x1F56E, prExtendedPictographic}, // E0.0 [7] (🕨..🕮) RIGHT SPEAKER..BOOK - {0x1F56F, 0x1F570, prExtendedPictographic}, // E0.7 [2] (🕯️..🕰️) candle..mantelpiece clock - {0x1F571, 0x1F572, prExtendedPictographic}, // E0.0 [2] (🕱..🕲) BLACK SKULL AND CROSSBONES..NO PIRACY - {0x1F573, 0x1F579, prExtendedPictographic}, // E0.7 [7] (🕳️..🕹️) hole..joystick - {0x1F57A, 0x1F57A, prExtendedPictographic}, // E3.0 [1] (🕺) man dancing - {0x1F57B, 0x1F586, prExtendedPictographic}, // E0.0 [12] (🕻..🖆) LEFT HAND TELEPHONE RECEIVER..PEN OVER STAMPED ENVELOPE - {0x1F587, 0x1F587, prExtendedPictographic}, // E0.7 [1] (🖇️) linked paperclips - {0x1F588, 0x1F589, prExtendedPictographic}, // E0.0 [2] (🖈..🖉) BLACK PUSHPIN..LOWER LEFT PENCIL - {0x1F58A, 0x1F58D, prExtendedPictographic}, // E0.7 [4] (🖊️..🖍️) pen..crayon - {0x1F58E, 0x1F58F, prExtendedPictographic}, // E0.0 [2] (🖎..🖏) LEFT WRITING HAND..TURNED OK HAND SIGN - {0x1F590, 0x1F590, prExtendedPictographic}, // E0.7 [1] (🖐️) hand with fingers splayed - {0x1F591, 0x1F594, prExtendedPictographic}, // E0.0 [4] (🖑..🖔) REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND - {0x1F595, 0x1F596, prExtendedPictographic}, // E1.0 [2] (🖕..🖖) middle finger..vulcan salute - {0x1F597, 0x1F5A3, prExtendedPictographic}, // E0.0 [13] (🖗..🖣) WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX - {0x1F5A4, 0x1F5A4, prExtendedPictographic}, // E3.0 [1] (🖤) black heart - {0x1F5A5, 0x1F5A5, prExtendedPictographic}, // E0.7 [1] (🖥️) desktop computer - {0x1F5A6, 0x1F5A7, prExtendedPictographic}, // E0.0 [2] (🖦..🖧) KEYBOARD AND MOUSE..THREE NETWORKED COMPUTERS - {0x1F5A8, 0x1F5A8, prExtendedPictographic}, // E0.7 [1] (🖨️) printer - {0x1F5A9, 0x1F5B0, prExtendedPictographic}, // E0.0 [8] (🖩..🖰) POCKET CALCULATOR..TWO BUTTON MOUSE - {0x1F5B1, 0x1F5B2, prExtendedPictographic}, // E0.7 [2] (🖱️..🖲️) computer mouse..trackball - {0x1F5B3, 0x1F5BB, prExtendedPictographic}, // E0.0 [9] (🖳..🖻) OLD PERSONAL COMPUTER..DOCUMENT WITH PICTURE - {0x1F5BC, 0x1F5BC, prExtendedPictographic}, // E0.7 [1] (🖼️) framed picture - {0x1F5BD, 0x1F5C1, prExtendedPictographic}, // E0.0 [5] (🖽..🗁) FRAME WITH TILES..OPEN FOLDER - {0x1F5C2, 0x1F5C4, prExtendedPictographic}, // E0.7 [3] (🗂️..🗄️) card index dividers..file cabinet - {0x1F5C5, 0x1F5D0, prExtendedPictographic}, // E0.0 [12] (🗅..🗐) EMPTY NOTE..PAGES - {0x1F5D1, 0x1F5D3, prExtendedPictographic}, // E0.7 [3] (🗑️..🗓️) wastebasket..spiral calendar - {0x1F5D4, 0x1F5DB, prExtendedPictographic}, // E0.0 [8] (🗔..🗛) DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL - {0x1F5DC, 0x1F5DE, prExtendedPictographic}, // E0.7 [3] (🗜️..🗞️) clamp..rolled-up newspaper - {0x1F5DF, 0x1F5E0, prExtendedPictographic}, // E0.0 [2] (🗟..🗠) PAGE WITH CIRCLED TEXT..STOCK CHART - {0x1F5E1, 0x1F5E1, prExtendedPictographic}, // E0.7 [1] (🗡️) dagger - {0x1F5E2, 0x1F5E2, prExtendedPictographic}, // E0.0 [1] (🗢) LIPS - {0x1F5E3, 0x1F5E3, prExtendedPictographic}, // E0.7 [1] (🗣️) speaking head - {0x1F5E4, 0x1F5E7, prExtendedPictographic}, // E0.0 [4] (🗤..🗧) THREE RAYS ABOVE..THREE RAYS RIGHT - {0x1F5E8, 0x1F5E8, prExtendedPictographic}, // E2.0 [1] (🗨️) left speech bubble - {0x1F5E9, 0x1F5EE, prExtendedPictographic}, // E0.0 [6] (🗩..🗮) RIGHT SPEECH BUBBLE..LEFT ANGER BUBBLE - {0x1F5EF, 0x1F5EF, prExtendedPictographic}, // E0.7 [1] (🗯️) right anger bubble - {0x1F5F0, 0x1F5F2, prExtendedPictographic}, // E0.0 [3] (🗰..🗲) MOOD BUBBLE..LIGHTNING MOOD - {0x1F5F3, 0x1F5F3, prExtendedPictographic}, // E0.7 [1] (🗳️) ballot box with ballot - {0x1F5F4, 0x1F5F9, prExtendedPictographic}, // E0.0 [6] (🗴..🗹) BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK - {0x1F5FA, 0x1F5FA, prExtendedPictographic}, // E0.7 [1] (🗺️) world map - {0x1F5FB, 0x1F5FF, prExtendedPictographic}, // E0.6 [5] (🗻..🗿) mount fuji..moai - {0x1F600, 0x1F600, prExtendedPictographic}, // E1.0 [1] (😀) grinning face - {0x1F601, 0x1F606, prExtendedPictographic}, // E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face - {0x1F607, 0x1F608, prExtendedPictographic}, // E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns - {0x1F609, 0x1F60D, prExtendedPictographic}, // E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes - {0x1F60E, 0x1F60E, prExtendedPictographic}, // E1.0 [1] (😎) smiling face with sunglasses - {0x1F60F, 0x1F60F, prExtendedPictographic}, // E0.6 [1] (😏) smirking face - {0x1F610, 0x1F610, prExtendedPictographic}, // E0.7 [1] (😐) neutral face - {0x1F611, 0x1F611, prExtendedPictographic}, // E1.0 [1] (😑) expressionless face - {0x1F612, 0x1F614, prExtendedPictographic}, // E0.6 [3] (😒..😔) unamused face..pensive face - {0x1F615, 0x1F615, prExtendedPictographic}, // E1.0 [1] (😕) confused face - {0x1F616, 0x1F616, prExtendedPictographic}, // E0.6 [1] (😖) confounded face - {0x1F617, 0x1F617, prExtendedPictographic}, // E1.0 [1] (😗) kissing face - {0x1F618, 0x1F618, prExtendedPictographic}, // E0.6 [1] (😘) face blowing a kiss - {0x1F619, 0x1F619, prExtendedPictographic}, // E1.0 [1] (😙) kissing face with smiling eyes - {0x1F61A, 0x1F61A, prExtendedPictographic}, // E0.6 [1] (😚) kissing face with closed eyes - {0x1F61B, 0x1F61B, prExtendedPictographic}, // E1.0 [1] (😛) face with tongue - {0x1F61C, 0x1F61E, prExtendedPictographic}, // E0.6 [3] (😜..😞) winking face with tongue..disappointed face - {0x1F61F, 0x1F61F, prExtendedPictographic}, // E1.0 [1] (😟) worried face - {0x1F620, 0x1F625, prExtendedPictographic}, // E0.6 [6] (😠..😥) angry face..sad but relieved face - {0x1F626, 0x1F627, prExtendedPictographic}, // E1.0 [2] (😦..😧) frowning face with open mouth..anguished face - {0x1F628, 0x1F62B, prExtendedPictographic}, // E0.6 [4] (😨..😫) fearful face..tired face - {0x1F62C, 0x1F62C, prExtendedPictographic}, // E1.0 [1] (😬) grimacing face - {0x1F62D, 0x1F62D, prExtendedPictographic}, // E0.6 [1] (😭) loudly crying face - {0x1F62E, 0x1F62F, prExtendedPictographic}, // E1.0 [2] (😮..😯) face with open mouth..hushed face - {0x1F630, 0x1F633, prExtendedPictographic}, // E0.6 [4] (😰..😳) anxious face with sweat..flushed face - {0x1F634, 0x1F634, prExtendedPictographic}, // E1.0 [1] (😴) sleeping face - {0x1F635, 0x1F635, prExtendedPictographic}, // E0.6 [1] (😵) face with crossed-out eyes - {0x1F636, 0x1F636, prExtendedPictographic}, // E1.0 [1] (😶) face without mouth - {0x1F637, 0x1F640, prExtendedPictographic}, // E0.6 [10] (😷..🙀) face with medical mask..weary cat - {0x1F641, 0x1F644, prExtendedPictographic}, // E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes - {0x1F645, 0x1F64F, prExtendedPictographic}, // E0.6 [11] (🙅..🙏) person gesturing NO..folded hands - {0x1F680, 0x1F680, prExtendedPictographic}, // E0.6 [1] (🚀) rocket - {0x1F681, 0x1F682, prExtendedPictographic}, // E1.0 [2] (🚁..🚂) helicopter..locomotive - {0x1F683, 0x1F685, prExtendedPictographic}, // E0.6 [3] (🚃..🚅) railway car..bullet train - {0x1F686, 0x1F686, prExtendedPictographic}, // E1.0 [1] (🚆) train - {0x1F687, 0x1F687, prExtendedPictographic}, // E0.6 [1] (🚇) metro - {0x1F688, 0x1F688, prExtendedPictographic}, // E1.0 [1] (🚈) light rail - {0x1F689, 0x1F689, prExtendedPictographic}, // E0.6 [1] (🚉) station - {0x1F68A, 0x1F68B, prExtendedPictographic}, // E1.0 [2] (🚊..🚋) tram..tram car - {0x1F68C, 0x1F68C, prExtendedPictographic}, // E0.6 [1] (🚌) bus - {0x1F68D, 0x1F68D, prExtendedPictographic}, // E0.7 [1] (🚍) oncoming bus - {0x1F68E, 0x1F68E, prExtendedPictographic}, // E1.0 [1] (🚎) trolleybus - {0x1F68F, 0x1F68F, prExtendedPictographic}, // E0.6 [1] (🚏) bus stop - {0x1F690, 0x1F690, prExtendedPictographic}, // E1.0 [1] (🚐) minibus - {0x1F691, 0x1F693, prExtendedPictographic}, // E0.6 [3] (🚑..🚓) ambulance..police car - {0x1F694, 0x1F694, prExtendedPictographic}, // E0.7 [1] (🚔) oncoming police car - {0x1F695, 0x1F695, prExtendedPictographic}, // E0.6 [1] (🚕) taxi - {0x1F696, 0x1F696, prExtendedPictographic}, // E1.0 [1] (🚖) oncoming taxi - {0x1F697, 0x1F697, prExtendedPictographic}, // E0.6 [1] (🚗) automobile - {0x1F698, 0x1F698, prExtendedPictographic}, // E0.7 [1] (🚘) oncoming automobile - {0x1F699, 0x1F69A, prExtendedPictographic}, // E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck - {0x1F69B, 0x1F6A1, prExtendedPictographic}, // E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway - {0x1F6A2, 0x1F6A2, prExtendedPictographic}, // E0.6 [1] (🚢) ship - {0x1F6A3, 0x1F6A3, prExtendedPictographic}, // E1.0 [1] (🚣) person rowing boat - {0x1F6A4, 0x1F6A5, prExtendedPictographic}, // E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light - {0x1F6A6, 0x1F6A6, prExtendedPictographic}, // E1.0 [1] (🚦) vertical traffic light - {0x1F6A7, 0x1F6AD, prExtendedPictographic}, // E0.6 [7] (🚧..🚭) construction..no smoking - {0x1F6AE, 0x1F6B1, prExtendedPictographic}, // E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water - {0x1F6B2, 0x1F6B2, prExtendedPictographic}, // E0.6 [1] (🚲) bicycle - {0x1F6B3, 0x1F6B5, prExtendedPictographic}, // E1.0 [3] (🚳..🚵) no bicycles..person mountain biking - {0x1F6B6, 0x1F6B6, prExtendedPictographic}, // E0.6 [1] (🚶) person walking - {0x1F6B7, 0x1F6B8, prExtendedPictographic}, // E1.0 [2] (🚷..🚸) no pedestrians..children crossing - {0x1F6B9, 0x1F6BE, prExtendedPictographic}, // E0.6 [6] (🚹..🚾) men’s room..water closet - {0x1F6BF, 0x1F6BF, prExtendedPictographic}, // E1.0 [1] (🚿) shower - {0x1F6C0, 0x1F6C0, prExtendedPictographic}, // E0.6 [1] (🛀) person taking bath - {0x1F6C1, 0x1F6C5, prExtendedPictographic}, // E1.0 [5] (🛁..🛅) bathtub..left luggage - {0x1F6C6, 0x1F6CA, prExtendedPictographic}, // E0.0 [5] (🛆..🛊) TRIANGLE WITH ROUNDED CORNERS..GIRLS SYMBOL - {0x1F6CB, 0x1F6CB, prExtendedPictographic}, // E0.7 [1] (🛋️) couch and lamp - {0x1F6CC, 0x1F6CC, prExtendedPictographic}, // E1.0 [1] (🛌) person in bed - {0x1F6CD, 0x1F6CF, prExtendedPictographic}, // E0.7 [3] (🛍️..🛏️) shopping bags..bed - {0x1F6D0, 0x1F6D0, prExtendedPictographic}, // E1.0 [1] (🛐) place of worship - {0x1F6D1, 0x1F6D2, prExtendedPictographic}, // E3.0 [2] (🛑..🛒) stop sign..shopping cart - {0x1F6D3, 0x1F6D4, prExtendedPictographic}, // E0.0 [2] (🛓..🛔) STUPA..PAGODA - {0x1F6D5, 0x1F6D5, prExtendedPictographic}, // E12.0 [1] (🛕) hindu temple - {0x1F6D6, 0x1F6D7, prExtendedPictographic}, // E13.0 [2] (🛖..🛗) hut..elevator - {0x1F6D8, 0x1F6DB, prExtendedPictographic}, // E0.0 [4] (🛘..🛛) .. - {0x1F6DC, 0x1F6DC, prExtendedPictographic}, // E15.0 [1] (🛜) wireless - {0x1F6DD, 0x1F6DF, prExtendedPictographic}, // E14.0 [3] (🛝..🛟) playground slide..ring buoy - {0x1F6E0, 0x1F6E5, prExtendedPictographic}, // E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat - {0x1F6E6, 0x1F6E8, prExtendedPictographic}, // E0.0 [3] (🛦..🛨) UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE - {0x1F6E9, 0x1F6E9, prExtendedPictographic}, // E0.7 [1] (🛩️) small airplane - {0x1F6EA, 0x1F6EA, prExtendedPictographic}, // E0.0 [1] (🛪) NORTHEAST-POINTING AIRPLANE - {0x1F6EB, 0x1F6EC, prExtendedPictographic}, // E1.0 [2] (🛫..🛬) airplane departure..airplane arrival - {0x1F6ED, 0x1F6EF, prExtendedPictographic}, // E0.0 [3] (🛭..🛯) .. - {0x1F6F0, 0x1F6F0, prExtendedPictographic}, // E0.7 [1] (🛰️) satellite - {0x1F6F1, 0x1F6F2, prExtendedPictographic}, // E0.0 [2] (🛱..🛲) ONCOMING FIRE ENGINE..DIESEL LOCOMOTIVE - {0x1F6F3, 0x1F6F3, prExtendedPictographic}, // E0.7 [1] (🛳️) passenger ship - {0x1F6F4, 0x1F6F6, prExtendedPictographic}, // E3.0 [3] (🛴..🛶) kick scooter..canoe - {0x1F6F7, 0x1F6F8, prExtendedPictographic}, // E5.0 [2] (🛷..🛸) sled..flying saucer - {0x1F6F9, 0x1F6F9, prExtendedPictographic}, // E11.0 [1] (🛹) skateboard - {0x1F6FA, 0x1F6FA, prExtendedPictographic}, // E12.0 [1] (🛺) auto rickshaw - {0x1F6FB, 0x1F6FC, prExtendedPictographic}, // E13.0 [2] (🛻..🛼) pickup truck..roller skate - {0x1F6FD, 0x1F6FF, prExtendedPictographic}, // E0.0 [3] (🛽..🛿) .. - {0x1F774, 0x1F77F, prExtendedPictographic}, // E0.0 [12] (🝴..🝿) LOT OF FORTUNE..ORCUS - {0x1F7D5, 0x1F7DF, prExtendedPictographic}, // E0.0 [11] (🟕..🟟) CIRCLED TRIANGLE.. - {0x1F7E0, 0x1F7EB, prExtendedPictographic}, // E12.0 [12] (🟠..🟫) orange circle..brown square - {0x1F7EC, 0x1F7EF, prExtendedPictographic}, // E0.0 [4] (🟬..🟯) .. - {0x1F7F0, 0x1F7F0, prExtendedPictographic}, // E14.0 [1] (🟰) heavy equals sign - {0x1F7F1, 0x1F7FF, prExtendedPictographic}, // E0.0 [15] (🟱..🟿) .. - {0x1F80C, 0x1F80F, prExtendedPictographic}, // E0.0 [4] (🠌..🠏) .. - {0x1F848, 0x1F84F, prExtendedPictographic}, // E0.0 [8] (🡈..🡏) .. - {0x1F85A, 0x1F85F, prExtendedPictographic}, // E0.0 [6] (🡚..🡟) .. - {0x1F888, 0x1F88F, prExtendedPictographic}, // E0.0 [8] (🢈..🢏) .. - {0x1F8AE, 0x1F8FF, prExtendedPictographic}, // E0.0 [82] (🢮..🣿) .. - {0x1F90C, 0x1F90C, prExtendedPictographic}, // E13.0 [1] (🤌) pinched fingers - {0x1F90D, 0x1F90F, prExtendedPictographic}, // E12.0 [3] (🤍..🤏) white heart..pinching hand - {0x1F910, 0x1F918, prExtendedPictographic}, // E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns - {0x1F919, 0x1F91E, prExtendedPictographic}, // E3.0 [6] (🤙..🤞) call me hand..crossed fingers - {0x1F91F, 0x1F91F, prExtendedPictographic}, // E5.0 [1] (🤟) love-you gesture - {0x1F920, 0x1F927, prExtendedPictographic}, // E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face - {0x1F928, 0x1F92F, prExtendedPictographic}, // E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head - {0x1F930, 0x1F930, prExtendedPictographic}, // E3.0 [1] (🤰) pregnant woman - {0x1F931, 0x1F932, prExtendedPictographic}, // E5.0 [2] (🤱..🤲) breast-feeding..palms up together - {0x1F933, 0x1F93A, prExtendedPictographic}, // E3.0 [8] (🤳..🤺) selfie..person fencing - {0x1F93C, 0x1F93E, prExtendedPictographic}, // E3.0 [3] (🤼..🤾) people wrestling..person playing handball - {0x1F93F, 0x1F93F, prExtendedPictographic}, // E12.0 [1] (🤿) diving mask - {0x1F940, 0x1F945, prExtendedPictographic}, // E3.0 [6] (🥀..🥅) wilted flower..goal net - {0x1F947, 0x1F94B, prExtendedPictographic}, // E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform - {0x1F94C, 0x1F94C, prExtendedPictographic}, // E5.0 [1] (🥌) curling stone - {0x1F94D, 0x1F94F, prExtendedPictographic}, // E11.0 [3] (🥍..🥏) lacrosse..flying disc - {0x1F950, 0x1F95E, prExtendedPictographic}, // E3.0 [15] (🥐..🥞) croissant..pancakes - {0x1F95F, 0x1F96B, prExtendedPictographic}, // E5.0 [13] (🥟..🥫) dumpling..canned food - {0x1F96C, 0x1F970, prExtendedPictographic}, // E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts - {0x1F971, 0x1F971, prExtendedPictographic}, // E12.0 [1] (🥱) yawning face - {0x1F972, 0x1F972, prExtendedPictographic}, // E13.0 [1] (🥲) smiling face with tear - {0x1F973, 0x1F976, prExtendedPictographic}, // E11.0 [4] (🥳..🥶) partying face..cold face - {0x1F977, 0x1F978, prExtendedPictographic}, // E13.0 [2] (🥷..🥸) ninja..disguised face - {0x1F979, 0x1F979, prExtendedPictographic}, // E14.0 [1] (🥹) face holding back tears - {0x1F97A, 0x1F97A, prExtendedPictographic}, // E11.0 [1] (🥺) pleading face - {0x1F97B, 0x1F97B, prExtendedPictographic}, // E12.0 [1] (🥻) sari - {0x1F97C, 0x1F97F, prExtendedPictographic}, // E11.0 [4] (🥼..🥿) lab coat..flat shoe - {0x1F980, 0x1F984, prExtendedPictographic}, // E1.0 [5] (🦀..🦄) crab..unicorn - {0x1F985, 0x1F991, prExtendedPictographic}, // E3.0 [13] (🦅..🦑) eagle..squid - {0x1F992, 0x1F997, prExtendedPictographic}, // E5.0 [6] (🦒..🦗) giraffe..cricket - {0x1F998, 0x1F9A2, prExtendedPictographic}, // E11.0 [11] (🦘..🦢) kangaroo..swan - {0x1F9A3, 0x1F9A4, prExtendedPictographic}, // E13.0 [2] (🦣..🦤) mammoth..dodo - {0x1F9A5, 0x1F9AA, prExtendedPictographic}, // E12.0 [6] (🦥..🦪) sloth..oyster - {0x1F9AB, 0x1F9AD, prExtendedPictographic}, // E13.0 [3] (🦫..🦭) beaver..seal - {0x1F9AE, 0x1F9AF, prExtendedPictographic}, // E12.0 [2] (🦮..🦯) guide dog..white cane - {0x1F9B0, 0x1F9B9, prExtendedPictographic}, // E11.0 [10] (🦰..🦹) red hair..supervillain - {0x1F9BA, 0x1F9BF, prExtendedPictographic}, // E12.0 [6] (🦺..🦿) safety vest..mechanical leg - {0x1F9C0, 0x1F9C0, prExtendedPictographic}, // E1.0 [1] (🧀) cheese wedge - {0x1F9C1, 0x1F9C2, prExtendedPictographic}, // E11.0 [2] (🧁..🧂) cupcake..salt - {0x1F9C3, 0x1F9CA, prExtendedPictographic}, // E12.0 [8] (🧃..🧊) beverage box..ice - {0x1F9CB, 0x1F9CB, prExtendedPictographic}, // E13.0 [1] (🧋) bubble tea - {0x1F9CC, 0x1F9CC, prExtendedPictographic}, // E14.0 [1] (🧌) troll - {0x1F9CD, 0x1F9CF, prExtendedPictographic}, // E12.0 [3] (🧍..🧏) person standing..deaf person - {0x1F9D0, 0x1F9E6, prExtendedPictographic}, // E5.0 [23] (🧐..🧦) face with monocle..socks - {0x1F9E7, 0x1F9FF, prExtendedPictographic}, // E11.0 [25] (🧧..🧿) red envelope..nazar amulet - {0x1FA00, 0x1FA6F, prExtendedPictographic}, // E0.0 [112] (🨀..🩯) NEUTRAL CHESS KING.. - {0x1FA70, 0x1FA73, prExtendedPictographic}, // E12.0 [4] (🩰..🩳) ballet shoes..shorts - {0x1FA74, 0x1FA74, prExtendedPictographic}, // E13.0 [1] (🩴) thong sandal - {0x1FA75, 0x1FA77, prExtendedPictographic}, // E15.0 [3] (🩵..🩷) light blue heart..pink heart - {0x1FA78, 0x1FA7A, prExtendedPictographic}, // E12.0 [3] (🩸..🩺) drop of blood..stethoscope - {0x1FA7B, 0x1FA7C, prExtendedPictographic}, // E14.0 [2] (🩻..🩼) x-ray..crutch - {0x1FA7D, 0x1FA7F, prExtendedPictographic}, // E0.0 [3] (🩽..🩿) .. - {0x1FA80, 0x1FA82, prExtendedPictographic}, // E12.0 [3] (🪀..🪂) yo-yo..parachute - {0x1FA83, 0x1FA86, prExtendedPictographic}, // E13.0 [4] (🪃..🪆) boomerang..nesting dolls - {0x1FA87, 0x1FA88, prExtendedPictographic}, // E15.0 [2] (🪇..🪈) maracas..flute - {0x1FA89, 0x1FA8F, prExtendedPictographic}, // E0.0 [7] (🪉..🪏) .. - {0x1FA90, 0x1FA95, prExtendedPictographic}, // E12.0 [6] (🪐..🪕) ringed planet..banjo - {0x1FA96, 0x1FAA8, prExtendedPictographic}, // E13.0 [19] (🪖..🪨) military helmet..rock - {0x1FAA9, 0x1FAAC, prExtendedPictographic}, // E14.0 [4] (🪩..🪬) mirror ball..hamsa - {0x1FAAD, 0x1FAAF, prExtendedPictographic}, // E15.0 [3] (🪭..🪯) folding hand fan..khanda - {0x1FAB0, 0x1FAB6, prExtendedPictographic}, // E13.0 [7] (🪰..🪶) fly..feather - {0x1FAB7, 0x1FABA, prExtendedPictographic}, // E14.0 [4] (🪷..🪺) lotus..nest with eggs - {0x1FABB, 0x1FABD, prExtendedPictographic}, // E15.0 [3] (🪻..🪽) hyacinth..wing - {0x1FABE, 0x1FABE, prExtendedPictographic}, // E0.0 [1] (🪾) - {0x1FABF, 0x1FABF, prExtendedPictographic}, // E15.0 [1] (🪿) goose - {0x1FAC0, 0x1FAC2, prExtendedPictographic}, // E13.0 [3] (🫀..🫂) anatomical heart..people hugging - {0x1FAC3, 0x1FAC5, prExtendedPictographic}, // E14.0 [3] (🫃..🫅) pregnant man..person with crown - {0x1FAC6, 0x1FACD, prExtendedPictographic}, // E0.0 [8] (🫆..🫍) .. - {0x1FACE, 0x1FACF, prExtendedPictographic}, // E15.0 [2] (🫎..🫏) moose..donkey - {0x1FAD0, 0x1FAD6, prExtendedPictographic}, // E13.0 [7] (🫐..🫖) blueberries..teapot - {0x1FAD7, 0x1FAD9, prExtendedPictographic}, // E14.0 [3] (🫗..🫙) pouring liquid..jar - {0x1FADA, 0x1FADB, prExtendedPictographic}, // E15.0 [2] (🫚..🫛) ginger root..pea pod - {0x1FADC, 0x1FADF, prExtendedPictographic}, // E0.0 [4] (🫜..🫟) .. - {0x1FAE0, 0x1FAE7, prExtendedPictographic}, // E14.0 [8] (🫠..🫧) melting face..bubbles - {0x1FAE8, 0x1FAE8, prExtendedPictographic}, // E15.0 [1] (🫨) shaking face - {0x1FAE9, 0x1FAEF, prExtendedPictographic}, // E0.0 [7] (🫩..🫯) .. - {0x1FAF0, 0x1FAF6, prExtendedPictographic}, // E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands - {0x1FAF7, 0x1FAF8, prExtendedPictographic}, // E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand - {0x1FAF9, 0x1FAFF, prExtendedPictographic}, // E0.0 [7] (🫹..🫿) .. - {0x1FC00, 0x1FFFD, prExtendedPictographic}, // E0.0[1022] (🰀..🿽) .. - {0xE0000, 0xE0000, prControl}, // Cn - {0xE0001, 0xE0001, prControl}, // Cf LANGUAGE TAG - {0xE0002, 0xE001F, prControl}, // Cn [30] .. - {0xE0020, 0xE007F, prExtend}, // Cf [96] TAG SPACE..CANCEL TAG - {0xE0080, 0xE00FF, prControl}, // Cn [128] .. - {0xE0100, 0xE01EF, prExtend}, // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 - {0xE01F0, 0xE0FFF, prControl}, // Cn [3600] .. -} diff --git a/vendor/github.com/rivo/uniseg/graphemerules.go b/vendor/github.com/rivo/uniseg/graphemerules.go deleted file mode 100644 index 5d399d2..0000000 --- a/vendor/github.com/rivo/uniseg/graphemerules.go +++ /dev/null @@ -1,176 +0,0 @@ -package uniseg - -// The states of the grapheme cluster parser. -const ( - grAny = iota - grCR - grControlLF - grL - grLVV - grLVTT - grPrepend - grExtendedPictographic - grExtendedPictographicZWJ - grRIOdd - grRIEven -) - -// The grapheme cluster parser's breaking instructions. -const ( - grNoBoundary = iota - grBoundary -) - -// grTransitions implements the grapheme cluster parser's state transitions. -// Maps state and property to a new state, a breaking instruction, and rule -// number. The breaking instruction always refers to the boundary between the -// last and next code point. Returns negative values if no transition is found. -// -// This function is used as follows: -// -// 1. Find specific state + specific property. Stop if found. -// 2. Find specific state + any property. -// 3. Find any state + specific property. -// 4. If only (2) or (3) (but not both) was found, stop. -// 5. If both (2) and (3) were found, use state from (3) and breaking instruction -// from the transition with the lower rule number, prefer (3) if rule numbers -// are equal. Stop. -// 6. Assume grAny and grBoundary. -// -// Unicode version 15.0.0. -func grTransitions(state, prop int) (newState int, newProp int, boundary int) { - // It turns out that using a big switch statement is much faster than using - // a map. - - switch uint64(state) | uint64(prop)<<32 { - // GB5 - case grAny | prCR<<32: - return grCR, grBoundary, 50 - case grAny | prLF<<32: - return grControlLF, grBoundary, 50 - case grAny | prControl<<32: - return grControlLF, grBoundary, 50 - - // GB4 - case grCR | prAny<<32: - return grAny, grBoundary, 40 - case grControlLF | prAny<<32: - return grAny, grBoundary, 40 - - // GB3 - case grCR | prLF<<32: - return grControlLF, grNoBoundary, 30 - - // GB6 - case grAny | prL<<32: - return grL, grBoundary, 9990 - case grL | prL<<32: - return grL, grNoBoundary, 60 - case grL | prV<<32: - return grLVV, grNoBoundary, 60 - case grL | prLV<<32: - return grLVV, grNoBoundary, 60 - case grL | prLVT<<32: - return grLVTT, grNoBoundary, 60 - - // GB7 - case grAny | prLV<<32: - return grLVV, grBoundary, 9990 - case grAny | prV<<32: - return grLVV, grBoundary, 9990 - case grLVV | prV<<32: - return grLVV, grNoBoundary, 70 - case grLVV | prT<<32: - return grLVTT, grNoBoundary, 70 - - // GB8 - case grAny | prLVT<<32: - return grLVTT, grBoundary, 9990 - case grAny | prT<<32: - return grLVTT, grBoundary, 9990 - case grLVTT | prT<<32: - return grLVTT, grNoBoundary, 80 - - // GB9 - case grAny | prExtend<<32: - return grAny, grNoBoundary, 90 - case grAny | prZWJ<<32: - return grAny, grNoBoundary, 90 - - // GB9a - case grAny | prSpacingMark<<32: - return grAny, grNoBoundary, 91 - - // GB9b - case grAny | prPrepend<<32: - return grPrepend, grBoundary, 9990 - case grPrepend | prAny<<32: - return grAny, grNoBoundary, 92 - - // GB11 - case grAny | prExtendedPictographic<<32: - return grExtendedPictographic, grBoundary, 9990 - case grExtendedPictographic | prExtend<<32: - return grExtendedPictographic, grNoBoundary, 110 - case grExtendedPictographic | prZWJ<<32: - return grExtendedPictographicZWJ, grNoBoundary, 110 - case grExtendedPictographicZWJ | prExtendedPictographic<<32: - return grExtendedPictographic, grNoBoundary, 110 - - // GB12 / GB13 - case grAny | prRegionalIndicator<<32: - return grRIOdd, grBoundary, 9990 - case grRIOdd | prRegionalIndicator<<32: - return grRIEven, grNoBoundary, 120 - case grRIEven | prRegionalIndicator<<32: - return grRIOdd, grBoundary, 120 - default: - return -1, -1, -1 - } -} - -// transitionGraphemeState determines the new state of the grapheme cluster -// parser given the current state and the next code point. It also returns the -// code point's grapheme property (the value mapped by the [graphemeCodePoints] -// table) and whether a cluster boundary was detected. -func transitionGraphemeState(state int, r rune) (newState, prop int, boundary bool) { - // Determine the property of the next character. - prop = propertyGraphemes(r) - - // Find the applicable transition. - nextState, nextProp, _ := grTransitions(state, prop) - if nextState >= 0 { - // We have a specific transition. We'll use it. - return nextState, prop, nextProp == grBoundary - } - - // No specific transition found. Try the less specific ones. - anyPropState, anyPropProp, anyPropRule := grTransitions(state, prAny) - anyStateState, anyStateProp, anyStateRule := grTransitions(grAny, prop) - if anyPropState >= 0 && anyStateState >= 0 { - // Both apply. We'll use a mix (see comments for grTransitions). - newState = anyStateState - boundary = anyStateProp == grBoundary - if anyPropRule < anyStateRule { - boundary = anyPropProp == grBoundary - } - return - } - - if anyPropState >= 0 { - // We only have a specific state. - return anyPropState, prop, anyPropProp == grBoundary - // This branch will probably never be reached because okAnyState will - // always be true given the current transition map. But we keep it here - // for future modifications to the transition map where this may not be - // true anymore. - } - - if anyStateState >= 0 { - // We only have a specific property. - return anyStateState, prop, anyStateProp == grBoundary - } - - // No known transition. GB999: Any ÷ Any. - return grAny, prop, true -} diff --git a/vendor/github.com/rivo/uniseg/line.go b/vendor/github.com/rivo/uniseg/line.go deleted file mode 100644 index 7a46318..0000000 --- a/vendor/github.com/rivo/uniseg/line.go +++ /dev/null @@ -1,134 +0,0 @@ -package uniseg - -import "unicode/utf8" - -// FirstLineSegment returns the prefix of the given byte slice after which a -// decision to break the string over to the next line can or must be made, -// according to the rules of [Unicode Standard Annex #14]. This is used to -// implement line breaking. -// -// Line breaking, also known as word wrapping, is the process of breaking a -// section of text into lines such that it will fit in the available width of a -// page, window or other display area. -// -// The returned "segment" may not be broken into smaller parts, unless no other -// breaking opportunities present themselves, in which case you may break by -// grapheme clusters (using the [FirstGraphemeCluster] function to determine the -// grapheme clusters). -// -// The "mustBreak" flag indicates whether you MUST break the line after the -// given segment (true), for example after newline characters, or you MAY break -// the line after the given segment (false). -// -// This function can be called continuously to extract all non-breaking sub-sets -// from a byte slice, as illustrated in the example below. -// -// If you don't know the current state, for example when calling the function -// for the first time, you must pass -1. For consecutive calls, pass the state -// and rest slice returned by the previous call. -// -// The "rest" slice is the sub-slice of the original byte slice "b" starting -// after the last byte of the identified line segment. If the length of the -// "rest" slice is 0, the entire byte slice "b" has been processed. The -// "segment" byte slice is the sub-slice of the input slice containing the -// identified line segment. -// -// Given an empty byte slice "b", the function returns nil values. -// -// Note that in accordance with [UAX #14 LB3], the final segment will end with -// "mustBreak" set to true. You can choose to ignore this by checking if the -// length of the "rest" slice is 0 and calling [HasTrailingLineBreak] or -// [HasTrailingLineBreakInString] on the last rune. -// -// Note also that this algorithm may break within grapheme clusters. This is -// addressed in Section 8.2 Example 6 of UAX #14. To avoid this, you can use -// the [Step] function instead. -// -// [Unicode Standard Annex #14]: https://www.unicode.org/reports/tr14/ -// [UAX #14 LB3]: https://www.unicode.org/reports/tr14/#Algorithm -func FirstLineSegment(b []byte, state int) (segment, rest []byte, mustBreak bool, newState int) { - // An empty byte slice returns nothing. - if len(b) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRune(b) - if len(b) <= length { // If we're already past the end, there is nothing else to parse. - return b, nil, true, lbAny // LB3. - } - - // If we don't know the state, determine it now. - if state < 0 { - state, _ = transitionLineBreakState(state, r, b[length:], "") - } - - // Transition until we find a boundary. - var boundary int - for { - r, l := utf8.DecodeRune(b[length:]) - state, boundary = transitionLineBreakState(state, r, b[length+l:], "") - - if boundary != LineDontBreak { - return b[:length], b[length:], boundary == LineMustBreak, state - } - - length += l - if len(b) <= length { - return b, nil, true, lbAny // LB3 - } - } -} - -// FirstLineSegmentInString is like [FirstLineSegment] but its input and outputs -// are strings. -func FirstLineSegmentInString(str string, state int) (segment, rest string, mustBreak bool, newState int) { - // An empty byte slice returns nothing. - if len(str) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRuneInString(str) - if len(str) <= length { // If we're already past the end, there is nothing else to parse. - return str, "", true, lbAny // LB3. - } - - // If we don't know the state, determine it now. - if state < 0 { - state, _ = transitionLineBreakState(state, r, nil, str[length:]) - } - - // Transition until we find a boundary. - var boundary int - for { - r, l := utf8.DecodeRuneInString(str[length:]) - state, boundary = transitionLineBreakState(state, r, nil, str[length+l:]) - - if boundary != LineDontBreak { - return str[:length], str[length:], boundary == LineMustBreak, state - } - - length += l - if len(str) <= length { - return str, "", true, lbAny // LB3. - } - } -} - -// HasTrailingLineBreak returns true if the last rune in the given byte slice is -// one of the hard line break code points defined in LB4 and LB5 of [UAX #14]. -// -// [UAX #14]: https://www.unicode.org/reports/tr14/#Algorithm -func HasTrailingLineBreak(b []byte) bool { - r, _ := utf8.DecodeLastRune(b) - property, _ := propertyLineBreak(r) - return property == prBK || property == prCR || property == prLF || property == prNL -} - -// HasTrailingLineBreakInString is like [HasTrailingLineBreak] but for a string. -func HasTrailingLineBreakInString(str string) bool { - r, _ := utf8.DecodeLastRuneInString(str) - property, _ := propertyLineBreak(r) - return property == prBK || property == prCR || property == prLF || property == prNL -} diff --git a/vendor/github.com/rivo/uniseg/lineproperties.go b/vendor/github.com/rivo/uniseg/lineproperties.go deleted file mode 100644 index ac7fac4..0000000 --- a/vendor/github.com/rivo/uniseg/lineproperties.go +++ /dev/null @@ -1,3554 +0,0 @@ -// Code generated via go generate from gen_properties.go. DO NOT EDIT. - -package uniseg - -// lineBreakCodePoints are taken from -// https://www.unicode.org/Public/15.0.0/ucd/LineBreak.txt -// and -// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt -// ("Extended_Pictographic" only) -// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode -// license agreement. -var lineBreakCodePoints = [][4]int{ - {0x0000, 0x0008, prCM, gcCc}, // [9] .. - {0x0009, 0x0009, prBA, gcCc}, // - {0x000A, 0x000A, prLF, gcCc}, // - {0x000B, 0x000C, prBK, gcCc}, // [2] .. - {0x000D, 0x000D, prCR, gcCc}, // - {0x000E, 0x001F, prCM, gcCc}, // [18] .. - {0x0020, 0x0020, prSP, gcZs}, // SPACE - {0x0021, 0x0021, prEX, gcPo}, // EXCLAMATION MARK - {0x0022, 0x0022, prQU, gcPo}, // QUOTATION MARK - {0x0023, 0x0023, prAL, gcPo}, // NUMBER SIGN - {0x0024, 0x0024, prPR, gcSc}, // DOLLAR SIGN - {0x0025, 0x0025, prPO, gcPo}, // PERCENT SIGN - {0x0026, 0x0026, prAL, gcPo}, // AMPERSAND - {0x0027, 0x0027, prQU, gcPo}, // APOSTROPHE - {0x0028, 0x0028, prOP, gcPs}, // LEFT PARENTHESIS - {0x0029, 0x0029, prCP, gcPe}, // RIGHT PARENTHESIS - {0x002A, 0x002A, prAL, gcPo}, // ASTERISK - {0x002B, 0x002B, prPR, gcSm}, // PLUS SIGN - {0x002C, 0x002C, prIS, gcPo}, // COMMA - {0x002D, 0x002D, prHY, gcPd}, // HYPHEN-MINUS - {0x002E, 0x002E, prIS, gcPo}, // FULL STOP - {0x002F, 0x002F, prSY, gcPo}, // SOLIDUS - {0x0030, 0x0039, prNU, gcNd}, // [10] DIGIT ZERO..DIGIT NINE - {0x003A, 0x003B, prIS, gcPo}, // [2] COLON..SEMICOLON - {0x003C, 0x003E, prAL, gcSm}, // [3] LESS-THAN SIGN..GREATER-THAN SIGN - {0x003F, 0x003F, prEX, gcPo}, // QUESTION MARK - {0x0040, 0x0040, prAL, gcPo}, // COMMERCIAL AT - {0x0041, 0x005A, prAL, gcLu}, // [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z - {0x005B, 0x005B, prOP, gcPs}, // LEFT SQUARE BRACKET - {0x005C, 0x005C, prPR, gcPo}, // REVERSE SOLIDUS - {0x005D, 0x005D, prCP, gcPe}, // RIGHT SQUARE BRACKET - {0x005E, 0x005E, prAL, gcSk}, // CIRCUMFLEX ACCENT - {0x005F, 0x005F, prAL, gcPc}, // LOW LINE - {0x0060, 0x0060, prAL, gcSk}, // GRAVE ACCENT - {0x0061, 0x007A, prAL, gcLl}, // [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z - {0x007B, 0x007B, prOP, gcPs}, // LEFT CURLY BRACKET - {0x007C, 0x007C, prBA, gcSm}, // VERTICAL LINE - {0x007D, 0x007D, prCL, gcPe}, // RIGHT CURLY BRACKET - {0x007E, 0x007E, prAL, gcSm}, // TILDE - {0x007F, 0x007F, prCM, gcCc}, // - {0x0080, 0x0084, prCM, gcCc}, // [5] .. - {0x0085, 0x0085, prNL, gcCc}, // - {0x0086, 0x009F, prCM, gcCc}, // [26] .. - {0x00A0, 0x00A0, prGL, gcZs}, // NO-BREAK SPACE - {0x00A1, 0x00A1, prOP, gcPo}, // INVERTED EXCLAMATION MARK - {0x00A2, 0x00A2, prPO, gcSc}, // CENT SIGN - {0x00A3, 0x00A5, prPR, gcSc}, // [3] POUND SIGN..YEN SIGN - {0x00A6, 0x00A6, prAL, gcSo}, // BROKEN BAR - {0x00A7, 0x00A7, prAI, gcPo}, // SECTION SIGN - {0x00A8, 0x00A8, prAI, gcSk}, // DIAERESIS - {0x00A9, 0x00A9, prAL, gcSo}, // COPYRIGHT SIGN - {0x00AA, 0x00AA, prAI, gcLo}, // FEMININE ORDINAL INDICATOR - {0x00AB, 0x00AB, prQU, gcPi}, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - {0x00AC, 0x00AC, prAL, gcSm}, // NOT SIGN - {0x00AD, 0x00AD, prBA, gcCf}, // SOFT HYPHEN - {0x00AE, 0x00AE, prAL, gcSo}, // REGISTERED SIGN - {0x00AF, 0x00AF, prAL, gcSk}, // MACRON - {0x00B0, 0x00B0, prPO, gcSo}, // DEGREE SIGN - {0x00B1, 0x00B1, prPR, gcSm}, // PLUS-MINUS SIGN - {0x00B2, 0x00B3, prAI, gcNo}, // [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE - {0x00B4, 0x00B4, prBB, gcSk}, // ACUTE ACCENT - {0x00B5, 0x00B5, prAL, gcLl}, // MICRO SIGN - {0x00B6, 0x00B7, prAI, gcPo}, // [2] PILCROW SIGN..MIDDLE DOT - {0x00B8, 0x00B8, prAI, gcSk}, // CEDILLA - {0x00B9, 0x00B9, prAI, gcNo}, // SUPERSCRIPT ONE - {0x00BA, 0x00BA, prAI, gcLo}, // MASCULINE ORDINAL INDICATOR - {0x00BB, 0x00BB, prQU, gcPf}, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - {0x00BC, 0x00BE, prAI, gcNo}, // [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS - {0x00BF, 0x00BF, prOP, gcPo}, // INVERTED QUESTION MARK - {0x00C0, 0x00D6, prAL, gcLu}, // [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS - {0x00D7, 0x00D7, prAI, gcSm}, // MULTIPLICATION SIGN - {0x00D8, 0x00F6, prAL, gcLC}, // [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS - {0x00F7, 0x00F7, prAI, gcSm}, // DIVISION SIGN - {0x00F8, 0x00FF, prAL, gcLl}, // [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS - {0x0100, 0x017F, prAL, gcLC}, // [128] LATIN CAPITAL LETTER A WITH MACRON..LATIN SMALL LETTER LONG S - {0x0180, 0x01BA, prAL, gcLC}, // [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL - {0x01BB, 0x01BB, prAL, gcLo}, // LATIN LETTER TWO WITH STROKE - {0x01BC, 0x01BF, prAL, gcLC}, // [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN - {0x01C0, 0x01C3, prAL, gcLo}, // [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK - {0x01C4, 0x024F, prAL, gcLC}, // [140] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER Y WITH STROKE - {0x0250, 0x0293, prAL, gcLl}, // [68] LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER EZH WITH CURL - {0x0294, 0x0294, prAL, gcLo}, // LATIN LETTER GLOTTAL STOP - {0x0295, 0x02AF, prAL, gcLl}, // [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL - {0x02B0, 0x02C1, prAL, gcLm}, // [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP - {0x02C2, 0x02C5, prAL, gcSk}, // [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD - {0x02C6, 0x02C6, prAL, gcLm}, // MODIFIER LETTER CIRCUMFLEX ACCENT - {0x02C7, 0x02C7, prAI, gcLm}, // CARON - {0x02C8, 0x02C8, prBB, gcLm}, // MODIFIER LETTER VERTICAL LINE - {0x02C9, 0x02CB, prAI, gcLm}, // [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT - {0x02CC, 0x02CC, prBB, gcLm}, // MODIFIER LETTER LOW VERTICAL LINE - {0x02CD, 0x02CD, prAI, gcLm}, // MODIFIER LETTER LOW MACRON - {0x02CE, 0x02CF, prAL, gcLm}, // [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT - {0x02D0, 0x02D0, prAI, gcLm}, // MODIFIER LETTER TRIANGULAR COLON - {0x02D1, 0x02D1, prAL, gcLm}, // MODIFIER LETTER HALF TRIANGULAR COLON - {0x02D2, 0x02D7, prAL, gcSk}, // [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN - {0x02D8, 0x02DB, prAI, gcSk}, // [4] BREVE..OGONEK - {0x02DC, 0x02DC, prAL, gcSk}, // SMALL TILDE - {0x02DD, 0x02DD, prAI, gcSk}, // DOUBLE ACUTE ACCENT - {0x02DE, 0x02DE, prAL, gcSk}, // MODIFIER LETTER RHOTIC HOOK - {0x02DF, 0x02DF, prBB, gcSk}, // MODIFIER LETTER CROSS ACCENT - {0x02E0, 0x02E4, prAL, gcLm}, // [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP - {0x02E5, 0x02EB, prAL, gcSk}, // [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK - {0x02EC, 0x02EC, prAL, gcLm}, // MODIFIER LETTER VOICING - {0x02ED, 0x02ED, prAL, gcSk}, // MODIFIER LETTER UNASPIRATED - {0x02EE, 0x02EE, prAL, gcLm}, // MODIFIER LETTER DOUBLE APOSTROPHE - {0x02EF, 0x02FF, prAL, gcSk}, // [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW - {0x0300, 0x034E, prCM, gcMn}, // [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW - {0x034F, 0x034F, prGL, gcMn}, // COMBINING GRAPHEME JOINER - {0x0350, 0x035B, prCM, gcMn}, // [12] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING ZIGZAG ABOVE - {0x035C, 0x0362, prGL, gcMn}, // [7] COMBINING DOUBLE BREVE BELOW..COMBINING DOUBLE RIGHTWARDS ARROW BELOW - {0x0363, 0x036F, prCM, gcMn}, // [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X - {0x0370, 0x0373, prAL, gcLC}, // [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI - {0x0374, 0x0374, prAL, gcLm}, // GREEK NUMERAL SIGN - {0x0375, 0x0375, prAL, gcSk}, // GREEK LOWER NUMERAL SIGN - {0x0376, 0x0377, prAL, gcLC}, // [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA - {0x037A, 0x037A, prAL, gcLm}, // GREEK YPOGEGRAMMENI - {0x037B, 0x037D, prAL, gcLl}, // [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL - {0x037E, 0x037E, prIS, gcPo}, // GREEK QUESTION MARK - {0x037F, 0x037F, prAL, gcLu}, // GREEK CAPITAL LETTER YOT - {0x0384, 0x0385, prAL, gcSk}, // [2] GREEK TONOS..GREEK DIALYTIKA TONOS - {0x0386, 0x0386, prAL, gcLu}, // GREEK CAPITAL LETTER ALPHA WITH TONOS - {0x0387, 0x0387, prAL, gcPo}, // GREEK ANO TELEIA - {0x0388, 0x038A, prAL, gcLu}, // [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS - {0x038C, 0x038C, prAL, gcLu}, // GREEK CAPITAL LETTER OMICRON WITH TONOS - {0x038E, 0x03A1, prAL, gcLC}, // [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO - {0x03A3, 0x03F5, prAL, gcLC}, // [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL - {0x03F6, 0x03F6, prAL, gcSm}, // GREEK REVERSED LUNATE EPSILON SYMBOL - {0x03F7, 0x03FF, prAL, gcLC}, // [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL - {0x0400, 0x0481, prAL, gcLC}, // [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA - {0x0482, 0x0482, prAL, gcSo}, // CYRILLIC THOUSANDS SIGN - {0x0483, 0x0487, prCM, gcMn}, // [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE - {0x0488, 0x0489, prCM, gcMe}, // [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN - {0x048A, 0x04FF, prAL, gcLC}, // [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE - {0x0500, 0x052F, prAL, gcLC}, // [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER - {0x0531, 0x0556, prAL, gcLu}, // [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH - {0x0559, 0x0559, prAL, gcLm}, // ARMENIAN MODIFIER LETTER LEFT HALF RING - {0x055A, 0x055F, prAL, gcPo}, // [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK - {0x0560, 0x0588, prAL, gcLl}, // [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE - {0x0589, 0x0589, prIS, gcPo}, // ARMENIAN FULL STOP - {0x058A, 0x058A, prBA, gcPd}, // ARMENIAN HYPHEN - {0x058D, 0x058E, prAL, gcSo}, // [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN - {0x058F, 0x058F, prPR, gcSc}, // ARMENIAN DRAM SIGN - {0x0591, 0x05BD, prCM, gcMn}, // [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG - {0x05BE, 0x05BE, prBA, gcPd}, // HEBREW PUNCTUATION MAQAF - {0x05BF, 0x05BF, prCM, gcMn}, // HEBREW POINT RAFE - {0x05C0, 0x05C0, prAL, gcPo}, // HEBREW PUNCTUATION PASEQ - {0x05C1, 0x05C2, prCM, gcMn}, // [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT - {0x05C3, 0x05C3, prAL, gcPo}, // HEBREW PUNCTUATION SOF PASUQ - {0x05C4, 0x05C5, prCM, gcMn}, // [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT - {0x05C6, 0x05C6, prEX, gcPo}, // HEBREW PUNCTUATION NUN HAFUKHA - {0x05C7, 0x05C7, prCM, gcMn}, // HEBREW POINT QAMATS QATAN - {0x05D0, 0x05EA, prHL, gcLo}, // [27] HEBREW LETTER ALEF..HEBREW LETTER TAV - {0x05EF, 0x05F2, prHL, gcLo}, // [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD - {0x05F3, 0x05F4, prAL, gcPo}, // [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM - {0x0600, 0x0605, prAL, gcCf}, // [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE - {0x0606, 0x0608, prAL, gcSm}, // [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY - {0x0609, 0x060A, prPO, gcPo}, // [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN - {0x060B, 0x060B, prPO, gcSc}, // AFGHANI SIGN - {0x060C, 0x060D, prIS, gcPo}, // [2] ARABIC COMMA..ARABIC DATE SEPARATOR - {0x060E, 0x060F, prAL, gcSo}, // [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA - {0x0610, 0x061A, prCM, gcMn}, // [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA - {0x061B, 0x061B, prEX, gcPo}, // ARABIC SEMICOLON - {0x061C, 0x061C, prCM, gcCf}, // ARABIC LETTER MARK - {0x061D, 0x061F, prEX, gcPo}, // [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK - {0x0620, 0x063F, prAL, gcLo}, // [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE - {0x0640, 0x0640, prAL, gcLm}, // ARABIC TATWEEL - {0x0641, 0x064A, prAL, gcLo}, // [10] ARABIC LETTER FEH..ARABIC LETTER YEH - {0x064B, 0x065F, prCM, gcMn}, // [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW - {0x0660, 0x0669, prNU, gcNd}, // [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE - {0x066A, 0x066A, prPO, gcPo}, // ARABIC PERCENT SIGN - {0x066B, 0x066C, prNU, gcPo}, // [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR - {0x066D, 0x066D, prAL, gcPo}, // ARABIC FIVE POINTED STAR - {0x066E, 0x066F, prAL, gcLo}, // [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF - {0x0670, 0x0670, prCM, gcMn}, // ARABIC LETTER SUPERSCRIPT ALEF - {0x0671, 0x06D3, prAL, gcLo}, // [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE - {0x06D4, 0x06D4, prEX, gcPo}, // ARABIC FULL STOP - {0x06D5, 0x06D5, prAL, gcLo}, // ARABIC LETTER AE - {0x06D6, 0x06DC, prCM, gcMn}, // [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN - {0x06DD, 0x06DD, prAL, gcCf}, // ARABIC END OF AYAH - {0x06DE, 0x06DE, prAL, gcSo}, // ARABIC START OF RUB EL HIZB - {0x06DF, 0x06E4, prCM, gcMn}, // [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA - {0x06E5, 0x06E6, prAL, gcLm}, // [2] ARABIC SMALL WAW..ARABIC SMALL YEH - {0x06E7, 0x06E8, prCM, gcMn}, // [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON - {0x06E9, 0x06E9, prAL, gcSo}, // ARABIC PLACE OF SAJDAH - {0x06EA, 0x06ED, prCM, gcMn}, // [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM - {0x06EE, 0x06EF, prAL, gcLo}, // [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V - {0x06F0, 0x06F9, prNU, gcNd}, // [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE - {0x06FA, 0x06FC, prAL, gcLo}, // [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW - {0x06FD, 0x06FE, prAL, gcSo}, // [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN - {0x06FF, 0x06FF, prAL, gcLo}, // ARABIC LETTER HEH WITH INVERTED V - {0x0700, 0x070D, prAL, gcPo}, // [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS - {0x070F, 0x070F, prAL, gcCf}, // SYRIAC ABBREVIATION MARK - {0x0710, 0x0710, prAL, gcLo}, // SYRIAC LETTER ALAPH - {0x0711, 0x0711, prCM, gcMn}, // SYRIAC LETTER SUPERSCRIPT ALAPH - {0x0712, 0x072F, prAL, gcLo}, // [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH - {0x0730, 0x074A, prCM, gcMn}, // [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH - {0x074D, 0x074F, prAL, gcLo}, // [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE - {0x0750, 0x077F, prAL, gcLo}, // [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE - {0x0780, 0x07A5, prAL, gcLo}, // [38] THAANA LETTER HAA..THAANA LETTER WAAVU - {0x07A6, 0x07B0, prCM, gcMn}, // [11] THAANA ABAFILI..THAANA SUKUN - {0x07B1, 0x07B1, prAL, gcLo}, // THAANA LETTER NAA - {0x07C0, 0x07C9, prNU, gcNd}, // [10] NKO DIGIT ZERO..NKO DIGIT NINE - {0x07CA, 0x07EA, prAL, gcLo}, // [33] NKO LETTER A..NKO LETTER JONA RA - {0x07EB, 0x07F3, prCM, gcMn}, // [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE - {0x07F4, 0x07F5, prAL, gcLm}, // [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE - {0x07F6, 0x07F6, prAL, gcSo}, // NKO SYMBOL OO DENNEN - {0x07F7, 0x07F7, prAL, gcPo}, // NKO SYMBOL GBAKURUNEN - {0x07F8, 0x07F8, prIS, gcPo}, // NKO COMMA - {0x07F9, 0x07F9, prEX, gcPo}, // NKO EXCLAMATION MARK - {0x07FA, 0x07FA, prAL, gcLm}, // NKO LAJANYALAN - {0x07FD, 0x07FD, prCM, gcMn}, // NKO DANTAYALAN - {0x07FE, 0x07FF, prPR, gcSc}, // [2] NKO DOROME SIGN..NKO TAMAN SIGN - {0x0800, 0x0815, prAL, gcLo}, // [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF - {0x0816, 0x0819, prCM, gcMn}, // [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH - {0x081A, 0x081A, prAL, gcLm}, // SAMARITAN MODIFIER LETTER EPENTHETIC YUT - {0x081B, 0x0823, prCM, gcMn}, // [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A - {0x0824, 0x0824, prAL, gcLm}, // SAMARITAN MODIFIER LETTER SHORT A - {0x0825, 0x0827, prCM, gcMn}, // [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U - {0x0828, 0x0828, prAL, gcLm}, // SAMARITAN MODIFIER LETTER I - {0x0829, 0x082D, prCM, gcMn}, // [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA - {0x0830, 0x083E, prAL, gcPo}, // [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU - {0x0840, 0x0858, prAL, gcLo}, // [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN - {0x0859, 0x085B, prCM, gcMn}, // [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK - {0x085E, 0x085E, prAL, gcPo}, // MANDAIC PUNCTUATION - {0x0860, 0x086A, prAL, gcLo}, // [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA - {0x0870, 0x0887, prAL, gcLo}, // [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT - {0x0888, 0x0888, prAL, gcSk}, // ARABIC RAISED ROUND DOT - {0x0889, 0x088E, prAL, gcLo}, // [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL - {0x0890, 0x0891, prAL, gcCf}, // [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE - {0x0898, 0x089F, prCM, gcMn}, // [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA - {0x08A0, 0x08C8, prAL, gcLo}, // [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF - {0x08C9, 0x08C9, prAL, gcLm}, // ARABIC SMALL FARSI YEH - {0x08CA, 0x08E1, prCM, gcMn}, // [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA - {0x08E2, 0x08E2, prAL, gcCf}, // ARABIC DISPUTED END OF AYAH - {0x08E3, 0x08FF, prCM, gcMn}, // [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA - {0x0900, 0x0902, prCM, gcMn}, // [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA - {0x0903, 0x0903, prCM, gcMc}, // DEVANAGARI SIGN VISARGA - {0x0904, 0x0939, prAL, gcLo}, // [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA - {0x093A, 0x093A, prCM, gcMn}, // DEVANAGARI VOWEL SIGN OE - {0x093B, 0x093B, prCM, gcMc}, // DEVANAGARI VOWEL SIGN OOE - {0x093C, 0x093C, prCM, gcMn}, // DEVANAGARI SIGN NUKTA - {0x093D, 0x093D, prAL, gcLo}, // DEVANAGARI SIGN AVAGRAHA - {0x093E, 0x0940, prCM, gcMc}, // [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II - {0x0941, 0x0948, prCM, gcMn}, // [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI - {0x0949, 0x094C, prCM, gcMc}, // [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU - {0x094D, 0x094D, prCM, gcMn}, // DEVANAGARI SIGN VIRAMA - {0x094E, 0x094F, prCM, gcMc}, // [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW - {0x0950, 0x0950, prAL, gcLo}, // DEVANAGARI OM - {0x0951, 0x0957, prCM, gcMn}, // [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE - {0x0958, 0x0961, prAL, gcLo}, // [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL - {0x0962, 0x0963, prCM, gcMn}, // [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL - {0x0964, 0x0965, prBA, gcPo}, // [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA - {0x0966, 0x096F, prNU, gcNd}, // [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE - {0x0970, 0x0970, prAL, gcPo}, // DEVANAGARI ABBREVIATION SIGN - {0x0971, 0x0971, prAL, gcLm}, // DEVANAGARI SIGN HIGH SPACING DOT - {0x0972, 0x097F, prAL, gcLo}, // [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA - {0x0980, 0x0980, prAL, gcLo}, // BENGALI ANJI - {0x0981, 0x0981, prCM, gcMn}, // BENGALI SIGN CANDRABINDU - {0x0982, 0x0983, prCM, gcMc}, // [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA - {0x0985, 0x098C, prAL, gcLo}, // [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L - {0x098F, 0x0990, prAL, gcLo}, // [2] BENGALI LETTER E..BENGALI LETTER AI - {0x0993, 0x09A8, prAL, gcLo}, // [22] BENGALI LETTER O..BENGALI LETTER NA - {0x09AA, 0x09B0, prAL, gcLo}, // [7] BENGALI LETTER PA..BENGALI LETTER RA - {0x09B2, 0x09B2, prAL, gcLo}, // BENGALI LETTER LA - {0x09B6, 0x09B9, prAL, gcLo}, // [4] BENGALI LETTER SHA..BENGALI LETTER HA - {0x09BC, 0x09BC, prCM, gcMn}, // BENGALI SIGN NUKTA - {0x09BD, 0x09BD, prAL, gcLo}, // BENGALI SIGN AVAGRAHA - {0x09BE, 0x09C0, prCM, gcMc}, // [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II - {0x09C1, 0x09C4, prCM, gcMn}, // [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR - {0x09C7, 0x09C8, prCM, gcMc}, // [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI - {0x09CB, 0x09CC, prCM, gcMc}, // [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU - {0x09CD, 0x09CD, prCM, gcMn}, // BENGALI SIGN VIRAMA - {0x09CE, 0x09CE, prAL, gcLo}, // BENGALI LETTER KHANDA TA - {0x09D7, 0x09D7, prCM, gcMc}, // BENGALI AU LENGTH MARK - {0x09DC, 0x09DD, prAL, gcLo}, // [2] BENGALI LETTER RRA..BENGALI LETTER RHA - {0x09DF, 0x09E1, prAL, gcLo}, // [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL - {0x09E2, 0x09E3, prCM, gcMn}, // [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL - {0x09E6, 0x09EF, prNU, gcNd}, // [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE - {0x09F0, 0x09F1, prAL, gcLo}, // [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL - {0x09F2, 0x09F3, prPO, gcSc}, // [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN - {0x09F4, 0x09F8, prAL, gcNo}, // [5] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR - {0x09F9, 0x09F9, prPO, gcNo}, // BENGALI CURRENCY DENOMINATOR SIXTEEN - {0x09FA, 0x09FA, prAL, gcSo}, // BENGALI ISSHAR - {0x09FB, 0x09FB, prPR, gcSc}, // BENGALI GANDA MARK - {0x09FC, 0x09FC, prAL, gcLo}, // BENGALI LETTER VEDIC ANUSVARA - {0x09FD, 0x09FD, prAL, gcPo}, // BENGALI ABBREVIATION SIGN - {0x09FE, 0x09FE, prCM, gcMn}, // BENGALI SANDHI MARK - {0x0A01, 0x0A02, prCM, gcMn}, // [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI - {0x0A03, 0x0A03, prCM, gcMc}, // GURMUKHI SIGN VISARGA - {0x0A05, 0x0A0A, prAL, gcLo}, // [6] GURMUKHI LETTER A..GURMUKHI LETTER UU - {0x0A0F, 0x0A10, prAL, gcLo}, // [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI - {0x0A13, 0x0A28, prAL, gcLo}, // [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA - {0x0A2A, 0x0A30, prAL, gcLo}, // [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA - {0x0A32, 0x0A33, prAL, gcLo}, // [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA - {0x0A35, 0x0A36, prAL, gcLo}, // [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA - {0x0A38, 0x0A39, prAL, gcLo}, // [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA - {0x0A3C, 0x0A3C, prCM, gcMn}, // GURMUKHI SIGN NUKTA - {0x0A3E, 0x0A40, prCM, gcMc}, // [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II - {0x0A41, 0x0A42, prCM, gcMn}, // [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU - {0x0A47, 0x0A48, prCM, gcMn}, // [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI - {0x0A4B, 0x0A4D, prCM, gcMn}, // [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA - {0x0A51, 0x0A51, prCM, gcMn}, // GURMUKHI SIGN UDAAT - {0x0A59, 0x0A5C, prAL, gcLo}, // [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA - {0x0A5E, 0x0A5E, prAL, gcLo}, // GURMUKHI LETTER FA - {0x0A66, 0x0A6F, prNU, gcNd}, // [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE - {0x0A70, 0x0A71, prCM, gcMn}, // [2] GURMUKHI TIPPI..GURMUKHI ADDAK - {0x0A72, 0x0A74, prAL, gcLo}, // [3] GURMUKHI IRI..GURMUKHI EK ONKAR - {0x0A75, 0x0A75, prCM, gcMn}, // GURMUKHI SIGN YAKASH - {0x0A76, 0x0A76, prAL, gcPo}, // GURMUKHI ABBREVIATION SIGN - {0x0A81, 0x0A82, prCM, gcMn}, // [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA - {0x0A83, 0x0A83, prCM, gcMc}, // GUJARATI SIGN VISARGA - {0x0A85, 0x0A8D, prAL, gcLo}, // [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E - {0x0A8F, 0x0A91, prAL, gcLo}, // [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O - {0x0A93, 0x0AA8, prAL, gcLo}, // [22] GUJARATI LETTER O..GUJARATI LETTER NA - {0x0AAA, 0x0AB0, prAL, gcLo}, // [7] GUJARATI LETTER PA..GUJARATI LETTER RA - {0x0AB2, 0x0AB3, prAL, gcLo}, // [2] GUJARATI LETTER LA..GUJARATI LETTER LLA - {0x0AB5, 0x0AB9, prAL, gcLo}, // [5] GUJARATI LETTER VA..GUJARATI LETTER HA - {0x0ABC, 0x0ABC, prCM, gcMn}, // GUJARATI SIGN NUKTA - {0x0ABD, 0x0ABD, prAL, gcLo}, // GUJARATI SIGN AVAGRAHA - {0x0ABE, 0x0AC0, prCM, gcMc}, // [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II - {0x0AC1, 0x0AC5, prCM, gcMn}, // [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E - {0x0AC7, 0x0AC8, prCM, gcMn}, // [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI - {0x0AC9, 0x0AC9, prCM, gcMc}, // GUJARATI VOWEL SIGN CANDRA O - {0x0ACB, 0x0ACC, prCM, gcMc}, // [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU - {0x0ACD, 0x0ACD, prCM, gcMn}, // GUJARATI SIGN VIRAMA - {0x0AD0, 0x0AD0, prAL, gcLo}, // GUJARATI OM - {0x0AE0, 0x0AE1, prAL, gcLo}, // [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL - {0x0AE2, 0x0AE3, prCM, gcMn}, // [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL - {0x0AE6, 0x0AEF, prNU, gcNd}, // [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE - {0x0AF0, 0x0AF0, prAL, gcPo}, // GUJARATI ABBREVIATION SIGN - {0x0AF1, 0x0AF1, prPR, gcSc}, // GUJARATI RUPEE SIGN - {0x0AF9, 0x0AF9, prAL, gcLo}, // GUJARATI LETTER ZHA - {0x0AFA, 0x0AFF, prCM, gcMn}, // [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE - {0x0B01, 0x0B01, prCM, gcMn}, // ORIYA SIGN CANDRABINDU - {0x0B02, 0x0B03, prCM, gcMc}, // [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA - {0x0B05, 0x0B0C, prAL, gcLo}, // [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L - {0x0B0F, 0x0B10, prAL, gcLo}, // [2] ORIYA LETTER E..ORIYA LETTER AI - {0x0B13, 0x0B28, prAL, gcLo}, // [22] ORIYA LETTER O..ORIYA LETTER NA - {0x0B2A, 0x0B30, prAL, gcLo}, // [7] ORIYA LETTER PA..ORIYA LETTER RA - {0x0B32, 0x0B33, prAL, gcLo}, // [2] ORIYA LETTER LA..ORIYA LETTER LLA - {0x0B35, 0x0B39, prAL, gcLo}, // [5] ORIYA LETTER VA..ORIYA LETTER HA - {0x0B3C, 0x0B3C, prCM, gcMn}, // ORIYA SIGN NUKTA - {0x0B3D, 0x0B3D, prAL, gcLo}, // ORIYA SIGN AVAGRAHA - {0x0B3E, 0x0B3E, prCM, gcMc}, // ORIYA VOWEL SIGN AA - {0x0B3F, 0x0B3F, prCM, gcMn}, // ORIYA VOWEL SIGN I - {0x0B40, 0x0B40, prCM, gcMc}, // ORIYA VOWEL SIGN II - {0x0B41, 0x0B44, prCM, gcMn}, // [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR - {0x0B47, 0x0B48, prCM, gcMc}, // [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI - {0x0B4B, 0x0B4C, prCM, gcMc}, // [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU - {0x0B4D, 0x0B4D, prCM, gcMn}, // ORIYA SIGN VIRAMA - {0x0B55, 0x0B56, prCM, gcMn}, // [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK - {0x0B57, 0x0B57, prCM, gcMc}, // ORIYA AU LENGTH MARK - {0x0B5C, 0x0B5D, prAL, gcLo}, // [2] ORIYA LETTER RRA..ORIYA LETTER RHA - {0x0B5F, 0x0B61, prAL, gcLo}, // [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL - {0x0B62, 0x0B63, prCM, gcMn}, // [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL - {0x0B66, 0x0B6F, prNU, gcNd}, // [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE - {0x0B70, 0x0B70, prAL, gcSo}, // ORIYA ISSHAR - {0x0B71, 0x0B71, prAL, gcLo}, // ORIYA LETTER WA - {0x0B72, 0x0B77, prAL, gcNo}, // [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS - {0x0B82, 0x0B82, prCM, gcMn}, // TAMIL SIGN ANUSVARA - {0x0B83, 0x0B83, prAL, gcLo}, // TAMIL SIGN VISARGA - {0x0B85, 0x0B8A, prAL, gcLo}, // [6] TAMIL LETTER A..TAMIL LETTER UU - {0x0B8E, 0x0B90, prAL, gcLo}, // [3] TAMIL LETTER E..TAMIL LETTER AI - {0x0B92, 0x0B95, prAL, gcLo}, // [4] TAMIL LETTER O..TAMIL LETTER KA - {0x0B99, 0x0B9A, prAL, gcLo}, // [2] TAMIL LETTER NGA..TAMIL LETTER CA - {0x0B9C, 0x0B9C, prAL, gcLo}, // TAMIL LETTER JA - {0x0B9E, 0x0B9F, prAL, gcLo}, // [2] TAMIL LETTER NYA..TAMIL LETTER TTA - {0x0BA3, 0x0BA4, prAL, gcLo}, // [2] TAMIL LETTER NNA..TAMIL LETTER TA - {0x0BA8, 0x0BAA, prAL, gcLo}, // [3] TAMIL LETTER NA..TAMIL LETTER PA - {0x0BAE, 0x0BB9, prAL, gcLo}, // [12] TAMIL LETTER MA..TAMIL LETTER HA - {0x0BBE, 0x0BBF, prCM, gcMc}, // [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I - {0x0BC0, 0x0BC0, prCM, gcMn}, // TAMIL VOWEL SIGN II - {0x0BC1, 0x0BC2, prCM, gcMc}, // [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU - {0x0BC6, 0x0BC8, prCM, gcMc}, // [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI - {0x0BCA, 0x0BCC, prCM, gcMc}, // [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU - {0x0BCD, 0x0BCD, prCM, gcMn}, // TAMIL SIGN VIRAMA - {0x0BD0, 0x0BD0, prAL, gcLo}, // TAMIL OM - {0x0BD7, 0x0BD7, prCM, gcMc}, // TAMIL AU LENGTH MARK - {0x0BE6, 0x0BEF, prNU, gcNd}, // [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE - {0x0BF0, 0x0BF2, prAL, gcNo}, // [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND - {0x0BF3, 0x0BF8, prAL, gcSo}, // [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN - {0x0BF9, 0x0BF9, prPR, gcSc}, // TAMIL RUPEE SIGN - {0x0BFA, 0x0BFA, prAL, gcSo}, // TAMIL NUMBER SIGN - {0x0C00, 0x0C00, prCM, gcMn}, // TELUGU SIGN COMBINING CANDRABINDU ABOVE - {0x0C01, 0x0C03, prCM, gcMc}, // [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA - {0x0C04, 0x0C04, prCM, gcMn}, // TELUGU SIGN COMBINING ANUSVARA ABOVE - {0x0C05, 0x0C0C, prAL, gcLo}, // [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L - {0x0C0E, 0x0C10, prAL, gcLo}, // [3] TELUGU LETTER E..TELUGU LETTER AI - {0x0C12, 0x0C28, prAL, gcLo}, // [23] TELUGU LETTER O..TELUGU LETTER NA - {0x0C2A, 0x0C39, prAL, gcLo}, // [16] TELUGU LETTER PA..TELUGU LETTER HA - {0x0C3C, 0x0C3C, prCM, gcMn}, // TELUGU SIGN NUKTA - {0x0C3D, 0x0C3D, prAL, gcLo}, // TELUGU SIGN AVAGRAHA - {0x0C3E, 0x0C40, prCM, gcMn}, // [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II - {0x0C41, 0x0C44, prCM, gcMc}, // [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR - {0x0C46, 0x0C48, prCM, gcMn}, // [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI - {0x0C4A, 0x0C4D, prCM, gcMn}, // [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA - {0x0C55, 0x0C56, prCM, gcMn}, // [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK - {0x0C58, 0x0C5A, prAL, gcLo}, // [3] TELUGU LETTER TSA..TELUGU LETTER RRRA - {0x0C5D, 0x0C5D, prAL, gcLo}, // TELUGU LETTER NAKAARA POLLU - {0x0C60, 0x0C61, prAL, gcLo}, // [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL - {0x0C62, 0x0C63, prCM, gcMn}, // [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL - {0x0C66, 0x0C6F, prNU, gcNd}, // [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE - {0x0C77, 0x0C77, prBB, gcPo}, // TELUGU SIGN SIDDHAM - {0x0C78, 0x0C7E, prAL, gcNo}, // [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR - {0x0C7F, 0x0C7F, prAL, gcSo}, // TELUGU SIGN TUUMU - {0x0C80, 0x0C80, prAL, gcLo}, // KANNADA SIGN SPACING CANDRABINDU - {0x0C81, 0x0C81, prCM, gcMn}, // KANNADA SIGN CANDRABINDU - {0x0C82, 0x0C83, prCM, gcMc}, // [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA - {0x0C84, 0x0C84, prBB, gcPo}, // KANNADA SIGN SIDDHAM - {0x0C85, 0x0C8C, prAL, gcLo}, // [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L - {0x0C8E, 0x0C90, prAL, gcLo}, // [3] KANNADA LETTER E..KANNADA LETTER AI - {0x0C92, 0x0CA8, prAL, gcLo}, // [23] KANNADA LETTER O..KANNADA LETTER NA - {0x0CAA, 0x0CB3, prAL, gcLo}, // [10] KANNADA LETTER PA..KANNADA LETTER LLA - {0x0CB5, 0x0CB9, prAL, gcLo}, // [5] KANNADA LETTER VA..KANNADA LETTER HA - {0x0CBC, 0x0CBC, prCM, gcMn}, // KANNADA SIGN NUKTA - {0x0CBD, 0x0CBD, prAL, gcLo}, // KANNADA SIGN AVAGRAHA - {0x0CBE, 0x0CBE, prCM, gcMc}, // KANNADA VOWEL SIGN AA - {0x0CBF, 0x0CBF, prCM, gcMn}, // KANNADA VOWEL SIGN I - {0x0CC0, 0x0CC4, prCM, gcMc}, // [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR - {0x0CC6, 0x0CC6, prCM, gcMn}, // KANNADA VOWEL SIGN E - {0x0CC7, 0x0CC8, prCM, gcMc}, // [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI - {0x0CCA, 0x0CCB, prCM, gcMc}, // [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO - {0x0CCC, 0x0CCD, prCM, gcMn}, // [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA - {0x0CD5, 0x0CD6, prCM, gcMc}, // [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK - {0x0CDD, 0x0CDE, prAL, gcLo}, // [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA - {0x0CE0, 0x0CE1, prAL, gcLo}, // [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL - {0x0CE2, 0x0CE3, prCM, gcMn}, // [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL - {0x0CE6, 0x0CEF, prNU, gcNd}, // [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE - {0x0CF1, 0x0CF2, prAL, gcLo}, // [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA - {0x0CF3, 0x0CF3, prCM, gcMc}, // KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT - {0x0D00, 0x0D01, prCM, gcMn}, // [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU - {0x0D02, 0x0D03, prCM, gcMc}, // [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA - {0x0D04, 0x0D0C, prAL, gcLo}, // [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L - {0x0D0E, 0x0D10, prAL, gcLo}, // [3] MALAYALAM LETTER E..MALAYALAM LETTER AI - {0x0D12, 0x0D3A, prAL, gcLo}, // [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA - {0x0D3B, 0x0D3C, prCM, gcMn}, // [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA - {0x0D3D, 0x0D3D, prAL, gcLo}, // MALAYALAM SIGN AVAGRAHA - {0x0D3E, 0x0D40, prCM, gcMc}, // [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II - {0x0D41, 0x0D44, prCM, gcMn}, // [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR - {0x0D46, 0x0D48, prCM, gcMc}, // [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI - {0x0D4A, 0x0D4C, prCM, gcMc}, // [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU - {0x0D4D, 0x0D4D, prCM, gcMn}, // MALAYALAM SIGN VIRAMA - {0x0D4E, 0x0D4E, prAL, gcLo}, // MALAYALAM LETTER DOT REPH - {0x0D4F, 0x0D4F, prAL, gcSo}, // MALAYALAM SIGN PARA - {0x0D54, 0x0D56, prAL, gcLo}, // [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL - {0x0D57, 0x0D57, prCM, gcMc}, // MALAYALAM AU LENGTH MARK - {0x0D58, 0x0D5E, prAL, gcNo}, // [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH - {0x0D5F, 0x0D61, prAL, gcLo}, // [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL - {0x0D62, 0x0D63, prCM, gcMn}, // [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL - {0x0D66, 0x0D6F, prNU, gcNd}, // [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE - {0x0D70, 0x0D78, prAL, gcNo}, // [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS - {0x0D79, 0x0D79, prPO, gcSo}, // MALAYALAM DATE MARK - {0x0D7A, 0x0D7F, prAL, gcLo}, // [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K - {0x0D81, 0x0D81, prCM, gcMn}, // SINHALA SIGN CANDRABINDU - {0x0D82, 0x0D83, prCM, gcMc}, // [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA - {0x0D85, 0x0D96, prAL, gcLo}, // [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA - {0x0D9A, 0x0DB1, prAL, gcLo}, // [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA - {0x0DB3, 0x0DBB, prAL, gcLo}, // [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA - {0x0DBD, 0x0DBD, prAL, gcLo}, // SINHALA LETTER DANTAJA LAYANNA - {0x0DC0, 0x0DC6, prAL, gcLo}, // [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA - {0x0DCA, 0x0DCA, prCM, gcMn}, // SINHALA SIGN AL-LAKUNA - {0x0DCF, 0x0DD1, prCM, gcMc}, // [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA - {0x0DD2, 0x0DD4, prCM, gcMn}, // [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA - {0x0DD6, 0x0DD6, prCM, gcMn}, // SINHALA VOWEL SIGN DIGA PAA-PILLA - {0x0DD8, 0x0DDF, prCM, gcMc}, // [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA - {0x0DE6, 0x0DEF, prNU, gcNd}, // [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE - {0x0DF2, 0x0DF3, prCM, gcMc}, // [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA - {0x0DF4, 0x0DF4, prAL, gcPo}, // SINHALA PUNCTUATION KUNDDALIYA - {0x0E01, 0x0E30, prSA, gcLo}, // [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A - {0x0E31, 0x0E31, prSA, gcMn}, // THAI CHARACTER MAI HAN-AKAT - {0x0E32, 0x0E33, prSA, gcLo}, // [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM - {0x0E34, 0x0E3A, prSA, gcMn}, // [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU - {0x0E3F, 0x0E3F, prPR, gcSc}, // THAI CURRENCY SYMBOL BAHT - {0x0E40, 0x0E45, prSA, gcLo}, // [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO - {0x0E46, 0x0E46, prSA, gcLm}, // THAI CHARACTER MAIYAMOK - {0x0E47, 0x0E4E, prSA, gcMn}, // [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN - {0x0E4F, 0x0E4F, prAL, gcPo}, // THAI CHARACTER FONGMAN - {0x0E50, 0x0E59, prNU, gcNd}, // [10] THAI DIGIT ZERO..THAI DIGIT NINE - {0x0E5A, 0x0E5B, prBA, gcPo}, // [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT - {0x0E81, 0x0E82, prSA, gcLo}, // [2] LAO LETTER KO..LAO LETTER KHO SUNG - {0x0E84, 0x0E84, prSA, gcLo}, // LAO LETTER KHO TAM - {0x0E86, 0x0E8A, prSA, gcLo}, // [5] LAO LETTER PALI GHA..LAO LETTER SO TAM - {0x0E8C, 0x0EA3, prSA, gcLo}, // [24] LAO LETTER PALI JHA..LAO LETTER LO LING - {0x0EA5, 0x0EA5, prSA, gcLo}, // LAO LETTER LO LOOT - {0x0EA7, 0x0EB0, prSA, gcLo}, // [10] LAO LETTER WO..LAO VOWEL SIGN A - {0x0EB1, 0x0EB1, prSA, gcMn}, // LAO VOWEL SIGN MAI KAN - {0x0EB2, 0x0EB3, prSA, gcLo}, // [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM - {0x0EB4, 0x0EBC, prSA, gcMn}, // [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO - {0x0EBD, 0x0EBD, prSA, gcLo}, // LAO SEMIVOWEL SIGN NYO - {0x0EC0, 0x0EC4, prSA, gcLo}, // [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI - {0x0EC6, 0x0EC6, prSA, gcLm}, // LAO KO LA - {0x0EC8, 0x0ECE, prSA, gcMn}, // [7] LAO TONE MAI EK..LAO YAMAKKAN - {0x0ED0, 0x0ED9, prNU, gcNd}, // [10] LAO DIGIT ZERO..LAO DIGIT NINE - {0x0EDC, 0x0EDF, prSA, gcLo}, // [4] LAO HO NO..LAO LETTER KHMU NYO - {0x0F00, 0x0F00, prAL, gcLo}, // TIBETAN SYLLABLE OM - {0x0F01, 0x0F03, prBB, gcSo}, // [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA - {0x0F04, 0x0F04, prBB, gcPo}, // TIBETAN MARK INITIAL YIG MGO MDUN MA - {0x0F05, 0x0F05, prAL, gcPo}, // TIBETAN MARK CLOSING YIG MGO SGAB MA - {0x0F06, 0x0F07, prBB, gcPo}, // [2] TIBETAN MARK CARET YIG MGO PHUR SHAD MA..TIBETAN MARK YIG MGO TSHEG SHAD MA - {0x0F08, 0x0F08, prGL, gcPo}, // TIBETAN MARK SBRUL SHAD - {0x0F09, 0x0F0A, prBB, gcPo}, // [2] TIBETAN MARK BSKUR YIG MGO..TIBETAN MARK BKA- SHOG YIG MGO - {0x0F0B, 0x0F0B, prBA, gcPo}, // TIBETAN MARK INTERSYLLABIC TSHEG - {0x0F0C, 0x0F0C, prGL, gcPo}, // TIBETAN MARK DELIMITER TSHEG BSTAR - {0x0F0D, 0x0F11, prEX, gcPo}, // [5] TIBETAN MARK SHAD..TIBETAN MARK RIN CHEN SPUNGS SHAD - {0x0F12, 0x0F12, prGL, gcPo}, // TIBETAN MARK RGYA GRAM SHAD - {0x0F13, 0x0F13, prAL, gcSo}, // TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN - {0x0F14, 0x0F14, prEX, gcPo}, // TIBETAN MARK GTER TSHEG - {0x0F15, 0x0F17, prAL, gcSo}, // [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS - {0x0F18, 0x0F19, prCM, gcMn}, // [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS - {0x0F1A, 0x0F1F, prAL, gcSo}, // [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG - {0x0F20, 0x0F29, prNU, gcNd}, // [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE - {0x0F2A, 0x0F33, prAL, gcNo}, // [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO - {0x0F34, 0x0F34, prBA, gcSo}, // TIBETAN MARK BSDUS RTAGS - {0x0F35, 0x0F35, prCM, gcMn}, // TIBETAN MARK NGAS BZUNG NYI ZLA - {0x0F36, 0x0F36, prAL, gcSo}, // TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN - {0x0F37, 0x0F37, prCM, gcMn}, // TIBETAN MARK NGAS BZUNG SGOR RTAGS - {0x0F38, 0x0F38, prAL, gcSo}, // TIBETAN MARK CHE MGO - {0x0F39, 0x0F39, prCM, gcMn}, // TIBETAN MARK TSA -PHRU - {0x0F3A, 0x0F3A, prOP, gcPs}, // TIBETAN MARK GUG RTAGS GYON - {0x0F3B, 0x0F3B, prCL, gcPe}, // TIBETAN MARK GUG RTAGS GYAS - {0x0F3C, 0x0F3C, prOP, gcPs}, // TIBETAN MARK ANG KHANG GYON - {0x0F3D, 0x0F3D, prCL, gcPe}, // TIBETAN MARK ANG KHANG GYAS - {0x0F3E, 0x0F3F, prCM, gcMc}, // [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES - {0x0F40, 0x0F47, prAL, gcLo}, // [8] TIBETAN LETTER KA..TIBETAN LETTER JA - {0x0F49, 0x0F6C, prAL, gcLo}, // [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA - {0x0F71, 0x0F7E, prCM, gcMn}, // [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO - {0x0F7F, 0x0F7F, prBA, gcMc}, // TIBETAN SIGN RNAM BCAD - {0x0F80, 0x0F84, prCM, gcMn}, // [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA - {0x0F85, 0x0F85, prBA, gcPo}, // TIBETAN MARK PALUTA - {0x0F86, 0x0F87, prCM, gcMn}, // [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS - {0x0F88, 0x0F8C, prAL, gcLo}, // [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN - {0x0F8D, 0x0F97, prCM, gcMn}, // [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA - {0x0F99, 0x0FBC, prCM, gcMn}, // [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA - {0x0FBE, 0x0FBF, prBA, gcSo}, // [2] TIBETAN KU RU KHA..TIBETAN KU RU KHA BZHI MIG CAN - {0x0FC0, 0x0FC5, prAL, gcSo}, // [6] TIBETAN CANTILLATION SIGN HEAVY BEAT..TIBETAN SYMBOL RDO RJE - {0x0FC6, 0x0FC6, prCM, gcMn}, // TIBETAN SYMBOL PADMA GDAN - {0x0FC7, 0x0FCC, prAL, gcSo}, // [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL - {0x0FCE, 0x0FCF, prAL, gcSo}, // [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM - {0x0FD0, 0x0FD1, prBB, gcPo}, // [2] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN - {0x0FD2, 0x0FD2, prBA, gcPo}, // TIBETAN MARK NYIS TSHEG - {0x0FD3, 0x0FD3, prBB, gcPo}, // TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA - {0x0FD4, 0x0FD4, prAL, gcPo}, // TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA - {0x0FD5, 0x0FD8, prAL, gcSo}, // [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS - {0x0FD9, 0x0FDA, prGL, gcPo}, // [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS - {0x1000, 0x102A, prSA, gcLo}, // [43] MYANMAR LETTER KA..MYANMAR LETTER AU - {0x102B, 0x102C, prSA, gcMc}, // [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA - {0x102D, 0x1030, prSA, gcMn}, // [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU - {0x1031, 0x1031, prSA, gcMc}, // MYANMAR VOWEL SIGN E - {0x1032, 0x1037, prSA, gcMn}, // [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW - {0x1038, 0x1038, prSA, gcMc}, // MYANMAR SIGN VISARGA - {0x1039, 0x103A, prSA, gcMn}, // [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT - {0x103B, 0x103C, prSA, gcMc}, // [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA - {0x103D, 0x103E, prSA, gcMn}, // [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA - {0x103F, 0x103F, prSA, gcLo}, // MYANMAR LETTER GREAT SA - {0x1040, 0x1049, prNU, gcNd}, // [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE - {0x104A, 0x104B, prBA, gcPo}, // [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION - {0x104C, 0x104F, prAL, gcPo}, // [4] MYANMAR SYMBOL LOCATIVE..MYANMAR SYMBOL GENITIVE - {0x1050, 0x1055, prSA, gcLo}, // [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL - {0x1056, 0x1057, prSA, gcMc}, // [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR - {0x1058, 0x1059, prSA, gcMn}, // [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL - {0x105A, 0x105D, prSA, gcLo}, // [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE - {0x105E, 0x1060, prSA, gcMn}, // [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA - {0x1061, 0x1061, prSA, gcLo}, // MYANMAR LETTER SGAW KAREN SHA - {0x1062, 0x1064, prSA, gcMc}, // [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO - {0x1065, 0x1066, prSA, gcLo}, // [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA - {0x1067, 0x106D, prSA, gcMc}, // [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5 - {0x106E, 0x1070, prSA, gcLo}, // [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA - {0x1071, 0x1074, prSA, gcMn}, // [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE - {0x1075, 0x1081, prSA, gcLo}, // [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA - {0x1082, 0x1082, prSA, gcMn}, // MYANMAR CONSONANT SIGN SHAN MEDIAL WA - {0x1083, 0x1084, prSA, gcMc}, // [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E - {0x1085, 0x1086, prSA, gcMn}, // [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y - {0x1087, 0x108C, prSA, gcMc}, // [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 - {0x108D, 0x108D, prSA, gcMn}, // MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE - {0x108E, 0x108E, prSA, gcLo}, // MYANMAR LETTER RUMAI PALAUNG FA - {0x108F, 0x108F, prSA, gcMc}, // MYANMAR SIGN RUMAI PALAUNG TONE-5 - {0x1090, 0x1099, prNU, gcNd}, // [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE - {0x109A, 0x109C, prSA, gcMc}, // [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A - {0x109D, 0x109D, prSA, gcMn}, // MYANMAR VOWEL SIGN AITON AI - {0x109E, 0x109F, prSA, gcSo}, // [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION - {0x10A0, 0x10C5, prAL, gcLu}, // [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE - {0x10C7, 0x10C7, prAL, gcLu}, // GEORGIAN CAPITAL LETTER YN - {0x10CD, 0x10CD, prAL, gcLu}, // GEORGIAN CAPITAL LETTER AEN - {0x10D0, 0x10FA, prAL, gcLl}, // [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN - {0x10FB, 0x10FB, prAL, gcPo}, // GEORGIAN PARAGRAPH SEPARATOR - {0x10FC, 0x10FC, prAL, gcLm}, // MODIFIER LETTER GEORGIAN NAR - {0x10FD, 0x10FF, prAL, gcLl}, // [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN - {0x1100, 0x115F, prJL, gcLo}, // [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER - {0x1160, 0x11A7, prJV, gcLo}, // [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE - {0x11A8, 0x11FF, prJT, gcLo}, // [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN - {0x1200, 0x1248, prAL, gcLo}, // [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA - {0x124A, 0x124D, prAL, gcLo}, // [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE - {0x1250, 0x1256, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO - {0x1258, 0x1258, prAL, gcLo}, // ETHIOPIC SYLLABLE QHWA - {0x125A, 0x125D, prAL, gcLo}, // [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE - {0x1260, 0x1288, prAL, gcLo}, // [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA - {0x128A, 0x128D, prAL, gcLo}, // [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE - {0x1290, 0x12B0, prAL, gcLo}, // [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA - {0x12B2, 0x12B5, prAL, gcLo}, // [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE - {0x12B8, 0x12BE, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO - {0x12C0, 0x12C0, prAL, gcLo}, // ETHIOPIC SYLLABLE KXWA - {0x12C2, 0x12C5, prAL, gcLo}, // [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE - {0x12C8, 0x12D6, prAL, gcLo}, // [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O - {0x12D8, 0x1310, prAL, gcLo}, // [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA - {0x1312, 0x1315, prAL, gcLo}, // [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE - {0x1318, 0x135A, prAL, gcLo}, // [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA - {0x135D, 0x135F, prCM, gcMn}, // [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK - {0x1360, 0x1360, prAL, gcPo}, // ETHIOPIC SECTION MARK - {0x1361, 0x1361, prBA, gcPo}, // ETHIOPIC WORDSPACE - {0x1362, 0x1368, prAL, gcPo}, // [7] ETHIOPIC FULL STOP..ETHIOPIC PARAGRAPH SEPARATOR - {0x1369, 0x137C, prAL, gcNo}, // [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND - {0x1380, 0x138F, prAL, gcLo}, // [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE - {0x1390, 0x1399, prAL, gcSo}, // [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT - {0x13A0, 0x13F5, prAL, gcLu}, // [86] CHEROKEE LETTER A..CHEROKEE LETTER MV - {0x13F8, 0x13FD, prAL, gcLl}, // [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV - {0x1400, 0x1400, prBA, gcPd}, // CANADIAN SYLLABICS HYPHEN - {0x1401, 0x166C, prAL, gcLo}, // [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA - {0x166D, 0x166D, prAL, gcSo}, // CANADIAN SYLLABICS CHI SIGN - {0x166E, 0x166E, prAL, gcPo}, // CANADIAN SYLLABICS FULL STOP - {0x166F, 0x167F, prAL, gcLo}, // [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W - {0x1680, 0x1680, prBA, gcZs}, // OGHAM SPACE MARK - {0x1681, 0x169A, prAL, gcLo}, // [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH - {0x169B, 0x169B, prOP, gcPs}, // OGHAM FEATHER MARK - {0x169C, 0x169C, prCL, gcPe}, // OGHAM REVERSED FEATHER MARK - {0x16A0, 0x16EA, prAL, gcLo}, // [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X - {0x16EB, 0x16ED, prBA, gcPo}, // [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION - {0x16EE, 0x16F0, prAL, gcNl}, // [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL - {0x16F1, 0x16F8, prAL, gcLo}, // [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC - {0x1700, 0x1711, prAL, gcLo}, // [18] TAGALOG LETTER A..TAGALOG LETTER HA - {0x1712, 0x1714, prCM, gcMn}, // [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA - {0x1715, 0x1715, prCM, gcMc}, // TAGALOG SIGN PAMUDPOD - {0x171F, 0x171F, prAL, gcLo}, // TAGALOG LETTER ARCHAIC RA - {0x1720, 0x1731, prAL, gcLo}, // [18] HANUNOO LETTER A..HANUNOO LETTER HA - {0x1732, 0x1733, prCM, gcMn}, // [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U - {0x1734, 0x1734, prCM, gcMc}, // HANUNOO SIGN PAMUDPOD - {0x1735, 0x1736, prBA, gcPo}, // [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION - {0x1740, 0x1751, prAL, gcLo}, // [18] BUHID LETTER A..BUHID LETTER HA - {0x1752, 0x1753, prCM, gcMn}, // [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U - {0x1760, 0x176C, prAL, gcLo}, // [13] TAGBANWA LETTER A..TAGBANWA LETTER YA - {0x176E, 0x1770, prAL, gcLo}, // [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA - {0x1772, 0x1773, prCM, gcMn}, // [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U - {0x1780, 0x17B3, prSA, gcLo}, // [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU - {0x17B4, 0x17B5, prSA, gcMn}, // [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA - {0x17B6, 0x17B6, prSA, gcMc}, // KHMER VOWEL SIGN AA - {0x17B7, 0x17BD, prSA, gcMn}, // [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA - {0x17BE, 0x17C5, prSA, gcMc}, // [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU - {0x17C6, 0x17C6, prSA, gcMn}, // KHMER SIGN NIKAHIT - {0x17C7, 0x17C8, prSA, gcMc}, // [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU - {0x17C9, 0x17D3, prSA, gcMn}, // [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT - {0x17D4, 0x17D5, prBA, gcPo}, // [2] KHMER SIGN KHAN..KHMER SIGN BARIYOOSAN - {0x17D6, 0x17D6, prNS, gcPo}, // KHMER SIGN CAMNUC PII KUUH - {0x17D7, 0x17D7, prSA, gcLm}, // KHMER SIGN LEK TOO - {0x17D8, 0x17D8, prBA, gcPo}, // KHMER SIGN BEYYAL - {0x17D9, 0x17D9, prAL, gcPo}, // KHMER SIGN PHNAEK MUAN - {0x17DA, 0x17DA, prBA, gcPo}, // KHMER SIGN KOOMUUT - {0x17DB, 0x17DB, prPR, gcSc}, // KHMER CURRENCY SYMBOL RIEL - {0x17DC, 0x17DC, prSA, gcLo}, // KHMER SIGN AVAKRAHASANYA - {0x17DD, 0x17DD, prSA, gcMn}, // KHMER SIGN ATTHACAN - {0x17E0, 0x17E9, prNU, gcNd}, // [10] KHMER DIGIT ZERO..KHMER DIGIT NINE - {0x17F0, 0x17F9, prAL, gcNo}, // [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON - {0x1800, 0x1801, prAL, gcPo}, // [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS - {0x1802, 0x1803, prEX, gcPo}, // [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP - {0x1804, 0x1805, prBA, gcPo}, // [2] MONGOLIAN COLON..MONGOLIAN FOUR DOTS - {0x1806, 0x1806, prBB, gcPd}, // MONGOLIAN TODO SOFT HYPHEN - {0x1807, 0x1807, prAL, gcPo}, // MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER - {0x1808, 0x1809, prEX, gcPo}, // [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP - {0x180A, 0x180A, prAL, gcPo}, // MONGOLIAN NIRUGU - {0x180B, 0x180D, prCM, gcMn}, // [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE - {0x180E, 0x180E, prGL, gcCf}, // MONGOLIAN VOWEL SEPARATOR - {0x180F, 0x180F, prCM, gcMn}, // MONGOLIAN FREE VARIATION SELECTOR FOUR - {0x1810, 0x1819, prNU, gcNd}, // [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE - {0x1820, 0x1842, prAL, gcLo}, // [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI - {0x1843, 0x1843, prAL, gcLm}, // MONGOLIAN LETTER TODO LONG VOWEL SIGN - {0x1844, 0x1878, prAL, gcLo}, // [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS - {0x1880, 0x1884, prAL, gcLo}, // [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA - {0x1885, 0x1886, prCM, gcMn}, // [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA - {0x1887, 0x18A8, prAL, gcLo}, // [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA - {0x18A9, 0x18A9, prCM, gcMn}, // MONGOLIAN LETTER ALI GALI DAGALGA - {0x18AA, 0x18AA, prAL, gcLo}, // MONGOLIAN LETTER MANCHU ALI GALI LHA - {0x18B0, 0x18F5, prAL, gcLo}, // [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S - {0x1900, 0x191E, prAL, gcLo}, // [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA - {0x1920, 0x1922, prCM, gcMn}, // [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U - {0x1923, 0x1926, prCM, gcMc}, // [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU - {0x1927, 0x1928, prCM, gcMn}, // [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O - {0x1929, 0x192B, prCM, gcMc}, // [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA - {0x1930, 0x1931, prCM, gcMc}, // [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA - {0x1932, 0x1932, prCM, gcMn}, // LIMBU SMALL LETTER ANUSVARA - {0x1933, 0x1938, prCM, gcMc}, // [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA - {0x1939, 0x193B, prCM, gcMn}, // [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I - {0x1940, 0x1940, prAL, gcSo}, // LIMBU SIGN LOO - {0x1944, 0x1945, prEX, gcPo}, // [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK - {0x1946, 0x194F, prNU, gcNd}, // [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE - {0x1950, 0x196D, prSA, gcLo}, // [30] TAI LE LETTER KA..TAI LE LETTER AI - {0x1970, 0x1974, prSA, gcLo}, // [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 - {0x1980, 0x19AB, prSA, gcLo}, // [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA - {0x19B0, 0x19C9, prSA, gcLo}, // [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2 - {0x19D0, 0x19D9, prNU, gcNd}, // [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE - {0x19DA, 0x19DA, prSA, gcNo}, // NEW TAI LUE THAM DIGIT ONE - {0x19DE, 0x19DF, prSA, gcSo}, // [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV - {0x19E0, 0x19FF, prAL, gcSo}, // [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC - {0x1A00, 0x1A16, prAL, gcLo}, // [23] BUGINESE LETTER KA..BUGINESE LETTER HA - {0x1A17, 0x1A18, prCM, gcMn}, // [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U - {0x1A19, 0x1A1A, prCM, gcMc}, // [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O - {0x1A1B, 0x1A1B, prCM, gcMn}, // BUGINESE VOWEL SIGN AE - {0x1A1E, 0x1A1F, prAL, gcPo}, // [2] BUGINESE PALLAWA..BUGINESE END OF SECTION - {0x1A20, 0x1A54, prSA, gcLo}, // [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA - {0x1A55, 0x1A55, prSA, gcMc}, // TAI THAM CONSONANT SIGN MEDIAL RA - {0x1A56, 0x1A56, prSA, gcMn}, // TAI THAM CONSONANT SIGN MEDIAL LA - {0x1A57, 0x1A57, prSA, gcMc}, // TAI THAM CONSONANT SIGN LA TANG LAI - {0x1A58, 0x1A5E, prSA, gcMn}, // [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA - {0x1A60, 0x1A60, prSA, gcMn}, // TAI THAM SIGN SAKOT - {0x1A61, 0x1A61, prSA, gcMc}, // TAI THAM VOWEL SIGN A - {0x1A62, 0x1A62, prSA, gcMn}, // TAI THAM VOWEL SIGN MAI SAT - {0x1A63, 0x1A64, prSA, gcMc}, // [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA - {0x1A65, 0x1A6C, prSA, gcMn}, // [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW - {0x1A6D, 0x1A72, prSA, gcMc}, // [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI - {0x1A73, 0x1A7C, prSA, gcMn}, // [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN - {0x1A7F, 0x1A7F, prCM, gcMn}, // TAI THAM COMBINING CRYPTOGRAMMIC DOT - {0x1A80, 0x1A89, prNU, gcNd}, // [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE - {0x1A90, 0x1A99, prNU, gcNd}, // [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE - {0x1AA0, 0x1AA6, prSA, gcPo}, // [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA - {0x1AA7, 0x1AA7, prSA, gcLm}, // TAI THAM SIGN MAI YAMOK - {0x1AA8, 0x1AAD, prSA, gcPo}, // [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG - {0x1AB0, 0x1ABD, prCM, gcMn}, // [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW - {0x1ABE, 0x1ABE, prCM, gcMe}, // COMBINING PARENTHESES OVERLAY - {0x1ABF, 0x1ACE, prCM, gcMn}, // [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T - {0x1B00, 0x1B03, prCM, gcMn}, // [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG - {0x1B04, 0x1B04, prCM, gcMc}, // BALINESE SIGN BISAH - {0x1B05, 0x1B33, prAL, gcLo}, // [47] BALINESE LETTER AKARA..BALINESE LETTER HA - {0x1B34, 0x1B34, prCM, gcMn}, // BALINESE SIGN REREKAN - {0x1B35, 0x1B35, prCM, gcMc}, // BALINESE VOWEL SIGN TEDUNG - {0x1B36, 0x1B3A, prCM, gcMn}, // [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA - {0x1B3B, 0x1B3B, prCM, gcMc}, // BALINESE VOWEL SIGN RA REPA TEDUNG - {0x1B3C, 0x1B3C, prCM, gcMn}, // BALINESE VOWEL SIGN LA LENGA - {0x1B3D, 0x1B41, prCM, gcMc}, // [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG - {0x1B42, 0x1B42, prCM, gcMn}, // BALINESE VOWEL SIGN PEPET - {0x1B43, 0x1B44, prCM, gcMc}, // [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG - {0x1B45, 0x1B4C, prAL, gcLo}, // [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA - {0x1B50, 0x1B59, prNU, gcNd}, // [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE - {0x1B5A, 0x1B5B, prBA, gcPo}, // [2] BALINESE PANTI..BALINESE PAMADA - {0x1B5C, 0x1B5C, prAL, gcPo}, // BALINESE WINDU - {0x1B5D, 0x1B60, prBA, gcPo}, // [4] BALINESE CARIK PAMUNGKAH..BALINESE PAMENENG - {0x1B61, 0x1B6A, prAL, gcSo}, // [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE - {0x1B6B, 0x1B73, prCM, gcMn}, // [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG - {0x1B74, 0x1B7C, prAL, gcSo}, // [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING - {0x1B7D, 0x1B7E, prBA, gcPo}, // [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG - {0x1B80, 0x1B81, prCM, gcMn}, // [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR - {0x1B82, 0x1B82, prCM, gcMc}, // SUNDANESE SIGN PANGWISAD - {0x1B83, 0x1BA0, prAL, gcLo}, // [30] SUNDANESE LETTER A..SUNDANESE LETTER HA - {0x1BA1, 0x1BA1, prCM, gcMc}, // SUNDANESE CONSONANT SIGN PAMINGKAL - {0x1BA2, 0x1BA5, prCM, gcMn}, // [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU - {0x1BA6, 0x1BA7, prCM, gcMc}, // [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG - {0x1BA8, 0x1BA9, prCM, gcMn}, // [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG - {0x1BAA, 0x1BAA, prCM, gcMc}, // SUNDANESE SIGN PAMAAEH - {0x1BAB, 0x1BAD, prCM, gcMn}, // [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA - {0x1BAE, 0x1BAF, prAL, gcLo}, // [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA - {0x1BB0, 0x1BB9, prNU, gcNd}, // [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE - {0x1BBA, 0x1BBF, prAL, gcLo}, // [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M - {0x1BC0, 0x1BE5, prAL, gcLo}, // [38] BATAK LETTER A..BATAK LETTER U - {0x1BE6, 0x1BE6, prCM, gcMn}, // BATAK SIGN TOMPI - {0x1BE7, 0x1BE7, prCM, gcMc}, // BATAK VOWEL SIGN E - {0x1BE8, 0x1BE9, prCM, gcMn}, // [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE - {0x1BEA, 0x1BEC, prCM, gcMc}, // [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O - {0x1BED, 0x1BED, prCM, gcMn}, // BATAK VOWEL SIGN KARO O - {0x1BEE, 0x1BEE, prCM, gcMc}, // BATAK VOWEL SIGN U - {0x1BEF, 0x1BF1, prCM, gcMn}, // [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H - {0x1BF2, 0x1BF3, prCM, gcMc}, // [2] BATAK PANGOLAT..BATAK PANONGONAN - {0x1BFC, 0x1BFF, prAL, gcPo}, // [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT - {0x1C00, 0x1C23, prAL, gcLo}, // [36] LEPCHA LETTER KA..LEPCHA LETTER A - {0x1C24, 0x1C2B, prCM, gcMc}, // [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU - {0x1C2C, 0x1C33, prCM, gcMn}, // [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T - {0x1C34, 0x1C35, prCM, gcMc}, // [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG - {0x1C36, 0x1C37, prCM, gcMn}, // [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA - {0x1C3B, 0x1C3F, prBA, gcPo}, // [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK - {0x1C40, 0x1C49, prNU, gcNd}, // [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE - {0x1C4D, 0x1C4F, prAL, gcLo}, // [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA - {0x1C50, 0x1C59, prNU, gcNd}, // [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE - {0x1C5A, 0x1C77, prAL, gcLo}, // [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH - {0x1C78, 0x1C7D, prAL, gcLm}, // [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD - {0x1C7E, 0x1C7F, prBA, gcPo}, // [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD - {0x1C80, 0x1C88, prAL, gcLl}, // [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK - {0x1C90, 0x1CBA, prAL, gcLu}, // [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN - {0x1CBD, 0x1CBF, prAL, gcLu}, // [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN - {0x1CC0, 0x1CC7, prAL, gcPo}, // [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA - {0x1CD0, 0x1CD2, prCM, gcMn}, // [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA - {0x1CD3, 0x1CD3, prAL, gcPo}, // VEDIC SIGN NIHSHVASA - {0x1CD4, 0x1CE0, prCM, gcMn}, // [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA - {0x1CE1, 0x1CE1, prCM, gcMc}, // VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA - {0x1CE2, 0x1CE8, prCM, gcMn}, // [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL - {0x1CE9, 0x1CEC, prAL, gcLo}, // [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL - {0x1CED, 0x1CED, prCM, gcMn}, // VEDIC SIGN TIRYAK - {0x1CEE, 0x1CF3, prAL, gcLo}, // [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA - {0x1CF4, 0x1CF4, prCM, gcMn}, // VEDIC TONE CANDRA ABOVE - {0x1CF5, 0x1CF6, prAL, gcLo}, // [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA - {0x1CF7, 0x1CF7, prCM, gcMc}, // VEDIC SIGN ATIKRAMA - {0x1CF8, 0x1CF9, prCM, gcMn}, // [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE - {0x1CFA, 0x1CFA, prAL, gcLo}, // VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA - {0x1D00, 0x1D2B, prAL, gcLl}, // [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL - {0x1D2C, 0x1D6A, prAL, gcLm}, // [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI - {0x1D6B, 0x1D77, prAL, gcLl}, // [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G - {0x1D78, 0x1D78, prAL, gcLm}, // MODIFIER LETTER CYRILLIC EN - {0x1D79, 0x1D7F, prAL, gcLl}, // [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE - {0x1D80, 0x1D9A, prAL, gcLl}, // [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK - {0x1D9B, 0x1DBF, prAL, gcLm}, // [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA - {0x1DC0, 0x1DCC, prCM, gcMn}, // [13] COMBINING DOTTED GRAVE ACCENT..COMBINING MACRON-BREVE - {0x1DCD, 0x1DCD, prGL, gcMn}, // COMBINING DOUBLE CIRCUMFLEX ABOVE - {0x1DCE, 0x1DFB, prCM, gcMn}, // [46] COMBINING OGONEK ABOVE..COMBINING DELETION MARK - {0x1DFC, 0x1DFC, prGL, gcMn}, // COMBINING DOUBLE INVERTED BREVE BELOW - {0x1DFD, 0x1DFF, prCM, gcMn}, // [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW - {0x1E00, 0x1EFF, prAL, gcLC}, // [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP - {0x1F00, 0x1F15, prAL, gcLC}, // [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA - {0x1F18, 0x1F1D, prAL, gcLu}, // [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA - {0x1F20, 0x1F45, prAL, gcLC}, // [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA - {0x1F48, 0x1F4D, prAL, gcLu}, // [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA - {0x1F50, 0x1F57, prAL, gcLl}, // [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI - {0x1F59, 0x1F59, prAL, gcLu}, // GREEK CAPITAL LETTER UPSILON WITH DASIA - {0x1F5B, 0x1F5B, prAL, gcLu}, // GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA - {0x1F5D, 0x1F5D, prAL, gcLu}, // GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA - {0x1F5F, 0x1F7D, prAL, gcLC}, // [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA - {0x1F80, 0x1FB4, prAL, gcLC}, // [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI - {0x1FB6, 0x1FBC, prAL, gcLC}, // [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI - {0x1FBD, 0x1FBD, prAL, gcSk}, // GREEK KORONIS - {0x1FBE, 0x1FBE, prAL, gcLl}, // GREEK PROSGEGRAMMENI - {0x1FBF, 0x1FC1, prAL, gcSk}, // [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI - {0x1FC2, 0x1FC4, prAL, gcLl}, // [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI - {0x1FC6, 0x1FCC, prAL, gcLC}, // [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI - {0x1FCD, 0x1FCF, prAL, gcSk}, // [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI - {0x1FD0, 0x1FD3, prAL, gcLl}, // [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA - {0x1FD6, 0x1FDB, prAL, gcLC}, // [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA - {0x1FDD, 0x1FDF, prAL, gcSk}, // [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI - {0x1FE0, 0x1FEC, prAL, gcLC}, // [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA - {0x1FED, 0x1FEF, prAL, gcSk}, // [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA - {0x1FF2, 0x1FF4, prAL, gcLl}, // [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI - {0x1FF6, 0x1FFC, prAL, gcLC}, // [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI - {0x1FFD, 0x1FFD, prBB, gcSk}, // GREEK OXIA - {0x1FFE, 0x1FFE, prAL, gcSk}, // GREEK DASIA - {0x2000, 0x2006, prBA, gcZs}, // [7] EN QUAD..SIX-PER-EM SPACE - {0x2007, 0x2007, prGL, gcZs}, // FIGURE SPACE - {0x2008, 0x200A, prBA, gcZs}, // [3] PUNCTUATION SPACE..HAIR SPACE - {0x200B, 0x200B, prZW, gcCf}, // ZERO WIDTH SPACE - {0x200C, 0x200C, prCM, gcCf}, // ZERO WIDTH NON-JOINER - {0x200D, 0x200D, prZWJ, gcCf}, // ZERO WIDTH JOINER - {0x200E, 0x200F, prCM, gcCf}, // [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK - {0x2010, 0x2010, prBA, gcPd}, // HYPHEN - {0x2011, 0x2011, prGL, gcPd}, // NON-BREAKING HYPHEN - {0x2012, 0x2013, prBA, gcPd}, // [2] FIGURE DASH..EN DASH - {0x2014, 0x2014, prB2, gcPd}, // EM DASH - {0x2015, 0x2015, prAI, gcPd}, // HORIZONTAL BAR - {0x2016, 0x2016, prAI, gcPo}, // DOUBLE VERTICAL LINE - {0x2017, 0x2017, prAL, gcPo}, // DOUBLE LOW LINE - {0x2018, 0x2018, prQU, gcPi}, // LEFT SINGLE QUOTATION MARK - {0x2019, 0x2019, prQU, gcPf}, // RIGHT SINGLE QUOTATION MARK - {0x201A, 0x201A, prOP, gcPs}, // SINGLE LOW-9 QUOTATION MARK - {0x201B, 0x201C, prQU, gcPi}, // [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK - {0x201D, 0x201D, prQU, gcPf}, // RIGHT DOUBLE QUOTATION MARK - {0x201E, 0x201E, prOP, gcPs}, // DOUBLE LOW-9 QUOTATION MARK - {0x201F, 0x201F, prQU, gcPi}, // DOUBLE HIGH-REVERSED-9 QUOTATION MARK - {0x2020, 0x2021, prAI, gcPo}, // [2] DAGGER..DOUBLE DAGGER - {0x2022, 0x2023, prAL, gcPo}, // [2] BULLET..TRIANGULAR BULLET - {0x2024, 0x2026, prIN, gcPo}, // [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS - {0x2027, 0x2027, prBA, gcPo}, // HYPHENATION POINT - {0x2028, 0x2028, prBK, gcZl}, // LINE SEPARATOR - {0x2029, 0x2029, prBK, gcZp}, // PARAGRAPH SEPARATOR - {0x202A, 0x202E, prCM, gcCf}, // [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE - {0x202F, 0x202F, prGL, gcZs}, // NARROW NO-BREAK SPACE - {0x2030, 0x2037, prPO, gcPo}, // [8] PER MILLE SIGN..REVERSED TRIPLE PRIME - {0x2038, 0x2038, prAL, gcPo}, // CARET - {0x2039, 0x2039, prQU, gcPi}, // SINGLE LEFT-POINTING ANGLE QUOTATION MARK - {0x203A, 0x203A, prQU, gcPf}, // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - {0x203B, 0x203B, prAI, gcPo}, // REFERENCE MARK - {0x203C, 0x203D, prNS, gcPo}, // [2] DOUBLE EXCLAMATION MARK..INTERROBANG - {0x203E, 0x203E, prAL, gcPo}, // OVERLINE - {0x203F, 0x2040, prAL, gcPc}, // [2] UNDERTIE..CHARACTER TIE - {0x2041, 0x2043, prAL, gcPo}, // [3] CARET INSERTION POINT..HYPHEN BULLET - {0x2044, 0x2044, prIS, gcSm}, // FRACTION SLASH - {0x2045, 0x2045, prOP, gcPs}, // LEFT SQUARE BRACKET WITH QUILL - {0x2046, 0x2046, prCL, gcPe}, // RIGHT SQUARE BRACKET WITH QUILL - {0x2047, 0x2049, prNS, gcPo}, // [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK - {0x204A, 0x2051, prAL, gcPo}, // [8] TIRONIAN SIGN ET..TWO ASTERISKS ALIGNED VERTICALLY - {0x2052, 0x2052, prAL, gcSm}, // COMMERCIAL MINUS SIGN - {0x2053, 0x2053, prAL, gcPo}, // SWUNG DASH - {0x2054, 0x2054, prAL, gcPc}, // INVERTED UNDERTIE - {0x2055, 0x2055, prAL, gcPo}, // FLOWER PUNCTUATION MARK - {0x2056, 0x2056, prBA, gcPo}, // THREE DOT PUNCTUATION - {0x2057, 0x2057, prPO, gcPo}, // QUADRUPLE PRIME - {0x2058, 0x205B, prBA, gcPo}, // [4] FOUR DOT PUNCTUATION..FOUR DOT MARK - {0x205C, 0x205C, prAL, gcPo}, // DOTTED CROSS - {0x205D, 0x205E, prBA, gcPo}, // [2] TRICOLON..VERTICAL FOUR DOTS - {0x205F, 0x205F, prBA, gcZs}, // MEDIUM MATHEMATICAL SPACE - {0x2060, 0x2060, prWJ, gcCf}, // WORD JOINER - {0x2061, 0x2064, prAL, gcCf}, // [4] FUNCTION APPLICATION..INVISIBLE PLUS - {0x2066, 0x206F, prCM, gcCf}, // [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES - {0x2070, 0x2070, prAL, gcNo}, // SUPERSCRIPT ZERO - {0x2071, 0x2071, prAL, gcLm}, // SUPERSCRIPT LATIN SMALL LETTER I - {0x2074, 0x2074, prAI, gcNo}, // SUPERSCRIPT FOUR - {0x2075, 0x2079, prAL, gcNo}, // [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE - {0x207A, 0x207C, prAL, gcSm}, // [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN - {0x207D, 0x207D, prOP, gcPs}, // SUPERSCRIPT LEFT PARENTHESIS - {0x207E, 0x207E, prCL, gcPe}, // SUPERSCRIPT RIGHT PARENTHESIS - {0x207F, 0x207F, prAI, gcLm}, // SUPERSCRIPT LATIN SMALL LETTER N - {0x2080, 0x2080, prAL, gcNo}, // SUBSCRIPT ZERO - {0x2081, 0x2084, prAI, gcNo}, // [4] SUBSCRIPT ONE..SUBSCRIPT FOUR - {0x2085, 0x2089, prAL, gcNo}, // [5] SUBSCRIPT FIVE..SUBSCRIPT NINE - {0x208A, 0x208C, prAL, gcSm}, // [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN - {0x208D, 0x208D, prOP, gcPs}, // SUBSCRIPT LEFT PARENTHESIS - {0x208E, 0x208E, prCL, gcPe}, // SUBSCRIPT RIGHT PARENTHESIS - {0x2090, 0x209C, prAL, gcLm}, // [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T - {0x20A0, 0x20A6, prPR, gcSc}, // [7] EURO-CURRENCY SIGN..NAIRA SIGN - {0x20A7, 0x20A7, prPO, gcSc}, // PESETA SIGN - {0x20A8, 0x20B5, prPR, gcSc}, // [14] RUPEE SIGN..CEDI SIGN - {0x20B6, 0x20B6, prPO, gcSc}, // LIVRE TOURNOIS SIGN - {0x20B7, 0x20BA, prPR, gcSc}, // [4] SPESMILO SIGN..TURKISH LIRA SIGN - {0x20BB, 0x20BB, prPO, gcSc}, // NORDIC MARK SIGN - {0x20BC, 0x20BD, prPR, gcSc}, // [2] MANAT SIGN..RUBLE SIGN - {0x20BE, 0x20BE, prPO, gcSc}, // LARI SIGN - {0x20BF, 0x20BF, prPR, gcSc}, // BITCOIN SIGN - {0x20C0, 0x20C0, prPO, gcSc}, // SOM SIGN - {0x20C1, 0x20CF, prPR, gcCn}, // [15] .. - {0x20D0, 0x20DC, prCM, gcMn}, // [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE - {0x20DD, 0x20E0, prCM, gcMe}, // [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH - {0x20E1, 0x20E1, prCM, gcMn}, // COMBINING LEFT RIGHT ARROW ABOVE - {0x20E2, 0x20E4, prCM, gcMe}, // [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE - {0x20E5, 0x20F0, prCM, gcMn}, // [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE - {0x2100, 0x2101, prAL, gcSo}, // [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT - {0x2102, 0x2102, prAL, gcLu}, // DOUBLE-STRUCK CAPITAL C - {0x2103, 0x2103, prPO, gcSo}, // DEGREE CELSIUS - {0x2104, 0x2104, prAL, gcSo}, // CENTRE LINE SYMBOL - {0x2105, 0x2105, prAI, gcSo}, // CARE OF - {0x2106, 0x2106, prAL, gcSo}, // CADA UNA - {0x2107, 0x2107, prAL, gcLu}, // EULER CONSTANT - {0x2108, 0x2108, prAL, gcSo}, // SCRUPLE - {0x2109, 0x2109, prPO, gcSo}, // DEGREE FAHRENHEIT - {0x210A, 0x2112, prAL, gcLC}, // [9] SCRIPT SMALL G..SCRIPT CAPITAL L - {0x2113, 0x2113, prAI, gcLl}, // SCRIPT SMALL L - {0x2114, 0x2114, prAL, gcSo}, // L B BAR SYMBOL - {0x2115, 0x2115, prAL, gcLu}, // DOUBLE-STRUCK CAPITAL N - {0x2116, 0x2116, prPR, gcSo}, // NUMERO SIGN - {0x2117, 0x2117, prAL, gcSo}, // SOUND RECORDING COPYRIGHT - {0x2118, 0x2118, prAL, gcSm}, // SCRIPT CAPITAL P - {0x2119, 0x211D, prAL, gcLu}, // [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R - {0x211E, 0x2120, prAL, gcSo}, // [3] PRESCRIPTION TAKE..SERVICE MARK - {0x2121, 0x2122, prAI, gcSo}, // [2] TELEPHONE SIGN..TRADE MARK SIGN - {0x2123, 0x2123, prAL, gcSo}, // VERSICLE - {0x2124, 0x2124, prAL, gcLu}, // DOUBLE-STRUCK CAPITAL Z - {0x2125, 0x2125, prAL, gcSo}, // OUNCE SIGN - {0x2126, 0x2126, prAL, gcLu}, // OHM SIGN - {0x2127, 0x2127, prAL, gcSo}, // INVERTED OHM SIGN - {0x2128, 0x2128, prAL, gcLu}, // BLACK-LETTER CAPITAL Z - {0x2129, 0x2129, prAL, gcSo}, // TURNED GREEK SMALL LETTER IOTA - {0x212A, 0x212A, prAL, gcLu}, // KELVIN SIGN - {0x212B, 0x212B, prAI, gcLu}, // ANGSTROM SIGN - {0x212C, 0x212D, prAL, gcLu}, // [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C - {0x212E, 0x212E, prAL, gcSo}, // ESTIMATED SYMBOL - {0x212F, 0x2134, prAL, gcLC}, // [6] SCRIPT SMALL E..SCRIPT SMALL O - {0x2135, 0x2138, prAL, gcLo}, // [4] ALEF SYMBOL..DALET SYMBOL - {0x2139, 0x2139, prAL, gcLl}, // INFORMATION SOURCE - {0x213A, 0x213B, prAL, gcSo}, // [2] ROTATED CAPITAL Q..FACSIMILE SIGN - {0x213C, 0x213F, prAL, gcLC}, // [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI - {0x2140, 0x2144, prAL, gcSm}, // [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y - {0x2145, 0x2149, prAL, gcLC}, // [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J - {0x214A, 0x214A, prAL, gcSo}, // PROPERTY LINE - {0x214B, 0x214B, prAL, gcSm}, // TURNED AMPERSAND - {0x214C, 0x214D, prAL, gcSo}, // [2] PER SIGN..AKTIESELSKAB - {0x214E, 0x214E, prAL, gcLl}, // TURNED SMALL F - {0x214F, 0x214F, prAL, gcSo}, // SYMBOL FOR SAMARITAN SOURCE - {0x2150, 0x2153, prAL, gcNo}, // [4] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE THIRD - {0x2154, 0x2155, prAI, gcNo}, // [2] VULGAR FRACTION TWO THIRDS..VULGAR FRACTION ONE FIFTH - {0x2156, 0x215A, prAL, gcNo}, // [5] VULGAR FRACTION TWO FIFTHS..VULGAR FRACTION FIVE SIXTHS - {0x215B, 0x215B, prAI, gcNo}, // VULGAR FRACTION ONE EIGHTH - {0x215C, 0x215D, prAL, gcNo}, // [2] VULGAR FRACTION THREE EIGHTHS..VULGAR FRACTION FIVE EIGHTHS - {0x215E, 0x215E, prAI, gcNo}, // VULGAR FRACTION SEVEN EIGHTHS - {0x215F, 0x215F, prAL, gcNo}, // FRACTION NUMERATOR ONE - {0x2160, 0x216B, prAI, gcNl}, // [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE - {0x216C, 0x216F, prAL, gcNl}, // [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND - {0x2170, 0x2179, prAI, gcNl}, // [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN - {0x217A, 0x2182, prAL, gcNl}, // [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND - {0x2183, 0x2184, prAL, gcLC}, // [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C - {0x2185, 0x2188, prAL, gcNl}, // [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND - {0x2189, 0x2189, prAI, gcNo}, // VULGAR FRACTION ZERO THIRDS - {0x218A, 0x218B, prAL, gcSo}, // [2] TURNED DIGIT TWO..TURNED DIGIT THREE - {0x2190, 0x2194, prAI, gcSm}, // [5] LEFTWARDS ARROW..LEFT RIGHT ARROW - {0x2195, 0x2199, prAI, gcSo}, // [5] UP DOWN ARROW..SOUTH WEST ARROW - {0x219A, 0x219B, prAL, gcSm}, // [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE - {0x219C, 0x219F, prAL, gcSo}, // [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW - {0x21A0, 0x21A0, prAL, gcSm}, // RIGHTWARDS TWO HEADED ARROW - {0x21A1, 0x21A2, prAL, gcSo}, // [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL - {0x21A3, 0x21A3, prAL, gcSm}, // RIGHTWARDS ARROW WITH TAIL - {0x21A4, 0x21A5, prAL, gcSo}, // [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR - {0x21A6, 0x21A6, prAL, gcSm}, // RIGHTWARDS ARROW FROM BAR - {0x21A7, 0x21AD, prAL, gcSo}, // [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW - {0x21AE, 0x21AE, prAL, gcSm}, // LEFT RIGHT ARROW WITH STROKE - {0x21AF, 0x21CD, prAL, gcSo}, // [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE - {0x21CE, 0x21CF, prAL, gcSm}, // [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE - {0x21D0, 0x21D1, prAL, gcSo}, // [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW - {0x21D2, 0x21D2, prAI, gcSm}, // RIGHTWARDS DOUBLE ARROW - {0x21D3, 0x21D3, prAL, gcSo}, // DOWNWARDS DOUBLE ARROW - {0x21D4, 0x21D4, prAI, gcSm}, // LEFT RIGHT DOUBLE ARROW - {0x21D5, 0x21F3, prAL, gcSo}, // [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW - {0x21F4, 0x21FF, prAL, gcSm}, // [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW - {0x2200, 0x2200, prAI, gcSm}, // FOR ALL - {0x2201, 0x2201, prAL, gcSm}, // COMPLEMENT - {0x2202, 0x2203, prAI, gcSm}, // [2] PARTIAL DIFFERENTIAL..THERE EXISTS - {0x2204, 0x2206, prAL, gcSm}, // [3] THERE DOES NOT EXIST..INCREMENT - {0x2207, 0x2208, prAI, gcSm}, // [2] NABLA..ELEMENT OF - {0x2209, 0x220A, prAL, gcSm}, // [2] NOT AN ELEMENT OF..SMALL ELEMENT OF - {0x220B, 0x220B, prAI, gcSm}, // CONTAINS AS MEMBER - {0x220C, 0x220E, prAL, gcSm}, // [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF - {0x220F, 0x220F, prAI, gcSm}, // N-ARY PRODUCT - {0x2210, 0x2210, prAL, gcSm}, // N-ARY COPRODUCT - {0x2211, 0x2211, prAI, gcSm}, // N-ARY SUMMATION - {0x2212, 0x2213, prPR, gcSm}, // [2] MINUS SIGN..MINUS-OR-PLUS SIGN - {0x2214, 0x2214, prAL, gcSm}, // DOT PLUS - {0x2215, 0x2215, prAI, gcSm}, // DIVISION SLASH - {0x2216, 0x2219, prAL, gcSm}, // [4] SET MINUS..BULLET OPERATOR - {0x221A, 0x221A, prAI, gcSm}, // SQUARE ROOT - {0x221B, 0x221C, prAL, gcSm}, // [2] CUBE ROOT..FOURTH ROOT - {0x221D, 0x2220, prAI, gcSm}, // [4] PROPORTIONAL TO..ANGLE - {0x2221, 0x2222, prAL, gcSm}, // [2] MEASURED ANGLE..SPHERICAL ANGLE - {0x2223, 0x2223, prAI, gcSm}, // DIVIDES - {0x2224, 0x2224, prAL, gcSm}, // DOES NOT DIVIDE - {0x2225, 0x2225, prAI, gcSm}, // PARALLEL TO - {0x2226, 0x2226, prAL, gcSm}, // NOT PARALLEL TO - {0x2227, 0x222C, prAI, gcSm}, // [6] LOGICAL AND..DOUBLE INTEGRAL - {0x222D, 0x222D, prAL, gcSm}, // TRIPLE INTEGRAL - {0x222E, 0x222E, prAI, gcSm}, // CONTOUR INTEGRAL - {0x222F, 0x2233, prAL, gcSm}, // [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL - {0x2234, 0x2237, prAI, gcSm}, // [4] THEREFORE..PROPORTION - {0x2238, 0x223B, prAL, gcSm}, // [4] DOT MINUS..HOMOTHETIC - {0x223C, 0x223D, prAI, gcSm}, // [2] TILDE OPERATOR..REVERSED TILDE - {0x223E, 0x2247, prAL, gcSm}, // [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO - {0x2248, 0x2248, prAI, gcSm}, // ALMOST EQUAL TO - {0x2249, 0x224B, prAL, gcSm}, // [3] NOT ALMOST EQUAL TO..TRIPLE TILDE - {0x224C, 0x224C, prAI, gcSm}, // ALL EQUAL TO - {0x224D, 0x2251, prAL, gcSm}, // [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO - {0x2252, 0x2252, prAI, gcSm}, // APPROXIMATELY EQUAL TO OR THE IMAGE OF - {0x2253, 0x225F, prAL, gcSm}, // [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO - {0x2260, 0x2261, prAI, gcSm}, // [2] NOT EQUAL TO..IDENTICAL TO - {0x2262, 0x2263, prAL, gcSm}, // [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO - {0x2264, 0x2267, prAI, gcSm}, // [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO - {0x2268, 0x2269, prAL, gcSm}, // [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO - {0x226A, 0x226B, prAI, gcSm}, // [2] MUCH LESS-THAN..MUCH GREATER-THAN - {0x226C, 0x226D, prAL, gcSm}, // [2] BETWEEN..NOT EQUIVALENT TO - {0x226E, 0x226F, prAI, gcSm}, // [2] NOT LESS-THAN..NOT GREATER-THAN - {0x2270, 0x2281, prAL, gcSm}, // [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED - {0x2282, 0x2283, prAI, gcSm}, // [2] SUBSET OF..SUPERSET OF - {0x2284, 0x2285, prAL, gcSm}, // [2] NOT A SUBSET OF..NOT A SUPERSET OF - {0x2286, 0x2287, prAI, gcSm}, // [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO - {0x2288, 0x2294, prAL, gcSm}, // [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP - {0x2295, 0x2295, prAI, gcSm}, // CIRCLED PLUS - {0x2296, 0x2298, prAL, gcSm}, // [3] CIRCLED MINUS..CIRCLED DIVISION SLASH - {0x2299, 0x2299, prAI, gcSm}, // CIRCLED DOT OPERATOR - {0x229A, 0x22A4, prAL, gcSm}, // [11] CIRCLED RING OPERATOR..DOWN TACK - {0x22A5, 0x22A5, prAI, gcSm}, // UP TACK - {0x22A6, 0x22BE, prAL, gcSm}, // [25] ASSERTION..RIGHT ANGLE WITH ARC - {0x22BF, 0x22BF, prAI, gcSm}, // RIGHT TRIANGLE - {0x22C0, 0x22EE, prAL, gcSm}, // [47] N-ARY LOGICAL AND..VERTICAL ELLIPSIS - {0x22EF, 0x22EF, prIN, gcSm}, // MIDLINE HORIZONTAL ELLIPSIS - {0x22F0, 0x22FF, prAL, gcSm}, // [16] UP RIGHT DIAGONAL ELLIPSIS..Z NOTATION BAG MEMBERSHIP - {0x2300, 0x2307, prAL, gcSo}, // [8] DIAMETER SIGN..WAVY LINE - {0x2308, 0x2308, prOP, gcPs}, // LEFT CEILING - {0x2309, 0x2309, prCL, gcPe}, // RIGHT CEILING - {0x230A, 0x230A, prOP, gcPs}, // LEFT FLOOR - {0x230B, 0x230B, prCL, gcPe}, // RIGHT FLOOR - {0x230C, 0x2311, prAL, gcSo}, // [6] BOTTOM RIGHT CROP..SQUARE LOZENGE - {0x2312, 0x2312, prAI, gcSo}, // ARC - {0x2313, 0x2319, prAL, gcSo}, // [7] SEGMENT..TURNED NOT SIGN - {0x231A, 0x231B, prID, gcSo}, // [2] WATCH..HOURGLASS - {0x231C, 0x231F, prAL, gcSo}, // [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER - {0x2320, 0x2321, prAL, gcSm}, // [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL - {0x2322, 0x2328, prAL, gcSo}, // [7] FROWN..KEYBOARD - {0x2329, 0x2329, prOP, gcPs}, // LEFT-POINTING ANGLE BRACKET - {0x232A, 0x232A, prCL, gcPe}, // RIGHT-POINTING ANGLE BRACKET - {0x232B, 0x237B, prAL, gcSo}, // [81] ERASE TO THE LEFT..NOT CHECK MARK - {0x237C, 0x237C, prAL, gcSm}, // RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW - {0x237D, 0x239A, prAL, gcSo}, // [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL - {0x239B, 0x23B3, prAL, gcSm}, // [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM - {0x23B4, 0x23DB, prAL, gcSo}, // [40] TOP SQUARE BRACKET..FUSE - {0x23DC, 0x23E1, prAL, gcSm}, // [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET - {0x23E2, 0x23EF, prAL, gcSo}, // [14] WHITE TRAPEZIUM..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR - {0x23F0, 0x23F3, prID, gcSo}, // [4] ALARM CLOCK..HOURGLASS WITH FLOWING SAND - {0x23F4, 0x23FF, prAL, gcSo}, // [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL - {0x2400, 0x2426, prAL, gcSo}, // [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO - {0x2440, 0x244A, prAL, gcSo}, // [11] OCR HOOK..OCR DOUBLE BACKSLASH - {0x2460, 0x249B, prAI, gcNo}, // [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP - {0x249C, 0x24E9, prAI, gcSo}, // [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z - {0x24EA, 0x24FE, prAI, gcNo}, // [21] CIRCLED DIGIT ZERO..DOUBLE CIRCLED NUMBER TEN - {0x24FF, 0x24FF, prAL, gcNo}, // NEGATIVE CIRCLED DIGIT ZERO - {0x2500, 0x254B, prAI, gcSo}, // [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL - {0x254C, 0x254F, prAL, gcSo}, // [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL - {0x2550, 0x2574, prAI, gcSo}, // [37] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT LEFT - {0x2575, 0x257F, prAL, gcSo}, // [11] BOX DRAWINGS LIGHT UP..BOX DRAWINGS HEAVY UP AND LIGHT DOWN - {0x2580, 0x258F, prAI, gcSo}, // [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK - {0x2590, 0x2591, prAL, gcSo}, // [2] RIGHT HALF BLOCK..LIGHT SHADE - {0x2592, 0x2595, prAI, gcSo}, // [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK - {0x2596, 0x259F, prAL, gcSo}, // [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT - {0x25A0, 0x25A1, prAI, gcSo}, // [2] BLACK SQUARE..WHITE SQUARE - {0x25A2, 0x25A2, prAL, gcSo}, // WHITE SQUARE WITH ROUNDED CORNERS - {0x25A3, 0x25A9, prAI, gcSo}, // [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL - {0x25AA, 0x25B1, prAL, gcSo}, // [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM - {0x25B2, 0x25B3, prAI, gcSo}, // [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE - {0x25B4, 0x25B5, prAL, gcSo}, // [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE - {0x25B6, 0x25B6, prAI, gcSo}, // BLACK RIGHT-POINTING TRIANGLE - {0x25B7, 0x25B7, prAI, gcSm}, // WHITE RIGHT-POINTING TRIANGLE - {0x25B8, 0x25BB, prAL, gcSo}, // [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER - {0x25BC, 0x25BD, prAI, gcSo}, // [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE - {0x25BE, 0x25BF, prAL, gcSo}, // [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE - {0x25C0, 0x25C0, prAI, gcSo}, // BLACK LEFT-POINTING TRIANGLE - {0x25C1, 0x25C1, prAI, gcSm}, // WHITE LEFT-POINTING TRIANGLE - {0x25C2, 0x25C5, prAL, gcSo}, // [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER - {0x25C6, 0x25C8, prAI, gcSo}, // [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND - {0x25C9, 0x25CA, prAL, gcSo}, // [2] FISHEYE..LOZENGE - {0x25CB, 0x25CB, prAI, gcSo}, // WHITE CIRCLE - {0x25CC, 0x25CD, prAL, gcSo}, // [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL - {0x25CE, 0x25D1, prAI, gcSo}, // [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK - {0x25D2, 0x25E1, prAL, gcSo}, // [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE - {0x25E2, 0x25E5, prAI, gcSo}, // [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE - {0x25E6, 0x25EE, prAL, gcSo}, // [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK - {0x25EF, 0x25EF, prAI, gcSo}, // LARGE CIRCLE - {0x25F0, 0x25F7, prAL, gcSo}, // [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT - {0x25F8, 0x25FF, prAL, gcSm}, // [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE - {0x2600, 0x2603, prID, gcSo}, // [4] BLACK SUN WITH RAYS..SNOWMAN - {0x2604, 0x2604, prAL, gcSo}, // COMET - {0x2605, 0x2606, prAI, gcSo}, // [2] BLACK STAR..WHITE STAR - {0x2607, 0x2608, prAL, gcSo}, // [2] LIGHTNING..THUNDERSTORM - {0x2609, 0x2609, prAI, gcSo}, // SUN - {0x260A, 0x260D, prAL, gcSo}, // [4] ASCENDING NODE..OPPOSITION - {0x260E, 0x260F, prAI, gcSo}, // [2] BLACK TELEPHONE..WHITE TELEPHONE - {0x2610, 0x2613, prAL, gcSo}, // [4] BALLOT BOX..SALTIRE - {0x2614, 0x2615, prID, gcSo}, // [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE - {0x2616, 0x2617, prAI, gcSo}, // [2] WHITE SHOGI PIECE..BLACK SHOGI PIECE - {0x2618, 0x2618, prID, gcSo}, // SHAMROCK - {0x2619, 0x2619, prAL, gcSo}, // REVERSED ROTATED FLORAL HEART BULLET - {0x261A, 0x261C, prID, gcSo}, // [3] BLACK LEFT POINTING INDEX..WHITE LEFT POINTING INDEX - {0x261D, 0x261D, prEB, gcSo}, // WHITE UP POINTING INDEX - {0x261E, 0x261F, prID, gcSo}, // [2] WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX - {0x2620, 0x2638, prAL, gcSo}, // [25] SKULL AND CROSSBONES..WHEEL OF DHARMA - {0x2639, 0x263B, prID, gcSo}, // [3] WHITE FROWNING FACE..BLACK SMILING FACE - {0x263C, 0x263F, prAL, gcSo}, // [4] WHITE SUN WITH RAYS..MERCURY - {0x2640, 0x2640, prAI, gcSo}, // FEMALE SIGN - {0x2641, 0x2641, prAL, gcSo}, // EARTH - {0x2642, 0x2642, prAI, gcSo}, // MALE SIGN - {0x2643, 0x265F, prAL, gcSo}, // [29] JUPITER..BLACK CHESS PAWN - {0x2660, 0x2661, prAI, gcSo}, // [2] BLACK SPADE SUIT..WHITE HEART SUIT - {0x2662, 0x2662, prAL, gcSo}, // WHITE DIAMOND SUIT - {0x2663, 0x2665, prAI, gcSo}, // [3] BLACK CLUB SUIT..BLACK HEART SUIT - {0x2666, 0x2666, prAL, gcSo}, // BLACK DIAMOND SUIT - {0x2667, 0x2667, prAI, gcSo}, // WHITE CLUB SUIT - {0x2668, 0x2668, prID, gcSo}, // HOT SPRINGS - {0x2669, 0x266A, prAI, gcSo}, // [2] QUARTER NOTE..EIGHTH NOTE - {0x266B, 0x266B, prAL, gcSo}, // BEAMED EIGHTH NOTES - {0x266C, 0x266D, prAI, gcSo}, // [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN - {0x266E, 0x266E, prAL, gcSo}, // MUSIC NATURAL SIGN - {0x266F, 0x266F, prAI, gcSm}, // MUSIC SHARP SIGN - {0x2670, 0x267E, prAL, gcSo}, // [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN - {0x267F, 0x267F, prID, gcSo}, // WHEELCHAIR SYMBOL - {0x2680, 0x269D, prAL, gcSo}, // [30] DIE FACE-1..OUTLINED WHITE STAR - {0x269E, 0x269F, prAI, gcSo}, // [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT - {0x26A0, 0x26BC, prAL, gcSo}, // [29] WARNING SIGN..SESQUIQUADRATE - {0x26BD, 0x26C8, prID, gcSo}, // [12] SOCCER BALL..THUNDER CLOUD AND RAIN - {0x26C9, 0x26CC, prAI, gcSo}, // [4] TURNED WHITE SHOGI PIECE..CROSSING LANES - {0x26CD, 0x26CD, prID, gcSo}, // DISABLED CAR - {0x26CE, 0x26CE, prAL, gcSo}, // OPHIUCHUS - {0x26CF, 0x26D1, prID, gcSo}, // [3] PICK..HELMET WITH WHITE CROSS - {0x26D2, 0x26D2, prAI, gcSo}, // CIRCLED CROSSING LANES - {0x26D3, 0x26D4, prID, gcSo}, // [2] CHAINS..NO ENTRY - {0x26D5, 0x26D7, prAI, gcSo}, // [3] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..WHITE TWO-WAY LEFT WAY TRAFFIC - {0x26D8, 0x26D9, prID, gcSo}, // [2] BLACK LEFT LANE MERGE..WHITE LEFT LANE MERGE - {0x26DA, 0x26DB, prAI, gcSo}, // [2] DRIVE SLOW SIGN..HEAVY WHITE DOWN-POINTING TRIANGLE - {0x26DC, 0x26DC, prID, gcSo}, // LEFT CLOSED ENTRY - {0x26DD, 0x26DE, prAI, gcSo}, // [2] SQUARED SALTIRE..FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE - {0x26DF, 0x26E1, prID, gcSo}, // [3] BLACK TRUCK..RESTRICTED LEFT ENTRY-2 - {0x26E2, 0x26E2, prAL, gcSo}, // ASTRONOMICAL SYMBOL FOR URANUS - {0x26E3, 0x26E3, prAI, gcSo}, // HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE - {0x26E4, 0x26E7, prAL, gcSo}, // [4] PENTAGRAM..INVERTED PENTAGRAM - {0x26E8, 0x26E9, prAI, gcSo}, // [2] BLACK CROSS ON SHIELD..SHINTO SHRINE - {0x26EA, 0x26EA, prID, gcSo}, // CHURCH - {0x26EB, 0x26F0, prAI, gcSo}, // [6] CASTLE..MOUNTAIN - {0x26F1, 0x26F5, prID, gcSo}, // [5] UMBRELLA ON GROUND..SAILBOAT - {0x26F6, 0x26F6, prAI, gcSo}, // SQUARE FOUR CORNERS - {0x26F7, 0x26F8, prID, gcSo}, // [2] SKIER..ICE SKATE - {0x26F9, 0x26F9, prEB, gcSo}, // PERSON WITH BALL - {0x26FA, 0x26FA, prID, gcSo}, // TENT - {0x26FB, 0x26FC, prAI, gcSo}, // [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL - {0x26FD, 0x26FF, prID, gcSo}, // [3] FUEL PUMP..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE - {0x2700, 0x2704, prID, gcSo}, // [5] BLACK SAFETY SCISSORS..WHITE SCISSORS - {0x2705, 0x2707, prAL, gcSo}, // [3] WHITE HEAVY CHECK MARK..TAPE DRIVE - {0x2708, 0x2709, prID, gcSo}, // [2] AIRPLANE..ENVELOPE - {0x270A, 0x270D, prEB, gcSo}, // [4] RAISED FIST..WRITING HAND - {0x270E, 0x2756, prAL, gcSo}, // [73] LOWER RIGHT PENCIL..BLACK DIAMOND MINUS WHITE X - {0x2757, 0x2757, prAI, gcSo}, // HEAVY EXCLAMATION MARK SYMBOL - {0x2758, 0x275A, prAL, gcSo}, // [3] LIGHT VERTICAL BAR..HEAVY VERTICAL BAR - {0x275B, 0x2760, prQU, gcSo}, // [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT - {0x2761, 0x2761, prAL, gcSo}, // CURVED STEM PARAGRAPH SIGN ORNAMENT - {0x2762, 0x2763, prEX, gcSo}, // [2] HEAVY EXCLAMATION MARK ORNAMENT..HEAVY HEART EXCLAMATION MARK ORNAMENT - {0x2764, 0x2764, prID, gcSo}, // HEAVY BLACK HEART - {0x2765, 0x2767, prAL, gcSo}, // [3] ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET - {0x2768, 0x2768, prOP, gcPs}, // MEDIUM LEFT PARENTHESIS ORNAMENT - {0x2769, 0x2769, prCL, gcPe}, // MEDIUM RIGHT PARENTHESIS ORNAMENT - {0x276A, 0x276A, prOP, gcPs}, // MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT - {0x276B, 0x276B, prCL, gcPe}, // MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT - {0x276C, 0x276C, prOP, gcPs}, // MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT - {0x276D, 0x276D, prCL, gcPe}, // MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT - {0x276E, 0x276E, prOP, gcPs}, // HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT - {0x276F, 0x276F, prCL, gcPe}, // HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT - {0x2770, 0x2770, prOP, gcPs}, // HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT - {0x2771, 0x2771, prCL, gcPe}, // HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT - {0x2772, 0x2772, prOP, gcPs}, // LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT - {0x2773, 0x2773, prCL, gcPe}, // LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT - {0x2774, 0x2774, prOP, gcPs}, // MEDIUM LEFT CURLY BRACKET ORNAMENT - {0x2775, 0x2775, prCL, gcPe}, // MEDIUM RIGHT CURLY BRACKET ORNAMENT - {0x2776, 0x2793, prAI, gcNo}, // [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN - {0x2794, 0x27BF, prAL, gcSo}, // [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP - {0x27C0, 0x27C4, prAL, gcSm}, // [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET - {0x27C5, 0x27C5, prOP, gcPs}, // LEFT S-SHAPED BAG DELIMITER - {0x27C6, 0x27C6, prCL, gcPe}, // RIGHT S-SHAPED BAG DELIMITER - {0x27C7, 0x27E5, prAL, gcSm}, // [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK - {0x27E6, 0x27E6, prOP, gcPs}, // MATHEMATICAL LEFT WHITE SQUARE BRACKET - {0x27E7, 0x27E7, prCL, gcPe}, // MATHEMATICAL RIGHT WHITE SQUARE BRACKET - {0x27E8, 0x27E8, prOP, gcPs}, // MATHEMATICAL LEFT ANGLE BRACKET - {0x27E9, 0x27E9, prCL, gcPe}, // MATHEMATICAL RIGHT ANGLE BRACKET - {0x27EA, 0x27EA, prOP, gcPs}, // MATHEMATICAL LEFT DOUBLE ANGLE BRACKET - {0x27EB, 0x27EB, prCL, gcPe}, // MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET - {0x27EC, 0x27EC, prOP, gcPs}, // MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET - {0x27ED, 0x27ED, prCL, gcPe}, // MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET - {0x27EE, 0x27EE, prOP, gcPs}, // MATHEMATICAL LEFT FLATTENED PARENTHESIS - {0x27EF, 0x27EF, prCL, gcPe}, // MATHEMATICAL RIGHT FLATTENED PARENTHESIS - {0x27F0, 0x27FF, prAL, gcSm}, // [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW - {0x2800, 0x28FF, prAL, gcSo}, // [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678 - {0x2900, 0x297F, prAL, gcSm}, // [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL - {0x2980, 0x2982, prAL, gcSm}, // [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON - {0x2983, 0x2983, prOP, gcPs}, // LEFT WHITE CURLY BRACKET - {0x2984, 0x2984, prCL, gcPe}, // RIGHT WHITE CURLY BRACKET - {0x2985, 0x2985, prOP, gcPs}, // LEFT WHITE PARENTHESIS - {0x2986, 0x2986, prCL, gcPe}, // RIGHT WHITE PARENTHESIS - {0x2987, 0x2987, prOP, gcPs}, // Z NOTATION LEFT IMAGE BRACKET - {0x2988, 0x2988, prCL, gcPe}, // Z NOTATION RIGHT IMAGE BRACKET - {0x2989, 0x2989, prOP, gcPs}, // Z NOTATION LEFT BINDING BRACKET - {0x298A, 0x298A, prCL, gcPe}, // Z NOTATION RIGHT BINDING BRACKET - {0x298B, 0x298B, prOP, gcPs}, // LEFT SQUARE BRACKET WITH UNDERBAR - {0x298C, 0x298C, prCL, gcPe}, // RIGHT SQUARE BRACKET WITH UNDERBAR - {0x298D, 0x298D, prOP, gcPs}, // LEFT SQUARE BRACKET WITH TICK IN TOP CORNER - {0x298E, 0x298E, prCL, gcPe}, // RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER - {0x298F, 0x298F, prOP, gcPs}, // LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER - {0x2990, 0x2990, prCL, gcPe}, // RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER - {0x2991, 0x2991, prOP, gcPs}, // LEFT ANGLE BRACKET WITH DOT - {0x2992, 0x2992, prCL, gcPe}, // RIGHT ANGLE BRACKET WITH DOT - {0x2993, 0x2993, prOP, gcPs}, // LEFT ARC LESS-THAN BRACKET - {0x2994, 0x2994, prCL, gcPe}, // RIGHT ARC GREATER-THAN BRACKET - {0x2995, 0x2995, prOP, gcPs}, // DOUBLE LEFT ARC GREATER-THAN BRACKET - {0x2996, 0x2996, prCL, gcPe}, // DOUBLE RIGHT ARC LESS-THAN BRACKET - {0x2997, 0x2997, prOP, gcPs}, // LEFT BLACK TORTOISE SHELL BRACKET - {0x2998, 0x2998, prCL, gcPe}, // RIGHT BLACK TORTOISE SHELL BRACKET - {0x2999, 0x29D7, prAL, gcSm}, // [63] DOTTED FENCE..BLACK HOURGLASS - {0x29D8, 0x29D8, prOP, gcPs}, // LEFT WIGGLY FENCE - {0x29D9, 0x29D9, prCL, gcPe}, // RIGHT WIGGLY FENCE - {0x29DA, 0x29DA, prOP, gcPs}, // LEFT DOUBLE WIGGLY FENCE - {0x29DB, 0x29DB, prCL, gcPe}, // RIGHT DOUBLE WIGGLY FENCE - {0x29DC, 0x29FB, prAL, gcSm}, // [32] INCOMPLETE INFINITY..TRIPLE PLUS - {0x29FC, 0x29FC, prOP, gcPs}, // LEFT-POINTING CURVED ANGLE BRACKET - {0x29FD, 0x29FD, prCL, gcPe}, // RIGHT-POINTING CURVED ANGLE BRACKET - {0x29FE, 0x29FF, prAL, gcSm}, // [2] TINY..MINY - {0x2A00, 0x2AFF, prAL, gcSm}, // [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR - {0x2B00, 0x2B2F, prAL, gcSo}, // [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE - {0x2B30, 0x2B44, prAL, gcSm}, // [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET - {0x2B45, 0x2B46, prAL, gcSo}, // [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW - {0x2B47, 0x2B4C, prAL, gcSm}, // [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR - {0x2B4D, 0x2B54, prAL, gcSo}, // [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON - {0x2B55, 0x2B59, prAI, gcSo}, // [5] HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE - {0x2B5A, 0x2B73, prAL, gcSo}, // [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR - {0x2B76, 0x2B95, prAL, gcSo}, // [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW - {0x2B97, 0x2BFF, prAL, gcSo}, // [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL - {0x2C00, 0x2C5F, prAL, gcLC}, // [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI - {0x2C60, 0x2C7B, prAL, gcLC}, // [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E - {0x2C7C, 0x2C7D, prAL, gcLm}, // [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V - {0x2C7E, 0x2C7F, prAL, gcLu}, // [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL - {0x2C80, 0x2CE4, prAL, gcLC}, // [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI - {0x2CE5, 0x2CEA, prAL, gcSo}, // [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA - {0x2CEB, 0x2CEE, prAL, gcLC}, // [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA - {0x2CEF, 0x2CF1, prCM, gcMn}, // [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS - {0x2CF2, 0x2CF3, prAL, gcLC}, // [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI - {0x2CF9, 0x2CF9, prEX, gcPo}, // COPTIC OLD NUBIAN FULL STOP - {0x2CFA, 0x2CFC, prBA, gcPo}, // [3] COPTIC OLD NUBIAN DIRECT QUESTION MARK..COPTIC OLD NUBIAN VERSE DIVIDER - {0x2CFD, 0x2CFD, prAL, gcNo}, // COPTIC FRACTION ONE HALF - {0x2CFE, 0x2CFE, prEX, gcPo}, // COPTIC FULL STOP - {0x2CFF, 0x2CFF, prBA, gcPo}, // COPTIC MORPHOLOGICAL DIVIDER - {0x2D00, 0x2D25, prAL, gcLl}, // [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE - {0x2D27, 0x2D27, prAL, gcLl}, // GEORGIAN SMALL LETTER YN - {0x2D2D, 0x2D2D, prAL, gcLl}, // GEORGIAN SMALL LETTER AEN - {0x2D30, 0x2D67, prAL, gcLo}, // [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO - {0x2D6F, 0x2D6F, prAL, gcLm}, // TIFINAGH MODIFIER LETTER LABIALIZATION MARK - {0x2D70, 0x2D70, prBA, gcPo}, // TIFINAGH SEPARATOR MARK - {0x2D7F, 0x2D7F, prCM, gcMn}, // TIFINAGH CONSONANT JOINER - {0x2D80, 0x2D96, prAL, gcLo}, // [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE - {0x2DA0, 0x2DA6, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO - {0x2DA8, 0x2DAE, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO - {0x2DB0, 0x2DB6, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO - {0x2DB8, 0x2DBE, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO - {0x2DC0, 0x2DC6, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO - {0x2DC8, 0x2DCE, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO - {0x2DD0, 0x2DD6, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO - {0x2DD8, 0x2DDE, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO - {0x2DE0, 0x2DFF, prCM, gcMn}, // [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS - {0x2E00, 0x2E01, prQU, gcPo}, // [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER - {0x2E02, 0x2E02, prQU, gcPi}, // LEFT SUBSTITUTION BRACKET - {0x2E03, 0x2E03, prQU, gcPf}, // RIGHT SUBSTITUTION BRACKET - {0x2E04, 0x2E04, prQU, gcPi}, // LEFT DOTTED SUBSTITUTION BRACKET - {0x2E05, 0x2E05, prQU, gcPf}, // RIGHT DOTTED SUBSTITUTION BRACKET - {0x2E06, 0x2E08, prQU, gcPo}, // [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER - {0x2E09, 0x2E09, prQU, gcPi}, // LEFT TRANSPOSITION BRACKET - {0x2E0A, 0x2E0A, prQU, gcPf}, // RIGHT TRANSPOSITION BRACKET - {0x2E0B, 0x2E0B, prQU, gcPo}, // RAISED SQUARE - {0x2E0C, 0x2E0C, prQU, gcPi}, // LEFT RAISED OMISSION BRACKET - {0x2E0D, 0x2E0D, prQU, gcPf}, // RIGHT RAISED OMISSION BRACKET - {0x2E0E, 0x2E15, prBA, gcPo}, // [8] EDITORIAL CORONIS..UPWARDS ANCORA - {0x2E16, 0x2E16, prAL, gcPo}, // DOTTED RIGHT-POINTING ANGLE - {0x2E17, 0x2E17, prBA, gcPd}, // DOUBLE OBLIQUE HYPHEN - {0x2E18, 0x2E18, prOP, gcPo}, // INVERTED INTERROBANG - {0x2E19, 0x2E19, prBA, gcPo}, // PALM BRANCH - {0x2E1A, 0x2E1A, prAL, gcPd}, // HYPHEN WITH DIAERESIS - {0x2E1B, 0x2E1B, prAL, gcPo}, // TILDE WITH RING ABOVE - {0x2E1C, 0x2E1C, prQU, gcPi}, // LEFT LOW PARAPHRASE BRACKET - {0x2E1D, 0x2E1D, prQU, gcPf}, // RIGHT LOW PARAPHRASE BRACKET - {0x2E1E, 0x2E1F, prAL, gcPo}, // [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW - {0x2E20, 0x2E20, prQU, gcPi}, // LEFT VERTICAL BAR WITH QUILL - {0x2E21, 0x2E21, prQU, gcPf}, // RIGHT VERTICAL BAR WITH QUILL - {0x2E22, 0x2E22, prOP, gcPs}, // TOP LEFT HALF BRACKET - {0x2E23, 0x2E23, prCL, gcPe}, // TOP RIGHT HALF BRACKET - {0x2E24, 0x2E24, prOP, gcPs}, // BOTTOM LEFT HALF BRACKET - {0x2E25, 0x2E25, prCL, gcPe}, // BOTTOM RIGHT HALF BRACKET - {0x2E26, 0x2E26, prOP, gcPs}, // LEFT SIDEWAYS U BRACKET - {0x2E27, 0x2E27, prCL, gcPe}, // RIGHT SIDEWAYS U BRACKET - {0x2E28, 0x2E28, prOP, gcPs}, // LEFT DOUBLE PARENTHESIS - {0x2E29, 0x2E29, prCL, gcPe}, // RIGHT DOUBLE PARENTHESIS - {0x2E2A, 0x2E2D, prBA, gcPo}, // [4] TWO DOTS OVER ONE DOT PUNCTUATION..FIVE DOT MARK - {0x2E2E, 0x2E2E, prEX, gcPo}, // REVERSED QUESTION MARK - {0x2E2F, 0x2E2F, prAL, gcLm}, // VERTICAL TILDE - {0x2E30, 0x2E31, prBA, gcPo}, // [2] RING POINT..WORD SEPARATOR MIDDLE DOT - {0x2E32, 0x2E32, prAL, gcPo}, // TURNED COMMA - {0x2E33, 0x2E34, prBA, gcPo}, // [2] RAISED DOT..RAISED COMMA - {0x2E35, 0x2E39, prAL, gcPo}, // [5] TURNED SEMICOLON..TOP HALF SECTION SIGN - {0x2E3A, 0x2E3B, prB2, gcPd}, // [2] TWO-EM DASH..THREE-EM DASH - {0x2E3C, 0x2E3E, prBA, gcPo}, // [3] STENOGRAPHIC FULL STOP..WIGGLY VERTICAL LINE - {0x2E3F, 0x2E3F, prAL, gcPo}, // CAPITULUM - {0x2E40, 0x2E40, prBA, gcPd}, // DOUBLE HYPHEN - {0x2E41, 0x2E41, prBA, gcPo}, // REVERSED COMMA - {0x2E42, 0x2E42, prOP, gcPs}, // DOUBLE LOW-REVERSED-9 QUOTATION MARK - {0x2E43, 0x2E4A, prBA, gcPo}, // [8] DASH WITH LEFT UPTURN..DOTTED SOLIDUS - {0x2E4B, 0x2E4B, prAL, gcPo}, // TRIPLE DAGGER - {0x2E4C, 0x2E4C, prBA, gcPo}, // MEDIEVAL COMMA - {0x2E4D, 0x2E4D, prAL, gcPo}, // PARAGRAPHUS MARK - {0x2E4E, 0x2E4F, prBA, gcPo}, // [2] PUNCTUS ELEVATUS MARK..CORNISH VERSE DIVIDER - {0x2E50, 0x2E51, prAL, gcSo}, // [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR - {0x2E52, 0x2E52, prAL, gcPo}, // TIRONIAN SIGN CAPITAL ET - {0x2E53, 0x2E54, prEX, gcPo}, // [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK - {0x2E55, 0x2E55, prOP, gcPs}, // LEFT SQUARE BRACKET WITH STROKE - {0x2E56, 0x2E56, prCL, gcPe}, // RIGHT SQUARE BRACKET WITH STROKE - {0x2E57, 0x2E57, prOP, gcPs}, // LEFT SQUARE BRACKET WITH DOUBLE STROKE - {0x2E58, 0x2E58, prCL, gcPe}, // RIGHT SQUARE BRACKET WITH DOUBLE STROKE - {0x2E59, 0x2E59, prOP, gcPs}, // TOP HALF LEFT PARENTHESIS - {0x2E5A, 0x2E5A, prCL, gcPe}, // TOP HALF RIGHT PARENTHESIS - {0x2E5B, 0x2E5B, prOP, gcPs}, // BOTTOM HALF LEFT PARENTHESIS - {0x2E5C, 0x2E5C, prCL, gcPe}, // BOTTOM HALF RIGHT PARENTHESIS - {0x2E5D, 0x2E5D, prBA, gcPd}, // OBLIQUE HYPHEN - {0x2E80, 0x2E99, prID, gcSo}, // [26] CJK RADICAL REPEAT..CJK RADICAL RAP - {0x2E9B, 0x2EF3, prID, gcSo}, // [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE - {0x2F00, 0x2FD5, prID, gcSo}, // [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE - {0x2FF0, 0x2FFB, prID, gcSo}, // [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID - {0x3000, 0x3000, prBA, gcZs}, // IDEOGRAPHIC SPACE - {0x3001, 0x3002, prCL, gcPo}, // [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP - {0x3003, 0x3003, prID, gcPo}, // DITTO MARK - {0x3004, 0x3004, prID, gcSo}, // JAPANESE INDUSTRIAL STANDARD SYMBOL - {0x3005, 0x3005, prNS, gcLm}, // IDEOGRAPHIC ITERATION MARK - {0x3006, 0x3006, prID, gcLo}, // IDEOGRAPHIC CLOSING MARK - {0x3007, 0x3007, prID, gcNl}, // IDEOGRAPHIC NUMBER ZERO - {0x3008, 0x3008, prOP, gcPs}, // LEFT ANGLE BRACKET - {0x3009, 0x3009, prCL, gcPe}, // RIGHT ANGLE BRACKET - {0x300A, 0x300A, prOP, gcPs}, // LEFT DOUBLE ANGLE BRACKET - {0x300B, 0x300B, prCL, gcPe}, // RIGHT DOUBLE ANGLE BRACKET - {0x300C, 0x300C, prOP, gcPs}, // LEFT CORNER BRACKET - {0x300D, 0x300D, prCL, gcPe}, // RIGHT CORNER BRACKET - {0x300E, 0x300E, prOP, gcPs}, // LEFT WHITE CORNER BRACKET - {0x300F, 0x300F, prCL, gcPe}, // RIGHT WHITE CORNER BRACKET - {0x3010, 0x3010, prOP, gcPs}, // LEFT BLACK LENTICULAR BRACKET - {0x3011, 0x3011, prCL, gcPe}, // RIGHT BLACK LENTICULAR BRACKET - {0x3012, 0x3013, prID, gcSo}, // [2] POSTAL MARK..GETA MARK - {0x3014, 0x3014, prOP, gcPs}, // LEFT TORTOISE SHELL BRACKET - {0x3015, 0x3015, prCL, gcPe}, // RIGHT TORTOISE SHELL BRACKET - {0x3016, 0x3016, prOP, gcPs}, // LEFT WHITE LENTICULAR BRACKET - {0x3017, 0x3017, prCL, gcPe}, // RIGHT WHITE LENTICULAR BRACKET - {0x3018, 0x3018, prOP, gcPs}, // LEFT WHITE TORTOISE SHELL BRACKET - {0x3019, 0x3019, prCL, gcPe}, // RIGHT WHITE TORTOISE SHELL BRACKET - {0x301A, 0x301A, prOP, gcPs}, // LEFT WHITE SQUARE BRACKET - {0x301B, 0x301B, prCL, gcPe}, // RIGHT WHITE SQUARE BRACKET - {0x301C, 0x301C, prNS, gcPd}, // WAVE DASH - {0x301D, 0x301D, prOP, gcPs}, // REVERSED DOUBLE PRIME QUOTATION MARK - {0x301E, 0x301F, prCL, gcPe}, // [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK - {0x3020, 0x3020, prID, gcSo}, // POSTAL MARK FACE - {0x3021, 0x3029, prID, gcNl}, // [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE - {0x302A, 0x302D, prCM, gcMn}, // [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK - {0x302E, 0x302F, prCM, gcMc}, // [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK - {0x3030, 0x3030, prID, gcPd}, // WAVY DASH - {0x3031, 0x3034, prID, gcLm}, // [4] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF - {0x3035, 0x3035, prCM, gcLm}, // VERTICAL KANA REPEAT MARK LOWER HALF - {0x3036, 0x3037, prID, gcSo}, // [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL - {0x3038, 0x303A, prID, gcNl}, // [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY - {0x303B, 0x303B, prNS, gcLm}, // VERTICAL IDEOGRAPHIC ITERATION MARK - {0x303C, 0x303C, prNS, gcLo}, // MASU MARK - {0x303D, 0x303D, prID, gcPo}, // PART ALTERNATION MARK - {0x303E, 0x303F, prID, gcSo}, // [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE - {0x3041, 0x3041, prCJ, gcLo}, // HIRAGANA LETTER SMALL A - {0x3042, 0x3042, prID, gcLo}, // HIRAGANA LETTER A - {0x3043, 0x3043, prCJ, gcLo}, // HIRAGANA LETTER SMALL I - {0x3044, 0x3044, prID, gcLo}, // HIRAGANA LETTER I - {0x3045, 0x3045, prCJ, gcLo}, // HIRAGANA LETTER SMALL U - {0x3046, 0x3046, prID, gcLo}, // HIRAGANA LETTER U - {0x3047, 0x3047, prCJ, gcLo}, // HIRAGANA LETTER SMALL E - {0x3048, 0x3048, prID, gcLo}, // HIRAGANA LETTER E - {0x3049, 0x3049, prCJ, gcLo}, // HIRAGANA LETTER SMALL O - {0x304A, 0x3062, prID, gcLo}, // [25] HIRAGANA LETTER O..HIRAGANA LETTER DI - {0x3063, 0x3063, prCJ, gcLo}, // HIRAGANA LETTER SMALL TU - {0x3064, 0x3082, prID, gcLo}, // [31] HIRAGANA LETTER TU..HIRAGANA LETTER MO - {0x3083, 0x3083, prCJ, gcLo}, // HIRAGANA LETTER SMALL YA - {0x3084, 0x3084, prID, gcLo}, // HIRAGANA LETTER YA - {0x3085, 0x3085, prCJ, gcLo}, // HIRAGANA LETTER SMALL YU - {0x3086, 0x3086, prID, gcLo}, // HIRAGANA LETTER YU - {0x3087, 0x3087, prCJ, gcLo}, // HIRAGANA LETTER SMALL YO - {0x3088, 0x308D, prID, gcLo}, // [6] HIRAGANA LETTER YO..HIRAGANA LETTER RO - {0x308E, 0x308E, prCJ, gcLo}, // HIRAGANA LETTER SMALL WA - {0x308F, 0x3094, prID, gcLo}, // [6] HIRAGANA LETTER WA..HIRAGANA LETTER VU - {0x3095, 0x3096, prCJ, gcLo}, // [2] HIRAGANA LETTER SMALL KA..HIRAGANA LETTER SMALL KE - {0x3099, 0x309A, prCM, gcMn}, // [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - {0x309B, 0x309C, prNS, gcSk}, // [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - {0x309D, 0x309E, prNS, gcLm}, // [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK - {0x309F, 0x309F, prID, gcLo}, // HIRAGANA DIGRAPH YORI - {0x30A0, 0x30A0, prNS, gcPd}, // KATAKANA-HIRAGANA DOUBLE HYPHEN - {0x30A1, 0x30A1, prCJ, gcLo}, // KATAKANA LETTER SMALL A - {0x30A2, 0x30A2, prID, gcLo}, // KATAKANA LETTER A - {0x30A3, 0x30A3, prCJ, gcLo}, // KATAKANA LETTER SMALL I - {0x30A4, 0x30A4, prID, gcLo}, // KATAKANA LETTER I - {0x30A5, 0x30A5, prCJ, gcLo}, // KATAKANA LETTER SMALL U - {0x30A6, 0x30A6, prID, gcLo}, // KATAKANA LETTER U - {0x30A7, 0x30A7, prCJ, gcLo}, // KATAKANA LETTER SMALL E - {0x30A8, 0x30A8, prID, gcLo}, // KATAKANA LETTER E - {0x30A9, 0x30A9, prCJ, gcLo}, // KATAKANA LETTER SMALL O - {0x30AA, 0x30C2, prID, gcLo}, // [25] KATAKANA LETTER O..KATAKANA LETTER DI - {0x30C3, 0x30C3, prCJ, gcLo}, // KATAKANA LETTER SMALL TU - {0x30C4, 0x30E2, prID, gcLo}, // [31] KATAKANA LETTER TU..KATAKANA LETTER MO - {0x30E3, 0x30E3, prCJ, gcLo}, // KATAKANA LETTER SMALL YA - {0x30E4, 0x30E4, prID, gcLo}, // KATAKANA LETTER YA - {0x30E5, 0x30E5, prCJ, gcLo}, // KATAKANA LETTER SMALL YU - {0x30E6, 0x30E6, prID, gcLo}, // KATAKANA LETTER YU - {0x30E7, 0x30E7, prCJ, gcLo}, // KATAKANA LETTER SMALL YO - {0x30E8, 0x30ED, prID, gcLo}, // [6] KATAKANA LETTER YO..KATAKANA LETTER RO - {0x30EE, 0x30EE, prCJ, gcLo}, // KATAKANA LETTER SMALL WA - {0x30EF, 0x30F4, prID, gcLo}, // [6] KATAKANA LETTER WA..KATAKANA LETTER VU - {0x30F5, 0x30F6, prCJ, gcLo}, // [2] KATAKANA LETTER SMALL KA..KATAKANA LETTER SMALL KE - {0x30F7, 0x30FA, prID, gcLo}, // [4] KATAKANA LETTER VA..KATAKANA LETTER VO - {0x30FB, 0x30FB, prNS, gcPo}, // KATAKANA MIDDLE DOT - {0x30FC, 0x30FC, prCJ, gcLm}, // KATAKANA-HIRAGANA PROLONGED SOUND MARK - {0x30FD, 0x30FE, prNS, gcLm}, // [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK - {0x30FF, 0x30FF, prID, gcLo}, // KATAKANA DIGRAPH KOTO - {0x3105, 0x312F, prID, gcLo}, // [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN - {0x3131, 0x318E, prID, gcLo}, // [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE - {0x3190, 0x3191, prID, gcSo}, // [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK - {0x3192, 0x3195, prID, gcNo}, // [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK - {0x3196, 0x319F, prID, gcSo}, // [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK - {0x31A0, 0x31BF, prID, gcLo}, // [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH - {0x31C0, 0x31E3, prID, gcSo}, // [36] CJK STROKE T..CJK STROKE Q - {0x31F0, 0x31FF, prCJ, gcLo}, // [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO - {0x3200, 0x321E, prID, gcSo}, // [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU - {0x3220, 0x3229, prID, gcNo}, // [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN - {0x322A, 0x3247, prID, gcSo}, // [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO - {0x3248, 0x324F, prAI, gcNo}, // [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE - {0x3250, 0x3250, prID, gcSo}, // PARTNERSHIP SIGN - {0x3251, 0x325F, prID, gcNo}, // [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE - {0x3260, 0x327F, prID, gcSo}, // [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL - {0x3280, 0x3289, prID, gcNo}, // [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN - {0x328A, 0x32B0, prID, gcSo}, // [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT - {0x32B1, 0x32BF, prID, gcNo}, // [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY - {0x32C0, 0x32FF, prID, gcSo}, // [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA - {0x3300, 0x33FF, prID, gcSo}, // [256] SQUARE APAATO..SQUARE GAL - {0x3400, 0x4DBF, prID, gcLo}, // [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF - {0x4DC0, 0x4DFF, prAL, gcSo}, // [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION - {0x4E00, 0x9FFF, prID, gcLo}, // [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF - {0xA000, 0xA014, prID, gcLo}, // [21] YI SYLLABLE IT..YI SYLLABLE E - {0xA015, 0xA015, prNS, gcLm}, // YI SYLLABLE WU - {0xA016, 0xA48C, prID, gcLo}, // [1143] YI SYLLABLE BIT..YI SYLLABLE YYR - {0xA490, 0xA4C6, prID, gcSo}, // [55] YI RADICAL QOT..YI RADICAL KE - {0xA4D0, 0xA4F7, prAL, gcLo}, // [40] LISU LETTER BA..LISU LETTER OE - {0xA4F8, 0xA4FD, prAL, gcLm}, // [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU - {0xA4FE, 0xA4FF, prBA, gcPo}, // [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP - {0xA500, 0xA60B, prAL, gcLo}, // [268] VAI SYLLABLE EE..VAI SYLLABLE NG - {0xA60C, 0xA60C, prAL, gcLm}, // VAI SYLLABLE LENGTHENER - {0xA60D, 0xA60D, prBA, gcPo}, // VAI COMMA - {0xA60E, 0xA60E, prEX, gcPo}, // VAI FULL STOP - {0xA60F, 0xA60F, prBA, gcPo}, // VAI QUESTION MARK - {0xA610, 0xA61F, prAL, gcLo}, // [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG - {0xA620, 0xA629, prNU, gcNd}, // [10] VAI DIGIT ZERO..VAI DIGIT NINE - {0xA62A, 0xA62B, prAL, gcLo}, // [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO - {0xA640, 0xA66D, prAL, gcLC}, // [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O - {0xA66E, 0xA66E, prAL, gcLo}, // CYRILLIC LETTER MULTIOCULAR O - {0xA66F, 0xA66F, prCM, gcMn}, // COMBINING CYRILLIC VZMET - {0xA670, 0xA672, prCM, gcMe}, // [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN - {0xA673, 0xA673, prAL, gcPo}, // SLAVONIC ASTERISK - {0xA674, 0xA67D, prCM, gcMn}, // [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK - {0xA67E, 0xA67E, prAL, gcPo}, // CYRILLIC KAVYKA - {0xA67F, 0xA67F, prAL, gcLm}, // CYRILLIC PAYEROK - {0xA680, 0xA69B, prAL, gcLC}, // [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O - {0xA69C, 0xA69D, prAL, gcLm}, // [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN - {0xA69E, 0xA69F, prCM, gcMn}, // [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E - {0xA6A0, 0xA6E5, prAL, gcLo}, // [70] BAMUM LETTER A..BAMUM LETTER KI - {0xA6E6, 0xA6EF, prAL, gcNl}, // [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM - {0xA6F0, 0xA6F1, prCM, gcMn}, // [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS - {0xA6F2, 0xA6F2, prAL, gcPo}, // BAMUM NJAEMLI - {0xA6F3, 0xA6F7, prBA, gcPo}, // [5] BAMUM FULL STOP..BAMUM QUESTION MARK - {0xA700, 0xA716, prAL, gcSk}, // [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR - {0xA717, 0xA71F, prAL, gcLm}, // [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK - {0xA720, 0xA721, prAL, gcSk}, // [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE - {0xA722, 0xA76F, prAL, gcLC}, // [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON - {0xA770, 0xA770, prAL, gcLm}, // MODIFIER LETTER US - {0xA771, 0xA787, prAL, gcLC}, // [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T - {0xA788, 0xA788, prAL, gcLm}, // MODIFIER LETTER LOW CIRCUMFLEX ACCENT - {0xA789, 0xA78A, prAL, gcSk}, // [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN - {0xA78B, 0xA78E, prAL, gcLC}, // [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT - {0xA78F, 0xA78F, prAL, gcLo}, // LATIN LETTER SINOLOGICAL DOT - {0xA790, 0xA7CA, prAL, gcLC}, // [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY - {0xA7D0, 0xA7D1, prAL, gcLC}, // [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G - {0xA7D3, 0xA7D3, prAL, gcLl}, // LATIN SMALL LETTER DOUBLE THORN - {0xA7D5, 0xA7D9, prAL, gcLC}, // [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S - {0xA7F2, 0xA7F4, prAL, gcLm}, // [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q - {0xA7F5, 0xA7F6, prAL, gcLC}, // [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H - {0xA7F7, 0xA7F7, prAL, gcLo}, // LATIN EPIGRAPHIC LETTER SIDEWAYS I - {0xA7F8, 0xA7F9, prAL, gcLm}, // [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE - {0xA7FA, 0xA7FA, prAL, gcLl}, // LATIN LETTER SMALL CAPITAL TURNED M - {0xA7FB, 0xA7FF, prAL, gcLo}, // [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M - {0xA800, 0xA801, prAL, gcLo}, // [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I - {0xA802, 0xA802, prCM, gcMn}, // SYLOTI NAGRI SIGN DVISVARA - {0xA803, 0xA805, prAL, gcLo}, // [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O - {0xA806, 0xA806, prCM, gcMn}, // SYLOTI NAGRI SIGN HASANTA - {0xA807, 0xA80A, prAL, gcLo}, // [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO - {0xA80B, 0xA80B, prCM, gcMn}, // SYLOTI NAGRI SIGN ANUSVARA - {0xA80C, 0xA822, prAL, gcLo}, // [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO - {0xA823, 0xA824, prCM, gcMc}, // [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I - {0xA825, 0xA826, prCM, gcMn}, // [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E - {0xA827, 0xA827, prCM, gcMc}, // SYLOTI NAGRI VOWEL SIGN OO - {0xA828, 0xA82B, prAL, gcSo}, // [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4 - {0xA82C, 0xA82C, prCM, gcMn}, // SYLOTI NAGRI SIGN ALTERNATE HASANTA - {0xA830, 0xA835, prAL, gcNo}, // [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS - {0xA836, 0xA837, prAL, gcSo}, // [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK - {0xA838, 0xA838, prPO, gcSc}, // NORTH INDIC RUPEE MARK - {0xA839, 0xA839, prAL, gcSo}, // NORTH INDIC QUANTITY MARK - {0xA840, 0xA873, prAL, gcLo}, // [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU - {0xA874, 0xA875, prBB, gcPo}, // [2] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA DOUBLE HEAD MARK - {0xA876, 0xA877, prEX, gcPo}, // [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD - {0xA880, 0xA881, prCM, gcMc}, // [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA - {0xA882, 0xA8B3, prAL, gcLo}, // [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA - {0xA8B4, 0xA8C3, prCM, gcMc}, // [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU - {0xA8C4, 0xA8C5, prCM, gcMn}, // [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU - {0xA8CE, 0xA8CF, prBA, gcPo}, // [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA - {0xA8D0, 0xA8D9, prNU, gcNd}, // [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE - {0xA8E0, 0xA8F1, prCM, gcMn}, // [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA - {0xA8F2, 0xA8F7, prAL, gcLo}, // [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA - {0xA8F8, 0xA8FA, prAL, gcPo}, // [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET - {0xA8FB, 0xA8FB, prAL, gcLo}, // DEVANAGARI HEADSTROKE - {0xA8FC, 0xA8FC, prBB, gcPo}, // DEVANAGARI SIGN SIDDHAM - {0xA8FD, 0xA8FE, prAL, gcLo}, // [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY - {0xA8FF, 0xA8FF, prCM, gcMn}, // DEVANAGARI VOWEL SIGN AY - {0xA900, 0xA909, prNU, gcNd}, // [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE - {0xA90A, 0xA925, prAL, gcLo}, // [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO - {0xA926, 0xA92D, prCM, gcMn}, // [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU - {0xA92E, 0xA92F, prBA, gcPo}, // [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA - {0xA930, 0xA946, prAL, gcLo}, // [23] REJANG LETTER KA..REJANG LETTER A - {0xA947, 0xA951, prCM, gcMn}, // [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R - {0xA952, 0xA953, prCM, gcMc}, // [2] REJANG CONSONANT SIGN H..REJANG VIRAMA - {0xA95F, 0xA95F, prAL, gcPo}, // REJANG SECTION MARK - {0xA960, 0xA97C, prJL, gcLo}, // [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH - {0xA980, 0xA982, prCM, gcMn}, // [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR - {0xA983, 0xA983, prCM, gcMc}, // JAVANESE SIGN WIGNYAN - {0xA984, 0xA9B2, prAL, gcLo}, // [47] JAVANESE LETTER A..JAVANESE LETTER HA - {0xA9B3, 0xA9B3, prCM, gcMn}, // JAVANESE SIGN CECAK TELU - {0xA9B4, 0xA9B5, prCM, gcMc}, // [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG - {0xA9B6, 0xA9B9, prCM, gcMn}, // [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT - {0xA9BA, 0xA9BB, prCM, gcMc}, // [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE - {0xA9BC, 0xA9BD, prCM, gcMn}, // [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET - {0xA9BE, 0xA9C0, prCM, gcMc}, // [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON - {0xA9C1, 0xA9C6, prAL, gcPo}, // [6] JAVANESE LEFT RERENGGAN..JAVANESE PADA WINDU - {0xA9C7, 0xA9C9, prBA, gcPo}, // [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI - {0xA9CA, 0xA9CD, prAL, gcPo}, // [4] JAVANESE PADA ADEG..JAVANESE TURNED PADA PISELEH - {0xA9CF, 0xA9CF, prAL, gcLm}, // JAVANESE PANGRANGKEP - {0xA9D0, 0xA9D9, prNU, gcNd}, // [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE - {0xA9DE, 0xA9DF, prAL, gcPo}, // [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN - {0xA9E0, 0xA9E4, prSA, gcLo}, // [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA - {0xA9E5, 0xA9E5, prSA, gcMn}, // MYANMAR SIGN SHAN SAW - {0xA9E6, 0xA9E6, prSA, gcLm}, // MYANMAR MODIFIER LETTER SHAN REDUPLICATION - {0xA9E7, 0xA9EF, prSA, gcLo}, // [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA - {0xA9F0, 0xA9F9, prNU, gcNd}, // [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE - {0xA9FA, 0xA9FE, prSA, gcLo}, // [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA - {0xAA00, 0xAA28, prAL, gcLo}, // [41] CHAM LETTER A..CHAM LETTER HA - {0xAA29, 0xAA2E, prCM, gcMn}, // [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE - {0xAA2F, 0xAA30, prCM, gcMc}, // [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI - {0xAA31, 0xAA32, prCM, gcMn}, // [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE - {0xAA33, 0xAA34, prCM, gcMc}, // [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA - {0xAA35, 0xAA36, prCM, gcMn}, // [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA - {0xAA40, 0xAA42, prAL, gcLo}, // [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG - {0xAA43, 0xAA43, prCM, gcMn}, // CHAM CONSONANT SIGN FINAL NG - {0xAA44, 0xAA4B, prAL, gcLo}, // [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS - {0xAA4C, 0xAA4C, prCM, gcMn}, // CHAM CONSONANT SIGN FINAL M - {0xAA4D, 0xAA4D, prCM, gcMc}, // CHAM CONSONANT SIGN FINAL H - {0xAA50, 0xAA59, prNU, gcNd}, // [10] CHAM DIGIT ZERO..CHAM DIGIT NINE - {0xAA5C, 0xAA5C, prAL, gcPo}, // CHAM PUNCTUATION SPIRAL - {0xAA5D, 0xAA5F, prBA, gcPo}, // [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA - {0xAA60, 0xAA6F, prSA, gcLo}, // [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA - {0xAA70, 0xAA70, prSA, gcLm}, // MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION - {0xAA71, 0xAA76, prSA, gcLo}, // [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM - {0xAA77, 0xAA79, prSA, gcSo}, // [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO - {0xAA7A, 0xAA7A, prSA, gcLo}, // MYANMAR LETTER AITON RA - {0xAA7B, 0xAA7B, prSA, gcMc}, // MYANMAR SIGN PAO KAREN TONE - {0xAA7C, 0xAA7C, prSA, gcMn}, // MYANMAR SIGN TAI LAING TONE-2 - {0xAA7D, 0xAA7D, prSA, gcMc}, // MYANMAR SIGN TAI LAING TONE-5 - {0xAA7E, 0xAA7F, prSA, gcLo}, // [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA - {0xAA80, 0xAAAF, prSA, gcLo}, // [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O - {0xAAB0, 0xAAB0, prSA, gcMn}, // TAI VIET MAI KANG - {0xAAB1, 0xAAB1, prSA, gcLo}, // TAI VIET VOWEL AA - {0xAAB2, 0xAAB4, prSA, gcMn}, // [3] TAI VIET VOWEL I..TAI VIET VOWEL U - {0xAAB5, 0xAAB6, prSA, gcLo}, // [2] TAI VIET VOWEL E..TAI VIET VOWEL O - {0xAAB7, 0xAAB8, prSA, gcMn}, // [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA - {0xAAB9, 0xAABD, prSA, gcLo}, // [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN - {0xAABE, 0xAABF, prSA, gcMn}, // [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK - {0xAAC0, 0xAAC0, prSA, gcLo}, // TAI VIET TONE MAI NUENG - {0xAAC1, 0xAAC1, prSA, gcMn}, // TAI VIET TONE MAI THO - {0xAAC2, 0xAAC2, prSA, gcLo}, // TAI VIET TONE MAI SONG - {0xAADB, 0xAADC, prSA, gcLo}, // [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG - {0xAADD, 0xAADD, prSA, gcLm}, // TAI VIET SYMBOL SAM - {0xAADE, 0xAADF, prSA, gcPo}, // [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI - {0xAAE0, 0xAAEA, prAL, gcLo}, // [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA - {0xAAEB, 0xAAEB, prCM, gcMc}, // MEETEI MAYEK VOWEL SIGN II - {0xAAEC, 0xAAED, prCM, gcMn}, // [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI - {0xAAEE, 0xAAEF, prCM, gcMc}, // [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU - {0xAAF0, 0xAAF1, prBA, gcPo}, // [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM - {0xAAF2, 0xAAF2, prAL, gcLo}, // MEETEI MAYEK ANJI - {0xAAF3, 0xAAF4, prAL, gcLm}, // [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK - {0xAAF5, 0xAAF5, prCM, gcMc}, // MEETEI MAYEK VOWEL SIGN VISARGA - {0xAAF6, 0xAAF6, prCM, gcMn}, // MEETEI MAYEK VIRAMA - {0xAB01, 0xAB06, prAL, gcLo}, // [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO - {0xAB09, 0xAB0E, prAL, gcLo}, // [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO - {0xAB11, 0xAB16, prAL, gcLo}, // [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO - {0xAB20, 0xAB26, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO - {0xAB28, 0xAB2E, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO - {0xAB30, 0xAB5A, prAL, gcLl}, // [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG - {0xAB5B, 0xAB5B, prAL, gcSk}, // MODIFIER BREVE WITH INVERTED BREVE - {0xAB5C, 0xAB5F, prAL, gcLm}, // [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK - {0xAB60, 0xAB68, prAL, gcLl}, // [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE - {0xAB69, 0xAB69, prAL, gcLm}, // MODIFIER LETTER SMALL TURNED W - {0xAB6A, 0xAB6B, prAL, gcSk}, // [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK - {0xAB70, 0xABBF, prAL, gcLl}, // [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA - {0xABC0, 0xABE2, prAL, gcLo}, // [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM - {0xABE3, 0xABE4, prCM, gcMc}, // [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP - {0xABE5, 0xABE5, prCM, gcMn}, // MEETEI MAYEK VOWEL SIGN ANAP - {0xABE6, 0xABE7, prCM, gcMc}, // [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP - {0xABE8, 0xABE8, prCM, gcMn}, // MEETEI MAYEK VOWEL SIGN UNAP - {0xABE9, 0xABEA, prCM, gcMc}, // [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG - {0xABEB, 0xABEB, prBA, gcPo}, // MEETEI MAYEK CHEIKHEI - {0xABEC, 0xABEC, prCM, gcMc}, // MEETEI MAYEK LUM IYEK - {0xABED, 0xABED, prCM, gcMn}, // MEETEI MAYEK APUN IYEK - {0xABF0, 0xABF9, prNU, gcNd}, // [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE - {0xAC00, 0xAC00, prH2, gcLo}, // HANGUL SYLLABLE GA - {0xAC01, 0xAC1B, prH3, gcLo}, // [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH - {0xAC1C, 0xAC1C, prH2, gcLo}, // HANGUL SYLLABLE GAE - {0xAC1D, 0xAC37, prH3, gcLo}, // [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH - {0xAC38, 0xAC38, prH2, gcLo}, // HANGUL SYLLABLE GYA - {0xAC39, 0xAC53, prH3, gcLo}, // [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH - {0xAC54, 0xAC54, prH2, gcLo}, // HANGUL SYLLABLE GYAE - {0xAC55, 0xAC6F, prH3, gcLo}, // [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH - {0xAC70, 0xAC70, prH2, gcLo}, // HANGUL SYLLABLE GEO - {0xAC71, 0xAC8B, prH3, gcLo}, // [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH - {0xAC8C, 0xAC8C, prH2, gcLo}, // HANGUL SYLLABLE GE - {0xAC8D, 0xACA7, prH3, gcLo}, // [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH - {0xACA8, 0xACA8, prH2, gcLo}, // HANGUL SYLLABLE GYEO - {0xACA9, 0xACC3, prH3, gcLo}, // [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH - {0xACC4, 0xACC4, prH2, gcLo}, // HANGUL SYLLABLE GYE - {0xACC5, 0xACDF, prH3, gcLo}, // [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH - {0xACE0, 0xACE0, prH2, gcLo}, // HANGUL SYLLABLE GO - {0xACE1, 0xACFB, prH3, gcLo}, // [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH - {0xACFC, 0xACFC, prH2, gcLo}, // HANGUL SYLLABLE GWA - {0xACFD, 0xAD17, prH3, gcLo}, // [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH - {0xAD18, 0xAD18, prH2, gcLo}, // HANGUL SYLLABLE GWAE - {0xAD19, 0xAD33, prH3, gcLo}, // [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH - {0xAD34, 0xAD34, prH2, gcLo}, // HANGUL SYLLABLE GOE - {0xAD35, 0xAD4F, prH3, gcLo}, // [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH - {0xAD50, 0xAD50, prH2, gcLo}, // HANGUL SYLLABLE GYO - {0xAD51, 0xAD6B, prH3, gcLo}, // [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH - {0xAD6C, 0xAD6C, prH2, gcLo}, // HANGUL SYLLABLE GU - {0xAD6D, 0xAD87, prH3, gcLo}, // [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH - {0xAD88, 0xAD88, prH2, gcLo}, // HANGUL SYLLABLE GWEO - {0xAD89, 0xADA3, prH3, gcLo}, // [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH - {0xADA4, 0xADA4, prH2, gcLo}, // HANGUL SYLLABLE GWE - {0xADA5, 0xADBF, prH3, gcLo}, // [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH - {0xADC0, 0xADC0, prH2, gcLo}, // HANGUL SYLLABLE GWI - {0xADC1, 0xADDB, prH3, gcLo}, // [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH - {0xADDC, 0xADDC, prH2, gcLo}, // HANGUL SYLLABLE GYU - {0xADDD, 0xADF7, prH3, gcLo}, // [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH - {0xADF8, 0xADF8, prH2, gcLo}, // HANGUL SYLLABLE GEU - {0xADF9, 0xAE13, prH3, gcLo}, // [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH - {0xAE14, 0xAE14, prH2, gcLo}, // HANGUL SYLLABLE GYI - {0xAE15, 0xAE2F, prH3, gcLo}, // [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH - {0xAE30, 0xAE30, prH2, gcLo}, // HANGUL SYLLABLE GI - {0xAE31, 0xAE4B, prH3, gcLo}, // [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH - {0xAE4C, 0xAE4C, prH2, gcLo}, // HANGUL SYLLABLE GGA - {0xAE4D, 0xAE67, prH3, gcLo}, // [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH - {0xAE68, 0xAE68, prH2, gcLo}, // HANGUL SYLLABLE GGAE - {0xAE69, 0xAE83, prH3, gcLo}, // [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH - {0xAE84, 0xAE84, prH2, gcLo}, // HANGUL SYLLABLE GGYA - {0xAE85, 0xAE9F, prH3, gcLo}, // [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH - {0xAEA0, 0xAEA0, prH2, gcLo}, // HANGUL SYLLABLE GGYAE - {0xAEA1, 0xAEBB, prH3, gcLo}, // [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH - {0xAEBC, 0xAEBC, prH2, gcLo}, // HANGUL SYLLABLE GGEO - {0xAEBD, 0xAED7, prH3, gcLo}, // [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH - {0xAED8, 0xAED8, prH2, gcLo}, // HANGUL SYLLABLE GGE - {0xAED9, 0xAEF3, prH3, gcLo}, // [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH - {0xAEF4, 0xAEF4, prH2, gcLo}, // HANGUL SYLLABLE GGYEO - {0xAEF5, 0xAF0F, prH3, gcLo}, // [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH - {0xAF10, 0xAF10, prH2, gcLo}, // HANGUL SYLLABLE GGYE - {0xAF11, 0xAF2B, prH3, gcLo}, // [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH - {0xAF2C, 0xAF2C, prH2, gcLo}, // HANGUL SYLLABLE GGO - {0xAF2D, 0xAF47, prH3, gcLo}, // [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH - {0xAF48, 0xAF48, prH2, gcLo}, // HANGUL SYLLABLE GGWA - {0xAF49, 0xAF63, prH3, gcLo}, // [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH - {0xAF64, 0xAF64, prH2, gcLo}, // HANGUL SYLLABLE GGWAE - {0xAF65, 0xAF7F, prH3, gcLo}, // [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH - {0xAF80, 0xAF80, prH2, gcLo}, // HANGUL SYLLABLE GGOE - {0xAF81, 0xAF9B, prH3, gcLo}, // [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH - {0xAF9C, 0xAF9C, prH2, gcLo}, // HANGUL SYLLABLE GGYO - {0xAF9D, 0xAFB7, prH3, gcLo}, // [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH - {0xAFB8, 0xAFB8, prH2, gcLo}, // HANGUL SYLLABLE GGU - {0xAFB9, 0xAFD3, prH3, gcLo}, // [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH - {0xAFD4, 0xAFD4, prH2, gcLo}, // HANGUL SYLLABLE GGWEO - {0xAFD5, 0xAFEF, prH3, gcLo}, // [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH - {0xAFF0, 0xAFF0, prH2, gcLo}, // HANGUL SYLLABLE GGWE - {0xAFF1, 0xB00B, prH3, gcLo}, // [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH - {0xB00C, 0xB00C, prH2, gcLo}, // HANGUL SYLLABLE GGWI - {0xB00D, 0xB027, prH3, gcLo}, // [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH - {0xB028, 0xB028, prH2, gcLo}, // HANGUL SYLLABLE GGYU - {0xB029, 0xB043, prH3, gcLo}, // [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH - {0xB044, 0xB044, prH2, gcLo}, // HANGUL SYLLABLE GGEU - {0xB045, 0xB05F, prH3, gcLo}, // [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH - {0xB060, 0xB060, prH2, gcLo}, // HANGUL SYLLABLE GGYI - {0xB061, 0xB07B, prH3, gcLo}, // [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH - {0xB07C, 0xB07C, prH2, gcLo}, // HANGUL SYLLABLE GGI - {0xB07D, 0xB097, prH3, gcLo}, // [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH - {0xB098, 0xB098, prH2, gcLo}, // HANGUL SYLLABLE NA - {0xB099, 0xB0B3, prH3, gcLo}, // [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH - {0xB0B4, 0xB0B4, prH2, gcLo}, // HANGUL SYLLABLE NAE - {0xB0B5, 0xB0CF, prH3, gcLo}, // [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH - {0xB0D0, 0xB0D0, prH2, gcLo}, // HANGUL SYLLABLE NYA - {0xB0D1, 0xB0EB, prH3, gcLo}, // [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH - {0xB0EC, 0xB0EC, prH2, gcLo}, // HANGUL SYLLABLE NYAE - {0xB0ED, 0xB107, prH3, gcLo}, // [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH - {0xB108, 0xB108, prH2, gcLo}, // HANGUL SYLLABLE NEO - {0xB109, 0xB123, prH3, gcLo}, // [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH - {0xB124, 0xB124, prH2, gcLo}, // HANGUL SYLLABLE NE - {0xB125, 0xB13F, prH3, gcLo}, // [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH - {0xB140, 0xB140, prH2, gcLo}, // HANGUL SYLLABLE NYEO - {0xB141, 0xB15B, prH3, gcLo}, // [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH - {0xB15C, 0xB15C, prH2, gcLo}, // HANGUL SYLLABLE NYE - {0xB15D, 0xB177, prH3, gcLo}, // [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH - {0xB178, 0xB178, prH2, gcLo}, // HANGUL SYLLABLE NO - {0xB179, 0xB193, prH3, gcLo}, // [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH - {0xB194, 0xB194, prH2, gcLo}, // HANGUL SYLLABLE NWA - {0xB195, 0xB1AF, prH3, gcLo}, // [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH - {0xB1B0, 0xB1B0, prH2, gcLo}, // HANGUL SYLLABLE NWAE - {0xB1B1, 0xB1CB, prH3, gcLo}, // [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH - {0xB1CC, 0xB1CC, prH2, gcLo}, // HANGUL SYLLABLE NOE - {0xB1CD, 0xB1E7, prH3, gcLo}, // [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH - {0xB1E8, 0xB1E8, prH2, gcLo}, // HANGUL SYLLABLE NYO - {0xB1E9, 0xB203, prH3, gcLo}, // [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH - {0xB204, 0xB204, prH2, gcLo}, // HANGUL SYLLABLE NU - {0xB205, 0xB21F, prH3, gcLo}, // [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH - {0xB220, 0xB220, prH2, gcLo}, // HANGUL SYLLABLE NWEO - {0xB221, 0xB23B, prH3, gcLo}, // [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH - {0xB23C, 0xB23C, prH2, gcLo}, // HANGUL SYLLABLE NWE - {0xB23D, 0xB257, prH3, gcLo}, // [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH - {0xB258, 0xB258, prH2, gcLo}, // HANGUL SYLLABLE NWI - {0xB259, 0xB273, prH3, gcLo}, // [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH - {0xB274, 0xB274, prH2, gcLo}, // HANGUL SYLLABLE NYU - {0xB275, 0xB28F, prH3, gcLo}, // [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH - {0xB290, 0xB290, prH2, gcLo}, // HANGUL SYLLABLE NEU - {0xB291, 0xB2AB, prH3, gcLo}, // [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH - {0xB2AC, 0xB2AC, prH2, gcLo}, // HANGUL SYLLABLE NYI - {0xB2AD, 0xB2C7, prH3, gcLo}, // [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH - {0xB2C8, 0xB2C8, prH2, gcLo}, // HANGUL SYLLABLE NI - {0xB2C9, 0xB2E3, prH3, gcLo}, // [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH - {0xB2E4, 0xB2E4, prH2, gcLo}, // HANGUL SYLLABLE DA - {0xB2E5, 0xB2FF, prH3, gcLo}, // [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH - {0xB300, 0xB300, prH2, gcLo}, // HANGUL SYLLABLE DAE - {0xB301, 0xB31B, prH3, gcLo}, // [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH - {0xB31C, 0xB31C, prH2, gcLo}, // HANGUL SYLLABLE DYA - {0xB31D, 0xB337, prH3, gcLo}, // [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH - {0xB338, 0xB338, prH2, gcLo}, // HANGUL SYLLABLE DYAE - {0xB339, 0xB353, prH3, gcLo}, // [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH - {0xB354, 0xB354, prH2, gcLo}, // HANGUL SYLLABLE DEO - {0xB355, 0xB36F, prH3, gcLo}, // [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH - {0xB370, 0xB370, prH2, gcLo}, // HANGUL SYLLABLE DE - {0xB371, 0xB38B, prH3, gcLo}, // [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH - {0xB38C, 0xB38C, prH2, gcLo}, // HANGUL SYLLABLE DYEO - {0xB38D, 0xB3A7, prH3, gcLo}, // [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH - {0xB3A8, 0xB3A8, prH2, gcLo}, // HANGUL SYLLABLE DYE - {0xB3A9, 0xB3C3, prH3, gcLo}, // [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH - {0xB3C4, 0xB3C4, prH2, gcLo}, // HANGUL SYLLABLE DO - {0xB3C5, 0xB3DF, prH3, gcLo}, // [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH - {0xB3E0, 0xB3E0, prH2, gcLo}, // HANGUL SYLLABLE DWA - {0xB3E1, 0xB3FB, prH3, gcLo}, // [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH - {0xB3FC, 0xB3FC, prH2, gcLo}, // HANGUL SYLLABLE DWAE - {0xB3FD, 0xB417, prH3, gcLo}, // [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH - {0xB418, 0xB418, prH2, gcLo}, // HANGUL SYLLABLE DOE - {0xB419, 0xB433, prH3, gcLo}, // [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH - {0xB434, 0xB434, prH2, gcLo}, // HANGUL SYLLABLE DYO - {0xB435, 0xB44F, prH3, gcLo}, // [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH - {0xB450, 0xB450, prH2, gcLo}, // HANGUL SYLLABLE DU - {0xB451, 0xB46B, prH3, gcLo}, // [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH - {0xB46C, 0xB46C, prH2, gcLo}, // HANGUL SYLLABLE DWEO - {0xB46D, 0xB487, prH3, gcLo}, // [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH - {0xB488, 0xB488, prH2, gcLo}, // HANGUL SYLLABLE DWE - {0xB489, 0xB4A3, prH3, gcLo}, // [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH - {0xB4A4, 0xB4A4, prH2, gcLo}, // HANGUL SYLLABLE DWI - {0xB4A5, 0xB4BF, prH3, gcLo}, // [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH - {0xB4C0, 0xB4C0, prH2, gcLo}, // HANGUL SYLLABLE DYU - {0xB4C1, 0xB4DB, prH3, gcLo}, // [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH - {0xB4DC, 0xB4DC, prH2, gcLo}, // HANGUL SYLLABLE DEU - {0xB4DD, 0xB4F7, prH3, gcLo}, // [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH - {0xB4F8, 0xB4F8, prH2, gcLo}, // HANGUL SYLLABLE DYI - {0xB4F9, 0xB513, prH3, gcLo}, // [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH - {0xB514, 0xB514, prH2, gcLo}, // HANGUL SYLLABLE DI - {0xB515, 0xB52F, prH3, gcLo}, // [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH - {0xB530, 0xB530, prH2, gcLo}, // HANGUL SYLLABLE DDA - {0xB531, 0xB54B, prH3, gcLo}, // [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH - {0xB54C, 0xB54C, prH2, gcLo}, // HANGUL SYLLABLE DDAE - {0xB54D, 0xB567, prH3, gcLo}, // [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH - {0xB568, 0xB568, prH2, gcLo}, // HANGUL SYLLABLE DDYA - {0xB569, 0xB583, prH3, gcLo}, // [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH - {0xB584, 0xB584, prH2, gcLo}, // HANGUL SYLLABLE DDYAE - {0xB585, 0xB59F, prH3, gcLo}, // [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH - {0xB5A0, 0xB5A0, prH2, gcLo}, // HANGUL SYLLABLE DDEO - {0xB5A1, 0xB5BB, prH3, gcLo}, // [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH - {0xB5BC, 0xB5BC, prH2, gcLo}, // HANGUL SYLLABLE DDE - {0xB5BD, 0xB5D7, prH3, gcLo}, // [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH - {0xB5D8, 0xB5D8, prH2, gcLo}, // HANGUL SYLLABLE DDYEO - {0xB5D9, 0xB5F3, prH3, gcLo}, // [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH - {0xB5F4, 0xB5F4, prH2, gcLo}, // HANGUL SYLLABLE DDYE - {0xB5F5, 0xB60F, prH3, gcLo}, // [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH - {0xB610, 0xB610, prH2, gcLo}, // HANGUL SYLLABLE DDO - {0xB611, 0xB62B, prH3, gcLo}, // [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH - {0xB62C, 0xB62C, prH2, gcLo}, // HANGUL SYLLABLE DDWA - {0xB62D, 0xB647, prH3, gcLo}, // [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH - {0xB648, 0xB648, prH2, gcLo}, // HANGUL SYLLABLE DDWAE - {0xB649, 0xB663, prH3, gcLo}, // [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH - {0xB664, 0xB664, prH2, gcLo}, // HANGUL SYLLABLE DDOE - {0xB665, 0xB67F, prH3, gcLo}, // [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH - {0xB680, 0xB680, prH2, gcLo}, // HANGUL SYLLABLE DDYO - {0xB681, 0xB69B, prH3, gcLo}, // [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH - {0xB69C, 0xB69C, prH2, gcLo}, // HANGUL SYLLABLE DDU - {0xB69D, 0xB6B7, prH3, gcLo}, // [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH - {0xB6B8, 0xB6B8, prH2, gcLo}, // HANGUL SYLLABLE DDWEO - {0xB6B9, 0xB6D3, prH3, gcLo}, // [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH - {0xB6D4, 0xB6D4, prH2, gcLo}, // HANGUL SYLLABLE DDWE - {0xB6D5, 0xB6EF, prH3, gcLo}, // [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH - {0xB6F0, 0xB6F0, prH2, gcLo}, // HANGUL SYLLABLE DDWI - {0xB6F1, 0xB70B, prH3, gcLo}, // [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH - {0xB70C, 0xB70C, prH2, gcLo}, // HANGUL SYLLABLE DDYU - {0xB70D, 0xB727, prH3, gcLo}, // [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH - {0xB728, 0xB728, prH2, gcLo}, // HANGUL SYLLABLE DDEU - {0xB729, 0xB743, prH3, gcLo}, // [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH - {0xB744, 0xB744, prH2, gcLo}, // HANGUL SYLLABLE DDYI - {0xB745, 0xB75F, prH3, gcLo}, // [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH - {0xB760, 0xB760, prH2, gcLo}, // HANGUL SYLLABLE DDI - {0xB761, 0xB77B, prH3, gcLo}, // [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH - {0xB77C, 0xB77C, prH2, gcLo}, // HANGUL SYLLABLE RA - {0xB77D, 0xB797, prH3, gcLo}, // [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH - {0xB798, 0xB798, prH2, gcLo}, // HANGUL SYLLABLE RAE - {0xB799, 0xB7B3, prH3, gcLo}, // [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH - {0xB7B4, 0xB7B4, prH2, gcLo}, // HANGUL SYLLABLE RYA - {0xB7B5, 0xB7CF, prH3, gcLo}, // [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH - {0xB7D0, 0xB7D0, prH2, gcLo}, // HANGUL SYLLABLE RYAE - {0xB7D1, 0xB7EB, prH3, gcLo}, // [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH - {0xB7EC, 0xB7EC, prH2, gcLo}, // HANGUL SYLLABLE REO - {0xB7ED, 0xB807, prH3, gcLo}, // [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH - {0xB808, 0xB808, prH2, gcLo}, // HANGUL SYLLABLE RE - {0xB809, 0xB823, prH3, gcLo}, // [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH - {0xB824, 0xB824, prH2, gcLo}, // HANGUL SYLLABLE RYEO - {0xB825, 0xB83F, prH3, gcLo}, // [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH - {0xB840, 0xB840, prH2, gcLo}, // HANGUL SYLLABLE RYE - {0xB841, 0xB85B, prH3, gcLo}, // [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH - {0xB85C, 0xB85C, prH2, gcLo}, // HANGUL SYLLABLE RO - {0xB85D, 0xB877, prH3, gcLo}, // [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH - {0xB878, 0xB878, prH2, gcLo}, // HANGUL SYLLABLE RWA - {0xB879, 0xB893, prH3, gcLo}, // [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH - {0xB894, 0xB894, prH2, gcLo}, // HANGUL SYLLABLE RWAE - {0xB895, 0xB8AF, prH3, gcLo}, // [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH - {0xB8B0, 0xB8B0, prH2, gcLo}, // HANGUL SYLLABLE ROE - {0xB8B1, 0xB8CB, prH3, gcLo}, // [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH - {0xB8CC, 0xB8CC, prH2, gcLo}, // HANGUL SYLLABLE RYO - {0xB8CD, 0xB8E7, prH3, gcLo}, // [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH - {0xB8E8, 0xB8E8, prH2, gcLo}, // HANGUL SYLLABLE RU - {0xB8E9, 0xB903, prH3, gcLo}, // [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH - {0xB904, 0xB904, prH2, gcLo}, // HANGUL SYLLABLE RWEO - {0xB905, 0xB91F, prH3, gcLo}, // [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH - {0xB920, 0xB920, prH2, gcLo}, // HANGUL SYLLABLE RWE - {0xB921, 0xB93B, prH3, gcLo}, // [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH - {0xB93C, 0xB93C, prH2, gcLo}, // HANGUL SYLLABLE RWI - {0xB93D, 0xB957, prH3, gcLo}, // [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH - {0xB958, 0xB958, prH2, gcLo}, // HANGUL SYLLABLE RYU - {0xB959, 0xB973, prH3, gcLo}, // [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH - {0xB974, 0xB974, prH2, gcLo}, // HANGUL SYLLABLE REU - {0xB975, 0xB98F, prH3, gcLo}, // [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH - {0xB990, 0xB990, prH2, gcLo}, // HANGUL SYLLABLE RYI - {0xB991, 0xB9AB, prH3, gcLo}, // [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH - {0xB9AC, 0xB9AC, prH2, gcLo}, // HANGUL SYLLABLE RI - {0xB9AD, 0xB9C7, prH3, gcLo}, // [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH - {0xB9C8, 0xB9C8, prH2, gcLo}, // HANGUL SYLLABLE MA - {0xB9C9, 0xB9E3, prH3, gcLo}, // [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH - {0xB9E4, 0xB9E4, prH2, gcLo}, // HANGUL SYLLABLE MAE - {0xB9E5, 0xB9FF, prH3, gcLo}, // [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH - {0xBA00, 0xBA00, prH2, gcLo}, // HANGUL SYLLABLE MYA - {0xBA01, 0xBA1B, prH3, gcLo}, // [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH - {0xBA1C, 0xBA1C, prH2, gcLo}, // HANGUL SYLLABLE MYAE - {0xBA1D, 0xBA37, prH3, gcLo}, // [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH - {0xBA38, 0xBA38, prH2, gcLo}, // HANGUL SYLLABLE MEO - {0xBA39, 0xBA53, prH3, gcLo}, // [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH - {0xBA54, 0xBA54, prH2, gcLo}, // HANGUL SYLLABLE ME - {0xBA55, 0xBA6F, prH3, gcLo}, // [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH - {0xBA70, 0xBA70, prH2, gcLo}, // HANGUL SYLLABLE MYEO - {0xBA71, 0xBA8B, prH3, gcLo}, // [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH - {0xBA8C, 0xBA8C, prH2, gcLo}, // HANGUL SYLLABLE MYE - {0xBA8D, 0xBAA7, prH3, gcLo}, // [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH - {0xBAA8, 0xBAA8, prH2, gcLo}, // HANGUL SYLLABLE MO - {0xBAA9, 0xBAC3, prH3, gcLo}, // [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH - {0xBAC4, 0xBAC4, prH2, gcLo}, // HANGUL SYLLABLE MWA - {0xBAC5, 0xBADF, prH3, gcLo}, // [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH - {0xBAE0, 0xBAE0, prH2, gcLo}, // HANGUL SYLLABLE MWAE - {0xBAE1, 0xBAFB, prH3, gcLo}, // [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH - {0xBAFC, 0xBAFC, prH2, gcLo}, // HANGUL SYLLABLE MOE - {0xBAFD, 0xBB17, prH3, gcLo}, // [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH - {0xBB18, 0xBB18, prH2, gcLo}, // HANGUL SYLLABLE MYO - {0xBB19, 0xBB33, prH3, gcLo}, // [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH - {0xBB34, 0xBB34, prH2, gcLo}, // HANGUL SYLLABLE MU - {0xBB35, 0xBB4F, prH3, gcLo}, // [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH - {0xBB50, 0xBB50, prH2, gcLo}, // HANGUL SYLLABLE MWEO - {0xBB51, 0xBB6B, prH3, gcLo}, // [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH - {0xBB6C, 0xBB6C, prH2, gcLo}, // HANGUL SYLLABLE MWE - {0xBB6D, 0xBB87, prH3, gcLo}, // [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH - {0xBB88, 0xBB88, prH2, gcLo}, // HANGUL SYLLABLE MWI - {0xBB89, 0xBBA3, prH3, gcLo}, // [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH - {0xBBA4, 0xBBA4, prH2, gcLo}, // HANGUL SYLLABLE MYU - {0xBBA5, 0xBBBF, prH3, gcLo}, // [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH - {0xBBC0, 0xBBC0, prH2, gcLo}, // HANGUL SYLLABLE MEU - {0xBBC1, 0xBBDB, prH3, gcLo}, // [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH - {0xBBDC, 0xBBDC, prH2, gcLo}, // HANGUL SYLLABLE MYI - {0xBBDD, 0xBBF7, prH3, gcLo}, // [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH - {0xBBF8, 0xBBF8, prH2, gcLo}, // HANGUL SYLLABLE MI - {0xBBF9, 0xBC13, prH3, gcLo}, // [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH - {0xBC14, 0xBC14, prH2, gcLo}, // HANGUL SYLLABLE BA - {0xBC15, 0xBC2F, prH3, gcLo}, // [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH - {0xBC30, 0xBC30, prH2, gcLo}, // HANGUL SYLLABLE BAE - {0xBC31, 0xBC4B, prH3, gcLo}, // [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH - {0xBC4C, 0xBC4C, prH2, gcLo}, // HANGUL SYLLABLE BYA - {0xBC4D, 0xBC67, prH3, gcLo}, // [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH - {0xBC68, 0xBC68, prH2, gcLo}, // HANGUL SYLLABLE BYAE - {0xBC69, 0xBC83, prH3, gcLo}, // [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH - {0xBC84, 0xBC84, prH2, gcLo}, // HANGUL SYLLABLE BEO - {0xBC85, 0xBC9F, prH3, gcLo}, // [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH - {0xBCA0, 0xBCA0, prH2, gcLo}, // HANGUL SYLLABLE BE - {0xBCA1, 0xBCBB, prH3, gcLo}, // [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH - {0xBCBC, 0xBCBC, prH2, gcLo}, // HANGUL SYLLABLE BYEO - {0xBCBD, 0xBCD7, prH3, gcLo}, // [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH - {0xBCD8, 0xBCD8, prH2, gcLo}, // HANGUL SYLLABLE BYE - {0xBCD9, 0xBCF3, prH3, gcLo}, // [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH - {0xBCF4, 0xBCF4, prH2, gcLo}, // HANGUL SYLLABLE BO - {0xBCF5, 0xBD0F, prH3, gcLo}, // [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH - {0xBD10, 0xBD10, prH2, gcLo}, // HANGUL SYLLABLE BWA - {0xBD11, 0xBD2B, prH3, gcLo}, // [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH - {0xBD2C, 0xBD2C, prH2, gcLo}, // HANGUL SYLLABLE BWAE - {0xBD2D, 0xBD47, prH3, gcLo}, // [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH - {0xBD48, 0xBD48, prH2, gcLo}, // HANGUL SYLLABLE BOE - {0xBD49, 0xBD63, prH3, gcLo}, // [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH - {0xBD64, 0xBD64, prH2, gcLo}, // HANGUL SYLLABLE BYO - {0xBD65, 0xBD7F, prH3, gcLo}, // [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH - {0xBD80, 0xBD80, prH2, gcLo}, // HANGUL SYLLABLE BU - {0xBD81, 0xBD9B, prH3, gcLo}, // [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH - {0xBD9C, 0xBD9C, prH2, gcLo}, // HANGUL SYLLABLE BWEO - {0xBD9D, 0xBDB7, prH3, gcLo}, // [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH - {0xBDB8, 0xBDB8, prH2, gcLo}, // HANGUL SYLLABLE BWE - {0xBDB9, 0xBDD3, prH3, gcLo}, // [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH - {0xBDD4, 0xBDD4, prH2, gcLo}, // HANGUL SYLLABLE BWI - {0xBDD5, 0xBDEF, prH3, gcLo}, // [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH - {0xBDF0, 0xBDF0, prH2, gcLo}, // HANGUL SYLLABLE BYU - {0xBDF1, 0xBE0B, prH3, gcLo}, // [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH - {0xBE0C, 0xBE0C, prH2, gcLo}, // HANGUL SYLLABLE BEU - {0xBE0D, 0xBE27, prH3, gcLo}, // [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH - {0xBE28, 0xBE28, prH2, gcLo}, // HANGUL SYLLABLE BYI - {0xBE29, 0xBE43, prH3, gcLo}, // [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH - {0xBE44, 0xBE44, prH2, gcLo}, // HANGUL SYLLABLE BI - {0xBE45, 0xBE5F, prH3, gcLo}, // [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH - {0xBE60, 0xBE60, prH2, gcLo}, // HANGUL SYLLABLE BBA - {0xBE61, 0xBE7B, prH3, gcLo}, // [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH - {0xBE7C, 0xBE7C, prH2, gcLo}, // HANGUL SYLLABLE BBAE - {0xBE7D, 0xBE97, prH3, gcLo}, // [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH - {0xBE98, 0xBE98, prH2, gcLo}, // HANGUL SYLLABLE BBYA - {0xBE99, 0xBEB3, prH3, gcLo}, // [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH - {0xBEB4, 0xBEB4, prH2, gcLo}, // HANGUL SYLLABLE BBYAE - {0xBEB5, 0xBECF, prH3, gcLo}, // [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH - {0xBED0, 0xBED0, prH2, gcLo}, // HANGUL SYLLABLE BBEO - {0xBED1, 0xBEEB, prH3, gcLo}, // [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH - {0xBEEC, 0xBEEC, prH2, gcLo}, // HANGUL SYLLABLE BBE - {0xBEED, 0xBF07, prH3, gcLo}, // [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH - {0xBF08, 0xBF08, prH2, gcLo}, // HANGUL SYLLABLE BBYEO - {0xBF09, 0xBF23, prH3, gcLo}, // [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH - {0xBF24, 0xBF24, prH2, gcLo}, // HANGUL SYLLABLE BBYE - {0xBF25, 0xBF3F, prH3, gcLo}, // [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH - {0xBF40, 0xBF40, prH2, gcLo}, // HANGUL SYLLABLE BBO - {0xBF41, 0xBF5B, prH3, gcLo}, // [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH - {0xBF5C, 0xBF5C, prH2, gcLo}, // HANGUL SYLLABLE BBWA - {0xBF5D, 0xBF77, prH3, gcLo}, // [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH - {0xBF78, 0xBF78, prH2, gcLo}, // HANGUL SYLLABLE BBWAE - {0xBF79, 0xBF93, prH3, gcLo}, // [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH - {0xBF94, 0xBF94, prH2, gcLo}, // HANGUL SYLLABLE BBOE - {0xBF95, 0xBFAF, prH3, gcLo}, // [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH - {0xBFB0, 0xBFB0, prH2, gcLo}, // HANGUL SYLLABLE BBYO - {0xBFB1, 0xBFCB, prH3, gcLo}, // [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH - {0xBFCC, 0xBFCC, prH2, gcLo}, // HANGUL SYLLABLE BBU - {0xBFCD, 0xBFE7, prH3, gcLo}, // [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH - {0xBFE8, 0xBFE8, prH2, gcLo}, // HANGUL SYLLABLE BBWEO - {0xBFE9, 0xC003, prH3, gcLo}, // [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH - {0xC004, 0xC004, prH2, gcLo}, // HANGUL SYLLABLE BBWE - {0xC005, 0xC01F, prH3, gcLo}, // [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH - {0xC020, 0xC020, prH2, gcLo}, // HANGUL SYLLABLE BBWI - {0xC021, 0xC03B, prH3, gcLo}, // [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH - {0xC03C, 0xC03C, prH2, gcLo}, // HANGUL SYLLABLE BBYU - {0xC03D, 0xC057, prH3, gcLo}, // [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH - {0xC058, 0xC058, prH2, gcLo}, // HANGUL SYLLABLE BBEU - {0xC059, 0xC073, prH3, gcLo}, // [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH - {0xC074, 0xC074, prH2, gcLo}, // HANGUL SYLLABLE BBYI - {0xC075, 0xC08F, prH3, gcLo}, // [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH - {0xC090, 0xC090, prH2, gcLo}, // HANGUL SYLLABLE BBI - {0xC091, 0xC0AB, prH3, gcLo}, // [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH - {0xC0AC, 0xC0AC, prH2, gcLo}, // HANGUL SYLLABLE SA - {0xC0AD, 0xC0C7, prH3, gcLo}, // [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH - {0xC0C8, 0xC0C8, prH2, gcLo}, // HANGUL SYLLABLE SAE - {0xC0C9, 0xC0E3, prH3, gcLo}, // [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH - {0xC0E4, 0xC0E4, prH2, gcLo}, // HANGUL SYLLABLE SYA - {0xC0E5, 0xC0FF, prH3, gcLo}, // [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH - {0xC100, 0xC100, prH2, gcLo}, // HANGUL SYLLABLE SYAE - {0xC101, 0xC11B, prH3, gcLo}, // [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH - {0xC11C, 0xC11C, prH2, gcLo}, // HANGUL SYLLABLE SEO - {0xC11D, 0xC137, prH3, gcLo}, // [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH - {0xC138, 0xC138, prH2, gcLo}, // HANGUL SYLLABLE SE - {0xC139, 0xC153, prH3, gcLo}, // [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH - {0xC154, 0xC154, prH2, gcLo}, // HANGUL SYLLABLE SYEO - {0xC155, 0xC16F, prH3, gcLo}, // [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH - {0xC170, 0xC170, prH2, gcLo}, // HANGUL SYLLABLE SYE - {0xC171, 0xC18B, prH3, gcLo}, // [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH - {0xC18C, 0xC18C, prH2, gcLo}, // HANGUL SYLLABLE SO - {0xC18D, 0xC1A7, prH3, gcLo}, // [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH - {0xC1A8, 0xC1A8, prH2, gcLo}, // HANGUL SYLLABLE SWA - {0xC1A9, 0xC1C3, prH3, gcLo}, // [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH - {0xC1C4, 0xC1C4, prH2, gcLo}, // HANGUL SYLLABLE SWAE - {0xC1C5, 0xC1DF, prH3, gcLo}, // [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH - {0xC1E0, 0xC1E0, prH2, gcLo}, // HANGUL SYLLABLE SOE - {0xC1E1, 0xC1FB, prH3, gcLo}, // [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH - {0xC1FC, 0xC1FC, prH2, gcLo}, // HANGUL SYLLABLE SYO - {0xC1FD, 0xC217, prH3, gcLo}, // [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH - {0xC218, 0xC218, prH2, gcLo}, // HANGUL SYLLABLE SU - {0xC219, 0xC233, prH3, gcLo}, // [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH - {0xC234, 0xC234, prH2, gcLo}, // HANGUL SYLLABLE SWEO - {0xC235, 0xC24F, prH3, gcLo}, // [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH - {0xC250, 0xC250, prH2, gcLo}, // HANGUL SYLLABLE SWE - {0xC251, 0xC26B, prH3, gcLo}, // [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH - {0xC26C, 0xC26C, prH2, gcLo}, // HANGUL SYLLABLE SWI - {0xC26D, 0xC287, prH3, gcLo}, // [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH - {0xC288, 0xC288, prH2, gcLo}, // HANGUL SYLLABLE SYU - {0xC289, 0xC2A3, prH3, gcLo}, // [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH - {0xC2A4, 0xC2A4, prH2, gcLo}, // HANGUL SYLLABLE SEU - {0xC2A5, 0xC2BF, prH3, gcLo}, // [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH - {0xC2C0, 0xC2C0, prH2, gcLo}, // HANGUL SYLLABLE SYI - {0xC2C1, 0xC2DB, prH3, gcLo}, // [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH - {0xC2DC, 0xC2DC, prH2, gcLo}, // HANGUL SYLLABLE SI - {0xC2DD, 0xC2F7, prH3, gcLo}, // [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH - {0xC2F8, 0xC2F8, prH2, gcLo}, // HANGUL SYLLABLE SSA - {0xC2F9, 0xC313, prH3, gcLo}, // [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH - {0xC314, 0xC314, prH2, gcLo}, // HANGUL SYLLABLE SSAE - {0xC315, 0xC32F, prH3, gcLo}, // [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH - {0xC330, 0xC330, prH2, gcLo}, // HANGUL SYLLABLE SSYA - {0xC331, 0xC34B, prH3, gcLo}, // [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH - {0xC34C, 0xC34C, prH2, gcLo}, // HANGUL SYLLABLE SSYAE - {0xC34D, 0xC367, prH3, gcLo}, // [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH - {0xC368, 0xC368, prH2, gcLo}, // HANGUL SYLLABLE SSEO - {0xC369, 0xC383, prH3, gcLo}, // [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH - {0xC384, 0xC384, prH2, gcLo}, // HANGUL SYLLABLE SSE - {0xC385, 0xC39F, prH3, gcLo}, // [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH - {0xC3A0, 0xC3A0, prH2, gcLo}, // HANGUL SYLLABLE SSYEO - {0xC3A1, 0xC3BB, prH3, gcLo}, // [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH - {0xC3BC, 0xC3BC, prH2, gcLo}, // HANGUL SYLLABLE SSYE - {0xC3BD, 0xC3D7, prH3, gcLo}, // [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH - {0xC3D8, 0xC3D8, prH2, gcLo}, // HANGUL SYLLABLE SSO - {0xC3D9, 0xC3F3, prH3, gcLo}, // [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH - {0xC3F4, 0xC3F4, prH2, gcLo}, // HANGUL SYLLABLE SSWA - {0xC3F5, 0xC40F, prH3, gcLo}, // [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH - {0xC410, 0xC410, prH2, gcLo}, // HANGUL SYLLABLE SSWAE - {0xC411, 0xC42B, prH3, gcLo}, // [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH - {0xC42C, 0xC42C, prH2, gcLo}, // HANGUL SYLLABLE SSOE - {0xC42D, 0xC447, prH3, gcLo}, // [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH - {0xC448, 0xC448, prH2, gcLo}, // HANGUL SYLLABLE SSYO - {0xC449, 0xC463, prH3, gcLo}, // [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH - {0xC464, 0xC464, prH2, gcLo}, // HANGUL SYLLABLE SSU - {0xC465, 0xC47F, prH3, gcLo}, // [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH - {0xC480, 0xC480, prH2, gcLo}, // HANGUL SYLLABLE SSWEO - {0xC481, 0xC49B, prH3, gcLo}, // [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH - {0xC49C, 0xC49C, prH2, gcLo}, // HANGUL SYLLABLE SSWE - {0xC49D, 0xC4B7, prH3, gcLo}, // [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH - {0xC4B8, 0xC4B8, prH2, gcLo}, // HANGUL SYLLABLE SSWI - {0xC4B9, 0xC4D3, prH3, gcLo}, // [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH - {0xC4D4, 0xC4D4, prH2, gcLo}, // HANGUL SYLLABLE SSYU - {0xC4D5, 0xC4EF, prH3, gcLo}, // [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH - {0xC4F0, 0xC4F0, prH2, gcLo}, // HANGUL SYLLABLE SSEU - {0xC4F1, 0xC50B, prH3, gcLo}, // [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH - {0xC50C, 0xC50C, prH2, gcLo}, // HANGUL SYLLABLE SSYI - {0xC50D, 0xC527, prH3, gcLo}, // [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH - {0xC528, 0xC528, prH2, gcLo}, // HANGUL SYLLABLE SSI - {0xC529, 0xC543, prH3, gcLo}, // [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH - {0xC544, 0xC544, prH2, gcLo}, // HANGUL SYLLABLE A - {0xC545, 0xC55F, prH3, gcLo}, // [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH - {0xC560, 0xC560, prH2, gcLo}, // HANGUL SYLLABLE AE - {0xC561, 0xC57B, prH3, gcLo}, // [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH - {0xC57C, 0xC57C, prH2, gcLo}, // HANGUL SYLLABLE YA - {0xC57D, 0xC597, prH3, gcLo}, // [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH - {0xC598, 0xC598, prH2, gcLo}, // HANGUL SYLLABLE YAE - {0xC599, 0xC5B3, prH3, gcLo}, // [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH - {0xC5B4, 0xC5B4, prH2, gcLo}, // HANGUL SYLLABLE EO - {0xC5B5, 0xC5CF, prH3, gcLo}, // [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH - {0xC5D0, 0xC5D0, prH2, gcLo}, // HANGUL SYLLABLE E - {0xC5D1, 0xC5EB, prH3, gcLo}, // [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH - {0xC5EC, 0xC5EC, prH2, gcLo}, // HANGUL SYLLABLE YEO - {0xC5ED, 0xC607, prH3, gcLo}, // [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH - {0xC608, 0xC608, prH2, gcLo}, // HANGUL SYLLABLE YE - {0xC609, 0xC623, prH3, gcLo}, // [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH - {0xC624, 0xC624, prH2, gcLo}, // HANGUL SYLLABLE O - {0xC625, 0xC63F, prH3, gcLo}, // [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH - {0xC640, 0xC640, prH2, gcLo}, // HANGUL SYLLABLE WA - {0xC641, 0xC65B, prH3, gcLo}, // [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH - {0xC65C, 0xC65C, prH2, gcLo}, // HANGUL SYLLABLE WAE - {0xC65D, 0xC677, prH3, gcLo}, // [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH - {0xC678, 0xC678, prH2, gcLo}, // HANGUL SYLLABLE OE - {0xC679, 0xC693, prH3, gcLo}, // [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH - {0xC694, 0xC694, prH2, gcLo}, // HANGUL SYLLABLE YO - {0xC695, 0xC6AF, prH3, gcLo}, // [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH - {0xC6B0, 0xC6B0, prH2, gcLo}, // HANGUL SYLLABLE U - {0xC6B1, 0xC6CB, prH3, gcLo}, // [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH - {0xC6CC, 0xC6CC, prH2, gcLo}, // HANGUL SYLLABLE WEO - {0xC6CD, 0xC6E7, prH3, gcLo}, // [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH - {0xC6E8, 0xC6E8, prH2, gcLo}, // HANGUL SYLLABLE WE - {0xC6E9, 0xC703, prH3, gcLo}, // [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH - {0xC704, 0xC704, prH2, gcLo}, // HANGUL SYLLABLE WI - {0xC705, 0xC71F, prH3, gcLo}, // [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH - {0xC720, 0xC720, prH2, gcLo}, // HANGUL SYLLABLE YU - {0xC721, 0xC73B, prH3, gcLo}, // [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH - {0xC73C, 0xC73C, prH2, gcLo}, // HANGUL SYLLABLE EU - {0xC73D, 0xC757, prH3, gcLo}, // [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH - {0xC758, 0xC758, prH2, gcLo}, // HANGUL SYLLABLE YI - {0xC759, 0xC773, prH3, gcLo}, // [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH - {0xC774, 0xC774, prH2, gcLo}, // HANGUL SYLLABLE I - {0xC775, 0xC78F, prH3, gcLo}, // [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH - {0xC790, 0xC790, prH2, gcLo}, // HANGUL SYLLABLE JA - {0xC791, 0xC7AB, prH3, gcLo}, // [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH - {0xC7AC, 0xC7AC, prH2, gcLo}, // HANGUL SYLLABLE JAE - {0xC7AD, 0xC7C7, prH3, gcLo}, // [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH - {0xC7C8, 0xC7C8, prH2, gcLo}, // HANGUL SYLLABLE JYA - {0xC7C9, 0xC7E3, prH3, gcLo}, // [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH - {0xC7E4, 0xC7E4, prH2, gcLo}, // HANGUL SYLLABLE JYAE - {0xC7E5, 0xC7FF, prH3, gcLo}, // [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH - {0xC800, 0xC800, prH2, gcLo}, // HANGUL SYLLABLE JEO - {0xC801, 0xC81B, prH3, gcLo}, // [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH - {0xC81C, 0xC81C, prH2, gcLo}, // HANGUL SYLLABLE JE - {0xC81D, 0xC837, prH3, gcLo}, // [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH - {0xC838, 0xC838, prH2, gcLo}, // HANGUL SYLLABLE JYEO - {0xC839, 0xC853, prH3, gcLo}, // [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH - {0xC854, 0xC854, prH2, gcLo}, // HANGUL SYLLABLE JYE - {0xC855, 0xC86F, prH3, gcLo}, // [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH - {0xC870, 0xC870, prH2, gcLo}, // HANGUL SYLLABLE JO - {0xC871, 0xC88B, prH3, gcLo}, // [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH - {0xC88C, 0xC88C, prH2, gcLo}, // HANGUL SYLLABLE JWA - {0xC88D, 0xC8A7, prH3, gcLo}, // [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH - {0xC8A8, 0xC8A8, prH2, gcLo}, // HANGUL SYLLABLE JWAE - {0xC8A9, 0xC8C3, prH3, gcLo}, // [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH - {0xC8C4, 0xC8C4, prH2, gcLo}, // HANGUL SYLLABLE JOE - {0xC8C5, 0xC8DF, prH3, gcLo}, // [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH - {0xC8E0, 0xC8E0, prH2, gcLo}, // HANGUL SYLLABLE JYO - {0xC8E1, 0xC8FB, prH3, gcLo}, // [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH - {0xC8FC, 0xC8FC, prH2, gcLo}, // HANGUL SYLLABLE JU - {0xC8FD, 0xC917, prH3, gcLo}, // [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH - {0xC918, 0xC918, prH2, gcLo}, // HANGUL SYLLABLE JWEO - {0xC919, 0xC933, prH3, gcLo}, // [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH - {0xC934, 0xC934, prH2, gcLo}, // HANGUL SYLLABLE JWE - {0xC935, 0xC94F, prH3, gcLo}, // [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH - {0xC950, 0xC950, prH2, gcLo}, // HANGUL SYLLABLE JWI - {0xC951, 0xC96B, prH3, gcLo}, // [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH - {0xC96C, 0xC96C, prH2, gcLo}, // HANGUL SYLLABLE JYU - {0xC96D, 0xC987, prH3, gcLo}, // [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH - {0xC988, 0xC988, prH2, gcLo}, // HANGUL SYLLABLE JEU - {0xC989, 0xC9A3, prH3, gcLo}, // [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH - {0xC9A4, 0xC9A4, prH2, gcLo}, // HANGUL SYLLABLE JYI - {0xC9A5, 0xC9BF, prH3, gcLo}, // [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH - {0xC9C0, 0xC9C0, prH2, gcLo}, // HANGUL SYLLABLE JI - {0xC9C1, 0xC9DB, prH3, gcLo}, // [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH - {0xC9DC, 0xC9DC, prH2, gcLo}, // HANGUL SYLLABLE JJA - {0xC9DD, 0xC9F7, prH3, gcLo}, // [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH - {0xC9F8, 0xC9F8, prH2, gcLo}, // HANGUL SYLLABLE JJAE - {0xC9F9, 0xCA13, prH3, gcLo}, // [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH - {0xCA14, 0xCA14, prH2, gcLo}, // HANGUL SYLLABLE JJYA - {0xCA15, 0xCA2F, prH3, gcLo}, // [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH - {0xCA30, 0xCA30, prH2, gcLo}, // HANGUL SYLLABLE JJYAE - {0xCA31, 0xCA4B, prH3, gcLo}, // [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH - {0xCA4C, 0xCA4C, prH2, gcLo}, // HANGUL SYLLABLE JJEO - {0xCA4D, 0xCA67, prH3, gcLo}, // [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH - {0xCA68, 0xCA68, prH2, gcLo}, // HANGUL SYLLABLE JJE - {0xCA69, 0xCA83, prH3, gcLo}, // [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH - {0xCA84, 0xCA84, prH2, gcLo}, // HANGUL SYLLABLE JJYEO - {0xCA85, 0xCA9F, prH3, gcLo}, // [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH - {0xCAA0, 0xCAA0, prH2, gcLo}, // HANGUL SYLLABLE JJYE - {0xCAA1, 0xCABB, prH3, gcLo}, // [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH - {0xCABC, 0xCABC, prH2, gcLo}, // HANGUL SYLLABLE JJO - {0xCABD, 0xCAD7, prH3, gcLo}, // [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH - {0xCAD8, 0xCAD8, prH2, gcLo}, // HANGUL SYLLABLE JJWA - {0xCAD9, 0xCAF3, prH3, gcLo}, // [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH - {0xCAF4, 0xCAF4, prH2, gcLo}, // HANGUL SYLLABLE JJWAE - {0xCAF5, 0xCB0F, prH3, gcLo}, // [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH - {0xCB10, 0xCB10, prH2, gcLo}, // HANGUL SYLLABLE JJOE - {0xCB11, 0xCB2B, prH3, gcLo}, // [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH - {0xCB2C, 0xCB2C, prH2, gcLo}, // HANGUL SYLLABLE JJYO - {0xCB2D, 0xCB47, prH3, gcLo}, // [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH - {0xCB48, 0xCB48, prH2, gcLo}, // HANGUL SYLLABLE JJU - {0xCB49, 0xCB63, prH3, gcLo}, // [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH - {0xCB64, 0xCB64, prH2, gcLo}, // HANGUL SYLLABLE JJWEO - {0xCB65, 0xCB7F, prH3, gcLo}, // [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH - {0xCB80, 0xCB80, prH2, gcLo}, // HANGUL SYLLABLE JJWE - {0xCB81, 0xCB9B, prH3, gcLo}, // [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH - {0xCB9C, 0xCB9C, prH2, gcLo}, // HANGUL SYLLABLE JJWI - {0xCB9D, 0xCBB7, prH3, gcLo}, // [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH - {0xCBB8, 0xCBB8, prH2, gcLo}, // HANGUL SYLLABLE JJYU - {0xCBB9, 0xCBD3, prH3, gcLo}, // [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH - {0xCBD4, 0xCBD4, prH2, gcLo}, // HANGUL SYLLABLE JJEU - {0xCBD5, 0xCBEF, prH3, gcLo}, // [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH - {0xCBF0, 0xCBF0, prH2, gcLo}, // HANGUL SYLLABLE JJYI - {0xCBF1, 0xCC0B, prH3, gcLo}, // [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH - {0xCC0C, 0xCC0C, prH2, gcLo}, // HANGUL SYLLABLE JJI - {0xCC0D, 0xCC27, prH3, gcLo}, // [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH - {0xCC28, 0xCC28, prH2, gcLo}, // HANGUL SYLLABLE CA - {0xCC29, 0xCC43, prH3, gcLo}, // [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH - {0xCC44, 0xCC44, prH2, gcLo}, // HANGUL SYLLABLE CAE - {0xCC45, 0xCC5F, prH3, gcLo}, // [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH - {0xCC60, 0xCC60, prH2, gcLo}, // HANGUL SYLLABLE CYA - {0xCC61, 0xCC7B, prH3, gcLo}, // [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH - {0xCC7C, 0xCC7C, prH2, gcLo}, // HANGUL SYLLABLE CYAE - {0xCC7D, 0xCC97, prH3, gcLo}, // [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH - {0xCC98, 0xCC98, prH2, gcLo}, // HANGUL SYLLABLE CEO - {0xCC99, 0xCCB3, prH3, gcLo}, // [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH - {0xCCB4, 0xCCB4, prH2, gcLo}, // HANGUL SYLLABLE CE - {0xCCB5, 0xCCCF, prH3, gcLo}, // [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH - {0xCCD0, 0xCCD0, prH2, gcLo}, // HANGUL SYLLABLE CYEO - {0xCCD1, 0xCCEB, prH3, gcLo}, // [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH - {0xCCEC, 0xCCEC, prH2, gcLo}, // HANGUL SYLLABLE CYE - {0xCCED, 0xCD07, prH3, gcLo}, // [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH - {0xCD08, 0xCD08, prH2, gcLo}, // HANGUL SYLLABLE CO - {0xCD09, 0xCD23, prH3, gcLo}, // [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH - {0xCD24, 0xCD24, prH2, gcLo}, // HANGUL SYLLABLE CWA - {0xCD25, 0xCD3F, prH3, gcLo}, // [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH - {0xCD40, 0xCD40, prH2, gcLo}, // HANGUL SYLLABLE CWAE - {0xCD41, 0xCD5B, prH3, gcLo}, // [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH - {0xCD5C, 0xCD5C, prH2, gcLo}, // HANGUL SYLLABLE COE - {0xCD5D, 0xCD77, prH3, gcLo}, // [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH - {0xCD78, 0xCD78, prH2, gcLo}, // HANGUL SYLLABLE CYO - {0xCD79, 0xCD93, prH3, gcLo}, // [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH - {0xCD94, 0xCD94, prH2, gcLo}, // HANGUL SYLLABLE CU - {0xCD95, 0xCDAF, prH3, gcLo}, // [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH - {0xCDB0, 0xCDB0, prH2, gcLo}, // HANGUL SYLLABLE CWEO - {0xCDB1, 0xCDCB, prH3, gcLo}, // [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH - {0xCDCC, 0xCDCC, prH2, gcLo}, // HANGUL SYLLABLE CWE - {0xCDCD, 0xCDE7, prH3, gcLo}, // [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH - {0xCDE8, 0xCDE8, prH2, gcLo}, // HANGUL SYLLABLE CWI - {0xCDE9, 0xCE03, prH3, gcLo}, // [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH - {0xCE04, 0xCE04, prH2, gcLo}, // HANGUL SYLLABLE CYU - {0xCE05, 0xCE1F, prH3, gcLo}, // [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH - {0xCE20, 0xCE20, prH2, gcLo}, // HANGUL SYLLABLE CEU - {0xCE21, 0xCE3B, prH3, gcLo}, // [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH - {0xCE3C, 0xCE3C, prH2, gcLo}, // HANGUL SYLLABLE CYI - {0xCE3D, 0xCE57, prH3, gcLo}, // [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH - {0xCE58, 0xCE58, prH2, gcLo}, // HANGUL SYLLABLE CI - {0xCE59, 0xCE73, prH3, gcLo}, // [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH - {0xCE74, 0xCE74, prH2, gcLo}, // HANGUL SYLLABLE KA - {0xCE75, 0xCE8F, prH3, gcLo}, // [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH - {0xCE90, 0xCE90, prH2, gcLo}, // HANGUL SYLLABLE KAE - {0xCE91, 0xCEAB, prH3, gcLo}, // [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH - {0xCEAC, 0xCEAC, prH2, gcLo}, // HANGUL SYLLABLE KYA - {0xCEAD, 0xCEC7, prH3, gcLo}, // [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH - {0xCEC8, 0xCEC8, prH2, gcLo}, // HANGUL SYLLABLE KYAE - {0xCEC9, 0xCEE3, prH3, gcLo}, // [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH - {0xCEE4, 0xCEE4, prH2, gcLo}, // HANGUL SYLLABLE KEO - {0xCEE5, 0xCEFF, prH3, gcLo}, // [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH - {0xCF00, 0xCF00, prH2, gcLo}, // HANGUL SYLLABLE KE - {0xCF01, 0xCF1B, prH3, gcLo}, // [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH - {0xCF1C, 0xCF1C, prH2, gcLo}, // HANGUL SYLLABLE KYEO - {0xCF1D, 0xCF37, prH3, gcLo}, // [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH - {0xCF38, 0xCF38, prH2, gcLo}, // HANGUL SYLLABLE KYE - {0xCF39, 0xCF53, prH3, gcLo}, // [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH - {0xCF54, 0xCF54, prH2, gcLo}, // HANGUL SYLLABLE KO - {0xCF55, 0xCF6F, prH3, gcLo}, // [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH - {0xCF70, 0xCF70, prH2, gcLo}, // HANGUL SYLLABLE KWA - {0xCF71, 0xCF8B, prH3, gcLo}, // [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH - {0xCF8C, 0xCF8C, prH2, gcLo}, // HANGUL SYLLABLE KWAE - {0xCF8D, 0xCFA7, prH3, gcLo}, // [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH - {0xCFA8, 0xCFA8, prH2, gcLo}, // HANGUL SYLLABLE KOE - {0xCFA9, 0xCFC3, prH3, gcLo}, // [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH - {0xCFC4, 0xCFC4, prH2, gcLo}, // HANGUL SYLLABLE KYO - {0xCFC5, 0xCFDF, prH3, gcLo}, // [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH - {0xCFE0, 0xCFE0, prH2, gcLo}, // HANGUL SYLLABLE KU - {0xCFE1, 0xCFFB, prH3, gcLo}, // [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH - {0xCFFC, 0xCFFC, prH2, gcLo}, // HANGUL SYLLABLE KWEO - {0xCFFD, 0xD017, prH3, gcLo}, // [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH - {0xD018, 0xD018, prH2, gcLo}, // HANGUL SYLLABLE KWE - {0xD019, 0xD033, prH3, gcLo}, // [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH - {0xD034, 0xD034, prH2, gcLo}, // HANGUL SYLLABLE KWI - {0xD035, 0xD04F, prH3, gcLo}, // [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH - {0xD050, 0xD050, prH2, gcLo}, // HANGUL SYLLABLE KYU - {0xD051, 0xD06B, prH3, gcLo}, // [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH - {0xD06C, 0xD06C, prH2, gcLo}, // HANGUL SYLLABLE KEU - {0xD06D, 0xD087, prH3, gcLo}, // [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH - {0xD088, 0xD088, prH2, gcLo}, // HANGUL SYLLABLE KYI - {0xD089, 0xD0A3, prH3, gcLo}, // [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH - {0xD0A4, 0xD0A4, prH2, gcLo}, // HANGUL SYLLABLE KI - {0xD0A5, 0xD0BF, prH3, gcLo}, // [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH - {0xD0C0, 0xD0C0, prH2, gcLo}, // HANGUL SYLLABLE TA - {0xD0C1, 0xD0DB, prH3, gcLo}, // [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH - {0xD0DC, 0xD0DC, prH2, gcLo}, // HANGUL SYLLABLE TAE - {0xD0DD, 0xD0F7, prH3, gcLo}, // [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH - {0xD0F8, 0xD0F8, prH2, gcLo}, // HANGUL SYLLABLE TYA - {0xD0F9, 0xD113, prH3, gcLo}, // [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH - {0xD114, 0xD114, prH2, gcLo}, // HANGUL SYLLABLE TYAE - {0xD115, 0xD12F, prH3, gcLo}, // [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH - {0xD130, 0xD130, prH2, gcLo}, // HANGUL SYLLABLE TEO - {0xD131, 0xD14B, prH3, gcLo}, // [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH - {0xD14C, 0xD14C, prH2, gcLo}, // HANGUL SYLLABLE TE - {0xD14D, 0xD167, prH3, gcLo}, // [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH - {0xD168, 0xD168, prH2, gcLo}, // HANGUL SYLLABLE TYEO - {0xD169, 0xD183, prH3, gcLo}, // [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH - {0xD184, 0xD184, prH2, gcLo}, // HANGUL SYLLABLE TYE - {0xD185, 0xD19F, prH3, gcLo}, // [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH - {0xD1A0, 0xD1A0, prH2, gcLo}, // HANGUL SYLLABLE TO - {0xD1A1, 0xD1BB, prH3, gcLo}, // [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH - {0xD1BC, 0xD1BC, prH2, gcLo}, // HANGUL SYLLABLE TWA - {0xD1BD, 0xD1D7, prH3, gcLo}, // [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH - {0xD1D8, 0xD1D8, prH2, gcLo}, // HANGUL SYLLABLE TWAE - {0xD1D9, 0xD1F3, prH3, gcLo}, // [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH - {0xD1F4, 0xD1F4, prH2, gcLo}, // HANGUL SYLLABLE TOE - {0xD1F5, 0xD20F, prH3, gcLo}, // [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH - {0xD210, 0xD210, prH2, gcLo}, // HANGUL SYLLABLE TYO - {0xD211, 0xD22B, prH3, gcLo}, // [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH - {0xD22C, 0xD22C, prH2, gcLo}, // HANGUL SYLLABLE TU - {0xD22D, 0xD247, prH3, gcLo}, // [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH - {0xD248, 0xD248, prH2, gcLo}, // HANGUL SYLLABLE TWEO - {0xD249, 0xD263, prH3, gcLo}, // [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH - {0xD264, 0xD264, prH2, gcLo}, // HANGUL SYLLABLE TWE - {0xD265, 0xD27F, prH3, gcLo}, // [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH - {0xD280, 0xD280, prH2, gcLo}, // HANGUL SYLLABLE TWI - {0xD281, 0xD29B, prH3, gcLo}, // [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH - {0xD29C, 0xD29C, prH2, gcLo}, // HANGUL SYLLABLE TYU - {0xD29D, 0xD2B7, prH3, gcLo}, // [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH - {0xD2B8, 0xD2B8, prH2, gcLo}, // HANGUL SYLLABLE TEU - {0xD2B9, 0xD2D3, prH3, gcLo}, // [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH - {0xD2D4, 0xD2D4, prH2, gcLo}, // HANGUL SYLLABLE TYI - {0xD2D5, 0xD2EF, prH3, gcLo}, // [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH - {0xD2F0, 0xD2F0, prH2, gcLo}, // HANGUL SYLLABLE TI - {0xD2F1, 0xD30B, prH3, gcLo}, // [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH - {0xD30C, 0xD30C, prH2, gcLo}, // HANGUL SYLLABLE PA - {0xD30D, 0xD327, prH3, gcLo}, // [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH - {0xD328, 0xD328, prH2, gcLo}, // HANGUL SYLLABLE PAE - {0xD329, 0xD343, prH3, gcLo}, // [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH - {0xD344, 0xD344, prH2, gcLo}, // HANGUL SYLLABLE PYA - {0xD345, 0xD35F, prH3, gcLo}, // [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH - {0xD360, 0xD360, prH2, gcLo}, // HANGUL SYLLABLE PYAE - {0xD361, 0xD37B, prH3, gcLo}, // [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH - {0xD37C, 0xD37C, prH2, gcLo}, // HANGUL SYLLABLE PEO - {0xD37D, 0xD397, prH3, gcLo}, // [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH - {0xD398, 0xD398, prH2, gcLo}, // HANGUL SYLLABLE PE - {0xD399, 0xD3B3, prH3, gcLo}, // [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH - {0xD3B4, 0xD3B4, prH2, gcLo}, // HANGUL SYLLABLE PYEO - {0xD3B5, 0xD3CF, prH3, gcLo}, // [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH - {0xD3D0, 0xD3D0, prH2, gcLo}, // HANGUL SYLLABLE PYE - {0xD3D1, 0xD3EB, prH3, gcLo}, // [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH - {0xD3EC, 0xD3EC, prH2, gcLo}, // HANGUL SYLLABLE PO - {0xD3ED, 0xD407, prH3, gcLo}, // [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH - {0xD408, 0xD408, prH2, gcLo}, // HANGUL SYLLABLE PWA - {0xD409, 0xD423, prH3, gcLo}, // [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH - {0xD424, 0xD424, prH2, gcLo}, // HANGUL SYLLABLE PWAE - {0xD425, 0xD43F, prH3, gcLo}, // [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH - {0xD440, 0xD440, prH2, gcLo}, // HANGUL SYLLABLE POE - {0xD441, 0xD45B, prH3, gcLo}, // [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH - {0xD45C, 0xD45C, prH2, gcLo}, // HANGUL SYLLABLE PYO - {0xD45D, 0xD477, prH3, gcLo}, // [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH - {0xD478, 0xD478, prH2, gcLo}, // HANGUL SYLLABLE PU - {0xD479, 0xD493, prH3, gcLo}, // [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH - {0xD494, 0xD494, prH2, gcLo}, // HANGUL SYLLABLE PWEO - {0xD495, 0xD4AF, prH3, gcLo}, // [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH - {0xD4B0, 0xD4B0, prH2, gcLo}, // HANGUL SYLLABLE PWE - {0xD4B1, 0xD4CB, prH3, gcLo}, // [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH - {0xD4CC, 0xD4CC, prH2, gcLo}, // HANGUL SYLLABLE PWI - {0xD4CD, 0xD4E7, prH3, gcLo}, // [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH - {0xD4E8, 0xD4E8, prH2, gcLo}, // HANGUL SYLLABLE PYU - {0xD4E9, 0xD503, prH3, gcLo}, // [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH - {0xD504, 0xD504, prH2, gcLo}, // HANGUL SYLLABLE PEU - {0xD505, 0xD51F, prH3, gcLo}, // [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH - {0xD520, 0xD520, prH2, gcLo}, // HANGUL SYLLABLE PYI - {0xD521, 0xD53B, prH3, gcLo}, // [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH - {0xD53C, 0xD53C, prH2, gcLo}, // HANGUL SYLLABLE PI - {0xD53D, 0xD557, prH3, gcLo}, // [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH - {0xD558, 0xD558, prH2, gcLo}, // HANGUL SYLLABLE HA - {0xD559, 0xD573, prH3, gcLo}, // [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH - {0xD574, 0xD574, prH2, gcLo}, // HANGUL SYLLABLE HAE - {0xD575, 0xD58F, prH3, gcLo}, // [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH - {0xD590, 0xD590, prH2, gcLo}, // HANGUL SYLLABLE HYA - {0xD591, 0xD5AB, prH3, gcLo}, // [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH - {0xD5AC, 0xD5AC, prH2, gcLo}, // HANGUL SYLLABLE HYAE - {0xD5AD, 0xD5C7, prH3, gcLo}, // [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH - {0xD5C8, 0xD5C8, prH2, gcLo}, // HANGUL SYLLABLE HEO - {0xD5C9, 0xD5E3, prH3, gcLo}, // [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH - {0xD5E4, 0xD5E4, prH2, gcLo}, // HANGUL SYLLABLE HE - {0xD5E5, 0xD5FF, prH3, gcLo}, // [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH - {0xD600, 0xD600, prH2, gcLo}, // HANGUL SYLLABLE HYEO - {0xD601, 0xD61B, prH3, gcLo}, // [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH - {0xD61C, 0xD61C, prH2, gcLo}, // HANGUL SYLLABLE HYE - {0xD61D, 0xD637, prH3, gcLo}, // [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH - {0xD638, 0xD638, prH2, gcLo}, // HANGUL SYLLABLE HO - {0xD639, 0xD653, prH3, gcLo}, // [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH - {0xD654, 0xD654, prH2, gcLo}, // HANGUL SYLLABLE HWA - {0xD655, 0xD66F, prH3, gcLo}, // [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH - {0xD670, 0xD670, prH2, gcLo}, // HANGUL SYLLABLE HWAE - {0xD671, 0xD68B, prH3, gcLo}, // [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH - {0xD68C, 0xD68C, prH2, gcLo}, // HANGUL SYLLABLE HOE - {0xD68D, 0xD6A7, prH3, gcLo}, // [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH - {0xD6A8, 0xD6A8, prH2, gcLo}, // HANGUL SYLLABLE HYO - {0xD6A9, 0xD6C3, prH3, gcLo}, // [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH - {0xD6C4, 0xD6C4, prH2, gcLo}, // HANGUL SYLLABLE HU - {0xD6C5, 0xD6DF, prH3, gcLo}, // [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH - {0xD6E0, 0xD6E0, prH2, gcLo}, // HANGUL SYLLABLE HWEO - {0xD6E1, 0xD6FB, prH3, gcLo}, // [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH - {0xD6FC, 0xD6FC, prH2, gcLo}, // HANGUL SYLLABLE HWE - {0xD6FD, 0xD717, prH3, gcLo}, // [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH - {0xD718, 0xD718, prH2, gcLo}, // HANGUL SYLLABLE HWI - {0xD719, 0xD733, prH3, gcLo}, // [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH - {0xD734, 0xD734, prH2, gcLo}, // HANGUL SYLLABLE HYU - {0xD735, 0xD74F, prH3, gcLo}, // [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH - {0xD750, 0xD750, prH2, gcLo}, // HANGUL SYLLABLE HEU - {0xD751, 0xD76B, prH3, gcLo}, // [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH - {0xD76C, 0xD76C, prH2, gcLo}, // HANGUL SYLLABLE HYI - {0xD76D, 0xD787, prH3, gcLo}, // [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH - {0xD788, 0xD788, prH2, gcLo}, // HANGUL SYLLABLE HI - {0xD789, 0xD7A3, prH3, gcLo}, // [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH - {0xD7B0, 0xD7C6, prJV, gcLo}, // [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E - {0xD7CB, 0xD7FB, prJT, gcLo}, // [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH - {0xD800, 0xDB7F, prSG, gcCs}, // [896] .. - {0xDB80, 0xDBFF, prSG, gcCs}, // [128] .. - {0xDC00, 0xDFFF, prSG, gcCs}, // [1024] .. - {0xE000, 0xF8FF, prXX, gcCo}, // [6400] .. - {0xF900, 0xFA6D, prID, gcLo}, // [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D - {0xFA6E, 0xFA6F, prID, gcCn}, // [2] .. - {0xFA70, 0xFAD9, prID, gcLo}, // [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 - {0xFADA, 0xFAFF, prID, gcCn}, // [38] .. - {0xFB00, 0xFB06, prAL, gcLl}, // [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST - {0xFB13, 0xFB17, prAL, gcLl}, // [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH - {0xFB1D, 0xFB1D, prHL, gcLo}, // HEBREW LETTER YOD WITH HIRIQ - {0xFB1E, 0xFB1E, prCM, gcMn}, // HEBREW POINT JUDEO-SPANISH VARIKA - {0xFB1F, 0xFB28, prHL, gcLo}, // [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV - {0xFB29, 0xFB29, prAL, gcSm}, // HEBREW LETTER ALTERNATIVE PLUS SIGN - {0xFB2A, 0xFB36, prHL, gcLo}, // [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH - {0xFB38, 0xFB3C, prHL, gcLo}, // [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH - {0xFB3E, 0xFB3E, prHL, gcLo}, // HEBREW LETTER MEM WITH DAGESH - {0xFB40, 0xFB41, prHL, gcLo}, // [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH - {0xFB43, 0xFB44, prHL, gcLo}, // [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH - {0xFB46, 0xFB4F, prHL, gcLo}, // [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED - {0xFB50, 0xFBB1, prAL, gcLo}, // [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM - {0xFBB2, 0xFBC2, prAL, gcSk}, // [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE - {0xFBD3, 0xFD3D, prAL, gcLo}, // [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM - {0xFD3E, 0xFD3E, prCL, gcPe}, // ORNATE LEFT PARENTHESIS - {0xFD3F, 0xFD3F, prOP, gcPs}, // ORNATE RIGHT PARENTHESIS - {0xFD40, 0xFD4F, prAL, gcSo}, // [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH - {0xFD50, 0xFD8F, prAL, gcLo}, // [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM - {0xFD92, 0xFDC7, prAL, gcLo}, // [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM - {0xFDCF, 0xFDCF, prAL, gcSo}, // ARABIC LIGATURE SALAAMUHU ALAYNAA - {0xFDF0, 0xFDFB, prAL, gcLo}, // [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU - {0xFDFC, 0xFDFC, prPO, gcSc}, // RIAL SIGN - {0xFDFD, 0xFDFF, prAL, gcSo}, // [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL - {0xFE00, 0xFE0F, prCM, gcMn}, // [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 - {0xFE10, 0xFE10, prIS, gcPo}, // PRESENTATION FORM FOR VERTICAL COMMA - {0xFE11, 0xFE12, prCL, gcPo}, // [2] PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP - {0xFE13, 0xFE14, prIS, gcPo}, // [2] PRESENTATION FORM FOR VERTICAL COLON..PRESENTATION FORM FOR VERTICAL SEMICOLON - {0xFE15, 0xFE16, prEX, gcPo}, // [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..PRESENTATION FORM FOR VERTICAL QUESTION MARK - {0xFE17, 0xFE17, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET - {0xFE18, 0xFE18, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET - {0xFE19, 0xFE19, prIN, gcPo}, // PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS - {0xFE20, 0xFE2F, prCM, gcMn}, // [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF - {0xFE30, 0xFE30, prID, gcPo}, // PRESENTATION FORM FOR VERTICAL TWO DOT LEADER - {0xFE31, 0xFE32, prID, gcPd}, // [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH - {0xFE33, 0xFE34, prID, gcPc}, // [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE - {0xFE35, 0xFE35, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS - {0xFE36, 0xFE36, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS - {0xFE37, 0xFE37, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET - {0xFE38, 0xFE38, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET - {0xFE39, 0xFE39, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET - {0xFE3A, 0xFE3A, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET - {0xFE3B, 0xFE3B, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET - {0xFE3C, 0xFE3C, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET - {0xFE3D, 0xFE3D, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET - {0xFE3E, 0xFE3E, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET - {0xFE3F, 0xFE3F, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET - {0xFE40, 0xFE40, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET - {0xFE41, 0xFE41, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET - {0xFE42, 0xFE42, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET - {0xFE43, 0xFE43, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET - {0xFE44, 0xFE44, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET - {0xFE45, 0xFE46, prID, gcPo}, // [2] SESAME DOT..WHITE SESAME DOT - {0xFE47, 0xFE47, prOP, gcPs}, // PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET - {0xFE48, 0xFE48, prCL, gcPe}, // PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET - {0xFE49, 0xFE4C, prID, gcPo}, // [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE - {0xFE4D, 0xFE4F, prID, gcPc}, // [3] DASHED LOW LINE..WAVY LOW LINE - {0xFE50, 0xFE50, prCL, gcPo}, // SMALL COMMA - {0xFE51, 0xFE51, prID, gcPo}, // SMALL IDEOGRAPHIC COMMA - {0xFE52, 0xFE52, prCL, gcPo}, // SMALL FULL STOP - {0xFE54, 0xFE55, prNS, gcPo}, // [2] SMALL SEMICOLON..SMALL COLON - {0xFE56, 0xFE57, prEX, gcPo}, // [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK - {0xFE58, 0xFE58, prID, gcPd}, // SMALL EM DASH - {0xFE59, 0xFE59, prOP, gcPs}, // SMALL LEFT PARENTHESIS - {0xFE5A, 0xFE5A, prCL, gcPe}, // SMALL RIGHT PARENTHESIS - {0xFE5B, 0xFE5B, prOP, gcPs}, // SMALL LEFT CURLY BRACKET - {0xFE5C, 0xFE5C, prCL, gcPe}, // SMALL RIGHT CURLY BRACKET - {0xFE5D, 0xFE5D, prOP, gcPs}, // SMALL LEFT TORTOISE SHELL BRACKET - {0xFE5E, 0xFE5E, prCL, gcPe}, // SMALL RIGHT TORTOISE SHELL BRACKET - {0xFE5F, 0xFE61, prID, gcPo}, // [3] SMALL NUMBER SIGN..SMALL ASTERISK - {0xFE62, 0xFE62, prID, gcSm}, // SMALL PLUS SIGN - {0xFE63, 0xFE63, prID, gcPd}, // SMALL HYPHEN-MINUS - {0xFE64, 0xFE66, prID, gcSm}, // [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN - {0xFE68, 0xFE68, prID, gcPo}, // SMALL REVERSE SOLIDUS - {0xFE69, 0xFE69, prPR, gcSc}, // SMALL DOLLAR SIGN - {0xFE6A, 0xFE6A, prPO, gcPo}, // SMALL PERCENT SIGN - {0xFE6B, 0xFE6B, prID, gcPo}, // SMALL COMMERCIAL AT - {0xFE70, 0xFE74, prAL, gcLo}, // [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM - {0xFE76, 0xFEFC, prAL, gcLo}, // [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM - {0xFEFF, 0xFEFF, prWJ, gcCf}, // ZERO WIDTH NO-BREAK SPACE - {0xFF01, 0xFF01, prEX, gcPo}, // FULLWIDTH EXCLAMATION MARK - {0xFF02, 0xFF03, prID, gcPo}, // [2] FULLWIDTH QUOTATION MARK..FULLWIDTH NUMBER SIGN - {0xFF04, 0xFF04, prPR, gcSc}, // FULLWIDTH DOLLAR SIGN - {0xFF05, 0xFF05, prPO, gcPo}, // FULLWIDTH PERCENT SIGN - {0xFF06, 0xFF07, prID, gcPo}, // [2] FULLWIDTH AMPERSAND..FULLWIDTH APOSTROPHE - {0xFF08, 0xFF08, prOP, gcPs}, // FULLWIDTH LEFT PARENTHESIS - {0xFF09, 0xFF09, prCL, gcPe}, // FULLWIDTH RIGHT PARENTHESIS - {0xFF0A, 0xFF0A, prID, gcPo}, // FULLWIDTH ASTERISK - {0xFF0B, 0xFF0B, prID, gcSm}, // FULLWIDTH PLUS SIGN - {0xFF0C, 0xFF0C, prCL, gcPo}, // FULLWIDTH COMMA - {0xFF0D, 0xFF0D, prID, gcPd}, // FULLWIDTH HYPHEN-MINUS - {0xFF0E, 0xFF0E, prCL, gcPo}, // FULLWIDTH FULL STOP - {0xFF0F, 0xFF0F, prID, gcPo}, // FULLWIDTH SOLIDUS - {0xFF10, 0xFF19, prID, gcNd}, // [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE - {0xFF1A, 0xFF1B, prNS, gcPo}, // [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON - {0xFF1C, 0xFF1E, prID, gcSm}, // [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN - {0xFF1F, 0xFF1F, prEX, gcPo}, // FULLWIDTH QUESTION MARK - {0xFF20, 0xFF20, prID, gcPo}, // FULLWIDTH COMMERCIAL AT - {0xFF21, 0xFF3A, prID, gcLu}, // [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z - {0xFF3B, 0xFF3B, prOP, gcPs}, // FULLWIDTH LEFT SQUARE BRACKET - {0xFF3C, 0xFF3C, prID, gcPo}, // FULLWIDTH REVERSE SOLIDUS - {0xFF3D, 0xFF3D, prCL, gcPe}, // FULLWIDTH RIGHT SQUARE BRACKET - {0xFF3E, 0xFF3E, prID, gcSk}, // FULLWIDTH CIRCUMFLEX ACCENT - {0xFF3F, 0xFF3F, prID, gcPc}, // FULLWIDTH LOW LINE - {0xFF40, 0xFF40, prID, gcSk}, // FULLWIDTH GRAVE ACCENT - {0xFF41, 0xFF5A, prID, gcLl}, // [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z - {0xFF5B, 0xFF5B, prOP, gcPs}, // FULLWIDTH LEFT CURLY BRACKET - {0xFF5C, 0xFF5C, prID, gcSm}, // FULLWIDTH VERTICAL LINE - {0xFF5D, 0xFF5D, prCL, gcPe}, // FULLWIDTH RIGHT CURLY BRACKET - {0xFF5E, 0xFF5E, prID, gcSm}, // FULLWIDTH TILDE - {0xFF5F, 0xFF5F, prOP, gcPs}, // FULLWIDTH LEFT WHITE PARENTHESIS - {0xFF60, 0xFF60, prCL, gcPe}, // FULLWIDTH RIGHT WHITE PARENTHESIS - {0xFF61, 0xFF61, prCL, gcPo}, // HALFWIDTH IDEOGRAPHIC FULL STOP - {0xFF62, 0xFF62, prOP, gcPs}, // HALFWIDTH LEFT CORNER BRACKET - {0xFF63, 0xFF63, prCL, gcPe}, // HALFWIDTH RIGHT CORNER BRACKET - {0xFF64, 0xFF64, prCL, gcPo}, // HALFWIDTH IDEOGRAPHIC COMMA - {0xFF65, 0xFF65, prNS, gcPo}, // HALFWIDTH KATAKANA MIDDLE DOT - {0xFF66, 0xFF66, prID, gcLo}, // HALFWIDTH KATAKANA LETTER WO - {0xFF67, 0xFF6F, prCJ, gcLo}, // [9] HALFWIDTH KATAKANA LETTER SMALL A..HALFWIDTH KATAKANA LETTER SMALL TU - {0xFF70, 0xFF70, prCJ, gcLm}, // HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK - {0xFF71, 0xFF9D, prID, gcLo}, // [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N - {0xFF9E, 0xFF9F, prNS, gcLm}, // [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK - {0xFFA0, 0xFFBE, prID, gcLo}, // [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH - {0xFFC2, 0xFFC7, prID, gcLo}, // [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E - {0xFFCA, 0xFFCF, prID, gcLo}, // [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE - {0xFFD2, 0xFFD7, prID, gcLo}, // [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU - {0xFFDA, 0xFFDC, prID, gcLo}, // [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I - {0xFFE0, 0xFFE0, prPO, gcSc}, // FULLWIDTH CENT SIGN - {0xFFE1, 0xFFE1, prPR, gcSc}, // FULLWIDTH POUND SIGN - {0xFFE2, 0xFFE2, prID, gcSm}, // FULLWIDTH NOT SIGN - {0xFFE3, 0xFFE3, prID, gcSk}, // FULLWIDTH MACRON - {0xFFE4, 0xFFE4, prID, gcSo}, // FULLWIDTH BROKEN BAR - {0xFFE5, 0xFFE6, prPR, gcSc}, // [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN - {0xFFE8, 0xFFE8, prAL, gcSo}, // HALFWIDTH FORMS LIGHT VERTICAL - {0xFFE9, 0xFFEC, prAL, gcSm}, // [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW - {0xFFED, 0xFFEE, prAL, gcSo}, // [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE - {0xFFF9, 0xFFFB, prCM, gcCf}, // [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR - {0xFFFC, 0xFFFC, prCB, gcSo}, // OBJECT REPLACEMENT CHARACTER - {0xFFFD, 0xFFFD, prAI, gcSo}, // REPLACEMENT CHARACTER - {0x10000, 0x1000B, prAL, gcLo}, // [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE - {0x1000D, 0x10026, prAL, gcLo}, // [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO - {0x10028, 0x1003A, prAL, gcLo}, // [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO - {0x1003C, 0x1003D, prAL, gcLo}, // [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE - {0x1003F, 0x1004D, prAL, gcLo}, // [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO - {0x10050, 0x1005D, prAL, gcLo}, // [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 - {0x10080, 0x100FA, prAL, gcLo}, // [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 - {0x10100, 0x10102, prBA, gcPo}, // [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK - {0x10107, 0x10133, prAL, gcNo}, // [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND - {0x10137, 0x1013F, prAL, gcSo}, // [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT - {0x10140, 0x10174, prAL, gcNl}, // [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS - {0x10175, 0x10178, prAL, gcNo}, // [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN - {0x10179, 0x10189, prAL, gcSo}, // [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN - {0x1018A, 0x1018B, prAL, gcNo}, // [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN - {0x1018C, 0x1018E, prAL, gcSo}, // [3] GREEK SINUSOID SIGN..NOMISMA SIGN - {0x10190, 0x1019C, prAL, gcSo}, // [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL - {0x101A0, 0x101A0, prAL, gcSo}, // GREEK SYMBOL TAU RHO - {0x101D0, 0x101FC, prAL, gcSo}, // [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND - {0x101FD, 0x101FD, prCM, gcMn}, // PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE - {0x10280, 0x1029C, prAL, gcLo}, // [29] LYCIAN LETTER A..LYCIAN LETTER X - {0x102A0, 0x102D0, prAL, gcLo}, // [49] CARIAN LETTER A..CARIAN LETTER UUU3 - {0x102E0, 0x102E0, prCM, gcMn}, // COPTIC EPACT THOUSANDS MARK - {0x102E1, 0x102FB, prAL, gcNo}, // [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED - {0x10300, 0x1031F, prAL, gcLo}, // [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS - {0x10320, 0x10323, prAL, gcNo}, // [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY - {0x1032D, 0x1032F, prAL, gcLo}, // [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE - {0x10330, 0x10340, prAL, gcLo}, // [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA - {0x10341, 0x10341, prAL, gcNl}, // GOTHIC LETTER NINETY - {0x10342, 0x10349, prAL, gcLo}, // [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL - {0x1034A, 0x1034A, prAL, gcNl}, // GOTHIC LETTER NINE HUNDRED - {0x10350, 0x10375, prAL, gcLo}, // [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA - {0x10376, 0x1037A, prCM, gcMn}, // [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII - {0x10380, 0x1039D, prAL, gcLo}, // [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU - {0x1039F, 0x1039F, prBA, gcPo}, // UGARITIC WORD DIVIDER - {0x103A0, 0x103C3, prAL, gcLo}, // [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA - {0x103C8, 0x103CF, prAL, gcLo}, // [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH - {0x103D0, 0x103D0, prBA, gcPo}, // OLD PERSIAN WORD DIVIDER - {0x103D1, 0x103D5, prAL, gcNl}, // [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED - {0x10400, 0x1044F, prAL, gcLC}, // [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW - {0x10450, 0x1047F, prAL, gcLo}, // [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW - {0x10480, 0x1049D, prAL, gcLo}, // [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO - {0x104A0, 0x104A9, prNU, gcNd}, // [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE - {0x104B0, 0x104D3, prAL, gcLu}, // [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA - {0x104D8, 0x104FB, prAL, gcLl}, // [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA - {0x10500, 0x10527, prAL, gcLo}, // [40] ELBASAN LETTER A..ELBASAN LETTER KHE - {0x10530, 0x10563, prAL, gcLo}, // [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW - {0x1056F, 0x1056F, prAL, gcPo}, // CAUCASIAN ALBANIAN CITATION MARK - {0x10570, 0x1057A, prAL, gcLu}, // [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA - {0x1057C, 0x1058A, prAL, gcLu}, // [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE - {0x1058C, 0x10592, prAL, gcLu}, // [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE - {0x10594, 0x10595, prAL, gcLu}, // [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE - {0x10597, 0x105A1, prAL, gcLl}, // [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA - {0x105A3, 0x105B1, prAL, gcLl}, // [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE - {0x105B3, 0x105B9, prAL, gcLl}, // [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE - {0x105BB, 0x105BC, prAL, gcLl}, // [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE - {0x10600, 0x10736, prAL, gcLo}, // [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 - {0x10740, 0x10755, prAL, gcLo}, // [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE - {0x10760, 0x10767, prAL, gcLo}, // [8] LINEAR A SIGN A800..LINEAR A SIGN A807 - {0x10780, 0x10785, prAL, gcLm}, // [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK - {0x10787, 0x107B0, prAL, gcLm}, // [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK - {0x107B2, 0x107BA, prAL, gcLm}, // [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL - {0x10800, 0x10805, prAL, gcLo}, // [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA - {0x10808, 0x10808, prAL, gcLo}, // CYPRIOT SYLLABLE JO - {0x1080A, 0x10835, prAL, gcLo}, // [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO - {0x10837, 0x10838, prAL, gcLo}, // [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE - {0x1083C, 0x1083C, prAL, gcLo}, // CYPRIOT SYLLABLE ZA - {0x1083F, 0x1083F, prAL, gcLo}, // CYPRIOT SYLLABLE ZO - {0x10840, 0x10855, prAL, gcLo}, // [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW - {0x10857, 0x10857, prBA, gcPo}, // IMPERIAL ARAMAIC SECTION SIGN - {0x10858, 0x1085F, prAL, gcNo}, // [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND - {0x10860, 0x10876, prAL, gcLo}, // [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW - {0x10877, 0x10878, prAL, gcSo}, // [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON - {0x10879, 0x1087F, prAL, gcNo}, // [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY - {0x10880, 0x1089E, prAL, gcLo}, // [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW - {0x108A7, 0x108AF, prAL, gcNo}, // [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED - {0x108E0, 0x108F2, prAL, gcLo}, // [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH - {0x108F4, 0x108F5, prAL, gcLo}, // [2] HATRAN LETTER SHIN..HATRAN LETTER TAW - {0x108FB, 0x108FF, prAL, gcNo}, // [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED - {0x10900, 0x10915, prAL, gcLo}, // [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU - {0x10916, 0x1091B, prAL, gcNo}, // [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE - {0x1091F, 0x1091F, prBA, gcPo}, // PHOENICIAN WORD SEPARATOR - {0x10920, 0x10939, prAL, gcLo}, // [26] LYDIAN LETTER A..LYDIAN LETTER C - {0x1093F, 0x1093F, prAL, gcPo}, // LYDIAN TRIANGULAR MARK - {0x10980, 0x1099F, prAL, gcLo}, // [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2 - {0x109A0, 0x109B7, prAL, gcLo}, // [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA - {0x109BC, 0x109BD, prAL, gcNo}, // [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF - {0x109BE, 0x109BF, prAL, gcLo}, // [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN - {0x109C0, 0x109CF, prAL, gcNo}, // [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY - {0x109D2, 0x109FF, prAL, gcNo}, // [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS - {0x10A00, 0x10A00, prAL, gcLo}, // KHAROSHTHI LETTER A - {0x10A01, 0x10A03, prCM, gcMn}, // [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R - {0x10A05, 0x10A06, prCM, gcMn}, // [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O - {0x10A0C, 0x10A0F, prCM, gcMn}, // [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA - {0x10A10, 0x10A13, prAL, gcLo}, // [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA - {0x10A15, 0x10A17, prAL, gcLo}, // [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA - {0x10A19, 0x10A35, prAL, gcLo}, // [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA - {0x10A38, 0x10A3A, prCM, gcMn}, // [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW - {0x10A3F, 0x10A3F, prCM, gcMn}, // KHAROSHTHI VIRAMA - {0x10A40, 0x10A48, prAL, gcNo}, // [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF - {0x10A50, 0x10A57, prBA, gcPo}, // [8] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION DOUBLE DANDA - {0x10A58, 0x10A58, prAL, gcPo}, // KHAROSHTHI PUNCTUATION LINES - {0x10A60, 0x10A7C, prAL, gcLo}, // [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH - {0x10A7D, 0x10A7E, prAL, gcNo}, // [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY - {0x10A7F, 0x10A7F, prAL, gcPo}, // OLD SOUTH ARABIAN NUMERIC INDICATOR - {0x10A80, 0x10A9C, prAL, gcLo}, // [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH - {0x10A9D, 0x10A9F, prAL, gcNo}, // [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY - {0x10AC0, 0x10AC7, prAL, gcLo}, // [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW - {0x10AC8, 0x10AC8, prAL, gcSo}, // MANICHAEAN SIGN UD - {0x10AC9, 0x10AE4, prAL, gcLo}, // [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW - {0x10AE5, 0x10AE6, prCM, gcMn}, // [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW - {0x10AEB, 0x10AEF, prAL, gcNo}, // [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED - {0x10AF0, 0x10AF5, prBA, gcPo}, // [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS - {0x10AF6, 0x10AF6, prIN, gcPo}, // MANICHAEAN PUNCTUATION LINE FILLER - {0x10B00, 0x10B35, prAL, gcLo}, // [54] AVESTAN LETTER A..AVESTAN LETTER HE - {0x10B39, 0x10B3F, prBA, gcPo}, // [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION - {0x10B40, 0x10B55, prAL, gcLo}, // [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW - {0x10B58, 0x10B5F, prAL, gcNo}, // [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND - {0x10B60, 0x10B72, prAL, gcLo}, // [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW - {0x10B78, 0x10B7F, prAL, gcNo}, // [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND - {0x10B80, 0x10B91, prAL, gcLo}, // [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW - {0x10B99, 0x10B9C, prAL, gcPo}, // [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT - {0x10BA9, 0x10BAF, prAL, gcNo}, // [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED - {0x10C00, 0x10C48, prAL, gcLo}, // [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH - {0x10C80, 0x10CB2, prAL, gcLu}, // [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US - {0x10CC0, 0x10CF2, prAL, gcLl}, // [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US - {0x10CFA, 0x10CFF, prAL, gcNo}, // [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND - {0x10D00, 0x10D23, prAL, gcLo}, // [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA - {0x10D24, 0x10D27, prCM, gcMn}, // [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI - {0x10D30, 0x10D39, prNU, gcNd}, // [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE - {0x10E60, 0x10E7E, prAL, gcNo}, // [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS - {0x10E80, 0x10EA9, prAL, gcLo}, // [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET - {0x10EAB, 0x10EAC, prCM, gcMn}, // [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK - {0x10EAD, 0x10EAD, prBA, gcPd}, // YEZIDI HYPHENATION MARK - {0x10EB0, 0x10EB1, prAL, gcLo}, // [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE - {0x10EFD, 0x10EFF, prCM, gcMn}, // [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA - {0x10F00, 0x10F1C, prAL, gcLo}, // [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL - {0x10F1D, 0x10F26, prAL, gcNo}, // [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF - {0x10F27, 0x10F27, prAL, gcLo}, // OLD SOGDIAN LIGATURE AYIN-DALETH - {0x10F30, 0x10F45, prAL, gcLo}, // [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN - {0x10F46, 0x10F50, prCM, gcMn}, // [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW - {0x10F51, 0x10F54, prAL, gcNo}, // [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED - {0x10F55, 0x10F59, prAL, gcPo}, // [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT - {0x10F70, 0x10F81, prAL, gcLo}, // [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH - {0x10F82, 0x10F85, prCM, gcMn}, // [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW - {0x10F86, 0x10F89, prAL, gcPo}, // [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS - {0x10FB0, 0x10FC4, prAL, gcLo}, // [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW - {0x10FC5, 0x10FCB, prAL, gcNo}, // [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED - {0x10FE0, 0x10FF6, prAL, gcLo}, // [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH - {0x11000, 0x11000, prCM, gcMc}, // BRAHMI SIGN CANDRABINDU - {0x11001, 0x11001, prCM, gcMn}, // BRAHMI SIGN ANUSVARA - {0x11002, 0x11002, prCM, gcMc}, // BRAHMI SIGN VISARGA - {0x11003, 0x11037, prAL, gcLo}, // [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA - {0x11038, 0x11046, prCM, gcMn}, // [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA - {0x11047, 0x11048, prBA, gcPo}, // [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA - {0x11049, 0x1104D, prAL, gcPo}, // [5] BRAHMI PUNCTUATION DOT..BRAHMI PUNCTUATION LOTUS - {0x11052, 0x11065, prAL, gcNo}, // [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND - {0x11066, 0x1106F, prNU, gcNd}, // [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE - {0x11070, 0x11070, prCM, gcMn}, // BRAHMI SIGN OLD TAMIL VIRAMA - {0x11071, 0x11072, prAL, gcLo}, // [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O - {0x11073, 0x11074, prCM, gcMn}, // [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O - {0x11075, 0x11075, prAL, gcLo}, // BRAHMI LETTER OLD TAMIL LLA - {0x1107F, 0x1107F, prCM, gcMn}, // BRAHMI NUMBER JOINER - {0x11080, 0x11081, prCM, gcMn}, // [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA - {0x11082, 0x11082, prCM, gcMc}, // KAITHI SIGN VISARGA - {0x11083, 0x110AF, prAL, gcLo}, // [45] KAITHI LETTER A..KAITHI LETTER HA - {0x110B0, 0x110B2, prCM, gcMc}, // [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II - {0x110B3, 0x110B6, prCM, gcMn}, // [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI - {0x110B7, 0x110B8, prCM, gcMc}, // [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU - {0x110B9, 0x110BA, prCM, gcMn}, // [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA - {0x110BB, 0x110BC, prAL, gcPo}, // [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN - {0x110BD, 0x110BD, prAL, gcCf}, // KAITHI NUMBER SIGN - {0x110BE, 0x110C1, prBA, gcPo}, // [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA - {0x110C2, 0x110C2, prCM, gcMn}, // KAITHI VOWEL SIGN VOCALIC R - {0x110CD, 0x110CD, prAL, gcCf}, // KAITHI NUMBER SIGN ABOVE - {0x110D0, 0x110E8, prAL, gcLo}, // [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE - {0x110F0, 0x110F9, prNU, gcNd}, // [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE - {0x11100, 0x11102, prCM, gcMn}, // [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA - {0x11103, 0x11126, prAL, gcLo}, // [36] CHAKMA LETTER AA..CHAKMA LETTER HAA - {0x11127, 0x1112B, prCM, gcMn}, // [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU - {0x1112C, 0x1112C, prCM, gcMc}, // CHAKMA VOWEL SIGN E - {0x1112D, 0x11134, prCM, gcMn}, // [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA - {0x11136, 0x1113F, prNU, gcNd}, // [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE - {0x11140, 0x11143, prBA, gcPo}, // [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK - {0x11144, 0x11144, prAL, gcLo}, // CHAKMA LETTER LHAA - {0x11145, 0x11146, prCM, gcMc}, // [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI - {0x11147, 0x11147, prAL, gcLo}, // CHAKMA LETTER VAA - {0x11150, 0x11172, prAL, gcLo}, // [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA - {0x11173, 0x11173, prCM, gcMn}, // MAHAJANI SIGN NUKTA - {0x11174, 0x11174, prAL, gcPo}, // MAHAJANI ABBREVIATION SIGN - {0x11175, 0x11175, prBB, gcPo}, // MAHAJANI SECTION MARK - {0x11176, 0x11176, prAL, gcLo}, // MAHAJANI LIGATURE SHRI - {0x11180, 0x11181, prCM, gcMn}, // [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA - {0x11182, 0x11182, prCM, gcMc}, // SHARADA SIGN VISARGA - {0x11183, 0x111B2, prAL, gcLo}, // [48] SHARADA LETTER A..SHARADA LETTER HA - {0x111B3, 0x111B5, prCM, gcMc}, // [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II - {0x111B6, 0x111BE, prCM, gcMn}, // [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O - {0x111BF, 0x111C0, prCM, gcMc}, // [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA - {0x111C1, 0x111C4, prAL, gcLo}, // [4] SHARADA SIGN AVAGRAHA..SHARADA OM - {0x111C5, 0x111C6, prBA, gcPo}, // [2] SHARADA DANDA..SHARADA DOUBLE DANDA - {0x111C7, 0x111C7, prAL, gcPo}, // SHARADA ABBREVIATION SIGN - {0x111C8, 0x111C8, prBA, gcPo}, // SHARADA SEPARATOR - {0x111C9, 0x111CC, prCM, gcMn}, // [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK - {0x111CD, 0x111CD, prAL, gcPo}, // SHARADA SUTRA MARK - {0x111CE, 0x111CE, prCM, gcMc}, // SHARADA VOWEL SIGN PRISHTHAMATRA E - {0x111CF, 0x111CF, prCM, gcMn}, // SHARADA SIGN INVERTED CANDRABINDU - {0x111D0, 0x111D9, prNU, gcNd}, // [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE - {0x111DA, 0x111DA, prAL, gcLo}, // SHARADA EKAM - {0x111DB, 0x111DB, prBB, gcPo}, // SHARADA SIGN SIDDHAM - {0x111DC, 0x111DC, prAL, gcLo}, // SHARADA HEADSTROKE - {0x111DD, 0x111DF, prBA, gcPo}, // [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2 - {0x111E1, 0x111F4, prAL, gcNo}, // [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND - {0x11200, 0x11211, prAL, gcLo}, // [18] KHOJKI LETTER A..KHOJKI LETTER JJA - {0x11213, 0x1122B, prAL, gcLo}, // [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA - {0x1122C, 0x1122E, prCM, gcMc}, // [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II - {0x1122F, 0x11231, prCM, gcMn}, // [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI - {0x11232, 0x11233, prCM, gcMc}, // [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU - {0x11234, 0x11234, prCM, gcMn}, // KHOJKI SIGN ANUSVARA - {0x11235, 0x11235, prCM, gcMc}, // KHOJKI SIGN VIRAMA - {0x11236, 0x11237, prCM, gcMn}, // [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA - {0x11238, 0x11239, prBA, gcPo}, // [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA - {0x1123A, 0x1123A, prAL, gcPo}, // KHOJKI WORD SEPARATOR - {0x1123B, 0x1123C, prBA, gcPo}, // [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK - {0x1123D, 0x1123D, prAL, gcPo}, // KHOJKI ABBREVIATION SIGN - {0x1123E, 0x1123E, prCM, gcMn}, // KHOJKI SIGN SUKUN - {0x1123F, 0x11240, prAL, gcLo}, // [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I - {0x11241, 0x11241, prCM, gcMn}, // KHOJKI VOWEL SIGN VOCALIC R - {0x11280, 0x11286, prAL, gcLo}, // [7] MULTANI LETTER A..MULTANI LETTER GA - {0x11288, 0x11288, prAL, gcLo}, // MULTANI LETTER GHA - {0x1128A, 0x1128D, prAL, gcLo}, // [4] MULTANI LETTER CA..MULTANI LETTER JJA - {0x1128F, 0x1129D, prAL, gcLo}, // [15] MULTANI LETTER NYA..MULTANI LETTER BA - {0x1129F, 0x112A8, prAL, gcLo}, // [10] MULTANI LETTER BHA..MULTANI LETTER RHA - {0x112A9, 0x112A9, prBA, gcPo}, // MULTANI SECTION MARK - {0x112B0, 0x112DE, prAL, gcLo}, // [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA - {0x112DF, 0x112DF, prCM, gcMn}, // KHUDAWADI SIGN ANUSVARA - {0x112E0, 0x112E2, prCM, gcMc}, // [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II - {0x112E3, 0x112EA, prCM, gcMn}, // [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA - {0x112F0, 0x112F9, prNU, gcNd}, // [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE - {0x11300, 0x11301, prCM, gcMn}, // [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU - {0x11302, 0x11303, prCM, gcMc}, // [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA - {0x11305, 0x1130C, prAL, gcLo}, // [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L - {0x1130F, 0x11310, prAL, gcLo}, // [2] GRANTHA LETTER EE..GRANTHA LETTER AI - {0x11313, 0x11328, prAL, gcLo}, // [22] GRANTHA LETTER OO..GRANTHA LETTER NA - {0x1132A, 0x11330, prAL, gcLo}, // [7] GRANTHA LETTER PA..GRANTHA LETTER RA - {0x11332, 0x11333, prAL, gcLo}, // [2] GRANTHA LETTER LA..GRANTHA LETTER LLA - {0x11335, 0x11339, prAL, gcLo}, // [5] GRANTHA LETTER VA..GRANTHA LETTER HA - {0x1133B, 0x1133C, prCM, gcMn}, // [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA - {0x1133D, 0x1133D, prAL, gcLo}, // GRANTHA SIGN AVAGRAHA - {0x1133E, 0x1133F, prCM, gcMc}, // [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I - {0x11340, 0x11340, prCM, gcMn}, // GRANTHA VOWEL SIGN II - {0x11341, 0x11344, prCM, gcMc}, // [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR - {0x11347, 0x11348, prCM, gcMc}, // [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI - {0x1134B, 0x1134D, prCM, gcMc}, // [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA - {0x11350, 0x11350, prAL, gcLo}, // GRANTHA OM - {0x11357, 0x11357, prCM, gcMc}, // GRANTHA AU LENGTH MARK - {0x1135D, 0x11361, prAL, gcLo}, // [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL - {0x11362, 0x11363, prCM, gcMc}, // [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL - {0x11366, 0x1136C, prCM, gcMn}, // [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX - {0x11370, 0x11374, prCM, gcMn}, // [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA - {0x11400, 0x11434, prAL, gcLo}, // [53] NEWA LETTER A..NEWA LETTER HA - {0x11435, 0x11437, prCM, gcMc}, // [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II - {0x11438, 0x1143F, prCM, gcMn}, // [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI - {0x11440, 0x11441, prCM, gcMc}, // [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU - {0x11442, 0x11444, prCM, gcMn}, // [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA - {0x11445, 0x11445, prCM, gcMc}, // NEWA SIGN VISARGA - {0x11446, 0x11446, prCM, gcMn}, // NEWA SIGN NUKTA - {0x11447, 0x1144A, prAL, gcLo}, // [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI - {0x1144B, 0x1144E, prBA, gcPo}, // [4] NEWA DANDA..NEWA GAP FILLER - {0x1144F, 0x1144F, prAL, gcPo}, // NEWA ABBREVIATION SIGN - {0x11450, 0x11459, prNU, gcNd}, // [10] NEWA DIGIT ZERO..NEWA DIGIT NINE - {0x1145A, 0x1145B, prBA, gcPo}, // [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK - {0x1145D, 0x1145D, prAL, gcPo}, // NEWA INSERTION SIGN - {0x1145E, 0x1145E, prCM, gcMn}, // NEWA SANDHI MARK - {0x1145F, 0x11461, prAL, gcLo}, // [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA - {0x11480, 0x114AF, prAL, gcLo}, // [48] TIRHUTA ANJI..TIRHUTA LETTER HA - {0x114B0, 0x114B2, prCM, gcMc}, // [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II - {0x114B3, 0x114B8, prCM, gcMn}, // [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL - {0x114B9, 0x114B9, prCM, gcMc}, // TIRHUTA VOWEL SIGN E - {0x114BA, 0x114BA, prCM, gcMn}, // TIRHUTA VOWEL SIGN SHORT E - {0x114BB, 0x114BE, prCM, gcMc}, // [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU - {0x114BF, 0x114C0, prCM, gcMn}, // [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA - {0x114C1, 0x114C1, prCM, gcMc}, // TIRHUTA SIGN VISARGA - {0x114C2, 0x114C3, prCM, gcMn}, // [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA - {0x114C4, 0x114C5, prAL, gcLo}, // [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG - {0x114C6, 0x114C6, prAL, gcPo}, // TIRHUTA ABBREVIATION SIGN - {0x114C7, 0x114C7, prAL, gcLo}, // TIRHUTA OM - {0x114D0, 0x114D9, prNU, gcNd}, // [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE - {0x11580, 0x115AE, prAL, gcLo}, // [47] SIDDHAM LETTER A..SIDDHAM LETTER HA - {0x115AF, 0x115B1, prCM, gcMc}, // [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II - {0x115B2, 0x115B5, prCM, gcMn}, // [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR - {0x115B8, 0x115BB, prCM, gcMc}, // [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU - {0x115BC, 0x115BD, prCM, gcMn}, // [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA - {0x115BE, 0x115BE, prCM, gcMc}, // SIDDHAM SIGN VISARGA - {0x115BF, 0x115C0, prCM, gcMn}, // [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA - {0x115C1, 0x115C1, prBB, gcPo}, // SIDDHAM SIGN SIDDHAM - {0x115C2, 0x115C3, prBA, gcPo}, // [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA - {0x115C4, 0x115C5, prEX, gcPo}, // [2] SIDDHAM SEPARATOR DOT..SIDDHAM SEPARATOR BAR - {0x115C6, 0x115C8, prAL, gcPo}, // [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3 - {0x115C9, 0x115D7, prBA, gcPo}, // [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES - {0x115D8, 0x115DB, prAL, gcLo}, // [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U - {0x115DC, 0x115DD, prCM, gcMn}, // [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU - {0x11600, 0x1162F, prAL, gcLo}, // [48] MODI LETTER A..MODI LETTER LLA - {0x11630, 0x11632, prCM, gcMc}, // [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II - {0x11633, 0x1163A, prCM, gcMn}, // [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI - {0x1163B, 0x1163C, prCM, gcMc}, // [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU - {0x1163D, 0x1163D, prCM, gcMn}, // MODI SIGN ANUSVARA - {0x1163E, 0x1163E, prCM, gcMc}, // MODI SIGN VISARGA - {0x1163F, 0x11640, prCM, gcMn}, // [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA - {0x11641, 0x11642, prBA, gcPo}, // [2] MODI DANDA..MODI DOUBLE DANDA - {0x11643, 0x11643, prAL, gcPo}, // MODI ABBREVIATION SIGN - {0x11644, 0x11644, prAL, gcLo}, // MODI SIGN HUVA - {0x11650, 0x11659, prNU, gcNd}, // [10] MODI DIGIT ZERO..MODI DIGIT NINE - {0x11660, 0x1166C, prBB, gcPo}, // [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT - {0x11680, 0x116AA, prAL, gcLo}, // [43] TAKRI LETTER A..TAKRI LETTER RRA - {0x116AB, 0x116AB, prCM, gcMn}, // TAKRI SIGN ANUSVARA - {0x116AC, 0x116AC, prCM, gcMc}, // TAKRI SIGN VISARGA - {0x116AD, 0x116AD, prCM, gcMn}, // TAKRI VOWEL SIGN AA - {0x116AE, 0x116AF, prCM, gcMc}, // [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II - {0x116B0, 0x116B5, prCM, gcMn}, // [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU - {0x116B6, 0x116B6, prCM, gcMc}, // TAKRI SIGN VIRAMA - {0x116B7, 0x116B7, prCM, gcMn}, // TAKRI SIGN NUKTA - {0x116B8, 0x116B8, prAL, gcLo}, // TAKRI LETTER ARCHAIC KHA - {0x116B9, 0x116B9, prAL, gcPo}, // TAKRI ABBREVIATION SIGN - {0x116C0, 0x116C9, prNU, gcNd}, // [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE - {0x11700, 0x1171A, prSA, gcLo}, // [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA - {0x1171D, 0x1171F, prSA, gcMn}, // [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA - {0x11720, 0x11721, prSA, gcMc}, // [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA - {0x11722, 0x11725, prSA, gcMn}, // [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU - {0x11726, 0x11726, prSA, gcMc}, // AHOM VOWEL SIGN E - {0x11727, 0x1172B, prSA, gcMn}, // [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER - {0x11730, 0x11739, prNU, gcNd}, // [10] AHOM DIGIT ZERO..AHOM DIGIT NINE - {0x1173A, 0x1173B, prSA, gcNo}, // [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY - {0x1173C, 0x1173E, prBA, gcPo}, // [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI - {0x1173F, 0x1173F, prSA, gcSo}, // AHOM SYMBOL VI - {0x11740, 0x11746, prSA, gcLo}, // [7] AHOM LETTER CA..AHOM LETTER LLA - {0x11800, 0x1182B, prAL, gcLo}, // [44] DOGRA LETTER A..DOGRA LETTER RRA - {0x1182C, 0x1182E, prCM, gcMc}, // [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II - {0x1182F, 0x11837, prCM, gcMn}, // [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA - {0x11838, 0x11838, prCM, gcMc}, // DOGRA SIGN VISARGA - {0x11839, 0x1183A, prCM, gcMn}, // [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA - {0x1183B, 0x1183B, prAL, gcPo}, // DOGRA ABBREVIATION SIGN - {0x118A0, 0x118DF, prAL, gcLC}, // [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO - {0x118E0, 0x118E9, prNU, gcNd}, // [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE - {0x118EA, 0x118F2, prAL, gcNo}, // [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY - {0x118FF, 0x118FF, prAL, gcLo}, // WARANG CITI OM - {0x11900, 0x11906, prAL, gcLo}, // [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E - {0x11909, 0x11909, prAL, gcLo}, // DIVES AKURU LETTER O - {0x1190C, 0x11913, prAL, gcLo}, // [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA - {0x11915, 0x11916, prAL, gcLo}, // [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA - {0x11918, 0x1192F, prAL, gcLo}, // [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA - {0x11930, 0x11935, prCM, gcMc}, // [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E - {0x11937, 0x11938, prCM, gcMc}, // [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O - {0x1193B, 0x1193C, prCM, gcMn}, // [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU - {0x1193D, 0x1193D, prCM, gcMc}, // DIVES AKURU SIGN HALANTA - {0x1193E, 0x1193E, prCM, gcMn}, // DIVES AKURU VIRAMA - {0x1193F, 0x1193F, prAL, gcLo}, // DIVES AKURU PREFIXED NASAL SIGN - {0x11940, 0x11940, prCM, gcMc}, // DIVES AKURU MEDIAL YA - {0x11941, 0x11941, prAL, gcLo}, // DIVES AKURU INITIAL RA - {0x11942, 0x11942, prCM, gcMc}, // DIVES AKURU MEDIAL RA - {0x11943, 0x11943, prCM, gcMn}, // DIVES AKURU SIGN NUKTA - {0x11944, 0x11946, prBA, gcPo}, // [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK - {0x11950, 0x11959, prNU, gcNd}, // [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE - {0x119A0, 0x119A7, prAL, gcLo}, // [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR - {0x119AA, 0x119D0, prAL, gcLo}, // [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA - {0x119D1, 0x119D3, prCM, gcMc}, // [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II - {0x119D4, 0x119D7, prCM, gcMn}, // [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR - {0x119DA, 0x119DB, prCM, gcMn}, // [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI - {0x119DC, 0x119DF, prCM, gcMc}, // [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA - {0x119E0, 0x119E0, prCM, gcMn}, // NANDINAGARI SIGN VIRAMA - {0x119E1, 0x119E1, prAL, gcLo}, // NANDINAGARI SIGN AVAGRAHA - {0x119E2, 0x119E2, prBB, gcPo}, // NANDINAGARI SIGN SIDDHAM - {0x119E3, 0x119E3, prAL, gcLo}, // NANDINAGARI HEADSTROKE - {0x119E4, 0x119E4, prCM, gcMc}, // NANDINAGARI VOWEL SIGN PRISHTHAMATRA E - {0x11A00, 0x11A00, prAL, gcLo}, // ZANABAZAR SQUARE LETTER A - {0x11A01, 0x11A0A, prCM, gcMn}, // [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK - {0x11A0B, 0x11A32, prAL, gcLo}, // [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA - {0x11A33, 0x11A38, prCM, gcMn}, // [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA - {0x11A39, 0x11A39, prCM, gcMc}, // ZANABAZAR SQUARE SIGN VISARGA - {0x11A3A, 0x11A3A, prAL, gcLo}, // ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA - {0x11A3B, 0x11A3E, prCM, gcMn}, // [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA - {0x11A3F, 0x11A3F, prBB, gcPo}, // ZANABAZAR SQUARE INITIAL HEAD MARK - {0x11A40, 0x11A40, prAL, gcPo}, // ZANABAZAR SQUARE CLOSING HEAD MARK - {0x11A41, 0x11A44, prBA, gcPo}, // [4] ZANABAZAR SQUARE MARK TSHEG..ZANABAZAR SQUARE MARK LONG TSHEG - {0x11A45, 0x11A45, prBB, gcPo}, // ZANABAZAR SQUARE INITIAL DOUBLE-LINED HEAD MARK - {0x11A46, 0x11A46, prAL, gcPo}, // ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK - {0x11A47, 0x11A47, prCM, gcMn}, // ZANABAZAR SQUARE SUBJOINER - {0x11A50, 0x11A50, prAL, gcLo}, // SOYOMBO LETTER A - {0x11A51, 0x11A56, prCM, gcMn}, // [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE - {0x11A57, 0x11A58, prCM, gcMc}, // [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU - {0x11A59, 0x11A5B, prCM, gcMn}, // [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK - {0x11A5C, 0x11A89, prAL, gcLo}, // [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA - {0x11A8A, 0x11A96, prCM, gcMn}, // [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA - {0x11A97, 0x11A97, prCM, gcMc}, // SOYOMBO SIGN VISARGA - {0x11A98, 0x11A99, prCM, gcMn}, // [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER - {0x11A9A, 0x11A9C, prBA, gcPo}, // [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD - {0x11A9D, 0x11A9D, prAL, gcLo}, // SOYOMBO MARK PLUTA - {0x11A9E, 0x11AA0, prBB, gcPo}, // [3] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO HEAD MARK WITH MOON AND SUN - {0x11AA1, 0x11AA2, prBA, gcPo}, // [2] SOYOMBO TERMINAL MARK-1..SOYOMBO TERMINAL MARK-2 - {0x11AB0, 0x11ABF, prAL, gcLo}, // [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA - {0x11AC0, 0x11AF8, prAL, gcLo}, // [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL - {0x11B00, 0x11B09, prBB, gcPo}, // [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU - {0x11C00, 0x11C08, prAL, gcLo}, // [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L - {0x11C0A, 0x11C2E, prAL, gcLo}, // [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA - {0x11C2F, 0x11C2F, prCM, gcMc}, // BHAIKSUKI VOWEL SIGN AA - {0x11C30, 0x11C36, prCM, gcMn}, // [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L - {0x11C38, 0x11C3D, prCM, gcMn}, // [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA - {0x11C3E, 0x11C3E, prCM, gcMc}, // BHAIKSUKI SIGN VISARGA - {0x11C3F, 0x11C3F, prCM, gcMn}, // BHAIKSUKI SIGN VIRAMA - {0x11C40, 0x11C40, prAL, gcLo}, // BHAIKSUKI SIGN AVAGRAHA - {0x11C41, 0x11C45, prBA, gcPo}, // [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2 - {0x11C50, 0x11C59, prNU, gcNd}, // [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE - {0x11C5A, 0x11C6C, prAL, gcNo}, // [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK - {0x11C70, 0x11C70, prBB, gcPo}, // MARCHEN HEAD MARK - {0x11C71, 0x11C71, prEX, gcPo}, // MARCHEN MARK SHAD - {0x11C72, 0x11C8F, prAL, gcLo}, // [30] MARCHEN LETTER KA..MARCHEN LETTER A - {0x11C92, 0x11CA7, prCM, gcMn}, // [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA - {0x11CA9, 0x11CA9, prCM, gcMc}, // MARCHEN SUBJOINED LETTER YA - {0x11CAA, 0x11CB0, prCM, gcMn}, // [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA - {0x11CB1, 0x11CB1, prCM, gcMc}, // MARCHEN VOWEL SIGN I - {0x11CB2, 0x11CB3, prCM, gcMn}, // [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E - {0x11CB4, 0x11CB4, prCM, gcMc}, // MARCHEN VOWEL SIGN O - {0x11CB5, 0x11CB6, prCM, gcMn}, // [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU - {0x11D00, 0x11D06, prAL, gcLo}, // [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E - {0x11D08, 0x11D09, prAL, gcLo}, // [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O - {0x11D0B, 0x11D30, prAL, gcLo}, // [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA - {0x11D31, 0x11D36, prCM, gcMn}, // [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R - {0x11D3A, 0x11D3A, prCM, gcMn}, // MASARAM GONDI VOWEL SIGN E - {0x11D3C, 0x11D3D, prCM, gcMn}, // [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O - {0x11D3F, 0x11D45, prCM, gcMn}, // [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA - {0x11D46, 0x11D46, prAL, gcLo}, // MASARAM GONDI REPHA - {0x11D47, 0x11D47, prCM, gcMn}, // MASARAM GONDI RA-KARA - {0x11D50, 0x11D59, prNU, gcNd}, // [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE - {0x11D60, 0x11D65, prAL, gcLo}, // [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU - {0x11D67, 0x11D68, prAL, gcLo}, // [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI - {0x11D6A, 0x11D89, prAL, gcLo}, // [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA - {0x11D8A, 0x11D8E, prCM, gcMc}, // [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU - {0x11D90, 0x11D91, prCM, gcMn}, // [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI - {0x11D93, 0x11D94, prCM, gcMc}, // [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU - {0x11D95, 0x11D95, prCM, gcMn}, // GUNJALA GONDI SIGN ANUSVARA - {0x11D96, 0x11D96, prCM, gcMc}, // GUNJALA GONDI SIGN VISARGA - {0x11D97, 0x11D97, prCM, gcMn}, // GUNJALA GONDI VIRAMA - {0x11D98, 0x11D98, prAL, gcLo}, // GUNJALA GONDI OM - {0x11DA0, 0x11DA9, prNU, gcNd}, // [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE - {0x11EE0, 0x11EF2, prAL, gcLo}, // [19] MAKASAR LETTER KA..MAKASAR ANGKA - {0x11EF3, 0x11EF4, prCM, gcMn}, // [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U - {0x11EF5, 0x11EF6, prCM, gcMc}, // [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O - {0x11EF7, 0x11EF8, prAL, gcPo}, // [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION - {0x11F00, 0x11F01, prCM, gcMn}, // [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA - {0x11F02, 0x11F02, prAL, gcLo}, // KAWI SIGN REPHA - {0x11F03, 0x11F03, prCM, gcMc}, // KAWI SIGN VISARGA - {0x11F04, 0x11F10, prAL, gcLo}, // [13] KAWI LETTER A..KAWI LETTER O - {0x11F12, 0x11F33, prAL, gcLo}, // [34] KAWI LETTER KA..KAWI LETTER JNYA - {0x11F34, 0x11F35, prCM, gcMc}, // [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA - {0x11F36, 0x11F3A, prCM, gcMn}, // [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R - {0x11F3E, 0x11F3F, prCM, gcMc}, // [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI - {0x11F40, 0x11F40, prCM, gcMn}, // KAWI VOWEL SIGN EU - {0x11F41, 0x11F41, prCM, gcMc}, // KAWI SIGN KILLER - {0x11F42, 0x11F42, prCM, gcMn}, // KAWI CONJOINER - {0x11F43, 0x11F44, prBA, gcPo}, // [2] KAWI DANDA..KAWI DOUBLE DANDA - {0x11F45, 0x11F4F, prID, gcPo}, // [11] KAWI PUNCTUATION SECTION MARKER..KAWI PUNCTUATION CLOSING SPIRAL - {0x11F50, 0x11F59, prNU, gcNd}, // [10] KAWI DIGIT ZERO..KAWI DIGIT NINE - {0x11FB0, 0x11FB0, prAL, gcLo}, // LISU LETTER YHA - {0x11FC0, 0x11FD4, prAL, gcNo}, // [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH - {0x11FD5, 0x11FDC, prAL, gcSo}, // [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI - {0x11FDD, 0x11FE0, prPO, gcSc}, // [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN - {0x11FE1, 0x11FF1, prAL, gcSo}, // [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA - {0x11FFF, 0x11FFF, prBA, gcPo}, // TAMIL PUNCTUATION END OF TEXT - {0x12000, 0x12399, prAL, gcLo}, // [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U - {0x12400, 0x1246E, prAL, gcNl}, // [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM - {0x12470, 0x12474, prBA, gcPo}, // [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON - {0x12480, 0x12543, prAL, gcLo}, // [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU - {0x12F90, 0x12FF0, prAL, gcLo}, // [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114 - {0x12FF1, 0x12FF2, prAL, gcPo}, // [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302 - {0x13000, 0x13257, prAL, gcLo}, // [600] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH O006 - {0x13258, 0x1325A, prOP, gcLo}, // [3] EGYPTIAN HIEROGLYPH O006A..EGYPTIAN HIEROGLYPH O006C - {0x1325B, 0x1325D, prCL, gcLo}, // [3] EGYPTIAN HIEROGLYPH O006D..EGYPTIAN HIEROGLYPH O006F - {0x1325E, 0x13281, prAL, gcLo}, // [36] EGYPTIAN HIEROGLYPH O007..EGYPTIAN HIEROGLYPH O033 - {0x13282, 0x13282, prCL, gcLo}, // EGYPTIAN HIEROGLYPH O033A - {0x13283, 0x13285, prAL, gcLo}, // [3] EGYPTIAN HIEROGLYPH O034..EGYPTIAN HIEROGLYPH O036 - {0x13286, 0x13286, prOP, gcLo}, // EGYPTIAN HIEROGLYPH O036A - {0x13287, 0x13287, prCL, gcLo}, // EGYPTIAN HIEROGLYPH O036B - {0x13288, 0x13288, prOP, gcLo}, // EGYPTIAN HIEROGLYPH O036C - {0x13289, 0x13289, prCL, gcLo}, // EGYPTIAN HIEROGLYPH O036D - {0x1328A, 0x13378, prAL, gcLo}, // [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011 - {0x13379, 0x13379, prOP, gcLo}, // EGYPTIAN HIEROGLYPH V011A - {0x1337A, 0x1337B, prCL, gcLo}, // [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C - {0x1337C, 0x1342F, prAL, gcLo}, // [180] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH V011D - {0x13430, 0x13436, prGL, gcCf}, // [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE - {0x13437, 0x13437, prOP, gcCf}, // EGYPTIAN HIEROGLYPH BEGIN SEGMENT - {0x13438, 0x13438, prCL, gcCf}, // EGYPTIAN HIEROGLYPH END SEGMENT - {0x13439, 0x1343B, prGL, gcCf}, // [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM - {0x1343C, 0x1343C, prOP, gcCf}, // EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE - {0x1343D, 0x1343D, prCL, gcCf}, // EGYPTIAN HIEROGLYPH END ENCLOSURE - {0x1343E, 0x1343E, prOP, gcCf}, // EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE - {0x1343F, 0x1343F, prCL, gcCf}, // EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE - {0x13440, 0x13440, prCM, gcMn}, // EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY - {0x13441, 0x13446, prAL, gcLo}, // [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN - {0x13447, 0x13455, prCM, gcMn}, // [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED - {0x14400, 0x145CD, prAL, gcLo}, // [462] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A409 - {0x145CE, 0x145CE, prOP, gcLo}, // ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK - {0x145CF, 0x145CF, prCL, gcLo}, // ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK - {0x145D0, 0x14646, prAL, gcLo}, // [119] ANATOLIAN HIEROGLYPH A411..ANATOLIAN HIEROGLYPH A530 - {0x16800, 0x16A38, prAL, gcLo}, // [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ - {0x16A40, 0x16A5E, prAL, gcLo}, // [31] MRO LETTER TA..MRO LETTER TEK - {0x16A60, 0x16A69, prNU, gcNd}, // [10] MRO DIGIT ZERO..MRO DIGIT NINE - {0x16A6E, 0x16A6F, prBA, gcPo}, // [2] MRO DANDA..MRO DOUBLE DANDA - {0x16A70, 0x16ABE, prAL, gcLo}, // [79] TANGSA LETTER OZ..TANGSA LETTER ZA - {0x16AC0, 0x16AC9, prNU, gcNd}, // [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE - {0x16AD0, 0x16AED, prAL, gcLo}, // [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I - {0x16AF0, 0x16AF4, prCM, gcMn}, // [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE - {0x16AF5, 0x16AF5, prBA, gcPo}, // BASSA VAH FULL STOP - {0x16B00, 0x16B2F, prAL, gcLo}, // [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU - {0x16B30, 0x16B36, prCM, gcMn}, // [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM - {0x16B37, 0x16B39, prBA, gcPo}, // [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM - {0x16B3A, 0x16B3B, prAL, gcPo}, // [2] PAHAWH HMONG SIGN VOS THIAB..PAHAWH HMONG SIGN VOS FEEM - {0x16B3C, 0x16B3F, prAL, gcSo}, // [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB - {0x16B40, 0x16B43, prAL, gcLm}, // [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM - {0x16B44, 0x16B44, prBA, gcPo}, // PAHAWH HMONG SIGN XAUS - {0x16B45, 0x16B45, prAL, gcSo}, // PAHAWH HMONG SIGN CIM TSOV ROG - {0x16B50, 0x16B59, prNU, gcNd}, // [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE - {0x16B5B, 0x16B61, prAL, gcNo}, // [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS - {0x16B63, 0x16B77, prAL, gcLo}, // [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS - {0x16B7D, 0x16B8F, prAL, gcLo}, // [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ - {0x16E40, 0x16E7F, prAL, gcLC}, // [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y - {0x16E80, 0x16E96, prAL, gcNo}, // [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM - {0x16E97, 0x16E98, prBA, gcPo}, // [2] MEDEFAIDRIN COMMA..MEDEFAIDRIN FULL STOP - {0x16E99, 0x16E9A, prAL, gcPo}, // [2] MEDEFAIDRIN SYMBOL AIVA..MEDEFAIDRIN EXCLAMATION OH - {0x16F00, 0x16F4A, prAL, gcLo}, // [75] MIAO LETTER PA..MIAO LETTER RTE - {0x16F4F, 0x16F4F, prCM, gcMn}, // MIAO SIGN CONSONANT MODIFIER BAR - {0x16F50, 0x16F50, prAL, gcLo}, // MIAO LETTER NASALIZATION - {0x16F51, 0x16F87, prCM, gcMc}, // [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI - {0x16F8F, 0x16F92, prCM, gcMn}, // [4] MIAO TONE RIGHT..MIAO TONE BELOW - {0x16F93, 0x16F9F, prAL, gcLm}, // [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 - {0x16FE0, 0x16FE1, prNS, gcLm}, // [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK - {0x16FE2, 0x16FE2, prNS, gcPo}, // OLD CHINESE HOOK MARK - {0x16FE3, 0x16FE3, prNS, gcLm}, // OLD CHINESE ITERATION MARK - {0x16FE4, 0x16FE4, prGL, gcMn}, // KHITAN SMALL SCRIPT FILLER - {0x16FF0, 0x16FF1, prCM, gcMc}, // [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY - {0x17000, 0x187F7, prID, gcLo}, // [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 - {0x18800, 0x18AFF, prID, gcLo}, // [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768 - {0x18B00, 0x18CD5, prAL, gcLo}, // [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5 - {0x18D00, 0x18D08, prID, gcLo}, // [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08 - {0x1AFF0, 0x1AFF3, prAL, gcLm}, // [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 - {0x1AFF5, 0x1AFFB, prAL, gcLm}, // [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 - {0x1AFFD, 0x1AFFE, prAL, gcLm}, // [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 - {0x1B000, 0x1B0FF, prID, gcLo}, // [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2 - {0x1B100, 0x1B122, prID, gcLo}, // [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU - {0x1B132, 0x1B132, prCJ, gcLo}, // HIRAGANA LETTER SMALL KO - {0x1B150, 0x1B152, prCJ, gcLo}, // [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO - {0x1B155, 0x1B155, prCJ, gcLo}, // KATAKANA LETTER SMALL KO - {0x1B164, 0x1B167, prCJ, gcLo}, // [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N - {0x1B170, 0x1B2FB, prID, gcLo}, // [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB - {0x1BC00, 0x1BC6A, prAL, gcLo}, // [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M - {0x1BC70, 0x1BC7C, prAL, gcLo}, // [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK - {0x1BC80, 0x1BC88, prAL, gcLo}, // [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL - {0x1BC90, 0x1BC99, prAL, gcLo}, // [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW - {0x1BC9C, 0x1BC9C, prAL, gcSo}, // DUPLOYAN SIGN O WITH CROSS - {0x1BC9D, 0x1BC9E, prCM, gcMn}, // [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK - {0x1BC9F, 0x1BC9F, prBA, gcPo}, // DUPLOYAN PUNCTUATION CHINOOK FULL STOP - {0x1BCA0, 0x1BCA3, prCM, gcCf}, // [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP - {0x1CF00, 0x1CF2D, prCM, gcMn}, // [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT - {0x1CF30, 0x1CF46, prCM, gcMn}, // [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG - {0x1CF50, 0x1CFC3, prAL, gcSo}, // [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK - {0x1D000, 0x1D0F5, prAL, gcSo}, // [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO - {0x1D100, 0x1D126, prAL, gcSo}, // [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2 - {0x1D129, 0x1D164, prAL, gcSo}, // [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE - {0x1D165, 0x1D166, prCM, gcMc}, // [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM - {0x1D167, 0x1D169, prCM, gcMn}, // [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 - {0x1D16A, 0x1D16C, prAL, gcSo}, // [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3 - {0x1D16D, 0x1D172, prCM, gcMc}, // [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 - {0x1D173, 0x1D17A, prCM, gcCf}, // [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE - {0x1D17B, 0x1D182, prCM, gcMn}, // [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE - {0x1D183, 0x1D184, prAL, gcSo}, // [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN - {0x1D185, 0x1D18B, prCM, gcMn}, // [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE - {0x1D18C, 0x1D1A9, prAL, gcSo}, // [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH - {0x1D1AA, 0x1D1AD, prCM, gcMn}, // [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO - {0x1D1AE, 0x1D1EA, prAL, gcSo}, // [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON - {0x1D200, 0x1D241, prAL, gcSo}, // [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54 - {0x1D242, 0x1D244, prCM, gcMn}, // [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME - {0x1D245, 0x1D245, prAL, gcSo}, // GREEK MUSICAL LEIMMA - {0x1D2C0, 0x1D2D3, prAL, gcNo}, // [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN - {0x1D2E0, 0x1D2F3, prAL, gcNo}, // [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN - {0x1D300, 0x1D356, prAL, gcSo}, // [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING - {0x1D360, 0x1D378, prAL, gcNo}, // [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE - {0x1D400, 0x1D454, prAL, gcLC}, // [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G - {0x1D456, 0x1D49C, prAL, gcLC}, // [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A - {0x1D49E, 0x1D49F, prAL, gcLu}, // [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D - {0x1D4A2, 0x1D4A2, prAL, gcLu}, // MATHEMATICAL SCRIPT CAPITAL G - {0x1D4A5, 0x1D4A6, prAL, gcLu}, // [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K - {0x1D4A9, 0x1D4AC, prAL, gcLu}, // [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q - {0x1D4AE, 0x1D4B9, prAL, gcLC}, // [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D - {0x1D4BB, 0x1D4BB, prAL, gcLl}, // MATHEMATICAL SCRIPT SMALL F - {0x1D4BD, 0x1D4C3, prAL, gcLl}, // [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N - {0x1D4C5, 0x1D505, prAL, gcLC}, // [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B - {0x1D507, 0x1D50A, prAL, gcLu}, // [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G - {0x1D50D, 0x1D514, prAL, gcLu}, // [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q - {0x1D516, 0x1D51C, prAL, gcLu}, // [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y - {0x1D51E, 0x1D539, prAL, gcLC}, // [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B - {0x1D53B, 0x1D53E, prAL, gcLu}, // [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G - {0x1D540, 0x1D544, prAL, gcLu}, // [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M - {0x1D546, 0x1D546, prAL, gcLu}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL O - {0x1D54A, 0x1D550, prAL, gcLu}, // [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y - {0x1D552, 0x1D6A5, prAL, gcLC}, // [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J - {0x1D6A8, 0x1D6C0, prAL, gcLu}, // [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA - {0x1D6C1, 0x1D6C1, prAL, gcSm}, // MATHEMATICAL BOLD NABLA - {0x1D6C2, 0x1D6DA, prAL, gcLl}, // [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA - {0x1D6DB, 0x1D6DB, prAL, gcSm}, // MATHEMATICAL BOLD PARTIAL DIFFERENTIAL - {0x1D6DC, 0x1D6FA, prAL, gcLC}, // [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA - {0x1D6FB, 0x1D6FB, prAL, gcSm}, // MATHEMATICAL ITALIC NABLA - {0x1D6FC, 0x1D714, prAL, gcLl}, // [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA - {0x1D715, 0x1D715, prAL, gcSm}, // MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL - {0x1D716, 0x1D734, prAL, gcLC}, // [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA - {0x1D735, 0x1D735, prAL, gcSm}, // MATHEMATICAL BOLD ITALIC NABLA - {0x1D736, 0x1D74E, prAL, gcLl}, // [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA - {0x1D74F, 0x1D74F, prAL, gcSm}, // MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL - {0x1D750, 0x1D76E, prAL, gcLC}, // [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA - {0x1D76F, 0x1D76F, prAL, gcSm}, // MATHEMATICAL SANS-SERIF BOLD NABLA - {0x1D770, 0x1D788, prAL, gcLl}, // [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA - {0x1D789, 0x1D789, prAL, gcSm}, // MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL - {0x1D78A, 0x1D7A8, prAL, gcLC}, // [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA - {0x1D7A9, 0x1D7A9, prAL, gcSm}, // MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA - {0x1D7AA, 0x1D7C2, prAL, gcLl}, // [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA - {0x1D7C3, 0x1D7C3, prAL, gcSm}, // MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL - {0x1D7C4, 0x1D7CB, prAL, gcLC}, // [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA - {0x1D7CE, 0x1D7FF, prNU, gcNd}, // [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE - {0x1D800, 0x1D9FF, prAL, gcSo}, // [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD - {0x1DA00, 0x1DA36, prCM, gcMn}, // [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN - {0x1DA37, 0x1DA3A, prAL, gcSo}, // [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE - {0x1DA3B, 0x1DA6C, prCM, gcMn}, // [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT - {0x1DA6D, 0x1DA74, prAL, gcSo}, // [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING - {0x1DA75, 0x1DA75, prCM, gcMn}, // SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS - {0x1DA76, 0x1DA83, prAL, gcSo}, // [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH - {0x1DA84, 0x1DA84, prCM, gcMn}, // SIGNWRITING LOCATION HEAD NECK - {0x1DA85, 0x1DA86, prAL, gcSo}, // [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS - {0x1DA87, 0x1DA8A, prBA, gcPo}, // [4] SIGNWRITING COMMA..SIGNWRITING COLON - {0x1DA8B, 0x1DA8B, prAL, gcPo}, // SIGNWRITING PARENTHESIS - {0x1DA9B, 0x1DA9F, prCM, gcMn}, // [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 - {0x1DAA1, 0x1DAAF, prCM, gcMn}, // [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 - {0x1DF00, 0x1DF09, prAL, gcLl}, // [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK - {0x1DF0A, 0x1DF0A, prAL, gcLo}, // LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK - {0x1DF0B, 0x1DF1E, prAL, gcLl}, // [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL - {0x1DF25, 0x1DF2A, prAL, gcLl}, // [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK - {0x1E000, 0x1E006, prCM, gcMn}, // [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE - {0x1E008, 0x1E018, prCM, gcMn}, // [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU - {0x1E01B, 0x1E021, prCM, gcMn}, // [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI - {0x1E023, 0x1E024, prCM, gcMn}, // [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS - {0x1E026, 0x1E02A, prCM, gcMn}, // [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA - {0x1E030, 0x1E06D, prAL, gcLm}, // [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE - {0x1E08F, 0x1E08F, prCM, gcMn}, // COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - {0x1E100, 0x1E12C, prAL, gcLo}, // [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W - {0x1E130, 0x1E136, prCM, gcMn}, // [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D - {0x1E137, 0x1E13D, prAL, gcLm}, // [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER - {0x1E140, 0x1E149, prNU, gcNd}, // [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE - {0x1E14E, 0x1E14E, prAL, gcLo}, // NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ - {0x1E14F, 0x1E14F, prAL, gcSo}, // NYIAKENG PUACHUE HMONG CIRCLED CA - {0x1E290, 0x1E2AD, prAL, gcLo}, // [30] TOTO LETTER PA..TOTO LETTER A - {0x1E2AE, 0x1E2AE, prCM, gcMn}, // TOTO SIGN RISING TONE - {0x1E2C0, 0x1E2EB, prAL, gcLo}, // [44] WANCHO LETTER AA..WANCHO LETTER YIH - {0x1E2EC, 0x1E2EF, prCM, gcMn}, // [4] WANCHO TONE TUP..WANCHO TONE KOINI - {0x1E2F0, 0x1E2F9, prNU, gcNd}, // [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE - {0x1E2FF, 0x1E2FF, prPR, gcSc}, // WANCHO NGUN SIGN - {0x1E4D0, 0x1E4EA, prAL, gcLo}, // [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL - {0x1E4EB, 0x1E4EB, prAL, gcLm}, // NAG MUNDARI SIGN OJOD - {0x1E4EC, 0x1E4EF, prCM, gcMn}, // [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH - {0x1E4F0, 0x1E4F9, prNU, gcNd}, // [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE - {0x1E7E0, 0x1E7E6, prAL, gcLo}, // [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO - {0x1E7E8, 0x1E7EB, prAL, gcLo}, // [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE - {0x1E7ED, 0x1E7EE, prAL, gcLo}, // [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE - {0x1E7F0, 0x1E7FE, prAL, gcLo}, // [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE - {0x1E800, 0x1E8C4, prAL, gcLo}, // [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON - {0x1E8C7, 0x1E8CF, prAL, gcNo}, // [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE - {0x1E8D0, 0x1E8D6, prCM, gcMn}, // [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS - {0x1E900, 0x1E943, prAL, gcLC}, // [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA - {0x1E944, 0x1E94A, prCM, gcMn}, // [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA - {0x1E94B, 0x1E94B, prAL, gcLm}, // ADLAM NASALIZATION MARK - {0x1E950, 0x1E959, prNU, gcNd}, // [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE - {0x1E95E, 0x1E95F, prOP, gcPo}, // [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK - {0x1EC71, 0x1ECAB, prAL, gcNo}, // [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE - {0x1ECAC, 0x1ECAC, prPO, gcSo}, // INDIC SIYAQ PLACEHOLDER - {0x1ECAD, 0x1ECAF, prAL, gcNo}, // [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS - {0x1ECB0, 0x1ECB0, prPO, gcSc}, // INDIC SIYAQ RUPEE MARK - {0x1ECB1, 0x1ECB4, prAL, gcNo}, // [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK - {0x1ED01, 0x1ED2D, prAL, gcNo}, // [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND - {0x1ED2E, 0x1ED2E, prAL, gcSo}, // OTTOMAN SIYAQ MARRATAN - {0x1ED2F, 0x1ED3D, prAL, gcNo}, // [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH - {0x1EE00, 0x1EE03, prAL, gcLo}, // [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL - {0x1EE05, 0x1EE1F, prAL, gcLo}, // [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF - {0x1EE21, 0x1EE22, prAL, gcLo}, // [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM - {0x1EE24, 0x1EE24, prAL, gcLo}, // ARABIC MATHEMATICAL INITIAL HEH - {0x1EE27, 0x1EE27, prAL, gcLo}, // ARABIC MATHEMATICAL INITIAL HAH - {0x1EE29, 0x1EE32, prAL, gcLo}, // [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF - {0x1EE34, 0x1EE37, prAL, gcLo}, // [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH - {0x1EE39, 0x1EE39, prAL, gcLo}, // ARABIC MATHEMATICAL INITIAL DAD - {0x1EE3B, 0x1EE3B, prAL, gcLo}, // ARABIC MATHEMATICAL INITIAL GHAIN - {0x1EE42, 0x1EE42, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED JEEM - {0x1EE47, 0x1EE47, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED HAH - {0x1EE49, 0x1EE49, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED YEH - {0x1EE4B, 0x1EE4B, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED LAM - {0x1EE4D, 0x1EE4F, prAL, gcLo}, // [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN - {0x1EE51, 0x1EE52, prAL, gcLo}, // [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF - {0x1EE54, 0x1EE54, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED SHEEN - {0x1EE57, 0x1EE57, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED KHAH - {0x1EE59, 0x1EE59, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED DAD - {0x1EE5B, 0x1EE5B, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED GHAIN - {0x1EE5D, 0x1EE5D, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED DOTLESS NOON - {0x1EE5F, 0x1EE5F, prAL, gcLo}, // ARABIC MATHEMATICAL TAILED DOTLESS QAF - {0x1EE61, 0x1EE62, prAL, gcLo}, // [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM - {0x1EE64, 0x1EE64, prAL, gcLo}, // ARABIC MATHEMATICAL STRETCHED HEH - {0x1EE67, 0x1EE6A, prAL, gcLo}, // [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF - {0x1EE6C, 0x1EE72, prAL, gcLo}, // [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF - {0x1EE74, 0x1EE77, prAL, gcLo}, // [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH - {0x1EE79, 0x1EE7C, prAL, gcLo}, // [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH - {0x1EE7E, 0x1EE7E, prAL, gcLo}, // ARABIC MATHEMATICAL STRETCHED DOTLESS FEH - {0x1EE80, 0x1EE89, prAL, gcLo}, // [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH - {0x1EE8B, 0x1EE9B, prAL, gcLo}, // [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN - {0x1EEA1, 0x1EEA3, prAL, gcLo}, // [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL - {0x1EEA5, 0x1EEA9, prAL, gcLo}, // [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH - {0x1EEAB, 0x1EEBB, prAL, gcLo}, // [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN - {0x1EEF0, 0x1EEF1, prAL, gcSm}, // [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL - {0x1F000, 0x1F02B, prID, gcSo}, // [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK - {0x1F02C, 0x1F02F, prID, gcCn}, // [4] .. - {0x1F030, 0x1F093, prID, gcSo}, // [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06 - {0x1F094, 0x1F09F, prID, gcCn}, // [12] .. - {0x1F0A0, 0x1F0AE, prID, gcSo}, // [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES - {0x1F0AF, 0x1F0B0, prID, gcCn}, // [2] .. - {0x1F0B1, 0x1F0BF, prID, gcSo}, // [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER - {0x1F0C0, 0x1F0C0, prID, gcCn}, // - {0x1F0C1, 0x1F0CF, prID, gcSo}, // [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER - {0x1F0D0, 0x1F0D0, prID, gcCn}, // - {0x1F0D1, 0x1F0F5, prID, gcSo}, // [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21 - {0x1F0F6, 0x1F0FF, prID, gcCn}, // [10] .. - {0x1F100, 0x1F10C, prAI, gcNo}, // [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO - {0x1F10D, 0x1F10F, prID, gcSo}, // [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH - {0x1F110, 0x1F12D, prAI, gcSo}, // [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD - {0x1F12E, 0x1F12F, prAL, gcSo}, // [2] CIRCLED WZ..COPYLEFT SYMBOL - {0x1F130, 0x1F169, prAI, gcSo}, // [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z - {0x1F16A, 0x1F16C, prAL, gcSo}, // [3] RAISED MC SIGN..RAISED MR SIGN - {0x1F16D, 0x1F16F, prID, gcSo}, // [3] CIRCLED CC..CIRCLED HUMAN FIGURE - {0x1F170, 0x1F1AC, prAI, gcSo}, // [61] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VOD - {0x1F1AD, 0x1F1AD, prID, gcSo}, // MASK WORK SYMBOL - {0x1F1AE, 0x1F1E5, prID, gcCn}, // [56] .. - {0x1F1E6, 0x1F1FF, prRI, gcSo}, // [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z - {0x1F200, 0x1F202, prID, gcSo}, // [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA - {0x1F203, 0x1F20F, prID, gcCn}, // [13] .. - {0x1F210, 0x1F23B, prID, gcSo}, // [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D - {0x1F23C, 0x1F23F, prID, gcCn}, // [4] .. - {0x1F240, 0x1F248, prID, gcSo}, // [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 - {0x1F249, 0x1F24F, prID, gcCn}, // [7] .. - {0x1F250, 0x1F251, prID, gcSo}, // [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT - {0x1F252, 0x1F25F, prID, gcCn}, // [14] .. - {0x1F260, 0x1F265, prID, gcSo}, // [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI - {0x1F266, 0x1F2FF, prID, gcCn}, // [154] .. - {0x1F300, 0x1F384, prID, gcSo}, // [133] CYCLONE..CHRISTMAS TREE - {0x1F385, 0x1F385, prEB, gcSo}, // FATHER CHRISTMAS - {0x1F386, 0x1F39B, prID, gcSo}, // [22] FIREWORKS..CONTROL KNOBS - {0x1F39C, 0x1F39D, prAL, gcSo}, // [2] BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES - {0x1F39E, 0x1F3B4, prID, gcSo}, // [23] FILM FRAMES..FLOWER PLAYING CARDS - {0x1F3B5, 0x1F3B6, prAL, gcSo}, // [2] MUSICAL NOTE..MULTIPLE MUSICAL NOTES - {0x1F3B7, 0x1F3BB, prID, gcSo}, // [5] SAXOPHONE..VIOLIN - {0x1F3BC, 0x1F3BC, prAL, gcSo}, // MUSICAL SCORE - {0x1F3BD, 0x1F3C1, prID, gcSo}, // [5] RUNNING SHIRT WITH SASH..CHEQUERED FLAG - {0x1F3C2, 0x1F3C4, prEB, gcSo}, // [3] SNOWBOARDER..SURFER - {0x1F3C5, 0x1F3C6, prID, gcSo}, // [2] SPORTS MEDAL..TROPHY - {0x1F3C7, 0x1F3C7, prEB, gcSo}, // HORSE RACING - {0x1F3C8, 0x1F3C9, prID, gcSo}, // [2] AMERICAN FOOTBALL..RUGBY FOOTBALL - {0x1F3CA, 0x1F3CC, prEB, gcSo}, // [3] SWIMMER..GOLFER - {0x1F3CD, 0x1F3FA, prID, gcSo}, // [46] RACING MOTORCYCLE..AMPHORA - {0x1F3FB, 0x1F3FF, prEM, gcSk}, // [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 - {0x1F400, 0x1F441, prID, gcSo}, // [66] RAT..EYE - {0x1F442, 0x1F443, prEB, gcSo}, // [2] EAR..NOSE - {0x1F444, 0x1F445, prID, gcSo}, // [2] MOUTH..TONGUE - {0x1F446, 0x1F450, prEB, gcSo}, // [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN - {0x1F451, 0x1F465, prID, gcSo}, // [21] CROWN..BUSTS IN SILHOUETTE - {0x1F466, 0x1F478, prEB, gcSo}, // [19] BOY..PRINCESS - {0x1F479, 0x1F47B, prID, gcSo}, // [3] JAPANESE OGRE..GHOST - {0x1F47C, 0x1F47C, prEB, gcSo}, // BABY ANGEL - {0x1F47D, 0x1F480, prID, gcSo}, // [4] EXTRATERRESTRIAL ALIEN..SKULL - {0x1F481, 0x1F483, prEB, gcSo}, // [3] INFORMATION DESK PERSON..DANCER - {0x1F484, 0x1F484, prID, gcSo}, // LIPSTICK - {0x1F485, 0x1F487, prEB, gcSo}, // [3] NAIL POLISH..HAIRCUT - {0x1F488, 0x1F48E, prID, gcSo}, // [7] BARBER POLE..GEM STONE - {0x1F48F, 0x1F48F, prEB, gcSo}, // KISS - {0x1F490, 0x1F490, prID, gcSo}, // BOUQUET - {0x1F491, 0x1F491, prEB, gcSo}, // COUPLE WITH HEART - {0x1F492, 0x1F49F, prID, gcSo}, // [14] WEDDING..HEART DECORATION - {0x1F4A0, 0x1F4A0, prAL, gcSo}, // DIAMOND SHAPE WITH A DOT INSIDE - {0x1F4A1, 0x1F4A1, prID, gcSo}, // ELECTRIC LIGHT BULB - {0x1F4A2, 0x1F4A2, prAL, gcSo}, // ANGER SYMBOL - {0x1F4A3, 0x1F4A3, prID, gcSo}, // BOMB - {0x1F4A4, 0x1F4A4, prAL, gcSo}, // SLEEPING SYMBOL - {0x1F4A5, 0x1F4A9, prID, gcSo}, // [5] COLLISION SYMBOL..PILE OF POO - {0x1F4AA, 0x1F4AA, prEB, gcSo}, // FLEXED BICEPS - {0x1F4AB, 0x1F4AE, prID, gcSo}, // [4] DIZZY SYMBOL..WHITE FLOWER - {0x1F4AF, 0x1F4AF, prAL, gcSo}, // HUNDRED POINTS SYMBOL - {0x1F4B0, 0x1F4B0, prID, gcSo}, // MONEY BAG - {0x1F4B1, 0x1F4B2, prAL, gcSo}, // [2] CURRENCY EXCHANGE..HEAVY DOLLAR SIGN - {0x1F4B3, 0x1F4FF, prID, gcSo}, // [77] CREDIT CARD..PRAYER BEADS - {0x1F500, 0x1F506, prAL, gcSo}, // [7] TWISTED RIGHTWARDS ARROWS..HIGH BRIGHTNESS SYMBOL - {0x1F507, 0x1F516, prID, gcSo}, // [16] SPEAKER WITH CANCELLATION STROKE..BOOKMARK - {0x1F517, 0x1F524, prAL, gcSo}, // [14] LINK SYMBOL..INPUT SYMBOL FOR LATIN LETTERS - {0x1F525, 0x1F531, prID, gcSo}, // [13] FIRE..TRIDENT EMBLEM - {0x1F532, 0x1F549, prAL, gcSo}, // [24] BLACK SQUARE BUTTON..OM SYMBOL - {0x1F54A, 0x1F573, prID, gcSo}, // [42] DOVE OF PEACE..HOLE - {0x1F574, 0x1F575, prEB, gcSo}, // [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY - {0x1F576, 0x1F579, prID, gcSo}, // [4] DARK SUNGLASSES..JOYSTICK - {0x1F57A, 0x1F57A, prEB, gcSo}, // MAN DANCING - {0x1F57B, 0x1F58F, prID, gcSo}, // [21] LEFT HAND TELEPHONE RECEIVER..TURNED OK HAND SIGN - {0x1F590, 0x1F590, prEB, gcSo}, // RAISED HAND WITH FINGERS SPLAYED - {0x1F591, 0x1F594, prID, gcSo}, // [4] REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND - {0x1F595, 0x1F596, prEB, gcSo}, // [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS - {0x1F597, 0x1F5D3, prID, gcSo}, // [61] WHITE DOWN POINTING LEFT HAND INDEX..SPIRAL CALENDAR PAD - {0x1F5D4, 0x1F5DB, prAL, gcSo}, // [8] DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL - {0x1F5DC, 0x1F5F3, prID, gcSo}, // [24] COMPRESSION..BALLOT BOX WITH BALLOT - {0x1F5F4, 0x1F5F9, prAL, gcSo}, // [6] BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK - {0x1F5FA, 0x1F5FF, prID, gcSo}, // [6] WORLD MAP..MOYAI - {0x1F600, 0x1F644, prID, gcSo}, // [69] GRINNING FACE..FACE WITH ROLLING EYES - {0x1F645, 0x1F647, prEB, gcSo}, // [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY - {0x1F648, 0x1F64A, prID, gcSo}, // [3] SEE-NO-EVIL MONKEY..SPEAK-NO-EVIL MONKEY - {0x1F64B, 0x1F64F, prEB, gcSo}, // [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS - {0x1F650, 0x1F675, prAL, gcSo}, // [38] NORTH WEST POINTING LEAF..SWASH AMPERSAND ORNAMENT - {0x1F676, 0x1F678, prQU, gcSo}, // [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT - {0x1F679, 0x1F67B, prNS, gcSo}, // [3] HEAVY INTERROBANG ORNAMENT..HEAVY SANS-SERIF INTERROBANG ORNAMENT - {0x1F67C, 0x1F67F, prAL, gcSo}, // [4] VERY HEAVY SOLIDUS..REVERSE CHECKER BOARD - {0x1F680, 0x1F6A2, prID, gcSo}, // [35] ROCKET..SHIP - {0x1F6A3, 0x1F6A3, prEB, gcSo}, // ROWBOAT - {0x1F6A4, 0x1F6B3, prID, gcSo}, // [16] SPEEDBOAT..NO BICYCLES - {0x1F6B4, 0x1F6B6, prEB, gcSo}, // [3] BICYCLIST..PEDESTRIAN - {0x1F6B7, 0x1F6BF, prID, gcSo}, // [9] NO PEDESTRIANS..SHOWER - {0x1F6C0, 0x1F6C0, prEB, gcSo}, // BATH - {0x1F6C1, 0x1F6CB, prID, gcSo}, // [11] BATHTUB..COUCH AND LAMP - {0x1F6CC, 0x1F6CC, prEB, gcSo}, // SLEEPING ACCOMMODATION - {0x1F6CD, 0x1F6D7, prID, gcSo}, // [11] SHOPPING BAGS..ELEVATOR - {0x1F6D8, 0x1F6DB, prID, gcCn}, // [4] .. - {0x1F6DC, 0x1F6EC, prID, gcSo}, // [17] WIRELESS..AIRPLANE ARRIVING - {0x1F6ED, 0x1F6EF, prID, gcCn}, // [3] .. - {0x1F6F0, 0x1F6FC, prID, gcSo}, // [13] SATELLITE..ROLLER SKATE - {0x1F6FD, 0x1F6FF, prID, gcCn}, // [3] .. - {0x1F700, 0x1F773, prAL, gcSo}, // [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE - {0x1F774, 0x1F776, prID, gcSo}, // [3] LOT OF FORTUNE..LUNAR ECLIPSE - {0x1F777, 0x1F77A, prID, gcCn}, // [4] .. - {0x1F77B, 0x1F77F, prID, gcSo}, // [5] HAUMEA..ORCUS - {0x1F780, 0x1F7D4, prAL, gcSo}, // [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR - {0x1F7D5, 0x1F7D9, prID, gcSo}, // [5] CIRCLED TRIANGLE..NINE POINTED WHITE STAR - {0x1F7DA, 0x1F7DF, prID, gcCn}, // [6] .. - {0x1F7E0, 0x1F7EB, prID, gcSo}, // [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE - {0x1F7EC, 0x1F7EF, prID, gcCn}, // [4] .. - {0x1F7F0, 0x1F7F0, prID, gcSo}, // HEAVY EQUALS SIGN - {0x1F7F1, 0x1F7FF, prID, gcCn}, // [15] .. - {0x1F800, 0x1F80B, prAL, gcSo}, // [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD - {0x1F80C, 0x1F80F, prID, gcCn}, // [4] .. - {0x1F810, 0x1F847, prAL, gcSo}, // [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW - {0x1F848, 0x1F84F, prID, gcCn}, // [8] .. - {0x1F850, 0x1F859, prAL, gcSo}, // [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW - {0x1F85A, 0x1F85F, prID, gcCn}, // [6] .. - {0x1F860, 0x1F887, prAL, gcSo}, // [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW - {0x1F888, 0x1F88F, prID, gcCn}, // [8] .. - {0x1F890, 0x1F8AD, prAL, gcSo}, // [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS - {0x1F8AE, 0x1F8AF, prID, gcCn}, // [2] .. - {0x1F8B0, 0x1F8B1, prID, gcSo}, // [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST - {0x1F8B2, 0x1F8FF, prID, gcCn}, // [78] .. - {0x1F900, 0x1F90B, prAL, gcSo}, // [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT - {0x1F90C, 0x1F90C, prEB, gcSo}, // PINCHED FINGERS - {0x1F90D, 0x1F90E, prID, gcSo}, // [2] WHITE HEART..BROWN HEART - {0x1F90F, 0x1F90F, prEB, gcSo}, // PINCHING HAND - {0x1F910, 0x1F917, prID, gcSo}, // [8] ZIPPER-MOUTH FACE..HUGGING FACE - {0x1F918, 0x1F91F, prEB, gcSo}, // [8] SIGN OF THE HORNS..I LOVE YOU HAND SIGN - {0x1F920, 0x1F925, prID, gcSo}, // [6] FACE WITH COWBOY HAT..LYING FACE - {0x1F926, 0x1F926, prEB, gcSo}, // FACE PALM - {0x1F927, 0x1F92F, prID, gcSo}, // [9] SNEEZING FACE..SHOCKED FACE WITH EXPLODING HEAD - {0x1F930, 0x1F939, prEB, gcSo}, // [10] PREGNANT WOMAN..JUGGLING - {0x1F93A, 0x1F93B, prID, gcSo}, // [2] FENCER..MODERN PENTATHLON - {0x1F93C, 0x1F93E, prEB, gcSo}, // [3] WRESTLERS..HANDBALL - {0x1F93F, 0x1F976, prID, gcSo}, // [56] DIVING MASK..FREEZING FACE - {0x1F977, 0x1F977, prEB, gcSo}, // NINJA - {0x1F978, 0x1F9B4, prID, gcSo}, // [61] DISGUISED FACE..BONE - {0x1F9B5, 0x1F9B6, prEB, gcSo}, // [2] LEG..FOOT - {0x1F9B7, 0x1F9B7, prID, gcSo}, // TOOTH - {0x1F9B8, 0x1F9B9, prEB, gcSo}, // [2] SUPERHERO..SUPERVILLAIN - {0x1F9BA, 0x1F9BA, prID, gcSo}, // SAFETY VEST - {0x1F9BB, 0x1F9BB, prEB, gcSo}, // EAR WITH HEARING AID - {0x1F9BC, 0x1F9CC, prID, gcSo}, // [17] MOTORIZED WHEELCHAIR..TROLL - {0x1F9CD, 0x1F9CF, prEB, gcSo}, // [3] STANDING PERSON..DEAF PERSON - {0x1F9D0, 0x1F9D0, prID, gcSo}, // FACE WITH MONOCLE - {0x1F9D1, 0x1F9DD, prEB, gcSo}, // [13] ADULT..ELF - {0x1F9DE, 0x1F9FF, prID, gcSo}, // [34] GENIE..NAZAR AMULET - {0x1FA00, 0x1FA53, prAL, gcSo}, // [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP - {0x1FA54, 0x1FA5F, prID, gcCn}, // [12] .. - {0x1FA60, 0x1FA6D, prID, gcSo}, // [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER - {0x1FA6E, 0x1FA6F, prID, gcCn}, // [2] .. - {0x1FA70, 0x1FA7C, prID, gcSo}, // [13] BALLET SHOES..CRUTCH - {0x1FA7D, 0x1FA7F, prID, gcCn}, // [3] .. - {0x1FA80, 0x1FA88, prID, gcSo}, // [9] YO-YO..FLUTE - {0x1FA89, 0x1FA8F, prID, gcCn}, // [7] .. - {0x1FA90, 0x1FABD, prID, gcSo}, // [46] RINGED PLANET..WING - {0x1FABE, 0x1FABE, prID, gcCn}, // - {0x1FABF, 0x1FAC2, prID, gcSo}, // [4] GOOSE..PEOPLE HUGGING - {0x1FAC3, 0x1FAC5, prEB, gcSo}, // [3] PREGNANT MAN..PERSON WITH CROWN - {0x1FAC6, 0x1FACD, prID, gcCn}, // [8] .. - {0x1FACE, 0x1FADB, prID, gcSo}, // [14] MOOSE..PEA POD - {0x1FADC, 0x1FADF, prID, gcCn}, // [4] .. - {0x1FAE0, 0x1FAE8, prID, gcSo}, // [9] MELTING FACE..SHAKING FACE - {0x1FAE9, 0x1FAEF, prID, gcCn}, // [7] .. - {0x1FAF0, 0x1FAF8, prEB, gcSo}, // [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND - {0x1FAF9, 0x1FAFF, prID, gcCn}, // [7] .. - {0x1FB00, 0x1FB92, prAL, gcSo}, // [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK - {0x1FB94, 0x1FBCA, prAL, gcSo}, // [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON - {0x1FBF0, 0x1FBF9, prNU, gcNd}, // [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE - {0x1FC00, 0x1FFFD, prID, gcCn}, // [1022] .. - {0x20000, 0x2A6DF, prID, gcLo}, // [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF - {0x2A6E0, 0x2A6FF, prID, gcCn}, // [32] .. - {0x2A700, 0x2B739, prID, gcLo}, // [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 - {0x2B73A, 0x2B73F, prID, gcCn}, // [6] .. - {0x2B740, 0x2B81D, prID, gcLo}, // [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D - {0x2B81E, 0x2B81F, prID, gcCn}, // [2] .. - {0x2B820, 0x2CEA1, prID, gcLo}, // [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 - {0x2CEA2, 0x2CEAF, prID, gcCn}, // [14] .. - {0x2CEB0, 0x2EBE0, prID, gcLo}, // [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 - {0x2EBE1, 0x2F7FF, prID, gcCn}, // [3103] .. - {0x2F800, 0x2FA1D, prID, gcLo}, // [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D - {0x2FA1E, 0x2FA1F, prID, gcCn}, // [2] .. - {0x2FA20, 0x2FFFD, prID, gcCn}, // [1502] .. - {0x30000, 0x3134A, prID, gcLo}, // [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A - {0x3134B, 0x3134F, prID, gcCn}, // [5] .. - {0x31350, 0x323AF, prID, gcLo}, // [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF - {0x323B0, 0x3FFFD, prID, gcCn}, // [56398] .. - {0xE0001, 0xE0001, prCM, gcCf}, // LANGUAGE TAG - {0xE0020, 0xE007F, prCM, gcCf}, // [96] TAG SPACE..CANCEL TAG - {0xE0100, 0xE01EF, prCM, gcMn}, // [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 - {0xF0000, 0xFFFFD, prXX, gcCo}, // [65534] .. - {0x100000, 0x10FFFD, prXX, gcCo}, // [65534] .. -} diff --git a/vendor/github.com/rivo/uniseg/linerules.go b/vendor/github.com/rivo/uniseg/linerules.go deleted file mode 100644 index 7708ae0..0000000 --- a/vendor/github.com/rivo/uniseg/linerules.go +++ /dev/null @@ -1,626 +0,0 @@ -package uniseg - -import "unicode/utf8" - -// The states of the line break parser. -const ( - lbAny = iota - lbBK - lbCR - lbLF - lbNL - lbSP - lbZW - lbWJ - lbGL - lbBA - lbHY - lbCL - lbCP - lbEX - lbIS - lbSY - lbOP - lbQU - lbQUSP - lbNS - lbCLCPSP - lbB2 - lbB2SP - lbCB - lbBB - lbLB21a - lbHL - lbAL - lbNU - lbPR - lbEB - lbIDEM - lbNUNU - lbNUSY - lbNUIS - lbNUCL - lbNUCP - lbPO - lbJL - lbJV - lbJT - lbH2 - lbH3 - lbOddRI - lbEvenRI - lbExtPicCn - lbZWJBit = 64 - lbCPeaFWHBit = 128 -) - -// These constants define whether a given text may be broken into the next line. -// If the break is optional (LineCanBreak), you may choose to break or not based -// on your own criteria, for example, if the text has reached the available -// width. -const ( - LineDontBreak = iota // You may not break the line here. - LineCanBreak // You may or may not break the line here. - LineMustBreak // You must break the line here. -) - -// lbTransitions implements the line break parser's state transitions. It's -// anologous to [grTransitions], see comments there for details. -// -// Unicode version 15.0.0. -func lbTransitions(state, prop int) (newState, lineBreak, rule int) { - switch uint64(state) | uint64(prop)<<32 { - // LB4. - case lbBK | prAny<<32: - return lbAny, LineMustBreak, 40 - - // LB5. - case lbCR | prLF<<32: - return lbLF, LineDontBreak, 50 - case lbCR | prAny<<32: - return lbAny, LineMustBreak, 50 - case lbLF | prAny<<32: - return lbAny, LineMustBreak, 50 - case lbNL | prAny<<32: - return lbAny, LineMustBreak, 50 - - // LB6. - case lbAny | prBK<<32: - return lbBK, LineDontBreak, 60 - case lbAny | prCR<<32: - return lbCR, LineDontBreak, 60 - case lbAny | prLF<<32: - return lbLF, LineDontBreak, 60 - case lbAny | prNL<<32: - return lbNL, LineDontBreak, 60 - - // LB7. - case lbAny | prSP<<32: - return lbSP, LineDontBreak, 70 - case lbAny | prZW<<32: - return lbZW, LineDontBreak, 70 - - // LB8. - case lbZW | prSP<<32: - return lbZW, LineDontBreak, 70 - case lbZW | prAny<<32: - return lbAny, LineCanBreak, 80 - - // LB11. - case lbAny | prWJ<<32: - return lbWJ, LineDontBreak, 110 - case lbWJ | prAny<<32: - return lbAny, LineDontBreak, 110 - - // LB12. - case lbAny | prGL<<32: - return lbGL, LineCanBreak, 310 - case lbGL | prAny<<32: - return lbAny, LineDontBreak, 120 - - // LB13 (simple transitions). - case lbAny | prCL<<32: - return lbCL, LineCanBreak, 310 - case lbAny | prCP<<32: - return lbCP, LineCanBreak, 310 - case lbAny | prEX<<32: - return lbEX, LineDontBreak, 130 - case lbAny | prIS<<32: - return lbIS, LineCanBreak, 310 - case lbAny | prSY<<32: - return lbSY, LineCanBreak, 310 - - // LB14. - case lbAny | prOP<<32: - return lbOP, LineCanBreak, 310 - case lbOP | prSP<<32: - return lbOP, LineDontBreak, 70 - case lbOP | prAny<<32: - return lbAny, LineDontBreak, 140 - - // LB15. - case lbQU | prSP<<32: - return lbQUSP, LineDontBreak, 70 - case lbQU | prOP<<32: - return lbOP, LineDontBreak, 150 - case lbQUSP | prOP<<32: - return lbOP, LineDontBreak, 150 - - // LB16. - case lbCL | prSP<<32: - return lbCLCPSP, LineDontBreak, 70 - case lbNUCL | prSP<<32: - return lbCLCPSP, LineDontBreak, 70 - case lbCP | prSP<<32: - return lbCLCPSP, LineDontBreak, 70 - case lbNUCP | prSP<<32: - return lbCLCPSP, LineDontBreak, 70 - case lbCL | prNS<<32: - return lbNS, LineDontBreak, 160 - case lbNUCL | prNS<<32: - return lbNS, LineDontBreak, 160 - case lbCP | prNS<<32: - return lbNS, LineDontBreak, 160 - case lbNUCP | prNS<<32: - return lbNS, LineDontBreak, 160 - case lbCLCPSP | prNS<<32: - return lbNS, LineDontBreak, 160 - - // LB17. - case lbAny | prB2<<32: - return lbB2, LineCanBreak, 310 - case lbB2 | prSP<<32: - return lbB2SP, LineDontBreak, 70 - case lbB2 | prB2<<32: - return lbB2, LineDontBreak, 170 - case lbB2SP | prB2<<32: - return lbB2, LineDontBreak, 170 - - // LB18. - case lbSP | prAny<<32: - return lbAny, LineCanBreak, 180 - case lbQUSP | prAny<<32: - return lbAny, LineCanBreak, 180 - case lbCLCPSP | prAny<<32: - return lbAny, LineCanBreak, 180 - case lbB2SP | prAny<<32: - return lbAny, LineCanBreak, 180 - - // LB19. - case lbAny | prQU<<32: - return lbQU, LineDontBreak, 190 - case lbQU | prAny<<32: - return lbAny, LineDontBreak, 190 - - // LB20. - case lbAny | prCB<<32: - return lbCB, LineCanBreak, 200 - case lbCB | prAny<<32: - return lbAny, LineCanBreak, 200 - - // LB21. - case lbAny | prBA<<32: - return lbBA, LineDontBreak, 210 - case lbAny | prHY<<32: - return lbHY, LineDontBreak, 210 - case lbAny | prNS<<32: - return lbNS, LineDontBreak, 210 - case lbAny | prBB<<32: - return lbBB, LineCanBreak, 310 - case lbBB | prAny<<32: - return lbAny, LineDontBreak, 210 - - // LB21a. - case lbAny | prHL<<32: - return lbHL, LineCanBreak, 310 - case lbHL | prHY<<32: - return lbLB21a, LineDontBreak, 210 - case lbHL | prBA<<32: - return lbLB21a, LineDontBreak, 210 - case lbLB21a | prAny<<32: - return lbAny, LineDontBreak, 211 - - // LB21b. - case lbSY | prHL<<32: - return lbHL, LineDontBreak, 212 - case lbNUSY | prHL<<32: - return lbHL, LineDontBreak, 212 - - // LB22. - case lbAny | prIN<<32: - return lbAny, LineDontBreak, 220 - - // LB23. - case lbAny | prAL<<32: - return lbAL, LineCanBreak, 310 - case lbAny | prNU<<32: - return lbNU, LineCanBreak, 310 - case lbAL | prNU<<32: - return lbNU, LineDontBreak, 230 - case lbHL | prNU<<32: - return lbNU, LineDontBreak, 230 - case lbNU | prAL<<32: - return lbAL, LineDontBreak, 230 - case lbNU | prHL<<32: - return lbHL, LineDontBreak, 230 - case lbNUNU | prAL<<32: - return lbAL, LineDontBreak, 230 - case lbNUNU | prHL<<32: - return lbHL, LineDontBreak, 230 - - // LB23a. - case lbAny | prPR<<32: - return lbPR, LineCanBreak, 310 - case lbAny | prID<<32: - return lbIDEM, LineCanBreak, 310 - case lbAny | prEB<<32: - return lbEB, LineCanBreak, 310 - case lbAny | prEM<<32: - return lbIDEM, LineCanBreak, 310 - case lbPR | prID<<32: - return lbIDEM, LineDontBreak, 231 - case lbPR | prEB<<32: - return lbEB, LineDontBreak, 231 - case lbPR | prEM<<32: - return lbIDEM, LineDontBreak, 231 - case lbIDEM | prPO<<32: - return lbPO, LineDontBreak, 231 - case lbEB | prPO<<32: - return lbPO, LineDontBreak, 231 - - // LB24. - case lbAny | prPO<<32: - return lbPO, LineCanBreak, 310 - case lbPR | prAL<<32: - return lbAL, LineDontBreak, 240 - case lbPR | prHL<<32: - return lbHL, LineDontBreak, 240 - case lbPO | prAL<<32: - return lbAL, LineDontBreak, 240 - case lbPO | prHL<<32: - return lbHL, LineDontBreak, 240 - case lbAL | prPR<<32: - return lbPR, LineDontBreak, 240 - case lbAL | prPO<<32: - return lbPO, LineDontBreak, 240 - case lbHL | prPR<<32: - return lbPR, LineDontBreak, 240 - case lbHL | prPO<<32: - return lbPO, LineDontBreak, 240 - - // LB25 (simple transitions). - case lbPR | prNU<<32: - return lbNU, LineDontBreak, 250 - case lbPO | prNU<<32: - return lbNU, LineDontBreak, 250 - case lbOP | prNU<<32: - return lbNU, LineDontBreak, 250 - case lbHY | prNU<<32: - return lbNU, LineDontBreak, 250 - case lbNU | prNU<<32: - return lbNUNU, LineDontBreak, 250 - case lbNU | prSY<<32: - return lbNUSY, LineDontBreak, 250 - case lbNU | prIS<<32: - return lbNUIS, LineDontBreak, 250 - case lbNUNU | prNU<<32: - return lbNUNU, LineDontBreak, 250 - case lbNUNU | prSY<<32: - return lbNUSY, LineDontBreak, 250 - case lbNUNU | prIS<<32: - return lbNUIS, LineDontBreak, 250 - case lbNUSY | prNU<<32: - return lbNUNU, LineDontBreak, 250 - case lbNUSY | prSY<<32: - return lbNUSY, LineDontBreak, 250 - case lbNUSY | prIS<<32: - return lbNUIS, LineDontBreak, 250 - case lbNUIS | prNU<<32: - return lbNUNU, LineDontBreak, 250 - case lbNUIS | prSY<<32: - return lbNUSY, LineDontBreak, 250 - case lbNUIS | prIS<<32: - return lbNUIS, LineDontBreak, 250 - case lbNU | prCL<<32: - return lbNUCL, LineDontBreak, 250 - case lbNU | prCP<<32: - return lbNUCP, LineDontBreak, 250 - case lbNUNU | prCL<<32: - return lbNUCL, LineDontBreak, 250 - case lbNUNU | prCP<<32: - return lbNUCP, LineDontBreak, 250 - case lbNUSY | prCL<<32: - return lbNUCL, LineDontBreak, 250 - case lbNUSY | prCP<<32: - return lbNUCP, LineDontBreak, 250 - case lbNUIS | prCL<<32: - return lbNUCL, LineDontBreak, 250 - case lbNUIS | prCP<<32: - return lbNUCP, LineDontBreak, 250 - case lbNU | prPO<<32: - return lbPO, LineDontBreak, 250 - case lbNUNU | prPO<<32: - return lbPO, LineDontBreak, 250 - case lbNUSY | prPO<<32: - return lbPO, LineDontBreak, 250 - case lbNUIS | prPO<<32: - return lbPO, LineDontBreak, 250 - case lbNUCL | prPO<<32: - return lbPO, LineDontBreak, 250 - case lbNUCP | prPO<<32: - return lbPO, LineDontBreak, 250 - case lbNU | prPR<<32: - return lbPR, LineDontBreak, 250 - case lbNUNU | prPR<<32: - return lbPR, LineDontBreak, 250 - case lbNUSY | prPR<<32: - return lbPR, LineDontBreak, 250 - case lbNUIS | prPR<<32: - return lbPR, LineDontBreak, 250 - case lbNUCL | prPR<<32: - return lbPR, LineDontBreak, 250 - case lbNUCP | prPR<<32: - return lbPR, LineDontBreak, 250 - - // LB26. - case lbAny | prJL<<32: - return lbJL, LineCanBreak, 310 - case lbAny | prJV<<32: - return lbJV, LineCanBreak, 310 - case lbAny | prJT<<32: - return lbJT, LineCanBreak, 310 - case lbAny | prH2<<32: - return lbH2, LineCanBreak, 310 - case lbAny | prH3<<32: - return lbH3, LineCanBreak, 310 - case lbJL | prJL<<32: - return lbJL, LineDontBreak, 260 - case lbJL | prJV<<32: - return lbJV, LineDontBreak, 260 - case lbJL | prH2<<32: - return lbH2, LineDontBreak, 260 - case lbJL | prH3<<32: - return lbH3, LineDontBreak, 260 - case lbJV | prJV<<32: - return lbJV, LineDontBreak, 260 - case lbJV | prJT<<32: - return lbJT, LineDontBreak, 260 - case lbH2 | prJV<<32: - return lbJV, LineDontBreak, 260 - case lbH2 | prJT<<32: - return lbJT, LineDontBreak, 260 - case lbJT | prJT<<32: - return lbJT, LineDontBreak, 260 - case lbH3 | prJT<<32: - return lbJT, LineDontBreak, 260 - - // LB27. - case lbJL | prPO<<32: - return lbPO, LineDontBreak, 270 - case lbJV | prPO<<32: - return lbPO, LineDontBreak, 270 - case lbJT | prPO<<32: - return lbPO, LineDontBreak, 270 - case lbH2 | prPO<<32: - return lbPO, LineDontBreak, 270 - case lbH3 | prPO<<32: - return lbPO, LineDontBreak, 270 - case lbPR | prJL<<32: - return lbJL, LineDontBreak, 270 - case lbPR | prJV<<32: - return lbJV, LineDontBreak, 270 - case lbPR | prJT<<32: - return lbJT, LineDontBreak, 270 - case lbPR | prH2<<32: - return lbH2, LineDontBreak, 270 - case lbPR | prH3<<32: - return lbH3, LineDontBreak, 270 - - // LB28. - case lbAL | prAL<<32: - return lbAL, LineDontBreak, 280 - case lbAL | prHL<<32: - return lbHL, LineDontBreak, 280 - case lbHL | prAL<<32: - return lbAL, LineDontBreak, 280 - case lbHL | prHL<<32: - return lbHL, LineDontBreak, 280 - - // LB29. - case lbIS | prAL<<32: - return lbAL, LineDontBreak, 290 - case lbIS | prHL<<32: - return lbHL, LineDontBreak, 290 - case lbNUIS | prAL<<32: - return lbAL, LineDontBreak, 290 - case lbNUIS | prHL<<32: - return lbHL, LineDontBreak, 290 - - default: - return -1, -1, -1 - } -} - -// transitionLineBreakState determines the new state of the line break parser -// given the current state and the next code point. It also returns the type of -// line break: LineDontBreak, LineCanBreak, or LineMustBreak. If more than one -// code point is needed to determine the new state, the byte slice or the string -// starting after rune "r" can be used (whichever is not nil or empty) for -// further lookups. -func transitionLineBreakState(state int, r rune, b []byte, str string) (newState int, lineBreak int) { - // Determine the property of the next character. - nextProperty, generalCategory := propertyLineBreak(r) - - // Prepare. - var forceNoBreak, isCPeaFWH bool - if state >= 0 && state&lbCPeaFWHBit != 0 { - isCPeaFWH = true // LB30: CP but ea is not F, W, or H. - state = state &^ lbCPeaFWHBit - } - if state >= 0 && state&lbZWJBit != 0 { - state = state &^ lbZWJBit // Extract zero-width joiner bit. - forceNoBreak = true // LB8a. - } - - defer func() { - // Transition into LB30. - if newState == lbCP || newState == lbNUCP { - ea := propertyEastAsianWidth(r) - if ea != prF && ea != prW && ea != prH { - newState |= lbCPeaFWHBit - } - } - - // Override break. - if forceNoBreak { - lineBreak = LineDontBreak - } - }() - - // LB1. - if nextProperty == prAI || nextProperty == prSG || nextProperty == prXX { - nextProperty = prAL - } else if nextProperty == prSA { - if generalCategory == gcMn || generalCategory == gcMc { - nextProperty = prCM - } else { - nextProperty = prAL - } - } else if nextProperty == prCJ { - nextProperty = prNS - } - - // Combining marks. - if nextProperty == prZWJ || nextProperty == prCM { - var bit int - if nextProperty == prZWJ { - bit = lbZWJBit - } - mustBreakState := state < 0 || state == lbBK || state == lbCR || state == lbLF || state == lbNL - if !mustBreakState && state != lbSP && state != lbZW && state != lbQUSP && state != lbCLCPSP && state != lbB2SP { - // LB9. - return state | bit, LineDontBreak - } else { - // LB10. - if mustBreakState { - return lbAL | bit, LineMustBreak - } - return lbAL | bit, LineCanBreak - } - } - - // Find the applicable transition in the table. - var rule int - newState, lineBreak, rule = lbTransitions(state, nextProperty) - if newState < 0 { - // No specific transition found. Try the less specific ones. - anyPropProp, anyPropLineBreak, anyPropRule := lbTransitions(state, prAny) - anyStateProp, anyStateLineBreak, anyStateRule := lbTransitions(lbAny, nextProperty) - if anyPropProp >= 0 && anyStateProp >= 0 { - // Both apply. We'll use a mix (see comments for grTransitions). - newState, lineBreak, rule = anyStateProp, anyStateLineBreak, anyStateRule - if anyPropRule < anyStateRule { - lineBreak, rule = anyPropLineBreak, anyPropRule - } - } else if anyPropProp >= 0 { - // We only have a specific state. - newState, lineBreak, rule = anyPropProp, anyPropLineBreak, anyPropRule - // This branch will probably never be reached because okAnyState will - // always be true given the current transition map. But we keep it here - // for future modifications to the transition map where this may not be - // true anymore. - } else if anyStateProp >= 0 { - // We only have a specific property. - newState, lineBreak, rule = anyStateProp, anyStateLineBreak, anyStateRule - } else { - // No known transition. LB31: ALL ÷ ALL. - newState, lineBreak, rule = lbAny, LineCanBreak, 310 - } - } - - // LB12a. - if rule > 121 && - nextProperty == prGL && - (state != lbSP && state != lbBA && state != lbHY && state != lbLB21a && state != lbQUSP && state != lbCLCPSP && state != lbB2SP) { - return lbGL, LineDontBreak - } - - // LB13. - if rule > 130 && state != lbNU && state != lbNUNU { - switch nextProperty { - case prCL: - return lbCL, LineDontBreak - case prCP: - return lbCP, LineDontBreak - case prIS: - return lbIS, LineDontBreak - case prSY: - return lbSY, LineDontBreak - } - } - - // LB25 (look ahead). - if rule > 250 && - (state == lbPR || state == lbPO) && - nextProperty == prOP || nextProperty == prHY { - var r rune - if b != nil { // Byte slice version. - r, _ = utf8.DecodeRune(b) - } else { // String version. - r, _ = utf8.DecodeRuneInString(str) - } - if r != utf8.RuneError { - pr, _ := propertyLineBreak(r) - if pr == prNU { - return lbNU, LineDontBreak - } - } - } - - // LB30 (part one). - if rule > 300 { - if (state == lbAL || state == lbHL || state == lbNU || state == lbNUNU) && nextProperty == prOP { - ea := propertyEastAsianWidth(r) - if ea != prF && ea != prW && ea != prH { - return lbOP, LineDontBreak - } - } else if isCPeaFWH { - switch nextProperty { - case prAL: - return lbAL, LineDontBreak - case prHL: - return lbHL, LineDontBreak - case prNU: - return lbNU, LineDontBreak - } - } - } - - // LB30a. - if newState == lbAny && nextProperty == prRI { - if state != lbOddRI && state != lbEvenRI { // Includes state == -1. - // Transition into the first RI. - return lbOddRI, lineBreak - } - if state == lbOddRI { - // Don't break pairs of Regional Indicators. - return lbEvenRI, LineDontBreak - } - return lbOddRI, lineBreak - } - - // LB30b. - if rule > 302 { - if nextProperty == prEM { - if state == lbEB || state == lbExtPicCn { - return prAny, LineDontBreak - } - } - graphemeProperty := propertyGraphemes(r) - if graphemeProperty == prExtendedPictographic && generalCategory == gcCn { - return lbExtPicCn, LineCanBreak - } - } - - return -} diff --git a/vendor/github.com/rivo/uniseg/properties.go b/vendor/github.com/rivo/uniseg/properties.go deleted file mode 100644 index 6290e68..0000000 --- a/vendor/github.com/rivo/uniseg/properties.go +++ /dev/null @@ -1,208 +0,0 @@ -package uniseg - -// The Unicode properties as used in the various parsers. Only the ones needed -// in the context of this package are included. -const ( - prXX = 0 // Same as prAny. - prAny = iota // prAny must be 0. - prPrepend // Grapheme properties must come first, to reduce the number of bits stored in the state vector. - prCR - prLF - prControl - prExtend - prRegionalIndicator - prSpacingMark - prL - prV - prT - prLV - prLVT - prZWJ - prExtendedPictographic - prNewline - prWSegSpace - prDoubleQuote - prSingleQuote - prMidNumLet - prNumeric - prMidLetter - prMidNum - prExtendNumLet - prALetter - prFormat - prHebrewLetter - prKatakana - prSp - prSTerm - prClose - prSContinue - prATerm - prUpper - prLower - prSep - prOLetter - prCM - prBA - prBK - prSP - prEX - prQU - prAL - prPR - prPO - prOP - prCP - prIS - prHY - prSY - prNU - prCL - prNL - prGL - prAI - prBB - prHL - prSA - prJL - prJV - prJT - prNS - prZW - prB2 - prIN - prWJ - prID - prEB - prCJ - prH2 - prH3 - prSG - prCB - prRI - prEM - prN - prNa - prA - prW - prH - prF - prEmojiPresentation -) - -// Unicode General Categories. Only the ones needed in the context of this -// package are included. -const ( - gcNone = iota // gcNone must be 0. - gcCc - gcZs - gcPo - gcSc - gcPs - gcPe - gcSm - gcPd - gcNd - gcLu - gcSk - gcPc - gcLl - gcSo - gcLo - gcPi - gcCf - gcNo - gcPf - gcLC - gcLm - gcMn - gcMe - gcMc - gcNl - gcZl - gcZp - gcCn - gcCs - gcCo -) - -// Special code points. -const ( - vs15 = 0xfe0e // Variation Selector-15 (text presentation) - vs16 = 0xfe0f // Variation Selector-16 (emoji presentation) -) - -// propertySearch performs a binary search on a property slice and returns the -// entry whose range (start = first array element, end = second array element) -// includes r, or an array of 0's if no such entry was found. -func propertySearch[E interface{ [3]int | [4]int }](dictionary []E, r rune) (result E) { - // Run a binary search. - from := 0 - to := len(dictionary) - for to > from { - middle := (from + to) / 2 - cpRange := dictionary[middle] - if int(r) < cpRange[0] { - to = middle - continue - } - if int(r) > cpRange[1] { - from = middle + 1 - continue - } - return cpRange - } - return -} - -// property returns the Unicode property value (see constants above) of the -// given code point. -func property(dictionary [][3]int, r rune) int { - return propertySearch(dictionary, r)[2] -} - -// propertyLineBreak returns the Unicode property value and General Category -// (see constants above) of the given code point, as listed in the line break -// code points table, while fast tracking ASCII digits and letters. -func propertyLineBreak(r rune) (property, generalCategory int) { - if r >= 'a' && r <= 'z' { - return prAL, gcLl - } - if r >= 'A' && r <= 'Z' { - return prAL, gcLu - } - if r >= '0' && r <= '9' { - return prNU, gcNd - } - entry := propertySearch(lineBreakCodePoints, r) - return entry[2], entry[3] -} - -// propertyGraphemes returns the Unicode grapheme cluster property value of the -// given code point while fast tracking ASCII characters. -func propertyGraphemes(r rune) int { - if r >= 0x20 && r <= 0x7e { - return prAny - } - if r == 0x0a { - return prLF - } - if r == 0x0d { - return prCR - } - if r >= 0 && r <= 0x1f || r == 0x7f { - return prControl - } - return property(graphemeCodePoints, r) -} - -// propertyEastAsianWidth returns the Unicode East Asian Width property value of -// the given code point while fast tracking ASCII characters. -func propertyEastAsianWidth(r rune) int { - if r >= 0x20 && r <= 0x7e { - return prNa - } - if r >= 0 && r <= 0x1f || r == 0x7f { - return prN - } - return property(eastAsianWidth, r) -} diff --git a/vendor/github.com/rivo/uniseg/sentence.go b/vendor/github.com/rivo/uniseg/sentence.go deleted file mode 100644 index adc2a35..0000000 --- a/vendor/github.com/rivo/uniseg/sentence.go +++ /dev/null @@ -1,90 +0,0 @@ -package uniseg - -import "unicode/utf8" - -// FirstSentence returns the first sentence found in the given byte slice -// according to the rules of [Unicode Standard Annex #29, Sentence Boundaries]. -// This function can be called continuously to extract all sentences from a byte -// slice, as illustrated in the example below. -// -// If you don't know the current state, for example when calling the function -// for the first time, you must pass -1. For consecutive calls, pass the state -// and rest slice returned by the previous call. -// -// The "rest" slice is the sub-slice of the original byte slice "b" starting -// after the last byte of the identified sentence. If the length of the "rest" -// slice is 0, the entire byte slice "b" has been processed. The "sentence" byte -// slice is the sub-slice of the input slice containing the identified sentence. -// -// Given an empty byte slice "b", the function returns nil values. -// -// [Unicode Standard Annex #29, Sentence Boundaries]: http://unicode.org/reports/tr29/#Sentence_Boundaries -func FirstSentence(b []byte, state int) (sentence, rest []byte, newState int) { - // An empty byte slice returns nothing. - if len(b) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRune(b) - if len(b) <= length { // If we're already past the end, there is nothing else to parse. - return b, nil, sbAny - } - - // If we don't know the state, determine it now. - if state < 0 { - state, _ = transitionSentenceBreakState(state, r, b[length:], "") - } - - // Transition until we find a boundary. - var boundary bool - for { - r, l := utf8.DecodeRune(b[length:]) - state, boundary = transitionSentenceBreakState(state, r, b[length+l:], "") - - if boundary { - return b[:length], b[length:], state - } - - length += l - if len(b) <= length { - return b, nil, sbAny - } - } -} - -// FirstSentenceInString is like [FirstSentence] but its input and outputs are -// strings. -func FirstSentenceInString(str string, state int) (sentence, rest string, newState int) { - // An empty byte slice returns nothing. - if len(str) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRuneInString(str) - if len(str) <= length { // If we're already past the end, there is nothing else to parse. - return str, "", sbAny - } - - // If we don't know the state, determine it now. - if state < 0 { - state, _ = transitionSentenceBreakState(state, r, nil, str[length:]) - } - - // Transition until we find a boundary. - var boundary bool - for { - r, l := utf8.DecodeRuneInString(str[length:]) - state, boundary = transitionSentenceBreakState(state, r, nil, str[length+l:]) - - if boundary { - return str[:length], str[length:], state - } - - length += l - if len(str) <= length { - return str, "", sbAny - } - } -} diff --git a/vendor/github.com/rivo/uniseg/sentenceproperties.go b/vendor/github.com/rivo/uniseg/sentenceproperties.go deleted file mode 100644 index 67717ec..0000000 --- a/vendor/github.com/rivo/uniseg/sentenceproperties.go +++ /dev/null @@ -1,2845 +0,0 @@ -// Code generated via go generate from gen_properties.go. DO NOT EDIT. - -package uniseg - -// sentenceBreakCodePoints are taken from -// https://www.unicode.org/Public/15.0.0/ucd/auxiliary/SentenceBreakProperty.txt -// and -// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt -// ("Extended_Pictographic" only) -// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode -// license agreement. -var sentenceBreakCodePoints = [][3]int{ - {0x0009, 0x0009, prSp}, // Cc - {0x000A, 0x000A, prLF}, // Cc - {0x000B, 0x000C, prSp}, // Cc [2] .. - {0x000D, 0x000D, prCR}, // Cc - {0x0020, 0x0020, prSp}, // Zs SPACE - {0x0021, 0x0021, prSTerm}, // Po EXCLAMATION MARK - {0x0022, 0x0022, prClose}, // Po QUOTATION MARK - {0x0027, 0x0027, prClose}, // Po APOSTROPHE - {0x0028, 0x0028, prClose}, // Ps LEFT PARENTHESIS - {0x0029, 0x0029, prClose}, // Pe RIGHT PARENTHESIS - {0x002C, 0x002C, prSContinue}, // Po COMMA - {0x002D, 0x002D, prSContinue}, // Pd HYPHEN-MINUS - {0x002E, 0x002E, prATerm}, // Po FULL STOP - {0x0030, 0x0039, prNumeric}, // Nd [10] DIGIT ZERO..DIGIT NINE - {0x003A, 0x003A, prSContinue}, // Po COLON - {0x003F, 0x003F, prSTerm}, // Po QUESTION MARK - {0x0041, 0x005A, prUpper}, // L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z - {0x005B, 0x005B, prClose}, // Ps LEFT SQUARE BRACKET - {0x005D, 0x005D, prClose}, // Pe RIGHT SQUARE BRACKET - {0x0061, 0x007A, prLower}, // L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z - {0x007B, 0x007B, prClose}, // Ps LEFT CURLY BRACKET - {0x007D, 0x007D, prClose}, // Pe RIGHT CURLY BRACKET - {0x0085, 0x0085, prSep}, // Cc - {0x00A0, 0x00A0, prSp}, // Zs NO-BREAK SPACE - {0x00AA, 0x00AA, prLower}, // Lo FEMININE ORDINAL INDICATOR - {0x00AB, 0x00AB, prClose}, // Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - {0x00AD, 0x00AD, prFormat}, // Cf SOFT HYPHEN - {0x00B5, 0x00B5, prLower}, // L& MICRO SIGN - {0x00BA, 0x00BA, prLower}, // Lo MASCULINE ORDINAL INDICATOR - {0x00BB, 0x00BB, prClose}, // Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - {0x00C0, 0x00D6, prUpper}, // L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS - {0x00D8, 0x00DE, prUpper}, // L& [7] LATIN CAPITAL LETTER O WITH STROKE..LATIN CAPITAL LETTER THORN - {0x00DF, 0x00F6, prLower}, // L& [24] LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS - {0x00F8, 0x00FF, prLower}, // L& [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS - {0x0100, 0x0100, prUpper}, // L& LATIN CAPITAL LETTER A WITH MACRON - {0x0101, 0x0101, prLower}, // L& LATIN SMALL LETTER A WITH MACRON - {0x0102, 0x0102, prUpper}, // L& LATIN CAPITAL LETTER A WITH BREVE - {0x0103, 0x0103, prLower}, // L& LATIN SMALL LETTER A WITH BREVE - {0x0104, 0x0104, prUpper}, // L& LATIN CAPITAL LETTER A WITH OGONEK - {0x0105, 0x0105, prLower}, // L& LATIN SMALL LETTER A WITH OGONEK - {0x0106, 0x0106, prUpper}, // L& LATIN CAPITAL LETTER C WITH ACUTE - {0x0107, 0x0107, prLower}, // L& LATIN SMALL LETTER C WITH ACUTE - {0x0108, 0x0108, prUpper}, // L& LATIN CAPITAL LETTER C WITH CIRCUMFLEX - {0x0109, 0x0109, prLower}, // L& LATIN SMALL LETTER C WITH CIRCUMFLEX - {0x010A, 0x010A, prUpper}, // L& LATIN CAPITAL LETTER C WITH DOT ABOVE - {0x010B, 0x010B, prLower}, // L& LATIN SMALL LETTER C WITH DOT ABOVE - {0x010C, 0x010C, prUpper}, // L& LATIN CAPITAL LETTER C WITH CARON - {0x010D, 0x010D, prLower}, // L& LATIN SMALL LETTER C WITH CARON - {0x010E, 0x010E, prUpper}, // L& LATIN CAPITAL LETTER D WITH CARON - {0x010F, 0x010F, prLower}, // L& LATIN SMALL LETTER D WITH CARON - {0x0110, 0x0110, prUpper}, // L& LATIN CAPITAL LETTER D WITH STROKE - {0x0111, 0x0111, prLower}, // L& LATIN SMALL LETTER D WITH STROKE - {0x0112, 0x0112, prUpper}, // L& LATIN CAPITAL LETTER E WITH MACRON - {0x0113, 0x0113, prLower}, // L& LATIN SMALL LETTER E WITH MACRON - {0x0114, 0x0114, prUpper}, // L& LATIN CAPITAL LETTER E WITH BREVE - {0x0115, 0x0115, prLower}, // L& LATIN SMALL LETTER E WITH BREVE - {0x0116, 0x0116, prUpper}, // L& LATIN CAPITAL LETTER E WITH DOT ABOVE - {0x0117, 0x0117, prLower}, // L& LATIN SMALL LETTER E WITH DOT ABOVE - {0x0118, 0x0118, prUpper}, // L& LATIN CAPITAL LETTER E WITH OGONEK - {0x0119, 0x0119, prLower}, // L& LATIN SMALL LETTER E WITH OGONEK - {0x011A, 0x011A, prUpper}, // L& LATIN CAPITAL LETTER E WITH CARON - {0x011B, 0x011B, prLower}, // L& LATIN SMALL LETTER E WITH CARON - {0x011C, 0x011C, prUpper}, // L& LATIN CAPITAL LETTER G WITH CIRCUMFLEX - {0x011D, 0x011D, prLower}, // L& LATIN SMALL LETTER G WITH CIRCUMFLEX - {0x011E, 0x011E, prUpper}, // L& LATIN CAPITAL LETTER G WITH BREVE - {0x011F, 0x011F, prLower}, // L& LATIN SMALL LETTER G WITH BREVE - {0x0120, 0x0120, prUpper}, // L& LATIN CAPITAL LETTER G WITH DOT ABOVE - {0x0121, 0x0121, prLower}, // L& LATIN SMALL LETTER G WITH DOT ABOVE - {0x0122, 0x0122, prUpper}, // L& LATIN CAPITAL LETTER G WITH CEDILLA - {0x0123, 0x0123, prLower}, // L& LATIN SMALL LETTER G WITH CEDILLA - {0x0124, 0x0124, prUpper}, // L& LATIN CAPITAL LETTER H WITH CIRCUMFLEX - {0x0125, 0x0125, prLower}, // L& LATIN SMALL LETTER H WITH CIRCUMFLEX - {0x0126, 0x0126, prUpper}, // L& LATIN CAPITAL LETTER H WITH STROKE - {0x0127, 0x0127, prLower}, // L& LATIN SMALL LETTER H WITH STROKE - {0x0128, 0x0128, prUpper}, // L& LATIN CAPITAL LETTER I WITH TILDE - {0x0129, 0x0129, prLower}, // L& LATIN SMALL LETTER I WITH TILDE - {0x012A, 0x012A, prUpper}, // L& LATIN CAPITAL LETTER I WITH MACRON - {0x012B, 0x012B, prLower}, // L& LATIN SMALL LETTER I WITH MACRON - {0x012C, 0x012C, prUpper}, // L& LATIN CAPITAL LETTER I WITH BREVE - {0x012D, 0x012D, prLower}, // L& LATIN SMALL LETTER I WITH BREVE - {0x012E, 0x012E, prUpper}, // L& LATIN CAPITAL LETTER I WITH OGONEK - {0x012F, 0x012F, prLower}, // L& LATIN SMALL LETTER I WITH OGONEK - {0x0130, 0x0130, prUpper}, // L& LATIN CAPITAL LETTER I WITH DOT ABOVE - {0x0131, 0x0131, prLower}, // L& LATIN SMALL LETTER DOTLESS I - {0x0132, 0x0132, prUpper}, // L& LATIN CAPITAL LIGATURE IJ - {0x0133, 0x0133, prLower}, // L& LATIN SMALL LIGATURE IJ - {0x0134, 0x0134, prUpper}, // L& LATIN CAPITAL LETTER J WITH CIRCUMFLEX - {0x0135, 0x0135, prLower}, // L& LATIN SMALL LETTER J WITH CIRCUMFLEX - {0x0136, 0x0136, prUpper}, // L& LATIN CAPITAL LETTER K WITH CEDILLA - {0x0137, 0x0138, prLower}, // L& [2] LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA - {0x0139, 0x0139, prUpper}, // L& LATIN CAPITAL LETTER L WITH ACUTE - {0x013A, 0x013A, prLower}, // L& LATIN SMALL LETTER L WITH ACUTE - {0x013B, 0x013B, prUpper}, // L& LATIN CAPITAL LETTER L WITH CEDILLA - {0x013C, 0x013C, prLower}, // L& LATIN SMALL LETTER L WITH CEDILLA - {0x013D, 0x013D, prUpper}, // L& LATIN CAPITAL LETTER L WITH CARON - {0x013E, 0x013E, prLower}, // L& LATIN SMALL LETTER L WITH CARON - {0x013F, 0x013F, prUpper}, // L& LATIN CAPITAL LETTER L WITH MIDDLE DOT - {0x0140, 0x0140, prLower}, // L& LATIN SMALL LETTER L WITH MIDDLE DOT - {0x0141, 0x0141, prUpper}, // L& LATIN CAPITAL LETTER L WITH STROKE - {0x0142, 0x0142, prLower}, // L& LATIN SMALL LETTER L WITH STROKE - {0x0143, 0x0143, prUpper}, // L& LATIN CAPITAL LETTER N WITH ACUTE - {0x0144, 0x0144, prLower}, // L& LATIN SMALL LETTER N WITH ACUTE - {0x0145, 0x0145, prUpper}, // L& LATIN CAPITAL LETTER N WITH CEDILLA - {0x0146, 0x0146, prLower}, // L& LATIN SMALL LETTER N WITH CEDILLA - {0x0147, 0x0147, prUpper}, // L& LATIN CAPITAL LETTER N WITH CARON - {0x0148, 0x0149, prLower}, // L& [2] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE - {0x014A, 0x014A, prUpper}, // L& LATIN CAPITAL LETTER ENG - {0x014B, 0x014B, prLower}, // L& LATIN SMALL LETTER ENG - {0x014C, 0x014C, prUpper}, // L& LATIN CAPITAL LETTER O WITH MACRON - {0x014D, 0x014D, prLower}, // L& LATIN SMALL LETTER O WITH MACRON - {0x014E, 0x014E, prUpper}, // L& LATIN CAPITAL LETTER O WITH BREVE - {0x014F, 0x014F, prLower}, // L& LATIN SMALL LETTER O WITH BREVE - {0x0150, 0x0150, prUpper}, // L& LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - {0x0151, 0x0151, prLower}, // L& LATIN SMALL LETTER O WITH DOUBLE ACUTE - {0x0152, 0x0152, prUpper}, // L& LATIN CAPITAL LIGATURE OE - {0x0153, 0x0153, prLower}, // L& LATIN SMALL LIGATURE OE - {0x0154, 0x0154, prUpper}, // L& LATIN CAPITAL LETTER R WITH ACUTE - {0x0155, 0x0155, prLower}, // L& LATIN SMALL LETTER R WITH ACUTE - {0x0156, 0x0156, prUpper}, // L& LATIN CAPITAL LETTER R WITH CEDILLA - {0x0157, 0x0157, prLower}, // L& LATIN SMALL LETTER R WITH CEDILLA - {0x0158, 0x0158, prUpper}, // L& LATIN CAPITAL LETTER R WITH CARON - {0x0159, 0x0159, prLower}, // L& LATIN SMALL LETTER R WITH CARON - {0x015A, 0x015A, prUpper}, // L& LATIN CAPITAL LETTER S WITH ACUTE - {0x015B, 0x015B, prLower}, // L& LATIN SMALL LETTER S WITH ACUTE - {0x015C, 0x015C, prUpper}, // L& LATIN CAPITAL LETTER S WITH CIRCUMFLEX - {0x015D, 0x015D, prLower}, // L& LATIN SMALL LETTER S WITH CIRCUMFLEX - {0x015E, 0x015E, prUpper}, // L& LATIN CAPITAL LETTER S WITH CEDILLA - {0x015F, 0x015F, prLower}, // L& LATIN SMALL LETTER S WITH CEDILLA - {0x0160, 0x0160, prUpper}, // L& LATIN CAPITAL LETTER S WITH CARON - {0x0161, 0x0161, prLower}, // L& LATIN SMALL LETTER S WITH CARON - {0x0162, 0x0162, prUpper}, // L& LATIN CAPITAL LETTER T WITH CEDILLA - {0x0163, 0x0163, prLower}, // L& LATIN SMALL LETTER T WITH CEDILLA - {0x0164, 0x0164, prUpper}, // L& LATIN CAPITAL LETTER T WITH CARON - {0x0165, 0x0165, prLower}, // L& LATIN SMALL LETTER T WITH CARON - {0x0166, 0x0166, prUpper}, // L& LATIN CAPITAL LETTER T WITH STROKE - {0x0167, 0x0167, prLower}, // L& LATIN SMALL LETTER T WITH STROKE - {0x0168, 0x0168, prUpper}, // L& LATIN CAPITAL LETTER U WITH TILDE - {0x0169, 0x0169, prLower}, // L& LATIN SMALL LETTER U WITH TILDE - {0x016A, 0x016A, prUpper}, // L& LATIN CAPITAL LETTER U WITH MACRON - {0x016B, 0x016B, prLower}, // L& LATIN SMALL LETTER U WITH MACRON - {0x016C, 0x016C, prUpper}, // L& LATIN CAPITAL LETTER U WITH BREVE - {0x016D, 0x016D, prLower}, // L& LATIN SMALL LETTER U WITH BREVE - {0x016E, 0x016E, prUpper}, // L& LATIN CAPITAL LETTER U WITH RING ABOVE - {0x016F, 0x016F, prLower}, // L& LATIN SMALL LETTER U WITH RING ABOVE - {0x0170, 0x0170, prUpper}, // L& LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - {0x0171, 0x0171, prLower}, // L& LATIN SMALL LETTER U WITH DOUBLE ACUTE - {0x0172, 0x0172, prUpper}, // L& LATIN CAPITAL LETTER U WITH OGONEK - {0x0173, 0x0173, prLower}, // L& LATIN SMALL LETTER U WITH OGONEK - {0x0174, 0x0174, prUpper}, // L& LATIN CAPITAL LETTER W WITH CIRCUMFLEX - {0x0175, 0x0175, prLower}, // L& LATIN SMALL LETTER W WITH CIRCUMFLEX - {0x0176, 0x0176, prUpper}, // L& LATIN CAPITAL LETTER Y WITH CIRCUMFLEX - {0x0177, 0x0177, prLower}, // L& LATIN SMALL LETTER Y WITH CIRCUMFLEX - {0x0178, 0x0179, prUpper}, // L& [2] LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE - {0x017A, 0x017A, prLower}, // L& LATIN SMALL LETTER Z WITH ACUTE - {0x017B, 0x017B, prUpper}, // L& LATIN CAPITAL LETTER Z WITH DOT ABOVE - {0x017C, 0x017C, prLower}, // L& LATIN SMALL LETTER Z WITH DOT ABOVE - {0x017D, 0x017D, prUpper}, // L& LATIN CAPITAL LETTER Z WITH CARON - {0x017E, 0x0180, prLower}, // L& [3] LATIN SMALL LETTER Z WITH CARON..LATIN SMALL LETTER B WITH STROKE - {0x0181, 0x0182, prUpper}, // L& [2] LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR - {0x0183, 0x0183, prLower}, // L& LATIN SMALL LETTER B WITH TOPBAR - {0x0184, 0x0184, prUpper}, // L& LATIN CAPITAL LETTER TONE SIX - {0x0185, 0x0185, prLower}, // L& LATIN SMALL LETTER TONE SIX - {0x0186, 0x0187, prUpper}, // L& [2] LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK - {0x0188, 0x0188, prLower}, // L& LATIN SMALL LETTER C WITH HOOK - {0x0189, 0x018B, prUpper}, // L& [3] LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR - {0x018C, 0x018D, prLower}, // L& [2] LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA - {0x018E, 0x0191, prUpper}, // L& [4] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK - {0x0192, 0x0192, prLower}, // L& LATIN SMALL LETTER F WITH HOOK - {0x0193, 0x0194, prUpper}, // L& [2] LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA - {0x0195, 0x0195, prLower}, // L& LATIN SMALL LETTER HV - {0x0196, 0x0198, prUpper}, // L& [3] LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK - {0x0199, 0x019B, prLower}, // L& [3] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE - {0x019C, 0x019D, prUpper}, // L& [2] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK - {0x019E, 0x019E, prLower}, // L& LATIN SMALL LETTER N WITH LONG RIGHT LEG - {0x019F, 0x01A0, prUpper}, // L& [2] LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN - {0x01A1, 0x01A1, prLower}, // L& LATIN SMALL LETTER O WITH HORN - {0x01A2, 0x01A2, prUpper}, // L& LATIN CAPITAL LETTER OI - {0x01A3, 0x01A3, prLower}, // L& LATIN SMALL LETTER OI - {0x01A4, 0x01A4, prUpper}, // L& LATIN CAPITAL LETTER P WITH HOOK - {0x01A5, 0x01A5, prLower}, // L& LATIN SMALL LETTER P WITH HOOK - {0x01A6, 0x01A7, prUpper}, // L& [2] LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO - {0x01A8, 0x01A8, prLower}, // L& LATIN SMALL LETTER TONE TWO - {0x01A9, 0x01A9, prUpper}, // L& LATIN CAPITAL LETTER ESH - {0x01AA, 0x01AB, prLower}, // L& [2] LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK - {0x01AC, 0x01AC, prUpper}, // L& LATIN CAPITAL LETTER T WITH HOOK - {0x01AD, 0x01AD, prLower}, // L& LATIN SMALL LETTER T WITH HOOK - {0x01AE, 0x01AF, prUpper}, // L& [2] LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN - {0x01B0, 0x01B0, prLower}, // L& LATIN SMALL LETTER U WITH HORN - {0x01B1, 0x01B3, prUpper}, // L& [3] LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK - {0x01B4, 0x01B4, prLower}, // L& LATIN SMALL LETTER Y WITH HOOK - {0x01B5, 0x01B5, prUpper}, // L& LATIN CAPITAL LETTER Z WITH STROKE - {0x01B6, 0x01B6, prLower}, // L& LATIN SMALL LETTER Z WITH STROKE - {0x01B7, 0x01B8, prUpper}, // L& [2] LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED - {0x01B9, 0x01BA, prLower}, // L& [2] LATIN SMALL LETTER EZH REVERSED..LATIN SMALL LETTER EZH WITH TAIL - {0x01BB, 0x01BB, prOLetter}, // Lo LATIN LETTER TWO WITH STROKE - {0x01BC, 0x01BC, prUpper}, // L& LATIN CAPITAL LETTER TONE FIVE - {0x01BD, 0x01BF, prLower}, // L& [3] LATIN SMALL LETTER TONE FIVE..LATIN LETTER WYNN - {0x01C0, 0x01C3, prOLetter}, // Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK - {0x01C4, 0x01C5, prUpper}, // L& [2] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON - {0x01C6, 0x01C6, prLower}, // L& LATIN SMALL LETTER DZ WITH CARON - {0x01C7, 0x01C8, prUpper}, // L& [2] LATIN CAPITAL LETTER LJ..LATIN CAPITAL LETTER L WITH SMALL LETTER J - {0x01C9, 0x01C9, prLower}, // L& LATIN SMALL LETTER LJ - {0x01CA, 0x01CB, prUpper}, // L& [2] LATIN CAPITAL LETTER NJ..LATIN CAPITAL LETTER N WITH SMALL LETTER J - {0x01CC, 0x01CC, prLower}, // L& LATIN SMALL LETTER NJ - {0x01CD, 0x01CD, prUpper}, // L& LATIN CAPITAL LETTER A WITH CARON - {0x01CE, 0x01CE, prLower}, // L& LATIN SMALL LETTER A WITH CARON - {0x01CF, 0x01CF, prUpper}, // L& LATIN CAPITAL LETTER I WITH CARON - {0x01D0, 0x01D0, prLower}, // L& LATIN SMALL LETTER I WITH CARON - {0x01D1, 0x01D1, prUpper}, // L& LATIN CAPITAL LETTER O WITH CARON - {0x01D2, 0x01D2, prLower}, // L& LATIN SMALL LETTER O WITH CARON - {0x01D3, 0x01D3, prUpper}, // L& LATIN CAPITAL LETTER U WITH CARON - {0x01D4, 0x01D4, prLower}, // L& LATIN SMALL LETTER U WITH CARON - {0x01D5, 0x01D5, prUpper}, // L& LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON - {0x01D6, 0x01D6, prLower}, // L& LATIN SMALL LETTER U WITH DIAERESIS AND MACRON - {0x01D7, 0x01D7, prUpper}, // L& LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE - {0x01D8, 0x01D8, prLower}, // L& LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE - {0x01D9, 0x01D9, prUpper}, // L& LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON - {0x01DA, 0x01DA, prLower}, // L& LATIN SMALL LETTER U WITH DIAERESIS AND CARON - {0x01DB, 0x01DB, prUpper}, // L& LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE - {0x01DC, 0x01DD, prLower}, // L& [2] LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E - {0x01DE, 0x01DE, prUpper}, // L& LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON - {0x01DF, 0x01DF, prLower}, // L& LATIN SMALL LETTER A WITH DIAERESIS AND MACRON - {0x01E0, 0x01E0, prUpper}, // L& LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON - {0x01E1, 0x01E1, prLower}, // L& LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON - {0x01E2, 0x01E2, prUpper}, // L& LATIN CAPITAL LETTER AE WITH MACRON - {0x01E3, 0x01E3, prLower}, // L& LATIN SMALL LETTER AE WITH MACRON - {0x01E4, 0x01E4, prUpper}, // L& LATIN CAPITAL LETTER G WITH STROKE - {0x01E5, 0x01E5, prLower}, // L& LATIN SMALL LETTER G WITH STROKE - {0x01E6, 0x01E6, prUpper}, // L& LATIN CAPITAL LETTER G WITH CARON - {0x01E7, 0x01E7, prLower}, // L& LATIN SMALL LETTER G WITH CARON - {0x01E8, 0x01E8, prUpper}, // L& LATIN CAPITAL LETTER K WITH CARON - {0x01E9, 0x01E9, prLower}, // L& LATIN SMALL LETTER K WITH CARON - {0x01EA, 0x01EA, prUpper}, // L& LATIN CAPITAL LETTER O WITH OGONEK - {0x01EB, 0x01EB, prLower}, // L& LATIN SMALL LETTER O WITH OGONEK - {0x01EC, 0x01EC, prUpper}, // L& LATIN CAPITAL LETTER O WITH OGONEK AND MACRON - {0x01ED, 0x01ED, prLower}, // L& LATIN SMALL LETTER O WITH OGONEK AND MACRON - {0x01EE, 0x01EE, prUpper}, // L& LATIN CAPITAL LETTER EZH WITH CARON - {0x01EF, 0x01F0, prLower}, // L& [2] LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON - {0x01F1, 0x01F2, prUpper}, // L& [2] LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTER D WITH SMALL LETTER Z - {0x01F3, 0x01F3, prLower}, // L& LATIN SMALL LETTER DZ - {0x01F4, 0x01F4, prUpper}, // L& LATIN CAPITAL LETTER G WITH ACUTE - {0x01F5, 0x01F5, prLower}, // L& LATIN SMALL LETTER G WITH ACUTE - {0x01F6, 0x01F8, prUpper}, // L& [3] LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE - {0x01F9, 0x01F9, prLower}, // L& LATIN SMALL LETTER N WITH GRAVE - {0x01FA, 0x01FA, prUpper}, // L& LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE - {0x01FB, 0x01FB, prLower}, // L& LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE - {0x01FC, 0x01FC, prUpper}, // L& LATIN CAPITAL LETTER AE WITH ACUTE - {0x01FD, 0x01FD, prLower}, // L& LATIN SMALL LETTER AE WITH ACUTE - {0x01FE, 0x01FE, prUpper}, // L& LATIN CAPITAL LETTER O WITH STROKE AND ACUTE - {0x01FF, 0x01FF, prLower}, // L& LATIN SMALL LETTER O WITH STROKE AND ACUTE - {0x0200, 0x0200, prUpper}, // L& LATIN CAPITAL LETTER A WITH DOUBLE GRAVE - {0x0201, 0x0201, prLower}, // L& LATIN SMALL LETTER A WITH DOUBLE GRAVE - {0x0202, 0x0202, prUpper}, // L& LATIN CAPITAL LETTER A WITH INVERTED BREVE - {0x0203, 0x0203, prLower}, // L& LATIN SMALL LETTER A WITH INVERTED BREVE - {0x0204, 0x0204, prUpper}, // L& LATIN CAPITAL LETTER E WITH DOUBLE GRAVE - {0x0205, 0x0205, prLower}, // L& LATIN SMALL LETTER E WITH DOUBLE GRAVE - {0x0206, 0x0206, prUpper}, // L& LATIN CAPITAL LETTER E WITH INVERTED BREVE - {0x0207, 0x0207, prLower}, // L& LATIN SMALL LETTER E WITH INVERTED BREVE - {0x0208, 0x0208, prUpper}, // L& LATIN CAPITAL LETTER I WITH DOUBLE GRAVE - {0x0209, 0x0209, prLower}, // L& LATIN SMALL LETTER I WITH DOUBLE GRAVE - {0x020A, 0x020A, prUpper}, // L& LATIN CAPITAL LETTER I WITH INVERTED BREVE - {0x020B, 0x020B, prLower}, // L& LATIN SMALL LETTER I WITH INVERTED BREVE - {0x020C, 0x020C, prUpper}, // L& LATIN CAPITAL LETTER O WITH DOUBLE GRAVE - {0x020D, 0x020D, prLower}, // L& LATIN SMALL LETTER O WITH DOUBLE GRAVE - {0x020E, 0x020E, prUpper}, // L& LATIN CAPITAL LETTER O WITH INVERTED BREVE - {0x020F, 0x020F, prLower}, // L& LATIN SMALL LETTER O WITH INVERTED BREVE - {0x0210, 0x0210, prUpper}, // L& LATIN CAPITAL LETTER R WITH DOUBLE GRAVE - {0x0211, 0x0211, prLower}, // L& LATIN SMALL LETTER R WITH DOUBLE GRAVE - {0x0212, 0x0212, prUpper}, // L& LATIN CAPITAL LETTER R WITH INVERTED BREVE - {0x0213, 0x0213, prLower}, // L& LATIN SMALL LETTER R WITH INVERTED BREVE - {0x0214, 0x0214, prUpper}, // L& LATIN CAPITAL LETTER U WITH DOUBLE GRAVE - {0x0215, 0x0215, prLower}, // L& LATIN SMALL LETTER U WITH DOUBLE GRAVE - {0x0216, 0x0216, prUpper}, // L& LATIN CAPITAL LETTER U WITH INVERTED BREVE - {0x0217, 0x0217, prLower}, // L& LATIN SMALL LETTER U WITH INVERTED BREVE - {0x0218, 0x0218, prUpper}, // L& LATIN CAPITAL LETTER S WITH COMMA BELOW - {0x0219, 0x0219, prLower}, // L& LATIN SMALL LETTER S WITH COMMA BELOW - {0x021A, 0x021A, prUpper}, // L& LATIN CAPITAL LETTER T WITH COMMA BELOW - {0x021B, 0x021B, prLower}, // L& LATIN SMALL LETTER T WITH COMMA BELOW - {0x021C, 0x021C, prUpper}, // L& LATIN CAPITAL LETTER YOGH - {0x021D, 0x021D, prLower}, // L& LATIN SMALL LETTER YOGH - {0x021E, 0x021E, prUpper}, // L& LATIN CAPITAL LETTER H WITH CARON - {0x021F, 0x021F, prLower}, // L& LATIN SMALL LETTER H WITH CARON - {0x0220, 0x0220, prUpper}, // L& LATIN CAPITAL LETTER N WITH LONG RIGHT LEG - {0x0221, 0x0221, prLower}, // L& LATIN SMALL LETTER D WITH CURL - {0x0222, 0x0222, prUpper}, // L& LATIN CAPITAL LETTER OU - {0x0223, 0x0223, prLower}, // L& LATIN SMALL LETTER OU - {0x0224, 0x0224, prUpper}, // L& LATIN CAPITAL LETTER Z WITH HOOK - {0x0225, 0x0225, prLower}, // L& LATIN SMALL LETTER Z WITH HOOK - {0x0226, 0x0226, prUpper}, // L& LATIN CAPITAL LETTER A WITH DOT ABOVE - {0x0227, 0x0227, prLower}, // L& LATIN SMALL LETTER A WITH DOT ABOVE - {0x0228, 0x0228, prUpper}, // L& LATIN CAPITAL LETTER E WITH CEDILLA - {0x0229, 0x0229, prLower}, // L& LATIN SMALL LETTER E WITH CEDILLA - {0x022A, 0x022A, prUpper}, // L& LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON - {0x022B, 0x022B, prLower}, // L& LATIN SMALL LETTER O WITH DIAERESIS AND MACRON - {0x022C, 0x022C, prUpper}, // L& LATIN CAPITAL LETTER O WITH TILDE AND MACRON - {0x022D, 0x022D, prLower}, // L& LATIN SMALL LETTER O WITH TILDE AND MACRON - {0x022E, 0x022E, prUpper}, // L& LATIN CAPITAL LETTER O WITH DOT ABOVE - {0x022F, 0x022F, prLower}, // L& LATIN SMALL LETTER O WITH DOT ABOVE - {0x0230, 0x0230, prUpper}, // L& LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON - {0x0231, 0x0231, prLower}, // L& LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON - {0x0232, 0x0232, prUpper}, // L& LATIN CAPITAL LETTER Y WITH MACRON - {0x0233, 0x0239, prLower}, // L& [7] LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH - {0x023A, 0x023B, prUpper}, // L& [2] LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE - {0x023C, 0x023C, prLower}, // L& LATIN SMALL LETTER C WITH STROKE - {0x023D, 0x023E, prUpper}, // L& [2] LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE - {0x023F, 0x0240, prLower}, // L& [2] LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL - {0x0241, 0x0241, prUpper}, // L& LATIN CAPITAL LETTER GLOTTAL STOP - {0x0242, 0x0242, prLower}, // L& LATIN SMALL LETTER GLOTTAL STOP - {0x0243, 0x0246, prUpper}, // L& [4] LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE - {0x0247, 0x0247, prLower}, // L& LATIN SMALL LETTER E WITH STROKE - {0x0248, 0x0248, prUpper}, // L& LATIN CAPITAL LETTER J WITH STROKE - {0x0249, 0x0249, prLower}, // L& LATIN SMALL LETTER J WITH STROKE - {0x024A, 0x024A, prUpper}, // L& LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL - {0x024B, 0x024B, prLower}, // L& LATIN SMALL LETTER Q WITH HOOK TAIL - {0x024C, 0x024C, prUpper}, // L& LATIN CAPITAL LETTER R WITH STROKE - {0x024D, 0x024D, prLower}, // L& LATIN SMALL LETTER R WITH STROKE - {0x024E, 0x024E, prUpper}, // L& LATIN CAPITAL LETTER Y WITH STROKE - {0x024F, 0x0293, prLower}, // L& [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL - {0x0294, 0x0294, prOLetter}, // Lo LATIN LETTER GLOTTAL STOP - {0x0295, 0x02AF, prLower}, // L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL - {0x02B0, 0x02B8, prLower}, // Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y - {0x02B9, 0x02BF, prOLetter}, // Lm [7] MODIFIER LETTER PRIME..MODIFIER LETTER LEFT HALF RING - {0x02C0, 0x02C1, prLower}, // Lm [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP - {0x02C6, 0x02D1, prOLetter}, // Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON - {0x02E0, 0x02E4, prLower}, // Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP - {0x02EC, 0x02EC, prOLetter}, // Lm MODIFIER LETTER VOICING - {0x02EE, 0x02EE, prOLetter}, // Lm MODIFIER LETTER DOUBLE APOSTROPHE - {0x0300, 0x036F, prExtend}, // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X - {0x0370, 0x0370, prUpper}, // L& GREEK CAPITAL LETTER HETA - {0x0371, 0x0371, prLower}, // L& GREEK SMALL LETTER HETA - {0x0372, 0x0372, prUpper}, // L& GREEK CAPITAL LETTER ARCHAIC SAMPI - {0x0373, 0x0373, prLower}, // L& GREEK SMALL LETTER ARCHAIC SAMPI - {0x0374, 0x0374, prOLetter}, // Lm GREEK NUMERAL SIGN - {0x0376, 0x0376, prUpper}, // L& GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA - {0x0377, 0x0377, prLower}, // L& GREEK SMALL LETTER PAMPHYLIAN DIGAMMA - {0x037A, 0x037A, prLower}, // Lm GREEK YPOGEGRAMMENI - {0x037B, 0x037D, prLower}, // L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL - {0x037F, 0x037F, prUpper}, // L& GREEK CAPITAL LETTER YOT - {0x0386, 0x0386, prUpper}, // L& GREEK CAPITAL LETTER ALPHA WITH TONOS - {0x0388, 0x038A, prUpper}, // L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS - {0x038C, 0x038C, prUpper}, // L& GREEK CAPITAL LETTER OMICRON WITH TONOS - {0x038E, 0x038F, prUpper}, // L& [2] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS - {0x0390, 0x0390, prLower}, // L& GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS - {0x0391, 0x03A1, prUpper}, // L& [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO - {0x03A3, 0x03AB, prUpper}, // L& [9] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA - {0x03AC, 0x03CE, prLower}, // L& [35] GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS - {0x03CF, 0x03CF, prUpper}, // L& GREEK CAPITAL KAI SYMBOL - {0x03D0, 0x03D1, prLower}, // L& [2] GREEK BETA SYMBOL..GREEK THETA SYMBOL - {0x03D2, 0x03D4, prUpper}, // L& [3] GREEK UPSILON WITH HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL - {0x03D5, 0x03D7, prLower}, // L& [3] GREEK PHI SYMBOL..GREEK KAI SYMBOL - {0x03D8, 0x03D8, prUpper}, // L& GREEK LETTER ARCHAIC KOPPA - {0x03D9, 0x03D9, prLower}, // L& GREEK SMALL LETTER ARCHAIC KOPPA - {0x03DA, 0x03DA, prUpper}, // L& GREEK LETTER STIGMA - {0x03DB, 0x03DB, prLower}, // L& GREEK SMALL LETTER STIGMA - {0x03DC, 0x03DC, prUpper}, // L& GREEK LETTER DIGAMMA - {0x03DD, 0x03DD, prLower}, // L& GREEK SMALL LETTER DIGAMMA - {0x03DE, 0x03DE, prUpper}, // L& GREEK LETTER KOPPA - {0x03DF, 0x03DF, prLower}, // L& GREEK SMALL LETTER KOPPA - {0x03E0, 0x03E0, prUpper}, // L& GREEK LETTER SAMPI - {0x03E1, 0x03E1, prLower}, // L& GREEK SMALL LETTER SAMPI - {0x03E2, 0x03E2, prUpper}, // L& COPTIC CAPITAL LETTER SHEI - {0x03E3, 0x03E3, prLower}, // L& COPTIC SMALL LETTER SHEI - {0x03E4, 0x03E4, prUpper}, // L& COPTIC CAPITAL LETTER FEI - {0x03E5, 0x03E5, prLower}, // L& COPTIC SMALL LETTER FEI - {0x03E6, 0x03E6, prUpper}, // L& COPTIC CAPITAL LETTER KHEI - {0x03E7, 0x03E7, prLower}, // L& COPTIC SMALL LETTER KHEI - {0x03E8, 0x03E8, prUpper}, // L& COPTIC CAPITAL LETTER HORI - {0x03E9, 0x03E9, prLower}, // L& COPTIC SMALL LETTER HORI - {0x03EA, 0x03EA, prUpper}, // L& COPTIC CAPITAL LETTER GANGIA - {0x03EB, 0x03EB, prLower}, // L& COPTIC SMALL LETTER GANGIA - {0x03EC, 0x03EC, prUpper}, // L& COPTIC CAPITAL LETTER SHIMA - {0x03ED, 0x03ED, prLower}, // L& COPTIC SMALL LETTER SHIMA - {0x03EE, 0x03EE, prUpper}, // L& COPTIC CAPITAL LETTER DEI - {0x03EF, 0x03F3, prLower}, // L& [5] COPTIC SMALL LETTER DEI..GREEK LETTER YOT - {0x03F4, 0x03F4, prUpper}, // L& GREEK CAPITAL THETA SYMBOL - {0x03F5, 0x03F5, prLower}, // L& GREEK LUNATE EPSILON SYMBOL - {0x03F7, 0x03F7, prUpper}, // L& GREEK CAPITAL LETTER SHO - {0x03F8, 0x03F8, prLower}, // L& GREEK SMALL LETTER SHO - {0x03F9, 0x03FA, prUpper}, // L& [2] GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN - {0x03FB, 0x03FC, prLower}, // L& [2] GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL - {0x03FD, 0x042F, prUpper}, // L& [51] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA - {0x0430, 0x045F, prLower}, // L& [48] CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE - {0x0460, 0x0460, prUpper}, // L& CYRILLIC CAPITAL LETTER OMEGA - {0x0461, 0x0461, prLower}, // L& CYRILLIC SMALL LETTER OMEGA - {0x0462, 0x0462, prUpper}, // L& CYRILLIC CAPITAL LETTER YAT - {0x0463, 0x0463, prLower}, // L& CYRILLIC SMALL LETTER YAT - {0x0464, 0x0464, prUpper}, // L& CYRILLIC CAPITAL LETTER IOTIFIED E - {0x0465, 0x0465, prLower}, // L& CYRILLIC SMALL LETTER IOTIFIED E - {0x0466, 0x0466, prUpper}, // L& CYRILLIC CAPITAL LETTER LITTLE YUS - {0x0467, 0x0467, prLower}, // L& CYRILLIC SMALL LETTER LITTLE YUS - {0x0468, 0x0468, prUpper}, // L& CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS - {0x0469, 0x0469, prLower}, // L& CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS - {0x046A, 0x046A, prUpper}, // L& CYRILLIC CAPITAL LETTER BIG YUS - {0x046B, 0x046B, prLower}, // L& CYRILLIC SMALL LETTER BIG YUS - {0x046C, 0x046C, prUpper}, // L& CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS - {0x046D, 0x046D, prLower}, // L& CYRILLIC SMALL LETTER IOTIFIED BIG YUS - {0x046E, 0x046E, prUpper}, // L& CYRILLIC CAPITAL LETTER KSI - {0x046F, 0x046F, prLower}, // L& CYRILLIC SMALL LETTER KSI - {0x0470, 0x0470, prUpper}, // L& CYRILLIC CAPITAL LETTER PSI - {0x0471, 0x0471, prLower}, // L& CYRILLIC SMALL LETTER PSI - {0x0472, 0x0472, prUpper}, // L& CYRILLIC CAPITAL LETTER FITA - {0x0473, 0x0473, prLower}, // L& CYRILLIC SMALL LETTER FITA - {0x0474, 0x0474, prUpper}, // L& CYRILLIC CAPITAL LETTER IZHITSA - {0x0475, 0x0475, prLower}, // L& CYRILLIC SMALL LETTER IZHITSA - {0x0476, 0x0476, prUpper}, // L& CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT - {0x0477, 0x0477, prLower}, // L& CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT - {0x0478, 0x0478, prUpper}, // L& CYRILLIC CAPITAL LETTER UK - {0x0479, 0x0479, prLower}, // L& CYRILLIC SMALL LETTER UK - {0x047A, 0x047A, prUpper}, // L& CYRILLIC CAPITAL LETTER ROUND OMEGA - {0x047B, 0x047B, prLower}, // L& CYRILLIC SMALL LETTER ROUND OMEGA - {0x047C, 0x047C, prUpper}, // L& CYRILLIC CAPITAL LETTER OMEGA WITH TITLO - {0x047D, 0x047D, prLower}, // L& CYRILLIC SMALL LETTER OMEGA WITH TITLO - {0x047E, 0x047E, prUpper}, // L& CYRILLIC CAPITAL LETTER OT - {0x047F, 0x047F, prLower}, // L& CYRILLIC SMALL LETTER OT - {0x0480, 0x0480, prUpper}, // L& CYRILLIC CAPITAL LETTER KOPPA - {0x0481, 0x0481, prLower}, // L& CYRILLIC SMALL LETTER KOPPA - {0x0483, 0x0487, prExtend}, // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE - {0x0488, 0x0489, prExtend}, // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN - {0x048A, 0x048A, prUpper}, // L& CYRILLIC CAPITAL LETTER SHORT I WITH TAIL - {0x048B, 0x048B, prLower}, // L& CYRILLIC SMALL LETTER SHORT I WITH TAIL - {0x048C, 0x048C, prUpper}, // L& CYRILLIC CAPITAL LETTER SEMISOFT SIGN - {0x048D, 0x048D, prLower}, // L& CYRILLIC SMALL LETTER SEMISOFT SIGN - {0x048E, 0x048E, prUpper}, // L& CYRILLIC CAPITAL LETTER ER WITH TICK - {0x048F, 0x048F, prLower}, // L& CYRILLIC SMALL LETTER ER WITH TICK - {0x0490, 0x0490, prUpper}, // L& CYRILLIC CAPITAL LETTER GHE WITH UPTURN - {0x0491, 0x0491, prLower}, // L& CYRILLIC SMALL LETTER GHE WITH UPTURN - {0x0492, 0x0492, prUpper}, // L& CYRILLIC CAPITAL LETTER GHE WITH STROKE - {0x0493, 0x0493, prLower}, // L& CYRILLIC SMALL LETTER GHE WITH STROKE - {0x0494, 0x0494, prUpper}, // L& CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK - {0x0495, 0x0495, prLower}, // L& CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK - {0x0496, 0x0496, prUpper}, // L& CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER - {0x0497, 0x0497, prLower}, // L& CYRILLIC SMALL LETTER ZHE WITH DESCENDER - {0x0498, 0x0498, prUpper}, // L& CYRILLIC CAPITAL LETTER ZE WITH DESCENDER - {0x0499, 0x0499, prLower}, // L& CYRILLIC SMALL LETTER ZE WITH DESCENDER - {0x049A, 0x049A, prUpper}, // L& CYRILLIC CAPITAL LETTER KA WITH DESCENDER - {0x049B, 0x049B, prLower}, // L& CYRILLIC SMALL LETTER KA WITH DESCENDER - {0x049C, 0x049C, prUpper}, // L& CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE - {0x049D, 0x049D, prLower}, // L& CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE - {0x049E, 0x049E, prUpper}, // L& CYRILLIC CAPITAL LETTER KA WITH STROKE - {0x049F, 0x049F, prLower}, // L& CYRILLIC SMALL LETTER KA WITH STROKE - {0x04A0, 0x04A0, prUpper}, // L& CYRILLIC CAPITAL LETTER BASHKIR KA - {0x04A1, 0x04A1, prLower}, // L& CYRILLIC SMALL LETTER BASHKIR KA - {0x04A2, 0x04A2, prUpper}, // L& CYRILLIC CAPITAL LETTER EN WITH DESCENDER - {0x04A3, 0x04A3, prLower}, // L& CYRILLIC SMALL LETTER EN WITH DESCENDER - {0x04A4, 0x04A4, prUpper}, // L& CYRILLIC CAPITAL LIGATURE EN GHE - {0x04A5, 0x04A5, prLower}, // L& CYRILLIC SMALL LIGATURE EN GHE - {0x04A6, 0x04A6, prUpper}, // L& CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK - {0x04A7, 0x04A7, prLower}, // L& CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK - {0x04A8, 0x04A8, prUpper}, // L& CYRILLIC CAPITAL LETTER ABKHASIAN HA - {0x04A9, 0x04A9, prLower}, // L& CYRILLIC SMALL LETTER ABKHASIAN HA - {0x04AA, 0x04AA, prUpper}, // L& CYRILLIC CAPITAL LETTER ES WITH DESCENDER - {0x04AB, 0x04AB, prLower}, // L& CYRILLIC SMALL LETTER ES WITH DESCENDER - {0x04AC, 0x04AC, prUpper}, // L& CYRILLIC CAPITAL LETTER TE WITH DESCENDER - {0x04AD, 0x04AD, prLower}, // L& CYRILLIC SMALL LETTER TE WITH DESCENDER - {0x04AE, 0x04AE, prUpper}, // L& CYRILLIC CAPITAL LETTER STRAIGHT U - {0x04AF, 0x04AF, prLower}, // L& CYRILLIC SMALL LETTER STRAIGHT U - {0x04B0, 0x04B0, prUpper}, // L& CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE - {0x04B1, 0x04B1, prLower}, // L& CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE - {0x04B2, 0x04B2, prUpper}, // L& CYRILLIC CAPITAL LETTER HA WITH DESCENDER - {0x04B3, 0x04B3, prLower}, // L& CYRILLIC SMALL LETTER HA WITH DESCENDER - {0x04B4, 0x04B4, prUpper}, // L& CYRILLIC CAPITAL LIGATURE TE TSE - {0x04B5, 0x04B5, prLower}, // L& CYRILLIC SMALL LIGATURE TE TSE - {0x04B6, 0x04B6, prUpper}, // L& CYRILLIC CAPITAL LETTER CHE WITH DESCENDER - {0x04B7, 0x04B7, prLower}, // L& CYRILLIC SMALL LETTER CHE WITH DESCENDER - {0x04B8, 0x04B8, prUpper}, // L& CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE - {0x04B9, 0x04B9, prLower}, // L& CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE - {0x04BA, 0x04BA, prUpper}, // L& CYRILLIC CAPITAL LETTER SHHA - {0x04BB, 0x04BB, prLower}, // L& CYRILLIC SMALL LETTER SHHA - {0x04BC, 0x04BC, prUpper}, // L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE - {0x04BD, 0x04BD, prLower}, // L& CYRILLIC SMALL LETTER ABKHASIAN CHE - {0x04BE, 0x04BE, prUpper}, // L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER - {0x04BF, 0x04BF, prLower}, // L& CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER - {0x04C0, 0x04C1, prUpper}, // L& [2] CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE - {0x04C2, 0x04C2, prLower}, // L& CYRILLIC SMALL LETTER ZHE WITH BREVE - {0x04C3, 0x04C3, prUpper}, // L& CYRILLIC CAPITAL LETTER KA WITH HOOK - {0x04C4, 0x04C4, prLower}, // L& CYRILLIC SMALL LETTER KA WITH HOOK - {0x04C5, 0x04C5, prUpper}, // L& CYRILLIC CAPITAL LETTER EL WITH TAIL - {0x04C6, 0x04C6, prLower}, // L& CYRILLIC SMALL LETTER EL WITH TAIL - {0x04C7, 0x04C7, prUpper}, // L& CYRILLIC CAPITAL LETTER EN WITH HOOK - {0x04C8, 0x04C8, prLower}, // L& CYRILLIC SMALL LETTER EN WITH HOOK - {0x04C9, 0x04C9, prUpper}, // L& CYRILLIC CAPITAL LETTER EN WITH TAIL - {0x04CA, 0x04CA, prLower}, // L& CYRILLIC SMALL LETTER EN WITH TAIL - {0x04CB, 0x04CB, prUpper}, // L& CYRILLIC CAPITAL LETTER KHAKASSIAN CHE - {0x04CC, 0x04CC, prLower}, // L& CYRILLIC SMALL LETTER KHAKASSIAN CHE - {0x04CD, 0x04CD, prUpper}, // L& CYRILLIC CAPITAL LETTER EM WITH TAIL - {0x04CE, 0x04CF, prLower}, // L& [2] CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA - {0x04D0, 0x04D0, prUpper}, // L& CYRILLIC CAPITAL LETTER A WITH BREVE - {0x04D1, 0x04D1, prLower}, // L& CYRILLIC SMALL LETTER A WITH BREVE - {0x04D2, 0x04D2, prUpper}, // L& CYRILLIC CAPITAL LETTER A WITH DIAERESIS - {0x04D3, 0x04D3, prLower}, // L& CYRILLIC SMALL LETTER A WITH DIAERESIS - {0x04D4, 0x04D4, prUpper}, // L& CYRILLIC CAPITAL LIGATURE A IE - {0x04D5, 0x04D5, prLower}, // L& CYRILLIC SMALL LIGATURE A IE - {0x04D6, 0x04D6, prUpper}, // L& CYRILLIC CAPITAL LETTER IE WITH BREVE - {0x04D7, 0x04D7, prLower}, // L& CYRILLIC SMALL LETTER IE WITH BREVE - {0x04D8, 0x04D8, prUpper}, // L& CYRILLIC CAPITAL LETTER SCHWA - {0x04D9, 0x04D9, prLower}, // L& CYRILLIC SMALL LETTER SCHWA - {0x04DA, 0x04DA, prUpper}, // L& CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS - {0x04DB, 0x04DB, prLower}, // L& CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS - {0x04DC, 0x04DC, prUpper}, // L& CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS - {0x04DD, 0x04DD, prLower}, // L& CYRILLIC SMALL LETTER ZHE WITH DIAERESIS - {0x04DE, 0x04DE, prUpper}, // L& CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS - {0x04DF, 0x04DF, prLower}, // L& CYRILLIC SMALL LETTER ZE WITH DIAERESIS - {0x04E0, 0x04E0, prUpper}, // L& CYRILLIC CAPITAL LETTER ABKHASIAN DZE - {0x04E1, 0x04E1, prLower}, // L& CYRILLIC SMALL LETTER ABKHASIAN DZE - {0x04E2, 0x04E2, prUpper}, // L& CYRILLIC CAPITAL LETTER I WITH MACRON - {0x04E3, 0x04E3, prLower}, // L& CYRILLIC SMALL LETTER I WITH MACRON - {0x04E4, 0x04E4, prUpper}, // L& CYRILLIC CAPITAL LETTER I WITH DIAERESIS - {0x04E5, 0x04E5, prLower}, // L& CYRILLIC SMALL LETTER I WITH DIAERESIS - {0x04E6, 0x04E6, prUpper}, // L& CYRILLIC CAPITAL LETTER O WITH DIAERESIS - {0x04E7, 0x04E7, prLower}, // L& CYRILLIC SMALL LETTER O WITH DIAERESIS - {0x04E8, 0x04E8, prUpper}, // L& CYRILLIC CAPITAL LETTER BARRED O - {0x04E9, 0x04E9, prLower}, // L& CYRILLIC SMALL LETTER BARRED O - {0x04EA, 0x04EA, prUpper}, // L& CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS - {0x04EB, 0x04EB, prLower}, // L& CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS - {0x04EC, 0x04EC, prUpper}, // L& CYRILLIC CAPITAL LETTER E WITH DIAERESIS - {0x04ED, 0x04ED, prLower}, // L& CYRILLIC SMALL LETTER E WITH DIAERESIS - {0x04EE, 0x04EE, prUpper}, // L& CYRILLIC CAPITAL LETTER U WITH MACRON - {0x04EF, 0x04EF, prLower}, // L& CYRILLIC SMALL LETTER U WITH MACRON - {0x04F0, 0x04F0, prUpper}, // L& CYRILLIC CAPITAL LETTER U WITH DIAERESIS - {0x04F1, 0x04F1, prLower}, // L& CYRILLIC SMALL LETTER U WITH DIAERESIS - {0x04F2, 0x04F2, prUpper}, // L& CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE - {0x04F3, 0x04F3, prLower}, // L& CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE - {0x04F4, 0x04F4, prUpper}, // L& CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS - {0x04F5, 0x04F5, prLower}, // L& CYRILLIC SMALL LETTER CHE WITH DIAERESIS - {0x04F6, 0x04F6, prUpper}, // L& CYRILLIC CAPITAL LETTER GHE WITH DESCENDER - {0x04F7, 0x04F7, prLower}, // L& CYRILLIC SMALL LETTER GHE WITH DESCENDER - {0x04F8, 0x04F8, prUpper}, // L& CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS - {0x04F9, 0x04F9, prLower}, // L& CYRILLIC SMALL LETTER YERU WITH DIAERESIS - {0x04FA, 0x04FA, prUpper}, // L& CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK - {0x04FB, 0x04FB, prLower}, // L& CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK - {0x04FC, 0x04FC, prUpper}, // L& CYRILLIC CAPITAL LETTER HA WITH HOOK - {0x04FD, 0x04FD, prLower}, // L& CYRILLIC SMALL LETTER HA WITH HOOK - {0x04FE, 0x04FE, prUpper}, // L& CYRILLIC CAPITAL LETTER HA WITH STROKE - {0x04FF, 0x04FF, prLower}, // L& CYRILLIC SMALL LETTER HA WITH STROKE - {0x0500, 0x0500, prUpper}, // L& CYRILLIC CAPITAL LETTER KOMI DE - {0x0501, 0x0501, prLower}, // L& CYRILLIC SMALL LETTER KOMI DE - {0x0502, 0x0502, prUpper}, // L& CYRILLIC CAPITAL LETTER KOMI DJE - {0x0503, 0x0503, prLower}, // L& CYRILLIC SMALL LETTER KOMI DJE - {0x0504, 0x0504, prUpper}, // L& CYRILLIC CAPITAL LETTER KOMI ZJE - {0x0505, 0x0505, prLower}, // L& CYRILLIC SMALL LETTER KOMI ZJE - {0x0506, 0x0506, prUpper}, // L& CYRILLIC CAPITAL LETTER KOMI DZJE - {0x0507, 0x0507, prLower}, // L& CYRILLIC SMALL LETTER KOMI DZJE - {0x0508, 0x0508, prUpper}, // L& CYRILLIC CAPITAL LETTER KOMI LJE - {0x0509, 0x0509, prLower}, // L& CYRILLIC SMALL LETTER KOMI LJE - {0x050A, 0x050A, prUpper}, // L& CYRILLIC CAPITAL LETTER KOMI NJE - {0x050B, 0x050B, prLower}, // L& CYRILLIC SMALL LETTER KOMI NJE - {0x050C, 0x050C, prUpper}, // L& CYRILLIC CAPITAL LETTER KOMI SJE - {0x050D, 0x050D, prLower}, // L& CYRILLIC SMALL LETTER KOMI SJE - {0x050E, 0x050E, prUpper}, // L& CYRILLIC CAPITAL LETTER KOMI TJE - {0x050F, 0x050F, prLower}, // L& CYRILLIC SMALL LETTER KOMI TJE - {0x0510, 0x0510, prUpper}, // L& CYRILLIC CAPITAL LETTER REVERSED ZE - {0x0511, 0x0511, prLower}, // L& CYRILLIC SMALL LETTER REVERSED ZE - {0x0512, 0x0512, prUpper}, // L& CYRILLIC CAPITAL LETTER EL WITH HOOK - {0x0513, 0x0513, prLower}, // L& CYRILLIC SMALL LETTER EL WITH HOOK - {0x0514, 0x0514, prUpper}, // L& CYRILLIC CAPITAL LETTER LHA - {0x0515, 0x0515, prLower}, // L& CYRILLIC SMALL LETTER LHA - {0x0516, 0x0516, prUpper}, // L& CYRILLIC CAPITAL LETTER RHA - {0x0517, 0x0517, prLower}, // L& CYRILLIC SMALL LETTER RHA - {0x0518, 0x0518, prUpper}, // L& CYRILLIC CAPITAL LETTER YAE - {0x0519, 0x0519, prLower}, // L& CYRILLIC SMALL LETTER YAE - {0x051A, 0x051A, prUpper}, // L& CYRILLIC CAPITAL LETTER QA - {0x051B, 0x051B, prLower}, // L& CYRILLIC SMALL LETTER QA - {0x051C, 0x051C, prUpper}, // L& CYRILLIC CAPITAL LETTER WE - {0x051D, 0x051D, prLower}, // L& CYRILLIC SMALL LETTER WE - {0x051E, 0x051E, prUpper}, // L& CYRILLIC CAPITAL LETTER ALEUT KA - {0x051F, 0x051F, prLower}, // L& CYRILLIC SMALL LETTER ALEUT KA - {0x0520, 0x0520, prUpper}, // L& CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK - {0x0521, 0x0521, prLower}, // L& CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK - {0x0522, 0x0522, prUpper}, // L& CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK - {0x0523, 0x0523, prLower}, // L& CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK - {0x0524, 0x0524, prUpper}, // L& CYRILLIC CAPITAL LETTER PE WITH DESCENDER - {0x0525, 0x0525, prLower}, // L& CYRILLIC SMALL LETTER PE WITH DESCENDER - {0x0526, 0x0526, prUpper}, // L& CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER - {0x0527, 0x0527, prLower}, // L& CYRILLIC SMALL LETTER SHHA WITH DESCENDER - {0x0528, 0x0528, prUpper}, // L& CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK - {0x0529, 0x0529, prLower}, // L& CYRILLIC SMALL LETTER EN WITH LEFT HOOK - {0x052A, 0x052A, prUpper}, // L& CYRILLIC CAPITAL LETTER DZZHE - {0x052B, 0x052B, prLower}, // L& CYRILLIC SMALL LETTER DZZHE - {0x052C, 0x052C, prUpper}, // L& CYRILLIC CAPITAL LETTER DCHE - {0x052D, 0x052D, prLower}, // L& CYRILLIC SMALL LETTER DCHE - {0x052E, 0x052E, prUpper}, // L& CYRILLIC CAPITAL LETTER EL WITH DESCENDER - {0x052F, 0x052F, prLower}, // L& CYRILLIC SMALL LETTER EL WITH DESCENDER - {0x0531, 0x0556, prUpper}, // L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH - {0x0559, 0x0559, prOLetter}, // Lm ARMENIAN MODIFIER LETTER LEFT HALF RING - {0x055D, 0x055D, prSContinue}, // Po ARMENIAN COMMA - {0x0560, 0x0588, prLower}, // L& [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE - {0x0589, 0x0589, prSTerm}, // Po ARMENIAN FULL STOP - {0x0591, 0x05BD, prExtend}, // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG - {0x05BF, 0x05BF, prExtend}, // Mn HEBREW POINT RAFE - {0x05C1, 0x05C2, prExtend}, // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT - {0x05C4, 0x05C5, prExtend}, // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT - {0x05C7, 0x05C7, prExtend}, // Mn HEBREW POINT QAMATS QATAN - {0x05D0, 0x05EA, prOLetter}, // Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV - {0x05EF, 0x05F2, prOLetter}, // Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD - {0x05F3, 0x05F3, prOLetter}, // Po HEBREW PUNCTUATION GERESH - {0x0600, 0x0605, prFormat}, // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE - {0x060C, 0x060D, prSContinue}, // Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR - {0x0610, 0x061A, prExtend}, // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA - {0x061C, 0x061C, prFormat}, // Cf ARABIC LETTER MARK - {0x061D, 0x061F, prSTerm}, // Po [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK - {0x0620, 0x063F, prOLetter}, // Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE - {0x0640, 0x0640, prOLetter}, // Lm ARABIC TATWEEL - {0x0641, 0x064A, prOLetter}, // Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH - {0x064B, 0x065F, prExtend}, // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW - {0x0660, 0x0669, prNumeric}, // Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE - {0x066B, 0x066C, prNumeric}, // Po [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR - {0x066E, 0x066F, prOLetter}, // Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF - {0x0670, 0x0670, prExtend}, // Mn ARABIC LETTER SUPERSCRIPT ALEF - {0x0671, 0x06D3, prOLetter}, // Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE - {0x06D4, 0x06D4, prSTerm}, // Po ARABIC FULL STOP - {0x06D5, 0x06D5, prOLetter}, // Lo ARABIC LETTER AE - {0x06D6, 0x06DC, prExtend}, // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN - {0x06DD, 0x06DD, prFormat}, // Cf ARABIC END OF AYAH - {0x06DF, 0x06E4, prExtend}, // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA - {0x06E5, 0x06E6, prOLetter}, // Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH - {0x06E7, 0x06E8, prExtend}, // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON - {0x06EA, 0x06ED, prExtend}, // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM - {0x06EE, 0x06EF, prOLetter}, // Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V - {0x06F0, 0x06F9, prNumeric}, // Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE - {0x06FA, 0x06FC, prOLetter}, // Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW - {0x06FF, 0x06FF, prOLetter}, // Lo ARABIC LETTER HEH WITH INVERTED V - {0x0700, 0x0702, prSTerm}, // Po [3] SYRIAC END OF PARAGRAPH..SYRIAC SUBLINEAR FULL STOP - {0x070F, 0x070F, prFormat}, // Cf SYRIAC ABBREVIATION MARK - {0x0710, 0x0710, prOLetter}, // Lo SYRIAC LETTER ALAPH - {0x0711, 0x0711, prExtend}, // Mn SYRIAC LETTER SUPERSCRIPT ALAPH - {0x0712, 0x072F, prOLetter}, // Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH - {0x0730, 0x074A, prExtend}, // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH - {0x074D, 0x07A5, prOLetter}, // Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU - {0x07A6, 0x07B0, prExtend}, // Mn [11] THAANA ABAFILI..THAANA SUKUN - {0x07B1, 0x07B1, prOLetter}, // Lo THAANA LETTER NAA - {0x07C0, 0x07C9, prNumeric}, // Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE - {0x07CA, 0x07EA, prOLetter}, // Lo [33] NKO LETTER A..NKO LETTER JONA RA - {0x07EB, 0x07F3, prExtend}, // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE - {0x07F4, 0x07F5, prOLetter}, // Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE - {0x07F8, 0x07F8, prSContinue}, // Po NKO COMMA - {0x07F9, 0x07F9, prSTerm}, // Po NKO EXCLAMATION MARK - {0x07FA, 0x07FA, prOLetter}, // Lm NKO LAJANYALAN - {0x07FD, 0x07FD, prExtend}, // Mn NKO DANTAYALAN - {0x0800, 0x0815, prOLetter}, // Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF - {0x0816, 0x0819, prExtend}, // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH - {0x081A, 0x081A, prOLetter}, // Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT - {0x081B, 0x0823, prExtend}, // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A - {0x0824, 0x0824, prOLetter}, // Lm SAMARITAN MODIFIER LETTER SHORT A - {0x0825, 0x0827, prExtend}, // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U - {0x0828, 0x0828, prOLetter}, // Lm SAMARITAN MODIFIER LETTER I - {0x0829, 0x082D, prExtend}, // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA - {0x0837, 0x0837, prSTerm}, // Po SAMARITAN PUNCTUATION MELODIC QITSA - {0x0839, 0x0839, prSTerm}, // Po SAMARITAN PUNCTUATION QITSA - {0x083D, 0x083E, prSTerm}, // Po [2] SAMARITAN PUNCTUATION SOF MASHFAAT..SAMARITAN PUNCTUATION ANNAAU - {0x0840, 0x0858, prOLetter}, // Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN - {0x0859, 0x085B, prExtend}, // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK - {0x0860, 0x086A, prOLetter}, // Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA - {0x0870, 0x0887, prOLetter}, // Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT - {0x0889, 0x088E, prOLetter}, // Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL - {0x0890, 0x0891, prFormat}, // Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE - {0x0898, 0x089F, prExtend}, // Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA - {0x08A0, 0x08C8, prOLetter}, // Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF - {0x08C9, 0x08C9, prOLetter}, // Lm ARABIC SMALL FARSI YEH - {0x08CA, 0x08E1, prExtend}, // Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA - {0x08E2, 0x08E2, prFormat}, // Cf ARABIC DISPUTED END OF AYAH - {0x08E3, 0x0902, prExtend}, // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA - {0x0903, 0x0903, prExtend}, // Mc DEVANAGARI SIGN VISARGA - {0x0904, 0x0939, prOLetter}, // Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA - {0x093A, 0x093A, prExtend}, // Mn DEVANAGARI VOWEL SIGN OE - {0x093B, 0x093B, prExtend}, // Mc DEVANAGARI VOWEL SIGN OOE - {0x093C, 0x093C, prExtend}, // Mn DEVANAGARI SIGN NUKTA - {0x093D, 0x093D, prOLetter}, // Lo DEVANAGARI SIGN AVAGRAHA - {0x093E, 0x0940, prExtend}, // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II - {0x0941, 0x0948, prExtend}, // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI - {0x0949, 0x094C, prExtend}, // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU - {0x094D, 0x094D, prExtend}, // Mn DEVANAGARI SIGN VIRAMA - {0x094E, 0x094F, prExtend}, // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW - {0x0950, 0x0950, prOLetter}, // Lo DEVANAGARI OM - {0x0951, 0x0957, prExtend}, // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE - {0x0958, 0x0961, prOLetter}, // Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL - {0x0962, 0x0963, prExtend}, // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL - {0x0964, 0x0965, prSTerm}, // Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA - {0x0966, 0x096F, prNumeric}, // Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE - {0x0971, 0x0971, prOLetter}, // Lm DEVANAGARI SIGN HIGH SPACING DOT - {0x0972, 0x0980, prOLetter}, // Lo [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI - {0x0981, 0x0981, prExtend}, // Mn BENGALI SIGN CANDRABINDU - {0x0982, 0x0983, prExtend}, // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA - {0x0985, 0x098C, prOLetter}, // Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L - {0x098F, 0x0990, prOLetter}, // Lo [2] BENGALI LETTER E..BENGALI LETTER AI - {0x0993, 0x09A8, prOLetter}, // Lo [22] BENGALI LETTER O..BENGALI LETTER NA - {0x09AA, 0x09B0, prOLetter}, // Lo [7] BENGALI LETTER PA..BENGALI LETTER RA - {0x09B2, 0x09B2, prOLetter}, // Lo BENGALI LETTER LA - {0x09B6, 0x09B9, prOLetter}, // Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA - {0x09BC, 0x09BC, prExtend}, // Mn BENGALI SIGN NUKTA - {0x09BD, 0x09BD, prOLetter}, // Lo BENGALI SIGN AVAGRAHA - {0x09BE, 0x09C0, prExtend}, // Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II - {0x09C1, 0x09C4, prExtend}, // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR - {0x09C7, 0x09C8, prExtend}, // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI - {0x09CB, 0x09CC, prExtend}, // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU - {0x09CD, 0x09CD, prExtend}, // Mn BENGALI SIGN VIRAMA - {0x09CE, 0x09CE, prOLetter}, // Lo BENGALI LETTER KHANDA TA - {0x09D7, 0x09D7, prExtend}, // Mc BENGALI AU LENGTH MARK - {0x09DC, 0x09DD, prOLetter}, // Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA - {0x09DF, 0x09E1, prOLetter}, // Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL - {0x09E2, 0x09E3, prExtend}, // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL - {0x09E6, 0x09EF, prNumeric}, // Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE - {0x09F0, 0x09F1, prOLetter}, // Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL - {0x09FC, 0x09FC, prOLetter}, // Lo BENGALI LETTER VEDIC ANUSVARA - {0x09FE, 0x09FE, prExtend}, // Mn BENGALI SANDHI MARK - {0x0A01, 0x0A02, prExtend}, // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI - {0x0A03, 0x0A03, prExtend}, // Mc GURMUKHI SIGN VISARGA - {0x0A05, 0x0A0A, prOLetter}, // Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU - {0x0A0F, 0x0A10, prOLetter}, // Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI - {0x0A13, 0x0A28, prOLetter}, // Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA - {0x0A2A, 0x0A30, prOLetter}, // Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA - {0x0A32, 0x0A33, prOLetter}, // Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA - {0x0A35, 0x0A36, prOLetter}, // Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA - {0x0A38, 0x0A39, prOLetter}, // Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA - {0x0A3C, 0x0A3C, prExtend}, // Mn GURMUKHI SIGN NUKTA - {0x0A3E, 0x0A40, prExtend}, // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II - {0x0A41, 0x0A42, prExtend}, // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU - {0x0A47, 0x0A48, prExtend}, // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI - {0x0A4B, 0x0A4D, prExtend}, // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA - {0x0A51, 0x0A51, prExtend}, // Mn GURMUKHI SIGN UDAAT - {0x0A59, 0x0A5C, prOLetter}, // Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA - {0x0A5E, 0x0A5E, prOLetter}, // Lo GURMUKHI LETTER FA - {0x0A66, 0x0A6F, prNumeric}, // Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE - {0x0A70, 0x0A71, prExtend}, // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK - {0x0A72, 0x0A74, prOLetter}, // Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR - {0x0A75, 0x0A75, prExtend}, // Mn GURMUKHI SIGN YAKASH - {0x0A81, 0x0A82, prExtend}, // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA - {0x0A83, 0x0A83, prExtend}, // Mc GUJARATI SIGN VISARGA - {0x0A85, 0x0A8D, prOLetter}, // Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E - {0x0A8F, 0x0A91, prOLetter}, // Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O - {0x0A93, 0x0AA8, prOLetter}, // Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA - {0x0AAA, 0x0AB0, prOLetter}, // Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA - {0x0AB2, 0x0AB3, prOLetter}, // Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA - {0x0AB5, 0x0AB9, prOLetter}, // Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA - {0x0ABC, 0x0ABC, prExtend}, // Mn GUJARATI SIGN NUKTA - {0x0ABD, 0x0ABD, prOLetter}, // Lo GUJARATI SIGN AVAGRAHA - {0x0ABE, 0x0AC0, prExtend}, // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II - {0x0AC1, 0x0AC5, prExtend}, // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E - {0x0AC7, 0x0AC8, prExtend}, // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI - {0x0AC9, 0x0AC9, prExtend}, // Mc GUJARATI VOWEL SIGN CANDRA O - {0x0ACB, 0x0ACC, prExtend}, // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU - {0x0ACD, 0x0ACD, prExtend}, // Mn GUJARATI SIGN VIRAMA - {0x0AD0, 0x0AD0, prOLetter}, // Lo GUJARATI OM - {0x0AE0, 0x0AE1, prOLetter}, // Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL - {0x0AE2, 0x0AE3, prExtend}, // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL - {0x0AE6, 0x0AEF, prNumeric}, // Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE - {0x0AF9, 0x0AF9, prOLetter}, // Lo GUJARATI LETTER ZHA - {0x0AFA, 0x0AFF, prExtend}, // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE - {0x0B01, 0x0B01, prExtend}, // Mn ORIYA SIGN CANDRABINDU - {0x0B02, 0x0B03, prExtend}, // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA - {0x0B05, 0x0B0C, prOLetter}, // Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L - {0x0B0F, 0x0B10, prOLetter}, // Lo [2] ORIYA LETTER E..ORIYA LETTER AI - {0x0B13, 0x0B28, prOLetter}, // Lo [22] ORIYA LETTER O..ORIYA LETTER NA - {0x0B2A, 0x0B30, prOLetter}, // Lo [7] ORIYA LETTER PA..ORIYA LETTER RA - {0x0B32, 0x0B33, prOLetter}, // Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA - {0x0B35, 0x0B39, prOLetter}, // Lo [5] ORIYA LETTER VA..ORIYA LETTER HA - {0x0B3C, 0x0B3C, prExtend}, // Mn ORIYA SIGN NUKTA - {0x0B3D, 0x0B3D, prOLetter}, // Lo ORIYA SIGN AVAGRAHA - {0x0B3E, 0x0B3E, prExtend}, // Mc ORIYA VOWEL SIGN AA - {0x0B3F, 0x0B3F, prExtend}, // Mn ORIYA VOWEL SIGN I - {0x0B40, 0x0B40, prExtend}, // Mc ORIYA VOWEL SIGN II - {0x0B41, 0x0B44, prExtend}, // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR - {0x0B47, 0x0B48, prExtend}, // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI - {0x0B4B, 0x0B4C, prExtend}, // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU - {0x0B4D, 0x0B4D, prExtend}, // Mn ORIYA SIGN VIRAMA - {0x0B55, 0x0B56, prExtend}, // Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK - {0x0B57, 0x0B57, prExtend}, // Mc ORIYA AU LENGTH MARK - {0x0B5C, 0x0B5D, prOLetter}, // Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA - {0x0B5F, 0x0B61, prOLetter}, // Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL - {0x0B62, 0x0B63, prExtend}, // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL - {0x0B66, 0x0B6F, prNumeric}, // Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE - {0x0B71, 0x0B71, prOLetter}, // Lo ORIYA LETTER WA - {0x0B82, 0x0B82, prExtend}, // Mn TAMIL SIGN ANUSVARA - {0x0B83, 0x0B83, prOLetter}, // Lo TAMIL SIGN VISARGA - {0x0B85, 0x0B8A, prOLetter}, // Lo [6] TAMIL LETTER A..TAMIL LETTER UU - {0x0B8E, 0x0B90, prOLetter}, // Lo [3] TAMIL LETTER E..TAMIL LETTER AI - {0x0B92, 0x0B95, prOLetter}, // Lo [4] TAMIL LETTER O..TAMIL LETTER KA - {0x0B99, 0x0B9A, prOLetter}, // Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA - {0x0B9C, 0x0B9C, prOLetter}, // Lo TAMIL LETTER JA - {0x0B9E, 0x0B9F, prOLetter}, // Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA - {0x0BA3, 0x0BA4, prOLetter}, // Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA - {0x0BA8, 0x0BAA, prOLetter}, // Lo [3] TAMIL LETTER NA..TAMIL LETTER PA - {0x0BAE, 0x0BB9, prOLetter}, // Lo [12] TAMIL LETTER MA..TAMIL LETTER HA - {0x0BBE, 0x0BBF, prExtend}, // Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I - {0x0BC0, 0x0BC0, prExtend}, // Mn TAMIL VOWEL SIGN II - {0x0BC1, 0x0BC2, prExtend}, // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU - {0x0BC6, 0x0BC8, prExtend}, // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI - {0x0BCA, 0x0BCC, prExtend}, // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU - {0x0BCD, 0x0BCD, prExtend}, // Mn TAMIL SIGN VIRAMA - {0x0BD0, 0x0BD0, prOLetter}, // Lo TAMIL OM - {0x0BD7, 0x0BD7, prExtend}, // Mc TAMIL AU LENGTH MARK - {0x0BE6, 0x0BEF, prNumeric}, // Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE - {0x0C00, 0x0C00, prExtend}, // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE - {0x0C01, 0x0C03, prExtend}, // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA - {0x0C04, 0x0C04, prExtend}, // Mn TELUGU SIGN COMBINING ANUSVARA ABOVE - {0x0C05, 0x0C0C, prOLetter}, // Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L - {0x0C0E, 0x0C10, prOLetter}, // Lo [3] TELUGU LETTER E..TELUGU LETTER AI - {0x0C12, 0x0C28, prOLetter}, // Lo [23] TELUGU LETTER O..TELUGU LETTER NA - {0x0C2A, 0x0C39, prOLetter}, // Lo [16] TELUGU LETTER PA..TELUGU LETTER HA - {0x0C3C, 0x0C3C, prExtend}, // Mn TELUGU SIGN NUKTA - {0x0C3D, 0x0C3D, prOLetter}, // Lo TELUGU SIGN AVAGRAHA - {0x0C3E, 0x0C40, prExtend}, // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II - {0x0C41, 0x0C44, prExtend}, // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR - {0x0C46, 0x0C48, prExtend}, // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI - {0x0C4A, 0x0C4D, prExtend}, // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA - {0x0C55, 0x0C56, prExtend}, // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK - {0x0C58, 0x0C5A, prOLetter}, // Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA - {0x0C5D, 0x0C5D, prOLetter}, // Lo TELUGU LETTER NAKAARA POLLU - {0x0C60, 0x0C61, prOLetter}, // Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL - {0x0C62, 0x0C63, prExtend}, // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL - {0x0C66, 0x0C6F, prNumeric}, // Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE - {0x0C80, 0x0C80, prOLetter}, // Lo KANNADA SIGN SPACING CANDRABINDU - {0x0C81, 0x0C81, prExtend}, // Mn KANNADA SIGN CANDRABINDU - {0x0C82, 0x0C83, prExtend}, // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA - {0x0C85, 0x0C8C, prOLetter}, // Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L - {0x0C8E, 0x0C90, prOLetter}, // Lo [3] KANNADA LETTER E..KANNADA LETTER AI - {0x0C92, 0x0CA8, prOLetter}, // Lo [23] KANNADA LETTER O..KANNADA LETTER NA - {0x0CAA, 0x0CB3, prOLetter}, // Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA - {0x0CB5, 0x0CB9, prOLetter}, // Lo [5] KANNADA LETTER VA..KANNADA LETTER HA - {0x0CBC, 0x0CBC, prExtend}, // Mn KANNADA SIGN NUKTA - {0x0CBD, 0x0CBD, prOLetter}, // Lo KANNADA SIGN AVAGRAHA - {0x0CBE, 0x0CBE, prExtend}, // Mc KANNADA VOWEL SIGN AA - {0x0CBF, 0x0CBF, prExtend}, // Mn KANNADA VOWEL SIGN I - {0x0CC0, 0x0CC4, prExtend}, // Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR - {0x0CC6, 0x0CC6, prExtend}, // Mn KANNADA VOWEL SIGN E - {0x0CC7, 0x0CC8, prExtend}, // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI - {0x0CCA, 0x0CCB, prExtend}, // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO - {0x0CCC, 0x0CCD, prExtend}, // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA - {0x0CD5, 0x0CD6, prExtend}, // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK - {0x0CDD, 0x0CDE, prOLetter}, // Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA - {0x0CE0, 0x0CE1, prOLetter}, // Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL - {0x0CE2, 0x0CE3, prExtend}, // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL - {0x0CE6, 0x0CEF, prNumeric}, // Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE - {0x0CF1, 0x0CF2, prOLetter}, // Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA - {0x0CF3, 0x0CF3, prExtend}, // Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT - {0x0D00, 0x0D01, prExtend}, // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU - {0x0D02, 0x0D03, prExtend}, // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA - {0x0D04, 0x0D0C, prOLetter}, // Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L - {0x0D0E, 0x0D10, prOLetter}, // Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI - {0x0D12, 0x0D3A, prOLetter}, // Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA - {0x0D3B, 0x0D3C, prExtend}, // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA - {0x0D3D, 0x0D3D, prOLetter}, // Lo MALAYALAM SIGN AVAGRAHA - {0x0D3E, 0x0D40, prExtend}, // Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II - {0x0D41, 0x0D44, prExtend}, // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR - {0x0D46, 0x0D48, prExtend}, // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI - {0x0D4A, 0x0D4C, prExtend}, // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU - {0x0D4D, 0x0D4D, prExtend}, // Mn MALAYALAM SIGN VIRAMA - {0x0D4E, 0x0D4E, prOLetter}, // Lo MALAYALAM LETTER DOT REPH - {0x0D54, 0x0D56, prOLetter}, // Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL - {0x0D57, 0x0D57, prExtend}, // Mc MALAYALAM AU LENGTH MARK - {0x0D5F, 0x0D61, prOLetter}, // Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL - {0x0D62, 0x0D63, prExtend}, // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL - {0x0D66, 0x0D6F, prNumeric}, // Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE - {0x0D7A, 0x0D7F, prOLetter}, // Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K - {0x0D81, 0x0D81, prExtend}, // Mn SINHALA SIGN CANDRABINDU - {0x0D82, 0x0D83, prExtend}, // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA - {0x0D85, 0x0D96, prOLetter}, // Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA - {0x0D9A, 0x0DB1, prOLetter}, // Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA - {0x0DB3, 0x0DBB, prOLetter}, // Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA - {0x0DBD, 0x0DBD, prOLetter}, // Lo SINHALA LETTER DANTAJA LAYANNA - {0x0DC0, 0x0DC6, prOLetter}, // Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA - {0x0DCA, 0x0DCA, prExtend}, // Mn SINHALA SIGN AL-LAKUNA - {0x0DCF, 0x0DD1, prExtend}, // Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA - {0x0DD2, 0x0DD4, prExtend}, // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA - {0x0DD6, 0x0DD6, prExtend}, // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA - {0x0DD8, 0x0DDF, prExtend}, // Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA - {0x0DE6, 0x0DEF, prNumeric}, // Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE - {0x0DF2, 0x0DF3, prExtend}, // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA - {0x0E01, 0x0E30, prOLetter}, // Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A - {0x0E31, 0x0E31, prExtend}, // Mn THAI CHARACTER MAI HAN-AKAT - {0x0E32, 0x0E33, prOLetter}, // Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM - {0x0E34, 0x0E3A, prExtend}, // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU - {0x0E40, 0x0E45, prOLetter}, // Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO - {0x0E46, 0x0E46, prOLetter}, // Lm THAI CHARACTER MAIYAMOK - {0x0E47, 0x0E4E, prExtend}, // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN - {0x0E50, 0x0E59, prNumeric}, // Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE - {0x0E81, 0x0E82, prOLetter}, // Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG - {0x0E84, 0x0E84, prOLetter}, // Lo LAO LETTER KHO TAM - {0x0E86, 0x0E8A, prOLetter}, // Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM - {0x0E8C, 0x0EA3, prOLetter}, // Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING - {0x0EA5, 0x0EA5, prOLetter}, // Lo LAO LETTER LO LOOT - {0x0EA7, 0x0EB0, prOLetter}, // Lo [10] LAO LETTER WO..LAO VOWEL SIGN A - {0x0EB1, 0x0EB1, prExtend}, // Mn LAO VOWEL SIGN MAI KAN - {0x0EB2, 0x0EB3, prOLetter}, // Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM - {0x0EB4, 0x0EBC, prExtend}, // Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO - {0x0EBD, 0x0EBD, prOLetter}, // Lo LAO SEMIVOWEL SIGN NYO - {0x0EC0, 0x0EC4, prOLetter}, // Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI - {0x0EC6, 0x0EC6, prOLetter}, // Lm LAO KO LA - {0x0EC8, 0x0ECE, prExtend}, // Mn [7] LAO TONE MAI EK..LAO YAMAKKAN - {0x0ED0, 0x0ED9, prNumeric}, // Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE - {0x0EDC, 0x0EDF, prOLetter}, // Lo [4] LAO HO NO..LAO LETTER KHMU NYO - {0x0F00, 0x0F00, prOLetter}, // Lo TIBETAN SYLLABLE OM - {0x0F18, 0x0F19, prExtend}, // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS - {0x0F20, 0x0F29, prNumeric}, // Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE - {0x0F35, 0x0F35, prExtend}, // Mn TIBETAN MARK NGAS BZUNG NYI ZLA - {0x0F37, 0x0F37, prExtend}, // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS - {0x0F39, 0x0F39, prExtend}, // Mn TIBETAN MARK TSA -PHRU - {0x0F3A, 0x0F3A, prClose}, // Ps TIBETAN MARK GUG RTAGS GYON - {0x0F3B, 0x0F3B, prClose}, // Pe TIBETAN MARK GUG RTAGS GYAS - {0x0F3C, 0x0F3C, prClose}, // Ps TIBETAN MARK ANG KHANG GYON - {0x0F3D, 0x0F3D, prClose}, // Pe TIBETAN MARK ANG KHANG GYAS - {0x0F3E, 0x0F3F, prExtend}, // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES - {0x0F40, 0x0F47, prOLetter}, // Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA - {0x0F49, 0x0F6C, prOLetter}, // Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA - {0x0F71, 0x0F7E, prExtend}, // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO - {0x0F7F, 0x0F7F, prExtend}, // Mc TIBETAN SIGN RNAM BCAD - {0x0F80, 0x0F84, prExtend}, // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA - {0x0F86, 0x0F87, prExtend}, // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS - {0x0F88, 0x0F8C, prOLetter}, // Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN - {0x0F8D, 0x0F97, prExtend}, // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA - {0x0F99, 0x0FBC, prExtend}, // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA - {0x0FC6, 0x0FC6, prExtend}, // Mn TIBETAN SYMBOL PADMA GDAN - {0x1000, 0x102A, prOLetter}, // Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU - {0x102B, 0x102C, prExtend}, // Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA - {0x102D, 0x1030, prExtend}, // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU - {0x1031, 0x1031, prExtend}, // Mc MYANMAR VOWEL SIGN E - {0x1032, 0x1037, prExtend}, // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW - {0x1038, 0x1038, prExtend}, // Mc MYANMAR SIGN VISARGA - {0x1039, 0x103A, prExtend}, // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT - {0x103B, 0x103C, prExtend}, // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA - {0x103D, 0x103E, prExtend}, // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA - {0x103F, 0x103F, prOLetter}, // Lo MYANMAR LETTER GREAT SA - {0x1040, 0x1049, prNumeric}, // Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE - {0x104A, 0x104B, prSTerm}, // Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION - {0x1050, 0x1055, prOLetter}, // Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL - {0x1056, 0x1057, prExtend}, // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR - {0x1058, 0x1059, prExtend}, // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL - {0x105A, 0x105D, prOLetter}, // Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE - {0x105E, 0x1060, prExtend}, // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA - {0x1061, 0x1061, prOLetter}, // Lo MYANMAR LETTER SGAW KAREN SHA - {0x1062, 0x1064, prExtend}, // Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO - {0x1065, 0x1066, prOLetter}, // Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA - {0x1067, 0x106D, prExtend}, // Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5 - {0x106E, 0x1070, prOLetter}, // Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA - {0x1071, 0x1074, prExtend}, // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE - {0x1075, 0x1081, prOLetter}, // Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA - {0x1082, 0x1082, prExtend}, // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA - {0x1083, 0x1084, prExtend}, // Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E - {0x1085, 0x1086, prExtend}, // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y - {0x1087, 0x108C, prExtend}, // Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 - {0x108D, 0x108D, prExtend}, // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE - {0x108E, 0x108E, prOLetter}, // Lo MYANMAR LETTER RUMAI PALAUNG FA - {0x108F, 0x108F, prExtend}, // Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 - {0x1090, 0x1099, prNumeric}, // Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE - {0x109A, 0x109C, prExtend}, // Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A - {0x109D, 0x109D, prExtend}, // Mn MYANMAR VOWEL SIGN AITON AI - {0x10A0, 0x10C5, prUpper}, // L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE - {0x10C7, 0x10C7, prUpper}, // L& GEORGIAN CAPITAL LETTER YN - {0x10CD, 0x10CD, prUpper}, // L& GEORGIAN CAPITAL LETTER AEN - {0x10D0, 0x10FA, prOLetter}, // L& [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN - {0x10FC, 0x10FC, prLower}, // Lm MODIFIER LETTER GEORGIAN NAR - {0x10FD, 0x10FF, prOLetter}, // L& [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN - {0x1100, 0x1248, prOLetter}, // Lo [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA - {0x124A, 0x124D, prOLetter}, // Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE - {0x1250, 0x1256, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO - {0x1258, 0x1258, prOLetter}, // Lo ETHIOPIC SYLLABLE QHWA - {0x125A, 0x125D, prOLetter}, // Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE - {0x1260, 0x1288, prOLetter}, // Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA - {0x128A, 0x128D, prOLetter}, // Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE - {0x1290, 0x12B0, prOLetter}, // Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA - {0x12B2, 0x12B5, prOLetter}, // Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE - {0x12B8, 0x12BE, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO - {0x12C0, 0x12C0, prOLetter}, // Lo ETHIOPIC SYLLABLE KXWA - {0x12C2, 0x12C5, prOLetter}, // Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE - {0x12C8, 0x12D6, prOLetter}, // Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O - {0x12D8, 0x1310, prOLetter}, // Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA - {0x1312, 0x1315, prOLetter}, // Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE - {0x1318, 0x135A, prOLetter}, // Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA - {0x135D, 0x135F, prExtend}, // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK - {0x1362, 0x1362, prSTerm}, // Po ETHIOPIC FULL STOP - {0x1367, 0x1368, prSTerm}, // Po [2] ETHIOPIC QUESTION MARK..ETHIOPIC PARAGRAPH SEPARATOR - {0x1380, 0x138F, prOLetter}, // Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE - {0x13A0, 0x13F5, prUpper}, // L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV - {0x13F8, 0x13FD, prLower}, // L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV - {0x1401, 0x166C, prOLetter}, // Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA - {0x166E, 0x166E, prSTerm}, // Po CANADIAN SYLLABICS FULL STOP - {0x166F, 0x167F, prOLetter}, // Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W - {0x1680, 0x1680, prSp}, // Zs OGHAM SPACE MARK - {0x1681, 0x169A, prOLetter}, // Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH - {0x169B, 0x169B, prClose}, // Ps OGHAM FEATHER MARK - {0x169C, 0x169C, prClose}, // Pe OGHAM REVERSED FEATHER MARK - {0x16A0, 0x16EA, prOLetter}, // Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X - {0x16EE, 0x16F0, prOLetter}, // Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL - {0x16F1, 0x16F8, prOLetter}, // Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC - {0x1700, 0x1711, prOLetter}, // Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA - {0x1712, 0x1714, prExtend}, // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA - {0x1715, 0x1715, prExtend}, // Mc TAGALOG SIGN PAMUDPOD - {0x171F, 0x1731, prOLetter}, // Lo [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA - {0x1732, 0x1733, prExtend}, // Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U - {0x1734, 0x1734, prExtend}, // Mc HANUNOO SIGN PAMUDPOD - {0x1735, 0x1736, prSTerm}, // Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION - {0x1740, 0x1751, prOLetter}, // Lo [18] BUHID LETTER A..BUHID LETTER HA - {0x1752, 0x1753, prExtend}, // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U - {0x1760, 0x176C, prOLetter}, // Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA - {0x176E, 0x1770, prOLetter}, // Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA - {0x1772, 0x1773, prExtend}, // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U - {0x1780, 0x17B3, prOLetter}, // Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU - {0x17B4, 0x17B5, prExtend}, // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA - {0x17B6, 0x17B6, prExtend}, // Mc KHMER VOWEL SIGN AA - {0x17B7, 0x17BD, prExtend}, // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA - {0x17BE, 0x17C5, prExtend}, // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU - {0x17C6, 0x17C6, prExtend}, // Mn KHMER SIGN NIKAHIT - {0x17C7, 0x17C8, prExtend}, // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU - {0x17C9, 0x17D3, prExtend}, // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT - {0x17D7, 0x17D7, prOLetter}, // Lm KHMER SIGN LEK TOO - {0x17DC, 0x17DC, prOLetter}, // Lo KHMER SIGN AVAKRAHASANYA - {0x17DD, 0x17DD, prExtend}, // Mn KHMER SIGN ATTHACAN - {0x17E0, 0x17E9, prNumeric}, // Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE - {0x1802, 0x1802, prSContinue}, // Po MONGOLIAN COMMA - {0x1803, 0x1803, prSTerm}, // Po MONGOLIAN FULL STOP - {0x1808, 0x1808, prSContinue}, // Po MONGOLIAN MANCHU COMMA - {0x1809, 0x1809, prSTerm}, // Po MONGOLIAN MANCHU FULL STOP - {0x180B, 0x180D, prExtend}, // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE - {0x180E, 0x180E, prFormat}, // Cf MONGOLIAN VOWEL SEPARATOR - {0x180F, 0x180F, prExtend}, // Mn MONGOLIAN FREE VARIATION SELECTOR FOUR - {0x1810, 0x1819, prNumeric}, // Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE - {0x1820, 0x1842, prOLetter}, // Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI - {0x1843, 0x1843, prOLetter}, // Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN - {0x1844, 0x1878, prOLetter}, // Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS - {0x1880, 0x1884, prOLetter}, // Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA - {0x1885, 0x1886, prExtend}, // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA - {0x1887, 0x18A8, prOLetter}, // Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA - {0x18A9, 0x18A9, prExtend}, // Mn MONGOLIAN LETTER ALI GALI DAGALGA - {0x18AA, 0x18AA, prOLetter}, // Lo MONGOLIAN LETTER MANCHU ALI GALI LHA - {0x18B0, 0x18F5, prOLetter}, // Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S - {0x1900, 0x191E, prOLetter}, // Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA - {0x1920, 0x1922, prExtend}, // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U - {0x1923, 0x1926, prExtend}, // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU - {0x1927, 0x1928, prExtend}, // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O - {0x1929, 0x192B, prExtend}, // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA - {0x1930, 0x1931, prExtend}, // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA - {0x1932, 0x1932, prExtend}, // Mn LIMBU SMALL LETTER ANUSVARA - {0x1933, 0x1938, prExtend}, // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA - {0x1939, 0x193B, prExtend}, // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I - {0x1944, 0x1945, prSTerm}, // Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK - {0x1946, 0x194F, prNumeric}, // Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE - {0x1950, 0x196D, prOLetter}, // Lo [30] TAI LE LETTER KA..TAI LE LETTER AI - {0x1970, 0x1974, prOLetter}, // Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 - {0x1980, 0x19AB, prOLetter}, // Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA - {0x19B0, 0x19C9, prOLetter}, // Lo [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2 - {0x19D0, 0x19D9, prNumeric}, // Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE - {0x1A00, 0x1A16, prOLetter}, // Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA - {0x1A17, 0x1A18, prExtend}, // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U - {0x1A19, 0x1A1A, prExtend}, // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O - {0x1A1B, 0x1A1B, prExtend}, // Mn BUGINESE VOWEL SIGN AE - {0x1A20, 0x1A54, prOLetter}, // Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA - {0x1A55, 0x1A55, prExtend}, // Mc TAI THAM CONSONANT SIGN MEDIAL RA - {0x1A56, 0x1A56, prExtend}, // Mn TAI THAM CONSONANT SIGN MEDIAL LA - {0x1A57, 0x1A57, prExtend}, // Mc TAI THAM CONSONANT SIGN LA TANG LAI - {0x1A58, 0x1A5E, prExtend}, // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA - {0x1A60, 0x1A60, prExtend}, // Mn TAI THAM SIGN SAKOT - {0x1A61, 0x1A61, prExtend}, // Mc TAI THAM VOWEL SIGN A - {0x1A62, 0x1A62, prExtend}, // Mn TAI THAM VOWEL SIGN MAI SAT - {0x1A63, 0x1A64, prExtend}, // Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA - {0x1A65, 0x1A6C, prExtend}, // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW - {0x1A6D, 0x1A72, prExtend}, // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI - {0x1A73, 0x1A7C, prExtend}, // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN - {0x1A7F, 0x1A7F, prExtend}, // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT - {0x1A80, 0x1A89, prNumeric}, // Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE - {0x1A90, 0x1A99, prNumeric}, // Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE - {0x1AA7, 0x1AA7, prOLetter}, // Lm TAI THAM SIGN MAI YAMOK - {0x1AA8, 0x1AAB, prSTerm}, // Po [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU - {0x1AB0, 0x1ABD, prExtend}, // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW - {0x1ABE, 0x1ABE, prExtend}, // Me COMBINING PARENTHESES OVERLAY - {0x1ABF, 0x1ACE, prExtend}, // Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T - {0x1B00, 0x1B03, prExtend}, // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG - {0x1B04, 0x1B04, prExtend}, // Mc BALINESE SIGN BISAH - {0x1B05, 0x1B33, prOLetter}, // Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA - {0x1B34, 0x1B34, prExtend}, // Mn BALINESE SIGN REREKAN - {0x1B35, 0x1B35, prExtend}, // Mc BALINESE VOWEL SIGN TEDUNG - {0x1B36, 0x1B3A, prExtend}, // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA - {0x1B3B, 0x1B3B, prExtend}, // Mc BALINESE VOWEL SIGN RA REPA TEDUNG - {0x1B3C, 0x1B3C, prExtend}, // Mn BALINESE VOWEL SIGN LA LENGA - {0x1B3D, 0x1B41, prExtend}, // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG - {0x1B42, 0x1B42, prExtend}, // Mn BALINESE VOWEL SIGN PEPET - {0x1B43, 0x1B44, prExtend}, // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG - {0x1B45, 0x1B4C, prOLetter}, // Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA - {0x1B50, 0x1B59, prNumeric}, // Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE - {0x1B5A, 0x1B5B, prSTerm}, // Po [2] BALINESE PANTI..BALINESE PAMADA - {0x1B5E, 0x1B5F, prSTerm}, // Po [2] BALINESE CARIK SIKI..BALINESE CARIK PAREREN - {0x1B6B, 0x1B73, prExtend}, // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG - {0x1B7D, 0x1B7E, prSTerm}, // Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG - {0x1B80, 0x1B81, prExtend}, // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR - {0x1B82, 0x1B82, prExtend}, // Mc SUNDANESE SIGN PANGWISAD - {0x1B83, 0x1BA0, prOLetter}, // Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA - {0x1BA1, 0x1BA1, prExtend}, // Mc SUNDANESE CONSONANT SIGN PAMINGKAL - {0x1BA2, 0x1BA5, prExtend}, // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU - {0x1BA6, 0x1BA7, prExtend}, // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG - {0x1BA8, 0x1BA9, prExtend}, // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG - {0x1BAA, 0x1BAA, prExtend}, // Mc SUNDANESE SIGN PAMAAEH - {0x1BAB, 0x1BAD, prExtend}, // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA - {0x1BAE, 0x1BAF, prOLetter}, // Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA - {0x1BB0, 0x1BB9, prNumeric}, // Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE - {0x1BBA, 0x1BE5, prOLetter}, // Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U - {0x1BE6, 0x1BE6, prExtend}, // Mn BATAK SIGN TOMPI - {0x1BE7, 0x1BE7, prExtend}, // Mc BATAK VOWEL SIGN E - {0x1BE8, 0x1BE9, prExtend}, // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE - {0x1BEA, 0x1BEC, prExtend}, // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O - {0x1BED, 0x1BED, prExtend}, // Mn BATAK VOWEL SIGN KARO O - {0x1BEE, 0x1BEE, prExtend}, // Mc BATAK VOWEL SIGN U - {0x1BEF, 0x1BF1, prExtend}, // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H - {0x1BF2, 0x1BF3, prExtend}, // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN - {0x1C00, 0x1C23, prOLetter}, // Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A - {0x1C24, 0x1C2B, prExtend}, // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU - {0x1C2C, 0x1C33, prExtend}, // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T - {0x1C34, 0x1C35, prExtend}, // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG - {0x1C36, 0x1C37, prExtend}, // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA - {0x1C3B, 0x1C3C, prSTerm}, // Po [2] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION NYET THYOOM TA-ROL - {0x1C40, 0x1C49, prNumeric}, // Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE - {0x1C4D, 0x1C4F, prOLetter}, // Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA - {0x1C50, 0x1C59, prNumeric}, // Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE - {0x1C5A, 0x1C77, prOLetter}, // Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH - {0x1C78, 0x1C7D, prOLetter}, // Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD - {0x1C7E, 0x1C7F, prSTerm}, // Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD - {0x1C80, 0x1C88, prLower}, // L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK - {0x1C90, 0x1CBA, prOLetter}, // L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN - {0x1CBD, 0x1CBF, prOLetter}, // L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN - {0x1CD0, 0x1CD2, prExtend}, // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA - {0x1CD4, 0x1CE0, prExtend}, // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA - {0x1CE1, 0x1CE1, prExtend}, // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA - {0x1CE2, 0x1CE8, prExtend}, // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL - {0x1CE9, 0x1CEC, prOLetter}, // Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL - {0x1CED, 0x1CED, prExtend}, // Mn VEDIC SIGN TIRYAK - {0x1CEE, 0x1CF3, prOLetter}, // Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA - {0x1CF4, 0x1CF4, prExtend}, // Mn VEDIC TONE CANDRA ABOVE - {0x1CF5, 0x1CF6, prOLetter}, // Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA - {0x1CF7, 0x1CF7, prExtend}, // Mc VEDIC SIGN ATIKRAMA - {0x1CF8, 0x1CF9, prExtend}, // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE - {0x1CFA, 0x1CFA, prOLetter}, // Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA - {0x1D00, 0x1D2B, prLower}, // L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL - {0x1D2C, 0x1D6A, prLower}, // Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI - {0x1D6B, 0x1D77, prLower}, // L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G - {0x1D78, 0x1D78, prLower}, // Lm MODIFIER LETTER CYRILLIC EN - {0x1D79, 0x1D9A, prLower}, // L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK - {0x1D9B, 0x1DBF, prLower}, // Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA - {0x1DC0, 0x1DFF, prExtend}, // Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW - {0x1E00, 0x1E00, prUpper}, // L& LATIN CAPITAL LETTER A WITH RING BELOW - {0x1E01, 0x1E01, prLower}, // L& LATIN SMALL LETTER A WITH RING BELOW - {0x1E02, 0x1E02, prUpper}, // L& LATIN CAPITAL LETTER B WITH DOT ABOVE - {0x1E03, 0x1E03, prLower}, // L& LATIN SMALL LETTER B WITH DOT ABOVE - {0x1E04, 0x1E04, prUpper}, // L& LATIN CAPITAL LETTER B WITH DOT BELOW - {0x1E05, 0x1E05, prLower}, // L& LATIN SMALL LETTER B WITH DOT BELOW - {0x1E06, 0x1E06, prUpper}, // L& LATIN CAPITAL LETTER B WITH LINE BELOW - {0x1E07, 0x1E07, prLower}, // L& LATIN SMALL LETTER B WITH LINE BELOW - {0x1E08, 0x1E08, prUpper}, // L& LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE - {0x1E09, 0x1E09, prLower}, // L& LATIN SMALL LETTER C WITH CEDILLA AND ACUTE - {0x1E0A, 0x1E0A, prUpper}, // L& LATIN CAPITAL LETTER D WITH DOT ABOVE - {0x1E0B, 0x1E0B, prLower}, // L& LATIN SMALL LETTER D WITH DOT ABOVE - {0x1E0C, 0x1E0C, prUpper}, // L& LATIN CAPITAL LETTER D WITH DOT BELOW - {0x1E0D, 0x1E0D, prLower}, // L& LATIN SMALL LETTER D WITH DOT BELOW - {0x1E0E, 0x1E0E, prUpper}, // L& LATIN CAPITAL LETTER D WITH LINE BELOW - {0x1E0F, 0x1E0F, prLower}, // L& LATIN SMALL LETTER D WITH LINE BELOW - {0x1E10, 0x1E10, prUpper}, // L& LATIN CAPITAL LETTER D WITH CEDILLA - {0x1E11, 0x1E11, prLower}, // L& LATIN SMALL LETTER D WITH CEDILLA - {0x1E12, 0x1E12, prUpper}, // L& LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW - {0x1E13, 0x1E13, prLower}, // L& LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW - {0x1E14, 0x1E14, prUpper}, // L& LATIN CAPITAL LETTER E WITH MACRON AND GRAVE - {0x1E15, 0x1E15, prLower}, // L& LATIN SMALL LETTER E WITH MACRON AND GRAVE - {0x1E16, 0x1E16, prUpper}, // L& LATIN CAPITAL LETTER E WITH MACRON AND ACUTE - {0x1E17, 0x1E17, prLower}, // L& LATIN SMALL LETTER E WITH MACRON AND ACUTE - {0x1E18, 0x1E18, prUpper}, // L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW - {0x1E19, 0x1E19, prLower}, // L& LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW - {0x1E1A, 0x1E1A, prUpper}, // L& LATIN CAPITAL LETTER E WITH TILDE BELOW - {0x1E1B, 0x1E1B, prLower}, // L& LATIN SMALL LETTER E WITH TILDE BELOW - {0x1E1C, 0x1E1C, prUpper}, // L& LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE - {0x1E1D, 0x1E1D, prLower}, // L& LATIN SMALL LETTER E WITH CEDILLA AND BREVE - {0x1E1E, 0x1E1E, prUpper}, // L& LATIN CAPITAL LETTER F WITH DOT ABOVE - {0x1E1F, 0x1E1F, prLower}, // L& LATIN SMALL LETTER F WITH DOT ABOVE - {0x1E20, 0x1E20, prUpper}, // L& LATIN CAPITAL LETTER G WITH MACRON - {0x1E21, 0x1E21, prLower}, // L& LATIN SMALL LETTER G WITH MACRON - {0x1E22, 0x1E22, prUpper}, // L& LATIN CAPITAL LETTER H WITH DOT ABOVE - {0x1E23, 0x1E23, prLower}, // L& LATIN SMALL LETTER H WITH DOT ABOVE - {0x1E24, 0x1E24, prUpper}, // L& LATIN CAPITAL LETTER H WITH DOT BELOW - {0x1E25, 0x1E25, prLower}, // L& LATIN SMALL LETTER H WITH DOT BELOW - {0x1E26, 0x1E26, prUpper}, // L& LATIN CAPITAL LETTER H WITH DIAERESIS - {0x1E27, 0x1E27, prLower}, // L& LATIN SMALL LETTER H WITH DIAERESIS - {0x1E28, 0x1E28, prUpper}, // L& LATIN CAPITAL LETTER H WITH CEDILLA - {0x1E29, 0x1E29, prLower}, // L& LATIN SMALL LETTER H WITH CEDILLA - {0x1E2A, 0x1E2A, prUpper}, // L& LATIN CAPITAL LETTER H WITH BREVE BELOW - {0x1E2B, 0x1E2B, prLower}, // L& LATIN SMALL LETTER H WITH BREVE BELOW - {0x1E2C, 0x1E2C, prUpper}, // L& LATIN CAPITAL LETTER I WITH TILDE BELOW - {0x1E2D, 0x1E2D, prLower}, // L& LATIN SMALL LETTER I WITH TILDE BELOW - {0x1E2E, 0x1E2E, prUpper}, // L& LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE - {0x1E2F, 0x1E2F, prLower}, // L& LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE - {0x1E30, 0x1E30, prUpper}, // L& LATIN CAPITAL LETTER K WITH ACUTE - {0x1E31, 0x1E31, prLower}, // L& LATIN SMALL LETTER K WITH ACUTE - {0x1E32, 0x1E32, prUpper}, // L& LATIN CAPITAL LETTER K WITH DOT BELOW - {0x1E33, 0x1E33, prLower}, // L& LATIN SMALL LETTER K WITH DOT BELOW - {0x1E34, 0x1E34, prUpper}, // L& LATIN CAPITAL LETTER K WITH LINE BELOW - {0x1E35, 0x1E35, prLower}, // L& LATIN SMALL LETTER K WITH LINE BELOW - {0x1E36, 0x1E36, prUpper}, // L& LATIN CAPITAL LETTER L WITH DOT BELOW - {0x1E37, 0x1E37, prLower}, // L& LATIN SMALL LETTER L WITH DOT BELOW - {0x1E38, 0x1E38, prUpper}, // L& LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON - {0x1E39, 0x1E39, prLower}, // L& LATIN SMALL LETTER L WITH DOT BELOW AND MACRON - {0x1E3A, 0x1E3A, prUpper}, // L& LATIN CAPITAL LETTER L WITH LINE BELOW - {0x1E3B, 0x1E3B, prLower}, // L& LATIN SMALL LETTER L WITH LINE BELOW - {0x1E3C, 0x1E3C, prUpper}, // L& LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW - {0x1E3D, 0x1E3D, prLower}, // L& LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW - {0x1E3E, 0x1E3E, prUpper}, // L& LATIN CAPITAL LETTER M WITH ACUTE - {0x1E3F, 0x1E3F, prLower}, // L& LATIN SMALL LETTER M WITH ACUTE - {0x1E40, 0x1E40, prUpper}, // L& LATIN CAPITAL LETTER M WITH DOT ABOVE - {0x1E41, 0x1E41, prLower}, // L& LATIN SMALL LETTER M WITH DOT ABOVE - {0x1E42, 0x1E42, prUpper}, // L& LATIN CAPITAL LETTER M WITH DOT BELOW - {0x1E43, 0x1E43, prLower}, // L& LATIN SMALL LETTER M WITH DOT BELOW - {0x1E44, 0x1E44, prUpper}, // L& LATIN CAPITAL LETTER N WITH DOT ABOVE - {0x1E45, 0x1E45, prLower}, // L& LATIN SMALL LETTER N WITH DOT ABOVE - {0x1E46, 0x1E46, prUpper}, // L& LATIN CAPITAL LETTER N WITH DOT BELOW - {0x1E47, 0x1E47, prLower}, // L& LATIN SMALL LETTER N WITH DOT BELOW - {0x1E48, 0x1E48, prUpper}, // L& LATIN CAPITAL LETTER N WITH LINE BELOW - {0x1E49, 0x1E49, prLower}, // L& LATIN SMALL LETTER N WITH LINE BELOW - {0x1E4A, 0x1E4A, prUpper}, // L& LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW - {0x1E4B, 0x1E4B, prLower}, // L& LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW - {0x1E4C, 0x1E4C, prUpper}, // L& LATIN CAPITAL LETTER O WITH TILDE AND ACUTE - {0x1E4D, 0x1E4D, prLower}, // L& LATIN SMALL LETTER O WITH TILDE AND ACUTE - {0x1E4E, 0x1E4E, prUpper}, // L& LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS - {0x1E4F, 0x1E4F, prLower}, // L& LATIN SMALL LETTER O WITH TILDE AND DIAERESIS - {0x1E50, 0x1E50, prUpper}, // L& LATIN CAPITAL LETTER O WITH MACRON AND GRAVE - {0x1E51, 0x1E51, prLower}, // L& LATIN SMALL LETTER O WITH MACRON AND GRAVE - {0x1E52, 0x1E52, prUpper}, // L& LATIN CAPITAL LETTER O WITH MACRON AND ACUTE - {0x1E53, 0x1E53, prLower}, // L& LATIN SMALL LETTER O WITH MACRON AND ACUTE - {0x1E54, 0x1E54, prUpper}, // L& LATIN CAPITAL LETTER P WITH ACUTE - {0x1E55, 0x1E55, prLower}, // L& LATIN SMALL LETTER P WITH ACUTE - {0x1E56, 0x1E56, prUpper}, // L& LATIN CAPITAL LETTER P WITH DOT ABOVE - {0x1E57, 0x1E57, prLower}, // L& LATIN SMALL LETTER P WITH DOT ABOVE - {0x1E58, 0x1E58, prUpper}, // L& LATIN CAPITAL LETTER R WITH DOT ABOVE - {0x1E59, 0x1E59, prLower}, // L& LATIN SMALL LETTER R WITH DOT ABOVE - {0x1E5A, 0x1E5A, prUpper}, // L& LATIN CAPITAL LETTER R WITH DOT BELOW - {0x1E5B, 0x1E5B, prLower}, // L& LATIN SMALL LETTER R WITH DOT BELOW - {0x1E5C, 0x1E5C, prUpper}, // L& LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON - {0x1E5D, 0x1E5D, prLower}, // L& LATIN SMALL LETTER R WITH DOT BELOW AND MACRON - {0x1E5E, 0x1E5E, prUpper}, // L& LATIN CAPITAL LETTER R WITH LINE BELOW - {0x1E5F, 0x1E5F, prLower}, // L& LATIN SMALL LETTER R WITH LINE BELOW - {0x1E60, 0x1E60, prUpper}, // L& LATIN CAPITAL LETTER S WITH DOT ABOVE - {0x1E61, 0x1E61, prLower}, // L& LATIN SMALL LETTER S WITH DOT ABOVE - {0x1E62, 0x1E62, prUpper}, // L& LATIN CAPITAL LETTER S WITH DOT BELOW - {0x1E63, 0x1E63, prLower}, // L& LATIN SMALL LETTER S WITH DOT BELOW - {0x1E64, 0x1E64, prUpper}, // L& LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE - {0x1E65, 0x1E65, prLower}, // L& LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE - {0x1E66, 0x1E66, prUpper}, // L& LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE - {0x1E67, 0x1E67, prLower}, // L& LATIN SMALL LETTER S WITH CARON AND DOT ABOVE - {0x1E68, 0x1E68, prUpper}, // L& LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE - {0x1E69, 0x1E69, prLower}, // L& LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE - {0x1E6A, 0x1E6A, prUpper}, // L& LATIN CAPITAL LETTER T WITH DOT ABOVE - {0x1E6B, 0x1E6B, prLower}, // L& LATIN SMALL LETTER T WITH DOT ABOVE - {0x1E6C, 0x1E6C, prUpper}, // L& LATIN CAPITAL LETTER T WITH DOT BELOW - {0x1E6D, 0x1E6D, prLower}, // L& LATIN SMALL LETTER T WITH DOT BELOW - {0x1E6E, 0x1E6E, prUpper}, // L& LATIN CAPITAL LETTER T WITH LINE BELOW - {0x1E6F, 0x1E6F, prLower}, // L& LATIN SMALL LETTER T WITH LINE BELOW - {0x1E70, 0x1E70, prUpper}, // L& LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW - {0x1E71, 0x1E71, prLower}, // L& LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW - {0x1E72, 0x1E72, prUpper}, // L& LATIN CAPITAL LETTER U WITH DIAERESIS BELOW - {0x1E73, 0x1E73, prLower}, // L& LATIN SMALL LETTER U WITH DIAERESIS BELOW - {0x1E74, 0x1E74, prUpper}, // L& LATIN CAPITAL LETTER U WITH TILDE BELOW - {0x1E75, 0x1E75, prLower}, // L& LATIN SMALL LETTER U WITH TILDE BELOW - {0x1E76, 0x1E76, prUpper}, // L& LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW - {0x1E77, 0x1E77, prLower}, // L& LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW - {0x1E78, 0x1E78, prUpper}, // L& LATIN CAPITAL LETTER U WITH TILDE AND ACUTE - {0x1E79, 0x1E79, prLower}, // L& LATIN SMALL LETTER U WITH TILDE AND ACUTE - {0x1E7A, 0x1E7A, prUpper}, // L& LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS - {0x1E7B, 0x1E7B, prLower}, // L& LATIN SMALL LETTER U WITH MACRON AND DIAERESIS - {0x1E7C, 0x1E7C, prUpper}, // L& LATIN CAPITAL LETTER V WITH TILDE - {0x1E7D, 0x1E7D, prLower}, // L& LATIN SMALL LETTER V WITH TILDE - {0x1E7E, 0x1E7E, prUpper}, // L& LATIN CAPITAL LETTER V WITH DOT BELOW - {0x1E7F, 0x1E7F, prLower}, // L& LATIN SMALL LETTER V WITH DOT BELOW - {0x1E80, 0x1E80, prUpper}, // L& LATIN CAPITAL LETTER W WITH GRAVE - {0x1E81, 0x1E81, prLower}, // L& LATIN SMALL LETTER W WITH GRAVE - {0x1E82, 0x1E82, prUpper}, // L& LATIN CAPITAL LETTER W WITH ACUTE - {0x1E83, 0x1E83, prLower}, // L& LATIN SMALL LETTER W WITH ACUTE - {0x1E84, 0x1E84, prUpper}, // L& LATIN CAPITAL LETTER W WITH DIAERESIS - {0x1E85, 0x1E85, prLower}, // L& LATIN SMALL LETTER W WITH DIAERESIS - {0x1E86, 0x1E86, prUpper}, // L& LATIN CAPITAL LETTER W WITH DOT ABOVE - {0x1E87, 0x1E87, prLower}, // L& LATIN SMALL LETTER W WITH DOT ABOVE - {0x1E88, 0x1E88, prUpper}, // L& LATIN CAPITAL LETTER W WITH DOT BELOW - {0x1E89, 0x1E89, prLower}, // L& LATIN SMALL LETTER W WITH DOT BELOW - {0x1E8A, 0x1E8A, prUpper}, // L& LATIN CAPITAL LETTER X WITH DOT ABOVE - {0x1E8B, 0x1E8B, prLower}, // L& LATIN SMALL LETTER X WITH DOT ABOVE - {0x1E8C, 0x1E8C, prUpper}, // L& LATIN CAPITAL LETTER X WITH DIAERESIS - {0x1E8D, 0x1E8D, prLower}, // L& LATIN SMALL LETTER X WITH DIAERESIS - {0x1E8E, 0x1E8E, prUpper}, // L& LATIN CAPITAL LETTER Y WITH DOT ABOVE - {0x1E8F, 0x1E8F, prLower}, // L& LATIN SMALL LETTER Y WITH DOT ABOVE - {0x1E90, 0x1E90, prUpper}, // L& LATIN CAPITAL LETTER Z WITH CIRCUMFLEX - {0x1E91, 0x1E91, prLower}, // L& LATIN SMALL LETTER Z WITH CIRCUMFLEX - {0x1E92, 0x1E92, prUpper}, // L& LATIN CAPITAL LETTER Z WITH DOT BELOW - {0x1E93, 0x1E93, prLower}, // L& LATIN SMALL LETTER Z WITH DOT BELOW - {0x1E94, 0x1E94, prUpper}, // L& LATIN CAPITAL LETTER Z WITH LINE BELOW - {0x1E95, 0x1E9D, prLower}, // L& [9] LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER LONG S WITH HIGH STROKE - {0x1E9E, 0x1E9E, prUpper}, // L& LATIN CAPITAL LETTER SHARP S - {0x1E9F, 0x1E9F, prLower}, // L& LATIN SMALL LETTER DELTA - {0x1EA0, 0x1EA0, prUpper}, // L& LATIN CAPITAL LETTER A WITH DOT BELOW - {0x1EA1, 0x1EA1, prLower}, // L& LATIN SMALL LETTER A WITH DOT BELOW - {0x1EA2, 0x1EA2, prUpper}, // L& LATIN CAPITAL LETTER A WITH HOOK ABOVE - {0x1EA3, 0x1EA3, prLower}, // L& LATIN SMALL LETTER A WITH HOOK ABOVE - {0x1EA4, 0x1EA4, prUpper}, // L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE - {0x1EA5, 0x1EA5, prLower}, // L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE - {0x1EA6, 0x1EA6, prUpper}, // L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE - {0x1EA7, 0x1EA7, prLower}, // L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE - {0x1EA8, 0x1EA8, prUpper}, // L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE - {0x1EA9, 0x1EA9, prLower}, // L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE - {0x1EAA, 0x1EAA, prUpper}, // L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE - {0x1EAB, 0x1EAB, prLower}, // L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE - {0x1EAC, 0x1EAC, prUpper}, // L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW - {0x1EAD, 0x1EAD, prLower}, // L& LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW - {0x1EAE, 0x1EAE, prUpper}, // L& LATIN CAPITAL LETTER A WITH BREVE AND ACUTE - {0x1EAF, 0x1EAF, prLower}, // L& LATIN SMALL LETTER A WITH BREVE AND ACUTE - {0x1EB0, 0x1EB0, prUpper}, // L& LATIN CAPITAL LETTER A WITH BREVE AND GRAVE - {0x1EB1, 0x1EB1, prLower}, // L& LATIN SMALL LETTER A WITH BREVE AND GRAVE - {0x1EB2, 0x1EB2, prUpper}, // L& LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE - {0x1EB3, 0x1EB3, prLower}, // L& LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE - {0x1EB4, 0x1EB4, prUpper}, // L& LATIN CAPITAL LETTER A WITH BREVE AND TILDE - {0x1EB5, 0x1EB5, prLower}, // L& LATIN SMALL LETTER A WITH BREVE AND TILDE - {0x1EB6, 0x1EB6, prUpper}, // L& LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW - {0x1EB7, 0x1EB7, prLower}, // L& LATIN SMALL LETTER A WITH BREVE AND DOT BELOW - {0x1EB8, 0x1EB8, prUpper}, // L& LATIN CAPITAL LETTER E WITH DOT BELOW - {0x1EB9, 0x1EB9, prLower}, // L& LATIN SMALL LETTER E WITH DOT BELOW - {0x1EBA, 0x1EBA, prUpper}, // L& LATIN CAPITAL LETTER E WITH HOOK ABOVE - {0x1EBB, 0x1EBB, prLower}, // L& LATIN SMALL LETTER E WITH HOOK ABOVE - {0x1EBC, 0x1EBC, prUpper}, // L& LATIN CAPITAL LETTER E WITH TILDE - {0x1EBD, 0x1EBD, prLower}, // L& LATIN SMALL LETTER E WITH TILDE - {0x1EBE, 0x1EBE, prUpper}, // L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE - {0x1EBF, 0x1EBF, prLower}, // L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE - {0x1EC0, 0x1EC0, prUpper}, // L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE - {0x1EC1, 0x1EC1, prLower}, // L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE - {0x1EC2, 0x1EC2, prUpper}, // L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE - {0x1EC3, 0x1EC3, prLower}, // L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE - {0x1EC4, 0x1EC4, prUpper}, // L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE - {0x1EC5, 0x1EC5, prLower}, // L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE - {0x1EC6, 0x1EC6, prUpper}, // L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW - {0x1EC7, 0x1EC7, prLower}, // L& LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW - {0x1EC8, 0x1EC8, prUpper}, // L& LATIN CAPITAL LETTER I WITH HOOK ABOVE - {0x1EC9, 0x1EC9, prLower}, // L& LATIN SMALL LETTER I WITH HOOK ABOVE - {0x1ECA, 0x1ECA, prUpper}, // L& LATIN CAPITAL LETTER I WITH DOT BELOW - {0x1ECB, 0x1ECB, prLower}, // L& LATIN SMALL LETTER I WITH DOT BELOW - {0x1ECC, 0x1ECC, prUpper}, // L& LATIN CAPITAL LETTER O WITH DOT BELOW - {0x1ECD, 0x1ECD, prLower}, // L& LATIN SMALL LETTER O WITH DOT BELOW - {0x1ECE, 0x1ECE, prUpper}, // L& LATIN CAPITAL LETTER O WITH HOOK ABOVE - {0x1ECF, 0x1ECF, prLower}, // L& LATIN SMALL LETTER O WITH HOOK ABOVE - {0x1ED0, 0x1ED0, prUpper}, // L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE - {0x1ED1, 0x1ED1, prLower}, // L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE - {0x1ED2, 0x1ED2, prUpper}, // L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE - {0x1ED3, 0x1ED3, prLower}, // L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE - {0x1ED4, 0x1ED4, prUpper}, // L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE - {0x1ED5, 0x1ED5, prLower}, // L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE - {0x1ED6, 0x1ED6, prUpper}, // L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE - {0x1ED7, 0x1ED7, prLower}, // L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE - {0x1ED8, 0x1ED8, prUpper}, // L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW - {0x1ED9, 0x1ED9, prLower}, // L& LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW - {0x1EDA, 0x1EDA, prUpper}, // L& LATIN CAPITAL LETTER O WITH HORN AND ACUTE - {0x1EDB, 0x1EDB, prLower}, // L& LATIN SMALL LETTER O WITH HORN AND ACUTE - {0x1EDC, 0x1EDC, prUpper}, // L& LATIN CAPITAL LETTER O WITH HORN AND GRAVE - {0x1EDD, 0x1EDD, prLower}, // L& LATIN SMALL LETTER O WITH HORN AND GRAVE - {0x1EDE, 0x1EDE, prUpper}, // L& LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE - {0x1EDF, 0x1EDF, prLower}, // L& LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE - {0x1EE0, 0x1EE0, prUpper}, // L& LATIN CAPITAL LETTER O WITH HORN AND TILDE - {0x1EE1, 0x1EE1, prLower}, // L& LATIN SMALL LETTER O WITH HORN AND TILDE - {0x1EE2, 0x1EE2, prUpper}, // L& LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW - {0x1EE3, 0x1EE3, prLower}, // L& LATIN SMALL LETTER O WITH HORN AND DOT BELOW - {0x1EE4, 0x1EE4, prUpper}, // L& LATIN CAPITAL LETTER U WITH DOT BELOW - {0x1EE5, 0x1EE5, prLower}, // L& LATIN SMALL LETTER U WITH DOT BELOW - {0x1EE6, 0x1EE6, prUpper}, // L& LATIN CAPITAL LETTER U WITH HOOK ABOVE - {0x1EE7, 0x1EE7, prLower}, // L& LATIN SMALL LETTER U WITH HOOK ABOVE - {0x1EE8, 0x1EE8, prUpper}, // L& LATIN CAPITAL LETTER U WITH HORN AND ACUTE - {0x1EE9, 0x1EE9, prLower}, // L& LATIN SMALL LETTER U WITH HORN AND ACUTE - {0x1EEA, 0x1EEA, prUpper}, // L& LATIN CAPITAL LETTER U WITH HORN AND GRAVE - {0x1EEB, 0x1EEB, prLower}, // L& LATIN SMALL LETTER U WITH HORN AND GRAVE - {0x1EEC, 0x1EEC, prUpper}, // L& LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE - {0x1EED, 0x1EED, prLower}, // L& LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE - {0x1EEE, 0x1EEE, prUpper}, // L& LATIN CAPITAL LETTER U WITH HORN AND TILDE - {0x1EEF, 0x1EEF, prLower}, // L& LATIN SMALL LETTER U WITH HORN AND TILDE - {0x1EF0, 0x1EF0, prUpper}, // L& LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW - {0x1EF1, 0x1EF1, prLower}, // L& LATIN SMALL LETTER U WITH HORN AND DOT BELOW - {0x1EF2, 0x1EF2, prUpper}, // L& LATIN CAPITAL LETTER Y WITH GRAVE - {0x1EF3, 0x1EF3, prLower}, // L& LATIN SMALL LETTER Y WITH GRAVE - {0x1EF4, 0x1EF4, prUpper}, // L& LATIN CAPITAL LETTER Y WITH DOT BELOW - {0x1EF5, 0x1EF5, prLower}, // L& LATIN SMALL LETTER Y WITH DOT BELOW - {0x1EF6, 0x1EF6, prUpper}, // L& LATIN CAPITAL LETTER Y WITH HOOK ABOVE - {0x1EF7, 0x1EF7, prLower}, // L& LATIN SMALL LETTER Y WITH HOOK ABOVE - {0x1EF8, 0x1EF8, prUpper}, // L& LATIN CAPITAL LETTER Y WITH TILDE - {0x1EF9, 0x1EF9, prLower}, // L& LATIN SMALL LETTER Y WITH TILDE - {0x1EFA, 0x1EFA, prUpper}, // L& LATIN CAPITAL LETTER MIDDLE-WELSH LL - {0x1EFB, 0x1EFB, prLower}, // L& LATIN SMALL LETTER MIDDLE-WELSH LL - {0x1EFC, 0x1EFC, prUpper}, // L& LATIN CAPITAL LETTER MIDDLE-WELSH V - {0x1EFD, 0x1EFD, prLower}, // L& LATIN SMALL LETTER MIDDLE-WELSH V - {0x1EFE, 0x1EFE, prUpper}, // L& LATIN CAPITAL LETTER Y WITH LOOP - {0x1EFF, 0x1F07, prLower}, // L& [9] LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI - {0x1F08, 0x1F0F, prUpper}, // L& [8] GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI - {0x1F10, 0x1F15, prLower}, // L& [6] GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA - {0x1F18, 0x1F1D, prUpper}, // L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA - {0x1F20, 0x1F27, prLower}, // L& [8] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI - {0x1F28, 0x1F2F, prUpper}, // L& [8] GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI - {0x1F30, 0x1F37, prLower}, // L& [8] GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI - {0x1F38, 0x1F3F, prUpper}, // L& [8] GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI - {0x1F40, 0x1F45, prLower}, // L& [6] GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA - {0x1F48, 0x1F4D, prUpper}, // L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA - {0x1F50, 0x1F57, prLower}, // L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI - {0x1F59, 0x1F59, prUpper}, // L& GREEK CAPITAL LETTER UPSILON WITH DASIA - {0x1F5B, 0x1F5B, prUpper}, // L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA - {0x1F5D, 0x1F5D, prUpper}, // L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA - {0x1F5F, 0x1F5F, prUpper}, // L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI - {0x1F60, 0x1F67, prLower}, // L& [8] GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI - {0x1F68, 0x1F6F, prUpper}, // L& [8] GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI - {0x1F70, 0x1F7D, prLower}, // L& [14] GREEK SMALL LETTER ALPHA WITH VARIA..GREEK SMALL LETTER OMEGA WITH OXIA - {0x1F80, 0x1F87, prLower}, // L& [8] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI - {0x1F88, 0x1F8F, prUpper}, // L& [8] GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI - {0x1F90, 0x1F97, prLower}, // L& [8] GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI - {0x1F98, 0x1F9F, prUpper}, // L& [8] GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI - {0x1FA0, 0x1FA7, prLower}, // L& [8] GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI - {0x1FA8, 0x1FAF, prUpper}, // L& [8] GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI - {0x1FB0, 0x1FB4, prLower}, // L& [5] GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI - {0x1FB6, 0x1FB7, prLower}, // L& [2] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI - {0x1FB8, 0x1FBC, prUpper}, // L& [5] GREEK CAPITAL LETTER ALPHA WITH VRACHY..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI - {0x1FBE, 0x1FBE, prLower}, // L& GREEK PROSGEGRAMMENI - {0x1FC2, 0x1FC4, prLower}, // L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI - {0x1FC6, 0x1FC7, prLower}, // L& [2] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI - {0x1FC8, 0x1FCC, prUpper}, // L& [5] GREEK CAPITAL LETTER EPSILON WITH VARIA..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI - {0x1FD0, 0x1FD3, prLower}, // L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA - {0x1FD6, 0x1FD7, prLower}, // L& [2] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI - {0x1FD8, 0x1FDB, prUpper}, // L& [4] GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA - {0x1FE0, 0x1FE7, prLower}, // L& [8] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI - {0x1FE8, 0x1FEC, prUpper}, // L& [5] GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA - {0x1FF2, 0x1FF4, prLower}, // L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI - {0x1FF6, 0x1FF7, prLower}, // L& [2] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI - {0x1FF8, 0x1FFC, prUpper}, // L& [5] GREEK CAPITAL LETTER OMICRON WITH VARIA..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI - {0x2000, 0x200A, prSp}, // Zs [11] EN QUAD..HAIR SPACE - {0x200B, 0x200B, prFormat}, // Cf ZERO WIDTH SPACE - {0x200C, 0x200D, prExtend}, // Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER - {0x200E, 0x200F, prFormat}, // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK - {0x2013, 0x2014, prSContinue}, // Pd [2] EN DASH..EM DASH - {0x2018, 0x2018, prClose}, // Pi LEFT SINGLE QUOTATION MARK - {0x2019, 0x2019, prClose}, // Pf RIGHT SINGLE QUOTATION MARK - {0x201A, 0x201A, prClose}, // Ps SINGLE LOW-9 QUOTATION MARK - {0x201B, 0x201C, prClose}, // Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK - {0x201D, 0x201D, prClose}, // Pf RIGHT DOUBLE QUOTATION MARK - {0x201E, 0x201E, prClose}, // Ps DOUBLE LOW-9 QUOTATION MARK - {0x201F, 0x201F, prClose}, // Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK - {0x2024, 0x2024, prATerm}, // Po ONE DOT LEADER - {0x2028, 0x2028, prSep}, // Zl LINE SEPARATOR - {0x2029, 0x2029, prSep}, // Zp PARAGRAPH SEPARATOR - {0x202A, 0x202E, prFormat}, // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE - {0x202F, 0x202F, prSp}, // Zs NARROW NO-BREAK SPACE - {0x2039, 0x2039, prClose}, // Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK - {0x203A, 0x203A, prClose}, // Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - {0x203C, 0x203D, prSTerm}, // Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG - {0x2045, 0x2045, prClose}, // Ps LEFT SQUARE BRACKET WITH QUILL - {0x2046, 0x2046, prClose}, // Pe RIGHT SQUARE BRACKET WITH QUILL - {0x2047, 0x2049, prSTerm}, // Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK - {0x205F, 0x205F, prSp}, // Zs MEDIUM MATHEMATICAL SPACE - {0x2060, 0x2064, prFormat}, // Cf [5] WORD JOINER..INVISIBLE PLUS - {0x2066, 0x206F, prFormat}, // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES - {0x2071, 0x2071, prLower}, // Lm SUPERSCRIPT LATIN SMALL LETTER I - {0x207D, 0x207D, prClose}, // Ps SUPERSCRIPT LEFT PARENTHESIS - {0x207E, 0x207E, prClose}, // Pe SUPERSCRIPT RIGHT PARENTHESIS - {0x207F, 0x207F, prLower}, // Lm SUPERSCRIPT LATIN SMALL LETTER N - {0x208D, 0x208D, prClose}, // Ps SUBSCRIPT LEFT PARENTHESIS - {0x208E, 0x208E, prClose}, // Pe SUBSCRIPT RIGHT PARENTHESIS - {0x2090, 0x209C, prLower}, // Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T - {0x20D0, 0x20DC, prExtend}, // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE - {0x20DD, 0x20E0, prExtend}, // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH - {0x20E1, 0x20E1, prExtend}, // Mn COMBINING LEFT RIGHT ARROW ABOVE - {0x20E2, 0x20E4, prExtend}, // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE - {0x20E5, 0x20F0, prExtend}, // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE - {0x2102, 0x2102, prUpper}, // L& DOUBLE-STRUCK CAPITAL C - {0x2107, 0x2107, prUpper}, // L& EULER CONSTANT - {0x210A, 0x210A, prLower}, // L& SCRIPT SMALL G - {0x210B, 0x210D, prUpper}, // L& [3] SCRIPT CAPITAL H..DOUBLE-STRUCK CAPITAL H - {0x210E, 0x210F, prLower}, // L& [2] PLANCK CONSTANT..PLANCK CONSTANT OVER TWO PI - {0x2110, 0x2112, prUpper}, // L& [3] SCRIPT CAPITAL I..SCRIPT CAPITAL L - {0x2113, 0x2113, prLower}, // L& SCRIPT SMALL L - {0x2115, 0x2115, prUpper}, // L& DOUBLE-STRUCK CAPITAL N - {0x2119, 0x211D, prUpper}, // L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R - {0x2124, 0x2124, prUpper}, // L& DOUBLE-STRUCK CAPITAL Z - {0x2126, 0x2126, prUpper}, // L& OHM SIGN - {0x2128, 0x2128, prUpper}, // L& BLACK-LETTER CAPITAL Z - {0x212A, 0x212D, prUpper}, // L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C - {0x212F, 0x212F, prLower}, // L& SCRIPT SMALL E - {0x2130, 0x2133, prUpper}, // L& [4] SCRIPT CAPITAL E..SCRIPT CAPITAL M - {0x2134, 0x2134, prLower}, // L& SCRIPT SMALL O - {0x2135, 0x2138, prOLetter}, // Lo [4] ALEF SYMBOL..DALET SYMBOL - {0x2139, 0x2139, prLower}, // L& INFORMATION SOURCE - {0x213C, 0x213D, prLower}, // L& [2] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK SMALL GAMMA - {0x213E, 0x213F, prUpper}, // L& [2] DOUBLE-STRUCK CAPITAL GAMMA..DOUBLE-STRUCK CAPITAL PI - {0x2145, 0x2145, prUpper}, // L& DOUBLE-STRUCK ITALIC CAPITAL D - {0x2146, 0x2149, prLower}, // L& [4] DOUBLE-STRUCK ITALIC SMALL D..DOUBLE-STRUCK ITALIC SMALL J - {0x214E, 0x214E, prLower}, // L& TURNED SMALL F - {0x2160, 0x216F, prUpper}, // Nl [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND - {0x2170, 0x217F, prLower}, // Nl [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND - {0x2180, 0x2182, prOLetter}, // Nl [3] ROMAN NUMERAL ONE THOUSAND C D..ROMAN NUMERAL TEN THOUSAND - {0x2183, 0x2183, prUpper}, // L& ROMAN NUMERAL REVERSED ONE HUNDRED - {0x2184, 0x2184, prLower}, // L& LATIN SMALL LETTER REVERSED C - {0x2185, 0x2188, prOLetter}, // Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND - {0x2308, 0x2308, prClose}, // Ps LEFT CEILING - {0x2309, 0x2309, prClose}, // Pe RIGHT CEILING - {0x230A, 0x230A, prClose}, // Ps LEFT FLOOR - {0x230B, 0x230B, prClose}, // Pe RIGHT FLOOR - {0x2329, 0x2329, prClose}, // Ps LEFT-POINTING ANGLE BRACKET - {0x232A, 0x232A, prClose}, // Pe RIGHT-POINTING ANGLE BRACKET - {0x24B6, 0x24CF, prUpper}, // So [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z - {0x24D0, 0x24E9, prLower}, // So [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z - {0x275B, 0x2760, prClose}, // So [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT - {0x2768, 0x2768, prClose}, // Ps MEDIUM LEFT PARENTHESIS ORNAMENT - {0x2769, 0x2769, prClose}, // Pe MEDIUM RIGHT PARENTHESIS ORNAMENT - {0x276A, 0x276A, prClose}, // Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT - {0x276B, 0x276B, prClose}, // Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT - {0x276C, 0x276C, prClose}, // Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT - {0x276D, 0x276D, prClose}, // Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT - {0x276E, 0x276E, prClose}, // Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT - {0x276F, 0x276F, prClose}, // Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT - {0x2770, 0x2770, prClose}, // Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT - {0x2771, 0x2771, prClose}, // Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT - {0x2772, 0x2772, prClose}, // Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT - {0x2773, 0x2773, prClose}, // Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT - {0x2774, 0x2774, prClose}, // Ps MEDIUM LEFT CURLY BRACKET ORNAMENT - {0x2775, 0x2775, prClose}, // Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT - {0x27C5, 0x27C5, prClose}, // Ps LEFT S-SHAPED BAG DELIMITER - {0x27C6, 0x27C6, prClose}, // Pe RIGHT S-SHAPED BAG DELIMITER - {0x27E6, 0x27E6, prClose}, // Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET - {0x27E7, 0x27E7, prClose}, // Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET - {0x27E8, 0x27E8, prClose}, // Ps MATHEMATICAL LEFT ANGLE BRACKET - {0x27E9, 0x27E9, prClose}, // Pe MATHEMATICAL RIGHT ANGLE BRACKET - {0x27EA, 0x27EA, prClose}, // Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET - {0x27EB, 0x27EB, prClose}, // Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET - {0x27EC, 0x27EC, prClose}, // Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET - {0x27ED, 0x27ED, prClose}, // Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET - {0x27EE, 0x27EE, prClose}, // Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS - {0x27EF, 0x27EF, prClose}, // Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS - {0x2983, 0x2983, prClose}, // Ps LEFT WHITE CURLY BRACKET - {0x2984, 0x2984, prClose}, // Pe RIGHT WHITE CURLY BRACKET - {0x2985, 0x2985, prClose}, // Ps LEFT WHITE PARENTHESIS - {0x2986, 0x2986, prClose}, // Pe RIGHT WHITE PARENTHESIS - {0x2987, 0x2987, prClose}, // Ps Z NOTATION LEFT IMAGE BRACKET - {0x2988, 0x2988, prClose}, // Pe Z NOTATION RIGHT IMAGE BRACKET - {0x2989, 0x2989, prClose}, // Ps Z NOTATION LEFT BINDING BRACKET - {0x298A, 0x298A, prClose}, // Pe Z NOTATION RIGHT BINDING BRACKET - {0x298B, 0x298B, prClose}, // Ps LEFT SQUARE BRACKET WITH UNDERBAR - {0x298C, 0x298C, prClose}, // Pe RIGHT SQUARE BRACKET WITH UNDERBAR - {0x298D, 0x298D, prClose}, // Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER - {0x298E, 0x298E, prClose}, // Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER - {0x298F, 0x298F, prClose}, // Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER - {0x2990, 0x2990, prClose}, // Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER - {0x2991, 0x2991, prClose}, // Ps LEFT ANGLE BRACKET WITH DOT - {0x2992, 0x2992, prClose}, // Pe RIGHT ANGLE BRACKET WITH DOT - {0x2993, 0x2993, prClose}, // Ps LEFT ARC LESS-THAN BRACKET - {0x2994, 0x2994, prClose}, // Pe RIGHT ARC GREATER-THAN BRACKET - {0x2995, 0x2995, prClose}, // Ps DOUBLE LEFT ARC GREATER-THAN BRACKET - {0x2996, 0x2996, prClose}, // Pe DOUBLE RIGHT ARC LESS-THAN BRACKET - {0x2997, 0x2997, prClose}, // Ps LEFT BLACK TORTOISE SHELL BRACKET - {0x2998, 0x2998, prClose}, // Pe RIGHT BLACK TORTOISE SHELL BRACKET - {0x29D8, 0x29D8, prClose}, // Ps LEFT WIGGLY FENCE - {0x29D9, 0x29D9, prClose}, // Pe RIGHT WIGGLY FENCE - {0x29DA, 0x29DA, prClose}, // Ps LEFT DOUBLE WIGGLY FENCE - {0x29DB, 0x29DB, prClose}, // Pe RIGHT DOUBLE WIGGLY FENCE - {0x29FC, 0x29FC, prClose}, // Ps LEFT-POINTING CURVED ANGLE BRACKET - {0x29FD, 0x29FD, prClose}, // Pe RIGHT-POINTING CURVED ANGLE BRACKET - {0x2C00, 0x2C2F, prUpper}, // L& [48] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI - {0x2C30, 0x2C5F, prLower}, // L& [48] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI - {0x2C60, 0x2C60, prUpper}, // L& LATIN CAPITAL LETTER L WITH DOUBLE BAR - {0x2C61, 0x2C61, prLower}, // L& LATIN SMALL LETTER L WITH DOUBLE BAR - {0x2C62, 0x2C64, prUpper}, // L& [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL - {0x2C65, 0x2C66, prLower}, // L& [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE - {0x2C67, 0x2C67, prUpper}, // L& LATIN CAPITAL LETTER H WITH DESCENDER - {0x2C68, 0x2C68, prLower}, // L& LATIN SMALL LETTER H WITH DESCENDER - {0x2C69, 0x2C69, prUpper}, // L& LATIN CAPITAL LETTER K WITH DESCENDER - {0x2C6A, 0x2C6A, prLower}, // L& LATIN SMALL LETTER K WITH DESCENDER - {0x2C6B, 0x2C6B, prUpper}, // L& LATIN CAPITAL LETTER Z WITH DESCENDER - {0x2C6C, 0x2C6C, prLower}, // L& LATIN SMALL LETTER Z WITH DESCENDER - {0x2C6D, 0x2C70, prUpper}, // L& [4] LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA - {0x2C71, 0x2C71, prLower}, // L& LATIN SMALL LETTER V WITH RIGHT HOOK - {0x2C72, 0x2C72, prUpper}, // L& LATIN CAPITAL LETTER W WITH HOOK - {0x2C73, 0x2C74, prLower}, // L& [2] LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL - {0x2C75, 0x2C75, prUpper}, // L& LATIN CAPITAL LETTER HALF H - {0x2C76, 0x2C7B, prLower}, // L& [6] LATIN SMALL LETTER HALF H..LATIN LETTER SMALL CAPITAL TURNED E - {0x2C7C, 0x2C7D, prLower}, // Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V - {0x2C7E, 0x2C80, prUpper}, // L& [3] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC CAPITAL LETTER ALFA - {0x2C81, 0x2C81, prLower}, // L& COPTIC SMALL LETTER ALFA - {0x2C82, 0x2C82, prUpper}, // L& COPTIC CAPITAL LETTER VIDA - {0x2C83, 0x2C83, prLower}, // L& COPTIC SMALL LETTER VIDA - {0x2C84, 0x2C84, prUpper}, // L& COPTIC CAPITAL LETTER GAMMA - {0x2C85, 0x2C85, prLower}, // L& COPTIC SMALL LETTER GAMMA - {0x2C86, 0x2C86, prUpper}, // L& COPTIC CAPITAL LETTER DALDA - {0x2C87, 0x2C87, prLower}, // L& COPTIC SMALL LETTER DALDA - {0x2C88, 0x2C88, prUpper}, // L& COPTIC CAPITAL LETTER EIE - {0x2C89, 0x2C89, prLower}, // L& COPTIC SMALL LETTER EIE - {0x2C8A, 0x2C8A, prUpper}, // L& COPTIC CAPITAL LETTER SOU - {0x2C8B, 0x2C8B, prLower}, // L& COPTIC SMALL LETTER SOU - {0x2C8C, 0x2C8C, prUpper}, // L& COPTIC CAPITAL LETTER ZATA - {0x2C8D, 0x2C8D, prLower}, // L& COPTIC SMALL LETTER ZATA - {0x2C8E, 0x2C8E, prUpper}, // L& COPTIC CAPITAL LETTER HATE - {0x2C8F, 0x2C8F, prLower}, // L& COPTIC SMALL LETTER HATE - {0x2C90, 0x2C90, prUpper}, // L& COPTIC CAPITAL LETTER THETHE - {0x2C91, 0x2C91, prLower}, // L& COPTIC SMALL LETTER THETHE - {0x2C92, 0x2C92, prUpper}, // L& COPTIC CAPITAL LETTER IAUDA - {0x2C93, 0x2C93, prLower}, // L& COPTIC SMALL LETTER IAUDA - {0x2C94, 0x2C94, prUpper}, // L& COPTIC CAPITAL LETTER KAPA - {0x2C95, 0x2C95, prLower}, // L& COPTIC SMALL LETTER KAPA - {0x2C96, 0x2C96, prUpper}, // L& COPTIC CAPITAL LETTER LAULA - {0x2C97, 0x2C97, prLower}, // L& COPTIC SMALL LETTER LAULA - {0x2C98, 0x2C98, prUpper}, // L& COPTIC CAPITAL LETTER MI - {0x2C99, 0x2C99, prLower}, // L& COPTIC SMALL LETTER MI - {0x2C9A, 0x2C9A, prUpper}, // L& COPTIC CAPITAL LETTER NI - {0x2C9B, 0x2C9B, prLower}, // L& COPTIC SMALL LETTER NI - {0x2C9C, 0x2C9C, prUpper}, // L& COPTIC CAPITAL LETTER KSI - {0x2C9D, 0x2C9D, prLower}, // L& COPTIC SMALL LETTER KSI - {0x2C9E, 0x2C9E, prUpper}, // L& COPTIC CAPITAL LETTER O - {0x2C9F, 0x2C9F, prLower}, // L& COPTIC SMALL LETTER O - {0x2CA0, 0x2CA0, prUpper}, // L& COPTIC CAPITAL LETTER PI - {0x2CA1, 0x2CA1, prLower}, // L& COPTIC SMALL LETTER PI - {0x2CA2, 0x2CA2, prUpper}, // L& COPTIC CAPITAL LETTER RO - {0x2CA3, 0x2CA3, prLower}, // L& COPTIC SMALL LETTER RO - {0x2CA4, 0x2CA4, prUpper}, // L& COPTIC CAPITAL LETTER SIMA - {0x2CA5, 0x2CA5, prLower}, // L& COPTIC SMALL LETTER SIMA - {0x2CA6, 0x2CA6, prUpper}, // L& COPTIC CAPITAL LETTER TAU - {0x2CA7, 0x2CA7, prLower}, // L& COPTIC SMALL LETTER TAU - {0x2CA8, 0x2CA8, prUpper}, // L& COPTIC CAPITAL LETTER UA - {0x2CA9, 0x2CA9, prLower}, // L& COPTIC SMALL LETTER UA - {0x2CAA, 0x2CAA, prUpper}, // L& COPTIC CAPITAL LETTER FI - {0x2CAB, 0x2CAB, prLower}, // L& COPTIC SMALL LETTER FI - {0x2CAC, 0x2CAC, prUpper}, // L& COPTIC CAPITAL LETTER KHI - {0x2CAD, 0x2CAD, prLower}, // L& COPTIC SMALL LETTER KHI - {0x2CAE, 0x2CAE, prUpper}, // L& COPTIC CAPITAL LETTER PSI - {0x2CAF, 0x2CAF, prLower}, // L& COPTIC SMALL LETTER PSI - {0x2CB0, 0x2CB0, prUpper}, // L& COPTIC CAPITAL LETTER OOU - {0x2CB1, 0x2CB1, prLower}, // L& COPTIC SMALL LETTER OOU - {0x2CB2, 0x2CB2, prUpper}, // L& COPTIC CAPITAL LETTER DIALECT-P ALEF - {0x2CB3, 0x2CB3, prLower}, // L& COPTIC SMALL LETTER DIALECT-P ALEF - {0x2CB4, 0x2CB4, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC AIN - {0x2CB5, 0x2CB5, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC AIN - {0x2CB6, 0x2CB6, prUpper}, // L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE - {0x2CB7, 0x2CB7, prLower}, // L& COPTIC SMALL LETTER CRYPTOGRAMMIC EIE - {0x2CB8, 0x2CB8, prUpper}, // L& COPTIC CAPITAL LETTER DIALECT-P KAPA - {0x2CB9, 0x2CB9, prLower}, // L& COPTIC SMALL LETTER DIALECT-P KAPA - {0x2CBA, 0x2CBA, prUpper}, // L& COPTIC CAPITAL LETTER DIALECT-P NI - {0x2CBB, 0x2CBB, prLower}, // L& COPTIC SMALL LETTER DIALECT-P NI - {0x2CBC, 0x2CBC, prUpper}, // L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI - {0x2CBD, 0x2CBD, prLower}, // L& COPTIC SMALL LETTER CRYPTOGRAMMIC NI - {0x2CBE, 0x2CBE, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC OOU - {0x2CBF, 0x2CBF, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC OOU - {0x2CC0, 0x2CC0, prUpper}, // L& COPTIC CAPITAL LETTER SAMPI - {0x2CC1, 0x2CC1, prLower}, // L& COPTIC SMALL LETTER SAMPI - {0x2CC2, 0x2CC2, prUpper}, // L& COPTIC CAPITAL LETTER CROSSED SHEI - {0x2CC3, 0x2CC3, prLower}, // L& COPTIC SMALL LETTER CROSSED SHEI - {0x2CC4, 0x2CC4, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC SHEI - {0x2CC5, 0x2CC5, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC SHEI - {0x2CC6, 0x2CC6, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC ESH - {0x2CC7, 0x2CC7, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC ESH - {0x2CC8, 0x2CC8, prUpper}, // L& COPTIC CAPITAL LETTER AKHMIMIC KHEI - {0x2CC9, 0x2CC9, prLower}, // L& COPTIC SMALL LETTER AKHMIMIC KHEI - {0x2CCA, 0x2CCA, prUpper}, // L& COPTIC CAPITAL LETTER DIALECT-P HORI - {0x2CCB, 0x2CCB, prLower}, // L& COPTIC SMALL LETTER DIALECT-P HORI - {0x2CCC, 0x2CCC, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC HORI - {0x2CCD, 0x2CCD, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC HORI - {0x2CCE, 0x2CCE, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC HA - {0x2CCF, 0x2CCF, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC HA - {0x2CD0, 0x2CD0, prUpper}, // L& COPTIC CAPITAL LETTER L-SHAPED HA - {0x2CD1, 0x2CD1, prLower}, // L& COPTIC SMALL LETTER L-SHAPED HA - {0x2CD2, 0x2CD2, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC HEI - {0x2CD3, 0x2CD3, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC HEI - {0x2CD4, 0x2CD4, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC HAT - {0x2CD5, 0x2CD5, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC HAT - {0x2CD6, 0x2CD6, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC GANGIA - {0x2CD7, 0x2CD7, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC GANGIA - {0x2CD8, 0x2CD8, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC DJA - {0x2CD9, 0x2CD9, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC DJA - {0x2CDA, 0x2CDA, prUpper}, // L& COPTIC CAPITAL LETTER OLD COPTIC SHIMA - {0x2CDB, 0x2CDB, prLower}, // L& COPTIC SMALL LETTER OLD COPTIC SHIMA - {0x2CDC, 0x2CDC, prUpper}, // L& COPTIC CAPITAL LETTER OLD NUBIAN SHIMA - {0x2CDD, 0x2CDD, prLower}, // L& COPTIC SMALL LETTER OLD NUBIAN SHIMA - {0x2CDE, 0x2CDE, prUpper}, // L& COPTIC CAPITAL LETTER OLD NUBIAN NGI - {0x2CDF, 0x2CDF, prLower}, // L& COPTIC SMALL LETTER OLD NUBIAN NGI - {0x2CE0, 0x2CE0, prUpper}, // L& COPTIC CAPITAL LETTER OLD NUBIAN NYI - {0x2CE1, 0x2CE1, prLower}, // L& COPTIC SMALL LETTER OLD NUBIAN NYI - {0x2CE2, 0x2CE2, prUpper}, // L& COPTIC CAPITAL LETTER OLD NUBIAN WAU - {0x2CE3, 0x2CE4, prLower}, // L& [2] COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI - {0x2CEB, 0x2CEB, prUpper}, // L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI - {0x2CEC, 0x2CEC, prLower}, // L& COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI - {0x2CED, 0x2CED, prUpper}, // L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA - {0x2CEE, 0x2CEE, prLower}, // L& COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA - {0x2CEF, 0x2CF1, prExtend}, // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS - {0x2CF2, 0x2CF2, prUpper}, // L& COPTIC CAPITAL LETTER BOHAIRIC KHEI - {0x2CF3, 0x2CF3, prLower}, // L& COPTIC SMALL LETTER BOHAIRIC KHEI - {0x2D00, 0x2D25, prLower}, // L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE - {0x2D27, 0x2D27, prLower}, // L& GEORGIAN SMALL LETTER YN - {0x2D2D, 0x2D2D, prLower}, // L& GEORGIAN SMALL LETTER AEN - {0x2D30, 0x2D67, prOLetter}, // Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO - {0x2D6F, 0x2D6F, prOLetter}, // Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK - {0x2D7F, 0x2D7F, prExtend}, // Mn TIFINAGH CONSONANT JOINER - {0x2D80, 0x2D96, prOLetter}, // Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE - {0x2DA0, 0x2DA6, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO - {0x2DA8, 0x2DAE, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO - {0x2DB0, 0x2DB6, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO - {0x2DB8, 0x2DBE, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO - {0x2DC0, 0x2DC6, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO - {0x2DC8, 0x2DCE, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO - {0x2DD0, 0x2DD6, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO - {0x2DD8, 0x2DDE, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO - {0x2DE0, 0x2DFF, prExtend}, // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS - {0x2E00, 0x2E01, prClose}, // Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER - {0x2E02, 0x2E02, prClose}, // Pi LEFT SUBSTITUTION BRACKET - {0x2E03, 0x2E03, prClose}, // Pf RIGHT SUBSTITUTION BRACKET - {0x2E04, 0x2E04, prClose}, // Pi LEFT DOTTED SUBSTITUTION BRACKET - {0x2E05, 0x2E05, prClose}, // Pf RIGHT DOTTED SUBSTITUTION BRACKET - {0x2E06, 0x2E08, prClose}, // Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER - {0x2E09, 0x2E09, prClose}, // Pi LEFT TRANSPOSITION BRACKET - {0x2E0A, 0x2E0A, prClose}, // Pf RIGHT TRANSPOSITION BRACKET - {0x2E0B, 0x2E0B, prClose}, // Po RAISED SQUARE - {0x2E0C, 0x2E0C, prClose}, // Pi LEFT RAISED OMISSION BRACKET - {0x2E0D, 0x2E0D, prClose}, // Pf RIGHT RAISED OMISSION BRACKET - {0x2E1C, 0x2E1C, prClose}, // Pi LEFT LOW PARAPHRASE BRACKET - {0x2E1D, 0x2E1D, prClose}, // Pf RIGHT LOW PARAPHRASE BRACKET - {0x2E20, 0x2E20, prClose}, // Pi LEFT VERTICAL BAR WITH QUILL - {0x2E21, 0x2E21, prClose}, // Pf RIGHT VERTICAL BAR WITH QUILL - {0x2E22, 0x2E22, prClose}, // Ps TOP LEFT HALF BRACKET - {0x2E23, 0x2E23, prClose}, // Pe TOP RIGHT HALF BRACKET - {0x2E24, 0x2E24, prClose}, // Ps BOTTOM LEFT HALF BRACKET - {0x2E25, 0x2E25, prClose}, // Pe BOTTOM RIGHT HALF BRACKET - {0x2E26, 0x2E26, prClose}, // Ps LEFT SIDEWAYS U BRACKET - {0x2E27, 0x2E27, prClose}, // Pe RIGHT SIDEWAYS U BRACKET - {0x2E28, 0x2E28, prClose}, // Ps LEFT DOUBLE PARENTHESIS - {0x2E29, 0x2E29, prClose}, // Pe RIGHT DOUBLE PARENTHESIS - {0x2E2E, 0x2E2E, prSTerm}, // Po REVERSED QUESTION MARK - {0x2E2F, 0x2E2F, prOLetter}, // Lm VERTICAL TILDE - {0x2E3C, 0x2E3C, prSTerm}, // Po STENOGRAPHIC FULL STOP - {0x2E42, 0x2E42, prClose}, // Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK - {0x2E53, 0x2E54, prSTerm}, // Po [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK - {0x2E55, 0x2E55, prClose}, // Ps LEFT SQUARE BRACKET WITH STROKE - {0x2E56, 0x2E56, prClose}, // Pe RIGHT SQUARE BRACKET WITH STROKE - {0x2E57, 0x2E57, prClose}, // Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE - {0x2E58, 0x2E58, prClose}, // Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE - {0x2E59, 0x2E59, prClose}, // Ps TOP HALF LEFT PARENTHESIS - {0x2E5A, 0x2E5A, prClose}, // Pe TOP HALF RIGHT PARENTHESIS - {0x2E5B, 0x2E5B, prClose}, // Ps BOTTOM HALF LEFT PARENTHESIS - {0x2E5C, 0x2E5C, prClose}, // Pe BOTTOM HALF RIGHT PARENTHESIS - {0x3000, 0x3000, prSp}, // Zs IDEOGRAPHIC SPACE - {0x3001, 0x3001, prSContinue}, // Po IDEOGRAPHIC COMMA - {0x3002, 0x3002, prSTerm}, // Po IDEOGRAPHIC FULL STOP - {0x3005, 0x3005, prOLetter}, // Lm IDEOGRAPHIC ITERATION MARK - {0x3006, 0x3006, prOLetter}, // Lo IDEOGRAPHIC CLOSING MARK - {0x3007, 0x3007, prOLetter}, // Nl IDEOGRAPHIC NUMBER ZERO - {0x3008, 0x3008, prClose}, // Ps LEFT ANGLE BRACKET - {0x3009, 0x3009, prClose}, // Pe RIGHT ANGLE BRACKET - {0x300A, 0x300A, prClose}, // Ps LEFT DOUBLE ANGLE BRACKET - {0x300B, 0x300B, prClose}, // Pe RIGHT DOUBLE ANGLE BRACKET - {0x300C, 0x300C, prClose}, // Ps LEFT CORNER BRACKET - {0x300D, 0x300D, prClose}, // Pe RIGHT CORNER BRACKET - {0x300E, 0x300E, prClose}, // Ps LEFT WHITE CORNER BRACKET - {0x300F, 0x300F, prClose}, // Pe RIGHT WHITE CORNER BRACKET - {0x3010, 0x3010, prClose}, // Ps LEFT BLACK LENTICULAR BRACKET - {0x3011, 0x3011, prClose}, // Pe RIGHT BLACK LENTICULAR BRACKET - {0x3014, 0x3014, prClose}, // Ps LEFT TORTOISE SHELL BRACKET - {0x3015, 0x3015, prClose}, // Pe RIGHT TORTOISE SHELL BRACKET - {0x3016, 0x3016, prClose}, // Ps LEFT WHITE LENTICULAR BRACKET - {0x3017, 0x3017, prClose}, // Pe RIGHT WHITE LENTICULAR BRACKET - {0x3018, 0x3018, prClose}, // Ps LEFT WHITE TORTOISE SHELL BRACKET - {0x3019, 0x3019, prClose}, // Pe RIGHT WHITE TORTOISE SHELL BRACKET - {0x301A, 0x301A, prClose}, // Ps LEFT WHITE SQUARE BRACKET - {0x301B, 0x301B, prClose}, // Pe RIGHT WHITE SQUARE BRACKET - {0x301D, 0x301D, prClose}, // Ps REVERSED DOUBLE PRIME QUOTATION MARK - {0x301E, 0x301F, prClose}, // Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK - {0x3021, 0x3029, prOLetter}, // Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE - {0x302A, 0x302D, prExtend}, // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK - {0x302E, 0x302F, prExtend}, // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK - {0x3031, 0x3035, prOLetter}, // Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF - {0x3038, 0x303A, prOLetter}, // Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY - {0x303B, 0x303B, prOLetter}, // Lm VERTICAL IDEOGRAPHIC ITERATION MARK - {0x303C, 0x303C, prOLetter}, // Lo MASU MARK - {0x3041, 0x3096, prOLetter}, // Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE - {0x3099, 0x309A, prExtend}, // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - {0x309D, 0x309E, prOLetter}, // Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK - {0x309F, 0x309F, prOLetter}, // Lo HIRAGANA DIGRAPH YORI - {0x30A1, 0x30FA, prOLetter}, // Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO - {0x30FC, 0x30FE, prOLetter}, // Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK - {0x30FF, 0x30FF, prOLetter}, // Lo KATAKANA DIGRAPH KOTO - {0x3105, 0x312F, prOLetter}, // Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN - {0x3131, 0x318E, prOLetter}, // Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE - {0x31A0, 0x31BF, prOLetter}, // Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH - {0x31F0, 0x31FF, prOLetter}, // Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO - {0x3400, 0x4DBF, prOLetter}, // Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF - {0x4E00, 0xA014, prOLetter}, // Lo [21013] CJK UNIFIED IDEOGRAPH-4E00..YI SYLLABLE E - {0xA015, 0xA015, prOLetter}, // Lm YI SYLLABLE WU - {0xA016, 0xA48C, prOLetter}, // Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR - {0xA4D0, 0xA4F7, prOLetter}, // Lo [40] LISU LETTER BA..LISU LETTER OE - {0xA4F8, 0xA4FD, prOLetter}, // Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU - {0xA4FF, 0xA4FF, prSTerm}, // Po LISU PUNCTUATION FULL STOP - {0xA500, 0xA60B, prOLetter}, // Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG - {0xA60C, 0xA60C, prOLetter}, // Lm VAI SYLLABLE LENGTHENER - {0xA60E, 0xA60F, prSTerm}, // Po [2] VAI FULL STOP..VAI QUESTION MARK - {0xA610, 0xA61F, prOLetter}, // Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG - {0xA620, 0xA629, prNumeric}, // Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE - {0xA62A, 0xA62B, prOLetter}, // Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO - {0xA640, 0xA640, prUpper}, // L& CYRILLIC CAPITAL LETTER ZEMLYA - {0xA641, 0xA641, prLower}, // L& CYRILLIC SMALL LETTER ZEMLYA - {0xA642, 0xA642, prUpper}, // L& CYRILLIC CAPITAL LETTER DZELO - {0xA643, 0xA643, prLower}, // L& CYRILLIC SMALL LETTER DZELO - {0xA644, 0xA644, prUpper}, // L& CYRILLIC CAPITAL LETTER REVERSED DZE - {0xA645, 0xA645, prLower}, // L& CYRILLIC SMALL LETTER REVERSED DZE - {0xA646, 0xA646, prUpper}, // L& CYRILLIC CAPITAL LETTER IOTA - {0xA647, 0xA647, prLower}, // L& CYRILLIC SMALL LETTER IOTA - {0xA648, 0xA648, prUpper}, // L& CYRILLIC CAPITAL LETTER DJERV - {0xA649, 0xA649, prLower}, // L& CYRILLIC SMALL LETTER DJERV - {0xA64A, 0xA64A, prUpper}, // L& CYRILLIC CAPITAL LETTER MONOGRAPH UK - {0xA64B, 0xA64B, prLower}, // L& CYRILLIC SMALL LETTER MONOGRAPH UK - {0xA64C, 0xA64C, prUpper}, // L& CYRILLIC CAPITAL LETTER BROAD OMEGA - {0xA64D, 0xA64D, prLower}, // L& CYRILLIC SMALL LETTER BROAD OMEGA - {0xA64E, 0xA64E, prUpper}, // L& CYRILLIC CAPITAL LETTER NEUTRAL YER - {0xA64F, 0xA64F, prLower}, // L& CYRILLIC SMALL LETTER NEUTRAL YER - {0xA650, 0xA650, prUpper}, // L& CYRILLIC CAPITAL LETTER YERU WITH BACK YER - {0xA651, 0xA651, prLower}, // L& CYRILLIC SMALL LETTER YERU WITH BACK YER - {0xA652, 0xA652, prUpper}, // L& CYRILLIC CAPITAL LETTER IOTIFIED YAT - {0xA653, 0xA653, prLower}, // L& CYRILLIC SMALL LETTER IOTIFIED YAT - {0xA654, 0xA654, prUpper}, // L& CYRILLIC CAPITAL LETTER REVERSED YU - {0xA655, 0xA655, prLower}, // L& CYRILLIC SMALL LETTER REVERSED YU - {0xA656, 0xA656, prUpper}, // L& CYRILLIC CAPITAL LETTER IOTIFIED A - {0xA657, 0xA657, prLower}, // L& CYRILLIC SMALL LETTER IOTIFIED A - {0xA658, 0xA658, prUpper}, // L& CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS - {0xA659, 0xA659, prLower}, // L& CYRILLIC SMALL LETTER CLOSED LITTLE YUS - {0xA65A, 0xA65A, prUpper}, // L& CYRILLIC CAPITAL LETTER BLENDED YUS - {0xA65B, 0xA65B, prLower}, // L& CYRILLIC SMALL LETTER BLENDED YUS - {0xA65C, 0xA65C, prUpper}, // L& CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS - {0xA65D, 0xA65D, prLower}, // L& CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS - {0xA65E, 0xA65E, prUpper}, // L& CYRILLIC CAPITAL LETTER YN - {0xA65F, 0xA65F, prLower}, // L& CYRILLIC SMALL LETTER YN - {0xA660, 0xA660, prUpper}, // L& CYRILLIC CAPITAL LETTER REVERSED TSE - {0xA661, 0xA661, prLower}, // L& CYRILLIC SMALL LETTER REVERSED TSE - {0xA662, 0xA662, prUpper}, // L& CYRILLIC CAPITAL LETTER SOFT DE - {0xA663, 0xA663, prLower}, // L& CYRILLIC SMALL LETTER SOFT DE - {0xA664, 0xA664, prUpper}, // L& CYRILLIC CAPITAL LETTER SOFT EL - {0xA665, 0xA665, prLower}, // L& CYRILLIC SMALL LETTER SOFT EL - {0xA666, 0xA666, prUpper}, // L& CYRILLIC CAPITAL LETTER SOFT EM - {0xA667, 0xA667, prLower}, // L& CYRILLIC SMALL LETTER SOFT EM - {0xA668, 0xA668, prUpper}, // L& CYRILLIC CAPITAL LETTER MONOCULAR O - {0xA669, 0xA669, prLower}, // L& CYRILLIC SMALL LETTER MONOCULAR O - {0xA66A, 0xA66A, prUpper}, // L& CYRILLIC CAPITAL LETTER BINOCULAR O - {0xA66B, 0xA66B, prLower}, // L& CYRILLIC SMALL LETTER BINOCULAR O - {0xA66C, 0xA66C, prUpper}, // L& CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O - {0xA66D, 0xA66D, prLower}, // L& CYRILLIC SMALL LETTER DOUBLE MONOCULAR O - {0xA66E, 0xA66E, prOLetter}, // Lo CYRILLIC LETTER MULTIOCULAR O - {0xA66F, 0xA66F, prExtend}, // Mn COMBINING CYRILLIC VZMET - {0xA670, 0xA672, prExtend}, // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN - {0xA674, 0xA67D, prExtend}, // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK - {0xA67F, 0xA67F, prOLetter}, // Lm CYRILLIC PAYEROK - {0xA680, 0xA680, prUpper}, // L& CYRILLIC CAPITAL LETTER DWE - {0xA681, 0xA681, prLower}, // L& CYRILLIC SMALL LETTER DWE - {0xA682, 0xA682, prUpper}, // L& CYRILLIC CAPITAL LETTER DZWE - {0xA683, 0xA683, prLower}, // L& CYRILLIC SMALL LETTER DZWE - {0xA684, 0xA684, prUpper}, // L& CYRILLIC CAPITAL LETTER ZHWE - {0xA685, 0xA685, prLower}, // L& CYRILLIC SMALL LETTER ZHWE - {0xA686, 0xA686, prUpper}, // L& CYRILLIC CAPITAL LETTER CCHE - {0xA687, 0xA687, prLower}, // L& CYRILLIC SMALL LETTER CCHE - {0xA688, 0xA688, prUpper}, // L& CYRILLIC CAPITAL LETTER DZZE - {0xA689, 0xA689, prLower}, // L& CYRILLIC SMALL LETTER DZZE - {0xA68A, 0xA68A, prUpper}, // L& CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK - {0xA68B, 0xA68B, prLower}, // L& CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK - {0xA68C, 0xA68C, prUpper}, // L& CYRILLIC CAPITAL LETTER TWE - {0xA68D, 0xA68D, prLower}, // L& CYRILLIC SMALL LETTER TWE - {0xA68E, 0xA68E, prUpper}, // L& CYRILLIC CAPITAL LETTER TSWE - {0xA68F, 0xA68F, prLower}, // L& CYRILLIC SMALL LETTER TSWE - {0xA690, 0xA690, prUpper}, // L& CYRILLIC CAPITAL LETTER TSSE - {0xA691, 0xA691, prLower}, // L& CYRILLIC SMALL LETTER TSSE - {0xA692, 0xA692, prUpper}, // L& CYRILLIC CAPITAL LETTER TCHE - {0xA693, 0xA693, prLower}, // L& CYRILLIC SMALL LETTER TCHE - {0xA694, 0xA694, prUpper}, // L& CYRILLIC CAPITAL LETTER HWE - {0xA695, 0xA695, prLower}, // L& CYRILLIC SMALL LETTER HWE - {0xA696, 0xA696, prUpper}, // L& CYRILLIC CAPITAL LETTER SHWE - {0xA697, 0xA697, prLower}, // L& CYRILLIC SMALL LETTER SHWE - {0xA698, 0xA698, prUpper}, // L& CYRILLIC CAPITAL LETTER DOUBLE O - {0xA699, 0xA699, prLower}, // L& CYRILLIC SMALL LETTER DOUBLE O - {0xA69A, 0xA69A, prUpper}, // L& CYRILLIC CAPITAL LETTER CROSSED O - {0xA69B, 0xA69B, prLower}, // L& CYRILLIC SMALL LETTER CROSSED O - {0xA69C, 0xA69D, prLower}, // Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN - {0xA69E, 0xA69F, prExtend}, // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E - {0xA6A0, 0xA6E5, prOLetter}, // Lo [70] BAMUM LETTER A..BAMUM LETTER KI - {0xA6E6, 0xA6EF, prOLetter}, // Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM - {0xA6F0, 0xA6F1, prExtend}, // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS - {0xA6F3, 0xA6F3, prSTerm}, // Po BAMUM FULL STOP - {0xA6F7, 0xA6F7, prSTerm}, // Po BAMUM QUESTION MARK - {0xA717, 0xA71F, prOLetter}, // Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK - {0xA722, 0xA722, prUpper}, // L& LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF - {0xA723, 0xA723, prLower}, // L& LATIN SMALL LETTER EGYPTOLOGICAL ALEF - {0xA724, 0xA724, prUpper}, // L& LATIN CAPITAL LETTER EGYPTOLOGICAL AIN - {0xA725, 0xA725, prLower}, // L& LATIN SMALL LETTER EGYPTOLOGICAL AIN - {0xA726, 0xA726, prUpper}, // L& LATIN CAPITAL LETTER HENG - {0xA727, 0xA727, prLower}, // L& LATIN SMALL LETTER HENG - {0xA728, 0xA728, prUpper}, // L& LATIN CAPITAL LETTER TZ - {0xA729, 0xA729, prLower}, // L& LATIN SMALL LETTER TZ - {0xA72A, 0xA72A, prUpper}, // L& LATIN CAPITAL LETTER TRESILLO - {0xA72B, 0xA72B, prLower}, // L& LATIN SMALL LETTER TRESILLO - {0xA72C, 0xA72C, prUpper}, // L& LATIN CAPITAL LETTER CUATRILLO - {0xA72D, 0xA72D, prLower}, // L& LATIN SMALL LETTER CUATRILLO - {0xA72E, 0xA72E, prUpper}, // L& LATIN CAPITAL LETTER CUATRILLO WITH COMMA - {0xA72F, 0xA731, prLower}, // L& [3] LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S - {0xA732, 0xA732, prUpper}, // L& LATIN CAPITAL LETTER AA - {0xA733, 0xA733, prLower}, // L& LATIN SMALL LETTER AA - {0xA734, 0xA734, prUpper}, // L& LATIN CAPITAL LETTER AO - {0xA735, 0xA735, prLower}, // L& LATIN SMALL LETTER AO - {0xA736, 0xA736, prUpper}, // L& LATIN CAPITAL LETTER AU - {0xA737, 0xA737, prLower}, // L& LATIN SMALL LETTER AU - {0xA738, 0xA738, prUpper}, // L& LATIN CAPITAL LETTER AV - {0xA739, 0xA739, prLower}, // L& LATIN SMALL LETTER AV - {0xA73A, 0xA73A, prUpper}, // L& LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR - {0xA73B, 0xA73B, prLower}, // L& LATIN SMALL LETTER AV WITH HORIZONTAL BAR - {0xA73C, 0xA73C, prUpper}, // L& LATIN CAPITAL LETTER AY - {0xA73D, 0xA73D, prLower}, // L& LATIN SMALL LETTER AY - {0xA73E, 0xA73E, prUpper}, // L& LATIN CAPITAL LETTER REVERSED C WITH DOT - {0xA73F, 0xA73F, prLower}, // L& LATIN SMALL LETTER REVERSED C WITH DOT - {0xA740, 0xA740, prUpper}, // L& LATIN CAPITAL LETTER K WITH STROKE - {0xA741, 0xA741, prLower}, // L& LATIN SMALL LETTER K WITH STROKE - {0xA742, 0xA742, prUpper}, // L& LATIN CAPITAL LETTER K WITH DIAGONAL STROKE - {0xA743, 0xA743, prLower}, // L& LATIN SMALL LETTER K WITH DIAGONAL STROKE - {0xA744, 0xA744, prUpper}, // L& LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE - {0xA745, 0xA745, prLower}, // L& LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE - {0xA746, 0xA746, prUpper}, // L& LATIN CAPITAL LETTER BROKEN L - {0xA747, 0xA747, prLower}, // L& LATIN SMALL LETTER BROKEN L - {0xA748, 0xA748, prUpper}, // L& LATIN CAPITAL LETTER L WITH HIGH STROKE - {0xA749, 0xA749, prLower}, // L& LATIN SMALL LETTER L WITH HIGH STROKE - {0xA74A, 0xA74A, prUpper}, // L& LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY - {0xA74B, 0xA74B, prLower}, // L& LATIN SMALL LETTER O WITH LONG STROKE OVERLAY - {0xA74C, 0xA74C, prUpper}, // L& LATIN CAPITAL LETTER O WITH LOOP - {0xA74D, 0xA74D, prLower}, // L& LATIN SMALL LETTER O WITH LOOP - {0xA74E, 0xA74E, prUpper}, // L& LATIN CAPITAL LETTER OO - {0xA74F, 0xA74F, prLower}, // L& LATIN SMALL LETTER OO - {0xA750, 0xA750, prUpper}, // L& LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER - {0xA751, 0xA751, prLower}, // L& LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER - {0xA752, 0xA752, prUpper}, // L& LATIN CAPITAL LETTER P WITH FLOURISH - {0xA753, 0xA753, prLower}, // L& LATIN SMALL LETTER P WITH FLOURISH - {0xA754, 0xA754, prUpper}, // L& LATIN CAPITAL LETTER P WITH SQUIRREL TAIL - {0xA755, 0xA755, prLower}, // L& LATIN SMALL LETTER P WITH SQUIRREL TAIL - {0xA756, 0xA756, prUpper}, // L& LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER - {0xA757, 0xA757, prLower}, // L& LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER - {0xA758, 0xA758, prUpper}, // L& LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE - {0xA759, 0xA759, prLower}, // L& LATIN SMALL LETTER Q WITH DIAGONAL STROKE - {0xA75A, 0xA75A, prUpper}, // L& LATIN CAPITAL LETTER R ROTUNDA - {0xA75B, 0xA75B, prLower}, // L& LATIN SMALL LETTER R ROTUNDA - {0xA75C, 0xA75C, prUpper}, // L& LATIN CAPITAL LETTER RUM ROTUNDA - {0xA75D, 0xA75D, prLower}, // L& LATIN SMALL LETTER RUM ROTUNDA - {0xA75E, 0xA75E, prUpper}, // L& LATIN CAPITAL LETTER V WITH DIAGONAL STROKE - {0xA75F, 0xA75F, prLower}, // L& LATIN SMALL LETTER V WITH DIAGONAL STROKE - {0xA760, 0xA760, prUpper}, // L& LATIN CAPITAL LETTER VY - {0xA761, 0xA761, prLower}, // L& LATIN SMALL LETTER VY - {0xA762, 0xA762, prUpper}, // L& LATIN CAPITAL LETTER VISIGOTHIC Z - {0xA763, 0xA763, prLower}, // L& LATIN SMALL LETTER VISIGOTHIC Z - {0xA764, 0xA764, prUpper}, // L& LATIN CAPITAL LETTER THORN WITH STROKE - {0xA765, 0xA765, prLower}, // L& LATIN SMALL LETTER THORN WITH STROKE - {0xA766, 0xA766, prUpper}, // L& LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER - {0xA767, 0xA767, prLower}, // L& LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER - {0xA768, 0xA768, prUpper}, // L& LATIN CAPITAL LETTER VEND - {0xA769, 0xA769, prLower}, // L& LATIN SMALL LETTER VEND - {0xA76A, 0xA76A, prUpper}, // L& LATIN CAPITAL LETTER ET - {0xA76B, 0xA76B, prLower}, // L& LATIN SMALL LETTER ET - {0xA76C, 0xA76C, prUpper}, // L& LATIN CAPITAL LETTER IS - {0xA76D, 0xA76D, prLower}, // L& LATIN SMALL LETTER IS - {0xA76E, 0xA76E, prUpper}, // L& LATIN CAPITAL LETTER CON - {0xA76F, 0xA76F, prLower}, // L& LATIN SMALL LETTER CON - {0xA770, 0xA770, prLower}, // Lm MODIFIER LETTER US - {0xA771, 0xA778, prLower}, // L& [8] LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM - {0xA779, 0xA779, prUpper}, // L& LATIN CAPITAL LETTER INSULAR D - {0xA77A, 0xA77A, prLower}, // L& LATIN SMALL LETTER INSULAR D - {0xA77B, 0xA77B, prUpper}, // L& LATIN CAPITAL LETTER INSULAR F - {0xA77C, 0xA77C, prLower}, // L& LATIN SMALL LETTER INSULAR F - {0xA77D, 0xA77E, prUpper}, // L& [2] LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G - {0xA77F, 0xA77F, prLower}, // L& LATIN SMALL LETTER TURNED INSULAR G - {0xA780, 0xA780, prUpper}, // L& LATIN CAPITAL LETTER TURNED L - {0xA781, 0xA781, prLower}, // L& LATIN SMALL LETTER TURNED L - {0xA782, 0xA782, prUpper}, // L& LATIN CAPITAL LETTER INSULAR R - {0xA783, 0xA783, prLower}, // L& LATIN SMALL LETTER INSULAR R - {0xA784, 0xA784, prUpper}, // L& LATIN CAPITAL LETTER INSULAR S - {0xA785, 0xA785, prLower}, // L& LATIN SMALL LETTER INSULAR S - {0xA786, 0xA786, prUpper}, // L& LATIN CAPITAL LETTER INSULAR T - {0xA787, 0xA787, prLower}, // L& LATIN SMALL LETTER INSULAR T - {0xA788, 0xA788, prOLetter}, // Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT - {0xA78B, 0xA78B, prUpper}, // L& LATIN CAPITAL LETTER SALTILLO - {0xA78C, 0xA78C, prLower}, // L& LATIN SMALL LETTER SALTILLO - {0xA78D, 0xA78D, prUpper}, // L& LATIN CAPITAL LETTER TURNED H - {0xA78E, 0xA78E, prLower}, // L& LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT - {0xA78F, 0xA78F, prOLetter}, // Lo LATIN LETTER SINOLOGICAL DOT - {0xA790, 0xA790, prUpper}, // L& LATIN CAPITAL LETTER N WITH DESCENDER - {0xA791, 0xA791, prLower}, // L& LATIN SMALL LETTER N WITH DESCENDER - {0xA792, 0xA792, prUpper}, // L& LATIN CAPITAL LETTER C WITH BAR - {0xA793, 0xA795, prLower}, // L& [3] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK - {0xA796, 0xA796, prUpper}, // L& LATIN CAPITAL LETTER B WITH FLOURISH - {0xA797, 0xA797, prLower}, // L& LATIN SMALL LETTER B WITH FLOURISH - {0xA798, 0xA798, prUpper}, // L& LATIN CAPITAL LETTER F WITH STROKE - {0xA799, 0xA799, prLower}, // L& LATIN SMALL LETTER F WITH STROKE - {0xA79A, 0xA79A, prUpper}, // L& LATIN CAPITAL LETTER VOLAPUK AE - {0xA79B, 0xA79B, prLower}, // L& LATIN SMALL LETTER VOLAPUK AE - {0xA79C, 0xA79C, prUpper}, // L& LATIN CAPITAL LETTER VOLAPUK OE - {0xA79D, 0xA79D, prLower}, // L& LATIN SMALL LETTER VOLAPUK OE - {0xA79E, 0xA79E, prUpper}, // L& LATIN CAPITAL LETTER VOLAPUK UE - {0xA79F, 0xA79F, prLower}, // L& LATIN SMALL LETTER VOLAPUK UE - {0xA7A0, 0xA7A0, prUpper}, // L& LATIN CAPITAL LETTER G WITH OBLIQUE STROKE - {0xA7A1, 0xA7A1, prLower}, // L& LATIN SMALL LETTER G WITH OBLIQUE STROKE - {0xA7A2, 0xA7A2, prUpper}, // L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE - {0xA7A3, 0xA7A3, prLower}, // L& LATIN SMALL LETTER K WITH OBLIQUE STROKE - {0xA7A4, 0xA7A4, prUpper}, // L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE - {0xA7A5, 0xA7A5, prLower}, // L& LATIN SMALL LETTER N WITH OBLIQUE STROKE - {0xA7A6, 0xA7A6, prUpper}, // L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE - {0xA7A7, 0xA7A7, prLower}, // L& LATIN SMALL LETTER R WITH OBLIQUE STROKE - {0xA7A8, 0xA7A8, prUpper}, // L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE - {0xA7A9, 0xA7A9, prLower}, // L& LATIN SMALL LETTER S WITH OBLIQUE STROKE - {0xA7AA, 0xA7AE, prUpper}, // L& [5] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER SMALL CAPITAL I - {0xA7AF, 0xA7AF, prLower}, // L& LATIN LETTER SMALL CAPITAL Q - {0xA7B0, 0xA7B4, prUpper}, // L& [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA - {0xA7B5, 0xA7B5, prLower}, // L& LATIN SMALL LETTER BETA - {0xA7B6, 0xA7B6, prUpper}, // L& LATIN CAPITAL LETTER OMEGA - {0xA7B7, 0xA7B7, prLower}, // L& LATIN SMALL LETTER OMEGA - {0xA7B8, 0xA7B8, prUpper}, // L& LATIN CAPITAL LETTER U WITH STROKE - {0xA7B9, 0xA7B9, prLower}, // L& LATIN SMALL LETTER U WITH STROKE - {0xA7BA, 0xA7BA, prUpper}, // L& LATIN CAPITAL LETTER GLOTTAL A - {0xA7BB, 0xA7BB, prLower}, // L& LATIN SMALL LETTER GLOTTAL A - {0xA7BC, 0xA7BC, prUpper}, // L& LATIN CAPITAL LETTER GLOTTAL I - {0xA7BD, 0xA7BD, prLower}, // L& LATIN SMALL LETTER GLOTTAL I - {0xA7BE, 0xA7BE, prUpper}, // L& LATIN CAPITAL LETTER GLOTTAL U - {0xA7BF, 0xA7BF, prLower}, // L& LATIN SMALL LETTER GLOTTAL U - {0xA7C0, 0xA7C0, prUpper}, // L& LATIN CAPITAL LETTER OLD POLISH O - {0xA7C1, 0xA7C1, prLower}, // L& LATIN SMALL LETTER OLD POLISH O - {0xA7C2, 0xA7C2, prUpper}, // L& LATIN CAPITAL LETTER ANGLICANA W - {0xA7C3, 0xA7C3, prLower}, // L& LATIN SMALL LETTER ANGLICANA W - {0xA7C4, 0xA7C7, prUpper}, // L& [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY - {0xA7C8, 0xA7C8, prLower}, // L& LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY - {0xA7C9, 0xA7C9, prUpper}, // L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY - {0xA7CA, 0xA7CA, prLower}, // L& LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY - {0xA7D0, 0xA7D0, prUpper}, // L& LATIN CAPITAL LETTER CLOSED INSULAR G - {0xA7D1, 0xA7D1, prLower}, // L& LATIN SMALL LETTER CLOSED INSULAR G - {0xA7D3, 0xA7D3, prLower}, // L& LATIN SMALL LETTER DOUBLE THORN - {0xA7D5, 0xA7D5, prLower}, // L& LATIN SMALL LETTER DOUBLE WYNN - {0xA7D6, 0xA7D6, prUpper}, // L& LATIN CAPITAL LETTER MIDDLE SCOTS S - {0xA7D7, 0xA7D7, prLower}, // L& LATIN SMALL LETTER MIDDLE SCOTS S - {0xA7D8, 0xA7D8, prUpper}, // L& LATIN CAPITAL LETTER SIGMOID S - {0xA7D9, 0xA7D9, prLower}, // L& LATIN SMALL LETTER SIGMOID S - {0xA7F2, 0xA7F4, prLower}, // Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q - {0xA7F5, 0xA7F5, prUpper}, // L& LATIN CAPITAL LETTER REVERSED HALF H - {0xA7F6, 0xA7F6, prLower}, // L& LATIN SMALL LETTER REVERSED HALF H - {0xA7F7, 0xA7F7, prOLetter}, // Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I - {0xA7F8, 0xA7F9, prLower}, // Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE - {0xA7FA, 0xA7FA, prLower}, // L& LATIN LETTER SMALL CAPITAL TURNED M - {0xA7FB, 0xA801, prOLetter}, // Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I - {0xA802, 0xA802, prExtend}, // Mn SYLOTI NAGRI SIGN DVISVARA - {0xA803, 0xA805, prOLetter}, // Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O - {0xA806, 0xA806, prExtend}, // Mn SYLOTI NAGRI SIGN HASANTA - {0xA807, 0xA80A, prOLetter}, // Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO - {0xA80B, 0xA80B, prExtend}, // Mn SYLOTI NAGRI SIGN ANUSVARA - {0xA80C, 0xA822, prOLetter}, // Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO - {0xA823, 0xA824, prExtend}, // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I - {0xA825, 0xA826, prExtend}, // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E - {0xA827, 0xA827, prExtend}, // Mc SYLOTI NAGRI VOWEL SIGN OO - {0xA82C, 0xA82C, prExtend}, // Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA - {0xA840, 0xA873, prOLetter}, // Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU - {0xA876, 0xA877, prSTerm}, // Po [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD - {0xA880, 0xA881, prExtend}, // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA - {0xA882, 0xA8B3, prOLetter}, // Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA - {0xA8B4, 0xA8C3, prExtend}, // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU - {0xA8C4, 0xA8C5, prExtend}, // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU - {0xA8CE, 0xA8CF, prSTerm}, // Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA - {0xA8D0, 0xA8D9, prNumeric}, // Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE - {0xA8E0, 0xA8F1, prExtend}, // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA - {0xA8F2, 0xA8F7, prOLetter}, // Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA - {0xA8FB, 0xA8FB, prOLetter}, // Lo DEVANAGARI HEADSTROKE - {0xA8FD, 0xA8FE, prOLetter}, // Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY - {0xA8FF, 0xA8FF, prExtend}, // Mn DEVANAGARI VOWEL SIGN AY - {0xA900, 0xA909, prNumeric}, // Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE - {0xA90A, 0xA925, prOLetter}, // Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO - {0xA926, 0xA92D, prExtend}, // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU - {0xA92F, 0xA92F, prSTerm}, // Po KAYAH LI SIGN SHYA - {0xA930, 0xA946, prOLetter}, // Lo [23] REJANG LETTER KA..REJANG LETTER A - {0xA947, 0xA951, prExtend}, // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R - {0xA952, 0xA953, prExtend}, // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA - {0xA960, 0xA97C, prOLetter}, // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH - {0xA980, 0xA982, prExtend}, // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR - {0xA983, 0xA983, prExtend}, // Mc JAVANESE SIGN WIGNYAN - {0xA984, 0xA9B2, prOLetter}, // Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA - {0xA9B3, 0xA9B3, prExtend}, // Mn JAVANESE SIGN CECAK TELU - {0xA9B4, 0xA9B5, prExtend}, // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG - {0xA9B6, 0xA9B9, prExtend}, // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT - {0xA9BA, 0xA9BB, prExtend}, // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE - {0xA9BC, 0xA9BD, prExtend}, // Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET - {0xA9BE, 0xA9C0, prExtend}, // Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON - {0xA9C8, 0xA9C9, prSTerm}, // Po [2] JAVANESE PADA LINGSA..JAVANESE PADA LUNGSI - {0xA9CF, 0xA9CF, prOLetter}, // Lm JAVANESE PANGRANGKEP - {0xA9D0, 0xA9D9, prNumeric}, // Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE - {0xA9E0, 0xA9E4, prOLetter}, // Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA - {0xA9E5, 0xA9E5, prExtend}, // Mn MYANMAR SIGN SHAN SAW - {0xA9E6, 0xA9E6, prOLetter}, // Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION - {0xA9E7, 0xA9EF, prOLetter}, // Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA - {0xA9F0, 0xA9F9, prNumeric}, // Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE - {0xA9FA, 0xA9FE, prOLetter}, // Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA - {0xAA00, 0xAA28, prOLetter}, // Lo [41] CHAM LETTER A..CHAM LETTER HA - {0xAA29, 0xAA2E, prExtend}, // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE - {0xAA2F, 0xAA30, prExtend}, // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI - {0xAA31, 0xAA32, prExtend}, // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE - {0xAA33, 0xAA34, prExtend}, // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA - {0xAA35, 0xAA36, prExtend}, // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA - {0xAA40, 0xAA42, prOLetter}, // Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG - {0xAA43, 0xAA43, prExtend}, // Mn CHAM CONSONANT SIGN FINAL NG - {0xAA44, 0xAA4B, prOLetter}, // Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS - {0xAA4C, 0xAA4C, prExtend}, // Mn CHAM CONSONANT SIGN FINAL M - {0xAA4D, 0xAA4D, prExtend}, // Mc CHAM CONSONANT SIGN FINAL H - {0xAA50, 0xAA59, prNumeric}, // Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE - {0xAA5D, 0xAA5F, prSTerm}, // Po [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA - {0xAA60, 0xAA6F, prOLetter}, // Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA - {0xAA70, 0xAA70, prOLetter}, // Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION - {0xAA71, 0xAA76, prOLetter}, // Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM - {0xAA7A, 0xAA7A, prOLetter}, // Lo MYANMAR LETTER AITON RA - {0xAA7B, 0xAA7B, prExtend}, // Mc MYANMAR SIGN PAO KAREN TONE - {0xAA7C, 0xAA7C, prExtend}, // Mn MYANMAR SIGN TAI LAING TONE-2 - {0xAA7D, 0xAA7D, prExtend}, // Mc MYANMAR SIGN TAI LAING TONE-5 - {0xAA7E, 0xAAAF, prOLetter}, // Lo [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O - {0xAAB0, 0xAAB0, prExtend}, // Mn TAI VIET MAI KANG - {0xAAB1, 0xAAB1, prOLetter}, // Lo TAI VIET VOWEL AA - {0xAAB2, 0xAAB4, prExtend}, // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U - {0xAAB5, 0xAAB6, prOLetter}, // Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O - {0xAAB7, 0xAAB8, prExtend}, // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA - {0xAAB9, 0xAABD, prOLetter}, // Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN - {0xAABE, 0xAABF, prExtend}, // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK - {0xAAC0, 0xAAC0, prOLetter}, // Lo TAI VIET TONE MAI NUENG - {0xAAC1, 0xAAC1, prExtend}, // Mn TAI VIET TONE MAI THO - {0xAAC2, 0xAAC2, prOLetter}, // Lo TAI VIET TONE MAI SONG - {0xAADB, 0xAADC, prOLetter}, // Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG - {0xAADD, 0xAADD, prOLetter}, // Lm TAI VIET SYMBOL SAM - {0xAAE0, 0xAAEA, prOLetter}, // Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA - {0xAAEB, 0xAAEB, prExtend}, // Mc MEETEI MAYEK VOWEL SIGN II - {0xAAEC, 0xAAED, prExtend}, // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI - {0xAAEE, 0xAAEF, prExtend}, // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU - {0xAAF0, 0xAAF1, prSTerm}, // Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM - {0xAAF2, 0xAAF2, prOLetter}, // Lo MEETEI MAYEK ANJI - {0xAAF3, 0xAAF4, prOLetter}, // Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK - {0xAAF5, 0xAAF5, prExtend}, // Mc MEETEI MAYEK VOWEL SIGN VISARGA - {0xAAF6, 0xAAF6, prExtend}, // Mn MEETEI MAYEK VIRAMA - {0xAB01, 0xAB06, prOLetter}, // Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO - {0xAB09, 0xAB0E, prOLetter}, // Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO - {0xAB11, 0xAB16, prOLetter}, // Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO - {0xAB20, 0xAB26, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO - {0xAB28, 0xAB2E, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO - {0xAB30, 0xAB5A, prLower}, // L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG - {0xAB5C, 0xAB5F, prLower}, // Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK - {0xAB60, 0xAB68, prLower}, // L& [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE - {0xAB69, 0xAB69, prLower}, // Lm MODIFIER LETTER SMALL TURNED W - {0xAB70, 0xABBF, prLower}, // L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA - {0xABC0, 0xABE2, prOLetter}, // Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM - {0xABE3, 0xABE4, prExtend}, // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP - {0xABE5, 0xABE5, prExtend}, // Mn MEETEI MAYEK VOWEL SIGN ANAP - {0xABE6, 0xABE7, prExtend}, // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP - {0xABE8, 0xABE8, prExtend}, // Mn MEETEI MAYEK VOWEL SIGN UNAP - {0xABE9, 0xABEA, prExtend}, // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG - {0xABEB, 0xABEB, prSTerm}, // Po MEETEI MAYEK CHEIKHEI - {0xABEC, 0xABEC, prExtend}, // Mc MEETEI MAYEK LUM IYEK - {0xABED, 0xABED, prExtend}, // Mn MEETEI MAYEK APUN IYEK - {0xABF0, 0xABF9, prNumeric}, // Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE - {0xAC00, 0xD7A3, prOLetter}, // Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH - {0xD7B0, 0xD7C6, prOLetter}, // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E - {0xD7CB, 0xD7FB, prOLetter}, // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH - {0xF900, 0xFA6D, prOLetter}, // Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D - {0xFA70, 0xFAD9, prOLetter}, // Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 - {0xFB00, 0xFB06, prLower}, // L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST - {0xFB13, 0xFB17, prLower}, // L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH - {0xFB1D, 0xFB1D, prOLetter}, // Lo HEBREW LETTER YOD WITH HIRIQ - {0xFB1E, 0xFB1E, prExtend}, // Mn HEBREW POINT JUDEO-SPANISH VARIKA - {0xFB1F, 0xFB28, prOLetter}, // Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV - {0xFB2A, 0xFB36, prOLetter}, // Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH - {0xFB38, 0xFB3C, prOLetter}, // Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH - {0xFB3E, 0xFB3E, prOLetter}, // Lo HEBREW LETTER MEM WITH DAGESH - {0xFB40, 0xFB41, prOLetter}, // Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH - {0xFB43, 0xFB44, prOLetter}, // Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH - {0xFB46, 0xFBB1, prOLetter}, // Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM - {0xFBD3, 0xFD3D, prOLetter}, // Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM - {0xFD3E, 0xFD3E, prClose}, // Pe ORNATE LEFT PARENTHESIS - {0xFD3F, 0xFD3F, prClose}, // Ps ORNATE RIGHT PARENTHESIS - {0xFD50, 0xFD8F, prOLetter}, // Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM - {0xFD92, 0xFDC7, prOLetter}, // Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM - {0xFDF0, 0xFDFB, prOLetter}, // Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU - {0xFE00, 0xFE0F, prExtend}, // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 - {0xFE10, 0xFE11, prSContinue}, // Po [2] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA - {0xFE13, 0xFE13, prSContinue}, // Po PRESENTATION FORM FOR VERTICAL COLON - {0xFE17, 0xFE17, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET - {0xFE18, 0xFE18, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET - {0xFE20, 0xFE2F, prExtend}, // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF - {0xFE31, 0xFE32, prSContinue}, // Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH - {0xFE35, 0xFE35, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS - {0xFE36, 0xFE36, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS - {0xFE37, 0xFE37, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET - {0xFE38, 0xFE38, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET - {0xFE39, 0xFE39, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET - {0xFE3A, 0xFE3A, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET - {0xFE3B, 0xFE3B, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET - {0xFE3C, 0xFE3C, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET - {0xFE3D, 0xFE3D, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET - {0xFE3E, 0xFE3E, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET - {0xFE3F, 0xFE3F, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET - {0xFE40, 0xFE40, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET - {0xFE41, 0xFE41, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET - {0xFE42, 0xFE42, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET - {0xFE43, 0xFE43, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET - {0xFE44, 0xFE44, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET - {0xFE47, 0xFE47, prClose}, // Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET - {0xFE48, 0xFE48, prClose}, // Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET - {0xFE50, 0xFE51, prSContinue}, // Po [2] SMALL COMMA..SMALL IDEOGRAPHIC COMMA - {0xFE52, 0xFE52, prATerm}, // Po SMALL FULL STOP - {0xFE55, 0xFE55, prSContinue}, // Po SMALL COLON - {0xFE56, 0xFE57, prSTerm}, // Po [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK - {0xFE58, 0xFE58, prSContinue}, // Pd SMALL EM DASH - {0xFE59, 0xFE59, prClose}, // Ps SMALL LEFT PARENTHESIS - {0xFE5A, 0xFE5A, prClose}, // Pe SMALL RIGHT PARENTHESIS - {0xFE5B, 0xFE5B, prClose}, // Ps SMALL LEFT CURLY BRACKET - {0xFE5C, 0xFE5C, prClose}, // Pe SMALL RIGHT CURLY BRACKET - {0xFE5D, 0xFE5D, prClose}, // Ps SMALL LEFT TORTOISE SHELL BRACKET - {0xFE5E, 0xFE5E, prClose}, // Pe SMALL RIGHT TORTOISE SHELL BRACKET - {0xFE63, 0xFE63, prSContinue}, // Pd SMALL HYPHEN-MINUS - {0xFE70, 0xFE74, prOLetter}, // Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM - {0xFE76, 0xFEFC, prOLetter}, // Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM - {0xFEFF, 0xFEFF, prFormat}, // Cf ZERO WIDTH NO-BREAK SPACE - {0xFF01, 0xFF01, prSTerm}, // Po FULLWIDTH EXCLAMATION MARK - {0xFF08, 0xFF08, prClose}, // Ps FULLWIDTH LEFT PARENTHESIS - {0xFF09, 0xFF09, prClose}, // Pe FULLWIDTH RIGHT PARENTHESIS - {0xFF0C, 0xFF0C, prSContinue}, // Po FULLWIDTH COMMA - {0xFF0D, 0xFF0D, prSContinue}, // Pd FULLWIDTH HYPHEN-MINUS - {0xFF0E, 0xFF0E, prATerm}, // Po FULLWIDTH FULL STOP - {0xFF10, 0xFF19, prNumeric}, // Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE - {0xFF1A, 0xFF1A, prSContinue}, // Po FULLWIDTH COLON - {0xFF1F, 0xFF1F, prSTerm}, // Po FULLWIDTH QUESTION MARK - {0xFF21, 0xFF3A, prUpper}, // L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z - {0xFF3B, 0xFF3B, prClose}, // Ps FULLWIDTH LEFT SQUARE BRACKET - {0xFF3D, 0xFF3D, prClose}, // Pe FULLWIDTH RIGHT SQUARE BRACKET - {0xFF41, 0xFF5A, prLower}, // L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z - {0xFF5B, 0xFF5B, prClose}, // Ps FULLWIDTH LEFT CURLY BRACKET - {0xFF5D, 0xFF5D, prClose}, // Pe FULLWIDTH RIGHT CURLY BRACKET - {0xFF5F, 0xFF5F, prClose}, // Ps FULLWIDTH LEFT WHITE PARENTHESIS - {0xFF60, 0xFF60, prClose}, // Pe FULLWIDTH RIGHT WHITE PARENTHESIS - {0xFF61, 0xFF61, prSTerm}, // Po HALFWIDTH IDEOGRAPHIC FULL STOP - {0xFF62, 0xFF62, prClose}, // Ps HALFWIDTH LEFT CORNER BRACKET - {0xFF63, 0xFF63, prClose}, // Pe HALFWIDTH RIGHT CORNER BRACKET - {0xFF64, 0xFF64, prSContinue}, // Po HALFWIDTH IDEOGRAPHIC COMMA - {0xFF66, 0xFF6F, prOLetter}, // Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU - {0xFF70, 0xFF70, prOLetter}, // Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK - {0xFF71, 0xFF9D, prOLetter}, // Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N - {0xFF9E, 0xFF9F, prExtend}, // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK - {0xFFA0, 0xFFBE, prOLetter}, // Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH - {0xFFC2, 0xFFC7, prOLetter}, // Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E - {0xFFCA, 0xFFCF, prOLetter}, // Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE - {0xFFD2, 0xFFD7, prOLetter}, // Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU - {0xFFDA, 0xFFDC, prOLetter}, // Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I - {0xFFF9, 0xFFFB, prFormat}, // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR - {0x10000, 0x1000B, prOLetter}, // Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE - {0x1000D, 0x10026, prOLetter}, // Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO - {0x10028, 0x1003A, prOLetter}, // Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO - {0x1003C, 0x1003D, prOLetter}, // Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE - {0x1003F, 0x1004D, prOLetter}, // Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO - {0x10050, 0x1005D, prOLetter}, // Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 - {0x10080, 0x100FA, prOLetter}, // Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 - {0x10140, 0x10174, prOLetter}, // Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS - {0x101FD, 0x101FD, prExtend}, // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE - {0x10280, 0x1029C, prOLetter}, // Lo [29] LYCIAN LETTER A..LYCIAN LETTER X - {0x102A0, 0x102D0, prOLetter}, // Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 - {0x102E0, 0x102E0, prExtend}, // Mn COPTIC EPACT THOUSANDS MARK - {0x10300, 0x1031F, prOLetter}, // Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS - {0x1032D, 0x10340, prOLetter}, // Lo [20] OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA - {0x10341, 0x10341, prOLetter}, // Nl GOTHIC LETTER NINETY - {0x10342, 0x10349, prOLetter}, // Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL - {0x1034A, 0x1034A, prOLetter}, // Nl GOTHIC LETTER NINE HUNDRED - {0x10350, 0x10375, prOLetter}, // Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA - {0x10376, 0x1037A, prExtend}, // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII - {0x10380, 0x1039D, prOLetter}, // Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU - {0x103A0, 0x103C3, prOLetter}, // Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA - {0x103C8, 0x103CF, prOLetter}, // Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH - {0x103D1, 0x103D5, prOLetter}, // Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED - {0x10400, 0x10427, prUpper}, // L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW - {0x10428, 0x1044F, prLower}, // L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW - {0x10450, 0x1049D, prOLetter}, // Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO - {0x104A0, 0x104A9, prNumeric}, // Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE - {0x104B0, 0x104D3, prUpper}, // L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA - {0x104D8, 0x104FB, prLower}, // L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA - {0x10500, 0x10527, prOLetter}, // Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE - {0x10530, 0x10563, prOLetter}, // Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW - {0x10570, 0x1057A, prUpper}, // L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA - {0x1057C, 0x1058A, prUpper}, // L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE - {0x1058C, 0x10592, prUpper}, // L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE - {0x10594, 0x10595, prUpper}, // L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE - {0x10597, 0x105A1, prLower}, // L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA - {0x105A3, 0x105B1, prLower}, // L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE - {0x105B3, 0x105B9, prLower}, // L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE - {0x105BB, 0x105BC, prLower}, // L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE - {0x10600, 0x10736, prOLetter}, // Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 - {0x10740, 0x10755, prOLetter}, // Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE - {0x10760, 0x10767, prOLetter}, // Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807 - {0x10780, 0x10780, prLower}, // Lm MODIFIER LETTER SMALL CAPITAL AA - {0x10781, 0x10782, prOLetter}, // Lm [2] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON - {0x10783, 0x10785, prLower}, // Lm [3] MODIFIER LETTER SMALL AE..MODIFIER LETTER SMALL B WITH HOOK - {0x10787, 0x107B0, prLower}, // Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK - {0x107B2, 0x107BA, prLower}, // Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL - {0x10800, 0x10805, prOLetter}, // Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA - {0x10808, 0x10808, prOLetter}, // Lo CYPRIOT SYLLABLE JO - {0x1080A, 0x10835, prOLetter}, // Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO - {0x10837, 0x10838, prOLetter}, // Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE - {0x1083C, 0x1083C, prOLetter}, // Lo CYPRIOT SYLLABLE ZA - {0x1083F, 0x10855, prOLetter}, // Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW - {0x10860, 0x10876, prOLetter}, // Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW - {0x10880, 0x1089E, prOLetter}, // Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW - {0x108E0, 0x108F2, prOLetter}, // Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH - {0x108F4, 0x108F5, prOLetter}, // Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW - {0x10900, 0x10915, prOLetter}, // Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU - {0x10920, 0x10939, prOLetter}, // Lo [26] LYDIAN LETTER A..LYDIAN LETTER C - {0x10980, 0x109B7, prOLetter}, // Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA - {0x109BE, 0x109BF, prOLetter}, // Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN - {0x10A00, 0x10A00, prOLetter}, // Lo KHAROSHTHI LETTER A - {0x10A01, 0x10A03, prExtend}, // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R - {0x10A05, 0x10A06, prExtend}, // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O - {0x10A0C, 0x10A0F, prExtend}, // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA - {0x10A10, 0x10A13, prOLetter}, // Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA - {0x10A15, 0x10A17, prOLetter}, // Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA - {0x10A19, 0x10A35, prOLetter}, // Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA - {0x10A38, 0x10A3A, prExtend}, // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW - {0x10A3F, 0x10A3F, prExtend}, // Mn KHAROSHTHI VIRAMA - {0x10A56, 0x10A57, prSTerm}, // Po [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA - {0x10A60, 0x10A7C, prOLetter}, // Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH - {0x10A80, 0x10A9C, prOLetter}, // Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH - {0x10AC0, 0x10AC7, prOLetter}, // Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW - {0x10AC9, 0x10AE4, prOLetter}, // Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW - {0x10AE5, 0x10AE6, prExtend}, // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW - {0x10B00, 0x10B35, prOLetter}, // Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE - {0x10B40, 0x10B55, prOLetter}, // Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW - {0x10B60, 0x10B72, prOLetter}, // Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW - {0x10B80, 0x10B91, prOLetter}, // Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW - {0x10C00, 0x10C48, prOLetter}, // Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH - {0x10C80, 0x10CB2, prUpper}, // L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US - {0x10CC0, 0x10CF2, prLower}, // L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US - {0x10D00, 0x10D23, prOLetter}, // Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA - {0x10D24, 0x10D27, prExtend}, // Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI - {0x10D30, 0x10D39, prNumeric}, // Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE - {0x10E80, 0x10EA9, prOLetter}, // Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET - {0x10EAB, 0x10EAC, prExtend}, // Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK - {0x10EB0, 0x10EB1, prOLetter}, // Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE - {0x10EFD, 0x10EFF, prExtend}, // Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA - {0x10F00, 0x10F1C, prOLetter}, // Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL - {0x10F27, 0x10F27, prOLetter}, // Lo OLD SOGDIAN LIGATURE AYIN-DALETH - {0x10F30, 0x10F45, prOLetter}, // Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN - {0x10F46, 0x10F50, prExtend}, // Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW - {0x10F55, 0x10F59, prSTerm}, // Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT - {0x10F70, 0x10F81, prOLetter}, // Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH - {0x10F82, 0x10F85, prExtend}, // Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW - {0x10F86, 0x10F89, prSTerm}, // Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS - {0x10FB0, 0x10FC4, prOLetter}, // Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW - {0x10FE0, 0x10FF6, prOLetter}, // Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH - {0x11000, 0x11000, prExtend}, // Mc BRAHMI SIGN CANDRABINDU - {0x11001, 0x11001, prExtend}, // Mn BRAHMI SIGN ANUSVARA - {0x11002, 0x11002, prExtend}, // Mc BRAHMI SIGN VISARGA - {0x11003, 0x11037, prOLetter}, // Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA - {0x11038, 0x11046, prExtend}, // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA - {0x11047, 0x11048, prSTerm}, // Po [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA - {0x11066, 0x1106F, prNumeric}, // Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE - {0x11070, 0x11070, prExtend}, // Mn BRAHMI SIGN OLD TAMIL VIRAMA - {0x11071, 0x11072, prOLetter}, // Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O - {0x11073, 0x11074, prExtend}, // Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O - {0x11075, 0x11075, prOLetter}, // Lo BRAHMI LETTER OLD TAMIL LLA - {0x1107F, 0x11081, prExtend}, // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA - {0x11082, 0x11082, prExtend}, // Mc KAITHI SIGN VISARGA - {0x11083, 0x110AF, prOLetter}, // Lo [45] KAITHI LETTER A..KAITHI LETTER HA - {0x110B0, 0x110B2, prExtend}, // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II - {0x110B3, 0x110B6, prExtend}, // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI - {0x110B7, 0x110B8, prExtend}, // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU - {0x110B9, 0x110BA, prExtend}, // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA - {0x110BD, 0x110BD, prFormat}, // Cf KAITHI NUMBER SIGN - {0x110BE, 0x110C1, prSTerm}, // Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA - {0x110C2, 0x110C2, prExtend}, // Mn KAITHI VOWEL SIGN VOCALIC R - {0x110CD, 0x110CD, prFormat}, // Cf KAITHI NUMBER SIGN ABOVE - {0x110D0, 0x110E8, prOLetter}, // Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE - {0x110F0, 0x110F9, prNumeric}, // Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE - {0x11100, 0x11102, prExtend}, // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA - {0x11103, 0x11126, prOLetter}, // Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA - {0x11127, 0x1112B, prExtend}, // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU - {0x1112C, 0x1112C, prExtend}, // Mc CHAKMA VOWEL SIGN E - {0x1112D, 0x11134, prExtend}, // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA - {0x11136, 0x1113F, prNumeric}, // Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE - {0x11141, 0x11143, prSTerm}, // Po [3] CHAKMA DANDA..CHAKMA QUESTION MARK - {0x11144, 0x11144, prOLetter}, // Lo CHAKMA LETTER LHAA - {0x11145, 0x11146, prExtend}, // Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI - {0x11147, 0x11147, prOLetter}, // Lo CHAKMA LETTER VAA - {0x11150, 0x11172, prOLetter}, // Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA - {0x11173, 0x11173, prExtend}, // Mn MAHAJANI SIGN NUKTA - {0x11176, 0x11176, prOLetter}, // Lo MAHAJANI LIGATURE SHRI - {0x11180, 0x11181, prExtend}, // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA - {0x11182, 0x11182, prExtend}, // Mc SHARADA SIGN VISARGA - {0x11183, 0x111B2, prOLetter}, // Lo [48] SHARADA LETTER A..SHARADA LETTER HA - {0x111B3, 0x111B5, prExtend}, // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II - {0x111B6, 0x111BE, prExtend}, // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O - {0x111BF, 0x111C0, prExtend}, // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA - {0x111C1, 0x111C4, prOLetter}, // Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM - {0x111C5, 0x111C6, prSTerm}, // Po [2] SHARADA DANDA..SHARADA DOUBLE DANDA - {0x111C9, 0x111CC, prExtend}, // Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK - {0x111CD, 0x111CD, prSTerm}, // Po SHARADA SUTRA MARK - {0x111CE, 0x111CE, prExtend}, // Mc SHARADA VOWEL SIGN PRISHTHAMATRA E - {0x111CF, 0x111CF, prExtend}, // Mn SHARADA SIGN INVERTED CANDRABINDU - {0x111D0, 0x111D9, prNumeric}, // Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE - {0x111DA, 0x111DA, prOLetter}, // Lo SHARADA EKAM - {0x111DC, 0x111DC, prOLetter}, // Lo SHARADA HEADSTROKE - {0x111DE, 0x111DF, prSTerm}, // Po [2] SHARADA SECTION MARK-1..SHARADA SECTION MARK-2 - {0x11200, 0x11211, prOLetter}, // Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA - {0x11213, 0x1122B, prOLetter}, // Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA - {0x1122C, 0x1122E, prExtend}, // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II - {0x1122F, 0x11231, prExtend}, // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI - {0x11232, 0x11233, prExtend}, // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU - {0x11234, 0x11234, prExtend}, // Mn KHOJKI SIGN ANUSVARA - {0x11235, 0x11235, prExtend}, // Mc KHOJKI SIGN VIRAMA - {0x11236, 0x11237, prExtend}, // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA - {0x11238, 0x11239, prSTerm}, // Po [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA - {0x1123B, 0x1123C, prSTerm}, // Po [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK - {0x1123E, 0x1123E, prExtend}, // Mn KHOJKI SIGN SUKUN - {0x1123F, 0x11240, prOLetter}, // Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I - {0x11241, 0x11241, prExtend}, // Mn KHOJKI VOWEL SIGN VOCALIC R - {0x11280, 0x11286, prOLetter}, // Lo [7] MULTANI LETTER A..MULTANI LETTER GA - {0x11288, 0x11288, prOLetter}, // Lo MULTANI LETTER GHA - {0x1128A, 0x1128D, prOLetter}, // Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA - {0x1128F, 0x1129D, prOLetter}, // Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA - {0x1129F, 0x112A8, prOLetter}, // Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA - {0x112A9, 0x112A9, prSTerm}, // Po MULTANI SECTION MARK - {0x112B0, 0x112DE, prOLetter}, // Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA - {0x112DF, 0x112DF, prExtend}, // Mn KHUDAWADI SIGN ANUSVARA - {0x112E0, 0x112E2, prExtend}, // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II - {0x112E3, 0x112EA, prExtend}, // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA - {0x112F0, 0x112F9, prNumeric}, // Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE - {0x11300, 0x11301, prExtend}, // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU - {0x11302, 0x11303, prExtend}, // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA - {0x11305, 0x1130C, prOLetter}, // Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L - {0x1130F, 0x11310, prOLetter}, // Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI - {0x11313, 0x11328, prOLetter}, // Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA - {0x1132A, 0x11330, prOLetter}, // Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA - {0x11332, 0x11333, prOLetter}, // Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA - {0x11335, 0x11339, prOLetter}, // Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA - {0x1133B, 0x1133C, prExtend}, // Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA - {0x1133D, 0x1133D, prOLetter}, // Lo GRANTHA SIGN AVAGRAHA - {0x1133E, 0x1133F, prExtend}, // Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I - {0x11340, 0x11340, prExtend}, // Mn GRANTHA VOWEL SIGN II - {0x11341, 0x11344, prExtend}, // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR - {0x11347, 0x11348, prExtend}, // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI - {0x1134B, 0x1134D, prExtend}, // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA - {0x11350, 0x11350, prOLetter}, // Lo GRANTHA OM - {0x11357, 0x11357, prExtend}, // Mc GRANTHA AU LENGTH MARK - {0x1135D, 0x11361, prOLetter}, // Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL - {0x11362, 0x11363, prExtend}, // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL - {0x11366, 0x1136C, prExtend}, // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX - {0x11370, 0x11374, prExtend}, // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA - {0x11400, 0x11434, prOLetter}, // Lo [53] NEWA LETTER A..NEWA LETTER HA - {0x11435, 0x11437, prExtend}, // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II - {0x11438, 0x1143F, prExtend}, // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI - {0x11440, 0x11441, prExtend}, // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU - {0x11442, 0x11444, prExtend}, // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA - {0x11445, 0x11445, prExtend}, // Mc NEWA SIGN VISARGA - {0x11446, 0x11446, prExtend}, // Mn NEWA SIGN NUKTA - {0x11447, 0x1144A, prOLetter}, // Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI - {0x1144B, 0x1144C, prSTerm}, // Po [2] NEWA DANDA..NEWA DOUBLE DANDA - {0x11450, 0x11459, prNumeric}, // Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE - {0x1145E, 0x1145E, prExtend}, // Mn NEWA SANDHI MARK - {0x1145F, 0x11461, prOLetter}, // Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA - {0x11480, 0x114AF, prOLetter}, // Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA - {0x114B0, 0x114B2, prExtend}, // Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II - {0x114B3, 0x114B8, prExtend}, // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL - {0x114B9, 0x114B9, prExtend}, // Mc TIRHUTA VOWEL SIGN E - {0x114BA, 0x114BA, prExtend}, // Mn TIRHUTA VOWEL SIGN SHORT E - {0x114BB, 0x114BE, prExtend}, // Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU - {0x114BF, 0x114C0, prExtend}, // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA - {0x114C1, 0x114C1, prExtend}, // Mc TIRHUTA SIGN VISARGA - {0x114C2, 0x114C3, prExtend}, // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA - {0x114C4, 0x114C5, prOLetter}, // Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG - {0x114C7, 0x114C7, prOLetter}, // Lo TIRHUTA OM - {0x114D0, 0x114D9, prNumeric}, // Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE - {0x11580, 0x115AE, prOLetter}, // Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA - {0x115AF, 0x115B1, prExtend}, // Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II - {0x115B2, 0x115B5, prExtend}, // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR - {0x115B8, 0x115BB, prExtend}, // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU - {0x115BC, 0x115BD, prExtend}, // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA - {0x115BE, 0x115BE, prExtend}, // Mc SIDDHAM SIGN VISARGA - {0x115BF, 0x115C0, prExtend}, // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA - {0x115C2, 0x115C3, prSTerm}, // Po [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA - {0x115C9, 0x115D7, prSTerm}, // Po [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES - {0x115D8, 0x115DB, prOLetter}, // Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U - {0x115DC, 0x115DD, prExtend}, // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU - {0x11600, 0x1162F, prOLetter}, // Lo [48] MODI LETTER A..MODI LETTER LLA - {0x11630, 0x11632, prExtend}, // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II - {0x11633, 0x1163A, prExtend}, // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI - {0x1163B, 0x1163C, prExtend}, // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU - {0x1163D, 0x1163D, prExtend}, // Mn MODI SIGN ANUSVARA - {0x1163E, 0x1163E, prExtend}, // Mc MODI SIGN VISARGA - {0x1163F, 0x11640, prExtend}, // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA - {0x11641, 0x11642, prSTerm}, // Po [2] MODI DANDA..MODI DOUBLE DANDA - {0x11644, 0x11644, prOLetter}, // Lo MODI SIGN HUVA - {0x11650, 0x11659, prNumeric}, // Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE - {0x11680, 0x116AA, prOLetter}, // Lo [43] TAKRI LETTER A..TAKRI LETTER RRA - {0x116AB, 0x116AB, prExtend}, // Mn TAKRI SIGN ANUSVARA - {0x116AC, 0x116AC, prExtend}, // Mc TAKRI SIGN VISARGA - {0x116AD, 0x116AD, prExtend}, // Mn TAKRI VOWEL SIGN AA - {0x116AE, 0x116AF, prExtend}, // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II - {0x116B0, 0x116B5, prExtend}, // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU - {0x116B6, 0x116B6, prExtend}, // Mc TAKRI SIGN VIRAMA - {0x116B7, 0x116B7, prExtend}, // Mn TAKRI SIGN NUKTA - {0x116B8, 0x116B8, prOLetter}, // Lo TAKRI LETTER ARCHAIC KHA - {0x116C0, 0x116C9, prNumeric}, // Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE - {0x11700, 0x1171A, prOLetter}, // Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA - {0x1171D, 0x1171F, prExtend}, // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA - {0x11720, 0x11721, prExtend}, // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA - {0x11722, 0x11725, prExtend}, // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU - {0x11726, 0x11726, prExtend}, // Mc AHOM VOWEL SIGN E - {0x11727, 0x1172B, prExtend}, // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER - {0x11730, 0x11739, prNumeric}, // Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE - {0x1173C, 0x1173E, prSTerm}, // Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI - {0x11740, 0x11746, prOLetter}, // Lo [7] AHOM LETTER CA..AHOM LETTER LLA - {0x11800, 0x1182B, prOLetter}, // Lo [44] DOGRA LETTER A..DOGRA LETTER RRA - {0x1182C, 0x1182E, prExtend}, // Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II - {0x1182F, 0x11837, prExtend}, // Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA - {0x11838, 0x11838, prExtend}, // Mc DOGRA SIGN VISARGA - {0x11839, 0x1183A, prExtend}, // Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA - {0x118A0, 0x118BF, prUpper}, // L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO - {0x118C0, 0x118DF, prLower}, // L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO - {0x118E0, 0x118E9, prNumeric}, // Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE - {0x118FF, 0x11906, prOLetter}, // Lo [8] WARANG CITI OM..DIVES AKURU LETTER E - {0x11909, 0x11909, prOLetter}, // Lo DIVES AKURU LETTER O - {0x1190C, 0x11913, prOLetter}, // Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA - {0x11915, 0x11916, prOLetter}, // Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA - {0x11918, 0x1192F, prOLetter}, // Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA - {0x11930, 0x11935, prExtend}, // Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E - {0x11937, 0x11938, prExtend}, // Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O - {0x1193B, 0x1193C, prExtend}, // Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU - {0x1193D, 0x1193D, prExtend}, // Mc DIVES AKURU SIGN HALANTA - {0x1193E, 0x1193E, prExtend}, // Mn DIVES AKURU VIRAMA - {0x1193F, 0x1193F, prOLetter}, // Lo DIVES AKURU PREFIXED NASAL SIGN - {0x11940, 0x11940, prExtend}, // Mc DIVES AKURU MEDIAL YA - {0x11941, 0x11941, prOLetter}, // Lo DIVES AKURU INITIAL RA - {0x11942, 0x11942, prExtend}, // Mc DIVES AKURU MEDIAL RA - {0x11943, 0x11943, prExtend}, // Mn DIVES AKURU SIGN NUKTA - {0x11944, 0x11944, prSTerm}, // Po DIVES AKURU DOUBLE DANDA - {0x11946, 0x11946, prSTerm}, // Po DIVES AKURU END OF TEXT MARK - {0x11950, 0x11959, prNumeric}, // Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE - {0x119A0, 0x119A7, prOLetter}, // Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR - {0x119AA, 0x119D0, prOLetter}, // Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA - {0x119D1, 0x119D3, prExtend}, // Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II - {0x119D4, 0x119D7, prExtend}, // Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR - {0x119DA, 0x119DB, prExtend}, // Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI - {0x119DC, 0x119DF, prExtend}, // Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA - {0x119E0, 0x119E0, prExtend}, // Mn NANDINAGARI SIGN VIRAMA - {0x119E1, 0x119E1, prOLetter}, // Lo NANDINAGARI SIGN AVAGRAHA - {0x119E3, 0x119E3, prOLetter}, // Lo NANDINAGARI HEADSTROKE - {0x119E4, 0x119E4, prExtend}, // Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E - {0x11A00, 0x11A00, prOLetter}, // Lo ZANABAZAR SQUARE LETTER A - {0x11A01, 0x11A0A, prExtend}, // Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK - {0x11A0B, 0x11A32, prOLetter}, // Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA - {0x11A33, 0x11A38, prExtend}, // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA - {0x11A39, 0x11A39, prExtend}, // Mc ZANABAZAR SQUARE SIGN VISARGA - {0x11A3A, 0x11A3A, prOLetter}, // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA - {0x11A3B, 0x11A3E, prExtend}, // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA - {0x11A42, 0x11A43, prSTerm}, // Po [2] ZANABAZAR SQUARE MARK SHAD..ZANABAZAR SQUARE MARK DOUBLE SHAD - {0x11A47, 0x11A47, prExtend}, // Mn ZANABAZAR SQUARE SUBJOINER - {0x11A50, 0x11A50, prOLetter}, // Lo SOYOMBO LETTER A - {0x11A51, 0x11A56, prExtend}, // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE - {0x11A57, 0x11A58, prExtend}, // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU - {0x11A59, 0x11A5B, prExtend}, // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK - {0x11A5C, 0x11A89, prOLetter}, // Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA - {0x11A8A, 0x11A96, prExtend}, // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA - {0x11A97, 0x11A97, prExtend}, // Mc SOYOMBO SIGN VISARGA - {0x11A98, 0x11A99, prExtend}, // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER - {0x11A9B, 0x11A9C, prSTerm}, // Po [2] SOYOMBO MARK SHAD..SOYOMBO MARK DOUBLE SHAD - {0x11A9D, 0x11A9D, prOLetter}, // Lo SOYOMBO MARK PLUTA - {0x11AB0, 0x11AF8, prOLetter}, // Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL - {0x11C00, 0x11C08, prOLetter}, // Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L - {0x11C0A, 0x11C2E, prOLetter}, // Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA - {0x11C2F, 0x11C2F, prExtend}, // Mc BHAIKSUKI VOWEL SIGN AA - {0x11C30, 0x11C36, prExtend}, // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L - {0x11C38, 0x11C3D, prExtend}, // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA - {0x11C3E, 0x11C3E, prExtend}, // Mc BHAIKSUKI SIGN VISARGA - {0x11C3F, 0x11C3F, prExtend}, // Mn BHAIKSUKI SIGN VIRAMA - {0x11C40, 0x11C40, prOLetter}, // Lo BHAIKSUKI SIGN AVAGRAHA - {0x11C41, 0x11C42, prSTerm}, // Po [2] BHAIKSUKI DANDA..BHAIKSUKI DOUBLE DANDA - {0x11C50, 0x11C59, prNumeric}, // Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE - {0x11C72, 0x11C8F, prOLetter}, // Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A - {0x11C92, 0x11CA7, prExtend}, // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA - {0x11CA9, 0x11CA9, prExtend}, // Mc MARCHEN SUBJOINED LETTER YA - {0x11CAA, 0x11CB0, prExtend}, // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA - {0x11CB1, 0x11CB1, prExtend}, // Mc MARCHEN VOWEL SIGN I - {0x11CB2, 0x11CB3, prExtend}, // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E - {0x11CB4, 0x11CB4, prExtend}, // Mc MARCHEN VOWEL SIGN O - {0x11CB5, 0x11CB6, prExtend}, // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU - {0x11D00, 0x11D06, prOLetter}, // Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E - {0x11D08, 0x11D09, prOLetter}, // Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O - {0x11D0B, 0x11D30, prOLetter}, // Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA - {0x11D31, 0x11D36, prExtend}, // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R - {0x11D3A, 0x11D3A, prExtend}, // Mn MASARAM GONDI VOWEL SIGN E - {0x11D3C, 0x11D3D, prExtend}, // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O - {0x11D3F, 0x11D45, prExtend}, // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA - {0x11D46, 0x11D46, prOLetter}, // Lo MASARAM GONDI REPHA - {0x11D47, 0x11D47, prExtend}, // Mn MASARAM GONDI RA-KARA - {0x11D50, 0x11D59, prNumeric}, // Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE - {0x11D60, 0x11D65, prOLetter}, // Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU - {0x11D67, 0x11D68, prOLetter}, // Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI - {0x11D6A, 0x11D89, prOLetter}, // Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA - {0x11D8A, 0x11D8E, prExtend}, // Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU - {0x11D90, 0x11D91, prExtend}, // Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI - {0x11D93, 0x11D94, prExtend}, // Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU - {0x11D95, 0x11D95, prExtend}, // Mn GUNJALA GONDI SIGN ANUSVARA - {0x11D96, 0x11D96, prExtend}, // Mc GUNJALA GONDI SIGN VISARGA - {0x11D97, 0x11D97, prExtend}, // Mn GUNJALA GONDI VIRAMA - {0x11D98, 0x11D98, prOLetter}, // Lo GUNJALA GONDI OM - {0x11DA0, 0x11DA9, prNumeric}, // Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE - {0x11EE0, 0x11EF2, prOLetter}, // Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA - {0x11EF3, 0x11EF4, prExtend}, // Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U - {0x11EF5, 0x11EF6, prExtend}, // Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O - {0x11EF7, 0x11EF8, prSTerm}, // Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION - {0x11F00, 0x11F01, prExtend}, // Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA - {0x11F02, 0x11F02, prOLetter}, // Lo KAWI SIGN REPHA - {0x11F03, 0x11F03, prExtend}, // Mc KAWI SIGN VISARGA - {0x11F04, 0x11F10, prOLetter}, // Lo [13] KAWI LETTER A..KAWI LETTER O - {0x11F12, 0x11F33, prOLetter}, // Lo [34] KAWI LETTER KA..KAWI LETTER JNYA - {0x11F34, 0x11F35, prExtend}, // Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA - {0x11F36, 0x11F3A, prExtend}, // Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R - {0x11F3E, 0x11F3F, prExtend}, // Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI - {0x11F40, 0x11F40, prExtend}, // Mn KAWI VOWEL SIGN EU - {0x11F41, 0x11F41, prExtend}, // Mc KAWI SIGN KILLER - {0x11F42, 0x11F42, prExtend}, // Mn KAWI CONJOINER - {0x11F43, 0x11F44, prSTerm}, // Po [2] KAWI DANDA..KAWI DOUBLE DANDA - {0x11F50, 0x11F59, prNumeric}, // Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE - {0x11FB0, 0x11FB0, prOLetter}, // Lo LISU LETTER YHA - {0x12000, 0x12399, prOLetter}, // Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U - {0x12400, 0x1246E, prOLetter}, // Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM - {0x12480, 0x12543, prOLetter}, // Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU - {0x12F90, 0x12FF0, prOLetter}, // Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114 - {0x13000, 0x1342F, prOLetter}, // Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D - {0x13430, 0x1343F, prFormat}, // Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE - {0x13440, 0x13440, prExtend}, // Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY - {0x13441, 0x13446, prOLetter}, // Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN - {0x13447, 0x13455, prExtend}, // Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED - {0x14400, 0x14646, prOLetter}, // Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530 - {0x16800, 0x16A38, prOLetter}, // Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ - {0x16A40, 0x16A5E, prOLetter}, // Lo [31] MRO LETTER TA..MRO LETTER TEK - {0x16A60, 0x16A69, prNumeric}, // Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE - {0x16A6E, 0x16A6F, prSTerm}, // Po [2] MRO DANDA..MRO DOUBLE DANDA - {0x16A70, 0x16ABE, prOLetter}, // Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA - {0x16AC0, 0x16AC9, prNumeric}, // Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE - {0x16AD0, 0x16AED, prOLetter}, // Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I - {0x16AF0, 0x16AF4, prExtend}, // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE - {0x16AF5, 0x16AF5, prSTerm}, // Po BASSA VAH FULL STOP - {0x16B00, 0x16B2F, prOLetter}, // Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU - {0x16B30, 0x16B36, prExtend}, // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM - {0x16B37, 0x16B38, prSTerm}, // Po [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB - {0x16B40, 0x16B43, prOLetter}, // Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM - {0x16B44, 0x16B44, prSTerm}, // Po PAHAWH HMONG SIGN XAUS - {0x16B50, 0x16B59, prNumeric}, // Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE - {0x16B63, 0x16B77, prOLetter}, // Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS - {0x16B7D, 0x16B8F, prOLetter}, // Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ - {0x16E40, 0x16E5F, prUpper}, // L& [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y - {0x16E60, 0x16E7F, prLower}, // L& [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y - {0x16E98, 0x16E98, prSTerm}, // Po MEDEFAIDRIN FULL STOP - {0x16F00, 0x16F4A, prOLetter}, // Lo [75] MIAO LETTER PA..MIAO LETTER RTE - {0x16F4F, 0x16F4F, prExtend}, // Mn MIAO SIGN CONSONANT MODIFIER BAR - {0x16F50, 0x16F50, prOLetter}, // Lo MIAO LETTER NASALIZATION - {0x16F51, 0x16F87, prExtend}, // Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI - {0x16F8F, 0x16F92, prExtend}, // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW - {0x16F93, 0x16F9F, prOLetter}, // Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 - {0x16FE0, 0x16FE1, prOLetter}, // Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK - {0x16FE3, 0x16FE3, prOLetter}, // Lm OLD CHINESE ITERATION MARK - {0x16FE4, 0x16FE4, prExtend}, // Mn KHITAN SMALL SCRIPT FILLER - {0x16FF0, 0x16FF1, prExtend}, // Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY - {0x17000, 0x187F7, prOLetter}, // Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 - {0x18800, 0x18CD5, prOLetter}, // Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5 - {0x18D00, 0x18D08, prOLetter}, // Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08 - {0x1AFF0, 0x1AFF3, prOLetter}, // Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 - {0x1AFF5, 0x1AFFB, prOLetter}, // Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 - {0x1AFFD, 0x1AFFE, prOLetter}, // Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 - {0x1B000, 0x1B122, prOLetter}, // Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU - {0x1B132, 0x1B132, prOLetter}, // Lo HIRAGANA LETTER SMALL KO - {0x1B150, 0x1B152, prOLetter}, // Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO - {0x1B155, 0x1B155, prOLetter}, // Lo KATAKANA LETTER SMALL KO - {0x1B164, 0x1B167, prOLetter}, // Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N - {0x1B170, 0x1B2FB, prOLetter}, // Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB - {0x1BC00, 0x1BC6A, prOLetter}, // Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M - {0x1BC70, 0x1BC7C, prOLetter}, // Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK - {0x1BC80, 0x1BC88, prOLetter}, // Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL - {0x1BC90, 0x1BC99, prOLetter}, // Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW - {0x1BC9D, 0x1BC9E, prExtend}, // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK - {0x1BC9F, 0x1BC9F, prSTerm}, // Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP - {0x1BCA0, 0x1BCA3, prFormat}, // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP - {0x1CF00, 0x1CF2D, prExtend}, // Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT - {0x1CF30, 0x1CF46, prExtend}, // Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG - {0x1D165, 0x1D166, prExtend}, // Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM - {0x1D167, 0x1D169, prExtend}, // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 - {0x1D16D, 0x1D172, prExtend}, // Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 - {0x1D173, 0x1D17A, prFormat}, // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE - {0x1D17B, 0x1D182, prExtend}, // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE - {0x1D185, 0x1D18B, prExtend}, // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE - {0x1D1AA, 0x1D1AD, prExtend}, // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO - {0x1D242, 0x1D244, prExtend}, // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME - {0x1D400, 0x1D419, prUpper}, // L& [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z - {0x1D41A, 0x1D433, prLower}, // L& [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z - {0x1D434, 0x1D44D, prUpper}, // L& [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z - {0x1D44E, 0x1D454, prLower}, // L& [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G - {0x1D456, 0x1D467, prLower}, // L& [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z - {0x1D468, 0x1D481, prUpper}, // L& [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z - {0x1D482, 0x1D49B, prLower}, // L& [26] MATHEMATICAL BOLD ITALIC SMALL A..MATHEMATICAL BOLD ITALIC SMALL Z - {0x1D49C, 0x1D49C, prUpper}, // L& MATHEMATICAL SCRIPT CAPITAL A - {0x1D49E, 0x1D49F, prUpper}, // L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D - {0x1D4A2, 0x1D4A2, prUpper}, // L& MATHEMATICAL SCRIPT CAPITAL G - {0x1D4A5, 0x1D4A6, prUpper}, // L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K - {0x1D4A9, 0x1D4AC, prUpper}, // L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q - {0x1D4AE, 0x1D4B5, prUpper}, // L& [8] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT CAPITAL Z - {0x1D4B6, 0x1D4B9, prLower}, // L& [4] MATHEMATICAL SCRIPT SMALL A..MATHEMATICAL SCRIPT SMALL D - {0x1D4BB, 0x1D4BB, prLower}, // L& MATHEMATICAL SCRIPT SMALL F - {0x1D4BD, 0x1D4C3, prLower}, // L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N - {0x1D4C5, 0x1D4CF, prLower}, // L& [11] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL SCRIPT SMALL Z - {0x1D4D0, 0x1D4E9, prUpper}, // L& [26] MATHEMATICAL BOLD SCRIPT CAPITAL A..MATHEMATICAL BOLD SCRIPT CAPITAL Z - {0x1D4EA, 0x1D503, prLower}, // L& [26] MATHEMATICAL BOLD SCRIPT SMALL A..MATHEMATICAL BOLD SCRIPT SMALL Z - {0x1D504, 0x1D505, prUpper}, // L& [2] MATHEMATICAL FRAKTUR CAPITAL A..MATHEMATICAL FRAKTUR CAPITAL B - {0x1D507, 0x1D50A, prUpper}, // L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G - {0x1D50D, 0x1D514, prUpper}, // L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q - {0x1D516, 0x1D51C, prUpper}, // L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y - {0x1D51E, 0x1D537, prLower}, // L& [26] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL FRAKTUR SMALL Z - {0x1D538, 0x1D539, prUpper}, // L& [2] MATHEMATICAL DOUBLE-STRUCK CAPITAL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B - {0x1D53B, 0x1D53E, prUpper}, // L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G - {0x1D540, 0x1D544, prUpper}, // L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M - {0x1D546, 0x1D546, prUpper}, // L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O - {0x1D54A, 0x1D550, prUpper}, // L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y - {0x1D552, 0x1D56B, prLower}, // L& [26] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL DOUBLE-STRUCK SMALL Z - {0x1D56C, 0x1D585, prUpper}, // L& [26] MATHEMATICAL BOLD FRAKTUR CAPITAL A..MATHEMATICAL BOLD FRAKTUR CAPITAL Z - {0x1D586, 0x1D59F, prLower}, // L& [26] MATHEMATICAL BOLD FRAKTUR SMALL A..MATHEMATICAL BOLD FRAKTUR SMALL Z - {0x1D5A0, 0x1D5B9, prUpper}, // L& [26] MATHEMATICAL SANS-SERIF CAPITAL A..MATHEMATICAL SANS-SERIF CAPITAL Z - {0x1D5BA, 0x1D5D3, prLower}, // L& [26] MATHEMATICAL SANS-SERIF SMALL A..MATHEMATICAL SANS-SERIF SMALL Z - {0x1D5D4, 0x1D5ED, prUpper}, // L& [26] MATHEMATICAL SANS-SERIF BOLD CAPITAL A..MATHEMATICAL SANS-SERIF BOLD CAPITAL Z - {0x1D5EE, 0x1D607, prLower}, // L& [26] MATHEMATICAL SANS-SERIF BOLD SMALL A..MATHEMATICAL SANS-SERIF BOLD SMALL Z - {0x1D608, 0x1D621, prUpper}, // L& [26] MATHEMATICAL SANS-SERIF ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z - {0x1D622, 0x1D63B, prLower}, // L& [26] MATHEMATICAL SANS-SERIF ITALIC SMALL A..MATHEMATICAL SANS-SERIF ITALIC SMALL Z - {0x1D63C, 0x1D655, prUpper}, // L& [26] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z - {0x1D656, 0x1D66F, prLower}, // L& [26] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z - {0x1D670, 0x1D689, prUpper}, // L& [26] MATHEMATICAL MONOSPACE CAPITAL A..MATHEMATICAL MONOSPACE CAPITAL Z - {0x1D68A, 0x1D6A5, prLower}, // L& [28] MATHEMATICAL MONOSPACE SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J - {0x1D6A8, 0x1D6C0, prUpper}, // L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA - {0x1D6C2, 0x1D6DA, prLower}, // L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA - {0x1D6DC, 0x1D6E1, prLower}, // L& [6] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL BOLD PI SYMBOL - {0x1D6E2, 0x1D6FA, prUpper}, // L& [25] MATHEMATICAL ITALIC CAPITAL ALPHA..MATHEMATICAL ITALIC CAPITAL OMEGA - {0x1D6FC, 0x1D714, prLower}, // L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA - {0x1D716, 0x1D71B, prLower}, // L& [6] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL ITALIC PI SYMBOL - {0x1D71C, 0x1D734, prUpper}, // L& [25] MATHEMATICAL BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA - {0x1D736, 0x1D74E, prLower}, // L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA - {0x1D750, 0x1D755, prLower}, // L& [6] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC PI SYMBOL - {0x1D756, 0x1D76E, prUpper}, // L& [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA - {0x1D770, 0x1D788, prLower}, // L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA - {0x1D78A, 0x1D78F, prLower}, // L& [6] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD PI SYMBOL - {0x1D790, 0x1D7A8, prUpper}, // L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA - {0x1D7AA, 0x1D7C2, prLower}, // L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA - {0x1D7C4, 0x1D7C9, prLower}, // L& [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL - {0x1D7CA, 0x1D7CA, prUpper}, // L& MATHEMATICAL BOLD CAPITAL DIGAMMA - {0x1D7CB, 0x1D7CB, prLower}, // L& MATHEMATICAL BOLD SMALL DIGAMMA - {0x1D7CE, 0x1D7FF, prNumeric}, // Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE - {0x1DA00, 0x1DA36, prExtend}, // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN - {0x1DA3B, 0x1DA6C, prExtend}, // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT - {0x1DA75, 0x1DA75, prExtend}, // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS - {0x1DA84, 0x1DA84, prExtend}, // Mn SIGNWRITING LOCATION HEAD NECK - {0x1DA88, 0x1DA88, prSTerm}, // Po SIGNWRITING FULL STOP - {0x1DA9B, 0x1DA9F, prExtend}, // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 - {0x1DAA1, 0x1DAAF, prExtend}, // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 - {0x1DF00, 0x1DF09, prLower}, // L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK - {0x1DF0A, 0x1DF0A, prOLetter}, // Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK - {0x1DF0B, 0x1DF1E, prLower}, // L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL - {0x1DF25, 0x1DF2A, prLower}, // L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK - {0x1E000, 0x1E006, prExtend}, // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE - {0x1E008, 0x1E018, prExtend}, // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU - {0x1E01B, 0x1E021, prExtend}, // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI - {0x1E023, 0x1E024, prExtend}, // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS - {0x1E026, 0x1E02A, prExtend}, // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA - {0x1E030, 0x1E06D, prLower}, // Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE - {0x1E08F, 0x1E08F, prExtend}, // Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - {0x1E100, 0x1E12C, prOLetter}, // Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W - {0x1E130, 0x1E136, prExtend}, // Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D - {0x1E137, 0x1E13D, prOLetter}, // Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER - {0x1E140, 0x1E149, prNumeric}, // Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE - {0x1E14E, 0x1E14E, prOLetter}, // Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ - {0x1E290, 0x1E2AD, prOLetter}, // Lo [30] TOTO LETTER PA..TOTO LETTER A - {0x1E2AE, 0x1E2AE, prExtend}, // Mn TOTO SIGN RISING TONE - {0x1E2C0, 0x1E2EB, prOLetter}, // Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH - {0x1E2EC, 0x1E2EF, prExtend}, // Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI - {0x1E2F0, 0x1E2F9, prNumeric}, // Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE - {0x1E4D0, 0x1E4EA, prOLetter}, // Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL - {0x1E4EB, 0x1E4EB, prOLetter}, // Lm NAG MUNDARI SIGN OJOD - {0x1E4EC, 0x1E4EF, prExtend}, // Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH - {0x1E4F0, 0x1E4F9, prNumeric}, // Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE - {0x1E7E0, 0x1E7E6, prOLetter}, // Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO - {0x1E7E8, 0x1E7EB, prOLetter}, // Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE - {0x1E7ED, 0x1E7EE, prOLetter}, // Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE - {0x1E7F0, 0x1E7FE, prOLetter}, // Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE - {0x1E800, 0x1E8C4, prOLetter}, // Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON - {0x1E8D0, 0x1E8D6, prExtend}, // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS - {0x1E900, 0x1E921, prUpper}, // L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA - {0x1E922, 0x1E943, prLower}, // L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA - {0x1E944, 0x1E94A, prExtend}, // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA - {0x1E94B, 0x1E94B, prOLetter}, // Lm ADLAM NASALIZATION MARK - {0x1E950, 0x1E959, prNumeric}, // Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE - {0x1EE00, 0x1EE03, prOLetter}, // Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL - {0x1EE05, 0x1EE1F, prOLetter}, // Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF - {0x1EE21, 0x1EE22, prOLetter}, // Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM - {0x1EE24, 0x1EE24, prOLetter}, // Lo ARABIC MATHEMATICAL INITIAL HEH - {0x1EE27, 0x1EE27, prOLetter}, // Lo ARABIC MATHEMATICAL INITIAL HAH - {0x1EE29, 0x1EE32, prOLetter}, // Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF - {0x1EE34, 0x1EE37, prOLetter}, // Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH - {0x1EE39, 0x1EE39, prOLetter}, // Lo ARABIC MATHEMATICAL INITIAL DAD - {0x1EE3B, 0x1EE3B, prOLetter}, // Lo ARABIC MATHEMATICAL INITIAL GHAIN - {0x1EE42, 0x1EE42, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED JEEM - {0x1EE47, 0x1EE47, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED HAH - {0x1EE49, 0x1EE49, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED YEH - {0x1EE4B, 0x1EE4B, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED LAM - {0x1EE4D, 0x1EE4F, prOLetter}, // Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN - {0x1EE51, 0x1EE52, prOLetter}, // Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF - {0x1EE54, 0x1EE54, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED SHEEN - {0x1EE57, 0x1EE57, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED KHAH - {0x1EE59, 0x1EE59, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED DAD - {0x1EE5B, 0x1EE5B, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED GHAIN - {0x1EE5D, 0x1EE5D, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON - {0x1EE5F, 0x1EE5F, prOLetter}, // Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF - {0x1EE61, 0x1EE62, prOLetter}, // Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM - {0x1EE64, 0x1EE64, prOLetter}, // Lo ARABIC MATHEMATICAL STRETCHED HEH - {0x1EE67, 0x1EE6A, prOLetter}, // Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF - {0x1EE6C, 0x1EE72, prOLetter}, // Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF - {0x1EE74, 0x1EE77, prOLetter}, // Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH - {0x1EE79, 0x1EE7C, prOLetter}, // Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH - {0x1EE7E, 0x1EE7E, prOLetter}, // Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH - {0x1EE80, 0x1EE89, prOLetter}, // Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH - {0x1EE8B, 0x1EE9B, prOLetter}, // Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN - {0x1EEA1, 0x1EEA3, prOLetter}, // Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL - {0x1EEA5, 0x1EEA9, prOLetter}, // Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH - {0x1EEAB, 0x1EEBB, prOLetter}, // Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN - {0x1F130, 0x1F149, prUpper}, // So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z - {0x1F150, 0x1F169, prUpper}, // So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z - {0x1F170, 0x1F189, prUpper}, // So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z - {0x1F676, 0x1F678, prClose}, // So [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT - {0x1FBF0, 0x1FBF9, prNumeric}, // Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE - {0x20000, 0x2A6DF, prOLetter}, // Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF - {0x2A700, 0x2B739, prOLetter}, // Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 - {0x2B740, 0x2B81D, prOLetter}, // Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D - {0x2B820, 0x2CEA1, prOLetter}, // Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 - {0x2CEB0, 0x2EBE0, prOLetter}, // Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 - {0x2F800, 0x2FA1D, prOLetter}, // Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D - {0x30000, 0x3134A, prOLetter}, // Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A - {0x31350, 0x323AF, prOLetter}, // Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF - {0xE0001, 0xE0001, prFormat}, // Cf LANGUAGE TAG - {0xE0020, 0xE007F, prExtend}, // Cf [96] TAG SPACE..CANCEL TAG - {0xE0100, 0xE01EF, prExtend}, // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -} diff --git a/vendor/github.com/rivo/uniseg/sentencerules.go b/vendor/github.com/rivo/uniseg/sentencerules.go deleted file mode 100644 index 0b29c7b..0000000 --- a/vendor/github.com/rivo/uniseg/sentencerules.go +++ /dev/null @@ -1,276 +0,0 @@ -package uniseg - -import "unicode/utf8" - -// The states of the sentence break parser. -const ( - sbAny = iota - sbCR - sbParaSep - sbATerm - sbUpper - sbLower - sbSB7 - sbSB8Close - sbSB8Sp - sbSTerm - sbSB8aClose - sbSB8aSp -) - -// sbTransitions implements the sentence break parser's state transitions. It's -// anologous to [grTransitions], see comments there for details. -// -// Unicode version 15.0.0. -func sbTransitions(state, prop int) (newState int, sentenceBreak bool, rule int) { - switch uint64(state) | uint64(prop)<<32 { - // SB3. - case sbAny | prCR<<32: - return sbCR, false, 9990 - case sbCR | prLF<<32: - return sbParaSep, false, 30 - - // SB4. - case sbAny | prSep<<32: - return sbParaSep, false, 9990 - case sbAny | prLF<<32: - return sbParaSep, false, 9990 - case sbParaSep | prAny<<32: - return sbAny, true, 40 - case sbCR | prAny<<32: - return sbAny, true, 40 - - // SB6. - case sbAny | prATerm<<32: - return sbATerm, false, 9990 - case sbATerm | prNumeric<<32: - return sbAny, false, 60 - case sbSB7 | prNumeric<<32: - return sbAny, false, 60 // Because ATerm also appears in SB7. - - // SB7. - case sbAny | prUpper<<32: - return sbUpper, false, 9990 - case sbAny | prLower<<32: - return sbLower, false, 9990 - case sbUpper | prATerm<<32: - return sbSB7, false, 70 - case sbLower | prATerm<<32: - return sbSB7, false, 70 - case sbSB7 | prUpper<<32: - return sbUpper, false, 70 - - // SB8a. - case sbAny | prSTerm<<32: - return sbSTerm, false, 9990 - case sbATerm | prSContinue<<32: - return sbAny, false, 81 - case sbATerm | prATerm<<32: - return sbATerm, false, 81 - case sbATerm | prSTerm<<32: - return sbSTerm, false, 81 - case sbSB7 | prSContinue<<32: - return sbAny, false, 81 - case sbSB7 | prATerm<<32: - return sbATerm, false, 81 - case sbSB7 | prSTerm<<32: - return sbSTerm, false, 81 - case sbSB8Close | prSContinue<<32: - return sbAny, false, 81 - case sbSB8Close | prATerm<<32: - return sbATerm, false, 81 - case sbSB8Close | prSTerm<<32: - return sbSTerm, false, 81 - case sbSB8Sp | prSContinue<<32: - return sbAny, false, 81 - case sbSB8Sp | prATerm<<32: - return sbATerm, false, 81 - case sbSB8Sp | prSTerm<<32: - return sbSTerm, false, 81 - case sbSTerm | prSContinue<<32: - return sbAny, false, 81 - case sbSTerm | prATerm<<32: - return sbATerm, false, 81 - case sbSTerm | prSTerm<<32: - return sbSTerm, false, 81 - case sbSB8aClose | prSContinue<<32: - return sbAny, false, 81 - case sbSB8aClose | prATerm<<32: - return sbATerm, false, 81 - case sbSB8aClose | prSTerm<<32: - return sbSTerm, false, 81 - case sbSB8aSp | prSContinue<<32: - return sbAny, false, 81 - case sbSB8aSp | prATerm<<32: - return sbATerm, false, 81 - case sbSB8aSp | prSTerm<<32: - return sbSTerm, false, 81 - - // SB9. - case sbATerm | prClose<<32: - return sbSB8Close, false, 90 - case sbSB7 | prClose<<32: - return sbSB8Close, false, 90 - case sbSB8Close | prClose<<32: - return sbSB8Close, false, 90 - case sbATerm | prSp<<32: - return sbSB8Sp, false, 90 - case sbSB7 | prSp<<32: - return sbSB8Sp, false, 90 - case sbSB8Close | prSp<<32: - return sbSB8Sp, false, 90 - case sbSTerm | prClose<<32: - return sbSB8aClose, false, 90 - case sbSB8aClose | prClose<<32: - return sbSB8aClose, false, 90 - case sbSTerm | prSp<<32: - return sbSB8aSp, false, 90 - case sbSB8aClose | prSp<<32: - return sbSB8aSp, false, 90 - case sbATerm | prSep<<32: - return sbParaSep, false, 90 - case sbATerm | prCR<<32: - return sbParaSep, false, 90 - case sbATerm | prLF<<32: - return sbParaSep, false, 90 - case sbSB7 | prSep<<32: - return sbParaSep, false, 90 - case sbSB7 | prCR<<32: - return sbParaSep, false, 90 - case sbSB7 | prLF<<32: - return sbParaSep, false, 90 - case sbSB8Close | prSep<<32: - return sbParaSep, false, 90 - case sbSB8Close | prCR<<32: - return sbParaSep, false, 90 - case sbSB8Close | prLF<<32: - return sbParaSep, false, 90 - case sbSTerm | prSep<<32: - return sbParaSep, false, 90 - case sbSTerm | prCR<<32: - return sbParaSep, false, 90 - case sbSTerm | prLF<<32: - return sbParaSep, false, 90 - case sbSB8aClose | prSep<<32: - return sbParaSep, false, 90 - case sbSB8aClose | prCR<<32: - return sbParaSep, false, 90 - case sbSB8aClose | prLF<<32: - return sbParaSep, false, 90 - - // SB10. - case sbSB8Sp | prSp<<32: - return sbSB8Sp, false, 100 - case sbSB8aSp | prSp<<32: - return sbSB8aSp, false, 100 - case sbSB8Sp | prSep<<32: - return sbParaSep, false, 100 - case sbSB8Sp | prCR<<32: - return sbParaSep, false, 100 - case sbSB8Sp | prLF<<32: - return sbParaSep, false, 100 - - // SB11. - case sbATerm | prAny<<32: - return sbAny, true, 110 - case sbSB7 | prAny<<32: - return sbAny, true, 110 - case sbSB8Close | prAny<<32: - return sbAny, true, 110 - case sbSB8Sp | prAny<<32: - return sbAny, true, 110 - case sbSTerm | prAny<<32: - return sbAny, true, 110 - case sbSB8aClose | prAny<<32: - return sbAny, true, 110 - case sbSB8aSp | prAny<<32: - return sbAny, true, 110 - // We'll always break after ParaSep due to SB4. - - default: - return -1, false, -1 - } -} - -// transitionSentenceBreakState determines the new state of the sentence break -// parser given the current state and the next code point. It also returns -// whether a sentence boundary was detected. If more than one code point is -// needed to determine the new state, the byte slice or the string starting -// after rune "r" can be used (whichever is not nil or empty) for further -// lookups. -func transitionSentenceBreakState(state int, r rune, b []byte, str string) (newState int, sentenceBreak bool) { - // Determine the property of the next character. - nextProperty := property(sentenceBreakCodePoints, r) - - // SB5 (Replacing Ignore Rules). - if nextProperty == prExtend || nextProperty == prFormat { - if state == sbParaSep || state == sbCR { - return sbAny, true // Make sure we don't apply SB5 to SB3 or SB4. - } - if state < 0 { - return sbAny, true // SB1. - } - return state, false - } - - // Find the applicable transition in the table. - var rule int - newState, sentenceBreak, rule = sbTransitions(state, nextProperty) - if newState < 0 { - // No specific transition found. Try the less specific ones. - anyPropState, anyPropProp, anyPropRule := sbTransitions(state, prAny) - anyStateState, anyStateProp, anyStateRule := sbTransitions(sbAny, nextProperty) - if anyPropState >= 0 && anyStateState >= 0 { - // Both apply. We'll use a mix (see comments for grTransitions). - newState, sentenceBreak, rule = anyStateState, anyStateProp, anyStateRule - if anyPropRule < anyStateRule { - sentenceBreak, rule = anyPropProp, anyPropRule - } - } else if anyPropState >= 0 { - // We only have a specific state. - newState, sentenceBreak, rule = anyPropState, anyPropProp, anyPropRule - // This branch will probably never be reached because okAnyState will - // always be true given the current transition map. But we keep it here - // for future modifications to the transition map where this may not be - // true anymore. - } else if anyStateState >= 0 { - // We only have a specific property. - newState, sentenceBreak, rule = anyStateState, anyStateProp, anyStateRule - } else { - // No known transition. SB999: Any × Any. - newState, sentenceBreak, rule = sbAny, false, 9990 - } - } - - // SB8. - if rule > 80 && (state == sbATerm || state == sbSB8Close || state == sbSB8Sp || state == sbSB7) { - // Check the right side of the rule. - var length int - for nextProperty != prOLetter && - nextProperty != prUpper && - nextProperty != prLower && - nextProperty != prSep && - nextProperty != prCR && - nextProperty != prLF && - nextProperty != prATerm && - nextProperty != prSTerm { - // Move on to the next rune. - if b != nil { // Byte slice version. - r, length = utf8.DecodeRune(b) - b = b[length:] - } else { // String version. - r, length = utf8.DecodeRuneInString(str) - str = str[length:] - } - if r == utf8.RuneError { - break - } - nextProperty = property(sentenceBreakCodePoints, r) - } - if nextProperty == prLower { - return sbLower, false - } - } - - return -} diff --git a/vendor/github.com/rivo/uniseg/step.go b/vendor/github.com/rivo/uniseg/step.go deleted file mode 100644 index 9b72c5e..0000000 --- a/vendor/github.com/rivo/uniseg/step.go +++ /dev/null @@ -1,242 +0,0 @@ -package uniseg - -import "unicode/utf8" - -// The bit masks used to extract boundary information returned by [Step]. -const ( - MaskLine = 3 - MaskWord = 4 - MaskSentence = 8 -) - -// The number of bits to shift the boundary information returned by [Step] to -// obtain the monospace width of the grapheme cluster. -const ShiftWidth = 4 - -// The bit positions by which boundary flags are shifted by the [Step] function. -// These must correspond to the Mask constants. -const ( - shiftWord = 2 - shiftSentence = 3 - // shiftwWidth is ShiftWidth above. No mask as these are always the remaining bits. -) - -// The bit positions by which states are shifted by the [Step] function. These -// values must ensure state values defined for each of the boundary algorithms -// don't overlap (and that they all still fit in a single int). These must -// correspond to the Mask constants. -const ( - shiftWordState = 4 - shiftSentenceState = 9 - shiftLineState = 13 - shiftPropState = 21 // No mask as these are always the remaining bits. -) - -// The bit mask used to extract the state returned by the [Step] function, after -// shifting. These values must correspond to the shift constants. -const ( - maskGraphemeState = 0xf - maskWordState = 0x1f - maskSentenceState = 0xf - maskLineState = 0xff -) - -// Step returns the first grapheme cluster (user-perceived character) found in -// the given byte slice. It also returns information about the boundary between -// that grapheme cluster and the one following it as well as the monospace width -// of the grapheme cluster. There are three types of boundary information: word -// boundaries, sentence boundaries, and line breaks. This function is therefore -// a combination of [FirstGraphemeCluster], [FirstWord], [FirstSentence], and -// [FirstLineSegment]. -// -// The "boundaries" return value can be evaluated as follows: -// -// - boundaries&MaskWord != 0: The boundary is a word boundary. -// - boundaries&MaskWord == 0: The boundary is not a word boundary. -// - boundaries&MaskSentence != 0: The boundary is a sentence boundary. -// - boundaries&MaskSentence == 0: The boundary is not a sentence boundary. -// - boundaries&MaskLine == LineDontBreak: You must not break the line at the -// boundary. -// - boundaries&MaskLine == LineMustBreak: You must break the line at the -// boundary. -// - boundaries&MaskLine == LineCanBreak: You may or may not break the line at -// the boundary. -// - boundaries >> ShiftWidth: The width of the grapheme cluster for most -// monospace fonts where a value of 1 represents one character cell. -// -// This function can be called continuously to extract all grapheme clusters -// from a byte slice, as illustrated in the examples below. -// -// If you don't know which state to pass, for example when calling the function -// for the first time, you must pass -1. For consecutive calls, pass the state -// and rest slice returned by the previous call. -// -// The "rest" slice is the sub-slice of the original byte slice "b" starting -// after the last byte of the identified grapheme cluster. If the length of the -// "rest" slice is 0, the entire byte slice "b" has been processed. The -// "cluster" byte slice is the sub-slice of the input slice containing the -// first identified grapheme cluster. -// -// Given an empty byte slice "b", the function returns nil values. -// -// While slightly less convenient than using the Graphemes class, this function -// has much better performance and makes no allocations. It lends itself well to -// large byte slices. -// -// Note that in accordance with [UAX #14 LB3], the final segment will end with -// a mandatory line break (boundaries&MaskLine == LineMustBreak). You can choose -// to ignore this by checking if the length of the "rest" slice is 0 and calling -// [HasTrailingLineBreak] or [HasTrailingLineBreakInString] on the last rune. -// -// [UAX #14 LB3]: https://www.unicode.org/reports/tr14/#Algorithm -func Step(b []byte, state int) (cluster, rest []byte, boundaries int, newState int) { - // An empty byte slice returns nothing. - if len(b) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRune(b) - if len(b) <= length { // If we're already past the end, there is nothing else to parse. - var prop int - if state < 0 { - prop = propertyGraphemes(r) - } else { - prop = state >> shiftPropState - } - return b, nil, LineMustBreak | (1 << shiftWord) | (1 << shiftSentence) | (runeWidth(r, prop) << ShiftWidth), grAny | (wbAny << shiftWordState) | (sbAny << shiftSentenceState) | (lbAny << shiftLineState) | (prop << shiftPropState) - } - - // If we don't know the state, determine it now. - var graphemeState, wordState, sentenceState, lineState, firstProp int - remainder := b[length:] - if state < 0 { - graphemeState, firstProp, _ = transitionGraphemeState(state, r) - wordState, _ = transitionWordBreakState(state, r, remainder, "") - sentenceState, _ = transitionSentenceBreakState(state, r, remainder, "") - lineState, _ = transitionLineBreakState(state, r, remainder, "") - } else { - graphemeState = state & maskGraphemeState - wordState = (state >> shiftWordState) & maskWordState - sentenceState = (state >> shiftSentenceState) & maskSentenceState - lineState = (state >> shiftLineState) & maskLineState - firstProp = state >> shiftPropState - } - - // Transition until we find a grapheme cluster boundary. - width := runeWidth(r, firstProp) - for { - var ( - graphemeBoundary, wordBoundary, sentenceBoundary bool - lineBreak, prop int - ) - - r, l := utf8.DecodeRune(remainder) - remainder = b[length+l:] - - graphemeState, prop, graphemeBoundary = transitionGraphemeState(graphemeState, r) - wordState, wordBoundary = transitionWordBreakState(wordState, r, remainder, "") - sentenceState, sentenceBoundary = transitionSentenceBreakState(sentenceState, r, remainder, "") - lineState, lineBreak = transitionLineBreakState(lineState, r, remainder, "") - - if graphemeBoundary { - boundary := lineBreak | (width << ShiftWidth) - if wordBoundary { - boundary |= 1 << shiftWord - } - if sentenceBoundary { - boundary |= 1 << shiftSentence - } - return b[:length], b[length:], boundary, graphemeState | (wordState << shiftWordState) | (sentenceState << shiftSentenceState) | (lineState << shiftLineState) | (prop << shiftPropState) - } - - if firstProp == prExtendedPictographic { - if r == vs15 { - width = 1 - } else if r == vs16 { - width = 2 - } - } else if firstProp != prRegionalIndicator && firstProp != prL { - width += runeWidth(r, prop) - } - - length += l - if len(b) <= length { - return b, nil, LineMustBreak | (1 << shiftWord) | (1 << shiftSentence) | (width << ShiftWidth), grAny | (wbAny << shiftWordState) | (sbAny << shiftSentenceState) | (lbAny << shiftLineState) | (prop << shiftPropState) - } - } -} - -// StepString is like [Step] but its input and outputs are strings. -func StepString(str string, state int) (cluster, rest string, boundaries int, newState int) { - // An empty byte slice returns nothing. - if len(str) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRuneInString(str) - if len(str) <= length { // If we're already past the end, there is nothing else to parse. - prop := propertyGraphemes(r) - return str, "", LineMustBreak | (1 << shiftWord) | (1 << shiftSentence) | (runeWidth(r, prop) << ShiftWidth), grAny | (wbAny << shiftWordState) | (sbAny << shiftSentenceState) | (lbAny << shiftLineState) - } - - // If we don't know the state, determine it now. - var graphemeState, wordState, sentenceState, lineState, firstProp int - remainder := str[length:] - if state < 0 { - graphemeState, firstProp, _ = transitionGraphemeState(state, r) - wordState, _ = transitionWordBreakState(state, r, nil, remainder) - sentenceState, _ = transitionSentenceBreakState(state, r, nil, remainder) - lineState, _ = transitionLineBreakState(state, r, nil, remainder) - } else { - graphemeState = state & maskGraphemeState - wordState = (state >> shiftWordState) & maskWordState - sentenceState = (state >> shiftSentenceState) & maskSentenceState - lineState = (state >> shiftLineState) & maskLineState - firstProp = state >> shiftPropState - } - - // Transition until we find a grapheme cluster boundary. - width := runeWidth(r, firstProp) - for { - var ( - graphemeBoundary, wordBoundary, sentenceBoundary bool - lineBreak, prop int - ) - - r, l := utf8.DecodeRuneInString(remainder) - remainder = str[length+l:] - - graphemeState, prop, graphemeBoundary = transitionGraphemeState(graphemeState, r) - wordState, wordBoundary = transitionWordBreakState(wordState, r, nil, remainder) - sentenceState, sentenceBoundary = transitionSentenceBreakState(sentenceState, r, nil, remainder) - lineState, lineBreak = transitionLineBreakState(lineState, r, nil, remainder) - - if graphemeBoundary { - boundary := lineBreak | (width << ShiftWidth) - if wordBoundary { - boundary |= 1 << shiftWord - } - if sentenceBoundary { - boundary |= 1 << shiftSentence - } - return str[:length], str[length:], boundary, graphemeState | (wordState << shiftWordState) | (sentenceState << shiftSentenceState) | (lineState << shiftLineState) | (prop << shiftPropState) - } - - if firstProp == prExtendedPictographic { - if r == vs15 { - width = 1 - } else if r == vs16 { - width = 2 - } - } else if firstProp != prRegionalIndicator && firstProp != prL { - width += runeWidth(r, prop) - } - - length += l - if len(str) <= length { - return str, "", LineMustBreak | (1 << shiftWord) | (1 << shiftSentence) | (width << ShiftWidth), grAny | (wbAny << shiftWordState) | (sbAny << shiftSentenceState) | (lbAny << shiftLineState) | (prop << shiftPropState) - } - } -} diff --git a/vendor/github.com/rivo/uniseg/width.go b/vendor/github.com/rivo/uniseg/width.go deleted file mode 100644 index 975a9f1..0000000 --- a/vendor/github.com/rivo/uniseg/width.go +++ /dev/null @@ -1,61 +0,0 @@ -package uniseg - -// EastAsianAmbiguousWidth specifies the monospace width for East Asian -// characters classified as Ambiguous. The default is 1 but some rare fonts -// render them with a width of 2. -var EastAsianAmbiguousWidth = 1 - -// runeWidth returns the monospace width for the given rune. The provided -// grapheme property is a value mapped by the [graphemeCodePoints] table. -// -// Every rune has a width of 1, except for runes with the following properties -// (evaluated in this order): -// -// - Control, CR, LF, Extend, ZWJ: Width of 0 -// - \u2e3a, TWO-EM DASH: Width of 3 -// - \u2e3b, THREE-EM DASH: Width of 4 -// - East-Asian width Fullwidth and Wide: Width of 2 (Ambiguous and Neutral -// have a width of 1) -// - Regional Indicator: Width of 2 -// - Extended Pictographic: Width of 2, unless Emoji Presentation is "No". -func runeWidth(r rune, graphemeProperty int) int { - switch graphemeProperty { - case prControl, prCR, prLF, prExtend, prZWJ: - return 0 - case prRegionalIndicator: - return 2 - case prExtendedPictographic: - if property(emojiPresentation, r) == prEmojiPresentation { - return 2 - } - return 1 - } - - switch r { - case 0x2e3a: - return 3 - case 0x2e3b: - return 4 - } - - switch propertyEastAsianWidth(r) { - case prW, prF: - return 2 - case prA: - return EastAsianAmbiguousWidth - } - - return 1 -} - -// StringWidth returns the monospace width for the given string, that is, the -// number of same-size cells to be occupied by the string. -func StringWidth(s string) (width int) { - state := -1 - for len(s) > 0 { - var w int - _, s, w, state = FirstGraphemeClusterInString(s, state) - width += w - } - return -} diff --git a/vendor/github.com/rivo/uniseg/word.go b/vendor/github.com/rivo/uniseg/word.go deleted file mode 100644 index 34fba7f..0000000 --- a/vendor/github.com/rivo/uniseg/word.go +++ /dev/null @@ -1,89 +0,0 @@ -package uniseg - -import "unicode/utf8" - -// FirstWord returns the first word found in the given byte slice according to -// the rules of [Unicode Standard Annex #29, Word Boundaries]. This function can -// be called continuously to extract all words from a byte slice, as illustrated -// in the example below. -// -// If you don't know the current state, for example when calling the function -// for the first time, you must pass -1. For consecutive calls, pass the state -// and rest slice returned by the previous call. -// -// The "rest" slice is the sub-slice of the original byte slice "b" starting -// after the last byte of the identified word. If the length of the "rest" slice -// is 0, the entire byte slice "b" has been processed. The "word" byte slice is -// the sub-slice of the input slice containing the identified word. -// -// Given an empty byte slice "b", the function returns nil values. -// -// [Unicode Standard Annex #29, Word Boundaries]: http://unicode.org/reports/tr29/#Word_Boundaries -func FirstWord(b []byte, state int) (word, rest []byte, newState int) { - // An empty byte slice returns nothing. - if len(b) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRune(b) - if len(b) <= length { // If we're already past the end, there is nothing else to parse. - return b, nil, wbAny - } - - // If we don't know the state, determine it now. - if state < 0 { - state, _ = transitionWordBreakState(state, r, b[length:], "") - } - - // Transition until we find a boundary. - var boundary bool - for { - r, l := utf8.DecodeRune(b[length:]) - state, boundary = transitionWordBreakState(state, r, b[length+l:], "") - - if boundary { - return b[:length], b[length:], state - } - - length += l - if len(b) <= length { - return b, nil, wbAny - } - } -} - -// FirstWordInString is like [FirstWord] but its input and outputs are strings. -func FirstWordInString(str string, state int) (word, rest string, newState int) { - // An empty byte slice returns nothing. - if len(str) == 0 { - return - } - - // Extract the first rune. - r, length := utf8.DecodeRuneInString(str) - if len(str) <= length { // If we're already past the end, there is nothing else to parse. - return str, "", wbAny - } - - // If we don't know the state, determine it now. - if state < 0 { - state, _ = transitionWordBreakState(state, r, nil, str[length:]) - } - - // Transition until we find a boundary. - var boundary bool - for { - r, l := utf8.DecodeRuneInString(str[length:]) - state, boundary = transitionWordBreakState(state, r, nil, str[length+l:]) - - if boundary { - return str[:length], str[length:], state - } - - length += l - if len(str) <= length { - return str, "", wbAny - } - } -} diff --git a/vendor/github.com/rivo/uniseg/wordproperties.go b/vendor/github.com/rivo/uniseg/wordproperties.go deleted file mode 100644 index 277ca10..0000000 --- a/vendor/github.com/rivo/uniseg/wordproperties.go +++ /dev/null @@ -1,1883 +0,0 @@ -// Code generated via go generate from gen_properties.go. DO NOT EDIT. - -package uniseg - -// workBreakCodePoints are taken from -// https://www.unicode.org/Public/15.0.0/ucd/auxiliary/WordBreakProperty.txt -// and -// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt -// ("Extended_Pictographic" only) -// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode -// license agreement. -var workBreakCodePoints = [][3]int{ - {0x000A, 0x000A, prLF}, // Cc - {0x000B, 0x000C, prNewline}, // Cc [2] .. - {0x000D, 0x000D, prCR}, // Cc - {0x0020, 0x0020, prWSegSpace}, // Zs SPACE - {0x0022, 0x0022, prDoubleQuote}, // Po QUOTATION MARK - {0x0027, 0x0027, prSingleQuote}, // Po APOSTROPHE - {0x002C, 0x002C, prMidNum}, // Po COMMA - {0x002E, 0x002E, prMidNumLet}, // Po FULL STOP - {0x0030, 0x0039, prNumeric}, // Nd [10] DIGIT ZERO..DIGIT NINE - {0x003A, 0x003A, prMidLetter}, // Po COLON - {0x003B, 0x003B, prMidNum}, // Po SEMICOLON - {0x0041, 0x005A, prALetter}, // L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z - {0x005F, 0x005F, prExtendNumLet}, // Pc LOW LINE - {0x0061, 0x007A, prALetter}, // L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z - {0x0085, 0x0085, prNewline}, // Cc - {0x00A9, 0x00A9, prExtendedPictographic}, // E0.6 [1] (©️) copyright - {0x00AA, 0x00AA, prALetter}, // Lo FEMININE ORDINAL INDICATOR - {0x00AD, 0x00AD, prFormat}, // Cf SOFT HYPHEN - {0x00AE, 0x00AE, prExtendedPictographic}, // E0.6 [1] (®️) registered - {0x00B5, 0x00B5, prALetter}, // L& MICRO SIGN - {0x00B7, 0x00B7, prMidLetter}, // Po MIDDLE DOT - {0x00BA, 0x00BA, prALetter}, // Lo MASCULINE ORDINAL INDICATOR - {0x00C0, 0x00D6, prALetter}, // L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS - {0x00D8, 0x00F6, prALetter}, // L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS - {0x00F8, 0x01BA, prALetter}, // L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL - {0x01BB, 0x01BB, prALetter}, // Lo LATIN LETTER TWO WITH STROKE - {0x01BC, 0x01BF, prALetter}, // L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN - {0x01C0, 0x01C3, prALetter}, // Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK - {0x01C4, 0x0293, prALetter}, // L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL - {0x0294, 0x0294, prALetter}, // Lo LATIN LETTER GLOTTAL STOP - {0x0295, 0x02AF, prALetter}, // L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL - {0x02B0, 0x02C1, prALetter}, // Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP - {0x02C2, 0x02C5, prALetter}, // Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD - {0x02C6, 0x02D1, prALetter}, // Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON - {0x02D2, 0x02D7, prALetter}, // Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN - {0x02DE, 0x02DF, prALetter}, // Sk [2] MODIFIER LETTER RHOTIC HOOK..MODIFIER LETTER CROSS ACCENT - {0x02E0, 0x02E4, prALetter}, // Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP - {0x02E5, 0x02EB, prALetter}, // Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK - {0x02EC, 0x02EC, prALetter}, // Lm MODIFIER LETTER VOICING - {0x02ED, 0x02ED, prALetter}, // Sk MODIFIER LETTER UNASPIRATED - {0x02EE, 0x02EE, prALetter}, // Lm MODIFIER LETTER DOUBLE APOSTROPHE - {0x02EF, 0x02FF, prALetter}, // Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW - {0x0300, 0x036F, prExtend}, // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X - {0x0370, 0x0373, prALetter}, // L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI - {0x0374, 0x0374, prALetter}, // Lm GREEK NUMERAL SIGN - {0x0376, 0x0377, prALetter}, // L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA - {0x037A, 0x037A, prALetter}, // Lm GREEK YPOGEGRAMMENI - {0x037B, 0x037D, prALetter}, // L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL - {0x037E, 0x037E, prMidNum}, // Po GREEK QUESTION MARK - {0x037F, 0x037F, prALetter}, // L& GREEK CAPITAL LETTER YOT - {0x0386, 0x0386, prALetter}, // L& GREEK CAPITAL LETTER ALPHA WITH TONOS - {0x0387, 0x0387, prMidLetter}, // Po GREEK ANO TELEIA - {0x0388, 0x038A, prALetter}, // L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS - {0x038C, 0x038C, prALetter}, // L& GREEK CAPITAL LETTER OMICRON WITH TONOS - {0x038E, 0x03A1, prALetter}, // L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO - {0x03A3, 0x03F5, prALetter}, // L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL - {0x03F7, 0x0481, prALetter}, // L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA - {0x0483, 0x0487, prExtend}, // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE - {0x0488, 0x0489, prExtend}, // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN - {0x048A, 0x052F, prALetter}, // L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER - {0x0531, 0x0556, prALetter}, // L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH - {0x0559, 0x0559, prALetter}, // Lm ARMENIAN MODIFIER LETTER LEFT HALF RING - {0x055A, 0x055C, prALetter}, // Po [3] ARMENIAN APOSTROPHE..ARMENIAN EXCLAMATION MARK - {0x055E, 0x055E, prALetter}, // Po ARMENIAN QUESTION MARK - {0x055F, 0x055F, prMidLetter}, // Po ARMENIAN ABBREVIATION MARK - {0x0560, 0x0588, prALetter}, // L& [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE - {0x0589, 0x0589, prMidNum}, // Po ARMENIAN FULL STOP - {0x058A, 0x058A, prALetter}, // Pd ARMENIAN HYPHEN - {0x0591, 0x05BD, prExtend}, // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG - {0x05BF, 0x05BF, prExtend}, // Mn HEBREW POINT RAFE - {0x05C1, 0x05C2, prExtend}, // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT - {0x05C4, 0x05C5, prExtend}, // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT - {0x05C7, 0x05C7, prExtend}, // Mn HEBREW POINT QAMATS QATAN - {0x05D0, 0x05EA, prHebrewLetter}, // Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV - {0x05EF, 0x05F2, prHebrewLetter}, // Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD - {0x05F3, 0x05F3, prALetter}, // Po HEBREW PUNCTUATION GERESH - {0x05F4, 0x05F4, prMidLetter}, // Po HEBREW PUNCTUATION GERSHAYIM - {0x0600, 0x0605, prFormat}, // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE - {0x060C, 0x060D, prMidNum}, // Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR - {0x0610, 0x061A, prExtend}, // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA - {0x061C, 0x061C, prFormat}, // Cf ARABIC LETTER MARK - {0x0620, 0x063F, prALetter}, // Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE - {0x0640, 0x0640, prALetter}, // Lm ARABIC TATWEEL - {0x0641, 0x064A, prALetter}, // Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH - {0x064B, 0x065F, prExtend}, // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW - {0x0660, 0x0669, prNumeric}, // Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE - {0x066B, 0x066B, prNumeric}, // Po ARABIC DECIMAL SEPARATOR - {0x066C, 0x066C, prMidNum}, // Po ARABIC THOUSANDS SEPARATOR - {0x066E, 0x066F, prALetter}, // Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF - {0x0670, 0x0670, prExtend}, // Mn ARABIC LETTER SUPERSCRIPT ALEF - {0x0671, 0x06D3, prALetter}, // Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE - {0x06D5, 0x06D5, prALetter}, // Lo ARABIC LETTER AE - {0x06D6, 0x06DC, prExtend}, // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN - {0x06DD, 0x06DD, prFormat}, // Cf ARABIC END OF AYAH - {0x06DF, 0x06E4, prExtend}, // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA - {0x06E5, 0x06E6, prALetter}, // Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH - {0x06E7, 0x06E8, prExtend}, // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON - {0x06EA, 0x06ED, prExtend}, // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM - {0x06EE, 0x06EF, prALetter}, // Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V - {0x06F0, 0x06F9, prNumeric}, // Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE - {0x06FA, 0x06FC, prALetter}, // Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW - {0x06FF, 0x06FF, prALetter}, // Lo ARABIC LETTER HEH WITH INVERTED V - {0x070F, 0x070F, prFormat}, // Cf SYRIAC ABBREVIATION MARK - {0x0710, 0x0710, prALetter}, // Lo SYRIAC LETTER ALAPH - {0x0711, 0x0711, prExtend}, // Mn SYRIAC LETTER SUPERSCRIPT ALAPH - {0x0712, 0x072F, prALetter}, // Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH - {0x0730, 0x074A, prExtend}, // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH - {0x074D, 0x07A5, prALetter}, // Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU - {0x07A6, 0x07B0, prExtend}, // Mn [11] THAANA ABAFILI..THAANA SUKUN - {0x07B1, 0x07B1, prALetter}, // Lo THAANA LETTER NAA - {0x07C0, 0x07C9, prNumeric}, // Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE - {0x07CA, 0x07EA, prALetter}, // Lo [33] NKO LETTER A..NKO LETTER JONA RA - {0x07EB, 0x07F3, prExtend}, // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE - {0x07F4, 0x07F5, prALetter}, // Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE - {0x07F8, 0x07F8, prMidNum}, // Po NKO COMMA - {0x07FA, 0x07FA, prALetter}, // Lm NKO LAJANYALAN - {0x07FD, 0x07FD, prExtend}, // Mn NKO DANTAYALAN - {0x0800, 0x0815, prALetter}, // Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF - {0x0816, 0x0819, prExtend}, // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH - {0x081A, 0x081A, prALetter}, // Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT - {0x081B, 0x0823, prExtend}, // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A - {0x0824, 0x0824, prALetter}, // Lm SAMARITAN MODIFIER LETTER SHORT A - {0x0825, 0x0827, prExtend}, // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U - {0x0828, 0x0828, prALetter}, // Lm SAMARITAN MODIFIER LETTER I - {0x0829, 0x082D, prExtend}, // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA - {0x0840, 0x0858, prALetter}, // Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN - {0x0859, 0x085B, prExtend}, // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK - {0x0860, 0x086A, prALetter}, // Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA - {0x0870, 0x0887, prALetter}, // Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT - {0x0889, 0x088E, prALetter}, // Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL - {0x0890, 0x0891, prFormat}, // Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE - {0x0898, 0x089F, prExtend}, // Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA - {0x08A0, 0x08C8, prALetter}, // Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF - {0x08C9, 0x08C9, prALetter}, // Lm ARABIC SMALL FARSI YEH - {0x08CA, 0x08E1, prExtend}, // Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA - {0x08E2, 0x08E2, prFormat}, // Cf ARABIC DISPUTED END OF AYAH - {0x08E3, 0x0902, prExtend}, // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA - {0x0903, 0x0903, prExtend}, // Mc DEVANAGARI SIGN VISARGA - {0x0904, 0x0939, prALetter}, // Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA - {0x093A, 0x093A, prExtend}, // Mn DEVANAGARI VOWEL SIGN OE - {0x093B, 0x093B, prExtend}, // Mc DEVANAGARI VOWEL SIGN OOE - {0x093C, 0x093C, prExtend}, // Mn DEVANAGARI SIGN NUKTA - {0x093D, 0x093D, prALetter}, // Lo DEVANAGARI SIGN AVAGRAHA - {0x093E, 0x0940, prExtend}, // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II - {0x0941, 0x0948, prExtend}, // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI - {0x0949, 0x094C, prExtend}, // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU - {0x094D, 0x094D, prExtend}, // Mn DEVANAGARI SIGN VIRAMA - {0x094E, 0x094F, prExtend}, // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW - {0x0950, 0x0950, prALetter}, // Lo DEVANAGARI OM - {0x0951, 0x0957, prExtend}, // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE - {0x0958, 0x0961, prALetter}, // Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL - {0x0962, 0x0963, prExtend}, // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL - {0x0966, 0x096F, prNumeric}, // Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE - {0x0971, 0x0971, prALetter}, // Lm DEVANAGARI SIGN HIGH SPACING DOT - {0x0972, 0x0980, prALetter}, // Lo [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI - {0x0981, 0x0981, prExtend}, // Mn BENGALI SIGN CANDRABINDU - {0x0982, 0x0983, prExtend}, // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA - {0x0985, 0x098C, prALetter}, // Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L - {0x098F, 0x0990, prALetter}, // Lo [2] BENGALI LETTER E..BENGALI LETTER AI - {0x0993, 0x09A8, prALetter}, // Lo [22] BENGALI LETTER O..BENGALI LETTER NA - {0x09AA, 0x09B0, prALetter}, // Lo [7] BENGALI LETTER PA..BENGALI LETTER RA - {0x09B2, 0x09B2, prALetter}, // Lo BENGALI LETTER LA - {0x09B6, 0x09B9, prALetter}, // Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA - {0x09BC, 0x09BC, prExtend}, // Mn BENGALI SIGN NUKTA - {0x09BD, 0x09BD, prALetter}, // Lo BENGALI SIGN AVAGRAHA - {0x09BE, 0x09C0, prExtend}, // Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II - {0x09C1, 0x09C4, prExtend}, // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR - {0x09C7, 0x09C8, prExtend}, // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI - {0x09CB, 0x09CC, prExtend}, // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU - {0x09CD, 0x09CD, prExtend}, // Mn BENGALI SIGN VIRAMA - {0x09CE, 0x09CE, prALetter}, // Lo BENGALI LETTER KHANDA TA - {0x09D7, 0x09D7, prExtend}, // Mc BENGALI AU LENGTH MARK - {0x09DC, 0x09DD, prALetter}, // Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA - {0x09DF, 0x09E1, prALetter}, // Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL - {0x09E2, 0x09E3, prExtend}, // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL - {0x09E6, 0x09EF, prNumeric}, // Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE - {0x09F0, 0x09F1, prALetter}, // Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL - {0x09FC, 0x09FC, prALetter}, // Lo BENGALI LETTER VEDIC ANUSVARA - {0x09FE, 0x09FE, prExtend}, // Mn BENGALI SANDHI MARK - {0x0A01, 0x0A02, prExtend}, // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI - {0x0A03, 0x0A03, prExtend}, // Mc GURMUKHI SIGN VISARGA - {0x0A05, 0x0A0A, prALetter}, // Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU - {0x0A0F, 0x0A10, prALetter}, // Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI - {0x0A13, 0x0A28, prALetter}, // Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA - {0x0A2A, 0x0A30, prALetter}, // Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA - {0x0A32, 0x0A33, prALetter}, // Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA - {0x0A35, 0x0A36, prALetter}, // Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA - {0x0A38, 0x0A39, prALetter}, // Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA - {0x0A3C, 0x0A3C, prExtend}, // Mn GURMUKHI SIGN NUKTA - {0x0A3E, 0x0A40, prExtend}, // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II - {0x0A41, 0x0A42, prExtend}, // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU - {0x0A47, 0x0A48, prExtend}, // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI - {0x0A4B, 0x0A4D, prExtend}, // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA - {0x0A51, 0x0A51, prExtend}, // Mn GURMUKHI SIGN UDAAT - {0x0A59, 0x0A5C, prALetter}, // Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA - {0x0A5E, 0x0A5E, prALetter}, // Lo GURMUKHI LETTER FA - {0x0A66, 0x0A6F, prNumeric}, // Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE - {0x0A70, 0x0A71, prExtend}, // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK - {0x0A72, 0x0A74, prALetter}, // Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR - {0x0A75, 0x0A75, prExtend}, // Mn GURMUKHI SIGN YAKASH - {0x0A81, 0x0A82, prExtend}, // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA - {0x0A83, 0x0A83, prExtend}, // Mc GUJARATI SIGN VISARGA - {0x0A85, 0x0A8D, prALetter}, // Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E - {0x0A8F, 0x0A91, prALetter}, // Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O - {0x0A93, 0x0AA8, prALetter}, // Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA - {0x0AAA, 0x0AB0, prALetter}, // Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA - {0x0AB2, 0x0AB3, prALetter}, // Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA - {0x0AB5, 0x0AB9, prALetter}, // Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA - {0x0ABC, 0x0ABC, prExtend}, // Mn GUJARATI SIGN NUKTA - {0x0ABD, 0x0ABD, prALetter}, // Lo GUJARATI SIGN AVAGRAHA - {0x0ABE, 0x0AC0, prExtend}, // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II - {0x0AC1, 0x0AC5, prExtend}, // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E - {0x0AC7, 0x0AC8, prExtend}, // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI - {0x0AC9, 0x0AC9, prExtend}, // Mc GUJARATI VOWEL SIGN CANDRA O - {0x0ACB, 0x0ACC, prExtend}, // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU - {0x0ACD, 0x0ACD, prExtend}, // Mn GUJARATI SIGN VIRAMA - {0x0AD0, 0x0AD0, prALetter}, // Lo GUJARATI OM - {0x0AE0, 0x0AE1, prALetter}, // Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL - {0x0AE2, 0x0AE3, prExtend}, // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL - {0x0AE6, 0x0AEF, prNumeric}, // Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE - {0x0AF9, 0x0AF9, prALetter}, // Lo GUJARATI LETTER ZHA - {0x0AFA, 0x0AFF, prExtend}, // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE - {0x0B01, 0x0B01, prExtend}, // Mn ORIYA SIGN CANDRABINDU - {0x0B02, 0x0B03, prExtend}, // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA - {0x0B05, 0x0B0C, prALetter}, // Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L - {0x0B0F, 0x0B10, prALetter}, // Lo [2] ORIYA LETTER E..ORIYA LETTER AI - {0x0B13, 0x0B28, prALetter}, // Lo [22] ORIYA LETTER O..ORIYA LETTER NA - {0x0B2A, 0x0B30, prALetter}, // Lo [7] ORIYA LETTER PA..ORIYA LETTER RA - {0x0B32, 0x0B33, prALetter}, // Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA - {0x0B35, 0x0B39, prALetter}, // Lo [5] ORIYA LETTER VA..ORIYA LETTER HA - {0x0B3C, 0x0B3C, prExtend}, // Mn ORIYA SIGN NUKTA - {0x0B3D, 0x0B3D, prALetter}, // Lo ORIYA SIGN AVAGRAHA - {0x0B3E, 0x0B3E, prExtend}, // Mc ORIYA VOWEL SIGN AA - {0x0B3F, 0x0B3F, prExtend}, // Mn ORIYA VOWEL SIGN I - {0x0B40, 0x0B40, prExtend}, // Mc ORIYA VOWEL SIGN II - {0x0B41, 0x0B44, prExtend}, // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR - {0x0B47, 0x0B48, prExtend}, // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI - {0x0B4B, 0x0B4C, prExtend}, // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU - {0x0B4D, 0x0B4D, prExtend}, // Mn ORIYA SIGN VIRAMA - {0x0B55, 0x0B56, prExtend}, // Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK - {0x0B57, 0x0B57, prExtend}, // Mc ORIYA AU LENGTH MARK - {0x0B5C, 0x0B5D, prALetter}, // Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA - {0x0B5F, 0x0B61, prALetter}, // Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL - {0x0B62, 0x0B63, prExtend}, // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL - {0x0B66, 0x0B6F, prNumeric}, // Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE - {0x0B71, 0x0B71, prALetter}, // Lo ORIYA LETTER WA - {0x0B82, 0x0B82, prExtend}, // Mn TAMIL SIGN ANUSVARA - {0x0B83, 0x0B83, prALetter}, // Lo TAMIL SIGN VISARGA - {0x0B85, 0x0B8A, prALetter}, // Lo [6] TAMIL LETTER A..TAMIL LETTER UU - {0x0B8E, 0x0B90, prALetter}, // Lo [3] TAMIL LETTER E..TAMIL LETTER AI - {0x0B92, 0x0B95, prALetter}, // Lo [4] TAMIL LETTER O..TAMIL LETTER KA - {0x0B99, 0x0B9A, prALetter}, // Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA - {0x0B9C, 0x0B9C, prALetter}, // Lo TAMIL LETTER JA - {0x0B9E, 0x0B9F, prALetter}, // Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA - {0x0BA3, 0x0BA4, prALetter}, // Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA - {0x0BA8, 0x0BAA, prALetter}, // Lo [3] TAMIL LETTER NA..TAMIL LETTER PA - {0x0BAE, 0x0BB9, prALetter}, // Lo [12] TAMIL LETTER MA..TAMIL LETTER HA - {0x0BBE, 0x0BBF, prExtend}, // Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I - {0x0BC0, 0x0BC0, prExtend}, // Mn TAMIL VOWEL SIGN II - {0x0BC1, 0x0BC2, prExtend}, // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU - {0x0BC6, 0x0BC8, prExtend}, // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI - {0x0BCA, 0x0BCC, prExtend}, // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU - {0x0BCD, 0x0BCD, prExtend}, // Mn TAMIL SIGN VIRAMA - {0x0BD0, 0x0BD0, prALetter}, // Lo TAMIL OM - {0x0BD7, 0x0BD7, prExtend}, // Mc TAMIL AU LENGTH MARK - {0x0BE6, 0x0BEF, prNumeric}, // Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE - {0x0C00, 0x0C00, prExtend}, // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE - {0x0C01, 0x0C03, prExtend}, // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA - {0x0C04, 0x0C04, prExtend}, // Mn TELUGU SIGN COMBINING ANUSVARA ABOVE - {0x0C05, 0x0C0C, prALetter}, // Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L - {0x0C0E, 0x0C10, prALetter}, // Lo [3] TELUGU LETTER E..TELUGU LETTER AI - {0x0C12, 0x0C28, prALetter}, // Lo [23] TELUGU LETTER O..TELUGU LETTER NA - {0x0C2A, 0x0C39, prALetter}, // Lo [16] TELUGU LETTER PA..TELUGU LETTER HA - {0x0C3C, 0x0C3C, prExtend}, // Mn TELUGU SIGN NUKTA - {0x0C3D, 0x0C3D, prALetter}, // Lo TELUGU SIGN AVAGRAHA - {0x0C3E, 0x0C40, prExtend}, // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II - {0x0C41, 0x0C44, prExtend}, // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR - {0x0C46, 0x0C48, prExtend}, // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI - {0x0C4A, 0x0C4D, prExtend}, // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA - {0x0C55, 0x0C56, prExtend}, // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK - {0x0C58, 0x0C5A, prALetter}, // Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA - {0x0C5D, 0x0C5D, prALetter}, // Lo TELUGU LETTER NAKAARA POLLU - {0x0C60, 0x0C61, prALetter}, // Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL - {0x0C62, 0x0C63, prExtend}, // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL - {0x0C66, 0x0C6F, prNumeric}, // Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE - {0x0C80, 0x0C80, prALetter}, // Lo KANNADA SIGN SPACING CANDRABINDU - {0x0C81, 0x0C81, prExtend}, // Mn KANNADA SIGN CANDRABINDU - {0x0C82, 0x0C83, prExtend}, // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA - {0x0C85, 0x0C8C, prALetter}, // Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L - {0x0C8E, 0x0C90, prALetter}, // Lo [3] KANNADA LETTER E..KANNADA LETTER AI - {0x0C92, 0x0CA8, prALetter}, // Lo [23] KANNADA LETTER O..KANNADA LETTER NA - {0x0CAA, 0x0CB3, prALetter}, // Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA - {0x0CB5, 0x0CB9, prALetter}, // Lo [5] KANNADA LETTER VA..KANNADA LETTER HA - {0x0CBC, 0x0CBC, prExtend}, // Mn KANNADA SIGN NUKTA - {0x0CBD, 0x0CBD, prALetter}, // Lo KANNADA SIGN AVAGRAHA - {0x0CBE, 0x0CBE, prExtend}, // Mc KANNADA VOWEL SIGN AA - {0x0CBF, 0x0CBF, prExtend}, // Mn KANNADA VOWEL SIGN I - {0x0CC0, 0x0CC4, prExtend}, // Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR - {0x0CC6, 0x0CC6, prExtend}, // Mn KANNADA VOWEL SIGN E - {0x0CC7, 0x0CC8, prExtend}, // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI - {0x0CCA, 0x0CCB, prExtend}, // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO - {0x0CCC, 0x0CCD, prExtend}, // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA - {0x0CD5, 0x0CD6, prExtend}, // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK - {0x0CDD, 0x0CDE, prALetter}, // Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA - {0x0CE0, 0x0CE1, prALetter}, // Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL - {0x0CE2, 0x0CE3, prExtend}, // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL - {0x0CE6, 0x0CEF, prNumeric}, // Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE - {0x0CF1, 0x0CF2, prALetter}, // Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA - {0x0CF3, 0x0CF3, prExtend}, // Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT - {0x0D00, 0x0D01, prExtend}, // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU - {0x0D02, 0x0D03, prExtend}, // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA - {0x0D04, 0x0D0C, prALetter}, // Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L - {0x0D0E, 0x0D10, prALetter}, // Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI - {0x0D12, 0x0D3A, prALetter}, // Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA - {0x0D3B, 0x0D3C, prExtend}, // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA - {0x0D3D, 0x0D3D, prALetter}, // Lo MALAYALAM SIGN AVAGRAHA - {0x0D3E, 0x0D40, prExtend}, // Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II - {0x0D41, 0x0D44, prExtend}, // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR - {0x0D46, 0x0D48, prExtend}, // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI - {0x0D4A, 0x0D4C, prExtend}, // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU - {0x0D4D, 0x0D4D, prExtend}, // Mn MALAYALAM SIGN VIRAMA - {0x0D4E, 0x0D4E, prALetter}, // Lo MALAYALAM LETTER DOT REPH - {0x0D54, 0x0D56, prALetter}, // Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL - {0x0D57, 0x0D57, prExtend}, // Mc MALAYALAM AU LENGTH MARK - {0x0D5F, 0x0D61, prALetter}, // Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL - {0x0D62, 0x0D63, prExtend}, // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL - {0x0D66, 0x0D6F, prNumeric}, // Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE - {0x0D7A, 0x0D7F, prALetter}, // Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K - {0x0D81, 0x0D81, prExtend}, // Mn SINHALA SIGN CANDRABINDU - {0x0D82, 0x0D83, prExtend}, // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA - {0x0D85, 0x0D96, prALetter}, // Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA - {0x0D9A, 0x0DB1, prALetter}, // Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA - {0x0DB3, 0x0DBB, prALetter}, // Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA - {0x0DBD, 0x0DBD, prALetter}, // Lo SINHALA LETTER DANTAJA LAYANNA - {0x0DC0, 0x0DC6, prALetter}, // Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA - {0x0DCA, 0x0DCA, prExtend}, // Mn SINHALA SIGN AL-LAKUNA - {0x0DCF, 0x0DD1, prExtend}, // Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA - {0x0DD2, 0x0DD4, prExtend}, // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA - {0x0DD6, 0x0DD6, prExtend}, // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA - {0x0DD8, 0x0DDF, prExtend}, // Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA - {0x0DE6, 0x0DEF, prNumeric}, // Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE - {0x0DF2, 0x0DF3, prExtend}, // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA - {0x0E31, 0x0E31, prExtend}, // Mn THAI CHARACTER MAI HAN-AKAT - {0x0E34, 0x0E3A, prExtend}, // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU - {0x0E47, 0x0E4E, prExtend}, // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN - {0x0E50, 0x0E59, prNumeric}, // Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE - {0x0EB1, 0x0EB1, prExtend}, // Mn LAO VOWEL SIGN MAI KAN - {0x0EB4, 0x0EBC, prExtend}, // Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO - {0x0EC8, 0x0ECE, prExtend}, // Mn [7] LAO TONE MAI EK..LAO YAMAKKAN - {0x0ED0, 0x0ED9, prNumeric}, // Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE - {0x0F00, 0x0F00, prALetter}, // Lo TIBETAN SYLLABLE OM - {0x0F18, 0x0F19, prExtend}, // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS - {0x0F20, 0x0F29, prNumeric}, // Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE - {0x0F35, 0x0F35, prExtend}, // Mn TIBETAN MARK NGAS BZUNG NYI ZLA - {0x0F37, 0x0F37, prExtend}, // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS - {0x0F39, 0x0F39, prExtend}, // Mn TIBETAN MARK TSA -PHRU - {0x0F3E, 0x0F3F, prExtend}, // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES - {0x0F40, 0x0F47, prALetter}, // Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA - {0x0F49, 0x0F6C, prALetter}, // Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA - {0x0F71, 0x0F7E, prExtend}, // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO - {0x0F7F, 0x0F7F, prExtend}, // Mc TIBETAN SIGN RNAM BCAD - {0x0F80, 0x0F84, prExtend}, // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA - {0x0F86, 0x0F87, prExtend}, // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS - {0x0F88, 0x0F8C, prALetter}, // Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN - {0x0F8D, 0x0F97, prExtend}, // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA - {0x0F99, 0x0FBC, prExtend}, // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA - {0x0FC6, 0x0FC6, prExtend}, // Mn TIBETAN SYMBOL PADMA GDAN - {0x102B, 0x102C, prExtend}, // Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA - {0x102D, 0x1030, prExtend}, // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU - {0x1031, 0x1031, prExtend}, // Mc MYANMAR VOWEL SIGN E - {0x1032, 0x1037, prExtend}, // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW - {0x1038, 0x1038, prExtend}, // Mc MYANMAR SIGN VISARGA - {0x1039, 0x103A, prExtend}, // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT - {0x103B, 0x103C, prExtend}, // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA - {0x103D, 0x103E, prExtend}, // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA - {0x1040, 0x1049, prNumeric}, // Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE - {0x1056, 0x1057, prExtend}, // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR - {0x1058, 0x1059, prExtend}, // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL - {0x105E, 0x1060, prExtend}, // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA - {0x1062, 0x1064, prExtend}, // Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO - {0x1067, 0x106D, prExtend}, // Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5 - {0x1071, 0x1074, prExtend}, // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE - {0x1082, 0x1082, prExtend}, // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA - {0x1083, 0x1084, prExtend}, // Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E - {0x1085, 0x1086, prExtend}, // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y - {0x1087, 0x108C, prExtend}, // Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 - {0x108D, 0x108D, prExtend}, // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE - {0x108F, 0x108F, prExtend}, // Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 - {0x1090, 0x1099, prNumeric}, // Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE - {0x109A, 0x109C, prExtend}, // Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A - {0x109D, 0x109D, prExtend}, // Mn MYANMAR VOWEL SIGN AITON AI - {0x10A0, 0x10C5, prALetter}, // L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE - {0x10C7, 0x10C7, prALetter}, // L& GEORGIAN CAPITAL LETTER YN - {0x10CD, 0x10CD, prALetter}, // L& GEORGIAN CAPITAL LETTER AEN - {0x10D0, 0x10FA, prALetter}, // L& [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN - {0x10FC, 0x10FC, prALetter}, // Lm MODIFIER LETTER GEORGIAN NAR - {0x10FD, 0x10FF, prALetter}, // L& [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN - {0x1100, 0x1248, prALetter}, // Lo [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA - {0x124A, 0x124D, prALetter}, // Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE - {0x1250, 0x1256, prALetter}, // Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO - {0x1258, 0x1258, prALetter}, // Lo ETHIOPIC SYLLABLE QHWA - {0x125A, 0x125D, prALetter}, // Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE - {0x1260, 0x1288, prALetter}, // Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA - {0x128A, 0x128D, prALetter}, // Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE - {0x1290, 0x12B0, prALetter}, // Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA - {0x12B2, 0x12B5, prALetter}, // Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE - {0x12B8, 0x12BE, prALetter}, // Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO - {0x12C0, 0x12C0, prALetter}, // Lo ETHIOPIC SYLLABLE KXWA - {0x12C2, 0x12C5, prALetter}, // Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE - {0x12C8, 0x12D6, prALetter}, // Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O - {0x12D8, 0x1310, prALetter}, // Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA - {0x1312, 0x1315, prALetter}, // Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE - {0x1318, 0x135A, prALetter}, // Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA - {0x135D, 0x135F, prExtend}, // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK - {0x1380, 0x138F, prALetter}, // Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE - {0x13A0, 0x13F5, prALetter}, // L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV - {0x13F8, 0x13FD, prALetter}, // L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV - {0x1401, 0x166C, prALetter}, // Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA - {0x166F, 0x167F, prALetter}, // Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W - {0x1680, 0x1680, prWSegSpace}, // Zs OGHAM SPACE MARK - {0x1681, 0x169A, prALetter}, // Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH - {0x16A0, 0x16EA, prALetter}, // Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X - {0x16EE, 0x16F0, prALetter}, // Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL - {0x16F1, 0x16F8, prALetter}, // Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC - {0x1700, 0x1711, prALetter}, // Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA - {0x1712, 0x1714, prExtend}, // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA - {0x1715, 0x1715, prExtend}, // Mc TAGALOG SIGN PAMUDPOD - {0x171F, 0x1731, prALetter}, // Lo [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA - {0x1732, 0x1733, prExtend}, // Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U - {0x1734, 0x1734, prExtend}, // Mc HANUNOO SIGN PAMUDPOD - {0x1740, 0x1751, prALetter}, // Lo [18] BUHID LETTER A..BUHID LETTER HA - {0x1752, 0x1753, prExtend}, // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U - {0x1760, 0x176C, prALetter}, // Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA - {0x176E, 0x1770, prALetter}, // Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA - {0x1772, 0x1773, prExtend}, // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U - {0x17B4, 0x17B5, prExtend}, // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA - {0x17B6, 0x17B6, prExtend}, // Mc KHMER VOWEL SIGN AA - {0x17B7, 0x17BD, prExtend}, // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA - {0x17BE, 0x17C5, prExtend}, // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU - {0x17C6, 0x17C6, prExtend}, // Mn KHMER SIGN NIKAHIT - {0x17C7, 0x17C8, prExtend}, // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU - {0x17C9, 0x17D3, prExtend}, // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT - {0x17DD, 0x17DD, prExtend}, // Mn KHMER SIGN ATTHACAN - {0x17E0, 0x17E9, prNumeric}, // Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE - {0x180B, 0x180D, prExtend}, // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE - {0x180E, 0x180E, prFormat}, // Cf MONGOLIAN VOWEL SEPARATOR - {0x180F, 0x180F, prExtend}, // Mn MONGOLIAN FREE VARIATION SELECTOR FOUR - {0x1810, 0x1819, prNumeric}, // Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE - {0x1820, 0x1842, prALetter}, // Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI - {0x1843, 0x1843, prALetter}, // Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN - {0x1844, 0x1878, prALetter}, // Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS - {0x1880, 0x1884, prALetter}, // Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA - {0x1885, 0x1886, prExtend}, // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA - {0x1887, 0x18A8, prALetter}, // Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA - {0x18A9, 0x18A9, prExtend}, // Mn MONGOLIAN LETTER ALI GALI DAGALGA - {0x18AA, 0x18AA, prALetter}, // Lo MONGOLIAN LETTER MANCHU ALI GALI LHA - {0x18B0, 0x18F5, prALetter}, // Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S - {0x1900, 0x191E, prALetter}, // Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA - {0x1920, 0x1922, prExtend}, // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U - {0x1923, 0x1926, prExtend}, // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU - {0x1927, 0x1928, prExtend}, // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O - {0x1929, 0x192B, prExtend}, // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA - {0x1930, 0x1931, prExtend}, // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA - {0x1932, 0x1932, prExtend}, // Mn LIMBU SMALL LETTER ANUSVARA - {0x1933, 0x1938, prExtend}, // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA - {0x1939, 0x193B, prExtend}, // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I - {0x1946, 0x194F, prNumeric}, // Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE - {0x19D0, 0x19D9, prNumeric}, // Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE - {0x1A00, 0x1A16, prALetter}, // Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA - {0x1A17, 0x1A18, prExtend}, // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U - {0x1A19, 0x1A1A, prExtend}, // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O - {0x1A1B, 0x1A1B, prExtend}, // Mn BUGINESE VOWEL SIGN AE - {0x1A55, 0x1A55, prExtend}, // Mc TAI THAM CONSONANT SIGN MEDIAL RA - {0x1A56, 0x1A56, prExtend}, // Mn TAI THAM CONSONANT SIGN MEDIAL LA - {0x1A57, 0x1A57, prExtend}, // Mc TAI THAM CONSONANT SIGN LA TANG LAI - {0x1A58, 0x1A5E, prExtend}, // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA - {0x1A60, 0x1A60, prExtend}, // Mn TAI THAM SIGN SAKOT - {0x1A61, 0x1A61, prExtend}, // Mc TAI THAM VOWEL SIGN A - {0x1A62, 0x1A62, prExtend}, // Mn TAI THAM VOWEL SIGN MAI SAT - {0x1A63, 0x1A64, prExtend}, // Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA - {0x1A65, 0x1A6C, prExtend}, // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW - {0x1A6D, 0x1A72, prExtend}, // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI - {0x1A73, 0x1A7C, prExtend}, // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN - {0x1A7F, 0x1A7F, prExtend}, // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT - {0x1A80, 0x1A89, prNumeric}, // Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE - {0x1A90, 0x1A99, prNumeric}, // Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE - {0x1AB0, 0x1ABD, prExtend}, // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW - {0x1ABE, 0x1ABE, prExtend}, // Me COMBINING PARENTHESES OVERLAY - {0x1ABF, 0x1ACE, prExtend}, // Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T - {0x1B00, 0x1B03, prExtend}, // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG - {0x1B04, 0x1B04, prExtend}, // Mc BALINESE SIGN BISAH - {0x1B05, 0x1B33, prALetter}, // Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA - {0x1B34, 0x1B34, prExtend}, // Mn BALINESE SIGN REREKAN - {0x1B35, 0x1B35, prExtend}, // Mc BALINESE VOWEL SIGN TEDUNG - {0x1B36, 0x1B3A, prExtend}, // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA - {0x1B3B, 0x1B3B, prExtend}, // Mc BALINESE VOWEL SIGN RA REPA TEDUNG - {0x1B3C, 0x1B3C, prExtend}, // Mn BALINESE VOWEL SIGN LA LENGA - {0x1B3D, 0x1B41, prExtend}, // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG - {0x1B42, 0x1B42, prExtend}, // Mn BALINESE VOWEL SIGN PEPET - {0x1B43, 0x1B44, prExtend}, // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG - {0x1B45, 0x1B4C, prALetter}, // Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA - {0x1B50, 0x1B59, prNumeric}, // Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE - {0x1B6B, 0x1B73, prExtend}, // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG - {0x1B80, 0x1B81, prExtend}, // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR - {0x1B82, 0x1B82, prExtend}, // Mc SUNDANESE SIGN PANGWISAD - {0x1B83, 0x1BA0, prALetter}, // Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA - {0x1BA1, 0x1BA1, prExtend}, // Mc SUNDANESE CONSONANT SIGN PAMINGKAL - {0x1BA2, 0x1BA5, prExtend}, // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU - {0x1BA6, 0x1BA7, prExtend}, // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG - {0x1BA8, 0x1BA9, prExtend}, // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG - {0x1BAA, 0x1BAA, prExtend}, // Mc SUNDANESE SIGN PAMAAEH - {0x1BAB, 0x1BAD, prExtend}, // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA - {0x1BAE, 0x1BAF, prALetter}, // Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA - {0x1BB0, 0x1BB9, prNumeric}, // Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE - {0x1BBA, 0x1BE5, prALetter}, // Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U - {0x1BE6, 0x1BE6, prExtend}, // Mn BATAK SIGN TOMPI - {0x1BE7, 0x1BE7, prExtend}, // Mc BATAK VOWEL SIGN E - {0x1BE8, 0x1BE9, prExtend}, // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE - {0x1BEA, 0x1BEC, prExtend}, // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O - {0x1BED, 0x1BED, prExtend}, // Mn BATAK VOWEL SIGN KARO O - {0x1BEE, 0x1BEE, prExtend}, // Mc BATAK VOWEL SIGN U - {0x1BEF, 0x1BF1, prExtend}, // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H - {0x1BF2, 0x1BF3, prExtend}, // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN - {0x1C00, 0x1C23, prALetter}, // Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A - {0x1C24, 0x1C2B, prExtend}, // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU - {0x1C2C, 0x1C33, prExtend}, // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T - {0x1C34, 0x1C35, prExtend}, // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG - {0x1C36, 0x1C37, prExtend}, // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA - {0x1C40, 0x1C49, prNumeric}, // Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE - {0x1C4D, 0x1C4F, prALetter}, // Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA - {0x1C50, 0x1C59, prNumeric}, // Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE - {0x1C5A, 0x1C77, prALetter}, // Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH - {0x1C78, 0x1C7D, prALetter}, // Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD - {0x1C80, 0x1C88, prALetter}, // L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK - {0x1C90, 0x1CBA, prALetter}, // L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN - {0x1CBD, 0x1CBF, prALetter}, // L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN - {0x1CD0, 0x1CD2, prExtend}, // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA - {0x1CD4, 0x1CE0, prExtend}, // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA - {0x1CE1, 0x1CE1, prExtend}, // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA - {0x1CE2, 0x1CE8, prExtend}, // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL - {0x1CE9, 0x1CEC, prALetter}, // Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL - {0x1CED, 0x1CED, prExtend}, // Mn VEDIC SIGN TIRYAK - {0x1CEE, 0x1CF3, prALetter}, // Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA - {0x1CF4, 0x1CF4, prExtend}, // Mn VEDIC TONE CANDRA ABOVE - {0x1CF5, 0x1CF6, prALetter}, // Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA - {0x1CF7, 0x1CF7, prExtend}, // Mc VEDIC SIGN ATIKRAMA - {0x1CF8, 0x1CF9, prExtend}, // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE - {0x1CFA, 0x1CFA, prALetter}, // Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA - {0x1D00, 0x1D2B, prALetter}, // L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL - {0x1D2C, 0x1D6A, prALetter}, // Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI - {0x1D6B, 0x1D77, prALetter}, // L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G - {0x1D78, 0x1D78, prALetter}, // Lm MODIFIER LETTER CYRILLIC EN - {0x1D79, 0x1D9A, prALetter}, // L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK - {0x1D9B, 0x1DBF, prALetter}, // Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA - {0x1DC0, 0x1DFF, prExtend}, // Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW - {0x1E00, 0x1F15, prALetter}, // L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA - {0x1F18, 0x1F1D, prALetter}, // L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA - {0x1F20, 0x1F45, prALetter}, // L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA - {0x1F48, 0x1F4D, prALetter}, // L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA - {0x1F50, 0x1F57, prALetter}, // L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI - {0x1F59, 0x1F59, prALetter}, // L& GREEK CAPITAL LETTER UPSILON WITH DASIA - {0x1F5B, 0x1F5B, prALetter}, // L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA - {0x1F5D, 0x1F5D, prALetter}, // L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA - {0x1F5F, 0x1F7D, prALetter}, // L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA - {0x1F80, 0x1FB4, prALetter}, // L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI - {0x1FB6, 0x1FBC, prALetter}, // L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI - {0x1FBE, 0x1FBE, prALetter}, // L& GREEK PROSGEGRAMMENI - {0x1FC2, 0x1FC4, prALetter}, // L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI - {0x1FC6, 0x1FCC, prALetter}, // L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI - {0x1FD0, 0x1FD3, prALetter}, // L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA - {0x1FD6, 0x1FDB, prALetter}, // L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA - {0x1FE0, 0x1FEC, prALetter}, // L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA - {0x1FF2, 0x1FF4, prALetter}, // L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI - {0x1FF6, 0x1FFC, prALetter}, // L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI - {0x2000, 0x2006, prWSegSpace}, // Zs [7] EN QUAD..SIX-PER-EM SPACE - {0x2008, 0x200A, prWSegSpace}, // Zs [3] PUNCTUATION SPACE..HAIR SPACE - {0x200C, 0x200C, prExtend}, // Cf ZERO WIDTH NON-JOINER - {0x200D, 0x200D, prZWJ}, // Cf ZERO WIDTH JOINER - {0x200E, 0x200F, prFormat}, // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK - {0x2018, 0x2018, prMidNumLet}, // Pi LEFT SINGLE QUOTATION MARK - {0x2019, 0x2019, prMidNumLet}, // Pf RIGHT SINGLE QUOTATION MARK - {0x2024, 0x2024, prMidNumLet}, // Po ONE DOT LEADER - {0x2027, 0x2027, prMidLetter}, // Po HYPHENATION POINT - {0x2028, 0x2028, prNewline}, // Zl LINE SEPARATOR - {0x2029, 0x2029, prNewline}, // Zp PARAGRAPH SEPARATOR - {0x202A, 0x202E, prFormat}, // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE - {0x202F, 0x202F, prExtendNumLet}, // Zs NARROW NO-BREAK SPACE - {0x203C, 0x203C, prExtendedPictographic}, // E0.6 [1] (‼️) double exclamation mark - {0x203F, 0x2040, prExtendNumLet}, // Pc [2] UNDERTIE..CHARACTER TIE - {0x2044, 0x2044, prMidNum}, // Sm FRACTION SLASH - {0x2049, 0x2049, prExtendedPictographic}, // E0.6 [1] (⁉️) exclamation question mark - {0x2054, 0x2054, prExtendNumLet}, // Pc INVERTED UNDERTIE - {0x205F, 0x205F, prWSegSpace}, // Zs MEDIUM MATHEMATICAL SPACE - {0x2060, 0x2064, prFormat}, // Cf [5] WORD JOINER..INVISIBLE PLUS - {0x2066, 0x206F, prFormat}, // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES - {0x2071, 0x2071, prALetter}, // Lm SUPERSCRIPT LATIN SMALL LETTER I - {0x207F, 0x207F, prALetter}, // Lm SUPERSCRIPT LATIN SMALL LETTER N - {0x2090, 0x209C, prALetter}, // Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T - {0x20D0, 0x20DC, prExtend}, // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE - {0x20DD, 0x20E0, prExtend}, // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH - {0x20E1, 0x20E1, prExtend}, // Mn COMBINING LEFT RIGHT ARROW ABOVE - {0x20E2, 0x20E4, prExtend}, // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE - {0x20E5, 0x20F0, prExtend}, // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE - {0x2102, 0x2102, prALetter}, // L& DOUBLE-STRUCK CAPITAL C - {0x2107, 0x2107, prALetter}, // L& EULER CONSTANT - {0x210A, 0x2113, prALetter}, // L& [10] SCRIPT SMALL G..SCRIPT SMALL L - {0x2115, 0x2115, prALetter}, // L& DOUBLE-STRUCK CAPITAL N - {0x2119, 0x211D, prALetter}, // L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R - {0x2122, 0x2122, prExtendedPictographic}, // E0.6 [1] (™️) trade mark - {0x2124, 0x2124, prALetter}, // L& DOUBLE-STRUCK CAPITAL Z - {0x2126, 0x2126, prALetter}, // L& OHM SIGN - {0x2128, 0x2128, prALetter}, // L& BLACK-LETTER CAPITAL Z - {0x212A, 0x212D, prALetter}, // L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C - {0x212F, 0x2134, prALetter}, // L& [6] SCRIPT SMALL E..SCRIPT SMALL O - {0x2135, 0x2138, prALetter}, // Lo [4] ALEF SYMBOL..DALET SYMBOL - {0x2139, 0x2139, prExtendedPictographic}, // E0.6 [1] (ℹ️) information - {0x2139, 0x2139, prALetter}, // L& INFORMATION SOURCE - {0x213C, 0x213F, prALetter}, // L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI - {0x2145, 0x2149, prALetter}, // L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J - {0x214E, 0x214E, prALetter}, // L& TURNED SMALL F - {0x2160, 0x2182, prALetter}, // Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND - {0x2183, 0x2184, prALetter}, // L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C - {0x2185, 0x2188, prALetter}, // Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND - {0x2194, 0x2199, prExtendedPictographic}, // E0.6 [6] (↔️..↙️) left-right arrow..down-left arrow - {0x21A9, 0x21AA, prExtendedPictographic}, // E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right - {0x231A, 0x231B, prExtendedPictographic}, // E0.6 [2] (⌚..⌛) watch..hourglass done - {0x2328, 0x2328, prExtendedPictographic}, // E1.0 [1] (⌨️) keyboard - {0x2388, 0x2388, prExtendedPictographic}, // E0.0 [1] (⎈) HELM SYMBOL - {0x23CF, 0x23CF, prExtendedPictographic}, // E1.0 [1] (⏏️) eject button - {0x23E9, 0x23EC, prExtendedPictographic}, // E0.6 [4] (⏩..⏬) fast-forward button..fast down button - {0x23ED, 0x23EE, prExtendedPictographic}, // E0.7 [2] (⏭️..⏮️) next track button..last track button - {0x23EF, 0x23EF, prExtendedPictographic}, // E1.0 [1] (⏯️) play or pause button - {0x23F0, 0x23F0, prExtendedPictographic}, // E0.6 [1] (⏰) alarm clock - {0x23F1, 0x23F2, prExtendedPictographic}, // E1.0 [2] (⏱️..⏲️) stopwatch..timer clock - {0x23F3, 0x23F3, prExtendedPictographic}, // E0.6 [1] (⏳) hourglass not done - {0x23F8, 0x23FA, prExtendedPictographic}, // E0.7 [3] (⏸️..⏺️) pause button..record button - {0x24B6, 0x24E9, prALetter}, // So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z - {0x24C2, 0x24C2, prExtendedPictographic}, // E0.6 [1] (Ⓜ️) circled M - {0x25AA, 0x25AB, prExtendedPictographic}, // E0.6 [2] (▪️..▫️) black small square..white small square - {0x25B6, 0x25B6, prExtendedPictographic}, // E0.6 [1] (▶️) play button - {0x25C0, 0x25C0, prExtendedPictographic}, // E0.6 [1] (◀️) reverse button - {0x25FB, 0x25FE, prExtendedPictographic}, // E0.6 [4] (◻️..◾) white medium square..black medium-small square - {0x2600, 0x2601, prExtendedPictographic}, // E0.6 [2] (☀️..☁️) sun..cloud - {0x2602, 0x2603, prExtendedPictographic}, // E0.7 [2] (☂️..☃️) umbrella..snowman - {0x2604, 0x2604, prExtendedPictographic}, // E1.0 [1] (☄️) comet - {0x2605, 0x2605, prExtendedPictographic}, // E0.0 [1] (★) BLACK STAR - {0x2607, 0x260D, prExtendedPictographic}, // E0.0 [7] (☇..☍) LIGHTNING..OPPOSITION - {0x260E, 0x260E, prExtendedPictographic}, // E0.6 [1] (☎️) telephone - {0x260F, 0x2610, prExtendedPictographic}, // E0.0 [2] (☏..☐) WHITE TELEPHONE..BALLOT BOX - {0x2611, 0x2611, prExtendedPictographic}, // E0.6 [1] (☑️) check box with check - {0x2612, 0x2612, prExtendedPictographic}, // E0.0 [1] (☒) BALLOT BOX WITH X - {0x2614, 0x2615, prExtendedPictographic}, // E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage - {0x2616, 0x2617, prExtendedPictographic}, // E0.0 [2] (☖..☗) WHITE SHOGI PIECE..BLACK SHOGI PIECE - {0x2618, 0x2618, prExtendedPictographic}, // E1.0 [1] (☘️) shamrock - {0x2619, 0x261C, prExtendedPictographic}, // E0.0 [4] (☙..☜) REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX - {0x261D, 0x261D, prExtendedPictographic}, // E0.6 [1] (☝️) index pointing up - {0x261E, 0x261F, prExtendedPictographic}, // E0.0 [2] (☞..☟) WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX - {0x2620, 0x2620, prExtendedPictographic}, // E1.0 [1] (☠️) skull and crossbones - {0x2621, 0x2621, prExtendedPictographic}, // E0.0 [1] (☡) CAUTION SIGN - {0x2622, 0x2623, prExtendedPictographic}, // E1.0 [2] (☢️..☣️) radioactive..biohazard - {0x2624, 0x2625, prExtendedPictographic}, // E0.0 [2] (☤..☥) CADUCEUS..ANKH - {0x2626, 0x2626, prExtendedPictographic}, // E1.0 [1] (☦️) orthodox cross - {0x2627, 0x2629, prExtendedPictographic}, // E0.0 [3] (☧..☩) CHI RHO..CROSS OF JERUSALEM - {0x262A, 0x262A, prExtendedPictographic}, // E0.7 [1] (☪️) star and crescent - {0x262B, 0x262D, prExtendedPictographic}, // E0.0 [3] (☫..☭) FARSI SYMBOL..HAMMER AND SICKLE - {0x262E, 0x262E, prExtendedPictographic}, // E1.0 [1] (☮️) peace symbol - {0x262F, 0x262F, prExtendedPictographic}, // E0.7 [1] (☯️) yin yang - {0x2630, 0x2637, prExtendedPictographic}, // E0.0 [8] (☰..☷) TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH - {0x2638, 0x2639, prExtendedPictographic}, // E0.7 [2] (☸️..☹️) wheel of dharma..frowning face - {0x263A, 0x263A, prExtendedPictographic}, // E0.6 [1] (☺️) smiling face - {0x263B, 0x263F, prExtendedPictographic}, // E0.0 [5] (☻..☿) BLACK SMILING FACE..MERCURY - {0x2640, 0x2640, prExtendedPictographic}, // E4.0 [1] (♀️) female sign - {0x2641, 0x2641, prExtendedPictographic}, // E0.0 [1] (♁) EARTH - {0x2642, 0x2642, prExtendedPictographic}, // E4.0 [1] (♂️) male sign - {0x2643, 0x2647, prExtendedPictographic}, // E0.0 [5] (♃..♇) JUPITER..PLUTO - {0x2648, 0x2653, prExtendedPictographic}, // E0.6 [12] (♈..♓) Aries..Pisces - {0x2654, 0x265E, prExtendedPictographic}, // E0.0 [11] (♔..♞) WHITE CHESS KING..BLACK CHESS KNIGHT - {0x265F, 0x265F, prExtendedPictographic}, // E11.0 [1] (♟️) chess pawn - {0x2660, 0x2660, prExtendedPictographic}, // E0.6 [1] (♠️) spade suit - {0x2661, 0x2662, prExtendedPictographic}, // E0.0 [2] (♡..♢) WHITE HEART SUIT..WHITE DIAMOND SUIT - {0x2663, 0x2663, prExtendedPictographic}, // E0.6 [1] (♣️) club suit - {0x2664, 0x2664, prExtendedPictographic}, // E0.0 [1] (♤) WHITE SPADE SUIT - {0x2665, 0x2666, prExtendedPictographic}, // E0.6 [2] (♥️..♦️) heart suit..diamond suit - {0x2667, 0x2667, prExtendedPictographic}, // E0.0 [1] (♧) WHITE CLUB SUIT - {0x2668, 0x2668, prExtendedPictographic}, // E0.6 [1] (♨️) hot springs - {0x2669, 0x267A, prExtendedPictographic}, // E0.0 [18] (♩..♺) QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS - {0x267B, 0x267B, prExtendedPictographic}, // E0.6 [1] (♻️) recycling symbol - {0x267C, 0x267D, prExtendedPictographic}, // E0.0 [2] (♼..♽) RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL - {0x267E, 0x267E, prExtendedPictographic}, // E11.0 [1] (♾️) infinity - {0x267F, 0x267F, prExtendedPictographic}, // E0.6 [1] (♿) wheelchair symbol - {0x2680, 0x2685, prExtendedPictographic}, // E0.0 [6] (⚀..⚅) DIE FACE-1..DIE FACE-6 - {0x2690, 0x2691, prExtendedPictographic}, // E0.0 [2] (⚐..⚑) WHITE FLAG..BLACK FLAG - {0x2692, 0x2692, prExtendedPictographic}, // E1.0 [1] (⚒️) hammer and pick - {0x2693, 0x2693, prExtendedPictographic}, // E0.6 [1] (⚓) anchor - {0x2694, 0x2694, prExtendedPictographic}, // E1.0 [1] (⚔️) crossed swords - {0x2695, 0x2695, prExtendedPictographic}, // E4.0 [1] (⚕️) medical symbol - {0x2696, 0x2697, prExtendedPictographic}, // E1.0 [2] (⚖️..⚗️) balance scale..alembic - {0x2698, 0x2698, prExtendedPictographic}, // E0.0 [1] (⚘) FLOWER - {0x2699, 0x2699, prExtendedPictographic}, // E1.0 [1] (⚙️) gear - {0x269A, 0x269A, prExtendedPictographic}, // E0.0 [1] (⚚) STAFF OF HERMES - {0x269B, 0x269C, prExtendedPictographic}, // E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis - {0x269D, 0x269F, prExtendedPictographic}, // E0.0 [3] (⚝..⚟) OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT - {0x26A0, 0x26A1, prExtendedPictographic}, // E0.6 [2] (⚠️..⚡) warning..high voltage - {0x26A2, 0x26A6, prExtendedPictographic}, // E0.0 [5] (⚢..⚦) DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN - {0x26A7, 0x26A7, prExtendedPictographic}, // E13.0 [1] (⚧️) transgender symbol - {0x26A8, 0x26A9, prExtendedPictographic}, // E0.0 [2] (⚨..⚩) VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN - {0x26AA, 0x26AB, prExtendedPictographic}, // E0.6 [2] (⚪..⚫) white circle..black circle - {0x26AC, 0x26AF, prExtendedPictographic}, // E0.0 [4] (⚬..⚯) MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL - {0x26B0, 0x26B1, prExtendedPictographic}, // E1.0 [2] (⚰️..⚱️) coffin..funeral urn - {0x26B2, 0x26BC, prExtendedPictographic}, // E0.0 [11] (⚲..⚼) NEUTER..SESQUIQUADRATE - {0x26BD, 0x26BE, prExtendedPictographic}, // E0.6 [2] (⚽..⚾) soccer ball..baseball - {0x26BF, 0x26C3, prExtendedPictographic}, // E0.0 [5] (⚿..⛃) SQUARED KEY..BLACK DRAUGHTS KING - {0x26C4, 0x26C5, prExtendedPictographic}, // E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud - {0x26C6, 0x26C7, prExtendedPictographic}, // E0.0 [2] (⛆..⛇) RAIN..BLACK SNOWMAN - {0x26C8, 0x26C8, prExtendedPictographic}, // E0.7 [1] (⛈️) cloud with lightning and rain - {0x26C9, 0x26CD, prExtendedPictographic}, // E0.0 [5] (⛉..⛍) TURNED WHITE SHOGI PIECE..DISABLED CAR - {0x26CE, 0x26CE, prExtendedPictographic}, // E0.6 [1] (⛎) Ophiuchus - {0x26CF, 0x26CF, prExtendedPictographic}, // E0.7 [1] (⛏️) pick - {0x26D0, 0x26D0, prExtendedPictographic}, // E0.0 [1] (⛐) CAR SLIDING - {0x26D1, 0x26D1, prExtendedPictographic}, // E0.7 [1] (⛑️) rescue worker’s helmet - {0x26D2, 0x26D2, prExtendedPictographic}, // E0.0 [1] (⛒) CIRCLED CROSSING LANES - {0x26D3, 0x26D3, prExtendedPictographic}, // E0.7 [1] (⛓️) chains - {0x26D4, 0x26D4, prExtendedPictographic}, // E0.6 [1] (⛔) no entry - {0x26D5, 0x26E8, prExtendedPictographic}, // E0.0 [20] (⛕..⛨) ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD - {0x26E9, 0x26E9, prExtendedPictographic}, // E0.7 [1] (⛩️) shinto shrine - {0x26EA, 0x26EA, prExtendedPictographic}, // E0.6 [1] (⛪) church - {0x26EB, 0x26EF, prExtendedPictographic}, // E0.0 [5] (⛫..⛯) CASTLE..MAP SYMBOL FOR LIGHTHOUSE - {0x26F0, 0x26F1, prExtendedPictographic}, // E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground - {0x26F2, 0x26F3, prExtendedPictographic}, // E0.6 [2] (⛲..⛳) fountain..flag in hole - {0x26F4, 0x26F4, prExtendedPictographic}, // E0.7 [1] (⛴️) ferry - {0x26F5, 0x26F5, prExtendedPictographic}, // E0.6 [1] (⛵) sailboat - {0x26F6, 0x26F6, prExtendedPictographic}, // E0.0 [1] (⛶) SQUARE FOUR CORNERS - {0x26F7, 0x26F9, prExtendedPictographic}, // E0.7 [3] (⛷️..⛹️) skier..person bouncing ball - {0x26FA, 0x26FA, prExtendedPictographic}, // E0.6 [1] (⛺) tent - {0x26FB, 0x26FC, prExtendedPictographic}, // E0.0 [2] (⛻..⛼) JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL - {0x26FD, 0x26FD, prExtendedPictographic}, // E0.6 [1] (⛽) fuel pump - {0x26FE, 0x2701, prExtendedPictographic}, // E0.0 [4] (⛾..✁) CUP ON BLACK SQUARE..UPPER BLADE SCISSORS - {0x2702, 0x2702, prExtendedPictographic}, // E0.6 [1] (✂️) scissors - {0x2703, 0x2704, prExtendedPictographic}, // E0.0 [2] (✃..✄) LOWER BLADE SCISSORS..WHITE SCISSORS - {0x2705, 0x2705, prExtendedPictographic}, // E0.6 [1] (✅) check mark button - {0x2708, 0x270C, prExtendedPictographic}, // E0.6 [5] (✈️..✌️) airplane..victory hand - {0x270D, 0x270D, prExtendedPictographic}, // E0.7 [1] (✍️) writing hand - {0x270E, 0x270E, prExtendedPictographic}, // E0.0 [1] (✎) LOWER RIGHT PENCIL - {0x270F, 0x270F, prExtendedPictographic}, // E0.6 [1] (✏️) pencil - {0x2710, 0x2711, prExtendedPictographic}, // E0.0 [2] (✐..✑) UPPER RIGHT PENCIL..WHITE NIB - {0x2712, 0x2712, prExtendedPictographic}, // E0.6 [1] (✒️) black nib - {0x2714, 0x2714, prExtendedPictographic}, // E0.6 [1] (✔️) check mark - {0x2716, 0x2716, prExtendedPictographic}, // E0.6 [1] (✖️) multiply - {0x271D, 0x271D, prExtendedPictographic}, // E0.7 [1] (✝️) latin cross - {0x2721, 0x2721, prExtendedPictographic}, // E0.7 [1] (✡️) star of David - {0x2728, 0x2728, prExtendedPictographic}, // E0.6 [1] (✨) sparkles - {0x2733, 0x2734, prExtendedPictographic}, // E0.6 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star - {0x2744, 0x2744, prExtendedPictographic}, // E0.6 [1] (❄️) snowflake - {0x2747, 0x2747, prExtendedPictographic}, // E0.6 [1] (❇️) sparkle - {0x274C, 0x274C, prExtendedPictographic}, // E0.6 [1] (❌) cross mark - {0x274E, 0x274E, prExtendedPictographic}, // E0.6 [1] (❎) cross mark button - {0x2753, 0x2755, prExtendedPictographic}, // E0.6 [3] (❓..❕) red question mark..white exclamation mark - {0x2757, 0x2757, prExtendedPictographic}, // E0.6 [1] (❗) red exclamation mark - {0x2763, 0x2763, prExtendedPictographic}, // E1.0 [1] (❣️) heart exclamation - {0x2764, 0x2764, prExtendedPictographic}, // E0.6 [1] (❤️) red heart - {0x2765, 0x2767, prExtendedPictographic}, // E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET - {0x2795, 0x2797, prExtendedPictographic}, // E0.6 [3] (➕..➗) plus..divide - {0x27A1, 0x27A1, prExtendedPictographic}, // E0.6 [1] (➡️) right arrow - {0x27B0, 0x27B0, prExtendedPictographic}, // E0.6 [1] (➰) curly loop - {0x27BF, 0x27BF, prExtendedPictographic}, // E1.0 [1] (➿) double curly loop - {0x2934, 0x2935, prExtendedPictographic}, // E0.6 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down - {0x2B05, 0x2B07, prExtendedPictographic}, // E0.6 [3] (⬅️..⬇️) left arrow..down arrow - {0x2B1B, 0x2B1C, prExtendedPictographic}, // E0.6 [2] (⬛..⬜) black large square..white large square - {0x2B50, 0x2B50, prExtendedPictographic}, // E0.6 [1] (⭐) star - {0x2B55, 0x2B55, prExtendedPictographic}, // E0.6 [1] (⭕) hollow red circle - {0x2C00, 0x2C7B, prALetter}, // L& [124] GLAGOLITIC CAPITAL LETTER AZU..LATIN LETTER SMALL CAPITAL TURNED E - {0x2C7C, 0x2C7D, prALetter}, // Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V - {0x2C7E, 0x2CE4, prALetter}, // L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI - {0x2CEB, 0x2CEE, prALetter}, // L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA - {0x2CEF, 0x2CF1, prExtend}, // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS - {0x2CF2, 0x2CF3, prALetter}, // L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI - {0x2D00, 0x2D25, prALetter}, // L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE - {0x2D27, 0x2D27, prALetter}, // L& GEORGIAN SMALL LETTER YN - {0x2D2D, 0x2D2D, prALetter}, // L& GEORGIAN SMALL LETTER AEN - {0x2D30, 0x2D67, prALetter}, // Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO - {0x2D6F, 0x2D6F, prALetter}, // Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK - {0x2D7F, 0x2D7F, prExtend}, // Mn TIFINAGH CONSONANT JOINER - {0x2D80, 0x2D96, prALetter}, // Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE - {0x2DA0, 0x2DA6, prALetter}, // Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO - {0x2DA8, 0x2DAE, prALetter}, // Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO - {0x2DB0, 0x2DB6, prALetter}, // Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO - {0x2DB8, 0x2DBE, prALetter}, // Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO - {0x2DC0, 0x2DC6, prALetter}, // Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO - {0x2DC8, 0x2DCE, prALetter}, // Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO - {0x2DD0, 0x2DD6, prALetter}, // Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO - {0x2DD8, 0x2DDE, prALetter}, // Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO - {0x2DE0, 0x2DFF, prExtend}, // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS - {0x2E2F, 0x2E2F, prALetter}, // Lm VERTICAL TILDE - {0x3000, 0x3000, prWSegSpace}, // Zs IDEOGRAPHIC SPACE - {0x3005, 0x3005, prALetter}, // Lm IDEOGRAPHIC ITERATION MARK - {0x302A, 0x302D, prExtend}, // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK - {0x302E, 0x302F, prExtend}, // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK - {0x3030, 0x3030, prExtendedPictographic}, // E0.6 [1] (〰️) wavy dash - {0x3031, 0x3035, prKatakana}, // Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF - {0x303B, 0x303B, prALetter}, // Lm VERTICAL IDEOGRAPHIC ITERATION MARK - {0x303C, 0x303C, prALetter}, // Lo MASU MARK - {0x303D, 0x303D, prExtendedPictographic}, // E0.6 [1] (〽️) part alternation mark - {0x3099, 0x309A, prExtend}, // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - {0x309B, 0x309C, prKatakana}, // Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - {0x30A0, 0x30A0, prKatakana}, // Pd KATAKANA-HIRAGANA DOUBLE HYPHEN - {0x30A1, 0x30FA, prKatakana}, // Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO - {0x30FC, 0x30FE, prKatakana}, // Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK - {0x30FF, 0x30FF, prKatakana}, // Lo KATAKANA DIGRAPH KOTO - {0x3105, 0x312F, prALetter}, // Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN - {0x3131, 0x318E, prALetter}, // Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE - {0x31A0, 0x31BF, prALetter}, // Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH - {0x31F0, 0x31FF, prKatakana}, // Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO - {0x3297, 0x3297, prExtendedPictographic}, // E0.6 [1] (㊗️) Japanese “congratulations” button - {0x3299, 0x3299, prExtendedPictographic}, // E0.6 [1] (㊙️) Japanese “secret” button - {0x32D0, 0x32FE, prKatakana}, // So [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO - {0x3300, 0x3357, prKatakana}, // So [88] SQUARE APAATO..SQUARE WATTO - {0xA000, 0xA014, prALetter}, // Lo [21] YI SYLLABLE IT..YI SYLLABLE E - {0xA015, 0xA015, prALetter}, // Lm YI SYLLABLE WU - {0xA016, 0xA48C, prALetter}, // Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR - {0xA4D0, 0xA4F7, prALetter}, // Lo [40] LISU LETTER BA..LISU LETTER OE - {0xA4F8, 0xA4FD, prALetter}, // Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU - {0xA500, 0xA60B, prALetter}, // Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG - {0xA60C, 0xA60C, prALetter}, // Lm VAI SYLLABLE LENGTHENER - {0xA610, 0xA61F, prALetter}, // Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG - {0xA620, 0xA629, prNumeric}, // Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE - {0xA62A, 0xA62B, prALetter}, // Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO - {0xA640, 0xA66D, prALetter}, // L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O - {0xA66E, 0xA66E, prALetter}, // Lo CYRILLIC LETTER MULTIOCULAR O - {0xA66F, 0xA66F, prExtend}, // Mn COMBINING CYRILLIC VZMET - {0xA670, 0xA672, prExtend}, // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN - {0xA674, 0xA67D, prExtend}, // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK - {0xA67F, 0xA67F, prALetter}, // Lm CYRILLIC PAYEROK - {0xA680, 0xA69B, prALetter}, // L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O - {0xA69C, 0xA69D, prALetter}, // Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN - {0xA69E, 0xA69F, prExtend}, // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E - {0xA6A0, 0xA6E5, prALetter}, // Lo [70] BAMUM LETTER A..BAMUM LETTER KI - {0xA6E6, 0xA6EF, prALetter}, // Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM - {0xA6F0, 0xA6F1, prExtend}, // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS - {0xA708, 0xA716, prALetter}, // Sk [15] MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR - {0xA717, 0xA71F, prALetter}, // Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK - {0xA720, 0xA721, prALetter}, // Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE - {0xA722, 0xA76F, prALetter}, // L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON - {0xA770, 0xA770, prALetter}, // Lm MODIFIER LETTER US - {0xA771, 0xA787, prALetter}, // L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T - {0xA788, 0xA788, prALetter}, // Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT - {0xA789, 0xA78A, prALetter}, // Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN - {0xA78B, 0xA78E, prALetter}, // L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT - {0xA78F, 0xA78F, prALetter}, // Lo LATIN LETTER SINOLOGICAL DOT - {0xA790, 0xA7CA, prALetter}, // L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY - {0xA7D0, 0xA7D1, prALetter}, // L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G - {0xA7D3, 0xA7D3, prALetter}, // L& LATIN SMALL LETTER DOUBLE THORN - {0xA7D5, 0xA7D9, prALetter}, // L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S - {0xA7F2, 0xA7F4, prALetter}, // Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q - {0xA7F5, 0xA7F6, prALetter}, // L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H - {0xA7F7, 0xA7F7, prALetter}, // Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I - {0xA7F8, 0xA7F9, prALetter}, // Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE - {0xA7FA, 0xA7FA, prALetter}, // L& LATIN LETTER SMALL CAPITAL TURNED M - {0xA7FB, 0xA801, prALetter}, // Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I - {0xA802, 0xA802, prExtend}, // Mn SYLOTI NAGRI SIGN DVISVARA - {0xA803, 0xA805, prALetter}, // Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O - {0xA806, 0xA806, prExtend}, // Mn SYLOTI NAGRI SIGN HASANTA - {0xA807, 0xA80A, prALetter}, // Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO - {0xA80B, 0xA80B, prExtend}, // Mn SYLOTI NAGRI SIGN ANUSVARA - {0xA80C, 0xA822, prALetter}, // Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO - {0xA823, 0xA824, prExtend}, // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I - {0xA825, 0xA826, prExtend}, // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E - {0xA827, 0xA827, prExtend}, // Mc SYLOTI NAGRI VOWEL SIGN OO - {0xA82C, 0xA82C, prExtend}, // Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA - {0xA840, 0xA873, prALetter}, // Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU - {0xA880, 0xA881, prExtend}, // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA - {0xA882, 0xA8B3, prALetter}, // Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA - {0xA8B4, 0xA8C3, prExtend}, // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU - {0xA8C4, 0xA8C5, prExtend}, // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU - {0xA8D0, 0xA8D9, prNumeric}, // Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE - {0xA8E0, 0xA8F1, prExtend}, // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA - {0xA8F2, 0xA8F7, prALetter}, // Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA - {0xA8FB, 0xA8FB, prALetter}, // Lo DEVANAGARI HEADSTROKE - {0xA8FD, 0xA8FE, prALetter}, // Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY - {0xA8FF, 0xA8FF, prExtend}, // Mn DEVANAGARI VOWEL SIGN AY - {0xA900, 0xA909, prNumeric}, // Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE - {0xA90A, 0xA925, prALetter}, // Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO - {0xA926, 0xA92D, prExtend}, // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU - {0xA930, 0xA946, prALetter}, // Lo [23] REJANG LETTER KA..REJANG LETTER A - {0xA947, 0xA951, prExtend}, // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R - {0xA952, 0xA953, prExtend}, // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA - {0xA960, 0xA97C, prALetter}, // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH - {0xA980, 0xA982, prExtend}, // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR - {0xA983, 0xA983, prExtend}, // Mc JAVANESE SIGN WIGNYAN - {0xA984, 0xA9B2, prALetter}, // Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA - {0xA9B3, 0xA9B3, prExtend}, // Mn JAVANESE SIGN CECAK TELU - {0xA9B4, 0xA9B5, prExtend}, // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG - {0xA9B6, 0xA9B9, prExtend}, // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT - {0xA9BA, 0xA9BB, prExtend}, // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE - {0xA9BC, 0xA9BD, prExtend}, // Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET - {0xA9BE, 0xA9C0, prExtend}, // Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON - {0xA9CF, 0xA9CF, prALetter}, // Lm JAVANESE PANGRANGKEP - {0xA9D0, 0xA9D9, prNumeric}, // Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE - {0xA9E5, 0xA9E5, prExtend}, // Mn MYANMAR SIGN SHAN SAW - {0xA9F0, 0xA9F9, prNumeric}, // Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE - {0xAA00, 0xAA28, prALetter}, // Lo [41] CHAM LETTER A..CHAM LETTER HA - {0xAA29, 0xAA2E, prExtend}, // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE - {0xAA2F, 0xAA30, prExtend}, // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI - {0xAA31, 0xAA32, prExtend}, // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE - {0xAA33, 0xAA34, prExtend}, // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA - {0xAA35, 0xAA36, prExtend}, // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA - {0xAA40, 0xAA42, prALetter}, // Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG - {0xAA43, 0xAA43, prExtend}, // Mn CHAM CONSONANT SIGN FINAL NG - {0xAA44, 0xAA4B, prALetter}, // Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS - {0xAA4C, 0xAA4C, prExtend}, // Mn CHAM CONSONANT SIGN FINAL M - {0xAA4D, 0xAA4D, prExtend}, // Mc CHAM CONSONANT SIGN FINAL H - {0xAA50, 0xAA59, prNumeric}, // Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE - {0xAA7B, 0xAA7B, prExtend}, // Mc MYANMAR SIGN PAO KAREN TONE - {0xAA7C, 0xAA7C, prExtend}, // Mn MYANMAR SIGN TAI LAING TONE-2 - {0xAA7D, 0xAA7D, prExtend}, // Mc MYANMAR SIGN TAI LAING TONE-5 - {0xAAB0, 0xAAB0, prExtend}, // Mn TAI VIET MAI KANG - {0xAAB2, 0xAAB4, prExtend}, // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U - {0xAAB7, 0xAAB8, prExtend}, // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA - {0xAABE, 0xAABF, prExtend}, // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK - {0xAAC1, 0xAAC1, prExtend}, // Mn TAI VIET TONE MAI THO - {0xAAE0, 0xAAEA, prALetter}, // Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA - {0xAAEB, 0xAAEB, prExtend}, // Mc MEETEI MAYEK VOWEL SIGN II - {0xAAEC, 0xAAED, prExtend}, // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI - {0xAAEE, 0xAAEF, prExtend}, // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU - {0xAAF2, 0xAAF2, prALetter}, // Lo MEETEI MAYEK ANJI - {0xAAF3, 0xAAF4, prALetter}, // Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK - {0xAAF5, 0xAAF5, prExtend}, // Mc MEETEI MAYEK VOWEL SIGN VISARGA - {0xAAF6, 0xAAF6, prExtend}, // Mn MEETEI MAYEK VIRAMA - {0xAB01, 0xAB06, prALetter}, // Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO - {0xAB09, 0xAB0E, prALetter}, // Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO - {0xAB11, 0xAB16, prALetter}, // Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO - {0xAB20, 0xAB26, prALetter}, // Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO - {0xAB28, 0xAB2E, prALetter}, // Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO - {0xAB30, 0xAB5A, prALetter}, // L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG - {0xAB5B, 0xAB5B, prALetter}, // Sk MODIFIER BREVE WITH INVERTED BREVE - {0xAB5C, 0xAB5F, prALetter}, // Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK - {0xAB60, 0xAB68, prALetter}, // L& [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE - {0xAB69, 0xAB69, prALetter}, // Lm MODIFIER LETTER SMALL TURNED W - {0xAB70, 0xABBF, prALetter}, // L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA - {0xABC0, 0xABE2, prALetter}, // Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM - {0xABE3, 0xABE4, prExtend}, // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP - {0xABE5, 0xABE5, prExtend}, // Mn MEETEI MAYEK VOWEL SIGN ANAP - {0xABE6, 0xABE7, prExtend}, // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP - {0xABE8, 0xABE8, prExtend}, // Mn MEETEI MAYEK VOWEL SIGN UNAP - {0xABE9, 0xABEA, prExtend}, // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG - {0xABEC, 0xABEC, prExtend}, // Mc MEETEI MAYEK LUM IYEK - {0xABED, 0xABED, prExtend}, // Mn MEETEI MAYEK APUN IYEK - {0xABF0, 0xABF9, prNumeric}, // Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE - {0xAC00, 0xD7A3, prALetter}, // Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH - {0xD7B0, 0xD7C6, prALetter}, // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E - {0xD7CB, 0xD7FB, prALetter}, // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH - {0xFB00, 0xFB06, prALetter}, // L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST - {0xFB13, 0xFB17, prALetter}, // L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH - {0xFB1D, 0xFB1D, prHebrewLetter}, // Lo HEBREW LETTER YOD WITH HIRIQ - {0xFB1E, 0xFB1E, prExtend}, // Mn HEBREW POINT JUDEO-SPANISH VARIKA - {0xFB1F, 0xFB28, prHebrewLetter}, // Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV - {0xFB2A, 0xFB36, prHebrewLetter}, // Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH - {0xFB38, 0xFB3C, prHebrewLetter}, // Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH - {0xFB3E, 0xFB3E, prHebrewLetter}, // Lo HEBREW LETTER MEM WITH DAGESH - {0xFB40, 0xFB41, prHebrewLetter}, // Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH - {0xFB43, 0xFB44, prHebrewLetter}, // Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH - {0xFB46, 0xFB4F, prHebrewLetter}, // Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED - {0xFB50, 0xFBB1, prALetter}, // Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM - {0xFBD3, 0xFD3D, prALetter}, // Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM - {0xFD50, 0xFD8F, prALetter}, // Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM - {0xFD92, 0xFDC7, prALetter}, // Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM - {0xFDF0, 0xFDFB, prALetter}, // Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU - {0xFE00, 0xFE0F, prExtend}, // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 - {0xFE10, 0xFE10, prMidNum}, // Po PRESENTATION FORM FOR VERTICAL COMMA - {0xFE13, 0xFE13, prMidLetter}, // Po PRESENTATION FORM FOR VERTICAL COLON - {0xFE14, 0xFE14, prMidNum}, // Po PRESENTATION FORM FOR VERTICAL SEMICOLON - {0xFE20, 0xFE2F, prExtend}, // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF - {0xFE33, 0xFE34, prExtendNumLet}, // Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE - {0xFE4D, 0xFE4F, prExtendNumLet}, // Pc [3] DASHED LOW LINE..WAVY LOW LINE - {0xFE50, 0xFE50, prMidNum}, // Po SMALL COMMA - {0xFE52, 0xFE52, prMidNumLet}, // Po SMALL FULL STOP - {0xFE54, 0xFE54, prMidNum}, // Po SMALL SEMICOLON - {0xFE55, 0xFE55, prMidLetter}, // Po SMALL COLON - {0xFE70, 0xFE74, prALetter}, // Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM - {0xFE76, 0xFEFC, prALetter}, // Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM - {0xFEFF, 0xFEFF, prFormat}, // Cf ZERO WIDTH NO-BREAK SPACE - {0xFF07, 0xFF07, prMidNumLet}, // Po FULLWIDTH APOSTROPHE - {0xFF0C, 0xFF0C, prMidNum}, // Po FULLWIDTH COMMA - {0xFF0E, 0xFF0E, prMidNumLet}, // Po FULLWIDTH FULL STOP - {0xFF10, 0xFF19, prNumeric}, // Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE - {0xFF1A, 0xFF1A, prMidLetter}, // Po FULLWIDTH COLON - {0xFF1B, 0xFF1B, prMidNum}, // Po FULLWIDTH SEMICOLON - {0xFF21, 0xFF3A, prALetter}, // L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z - {0xFF3F, 0xFF3F, prExtendNumLet}, // Pc FULLWIDTH LOW LINE - {0xFF41, 0xFF5A, prALetter}, // L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z - {0xFF66, 0xFF6F, prKatakana}, // Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU - {0xFF70, 0xFF70, prKatakana}, // Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK - {0xFF71, 0xFF9D, prKatakana}, // Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N - {0xFF9E, 0xFF9F, prExtend}, // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK - {0xFFA0, 0xFFBE, prALetter}, // Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH - {0xFFC2, 0xFFC7, prALetter}, // Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E - {0xFFCA, 0xFFCF, prALetter}, // Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE - {0xFFD2, 0xFFD7, prALetter}, // Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU - {0xFFDA, 0xFFDC, prALetter}, // Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I - {0xFFF9, 0xFFFB, prFormat}, // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR - {0x10000, 0x1000B, prALetter}, // Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE - {0x1000D, 0x10026, prALetter}, // Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO - {0x10028, 0x1003A, prALetter}, // Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO - {0x1003C, 0x1003D, prALetter}, // Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE - {0x1003F, 0x1004D, prALetter}, // Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO - {0x10050, 0x1005D, prALetter}, // Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 - {0x10080, 0x100FA, prALetter}, // Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 - {0x10140, 0x10174, prALetter}, // Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS - {0x101FD, 0x101FD, prExtend}, // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE - {0x10280, 0x1029C, prALetter}, // Lo [29] LYCIAN LETTER A..LYCIAN LETTER X - {0x102A0, 0x102D0, prALetter}, // Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 - {0x102E0, 0x102E0, prExtend}, // Mn COPTIC EPACT THOUSANDS MARK - {0x10300, 0x1031F, prALetter}, // Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS - {0x1032D, 0x10340, prALetter}, // Lo [20] OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA - {0x10341, 0x10341, prALetter}, // Nl GOTHIC LETTER NINETY - {0x10342, 0x10349, prALetter}, // Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL - {0x1034A, 0x1034A, prALetter}, // Nl GOTHIC LETTER NINE HUNDRED - {0x10350, 0x10375, prALetter}, // Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA - {0x10376, 0x1037A, prExtend}, // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII - {0x10380, 0x1039D, prALetter}, // Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU - {0x103A0, 0x103C3, prALetter}, // Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA - {0x103C8, 0x103CF, prALetter}, // Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH - {0x103D1, 0x103D5, prALetter}, // Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED - {0x10400, 0x1044F, prALetter}, // L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW - {0x10450, 0x1049D, prALetter}, // Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO - {0x104A0, 0x104A9, prNumeric}, // Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE - {0x104B0, 0x104D3, prALetter}, // L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA - {0x104D8, 0x104FB, prALetter}, // L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA - {0x10500, 0x10527, prALetter}, // Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE - {0x10530, 0x10563, prALetter}, // Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW - {0x10570, 0x1057A, prALetter}, // L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA - {0x1057C, 0x1058A, prALetter}, // L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE - {0x1058C, 0x10592, prALetter}, // L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE - {0x10594, 0x10595, prALetter}, // L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE - {0x10597, 0x105A1, prALetter}, // L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA - {0x105A3, 0x105B1, prALetter}, // L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE - {0x105B3, 0x105B9, prALetter}, // L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE - {0x105BB, 0x105BC, prALetter}, // L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE - {0x10600, 0x10736, prALetter}, // Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 - {0x10740, 0x10755, prALetter}, // Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE - {0x10760, 0x10767, prALetter}, // Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807 - {0x10780, 0x10785, prALetter}, // Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK - {0x10787, 0x107B0, prALetter}, // Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK - {0x107B2, 0x107BA, prALetter}, // Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL - {0x10800, 0x10805, prALetter}, // Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA - {0x10808, 0x10808, prALetter}, // Lo CYPRIOT SYLLABLE JO - {0x1080A, 0x10835, prALetter}, // Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO - {0x10837, 0x10838, prALetter}, // Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE - {0x1083C, 0x1083C, prALetter}, // Lo CYPRIOT SYLLABLE ZA - {0x1083F, 0x10855, prALetter}, // Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW - {0x10860, 0x10876, prALetter}, // Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW - {0x10880, 0x1089E, prALetter}, // Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW - {0x108E0, 0x108F2, prALetter}, // Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH - {0x108F4, 0x108F5, prALetter}, // Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW - {0x10900, 0x10915, prALetter}, // Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU - {0x10920, 0x10939, prALetter}, // Lo [26] LYDIAN LETTER A..LYDIAN LETTER C - {0x10980, 0x109B7, prALetter}, // Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA - {0x109BE, 0x109BF, prALetter}, // Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN - {0x10A00, 0x10A00, prALetter}, // Lo KHAROSHTHI LETTER A - {0x10A01, 0x10A03, prExtend}, // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R - {0x10A05, 0x10A06, prExtend}, // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O - {0x10A0C, 0x10A0F, prExtend}, // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA - {0x10A10, 0x10A13, prALetter}, // Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA - {0x10A15, 0x10A17, prALetter}, // Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA - {0x10A19, 0x10A35, prALetter}, // Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA - {0x10A38, 0x10A3A, prExtend}, // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW - {0x10A3F, 0x10A3F, prExtend}, // Mn KHAROSHTHI VIRAMA - {0x10A60, 0x10A7C, prALetter}, // Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH - {0x10A80, 0x10A9C, prALetter}, // Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH - {0x10AC0, 0x10AC7, prALetter}, // Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW - {0x10AC9, 0x10AE4, prALetter}, // Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW - {0x10AE5, 0x10AE6, prExtend}, // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW - {0x10B00, 0x10B35, prALetter}, // Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE - {0x10B40, 0x10B55, prALetter}, // Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW - {0x10B60, 0x10B72, prALetter}, // Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW - {0x10B80, 0x10B91, prALetter}, // Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW - {0x10C00, 0x10C48, prALetter}, // Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH - {0x10C80, 0x10CB2, prALetter}, // L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US - {0x10CC0, 0x10CF2, prALetter}, // L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US - {0x10D00, 0x10D23, prALetter}, // Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA - {0x10D24, 0x10D27, prExtend}, // Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI - {0x10D30, 0x10D39, prNumeric}, // Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE - {0x10E80, 0x10EA9, prALetter}, // Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET - {0x10EAB, 0x10EAC, prExtend}, // Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK - {0x10EB0, 0x10EB1, prALetter}, // Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE - {0x10EFD, 0x10EFF, prExtend}, // Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA - {0x10F00, 0x10F1C, prALetter}, // Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL - {0x10F27, 0x10F27, prALetter}, // Lo OLD SOGDIAN LIGATURE AYIN-DALETH - {0x10F30, 0x10F45, prALetter}, // Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN - {0x10F46, 0x10F50, prExtend}, // Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW - {0x10F70, 0x10F81, prALetter}, // Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH - {0x10F82, 0x10F85, prExtend}, // Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW - {0x10FB0, 0x10FC4, prALetter}, // Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW - {0x10FE0, 0x10FF6, prALetter}, // Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH - {0x11000, 0x11000, prExtend}, // Mc BRAHMI SIGN CANDRABINDU - {0x11001, 0x11001, prExtend}, // Mn BRAHMI SIGN ANUSVARA - {0x11002, 0x11002, prExtend}, // Mc BRAHMI SIGN VISARGA - {0x11003, 0x11037, prALetter}, // Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA - {0x11038, 0x11046, prExtend}, // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA - {0x11066, 0x1106F, prNumeric}, // Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE - {0x11070, 0x11070, prExtend}, // Mn BRAHMI SIGN OLD TAMIL VIRAMA - {0x11071, 0x11072, prALetter}, // Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O - {0x11073, 0x11074, prExtend}, // Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O - {0x11075, 0x11075, prALetter}, // Lo BRAHMI LETTER OLD TAMIL LLA - {0x1107F, 0x11081, prExtend}, // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA - {0x11082, 0x11082, prExtend}, // Mc KAITHI SIGN VISARGA - {0x11083, 0x110AF, prALetter}, // Lo [45] KAITHI LETTER A..KAITHI LETTER HA - {0x110B0, 0x110B2, prExtend}, // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II - {0x110B3, 0x110B6, prExtend}, // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI - {0x110B7, 0x110B8, prExtend}, // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU - {0x110B9, 0x110BA, prExtend}, // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA - {0x110BD, 0x110BD, prFormat}, // Cf KAITHI NUMBER SIGN - {0x110C2, 0x110C2, prExtend}, // Mn KAITHI VOWEL SIGN VOCALIC R - {0x110CD, 0x110CD, prFormat}, // Cf KAITHI NUMBER SIGN ABOVE - {0x110D0, 0x110E8, prALetter}, // Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE - {0x110F0, 0x110F9, prNumeric}, // Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE - {0x11100, 0x11102, prExtend}, // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA - {0x11103, 0x11126, prALetter}, // Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA - {0x11127, 0x1112B, prExtend}, // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU - {0x1112C, 0x1112C, prExtend}, // Mc CHAKMA VOWEL SIGN E - {0x1112D, 0x11134, prExtend}, // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA - {0x11136, 0x1113F, prNumeric}, // Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE - {0x11144, 0x11144, prALetter}, // Lo CHAKMA LETTER LHAA - {0x11145, 0x11146, prExtend}, // Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI - {0x11147, 0x11147, prALetter}, // Lo CHAKMA LETTER VAA - {0x11150, 0x11172, prALetter}, // Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA - {0x11173, 0x11173, prExtend}, // Mn MAHAJANI SIGN NUKTA - {0x11176, 0x11176, prALetter}, // Lo MAHAJANI LIGATURE SHRI - {0x11180, 0x11181, prExtend}, // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA - {0x11182, 0x11182, prExtend}, // Mc SHARADA SIGN VISARGA - {0x11183, 0x111B2, prALetter}, // Lo [48] SHARADA LETTER A..SHARADA LETTER HA - {0x111B3, 0x111B5, prExtend}, // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II - {0x111B6, 0x111BE, prExtend}, // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O - {0x111BF, 0x111C0, prExtend}, // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA - {0x111C1, 0x111C4, prALetter}, // Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM - {0x111C9, 0x111CC, prExtend}, // Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK - {0x111CE, 0x111CE, prExtend}, // Mc SHARADA VOWEL SIGN PRISHTHAMATRA E - {0x111CF, 0x111CF, prExtend}, // Mn SHARADA SIGN INVERTED CANDRABINDU - {0x111D0, 0x111D9, prNumeric}, // Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE - {0x111DA, 0x111DA, prALetter}, // Lo SHARADA EKAM - {0x111DC, 0x111DC, prALetter}, // Lo SHARADA HEADSTROKE - {0x11200, 0x11211, prALetter}, // Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA - {0x11213, 0x1122B, prALetter}, // Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA - {0x1122C, 0x1122E, prExtend}, // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II - {0x1122F, 0x11231, prExtend}, // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI - {0x11232, 0x11233, prExtend}, // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU - {0x11234, 0x11234, prExtend}, // Mn KHOJKI SIGN ANUSVARA - {0x11235, 0x11235, prExtend}, // Mc KHOJKI SIGN VIRAMA - {0x11236, 0x11237, prExtend}, // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA - {0x1123E, 0x1123E, prExtend}, // Mn KHOJKI SIGN SUKUN - {0x1123F, 0x11240, prALetter}, // Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I - {0x11241, 0x11241, prExtend}, // Mn KHOJKI VOWEL SIGN VOCALIC R - {0x11280, 0x11286, prALetter}, // Lo [7] MULTANI LETTER A..MULTANI LETTER GA - {0x11288, 0x11288, prALetter}, // Lo MULTANI LETTER GHA - {0x1128A, 0x1128D, prALetter}, // Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA - {0x1128F, 0x1129D, prALetter}, // Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA - {0x1129F, 0x112A8, prALetter}, // Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA - {0x112B0, 0x112DE, prALetter}, // Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA - {0x112DF, 0x112DF, prExtend}, // Mn KHUDAWADI SIGN ANUSVARA - {0x112E0, 0x112E2, prExtend}, // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II - {0x112E3, 0x112EA, prExtend}, // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA - {0x112F0, 0x112F9, prNumeric}, // Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE - {0x11300, 0x11301, prExtend}, // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU - {0x11302, 0x11303, prExtend}, // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA - {0x11305, 0x1130C, prALetter}, // Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L - {0x1130F, 0x11310, prALetter}, // Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI - {0x11313, 0x11328, prALetter}, // Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA - {0x1132A, 0x11330, prALetter}, // Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA - {0x11332, 0x11333, prALetter}, // Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA - {0x11335, 0x11339, prALetter}, // Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA - {0x1133B, 0x1133C, prExtend}, // Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA - {0x1133D, 0x1133D, prALetter}, // Lo GRANTHA SIGN AVAGRAHA - {0x1133E, 0x1133F, prExtend}, // Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I - {0x11340, 0x11340, prExtend}, // Mn GRANTHA VOWEL SIGN II - {0x11341, 0x11344, prExtend}, // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR - {0x11347, 0x11348, prExtend}, // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI - {0x1134B, 0x1134D, prExtend}, // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA - {0x11350, 0x11350, prALetter}, // Lo GRANTHA OM - {0x11357, 0x11357, prExtend}, // Mc GRANTHA AU LENGTH MARK - {0x1135D, 0x11361, prALetter}, // Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL - {0x11362, 0x11363, prExtend}, // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL - {0x11366, 0x1136C, prExtend}, // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX - {0x11370, 0x11374, prExtend}, // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA - {0x11400, 0x11434, prALetter}, // Lo [53] NEWA LETTER A..NEWA LETTER HA - {0x11435, 0x11437, prExtend}, // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II - {0x11438, 0x1143F, prExtend}, // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI - {0x11440, 0x11441, prExtend}, // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU - {0x11442, 0x11444, prExtend}, // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA - {0x11445, 0x11445, prExtend}, // Mc NEWA SIGN VISARGA - {0x11446, 0x11446, prExtend}, // Mn NEWA SIGN NUKTA - {0x11447, 0x1144A, prALetter}, // Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI - {0x11450, 0x11459, prNumeric}, // Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE - {0x1145E, 0x1145E, prExtend}, // Mn NEWA SANDHI MARK - {0x1145F, 0x11461, prALetter}, // Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA - {0x11480, 0x114AF, prALetter}, // Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA - {0x114B0, 0x114B2, prExtend}, // Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II - {0x114B3, 0x114B8, prExtend}, // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL - {0x114B9, 0x114B9, prExtend}, // Mc TIRHUTA VOWEL SIGN E - {0x114BA, 0x114BA, prExtend}, // Mn TIRHUTA VOWEL SIGN SHORT E - {0x114BB, 0x114BE, prExtend}, // Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU - {0x114BF, 0x114C0, prExtend}, // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA - {0x114C1, 0x114C1, prExtend}, // Mc TIRHUTA SIGN VISARGA - {0x114C2, 0x114C3, prExtend}, // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA - {0x114C4, 0x114C5, prALetter}, // Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG - {0x114C7, 0x114C7, prALetter}, // Lo TIRHUTA OM - {0x114D0, 0x114D9, prNumeric}, // Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE - {0x11580, 0x115AE, prALetter}, // Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA - {0x115AF, 0x115B1, prExtend}, // Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II - {0x115B2, 0x115B5, prExtend}, // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR - {0x115B8, 0x115BB, prExtend}, // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU - {0x115BC, 0x115BD, prExtend}, // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA - {0x115BE, 0x115BE, prExtend}, // Mc SIDDHAM SIGN VISARGA - {0x115BF, 0x115C0, prExtend}, // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA - {0x115D8, 0x115DB, prALetter}, // Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U - {0x115DC, 0x115DD, prExtend}, // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU - {0x11600, 0x1162F, prALetter}, // Lo [48] MODI LETTER A..MODI LETTER LLA - {0x11630, 0x11632, prExtend}, // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II - {0x11633, 0x1163A, prExtend}, // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI - {0x1163B, 0x1163C, prExtend}, // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU - {0x1163D, 0x1163D, prExtend}, // Mn MODI SIGN ANUSVARA - {0x1163E, 0x1163E, prExtend}, // Mc MODI SIGN VISARGA - {0x1163F, 0x11640, prExtend}, // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA - {0x11644, 0x11644, prALetter}, // Lo MODI SIGN HUVA - {0x11650, 0x11659, prNumeric}, // Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE - {0x11680, 0x116AA, prALetter}, // Lo [43] TAKRI LETTER A..TAKRI LETTER RRA - {0x116AB, 0x116AB, prExtend}, // Mn TAKRI SIGN ANUSVARA - {0x116AC, 0x116AC, prExtend}, // Mc TAKRI SIGN VISARGA - {0x116AD, 0x116AD, prExtend}, // Mn TAKRI VOWEL SIGN AA - {0x116AE, 0x116AF, prExtend}, // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II - {0x116B0, 0x116B5, prExtend}, // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU - {0x116B6, 0x116B6, prExtend}, // Mc TAKRI SIGN VIRAMA - {0x116B7, 0x116B7, prExtend}, // Mn TAKRI SIGN NUKTA - {0x116B8, 0x116B8, prALetter}, // Lo TAKRI LETTER ARCHAIC KHA - {0x116C0, 0x116C9, prNumeric}, // Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE - {0x1171D, 0x1171F, prExtend}, // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA - {0x11720, 0x11721, prExtend}, // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA - {0x11722, 0x11725, prExtend}, // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU - {0x11726, 0x11726, prExtend}, // Mc AHOM VOWEL SIGN E - {0x11727, 0x1172B, prExtend}, // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER - {0x11730, 0x11739, prNumeric}, // Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE - {0x11800, 0x1182B, prALetter}, // Lo [44] DOGRA LETTER A..DOGRA LETTER RRA - {0x1182C, 0x1182E, prExtend}, // Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II - {0x1182F, 0x11837, prExtend}, // Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA - {0x11838, 0x11838, prExtend}, // Mc DOGRA SIGN VISARGA - {0x11839, 0x1183A, prExtend}, // Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA - {0x118A0, 0x118DF, prALetter}, // L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO - {0x118E0, 0x118E9, prNumeric}, // Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE - {0x118FF, 0x11906, prALetter}, // Lo [8] WARANG CITI OM..DIVES AKURU LETTER E - {0x11909, 0x11909, prALetter}, // Lo DIVES AKURU LETTER O - {0x1190C, 0x11913, prALetter}, // Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA - {0x11915, 0x11916, prALetter}, // Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA - {0x11918, 0x1192F, prALetter}, // Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA - {0x11930, 0x11935, prExtend}, // Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E - {0x11937, 0x11938, prExtend}, // Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O - {0x1193B, 0x1193C, prExtend}, // Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU - {0x1193D, 0x1193D, prExtend}, // Mc DIVES AKURU SIGN HALANTA - {0x1193E, 0x1193E, prExtend}, // Mn DIVES AKURU VIRAMA - {0x1193F, 0x1193F, prALetter}, // Lo DIVES AKURU PREFIXED NASAL SIGN - {0x11940, 0x11940, prExtend}, // Mc DIVES AKURU MEDIAL YA - {0x11941, 0x11941, prALetter}, // Lo DIVES AKURU INITIAL RA - {0x11942, 0x11942, prExtend}, // Mc DIVES AKURU MEDIAL RA - {0x11943, 0x11943, prExtend}, // Mn DIVES AKURU SIGN NUKTA - {0x11950, 0x11959, prNumeric}, // Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE - {0x119A0, 0x119A7, prALetter}, // Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR - {0x119AA, 0x119D0, prALetter}, // Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA - {0x119D1, 0x119D3, prExtend}, // Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II - {0x119D4, 0x119D7, prExtend}, // Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR - {0x119DA, 0x119DB, prExtend}, // Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI - {0x119DC, 0x119DF, prExtend}, // Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA - {0x119E0, 0x119E0, prExtend}, // Mn NANDINAGARI SIGN VIRAMA - {0x119E1, 0x119E1, prALetter}, // Lo NANDINAGARI SIGN AVAGRAHA - {0x119E3, 0x119E3, prALetter}, // Lo NANDINAGARI HEADSTROKE - {0x119E4, 0x119E4, prExtend}, // Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E - {0x11A00, 0x11A00, prALetter}, // Lo ZANABAZAR SQUARE LETTER A - {0x11A01, 0x11A0A, prExtend}, // Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK - {0x11A0B, 0x11A32, prALetter}, // Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA - {0x11A33, 0x11A38, prExtend}, // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA - {0x11A39, 0x11A39, prExtend}, // Mc ZANABAZAR SQUARE SIGN VISARGA - {0x11A3A, 0x11A3A, prALetter}, // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA - {0x11A3B, 0x11A3E, prExtend}, // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA - {0x11A47, 0x11A47, prExtend}, // Mn ZANABAZAR SQUARE SUBJOINER - {0x11A50, 0x11A50, prALetter}, // Lo SOYOMBO LETTER A - {0x11A51, 0x11A56, prExtend}, // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE - {0x11A57, 0x11A58, prExtend}, // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU - {0x11A59, 0x11A5B, prExtend}, // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK - {0x11A5C, 0x11A89, prALetter}, // Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA - {0x11A8A, 0x11A96, prExtend}, // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA - {0x11A97, 0x11A97, prExtend}, // Mc SOYOMBO SIGN VISARGA - {0x11A98, 0x11A99, prExtend}, // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER - {0x11A9D, 0x11A9D, prALetter}, // Lo SOYOMBO MARK PLUTA - {0x11AB0, 0x11AF8, prALetter}, // Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL - {0x11C00, 0x11C08, prALetter}, // Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L - {0x11C0A, 0x11C2E, prALetter}, // Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA - {0x11C2F, 0x11C2F, prExtend}, // Mc BHAIKSUKI VOWEL SIGN AA - {0x11C30, 0x11C36, prExtend}, // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L - {0x11C38, 0x11C3D, prExtend}, // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA - {0x11C3E, 0x11C3E, prExtend}, // Mc BHAIKSUKI SIGN VISARGA - {0x11C3F, 0x11C3F, prExtend}, // Mn BHAIKSUKI SIGN VIRAMA - {0x11C40, 0x11C40, prALetter}, // Lo BHAIKSUKI SIGN AVAGRAHA - {0x11C50, 0x11C59, prNumeric}, // Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE - {0x11C72, 0x11C8F, prALetter}, // Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A - {0x11C92, 0x11CA7, prExtend}, // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA - {0x11CA9, 0x11CA9, prExtend}, // Mc MARCHEN SUBJOINED LETTER YA - {0x11CAA, 0x11CB0, prExtend}, // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA - {0x11CB1, 0x11CB1, prExtend}, // Mc MARCHEN VOWEL SIGN I - {0x11CB2, 0x11CB3, prExtend}, // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E - {0x11CB4, 0x11CB4, prExtend}, // Mc MARCHEN VOWEL SIGN O - {0x11CB5, 0x11CB6, prExtend}, // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU - {0x11D00, 0x11D06, prALetter}, // Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E - {0x11D08, 0x11D09, prALetter}, // Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O - {0x11D0B, 0x11D30, prALetter}, // Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA - {0x11D31, 0x11D36, prExtend}, // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R - {0x11D3A, 0x11D3A, prExtend}, // Mn MASARAM GONDI VOWEL SIGN E - {0x11D3C, 0x11D3D, prExtend}, // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O - {0x11D3F, 0x11D45, prExtend}, // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA - {0x11D46, 0x11D46, prALetter}, // Lo MASARAM GONDI REPHA - {0x11D47, 0x11D47, prExtend}, // Mn MASARAM GONDI RA-KARA - {0x11D50, 0x11D59, prNumeric}, // Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE - {0x11D60, 0x11D65, prALetter}, // Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU - {0x11D67, 0x11D68, prALetter}, // Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI - {0x11D6A, 0x11D89, prALetter}, // Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA - {0x11D8A, 0x11D8E, prExtend}, // Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU - {0x11D90, 0x11D91, prExtend}, // Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI - {0x11D93, 0x11D94, prExtend}, // Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU - {0x11D95, 0x11D95, prExtend}, // Mn GUNJALA GONDI SIGN ANUSVARA - {0x11D96, 0x11D96, prExtend}, // Mc GUNJALA GONDI SIGN VISARGA - {0x11D97, 0x11D97, prExtend}, // Mn GUNJALA GONDI VIRAMA - {0x11D98, 0x11D98, prALetter}, // Lo GUNJALA GONDI OM - {0x11DA0, 0x11DA9, prNumeric}, // Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE - {0x11EE0, 0x11EF2, prALetter}, // Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA - {0x11EF3, 0x11EF4, prExtend}, // Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U - {0x11EF5, 0x11EF6, prExtend}, // Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O - {0x11F00, 0x11F01, prExtend}, // Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA - {0x11F02, 0x11F02, prALetter}, // Lo KAWI SIGN REPHA - {0x11F03, 0x11F03, prExtend}, // Mc KAWI SIGN VISARGA - {0x11F04, 0x11F10, prALetter}, // Lo [13] KAWI LETTER A..KAWI LETTER O - {0x11F12, 0x11F33, prALetter}, // Lo [34] KAWI LETTER KA..KAWI LETTER JNYA - {0x11F34, 0x11F35, prExtend}, // Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA - {0x11F36, 0x11F3A, prExtend}, // Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R - {0x11F3E, 0x11F3F, prExtend}, // Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI - {0x11F40, 0x11F40, prExtend}, // Mn KAWI VOWEL SIGN EU - {0x11F41, 0x11F41, prExtend}, // Mc KAWI SIGN KILLER - {0x11F42, 0x11F42, prExtend}, // Mn KAWI CONJOINER - {0x11F50, 0x11F59, prNumeric}, // Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE - {0x11FB0, 0x11FB0, prALetter}, // Lo LISU LETTER YHA - {0x12000, 0x12399, prALetter}, // Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U - {0x12400, 0x1246E, prALetter}, // Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM - {0x12480, 0x12543, prALetter}, // Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU - {0x12F90, 0x12FF0, prALetter}, // Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114 - {0x13000, 0x1342F, prALetter}, // Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D - {0x13430, 0x1343F, prFormat}, // Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE - {0x13440, 0x13440, prExtend}, // Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY - {0x13441, 0x13446, prALetter}, // Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN - {0x13447, 0x13455, prExtend}, // Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED - {0x14400, 0x14646, prALetter}, // Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530 - {0x16800, 0x16A38, prALetter}, // Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ - {0x16A40, 0x16A5E, prALetter}, // Lo [31] MRO LETTER TA..MRO LETTER TEK - {0x16A60, 0x16A69, prNumeric}, // Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE - {0x16A70, 0x16ABE, prALetter}, // Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA - {0x16AC0, 0x16AC9, prNumeric}, // Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE - {0x16AD0, 0x16AED, prALetter}, // Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I - {0x16AF0, 0x16AF4, prExtend}, // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE - {0x16B00, 0x16B2F, prALetter}, // Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU - {0x16B30, 0x16B36, prExtend}, // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM - {0x16B40, 0x16B43, prALetter}, // Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM - {0x16B50, 0x16B59, prNumeric}, // Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE - {0x16B63, 0x16B77, prALetter}, // Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS - {0x16B7D, 0x16B8F, prALetter}, // Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ - {0x16E40, 0x16E7F, prALetter}, // L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y - {0x16F00, 0x16F4A, prALetter}, // Lo [75] MIAO LETTER PA..MIAO LETTER RTE - {0x16F4F, 0x16F4F, prExtend}, // Mn MIAO SIGN CONSONANT MODIFIER BAR - {0x16F50, 0x16F50, prALetter}, // Lo MIAO LETTER NASALIZATION - {0x16F51, 0x16F87, prExtend}, // Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI - {0x16F8F, 0x16F92, prExtend}, // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW - {0x16F93, 0x16F9F, prALetter}, // Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 - {0x16FE0, 0x16FE1, prALetter}, // Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK - {0x16FE3, 0x16FE3, prALetter}, // Lm OLD CHINESE ITERATION MARK - {0x16FE4, 0x16FE4, prExtend}, // Mn KHITAN SMALL SCRIPT FILLER - {0x16FF0, 0x16FF1, prExtend}, // Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY - {0x1AFF0, 0x1AFF3, prKatakana}, // Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 - {0x1AFF5, 0x1AFFB, prKatakana}, // Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 - {0x1AFFD, 0x1AFFE, prKatakana}, // Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 - {0x1B000, 0x1B000, prKatakana}, // Lo KATAKANA LETTER ARCHAIC E - {0x1B120, 0x1B122, prKatakana}, // Lo [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU - {0x1B155, 0x1B155, prKatakana}, // Lo KATAKANA LETTER SMALL KO - {0x1B164, 0x1B167, prKatakana}, // Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N - {0x1BC00, 0x1BC6A, prALetter}, // Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M - {0x1BC70, 0x1BC7C, prALetter}, // Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK - {0x1BC80, 0x1BC88, prALetter}, // Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL - {0x1BC90, 0x1BC99, prALetter}, // Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW - {0x1BC9D, 0x1BC9E, prExtend}, // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK - {0x1BCA0, 0x1BCA3, prFormat}, // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP - {0x1CF00, 0x1CF2D, prExtend}, // Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT - {0x1CF30, 0x1CF46, prExtend}, // Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG - {0x1D165, 0x1D166, prExtend}, // Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM - {0x1D167, 0x1D169, prExtend}, // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 - {0x1D16D, 0x1D172, prExtend}, // Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 - {0x1D173, 0x1D17A, prFormat}, // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE - {0x1D17B, 0x1D182, prExtend}, // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE - {0x1D185, 0x1D18B, prExtend}, // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE - {0x1D1AA, 0x1D1AD, prExtend}, // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO - {0x1D242, 0x1D244, prExtend}, // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME - {0x1D400, 0x1D454, prALetter}, // L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G - {0x1D456, 0x1D49C, prALetter}, // L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A - {0x1D49E, 0x1D49F, prALetter}, // L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D - {0x1D4A2, 0x1D4A2, prALetter}, // L& MATHEMATICAL SCRIPT CAPITAL G - {0x1D4A5, 0x1D4A6, prALetter}, // L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K - {0x1D4A9, 0x1D4AC, prALetter}, // L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q - {0x1D4AE, 0x1D4B9, prALetter}, // L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D - {0x1D4BB, 0x1D4BB, prALetter}, // L& MATHEMATICAL SCRIPT SMALL F - {0x1D4BD, 0x1D4C3, prALetter}, // L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N - {0x1D4C5, 0x1D505, prALetter}, // L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B - {0x1D507, 0x1D50A, prALetter}, // L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G - {0x1D50D, 0x1D514, prALetter}, // L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q - {0x1D516, 0x1D51C, prALetter}, // L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y - {0x1D51E, 0x1D539, prALetter}, // L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B - {0x1D53B, 0x1D53E, prALetter}, // L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G - {0x1D540, 0x1D544, prALetter}, // L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M - {0x1D546, 0x1D546, prALetter}, // L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O - {0x1D54A, 0x1D550, prALetter}, // L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y - {0x1D552, 0x1D6A5, prALetter}, // L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J - {0x1D6A8, 0x1D6C0, prALetter}, // L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA - {0x1D6C2, 0x1D6DA, prALetter}, // L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA - {0x1D6DC, 0x1D6FA, prALetter}, // L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA - {0x1D6FC, 0x1D714, prALetter}, // L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA - {0x1D716, 0x1D734, prALetter}, // L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA - {0x1D736, 0x1D74E, prALetter}, // L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA - {0x1D750, 0x1D76E, prALetter}, // L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA - {0x1D770, 0x1D788, prALetter}, // L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA - {0x1D78A, 0x1D7A8, prALetter}, // L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA - {0x1D7AA, 0x1D7C2, prALetter}, // L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA - {0x1D7C4, 0x1D7CB, prALetter}, // L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA - {0x1D7CE, 0x1D7FF, prNumeric}, // Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE - {0x1DA00, 0x1DA36, prExtend}, // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN - {0x1DA3B, 0x1DA6C, prExtend}, // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT - {0x1DA75, 0x1DA75, prExtend}, // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS - {0x1DA84, 0x1DA84, prExtend}, // Mn SIGNWRITING LOCATION HEAD NECK - {0x1DA9B, 0x1DA9F, prExtend}, // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 - {0x1DAA1, 0x1DAAF, prExtend}, // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 - {0x1DF00, 0x1DF09, prALetter}, // L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK - {0x1DF0A, 0x1DF0A, prALetter}, // Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK - {0x1DF0B, 0x1DF1E, prALetter}, // L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL - {0x1DF25, 0x1DF2A, prALetter}, // L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK - {0x1E000, 0x1E006, prExtend}, // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE - {0x1E008, 0x1E018, prExtend}, // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU - {0x1E01B, 0x1E021, prExtend}, // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI - {0x1E023, 0x1E024, prExtend}, // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS - {0x1E026, 0x1E02A, prExtend}, // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA - {0x1E030, 0x1E06D, prALetter}, // Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE - {0x1E08F, 0x1E08F, prExtend}, // Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - {0x1E100, 0x1E12C, prALetter}, // Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W - {0x1E130, 0x1E136, prExtend}, // Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D - {0x1E137, 0x1E13D, prALetter}, // Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER - {0x1E140, 0x1E149, prNumeric}, // Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE - {0x1E14E, 0x1E14E, prALetter}, // Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ - {0x1E290, 0x1E2AD, prALetter}, // Lo [30] TOTO LETTER PA..TOTO LETTER A - {0x1E2AE, 0x1E2AE, prExtend}, // Mn TOTO SIGN RISING TONE - {0x1E2C0, 0x1E2EB, prALetter}, // Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH - {0x1E2EC, 0x1E2EF, prExtend}, // Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI - {0x1E2F0, 0x1E2F9, prNumeric}, // Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE - {0x1E4D0, 0x1E4EA, prALetter}, // Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL - {0x1E4EB, 0x1E4EB, prALetter}, // Lm NAG MUNDARI SIGN OJOD - {0x1E4EC, 0x1E4EF, prExtend}, // Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH - {0x1E4F0, 0x1E4F9, prNumeric}, // Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE - {0x1E7E0, 0x1E7E6, prALetter}, // Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO - {0x1E7E8, 0x1E7EB, prALetter}, // Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE - {0x1E7ED, 0x1E7EE, prALetter}, // Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE - {0x1E7F0, 0x1E7FE, prALetter}, // Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE - {0x1E800, 0x1E8C4, prALetter}, // Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON - {0x1E8D0, 0x1E8D6, prExtend}, // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS - {0x1E900, 0x1E943, prALetter}, // L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA - {0x1E944, 0x1E94A, prExtend}, // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA - {0x1E94B, 0x1E94B, prALetter}, // Lm ADLAM NASALIZATION MARK - {0x1E950, 0x1E959, prNumeric}, // Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE - {0x1EE00, 0x1EE03, prALetter}, // Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL - {0x1EE05, 0x1EE1F, prALetter}, // Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF - {0x1EE21, 0x1EE22, prALetter}, // Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM - {0x1EE24, 0x1EE24, prALetter}, // Lo ARABIC MATHEMATICAL INITIAL HEH - {0x1EE27, 0x1EE27, prALetter}, // Lo ARABIC MATHEMATICAL INITIAL HAH - {0x1EE29, 0x1EE32, prALetter}, // Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF - {0x1EE34, 0x1EE37, prALetter}, // Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH - {0x1EE39, 0x1EE39, prALetter}, // Lo ARABIC MATHEMATICAL INITIAL DAD - {0x1EE3B, 0x1EE3B, prALetter}, // Lo ARABIC MATHEMATICAL INITIAL GHAIN - {0x1EE42, 0x1EE42, prALetter}, // Lo ARABIC MATHEMATICAL TAILED JEEM - {0x1EE47, 0x1EE47, prALetter}, // Lo ARABIC MATHEMATICAL TAILED HAH - {0x1EE49, 0x1EE49, prALetter}, // Lo ARABIC MATHEMATICAL TAILED YEH - {0x1EE4B, 0x1EE4B, prALetter}, // Lo ARABIC MATHEMATICAL TAILED LAM - {0x1EE4D, 0x1EE4F, prALetter}, // Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN - {0x1EE51, 0x1EE52, prALetter}, // Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF - {0x1EE54, 0x1EE54, prALetter}, // Lo ARABIC MATHEMATICAL TAILED SHEEN - {0x1EE57, 0x1EE57, prALetter}, // Lo ARABIC MATHEMATICAL TAILED KHAH - {0x1EE59, 0x1EE59, prALetter}, // Lo ARABIC MATHEMATICAL TAILED DAD - {0x1EE5B, 0x1EE5B, prALetter}, // Lo ARABIC MATHEMATICAL TAILED GHAIN - {0x1EE5D, 0x1EE5D, prALetter}, // Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON - {0x1EE5F, 0x1EE5F, prALetter}, // Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF - {0x1EE61, 0x1EE62, prALetter}, // Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM - {0x1EE64, 0x1EE64, prALetter}, // Lo ARABIC MATHEMATICAL STRETCHED HEH - {0x1EE67, 0x1EE6A, prALetter}, // Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF - {0x1EE6C, 0x1EE72, prALetter}, // Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF - {0x1EE74, 0x1EE77, prALetter}, // Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH - {0x1EE79, 0x1EE7C, prALetter}, // Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH - {0x1EE7E, 0x1EE7E, prALetter}, // Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH - {0x1EE80, 0x1EE89, prALetter}, // Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH - {0x1EE8B, 0x1EE9B, prALetter}, // Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN - {0x1EEA1, 0x1EEA3, prALetter}, // Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL - {0x1EEA5, 0x1EEA9, prALetter}, // Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH - {0x1EEAB, 0x1EEBB, prALetter}, // Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN - {0x1F000, 0x1F003, prExtendedPictographic}, // E0.0 [4] (🀀..🀃) MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND - {0x1F004, 0x1F004, prExtendedPictographic}, // E0.6 [1] (🀄) mahjong red dragon - {0x1F005, 0x1F0CE, prExtendedPictographic}, // E0.0 [202] (🀅..🃎) MAHJONG TILE GREEN DRAGON..PLAYING CARD KING OF DIAMONDS - {0x1F0CF, 0x1F0CF, prExtendedPictographic}, // E0.6 [1] (🃏) joker - {0x1F0D0, 0x1F0FF, prExtendedPictographic}, // E0.0 [48] (🃐..🃿) .. - {0x1F10D, 0x1F10F, prExtendedPictographic}, // E0.0 [3] (🄍..🄏) CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH - {0x1F12F, 0x1F12F, prExtendedPictographic}, // E0.0 [1] (🄯) COPYLEFT SYMBOL - {0x1F130, 0x1F149, prALetter}, // So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z - {0x1F150, 0x1F169, prALetter}, // So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z - {0x1F16C, 0x1F16F, prExtendedPictographic}, // E0.0 [4] (🅬..🅯) RAISED MR SIGN..CIRCLED HUMAN FIGURE - {0x1F170, 0x1F189, prALetter}, // So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z - {0x1F170, 0x1F171, prExtendedPictographic}, // E0.6 [2] (🅰️..🅱️) A button (blood type)..B button (blood type) - {0x1F17E, 0x1F17F, prExtendedPictographic}, // E0.6 [2] (🅾️..🅿️) O button (blood type)..P button - {0x1F18E, 0x1F18E, prExtendedPictographic}, // E0.6 [1] (🆎) AB button (blood type) - {0x1F191, 0x1F19A, prExtendedPictographic}, // E0.6 [10] (🆑..🆚) CL button..VS button - {0x1F1AD, 0x1F1E5, prExtendedPictographic}, // E0.0 [57] (🆭..🇥) MASK WORK SYMBOL.. - {0x1F1E6, 0x1F1FF, prRegionalIndicator}, // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z - {0x1F201, 0x1F202, prExtendedPictographic}, // E0.6 [2] (🈁..🈂️) Japanese “here” button..Japanese “service charge” button - {0x1F203, 0x1F20F, prExtendedPictographic}, // E0.0 [13] (🈃..🈏) .. - {0x1F21A, 0x1F21A, prExtendedPictographic}, // E0.6 [1] (🈚) Japanese “free of charge” button - {0x1F22F, 0x1F22F, prExtendedPictographic}, // E0.6 [1] (🈯) Japanese “reserved” button - {0x1F232, 0x1F23A, prExtendedPictographic}, // E0.6 [9] (🈲..🈺) Japanese “prohibited” button..Japanese “open for business” button - {0x1F23C, 0x1F23F, prExtendedPictographic}, // E0.0 [4] (🈼..🈿) .. - {0x1F249, 0x1F24F, prExtendedPictographic}, // E0.0 [7] (🉉..🉏) .. - {0x1F250, 0x1F251, prExtendedPictographic}, // E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button - {0x1F252, 0x1F2FF, prExtendedPictographic}, // E0.0 [174] (🉒..🋿) .. - {0x1F300, 0x1F30C, prExtendedPictographic}, // E0.6 [13] (🌀..🌌) cyclone..milky way - {0x1F30D, 0x1F30E, prExtendedPictographic}, // E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas - {0x1F30F, 0x1F30F, prExtendedPictographic}, // E0.6 [1] (🌏) globe showing Asia-Australia - {0x1F310, 0x1F310, prExtendedPictographic}, // E1.0 [1] (🌐) globe with meridians - {0x1F311, 0x1F311, prExtendedPictographic}, // E0.6 [1] (🌑) new moon - {0x1F312, 0x1F312, prExtendedPictographic}, // E1.0 [1] (🌒) waxing crescent moon - {0x1F313, 0x1F315, prExtendedPictographic}, // E0.6 [3] (🌓..🌕) first quarter moon..full moon - {0x1F316, 0x1F318, prExtendedPictographic}, // E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon - {0x1F319, 0x1F319, prExtendedPictographic}, // E0.6 [1] (🌙) crescent moon - {0x1F31A, 0x1F31A, prExtendedPictographic}, // E1.0 [1] (🌚) new moon face - {0x1F31B, 0x1F31B, prExtendedPictographic}, // E0.6 [1] (🌛) first quarter moon face - {0x1F31C, 0x1F31C, prExtendedPictographic}, // E0.7 [1] (🌜) last quarter moon face - {0x1F31D, 0x1F31E, prExtendedPictographic}, // E1.0 [2] (🌝..🌞) full moon face..sun with face - {0x1F31F, 0x1F320, prExtendedPictographic}, // E0.6 [2] (🌟..🌠) glowing star..shooting star - {0x1F321, 0x1F321, prExtendedPictographic}, // E0.7 [1] (🌡️) thermometer - {0x1F322, 0x1F323, prExtendedPictographic}, // E0.0 [2] (🌢..🌣) BLACK DROPLET..WHITE SUN - {0x1F324, 0x1F32C, prExtendedPictographic}, // E0.7 [9] (🌤️..🌬️) sun behind small cloud..wind face - {0x1F32D, 0x1F32F, prExtendedPictographic}, // E1.0 [3] (🌭..🌯) hot dog..burrito - {0x1F330, 0x1F331, prExtendedPictographic}, // E0.6 [2] (🌰..🌱) chestnut..seedling - {0x1F332, 0x1F333, prExtendedPictographic}, // E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree - {0x1F334, 0x1F335, prExtendedPictographic}, // E0.6 [2] (🌴..🌵) palm tree..cactus - {0x1F336, 0x1F336, prExtendedPictographic}, // E0.7 [1] (🌶️) hot pepper - {0x1F337, 0x1F34A, prExtendedPictographic}, // E0.6 [20] (🌷..🍊) tulip..tangerine - {0x1F34B, 0x1F34B, prExtendedPictographic}, // E1.0 [1] (🍋) lemon - {0x1F34C, 0x1F34F, prExtendedPictographic}, // E0.6 [4] (🍌..🍏) banana..green apple - {0x1F350, 0x1F350, prExtendedPictographic}, // E1.0 [1] (🍐) pear - {0x1F351, 0x1F37B, prExtendedPictographic}, // E0.6 [43] (🍑..🍻) peach..clinking beer mugs - {0x1F37C, 0x1F37C, prExtendedPictographic}, // E1.0 [1] (🍼) baby bottle - {0x1F37D, 0x1F37D, prExtendedPictographic}, // E0.7 [1] (🍽️) fork and knife with plate - {0x1F37E, 0x1F37F, prExtendedPictographic}, // E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn - {0x1F380, 0x1F393, prExtendedPictographic}, // E0.6 [20] (🎀..🎓) ribbon..graduation cap - {0x1F394, 0x1F395, prExtendedPictographic}, // E0.0 [2] (🎔..🎕) HEART WITH TIP ON THE LEFT..BOUQUET OF FLOWERS - {0x1F396, 0x1F397, prExtendedPictographic}, // E0.7 [2] (🎖️..🎗️) military medal..reminder ribbon - {0x1F398, 0x1F398, prExtendedPictographic}, // E0.0 [1] (🎘) MUSICAL KEYBOARD WITH JACKS - {0x1F399, 0x1F39B, prExtendedPictographic}, // E0.7 [3] (🎙️..🎛️) studio microphone..control knobs - {0x1F39C, 0x1F39D, prExtendedPictographic}, // E0.0 [2] (🎜..🎝) BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES - {0x1F39E, 0x1F39F, prExtendedPictographic}, // E0.7 [2] (🎞️..🎟️) film frames..admission tickets - {0x1F3A0, 0x1F3C4, prExtendedPictographic}, // E0.6 [37] (🎠..🏄) carousel horse..person surfing - {0x1F3C5, 0x1F3C5, prExtendedPictographic}, // E1.0 [1] (🏅) sports medal - {0x1F3C6, 0x1F3C6, prExtendedPictographic}, // E0.6 [1] (🏆) trophy - {0x1F3C7, 0x1F3C7, prExtendedPictographic}, // E1.0 [1] (🏇) horse racing - {0x1F3C8, 0x1F3C8, prExtendedPictographic}, // E0.6 [1] (🏈) american football - {0x1F3C9, 0x1F3C9, prExtendedPictographic}, // E1.0 [1] (🏉) rugby football - {0x1F3CA, 0x1F3CA, prExtendedPictographic}, // E0.6 [1] (🏊) person swimming - {0x1F3CB, 0x1F3CE, prExtendedPictographic}, // E0.7 [4] (🏋️..🏎️) person lifting weights..racing car - {0x1F3CF, 0x1F3D3, prExtendedPictographic}, // E1.0 [5] (🏏..🏓) cricket game..ping pong - {0x1F3D4, 0x1F3DF, prExtendedPictographic}, // E0.7 [12] (🏔️..🏟️) snow-capped mountain..stadium - {0x1F3E0, 0x1F3E3, prExtendedPictographic}, // E0.6 [4] (🏠..🏣) house..Japanese post office - {0x1F3E4, 0x1F3E4, prExtendedPictographic}, // E1.0 [1] (🏤) post office - {0x1F3E5, 0x1F3F0, prExtendedPictographic}, // E0.6 [12] (🏥..🏰) hospital..castle - {0x1F3F1, 0x1F3F2, prExtendedPictographic}, // E0.0 [2] (🏱..🏲) WHITE PENNANT..BLACK PENNANT - {0x1F3F3, 0x1F3F3, prExtendedPictographic}, // E0.7 [1] (🏳️) white flag - {0x1F3F4, 0x1F3F4, prExtendedPictographic}, // E1.0 [1] (🏴) black flag - {0x1F3F5, 0x1F3F5, prExtendedPictographic}, // E0.7 [1] (🏵️) rosette - {0x1F3F6, 0x1F3F6, prExtendedPictographic}, // E0.0 [1] (🏶) BLACK ROSETTE - {0x1F3F7, 0x1F3F7, prExtendedPictographic}, // E0.7 [1] (🏷️) label - {0x1F3F8, 0x1F3FA, prExtendedPictographic}, // E1.0 [3] (🏸..🏺) badminton..amphora - {0x1F3FB, 0x1F3FF, prExtend}, // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 - {0x1F400, 0x1F407, prExtendedPictographic}, // E1.0 [8] (🐀..🐇) rat..rabbit - {0x1F408, 0x1F408, prExtendedPictographic}, // E0.7 [1] (🐈) cat - {0x1F409, 0x1F40B, prExtendedPictographic}, // E1.0 [3] (🐉..🐋) dragon..whale - {0x1F40C, 0x1F40E, prExtendedPictographic}, // E0.6 [3] (🐌..🐎) snail..horse - {0x1F40F, 0x1F410, prExtendedPictographic}, // E1.0 [2] (🐏..🐐) ram..goat - {0x1F411, 0x1F412, prExtendedPictographic}, // E0.6 [2] (🐑..🐒) ewe..monkey - {0x1F413, 0x1F413, prExtendedPictographic}, // E1.0 [1] (🐓) rooster - {0x1F414, 0x1F414, prExtendedPictographic}, // E0.6 [1] (🐔) chicken - {0x1F415, 0x1F415, prExtendedPictographic}, // E0.7 [1] (🐕) dog - {0x1F416, 0x1F416, prExtendedPictographic}, // E1.0 [1] (🐖) pig - {0x1F417, 0x1F429, prExtendedPictographic}, // E0.6 [19] (🐗..🐩) boar..poodle - {0x1F42A, 0x1F42A, prExtendedPictographic}, // E1.0 [1] (🐪) camel - {0x1F42B, 0x1F43E, prExtendedPictographic}, // E0.6 [20] (🐫..🐾) two-hump camel..paw prints - {0x1F43F, 0x1F43F, prExtendedPictographic}, // E0.7 [1] (🐿️) chipmunk - {0x1F440, 0x1F440, prExtendedPictographic}, // E0.6 [1] (👀) eyes - {0x1F441, 0x1F441, prExtendedPictographic}, // E0.7 [1] (👁️) eye - {0x1F442, 0x1F464, prExtendedPictographic}, // E0.6 [35] (👂..👤) ear..bust in silhouette - {0x1F465, 0x1F465, prExtendedPictographic}, // E1.0 [1] (👥) busts in silhouette - {0x1F466, 0x1F46B, prExtendedPictographic}, // E0.6 [6] (👦..👫) boy..woman and man holding hands - {0x1F46C, 0x1F46D, prExtendedPictographic}, // E1.0 [2] (👬..👭) men holding hands..women holding hands - {0x1F46E, 0x1F4AC, prExtendedPictographic}, // E0.6 [63] (👮..💬) police officer..speech balloon - {0x1F4AD, 0x1F4AD, prExtendedPictographic}, // E1.0 [1] (💭) thought balloon - {0x1F4AE, 0x1F4B5, prExtendedPictographic}, // E0.6 [8] (💮..💵) white flower..dollar banknote - {0x1F4B6, 0x1F4B7, prExtendedPictographic}, // E1.0 [2] (💶..💷) euro banknote..pound banknote - {0x1F4B8, 0x1F4EB, prExtendedPictographic}, // E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag - {0x1F4EC, 0x1F4ED, prExtendedPictographic}, // E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag - {0x1F4EE, 0x1F4EE, prExtendedPictographic}, // E0.6 [1] (📮) postbox - {0x1F4EF, 0x1F4EF, prExtendedPictographic}, // E1.0 [1] (📯) postal horn - {0x1F4F0, 0x1F4F4, prExtendedPictographic}, // E0.6 [5] (📰..📴) newspaper..mobile phone off - {0x1F4F5, 0x1F4F5, prExtendedPictographic}, // E1.0 [1] (📵) no mobile phones - {0x1F4F6, 0x1F4F7, prExtendedPictographic}, // E0.6 [2] (📶..📷) antenna bars..camera - {0x1F4F8, 0x1F4F8, prExtendedPictographic}, // E1.0 [1] (📸) camera with flash - {0x1F4F9, 0x1F4FC, prExtendedPictographic}, // E0.6 [4] (📹..📼) video camera..videocassette - {0x1F4FD, 0x1F4FD, prExtendedPictographic}, // E0.7 [1] (📽️) film projector - {0x1F4FE, 0x1F4FE, prExtendedPictographic}, // E0.0 [1] (📾) PORTABLE STEREO - {0x1F4FF, 0x1F502, prExtendedPictographic}, // E1.0 [4] (📿..🔂) prayer beads..repeat single button - {0x1F503, 0x1F503, prExtendedPictographic}, // E0.6 [1] (🔃) clockwise vertical arrows - {0x1F504, 0x1F507, prExtendedPictographic}, // E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker - {0x1F508, 0x1F508, prExtendedPictographic}, // E0.7 [1] (🔈) speaker low volume - {0x1F509, 0x1F509, prExtendedPictographic}, // E1.0 [1] (🔉) speaker medium volume - {0x1F50A, 0x1F514, prExtendedPictographic}, // E0.6 [11] (🔊..🔔) speaker high volume..bell - {0x1F515, 0x1F515, prExtendedPictographic}, // E1.0 [1] (🔕) bell with slash - {0x1F516, 0x1F52B, prExtendedPictographic}, // E0.6 [22] (🔖..🔫) bookmark..water pistol - {0x1F52C, 0x1F52D, prExtendedPictographic}, // E1.0 [2] (🔬..🔭) microscope..telescope - {0x1F52E, 0x1F53D, prExtendedPictographic}, // E0.6 [16] (🔮..🔽) crystal ball..downwards button - {0x1F546, 0x1F548, prExtendedPictographic}, // E0.0 [3] (🕆..🕈) WHITE LATIN CROSS..CELTIC CROSS - {0x1F549, 0x1F54A, prExtendedPictographic}, // E0.7 [2] (🕉️..🕊️) om..dove - {0x1F54B, 0x1F54E, prExtendedPictographic}, // E1.0 [4] (🕋..🕎) kaaba..menorah - {0x1F54F, 0x1F54F, prExtendedPictographic}, // E0.0 [1] (🕏) BOWL OF HYGIEIA - {0x1F550, 0x1F55B, prExtendedPictographic}, // E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock - {0x1F55C, 0x1F567, prExtendedPictographic}, // E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty - {0x1F568, 0x1F56E, prExtendedPictographic}, // E0.0 [7] (🕨..🕮) RIGHT SPEAKER..BOOK - {0x1F56F, 0x1F570, prExtendedPictographic}, // E0.7 [2] (🕯️..🕰️) candle..mantelpiece clock - {0x1F571, 0x1F572, prExtendedPictographic}, // E0.0 [2] (🕱..🕲) BLACK SKULL AND CROSSBONES..NO PIRACY - {0x1F573, 0x1F579, prExtendedPictographic}, // E0.7 [7] (🕳️..🕹️) hole..joystick - {0x1F57A, 0x1F57A, prExtendedPictographic}, // E3.0 [1] (🕺) man dancing - {0x1F57B, 0x1F586, prExtendedPictographic}, // E0.0 [12] (🕻..🖆) LEFT HAND TELEPHONE RECEIVER..PEN OVER STAMPED ENVELOPE - {0x1F587, 0x1F587, prExtendedPictographic}, // E0.7 [1] (🖇️) linked paperclips - {0x1F588, 0x1F589, prExtendedPictographic}, // E0.0 [2] (🖈..🖉) BLACK PUSHPIN..LOWER LEFT PENCIL - {0x1F58A, 0x1F58D, prExtendedPictographic}, // E0.7 [4] (🖊️..🖍️) pen..crayon - {0x1F58E, 0x1F58F, prExtendedPictographic}, // E0.0 [2] (🖎..🖏) LEFT WRITING HAND..TURNED OK HAND SIGN - {0x1F590, 0x1F590, prExtendedPictographic}, // E0.7 [1] (🖐️) hand with fingers splayed - {0x1F591, 0x1F594, prExtendedPictographic}, // E0.0 [4] (🖑..🖔) REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND - {0x1F595, 0x1F596, prExtendedPictographic}, // E1.0 [2] (🖕..🖖) middle finger..vulcan salute - {0x1F597, 0x1F5A3, prExtendedPictographic}, // E0.0 [13] (🖗..🖣) WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX - {0x1F5A4, 0x1F5A4, prExtendedPictographic}, // E3.0 [1] (🖤) black heart - {0x1F5A5, 0x1F5A5, prExtendedPictographic}, // E0.7 [1] (🖥️) desktop computer - {0x1F5A6, 0x1F5A7, prExtendedPictographic}, // E0.0 [2] (🖦..🖧) KEYBOARD AND MOUSE..THREE NETWORKED COMPUTERS - {0x1F5A8, 0x1F5A8, prExtendedPictographic}, // E0.7 [1] (🖨️) printer - {0x1F5A9, 0x1F5B0, prExtendedPictographic}, // E0.0 [8] (🖩..🖰) POCKET CALCULATOR..TWO BUTTON MOUSE - {0x1F5B1, 0x1F5B2, prExtendedPictographic}, // E0.7 [2] (🖱️..🖲️) computer mouse..trackball - {0x1F5B3, 0x1F5BB, prExtendedPictographic}, // E0.0 [9] (🖳..🖻) OLD PERSONAL COMPUTER..DOCUMENT WITH PICTURE - {0x1F5BC, 0x1F5BC, prExtendedPictographic}, // E0.7 [1] (🖼️) framed picture - {0x1F5BD, 0x1F5C1, prExtendedPictographic}, // E0.0 [5] (🖽..🗁) FRAME WITH TILES..OPEN FOLDER - {0x1F5C2, 0x1F5C4, prExtendedPictographic}, // E0.7 [3] (🗂️..🗄️) card index dividers..file cabinet - {0x1F5C5, 0x1F5D0, prExtendedPictographic}, // E0.0 [12] (🗅..🗐) EMPTY NOTE..PAGES - {0x1F5D1, 0x1F5D3, prExtendedPictographic}, // E0.7 [3] (🗑️..🗓️) wastebasket..spiral calendar - {0x1F5D4, 0x1F5DB, prExtendedPictographic}, // E0.0 [8] (🗔..🗛) DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL - {0x1F5DC, 0x1F5DE, prExtendedPictographic}, // E0.7 [3] (🗜️..🗞️) clamp..rolled-up newspaper - {0x1F5DF, 0x1F5E0, prExtendedPictographic}, // E0.0 [2] (🗟..🗠) PAGE WITH CIRCLED TEXT..STOCK CHART - {0x1F5E1, 0x1F5E1, prExtendedPictographic}, // E0.7 [1] (🗡️) dagger - {0x1F5E2, 0x1F5E2, prExtendedPictographic}, // E0.0 [1] (🗢) LIPS - {0x1F5E3, 0x1F5E3, prExtendedPictographic}, // E0.7 [1] (🗣️) speaking head - {0x1F5E4, 0x1F5E7, prExtendedPictographic}, // E0.0 [4] (🗤..🗧) THREE RAYS ABOVE..THREE RAYS RIGHT - {0x1F5E8, 0x1F5E8, prExtendedPictographic}, // E2.0 [1] (🗨️) left speech bubble - {0x1F5E9, 0x1F5EE, prExtendedPictographic}, // E0.0 [6] (🗩..🗮) RIGHT SPEECH BUBBLE..LEFT ANGER BUBBLE - {0x1F5EF, 0x1F5EF, prExtendedPictographic}, // E0.7 [1] (🗯️) right anger bubble - {0x1F5F0, 0x1F5F2, prExtendedPictographic}, // E0.0 [3] (🗰..🗲) MOOD BUBBLE..LIGHTNING MOOD - {0x1F5F3, 0x1F5F3, prExtendedPictographic}, // E0.7 [1] (🗳️) ballot box with ballot - {0x1F5F4, 0x1F5F9, prExtendedPictographic}, // E0.0 [6] (🗴..🗹) BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK - {0x1F5FA, 0x1F5FA, prExtendedPictographic}, // E0.7 [1] (🗺️) world map - {0x1F5FB, 0x1F5FF, prExtendedPictographic}, // E0.6 [5] (🗻..🗿) mount fuji..moai - {0x1F600, 0x1F600, prExtendedPictographic}, // E1.0 [1] (😀) grinning face - {0x1F601, 0x1F606, prExtendedPictographic}, // E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face - {0x1F607, 0x1F608, prExtendedPictographic}, // E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns - {0x1F609, 0x1F60D, prExtendedPictographic}, // E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes - {0x1F60E, 0x1F60E, prExtendedPictographic}, // E1.0 [1] (😎) smiling face with sunglasses - {0x1F60F, 0x1F60F, prExtendedPictographic}, // E0.6 [1] (😏) smirking face - {0x1F610, 0x1F610, prExtendedPictographic}, // E0.7 [1] (😐) neutral face - {0x1F611, 0x1F611, prExtendedPictographic}, // E1.0 [1] (😑) expressionless face - {0x1F612, 0x1F614, prExtendedPictographic}, // E0.6 [3] (😒..😔) unamused face..pensive face - {0x1F615, 0x1F615, prExtendedPictographic}, // E1.0 [1] (😕) confused face - {0x1F616, 0x1F616, prExtendedPictographic}, // E0.6 [1] (😖) confounded face - {0x1F617, 0x1F617, prExtendedPictographic}, // E1.0 [1] (😗) kissing face - {0x1F618, 0x1F618, prExtendedPictographic}, // E0.6 [1] (😘) face blowing a kiss - {0x1F619, 0x1F619, prExtendedPictographic}, // E1.0 [1] (😙) kissing face with smiling eyes - {0x1F61A, 0x1F61A, prExtendedPictographic}, // E0.6 [1] (😚) kissing face with closed eyes - {0x1F61B, 0x1F61B, prExtendedPictographic}, // E1.0 [1] (😛) face with tongue - {0x1F61C, 0x1F61E, prExtendedPictographic}, // E0.6 [3] (😜..😞) winking face with tongue..disappointed face - {0x1F61F, 0x1F61F, prExtendedPictographic}, // E1.0 [1] (😟) worried face - {0x1F620, 0x1F625, prExtendedPictographic}, // E0.6 [6] (😠..😥) angry face..sad but relieved face - {0x1F626, 0x1F627, prExtendedPictographic}, // E1.0 [2] (😦..😧) frowning face with open mouth..anguished face - {0x1F628, 0x1F62B, prExtendedPictographic}, // E0.6 [4] (😨..😫) fearful face..tired face - {0x1F62C, 0x1F62C, prExtendedPictographic}, // E1.0 [1] (😬) grimacing face - {0x1F62D, 0x1F62D, prExtendedPictographic}, // E0.6 [1] (😭) loudly crying face - {0x1F62E, 0x1F62F, prExtendedPictographic}, // E1.0 [2] (😮..😯) face with open mouth..hushed face - {0x1F630, 0x1F633, prExtendedPictographic}, // E0.6 [4] (😰..😳) anxious face with sweat..flushed face - {0x1F634, 0x1F634, prExtendedPictographic}, // E1.0 [1] (😴) sleeping face - {0x1F635, 0x1F635, prExtendedPictographic}, // E0.6 [1] (😵) face with crossed-out eyes - {0x1F636, 0x1F636, prExtendedPictographic}, // E1.0 [1] (😶) face without mouth - {0x1F637, 0x1F640, prExtendedPictographic}, // E0.6 [10] (😷..🙀) face with medical mask..weary cat - {0x1F641, 0x1F644, prExtendedPictographic}, // E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes - {0x1F645, 0x1F64F, prExtendedPictographic}, // E0.6 [11] (🙅..🙏) person gesturing NO..folded hands - {0x1F680, 0x1F680, prExtendedPictographic}, // E0.6 [1] (🚀) rocket - {0x1F681, 0x1F682, prExtendedPictographic}, // E1.0 [2] (🚁..🚂) helicopter..locomotive - {0x1F683, 0x1F685, prExtendedPictographic}, // E0.6 [3] (🚃..🚅) railway car..bullet train - {0x1F686, 0x1F686, prExtendedPictographic}, // E1.0 [1] (🚆) train - {0x1F687, 0x1F687, prExtendedPictographic}, // E0.6 [1] (🚇) metro - {0x1F688, 0x1F688, prExtendedPictographic}, // E1.0 [1] (🚈) light rail - {0x1F689, 0x1F689, prExtendedPictographic}, // E0.6 [1] (🚉) station - {0x1F68A, 0x1F68B, prExtendedPictographic}, // E1.0 [2] (🚊..🚋) tram..tram car - {0x1F68C, 0x1F68C, prExtendedPictographic}, // E0.6 [1] (🚌) bus - {0x1F68D, 0x1F68D, prExtendedPictographic}, // E0.7 [1] (🚍) oncoming bus - {0x1F68E, 0x1F68E, prExtendedPictographic}, // E1.0 [1] (🚎) trolleybus - {0x1F68F, 0x1F68F, prExtendedPictographic}, // E0.6 [1] (🚏) bus stop - {0x1F690, 0x1F690, prExtendedPictographic}, // E1.0 [1] (🚐) minibus - {0x1F691, 0x1F693, prExtendedPictographic}, // E0.6 [3] (🚑..🚓) ambulance..police car - {0x1F694, 0x1F694, prExtendedPictographic}, // E0.7 [1] (🚔) oncoming police car - {0x1F695, 0x1F695, prExtendedPictographic}, // E0.6 [1] (🚕) taxi - {0x1F696, 0x1F696, prExtendedPictographic}, // E1.0 [1] (🚖) oncoming taxi - {0x1F697, 0x1F697, prExtendedPictographic}, // E0.6 [1] (🚗) automobile - {0x1F698, 0x1F698, prExtendedPictographic}, // E0.7 [1] (🚘) oncoming automobile - {0x1F699, 0x1F69A, prExtendedPictographic}, // E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck - {0x1F69B, 0x1F6A1, prExtendedPictographic}, // E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway - {0x1F6A2, 0x1F6A2, prExtendedPictographic}, // E0.6 [1] (🚢) ship - {0x1F6A3, 0x1F6A3, prExtendedPictographic}, // E1.0 [1] (🚣) person rowing boat - {0x1F6A4, 0x1F6A5, prExtendedPictographic}, // E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light - {0x1F6A6, 0x1F6A6, prExtendedPictographic}, // E1.0 [1] (🚦) vertical traffic light - {0x1F6A7, 0x1F6AD, prExtendedPictographic}, // E0.6 [7] (🚧..🚭) construction..no smoking - {0x1F6AE, 0x1F6B1, prExtendedPictographic}, // E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water - {0x1F6B2, 0x1F6B2, prExtendedPictographic}, // E0.6 [1] (🚲) bicycle - {0x1F6B3, 0x1F6B5, prExtendedPictographic}, // E1.0 [3] (🚳..🚵) no bicycles..person mountain biking - {0x1F6B6, 0x1F6B6, prExtendedPictographic}, // E0.6 [1] (🚶) person walking - {0x1F6B7, 0x1F6B8, prExtendedPictographic}, // E1.0 [2] (🚷..🚸) no pedestrians..children crossing - {0x1F6B9, 0x1F6BE, prExtendedPictographic}, // E0.6 [6] (🚹..🚾) men’s room..water closet - {0x1F6BF, 0x1F6BF, prExtendedPictographic}, // E1.0 [1] (🚿) shower - {0x1F6C0, 0x1F6C0, prExtendedPictographic}, // E0.6 [1] (🛀) person taking bath - {0x1F6C1, 0x1F6C5, prExtendedPictographic}, // E1.0 [5] (🛁..🛅) bathtub..left luggage - {0x1F6C6, 0x1F6CA, prExtendedPictographic}, // E0.0 [5] (🛆..🛊) TRIANGLE WITH ROUNDED CORNERS..GIRLS SYMBOL - {0x1F6CB, 0x1F6CB, prExtendedPictographic}, // E0.7 [1] (🛋️) couch and lamp - {0x1F6CC, 0x1F6CC, prExtendedPictographic}, // E1.0 [1] (🛌) person in bed - {0x1F6CD, 0x1F6CF, prExtendedPictographic}, // E0.7 [3] (🛍️..🛏️) shopping bags..bed - {0x1F6D0, 0x1F6D0, prExtendedPictographic}, // E1.0 [1] (🛐) place of worship - {0x1F6D1, 0x1F6D2, prExtendedPictographic}, // E3.0 [2] (🛑..🛒) stop sign..shopping cart - {0x1F6D3, 0x1F6D4, prExtendedPictographic}, // E0.0 [2] (🛓..🛔) STUPA..PAGODA - {0x1F6D5, 0x1F6D5, prExtendedPictographic}, // E12.0 [1] (🛕) hindu temple - {0x1F6D6, 0x1F6D7, prExtendedPictographic}, // E13.0 [2] (🛖..🛗) hut..elevator - {0x1F6D8, 0x1F6DB, prExtendedPictographic}, // E0.0 [4] (🛘..🛛) .. - {0x1F6DC, 0x1F6DC, prExtendedPictographic}, // E15.0 [1] (🛜) wireless - {0x1F6DD, 0x1F6DF, prExtendedPictographic}, // E14.0 [3] (🛝..🛟) playground slide..ring buoy - {0x1F6E0, 0x1F6E5, prExtendedPictographic}, // E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat - {0x1F6E6, 0x1F6E8, prExtendedPictographic}, // E0.0 [3] (🛦..🛨) UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE - {0x1F6E9, 0x1F6E9, prExtendedPictographic}, // E0.7 [1] (🛩️) small airplane - {0x1F6EA, 0x1F6EA, prExtendedPictographic}, // E0.0 [1] (🛪) NORTHEAST-POINTING AIRPLANE - {0x1F6EB, 0x1F6EC, prExtendedPictographic}, // E1.0 [2] (🛫..🛬) airplane departure..airplane arrival - {0x1F6ED, 0x1F6EF, prExtendedPictographic}, // E0.0 [3] (🛭..🛯) .. - {0x1F6F0, 0x1F6F0, prExtendedPictographic}, // E0.7 [1] (🛰️) satellite - {0x1F6F1, 0x1F6F2, prExtendedPictographic}, // E0.0 [2] (🛱..🛲) ONCOMING FIRE ENGINE..DIESEL LOCOMOTIVE - {0x1F6F3, 0x1F6F3, prExtendedPictographic}, // E0.7 [1] (🛳️) passenger ship - {0x1F6F4, 0x1F6F6, prExtendedPictographic}, // E3.0 [3] (🛴..🛶) kick scooter..canoe - {0x1F6F7, 0x1F6F8, prExtendedPictographic}, // E5.0 [2] (🛷..🛸) sled..flying saucer - {0x1F6F9, 0x1F6F9, prExtendedPictographic}, // E11.0 [1] (🛹) skateboard - {0x1F6FA, 0x1F6FA, prExtendedPictographic}, // E12.0 [1] (🛺) auto rickshaw - {0x1F6FB, 0x1F6FC, prExtendedPictographic}, // E13.0 [2] (🛻..🛼) pickup truck..roller skate - {0x1F6FD, 0x1F6FF, prExtendedPictographic}, // E0.0 [3] (🛽..🛿) .. - {0x1F774, 0x1F77F, prExtendedPictographic}, // E0.0 [12] (🝴..🝿) LOT OF FORTUNE..ORCUS - {0x1F7D5, 0x1F7DF, prExtendedPictographic}, // E0.0 [11] (🟕..🟟) CIRCLED TRIANGLE.. - {0x1F7E0, 0x1F7EB, prExtendedPictographic}, // E12.0 [12] (🟠..🟫) orange circle..brown square - {0x1F7EC, 0x1F7EF, prExtendedPictographic}, // E0.0 [4] (🟬..🟯) .. - {0x1F7F0, 0x1F7F0, prExtendedPictographic}, // E14.0 [1] (🟰) heavy equals sign - {0x1F7F1, 0x1F7FF, prExtendedPictographic}, // E0.0 [15] (🟱..🟿) .. - {0x1F80C, 0x1F80F, prExtendedPictographic}, // E0.0 [4] (🠌..🠏) .. - {0x1F848, 0x1F84F, prExtendedPictographic}, // E0.0 [8] (🡈..🡏) .. - {0x1F85A, 0x1F85F, prExtendedPictographic}, // E0.0 [6] (🡚..🡟) .. - {0x1F888, 0x1F88F, prExtendedPictographic}, // E0.0 [8] (🢈..🢏) .. - {0x1F8AE, 0x1F8FF, prExtendedPictographic}, // E0.0 [82] (🢮..🣿) .. - {0x1F90C, 0x1F90C, prExtendedPictographic}, // E13.0 [1] (🤌) pinched fingers - {0x1F90D, 0x1F90F, prExtendedPictographic}, // E12.0 [3] (🤍..🤏) white heart..pinching hand - {0x1F910, 0x1F918, prExtendedPictographic}, // E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns - {0x1F919, 0x1F91E, prExtendedPictographic}, // E3.0 [6] (🤙..🤞) call me hand..crossed fingers - {0x1F91F, 0x1F91F, prExtendedPictographic}, // E5.0 [1] (🤟) love-you gesture - {0x1F920, 0x1F927, prExtendedPictographic}, // E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face - {0x1F928, 0x1F92F, prExtendedPictographic}, // E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head - {0x1F930, 0x1F930, prExtendedPictographic}, // E3.0 [1] (🤰) pregnant woman - {0x1F931, 0x1F932, prExtendedPictographic}, // E5.0 [2] (🤱..🤲) breast-feeding..palms up together - {0x1F933, 0x1F93A, prExtendedPictographic}, // E3.0 [8] (🤳..🤺) selfie..person fencing - {0x1F93C, 0x1F93E, prExtendedPictographic}, // E3.0 [3] (🤼..🤾) people wrestling..person playing handball - {0x1F93F, 0x1F93F, prExtendedPictographic}, // E12.0 [1] (🤿) diving mask - {0x1F940, 0x1F945, prExtendedPictographic}, // E3.0 [6] (🥀..🥅) wilted flower..goal net - {0x1F947, 0x1F94B, prExtendedPictographic}, // E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform - {0x1F94C, 0x1F94C, prExtendedPictographic}, // E5.0 [1] (🥌) curling stone - {0x1F94D, 0x1F94F, prExtendedPictographic}, // E11.0 [3] (🥍..🥏) lacrosse..flying disc - {0x1F950, 0x1F95E, prExtendedPictographic}, // E3.0 [15] (🥐..🥞) croissant..pancakes - {0x1F95F, 0x1F96B, prExtendedPictographic}, // E5.0 [13] (🥟..🥫) dumpling..canned food - {0x1F96C, 0x1F970, prExtendedPictographic}, // E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts - {0x1F971, 0x1F971, prExtendedPictographic}, // E12.0 [1] (🥱) yawning face - {0x1F972, 0x1F972, prExtendedPictographic}, // E13.0 [1] (🥲) smiling face with tear - {0x1F973, 0x1F976, prExtendedPictographic}, // E11.0 [4] (🥳..🥶) partying face..cold face - {0x1F977, 0x1F978, prExtendedPictographic}, // E13.0 [2] (🥷..🥸) ninja..disguised face - {0x1F979, 0x1F979, prExtendedPictographic}, // E14.0 [1] (🥹) face holding back tears - {0x1F97A, 0x1F97A, prExtendedPictographic}, // E11.0 [1] (🥺) pleading face - {0x1F97B, 0x1F97B, prExtendedPictographic}, // E12.0 [1] (🥻) sari - {0x1F97C, 0x1F97F, prExtendedPictographic}, // E11.0 [4] (🥼..🥿) lab coat..flat shoe - {0x1F980, 0x1F984, prExtendedPictographic}, // E1.0 [5] (🦀..🦄) crab..unicorn - {0x1F985, 0x1F991, prExtendedPictographic}, // E3.0 [13] (🦅..🦑) eagle..squid - {0x1F992, 0x1F997, prExtendedPictographic}, // E5.0 [6] (🦒..🦗) giraffe..cricket - {0x1F998, 0x1F9A2, prExtendedPictographic}, // E11.0 [11] (🦘..🦢) kangaroo..swan - {0x1F9A3, 0x1F9A4, prExtendedPictographic}, // E13.0 [2] (🦣..🦤) mammoth..dodo - {0x1F9A5, 0x1F9AA, prExtendedPictographic}, // E12.0 [6] (🦥..🦪) sloth..oyster - {0x1F9AB, 0x1F9AD, prExtendedPictographic}, // E13.0 [3] (🦫..🦭) beaver..seal - {0x1F9AE, 0x1F9AF, prExtendedPictographic}, // E12.0 [2] (🦮..🦯) guide dog..white cane - {0x1F9B0, 0x1F9B9, prExtendedPictographic}, // E11.0 [10] (🦰..🦹) red hair..supervillain - {0x1F9BA, 0x1F9BF, prExtendedPictographic}, // E12.0 [6] (🦺..🦿) safety vest..mechanical leg - {0x1F9C0, 0x1F9C0, prExtendedPictographic}, // E1.0 [1] (🧀) cheese wedge - {0x1F9C1, 0x1F9C2, prExtendedPictographic}, // E11.0 [2] (🧁..🧂) cupcake..salt - {0x1F9C3, 0x1F9CA, prExtendedPictographic}, // E12.0 [8] (🧃..🧊) beverage box..ice - {0x1F9CB, 0x1F9CB, prExtendedPictographic}, // E13.0 [1] (🧋) bubble tea - {0x1F9CC, 0x1F9CC, prExtendedPictographic}, // E14.0 [1] (🧌) troll - {0x1F9CD, 0x1F9CF, prExtendedPictographic}, // E12.0 [3] (🧍..🧏) person standing..deaf person - {0x1F9D0, 0x1F9E6, prExtendedPictographic}, // E5.0 [23] (🧐..🧦) face with monocle..socks - {0x1F9E7, 0x1F9FF, prExtendedPictographic}, // E11.0 [25] (🧧..🧿) red envelope..nazar amulet - {0x1FA00, 0x1FA6F, prExtendedPictographic}, // E0.0 [112] (🨀..🩯) NEUTRAL CHESS KING.. - {0x1FA70, 0x1FA73, prExtendedPictographic}, // E12.0 [4] (🩰..🩳) ballet shoes..shorts - {0x1FA74, 0x1FA74, prExtendedPictographic}, // E13.0 [1] (🩴) thong sandal - {0x1FA75, 0x1FA77, prExtendedPictographic}, // E15.0 [3] (🩵..🩷) light blue heart..pink heart - {0x1FA78, 0x1FA7A, prExtendedPictographic}, // E12.0 [3] (🩸..🩺) drop of blood..stethoscope - {0x1FA7B, 0x1FA7C, prExtendedPictographic}, // E14.0 [2] (🩻..🩼) x-ray..crutch - {0x1FA7D, 0x1FA7F, prExtendedPictographic}, // E0.0 [3] (🩽..🩿) .. - {0x1FA80, 0x1FA82, prExtendedPictographic}, // E12.0 [3] (🪀..🪂) yo-yo..parachute - {0x1FA83, 0x1FA86, prExtendedPictographic}, // E13.0 [4] (🪃..🪆) boomerang..nesting dolls - {0x1FA87, 0x1FA88, prExtendedPictographic}, // E15.0 [2] (🪇..🪈) maracas..flute - {0x1FA89, 0x1FA8F, prExtendedPictographic}, // E0.0 [7] (🪉..🪏) .. - {0x1FA90, 0x1FA95, prExtendedPictographic}, // E12.0 [6] (🪐..🪕) ringed planet..banjo - {0x1FA96, 0x1FAA8, prExtendedPictographic}, // E13.0 [19] (🪖..🪨) military helmet..rock - {0x1FAA9, 0x1FAAC, prExtendedPictographic}, // E14.0 [4] (🪩..🪬) mirror ball..hamsa - {0x1FAAD, 0x1FAAF, prExtendedPictographic}, // E15.0 [3] (🪭..🪯) folding hand fan..khanda - {0x1FAB0, 0x1FAB6, prExtendedPictographic}, // E13.0 [7] (🪰..🪶) fly..feather - {0x1FAB7, 0x1FABA, prExtendedPictographic}, // E14.0 [4] (🪷..🪺) lotus..nest with eggs - {0x1FABB, 0x1FABD, prExtendedPictographic}, // E15.0 [3] (🪻..🪽) hyacinth..wing - {0x1FABE, 0x1FABE, prExtendedPictographic}, // E0.0 [1] (🪾) - {0x1FABF, 0x1FABF, prExtendedPictographic}, // E15.0 [1] (🪿) goose - {0x1FAC0, 0x1FAC2, prExtendedPictographic}, // E13.0 [3] (🫀..🫂) anatomical heart..people hugging - {0x1FAC3, 0x1FAC5, prExtendedPictographic}, // E14.0 [3] (🫃..🫅) pregnant man..person with crown - {0x1FAC6, 0x1FACD, prExtendedPictographic}, // E0.0 [8] (🫆..🫍) .. - {0x1FACE, 0x1FACF, prExtendedPictographic}, // E15.0 [2] (🫎..🫏) moose..donkey - {0x1FAD0, 0x1FAD6, prExtendedPictographic}, // E13.0 [7] (🫐..🫖) blueberries..teapot - {0x1FAD7, 0x1FAD9, prExtendedPictographic}, // E14.0 [3] (🫗..🫙) pouring liquid..jar - {0x1FADA, 0x1FADB, prExtendedPictographic}, // E15.0 [2] (🫚..🫛) ginger root..pea pod - {0x1FADC, 0x1FADF, prExtendedPictographic}, // E0.0 [4] (🫜..🫟) .. - {0x1FAE0, 0x1FAE7, prExtendedPictographic}, // E14.0 [8] (🫠..🫧) melting face..bubbles - {0x1FAE8, 0x1FAE8, prExtendedPictographic}, // E15.0 [1] (🫨) shaking face - {0x1FAE9, 0x1FAEF, prExtendedPictographic}, // E0.0 [7] (🫩..🫯) .. - {0x1FAF0, 0x1FAF6, prExtendedPictographic}, // E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands - {0x1FAF7, 0x1FAF8, prExtendedPictographic}, // E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand - {0x1FAF9, 0x1FAFF, prExtendedPictographic}, // E0.0 [7] (🫹..🫿) .. - {0x1FBF0, 0x1FBF9, prNumeric}, // Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE - {0x1FC00, 0x1FFFD, prExtendedPictographic}, // E0.0[1022] (🰀..🿽) .. - {0xE0001, 0xE0001, prFormat}, // Cf LANGUAGE TAG - {0xE0020, 0xE007F, prExtend}, // Cf [96] TAG SPACE..CANCEL TAG - {0xE0100, 0xE01EF, prExtend}, // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -} diff --git a/vendor/github.com/rivo/uniseg/wordrules.go b/vendor/github.com/rivo/uniseg/wordrules.go deleted file mode 100644 index 57a8c68..0000000 --- a/vendor/github.com/rivo/uniseg/wordrules.go +++ /dev/null @@ -1,282 +0,0 @@ -package uniseg - -import "unicode/utf8" - -// The states of the word break parser. -const ( - wbAny = iota - wbCR - wbLF - wbNewline - wbWSegSpace - wbHebrewLetter - wbALetter - wbWB7 - wbWB7c - wbNumeric - wbWB11 - wbKatakana - wbExtendNumLet - wbOddRI - wbEvenRI - wbZWJBit = 16 // This bit is set for any states followed by at least one zero-width joiner (see WB4 and WB3c). -) - -// wbTransitions implements the word break parser's state transitions. It's -// anologous to [grTransitions], see comments there for details. -// -// Unicode version 15.0.0. -func wbTransitions(state, prop int) (newState int, wordBreak bool, rule int) { - switch uint64(state) | uint64(prop)<<32 { - // WB3b. - case wbAny | prNewline<<32: - return wbNewline, true, 32 - case wbAny | prCR<<32: - return wbCR, true, 32 - case wbAny | prLF<<32: - return wbLF, true, 32 - - // WB3a. - case wbNewline | prAny<<32: - return wbAny, true, 31 - case wbCR | prAny<<32: - return wbAny, true, 31 - case wbLF | prAny<<32: - return wbAny, true, 31 - - // WB3. - case wbCR | prLF<<32: - return wbLF, false, 30 - - // WB3d. - case wbAny | prWSegSpace<<32: - return wbWSegSpace, true, 9990 - case wbWSegSpace | prWSegSpace<<32: - return wbWSegSpace, false, 34 - - // WB5. - case wbAny | prALetter<<32: - return wbALetter, true, 9990 - case wbAny | prHebrewLetter<<32: - return wbHebrewLetter, true, 9990 - case wbALetter | prALetter<<32: - return wbALetter, false, 50 - case wbALetter | prHebrewLetter<<32: - return wbHebrewLetter, false, 50 - case wbHebrewLetter | prALetter<<32: - return wbALetter, false, 50 - case wbHebrewLetter | prHebrewLetter<<32: - return wbHebrewLetter, false, 50 - - // WB7. Transitions to wbWB7 handled by transitionWordBreakState(). - case wbWB7 | prALetter<<32: - return wbALetter, false, 70 - case wbWB7 | prHebrewLetter<<32: - return wbHebrewLetter, false, 70 - - // WB7a. - case wbHebrewLetter | prSingleQuote<<32: - return wbAny, false, 71 - - // WB7c. Transitions to wbWB7c handled by transitionWordBreakState(). - case wbWB7c | prHebrewLetter<<32: - return wbHebrewLetter, false, 73 - - // WB8. - case wbAny | prNumeric<<32: - return wbNumeric, true, 9990 - case wbNumeric | prNumeric<<32: - return wbNumeric, false, 80 - - // WB9. - case wbALetter | prNumeric<<32: - return wbNumeric, false, 90 - case wbHebrewLetter | prNumeric<<32: - return wbNumeric, false, 90 - - // WB10. - case wbNumeric | prALetter<<32: - return wbALetter, false, 100 - case wbNumeric | prHebrewLetter<<32: - return wbHebrewLetter, false, 100 - - // WB11. Transitions to wbWB11 handled by transitionWordBreakState(). - case wbWB11 | prNumeric<<32: - return wbNumeric, false, 110 - - // WB13. - case wbAny | prKatakana<<32: - return wbKatakana, true, 9990 - case wbKatakana | prKatakana<<32: - return wbKatakana, false, 130 - - // WB13a. - case wbAny | prExtendNumLet<<32: - return wbExtendNumLet, true, 9990 - case wbALetter | prExtendNumLet<<32: - return wbExtendNumLet, false, 131 - case wbHebrewLetter | prExtendNumLet<<32: - return wbExtendNumLet, false, 131 - case wbNumeric | prExtendNumLet<<32: - return wbExtendNumLet, false, 131 - case wbKatakana | prExtendNumLet<<32: - return wbExtendNumLet, false, 131 - case wbExtendNumLet | prExtendNumLet<<32: - return wbExtendNumLet, false, 131 - - // WB13b. - case wbExtendNumLet | prALetter<<32: - return wbALetter, false, 132 - case wbExtendNumLet | prHebrewLetter<<32: - return wbHebrewLetter, false, 132 - case wbExtendNumLet | prNumeric<<32: - return wbNumeric, false, 132 - case wbExtendNumLet | prKatakana<<32: - return wbKatakana, false, 132 - - default: - return -1, false, -1 - } -} - -// transitionWordBreakState determines the new state of the word break parser -// given the current state and the next code point. It also returns whether a -// word boundary was detected. If more than one code point is needed to -// determine the new state, the byte slice or the string starting after rune "r" -// can be used (whichever is not nil or empty) for further lookups. -func transitionWordBreakState(state int, r rune, b []byte, str string) (newState int, wordBreak bool) { - // Determine the property of the next character. - nextProperty := property(workBreakCodePoints, r) - - // "Replacing Ignore Rules". - if nextProperty == prZWJ { - // WB4 (for zero-width joiners). - if state == wbNewline || state == wbCR || state == wbLF { - return wbAny | wbZWJBit, true // Make sure we don't apply WB4 to WB3a. - } - if state < 0 { - return wbAny | wbZWJBit, false - } - return state | wbZWJBit, false - } else if nextProperty == prExtend || nextProperty == prFormat { - // WB4 (for Extend and Format). - if state == wbNewline || state == wbCR || state == wbLF { - return wbAny, true // Make sure we don't apply WB4 to WB3a. - } - if state == wbWSegSpace || state == wbAny|wbZWJBit { - return wbAny, false // We don't break but this is also not WB3d or WB3c. - } - if state < 0 { - return wbAny, false - } - return state, false - } else if nextProperty == prExtendedPictographic && state >= 0 && state&wbZWJBit != 0 { - // WB3c. - return wbAny, false - } - if state >= 0 { - state = state &^ wbZWJBit - } - - // Find the applicable transition in the table. - var rule int - newState, wordBreak, rule = wbTransitions(state, nextProperty) - if newState < 0 { - // No specific transition found. Try the less specific ones. - anyPropState, anyPropWordBreak, anyPropRule := wbTransitions(state, prAny) - anyStateState, anyStateWordBreak, anyStateRule := wbTransitions(wbAny, nextProperty) - if anyPropState >= 0 && anyStateState >= 0 { - // Both apply. We'll use a mix (see comments for grTransitions). - newState, wordBreak, rule = anyStateState, anyStateWordBreak, anyStateRule - if anyPropRule < anyStateRule { - wordBreak, rule = anyPropWordBreak, anyPropRule - } - } else if anyPropState >= 0 { - // We only have a specific state. - newState, wordBreak, rule = anyPropState, anyPropWordBreak, anyPropRule - // This branch will probably never be reached because okAnyState will - // always be true given the current transition map. But we keep it here - // for future modifications to the transition map where this may not be - // true anymore. - } else if anyStateState >= 0 { - // We only have a specific property. - newState, wordBreak, rule = anyStateState, anyStateWordBreak, anyStateRule - } else { - // No known transition. WB999: Any ÷ Any. - newState, wordBreak, rule = wbAny, true, 9990 - } - } - - // For those rules that need to look up runes further in the string, we - // determine the property after nextProperty, skipping over Format, Extend, - // and ZWJ (according to WB4). It's -1 if not needed, if such a rune cannot - // be determined (because the text ends or the rune is faulty). - farProperty := -1 - if rule > 60 && - (state == wbALetter || state == wbHebrewLetter || state == wbNumeric) && - (nextProperty == prMidLetter || nextProperty == prMidNumLet || nextProperty == prSingleQuote || // WB6. - nextProperty == prDoubleQuote || // WB7b. - nextProperty == prMidNum) { // WB12. - for { - var ( - r rune - length int - ) - if b != nil { // Byte slice version. - r, length = utf8.DecodeRune(b) - b = b[length:] - } else { // String version. - r, length = utf8.DecodeRuneInString(str) - str = str[length:] - } - if r == utf8.RuneError { - break - } - prop := property(workBreakCodePoints, r) - if prop == prExtend || prop == prFormat || prop == prZWJ { - continue - } - farProperty = prop - break - } - } - - // WB6. - if rule > 60 && - (state == wbALetter || state == wbHebrewLetter) && - (nextProperty == prMidLetter || nextProperty == prMidNumLet || nextProperty == prSingleQuote) && - (farProperty == prALetter || farProperty == prHebrewLetter) { - return wbWB7, false - } - - // WB7b. - if rule > 72 && - state == wbHebrewLetter && - nextProperty == prDoubleQuote && - farProperty == prHebrewLetter { - return wbWB7c, false - } - - // WB12. - if rule > 120 && - state == wbNumeric && - (nextProperty == prMidNum || nextProperty == prMidNumLet || nextProperty == prSingleQuote) && - farProperty == prNumeric { - return wbWB11, false - } - - // WB15 and WB16. - if newState == wbAny && nextProperty == prRegionalIndicator { - if state != wbOddRI && state != wbEvenRI { // Includes state == -1. - // Transition into the first RI. - return wbOddRI, true - } - if state == wbOddRI { - // Don't break pairs of Regional Indicators. - return wbEvenRI, false - } - return wbOddRI, true // We can break after a pair. - } - - return -} diff --git a/vendor/github.com/rlch/neogo/.deepsource.toml b/vendor/github.com/rlch/neogo/.deepsource.toml deleted file mode 100644 index 5d0be6e..0000000 --- a/vendor/github.com/rlch/neogo/.deepsource.toml +++ /dev/null @@ -1,13 +0,0 @@ -version = 1 - -[[analyzers]] -name = "test-coverage" - -[[analyzers]] -name = "go" - -[analyzers.meta] -import_root = "github.com/rlch/neogo" - -[[transformers]] -name = "gofumpt" diff --git a/vendor/github.com/rlch/neogo/.gitignore b/vendor/github.com/rlch/neogo/.gitignore deleted file mode 100644 index 9ab908f..0000000 --- a/vendor/github.com/rlch/neogo/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -# If you prefer the allow list template instead of the deny list, see community template: -# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore -# -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -vendor/ - -# Go workspace file -go.work - -goccy/ - -# Node.js (docs site) -node_modules/ -.astro/ diff --git a/vendor/github.com/rlch/neogo/.golangci.yaml b/vendor/github.com/rlch/neogo/.golangci.yaml deleted file mode 100644 index 4bbb013..0000000 --- a/vendor/github.com/rlch/neogo/.golangci.yaml +++ /dev/null @@ -1,3 +0,0 @@ -version: "2" -linters: - default: standard diff --git a/vendor/github.com/rlch/neogo/CHANGELOG.md b/vendor/github.com/rlch/neogo/CHANGELOG.md deleted file mode 100644 index a863a75..0000000 --- a/vendor/github.com/rlch/neogo/CHANGELOG.md +++ /dev/null @@ -1,107 +0,0 @@ -# Changelog - -## [1.0.6](https://github.com/rlch/neogo/compare/v1.0.5...v1.0.6) (2025-03-28) - - -### Bug Fixes - -* Allow unmarshalling to slices of size 1 ([358aedf](https://github.com/rlch/neogo/commit/358aedf607e57560411c8dcfe2cb865c2412e85f)) - -## [1.0.5](https://github.com/rlch/neogo/compare/v1.0.4...v1.0.5) (2025-03-28) - - -### Bug Fixes - -* Remove another print ([8f6b3e5](https://github.com/rlch/neogo/commit/8f6b3e54c298d2f8b606dc6b95cdc275ce0bee86)) -* Remove print ([328c2c7](https://github.com/rlch/neogo/commit/328c2c75f8c2622732c4d0c8d132430a4d06d933)) - -## [1.0.4](https://github.com/rlch/neogo/compare/v1.0.3...v1.0.4) (2025-03-28) - - -### Bug Fixes - -* Avoid downcasting abstract types upon registration ([c241f47](https://github.com/rlch/neogo/commit/c241f471036b1b9ab06528b2973db18c5a3aac05)) -* Handle unmarshalling to empty slice and slice of length 1 ([894de73](https://github.com/rlch/neogo/commit/894de73fbfe290d69b917968d5c7602089054d99)) - -## [1.0.3](https://github.com/rlch/neogo/compare/v1.0.2...v1.0.3) (2025-02-12) - - -### Bug Fixes - -* Handle nil bookmarks ([52456f7](https://github.com/rlch/neogo/commit/52456f769cea5c4f59be4ecfd90e3083a65dc583)) - -## [1.0.2](https://github.com/rlch/neogo/compare/v1.0.1...v1.0.2) (2025-01-28) - - -### Bug Fixes - -* Add Label stub type ([51e856b](https://github.com/rlch/neogo/commit/51e856bbcde418d5f439c3e7f3195e8dd1409fe1)) -* Only require concrete node labels for abstract deserialization ([5cf6104](https://github.com/rlch/neogo/commit/5cf61043e37db9017ff51e44fad7ce092c1e9fd5)) - -## [1.0.1](https://github.com/rlch/neogo/compare/v1.0.0...v1.0.1) (2024-09-26) - - -### Bug Fixes - -* Ensure driver is propagated to session ([ef1f2ee](https://github.com/rlch/neogo/commit/ef1f2ee9bbe42c720100fcc0cac2a87c2c0187b0)) - -## 1.0.0 (2024-08-08) - - -### Features - -* Add explicit transactions; API cleanups ([#12](https://github.com/rlch/neogo/issues/12)) ([0875fc4](https://github.com/rlch/neogo/commit/0875fc4927421a7d634e019b7359f268962a2e59)) -* Add mock Neo4J client ([#9](https://github.com/rlch/neogo/issues/9)) ([e57f2aa](https://github.com/rlch/neogo/commit/e57f2aa0ded8cac866c18396e22e0bb773582490)) -* Add Print to client ([af31477](https://github.com/rlch/neogo/commit/af31477be815d331cf6b3af6c2b2ae83398a8311)) -* Add PropsExpr API ([ead28ff](https://github.com/rlch/neogo/commit/ead28ff36e5d6e72d4cbb98c578239fa334ee783)) -* Add stream with params ([#8](https://github.com/rlch/neogo/issues/8)) ([58e7457](https://github.com/rlch/neogo/commit/58e74574f580f78d5e37764029c82898a9cce111)) -* Added support for injecting params in the query ([#7](https://github.com/rlch/neogo/issues/7)) ([e7dc293](https://github.com/rlch/neogo/commit/e7dc293b33808249e6c77b262161a637e4a32963)) -* Allow props to be injected in MATCH and MERGE clauses ([37bd5ab](https://github.com/rlch/neogo/commit/37bd5ab6933dad06b55287ca7ea5139af49e2085)) -* Expose ExtractNodeLabels/RelationshipType ([f39660f](https://github.com/rlch/neogo/commit/f39660f5c15d511331612348565e24300ab4bf02)) -* Implement Stream API ([#4](https://github.com/rlch/neogo/issues/4)) ([42836f1](https://github.com/rlch/neogo/commit/42836f1931f422cd685b406b9cfda8a3d712b97f)) -* Init commit ([4adb744](https://github.com/rlch/neogo/commit/4adb7447c3183906fa3e4ecc132d2bd74038bfde)) -* Support abstract node collections ([70f5a16](https://github.com/rlch/neogo/commit/70f5a16b8e275c6689100667db26eba34bf9113d)) -* Support causal consistency ([3c85566](https://github.com/rlch/neogo/commit/3c85566e4fb72ee56075b1071cb048a8bccd23da)) - - -### Bug Fixes - -* **actions:** Skip long tests ([ac1b1b8](https://github.com/rlch/neogo/commit/ac1b1b8a8a90580ee12c4ed3faedb1d87928f712)) -* Add check for non-nil parameters with expression and aliasing ([#6](https://github.com/rlch/neogo/issues/6)) ([c3415cf](https://github.com/rlch/neogo/commit/c3415cfe546c6eb2d80555b091782f6eb0b81173)) -* Add constraint to abstract nodes being interfaces ([fb143d9](https://github.com/rlch/neogo/commit/fb143d9529b684d2318a39ff2410fecd26819492)) -* Add joinedErrors API ([655fd41](https://github.com/rlch/neogo/commit/655fd41c7a9e1ed9d8a55cbc7a20b5bc7723aceb)) -* Add multi-polymorphism examples ([9e0246d](https://github.com/rlch/neogo/commit/9e0246de80de38b480c6bad226c2cd6967967df8)) -* Add nil-check to recordType ([b8b5a25](https://github.com/rlch/neogo/commit/b8b5a2507a48b680943b71d35f7ff1a24449b3e5)) -* Allow binding [][]AbstractImpl ([066f308](https://github.com/rlch/neogo/commit/066f30824cd56bafaeeb95eb4f1ca2b61b933545)) -* Avoid resetting builder in Print ([270c565](https://github.com/rlch/neogo/commit/270c56510cd038367186bb7c4acc06f05eddbeb3)) -* Defer canBindSubtype error ([8b90e2c](https://github.com/rlch/neogo/commit/8b90e2c8b6d72589e0408dec2f07cb50e9c1b726)) -* Ensure ctx is finished ([886465d](https://github.com/rlch/neogo/commit/886465d4aa3018669b865f0833ab7367520e0a0a)) -* Ensure docker tests are all short ([88c801e](https://github.com/rlch/neogo/commit/88c801e15e62a3e94c60a24bbad4c393bbfe256c)) -* Ensure isWrite is true when using Cypher() ([d69d8ae](https://github.com/rlch/neogo/commit/d69d8ae4ce4b47ec4ca043e84526ed8b4e3d1cfc)) -* Ensure recursion is invoked ([71ecb3d](https://github.com/rlch/neogo/commit/71ecb3d828b4e6bdc23e16a11fbc3dbb810f6b97)) -* Expose Config ([67c13bc](https://github.com/rlch/neogo/commit/67c13bc21c630ecdd1fa23279dc40f2a50ae98fa)) -* Expose Runner ([bd5cfc6](https://github.com/rlch/neogo/commit/bd5cfc6d66cc0ab7fe8bf0420b75e8f9087bbd2e)) -* Expose TxWork ([71d3883](https://github.com/rlch/neogo/commit/71d38837fd98a7677943dd050ddfef0c94e49f69)) -* Handle nested structs ([#11](https://github.com/rlch/neogo/issues/11)) ([8cc6249](https://github.com/rlch/neogo/commit/8cc62498298dfa1676c70d49c4f60f6429ed7d28)) -* Handle nil case ([1d4c2af](https://github.com/rlch/neogo/commit/1d4c2afa9fe705d2494039ccd44f1225175bb7f7)) -* Improve decision framework for single/multi unmarshalling ([32639dd](https://github.com/rlch/neogo/commit/32639ddd3356376655334137ea35abe02dda49ec)) -* Improve layout ([c861ad6](https://github.com/rlch/neogo/commit/c861ad694c997bfa9a627e7c84c9394f31c5ce8d)) -* Improve nil handling in deserialization ([5b486e7](https://github.com/rlch/neogo/commit/5b486e7d73fa86b37296c683c9f818ec062b25b8)) -* Initialize Querier inside Yielder ([#10](https://github.com/rlch/neogo/issues/10)) ([a37644b](https://github.com/rlch/neogo/commit/a37644b7737a534b712956366c44f6258ab14c6e)) -* Linter errors ([cc14649](https://github.com/rlch/neogo/commit/cc1464933a16024f048d30394a196a9fb10726af)) -* Linter errors; ensure tests use correct instance of *testing.T ([eb984b9](https://github.com/rlch/neogo/commit/eb984b92e7b44f263b25e29938eb744287680cab)) -* Only extract labels from anonymous structs ([64d5f87](https://github.com/rlch/neogo/commit/64d5f871129b95b6196e6db326ab9e0fe4abaa4e)) -* Only extract neo4j tags from struct type fields ([#5](https://github.com/rlch/neogo/issues/5)) ([399bb27](https://github.com/rlch/neogo/commit/399bb27a4fb67a9ab36cfb2b83cb87caaedbebfc)) -* Pointer-recurse into outer type before extracting tags ([1d4d899](https://github.com/rlch/neogo/commit/1d4d89960e8621a3ea912d86fc5d93e30a0ca01e)) -* Prioritize Valuer over recursion ([09ccea2](https://github.com/rlch/neogo/commit/09ccea24d86f2b591ea115425370a77101b260fb)) -* Recurse inside entity when computing props ([e13ad93](https://github.com/rlch/neogo/commit/e13ad937c39b173f527b30c936a1ff6dc0505cf4)) -* Recurse into pointers to abstract ndoes ([ba54418](https://github.com/rlch/neogo/commit/ba54418e7d4e689eec53ea902cd761b241de6083)) -* Relax constraint on unmarshaling param values ([7fb96ad](https://github.com/rlch/neogo/commit/7fb96adad7010ac13cf4f3cb99cab3fa5d6eaf4d)) -* Remove Select API ([366bf97](https://github.com/rlch/neogo/commit/366bf97309221d5382a9dc76c1152415f6c53e79)) -* Remove unused function ([0729f0a](https://github.com/rlch/neogo/commit/0729f0a9044d829d45bf51c11d03b8c4464346e6)) -* Rename MergeOptions to Merge ([4140139](https://github.com/rlch/neogo/commit/41401392a4f2444443f6d7ef1c1f1d1ba24524a2)) -* Set isWrite properly in expressions and Cypher ([6ae4b91](https://github.com/rlch/neogo/commit/6ae4b9106ff10c269f74d5c8b77a557980ed9b7e)) -* Support binding comopsite fields ([aa4977d](https://github.com/rlch/neogo/commit/aa4977d7baf32cca48c9425c7f87ba33993ae16f)) -* Support multi-inheritance; allow concrete implementers to also be registered ([a979f59](https://github.com/rlch/neogo/commit/a979f59a8731b8649dec7b493dfe2bf6646ad6e0)) -* Support nil+registered / non-nil+base-type instantiation of Abstract nodes ([43d742a](https://github.com/rlch/neogo/commit/43d742ac699ab9d8dcc3d1e29d9c87b1c7093b1c)) -* Test deepsource ([c27f6bd](https://github.com/rlch/neogo/commit/c27f6bdb615011bb51d667f01fa3f89958b5402e)) diff --git a/vendor/github.com/rlch/neogo/CLAUDE.md b/vendor/github.com/rlch/neogo/CLAUDE.md deleted file mode 100644 index 3d572d7..0000000 --- a/vendor/github.com/rlch/neogo/CLAUDE.md +++ /dev/null @@ -1,130 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Overview - -`neogo` is a lightweight Golang ORM for Neo4j that provides raw Cypher query execution with type-safe result binding. Unlike traditional ORMs with fluent query builders, neogo takes a minimalist approach: you write raw Cypher queries and neogo handles marshalling/unmarshalling between Go structs and Neo4j. - -## Architecture - -### Core Components - -- **Driver** (`driver.go`): Main entry point, wraps neo4j.DriverWithContext with sessions and transactions -- **Client** (`client_impl.go`): Query interface returned by `Driver.Exec()`, provides `Cypher()` method -- **Entity System** (`entity.go`): Node and relationship definitions with INode/IRelationship interfaces -- **Registry** (`registry.go`): Type registration for nodes and relationships -- **Schema** (`schema.go`, `schema_impl.go`): Index and constraint management from struct tags - -### Internal Components - -- **internal/codec/**: Zero-reflection encoding/decoding system with opcode-based compilation -- **internal/binding.go**: Result binding from Neo4j records to Go structs -- **internal/binding_plan.go**: Pre-compiled binding metadata for zero-reflection hot path -- **internal/cypher.go**: Cypher query compilation with parameter handling -- **internal/registry.go**: Type metadata and Neo4j label/relationship type extraction - -### Key Design Principles - -1. **Raw Cypher**: Users write raw Cypher queries, neogo doesn't generate Cypher -2. **Type-Safe Binding**: Result binding is name/pointer pairs: `Run(ctx, "name", &target, "name2", &target2)` -3. **Zero-Reflection Hot Path**: Pre-compiled codecs and binding plans avoid reflection during query execution -4. **Schema from Tags**: Indexes/constraints defined via struct tags, applied with AutoMigrate - -### API Pattern - -```go -// The main pattern: Cypher() returns Runner, then Run/RunWithParams/Stream/StreamWithParams -driver.Exec(). - Cypher(`MATCH (p:Person {id: $id}) RETURN p`). - RunWithParams(ctx, map[string]any{"id": "123"}, "p", &person) - -// Bindings are variadic name/pointer pairs -Run(ctx, "name1", &binding1, "name2", &binding2) -RunWithParams(ctx, params, "name1", &binding1, "name2", &binding2) -Stream(ctx, sinkFunc, "name1", &binding1) -StreamWithParams(ctx, params, sinkFunc, "name1", &binding1) -``` - -### Entity System - -- **Node**: Base struct for Neo4j nodes with auto-ID generation via ULID -- **Relationship**: Base struct for Neo4j relationships -- **Abstract**: Interface for polymorphic nodes with multiple concrete implementations -- **One/Many**: Zero-cost phantom types for relationship cardinality in schema - -## Development Commands - -### Testing - -```bash -# Run all tests -go test ./... - -# Run tests with coverage -go test -cover ./... - -# Run short tests only (skip integration tests) -go test -short ./... -``` - -### Building - -```bash -# Build the module -go build ./... - -# Verify module dependencies -go mod tidy -``` - -### Linting & Formatting - -```bash -# Format code -go fmt ./... - -# Vet code -go vet ./... - -# Run golangci-lint (if installed) -golangci-lint run -``` - -## Test Structure - -- Root level `*_test.go` files: Driver, client, mock, schema, registry tests -- `internal/codec/*_test.go`: Codec system tests -- Uses testcontainers-go for integration tests with real Neo4j instances -- Tests are marked with `testing.Short()` to skip integration tests in CI - -## Key Files to Understand - -- `driver.go`: Driver interface, session/transaction management -- `client_impl.go`: Client/Runner interfaces, query execution logic -- `entity.go`: Node, Relationship, Abstract base types -- `schema.go`, `schema_impl.go`: Schema interface and migration implementation -- `internal/binding.go`, `internal/binding_plan.go`: Result binding system -- `internal/codec/`: Zero-reflection codec system - -## What Was Removed (Simplification) - -The codebase was recently simplified by removing: -- `builder/` directory (fluent query builder interfaces) -- `db/` directory (Node, Patterns, Var, Qual, Props, Cond, Where DSL) -- `internal/tests/` (builder tests) -- `internal/cypher.go` write* methods (Cypher generation) -- `internal/scope.go` variable tracking -- `internal/patterns.go` pattern builder -- `internal/option.go` builder options - -## Development Notes - -- Uses Neo4J Go driver v5 -- Requires Go 1.21+ -- API is experimental and subject to change before v1.0 - -## Communication Guidelines - -- Never write throwaway markdown documents -- Prefer communicating in chat window diff --git a/vendor/github.com/rlch/neogo/CODEC_IMPROVEMENTS.md b/vendor/github.com/rlch/neogo/CODEC_IMPROVEMENTS.md deleted file mode 100644 index 82edc29..0000000 --- a/vendor/github.com/rlch/neogo/CODEC_IMPROVEMENTS.md +++ /dev/null @@ -1,254 +0,0 @@ -# Codec Improvements Summary - -## Overview - -Completed critical bug fixes and reflection elimination in the codec system. - -**Status**: ✅ ALL TESTS PASSING (65+ tests) - ---- - -## Critical Bugs Fixed - -### 🔴 Bug #1: TypePtr Mismatch - FIXED ✅ - -**Problem**: GetTypeMetadata() and IsRegistered() always returned nil/false even after RegisterTypes() - -**Root Cause**: - -- RegisterTypes() stored metadata using `getTypePtr(typ)` (uses reflect.Type.ptr field) -- GetTypeMetadata() retrieved using `getTypePtrFromValue(v)` (was using reflect.Type.typ field) -- Different fields = different keys = no cache hits - -**Example of Bug**: - -```go -registry.RegisterTypes(Company{}) // Stores at key X -metadata := registry.GetTypeMetadata(&Company{}) // Looks up at key Y -// Returns nil because X ≠ Y -``` - -**Solution**: Made getTypePtrFromValue() use the same getTypePtr() function - -```go -func getTypePtrFromValue(v any) TypePtr { - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() // Always normalize pointers - } - return getTypePtr(typ) // Use consistent extraction -} -``` - -**Impact**: - -- GetTypeMetadata() now works ✅ -- IsRegistered() now works ✅ -- Tests updated from expecting false to expecting true - ---- - -## Major Improvements - -### 📊 Reflection Elimination in Hot Path - -**Objective**: Remove reflection from runtime encoding/decoding - -**Approach**: Pre-compute allocators at compile time - -**Changes**: - -#### New File: `allocator.go` - -Created three allocator types: - -```go -type sliceAllocator func(capacity int) (data unsafe.Pointer, len int, cap int) -type mapAllocator func() unsafe.Pointer -type ptrAllocator func() unsafe.Pointer -``` - -**Key Insight**: Instead of calling `reflect.MakeSlice()` during decode, we: - -1. Capture the element type at compile time (during registration) -2. Create a closure that knows the element size -3. Use that closure at decode time (ZERO reflection) - -**Example**: - -```go -// At compile time (cold path): -allocate := makeSliceAllocator(elemType) // Uses reflect once - -// At decode time (hot path): -data, _, cap := allocate(count) // NO reflection! -``` - -#### Modified Files: `decoder.go`, `compiler.go` - -**sliceDecoder**: Replaced `reflect.MakeSlice()` with pre-computed `sliceAllocator` - -- Old: `sliceVal := reflect.MakeSlice(reflect.SliceOf(d.elemType), count, count)` -- New: `valPtr, _, capacity := d.allocate(count)` -- Result: ZERO reflection at decode time ✅ - -**ptrDecoder**: Replaced `reflect.New()` with pre-computed `ptrAllocator` - -- Old: `val := reflect.New(d.elemType)` -- New: `mem := d.allocate()` -- Result: ZERO reflection at decode time ✅ - -**mapDecoder**: Similar approach with `mapAllocator` and `ptrAllocator` - ---- - -## Test Updates - -### Tests Fixed and Updated: - -1. **registry_test.go::TypeMetadataRetrieval** - - Was: Expecting nil (documenting bug) - - Now: Expects metadata to be available ✅ - -2. **registry_test.go::IsRegisteredAfterRegisterTypes** - - Was: Expecting false (documenting bug) - - Now: Expects true ✅ - -### Test Results: - -``` -All 65+ codec tests PASSING ✅ -- TestCompiler: 13 tests -- TestDecoder: 15 tests -- TestOpcodes: 12 tests -- TestRegistry: 15 tests -- TestTags: 8 tests -- Plus various other tests -``` - ---- - -## Reflection Status (Final) - -### Compile-Time Reflection (Cold Path - Acceptable) - -- ✅ `compiler.go`: Type analysis during opcode compilation -- ✅ `allocator.go`: Pre-computing allocators at registration -- ✅ `registry.go`: RegisterTypes() and lazy compilation -- ✅ `tags.go`: Parsing struct field tags - -### Cached Reflection (Fast Path - Acceptable) - -- ✅ `GetEncoder()`: One reflection call per unique type (cached) -- ✅ `GetDecoder()`: One reflection call per unique type (cached) -- ✅ `getTypePtrFromValue()`: Uses reflection but for cache key only - -### Hot Path - Fully Optimized ✅ - -- ✅ `sliceDecoder.Decode()`: ZERO reflection (uses pre-computed allocator) -- ✅ `ptrDecoder.Decode()`: ZERO reflection (uses pre-computed allocator) -- ✅ `mapDecoder.Decode()`: Mostly optimized (see note below) -- ✅ `structDecoder.Decode()`: No reflection -- ✅ Primitive decoders: No reflection - -### Known Limitations - -- ⚠️ `opcodes.go::OpFieldInterface`: Uses `reflect.NewAt()` for interface fields (rare use case) -- ⚠️ `mapDecoder`: Still uses `reflect.MakeMapWithSize()` (unavoidable - maps require type info) - ---- - -## Architecture Insight - -### Key Design Pattern: Closure-Based Pre-Computation - -**Before** (Reflection at decode time): - -``` -Decode Request - ↓ -Retrieve Type Info (reflect) - ↓ -Allocate Memory (reflect) - ↓ -Decode Values -``` - -**After** (Reflection at compile time): - -``` -RegisterTypes / CompileDecoder (compile-time, cold path) - ↓ -Capture Type Info (reflect) - ↓ -Create Allocator Closure - ↓ -Store in Decoder - ↓ - Later... - ↓ -Decode Request - ↓ -Call Allocator Closure (NO reflect!) - ↓ -Decode Values -``` - ---- - -## Files Modified - -| File | Changes | Status | -| --------------------- | ---------------------------------- | ------ | -| typeptr.go | Fixed getTypePtrFromValue() | ✅ | -| registry_test.go | Updated 2 test expectations | ✅ | -| allocator.go | NEW file - 3 allocator types | ✅ | -| decoder.go | Removed elemType, added allocators | ✅ | -| compiler.go | Pass allocators to decoders | ✅ | -| REFLECTION_AUDIT.md | NEW file - detailed audit | ✅ | -| CODEC_IMPROVEMENTS.md | This file | ✅ | - ---- - -## Performance Implications - -### Compilation Phase (RegisterTypes) - -- Slightly slower: Now pre-computing allocators -- One-time cost: Only when registering new types -- Amortized: Encoding/decoding runs N times per registered type - -### Decode/Encode Phase - -- ✅ Faster: Zero reflection in hot paths -- ✅ More predictable: No reflection GC overhead -- ✅ Better cache locality: Pre-computed closures - ---- - -## Remaining Work - -### Optional (Nice-to-have) - -1. Optimize OpFieldInterface (reflect.NewAt) in opcodes.go - - Rare use case (interface fields) - - Minimal performance impact - -2. Investigate map allocation optimization - - Would require unsafe tricks or runtime internals - - Current approach is idiomatic - -3. Add benchmarks - - Compare against reflection-heavy codec - - Document performance improvement - ---- - -## Quality Assurance - -✅ All 65+ tests passing -✅ No linting issues -✅ No go vet warnings -✅ Code coverage maintained -✅ Backward compatible (no API changes) -✅ Thread-safe (encoders/decoders are immutable after compilation) diff --git a/vendor/github.com/rlch/neogo/CONTRIBUTING.md b/vendor/github.com/rlch/neogo/CONTRIBUTING.md deleted file mode 100644 index e69de29..0000000 diff --git a/vendor/github.com/rlch/neogo/LICENSE b/vendor/github.com/rlch/neogo/LICENSE deleted file mode 100644 index 880fb3c..0000000 --- a/vendor/github.com/rlch/neogo/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Richard Mathieson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/rlch/neogo/ORM_FEATURE_COMPARISON.md b/vendor/github.com/rlch/neogo/ORM_FEATURE_COMPARISON.md deleted file mode 100644 index 1b8bb26..0000000 --- a/vendor/github.com/rlch/neogo/ORM_FEATURE_COMPARISON.md +++ /dev/null @@ -1,142 +0,0 @@ -# neogo vs GORM Feature Comparison - -This document compares neogo's capabilities against GORM (the most popular Go ORM) to contextualize neogo's approach. - -## Philosophy Difference - -| Aspect | GORM | neogo | -|--------|------|-------| -| Query Language | Query builder that generates SQL | Raw Cypher with type-safe binding | -| Abstraction Level | High (hides SQL) | Low (exposes Cypher) | -| Learning Curve | Learn GORM API | Know Cypher, minimal API | -| Control | Framework controls SQL | Developer controls Cypher | - -**neogo's philosophy**: Write the Cypher you know, let neogo handle marshalling/unmarshalling. - -## Feature Matrix - -| Category | Feature | GORM | neogo | Notes | -|----------|---------|------|-------|-------| -| **Query Execution** ||||| -|| Raw queries | ✅ | ✅ | neogo is raw-Cypher-first | -|| Parameterized queries | ✅ | ✅ | `RunWithParams()` | -|| Result binding | ✅ | ✅ | Name/pointer pairs | -|| Streaming results | ✅ | ✅ | `Stream()` / `StreamWithParams()` | -| **Schema/Migrations** ||||| -|| Auto-migration | ✅ | ✅ | `Schema().AutoMigrate()` | -|| Index definitions via tags | ✅ | ✅ | `index`, `fulltext`, `text`, `point` | -|| Constraint definitions | ✅ | ✅ | `unique`, `notNull`, `nodeKey` | -|| Composite indexes | ✅ | ✅ | Via shared names | -|| Schema introspection | ✅ | ✅ | `GetIndexes()`, `GetConstraints()` | -| **Transactions** ||||| -|| Manual transactions | ✅ | ✅ | `BeginTransaction()` | -|| Managed transactions | ✅ | ✅ | `ReadTransaction()`, `WriteTransaction()` | -|| Auto-commit | ✅ | ✅ | `Exec()` | -| **Sessions** ||||| -|| Session management | ✅ | ✅ | `ReadSession()`, `WriteSession()` | -|| Connection pooling | ✅ | ✅ | Via neo4j driver | -|| Causal consistency | N/A | ✅ | Bookmark-based | -| **Type System** ||||| -|| Struct mapping | ✅ | ✅ | Via `neo4j` tags | -|| Custom types | ✅ | ✅ | `Valuer` interface | -|| Embedded structs | ✅ | ✅ | Node/Relationship base types | -|| Abstract types | ❌ | ✅ | Polymorphic nodes | -| **NOT in neogo** ||||| -|| Query builder | ✅ | ❌ | Write raw Cypher instead | -|| Hooks/callbacks | ✅ | ❌ | Handle in application code | -|| Eager loading (Preload) | ✅ | ❌ | Write relationship queries | -|| Scopes | ✅ | ❌ | Compose Cypher strings | -|| Soft delete | ✅ | ❌ | Implement as property pattern | - -Legend: ✅ Supported | ❌ Not implemented | N/A Not applicable - -## What neogo Does Well - -### 1. **Raw Cypher with Safety** -No DSL to learn - use the Cypher you know: -```go -var people []Person -err := driver.Exec(). - Cypher(` - MATCH (p:Person)-[:KNOWS*1..3]->(friend:Person) - WHERE p.id = $id AND friend.age > $minAge - WITH friend, count(*) AS connectionDepth - ORDER BY connectionDepth DESC - LIMIT 10 - RETURN friend - `). - RunWithParams(ctx, map[string]any{"id": id, "minAge": 21}, "friend", &people) -``` - -### 2. **Type-Safe Result Binding** -Simple name/pointer pairs: -```go -var person Person -var count int64 -err := c.Cypher(`... RETURN p, cnt`). - RunWithParams(ctx, params, "p", &person, "cnt", &count) -``` - -### 3. **Schema from Tags** -Define once, migrate automatically: -```go -type Person struct { - internal.Node `neo4j:"Person"` - Email string `neo4j:"email,unique"` - Name string `neo4j:"name,index"` -} - -// Auto-create indexes/constraints -actions, _ := driver.Schema().AutoMigrate(ctx) -``` - -### 4. **Neo4j-Specific Features** -- Abstract nodes (polymorphic types) -- Causal consistency with bookmarks -- Relationship structs with properties -- Full Cypher support (APOC, graph algorithms, etc.) - -## What neogo Doesn't Do - -neogo intentionally omits features that would: -- Generate Cypher (you write it) -- Hide Neo4j concepts behind abstractions -- Add runtime overhead for rarely-used features - -**For these patterns, use application code:** - -```go -// Soft delete - just a property pattern -err := c.Cypher(` - MATCH (p:Person {id: $id}) - SET p.deletedAt = datetime(), p.deleted = true -`).RunWithParams(ctx, params) - -// Eager loading - explicit relationship query -err := c.Cypher(` - MATCH (p:Person {id: $id})-[:KNOWS]->(friend:Person) - RETURN p, collect(friend) AS friends -`).RunWithParams(ctx, params, "p", &person, "friends", &friends) - -// Hooks - call functions before/after -func CreatePerson(ctx context.Context, c neogo.Client, p *Person) error { - p.CreatedAt = time.Now() // Before hook - err := c.Cypher(`CREATE (p:Person) SET p = $props`). - RunWithParams(ctx, map[string]any{"props": p}) - if err == nil { - sendWelcomeEmail(p) // After hook - } - return err -} -``` - -## When to Use What - -| Use Case | Recommendation | -|----------|----------------| -| Complex graph traversals | neogo (raw Cypher) | -| Simple CRUD on nodes | Either works | -| Relational data | GORM | -| Graph algorithms | neogo (access to GDS) | -| Rapid prototyping | GORM (more helpers) | -| Production Neo4j | neogo (full control) | diff --git a/vendor/github.com/rlch/neogo/README.md b/vendor/github.com/rlch/neogo/README.md deleted file mode 100644 index a5c6152..0000000 --- a/vendor/github.com/rlch/neogo/README.md +++ /dev/null @@ -1,212 +0,0 @@ -# neogo - -![logo](https://i.imgur.com/4bK7CqC.png) - -[![Go Report Card](https://goreportcard.com/badge/github.com/rlch/neogo)](https://goreportcard.com/report/github.com/rlch/neogo) [![codecov](https://codecov.io/gh/rlch/neogo/branch/main/graph/badge.svg?token=K1NYHBQD1A)](https://codecov.io/gh/rlch/neogo) [![Go Reference](https://pkg.go.dev/badge/github.com/rlch/neogo.svg)](https://pkg.go.dev/github.com/rlch/neogo) - -A lightweight Golang ORM for Neo4j with raw Cypher queries and type-safe result binding. - -> [!WARNING] -> The neogo API is still in an experimental phase. Expect minor changes and -> additions until the first release. - - -## Overview - -`neogo` provides a thin layer over the official Neo4j Go driver, letting you write raw Cypher queries while neogo handles: - -- **Automatic marshalling/unmarshalling** between Go structs and Neo4j -- **Type-safe result binding** with named bindings -- **Schema management** with indexes and constraints from struct tags -- **Session and transaction** management with causal consistency support -- **Zero-reflection hot path** for high performance - -## Getting Started - -### Installation - -```bash -go get github.com/rlch/neogo -``` - -### Define Your Models - -```go -import "github.com/rlch/neogo" - -type Person struct { - neogo.Node `neo4j:"Person"` - - Name string `neo4j:"name"` - Surname string `neo4j:"surname"` - Age int `neo4j:"age"` -} -``` - -### Connect and Query - -```go -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/rlch/neogo" -) - -func main() { - ctx := context.Background() - - // Create driver - driver, err := neogo.New( - "neo4j://localhost:7687", - neo4j.BasicAuth("neo4j", "password", ""), - neogo.WithTypes(&Person{}), - ) - if err != nil { - log.Fatal(err) - } - defer driver.DB().Close(ctx) - - // Create a person - err = driver.Exec(). - Cypher(` - CREATE (p:Person {id: $id, name: $name, surname: $surname, age: $age}) - `). - RunWithParams(ctx, map[string]any{ - "id": "some-unique-id", - "name": "Spongebob", - "surname": "Squarepants", - "age": 20, - }) - - // Query with result binding - var person Person - err = driver.Exec(). - Cypher(` - MATCH (p:Person {name: $name}) - RETURN p - `). - RunWithParams(ctx, map[string]any{"name": "Spongebob"}, "p", &person) - - fmt.Printf("person: %s %s, age %d\n", person.Name, person.Surname, person.Age) - // Output: person: Spongebob Squarepants, age 20 -} -``` - -## API - -### Basic Query Execution - -```go -// Simple query with no results -err := driver.Exec(). - Cypher(`CREATE (n:Node {id: $id})`). - RunWithParams(ctx, map[string]any{"id": "123"}) - -// Query with result binding - bindings are name/pointer pairs -var person Person -err := driver.Exec(). - Cypher(`MATCH (p:Person {id: $id}) RETURN p`). - RunWithParams(ctx, map[string]any{"id": "123"}, "p", &person) - -// Multiple result bindings -var person Person -var count int64 -err := driver.Exec(). - Cypher(` - MATCH (p:Person {id: $id})-[:KNOWS]->(f:Person) - WITH p, count(f) AS cnt - RETURN p, cnt - `). - RunWithParams(ctx, map[string]any{"id": "123"}, "p", &person, "cnt", &count) -``` - -### Sessions and Transactions - -```go -// Read session with transaction -session := driver.ReadSession(ctx) -defer session.Close(ctx) - -err := session.ReadTransaction(ctx, func(c neogo.Client) error { - var people []Person - return c.Cypher(`MATCH (p:Person) RETURN p`). - Run(ctx, "p", &people) -}) - -// Write session with transaction -session := driver.WriteSession(ctx) -defer session.Close(ctx) - -err := session.WriteTransaction(ctx, func(c neogo.Client) error { - return c.Cypher(`CREATE (p:Person {name: $name})`). - RunWithParams(ctx, map[string]any{"name": "Alice"}) -}) - -// Explicit transaction control -tx, err := session.BeginTransaction(ctx) -defer tx.Close(ctx) - -err = tx.Run(func(c neogo.Client) error { - return c.Cypher(`CREATE (p:Person {name: $name})`). - RunWithParams(ctx, map[string]any{"name": "Bob"}) -}) -if err != nil { - tx.Rollback(ctx) - return err -} -tx.Commit(ctx) -``` - -### Streaming Results - -```go -// Stream results one-by-one for memory efficiency -var person Person -err := driver.Exec(). - Cypher(`MATCH (p:Person) RETURN p`). - Stream(ctx, func() error { - fmt.Printf("Processing: %s\n", person.Name) - return nil - }, "p", &person) - -// Streaming with parameters -err := driver.Exec(). - Cypher(`MATCH (p:Person) WHERE p.age > $minAge RETURN p`). - StreamWithParams(ctx, map[string]any{"minAge": 18}, func() error { - fmt.Printf("Adult: %s\n", person.Name) - return nil - }, "p", &person) -``` - -### Schema Management - -```go -// Define schema with struct tags -type Person struct { - neogo.Node `neo4j:"Person"` - - Email string `neo4j:"email,unique"` // Unique constraint - Name string `neo4j:"name,index"` // Range index - Bio string `neo4j:"bio,fulltext"` // Fulltext index - Age int `neo4j:"age,notNull"` // Not null constraint -} - -// Auto-migrate schema -actions, err := driver.Schema().AutoMigrate(ctx) -for _, action := range actions { - fmt.Printf("Applied: %s\n", action.Description) -} - -// Check if migration is needed -needed, err := driver.Schema().NeedsMigration(ctx) -``` - -## Resources - -- [Go Reference](https://pkg.go.dev/github.com/rlch/neogo) -- [Official Neo4j Go Driver](https://github.com/neo4j/neo4j-go-driver) -- [Neo4j Cypher Manual](https://neo4j.com/docs/cypher-manual/current/) - - -## Contributing - -See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed instructions on how to contribute to `neogo`. diff --git a/vendor/github.com/rlch/neogo/REFLECTION_REMOVAL.md b/vendor/github.com/rlch/neogo/REFLECTION_REMOVAL.md deleted file mode 100644 index 2fcac60..0000000 --- a/vendor/github.com/rlch/neogo/REFLECTION_REMOVAL.md +++ /dev/null @@ -1,262 +0,0 @@ -# Reflection Removal Progress - -This document tracks progress on removing runtime reflection from hot paths in neogo. - -## Goals - -1. **Hot path (per-query/record)**: Zero reflection - use pre-compiled codecs with unsafe pointers -2. **Registration phase (startup)**: Reflection OK - happens once at startup -3. **Lookup phase (once per type)**: Minimal reflection OK - cache lookup uses `reflect.TypeOf` - -## Current State - -The codec system (`internal/codec/`) already implements zero-reflection decoding via: -- Pre-compiled decoders (`CompileDecoder`) -- Unsafe pointer arithmetic for field access -- Type-specific allocators that avoid runtime `reflect.New()` - -However, `internal/binding.go` still uses heavy reflection on the hot path. - -## Architecture Challenge - -The current binding system has two phases: -1. **Query building** (`scope.go`): Tracks `map[string]reflect.Value` bindings -2. **Unmarshaling** (`client_impl.go`): Uses those bindings to populate user structs - -The challenge is that `client_impl.go` does significant reflection work: -- `unmarshalRecords()`: Creates slice, gets index, allocates elements -- `unmarshalRecord()`: Passes `reflect.Value` to `BindValue` - -### Incremental Approach - -Rather than rewriting everything at once, we can: - -1. **Keep bindings as `reflect.Value`** for now (query building isn't hot path) -2. **Optimize `BindValue`** to delegate to codec ASAP (reduce reflection per-record) -3. **Later**: Refactor bindings to use typed wrappers that pre-compile allocation - -## Files to Refactor - -### High Priority (Hot Path) - -| File | Status | Notes | -|------|--------|-------| -| `internal/binding.go` | 🟢 OPTIMIZED | Reflection still used for special cases (Valuer, abstract), but fast path skips it | -| `internal/binding_plan.go` | 🟢 NEW | Pre-compiles binding metadata at query compile time, provides zero-reflection DecodeSingle/DecodeMultiple | -| `client_impl.go` | 🟢 OPTIMIZED | Uses BindingPlan for fast path, falls back to Bind() for special cases | - -### Medium Priority (Query Building) - -| File | Status | Notes | -|------|--------|-------| -| `internal/scope.go` | ✅ DONE | Changed from `reflect.Value` to `map[string]any` (pointers) | -| `internal/cypher.go` | ✅ DONE | `Bindings map[string]any` - pointers to user's binding targets | -| `internal/cypher_client.go` | ✅ DONE | Uses bindings from cypher.go | - -### Low Priority (Registration Only) - -| File | Status | Notes | -|------|--------|-------| -| `internal/registry.go` | ✅ OK | Registration phase - reflection acceptable | -| `internal/labels.go` | ✅ OK | `ExtractNodeLabels`/`ExtractRelationshipType` - registration phase | -| `internal/helpers.go` | ✅ OK | `WalkStruct` - used at registration, not hot path | -| `internal/codec/neo4j_extractor.go` | ✅ OK | Registration phase metadata extraction | -| `internal/codec/compiler.go` | ✅ OK | Compile-time only | -| `internal/codec/registry.go` | ✅ OK | Registration + lookup (cached) | - -## Plan for binding.go Removal - -### Current API -```go -func (r *Registry) BindValue(from any, to reflect.Value) error -``` - -### Target API -```go -func (r *Registry) Bind(from any, to any) error // to must be pointer -``` - -### Migration Steps - -1. **Phase 1**: Add new `Bind(from any, to any)` method that uses codec.Decode -2. **Phase 2**: Handle special cases in codec: - - `neo4j.Node` → extract Props, decode to struct - - `neo4j.Relationship` → extract Props, decode to struct - - Slice depth matching (single record to slice) - - Abstract node binding (polymorphic decode) - - Valuer interface support -3. **Phase 3**: Update callers (`client_impl.go`) to use new API -4. **Phase 4**: Remove old `BindValue` and related reflection code - -## Special Cases to Handle - -### 1. Neo4j Node/Relationship Unwrapping -Currently handled in binding.go: -```go -case neo4j.Node: - return r.BindValue(fromVal.Props, to) -``` -**Solution**: Codec decoder already handles this in `structDecoder.Decode()` - -### 2. Slice Depth Matching -```go -// If depth of from is 1 lower than to, wrap in slice -if fromDepth+1 == toDepth { - to.Set(reflect.MakeSlice(toT, 1, 1)) - return r.BindValue(from, to.Index(0)) -} -``` -**Solution**: Add to slice decoder or handle in top-level Bind() - -### 3. Abstract Node Binding -```go -func (r *Registry) BindAbstractNode(node neo4j.Node, to reflect.Value) error -``` -**Solution**: Need label-based type lookup in codec registry - -### 4. Valuer Interface -```go -type Valuer[V neo4j.RecordValue] interface { - Marshal() (*V, error) - Unmarshal(*V) error -} -``` -**Solution**: Check for interface at registration, compile custom decoder - -### 5. Primitive Coercion (via cast library) -```go -case int: - return true, bindCasted(cast.ToIntE, from, value) -``` -**Solution**: Codec decoders already handle type conversion - -## Scope/Bindings Refactor - -The `map[string]reflect.Value` in scope.go is used for: -1. Tracking bound variables during query building -2. Passing bindings to unmarshaling - -Options: -- **Option A**: Keep `reflect.Value` in scope (query building isn't hot path) -- **Option B**: Change to `map[string]any` and use type assertions -- **Option C**: Change to `map[string]unsafe.Pointer` with type info - -**Recommendation**: Option A for now - query building happens once per query, not per record. - -## Progress Log - -- [x] Phase 1: Simplify binding.go to delegate to codec ASAP - - Removed ~100 lines of reflection code - - Kept Valuer interface support - - Added primitive binding helper - - Fixed nil handling -- [x] Phase 2: Handle special cases - - Neo4j Node/Relationship unwrapping (codec handles this) - - Slice depth matching (kept in binding.go for now) - - Single value to slice wrapping - - Abstract node binding (polymorphic) - - Nil pointer preservation in slices -- [x] Phase 3: Update client_impl.go - - Fixed nil pre-allocation issue -- [x] Phase 4: Scope bindings migration from reflect.Value to any - - Changed `bindings` from `map[string]reflect.Value` to `map[string]any` (pointers) - - Changed `names` from `map[reflect.Value]string` to `map[uintptr]string` (pointer addresses) - - Added `ptrAddr()` helper for pointer address extraction - - Fixed field/name lookup priority for zero-size embedded types - - Primitive pointers (string, int, etc.) check fields first - - Struct/interface pointers check names first - - Updated `propertyIdentifier` and `valueIdentifier` with same logic - - Fixed WHERE clause identifier to use name string instead of raw identifier - - Delete field entry when aliasing to prevent stale lookups -- [x] Phase 5: BindingPlan - Pre-compile binding metadata - - Added `BindingPlan` struct in `internal/binding_plan.go` - - Pre-computes at query compile time (not per-record): - - IsSlice, IsAbstract, IsSliceAbstract flags - - SliceDepth, PointerDepth - - Decoder (pre-compiled from codec) - - SliceAllocator, ElemAllocator functions - - Added `Plans map[string]*BindingPlan` to `CompiledCypher` - - Plans built in `CypherRunner.Compile()` via `BuildBindingPlans()` - - `unmarshalRecords` uses plan flags instead of runtime reflection -- [x] Phase 6: Use plan.Decoder directly in hot path (skip BindValue) - - Added `DecodeSingle(value any)` method to BindingPlan - - Uses pre-compiled decoder directly via unsafe pointer - - ZERO reflection for non-abstract, non-Valuer types - - Falls through to Bind() for special cases - - Added `DecodeMultiple(values []any)` method to BindingPlan - - Uses pre-compiled SliceAllocator + decoder - - Batch decodes multiple records efficiently - - Updated `unmarshalRecord()` in client_impl.go: - - Uses `plan.DecodeSingle()` for non-slice bindings - - Falls back to `Bind()` only for abstract/special types - - Updated `unmarshalRecords()` in client_impl.go: - - Uses `plan.DecodeMultiple()` first for slice bindings - - Simplified: removed legacy path (plans always available) - - Updated `unmarshalRecordsFallback()`: - - Uses `plan.SliceAllocator` instead of `reflect.MakeSlice` - - Uses `plan.ElemAllocator` instead of `reflect.New` for pointer elements - - Added `getTargetPtr()` helper for unwrapping pointer chains - - **Removed legacy code**: - - Deleted `normalizeSliceBinding()` - replaced by plan.DecodeMultiple - - Deleted `isAbstractSliceBinding()` - replaced by plan.IsSliceAbstract flag - - Simplified `unmarshalRecords()` control flow -- [ ] Phase 7: Add HasValuer detection at plan creation time (future work) - - Would allow skipping Valuer interface check per-record - - Low priority since Valuer is rarely used -- [x] Phase 8: Further simplify binding.go - - Consolidated `computeDepth` and `computeSliceDepth` (removed duplicate) - - Consolidated `isAbstractTarget` to delegate to `isAbstractType` - - Removed redundant `rAbstract` local variable (uses package-level from registry.go) - - Updated comments to accurately describe reflection boundaries -- [x] Phase 9: Evaluate remaining reflection in query building - - **Conclusion**: Query building reflection is ACCEPTABLE (not hot path) - - Added documentation headers to scope.go, binding.go, binding_plan.go - - Clarified reflection boundaries in comments - - No changes needed - query building happens once per query, not per-record -- [x] Phase 10: Cache target pointer at plan creation time - - Added `CachedTargetPtr` field to BindingPlan - - Renamed `getTargetPtr()` to `computeTargetPtr()` - called once at plan creation - - `DecodeSingle()` now uses cached pointer directly - ZERO reflection per-record - - `DecodeMultiple()` uses cached pointer for slice header - - Added `TestBindingPlan_CachedTargetPtr` test suite - - **Result**: Eliminated `reflect.ValueOf()` calls from hot path - -## Code Stats - -**Before refactor:** -- `binding.go`: ~300 lines with heavy reflection -- `scope.go`: Used `reflect.Value` for bindings map -- Used `cast` library for type coercion -- Every record decode used reflection per-field - -**After Phase 8-9 cleanup:** -- `binding.go`: ~340 lines, reflection only for special cases (Valuer, abstract, slice depth) -- `binding_plan.go`: ~270 lines, pre-compiled binding plans with accurate doc comments -- `scope.go`: Uses `map[string]any` with `map[uintptr]string` for reverse lookup -- `client_impl.go`: Uses BindingPlan fast path, falls back to Bind() for special cases -- All files have clear documentation of reflection boundaries - -**Hot path improvements:** -- Non-abstract, non-Valuer bindings: ZERO reflection per-record -- Target pointer: Cached at plan creation (no `reflect.ValueOf` per-record) -- Slice allocations: Pre-compiled allocators (per-batch, not per-record) -- Pointer element allocations: Pre-compiled allocators (fallback path only) -- Type checking: Plan flags instead of `reflect.Kind()`, `reflect.Implements()` -- Decoder lookup: Pre-compiled at query compile time (not per-record) - -## Final Architecture - -``` -Query Building (reflection OK - once per query) - scope.go -> Tracks bindings, generates Cypher - cypher.go -> Builds query string - cypher_client.go -> Compiles query, builds BindingPlans - -Record Decoding (zero reflection - per record) - binding_plan.go -> Pre-compiled plans with flags & decoders - codec/decoder.go -> Zero-reflection decoders using unsafe - codec/registry.go -> Decoder lookup (cached) - -Fallback Path (reflection - special cases only) - binding.go -> Valuer, abstract nodes, slice depth mismatch -``` diff --git a/vendor/github.com/rlch/neogo/Taskfile.yml b/vendor/github.com/rlch/neogo/Taskfile.yml deleted file mode 100644 index 6e5ea81..0000000 --- a/vendor/github.com/rlch/neogo/Taskfile.yml +++ /dev/null @@ -1,156 +0,0 @@ -version: "3" - -vars: - NEO4J_CONTAINER_NAME: neogo-neo4j - NEO4J_PORT: 7687 - NEO4J_USER: neo4j - NEO4J_PASSWORD: password - -tasks: - check: - desc: Check prerequisites (Docker, gotestsum) - cmds: - - | - echo "Checking prerequisites..." - - # Check Docker - if ! command -v docker &> /dev/null; then - echo "❌ Docker is not installed" - echo " Please install Docker: https://docs.docker.com/get-docker/" - exit 1 - else - echo "✅ Docker is installed" - fi - - if ! docker ps &> /dev/null; then - echo "⚠️ Docker daemon is not running" - echo " Please start Docker first" - else - echo "✅ Docker daemon is running" - fi - - # Check gotestsum - if ! command -v gotestsum &> /dev/null; then - echo "❌ gotestsum is not installed" - echo " Install with: go install gotest.tools/gotestsum@latest" - exit 1 - else - echo "✅ gotestsum is installed" - fi - - echo "" - echo "All prerequisites are ready! 🎉" - silent: false - neo4j:start: - desc: Start Neo4J Docker container for testing - cmds: - - | - if ! command -v docker &> /dev/null; then - echo "Error: Docker is not installed or not in PATH" - exit 1 - fi - if ! docker ps &> /dev/null; then - echo "Error: Docker daemon is not running. Please start Docker first." - exit 1 - fi - if ! docker ps -q -f name={{.NEO4J_CONTAINER_NAME}} | grep -q .; then - echo "Starting Neo4J container..." - docker run -d \ - --name {{.NEO4J_CONTAINER_NAME}} \ - -p {{.NEO4J_PORT}}:7687 \ - -p 7474:7474 \ - -e NEO4J_AUTH={{.NEO4J_USER}}/{{.NEO4J_PASSWORD}} \ - -e NEO4J_PLUGINS='["apoc"]' \ - -e NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \ - --rm \ - neo4j:5.7-community - echo "Neo4J container started successfully" - else - echo "Neo4J container is already running" - fi - silent: false - - neo4j:wait: - desc: Wait for Neo4J to be ready - deps: [neo4j:start] - cmds: - - | - echo "Waiting for Neo4J to be ready..." - timeout=60 - elapsed=0 - while [ $elapsed -lt $timeout ]; do - if docker logs {{.NEO4J_CONTAINER_NAME}} 2>&1 | grep -q "Bolt enabled"; then - echo "Neo4J is ready!" - exit 0 - fi - echo "Waiting for Neo4J to start... ($elapsed/$timeout seconds)" - sleep 2 - elapsed=$((elapsed + 2)) - done - echo "Timeout waiting for Neo4J to start" - exit 1 - silent: false - - neo4j:stop: - desc: Stop and remove Neo4J Docker container - cmds: - - | - if docker ps -q -f name={{.NEO4J_CONTAINER_NAME}} | grep -q .; then - echo "Stopping Neo4J container..." - docker stop {{.NEO4J_CONTAINER_NAME}} - echo "Neo4J container stopped" - else - echo "Neo4J container is not running" - fi - silent: false - - neo4j:logs: - desc: Show Neo4J container logs - cmds: - - docker logs {{.NEO4J_CONTAINER_NAME}} - - install: - desc: Install project dependencies - cmds: - - go mod download - - go mod verify - - test:unit: - desc: Run unit tests (no Neo4J required) - cmds: - - gotestsum -- -short ./... - - test:integration: - desc: Run integration tests with Neo4J - deps: [neo4j:wait] - cmds: - - gotestsum ./... - - test: - desc: Run all tests (starts Neo4J, runs tests, stops Neo4J) - deps: [neo4j:wait] - cmds: - - gotestsum ./... - - task: neo4j:stop - - test:watch: - desc: Run tests in watch mode with Neo4J - deps: [neo4j:wait] - cmds: - - gotestsum --watch ./... - - clean: - desc: Clean up containers and build artifacts - cmds: - - task: neo4j:stop - - go clean -cache - - go clean -testcache - - dev:setup: - desc: Set up development environment - cmds: - - task: install - - task: neo4j:start - - task: neo4j:wait - - echo "Development environment ready!" - diff --git a/vendor/github.com/rlch/neogo/client_impl.go b/vendor/github.com/rlch/neogo/client_impl.go deleted file mode 100644 index c12c136..0000000 --- a/vendor/github.com/rlch/neogo/client_impl.go +++ /dev/null @@ -1,385 +0,0 @@ -package neogo - -import ( - "context" - "errors" - "fmt" - "reflect" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - - "github.com/rlch/neogo/internal" - "github.com/rlch/neogo/internal/codec" -) - -type ( - // Client is the query interface returned by Driver.Exec(). - Client interface { - // Cypher sets the Cypher query string and returns a Runner for execution. - Cypher(query string) Runner - } - - // Runner executes Cypher queries with bindings. - Runner interface { - // Print prints the query to stdout for debugging. - Print() Runner - - // Run executes the query with bindings. - // Bindings should be pairs of (name string, target any). - // - // Example: - // var person Person - // var movie Movie - // err := d.Exec(). - // Cypher("MATCH (p:Person)-[:ACTED_IN]->(m:Movie) RETURN p, m"). - // Run(ctx, "p", &person, "m", &movie) - Run(ctx context.Context, bindings ...any) error - - // RunWithParams executes the query with parameters and bindings. - // - // Example: - // var person Person - // err := d.Exec(). - // Cypher("MATCH (p:Person {name: $name}) RETURN p"). - // RunWithParams(ctx, map[string]any{"name": "Alice"}, "p", &person) - RunWithParams(ctx context.Context, params map[string]any, bindings ...any) error - - // Stream executes the query and streams results one-by-one. - // Bindings should be pairs of (name string, target any). - Stream(ctx context.Context, sink func() error, bindings ...any) error - - // StreamWithParams executes the query with parameters and streams results. - StreamWithParams(ctx context.Context, params map[string]any, sink func() error, bindings ...any) error - } - - clientImpl struct { - *session - cy *internal.CypherClient - } - - runnerImpl struct { - *session - cy *internal.CypherRunner - } -) - -func (s *session) newClient(cy *internal.CypherClient) *clientImpl { - return &clientImpl{ - session: s, - cy: cy, - } -} - -func (c *clientImpl) Cypher(query string) Runner { - return &runnerImpl{ - session: c.session, - cy: c.cy.Cypher(query), - } -} - -func (r *runnerImpl) Print() Runner { - r.cy.Print() - return r -} - -func (r *runnerImpl) Run(ctx context.Context, bindings ...any) error { - return r.RunWithParams(ctx, nil, bindings...) -} - -func (r *runnerImpl) RunWithParams(ctx context.Context, params map[string]any, bindings ...any) error { - cy, err := r.cy.CompileWithParams(params, bindings...) - if err != nil { - return fmt.Errorf("cannot compile cypher: %w", err) - } - - canonicalizedParams, err := canonicalizeParams(r.Registry().Codecs(), cy.Parameters) - if err != nil { - return fmt.Errorf("cannot serialize parameters: %w", err) - } - if canonicalizedParams != nil { - canonicalizedParams["__isWrite"] = cy.IsWrite - } - - _, err = r.executeTransaction( - ctx, cy, - func(tx neo4j.ManagedTransaction) (any, error) { - result, err := tx.Run(ctx, cy.Cypher, canonicalizedParams) - if err != nil { - return nil, fmt.Errorf("cannot run cypher: %w", err) - } - if err = r.unmarshalResult(ctx, cy, result); err != nil { - return nil, err - } - return nil, nil - }) - return err -} - -func (r *runnerImpl) Stream(ctx context.Context, sink func() error, bindings ...any) error { - return r.StreamWithParams(ctx, nil, sink, bindings...) -} - -func (r *runnerImpl) StreamWithParams(ctx context.Context, params map[string]any, sink func() error, bindings ...any) error { - cy, err := r.cy.CompileWithParams(params, bindings...) - if err != nil { - return fmt.Errorf("cannot compile cypher: %w", err) - } - - canonicalizedParams, err := canonicalizeParams(r.Registry().Codecs(), cy.Parameters) - if err != nil { - return fmt.Errorf("cannot serialize parameters: %w", err) - } - - _, err = r.executeTransaction(ctx, cy, func(tx neo4j.ManagedTransaction) (any, error) { - result, err := tx.Run(ctx, cy.Cypher, canonicalizedParams) - if err != nil { - return nil, fmt.Errorf("cannot run cypher: %w", err) - } - - for result.Next(ctx) { - record := result.Record() - if record == nil { - continue - } - if err = r.unmarshalRecord(cy, record); err != nil { - return nil, fmt.Errorf("cannot unmarshal record: %w", err) - } - if err = sink(); err != nil { - return nil, err - } - } - - if err = result.Err(); err != nil { - return nil, fmt.Errorf("result error: %w", err) - } - return nil, nil - }) - return err -} - -func (s *session) unmarshalResult( - ctx context.Context, - cy *internal.CompiledCypher, - result neo4j.ResultWithContext, -) (err error) { - if !result.Next(ctx) { - return nil - } - first := result.Record() - if result.Peek(ctx) { - var records []*neo4j.Record - records, err = result.Collect(ctx) - if err != nil { - return fmt.Errorf("cannot collect records: %w", err) - } - records = append([]*neo4j.Record{first}, records...) - if err = s.unmarshalRecords(cy, records); err != nil { - return fmt.Errorf("cannot unmarshal records: %w", err) - } - } else { - single := result.Record() - if single == nil { - return nil - } - if err = s.unmarshalRecord(cy, single); err != nil { - return fmt.Errorf("cannot unmarshal record: %w", err) - } - } - return nil -} - -func (s *session) unmarshalRecords( - cy *internal.CompiledCypher, - records []*neo4j.Record, -) error { - n := len(records) - if n == 0 { - return nil - } - - for key, binding := range cy.Bindings { - values := make([]any, n) - for i, record := range records { - value, ok := record.Get(key) - if !ok { - return fmt.Errorf("no value associated with key %q", key) - } - values[i] = value - } - - plan := cy.Plans[key] - - if plan != nil && plan.IsSlice && !plan.IsSliceAbstract && plan.Decoder != nil { - if err := plan.DecodeMultiple(values); err == nil { - continue - } - } - - if err := s.unmarshalRecordsFallback(key, values, binding, plan); err != nil { - return err - } - } - - return nil -} - -func (s *session) unmarshalRecordsFallback(key string, values []any, binding any, plan *internal.BindingPlan) error { - n := len(values) - - bindingV := reflect.ValueOf(binding) - if bindingV.Kind() != reflect.Ptr { - return fmt.Errorf("binding for key %q must be a pointer", key) - } - sliceV := bindingV.Elem() - for sliceV.Kind() == reflect.Ptr { - if sliceV.IsNil() { - sliceV.Set(reflect.New(sliceV.Type().Elem())) - } - sliceV = sliceV.Elem() - } - if sliceV.Kind() != reflect.Slice { - return fmt.Errorf("binding for key %q must be a pointer to slice, got %v", key, sliceV.Kind()) - } - - if plan != nil && plan.SliceAllocator != nil { - slice := plan.SliceAllocator(n) - sliceV.Set(reflect.ValueOf(slice)) - } else { - sliceV.Set(reflect.MakeSlice(sliceV.Type(), n, n)) - } - - for i, value := range values { - elemV := sliceV.Index(i) - - if value == nil { - continue - } - - if elemV.Kind() == reflect.Ptr && elemV.IsNil() { - if plan != nil && plan.ElemAllocator != nil { - elemPtr := plan.ElemAllocator() - elemV.Set(reflect.NewAt(elemV.Type().Elem(), elemPtr)) - } else { - elemV.Set(reflect.New(elemV.Type().Elem())) - } - } - - if elemV.CanAddr() { - elemV = elemV.Addr() - } - if err := s.reg.BindValue(value, elemV.Elem()); err != nil { - return fmt.Errorf("error binding key %q index %d: %w", key, i, err) - } - } - - return nil -} - -func (s *session) unmarshalRecord( - cy *internal.CompiledCypher, - record *neo4j.Record, -) error { - for key, binding := range cy.Bindings { - value, ok := record.Get(key) - if !ok { - return fmt.Errorf("no value associated with key %q", key) - } - - if plan := cy.Plans[key]; plan != nil { - if !plan.IsSlice && !plan.IsAbstract && plan.Decoder != nil { - if err := plan.DecodeSingle(value); err == nil { - continue - } - } - } - - if err := s.reg.Bind(value, binding); err != nil { - return fmt.Errorf("error binding key %q: %w", key, err) - } - } - return nil -} - -func (r *runnerImpl) executeTransaction( - ctx context.Context, - cy *internal.CompiledCypher, - exec neo4j.ManagedTransactionWork, -) (out any, err error) { - if r.currentTx == nil { - sess := r.Session() - sessConfig := neo4j.SessionConfig{ - AccessMode: neo4j.AccessModeRead, - } - r.ensureCausalConsistency(ctx, &sessConfig) - if sess == nil { - if conf := r.execConfig.SessionConfig; conf != nil { - sessConfig = *conf - } - if cy.IsWrite || sessConfig.AccessMode == neo4j.AccessModeWrite { - sessConfig.AccessMode = neo4j.AccessModeWrite - } else { - sessConfig.AccessMode = neo4j.AccessModeRead - } - sess = r.db.NewSession(ctx, sessConfig) - defer func() { - if sessConfig.AccessMode == neo4j.AccessModeWrite { - bookmarks := sess.LastBookmarks() - if bookmarks == nil || r.causalConsistencyKey == nil { - return - } - key := r.causalConsistencyKey(ctx) - if cur, ok := causalConsistencyCache[key]; ok { - causalConsistencyCache[key] = neo4j.CombineBookmarks(cur, bookmarks) - } else { - causalConsistencyCache[key] = bookmarks - go func(key string) { - <-ctx.Done() - causalConsistencyCache[key] = nil - }(key) - } - } - if closeErr := sess.Close(ctx); closeErr != nil { - err = errors.Join(err, closeErr) - } - }() - } - config := func(tc *neo4j.TransactionConfig) { - if conf := r.execConfig.TransactionConfig; conf != nil { - *tc = *conf - } - } - if cy.IsWrite || sessConfig.AccessMode == neo4j.AccessModeWrite { - out, err = sess.ExecuteWrite(ctx, exec, config) - } else { - out, err = sess.ExecuteRead(ctx, exec, config) - } - if err != nil { - return nil, err - } - } else { - out, err = exec(r.currentTx) - if err != nil { - return nil, err - } - } - return -} - -func canonicalizeParams(codecs *codec.CodecRegistry, params map[string]any) (map[string]any, error) { - canon := make(map[string]any, len(params)) - if len(params) == 0 { - return canon, nil - } - for k, v := range params { - if v == nil { - canon[k] = nil - continue - } - val, err := codecs.EncodeValue(v) - if err != nil { - return nil, fmt.Errorf("cannot encode param %q: %w", k, err) - } - canon[k] = val - } - return canon, nil -} diff --git a/vendor/github.com/rlch/neogo/codecov.yml b/vendor/github.com/rlch/neogo/codecov.yml deleted file mode 100644 index f2704ce..0000000 --- a/vendor/github.com/rlch/neogo/codecov.yml +++ /dev/null @@ -1,4 +0,0 @@ -coverage: - range: 60..80 - round: up - precision: 2 diff --git a/vendor/github.com/rlch/neogo/cypher.ebnf b/vendor/github.com/rlch/neogo/cypher.ebnf deleted file mode 100644 index 2d84dc6..0000000 --- a/vendor/github.com/rlch/neogo/cypher.ebnf +++ /dev/null @@ -1,559 +0,0 @@ - - * Copyright (c) 2015-2023 "Neo Technology," - * Network Engine for Objects in Lund AB [http://neotechnology.com] - * - * 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. - * - * Attribution Notice under the terms of the Apache License 2.0 - * - * This work was created by the collective efforts of the openCypher community. - * Without limiting the terms of Section 6, any Derivative Work that is not - * approved by the public consensus process of the openCypher Implementers Group - * should not be described as “Cypher” (and Cypher® is a registered trademark of - * Neo4j Inc.) or as "openCypher". Extensions by implementers or prototypes or - * proposals for change that have been documented or implemented should only be - * described as "implementation extensions to Cypher" or as "proposed changes to - * Cypher that are not yet approved by the openCypher community". - *) -Cypher = [SP], Statement, [[SP], ';'], [SP], EOI ; - -Statement = Query ; - -Query = RegularQuery - | StandaloneCall - ; - -RegularQuery = SingleQuery, { [SP], Union } ; - -Union = ((U,N,I,O,N), SP, (A,L,L), [SP], SingleQuery) - | ((U,N,I,O,N), [SP], SingleQuery) - ; - -SingleQuery = SinglePartQuery - | MultiPartQuery - ; - -SinglePartQuery = ({ ReadingClause, [SP] }, Return) - | ({ ReadingClause, [SP] }, UpdatingClause, { [SP], UpdatingClause }, [[SP], Return]) - ; - -MultiPartQuery = { { ReadingClause, [SP] }, { UpdatingClause, [SP] }, With, [SP] }-, SinglePartQuery ; - -UpdatingClause = Create - | Merge - | Delete - | Set - | Remove - ; - -ReadingClause = Match - | Unwind - | InQueryCall - ; - -Match = [(O,P,T,I,O,N,A,L), SP], (M,A,T,C,H), [SP], Pattern, [[SP], Where] ; - -Unwind = (U,N,W,I,N,D), [SP], Expression, SP, (A,S), SP, Variable ; - -Merge = (M,E,R,G,E), [SP], PatternPart, { SP, MergeAction } ; - -MergeAction = ((O,N), SP, (M,A,T,C,H), SP, Set) - | ((O,N), SP, (C,R,E,A,T,E), SP, Set) - ; - -Create = (C,R,E,A,T,E), [SP], Pattern ; - -Set = (S,E,T), [SP], SetItem, { [SP], ',', [SP], SetItem } ; - -SetItem = (PropertyExpression, [SP], '=', [SP], Expression) - | (Variable, [SP], '=', [SP], Expression) - | (Variable, [SP], '+=', [SP], Expression) - | (Variable, [SP], NodeLabels) - ; - -Delete = [(D,E,T,A,C,H), SP], (D,E,L,E,T,E), [SP], Expression, { [SP], ',', [SP], Expression } ; - -Remove = (R,E,M,O,V,E), SP, RemoveItem, { [SP], ',', [SP], RemoveItem } ; - -RemoveItem = (Variable, NodeLabels) - | PropertyExpression - ; - -InQueryCall = (C,A,L,L), SP, ExplicitProcedureInvocation, [[SP], (Y,I,E,L,D), SP, YieldItems] ; - -StandaloneCall = (C,A,L,L), SP, (ExplicitProcedureInvocation | ImplicitProcedureInvocation), [[SP], (Y,I,E,L,D), SP, ('*' | YieldItems)] ; - -YieldItems = YieldItem, { [SP], ',', [SP], YieldItem }, [[SP], Where] ; - -YieldItem = [ProcedureResultField, SP, (A,S), SP], Variable ; - -With = (W,I,T,H), ProjectionBody, [[SP], Where] ; - -Return = (R,E,T,U,R,N), ProjectionBody ; - -ProjectionBody = [[SP], (D,I,S,T,I,N,C,T)], SP, ProjectionItems, [SP, Order], [SP, Skip], [SP, Limit] ; - -ProjectionItems = ('*', { [SP], ',', [SP], ProjectionItem }) - | (ProjectionItem, { [SP], ',', [SP], ProjectionItem }) - ; - -ProjectionItem = (Expression, SP, (A,S), SP, Variable) - | Expression - ; - -Order = (O,R,D,E,R), SP, (B,Y), SP, SortItem, { ',', [SP], SortItem } ; - -Skip = (S,K,I,P), SP, Expression ; - -Limit = (L,I,M,I,T), SP, Expression ; - -SortItem = Expression, [[SP], ((A,S,C,E,N,D,I,N,G) | (A,S,C) | (D,E,S,C,E,N,D,I,N,G) | (D,E,S,C))] ; - -Where = (W,H,E,R,E), SP, Expression ; - -Pattern = PatternPart, { [SP], ',', [SP], PatternPart } ; - -PatternPart = (Variable, [SP], '=', [SP], AnonymousPatternPart) - | AnonymousPatternPart - ; - -AnonymousPatternPart = PatternElement ; - -PatternElement = (NodePattern, { [SP], PatternElementChain }) - | ('(', PatternElement, ')') - ; - -RelationshipsPattern = NodePattern, { [SP], PatternElementChain }- ; - -NodePattern = '(', [SP], [Variable, [SP]], [NodeLabels, [SP]], [Properties, [SP]], ')' ; - -PatternElementChain = RelationshipPattern, [SP], NodePattern ; - -RelationshipPattern = (LeftArrowHead, [SP], Dash, [SP], [RelationshipDetail], [SP], Dash, [SP], RightArrowHead) - | (LeftArrowHead, [SP], Dash, [SP], [RelationshipDetail], [SP], Dash) - | (Dash, [SP], [RelationshipDetail], [SP], Dash, [SP], RightArrowHead) - | (Dash, [SP], [RelationshipDetail], [SP], Dash) - ; - -RelationshipDetail = '[', [SP], [Variable, [SP]], [RelationshipTypes, [SP]], [RangeLiteral], [Properties, [SP]], ']' ; - -Properties = MapLiteral - | Parameter - ; - -RelationshipTypes = ':', [SP], RelTypeName, { [SP], '|', [':'], [SP], RelTypeName } ; - -NodeLabels = NodeLabel, { [SP], NodeLabel } ; - -NodeLabel = ':', [SP], LabelName ; - -RangeLiteral = '*', [SP], [IntegerLiteral, [SP]], ['..', [SP], [IntegerLiteral, [SP]]] ; - -LabelName = SchemaName ; - -RelTypeName = SchemaName ; - -PropertyExpression = Atom, { [SP], PropertyLookup }- ; - -Expression = OrExpression ; - -OrExpression = XorExpression, { SP, (O,R), SP, XorExpression } ; - -XorExpression = AndExpression, { SP, (X,O,R), SP, AndExpression } ; - -AndExpression = NotExpression, { SP, (A,N,D), SP, NotExpression } ; - -NotExpression = { (N,O,T), [SP] }, ComparisonExpression ; - -ComparisonExpression = StringListNullPredicateExpression, { [SP], PartialComparisonExpression } ; - -PartialComparisonExpression = ('=', [SP], StringListNullPredicateExpression) - | ('<>', [SP], StringListNullPredicateExpression) - | ('<', [SP], StringListNullPredicateExpression) - | ('>', [SP], StringListNullPredicateExpression) - | ('<=', [SP], StringListNullPredicateExpression) - | ('>=', [SP], StringListNullPredicateExpression) - ; - -StringListNullPredicateExpression = AddOrSubtractExpression, { StringPredicateExpression | ListPredicateExpression | NullPredicateExpression } ; - -StringPredicateExpression = ((SP, (S,T,A,R,T,S), SP, (W,I,T,H)) | (SP, (E,N,D,S), SP, (W,I,T,H)) | (SP, (C,O,N,T,A,I,N,S))), [SP], AddOrSubtractExpression ; - -ListPredicateExpression = SP, (I,N), [SP], AddOrSubtractExpression ; - -NullPredicateExpression = (SP, (I,S), SP, (N,U,L,L)) - | (SP, (I,S), SP, (N,O,T), SP, (N,U,L,L)) - ; - -AddOrSubtractExpression = MultiplyDivideModuloExpression, { ([SP], '+', [SP], MultiplyDivideModuloExpression) | ([SP], '-', [SP], MultiplyDivideModuloExpression) } ; - -MultiplyDivideModuloExpression = PowerOfExpression, { ([SP], '*', [SP], PowerOfExpression) | ([SP], '/', [SP], PowerOfExpression) | ([SP], '%', [SP], PowerOfExpression) } ; - -PowerOfExpression = UnaryAddOrSubtractExpression, { [SP], '^', [SP], UnaryAddOrSubtractExpression } ; - -UnaryAddOrSubtractExpression = NonArithmeticOperatorExpression - | (('+' | '-'), [SP], NonArithmeticOperatorExpression) - ; - -NonArithmeticOperatorExpression = Atom, { ([SP], ListOperatorExpression) | ([SP], PropertyLookup) }, [[SP], NodeLabels] ; - -ListOperatorExpression = ('[', Expression, ']') - | ('[', [Expression], '..', [Expression], ']') - ; - -PropertyLookup = '.', [SP], (PropertyKeyName) ; - -Atom = Literal - | Parameter - | CaseExpression - | ((C,O,U,N,T), [SP], '(', [SP], '*', [SP], ')') - | ListComprehension - | PatternComprehension - | Quantifier - | PatternPredicate - | ParenthesizedExpression - | FunctionInvocation - | ExistentialSubquery - | Variable - ; - -CaseExpression = (((C,A,S,E), { [SP], CaseAlternative }-) | ((C,A,S,E), [SP], Expression, { [SP], CaseAlternative }-)), [[SP], (E,L,S,E), [SP], Expression], [SP], (E,N,D) ; - -CaseAlternative = (W,H,E,N), [SP], Expression, [SP], (T,H,E,N), [SP], Expression ; - -ListComprehension = '[', [SP], FilterExpression, [[SP], '|', [SP], Expression], [SP], ']' ; - -PatternComprehension = '[', [SP], [Variable, [SP], '=', [SP]], RelationshipsPattern, [SP], [Where, [SP]], '|', [SP], Expression, [SP], ']' ; - -Quantifier = ((A,L,L), [SP], '(', [SP], FilterExpression, [SP], ')') - | ((A,N,Y), [SP], '(', [SP], FilterExpression, [SP], ')') - | ((N,O,N,E), [SP], '(', [SP], FilterExpression, [SP], ')') - | ((S,I,N,G,L,E), [SP], '(', [SP], FilterExpression, [SP], ')') - ; - -FilterExpression = IdInColl, [[SP], Where] ; - -PatternPredicate = RelationshipsPattern ; - -ParenthesizedExpression = '(', [SP], Expression, [SP], ')' ; - -IdInColl = Variable, SP, (I,N), SP, Expression ; - -FunctionInvocation = FunctionName, [SP], '(', [SP], [(D,I,S,T,I,N,C,T), [SP]], [Expression, [SP], { ',', [SP], Expression, [SP] }], ')' ; - -FunctionName = Namespace, SymbolicName ; - -ExistentialSubquery = (E,X,I,S,T,S), [SP], '{', [SP], (RegularQuery | (Pattern, [[SP], Where])), [SP], '}' ; - -ExplicitProcedureInvocation = ProcedureName, [SP], '(', [SP], [Expression, [SP], { ',', [SP], Expression, [SP] }], ')' ; - -ImplicitProcedureInvocation = ProcedureName ; - -ProcedureResultField = SymbolicName ; - -ProcedureName = Namespace, SymbolicName ; - -Namespace = { SymbolicName, '.' } ; - -Variable = SymbolicName ; - -Literal = BooleanLiteral - | (N,U,L,L) - | NumberLiteral - | StringLiteral - | ListLiteral - | MapLiteral - ; - -BooleanLiteral = (T,R,U,E) - | (F,A,L,S,E) - ; - -NumberLiteral = DoubleLiteral - | IntegerLiteral - ; - -IntegerLiteral = HexInteger - | OctalInteger - | DecimalInteger - ; - -HexInteger = '0x', { HexDigit }- ; - -DecimalInteger = ZeroDigit - | (NonZeroDigit, { Digit }) - ; - -OctalInteger = '0o', { OctDigit }- ; - -HexLetter = (A) - | (B) - | (C) - | (D) - | (E) - | (F) - ; - -HexDigit = Digit - | HexLetter - ; - -Digit = ZeroDigit - | NonZeroDigit - ; - -NonZeroDigit = NonZeroOctDigit - | '8' - | '9' - ; - -NonZeroOctDigit = '1' - | '2' - | '3' - | '4' - | '5' - | '6' - | '7' - ; - -OctDigit = ZeroDigit - | NonZeroOctDigit - ; - -ZeroDigit = '0' ; - -DoubleLiteral = ExponentDecimalReal - | RegularDecimalReal - ; - -ExponentDecimalReal = ({ Digit }- | ({ Digit }-, '.', { Digit }-) | ('.', { Digit }-)), (E), ['-'], { Digit }- ; - -RegularDecimalReal = { Digit }, '.', { Digit }- ; - -StringLiteral = ('"', { ANY - ('"' | '\') | EscapedChar }, '"') - | ("'", { ANY - ("'" | '\') | EscapedChar }, "'") - ; - -EscapedChar = '\', ('\' | "'" | '"' | (B) | (F) | (N) | (R) | (T) | ((U), 4 * HexDigit) | ((U), 8 * HexDigit)) ; - -ListLiteral = '[', [SP], [Expression, [SP], { ',', [SP], Expression, [SP] }], ']' ; - -MapLiteral = '{', [SP], [PropertyKeyName, [SP], ':', [SP], Expression, [SP], { ',', [SP], PropertyKeyName, [SP], ':', [SP], Expression, [SP] }], '}' ; - -PropertyKeyName = SchemaName ; - -Parameter = '$', (SymbolicName | DecimalInteger) ; - -SchemaName = SymbolicName - | ReservedWord - ; - -ReservedWord = (A,L,L) - | (A,S,C) - | (A,S,C,E,N,D,I,N,G) - | (B,Y) - | (C,R,E,A,T,E) - | (D,E,L,E,T,E) - | (D,E,S,C) - | (D,E,S,C,E,N,D,I,N,G) - | (D,E,T,A,C,H) - | (E,X,I,S,T,S) - | (L,I,M,I,T) - | (M,A,T,C,H) - | (M,E,R,G,E) - | (O,N) - | (O,P,T,I,O,N,A,L) - | (O,R,D,E,R) - | (R,E,M,O,V,E) - | (R,E,T,U,R,N) - | (S,E,T) - | (S,K,I,P) - | (W,H,E,R,E) - | (W,I,T,H) - | (U,N,I,O,N) - | (U,N,W,I,N,D) - | (A,N,D) - | (A,S) - | (C,O,N,T,A,I,N,S) - | (D,I,S,T,I,N,C,T) - | (E,N,D,S) - | (I,N) - | (I,S) - | (N,O,T) - | (O,R) - | (S,T,A,R,T,S) - | (X,O,R) - | (F,A,L,S,E) - | (T,R,U,E) - | (N,U,L,L) - | (C,O,N,S,T,R,A,I,N,T) - | (D,O) - | (F,O,R) - | (R,E,Q,U,I,R,E) - | (U,N,I,Q,U,E) - | (C,A,S,E) - | (W,H,E,N) - | (T,H,E,N) - | (E,L,S,E) - | (E,N,D) - | (M,A,N,D,A,T,O,R,Y) - | (S,C,A,L,A,R) - | (O,F) - | (A,D,D) - | (D,R,O,P) - ; - -SymbolicName = UnescapedSymbolicName - | EscapedSymbolicName - | HexLetter - | (C,O,U,N,T) - | (F,I,L,T,E,R) - | (E,X,T,R,A,C,T) - | (A,N,Y) - | (N,O,N,E) - | (S,I,N,G,L,E) - ; - -UnescapedSymbolicName = IdentifierStart, { IdentifierPart } ; - -(* Based on the unicode identifier and pattern syntax - * (http://www.unicode.org/reports/tr31/) - * And extended with a few characters. - *)IdentifierStart = ID_Start - | Pc - ; - -(* Based on the unicode identifier and pattern syntax - * (http://www.unicode.org/reports/tr31/) - * And extended with a few characters. - *)IdentifierPart = ID_Continue - | Sc - ; - -(* Any character except "`", enclosed within `backticks`. Backticks are escaped with double backticks. - *)EscapedSymbolicName = { '`', { ANY - ('`') }, '`' }- ; - -SP = { whitespace }- ; - -whitespace = SPACE - | TAB - | LF - | VT - | FF - | CR - | FS - | GS - | RS - | US - | ' ' - | '᠎' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | '
' - | '
' - | ' ' - | ' ' - | ' ' - | ' ' - | ' ' - | Comment - ; - -Comment = ('/*', { ANY - ('*') | ('*', ANY - ('/')) }, '*/') - | ('//', { ANY - (LF | CR) }, [CR], (LF | EOI)) - ; - -LeftArrowHead = '<' - | '⟨' - | '〈' - | '﹤' - | '<' - ; - -RightArrowHead = '>' - | '⟩' - | '〉' - | '﹥' - | '>' - ; - -Dash = '-' - | '­' - | '‐' - | '‑' - | '‒' - | '–' - | '—' - | '―' - | '−' - | '﹘' - | '﹣' - | '-' - ; - -A = 'A' | 'a' ; - -B = 'B' | 'b' ; - -C = 'C' | 'c' ; - -D = 'D' | 'd' ; - -E = 'E' | 'e' ; - -F = 'F' | 'f' ; - -G = 'G' | 'g' ; - -H = 'H' | 'h' ; - -I = 'I' | 'i' ; - -K = 'K' | 'k' ; - -L = 'L' | 'l' ; - -M = 'M' | 'm' ; - -N = 'N' | 'n' ; - -O = 'O' | 'o' ; - -P = 'P' | 'p' ; - -Q = 'Q' | 'q' ; - -R = 'R' | 'r' ; - -S = 'S' | 's' ; - -T = 'T' | 't' ; - -U = 'U' | 'u' ; - -V = 'V' | 'v' ; - -W = 'W' | 'w' ; - -X = 'X' | 'x' ; - -Y = 'Y' | 'y' ; - diff --git a/vendor/github.com/rlch/neogo/driver.go b/vendor/github.com/rlch/neogo/driver.go deleted file mode 100644 index cccb46b..0000000 --- a/vendor/github.com/rlch/neogo/driver.go +++ /dev/null @@ -1,359 +0,0 @@ -// Package neogo provides a Neo4j ORM for Go. -// It wraps the official Neo4j Go driver with type-safe struct mapping -// and support for nodes, relationships, and raw Cypher queries. -package neogo - -import ( - "context" - "errors" - "fmt" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/auth" - "github.com/neo4j/neo4j-go-driver/v5/neo4j/config" - "golang.org/x/sync/semaphore" - - "github.com/rlch/neogo/internal" -) - -// New creates a new neogo [Driver] from connection parameters. -func New( - target string, - auth auth.TokenManager, - configurers ...Configurer, -) (Driver, error) { - cfg := &Config{ - Config: *defaultConfig(), - } - - for _, c := range configurers { - c(cfg) - } - - neo4j, err := neo4j.NewDriverWithContext( - target, - auth, - func(c *config.Config) { *c = cfg.Config }, - ) - if err != nil { - return nil, fmt.Errorf("failed to create Neo4J driver: %w", err) - } - - d := driver{ - db: neo4j, - causalConsistencyKey: cfg.CausalConsistencyKey, - sessionSemaphore: semaphore.NewWeighted(int64(cfg.MaxConnectionPoolSize)), - } - - // Initialize registry - d.reg = internal.NewRegistry() - - // Register types from config - if len(cfg.Types) > 0 { - d.reg.RegisterTypes(cfg.Types...) - } - - return &d, nil -} - -type ( - // Driver represents a pool of connections to a neo4j server or cluster. - // It's safe for concurrent use. - Driver interface { - // Registry returns the internal registry used by this driver. - Registry() *internal.Registry - - // DB returns the underlying neo4j driver. - DB() neo4j.DriverWithContext - - // Schema returns the schema interface for introspection and migration. - Schema() Schema - - // ReadSession creates a new read-access session. - ReadSession(ctx context.Context, configurers ...func(*neo4j.SessionConfig)) ReadSession - - // WriteSession creates a new write-access session. - WriteSession(ctx context.Context, configurers ...func(*neo4j.SessionConfig)) WriteSession - - // Exec creates a new session and returns a Client for executing queries. - // The access mode is inferred from the query (CREATE, MERGE, etc. = write). - // The session is closed after the query is executed. - // - // Example: - // var person Person - // err := d.Exec(). - // Cypher("MATCH (p:Person {name: $name}) RETURN p"). - // RunWithParams(ctx, map[string]any{"name": "Alice"}, "p", &person) - Exec(configurers ...func(*execConfig)) Client - } - - // Work is a function that executes Cypher within a Transaction. - Work func(c Client) error - - // Transaction represents an explicit transaction. - Transaction interface { - // Run executes work within the transaction. - Run(work Work) error - // Commit commits the transaction. - Commit(ctx context.Context) error - // Rollback rolls back the transaction. - Rollback(ctx context.Context) error - // Close rolls back if not committed and closes resources. - Close(ctx context.Context, joinedErrors ...error) error - } - - // Config extends the neo4j config with additional neogo-specific options. - Config struct { - config.Config - - CausalConsistencyKey func(context.Context) string - Types []any - } - - // Configurer is a function that configures a neogo Config. - Configurer func(*Config) - - // ReadSession provides read-only database access. - ReadSession interface { - // Session returns the underlying Neo4J session. - Session() neo4j.SessionWithContext - // Close closes the session. - Close(ctx context.Context, joinedErrors ...error) error - // ReadTransaction executes work in a read transaction with retry logic. - ReadTransaction(ctx context.Context, work Work, configurers ...func(*neo4j.TransactionConfig)) error - // BeginTransaction starts an explicit transaction. - BeginTransaction(ctx context.Context, configurers ...func(*neo4j.TransactionConfig)) (Transaction, error) - } - - // WriteSession provides read-write database access. - WriteSession interface { - ReadSession - // WriteTransaction executes work in a write transaction with retry logic. - WriteTransaction(ctx context.Context, work Work, configurers ...func(*neo4j.TransactionConfig)) error - } - - execConfig struct { - *neo4j.SessionConfig - *neo4j.TransactionConfig - } -) - -type ( - driver struct { - reg *internal.Registry - db neo4j.DriverWithContext - causalConsistencyKey func(ctx context.Context) string - sessionSemaphore *semaphore.Weighted - } - session struct { - *driver - db neo4j.DriverWithContext - execConfig execConfig - session neo4j.SessionWithContext - currentTx neo4j.ManagedTransaction - } - transactionImpl struct { - session *session - tx neo4j.ExplicitTransaction - } -) - -// defaultConfig returns default configuration values. -func defaultConfig() *config.Config { - return &config.Config{ - MaxTransactionRetryTime: 30 * time.Second, - MaxConnectionPoolSize: 100, - MaxConnectionLifetime: 1 * time.Hour, - ConnectionAcquisitionTimeout: 1 * time.Minute, - SocketConnectTimeout: 5 * time.Second, - SocketKeepalive: true, - UserAgent: neo4j.UserAgent, - FetchSize: neo4j.FetchDefault, - } -} - -var causalConsistencyCache map[string]neo4j.Bookmarks = map[string]neo4j.Bookmarks{} - -// WithCausalConsistency enables causal consistency using the provided key function. -func WithCausalConsistency(when func(ctx context.Context) string) Configurer { - return func(c *Config) { - c.CausalConsistencyKey = when - } -} - -// WithTxConfig configures the transaction used by Exec(). -func WithTxConfig(configurers ...func(*neo4j.TransactionConfig)) func(ec *execConfig) { - return func(ec *execConfig) { - for _, c := range configurers { - c(ec.TransactionConfig) - } - } -} - -// WithSessionConfig configures the session used by Exec(). -func WithSessionConfig(configurers ...func(*neo4j.SessionConfig)) func(ec *execConfig) { - return func(ec *execConfig) { - for _, c := range configurers { - c(ec.SessionConfig) - } - } -} - -// WithTypes registers types (INode, IRelationship, IAbstract) with the driver. -func WithTypes(types ...any) Configurer { - return func(c *Config) { - c.Types = append(c.Types, types...) - } -} - -func (d *driver) Registry() *internal.Registry { return d.reg } - -func (d *driver) DB() neo4j.DriverWithContext { return d.db } - -func (d *driver) Schema() Schema { return newSchema(d.db, d.reg) } - -func (d *driver) Exec(configurers ...func(*execConfig)) Client { - sessionConfig := neo4j.SessionConfig{} - txConfig := neo4j.TransactionConfig{} - config := execConfig{ - SessionConfig: &sessionConfig, - TransactionConfig: &txConfig, - } - for _, c := range configurers { - c(&config) - } - if reflect.ValueOf(sessionConfig).IsZero() { - config.SessionConfig = nil - } - if reflect.ValueOf(txConfig).IsZero() { - config.TransactionConfig = nil - } - session := &session{ - driver: d, - db: d.db, - execConfig: config, - } - return session.newClient(internal.NewCypherClient(d.reg)) -} - -func (d *driver) ensureCausalConsistency(ctx context.Context, sc *neo4j.SessionConfig) { - if d == nil || d.causalConsistencyKey == nil { - return - } - var key string - if key = d.causalConsistencyKey(ctx); key == "" { - return - } - bookmarks := causalConsistencyCache[key] - if bookmarks == nil { - return - } - sc.Bookmarks = bookmarks -} - -func (d *driver) ReadSession(ctx context.Context, configurers ...func(*neo4j.SessionConfig)) ReadSession { - config := neo4j.SessionConfig{} - for _, c := range configurers { - c(&config) - } - config.AccessMode = neo4j.AccessModeRead - d.ensureCausalConsistency(ctx, &config) - if err := d.sessionSemaphore.Acquire(ctx, 1); err != nil { - panic(fmt.Errorf("failed to acquire session semaphore: %w", err)) - } - sess := d.db.NewSession(ctx, config) - return &session{ - driver: d, - db: d.db, - session: sess, - } -} - -func (d *driver) WriteSession(ctx context.Context, configurers ...func(*neo4j.SessionConfig)) WriteSession { - config := neo4j.SessionConfig{} - for _, c := range configurers { - c(&config) - } - config.AccessMode = neo4j.AccessModeWrite - d.ensureCausalConsistency(ctx, &config) - if err := d.sessionSemaphore.Acquire(ctx, 1); err != nil { - panic(fmt.Errorf("failed to acquire session semaphore: %w", err)) - } - sess := d.db.NewSession(ctx, config) - return &session{ - driver: d, - db: d.db, - session: sess, - } -} - -func (s *session) Session() neo4j.SessionWithContext { - return s.session -} - -func (s *session) Close(ctx context.Context, errs ...error) error { - sessErr := s.session.Close(ctx) - s.sessionSemaphore.Release(1) - if sessErr != nil { - errs = append(errs, sessErr) - return errors.Join(errs...) - } - if len(errs) == 0 { - return nil - } - return errors.Join(errs...) -} - -func (s *session) ReadTransaction(ctx context.Context, work Work, configurers ...func(*neo4j.TransactionConfig)) error { - _, err := s.session.ExecuteRead(ctx, func(tx neo4j.ManagedTransaction) (any, error) { - c := s.newClient(internal.NewCypherClient(s.reg)) - c.currentTx = tx - return nil, work(c) - }, configurers...) - return err -} - -func (s *session) WriteTransaction(ctx context.Context, work Work, configurers ...func(*neo4j.TransactionConfig)) error { - _, err := s.session.ExecuteWrite(ctx, func(tx neo4j.ManagedTransaction) (any, error) { - c := s.newClient(internal.NewCypherClient(s.reg)) - c.currentTx = tx - return nil, work(c) - }, configurers...) - return err -} - -func (s *session) BeginTransaction(ctx context.Context, configurers ...func(*neo4j.TransactionConfig)) (Transaction, error) { - tx, err := s.session.BeginTransaction(ctx, configurers...) - if err != nil { - return nil, err - } - return &transactionImpl{s, tx}, nil -} - -func (t *transactionImpl) Run(work Work) error { - c := t.session.newClient(internal.NewCypherClient(t.session.reg)) - c.currentTx = t.tx - return work(c) -} - -func (t *transactionImpl) Commit(ctx context.Context) error { - return t.tx.Commit(ctx) -} - -func (t *transactionImpl) Rollback(ctx context.Context) error { - return t.tx.Rollback(ctx) -} - -func (t *transactionImpl) Close(ctx context.Context, errs ...error) error { - sessErr := t.tx.Close(ctx) - if sessErr != nil { - errs = append(errs, sessErr) - return errors.Join(errs...) - } - if len(errs) == 0 { - return nil - } - return errors.Join(errs...) -} diff --git a/vendor/github.com/rlch/neogo/entity.go b/vendor/github.com/rlch/neogo/entity.go deleted file mode 100644 index 09c8e00..0000000 --- a/vendor/github.com/rlch/neogo/entity.go +++ /dev/null @@ -1,166 +0,0 @@ -package neogo - -import ( - "github.com/rlch/neogo/internal" -) - -// NewNode creates a new node with a random ID. -func NewNode[N any, PN interface { - INode - internal.IDSetter - *N -}]() PN { - n := PN(new(N)) - n.GenerateID() - return n -} - -// NodeWithID creates a new node with the given ID. -func NodeWithID[N any, PN interface { - INode - internal.IDSetter - *N -}](id string, -) PN { - n := PN(new(N)) - n.SetID(id) - return n -} - -type ( - // INode is an interface for nodes. - // See [Node] for the default implementation. - INode = internal.INode - - // IAbstract is an interface for abstract nodes. - // See [Abstract] for the default implementation. - IAbstract = internal.IAbstract - - // IRelationship is an interface for relationships. - // See [Relationship] for the default implementation. - IRelationship = internal.IRelationship - - // Node is a base type for all nodes. - // - // The neo4j tag is used to specify the label for the node. Multiple labels - // may be specified idiomatically by nested [Node] types. See [internal/tests] - // for examples. - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // - // Name string `neo4j:"name"` - // Age int `neo4j:"age"` - // } - Node = internal.Node - - // Abstract is a base type for all abstract nodes. An abstract node can have - // multiple concrete implementers, where each implementer must have a distinct - // label. This means that each node will have at least 2 labels. - // - // A useful design pattern for constructing abstract nodes is to create a base - // type which provides an implementation for [IAbstract] and embed [Abstract] - // + [Node], then embed that type in all concrete implementers: - // - // type Organism interface { - // internal.IAbstract - // } - // - // type BaseOrganism struct { - // internal.Abstract `neo4j:"Organism"` - // internal.Node - // - // Alive bool `neo4j:"alive"` - // } - // - // func (b BaseOrganism) Implementers() []internal.IAbstract { - // return []internal.IAbstract{ - // &Human{}, - // &Dog{}, - // } - // } - // - // type Human struct { - // BaseOrganism `neo4j:"Human"` - // Name string `neo4j:"name"` - // } - // - // type Dog struct { - // BaseOrganism `neo4j:"Dog"` - // Borfs bool `neo4j:"borfs"` - // } - Abstract = internal.Abstract - - // Relationship is a base type for all relationships. - // - // The neo4j tag is used to specify the type for the relationship. - // - // type ActedIn struct { - // neogo.Relationship `neo4j:"ACTED_IN"` - // - // Role string `neo4j:"role"` - // } - Relationship = internal.Relationship - - // Label is a used to specify a label for a node. - // This allows for multiple labels to be specified idiomatically. - // - // type Robot struct { - // neogo.Label `neo4j:"Robot"` - // } - Label = internal.Label -) - -// One represents a single relationship to another node or through a relationship struct. -// This is a zero-cost abstraction - the struct has zero size (0 bytes) and only carries -// type information at compile time for schema extraction and type-safe query building. -// -// Note: Place One/Many fields before other fields in your struct to avoid alignment padding. -// Go adds padding when zero-sized types are the last field in a struct. -// -// Usage with relationship struct: -// -// type Person struct { -// neogo.Node `neo4j:"Person"` -// BestRole One[ActedIn] `neo4j:"->"` -// } -// -// Usage with shorthand syntax (direct node reference with relationship type in tag): -// -// type Person struct { -// neogo.Node `neo4j:"Person"` -// BestFriend One[Person] `neo4j:"BEST_FRIEND>"` // Outgoing BEST_FRIEND -// Mentor One[Person] `neo4j:",required"` -type One[R any] = internal.One[R] - -// Many represents multiple relationships to other nodes or through relationship structs. -// This is a zero-cost abstraction - the struct has zero size (0 bytes) and only carries -// type information at compile time for schema extraction and type-safe query building. -// -// Note: Place One/Many fields before other fields in your struct to avoid alignment padding. -// Go adds padding when zero-sized types are the last field in a struct. -// -// Usage with relationship struct: -// -// type Person struct { -// neogo.Node `neo4j:"Person"` -// ActedIn Many[ActedIn] `neo4j:"->"` -// } -// -// Usage with shorthand syntax (direct node reference with relationship type in tag): -// -// type Person struct { -// neogo.Node `neo4j:"Person"` -// Friends Many[Person] `neo4j:"FRIENDS>"` // Outgoing FRIENDS -// Followers Many[Person] `neo4j:",required"` -type Many[R any] = internal.Many[R] diff --git a/vendor/github.com/rlch/neogo/internal/binding.go b/vendor/github.com/rlch/neogo/internal/binding.go deleted file mode 100644 index f953081..0000000 --- a/vendor/github.com/rlch/neogo/internal/binding.go +++ /dev/null @@ -1,355 +0,0 @@ -package internal - -// binding.go provides value binding from Neo4j results to Go types. -// -// # Reflection Boundaries -// -// This file is the FALLBACK path for special cases that can't use zero-reflection codecs. -// The primary hot path uses BindingPlan (binding_plan.go) which pre-compiles decoders. -// -// Reflection is used here ONLY for special cases: -// - Valuer interface implementations (custom unmarshaling) -// - Abstract node binding (polymorphic type lookup by labels) -// - Slice depth mismatches (wrapping single values in slices) -// - Empty interface targets (any/interface{}) -// -// For normal struct/primitive binding, use BindingPlan.DecodeSingle() or -// BindingPlan.DecodeMultiple() which delegate to zero-reflection codecs. - -import ( - "errors" - "fmt" - "reflect" - "time" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/rlch/neogo/internal/codec" -) - -// Valuer is an interface for custom marshaling/unmarshaling of Neo4j record values. -// Types implementing this interface will use their custom Unmarshal method instead -// of the default codec decoding. -type Valuer[V neo4j.RecordValue] interface { - Marshal() (*V, error) - Unmarshal(*V) error -} - -// Bind binds a Neo4j record value to a Go value. -// The 'to' parameter must be a pointer to the target value. -// -// This function delegates to the zero-reflection codec for most cases. -// Special handling is only used for: -// - Custom Valuer implementations -// - Abstract node (polymorphic) binding -// - Slice depth mismatches -// - Empty interface targets -func (r *Registry) Bind(from any, to any) error { - toV := reflect.ValueOf(to) - if toV.Kind() != reflect.Ptr { - return fmt.Errorf("Bind requires pointer target, got %T", to) - } - return r.BindValue(from, toV.Elem()) -} - -// BindValue binds a Neo4j record value to a reflect.Value target. -// Uses zero-reflection codec as the primary path, with reflection fallbacks -// only for special cases that require runtime type inspection. -func (r *Registry) BindValue(from any, to reflect.Value) error { - toT := to.Type() - - // Handle nil input - requires reflection to set zero value - if from == nil { - return r.bindNil(to) - } - - // Fast path: bind to any/interface{} - direct assignment - if isEmptyInterface(toT, to) { - return bindToInterface(from, to) - } - - // Try Valuer interface (custom unmarshaling) - requires interface check - if ok, err := r.tryValuer(from, to); ok || err != nil { - return err - } - - // Handle abstract nodes (polymorphic lookup by labels) - // This requires runtime label inspection to find concrete type - if node, ok := from.(neo4j.Node); ok { - if r.isAbstractTarget(toT) { - return r.BindAbstractNode(node, to) - } - // Handle single node to slice of abstract types - innerT := codec.UnwindType(toT) - if innerT.Kind() == reflect.Slice { - elemT := innerT.Elem() - if r.isAbstractTarget(elemT) { - return r.wrapInSlice(node, to) - } - } - } - - // Handle slice depth mismatch (codec doesn't handle wrapping records) - if fromT := reflect.TypeOf(from); fromT != nil && fromT.Kind() == reflect.Slice { - toInnerT := codec.UnwindType(toT) - if toInnerT.Kind() == reflect.Slice { - // Direct assignment if types match (e.g., []int to []int) - // The codec's sliceDecoder expects []any but we might have []T - if fromT.AssignableTo(toInnerT) { - target := to - for target.Kind() == reflect.Ptr { - if target.IsNil() { - target.Set(reflect.New(target.Type().Elem())) - } - target = target.Elem() - } - target.Set(reflect.ValueOf(from)) - return nil - } - fromDepth := r.computeSliceDepthRuntime(from) - toDepth := computeDepth(toInnerT) - if fromDepth != toDepth { - return r.bindSliceDepthMismatch(from, to, fromDepth, toDepth) - } - // Check if element type is abstract - needs special handling - elemT := toInnerT.Elem() - for elemT.Kind() == reflect.Slice { - elemT = elemT.Elem() - } - if r.isAbstractTarget(elemT) { - return r.bindSliceWithAbstractElements(from, to) - } - } - } - - // Zero-reflection codec path for everything else: - // - Structs (nodes, relationships) - // - Primitives (int, string, bool, float, time.Time, etc.) - // - Slices with matching depth - // - Pointers - // - Maps - return r.decodeWithCodec(from, to) -} - -// isEmptyInterface checks if the type is interface{} or *interface{} -func isEmptyInterface(t reflect.Type, v reflect.Value) bool { - empty := reflect.TypeOf((*any)(nil)).Elem() - if v.Kind() == reflect.Ptr && t.Elem() == empty { - return true - } - return t == empty && v.CanSet() -} - -// bindToInterface assigns any value directly to an interface{} target -func bindToInterface(from any, to reflect.Value) error { - if to.Kind() == reflect.Ptr { - to.Elem().Set(reflect.ValueOf(from)) - } else { - to.Set(reflect.ValueOf(from)) - } - return nil -} - -// bindNil handles nil input by setting target to zero value -func (r *Registry) bindNil(to reflect.Value) error { - // Unwrap to get the actual type - target := to - for target.Kind() == reflect.Ptr && !target.IsNil() { - target = target.Elem() - } - - // For slice targets, create a single-element slice with zero value - if target.Kind() == reflect.Slice { - target.Set(reflect.MakeSlice(target.Type(), 1, 1)) - return r.BindValue(nil, target.Index(0).Addr()) - } - - // For pointer targets, set to nil (zero) - if to.Kind() == reflect.Ptr && to.CanSet() { - to.Set(reflect.Zero(to.Type())) - return nil - } - - // For struct/value types, set to zero value - if target.CanSet() { - target.Set(reflect.Zero(target.Type())) - } - - return nil -} - -// tryValuer attempts to use the Valuer interface for custom unmarshaling -func (r *Registry) tryValuer(from any, to reflect.Value) (handled bool, err error) { - // Try each Neo4j record value type - switch v := from.(type) { - case neo4j.Node: - return bindValuer(v, to) - case neo4j.Relationship: - return bindValuer(v, to) - case bool: - return bindValuer(v, to) - case int64: - return bindValuer(v, to) - case float64: - return bindValuer(v, to) - case string: - return bindValuer(v, to) - case neo4j.Point2D: - return bindValuer(v, to) - case neo4j.Point3D: - return bindValuer(v, to) - case neo4j.Date: - return bindValuer(v, to) - case neo4j.LocalTime: - return bindValuer(v, to) - case neo4j.LocalDateTime: - return bindValuer(v, to) - case neo4j.Time: - return bindValuer(v, to) - case neo4j.Duration: - return bindValuer(v, to) - case time.Time: - return bindValuer(v, to) - case []byte: - return bindValuer(v, to) - case []any: - return bindValuer(v, to) - case map[string]any: - return bindValuer(v, to) - } - return false, nil -} - -// bindValuer attempts to use Valuer interface on the target -func bindValuer[V neo4j.RecordValue](value V, to reflect.Value) (ok bool, err error) { - if !to.CanInterface() { - return false, nil - } - valuer, ok := to.Interface().(Valuer[V]) - if !ok { - return false, nil - } - if err := valuer.Unmarshal(&value); err != nil { - return false, err - } - return true, nil -} - -// isAbstractTarget checks if the target type is an abstract interface. -// Delegates to isAbstractType (defined in binding_plan.go) which handles -// pointer unwrapping and IAbstract interface checking. -func (r *Registry) isAbstractTarget(toT reflect.Type) bool { - return isAbstractType(toT) -} - -// computeSliceDepthRuntime computes slice depth at runtime, checking actual element types -// This is needed because []any might contain slices at runtime -func (r *Registry) computeSliceDepthRuntime(from any) int { - fromV := reflect.ValueOf(from) - fromT := fromV.Type() - depth := computeDepth(fromT) - - // Special case: []any might contain slices at runtime - if fromT.Elem().Kind() == reflect.Interface && fromV.Len() > 0 { - firstElem := fromV.Index(0).Interface() - if firstElem != nil && reflect.TypeOf(firstElem).Kind() == reflect.Slice { - depth++ - } - } - return depth -} - -// bindSliceDepthMismatch handles cases where source and target slice depths differ -func (r *Registry) bindSliceDepthMismatch(from any, to reflect.Value, fromDepth, toDepth int) error { - if to.Kind() == reflect.Ptr { - to = to.Elem() - } - if to.Kind() != reflect.Slice { - return errors.New("cannot bind slice to non-slice type") - } - - if fromDepth+1 == toDepth { - // Single record wrapping: from is one level shallower - // e.g., []Person -> [][]Person (wrap as single result set) - to.Set(reflect.MakeSlice(to.Type(), 1, 1)) - return r.BindValue(from, to.Index(0)) - } - - return fmt.Errorf("cannot bind slice of depth %d to slice of depth %d", fromDepth, toDepth) -} - -// wrapInSlice creates a single-element slice and binds the value to it -func (r *Registry) wrapInSlice(from any, to reflect.Value) error { - sliceV := to - for sliceV.Kind() == reflect.Ptr { - sliceV = sliceV.Elem() - } - sliceV.Set(reflect.MakeSlice(sliceV.Type(), 1, 1)) - return r.BindValue(from, sliceV.Index(0).Addr()) -} - -// bindSliceWithAbstractElements handles binding a slice where elements are abstract interfaces -func (r *Registry) bindSliceWithAbstractElements(from any, to reflect.Value) error { - sliceV := to - for sliceV.Kind() == reflect.Ptr { - sliceV = sliceV.Elem() - } - - fromV := reflect.ValueOf(from) - n := fromV.Len() - - sliceV.Set(reflect.MakeSlice(sliceV.Type(), n, n)) - - for i := 0; i < n; i++ { - elemV := sliceV.Index(i) - if elemV.CanAddr() { - elemV = elemV.Addr() - } - fromElem := fromV.Index(i).Interface() - if err := r.BindValue(fromElem, elemV.Elem()); err != nil { - return fmt.Errorf("index %d: %w", i, err) - } - } - return nil -} - -// decodeWithCodec uses the zero-reflection codec for struct/primitive decoding -func (r *Registry) decodeWithCodec(from any, to reflect.Value) error { - if to.Kind() == reflect.Ptr { - return r.codecs.Decode(from, to.Interface()) - } - if to.CanAddr() { - return r.codecs.Decode(from, to.Addr().Interface()) - } - return fmt.Errorf("cannot bind to non-pointer/unaddressable value %T", to.Interface()) -} - -// BindAbstractNode binds a Neo4j node to an abstract (interface) type -// by looking up the concrete implementation based on node labels. -func (r *Registry) BindAbstractNode(node neo4j.Node, to reflect.Value) error { - typ := to.Type() - if !typ.Implements(rAbstract) && !typ.Elem().Implements(rAbstract) { - return errors.New("cannot bind abstract node to non-abstract type. Ensure your binding type or the value it references implements IAbstract") - } - - implNode, err := r.GetConcreteImplementation(node.Labels) - if err != nil { - return err - } - - toImpl := reflect.New(implNode.Type()) - if err := r.codecs.Decode(node, toImpl.Interface()); err != nil { - return err - } - - reflect.Indirect(to).Set(toImpl) - return nil -} - -// computeDepth returns the nesting depth of a slice type -func computeDepth(t reflect.Type) (depth int) { - for t.Kind() == reflect.Slice { - depth++ - t = t.Elem() - } - return depth -} diff --git a/vendor/github.com/rlch/neogo/internal/binding_plan.go b/vendor/github.com/rlch/neogo/internal/binding_plan.go deleted file mode 100644 index 8e81771..0000000 --- a/vendor/github.com/rlch/neogo/internal/binding_plan.go +++ /dev/null @@ -1,286 +0,0 @@ -package internal - -// binding_plan.go provides pre-compiled binding plans for zero-reflection decoding. -// -// # Architecture -// -// BindingPlan is created ONCE at query compile time (cold path) and captures: -// - Pre-compiled codec decoder (from internal/codec) -// - Type flags (IsSlice, IsAbstract, etc.) -// - Allocator functions for slice/pointer elements -// -// At decode time (hot path), BindingPlan.DecodeSingle() and DecodeMultiple() -// use unsafe pointers and pre-compiled decoders with ZERO reflection per-record. -// -// # Reflection Boundaries -// -// COLD PATH (plan creation): Uses reflection to analyze types, create allocators -// HOT PATH (per-record decode): Zero reflection - uses unsafe pointers + pre-compiled decoders - -import ( - "fmt" - "reflect" - "unsafe" - - "github.com/rlch/neogo/internal/codec" -) - -// BindingPlan pre-computes everything needed to decode values for a specific binding. -// Created once at query compile time (cold path), used per-record without reflection (hot path). -type BindingPlan struct { - // Key is the binding name (e.g., "n", "person.name") - Key string - - // Target is the pointer to user's binding target - Target any - - // TargetType is the reflect.Type of the target (cached to avoid reflect.TypeOf per record) - TargetType reflect.Type - - // CachedTargetPtr is the pre-computed unsafe.Pointer to the target value. - // For non-slice targets, this points directly to where data should be decoded. - // Computed once at plan creation, used per-record without reflection. - CachedTargetPtr unsafe.Pointer - - // Decoder is the pre-compiled codec decoder for the innermost type - Decoder codec.Decoder - - // Flags computed at plan creation time (avoid per-record reflection) - IsSlice bool // Target is a slice (possibly nested in pointers) - IsPointerElem bool // Slice element type is a pointer - IsAbstract bool // Target type implements IAbstract interface - IsSliceAbstract bool // Slice element implements IAbstract - HasValuer bool // Type implements Valuer interface (TODO: detect at registration) - SliceDepth int // Nesting depth ([]T = 1, [][]T = 2) - PointerDepth int // Number of pointer indirections to reach slice/value - - // Allocator for pointer elements (avoids reflect.New per record) - // Created at plan time, uses unsafe.Pointer - ElemAllocator func() unsafe.Pointer - - // SliceAllocator creates a slice of given length (avoids reflect.MakeSlice per record) - SliceAllocator func(n int) any -} - -// NewBindingPlan creates a BindingPlan for a binding target. -// This does reflection ONCE at plan creation, not per-record. -func NewBindingPlan(key string, target any, codecs *codec.CodecRegistry) *BindingPlan { - plan := &BindingPlan{ - Key: key, - Target: target, - } - - // Get type info (reflection at plan creation, not per-record) - targetType := reflect.TypeOf(target) - plan.TargetType = targetType - - // Unwrap pointer chain to find the actual value type - innerType := targetType - for innerType.Kind() == reflect.Ptr { - plan.PointerDepth++ - innerType = innerType.Elem() - } - - // Check if it's a slice - if innerType.Kind() == reflect.Slice { - plan.IsSlice = true - plan.SliceDepth = computeDepth(innerType) - - // Check element type - elemType := innerType.Elem() - for elemType.Kind() == reflect.Slice { - elemType = elemType.Elem() - } - - plan.IsPointerElem = elemType.Kind() == reflect.Ptr - plan.IsSliceAbstract = isAbstractType(elemType) - - // Create slice allocator - plan.SliceAllocator = makeSliceAllocatorFunc(innerType) - - // Create element allocator if pointer elements - if plan.IsPointerElem { - plan.ElemAllocator = makePtrAllocatorFunc(elemType.Elem()) - } - - // Get decoder for element type (uses lazy compilation if not pre-registered) - if !plan.IsSliceAbstract { - // Create a zero value to get the decoder - zeroVal := reflect.New(innerType).Interface() - plan.Decoder = codecs.GetDecoder(zeroVal) - } - - // Cache target pointer for slice header location - // (slice decoding needs to update the slice header at this location) - plan.CachedTargetPtr = computeTargetPtr(target, plan.PointerDepth) - } else { - // Non-slice target - plan.IsAbstract = isAbstractType(innerType) - - if !plan.IsAbstract { - // Create a zero value to get the decoder - zeroVal := reflect.New(innerType).Interface() - plan.Decoder = codecs.GetDecoder(zeroVal) - - // Cache target pointer for direct decoding (ZERO reflection at decode time) - plan.CachedTargetPtr = computeTargetPtr(target, plan.PointerDepth) - } - } - - return plan -} - -// Note: computeSliceDepth is defined in binding.go as computeDepth -// Both are kept for clarity - computeDepth is used in binding.go's special case handling - -// isAbstractType checks if a type implements IAbstract -// Note: Uses package-level rAbstract from registry.go -func isAbstractType(t reflect.Type) bool { - // Unwrap pointer - for t.Kind() == reflect.Ptr { - t = t.Elem() - } - - // Must be interface - if t.Kind() != reflect.Interface { - return false - } - - // Check if implements IAbstract (rAbstract defined in registry.go) - return t.Implements(rAbstract) -} - -// makeSliceAllocatorFunc creates a function that allocates a slice of given length. -// Note: The closure still uses reflect.MakeSlice per call, but this is called -// once per batch (not per record), so the overhead is amortized. -// The actual per-record decoding uses zero-reflection codec decoders. -func makeSliceAllocatorFunc(sliceType reflect.Type) func(n int) any { - return func(n int) any { - slice := reflect.MakeSlice(sliceType, n, n) - return slice.Interface() - } -} - -// makePtrAllocatorFunc creates a function that allocates a new instance of a type. -// Note: The closure still uses reflect.New per call, but this is called -// once per element in fallback path only. The fast path uses codec allocators. -func makePtrAllocatorFunc(elemType reflect.Type) func() unsafe.Pointer { - return func() unsafe.Pointer { - val := reflect.New(elemType) - return unsafe.Pointer(val.Pointer()) - } -} - -// BuildBindingPlans creates BindingPlans for all bindings in a CompiledCypher. -// Called once at query compile time. -func BuildBindingPlans(bindings map[string]any, codecs *codec.CodecRegistry) map[string]*BindingPlan { - plans := make(map[string]*BindingPlan, len(bindings)) - for key, target := range bindings { - plans[key] = NewBindingPlan(key, target, codecs) - } - return plans -} - -// DecodeSingle decodes a single value directly into the binding target using the plan's decoder. -// This is ZERO-REFLECTION for non-abstract types - uses pre-compiled decoder and cached unsafe pointer. -// Returns an error if the plan can't handle direct decoding (abstract types, Valuer interface). -func (p *BindingPlan) DecodeSingle(value any) error { - // Can't directly decode abstract types - need runtime label lookup - if p.IsAbstract { - return fmt.Errorf("cannot use DecodeSingle for abstract type binding %q", p.Key) - } - - // Can't directly decode if we don't have a decoder - if p.Decoder == nil { - return fmt.Errorf("no decoder available for binding %q", p.Key) - } - - // Can't decode if we don't have a cached pointer - if p.CachedTargetPtr == nil { - return fmt.Errorf("no cached target pointer for binding %q", p.Key) - } - - // Handle nil value - set target to zero value - if value == nil { - // For nil, we need to zero out the target - // This requires knowing the size and using unsafe, but for now - // we'll leave it to the caller (this is rare case) - return nil - } - - // Use pre-compiled decoder with cached pointer - ZERO reflection - return p.Decoder.Decode(value, p.CachedTargetPtr) -} - -// DecodeMultiple decodes multiple values into a slice binding using the plan's allocator and decoder. -// Per-batch reflection: slice allocation uses reflection (SliceAllocator closure). -// Per-record zero-reflection: the Decoder.Decode call uses pre-compiled codec with unsafe pointers. -func (p *BindingPlan) DecodeMultiple(values []any) error { - if !p.IsSlice { - return fmt.Errorf("binding %q is not a slice", p.Key) - } - - if p.IsSliceAbstract { - return fmt.Errorf("cannot use DecodeMultiple for abstract slice binding %q", p.Key) - } - - if p.Decoder == nil { - return fmt.Errorf("no decoder available for binding %q", p.Key) - } - - if p.CachedTargetPtr == nil { - return fmt.Errorf("no cached target pointer for binding %q", p.Key) - } - - n := len(values) - if n == 0 { - return nil - } - - // Allocate slice using pre-compiled allocator - // This still uses reflection internally (reflect.MakeSlice), but it's called once per batch - slice := p.SliceAllocator(n) - - // Set the slice header at the cached target pointer - // We need reflect.ValueOf to get the slice header from the interface{} - // This is ONE reflection call per batch, not per record - sliceVal := reflect.ValueOf(slice) - srcHeader := (*sliceHeader)(unsafe.Pointer(sliceVal.Pointer())) - dstHeader := (*sliceHeader)(p.CachedTargetPtr) - *dstHeader = *srcHeader - - // Decode using the slice decoder - ZERO reflection per-element - return p.Decoder.Decode(values, p.CachedTargetPtr) -} - -// sliceHeader is the runtime representation of a slice. -// It matches the layout of reflect.SliceHeader. -type sliceHeader struct { - Data unsafe.Pointer - Len int - Cap int -} - -// computeTargetPtr unwraps the pointer chain and returns the unsafe.Pointer to the target. -// Called ONCE at plan creation time, not per-record. -// Allocates any nil intermediate pointers in the chain. -func computeTargetPtr(target any, pointerDepth int) unsafe.Pointer { - v := reflect.ValueOf(target) - - // Unwrap pointer chain, allocating nil pointers along the way - for i := 0; i < pointerDepth; i++ { - if v.Kind() != reflect.Ptr { - return nil - } - if v.Elem().Kind() == reflect.Ptr && v.Elem().IsNil() { - v.Elem().Set(reflect.New(v.Elem().Type().Elem())) - } - v = v.Elem() - } - - if !v.CanAddr() { - return nil - } - - return unsafe.Pointer(v.UnsafeAddr()) -} diff --git a/vendor/github.com/rlch/neogo/internal/codec/README.md b/vendor/github.com/rlch/neogo/internal/codec/README.md deleted file mode 100644 index e0045ca..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/README.md +++ /dev/null @@ -1,207 +0,0 @@ -# Codec Package - Zero-Reflection Serialization - -The codec package implements a high-performance, zero-reflection serialization/deserialization system inspired by `goccy/go-json`. It compiles type information into optimized opcode sequences and decoder trees, enabling fast encode/decode operations without runtime reflection. - -## Architecture - -### 1. **Encoding Path** (Opcode VM) - -``` -Type Registration - ↓ -Compiler.Compile(type) - ↓ -Opcode Tree (linked-list VM) - ↓ -EncodeStruct() → Iterate Opcodes - ↓ -EncodeAny() → Execute Opcode - ↓ -map[string]any (Neo4j-compatible output) -``` - -**Key Components:** -- **`compiler.go`**: Recursively compiles Go types into opcode sequences -- **`opcodes.go`**: Defines opcode types and execution logic - - `OpFieldInt`, `OpFieldString`, `OpFieldBool`, etc. (primitives) - - `OpFieldSlice`, `OpFieldMap`, `OpFieldStruct` (complex types) - - `OpFieldPtr` (pointer dereferencing) - - `OpFieldEmbed` (embedded struct flattening) - - `OpFieldTime`, `OpFieldPoint2D` (Neo4j types) -- **`EncodeStruct(opcode, ptr, result)`**: Main encoding entry point - - Uses `unsafe` pointers to directly read struct field values - - Zero allocations for primitives - - Recursive handling of nested structures - -### 2. **Decoding Path** (Decoder Tree) - -``` -Type Registration - ↓ -Compiler.CompileDecoder(type) - ↓ -Decoder Tree (interface-based) - ↓ -structDecoder → fieldDecoder → elementDecoder - ↓ -Decode(data, ptr) → Recursively decode - ↓ -Populate struct fields using unsafe pointers -``` - -**Key Components:** -- **`decoder.go`**: Implements decoder interfaces for all types - - `structDecoder`: Iterates over field map, calls field decoders - - `sliceDecoder`: Allocates slice, decodes elements - - `mapDecoder`: Creates map, decodes key-value pairs - - `ptrDecoder`: Allocates memory, decodes into it - - Primitive decoders: `intDecoder`, `stringDecoder`, `boolDecoder`, etc. - - Special decoders: `bytesDecoder`, `timeDecoder` - -### 3. **Type Metadata** - -**Compiler Caching:** -- Encoders cached by `TypePtr` (runtime type pointer) → `*Opcode` -- Decoders cached by `TypePtr` → `Decoder` -- Circular references handled with early cache registration - -**Field Information:** -- `FieldInfo`: Parsed from struct tags (`neo4j:"..."`) - - `DBName`: Database field name - - `IsSkip`: Field excluded from serialization - - `IsEmbed`: Embedded struct flattened into parent - - Options: `embed`, `skip`, custom codecs (future) - -## Key Features - -### Zero-Reflection Performance -- No runtime reflection during encode/decode -- Type inspection happens once at registration -- Direct memory access via `unsafe` pointers -- Opcode execution is tight loop with minimal allocations - -### Embedded Struct Handling -```go -type Address struct { - Street string `neo4j:"street"` - City string `neo4j:"city"` -} - -type Person struct { - Name string `neo4j:"name"` - Address Address `neo4j:",embed"` // Fields merged at top level -} - -// Encoded as: {"name": "...", "street": "...", "city": "..."} -``` - -Decoder flattens embedded struct fields by: -1. Recursively compiling embedded type -2. Extracting field map from nested decoder -3. Adjusting field offsets for parent struct -4. Merging into parent field map - -### Bytes Special Handling -`[]byte` is treated as a primitive (not a generic slice): -- Encoded as `[]byte` directly -- Decoded with `bytesDecoder` (accepts `[]byte` or `string`) -- Avoids slice allocations for byte sequences - -### Type Coercion -Decoders handle flexible type conversion: -- `int64` ↔ `int`, `int8`, `int16`, `int32` (with bounds checking) -- `float64` ↔ `float32` (with precision loss) -- `string` ↔ `[]byte` -- Neo4j types ↔ Go types - -## Testing - -**23 comprehensive test functions** covering: - -### Core Functionality -- `TestRoundTrip`: Complete struct with all field types -- `TestSliceOfStructs`: Nested struct slices -- `TestPrimitiveTypes`: All int/uint/float variants -- `TestNestedStructs`: Multi-level nesting -- `TestMultipleEmbedded`: Multiple embedded structs - -### Type Coverage -- `TestDeeplyNestedStructs`: 3-level nesting -- `TestSlicePrimitives`: Slices of primitives -- `TestPointerFields`: Pointers with dereferencing -- `TestSliceOfPointers`: Slices of pointers -- `TestNeo4jTypes`: Point2D encoding/decoding -- `TestInterfaceField`: `interface{}` fields - -### Edge Cases -- `TestNilValues`: Nil pointers and slices -- `TestEmptySlices`: Empty slice handling -- `TestNumericBoundaries`: Max/min int64, float64 -- `TestTypeCoercion`: Int type conversions -- `TestFieldSkip`: Fields marked `neo4j:"-"` -- `TestDecodeErrors`: Error handling -- `TestLazyRegistration`: Unregistered types - -### Encoding/Decoding -- `TestEncodeValue`: Various primitive types -- `TestEncodeValueSlices`: Slice encoding -- `TestEncodeValueZeros`: Zero values -- `TestPointerToStruct`: Nested pointers -- `TestBoolFields`: Boolean encoding - -**Coverage**: 48.7% of statements - -## File Structure - -``` -codec/ -├── opcodes.go # Opcode definition and encoding VM -├── compiler.go # Type compiler for opcodes/decoders -├── decoder.go # Decoder implementations -├── registry.go # Type registry and API -├── tags.go # Struct tag parsing (neo4j:"...") -├── typeptr.go # Type information and conversions -├── codec_test.go # Comprehensive test suite -├── neo4j_extractor.go # Neo4j metadata extraction (legacy) -├── relationship_extractor.go # Relationship handling (legacy) -├── abstract_extractor.go # Abstract type handling (legacy) -├── reflection_helpers.go # Reflection utilities (legacy) -└── README.md # This file -``` - -## Usage - -```go -// Register types -registry := codec.NewCodecRegistry() -registry.RegisterTypes(MyStruct{}, NestedStruct{}) - -// Encode -data := &MyStruct{...} -encoded, err := registry.Encode(data) - -// Decode -var decoded MyStruct -err = registry.Decode(encoded, &decoded) - -// Encode arbitrary values -val, err := registry.EncodeValue([]string{"a", "b"}) -``` - -## Future Improvements - -1. **Reach 100% coverage**: Test remaining paths - - Error conditions in decoders - - Registry lazy compilation - - Neo4j type decoders - -2. **Custom codec support**: `neo4j:"codec:mycodec"` tag option - -3. **Map encoding**: Support `map[string]T` encoding - -4. **Performance benchmarks**: Compare with reflection-based approaches - -## References - -- Inspired by: [goccy/go-json](https://github.com/goccy/go-json) -- Runtime pointer safety: [unsafe.Pointer rules](https://pkg.go.dev/unsafe) diff --git a/vendor/github.com/rlch/neogo/internal/codec/allocator.go b/vendor/github.com/rlch/neogo/internal/codec/allocator.go deleted file mode 100644 index 3804cb4..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/allocator.go +++ /dev/null @@ -1,76 +0,0 @@ -package codec - -import ( - "reflect" - "unsafe" -) - -// sliceAllocator is a function that allocates a slice of given capacity -// and returns the underlying data pointer and slice header. -// This is computed at compile time to avoid runtime reflection. -type sliceAllocator func(capacity int) (data unsafe.Pointer, len int, cap int) - -// makeSliceAllocator creates an allocator function for a given element type. -// This uses reflection ONCE at compile time, not at decode time. -func makeSliceAllocator(elemType reflect.Type) sliceAllocator { - // Capture elemSize at compile time - elemSize := elemType.Size() - - // Return a closure that allocates WITHOUT reflection - return func(capacity int) (unsafe.Pointer, int, int) { - if capacity == 0 { - return nil, 0, 0 - } - - // Allocate bytes and get pointer to backing array - // This still uses make() but with compile-time knowledge of element type - bytes := make([]byte, int(elemSize)*capacity) - return unsafe.Pointer(&bytes[0]), 0, capacity - } -} - -// mapAllocator is a function that creates an empty map with pre-allocated space -type mapAllocator func() unsafe.Pointer - -// Exported types for testing -type SliceAllocator = sliceAllocator -type MapAllocator = mapAllocator -type PtrAllocator = ptrAllocator - -// makeMapAllocator creates an allocator function for a given map type. -// This uses reflection ONCE at compile time, not at decode time. -func makeMapAllocator(mapType reflect.Type) mapAllocator { - // We still need reflection to create the map, but only once at compile time - return func() unsafe.Pointer { - m := reflect.MakeMap(mapType) - ptr := unsafe.Pointer(m.Pointer()) - return ptr - } -} - -// ptrAllocator allocates memory for a given type -type ptrAllocator func() unsafe.Pointer - -// makePtrAllocator creates an allocator for a pointer to a given type. -// This uses reflection ONCE at compile time, not at decode time. -func makePtrAllocator(elemType reflect.Type) ptrAllocator { - return func() unsafe.Pointer { - // Allocate the element type - // We still use reflect.New but only once, captured in closure - val := reflect.New(elemType) - return unsafe.Pointer(val.Pointer()) - } -} - -// Exported allocator constructors for testing -func MakeSliceAllocator(elemType reflect.Type) SliceAllocator { - return makeSliceAllocator(elemType) -} - -func MakeMapAllocator(mapType reflect.Type) MapAllocator { - return makeMapAllocator(mapType) -} - -func MakePtrAllocator(elemType reflect.Type) PtrAllocator { - return makePtrAllocator(elemType) -} diff --git a/vendor/github.com/rlch/neogo/internal/codec/compiler.go b/vendor/github.com/rlch/neogo/internal/codec/compiler.go deleted file mode 100644 index fa2a1fb..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/compiler.go +++ /dev/null @@ -1,434 +0,0 @@ -// Package codec provides encoding and decoding of Go structs to and from Neo4j -// property maps. It uses compiled opcodes for efficient struct traversal and -// supports Neo4j-specific types like dates, times, points, and durations. -package codec - -import ( - "fmt" - "reflect" - "time" - "unsafe" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" -) - -// Compiler builds opcode sequences for encoding/decoding structs. -// REGISTRATION PHASE: All Compile methods use heavy reflection and should -// only be called during type registration at startup. -type Compiler struct { - encCache map[TypePtr]*Opcode - decCache map[TypePtr]Decoder -} - -func NewCompiler() *Compiler { - return &Compiler{ - encCache: make(map[TypePtr]*Opcode), - decCache: make(map[TypePtr]Decoder), - } -} - -// --- Encoder Compilation --- - -func (c *Compiler) Compile(typ reflect.Type) (*Opcode, error) { - ptr := getTypePtr(typ) - if op, ok := c.encCache[ptr]; ok { - return op, nil - } - - // Check for special types FIRST (before kind switch) - // These are struct types that need primitive opcodes, not struct traversal - if op := c.checkSpecialTypeEncoder(typ); op != nil { - return op, nil - } - - switch typ.Kind() { - case reflect.Struct: - return c.compileStruct(typ) - case reflect.Pointer: - return c.compilePtr(typ) - case reflect.Slice: - return c.compileSlice(typ) - case reflect.Map: - return c.compileMap(typ) - case reflect.Interface: - return &Opcode{Op: OpFieldInterface, Meta: FieldMeta{Type: typ, Size: typ.Size()}}, nil - default: - return c.compilePrimitive(typ) - } -} - -// checkSpecialTypeEncoder returns an opcode for special types that are structs -// but should NOT use struct traversal (e.g., time.Time, neo4j.Duration). -// Returns nil if the type is not special. -func (c *Compiler) checkSpecialTypeEncoder(typ reflect.Type) *Opcode { - var op OpType - switch typ { - case reflect.TypeOf(time.Time{}): - op = OpFieldTime - case reflect.TypeOf(neo4j.Date{}): - op = OpFieldDate - case reflect.TypeOf(neo4j.LocalTime{}): - op = OpFieldLocalTime - case reflect.TypeOf(neo4j.LocalDateTime{}): - op = OpFieldLocalDateTime - case reflect.TypeOf(neo4j.Duration{}): - op = OpFieldDuration - case reflect.TypeOf(neo4j.Point2D{}): - op = OpFieldPoint2D - case reflect.TypeOf(neo4j.Point3D{}): - op = OpFieldPoint3D - default: - return nil - } - return &Opcode{Op: op, Meta: FieldMeta{Type: typ, Size: typ.Size()}} -} - -func (c *Compiler) compilePrimitive(typ reflect.Type) (*Opcode, error) { - var op OpType - - // Check special types (redundant check for safety, main check is in checkSpecialTypeEncoder) - switch typ { - case reflect.TypeOf(time.Time{}): - op = OpFieldTime - case reflect.TypeOf(neo4j.Date{}): - op = OpFieldDate - case reflect.TypeOf(neo4j.LocalTime{}): - op = OpFieldLocalTime - case reflect.TypeOf(neo4j.LocalDateTime{}): - op = OpFieldLocalDateTime - case reflect.TypeOf(neo4j.Duration{}): - op = OpFieldDuration - case reflect.TypeOf(neo4j.Point2D{}): - op = OpFieldPoint2D - case reflect.TypeOf(neo4j.Point3D{}): - op = OpFieldPoint3D - default: - switch typ.Kind() { - case reflect.Bool: - op = OpFieldBool - case reflect.Int: - op = OpFieldInt - case reflect.Int8: - op = OpFieldInt8 - case reflect.Int16: - op = OpFieldInt16 - case reflect.Int32: - op = OpFieldInt32 - case reflect.Int64: - op = OpFieldInt64 - case reflect.Uint: - op = OpFieldUint - case reflect.Uint8: - op = OpFieldUint8 - case reflect.Uint16: - op = OpFieldUint16 - case reflect.Uint32: - op = OpFieldUint32 - case reflect.Uint64: - op = OpFieldUint64 - case reflect.Float32: - op = OpFieldFloat32 - case reflect.Float64: - op = OpFieldFloat64 - case reflect.String: - op = OpFieldString - default: - return nil, fmt.Errorf("unsupported primitive type: %s", typ.Kind()) - } - } - - return &Opcode{Op: op, Meta: FieldMeta{Type: typ, Size: typ.Size()}}, nil -} - -func (c *Compiler) compileStruct(typ reflect.Type) (*Opcode, error) { - head := &Opcode{Op: OpStructStart, Meta: FieldMeta{Type: typ}} - c.encCache[getTypePtr(typ)] = head - - current := head - - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - info := parseFieldInfo(field) - - if info.IsSkip { - continue - } - - if info.IsEmbed { - subOp, err := c.Compile(field.Type) - if err != nil { - return nil, err - } - op := &Opcode{ - Op: OpFieldEmbed, - Meta: info.Meta, - SubOpcodes: subOp, - } - current.Next = op - current = op - continue - } - - typeOp, err := c.Compile(field.Type) - if err != nil { - return nil, err - } - - op := &Opcode{ - Op: typeOp.Op, - DBName: info.DBName, - Meta: info.Meta, - SubOpcodes: typeOp.SubOpcodes, - IsSkip: info.IsSkip, - } - - if typeOp.Op == OpStructStart { - op.Op = OpFieldStruct - op.SubOpcodes = typeOp - } else if typeOp.Op == OpFieldSlice { - op.Meta.Size = typeOp.Meta.Size - } else if isComplexOp(typeOp.Op) { - op.SubOpcodes = typeOp.SubOpcodes - } - - current.Next = op - current = op - } - - current.Next = &Opcode{Op: OpStructEnd} - return head, nil -} - -func (c *Compiler) compilePtr(typ reflect.Type) (*Opcode, error) { - elemOp, err := c.Compile(typ.Elem()) - if err != nil { - return nil, err - } - - return &Opcode{ - Op: OpFieldPtr, - Meta: FieldMeta{Type: typ, Size: typ.Size()}, - SubOpcodes: elemOp, - }, nil -} - -func (c *Compiler) compileSlice(typ reflect.Type) (*Opcode, error) { - if typ.Elem().Kind() == reflect.Uint8 { - return &Opcode{Op: OpFieldBytes, Meta: FieldMeta{Type: typ, Size: typ.Size()}}, nil - } - - elemOp, err := c.Compile(typ.Elem()) - if err != nil { - return nil, err - } - - return &Opcode{ - Op: OpFieldSlice, - Meta: FieldMeta{Type: typ, Size: typ.Elem().Size()}, - SubOpcodes: elemOp, - }, nil -} - -func (c *Compiler) compileMap(typ reflect.Type) (*Opcode, error) { - if typ.Key().Kind() != reflect.String { - return nil, fmt.Errorf("map keys must be strings, got %s", typ.Key().Kind()) - } - - elemOp, err := c.Compile(typ.Elem()) - if err != nil { - return nil, err - } - - return &Opcode{ - Op: OpFieldMap, - Meta: FieldMeta{Type: typ, Size: typ.Size()}, - SubOpcodes: elemOp, - }, nil -} - -func isComplexOp(op OpType) bool { - return op == OpFieldSlice || op == OpFieldMap || op == OpFieldPtr || op == OpFieldStruct || op == OpFieldEmbed || op == OpStructStart -} - -// --- Decoder Compilation --- - -func (c *Compiler) CompileDecoder(typ reflect.Type) (Decoder, error) { - ptr := getTypePtr(typ) - if dec, ok := c.decCache[ptr]; ok { - return dec, nil - } - - // Check for special types FIRST (before kind switch) - // These are struct types that need special decoders, not structDecoder - if dec := c.checkSpecialTypeDecoder(typ); dec != nil { - return dec, nil - } - - switch typ.Kind() { - case reflect.Struct: - return c.compileStructDecoder(typ) - case reflect.Ptr: - return c.compilePtrDecoder(typ) - case reflect.Slice: - // Special case: []byte is treated as a primitive (bytes decoder) - if typ.Elem().Kind() == reflect.Uint8 { - return c.compilePrimitiveDecoder(typ) - } - return c.compileSliceDecoder(typ) - case reflect.Map: - return nil, fmt.Errorf("maps are not supported for Neo4j codec - Neo4j data model only supports scalar properties") - case reflect.Interface: - return DecoderFunc(interfaceDecoder), nil - default: - return c.compilePrimitiveDecoder(typ) - } -} - -// checkSpecialTypeDecoder returns a decoder for special types that are structs -// but should NOT use structDecoder (e.g., time.Time, neo4j.Duration). -// Returns nil if the type is not special. -func (c *Compiler) checkSpecialTypeDecoder(typ reflect.Type) Decoder { - switch typ { - case reflect.TypeOf(time.Time{}): - return DecoderFunc(timeDecoder) - case reflect.TypeOf(neo4j.Date{}): - return DecoderFunc(dateDecoder) - case reflect.TypeOf(neo4j.LocalTime{}): - return DecoderFunc(localTimeDecoder) - case reflect.TypeOf(neo4j.LocalDateTime{}): - return DecoderFunc(localDateTimeDecoder) - case reflect.TypeOf(neo4j.Time{}): - return DecoderFunc(neo4jTimeDecoder) - case reflect.TypeOf(neo4j.Duration{}): - return DecoderFunc(durationDecoder) - case reflect.TypeOf(neo4j.Point2D{}): - return DecoderFunc(point2DDecoder) - case reflect.TypeOf(neo4j.Point3D{}): - return DecoderFunc(point3DDecoder) - } - return nil -} - -func (c *Compiler) compilePrimitiveDecoder(typ reflect.Type) (Decoder, error) { - // Check special types (redundant check for safety, main check is in checkSpecialTypeDecoder) - if typ == reflect.TypeOf(time.Time{}) { - return DecoderFunc(timeDecoder), nil - } - - switch typ.Kind() { - case reflect.Int: - return DecoderFunc(intDecoder), nil - case reflect.Int8: - return DecoderFunc(int8Decoder), nil - case reflect.Int16: - return DecoderFunc(int16Decoder), nil - case reflect.Int32: - return DecoderFunc(int32Decoder), nil - case reflect.Int64: - return DecoderFunc(int64Decoder), nil - case reflect.String: - return DecoderFunc(stringDecoder), nil - case reflect.Bool: - return DecoderFunc(boolDecoder), nil - case reflect.Float64: - return DecoderFunc(float64Decoder), nil - case reflect.Uint: - return DecoderFunc(uintDecoder), nil - case reflect.Uint8: - return DecoderFunc(uint8Decoder), nil - case reflect.Uint16: - return DecoderFunc(uint16Decoder), nil - case reflect.Uint32: - return DecoderFunc(uint32Decoder), nil - case reflect.Uint64: - return DecoderFunc(uint64Decoder), nil - case reflect.Float32: - return DecoderFunc(float32Decoder), nil - case reflect.Slice: - // Special case for []byte - if typ.Elem().Kind() == reflect.Uint8 { - return DecoderFunc(bytesDecoder), nil - } - } - // Fallback - return DecoderFunc(func(data any, ptr unsafe.Pointer) error { - return fmt.Errorf("unsupported primitive decoder type: %s", typ) - }), nil -} - -func (c *Compiler) compileStructDecoder(typ reflect.Type) (Decoder, error) { - dec := &structDecoder{ - fields: make(map[string]*fieldDecoder), - } - c.decCache[getTypePtr(typ)] = dec // Register early for recursion - - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - info := parseFieldInfo(field) - - if info.IsSkip { - continue - } - - // Handle embedded structs: flatten their fields into parent - if info.IsEmbed { - embeddedType := field.Type - // If it's a pointer, get the element type - if embeddedType.Kind() == reflect.Ptr { - embeddedType = embeddedType.Elem() - } - - // Recursively compile the embedded struct's decoder - embeddedDec, err := c.CompileDecoder(embeddedType) - if err != nil { - return nil, err - } - - // Extract the struct decoder's fields and merge them - if structDec, ok := embeddedDec.(*structDecoder); ok { - for dbName, fieldDec := range structDec.fields { - // Adjust offset to account for embedding - dec.fields[dbName] = &fieldDecoder{ - offset: field.Offset + fieldDec.offset, - decoder: fieldDec.decoder, - } - } - } - continue - } - - fieldDec, err := c.CompileDecoder(field.Type) - if err != nil { - return nil, err - } - - dec.fields[info.DBName] = &fieldDecoder{ - offset: field.Offset, - decoder: fieldDec, - } - } - return dec, nil -} - -func (c *Compiler) compilePtrDecoder(typ reflect.Type) (Decoder, error) { - elemDec, err := c.CompileDecoder(typ.Elem()) - if err != nil { - return nil, err - } - return &ptrDecoder{ - elemDecoder: elemDec, - allocate: makePtrAllocator(typ.Elem()), // Compile-time allocation strategy - }, nil -} - -func (c *Compiler) compileSliceDecoder(typ reflect.Type) (Decoder, error) { - elemDec, err := c.CompileDecoder(typ.Elem()) - if err != nil { - return nil, err - } - return &sliceDecoder{ - elemDecoder: elemDec, - elemSize: typ.Elem().Size(), - allocate: makeSliceAllocator(typ.Elem()), // Compile-time allocation strategy - }, nil -} diff --git a/vendor/github.com/rlch/neogo/internal/codec/decoder.go b/vendor/github.com/rlch/neogo/internal/codec/decoder.go deleted file mode 100644 index 35ee8b2..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/decoder.go +++ /dev/null @@ -1,393 +0,0 @@ -package codec - -import ( - "fmt" - "time" - "unsafe" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" -) - -// Decoder is the interface for all decoders. -// HOT PATH: All Decode implementations use zero reflection - only unsafe pointer arithmetic. -type Decoder interface { - Decode(data any, ptr unsafe.Pointer) error -} - -// DecoderFunc adapts a function to the Decoder interface -type DecoderFunc func(data any, ptr unsafe.Pointer) error - -func (f DecoderFunc) Decode(data any, ptr unsafe.Pointer) error { - return f(data, ptr) -} - -// --- Primitive Decoders --- - -func intDecoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt(data) - if !ok { - return fmt.Errorf("expected int, got %T", data) - } - *(*int)(ptr) = v - return nil -} - -func int64Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt64(data) - if !ok { - return fmt.Errorf("expected int64, got %T", data) - } - *(*int64)(ptr) = v - return nil -} - -func stringDecoder(data any, ptr unsafe.Pointer) error { - v, ok := data.(string) - if !ok { - return fmt.Errorf("expected string, got %T", data) - } - *(*string)(ptr) = v - return nil -} - -func boolDecoder(data any, ptr unsafe.Pointer) error { - v, ok := data.(bool) - if !ok { - return fmt.Errorf("expected bool, got %T", data) - } - *(*bool)(ptr) = v - return nil -} - -func float64Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToFloat64(data) - if !ok { - return fmt.Errorf("expected float64, got %T", data) - } - *(*float64)(ptr) = v - return nil -} - -// --- Struct Decoder --- - -type structDecoder struct { - fields map[string]*fieldDecoder // Maps DB field name to decoder info -} - -type fieldDecoder struct { - offset uintptr - decoder Decoder -} - -func (d *structDecoder) Decode(data any, ptr unsafe.Pointer) error { - // Neo4j returns map[string]any for properties/nodes - var props map[string]any - - switch v := data.(type) { - case map[string]any: - props = v - case neo4j.Node: - props = v.Props - // TODO: Handle ID/Labels/ElementId mapping if struct has tags for them - case neo4j.Relationship: - props = v.Props - default: - return fmt.Errorf("expected map or Node, got %T", data) - } - - for k, v := range props { - if fd, ok := d.fields[k]; ok { - fieldPtr := unsafe.Pointer(uintptr(ptr) + fd.offset) - if err := fd.decoder.Decode(v, fieldPtr); err != nil { - return fmt.Errorf("error decoding field %q: %w", k, err) - } - } - } - return nil -} - -// --- Slice Decoder --- - -type sliceDecoder struct { - elemDecoder Decoder - elemSize uintptr - allocate sliceAllocator // Pre-computed allocator (no runtime reflection) -} - -func (d *sliceDecoder) Decode(data any, ptr unsafe.Pointer) error { - if data == nil { - *(*sliceHeader)(ptr) = sliceHeader{} - return nil - } - - // Expect generic slice []any from Neo4j - src, ok := data.([]any) - if !ok { - // Handle single element wrapping: if data is not a slice, wrap it - // This supports binding a single value (e.g., Node) to a slice target - src = []any{data} - } - - count := len(src) - if count == 0 { - *(*sliceHeader)(ptr) = sliceHeader{} - return nil - } - - // Allocate slice backing array using pre-computed allocator (ZERO reflection) - valPtr, _, capacity := d.allocate(count) - - // Copy header to destination struct field - // This sets Data, Len, Cap on the struct field - header := (*sliceHeader)(ptr) - header.Data = valPtr - header.Len = count - header.Cap = capacity - - // Iterate and decode elements directly into memory - for i := 0; i < count; i++ { - // Proper pointer arithmetic: convert to uintptr, add, convert back - elemPtr := unsafe.Pointer(uintptr(valPtr) + uintptr(i)*d.elemSize) - if err := d.elemDecoder.Decode(src[i], elemPtr); err != nil { - return fmt.Errorf("index %d: %w", i, err) - } - } - - return nil -} - -// --- Pointer Decoder --- - -type ptrDecoder struct { - elemDecoder Decoder - allocate ptrAllocator // Pre-computed allocator (ZERO reflection at decode time) -} - -func (d *ptrDecoder) Decode(data any, ptr unsafe.Pointer) error { - if data == nil { - *(*unsafe.Pointer)(ptr) = nil - return nil - } - - // Allocate memory using pre-computed allocator (ZERO reflection) - mem := d.allocate() - - // Decode into allocated memory - if err := d.elemDecoder.Decode(data, mem); err != nil { - return err - } - - // Set pointer field to point to new memory - *(*unsafe.Pointer)(ptr) = mem - return nil -} - -// --- Interface Decoder --- - -func interfaceDecoder(data any, ptr unsafe.Pointer) error { - // Just assign the value directly - *(*any)(ptr) = data - return nil -} - -// --- Additional Primitive Decoders --- - -func uintDecoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint(data) - if !ok { - return fmt.Errorf("expected uint, got %T", data) - } - *(*uint)(ptr) = v - return nil -} - -func uint64Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint64(data) - if !ok { - return fmt.Errorf("expected uint64, got %T", data) - } - *(*uint64)(ptr) = v - return nil -} - -func float32Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToFloat32(data) - if !ok { - return fmt.Errorf("expected float32, got %T", data) - } - *(*float32)(ptr) = v - return nil -} - -func bytesDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case []byte: - *(*[]byte)(ptr) = v - return nil - case string: - *(*[]byte)(ptr) = []byte(v) - return nil - default: - return fmt.Errorf("expected []byte or string, got %T", data) - } -} - -func int8Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt8(data) - if !ok { - return fmt.Errorf("expected int8, got %T", data) - } - *(*int8)(ptr) = v - return nil -} - -func int16Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt16(data) - if !ok { - return fmt.Errorf("expected int16, got %T", data) - } - *(*int16)(ptr) = v - return nil -} - -func int32Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToInt32(data) - if !ok { - return fmt.Errorf("expected int32, got %T", data) - } - *(*int32)(ptr) = v - return nil -} - -func uint8Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint8(data) - if !ok { - return fmt.Errorf("expected uint8, got %T", data) - } - *(*uint8)(ptr) = v - return nil -} - -func uint16Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint16(data) - if !ok { - return fmt.Errorf("expected uint16, got %T", data) - } - *(*uint16)(ptr) = v - return nil -} - -func uint32Decoder(data any, ptr unsafe.Pointer) error { - v, ok := convertToUint32(data) - if !ok { - return fmt.Errorf("expected uint32, got %T", data) - } - *(*uint32)(ptr) = v - return nil -} - -// --- Neo4j Types --- - -func timeDecoder(data any, ptr unsafe.Pointer) error { - // Neo4j might return time.Time (local) or dbtype.Time - switch v := data.(type) { - case time.Time: - *(*time.Time)(ptr) = v - case neo4j.Time: - *(*time.Time)(ptr) = v.Time() - case neo4j.Date: - *(*time.Time)(ptr) = v.Time() - case neo4j.LocalDateTime: - *(*time.Time)(ptr) = v.Time() - case neo4j.LocalTime: - *(*time.Time)(ptr) = v.Time() - case string: - // Try parsing ISO string? - t, err := time.Parse(time.RFC3339, v) - if err != nil { - return err - } - *(*time.Time)(ptr) = t - default: - return fmt.Errorf("cannot decode %T into time.Time", data) - } - return nil -} - -func dateDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Date: - *(*neo4j.Date)(ptr) = v - case time.Time: - *(*neo4j.Date)(ptr) = neo4j.DateOf(v) - default: - return fmt.Errorf("cannot decode %T into neo4j.Date", data) - } - return nil -} - -func localTimeDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.LocalTime: - *(*neo4j.LocalTime)(ptr) = v - case time.Time: - *(*neo4j.LocalTime)(ptr) = neo4j.LocalTimeOf(v) - default: - return fmt.Errorf("cannot decode %T into neo4j.LocalTime", data) - } - return nil -} - -func localDateTimeDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.LocalDateTime: - *(*neo4j.LocalDateTime)(ptr) = v - case time.Time: - *(*neo4j.LocalDateTime)(ptr) = neo4j.LocalDateTimeOf(v) - default: - return fmt.Errorf("cannot decode %T into neo4j.LocalDateTime", data) - } - return nil -} - -func neo4jTimeDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Time: - *(*neo4j.Time)(ptr) = v - case time.Time: - *(*neo4j.Time)(ptr) = neo4j.Time(v) - default: - return fmt.Errorf("cannot decode %T into neo4j.Time", data) - } - return nil -} - -func durationDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Duration: - *(*neo4j.Duration)(ptr) = v - default: - return fmt.Errorf("cannot decode %T into neo4j.Duration", data) - } - return nil -} - -func point2DDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Point2D: - *(*neo4j.Point2D)(ptr) = v - default: - return fmt.Errorf("cannot decode %T into neo4j.Point2D", data) - } - return nil -} - -func point3DDecoder(data any, ptr unsafe.Pointer) error { - switch v := data.(type) { - case neo4j.Point3D: - *(*neo4j.Point3D)(ptr) = v - default: - return fmt.Errorf("cannot decode %T into neo4j.Point3D", data) - } - return nil -} \ No newline at end of file diff --git a/vendor/github.com/rlch/neogo/internal/codec/neo4j_extractor.go b/vendor/github.com/rlch/neogo/internal/codec/neo4j_extractor.go deleted file mode 100644 index 6f180c1..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/neo4j_extractor.go +++ /dev/null @@ -1,431 +0,0 @@ -package codec - -import ( - "fmt" - "reflect" - "strings" -) - -// Neo4jNodeMetadata contains metadata extracted from a node struct -type Neo4jNodeMetadata struct { - Name string - Labels []string - FieldsToProps map[string]string - Relationships map[string]*Neo4jRelationshipTarget - Schema *SchemaMeta // Aggregated schema (indexes + constraints) - RType reflect.Type // Stored reflect.Type for delegation -} - -// Type returns the reflect.Type for this node -func (m *Neo4jNodeMetadata) Type() reflect.Type { - return m.RType -} - -// Neo4jRelationshipTarget represents a relationship field in a node -type Neo4jRelationshipTarget struct { - FieldName string - Many bool // true for Many[R], false for One[R] - Dir bool // true = ->, false = <- - RelType string // Relationship type (e.g., "ACTED_IN") - NodeType reflect.Type // Target type (node or relationship struct) - use registry to get labels - Required bool // true if relationship is required (existence constraint) -} - -// ExtractNeo4jNodeMeta extracts Neo4j node metadata from a struct. -// REGISTRATION PHASE: Uses heavy reflection, called only during type registration. -// Deprecated: Use extractNeo4jNodeMetaFromType for new code. -func (r *CodecRegistry) ExtractNeo4jNodeMeta(v any) (*Neo4jNodeMetadata, error) { - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - return r.extractNeo4jNodeMetaFromType(typ) -} - -// extractNeo4jNodeMetaFromType extracts Neo4j node metadata from a reflect.Type. -// This is the internal method that does all the work, including schema aggregation. -// REGISTRATION PHASE: Uses heavy reflection, called only during type registration. -func (r *CodecRegistry) extractNeo4jNodeMetaFromType(typ reflect.Type) (*Neo4jNodeMetadata, error) { - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected struct, got %s", typ.Kind()) - } - - // Create a zero value for walking (needed for embedded struct recursion) - val := reflect.New(typ).Elem() - - meta := &Neo4jNodeMetadata{ - Name: typ.Name(), - Labels: []string{}, - FieldsToProps: make(map[string]string), - Relationships: make(map[string]*Neo4jRelationshipTarget), - RType: typ, - } - - // Track labels to append at the end (from anonymous fields) - postpendLabels := []string{} - - // Collect field schema info for aggregation - var fieldSchemas []FieldSchemaInfo - - // Walk through all fields - err := r.walkStructFieldsWithSchema(typ, val, meta, &postpendLabels, &fieldSchemas) - if err != nil { - return nil, err - } - - // Append labels from anonymous fields - meta.Labels = append(meta.Labels, postpendLabels...) - - if len(meta.Labels) == 0 { - return nil, fmt.Errorf("node %s has no labels", meta.Name) - } - - // Use most specific label (first label) for schema naming - primaryLabel := meta.Labels[0] - - // Auto-add unique constraint for ID field if present - if idProp, hasID := meta.FieldsToProps["ID"]; hasID { - fieldSchemas = append(fieldSchemas, FieldSchemaInfo{ - DBName: idProp, - Constraint: &ConstraintSpec{ - Type: ConstraintTypeUnique, - Priority: 10, - }, - }) - } - - // Aggregate schema from field specs - meta.Schema = &SchemaMeta{ - TypeName: meta.Name, - Labels: meta.Labels, - IsNode: true, - Indexes: AggregateIndexes(primaryLabel, true, fieldSchemas), - Constraints: AggregateConstraints(primaryLabel, true, fieldSchemas), - } - - return meta, nil -} - -// walkStructFieldsWithSchema walks through struct fields and extracts Neo4j metadata + schema info -func (r *CodecRegistry) walkStructFieldsWithSchema(typ reflect.Type, val reflect.Value, meta *Neo4jNodeMetadata, postpendLabels *[]string, fieldSchemas *[]FieldSchemaInfo) error { - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - fieldVal := val.Field(i) - - // Parse field info to get both DB name and schema - fieldInfo := parseFieldInfo(field) - - // Extract field name mapping from neo4j tags (only for non-anonymous fields) - if !field.Anonymous && !fieldInfo.IsSkip { - if propName, ok := r.extractFieldName(field); ok { - meta.FieldsToProps[field.Name] = propName - - // Collect schema info for this field - if fieldInfo.Index != nil || fieldInfo.Constraint != nil { - *fieldSchemas = append(*fieldSchemas, FieldSchemaInfo{ - DBName: propName, - Index: fieldInfo.Index, - Constraint: fieldInfo.Constraint, - }) - } - } - } - - // Handle anonymous fields (embedded structs) - var shouldRecurse bool - if field.Anonymous { - shouldRecurse = r.handleAnonymousFieldWithSchema(field, meta, postpendLabels, fieldSchemas) - } - - // Parse neo4j tag - tag, hasTag := field.Tag.Lookup("neo4j") - if !hasTag || tag == "" { - // If no neo4j tag but should recurse, continue recursion - if shouldRecurse { - // Recurse into embedded struct - embeddedVal := fieldVal - if embeddedVal.Kind() == reflect.Ptr { - if embeddedVal.IsNil() { - // Create a new instance for nil pointers - embeddedVal = reflect.New(field.Type.Elem()).Elem() - } else { - embeddedVal = embeddedVal.Elem() - } - } - err := r.walkStructFieldsWithSchema(embeddedVal.Type(), embeddedVal, meta, postpendLabels, fieldSchemas) - if err != nil { - return err - } - } - continue - } - - // Parse tag - err := r.parseNeo4jTag(field, tag, meta, postpendLabels, typ.Name()) - if err != nil { - return err - } - - // Handle recursion if needed - if shouldRecurse { - embeddedVal := fieldVal - if embeddedVal.Kind() == reflect.Ptr { - if embeddedVal.IsNil() { - // Create a new instance for nil pointers - embeddedVal = reflect.New(field.Type.Elem()).Elem() - } else { - embeddedVal = embeddedVal.Elem() - } - } - err := r.walkStructFieldsWithSchema(embeddedVal.Type(), embeddedVal, meta, postpendLabels, fieldSchemas) - if err != nil { - return err - } - } - } - return nil -} - -// extractFieldName extracts field name from neo4j tag for property fields. -// Returns false for relationship fields (One[R]/Many[R]) and special markers. -func (r *CodecRegistry) extractFieldName(field reflect.StructField) (string, bool) { - neo4jTag := field.Tag.Get("neo4j") - if neo4jTag == "" || neo4jTag == "-" { - return "", false - } - - // Skip One[R] and Many[R] relationship fields - they're not properties - fieldTypeName := field.Type.Name() - if strings.HasPrefix(fieldTypeName, "One[") || strings.HasPrefix(fieldTypeName, "Many[") { - return "", false - } - - parts := strings.Split(neo4jTag, ",") - if len(parts) > 0 { - fieldName := strings.TrimSpace(parts[0]) - // Skip relationship direction markers and other special values - if fieldName == "" || fieldName == "->" || fieldName == "<-" || fieldName == "startNode" || fieldName == "endNode" { - return "", false - } - // Skip shorthand relationship syntax (e.g., "FRIEND>", "") || strings.HasPrefix(fieldName, "<") { - return "", false - } - return fieldName, true - } - - return "", false -} - -// handleAnonymousFieldWithSchema handles embedded/anonymous struct fields and collects schema info -func (r *CodecRegistry) handleAnonymousFieldWithSchema(field reflect.StructField, meta *Neo4jNodeMetadata, postpendLabels *[]string, fieldSchemas *[]FieldSchemaInfo) bool { - fieldType := field.Type - - // Check if it's the base Node type (special case - always recurse) - if r.isBaseNodeType(fieldType) { - return true // Should recurse but don't extract as node - } - - // Check if it implements INode interface - if r.implementsINode(fieldType) { - // Try to extract the nested node metadata - nestedMeta, err := r.extractNeo4jNodeMetaFromType(fieldType) - if err == nil && len(nestedMeta.Labels) > 0 { - // Successfully extracted - merge labels, fields, relationships, and schema - meta.Labels = append(meta.Labels, nestedMeta.Labels...) - for k, v := range nestedMeta.FieldsToProps { - meta.FieldsToProps[k] = v - } - for k, v := range nestedMeta.Relationships { - meta.Relationships[k] = v - } - // Merge schema from nested node (but not auto-ID constraint - that will be regenerated) - if nestedMeta.Schema != nil { - for _, idx := range nestedMeta.Schema.Indexes { - for _, prop := range idx.Properties { - *fieldSchemas = append(*fieldSchemas, FieldSchemaInfo{ - DBName: prop.Name, - Index: &IndexSpec{ - Name: idx.Name, - Type: idx.Type, - Priority: prop.Priority, - Options: idx.Options, - }, - }) - } - } - // Don't merge constraints from nested - they'll be regenerated with correct label - // Only merge explicit constraints (not auto-ID) - for _, con := range nestedMeta.Schema.Constraints { - // Skip auto-generated ID constraints (they have auto-generated names) - if strings.HasPrefix(con.Name, "unique_") && len(con.Properties) == 1 && con.Properties[0] == "id" { - continue - } - for i, prop := range con.Properties { - *fieldSchemas = append(*fieldSchemas, FieldSchemaInfo{ - DBName: prop, - Constraint: &ConstraintSpec{ - Name: con.Name, - Type: con.Type, - Priority: i + 1, - }, - }) - } - } - } - return false // Don't recurse further, we already extracted - } - // Extraction failed (no labels) - this is a base type, recurse to get fields - return true - } - - return true // Should recurse for other anonymous fields -} - -// parseNeo4jTag parses neo4j struct tag and updates metadata -func (r *CodecRegistry) parseNeo4jTag(field reflect.StructField, neo4jTag string, meta *Neo4jNodeMetadata, postpendLabels *[]string, typeName string) error { - parts := strings.Split(neo4jTag, ",") - if len(parts) == 0 { - return fmt.Errorf("invalid tag format for field %s.%s: %s", typeName, field.Name, neo4jTag) - } - - ident := parts[0] - options := parts[1:] // Additional options like "required" - - switch ident { - case "<-", "->": - // Direct relationship definition - return r.registerRelationshipField(field, ident == "->", "", options, meta, typeName) - - case "": - return fmt.Errorf("field has empty neo4j label / direction: %s.%s", typeName, field.Name) - - default: - // Label or shorthand relationship - if field.Anonymous { - *postpendLabels = append(*postpendLabels, ident) - } else { - // Check if it's a shorthand relationship (starts with < or ends with >) - if ident[0] == '<' { - return r.registerRelationshipField(field, false, ident[1:], options, meta, typeName) - } else if ident[len(ident)-1] == '>' { - return r.registerRelationshipField(field, true, ident[:len(ident)-1], options, meta, typeName) - } - // If it's not a relationship and not anonymous, it's ignored - // Labels only come from anonymous embedded structs - } - } - - return nil -} - -// registerRelationshipField registers a relationship field. -// Only One[R] and Many[R] wrapper types are supported for relationship definitions. -func (r *CodecRegistry) registerRelationshipField(field reflect.StructField, dir bool, shorthand string, options []string, meta *Neo4jNodeMetadata, typeName string) error { - relType := field.Type - isMany := false - isRequired := false - - // Parse options - for _, opt := range options { - opt = strings.TrimSpace(opt) - if opt == "required" { - isRequired = true - } - } - - // Only One[R] and Many[R] zero-cost wrapper types are supported - if relType.Kind() != reflect.Struct { - return fmt.Errorf("relationship field %s.%s must use One[R] or Many[R] type, got %s", typeName, field.Name, relType) - } - - relWrapperName := relType.Name() - if !strings.HasPrefix(relWrapperName, "One[") && !strings.HasPrefix(relWrapperName, "Many[") { - return fmt.Errorf("relationship field %s.%s must use One[R] or Many[R] type, got %s", typeName, field.Name, relWrapperName) - } - - isMany = strings.HasPrefix(relWrapperName, "Many[") - - // Extract the type parameter R from One[R] or Many[R] - // The type parameter is accessible via the struct's first field type - if relType.NumField() == 0 { - return fmt.Errorf("relationship field %s.%s has invalid One/Many type structure", typeName, field.Name) - } - - // The phantom field is [0]R, so its element type is R - phantomField := relType.Field(0) - if phantomField.Type.Kind() != reflect.Array || phantomField.Type.Len() != 0 { - return fmt.Errorf("relationship field %s.%s has invalid One/Many type structure", typeName, field.Name) - } - - innerType := phantomField.Type.Elem() - // Wrap in pointer for consistency with existing code - relType = reflect.PointerTo(innerType) - - // Determine relationship type - var relTypeName string - - if shorthand != "" { - relTypeName = shorthand - } else { - // Extract relationship type from db/neo4j tag on the relationship struct - relStructType := relType.Elem() - if r.implementsIRelationship(relType) { - // Look for neo4j tag on the relationship struct itself - if relStructType.Kind() == reflect.Struct { - for i := 0; i < relStructType.NumField(); i++ { - f := relStructType.Field(i) - if f.Anonymous && f.Type.Name() == "Relationship" { - if tagVal := f.Tag.Get("neo4j"); tagVal != "" { - relTypeName = tagVal - break - } - } - } - } - } - // Fallback to default relationship type for shorthand relationships - if relTypeName == "" { - // For shorthand relationships (where target is a node, not a relationship struct), - // use "SHORTHAND" as the default relationship type - if r.implementsINode(relType) { - relTypeName = "SHORTHAND" - } else { - // For regular relationship structs, use the struct name - relTypeName = relStructType.Name() - } - } - } - - meta.Relationships[field.Name] = &Neo4jRelationshipTarget{ - FieldName: field.Name, - Many: isMany, - Dir: dir, - RelType: relTypeName, - NodeType: relType, - Required: isRequired, - } - - return nil -} - -// Helper methods to check type implementations -func (r *CodecRegistry) isBaseNodeType(typ reflect.Type) bool { - // Check if it's the base Node type - this should be configurable - return typ.Name() == "Node" -} - -func (r *CodecRegistry) implementsINode(typ reflect.Type) bool { - // Create INode interface type - iNodeType := reflect.TypeOf((*interface{ IsNode() })(nil)).Elem() - return typ.Implements(iNodeType) -} - -func (r *CodecRegistry) implementsIRelationship(typ reflect.Type) bool { - // Create IRelationship interface type - iRelType := reflect.TypeOf((*interface{ IsRelationship() })(nil)).Elem() - return typ.Implements(iRelType) -} \ No newline at end of file diff --git a/vendor/github.com/rlch/neogo/internal/codec/opcodes.go b/vendor/github.com/rlch/neogo/internal/codec/opcodes.go deleted file mode 100644 index 204b8af..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/opcodes.go +++ /dev/null @@ -1,323 +0,0 @@ -package codec - -import ( - "time" - "unsafe" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" -) - -// OpType represents different types of encoding/decoding operations -type OpType int - -const ( - // Struct operations - OpStructStart OpType = iota - OpStructEnd - - // Basic field operations - OpFieldBool - OpFieldInt - OpFieldInt8 - OpFieldInt16 - OpFieldInt32 - OpFieldInt64 - OpFieldUint - OpFieldUint8 - OpFieldUint16 - OpFieldUint32 - OpFieldUint64 - OpFieldFloat32 - OpFieldFloat64 - OpFieldString - OpFieldBytes - - // Neo4j specific types - OpFieldTime - OpFieldDate - OpFieldLocalTime - OpFieldLocalDateTime - OpFieldDuration - OpFieldPoint2D - OpFieldPoint3D - - // Complex field operations - OpFieldSlice - OpFieldMap - OpFieldPtr - OpFieldStruct - OpFieldInterface - - // Special operations - OpFieldEmbed - OpFieldSkip - - // Optimized combined operations - OpStructFieldStart - OpFieldStructEnd - - OpEnd -) - -// Opcode represents a single encoding/decoding operation -type Opcode struct { - Op OpType - Key []byte // Field name for encoding (pre-computed) - Meta FieldMeta // Pre-computed field metadata - Next *Opcode // Next operation in sequence - - // For complex types - SubOpcodes *Opcode // For slices, maps, structs, pointers - - // Field info from db tags - DBName string - Options []string - IsEmbed bool - IsSkip bool -} - -// EncodeStruct executes the opcode sequence to encode a struct to map[string]any. -// HOT PATH: Zero reflection - uses only pre-compiled opcodes and unsafe pointer arithmetic. -func EncodeStruct(head *Opcode, structPtr unsafe.Pointer) (map[string]any, error) { - result := make(map[string]any) - err := encodeStructToMap(head, structPtr, result) - return result, err -} - -func encodeStructToMap(head *Opcode, structPtr unsafe.Pointer, result map[string]any) error { - current := head - - for current != nil { - ptr := unsafe.Pointer(uintptr(structPtr) + current.Meta.Offset) - - switch current.Op { - case OpStructStart: - // No-op - case OpStructEnd: - // No-op - case OpStructFieldStart: - // Optimization hook - case OpFieldBool: - result[current.DBName] = *(*bool)(ptr) - case OpFieldInt: - result[current.DBName] = int64(*(*int)(ptr)) - case OpFieldInt8: - result[current.DBName] = int64(*(*int8)(ptr)) - case OpFieldInt16: - result[current.DBName] = int64(*(*int16)(ptr)) - case OpFieldInt32: - result[current.DBName] = int64(*(*int32)(ptr)) - case OpFieldInt64: - result[current.DBName] = *(*int64)(ptr) - case OpFieldUint: - result[current.DBName] = int64(*(*uint)(ptr)) - case OpFieldUint8: - result[current.DBName] = int64(*(*uint8)(ptr)) - case OpFieldUint16: - result[current.DBName] = int64(*(*uint16)(ptr)) - case OpFieldUint32: - result[current.DBName] = int64(*(*uint32)(ptr)) - case OpFieldUint64: - // Warning: Potential overflow if > MaxInt64 - result[current.DBName] = int64(*(*uint64)(ptr)) - case OpFieldFloat32: - result[current.DBName] = float64(*(*float32)(ptr)) - case OpFieldFloat64: - result[current.DBName] = *(*float64)(ptr) - case OpFieldString: - result[current.DBName] = *(*string)(ptr) - case OpFieldBytes: - result[current.DBName] = *(*[]byte)(ptr) - case OpFieldTime: - result[current.DBName] = *(*time.Time)(ptr) - case OpFieldDate: - result[current.DBName] = *(*neo4j.Date)(ptr) - case OpFieldLocalTime: - result[current.DBName] = *(*neo4j.LocalTime)(ptr) - case OpFieldLocalDateTime: - result[current.DBName] = *(*neo4j.LocalDateTime)(ptr) - case OpFieldDuration: - result[current.DBName] = *(*neo4j.Duration)(ptr) - case OpFieldPoint2D: - result[current.DBName] = *(*neo4j.Point2D)(ptr) - case OpFieldPoint3D: - result[current.DBName] = *(*neo4j.Point3D)(ptr) - - case OpFieldPtr: - // Read the pointer - p := *(*unsafe.Pointer)(ptr) - if p == nil { - result[current.DBName] = nil - } else { - // Encode the pointed value using SubOpcodes - // If SubOpcodes is OpFieldStruct (nested), we expect a map. - // If SubOpcodes is primitive, we expect a value. - // But Opcode structure assumes linear list. SubOpcodes is usually the start of a chain for the inner type. - - // Simplified: assume SubOpcodes handles the inner type encoding. - // We need a helper "encodeValue" that returns 'any'. - val, err := EncodeAny(current.SubOpcodes, p) - if err != nil { - return err - } - result[current.DBName] = val - } - - case OpFieldSlice: - // Zero-reflection slice iteration - header := (*sliceHeader)(ptr) - if header.Data == nil && header.Len == 0 { - result[current.DBName] = nil - } else { - sliceOut := make([]any, header.Len) - elemSize := current.Meta.Size - - for i := 0; i < header.Len; i++ { - // Proper pointer arithmetic: convert to uintptr, add, convert back - elemPtr := unsafe.Pointer(uintptr(header.Data) + uintptr(i)*elemSize) - val, err := EncodeAny(current.SubOpcodes, elemPtr) - if err != nil { - return err - } - sliceOut[i] = val - } - result[current.DBName] = sliceOut - } - - case OpFieldStruct: - // Nested struct - // We need to encode it into a map - val, err := EncodeAny(current.SubOpcodes, ptr) - if err != nil { - return err - } - result[current.DBName] = val - - case OpFieldEmbed: - // Embedded struct - merge into current result - // We iterate the SubOpcodes and write directly to 'result' - err := encodeStructToMap(current.SubOpcodes, ptr, result) - if err != nil { - return err - } - - case OpFieldInterface: - // Extract interface{} value directly from memory (ZERO reflection) - // This avoids reflect.NewAt which allocates a reflect.Value wrapper - v := getInterfaceValue(ptr) - result[current.DBName] = v - // Note: This preserves the interface{} contents as-is. - // If the interface holds a struct/slice, it will be encoded on next round. - // This is the correct behavior for Neo4j compatibility. - - case OpFieldSkip: - // Skip - case OpEnd: - // Continue loop to finish? No, loop condition is current != nil - } - current = current.Next - } - return nil -} - -// EncodeAny encodes a single value based on the opcode. -// HOT PATH: Zero reflection - uses only pre-compiled opcodes and unsafe pointer arithmetic. -func EncodeAny(op *Opcode, ptr unsafe.Pointer) (any, error) { - if op == nil { - return nil, nil - } - - switch op.Op { - case OpStructStart: - // It's a struct, so we expect a sequence of fields. - // We return a map[string]any - res := make(map[string]any) - err := encodeStructToMap(op, ptr, res) - return res, err - - case OpFieldBool: - return *(*bool)(ptr), nil - case OpFieldInt: - return int64(*(*int)(ptr)), nil - case OpFieldInt8: - return int64(*(*int8)(ptr)), nil - case OpFieldInt16: - return int64(*(*int16)(ptr)), nil - case OpFieldInt32: - return int64(*(*int32)(ptr)), nil - case OpFieldInt64: - return *(*int64)(ptr), nil - case OpFieldUint: - return int64(*(*uint)(ptr)), nil - case OpFieldUint8: - return int64(*(*uint8)(ptr)), nil - case OpFieldUint16: - return int64(*(*uint16)(ptr)), nil - case OpFieldUint32: - return int64(*(*uint32)(ptr)), nil - case OpFieldUint64: - return int64(*(*uint64)(ptr)), nil - case OpFieldFloat32: - return float64(*(*float32)(ptr)), nil - case OpFieldFloat64: - return *(*float64)(ptr), nil - case OpFieldString: - return *(*string)(ptr), nil - case OpFieldBytes: - return *(*[]byte)(ptr), nil - case OpFieldTime: - return *(*time.Time)(ptr), nil - case OpFieldDate: - return *(*neo4j.Date)(ptr), nil - case OpFieldLocalTime: - return *(*neo4j.LocalTime)(ptr), nil - case OpFieldLocalDateTime: - return *(*neo4j.LocalDateTime)(ptr), nil - case OpFieldDuration: - return *(*neo4j.Duration)(ptr), nil - case OpFieldPoint2D: - return *(*neo4j.Point2D)(ptr), nil - case OpFieldPoint3D: - return *(*neo4j.Point3D)(ptr), nil - - case OpFieldPtr: - p := *(*unsafe.Pointer)(ptr) - if p == nil { - return nil, nil - } - return EncodeAny(op.SubOpcodes, p) - - case OpFieldSlice: - header := (*sliceHeader)(ptr) - if header.Data == nil && header.Len == 0 { - return nil, nil - } - sliceOut := make([]any, header.Len) - elemSize := op.Meta.Size - - for i := 0; i < header.Len; i++ { - // Proper pointer arithmetic: convert to uintptr, add, convert back - elemPtr := unsafe.Pointer(uintptr(header.Data) + uintptr(i)*elemSize) - val, err := EncodeAny(op.SubOpcodes, elemPtr) - if err != nil { - return nil, err - } - sliceOut[i] = val - } - return sliceOut, nil - - case OpFieldStruct: - // Nested struct not at top level (e.g. slice element) - // OpFieldStruct usually points to OpStructStart in SubOpcodes? - // Or it IS the opcode. - // If op.Op is OpFieldStruct, it likely wraps the struct definition. - // If SubOpcodes is OpStructStart, we recurse. - return EncodeAny(op.SubOpcodes, ptr) - - case OpFieldInterface: - // Extract interface{} value directly from memory (ZERO reflection) - return getInterfaceValue(ptr), nil - } - - return nil, nil -} \ No newline at end of file diff --git a/vendor/github.com/rlch/neogo/internal/codec/reflection_helpers.go b/vendor/github.com/rlch/neogo/internal/codec/reflection_helpers.go deleted file mode 100644 index 5f2edc3..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/reflection_helpers.go +++ /dev/null @@ -1,139 +0,0 @@ -package codec - -import ( - "fmt" - "reflect" -) - -// UnwindValue unwraps pointer values to get to the underlying value -func UnwindValue(ptrTo reflect.Value) reflect.Value { - for ptrTo.Kind() == reflect.Ptr { - ptrTo = ptrTo.Elem() - } - return ptrTo -} - -// UnwindType unwraps pointer types to get to the underlying type -func UnwindType(ptrTo reflect.Type) reflect.Type { - for ptrTo.Kind() == reflect.Ptr { - ptrTo = ptrTo.Elem() - } - return ptrTo -} - -// WalkStruct walks through struct fields with a visitor function -// This replaces the WalkStruct from helpers.go -func WalkStruct( - v reflect.Value, - visit func( - i int, - typ reflect.StructField, - val reflect.Value, - ) (recurseInto bool, err error), -) (recurseInto error) { - vt := v.Type() - for vt.Kind() == reflect.Ptr { - vt = vt.Elem() - v = v.Elem() - } - if vt.Kind() != reflect.Struct || v.Kind() != reflect.Struct { - return fmt.Errorf("expected struct, got %s", vt.Kind()) - } - for i := range vt.NumField() { - vtf := vt.Field(i) - vf := v.Field(i) - shouldRecurse, err := visit(i, vtf, vf) - if err != nil { - return err - } - if shouldRecurse && vf.Kind() == reflect.Struct { - if err := WalkStruct(vf, visit); err != nil { - return err - } - continue - } - } - return nil -} - -// GetTypeName returns the type name for a given value, unwrapping pointers -func (r *CodecRegistry) GetTypeName(v any) string { - typ := reflect.TypeOf(v) - return UnwindType(typ).Name() -} - -// GetTypeByName returns a registered type by its name -func (r *CodecRegistry) GetTypeByName(name string) reflect.Type { - return r.GetTypeByNameLookup(name) -} - -// IsRegistered checks if a type is already registered in the codec -func (r *CodecRegistry) IsRegistered(v any) bool { - typePtr := getTypePtrFromValue(v) - _, exists := r.metadata[typePtr] - return exists -} - -// CreateInstance creates a new instance of the given type -func (r *CodecRegistry) CreateInstance(typ reflect.Type) (any, error) { - if typ.Kind() == reflect.Ptr { - elemType := typ.Elem() - if elemType.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected pointer to struct, got pointer to %s", elemType.Kind()) - } - return reflect.New(elemType).Interface(), nil - } else if typ.Kind() == reflect.Struct { - return reflect.New(typ).Interface(), nil - } - return nil, fmt.Errorf("unsupported type kind: %s", typ.Kind()) -} - -// Common interface types for checking implementations -var ( - rAbstract = reflect.TypeOf((*IAbstract)(nil)).Elem() - rINode = reflect.TypeOf((*INode)(nil)).Elem() - rIRelationship = reflect.TypeOf((*IRelationship)(nil)).Elem() - rNode = reflect.TypeOf(Node{}) -) - -// Interface definitions (these match what's in internal/entity.go) -type IAbstract interface { - IsNode() - GetID() string - IsAbstract() - Implementers() []IAbstract -} - -type INode interface { - IsNode() - GetID() string -} - -type IRelationship interface { - IsRelationship() -} - -// Node struct (this matches what's in internal/entity.go) -type Node struct { - ID string `neo4j:"id"` -} - -// ImplementsAbstract checks if a type implements IAbstract -func (r *CodecRegistry) ImplementsAbstract(typ reflect.Type) bool { - return typ.Implements(rAbstract) -} - -// ImplementsINode checks if a type implements INode -func (r *CodecRegistry) ImplementsINode(typ reflect.Type) bool { - return typ.Implements(rINode) -} - -// ImplementsIRelationship checks if a type implements IRelationship -func (r *CodecRegistry) ImplementsIRelationship(typ reflect.Type) bool { - return typ.Implements(rIRelationship) -} - -// IsBaseNodeType checks if a type is the base Node type -func (r *CodecRegistry) IsBaseNodeType(typ reflect.Type) bool { - return typ == rNode -} diff --git a/vendor/github.com/rlch/neogo/internal/codec/registry.go b/vendor/github.com/rlch/neogo/internal/codec/registry.go deleted file mode 100644 index 03ccfde..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/registry.go +++ /dev/null @@ -1,357 +0,0 @@ -package codec - -import ( - "fmt" - "reflect" - "unsafe" -) - -// CodecRegistry manages type codecs with zero-reflection runtime. -// It is the SINGLE SOURCE OF TRUTH for all type metadata, schema, encoders, and decoders. -// -// # Reflection Boundaries -// -// This codec system distinguishes between two phases: -// -// REGISTRATION PHASE (heavy reflection OK - happens once at startup): -// - RegisterTypes, buildMetadata -// - ExtractNeo4jNodeMeta, ExtractRelationshipMeta -// - Compile, CompileDecoder -// -// HOT PATH (zero reflection - called per encode/decode operation): -// - Encode, EncodeValue, Decode -// - EncodeStruct, EncodeAny, all decoder.Decode methods -// -// LOOKUP (minimal reflection - cached, called once per type per operation): -// - GetEncoder, GetDecoder use getTypePtrFromValue which calls reflect.TypeOf -// - This is acceptable as lookup is O(1) after first call and results are cached -type CodecRegistry struct { - encoders map[TypePtr]*Encoder // typeptr -> encoder - decoders map[TypePtr]Decoder // typeptr -> decoder interface - metadata map[TypePtr]*TypeMetadata // typeptr -> metadata - compiler *Compiler // opcode compiler - - // Neo4j-specific metadata (single source of truth) - nodeMeta map[string]*Neo4jNodeMetadata // type name -> node metadata - relMeta map[string]*RelationshipStructMeta // type name -> relationship metadata -} - -// TypeMetadata contains pre-computed type information -type TypeMetadata struct { - Name string // Type name - FieldsMap map[string]string // Go field name -> DB field name - Labels []string // Neo4j labels (for nodes) - Relationships map[string]*RelationshipMeta // field -> relationship info -} - -// RelationshipMeta contains relationship metadata -type RelationshipMeta struct { - Many bool - Dir bool -} - -// Encoder contains pre-built opcode sequence for encoding -type Encoder struct { - opcodes *Opcode -} - -// NewCodecRegistry creates a new codec registry -func NewCodecRegistry() *CodecRegistry { - return &CodecRegistry{ - encoders: make(map[TypePtr]*Encoder), - decoders: make(map[TypePtr]Decoder), - metadata: make(map[TypePtr]*TypeMetadata), - compiler: NewCompiler(), - nodeMeta: make(map[string]*Neo4jNodeMetadata), - relMeta: make(map[string]*RelationshipStructMeta), - } -} - -// RegisterTypes generates codecs for the given types at registration time. -// REGISTRATION PHASE: Uses heavy reflection, should only be called at startup. -// This does ALL extraction in one pass - codec compilation AND Neo4j metadata. -func (r *CodecRegistry) RegisterTypes(types ...any) { - for _, t := range types { - typ := reflect.TypeOf(t) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - continue - } - - typePtr := getTypePtr(typ) - typeName := typ.Name() - - // Build type metadata - metadata := r.buildMetadata(typ) - r.metadata[typePtr] = metadata - - // Store type for lookup - r.StoreTypeForLookup(typ, metadata) - - // Build encoder opcode sequence - op, err := r.compiler.Compile(typ) - if err != nil { - panic(fmt.Errorf("failed to compile encoder for %s: %w", typeName, err)) - } - r.encoders[typePtr] = &Encoder{opcodes: op} - - // Build decoder - dec, err := r.compiler.CompileDecoder(typ) - if err != nil { - panic(fmt.Errorf("failed to compile decoder for %s: %w", typeName, err)) - } - r.decoders[typePtr] = dec - - // Extract Neo4j-specific metadata based on type - // Check if type implements INode - if r.implementsINode(typ) || r.implementsINode(reflect.PointerTo(typ)) { - nodeMeta, err := r.extractNeo4jNodeMetaFromType(typ) - if err != nil { - panic(fmt.Errorf("failed to extract Neo4j node metadata for %s: %w", typeName, err)) - } - r.nodeMeta[typeName] = nodeMeta - } - - // Check if type implements IRelationship - if r.implementsIRelationship(typ) || r.implementsIRelationship(reflect.PointerTo(typ)) { - relMeta, err := r.extractRelationshipMetaFromType(typ) - if err != nil { - panic(fmt.Errorf("failed to extract relationship metadata for %s: %w", typeName, err)) - } - r.relMeta[typeName] = relMeta - } - } -} - -// buildMetadata extracts type metadata. -// REGISTRATION PHASE: Uses reflection, called only during RegisterTypes. -func (r *CodecRegistry) buildMetadata(typ reflect.Type) *TypeMetadata { - metadata := &TypeMetadata{ - Name: typ.Name(), - FieldsMap: make(map[string]string), - Labels: []string{}, - Relationships: make(map[string]*RelationshipMeta), - } - - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - fieldInfo := parseFieldInfo(field) - - if fieldInfo.IsSkip { - continue - } - - metadata.FieldsMap[field.Name] = fieldInfo.DBName - } - - return metadata -} - -// GetEncoder returns encoder for a value -// Note: This is a fast path that uses cached encoders. The cache key lookup -// uses getTypePtrFromValue which calls reflect.TypeOf(). This is acceptable -// because encoder lookup is only called once per Encode() operation, and the -// same type will typically be encoded multiple times (benefiting from caching). -func (r *CodecRegistry) GetEncoder(v any) *Encoder { - // First try the fast path with a reflection-free type pointer - // (getTypePtrFromValue uses reflect but is cached by encoder lookup) - typePtr := getTypePtrFromValue(v) - if enc, ok := r.encoders[typePtr]; ok { - return enc - } - - // Lazy compilation (Slow path) - we need reflection to compile anyway - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - op, err := r.compiler.Compile(typ) - if err != nil { - return nil - } - enc := &Encoder{opcodes: op} - r.encoders[typePtr] = enc - return enc -} - -// GetDecoder returns decoder for a type -// Note: Like GetEncoder, this uses reflection for lookup which is acceptable -// as it's only called once per Decode() operation and benefits from caching. -func (r *CodecRegistry) GetDecoder(v any) Decoder { - typePtr := getTypePtrFromValue(v) - if dec, ok := r.decoders[typePtr]; ok { - return dec - } - - // Lazy compilation (Slow path) - we need reflection to compile anyway - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - dec, err := r.compiler.CompileDecoder(typ) - if err != nil { - return nil - } - r.decoders[typePtr] = dec - return dec -} - -// Encode converts struct to map[string]any. -// HOT PATH: Zero reflection after initial lookup. -func (r *CodecRegistry) Encode(v any) (map[string]any, error) { - encoder := r.GetEncoder(v) - if encoder == nil { - return nil, ErrTypeNotRegistered - } - - structPtr := getValuePtr(v) - return EncodeStruct(encoder.opcodes, structPtr) -} - -// EncodeValue encodes any value using opcodes. -// HOT PATH: Zero reflection after initial lookup. -func (r *CodecRegistry) EncodeValue(v any) (any, error) { - encoder := r.GetEncoder(v) - if encoder == nil { - return nil, ErrTypeNotRegistered - } - - ptr := getValuePtr(v) - return EncodeAny(encoder.opcodes, ptr) -} - -// Decode converts map/Node to struct. -// HOT PATH: Zero reflection after initial lookup. -func (r *CodecRegistry) Decode(data any, v any) error { - decoder := r.GetDecoder(v) - if decoder == nil { - return ErrTypeNotRegistered - } - - structPtr := getValuePtr(v) - return decoder.Decode(data, structPtr) -} - -// DecodeMultiple decodes n values into a slice target. -// The slicePtr must be a pointer to a slice (e.g., *[]Person). -// This is used for batch decoding multiple records into a slice binding. -// HOT PATH: Uses pre-compiled decoders and allocators. -func (r *CodecRegistry) DecodeMultiple(values []any, slicePtr any) error { - n := len(values) - if n == 0 { - return nil - } - - decoder := r.GetDecoder(slicePtr) - if decoder == nil { - return ErrTypeNotRegistered - } - - // Get the slice decoder to access its allocator and element decoder - sliceDec, ok := decoder.(*sliceDecoder) - if !ok { - return fmt.Errorf("DecodeMultiple requires slice type, got decoder %T", decoder) - } - - // Allocate slice using pre-compiled allocator (ZERO reflection) - dataPtr, _, capacity := sliceDec.allocate(n) - - // Get the slice header from the target - targetPtr := getValuePtr(slicePtr) - header := (*sliceHeader)(targetPtr) - header.Data = dataPtr - header.Len = n - header.Cap = capacity - - // Decode each value into the slice elements - for i := 0; i < n; i++ { - if values[i] == nil { - continue // Leave as zero value - } - elemPtr := unsafe.Pointer(uintptr(dataPtr) + uintptr(i)*sliceDec.elemSize) - if err := sliceDec.elemDecoder.Decode(values[i], elemPtr); err != nil { - return fmt.Errorf("index %d: %w", i, err) - } - } - - return nil -} - -// GetTypeMetadata returns pre-computed type metadata. -// LOOKUP: Uses getTypePtrFromValue (reflect.TypeOf) for cache key. -func (r *CodecRegistry) GetTypeMetadata(v any) *TypeMetadata { - typePtr := getTypePtrFromValue(v) - return r.metadata[typePtr] -} - -// GetByTypeName returns type metadata by name -func (r *CodecRegistry) GetByTypeName(name string) *TypeMetadata { - for _, meta := range r.metadata { - if meta.Name == name { - return meta - } - } - return nil -} - -// Store type registry for type lookup -type typeRegistryEntry struct { - Type reflect.Type - Meta *TypeMetadata -} - -var registeredTypes = make(map[string]*typeRegistryEntry) - -func (r *CodecRegistry) StoreTypeForLookup(typ reflect.Type, meta *TypeMetadata) { - registeredTypes[meta.Name] = &typeRegistryEntry{ - Type: typ, - Meta: meta, - } -} - -func (r *CodecRegistry) GetTypeByNameLookup(name string) reflect.Type { - if entry, ok := registeredTypes[name]; ok { - return entry.Type - } - return nil -} - -// GetNodeMeta returns cached Neo4j node metadata by type name. -// Returns nil if the type was not registered or is not a node. -func (r *CodecRegistry) GetNodeMeta(name string) *Neo4jNodeMetadata { - return r.nodeMeta[name] -} - -// StoreNodeMeta stores Neo4j node metadata by type name. -// This is used for lazy registration when types are registered individually. -func (r *CodecRegistry) StoreNodeMeta(name string, meta *Neo4jNodeMetadata) { - r.nodeMeta[name] = meta -} - -// GetRelMeta returns cached relationship metadata by type name. -// Returns nil if the type was not registered or is not a relationship. -func (r *CodecRegistry) GetRelMeta(name string) *RelationshipStructMeta { - return r.relMeta[name] -} - -// StoreRelMeta stores relationship metadata by type name. -// This is used for lazy registration when types are registered individually. -func (r *CodecRegistry) StoreRelMeta(name string, meta *RelationshipStructMeta) { - r.relMeta[name] = meta -} - -var ( - ErrTypeNotRegistered = &CodecError{Message: "type not registered"} -) - -type CodecError struct { - Message string -} - -func (e *CodecError) Error() string { - return e.Message -} \ No newline at end of file diff --git a/vendor/github.com/rlch/neogo/internal/codec/relationship_extractor.go b/vendor/github.com/rlch/neogo/internal/codec/relationship_extractor.go deleted file mode 100644 index b20844d..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/relationship_extractor.go +++ /dev/null @@ -1,159 +0,0 @@ -package codec - -import ( - "fmt" - "reflect" - "strings" -) - -// RelationshipStructMeta contains metadata extracted from a relationship struct -type RelationshipStructMeta struct { - Name string - Type string // Relationship type from db tag - StartNode *NodeFieldMeta - EndNode *NodeFieldMeta - Schema *SchemaMeta // Aggregated schema (indexes + constraints) - RType reflect.Type // Stored reflect.Type for delegation -} - -// ReflectType returns the reflect.Type for this relationship -func (m *RelationshipStructMeta) ReflectType() reflect.Type { - return m.RType -} - -// NodeFieldMeta contains metadata about a node field in a relationship -type NodeFieldMeta struct { - FieldName string - NodeType reflect.Type -} - -// ExtractRelationshipMeta extracts relationship metadata from a struct type. -// REGISTRATION PHASE: Uses heavy reflection, called only during type registration. -// Deprecated: Use extractRelationshipMetaFromType for new code. -func (r *CodecRegistry) ExtractRelationshipMeta(v any) (*RelationshipStructMeta, error) { - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - return r.extractRelationshipMetaFromType(typ) -} - -// extractRelationshipMetaFromType extracts relationship metadata from a reflect.Type. -// This is the internal method that does all the work, including schema aggregation. -// REGISTRATION PHASE: Uses heavy reflection, called only during type registration. -func (r *CodecRegistry) extractRelationshipMetaFromType(typ reflect.Type) (*RelationshipStructMeta, error) { - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected struct, got %s", typ.Kind()) - } - - meta := &RelationshipStructMeta{ - Name: typ.Name(), - RType: typ, - } - - // Collect field schema info for aggregation - var fieldSchemas []FieldSchemaInfo - - // Walk through struct fields to extract metadata - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - - // Parse field info for schema - fieldInfo := parseFieldInfo(field) - - // Parse neo4j tag - neo4jTag := field.Tag.Get("neo4j") - if neo4jTag == "" { - continue - } - - parts := strings.Split(neo4jTag, ",") - if len(parts) == 0 { - continue - } - - tagValue := strings.TrimSpace(parts[0]) - switch tagValue { - case "startNode": - if meta.StartNode != nil { - return nil, fmt.Errorf("relationship %s has multiple startNode fields", meta.Name) - } - nodeType := field.Type - if nodeType.Kind() != reflect.Ptr { - return nil, fmt.Errorf("expected pointer to struct for startNode field %s.%s", meta.Name, field.Name) - } - meta.StartNode = &NodeFieldMeta{ - FieldName: field.Name, - NodeType: nodeType, - } - - case "endNode": - if meta.EndNode != nil { - return nil, fmt.Errorf("relationship %s has multiple endNode fields", meta.Name) - } - nodeType := field.Type - if nodeType.Kind() != reflect.Ptr { - return nil, fmt.Errorf("expected pointer to struct for endNode field %s.%s", meta.Name, field.Name) - } - meta.EndNode = &NodeFieldMeta{ - FieldName: field.Name, - NodeType: nodeType, - } - - default: - // Only embedded Relationship struct's tag defines the relationship type - // Other fields with neo4j tags are property fields - if field.Anonymous && field.Type.Name() == "Relationship" { - if meta.Type != "" { - return nil, fmt.Errorf("relationship %s has multiple type definitions", meta.Name) - } - meta.Type = tagValue - } else if !field.Anonymous && !fieldInfo.IsSkip { - // Collect schema info for property fields - if fieldInfo.Index != nil || fieldInfo.Constraint != nil { - fieldSchemas = append(fieldSchemas, FieldSchemaInfo{ - DBName: fieldInfo.DBName, - Index: fieldInfo.Index, - Constraint: fieldInfo.Constraint, - }) - } - } - } - } - - // Validate required fields - only type is required, startNode/endNode are optional - if meta.Type == "" { - return nil, fmt.Errorf("relationship %s missing type definition in neo4j tag", meta.Name) - } - - // Aggregate schema using relationship type as label - meta.Schema = &SchemaMeta{ - TypeName: meta.Name, - RelType: meta.Type, - IsNode: false, - Indexes: AggregateIndexes(meta.Type, false, fieldSchemas), - Constraints: AggregateConstraints(meta.Type, false, fieldSchemas), - } - - return meta, nil -} - -// CreateNodeInstance creates a new instance of a node type for registration -// This is used to trigger node registration from relationship registration -func (r *CodecRegistry) CreateNodeInstance(nodeType reflect.Type) (any, error) { - if nodeType.Kind() != reflect.Ptr { - return nil, fmt.Errorf("expected pointer type, got %s", nodeType.Kind()) - } - - elemType := nodeType.Elem() - if elemType.Kind() != reflect.Struct { - return nil, fmt.Errorf("expected pointer to struct, got pointer to %s", elemType.Kind()) - } - - // Create new instance - instance := reflect.New(elemType).Interface() - return instance, nil -} diff --git a/vendor/github.com/rlch/neogo/internal/codec/schema.go b/vendor/github.com/rlch/neogo/internal/codec/schema.go deleted file mode 100644 index 2fd6b60..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/schema.go +++ /dev/null @@ -1,558 +0,0 @@ -package codec - -import ( - "fmt" - "sort" - "strconv" - "strings" -) - -// IndexType represents Neo4j index types -type IndexType string - -const ( - IndexTypeRange IndexType = "RANGE" - IndexTypeText IndexType = "TEXT" - IndexTypePoint IndexType = "POINT" - IndexTypeFulltext IndexType = "FULLTEXT" - IndexTypeVector IndexType = "VECTOR" -) - -// ConstraintType represents Neo4j constraint types -type ConstraintType string - -const ( - ConstraintTypeUnique ConstraintType = "UNIQUE" - ConstraintTypeNodeKey ConstraintType = "NODE_KEY" - ConstraintTypeNotNull ConstraintType = "NOT_NULL" -) - -// IndexSpec contains index specification parsed from a field tag -type IndexSpec struct { - Name string // Empty = auto-generate - Type IndexType // Default = RANGE - Priority int // For composite indexes (default 10) - Options map[string]string // Type-specific options (e.g., dimensions, similarity) -} - -// ConstraintSpec contains constraint specification parsed from a field tag -type ConstraintSpec struct { - Name string // Empty = auto-generate - Type ConstraintType // UNIQUE, NODE_KEY, NOT_NULL - Priority int // For composite constraints (e.g., nodeKey) -} - -// IndexDef represents a complete index definition (aggregated from fields) -type IndexDef struct { - Name string // Auto-generated or explicit - Type IndexType // RANGE, TEXT, POINT, FULLTEXT, VECTOR - Label string // Node label or relationship type - IsNode bool // true for node index, false for relationship index - Properties []IndexProperty // Ordered by priority - Options map[string]string // Type-specific options -} - -// IndexProperty represents a property within an index -type IndexProperty struct { - Name string // DB property name - Priority int // For composite index ordering -} - -// ConstraintDef represents a complete constraint definition (aggregated from fields) -type ConstraintDef struct { - Name string // Auto-generated or explicit - Type ConstraintType // UNIQUE, NODE_KEY, NOT_NULL - Label string // Node label or relationship type - IsNode bool // true for node constraint, false for relationship constraint - Properties []string // Property names (ordered by priority for composites) -} - -// SchemaMeta holds all schema metadata for a registered type -type SchemaMeta struct { - TypeName string // Go type name - Labels []string // Neo4j labels (for nodes) - RelType string // Relationship type (for relationships) - IsNode bool // true for node, false for relationship - Indexes []IndexDef // Aggregated indexes - Constraints []ConstraintDef // Aggregated constraints -} - -// parseIndexSpec parses index-related options from a tag option string. -// Formats supported: -// - "index" -> Range index, auto-name -// - "index:name" -> Range index with explicit name -// - "index:text" -> Text index, auto-name -// - "index:name:text" -> Text index with explicit name -// - "fulltext" -> Fulltext index, auto-name -// - "fulltext:name" -> Fulltext index with explicit name -// - "vector:1536" -> Vector index with dimensions -// - "vector:1536:cosine" -> Vector index with dimensions and similarity -// - "vector:name:1536:cosine" -> Vector index with name, dimensions, similarity -func parseIndexSpec(option string) *IndexSpec { - spec := &IndexSpec{ - Type: IndexTypeRange, - Priority: 10, // Default priority - Options: make(map[string]string), - } - - // Handle different index tag formats - switch { - case option == "index": - // Simple range index - return spec - - case strings.HasPrefix(option, "index:"): - parts := strings.Split(strings.TrimPrefix(option, "index:"), ":") - return parseIndexParts(spec, parts) - - case option == "fulltext": - spec.Type = IndexTypeFulltext - return spec - - case strings.HasPrefix(option, "fulltext:"): - spec.Type = IndexTypeFulltext - spec.Name = strings.TrimPrefix(option, "fulltext:") - return spec - - case strings.HasPrefix(option, "vector:"): - spec.Type = IndexTypeVector - parts := strings.Split(strings.TrimPrefix(option, "vector:"), ":") - return parseVectorParts(spec, parts) - - case strings.HasPrefix(option, "text:"): - spec.Type = IndexTypeText - spec.Name = strings.TrimPrefix(option, "text:") - return spec - - case option == "text": - spec.Type = IndexTypeText - return spec - - case strings.HasPrefix(option, "point:"): - spec.Type = IndexTypePoint - spec.Name = strings.TrimPrefix(option, "point:") - return spec - - case option == "point": - spec.Type = IndexTypePoint - return spec - } - - return nil -} - -// parseIndexParts handles index:name or index:name:type or index:type formats -func parseIndexParts(spec *IndexSpec, parts []string) *IndexSpec { - if len(parts) == 0 { - return spec - } - - // Check if first part is a type - if idxType := parseIndexType(parts[0]); idxType != "" { - spec.Type = idxType - if len(parts) > 1 { - spec.Name = parts[1] - } - return spec - } - - // First part is a name - spec.Name = parts[0] - if len(parts) > 1 { - if idxType := parseIndexType(parts[1]); idxType != "" { - spec.Type = idxType - } - } - - return spec -} - -// parseIndexType converts a string to IndexType if valid -func parseIndexType(s string) IndexType { - switch strings.ToLower(s) { - case "range": - return IndexTypeRange - case "text": - return IndexTypeText - case "point": - return IndexTypePoint - case "fulltext": - return IndexTypeFulltext - case "vector": - return IndexTypeVector - } - return "" -} - -// parseVectorParts handles vector:dims or vector:dims:similarity or vector:name:dims:similarity -func parseVectorParts(spec *IndexSpec, parts []string) *IndexSpec { - if len(parts) == 0 { - return spec - } - - // Try to parse first part as dimensions - if dims, err := strconv.Atoi(parts[0]); err == nil { - spec.Options["dimensions"] = strconv.Itoa(dims) - if len(parts) > 1 { - spec.Options["similarity"] = parts[1] - } - return spec - } - - // First part is a name - spec.Name = parts[0] - if len(parts) > 1 { - if dims, err := strconv.Atoi(parts[1]); err == nil { - spec.Options["dimensions"] = strconv.Itoa(dims) - } - } - if len(parts) > 2 { - spec.Options["similarity"] = parts[2] - } - - return spec -} - -// parseConstraintSpec parses constraint-related options from a tag option string. -// Formats supported: -// - "unique" -> Unique constraint, auto-name -// - "unique:name" -> Unique constraint with explicit name -// - "notNull" -> Not null constraint, auto-name -// - "notNull:name" -> Not null constraint with explicit name -// - "nodeKey:name" -> Node key constraint (must have name for composite) -func parseConstraintSpec(option string) *ConstraintSpec { - spec := &ConstraintSpec{ - Priority: 10, // Default priority - } - - switch { - case option == "unique": - spec.Type = ConstraintTypeUnique - return spec - - case strings.HasPrefix(option, "unique:"): - spec.Type = ConstraintTypeUnique - spec.Name = strings.TrimPrefix(option, "unique:") - return spec - - case option == "notNull" || option == "notnull" || option == "not_null": - spec.Type = ConstraintTypeNotNull - return spec - - case strings.HasPrefix(option, "notNull:") || strings.HasPrefix(option, "notnull:") || strings.HasPrefix(option, "not_null:"): - spec.Type = ConstraintTypeNotNull - // Handle all variants - for _, prefix := range []string{"notNull:", "notnull:", "not_null:"} { - if strings.HasPrefix(option, prefix) { - spec.Name = strings.TrimPrefix(option, prefix) - break - } - } - return spec - - case strings.HasPrefix(option, "nodeKey:") || strings.HasPrefix(option, "nodekey:") || strings.HasPrefix(option, "node_key:"): - spec.Type = ConstraintTypeNodeKey - // Handle all variants - for _, prefix := range []string{"nodeKey:", "nodekey:", "node_key:"} { - if strings.HasPrefix(option, prefix) { - spec.Name = strings.TrimPrefix(option, prefix) - break - } - } - return spec - } - - return nil -} - -// parsePriority extracts priority value from a "priority:N" option -func parsePriority(option string) (int, bool) { - if strings.HasPrefix(option, "priority:") { - if p, err := strconv.Atoi(strings.TrimPrefix(option, "priority:")); err == nil { - return p, true - } - } - return 0, false -} - -// GenerateIndexName generates an auto-name for an index -func GenerateIndexName(idxType IndexType, labelOrType string, properties []string) string { - propStr := strings.Join(properties, "_") - - switch idxType { - case IndexTypeRange: - return fmt.Sprintf("idx_%s_%s", labelOrType, propStr) - case IndexTypeText: - return fmt.Sprintf("text_%s_%s", labelOrType, propStr) - case IndexTypePoint: - return fmt.Sprintf("point_%s_%s", labelOrType, propStr) - case IndexTypeFulltext: - return fmt.Sprintf("fulltext_%s_%s", labelOrType, propStr) - case IndexTypeVector: - return fmt.Sprintf("vector_%s_%s", labelOrType, propStr) - default: - return fmt.Sprintf("idx_%s_%s", labelOrType, propStr) - } -} - -// GenerateConstraintName generates an auto-name for a constraint -func GenerateConstraintName(conType ConstraintType, labelOrType string, properties []string) string { - propStr := strings.Join(properties, "_") - - switch conType { - case ConstraintTypeUnique: - return fmt.Sprintf("unique_%s_%s", labelOrType, propStr) - case ConstraintTypeNotNull: - return fmt.Sprintf("notnull_%s_%s", labelOrType, propStr) - case ConstraintTypeNodeKey: - return fmt.Sprintf("nodekey_%s_%s", labelOrType, propStr) - default: - return fmt.Sprintf("constraint_%s_%s", labelOrType, propStr) - } -} - -// GenerateIndexCypher generates the CREATE INDEX Cypher statement -func (idx *IndexDef) GenerateIndexCypher() string { - if len(idx.Properties) == 0 { - return "" - } - - // Build property list - var props []string - for _, p := range idx.Properties { - if idx.IsNode { - props = append(props, fmt.Sprintf("n.%s", p.Name)) - } else { - props = append(props, fmt.Sprintf("r.%s", p.Name)) - } - } - - var pattern string - if idx.IsNode { - pattern = fmt.Sprintf("(n:%s)", idx.Label) - } else { - pattern = fmt.Sprintf("()-[r:%s]-()", idx.Label) - } - - switch idx.Type { - case IndexTypeRange: - return fmt.Sprintf("CREATE INDEX %s IF NOT EXISTS FOR %s ON (%s)", - idx.Name, pattern, strings.Join(props, ", ")) - - case IndexTypeText: - return fmt.Sprintf("CREATE TEXT INDEX %s IF NOT EXISTS FOR %s ON (%s)", - idx.Name, pattern, strings.Join(props, ", ")) - - case IndexTypePoint: - return fmt.Sprintf("CREATE POINT INDEX %s IF NOT EXISTS FOR %s ON (%s)", - idx.Name, pattern, strings.Join(props, ", ")) - - case IndexTypeFulltext: - // Fulltext uses different syntax: ON EACH [props] - var eachProps []string - for _, p := range idx.Properties { - if idx.IsNode { - eachProps = append(eachProps, fmt.Sprintf("n.%s", p.Name)) - } else { - eachProps = append(eachProps, fmt.Sprintf("r.%s", p.Name)) - } - } - return fmt.Sprintf("CREATE FULLTEXT INDEX %s IF NOT EXISTS FOR %s ON EACH [%s]", - idx.Name, pattern, strings.Join(eachProps, ", ")) - - case IndexTypeVector: - // Vector index requires OPTIONS - dims := idx.Options["dimensions"] - if dims == "" { - dims = "1536" // Default - } - similarity := idx.Options["similarity"] - if similarity == "" { - similarity = "cosine" // Default - } - return fmt.Sprintf("CREATE VECTOR INDEX %s IF NOT EXISTS FOR %s ON (%s) OPTIONS {indexConfig: {`vector.dimensions`: %s, `vector.similarity_function`: '%s'}}", - idx.Name, pattern, props[0], dims, similarity) - } - - return "" -} - -// GenerateConstraintCypher generates the CREATE CONSTRAINT Cypher statement -func (c *ConstraintDef) GenerateConstraintCypher() string { - if len(c.Properties) == 0 { - return "" - } - - var pattern string - var propRefs []string - - if c.IsNode { - pattern = fmt.Sprintf("(n:%s)", c.Label) - for _, p := range c.Properties { - propRefs = append(propRefs, fmt.Sprintf("n.%s", p)) - } - } else { - pattern = fmt.Sprintf("()-[r:%s]-()", c.Label) - for _, p := range c.Properties { - propRefs = append(propRefs, fmt.Sprintf("r.%s", p)) - } - } - - switch c.Type { - case ConstraintTypeUnique: - if len(c.Properties) == 1 { - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE %s IS UNIQUE", - c.Name, pattern, propRefs[0]) - } - // Composite unique - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE (%s) IS UNIQUE", - c.Name, pattern, strings.Join(propRefs, ", ")) - - case ConstraintTypeNotNull: - // NOT NULL is per-property, so generate one for each (though typically single) - if len(c.Properties) == 1 { - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE %s IS NOT NULL", - c.Name, pattern, propRefs[0]) - } - // Multiple properties - generate combined (requires all) - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE (%s) IS NOT NULL", - c.Name, pattern, strings.Join(propRefs, ", ")) - - case ConstraintTypeNodeKey: - // Node key is always wrapped in parentheses - return fmt.Sprintf("CREATE CONSTRAINT %s IF NOT EXISTS FOR %s REQUIRE (%s) IS NODE KEY", - c.Name, pattern, strings.Join(propRefs, ", ")) - } - - return "" -} - -// AggregateIndexes collects field-level index specs into complete IndexDefs. -// Groups by index name for composite indexes and sorts properties by priority. -func AggregateIndexes(labelOrType string, isNode bool, fields []FieldSchemaInfo) []IndexDef { - indexesByName := make(map[string]*IndexDef) - var indexOrder []string // Preserve insertion order - - for _, f := range fields { - if f.Index == nil { - continue - } - - spec := f.Index - name := spec.Name - if name == "" { - // Auto-generate name for non-composite indexes - name = GenerateIndexName(spec.Type, labelOrType, []string{f.DBName}) - } - - existing, found := indexesByName[name] - if !found { - existing = &IndexDef{ - Name: name, - Type: spec.Type, - Label: labelOrType, - IsNode: isNode, - Properties: []IndexProperty{}, - Options: spec.Options, - } - indexesByName[name] = existing - indexOrder = append(indexOrder, name) - } - - // Add property with priority - existing.Properties = append(existing.Properties, IndexProperty{ - Name: f.DBName, - Priority: spec.Priority, - }) - } - - // Sort properties by priority within each index - for _, idx := range indexesByName { - sort.Slice(idx.Properties, func(i, j int) bool { - return idx.Properties[i].Priority < idx.Properties[j].Priority - }) - } - - // Build result in insertion order - result := make([]IndexDef, 0, len(indexOrder)) - for _, name := range indexOrder { - result = append(result, *indexesByName[name]) - } - - return result -} - -// AggregateConstraints collects field-level constraint specs into complete ConstraintDefs. -// Groups by constraint name for composite constraints (like nodeKey) and sorts by priority. -func AggregateConstraints(labelOrType string, isNode bool, fields []FieldSchemaInfo) []ConstraintDef { - constraintsByName := make(map[string]*constraintBuilder) - var constraintOrder []string // Preserve insertion order - - for _, f := range fields { - if f.Constraint == nil { - continue - } - - spec := f.Constraint - name := spec.Name - if name == "" { - // Auto-generate name for non-composite constraints - name = GenerateConstraintName(spec.Type, labelOrType, []string{f.DBName}) - } - - existing, found := constraintsByName[name] - if !found { - existing = &constraintBuilder{ - def: ConstraintDef{ - Name: name, - Type: spec.Type, - Label: labelOrType, - IsNode: isNode, - }, - } - constraintsByName[name] = existing - constraintOrder = append(constraintOrder, name) - } - - // Add property with priority - existing.props = append(existing.props, propWithPriority{ - name: f.DBName, - priority: spec.Priority, - }) - } - - // Sort properties by priority and build result - result := make([]ConstraintDef, 0, len(constraintOrder)) - for _, name := range constraintOrder { - builder := constraintsByName[name] - sort.Slice(builder.props, func(i, j int) bool { - return builder.props[i].priority < builder.props[j].priority - }) - - // Extract property names in sorted order - for _, p := range builder.props { - builder.def.Properties = append(builder.def.Properties, p.name) - } - result = append(result, builder.def) - } - - return result -} - -// Helper types for aggregation -type constraintBuilder struct { - def ConstraintDef - props []propWithPriority -} - -type propWithPriority struct { - name string - priority int -} - -// FieldSchemaInfo is a minimal struct for aggregation input -type FieldSchemaInfo struct { - DBName string - Index *IndexSpec - Constraint *ConstraintSpec -} diff --git a/vendor/github.com/rlch/neogo/internal/codec/tags.go b/vendor/github.com/rlch/neogo/internal/codec/tags.go deleted file mode 100644 index c8d60e1..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/tags.go +++ /dev/null @@ -1,179 +0,0 @@ -package codec - -import ( - "reflect" - "strings" -) - -// FieldInfo contains parsed information about a struct field -type FieldInfo struct { - Name string // Go field name - DBName string // Database field name (from neo4j tag or derived) - Meta FieldMeta // Pre-computed field metadata - Options []string // Additional options from neo4j tag - IsSkip bool // Field should be skipped (neo4j:"-") - IsCustom bool // Has custom codec - IsEmbed bool // Embedded struct - Codec string // Name of custom codec - - // Schema metadata - Index *IndexSpec // Index specification (nil if no index) - Constraint *ConstraintSpec // Constraint specification (nil if no constraint) -} - -// parseNeo4jTag parses a neo4j struct tag -// Format: `neo4j:"field_name,option1,option2:value,option3"` -// Returns field name and options -func parseNeo4jTag(tag string) (string, []string) { - if tag == "" { - return "", nil - } - - parts := strings.Split(tag, ",") - if len(parts) == 0 { - return "", nil - } - - fieldName := strings.TrimSpace(parts[0]) - if fieldName == "-" { - return "", []string{"skip"} - } - - var options []string - if len(parts) > 1 { - for _, part := range parts[1:] { - option := strings.TrimSpace(part) - if option != "" { - options = append(options, option) - } - } - } - - return fieldName, options -} - -// parseFieldInfo extracts field information from a reflect.StructField -func parseFieldInfo(field reflect.StructField) *FieldInfo { - info := &FieldInfo{ - Name: field.Name, - Meta: extractFieldMeta(field), - } - - // Skip One[R] and Many[R] relationship wrapper types - they're not serializable fields - fieldTypeName := field.Type.Name() - if strings.HasPrefix(fieldTypeName, "One[") || strings.HasPrefix(fieldTypeName, "Many[") { - info.IsSkip = true - return info - } - - // Parse neo4j tag - neo4jTag := field.Tag.Get("neo4j") - dbName, options := parseNeo4jTag(neo4jTag) - - // Skip relationship direction markers (shorthand syntax) - if strings.HasSuffix(dbName, ">") || strings.HasPrefix(dbName, "<") { - info.IsSkip = true - return info - } - if dbName == "->" || dbName == "<-" { - info.IsSkip = true - return info - } - - if dbName == "" { - // If no neo4j tag, use field name converted to snake_case - dbName = toSnakeCase(field.Name) - } - - info.DBName = dbName - info.Options = options - - // Process options - for _, option := range options { - switch { - case option == "skip": - info.IsSkip = true - case option == "embed": - info.IsEmbed = true - case strings.HasPrefix(option, "codec:"): - info.IsCustom = true - info.Codec = strings.TrimPrefix(option, "codec:") - - // Index options - case option == "index" || - strings.HasPrefix(option, "index:") || - option == "fulltext" || - strings.HasPrefix(option, "fulltext:") || - option == "text" || - strings.HasPrefix(option, "text:") || - option == "point" || - strings.HasPrefix(option, "point:") || - strings.HasPrefix(option, "vector:"): - info.Index = parseIndexSpec(option) - - // Constraint options - case option == "unique" || - strings.HasPrefix(option, "unique:") || - option == "notNull" || option == "notnull" || option == "not_null" || - strings.HasPrefix(option, "notNull:") || strings.HasPrefix(option, "notnull:") || strings.HasPrefix(option, "not_null:") || - strings.HasPrefix(option, "nodeKey:") || strings.HasPrefix(option, "nodekey:") || strings.HasPrefix(option, "node_key:"): - info.Constraint = parseConstraintSpec(option) - - // Priority (applies to both index and constraint) - case strings.HasPrefix(option, "priority:"): - if p, ok := parsePriority(option); ok { - if info.Index != nil { - info.Index.Priority = p - } - if info.Constraint != nil { - info.Constraint.Priority = p - } - } - } - } - - // Apply priority after all options are parsed (in case priority comes before index/constraint) - for _, option := range options { - if p, ok := parsePriority(option); ok { - if info.Index != nil { - info.Index.Priority = p - } - if info.Constraint != nil { - info.Constraint.Priority = p - } - } - } - - // Anonymous (embedded) struct fields should be treated as embedded - // even without explicit ",embed" tag. This handles cases like: - // type Human struct { BaseOrganism `neo4j:"Human"` } - // where the tag specifies a Neo4j label but the field is still embedded in Go. - if field.Anonymous && UnwindType(field.Type).Kind() == reflect.Struct { - info.IsEmbed = true - } - - return info -} - -// ParseFieldInfoExported is an exported version of parseFieldInfo for testing. -func ParseFieldInfoExported(field reflect.StructField) *FieldInfo { - return parseFieldInfo(field) -} - -// toSnakeCase converts CamelCase to snake_case -func toSnakeCase(s string) string { - var result strings.Builder - - for i, r := range s { - if i > 0 && (r >= 'A' && r <= 'Z') { - result.WriteByte('_') - } - if r >= 'A' && r <= 'Z' { - result.WriteRune(r - 'A' + 'a') - } else { - result.WriteRune(r) - } - } - - return result.String() -} diff --git a/vendor/github.com/rlch/neogo/internal/codec/typeptr.go b/vendor/github.com/rlch/neogo/internal/codec/typeptr.go deleted file mode 100644 index 75e54eb..0000000 --- a/vendor/github.com/rlch/neogo/internal/codec/typeptr.go +++ /dev/null @@ -1,436 +0,0 @@ -package codec - -import ( - "reflect" - "unsafe" -) - -// sliceHeader represents the runtime structure of a slice -type sliceHeader struct { - Data unsafe.Pointer - Len int - Cap int -} - -// emptyInterface represents the internal structure of interface{} -type emptyInterface struct { - typ unsafe.Pointer - ptr unsafe.Pointer -} - -// TypePtr represents a unique identifier for a Go type -type TypePtr uintptr - -// getTypePtr extracts the type pointer from a reflect.Type -func getTypePtr(t reflect.Type) TypePtr { - return TypePtr(uintptr((*emptyInterface)(unsafe.Pointer(&t)).ptr)) -} - -// getTypePtrFromValue extracts the type pointer directly from a value by computing -// the reflect.Type and using getTypePtr for consistency. -// This ensures that RegisterTypes(T{}) and GetTypeMetadata(&T{}) use the same key. -// -// BUG FIX: Previously this used iface.typ directly, which is the pointer type when -// v is *T (e.g., &Company{}). Now we use reflect.TypeOf to get the actual type, -// then normalize via getTypePtr to match RegisterTypes behavior. -func getTypePtrFromValue(v any) TypePtr { - typ := reflect.TypeOf(v) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - return getTypePtr(typ) -} - -// getValuePtr extracts the value pointer from interface{} -func getValuePtr(v any) unsafe.Pointer { - iface := (*emptyInterface)(unsafe.Pointer(&v)) - return iface.ptr -} - -// getInterfaceValue extracts the interface{} value directly from memory -// without using reflect.NewAt (zero reflection). -// This is used for OpFieldInterface encoding to avoid reflect overhead. -func getInterfaceValue(ptr unsafe.Pointer) any { - return *(*any)(ptr) -} - -// FieldMeta contains pre-computed field metadata (no reflect.Type needed) -type FieldMeta struct { - Offset uintptr // Memory offset in struct - Size uintptr // Field size in bytes - Kind Kind // Type kind - Type reflect.Type // Go type -} - -// Kind represents Go type kinds (avoiding reflect.Kind) -type Kind uint8 - -const ( - KindBool Kind = iota - KindInt - KindInt8 - KindInt16 - KindInt32 - KindInt64 - KindUint - KindUint8 - KindUint16 - KindUint32 - KindUint64 - KindFloat32 - KindFloat64 - KindString - KindBytes - KindSlice - KindMap - KindStruct - KindInterface - KindPtr -) - -// getKind converts reflect.Kind to our Kind -func getKind(rk reflect.Kind) Kind { - switch rk { - case reflect.Bool: - return KindBool - case reflect.Int: - return KindInt - case reflect.Int8: - return KindInt8 - case reflect.Int16: - return KindInt16 - case reflect.Int32: - return KindInt32 - case reflect.Int64: - return KindInt64 - case reflect.Uint: - return KindUint - case reflect.Uint8: - return KindUint8 - case reflect.Uint16: - return KindUint16 - case reflect.Uint32: - return KindUint32 - case reflect.Uint64: - return KindUint64 - case reflect.Float32: - return KindFloat32 - case reflect.Float64: - return KindFloat64 - case reflect.String: - return KindString - case reflect.Slice: - // Note: Special case for []byte is handled during compilation (compileSlice in compiler.go) - // For Kind extraction, we just return KindSlice - the element type check happens elsewhere - return KindSlice - case reflect.Map: - return KindMap - case reflect.Struct: - return KindStruct - case reflect.Interface: - return KindInterface - case reflect.Ptr: - return KindPtr - default: - return KindInterface - } -} - -// extractFieldMeta extracts field metadata from reflect.StructField -func extractFieldMeta(field reflect.StructField) FieldMeta { - return FieldMeta{ - Offset: field.Offset, - Size: field.Type.Size(), - Kind: getKind(field.Type.Kind()), - Type: field.Type, - } -} - -// Exported versions for testing -func GetTypePtr(t reflect.Type) TypePtr { - return getTypePtr(t) -} - -func GetTypePtrFromValue(v any) TypePtr { - return getTypePtrFromValue(v) -} - -func GetValuePtr(v any) unsafe.Pointer { - return getValuePtr(v) -} - -func GetInterfaceValue(ptr unsafe.Pointer) any { - return getInterfaceValue(ptr) -} - -func GetKind(rk reflect.Kind) Kind { - return getKind(rk) -} - -func ConvertToInt(value any) (int, bool) { - return convertToInt(value) -} - -func ConvertToInt8(value any) (int8, bool) { - return convertToInt8(value) -} - -func ConvertToInt16(value any) (int16, bool) { - return convertToInt16(value) -} - -func ConvertToInt32(value any) (int32, bool) { - return convertToInt32(value) -} - -func ConvertToInt64(value any) (int64, bool) { - return convertToInt64(value) -} - -func ConvertToUint(value any) (uint, bool) { - return convertToUint(value) -} - -func ConvertToUint8(value any) (uint8, bool) { - return convertToUint8(value) -} - -func ConvertToUint16(value any) (uint16, bool) { - return convertToUint16(value) -} - -func ConvertToUint32(value any) (uint32, bool) { - return convertToUint32(value) -} - -func ConvertToUint64(value any) (uint64, bool) { - return convertToUint64(value) -} - -func ConvertToFloat32(value any) (float32, bool) { - return convertToFloat32(value) -} - -func ConvertToFloat64(value any) (float64, bool) { - return convertToFloat64(value) -} - -func ExtractFieldMeta(field reflect.StructField) FieldMeta { - return extractFieldMeta(field) -} - - - -// TypeInfo contains pre-computed type information extracted at registration time -type TypeInfo struct { - Name string // Type name - Fields map[string]*FieldMeta // field name -> metadata - FieldsToProps map[string]string // Go field name -> Neo4j property name - Neo4jRelations map[string]*Neo4jRelation // field name -> neo4j relation info - IsNode bool - IsRelationship bool - IsAbstract bool - Labels []string // Node labels - RelType string // Relationship type -} - -// Neo4jRelation contains neo4j relationship information -type Neo4jRelation struct { - Type string // "startNode", "endNode", or relationship type - Direction string // "in", "out", or "" - IsMany bool // true for slice relationships - NodeType string // target node type name -} - -// Type conversion helpers (ZERO reflection) -func convertToInt(value any) (int, bool) { - switch v := value.(type) { - case int: - return v, true - case int64: - return int(v), true - case float64: - return int(v), true - default: - return 0, false - } -} - -func convertToInt8(value any) (int8, bool) { - switch v := value.(type) { - case int8: - return v, true - case int: - return int8(v), true - case int64: - return int8(v), true - case float64: - return int8(v), true - default: - return 0, false - } -} - -func convertToInt16(value any) (int16, bool) { - switch v := value.(type) { - case int16: - return v, true - case int: - return int16(v), true - case int64: - return int16(v), true - case float64: - return int16(v), true - default: - return 0, false - } -} - -func convertToInt32(value any) (int32, bool) { - switch v := value.(type) { - case int32: - return v, true - case int: - return int32(v), true - case int64: - return int32(v), true - case float64: - return int32(v), true - default: - return 0, false - } -} - -func convertToInt64(value any) (int64, bool) { - switch v := value.(type) { - case int64: - return v, true - case int: - return int64(v), true - case float64: - return int64(v), true - default: - return 0, false - } -} - -func convertToUint(value any) (uint, bool) { - switch v := value.(type) { - case uint: - return v, true - case uint64: - return uint(v), true - case int: - return uint(v), true - case int64: - return uint(v), true - case float64: - return uint(v), true - default: - return 0, false - } -} - -func convertToUint8(value any) (uint8, bool) { - switch v := value.(type) { - case uint8: - return v, true - case uint: - return uint8(v), true - case uint64: - return uint8(v), true - case int: - return uint8(v), true - case int64: - return uint8(v), true - case float64: - return uint8(v), true - default: - return 0, false - } -} - -func convertToUint16(value any) (uint16, bool) { - switch v := value.(type) { - case uint16: - return v, true - case uint: - return uint16(v), true - case uint64: - return uint16(v), true - case int: - return uint16(v), true - case int64: - return uint16(v), true - case float64: - return uint16(v), true - default: - return 0, false - } -} - -func convertToUint32(value any) (uint32, bool) { - switch v := value.(type) { - case uint32: - return v, true - case uint: - return uint32(v), true - case uint64: - return uint32(v), true - case int: - return uint32(v), true - case int64: - return uint32(v), true - case float64: - return uint32(v), true - default: - return 0, false - } -} - -func convertToUint64(value any) (uint64, bool) { - switch v := value.(type) { - case uint64: - return v, true - case uint: - return uint64(v), true - case int: - return uint64(v), true - case int64: - return uint64(v), true - case float64: - return uint64(v), true - default: - return 0, false - } -} - -func convertToFloat32(value any) (float32, bool) { - switch v := value.(type) { - case float32: - return v, true - case float64: - return float32(v), true - case int: - return float32(v), true - case int64: - return float32(v), true - default: - return 0, false - } -} - -func convertToFloat64(value any) (float64, bool) { - switch v := value.(type) { - case float64: - return v, true - case float32: - return float64(v), true - case int: - return float64(v), true - case int64: - return float64(v), true - default: - return 0, false - } -} \ No newline at end of file diff --git a/vendor/github.com/rlch/neogo/internal/cypher_client.go b/vendor/github.com/rlch/neogo/internal/cypher_client.go deleted file mode 100644 index 4325a24..0000000 --- a/vendor/github.com/rlch/neogo/internal/cypher_client.go +++ /dev/null @@ -1,101 +0,0 @@ -package internal - -import ( - "fmt" - "regexp" - "strings" -) - -// CypherClient is the simplified query builder that only supports raw Cypher queries. -type CypherClient struct { - *Registry - query string - parameters map[string]any - bindings map[string]any - isWrite bool -} - -// NewCypherClient creates a new CypherClient. -func NewCypherClient(registry *Registry) *CypherClient { - return &CypherClient{ - Registry: registry, - parameters: make(map[string]any), - bindings: make(map[string]any), - } -} - -var isWriteRe = regexp.MustCompile(`\b(CREATE|MERGE|DELETE|SET|REMOVE|CALL\s+\w.*)\b`) - -// Cypher sets the Cypher query string. -func (c *CypherClient) Cypher(query string) *CypherRunner { - c.query = query - c.isWrite = isWriteRe.MatchString(strings.ToUpper(query)) - return &CypherRunner{client: c} -} - -// CypherRunner executes Cypher queries. -type CypherRunner struct { - client *CypherClient -} - -// CompiledCypher contains the compiled query ready for execution. -type CompiledCypher struct { - Cypher string - Parameters map[string]any - Bindings map[string]any - Plans map[string]*BindingPlan - IsWrite bool -} - -// Compile compiles the query with the given bindings. -// bindings should be pairs of (name string, target any). -func (r *CypherRunner) Compile(bindings ...any) (*CompiledCypher, error) { - return r.CompileWithParams(nil, bindings...) -} - -// CompileWithParams compiles the query with parameters and bindings. -func (r *CypherRunner) CompileWithParams(params map[string]any, bindings ...any) (*CompiledCypher, error) { - if len(bindings)%2 != 0 { - return nil, fmt.Errorf("bindings must be pairs of (name, target), got %d args", len(bindings)) - } - - // Parse bindings - bindingMap := make(map[string]any, len(bindings)/2) - for i := 0; i < len(bindings); i += 2 { - name, ok := bindings[i].(string) - if !ok { - return nil, fmt.Errorf("binding name at position %d must be a string, got %T", i, bindings[i]) - } - target := bindings[i+1] - bindingMap[name] = target - } - - // Merge params - parameters := make(map[string]any, len(r.client.parameters)+len(params)) - for k, v := range r.client.parameters { - parameters[k] = v - } - for k, v := range params { - parameters[k] = v - } - - cy := &CompiledCypher{ - Cypher: strings.TrimRight(r.client.query, "\n"), - Parameters: parameters, - Bindings: bindingMap, - IsWrite: r.client.isWrite, - } - - // Build binding plans for zero-reflection hot path - if len(bindingMap) > 0 { - cy.Plans = BuildBindingPlans(bindingMap, r.client.Codecs()) - } - - return cy, nil -} - -// Print prints the query to stdout. -func (r *CypherRunner) Print() *CypherRunner { - fmt.Println(r.client.query) - return r -} diff --git a/vendor/github.com/rlch/neogo/internal/entity.go b/vendor/github.com/rlch/neogo/internal/entity.go deleted file mode 100644 index 0d9ee85..0000000 --- a/vendor/github.com/rlch/neogo/internal/entity.go +++ /dev/null @@ -1,126 +0,0 @@ -// Package internal provides core implementation types and utilities for neogo. -// This package contains the foundational types for nodes, relationships, and -// the Cypher query client used internally by the public API. -package internal - -import ( - "io" - - "github.com/oklog/ulid/v2" -) - -var defaultEntropySource io.Reader - -func init() { - // Seed the default entropy source. - defaultEntropySource = ulid.DefaultEntropy() -} - -type ( - INode interface { - IsNode() - GetID() string - } - IDSetter interface { - SetID(id any) - GenerateID() - } - Node struct { - ID string `neo4j:"id"` - } - - IAbstract interface { - INode - IsAbstract() - Implementers() []IAbstract - } - Abstract struct{} - IRelationship interface { - IsRelationship() - } - Relationship struct{} - Label struct{} - - // One represents a single relationship to another node or through a relationship struct. - // This is a zero-cost abstraction - the struct has zero size (0 bytes) and only carries - // type information at compile time for schema extraction and type-safe query building. - // - // Note: Place One/Many fields before other fields in your struct to avoid alignment padding. - // Go adds padding when zero-sized types are the last field in a struct. - // - // Usage with relationship struct: - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // BestRole One[ActedIn] `neo4j:"->"` - // } - // - // Usage with shorthand syntax (direct node reference with relationship type in tag): - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // BestFriend One[Person] `neo4j:"BEST_FRIEND>"` // Outgoing BEST_FRIEND - // Mentor One[Person] `neo4j:",required"` - One[R any] struct { - _ [0]R // Zero-sized phantom field for type information - } - - // Many represents multiple relationships to other nodes or through relationship structs. - // This is a zero-cost abstraction - the struct has zero size (0 bytes) and only carries - // type information at compile time for schema extraction and type-safe query building. - // - // Note: Place One/Many fields before other fields in your struct to avoid alignment padding. - // Go adds padding when zero-sized types are the last field in a struct. - // - // Usage with relationship struct: - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // ActedIn Many[ActedIn] `neo4j:"->"` - // } - // - // Usage with shorthand syntax (direct node reference with relationship type in tag): - // - // type Person struct { - // neogo.Node `neo4j:"Person"` - // Friends Many[Person] `neo4j:"FRIENDS>"` // Outgoing FRIENDS - // Followers Many[Person] `neo4j:",required"` - Many[R any] struct { - _ [0]R // Zero-sized phantom field for type information - } -) - -var ( - _ interface { - INode - IDSetter - } = (*Node)(nil) - _ IRelationship = (*Relationship)(nil) -) - -func (Node) IsNode() {} - -func (n Node) GetID() string { return n.ID } - -func (n *Node) SetID(id any) { - if s, ok := id.(string); ok { - n.ID = s - } -} - -func (n *Node) GenerateID() { - n.ID = ulid.MustNew(ulid.Now(), defaultEntropySource).String() -} - -func (*Abstract) IsAbstract() {} -func (Relationship) IsRelationship() {} diff --git a/vendor/github.com/rlch/neogo/internal/helpers.go b/vendor/github.com/rlch/neogo/internal/helpers.go deleted file mode 100644 index 6f067f0..0000000 --- a/vendor/github.com/rlch/neogo/internal/helpers.go +++ /dev/null @@ -1,39 +0,0 @@ -package internal - -import ( - "fmt" - "reflect" -) - -func WalkStruct( - v reflect.Value, - visit func( - i int, - typ reflect.StructField, - val reflect.Value, - ) (recurseInto bool, err error), -) (recurseInto error) { - vt := v.Type() - for vt.Kind() == reflect.Ptr { - vt = vt.Elem() - v = v.Elem() - } - if vt.Kind() != reflect.Struct || v.Kind() != reflect.Struct { - return fmt.Errorf("expected struct, got %s", vt.Kind()) - } - for i := range vt.NumField() { - vtf := vt.Field(i) - vf := v.Field(i) - shouldRecurse, err := visit(i, vtf, vf) - if err != nil { - return err - } - if shouldRecurse && vf.Kind() == reflect.Struct { - if err := WalkStruct(vf, visit); err != nil { - return err - } - continue - } - } - return nil -} diff --git a/vendor/github.com/rlch/neogo/internal/labels.go b/vendor/github.com/rlch/neogo/internal/labels.go deleted file mode 100644 index 54d3810..0000000 --- a/vendor/github.com/rlch/neogo/internal/labels.go +++ /dev/null @@ -1,77 +0,0 @@ -package internal - -import ( - "reflect" -) - -const Neo4jTag = "neo4j" - -func (r *Registry) instatiateInnerType(outer reflect.Type, to reflect.Type) any { - satisfied := false - for outer.Kind() == reflect.Ptr || outer.Kind() == reflect.Slice { - if outer.Implements(to) { - satisfied = true - break - } - outer = outer.Elem() - } - if !satisfied && !outer.Implements(to) { - return nil - } - var inner any - if outer.Kind() == reflect.Ptr { - inner = reflect.New(outer.Elem()).Interface() - } else { - inner = reflect.Zero(outer).Interface() - } - if inner == nil { - if registered := r.Get(outer); registered != nil { - inner = reflect.New(registered.Type()).Interface() - } - } - return inner -} - -func (r *Registry) ExtractNodeLabels(node any) []string { - if node == nil { - return nil - } - var ( - iNode INode - ok bool - ) - if iNode, ok = node.(INode); !ok { - n := r.instatiateInnerType(reflect.TypeOf(node), rINode) - if n == nil { - return nil - } - iNode = n.(INode) - } - reg := r.RegisterNode(iNode) - if reg == nil { - return nil - } - return reg.Labels() -} - -func (r *Registry) ExtractRelationshipType(rel any) string { - if rel == nil { - return "" - } - var ( - iRel IRelationship - ok bool - ) - if iRel, ok = rel.(IRelationship); !ok { - r := r.instatiateInnerType(reflect.TypeOf(rel), rIRelationship) - if r == nil { - return "" - } - iRel = r.(IRelationship) - } - n := r.RegisterRelationship(iRel) - if n == nil { - return "" - } - return n.Reltype -} diff --git a/vendor/github.com/rlch/neogo/internal/registry.go b/vendor/github.com/rlch/neogo/internal/registry.go deleted file mode 100644 index bfba7e7..0000000 --- a/vendor/github.com/rlch/neogo/internal/registry.go +++ /dev/null @@ -1,473 +0,0 @@ -package internal - -import ( - "fmt" - "reflect" - "strings" - - "github.com/rlch/neogo/internal/codec" -) - -type ( - Registry struct { - AbstractNodes []*RegisteredAbstractNode - Nodes []*RegisteredNode - Relationships []*RegisteredRelationship - registeredTypes map[string]RegisteredEntity - codecs *codec.CodecRegistry - } - RegisteredEntity interface { - Name() string - Type() reflect.Type - FieldsToProps() map[string]string - } - RegisteredAbstractNode struct { - *RegisteredNode - Implementers []*RegisteredNode - } - // RegisteredNode is a thin wrapper that delegates data access to CodecRegistry. - // It only stores relationship graph navigation locally. - RegisteredNode struct { - name string // Type name (used as key to CodecRegistry) - codecs *codec.CodecRegistry // Reference to codec registry for delegation - Relationships map[string]*RelationshipTarget // Relationship graph (owned by Registry) - } - RegisteredRelationship struct { - name string - typeName string // Store type name instead of reflect.Type - codecs *codec.CodecRegistry // Reference to codec registry for delegation - - Reltype string - StartNode NodeTarget - EndNode NodeTarget - } - NodeTarget struct { - Field string - *RegisteredNode - } - RelationshipTarget struct { - // Many will be true if there is a (one/many)-to-many relationship between the source and target node. - Many bool - // true = ->, false = <- - Dir bool - Rel *RegisteredRelationship - } -) - -func (r *RegisteredNode) Name() string { - return r.name -} - -// Type returns the reflect.Type for this node (delegated to CodecRegistry) -func (r *RegisteredNode) Type() reflect.Type { - if meta := r.codecs.GetNodeMeta(r.name); meta != nil { - return meta.Type() - } - return nil -} - -// ReflectType returns the reflect.Type (for compatibility) -func (r *RegisteredNode) ReflectType() any { - return r.Type() -} - -// FieldsToProps returns the Go field name -> DB property name mapping (delegated) -func (r *RegisteredNode) FieldsToProps() map[string]string { - if meta := r.codecs.GetNodeMeta(r.name); meta != nil { - return meta.FieldsToProps - } - return nil -} - -// Labels returns the Neo4j labels for this node (delegated to CodecRegistry) -func (r *RegisteredNode) Labels() []string { - if meta := r.codecs.GetNodeMeta(r.name); meta != nil { - return meta.Labels - } - return nil -} - -// Schema returns the schema metadata for this node (delegated to CodecRegistry) -func (r *RegisteredNode) Schema() *codec.SchemaMeta { - if meta := r.codecs.GetNodeMeta(r.name); meta != nil { - return meta.Schema - } - return nil -} - -func (r *RegisteredRelationship) Name() string { - return r.name -} - -// Type returns the reflect.Type for this relationship (delegated to CodecRegistry) -func (r *RegisteredRelationship) Type() reflect.Type { - if r.codecs == nil { - return nil - } - if meta := r.codecs.GetRelMeta(r.name); meta != nil { - return meta.ReflectType() - } - return nil -} - -// FieldsToProps returns the Go field name -> DB property name mapping -// For relationships, this is obtained from TypeMetadata in CodecRegistry -func (r *RegisteredRelationship) FieldsToProps() map[string]string { - if r.codecs == nil { - return nil - } - if meta := r.codecs.GetByTypeName(r.name); meta != nil { - return meta.FieldsMap - } - return nil -} - -// Schema returns the schema metadata for this relationship (delegated to CodecRegistry) -func (r *RegisteredRelationship) Schema() *codec.SchemaMeta { - if r.codecs == nil { - return nil - } - if meta := r.codecs.GetRelMeta(r.name); meta != nil { - return meta.Schema - } - return nil -} - -func (r RelationshipTarget) Target() *NodeTarget { - if r.Dir { - return &r.Rel.EndNode - } else { - return &r.Rel.StartNode - } -} - -var ( - rAbstract = reflect.TypeOf((*IAbstract)(nil)).Elem() - rINode = reflect.TypeOf((*INode)(nil)).Elem() - rIRelationship = reflect.TypeOf((*IRelationship)(nil)).Elem() -) - -func NewRegistry() *Registry { - return &Registry{ - AbstractNodes: []*RegisteredAbstractNode{}, - Nodes: []*RegisteredNode{}, - Relationships: []*RegisteredRelationship{}, - registeredTypes: make(map[string]RegisteredEntity), - codecs: codec.NewCodecRegistry(), - } -} - -func (r *Registry) RegisterTypes(types ...any) { - // IMPORTANT: Register types with codec registry FIRST - // This must happen before individual RegisterType calls - r.codecs.RegisterTypes(types...) - - // Then register with legacy registry - for _, t := range types { - r.RegisterType(t) - } -} - -// Codecs returns the codec registry for high-performance serialization -func (r *Registry) Codecs() *codec.CodecRegistry { - return r.codecs -} - -func (r *Registry) RegisterType(typ any) (registered any) { - if abs, ok := typ.(IAbstract); ok { - return r.RegisterAbstractNode(typ, abs) - } else if v, ok := typ.(INode); ok { - return r.RegisterNode(v) - } else if v, ok := typ.(IRelationship); ok { - return r.RegisterRelationship(v) - } - return -} - -func (r *Registry) RegisterNode(v INode) *RegisteredNode { - vv := codec.UnwindValue(reflect.ValueOf(v)) - vvt := vv.Type() - name := vvt.Name() - if n, ok := r.registeredTypes[name]; ok { - if reg, ok := n.(*RegisteredNode); ok { - return reg - } else { - return n.(*RegisteredAbstractNode).RegisteredNode - } - } - - // Get cached metadata from CodecRegistry (extracted during RegisterTypes) - nodeMeta := r.codecs.GetNodeMeta(name) - if nodeMeta == nil { - // Fallback: extract if not pre-cached (for lazy registration) - var err error - nodeMeta, err = r.codecs.ExtractNeo4jNodeMeta(v) - if err != nil { - panic(fmt.Errorf("failed to extract Neo4j metadata for %s: %w", name, err)) - } - // Store in codec registry for future lookups - r.codecs.StoreNodeMeta(name, nodeMeta) - } - - // Create thin wrapper - delegates data access to CodecRegistry - registered := &RegisteredNode{ - name: name, - codecs: r.codecs, - Relationships: make(map[string]*RelationshipTarget), - } - - r.Nodes = append(r.Nodes, registered) - r.registeredTypes[name] = registered - - // Convert Neo4j relationship targets to registry relationship targets - for fieldName, neoRel := range nodeMeta.Relationships { - var relReg *RegisteredRelationship - - // Create target instance and check its type - targetInstance, err := r.codecs.CreateNodeInstance(neoRel.NodeType) - if err != nil { - panic(fmt.Errorf("failed to create target instance: %w", err)) - } - - // Check if it's actually a relationship type (not a node) - if _, isRel := targetInstance.(IRelationship); isRel { - // This is a relationship - analyze its struct to find StartNode/EndNode - relTypeName := neoRel.NodeType.Elem().Name() - relReg = &RegisteredRelationship{ - name: relTypeName, - typeName: relTypeName, - codecs: r.codecs, - Reltype: neoRel.RelType, - } - - // Analyze the relationship struct to find StartNode/EndNode fields - relStruct := neoRel.NodeType.Elem() - for i := 0; i < relStruct.NumField(); i++ { - relField := relStruct.Field(i) - tag := relField.Tag.Get("neo4j") - - switch tag { - case "startNode": - // This field represents the start node - relReg.StartNode = NodeTarget{ - Field: relField.Name, - RegisteredNode: registered, // The current node being processed - } - case "endNode": - // This field represents the end node - relReg.EndNode = NodeTarget{ - Field: relField.Name, - RegisteredNode: registered, // The current node being processed - } - } - } - } else { - // It's a node - this is a shorthand relationship (no relationship struct) - targetNode, ok := targetInstance.(INode) - if !ok { - panic(fmt.Errorf("target %s does not implement INode or IRelationship", neoRel.NodeType)) - } - - targetReg := r.RegisterNode(targetNode) - - // Create relationship registration with empty name/typeName for shorthand - relReg = &RegisteredRelationship{ - name: "", // Empty for shorthand relationships - typeName: "", // Empty for shorthand relationships - codecs: r.codecs, - Reltype: neoRel.RelType, - } - if neoRel.Dir { - relReg.StartNode = NodeTarget{RegisteredNode: targetReg} - relReg.EndNode = NodeTarget{RegisteredNode: registered} - } else { - relReg.StartNode = NodeTarget{RegisteredNode: registered} - relReg.EndNode = NodeTarget{RegisteredNode: targetReg} - } - } - - // Note: Don't store relationships in registeredTypes map to avoid conflicts with node names - // Relationships are stored separately in r.Relationships slice - - registered.Relationships[fieldName] = &RelationshipTarget{ - Dir: neoRel.Dir, - Rel: relReg, - Many: neoRel.Many, - } - } - - if len(registered.Relationships) == 0 { - registered.Relationships = nil - } - - return registered -} - -func (r *Registry) RegisterAbstractNode(typ any, typAbs IAbstract) *RegisteredAbstractNode { - vv := codec.UnwindValue(reflect.ValueOf(typ)) - name := vv.Type().Name() - // There's a chance that the abstract node is registered as a concrete node, in which case we re-register - var node *RegisteredNode - if n, ok := r.registeredTypes[name]; ok { - if reg, ok := n.(*RegisteredNode); ok { - node = reg - } else { - return n.(*RegisteredAbstractNode) - } - } else { - node = r.RegisterNode(typ.(INode)) - } - registered := &RegisteredAbstractNode{ - RegisteredNode: node, - } - impls := typAbs.Implementers() - registered.Implementers = make([]*RegisteredNode, len(impls)) - for i, impl := range impls { - registered.Implementers[i] = r.RegisterNode(impl) - } - r.AbstractNodes = append(r.AbstractNodes, registered) - r.registeredTypes[name] = registered - return registered -} - -func (r *Registry) RegisterRelationship(v IRelationship) *RegisteredRelationship { - vv := codec.UnwindValue(reflect.ValueOf(v)) - name := vv.Type().Name() - - if existing, ok := r.registeredTypes[name]; ok { - return existing.(*RegisteredRelationship) - } - - // Get cached metadata from CodecRegistry (extracted during RegisterTypes) - relMeta := r.codecs.GetRelMeta(name) - if relMeta == nil { - // Fallback: extract if not pre-cached (for lazy registration) - var err error - relMeta, err = r.codecs.ExtractRelationshipMeta(v) - if err != nil { - panic(err) - } - // Store in codec registry for future lookups - r.codecs.StoreRelMeta(name, relMeta) - } - - registered := &RegisteredRelationship{ - name: name, - typeName: name, - codecs: r.codecs, - Reltype: relMeta.Type, - } - r.Relationships = append(r.Relationships, registered) - r.registeredTypes[name] = registered - - // Register start and end nodes (optional) - if relMeta.StartNode != nil { - startNodeInstance, err := r.codecs.CreateNodeInstance(relMeta.StartNode.NodeType) - if err != nil { - panic(fmt.Errorf("failed to create start node instance: %w", err)) - } - node, ok := startNodeInstance.(INode) - if !ok { - panic(fmt.Errorf("start node %s does not implement INode", relMeta.StartNode.NodeType)) - } - nodeReg := r.RegisterNode(node) - registered.StartNode = NodeTarget{ - Field: relMeta.StartNode.FieldName, - RegisteredNode: nodeReg, - } - } - - if relMeta.EndNode != nil { - endNodeInstance, err := r.codecs.CreateNodeInstance(relMeta.EndNode.NodeType) - if err != nil { - panic(fmt.Errorf("failed to create end node instance: %w", err)) - } - node, ok := endNodeInstance.(INode) - if !ok { - panic(fmt.Errorf("end node %s does not implement INode", relMeta.EndNode.NodeType)) - } - nodeReg := r.RegisterNode(node) - registered.EndNode = NodeTarget{ - Field: relMeta.EndNode.FieldName, - RegisteredNode: nodeReg, - } - } - - return registered -} - -func (r *Registry) Get(typ reflect.Type) (entity RegisteredEntity) { - if typ == nil { - return nil - } - name := codec.UnwindType(typ).Name() - if v, ok := r.registeredTypes[name]; ok { - return v - } - if typ.Implements(rAbstract) { - return r.registeredTypes["Base"+name] - } - return nil -} - -func (r *Registry) GetByName(name string) (entity RegisteredEntity) { - return r.registeredTypes[name] -} - -func (r *Registry) GetConcreteImplementation(nodeLabels []string) (*RegisteredNode, error) { - var ( - abstractNode *RegisteredAbstractNode - closestImpl *RegisteredNode - inheritanceCounter int - isNodeLabel = make(map[string]struct{}, len(nodeLabels)) - ) - for _, label := range nodeLabels { - isNodeLabel[label] = struct{}{} - } - // We find the abstract node (or exact implementation if registered) that has - // a inheritance chain closest to the database node we're extracting from. -Bases: - for _, base := range r.AbstractNodes { - labels := base.Labels() // Use delegation method - if len(labels) == 0 { - continue - } - currentInheritanceCounter := 0 - for _, label := range labels { - if _, ok := isNodeLabel[label]; !ok { - continue Bases - } - currentInheritanceCounter++ - } - if currentInheritanceCounter > inheritanceCounter { - abstractNode = base - inheritanceCounter = currentInheritanceCounter - } - } - if abstractNode == nil { - return nil, fmt.Errorf( - "no abstract node found for labels: %s\nDid you forget to register the base node using neogo.WithTypes(...)?", - strings.Join(nodeLabels, ", "), - ) - } - if inheritanceCounter == len(nodeLabels) { - return abstractNode.RegisteredNode, nil - } -Impls: - for _, nextImpl := range abstractNode.Implementers { - for _, label := range nextImpl.Labels() { // Use delegation method - if _, ok := isNodeLabel[label]; !ok { - continue Impls - } - } - closestImpl = nextImpl - break - } - if closestImpl == nil { - return nil, fmt.Errorf( - "no concrete implementation found for labels: %s\nDid you forget to register the base node using neogo.WithTypes(...)?", - strings.Join(nodeLabels, ", "), - ) - } - return closestImpl, nil -} diff --git a/vendor/github.com/rlch/neogo/layout.kdl b/vendor/github.com/rlch/neogo/layout.kdl deleted file mode 100644 index 198d35f..0000000 --- a/vendor/github.com/rlch/neogo/layout.kdl +++ /dev/null @@ -1,15 +0,0 @@ -layout { - pane size=1 borderless=true { - plugin location="zellij:tab-bar" - } - pane split_direction="vertical" { - pane name="neogo" focus=true size="60%" - pane name="test" command="gotestsum" { - args "./..." "-coverprofile=coverage.out" "-coverpkg=./..." "-short" - } - } - pane size=1 borderless=true { - plugin location="zellij:status-bar" - } -} - diff --git a/vendor/github.com/rlch/neogo/mock.go b/vendor/github.com/rlch/neogo/mock.go deleted file mode 100644 index 13a49c4..0000000 --- a/vendor/github.com/rlch/neogo/mock.go +++ /dev/null @@ -1,311 +0,0 @@ -package neogo - -import ( - "context" - "errors" - "net/url" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/rlch/neogo/internal" - "golang.org/x/sync/semaphore" -) - -// NewMock creates a mock neogo [Driver] for testing. -func NewMock() mockDriver { - m := &mockBindings{} - reg := internal.NewRegistry() - return &mockDriverImpl{ - mockBindings: m, - driver: &driver{ - db: &mockNeo4jDriverWithContext{ - mockBindings: m, - Registry: reg, - }, - reg: reg, - sessionSemaphore: semaphore.NewWeighted(100), - }, - } -} - -type ( - mockBindings struct { - Single map[string]any - Records []map[string]any - Next *mockBindings - } - mockDriver interface { - Driver - - Bind(record map[string]any) - BindRecords(records []map[string]any) - Clear() - } - mockDriverImpl struct { - *mockBindings - *driver - } - - mockNeo4jDriverWithContext struct { - *mockBindings - *internal.Registry - } - mockNeo4jSessionWithContext struct { - *mockNeo4jDriverWithContext - neo4j.SessionWithContext - } - mockNeo4jManagedTransaction struct { - *mockNeo4jSessionWithContext - neo4j.ManagedTransaction - } - mockNeo4jExplicitTransaction struct { - *mockNeo4jSessionWithContext - neo4j.ExplicitTransaction - committed bool - rolledBack bool - } - mockNeo4jResultWithContext struct { - neo4j.ResultWithContext - records []*neo4j.Record - cursor int - started bool - } -) - -var ( - _ mockDriver = (*mockDriverImpl)(nil) - _ neo4j.DriverWithContext = (*mockNeo4jDriverWithContext)(nil) - _ neo4j.SessionWithContext = (*mockNeo4jSessionWithContext)(nil) - _ neo4j.ManagedTransaction = (*mockNeo4jManagedTransaction)(nil) - _ neo4j.ExplicitTransaction = (*mockNeo4jExplicitTransaction)(nil) - _ neo4j.ResultWithContext = (*mockNeo4jResultWithContext)(nil) -) - -func (d *mockBindings) Bind(m map[string]any) { - b := d - for b.Next != nil { - b = b.Next - } - b.Single = m - b.Next = &mockBindings{} -} - -func (d *mockBindings) BindRecords(m []map[string]any) { - b := d - for b.Next != nil { - b = b.Next - } - b.Records = m - b.Next = &mockBindings{} -} - -func (d *mockBindings) Clear() { - d.Single = nil - d.Records = nil - d.Next = nil -} - -func (d *mockNeo4jDriverWithContext) ExecuteQueryBookmarkManager() neo4j.BookmarkManager { - panic(errors.New("not implemented")) -} - -func (d *mockNeo4jDriverWithContext) Target() url.URL { - panic(errors.New("not implemented")) -} - -func (d *mockNeo4jDriverWithContext) NewSession(ctx context.Context, config neo4j.SessionConfig) neo4j.SessionWithContext { - return &mockNeo4jSessionWithContext{mockNeo4jDriverWithContext: d} -} - -func (d *mockNeo4jDriverWithContext) VerifyConnectivity(ctx context.Context) error { - return nil -} - -func (d *mockNeo4jDriverWithContext) VerifyAuthentication(ctx context.Context, auth *neo4j.AuthToken) error { - return nil -} - -func (d *mockNeo4jDriverWithContext) Close(ctx context.Context) error { - return nil -} - -func (d *mockNeo4jDriverWithContext) IsEncrypted() bool { - panic(errors.New("not implemented")) -} - -func (d *mockNeo4jDriverWithContext) GetServerInfo(ctx context.Context) (neo4j.ServerInfo, error) { - panic(errors.New("not implemented")) -} - -func (s *mockNeo4jSessionWithContext) LastBookmarks() neo4j.Bookmarks { - return nil -} - -func (s *mockNeo4jSessionWithContext) BeginTransaction(ctx context.Context, configurers ...func(*neo4j.TransactionConfig)) (neo4j.ExplicitTransaction, error) { - return &mockNeo4jExplicitTransaction{mockNeo4jSessionWithContext: s}, nil -} - -func (s *mockNeo4jSessionWithContext) ExecuteRead(ctx context.Context, work neo4j.ManagedTransactionWork, configurers ...func(*neo4j.TransactionConfig)) (any, error) { - _, err := work(&mockNeo4jManagedTransaction{mockNeo4jSessionWithContext: s}) - return nil, err -} - -func (s *mockNeo4jSessionWithContext) ExecuteWrite(ctx context.Context, work neo4j.ManagedTransactionWork, configurers ...func(*neo4j.TransactionConfig)) (any, error) { - _, err := work(&mockNeo4jManagedTransaction{mockNeo4jSessionWithContext: s}) - return nil, err -} - -func (s *mockNeo4jSessionWithContext) Run(ctx context.Context, cypher string, params map[string]any, configurers ...func(*neo4j.TransactionConfig)) (neo4j.ResultWithContext, error) { - r := &mockNeo4jResultWithContext{} - toRecord := func(m map[string]any) (*neo4j.Record, error) { - n := len(m) - rec := &neo4j.Record{ - Keys: make([]string, n), - Values: make([]any, n), - } - var i int - for k, v := range m { - rec.Keys[i] = k - if _, ok := v.(internal.INode); ok { - meta, err := s.Codecs().ExtractNeo4jNodeMeta(v) - if err != nil { - return nil, err - } - props, err := s.Codecs().Encode(v) - if err != nil { - return nil, err - } - rec.Values[i] = neo4j.Node{ - Labels: meta.Labels, - Props: props, - } - } else if _, ok := v.(internal.IRelationship); ok { - meta, err := s.Codecs().ExtractRelationshipMeta(v) - if err != nil { - return nil, err - } - props, err := s.Codecs().Encode(v) - if err != nil { - return nil, err - } - rec.Values[i] = neo4j.Relationship{ - Type: meta.Type, - Props: props, - } - } else { - rec.Values[i] = v - } - i++ - } - return rec, nil - } - if s.Single == nil && s.Records == nil { - panic(errors.New("mock client used without bindings for all transactions")) - } - bindings := s.mockBindings - if bindings.Single != nil { - rec, err := toRecord(bindings.Single) - if err != nil { - return nil, err - } - r.records = []*neo4j.Record{rec} - } else if bindings.Records != nil { - r.records = make([]*neo4j.Record, len(bindings.Records)) - for i, recMap := range bindings.Records { - rec, err := toRecord(recMap) - if err != nil { - return nil, err - } - r.records[i] = rec - } - } - s.mockBindings = s.Next - return r, nil -} - -func (s *mockNeo4jSessionWithContext) Close(ctx context.Context) error { - return nil -} - -func (t *mockNeo4jManagedTransaction) Run(ctx context.Context, cypher string, params map[string]any) (neo4j.ResultWithContext, error) { - return t.mockNeo4jSessionWithContext.Run(ctx, cypher, params) -} - -func (r *mockNeo4jResultWithContext) Keys() ([]string, error) { - return r.records[r.cursor].Keys, nil -} - -func (r *mockNeo4jResultWithContext) NextRecord(ctx context.Context, record **neo4j.Record) bool { - if r.cursor < len(r.records) { - *record = r.records[r.cursor] - r.cursor++ - return true - } - return false -} - -func (r *mockNeo4jResultWithContext) Next(ctx context.Context) bool { - if r.cursor == 0 && !r.started { - r.started = true - } else { - r.cursor++ - } - return r.cursor < len(r.records) -} - -func (r *mockNeo4jResultWithContext) PeekRecord(ctx context.Context, record **neo4j.Record) bool { - if r.cursor+1 < len(r.records) { - *record = r.records[r.cursor+1] - return true - } - return false -} - -func (r *mockNeo4jResultWithContext) Peek(ctx context.Context) bool { - return r.cursor+1 < len(r.records) -} - -func (r *mockNeo4jResultWithContext) Err() error { - return nil -} - -func (r *mockNeo4jResultWithContext) Record() *neo4j.Record { - return r.records[r.cursor] -} - -func (r *mockNeo4jResultWithContext) Collect(ctx context.Context) ([]*neo4j.Record, error) { - if r.cursor+1 == len(r.records) { - return nil, nil - } - return r.records[r.cursor+1:], nil -} - -func (r *mockNeo4jResultWithContext) Single(ctx context.Context) (*neo4j.Record, error) { - return r.records[r.cursor], nil -} - -func (r *mockNeo4jResultWithContext) Consume(ctx context.Context) (neo4j.ResultSummary, error) { - panic(errors.New("not implemented")) -} - -func (r *mockNeo4jResultWithContext) IsOpen() bool { - return true -} - -// ExplicitTransaction implementation -func (t *mockNeo4jExplicitTransaction) Run(ctx context.Context, cypher string, params map[string]any) (neo4j.ResultWithContext, error) { - return t.mockNeo4jSessionWithContext.Run(ctx, cypher, params) -} - -func (t *mockNeo4jExplicitTransaction) Commit(ctx context.Context) error { - t.committed = true - return nil -} - -func (t *mockNeo4jExplicitTransaction) Rollback(ctx context.Context) error { - t.rolledBack = true - return nil -} - -func (t *mockNeo4jExplicitTransaction) Close(ctx context.Context) error { - return nil -} diff --git a/vendor/github.com/rlch/neogo/orm.md b/vendor/github.com/rlch/neogo/orm.md deleted file mode 100644 index b1d2c1a..0000000 --- a/vendor/github.com/rlch/neogo/orm.md +++ /dev/null @@ -1,551 +0,0 @@ -# neogo ORM Development Notes - -This document tracks design decisions and implementation plans for neogo's ORM features. - ---- - -## Implementation Progress - -### Phase 1: Tag Parsing ✅ COMPLETE -- [x] `IndexSpec` and `ConstraintSpec` types in `internal/codec/schema.go` -- [x] `IndexDef` and `ConstraintDef` types for aggregated definitions -- [x] `parseIndexSpec()` - parses index options from tags -- [x] `parseConstraintSpec()` - parses constraint options from tags -- [x] Updated `FieldInfo` with Index/Constraint fields -- [x] Updated `parseFieldInfo()` to process schema options -- [x] `AggregateIndexes()` - groups fields into composite indexes -- [x] `AggregateConstraints()` - groups fields into composite constraints -- [x] `GenerateIndexCypher()` - generates CREATE INDEX statements -- [x] `GenerateConstraintCypher()` - generates CREATE CONSTRAINT statements -- [x] Comprehensive tests for all parsing and generation - -### Phase 2: Registry Integration ✅ COMPLETE -- [x] `CodecRegistry` is single source of truth for all type data -- [x] `nodeMeta`/`relMeta` maps store Neo4j-specific metadata -- [x] `Neo4jNodeMetadata.Schema` field with aggregated indexes/constraints -- [x] `RelationshipStructMeta.Schema` field for relationship schema -- [x] Schema extracted during `RegisterTypes()` in one pass -- [x] Auto-add `unique_{Label}_id` constraint for nodes with ID field -- [x] `RegisteredNode`/`RegisteredRelationship` are thin wrappers with delegation -- [x] `Labels()`, `FieldsToProps()`, `Schema()`, `Type()` delegation methods - -### Phase 3: Schema Interface ✅ COMPLETE -- [x] Add `Schema` interface to Driver (`schema.go`) -- [x] Implement `GetIndexes()` - SHOW INDEXES introspection -- [x] Implement `GetConstraints()` - SHOW CONSTRAINTS introspection -- [x] Implement `AutoMigrate()` - additive schema migration (returns executed actions) -- [x] Implement `NeedsMigration()` - check if migration needed -- [x] `IndexInfo` and `ConstraintInfo` types for DB schema representation -- [x] `MigrationAction` type for pending/executed changes -- [x] Implementation in `schema_impl.go` - -### Phase 4: Testing ✅ COMPLETE -- [x] Unit tests for Phase 2 (Schema delegation) in `internal/registry_test.go`: - - [x] `TestRegisteredNodeSchema` - tests Schema() delegation for nodes - - [x] `TestRegisteredRelationshipSchema` - tests Schema() delegation for relationships - - [x] `TestRegisteredAbstractNodeSchema` - tests Schema() for abstract nodes - - [x] `TestSchemaWithNestedLabels` - tests schema with inheritance -- [x] Unit tests for Phase 3 (Migration logic) in `schema_test.go`: - - [x] `TestMigrationLogic_*` - comprehensive migration logic tests - - [x] `TestSchemaFromRegistry` - tests schema collection from registry - - [x] `TestMigrationActionTypes` - tests action type constants - - [x] `TestIndexInfo/TestConstraintInfo` - tests info types - - [x] `TestIndexTypeConstants/TestConstraintTypeConstants` - tests re-exported constants - - [x] Edge case tests: empty DB, partial migration, fully migrated, additive only, etc. -- [x] Integration tests with real Neo4j in `schema_integration_test.go`: - - [x] `TestSchemaIntegration_GetIndexes` - SHOW INDEXES parsing - - [x] `TestSchemaIntegration_GetConstraints` - SHOW CONSTRAINTS parsing - - [x] `TestSchemaIntegration_AutoMigrate` - CREATE INDEX/CONSTRAINT execution - - Basic node schema (unique, index, notNull) - - Fulltext indexes - - Composite indexes - - Node key constraints - - Relationship indexes/constraints - - Idempotency (running twice succeeds) - - [x] `TestSchemaIntegration_NeedsMigration` - migration detection - - [x] `TestSchemaIntegration_RoundTrip` - full migration cycle - - Uses testcontainers-go with Neo4j Enterprise for full feature coverage - ---- - -## Schema Management Design - -### Overview - -The biggest gap in neogo compared to GORM is schema management. This includes: -- Index definitions via struct tags -- Constraint definitions (unique, notNull, nodeKey) -- AutoMigrate() functionality -- Schema introspection (SHOW INDEXES, SHOW CONSTRAINTS) - -### Neo4j 5.x Schema Features - -#### Index Types - -| Type | Cypher Syntax | Use Case | -|------|--------------|----------| -| **Range** | `CREATE INDEX name FOR (n:Label) ON (n.prop)` | Default for equality/range queries | -| **Text** | `CREATE TEXT INDEX name FOR (n:Label) ON (n.prop)` | String prefix/suffix/contains | -| **Point** | `CREATE POINT INDEX name FOR (n:Label) ON (n.prop)` | Spatial/geographic queries | -| **Fulltext** | `CREATE FULLTEXT INDEX name FOR (n:Label) ON EACH [n.prop]` | Advanced text search | -| **Vector** | `CREATE VECTOR INDEX name FOR (n:Label) ON (n.embedding) OPTIONS {...}` | ML embeddings (5.11+) | - -**Notes:** -- Range, Text, Point support composite indexes (multiple properties) -- Fulltext uses `ON EACH [...]` syntax, supports multiple labels -- Vector requires `OPTIONS {vector.dimensions: N, vector.similarity_function: 'cosine'}` - -#### Constraint Types - -| Type | Cypher Syntax | Use Case | -|------|--------------|----------| -| **Unique** | `CREATE CONSTRAINT name FOR (n:Label) REQUIRE n.prop IS UNIQUE` | Unique property values | -| **Node Key** | `CREATE CONSTRAINT name FOR (n:Label) REQUIRE (n.prop1, n.prop2) IS NODE KEY` | Unique + Existence (composite) | -| **Not Null** | `CREATE CONSTRAINT name FOR (n:Label) REQUIRE n.prop IS NOT NULL` | Property existence | - -**Notes:** -- Node Key implies both uniqueness AND existence for all properties in the key -- Relationship constraints also exist for relationship properties - ---- - -### Tag Syntax Design - -#### Design Principles - -1. **Consistency**: Follow existing `neo4j` tag conventions -2. **Discoverability**: Simple tags for common cases, options for advanced -3. **Neo4j-native**: Map directly to Neo4j concepts (not SQL abstractions) -4. **Composable**: Support composite indexes via shared names - -#### Proposed Tag Format - -``` -neo4j:"fieldName[,option1[,option2[:value][,option3]]]" -``` - -#### Index Tags - -```go -type Person struct { - neogo.Node `neo4j:"Person"` - - // Simple range index (most common) - Email string `neo4j:"email,index"` - - // Named index - Username string `neo4j:"username,index:idx_person_username"` - - // Specific index type - Bio string `neo4j:"bio,index:text"` // Text index - Location Point `neo4j:"location,index:point"` // Point index - - // Fulltext index - Description string `neo4j:"description,fulltext"` - - // Vector index (for embeddings) - Embedding []float32 `neo4j:"embedding,vector:1536"` // 1536 dimensions - - // Composite index (shared name with priority) - FirstName string `neo4j:"first_name,index:idx_person_name,priority:1"` - LastName string `neo4j:"last_name,index:idx_person_name,priority:2"` -} -``` - -#### Constraint Tags - -```go -type Person struct { - neogo.Node `neo4j:"Person"` - - // Unique constraint - Email string `neo4j:"email,unique"` - - // Named unique constraint - SSN string `neo4j:"ssn,unique:uniq_person_ssn"` - - // Not null constraint - Name string `neo4j:"name,notNull"` - - // Node key (unique + not null, typically composite) - TenantID string `neo4j:"tenant_id,nodeKey:key_person_tenant"` - PersonID string `neo4j:"person_id,nodeKey:key_person_tenant"` - - // Combine constraints - Code string `neo4j:"code,unique,notNull"` -} -``` - -#### Full Example - -```go -type Movie struct { - neogo.Node `neo4j:"Movie"` - - // ID field (inherited from Node, already indexed by default?) - // Or explicit: ID string `neo4j:"id,unique"` - - // Unique title within a year (composite unique) - Title string `neo4j:"title,unique:uniq_movie_title_year,priority:1"` - Year int `neo4j:"year,unique:uniq_movie_title_year,priority:2,index"` - - // Full-text search on plot - Plot string `neo4j:"plot,fulltext:ft_movie_plot"` - - // Required fields - Director string `neo4j:"director,notNull,index"` - - // Vector embeddings for similarity search - PlotEmbedding []float32 `neo4j:"plot_embedding,vector:1536,similarity:cosine"` -} -``` - ---- - -### Internal Representation - -#### Schema Metadata Types - -```go -// IndexType represents Neo4j index types -type IndexType string - -const ( - IndexTypeRange IndexType = "RANGE" // Default - IndexTypeText IndexType = "TEXT" - IndexTypePoint IndexType = "POINT" - IndexTypeFulltext IndexType = "FULLTEXT" - IndexTypeVector IndexType = "VECTOR" -) - -// ConstraintType represents Neo4j constraint types -type ConstraintType string - -const ( - ConstraintTypeUnique ConstraintType = "UNIQUE" - ConstraintTypeNodeKey ConstraintType = "NODE_KEY" - ConstraintTypeNotNull ConstraintType = "NOT_NULL" -) - -// IndexDef represents an index definition parsed from tags -type IndexDef struct { - Name string // Auto-generated or explicit - Type IndexType // RANGE, TEXT, POINT, FULLTEXT, VECTOR - Label string // Node label (from struct) - Properties []IndexProperty // Ordered by priority - Options map[string]string // Type-specific options (dimensions, similarity, etc.) -} - -type IndexProperty struct { - Name string // DB property name - Priority int // For composite index ordering -} - -// ConstraintDef represents a constraint definition parsed from tags -type ConstraintDef struct { - Name string // Auto-generated or explicit - Type ConstraintType // UNIQUE, NODE_KEY, NOT_NULL - Label string // Node label - Properties []string // Property names (composite for NODE_KEY) -} - -// SchemaMeta holds all schema metadata for a registered type -type SchemaMeta struct { - TypeName string - Labels []string - Indexes []IndexDef - Constraints []ConstraintDef -} -``` - -#### Integration with Existing Code - -Current flow: -1. `parseNeo4jTag()` in `internal/codec/tags.go` → returns `(fieldName, []options)` -2. `parseFieldInfo()` → creates `FieldInfo` with processed options -3. `RegisterNode()` in `internal/registry.go` → stores in `RegisteredNode` - -New flow additions: -1. Extend `FieldInfo` with schema metadata: - ```go - type FieldInfo struct { - // ... existing fields ... - Index *IndexSpec // nil if no index - Constraint *ConstraintSpec // nil if no constraint - } - - type IndexSpec struct { - Name string // Empty = auto-generate - Type IndexType // Default = RANGE - Priority int // For composite (default 10) - Options map[string]string - } - - type ConstraintSpec struct { - Name string // Empty = auto-generate - Type ConstraintType - } - ``` - -2. Aggregate in `RegisteredNode`: - ```go - type RegisteredNode struct { - // ... existing fields ... - Schema *SchemaMeta // Aggregated indexes/constraints - } - ``` - -3. New `Schema` interface on Driver: - ```go - type Schema interface { - // Generate CREATE INDEX/CONSTRAINT statements - AutoMigrate(ctx context.Context, types ...any) error - - // Get current schema state - GetIndexes(ctx context.Context) ([]IndexInfo, error) - GetConstraints(ctx context.Context) ([]ConstraintInfo, error) - - // Check if migration needed - NeedsMigration(ctx context.Context) (bool, error) - } - ``` - ---- - -### GORM Lessons Learned - -Key insights from GORM's implementation: - -1. **Two-Level Parsing**: Base parser (`ParseTagSetting`) + type-specific parser (`parseFieldIndexes`) - -2. **Composite Index Merging**: Fields with same index name are aggregated, sorted by priority: - ```go - indexesByName[index.Name] = &Index{...} - idx.Fields = append(idx.Fields, ...) - sort.Slice(idx.Fields, func(i, j int) bool { - return idx.Fields[i].Priority < idx.Fields[j].Priority - }) - ``` - -3. **Naming Strategy**: Interface for customizable auto-naming: - ```go - type Namer interface { - IndexName(label, property string) string // "idx_person_email" - } - ``` - -4. **Settings Map**: Parse options into map, apply defaults: - ```go - settings := ParseTagSetting(tagSetting, ",") - priority, _ := strconv.Atoi(settings["PRIORITY"]) - if err != nil { priority = 10 } - ``` - ---- - -### Implementation Plan - -#### Phase 1: Tag Parsing (extends existing code) - -1. **Update `parseNeo4jTag()`** to recognize schema options: - - `index`, `index:name`, `index:type`, `index:name:type` - - `unique`, `unique:name` - - `notNull`, `notNull:name` - - `nodeKey:name` - - `fulltext`, `fulltext:name` - - `vector:dimensions`, `vector:dimensions:similarity` - - `priority:N` - -2. **Update `FieldInfo`** struct with `IndexSpec` and `ConstraintSpec` - -3. **Add schema aggregation** in `RegisterNode()` to build `SchemaMeta` - -#### Phase 2: Cypher Generation - -1. **Add `GenerateIndexCypher()`** method: - ```go - func (idx IndexDef) GenerateCypher() string { - // CREATE INDEX idx_person_email FOR (n:Person) ON (n.email) - // CREATE FULLTEXT INDEX ft_movie_plot FOR (n:Movie) ON EACH [n.plot] - // CREATE VECTOR INDEX vec_movie_embed FOR (n:Movie) ON (n.embedding) OPTIONS {...} - } - ``` - -2. **Add `GenerateConstraintCypher()`** method: - ```go - func (c ConstraintDef) GenerateCypher() string { - // CREATE CONSTRAINT uniq_person_email FOR (n:Person) REQUIRE n.email IS UNIQUE - // CREATE CONSTRAINT key_person_tenant FOR (n:Person) REQUIRE (n.tenant_id, n.person_id) IS NODE KEY - } - ``` - -#### Phase 3: Schema Interface - -1. **Add `Driver.Schema()`** method returning `Schema` interface - -2. **Implement `AutoMigrate()`**: - - Get current indexes/constraints from DB - - Generate missing ones - - Execute CREATE statements - -3. **Implement introspection**: - ```cypher - SHOW INDEXES YIELD name, type, labelsOrTypes, properties, options - SHOW CONSTRAINTS YIELD name, type, labelsOrTypes, properties - ``` - -#### Phase 4: Testing - -1. Unit tests for tag parsing -2. Integration tests for Cypher generation -3. Integration tests with Neo4j for AutoMigrate - ---- - -### Design Decisions - -1. **Auto-index on Node.ID?** ✅ YES - The base `Node` type's `ID` field automatically gets a unique constraint. - -2. **Relationship indexes?** ✅ YES - Support relationship property indexes: - ```go - type ActedIn struct { - neogo.Relationship `neo4j:"ACTED_IN"` - Role string `neo4j:"role,index"` // Index on relationship property - } - ``` - -3. **Drop behavior?** ❌ NO - AutoMigrate should NOT drop indexes/constraints not in code. It's additive-only for safety. Users can manually drop if needed. - -4. **Migration versioning?** Deferred - Not in initial implementation. Can add later if needed. - ---- - -### Naming Conventions - -#### Brainstorming - -**Option A: Verbose/Descriptive (GORM-style)** -``` -idx_person_email # index -idx_person_first_name_last_name # composite index -uniq_person_email # unique constraint -nn_person_name # not null -key_person_tenant_id_person_id # node key -ft_movie_plot # fulltext -vec_movie_embedding # vector -txt_person_bio # text index -pt_location_coords # point index -``` -- ✅ Clear what each is -- ✅ Matches GORM conventions -- ❌ Long names for composites -- ❌ Inconsistent prefixes (idx vs uniq vs nn vs key) - -**Option B: Type Prefix Consistency** -``` -idx_range_person_email -idx_text_person_bio -idx_point_location_coords -idx_fulltext_movie_plot -idx_vector_movie_embedding -con_unique_person_email -con_notnull_person_name -con_nodekey_person_tenant_id_person_id -``` -- ✅ Very explicit about type -- ✅ Consistent idx_/con_ prefix -- ❌ Very verbose -- ❌ Neo4j has 252 char limit but still ugly - -**Option C: Short Prefixes** -``` -i_person_email # range index (default) -it_person_bio # text index -ip_location_coords # point index -ift_movie_plot # fulltext index -iv_movie_embedding # vector index -cu_person_email # constraint unique -cn_person_name # constraint not null -ck_person_tenant_person # constraint node key -``` -- ✅ Short -- ❌ Cryptic, hard to remember -- ❌ `i_` vs `it_` confusing - -**Option D: Neo4j Native Style** -Neo4j's auto-generated names use patterns like: -- `constraint_unique_Person_email` -- `index_Person_email` - -Adapt to: -``` -neogo_idx_Person_email -neogo_idx_Person_firstName_lastName -neogo_unique_Person_email -neogo_notnull_Person_name -neogo_nodekey_Person_tenantId_personId -neogo_fulltext_Movie_plot -neogo_vector_Movie_embedding -neogo_text_Person_bio -neogo_point_Location_coords -``` -- ✅ Clear namespace (neogo_) -- ✅ Preserves case from Go (Person not person) -- ✅ Type is explicit -- ❌ Longer than Option A - -**Option E: Hybrid (RECOMMENDED)** -``` -# Indexes - prefix by type -idx_Person_email # range (default) -text_Person_bio # text -point_Location_coords # point -fulltext_Movie_plot # fulltext -vector_Movie_embedding # vector - -# Constraints - prefix by constraint type -unique_Person_email # unique -notnull_Person_name # not null -nodekey_Person_tenantId_personId # node key - -# Composite - join with underscore -idx_Person_firstName_lastName -unique_Movie_title_year -``` - -**Reasoning for Option E:** -1. **Index prefix reflects what it IS** - When you see `text_Person_bio` you know it's a text index -2. **Constraint prefix reflects what it DOES** - `unique_Person_email` clearly enforces uniqueness -3. **CamelCase labels** - Matches Neo4j convention (Person not person) -4. **snake_case properties** - Matches our DB naming convention -5. **Composites are obvious** - Multiple properties joined with underscore - -#### Final Convention (Option E) - -| Schema Type | Pattern | Example | -|-------------|---------|---------| -| Range Index | `idx_{Label}_{prop}` | `idx_Person_email` | -| Text Index | `text_{Label}_{prop}` | `text_Person_bio` | -| Point Index | `point_{Label}_{prop}` | `point_Location_coords` | -| Fulltext Index | `fulltext_{Label}_{prop}` | `fulltext_Movie_plot` | -| Vector Index | `vector_{Label}_{prop}` | `vector_Movie_embedding` | -| Unique Constraint | `unique_{Label}_{prop}` | `unique_Person_email` | -| Not Null Constraint | `notnull_{Label}_{prop}` | `notnull_Person_name` | -| Node Key Constraint | `nodekey_{Label}_{props}` | `nodekey_Person_tenant_id_person_id` | -| Rel Range Index | `idx_{RelType}_{prop}` | `idx_ACTED_IN_role` | -| Rel Unique Constraint | `unique_{RelType}_{prop}` | `unique_WORKED_AT_employee_id` | - -**Composite naming**: Properties joined with `_` in order of priority -- `idx_Person_first_name_last_name` (firstName priority:1, lastName priority:2) - -**Special case - Node.ID**: -- Auto-generated: `unique_{Label}_id` for each registered node type - ---- - -### References - -- Neo4j Indexes: https://neo4j.com/docs/cypher-manual/current/indexes/ -- Neo4j Constraints: https://neo4j.com/docs/cypher-manual/current/constraints/ -- GORM Schema: https://github.com/go-gorm/gorm/tree/master/schema -- ORM Feature Comparison: ./ORM_FEATURE_COMPARISON.md diff --git a/vendor/github.com/rlch/neogo/registry.go b/vendor/github.com/rlch/neogo/registry.go deleted file mode 100644 index 4555456..0000000 --- a/vendor/github.com/rlch/neogo/registry.go +++ /dev/null @@ -1,198 +0,0 @@ -package neogo - -import ( - "reflect" - - "github.com/rlch/neogo/internal" - "github.com/rlch/neogo/internal/codec" -) - -// Registry manages type registration and metadata for neogo models. -// It provides schema introspection capabilities for external tools like scaf. -type Registry struct { - internal *internal.Registry -} - -// NewRegistry creates a new empty registry. -func NewRegistry() *Registry { - return &Registry{ - internal: internal.NewRegistry(), - } -} - -// RegisterTypes registers multiple types with the registry. -// Types should be zero-value pointers (e.g., &Person{}, &Movie{}). -func (r *Registry) RegisterTypes(types ...any) { - r.internal.RegisterTypes(types...) -} - -// Nodes returns all registered node types. -func (r *Registry) Nodes() []*RegisteredNode { - nodes := r.internal.Nodes - result := make([]*RegisteredNode, len(nodes)) - for i, n := range nodes { - result[i] = &RegisteredNode{internal: n, codecs: r.internal.Codecs()} - } - return result -} - -// Relationships returns all registered relationship types. -func (r *Registry) Relationships() []*RegisteredRelationship { - rels := r.internal.Relationships - result := make([]*RegisteredRelationship, len(rels)) - for i, rel := range rels { - result[i] = &RegisteredRelationship{internal: rel} - } - return result -} - -// GetRelMeta returns relationship struct metadata by name. -// Returns nil if not found. -func (r *Registry) GetRelMeta(name string) *RelationshipMeta { - meta := r.internal.Codecs().GetRelMeta(name) - if meta == nil { - return nil - } - return &RelationshipMeta{internal: meta} -} - -// RegisteredNode represents a registered node type. -type RegisteredNode struct { - internal *internal.RegisteredNode - codecs *codec.CodecRegistry -} - -// Name returns the node type name (e.g., "Person"). -func (n *RegisteredNode) Name() string { - return n.internal.Name() -} - -// Type returns the reflect.Type for this node. -func (n *RegisteredNode) Type() reflect.Type { - return n.internal.Type() -} - -// FieldsToProps returns a map from Go field names to database property names. -func (n *RegisteredNode) FieldsToProps() map[string]string { - return n.internal.FieldsToProps() -} - -// Relationships returns the relationship targets for this node. -// The map key is the Go field name. -func (n *RegisteredNode) Relationships() map[string]*RelationshipTarget { - rels := n.internal.Relationships - if rels == nil { - return nil - } - result := make(map[string]*RelationshipTarget, len(rels)) - for fieldName, target := range rels { - result[fieldName] = &RelationshipTarget{internal: target} - } - return result -} - -// RegisteredRelationship represents a registered relationship type. -type RegisteredRelationship struct { - internal *internal.RegisteredRelationship -} - -// Name returns the relationship type name (e.g., "ActedIn"). -// Returns empty string for shorthand relationships. -func (r *RegisteredRelationship) Name() string { - return r.internal.Name() -} - -// Type returns the reflect.Type for this relationship. -func (r *RegisteredRelationship) Type() reflect.Type { - return r.internal.Type() -} - -// FieldsToProps returns a map from Go field names to database property names. -func (r *RegisteredRelationship) FieldsToProps() map[string]string { - return r.internal.FieldsToProps() -} - -// RelationshipTarget represents a relationship from a node to another entity. -type RelationshipTarget struct { - internal *internal.RelationshipTarget -} - -// Many returns true if this is a one-to-many relationship (Many[T]). -func (t *RelationshipTarget) Many() bool { - return t.internal.Many -} - -// Dir returns true for outgoing relationships (->), false for incoming (<-). -func (t *RelationshipTarget) Dir() bool { - return t.internal.Dir -} - -// RelType returns the database relationship type (e.g., "ACTED_IN"). -func (t *RelationshipTarget) RelType() string { - return t.internal.Rel.Reltype -} - -// RelName returns the relationship struct name, or empty string for shorthand relationships. -func (t *RelationshipTarget) RelName() string { - return t.internal.Rel.Name() -} - -// StartNode returns the start node target, or nil if not available. -func (t *RelationshipTarget) StartNode() *NodeTarget { - if t.internal.Rel.StartNode.RegisteredNode == nil { - return nil - } - return &NodeTarget{internal: &t.internal.Rel.StartNode} -} - -// EndNode returns the end node target, or nil if not available. -func (t *RelationshipTarget) EndNode() *NodeTarget { - if t.internal.Rel.EndNode.RegisteredNode == nil { - return nil - } - return &NodeTarget{internal: &t.internal.Rel.EndNode} -} - -// NodeTarget represents a node at one end of a relationship. -type NodeTarget struct { - internal *internal.NodeTarget -} - -// Name returns the node type name. -func (t *NodeTarget) Name() string { - if t.internal == nil || t.internal.RegisteredNode == nil { - return "" - } - return t.internal.Name() -} - -// RelationshipMeta contains metadata about a relationship struct. -type RelationshipMeta struct { - internal *codec.RelationshipStructMeta -} - -// StartNode returns metadata about the start node field, or nil if not defined. -func (m *RelationshipMeta) StartNode() *RelationshipNodeMeta { - if m.internal.StartNode == nil { - return nil - } - return &RelationshipNodeMeta{internal: m.internal.StartNode} -} - -// EndNode returns metadata about the end node field, or nil if not defined. -func (m *RelationshipMeta) EndNode() *RelationshipNodeMeta { - if m.internal.EndNode == nil { - return nil - } - return &RelationshipNodeMeta{internal: m.internal.EndNode} -} - -// RelationshipNodeMeta contains metadata about a node field in a relationship struct. -type RelationshipNodeMeta struct { - internal *codec.NodeFieldMeta -} - -// NodeType returns the reflect.Type of the node (pointer type, e.g., *Person). -func (m *RelationshipNodeMeta) NodeType() reflect.Type { - return m.internal.NodeType -} diff --git a/vendor/github.com/rlch/neogo/schema.go b/vendor/github.com/rlch/neogo/schema.go deleted file mode 100644 index d7e3def..0000000 --- a/vendor/github.com/rlch/neogo/schema.go +++ /dev/null @@ -1,88 +0,0 @@ -package neogo - -import ( - "context" - - "github.com/rlch/neogo/internal/codec" -) - -// Schema provides schema introspection and migration capabilities for Neo4j. -// It allows querying existing indexes/constraints and performing additive migrations. -type Schema interface { - // GetIndexes returns all indexes from the database. - // Excludes internal LOOKUP indexes used by Neo4j. - GetIndexes(ctx context.Context) ([]IndexInfo, error) - - // GetConstraints returns all constraints from the database. - GetConstraints(ctx context.Context) ([]ConstraintInfo, error) - - // AutoMigrate creates missing indexes and constraints for registered types. - // If no types are provided, migrates all registered types. - // It is ADDITIVE ONLY - it never drops existing schema elements. - // Returns the list of actions that were executed. - AutoMigrate(ctx context.Context, types ...any) ([]MigrationAction, error) - - // NeedsMigration checks if any registered types need schema migration. - // If no types are provided, checks all registered types. - // Returns true if migration is needed, along with the pending actions. - NeedsMigration(ctx context.Context, types ...any) (bool, []MigrationAction, error) -} - -// IndexInfo represents an index as returned by SHOW INDEXES. -type IndexInfo struct { - Name string // Index name - Type string // RANGE, TEXT, POINT, FULLTEXT, VECTOR, LOOKUP - EntityType string // NODE or RELATIONSHIP - LabelsOrTypes []string // Labels (for nodes) or types (for relationships) - Properties []string // Property names included in the index - State string // ONLINE, POPULATING, FAILED - Options map[string]any // Index-specific options (e.g., vector dimensions) -} - -// ConstraintInfo represents a constraint as returned by SHOW CONSTRAINTS. -type ConstraintInfo struct { - Name string // Constraint name - Type string // UNIQUENESS, NODE_KEY, NODE_PROPERTY_EXISTENCE, etc. - EntityType string // NODE or RELATIONSHIP - LabelsOrTypes []string // Labels (for nodes) or types (for relationships) - Properties []string // Property names included in the constraint -} - -// MigrationAction represents a pending or executed schema change. -type MigrationAction struct { - Type MigrationActionType // CREATE_INDEX or CREATE_CONSTRAINT - Name string // Schema element name - Cypher string // The Cypher statement to execute -} - -// MigrationActionType represents the type of migration action. -type MigrationActionType string - -const ( - // MigrationCreateIndex represents a CREATE INDEX action. - MigrationCreateIndex MigrationActionType = "CREATE_INDEX" - // MigrationCreateConstraint represents a CREATE CONSTRAINT action. - MigrationCreateConstraint MigrationActionType = "CREATE_CONSTRAINT" -) - -// IndexType re-exports codec.IndexType for external use. -type IndexType = codec.IndexType - -// Index type constants re-exported from codec. -const ( - IndexTypeRange = codec.IndexTypeRange - IndexTypeText = codec.IndexTypeText - IndexTypePoint = codec.IndexTypePoint - IndexTypeFulltext = codec.IndexTypeFulltext - IndexTypeVector = codec.IndexTypeVector -) - -// ConstraintType re-exports codec.ConstraintType for external use. -type ConstraintType = codec.ConstraintType - -// Constraint type constants re-exported from codec. -const ( - ConstraintTypeUnique = codec.ConstraintTypeUnique - ConstraintTypeNodeKey = codec.ConstraintTypeNodeKey - ConstraintTypeNotNull = codec.ConstraintTypeNotNull -) diff --git a/vendor/github.com/rlch/neogo/schema_impl.go b/vendor/github.com/rlch/neogo/schema_impl.go deleted file mode 100644 index 3d20f4b..0000000 --- a/vendor/github.com/rlch/neogo/schema_impl.go +++ /dev/null @@ -1,294 +0,0 @@ -package neogo - -import ( - "context" - "fmt" - "reflect" - - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - - "github.com/rlch/neogo/internal" - "github.com/rlch/neogo/internal/codec" -) - -// schemaImpl implements the Schema interface. -type schemaImpl struct { - db neo4j.DriverWithContext - registry *internal.Registry -} - -// newSchema creates a new Schema implementation. -func newSchema(db neo4j.DriverWithContext, registry *internal.Registry) Schema { - return &schemaImpl{ - db: db, - registry: registry, - } -} - -// GetIndexes returns all indexes from the database. -func (s *schemaImpl) GetIndexes(ctx context.Context) ([]IndexInfo, error) { - session := s.db.NewSession(ctx, neo4j.SessionConfig{AccessMode: neo4j.AccessModeRead}) - defer func() { _ = session.Close(ctx) }() - - result, err := session.Run(ctx, - `SHOW INDEXES YIELD name, type, entityType, labelsOrTypes, properties, state, options - WHERE type <> 'LOOKUP'`, - nil, - ) - if err != nil { - return nil, fmt.Errorf("failed to query indexes: %w", err) - } - - var indexes []IndexInfo - for result.Next(ctx) { - record := result.Record() - - name, _ := record.Get("name") - typ, _ := record.Get("type") - entityType, _ := record.Get("entityType") - labelsOrTypes, _ := record.Get("labelsOrTypes") - properties, _ := record.Get("properties") - state, _ := record.Get("state") - options, _ := record.Get("options") - - idx := IndexInfo{ - Name: asString(name), - Type: asString(typ), - EntityType: asString(entityType), - State: asString(state), - } - - if labels, ok := labelsOrTypes.([]any); ok { - idx.LabelsOrTypes = make([]string, len(labels)) - for i, l := range labels { - idx.LabelsOrTypes[i] = asString(l) - } - } - - if props, ok := properties.([]any); ok { - idx.Properties = make([]string, len(props)) - for i, p := range props { - idx.Properties[i] = asString(p) - } - } - - if opts, ok := options.(map[string]any); ok { - idx.Options = opts - } - - indexes = append(indexes, idx) - } - - if err := result.Err(); err != nil { - return nil, fmt.Errorf("error iterating indexes: %w", err) - } - - return indexes, nil -} - -// GetConstraints returns all constraints from the database. -func (s *schemaImpl) GetConstraints(ctx context.Context) ([]ConstraintInfo, error) { - session := s.db.NewSession(ctx, neo4j.SessionConfig{AccessMode: neo4j.AccessModeRead}) - defer func() { _ = session.Close(ctx) }() - - result, err := session.Run(ctx, - `SHOW CONSTRAINTS YIELD name, type, entityType, labelsOrTypes, properties`, - nil, - ) - if err != nil { - return nil, fmt.Errorf("failed to query constraints: %w", err) - } - - var constraints []ConstraintInfo - for result.Next(ctx) { - record := result.Record() - - name, _ := record.Get("name") - typ, _ := record.Get("type") - entityType, _ := record.Get("entityType") - labelsOrTypes, _ := record.Get("labelsOrTypes") - properties, _ := record.Get("properties") - - con := ConstraintInfo{ - Name: asString(name), - Type: asString(typ), - EntityType: asString(entityType), - } - - if labels, ok := labelsOrTypes.([]any); ok { - con.LabelsOrTypes = make([]string, len(labels)) - for i, l := range labels { - con.LabelsOrTypes[i] = asString(l) - } - } - - if props, ok := properties.([]any); ok { - con.Properties = make([]string, len(props)) - for i, p := range props { - con.Properties[i] = asString(p) - } - } - - constraints = append(constraints, con) - } - - if err := result.Err(); err != nil { - return nil, fmt.Errorf("error iterating constraints: %w", err) - } - - return constraints, nil -} - -// AutoMigrate creates missing indexes and constraints for registered types. -func (s *schemaImpl) AutoMigrate(ctx context.Context, types ...any) ([]MigrationAction, error) { - // Get pending actions - needsMigration, actions, err := s.NeedsMigration(ctx, types...) - if err != nil { - return nil, err - } - - if !needsMigration { - return nil, nil - } - - // Execute each action - session := s.db.NewSession(ctx, neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite}) - defer func() { _ = session.Close(ctx) }() - - var executed []MigrationAction - for _, action := range actions { - _, err := session.Run(ctx, action.Cypher, nil) - if err != nil { - return executed, fmt.Errorf("failed to execute %s for %s: %w", action.Type, action.Name, err) - } - executed = append(executed, action) - } - - return executed, nil -} - -// NeedsMigration checks if any registered types need schema migration. -func (s *schemaImpl) NeedsMigration(ctx context.Context, types ...any) (bool, []MigrationAction, error) { - // Get existing schema from database - existingIndexes, err := s.GetIndexes(ctx) - if err != nil { - return false, nil, fmt.Errorf("failed to get existing indexes: %w", err) - } - - existingConstraints, err := s.GetConstraints(ctx) - if err != nil { - return false, nil, fmt.Errorf("failed to get existing constraints: %w", err) - } - - // Build lookup maps by name - indexByName := make(map[string]struct{}, len(existingIndexes)) - for _, idx := range existingIndexes { - indexByName[idx.Name] = struct{}{} - } - - constraintByName := make(map[string]struct{}, len(existingConstraints)) - for _, con := range existingConstraints { - constraintByName[con.Name] = struct{}{} - } - - // Collect schemas to check - var schemas []*codec.SchemaMeta - - if len(types) == 0 { - // Check all registered types - for _, node := range s.registry.Nodes { - if schema := node.Schema(); schema != nil { - schemas = append(schemas, schema) - } - } - for _, rel := range s.registry.Relationships { - if schema := rel.Schema(); schema != nil { - schemas = append(schemas, schema) - } - } - } else { - // Check only specified types - for _, t := range types { - schema := s.getSchemaForType(t) - if schema != nil { - schemas = append(schemas, schema) - } - } - } - - // Find missing indexes and constraints - var actions []MigrationAction - - for _, schema := range schemas { - // Check indexes - for _, idx := range schema.Indexes { - if _, exists := indexByName[idx.Name]; !exists { - cypher := idx.GenerateIndexCypher() - if cypher != "" { - actions = append(actions, MigrationAction{ - Type: MigrationCreateIndex, - Name: idx.Name, - Cypher: cypher, - }) - } - } - } - - // Check constraints - for _, con := range schema.Constraints { - if _, exists := constraintByName[con.Name]; !exists { - cypher := con.GenerateConstraintCypher() - if cypher != "" { - actions = append(actions, MigrationAction{ - Type: MigrationCreateConstraint, - Name: con.Name, - Cypher: cypher, - }) - } - } - } - } - - return len(actions) > 0, actions, nil -} - -// getSchemaForType returns the schema for a given type instance. -func (s *schemaImpl) getSchemaForType(t any) *codec.SchemaMeta { - typ := reflect.TypeOf(t) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - entity := s.registry.Get(typ) - if entity == nil { - return nil - } - - // Try as node - if node, ok := entity.(*internal.RegisteredNode); ok { - return node.Schema() - } - - // Try as abstract node - if absNode, ok := entity.(*internal.RegisteredAbstractNode); ok { - return absNode.Schema() - } - - // Try as relationship - if rel, ok := entity.(*internal.RegisteredRelationship); ok { - return rel.Schema() - } - - return nil -} - -// asString safely converts any value to string. -func asString(v any) string { - if v == nil { - return "" - } - if s, ok := v.(string); ok { - return s - } - return fmt.Sprintf("%v", v) -} diff --git a/vendor/github.com/rlch/neogo/valuer.go b/vendor/github.com/rlch/neogo/valuer.go deleted file mode 100644 index f6f64de..0000000 --- a/vendor/github.com/rlch/neogo/valuer.go +++ /dev/null @@ -1,30 +0,0 @@ -package neogo - -import ( - "github.com/neo4j/neo4j-go-driver/v5/neo4j" - "github.com/rlch/neogo/internal" -) - -// Valuer allows arbitrary types to be marshalled into and unmarshalled from -// Neo4J data types. This allows any type (as oppposed to stdlib types, [INode], -// [IAbstract], [IRelationship], and structs with neo4j tags) to be used with -// [neogo]. The valid Neo4J data types are defined by [neo4j.RecordValue]. -// -// For example, here we define a custom type MyString that marshals to and -// from a string, one of the types in the [neo4j.RecordValue] union: -// -// type MyString string -// -// var _ Valuer[string] = (*MyString)(nil) -// -// func (s MyString) Marshal() (*string, error) { -// return func(s string) *string { -// return &s -// }(string(s)), nil -// } -// -// func (s *MyString) Unmarshal(v *string) error { -// *s = MyString(*v) -// return nil -// } -type Valuer[V neo4j.RecordValue] internal.Valuer[V] diff --git a/vendor/github.com/segmentio/asm/LICENSE b/vendor/github.com/segmentio/asm/LICENSE deleted file mode 100644 index 29e1ab6..0000000 --- a/vendor/github.com/segmentio/asm/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Segment - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/segmentio/asm/ascii/ascii.go b/vendor/github.com/segmentio/asm/ascii/ascii.go deleted file mode 100644 index 4805146..0000000 --- a/vendor/github.com/segmentio/asm/ascii/ascii.go +++ /dev/null @@ -1,53 +0,0 @@ -package ascii - -import _ "github.com/segmentio/asm/cpu" - -// https://graphics.stanford.edu/~seander/bithacks.html#HasLessInWord -const ( - hasLessConstL64 = (^uint64(0)) / 255 - hasLessConstR64 = hasLessConstL64 * 128 - - hasLessConstL32 = (^uint32(0)) / 255 - hasLessConstR32 = hasLessConstL32 * 128 - - hasMoreConstL64 = (^uint64(0)) / 255 - hasMoreConstR64 = hasMoreConstL64 * 128 - - hasMoreConstL32 = (^uint32(0)) / 255 - hasMoreConstR32 = hasMoreConstL32 * 128 -) - -func hasLess64(x, n uint64) bool { - return ((x - (hasLessConstL64 * n)) & ^x & hasLessConstR64) != 0 -} - -func hasLess32(x, n uint32) bool { - return ((x - (hasLessConstL32 * n)) & ^x & hasLessConstR32) != 0 -} - -func hasMore64(x, n uint64) bool { - return (((x + (hasMoreConstL64 * (127 - n))) | x) & hasMoreConstR64) != 0 -} - -func hasMore32(x, n uint32) bool { - return (((x + (hasMoreConstL32 * (127 - n))) | x) & hasMoreConstR32) != 0 -} - -var lowerCase = [256]byte{ - 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, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, -} diff --git a/vendor/github.com/segmentio/asm/ascii/equal_fold.go b/vendor/github.com/segmentio/asm/ascii/equal_fold.go deleted file mode 100644 index d90d8ca..0000000 --- a/vendor/github.com/segmentio/asm/ascii/equal_fold.go +++ /dev/null @@ -1,30 +0,0 @@ -package ascii - -import ( - "github.com/segmentio/asm/internal/unsafebytes" -) - -// EqualFold is a version of bytes.EqualFold designed to work on ASCII input -// instead of UTF-8. -// -// When the program has guarantees that the input is composed of ASCII -// characters only, it allows for greater optimizations. -func EqualFold(a, b []byte) bool { - return EqualFoldString(unsafebytes.String(a), unsafebytes.String(b)) -} - -func HasPrefixFold(s, prefix []byte) bool { - return len(s) >= len(prefix) && EqualFold(s[:len(prefix)], prefix) -} - -func HasSuffixFold(s, suffix []byte) bool { - return len(s) >= len(suffix) && EqualFold(s[len(s)-len(suffix):], suffix) -} - -func HasPrefixFoldString(s, prefix string) bool { - return len(s) >= len(prefix) && EqualFoldString(s[:len(prefix)], prefix) -} - -func HasSuffixFoldString(s, suffix string) bool { - return len(s) >= len(suffix) && EqualFoldString(s[len(s)-len(suffix):], suffix) -} diff --git a/vendor/github.com/segmentio/asm/ascii/equal_fold_amd64.go b/vendor/github.com/segmentio/asm/ascii/equal_fold_amd64.go deleted file mode 100644 index 07cf6cd..0000000 --- a/vendor/github.com/segmentio/asm/ascii/equal_fold_amd64.go +++ /dev/null @@ -1,13 +0,0 @@ -// Code generated by command: go run equal_fold_asm.go -pkg ascii -out ../ascii/equal_fold_amd64.s -stubs ../ascii/equal_fold_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -package ascii - -// EqualFoldString is a version of strings.EqualFold designed to work on ASCII -// input instead of UTF-8. -// -// When the program has guarantees that the input is composed of ASCII -// characters only, it allows for greater optimizations. -func EqualFoldString(a string, b string) bool diff --git a/vendor/github.com/segmentio/asm/ascii/equal_fold_amd64.s b/vendor/github.com/segmentio/asm/ascii/equal_fold_amd64.s deleted file mode 100644 index 34495a6..0000000 --- a/vendor/github.com/segmentio/asm/ascii/equal_fold_amd64.s +++ /dev/null @@ -1,304 +0,0 @@ -// Code generated by command: go run equal_fold_asm.go -pkg ascii -out ../ascii/equal_fold_amd64.s -stubs ../ascii/equal_fold_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -#include "textflag.h" - -// func EqualFoldString(a string, b string) bool -// Requires: AVX, AVX2, SSE4.1 -TEXT ·EqualFoldString(SB), NOSPLIT, $0-33 - MOVQ a_base+0(FP), CX - MOVQ a_len+8(FP), DX - MOVQ b_base+16(FP), BX - CMPQ DX, b_len+24(FP) - JNE done - XORQ AX, AX - CMPQ DX, $0x10 - JB init_x86 - BTL $0x08, github·com∕segmentio∕asm∕cpu·X86+0(SB) - JCS init_avx - -init_x86: - LEAQ github·com∕segmentio∕asm∕ascii·lowerCase+0(SB), R9 - XORL SI, SI - -cmp8: - CMPQ DX, $0x08 - JB cmp7 - MOVBLZX (CX)(AX*1), DI - MOVBLZX (BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - MOVBLZX 1(CX)(AX*1), DI - MOVBLZX 1(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - MOVBLZX 2(CX)(AX*1), DI - MOVBLZX 2(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - MOVBLZX 3(CX)(AX*1), DI - MOVBLZX 3(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - MOVBLZX 4(CX)(AX*1), DI - MOVBLZX 4(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - MOVBLZX 5(CX)(AX*1), DI - MOVBLZX 5(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - MOVBLZX 6(CX)(AX*1), DI - MOVBLZX 6(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - MOVBLZX 7(CX)(AX*1), DI - MOVBLZX 7(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - JNE done - ADDQ $0x08, AX - SUBQ $0x08, DX - JMP cmp8 - -cmp7: - CMPQ DX, $0x07 - JB cmp6 - MOVBLZX 6(CX)(AX*1), DI - MOVBLZX 6(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - -cmp6: - CMPQ DX, $0x06 - JB cmp5 - MOVBLZX 5(CX)(AX*1), DI - MOVBLZX 5(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - -cmp5: - CMPQ DX, $0x05 - JB cmp4 - MOVBLZX 4(CX)(AX*1), DI - MOVBLZX 4(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - -cmp4: - CMPQ DX, $0x04 - JB cmp3 - MOVBLZX 3(CX)(AX*1), DI - MOVBLZX 3(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - -cmp3: - CMPQ DX, $0x03 - JB cmp2 - MOVBLZX 2(CX)(AX*1), DI - MOVBLZX 2(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - -cmp2: - CMPQ DX, $0x02 - JB cmp1 - MOVBLZX 1(CX)(AX*1), DI - MOVBLZX 1(BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - -cmp1: - CMPQ DX, $0x01 - JB success - MOVBLZX (CX)(AX*1), DI - MOVBLZX (BX)(AX*1), R8 - MOVB (R9)(DI*1), DI - XORB (R9)(R8*1), DI - ORB DI, SI - -done: - SETEQ ret+32(FP) - RET - -success: - MOVB $0x01, ret+32(FP) - RET - -init_avx: - MOVB $0x20, SI - PINSRB $0x00, SI, X12 - VPBROADCASTB X12, Y12 - MOVB $0x1f, SI - PINSRB $0x00, SI, X13 - VPBROADCASTB X13, Y13 - MOVB $0x9a, SI - PINSRB $0x00, SI, X14 - VPBROADCASTB X14, Y14 - MOVB $0x01, SI - PINSRB $0x00, SI, X15 - VPBROADCASTB X15, Y15 - -cmp128: - CMPQ DX, $0x80 - JB cmp64 - VMOVDQU (CX)(AX*1), Y0 - VMOVDQU 32(CX)(AX*1), Y1 - VMOVDQU 64(CX)(AX*1), Y2 - VMOVDQU 96(CX)(AX*1), Y3 - VMOVDQU (BX)(AX*1), Y4 - VMOVDQU 32(BX)(AX*1), Y5 - VMOVDQU 64(BX)(AX*1), Y6 - VMOVDQU 96(BX)(AX*1), Y7 - VXORPD Y0, Y4, Y4 - VPCMPEQB Y12, Y4, Y8 - VORPD Y12, Y0, Y0 - VPADDB Y13, Y0, Y0 - VPCMPGTB Y0, Y14, Y0 - VPAND Y8, Y0, Y0 - VPAND Y15, Y0, Y0 - VPSLLW $0x05, Y0, Y0 - VPCMPEQB Y4, Y0, Y0 - VXORPD Y1, Y5, Y5 - VPCMPEQB Y12, Y5, Y9 - VORPD Y12, Y1, Y1 - VPADDB Y13, Y1, Y1 - VPCMPGTB Y1, Y14, Y1 - VPAND Y9, Y1, Y1 - VPAND Y15, Y1, Y1 - VPSLLW $0x05, Y1, Y1 - VPCMPEQB Y5, Y1, Y1 - VXORPD Y2, Y6, Y6 - VPCMPEQB Y12, Y6, Y10 - VORPD Y12, Y2, Y2 - VPADDB Y13, Y2, Y2 - VPCMPGTB Y2, Y14, Y2 - VPAND Y10, Y2, Y2 - VPAND Y15, Y2, Y2 - VPSLLW $0x05, Y2, Y2 - VPCMPEQB Y6, Y2, Y2 - VXORPD Y3, Y7, Y7 - VPCMPEQB Y12, Y7, Y11 - VORPD Y12, Y3, Y3 - VPADDB Y13, Y3, Y3 - VPCMPGTB Y3, Y14, Y3 - VPAND Y11, Y3, Y3 - VPAND Y15, Y3, Y3 - VPSLLW $0x05, Y3, Y3 - VPCMPEQB Y7, Y3, Y3 - VPAND Y1, Y0, Y0 - VPAND Y3, Y2, Y2 - VPAND Y2, Y0, Y0 - ADDQ $0x80, AX - SUBQ $0x80, DX - VPMOVMSKB Y0, SI - XORL $0xffffffff, SI - JNE done - JMP cmp128 - -cmp64: - CMPQ DX, $0x40 - JB cmp32 - VMOVDQU (CX)(AX*1), Y0 - VMOVDQU 32(CX)(AX*1), Y1 - VMOVDQU (BX)(AX*1), Y2 - VMOVDQU 32(BX)(AX*1), Y3 - VXORPD Y0, Y2, Y2 - VPCMPEQB Y12, Y2, Y4 - VORPD Y12, Y0, Y0 - VPADDB Y13, Y0, Y0 - VPCMPGTB Y0, Y14, Y0 - VPAND Y4, Y0, Y0 - VPAND Y15, Y0, Y0 - VPSLLW $0x05, Y0, Y0 - VPCMPEQB Y2, Y0, Y0 - VXORPD Y1, Y3, Y3 - VPCMPEQB Y12, Y3, Y5 - VORPD Y12, Y1, Y1 - VPADDB Y13, Y1, Y1 - VPCMPGTB Y1, Y14, Y1 - VPAND Y5, Y1, Y1 - VPAND Y15, Y1, Y1 - VPSLLW $0x05, Y1, Y1 - VPCMPEQB Y3, Y1, Y1 - VPAND Y1, Y0, Y0 - ADDQ $0x40, AX - SUBQ $0x40, DX - VPMOVMSKB Y0, SI - XORL $0xffffffff, SI - JNE done - -cmp32: - CMPQ DX, $0x20 - JB cmp16 - VMOVDQU (CX)(AX*1), Y0 - VMOVDQU (BX)(AX*1), Y1 - VXORPD Y0, Y1, Y1 - VPCMPEQB Y12, Y1, Y2 - VORPD Y12, Y0, Y0 - VPADDB Y13, Y0, Y0 - VPCMPGTB Y0, Y14, Y0 - VPAND Y2, Y0, Y0 - VPAND Y15, Y0, Y0 - VPSLLW $0x05, Y0, Y0 - VPCMPEQB Y1, Y0, Y0 - ADDQ $0x20, AX - SUBQ $0x20, DX - VPMOVMSKB Y0, SI - XORL $0xffffffff, SI - JNE done - -cmp16: - CMPQ DX, $0x10 - JLE cmp_tail - VMOVDQU (CX)(AX*1), X0 - VMOVDQU (BX)(AX*1), X1 - VXORPD X0, X1, X1 - VPCMPEQB X12, X1, X2 - VORPD X12, X0, X0 - VPADDB X13, X0, X0 - VPCMPGTB X0, X14, X0 - VPAND X2, X0, X0 - VPAND X15, X0, X0 - VPSLLW $0x05, X0, X0 - VPCMPEQB X1, X0, X0 - ADDQ $0x10, AX - SUBQ $0x10, DX - VPMOVMSKB X0, SI - XORL $0x0000ffff, SI - JNE done - -cmp_tail: - SUBQ $0x10, DX - ADDQ DX, AX - VMOVDQU (CX)(AX*1), X0 - VMOVDQU (BX)(AX*1), X1 - VXORPD X0, X1, X1 - VPCMPEQB X12, X1, X2 - VORPD X12, X0, X0 - VPADDB X13, X0, X0 - VPCMPGTB X0, X14, X0 - VPAND X2, X0, X0 - VPAND X15, X0, X0 - VPSLLW $0x05, X0, X0 - VPCMPEQB X1, X0, X0 - VPMOVMSKB X0, AX - XORL $0x0000ffff, AX - JMP done diff --git a/vendor/github.com/segmentio/asm/ascii/equal_fold_default.go b/vendor/github.com/segmentio/asm/ascii/equal_fold_default.go deleted file mode 100644 index 1ae5a13..0000000 --- a/vendor/github.com/segmentio/asm/ascii/equal_fold_default.go +++ /dev/null @@ -1,60 +0,0 @@ -//go:build purego || !amd64 -// +build purego !amd64 - -package ascii - -// EqualFoldString is a version of strings.EqualFold designed to work on ASCII -// input instead of UTF-8. -// -// When the program has guarantees that the input is composed of ASCII -// characters only, it allows for greater optimizations. -func EqualFoldString(a, b string) bool { - if len(a) != len(b) { - return false - } - - var cmp byte - - for len(a) >= 8 { - cmp |= lowerCase[a[0]] ^ lowerCase[b[0]] - cmp |= lowerCase[a[1]] ^ lowerCase[b[1]] - cmp |= lowerCase[a[2]] ^ lowerCase[b[2]] - cmp |= lowerCase[a[3]] ^ lowerCase[b[3]] - cmp |= lowerCase[a[4]] ^ lowerCase[b[4]] - cmp |= lowerCase[a[5]] ^ lowerCase[b[5]] - cmp |= lowerCase[a[6]] ^ lowerCase[b[6]] - cmp |= lowerCase[a[7]] ^ lowerCase[b[7]] - - if cmp != 0 { - return false - } - - a = a[8:] - b = b[8:] - } - - switch len(a) { - case 7: - cmp |= lowerCase[a[6]] ^ lowerCase[b[6]] - fallthrough - case 6: - cmp |= lowerCase[a[5]] ^ lowerCase[b[5]] - fallthrough - case 5: - cmp |= lowerCase[a[4]] ^ lowerCase[b[4]] - fallthrough - case 4: - cmp |= lowerCase[a[3]] ^ lowerCase[b[3]] - fallthrough - case 3: - cmp |= lowerCase[a[2]] ^ lowerCase[b[2]] - fallthrough - case 2: - cmp |= lowerCase[a[1]] ^ lowerCase[b[1]] - fallthrough - case 1: - cmp |= lowerCase[a[0]] ^ lowerCase[b[0]] - } - - return cmp == 0 -} diff --git a/vendor/github.com/segmentio/asm/ascii/valid.go b/vendor/github.com/segmentio/asm/ascii/valid.go deleted file mode 100644 index a5168ef..0000000 --- a/vendor/github.com/segmentio/asm/ascii/valid.go +++ /dev/null @@ -1,18 +0,0 @@ -package ascii - -import "github.com/segmentio/asm/internal/unsafebytes" - -// Valid returns true if b contains only ASCII characters. -func Valid(b []byte) bool { - return ValidString(unsafebytes.String(b)) -} - -// ValidBytes returns true if b is an ASCII character. -func ValidByte(b byte) bool { - return b <= 0x7f -} - -// ValidBytes returns true if b is an ASCII character. -func ValidRune(r rune) bool { - return r <= 0x7f -} diff --git a/vendor/github.com/segmentio/asm/ascii/valid_amd64.go b/vendor/github.com/segmentio/asm/ascii/valid_amd64.go deleted file mode 100644 index 72dc7b4..0000000 --- a/vendor/github.com/segmentio/asm/ascii/valid_amd64.go +++ /dev/null @@ -1,9 +0,0 @@ -// Code generated by command: go run valid_asm.go -pkg ascii -out ../ascii/valid_amd64.s -stubs ../ascii/valid_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -package ascii - -// ValidString returns true if s contains only ASCII characters. -func ValidString(s string) bool diff --git a/vendor/github.com/segmentio/asm/ascii/valid_amd64.s b/vendor/github.com/segmentio/asm/ascii/valid_amd64.s deleted file mode 100644 index 0214b0c..0000000 --- a/vendor/github.com/segmentio/asm/ascii/valid_amd64.s +++ /dev/null @@ -1,132 +0,0 @@ -// Code generated by command: go run valid_asm.go -pkg ascii -out ../ascii/valid_amd64.s -stubs ../ascii/valid_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -#include "textflag.h" - -// func ValidString(s string) bool -// Requires: AVX, AVX2, SSE4.1 -TEXT ·ValidString(SB), NOSPLIT, $0-17 - MOVQ s_base+0(FP), AX - MOVQ s_len+8(FP), CX - MOVQ $0x8080808080808080, DX - CMPQ CX, $0x10 - JB cmp8 - BTL $0x08, github·com∕segmentio∕asm∕cpu·X86+0(SB) - JCS init_avx - -cmp8: - CMPQ CX, $0x08 - JB cmp4 - TESTQ DX, (AX) - JNZ invalid - ADDQ $0x08, AX - SUBQ $0x08, CX - JMP cmp8 - -cmp4: - CMPQ CX, $0x04 - JB cmp3 - TESTL $0x80808080, (AX) - JNZ invalid - ADDQ $0x04, AX - SUBQ $0x04, CX - -cmp3: - CMPQ CX, $0x03 - JB cmp2 - MOVWLZX (AX), CX - MOVBLZX 2(AX), AX - SHLL $0x10, AX - ORL CX, AX - TESTL $0x80808080, AX - JMP done - -cmp2: - CMPQ CX, $0x02 - JB cmp1 - TESTW $0x8080, (AX) - JMP done - -cmp1: - CMPQ CX, $0x00 - JE done - TESTB $0x80, (AX) - -done: - SETEQ ret+16(FP) - RET - -invalid: - MOVB $0x00, ret+16(FP) - RET - -init_avx: - PINSRQ $0x00, DX, X4 - VPBROADCASTQ X4, Y4 - -cmp256: - CMPQ CX, $0x00000100 - JB cmp128 - VMOVDQU (AX), Y0 - VPOR 32(AX), Y0, Y0 - VMOVDQU 64(AX), Y1 - VPOR 96(AX), Y1, Y1 - VMOVDQU 128(AX), Y2 - VPOR 160(AX), Y2, Y2 - VMOVDQU 192(AX), Y3 - VPOR 224(AX), Y3, Y3 - VPOR Y1, Y0, Y0 - VPOR Y3, Y2, Y2 - VPOR Y2, Y0, Y0 - VPTEST Y0, Y4 - JNZ invalid - ADDQ $0x00000100, AX - SUBQ $0x00000100, CX - JMP cmp256 - -cmp128: - CMPQ CX, $0x80 - JB cmp64 - VMOVDQU (AX), Y0 - VPOR 32(AX), Y0, Y0 - VMOVDQU 64(AX), Y1 - VPOR 96(AX), Y1, Y1 - VPOR Y1, Y0, Y0 - VPTEST Y0, Y4 - JNZ invalid - ADDQ $0x80, AX - SUBQ $0x80, CX - -cmp64: - CMPQ CX, $0x40 - JB cmp32 - VMOVDQU (AX), Y0 - VPOR 32(AX), Y0, Y0 - VPTEST Y0, Y4 - JNZ invalid - ADDQ $0x40, AX - SUBQ $0x40, CX - -cmp32: - CMPQ CX, $0x20 - JB cmp16 - VPTEST (AX), Y4 - JNZ invalid - ADDQ $0x20, AX - SUBQ $0x20, CX - -cmp16: - CMPQ CX, $0x10 - JLE cmp_tail - VPTEST (AX), X4 - JNZ invalid - ADDQ $0x10, AX - SUBQ $0x10, CX - -cmp_tail: - SUBQ $0x10, CX - ADDQ CX, AX - VPTEST (AX), X4 - JMP done diff --git a/vendor/github.com/segmentio/asm/ascii/valid_default.go b/vendor/github.com/segmentio/asm/ascii/valid_default.go deleted file mode 100644 index 715a090..0000000 --- a/vendor/github.com/segmentio/asm/ascii/valid_default.go +++ /dev/null @@ -1,48 +0,0 @@ -//go:build purego || !amd64 -// +build purego !amd64 - -package ascii - -import ( - "unsafe" -) - -// ValidString returns true if s contains only ASCII characters. -func ValidString(s string) bool { - p := *(*unsafe.Pointer)(unsafe.Pointer(&s)) - i := uintptr(0) - n := uintptr(len(s)) - - for i+8 <= n { - if (*(*uint64)(unsafe.Pointer(uintptr(p) + i)) & 0x8080808080808080) != 0 { - return false - } - i += 8 - } - - if i+4 <= n { - if (*(*uint32)(unsafe.Pointer(uintptr(p) + i)) & 0x80808080) != 0 { - return false - } - i += 4 - } - - if i == n { - return true - } - - p = unsafe.Pointer(uintptr(p) + i) - - var x uint32 - switch n - i { - case 3: - x = uint32(*(*uint16)(p)) | uint32(*(*uint8)(unsafe.Pointer(uintptr(p) + 2)))<<16 - case 2: - x = uint32(*(*uint16)(p)) - case 1: - x = uint32(*(*uint8)(p)) - default: - return true - } - return (x & 0x80808080) == 0 -} diff --git a/vendor/github.com/segmentio/asm/ascii/valid_print.go b/vendor/github.com/segmentio/asm/ascii/valid_print.go deleted file mode 100644 index aa0db7f..0000000 --- a/vendor/github.com/segmentio/asm/ascii/valid_print.go +++ /dev/null @@ -1,18 +0,0 @@ -package ascii - -import "github.com/segmentio/asm/internal/unsafebytes" - -// ValidPrint returns true if b contains only printable ASCII characters. -func ValidPrint(b []byte) bool { - return ValidPrintString(unsafebytes.String(b)) -} - -// ValidPrintBytes returns true if b is an ASCII character. -func ValidPrintByte(b byte) bool { - return 0x20 <= b && b <= 0x7e -} - -// ValidPrintBytes returns true if b is an ASCII character. -func ValidPrintRune(r rune) bool { - return 0x20 <= r && r <= 0x7e -} diff --git a/vendor/github.com/segmentio/asm/ascii/valid_print_amd64.go b/vendor/github.com/segmentio/asm/ascii/valid_print_amd64.go deleted file mode 100644 index b146266..0000000 --- a/vendor/github.com/segmentio/asm/ascii/valid_print_amd64.go +++ /dev/null @@ -1,9 +0,0 @@ -// Code generated by command: go run valid_print_asm.go -pkg ascii -out ../ascii/valid_print_amd64.s -stubs ../ascii/valid_print_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -package ascii - -// ValidPrintString returns true if s contains only printable ASCII characters. -func ValidPrintString(s string) bool diff --git a/vendor/github.com/segmentio/asm/ascii/valid_print_amd64.s b/vendor/github.com/segmentio/asm/ascii/valid_print_amd64.s deleted file mode 100644 index bc2e20a..0000000 --- a/vendor/github.com/segmentio/asm/ascii/valid_print_amd64.s +++ /dev/null @@ -1,185 +0,0 @@ -// Code generated by command: go run valid_print_asm.go -pkg ascii -out ../ascii/valid_print_amd64.s -stubs ../ascii/valid_print_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -#include "textflag.h" - -// func ValidPrintString(s string) bool -// Requires: AVX, AVX2, SSE4.1 -TEXT ·ValidPrintString(SB), NOSPLIT, $0-17 - MOVQ s_base+0(FP), AX - MOVQ s_len+8(FP), CX - CMPQ CX, $0x10 - JB init_x86 - BTL $0x08, github·com∕segmentio∕asm∕cpu·X86+0(SB) - JCS init_avx - -init_x86: - CMPQ CX, $0x08 - JB cmp4 - MOVQ $0xdfdfdfdfdfdfdfe0, DX - MOVQ $0x0101010101010101, BX - MOVQ $0x8080808080808080, SI - -cmp8: - MOVQ (AX), DI - MOVQ DI, R8 - LEAQ (DI)(DX*1), R9 - NOTQ R8 - ANDQ R8, R9 - LEAQ (DI)(BX*1), R8 - ORQ R8, DI - ORQ R9, DI - ADDQ $0x08, AX - SUBQ $0x08, CX - TESTQ SI, DI - JNE done - CMPQ CX, $0x08 - JB cmp4 - JMP cmp8 - -cmp4: - CMPQ CX, $0x04 - JB cmp3 - MOVL (AX), DX - MOVL DX, BX - LEAL 3755991008(DX), SI - NOTL BX - ANDL BX, SI - LEAL 16843009(DX), BX - ORL BX, DX - ORL SI, DX - ADDQ $0x04, AX - SUBQ $0x04, CX - TESTL $0x80808080, DX - JNE done - -cmp3: - CMPQ CX, $0x03 - JB cmp2 - MOVWLZX (AX), DX - MOVBLZX 2(AX), AX - SHLL $0x10, AX - ORL DX, AX - ORL $0x20000000, AX - JMP final - -cmp2: - CMPQ CX, $0x02 - JB cmp1 - MOVWLZX (AX), AX - ORL $0x20200000, AX - JMP final - -cmp1: - CMPQ CX, $0x00 - JE done - MOVBLZX (AX), AX - ORL $0x20202000, AX - -final: - MOVL AX, CX - LEAL 3755991008(AX), DX - NOTL CX - ANDL CX, DX - LEAL 16843009(AX), CX - ORL CX, AX - ORL DX, AX - TESTL $0x80808080, AX - -done: - SETEQ ret+16(FP) - RET - -init_avx: - MOVB $0x1f, DL - PINSRB $0x00, DX, X8 - VPBROADCASTB X8, Y8 - MOVB $0x7e, DL - PINSRB $0x00, DX, X9 - VPBROADCASTB X9, Y9 - -cmp128: - CMPQ CX, $0x80 - JB cmp64 - VMOVDQU (AX), Y0 - VMOVDQU 32(AX), Y1 - VMOVDQU 64(AX), Y2 - VMOVDQU 96(AX), Y3 - VPCMPGTB Y8, Y0, Y4 - VPCMPGTB Y9, Y0, Y0 - VPANDN Y4, Y0, Y0 - VPCMPGTB Y8, Y1, Y5 - VPCMPGTB Y9, Y1, Y1 - VPANDN Y5, Y1, Y1 - VPCMPGTB Y8, Y2, Y6 - VPCMPGTB Y9, Y2, Y2 - VPANDN Y6, Y2, Y2 - VPCMPGTB Y8, Y3, Y7 - VPCMPGTB Y9, Y3, Y3 - VPANDN Y7, Y3, Y3 - VPAND Y1, Y0, Y0 - VPAND Y3, Y2, Y2 - VPAND Y2, Y0, Y0 - ADDQ $0x80, AX - SUBQ $0x80, CX - VPMOVMSKB Y0, DX - XORL $0xffffffff, DX - JNE done - JMP cmp128 - -cmp64: - CMPQ CX, $0x40 - JB cmp32 - VMOVDQU (AX), Y0 - VMOVDQU 32(AX), Y1 - VPCMPGTB Y8, Y0, Y2 - VPCMPGTB Y9, Y0, Y0 - VPANDN Y2, Y0, Y0 - VPCMPGTB Y8, Y1, Y3 - VPCMPGTB Y9, Y1, Y1 - VPANDN Y3, Y1, Y1 - VPAND Y1, Y0, Y0 - ADDQ $0x40, AX - SUBQ $0x40, CX - VPMOVMSKB Y0, DX - XORL $0xffffffff, DX - JNE done - -cmp32: - CMPQ CX, $0x20 - JB cmp16 - VMOVDQU (AX), Y0 - VPCMPGTB Y8, Y0, Y1 - VPCMPGTB Y9, Y0, Y0 - VPANDN Y1, Y0, Y0 - ADDQ $0x20, AX - SUBQ $0x20, CX - VPMOVMSKB Y0, DX - XORL $0xffffffff, DX - JNE done - -cmp16: - CMPQ CX, $0x10 - JLE cmp_tail - VMOVDQU (AX), X0 - VPCMPGTB X8, X0, X1 - VPCMPGTB X9, X0, X0 - VPANDN X1, X0, X0 - ADDQ $0x10, AX - SUBQ $0x10, CX - VPMOVMSKB X0, DX - XORL $0x0000ffff, DX - JNE done - -cmp_tail: - SUBQ $0x10, CX - ADDQ CX, AX - VMOVDQU (AX), X0 - VPCMPGTB X8, X0, X1 - VPCMPGTB X9, X0, X0 - VPANDN X1, X0, X0 - VPMOVMSKB X0, DX - XORL $0x0000ffff, DX - JMP done diff --git a/vendor/github.com/segmentio/asm/ascii/valid_print_default.go b/vendor/github.com/segmentio/asm/ascii/valid_print_default.go deleted file mode 100644 index c4dc748..0000000 --- a/vendor/github.com/segmentio/asm/ascii/valid_print_default.go +++ /dev/null @@ -1,46 +0,0 @@ -//go:build purego || !amd64 -// +build purego !amd64 - -package ascii - -import "unsafe" - -// ValidString returns true if s contains only printable ASCII characters. -func ValidPrintString(s string) bool { - p := *(*unsafe.Pointer)(unsafe.Pointer(&s)) - i := uintptr(0) - n := uintptr(len(s)) - - for i+8 <= n { - if hasLess64(*(*uint64)(unsafe.Pointer(uintptr(p) + i)), 0x20) || hasMore64(*(*uint64)(unsafe.Pointer(uintptr(p) + i)), 0x7e) { - return false - } - i += 8 - } - - if i+4 <= n { - if hasLess32(*(*uint32)(unsafe.Pointer(uintptr(p) + i)), 0x20) || hasMore32(*(*uint32)(unsafe.Pointer(uintptr(p) + i)), 0x7e) { - return false - } - i += 4 - } - - if i == n { - return true - } - - p = unsafe.Pointer(uintptr(p) + i) - - var x uint32 - switch n - i { - case 3: - x = 0x20000000 | uint32(*(*uint16)(p)) | uint32(*(*uint8)(unsafe.Pointer(uintptr(p) + 2)))<<16 - case 2: - x = 0x20200000 | uint32(*(*uint16)(p)) - case 1: - x = 0x20202000 | uint32(*(*uint8)(p)) - default: - return true - } - return !(hasLess32(x, 0x20) || hasMore32(x, 0x7e)) -} diff --git a/vendor/github.com/segmentio/asm/base64/base64.go b/vendor/github.com/segmentio/asm/base64/base64.go deleted file mode 100644 index dd2128d..0000000 --- a/vendor/github.com/segmentio/asm/base64/base64.go +++ /dev/null @@ -1,67 +0,0 @@ -package base64 - -import ( - "encoding/base64" -) - -const ( - StdPadding rune = base64.StdPadding - NoPadding rune = base64.NoPadding - - encodeStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" - encodeURL = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" - encodeIMAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+," - - letterRange = int8('Z' - 'A' + 1) -) - -// StdEncoding is the standard base64 encoding, as defined in RFC 4648. -var StdEncoding = NewEncoding(encodeStd) - -// URLEncoding is the alternate base64 encoding defined in RFC 4648. -// It is typically used in URLs and file names. -var URLEncoding = NewEncoding(encodeURL) - -// RawStdEncoding is the standard unpadded base64 encoding defined in RFC 4648 section 3.2. -// This is the same as StdEncoding but omits padding characters. -var RawStdEncoding = StdEncoding.WithPadding(NoPadding) - -// RawURLEncoding is the unpadded alternate base64 encoding defined in RFC 4648. -// This is the same as URLEncoding but omits padding characters. -var RawURLEncoding = URLEncoding.WithPadding(NoPadding) - -// NewEncoding returns a new padded Encoding defined by the given alphabet, -// which must be a 64-byte string that does not contain the padding character -// or CR / LF ('\r', '\n'). Unlike the standard library, the encoding alphabet -// cannot be abitrary, and it must follow one of the know standard encoding -// variants. -// -// Required alphabet values: -// * [0,26): characters 'A'..'Z' -// * [26,52): characters 'a'..'z' -// * [52,62): characters '0'..'9' -// Flexible alphabet value options: -// * RFC 4648, RFC 1421, RFC 2045, RFC 2152, RFC 4880: '+' and '/' -// * RFC 4648 URI: '-' and '_' -// * RFC 3501: '+' and ',' -// -// The resulting Encoding uses the default padding character ('='), which may -// be changed or disabled via WithPadding. The padding characters is urestricted, -// but it must be a character outside of the encoder alphabet. -func NewEncoding(encoder string) *Encoding { - if len(encoder) != 64 { - panic("encoding alphabet is not 64-bytes long") - } - - if _, ok := allowedEncoding[encoder]; !ok { - panic("non-standard encoding alphabets are not supported") - } - - return newEncoding(encoder) -} - -var allowedEncoding = map[string]struct{}{ - encodeStd: {}, - encodeURL: {}, - encodeIMAP: {}, -} diff --git a/vendor/github.com/segmentio/asm/base64/base64_amd64.go b/vendor/github.com/segmentio/asm/base64/base64_amd64.go deleted file mode 100644 index e4940d7..0000000 --- a/vendor/github.com/segmentio/asm/base64/base64_amd64.go +++ /dev/null @@ -1,160 +0,0 @@ -//go:build amd64 && !purego -// +build amd64,!purego - -package base64 - -import ( - "encoding/base64" - - "github.com/segmentio/asm/cpu" - "github.com/segmentio/asm/cpu/x86" - "github.com/segmentio/asm/internal/unsafebytes" -) - -// An Encoding is a radix 64 encoding/decoding scheme, defined by a -// 64-character alphabet. -type Encoding struct { - enc func(dst []byte, src []byte, lut *int8) (int, int) - enclut [32]int8 - - dec func(dst []byte, src []byte, lut *int8) (int, int) - declut [48]int8 - - base *base64.Encoding -} - -const ( - minEncodeLen = 28 - minDecodeLen = 45 -) - -func newEncoding(encoder string) *Encoding { - e := &Encoding{base: base64.NewEncoding(encoder)} - if cpu.X86.Has(x86.AVX2) { - e.enableEncodeAVX2(encoder) - e.enableDecodeAVX2(encoder) - } - return e -} - -func (e *Encoding) enableEncodeAVX2(encoder string) { - // Translate values 0..63 to the Base64 alphabet. There are five sets: - // - // From To Add Index Example - // [0..25] [65..90] +65 0 ABCDEFGHIJKLMNOPQRSTUVWXYZ - // [26..51] [97..122] +71 1 abcdefghijklmnopqrstuvwxyz - // [52..61] [48..57] -4 [2..11] 0123456789 - // [62] [43] -19 12 + - // [63] [47] -16 13 / - tab := [32]int8{int8(encoder[0]), int8(encoder[letterRange]) - letterRange} - for i, ch := range encoder[2*letterRange:] { - tab[2+i] = int8(ch) - 2*letterRange - int8(i) - } - - e.enc = encodeAVX2 - e.enclut = tab -} - -func (e *Encoding) enableDecodeAVX2(encoder string) { - c62, c63 := int8(encoder[62]), int8(encoder[63]) - url := c63 == '_' - if url { - c63 = '/' - } - - // Translate values from the Base64 alphabet using five sets. Values outside - // of these ranges are considered invalid: - // - // From To Add Index Example - // [47] [63] +16 1 / - // [43] [62] +19 2 + - // [48..57] [52..61] +4 3 0123456789 - // [65..90] [0..25] -65 4,5 ABCDEFGHIJKLMNOPQRSTUVWXYZ - // [97..122] [26..51] -71 6,7 abcdefghijklmnopqrstuvwxyz - tab := [48]int8{ - 0, 63 - c63, 62 - c62, 4, -65, -65, -71, -71, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x15, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, - 0x11, 0x11, 0x13, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, - } - tab[(c62&15)+16] = 0x1A - tab[(c63&15)+16] = 0x1A - - if url { - e.dec = decodeAVX2URI - } else { - e.dec = decodeAVX2 - } - e.declut = tab -} - -// WithPadding creates a duplicate Encoding updated with a specified padding -// character, or NoPadding to disable padding. The padding character must not -// be contained in the encoding alphabet, must not be '\r' or '\n', and must -// be no greater than '\xFF'. -func (enc Encoding) WithPadding(padding rune) *Encoding { - enc.base = enc.base.WithPadding(padding) - return &enc -} - -// Strict creates a duplicate encoding updated with strict decoding enabled. -// This requires that trailing padding bits are zero. -func (enc Encoding) Strict() *Encoding { - enc.base = enc.base.Strict() - return &enc -} - -// Encode encodes src using the defined encoding alphabet. -// This will write EncodedLen(len(src)) bytes to dst. -func (enc *Encoding) Encode(dst, src []byte) { - if len(src) >= minEncodeLen && enc.enc != nil { - d, s := enc.enc(dst, src, &enc.enclut[0]) - dst = dst[d:] - src = src[s:] - } - enc.base.Encode(dst, src) -} - -// Encode encodes src using the encoding enc, writing -// EncodedLen(len(src)) bytes to dst. -func (enc *Encoding) EncodeToString(src []byte) string { - buf := make([]byte, enc.base.EncodedLen(len(src))) - enc.Encode(buf, src) - return string(buf) -} - -// EncodedLen calculates the base64-encoded byte length for a message -// of length n. -func (enc *Encoding) EncodedLen(n int) int { - return enc.base.EncodedLen(n) -} - -// Decode decodes src using the defined encoding alphabet. -// This will write DecodedLen(len(src)) bytes to dst and return the number of -// bytes written. -func (enc *Encoding) Decode(dst, src []byte) (n int, err error) { - var d, s int - if len(src) >= minDecodeLen && enc.dec != nil { - d, s = enc.dec(dst, src, &enc.declut[0]) - dst = dst[d:] - src = src[s:] - } - n, err = enc.base.Decode(dst, src) - n += d - return -} - -// DecodeString decodes the base64 encoded string s, returns the decoded -// value as bytes. -func (enc *Encoding) DecodeString(s string) ([]byte, error) { - src := unsafebytes.BytesOf(s) - dst := make([]byte, enc.base.DecodedLen(len(s))) - n, err := enc.Decode(dst, src) - return dst[:n], err -} - -// DecodedLen calculates the decoded byte length for a base64-encoded message -// of length n. -func (enc *Encoding) DecodedLen(n int) int { - return enc.base.DecodedLen(n) -} diff --git a/vendor/github.com/segmentio/asm/base64/base64_default.go b/vendor/github.com/segmentio/asm/base64/base64_default.go deleted file mode 100644 index f5d3d64..0000000 --- a/vendor/github.com/segmentio/asm/base64/base64_default.go +++ /dev/null @@ -1,14 +0,0 @@ -//go:build purego || !amd64 -// +build purego !amd64 - -package base64 - -import "encoding/base64" - -// An Encoding is a radix 64 encoding/decoding scheme, defined by a -// 64-character alphabet. -type Encoding = base64.Encoding - -func newEncoding(encoder string) *Encoding { - return base64.NewEncoding(encoder) -} diff --git a/vendor/github.com/segmentio/asm/base64/decode_amd64.go b/vendor/github.com/segmentio/asm/base64/decode_amd64.go deleted file mode 100644 index 1dae5b4..0000000 --- a/vendor/github.com/segmentio/asm/base64/decode_amd64.go +++ /dev/null @@ -1,10 +0,0 @@ -// Code generated by command: go run decode_asm.go -pkg base64 -out ../base64/decode_amd64.s -stubs ../base64/decode_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -package base64 - -func decodeAVX2(dst []byte, src []byte, lut *int8) (int, int) - -func decodeAVX2URI(dst []byte, src []byte, lut *int8) (int, int) diff --git a/vendor/github.com/segmentio/asm/base64/decode_amd64.s b/vendor/github.com/segmentio/asm/base64/decode_amd64.s deleted file mode 100644 index cc6c779..0000000 --- a/vendor/github.com/segmentio/asm/base64/decode_amd64.s +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by command: go run decode_asm.go -pkg base64 -out ../base64/decode_amd64.s -stubs ../base64/decode_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -#include "textflag.h" - -DATA b64_dec_lut_hi<>+0(SB)/8, $0x0804080402011010 -DATA b64_dec_lut_hi<>+8(SB)/8, $0x1010101010101010 -DATA b64_dec_lut_hi<>+16(SB)/8, $0x0804080402011010 -DATA b64_dec_lut_hi<>+24(SB)/8, $0x1010101010101010 -GLOBL b64_dec_lut_hi<>(SB), RODATA|NOPTR, $32 - -DATA b64_dec_madd1<>+0(SB)/8, $0x0140014001400140 -DATA b64_dec_madd1<>+8(SB)/8, $0x0140014001400140 -DATA b64_dec_madd1<>+16(SB)/8, $0x0140014001400140 -DATA b64_dec_madd1<>+24(SB)/8, $0x0140014001400140 -GLOBL b64_dec_madd1<>(SB), RODATA|NOPTR, $32 - -DATA b64_dec_madd2<>+0(SB)/8, $0x0001100000011000 -DATA b64_dec_madd2<>+8(SB)/8, $0x0001100000011000 -DATA b64_dec_madd2<>+16(SB)/8, $0x0001100000011000 -DATA b64_dec_madd2<>+24(SB)/8, $0x0001100000011000 -GLOBL b64_dec_madd2<>(SB), RODATA|NOPTR, $32 - -DATA b64_dec_shuf_lo<>+0(SB)/8, $0x0000000000000000 -DATA b64_dec_shuf_lo<>+8(SB)/8, $0x0600010200000000 -GLOBL b64_dec_shuf_lo<>(SB), RODATA|NOPTR, $16 - -DATA b64_dec_shuf<>+0(SB)/8, $0x090a040506000102 -DATA b64_dec_shuf<>+8(SB)/8, $0x000000000c0d0e08 -DATA b64_dec_shuf<>+16(SB)/8, $0x0c0d0e08090a0405 -DATA b64_dec_shuf<>+24(SB)/8, $0x0000000000000000 -GLOBL b64_dec_shuf<>(SB), RODATA|NOPTR, $32 - -// func decodeAVX2(dst []byte, src []byte, lut *int8) (int, int) -// Requires: AVX, AVX2, SSE4.1 -TEXT ·decodeAVX2(SB), NOSPLIT, $0-72 - MOVQ dst_base+0(FP), AX - MOVQ src_base+24(FP), DX - MOVQ lut+48(FP), SI - MOVQ src_len+32(FP), DI - MOVB $0x2f, CL - PINSRB $0x00, CX, X8 - VPBROADCASTB X8, Y8 - XORQ CX, CX - XORQ BX, BX - VPXOR Y7, Y7, Y7 - VPERMQ $0x44, (SI), Y6 - VPERMQ $0x44, 16(SI), Y4 - VMOVDQA b64_dec_lut_hi<>+0(SB), Y5 - -loop: - VMOVDQU (DX)(BX*1), Y0 - VPSRLD $0x04, Y0, Y2 - VPAND Y8, Y0, Y3 - VPSHUFB Y3, Y4, Y3 - VPAND Y8, Y2, Y2 - VPSHUFB Y2, Y5, Y9 - VPTEST Y9, Y3 - JNE done - VPCMPEQB Y8, Y0, Y3 - VPADDB Y3, Y2, Y2 - VPSHUFB Y2, Y6, Y2 - VPADDB Y0, Y2, Y0 - VPMADDUBSW b64_dec_madd1<>+0(SB), Y0, Y0 - VPMADDWD b64_dec_madd2<>+0(SB), Y0, Y0 - VEXTRACTI128 $0x01, Y0, X1 - VPSHUFB b64_dec_shuf_lo<>+0(SB), X1, X1 - VPSHUFB b64_dec_shuf<>+0(SB), Y0, Y0 - VPBLENDD $0x08, Y1, Y0, Y1 - VPBLENDD $0xc0, Y7, Y1, Y1 - VMOVDQU Y1, (AX)(CX*1) - ADDQ $0x18, CX - ADDQ $0x20, BX - SUBQ $0x20, DI - CMPQ DI, $0x2d - JB done - JMP loop - -done: - MOVQ CX, ret+56(FP) - MOVQ BX, ret1+64(FP) - VZEROUPPER - RET - -// func decodeAVX2URI(dst []byte, src []byte, lut *int8) (int, int) -// Requires: AVX, AVX2, SSE4.1 -TEXT ·decodeAVX2URI(SB), NOSPLIT, $0-72 - MOVB $0x2f, AL - PINSRB $0x00, AX, X0 - VPBROADCASTB X0, Y0 - MOVB $0x5f, AL - PINSRB $0x00, AX, X1 - VPBROADCASTB X1, Y1 - MOVQ dst_base+0(FP), AX - MOVQ src_base+24(FP), DX - MOVQ lut+48(FP), SI - MOVQ src_len+32(FP), DI - MOVB $0x2f, CL - PINSRB $0x00, CX, X10 - VPBROADCASTB X10, Y10 - XORQ CX, CX - XORQ BX, BX - VPXOR Y9, Y9, Y9 - VPERMQ $0x44, (SI), Y8 - VPERMQ $0x44, 16(SI), Y6 - VMOVDQA b64_dec_lut_hi<>+0(SB), Y7 - -loop: - VMOVDQU (DX)(BX*1), Y2 - VPCMPEQB Y2, Y1, Y4 - VPBLENDVB Y4, Y0, Y2, Y2 - VPSRLD $0x04, Y2, Y4 - VPAND Y10, Y2, Y5 - VPSHUFB Y5, Y6, Y5 - VPAND Y10, Y4, Y4 - VPSHUFB Y4, Y7, Y11 - VPTEST Y11, Y5 - JNE done - VPCMPEQB Y10, Y2, Y5 - VPADDB Y5, Y4, Y4 - VPSHUFB Y4, Y8, Y4 - VPADDB Y2, Y4, Y2 - VPMADDUBSW b64_dec_madd1<>+0(SB), Y2, Y2 - VPMADDWD b64_dec_madd2<>+0(SB), Y2, Y2 - VEXTRACTI128 $0x01, Y2, X3 - VPSHUFB b64_dec_shuf_lo<>+0(SB), X3, X3 - VPSHUFB b64_dec_shuf<>+0(SB), Y2, Y2 - VPBLENDD $0x08, Y3, Y2, Y3 - VPBLENDD $0xc0, Y9, Y3, Y3 - VMOVDQU Y3, (AX)(CX*1) - ADDQ $0x18, CX - ADDQ $0x20, BX - SUBQ $0x20, DI - CMPQ DI, $0x2d - JB done - JMP loop - -done: - MOVQ CX, ret+56(FP) - MOVQ BX, ret1+64(FP) - VZEROUPPER - RET diff --git a/vendor/github.com/segmentio/asm/base64/encode_amd64.go b/vendor/github.com/segmentio/asm/base64/encode_amd64.go deleted file mode 100644 index c38060f..0000000 --- a/vendor/github.com/segmentio/asm/base64/encode_amd64.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by command: go run encode_asm.go -pkg base64 -out ../base64/encode_amd64.s -stubs ../base64/encode_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -package base64 - -func encodeAVX2(dst []byte, src []byte, lut *int8) (int, int) diff --git a/vendor/github.com/segmentio/asm/base64/encode_amd64.s b/vendor/github.com/segmentio/asm/base64/encode_amd64.s deleted file mode 100644 index 2edd27a..0000000 --- a/vendor/github.com/segmentio/asm/base64/encode_amd64.s +++ /dev/null @@ -1,88 +0,0 @@ -// Code generated by command: go run encode_asm.go -pkg base64 -out ../base64/encode_amd64.s -stubs ../base64/encode_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -#include "textflag.h" - -// func encodeAVX2(dst []byte, src []byte, lut *int8) (int, int) -// Requires: AVX, AVX2, SSE4.1 -TEXT ·encodeAVX2(SB), NOSPLIT, $0-72 - MOVQ dst_base+0(FP), AX - MOVQ src_base+24(FP), DX - MOVQ lut+48(FP), SI - MOVQ src_len+32(FP), DI - MOVB $0x33, CL - PINSRB $0x00, CX, X4 - VPBROADCASTB X4, Y4 - MOVB $0x19, CL - PINSRB $0x00, CX, X5 - VPBROADCASTB X5, Y5 - XORQ CX, CX - XORQ BX, BX - - // Load the 16-byte LUT into both lanes of the register - VPERMQ $0x44, (SI), Y3 - - // Load the first block using a mask to avoid potential fault - VMOVDQU b64_enc_load<>+0(SB), Y0 - VPMASKMOVD -4(DX)(BX*1), Y0, Y0 - -loop: - VPSHUFB b64_enc_shuf<>+0(SB), Y0, Y0 - VPAND b64_enc_mask1<>+0(SB), Y0, Y1 - VPSLLW $0x08, Y1, Y2 - VPSLLW $0x04, Y1, Y1 - VPBLENDW $0xaa, Y2, Y1, Y2 - VPAND b64_enc_mask2<>+0(SB), Y0, Y1 - VPMULHUW b64_enc_mult<>+0(SB), Y1, Y0 - VPOR Y0, Y2, Y0 - VPSUBUSB Y4, Y0, Y1 - VPCMPGTB Y5, Y0, Y2 - VPSUBB Y2, Y1, Y1 - VPSHUFB Y1, Y3, Y1 - VPADDB Y0, Y1, Y0 - VMOVDQU Y0, (AX)(CX*1) - ADDQ $0x20, CX - ADDQ $0x18, BX - SUBQ $0x18, DI - CMPQ DI, $0x20 - JB done - VMOVDQU -4(DX)(BX*1), Y0 - JMP loop - -done: - MOVQ CX, ret+56(FP) - MOVQ BX, ret1+64(FP) - VZEROUPPER - RET - -DATA b64_enc_load<>+0(SB)/8, $0x8000000000000000 -DATA b64_enc_load<>+8(SB)/8, $0x8000000080000000 -DATA b64_enc_load<>+16(SB)/8, $0x8000000080000000 -DATA b64_enc_load<>+24(SB)/8, $0x8000000080000000 -GLOBL b64_enc_load<>(SB), RODATA|NOPTR, $32 - -DATA b64_enc_shuf<>+0(SB)/8, $0x0809070805060405 -DATA b64_enc_shuf<>+8(SB)/8, $0x0e0f0d0e0b0c0a0b -DATA b64_enc_shuf<>+16(SB)/8, $0x0405030401020001 -DATA b64_enc_shuf<>+24(SB)/8, $0x0a0b090a07080607 -GLOBL b64_enc_shuf<>(SB), RODATA|NOPTR, $32 - -DATA b64_enc_mask1<>+0(SB)/8, $0x003f03f0003f03f0 -DATA b64_enc_mask1<>+8(SB)/8, $0x003f03f0003f03f0 -DATA b64_enc_mask1<>+16(SB)/8, $0x003f03f0003f03f0 -DATA b64_enc_mask1<>+24(SB)/8, $0x003f03f0003f03f0 -GLOBL b64_enc_mask1<>(SB), RODATA|NOPTR, $32 - -DATA b64_enc_mask2<>+0(SB)/8, $0x0fc0fc000fc0fc00 -DATA b64_enc_mask2<>+8(SB)/8, $0x0fc0fc000fc0fc00 -DATA b64_enc_mask2<>+16(SB)/8, $0x0fc0fc000fc0fc00 -DATA b64_enc_mask2<>+24(SB)/8, $0x0fc0fc000fc0fc00 -GLOBL b64_enc_mask2<>(SB), RODATA|NOPTR, $32 - -DATA b64_enc_mult<>+0(SB)/8, $0x0400004004000040 -DATA b64_enc_mult<>+8(SB)/8, $0x0400004004000040 -DATA b64_enc_mult<>+16(SB)/8, $0x0400004004000040 -DATA b64_enc_mult<>+24(SB)/8, $0x0400004004000040 -GLOBL b64_enc_mult<>(SB), RODATA|NOPTR, $32 diff --git a/vendor/github.com/segmentio/asm/cpu/arm/arm.go b/vendor/github.com/segmentio/asm/cpu/arm/arm.go deleted file mode 100644 index 47c695a..0000000 --- a/vendor/github.com/segmentio/asm/cpu/arm/arm.go +++ /dev/null @@ -1,80 +0,0 @@ -package arm - -import ( - "github.com/segmentio/asm/cpu/cpuid" - . "golang.org/x/sys/cpu" -) - -type CPU cpuid.CPU - -func (cpu CPU) Has(feature Feature) bool { - return cpuid.CPU(cpu).Has(cpuid.Feature(feature)) -} - -func (cpu *CPU) set(feature Feature, enable bool) { - (*cpuid.CPU)(cpu).Set(cpuid.Feature(feature), enable) -} - -type Feature cpuid.Feature - -const ( - SWP Feature = 1 << iota // SWP instruction support - HALF // Half-word load and store support - THUMB // ARM Thumb instruction set - BIT26 // Address space limited to 26-bits - FASTMUL // 32-bit operand, 64-bit result multiplication support - FPA // Floating point arithmetic support - VFP // Vector floating point support - EDSP // DSP Extensions support - JAVA // Java instruction set - IWMMXT // Intel Wireless MMX technology support - CRUNCH // MaverickCrunch context switching and handling - THUMBEE // Thumb EE instruction set - NEON // NEON instruction set - VFPv3 // Vector floating point version 3 support - VFPv3D16 // Vector floating point version 3 D8-D15 - TLS // Thread local storage support - VFPv4 // Vector floating point version 4 support - IDIVA // Integer divide instruction support in ARM mode - IDIVT // Integer divide instruction support in Thumb mode - VFPD32 // Vector floating point version 3 D15-D31 - LPAE // Large Physical Address Extensions - EVTSTRM // Event stream support - AES // AES hardware implementation - PMULL // Polynomial multiplication instruction set - SHA1 // SHA1 hardware implementation - SHA2 // SHA2 hardware implementation - CRC32 // CRC32 hardware implementation -) - -func ABI() CPU { - cpu := CPU(0) - cpu.set(SWP, ARM.HasSWP) - cpu.set(HALF, ARM.HasHALF) - cpu.set(THUMB, ARM.HasTHUMB) - cpu.set(BIT26, ARM.Has26BIT) - cpu.set(FASTMUL, ARM.HasFASTMUL) - cpu.set(FPA, ARM.HasFPA) - cpu.set(VFP, ARM.HasVFP) - cpu.set(EDSP, ARM.HasEDSP) - cpu.set(JAVA, ARM.HasJAVA) - cpu.set(IWMMXT, ARM.HasIWMMXT) - cpu.set(CRUNCH, ARM.HasCRUNCH) - cpu.set(THUMBEE, ARM.HasTHUMBEE) - cpu.set(NEON, ARM.HasNEON) - cpu.set(VFPv3, ARM.HasVFPv3) - cpu.set(VFPv3D16, ARM.HasVFPv3D16) - cpu.set(TLS, ARM.HasTLS) - cpu.set(VFPv4, ARM.HasVFPv4) - cpu.set(IDIVA, ARM.HasIDIVA) - cpu.set(IDIVT, ARM.HasIDIVT) - cpu.set(VFPD32, ARM.HasVFPD32) - cpu.set(LPAE, ARM.HasLPAE) - cpu.set(EVTSTRM, ARM.HasEVTSTRM) - cpu.set(AES, ARM.HasAES) - cpu.set(PMULL, ARM.HasPMULL) - cpu.set(SHA1, ARM.HasSHA1) - cpu.set(SHA2, ARM.HasSHA2) - cpu.set(CRC32, ARM.HasCRC32) - return cpu -} diff --git a/vendor/github.com/segmentio/asm/cpu/arm64/arm64.go b/vendor/github.com/segmentio/asm/cpu/arm64/arm64.go deleted file mode 100644 index 0c5134c..0000000 --- a/vendor/github.com/segmentio/asm/cpu/arm64/arm64.go +++ /dev/null @@ -1,74 +0,0 @@ -package arm64 - -import ( - "github.com/segmentio/asm/cpu/cpuid" - . "golang.org/x/sys/cpu" -) - -type CPU cpuid.CPU - -func (cpu CPU) Has(feature Feature) bool { - return cpuid.CPU(cpu).Has(cpuid.Feature(feature)) -} - -func (cpu *CPU) set(feature Feature, enable bool) { - (*cpuid.CPU)(cpu).Set(cpuid.Feature(feature), enable) -} - -type Feature cpuid.Feature - -const ( - FP Feature = 1 << iota // Floating-point instruction set (always available) - ASIMD // Advanced SIMD (always available) - EVTSTRM // Event stream support - AES // AES hardware implementation - PMULL // Polynomial multiplication instruction set - SHA1 // SHA1 hardware implementation - SHA2 // SHA2 hardware implementation - CRC32 // CRC32 hardware implementation - ATOMICS // Atomic memory operation instruction set - FPHP // Half precision floating-point instruction set - ASIMDHP // Advanced SIMD half precision instruction set - CPUID // CPUID identification scheme registers - ASIMDRDM // Rounding double multiply add/subtract instruction set - JSCVT // Javascript conversion from floating-point to integer - FCMA // Floating-point multiplication and addition of complex numbers - LRCPC // Release Consistent processor consistent support - DCPOP // Persistent memory support - SHA3 // SHA3 hardware implementation - SM3 // SM3 hardware implementation - SM4 // SM4 hardware implementation - ASIMDDP // Advanced SIMD double precision instruction set - SHA512 // SHA512 hardware implementation - SVE // Scalable Vector Extensions - ASIMDFHM // Advanced SIMD multiplication FP16 to FP32 -) - -func ABI() CPU { - cpu := CPU(0) - cpu.set(FP, ARM64.HasFP) - cpu.set(ASIMD, ARM64.HasASIMD) - cpu.set(EVTSTRM, ARM64.HasEVTSTRM) - cpu.set(AES, ARM64.HasAES) - cpu.set(PMULL, ARM64.HasPMULL) - cpu.set(SHA1, ARM64.HasSHA1) - cpu.set(SHA2, ARM64.HasSHA2) - cpu.set(CRC32, ARM64.HasCRC32) - cpu.set(ATOMICS, ARM64.HasATOMICS) - cpu.set(FPHP, ARM64.HasFPHP) - cpu.set(ASIMDHP, ARM64.HasASIMDHP) - cpu.set(CPUID, ARM64.HasCPUID) - cpu.set(ASIMDRDM, ARM64.HasASIMDRDM) - cpu.set(JSCVT, ARM64.HasJSCVT) - cpu.set(FCMA, ARM64.HasFCMA) - cpu.set(LRCPC, ARM64.HasLRCPC) - cpu.set(DCPOP, ARM64.HasDCPOP) - cpu.set(SHA3, ARM64.HasSHA3) - cpu.set(SM3, ARM64.HasSM3) - cpu.set(SM4, ARM64.HasSM4) - cpu.set(ASIMDDP, ARM64.HasASIMDDP) - cpu.set(SHA512, ARM64.HasSHA512) - cpu.set(SVE, ARM64.HasSVE) - cpu.set(ASIMDFHM, ARM64.HasASIMDFHM) - return cpu -} diff --git a/vendor/github.com/segmentio/asm/cpu/cpu.go b/vendor/github.com/segmentio/asm/cpu/cpu.go deleted file mode 100644 index 6ddf497..0000000 --- a/vendor/github.com/segmentio/asm/cpu/cpu.go +++ /dev/null @@ -1,22 +0,0 @@ -// Pakage cpu provides APIs to detect CPU features available at runtime. -package cpu - -import ( - "github.com/segmentio/asm/cpu/arm" - "github.com/segmentio/asm/cpu/arm64" - "github.com/segmentio/asm/cpu/x86" -) - -var ( - // X86 is the bitset representing the set of the x86 instruction sets are - // supported by the CPU. - X86 = x86.ABI() - - // ARM is the bitset representing which parts of the arm instruction sets - // are supported by the CPU. - ARM = arm.ABI() - - // ARM64 is the bitset representing which parts of the arm64 instruction - // sets are supported by the CPU. - ARM64 = arm64.ABI() -) diff --git a/vendor/github.com/segmentio/asm/cpu/cpuid/cpuid.go b/vendor/github.com/segmentio/asm/cpu/cpuid/cpuid.go deleted file mode 100644 index 0949d3d..0000000 --- a/vendor/github.com/segmentio/asm/cpu/cpuid/cpuid.go +++ /dev/null @@ -1,32 +0,0 @@ -// Package cpuid provides generic types used to represent CPU features supported -// by the architecture. -package cpuid - -// CPU is a bitset of feature flags representing the capabilities of various CPU -// architeectures that this package provides optimized assembly routines for. -// -// The intent is to provide a stable ABI between the Go code that generate the -// assembly, and the program that uses the library functions. -type CPU uint64 - -// Feature represents a single CPU feature. -type Feature uint64 - -const ( - // None is a Feature value that has no CPU features enabled. - None Feature = 0 - // All is a Feature value that has all CPU features enabled. - All Feature = 0xFFFFFFFFFFFFFFFF -) - -func (cpu CPU) Has(feature Feature) bool { - return (Feature(cpu) & feature) == feature -} - -func (cpu *CPU) Set(feature Feature, enabled bool) { - if enabled { - *cpu |= CPU(feature) - } else { - *cpu &= ^CPU(feature) - } -} diff --git a/vendor/github.com/segmentio/asm/cpu/x86/x86.go b/vendor/github.com/segmentio/asm/cpu/x86/x86.go deleted file mode 100644 index 9e93537..0000000 --- a/vendor/github.com/segmentio/asm/cpu/x86/x86.go +++ /dev/null @@ -1,76 +0,0 @@ -package x86 - -import ( - "github.com/segmentio/asm/cpu/cpuid" - . "golang.org/x/sys/cpu" -) - -type CPU cpuid.CPU - -func (cpu CPU) Has(feature Feature) bool { - return cpuid.CPU(cpu).Has(cpuid.Feature(feature)) -} - -func (cpu *CPU) set(feature Feature, enable bool) { - (*cpuid.CPU)(cpu).Set(cpuid.Feature(feature), enable) -} - -type Feature cpuid.Feature - -const ( - SSE Feature = 1 << iota // SSE functions - SSE2 // P4 SSE functions - SSE3 // Prescott SSE3 functions - SSE41 // Penryn SSE4.1 functions - SSE42 // Nehalem SSE4.2 functions - SSE4A // AMD Barcelona microarchitecture SSE4a instructions - SSSE3 // Conroe SSSE3 functions - AVX // AVX functions - AVX2 // AVX2 functions - AVX512BF16 // AVX-512 BFLOAT16 Instructions - AVX512BITALG // AVX-512 Bit Algorithms - AVX512BW // AVX-512 Byte and Word Instructions - AVX512CD // AVX-512 Conflict Detection Instructions - AVX512DQ // AVX-512 Doubleword and Quadword Instructions - AVX512ER // AVX-512 Exponential and Reciprocal Instructions - AVX512F // AVX-512 Foundation - AVX512IFMA // AVX-512 Integer Fused Multiply-Add Instructions - AVX512PF // AVX-512 Prefetch Instructions - AVX512VBMI // AVX-512 Vector Bit Manipulation Instructions - AVX512VBMI2 // AVX-512 Vector Bit Manipulation Instructions, Version 2 - AVX512VL // AVX-512 Vector Length Extensions - AVX512VNNI // AVX-512 Vector Neural Network Instructions - AVX512VP2INTERSECT // AVX-512 Intersect for D/Q - AVX512VPOPCNTDQ // AVX-512 Vector Population Count Doubleword and Quadword - CMOV // Conditional move -) - -func ABI() CPU { - cpu := CPU(0) - cpu.set(SSE, true) // TODO: golang.org/x/sys/cpu assumes all CPUs have SEE? - cpu.set(SSE2, X86.HasSSE2) - cpu.set(SSE3, X86.HasSSE3) - cpu.set(SSE41, X86.HasSSE41) - cpu.set(SSE42, X86.HasSSE42) - cpu.set(SSE4A, false) // TODO: add upstream support in golang.org/x/sys/cpu? - cpu.set(SSSE3, X86.HasSSSE3) - cpu.set(AVX, X86.HasAVX) - cpu.set(AVX2, X86.HasAVX2) - cpu.set(AVX512BF16, X86.HasAVX512BF16) - cpu.set(AVX512BITALG, X86.HasAVX512BITALG) - cpu.set(AVX512BW, X86.HasAVX512BW) - cpu.set(AVX512CD, X86.HasAVX512CD) - cpu.set(AVX512DQ, X86.HasAVX512DQ) - cpu.set(AVX512ER, X86.HasAVX512ER) - cpu.set(AVX512F, X86.HasAVX512F) - cpu.set(AVX512IFMA, X86.HasAVX512IFMA) - cpu.set(AVX512PF, X86.HasAVX512PF) - cpu.set(AVX512VBMI, X86.HasAVX512VBMI) - cpu.set(AVX512VBMI2, X86.HasAVX512VBMI2) - cpu.set(AVX512VL, X86.HasAVX512VL) - cpu.set(AVX512VNNI, X86.HasAVX512VNNI) - cpu.set(AVX512VP2INTERSECT, false) // TODO: add upstream support in golang.org/x/sys/cpu? - cpu.set(AVX512VPOPCNTDQ, X86.HasAVX512VPOPCNTDQ) - cpu.set(CMOV, true) // TODO: golang.org/x/sys/cpu assumes all CPUs have CMOV? - return cpu -} diff --git a/vendor/github.com/segmentio/asm/internal/unsafebytes/unsafebytes.go b/vendor/github.com/segmentio/asm/internal/unsafebytes/unsafebytes.go deleted file mode 100644 index 913c9cc..0000000 --- a/vendor/github.com/segmentio/asm/internal/unsafebytes/unsafebytes.go +++ /dev/null @@ -1,20 +0,0 @@ -package unsafebytes - -import "unsafe" - -func Pointer(b []byte) *byte { - return *(**byte)(unsafe.Pointer(&b)) -} - -func String(b []byte) string { - return *(*string)(unsafe.Pointer(&b)) -} - -func BytesOf(s string) []byte { - return *(*[]byte)(unsafe.Pointer(&sliceHeader{str: s, cap: len(s)})) -} - -type sliceHeader struct { - str string - cap int -} diff --git a/vendor/github.com/segmentio/asm/keyset/keyset.go b/vendor/github.com/segmentio/asm/keyset/keyset.go deleted file mode 100644 index 1943c5f..0000000 --- a/vendor/github.com/segmentio/asm/keyset/keyset.go +++ /dev/null @@ -1,40 +0,0 @@ -package keyset - -import ( - "bytes" - - "github.com/segmentio/asm/cpu" - "github.com/segmentio/asm/cpu/arm64" - "github.com/segmentio/asm/cpu/x86" -) - -// New prepares a set of keys for use with Lookup. -// -// An optimized routine is used if the processor supports AVX instructions and -// the maximum length of any of the keys is less than or equal to 16. If New -// returns nil, this indicates that an optimized routine is not available, and -// the caller should use a fallback. -func New(keys [][]byte) []byte { - maxWidth, hasNullByte := checkKeys(keys) - if hasNullByte || maxWidth > 16 || !(cpu.X86.Has(x86.AVX) || cpu.ARM64.Has(arm64.ASIMD)) { - return nil - } - - set := make([]byte, len(keys)*16) - for i, k := range keys { - copy(set[i*16:], k) - } - return set -} - -func checkKeys(keys [][]byte) (maxWidth int, hasNullByte bool) { - for _, k := range keys { - if len(k) > maxWidth { - maxWidth = len(k) - } - if bytes.IndexByte(k, 0) >= 0 { - hasNullByte = true - } - } - return -} diff --git a/vendor/github.com/segmentio/asm/keyset/keyset_amd64.go b/vendor/github.com/segmentio/asm/keyset/keyset_amd64.go deleted file mode 100644 index 9554ee6..0000000 --- a/vendor/github.com/segmentio/asm/keyset/keyset_amd64.go +++ /dev/null @@ -1,10 +0,0 @@ -// Code generated by command: go run keyset_asm.go -pkg keyset -out ../keyset/keyset_amd64.s -stubs ../keyset/keyset_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -package keyset - -// Lookup searches for a key in a set of keys, returning its index if -// found. If the key cannot be found, the number of keys is returned. -func Lookup(keyset []byte, key []byte) int diff --git a/vendor/github.com/segmentio/asm/keyset/keyset_amd64.s b/vendor/github.com/segmentio/asm/keyset/keyset_amd64.s deleted file mode 100644 index e27d2c4..0000000 --- a/vendor/github.com/segmentio/asm/keyset/keyset_amd64.s +++ /dev/null @@ -1,108 +0,0 @@ -// Code generated by command: go run keyset_asm.go -pkg keyset -out ../keyset/keyset_amd64.s -stubs ../keyset/keyset_amd64.go. DO NOT EDIT. - -//go:build !purego -// +build !purego - -#include "textflag.h" - -// func Lookup(keyset []byte, key []byte) int -// Requires: AVX -TEXT ·Lookup(SB), NOSPLIT, $0-56 - MOVQ keyset_base+0(FP), AX - MOVQ keyset_len+8(FP), CX - SHRQ $0x04, CX - MOVQ key_base+24(FP), DX - MOVQ key_len+32(FP), BX - MOVQ key_cap+40(FP), SI - CMPQ BX, $0x10 - JA not_found - CMPQ SI, $0x10 - JB safe_load - -load: - VMOVUPS (DX), X0 - -prepare: - VPXOR X2, X2, X2 - VPCMPEQB X1, X1, X1 - LEAQ blend_masks<>+16(SB), DX - SUBQ BX, DX - VMOVUPS (DX), X3 - VPBLENDVB X3, X0, X2, X0 - XORQ DX, DX - MOVQ CX, BX - SHRQ $0x02, BX - SHLQ $0x02, BX - -bigloop: - CMPQ DX, BX - JE loop - VPCMPEQB (AX), X0, X8 - VPTEST X1, X8 - JCS done - VPCMPEQB 16(AX), X0, X9 - VPTEST X1, X9 - JCS found1 - VPCMPEQB 32(AX), X0, X10 - VPTEST X1, X10 - JCS found2 - VPCMPEQB 48(AX), X0, X11 - VPTEST X1, X11 - JCS found3 - ADDQ $0x04, DX - ADDQ $0x40, AX - JMP bigloop - -loop: - CMPQ DX, CX - JE done - VPCMPEQB (AX), X0, X2 - VPTEST X1, X2 - JCS done - INCQ DX - ADDQ $0x10, AX - JMP loop - JMP done - -found3: - INCQ DX - -found2: - INCQ DX - -found1: - INCQ DX - -done: - MOVQ DX, ret+48(FP) - RET - -not_found: - MOVQ CX, ret+48(FP) - RET - -safe_load: - MOVQ DX, SI - ANDQ $0x00000fff, SI - CMPQ SI, $0x00000ff0 - JBE load - MOVQ $0xfffffffffffffff0, SI - ADDQ BX, SI - VMOVUPS (DX)(SI*1), X0 - LEAQ shuffle_masks<>+16(SB), DX - SUBQ BX, DX - VMOVUPS (DX), X1 - VPSHUFB X1, X0, X0 - JMP prepare - -DATA blend_masks<>+0(SB)/8, $0xffffffffffffffff -DATA blend_masks<>+8(SB)/8, $0xffffffffffffffff -DATA blend_masks<>+16(SB)/8, $0x0000000000000000 -DATA blend_masks<>+24(SB)/8, $0x0000000000000000 -GLOBL blend_masks<>(SB), RODATA|NOPTR, $32 - -DATA shuffle_masks<>+0(SB)/8, $0x0706050403020100 -DATA shuffle_masks<>+8(SB)/8, $0x0f0e0d0c0b0a0908 -DATA shuffle_masks<>+16(SB)/8, $0x0706050403020100 -DATA shuffle_masks<>+24(SB)/8, $0x0f0e0d0c0b0a0908 -GLOBL shuffle_masks<>(SB), RODATA|NOPTR, $32 diff --git a/vendor/github.com/segmentio/asm/keyset/keyset_arm64.go b/vendor/github.com/segmentio/asm/keyset/keyset_arm64.go deleted file mode 100644 index feafabe..0000000 --- a/vendor/github.com/segmentio/asm/keyset/keyset_arm64.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build !purego -// +build !purego - -package keyset - -// Lookup searches for a key in a set of keys, returning its index if -// found. If the key cannot be found, the number of keys is returned. -func Lookup(keyset []byte, key []byte) int diff --git a/vendor/github.com/segmentio/asm/keyset/keyset_arm64.s b/vendor/github.com/segmentio/asm/keyset/keyset_arm64.s deleted file mode 100644 index 20acb99..0000000 --- a/vendor/github.com/segmentio/asm/keyset/keyset_arm64.s +++ /dev/null @@ -1,143 +0,0 @@ -//go:build !purego -// +build !purego - -#include "textflag.h" - -// func Lookup(keyset []byte, key []byte) int -TEXT ·Lookup(SB), NOSPLIT, $0-56 - MOVD keyset+0(FP), R0 - MOVD keyset_len+8(FP), R1 - MOVD key+24(FP), R2 - MOVD key_len+32(FP), R3 - MOVD key_cap+40(FP), R4 - - // None of the keys in the set are greater than 16 bytes, so if the input - // key is we can jump straight to not found. - CMP $16, R3 - BHI notfound - - // We'll be moving the keyset pointer (R0) forward as we compare keys, so - // make a copy of the starting point (R6). Also add the byte length (R1) to - // obtain a pointer to the end of the keyset (R5). - MOVD R0, R6 - ADD R0, R1, R5 - - // Prepare a 64-bit mask of all ones. - MOVD $-1, R7 - - // Prepare a vector of all zeroes. - VMOV ZR, V1.B16 - - // Check that it's safe to load 16 bytes of input. If cap(input)<16, jump - // to a check that determines whether a tail load is necessary (to avoid a - // page fault). - CMP $16, R4 - BLO safeload - -load: - // Load the input key (V0) and pad with zero bytes (V1). To blend the two - // vectors, we load a mask for the particular key length and then use TBL - // to select bytes from either V0 or V1. - VLD1 (R2), [V0.B16] - MOVD $blend_masks<>(SB), R10 - ADD R3<<4, R10, R10 - VLD1 (R10), [V2.B16] - VTBL V2.B16, [V0.B16, V1.B16], V3.B16 - -loop: - // Loop through each 16 byte key in the keyset. - CMP R0, R5 - BEQ notfound - - // Load and compare the next key. - VLD1.P 16(R0), [V4.B16] - VCMEQ V3.B16, V4.B16, V5.B16 - VMOV V5.D[0], R8 - VMOV V5.D[1], R9 - AND R8, R9, R9 - - // If the masks match, we found the key. - CMP R9, R7 - BEQ found - JMP loop - -found: - // If the key was found, take the position in the keyset and convert it - // to an index. The keyset pointer (R0) will be 1 key past the match, so - // subtract the starting pointer (R6), divide by 16 to convert from byte - // length to an index, and then subtract one. - SUB R6, R0, R0 - ADD R0>>4, ZR, R0 - SUB $1, R0, R0 - MOVD R0, ret+48(FP) - RET - -notfound: - // Return the number of keys in the keyset, which is the byte length (R1) - // divided by 16. - ADD R1>>4, ZR, R1 - MOVD R1, ret+48(FP) - RET - -safeload: - // Check if the input crosses a page boundary. If not, jump back. - AND $4095, R2, R12 - CMP $4080, R12 - BLS load - - // If it does cross a page boundary, we must assume that loading 16 bytes - // will cause a fault. Instead, we load the 16 bytes up to and including the - // key and then shuffle the key forward in the register. We can shuffle and - // pad with zeroes at the same time to avoid having to also blend (as load - // does). - MOVD $16, R12 - SUB R3, R12, R12 - SUB R12, R2, R2 - VLD1 (R2), [V0.B16] - MOVD $shuffle_masks<>(SB), R10 - ADD R12, R10, R10 - VLD1 (R10), [V2.B16] - VTBL V2.B16, [V0.B16, V1.B16], V3.B16 - JMP loop - -DATA blend_masks<>+0(SB)/8, $0x1010101010101010 -DATA blend_masks<>+8(SB)/8, $0x1010101010101010 -DATA blend_masks<>+16(SB)/8, $0x1010101010101000 -DATA blend_masks<>+24(SB)/8, $0x1010101010101010 -DATA blend_masks<>+32(SB)/8, $0x1010101010100100 -DATA blend_masks<>+40(SB)/8, $0x1010101010101010 -DATA blend_masks<>+48(SB)/8, $0x1010101010020100 -DATA blend_masks<>+56(SB)/8, $0x1010101010101010 -DATA blend_masks<>+64(SB)/8, $0x1010101003020100 -DATA blend_masks<>+72(SB)/8, $0x1010101010101010 -DATA blend_masks<>+80(SB)/8, $0x1010100403020100 -DATA blend_masks<>+88(SB)/8, $0x1010101010101010 -DATA blend_masks<>+96(SB)/8, $0x1010050403020100 -DATA blend_masks<>+104(SB)/8, $0x1010101010101010 -DATA blend_masks<>+112(SB)/8, $0x1006050403020100 -DATA blend_masks<>+120(SB)/8, $0x1010101010101010 -DATA blend_masks<>+128(SB)/8, $0x0706050403020100 -DATA blend_masks<>+136(SB)/8, $0x1010101010101010 -DATA blend_masks<>+144(SB)/8, $0x0706050403020100 -DATA blend_masks<>+152(SB)/8, $0x1010101010101008 -DATA blend_masks<>+160(SB)/8, $0x0706050403020100 -DATA blend_masks<>+168(SB)/8, $0x1010101010100908 -DATA blend_masks<>+176(SB)/8, $0x0706050403020100 -DATA blend_masks<>+184(SB)/8, $0x10101010100A0908 -DATA blend_masks<>+192(SB)/8, $0x0706050403020100 -DATA blend_masks<>+200(SB)/8, $0x101010100B0A0908 -DATA blend_masks<>+208(SB)/8, $0x0706050403020100 -DATA blend_masks<>+216(SB)/8, $0x1010100C0B0A0908 -DATA blend_masks<>+224(SB)/8, $0x0706050403020100 -DATA blend_masks<>+232(SB)/8, $0x10100D0C0B0A0908 -DATA blend_masks<>+240(SB)/8, $0x0706050403020100 -DATA blend_masks<>+248(SB)/8, $0x100E0D0C0B0A0908 -DATA blend_masks<>+256(SB)/8, $0x0706050403020100 -DATA blend_masks<>+264(SB)/8, $0x0F0E0D0C0B0A0908 -GLOBL blend_masks<>(SB), RODATA|NOPTR, $272 - -DATA shuffle_masks<>+0(SB)/8, $0x0706050403020100 -DATA shuffle_masks<>+8(SB)/8, $0x0F0E0D0C0B0A0908 -DATA shuffle_masks<>+16(SB)/8, $0x1010101010101010 -DATA shuffle_masks<>+24(SB)/8, $0x1010101010101010 -GLOBL shuffle_masks<>(SB), RODATA|NOPTR, $32 diff --git a/vendor/github.com/segmentio/asm/keyset/keyset_default.go b/vendor/github.com/segmentio/asm/keyset/keyset_default.go deleted file mode 100644 index 1fa7d3f..0000000 --- a/vendor/github.com/segmentio/asm/keyset/keyset_default.go +++ /dev/null @@ -1,19 +0,0 @@ -//go:build purego || !(amd64 || arm64) -// +build purego !amd64,!arm64 - -package keyset - -func Lookup(keyset []byte, key []byte) int { - if len(key) > 16 { - return len(keyset) / 16 - } - var padded [16]byte - copy(padded[:], key) - - for i := 0; i < len(keyset); i += 16 { - if string(padded[:]) == string(keyset[i:i+16]) { - return i / 16 - } - } - return len(keyset) / 16 -} diff --git a/vendor/github.com/segmentio/encoding/LICENSE b/vendor/github.com/segmentio/encoding/LICENSE deleted file mode 100644 index 1fbffdf..0000000 --- a/vendor/github.com/segmentio/encoding/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Segment.io, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/segmentio/encoding/ascii/equal_fold.go b/vendor/github.com/segmentio/encoding/ascii/equal_fold.go deleted file mode 100644 index 4207f17..0000000 --- a/vendor/github.com/segmentio/encoding/ascii/equal_fold.go +++ /dev/null @@ -1,40 +0,0 @@ -//go:generate go run equal_fold_asm.go -out equal_fold_amd64.s -stubs equal_fold_amd64.go -package ascii - -import ( - "github.com/segmentio/asm/ascii" -) - -// EqualFold is a version of bytes.EqualFold designed to work on ASCII input -// instead of UTF-8. -// -// When the program has guarantees that the input is composed of ASCII -// characters only, it allows for greater optimizations. -func EqualFold(a, b []byte) bool { - return ascii.EqualFold(a, b) -} - -func HasPrefixFold(s, prefix []byte) bool { - return ascii.HasPrefixFold(s, prefix) -} - -func HasSuffixFold(s, suffix []byte) bool { - return ascii.HasSuffixFold(s, suffix) -} - -// EqualFoldString is a version of strings.EqualFold designed to work on ASCII -// input instead of UTF-8. -// -// When the program has guarantees that the input is composed of ASCII -// characters only, it allows for greater optimizations. -func EqualFoldString(a, b string) bool { - return ascii.EqualFoldString(a, b) -} - -func HasPrefixFoldString(s, prefix string) bool { - return ascii.HasPrefixFoldString(s, prefix) -} - -func HasSuffixFoldString(s, suffix string) bool { - return ascii.HasSuffixFoldString(s, suffix) -} diff --git a/vendor/github.com/segmentio/encoding/ascii/valid.go b/vendor/github.com/segmentio/encoding/ascii/valid.go deleted file mode 100644 index 68b7c6c..0000000 --- a/vendor/github.com/segmentio/encoding/ascii/valid.go +++ /dev/null @@ -1,26 +0,0 @@ -//go:generate go run valid_asm.go -out valid_amd64.s -stubs valid_amd64.go -package ascii - -import ( - "github.com/segmentio/asm/ascii" -) - -// Valid returns true if b contains only ASCII characters. -func Valid(b []byte) bool { - return ascii.Valid(b) -} - -// ValidBytes returns true if b is an ASCII character. -func ValidByte(b byte) bool { - return ascii.ValidByte(b) -} - -// ValidBytes returns true if b is an ASCII character. -func ValidRune(r rune) bool { - return ascii.ValidRune(r) -} - -// ValidString returns true if s contains only ASCII characters. -func ValidString(s string) bool { - return ascii.ValidString(s) -} diff --git a/vendor/github.com/segmentio/encoding/ascii/valid_print.go b/vendor/github.com/segmentio/encoding/ascii/valid_print.go deleted file mode 100644 index 241f584..0000000 --- a/vendor/github.com/segmentio/encoding/ascii/valid_print.go +++ /dev/null @@ -1,26 +0,0 @@ -//go:generate go run valid_print_asm.go -out valid_print_amd64.s -stubs valid_print_amd64.go -package ascii - -import ( - "github.com/segmentio/asm/ascii" -) - -// Valid returns true if b contains only printable ASCII characters. -func ValidPrint(b []byte) bool { - return ascii.ValidPrint(b) -} - -// ValidBytes returns true if b is an ASCII character. -func ValidPrintByte(b byte) bool { - return ascii.ValidPrintByte(b) -} - -// ValidBytes returns true if b is an ASCII character. -func ValidPrintRune(r rune) bool { - return ascii.ValidPrintRune(r) -} - -// ValidString returns true if s contains only printable ASCII characters. -func ValidPrintString(s string) bool { - return ascii.ValidPrintString(s) -} diff --git a/vendor/github.com/segmentio/encoding/iso8601/parse.go b/vendor/github.com/segmentio/encoding/iso8601/parse.go deleted file mode 100644 index 6fbe5dc..0000000 --- a/vendor/github.com/segmentio/encoding/iso8601/parse.go +++ /dev/null @@ -1,185 +0,0 @@ -package iso8601 - -import ( - "encoding/binary" - "errors" - "time" - "unsafe" -) - -var ( - errInvalidTimestamp = errors.New("invalid ISO8601 timestamp") - errMonthOutOfRange = errors.New("month out of range") - errDayOutOfRange = errors.New("day out of range") - errHourOutOfRange = errors.New("hour out of range") - errMinuteOutOfRange = errors.New("minute out of range") - errSecondOutOfRange = errors.New("second out of range") -) - -// Parse parses an ISO8601 timestamp, e.g. "2021-03-25T21:36:12Z". -func Parse(input string) (time.Time, error) { - b := unsafeStringToBytes(input) - if len(b) >= 20 && len(b) <= 30 && b[len(b)-1] == 'Z' { - if len(b) == 21 || (len(b) > 21 && b[19] != '.') { - return time.Time{}, errInvalidTimestamp - } - - t1 := binary.LittleEndian.Uint64(b) - t2 := binary.LittleEndian.Uint64(b[8:16]) - t3 := uint64(b[16]) | uint64(b[17])<<8 | uint64(b[18])<<16 | uint64('Z')<<24 - - // Check for valid separators by masking input with " - - T : : Z". - // If separators are all valid, replace them with a '0' (0x30) byte and - // check all bytes are now numeric. - if !match(t1, mask1) || !match(t2, mask2) || !match(t3, mask3) { - return time.Time{}, errInvalidTimestamp - } - t1 ^= replace1 - t2 ^= replace2 - t3 ^= replace3 - if (nonNumeric(t1) | nonNumeric(t2) | nonNumeric(t3)) != 0 { - return time.Time{}, errInvalidTimestamp - } - - t1 -= zero - t2 -= zero - t3 -= zero - year := (t1&0xF)*1000 + (t1>>8&0xF)*100 + (t1>>16&0xF)*10 + (t1 >> 24 & 0xF) - month := (t1>>40&0xF)*10 + (t1 >> 48 & 0xF) - day := (t2&0xF)*10 + (t2 >> 8 & 0xF) - hour := (t2>>24&0xF)*10 + (t2 >> 32 & 0xF) - minute := (t2>>48&0xF)*10 + (t2 >> 56) - second := (t3>>8&0xF)*10 + (t3 >> 16) - - nanos := int64(0) - if len(b) > 20 { - for _, c := range b[20 : len(b)-1] { - if c < '0' || c > '9' { - return time.Time{}, errInvalidTimestamp - } - nanos = (nanos * 10) + int64(c-'0') - } - nanos *= pow10[30-len(b)] - } - - if err := validate(year, month, day, hour, minute, second); err != nil { - return time.Time{}, err - } - - unixSeconds := int64(daysSinceEpoch(year, month, day))*86400 + int64(hour*3600+minute*60+second) - return time.Unix(unixSeconds, nanos).UTC(), nil - } - - // Fallback to using time.Parse(). - t, err := time.Parse(time.RFC3339Nano, input) - if err != nil { - // Override (and don't wrap) the error here. The error returned by - // time.Parse() is dynamic, and includes a reference to the input - // string. By overriding the error, we guarantee that the input string - // doesn't escape. - return time.Time{}, errInvalidTimestamp - } - return t, nil -} - -var pow10 = []int64{1, 10, 100, 1000, 1e4, 1e5, 1e6, 1e7, 1e8} - -const ( - mask1 = 0x2d00002d00000000 // YYYY-MM- - mask2 = 0x00003a0000540000 // DDTHH:MM - mask3 = 0x000000005a00003a // :SSZ____ - - // Generate masks that replace the separators with a numeric byte. - // The input must have valid separators. XOR with the separator bytes - // to zero them out and then XOR with 0x30 to replace them with '0'. - replace1 = mask1 ^ 0x3000003000000000 - replace2 = mask2 ^ 0x0000300000300000 - replace3 = mask3 ^ 0x3030303030000030 - - lsb = ^uint64(0) / 255 - msb = lsb * 0x80 - - zero = lsb * '0' - nine = lsb * '9' -) - -func validate(year, month, day, hour, minute, second uint64) error { - if day == 0 || day > 31 { - return errDayOutOfRange - } - if month == 0 || month > 12 { - return errMonthOutOfRange - } - if hour >= 24 { - return errHourOutOfRange - } - if minute >= 60 { - return errMinuteOutOfRange - } - if second >= 60 { - return errSecondOutOfRange - } - if month == 2 && (day > 29 || (day == 29 && !isLeapYear(year))) { - return errDayOutOfRange - } - if day == 31 { - switch month { - case 4, 6, 9, 11: - return errDayOutOfRange - } - } - return nil -} - -func match(u, mask uint64) bool { - return (u & mask) == mask -} - -func nonNumeric(u uint64) uint64 { - // Derived from https://graphics.stanford.edu/~seander/bithacks.html#HasLessInWord. - // Subtract '0' (0x30) from each byte so that the MSB is set in each byte - // if there's a byte less than '0' (0x30). Add 0x46 (0x7F-'9') so that the - // MSB is set if there's a byte greater than '9' (0x39). To handle overflow - // when adding 0x46, include the MSB from the input bytes in the final mask. - // Remove all but the MSBs and then you're left with a mask where each - // non-numeric byte from the input has its MSB set in the output. - return ((u - zero) | (u + (^msb - nine)) | u) & msb -} - -func daysSinceEpoch(year, month, day uint64) uint64 { - // Derived from https://blog.reverberate.org/2020/05/12/optimizing-date-algorithms.html. - monthAdjusted := month - 3 - var carry uint64 - if monthAdjusted > month { - carry = 1 - } - var adjust uint64 - if carry == 1 { - adjust = 12 - } - yearAdjusted := year + 4800 - carry - monthDays := ((monthAdjusted+adjust)*62719 + 769) / 2048 - leapDays := yearAdjusted/4 - yearAdjusted/100 + yearAdjusted/400 - return yearAdjusted*365 + leapDays + monthDays + (day - 1) - 2472632 -} - -func isLeapYear(y uint64) bool { - return (y%4) == 0 && ((y%100) != 0 || (y%400) == 0) -} - -func unsafeStringToBytes(s string) []byte { - return *(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: *(*unsafe.Pointer)(unsafe.Pointer(&s)), - Len: len(s), - Cap: len(s), - })) -} - -// sliceHeader is like reflect.SliceHeader but the Data field is a -// unsafe.Pointer instead of being a uintptr to avoid invalid -// conversions from uintptr to unsafe.Pointer. -type sliceHeader struct { - Data unsafe.Pointer - Len int - Cap int -} diff --git a/vendor/github.com/segmentio/encoding/iso8601/valid.go b/vendor/github.com/segmentio/encoding/iso8601/valid.go deleted file mode 100644 index 2c4edec..0000000 --- a/vendor/github.com/segmentio/encoding/iso8601/valid.go +++ /dev/null @@ -1,179 +0,0 @@ -package iso8601 - -// ValidFlags is a bitset type used to configure the behavior of the Valid -//function. -type ValidFlags int - -const ( - // Strict is a validation flag used to represent a string iso8601 validation - // (this is the default). - Strict ValidFlags = 0 - - // AllowSpaceSeparator allows the presence of a space instead of a 'T' as - // separator between the date and time. - AllowSpaceSeparator ValidFlags = 1 << iota - - // AllowMissingTime allows the value to contain only a date. - AllowMissingTime - - // AllowMissingSubsecond allows the value to contain only a date and time. - AllowMissingSubsecond - - // AllowMissingTimezone allows the value to be missing the timezone - // information. - AllowMissingTimezone - - // AllowNumericTimezone allows the value to represent timezones in their - // numeric form. - AllowNumericTimezone - - // Flexible is a combination of all validation flag that allow for - // non-strict checking of the input value. - Flexible = AllowSpaceSeparator | AllowMissingTime | AllowMissingSubsecond | AllowMissingTimezone | AllowNumericTimezone -) - -// Valid check value to verify whether or not it is a valid iso8601 time -// representation. -func Valid(value string, flags ValidFlags) bool { - var ok bool - - // year - if value, ok = readDigits(value, 4, 4); !ok { - return false - } - - if value, ok = readByte(value, '-'); !ok { - return false - } - - // month - if value, ok = readDigits(value, 2, 2); !ok { - return false - } - - if value, ok = readByte(value, '-'); !ok { - return false - } - - // day - if value, ok = readDigits(value, 2, 2); !ok { - return false - } - - if len(value) == 0 && (flags&AllowMissingTime) != 0 { - return true // date only - } - - // separator - if value, ok = readByte(value, 'T'); !ok { - if (flags & AllowSpaceSeparator) == 0 { - return false - } - if value, ok = readByte(value, ' '); !ok { - return false - } - } - - // hour - if value, ok = readDigits(value, 2, 2); !ok { - return false - } - - if value, ok = readByte(value, ':'); !ok { - return false - } - - // minute - if value, ok = readDigits(value, 2, 2); !ok { - return false - } - - if value, ok = readByte(value, ':'); !ok { - return false - } - - // second - if value, ok = readDigits(value, 2, 2); !ok { - return false - } - - // microsecond - if value, ok = readByte(value, '.'); !ok { - if (flags & AllowMissingSubsecond) == 0 { - return false - } - } else { - if value, ok = readDigits(value, 1, 9); !ok { - return false - } - } - - if len(value) == 0 && (flags&AllowMissingTimezone) != 0 { - return true // date and time - } - - // timezone - if value, ok = readByte(value, 'Z'); ok { - return len(value) == 0 - } - - if (flags & AllowSpaceSeparator) != 0 { - value, _ = readByte(value, ' ') - } - - if value, ok = readByte(value, '+'); !ok { - if value, ok = readByte(value, '-'); !ok { - return false - } - } - - // timezone hour - if value, ok = readDigits(value, 2, 2); !ok { - return false - } - - if value, ok = readByte(value, ':'); !ok { - if (flags & AllowNumericTimezone) == 0 { - return false - } - } - - // timezone minute - if value, ok = readDigits(value, 2, 2); !ok { - return false - } - - return len(value) == 0 -} - -func readDigits(value string, min, max int) (string, bool) { - if len(value) < min { - return value, false - } - - i := 0 - - for i < max && i < len(value) && isDigit(value[i]) { - i++ - } - - if i < max && i < min { - return value, false - } - - return value[i:], true -} - -func readByte(value string, c byte) (string, bool) { - if len(value) == 0 { - return value, false - } - if value[0] != c { - return value, false - } - return value[1:], true -} - -func isDigit(c byte) bool { - return '0' <= c && c <= '9' -} diff --git a/vendor/github.com/segmentio/encoding/json/README.md b/vendor/github.com/segmentio/encoding/json/README.md deleted file mode 100644 index c5ed94b..0000000 --- a/vendor/github.com/segmentio/encoding/json/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# encoding/json [![GoDoc](https://godoc.org/github.com/segmentio/encoding/json?status.svg)](https://godoc.org/github.com/segmentio/encoding/json) - -Go package offering a replacement implementation of the standard library's -[`encoding/json`](https://golang.org/pkg/encoding/json/) package, with much -better performance. - -## Usage - -The exported API of this package mirrors the standard library's -[`encoding/json`](https://golang.org/pkg/encoding/json/) package, the only -change needed to take advantage of the performance improvements is the import -path of the `json` package, from: -```go -import ( - "encoding/json" -) -``` -to -```go -import ( - "github.com/segmentio/encoding/json" -) -``` - -One way to gain higher encoding throughput is to disable HTML escaping. -It allows the string encoding to use a much more efficient code path which -does not require parsing UTF-8 runes most of the time. - -## Performance Improvements - -The internal implementation uses a fair amount of unsafe operations (untyped -code, pointer arithmetic, etc...) to avoid using reflection as much as possible, -which is often the reason why serialization code has a large CPU and memory -footprint. - -The package aims for zero unnecessary dynamic memory allocations and hot code -paths that are mostly free from calls into the reflect package. - -## Compatibility with encoding/json - -This package aims to be a drop-in replacement, therefore it is tested to behave -exactly like the standard library's package. However, there are still a few -missing features that have not been ported yet: - -- Streaming decoder, currently the `Decoder` implementation offered by the -package does not support progressively reading values from a JSON array (unlike -the standard library). In our experience this is a very rare use-case, if you -need it you're better off sticking to the standard library, or spend a bit of -time implementing it in here ;) - -Note that none of those features should result in performance degradations if -they were implemented in the package, and we welcome contributions! - -## Trade-offs - -As one would expect, we had to make a couple of trade-offs to achieve greater -performance than the standard library, but there were also features that we -did not want to give away. - -Other open-source packages offering a reduced CPU and memory footprint usually -do so by designing a different API, or require code generation (therefore adding -complexity to the build process). These were not acceptable conditions for us, -as we were not willing to trade off developer productivity for better runtime -performance. To achieve this, we chose to exactly replicate the standard -library interfaces and behavior, which meant the package implementation was the -only area that we were able to work with. The internals of this package make -heavy use of unsafe pointer arithmetics and other performance optimizations, -and therefore are not as approachable as typical Go programs. Basically, we put -a bigger burden on maintainers to achieve better runtime cost without -sacrificing developer productivity. - -For these reasons, we also don't believe that this code should be ported upstream -to the standard `encoding/json` package. The standard library has to remain -readable and approachable to maximize stability and maintainability, and make -projects like this one possible because a high quality reference implementation -already exists. diff --git a/vendor/github.com/segmentio/encoding/json/codec.go b/vendor/github.com/segmentio/encoding/json/codec.go deleted file mode 100644 index 908c3f6..0000000 --- a/vendor/github.com/segmentio/encoding/json/codec.go +++ /dev/null @@ -1,1232 +0,0 @@ -package json - -import ( - "encoding" - "encoding/json" - "fmt" - "reflect" - "sort" - "strconv" - "strings" - "sync/atomic" - "time" - "unicode" - "unsafe" - - "github.com/segmentio/asm/keyset" -) - -const ( - // 1000 is the value used by the standard encoding/json package. - // - // https://cs.opensource.google/go/go/+/refs/tags/go1.17.3:src/encoding/json/encode.go;drc=refs%2Ftags%2Fgo1.17.3;l=300 - startDetectingCyclesAfter = 1000 -) - -type codec struct { - encode encodeFunc - decode decodeFunc -} - -type encoder struct { - flags AppendFlags - // ptrDepth tracks the depth of pointer cycles, when it reaches the value - // of startDetectingCyclesAfter, the ptrSeen map is allocated and the - // encoder starts tracking pointers it has seen as an attempt to detect - // whether it has entered a pointer cycle and needs to error before the - // goroutine runs out of stack space. - ptrDepth uint32 - ptrSeen map[unsafe.Pointer]struct{} -} - -type decoder struct { - flags ParseFlags -} - -type encodeFunc func(encoder, []byte, unsafe.Pointer) ([]byte, error) -type decodeFunc func(decoder, []byte, unsafe.Pointer) ([]byte, error) - -type emptyFunc func(unsafe.Pointer) bool -type sortFunc func([]reflect.Value) - -var ( - // Eventually consistent cache mapping go types to dynamically generated - // codecs. - // - // Note: using a uintptr as key instead of reflect.Type shaved ~15ns off of - // the ~30ns Marhsal/Unmarshal functions which were dominated by the map - // lookup time for simple types like bool, int, etc.. - cache unsafe.Pointer // map[unsafe.Pointer]codec -) - -func cacheLoad() map[unsafe.Pointer]codec { - p := atomic.LoadPointer(&cache) - return *(*map[unsafe.Pointer]codec)(unsafe.Pointer(&p)) -} - -func cacheStore(typ reflect.Type, cod codec, oldCodecs map[unsafe.Pointer]codec) { - newCodecs := make(map[unsafe.Pointer]codec, len(oldCodecs)+1) - newCodecs[typeid(typ)] = cod - - for t, c := range oldCodecs { - newCodecs[t] = c - } - - atomic.StorePointer(&cache, *(*unsafe.Pointer)(unsafe.Pointer(&newCodecs))) -} - -func typeid(t reflect.Type) unsafe.Pointer { - return (*iface)(unsafe.Pointer(&t)).ptr -} - -func constructCachedCodec(t reflect.Type, cache map[unsafe.Pointer]codec) codec { - c := constructCodec(t, map[reflect.Type]*structType{}, t.Kind() == reflect.Ptr) - - if inlined(t) { - c.encode = constructInlineValueEncodeFunc(c.encode) - } - - cacheStore(t, c, cache) - return c -} - -func constructCodec(t reflect.Type, seen map[reflect.Type]*structType, canAddr bool) (c codec) { - switch t { - case nullType, nil: - c = codec{encode: encoder.encodeNull, decode: decoder.decodeNull} - - case numberType: - c = codec{encode: encoder.encodeNumber, decode: decoder.decodeNumber} - - case bytesType: - c = codec{encode: encoder.encodeBytes, decode: decoder.decodeBytes} - - case durationType: - c = codec{encode: encoder.encodeDuration, decode: decoder.decodeDuration} - - case timeType: - c = codec{encode: encoder.encodeTime, decode: decoder.decodeTime} - - case interfaceType: - c = codec{encode: encoder.encodeInterface, decode: decoder.decodeInterface} - - case rawMessageType: - c = codec{encode: encoder.encodeRawMessage, decode: decoder.decodeRawMessage} - - case numberPtrType: - c = constructPointerCodec(numberPtrType, nil) - - case durationPtrType: - c = constructPointerCodec(durationPtrType, nil) - - case timePtrType: - c = constructPointerCodec(timePtrType, nil) - - case rawMessagePtrType: - c = constructPointerCodec(rawMessagePtrType, nil) - } - - if c.encode != nil { - return - } - - switch t.Kind() { - case reflect.Bool: - c = codec{encode: encoder.encodeBool, decode: decoder.decodeBool} - - case reflect.Int: - c = codec{encode: encoder.encodeInt, decode: decoder.decodeInt} - - case reflect.Int8: - c = codec{encode: encoder.encodeInt8, decode: decoder.decodeInt8} - - case reflect.Int16: - c = codec{encode: encoder.encodeInt16, decode: decoder.decodeInt16} - - case reflect.Int32: - c = codec{encode: encoder.encodeInt32, decode: decoder.decodeInt32} - - case reflect.Int64: - c = codec{encode: encoder.encodeInt64, decode: decoder.decodeInt64} - - case reflect.Uint: - c = codec{encode: encoder.encodeUint, decode: decoder.decodeUint} - - case reflect.Uintptr: - c = codec{encode: encoder.encodeUintptr, decode: decoder.decodeUintptr} - - case reflect.Uint8: - c = codec{encode: encoder.encodeUint8, decode: decoder.decodeUint8} - - case reflect.Uint16: - c = codec{encode: encoder.encodeUint16, decode: decoder.decodeUint16} - - case reflect.Uint32: - c = codec{encode: encoder.encodeUint32, decode: decoder.decodeUint32} - - case reflect.Uint64: - c = codec{encode: encoder.encodeUint64, decode: decoder.decodeUint64} - - case reflect.Float32: - c = codec{encode: encoder.encodeFloat32, decode: decoder.decodeFloat32} - - case reflect.Float64: - c = codec{encode: encoder.encodeFloat64, decode: decoder.decodeFloat64} - - case reflect.String: - c = codec{encode: encoder.encodeString, decode: decoder.decodeString} - - case reflect.Interface: - c = constructInterfaceCodec(t) - - case reflect.Array: - c = constructArrayCodec(t, seen, canAddr) - - case reflect.Slice: - c = constructSliceCodec(t, seen) - - case reflect.Map: - c = constructMapCodec(t, seen) - - case reflect.Struct: - c = constructStructCodec(t, seen, canAddr) - - case reflect.Ptr: - c = constructPointerCodec(t, seen) - - default: - c = constructUnsupportedTypeCodec(t) - } - - p := reflect.PtrTo(t) - - if canAddr { - switch { - case p.Implements(jsonMarshalerType): - c.encode = constructJSONMarshalerEncodeFunc(t, true) - case p.Implements(textMarshalerType): - c.encode = constructTextMarshalerEncodeFunc(t, true) - } - } - - switch { - case t.Implements(jsonMarshalerType): - c.encode = constructJSONMarshalerEncodeFunc(t, false) - case t.Implements(textMarshalerType): - c.encode = constructTextMarshalerEncodeFunc(t, false) - } - - switch { - case p.Implements(jsonUnmarshalerType): - c.decode = constructJSONUnmarshalerDecodeFunc(t, true) - case p.Implements(textUnmarshalerType): - c.decode = constructTextUnmarshalerDecodeFunc(t, true) - } - - return -} - -func constructStringCodec(t reflect.Type, seen map[reflect.Type]*structType, canAddr bool) codec { - c := constructCodec(t, seen, canAddr) - return codec{ - encode: constructStringEncodeFunc(c.encode), - decode: constructStringDecodeFunc(c.decode), - } -} - -func constructStringEncodeFunc(encode encodeFunc) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeToString(b, p, encode) - } -} - -func constructStringDecodeFunc(decode decodeFunc) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeFromString(b, p, decode) - } -} - -func constructStringToIntDecodeFunc(t reflect.Type, decode decodeFunc) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeFromStringToInt(b, p, t, decode) - } -} - -func constructArrayCodec(t reflect.Type, seen map[reflect.Type]*structType, canAddr bool) codec { - e := t.Elem() - c := constructCodec(e, seen, canAddr) - s := alignedSize(e) - return codec{ - encode: constructArrayEncodeFunc(s, t, c.encode), - decode: constructArrayDecodeFunc(s, t, c.decode), - } -} - -func constructArrayEncodeFunc(size uintptr, t reflect.Type, encode encodeFunc) encodeFunc { - n := t.Len() - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeArray(b, p, n, size, t, encode) - } -} - -func constructArrayDecodeFunc(size uintptr, t reflect.Type, decode decodeFunc) decodeFunc { - n := t.Len() - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeArray(b, p, n, size, t, decode) - } -} - -func constructSliceCodec(t reflect.Type, seen map[reflect.Type]*structType) codec { - e := t.Elem() - s := alignedSize(e) - - if e.Kind() == reflect.Uint8 { - // Go 1.7+ behavior: slices of byte types (and aliases) may override the - // default encoding and decoding behaviors by implementing marshaler and - // unmarshaler interfaces. - p := reflect.PtrTo(e) - c := codec{} - - switch { - case e.Implements(jsonMarshalerType): - c.encode = constructJSONMarshalerEncodeFunc(e, false) - case e.Implements(textMarshalerType): - c.encode = constructTextMarshalerEncodeFunc(e, false) - case p.Implements(jsonMarshalerType): - c.encode = constructJSONMarshalerEncodeFunc(e, true) - case p.Implements(textMarshalerType): - c.encode = constructTextMarshalerEncodeFunc(e, true) - } - - switch { - case e.Implements(jsonUnmarshalerType): - c.decode = constructJSONUnmarshalerDecodeFunc(e, false) - case e.Implements(textUnmarshalerType): - c.decode = constructTextUnmarshalerDecodeFunc(e, false) - case p.Implements(jsonUnmarshalerType): - c.decode = constructJSONUnmarshalerDecodeFunc(e, true) - case p.Implements(textUnmarshalerType): - c.decode = constructTextUnmarshalerDecodeFunc(e, true) - } - - if c.encode != nil { - c.encode = constructSliceEncodeFunc(s, t, c.encode) - } else { - c.encode = encoder.encodeBytes - } - - if c.decode != nil { - c.decode = constructSliceDecodeFunc(s, t, c.decode) - } else { - c.decode = decoder.decodeBytes - } - - return c - } - - c := constructCodec(e, seen, true) - return codec{ - encode: constructSliceEncodeFunc(s, t, c.encode), - decode: constructSliceDecodeFunc(s, t, c.decode), - } -} - -func constructSliceEncodeFunc(size uintptr, t reflect.Type, encode encodeFunc) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeSlice(b, p, size, t, encode) - } -} - -func constructSliceDecodeFunc(size uintptr, t reflect.Type, decode decodeFunc) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeSlice(b, p, size, t, decode) - } -} - -func constructMapCodec(t reflect.Type, seen map[reflect.Type]*structType) codec { - var sortKeys sortFunc - k := t.Key() - v := t.Elem() - - // Faster implementations for some common cases. - switch { - case k == stringType && v == interfaceType: - return codec{ - encode: encoder.encodeMapStringInterface, - decode: decoder.decodeMapStringInterface, - } - - case k == stringType && v == rawMessageType: - return codec{ - encode: encoder.encodeMapStringRawMessage, - decode: decoder.decodeMapStringRawMessage, - } - - case k == stringType && v == stringType: - return codec{ - encode: encoder.encodeMapStringString, - decode: decoder.decodeMapStringString, - } - - case k == stringType && v == stringsType: - return codec{ - encode: encoder.encodeMapStringStringSlice, - decode: decoder.decodeMapStringStringSlice, - } - - case k == stringType && v == boolType: - return codec{ - encode: encoder.encodeMapStringBool, - decode: decoder.decodeMapStringBool, - } - } - - kc := codec{} - vc := constructCodec(v, seen, false) - - if k.Implements(textMarshalerType) || reflect.PtrTo(k).Implements(textUnmarshalerType) { - kc.encode = constructTextMarshalerEncodeFunc(k, false) - kc.decode = constructTextUnmarshalerDecodeFunc(k, true) - - sortKeys = func(keys []reflect.Value) { - sort.Slice(keys, func(i, j int) bool { - // This is a performance abomination but the use case is rare - // enough that it shouldn't be a problem in practice. - k1, _ := keys[i].Interface().(encoding.TextMarshaler).MarshalText() - k2, _ := keys[j].Interface().(encoding.TextMarshaler).MarshalText() - return string(k1) < string(k2) - }) - } - } else { - switch k.Kind() { - case reflect.String: - kc.encode = encoder.encodeString - kc.decode = decoder.decodeString - - sortKeys = func(keys []reflect.Value) { - sort.Slice(keys, func(i, j int) bool { return keys[i].String() < keys[j].String() }) - } - - case reflect.Int, - reflect.Int8, - reflect.Int16, - reflect.Int32, - reflect.Int64: - kc = constructStringCodec(k, seen, false) - - sortKeys = func(keys []reflect.Value) { - sort.Slice(keys, func(i, j int) bool { return intStringsAreSorted(keys[i].Int(), keys[j].Int()) }) - } - - case reflect.Uint, - reflect.Uintptr, - reflect.Uint8, - reflect.Uint16, - reflect.Uint32, - reflect.Uint64: - kc = constructStringCodec(k, seen, false) - - sortKeys = func(keys []reflect.Value) { - sort.Slice(keys, func(i, j int) bool { return uintStringsAreSorted(keys[i].Uint(), keys[j].Uint()) }) - } - - default: - return constructUnsupportedTypeCodec(t) - } - } - - if inlined(v) { - vc.encode = constructInlineValueEncodeFunc(vc.encode) - } - - return codec{ - encode: constructMapEncodeFunc(t, kc.encode, vc.encode, sortKeys), - decode: constructMapDecodeFunc(t, kc.decode, vc.decode), - } -} - -func constructMapEncodeFunc(t reflect.Type, encodeKey, encodeValue encodeFunc, sortKeys sortFunc) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeMap(b, p, t, encodeKey, encodeValue, sortKeys) - } -} - -func constructMapDecodeFunc(t reflect.Type, decodeKey, decodeValue decodeFunc) decodeFunc { - kt := t.Key() - vt := t.Elem() - kz := reflect.Zero(kt) - vz := reflect.Zero(vt) - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeMap(b, p, t, kt, vt, kz, vz, decodeKey, decodeValue) - } -} - -func constructStructCodec(t reflect.Type, seen map[reflect.Type]*structType, canAddr bool) codec { - st := constructStructType(t, seen, canAddr) - return codec{ - encode: constructStructEncodeFunc(st), - decode: constructStructDecodeFunc(st), - } -} - -func constructStructType(t reflect.Type, seen map[reflect.Type]*structType, canAddr bool) *structType { - // Used for preventing infinite recursion on types that have pointers to - // themselves. - st := seen[t] - - if st == nil { - st = &structType{ - fields: make([]structField, 0, t.NumField()), - fieldsIndex: make(map[string]*structField), - ficaseIndex: make(map[string]*structField), - typ: t, - } - - seen[t] = st - st.fields = appendStructFields(st.fields, t, 0, seen, canAddr) - - for i := range st.fields { - f := &st.fields[i] - s := strings.ToLower(f.name) - st.fieldsIndex[f.name] = f - // When there is ambiguity because multiple fields have the same - // case-insensitive representation, the first field must win. - if _, exists := st.ficaseIndex[s]; !exists { - st.ficaseIndex[s] = f - } - } - - // At a certain point the linear scan provided by keyset is less - // efficient than a map. The 32 was chosen based on benchmarks in the - // segmentio/asm repo run with an Intel Kaby Lake processor and go1.17. - if len(st.fields) <= 32 { - keys := make([][]byte, len(st.fields)) - for i, f := range st.fields { - keys[i] = []byte(f.name) - } - st.keyset = keyset.New(keys) - } - } - - return st -} - -func constructStructEncodeFunc(st *structType) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeStruct(b, p, st) - } -} - -func constructStructDecodeFunc(st *structType) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeStruct(b, p, st) - } -} - -func constructEmbeddedStructPointerCodec(t reflect.Type, unexported bool, offset uintptr, field codec) codec { - return codec{ - encode: constructEmbeddedStructPointerEncodeFunc(t, unexported, offset, field.encode), - decode: constructEmbeddedStructPointerDecodeFunc(t, unexported, offset, field.decode), - } -} - -func constructEmbeddedStructPointerEncodeFunc(t reflect.Type, unexported bool, offset uintptr, encode encodeFunc) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeEmbeddedStructPointer(b, p, t, unexported, offset, encode) - } -} - -func constructEmbeddedStructPointerDecodeFunc(t reflect.Type, unexported bool, offset uintptr, decode decodeFunc) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeEmbeddedStructPointer(b, p, t, unexported, offset, decode) - } -} - -func appendStructFields(fields []structField, t reflect.Type, offset uintptr, seen map[reflect.Type]*structType, canAddr bool) []structField { - type embeddedField struct { - index int - offset uintptr - pointer bool - unexported bool - subtype *structType - subfield *structField - } - - names := make(map[string]struct{}) - embedded := make([]embeddedField, 0, 10) - - for i, n := 0, t.NumField(); i < n; i++ { - f := t.Field(i) - - var ( - name = f.Name - anonymous = f.Anonymous - tag = false - omitempty = false - stringify = false - unexported = len(f.PkgPath) != 0 - ) - - if unexported && !anonymous { // unexported - continue - } - - if parts := strings.Split(f.Tag.Get("json"), ","); len(parts) != 0 { - if len(parts[0]) != 0 { - name, tag = parts[0], true - } - - if name == "-" && len(parts) == 1 { // ignored - continue - } - - if !isValidTag(name) { - name = f.Name - } - - for _, tag := range parts[1:] { - switch tag { - case "omitempty": - omitempty = true - case "string": - stringify = true - } - } - } - - if anonymous && !tag { // embedded - typ := f.Type - ptr := f.Type.Kind() == reflect.Ptr - - if ptr { - typ = f.Type.Elem() - } - - if typ.Kind() == reflect.Struct { - // When the embedded fields is inlined the fields can be looked - // up by offset from the address of the wrapping object, so we - // simply add the embedded struct fields to the list of fields - // of the current struct type. - subtype := constructStructType(typ, seen, canAddr) - - for j := range subtype.fields { - embedded = append(embedded, embeddedField{ - index: i<<32 | j, - offset: offset + f.Offset, - pointer: ptr, - unexported: unexported, - subtype: subtype, - subfield: &subtype.fields[j], - }) - } - - continue - } - - if unexported { // ignore unexported non-struct types - continue - } - } - - codec := constructCodec(f.Type, seen, canAddr) - - if stringify { - // https://golang.org/pkg/encoding/json/#Marshal - // - // The "string" option signals that a field is stored as JSON inside - // a JSON-encoded string. It applies only to fields of string, - // floating point, integer, or boolean types. This extra level of - // encoding is sometimes used when communicating with JavaScript - // programs: - typ := f.Type - - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - switch typ.Kind() { - case reflect.Int, - reflect.Int8, - reflect.Int16, - reflect.Int32, - reflect.Int64, - reflect.Uint, - reflect.Uintptr, - reflect.Uint8, - reflect.Uint16, - reflect.Uint32, - reflect.Uint64: - codec.encode = constructStringEncodeFunc(codec.encode) - codec.decode = constructStringToIntDecodeFunc(typ, codec.decode) - case reflect.Bool, - reflect.Float32, - reflect.Float64, - reflect.String: - codec.encode = constructStringEncodeFunc(codec.encode) - codec.decode = constructStringDecodeFunc(codec.decode) - } - } - - fields = append(fields, structField{ - codec: codec, - offset: offset + f.Offset, - empty: emptyFuncOf(f.Type), - tag: tag, - omitempty: omitempty, - name: name, - index: i << 32, - typ: f.Type, - zero: reflect.Zero(f.Type), - }) - - names[name] = struct{}{} - } - - // Only unambiguous embedded fields must be serialized. - ambiguousNames := make(map[string]int) - ambiguousTags := make(map[string]int) - - // Embedded types can never override a field that was already present at - // the top-level. - for name := range names { - ambiguousNames[name]++ - ambiguousTags[name]++ - } - - for _, embfield := range embedded { - ambiguousNames[embfield.subfield.name]++ - if embfield.subfield.tag { - ambiguousTags[embfield.subfield.name]++ - } - } - - for _, embfield := range embedded { - subfield := *embfield.subfield - - if ambiguousNames[subfield.name] > 1 && !(subfield.tag && ambiguousTags[subfield.name] == 1) { - continue // ambiguous embedded field - } - - if embfield.pointer { - subfield.codec = constructEmbeddedStructPointerCodec(embfield.subtype.typ, embfield.unexported, subfield.offset, subfield.codec) - subfield.offset = embfield.offset - } else { - subfield.offset += embfield.offset - } - - // To prevent dominant flags more than one level below the embedded one. - subfield.tag = false - - // To ensure the order of the fields in the output is the same is in the - // struct type. - subfield.index = embfield.index - - fields = append(fields, subfield) - } - - for i := range fields { - name := fields[i].name - fields[i].json = encodeKeyFragment(name, 0) - fields[i].html = encodeKeyFragment(name, EscapeHTML) - } - - sort.Slice(fields, func(i, j int) bool { return fields[i].index < fields[j].index }) - return fields -} - -func encodeKeyFragment(s string, flags AppendFlags) string { - b := make([]byte, 1, len(s)+4) - b[0] = ',' - e := encoder{flags: flags} - b, _ = e.encodeString(b, unsafe.Pointer(&s)) - b = append(b, ':') - return *(*string)(unsafe.Pointer(&b)) -} - -func constructPointerCodec(t reflect.Type, seen map[reflect.Type]*structType) codec { - e := t.Elem() - c := constructCodec(e, seen, true) - return codec{ - encode: constructPointerEncodeFunc(e, c.encode), - decode: constructPointerDecodeFunc(e, c.decode), - } -} - -func constructPointerEncodeFunc(t reflect.Type, encode encodeFunc) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodePointer(b, p, t, encode) - } -} - -func constructPointerDecodeFunc(t reflect.Type, decode decodeFunc) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodePointer(b, p, t, decode) - } -} - -func constructInterfaceCodec(t reflect.Type) codec { - return codec{ - encode: constructMaybeEmptyInterfaceEncoderFunc(t), - decode: constructMaybeEmptyInterfaceDecoderFunc(t), - } -} - -func constructMaybeEmptyInterfaceEncoderFunc(t reflect.Type) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeMaybeEmptyInterface(b, p, t) - } -} - -func constructMaybeEmptyInterfaceDecoderFunc(t reflect.Type) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeMaybeEmptyInterface(b, p, t) - } -} - -func constructUnsupportedTypeCodec(t reflect.Type) codec { - return codec{ - encode: constructUnsupportedTypeEncodeFunc(t), - decode: constructUnsupportedTypeDecodeFunc(t), - } -} - -func constructUnsupportedTypeEncodeFunc(t reflect.Type) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeUnsupportedTypeError(b, p, t) - } -} - -func constructUnsupportedTypeDecodeFunc(t reflect.Type) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeUnmarshalTypeError(b, p, t) - } -} - -func constructJSONMarshalerEncodeFunc(t reflect.Type, pointer bool) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeJSONMarshaler(b, p, t, pointer) - } -} - -func constructJSONUnmarshalerDecodeFunc(t reflect.Type, pointer bool) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeJSONUnmarshaler(b, p, t, pointer) - } -} - -func constructTextMarshalerEncodeFunc(t reflect.Type, pointer bool) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeTextMarshaler(b, p, t, pointer) - } -} - -func constructTextUnmarshalerDecodeFunc(t reflect.Type, pointer bool) decodeFunc { - return func(d decoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return d.decodeTextUnmarshaler(b, p, t, pointer) - } -} - -func constructInlineValueEncodeFunc(encode encodeFunc) encodeFunc { - return func(e encoder, b []byte, p unsafe.Pointer) ([]byte, error) { - return encode(e, b, noescape(unsafe.Pointer(&p))) - } -} - -// noescape hides a pointer from escape analysis. noescape is -// the identity function but escape analysis doesn't think the -// output depends on the input. noescape is inlined and currently -// compiles down to zero instructions. -// USE CAREFULLY! -// This was copied from the runtime; see issues 23382 and 7921. -//go:nosplit -func noescape(p unsafe.Pointer) unsafe.Pointer { - x := uintptr(p) - return unsafe.Pointer(x ^ 0) -} - -func alignedSize(t reflect.Type) uintptr { - a := t.Align() - s := t.Size() - return align(uintptr(a), uintptr(s)) -} - -func align(align, size uintptr) uintptr { - if align != 0 && (size%align) != 0 { - size = ((size / align) + 1) * align - } - return size -} - -func inlined(t reflect.Type) bool { - switch t.Kind() { - case reflect.Ptr: - return true - case reflect.Map: - return true - case reflect.Struct: - return t.NumField() == 1 && inlined(t.Field(0).Type) - default: - return false - } -} - -func isValidTag(s string) bool { - if s == "" { - return false - } - for _, c := range s { - switch { - case strings.ContainsRune("!#$%&()*+-./:;<=>?@[]^_{|}~ ", c): - // Backslash and quote chars are reserved, but - // otherwise any punctuation chars are allowed - // in a tag name. - default: - if !unicode.IsLetter(c) && !unicode.IsDigit(c) { - return false - } - } - } - return true -} - -func emptyFuncOf(t reflect.Type) emptyFunc { - switch t { - case bytesType, rawMessageType: - return func(p unsafe.Pointer) bool { return (*slice)(p).len == 0 } - } - - switch t.Kind() { - case reflect.Array: - if t.Len() == 0 { - return func(unsafe.Pointer) bool { return true } - } - - case reflect.Map: - return func(p unsafe.Pointer) bool { return reflect.NewAt(t, p).Elem().Len() == 0 } - - case reflect.Slice: - return func(p unsafe.Pointer) bool { return (*slice)(p).len == 0 } - - case reflect.String: - return func(p unsafe.Pointer) bool { return len(*(*string)(p)) == 0 } - - case reflect.Bool: - return func(p unsafe.Pointer) bool { return !*(*bool)(p) } - - case reflect.Int, reflect.Uint: - return func(p unsafe.Pointer) bool { return *(*uint)(p) == 0 } - - case reflect.Uintptr: - return func(p unsafe.Pointer) bool { return *(*uintptr)(p) == 0 } - - case reflect.Int8, reflect.Uint8: - return func(p unsafe.Pointer) bool { return *(*uint8)(p) == 0 } - - case reflect.Int16, reflect.Uint16: - return func(p unsafe.Pointer) bool { return *(*uint16)(p) == 0 } - - case reflect.Int32, reflect.Uint32: - return func(p unsafe.Pointer) bool { return *(*uint32)(p) == 0 } - - case reflect.Int64, reflect.Uint64: - return func(p unsafe.Pointer) bool { return *(*uint64)(p) == 0 } - - case reflect.Float32: - return func(p unsafe.Pointer) bool { return *(*float32)(p) == 0 } - - case reflect.Float64: - return func(p unsafe.Pointer) bool { return *(*float64)(p) == 0 } - - case reflect.Ptr: - return func(p unsafe.Pointer) bool { return *(*unsafe.Pointer)(p) == nil } - - case reflect.Interface: - return func(p unsafe.Pointer) bool { return (*iface)(p).ptr == nil } - } - - return func(unsafe.Pointer) bool { return false } -} - -type iface struct { - typ unsafe.Pointer - ptr unsafe.Pointer -} - -type slice struct { - data unsafe.Pointer - len int - cap int -} - -type structType struct { - fields []structField - fieldsIndex map[string]*structField - ficaseIndex map[string]*structField - keyset []byte - typ reflect.Type - inlined bool -} - -type structField struct { - codec codec - offset uintptr - empty emptyFunc - tag bool - omitempty bool - json string - html string - name string - typ reflect.Type - zero reflect.Value - index int -} - -func unmarshalTypeError(b []byte, t reflect.Type) error { - return &UnmarshalTypeError{Value: strconv.Quote(prefix(b)), Type: t} -} - -func unmarshalOverflow(b []byte, t reflect.Type) error { - return &UnmarshalTypeError{Value: "number " + prefix(b) + " overflows", Type: t} -} - -func unexpectedEOF(b []byte) error { - return syntaxError(b, "unexpected end of JSON input") -} - -var syntaxErrorMsgOffset = ^uintptr(0) - -func init() { - t := reflect.TypeOf(SyntaxError{}) - for i, n := 0, t.NumField(); i < n; i++ { - if f := t.Field(i); f.Type.Kind() == reflect.String { - syntaxErrorMsgOffset = f.Offset - } - } -} - -func syntaxError(b []byte, msg string, args ...interface{}) error { - e := new(SyntaxError) - i := syntaxErrorMsgOffset - if i != ^uintptr(0) { - s := "json: " + fmt.Sprintf(msg, args...) + ": " + prefix(b) - p := unsafe.Pointer(e) - // Hack to set the unexported `msg` field. - *(*string)(unsafe.Pointer(uintptr(p) + i)) = s - } - return e -} - -func objectKeyError(b []byte, err error) ([]byte, error) { - if len(b) == 0 { - return nil, unexpectedEOF(b) - } - switch err.(type) { - case *UnmarshalTypeError: - err = syntaxError(b, "invalid character '%c' looking for beginning of object key", b[0]) - } - return b, err -} - -func prefix(b []byte) string { - if len(b) < 32 { - return string(b) - } - return string(b[:32]) + "..." -} - -func intStringsAreSorted(i0, i1 int64) bool { - var b0, b1 [32]byte - return string(strconv.AppendInt(b0[:0], i0, 10)) < string(strconv.AppendInt(b1[:0], i1, 10)) -} - -func uintStringsAreSorted(u0, u1 uint64) bool { - var b0, b1 [32]byte - return string(strconv.AppendUint(b0[:0], u0, 10)) < string(strconv.AppendUint(b1[:0], u1, 10)) -} - -func stringToBytes(s string) []byte { - return *(*[]byte)(unsafe.Pointer(&sliceHeader{ - Data: *(*unsafe.Pointer)(unsafe.Pointer(&s)), - Len: len(s), - Cap: len(s), - })) -} - -type sliceHeader struct { - Data unsafe.Pointer - Len int - Cap int -} - -var ( - nullType = reflect.TypeOf(nil) - boolType = reflect.TypeOf(false) - - intType = reflect.TypeOf(int(0)) - int8Type = reflect.TypeOf(int8(0)) - int16Type = reflect.TypeOf(int16(0)) - int32Type = reflect.TypeOf(int32(0)) - int64Type = reflect.TypeOf(int64(0)) - - uintType = reflect.TypeOf(uint(0)) - uint8Type = reflect.TypeOf(uint8(0)) - uint16Type = reflect.TypeOf(uint16(0)) - uint32Type = reflect.TypeOf(uint32(0)) - uint64Type = reflect.TypeOf(uint64(0)) - uintptrType = reflect.TypeOf(uintptr(0)) - - float32Type = reflect.TypeOf(float32(0)) - float64Type = reflect.TypeOf(float64(0)) - - numberType = reflect.TypeOf(json.Number("")) - stringType = reflect.TypeOf("") - stringsType = reflect.TypeOf([]string(nil)) - bytesType = reflect.TypeOf(([]byte)(nil)) - durationType = reflect.TypeOf(time.Duration(0)) - timeType = reflect.TypeOf(time.Time{}) - rawMessageType = reflect.TypeOf(RawMessage(nil)) - - numberPtrType = reflect.PtrTo(numberType) - durationPtrType = reflect.PtrTo(durationType) - timePtrType = reflect.PtrTo(timeType) - rawMessagePtrType = reflect.PtrTo(rawMessageType) - - sliceInterfaceType = reflect.TypeOf(([]interface{})(nil)) - sliceStringType = reflect.TypeOf(([]interface{})(nil)) - mapStringInterfaceType = reflect.TypeOf((map[string]interface{})(nil)) - mapStringRawMessageType = reflect.TypeOf((map[string]RawMessage)(nil)) - mapStringStringType = reflect.TypeOf((map[string]string)(nil)) - mapStringStringSliceType = reflect.TypeOf((map[string][]string)(nil)) - mapStringBoolType = reflect.TypeOf((map[string]bool)(nil)) - - interfaceType = reflect.TypeOf((*interface{})(nil)).Elem() - jsonMarshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() - jsonUnmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem() - textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem() - textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() -) - -// ============================================================================= -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// appendDuration appends a human-readable representation of d to b. -// -// The function copies the implementation of time.Duration.String but prevents -// Go from making a dynamic memory allocation on the returned value. -func appendDuration(b []byte, d time.Duration) []byte { - // Largest time is 2540400h10m10.000000000s - var buf [32]byte - w := len(buf) - - u := uint64(d) - neg := d < 0 - if neg { - u = -u - } - - if u < uint64(time.Second) { - // Special case: if duration is smaller than a second, - // use smaller units, like 1.2ms - var prec int - w-- - buf[w] = 's' - w-- - switch { - case u == 0: - return append(b, '0', 's') - case u < uint64(time.Microsecond): - // print nanoseconds - prec = 0 - buf[w] = 'n' - case u < uint64(time.Millisecond): - // print microseconds - prec = 3 - // U+00B5 'µ' micro sign == 0xC2 0xB5 - w-- // Need room for two bytes. - copy(buf[w:], "µ") - default: - // print milliseconds - prec = 6 - buf[w] = 'm' - } - w, u = fmtFrac(buf[:w], u, prec) - w = fmtInt(buf[:w], u) - } else { - w-- - buf[w] = 's' - - w, u = fmtFrac(buf[:w], u, 9) - - // u is now integer seconds - w = fmtInt(buf[:w], u%60) - u /= 60 - - // u is now integer minutes - if u > 0 { - w-- - buf[w] = 'm' - w = fmtInt(buf[:w], u%60) - u /= 60 - - // u is now integer hours - // Stop at hours because days can be different lengths. - if u > 0 { - w-- - buf[w] = 'h' - w = fmtInt(buf[:w], u) - } - } - } - - if neg { - w-- - buf[w] = '-' - } - - return append(b, buf[w:]...) -} - -// fmtFrac formats the fraction of v/10**prec (e.g., ".12345") into the -// tail of buf, omitting trailing zeros. it omits the decimal -// point too when the fraction is 0. It returns the index where the -// output bytes begin and the value v/10**prec. -func fmtFrac(buf []byte, v uint64, prec int) (nw int, nv uint64) { - // Omit trailing zeros up to and including decimal point. - w := len(buf) - print := false - for i := 0; i < prec; i++ { - digit := v % 10 - print = print || digit != 0 - if print { - w-- - buf[w] = byte(digit) + '0' - } - v /= 10 - } - if print { - w-- - buf[w] = '.' - } - return w, v -} - -// fmtInt formats v into the tail of buf. -// It returns the index where the output begins. -func fmtInt(buf []byte, v uint64) int { - w := len(buf) - if v == 0 { - w-- - buf[w] = '0' - } else { - for v > 0 { - w-- - buf[w] = byte(v%10) + '0' - v /= 10 - } - } - return w -} - -// ============================================================================= diff --git a/vendor/github.com/segmentio/encoding/json/decode.go b/vendor/github.com/segmentio/encoding/json/decode.go deleted file mode 100644 index b1723c2..0000000 --- a/vendor/github.com/segmentio/encoding/json/decode.go +++ /dev/null @@ -1,1462 +0,0 @@ -package json - -import ( - "bytes" - "encoding" - "encoding/json" - "fmt" - "math" - "reflect" - "strconv" - "time" - "unsafe" - - "github.com/segmentio/asm/base64" - "github.com/segmentio/asm/keyset" - "github.com/segmentio/encoding/iso8601" -) - -func (d decoder) decodeNull(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - return d.inputError(b, nullType) -} - -func (d decoder) decodeBool(b []byte, p unsafe.Pointer) ([]byte, error) { - switch { - case hasTruePrefix(b): - *(*bool)(p) = true - return b[4:], nil - - case hasFalsePrefix(b): - *(*bool)(p) = false - return b[5:], nil - - case hasNullPrefix(b): - return b[4:], nil - - default: - return d.inputError(b, boolType) - } -} - -func (d decoder) decodeInt(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseInt(b, intType) - if err != nil { - return r, err - } - - *(*int)(p) = int(v) - return r, nil -} - -func (d decoder) decodeInt8(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseInt(b, int8Type) - if err != nil { - return r, err - } - - if v < math.MinInt8 || v > math.MaxInt8 { - return r, unmarshalOverflow(b[:len(b)-len(r)], int8Type) - } - - *(*int8)(p) = int8(v) - return r, nil -} - -func (d decoder) decodeInt16(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseInt(b, int16Type) - if err != nil { - return r, err - } - - if v < math.MinInt16 || v > math.MaxInt16 { - return r, unmarshalOverflow(b[:len(b)-len(r)], int16Type) - } - - *(*int16)(p) = int16(v) - return r, nil -} - -func (d decoder) decodeInt32(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseInt(b, int32Type) - if err != nil { - return r, err - } - - if v < math.MinInt32 || v > math.MaxInt32 { - return r, unmarshalOverflow(b[:len(b)-len(r)], int32Type) - } - - *(*int32)(p) = int32(v) - return r, nil -} - -func (d decoder) decodeInt64(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseInt(b, int64Type) - if err != nil { - return r, err - } - - *(*int64)(p) = v - return r, nil -} - -func (d decoder) decodeUint(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseUint(b, uintType) - if err != nil { - return r, err - } - - *(*uint)(p) = uint(v) - return r, nil -} - -func (d decoder) decodeUintptr(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseUint(b, uintptrType) - if err != nil { - return r, err - } - - *(*uintptr)(p) = uintptr(v) - return r, nil -} - -func (d decoder) decodeUint8(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseUint(b, uint8Type) - if err != nil { - return r, err - } - - if v > math.MaxUint8 { - return r, unmarshalOverflow(b[:len(b)-len(r)], uint8Type) - } - - *(*uint8)(p) = uint8(v) - return r, nil -} - -func (d decoder) decodeUint16(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseUint(b, uint16Type) - if err != nil { - return r, err - } - - if v > math.MaxUint16 { - return r, unmarshalOverflow(b[:len(b)-len(r)], uint16Type) - } - - *(*uint16)(p) = uint16(v) - return r, nil -} - -func (d decoder) decodeUint32(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseUint(b, uint32Type) - if err != nil { - return r, err - } - - if v > math.MaxUint32 { - return r, unmarshalOverflow(b[:len(b)-len(r)], uint32Type) - } - - *(*uint32)(p) = uint32(v) - return r, nil -} - -func (d decoder) decodeUint64(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, err := d.parseUint(b, uint64Type) - if err != nil { - return r, err - } - - *(*uint64)(p) = v - return r, nil -} - -func (d decoder) decodeFloat32(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, _, err := d.parseNumber(b) - if err != nil { - return d.inputError(b, float32Type) - } - - f, err := strconv.ParseFloat(*(*string)(unsafe.Pointer(&v)), 32) - if err != nil { - return d.inputError(b, float32Type) - } - - *(*float32)(p) = float32(f) - return r, nil -} - -func (d decoder) decodeFloat64(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, _, err := d.parseNumber(b) - if err != nil { - return d.inputError(b, float64Type) - } - - f, err := strconv.ParseFloat(*(*string)(unsafe.Pointer(&v)), 64) - if err != nil { - return d.inputError(b, float64Type) - } - - *(*float64)(p) = f - return r, nil -} - -func (d decoder) decodeNumber(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - v, r, _, err := d.parseNumber(b) - if err != nil { - return d.inputError(b, numberType) - } - - if (d.flags & DontCopyNumber) != 0 { - *(*Number)(p) = *(*Number)(unsafe.Pointer(&v)) - } else { - *(*Number)(p) = Number(v) - } - - return r, nil -} - -func (d decoder) decodeString(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - s, r, new, err := d.parseStringUnquote(b, nil) - if err != nil { - if len(b) == 0 || b[0] != '"' { - return d.inputError(b, stringType) - } - return r, err - } - - if new || (d.flags&DontCopyString) != 0 { - *(*string)(p) = *(*string)(unsafe.Pointer(&s)) - } else { - *(*string)(p) = string(s) - } - - return r, nil -} - -func (d decoder) decodeFromString(b []byte, p unsafe.Pointer, decode decodeFunc) ([]byte, error) { - if hasNullPrefix(b) { - return decode(d, b, p) - } - - v, b, _, err := d.parseStringUnquote(b, nil) - if err != nil { - return d.inputError(v, stringType) - } - - if v, err = decode(d, v, p); err != nil { - return b, err - } - - if v = skipSpaces(v); len(v) != 0 { - return b, syntaxError(v, "unexpected trailing tokens after string value") - } - - return b, nil -} - -func (d decoder) decodeFromStringToInt(b []byte, p unsafe.Pointer, t reflect.Type, decode decodeFunc) ([]byte, error) { - if hasNullPrefix(b) { - return decode(d, b, p) - } - - if len(b) > 0 && b[0] != '"' { - v, r, k, err := d.parseNumber(b) - if err == nil { - // The encoding/json package will return a *json.UnmarshalTypeError if - // the input was a floating point number representation, even tho a - // string is expected here. - if k == Float { - _, err := strconv.ParseFloat(*(*string)(unsafe.Pointer(&v)), 64) - if err != nil { - return r, unmarshalTypeError(v, t) - } - } - } - return r, fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into int") - } - - if len(b) > 1 && b[0] == '"' && b[1] == '"' { - return b, fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal \"\" into int") - } - - v, b, _, err := d.parseStringUnquote(b, nil) - if err != nil { - return d.inputError(v, t) - } - - if hasLeadingZeroes(v) { - // In this context the encoding/json package accepts leading zeroes because - // it is not constrained by the JSON syntax, remove them so the parsing - // functions don't return syntax errors. - u := make([]byte, 0, len(v)) - i := 0 - - if i < len(v) && v[i] == '-' || v[i] == '+' { - u = append(u, v[i]) - i++ - } - - for (i+1) < len(v) && v[i] == '0' && '0' <= v[i+1] && v[i+1] <= '9' { - i++ - } - - v = append(u, v[i:]...) - } - - if r, err := decode(d, v, p); err != nil { - if _, isSyntaxError := err.(*SyntaxError); isSyntaxError { - if hasPrefix(v, "-") { - // The standard library interprets sequences of '-' characters - // as numbers but still returns type errors in this case... - return b, unmarshalTypeError(v, t) - } - return b, fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into int", prefix(v)) - } - // When the input value was a valid number representation we retain the - // error returned by the decoder. - if _, _, _, err := d.parseNumber(v); err != nil { - // When the input value valid JSON we mirror the behavior of the - // encoding/json package and return a generic error. - if _, _, _, err := d.parseValue(v); err == nil { - return b, fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into int", prefix(v)) - } - } - return b, err - } else if len(r) != 0 { - return r, unmarshalTypeError(v, t) - } - - return b, nil -} - -func (d decoder) decodeBytes(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - *(*[]byte)(p) = nil - return b[4:], nil - } - - if len(b) < 2 { - return d.inputError(b, bytesType) - } - - if b[0] != '"' { - // Go 1.7- behavior: bytes slices may be decoded from array of integers. - if len(b) > 0 && b[0] == '[' { - return d.decodeSlice(b, p, 1, bytesType, decoder.decodeUint8) - } - return d.inputError(b, bytesType) - } - - // The input string contains escaped sequences, we need to parse it before - // decoding it to match the encoding/json package behvaior. - src, r, _, err := d.parseStringUnquote(b, nil) - if err != nil { - return d.inputError(b, bytesType) - } - - dst := make([]byte, base64.StdEncoding.DecodedLen(len(src))) - - n, err := base64.StdEncoding.Decode(dst, src) - if err != nil { - return r, err - } - - *(*[]byte)(p) = dst[:n] - return r, nil -} - -func (d decoder) decodeDuration(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - // in order to inter-operate with the stdlib, we must be able to interpret - // durations passed as integer values. there's some discussion about being - // flexible on how durations are formatted, but for the time being, it's - // been punted to go2 at the earliest: https://github.com/golang/go/issues/4712 - if len(b) > 0 && b[0] != '"' { - v, r, err := d.parseInt(b, durationType) - if err != nil { - return d.inputError(b, int32Type) - } - - if v < math.MinInt64 || v > math.MaxInt64 { - return r, unmarshalOverflow(b[:len(b)-len(r)], int32Type) - } - - *(*time.Duration)(p) = time.Duration(v) - return r, nil - } - - if len(b) < 2 || b[0] != '"' { - return d.inputError(b, durationType) - } - - i := bytes.IndexByte(b[1:], '"') + 1 - if i <= 0 { - return d.inputError(b, durationType) - } - - s := b[1:i] // trim quotes - - v, err := time.ParseDuration(*(*string)(unsafe.Pointer(&s))) - if err != nil { - return d.inputError(b, durationType) - } - - *(*time.Duration)(p) = v - return b[i+1:], nil -} - -func (d decoder) decodeTime(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - if len(b) < 2 || b[0] != '"' { - return d.inputError(b, timeType) - } - - i := bytes.IndexByte(b[1:], '"') + 1 - if i <= 0 { - return d.inputError(b, timeType) - } - - s := b[1:i] // trim quotes - - v, err := iso8601.Parse(*(*string)(unsafe.Pointer(&s))) - if err != nil { - return d.inputError(b, timeType) - } - - *(*time.Time)(p) = v - return b[i+1:], nil -} - -func (d decoder) decodeArray(b []byte, p unsafe.Pointer, n int, size uintptr, t reflect.Type, decode decodeFunc) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - if len(b) < 2 || b[0] != '[' { - return d.inputError(b, t) - } - b = b[1:] - - var err error - for i := 0; i < n; i++ { - b = skipSpaces(b) - - if i != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected EOF after array element") - } - switch b[0] { - case ',': - b = skipSpaces(b[1:]) - case ']': - return b[1:], nil - default: - return b, syntaxError(b, "expected ',' after array element but found '%c'", b[0]) - } - } - - b, err = decode(d, b, unsafe.Pointer(uintptr(p)+(uintptr(i)*size))) - if err != nil { - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = t.String() + e.Struct - e.Field = d.prependField(strconv.Itoa(i), e.Field) - } - return b, err - } - } - - // The encoding/json package ignores extra elements found when decoding into - // array types (which have a fixed size). - for { - b = skipSpaces(b) - - if len(b) == 0 { - return b, syntaxError(b, "missing closing ']' in array value") - } - - switch b[0] { - case ',': - b = skipSpaces(b[1:]) - case ']': - return b[1:], nil - } - - _, b, _, err = d.parseValue(b) - if err != nil { - return b, err - } - } -} - -var ( - // This is a placeholder used to consturct non-nil empty slices. - empty struct{} -) - -func (d decoder) decodeSlice(b []byte, p unsafe.Pointer, size uintptr, t reflect.Type, decode decodeFunc) ([]byte, error) { - if hasNullPrefix(b) { - *(*slice)(p) = slice{} - return b[4:], nil - } - - if len(b) < 2 { - return d.inputError(b, t) - } - - if b[0] != '[' { - // Go 1.7- behavior: fallback to decoding as a []byte if the element - // type is byte; allow conversions from JSON strings even tho the - // underlying type implemented unmarshaler interfaces. - if t.Elem().Kind() == reflect.Uint8 { - return d.decodeBytes(b, p) - } - return d.inputError(b, t) - } - - input := b - b = b[1:] - - s := (*slice)(p) - s.len = 0 - - var err error - for { - b = skipSpaces(b) - - if len(b) != 0 && b[0] == ']' { - if s.data == nil { - s.data = unsafe.Pointer(&empty) - } - return b[1:], nil - } - - if s.len != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected EOF after array element") - } - if b[0] != ',' { - return b, syntaxError(b, "expected ',' after array element but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - } - - if s.len == s.cap { - c := s.cap - - if c == 0 { - c = 10 - } else { - c *= 2 - } - - *s = extendSlice(t, s, c) - } - - b, err = decode(d, b, unsafe.Pointer(uintptr(s.data)+(uintptr(s.len)*size))) - if err != nil { - if _, r, _, err := d.parseValue(input); err != nil { - return r, err - } else { - b = r - } - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = t.String() + e.Struct - e.Field = d.prependField(strconv.Itoa(s.len), e.Field) - } - return b, err - } - - s.len++ - } -} - -func (d decoder) decodeMap(b []byte, p unsafe.Pointer, t, kt, vt reflect.Type, kz, vz reflect.Value, decodeKey, decodeValue decodeFunc) ([]byte, error) { - if hasNullPrefix(b) { - *(*unsafe.Pointer)(p) = nil - return b[4:], nil - } - - if len(b) < 2 || b[0] != '{' { - return d.inputError(b, t) - } - i := 0 - m := reflect.NewAt(t, p).Elem() - - k := reflect.New(kt).Elem() - v := reflect.New(vt).Elem() - - kptr := (*iface)(unsafe.Pointer(&k)).ptr - vptr := (*iface)(unsafe.Pointer(&v)).ptr - input := b - - if m.IsNil() { - m = reflect.MakeMap(t) - } - - var err error - b = b[1:] - for { - k.Set(kz) - v.Set(vz) - b = skipSpaces(b) - - if len(b) != 0 && b[0] == '}' { - *(*unsafe.Pointer)(p) = unsafe.Pointer(m.Pointer()) - return b[1:], nil - } - - if i != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field value") - } - if b[0] != ',' { - return b, syntaxError(b, "expected ',' after object field value but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - } - - if hasNullPrefix(b) { - return b, syntaxError(b, "cannot decode object key string from 'null' value") - } - - if b, err = decodeKey(d, b, kptr); err != nil { - return objectKeyError(b, err) - } - b = skipSpaces(b) - - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field key") - } - if b[0] != ':' { - return b, syntaxError(b, "expected ':' after object field key but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - - if b, err = decodeValue(d, b, vptr); err != nil { - if _, r, _, err := d.parseValue(input); err != nil { - return r, err - } else { - b = r - } - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = "map[" + kt.String() + "]" + vt.String() + "{" + e.Struct + "}" - e.Field = d.prependField(fmt.Sprint(k.Interface()), e.Field) - } - return b, err - } - - m.SetMapIndex(k, v) - i++ - } -} - -func (d decoder) decodeMapStringInterface(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - *(*unsafe.Pointer)(p) = nil - return b[4:], nil - } - - if len(b) < 2 || b[0] != '{' { - return d.inputError(b, mapStringInterfaceType) - } - - i := 0 - m := *(*map[string]interface{})(p) - - if m == nil { - m = make(map[string]interface{}, 64) - } - - var err error - var key string - var val interface{} - var input = b - - b = b[1:] - for { - key = "" - val = nil - - b = skipSpaces(b) - - if len(b) != 0 && b[0] == '}' { - *(*unsafe.Pointer)(p) = *(*unsafe.Pointer)(unsafe.Pointer(&m)) - return b[1:], nil - } - - if i != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field value") - } - if b[0] != ',' { - return b, syntaxError(b, "expected ',' after object field value but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - } - - if hasNullPrefix(b) { - return b, syntaxError(b, "cannot decode object key string from 'null' value") - } - - b, err = d.decodeString(b, unsafe.Pointer(&key)) - if err != nil { - return objectKeyError(b, err) - } - b = skipSpaces(b) - - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field key") - } - if b[0] != ':' { - return b, syntaxError(b, "expected ':' after object field key but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - - b, err = d.decodeInterface(b, unsafe.Pointer(&val)) - if err != nil { - if _, r, _, err := d.parseValue(input); err != nil { - return r, err - } else { - b = r - } - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = mapStringInterfaceType.String() + e.Struct - e.Field = d.prependField(key, e.Field) - } - return b, err - } - - m[key] = val - i++ - } -} - -func (d decoder) decodeMapStringRawMessage(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - *(*unsafe.Pointer)(p) = nil - return b[4:], nil - } - - if len(b) < 2 || b[0] != '{' { - return d.inputError(b, mapStringRawMessageType) - } - - i := 0 - m := *(*map[string]RawMessage)(p) - - if m == nil { - m = make(map[string]RawMessage, 64) - } - - var err error - var key string - var val RawMessage - var input = b - - b = b[1:] - for { - key = "" - val = nil - - b = skipSpaces(b) - - if len(b) != 0 && b[0] == '}' { - *(*unsafe.Pointer)(p) = *(*unsafe.Pointer)(unsafe.Pointer(&m)) - return b[1:], nil - } - - if i != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field value") - } - if b[0] != ',' { - return b, syntaxError(b, "expected ',' after object field value but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - } - - if hasNullPrefix(b) { - return b, syntaxError(b, "cannot decode object key string from 'null' value") - } - - b, err = d.decodeString(b, unsafe.Pointer(&key)) - if err != nil { - return objectKeyError(b, err) - } - b = skipSpaces(b) - - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field key") - } - if b[0] != ':' { - return b, syntaxError(b, "expected ':' after object field key but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - - b, err = d.decodeRawMessage(b, unsafe.Pointer(&val)) - if err != nil { - if _, r, _, err := d.parseValue(input); err != nil { - return r, err - } else { - b = r - } - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = mapStringRawMessageType.String() + e.Struct - e.Field = d.prependField(key, e.Field) - } - return b, err - } - - m[key] = val - i++ - } -} - -func (d decoder) decodeMapStringString(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - *(*unsafe.Pointer)(p) = nil - return b[4:], nil - } - - if len(b) < 2 || b[0] != '{' { - return d.inputError(b, mapStringStringType) - } - - i := 0 - m := *(*map[string]string)(p) - - if m == nil { - m = make(map[string]string, 64) - } - - var err error - var key string - var val string - var input = b - - b = b[1:] - for { - key = "" - val = "" - - b = skipSpaces(b) - - if len(b) != 0 && b[0] == '}' { - *(*unsafe.Pointer)(p) = *(*unsafe.Pointer)(unsafe.Pointer(&m)) - return b[1:], nil - } - - if i != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field value") - } - if b[0] != ',' { - return b, syntaxError(b, "expected ',' after object field value but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - } - - if hasNullPrefix(b) { - return b, syntaxError(b, "cannot decode object key string from 'null' value") - } - - b, err = d.decodeString(b, unsafe.Pointer(&key)) - if err != nil { - return objectKeyError(b, err) - } - b = skipSpaces(b) - - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field key") - } - if b[0] != ':' { - return b, syntaxError(b, "expected ':' after object field key but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - - b, err = d.decodeString(b, unsafe.Pointer(&val)) - if err != nil { - if _, r, _, err := d.parseValue(input); err != nil { - return r, err - } else { - b = r - } - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = mapStringStringType.String() + e.Struct - e.Field = d.prependField(key, e.Field) - } - return b, err - } - - m[key] = val - i++ - } -} - -func (d decoder) decodeMapStringStringSlice(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - *(*unsafe.Pointer)(p) = nil - return b[4:], nil - } - - if len(b) < 2 || b[0] != '{' { - return d.inputError(b, mapStringStringSliceType) - } - - i := 0 - m := *(*map[string][]string)(p) - - if m == nil { - m = make(map[string][]string, 64) - } - - var err error - var key string - var buf []string - var input = b - var stringSize = unsafe.Sizeof("") - - b = b[1:] - for { - key = "" - buf = buf[:0] - - b = skipSpaces(b) - - if len(b) != 0 && b[0] == '}' { - *(*unsafe.Pointer)(p) = *(*unsafe.Pointer)(unsafe.Pointer(&m)) - return b[1:], nil - } - - if i != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field value") - } - if b[0] != ',' { - return b, syntaxError(b, "expected ',' after object field value but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - } - - if hasNullPrefix(b) { - return b, syntaxError(b, "cannot decode object key string from 'null' value") - } - - b, err = d.decodeString(b, unsafe.Pointer(&key)) - if err != nil { - return objectKeyError(b, err) - } - b = skipSpaces(b) - - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field key") - } - if b[0] != ':' { - return b, syntaxError(b, "expected ':' after object field key but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - - b, err = d.decodeSlice(b, unsafe.Pointer(&buf), stringSize, sliceStringType, decoder.decodeString) - if err != nil { - if _, r, _, err := d.parseValue(input); err != nil { - return r, err - } else { - b = r - } - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = mapStringStringType.String() + e.Struct - e.Field = d.prependField(key, e.Field) - } - return b, err - } - - val := make([]string, len(buf)) - copy(val, buf) - - m[key] = val - i++ - } -} - -func (d decoder) decodeMapStringBool(b []byte, p unsafe.Pointer) ([]byte, error) { - if hasNullPrefix(b) { - *(*unsafe.Pointer)(p) = nil - return b[4:], nil - } - - if len(b) < 2 || b[0] != '{' { - return d.inputError(b, mapStringBoolType) - } - - i := 0 - m := *(*map[string]bool)(p) - - if m == nil { - m = make(map[string]bool, 64) - } - - var err error - var key string - var val bool - var input = b - - b = b[1:] - for { - key = "" - val = false - - b = skipSpaces(b) - - if len(b) != 0 && b[0] == '}' { - *(*unsafe.Pointer)(p) = *(*unsafe.Pointer)(unsafe.Pointer(&m)) - return b[1:], nil - } - - if i != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field value") - } - if b[0] != ',' { - return b, syntaxError(b, "expected ',' after object field value but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - } - - if hasNullPrefix(b) { - return b, syntaxError(b, "cannot decode object key string from 'null' value") - } - - b, err = d.decodeString(b, unsafe.Pointer(&key)) - if err != nil { - return objectKeyError(b, err) - } - b = skipSpaces(b) - - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field key") - } - if b[0] != ':' { - return b, syntaxError(b, "expected ':' after object field key but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - - b, err = d.decodeBool(b, unsafe.Pointer(&val)) - if err != nil { - if _, r, _, err := d.parseValue(input); err != nil { - return r, err - } else { - b = r - } - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = mapStringStringType.String() + e.Struct - e.Field = d.prependField(key, e.Field) - } - return b, err - } - - m[key] = val - i++ - } -} - -func (d decoder) decodeStruct(b []byte, p unsafe.Pointer, st *structType) ([]byte, error) { - if hasNullPrefix(b) { - return b[4:], nil - } - - if len(b) < 2 || b[0] != '{' { - return d.inputError(b, st.typ) - } - - var err error - var k []byte - var i int - - // memory buffer used to convert short field names to lowercase - var buf [64]byte - var key []byte - var input = b - - b = b[1:] - for { - b = skipSpaces(b) - - if len(b) != 0 && b[0] == '}' { - return b[1:], nil - } - - if i != 0 { - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field value") - } - if b[0] != ',' { - return b, syntaxError(b, "expected ',' after object field value but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - } - i++ - - if hasNullPrefix(b) { - return b, syntaxError(b, "cannot decode object key string from 'null' value") - } - - k, b, _, err = d.parseStringUnquote(b, nil) - if err != nil { - return objectKeyError(b, err) - } - b = skipSpaces(b) - - if len(b) == 0 { - return b, syntaxError(b, "unexpected end of JSON input after object field key") - } - if b[0] != ':' { - return b, syntaxError(b, "expected ':' after object field key but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - - var f *structField - if len(st.keyset) != 0 { - if n := keyset.Lookup(st.keyset, k); n < len(st.fields) { - f = &st.fields[n] - } - } else { - f = st.fieldsIndex[string(k)] - } - - if f == nil && (d.flags&DontMatchCaseInsensitiveStructFields) == 0 { - key = appendToLower(buf[:0], k) - f = st.ficaseIndex[string(key)] - } - - if f == nil { - if (d.flags & DisallowUnknownFields) != 0 { - return b, fmt.Errorf("json: unknown field %q", k) - } - if _, b, _, err = d.parseValue(b); err != nil { - return b, err - } - continue - } - - if b, err = f.codec.decode(d, b, unsafe.Pointer(uintptr(p)+f.offset)); err != nil { - if _, r, _, err := d.parseValue(input); err != nil { - return r, err - } else { - b = r - } - if e, ok := err.(*UnmarshalTypeError); ok { - e.Struct = st.typ.String() + e.Struct - e.Field = d.prependField(string(k), e.Field) - } - return b, err - } - } -} - -func (d decoder) decodeEmbeddedStructPointer(b []byte, p unsafe.Pointer, t reflect.Type, unexported bool, offset uintptr, decode decodeFunc) ([]byte, error) { - v := *(*unsafe.Pointer)(p) - - if v == nil { - if unexported { - return nil, fmt.Errorf("json: cannot set embedded pointer to unexported struct: %s", t) - } - v = unsafe.Pointer(reflect.New(t).Pointer()) - *(*unsafe.Pointer)(p) = v - } - - return decode(d, b, unsafe.Pointer(uintptr(v)+offset)) -} - -func (d decoder) decodePointer(b []byte, p unsafe.Pointer, t reflect.Type, decode decodeFunc) ([]byte, error) { - if hasNullPrefix(b) { - pp := *(*unsafe.Pointer)(p) - if pp != nil && t.Kind() == reflect.Ptr { - return decode(d, b, pp) - } - *(*unsafe.Pointer)(p) = nil - return b[4:], nil - } - - v := *(*unsafe.Pointer)(p) - if v == nil { - v = unsafe.Pointer(reflect.New(t).Pointer()) - *(*unsafe.Pointer)(p) = v - } - - return decode(d, b, v) -} - -func (d decoder) decodeInterface(b []byte, p unsafe.Pointer) ([]byte, error) { - val := *(*interface{})(p) - *(*interface{})(p) = nil - - if t := reflect.TypeOf(val); t != nil && t.Kind() == reflect.Ptr { - if v := reflect.ValueOf(val); v.IsNil() || t.Elem().Kind() != reflect.Ptr { - // If the destination is nil the only value that is OK to decode is - // `null`, and the encoding/json package always nils the destination - // interface value in this case. - if hasNullPrefix(b) { - *(*interface{})(p) = nil - return b[4:], nil - } - } - - b, err := Parse(b, val, d.flags) - if err == nil { - *(*interface{})(p) = val - } - return b, err - } - - v, b, k, err := d.parseValue(b) - if err != nil { - return b, err - } - - switch k.Class() { - case Object: - m := make(map[string]interface{}) - v, err = d.decodeMapStringInterface(v, unsafe.Pointer(&m)) - val = m - - case Array: - a := make([]interface{}, 0, 10) - v, err = d.decodeSlice(v, unsafe.Pointer(&a), unsafe.Sizeof(a[0]), sliceInterfaceType, decoder.decodeInterface) - val = a - - case String: - s := "" - v, err = d.decodeString(v, unsafe.Pointer(&s)) - val = s - - case Null: - v, val = nil, nil - - case Bool: - v, val = nil, k == True - - case Num: - if (d.flags & UseNumber) != 0 { - n := Number("") - v, err = d.decodeNumber(v, unsafe.Pointer(&n)) - val = n - } else { - f := 0.0 - v, err = d.decodeFloat64(v, unsafe.Pointer(&f)) - val = f - } - - default: - return b, syntaxError(v, "expected token but found '%c'", v[0]) - } - - if err != nil { - return b, err - } - - if v = skipSpaces(v); len(v) != 0 { - return b, syntaxError(v, "unexpected trailing trailing tokens after json value") - } - - *(*interface{})(p) = val - return b, nil -} - -func (d decoder) decodeMaybeEmptyInterface(b []byte, p unsafe.Pointer, t reflect.Type) ([]byte, error) { - if hasNullPrefix(b) { - *(*interface{})(p) = nil - return b[4:], nil - } - - if x := reflect.NewAt(t, p).Elem(); !x.IsNil() { - if e := x.Elem(); e.Kind() == reflect.Ptr { - return Parse(b, e.Interface(), d.flags) - } - } else if t.NumMethod() == 0 { // empty interface - return Parse(b, (*interface{})(p), d.flags) - } - - return d.decodeUnmarshalTypeError(b, p, t) -} - -func (d decoder) decodeUnmarshalTypeError(b []byte, p unsafe.Pointer, t reflect.Type) ([]byte, error) { - v, b, _, err := d.parseValue(b) - if err != nil { - return b, err - } - return b, &UnmarshalTypeError{ - Value: string(v), - Type: t, - } -} - -func (d decoder) decodeRawMessage(b []byte, p unsafe.Pointer) ([]byte, error) { - v, r, _, err := d.parseValue(b) - if err != nil { - return d.inputError(b, rawMessageType) - } - - if (d.flags & DontCopyRawMessage) == 0 { - v = append(make([]byte, 0, len(v)), v...) - } - - *(*RawMessage)(p) = json.RawMessage(v) - return r, err -} - -func (d decoder) decodeJSONUnmarshaler(b []byte, p unsafe.Pointer, t reflect.Type, pointer bool) ([]byte, error) { - v, b, _, err := d.parseValue(b) - if err != nil { - return b, err - } - - u := reflect.NewAt(t, p) - if !pointer { - u = u.Elem() - t = t.Elem() - } - if u.IsNil() { - u.Set(reflect.New(t)) - } - - return b, u.Interface().(Unmarshaler).UnmarshalJSON(v) -} - -func (d decoder) decodeTextUnmarshaler(b []byte, p unsafe.Pointer, t reflect.Type, pointer bool) ([]byte, error) { - var value string - - v, b, k, err := d.parseValue(b) - if err != nil { - return b, err - } - if len(v) == 0 { - return d.inputError(v, t) - } - - switch k.Class() { - case Null: - return b, err - - case String: - s, _, _, err := d.parseStringUnquote(v, nil) - if err != nil { - return b, err - } - u := reflect.NewAt(t, p) - if !pointer { - u = u.Elem() - t = t.Elem() - } - if u.IsNil() { - u.Set(reflect.New(t)) - } - return b, u.Interface().(encoding.TextUnmarshaler).UnmarshalText(s) - - case Bool: - if k == True { - value = "true" - } else { - value = "false" - } - - case Num: - value = "number" - - case Object: - value = "object" - - case Array: - value = "array" - } - - return b, &UnmarshalTypeError{Value: value, Type: reflect.PtrTo(t)} -} - -func (d decoder) prependField(key, field string) string { - if field != "" { - return key + "." + field - } - return key -} - -func (d decoder) inputError(b []byte, t reflect.Type) ([]byte, error) { - if len(b) == 0 { - return nil, unexpectedEOF(b) - } - _, r, _, err := d.parseValue(b) - if err != nil { - return r, err - } - return skipSpaces(r), unmarshalTypeError(b, t) -} diff --git a/vendor/github.com/segmentio/encoding/json/encode.go b/vendor/github.com/segmentio/encoding/json/encode.go deleted file mode 100644 index acb3b67..0000000 --- a/vendor/github.com/segmentio/encoding/json/encode.go +++ /dev/null @@ -1,990 +0,0 @@ -package json - -import ( - "encoding" - "fmt" - "math" - "reflect" - "sort" - "strconv" - "sync" - "time" - "unicode/utf8" - "unsafe" - - "github.com/segmentio/asm/base64" -) - -const hex = "0123456789abcdef" - -func (e encoder) encodeNull(b []byte, p unsafe.Pointer) ([]byte, error) { - return append(b, "null"...), nil -} - -func (e encoder) encodeBool(b []byte, p unsafe.Pointer) ([]byte, error) { - if *(*bool)(p) { - return append(b, "true"...), nil - } - return append(b, "false"...), nil -} - -func (e encoder) encodeInt(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendInt(b, int64(*(*int)(p))), nil -} - -func (e encoder) encodeInt8(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendInt(b, int64(*(*int8)(p))), nil -} - -func (e encoder) encodeInt16(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendInt(b, int64(*(*int16)(p))), nil -} - -func (e encoder) encodeInt32(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendInt(b, int64(*(*int32)(p))), nil -} - -func (e encoder) encodeInt64(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendInt(b, *(*int64)(p)), nil -} - -func (e encoder) encodeUint(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendUint(b, uint64(*(*uint)(p))), nil -} - -func (e encoder) encodeUintptr(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendUint(b, uint64(*(*uintptr)(p))), nil -} - -func (e encoder) encodeUint8(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendUint(b, uint64(*(*uint8)(p))), nil -} - -func (e encoder) encodeUint16(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendUint(b, uint64(*(*uint16)(p))), nil -} - -func (e encoder) encodeUint32(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendUint(b, uint64(*(*uint32)(p))), nil -} - -func (e encoder) encodeUint64(b []byte, p unsafe.Pointer) ([]byte, error) { - return appendUint(b, *(*uint64)(p)), nil -} - -func (e encoder) encodeFloat32(b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeFloat(b, float64(*(*float32)(p)), 32) -} - -func (e encoder) encodeFloat64(b []byte, p unsafe.Pointer) ([]byte, error) { - return e.encodeFloat(b, *(*float64)(p), 64) -} - -func (e encoder) encodeFloat(b []byte, f float64, bits int) ([]byte, error) { - switch { - case math.IsNaN(f): - return b, &UnsupportedValueError{Value: reflect.ValueOf(f), Str: "NaN"} - case math.IsInf(f, 0): - return b, &UnsupportedValueError{Value: reflect.ValueOf(f), Str: "inf"} - } - - // Convert as if by ES6 number to string conversion. - // This matches most other JSON generators. - // See golang.org/issue/6384 and golang.org/issue/14135. - // Like fmt %g, but the exponent cutoffs are different - // and exponents themselves are not padded to two digits. - abs := math.Abs(f) - fmt := byte('f') - // Note: Must use float32 comparisons for underlying float32 value to get precise cutoffs right. - if abs != 0 { - if bits == 64 && (abs < 1e-6 || abs >= 1e21) || bits == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) { - fmt = 'e' - } - } - - b = strconv.AppendFloat(b, f, fmt, -1, int(bits)) - - if fmt == 'e' { - // clean up e-09 to e-9 - n := len(b) - if n >= 4 && b[n-4] == 'e' && b[n-3] == '-' && b[n-2] == '0' { - b[n-2] = b[n-1] - b = b[:n-1] - } - } - - return b, nil -} - -func (e encoder) encodeNumber(b []byte, p unsafe.Pointer) ([]byte, error) { - n := *(*Number)(p) - if n == "" { - n = "0" - } - - d := decoder{} - _, _, _, err := d.parseNumber(stringToBytes(string(n))) - if err != nil { - return b, err - } - - return append(b, n...), nil -} - -func (e encoder) encodeString(b []byte, p unsafe.Pointer) ([]byte, error) { - s := *(*string)(p) - if len(s) == 0 { - return append(b, `""`...), nil - } - i := 0 - j := 0 - escapeHTML := (e.flags & EscapeHTML) != 0 - - b = append(b, '"') - - if len(s) >= 8 { - if j = escapeIndex(s, escapeHTML); j < 0 { - return append(append(b, s...), '"'), nil - } - } - - for j < len(s) { - c := s[j] - - if c >= 0x20 && c <= 0x7f && c != '\\' && c != '"' && (!escapeHTML || (c != '<' && c != '>' && c != '&')) { - // fast path: most of the time, printable ascii characters are used - j++ - continue - } - - switch c { - case '\\', '"': - b = append(b, s[i:j]...) - b = append(b, '\\', c) - i = j + 1 - j = j + 1 - continue - - case '\n': - b = append(b, s[i:j]...) - b = append(b, '\\', 'n') - i = j + 1 - j = j + 1 - continue - - case '\r': - b = append(b, s[i:j]...) - b = append(b, '\\', 'r') - i = j + 1 - j = j + 1 - continue - - case '\t': - b = append(b, s[i:j]...) - b = append(b, '\\', 't') - i = j + 1 - j = j + 1 - continue - - case '<', '>', '&': - b = append(b, s[i:j]...) - b = append(b, `\u00`...) - b = append(b, hex[c>>4], hex[c&0xF]) - i = j + 1 - j = j + 1 - continue - } - - // This encodes bytes < 0x20 except for \t, \n and \r. - if c < 0x20 { - b = append(b, s[i:j]...) - b = append(b, `\u00`...) - b = append(b, hex[c>>4], hex[c&0xF]) - i = j + 1 - j = j + 1 - continue - } - - r, size := utf8.DecodeRuneInString(s[j:]) - - if r == utf8.RuneError && size == 1 { - b = append(b, s[i:j]...) - b = append(b, `\ufffd`...) - i = j + size - j = j + size - continue - } - - switch r { - case '\u2028', '\u2029': - // U+2028 is LINE SEPARATOR. - // U+2029 is PARAGRAPH SEPARATOR. - // They are both technically valid characters in JSON strings, - // but don't work in JSONP, which has to be evaluated as JavaScript, - // and can lead to security holes there. It is valid JSON to - // escape them, so we do so unconditionally. - // See http://timelessrepo.com/json-isnt-a-javascript-subset for discussion. - b = append(b, s[i:j]...) - b = append(b, `\u202`...) - b = append(b, hex[r&0xF]) - i = j + size - j = j + size - continue - } - - j += size - } - - b = append(b, s[i:]...) - b = append(b, '"') - return b, nil -} - -func (e encoder) encodeToString(b []byte, p unsafe.Pointer, encode encodeFunc) ([]byte, error) { - i := len(b) - - b, err := encode(e, b, p) - if err != nil { - return b, err - } - - j := len(b) - s := b[i:] - - if b, err = e.encodeString(b, unsafe.Pointer(&s)); err != nil { - return b, err - } - - n := copy(b[i:], b[j:]) - return b[:i+n], nil -} - -func (e encoder) encodeBytes(b []byte, p unsafe.Pointer) ([]byte, error) { - v := *(*[]byte)(p) - if v == nil { - return append(b, "null"...), nil - } - - n := base64.StdEncoding.EncodedLen(len(v)) + 2 - - if avail := cap(b) - len(b); avail < n { - newB := make([]byte, cap(b)+(n-avail)) - copy(newB, b) - b = newB[:len(b)] - } - - i := len(b) - j := len(b) + n - - b = b[:j] - b[i] = '"' - base64.StdEncoding.Encode(b[i+1:j-1], v) - b[j-1] = '"' - return b, nil -} - -func (e encoder) encodeDuration(b []byte, p unsafe.Pointer) ([]byte, error) { - b = append(b, '"') - b = appendDuration(b, *(*time.Duration)(p)) - b = append(b, '"') - return b, nil -} - -func (e encoder) encodeTime(b []byte, p unsafe.Pointer) ([]byte, error) { - t := *(*time.Time)(p) - b = append(b, '"') - b = t.AppendFormat(b, time.RFC3339Nano) - b = append(b, '"') - return b, nil -} - -func (e encoder) encodeArray(b []byte, p unsafe.Pointer, n int, size uintptr, t reflect.Type, encode encodeFunc) ([]byte, error) { - var start = len(b) - var err error - b = append(b, '[') - - for i := 0; i < n; i++ { - if i != 0 { - b = append(b, ',') - } - if b, err = encode(e, b, unsafe.Pointer(uintptr(p)+(uintptr(i)*size))); err != nil { - return b[:start], err - } - } - - b = append(b, ']') - return b, nil -} - -func (e encoder) encodeSlice(b []byte, p unsafe.Pointer, size uintptr, t reflect.Type, encode encodeFunc) ([]byte, error) { - s := (*slice)(p) - - if s.data == nil && s.len == 0 && s.cap == 0 { - return append(b, "null"...), nil - } - - return e.encodeArray(b, s.data, s.len, size, t, encode) -} - -func (e encoder) encodeMap(b []byte, p unsafe.Pointer, t reflect.Type, encodeKey, encodeValue encodeFunc, sortKeys sortFunc) ([]byte, error) { - m := reflect.NewAt(t, p).Elem() - if m.IsNil() { - return append(b, "null"...), nil - } - - keys := m.MapKeys() - if sortKeys != nil && (e.flags&SortMapKeys) != 0 { - sortKeys(keys) - } - - var start = len(b) - var err error - b = append(b, '{') - - for i, k := range keys { - v := m.MapIndex(k) - - if i != 0 { - b = append(b, ',') - } - - if b, err = encodeKey(e, b, (*iface)(unsafe.Pointer(&k)).ptr); err != nil { - return b[:start], err - } - - b = append(b, ':') - - if b, err = encodeValue(e, b, (*iface)(unsafe.Pointer(&v)).ptr); err != nil { - return b[:start], err - } - } - - b = append(b, '}') - return b, nil -} - -type element struct { - key string - val interface{} - raw RawMessage -} - -type mapslice struct { - elements []element -} - -func (m *mapslice) Len() int { return len(m.elements) } -func (m *mapslice) Less(i, j int) bool { return m.elements[i].key < m.elements[j].key } -func (m *mapslice) Swap(i, j int) { m.elements[i], m.elements[j] = m.elements[j], m.elements[i] } - -var mapslicePool = sync.Pool{ - New: func() interface{} { return new(mapslice) }, -} - -func (e encoder) encodeMapStringInterface(b []byte, p unsafe.Pointer) ([]byte, error) { - m := *(*map[string]interface{})(p) - if m == nil { - return append(b, "null"...), nil - } - - if (e.flags & SortMapKeys) == 0 { - // Optimized code path when the program does not need the map keys to be - // sorted. - b = append(b, '{') - - if len(m) != 0 { - var err error - var i = 0 - - for k, v := range m { - if i != 0 { - b = append(b, ',') - } - - b, _ = e.encodeString(b, unsafe.Pointer(&k)) - b = append(b, ':') - - b, err = Append(b, v, e.flags) - if err != nil { - return b, err - } - - i++ - } - } - - b = append(b, '}') - return b, nil - } - - s := mapslicePool.Get().(*mapslice) - if cap(s.elements) < len(m) { - s.elements = make([]element, 0, align(10, uintptr(len(m)))) - } - for key, val := range m { - s.elements = append(s.elements, element{key: key, val: val}) - } - sort.Sort(s) - - var start = len(b) - var err error - b = append(b, '{') - - for i, elem := range s.elements { - if i != 0 { - b = append(b, ',') - } - - b, _ = e.encodeString(b, unsafe.Pointer(&elem.key)) - b = append(b, ':') - - b, err = Append(b, elem.val, e.flags) - if err != nil { - break - } - } - - for i := range s.elements { - s.elements[i] = element{} - } - - s.elements = s.elements[:0] - mapslicePool.Put(s) - - if err != nil { - return b[:start], err - } - - b = append(b, '}') - return b, nil -} - -func (e encoder) encodeMapStringRawMessage(b []byte, p unsafe.Pointer) ([]byte, error) { - m := *(*map[string]RawMessage)(p) - if m == nil { - return append(b, "null"...), nil - } - - if (e.flags & SortMapKeys) == 0 { - // Optimized code path when the program does not need the map keys to be - // sorted. - b = append(b, '{') - - if len(m) != 0 { - var err error - var i = 0 - - for k, v := range m { - if i != 0 { - b = append(b, ',') - } - - // encodeString doesn't return errors so we ignore it here - b, _ = e.encodeString(b, unsafe.Pointer(&k)) - b = append(b, ':') - - b, err = e.encodeRawMessage(b, unsafe.Pointer(&v)) - if err != nil { - break - } - - i++ - } - } - - b = append(b, '}') - return b, nil - } - - s := mapslicePool.Get().(*mapslice) - if cap(s.elements) < len(m) { - s.elements = make([]element, 0, align(10, uintptr(len(m)))) - } - for key, raw := range m { - s.elements = append(s.elements, element{key: key, raw: raw}) - } - sort.Sort(s) - - var start = len(b) - var err error - b = append(b, '{') - - for i, elem := range s.elements { - if i != 0 { - b = append(b, ',') - } - - b, _ = e.encodeString(b, unsafe.Pointer(&elem.key)) - b = append(b, ':') - - b, err = e.encodeRawMessage(b, unsafe.Pointer(&elem.raw)) - if err != nil { - break - } - } - - for i := range s.elements { - s.elements[i] = element{} - } - - s.elements = s.elements[:0] - mapslicePool.Put(s) - - if err != nil { - return b[:start], err - } - - b = append(b, '}') - return b, nil -} - -func (e encoder) encodeMapStringString(b []byte, p unsafe.Pointer) ([]byte, error) { - m := *(*map[string]string)(p) - if m == nil { - return append(b, "null"...), nil - } - - if (e.flags & SortMapKeys) == 0 { - // Optimized code path when the program does not need the map keys to be - // sorted. - b = append(b, '{') - - if len(m) != 0 { - var i = 0 - - for k, v := range m { - if i != 0 { - b = append(b, ',') - } - - // encodeString never returns an error so we ignore it here - b, _ = e.encodeString(b, unsafe.Pointer(&k)) - b = append(b, ':') - b, _ = e.encodeString(b, unsafe.Pointer(&v)) - - i++ - } - } - - b = append(b, '}') - return b, nil - } - - s := mapslicePool.Get().(*mapslice) - if cap(s.elements) < len(m) { - s.elements = make([]element, 0, align(10, uintptr(len(m)))) - } - for key, val := range m { - v := val - s.elements = append(s.elements, element{key: key, val: &v}) - } - sort.Sort(s) - - b = append(b, '{') - - for i, elem := range s.elements { - if i != 0 { - b = append(b, ',') - } - - // encodeString never returns an error so we ignore it here - b, _ = e.encodeString(b, unsafe.Pointer(&elem.key)) - b = append(b, ':') - b, _ = e.encodeString(b, unsafe.Pointer(elem.val.(*string))) - } - - for i := range s.elements { - s.elements[i] = element{} - } - - s.elements = s.elements[:0] - mapslicePool.Put(s) - - b = append(b, '}') - return b, nil -} - -func (e encoder) encodeMapStringStringSlice(b []byte, p unsafe.Pointer) ([]byte, error) { - m := *(*map[string][]string)(p) - if m == nil { - return append(b, "null"...), nil - } - - var stringSize = unsafe.Sizeof("") - - if (e.flags & SortMapKeys) == 0 { - // Optimized code path when the program does not need the map keys to be - // sorted. - b = append(b, '{') - - if len(m) != 0 { - var err error - var i = 0 - - for k, v := range m { - if i != 0 { - b = append(b, ',') - } - - b, _ = e.encodeString(b, unsafe.Pointer(&k)) - b = append(b, ':') - - b, err = e.encodeSlice(b, unsafe.Pointer(&v), stringSize, sliceStringType, encoder.encodeString) - if err != nil { - return b, err - } - - i++ - } - } - - b = append(b, '}') - return b, nil - } - - s := mapslicePool.Get().(*mapslice) - if cap(s.elements) < len(m) { - s.elements = make([]element, 0, align(10, uintptr(len(m)))) - } - for key, val := range m { - v := val - s.elements = append(s.elements, element{key: key, val: &v}) - } - sort.Sort(s) - - var start = len(b) - var err error - b = append(b, '{') - - for i, elem := range s.elements { - if i != 0 { - b = append(b, ',') - } - - b, _ = e.encodeString(b, unsafe.Pointer(&elem.key)) - b = append(b, ':') - - b, err = e.encodeSlice(b, unsafe.Pointer(elem.val.(*[]string)), stringSize, sliceStringType, encoder.encodeString) - if err != nil { - break - } - } - - for i := range s.elements { - s.elements[i] = element{} - } - - s.elements = s.elements[:0] - mapslicePool.Put(s) - - if err != nil { - return b[:start], err - } - - b = append(b, '}') - return b, nil -} - -func (e encoder) encodeMapStringBool(b []byte, p unsafe.Pointer) ([]byte, error) { - m := *(*map[string]bool)(p) - if m == nil { - return append(b, "null"...), nil - } - - if (e.flags & SortMapKeys) == 0 { - // Optimized code path when the program does not need the map keys to be - // sorted. - b = append(b, '{') - - if len(m) != 0 { - var i = 0 - - for k, v := range m { - if i != 0 { - b = append(b, ',') - } - - // encodeString never returns an error so we ignore it here - b, _ = e.encodeString(b, unsafe.Pointer(&k)) - if v { - b = append(b, ":true"...) - } else { - b = append(b, ":false"...) - } - - i++ - } - } - - b = append(b, '}') - return b, nil - } - - s := mapslicePool.Get().(*mapslice) - if cap(s.elements) < len(m) { - s.elements = make([]element, 0, align(10, uintptr(len(m)))) - } - for key, val := range m { - s.elements = append(s.elements, element{key: key, val: val}) - } - sort.Sort(s) - - b = append(b, '{') - - for i, elem := range s.elements { - if i != 0 { - b = append(b, ',') - } - - // encodeString never returns an error so we ignore it here - b, _ = e.encodeString(b, unsafe.Pointer(&elem.key)) - if elem.val.(bool) { - b = append(b, ":true"...) - } else { - b = append(b, ":false"...) - } - } - - for i := range s.elements { - s.elements[i] = element{} - } - - s.elements = s.elements[:0] - mapslicePool.Put(s) - - b = append(b, '}') - return b, nil -} - -func (e encoder) encodeStruct(b []byte, p unsafe.Pointer, st *structType) ([]byte, error) { - var start = len(b) - var err error - var k string - var n int - b = append(b, '{') - - escapeHTML := (e.flags & EscapeHTML) != 0 - - for i := range st.fields { - f := &st.fields[i] - v := unsafe.Pointer(uintptr(p) + f.offset) - - if f.omitempty && f.empty(v) { - continue - } - - if escapeHTML { - k = f.html - } else { - k = f.json - } - - lengthBeforeKey := len(b) - - if n != 0 { - b = append(b, k...) - } else { - b = append(b, k[1:]...) - } - - if b, err = f.codec.encode(e, b, v); err != nil { - if err == (rollback{}) { - b = b[:lengthBeforeKey] - continue - } - return b[:start], err - } - - n++ - } - - b = append(b, '}') - return b, nil -} - -type rollback struct{} - -func (rollback) Error() string { return "rollback" } - -func (e encoder) encodeEmbeddedStructPointer(b []byte, p unsafe.Pointer, t reflect.Type, unexported bool, offset uintptr, encode encodeFunc) ([]byte, error) { - p = *(*unsafe.Pointer)(p) - if p == nil { - return b, rollback{} - } - return encode(e, b, unsafe.Pointer(uintptr(p)+offset)) -} - -func (e encoder) encodePointer(b []byte, p unsafe.Pointer, t reflect.Type, encode encodeFunc) ([]byte, error) { - if p = *(*unsafe.Pointer)(p); p != nil { - if e.ptrDepth++; e.ptrDepth >= startDetectingCyclesAfter { - if _, seen := e.ptrSeen[p]; seen { - // TODO: reconstruct the reflect.Value from p + t so we can set - // the erorr's Value field? - return b, &UnsupportedValueError{Str: fmt.Sprintf("encountered a cycle via %s", t)} - } - if e.ptrSeen == nil { - e.ptrSeen = make(map[unsafe.Pointer]struct{}) - } - e.ptrSeen[p] = struct{}{} - defer delete(e.ptrSeen, p) - } - return encode(e, b, p) - } - return e.encodeNull(b, nil) -} - -func (e encoder) encodeInterface(b []byte, p unsafe.Pointer) ([]byte, error) { - return Append(b, *(*interface{})(p), e.flags) -} - -func (e encoder) encodeMaybeEmptyInterface(b []byte, p unsafe.Pointer, t reflect.Type) ([]byte, error) { - return Append(b, reflect.NewAt(t, p).Elem().Interface(), e.flags) -} - -func (e encoder) encodeUnsupportedTypeError(b []byte, p unsafe.Pointer, t reflect.Type) ([]byte, error) { - return b, &UnsupportedTypeError{Type: t} -} - -func (e encoder) encodeRawMessage(b []byte, p unsafe.Pointer) ([]byte, error) { - v := *(*RawMessage)(p) - - if v == nil { - return append(b, "null"...), nil - } - - var s []byte - - if (e.flags & TrustRawMessage) != 0 { - s = v - } else { - var err error - d := decoder{} - s, _, _, err = d.parseValue(v) - if err != nil { - return b, &UnsupportedValueError{Value: reflect.ValueOf(v), Str: err.Error()} - } - } - - if (e.flags & EscapeHTML) != 0 { - return appendCompactEscapeHTML(b, s), nil - } - - return append(b, s...), nil -} - -func (e encoder) encodeJSONMarshaler(b []byte, p unsafe.Pointer, t reflect.Type, pointer bool) ([]byte, error) { - v := reflect.NewAt(t, p) - - if !pointer { - v = v.Elem() - } - - switch v.Kind() { - case reflect.Ptr, reflect.Interface: - if v.IsNil() { - return append(b, "null"...), nil - } - } - - j, err := v.Interface().(Marshaler).MarshalJSON() - if err != nil { - return b, err - } - - d := decoder{} - s, _, _, err := d.parseValue(j) - if err != nil { - return b, &MarshalerError{Type: t, Err: err} - } - - if (e.flags & EscapeHTML) != 0 { - return appendCompactEscapeHTML(b, s), nil - } - - return append(b, s...), nil -} - -func (e encoder) encodeTextMarshaler(b []byte, p unsafe.Pointer, t reflect.Type, pointer bool) ([]byte, error) { - v := reflect.NewAt(t, p) - - if !pointer { - v = v.Elem() - } - - switch v.Kind() { - case reflect.Ptr, reflect.Interface: - if v.IsNil() { - return append(b, `null`...), nil - } - } - - s, err := v.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return b, err - } - - return e.encodeString(b, unsafe.Pointer(&s)) -} - -func appendCompactEscapeHTML(dst []byte, src []byte) []byte { - start := 0 - escape := false - inString := false - - for i, c := range src { - if !inString { - switch c { - case '"': // enter string - inString = true - case ' ', '\n', '\r', '\t': // skip space - if start < i { - dst = append(dst, src[start:i]...) - } - start = i + 1 - } - continue - } - - if escape { - escape = false - continue - } - - if c == '\\' { - escape = true - continue - } - - if c == '"' { - inString = false - continue - } - - if c == '<' || c == '>' || c == '&' { - if start < i { - dst = append(dst, src[start:i]...) - } - dst = append(dst, `\u00`...) - dst = append(dst, hex[c>>4], hex[c&0xF]) - start = i + 1 - continue - } - - // Convert U+2028 and U+2029 (E2 80 A8 and E2 80 A9). - if c == 0xE2 && i+2 < len(src) && src[i+1] == 0x80 && src[i+2]&^1 == 0xA8 { - if start < i { - dst = append(dst, src[start:i]...) - } - dst = append(dst, `\u202`...) - dst = append(dst, hex[src[i+2]&0xF]) - start = i + 3 - continue - } - } - - if start < len(src) { - dst = append(dst, src[start:]...) - } - - return dst -} diff --git a/vendor/github.com/segmentio/encoding/json/int.go b/vendor/github.com/segmentio/encoding/json/int.go deleted file mode 100644 index b53149c..0000000 --- a/vendor/github.com/segmentio/encoding/json/int.go +++ /dev/null @@ -1,98 +0,0 @@ -package json - -import ( - "unsafe" -) - -var endianness int - -func init() { - var b [2]byte - *(*uint16)(unsafe.Pointer(&b)) = uint16(0xABCD) - - switch b[0] { - case 0xCD: - endianness = 0 // LE - case 0xAB: - endianness = 1 // BE - default: - panic("could not determine endianness") - } -} - -// "00010203...96979899" cast to []uint16 -var intLELookup = [100]uint16{ - 0x3030, 0x3130, 0x3230, 0x3330, 0x3430, 0x3530, 0x3630, 0x3730, 0x3830, 0x3930, - 0x3031, 0x3131, 0x3231, 0x3331, 0x3431, 0x3531, 0x3631, 0x3731, 0x3831, 0x3931, - 0x3032, 0x3132, 0x3232, 0x3332, 0x3432, 0x3532, 0x3632, 0x3732, 0x3832, 0x3932, - 0x3033, 0x3133, 0x3233, 0x3333, 0x3433, 0x3533, 0x3633, 0x3733, 0x3833, 0x3933, - 0x3034, 0x3134, 0x3234, 0x3334, 0x3434, 0x3534, 0x3634, 0x3734, 0x3834, 0x3934, - 0x3035, 0x3135, 0x3235, 0x3335, 0x3435, 0x3535, 0x3635, 0x3735, 0x3835, 0x3935, - 0x3036, 0x3136, 0x3236, 0x3336, 0x3436, 0x3536, 0x3636, 0x3736, 0x3836, 0x3936, - 0x3037, 0x3137, 0x3237, 0x3337, 0x3437, 0x3537, 0x3637, 0x3737, 0x3837, 0x3937, - 0x3038, 0x3138, 0x3238, 0x3338, 0x3438, 0x3538, 0x3638, 0x3738, 0x3838, 0x3938, - 0x3039, 0x3139, 0x3239, 0x3339, 0x3439, 0x3539, 0x3639, 0x3739, 0x3839, 0x3939, -} - -var intBELookup = [100]uint16{ - 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, - 0x3130, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138, 0x3139, - 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3236, 0x3237, 0x3238, 0x3239, - 0x3330, 0x3331, 0x3332, 0x3333, 0x3334, 0x3335, 0x3336, 0x3337, 0x3338, 0x3339, - 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436, 0x3437, 0x3438, 0x3439, - 0x3530, 0x3531, 0x3532, 0x3533, 0x3534, 0x3535, 0x3536, 0x3537, 0x3538, 0x3539, - 0x3630, 0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, - 0x3730, 0x3731, 0x3732, 0x3733, 0x3734, 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, - 0x3830, 0x3831, 0x3832, 0x3833, 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, 0x3839, - 0x3930, 0x3931, 0x3932, 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938, 0x3939, -} - -var intLookup = [2]*[100]uint16{&intLELookup, &intBELookup} - -func appendInt(b []byte, n int64) []byte { - return formatInteger(b, uint64(n), n < 0) -} - -func appendUint(b []byte, n uint64) []byte { - return formatInteger(b, n, false) -} - -func formatInteger(out []byte, n uint64, negative bool) []byte { - if !negative { - if n < 10 { - return append(out, byte(n+'0')) - } else if n < 100 { - u := intLELookup[n] - return append(out, byte(u), byte(u>>8)) - } - } else { - n = -n - } - - lookup := intLookup[endianness] - - var b [22]byte - u := (*[11]uint16)(unsafe.Pointer(&b)) - i := 11 - - for n >= 100 { - j := n % 100 - n /= 100 - i-- - u[i] = lookup[j] - } - - i-- - u[i] = lookup[n] - - i *= 2 // convert to byte index - if n < 10 { - i++ // remove leading zero - } - if negative { - i-- - b[i] = '-' - } - - return append(out, b[i:]...) -} diff --git a/vendor/github.com/segmentio/encoding/json/json.go b/vendor/github.com/segmentio/encoding/json/json.go deleted file mode 100644 index 47f3ba1..0000000 --- a/vendor/github.com/segmentio/encoding/json/json.go +++ /dev/null @@ -1,582 +0,0 @@ -package json - -import ( - "bytes" - "encoding/json" - "io" - "math/bits" - "reflect" - "runtime" - "sync" - "unsafe" -) - -// Delim is documented at https://golang.org/pkg/encoding/json/#Delim -type Delim = json.Delim - -// InvalidUTF8Error is documented at https://golang.org/pkg/encoding/json/#InvalidUTF8Error -type InvalidUTF8Error = json.InvalidUTF8Error - -// InvalidUnmarshalError is documented at https://golang.org/pkg/encoding/json/#InvalidUnmarshalError -type InvalidUnmarshalError = json.InvalidUnmarshalError - -// Marshaler is documented at https://golang.org/pkg/encoding/json/#Marshaler -type Marshaler = json.Marshaler - -// MarshalerError is documented at https://golang.org/pkg/encoding/json/#MarshalerError -type MarshalerError = json.MarshalerError - -// Number is documented at https://golang.org/pkg/encoding/json/#Number -type Number = json.Number - -// RawMessage is documented at https://golang.org/pkg/encoding/json/#RawMessage -type RawMessage = json.RawMessage - -// A SyntaxError is a description of a JSON syntax error. -type SyntaxError = json.SyntaxError - -// Token is documented at https://golang.org/pkg/encoding/json/#Token -type Token = json.Token - -// UnmarshalFieldError is documented at https://golang.org/pkg/encoding/json/#UnmarshalFieldError -type UnmarshalFieldError = json.UnmarshalFieldError - -// UnmarshalTypeError is documented at https://golang.org/pkg/encoding/json/#UnmarshalTypeError -type UnmarshalTypeError = json.UnmarshalTypeError - -// Unmarshaler is documented at https://golang.org/pkg/encoding/json/#Unmarshaler -type Unmarshaler = json.Unmarshaler - -// UnsupportedTypeError is documented at https://golang.org/pkg/encoding/json/#UnsupportedTypeError -type UnsupportedTypeError = json.UnsupportedTypeError - -// UnsupportedValueError is documented at https://golang.org/pkg/encoding/json/#UnsupportedValueError -type UnsupportedValueError = json.UnsupportedValueError - -// AppendFlags is a type used to represent configuration options that can be -// applied when formatting json output. -type AppendFlags uint32 - -const ( - // EscapeHTML is a formatting flag used to to escape HTML in json strings. - EscapeHTML AppendFlags = 1 << iota - - // SortMapKeys is formatting flag used to enable sorting of map keys when - // encoding JSON (this matches the behavior of the standard encoding/json - // package). - SortMapKeys - - // TrustRawMessage is a performance optimization flag to skip value - // checking of raw messages. It should only be used if the values are - // known to be valid json (e.g., they were created by json.Unmarshal). - TrustRawMessage - - // appendNewline is a formatting flag to enable the addition of a newline - // in Encode (this matches the behavior of the standard encoding/json - // package). - appendNewline -) - -// ParseFlags is a type used to represent configuration options that can be -// applied when parsing json input. -type ParseFlags uint32 - -func (flags ParseFlags) has(f ParseFlags) bool { - return (flags & f) != 0 -} - -func (f ParseFlags) kind() Kind { - return Kind((f >> kindOffset) & 0xFF) -} - -func (f ParseFlags) withKind(kind Kind) ParseFlags { - return (f & ^(ParseFlags(0xFF) << kindOffset)) | (ParseFlags(kind) << kindOffset) -} - -const ( - // DisallowUnknownFields is a parsing flag used to prevent decoding of - // objects to Go struct values when a field of the input does not match - // with any of the struct fields. - DisallowUnknownFields ParseFlags = 1 << iota - - // UseNumber is a parsing flag used to load numeric values as Number - // instead of float64. - UseNumber - - // DontCopyString is a parsing flag used to provide zero-copy support when - // loading string values from a json payload. It is not always possible to - // avoid dynamic memory allocations, for example when a string is escaped in - // the json data a new buffer has to be allocated, but when the `wire` value - // can be used as content of a Go value the decoder will simply point into - // the input buffer. - DontCopyString - - // DontCopyNumber is a parsing flag used to provide zero-copy support when - // loading Number values (see DontCopyString and DontCopyRawMessage). - DontCopyNumber - - // DontCopyRawMessage is a parsing flag used to provide zero-copy support - // when loading RawMessage values from a json payload. When used, the - // RawMessage values will not be allocated into new memory buffers and - // will instead point directly to the area of the input buffer where the - // value was found. - DontCopyRawMessage - - // DontMatchCaseInsensitiveStructFields is a parsing flag used to prevent - // matching fields in a case-insensitive way. This can prevent degrading - // performance on case conversions, and can also act as a stricter decoding - // mode. - DontMatchCaseInsensitiveStructFields - - // ZeroCopy is a parsing flag that combines all the copy optimizations - // available in the package. - // - // The zero-copy optimizations are better used in request-handler style - // code where none of the values are retained after the handler returns. - ZeroCopy = DontCopyString | DontCopyNumber | DontCopyRawMessage - - // validAsciiPrint is an internal flag indicating that the input contains - // only valid ASCII print chars (0x20 <= c <= 0x7E). If the flag is unset, - // it's unknown whether the input is valid ASCII print. - validAsciiPrint ParseFlags = 1 << 28 - - // noBackslach is an internal flag indicating that the input does not - // contain a backslash. If the flag is unset, it's unknown whether the - // input contains a backslash. - noBackslash ParseFlags = 1 << 29 - - // Bit offset where the kind of the json value is stored. - // - // See Kind in token.go for the enum. - kindOffset ParseFlags = 16 -) - -// Kind represents the different kinds of value that exist in JSON. -type Kind uint - -const ( - Undefined Kind = 0 - - Null Kind = 1 // Null is not zero, so we keep zero for "undefined". - - Bool Kind = 2 // Bit two is set to 1, means it's a boolean. - False Kind = 2 // Bool + 0 - True Kind = 3 // Bool + 1 - - Num Kind = 4 // Bit three is set to 1, means it's a number. - Uint Kind = 5 // Num + 1 - Int Kind = 6 // Num + 2 - Float Kind = 7 // Num + 3 - - String Kind = 8 // Bit four is set to 1, means it's a string. - Unescaped Kind = 9 // String + 1 - - Array Kind = 16 // Equivalent to Delim == '[' - Object Kind = 32 // Equivalent to Delim == '{' -) - -// Class returns the class of k. -func (k Kind) Class() Kind { return Kind(1 << uint(bits.Len(uint(k))-1)) } - -// Append acts like Marshal but appends the json representation to b instead of -// always reallocating a new slice. -func Append(b []byte, x interface{}, flags AppendFlags) ([]byte, error) { - if x == nil { - // Special case for nil values because it makes the rest of the code - // simpler to assume that it won't be seeing nil pointers. - return append(b, "null"...), nil - } - - t := reflect.TypeOf(x) - p := (*iface)(unsafe.Pointer(&x)).ptr - - cache := cacheLoad() - c, found := cache[typeid(t)] - - if !found { - c = constructCachedCodec(t, cache) - } - - b, err := c.encode(encoder{flags: flags}, b, p) - runtime.KeepAlive(x) - return b, err -} - -// Escape is a convenience helper to construct an escaped JSON string from s. -// The function escales HTML characters, for more control over the escape -// behavior and to write to a pre-allocated buffer, use AppendEscape. -func Escape(s string) []byte { - // +10 for extra escape characters, maybe not enough and the buffer will - // be reallocated. - b := make([]byte, 0, len(s)+10) - return AppendEscape(b, s, EscapeHTML) -} - -// AppendEscape appends s to b with the string escaped as a JSON value. -// This will include the starting and ending quote characters, and the -// appropriate characters will be escaped correctly for JSON encoding. -func AppendEscape(b []byte, s string, flags AppendFlags) []byte { - e := encoder{flags: flags} - b, _ = e.encodeString(b, unsafe.Pointer(&s)) - return b -} - -// Unescape is a convenience helper to unescape a JSON value. -// For more control over the unescape behavior and -// to write to a pre-allocated buffer, use AppendUnescape. -func Unescape(s []byte) []byte { - b := make([]byte, 0, len(s)) - return AppendUnescape(b, s, ParseFlags(0)) -} - -// AppendUnescape appends s to b with the string unescaped as a JSON value. -// This will remove starting and ending quote characters, and the -// appropriate characters will be escaped correctly as if JSON decoded. -// New space will be reallocated if more space is needed. -func AppendUnescape(b []byte, s []byte, flags ParseFlags) []byte { - d := decoder{flags: flags} - buf := new(string) - d.decodeString(s, unsafe.Pointer(buf)) - return append(b, *buf...) -} - -// Compact is documented at https://golang.org/pkg/encoding/json/#Compact -func Compact(dst *bytes.Buffer, src []byte) error { - return json.Compact(dst, src) -} - -// HTMLEscape is documented at https://golang.org/pkg/encoding/json/#HTMLEscape -func HTMLEscape(dst *bytes.Buffer, src []byte) { - json.HTMLEscape(dst, src) -} - -// Indent is documented at https://golang.org/pkg/encoding/json/#Indent -func Indent(dst *bytes.Buffer, src []byte, prefix, indent string) error { - return json.Indent(dst, src, prefix, indent) -} - -// Marshal is documented at https://golang.org/pkg/encoding/json/#Marshal -func Marshal(x interface{}) ([]byte, error) { - var err error - var buf = encoderBufferPool.Get().(*encoderBuffer) - - if buf.data, err = Append(buf.data[:0], x, EscapeHTML|SortMapKeys); err != nil { - return nil, err - } - - b := make([]byte, len(buf.data)) - copy(b, buf.data) - encoderBufferPool.Put(buf) - return b, nil -} - -// MarshalIndent is documented at https://golang.org/pkg/encoding/json/#MarshalIndent -func MarshalIndent(x interface{}, prefix, indent string) ([]byte, error) { - b, err := Marshal(x) - - if err == nil { - tmp := &bytes.Buffer{} - tmp.Grow(2 * len(b)) - - Indent(tmp, b, prefix, indent) - b = tmp.Bytes() - } - - return b, err -} - -// Unmarshal is documented at https://golang.org/pkg/encoding/json/#Unmarshal -func Unmarshal(b []byte, x interface{}) error { - r, err := Parse(b, x, 0) - if len(r) != 0 { - if _, ok := err.(*SyntaxError); !ok { - // The encoding/json package prioritizes reporting errors caused by - // unexpected trailing bytes over other issues; here we emulate this - // behavior by overriding the error. - err = syntaxError(r, "invalid character '%c' after top-level value", r[0]) - } - } - return err -} - -// Parse behaves like Unmarshal but the caller can pass a set of flags to -// configure the parsing behavior. -func Parse(b []byte, x interface{}, flags ParseFlags) ([]byte, error) { - t := reflect.TypeOf(x) - p := (*iface)(unsafe.Pointer(&x)).ptr - - d := decoder{flags: flags | internalParseFlags(b)} - - b = skipSpaces(b) - - if t == nil || p == nil || t.Kind() != reflect.Ptr { - _, r, _, err := d.parseValue(b) - r = skipSpaces(r) - if err != nil { - return r, err - } - return r, &InvalidUnmarshalError{Type: t} - } - t = t.Elem() - - cache := cacheLoad() - c, found := cache[typeid(t)] - - if !found { - c = constructCachedCodec(t, cache) - } - - r, err := c.decode(d, b, p) - return skipSpaces(r), err -} - -// Valid is documented at https://golang.org/pkg/encoding/json/#Valid -func Valid(data []byte) bool { - data = skipSpaces(data) - d := decoder{flags: internalParseFlags(data)} - _, data, _, err := d.parseValue(data) - if err != nil { - return false - } - return len(skipSpaces(data)) == 0 -} - -// Decoder is documented at https://golang.org/pkg/encoding/json/#Decoder -type Decoder struct { - reader io.Reader - buffer []byte - remain []byte - inputOffset int64 - err error - flags ParseFlags -} - -// NewDecoder is documented at https://golang.org/pkg/encoding/json/#NewDecoder -func NewDecoder(r io.Reader) *Decoder { return &Decoder{reader: r} } - -// Buffered is documented at https://golang.org/pkg/encoding/json/#Decoder.Buffered -func (dec *Decoder) Buffered() io.Reader { - return bytes.NewReader(dec.remain) -} - -// Decode is documented at https://golang.org/pkg/encoding/json/#Decoder.Decode -func (dec *Decoder) Decode(v interface{}) error { - raw, err := dec.readValue() - if err != nil { - return err - } - _, err = Parse(raw, v, dec.flags) - return err -} - -const ( - minBufferSize = 32768 - minReadSize = 4096 -) - -// readValue reads one JSON value from the buffer and returns its raw bytes. It -// is optimized for the "one JSON value per line" case. -func (dec *Decoder) readValue() (v []byte, err error) { - var n int - var r []byte - d := decoder{flags: dec.flags} - - for { - if len(dec.remain) != 0 { - v, r, _, err = d.parseValue(dec.remain) - if err == nil { - dec.remain, n = skipSpacesN(r) - dec.inputOffset += int64(len(v) + n) - return - } - if len(r) != 0 { - // Parsing of the next JSON value stopped at a position other - // than the end of the input buffer, which indicaates that a - // syntax error was encountered. - return - } - } - - if err = dec.err; err != nil { - if len(dec.remain) != 0 && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return - } - - if dec.buffer == nil { - dec.buffer = make([]byte, 0, minBufferSize) - } else { - dec.buffer = dec.buffer[:copy(dec.buffer[:cap(dec.buffer)], dec.remain)] - dec.remain = nil - } - - if (cap(dec.buffer) - len(dec.buffer)) < minReadSize { - buf := make([]byte, len(dec.buffer), 2*cap(dec.buffer)) - copy(buf, dec.buffer) - dec.buffer = buf - } - - n, err = io.ReadFull(dec.reader, dec.buffer[len(dec.buffer):cap(dec.buffer)]) - if n > 0 { - dec.buffer = dec.buffer[:len(dec.buffer)+n] - if err != nil { - err = nil - } - } else if err == io.ErrUnexpectedEOF { - err = io.EOF - } - dec.remain, n = skipSpacesN(dec.buffer) - d.flags = dec.flags | internalParseFlags(dec.remain) - dec.inputOffset += int64(n) - dec.err = err - } -} - -// DisallowUnknownFields is documented at https://golang.org/pkg/encoding/json/#Decoder.DisallowUnknownFields -func (dec *Decoder) DisallowUnknownFields() { dec.flags |= DisallowUnknownFields } - -// UseNumber is documented at https://golang.org/pkg/encoding/json/#Decoder.UseNumber -func (dec *Decoder) UseNumber() { dec.flags |= UseNumber } - -// DontCopyString is an extension to the standard encoding/json package -// which instructs the decoder to not copy strings loaded from the json -// payloads when possible. -func (dec *Decoder) DontCopyString() { dec.flags |= DontCopyString } - -// DontCopyNumber is an extension to the standard encoding/json package -// which instructs the decoder to not copy numbers loaded from the json -// payloads. -func (dec *Decoder) DontCopyNumber() { dec.flags |= DontCopyNumber } - -// DontCopyRawMessage is an extension to the standard encoding/json package -// which instructs the decoder to not allocate RawMessage values in separate -// memory buffers (see the documentation of the DontcopyRawMessage flag for -// more detais). -func (dec *Decoder) DontCopyRawMessage() { dec.flags |= DontCopyRawMessage } - -// DontMatchCaseInsensitiveStructFields is an extension to the standard -// encoding/json package which instructs the decoder to not match object fields -// against struct fields in a case-insensitive way, the field names have to -// match exactly to be decoded into the struct field values. -func (dec *Decoder) DontMatchCaseInsensitiveStructFields() { - dec.flags |= DontMatchCaseInsensitiveStructFields -} - -// ZeroCopy is an extension to the standard encoding/json package which enables -// all the copy optimizations of the decoder. -func (dec *Decoder) ZeroCopy() { dec.flags |= ZeroCopy } - -// InputOffset returns the input stream byte offset of the current decoder position. -// The offset gives the location of the end of the most recently returned token -// and the beginning of the next token. -func (dec *Decoder) InputOffset() int64 { - return dec.inputOffset -} - -// Encoder is documented at https://golang.org/pkg/encoding/json/#Encoder -type Encoder struct { - writer io.Writer - prefix string - indent string - buffer *bytes.Buffer - err error - flags AppendFlags -} - -// NewEncoder is documented at https://golang.org/pkg/encoding/json/#NewEncoder -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{writer: w, flags: EscapeHTML | SortMapKeys | appendNewline} -} - -// Encode is documented at https://golang.org/pkg/encoding/json/#Encoder.Encode -func (enc *Encoder) Encode(v interface{}) error { - if enc.err != nil { - return enc.err - } - - var err error - var buf = encoderBufferPool.Get().(*encoderBuffer) - - buf.data, err = Append(buf.data[:0], v, enc.flags) - - if err != nil { - encoderBufferPool.Put(buf) - return err - } - - if (enc.flags & appendNewline) != 0 { - buf.data = append(buf.data, '\n') - } - b := buf.data - - if enc.prefix != "" || enc.indent != "" { - if enc.buffer == nil { - enc.buffer = new(bytes.Buffer) - enc.buffer.Grow(2 * len(buf.data)) - } else { - enc.buffer.Reset() - } - Indent(enc.buffer, buf.data, enc.prefix, enc.indent) - b = enc.buffer.Bytes() - } - - if _, err := enc.writer.Write(b); err != nil { - enc.err = err - } - - encoderBufferPool.Put(buf) - return err -} - -// SetEscapeHTML is documented at https://golang.org/pkg/encoding/json/#Encoder.SetEscapeHTML -func (enc *Encoder) SetEscapeHTML(on bool) { - if on { - enc.flags |= EscapeHTML - } else { - enc.flags &= ^EscapeHTML - } -} - -// SetIndent is documented at https://golang.org/pkg/encoding/json/#Encoder.SetIndent -func (enc *Encoder) SetIndent(prefix, indent string) { - enc.prefix = prefix - enc.indent = indent -} - -// SetSortMapKeys is an extension to the standard encoding/json package which -// allows the program to toggle sorting of map keys on and off. -func (enc *Encoder) SetSortMapKeys(on bool) { - if on { - enc.flags |= SortMapKeys - } else { - enc.flags &= ^SortMapKeys - } -} - -// SetTrustRawMessage skips value checking when encoding a raw json message. It should only -// be used if the values are known to be valid json, e.g. because they were originally created -// by json.Unmarshal. -func (enc *Encoder) SetTrustRawMessage(on bool) { - if on { - enc.flags |= TrustRawMessage - } else { - enc.flags &= ^TrustRawMessage - } -} - -// SetAppendNewline is an extension to the standard encoding/json package which -// allows the program to toggle the addition of a newline in Encode on or off. -func (enc *Encoder) SetAppendNewline(on bool) { - if on { - enc.flags |= appendNewline - } else { - enc.flags &= ^appendNewline - } -} - -var encoderBufferPool = sync.Pool{ - New: func() interface{} { return &encoderBuffer{data: make([]byte, 0, 4096)} }, -} - -type encoderBuffer struct{ data []byte } diff --git a/vendor/github.com/segmentio/encoding/json/parse.go b/vendor/github.com/segmentio/encoding/json/parse.go deleted file mode 100644 index 3e65621..0000000 --- a/vendor/github.com/segmentio/encoding/json/parse.go +++ /dev/null @@ -1,787 +0,0 @@ -package json - -import ( - "bytes" - "encoding/binary" - "math" - "math/bits" - "reflect" - "unicode" - "unicode/utf16" - "unicode/utf8" - - "github.com/segmentio/encoding/ascii" -) - -// All spaces characters defined in the json specification. -const ( - sp = ' ' - ht = '\t' - nl = '\n' - cr = '\r' -) - -const ( - escape = '\\' - quote = '"' -) - -func internalParseFlags(b []byte) (flags ParseFlags) { - // Don't consider surrounding whitespace - b = skipSpaces(b) - b = trimTrailingSpaces(b) - if ascii.ValidPrint(b) { - flags |= validAsciiPrint - } - if bytes.IndexByte(b, '\\') == -1 { - flags |= noBackslash - } - return -} - -func skipSpaces(b []byte) []byte { - if len(b) > 0 && b[0] <= 0x20 { - b, _ = skipSpacesN(b) - } - return b -} - -func skipSpacesN(b []byte) ([]byte, int) { - for i := range b { - switch b[i] { - case sp, ht, nl, cr: - default: - return b[i:], i - } - } - return nil, 0 -} - -func trimTrailingSpaces(b []byte) []byte { - if len(b) > 0 && b[len(b)-1] <= 0x20 { - b = trimTrailingSpacesN(b) - } - return b -} - -func trimTrailingSpacesN(b []byte) []byte { - i := len(b) - 1 -loop: - for ; i >= 0; i-- { - switch b[i] { - case sp, ht, nl, cr: - default: - break loop - } - } - return b[:i+1] -} - -// parseInt parses a decimal representation of an int64 from b. -// -// The function is equivalent to calling strconv.ParseInt(string(b), 10, 64) but -// it prevents Go from making a memory allocation for converting a byte slice to -// a string (escape analysis fails due to the error returned by strconv.ParseInt). -// -// Because it only works with base 10 the function is also significantly faster -// than strconv.ParseInt. -func (d decoder) parseInt(b []byte, t reflect.Type) (int64, []byte, error) { - var value int64 - var count int - - if len(b) == 0 { - return 0, b, syntaxError(b, "cannot decode integer from an empty input") - } - - if b[0] == '-' { - const max = math.MinInt64 - const lim = max / 10 - - if len(b) == 1 { - return 0, b, syntaxError(b, "cannot decode integer from '-'") - } - - if len(b) > 2 && b[1] == '0' && '0' <= b[2] && b[2] <= '9' { - return 0, b, syntaxError(b, "invalid leading character '0' in integer") - } - - for _, c := range b[1:] { - if !(c >= '0' && c <= '9') { - if count == 0 { - b, err := d.inputError(b, t) - return 0, b, err - } - break - } - - if value < lim { - return 0, b, unmarshalOverflow(b, t) - } - - value *= 10 - x := int64(c - '0') - - if value < (max + x) { - return 0, b, unmarshalOverflow(b, t) - } - - value -= x - count++ - } - - count++ - } else { - if len(b) > 1 && b[0] == '0' && '0' <= b[1] && b[1] <= '9' { - return 0, b, syntaxError(b, "invalid leading character '0' in integer") - } - - for ; count < len(b) && b[count] >= '0' && b[count] <= '9'; count++ { - x := int64(b[count] - '0') - next := value*10 + x - if next < value { - return 0, b, unmarshalOverflow(b, t) - } - value = next - } - - if count == 0 { - b, err := d.inputError(b, t) - return 0, b, err - } - } - - if count < len(b) { - switch b[count] { - case '.', 'e', 'E': // was this actually a float? - v, r, _, err := d.parseNumber(b) - if err != nil { - v, r = b[:count+1], b[count+1:] - } - return 0, r, unmarshalTypeError(v, t) - } - } - - return value, b[count:], nil -} - -// parseUint is like parseInt but for unsigned integers. -func (d decoder) parseUint(b []byte, t reflect.Type) (uint64, []byte, error) { - var value uint64 - var count int - - if len(b) == 0 { - return 0, b, syntaxError(b, "cannot decode integer value from an empty input") - } - - if len(b) > 1 && b[0] == '0' && '0' <= b[1] && b[1] <= '9' { - return 0, b, syntaxError(b, "invalid leading character '0' in integer") - } - - for ; count < len(b) && b[count] >= '0' && b[count] <= '9'; count++ { - x := uint64(b[count] - '0') - next := value*10 + x - if next < value { - return 0, b, unmarshalOverflow(b, t) - } - value = next - } - - if count == 0 { - b, err := d.inputError(b, t) - return 0, b, err - } - - if count < len(b) { - switch b[count] { - case '.', 'e', 'E': // was this actually a float? - v, r, _, err := d.parseNumber(b) - if err != nil { - v, r = b[:count+1], b[count+1:] - } - return 0, r, unmarshalTypeError(v, t) - } - } - - return value, b[count:], nil -} - -// parseUintHex parses a hexadecimanl representation of a uint64 from b. -// -// The function is equivalent to calling strconv.ParseUint(string(b), 16, 64) but -// it prevents Go from making a memory allocation for converting a byte slice to -// a string (escape analysis fails due to the error returned by strconv.ParseUint). -// -// Because it only works with base 16 the function is also significantly faster -// than strconv.ParseUint. -func (d decoder) parseUintHex(b []byte) (uint64, []byte, error) { - const max = math.MaxUint64 - const lim = max / 0x10 - - var value uint64 - var count int - - if len(b) == 0 { - return 0, b, syntaxError(b, "cannot decode hexadecimal value from an empty input") - } - -parseLoop: - for i, c := range b { - var x uint64 - - switch { - case c >= '0' && c <= '9': - x = uint64(c - '0') - - case c >= 'A' && c <= 'F': - x = uint64(c-'A') + 0xA - - case c >= 'a' && c <= 'f': - x = uint64(c-'a') + 0xA - - default: - if i == 0 { - return 0, b, syntaxError(b, "expected hexadecimal digit but found '%c'", c) - } - break parseLoop - } - - if value > lim { - return 0, b, syntaxError(b, "hexadecimal value out of range") - } - - if value *= 0x10; value > (max - x) { - return 0, b, syntaxError(b, "hexadecimal value out of range") - } - - value += x - count++ - } - - return value, b[count:], nil -} - -func (d decoder) parseNull(b []byte) ([]byte, []byte, Kind, error) { - if hasNullPrefix(b) { - return b[:4], b[4:], Null, nil - } - if len(b) < 4 { - return nil, b[len(b):], Undefined, unexpectedEOF(b) - } - return nil, b, Undefined, syntaxError(b, "expected 'null' but found invalid token") -} - -func (d decoder) parseTrue(b []byte) ([]byte, []byte, Kind, error) { - if hasTruePrefix(b) { - return b[:4], b[4:], True, nil - } - if len(b) < 4 { - return nil, b[len(b):], Undefined, unexpectedEOF(b) - } - return nil, b, Undefined, syntaxError(b, "expected 'true' but found invalid token") -} - -func (d decoder) parseFalse(b []byte) ([]byte, []byte, Kind, error) { - if hasFalsePrefix(b) { - return b[:5], b[5:], False, nil - } - if len(b) < 5 { - return nil, b[len(b):], Undefined, unexpectedEOF(b) - } - return nil, b, Undefined, syntaxError(b, "expected 'false' but found invalid token") -} - -func (d decoder) parseNumber(b []byte) (v, r []byte, kind Kind, err error) { - if len(b) == 0 { - r, err = b, unexpectedEOF(b) - return - } - - // Assume it's an unsigned integer at first. - kind = Uint - - i := 0 - // sign - if b[i] == '-' { - kind = Int - i++ - } - - if i == len(b) { - r, err = b[i:], syntaxError(b, "missing number value after sign") - return - } - - if b[i] < '0' || b[i] > '9' { - r, err = b[i:], syntaxError(b, "expected digit but got '%c'", b[i]) - return - } - - // integer part - if b[i] == '0' { - i++ - if i == len(b) || (b[i] != '.' && b[i] != 'e' && b[i] != 'E') { - v, r = b[:i], b[i:] - return - } - if '0' <= b[i] && b[i] <= '9' { - r, err = b[i:], syntaxError(b, "cannot decode number with leading '0' character") - return - } - } - - for i < len(b) && '0' <= b[i] && b[i] <= '9' { - i++ - } - - // decimal part - if i < len(b) && b[i] == '.' { - kind = Float - i++ - decimalStart := i - - for i < len(b) { - if c := b[i]; !('0' <= c && c <= '9') { - if i == decimalStart { - r, err = b[i:], syntaxError(b, "expected digit but found '%c'", c) - return - } - break - } - i++ - } - - if i == decimalStart { - r, err = b[i:], syntaxError(b, "expected decimal part after '.'") - return - } - } - - // exponent part - if i < len(b) && (b[i] == 'e' || b[i] == 'E') { - kind = Float - i++ - - if i < len(b) { - if c := b[i]; c == '+' || c == '-' { - i++ - } - } - - if i == len(b) { - r, err = b[i:], syntaxError(b, "missing exponent in number") - return - } - - exponentStart := i - - for i < len(b) { - if c := b[i]; !('0' <= c && c <= '9') { - if i == exponentStart { - err = syntaxError(b, "expected digit but found '%c'", c) - return - } - break - } - i++ - } - } - - v, r = b[:i], b[i:] - return -} - -func (d decoder) parseUnicode(b []byte) (rune, int, error) { - if len(b) < 4 { - return 0, len(b), syntaxError(b, "unicode code point must have at least 4 characters") - } - - u, r, err := d.parseUintHex(b[:4]) - if err != nil { - return 0, 4, syntaxError(b, "parsing unicode code point: %s", err) - } - - if len(r) != 0 { - return 0, 4, syntaxError(b, "invalid unicode code point") - } - - return rune(u), 4, nil -} - -func (d decoder) parseString(b []byte) ([]byte, []byte, Kind, error) { - if len(b) < 2 { - return nil, b[len(b):], Undefined, unexpectedEOF(b) - } - if b[0] != '"' { - return nil, b, Undefined, syntaxError(b, "expected '\"' at the beginning of a string value") - } - - var n int - if len(b) >= 9 { - // This is an optimization for short strings. We read 8/16 bytes, - // and XOR each with 0x22 (") so that these bytes (and only - // these bytes) are now zero. We use the hasless(u,1) trick - // from https://graphics.stanford.edu/~seander/bithacks.html#ZeroInWord - // to determine whether any bytes are zero. Finally, we CTZ - // to find the index of that byte. - const mask1 = 0x2222222222222222 - const mask2 = 0x0101010101010101 - const mask3 = 0x8080808080808080 - u := binary.LittleEndian.Uint64(b[1:]) ^ mask1 - if mask := (u - mask2) & ^u & mask3; mask != 0 { - n = bits.TrailingZeros64(mask)/8 + 2 - goto found - } - if len(b) >= 17 { - u = binary.LittleEndian.Uint64(b[9:]) ^ mask1 - if mask := (u - mask2) & ^u & mask3; mask != 0 { - n = bits.TrailingZeros64(mask)/8 + 10 - goto found - } - } - } - n = bytes.IndexByte(b[1:], '"') + 2 - if n <= 1 { - return nil, b[len(b):], Undefined, syntaxError(b, "missing '\"' at the end of a string value") - } -found: - if (d.flags.has(noBackslash) || bytes.IndexByte(b[1:n], '\\') < 0) && - (d.flags.has(validAsciiPrint) || ascii.ValidPrint(b[1:n])) { - return b[:n], b[n:], Unescaped, nil - } - - for i := 1; i < len(b); i++ { - switch b[i] { - case '\\': - if i++; i < len(b) { - switch b[i] { - case '"', '\\', '/', 'n', 'r', 't', 'f', 'b': - case 'u': - _, n, err := d.parseUnicode(b[i+1:]) - if err != nil { - return nil, b[i+1+n:], Undefined, err - } - i += n - default: - return nil, b, Undefined, syntaxError(b, "invalid character '%c' in string escape code", b[i]) - } - } - - case '"': - return b[:i+1], b[i+1:], String, nil - - default: - if b[i] < 0x20 { - return nil, b, Undefined, syntaxError(b, "invalid character '%c' in string escape code", b[i]) - } - } - } - - return nil, b[len(b):], Undefined, syntaxError(b, "missing '\"' at the end of a string value") -} - -func (d decoder) parseStringUnquote(b []byte, r []byte) ([]byte, []byte, bool, error) { - s, b, k, err := d.parseString(b) - if err != nil { - return s, b, false, err - } - - s = s[1 : len(s)-1] // trim the quotes - - if k == Unescaped { - return s, b, false, nil - } - - if r == nil { - r = make([]byte, 0, len(s)) - } - - for len(s) != 0 { - i := bytes.IndexByte(s, '\\') - - if i < 0 { - r = appendCoerceInvalidUTF8(r, s) - break - } - - r = appendCoerceInvalidUTF8(r, s[:i]) - s = s[i+1:] - - c := s[0] - switch c { - case '"', '\\', '/': - // simple escaped character - case 'n': - c = '\n' - - case 'r': - c = '\r' - - case 't': - c = '\t' - - case 'b': - c = '\b' - - case 'f': - c = '\f' - - case 'u': - s = s[1:] - - r1, n1, err := d.parseUnicode(s) - if err != nil { - return r, b, true, err - } - s = s[n1:] - - if utf16.IsSurrogate(r1) { - if !hasPrefix(s, `\u`) { - r1 = unicode.ReplacementChar - } else { - r2, n2, err := d.parseUnicode(s[2:]) - if err != nil { - return r, b, true, err - } - if r1 = utf16.DecodeRune(r1, r2); r1 != unicode.ReplacementChar { - s = s[2+n2:] - } - } - } - - r = appendRune(r, r1) - continue - - default: // not sure what this escape sequence is - return r, b, false, syntaxError(s, "invalid character '%c' in string escape code", c) - } - - r = append(r, c) - s = s[1:] - } - - return r, b, true, nil -} - -func appendRune(b []byte, r rune) []byte { - n := len(b) - b = append(b, 0, 0, 0, 0) - return b[:n+utf8.EncodeRune(b[n:], r)] -} - -func appendCoerceInvalidUTF8(b []byte, s []byte) []byte { - c := [4]byte{} - - for _, r := range string(s) { - b = append(b, c[:utf8.EncodeRune(c[:], r)]...) - } - - return b -} - -func (d decoder) parseObject(b []byte) ([]byte, []byte, Kind, error) { - if len(b) < 2 { - return nil, b[len(b):], Undefined, unexpectedEOF(b) - } - - if b[0] != '{' { - return nil, b, Undefined, syntaxError(b, "expected '{' at the beginning of an object value") - } - - var err error - var a = b - var n = len(b) - var i = 0 - - b = b[1:] - for { - b = skipSpaces(b) - - if len(b) == 0 { - return nil, b, Undefined, syntaxError(b, "cannot decode object from empty input") - } - - if b[0] == '}' { - j := (n - len(b)) + 1 - return a[:j], a[j:], Object, nil - } - - if i != 0 { - if len(b) == 0 { - return nil, b, Undefined, syntaxError(b, "unexpected EOF after object field value") - } - if b[0] != ',' { - return nil, b, Undefined, syntaxError(b, "expected ',' after object field value but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - if len(b) == 0 { - return nil, b, Undefined, unexpectedEOF(b) - } - if b[0] == '}' { - return nil, b, Undefined, syntaxError(b, "unexpected trailing comma after object field") - } - } - - _, b, _, err = d.parseString(b) - if err != nil { - return nil, b, Undefined, err - } - b = skipSpaces(b) - - if len(b) == 0 { - return nil, b, Undefined, syntaxError(b, "unexpected EOF after object field key") - } - if b[0] != ':' { - return nil, b, Undefined, syntaxError(b, "expected ':' after object field key but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - - _, b, _, err = d.parseValue(b) - if err != nil { - return nil, b, Undefined, err - } - - i++ - } -} - -func (d decoder) parseArray(b []byte) ([]byte, []byte, Kind, error) { - if len(b) < 2 { - return nil, b[len(b):], Undefined, unexpectedEOF(b) - } - - if b[0] != '[' { - return nil, b, Undefined, syntaxError(b, "expected '[' at the beginning of array value") - } - - var err error - var a = b - var n = len(b) - var i = 0 - - b = b[1:] - for { - b = skipSpaces(b) - - if len(b) == 0 { - return nil, b, Undefined, syntaxError(b, "missing closing ']' after array value") - } - - if b[0] == ']' { - j := (n - len(b)) + 1 - return a[:j], a[j:], Array, nil - } - - if i != 0 { - if len(b) == 0 { - return nil, b, Undefined, syntaxError(b, "unexpected EOF after array element") - } - if b[0] != ',' { - return nil, b, Undefined, syntaxError(b, "expected ',' after array element but found '%c'", b[0]) - } - b = skipSpaces(b[1:]) - if len(b) == 0 { - return nil, b, Undefined, unexpectedEOF(b) - } - if b[0] == ']' { - return nil, b, Undefined, syntaxError(b, "unexpected trailing comma after object field") - } - } - - _, b, _, err = d.parseValue(b) - if err != nil { - return nil, b, Undefined, err - } - - i++ - } -} - -func (d decoder) parseValue(b []byte) ([]byte, []byte, Kind, error) { - if len(b) == 0 { - return nil, b, Undefined, syntaxError(b, "unexpected end of JSON input") - } - - var v []byte - var k Kind - var err error - - switch b[0] { - case '{': - v, b, k, err = d.parseObject(b) - case '[': - k = Array - v, b, k, err = d.parseArray(b) - case '"': - v, b, k, err = d.parseString(b) - case 'n': - v, b, k, err = d.parseNull(b) - case 't': - v, b, k, err = d.parseTrue(b) - case 'f': - v, b, k, err = d.parseFalse(b) - case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': - v, b, k, err = d.parseNumber(b) - default: - err = syntaxError(b, "invalid character '%c' looking for beginning of value", b[0]) - } - - return v, b, k, err -} - -func hasNullPrefix(b []byte) bool { - return len(b) >= 4 && string(b[:4]) == "null" -} - -func hasTruePrefix(b []byte) bool { - return len(b) >= 4 && string(b[:4]) == "true" -} - -func hasFalsePrefix(b []byte) bool { - return len(b) >= 5 && string(b[:5]) == "false" -} - -func hasPrefix(b []byte, s string) bool { - return len(b) >= len(s) && s == string(b[:len(s)]) -} - -func hasLeadingSign(b []byte) bool { - return len(b) > 0 && (b[0] == '+' || b[0] == '-') -} - -func hasLeadingZeroes(b []byte) bool { - if hasLeadingSign(b) { - b = b[1:] - } - return len(b) > 1 && b[0] == '0' && '0' <= b[1] && b[1] <= '9' -} - -func appendToLower(b, s []byte) []byte { - if ascii.Valid(s) { // fast path for ascii strings - i := 0 - - for j := range s { - c := s[j] - - if 'A' <= c && c <= 'Z' { - b = append(b, s[i:j]...) - b = append(b, c+('a'-'A')) - i = j + 1 - } - } - - return append(b, s[i:]...) - } - - for _, r := range string(s) { - b = appendRune(b, foldRune(r)) - } - - return b -} - -func foldRune(r rune) rune { - if r = unicode.SimpleFold(r); 'A' <= r && r <= 'Z' { - r = r + ('a' - 'A') - } - return r -} diff --git a/vendor/github.com/segmentio/encoding/json/reflect.go b/vendor/github.com/segmentio/encoding/json/reflect.go deleted file mode 100644 index 3a5c6f1..0000000 --- a/vendor/github.com/segmentio/encoding/json/reflect.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -package json - -import ( - "reflect" - "unsafe" -) - -func extendSlice(t reflect.Type, s *slice, n int) slice { - arrayType := reflect.ArrayOf(n, t.Elem()) - arrayData := reflect.New(arrayType) - reflect.Copy(arrayData.Elem(), reflect.NewAt(t, unsafe.Pointer(s)).Elem()) - return slice{ - data: unsafe.Pointer(arrayData.Pointer()), - len: s.len, - cap: n, - } -} diff --git a/vendor/github.com/segmentio/encoding/json/reflect_optimize.go b/vendor/github.com/segmentio/encoding/json/reflect_optimize.go deleted file mode 100644 index 6936cef..0000000 --- a/vendor/github.com/segmentio/encoding/json/reflect_optimize.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build !go1.18 -// +build !go1.18 - -package json - -import ( - "reflect" - "unsafe" -) - -//go:linkname unsafe_NewArray reflect.unsafe_NewArray -func unsafe_NewArray(rtype unsafe.Pointer, length int) unsafe.Pointer - -//go:linkname typedslicecopy reflect.typedslicecopy -//go:noescape -func typedslicecopy(elemType unsafe.Pointer, dst, src slice) int - -func extendSlice(t reflect.Type, s *slice, n int) slice { - elemTypeRef := t.Elem() - elemTypePtr := ((*iface)(unsafe.Pointer(&elemTypeRef))).ptr - - d := slice{ - data: unsafe_NewArray(elemTypePtr, n), - len: s.len, - cap: n, - } - - typedslicecopy(elemTypePtr, d, *s) - return d -} diff --git a/vendor/github.com/segmentio/encoding/json/string.go b/vendor/github.com/segmentio/encoding/json/string.go deleted file mode 100644 index dba5c5d..0000000 --- a/vendor/github.com/segmentio/encoding/json/string.go +++ /dev/null @@ -1,70 +0,0 @@ -package json - -import ( - "math/bits" - "unsafe" -) - -const ( - lsb = 0x0101010101010101 - msb = 0x8080808080808080 -) - -// escapeIndex finds the index of the first char in `s` that requires escaping. -// A char requires escaping if it's outside of the range of [0x20, 0x7F] or if -// it includes a double quote or backslash. If the escapeHTML mode is enabled, -// the chars <, > and & also require escaping. If no chars in `s` require -// escaping, the return value is -1. -func escapeIndex(s string, escapeHTML bool) int { - chunks := stringToUint64(s) - for _, n := range chunks { - // combine masks before checking for the MSB of each byte. We include - // `n` in the mask to check whether any of the *input* byte MSBs were - // set (i.e. the byte was outside the ASCII range). - mask := n | below(n, 0x20) | contains(n, '"') | contains(n, '\\') - if escapeHTML { - mask |= contains(n, '<') | contains(n, '>') | contains(n, '&') - } - if (mask & msb) != 0 { - return bits.TrailingZeros64(mask&msb) / 8 - } - } - - for i := len(chunks) * 8; i < len(s); i++ { - c := s[i] - if c < 0x20 || c > 0x7f || c == '"' || c == '\\' || (escapeHTML && (c == '<' || c == '>' || c == '&')) { - return i - } - } - - return -1 -} - -// below return a mask that can be used to determine if any of the bytes -// in `n` are below `b`. If a byte's MSB is set in the mask then that byte was -// below `b`. The result is only valid if `b`, and each byte in `n`, is below -// 0x80. -func below(n uint64, b byte) uint64 { - return n - expand(b) -} - -// contains returns a mask that can be used to determine if any of the -// bytes in `n` are equal to `b`. If a byte's MSB is set in the mask then -// that byte is equal to `b`. The result is only valid if `b`, and each -// byte in `n`, is below 0x80. -func contains(n uint64, b byte) uint64 { - return (n ^ expand(b)) - lsb -} - -// expand puts the specified byte into each of the 8 bytes of a uint64. -func expand(b byte) uint64 { - return lsb * uint64(b) -} - -func stringToUint64(s string) []uint64 { - return *(*[]uint64)(unsafe.Pointer(&sliceHeader{ - Data: *(*unsafe.Pointer)(unsafe.Pointer(&s)), - Len: len(s) / 8, - Cap: len(s) / 8, - })) -} diff --git a/vendor/github.com/segmentio/encoding/json/token.go b/vendor/github.com/segmentio/encoding/json/token.go deleted file mode 100644 index 652e36d..0000000 --- a/vendor/github.com/segmentio/encoding/json/token.go +++ /dev/null @@ -1,416 +0,0 @@ -package json - -import ( - "strconv" - "sync" - "unsafe" -) - -// Tokenizer is an iterator-style type which can be used to progressively parse -// through a json input. -// -// Tokenizing json is useful to build highly efficient parsing operations, for -// example when doing tranformations on-the-fly where as the program reads the -// input and produces the transformed json to an output buffer. -// -// Here is a common pattern to use a tokenizer: -// -// for t := json.NewTokenizer(b); t.Next(); { -// switch k := t.Kind(); k.Class() { -// case json.Null: -// ... -// case json.Bool: -// ... -// case json.Num: -// ... -// case json.String: -// ... -// case json.Array: -// ... -// case json.Object: -// ... -// } -// } -// -type Tokenizer struct { - // When the tokenizer is positioned on a json delimiter this field is not - // zero. In this case the possible values are '{', '}', '[', ']', ':', and - // ','. - Delim Delim - - // This field contains the raw json token that the tokenizer is pointing at. - // When Delim is not zero, this field is a single-element byte slice - // continaing the delimiter value. Otherwise, this field holds values like - // null, true, false, numbers, or quoted strings. - Value RawValue - - // When the tokenizer has encountered invalid content this field is not nil. - Err error - - // When the value is in an array or an object, this field contains the depth - // at which it was found. - Depth int - - // When the value is in an array or an object, this field contains the - // position at which it was found. - Index int - - // This field is true when the value is the key of an object. - IsKey bool - - // Tells whether the next value read from the tokenizer is a key. - isKey bool - - // json input for the tokenizer, pointing at data right after the last token - // that was parsed. - json []byte - - // Stack used to track entering and leaving arrays, objects, and keys. - stack *stack - - // Decoder used for parsing. - decoder -} - -// NewTokenizer constructs a new Tokenizer which reads its json input from b. -func NewTokenizer(b []byte) *Tokenizer { - return &Tokenizer{ - json: b, - decoder: decoder{flags: internalParseFlags(b)}, - } -} - -// Reset erases the state of t and re-initializes it with the json input from b. -func (t *Tokenizer) Reset(b []byte) { - if t.stack != nil { - releaseStack(t.stack) - } - // This code is similar to: - // - // *t = Tokenizer{json: b} - // - // However, it does not compile down to an invocation of duff-copy. - t.Delim = 0 - t.Value = nil - t.Err = nil - t.Depth = 0 - t.Index = 0 - t.IsKey = false - t.isKey = false - t.json = b - t.stack = nil - t.decoder = decoder{flags: internalParseFlags(b)} -} - -// Next returns a new tokenizer pointing at the next token, or the zero-value of -// Tokenizer if the end of the json input has been reached. -// -// If the tokenizer encounters malformed json while reading the input the method -// sets t.Err to an error describing the issue, and returns false. Once an error -// has been encountered, the tokenizer will always fail until its input is -// cleared by a call to its Reset method. -func (t *Tokenizer) Next() bool { - if t.Err != nil { - return false - } - - // Inlined code of the skipSpaces function, this give a ~15% speed boost. - i := 0 -skipLoop: - for _, c := range t.json { - switch c { - case sp, ht, nl, cr: - i++ - default: - break skipLoop - } - } - - if i > 0 { - t.json = t.json[i:] - } - - if len(t.json) == 0 { - t.Reset(nil) - return false - } - - var kind Kind - switch t.json[0] { - case '"': - t.Delim = 0 - t.Value, t.json, kind, t.Err = t.parseString(t.json) - case 'n': - t.Delim = 0 - t.Value, t.json, kind, t.Err = t.parseNull(t.json) - case 't': - t.Delim = 0 - t.Value, t.json, kind, t.Err = t.parseTrue(t.json) - case 'f': - t.Delim = 0 - t.Value, t.json, kind, t.Err = t.parseFalse(t.json) - case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': - t.Delim = 0 - t.Value, t.json, kind, t.Err = t.parseNumber(t.json) - case '{', '}', '[', ']', ':', ',': - t.Delim, t.Value, t.json = Delim(t.json[0]), t.json[:1], t.json[1:] - switch t.Delim { - case '{': - kind = Object - case '[': - kind = Array - } - default: - t.Delim = 0 - t.Value, t.json, t.Err = t.json[:1], t.json[1:], syntaxError(t.json, "expected token but found '%c'", t.json[0]) - } - - t.Depth = t.depth() - t.Index = t.index() - t.flags = t.flags.withKind(kind) - - if t.Delim == 0 { - t.IsKey = t.isKey - } else { - t.IsKey = false - - switch t.Delim { - case '{': - t.isKey = true - t.push(inObject) - case '[': - t.push(inArray) - case '}': - t.Err = t.pop(inObject) - t.Depth-- - t.Index = t.index() - case ']': - t.Err = t.pop(inArray) - t.Depth-- - t.Index = t.index() - case ':': - t.isKey = false - case ',': - if t.stack == nil || len(t.stack.state) == 0 { - t.Err = syntaxError(t.json, "found unexpected comma") - return false - } - if t.stack.is(inObject) { - t.isKey = true - } - t.stack.state[len(t.stack.state)-1].len++ - } - } - - return (t.Delim != 0 || len(t.Value) != 0) && t.Err == nil -} - -func (t *Tokenizer) depth() int { - if t.stack == nil { - return 0 - } - return t.stack.depth() -} - -func (t *Tokenizer) index() int { - if t.stack == nil { - return 0 - } - return t.stack.index() -} - -func (t *Tokenizer) push(typ scope) { - if t.stack == nil { - t.stack = acquireStack() - } - t.stack.push(typ) -} - -func (t *Tokenizer) pop(expect scope) error { - if t.stack == nil || !t.stack.pop(expect) { - return syntaxError(t.json, "found unexpected character while tokenizing json input") - } - return nil -} - -// Kind returns the kind of the value that the tokenizer is currently positioned -// on. -func (t *Tokenizer) Kind() Kind { return t.flags.kind() } - -// Bool returns a bool containing the value of the json boolean that the -// tokenizer is currently pointing at. -// -// This method must only be called after checking the kind of the token via a -// call to Kind. -// -// If the tokenizer is not positioned on a boolean, the behavior is undefined. -func (t *Tokenizer) Bool() bool { return t.flags.kind() == True } - -// Int returns a byte slice containing the value of the json number that the -// tokenizer is currently pointing at. -// -// This method must only be called after checking the kind of the token via a -// call to Kind. -// -// If the tokenizer is not positioned on an integer, the behavior is undefined. -func (t *Tokenizer) Int() int64 { - i, _, _ := t.parseInt(t.Value, int64Type) - return i -} - -// Uint returns a byte slice containing the value of the json number that the -// tokenizer is currently pointing at. -// -// This method must only be called after checking the kind of the token via a -// call to Kind. -// -// If the tokenizer is not positioned on a positive integer, the behavior is -// undefined. -func (t *Tokenizer) Uint() uint64 { - u, _, _ := t.parseUint(t.Value, uint64Type) - return u -} - -// Float returns a byte slice containing the value of the json number that the -// tokenizer is currently pointing at. -// -// This method must only be called after checking the kind of the token via a -// call to Kind. -// -// If the tokenizer is not positioned on a number, the behavior is undefined. -func (t *Tokenizer) Float() float64 { - f, _ := strconv.ParseFloat(*(*string)(unsafe.Pointer(&t.Value)), 64) - return f -} - -// String returns a byte slice containing the value of the json string that the -// tokenizer is currently pointing at. -// -// This method must only be called after checking the kind of the token via a -// call to Kind. -// -// When possible, the returned byte slice references the backing array of the -// tokenizer. A new slice is only allocated if the tokenizer needed to unescape -// the json string. -// -// If the tokenizer is not positioned on a string, the behavior is undefined. -func (t *Tokenizer) String() []byte { - if t.flags.kind() == Unescaped && len(t.Value) > 1 { - return t.Value[1 : len(t.Value)-1] // unquote - } - s, _, _, _ := t.parseStringUnquote(t.Value, nil) - return s -} - -// RawValue represents a raw json value, it is intended to carry null, true, -// false, number, and string values only. -type RawValue []byte - -// String returns true if v contains a string value. -func (v RawValue) String() bool { return len(v) != 0 && v[0] == '"' } - -// Null returns true if v contains a null value. -func (v RawValue) Null() bool { return len(v) != 0 && v[0] == 'n' } - -// True returns true if v contains a true value. -func (v RawValue) True() bool { return len(v) != 0 && v[0] == 't' } - -// False returns true if v contains a false value. -func (v RawValue) False() bool { return len(v) != 0 && v[0] == 'f' } - -// Number returns true if v contains a number value. -func (v RawValue) Number() bool { - if len(v) != 0 { - switch v[0] { - case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': - return true - } - } - return false -} - -// AppendUnquote writes the unquoted version of the string value in v into b. -func (v RawValue) AppendUnquote(b []byte) []byte { - d := decoder{} - s, r, _, err := d.parseStringUnquote(v, b) - if err != nil { - panic(err) - } - if len(r) != 0 { - panic(syntaxError(r, "unexpected trailing tokens after json value")) - } - return append(b, s...) -} - -// Unquote returns the unquoted version of the string value in v. -func (v RawValue) Unquote() []byte { - return v.AppendUnquote(nil) -} - -type scope int - -const ( - inArray scope = iota - inObject -) - -type state struct { - typ scope - len int -} - -type stack struct { - state []state -} - -func (s *stack) push(typ scope) { - s.state = append(s.state, state{typ: typ, len: 1}) -} - -func (s *stack) pop(expect scope) bool { - i := len(s.state) - 1 - - if i < 0 { - return false - } - - if found := s.state[i]; expect != found.typ { - return false - } - - s.state = s.state[:i] - return true -} - -func (s *stack) is(typ scope) bool { - return len(s.state) != 0 && s.state[len(s.state)-1].typ == typ -} - -func (s *stack) depth() int { - return len(s.state) -} - -func (s *stack) index() int { - if len(s.state) == 0 { - return 0 - } - return s.state[len(s.state)-1].len - 1 -} - -func acquireStack() *stack { - s, _ := stackPool.Get().(*stack) - if s == nil { - s = &stack{state: make([]state, 0, 4)} - } else { - s.state = s.state[:0] - } - return s -} - -func releaseStack(s *stack) { - stackPool.Put(s) -} - -var ( - stackPool sync.Pool // *stack -) diff --git a/vendor/github.com/stretchr/testify/LICENSE b/vendor/github.com/stretchr/testify/LICENSE deleted file mode 100644 index 4b0421c..0000000 --- a/vendor/github.com/stretchr/testify/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/stretchr/testify/assert/assertion_compare.go b/vendor/github.com/stretchr/testify/assert/assertion_compare.go deleted file mode 100644 index ffb24e8..0000000 --- a/vendor/github.com/stretchr/testify/assert/assertion_compare.go +++ /dev/null @@ -1,495 +0,0 @@ -package assert - -import ( - "bytes" - "fmt" - "reflect" - "time" -) - -// Deprecated: CompareType has only ever been for internal use and has accidentally been published since v1.6.0. Do not use it. -type CompareType = compareResult - -type compareResult int - -const ( - compareLess compareResult = iota - 1 - compareEqual - compareGreater -) - -var ( - intType = reflect.TypeOf(int(1)) - int8Type = reflect.TypeOf(int8(1)) - int16Type = reflect.TypeOf(int16(1)) - int32Type = reflect.TypeOf(int32(1)) - int64Type = reflect.TypeOf(int64(1)) - - uintType = reflect.TypeOf(uint(1)) - uint8Type = reflect.TypeOf(uint8(1)) - uint16Type = reflect.TypeOf(uint16(1)) - uint32Type = reflect.TypeOf(uint32(1)) - uint64Type = reflect.TypeOf(uint64(1)) - - uintptrType = reflect.TypeOf(uintptr(1)) - - float32Type = reflect.TypeOf(float32(1)) - float64Type = reflect.TypeOf(float64(1)) - - stringType = reflect.TypeOf("") - - timeType = reflect.TypeOf(time.Time{}) - bytesType = reflect.TypeOf([]byte{}) -) - -func compare(obj1, obj2 interface{}, kind reflect.Kind) (compareResult, bool) { - obj1Value := reflect.ValueOf(obj1) - obj2Value := reflect.ValueOf(obj2) - - // throughout this switch we try and avoid calling .Convert() if possible, - // as this has a pretty big performance impact - switch kind { - case reflect.Int: - { - intobj1, ok := obj1.(int) - if !ok { - intobj1 = obj1Value.Convert(intType).Interface().(int) - } - intobj2, ok := obj2.(int) - if !ok { - intobj2 = obj2Value.Convert(intType).Interface().(int) - } - if intobj1 > intobj2 { - return compareGreater, true - } - if intobj1 == intobj2 { - return compareEqual, true - } - if intobj1 < intobj2 { - return compareLess, true - } - } - case reflect.Int8: - { - int8obj1, ok := obj1.(int8) - if !ok { - int8obj1 = obj1Value.Convert(int8Type).Interface().(int8) - } - int8obj2, ok := obj2.(int8) - if !ok { - int8obj2 = obj2Value.Convert(int8Type).Interface().(int8) - } - if int8obj1 > int8obj2 { - return compareGreater, true - } - if int8obj1 == int8obj2 { - return compareEqual, true - } - if int8obj1 < int8obj2 { - return compareLess, true - } - } - case reflect.Int16: - { - int16obj1, ok := obj1.(int16) - if !ok { - int16obj1 = obj1Value.Convert(int16Type).Interface().(int16) - } - int16obj2, ok := obj2.(int16) - if !ok { - int16obj2 = obj2Value.Convert(int16Type).Interface().(int16) - } - if int16obj1 > int16obj2 { - return compareGreater, true - } - if int16obj1 == int16obj2 { - return compareEqual, true - } - if int16obj1 < int16obj2 { - return compareLess, true - } - } - case reflect.Int32: - { - int32obj1, ok := obj1.(int32) - if !ok { - int32obj1 = obj1Value.Convert(int32Type).Interface().(int32) - } - int32obj2, ok := obj2.(int32) - if !ok { - int32obj2 = obj2Value.Convert(int32Type).Interface().(int32) - } - if int32obj1 > int32obj2 { - return compareGreater, true - } - if int32obj1 == int32obj2 { - return compareEqual, true - } - if int32obj1 < int32obj2 { - return compareLess, true - } - } - case reflect.Int64: - { - int64obj1, ok := obj1.(int64) - if !ok { - int64obj1 = obj1Value.Convert(int64Type).Interface().(int64) - } - int64obj2, ok := obj2.(int64) - if !ok { - int64obj2 = obj2Value.Convert(int64Type).Interface().(int64) - } - if int64obj1 > int64obj2 { - return compareGreater, true - } - if int64obj1 == int64obj2 { - return compareEqual, true - } - if int64obj1 < int64obj2 { - return compareLess, true - } - } - case reflect.Uint: - { - uintobj1, ok := obj1.(uint) - if !ok { - uintobj1 = obj1Value.Convert(uintType).Interface().(uint) - } - uintobj2, ok := obj2.(uint) - if !ok { - uintobj2 = obj2Value.Convert(uintType).Interface().(uint) - } - if uintobj1 > uintobj2 { - return compareGreater, true - } - if uintobj1 == uintobj2 { - return compareEqual, true - } - if uintobj1 < uintobj2 { - return compareLess, true - } - } - case reflect.Uint8: - { - uint8obj1, ok := obj1.(uint8) - if !ok { - uint8obj1 = obj1Value.Convert(uint8Type).Interface().(uint8) - } - uint8obj2, ok := obj2.(uint8) - if !ok { - uint8obj2 = obj2Value.Convert(uint8Type).Interface().(uint8) - } - if uint8obj1 > uint8obj2 { - return compareGreater, true - } - if uint8obj1 == uint8obj2 { - return compareEqual, true - } - if uint8obj1 < uint8obj2 { - return compareLess, true - } - } - case reflect.Uint16: - { - uint16obj1, ok := obj1.(uint16) - if !ok { - uint16obj1 = obj1Value.Convert(uint16Type).Interface().(uint16) - } - uint16obj2, ok := obj2.(uint16) - if !ok { - uint16obj2 = obj2Value.Convert(uint16Type).Interface().(uint16) - } - if uint16obj1 > uint16obj2 { - return compareGreater, true - } - if uint16obj1 == uint16obj2 { - return compareEqual, true - } - if uint16obj1 < uint16obj2 { - return compareLess, true - } - } - case reflect.Uint32: - { - uint32obj1, ok := obj1.(uint32) - if !ok { - uint32obj1 = obj1Value.Convert(uint32Type).Interface().(uint32) - } - uint32obj2, ok := obj2.(uint32) - if !ok { - uint32obj2 = obj2Value.Convert(uint32Type).Interface().(uint32) - } - if uint32obj1 > uint32obj2 { - return compareGreater, true - } - if uint32obj1 == uint32obj2 { - return compareEqual, true - } - if uint32obj1 < uint32obj2 { - return compareLess, true - } - } - case reflect.Uint64: - { - uint64obj1, ok := obj1.(uint64) - if !ok { - uint64obj1 = obj1Value.Convert(uint64Type).Interface().(uint64) - } - uint64obj2, ok := obj2.(uint64) - if !ok { - uint64obj2 = obj2Value.Convert(uint64Type).Interface().(uint64) - } - if uint64obj1 > uint64obj2 { - return compareGreater, true - } - if uint64obj1 == uint64obj2 { - return compareEqual, true - } - if uint64obj1 < uint64obj2 { - return compareLess, true - } - } - case reflect.Float32: - { - float32obj1, ok := obj1.(float32) - if !ok { - float32obj1 = obj1Value.Convert(float32Type).Interface().(float32) - } - float32obj2, ok := obj2.(float32) - if !ok { - float32obj2 = obj2Value.Convert(float32Type).Interface().(float32) - } - if float32obj1 > float32obj2 { - return compareGreater, true - } - if float32obj1 == float32obj2 { - return compareEqual, true - } - if float32obj1 < float32obj2 { - return compareLess, true - } - } - case reflect.Float64: - { - float64obj1, ok := obj1.(float64) - if !ok { - float64obj1 = obj1Value.Convert(float64Type).Interface().(float64) - } - float64obj2, ok := obj2.(float64) - if !ok { - float64obj2 = obj2Value.Convert(float64Type).Interface().(float64) - } - if float64obj1 > float64obj2 { - return compareGreater, true - } - if float64obj1 == float64obj2 { - return compareEqual, true - } - if float64obj1 < float64obj2 { - return compareLess, true - } - } - case reflect.String: - { - stringobj1, ok := obj1.(string) - if !ok { - stringobj1 = obj1Value.Convert(stringType).Interface().(string) - } - stringobj2, ok := obj2.(string) - if !ok { - stringobj2 = obj2Value.Convert(stringType).Interface().(string) - } - if stringobj1 > stringobj2 { - return compareGreater, true - } - if stringobj1 == stringobj2 { - return compareEqual, true - } - if stringobj1 < stringobj2 { - return compareLess, true - } - } - // Check for known struct types we can check for compare results. - case reflect.Struct: - { - // All structs enter here. We're not interested in most types. - if !obj1Value.CanConvert(timeType) { - break - } - - // time.Time can be compared! - timeObj1, ok := obj1.(time.Time) - if !ok { - timeObj1 = obj1Value.Convert(timeType).Interface().(time.Time) - } - - timeObj2, ok := obj2.(time.Time) - if !ok { - timeObj2 = obj2Value.Convert(timeType).Interface().(time.Time) - } - - if timeObj1.Before(timeObj2) { - return compareLess, true - } - if timeObj1.Equal(timeObj2) { - return compareEqual, true - } - return compareGreater, true - } - case reflect.Slice: - { - // We only care about the []byte type. - if !obj1Value.CanConvert(bytesType) { - break - } - - // []byte can be compared! - bytesObj1, ok := obj1.([]byte) - if !ok { - bytesObj1 = obj1Value.Convert(bytesType).Interface().([]byte) - - } - bytesObj2, ok := obj2.([]byte) - if !ok { - bytesObj2 = obj2Value.Convert(bytesType).Interface().([]byte) - } - - return compareResult(bytes.Compare(bytesObj1, bytesObj2)), true - } - case reflect.Uintptr: - { - uintptrObj1, ok := obj1.(uintptr) - if !ok { - uintptrObj1 = obj1Value.Convert(uintptrType).Interface().(uintptr) - } - uintptrObj2, ok := obj2.(uintptr) - if !ok { - uintptrObj2 = obj2Value.Convert(uintptrType).Interface().(uintptr) - } - if uintptrObj1 > uintptrObj2 { - return compareGreater, true - } - if uintptrObj1 == uintptrObj2 { - return compareEqual, true - } - if uintptrObj1 < uintptrObj2 { - return compareLess, true - } - } - } - - return compareEqual, false -} - -// Greater asserts that the first element is greater than the second -// -// assert.Greater(t, 2, 1) -// assert.Greater(t, float64(2), float64(1)) -// assert.Greater(t, "b", "a") -func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - failMessage := fmt.Sprintf("\"%v\" is not greater than \"%v\"", e1, e2) - return compareTwoValues(t, e1, e2, []compareResult{compareGreater}, failMessage, msgAndArgs...) -} - -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// assert.GreaterOrEqual(t, 2, 1) -// assert.GreaterOrEqual(t, 2, 2) -// assert.GreaterOrEqual(t, "b", "a") -// assert.GreaterOrEqual(t, "b", "b") -func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - failMessage := fmt.Sprintf("\"%v\" is not greater than or equal to \"%v\"", e1, e2) - return compareTwoValues(t, e1, e2, []compareResult{compareGreater, compareEqual}, failMessage, msgAndArgs...) -} - -// Less asserts that the first element is less than the second -// -// assert.Less(t, 1, 2) -// assert.Less(t, float64(1), float64(2)) -// assert.Less(t, "a", "b") -func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - failMessage := fmt.Sprintf("\"%v\" is not less than \"%v\"", e1, e2) - return compareTwoValues(t, e1, e2, []compareResult{compareLess}, failMessage, msgAndArgs...) -} - -// LessOrEqual asserts that the first element is less than or equal to the second -// -// assert.LessOrEqual(t, 1, 2) -// assert.LessOrEqual(t, 2, 2) -// assert.LessOrEqual(t, "a", "b") -// assert.LessOrEqual(t, "b", "b") -func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - failMessage := fmt.Sprintf("\"%v\" is not less than or equal to \"%v\"", e1, e2) - return compareTwoValues(t, e1, e2, []compareResult{compareLess, compareEqual}, failMessage, msgAndArgs...) -} - -// Positive asserts that the specified element is positive -// -// assert.Positive(t, 1) -// assert.Positive(t, 1.23) -func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - zero := reflect.Zero(reflect.TypeOf(e)) - failMessage := fmt.Sprintf("\"%v\" is not positive", e) - return compareTwoValues(t, e, zero.Interface(), []compareResult{compareGreater}, failMessage, msgAndArgs...) -} - -// Negative asserts that the specified element is negative -// -// assert.Negative(t, -1) -// assert.Negative(t, -1.23) -func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - zero := reflect.Zero(reflect.TypeOf(e)) - failMessage := fmt.Sprintf("\"%v\" is not negative", e) - return compareTwoValues(t, e, zero.Interface(), []compareResult{compareLess}, failMessage, msgAndArgs...) -} - -func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []compareResult, failMessage string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - e1Kind := reflect.ValueOf(e1).Kind() - e2Kind := reflect.ValueOf(e2).Kind() - if e1Kind != e2Kind { - return Fail(t, "Elements should be the same type", msgAndArgs...) - } - - compareResult, isComparable := compare(e1, e2, e1Kind) - if !isComparable { - return Fail(t, fmt.Sprintf(`Can not compare type "%T"`, e1), msgAndArgs...) - } - - if !containsValue(allowedComparesResults, compareResult) { - return Fail(t, failMessage, msgAndArgs...) - } - - return true -} - -func containsValue(values []compareResult, value compareResult) bool { - for _, v := range values { - if v == value { - return true - } - } - - return false -} diff --git a/vendor/github.com/stretchr/testify/assert/assertion_format.go b/vendor/github.com/stretchr/testify/assert/assertion_format.go deleted file mode 100644 index c592f6a..0000000 --- a/vendor/github.com/stretchr/testify/assert/assertion_format.go +++ /dev/null @@ -1,866 +0,0 @@ -// Code generated with github.com/stretchr/testify/_codegen; DO NOT EDIT. - -package assert - -import ( - http "net/http" - url "net/url" - time "time" -) - -// Conditionf uses a Comparison to assert a complex condition. -func Conditionf(t TestingT, comp Comparison, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Condition(t, comp, append([]interface{}{msg}, args...)...) -} - -// Containsf asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// assert.Containsf(t, "Hello World", "World", "error message %s", "formatted") -// assert.Containsf(t, ["Hello", "World"], "World", "error message %s", "formatted") -// assert.Containsf(t, {"Hello": "World"}, "Hello", "error message %s", "formatted") -func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Contains(t, s, contains, append([]interface{}{msg}, args...)...) -} - -// DirExistsf checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func DirExistsf(t TestingT, path string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return DirExists(t, path, append([]interface{}{msg}, args...)...) -} - -// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// assert.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") -func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return ElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...) -} - -// Emptyf asserts that the given value is "empty". -// -// [Zero values] are "empty". -// -// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). -// -// Slices, maps and channels with zero length are "empty". -// -// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". -// -// assert.Emptyf(t, obj, "error message %s", "formatted") -// -// [Zero values]: https://go.dev/ref/spec#The_zero_value -func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Empty(t, object, append([]interface{}{msg}, args...)...) -} - -// Equalf asserts that two objects are equal. -// -// assert.Equalf(t, 123, 123, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Equal(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// EqualErrorf asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// assert.EqualErrorf(t, err, expectedErrorString, "error message %s", "formatted") -func EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return EqualError(t, theError, errString, append([]interface{}{msg}, args...)...) -} - -// EqualExportedValuesf asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// assert.EqualExportedValuesf(t, S{1, 2}, S{1, 3}, "error message %s", "formatted") => true -// assert.EqualExportedValuesf(t, S{1, 2}, S{2, 3}, "error message %s", "formatted") => false -func EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return EqualExportedValues(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// EqualValuesf asserts that two objects are equal or convertible to the larger -// type and equal. -// -// assert.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") -func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return EqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Errorf asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// assert.Errorf(t, err, "error message %s", "formatted") -func Errorf(t TestingT, err error, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Error(t, err, append([]interface{}{msg}, args...)...) -} - -// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return ErrorAs(t, err, target, append([]interface{}{msg}, args...)...) -} - -// ErrorContainsf asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// assert.ErrorContainsf(t, err, expectedErrorSubString, "error message %s", "formatted") -func ErrorContainsf(t TestingT, theError error, contains string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return ErrorContains(t, theError, contains, append([]interface{}{msg}, args...)...) -} - -// ErrorIsf asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return ErrorIs(t, err, target, append([]interface{}{msg}, args...)...) -} - -// Eventuallyf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// assert.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Eventually(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) -} - -// EventuallyWithTf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// assert.EventuallyWithTf(t, func(c *assert.CollectT, "error message %s", "formatted") { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") -func EventuallyWithTf(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return EventuallyWithT(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) -} - -// Exactlyf asserts that two objects are equal in value and type. -// -// assert.Exactlyf(t, int32(123), int64(123), "error message %s", "formatted") -func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Exactly(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Failf reports a failure through -func Failf(t TestingT, failureMessage string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, failureMessage, append([]interface{}{msg}, args...)...) -} - -// FailNowf fails test -func FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return FailNow(t, failureMessage, append([]interface{}{msg}, args...)...) -} - -// Falsef asserts that the specified value is false. -// -// assert.Falsef(t, myBool, "error message %s", "formatted") -func Falsef(t TestingT, value bool, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return False(t, value, append([]interface{}{msg}, args...)...) -} - -// FileExistsf checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func FileExistsf(t TestingT, path string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return FileExists(t, path, append([]interface{}{msg}, args...)...) -} - -// Greaterf asserts that the first element is greater than the second -// -// assert.Greaterf(t, 2, 1, "error message %s", "formatted") -// assert.Greaterf(t, float64(2), float64(1), "error message %s", "formatted") -// assert.Greaterf(t, "b", "a", "error message %s", "formatted") -func Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Greater(t, e1, e2, append([]interface{}{msg}, args...)...) -} - -// GreaterOrEqualf asserts that the first element is greater than or equal to the second -// -// assert.GreaterOrEqualf(t, 2, 1, "error message %s", "formatted") -// assert.GreaterOrEqualf(t, 2, 2, "error message %s", "formatted") -// assert.GreaterOrEqualf(t, "b", "a", "error message %s", "formatted") -// assert.GreaterOrEqualf(t, "b", "b", "error message %s", "formatted") -func GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return GreaterOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...) -} - -// HTTPBodyContainsf asserts that a specified handler returns a -// body that contains a string. -// -// assert.HTTPBodyContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPBodyContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...) -} - -// HTTPBodyNotContainsf asserts that a specified handler returns a -// body that does not contain a string. -// -// assert.HTTPBodyNotContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPBodyNotContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...) -} - -// HTTPErrorf asserts that a specified handler returns an error status code. -// -// assert.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPError(t, handler, method, url, values, append([]interface{}{msg}, args...)...) -} - -// HTTPRedirectf asserts that a specified handler returns a redirect status code. -// -// assert.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPRedirect(t, handler, method, url, values, append([]interface{}{msg}, args...)...) -} - -// HTTPStatusCodef asserts that a specified handler returns a specified status code. -// -// assert.HTTPStatusCodef(t, myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPStatusCode(t, handler, method, url, values, statuscode, append([]interface{}{msg}, args...)...) -} - -// HTTPSuccessf asserts that a specified handler returns a success status code. -// -// assert.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return HTTPSuccess(t, handler, method, url, values, append([]interface{}{msg}, args...)...) -} - -// Implementsf asserts that an object is implemented by the specified interface. -// -// assert.Implementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Implements(t, interfaceObject, object, append([]interface{}{msg}, args...)...) -} - -// InDeltaf asserts that the two numerals are within delta of each other. -// -// assert.InDeltaf(t, math.Pi, 22/7.0, 0.01, "error message %s", "formatted") -func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InDelta(t, expected, actual, delta, append([]interface{}{msg}, args...)...) -} - -// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InDeltaMapValues(t, expected, actual, delta, append([]interface{}{msg}, args...)...) -} - -// InDeltaSlicef is the same as InDelta, except it compares two slices. -func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InDeltaSlice(t, expected, actual, delta, append([]interface{}{msg}, args...)...) -} - -// InEpsilonf asserts that expected and actual have a relative error less than epsilon -func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InEpsilon(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...) -} - -// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. -func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return InEpsilonSlice(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...) -} - -// IsDecreasingf asserts that the collection is decreasing -// -// assert.IsDecreasingf(t, []int{2, 1, 0}, "error message %s", "formatted") -// assert.IsDecreasingf(t, []float{2, 1}, "error message %s", "formatted") -// assert.IsDecreasingf(t, []string{"b", "a"}, "error message %s", "formatted") -func IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsDecreasing(t, object, append([]interface{}{msg}, args...)...) -} - -// IsIncreasingf asserts that the collection is increasing -// -// assert.IsIncreasingf(t, []int{1, 2, 3}, "error message %s", "formatted") -// assert.IsIncreasingf(t, []float{1, 2}, "error message %s", "formatted") -// assert.IsIncreasingf(t, []string{"a", "b"}, "error message %s", "formatted") -func IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsIncreasing(t, object, append([]interface{}{msg}, args...)...) -} - -// IsNonDecreasingf asserts that the collection is not decreasing -// -// assert.IsNonDecreasingf(t, []int{1, 1, 2}, "error message %s", "formatted") -// assert.IsNonDecreasingf(t, []float{1, 2}, "error message %s", "formatted") -// assert.IsNonDecreasingf(t, []string{"a", "b"}, "error message %s", "formatted") -func IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsNonDecreasing(t, object, append([]interface{}{msg}, args...)...) -} - -// IsNonIncreasingf asserts that the collection is not increasing -// -// assert.IsNonIncreasingf(t, []int{2, 1, 1}, "error message %s", "formatted") -// assert.IsNonIncreasingf(t, []float{2, 1}, "error message %s", "formatted") -// assert.IsNonIncreasingf(t, []string{"b", "a"}, "error message %s", "formatted") -func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsNonIncreasing(t, object, append([]interface{}{msg}, args...)...) -} - -// IsNotTypef asserts that the specified objects are not of the same type. -// -// assert.IsNotTypef(t, &NotMyStruct{}, &MyStruct{}, "error message %s", "formatted") -func IsNotTypef(t TestingT, theType interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsNotType(t, theType, object, append([]interface{}{msg}, args...)...) -} - -// IsTypef asserts that the specified objects are of the same type. -// -// assert.IsTypef(t, &MyStruct{}, &MyStruct{}, "error message %s", "formatted") -func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return IsType(t, expectedType, object, append([]interface{}{msg}, args...)...) -} - -// JSONEqf asserts that two JSON strings are equivalent. -// -// assert.JSONEqf(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") -func JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return JSONEq(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Lenf asserts that the specified object has specific length. -// Lenf also fails if the object has a type that len() not accept. -// -// assert.Lenf(t, mySlice, 3, "error message %s", "formatted") -func Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Len(t, object, length, append([]interface{}{msg}, args...)...) -} - -// Lessf asserts that the first element is less than the second -// -// assert.Lessf(t, 1, 2, "error message %s", "formatted") -// assert.Lessf(t, float64(1), float64(2), "error message %s", "formatted") -// assert.Lessf(t, "a", "b", "error message %s", "formatted") -func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Less(t, e1, e2, append([]interface{}{msg}, args...)...) -} - -// LessOrEqualf asserts that the first element is less than or equal to the second -// -// assert.LessOrEqualf(t, 1, 2, "error message %s", "formatted") -// assert.LessOrEqualf(t, 2, 2, "error message %s", "formatted") -// assert.LessOrEqualf(t, "a", "b", "error message %s", "formatted") -// assert.LessOrEqualf(t, "b", "b", "error message %s", "formatted") -func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return LessOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...) -} - -// Negativef asserts that the specified element is negative -// -// assert.Negativef(t, -1, "error message %s", "formatted") -// assert.Negativef(t, -1.23, "error message %s", "formatted") -func Negativef(t TestingT, e interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Negative(t, e, append([]interface{}{msg}, args...)...) -} - -// Neverf asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// assert.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Never(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) -} - -// Nilf asserts that the specified object is nil. -// -// assert.Nilf(t, err, "error message %s", "formatted") -func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Nil(t, object, append([]interface{}{msg}, args...)...) -} - -// NoDirExistsf checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NoDirExists(t, path, append([]interface{}{msg}, args...)...) -} - -// NoErrorf asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if assert.NoErrorf(t, err, "error message %s", "formatted") { -// assert.Equal(t, expectedObj, actualObj) -// } -func NoErrorf(t TestingT, err error, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NoError(t, err, append([]interface{}{msg}, args...)...) -} - -// NoFileExistsf checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NoFileExists(t, path, append([]interface{}{msg}, args...)...) -} - -// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// assert.NotContainsf(t, "Hello World", "Earth", "error message %s", "formatted") -// assert.NotContainsf(t, ["Hello", "World"], "Earth", "error message %s", "formatted") -// assert.NotContainsf(t, {"Hello": "World"}, "Earth", "error message %s", "formatted") -func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotContains(t, s, contains, append([]interface{}{msg}, args...)...) -} - -// NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should not match. -// This is an inverse of ElementsMatch. -// -// assert.NotElementsMatchf(t, [1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false -// -// assert.NotElementsMatchf(t, [1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true -// -// assert.NotElementsMatchf(t, [1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true -func NotElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...) -} - -// NotEmptyf asserts that the specified object is NOT [Empty]. -// -// if assert.NotEmptyf(t, obj, "error message %s", "formatted") { -// assert.Equal(t, "two", obj[1]) -// } -func NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotEmpty(t, object, append([]interface{}{msg}, args...)...) -} - -// NotEqualf asserts that the specified values are NOT equal. -// -// assert.NotEqualf(t, obj1, obj2, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotEqual(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// NotEqualValuesf asserts that two objects are not equal even when converted to the same type -// -// assert.NotEqualValuesf(t, obj1, obj2, "error message %s", "formatted") -func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotEqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// NotErrorAsf asserts that none of the errors in err's chain matches target, -// but if so, sets target to that error value. -func NotErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotErrorAs(t, err, target, append([]interface{}{msg}, args...)...) -} - -// NotErrorIsf asserts that none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotErrorIs(t, err, target, append([]interface{}{msg}, args...)...) -} - -// NotImplementsf asserts that an object does not implement the specified interface. -// -// assert.NotImplementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func NotImplementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotImplements(t, interfaceObject, object, append([]interface{}{msg}, args...)...) -} - -// NotNilf asserts that the specified object is not nil. -// -// assert.NotNilf(t, err, "error message %s", "formatted") -func NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotNil(t, object, append([]interface{}{msg}, args...)...) -} - -// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// assert.NotPanicsf(t, func(){ RemainCalm() }, "error message %s", "formatted") -func NotPanicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotPanics(t, f, append([]interface{}{msg}, args...)...) -} - -// NotRegexpf asserts that a specified regexp does not match a string. -// -// assert.NotRegexpf(t, regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") -// assert.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted") -func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotRegexp(t, rx, str, append([]interface{}{msg}, args...)...) -} - -// NotSamef asserts that two pointers do not reference the same object. -// -// assert.NotSamef(t, ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotSame(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// NotSubsetf asserts that the list (array, slice, or map) does NOT contain all -// elements given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// assert.NotSubsetf(t, [1, 3, 4], [1, 2], "error message %s", "formatted") -// assert.NotSubsetf(t, {"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted") -// assert.NotSubsetf(t, [1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted") -// assert.NotSubsetf(t, {"x": 1, "y": 2}, ["z"], "error message %s", "formatted") -func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotSubset(t, list, subset, append([]interface{}{msg}, args...)...) -} - -// NotZerof asserts that i is not the zero value for its type. -func NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return NotZero(t, i, append([]interface{}{msg}, args...)...) -} - -// Panicsf asserts that the code inside the specified PanicTestFunc panics. -// -// assert.Panicsf(t, func(){ GoCrazy() }, "error message %s", "formatted") -func Panicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Panics(t, f, append([]interface{}{msg}, args...)...) -} - -// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// assert.PanicsWithErrorf(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func PanicsWithErrorf(t TestingT, errString string, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return PanicsWithError(t, errString, f, append([]interface{}{msg}, args...)...) -} - -// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// assert.PanicsWithValuef(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func PanicsWithValuef(t TestingT, expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return PanicsWithValue(t, expected, f, append([]interface{}{msg}, args...)...) -} - -// Positivef asserts that the specified element is positive -// -// assert.Positivef(t, 1, "error message %s", "formatted") -// assert.Positivef(t, 1.23, "error message %s", "formatted") -func Positivef(t TestingT, e interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Positive(t, e, append([]interface{}{msg}, args...)...) -} - -// Regexpf asserts that a specified regexp matches a string. -// -// assert.Regexpf(t, regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") -// assert.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted") -func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Regexp(t, rx, str, append([]interface{}{msg}, args...)...) -} - -// Samef asserts that two pointers reference the same object. -// -// assert.Samef(t, ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func Samef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Same(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Subsetf asserts that the list (array, slice, or map) contains all elements -// given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// assert.Subsetf(t, [1, 2, 3], [1, 2], "error message %s", "formatted") -// assert.Subsetf(t, {"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted") -// assert.Subsetf(t, [1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted") -// assert.Subsetf(t, {"x": 1, "y": 2}, ["x"], "error message %s", "formatted") -func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Subset(t, list, subset, append([]interface{}{msg}, args...)...) -} - -// Truef asserts that the specified value is true. -// -// assert.Truef(t, myBool, "error message %s", "formatted") -func Truef(t TestingT, value bool, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return True(t, value, append([]interface{}{msg}, args...)...) -} - -// WithinDurationf asserts that the two times are within duration delta of each other. -// -// assert.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") -func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return WithinDuration(t, expected, actual, delta, append([]interface{}{msg}, args...)...) -} - -// WithinRangef asserts that a time is within a time range (inclusive). -// -// assert.WithinRangef(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") -func WithinRangef(t TestingT, actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return WithinRange(t, actual, start, end, append([]interface{}{msg}, args...)...) -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return YAMLEq(t, expected, actual, append([]interface{}{msg}, args...)...) -} - -// Zerof asserts that i is the zero value for its type. -func Zerof(t TestingT, i interface{}, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Zero(t, i, append([]interface{}{msg}, args...)...) -} diff --git a/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl b/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl deleted file mode 100644 index d2bb0b8..0000000 --- a/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -{{.CommentFormat}} -func {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool { - if h, ok := t.(tHelper); ok { h.Helper() } - return {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}}) -} diff --git a/vendor/github.com/stretchr/testify/assert/assertion_forward.go b/vendor/github.com/stretchr/testify/assert/assertion_forward.go deleted file mode 100644 index 58db928..0000000 --- a/vendor/github.com/stretchr/testify/assert/assertion_forward.go +++ /dev/null @@ -1,1723 +0,0 @@ -// Code generated with github.com/stretchr/testify/_codegen; DO NOT EDIT. - -package assert - -import ( - http "net/http" - url "net/url" - time "time" -) - -// Condition uses a Comparison to assert a complex condition. -func (a *Assertions) Condition(comp Comparison, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Condition(a.t, comp, msgAndArgs...) -} - -// Conditionf uses a Comparison to assert a complex condition. -func (a *Assertions) Conditionf(comp Comparison, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Conditionf(a.t, comp, msg, args...) -} - -// Contains asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// a.Contains("Hello World", "World") -// a.Contains(["Hello", "World"], "World") -// a.Contains({"Hello": "World"}, "Hello") -func (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Contains(a.t, s, contains, msgAndArgs...) -} - -// Containsf asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// a.Containsf("Hello World", "World", "error message %s", "formatted") -// a.Containsf(["Hello", "World"], "World", "error message %s", "formatted") -// a.Containsf({"Hello": "World"}, "Hello", "error message %s", "formatted") -func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Containsf(a.t, s, contains, msg, args...) -} - -// DirExists checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return DirExists(a.t, path, msgAndArgs...) -} - -// DirExistsf checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return DirExistsf(a.t, path, msg, args...) -} - -// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2]) -func (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ElementsMatch(a.t, listA, listB, msgAndArgs...) -} - -// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") -func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ElementsMatchf(a.t, listA, listB, msg, args...) -} - -// Empty asserts that the given value is "empty". -// -// [Zero values] are "empty". -// -// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). -// -// Slices, maps and channels with zero length are "empty". -// -// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". -// -// a.Empty(obj) -// -// [Zero values]: https://go.dev/ref/spec#The_zero_value -func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Empty(a.t, object, msgAndArgs...) -} - -// Emptyf asserts that the given value is "empty". -// -// [Zero values] are "empty". -// -// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). -// -// Slices, maps and channels with zero length are "empty". -// -// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". -// -// a.Emptyf(obj, "error message %s", "formatted") -// -// [Zero values]: https://go.dev/ref/spec#The_zero_value -func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Emptyf(a.t, object, msg, args...) -} - -// Equal asserts that two objects are equal. -// -// a.Equal(123, 123) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Equal(a.t, expected, actual, msgAndArgs...) -} - -// EqualError asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// a.EqualError(err, expectedErrorString) -func (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualError(a.t, theError, errString, msgAndArgs...) -} - -// EqualErrorf asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// a.EqualErrorf(err, expectedErrorString, "error message %s", "formatted") -func (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualErrorf(a.t, theError, errString, msg, args...) -} - -// EqualExportedValues asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// a.EqualExportedValues(S{1, 2}, S{1, 3}) => true -// a.EqualExportedValues(S{1, 2}, S{2, 3}) => false -func (a *Assertions) EqualExportedValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualExportedValues(a.t, expected, actual, msgAndArgs...) -} - -// EqualExportedValuesf asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// a.EqualExportedValuesf(S{1, 2}, S{1, 3}, "error message %s", "formatted") => true -// a.EqualExportedValuesf(S{1, 2}, S{2, 3}, "error message %s", "formatted") => false -func (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualExportedValuesf(a.t, expected, actual, msg, args...) -} - -// EqualValues asserts that two objects are equal or convertible to the larger -// type and equal. -// -// a.EqualValues(uint32(123), int32(123)) -func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualValues(a.t, expected, actual, msgAndArgs...) -} - -// EqualValuesf asserts that two objects are equal or convertible to the larger -// type and equal. -// -// a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") -func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EqualValuesf(a.t, expected, actual, msg, args...) -} - -// Equalf asserts that two objects are equal. -// -// a.Equalf(123, 123, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Equalf(a.t, expected, actual, msg, args...) -} - -// Error asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// a.Error(err) -func (a *Assertions) Error(err error, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Error(a.t, err, msgAndArgs...) -} - -// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorAs(a.t, err, target, msgAndArgs...) -} - -// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorAsf(a.t, err, target, msg, args...) -} - -// ErrorContains asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// a.ErrorContains(err, expectedErrorSubString) -func (a *Assertions) ErrorContains(theError error, contains string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorContains(a.t, theError, contains, msgAndArgs...) -} - -// ErrorContainsf asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// a.ErrorContainsf(err, expectedErrorSubString, "error message %s", "formatted") -func (a *Assertions) ErrorContainsf(theError error, contains string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorContainsf(a.t, theError, contains, msg, args...) -} - -// ErrorIs asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorIs(a.t, err, target, msgAndArgs...) -} - -// ErrorIsf asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return ErrorIsf(a.t, err, target, msg, args...) -} - -// Errorf asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// a.Errorf(err, "error message %s", "formatted") -func (a *Assertions) Errorf(err error, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Errorf(a.t, err, msg, args...) -} - -// Eventually asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// a.Eventually(func() bool { return true; }, time.Second, 10*time.Millisecond) -func (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Eventually(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// EventuallyWithT asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// a.EventuallyWithT(func(c *assert.CollectT) { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") -func (a *Assertions) EventuallyWithT(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EventuallyWithT(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// EventuallyWithTf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// a.EventuallyWithTf(func(c *assert.CollectT, "error message %s", "formatted") { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") -func (a *Assertions) EventuallyWithTf(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return EventuallyWithTf(a.t, condition, waitFor, tick, msg, args...) -} - -// Eventuallyf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// a.Eventuallyf(func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func (a *Assertions) Eventuallyf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Eventuallyf(a.t, condition, waitFor, tick, msg, args...) -} - -// Exactly asserts that two objects are equal in value and type. -// -// a.Exactly(int32(123), int64(123)) -func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Exactly(a.t, expected, actual, msgAndArgs...) -} - -// Exactlyf asserts that two objects are equal in value and type. -// -// a.Exactlyf(int32(123), int64(123), "error message %s", "formatted") -func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Exactlyf(a.t, expected, actual, msg, args...) -} - -// Fail reports a failure through -func (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Fail(a.t, failureMessage, msgAndArgs...) -} - -// FailNow fails test -func (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return FailNow(a.t, failureMessage, msgAndArgs...) -} - -// FailNowf fails test -func (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return FailNowf(a.t, failureMessage, msg, args...) -} - -// Failf reports a failure through -func (a *Assertions) Failf(failureMessage string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Failf(a.t, failureMessage, msg, args...) -} - -// False asserts that the specified value is false. -// -// a.False(myBool) -func (a *Assertions) False(value bool, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return False(a.t, value, msgAndArgs...) -} - -// Falsef asserts that the specified value is false. -// -// a.Falsef(myBool, "error message %s", "formatted") -func (a *Assertions) Falsef(value bool, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Falsef(a.t, value, msg, args...) -} - -// FileExists checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return FileExists(a.t, path, msgAndArgs...) -} - -// FileExistsf checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return FileExistsf(a.t, path, msg, args...) -} - -// Greater asserts that the first element is greater than the second -// -// a.Greater(2, 1) -// a.Greater(float64(2), float64(1)) -// a.Greater("b", "a") -func (a *Assertions) Greater(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Greater(a.t, e1, e2, msgAndArgs...) -} - -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// a.GreaterOrEqual(2, 1) -// a.GreaterOrEqual(2, 2) -// a.GreaterOrEqual("b", "a") -// a.GreaterOrEqual("b", "b") -func (a *Assertions) GreaterOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return GreaterOrEqual(a.t, e1, e2, msgAndArgs...) -} - -// GreaterOrEqualf asserts that the first element is greater than or equal to the second -// -// a.GreaterOrEqualf(2, 1, "error message %s", "formatted") -// a.GreaterOrEqualf(2, 2, "error message %s", "formatted") -// a.GreaterOrEqualf("b", "a", "error message %s", "formatted") -// a.GreaterOrEqualf("b", "b", "error message %s", "formatted") -func (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return GreaterOrEqualf(a.t, e1, e2, msg, args...) -} - -// Greaterf asserts that the first element is greater than the second -// -// a.Greaterf(2, 1, "error message %s", "formatted") -// a.Greaterf(float64(2), float64(1), "error message %s", "formatted") -// a.Greaterf("b", "a", "error message %s", "formatted") -func (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Greaterf(a.t, e1, e2, msg, args...) -} - -// HTTPBodyContains asserts that a specified handler returns a -// body that contains a string. -// -// a.HTTPBodyContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPBodyContains(a.t, handler, method, url, values, str, msgAndArgs...) -} - -// HTTPBodyContainsf asserts that a specified handler returns a -// body that contains a string. -// -// a.HTTPBodyContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPBodyContainsf(a.t, handler, method, url, values, str, msg, args...) -} - -// HTTPBodyNotContains asserts that a specified handler returns a -// body that does not contain a string. -// -// a.HTTPBodyNotContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPBodyNotContains(a.t, handler, method, url, values, str, msgAndArgs...) -} - -// HTTPBodyNotContainsf asserts that a specified handler returns a -// body that does not contain a string. -// -// a.HTTPBodyNotContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPBodyNotContainsf(a.t, handler, method, url, values, str, msg, args...) -} - -// HTTPError asserts that a specified handler returns an error status code. -// -// a.HTTPError(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPError(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPErrorf asserts that a specified handler returns an error status code. -// -// a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPErrorf(a.t, handler, method, url, values, msg, args...) -} - -// HTTPRedirect asserts that a specified handler returns a redirect status code. -// -// a.HTTPRedirect(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPRedirect(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPRedirectf asserts that a specified handler returns a redirect status code. -// -// a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPRedirectf(a.t, handler, method, url, values, msg, args...) -} - -// HTTPStatusCode asserts that a specified handler returns a specified status code. -// -// a.HTTPStatusCode(myHandler, "GET", "/notImplemented", nil, 501) -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPStatusCode(a.t, handler, method, url, values, statuscode, msgAndArgs...) -} - -// HTTPStatusCodef asserts that a specified handler returns a specified status code. -// -// a.HTTPStatusCodef(myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPStatusCodef(a.t, handler, method, url, values, statuscode, msg, args...) -} - -// HTTPSuccess asserts that a specified handler returns a success status code. -// -// a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil) -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPSuccess(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPSuccessf asserts that a specified handler returns a success status code. -// -// a.HTTPSuccessf(myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return HTTPSuccessf(a.t, handler, method, url, values, msg, args...) -} - -// Implements asserts that an object is implemented by the specified interface. -// -// a.Implements((*MyInterface)(nil), new(MyObject)) -func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Implements(a.t, interfaceObject, object, msgAndArgs...) -} - -// Implementsf asserts that an object is implemented by the specified interface. -// -// a.Implementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Implementsf(a.t, interfaceObject, object, msg, args...) -} - -// InDelta asserts that the two numerals are within delta of each other. -// -// a.InDelta(math.Pi, 22/7.0, 0.01) -func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDelta(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaMapValues(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaMapValuesf(a.t, expected, actual, delta, msg, args...) -} - -// InDeltaSlice is the same as InDelta, except it compares two slices. -func (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaSlice(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaSlicef is the same as InDelta, except it compares two slices. -func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaSlicef(a.t, expected, actual, delta, msg, args...) -} - -// InDeltaf asserts that the two numerals are within delta of each other. -// -// a.InDeltaf(math.Pi, 22/7.0, 0.01, "error message %s", "formatted") -func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InDeltaf(a.t, expected, actual, delta, msg, args...) -} - -// InEpsilon asserts that expected and actual have a relative error less than epsilon -func (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InEpsilon(a.t, expected, actual, epsilon, msgAndArgs...) -} - -// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices. -func (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InEpsilonSlice(a.t, expected, actual, epsilon, msgAndArgs...) -} - -// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. -func (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InEpsilonSlicef(a.t, expected, actual, epsilon, msg, args...) -} - -// InEpsilonf asserts that expected and actual have a relative error less than epsilon -func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return InEpsilonf(a.t, expected, actual, epsilon, msg, args...) -} - -// IsDecreasing asserts that the collection is decreasing -// -// a.IsDecreasing([]int{2, 1, 0}) -// a.IsDecreasing([]float{2, 1}) -// a.IsDecreasing([]string{"b", "a"}) -func (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsDecreasing(a.t, object, msgAndArgs...) -} - -// IsDecreasingf asserts that the collection is decreasing -// -// a.IsDecreasingf([]int{2, 1, 0}, "error message %s", "formatted") -// a.IsDecreasingf([]float{2, 1}, "error message %s", "formatted") -// a.IsDecreasingf([]string{"b", "a"}, "error message %s", "formatted") -func (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsDecreasingf(a.t, object, msg, args...) -} - -// IsIncreasing asserts that the collection is increasing -// -// a.IsIncreasing([]int{1, 2, 3}) -// a.IsIncreasing([]float{1, 2}) -// a.IsIncreasing([]string{"a", "b"}) -func (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsIncreasing(a.t, object, msgAndArgs...) -} - -// IsIncreasingf asserts that the collection is increasing -// -// a.IsIncreasingf([]int{1, 2, 3}, "error message %s", "formatted") -// a.IsIncreasingf([]float{1, 2}, "error message %s", "formatted") -// a.IsIncreasingf([]string{"a", "b"}, "error message %s", "formatted") -func (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsIncreasingf(a.t, object, msg, args...) -} - -// IsNonDecreasing asserts that the collection is not decreasing -// -// a.IsNonDecreasing([]int{1, 1, 2}) -// a.IsNonDecreasing([]float{1, 2}) -// a.IsNonDecreasing([]string{"a", "b"}) -func (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNonDecreasing(a.t, object, msgAndArgs...) -} - -// IsNonDecreasingf asserts that the collection is not decreasing -// -// a.IsNonDecreasingf([]int{1, 1, 2}, "error message %s", "formatted") -// a.IsNonDecreasingf([]float{1, 2}, "error message %s", "formatted") -// a.IsNonDecreasingf([]string{"a", "b"}, "error message %s", "formatted") -func (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNonDecreasingf(a.t, object, msg, args...) -} - -// IsNonIncreasing asserts that the collection is not increasing -// -// a.IsNonIncreasing([]int{2, 1, 1}) -// a.IsNonIncreasing([]float{2, 1}) -// a.IsNonIncreasing([]string{"b", "a"}) -func (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNonIncreasing(a.t, object, msgAndArgs...) -} - -// IsNonIncreasingf asserts that the collection is not increasing -// -// a.IsNonIncreasingf([]int{2, 1, 1}, "error message %s", "formatted") -// a.IsNonIncreasingf([]float{2, 1}, "error message %s", "formatted") -// a.IsNonIncreasingf([]string{"b", "a"}, "error message %s", "formatted") -func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNonIncreasingf(a.t, object, msg, args...) -} - -// IsNotType asserts that the specified objects are not of the same type. -// -// a.IsNotType(&NotMyStruct{}, &MyStruct{}) -func (a *Assertions) IsNotType(theType interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNotType(a.t, theType, object, msgAndArgs...) -} - -// IsNotTypef asserts that the specified objects are not of the same type. -// -// a.IsNotTypef(&NotMyStruct{}, &MyStruct{}, "error message %s", "formatted") -func (a *Assertions) IsNotTypef(theType interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsNotTypef(a.t, theType, object, msg, args...) -} - -// IsType asserts that the specified objects are of the same type. -// -// a.IsType(&MyStruct{}, &MyStruct{}) -func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsType(a.t, expectedType, object, msgAndArgs...) -} - -// IsTypef asserts that the specified objects are of the same type. -// -// a.IsTypef(&MyStruct{}, &MyStruct{}, "error message %s", "formatted") -func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return IsTypef(a.t, expectedType, object, msg, args...) -} - -// JSONEq asserts that two JSON strings are equivalent. -// -// a.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) -func (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return JSONEq(a.t, expected, actual, msgAndArgs...) -} - -// JSONEqf asserts that two JSON strings are equivalent. -// -// a.JSONEqf(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") -func (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return JSONEqf(a.t, expected, actual, msg, args...) -} - -// Len asserts that the specified object has specific length. -// Len also fails if the object has a type that len() not accept. -// -// a.Len(mySlice, 3) -func (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Len(a.t, object, length, msgAndArgs...) -} - -// Lenf asserts that the specified object has specific length. -// Lenf also fails if the object has a type that len() not accept. -// -// a.Lenf(mySlice, 3, "error message %s", "formatted") -func (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Lenf(a.t, object, length, msg, args...) -} - -// Less asserts that the first element is less than the second -// -// a.Less(1, 2) -// a.Less(float64(1), float64(2)) -// a.Less("a", "b") -func (a *Assertions) Less(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Less(a.t, e1, e2, msgAndArgs...) -} - -// LessOrEqual asserts that the first element is less than or equal to the second -// -// a.LessOrEqual(1, 2) -// a.LessOrEqual(2, 2) -// a.LessOrEqual("a", "b") -// a.LessOrEqual("b", "b") -func (a *Assertions) LessOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return LessOrEqual(a.t, e1, e2, msgAndArgs...) -} - -// LessOrEqualf asserts that the first element is less than or equal to the second -// -// a.LessOrEqualf(1, 2, "error message %s", "formatted") -// a.LessOrEqualf(2, 2, "error message %s", "formatted") -// a.LessOrEqualf("a", "b", "error message %s", "formatted") -// a.LessOrEqualf("b", "b", "error message %s", "formatted") -func (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return LessOrEqualf(a.t, e1, e2, msg, args...) -} - -// Lessf asserts that the first element is less than the second -// -// a.Lessf(1, 2, "error message %s", "formatted") -// a.Lessf(float64(1), float64(2), "error message %s", "formatted") -// a.Lessf("a", "b", "error message %s", "formatted") -func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Lessf(a.t, e1, e2, msg, args...) -} - -// Negative asserts that the specified element is negative -// -// a.Negative(-1) -// a.Negative(-1.23) -func (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Negative(a.t, e, msgAndArgs...) -} - -// Negativef asserts that the specified element is negative -// -// a.Negativef(-1, "error message %s", "formatted") -// a.Negativef(-1.23, "error message %s", "formatted") -func (a *Assertions) Negativef(e interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Negativef(a.t, e, msg, args...) -} - -// Never asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// a.Never(func() bool { return false; }, time.Second, 10*time.Millisecond) -func (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Never(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// Neverf asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// a.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Neverf(a.t, condition, waitFor, tick, msg, args...) -} - -// Nil asserts that the specified object is nil. -// -// a.Nil(err) -func (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Nil(a.t, object, msgAndArgs...) -} - -// Nilf asserts that the specified object is nil. -// -// a.Nilf(err, "error message %s", "formatted") -func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Nilf(a.t, object, msg, args...) -} - -// NoDirExists checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoDirExists(a.t, path, msgAndArgs...) -} - -// NoDirExistsf checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoDirExistsf(a.t, path, msg, args...) -} - -// NoError asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if a.NoError(err) { -// assert.Equal(t, expectedObj, actualObj) -// } -func (a *Assertions) NoError(err error, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoError(a.t, err, msgAndArgs...) -} - -// NoErrorf asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if a.NoErrorf(err, "error message %s", "formatted") { -// assert.Equal(t, expectedObj, actualObj) -// } -func (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoErrorf(a.t, err, msg, args...) -} - -// NoFileExists checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoFileExists(a.t, path, msgAndArgs...) -} - -// NoFileExistsf checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NoFileExistsf(a.t, path, msg, args...) -} - -// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// a.NotContains("Hello World", "Earth") -// a.NotContains(["Hello", "World"], "Earth") -// a.NotContains({"Hello": "World"}, "Earth") -func (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotContains(a.t, s, contains, msgAndArgs...) -} - -// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// a.NotContainsf("Hello World", "Earth", "error message %s", "formatted") -// a.NotContainsf(["Hello", "World"], "Earth", "error message %s", "formatted") -// a.NotContainsf({"Hello": "World"}, "Earth", "error message %s", "formatted") -func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotContainsf(a.t, s, contains, msg, args...) -} - -// NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should not match. -// This is an inverse of ElementsMatch. -// -// a.NotElementsMatch([1, 1, 2, 3], [1, 1, 2, 3]) -> false -// -// a.NotElementsMatch([1, 1, 2, 3], [1, 2, 3]) -> true -// -// a.NotElementsMatch([1, 2, 3], [1, 2, 4]) -> true -func (a *Assertions) NotElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotElementsMatch(a.t, listA, listB, msgAndArgs...) -} - -// NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should not match. -// This is an inverse of ElementsMatch. -// -// a.NotElementsMatchf([1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false -// -// a.NotElementsMatchf([1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true -// -// a.NotElementsMatchf([1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true -func (a *Assertions) NotElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotElementsMatchf(a.t, listA, listB, msg, args...) -} - -// NotEmpty asserts that the specified object is NOT [Empty]. -// -// if a.NotEmpty(obj) { -// assert.Equal(t, "two", obj[1]) -// } -func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEmpty(a.t, object, msgAndArgs...) -} - -// NotEmptyf asserts that the specified object is NOT [Empty]. -// -// if a.NotEmptyf(obj, "error message %s", "formatted") { -// assert.Equal(t, "two", obj[1]) -// } -func (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEmptyf(a.t, object, msg, args...) -} - -// NotEqual asserts that the specified values are NOT equal. -// -// a.NotEqual(obj1, obj2) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEqual(a.t, expected, actual, msgAndArgs...) -} - -// NotEqualValues asserts that two objects are not equal even when converted to the same type -// -// a.NotEqualValues(obj1, obj2) -func (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEqualValues(a.t, expected, actual, msgAndArgs...) -} - -// NotEqualValuesf asserts that two objects are not equal even when converted to the same type -// -// a.NotEqualValuesf(obj1, obj2, "error message %s", "formatted") -func (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEqualValuesf(a.t, expected, actual, msg, args...) -} - -// NotEqualf asserts that the specified values are NOT equal. -// -// a.NotEqualf(obj1, obj2, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotEqualf(a.t, expected, actual, msg, args...) -} - -// NotErrorAs asserts that none of the errors in err's chain matches target, -// but if so, sets target to that error value. -func (a *Assertions) NotErrorAs(err error, target interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotErrorAs(a.t, err, target, msgAndArgs...) -} - -// NotErrorAsf asserts that none of the errors in err's chain matches target, -// but if so, sets target to that error value. -func (a *Assertions) NotErrorAsf(err error, target interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotErrorAsf(a.t, err, target, msg, args...) -} - -// NotErrorIs asserts that none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotErrorIs(a.t, err, target, msgAndArgs...) -} - -// NotErrorIsf asserts that none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotErrorIsf(a.t, err, target, msg, args...) -} - -// NotImplements asserts that an object does not implement the specified interface. -// -// a.NotImplements((*MyInterface)(nil), new(MyObject)) -func (a *Assertions) NotImplements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotImplements(a.t, interfaceObject, object, msgAndArgs...) -} - -// NotImplementsf asserts that an object does not implement the specified interface. -// -// a.NotImplementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func (a *Assertions) NotImplementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotImplementsf(a.t, interfaceObject, object, msg, args...) -} - -// NotNil asserts that the specified object is not nil. -// -// a.NotNil(err) -func (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotNil(a.t, object, msgAndArgs...) -} - -// NotNilf asserts that the specified object is not nil. -// -// a.NotNilf(err, "error message %s", "formatted") -func (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotNilf(a.t, object, msg, args...) -} - -// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// a.NotPanics(func(){ RemainCalm() }) -func (a *Assertions) NotPanics(f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotPanics(a.t, f, msgAndArgs...) -} - -// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// a.NotPanicsf(func(){ RemainCalm() }, "error message %s", "formatted") -func (a *Assertions) NotPanicsf(f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotPanicsf(a.t, f, msg, args...) -} - -// NotRegexp asserts that a specified regexp does not match a string. -// -// a.NotRegexp(regexp.MustCompile("starts"), "it's starting") -// a.NotRegexp("^start", "it's not starting") -func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotRegexp(a.t, rx, str, msgAndArgs...) -} - -// NotRegexpf asserts that a specified regexp does not match a string. -// -// a.NotRegexpf(regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") -// a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted") -func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotRegexpf(a.t, rx, str, msg, args...) -} - -// NotSame asserts that two pointers do not reference the same object. -// -// a.NotSame(ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotSame(a.t, expected, actual, msgAndArgs...) -} - -// NotSamef asserts that two pointers do not reference the same object. -// -// a.NotSamef(ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotSamef(a.t, expected, actual, msg, args...) -} - -// NotSubset asserts that the list (array, slice, or map) does NOT contain all -// elements given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// a.NotSubset([1, 3, 4], [1, 2]) -// a.NotSubset({"x": 1, "y": 2}, {"z": 3}) -// a.NotSubset([1, 3, 4], {1: "one", 2: "two"}) -// a.NotSubset({"x": 1, "y": 2}, ["z"]) -func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotSubset(a.t, list, subset, msgAndArgs...) -} - -// NotSubsetf asserts that the list (array, slice, or map) does NOT contain all -// elements given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// a.NotSubsetf([1, 3, 4], [1, 2], "error message %s", "formatted") -// a.NotSubsetf({"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted") -// a.NotSubsetf([1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted") -// a.NotSubsetf({"x": 1, "y": 2}, ["z"], "error message %s", "formatted") -func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotSubsetf(a.t, list, subset, msg, args...) -} - -// NotZero asserts that i is not the zero value for its type. -func (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotZero(a.t, i, msgAndArgs...) -} - -// NotZerof asserts that i is not the zero value for its type. -func (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return NotZerof(a.t, i, msg, args...) -} - -// Panics asserts that the code inside the specified PanicTestFunc panics. -// -// a.Panics(func(){ GoCrazy() }) -func (a *Assertions) Panics(f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Panics(a.t, f, msgAndArgs...) -} - -// PanicsWithError asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// a.PanicsWithError("crazy error", func(){ GoCrazy() }) -func (a *Assertions) PanicsWithError(errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return PanicsWithError(a.t, errString, f, msgAndArgs...) -} - -// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// a.PanicsWithErrorf("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) PanicsWithErrorf(errString string, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return PanicsWithErrorf(a.t, errString, f, msg, args...) -} - -// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// a.PanicsWithValue("crazy error", func(){ GoCrazy() }) -func (a *Assertions) PanicsWithValue(expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return PanicsWithValue(a.t, expected, f, msgAndArgs...) -} - -// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// a.PanicsWithValuef("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) PanicsWithValuef(expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return PanicsWithValuef(a.t, expected, f, msg, args...) -} - -// Panicsf asserts that the code inside the specified PanicTestFunc panics. -// -// a.Panicsf(func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) Panicsf(f PanicTestFunc, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Panicsf(a.t, f, msg, args...) -} - -// Positive asserts that the specified element is positive -// -// a.Positive(1) -// a.Positive(1.23) -func (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Positive(a.t, e, msgAndArgs...) -} - -// Positivef asserts that the specified element is positive -// -// a.Positivef(1, "error message %s", "formatted") -// a.Positivef(1.23, "error message %s", "formatted") -func (a *Assertions) Positivef(e interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Positivef(a.t, e, msg, args...) -} - -// Regexp asserts that a specified regexp matches a string. -// -// a.Regexp(regexp.MustCompile("start"), "it's starting") -// a.Regexp("start...$", "it's not starting") -func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Regexp(a.t, rx, str, msgAndArgs...) -} - -// Regexpf asserts that a specified regexp matches a string. -// -// a.Regexpf(regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") -// a.Regexpf("start...$", "it's not starting", "error message %s", "formatted") -func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Regexpf(a.t, rx, str, msg, args...) -} - -// Same asserts that two pointers reference the same object. -// -// a.Same(ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) Same(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Same(a.t, expected, actual, msgAndArgs...) -} - -// Samef asserts that two pointers reference the same object. -// -// a.Samef(ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Samef(a.t, expected, actual, msg, args...) -} - -// Subset asserts that the list (array, slice, or map) contains all elements -// given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// a.Subset([1, 2, 3], [1, 2]) -// a.Subset({"x": 1, "y": 2}, {"x": 1}) -// a.Subset([1, 2, 3], {1: "one", 2: "two"}) -// a.Subset({"x": 1, "y": 2}, ["x"]) -func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Subset(a.t, list, subset, msgAndArgs...) -} - -// Subsetf asserts that the list (array, slice, or map) contains all elements -// given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// a.Subsetf([1, 2, 3], [1, 2], "error message %s", "formatted") -// a.Subsetf({"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted") -// a.Subsetf([1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted") -// a.Subsetf({"x": 1, "y": 2}, ["x"], "error message %s", "formatted") -func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Subsetf(a.t, list, subset, msg, args...) -} - -// True asserts that the specified value is true. -// -// a.True(myBool) -func (a *Assertions) True(value bool, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return True(a.t, value, msgAndArgs...) -} - -// Truef asserts that the specified value is true. -// -// a.Truef(myBool, "error message %s", "formatted") -func (a *Assertions) Truef(value bool, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Truef(a.t, value, msg, args...) -} - -// WithinDuration asserts that the two times are within duration delta of each other. -// -// a.WithinDuration(time.Now(), time.Now(), 10*time.Second) -func (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return WithinDuration(a.t, expected, actual, delta, msgAndArgs...) -} - -// WithinDurationf asserts that the two times are within duration delta of each other. -// -// a.WithinDurationf(time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") -func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return WithinDurationf(a.t, expected, actual, delta, msg, args...) -} - -// WithinRange asserts that a time is within a time range (inclusive). -// -// a.WithinRange(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second)) -func (a *Assertions) WithinRange(actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return WithinRange(a.t, actual, start, end, msgAndArgs...) -} - -// WithinRangef asserts that a time is within a time range (inclusive). -// -// a.WithinRangef(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") -func (a *Assertions) WithinRangef(actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return WithinRangef(a.t, actual, start, end, msg, args...) -} - -// YAMLEq asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return YAMLEq(a.t, expected, actual, msgAndArgs...) -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return YAMLEqf(a.t, expected, actual, msg, args...) -} - -// Zero asserts that i is the zero value for its type. -func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Zero(a.t, i, msgAndArgs...) -} - -// Zerof asserts that i is the zero value for its type. -func (a *Assertions) Zerof(i interface{}, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return Zerof(a.t, i, msg, args...) -} diff --git a/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl b/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl deleted file mode 100644 index 188bb9e..0000000 --- a/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -{{.CommentWithoutT "a"}} -func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool { - if h, ok := a.t.(tHelper); ok { h.Helper() } - return {{.DocInfo.Name}}(a.t, {{.ForwardedParams}}) -} diff --git a/vendor/github.com/stretchr/testify/assert/assertion_order.go b/vendor/github.com/stretchr/testify/assert/assertion_order.go deleted file mode 100644 index 2fdf80f..0000000 --- a/vendor/github.com/stretchr/testify/assert/assertion_order.go +++ /dev/null @@ -1,81 +0,0 @@ -package assert - -import ( - "fmt" - "reflect" -) - -// isOrdered checks that collection contains orderable elements. -func isOrdered(t TestingT, object interface{}, allowedComparesResults []compareResult, failMessage string, msgAndArgs ...interface{}) bool { - objKind := reflect.TypeOf(object).Kind() - if objKind != reflect.Slice && objKind != reflect.Array { - return false - } - - objValue := reflect.ValueOf(object) - objLen := objValue.Len() - - if objLen <= 1 { - return true - } - - value := objValue.Index(0) - valueInterface := value.Interface() - firstValueKind := value.Kind() - - for i := 1; i < objLen; i++ { - prevValue := value - prevValueInterface := valueInterface - - value = objValue.Index(i) - valueInterface = value.Interface() - - compareResult, isComparable := compare(prevValueInterface, valueInterface, firstValueKind) - - if !isComparable { - return Fail(t, fmt.Sprintf(`Can not compare type "%T" and "%T"`, value, prevValue), msgAndArgs...) - } - - if !containsValue(allowedComparesResults, compareResult) { - return Fail(t, fmt.Sprintf(failMessage, prevValue, value), msgAndArgs...) - } - } - - return true -} - -// IsIncreasing asserts that the collection is increasing -// -// assert.IsIncreasing(t, []int{1, 2, 3}) -// assert.IsIncreasing(t, []float{1, 2}) -// assert.IsIncreasing(t, []string{"a", "b"}) -func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - return isOrdered(t, object, []compareResult{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) -} - -// IsNonIncreasing asserts that the collection is not increasing -// -// assert.IsNonIncreasing(t, []int{2, 1, 1}) -// assert.IsNonIncreasing(t, []float{2, 1}) -// assert.IsNonIncreasing(t, []string{"b", "a"}) -func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - return isOrdered(t, object, []compareResult{compareEqual, compareGreater}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) -} - -// IsDecreasing asserts that the collection is decreasing -// -// assert.IsDecreasing(t, []int{2, 1, 0}) -// assert.IsDecreasing(t, []float{2, 1}) -// assert.IsDecreasing(t, []string{"b", "a"}) -func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - return isOrdered(t, object, []compareResult{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) -} - -// IsNonDecreasing asserts that the collection is not decreasing -// -// assert.IsNonDecreasing(t, []int{1, 1, 2}) -// assert.IsNonDecreasing(t, []float{1, 2}) -// assert.IsNonDecreasing(t, []string{"a", "b"}) -func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - return isOrdered(t, object, []compareResult{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) -} diff --git a/vendor/github.com/stretchr/testify/assert/assertions.go b/vendor/github.com/stretchr/testify/assert/assertions.go deleted file mode 100644 index de8de0c..0000000 --- a/vendor/github.com/stretchr/testify/assert/assertions.go +++ /dev/null @@ -1,2295 +0,0 @@ -package assert - -import ( - "bufio" - "bytes" - "encoding/json" - "errors" - "fmt" - "math" - "os" - "reflect" - "regexp" - "runtime" - "runtime/debug" - "strings" - "time" - "unicode" - "unicode/utf8" - - "github.com/davecgh/go-spew/spew" - "github.com/pmezard/go-difflib/difflib" - - // Wrapper around gopkg.in/yaml.v3 - "github.com/stretchr/testify/assert/yaml" -) - -//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl" - -// TestingT is an interface wrapper around *testing.T -type TestingT interface { - Errorf(format string, args ...interface{}) -} - -// ComparisonAssertionFunc is a common function prototype when comparing two values. Can be useful -// for table driven tests. -type ComparisonAssertionFunc func(TestingT, interface{}, interface{}, ...interface{}) bool - -// ValueAssertionFunc is a common function prototype when validating a single value. Can be useful -// for table driven tests. -type ValueAssertionFunc func(TestingT, interface{}, ...interface{}) bool - -// BoolAssertionFunc is a common function prototype when validating a bool value. Can be useful -// for table driven tests. -type BoolAssertionFunc func(TestingT, bool, ...interface{}) bool - -// ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful -// for table driven tests. -type ErrorAssertionFunc func(TestingT, error, ...interface{}) bool - -// PanicAssertionFunc is a common function prototype when validating a panic value. Can be useful -// for table driven tests. -type PanicAssertionFunc = func(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool - -// Comparison is a custom function that returns true on success and false on failure -type Comparison func() (success bool) - -/* - Helper functions -*/ - -// ObjectsAreEqual determines if two objects are considered equal. -// -// This function does no assertion of any kind. -func ObjectsAreEqual(expected, actual interface{}) bool { - if expected == nil || actual == nil { - return expected == actual - } - - exp, ok := expected.([]byte) - if !ok { - return reflect.DeepEqual(expected, actual) - } - - act, ok := actual.([]byte) - if !ok { - return false - } - if exp == nil || act == nil { - return exp == nil && act == nil - } - return bytes.Equal(exp, act) -} - -// copyExportedFields iterates downward through nested data structures and creates a copy -// that only contains the exported struct fields. -func copyExportedFields(expected interface{}) interface{} { - if isNil(expected) { - return expected - } - - expectedType := reflect.TypeOf(expected) - expectedKind := expectedType.Kind() - expectedValue := reflect.ValueOf(expected) - - switch expectedKind { - case reflect.Struct: - result := reflect.New(expectedType).Elem() - for i := 0; i < expectedType.NumField(); i++ { - field := expectedType.Field(i) - isExported := field.IsExported() - if isExported { - fieldValue := expectedValue.Field(i) - if isNil(fieldValue) || isNil(fieldValue.Interface()) { - continue - } - newValue := copyExportedFields(fieldValue.Interface()) - result.Field(i).Set(reflect.ValueOf(newValue)) - } - } - return result.Interface() - - case reflect.Ptr: - result := reflect.New(expectedType.Elem()) - unexportedRemoved := copyExportedFields(expectedValue.Elem().Interface()) - result.Elem().Set(reflect.ValueOf(unexportedRemoved)) - return result.Interface() - - case reflect.Array, reflect.Slice: - var result reflect.Value - if expectedKind == reflect.Array { - result = reflect.New(reflect.ArrayOf(expectedValue.Len(), expectedType.Elem())).Elem() - } else { - result = reflect.MakeSlice(expectedType, expectedValue.Len(), expectedValue.Len()) - } - for i := 0; i < expectedValue.Len(); i++ { - index := expectedValue.Index(i) - if isNil(index) { - continue - } - unexportedRemoved := copyExportedFields(index.Interface()) - result.Index(i).Set(reflect.ValueOf(unexportedRemoved)) - } - return result.Interface() - - case reflect.Map: - result := reflect.MakeMap(expectedType) - for _, k := range expectedValue.MapKeys() { - index := expectedValue.MapIndex(k) - unexportedRemoved := copyExportedFields(index.Interface()) - result.SetMapIndex(k, reflect.ValueOf(unexportedRemoved)) - } - return result.Interface() - - default: - return expected - } -} - -// ObjectsExportedFieldsAreEqual determines if the exported (public) fields of two objects are -// considered equal. This comparison of only exported fields is applied recursively to nested data -// structures. -// -// This function does no assertion of any kind. -// -// Deprecated: Use [EqualExportedValues] instead. -func ObjectsExportedFieldsAreEqual(expected, actual interface{}) bool { - expectedCleaned := copyExportedFields(expected) - actualCleaned := copyExportedFields(actual) - return ObjectsAreEqualValues(expectedCleaned, actualCleaned) -} - -// ObjectsAreEqualValues gets whether two objects are equal, or if their -// values are equal. -func ObjectsAreEqualValues(expected, actual interface{}) bool { - if ObjectsAreEqual(expected, actual) { - return true - } - - expectedValue := reflect.ValueOf(expected) - actualValue := reflect.ValueOf(actual) - if !expectedValue.IsValid() || !actualValue.IsValid() { - return false - } - - expectedType := expectedValue.Type() - actualType := actualValue.Type() - if !expectedType.ConvertibleTo(actualType) { - return false - } - - if !isNumericType(expectedType) || !isNumericType(actualType) { - // Attempt comparison after type conversion - return reflect.DeepEqual( - expectedValue.Convert(actualType).Interface(), actual, - ) - } - - // If BOTH values are numeric, there are chances of false positives due - // to overflow or underflow. So, we need to make sure to always convert - // the smaller type to a larger type before comparing. - if expectedType.Size() >= actualType.Size() { - return actualValue.Convert(expectedType).Interface() == expected - } - - return expectedValue.Convert(actualType).Interface() == actual -} - -// isNumericType returns true if the type is one of: -// int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, -// float32, float64, complex64, complex128 -func isNumericType(t reflect.Type) bool { - return t.Kind() >= reflect.Int && t.Kind() <= reflect.Complex128 -} - -/* CallerInfo is necessary because the assert functions use the testing object -internally, causing it to print the file:line of the assert method, rather than where -the problem actually occurred in calling code.*/ - -// CallerInfo returns an array of strings containing the file and line number -// of each stack frame leading from the current test to the assert call that -// failed. -func CallerInfo() []string { - var pc uintptr - var file string - var line int - var name string - - const stackFrameBufferSize = 10 - pcs := make([]uintptr, stackFrameBufferSize) - - callers := []string{} - offset := 1 - - for { - n := runtime.Callers(offset, pcs) - - if n == 0 { - break - } - - frames := runtime.CallersFrames(pcs[:n]) - - for { - frame, more := frames.Next() - pc = frame.PC - file = frame.File - line = frame.Line - - // This is a huge edge case, but it will panic if this is the case, see #180 - if file == "" { - break - } - - f := runtime.FuncForPC(pc) - if f == nil { - break - } - name = f.Name() - - // testing.tRunner is the standard library function that calls - // tests. Subtests are called directly by tRunner, without going through - // the Test/Benchmark/Example function that contains the t.Run calls, so - // with subtests we should break when we hit tRunner, without adding it - // to the list of callers. - if name == "testing.tRunner" { - break - } - - parts := strings.Split(file, "/") - if len(parts) > 1 { - filename := parts[len(parts)-1] - dir := parts[len(parts)-2] - if (dir != "assert" && dir != "mock" && dir != "require") || filename == "mock_test.go" { - callers = append(callers, fmt.Sprintf("%s:%d", file, line)) - } - } - - // Drop the package - dotPos := strings.LastIndexByte(name, '.') - name = name[dotPos+1:] - if isTest(name, "Test") || - isTest(name, "Benchmark") || - isTest(name, "Example") { - break - } - - if !more { - break - } - } - - // Next batch - offset += cap(pcs) - } - - return callers -} - -// Stolen from the `go test` tool. -// isTest tells whether name looks like a test (or benchmark, according to prefix). -// It is a Test (say) if there is a character after Test that is not a lower-case letter. -// We don't want TesticularCancer. -func isTest(name, prefix string) bool { - if !strings.HasPrefix(name, prefix) { - return false - } - if len(name) == len(prefix) { // "Test" is ok - return true - } - r, _ := utf8.DecodeRuneInString(name[len(prefix):]) - return !unicode.IsLower(r) -} - -func messageFromMsgAndArgs(msgAndArgs ...interface{}) string { - if len(msgAndArgs) == 0 || msgAndArgs == nil { - return "" - } - if len(msgAndArgs) == 1 { - msg := msgAndArgs[0] - if msgAsStr, ok := msg.(string); ok { - return msgAsStr - } - return fmt.Sprintf("%+v", msg) - } - if len(msgAndArgs) > 1 { - return fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...) - } - return "" -} - -// Aligns the provided message so that all lines after the first line start at the same location as the first line. -// Assumes that the first line starts at the correct location (after carriage return, tab, label, spacer and tab). -// The longestLabelLen parameter specifies the length of the longest label in the output (required because this is the -// basis on which the alignment occurs). -func indentMessageLines(message string, longestLabelLen int) string { - outBuf := new(bytes.Buffer) - - for i, scanner := 0, bufio.NewScanner(strings.NewReader(message)); scanner.Scan(); i++ { - // no need to align first line because it starts at the correct location (after the label) - if i != 0 { - // append alignLen+1 spaces to align with "{{longestLabel}}:" before adding tab - outBuf.WriteString("\n\t" + strings.Repeat(" ", longestLabelLen+1) + "\t") - } - outBuf.WriteString(scanner.Text()) - } - - return outBuf.String() -} - -type failNower interface { - FailNow() -} - -// FailNow fails test -func FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - Fail(t, failureMessage, msgAndArgs...) - - // We cannot extend TestingT with FailNow() and - // maintain backwards compatibility, so we fallback - // to panicking when FailNow is not available in - // TestingT. - // See issue #263 - - if t, ok := t.(failNower); ok { - t.FailNow() - } else { - panic("test failed and t is missing `FailNow()`") - } - return false -} - -// Fail reports a failure through -func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - content := []labeledContent{ - {"Error Trace", strings.Join(CallerInfo(), "\n\t\t\t")}, - {"Error", failureMessage}, - } - - // Add test name if the Go version supports it - if n, ok := t.(interface { - Name() string - }); ok { - content = append(content, labeledContent{"Test", n.Name()}) - } - - message := messageFromMsgAndArgs(msgAndArgs...) - if len(message) > 0 { - content = append(content, labeledContent{"Messages", message}) - } - - t.Errorf("\n%s", ""+labeledOutput(content...)) - - return false -} - -type labeledContent struct { - label string - content string -} - -// labeledOutput returns a string consisting of the provided labeledContent. Each labeled output is appended in the following manner: -// -// \t{{label}}:{{align_spaces}}\t{{content}}\n -// -// The initial carriage return is required to undo/erase any padding added by testing.T.Errorf. The "\t{{label}}:" is for the label. -// If a label is shorter than the longest label provided, padding spaces are added to make all the labels match in length. Once this -// alignment is achieved, "\t{{content}}\n" is added for the output. -// -// If the content of the labeledOutput contains line breaks, the subsequent lines are aligned so that they start at the same location as the first line. -func labeledOutput(content ...labeledContent) string { - longestLabel := 0 - for _, v := range content { - if len(v.label) > longestLabel { - longestLabel = len(v.label) - } - } - var output string - for _, v := range content { - output += "\t" + v.label + ":" + strings.Repeat(" ", longestLabel-len(v.label)) + "\t" + indentMessageLines(v.content, longestLabel) + "\n" - } - return output -} - -// Implements asserts that an object is implemented by the specified interface. -// -// assert.Implements(t, (*MyInterface)(nil), new(MyObject)) -func Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - interfaceType := reflect.TypeOf(interfaceObject).Elem() - - if object == nil { - return Fail(t, fmt.Sprintf("Cannot check if nil implements %v", interfaceType), msgAndArgs...) - } - if !reflect.TypeOf(object).Implements(interfaceType) { - return Fail(t, fmt.Sprintf("%T must implement %v", object, interfaceType), msgAndArgs...) - } - - return true -} - -// NotImplements asserts that an object does not implement the specified interface. -// -// assert.NotImplements(t, (*MyInterface)(nil), new(MyObject)) -func NotImplements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - interfaceType := reflect.TypeOf(interfaceObject).Elem() - - if object == nil { - return Fail(t, fmt.Sprintf("Cannot check if nil does not implement %v", interfaceType), msgAndArgs...) - } - if reflect.TypeOf(object).Implements(interfaceType) { - return Fail(t, fmt.Sprintf("%T implements %v", object, interfaceType), msgAndArgs...) - } - - return true -} - -func isType(expectedType, object interface{}) bool { - return ObjectsAreEqual(reflect.TypeOf(object), reflect.TypeOf(expectedType)) -} - -// IsType asserts that the specified objects are of the same type. -// -// assert.IsType(t, &MyStruct{}, &MyStruct{}) -func IsType(t TestingT, expectedType, object interface{}, msgAndArgs ...interface{}) bool { - if isType(expectedType, object) { - return true - } - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, fmt.Sprintf("Object expected to be of type %T, but was %T", expectedType, object), msgAndArgs...) -} - -// IsNotType asserts that the specified objects are not of the same type. -// -// assert.IsNotType(t, &NotMyStruct{}, &MyStruct{}) -func IsNotType(t TestingT, theType, object interface{}, msgAndArgs ...interface{}) bool { - if !isType(theType, object) { - return true - } - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, fmt.Sprintf("Object type expected to be different than %T", theType), msgAndArgs...) -} - -// Equal asserts that two objects are equal. -// -// assert.Equal(t, 123, 123) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if err := validateEqualArgs(expected, actual); err != nil { - return Fail(t, fmt.Sprintf("Invalid operation: %#v == %#v (%s)", - expected, actual, err), msgAndArgs...) - } - - if !ObjectsAreEqual(expected, actual) { - diff := diff(expected, actual) - expected, actual = formatUnequalValues(expected, actual) - return Fail(t, fmt.Sprintf("Not equal: \n"+ - "expected: %s\n"+ - "actual : %s%s", expected, actual, diff), msgAndArgs...) - } - - return true -} - -// validateEqualArgs checks whether provided arguments can be safely used in the -// Equal/NotEqual functions. -func validateEqualArgs(expected, actual interface{}) error { - if expected == nil && actual == nil { - return nil - } - - if isFunction(expected) || isFunction(actual) { - return errors.New("cannot take func type as argument") - } - return nil -} - -// Same asserts that two pointers reference the same object. -// -// assert.Same(t, ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - same, ok := samePointers(expected, actual) - if !ok { - return Fail(t, "Both arguments must be pointers", msgAndArgs...) - } - - if !same { - // both are pointers but not the same type & pointing to the same address - return Fail(t, fmt.Sprintf("Not same: \n"+ - "expected: %p %#[1]v\n"+ - "actual : %p %#[2]v", - expected, actual), msgAndArgs...) - } - - return true -} - -// NotSame asserts that two pointers do not reference the same object. -// -// assert.NotSame(t, ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - same, ok := samePointers(expected, actual) - if !ok { - // fails when the arguments are not pointers - return !(Fail(t, "Both arguments must be pointers", msgAndArgs...)) - } - - if same { - return Fail(t, fmt.Sprintf( - "Expected and actual point to the same object: %p %#[1]v", - expected), msgAndArgs...) - } - return true -} - -// samePointers checks if two generic interface objects are pointers of the same -// type pointing to the same object. It returns two values: same indicating if -// they are the same type and point to the same object, and ok indicating that -// both inputs are pointers. -func samePointers(first, second interface{}) (same bool, ok bool) { - firstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second) - if firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr { - return false, false // not both are pointers - } - - firstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second) - if firstType != secondType { - return false, true // both are pointers, but of different types - } - - // compare pointer addresses - return first == second, true -} - -// formatUnequalValues takes two values of arbitrary types and returns string -// representations appropriate to be presented to the user. -// -// If the values are not of like type, the returned strings will be prefixed -// with the type name, and the value will be enclosed in parentheses similar -// to a type conversion in the Go grammar. -func formatUnequalValues(expected, actual interface{}) (e string, a string) { - if reflect.TypeOf(expected) != reflect.TypeOf(actual) { - return fmt.Sprintf("%T(%s)", expected, truncatingFormat(expected)), - fmt.Sprintf("%T(%s)", actual, truncatingFormat(actual)) - } - switch expected.(type) { - case time.Duration: - return fmt.Sprintf("%v", expected), fmt.Sprintf("%v", actual) - } - return truncatingFormat(expected), truncatingFormat(actual) -} - -// truncatingFormat formats the data and truncates it if it's too long. -// -// This helps keep formatted error messages lines from exceeding the -// bufio.MaxScanTokenSize max line length that the go testing framework imposes. -func truncatingFormat(data interface{}) string { - value := fmt.Sprintf("%#v", data) - max := bufio.MaxScanTokenSize - 100 // Give us some space the type info too if needed. - if len(value) > max { - value = value[0:max] + "<... truncated>" - } - return value -} - -// EqualValues asserts that two objects are equal or convertible to the larger -// type and equal. -// -// assert.EqualValues(t, uint32(123), int32(123)) -func EqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if !ObjectsAreEqualValues(expected, actual) { - diff := diff(expected, actual) - expected, actual = formatUnequalValues(expected, actual) - return Fail(t, fmt.Sprintf("Not equal: \n"+ - "expected: %s\n"+ - "actual : %s%s", expected, actual, diff), msgAndArgs...) - } - - return true -} - -// EqualExportedValues asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// assert.EqualExportedValues(t, S{1, 2}, S{1, 3}) => true -// assert.EqualExportedValues(t, S{1, 2}, S{2, 3}) => false -func EqualExportedValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - aType := reflect.TypeOf(expected) - bType := reflect.TypeOf(actual) - - if aType != bType { - return Fail(t, fmt.Sprintf("Types expected to match exactly\n\t%v != %v", aType, bType), msgAndArgs...) - } - - expected = copyExportedFields(expected) - actual = copyExportedFields(actual) - - if !ObjectsAreEqualValues(expected, actual) { - diff := diff(expected, actual) - expected, actual = formatUnequalValues(expected, actual) - return Fail(t, fmt.Sprintf("Not equal (comparing only exported fields): \n"+ - "expected: %s\n"+ - "actual : %s%s", expected, actual, diff), msgAndArgs...) - } - - return true -} - -// Exactly asserts that two objects are equal in value and type. -// -// assert.Exactly(t, int32(123), int64(123)) -func Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - aType := reflect.TypeOf(expected) - bType := reflect.TypeOf(actual) - - if aType != bType { - return Fail(t, fmt.Sprintf("Types expected to match exactly\n\t%v != %v", aType, bType), msgAndArgs...) - } - - return Equal(t, expected, actual, msgAndArgs...) -} - -// NotNil asserts that the specified object is not nil. -// -// assert.NotNil(t, err) -func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - if !isNil(object) { - return true - } - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, "Expected value not to be nil.", msgAndArgs...) -} - -// isNil checks if a specified object is nil or not, without Failing. -func isNil(object interface{}) bool { - if object == nil { - return true - } - - value := reflect.ValueOf(object) - switch value.Kind() { - case - reflect.Chan, reflect.Func, - reflect.Interface, reflect.Map, - reflect.Ptr, reflect.Slice, reflect.UnsafePointer: - - return value.IsNil() - } - - return false -} - -// Nil asserts that the specified object is nil. -// -// assert.Nil(t, err) -func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - if isNil(object) { - return true - } - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, fmt.Sprintf("Expected nil, but got: %#v", object), msgAndArgs...) -} - -// isEmpty gets whether the specified object is considered empty or not. -func isEmpty(object interface{}) bool { - // get nil case out of the way - if object == nil { - return true - } - - return isEmptyValue(reflect.ValueOf(object)) -} - -// isEmptyValue gets whether the specified reflect.Value is considered empty or not. -func isEmptyValue(objValue reflect.Value) bool { - if objValue.IsZero() { - return true - } - // Special cases of non-zero values that we consider empty - switch objValue.Kind() { - // collection types are empty when they have no element - // Note: array types are empty when they match their zero-initialized state. - case reflect.Chan, reflect.Map, reflect.Slice: - return objValue.Len() == 0 - // non-nil pointers are empty if the value they point to is empty - case reflect.Ptr: - return isEmptyValue(objValue.Elem()) - } - return false -} - -// Empty asserts that the given value is "empty". -// -// [Zero values] are "empty". -// -// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). -// -// Slices, maps and channels with zero length are "empty". -// -// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". -// -// assert.Empty(t, obj) -// -// [Zero values]: https://go.dev/ref/spec#The_zero_value -func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - pass := isEmpty(object) - if !pass { - if h, ok := t.(tHelper); ok { - h.Helper() - } - Fail(t, fmt.Sprintf("Should be empty, but was %v", object), msgAndArgs...) - } - - return pass -} - -// NotEmpty asserts that the specified object is NOT [Empty]. -// -// if assert.NotEmpty(t, obj) { -// assert.Equal(t, "two", obj[1]) -// } -func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - pass := !isEmpty(object) - if !pass { - if h, ok := t.(tHelper); ok { - h.Helper() - } - Fail(t, fmt.Sprintf("Should NOT be empty, but was %v", object), msgAndArgs...) - } - - return pass -} - -// getLen tries to get the length of an object. -// It returns (0, false) if impossible. -func getLen(x interface{}) (length int, ok bool) { - v := reflect.ValueOf(x) - defer func() { - ok = recover() == nil - }() - return v.Len(), true -} - -// Len asserts that the specified object has specific length. -// Len also fails if the object has a type that len() not accept. -// -// assert.Len(t, mySlice, 3) -func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - l, ok := getLen(object) - if !ok { - return Fail(t, fmt.Sprintf("\"%v\" could not be applied builtin len()", object), msgAndArgs...) - } - - if l != length { - return Fail(t, fmt.Sprintf("\"%v\" should have %d item(s), but has %d", object, length, l), msgAndArgs...) - } - return true -} - -// True asserts that the specified value is true. -// -// assert.True(t, myBool) -func True(t TestingT, value bool, msgAndArgs ...interface{}) bool { - if !value { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, "Should be true", msgAndArgs...) - } - - return true -} - -// False asserts that the specified value is false. -// -// assert.False(t, myBool) -func False(t TestingT, value bool, msgAndArgs ...interface{}) bool { - if value { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, "Should be false", msgAndArgs...) - } - - return true -} - -// NotEqual asserts that the specified values are NOT equal. -// -// assert.NotEqual(t, obj1, obj2) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if err := validateEqualArgs(expected, actual); err != nil { - return Fail(t, fmt.Sprintf("Invalid operation: %#v != %#v (%s)", - expected, actual, err), msgAndArgs...) - } - - if ObjectsAreEqual(expected, actual) { - return Fail(t, fmt.Sprintf("Should not be: %#v\n", actual), msgAndArgs...) - } - - return true -} - -// NotEqualValues asserts that two objects are not equal even when converted to the same type -// -// assert.NotEqualValues(t, obj1, obj2) -func NotEqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if ObjectsAreEqualValues(expected, actual) { - return Fail(t, fmt.Sprintf("Should not be: %#v\n", actual), msgAndArgs...) - } - - return true -} - -// containsElement try loop over the list check if the list includes the element. -// return (false, false) if impossible. -// return (true, false) if element was not found. -// return (true, true) if element was found. -func containsElement(list interface{}, element interface{}) (ok, found bool) { - listValue := reflect.ValueOf(list) - listType := reflect.TypeOf(list) - if listType == nil { - return false, false - } - listKind := listType.Kind() - defer func() { - if e := recover(); e != nil { - ok = false - found = false - } - }() - - if listKind == reflect.String { - elementValue := reflect.ValueOf(element) - return true, strings.Contains(listValue.String(), elementValue.String()) - } - - if listKind == reflect.Map { - mapKeys := listValue.MapKeys() - for i := 0; i < len(mapKeys); i++ { - if ObjectsAreEqual(mapKeys[i].Interface(), element) { - return true, true - } - } - return true, false - } - - for i := 0; i < listValue.Len(); i++ { - if ObjectsAreEqual(listValue.Index(i).Interface(), element) { - return true, true - } - } - return true, false -} - -// Contains asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// assert.Contains(t, "Hello World", "World") -// assert.Contains(t, ["Hello", "World"], "World") -// assert.Contains(t, {"Hello": "World"}, "Hello") -func Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - ok, found := containsElement(s, contains) - if !ok { - return Fail(t, fmt.Sprintf("%#v could not be applied builtin len()", s), msgAndArgs...) - } - if !found { - return Fail(t, fmt.Sprintf("%#v does not contain %#v", s, contains), msgAndArgs...) - } - - return true -} - -// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// assert.NotContains(t, "Hello World", "Earth") -// assert.NotContains(t, ["Hello", "World"], "Earth") -// assert.NotContains(t, {"Hello": "World"}, "Earth") -func NotContains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - ok, found := containsElement(s, contains) - if !ok { - return Fail(t, fmt.Sprintf("%#v could not be applied builtin len()", s), msgAndArgs...) - } - if found { - return Fail(t, fmt.Sprintf("%#v should not contain %#v", s, contains), msgAndArgs...) - } - - return true -} - -// Subset asserts that the list (array, slice, or map) contains all elements -// given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// assert.Subset(t, [1, 2, 3], [1, 2]) -// assert.Subset(t, {"x": 1, "y": 2}, {"x": 1}) -// assert.Subset(t, [1, 2, 3], {1: "one", 2: "two"}) -// assert.Subset(t, {"x": 1, "y": 2}, ["x"]) -func Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if subset == nil { - return true // we consider nil to be equal to the nil set - } - - listKind := reflect.TypeOf(list).Kind() - if listKind != reflect.Array && listKind != reflect.Slice && listKind != reflect.Map { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", list, listKind), msgAndArgs...) - } - - subsetKind := reflect.TypeOf(subset).Kind() - if subsetKind != reflect.Array && subsetKind != reflect.Slice && subsetKind != reflect.Map { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", subset, subsetKind), msgAndArgs...) - } - - if subsetKind == reflect.Map && listKind == reflect.Map { - subsetMap := reflect.ValueOf(subset) - actualMap := reflect.ValueOf(list) - - for _, k := range subsetMap.MapKeys() { - ev := subsetMap.MapIndex(k) - av := actualMap.MapIndex(k) - - if !av.IsValid() { - return Fail(t, fmt.Sprintf("%#v does not contain %#v", list, subset), msgAndArgs...) - } - if !ObjectsAreEqual(ev.Interface(), av.Interface()) { - return Fail(t, fmt.Sprintf("%#v does not contain %#v", list, subset), msgAndArgs...) - } - } - - return true - } - - subsetList := reflect.ValueOf(subset) - if subsetKind == reflect.Map { - keys := make([]interface{}, subsetList.Len()) - for idx, key := range subsetList.MapKeys() { - keys[idx] = key.Interface() - } - subsetList = reflect.ValueOf(keys) - } - for i := 0; i < subsetList.Len(); i++ { - element := subsetList.Index(i).Interface() - ok, found := containsElement(list, element) - if !ok { - return Fail(t, fmt.Sprintf("%#v could not be applied builtin len()", list), msgAndArgs...) - } - if !found { - return Fail(t, fmt.Sprintf("%#v does not contain %#v", list, element), msgAndArgs...) - } - } - - return true -} - -// NotSubset asserts that the list (array, slice, or map) does NOT contain all -// elements given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// assert.NotSubset(t, [1, 3, 4], [1, 2]) -// assert.NotSubset(t, {"x": 1, "y": 2}, {"z": 3}) -// assert.NotSubset(t, [1, 3, 4], {1: "one", 2: "two"}) -// assert.NotSubset(t, {"x": 1, "y": 2}, ["z"]) -func NotSubset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if subset == nil { - return Fail(t, "nil is the empty set which is a subset of every set", msgAndArgs...) - } - - listKind := reflect.TypeOf(list).Kind() - if listKind != reflect.Array && listKind != reflect.Slice && listKind != reflect.Map { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", list, listKind), msgAndArgs...) - } - - subsetKind := reflect.TypeOf(subset).Kind() - if subsetKind != reflect.Array && subsetKind != reflect.Slice && subsetKind != reflect.Map { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s", subset, subsetKind), msgAndArgs...) - } - - if subsetKind == reflect.Map && listKind == reflect.Map { - subsetMap := reflect.ValueOf(subset) - actualMap := reflect.ValueOf(list) - - for _, k := range subsetMap.MapKeys() { - ev := subsetMap.MapIndex(k) - av := actualMap.MapIndex(k) - - if !av.IsValid() { - return true - } - if !ObjectsAreEqual(ev.Interface(), av.Interface()) { - return true - } - } - - return Fail(t, fmt.Sprintf("%q is a subset of %q", subset, list), msgAndArgs...) - } - - subsetList := reflect.ValueOf(subset) - if subsetKind == reflect.Map { - keys := make([]interface{}, subsetList.Len()) - for idx, key := range subsetList.MapKeys() { - keys[idx] = key.Interface() - } - subsetList = reflect.ValueOf(keys) - } - for i := 0; i < subsetList.Len(); i++ { - element := subsetList.Index(i).Interface() - ok, found := containsElement(list, element) - if !ok { - return Fail(t, fmt.Sprintf("%q could not be applied builtin len()", list), msgAndArgs...) - } - if !found { - return true - } - } - - return Fail(t, fmt.Sprintf("%q is a subset of %q", subset, list), msgAndArgs...) -} - -// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// assert.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2]) -func ElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface{}) (ok bool) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if isEmpty(listA) && isEmpty(listB) { - return true - } - - if !isList(t, listA, msgAndArgs...) || !isList(t, listB, msgAndArgs...) { - return false - } - - extraA, extraB := diffLists(listA, listB) - - if len(extraA) == 0 && len(extraB) == 0 { - return true - } - - return Fail(t, formatListDiff(listA, listB, extraA, extraB), msgAndArgs...) -} - -// isList checks that the provided value is array or slice. -func isList(t TestingT, list interface{}, msgAndArgs ...interface{}) (ok bool) { - kind := reflect.TypeOf(list).Kind() - if kind != reflect.Array && kind != reflect.Slice { - return Fail(t, fmt.Sprintf("%q has an unsupported type %s, expecting array or slice", list, kind), - msgAndArgs...) - } - return true -} - -// diffLists diffs two arrays/slices and returns slices of elements that are only in A and only in B. -// If some element is present multiple times, each instance is counted separately (e.g. if something is 2x in A and -// 5x in B, it will be 0x in extraA and 3x in extraB). The order of items in both lists is ignored. -func diffLists(listA, listB interface{}) (extraA, extraB []interface{}) { - aValue := reflect.ValueOf(listA) - bValue := reflect.ValueOf(listB) - - aLen := aValue.Len() - bLen := bValue.Len() - - // Mark indexes in bValue that we already used - visited := make([]bool, bLen) - for i := 0; i < aLen; i++ { - element := aValue.Index(i).Interface() - found := false - for j := 0; j < bLen; j++ { - if visited[j] { - continue - } - if ObjectsAreEqual(bValue.Index(j).Interface(), element) { - visited[j] = true - found = true - break - } - } - if !found { - extraA = append(extraA, element) - } - } - - for j := 0; j < bLen; j++ { - if visited[j] { - continue - } - extraB = append(extraB, bValue.Index(j).Interface()) - } - - return -} - -func formatListDiff(listA, listB interface{}, extraA, extraB []interface{}) string { - var msg bytes.Buffer - - msg.WriteString("elements differ") - if len(extraA) > 0 { - msg.WriteString("\n\nextra elements in list A:\n") - msg.WriteString(spewConfig.Sdump(extraA)) - } - if len(extraB) > 0 { - msg.WriteString("\n\nextra elements in list B:\n") - msg.WriteString(spewConfig.Sdump(extraB)) - } - msg.WriteString("\n\nlistA:\n") - msg.WriteString(spewConfig.Sdump(listA)) - msg.WriteString("\n\nlistB:\n") - msg.WriteString(spewConfig.Sdump(listB)) - - return msg.String() -} - -// NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should not match. -// This is an inverse of ElementsMatch. -// -// assert.NotElementsMatch(t, [1, 1, 2, 3], [1, 1, 2, 3]) -> false -// -// assert.NotElementsMatch(t, [1, 1, 2, 3], [1, 2, 3]) -> true -// -// assert.NotElementsMatch(t, [1, 2, 3], [1, 2, 4]) -> true -func NotElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface{}) (ok bool) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if isEmpty(listA) && isEmpty(listB) { - return Fail(t, "listA and listB contain the same elements", msgAndArgs) - } - - if !isList(t, listA, msgAndArgs...) { - return Fail(t, "listA is not a list type", msgAndArgs...) - } - if !isList(t, listB, msgAndArgs...) { - return Fail(t, "listB is not a list type", msgAndArgs...) - } - - extraA, extraB := diffLists(listA, listB) - if len(extraA) == 0 && len(extraB) == 0 { - return Fail(t, "listA and listB contain the same elements", msgAndArgs) - } - - return true -} - -// Condition uses a Comparison to assert a complex condition. -func Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - result := comp() - if !result { - Fail(t, "Condition failed!", msgAndArgs...) - } - return result -} - -// PanicTestFunc defines a func that should be passed to the assert.Panics and assert.NotPanics -// methods, and represents a simple func that takes no arguments, and returns nothing. -type PanicTestFunc func() - -// didPanic returns true if the function passed to it panics. Otherwise, it returns false. -func didPanic(f PanicTestFunc) (didPanic bool, message interface{}, stack string) { - didPanic = true - - defer func() { - message = recover() - if didPanic { - stack = string(debug.Stack()) - } - }() - - // call the target function - f() - didPanic = false - - return -} - -// Panics asserts that the code inside the specified PanicTestFunc panics. -// -// assert.Panics(t, func(){ GoCrazy() }) -func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if funcDidPanic, panicValue, _ := didPanic(f); !funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) - } - - return true -} - -// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// assert.PanicsWithValue(t, "crazy error", func(){ GoCrazy() }) -func PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - funcDidPanic, panicValue, panickedStack := didPanic(f) - if !funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) - } - if panicValue != expected { - return Fail(t, fmt.Sprintf("func %#v should panic with value:\t%#v\n\tPanic value:\t%#v\n\tPanic stack:\t%s", f, expected, panicValue, panickedStack), msgAndArgs...) - } - - return true -} - -// PanicsWithError asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// assert.PanicsWithError(t, "crazy error", func(){ GoCrazy() }) -func PanicsWithError(t TestingT, errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - funcDidPanic, panicValue, panickedStack := didPanic(f) - if !funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) - } - panicErr, ok := panicValue.(error) - if !ok || panicErr.Error() != errString { - return Fail(t, fmt.Sprintf("func %#v should panic with error message:\t%#v\n\tPanic value:\t%#v\n\tPanic stack:\t%s", f, errString, panicValue, panickedStack), msgAndArgs...) - } - - return true -} - -// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// assert.NotPanics(t, func(){ RemainCalm() }) -func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if funcDidPanic, panicValue, panickedStack := didPanic(f); funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should not panic\n\tPanic value:\t%v\n\tPanic stack:\t%s", f, panicValue, panickedStack), msgAndArgs...) - } - - return true -} - -// WithinDuration asserts that the two times are within duration delta of each other. -// -// assert.WithinDuration(t, time.Now(), time.Now(), 10*time.Second) -func WithinDuration(t TestingT, expected, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - dt := expected.Sub(actual) - if dt < -delta || dt > delta { - return Fail(t, fmt.Sprintf("Max difference between %v and %v allowed is %v, but difference was %v", expected, actual, delta, dt), msgAndArgs...) - } - - return true -} - -// WithinRange asserts that a time is within a time range (inclusive). -// -// assert.WithinRange(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second)) -func WithinRange(t TestingT, actual, start, end time.Time, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if end.Before(start) { - return Fail(t, "Start should be before end", msgAndArgs...) - } - - if actual.Before(start) { - return Fail(t, fmt.Sprintf("Time %v expected to be in time range %v to %v, but is before the range", actual, start, end), msgAndArgs...) - } else if actual.After(end) { - return Fail(t, fmt.Sprintf("Time %v expected to be in time range %v to %v, but is after the range", actual, start, end), msgAndArgs...) - } - - return true -} - -func toFloat(x interface{}) (float64, bool) { - var xf float64 - xok := true - - switch xn := x.(type) { - case uint: - xf = float64(xn) - case uint8: - xf = float64(xn) - case uint16: - xf = float64(xn) - case uint32: - xf = float64(xn) - case uint64: - xf = float64(xn) - case int: - xf = float64(xn) - case int8: - xf = float64(xn) - case int16: - xf = float64(xn) - case int32: - xf = float64(xn) - case int64: - xf = float64(xn) - case float32: - xf = float64(xn) - case float64: - xf = xn - case time.Duration: - xf = float64(xn) - default: - xok = false - } - - return xf, xok -} - -// InDelta asserts that the two numerals are within delta of each other. -// -// assert.InDelta(t, math.Pi, 22/7.0, 0.01) -func InDelta(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - af, aok := toFloat(expected) - bf, bok := toFloat(actual) - - if !aok || !bok { - return Fail(t, "Parameters must be numerical", msgAndArgs...) - } - - if math.IsNaN(af) && math.IsNaN(bf) { - return true - } - - if math.IsNaN(af) { - return Fail(t, "Expected must not be NaN", msgAndArgs...) - } - - if math.IsNaN(bf) { - return Fail(t, fmt.Sprintf("Expected %v with delta %v, but was NaN", expected, delta), msgAndArgs...) - } - - dt := af - bf - if dt < -delta || dt > delta { - return Fail(t, fmt.Sprintf("Max difference between %v and %v allowed is %v, but difference was %v", expected, actual, delta, dt), msgAndArgs...) - } - - return true -} - -// InDeltaSlice is the same as InDelta, except it compares two slices. -func InDeltaSlice(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if expected == nil || actual == nil || - reflect.TypeOf(actual).Kind() != reflect.Slice || - reflect.TypeOf(expected).Kind() != reflect.Slice { - return Fail(t, "Parameters must be slice", msgAndArgs...) - } - - actualSlice := reflect.ValueOf(actual) - expectedSlice := reflect.ValueOf(expected) - - for i := 0; i < actualSlice.Len(); i++ { - result := InDelta(t, actualSlice.Index(i).Interface(), expectedSlice.Index(i).Interface(), delta, msgAndArgs...) - if !result { - return result - } - } - - return true -} - -// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func InDeltaMapValues(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if expected == nil || actual == nil || - reflect.TypeOf(actual).Kind() != reflect.Map || - reflect.TypeOf(expected).Kind() != reflect.Map { - return Fail(t, "Arguments must be maps", msgAndArgs...) - } - - expectedMap := reflect.ValueOf(expected) - actualMap := reflect.ValueOf(actual) - - if expectedMap.Len() != actualMap.Len() { - return Fail(t, "Arguments must have the same number of keys", msgAndArgs...) - } - - for _, k := range expectedMap.MapKeys() { - ev := expectedMap.MapIndex(k) - av := actualMap.MapIndex(k) - - if !ev.IsValid() { - return Fail(t, fmt.Sprintf("missing key %q in expected map", k), msgAndArgs...) - } - - if !av.IsValid() { - return Fail(t, fmt.Sprintf("missing key %q in actual map", k), msgAndArgs...) - } - - if !InDelta( - t, - ev.Interface(), - av.Interface(), - delta, - msgAndArgs..., - ) { - return false - } - } - - return true -} - -func calcRelativeError(expected, actual interface{}) (float64, error) { - af, aok := toFloat(expected) - bf, bok := toFloat(actual) - if !aok || !bok { - return 0, fmt.Errorf("Parameters must be numerical") - } - if math.IsNaN(af) && math.IsNaN(bf) { - return 0, nil - } - if math.IsNaN(af) { - return 0, errors.New("expected value must not be NaN") - } - if af == 0 { - return 0, fmt.Errorf("expected value must have a value other than zero to calculate the relative error") - } - if math.IsNaN(bf) { - return 0, errors.New("actual value must not be NaN") - } - - return math.Abs(af-bf) / math.Abs(af), nil -} - -// InEpsilon asserts that expected and actual have a relative error less than epsilon -func InEpsilon(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if math.IsNaN(epsilon) { - return Fail(t, "epsilon must not be NaN", msgAndArgs...) - } - actualEpsilon, err := calcRelativeError(expected, actual) - if err != nil { - return Fail(t, err.Error(), msgAndArgs...) - } - if math.IsNaN(actualEpsilon) { - return Fail(t, "relative error is NaN", msgAndArgs...) - } - if actualEpsilon > epsilon { - return Fail(t, fmt.Sprintf("Relative error is too high: %#v (expected)\n"+ - " < %#v (actual)", epsilon, actualEpsilon), msgAndArgs...) - } - - return true -} - -// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices. -func InEpsilonSlice(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - if expected == nil || actual == nil { - return Fail(t, "Parameters must be slice", msgAndArgs...) - } - - expectedSlice := reflect.ValueOf(expected) - actualSlice := reflect.ValueOf(actual) - - if expectedSlice.Type().Kind() != reflect.Slice { - return Fail(t, "Expected value must be slice", msgAndArgs...) - } - - expectedLen := expectedSlice.Len() - if !IsType(t, expected, actual) || !Len(t, actual, expectedLen) { - return false - } - - for i := 0; i < expectedLen; i++ { - if !InEpsilon(t, expectedSlice.Index(i).Interface(), actualSlice.Index(i).Interface(), epsilon, "at index %d", i) { - return false - } - } - - return true -} - -/* - Errors -*/ - -// NoError asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if assert.NoError(t, err) { -// assert.Equal(t, expectedObj, actualObj) -// } -func NoError(t TestingT, err error, msgAndArgs ...interface{}) bool { - if err != nil { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, fmt.Sprintf("Received unexpected error:\n%+v", err), msgAndArgs...) - } - - return true -} - -// Error asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// assert.Error(t, err) -func Error(t TestingT, err error, msgAndArgs ...interface{}) bool { - if err == nil { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return Fail(t, "An error is expected but got nil.", msgAndArgs...) - } - - return true -} - -// EqualError asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// assert.EqualError(t, err, expectedErrorString) -func EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if !Error(t, theError, msgAndArgs...) { - return false - } - expected := errString - actual := theError.Error() - // don't need to use deep equals here, we know they are both strings - if expected != actual { - return Fail(t, fmt.Sprintf("Error message not equal:\n"+ - "expected: %q\n"+ - "actual : %q", expected, actual), msgAndArgs...) - } - return true -} - -// ErrorContains asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// assert.ErrorContains(t, err, expectedErrorSubString) -func ErrorContains(t TestingT, theError error, contains string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if !Error(t, theError, msgAndArgs...) { - return false - } - - actual := theError.Error() - if !strings.Contains(actual, contains) { - return Fail(t, fmt.Sprintf("Error %#v does not contain %#v", actual, contains), msgAndArgs...) - } - - return true -} - -// matchRegexp return true if a specified regexp matches a string. -func matchRegexp(rx interface{}, str interface{}) bool { - var r *regexp.Regexp - if rr, ok := rx.(*regexp.Regexp); ok { - r = rr - } else { - r = regexp.MustCompile(fmt.Sprint(rx)) - } - - switch v := str.(type) { - case []byte: - return r.Match(v) - case string: - return r.MatchString(v) - default: - return r.MatchString(fmt.Sprint(v)) - } -} - -// Regexp asserts that a specified regexp matches a string. -// -// assert.Regexp(t, regexp.MustCompile("start"), "it's starting") -// assert.Regexp(t, "start...$", "it's not starting") -func Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - match := matchRegexp(rx, str) - - if !match { - Fail(t, fmt.Sprintf("Expect \"%v\" to match \"%v\"", str, rx), msgAndArgs...) - } - - return match -} - -// NotRegexp asserts that a specified regexp does not match a string. -// -// assert.NotRegexp(t, regexp.MustCompile("starts"), "it's starting") -// assert.NotRegexp(t, "^start", "it's not starting") -func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - match := matchRegexp(rx, str) - - if match { - Fail(t, fmt.Sprintf("Expect \"%v\" to NOT match \"%v\"", str, rx), msgAndArgs...) - } - - return !match -} - -// Zero asserts that i is the zero value for its type. -func Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if i != nil && !reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) { - return Fail(t, fmt.Sprintf("Should be zero, but was %v", i), msgAndArgs...) - } - return true -} - -// NotZero asserts that i is not the zero value for its type. -func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if i == nil || reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) { - return Fail(t, fmt.Sprintf("Should not be zero, but was %v", i), msgAndArgs...) - } - return true -} - -// FileExists checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - info, err := os.Lstat(path) - if err != nil { - if os.IsNotExist(err) { - return Fail(t, fmt.Sprintf("unable to find file %q", path), msgAndArgs...) - } - return Fail(t, fmt.Sprintf("error when running os.Lstat(%q): %s", path, err), msgAndArgs...) - } - if info.IsDir() { - return Fail(t, fmt.Sprintf("%q is a directory", path), msgAndArgs...) - } - return true -} - -// NoFileExists checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - info, err := os.Lstat(path) - if err != nil { - return true - } - if info.IsDir() { - return true - } - return Fail(t, fmt.Sprintf("file %q exists", path), msgAndArgs...) -} - -// DirExists checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - info, err := os.Lstat(path) - if err != nil { - if os.IsNotExist(err) { - return Fail(t, fmt.Sprintf("unable to find file %q", path), msgAndArgs...) - } - return Fail(t, fmt.Sprintf("error when running os.Lstat(%q): %s", path, err), msgAndArgs...) - } - if !info.IsDir() { - return Fail(t, fmt.Sprintf("%q is a file", path), msgAndArgs...) - } - return true -} - -// NoDirExists checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - info, err := os.Lstat(path) - if err != nil { - if os.IsNotExist(err) { - return true - } - return true - } - if !info.IsDir() { - return true - } - return Fail(t, fmt.Sprintf("directory %q exists", path), msgAndArgs...) -} - -// JSONEq asserts that two JSON strings are equivalent. -// -// assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) -func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - var expectedJSONAsInterface, actualJSONAsInterface interface{} - - if err := json.Unmarshal([]byte(expected), &expectedJSONAsInterface); err != nil { - return Fail(t, fmt.Sprintf("Expected value ('%s') is not valid json.\nJSON parsing error: '%s'", expected, err.Error()), msgAndArgs...) - } - - // Shortcut if same bytes - if actual == expected { - return true - } - - if err := json.Unmarshal([]byte(actual), &actualJSONAsInterface); err != nil { - return Fail(t, fmt.Sprintf("Input ('%s') needs to be valid json.\nJSON parsing error: '%s'", actual, err.Error()), msgAndArgs...) - } - - return Equal(t, expectedJSONAsInterface, actualJSONAsInterface, msgAndArgs...) -} - -// YAMLEq asserts that two YAML strings are equivalent. -func YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - var expectedYAMLAsInterface, actualYAMLAsInterface interface{} - - if err := yaml.Unmarshal([]byte(expected), &expectedYAMLAsInterface); err != nil { - return Fail(t, fmt.Sprintf("Expected value ('%s') is not valid yaml.\nYAML parsing error: '%s'", expected, err.Error()), msgAndArgs...) - } - - // Shortcut if same bytes - if actual == expected { - return true - } - - if err := yaml.Unmarshal([]byte(actual), &actualYAMLAsInterface); err != nil { - return Fail(t, fmt.Sprintf("Input ('%s') needs to be valid yaml.\nYAML error: '%s'", actual, err.Error()), msgAndArgs...) - } - - return Equal(t, expectedYAMLAsInterface, actualYAMLAsInterface, msgAndArgs...) -} - -func typeAndKind(v interface{}) (reflect.Type, reflect.Kind) { - t := reflect.TypeOf(v) - k := t.Kind() - - if k == reflect.Ptr { - t = t.Elem() - k = t.Kind() - } - return t, k -} - -// diff returns a diff of both values as long as both are of the same type and -// are a struct, map, slice, array or string. Otherwise it returns an empty string. -func diff(expected interface{}, actual interface{}) string { - if expected == nil || actual == nil { - return "" - } - - et, ek := typeAndKind(expected) - at, _ := typeAndKind(actual) - - if et != at { - return "" - } - - if ek != reflect.Struct && ek != reflect.Map && ek != reflect.Slice && ek != reflect.Array && ek != reflect.String { - return "" - } - - var e, a string - - switch et { - case reflect.TypeOf(""): - e = reflect.ValueOf(expected).String() - a = reflect.ValueOf(actual).String() - case reflect.TypeOf(time.Time{}): - e = spewConfigStringerEnabled.Sdump(expected) - a = spewConfigStringerEnabled.Sdump(actual) - default: - e = spewConfig.Sdump(expected) - a = spewConfig.Sdump(actual) - } - - diff, _ := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{ - A: difflib.SplitLines(e), - B: difflib.SplitLines(a), - FromFile: "Expected", - FromDate: "", - ToFile: "Actual", - ToDate: "", - Context: 1, - }) - - return "\n\nDiff:\n" + diff -} - -func isFunction(arg interface{}) bool { - if arg == nil { - return false - } - return reflect.TypeOf(arg).Kind() == reflect.Func -} - -var spewConfig = spew.ConfigState{ - Indent: " ", - DisablePointerAddresses: true, - DisableCapacities: true, - SortKeys: true, - DisableMethods: true, - MaxDepth: 10, -} - -var spewConfigStringerEnabled = spew.ConfigState{ - Indent: " ", - DisablePointerAddresses: true, - DisableCapacities: true, - SortKeys: true, - MaxDepth: 10, -} - -type tHelper = interface { - Helper() -} - -// Eventually asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// assert.Eventually(t, func() bool { return true; }, time.Second, 10*time.Millisecond) -func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - ch := make(chan bool, 1) - checkCond := func() { ch <- condition() } - - timer := time.NewTimer(waitFor) - defer timer.Stop() - - ticker := time.NewTicker(tick) - defer ticker.Stop() - - var tickC <-chan time.Time - - // Check the condition once first on the initial call. - go checkCond() - - for { - select { - case <-timer.C: - return Fail(t, "Condition never satisfied", msgAndArgs...) - case <-tickC: - tickC = nil - go checkCond() - case v := <-ch: - if v { - return true - } - tickC = ticker.C - } - } -} - -// CollectT implements the TestingT interface and collects all errors. -type CollectT struct { - // A slice of errors. Non-nil slice denotes a failure. - // If it's non-nil but len(c.errors) == 0, this is also a failure - // obtained by direct c.FailNow() call. - errors []error -} - -// Helper is like [testing.T.Helper] but does nothing. -func (CollectT) Helper() {} - -// Errorf collects the error. -func (c *CollectT) Errorf(format string, args ...interface{}) { - c.errors = append(c.errors, fmt.Errorf(format, args...)) -} - -// FailNow stops execution by calling runtime.Goexit. -func (c *CollectT) FailNow() { - c.fail() - runtime.Goexit() -} - -// Deprecated: That was a method for internal usage that should not have been published. Now just panics. -func (*CollectT) Reset() { - panic("Reset() is deprecated") -} - -// Deprecated: That was a method for internal usage that should not have been published. Now just panics. -func (*CollectT) Copy(TestingT) { - panic("Copy() is deprecated") -} - -func (c *CollectT) fail() { - if !c.failed() { - c.errors = []error{} // Make it non-nil to mark a failure. - } -} - -func (c *CollectT) failed() bool { - return c.errors != nil -} - -// EventuallyWithT asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// assert.EventuallyWithT(t, func(c *assert.CollectT) { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") -func EventuallyWithT(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - var lastFinishedTickErrs []error - ch := make(chan *CollectT, 1) - - checkCond := func() { - collect := new(CollectT) - defer func() { - ch <- collect - }() - condition(collect) - } - - timer := time.NewTimer(waitFor) - defer timer.Stop() - - ticker := time.NewTicker(tick) - defer ticker.Stop() - - var tickC <-chan time.Time - - // Check the condition once first on the initial call. - go checkCond() - - for { - select { - case <-timer.C: - for _, err := range lastFinishedTickErrs { - t.Errorf("%v", err) - } - return Fail(t, "Condition never satisfied", msgAndArgs...) - case <-tickC: - tickC = nil - go checkCond() - case collect := <-ch: - if !collect.failed() { - return true - } - // Keep the errors from the last ended condition, so that they can be copied to t if timeout is reached. - lastFinishedTickErrs = collect.errors - tickC = ticker.C - } - } -} - -// Never asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// assert.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond) -func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - - ch := make(chan bool, 1) - checkCond := func() { ch <- condition() } - - timer := time.NewTimer(waitFor) - defer timer.Stop() - - ticker := time.NewTicker(tick) - defer ticker.Stop() - - var tickC <-chan time.Time - - // Check the condition once first on the initial call. - go checkCond() - - for { - select { - case <-timer.C: - return true - case <-tickC: - tickC = nil - go checkCond() - case v := <-ch: - if v { - return Fail(t, "Condition satisfied", msgAndArgs...) - } - tickC = ticker.C - } - } -} - -// ErrorIs asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func ErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if errors.Is(err, target) { - return true - } - - var expectedText string - if target != nil { - expectedText = target.Error() - if err == nil { - return Fail(t, fmt.Sprintf("Expected error with %q in chain but got nil.", expectedText), msgAndArgs...) - } - } - - chain := buildErrorChainString(err, false) - - return Fail(t, fmt.Sprintf("Target error should be in err chain:\n"+ - "expected: %q\n"+ - "in chain: %s", expectedText, chain, - ), msgAndArgs...) -} - -// NotErrorIs asserts that none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func NotErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if !errors.Is(err, target) { - return true - } - - var expectedText string - if target != nil { - expectedText = target.Error() - } - - chain := buildErrorChainString(err, false) - - return Fail(t, fmt.Sprintf("Target error should not be in err chain:\n"+ - "found: %q\n"+ - "in chain: %s", expectedText, chain, - ), msgAndArgs...) -} - -// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if errors.As(err, target) { - return true - } - - expectedType := reflect.TypeOf(target).Elem().String() - if err == nil { - return Fail(t, fmt.Sprintf("An error is expected but got nil.\n"+ - "expected: %s", expectedType), msgAndArgs...) - } - - chain := buildErrorChainString(err, true) - - return Fail(t, fmt.Sprintf("Should be in error chain:\n"+ - "expected: %s\n"+ - "in chain: %s", expectedType, chain, - ), msgAndArgs...) -} - -// NotErrorAs asserts that none of the errors in err's chain matches target, -// but if so, sets target to that error value. -func NotErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if !errors.As(err, target) { - return true - } - - chain := buildErrorChainString(err, true) - - return Fail(t, fmt.Sprintf("Target error should not be in err chain:\n"+ - "found: %s\n"+ - "in chain: %s", reflect.TypeOf(target).Elem().String(), chain, - ), msgAndArgs...) -} - -func unwrapAll(err error) (errs []error) { - errs = append(errs, err) - switch x := err.(type) { - case interface{ Unwrap() error }: - err = x.Unwrap() - if err == nil { - return - } - errs = append(errs, unwrapAll(err)...) - case interface{ Unwrap() []error }: - for _, err := range x.Unwrap() { - errs = append(errs, unwrapAll(err)...) - } - } - return -} - -func buildErrorChainString(err error, withType bool) string { - if err == nil { - return "" - } - - var chain string - errs := unwrapAll(err) - for i := range errs { - if i != 0 { - chain += "\n\t" - } - chain += fmt.Sprintf("%q", errs[i].Error()) - if withType { - chain += fmt.Sprintf(" (%T)", errs[i]) - } - } - return chain -} diff --git a/vendor/github.com/stretchr/testify/assert/doc.go b/vendor/github.com/stretchr/testify/assert/doc.go deleted file mode 100644 index a0b953a..0000000 --- a/vendor/github.com/stretchr/testify/assert/doc.go +++ /dev/null @@ -1,50 +0,0 @@ -// Package assert provides a set of comprehensive testing tools for use with the normal Go testing system. -// -// # Note -// -// All functions in this package return a bool value indicating whether the assertion has passed. -// -// # Example Usage -// -// The following is a complete example using assert in a standard test function: -// -// import ( -// "testing" -// "github.com/stretchr/testify/assert" -// ) -// -// func TestSomething(t *testing.T) { -// -// var a string = "Hello" -// var b string = "Hello" -// -// assert.Equal(t, a, b, "The two words should be the same.") -// -// } -// -// if you assert many times, use the format below: -// -// import ( -// "testing" -// "github.com/stretchr/testify/assert" -// ) -// -// func TestSomething(t *testing.T) { -// assert := assert.New(t) -// -// var a string = "Hello" -// var b string = "Hello" -// -// assert.Equal(a, b, "The two words should be the same.") -// } -// -// # Assertions -// -// Assertions allow you to easily write test code, and are global funcs in the `assert` package. -// All assertion functions take, as the first argument, the `*testing.T` object provided by the -// testing framework. This allows the assertion funcs to write the failings and other details to -// the correct place. -// -// Every assertion function also takes an optional string message as the final argument, -// allowing custom error messages to be appended to the message the assertion method outputs. -package assert diff --git a/vendor/github.com/stretchr/testify/assert/errors.go b/vendor/github.com/stretchr/testify/assert/errors.go deleted file mode 100644 index ac9dc9d..0000000 --- a/vendor/github.com/stretchr/testify/assert/errors.go +++ /dev/null @@ -1,10 +0,0 @@ -package assert - -import ( - "errors" -) - -// AnError is an error instance useful for testing. If the code does not care -// about error specifics, and only needs to return the error for example, this -// error should be used to make the test code more readable. -var AnError = errors.New("assert.AnError general error for testing") diff --git a/vendor/github.com/stretchr/testify/assert/forward_assertions.go b/vendor/github.com/stretchr/testify/assert/forward_assertions.go deleted file mode 100644 index df189d2..0000000 --- a/vendor/github.com/stretchr/testify/assert/forward_assertions.go +++ /dev/null @@ -1,16 +0,0 @@ -package assert - -// Assertions provides assertion methods around the -// TestingT interface. -type Assertions struct { - t TestingT -} - -// New makes a new Assertions object for the specified TestingT. -func New(t TestingT) *Assertions { - return &Assertions{ - t: t, - } -} - -//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs" diff --git a/vendor/github.com/stretchr/testify/assert/http_assertions.go b/vendor/github.com/stretchr/testify/assert/http_assertions.go deleted file mode 100644 index 5a6bb75..0000000 --- a/vendor/github.com/stretchr/testify/assert/http_assertions.go +++ /dev/null @@ -1,165 +0,0 @@ -package assert - -import ( - "fmt" - "net/http" - "net/http/httptest" - "net/url" - "strings" -) - -// httpCode is a helper that returns HTTP code of the response. It returns -1 and -// an error if building a new request fails. -func httpCode(handler http.HandlerFunc, method, url string, values url.Values) (int, error) { - w := httptest.NewRecorder() - req, err := http.NewRequest(method, url, http.NoBody) - if err != nil { - return -1, err - } - req.URL.RawQuery = values.Encode() - handler(w, req) - return w.Code, nil -} - -// HTTPSuccess asserts that a specified handler returns a success status code. -// -// assert.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil) -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPSuccess(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - code, err := httpCode(handler, method, url, values) - if err != nil { - Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err), msgAndArgs...) - } - - isSuccessCode := code >= http.StatusOK && code <= http.StatusPartialContent - if !isSuccessCode { - Fail(t, fmt.Sprintf("Expected HTTP success status code for %q but received %d", url+"?"+values.Encode(), code), msgAndArgs...) - } - - return isSuccessCode -} - -// HTTPRedirect asserts that a specified handler returns a redirect status code. -// -// assert.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPRedirect(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - code, err := httpCode(handler, method, url, values) - if err != nil { - Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err), msgAndArgs...) - } - - isRedirectCode := code >= http.StatusMultipleChoices && code <= http.StatusTemporaryRedirect - if !isRedirectCode { - Fail(t, fmt.Sprintf("Expected HTTP redirect status code for %q but received %d", url+"?"+values.Encode(), code), msgAndArgs...) - } - - return isRedirectCode -} - -// HTTPError asserts that a specified handler returns an error status code. -// -// assert.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - code, err := httpCode(handler, method, url, values) - if err != nil { - Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err), msgAndArgs...) - } - - isErrorCode := code >= http.StatusBadRequest - if !isErrorCode { - Fail(t, fmt.Sprintf("Expected HTTP error status code for %q but received %d", url+"?"+values.Encode(), code), msgAndArgs...) - } - - return isErrorCode -} - -// HTTPStatusCode asserts that a specified handler returns a specified status code. -// -// assert.HTTPStatusCode(t, myHandler, "GET", "/notImplemented", nil, 501) -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPStatusCode(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - code, err := httpCode(handler, method, url, values) - if err != nil { - Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err), msgAndArgs...) - } - - successful := code == statuscode - if !successful { - Fail(t, fmt.Sprintf("Expected HTTP status code %d for %q but received %d", statuscode, url+"?"+values.Encode(), code), msgAndArgs...) - } - - return successful -} - -// HTTPBody is a helper that returns HTTP body of the response. It returns -// empty string if building a new request fails. -func HTTPBody(handler http.HandlerFunc, method, url string, values url.Values) string { - w := httptest.NewRecorder() - if len(values) > 0 { - url += "?" + values.Encode() - } - req, err := http.NewRequest(method, url, http.NoBody) - if err != nil { - return "" - } - handler(w, req) - return w.Body.String() -} - -// HTTPBodyContains asserts that a specified handler returns a -// body that contains a string. -// -// assert.HTTPBodyContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - body := HTTPBody(handler, method, url, values) - - contains := strings.Contains(body, fmt.Sprint(str)) - if !contains { - Fail(t, fmt.Sprintf("Expected response body for %q to contain %q but found %q", url+"?"+values.Encode(), str, body), msgAndArgs...) - } - - return contains -} - -// HTTPBodyNotContains asserts that a specified handler returns a -// body that does not contain a string. -// -// assert.HTTPBodyNotContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - body := HTTPBody(handler, method, url, values) - - contains := strings.Contains(body, fmt.Sprint(str)) - if contains { - Fail(t, fmt.Sprintf("Expected response body for %q to NOT contain %q but found %q", url+"?"+values.Encode(), str, body), msgAndArgs...) - } - - return !contains -} diff --git a/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go b/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go deleted file mode 100644 index 5a74c4f..0000000 --- a/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go +++ /dev/null @@ -1,24 +0,0 @@ -//go:build testify_yaml_custom && !testify_yaml_fail && !testify_yaml_default - -// Package yaml is an implementation of YAML functions that calls a pluggable implementation. -// -// This implementation is selected with the testify_yaml_custom build tag. -// -// go test -tags testify_yaml_custom -// -// This implementation can be used at build time to replace the default implementation -// to avoid linking with [gopkg.in/yaml.v3]. -// -// In your test package: -// -// import assertYaml "github.com/stretchr/testify/assert/yaml" -// -// func init() { -// assertYaml.Unmarshal = func (in []byte, out interface{}) error { -// // ... -// return nil -// } -// } -package yaml - -var Unmarshal func(in []byte, out interface{}) error diff --git a/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go b/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go deleted file mode 100644 index 0bae80e..0000000 --- a/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go +++ /dev/null @@ -1,36 +0,0 @@ -//go:build !testify_yaml_fail && !testify_yaml_custom - -// Package yaml is just an indirection to handle YAML deserialization. -// -// This package is just an indirection that allows the builder to override the -// indirection with an alternative implementation of this package that uses -// another implementation of YAML deserialization. This allows to not either not -// use YAML deserialization at all, or to use another implementation than -// [gopkg.in/yaml.v3] (for example for license compatibility reasons, see [PR #1120]). -// -// Alternative implementations are selected using build tags: -// -// - testify_yaml_fail: [Unmarshal] always fails with an error -// - testify_yaml_custom: [Unmarshal] is a variable. Caller must initialize it -// before calling any of [github.com/stretchr/testify/assert.YAMLEq] or -// [github.com/stretchr/testify/assert.YAMLEqf]. -// -// Usage: -// -// go test -tags testify_yaml_fail -// -// You can check with "go list" which implementation is linked: -// -// go list -f '{{.Imports}}' github.com/stretchr/testify/assert/yaml -// go list -tags testify_yaml_fail -f '{{.Imports}}' github.com/stretchr/testify/assert/yaml -// go list -tags testify_yaml_custom -f '{{.Imports}}' github.com/stretchr/testify/assert/yaml -// -// [PR #1120]: https://github.com/stretchr/testify/pull/1120 -package yaml - -import goyaml "gopkg.in/yaml.v3" - -// Unmarshal is just a wrapper of [gopkg.in/yaml.v3.Unmarshal]. -func Unmarshal(in []byte, out interface{}) error { - return goyaml.Unmarshal(in, out) -} diff --git a/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go b/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go deleted file mode 100644 index 8041803..0000000 --- a/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go +++ /dev/null @@ -1,17 +0,0 @@ -//go:build testify_yaml_fail && !testify_yaml_custom && !testify_yaml_default - -// Package yaml is an implementation of YAML functions that always fail. -// -// This implementation can be used at build time to replace the default implementation -// to avoid linking with [gopkg.in/yaml.v3]: -// -// go test -tags testify_yaml_fail -package yaml - -import "errors" - -var errNotImplemented = errors.New("YAML functions are not available (see https://pkg.go.dev/github.com/stretchr/testify/assert/yaml)") - -func Unmarshal([]byte, interface{}) error { - return errNotImplemented -} diff --git a/vendor/github.com/stretchr/testify/require/doc.go b/vendor/github.com/stretchr/testify/require/doc.go deleted file mode 100644 index c8e3f94..0000000 --- a/vendor/github.com/stretchr/testify/require/doc.go +++ /dev/null @@ -1,31 +0,0 @@ -// Package require implements the same assertions as the `assert` package but -// stops test execution when a test fails. -// -// # Example Usage -// -// The following is a complete example using require in a standard test function: -// -// import ( -// "testing" -// "github.com/stretchr/testify/require" -// ) -// -// func TestSomething(t *testing.T) { -// -// var a string = "Hello" -// var b string = "Hello" -// -// require.Equal(t, a, b, "The two words should be the same.") -// -// } -// -// # Assertions -// -// The `require` package have same global functions as in the `assert` package, -// but instead of returning a boolean result they call `t.FailNow()`. -// A consequence of this is that it must be called from the goroutine running -// the test function, not from other goroutines created during the test. -// -// Every assertion function also takes an optional string message as the final argument, -// allowing custom error messages to be appended to the message the assertion method outputs. -package require diff --git a/vendor/github.com/stretchr/testify/require/forward_requirements.go b/vendor/github.com/stretchr/testify/require/forward_requirements.go deleted file mode 100644 index 1dcb233..0000000 --- a/vendor/github.com/stretchr/testify/require/forward_requirements.go +++ /dev/null @@ -1,16 +0,0 @@ -package require - -// Assertions provides assertion methods around the -// TestingT interface. -type Assertions struct { - t TestingT -} - -// New makes a new Assertions object for the specified TestingT. -func New(t TestingT) *Assertions { - return &Assertions{ - t: t, - } -} - -//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=require -template=require_forward.go.tmpl -include-format-funcs" diff --git a/vendor/github.com/stretchr/testify/require/require.go b/vendor/github.com/stretchr/testify/require/require.go deleted file mode 100644 index 2d02f9b..0000000 --- a/vendor/github.com/stretchr/testify/require/require.go +++ /dev/null @@ -1,2180 +0,0 @@ -// Code generated with github.com/stretchr/testify/_codegen; DO NOT EDIT. - -package require - -import ( - assert "github.com/stretchr/testify/assert" - http "net/http" - url "net/url" - time "time" -) - -// Condition uses a Comparison to assert a complex condition. -func Condition(t TestingT, comp assert.Comparison, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Condition(t, comp, msgAndArgs...) { - return - } - t.FailNow() -} - -// Conditionf uses a Comparison to assert a complex condition. -func Conditionf(t TestingT, comp assert.Comparison, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Conditionf(t, comp, msg, args...) { - return - } - t.FailNow() -} - -// Contains asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// require.Contains(t, "Hello World", "World") -// require.Contains(t, ["Hello", "World"], "World") -// require.Contains(t, {"Hello": "World"}, "Hello") -func Contains(t TestingT, s interface{}, contains interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Contains(t, s, contains, msgAndArgs...) { - return - } - t.FailNow() -} - -// Containsf asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// require.Containsf(t, "Hello World", "World", "error message %s", "formatted") -// require.Containsf(t, ["Hello", "World"], "World", "error message %s", "formatted") -// require.Containsf(t, {"Hello": "World"}, "Hello", "error message %s", "formatted") -func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Containsf(t, s, contains, msg, args...) { - return - } - t.FailNow() -} - -// DirExists checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func DirExists(t TestingT, path string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.DirExists(t, path, msgAndArgs...) { - return - } - t.FailNow() -} - -// DirExistsf checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func DirExistsf(t TestingT, path string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.DirExistsf(t, path, msg, args...) { - return - } - t.FailNow() -} - -// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// require.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2]) -func ElementsMatch(t TestingT, listA interface{}, listB interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ElementsMatch(t, listA, listB, msgAndArgs...) { - return - } - t.FailNow() -} - -// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// require.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") -func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ElementsMatchf(t, listA, listB, msg, args...) { - return - } - t.FailNow() -} - -// Empty asserts that the given value is "empty". -// -// [Zero values] are "empty". -// -// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). -// -// Slices, maps and channels with zero length are "empty". -// -// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". -// -// require.Empty(t, obj) -// -// [Zero values]: https://go.dev/ref/spec#The_zero_value -func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Empty(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// Emptyf asserts that the given value is "empty". -// -// [Zero values] are "empty". -// -// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). -// -// Slices, maps and channels with zero length are "empty". -// -// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". -// -// require.Emptyf(t, obj, "error message %s", "formatted") -// -// [Zero values]: https://go.dev/ref/spec#The_zero_value -func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Emptyf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// Equal asserts that two objects are equal. -// -// require.Equal(t, 123, 123) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func Equal(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Equal(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// EqualError asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// require.EqualError(t, err, expectedErrorString) -func EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualError(t, theError, errString, msgAndArgs...) { - return - } - t.FailNow() -} - -// EqualErrorf asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// require.EqualErrorf(t, err, expectedErrorString, "error message %s", "formatted") -func EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualErrorf(t, theError, errString, msg, args...) { - return - } - t.FailNow() -} - -// EqualExportedValues asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// require.EqualExportedValues(t, S{1, 2}, S{1, 3}) => true -// require.EqualExportedValues(t, S{1, 2}, S{2, 3}) => false -func EqualExportedValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualExportedValues(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// EqualExportedValuesf asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// require.EqualExportedValuesf(t, S{1, 2}, S{1, 3}, "error message %s", "formatted") => true -// require.EqualExportedValuesf(t, S{1, 2}, S{2, 3}, "error message %s", "formatted") => false -func EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualExportedValuesf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// EqualValues asserts that two objects are equal or convertible to the larger -// type and equal. -// -// require.EqualValues(t, uint32(123), int32(123)) -func EqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualValues(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// EqualValuesf asserts that two objects are equal or convertible to the larger -// type and equal. -// -// require.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") -func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EqualValuesf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Equalf asserts that two objects are equal. -// -// require.Equalf(t, 123, 123, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Equalf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Error asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// require.Error(t, err) -func Error(t TestingT, err error, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Error(t, err, msgAndArgs...) { - return - } - t.FailNow() -} - -// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorAs(t, err, target, msgAndArgs...) { - return - } - t.FailNow() -} - -// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorAsf(t, err, target, msg, args...) { - return - } - t.FailNow() -} - -// ErrorContains asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// require.ErrorContains(t, err, expectedErrorSubString) -func ErrorContains(t TestingT, theError error, contains string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorContains(t, theError, contains, msgAndArgs...) { - return - } - t.FailNow() -} - -// ErrorContainsf asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// require.ErrorContainsf(t, err, expectedErrorSubString, "error message %s", "formatted") -func ErrorContainsf(t TestingT, theError error, contains string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorContainsf(t, theError, contains, msg, args...) { - return - } - t.FailNow() -} - -// ErrorIs asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func ErrorIs(t TestingT, err error, target error, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorIs(t, err, target, msgAndArgs...) { - return - } - t.FailNow() -} - -// ErrorIsf asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.ErrorIsf(t, err, target, msg, args...) { - return - } - t.FailNow() -} - -// Errorf asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// require.Errorf(t, err, "error message %s", "formatted") -func Errorf(t TestingT, err error, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Errorf(t, err, msg, args...) { - return - } - t.FailNow() -} - -// Eventually asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// require.Eventually(t, func() bool { return true; }, time.Second, 10*time.Millisecond) -func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Eventually(t, condition, waitFor, tick, msgAndArgs...) { - return - } - t.FailNow() -} - -// EventuallyWithT asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// require.EventuallyWithT(t, func(c *require.CollectT) { -// // add assertions as needed; any assertion failure will fail the current tick -// require.True(c, externalValue, "expected 'externalValue' to be true") -// }, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") -func EventuallyWithT(t TestingT, condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EventuallyWithT(t, condition, waitFor, tick, msgAndArgs...) { - return - } - t.FailNow() -} - -// EventuallyWithTf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// require.EventuallyWithTf(t, func(c *require.CollectT, "error message %s", "formatted") { -// // add assertions as needed; any assertion failure will fail the current tick -// require.True(c, externalValue, "expected 'externalValue' to be true") -// }, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") -func EventuallyWithTf(t TestingT, condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.EventuallyWithTf(t, condition, waitFor, tick, msg, args...) { - return - } - t.FailNow() -} - -// Eventuallyf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// require.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Eventuallyf(t, condition, waitFor, tick, msg, args...) { - return - } - t.FailNow() -} - -// Exactly asserts that two objects are equal in value and type. -// -// require.Exactly(t, int32(123), int64(123)) -func Exactly(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Exactly(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// Exactlyf asserts that two objects are equal in value and type. -// -// require.Exactlyf(t, int32(123), int64(123), "error message %s", "formatted") -func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Exactlyf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Fail reports a failure through -func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Fail(t, failureMessage, msgAndArgs...) { - return - } - t.FailNow() -} - -// FailNow fails test -func FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.FailNow(t, failureMessage, msgAndArgs...) { - return - } - t.FailNow() -} - -// FailNowf fails test -func FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.FailNowf(t, failureMessage, msg, args...) { - return - } - t.FailNow() -} - -// Failf reports a failure through -func Failf(t TestingT, failureMessage string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Failf(t, failureMessage, msg, args...) { - return - } - t.FailNow() -} - -// False asserts that the specified value is false. -// -// require.False(t, myBool) -func False(t TestingT, value bool, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.False(t, value, msgAndArgs...) { - return - } - t.FailNow() -} - -// Falsef asserts that the specified value is false. -// -// require.Falsef(t, myBool, "error message %s", "formatted") -func Falsef(t TestingT, value bool, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Falsef(t, value, msg, args...) { - return - } - t.FailNow() -} - -// FileExists checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func FileExists(t TestingT, path string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.FileExists(t, path, msgAndArgs...) { - return - } - t.FailNow() -} - -// FileExistsf checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func FileExistsf(t TestingT, path string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.FileExistsf(t, path, msg, args...) { - return - } - t.FailNow() -} - -// Greater asserts that the first element is greater than the second -// -// require.Greater(t, 2, 1) -// require.Greater(t, float64(2), float64(1)) -// require.Greater(t, "b", "a") -func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Greater(t, e1, e2, msgAndArgs...) { - return - } - t.FailNow() -} - -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// require.GreaterOrEqual(t, 2, 1) -// require.GreaterOrEqual(t, 2, 2) -// require.GreaterOrEqual(t, "b", "a") -// require.GreaterOrEqual(t, "b", "b") -func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.GreaterOrEqual(t, e1, e2, msgAndArgs...) { - return - } - t.FailNow() -} - -// GreaterOrEqualf asserts that the first element is greater than or equal to the second -// -// require.GreaterOrEqualf(t, 2, 1, "error message %s", "formatted") -// require.GreaterOrEqualf(t, 2, 2, "error message %s", "formatted") -// require.GreaterOrEqualf(t, "b", "a", "error message %s", "formatted") -// require.GreaterOrEqualf(t, "b", "b", "error message %s", "formatted") -func GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.GreaterOrEqualf(t, e1, e2, msg, args...) { - return - } - t.FailNow() -} - -// Greaterf asserts that the first element is greater than the second -// -// require.Greaterf(t, 2, 1, "error message %s", "formatted") -// require.Greaterf(t, float64(2), float64(1), "error message %s", "formatted") -// require.Greaterf(t, "b", "a", "error message %s", "formatted") -func Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Greaterf(t, e1, e2, msg, args...) { - return - } - t.FailNow() -} - -// HTTPBodyContains asserts that a specified handler returns a -// body that contains a string. -// -// require.HTTPBodyContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPBodyContains(t, handler, method, url, values, str, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPBodyContainsf asserts that a specified handler returns a -// body that contains a string. -// -// require.HTTPBodyContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPBodyContainsf(t, handler, method, url, values, str, msg, args...) { - return - } - t.FailNow() -} - -// HTTPBodyNotContains asserts that a specified handler returns a -// body that does not contain a string. -// -// require.HTTPBodyNotContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPBodyNotContains(t, handler, method, url, values, str, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPBodyNotContainsf asserts that a specified handler returns a -// body that does not contain a string. -// -// require.HTTPBodyNotContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPBodyNotContainsf(t, handler, method, url, values, str, msg, args...) { - return - } - t.FailNow() -} - -// HTTPError asserts that a specified handler returns an error status code. -// -// require.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPError(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPError(t, handler, method, url, values, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPErrorf asserts that a specified handler returns an error status code. -// -// require.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPErrorf(t, handler, method, url, values, msg, args...) { - return - } - t.FailNow() -} - -// HTTPRedirect asserts that a specified handler returns a redirect status code. -// -// require.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPRedirect(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPRedirect(t, handler, method, url, values, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPRedirectf asserts that a specified handler returns a redirect status code. -// -// require.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPRedirectf(t, handler, method, url, values, msg, args...) { - return - } - t.FailNow() -} - -// HTTPStatusCode asserts that a specified handler returns a specified status code. -// -// require.HTTPStatusCode(t, myHandler, "GET", "/notImplemented", nil, 501) -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPStatusCode(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPStatusCode(t, handler, method, url, values, statuscode, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPStatusCodef asserts that a specified handler returns a specified status code. -// -// require.HTTPStatusCodef(t, myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPStatusCodef(t, handler, method, url, values, statuscode, msg, args...) { - return - } - t.FailNow() -} - -// HTTPSuccess asserts that a specified handler returns a success status code. -// -// require.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil) -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPSuccess(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPSuccess(t, handler, method, url, values, msgAndArgs...) { - return - } - t.FailNow() -} - -// HTTPSuccessf asserts that a specified handler returns a success status code. -// -// require.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.HTTPSuccessf(t, handler, method, url, values, msg, args...) { - return - } - t.FailNow() -} - -// Implements asserts that an object is implemented by the specified interface. -// -// require.Implements(t, (*MyInterface)(nil), new(MyObject)) -func Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Implements(t, interfaceObject, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// Implementsf asserts that an object is implemented by the specified interface. -// -// require.Implementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Implementsf(t, interfaceObject, object, msg, args...) { - return - } - t.FailNow() -} - -// InDelta asserts that the two numerals are within delta of each other. -// -// require.InDelta(t, math.Pi, 22/7.0, 0.01) -func InDelta(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDelta(t, expected, actual, delta, msgAndArgs...) { - return - } - t.FailNow() -} - -// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func InDeltaMapValues(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaMapValues(t, expected, actual, delta, msgAndArgs...) { - return - } - t.FailNow() -} - -// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaMapValuesf(t, expected, actual, delta, msg, args...) { - return - } - t.FailNow() -} - -// InDeltaSlice is the same as InDelta, except it compares two slices. -func InDeltaSlice(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaSlice(t, expected, actual, delta, msgAndArgs...) { - return - } - t.FailNow() -} - -// InDeltaSlicef is the same as InDelta, except it compares two slices. -func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaSlicef(t, expected, actual, delta, msg, args...) { - return - } - t.FailNow() -} - -// InDeltaf asserts that the two numerals are within delta of each other. -// -// require.InDeltaf(t, math.Pi, 22/7.0, 0.01, "error message %s", "formatted") -func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InDeltaf(t, expected, actual, delta, msg, args...) { - return - } - t.FailNow() -} - -// InEpsilon asserts that expected and actual have a relative error less than epsilon -func InEpsilon(t TestingT, expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InEpsilon(t, expected, actual, epsilon, msgAndArgs...) { - return - } - t.FailNow() -} - -// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices. -func InEpsilonSlice(t TestingT, expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InEpsilonSlice(t, expected, actual, epsilon, msgAndArgs...) { - return - } - t.FailNow() -} - -// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. -func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InEpsilonSlicef(t, expected, actual, epsilon, msg, args...) { - return - } - t.FailNow() -} - -// InEpsilonf asserts that expected and actual have a relative error less than epsilon -func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.InEpsilonf(t, expected, actual, epsilon, msg, args...) { - return - } - t.FailNow() -} - -// IsDecreasing asserts that the collection is decreasing -// -// require.IsDecreasing(t, []int{2, 1, 0}) -// require.IsDecreasing(t, []float{2, 1}) -// require.IsDecreasing(t, []string{"b", "a"}) -func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsDecreasing(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsDecreasingf asserts that the collection is decreasing -// -// require.IsDecreasingf(t, []int{2, 1, 0}, "error message %s", "formatted") -// require.IsDecreasingf(t, []float{2, 1}, "error message %s", "formatted") -// require.IsDecreasingf(t, []string{"b", "a"}, "error message %s", "formatted") -func IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsDecreasingf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// IsIncreasing asserts that the collection is increasing -// -// require.IsIncreasing(t, []int{1, 2, 3}) -// require.IsIncreasing(t, []float{1, 2}) -// require.IsIncreasing(t, []string{"a", "b"}) -func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsIncreasing(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsIncreasingf asserts that the collection is increasing -// -// require.IsIncreasingf(t, []int{1, 2, 3}, "error message %s", "formatted") -// require.IsIncreasingf(t, []float{1, 2}, "error message %s", "formatted") -// require.IsIncreasingf(t, []string{"a", "b"}, "error message %s", "formatted") -func IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsIncreasingf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// IsNonDecreasing asserts that the collection is not decreasing -// -// require.IsNonDecreasing(t, []int{1, 1, 2}) -// require.IsNonDecreasing(t, []float{1, 2}) -// require.IsNonDecreasing(t, []string{"a", "b"}) -func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNonDecreasing(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsNonDecreasingf asserts that the collection is not decreasing -// -// require.IsNonDecreasingf(t, []int{1, 1, 2}, "error message %s", "formatted") -// require.IsNonDecreasingf(t, []float{1, 2}, "error message %s", "formatted") -// require.IsNonDecreasingf(t, []string{"a", "b"}, "error message %s", "formatted") -func IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNonDecreasingf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// IsNonIncreasing asserts that the collection is not increasing -// -// require.IsNonIncreasing(t, []int{2, 1, 1}) -// require.IsNonIncreasing(t, []float{2, 1}) -// require.IsNonIncreasing(t, []string{"b", "a"}) -func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNonIncreasing(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsNonIncreasingf asserts that the collection is not increasing -// -// require.IsNonIncreasingf(t, []int{2, 1, 1}, "error message %s", "formatted") -// require.IsNonIncreasingf(t, []float{2, 1}, "error message %s", "formatted") -// require.IsNonIncreasingf(t, []string{"b", "a"}, "error message %s", "formatted") -func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNonIncreasingf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// IsNotType asserts that the specified objects are not of the same type. -// -// require.IsNotType(t, &NotMyStruct{}, &MyStruct{}) -func IsNotType(t TestingT, theType interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNotType(t, theType, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsNotTypef asserts that the specified objects are not of the same type. -// -// require.IsNotTypef(t, &NotMyStruct{}, &MyStruct{}, "error message %s", "formatted") -func IsNotTypef(t TestingT, theType interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsNotTypef(t, theType, object, msg, args...) { - return - } - t.FailNow() -} - -// IsType asserts that the specified objects are of the same type. -// -// require.IsType(t, &MyStruct{}, &MyStruct{}) -func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsType(t, expectedType, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// IsTypef asserts that the specified objects are of the same type. -// -// require.IsTypef(t, &MyStruct{}, &MyStruct{}, "error message %s", "formatted") -func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.IsTypef(t, expectedType, object, msg, args...) { - return - } - t.FailNow() -} - -// JSONEq asserts that two JSON strings are equivalent. -// -// require.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) -func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.JSONEq(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// JSONEqf asserts that two JSON strings are equivalent. -// -// require.JSONEqf(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") -func JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.JSONEqf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Len asserts that the specified object has specific length. -// Len also fails if the object has a type that len() not accept. -// -// require.Len(t, mySlice, 3) -func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Len(t, object, length, msgAndArgs...) { - return - } - t.FailNow() -} - -// Lenf asserts that the specified object has specific length. -// Lenf also fails if the object has a type that len() not accept. -// -// require.Lenf(t, mySlice, 3, "error message %s", "formatted") -func Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Lenf(t, object, length, msg, args...) { - return - } - t.FailNow() -} - -// Less asserts that the first element is less than the second -// -// require.Less(t, 1, 2) -// require.Less(t, float64(1), float64(2)) -// require.Less(t, "a", "b") -func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Less(t, e1, e2, msgAndArgs...) { - return - } - t.FailNow() -} - -// LessOrEqual asserts that the first element is less than or equal to the second -// -// require.LessOrEqual(t, 1, 2) -// require.LessOrEqual(t, 2, 2) -// require.LessOrEqual(t, "a", "b") -// require.LessOrEqual(t, "b", "b") -func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.LessOrEqual(t, e1, e2, msgAndArgs...) { - return - } - t.FailNow() -} - -// LessOrEqualf asserts that the first element is less than or equal to the second -// -// require.LessOrEqualf(t, 1, 2, "error message %s", "formatted") -// require.LessOrEqualf(t, 2, 2, "error message %s", "formatted") -// require.LessOrEqualf(t, "a", "b", "error message %s", "formatted") -// require.LessOrEqualf(t, "b", "b", "error message %s", "formatted") -func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.LessOrEqualf(t, e1, e2, msg, args...) { - return - } - t.FailNow() -} - -// Lessf asserts that the first element is less than the second -// -// require.Lessf(t, 1, 2, "error message %s", "formatted") -// require.Lessf(t, float64(1), float64(2), "error message %s", "formatted") -// require.Lessf(t, "a", "b", "error message %s", "formatted") -func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Lessf(t, e1, e2, msg, args...) { - return - } - t.FailNow() -} - -// Negative asserts that the specified element is negative -// -// require.Negative(t, -1) -// require.Negative(t, -1.23) -func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Negative(t, e, msgAndArgs...) { - return - } - t.FailNow() -} - -// Negativef asserts that the specified element is negative -// -// require.Negativef(t, -1, "error message %s", "formatted") -// require.Negativef(t, -1.23, "error message %s", "formatted") -func Negativef(t TestingT, e interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Negativef(t, e, msg, args...) { - return - } - t.FailNow() -} - -// Never asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// require.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond) -func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Never(t, condition, waitFor, tick, msgAndArgs...) { - return - } - t.FailNow() -} - -// Neverf asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// require.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Neverf(t, condition, waitFor, tick, msg, args...) { - return - } - t.FailNow() -} - -// Nil asserts that the specified object is nil. -// -// require.Nil(t, err) -func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Nil(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// Nilf asserts that the specified object is nil. -// -// require.Nilf(t, err, "error message %s", "formatted") -func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Nilf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// NoDirExists checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoDirExists(t, path, msgAndArgs...) { - return - } - t.FailNow() -} - -// NoDirExistsf checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoDirExistsf(t, path, msg, args...) { - return - } - t.FailNow() -} - -// NoError asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if require.NoError(t, err) { -// require.Equal(t, expectedObj, actualObj) -// } -func NoError(t TestingT, err error, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoError(t, err, msgAndArgs...) { - return - } - t.FailNow() -} - -// NoErrorf asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if require.NoErrorf(t, err, "error message %s", "formatted") { -// require.Equal(t, expectedObj, actualObj) -// } -func NoErrorf(t TestingT, err error, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoErrorf(t, err, msg, args...) { - return - } - t.FailNow() -} - -// NoFileExists checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoFileExists(t, path, msgAndArgs...) { - return - } - t.FailNow() -} - -// NoFileExistsf checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NoFileExistsf(t, path, msg, args...) { - return - } - t.FailNow() -} - -// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// require.NotContains(t, "Hello World", "Earth") -// require.NotContains(t, ["Hello", "World"], "Earth") -// require.NotContains(t, {"Hello": "World"}, "Earth") -func NotContains(t TestingT, s interface{}, contains interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotContains(t, s, contains, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// require.NotContainsf(t, "Hello World", "Earth", "error message %s", "formatted") -// require.NotContainsf(t, ["Hello", "World"], "Earth", "error message %s", "formatted") -// require.NotContainsf(t, {"Hello": "World"}, "Earth", "error message %s", "formatted") -func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotContainsf(t, s, contains, msg, args...) { - return - } - t.FailNow() -} - -// NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should not match. -// This is an inverse of ElementsMatch. -// -// require.NotElementsMatch(t, [1, 1, 2, 3], [1, 1, 2, 3]) -> false -// -// require.NotElementsMatch(t, [1, 1, 2, 3], [1, 2, 3]) -> true -// -// require.NotElementsMatch(t, [1, 2, 3], [1, 2, 4]) -> true -func NotElementsMatch(t TestingT, listA interface{}, listB interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotElementsMatch(t, listA, listB, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should not match. -// This is an inverse of ElementsMatch. -// -// require.NotElementsMatchf(t, [1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false -// -// require.NotElementsMatchf(t, [1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true -// -// require.NotElementsMatchf(t, [1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true -func NotElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotElementsMatchf(t, listA, listB, msg, args...) { - return - } - t.FailNow() -} - -// NotEmpty asserts that the specified object is NOT [Empty]. -// -// if require.NotEmpty(t, obj) { -// require.Equal(t, "two", obj[1]) -// } -func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEmpty(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotEmptyf asserts that the specified object is NOT [Empty]. -// -// if require.NotEmptyf(t, obj, "error message %s", "formatted") { -// require.Equal(t, "two", obj[1]) -// } -func NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEmptyf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// NotEqual asserts that the specified values are NOT equal. -// -// require.NotEqual(t, obj1, obj2) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func NotEqual(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEqual(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotEqualValues asserts that two objects are not equal even when converted to the same type -// -// require.NotEqualValues(t, obj1, obj2) -func NotEqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEqualValues(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotEqualValuesf asserts that two objects are not equal even when converted to the same type -// -// require.NotEqualValuesf(t, obj1, obj2, "error message %s", "formatted") -func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEqualValuesf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// NotEqualf asserts that the specified values are NOT equal. -// -// require.NotEqualf(t, obj1, obj2, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotEqualf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// NotErrorAs asserts that none of the errors in err's chain matches target, -// but if so, sets target to that error value. -func NotErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotErrorAs(t, err, target, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotErrorAsf asserts that none of the errors in err's chain matches target, -// but if so, sets target to that error value. -func NotErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotErrorAsf(t, err, target, msg, args...) { - return - } - t.FailNow() -} - -// NotErrorIs asserts that none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func NotErrorIs(t TestingT, err error, target error, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotErrorIs(t, err, target, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotErrorIsf asserts that none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotErrorIsf(t, err, target, msg, args...) { - return - } - t.FailNow() -} - -// NotImplements asserts that an object does not implement the specified interface. -// -// require.NotImplements(t, (*MyInterface)(nil), new(MyObject)) -func NotImplements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotImplements(t, interfaceObject, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotImplementsf asserts that an object does not implement the specified interface. -// -// require.NotImplementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func NotImplementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotImplementsf(t, interfaceObject, object, msg, args...) { - return - } - t.FailNow() -} - -// NotNil asserts that the specified object is not nil. -// -// require.NotNil(t, err) -func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotNil(t, object, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotNilf asserts that the specified object is not nil. -// -// require.NotNilf(t, err, "error message %s", "formatted") -func NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotNilf(t, object, msg, args...) { - return - } - t.FailNow() -} - -// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// require.NotPanics(t, func(){ RemainCalm() }) -func NotPanics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotPanics(t, f, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// require.NotPanicsf(t, func(){ RemainCalm() }, "error message %s", "formatted") -func NotPanicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotPanicsf(t, f, msg, args...) { - return - } - t.FailNow() -} - -// NotRegexp asserts that a specified regexp does not match a string. -// -// require.NotRegexp(t, regexp.MustCompile("starts"), "it's starting") -// require.NotRegexp(t, "^start", "it's not starting") -func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotRegexp(t, rx, str, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotRegexpf asserts that a specified regexp does not match a string. -// -// require.NotRegexpf(t, regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") -// require.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted") -func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotRegexpf(t, rx, str, msg, args...) { - return - } - t.FailNow() -} - -// NotSame asserts that two pointers do not reference the same object. -// -// require.NotSame(t, ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func NotSame(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotSame(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotSamef asserts that two pointers do not reference the same object. -// -// require.NotSamef(t, ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotSamef(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// NotSubset asserts that the list (array, slice, or map) does NOT contain all -// elements given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// require.NotSubset(t, [1, 3, 4], [1, 2]) -// require.NotSubset(t, {"x": 1, "y": 2}, {"z": 3}) -// require.NotSubset(t, [1, 3, 4], {1: "one", 2: "two"}) -// require.NotSubset(t, {"x": 1, "y": 2}, ["z"]) -func NotSubset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotSubset(t, list, subset, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotSubsetf asserts that the list (array, slice, or map) does NOT contain all -// elements given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// require.NotSubsetf(t, [1, 3, 4], [1, 2], "error message %s", "formatted") -// require.NotSubsetf(t, {"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted") -// require.NotSubsetf(t, [1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted") -// require.NotSubsetf(t, {"x": 1, "y": 2}, ["z"], "error message %s", "formatted") -func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotSubsetf(t, list, subset, msg, args...) { - return - } - t.FailNow() -} - -// NotZero asserts that i is not the zero value for its type. -func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotZero(t, i, msgAndArgs...) { - return - } - t.FailNow() -} - -// NotZerof asserts that i is not the zero value for its type. -func NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.NotZerof(t, i, msg, args...) { - return - } - t.FailNow() -} - -// Panics asserts that the code inside the specified PanicTestFunc panics. -// -// require.Panics(t, func(){ GoCrazy() }) -func Panics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Panics(t, f, msgAndArgs...) { - return - } - t.FailNow() -} - -// PanicsWithError asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// require.PanicsWithError(t, "crazy error", func(){ GoCrazy() }) -func PanicsWithError(t TestingT, errString string, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.PanicsWithError(t, errString, f, msgAndArgs...) { - return - } - t.FailNow() -} - -// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// require.PanicsWithErrorf(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func PanicsWithErrorf(t TestingT, errString string, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.PanicsWithErrorf(t, errString, f, msg, args...) { - return - } - t.FailNow() -} - -// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// require.PanicsWithValue(t, "crazy error", func(){ GoCrazy() }) -func PanicsWithValue(t TestingT, expected interface{}, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.PanicsWithValue(t, expected, f, msgAndArgs...) { - return - } - t.FailNow() -} - -// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// require.PanicsWithValuef(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func PanicsWithValuef(t TestingT, expected interface{}, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.PanicsWithValuef(t, expected, f, msg, args...) { - return - } - t.FailNow() -} - -// Panicsf asserts that the code inside the specified PanicTestFunc panics. -// -// require.Panicsf(t, func(){ GoCrazy() }, "error message %s", "formatted") -func Panicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Panicsf(t, f, msg, args...) { - return - } - t.FailNow() -} - -// Positive asserts that the specified element is positive -// -// require.Positive(t, 1) -// require.Positive(t, 1.23) -func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Positive(t, e, msgAndArgs...) { - return - } - t.FailNow() -} - -// Positivef asserts that the specified element is positive -// -// require.Positivef(t, 1, "error message %s", "formatted") -// require.Positivef(t, 1.23, "error message %s", "formatted") -func Positivef(t TestingT, e interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Positivef(t, e, msg, args...) { - return - } - t.FailNow() -} - -// Regexp asserts that a specified regexp matches a string. -// -// require.Regexp(t, regexp.MustCompile("start"), "it's starting") -// require.Regexp(t, "start...$", "it's not starting") -func Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Regexp(t, rx, str, msgAndArgs...) { - return - } - t.FailNow() -} - -// Regexpf asserts that a specified regexp matches a string. -// -// require.Regexpf(t, regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") -// require.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted") -func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Regexpf(t, rx, str, msg, args...) { - return - } - t.FailNow() -} - -// Same asserts that two pointers reference the same object. -// -// require.Same(t, ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func Same(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Same(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// Samef asserts that two pointers reference the same object. -// -// require.Samef(t, ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func Samef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Samef(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Subset asserts that the list (array, slice, or map) contains all elements -// given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// require.Subset(t, [1, 2, 3], [1, 2]) -// require.Subset(t, {"x": 1, "y": 2}, {"x": 1}) -// require.Subset(t, [1, 2, 3], {1: "one", 2: "two"}) -// require.Subset(t, {"x": 1, "y": 2}, ["x"]) -func Subset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Subset(t, list, subset, msgAndArgs...) { - return - } - t.FailNow() -} - -// Subsetf asserts that the list (array, slice, or map) contains all elements -// given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// require.Subsetf(t, [1, 2, 3], [1, 2], "error message %s", "formatted") -// require.Subsetf(t, {"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted") -// require.Subsetf(t, [1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted") -// require.Subsetf(t, {"x": 1, "y": 2}, ["x"], "error message %s", "formatted") -func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Subsetf(t, list, subset, msg, args...) { - return - } - t.FailNow() -} - -// True asserts that the specified value is true. -// -// require.True(t, myBool) -func True(t TestingT, value bool, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.True(t, value, msgAndArgs...) { - return - } - t.FailNow() -} - -// Truef asserts that the specified value is true. -// -// require.Truef(t, myBool, "error message %s", "formatted") -func Truef(t TestingT, value bool, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Truef(t, value, msg, args...) { - return - } - t.FailNow() -} - -// WithinDuration asserts that the two times are within duration delta of each other. -// -// require.WithinDuration(t, time.Now(), time.Now(), 10*time.Second) -func WithinDuration(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.WithinDuration(t, expected, actual, delta, msgAndArgs...) { - return - } - t.FailNow() -} - -// WithinDurationf asserts that the two times are within duration delta of each other. -// -// require.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") -func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.WithinDurationf(t, expected, actual, delta, msg, args...) { - return - } - t.FailNow() -} - -// WithinRange asserts that a time is within a time range (inclusive). -// -// require.WithinRange(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second)) -func WithinRange(t TestingT, actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.WithinRange(t, actual, start, end, msgAndArgs...) { - return - } - t.FailNow() -} - -// WithinRangef asserts that a time is within a time range (inclusive). -// -// require.WithinRangef(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") -func WithinRangef(t TestingT, actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.WithinRangef(t, actual, start, end, msg, args...) { - return - } - t.FailNow() -} - -// YAMLEq asserts that two YAML strings are equivalent. -func YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.YAMLEq(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.YAMLEqf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - -// Zero asserts that i is the zero value for its type. -func Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Zero(t, i, msgAndArgs...) { - return - } - t.FailNow() -} - -// Zerof asserts that i is the zero value for its type. -func Zerof(t TestingT, i interface{}, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.Zerof(t, i, msg, args...) { - return - } - t.FailNow() -} diff --git a/vendor/github.com/stretchr/testify/require/require.go.tmpl b/vendor/github.com/stretchr/testify/require/require.go.tmpl deleted file mode 100644 index 8b32836..0000000 --- a/vendor/github.com/stretchr/testify/require/require.go.tmpl +++ /dev/null @@ -1,6 +0,0 @@ -{{ replace .Comment "assert." "require."}} -func {{.DocInfo.Name}}(t TestingT, {{.Params}}) { - if h, ok := t.(tHelper); ok { h.Helper() } - if assert.{{.DocInfo.Name}}(t, {{.ForwardedParams}}) { return } - t.FailNow() -} diff --git a/vendor/github.com/stretchr/testify/require/require_forward.go b/vendor/github.com/stretchr/testify/require/require_forward.go deleted file mode 100644 index e6f7e94..0000000 --- a/vendor/github.com/stretchr/testify/require/require_forward.go +++ /dev/null @@ -1,1724 +0,0 @@ -// Code generated with github.com/stretchr/testify/_codegen; DO NOT EDIT. - -package require - -import ( - assert "github.com/stretchr/testify/assert" - http "net/http" - url "net/url" - time "time" -) - -// Condition uses a Comparison to assert a complex condition. -func (a *Assertions) Condition(comp assert.Comparison, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Condition(a.t, comp, msgAndArgs...) -} - -// Conditionf uses a Comparison to assert a complex condition. -func (a *Assertions) Conditionf(comp assert.Comparison, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Conditionf(a.t, comp, msg, args...) -} - -// Contains asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// a.Contains("Hello World", "World") -// a.Contains(["Hello", "World"], "World") -// a.Contains({"Hello": "World"}, "Hello") -func (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Contains(a.t, s, contains, msgAndArgs...) -} - -// Containsf asserts that the specified string, list(array, slice...) or map contains the -// specified substring or element. -// -// a.Containsf("Hello World", "World", "error message %s", "formatted") -// a.Containsf(["Hello", "World"], "World", "error message %s", "formatted") -// a.Containsf({"Hello": "World"}, "Hello", "error message %s", "formatted") -func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Containsf(a.t, s, contains, msg, args...) -} - -// DirExists checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - DirExists(a.t, path, msgAndArgs...) -} - -// DirExistsf checks whether a directory exists in the given path. It also fails -// if the path is a file rather a directory or there is an error checking whether it exists. -func (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - DirExistsf(a.t, path, msg, args...) -} - -// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2]) -func (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ElementsMatch(a.t, listA, listB, msgAndArgs...) -} - -// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should match. -// -// a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") -func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ElementsMatchf(a.t, listA, listB, msg, args...) -} - -// Empty asserts that the given value is "empty". -// -// [Zero values] are "empty". -// -// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). -// -// Slices, maps and channels with zero length are "empty". -// -// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". -// -// a.Empty(obj) -// -// [Zero values]: https://go.dev/ref/spec#The_zero_value -func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Empty(a.t, object, msgAndArgs...) -} - -// Emptyf asserts that the given value is "empty". -// -// [Zero values] are "empty". -// -// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). -// -// Slices, maps and channels with zero length are "empty". -// -// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". -// -// a.Emptyf(obj, "error message %s", "formatted") -// -// [Zero values]: https://go.dev/ref/spec#The_zero_value -func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Emptyf(a.t, object, msg, args...) -} - -// Equal asserts that two objects are equal. -// -// a.Equal(123, 123) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Equal(a.t, expected, actual, msgAndArgs...) -} - -// EqualError asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// a.EqualError(err, expectedErrorString) -func (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualError(a.t, theError, errString, msgAndArgs...) -} - -// EqualErrorf asserts that a function returned an error (i.e. not `nil`) -// and that it is equal to the provided error. -// -// actualObj, err := SomeFunction() -// a.EqualErrorf(err, expectedErrorString, "error message %s", "formatted") -func (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualErrorf(a.t, theError, errString, msg, args...) -} - -// EqualExportedValues asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// a.EqualExportedValues(S{1, 2}, S{1, 3}) => true -// a.EqualExportedValues(S{1, 2}, S{2, 3}) => false -func (a *Assertions) EqualExportedValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualExportedValues(a.t, expected, actual, msgAndArgs...) -} - -// EqualExportedValuesf asserts that the types of two objects are equal and their public -// fields are also equal. This is useful for comparing structs that have private fields -// that could potentially differ. -// -// type S struct { -// Exported int -// notExported int -// } -// a.EqualExportedValuesf(S{1, 2}, S{1, 3}, "error message %s", "formatted") => true -// a.EqualExportedValuesf(S{1, 2}, S{2, 3}, "error message %s", "formatted") => false -func (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualExportedValuesf(a.t, expected, actual, msg, args...) -} - -// EqualValues asserts that two objects are equal or convertible to the larger -// type and equal. -// -// a.EqualValues(uint32(123), int32(123)) -func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualValues(a.t, expected, actual, msgAndArgs...) -} - -// EqualValuesf asserts that two objects are equal or convertible to the larger -// type and equal. -// -// a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") -func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EqualValuesf(a.t, expected, actual, msg, args...) -} - -// Equalf asserts that two objects are equal. -// -// a.Equalf(123, 123, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). Function equality -// cannot be determined and will always fail. -func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Equalf(a.t, expected, actual, msg, args...) -} - -// Error asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// a.Error(err) -func (a *Assertions) Error(err error, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Error(a.t, err, msgAndArgs...) -} - -// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorAs(a.t, err, target, msgAndArgs...) -} - -// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. -// This is a wrapper for errors.As. -func (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorAsf(a.t, err, target, msg, args...) -} - -// ErrorContains asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// a.ErrorContains(err, expectedErrorSubString) -func (a *Assertions) ErrorContains(theError error, contains string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorContains(a.t, theError, contains, msgAndArgs...) -} - -// ErrorContainsf asserts that a function returned an error (i.e. not `nil`) -// and that the error contains the specified substring. -// -// actualObj, err := SomeFunction() -// a.ErrorContainsf(err, expectedErrorSubString, "error message %s", "formatted") -func (a *Assertions) ErrorContainsf(theError error, contains string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorContainsf(a.t, theError, contains, msg, args...) -} - -// ErrorIs asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorIs(a.t, err, target, msgAndArgs...) -} - -// ErrorIsf asserts that at least one of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - ErrorIsf(a.t, err, target, msg, args...) -} - -// Errorf asserts that a function returned an error (i.e. not `nil`). -// -// actualObj, err := SomeFunction() -// a.Errorf(err, "error message %s", "formatted") -func (a *Assertions) Errorf(err error, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Errorf(a.t, err, msg, args...) -} - -// Eventually asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// a.Eventually(func() bool { return true; }, time.Second, 10*time.Millisecond) -func (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Eventually(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// EventuallyWithT asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// a.EventuallyWithT(func(c *assert.CollectT) { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") -func (a *Assertions) EventuallyWithT(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EventuallyWithT(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// EventuallyWithTf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. In contrast to Eventually, -// it supplies a CollectT to the condition function, so that the condition -// function can use the CollectT to call other assertions. -// The condition is considered "met" if no errors are raised in a tick. -// The supplied CollectT collects all errors from one tick (if there are any). -// If the condition is not met before waitFor, the collected errors of -// the last tick are copied to t. -// -// externalValue := false -// go func() { -// time.Sleep(8*time.Second) -// externalValue = true -// }() -// a.EventuallyWithTf(func(c *assert.CollectT, "error message %s", "formatted") { -// // add assertions as needed; any assertion failure will fail the current tick -// assert.True(c, externalValue, "expected 'externalValue' to be true") -// }, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") -func (a *Assertions) EventuallyWithTf(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - EventuallyWithTf(a.t, condition, waitFor, tick, msg, args...) -} - -// Eventuallyf asserts that given condition will be met in waitFor time, -// periodically checking target function each tick. -// -// a.Eventuallyf(func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func (a *Assertions) Eventuallyf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Eventuallyf(a.t, condition, waitFor, tick, msg, args...) -} - -// Exactly asserts that two objects are equal in value and type. -// -// a.Exactly(int32(123), int64(123)) -func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Exactly(a.t, expected, actual, msgAndArgs...) -} - -// Exactlyf asserts that two objects are equal in value and type. -// -// a.Exactlyf(int32(123), int64(123), "error message %s", "formatted") -func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Exactlyf(a.t, expected, actual, msg, args...) -} - -// Fail reports a failure through -func (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Fail(a.t, failureMessage, msgAndArgs...) -} - -// FailNow fails test -func (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - FailNow(a.t, failureMessage, msgAndArgs...) -} - -// FailNowf fails test -func (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - FailNowf(a.t, failureMessage, msg, args...) -} - -// Failf reports a failure through -func (a *Assertions) Failf(failureMessage string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Failf(a.t, failureMessage, msg, args...) -} - -// False asserts that the specified value is false. -// -// a.False(myBool) -func (a *Assertions) False(value bool, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - False(a.t, value, msgAndArgs...) -} - -// Falsef asserts that the specified value is false. -// -// a.Falsef(myBool, "error message %s", "formatted") -func (a *Assertions) Falsef(value bool, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Falsef(a.t, value, msg, args...) -} - -// FileExists checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - FileExists(a.t, path, msgAndArgs...) -} - -// FileExistsf checks whether a file exists in the given path. It also fails if -// the path points to a directory or there is an error when trying to check the file. -func (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - FileExistsf(a.t, path, msg, args...) -} - -// Greater asserts that the first element is greater than the second -// -// a.Greater(2, 1) -// a.Greater(float64(2), float64(1)) -// a.Greater("b", "a") -func (a *Assertions) Greater(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Greater(a.t, e1, e2, msgAndArgs...) -} - -// GreaterOrEqual asserts that the first element is greater than or equal to the second -// -// a.GreaterOrEqual(2, 1) -// a.GreaterOrEqual(2, 2) -// a.GreaterOrEqual("b", "a") -// a.GreaterOrEqual("b", "b") -func (a *Assertions) GreaterOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - GreaterOrEqual(a.t, e1, e2, msgAndArgs...) -} - -// GreaterOrEqualf asserts that the first element is greater than or equal to the second -// -// a.GreaterOrEqualf(2, 1, "error message %s", "formatted") -// a.GreaterOrEqualf(2, 2, "error message %s", "formatted") -// a.GreaterOrEqualf("b", "a", "error message %s", "formatted") -// a.GreaterOrEqualf("b", "b", "error message %s", "formatted") -func (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - GreaterOrEqualf(a.t, e1, e2, msg, args...) -} - -// Greaterf asserts that the first element is greater than the second -// -// a.Greaterf(2, 1, "error message %s", "formatted") -// a.Greaterf(float64(2), float64(1), "error message %s", "formatted") -// a.Greaterf("b", "a", "error message %s", "formatted") -func (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Greaterf(a.t, e1, e2, msg, args...) -} - -// HTTPBodyContains asserts that a specified handler returns a -// body that contains a string. -// -// a.HTTPBodyContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPBodyContains(a.t, handler, method, url, values, str, msgAndArgs...) -} - -// HTTPBodyContainsf asserts that a specified handler returns a -// body that contains a string. -// -// a.HTTPBodyContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPBodyContainsf(a.t, handler, method, url, values, str, msg, args...) -} - -// HTTPBodyNotContains asserts that a specified handler returns a -// body that does not contain a string. -// -// a.HTTPBodyNotContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPBodyNotContains(a.t, handler, method, url, values, str, msgAndArgs...) -} - -// HTTPBodyNotContainsf asserts that a specified handler returns a -// body that does not contain a string. -// -// a.HTTPBodyNotContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPBodyNotContainsf(a.t, handler, method, url, values, str, msg, args...) -} - -// HTTPError asserts that a specified handler returns an error status code. -// -// a.HTTPError(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPError(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPErrorf asserts that a specified handler returns an error status code. -// -// a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPErrorf(a.t, handler, method, url, values, msg, args...) -} - -// HTTPRedirect asserts that a specified handler returns a redirect status code. -// -// a.HTTPRedirect(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPRedirect(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPRedirectf asserts that a specified handler returns a redirect status code. -// -// a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPRedirectf(a.t, handler, method, url, values, msg, args...) -} - -// HTTPStatusCode asserts that a specified handler returns a specified status code. -// -// a.HTTPStatusCode(myHandler, "GET", "/notImplemented", nil, 501) -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPStatusCode(a.t, handler, method, url, values, statuscode, msgAndArgs...) -} - -// HTTPStatusCodef asserts that a specified handler returns a specified status code. -// -// a.HTTPStatusCodef(myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPStatusCodef(a.t, handler, method, url, values, statuscode, msg, args...) -} - -// HTTPSuccess asserts that a specified handler returns a success status code. -// -// a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil) -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPSuccess(a.t, handler, method, url, values, msgAndArgs...) -} - -// HTTPSuccessf asserts that a specified handler returns a success status code. -// -// a.HTTPSuccessf(myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") -// -// Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - HTTPSuccessf(a.t, handler, method, url, values, msg, args...) -} - -// Implements asserts that an object is implemented by the specified interface. -// -// a.Implements((*MyInterface)(nil), new(MyObject)) -func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Implements(a.t, interfaceObject, object, msgAndArgs...) -} - -// Implementsf asserts that an object is implemented by the specified interface. -// -// a.Implementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Implementsf(a.t, interfaceObject, object, msg, args...) -} - -// InDelta asserts that the two numerals are within delta of each other. -// -// a.InDelta(math.Pi, 22/7.0, 0.01) -func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDelta(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaMapValues(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. -func (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaMapValuesf(a.t, expected, actual, delta, msg, args...) -} - -// InDeltaSlice is the same as InDelta, except it compares two slices. -func (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaSlice(a.t, expected, actual, delta, msgAndArgs...) -} - -// InDeltaSlicef is the same as InDelta, except it compares two slices. -func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaSlicef(a.t, expected, actual, delta, msg, args...) -} - -// InDeltaf asserts that the two numerals are within delta of each other. -// -// a.InDeltaf(math.Pi, 22/7.0, 0.01, "error message %s", "formatted") -func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InDeltaf(a.t, expected, actual, delta, msg, args...) -} - -// InEpsilon asserts that expected and actual have a relative error less than epsilon -func (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InEpsilon(a.t, expected, actual, epsilon, msgAndArgs...) -} - -// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices. -func (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InEpsilonSlice(a.t, expected, actual, epsilon, msgAndArgs...) -} - -// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. -func (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InEpsilonSlicef(a.t, expected, actual, epsilon, msg, args...) -} - -// InEpsilonf asserts that expected and actual have a relative error less than epsilon -func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - InEpsilonf(a.t, expected, actual, epsilon, msg, args...) -} - -// IsDecreasing asserts that the collection is decreasing -// -// a.IsDecreasing([]int{2, 1, 0}) -// a.IsDecreasing([]float{2, 1}) -// a.IsDecreasing([]string{"b", "a"}) -func (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsDecreasing(a.t, object, msgAndArgs...) -} - -// IsDecreasingf asserts that the collection is decreasing -// -// a.IsDecreasingf([]int{2, 1, 0}, "error message %s", "formatted") -// a.IsDecreasingf([]float{2, 1}, "error message %s", "formatted") -// a.IsDecreasingf([]string{"b", "a"}, "error message %s", "formatted") -func (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsDecreasingf(a.t, object, msg, args...) -} - -// IsIncreasing asserts that the collection is increasing -// -// a.IsIncreasing([]int{1, 2, 3}) -// a.IsIncreasing([]float{1, 2}) -// a.IsIncreasing([]string{"a", "b"}) -func (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsIncreasing(a.t, object, msgAndArgs...) -} - -// IsIncreasingf asserts that the collection is increasing -// -// a.IsIncreasingf([]int{1, 2, 3}, "error message %s", "formatted") -// a.IsIncreasingf([]float{1, 2}, "error message %s", "formatted") -// a.IsIncreasingf([]string{"a", "b"}, "error message %s", "formatted") -func (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsIncreasingf(a.t, object, msg, args...) -} - -// IsNonDecreasing asserts that the collection is not decreasing -// -// a.IsNonDecreasing([]int{1, 1, 2}) -// a.IsNonDecreasing([]float{1, 2}) -// a.IsNonDecreasing([]string{"a", "b"}) -func (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNonDecreasing(a.t, object, msgAndArgs...) -} - -// IsNonDecreasingf asserts that the collection is not decreasing -// -// a.IsNonDecreasingf([]int{1, 1, 2}, "error message %s", "formatted") -// a.IsNonDecreasingf([]float{1, 2}, "error message %s", "formatted") -// a.IsNonDecreasingf([]string{"a", "b"}, "error message %s", "formatted") -func (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNonDecreasingf(a.t, object, msg, args...) -} - -// IsNonIncreasing asserts that the collection is not increasing -// -// a.IsNonIncreasing([]int{2, 1, 1}) -// a.IsNonIncreasing([]float{2, 1}) -// a.IsNonIncreasing([]string{"b", "a"}) -func (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNonIncreasing(a.t, object, msgAndArgs...) -} - -// IsNonIncreasingf asserts that the collection is not increasing -// -// a.IsNonIncreasingf([]int{2, 1, 1}, "error message %s", "formatted") -// a.IsNonIncreasingf([]float{2, 1}, "error message %s", "formatted") -// a.IsNonIncreasingf([]string{"b", "a"}, "error message %s", "formatted") -func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNonIncreasingf(a.t, object, msg, args...) -} - -// IsNotType asserts that the specified objects are not of the same type. -// -// a.IsNotType(&NotMyStruct{}, &MyStruct{}) -func (a *Assertions) IsNotType(theType interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNotType(a.t, theType, object, msgAndArgs...) -} - -// IsNotTypef asserts that the specified objects are not of the same type. -// -// a.IsNotTypef(&NotMyStruct{}, &MyStruct{}, "error message %s", "formatted") -func (a *Assertions) IsNotTypef(theType interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsNotTypef(a.t, theType, object, msg, args...) -} - -// IsType asserts that the specified objects are of the same type. -// -// a.IsType(&MyStruct{}, &MyStruct{}) -func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsType(a.t, expectedType, object, msgAndArgs...) -} - -// IsTypef asserts that the specified objects are of the same type. -// -// a.IsTypef(&MyStruct{}, &MyStruct{}, "error message %s", "formatted") -func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - IsTypef(a.t, expectedType, object, msg, args...) -} - -// JSONEq asserts that two JSON strings are equivalent. -// -// a.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) -func (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - JSONEq(a.t, expected, actual, msgAndArgs...) -} - -// JSONEqf asserts that two JSON strings are equivalent. -// -// a.JSONEqf(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") -func (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - JSONEqf(a.t, expected, actual, msg, args...) -} - -// Len asserts that the specified object has specific length. -// Len also fails if the object has a type that len() not accept. -// -// a.Len(mySlice, 3) -func (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Len(a.t, object, length, msgAndArgs...) -} - -// Lenf asserts that the specified object has specific length. -// Lenf also fails if the object has a type that len() not accept. -// -// a.Lenf(mySlice, 3, "error message %s", "formatted") -func (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Lenf(a.t, object, length, msg, args...) -} - -// Less asserts that the first element is less than the second -// -// a.Less(1, 2) -// a.Less(float64(1), float64(2)) -// a.Less("a", "b") -func (a *Assertions) Less(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Less(a.t, e1, e2, msgAndArgs...) -} - -// LessOrEqual asserts that the first element is less than or equal to the second -// -// a.LessOrEqual(1, 2) -// a.LessOrEqual(2, 2) -// a.LessOrEqual("a", "b") -// a.LessOrEqual("b", "b") -func (a *Assertions) LessOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - LessOrEqual(a.t, e1, e2, msgAndArgs...) -} - -// LessOrEqualf asserts that the first element is less than or equal to the second -// -// a.LessOrEqualf(1, 2, "error message %s", "formatted") -// a.LessOrEqualf(2, 2, "error message %s", "formatted") -// a.LessOrEqualf("a", "b", "error message %s", "formatted") -// a.LessOrEqualf("b", "b", "error message %s", "formatted") -func (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - LessOrEqualf(a.t, e1, e2, msg, args...) -} - -// Lessf asserts that the first element is less than the second -// -// a.Lessf(1, 2, "error message %s", "formatted") -// a.Lessf(float64(1), float64(2), "error message %s", "formatted") -// a.Lessf("a", "b", "error message %s", "formatted") -func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Lessf(a.t, e1, e2, msg, args...) -} - -// Negative asserts that the specified element is negative -// -// a.Negative(-1) -// a.Negative(-1.23) -func (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Negative(a.t, e, msgAndArgs...) -} - -// Negativef asserts that the specified element is negative -// -// a.Negativef(-1, "error message %s", "formatted") -// a.Negativef(-1.23, "error message %s", "formatted") -func (a *Assertions) Negativef(e interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Negativef(a.t, e, msg, args...) -} - -// Never asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// a.Never(func() bool { return false; }, time.Second, 10*time.Millisecond) -func (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Never(a.t, condition, waitFor, tick, msgAndArgs...) -} - -// Neverf asserts that the given condition doesn't satisfy in waitFor time, -// periodically checking the target function each tick. -// -// a.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") -func (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Neverf(a.t, condition, waitFor, tick, msg, args...) -} - -// Nil asserts that the specified object is nil. -// -// a.Nil(err) -func (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Nil(a.t, object, msgAndArgs...) -} - -// Nilf asserts that the specified object is nil. -// -// a.Nilf(err, "error message %s", "formatted") -func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Nilf(a.t, object, msg, args...) -} - -// NoDirExists checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoDirExists(a.t, path, msgAndArgs...) -} - -// NoDirExistsf checks whether a directory does not exist in the given path. -// It fails if the path points to an existing _directory_ only. -func (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoDirExistsf(a.t, path, msg, args...) -} - -// NoError asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if a.NoError(err) { -// assert.Equal(t, expectedObj, actualObj) -// } -func (a *Assertions) NoError(err error, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoError(a.t, err, msgAndArgs...) -} - -// NoErrorf asserts that a function returned no error (i.e. `nil`). -// -// actualObj, err := SomeFunction() -// if a.NoErrorf(err, "error message %s", "formatted") { -// assert.Equal(t, expectedObj, actualObj) -// } -func (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoErrorf(a.t, err, msg, args...) -} - -// NoFileExists checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoFileExists(a.t, path, msgAndArgs...) -} - -// NoFileExistsf checks whether a file does not exist in a given path. It fails -// if the path points to an existing _file_ only. -func (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NoFileExistsf(a.t, path, msg, args...) -} - -// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// a.NotContains("Hello World", "Earth") -// a.NotContains(["Hello", "World"], "Earth") -// a.NotContains({"Hello": "World"}, "Earth") -func (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotContains(a.t, s, contains, msgAndArgs...) -} - -// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the -// specified substring or element. -// -// a.NotContainsf("Hello World", "Earth", "error message %s", "formatted") -// a.NotContainsf(["Hello", "World"], "Earth", "error message %s", "formatted") -// a.NotContainsf({"Hello": "World"}, "Earth", "error message %s", "formatted") -func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotContainsf(a.t, s, contains, msg, args...) -} - -// NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should not match. -// This is an inverse of ElementsMatch. -// -// a.NotElementsMatch([1, 1, 2, 3], [1, 1, 2, 3]) -> false -// -// a.NotElementsMatch([1, 1, 2, 3], [1, 2, 3]) -> true -// -// a.NotElementsMatch([1, 2, 3], [1, 2, 4]) -> true -func (a *Assertions) NotElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotElementsMatch(a.t, listA, listB, msgAndArgs...) -} - -// NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified -// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, -// the number of appearances of each of them in both lists should not match. -// This is an inverse of ElementsMatch. -// -// a.NotElementsMatchf([1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false -// -// a.NotElementsMatchf([1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true -// -// a.NotElementsMatchf([1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true -func (a *Assertions) NotElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotElementsMatchf(a.t, listA, listB, msg, args...) -} - -// NotEmpty asserts that the specified object is NOT [Empty]. -// -// if a.NotEmpty(obj) { -// assert.Equal(t, "two", obj[1]) -// } -func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEmpty(a.t, object, msgAndArgs...) -} - -// NotEmptyf asserts that the specified object is NOT [Empty]. -// -// if a.NotEmptyf(obj, "error message %s", "formatted") { -// assert.Equal(t, "two", obj[1]) -// } -func (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEmptyf(a.t, object, msg, args...) -} - -// NotEqual asserts that the specified values are NOT equal. -// -// a.NotEqual(obj1, obj2) -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEqual(a.t, expected, actual, msgAndArgs...) -} - -// NotEqualValues asserts that two objects are not equal even when converted to the same type -// -// a.NotEqualValues(obj1, obj2) -func (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEqualValues(a.t, expected, actual, msgAndArgs...) -} - -// NotEqualValuesf asserts that two objects are not equal even when converted to the same type -// -// a.NotEqualValuesf(obj1, obj2, "error message %s", "formatted") -func (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEqualValuesf(a.t, expected, actual, msg, args...) -} - -// NotEqualf asserts that the specified values are NOT equal. -// -// a.NotEqualf(obj1, obj2, "error message %s", "formatted") -// -// Pointer variable equality is determined based on the equality of the -// referenced values (as opposed to the memory addresses). -func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotEqualf(a.t, expected, actual, msg, args...) -} - -// NotErrorAs asserts that none of the errors in err's chain matches target, -// but if so, sets target to that error value. -func (a *Assertions) NotErrorAs(err error, target interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotErrorAs(a.t, err, target, msgAndArgs...) -} - -// NotErrorAsf asserts that none of the errors in err's chain matches target, -// but if so, sets target to that error value. -func (a *Assertions) NotErrorAsf(err error, target interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotErrorAsf(a.t, err, target, msg, args...) -} - -// NotErrorIs asserts that none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotErrorIs(a.t, err, target, msgAndArgs...) -} - -// NotErrorIsf asserts that none of the errors in err's chain matches target. -// This is a wrapper for errors.Is. -func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotErrorIsf(a.t, err, target, msg, args...) -} - -// NotImplements asserts that an object does not implement the specified interface. -// -// a.NotImplements((*MyInterface)(nil), new(MyObject)) -func (a *Assertions) NotImplements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotImplements(a.t, interfaceObject, object, msgAndArgs...) -} - -// NotImplementsf asserts that an object does not implement the specified interface. -// -// a.NotImplementsf((*MyInterface)(nil), new(MyObject), "error message %s", "formatted") -func (a *Assertions) NotImplementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotImplementsf(a.t, interfaceObject, object, msg, args...) -} - -// NotNil asserts that the specified object is not nil. -// -// a.NotNil(err) -func (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotNil(a.t, object, msgAndArgs...) -} - -// NotNilf asserts that the specified object is not nil. -// -// a.NotNilf(err, "error message %s", "formatted") -func (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotNilf(a.t, object, msg, args...) -} - -// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// a.NotPanics(func(){ RemainCalm() }) -func (a *Assertions) NotPanics(f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotPanics(a.t, f, msgAndArgs...) -} - -// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. -// -// a.NotPanicsf(func(){ RemainCalm() }, "error message %s", "formatted") -func (a *Assertions) NotPanicsf(f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotPanicsf(a.t, f, msg, args...) -} - -// NotRegexp asserts that a specified regexp does not match a string. -// -// a.NotRegexp(regexp.MustCompile("starts"), "it's starting") -// a.NotRegexp("^start", "it's not starting") -func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotRegexp(a.t, rx, str, msgAndArgs...) -} - -// NotRegexpf asserts that a specified regexp does not match a string. -// -// a.NotRegexpf(regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") -// a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted") -func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotRegexpf(a.t, rx, str, msg, args...) -} - -// NotSame asserts that two pointers do not reference the same object. -// -// a.NotSame(ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotSame(a.t, expected, actual, msgAndArgs...) -} - -// NotSamef asserts that two pointers do not reference the same object. -// -// a.NotSamef(ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotSamef(a.t, expected, actual, msg, args...) -} - -// NotSubset asserts that the list (array, slice, or map) does NOT contain all -// elements given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// a.NotSubset([1, 3, 4], [1, 2]) -// a.NotSubset({"x": 1, "y": 2}, {"z": 3}) -// a.NotSubset([1, 3, 4], {1: "one", 2: "two"}) -// a.NotSubset({"x": 1, "y": 2}, ["z"]) -func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotSubset(a.t, list, subset, msgAndArgs...) -} - -// NotSubsetf asserts that the list (array, slice, or map) does NOT contain all -// elements given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// a.NotSubsetf([1, 3, 4], [1, 2], "error message %s", "formatted") -// a.NotSubsetf({"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted") -// a.NotSubsetf([1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted") -// a.NotSubsetf({"x": 1, "y": 2}, ["z"], "error message %s", "formatted") -func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotSubsetf(a.t, list, subset, msg, args...) -} - -// NotZero asserts that i is not the zero value for its type. -func (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotZero(a.t, i, msgAndArgs...) -} - -// NotZerof asserts that i is not the zero value for its type. -func (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - NotZerof(a.t, i, msg, args...) -} - -// Panics asserts that the code inside the specified PanicTestFunc panics. -// -// a.Panics(func(){ GoCrazy() }) -func (a *Assertions) Panics(f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Panics(a.t, f, msgAndArgs...) -} - -// PanicsWithError asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// a.PanicsWithError("crazy error", func(){ GoCrazy() }) -func (a *Assertions) PanicsWithError(errString string, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - PanicsWithError(a.t, errString, f, msgAndArgs...) -} - -// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc -// panics, and that the recovered panic value is an error that satisfies the -// EqualError comparison. -// -// a.PanicsWithErrorf("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) PanicsWithErrorf(errString string, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - PanicsWithErrorf(a.t, errString, f, msg, args...) -} - -// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// a.PanicsWithValue("crazy error", func(){ GoCrazy() }) -func (a *Assertions) PanicsWithValue(expected interface{}, f assert.PanicTestFunc, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - PanicsWithValue(a.t, expected, f, msgAndArgs...) -} - -// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that -// the recovered panic value equals the expected panic value. -// -// a.PanicsWithValuef("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) PanicsWithValuef(expected interface{}, f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - PanicsWithValuef(a.t, expected, f, msg, args...) -} - -// Panicsf asserts that the code inside the specified PanicTestFunc panics. -// -// a.Panicsf(func(){ GoCrazy() }, "error message %s", "formatted") -func (a *Assertions) Panicsf(f assert.PanicTestFunc, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Panicsf(a.t, f, msg, args...) -} - -// Positive asserts that the specified element is positive -// -// a.Positive(1) -// a.Positive(1.23) -func (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Positive(a.t, e, msgAndArgs...) -} - -// Positivef asserts that the specified element is positive -// -// a.Positivef(1, "error message %s", "formatted") -// a.Positivef(1.23, "error message %s", "formatted") -func (a *Assertions) Positivef(e interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Positivef(a.t, e, msg, args...) -} - -// Regexp asserts that a specified regexp matches a string. -// -// a.Regexp(regexp.MustCompile("start"), "it's starting") -// a.Regexp("start...$", "it's not starting") -func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Regexp(a.t, rx, str, msgAndArgs...) -} - -// Regexpf asserts that a specified regexp matches a string. -// -// a.Regexpf(regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") -// a.Regexpf("start...$", "it's not starting", "error message %s", "formatted") -func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Regexpf(a.t, rx, str, msg, args...) -} - -// Same asserts that two pointers reference the same object. -// -// a.Same(ptr1, ptr2) -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) Same(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Same(a.t, expected, actual, msgAndArgs...) -} - -// Samef asserts that two pointers reference the same object. -// -// a.Samef(ptr1, ptr2, "error message %s", "formatted") -// -// Both arguments must be pointer variables. Pointer variable sameness is -// determined based on the equality of both type and value. -func (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Samef(a.t, expected, actual, msg, args...) -} - -// Subset asserts that the list (array, slice, or map) contains all elements -// given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// a.Subset([1, 2, 3], [1, 2]) -// a.Subset({"x": 1, "y": 2}, {"x": 1}) -// a.Subset([1, 2, 3], {1: "one", 2: "two"}) -// a.Subset({"x": 1, "y": 2}, ["x"]) -func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Subset(a.t, list, subset, msgAndArgs...) -} - -// Subsetf asserts that the list (array, slice, or map) contains all elements -// given in the subset (array, slice, or map). -// Map elements are key-value pairs unless compared with an array or slice where -// only the map key is evaluated. -// -// a.Subsetf([1, 2, 3], [1, 2], "error message %s", "formatted") -// a.Subsetf({"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted") -// a.Subsetf([1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted") -// a.Subsetf({"x": 1, "y": 2}, ["x"], "error message %s", "formatted") -func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Subsetf(a.t, list, subset, msg, args...) -} - -// True asserts that the specified value is true. -// -// a.True(myBool) -func (a *Assertions) True(value bool, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - True(a.t, value, msgAndArgs...) -} - -// Truef asserts that the specified value is true. -// -// a.Truef(myBool, "error message %s", "formatted") -func (a *Assertions) Truef(value bool, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Truef(a.t, value, msg, args...) -} - -// WithinDuration asserts that the two times are within duration delta of each other. -// -// a.WithinDuration(time.Now(), time.Now(), 10*time.Second) -func (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - WithinDuration(a.t, expected, actual, delta, msgAndArgs...) -} - -// WithinDurationf asserts that the two times are within duration delta of each other. -// -// a.WithinDurationf(time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") -func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - WithinDurationf(a.t, expected, actual, delta, msg, args...) -} - -// WithinRange asserts that a time is within a time range (inclusive). -// -// a.WithinRange(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second)) -func (a *Assertions) WithinRange(actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - WithinRange(a.t, actual, start, end, msgAndArgs...) -} - -// WithinRangef asserts that a time is within a time range (inclusive). -// -// a.WithinRangef(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") -func (a *Assertions) WithinRangef(actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - WithinRangef(a.t, actual, start, end, msg, args...) -} - -// YAMLEq asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - YAMLEq(a.t, expected, actual, msgAndArgs...) -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - YAMLEqf(a.t, expected, actual, msg, args...) -} - -// Zero asserts that i is the zero value for its type. -func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Zero(a.t, i, msgAndArgs...) -} - -// Zerof asserts that i is the zero value for its type. -func (a *Assertions) Zerof(i interface{}, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - Zerof(a.t, i, msg, args...) -} diff --git a/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl b/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl deleted file mode 100644 index 54124df..0000000 --- a/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -{{.CommentWithoutT "a"}} -func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) { - if h, ok := a.t.(tHelper); ok { h.Helper() } - {{.DocInfo.Name}}(a.t, {{.ForwardedParams}}) -} diff --git a/vendor/github.com/stretchr/testify/require/requirements.go b/vendor/github.com/stretchr/testify/require/requirements.go deleted file mode 100644 index 6b7ce92..0000000 --- a/vendor/github.com/stretchr/testify/require/requirements.go +++ /dev/null @@ -1,29 +0,0 @@ -package require - -// TestingT is an interface wrapper around *testing.T -type TestingT interface { - Errorf(format string, args ...interface{}) - FailNow() -} - -type tHelper = interface { - Helper() -} - -// ComparisonAssertionFunc is a common function prototype when comparing two values. Can be useful -// for table driven tests. -type ComparisonAssertionFunc func(TestingT, interface{}, interface{}, ...interface{}) - -// ValueAssertionFunc is a common function prototype when validating a single value. Can be useful -// for table driven tests. -type ValueAssertionFunc func(TestingT, interface{}, ...interface{}) - -// BoolAssertionFunc is a common function prototype when validating a bool value. Can be useful -// for table driven tests. -type BoolAssertionFunc func(TestingT, bool, ...interface{}) - -// ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful -// for table driven tests. -type ErrorAssertionFunc func(TestingT, error, ...interface{}) - -//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=require -template=require.go.tmpl -include-format-funcs" diff --git a/vendor/github.com/urfave/cli/v3/.gitignore b/vendor/github.com/urfave/cli/v3/.gitignore deleted file mode 100644 index 6b19149..0000000 --- a/vendor/github.com/urfave/cli/v3/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -*.coverprofile -*.exe -*.orig -.*envrc -.envrc -.idea -/.local/ -/site/ -coverage.txt -examples/*/built-example -vendor diff --git a/vendor/github.com/urfave/cli/v3/.golangci.yaml b/vendor/github.com/urfave/cli/v3/.golangci.yaml deleted file mode 100644 index 473a221..0000000 --- a/vendor/github.com/urfave/cli/v3/.golangci.yaml +++ /dev/null @@ -1,13 +0,0 @@ -version: "2" - -formatters: - enable: - - gofumpt - -linters: - enable: - - makezero - - misspell - exclusions: - presets: - - std-error-handling diff --git a/vendor/github.com/urfave/cli/v3/CODE_OF_CONDUCT.md b/vendor/github.com/urfave/cli/v3/CODE_OF_CONDUCT.md deleted file mode 100644 index 9fee148..0000000 --- a/vendor/github.com/urfave/cli/v3/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,75 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level of experience, -education, socio-economic status, nationality, personal appearance, race, -religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting urfave-governance@googlegroups.com, a members-only group -that is world-postable. All complaints will be reviewed and investigated and -will result in a response that is deemed necessary and appropriate to the -circumstances. The project team is obligated to maintain confidentiality with -regard to the reporter of an incident. Further details of specific enforcement -policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - diff --git a/vendor/github.com/urfave/cli/v3/LICENSE b/vendor/github.com/urfave/cli/v3/LICENSE deleted file mode 100644 index a23fc53..0000000 --- a/vendor/github.com/urfave/cli/v3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 urfave/cli maintainers - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/urfave/cli/v3/Makefile b/vendor/github.com/urfave/cli/v3/Makefile deleted file mode 100644 index 2e4af30..0000000 --- a/vendor/github.com/urfave/cli/v3/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# NOTE: this Makefile is meant to provide a simplified entry point for humans to -# run all of the critical steps to verify one's changes are harmonious in -# nature. Keeping target bodies to one line each and abstaining from make magic -# are very important so that maintainers and contributors can focus their -# attention on files that are primarily Go. - -GO_RUN_BUILD := go run scripts/build.go - -.PHONY: all -all: generate vet test check-binary-size gfmrun - -# NOTE: this is a special catch-all rule to run any of the commands -# defined in scripts/build.go with optional arguments passed -# via GFLAGS (global flags) and FLAGS (command-specific flags), e.g.: -# -# $ make test GFLAGS='--packages cli' -%: - $(GO_RUN_BUILD) $(GFLAGS) $* $(FLAGS) - -.PHONY: docs -docs: - mkdocs build - -.PHONY: serve-docs -serve-docs: - mkdocs serve diff --git a/vendor/github.com/urfave/cli/v3/README.md b/vendor/github.com/urfave/cli/v3/README.md deleted file mode 100644 index e04c729..0000000 --- a/vendor/github.com/urfave/cli/v3/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Welcome to urfave/cli - -[![Go Reference][goreference_badge]][goreference_link] -[![Go Report Card][goreportcard_badge]][goreportcard_link] -[![codecov][codecov_badge]][codecov_link] -[![Tests status][test_badge]][test_link] - -urfave/cli is a **declarative**, simple, fast, and fun package for building -command line tools in Go featuring: - -- commands and subcommands with alias and prefix match support -- flexible and permissive help system -- dynamic shell completion for `bash`, `zsh`, `fish`, and `powershell` -- no dependencies except Go standard library -- input flags for simple types, slices of simple types, time, duration, and - others -- compound short flag support (`-a` `-b` `-c` can be shortened to `-abc`) -- documentation generation in `man` and Markdown (supported via the - [`urfave/cli-docs`][urfave/cli-docs] module) -- input lookup from: - - environment variables - - plain text files - - structured file formats (supported via the - [`urfave/cli-altsrc`][urfave/cli-altsrc] module) - -## Documentation - -See the hosted documentation website at . Contents of -this website are built from the [`./docs`](./docs) directory. - -## Support - -Check the [Q&A discussions]. If you don't find answer to your question, [create -a new discussion]. - -If you found a bug or have a feature request, [create a new issue]. - -Please keep in mind that this project is run by unpaid volunteers. - -### License - -See [`LICENSE`](./LICENSE). - -[test_badge]: https://github.com/urfave/cli/actions/workflows/test.yml/badge.svg -[test_link]: https://github.com/urfave/cli/actions/workflows/test.yml -[goreference_badge]: https://pkg.go.dev/badge/github.com/urfave/cli/v3.svg -[goreference_link]: https://pkg.go.dev/github.com/urfave/cli/v3 -[goreportcard_badge]: https://goreportcard.com/badge/github.com/urfave/cli/v3 -[goreportcard_link]: https://goreportcard.com/report/github.com/urfave/cli/v3 -[codecov_badge]: https://codecov.io/gh/urfave/cli/branch/main/graph/badge.svg?token=t9YGWLh05g -[codecov_link]: https://codecov.io/gh/urfave/cli -[Q&A discussions]: https://github.com/urfave/cli/discussions/categories/q-a -[create a new discussion]: https://github.com/urfave/cli/discussions/new?category=q-a -[urfave/cli-docs]: https://github.com/urfave/cli-docs -[urfave/cli-altsrc]: https://github.com/urfave/cli-altsrc -[create a new issue]: https://github.com/urfave/cli/issues/new/choose diff --git a/vendor/github.com/urfave/cli/v3/args.go b/vendor/github.com/urfave/cli/v3/args.go deleted file mode 100644 index e63e1f5..0000000 --- a/vendor/github.com/urfave/cli/v3/args.go +++ /dev/null @@ -1,402 +0,0 @@ -package cli - -import ( - "fmt" - "time" -) - -type Args interface { - // Get returns the nth argument, or else a blank string - Get(n int) string - // First returns the first argument, or else a blank string - First() string - // Tail returns the rest of the arguments (not the first one) - // or else an empty string slice - Tail() []string - // Len returns the length of the wrapped slice - Len() int - // Present checks if there are any arguments present - Present() bool - // Slice returns a copy of the internal slice - Slice() []string -} - -type stringSliceArgs struct { - v []string -} - -func (a *stringSliceArgs) Get(n int) string { - if len(a.v) > n { - return a.v[n] - } - return "" -} - -func (a *stringSliceArgs) First() string { - return a.Get(0) -} - -func (a *stringSliceArgs) Tail() []string { - if a.Len() >= 2 { - tail := a.v[1:] - ret := make([]string, len(tail)) - copy(ret, tail) - return ret - } - - return []string{} -} - -func (a *stringSliceArgs) Len() int { - return len(a.v) -} - -func (a *stringSliceArgs) Present() bool { - return a.Len() != 0 -} - -func (a *stringSliceArgs) Slice() []string { - ret := make([]string, len(a.v)) - copy(ret, a.v) - return ret -} - -// Argument captures a positional argument that can -// be parsed -type Argument interface { - // which this argument can be accessed using the given name - HasName(string) bool - - // Parse the given args and return unparsed args and/or error - Parse([]string) ([]string, error) - - // The usage template for this argument to use in help - Usage() string - - // The Value of this Arg - Get() any -} - -// AnyArguments to differentiate between no arguments(nil) vs aleast one -var AnyArguments = []Argument{ - &StringArgs{ - Max: -1, - }, -} - -type ArgumentBase[T any, C any, VC ValueCreator[T, C]] struct { - Name string `json:"name"` // the name of this argument - Value T `json:"value"` // the default value of this argument - Destination *T `json:"-"` // the destination point for this argument - UsageText string `json:"usageText"` // the usage text to show - Config C `json:"config"` // config for this argument similar to Flag Config - - value *T -} - -func (a *ArgumentBase[T, C, VC]) HasName(s string) bool { - return s == a.Name -} - -func (a *ArgumentBase[T, C, VC]) Usage() string { - if a.UsageText != "" { - return a.UsageText - } - - usageFormat := "%[1]s" - return fmt.Sprintf(usageFormat, a.Name) -} - -func (a *ArgumentBase[T, C, VC]) Parse(s []string) ([]string, error) { - tracef("calling arg%[1] parse with args %[2]", a.Name, s) - - var vc VC - var t T - value := vc.Create(a.Value, &t, a.Config) - a.value = &t - - tracef("attempting arg%[1] parse", &a.Name) - if len(s) > 0 { - if err := value.Set(s[0]); err != nil { - return s, fmt.Errorf("invalid value %q for argument %s: %v", s[0], a.Name, err) - } - *a.value = value.Get().(T) - tracef("set arg%[1] one value", a.Name, *a.value) - } - - if a.Destination != nil { - tracef("setting destination") - *a.Destination = *a.value - } - - if len(s) > 0 { - return s[1:], nil - } - return s, nil -} - -func (a *ArgumentBase[T, C, VC]) Get() any { - if a.value != nil { - return *a.value - } - return a.Value -} - -// ArgumentsBase is a base type for slice arguments -type ArgumentsBase[T any, C any, VC ValueCreator[T, C]] struct { - Name string `json:"name"` // the name of this argument - Value T `json:"value"` // the default value of this argument - Destination *[]T `json:"-"` // the destination point for this argument - UsageText string `json:"usageText"` // the usage text to show - Min int `json:"minTimes"` // the min num of occurrences of this argument - Max int `json:"maxTimes"` // the max num of occurrences of this argument, set to -1 for unlimited - Config C `json:"config"` // config for this argument similar to Flag Config - - values []T -} - -func (a *ArgumentsBase[T, C, VC]) HasName(s string) bool { - return s == a.Name -} - -func (a *ArgumentsBase[T, C, VC]) Usage() string { - if a.UsageText != "" { - return a.UsageText - } - - usageFormat := "" - if a.Min == 0 { - if a.Max == 1 { - usageFormat = "[%[1]s]" - } else { - usageFormat = "[%[1]s ...]" - } - } else { - usageFormat = "%[1]s [%[1]s ...]" - } - return fmt.Sprintf(usageFormat, a.Name) -} - -func (a *ArgumentsBase[T, C, VC]) Parse(s []string) ([]string, error) { - tracef("calling arg%[1] parse with args %[2]", &a.Name, s) - if a.Max == 0 { - fmt.Printf("WARNING args %s has max 0, not parsing argument\n", a.Name) - return s, nil - } - if a.Max != -1 && a.Min > a.Max { - fmt.Printf("WARNING args %s has min[%d] > max[%d], not parsing argument\n", a.Name, a.Min, a.Max) - return s, nil - } - - count := 0 - var vc VC - var t T - value := vc.Create(a.Value, &t, a.Config) - a.values = []T{} - - tracef("attempting arg%[1] parse", &a.Name) - for _, arg := range s { - if err := value.Set(arg); err != nil { - return s, fmt.Errorf("invalid value %q for argument %s: %v", arg, a.Name, err) - } - tracef("set arg%[1] one value", &a.Name, value.Get().(T)) - a.values = append(a.values, value.Get().(T)) - count++ - if count >= a.Max && a.Max > -1 { - break - } - } - if count < a.Min { - return s, fmt.Errorf("sufficient count of arg %s not provided, given %d expected %d", a.Name, count, a.Min) - } - - if a.Destination != nil { - tracef("appending destination") - *a.Destination = a.values // append(*a.Destination, a.values...) - } - - return s[count:], nil -} - -func (a *ArgumentsBase[T, C, VC]) Get() any { - if a.values != nil { - return a.values - } - return []T{} -} - -type ( - FloatArg = ArgumentBase[float64, NoConfig, floatValue[float64]] - Float32Arg = ArgumentBase[float32, NoConfig, floatValue[float32]] - Float64Arg = ArgumentBase[float64, NoConfig, floatValue[float64]] - IntArg = ArgumentBase[int, IntegerConfig, intValue[int]] - Int8Arg = ArgumentBase[int8, IntegerConfig, intValue[int8]] - Int16Arg = ArgumentBase[int16, IntegerConfig, intValue[int16]] - Int32Arg = ArgumentBase[int32, IntegerConfig, intValue[int32]] - Int64Arg = ArgumentBase[int64, IntegerConfig, intValue[int64]] - StringArg = ArgumentBase[string, StringConfig, stringValue] - StringMapArgs = ArgumentBase[map[string]string, StringConfig, StringMap] - TimestampArg = ArgumentBase[time.Time, TimestampConfig, timestampValue] - UintArg = ArgumentBase[uint, IntegerConfig, uintValue[uint]] - Uint8Arg = ArgumentBase[uint8, IntegerConfig, uintValue[uint8]] - Uint16Arg = ArgumentBase[uint16, IntegerConfig, uintValue[uint16]] - Uint32Arg = ArgumentBase[uint32, IntegerConfig, uintValue[uint32]] - Uint64Arg = ArgumentBase[uint64, IntegerConfig, uintValue[uint64]] - - FloatArgs = ArgumentsBase[float64, NoConfig, floatValue[float64]] - Float32Args = ArgumentsBase[float32, NoConfig, floatValue[float32]] - Float64Args = ArgumentsBase[float64, NoConfig, floatValue[float64]] - IntArgs = ArgumentsBase[int, IntegerConfig, intValue[int]] - Int8Args = ArgumentsBase[int8, IntegerConfig, intValue[int8]] - Int16Args = ArgumentsBase[int16, IntegerConfig, intValue[int16]] - Int32Args = ArgumentsBase[int32, IntegerConfig, intValue[int32]] - Int64Args = ArgumentsBase[int64, IntegerConfig, intValue[int64]] - StringArgs = ArgumentsBase[string, StringConfig, stringValue] - TimestampArgs = ArgumentsBase[time.Time, TimestampConfig, timestampValue] - UintArgs = ArgumentsBase[uint, IntegerConfig, uintValue[uint]] - Uint8Args = ArgumentsBase[uint8, IntegerConfig, uintValue[uint8]] - Uint16Args = ArgumentsBase[uint16, IntegerConfig, uintValue[uint16]] - Uint32Args = ArgumentsBase[uint32, IntegerConfig, uintValue[uint32]] - Uint64Args = ArgumentsBase[uint64, IntegerConfig, uintValue[uint64]] -) - -func (c *Command) getArgValue(name string) any { - tracef("command %s looking for args %s", c.Name, name) - for _, arg := range c.Arguments { - if arg.HasName(name) { - tracef("command %s found args %s", c.Name, name) - return arg.Get() - } - } - tracef("command %s did not find args %s", c.Name, name) - return nil -} - -func arg[T any](name string, c *Command) T { - val := c.getArgValue(name) - if a, ok := val.(T); ok { - return a - } - var zero T - return zero -} - -func (c *Command) StringArg(name string) string { - return arg[string](name, c) -} - -func (c *Command) StringArgs(name string) []string { - return arg[[]string](name, c) -} - -func (c *Command) FloatArg(name string) float64 { - return arg[float64](name, c) -} - -func (c *Command) FloatArgs(name string) []float64 { - return arg[[]float64](name, c) -} - -func (c *Command) Float32Arg(name string) float32 { - return arg[float32](name, c) -} - -func (c *Command) Float32Args(name string) []float32 { - return arg[[]float32](name, c) -} - -func (c *Command) Float64Arg(name string) float64 { - return arg[float64](name, c) -} - -func (c *Command) Float64Args(name string) []float64 { - return arg[[]float64](name, c) -} - -func (c *Command) IntArg(name string) int { - return arg[int](name, c) -} - -func (c *Command) IntArgs(name string) []int { - return arg[[]int](name, c) -} - -func (c *Command) Int8Arg(name string) int8 { - return arg[int8](name, c) -} - -func (c *Command) Int8Args(name string) []int8 { - return arg[[]int8](name, c) -} - -func (c *Command) Int16Arg(name string) int16 { - return arg[int16](name, c) -} - -func (c *Command) Int16Args(name string) []int16 { - return arg[[]int16](name, c) -} - -func (c *Command) Int32Arg(name string) int32 { - return arg[int32](name, c) -} - -func (c *Command) Int32Args(name string) []int32 { - return arg[[]int32](name, c) -} - -func (c *Command) Int64Arg(name string) int64 { - return arg[int64](name, c) -} - -func (c *Command) Int64Args(name string) []int64 { - return arg[[]int64](name, c) -} - -func (c *Command) UintArg(name string) uint { - return arg[uint](name, c) -} - -func (c *Command) Uint8Arg(name string) uint8 { - return arg[uint8](name, c) -} - -func (c *Command) Uint16Arg(name string) uint16 { - return arg[uint16](name, c) -} - -func (c *Command) Uint32Arg(name string) uint32 { - return arg[uint32](name, c) -} - -func (c *Command) Uint64Arg(name string) uint64 { - return arg[uint64](name, c) -} - -func (c *Command) UintArgs(name string) []uint { - return arg[[]uint](name, c) -} - -func (c *Command) Uint8Args(name string) []uint8 { - return arg[[]uint8](name, c) -} - -func (c *Command) Uint16Args(name string) []uint16 { - return arg[[]uint16](name, c) -} - -func (c *Command) Uint32Args(name string) []uint32 { - return arg[[]uint32](name, c) -} - -func (c *Command) Uint64Args(name string) []uint64 { - return arg[[]uint64](name, c) -} - -func (c *Command) TimestampArg(name string) time.Time { - return arg[time.Time](name, c) -} - -func (c *Command) TimestampArgs(name string) []time.Time { - return arg[[]time.Time](name, c) -} diff --git a/vendor/github.com/urfave/cli/v3/autocomplete/bash_autocomplete b/vendor/github.com/urfave/cli/v3/autocomplete/bash_autocomplete deleted file mode 100644 index d63937d..0000000 --- a/vendor/github.com/urfave/cli/v3/autocomplete/bash_autocomplete +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# This is a shell completion script auto-generated by https://github.com/urfave/cli for bash. - -# Macs have bash3 for which the bash-completion package doesn't include -# _init_completion. This is a minimal version of that function. -__%[1]s_init_completion() { - COMPREPLY=() - _get_comp_words_by_ref "$@" cur prev words cword -} - -__%[1]s_bash_autocomplete() { - if [[ "${COMP_WORDS[0]}" != "source" ]]; then - local cur opts base words - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - if declare -F _init_completion >/dev/null 2>&1; then - _init_completion -n "=:" || return - else - __%[1]s_init_completion -n "=:" || return - fi - words=("${words[@]:0:$cword}") - if [[ "$cur" == "-"* ]]; then - requestComp="${words[*]} ${cur} --generate-shell-completion" - else - requestComp="${words[*]} --generate-shell-completion" - fi - opts=$(eval "${requestComp}" 2>/dev/null) - COMPREPLY=($(compgen -W "${opts}" -- ${cur})) - return 0 - fi -} - -complete -o bashdefault -o default -o nospace -F __%[1]s_bash_autocomplete %[1]s diff --git a/vendor/github.com/urfave/cli/v3/autocomplete/powershell_autocomplete.ps1 b/vendor/github.com/urfave/cli/v3/autocomplete/powershell_autocomplete.ps1 deleted file mode 100644 index 6e0c422..0000000 --- a/vendor/github.com/urfave/cli/v3/autocomplete/powershell_autocomplete.ps1 +++ /dev/null @@ -1,9 +0,0 @@ -$fn = $($MyInvocation.MyCommand.Name) -$name = $fn -replace "(.*)\.ps1$", '$1' -Register-ArgumentCompleter -Native -CommandName $name -ScriptBlock { - param($commandName, $wordToComplete, $cursorPosition) - $other = "$wordToComplete --generate-shell-completion" - Invoke-Expression $other | ForEach-Object { - [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) - } - } diff --git a/vendor/github.com/urfave/cli/v3/autocomplete/zsh_autocomplete b/vendor/github.com/urfave/cli/v3/autocomplete/zsh_autocomplete deleted file mode 100644 index d24049a..0000000 --- a/vendor/github.com/urfave/cli/v3/autocomplete/zsh_autocomplete +++ /dev/null @@ -1,29 +0,0 @@ -#compdef %[1]s -compdef _%[1]s %[1]s - -# This is a shell completion script auto-generated by https://github.com/urfave/cli for zsh. - -_%[1]s() { - local -a opts # Declare a local array - local current - current=${words[-1]} # -1 means "the last element" - if [[ "$current" == "-"* ]]; then - # Current word starts with a hyphen, so complete flags/options - opts=("${(@f)$(${words[@]:0:#words[@]-1} ${current} --generate-shell-completion)}") - else - # Current word does not start with a hyphen, so complete subcommands - opts=("${(@f)$(${words[@]:0:#words[@]-1} --generate-shell-completion)}") - fi - - if [[ "${opts[1]}" != "" ]]; then - _describe 'values' opts - else - _files - fi -} - -# Don't run the completion function when being source-ed or eval-ed. -# See https://github.com/urfave/cli/issues/1874 for discussion. -if [ "$funcstack[1]" = "_%[1]s" ]; then - _%[1]s -fi diff --git a/vendor/github.com/urfave/cli/v3/category.go b/vendor/github.com/urfave/cli/v3/category.go deleted file mode 100644 index 14e3649..0000000 --- a/vendor/github.com/urfave/cli/v3/category.go +++ /dev/null @@ -1,195 +0,0 @@ -package cli - -import "sort" - -// CommandCategories interface allows for category manipulation -type CommandCategories interface { - // AddCommand adds a command to a category, creating a new category if necessary. - AddCommand(category string, command *Command) - // Categories returns a slice of categories sorted by name - Categories() []CommandCategory -} - -type commandCategories []*commandCategory - -func newCommandCategories() CommandCategories { - ret := commandCategories([]*commandCategory{}) - return &ret -} - -func (c *commandCategories) Less(i, j int) bool { - return lexicographicLess((*c)[i].Name(), (*c)[j].Name()) -} - -func (c *commandCategories) Len() int { - return len(*c) -} - -func (c *commandCategories) Swap(i, j int) { - (*c)[i], (*c)[j] = (*c)[j], (*c)[i] -} - -func (c *commandCategories) AddCommand(category string, command *Command) { - for _, commandCategory := range []*commandCategory(*c) { - if commandCategory.name == category { - commandCategory.commands = append(commandCategory.commands, command) - return - } - } - newVal := append(*c, - &commandCategory{name: category, commands: []*Command{command}}) - *c = newVal -} - -func (c *commandCategories) Categories() []CommandCategory { - ret := make([]CommandCategory, len(*c)) - for i, cat := range *c { - ret[i] = cat - } - return ret -} - -// CommandCategory is a category containing commands. -type CommandCategory interface { - // Name returns the category name string - Name() string - // VisibleCommands returns a slice of the Commands with Hidden=false - VisibleCommands() []*Command -} - -type commandCategory struct { - name string - commands []*Command -} - -func (c *commandCategory) Name() string { - return c.name -} - -func (c *commandCategory) VisibleCommands() []*Command { - if c.commands == nil { - c.commands = []*Command{} - } - - var ret []*Command - for _, command := range c.commands { - if !command.Hidden { - ret = append(ret, command) - } - } - return ret -} - -// FlagCategories interface allows for category manipulation -type FlagCategories interface { - // AddFlags adds a flag to a category, creating a new category if necessary. - AddFlag(category string, fl Flag) - // VisibleCategories returns a slice of visible flag categories sorted by name - VisibleCategories() []VisibleFlagCategory -} - -type defaultFlagCategories struct { - m map[string]*defaultVisibleFlagCategory -} - -func newFlagCategories() FlagCategories { - return &defaultFlagCategories{ - m: map[string]*defaultVisibleFlagCategory{}, - } -} - -func newFlagCategoriesFromFlags(fs []Flag) FlagCategories { - fc := newFlagCategories() - - var categorized bool - - for _, fl := range fs { - if cf, ok := fl.(CategorizableFlag); ok { - visible := false - if vf, ok := fl.(VisibleFlag); ok { - visible = vf.IsVisible() - } - if cat := cf.GetCategory(); cat != "" && visible { - fc.AddFlag(cat, fl) - categorized = true - } - } - } - - if categorized { - for _, fl := range fs { - if cf, ok := fl.(CategorizableFlag); ok { - visible := false - if vf, ok := fl.(VisibleFlag); ok { - visible = vf.IsVisible() - } - if cf.GetCategory() == "" && visible { - fc.AddFlag("", fl) - } - } - } - } - - return fc -} - -func (f *defaultFlagCategories) AddFlag(category string, fl Flag) { - if _, ok := f.m[category]; !ok { - f.m[category] = &defaultVisibleFlagCategory{name: category, m: map[string]Flag{}} - } - - f.m[category].m[fl.String()] = fl -} - -func (f *defaultFlagCategories) VisibleCategories() []VisibleFlagCategory { - catNames := []string{} - for name := range f.m { - catNames = append(catNames, name) - } - - sort.Strings(catNames) - - ret := make([]VisibleFlagCategory, len(catNames)) - for i, name := range catNames { - ret[i] = f.m[name] - } - - return ret -} - -// VisibleFlagCategory is a category containing flags. -type VisibleFlagCategory interface { - // Name returns the category name string - Name() string - // Flags returns a slice of VisibleFlag sorted by name - Flags() []Flag -} - -type defaultVisibleFlagCategory struct { - name string - m map[string]Flag -} - -func (fc *defaultVisibleFlagCategory) Name() string { - return fc.name -} - -func (fc *defaultVisibleFlagCategory) Flags() []Flag { - vfNames := []string{} - for flName, fl := range fc.m { - if vf, ok := fl.(VisibleFlag); ok { - if vf.IsVisible() { - vfNames = append(vfNames, flName) - } - } - } - - sort.Strings(vfNames) - - ret := make([]Flag, len(vfNames)) - for i, flName := range vfNames { - ret[i] = fc.m[flName] - } - - return ret -} diff --git a/vendor/github.com/urfave/cli/v3/cli.go b/vendor/github.com/urfave/cli/v3/cli.go deleted file mode 100644 index d833aff..0000000 --- a/vendor/github.com/urfave/cli/v3/cli.go +++ /dev/null @@ -1,60 +0,0 @@ -// Package cli provides a minimal framework for creating and organizing command line -// Go applications. cli is designed to be easy to understand and write, the most simple -// cli application can be written as follows: -// -// func main() { -// (&cli.Command{}).Run(context.Background(), os.Args) -// } -// -// Of course this application does not do much, so let's make this an actual application: -// -// func main() { -// cmd := &cli.Command{ -// Name: "greet", -// Usage: "say a greeting", -// Action: func(c *cli.Context) error { -// fmt.Println("Greetings") -// return nil -// }, -// } -// -// cmd.Run(context.Background(), os.Args) -// } -package cli - -import ( - "fmt" - "os" - "runtime" - "strings" -) - -var isTracingOn = os.Getenv("URFAVE_CLI_TRACING") == "on" - -func tracef(format string, a ...any) { - if !isTracingOn { - return - } - - if !strings.HasSuffix(format, "\n") { - format = format + "\n" - } - - pc, file, line, _ := runtime.Caller(1) - cf := runtime.FuncForPC(pc) - - fmt.Fprintf( - os.Stderr, - strings.Join([]string{ - "## URFAVE CLI TRACE ", - file, - ":", - fmt.Sprintf("%v", line), - " ", - fmt.Sprintf("(%s)", cf.Name()), - " ", - format, - }, ""), - a..., - ) -} diff --git a/vendor/github.com/urfave/cli/v3/command.go b/vendor/github.com/urfave/cli/v3/command.go deleted file mode 100644 index 2572c36..0000000 --- a/vendor/github.com/urfave/cli/v3/command.go +++ /dev/null @@ -1,605 +0,0 @@ -package cli - -import ( - "context" - "fmt" - "io" - "slices" - "strings" -) - -const ( - // ignoreFlagPrefix is to ignore test flags when adding flags from other packages - ignoreFlagPrefix = "test." - - commandContextKey = contextKey("cli.context") -) - -type contextKey string - -// Command contains everything needed to run an application that -// accepts a string slice of arguments such as os.Args. A given -// Command may contain Flags and sub-commands in Commands. -type Command struct { - // The name of the command - Name string `json:"name"` - // A list of aliases for the command - Aliases []string `json:"aliases"` - // A short description of the usage of this command - Usage string `json:"usage"` - // Text to override the USAGE section of help - UsageText string `json:"usageText"` - // A short description of the arguments of this command - ArgsUsage string `json:"argsUsage"` - // Version of the command - Version string `json:"version"` - // Longer explanation of how the command works - Description string `json:"description"` - // DefaultCommand is the (optional) name of a command - // to run if no command names are passed as CLI arguments. - DefaultCommand string `json:"defaultCommand"` - // The category the command is part of - Category string `json:"category"` - // List of child commands - Commands []*Command `json:"commands"` - // List of flags to parse - Flags []Flag `json:"flags"` - // Boolean to hide built-in help command and help flag - HideHelp bool `json:"hideHelp"` - // Ignored if HideHelp is true. - HideHelpCommand bool `json:"hideHelpCommand"` - // Boolean to hide built-in version flag and the VERSION section of help - HideVersion bool `json:"hideVersion"` - // Boolean to enable shell completion commands - EnableShellCompletion bool `json:"-"` - // Shell Completion generation command name - ShellCompletionCommandName string `json:"-"` - // The function to call when checking for shell command completions - ShellComplete ShellCompleteFunc `json:"-"` - // The function to configure a shell completion command - ConfigureShellCompletionCommand ConfigureShellCompletionCommand `json:"-"` - // An action to execute before any subcommands are run, but after the context is ready - // If a non-nil error is returned, no subcommands are run - Before BeforeFunc `json:"-"` - // An action to execute after any subcommands are run, but after the subcommand has finished - // It is run even if Action() panics - After AfterFunc `json:"-"` - // The function to call when this command is invoked - Action ActionFunc `json:"-"` - // Execute this function if the proper command cannot be found - CommandNotFound CommandNotFoundFunc `json:"-"` - // Execute this function if a usage error occurs. - OnUsageError OnUsageErrorFunc `json:"-"` - // Execute this function when an invalid flag is accessed from the context - InvalidFlagAccessHandler InvalidFlagAccessFunc `json:"-"` - // Boolean to hide this command from help or completion - Hidden bool `json:"hidden"` - // List of all authors who contributed (string or fmt.Stringer) - // TODO: ~string | fmt.Stringer when interface unions are available - Authors []any `json:"authors"` - // Copyright of the binary if any - Copyright string `json:"copyright"` - // Reader reader to write input to (useful for tests) - Reader io.Reader `json:"-"` - // Writer writer to write output to - Writer io.Writer `json:"-"` - // ErrWriter writes error output - ErrWriter io.Writer `json:"-"` - // ExitErrHandler processes any error encountered while running a Command before it is - // returned to the caller. If no function is provided, HandleExitCoder is used as the - // default behavior. - ExitErrHandler ExitErrHandlerFunc `json:"-"` - // Other custom info - Metadata map[string]interface{} `json:"metadata"` - // Carries a function which returns app specific info. - ExtraInfo func() map[string]string `json:"-"` - // CustomRootCommandHelpTemplate the text template for app help topic. - // cli.go uses text/template to render templates. You can - // render custom help text by setting this variable. - CustomRootCommandHelpTemplate string `json:"-"` - // SliceFlagSeparator is used to customize the separator for SliceFlag, the default is "," - SliceFlagSeparator string `json:"sliceFlagSeparator"` - // DisableSliceFlagSeparator is used to disable SliceFlagSeparator, the default is false - DisableSliceFlagSeparator bool `json:"disableSliceFlagSeparator"` - // MapFlagKeyValueSeparator is used to customize the separator for MapFlag, the default is "=" - MapFlagKeyValueSeparator string `json:"mapFlagKeyValueSeparator"` - // Boolean to enable short-option handling so user can combine several - // single-character bool arguments into one - // i.e. foobar -o -v -> foobar -ov - UseShortOptionHandling bool `json:"useShortOptionHandling"` - // Enable suggestions for commands and flags - Suggest bool `json:"suggest"` - // Allows global flags set by libraries which use flag.XXXVar(...) directly - // to be parsed through this library - AllowExtFlags bool `json:"allowExtFlags"` - // Treat all flags as normal arguments if true - SkipFlagParsing bool `json:"skipFlagParsing"` - // CustomHelpTemplate the text template for the command help topic. - // cli.go uses text/template to render templates. You can - // render custom help text by setting this variable. - CustomHelpTemplate string `json:"-"` - // Use longest prefix match for commands - PrefixMatchCommands bool `json:"prefixMatchCommands"` - // Custom suggest command for matching - SuggestCommandFunc SuggestCommandFunc `json:"-"` - // Flag exclusion group - MutuallyExclusiveFlags []MutuallyExclusiveFlags `json:"mutuallyExclusiveFlags"` - // Arguments to parse for this command - Arguments []Argument `json:"arguments"` - // Whether to read arguments from stdin - // applicable to root command only - ReadArgsFromStdin bool `json:"readArgsFromStdin"` - // StopOnNthArg provides v2-like behavior for specific commands by stopping - // flag parsing after N positional arguments are encountered. When set to N, - // all remaining arguments after the Nth positional argument will be treated - // as arguments, not flags. - // - // A value of 0 means all arguments are treated as positional (no flag parsing). - // A nil value means normal v3 flag parsing behavior (flags can appear anywhere). - StopOnNthArg *int `json:"stopOnNthArg"` - - // categories contains the categorized commands and is populated on app startup - categories CommandCategories - // flagCategories contains the categorized flags and is populated on app startup - flagCategories FlagCategories - // flags that have been applied in current parse - appliedFlags []Flag - // flags that have been set - setFlags map[Flag]struct{} - // The parent of this command. This value will be nil for the - // command at the root of the graph. - parent *Command - // parsed args - parsedArgs Args - // track state of error handling - isInError bool - // track state of defaults - didSetupDefaults bool - // whether in shell completion mode - shellCompletion bool - // whether global help flag was added - globaHelpFlagAdded bool - // whether global version flag was added - globaVersionFlagAdded bool -} - -// FullName returns the full name of the command. -// For commands with parents this ensures that the parent commands -// are part of the command path. -func (cmd *Command) FullName() string { - namePath := []string{} - - if cmd.parent != nil { - namePath = append(namePath, cmd.parent.FullName()) - } - - return strings.Join(append(namePath, cmd.Name), " ") -} - -func (cmd *Command) Command(name string) *Command { - for _, subCmd := range cmd.Commands { - if subCmd.HasName(name) { - return subCmd - } - } - - return nil -} - -func (cmd *Command) checkHelp() bool { - tracef("checking if help is wanted (cmd=%[1]q)", cmd.Name) - - return HelpFlag != nil && slices.ContainsFunc(HelpFlag.Names(), cmd.Bool) -} - -func (cmd *Command) allFlags() []Flag { - var flags []Flag - flags = append(flags, cmd.Flags...) - for _, grpf := range cmd.MutuallyExclusiveFlags { - for _, f1 := range grpf.Flags { - flags = append(flags, f1...) - } - } - return flags -} - -// useShortOptionHandling traverses Lineage() for *any* ancestors -// with UseShortOptionHandling -func (cmd *Command) useShortOptionHandling() bool { - for _, pCmd := range cmd.Lineage() { - if pCmd.UseShortOptionHandling { - return true - } - } - - return false -} - -func (cmd *Command) suggestFlagFromError(err error, commandName string) (string, error) { - fl, parseErr := flagFromError(err) - if parseErr != nil { - return "", err - } - - flags := cmd.Flags - hideHelp := cmd.hideHelp() - - if commandName != "" { - subCmd := cmd.Command(commandName) - if subCmd == nil { - return "", err - } - flags = subCmd.Flags - hideHelp = hideHelp || subCmd.HideHelp - } - - suggestion := SuggestFlag(flags, fl, hideHelp) - if len(suggestion) == 0 { - return "", err - } - - return fmt.Sprintf(SuggestDidYouMeanTemplate, suggestion) + "\n\n", nil -} - -// Names returns the names including short names and aliases. -func (cmd *Command) Names() []string { - return append([]string{cmd.Name}, cmd.Aliases...) -} - -// HasName returns true if Command.Name matches given name -func (cmd *Command) HasName(name string) bool { - return slices.Contains(cmd.Names(), name) -} - -// VisibleCategories returns a slice of categories and commands that are -// Hidden=false -func (cmd *Command) VisibleCategories() []CommandCategory { - ret := []CommandCategory{} - for _, category := range cmd.categories.Categories() { - if visible := func() CommandCategory { - if len(category.VisibleCommands()) > 0 { - return category - } - return nil - }(); visible != nil { - ret = append(ret, visible) - } - } - return ret -} - -// VisibleCommands returns a slice of the Commands with Hidden=false -func (cmd *Command) VisibleCommands() []*Command { - var ret []*Command - for _, command := range cmd.Commands { - if command.Hidden || command.Name == helpName { - continue - } - ret = append(ret, command) - } - return ret -} - -// VisibleFlagCategories returns a slice containing all the visible flag categories with the flags they contain -func (cmd *Command) VisibleFlagCategories() []VisibleFlagCategory { - if cmd.flagCategories == nil { - cmd.flagCategories = newFlagCategoriesFromFlags(cmd.allFlags()) - } - return cmd.flagCategories.VisibleCategories() -} - -// VisibleFlags returns a slice of the Flags with Hidden=false -func (cmd *Command) VisibleFlags() []Flag { - return visibleFlags(cmd.allFlags()) -} - -func (cmd *Command) appendFlag(fl Flag) { - if !hasFlag(cmd.Flags, fl) { - cmd.Flags = append(cmd.Flags, fl) - } -} - -// VisiblePersistentFlags returns a slice of [LocalFlag] with Persistent=true and Hidden=false. -func (cmd *Command) VisiblePersistentFlags() []Flag { - var flags []Flag - for _, fl := range cmd.Root().Flags { - pfl, ok := fl.(LocalFlag) - if !ok || pfl.IsLocal() { - continue - } - flags = append(flags, fl) - } - return visibleFlags(flags) -} - -func (cmd *Command) appendCommand(aCmd *Command) { - if !slices.Contains(cmd.Commands, aCmd) { - aCmd.parent = cmd - cmd.Commands = append(cmd.Commands, aCmd) - } -} - -func (cmd *Command) handleExitCoder(ctx context.Context, err error) error { - if cmd.parent != nil { - return cmd.parent.handleExitCoder(ctx, err) - } - - if cmd.ExitErrHandler != nil { - cmd.ExitErrHandler(ctx, cmd, err) - return err - } - - HandleExitCoder(err) - return err -} - -func (cmd *Command) argsWithDefaultCommand(oldArgs Args) Args { - if cmd.DefaultCommand != "" { - rawArgs := append([]string{cmd.DefaultCommand}, oldArgs.Slice()...) - newArgs := &stringSliceArgs{v: rawArgs} - - return newArgs - } - - return oldArgs -} - -// Root returns the Command at the root of the graph -func (cmd *Command) Root() *Command { - if cmd.parent == nil { - return cmd - } - - return cmd.parent.Root() -} - -func (cmd *Command) set(fName string, f Flag, val string) error { - cmd.setFlags[f] = struct{}{} - cmd.setMultiValueParsingConfig(f) - if err := f.Set(fName, val); err != nil { - return fmt.Errorf("invalid value %q for flag -%s: %v", val, fName, err) - } - return nil -} - -func (cmd *Command) lFlag(name string) Flag { - for _, f := range cmd.allFlags() { - if slices.Contains(f.Names(), name) { - tracef("flag found for name %[1]q (cmd=%[2]q)", name, cmd.Name) - return f - } - } - return nil -} - -func (cmd *Command) lookupFlag(name string) Flag { - for _, pCmd := range cmd.Lineage() { - if f := pCmd.lFlag(name); f != nil { - return f - } - } - - tracef("flag NOT found for name %[1]q (cmd=%[2]q)", name, cmd.Name) - cmd.onInvalidFlag(context.TODO(), name) - return nil -} - -// this looks up only allowed flags, i.e. local flags for current command -// or persistent flags from ancestors -func (cmd *Command) lookupAppliedFlag(name string) Flag { - for _, f := range cmd.appliedFlags { - if slices.Contains(f.Names(), name) { - tracef("appliedFlag found for name %[1]q (cmd=%[2]q)", name, cmd.Name) - return f - } - } - - tracef("lookupAppliedflag NOT found for name %[1]q (cmd=%[2]q)", name, cmd.Name) - cmd.onInvalidFlag(context.TODO(), name) - return nil -} - -func (cmd *Command) checkRequiredFlag(f Flag) (bool, string) { - if rf, ok := f.(RequiredFlag); ok && rf.IsRequired() { - flagName := f.Names()[0] - if !f.IsSet() { - return false, flagName - } - } - return true, "" -} - -func (cmd *Command) checkAllRequiredFlags() requiredFlagsErr { - for pCmd := cmd; pCmd != nil; pCmd = pCmd.parent { - if err := pCmd.checkRequiredFlags(); err != nil { - return err - } - } - return nil -} - -func (cmd *Command) checkRequiredFlags() requiredFlagsErr { - tracef("checking for required flags (cmd=%[1]q)", cmd.Name) - - missingFlags := []string{} - - for _, f := range cmd.appliedFlags { - if ok, name := cmd.checkRequiredFlag(f); !ok { - missingFlags = append(missingFlags, name) - } - } - - if len(missingFlags) != 0 { - tracef("found missing required flags %[1]q (cmd=%[2]q)", missingFlags, cmd.Name) - - return &errRequiredFlags{missingFlags: missingFlags} - } - - tracef("all required flags set (cmd=%[1]q)", cmd.Name) - - return nil -} - -func (cmd *Command) onInvalidFlag(ctx context.Context, name string) { - for cmd != nil { - if cmd.InvalidFlagAccessHandler != nil { - cmd.InvalidFlagAccessHandler(ctx, cmd, name) - break - } - cmd = cmd.parent - } -} - -// NumFlags returns the number of flags set -func (cmd *Command) NumFlags() int { - tracef("numFlags numAppliedFlags %d", len(cmd.appliedFlags)) - count := 0 - for _, f := range cmd.appliedFlags { - if f.IsSet() { - count++ - } - } - return count // cmd.flagSet.NFlag() -} - -func (cmd *Command) setMultiValueParsingConfig(f Flag) { - tracef("setMultiValueParsingConfig %T, %+v", f, f) - if cf, ok := f.(multiValueParsingConfigSetter); ok { - cf.setMultiValueParsingConfig(multiValueParsingConfig{ - SliceFlagSeparator: cmd.SliceFlagSeparator, - DisableSliceFlagSeparator: cmd.DisableSliceFlagSeparator, - MapFlagKeyValueSeparator: cmd.MapFlagKeyValueSeparator, - }) - } -} - -// Set sets a context flag to a value. -func (cmd *Command) Set(name, value string) error { - if f := cmd.lookupFlag(name); f != nil { - cmd.setMultiValueParsingConfig(f) - return f.Set(name, value) - } - - return fmt.Errorf("no such flag -%s", name) -} - -// IsSet determines if the flag was actually set -func (cmd *Command) IsSet(name string) bool { - fl := cmd.lookupFlag(name) - if fl == nil { - tracef("flag with name %[1]q NOT found; assuming not set (cmd=%[2]q)", name, cmd.Name) - return false - } - - isSet := fl.IsSet() - if isSet { - tracef("flag with name %[1]q is set (cmd=%[2]q)", name, cmd.Name) - } else { - tracef("flag with name %[1]q is no set (cmd=%[2]q)", name, cmd.Name) - } - - return isSet -} - -// LocalFlagNames returns a slice of flag names used in this -// command. -func (cmd *Command) LocalFlagNames() []string { - names := []string{} - - // Check the flags which have been set via env or file - for _, f := range cmd.allFlags() { - if f.IsSet() { - names = append(names, f.Names()...) - } - } - - // Sort out the duplicates since flag could be set via multiple - // paths - m := map[string]struct{}{} - uniqNames := []string{} - - for _, name := range names { - if _, ok := m[name]; !ok { - m[name] = struct{}{} - uniqNames = append(uniqNames, name) - } - } - - return uniqNames -} - -// FlagNames returns a slice of flag names used by the this command -// and all of its parent commands. -func (cmd *Command) FlagNames() []string { - names := cmd.LocalFlagNames() - - if cmd.parent != nil { - names = append(cmd.parent.FlagNames(), names...) - } - - return names -} - -// Lineage returns *this* command and all of its ancestor commands -// in order from child to parent -func (cmd *Command) Lineage() []*Command { - lineage := []*Command{cmd} - - if cmd.parent != nil { - lineage = append(lineage, cmd.parent.Lineage()...) - } - - return lineage -} - -// Count returns the num of occurrences of this flag -func (cmd *Command) Count(name string) int { - if cf, ok := cmd.lookupFlag(name).(Countable); ok { - return cf.Count() - } - return 0 -} - -// Value returns the value of the flag corresponding to `name` -func (cmd *Command) Value(name string) interface{} { - if fs := cmd.lookupFlag(name); fs != nil { - tracef("value found for name %[1]q (cmd=%[2]q)", name, cmd.Name) - return fs.Get() - } - - tracef("value NOT found for name %[1]q (cmd=%[2]q)", name, cmd.Name) - return nil -} - -// Args returns the command line arguments associated with the -// command. -func (cmd *Command) Args() Args { - return cmd.parsedArgs -} - -// NArg returns the number of the command line arguments. -func (cmd *Command) NArg() int { - return cmd.Args().Len() -} - -func (cmd *Command) runFlagActions(ctx context.Context) error { - tracef("runFlagActions") - for fl := range cmd.setFlags { - /*tracef("checking %v:%v", fl.Names(), fl.IsSet()) - if !fl.IsSet() { - continue - }*/ - - //if pf, ok := fl.(LocalFlag); ok && !pf.IsLocal() { - // continue - //} - - if af, ok := fl.(ActionableFlag); ok { - if err := af.RunAction(ctx, cmd); err != nil { - return err - } - } - } - - return nil -} diff --git a/vendor/github.com/urfave/cli/v3/command_parse.go b/vendor/github.com/urfave/cli/v3/command_parse.go deleted file mode 100644 index aa95ae1..0000000 --- a/vendor/github.com/urfave/cli/v3/command_parse.go +++ /dev/null @@ -1,222 +0,0 @@ -package cli - -import ( - "fmt" - "strings" - "unicode" -) - -const ( - providedButNotDefinedErrMsg = "flag provided but not defined: -" - argumentNotProvidedErrMsg = "flag needs an argument: " -) - -// flagFromError tries to parse a provided flag from an error message. If the -// parsing fails, it returns the input error and an empty string -func flagFromError(err error) (string, error) { - errStr := err.Error() - trimmed := strings.TrimPrefix(errStr, providedButNotDefinedErrMsg) - if errStr == trimmed { - return "", err - } - return trimmed, nil -} - -func (cmd *Command) parseFlags(args Args) (Args, error) { - tracef("parsing flags from arguments %[1]q (cmd=%[2]q)", args, cmd.Name) - - cmd.setFlags = map[Flag]struct{}{} - cmd.appliedFlags = cmd.allFlags() - - tracef("walking command lineage for persistent flags (cmd=%[1]q)", cmd.Name) - - for pCmd := cmd.parent; pCmd != nil; pCmd = pCmd.parent { - tracef( - "checking ancestor command=%[1]q for persistent flags (cmd=%[2]q)", - pCmd.Name, cmd.Name, - ) - - for _, fl := range pCmd.Flags { - flNames := fl.Names() - - pfl, ok := fl.(LocalFlag) - if !ok || pfl.IsLocal() { - tracef("skipping non-persistent flag %[1]q (cmd=%[2]q)", flNames, cmd.Name) - continue - } - - tracef( - "checking for applying persistent flag=%[1]q pCmd=%[2]q (cmd=%[3]q)", - flNames, pCmd.Name, cmd.Name, - ) - - applyPersistentFlag := true - - for _, name := range flNames { - if cmd.lFlag(name) != nil { - applyPersistentFlag = false - break - } - } - - if !applyPersistentFlag { - tracef("not applying as persistent flag=%[1]q (cmd=%[2]q)", flNames, cmd.Name) - continue - } - - tracef("applying as persistent flag=%[1]q (cmd=%[2]q)", flNames, cmd.Name) - - tracef("appending to applied flags flag=%[1]q (cmd=%[2]q)", flNames, cmd.Name) - cmd.appliedFlags = append(cmd.appliedFlags, fl) - } - } - - tracef("parsing flags iteratively tail=%[1]q (cmd=%[2]q)", args.Tail(), cmd.Name) - defer tracef("done parsing flags (cmd=%[1]q)", cmd.Name) - - posArgs := []string{} - for rargs := args.Slice(); len(rargs) > 0; rargs = rargs[1:] { - tracef("rearrange:1 (cmd=%[1]q) %[2]q", cmd.Name, rargs) - - firstArg := strings.TrimSpace(rargs[0]) - if len(firstArg) == 0 { - break - } - - // stop parsing once we see a "--" - if firstArg == "--" { - posArgs = append(posArgs, rargs[1:]...) - return &stringSliceArgs{posArgs}, nil - } - - // Check if we've reached the Nth argument and should stop flag parsing - if cmd.StopOnNthArg != nil && len(posArgs) == *cmd.StopOnNthArg { - // Append current arg and all remaining args without parsing - posArgs = append(posArgs, rargs[0:]...) - return &stringSliceArgs{posArgs}, nil - } - - // handle positional args - if firstArg[0] != '-' { - // positional argument probably - tracef("rearrange-3 (cmd=%[1]q) check %[2]q", cmd.Name, firstArg) - - // if there is a command by that name let the command handle the - // rest of the parsing - if cmd.Command(firstArg) != nil { - posArgs = append(posArgs, rargs...) - return &stringSliceArgs{posArgs}, nil - } - - posArgs = append(posArgs, firstArg) - continue - } - - numMinuses := 1 - // this is same as firstArg == "-" - if len(firstArg) == 1 { - posArgs = append(posArgs, firstArg) - break - } - - shortOptionHandling := cmd.useShortOptionHandling() - - // stop parsing -- as short flags - if firstArg[1] == '-' { - numMinuses++ - shortOptionHandling = false - } else if !unicode.IsLetter(rune(firstArg[1])) { - // this is not a flag - tracef("parseFlags not a unicode letter. Stop parsing") - posArgs = append(posArgs, rargs...) - return &stringSliceArgs{posArgs}, nil - } - - tracef("parseFlags (shortOptionHandling=%[1]q)", shortOptionHandling) - - flagName := firstArg[numMinuses:] - flagVal := "" - valFromEqual := false - tracef("flagName:1 (fName=%[1]q)", flagName) - if index := strings.Index(flagName, "="); index != -1 { - flagVal = flagName[index+1:] - flagName = flagName[:index] - valFromEqual = true - } - - tracef("flagName:2 (fName=%[1]q) (fVal=%[2]q)", flagName, flagVal) - - f := cmd.lookupAppliedFlag(flagName) - // found a flag matching given flagName - if f != nil { - tracef("Trying flag type (fName=%[1]q) (type=%[2]T)", flagName, f) - if fb, ok := f.(boolFlag); ok && fb.IsBoolFlag() { - if flagVal == "" { - flagVal = "true" - } - tracef("parse Apply bool flag (fName=%[1]q) (fVal=%[2]q)", flagName, flagVal) - if err := cmd.set(flagName, f, flagVal); err != nil { - return &stringSliceArgs{posArgs}, err - } - continue - } - - tracef("processing non bool flag (fName=%[1]q)", flagName) - // not a bool flag so need to get the next arg - if flagVal == "" { - if len(rargs) == 1 || valFromEqual { - return &stringSliceArgs{posArgs}, fmt.Errorf("%s%s", argumentNotProvidedErrMsg, firstArg) - } - flagVal = rargs[1] - rargs = rargs[1:] - } - - tracef("setting non bool flag (fName=%[1]q) (fVal=%[2]q)", flagName, flagVal) - if err := cmd.set(flagName, f, flagVal); err != nil { - return &stringSliceArgs{posArgs}, err - } - - continue - } - - // no flag lookup found and short handling is disabled - if !shortOptionHandling { - return &stringSliceArgs{posArgs}, fmt.Errorf("%s%s", providedButNotDefinedErrMsg, flagName) - } - - // try to split the flags - for index, c := range flagName { - tracef("processing flag (fName=%[1]q)", string(c)) - if sf := cmd.lookupFlag(string(c)); sf == nil { - return &stringSliceArgs{posArgs}, fmt.Errorf("%s%s", providedButNotDefinedErrMsg, flagName) - } else if fb, ok := sf.(boolFlag); ok && fb.IsBoolFlag() { - fv := flagVal - if index == (len(flagName)-1) && flagVal == "" { - fv = "true" - } - if fv == "" { - fv = "true" - } - if err := cmd.set(flagName, sf, fv); err != nil { - tracef("processing flag.2 (fName=%[1]q)", string(c)) - return &stringSliceArgs{posArgs}, err - } - } else if index == len(flagName)-1 { // last flag can take an arg - if flagVal == "" { - if len(rargs) == 1 { - return &stringSliceArgs{posArgs}, fmt.Errorf("%s%s", argumentNotProvidedErrMsg, string(c)) - } - flagVal = rargs[1] - } - tracef("parseFlags (flagName %[1]q) (flagVal %[2]q)", flagName, flagVal) - if err := cmd.set(flagName, sf, flagVal); err != nil { - tracef("processing flag.4 (fName=%[1]q)", string(c)) - return &stringSliceArgs{posArgs}, err - } - } - } - } - - tracef("returning-2 (cmd=%[1]q) args %[2]q", cmd.Name, posArgs) - return &stringSliceArgs{posArgs}, nil -} diff --git a/vendor/github.com/urfave/cli/v3/command_run.go b/vendor/github.com/urfave/cli/v3/command_run.go deleted file mode 100644 index 578683d..0000000 --- a/vendor/github.com/urfave/cli/v3/command_run.go +++ /dev/null @@ -1,361 +0,0 @@ -package cli - -import ( - "bufio" - "context" - "fmt" - "io" - "reflect" - "slices" - "unicode" -) - -func (cmd *Command) parseArgsFromStdin() ([]string, error) { - type state int - const ( - stateSearchForToken state = -1 - stateSearchForString state = 0 - ) - - st := stateSearchForToken - linenum := 1 - token := "" - args := []string{} - - breader := bufio.NewReader(cmd.Reader) - -outer: - for { - ch, _, err := breader.ReadRune() - if err == io.EOF { - switch st { - case stateSearchForToken: - if token != "--" { - args = append(args, token) - } - case stateSearchForString: - // make sure string is not empty - for _, t := range token { - if !unicode.IsSpace(t) { - args = append(args, token) - } - } - } - break outer - } - if err != nil { - return nil, err - } - switch st { - case stateSearchForToken: - if unicode.IsSpace(ch) || ch == '"' { - if ch == '\n' { - linenum++ - } - if token != "" { - // end the processing here - if token == "--" { - break outer - } - args = append(args, token) - token = "" - } - if ch == '"' { - st = stateSearchForString - } - continue - } - token += string(ch) - case stateSearchForString: - if ch != '"' { - token += string(ch) - } else { - if token != "" { - args = append(args, token) - token = "" - } - /*else { - //TODO. Should we pass in empty strings ? - }*/ - st = stateSearchForToken - } - } - } - - tracef("parsed stdin args as %v (cmd=%[2]q)", args, cmd.Name) - - return args, nil -} - -// Run is the entry point to the command graph. The positional -// arguments are parsed according to the Flag and Command -// definitions and the matching Action functions are run. -func (cmd *Command) Run(ctx context.Context, osArgs []string) (deferErr error) { - _, deferErr = cmd.run(ctx, osArgs) - return deferErr -} - -func (cmd *Command) run(ctx context.Context, osArgs []string) (_ context.Context, deferErr error) { - tracef("running with arguments %[1]q (cmd=%[2]q)", osArgs, cmd.Name) - cmd.setupDefaults(osArgs) - - // Validate StopOnNthArg - if cmd.StopOnNthArg != nil && *cmd.StopOnNthArg < 0 { - return ctx, fmt.Errorf("StopOnNthArg must be non-negative, got %d", *cmd.StopOnNthArg) - } - - if v, ok := ctx.Value(commandContextKey).(*Command); ok { - tracef("setting parent (cmd=%[1]q) command from context.Context value (cmd=%[2]q)", v.Name, cmd.Name) - cmd.parent = v - } - - if cmd.parent == nil { - if cmd.ReadArgsFromStdin { - if args, err := cmd.parseArgsFromStdin(); err != nil { - return ctx, err - } else { - osArgs = append(osArgs, args...) - } - } - // handle the completion flag separately from the flagset since - // completion could be attempted after a flag, but before its value was put - // on the command line. this causes the flagset to interpret the completion - // flag name as the value of the flag before it which is undesirable - // note that we can only do this because the shell autocomplete function - // always appends the completion flag at the end of the command - tracef("checking osArgs %v (cmd=%[2]q)", osArgs, cmd.Name) - cmd.shellCompletion, osArgs = checkShellCompleteFlag(cmd, osArgs) - - tracef("setting cmd.shellCompletion=%[1]v from checkShellCompleteFlag (cmd=%[2]q)", cmd.shellCompletion && cmd.EnableShellCompletion, cmd.Name) - cmd.shellCompletion = cmd.EnableShellCompletion && cmd.shellCompletion - } - - tracef("using post-checkShellCompleteFlag arguments %[1]q (cmd=%[2]q)", osArgs, cmd.Name) - - tracef("setting self as cmd in context (cmd=%[1]q)", cmd.Name) - ctx = context.WithValue(ctx, commandContextKey, cmd) - - if cmd.parent == nil { - cmd.setupCommandGraph() - } - - var rargs Args = &stringSliceArgs{v: osArgs} - for _, f := range cmd.allFlags() { - if err := f.PreParse(); err != nil { - return ctx, err - } - } - - var args Args = &stringSliceArgs{rargs.Tail()} - var err error - - if cmd.SkipFlagParsing { - tracef("skipping flag parsing (cmd=%[1]q)", cmd.Name) - cmd.parsedArgs = args - } else { - cmd.parsedArgs, err = cmd.parseFlags(args) - } - - tracef("using post-parse arguments %[1]q (cmd=%[2]q)", args, cmd.Name) - - if checkCompletions(ctx, cmd) { - return ctx, nil - } - - if err != nil { - tracef("setting deferErr from %[1]q (cmd=%[2]q)", err, cmd.Name) - deferErr = err - - cmd.isInError = true - if cmd.OnUsageError != nil { - err = cmd.OnUsageError(ctx, cmd, err, cmd.parent != nil) - err = cmd.handleExitCoder(ctx, err) - return ctx, err - } - fmt.Fprintf(cmd.Root().ErrWriter, "Incorrect Usage: %s\n\n", err.Error()) - if cmd.Suggest { - if suggestion, err := cmd.suggestFlagFromError(err, ""); err == nil { - fmt.Fprintf(cmd.Root().ErrWriter, "%s", suggestion) - } - } - if !cmd.hideHelp() { - if cmd.parent == nil { - tracef("running ShowRootCommandHelp") - if err := ShowRootCommandHelp(cmd); err != nil { - tracef("SILENTLY IGNORING ERROR running ShowRootCommandHelp %[1]v (cmd=%[2]q)", err, cmd.Name) - } - } else { - tracef("running ShowCommandHelp with %[1]q", cmd.Name) - if err := ShowCommandHelp(ctx, cmd, cmd.Name); err != nil { - tracef("SILENTLY IGNORING ERROR running ShowCommandHelp with %[1]q %[2]v", cmd.Name, err) - } - } - } - - return ctx, err - } - - if cmd.checkHelp() { - return ctx, helpCommandAction(ctx, cmd) - } else { - tracef("no help is wanted (cmd=%[1]q)", cmd.Name) - } - - if cmd.parent == nil && !cmd.HideVersion && checkVersion(cmd) { - ShowVersion(cmd) - return ctx, nil - } - - for _, flag := range cmd.allFlags() { - isSet := flag.IsSet() - if err := flag.PostParse(); err != nil { - return ctx, err - } - // add env set flags here - if !isSet && flag.IsSet() { - cmd.setFlags[flag] = struct{}{} - } - } - - if cmd.After != nil && !cmd.Root().shellCompletion { - defer func() { - if err := cmd.After(ctx, cmd); err != nil { - err = cmd.handleExitCoder(ctx, err) - - if deferErr != nil { - deferErr = newMultiError(deferErr, err) - } else { - deferErr = err - } - } - }() - } - - for _, grp := range cmd.MutuallyExclusiveFlags { - if err := grp.check(cmd); err != nil { - if cmd.OnUsageError != nil { - err = cmd.OnUsageError(ctx, cmd, err, cmd.parent != nil) - } else { - _ = ShowSubcommandHelp(cmd) - } - return ctx, err - } - } - - var subCmd *Command - if cmd.parsedArgs.Present() { - tracef("checking positional args %[1]q (cmd=%[2]q)", cmd.parsedArgs, cmd.Name) - - name := cmd.parsedArgs.First() - - tracef("using first positional argument as sub-command name=%[1]q (cmd=%[2]q)", name, cmd.Name) - - if cmd.SuggestCommandFunc != nil && name != "--" { - name = cmd.SuggestCommandFunc(cmd.Commands, name) - } - subCmd = cmd.Command(name) - if subCmd == nil { - hasDefault := cmd.DefaultCommand != "" - isFlagName := slices.Contains(cmd.FlagNames(), name) - - if hasDefault { - tracef("using default command=%[1]q (cmd=%[2]q)", cmd.DefaultCommand, cmd.Name) - } - - if isFlagName || hasDefault { - argsWithDefault := cmd.argsWithDefaultCommand(args) - tracef("using default command args=%[1]q (cmd=%[2]q)", argsWithDefault, cmd.Name) - if !reflect.DeepEqual(args, argsWithDefault) { - subCmd = cmd.Command(argsWithDefault.First()) - } - } - } - } else if cmd.parent == nil && cmd.DefaultCommand != "" { - tracef("no positional args present; checking default command %[1]q (cmd=%[2]q)", cmd.DefaultCommand, cmd.Name) - - if dc := cmd.Command(cmd.DefaultCommand); dc != cmd { - subCmd = dc - } - } - - // If a subcommand has been resolved, let it handle the remaining execution. - if subCmd != nil { - tracef("running sub-command %[1]q with arguments %[2]q (cmd=%[3]q)", subCmd.Name, cmd.Args(), cmd.Name) - - // It is important that we overwrite the ctx variable in the current - // function so any defer'd functions use the new context returned - // from the sub command. - ctx, err = subCmd.run(ctx, cmd.Args().Slice()) - return ctx, err - } - - // This code path is the innermost command execution. Here we actually - // perform the command action. - // - // First, resolve the chain of nested commands up to the parent. - var cmdChain []*Command - for p := cmd; p != nil; p = p.parent { - cmdChain = append(cmdChain, p) - } - slices.Reverse(cmdChain) - - // Run Before actions in order. - for _, cmd := range cmdChain { - if cmd.Before == nil { - continue - } - if bctx, err := cmd.Before(ctx, cmd); err != nil { - deferErr = cmd.handleExitCoder(ctx, err) - return ctx, deferErr - } else if bctx != nil { - ctx = bctx - } - } - - // Run flag actions in order. - // These take a context, so this has to happen after Before actions. - for _, cmd := range cmdChain { - tracef("running flag actions (cmd=%[1]q)", cmd.Name) - if err := cmd.runFlagActions(ctx); err != nil { - deferErr = cmd.handleExitCoder(ctx, err) - return ctx, deferErr - } - } - - if err := cmd.checkAllRequiredFlags(); err != nil { - cmd.isInError = true - if cmd.OnUsageError != nil { - err = cmd.OnUsageError(ctx, cmd, err, cmd.parent != nil) - } else { - _ = ShowSubcommandHelp(cmd) - } - return ctx, err - } - - // Run the command action. - if len(cmd.Arguments) > 0 { - rargs := cmd.Args().Slice() - tracef("calling argparse with %[1]v", rargs) - for _, arg := range cmd.Arguments { - var err error - rargs, err = arg.Parse(rargs) - if err != nil { - tracef("calling with %[1]v (cmd=%[2]q)", err, cmd.Name) - if cmd.OnUsageError != nil { - err = cmd.OnUsageError(ctx, cmd, err, cmd.parent != nil) - } - err = cmd.handleExitCoder(ctx, err) - return ctx, err - } - } - cmd.parsedArgs = &stringSliceArgs{v: rargs} - } - - if err := cmd.Action(ctx, cmd); err != nil { - tracef("calling handleExitCoder with %[1]v (cmd=%[2]q)", err, cmd.Name) - deferErr = cmd.handleExitCoder(ctx, err) - } - - tracef("returning deferErr (cmd=%[1]q) %[2]q", cmd.Name, deferErr) - return ctx, deferErr -} diff --git a/vendor/github.com/urfave/cli/v3/command_setup.go b/vendor/github.com/urfave/cli/v3/command_setup.go deleted file mode 100644 index cac4a30..0000000 --- a/vendor/github.com/urfave/cli/v3/command_setup.go +++ /dev/null @@ -1,223 +0,0 @@ -package cli - -import ( - "flag" - "os" - "path/filepath" - "sort" - "strings" -) - -func (cmd *Command) setupDefaults(osArgs []string) { - if cmd.didSetupDefaults { - tracef("already did setup (cmd=%[1]q)", cmd.Name) - return - } - - cmd.didSetupDefaults = true - - isRoot := cmd.parent == nil - tracef("isRoot? %[1]v (cmd=%[2]q)", isRoot, cmd.Name) - - if cmd.ShellComplete == nil { - tracef("setting default ShellComplete (cmd=%[1]q)", cmd.Name) - cmd.ShellComplete = DefaultCompleteWithFlags - } - - if cmd.Name == "" && isRoot { - name := filepath.Base(osArgs[0]) - tracef("setting cmd.Name from first arg basename (cmd=%[1]q)", name) - cmd.Name = name - } - - if cmd.Usage == "" && isRoot { - tracef("setting default Usage (cmd=%[1]q)", cmd.Name) - cmd.Usage = "A new cli application" - } - - if cmd.Version == "" { - tracef("setting HideVersion=true due to empty Version (cmd=%[1]q)", cmd.Name) - cmd.HideVersion = true - } - - if cmd.Action == nil { - tracef("setting default Action as help command action (cmd=%[1]q)", cmd.Name) - cmd.Action = helpCommandAction - } - - if cmd.Reader == nil { - tracef("setting default Reader as os.Stdin (cmd=%[1]q)", cmd.Name) - cmd.Reader = os.Stdin - } - - if cmd.Writer == nil { - tracef("setting default Writer as os.Stdout (cmd=%[1]q)", cmd.Name) - cmd.Writer = os.Stdout - } - - if cmd.ErrWriter == nil { - tracef("setting default ErrWriter as os.Stderr (cmd=%[1]q)", cmd.Name) - cmd.ErrWriter = os.Stderr - } - - if cmd.AllowExtFlags { - tracef("visiting all flags given AllowExtFlags=true (cmd=%[1]q)", cmd.Name) - // add global flags added by other packages - flag.VisitAll(func(f *flag.Flag) { - // skip test flags - if !strings.HasPrefix(f.Name, ignoreFlagPrefix) { - cmd.Flags = append(cmd.Flags, &extFlag{f}) - } - }) - } - - for _, subCmd := range cmd.Commands { - tracef("setting sub-command (cmd=%[1]q) parent as self (cmd=%[2]q)", subCmd.Name, cmd.Name) - subCmd.parent = cmd - } - - cmd.ensureHelp() - - if !cmd.HideVersion && isRoot { - tracef("appending version flag (cmd=%[1]q)", cmd.Name) - if !cmd.globaVersionFlagAdded { - var localVersionFlag Flag - if globalVersionFlag, ok := VersionFlag.(*BoolFlag); ok { - flag := *globalVersionFlag - localVersionFlag = &flag - } else { - localVersionFlag = VersionFlag - } - - cmd.appendFlag(localVersionFlag) - cmd.globaVersionFlagAdded = true - } - } - - if cmd.PrefixMatchCommands && cmd.SuggestCommandFunc == nil { - tracef("setting default SuggestCommandFunc (cmd=%[1]q)", cmd.Name) - cmd.SuggestCommandFunc = suggestCommand - } - - if isRoot && cmd.EnableShellCompletion || cmd.ConfigureShellCompletionCommand != nil { - completionCommand := buildCompletionCommand(cmd.Name) - - if cmd.ShellCompletionCommandName != "" { - tracef( - "setting completion command name (%[1]q) from "+ - "cmd.ShellCompletionCommandName (cmd=%[2]q)", - cmd.ShellCompletionCommandName, cmd.Name, - ) - completionCommand.Name = cmd.ShellCompletionCommandName - } - - tracef("appending completionCommand (cmd=%[1]q)", cmd.Name) - cmd.appendCommand(completionCommand) - if cmd.ConfigureShellCompletionCommand != nil { - cmd.ConfigureShellCompletionCommand(completionCommand) - } - } - - tracef("setting command categories (cmd=%[1]q)", cmd.Name) - cmd.categories = newCommandCategories() - - for _, subCmd := range cmd.Commands { - cmd.categories.AddCommand(subCmd.Category, subCmd) - } - - tracef("sorting command categories (cmd=%[1]q)", cmd.Name) - sort.Sort(cmd.categories.(*commandCategories)) - - tracef("setting category on mutually exclusive flags (cmd=%[1]q)", cmd.Name) - for _, grp := range cmd.MutuallyExclusiveFlags { - grp.propagateCategory() - } - - tracef("setting flag categories (cmd=%[1]q)", cmd.Name) - cmd.flagCategories = newFlagCategoriesFromFlags(cmd.allFlags()) - - if cmd.Metadata == nil { - tracef("setting default Metadata (cmd=%[1]q)", cmd.Name) - cmd.Metadata = map[string]any{} - } - - cmd.setFlags = map[Flag]struct{}{} -} - -func (cmd *Command) setupCommandGraph() { - tracef("setting up command graph (cmd=%[1]q)", cmd.Name) - - for _, subCmd := range cmd.Commands { - subCmd.parent = cmd - subCmd.setupSubcommand() - subCmd.setupCommandGraph() - } -} - -func (cmd *Command) setupSubcommand() { - tracef("setting up self as sub-command (cmd=%[1]q)", cmd.Name) - - cmd.ensureHelp() - - tracef("setting command categories (cmd=%[1]q)", cmd.Name) - cmd.categories = newCommandCategories() - - for _, subCmd := range cmd.Commands { - cmd.categories.AddCommand(subCmd.Category, subCmd) - } - - tracef("sorting command categories (cmd=%[1]q)", cmd.Name) - sort.Sort(cmd.categories.(*commandCategories)) - - tracef("setting category on mutually exclusive flags (cmd=%[1]q)", cmd.Name) - for _, grp := range cmd.MutuallyExclusiveFlags { - grp.propagateCategory() - } - - tracef("setting flag categories (cmd=%[1]q)", cmd.Name) - cmd.flagCategories = newFlagCategoriesFromFlags(cmd.allFlags()) -} - -func (cmd *Command) hideHelp() bool { - tracef("hide help (cmd=%[1]q)", cmd.Name) - for c := cmd; c != nil; c = c.parent { - if c.HideHelp { - return true - } - } - - return false -} - -func (cmd *Command) ensureHelp() { - tracef("ensuring help (cmd=%[1]q)", cmd.Name) - - helpCommand := buildHelpCommand(true) - - if !cmd.hideHelp() { - if cmd.Command(helpCommand.Name) == nil { - if !cmd.HideHelpCommand { - tracef("appending helpCommand (cmd=%[1]q)", cmd.Name) - cmd.appendCommand(helpCommand) - } - } - - if HelpFlag != nil { - if !cmd.globaHelpFlagAdded { - var localHelpFlag Flag - if globalHelpFlag, ok := HelpFlag.(*BoolFlag); ok { - flag := *globalHelpFlag - localHelpFlag = &flag - } else { - localHelpFlag = HelpFlag - } - - tracef("appending HelpFlag (cmd=%[1]q)", cmd.Name) - cmd.appendFlag(localHelpFlag) - cmd.globaHelpFlagAdded = true - } else { - tracef("HelpFlag already added, skip (cmd=%[1]q)", cmd.Name) - } - } - } -} diff --git a/vendor/github.com/urfave/cli/v3/completion.go b/vendor/github.com/urfave/cli/v3/completion.go deleted file mode 100644 index d97ade6..0000000 --- a/vendor/github.com/urfave/cli/v3/completion.go +++ /dev/null @@ -1,100 +0,0 @@ -package cli - -import ( - "context" - "embed" - "fmt" - "sort" - "strings" -) - -const ( - completionCommandName = "completion" - - // This flag is supposed to only be used by the completion script itself to generate completions on the fly. - completionFlag = "--generate-shell-completion" -) - -type renderCompletion func(cmd *Command, appName string) (string, error) - -var ( - //go:embed autocomplete - autoCompleteFS embed.FS - - shellCompletions = map[string]renderCompletion{ - "bash": func(c *Command, appName string) (string, error) { - b, err := autoCompleteFS.ReadFile("autocomplete/bash_autocomplete") - return fmt.Sprintf(string(b), appName), err - }, - "zsh": func(c *Command, appName string) (string, error) { - b, err := autoCompleteFS.ReadFile("autocomplete/zsh_autocomplete") - return fmt.Sprintf(string(b), appName), err - }, - "fish": func(c *Command, appName string) (string, error) { - return c.Root().ToFishCompletion() - }, - "pwsh": func(c *Command, appName string) (string, error) { - b, err := autoCompleteFS.ReadFile("autocomplete/powershell_autocomplete.ps1") - return string(b), err - }, - } -) - -const completionDescription = `Output shell completion script for bash, zsh, fish, or Powershell. -Source the output to enable completion. - -# .bashrc -source <($COMMAND completion bash) - -# .zshrc -source <($COMMAND completion zsh) - -# fish -$COMMAND completion fish > ~/.config/fish/completions/$COMMAND.fish - -# Powershell -Output the script to path/to/autocomplete/$COMMAND.ps1 an run it. -` - -func buildCompletionCommand(appName string) *Command { - return &Command{ - Name: completionCommandName, - Hidden: true, - Usage: "Output shell completion script for bash, zsh, fish, or Powershell", - Description: strings.ReplaceAll(completionDescription, "$COMMAND", appName), - Action: func(ctx context.Context, cmd *Command) error { - return printShellCompletion(ctx, cmd, appName) - }, - } -} - -func printShellCompletion(_ context.Context, cmd *Command, appName string) error { - var shells []string - for k := range shellCompletions { - shells = append(shells, k) - } - - sort.Strings(shells) - - if cmd.Args().Len() == 0 { - return Exit(fmt.Sprintf("no shell provided for completion command. available shells are %+v", shells), 1) - } - s := cmd.Args().First() - - renderCompletion, ok := shellCompletions[s] - if !ok { - return Exit(fmt.Sprintf("unknown shell %s, available shells are %+v", s, shells), 1) - } - - completionScript, err := renderCompletion(cmd, appName) - if err != nil { - return Exit(err, 1) - } - - _, err = cmd.Writer.Write([]byte(completionScript)) - if err != nil { - return Exit(err, 1) - } - - return nil -} diff --git a/vendor/github.com/urfave/cli/v3/docs.go b/vendor/github.com/urfave/cli/v3/docs.go deleted file mode 100644 index 8ecdfc8..0000000 --- a/vendor/github.com/urfave/cli/v3/docs.go +++ /dev/null @@ -1,128 +0,0 @@ -package cli - -import ( - "fmt" - "os" - "runtime" - "strings" -) - -func prefixFor(name string) (prefix string) { - if len(name) == 1 { - prefix = "-" - } else { - prefix = "--" - } - - return prefix -} - -// Returns the placeholder, if any, and the unquoted usage string. -func unquoteUsage(usage string) (string, string) { - for i := 0; i < len(usage); i++ { - if usage[i] == '`' { - for j := i + 1; j < len(usage); j++ { - if usage[j] == '`' { - name := usage[i+1 : j] - usage = usage[:i] + name + usage[j+1:] - return name, usage - } - } - break - } - } - return "", usage -} - -func prefixedNames(names []string, placeholder string) string { - var prefixed string - for i, name := range names { - if name == "" { - continue - } - - prefixed += prefixFor(name) + name - if placeholder != "" { - prefixed += " " + placeholder - } - if i < len(names)-1 { - prefixed += ", " - } - } - return prefixed -} - -func envFormat(envVars []string, prefix, sep, suffix string) string { - if len(envVars) > 0 { - return fmt.Sprintf(" [%s%s%s]", prefix, strings.Join(envVars, sep), suffix) - } - return "" -} - -func defaultEnvFormat(envVars []string) string { - return envFormat(envVars, "$", ", $", "") -} - -func withEnvHint(envVars []string, str string) string { - envText := "" - if runtime.GOOS != "windows" || os.Getenv("PSHOME") != "" { - envText = defaultEnvFormat(envVars) - } else { - envText = envFormat(envVars, "%", "%, %", "%") - } - return str + envText -} - -func withFileHint(filePath, str string) string { - fileText := "" - if filePath != "" { - fileText = fmt.Sprintf(" [%s]", filePath) - } - return str + fileText -} - -func formatDefault(format string) string { - return " (default: " + format + ")" -} - -func stringifyFlag(f Flag) string { - // enforce DocGeneration interface on flags to avoid reflection - df, ok := f.(DocGenerationFlag) - if !ok { - return "" - } - placeholder, usage := unquoteUsage(df.GetUsage()) - needsPlaceholder := df.TakesValue() - // if needsPlaceholder is true, placeholder is empty - if needsPlaceholder && placeholder == "" { - // try to get type from flag - if tname := df.TypeName(); tname != "" { - placeholder = tname - } else { - placeholder = defaultPlaceholder - } - } - - defaultValueString := "" - - // don't print default text for required flags - if rf, ok := f.(RequiredFlag); !ok || !rf.IsRequired() { - if df.IsDefaultVisible() { - if s := df.GetDefaultText(); s != "" { - defaultValueString = fmt.Sprintf(formatDefault("%s"), s) - } else if df.TakesValue() && df.GetValue() != "" { - defaultValueString = fmt.Sprintf(formatDefault("%s"), df.GetValue()) - } - } - } - - usageWithDefault := strings.TrimSpace(usage + defaultValueString) - - pn := prefixedNames(f.Names(), placeholder) - sliceFlag, ok := f.(DocGenerationMultiValueFlag) - if ok && sliceFlag.IsMultiValueFlag() { - pn = pn + " [ " + pn + " ]" - } - - return withEnvHint(df.GetEnvVars(), fmt.Sprintf("%s\t%s", pn, usageWithDefault)) -} diff --git a/vendor/github.com/urfave/cli/v3/errors.go b/vendor/github.com/urfave/cli/v3/errors.go deleted file mode 100644 index a1188e7..0000000 --- a/vendor/github.com/urfave/cli/v3/errors.go +++ /dev/null @@ -1,184 +0,0 @@ -package cli - -import ( - "fmt" - "io" - "os" - "strings" -) - -// OsExiter is the function used when the app exits. If not set defaults to os.Exit. -var OsExiter = os.Exit - -// ErrWriter is used to write errors to the user. This can be anything -// implementing the io.Writer interface and defaults to os.Stderr. -var ErrWriter io.Writer = os.Stderr - -// MultiError is an error that wraps multiple errors. -type MultiError interface { - error - Errors() []error -} - -// newMultiError creates a new MultiError. Pass in one or more errors. -func newMultiError(err ...error) MultiError { - ret := multiError(err) - return &ret -} - -type multiError []error - -// Error implements the error interface. -func (m *multiError) Error() string { - errs := make([]string, len(*m)) - for i, err := range *m { - errs[i] = err.Error() - } - - return strings.Join(errs, "\n") -} - -// Errors returns a copy of the errors slice -func (m *multiError) Errors() []error { - errs := make([]error, len(*m)) - copy(errs, *m) - return errs -} - -type requiredFlagsErr interface { - error -} - -type errRequiredFlags struct { - missingFlags []string -} - -func (e *errRequiredFlags) Error() string { - if len(e.missingFlags) == 1 { - return fmt.Sprintf("Required flag %q not set", e.missingFlags[0]) - } - joinedMissingFlags := strings.Join(e.missingFlags, ", ") - return fmt.Sprintf("Required flags %q not set", joinedMissingFlags) -} - -type mutuallyExclusiveGroup struct { - flag1Name string - flag2Name string -} - -func (e *mutuallyExclusiveGroup) Error() string { - return fmt.Sprintf("option %s cannot be set along with option %s", e.flag1Name, e.flag2Name) -} - -type mutuallyExclusiveGroupRequiredFlag struct { - flags *MutuallyExclusiveFlags -} - -func (e *mutuallyExclusiveGroupRequiredFlag) Error() string { - var missingFlags []string - for _, grpf := range e.flags.Flags { - var grpString []string - for _, f := range grpf { - grpString = append(grpString, f.Names()...) - } - missingFlags = append(missingFlags, strings.Join(grpString, " ")) - } - - return fmt.Sprintf("one of these flags needs to be provided: %s", strings.Join(missingFlags, ", ")) -} - -// ErrorFormatter is the interface that will suitably format the error output -type ErrorFormatter interface { - Format(s fmt.State, verb rune) -} - -// ExitCoder is the interface checked by `Command` for a custom exit code. -type ExitCoder interface { - error - ExitCode() int -} - -type exitError struct { - exitCode int - err error -} - -// Exit wraps a message and exit code into an error, which by default is -// handled with a call to os.Exit during default error handling. -// -// This is the simplest way to trigger a non-zero exit code for a Command without -// having to call os.Exit manually. During testing, this behavior can be avoided -// by overriding the ExitErrHandler function on a Command or the package-global -// OsExiter function. -func Exit(message any, exitCode int) ExitCoder { - var err error - - switch e := message.(type) { - case ErrorFormatter: - err = fmt.Errorf("%+v", message) - case error: - err = e - default: - err = fmt.Errorf("%+v", message) - } - - return &exitError{ - err: err, - exitCode: exitCode, - } -} - -func (ee *exitError) Error() string { - return ee.err.Error() -} - -func (ee *exitError) ExitCode() int { - return ee.exitCode -} - -// HandleExitCoder handles errors implementing ExitCoder by printing their -// message and calling OsExiter with the given exit code. -// -// If the given error instead implements MultiError, each error will be checked -// for the ExitCoder interface, and OsExiter will be called with the last exit -// code found, or exit code 1 if no ExitCoder is found. -// -// This function is the default error-handling behavior for a Command. -func HandleExitCoder(err error) { - if err == nil { - return - } - - if exitErr, ok := err.(ExitCoder); ok { - if err.Error() != "" { - if _, ok := exitErr.(ErrorFormatter); ok { - _, _ = fmt.Fprintf(ErrWriter, "%+v\n", err) - } else { - _, _ = fmt.Fprintln(ErrWriter, err) - } - } - OsExiter(exitErr.ExitCode()) - return - } - - if multiErr, ok := err.(MultiError); ok { - code := handleMultiError(multiErr) - OsExiter(code) - return - } -} - -func handleMultiError(multiErr MultiError) int { - code := 1 - for _, merr := range multiErr.Errors() { - if multiErr2, ok := merr.(MultiError); ok { - code = handleMultiError(multiErr2) - } else if merr != nil { - fmt.Fprintln(ErrWriter, merr) - if exitErr, ok := merr.(ExitCoder); ok { - code = exitErr.ExitCode() - } - } - } - return code -} diff --git a/vendor/github.com/urfave/cli/v3/fish.go b/vendor/github.com/urfave/cli/v3/fish.go deleted file mode 100644 index 1607f55..0000000 --- a/vendor/github.com/urfave/cli/v3/fish.go +++ /dev/null @@ -1,189 +0,0 @@ -package cli - -import ( - "bytes" - "fmt" - "io" - "strings" - "text/template" -) - -// ToFishCompletion creates a fish completion string for the `*Command` -// The function errors if either parsing or writing of the string fails. -func (cmd *Command) ToFishCompletion() (string, error) { - var w bytes.Buffer - if err := cmd.writeFishCompletionTemplate(&w); err != nil { - return "", err - } - return w.String(), nil -} - -type fishCommandCompletionTemplate struct { - Command *Command - Completions []string - AllCommands []string -} - -func (cmd *Command) writeFishCompletionTemplate(w io.Writer) error { - const name = "cli" - t, err := template.New(name).Parse(FishCompletionTemplate) - if err != nil { - return err - } - - // Add global flags - completions := prepareFishFlags(cmd.Name, cmd) - - // Add commands and their flags - completions = append( - completions, - prepareFishCommands(cmd.Name, cmd)..., - ) - - toplevelCommandNames := []string{} - for _, child := range cmd.Commands { - toplevelCommandNames = append(toplevelCommandNames, child.Names()...) - } - - return t.ExecuteTemplate(w, name, &fishCommandCompletionTemplate{ - Command: cmd, - Completions: completions, - AllCommands: toplevelCommandNames, - }) -} - -func prepareFishCommands(binary string, parent *Command) []string { - commands := parent.Commands - completions := []string{} - for _, command := range commands { - if !command.Hidden { - var completion strings.Builder - fmt.Fprintf(&completion, - "complete -x -c %s -n '%s' -a '%s'", - binary, - fishSubcommandHelper(binary, parent, commands), - command.Name, - ) - - if command.Usage != "" { - fmt.Fprintf(&completion, - " -d '%s'", - escapeSingleQuotes(command.Usage)) - } - completions = append(completions, completion.String()) - } - completions = append( - completions, - prepareFishFlags(binary, command)..., - ) - - // recursively iterate subcommands - completions = append( - completions, - prepareFishCommands(binary, command)..., - ) - } - - return completions -} - -func prepareFishFlags(binary string, owner *Command) []string { - flags := owner.VisibleFlags() - completions := []string{} - for _, f := range flags { - completion := &strings.Builder{} - fmt.Fprintf(completion, - "complete -c %s -n '%s'", - binary, - fishFlagHelper(binary, owner), - ) - - fishAddFileFlag(f, completion) - - for idx, opt := range f.Names() { - if idx == 0 { - fmt.Fprintf(completion, - " -l %s", strings.TrimSpace(opt), - ) - } else { - fmt.Fprintf(completion, - " -s %s", strings.TrimSpace(opt), - ) - } - } - - if flag, ok := f.(DocGenerationFlag); ok { - if flag.TakesValue() { - completion.WriteString(" -r") - } - - if flag.GetUsage() != "" { - fmt.Fprintf(completion, - " -d '%s'", - escapeSingleQuotes(flag.GetUsage())) - } - } - - completions = append(completions, completion.String()) - } - - return completions -} - -func fishAddFileFlag(flag Flag, completion *strings.Builder) { - switch f := flag.(type) { - case *StringFlag: - if f.TakesFile { - return - } - case *StringSliceFlag: - if f.TakesFile { - return - } - } - completion.WriteString(" -f") -} - -func fishSubcommandHelper(binary string, command *Command, siblings []*Command) string { - fishHelper := fmt.Sprintf("__fish_%s_no_subcommand", binary) - if len(command.Lineage()) > 1 { - var siblingNames []string - for _, sibling := range siblings { - siblingNames = append(siblingNames, sibling.Names()...) - } - ancestry := commandAncestry(command) - fishHelper = fmt.Sprintf( - "%s; and not __fish_seen_subcommand_from %s", - ancestry, - strings.Join(siblingNames, " "), - ) - } - return fishHelper -} - -func fishFlagHelper(binary string, command *Command) string { - fishHelper := fmt.Sprintf("__fish_%s_no_subcommand", binary) - if len(command.Lineage()) > 1 { - fishHelper = commandAncestry(command) - } - return fishHelper -} - -func commandAncestry(command *Command) string { - var ancestry []string - ancestors := command.Lineage() - for i := len(ancestors) - 2; i >= 0; i-- { - ancestry = append( - ancestry, - fmt.Sprintf( - "__fish_seen_subcommand_from %s", - strings.Join(ancestors[i].Names(), " "), - ), - ) - } - return strings.Join(ancestry, "; and ") -} - -func escapeSingleQuotes(input string) string { - return strings.ReplaceAll(input, `'`, `\'`) -} diff --git a/vendor/github.com/urfave/cli/v3/flag.go b/vendor/github.com/urfave/cli/v3/flag.go deleted file mode 100644 index 6ff83f5..0000000 --- a/vendor/github.com/urfave/cli/v3/flag.go +++ /dev/null @@ -1,234 +0,0 @@ -package cli - -import ( - "context" - "fmt" - "regexp" - "strings" - "time" -) - -const defaultPlaceholder = "value" - -const ( - defaultSliceFlagSeparator = "," - defaultMapFlagKeyValueSeparator = "=" - disableSliceFlagSeparator = false -) - -var ( - slPfx = fmt.Sprintf("sl:::%d:::", time.Now().UTC().UnixNano()) - - commaWhitespace = regexp.MustCompile("[, ]+.*") -) - -// GenerateShellCompletionFlag enables shell completion -var GenerateShellCompletionFlag Flag = &BoolFlag{ - Name: "generate-shell-completion", - Hidden: true, -} - -// VersionFlag prints the version for the application -var VersionFlag Flag = &BoolFlag{ - Name: "version", - Aliases: []string{"v"}, - Usage: "print the version", - HideDefault: true, - Local: true, -} - -// HelpFlag prints the help for all commands and subcommands. -// Set to nil to disable the flag. The subcommand -// will still be added unless HideHelp or HideHelpCommand is set to true. -var HelpFlag Flag = &BoolFlag{ - Name: "help", - Aliases: []string{"h"}, - Usage: "show help", - HideDefault: true, - Local: true, -} - -// FlagStringer converts a flag definition to a string. This is used by help -// to display a flag. -var FlagStringer FlagStringFunc = stringifyFlag - -// Serializer is used to circumvent the limitations of flag.FlagSet.Set -type Serializer interface { - Serialize() string -} - -// FlagNamePrefixer converts a full flag name and its placeholder into the help -// message flag prefix. This is used by the default FlagStringer. -var FlagNamePrefixer FlagNamePrefixFunc = prefixedNames - -// FlagEnvHinter annotates flag help message with the environment variable -// details. This is used by the default FlagStringer. -var FlagEnvHinter FlagEnvHintFunc = withEnvHint - -// FlagFileHinter annotates flag help message with the environment variable -// details. This is used by the default FlagStringer. -var FlagFileHinter FlagFileHintFunc = withFileHint - -// FlagsByName is a slice of Flag. -type FlagsByName []Flag - -func (f FlagsByName) Len() int { - return len(f) -} - -func (f FlagsByName) Less(i, j int) bool { - if len(f[j].Names()) == 0 { - return false - } else if len(f[i].Names()) == 0 { - return true - } - return lexicographicLess(f[i].Names()[0], f[j].Names()[0]) -} - -func (f FlagsByName) Swap(i, j int) { - f[i], f[j] = f[j], f[i] -} - -// ActionableFlag is an interface that wraps Flag interface and RunAction operation. -type ActionableFlag interface { - RunAction(context.Context, *Command) error -} - -// Flag is a common interface related to parsing flags in cli. -// For more advanced flag parsing techniques, it is recommended that -// this interface be implemented. -type Flag interface { - fmt.Stringer - - // Retrieve the value of the Flag - Get() any - - // Lifecycle methods. - // flag callback prior to parsing - PreParse() error - - // flag callback post parsing - PostParse() error - - // Apply Flag settings to the given flag set - Set(string, string) error - - // All possible names for this flag - Names() []string - - // Whether the flag has been set or not - IsSet() bool -} - -// RequiredFlag is an interface that allows us to mark flags as required -// it allows flags required flags to be backwards compatible with the Flag interface -type RequiredFlag interface { - // whether the flag is a required flag or not - IsRequired() bool -} - -// DocGenerationFlag is an interface that allows documentation generation for the flag -type DocGenerationFlag interface { - // TakesValue returns true if the flag takes a value, otherwise false - TakesValue() bool - - // GetUsage returns the usage string for the flag - GetUsage() string - - // GetValue returns the flags value as string representation and an empty - // string if the flag takes no value at all. - GetValue() string - - // GetDefaultText returns the default text for this flag - GetDefaultText() string - - // GetEnvVars returns the env vars for this flag - GetEnvVars() []string - - // IsDefaultVisible returns whether the default value should be shown in - // help text - IsDefaultVisible() bool - // TypeName to detect if a flag is a string, bool, etc. - TypeName() string -} - -// DocGenerationMultiValueFlag extends DocGenerationFlag for slice/map based flags. -type DocGenerationMultiValueFlag interface { - DocGenerationFlag - - // IsMultiValueFlag returns true for flags that can be given multiple times. - IsMultiValueFlag() bool -} - -// Countable is an interface to enable detection of flag values which support -// repetitive flags -type Countable interface { - Count() int -} - -// VisibleFlag is an interface that allows to check if a flag is visible -type VisibleFlag interface { - // IsVisible returns true if the flag is not hidden, otherwise false - IsVisible() bool -} - -// CategorizableFlag is an interface that allows us to potentially -// use a flag in a categorized representation. -type CategorizableFlag interface { - // Returns the category of the flag - GetCategory() string - - // Sets the category of the flag - SetCategory(string) -} - -// LocalFlag is an interface to enable detection of flags which are local -// to current command -type LocalFlag interface { - IsLocal() bool -} - -func visibleFlags(fl []Flag) []Flag { - var visible []Flag - for _, f := range fl { - if vf, ok := f.(VisibleFlag); ok && vf.IsVisible() { - visible = append(visible, f) - } - } - return visible -} - -func FlagNames(name string, aliases []string) []string { - var ret []string - - for _, part := range append([]string{name}, aliases...) { - // v1 -> v2 migration warning zone: - // Strip off anything after the first found comma or space, which - // *hopefully* makes it a tiny bit more obvious that unexpected behavior is - // caused by using the v1 form of stringly typed "Name". - ret = append(ret, commaWhitespace.ReplaceAllString(part, "")) - } - - return ret -} - -func hasFlag(flags []Flag, fl Flag) bool { - for _, existing := range flags { - if fl == existing { - return true - } - } - - return false -} - -func flagSplitMultiValues(val string, sliceSeparator string, disableSliceSeparator bool) []string { - if disableSliceSeparator { - return []string{val} - } - - if len(sliceSeparator) == 0 { - sliceSeparator = defaultSliceFlagSeparator - } - return strings.Split(val, sliceSeparator) -} diff --git a/vendor/github.com/urfave/cli/v3/flag_bool.go b/vendor/github.com/urfave/cli/v3/flag_bool.go deleted file mode 100644 index d576448..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_bool.go +++ /dev/null @@ -1,81 +0,0 @@ -package cli - -import ( - "errors" - "strconv" -) - -type BoolFlag = FlagBase[bool, BoolConfig, boolValue] - -// BoolConfig defines the configuration for bool flags -type BoolConfig struct { - Count *int -} - -// boolValue needs to implement the boolFlag internal interface in flag -// to be able to capture bool fields and values -// -// type boolFlag interface { -// Value -// IsBoolFlag() bool -// } -type boolValue struct { - destination *bool - count *int -} - -func (cmd *Command) Bool(name string) bool { - if v, ok := cmd.Value(name).(bool); ok { - tracef("bool available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - return v - } - - tracef("bool NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return false -} - -// Below functions are to satisfy the ValueCreator interface - -// Create creates the bool value -func (b boolValue) Create(val bool, p *bool, c BoolConfig) Value { - *p = val - if c.Count == nil { - c.Count = new(int) - } - return &boolValue{ - destination: p, - count: c.Count, - } -} - -// ToString formats the bool value -func (b boolValue) ToString(value bool) string { - return strconv.FormatBool(value) -} - -// Below functions are to satisfy the flag.Value interface - -func (b *boolValue) Set(s string) error { - v, err := strconv.ParseBool(s) - if err != nil { - err = errors.New("parse error") - return err - } - *b.destination = v - if b.count != nil { - *b.count = *b.count + 1 - } - return err -} - -func (b *boolValue) Get() interface{} { return *b.destination } - -func (b *boolValue) String() string { - return strconv.FormatBool(*b.destination) -} - -func (b *boolValue) IsBoolFlag() bool { return true } - -func (b *boolValue) Count() int { - return *b.count -} diff --git a/vendor/github.com/urfave/cli/v3/flag_bool_with_inverse.go b/vendor/github.com/urfave/cli/v3/flag_bool_with_inverse.go deleted file mode 100644 index 272dd98..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_bool_with_inverse.go +++ /dev/null @@ -1,240 +0,0 @@ -package cli - -import ( - "context" - "fmt" - "slices" - "strings" -) - -var DefaultInverseBoolPrefix = "no-" - -type BoolWithInverseFlag struct { - Name string `json:"name"` // name of the flag - Category string `json:"category"` // category of the flag, if any - DefaultText string `json:"defaultText"` // default text of the flag for usage purposes - HideDefault bool `json:"hideDefault"` // whether to hide the default value in output - Usage string `json:"usage"` // usage string for help output - Sources ValueSourceChain `json:"-"` // sources to load flag value from - Required bool `json:"required"` // whether the flag is required or not - Hidden bool `json:"hidden"` // whether to hide the flag in help output - Local bool `json:"local"` // whether the flag needs to be applied to subcommands as well - Value bool `json:"defaultValue"` // default value for this flag if not set by from any source - Destination *bool `json:"-"` // destination pointer for value when set - Aliases []string `json:"aliases"` // Aliases that are allowed for this flag - TakesFile bool `json:"takesFileArg"` // whether this flag takes a file argument, mainly for shell completion purposes - Action func(context.Context, *Command, bool) error `json:"-"` // Action callback to be called when flag is set - OnlyOnce bool `json:"onlyOnce"` // whether this flag can be duplicated on the command line - Validator func(bool) error `json:"-"` // custom function to validate this flag value - ValidateDefaults bool `json:"validateDefaults"` // whether to validate defaults or not - Config BoolConfig `json:"config"` // Additional/Custom configuration associated with this flag type - InversePrefix string `json:"invPrefix"` // The prefix used to indicate a negative value. Default: `env` becomes `no-env` - - // unexported fields for internal use - count int // number of times the flag has been set - hasBeenSet bool // whether the flag has been set from env or file - applied bool // whether the flag has been applied to a flag set already - value Value // value representing this flag's value - pset bool - nset bool -} - -func (bif *BoolWithInverseFlag) IsSet() bool { - return bif.hasBeenSet -} - -func (bif *BoolWithInverseFlag) Get() any { - return bif.value.Get() -} - -func (bif *BoolWithInverseFlag) RunAction(ctx context.Context, cmd *Command) error { - if bif.Action != nil { - return bif.Action(ctx, cmd, bif.Get().(bool)) - } - - return nil -} - -func (bif *BoolWithInverseFlag) IsLocal() bool { - return bif.Local -} - -func (bif *BoolWithInverseFlag) inversePrefix() string { - if bif.InversePrefix == "" { - bif.InversePrefix = DefaultInverseBoolPrefix - } - - return bif.InversePrefix -} - -func (bif *BoolWithInverseFlag) PreParse() error { - count := bif.Config.Count - if count == nil { - count = &bif.count - } - dest := bif.Destination - if dest == nil { - dest = new(bool) - } - *dest = bif.Value - bif.value = &boolValue{ - destination: dest, - count: count, - } - - // Validate the given default or values set from external sources as well - if bif.Validator != nil && bif.ValidateDefaults { - if err := bif.Validator(bif.value.Get().(bool)); err != nil { - return err - } - } - bif.applied = true - return nil -} - -func (bif *BoolWithInverseFlag) PostParse() error { - tracef("postparse (flag=%[1]q)", bif.Name) - - if !bif.hasBeenSet { - if val, source, found := bif.Sources.LookupWithSource(); found { - if val == "" { - val = "false" - } - if err := bif.Set(bif.Name, val); err != nil { - return fmt.Errorf( - "could not parse %[1]q as %[2]T value from %[3]s for flag %[4]s: %[5]s", - val, bif.Value, source, bif.Name, err, - ) - } - - bif.hasBeenSet = true - } - } - - return nil -} - -func (bif *BoolWithInverseFlag) Set(name, val string) error { - if bif.count > 0 && bif.OnlyOnce { - return fmt.Errorf("cant duplicate this flag") - } - - bif.hasBeenSet = true - - if slices.Contains(append([]string{bif.Name}, bif.Aliases...), name) { - if bif.nset { - return fmt.Errorf("cannot set both flags `--%s` and `--%s`", bif.Name, bif.inversePrefix()+bif.Name) - } - if err := bif.value.Set(val); err != nil { - return err - } - bif.pset = true - } else { - if bif.pset { - return fmt.Errorf("cannot set both flags `--%s` and `--%s`", bif.Name, bif.inversePrefix()+bif.Name) - } - if err := bif.value.Set("false"); err != nil { - return err - } - bif.nset = true - } - - if bif.Validator != nil { - return bif.Validator(bif.value.Get().(bool)) - } - return nil -} - -func (bif *BoolWithInverseFlag) Names() []string { - names := append([]string{bif.Name}, bif.Aliases...) - - for _, name := range names { - names = append(names, bif.inversePrefix()+name) - } - - return names -} - -func (bif *BoolWithInverseFlag) IsRequired() bool { - return bif.Required -} - -func (bif *BoolWithInverseFlag) IsVisible() bool { - return !bif.Hidden -} - -// String implements the standard Stringer interface. -// -// Example for BoolFlag{Name: "env"} -// --[no-]env (default: false) -func (bif *BoolWithInverseFlag) String() string { - out := FlagStringer(bif) - - i := strings.Index(out, "\t") - - prefix := "--" - - // single character flags are prefixed with `-` instead of `--` - if len(bif.Name) == 1 { - prefix = "-" - } - - return fmt.Sprintf("%s[%s]%s%s", prefix, bif.inversePrefix(), bif.Name, out[i:]) -} - -// IsBoolFlag returns whether the flag doesnt need to accept args -func (bif *BoolWithInverseFlag) IsBoolFlag() bool { - return true -} - -// Count returns the number of times this flag has been invoked -func (bif *BoolWithInverseFlag) Count() int { - return bif.count -} - -// GetDefaultText returns the default text for this flag -func (bif *BoolWithInverseFlag) GetDefaultText() string { - if bif.Required { - return bif.DefaultText - } - return boolValue{}.ToString(bif.Value) -} - -// GetCategory returns the category of the flag -func (bif *BoolWithInverseFlag) GetCategory() string { - return bif.Category -} - -func (bif *BoolWithInverseFlag) SetCategory(c string) { - bif.Category = c -} - -// GetUsage returns the usage string for the flag -func (bif *BoolWithInverseFlag) GetUsage() string { - return bif.Usage -} - -// GetEnvVars returns the env vars for this flag -func (bif *BoolWithInverseFlag) GetEnvVars() []string { - return bif.Sources.EnvKeys() -} - -// GetValue returns the flags value as string representation and an empty -// string if the flag takes no value at all. -func (bif *BoolWithInverseFlag) GetValue() string { - return "" -} - -func (bif *BoolWithInverseFlag) TakesValue() bool { - return false -} - -// IsDefaultVisible returns true if the flag is not hidden, otherwise false -func (bif *BoolWithInverseFlag) IsDefaultVisible() bool { - return !bif.HideDefault -} - -// TypeName is used for stringify/docs. For bool its a no-op -func (bif *BoolWithInverseFlag) TypeName() string { - return "bool" -} diff --git a/vendor/github.com/urfave/cli/v3/flag_duration.go b/vendor/github.com/urfave/cli/v3/flag_duration.go deleted file mode 100644 index 37b4cb6..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_duration.go +++ /dev/null @@ -1,47 +0,0 @@ -package cli - -import ( - "fmt" - "time" -) - -type DurationFlag = FlagBase[time.Duration, NoConfig, durationValue] - -// -- time.Duration Value -type durationValue time.Duration - -// Below functions are to satisfy the ValueCreator interface - -func (d durationValue) Create(val time.Duration, p *time.Duration, c NoConfig) Value { - *p = val - return (*durationValue)(p) -} - -func (d durationValue) ToString(val time.Duration) string { - return fmt.Sprintf("%v", val) -} - -// Below functions are to satisfy the flag.Value interface - -func (d *durationValue) Set(s string) error { - v, err := time.ParseDuration(s) - if err != nil { - return err - } - *d = durationValue(v) - return err -} - -func (d *durationValue) Get() any { return time.Duration(*d) } - -func (d *durationValue) String() string { return (*time.Duration)(d).String() } - -func (cmd *Command) Duration(name string) time.Duration { - if v, ok := cmd.Value(name).(time.Duration); ok { - tracef("duration available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - return v - } - - tracef("bool NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return 0 -} diff --git a/vendor/github.com/urfave/cli/v3/flag_ext.go b/vendor/github.com/urfave/cli/v3/flag_ext.go deleted file mode 100644 index 9972af7..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_ext.go +++ /dev/null @@ -1,63 +0,0 @@ -package cli - -import "flag" - -type extFlag struct { - f *flag.Flag -} - -func (e *extFlag) PreParse() error { - if e.f.DefValue != "" { - return e.Set("", e.f.DefValue) - } - - return nil -} - -func (e *extFlag) PostParse() error { - return nil -} - -func (e *extFlag) Set(_ string, val string) error { - return e.f.Value.Set(val) -} - -func (e *extFlag) Get() any { - return e.f.Value.(flag.Getter).Get() -} - -func (e *extFlag) Names() []string { - return []string{e.f.Name} -} - -func (e *extFlag) IsSet() bool { - return false -} - -func (e *extFlag) String() string { - return FlagStringer(e) -} - -func (e *extFlag) IsVisible() bool { - return true -} - -func (e *extFlag) TakesValue() bool { - return false -} - -func (e *extFlag) GetUsage() string { - return e.f.Usage -} - -func (e *extFlag) GetValue() string { - return e.f.Value.String() -} - -func (e *extFlag) GetDefaultText() string { - return e.f.DefValue -} - -func (e *extFlag) GetEnvVars() []string { - return nil -} diff --git a/vendor/github.com/urfave/cli/v3/flag_float.go b/vendor/github.com/urfave/cli/v3/flag_float.go deleted file mode 100644 index 71aa0c2..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_float.go +++ /dev/null @@ -1,75 +0,0 @@ -package cli - -import ( - "strconv" - "unsafe" -) - -type ( - FloatFlag = FlagBase[float64, NoConfig, floatValue[float64]] - Float32Flag = FlagBase[float32, NoConfig, floatValue[float32]] - Float64Flag = FlagBase[float64, NoConfig, floatValue[float64]] -) - -// -- float Value -type floatValue[T float32 | float64] struct { - val *T -} - -// Below functions are to satisfy the ValueCreator interface - -func (f floatValue[T]) Create(val T, p *T, c NoConfig) Value { - *p = val - - return &floatValue[T]{val: p} -} - -func (f floatValue[T]) ToString(b T) string { - return strconv.FormatFloat(float64(b), 'g', -1, int(unsafe.Sizeof(T(0))*8)) -} - -// Below functions are to satisfy the flag.Value interface - -func (f *floatValue[T]) Set(s string) error { - v, err := strconv.ParseFloat(s, int(unsafe.Sizeof(T(0))*8)) - if err != nil { - return err - } - *f.val = T(v) - return nil -} - -func (f *floatValue[T]) Get() any { return *f.val } - -func (f *floatValue[T]) String() string { - return strconv.FormatFloat(float64(*f.val), 'g', -1, int(unsafe.Sizeof(T(0))*8)) -} - -// Float looks up the value of a local FloatFlag, returns -// 0 if not found -func (cmd *Command) Float(name string) float64 { - return getFloat[float64](cmd, name) -} - -// Float32 looks up the value of a local Float32Flag, returns -// 0 if not found -func (cmd *Command) Float32(name string) float32 { - return getFloat[float32](cmd, name) -} - -// Float64 looks up the value of a local Float64Flag, returns -// 0 if not found -func (cmd *Command) Float64(name string) float64 { - return getFloat[float64](cmd, name) -} - -func getFloat[T float32 | float64](cmd *Command, name string) T { - if v, ok := cmd.Value(name).(T); ok { - tracef("float available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - - return v - } - - tracef("float NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return 0 -} diff --git a/vendor/github.com/urfave/cli/v3/flag_float_slice.go b/vendor/github.com/urfave/cli/v3/flag_float_slice.go deleted file mode 100644 index 9a6a46d..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_float_slice.go +++ /dev/null @@ -1,34 +0,0 @@ -package cli - -type ( - FloatSlice = SliceBase[float64, NoConfig, floatValue[float64]] - Float32Slice = SliceBase[float32, NoConfig, floatValue[float32]] - Float64Slice = SliceBase[float64, NoConfig, floatValue[float64]] - FloatSliceFlag = FlagBase[[]float64, NoConfig, FloatSlice] - Float32SliceFlag = FlagBase[[]float32, NoConfig, Float32Slice] - Float64SliceFlag = FlagBase[[]float64, NoConfig, Float64Slice] -) - -var ( - NewFloatSlice = NewSliceBase[float64, NoConfig, floatValue[float64]] - NewFloat32Slice = NewSliceBase[float32, NoConfig, floatValue[float32]] - NewFloat64Slice = NewSliceBase[float64, NoConfig, floatValue[float64]] -) - -// FloatSlice looks up the value of a local FloatSliceFlag, returns -// nil if not found -func (cmd *Command) FloatSlice(name string) []float64 { - return getNumberSlice[float64](cmd, name) -} - -// Float32Slice looks up the value of a local Float32Slice, returns -// nil if not found -func (cmd *Command) Float32Slice(name string) []float32 { - return getNumberSlice[float32](cmd, name) -} - -// Float64Slice looks up the value of a local Float64SliceFlag, returns -// nil if not found -func (cmd *Command) Float64Slice(name string) []float64 { - return getNumberSlice[float64](cmd, name) -} diff --git a/vendor/github.com/urfave/cli/v3/flag_generic.go b/vendor/github.com/urfave/cli/v3/flag_generic.go deleted file mode 100644 index 9618409..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_generic.go +++ /dev/null @@ -1,67 +0,0 @@ -package cli - -type GenericFlag = FlagBase[Value, NoConfig, genericValue] - -// -- Value Value -type genericValue struct { - val Value -} - -// Below functions are to satisfy the ValueCreator interface - -func (f genericValue) Create(val Value, p *Value, c NoConfig) Value { - *p = val - return &genericValue{ - val: *p, - } -} - -func (f genericValue) ToString(b Value) string { - if b != nil { - return b.String() - } - return "" -} - -// Below functions are to satisfy the flag.Value interface - -func (f *genericValue) Set(s string) error { - if f.val != nil { - return f.val.Set(s) - } - return nil -} - -func (f *genericValue) Get() any { - if f.val != nil { - return f.val.Get() - } - return nil -} - -func (f *genericValue) String() string { - if f.val != nil { - return f.val.String() - } - return "" -} - -func (f *genericValue) IsBoolFlag() bool { - if f.val == nil { - return false - } - bf, ok := f.val.(boolFlag) - return ok && bf.IsBoolFlag() -} - -// Generic looks up the value of a local GenericFlag, returns -// nil if not found -func (cmd *Command) Generic(name string) Value { - if v, ok := cmd.Value(name).(Value); ok { - tracef("generic available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - return v - } - - tracef("generic NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return nil -} diff --git a/vendor/github.com/urfave/cli/v3/flag_impl.go b/vendor/github.com/urfave/cli/v3/flag_impl.go deleted file mode 100644 index c7cc8df..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_impl.go +++ /dev/null @@ -1,313 +0,0 @@ -package cli - -import ( - "context" - "flag" - "fmt" - "reflect" - "strings" -) - -// Value represents a value as used by cli. -// For now it implements the golang flag.Value interface -type Value interface { - flag.Value - flag.Getter -} - -type boolFlag interface { - IsBoolFlag() bool -} - -type multiValueParsingConfig struct { - // SliceFlagSeparator is used to customize the separator for SliceFlag, the default is "," - SliceFlagSeparator string - // DisableSliceFlagSeparator is used to disable SliceFlagSeparator, the default is false - DisableSliceFlagSeparator bool - // MapFlagKeyValueSeparator is used to customize the separator for MapFlag, the default is "=" - MapFlagKeyValueSeparator string -} - -type multiValueParsingConfigSetter interface { - // configuration of parsing - setMultiValueParsingConfig(c multiValueParsingConfig) -} - -// ValueCreator is responsible for creating a flag.Value emulation -// as well as custom formatting -// -// T specifies the type -// C specifies the config for the type -type ValueCreator[T any, C any] interface { - Create(T, *T, C) Value - ToString(T) string -} - -// NoConfig is for flags which dont need a custom configuration -type NoConfig struct{} - -// FlagBase [T,C,VC] is a generic flag base which can be used -// as a boilerplate to implement the most common interfaces -// used by urfave/cli. -// -// T specifies the type -// C specifies the configuration required(if any for that flag type) -// VC specifies the value creator which creates the flag.Value emulation -type FlagBase[T any, C any, VC ValueCreator[T, C]] struct { - Name string `json:"name"` // name of the flag - Category string `json:"category"` // category of the flag, if any - DefaultText string `json:"defaultText"` // default text of the flag for usage purposes - HideDefault bool `json:"hideDefault"` // whether to hide the default value in output - Usage string `json:"usage"` // usage string for help output - Sources ValueSourceChain `json:"-"` // sources to load flag value from - Required bool `json:"required"` // whether the flag is required or not - Hidden bool `json:"hidden"` // whether to hide the flag in help output - Local bool `json:"local"` // whether the flag needs to be applied to subcommands as well - Value T `json:"defaultValue"` // default value for this flag if not set by from any source - Destination *T `json:"-"` // destination pointer for value when set - Aliases []string `json:"aliases"` // Aliases that are allowed for this flag - TakesFile bool `json:"takesFileArg"` // whether this flag takes a file argument, mainly for shell completion purposes - Action func(context.Context, *Command, T) error `json:"-"` // Action callback to be called when flag is set - Config C `json:"config"` // Additional/Custom configuration associated with this flag type - OnlyOnce bool `json:"onlyOnce"` // whether this flag can be duplicated on the command line - Validator func(T) error `json:"-"` // custom function to validate this flag value - ValidateDefaults bool `json:"validateDefaults"` // whether to validate defaults or not - - // unexported fields for internal use - count int // number of times the flag has been set - hasBeenSet bool // whether the flag has been set from env or file - applied bool // whether the flag has been applied to a flag set already - creator VC // value creator for this flag type - value Value // value representing this flag's value -} - -// GetValue returns the flags value as string representation and an empty -// string if the flag takes no value at all. -func (f *FlagBase[T, C, V]) GetValue() string { - var v V - return v.ToString(f.Value) -} - -// TypeName returns the type of the flag. -func (f *FlagBase[T, C, V]) TypeName() string { - ty := reflect.TypeOf(f.Value) - if ty == nil { - return "" - } - // convert the typename to generic type - convertToGenericType := func(name string) string { - prefixMap := map[string]string{ - "float": "float", - "int": "int", - "uint": "uint", - } - for prefix, genericType := range prefixMap { - if strings.HasPrefix(name, prefix) { - return genericType - } - } - return strings.ToLower(name) - } - - switch ty.Kind() { - // if it is a Slice, then return the slice's inner type. Will nested slices be used in the future? - case reflect.Slice: - elemType := ty.Elem() - return convertToGenericType(elemType.Name()) - // if it is a Map, then return the map's key and value types. - case reflect.Map: - keyType := ty.Key() - valueType := ty.Elem() - return fmt.Sprintf("%s=%s", convertToGenericType(keyType.Name()), convertToGenericType(valueType.Name())) - default: - return convertToGenericType(ty.Name()) - } -} - -// PostParse populates the flag given the flag set and environment -func (f *FlagBase[T, C, V]) PostParse() error { - tracef("postparse (flag=%[1]q)", f.Name) - - if !f.hasBeenSet { - if val, source, found := f.Sources.LookupWithSource(); found { - if val != "" || reflect.TypeOf(f.Value).Kind() == reflect.String { - if err := f.Set(f.Name, val); err != nil { - return fmt.Errorf( - "could not parse %[1]q as %[2]T value from %[3]s for flag %[4]s: %[5]s", - val, f.Value, source, f.Name, err, - ) - } - } else if val == "" && reflect.TypeOf(f.Value).Kind() == reflect.Bool { - _ = f.Set(f.Name, "false") - } - - f.hasBeenSet = true - } - } - - return nil -} - -// pass configuration of parsing to value -func (f *FlagBase[T, C, V]) setMultiValueParsingConfig(c multiValueParsingConfig) { - tracef("setMultiValueParsingConfig %T, %+v", f.value, f.value) - if cf, ok := f.value.(multiValueParsingConfigSetter); ok { - cf.setMultiValueParsingConfig(c) - } -} - -func (f *FlagBase[T, C, V]) PreParse() error { - newVal := f.Value - - if f.Destination == nil { - f.value = f.creator.Create(newVal, new(T), f.Config) - } else { - f.value = f.creator.Create(newVal, f.Destination, f.Config) - } - - // Validate the given default or values set from external sources as well - if f.Validator != nil && f.ValidateDefaults { - if err := f.Validator(f.value.Get().(T)); err != nil { - return err - } - } - f.applied = true - return nil -} - -// Set applies given value from string -func (f *FlagBase[T, C, V]) Set(_ string, val string) error { - tracef("apply (flag=%[1]q)", f.Name) - - // TODO move this phase into a separate flag initialization function - // if flag has been applied previously then it would have already been set - // from env or file. So no need to apply the env set again. However - // lots of units tests prior to persistent flags assumed that the - // flag can be applied to different flag sets multiple times while still - // keeping the env set. - if !f.applied || f.Local { - if err := f.PreParse(); err != nil { - return err - } - f.applied = true - } - - if f.count == 1 && f.OnlyOnce { - return fmt.Errorf("cant duplicate this flag") - } - - f.count++ - if err := f.value.Set(val); err != nil { - return err - } - f.hasBeenSet = true - if f.Validator != nil { - if err := f.Validator(f.value.Get().(T)); err != nil { - return err - } - } - return nil -} - -func (f *FlagBase[T, C, V]) Get() any { - if f.value != nil { - return f.value.Get() - } - return f.Value -} - -// IsDefaultVisible returns true if the flag is not hidden, otherwise false -func (f *FlagBase[T, C, V]) IsDefaultVisible() bool { - return !f.HideDefault -} - -// String returns a readable representation of this value (for usage defaults) -func (f *FlagBase[T, C, V]) String() string { - return FlagStringer(f) -} - -// IsSet returns whether or not the flag has been set through env or file -func (f *FlagBase[T, C, V]) IsSet() bool { - return f.hasBeenSet -} - -// Names returns the names of the flag -func (f *FlagBase[T, C, V]) Names() []string { - return FlagNames(f.Name, f.Aliases) -} - -// IsRequired returns whether or not the flag is required -func (f *FlagBase[T, C, V]) IsRequired() bool { - return f.Required -} - -// IsVisible returns true if the flag is not hidden, otherwise false -func (f *FlagBase[T, C, V]) IsVisible() bool { - return !f.Hidden -} - -// GetCategory returns the category of the flag -func (f *FlagBase[T, C, V]) GetCategory() string { - return f.Category -} - -func (f *FlagBase[T, C, V]) SetCategory(c string) { - f.Category = c -} - -// GetUsage returns the usage string for the flag -func (f *FlagBase[T, C, V]) GetUsage() string { - return f.Usage -} - -// GetEnvVars returns the env vars for this flag -func (f *FlagBase[T, C, V]) GetEnvVars() []string { - return f.Sources.EnvKeys() -} - -// TakesValue returns true if the flag takes a value, otherwise false -func (f *FlagBase[T, C, V]) TakesValue() bool { - var t T - return reflect.TypeOf(t) == nil || reflect.TypeOf(t).Kind() != reflect.Bool -} - -// GetDefaultText returns the default text for this flag -func (f *FlagBase[T, C, V]) GetDefaultText() string { - return f.DefaultText -} - -// RunAction executes flag action if set -func (f *FlagBase[T, C, V]) RunAction(ctx context.Context, cmd *Command) error { - if f.Action != nil { - return f.Action(ctx, cmd, f.value.Get().(T)) - } - - return nil -} - -// IsMultiValueFlag returns true if the value type T can take multiple -// values from cmd line. This is true for slice and map type flags -func (f *FlagBase[T, C, VC]) IsMultiValueFlag() bool { - // TBD how to specify - if reflect.TypeOf(f.Value) == nil { - return false - } - kind := reflect.TypeOf(f.Value).Kind() - return kind == reflect.Slice || kind == reflect.Map -} - -// IsLocal returns false if flag needs to be persistent across subcommands -func (f *FlagBase[T, C, VC]) IsLocal() bool { - return f.Local -} - -// IsBoolFlag returns whether the flag doesnt need to accept args -func (f *FlagBase[T, C, VC]) IsBoolFlag() bool { - bf, ok := f.value.(boolFlag) - return ok && bf.IsBoolFlag() -} - -// Count returns the number of times this flag has been invoked -func (f *FlagBase[T, C, VC]) Count() int { - return f.count -} diff --git a/vendor/github.com/urfave/cli/v3/flag_int.go b/vendor/github.com/urfave/cli/v3/flag_int.go deleted file mode 100644 index 0e08222..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_int.go +++ /dev/null @@ -1,107 +0,0 @@ -package cli - -import ( - "strconv" - "unsafe" -) - -type ( - IntFlag = FlagBase[int, IntegerConfig, intValue[int]] - Int8Flag = FlagBase[int8, IntegerConfig, intValue[int8]] - Int16Flag = FlagBase[int16, IntegerConfig, intValue[int16]] - Int32Flag = FlagBase[int32, IntegerConfig, intValue[int32]] - Int64Flag = FlagBase[int64, IntegerConfig, intValue[int64]] -) - -// IntegerConfig is the configuration for all integer type flags -type IntegerConfig struct { - Base int -} - -// -- int Value -type intValue[T int | int8 | int16 | int32 | int64] struct { - val *T - base int -} - -// Below functions are to satisfy the ValueCreator interface - -func (i intValue[T]) Create(val T, p *T, c IntegerConfig) Value { - *p = val - - return &intValue[T]{ - val: p, - base: c.Base, - } -} - -func (i intValue[T]) ToString(b T) string { - if i.base == 0 { - i.base = 10 - } - - return strconv.FormatInt(int64(b), i.base) -} - -// Below functions are to satisfy the flag.Value interface - -func (i *intValue[T]) Set(s string) error { - v, err := strconv.ParseInt(s, i.base, int(unsafe.Sizeof(T(0))*8)) - if err != nil { - return err - } - *i.val = T(v) - return err -} - -func (i *intValue[T]) Get() any { return *i.val } - -func (i *intValue[T]) String() string { - base := i.base - if base == 0 { - base = 10 - } - - return strconv.FormatInt(int64(*i.val), base) -} - -// Int looks up the value of a local Int64Flag, returns -// 0 if not found -func (cmd *Command) Int(name string) int { - return getInt[int](cmd, name) -} - -// Int8 looks up the value of a local Int8Flag, returns -// 0 if not found -func (cmd *Command) Int8(name string) int8 { - return getInt[int8](cmd, name) -} - -// Int16 looks up the value of a local Int16Flag, returns -// 0 if not found -func (cmd *Command) Int16(name string) int16 { - return getInt[int16](cmd, name) -} - -// Int32 looks up the value of a local Int32Flag, returns -// 0 if not found -func (cmd *Command) Int32(name string) int32 { - return getInt[int32](cmd, name) -} - -// Int64 looks up the value of a local Int64Flag, returns -// 0 if not found -func (cmd *Command) Int64(name string) int64 { - return getInt[int64](cmd, name) -} - -func getInt[T int | int8 | int16 | int32 | int64](cmd *Command, name string) T { - if v, ok := cmd.Value(name).(T); ok { - tracef("int available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - - return v - } - - tracef("int NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return 0 -} diff --git a/vendor/github.com/urfave/cli/v3/flag_int_slice.go b/vendor/github.com/urfave/cli/v3/flag_int_slice.go deleted file mode 100644 index 22dcb5a..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_int_slice.go +++ /dev/null @@ -1,52 +0,0 @@ -package cli - -type ( - IntSlice = SliceBase[int, IntegerConfig, intValue[int]] - Int8Slice = SliceBase[int8, IntegerConfig, intValue[int8]] - Int16Slice = SliceBase[int16, IntegerConfig, intValue[int16]] - Int32Slice = SliceBase[int32, IntegerConfig, intValue[int32]] - Int64Slice = SliceBase[int64, IntegerConfig, intValue[int64]] - IntSliceFlag = FlagBase[[]int, IntegerConfig, IntSlice] - Int8SliceFlag = FlagBase[[]int8, IntegerConfig, Int8Slice] - Int16SliceFlag = FlagBase[[]int16, IntegerConfig, Int16Slice] - Int32SliceFlag = FlagBase[[]int32, IntegerConfig, Int32Slice] - Int64SliceFlag = FlagBase[[]int64, IntegerConfig, Int64Slice] -) - -var ( - NewIntSlice = NewSliceBase[int, IntegerConfig, intValue[int]] - NewInt8Slice = NewSliceBase[int8, IntegerConfig, intValue[int8]] - NewInt16Slice = NewSliceBase[int16, IntegerConfig, intValue[int16]] - NewInt32Slice = NewSliceBase[int32, IntegerConfig, intValue[int32]] - NewInt64Slice = NewSliceBase[int64, IntegerConfig, intValue[int64]] -) - -// IntSlice looks up the value of a local IntSliceFlag, returns -// nil if not found -func (cmd *Command) IntSlice(name string) []int { - return getNumberSlice[int](cmd, name) -} - -// Int8Slice looks up the value of a local Int8SliceFlag, returns -// nil if not found -func (cmd *Command) Int8Slice(name string) []int8 { - return getNumberSlice[int8](cmd, name) -} - -// Int16Slice looks up the value of a local Int16SliceFlag, returns -// nil if not found -func (cmd *Command) Int16Slice(name string) []int16 { - return getNumberSlice[int16](cmd, name) -} - -// Int32Slice looks up the value of a local Int32SliceFlag, returns -// nil if not found -func (cmd *Command) Int32Slice(name string) []int32 { - return getNumberSlice[int32](cmd, name) -} - -// Int64Slice looks up the value of a local Int64SliceFlag, returns -// nil if not found -func (cmd *Command) Int64Slice(name string) []int64 { - return getNumberSlice[int64](cmd, name) -} diff --git a/vendor/github.com/urfave/cli/v3/flag_map_impl.go b/vendor/github.com/urfave/cli/v3/flag_map_impl.go deleted file mode 100644 index b56d0a9..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_map_impl.go +++ /dev/null @@ -1,138 +0,0 @@ -package cli - -import ( - "encoding/json" - "fmt" - "reflect" - "sort" - "strings" -) - -// MapBase wraps map[string]T to satisfy flag.Value -type MapBase[T any, C any, VC ValueCreator[T, C]] struct { - dict *map[string]T - hasBeenSet bool - value Value - multiValueConfig multiValueParsingConfig -} - -func (i MapBase[T, C, VC]) Create(val map[string]T, p *map[string]T, c C) Value { - *p = map[string]T{} - for k, v := range val { - (*p)[k] = v - } - var t T - np := new(T) - var vc VC - return &MapBase[T, C, VC]{ - dict: p, - value: vc.Create(t, np, c), - } -} - -// NewMapBase makes a *MapBase with default values -func NewMapBase[T any, C any, VC ValueCreator[T, C]](defaults map[string]T) *MapBase[T, C, VC] { - return &MapBase[T, C, VC]{ - dict: &defaults, - } -} - -// configuration of slicing -func (i *MapBase[T, C, VC]) setMultiValueParsingConfig(c multiValueParsingConfig) { - i.multiValueConfig = c - mvc := &i.multiValueConfig - tracef( - "set map parsing config - keyValueSeparator '%s', slice separator '%s', disable separator:%v", - mvc.MapFlagKeyValueSeparator, - mvc.SliceFlagSeparator, - mvc.DisableSliceFlagSeparator, - ) -} - -// Set parses the value and appends it to the list of values -func (i *MapBase[T, C, VC]) Set(value string) error { - if !i.hasBeenSet { - *i.dict = map[string]T{} - i.hasBeenSet = true - } - - if strings.HasPrefix(value, slPfx) { - // Deserializing assumes overwrite - _ = json.Unmarshal([]byte(strings.Replace(value, slPfx, "", 1)), &i.dict) - i.hasBeenSet = true - return nil - } - - mvc := &i.multiValueConfig - keyValueSeparator := mvc.MapFlagKeyValueSeparator - if len(keyValueSeparator) == 0 { - keyValueSeparator = defaultMapFlagKeyValueSeparator - } - - tracef( - "splitting map value '%s', keyValueSeparator '%s', slice separator '%s', disable separator:%v", - value, - keyValueSeparator, - mvc.SliceFlagSeparator, - mvc.DisableSliceFlagSeparator, - ) - for _, item := range flagSplitMultiValues(value, mvc.SliceFlagSeparator, mvc.DisableSliceFlagSeparator) { - key, value, ok := strings.Cut(item, keyValueSeparator) - if !ok { - return fmt.Errorf("item %q is missing separator %q", item, keyValueSeparator) - } - if err := i.value.Set(value); err != nil { - return err - } - (*i.dict)[key] = i.value.Get().(T) - } - - return nil -} - -// String returns a readable representation of this value (for usage defaults) -func (i *MapBase[T, C, VC]) String() string { - v := i.Value() - var t T - if reflect.TypeOf(t).Kind() == reflect.String { - return fmt.Sprintf("%v", v) - } - return fmt.Sprintf("%T{%s}", v, i.ToString(v)) -} - -// Serialize allows MapBase to fulfill Serializer -func (i *MapBase[T, C, VC]) Serialize() string { - jsonBytes, _ := json.Marshal(i.dict) - return fmt.Sprintf("%s%s", slPfx, string(jsonBytes)) -} - -// Value returns the mapping of values set by this flag -func (i *MapBase[T, C, VC]) Value() map[string]T { - if i.dict == nil { - return map[string]T{} - } - return *i.dict -} - -// Get returns the mapping of values set by this flag -func (i *MapBase[T, C, VC]) Get() interface{} { - return *i.dict -} - -func (i MapBase[T, C, VC]) ToString(t map[string]T) string { - var defaultVals []string - var vc VC - for _, k := range sortedKeys(t) { - defaultVals = append(defaultVals, k+defaultMapFlagKeyValueSeparator+vc.ToString(t[k])) - } - return strings.Join(defaultVals, ", ") -} - -func sortedKeys[T any](dict map[string]T) []string { - keys := make([]string, 0, len(dict)) - for k := range dict { - keys = append(keys, k) - } - sort.Strings(keys) - return keys -} diff --git a/vendor/github.com/urfave/cli/v3/flag_mutex.go b/vendor/github.com/urfave/cli/v3/flag_mutex.go deleted file mode 100644 index 247bcb5..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_mutex.go +++ /dev/null @@ -1,54 +0,0 @@ -package cli - -// MutuallyExclusiveFlags defines a mutually exclusive flag group -// Multiple option paths can be provided out of which -// only one can be defined on cmdline -// So for example -// [ --foo | [ --bar something --darth somethingelse ] ] -type MutuallyExclusiveFlags struct { - // Flag list - Flags [][]Flag - - // whether this group is required - Required bool - - // Category to apply to all flags within group - Category string -} - -func (grp MutuallyExclusiveFlags) check(_ *Command) error { - oneSet := false - e := &mutuallyExclusiveGroup{} - - for _, grpf := range grp.Flags { - for _, f := range grpf { - if f.IsSet() { - if oneSet { - e.flag2Name = f.Names()[0] - return e - } - e.flag1Name = f.Names()[0] - oneSet = true - break - } - if oneSet { - break - } - } - } - - if !oneSet && grp.Required { - return &mutuallyExclusiveGroupRequiredFlag{flags: &grp} - } - return nil -} - -func (grp MutuallyExclusiveFlags) propagateCategory() { - for _, grpf := range grp.Flags { - for _, f := range grpf { - if cf, ok := f.(CategorizableFlag); ok { - cf.SetCategory(grp.Category) - } - } - } -} diff --git a/vendor/github.com/urfave/cli/v3/flag_number_slice.go b/vendor/github.com/urfave/cli/v3/flag_number_slice.go deleted file mode 100644 index 77e3170..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_number_slice.go +++ /dev/null @@ -1,15 +0,0 @@ -package cli - -type numberType interface { - int | int8 | int16 | int32 | int64 | float32 | float64 -} - -func getNumberSlice[T numberType](cmd *Command, name string) []T { - if v, ok := cmd.Value(name).([]T); ok { - tracef("%T slice available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", *new(T), name, v, cmd.Name) - return v - } - - tracef("%T slice NOT available for flag name %[1]q (cmd=%[2]q)", *new(T), name, cmd.Name) - return nil -} diff --git a/vendor/github.com/urfave/cli/v3/flag_slice_base.go b/vendor/github.com/urfave/cli/v3/flag_slice_base.go deleted file mode 100644 index f1c9d0b..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_slice_base.go +++ /dev/null @@ -1,119 +0,0 @@ -package cli - -import ( - "encoding/json" - "fmt" - "reflect" - "strings" -) - -// SliceBase wraps []T to satisfy flag.Value -type SliceBase[T any, C any, VC ValueCreator[T, C]] struct { - slice *[]T - hasBeenSet bool - value Value - sliceSeparator string - disableSliceSeparator bool -} - -func (i SliceBase[T, C, VC]) Create(val []T, p *[]T, c C) Value { - *p = []T{} - *p = append(*p, val...) - var t T - np := new(T) - var vc VC - return &SliceBase[T, C, VC]{ - slice: p, - value: vc.Create(t, np, c), - } -} - -// NewSliceBase makes a *SliceBase with default values -func NewSliceBase[T any, C any, VC ValueCreator[T, C]](defaults ...T) *SliceBase[T, C, VC] { - return &SliceBase[T, C, VC]{ - slice: &defaults, - } -} - -// configuration of slicing -func (i *SliceBase[T, C, VC]) setMultiValueParsingConfig(c multiValueParsingConfig) { - i.disableSliceSeparator = c.DisableSliceFlagSeparator - i.sliceSeparator = c.SliceFlagSeparator - tracef("set slice parsing config - slice separator '%s', disable separator:%v", i.sliceSeparator, i.disableSliceSeparator) -} - -// Set parses the value and appends it to the list of values -func (i *SliceBase[T, C, VC]) Set(value string) error { - if !i.hasBeenSet { - *i.slice = []T{} - i.hasBeenSet = true - } - - if strings.HasPrefix(value, slPfx) { - // Deserializing assumes overwrite - _ = json.Unmarshal([]byte(strings.Replace(value, slPfx, "", 1)), &i.slice) - i.hasBeenSet = true - return nil - } - - trimSpace := true - // hack. How do we know if we should trim spaces? - // it makes sense only for string slice flags which have - // an option to not trim spaces. So by default we trim spaces - // otherwise we let the underlying value type handle it. - var t T - if reflect.TypeOf(t).Kind() == reflect.String { - trimSpace = false - } - - tracef("splitting slice value '%s', separator '%s', disable separator:%v", value, i.sliceSeparator, i.disableSliceSeparator) - for _, s := range flagSplitMultiValues(value, i.sliceSeparator, i.disableSliceSeparator) { - if trimSpace { - s = strings.TrimSpace(s) - } - if err := i.value.Set(s); err != nil { - return err - } - *i.slice = append(*i.slice, i.value.Get().(T)) - } - - return nil -} - -// String returns a readable representation of this value (for usage defaults) -func (i *SliceBase[T, C, VC]) String() string { - v := i.Value() - var t T - if reflect.TypeOf(t).Kind() == reflect.String { - return fmt.Sprintf("%v", v) - } - return fmt.Sprintf("%T{%s}", v, i.ToString(v)) -} - -// Serialize allows SliceBase to fulfill Serializer -func (i *SliceBase[T, C, VC]) Serialize() string { - jsonBytes, _ := json.Marshal(i.slice) - return fmt.Sprintf("%s%s", slPfx, string(jsonBytes)) -} - -// Value returns the slice of values set by this flag -func (i *SliceBase[T, C, VC]) Value() []T { - if i.slice == nil { - return nil - } - return *i.slice -} - -// Get returns the slice of values set by this flag -func (i *SliceBase[T, C, VC]) Get() interface{} { - return *i.slice -} - -func (i SliceBase[T, C, VC]) ToString(t []T) string { - var defaultVals []string - var v VC - for _, s := range t { - defaultVals = append(defaultVals, v.ToString(s)) - } - return strings.Join(defaultVals, ", ") -} diff --git a/vendor/github.com/urfave/cli/v3/flag_string.go b/vendor/github.com/urfave/cli/v3/flag_string.go deleted file mode 100644 index bdc1ec6..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_string.go +++ /dev/null @@ -1,66 +0,0 @@ -package cli - -import ( - "fmt" - "strings" -) - -type StringFlag = FlagBase[string, StringConfig, stringValue] - -// StringConfig defines the configuration for string flags -type StringConfig struct { - // Whether to trim whitespace of parsed value - TrimSpace bool -} - -// -- string Value -type stringValue struct { - destination *string - trimSpace bool -} - -// Below functions are to satisfy the ValueCreator interface - -func (s stringValue) Create(val string, p *string, c StringConfig) Value { - *p = val - return &stringValue{ - destination: p, - trimSpace: c.TrimSpace, - } -} - -func (s stringValue) ToString(val string) string { - if val == "" { - return val - } - return fmt.Sprintf("%q", val) -} - -// Below functions are to satisfy the flag.Value interface - -func (s *stringValue) Set(val string) error { - if s.trimSpace { - val = strings.TrimSpace(val) - } - *s.destination = val - return nil -} - -func (s *stringValue) Get() any { return *s.destination } - -func (s *stringValue) String() string { - if s.destination != nil { - return *s.destination - } - return "" -} - -func (cmd *Command) String(name string) string { - if v, ok := cmd.Value(name).(string); ok { - tracef("string available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - return v - } - - tracef("string NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return "" -} diff --git a/vendor/github.com/urfave/cli/v3/flag_string_map.go b/vendor/github.com/urfave/cli/v3/flag_string_map.go deleted file mode 100644 index 52fd736..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_string_map.go +++ /dev/null @@ -1,20 +0,0 @@ -package cli - -type ( - StringMap = MapBase[string, StringConfig, stringValue] - StringMapFlag = FlagBase[map[string]string, StringConfig, StringMap] -) - -var NewStringMap = NewMapBase[string, StringConfig, stringValue] - -// StringMap looks up the value of a local StringMapFlag, returns -// nil if not found -func (cmd *Command) StringMap(name string) map[string]string { - if v, ok := cmd.Value(name).(map[string]string); ok { - tracef("string map available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - return v - } - - tracef("string map NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return nil -} diff --git a/vendor/github.com/urfave/cli/v3/flag_string_slice.go b/vendor/github.com/urfave/cli/v3/flag_string_slice.go deleted file mode 100644 index 4cb6c5a..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_string_slice.go +++ /dev/null @@ -1,20 +0,0 @@ -package cli - -type ( - StringSlice = SliceBase[string, StringConfig, stringValue] - StringSliceFlag = FlagBase[[]string, StringConfig, StringSlice] -) - -var NewStringSlice = NewSliceBase[string, StringConfig, stringValue] - -// StringSlice looks up the value of a local StringSliceFlag, returns -// nil if not found -func (cmd *Command) StringSlice(name string) []string { - if v, ok := cmd.Value(name).([]string); ok { - tracef("string slice available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - return v - } - - tracef("string slice NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return nil -} diff --git a/vendor/github.com/urfave/cli/v3/flag_timestamp.go b/vendor/github.com/urfave/cli/v3/flag_timestamp.go deleted file mode 100644 index 413a2f0..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_timestamp.go +++ /dev/null @@ -1,142 +0,0 @@ -package cli - -import ( - "errors" - "fmt" - "time" -) - -type TimestampFlag = FlagBase[time.Time, TimestampConfig, timestampValue] - -// TimestampConfig defines the config for timestamp flags -type TimestampConfig struct { - Timezone *time.Location - // Available layouts for flag value. - // - // Note that value for formats with missing year/date will be interpreted as current year/date respectively. - // - // Read more about time layouts: https://pkg.go.dev/time#pkg-constants - Layouts []string -} - -// timestampValue wrap to satisfy golang's flag interface. -type timestampValue struct { - timestamp *time.Time - hasBeenSet bool - layouts []string - location *time.Location -} - -var _ ValueCreator[time.Time, TimestampConfig] = timestampValue{} - -// Below functions are to satisfy the ValueCreator interface - -func (t timestampValue) Create(val time.Time, p *time.Time, c TimestampConfig) Value { - *p = val - return ×tampValue{ - timestamp: p, - layouts: c.Layouts, - location: c.Timezone, - } -} - -func (t timestampValue) ToString(b time.Time) string { - if b.IsZero() { - return "" - } - return fmt.Sprintf("%v", b) -} - -// Below functions are to satisfy the Value interface - -// Parses the string value to timestamp -func (t *timestampValue) Set(value string) error { - var timestamp time.Time - var err error - - if t.location == nil { - t.location = time.UTC - } - - if len(t.layouts) == 0 { - return errors.New("got nil/empty layouts slice") - } - - for _, layout := range t.layouts { - var locErr error - - timestamp, locErr = time.ParseInLocation(layout, value, t.location) - if locErr != nil { - if err == nil { - err = locErr - continue - } - - err = newMultiError(err, locErr) - continue - } - - err = nil - break - } - - if err != nil { - return err - } - - defaultTS, _ := time.ParseInLocation(time.TimeOnly, time.TimeOnly, timestamp.Location()) - - n := time.Now().In(timestamp.Location()) - - // If format is missing date (or year only), set it explicitly to current - if timestamp.Truncate(time.Hour*24).UnixNano() == defaultTS.Truncate(time.Hour*24).UnixNano() { - timestamp = time.Date( - n.Year(), - n.Month(), - n.Day(), - timestamp.Hour(), - timestamp.Minute(), - timestamp.Second(), - timestamp.Nanosecond(), - timestamp.Location(), - ) - } else if timestamp.Year() == 0 { - timestamp = time.Date( - n.Year(), - timestamp.Month(), - timestamp.Day(), - timestamp.Hour(), - timestamp.Minute(), - timestamp.Second(), - timestamp.Nanosecond(), - timestamp.Location(), - ) - } - - if t.timestamp != nil { - *t.timestamp = timestamp - } - t.hasBeenSet = true - return nil -} - -// String returns a readable representation of this value (for usage defaults) -func (t *timestampValue) String() string { - return fmt.Sprintf("%#v", t.timestamp) -} - -// Get returns the flag structure -func (t *timestampValue) Get() any { - return *t.timestamp -} - -// Timestamp gets the timestamp from a flag name -func (cmd *Command) Timestamp(name string) time.Time { - if v, ok := cmd.Value(name).(time.Time); ok { - tracef("time.Time available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - return v - } - - tracef("time.Time NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return time.Time{} -} diff --git a/vendor/github.com/urfave/cli/v3/flag_uint.go b/vendor/github.com/urfave/cli/v3/flag_uint.go deleted file mode 100644 index 64ee231..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_uint.go +++ /dev/null @@ -1,103 +0,0 @@ -package cli - -import ( - "strconv" - "unsafe" -) - -type ( - UintFlag = FlagBase[uint, IntegerConfig, uintValue[uint]] - Uint8Flag = FlagBase[uint8, IntegerConfig, uintValue[uint8]] - Uint16Flag = FlagBase[uint16, IntegerConfig, uintValue[uint16]] - Uint32Flag = FlagBase[uint32, IntegerConfig, uintValue[uint32]] - Uint64Flag = FlagBase[uint64, IntegerConfig, uintValue[uint64]] -) - -// -- uint Value -type uintValue[T uint | uint8 | uint16 | uint32 | uint64] struct { - val *T - base int -} - -// Below functions are to satisfy the ValueCreator interface - -func (i uintValue[T]) Create(val T, p *T, c IntegerConfig) Value { - *p = val - - return &uintValue[T]{ - val: p, - base: c.Base, - } -} - -func (i uintValue[T]) ToString(b T) string { - base := i.base - if base == 0 { - base = 10 - } - - return strconv.FormatUint(uint64(b), base) -} - -// Below functions are to satisfy the flag.Value interface - -func (i *uintValue[T]) Set(s string) error { - v, err := strconv.ParseUint(s, i.base, int(unsafe.Sizeof(T(0))*8)) - if err != nil { - return err - } - *i.val = T(v) - return err -} - -func (i *uintValue[T]) Get() any { return *i.val } - -func (i *uintValue[T]) String() string { - base := i.base - if base == 0 { - base = 10 - } - - return strconv.FormatUint(uint64(*i.val), base) -} - -// Uint looks up the value of a local Uint64Flag, returns -// 0 if not found -func (cmd *Command) Uint(name string) uint { - return getUint[uint](cmd, name) -} - -// Uint8 looks up the value of a local Uint8Flag, returns -// 0 if not found -func (cmd *Command) Uint8(name string) uint8 { - return getUint[uint8](cmd, name) -} - -// Uint16 looks up the value of a local Uint16Flag, returns -// 0 if not found -func (cmd *Command) Uint16(name string) uint16 { - return getUint[uint16](cmd, name) -} - -// Uint32 looks up the value of a local Uint32Flag, returns -// 0 if not found -func (cmd *Command) Uint32(name string) uint32 { - return getUint[uint32](cmd, name) -} - -// Uint64 looks up the value of a local Uint64Flag, returns -// 0 if not found -func (cmd *Command) Uint64(name string) uint64 { - return getUint[uint64](cmd, name) -} - -func getUint[T uint | uint8 | uint16 | uint32 | uint64](cmd *Command, name string) T { - if v, ok := cmd.Value(name).(T); ok { - tracef("uint available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - - return v - } - - tracef("uint NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return 0 -} diff --git a/vendor/github.com/urfave/cli/v3/flag_uint_slice.go b/vendor/github.com/urfave/cli/v3/flag_uint_slice.go deleted file mode 100644 index 18c5b4d..0000000 --- a/vendor/github.com/urfave/cli/v3/flag_uint_slice.go +++ /dev/null @@ -1,63 +0,0 @@ -package cli - -type ( - UintSlice = SliceBase[uint, IntegerConfig, uintValue[uint]] - Uint8Slice = SliceBase[uint8, IntegerConfig, uintValue[uint8]] - Uint16Slice = SliceBase[uint16, IntegerConfig, uintValue[uint16]] - Uint32Slice = SliceBase[uint32, IntegerConfig, uintValue[uint32]] - Uint64Slice = SliceBase[uint64, IntegerConfig, uintValue[uint64]] - UintSliceFlag = FlagBase[[]uint, IntegerConfig, UintSlice] - Uint8SliceFlag = FlagBase[[]uint8, IntegerConfig, Uint8Slice] - Uint16SliceFlag = FlagBase[[]uint16, IntegerConfig, Uint16Slice] - Uint32SliceFlag = FlagBase[[]uint32, IntegerConfig, Uint32Slice] - Uint64SliceFlag = FlagBase[[]uint64, IntegerConfig, Uint64Slice] -) - -var ( - NewUintSlice = NewSliceBase[uint, IntegerConfig, uintValue[uint]] - NewUint8Slice = NewSliceBase[uint8, IntegerConfig, uintValue[uint8]] - NewUint16Slice = NewSliceBase[uint16, IntegerConfig, uintValue[uint16]] - NewUint32Slice = NewSliceBase[uint32, IntegerConfig, uintValue[uint32]] - NewUint64Slice = NewSliceBase[uint64, IntegerConfig, uintValue[uint64]] -) - -// UintSlice looks up the value of a local UintSliceFlag, returns -// nil if not found -func (cmd *Command) UintSlice(name string) []uint { - return getUintSlice[uint](cmd, name) -} - -// Uint8Slice looks up the value of a local Uint8SliceFlag, returns -// nil if not found -func (cmd *Command) Uint8Slice(name string) []uint8 { - return getUintSlice[uint8](cmd, name) -} - -// Uint16Slice looks up the value of a local Uint16SliceFlag, returns -// nil if not found -func (cmd *Command) Uint16Slice(name string) []uint16 { - return getUintSlice[uint16](cmd, name) -} - -// Uint32Slice looks up the value of a local Uint32SliceFlag, returns -// nil if not found -func (cmd *Command) Uint32Slice(name string) []uint32 { - return getUintSlice[uint32](cmd, name) -} - -// Uint64Slice looks up the value of a local Uint64SliceFlag, returns -// nil if not found -func (cmd *Command) Uint64Slice(name string) []uint64 { - return getUintSlice[uint64](cmd, name) -} - -func getUintSlice[T uint | uint8 | uint16 | uint32 | uint64](cmd *Command, name string) []T { - if v, ok := cmd.Value(name).([]T); ok { - tracef("uint slice available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name) - - return v - } - - tracef("uint slice NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name) - return nil -} diff --git a/vendor/github.com/urfave/cli/v3/funcs.go b/vendor/github.com/urfave/cli/v3/funcs.go deleted file mode 100644 index fe1224c..0000000 --- a/vendor/github.com/urfave/cli/v3/funcs.go +++ /dev/null @@ -1,53 +0,0 @@ -package cli - -import "context" - -// ShellCompleteFunc is an action to execute when the shell completion flag is set -type ShellCompleteFunc func(context.Context, *Command) - -// BeforeFunc is an action that executes prior to any subcommands being run once -// the context is ready. If a non-nil error is returned, no subcommands are -// run. -type BeforeFunc func(context.Context, *Command) (context.Context, error) - -// AfterFunc is an action that executes after any subcommands are run and have -// finished. The AfterFunc is run even if Action() panics. -type AfterFunc func(context.Context, *Command) error - -// ActionFunc is the action to execute when no subcommands are specified -type ActionFunc func(context.Context, *Command) error - -// CommandNotFoundFunc is executed if the proper command cannot be found -type CommandNotFoundFunc func(context.Context, *Command, string) - -// ConfigureShellCompletionCommand is a function to configure a shell completion command -type ConfigureShellCompletionCommand func(*Command) - -// OnUsageErrorFunc is executed if a usage error occurs. This is useful for displaying -// customized usage error messages. This function is able to replace the -// original error messages. If this function is not set, the "Incorrect usage" -// is displayed and the execution is interrupted. -type OnUsageErrorFunc func(ctx context.Context, cmd *Command, err error, isSubcommand bool) error - -// InvalidFlagAccessFunc is executed when an invalid flag is accessed from the context. -type InvalidFlagAccessFunc func(context.Context, *Command, string) - -// ExitErrHandlerFunc is executed if provided in order to handle exitError values -// returned by Actions and Before/After functions. -type ExitErrHandlerFunc func(context.Context, *Command, error) - -// FlagStringFunc is used by the help generation to display a flag, which is -// expected to be a single line. -type FlagStringFunc func(Flag) string - -// FlagNamePrefixFunc is used by the default FlagStringFunc to create prefix -// text for a flag's full name. -type FlagNamePrefixFunc func(fullName []string, placeholder string) string - -// FlagEnvHintFunc is used by the default FlagStringFunc to annotate flag help -// with the environment variable details. -type FlagEnvHintFunc func(envVars []string, str string) string - -// FlagFileHintFunc is used by the default FlagStringFunc to annotate flag help -// with the file path details. -type FlagFileHintFunc func(filePath, str string) string diff --git a/vendor/github.com/urfave/cli/v3/godoc-current.txt b/vendor/github.com/urfave/cli/v3/godoc-current.txt deleted file mode 100644 index 9784c4e..0000000 --- a/vendor/github.com/urfave/cli/v3/godoc-current.txt +++ /dev/null @@ -1,1500 +0,0 @@ -package cli // import "github.com/urfave/cli/v3" - -Package cli provides a minimal framework for creating and organizing command -line Go applications. cli is designed to be easy to understand and write, -the most simple cli application can be written as follows: - - func main() { - (&cli.Command{}).Run(context.Background(), os.Args) - } - -Of course this application does not do much, so let's make this an actual -application: - - func main() { - cmd := &cli.Command{ - Name: "greet", - Usage: "say a greeting", - Action: func(c *cli.Context) error { - fmt.Println("Greetings") - return nil - }, - } - - cmd.Run(context.Background(), os.Args) - } - -VARIABLES - -var ( - NewFloatSlice = NewSliceBase[float64, NoConfig, floatValue[float64]] - NewFloat32Slice = NewSliceBase[float32, NoConfig, floatValue[float32]] - NewFloat64Slice = NewSliceBase[float64, NoConfig, floatValue[float64]] -) -var ( - NewIntSlice = NewSliceBase[int, IntegerConfig, intValue[int]] - NewInt8Slice = NewSliceBase[int8, IntegerConfig, intValue[int8]] - NewInt16Slice = NewSliceBase[int16, IntegerConfig, intValue[int16]] - NewInt32Slice = NewSliceBase[int32, IntegerConfig, intValue[int32]] - NewInt64Slice = NewSliceBase[int64, IntegerConfig, intValue[int64]] -) -var ( - NewUintSlice = NewSliceBase[uint, IntegerConfig, uintValue[uint]] - NewUint8Slice = NewSliceBase[uint8, IntegerConfig, uintValue[uint8]] - NewUint16Slice = NewSliceBase[uint16, IntegerConfig, uintValue[uint16]] - NewUint32Slice = NewSliceBase[uint32, IntegerConfig, uintValue[uint32]] - NewUint64Slice = NewSliceBase[uint64, IntegerConfig, uintValue[uint64]] -) -var ( - SuggestFlag SuggestFlagFunc = suggestFlag - SuggestCommand SuggestCommandFunc = suggestCommand - SuggestDidYouMeanTemplate string = suggestDidYouMeanTemplate -) -var AnyArguments = []Argument{ - &StringArgs{ - Max: -1, - }, -} - AnyArguments to differentiate between no arguments(nil) vs aleast one - -var ArgsUsageCommandHelp = "[command]" - ArgsUsageCommandHelp is a short description of the arguments of the help - command - -var CommandHelpTemplate = `NAME: - {{template "helpNameTemplate" .}} - -USAGE: - {{template "usageTemplate" .}}{{if .Category}} - -CATEGORY: - {{.Category}}{{end}}{{if .Description}} - -DESCRIPTION: - {{template "descriptionTemplate" .}}{{end}}{{if .VisibleFlagCategories}} - -OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}} - -OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}{{if .VisiblePersistentFlags}} - -GLOBAL OPTIONS:{{template "visiblePersistentFlagTemplate" .}}{{end}} -` - CommandHelpTemplate is the text template for the command help topic. cli.go - uses text/template to render templates. You can render custom help text by - setting this variable. - -var DefaultAppComplete = DefaultRootCommandComplete - DefaultAppComplete is a backward-compatible name for - DefaultRootCommandComplete. - -var DefaultInverseBoolPrefix = "no-" -var ErrWriter io.Writer = os.Stderr - ErrWriter is used to write errors to the user. This can be anything - implementing the io.Writer interface and defaults to os.Stderr. - -var FishCompletionTemplate = `# {{ .Command.Name }} fish shell completion - -function __fish_{{ .Command.Name }}_no_subcommand --description 'Test if there has been any subcommand yet' - for i in (commandline -opc) - if contains -- $i{{ range $v := .AllCommands }} {{ $v }}{{ end }} - return 1 - end - end - return 0 -end - -{{ range $v := .Completions }}{{ $v }} -{{ end }}` -var NewStringMap = NewMapBase[string, StringConfig, stringValue] -var NewStringSlice = NewSliceBase[string, StringConfig, stringValue] -var OsExiter = os.Exit - OsExiter is the function used when the app exits. If not set defaults to - os.Exit. - -var RootCommandHelpTemplate = `NAME: - {{template "helpNameTemplate" .}} - -USAGE: - {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.FullName}} {{if .VisibleFlags}}[global options]{{end}}{{if .VisibleCommands}} [command [command options]]{{end}}{{if .ArgsUsage}} {{.ArgsUsage}}{{else}}{{if .Arguments}} [arguments...]{{end}}{{end}}{{end}}{{if .Version}}{{if not .HideVersion}} - -VERSION: - {{.Version}}{{end}}{{end}}{{if .Description}} - -DESCRIPTION: - {{template "descriptionTemplate" .}}{{end}} -{{- if len .Authors}} - -AUTHOR{{template "authorsTemplate" .}}{{end}}{{if .VisibleCommands}} - -COMMANDS:{{template "visibleCommandCategoryTemplate" .}}{{end}}{{if .VisibleFlagCategories}} - -GLOBAL OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}} - -GLOBAL OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}{{if .Copyright}} - -COPYRIGHT: - {{template "copyrightTemplate" .}}{{end}} -` - RootCommandHelpTemplate is the text template for the Default help topic. - cli.go uses text/template to render templates. You can render custom help - text by setting this variable. - -var ShowAppHelp = ShowRootCommandHelp - ShowAppHelp is a backward-compatible name for ShowRootCommandHelp. - -var ShowAppHelpAndExit = ShowRootCommandHelpAndExit - ShowAppHelpAndExit is a backward-compatible name for ShowRootCommandHelp. - -var ShowCommandHelp = DefaultShowCommandHelp - ShowCommandHelp prints help for the given command - -var ShowRootCommandHelp = DefaultShowRootCommandHelp - ShowRootCommandHelp is an action that displays help for the root command. - -var ShowSubcommandHelp = DefaultShowSubcommandHelp - ShowSubcommandHelp prints help for the given subcommand - -var SubcommandHelpTemplate = `NAME: - {{template "helpNameTemplate" .}} - -USAGE: - {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.FullName}}{{if .VisibleCommands}} [command [command options]]{{end}}{{if .ArgsUsage}} {{.ArgsUsage}}{{else}}{{if .Arguments}} [arguments...]{{end}}{{end}}{{end}}{{if .Category}} - -CATEGORY: - {{.Category}}{{end}}{{if .Description}} - -DESCRIPTION: - {{template "descriptionTemplate" .}}{{end}}{{if .VisibleCommands}} - -COMMANDS:{{template "visibleCommandTemplate" .}}{{end}}{{if .VisibleFlagCategories}} - -OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}} - -OPTIONS:{{template "visibleFlagTemplate" .}}{{end}} -` - SubcommandHelpTemplate is the text template for the subcommand help topic. - cli.go uses text/template to render templates. You can render custom help - text by setting this variable. - -var UsageCommandHelp = "Shows a list of commands or help for one command" - UsageCommandHelp is the text to override the USAGE section of the help - command - -var VersionPrinter = DefaultPrintVersion - VersionPrinter prints the version for the root Command. - - -FUNCTIONS - -func DefaultCompleteWithFlags(ctx context.Context, cmd *Command) -func DefaultPrintHelp(out io.Writer, templ string, data any) - DefaultPrintHelp is the default implementation of HelpPrinter. - -func DefaultPrintHelpCustom(out io.Writer, templ string, data any, customFuncs map[string]any) - DefaultPrintHelpCustom is the default implementation of HelpPrinterCustom. - - The customFuncs map will be combined with a default template.FuncMap to - allow using arbitrary functions in template rendering. - -func DefaultPrintVersion(cmd *Command) - DefaultPrintVersion is the default implementation of VersionPrinter. - -func DefaultRootCommandComplete(ctx context.Context, cmd *Command) - DefaultRootCommandComplete prints the list of subcommands as the default - completion method. - -func DefaultShowCommandHelp(ctx context.Context, cmd *Command, commandName string) error - DefaultShowCommandHelp is the default implementation of ShowCommandHelp. - -func DefaultShowRootCommandHelp(cmd *Command) error - DefaultShowRootCommandHelp is the default implementation of - ShowRootCommandHelp. - -func DefaultShowSubcommandHelp(cmd *Command) error - DefaultShowSubcommandHelp is the default implementation of - ShowSubcommandHelp. - -func FlagNames(name string, aliases []string) []string -func HandleExitCoder(err error) - HandleExitCoder handles errors implementing ExitCoder by printing their - message and calling OsExiter with the given exit code. - - If the given error instead implements MultiError, each error will be checked - for the ExitCoder interface, and OsExiter will be called with the last exit - code found, or exit code 1 if no ExitCoder is found. - - This function is the default error-handling behavior for a Command. - -func ShowCommandHelpAndExit(ctx context.Context, cmd *Command, command string, code int) - ShowCommandHelpAndExit exits with code after showing help via - ShowCommandHelp. - -func ShowRootCommandHelpAndExit(cmd *Command, exitCode int) - ShowRootCommandHelpAndExit prints the list of subcommands and exits with - exit code. - -func ShowSubcommandHelpAndExit(cmd *Command, exitCode int) - ShowSubcommandHelpAndExit prints help for the given subcommand via - ShowSubcommandHelp and exits with exit code. - -func ShowVersion(cmd *Command) - ShowVersion prints the version number of the root Command. - - -TYPES - -type ActionFunc func(context.Context, *Command) error - ActionFunc is the action to execute when no subcommands are specified - -type ActionableFlag interface { - RunAction(context.Context, *Command) error -} - ActionableFlag is an interface that wraps Flag interface and RunAction - operation. - -type AfterFunc func(context.Context, *Command) error - AfterFunc is an action that executes after any subcommands are run and have - finished. The AfterFunc is run even if Action() panics. - -type Args interface { - // Get returns the nth argument, or else a blank string - Get(n int) string - // First returns the first argument, or else a blank string - First() string - // Tail returns the rest of the arguments (not the first one) - // or else an empty string slice - Tail() []string - // Len returns the length of the wrapped slice - Len() int - // Present checks if there are any arguments present - Present() bool - // Slice returns a copy of the internal slice - Slice() []string -} - -type Argument interface { - // which this argument can be accessed using the given name - HasName(string) bool - - // Parse the given args and return unparsed args and/or error - Parse([]string) ([]string, error) - - // The usage template for this argument to use in help - Usage() string - - // The Value of this Arg - Get() any -} - Argument captures a positional argument that can be parsed - -type ArgumentBase[T any, C any, VC ValueCreator[T, C]] struct { - Name string `json:"name"` // the name of this argument - Value T `json:"value"` // the default value of this argument - Destination *T `json:"-"` // the destination point for this argument - UsageText string `json:"usageText"` // the usage text to show - Config C `json:"config"` // config for this argument similar to Flag Config - - // Has unexported fields. -} - -func (a *ArgumentBase[T, C, VC]) Get() any - -func (a *ArgumentBase[T, C, VC]) HasName(s string) bool - -func (a *ArgumentBase[T, C, VC]) Parse(s []string) ([]string, error) - -func (a *ArgumentBase[T, C, VC]) Usage() string - -type ArgumentsBase[T any, C any, VC ValueCreator[T, C]] struct { - Name string `json:"name"` // the name of this argument - Value T `json:"value"` // the default value of this argument - Destination *[]T `json:"-"` // the destination point for this argument - UsageText string `json:"usageText"` // the usage text to show - Min int `json:"minTimes"` // the min num of occurrences of this argument - Max int `json:"maxTimes"` // the max num of occurrences of this argument, set to -1 for unlimited - Config C `json:"config"` // config for this argument similar to Flag Config - - // Has unexported fields. -} - ArgumentsBase is a base type for slice arguments - -func (a *ArgumentsBase[T, C, VC]) Get() any - -func (a *ArgumentsBase[T, C, VC]) HasName(s string) bool - -func (a *ArgumentsBase[T, C, VC]) Parse(s []string) ([]string, error) - -func (a *ArgumentsBase[T, C, VC]) Usage() string - -type BeforeFunc func(context.Context, *Command) (context.Context, error) - BeforeFunc is an action that executes prior to any subcommands being run - once the context is ready. If a non-nil error is returned, no subcommands - are run. - -type BoolConfig struct { - Count *int -} - BoolConfig defines the configuration for bool flags - -type BoolFlag = FlagBase[bool, BoolConfig, boolValue] - -type BoolWithInverseFlag struct { - Name string `json:"name"` // name of the flag - Category string `json:"category"` // category of the flag, if any - DefaultText string `json:"defaultText"` // default text of the flag for usage purposes - HideDefault bool `json:"hideDefault"` // whether to hide the default value in output - Usage string `json:"usage"` // usage string for help output - Sources ValueSourceChain `json:"-"` // sources to load flag value from - Required bool `json:"required"` // whether the flag is required or not - Hidden bool `json:"hidden"` // whether to hide the flag in help output - Local bool `json:"local"` // whether the flag needs to be applied to subcommands as well - Value bool `json:"defaultValue"` // default value for this flag if not set by from any source - Destination *bool `json:"-"` // destination pointer for value when set - Aliases []string `json:"aliases"` // Aliases that are allowed for this flag - TakesFile bool `json:"takesFileArg"` // whether this flag takes a file argument, mainly for shell completion purposes - Action func(context.Context, *Command, bool) error `json:"-"` // Action callback to be called when flag is set - OnlyOnce bool `json:"onlyOnce"` // whether this flag can be duplicated on the command line - Validator func(bool) error `json:"-"` // custom function to validate this flag value - ValidateDefaults bool `json:"validateDefaults"` // whether to validate defaults or not - Config BoolConfig `json:"config"` // Additional/Custom configuration associated with this flag type - InversePrefix string `json:"invPrefix"` // The prefix used to indicate a negative value. Default: `env` becomes `no-env` - - // Has unexported fields. -} - -func (bif *BoolWithInverseFlag) Count() int - Count returns the number of times this flag has been invoked - -func (bif *BoolWithInverseFlag) Get() any - -func (bif *BoolWithInverseFlag) GetCategory() string - GetCategory returns the category of the flag - -func (bif *BoolWithInverseFlag) GetDefaultText() string - GetDefaultText returns the default text for this flag - -func (bif *BoolWithInverseFlag) GetEnvVars() []string - GetEnvVars returns the env vars for this flag - -func (bif *BoolWithInverseFlag) GetUsage() string - GetUsage returns the usage string for the flag - -func (bif *BoolWithInverseFlag) GetValue() string - GetValue returns the flags value as string representation and an empty - string if the flag takes no value at all. - -func (bif *BoolWithInverseFlag) IsBoolFlag() bool - IsBoolFlag returns whether the flag doesnt need to accept args - -func (bif *BoolWithInverseFlag) IsDefaultVisible() bool - IsDefaultVisible returns true if the flag is not hidden, otherwise false - -func (bif *BoolWithInverseFlag) IsLocal() bool - -func (bif *BoolWithInverseFlag) IsRequired() bool - -func (bif *BoolWithInverseFlag) IsSet() bool - -func (bif *BoolWithInverseFlag) IsVisible() bool - -func (bif *BoolWithInverseFlag) Names() []string - -func (bif *BoolWithInverseFlag) PostParse() error - -func (bif *BoolWithInverseFlag) PreParse() error - -func (bif *BoolWithInverseFlag) RunAction(ctx context.Context, cmd *Command) error - -func (bif *BoolWithInverseFlag) Set(name, val string) error - -func (bif *BoolWithInverseFlag) SetCategory(c string) - -func (bif *BoolWithInverseFlag) String() string - String implements the standard Stringer interface. - - Example for BoolFlag{Name: "env"} --[no-]env (default: false) - -func (bif *BoolWithInverseFlag) TakesValue() bool - -func (bif *BoolWithInverseFlag) TypeName() string - TypeName is used for stringify/docs. For bool its a no-op - -type CategorizableFlag interface { - // Returns the category of the flag - GetCategory() string - - // Sets the category of the flag - SetCategory(string) -} - CategorizableFlag is an interface that allows us to potentially use a flag - in a categorized representation. - -type Command struct { - // The name of the command - Name string `json:"name"` - // A list of aliases for the command - Aliases []string `json:"aliases"` - // A short description of the usage of this command - Usage string `json:"usage"` - // Text to override the USAGE section of help - UsageText string `json:"usageText"` - // A short description of the arguments of this command - ArgsUsage string `json:"argsUsage"` - // Version of the command - Version string `json:"version"` - // Longer explanation of how the command works - Description string `json:"description"` - // DefaultCommand is the (optional) name of a command - // to run if no command names are passed as CLI arguments. - DefaultCommand string `json:"defaultCommand"` - // The category the command is part of - Category string `json:"category"` - // List of child commands - Commands []*Command `json:"commands"` - // List of flags to parse - Flags []Flag `json:"flags"` - // Boolean to hide built-in help command and help flag - HideHelp bool `json:"hideHelp"` - // Ignored if HideHelp is true. - HideHelpCommand bool `json:"hideHelpCommand"` - // Boolean to hide built-in version flag and the VERSION section of help - HideVersion bool `json:"hideVersion"` - // Boolean to enable shell completion commands - EnableShellCompletion bool `json:"-"` - // Shell Completion generation command name - ShellCompletionCommandName string `json:"-"` - // The function to call when checking for shell command completions - ShellComplete ShellCompleteFunc `json:"-"` - // The function to configure a shell completion command - ConfigureShellCompletionCommand ConfigureShellCompletionCommand `json:"-"` - // An action to execute before any subcommands are run, but after the context is ready - // If a non-nil error is returned, no subcommands are run - Before BeforeFunc `json:"-"` - // An action to execute after any subcommands are run, but after the subcommand has finished - // It is run even if Action() panics - After AfterFunc `json:"-"` - // The function to call when this command is invoked - Action ActionFunc `json:"-"` - // Execute this function if the proper command cannot be found - CommandNotFound CommandNotFoundFunc `json:"-"` - // Execute this function if a usage error occurs. - OnUsageError OnUsageErrorFunc `json:"-"` - // Execute this function when an invalid flag is accessed from the context - InvalidFlagAccessHandler InvalidFlagAccessFunc `json:"-"` - // Boolean to hide this command from help or completion - Hidden bool `json:"hidden"` - // List of all authors who contributed (string or fmt.Stringer) - // TODO: ~string | fmt.Stringer when interface unions are available - Authors []any `json:"authors"` - // Copyright of the binary if any - Copyright string `json:"copyright"` - // Reader reader to write input to (useful for tests) - Reader io.Reader `json:"-"` - // Writer writer to write output to - Writer io.Writer `json:"-"` - // ErrWriter writes error output - ErrWriter io.Writer `json:"-"` - // ExitErrHandler processes any error encountered while running a Command before it is - // returned to the caller. If no function is provided, HandleExitCoder is used as the - // default behavior. - ExitErrHandler ExitErrHandlerFunc `json:"-"` - // Other custom info - Metadata map[string]interface{} `json:"metadata"` - // Carries a function which returns app specific info. - ExtraInfo func() map[string]string `json:"-"` - // CustomRootCommandHelpTemplate the text template for app help topic. - // cli.go uses text/template to render templates. You can - // render custom help text by setting this variable. - CustomRootCommandHelpTemplate string `json:"-"` - // SliceFlagSeparator is used to customize the separator for SliceFlag, the default is "," - SliceFlagSeparator string `json:"sliceFlagSeparator"` - // DisableSliceFlagSeparator is used to disable SliceFlagSeparator, the default is false - DisableSliceFlagSeparator bool `json:"disableSliceFlagSeparator"` - // MapFlagKeyValueSeparator is used to customize the separator for MapFlag, the default is "=" - MapFlagKeyValueSeparator string `json:"mapFlagKeyValueSeparator"` - // Boolean to enable short-option handling so user can combine several - // single-character bool arguments into one - // i.e. foobar -o -v -> foobar -ov - UseShortOptionHandling bool `json:"useShortOptionHandling"` - // Enable suggestions for commands and flags - Suggest bool `json:"suggest"` - // Allows global flags set by libraries which use flag.XXXVar(...) directly - // to be parsed through this library - AllowExtFlags bool `json:"allowExtFlags"` - // Treat all flags as normal arguments if true - SkipFlagParsing bool `json:"skipFlagParsing"` - // CustomHelpTemplate the text template for the command help topic. - // cli.go uses text/template to render templates. You can - // render custom help text by setting this variable. - CustomHelpTemplate string `json:"-"` - // Use longest prefix match for commands - PrefixMatchCommands bool `json:"prefixMatchCommands"` - // Custom suggest command for matching - SuggestCommandFunc SuggestCommandFunc `json:"-"` - // Flag exclusion group - MutuallyExclusiveFlags []MutuallyExclusiveFlags `json:"mutuallyExclusiveFlags"` - // Arguments to parse for this command - Arguments []Argument `json:"arguments"` - // Whether to read arguments from stdin - // applicable to root command only - ReadArgsFromStdin bool `json:"readArgsFromStdin"` - // StopOnNthArg provides v2-like behavior for specific commands by stopping - // flag parsing after N positional arguments are encountered. When set to N, - // all remaining arguments after the Nth positional argument will be treated - // as arguments, not flags. - // - // A value of 0 means all arguments are treated as positional (no flag parsing). - // A nil value means normal v3 flag parsing behavior (flags can appear anywhere). - StopOnNthArg *int `json:"stopOnNthArg"` - - // Has unexported fields. -} - Command contains everything needed to run an application that accepts a - string slice of arguments such as os.Args. A given Command may contain Flags - and sub-commands in Commands. - -func (cmd *Command) Args() Args - Args returns the command line arguments associated with the command. - -func (cmd *Command) Bool(name string) bool - -func (cmd *Command) Command(name string) *Command - -func (cmd *Command) Count(name string) int - Count returns the num of occurrences of this flag - -func (cmd *Command) Duration(name string) time.Duration - -func (cmd *Command) FlagNames() []string - FlagNames returns a slice of flag names used by the this command and all of - its parent commands. - -func (cmd *Command) Float(name string) float64 - Float looks up the value of a local FloatFlag, returns 0 if not found - -func (cmd *Command) Float32(name string) float32 - Float32 looks up the value of a local Float32Flag, returns 0 if not found - -func (c *Command) Float32Arg(name string) float32 - -func (c *Command) Float32Args(name string) []float32 - -func (cmd *Command) Float32Slice(name string) []float32 - Float32Slice looks up the value of a local Float32Slice, returns nil if not - found - -func (cmd *Command) Float64(name string) float64 - Float64 looks up the value of a local Float64Flag, returns 0 if not found - -func (c *Command) Float64Arg(name string) float64 - -func (c *Command) Float64Args(name string) []float64 - -func (cmd *Command) Float64Slice(name string) []float64 - Float64Slice looks up the value of a local Float64SliceFlag, returns nil if - not found - -func (c *Command) FloatArg(name string) float64 - -func (c *Command) FloatArgs(name string) []float64 - -func (cmd *Command) FloatSlice(name string) []float64 - FloatSlice looks up the value of a local FloatSliceFlag, returns nil if not - found - -func (cmd *Command) FullName() string - FullName returns the full name of the command. For commands with parents - this ensures that the parent commands are part of the command path. - -func (cmd *Command) Generic(name string) Value - Generic looks up the value of a local GenericFlag, returns nil if not found - -func (cmd *Command) HasName(name string) bool - HasName returns true if Command.Name matches given name - -func (cmd *Command) Int(name string) int - Int looks up the value of a local Int64Flag, returns 0 if not found - -func (cmd *Command) Int16(name string) int16 - Int16 looks up the value of a local Int16Flag, returns 0 if not found - -func (c *Command) Int16Arg(name string) int16 - -func (c *Command) Int16Args(name string) []int16 - -func (cmd *Command) Int16Slice(name string) []int16 - Int16Slice looks up the value of a local Int16SliceFlag, returns nil if not - found - -func (cmd *Command) Int32(name string) int32 - Int32 looks up the value of a local Int32Flag, returns 0 if not found - -func (c *Command) Int32Arg(name string) int32 - -func (c *Command) Int32Args(name string) []int32 - -func (cmd *Command) Int32Slice(name string) []int32 - Int32Slice looks up the value of a local Int32SliceFlag, returns nil if not - found - -func (cmd *Command) Int64(name string) int64 - Int64 looks up the value of a local Int64Flag, returns 0 if not found - -func (c *Command) Int64Arg(name string) int64 - -func (c *Command) Int64Args(name string) []int64 - -func (cmd *Command) Int64Slice(name string) []int64 - Int64Slice looks up the value of a local Int64SliceFlag, returns nil if not - found - -func (cmd *Command) Int8(name string) int8 - Int8 looks up the value of a local Int8Flag, returns 0 if not found - -func (c *Command) Int8Arg(name string) int8 - -func (c *Command) Int8Args(name string) []int8 - -func (cmd *Command) Int8Slice(name string) []int8 - Int8Slice looks up the value of a local Int8SliceFlag, returns nil if not - found - -func (c *Command) IntArg(name string) int - -func (c *Command) IntArgs(name string) []int - -func (cmd *Command) IntSlice(name string) []int - IntSlice looks up the value of a local IntSliceFlag, returns nil if not - found - -func (cmd *Command) IsSet(name string) bool - IsSet determines if the flag was actually set - -func (cmd *Command) Lineage() []*Command - Lineage returns *this* command and all of its ancestor commands in order - from child to parent - -func (cmd *Command) LocalFlagNames() []string - LocalFlagNames returns a slice of flag names used in this command. - -func (cmd *Command) NArg() int - NArg returns the number of the command line arguments. - -func (cmd *Command) Names() []string - Names returns the names including short names and aliases. - -func (cmd *Command) NumFlags() int - NumFlags returns the number of flags set - -func (cmd *Command) Root() *Command - Root returns the Command at the root of the graph - -func (cmd *Command) Run(ctx context.Context, osArgs []string) (deferErr error) - Run is the entry point to the command graph. The positional arguments are - parsed according to the Flag and Command definitions and the matching Action - functions are run. - -func (cmd *Command) Set(name, value string) error - Set sets a context flag to a value. - -func (cmd *Command) String(name string) string - -func (c *Command) StringArg(name string) string - -func (c *Command) StringArgs(name string) []string - -func (cmd *Command) StringMap(name string) map[string]string - StringMap looks up the value of a local StringMapFlag, returns nil if not - found - -func (cmd *Command) StringSlice(name string) []string - StringSlice looks up the value of a local StringSliceFlag, returns nil if - not found - -func (cmd *Command) Timestamp(name string) time.Time - Timestamp gets the timestamp from a flag name - -func (c *Command) TimestampArg(name string) time.Time - -func (c *Command) TimestampArgs(name string) []time.Time - -func (cmd *Command) ToFishCompletion() (string, error) - ToFishCompletion creates a fish completion string for the `*Command` The - function errors if either parsing or writing of the string fails. - -func (cmd *Command) Uint(name string) uint - Uint looks up the value of a local Uint64Flag, returns 0 if not found - -func (cmd *Command) Uint16(name string) uint16 - Uint16 looks up the value of a local Uint16Flag, returns 0 if not found - -func (c *Command) Uint16Arg(name string) uint16 - -func (c *Command) Uint16Args(name string) []uint16 - -func (cmd *Command) Uint16Slice(name string) []uint16 - Uint16Slice looks up the value of a local Uint16SliceFlag, returns nil if - not found - -func (cmd *Command) Uint32(name string) uint32 - Uint32 looks up the value of a local Uint32Flag, returns 0 if not found - -func (c *Command) Uint32Arg(name string) uint32 - -func (c *Command) Uint32Args(name string) []uint32 - -func (cmd *Command) Uint32Slice(name string) []uint32 - Uint32Slice looks up the value of a local Uint32SliceFlag, returns nil if - not found - -func (cmd *Command) Uint64(name string) uint64 - Uint64 looks up the value of a local Uint64Flag, returns 0 if not found - -func (c *Command) Uint64Arg(name string) uint64 - -func (c *Command) Uint64Args(name string) []uint64 - -func (cmd *Command) Uint64Slice(name string) []uint64 - Uint64Slice looks up the value of a local Uint64SliceFlag, returns nil if - not found - -func (cmd *Command) Uint8(name string) uint8 - Uint8 looks up the value of a local Uint8Flag, returns 0 if not found - -func (c *Command) Uint8Arg(name string) uint8 - -func (c *Command) Uint8Args(name string) []uint8 - -func (cmd *Command) Uint8Slice(name string) []uint8 - Uint8Slice looks up the value of a local Uint8SliceFlag, returns nil if not - found - -func (c *Command) UintArg(name string) uint - -func (c *Command) UintArgs(name string) []uint - -func (cmd *Command) UintSlice(name string) []uint - UintSlice looks up the value of a local UintSliceFlag, returns nil if not - found - -func (cmd *Command) Value(name string) interface{} - Value returns the value of the flag corresponding to `name` - -func (cmd *Command) VisibleCategories() []CommandCategory - VisibleCategories returns a slice of categories and commands that are - Hidden=false - -func (cmd *Command) VisibleCommands() []*Command - VisibleCommands returns a slice of the Commands with Hidden=false - -func (cmd *Command) VisibleFlagCategories() []VisibleFlagCategory - VisibleFlagCategories returns a slice containing all the visible flag - categories with the flags they contain - -func (cmd *Command) VisibleFlags() []Flag - VisibleFlags returns a slice of the Flags with Hidden=false - -func (cmd *Command) VisiblePersistentFlags() []Flag - VisiblePersistentFlags returns a slice of LocalFlag with Persistent=true and - Hidden=false. - -type CommandCategories interface { - // AddCommand adds a command to a category, creating a new category if necessary. - AddCommand(category string, command *Command) - // Categories returns a slice of categories sorted by name - Categories() []CommandCategory -} - CommandCategories interface allows for category manipulation - -type CommandCategory interface { - // Name returns the category name string - Name() string - // VisibleCommands returns a slice of the Commands with Hidden=false - VisibleCommands() []*Command -} - CommandCategory is a category containing commands. - -type CommandNotFoundFunc func(context.Context, *Command, string) - CommandNotFoundFunc is executed if the proper command cannot be found - -type ConfigureShellCompletionCommand func(*Command) - ConfigureShellCompletionCommand is a function to configure a shell - completion command - -type Countable interface { - Count() int -} - Countable is an interface to enable detection of flag values which support - repetitive flags - -type DocGenerationFlag interface { - // TakesValue returns true if the flag takes a value, otherwise false - TakesValue() bool - - // GetUsage returns the usage string for the flag - GetUsage() string - - // GetValue returns the flags value as string representation and an empty - // string if the flag takes no value at all. - GetValue() string - - // GetDefaultText returns the default text for this flag - GetDefaultText() string - - // GetEnvVars returns the env vars for this flag - GetEnvVars() []string - - // IsDefaultVisible returns whether the default value should be shown in - // help text - IsDefaultVisible() bool - // TypeName to detect if a flag is a string, bool, etc. - TypeName() string -} - DocGenerationFlag is an interface that allows documentation generation for - the flag - -type DocGenerationMultiValueFlag interface { - DocGenerationFlag - - // IsMultiValueFlag returns true for flags that can be given multiple times. - IsMultiValueFlag() bool -} - DocGenerationMultiValueFlag extends DocGenerationFlag for slice/map based - flags. - -type DurationFlag = FlagBase[time.Duration, NoConfig, durationValue] - -type EnvValueSource interface { - IsFromEnv() bool - Key() string -} - EnvValueSource is to specifically detect env sources when printing help text - -type ErrorFormatter interface { - Format(s fmt.State, verb rune) -} - ErrorFormatter is the interface that will suitably format the error output - -type ExitCoder interface { - error - ExitCode() int -} - ExitCoder is the interface checked by `Command` for a custom exit code. - -func Exit(message any, exitCode int) ExitCoder - Exit wraps a message and exit code into an error, which by default is - handled with a call to os.Exit during default error handling. - - This is the simplest way to trigger a non-zero exit code for a Command - without having to call os.Exit manually. During testing, this behavior can - be avoided by overriding the ExitErrHandler function on a Command or the - package-global OsExiter function. - -type ExitErrHandlerFunc func(context.Context, *Command, error) - ExitErrHandlerFunc is executed if provided in order to handle exitError - values returned by Actions and Before/After functions. - -type Flag interface { - fmt.Stringer - - // Retrieve the value of the Flag - Get() any - - // Lifecycle methods. - // flag callback prior to parsing - PreParse() error - - // flag callback post parsing - PostParse() error - - // Apply Flag settings to the given flag set - Set(string, string) error - - // All possible names for this flag - Names() []string - - // Whether the flag has been set or not - IsSet() bool -} - Flag is a common interface related to parsing flags in cli. For more - advanced flag parsing techniques, it is recommended that this interface be - implemented. - -var GenerateShellCompletionFlag Flag = &BoolFlag{ - Name: "generate-shell-completion", - Hidden: true, -} - GenerateShellCompletionFlag enables shell completion - -var HelpFlag Flag = &BoolFlag{ - Name: "help", - Aliases: []string{"h"}, - Usage: "show help", - HideDefault: true, - Local: true, -} - HelpFlag prints the help for all commands and subcommands. Set to nil to - disable the flag. The subcommand will still be added unless HideHelp or - HideHelpCommand is set to true. - -var VersionFlag Flag = &BoolFlag{ - Name: "version", - Aliases: []string{"v"}, - Usage: "print the version", - HideDefault: true, - Local: true, -} - VersionFlag prints the version for the application - -type FlagBase[T any, C any, VC ValueCreator[T, C]] struct { - Name string `json:"name"` // name of the flag - Category string `json:"category"` // category of the flag, if any - DefaultText string `json:"defaultText"` // default text of the flag for usage purposes - HideDefault bool `json:"hideDefault"` // whether to hide the default value in output - Usage string `json:"usage"` // usage string for help output - Sources ValueSourceChain `json:"-"` // sources to load flag value from - Required bool `json:"required"` // whether the flag is required or not - Hidden bool `json:"hidden"` // whether to hide the flag in help output - Local bool `json:"local"` // whether the flag needs to be applied to subcommands as well - Value T `json:"defaultValue"` // default value for this flag if not set by from any source - Destination *T `json:"-"` // destination pointer for value when set - Aliases []string `json:"aliases"` // Aliases that are allowed for this flag - TakesFile bool `json:"takesFileArg"` // whether this flag takes a file argument, mainly for shell completion purposes - Action func(context.Context, *Command, T) error `json:"-"` // Action callback to be called when flag is set - Config C `json:"config"` // Additional/Custom configuration associated with this flag type - OnlyOnce bool `json:"onlyOnce"` // whether this flag can be duplicated on the command line - Validator func(T) error `json:"-"` // custom function to validate this flag value - ValidateDefaults bool `json:"validateDefaults"` // whether to validate defaults or not - - // Has unexported fields. -} - FlagBase [T,C,VC] is a generic flag base which can be used as a boilerplate - to implement the most common interfaces used by urfave/cli. - - T specifies the type - C specifies the configuration required(if any for that flag type) - VC specifies the value creator which creates the flag.Value emulation - -func (f *FlagBase[T, C, VC]) Count() int - Count returns the number of times this flag has been invoked - -func (f *FlagBase[T, C, V]) Get() any - -func (f *FlagBase[T, C, V]) GetCategory() string - GetCategory returns the category of the flag - -func (f *FlagBase[T, C, V]) GetDefaultText() string - GetDefaultText returns the default text for this flag - -func (f *FlagBase[T, C, V]) GetEnvVars() []string - GetEnvVars returns the env vars for this flag - -func (f *FlagBase[T, C, V]) GetUsage() string - GetUsage returns the usage string for the flag - -func (f *FlagBase[T, C, V]) GetValue() string - GetValue returns the flags value as string representation and an empty - string if the flag takes no value at all. - -func (f *FlagBase[T, C, VC]) IsBoolFlag() bool - IsBoolFlag returns whether the flag doesnt need to accept args - -func (f *FlagBase[T, C, V]) IsDefaultVisible() bool - IsDefaultVisible returns true if the flag is not hidden, otherwise false - -func (f *FlagBase[T, C, VC]) IsLocal() bool - IsLocal returns false if flag needs to be persistent across subcommands - -func (f *FlagBase[T, C, VC]) IsMultiValueFlag() bool - IsMultiValueFlag returns true if the value type T can take multiple values - from cmd line. This is true for slice and map type flags - -func (f *FlagBase[T, C, V]) IsRequired() bool - IsRequired returns whether or not the flag is required - -func (f *FlagBase[T, C, V]) IsSet() bool - IsSet returns whether or not the flag has been set through env or file - -func (f *FlagBase[T, C, V]) IsVisible() bool - IsVisible returns true if the flag is not hidden, otherwise false - -func (f *FlagBase[T, C, V]) Names() []string - Names returns the names of the flag - -func (f *FlagBase[T, C, V]) PostParse() error - PostParse populates the flag given the flag set and environment - -func (f *FlagBase[T, C, V]) PreParse() error - -func (f *FlagBase[T, C, V]) RunAction(ctx context.Context, cmd *Command) error - RunAction executes flag action if set - -func (f *FlagBase[T, C, V]) Set(_ string, val string) error - Set applies given value from string - -func (f *FlagBase[T, C, V]) SetCategory(c string) - -func (f *FlagBase[T, C, V]) String() string - String returns a readable representation of this value (for usage defaults) - -func (f *FlagBase[T, C, V]) TakesValue() bool - TakesValue returns true if the flag takes a value, otherwise false - -func (f *FlagBase[T, C, V]) TypeName() string - TypeName returns the type of the flag. - -type FlagCategories interface { - // AddFlags adds a flag to a category, creating a new category if necessary. - AddFlag(category string, fl Flag) - // VisibleCategories returns a slice of visible flag categories sorted by name - VisibleCategories() []VisibleFlagCategory -} - FlagCategories interface allows for category manipulation - -type FlagEnvHintFunc func(envVars []string, str string) string - FlagEnvHintFunc is used by the default FlagStringFunc to annotate flag help - with the environment variable details. - -var FlagEnvHinter FlagEnvHintFunc = withEnvHint - FlagEnvHinter annotates flag help message with the environment variable - details. This is used by the default FlagStringer. - -type FlagFileHintFunc func(filePath, str string) string - FlagFileHintFunc is used by the default FlagStringFunc to annotate flag help - with the file path details. - -var FlagFileHinter FlagFileHintFunc = withFileHint - FlagFileHinter annotates flag help message with the environment variable - details. This is used by the default FlagStringer. - -type FlagNamePrefixFunc func(fullName []string, placeholder string) string - FlagNamePrefixFunc is used by the default FlagStringFunc to create prefix - text for a flag's full name. - -var FlagNamePrefixer FlagNamePrefixFunc = prefixedNames - FlagNamePrefixer converts a full flag name and its placeholder into the help - message flag prefix. This is used by the default FlagStringer. - -type FlagStringFunc func(Flag) string - FlagStringFunc is used by the help generation to display a flag, which is - expected to be a single line. - -var FlagStringer FlagStringFunc = stringifyFlag - FlagStringer converts a flag definition to a string. This is used by help to - display a flag. - -type FlagsByName []Flag - FlagsByName is a slice of Flag. - -func (f FlagsByName) Len() int - -func (f FlagsByName) Less(i, j int) bool - -func (f FlagsByName) Swap(i, j int) - -type Float32Arg = ArgumentBase[float32, NoConfig, floatValue[float32]] - -type Float32Args = ArgumentsBase[float32, NoConfig, floatValue[float32]] - -type Float32Flag = FlagBase[float32, NoConfig, floatValue[float32]] - -type Float32Slice = SliceBase[float32, NoConfig, floatValue[float32]] - -type Float32SliceFlag = FlagBase[[]float32, NoConfig, Float32Slice] - -type Float64Arg = ArgumentBase[float64, NoConfig, floatValue[float64]] - -type Float64Args = ArgumentsBase[float64, NoConfig, floatValue[float64]] - -type Float64Flag = FlagBase[float64, NoConfig, floatValue[float64]] - -type Float64Slice = SliceBase[float64, NoConfig, floatValue[float64]] - -type Float64SliceFlag = FlagBase[[]float64, NoConfig, Float64Slice] - -type FloatArg = ArgumentBase[float64, NoConfig, floatValue[float64]] - -type FloatArgs = ArgumentsBase[float64, NoConfig, floatValue[float64]] - -type FloatFlag = FlagBase[float64, NoConfig, floatValue[float64]] - -type FloatSlice = SliceBase[float64, NoConfig, floatValue[float64]] - -type FloatSliceFlag = FlagBase[[]float64, NoConfig, FloatSlice] - -type GenericFlag = FlagBase[Value, NoConfig, genericValue] - -type HelpPrinterCustomFunc func(w io.Writer, templ string, data any, customFunc map[string]any) - Prints help for the Command with custom template function. - -var HelpPrinterCustom HelpPrinterCustomFunc = DefaultPrintHelpCustom - HelpPrinterCustom is a function that writes the help output. It is used as - the default implementation of HelpPrinter, and may be called directly if the - ExtraInfo field is set on a Command. - - In the default implementation, if the customFuncs argument contains a - "wrapAt" key, which is a function which takes no arguments and returns an - int, this int value will be used to produce a "wrap" function used by the - default template to wrap long lines. - -type HelpPrinterFunc func(w io.Writer, templ string, data any) - HelpPrinterFunc prints help for the Command. - -var HelpPrinter HelpPrinterFunc = DefaultPrintHelp - HelpPrinter is a function that writes the help output. If not set - explicitly, this calls HelpPrinterCustom using only the default template - functions. - - If custom logic for printing help is required, this function can be - overridden. If the ExtraInfo field is defined on a Command, this function - should not be modified, as HelpPrinterCustom will be used directly in order - to capture the extra information. - -type Int16Arg = ArgumentBase[int16, IntegerConfig, intValue[int16]] - -type Int16Args = ArgumentsBase[int16, IntegerConfig, intValue[int16]] - -type Int16Flag = FlagBase[int16, IntegerConfig, intValue[int16]] - -type Int16Slice = SliceBase[int16, IntegerConfig, intValue[int16]] - -type Int16SliceFlag = FlagBase[[]int16, IntegerConfig, Int16Slice] - -type Int32Arg = ArgumentBase[int32, IntegerConfig, intValue[int32]] - -type Int32Args = ArgumentsBase[int32, IntegerConfig, intValue[int32]] - -type Int32Flag = FlagBase[int32, IntegerConfig, intValue[int32]] - -type Int32Slice = SliceBase[int32, IntegerConfig, intValue[int32]] - -type Int32SliceFlag = FlagBase[[]int32, IntegerConfig, Int32Slice] - -type Int64Arg = ArgumentBase[int64, IntegerConfig, intValue[int64]] - -type Int64Args = ArgumentsBase[int64, IntegerConfig, intValue[int64]] - -type Int64Flag = FlagBase[int64, IntegerConfig, intValue[int64]] - -type Int64Slice = SliceBase[int64, IntegerConfig, intValue[int64]] - -type Int64SliceFlag = FlagBase[[]int64, IntegerConfig, Int64Slice] - -type Int8Arg = ArgumentBase[int8, IntegerConfig, intValue[int8]] - -type Int8Args = ArgumentsBase[int8, IntegerConfig, intValue[int8]] - -type Int8Flag = FlagBase[int8, IntegerConfig, intValue[int8]] - -type Int8Slice = SliceBase[int8, IntegerConfig, intValue[int8]] - -type Int8SliceFlag = FlagBase[[]int8, IntegerConfig, Int8Slice] - -type IntArg = ArgumentBase[int, IntegerConfig, intValue[int]] - -type IntArgs = ArgumentsBase[int, IntegerConfig, intValue[int]] - -type IntFlag = FlagBase[int, IntegerConfig, intValue[int]] - -type IntSlice = SliceBase[int, IntegerConfig, intValue[int]] - -type IntSliceFlag = FlagBase[[]int, IntegerConfig, IntSlice] - -type IntegerConfig struct { - Base int -} - IntegerConfig is the configuration for all integer type flags - -type InvalidFlagAccessFunc func(context.Context, *Command, string) - InvalidFlagAccessFunc is executed when an invalid flag is accessed from the - context. - -type LocalFlag interface { - IsLocal() bool -} - LocalFlag is an interface to enable detection of flags which are local to - current command - -type MapBase[T any, C any, VC ValueCreator[T, C]] struct { - // Has unexported fields. -} - MapBase wraps map[string]T to satisfy flag.Value - -func NewMapBase[T any, C any, VC ValueCreator[T, C]](defaults map[string]T) *MapBase[T, C, VC] - NewMapBase makes a *MapBase with default values - -func (i MapBase[T, C, VC]) Create(val map[string]T, p *map[string]T, c C) Value - -func (i *MapBase[T, C, VC]) Get() interface{} - Get returns the mapping of values set by this flag - -func (i *MapBase[T, C, VC]) Serialize() string - Serialize allows MapBase to fulfill Serializer - -func (i *MapBase[T, C, VC]) Set(value string) error - Set parses the value and appends it to the list of values - -func (i *MapBase[T, C, VC]) String() string - String returns a readable representation of this value (for usage defaults) - -func (i MapBase[T, C, VC]) ToString(t map[string]T) string - -func (i *MapBase[T, C, VC]) Value() map[string]T - Value returns the mapping of values set by this flag - -type MapSource interface { - fmt.Stringer - fmt.GoStringer - - // Lookup returns the value from the source based on key - // and if it was found - // or returns an empty string and false - Lookup(string) (any, bool) -} - MapSource is a source which can be used to look up a value based on a key - typically for use with a cli.Flag - -func NewMapSource(name string, m map[any]any) MapSource - -type MultiError interface { - error - Errors() []error -} - MultiError is an error that wraps multiple errors. - -type MutuallyExclusiveFlags struct { - // Flag list - Flags [][]Flag - - // whether this group is required - Required bool - - // Category to apply to all flags within group - Category string -} - MutuallyExclusiveFlags defines a mutually exclusive flag group Multiple - option paths can be provided out of which only one can be defined on cmdline - So for example [ --foo | [ --bar something --darth somethingelse ] ] - -type NoConfig struct{} - NoConfig is for flags which dont need a custom configuration - -type OnUsageErrorFunc func(ctx context.Context, cmd *Command, err error, isSubcommand bool) error - OnUsageErrorFunc is executed if a usage error occurs. This is useful for - displaying customized usage error messages. This function is able to replace - the original error messages. If this function is not set, the "Incorrect - usage" is displayed and the execution is interrupted. - -type RequiredFlag interface { - // whether the flag is a required flag or not - IsRequired() bool -} - RequiredFlag is an interface that allows us to mark flags as required - it allows flags required flags to be backwards compatible with the Flag - interface - -type Serializer interface { - Serialize() string -} - Serializer is used to circumvent the limitations of flag.FlagSet.Set - -type ShellCompleteFunc func(context.Context, *Command) - ShellCompleteFunc is an action to execute when the shell completion flag is - set - -type SliceBase[T any, C any, VC ValueCreator[T, C]] struct { - // Has unexported fields. -} - SliceBase wraps []T to satisfy flag.Value - -func NewSliceBase[T any, C any, VC ValueCreator[T, C]](defaults ...T) *SliceBase[T, C, VC] - NewSliceBase makes a *SliceBase with default values - -func (i SliceBase[T, C, VC]) Create(val []T, p *[]T, c C) Value - -func (i *SliceBase[T, C, VC]) Get() interface{} - Get returns the slice of values set by this flag - -func (i *SliceBase[T, C, VC]) Serialize() string - Serialize allows SliceBase to fulfill Serializer - -func (i *SliceBase[T, C, VC]) Set(value string) error - Set parses the value and appends it to the list of values - -func (i *SliceBase[T, C, VC]) String() string - String returns a readable representation of this value (for usage defaults) - -func (i SliceBase[T, C, VC]) ToString(t []T) string - -func (i *SliceBase[T, C, VC]) Value() []T - Value returns the slice of values set by this flag - -type StringArg = ArgumentBase[string, StringConfig, stringValue] - -type StringArgs = ArgumentsBase[string, StringConfig, stringValue] - -type StringConfig struct { - // Whether to trim whitespace of parsed value - TrimSpace bool -} - StringConfig defines the configuration for string flags - -type StringFlag = FlagBase[string, StringConfig, stringValue] - -type StringMap = MapBase[string, StringConfig, stringValue] - -type StringMapArgs = ArgumentBase[map[string]string, StringConfig, StringMap] - -type StringMapFlag = FlagBase[map[string]string, StringConfig, StringMap] - -type StringSlice = SliceBase[string, StringConfig, stringValue] - -type StringSliceFlag = FlagBase[[]string, StringConfig, StringSlice] - -type SuggestCommandFunc func(commands []*Command, provided string) string - -type SuggestFlagFunc func(flags []Flag, provided string, hideHelp bool) string - -type TimestampArg = ArgumentBase[time.Time, TimestampConfig, timestampValue] - -type TimestampArgs = ArgumentsBase[time.Time, TimestampConfig, timestampValue] - -type TimestampConfig struct { - Timezone *time.Location - // Available layouts for flag value. - // - // Note that value for formats with missing year/date will be interpreted as current year/date respectively. - // - // Read more about time layouts: https://pkg.go.dev/time#pkg-constants - Layouts []string -} - TimestampConfig defines the config for timestamp flags - -type TimestampFlag = FlagBase[time.Time, TimestampConfig, timestampValue] - -type Uint16Arg = ArgumentBase[uint16, IntegerConfig, uintValue[uint16]] - -type Uint16Args = ArgumentsBase[uint16, IntegerConfig, uintValue[uint16]] - -type Uint16Flag = FlagBase[uint16, IntegerConfig, uintValue[uint16]] - -type Uint16Slice = SliceBase[uint16, IntegerConfig, uintValue[uint16]] - -type Uint16SliceFlag = FlagBase[[]uint16, IntegerConfig, Uint16Slice] - -type Uint32Arg = ArgumentBase[uint32, IntegerConfig, uintValue[uint32]] - -type Uint32Args = ArgumentsBase[uint32, IntegerConfig, uintValue[uint32]] - -type Uint32Flag = FlagBase[uint32, IntegerConfig, uintValue[uint32]] - -type Uint32Slice = SliceBase[uint32, IntegerConfig, uintValue[uint32]] - -type Uint32SliceFlag = FlagBase[[]uint32, IntegerConfig, Uint32Slice] - -type Uint64Arg = ArgumentBase[uint64, IntegerConfig, uintValue[uint64]] - -type Uint64Args = ArgumentsBase[uint64, IntegerConfig, uintValue[uint64]] - -type Uint64Flag = FlagBase[uint64, IntegerConfig, uintValue[uint64]] - -type Uint64Slice = SliceBase[uint64, IntegerConfig, uintValue[uint64]] - -type Uint64SliceFlag = FlagBase[[]uint64, IntegerConfig, Uint64Slice] - -type Uint8Arg = ArgumentBase[uint8, IntegerConfig, uintValue[uint8]] - -type Uint8Args = ArgumentsBase[uint8, IntegerConfig, uintValue[uint8]] - -type Uint8Flag = FlagBase[uint8, IntegerConfig, uintValue[uint8]] - -type Uint8Slice = SliceBase[uint8, IntegerConfig, uintValue[uint8]] - -type Uint8SliceFlag = FlagBase[[]uint8, IntegerConfig, Uint8Slice] - -type UintArg = ArgumentBase[uint, IntegerConfig, uintValue[uint]] - -type UintArgs = ArgumentsBase[uint, IntegerConfig, uintValue[uint]] - -type UintFlag = FlagBase[uint, IntegerConfig, uintValue[uint]] - -type UintSlice = SliceBase[uint, IntegerConfig, uintValue[uint]] - -type UintSliceFlag = FlagBase[[]uint, IntegerConfig, UintSlice] - -type Value interface { - flag.Value - flag.Getter -} - Value represents a value as used by cli. For now it implements the golang - flag.Value interface - -type ValueCreator[T any, C any] interface { - Create(T, *T, C) Value - ToString(T) string -} - ValueCreator is responsible for creating a flag.Value emulation as well as - custom formatting - - T specifies the type - C specifies the config for the type - -type ValueSource interface { - fmt.Stringer - fmt.GoStringer - - // Lookup returns the value from the source and if it was found - // or returns an empty string and false - Lookup() (string, bool) -} - ValueSource is a source which can be used to look up a value, typically for - use with a cli.Flag - -func EnvVar(key string) ValueSource - -func File(path string) ValueSource - -func NewMapValueSource(key string, ms MapSource) ValueSource - -type ValueSourceChain struct { - Chain []ValueSource -} - ValueSourceChain contains an ordered series of ValueSource that allows for - lookup where the first ValueSource to resolve is returned - -func EnvVars(keys ...string) ValueSourceChain - EnvVars is a helper function to encapsulate a number of envVarValueSource - together as a ValueSourceChain - -func Files(paths ...string) ValueSourceChain - Files is a helper function to encapsulate a number of fileValueSource - together as a ValueSourceChain - -func NewValueSourceChain(src ...ValueSource) ValueSourceChain - -func (vsc *ValueSourceChain) Append(other ValueSourceChain) - -func (vsc *ValueSourceChain) EnvKeys() []string - -func (vsc *ValueSourceChain) GoString() string - -func (vsc *ValueSourceChain) Lookup() (string, bool) - -func (vsc *ValueSourceChain) LookupWithSource() (string, ValueSource, bool) - -func (vsc *ValueSourceChain) String() string - -type VisibleFlag interface { - // IsVisible returns true if the flag is not hidden, otherwise false - IsVisible() bool -} - VisibleFlag is an interface that allows to check if a flag is visible - -type VisibleFlagCategory interface { - // Name returns the category name string - Name() string - // Flags returns a slice of VisibleFlag sorted by name - Flags() []Flag -} - VisibleFlagCategory is a category containing flags. - diff --git a/vendor/github.com/urfave/cli/v3/help.go b/vendor/github.com/urfave/cli/v3/help.go deleted file mode 100644 index 78686b1..0000000 --- a/vendor/github.com/urfave/cli/v3/help.go +++ /dev/null @@ -1,626 +0,0 @@ -package cli - -import ( - "context" - "fmt" - "io" - "os" - "strings" - "text/tabwriter" - "text/template" - "unicode/utf8" -) - -const ( - helpName = "help" - helpAlias = "h" -) - -// HelpPrinterFunc prints help for the Command. -type HelpPrinterFunc func(w io.Writer, templ string, data any) - -// Prints help for the Command with custom template function. -type HelpPrinterCustomFunc func(w io.Writer, templ string, data any, customFunc map[string]any) - -// HelpPrinter is a function that writes the help output. If not set explicitly, -// this calls HelpPrinterCustom using only the default template functions. -// -// If custom logic for printing help is required, this function can be -// overridden. If the ExtraInfo field is defined on a Command, this function -// should not be modified, as HelpPrinterCustom will be used directly in order -// to capture the extra information. -var HelpPrinter HelpPrinterFunc = DefaultPrintHelp - -// HelpPrinterCustom is a function that writes the help output. It is used as -// the default implementation of HelpPrinter, and may be called directly if -// the ExtraInfo field is set on a Command. -// -// In the default implementation, if the customFuncs argument contains a -// "wrapAt" key, which is a function which takes no arguments and returns -// an int, this int value will be used to produce a "wrap" function used -// by the default template to wrap long lines. -var HelpPrinterCustom HelpPrinterCustomFunc = DefaultPrintHelpCustom - -// VersionPrinter prints the version for the root Command. -var VersionPrinter = DefaultPrintVersion - -// ShowRootCommandHelp is an action that displays help for the root command. -var ShowRootCommandHelp = DefaultShowRootCommandHelp - -// ShowAppHelp is a backward-compatible name for ShowRootCommandHelp. -var ShowAppHelp = ShowRootCommandHelp - -// ShowCommandHelp prints help for the given command -var ShowCommandHelp = DefaultShowCommandHelp - -// ShowSubcommandHelp prints help for the given subcommand -var ShowSubcommandHelp = DefaultShowSubcommandHelp - -// UsageCommandHelp is the text to override the USAGE section of the help command -var UsageCommandHelp = "Shows a list of commands or help for one command" - -// ArgsUsageCommandHelp is a short description of the arguments of the help command -var ArgsUsageCommandHelp = "[command]" - -func buildHelpCommand(withAction bool) *Command { - cmd := &Command{ - Name: helpName, - Aliases: []string{helpAlias}, - Usage: UsageCommandHelp, - ArgsUsage: ArgsUsageCommandHelp, - HideHelp: true, - } - - if withAction { - cmd.Action = helpCommandAction - } - - return cmd -} - -func helpCommandAction(ctx context.Context, cmd *Command) error { - args := cmd.Args() - firstArg := args.First() - - tracef("doing help for cmd %[1]q with args %[2]q", cmd, args) - - // This action can be triggered by a "default" action of a command - // or via cmd.Run when cmd == helpCmd. So we have following possibilities - // - // 1 $ app - // 2 $ app help - // 3 $ app foo - // 4 $ app help foo - // 5 $ app foo help - - // Case 4. when executing a help command set the context to parent - // to allow resolution of subsequent args. This will transform - // $ app help foo - // to - // $ app foo - // which will then be handled as case 3 - if cmd.parent != nil && (cmd.HasName(helpName) || cmd.HasName(helpAlias)) { - tracef("setting cmd to cmd.parent") - cmd = cmd.parent - } - - // Case 4. $ app help foo - // foo is the command for which help needs to be shown - if firstArg != "" { - /* if firstArg == "--" { - return nil - }*/ - tracef("returning ShowCommandHelp with %[1]q", firstArg) - return ShowCommandHelp(ctx, cmd, firstArg) - } - - // Case 1 & 2 - // Special case when running help on main app itself as opposed to individual - // commands/subcommands - if cmd.parent == nil { - tracef("returning ShowRootCommandHelp") - _ = ShowRootCommandHelp(cmd) - return nil - } - - // Case 3, 5 - if (len(cmd.Commands) == 1 && !cmd.HideHelp) || - (len(cmd.Commands) == 0 && cmd.HideHelp) { - - tmpl := cmd.CustomHelpTemplate - if tmpl == "" { - tmpl = CommandHelpTemplate - } - - tracef("running HelpPrinter with command %[1]q", cmd.Name) - HelpPrinter(cmd.Root().Writer, tmpl, cmd) - - return nil - } - - tracef("running ShowSubcommandHelp") - return ShowSubcommandHelp(cmd) -} - -// ShowRootCommandHelpAndExit prints the list of subcommands and exits with exit code. -func ShowRootCommandHelpAndExit(cmd *Command, exitCode int) { - _ = ShowRootCommandHelp(cmd) - OsExiter(exitCode) -} - -// ShowAppHelpAndExit is a backward-compatible name for ShowRootCommandHelp. -var ShowAppHelpAndExit = ShowRootCommandHelpAndExit - -// DefaultShowRootCommandHelp is the default implementation of ShowRootCommandHelp. -func DefaultShowRootCommandHelp(cmd *Command) error { - tmpl := cmd.CustomRootCommandHelpTemplate - if tmpl == "" { - tracef("using RootCommandHelpTemplate") - tmpl = RootCommandHelpTemplate - } - - if cmd.ExtraInfo == nil { - HelpPrinter(cmd.Root().Writer, tmpl, cmd.Root()) - return nil - } - - tracef("setting ExtraInfo in customAppData") - customAppData := func() map[string]any { - return map[string]any{ - "ExtraInfo": cmd.ExtraInfo, - } - } - HelpPrinterCustom(cmd.Root().Writer, tmpl, cmd.Root(), customAppData()) - - return nil -} - -// DefaultRootCommandComplete prints the list of subcommands as the default completion method. -func DefaultRootCommandComplete(ctx context.Context, cmd *Command) { - DefaultCompleteWithFlags(ctx, cmd) -} - -// DefaultAppComplete is a backward-compatible name for DefaultRootCommandComplete. -var DefaultAppComplete = DefaultRootCommandComplete - -func printCommandSuggestions(commands []*Command, writer io.Writer) { - for _, command := range commands { - if command.Hidden { - continue - } - if strings.HasSuffix(os.Getenv("SHELL"), "zsh") { - _, _ = fmt.Fprintf(writer, "%s:%s\n", command.Name, command.Usage) - } else { - _, _ = fmt.Fprintf(writer, "%s\n", command.Name) - } - } -} - -func cliArgContains(flagName string, args []string) bool { - for _, name := range strings.Split(flagName, ",") { - name = strings.TrimSpace(name) - count := utf8.RuneCountInString(name) - if count > 2 { - count = 2 - } - flag := fmt.Sprintf("%s%s", strings.Repeat("-", count), name) - for _, a := range args { - if a == flag { - return true - } - } - } - return false -} - -func printFlagSuggestions(lastArg string, flags []Flag, writer io.Writer) { - // Trim to handle both "-short" and "--long" flags. - cur := strings.TrimLeft(lastArg, "-") - for _, flag := range flags { - if bflag, ok := flag.(*BoolFlag); ok && bflag.Hidden { - continue - } - - usage := "" - if docFlag, ok := flag.(DocGenerationFlag); ok { - usage = docFlag.GetUsage() - } - - name := strings.TrimSpace(flag.Names()[0]) - // this will get total count utf8 letters in flag name - count := utf8.RuneCountInString(name) - if count > 2 { - count = 2 // reuse this count to generate single - or -- in flag completion - } - // if flag name has more than one utf8 letter and last argument in cli has -- prefix then - // skip flag completion for short flags example -v or -x - if strings.HasPrefix(lastArg, "--") && count == 1 { - continue - } - // match if last argument matches this flag and it is not repeated - if strings.HasPrefix(name, cur) && cur != name /* && !cliArgContains(name, os.Args)*/ { - flagCompletion := fmt.Sprintf("%s%s", strings.Repeat("-", count), name) - if usage != "" && strings.HasSuffix(os.Getenv("SHELL"), "zsh") { - flagCompletion = fmt.Sprintf("%s:%s", flagCompletion, usage) - } - fmt.Fprintln(writer, flagCompletion) - } - } -} - -func DefaultCompleteWithFlags(ctx context.Context, cmd *Command) { - args := os.Args - if cmd != nil && cmd.parent != nil { - args = cmd.Args().Slice() - tracef("running default complete with flags[%v] on command %[2]q", args, cmd.Name) - } else { - tracef("running default complete with os.Args flags[%v]", args) - } - argsLen := len(args) - lastArg := "" - // parent command will have --generate-shell-completion so we need - // to account for that - if argsLen > 1 { - lastArg = args[argsLen-2] - } else if argsLen > 0 { - lastArg = args[argsLen-1] - } - - if lastArg == "--" { - tracef("No completions due to termination") - return - } - - if lastArg == completionFlag { - lastArg = "" - } - - if strings.HasPrefix(lastArg, "-") { - tracef("printing flag suggestion for flag[%v] on command %[1]q", lastArg, cmd.Name) - printFlagSuggestions(lastArg, cmd.Flags, cmd.Root().Writer) - return - } - - if cmd != nil { - tracef("printing command suggestions on command %[1]q", cmd.Name) - printCommandSuggestions(cmd.Commands, cmd.Root().Writer) - return - } -} - -// ShowCommandHelpAndExit exits with code after showing help via ShowCommandHelp. -func ShowCommandHelpAndExit(ctx context.Context, cmd *Command, command string, code int) { - _ = ShowCommandHelp(ctx, cmd, command) - OsExiter(code) -} - -// DefaultShowCommandHelp is the default implementation of ShowCommandHelp. -func DefaultShowCommandHelp(ctx context.Context, cmd *Command, commandName string) error { - for _, subCmd := range cmd.Commands { - if !subCmd.HasName(commandName) { - continue - } - - tmpl := subCmd.CustomHelpTemplate - if tmpl == "" { - if len(subCmd.Commands) == 0 { - tracef("using CommandHelpTemplate") - tmpl = CommandHelpTemplate - } else { - tracef("using SubcommandHelpTemplate") - tmpl = SubcommandHelpTemplate - } - } - - tracef("running HelpPrinter") - HelpPrinter(cmd.Root().Writer, tmpl, subCmd) - - tracef("returning nil after printing help") - return nil - } - - tracef("no matching command found") - - if cmd.CommandNotFound == nil { - errMsg := fmt.Sprintf("No help topic for '%v'", commandName) - - if cmd.Suggest { - if suggestion := SuggestCommand(cmd.Commands, commandName); suggestion != "" { - errMsg += ". " + suggestion - } - } - - tracef("exiting 3 with errMsg %[1]q", errMsg) - return Exit(errMsg, 3) - } - - tracef("running CommandNotFound func for %[1]q", commandName) - cmd.CommandNotFound(ctx, cmd, commandName) - - return nil -} - -// ShowSubcommandHelpAndExit prints help for the given subcommand via ShowSubcommandHelp and exits with exit code. -func ShowSubcommandHelpAndExit(cmd *Command, exitCode int) { - _ = ShowSubcommandHelp(cmd) - OsExiter(exitCode) -} - -// DefaultShowSubcommandHelp is the default implementation of ShowSubcommandHelp. -func DefaultShowSubcommandHelp(cmd *Command) error { - HelpPrinter(cmd.Root().Writer, SubcommandHelpTemplate, cmd) - return nil -} - -// ShowVersion prints the version number of the root Command. -func ShowVersion(cmd *Command) { - tracef("showing version via VersionPrinter (cmd=%[1]q)", cmd.Name) - VersionPrinter(cmd) -} - -// DefaultPrintVersion is the default implementation of VersionPrinter. -func DefaultPrintVersion(cmd *Command) { - _, _ = fmt.Fprintf(cmd.Root().Writer, "%v version %v\n", cmd.Name, cmd.Version) -} - -func handleTemplateError(err error) { - if err != nil { - tracef("error encountered during template parse: %[1]v", err) - // If the writer is closed, t.Execute will fail, and there's nothing - // we can do to recover. - if os.Getenv("CLI_TEMPLATE_ERROR_DEBUG") != "" { - _, _ = fmt.Fprintf(ErrWriter, "CLI TEMPLATE ERROR: %#v\n", err) - } - return - } -} - -// DefaultPrintHelpCustom is the default implementation of HelpPrinterCustom. -// -// The customFuncs map will be combined with a default template.FuncMap to -// allow using arbitrary functions in template rendering. -func DefaultPrintHelpCustom(out io.Writer, templ string, data any, customFuncs map[string]any) { - const maxLineLength = 10000 - - tracef("building default funcMap") - funcMap := template.FuncMap{ - "join": strings.Join, - "subtract": subtract, - "indent": indent, - "nindent": nindent, - "trim": strings.TrimSpace, - "wrap": func(input string, offset int) string { return wrap(input, offset, maxLineLength) }, - "offset": offset, - "offsetCommands": offsetCommands, - } - - if wa, ok := customFuncs["wrapAt"]; ok { - if wrapAtFunc, ok := wa.(func() int); ok { - wrapAt := wrapAtFunc() - customFuncs["wrap"] = func(input string, offset int) string { - return wrap(input, offset, wrapAt) - } - } - } - - for key, value := range customFuncs { - funcMap[key] = value - } - - w := tabwriter.NewWriter(out, 1, 8, 2, ' ', 0) - t := template.Must(template.New("help").Funcs(funcMap).Parse(templ)) - - if _, err := t.New("helpNameTemplate").Parse(helpNameTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("argsTemplate").Parse(argsTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("usageTemplate").Parse(usageTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("descriptionTemplate").Parse(descriptionTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("visibleCommandTemplate").Parse(visibleCommandTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("copyrightTemplate").Parse(copyrightTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("versionTemplate").Parse(versionTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("visibleFlagCategoryTemplate").Parse(visibleFlagCategoryTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("visibleFlagTemplate").Parse(visibleFlagTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("visiblePersistentFlagTemplate").Parse(visiblePersistentFlagTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("visibleGlobalFlagCategoryTemplate").Parse(strings.ReplaceAll(visibleFlagCategoryTemplate, "OPTIONS", "GLOBAL OPTIONS")); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("authorsTemplate").Parse(authorsTemplate); err != nil { - handleTemplateError(err) - } - - if _, err := t.New("visibleCommandCategoryTemplate").Parse(visibleCommandCategoryTemplate); err != nil { - handleTemplateError(err) - } - - tracef("executing template") - handleTemplateError(t.Execute(w, data)) - - _ = w.Flush() -} - -// DefaultPrintHelp is the default implementation of HelpPrinter. -func DefaultPrintHelp(out io.Writer, templ string, data any) { - HelpPrinterCustom(out, templ, data, nil) -} - -func checkVersion(cmd *Command) bool { - found := false - for _, name := range VersionFlag.Names() { - if cmd.Bool(name) { - found = true - } - } - return found -} - -func checkShellCompleteFlag(c *Command, arguments []string) (bool, []string) { - if (c.parent == nil && !c.EnableShellCompletion) || (c.parent != nil && !c.Root().shellCompletion) { - return false, arguments - } - - pos := len(arguments) - 1 - lastArg := arguments[pos] - - if lastArg != completionFlag { - return false, arguments - } - - for _, arg := range arguments { - // If arguments include "--", shell completion is disabled - // because after "--" only positional arguments are accepted. - // https://unix.stackexchange.com/a/11382 - if arg == "--" { - return false, arguments[:pos] - } - } - - return true, arguments[:pos] -} - -func checkCompletions(ctx context.Context, cmd *Command) bool { - tracef("checking completions on command %[1]q", cmd.Name) - - if !cmd.Root().shellCompletion { - tracef("completion not enabled skipping %[1]q", cmd.Name) - return false - } - - if argsArguments := cmd.Args(); argsArguments.Present() { - name := argsArguments.First() - if cmd := cmd.Command(name); cmd != nil { - // let the command handle the completion - return false - } - } - - tracef("no subcommand found for completion %[1]q", cmd.Name) - - if cmd.ShellComplete != nil { - tracef("running shell completion func for command %[1]q", cmd.Name) - cmd.ShellComplete(ctx, cmd) - } - - return true -} - -func subtract(a, b int) int { - return a - b -} - -func indent(spaces int, v string) string { - pad := strings.Repeat(" ", spaces) - return pad + strings.ReplaceAll(v, "\n", "\n"+pad) -} - -func nindent(spaces int, v string) string { - return "\n" + indent(spaces, v) -} - -func wrap(input string, offset int, wrapAt int) string { - var ss []string - - lines := strings.Split(input, "\n") - - padding := strings.Repeat(" ", offset) - - for i, line := range lines { - if line == "" { - ss = append(ss, line) - } else { - wrapped := wrapLine(line, offset, wrapAt, padding) - if i == 0 { - ss = append(ss, wrapped) - } else { - ss = append(ss, padding+wrapped) - } - - } - } - - return strings.Join(ss, "\n") -} - -func wrapLine(input string, offset int, wrapAt int, padding string) string { - if wrapAt <= offset || len(input) <= wrapAt-offset { - return input - } - - lineWidth := wrapAt - offset - words := strings.Fields(input) - if len(words) == 0 { - return input - } - - wrapped := words[0] - spaceLeft := lineWidth - len(wrapped) - for _, word := range words[1:] { - if len(word)+1 > spaceLeft { - wrapped += "\n" + padding + word - spaceLeft = lineWidth - len(word) - } else { - wrapped += " " + word - spaceLeft -= 1 + len(word) - } - } - - return wrapped -} - -func offset(input string, fixed int) int { - return len(input) + fixed -} - -// this function tries to find the max width of the names column -// so say we have the following rows for help -// -// foo1, foo2, foo3 some string here -// bar1, b2 some other string here -// -// We want to offset the 2nd row usage by some amount so that everything -// is aligned -// -// foo1, foo2, foo3 some string here -// bar1, b2 some other string here -// -// to find that offset we find the length of all the rows and use the max -// to calculate the offset -func offsetCommands(cmds []*Command, fixed int) int { - max := 0 - for _, cmd := range cmds { - s := strings.Join(cmd.Names(), ", ") - if len(s) > max { - max = len(s) - } - } - return max + fixed -} diff --git a/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt b/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt deleted file mode 100644 index 5f3a0c3..0000000 --- a/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -mkdocs-git-revision-date-localized-plugin==1.5.0 -mkdocs-material==9.6.23 -mkdocs==1.6.1 -mkdocs-redirects==1.2.2 -pygments==2.19.2 diff --git a/vendor/github.com/urfave/cli/v3/mkdocs.yml b/vendor/github.com/urfave/cli/v3/mkdocs.yml deleted file mode 100644 index e1eac95..0000000 --- a/vendor/github.com/urfave/cli/v3/mkdocs.yml +++ /dev/null @@ -1,139 +0,0 @@ -# NOTE: the mkdocs dependencies will need to be installed out of -# band until this whole thing gets more automated: -# -# pip install -r mkdocs-requirements.txt -# - -site_name: urfave/cli -site_url: https://cli.urfave.org/ -repo_url: https://github.com/urfave/cli -edit_uri: edit/main/docs/ -nav: - - Home: - - Welcome: index.md - - Contributing: CONTRIBUTING.md - - Code of Conduct: CODE_OF_CONDUCT.md - - Releasing: RELEASING.md - - Security: SECURITY.md - - Migrate v2 to v3: migrate-v2-to-v3.md - - Migrate v1 to v2: migrate-v1-to-v2.md - - v3 Manual: - - Getting Started: v3/getting-started.md - - Migrating From Older Releases: v3/migrating-from-older-releases.md - - Examples: - - Greet: v3/examples/greet.md - - Flags: - - Basics: v3/examples/flags/basics.md - - Value Sources: v3/examples/flags/value-sources.md - - Short Options: v3/examples/flags/short-options.md - - Advanced: v3/examples/flags/advanced.md - - Arguments: - - Basics: v3/examples/arguments/basics.md - - Advanced: v3/examples/arguments/advanced.md - - Subcommands: - - Basics: v3/examples/subcommands/basics.md - - Categories: v3/examples/subcommands/categories.md - - Completions: - - Shell Completions: v3/examples/completions/shell-completions.md - - Customizations: v3/examples/completions/customizations.md - - Help Text: - - Generated Help Text: v3/examples/help/generated-help-text.md - - Suggestions: v3/examples/help/suggestions.md - - Error Handling: - - Exit Codes: v3/examples/exit-codes.md - - Full API Example: v3/examples/full-api-example.md - - v2 Manual: - - Getting Started: v2/getting-started.md - - Migrating to v3: v2/migrating-to-v3.md - - Migrating From Older Releases: v2/migrating-from-older-releases.md - - Examples: - - Greet: v2/examples/greet.md - - Arguments: v2/examples/arguments.md - - Flags: v2/examples/flags.md - - Subcommands: v2/examples/subcommands.md - - Subcommands Categories: v2/examples/subcommands-categories.md - - Exit Codes: v2/examples/exit-codes.md - - Combining Short Options: v2/examples/combining-short-options.md - - Bash Completions: v2/examples/bash-completions.md - - Generated Help Text: v2/examples/generated-help-text.md - - Version Flag: v2/examples/version-flag.md - - Timestamp Flag: v2/examples/timestamp-flag.md - - Suggestions: v2/examples/suggestions.md - - Full API Example: v2/examples/full-api-example.md - - v1 Manual: - - Getting Started: v1/getting-started.md - - Migrating to v2: v1/migrating-to-v2.md - - Examples: - - Greet: v1/examples/greet.md - - Arguments: v1/examples/arguments.md - - Flags: v1/examples/flags.md - - Subcommands: v1/examples/subcommands.md - - Subcommands (Categories): v1/examples/subcommands-categories.md - - Exit Codes: v1/examples/exit-codes.md - - Combining Short Options: v1/examples/combining-short-options.md - - Bash Completions: v1/examples/bash-completions.md - - Generated Help Text: v1/examples/generated-help-text.md - - Version Flag: v1/examples/version-flag.md - -theme: - name: material - palette: - - media: "(prefers-color-scheme: light)" - scheme: default - toggle: - icon: material/brightness-4 - name: dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - toggle: - icon: material/brightness-7 - name: light mode - features: - - content.code.annotate - - navigation.top - - navigation.instant - - navigation.expand - - navigation.sections - - navigation.tabs - - navigation.tabs.sticky - -plugins: - - git-revision-date-localized - - search - - redirects: - redirect_maps: - 'v3/examples/bash-completions.md': 'v3/examples/completions/shell-completions.md' - - tags - -# NOTE: this is the recommended configuration from -# https://squidfunk.github.io/mkdocs-material/setup/extensions/#recommended-configuration -markdown_extensions: - - abbr - - admonition - - attr_list - - def_list - - footnotes - - meta - - md_in_html - - toc: - permalink: true - - pymdownx.arithmatex: - generic: true - - pymdownx.betterem: - smart_enable: all - - pymdownx.caret - - pymdownx.details - - pymdownx.emoji: - emoji_index: !!python/name:material.extensions.emoji.twemoji - emoji_generator: !!python/name:material.extensions.emoji.to_svg - - pymdownx.highlight - - pymdownx.inlinehilite - - pymdownx.keys - - pymdownx.mark - - pymdownx.smartsymbols - - pymdownx.superfences - - pymdownx.tabbed: - alternate_style: true - - pymdownx.tasklist: - custom_checkbox: true - - pymdownx.tilde diff --git a/vendor/github.com/urfave/cli/v3/sort.go b/vendor/github.com/urfave/cli/v3/sort.go deleted file mode 100644 index 23d1c2f..0000000 --- a/vendor/github.com/urfave/cli/v3/sort.go +++ /dev/null @@ -1,29 +0,0 @@ -package cli - -import "unicode" - -// lexicographicLess compares strings alphabetically considering case. -func lexicographicLess(i, j string) bool { - iRunes := []rune(i) - jRunes := []rune(j) - - lenShared := len(iRunes) - if lenShared > len(jRunes) { - lenShared = len(jRunes) - } - - for index := 0; index < lenShared; index++ { - ir := iRunes[index] - jr := jRunes[index] - - if lir, ljr := unicode.ToLower(ir), unicode.ToLower(jr); lir != ljr { - return lir < ljr - } - - if ir != jr { - return ir < jr - } - } - - return i < j -} diff --git a/vendor/github.com/urfave/cli/v3/staticcheck.conf b/vendor/github.com/urfave/cli/v3/staticcheck.conf deleted file mode 100644 index 233d9e7..0000000 --- a/vendor/github.com/urfave/cli/v3/staticcheck.conf +++ /dev/null @@ -1 +0,0 @@ -checks=["all"] diff --git a/vendor/github.com/urfave/cli/v3/suggestions.go b/vendor/github.com/urfave/cli/v3/suggestions.go deleted file mode 100644 index 6f29f12..0000000 --- a/vendor/github.com/urfave/cli/v3/suggestions.go +++ /dev/null @@ -1,147 +0,0 @@ -package cli - -import ( - "math" -) - -const suggestDidYouMeanTemplate = "Did you mean %q?" - -var ( - SuggestFlag SuggestFlagFunc = suggestFlag - SuggestCommand SuggestCommandFunc = suggestCommand - SuggestDidYouMeanTemplate string = suggestDidYouMeanTemplate -) - -type SuggestFlagFunc func(flags []Flag, provided string, hideHelp bool) string - -type SuggestCommandFunc func(commands []*Command, provided string) string - -// jaroDistance is the measure of similarity between two strings. It returns a -// value between 0 and 1, where 1 indicates identical strings and 0 indicates -// completely different strings. -// -// Adapted from https://github.com/xrash/smetrics/blob/5f08fbb34913bc8ab95bb4f2a89a0637ca922666/jaro.go. -func jaroDistance(a, b string) float64 { - if len(a) == 0 && len(b) == 0 { - return 1 - } - if len(a) == 0 || len(b) == 0 { - return 0 - } - - lenA := float64(len(a)) - lenB := float64(len(b)) - hashA := make([]bool, len(a)) - hashB := make([]bool, len(b)) - maxDistance := int(math.Max(0, math.Floor(math.Max(lenA, lenB)/2.0)-1)) - - var matches float64 - for i := 0; i < len(a); i++ { - start := int(math.Max(0, float64(i-maxDistance))) - end := int(math.Min(lenB-1, float64(i+maxDistance))) - - for j := start; j <= end; j++ { - if hashB[j] { - continue - } - if a[i] == b[j] { - hashA[i] = true - hashB[j] = true - matches++ - break - } - } - } - if matches == 0 { - return 0 - } - - var transpositions float64 - var j int - for i := 0; i < len(a); i++ { - if !hashA[i] { - continue - } - for !hashB[j] { - j++ - } - if a[i] != b[j] { - transpositions++ - } - j++ - } - - transpositions /= 2 - return ((matches / lenA) + (matches / lenB) + ((matches - transpositions) / matches)) / 3.0 -} - -// jaroWinkler is more accurate when strings have a common prefix up to a -// defined maximum length. -// -// Adapted from https://github.com/xrash/smetrics/blob/5f08fbb34913bc8ab95bb4f2a89a0637ca922666/jaro-winkler.go. -func jaroWinkler(a, b string) float64 { - const ( - boostThreshold = 0.7 - prefixSize = 4 - ) - jaroDist := jaroDistance(a, b) - if jaroDist <= boostThreshold { - return jaroDist - } - - prefix := int(math.Min(float64(len(a)), math.Min(float64(prefixSize), float64(len(b))))) - - var prefixMatch float64 - for i := 0; i < prefix; i++ { - if a[i] == b[i] { - prefixMatch++ - } else { - break - } - } - return jaroDist + 0.1*prefixMatch*(1.0-jaroDist) -} - -func suggestFlag(flags []Flag, provided string, hideHelp bool) string { - distance := 0.0 - suggestion := "" - - for _, flag := range flags { - flagNames := flag.Names() - if !hideHelp && HelpFlag != nil { - flagNames = append(flagNames, HelpFlag.Names()...) - } - for _, name := range flagNames { - newDistance := jaroWinkler(name, provided) - if newDistance > distance { - distance = newDistance - suggestion = name - } - } - } - - if len(suggestion) == 1 { - suggestion = "-" + suggestion - } else if len(suggestion) > 1 { - suggestion = "--" + suggestion - } - - return suggestion -} - -// suggestCommand takes a list of commands and a provided string to suggest a -// command name -func suggestCommand(commands []*Command, provided string) (suggestion string) { - distance := 0.0 - for _, command := range commands { - for _, name := range append(command.Names(), helpName, helpAlias) { - newDistance := jaroWinkler(name, provided) - if newDistance > distance { - distance = newDistance - suggestion = name - } - } - } - - return suggestion -} diff --git a/vendor/github.com/urfave/cli/v3/template.go b/vendor/github.com/urfave/cli/v3/template.go deleted file mode 100644 index dd144e7..0000000 --- a/vendor/github.com/urfave/cli/v3/template.go +++ /dev/null @@ -1,125 +0,0 @@ -package cli - -var ( - helpNameTemplate = `{{$v := offset .FullName 6}}{{wrap .FullName 3}}{{if .Usage}} - {{wrap .Usage $v}}{{end}}` - argsTemplate = `{{if .Arguments}}{{range .Arguments}}{{.Usage}} {{end}}{{end}}` - usageTemplate = `{{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.FullName}}{{if .VisibleFlags}} [options]{{end}}{{if .VisibleCommands}} [command [command options]]{{end}}{{if .ArgsUsage}} {{.ArgsUsage}}{{else}}{{if .Arguments}} {{template "argsTemplate" .}}{{end}}{{end}}{{end}}` - descriptionTemplate = `{{wrap .Description 3}}` - authorsTemplate = `{{with $length := len .Authors}}{{if ne 1 $length}}S{{end}}{{end}}: - {{range $index, $author := .Authors}}{{if $index}} - {{end}}{{$author}}{{end}}` -) - -var visibleCommandTemplate = `{{ $cv := offsetCommands .VisibleCommands 5}}{{range .VisibleCommands}} - {{$s := join .Names ", "}}{{$s}}{{ $sp := subtract $cv (offset $s 3) }}{{ indent $sp ""}}{{wrap .Usage $cv}}{{end}}` - -var visibleCommandCategoryTemplate = `{{range .VisibleCategories}}{{if .Name}} - - {{.Name}}:{{range .VisibleCommands}} - {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{else}}{{template "visibleCommandTemplate" .}}{{end}}{{end}}` - -var visibleFlagCategoryTemplate = `{{range .VisibleFlagCategories}} - {{if .Name}}{{.Name}} - - {{end}}{{$flglen := len .Flags}}{{range $i, $e := .Flags}}{{if eq (subtract $flglen $i) 1}}{{$e}} -{{else}}{{$e}} - {{end}}{{end}}{{end}}` - -var visibleFlagTemplate = `{{range $i, $e := .VisibleFlags}} - {{wrap $e.String 6}}{{end}}` - -var visiblePersistentFlagTemplate = `{{range $i, $e := .VisiblePersistentFlags}} - {{wrap $e.String 6}}{{end}}` - -var versionTemplate = `{{if .Version}}{{if not .HideVersion}} - -VERSION: - {{.Version}}{{end}}{{end}}` - -var copyrightTemplate = `{{wrap .Copyright 3}}` - -// RootCommandHelpTemplate is the text template for the Default help topic. -// cli.go uses text/template to render templates. You can -// render custom help text by setting this variable. -var RootCommandHelpTemplate = `NAME: - {{template "helpNameTemplate" .}} - -USAGE: - {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.FullName}} {{if .VisibleFlags}}[global options]{{end}}{{if .VisibleCommands}} [command [command options]]{{end}}{{if .ArgsUsage}} {{.ArgsUsage}}{{else}}{{if .Arguments}} [arguments...]{{end}}{{end}}{{end}}{{if .Version}}{{if not .HideVersion}} - -VERSION: - {{.Version}}{{end}}{{end}}{{if .Description}} - -DESCRIPTION: - {{template "descriptionTemplate" .}}{{end}} -{{- if len .Authors}} - -AUTHOR{{template "authorsTemplate" .}}{{end}}{{if .VisibleCommands}} - -COMMANDS:{{template "visibleCommandCategoryTemplate" .}}{{end}}{{if .VisibleFlagCategories}} - -GLOBAL OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}} - -GLOBAL OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}{{if .Copyright}} - -COPYRIGHT: - {{template "copyrightTemplate" .}}{{end}} -` - -// CommandHelpTemplate is the text template for the command help topic. -// cli.go uses text/template to render templates. You can -// render custom help text by setting this variable. -var CommandHelpTemplate = `NAME: - {{template "helpNameTemplate" .}} - -USAGE: - {{template "usageTemplate" .}}{{if .Category}} - -CATEGORY: - {{.Category}}{{end}}{{if .Description}} - -DESCRIPTION: - {{template "descriptionTemplate" .}}{{end}}{{if .VisibleFlagCategories}} - -OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}} - -OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}{{if .VisiblePersistentFlags}} - -GLOBAL OPTIONS:{{template "visiblePersistentFlagTemplate" .}}{{end}} -` - -// SubcommandHelpTemplate is the text template for the subcommand help topic. -// cli.go uses text/template to render templates. You can -// render custom help text by setting this variable. -var SubcommandHelpTemplate = `NAME: - {{template "helpNameTemplate" .}} - -USAGE: - {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.FullName}}{{if .VisibleCommands}} [command [command options]]{{end}}{{if .ArgsUsage}} {{.ArgsUsage}}{{else}}{{if .Arguments}} [arguments...]{{end}}{{end}}{{end}}{{if .Category}} - -CATEGORY: - {{.Category}}{{end}}{{if .Description}} - -DESCRIPTION: - {{template "descriptionTemplate" .}}{{end}}{{if .VisibleCommands}} - -COMMANDS:{{template "visibleCommandTemplate" .}}{{end}}{{if .VisibleFlagCategories}} - -OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}} - -OPTIONS:{{template "visibleFlagTemplate" .}}{{end}} -` - -var FishCompletionTemplate = `# {{ .Command.Name }} fish shell completion - -function __fish_{{ .Command.Name }}_no_subcommand --description 'Test if there has been any subcommand yet' - for i in (commandline -opc) - if contains -- $i{{ range $v := .AllCommands }} {{ $v }}{{ end }} - return 1 - end - end - return 0 -end - -{{ range $v := .Completions }}{{ $v }} -{{ end }}` diff --git a/vendor/github.com/urfave/cli/v3/value_source.go b/vendor/github.com/urfave/cli/v3/value_source.go deleted file mode 100644 index 44b0173..0000000 --- a/vendor/github.com/urfave/cli/v3/value_source.go +++ /dev/null @@ -1,257 +0,0 @@ -package cli - -import ( - "fmt" - "os" - "strings" -) - -// ValueSource is a source which can be used to look up a value, -// typically for use with a cli.Flag -type ValueSource interface { - fmt.Stringer - fmt.GoStringer - - // Lookup returns the value from the source and if it was found - // or returns an empty string and false - Lookup() (string, bool) -} - -// EnvValueSource is to specifically detect env sources when -// printing help text -type EnvValueSource interface { - IsFromEnv() bool - Key() string -} - -// MapSource is a source which can be used to look up a value -// based on a key -// typically for use with a cli.Flag -type MapSource interface { - fmt.Stringer - fmt.GoStringer - - // Lookup returns the value from the source based on key - // and if it was found - // or returns an empty string and false - Lookup(string) (any, bool) -} - -// ValueSourceChain contains an ordered series of ValueSource that -// allows for lookup where the first ValueSource to resolve is -// returned -type ValueSourceChain struct { - Chain []ValueSource -} - -func NewValueSourceChain(src ...ValueSource) ValueSourceChain { - return ValueSourceChain{ - Chain: src, - } -} - -func (vsc *ValueSourceChain) Append(other ValueSourceChain) { - vsc.Chain = append(vsc.Chain, other.Chain...) -} - -func (vsc *ValueSourceChain) EnvKeys() []string { - vals := []string{} - - for _, src := range vsc.Chain { - if v, ok := src.(EnvValueSource); ok && v.IsFromEnv() { - vals = append(vals, v.Key()) - } - } - - return vals -} - -func (vsc *ValueSourceChain) String() string { - s := []string{} - - for _, vs := range vsc.Chain { - s = append(s, vs.String()) - } - - return strings.Join(s, ",") -} - -func (vsc *ValueSourceChain) GoString() string { - s := []string{} - - for _, vs := range vsc.Chain { - s = append(s, vs.GoString()) - } - - return fmt.Sprintf("&ValueSourceChain{Chain:{%[1]s}}", strings.Join(s, ",")) -} - -func (vsc *ValueSourceChain) Lookup() (string, bool) { - s, _, ok := vsc.LookupWithSource() - return s, ok -} - -func (vsc *ValueSourceChain) LookupWithSource() (string, ValueSource, bool) { - for _, src := range vsc.Chain { - if value, found := src.Lookup(); found { - return value, src, true - } - } - - return "", nil, false -} - -// envVarValueSource encapsulates a ValueSource from an environment variable -type envVarValueSource struct { - key string -} - -func (e *envVarValueSource) Lookup() (string, bool) { - return os.LookupEnv(strings.TrimSpace(string(e.key))) -} - -func (e *envVarValueSource) IsFromEnv() bool { - return true -} - -func (e *envVarValueSource) Key() string { - return e.key -} - -func (e *envVarValueSource) String() string { return fmt.Sprintf("environment variable %[1]q", e.key) } -func (e *envVarValueSource) GoString() string { - return fmt.Sprintf("&envVarValueSource{Key:%[1]q}", e.key) -} - -func EnvVar(key string) ValueSource { - return &envVarValueSource{ - key: key, - } -} - -// EnvVars is a helper function to encapsulate a number of -// envVarValueSource together as a ValueSourceChain -func EnvVars(keys ...string) ValueSourceChain { - vsc := ValueSourceChain{Chain: []ValueSource{}} - - for _, key := range keys { - vsc.Chain = append(vsc.Chain, EnvVar(key)) - } - - return vsc -} - -// fileValueSource encapsulates a ValueSource from a file -type fileValueSource struct { - Path string -} - -func (f *fileValueSource) Lookup() (string, bool) { - data, err := os.ReadFile(f.Path) - return string(data), err == nil -} - -func (f *fileValueSource) String() string { return fmt.Sprintf("file %[1]q", f.Path) } -func (f *fileValueSource) GoString() string { - return fmt.Sprintf("&fileValueSource{Path:%[1]q}", f.Path) -} - -func File(path string) ValueSource { - return &fileValueSource{Path: path} -} - -// Files is a helper function to encapsulate a number of -// fileValueSource together as a ValueSourceChain -func Files(paths ...string) ValueSourceChain { - vsc := ValueSourceChain{Chain: []ValueSource{}} - - for _, path := range paths { - vsc.Chain = append(vsc.Chain, File(path)) - } - - return vsc -} - -type mapSource struct { - name string - m map[any]any -} - -func NewMapSource(name string, m map[any]any) MapSource { - return &mapSource{ - name: name, - m: m, - } -} - -func (ms *mapSource) String() string { return fmt.Sprintf("map source %[1]q", ms.name) } -func (ms *mapSource) GoString() string { - return fmt.Sprintf("&mapSource{name:%[1]q}", ms.name) -} - -// Lookup returns a value from the map source. The lookup name may be a dot-separated path into the map. -// If that is the case, it will recursively traverse the map based on the '.' delimited sections to find -// a nested value for the key. -func (ms *mapSource) Lookup(name string) (any, bool) { - sections := strings.Split(name, ".") - if name == "" || len(sections) == 0 { - return nil, false - } - - node := ms.m - - // traverse into the map based on the dot-separated sections - if len(sections) >= 2 { // the last section is the value we want, we will return it directly at the end - for _, section := range sections[:len(sections)-1] { - child, ok := node[section] - if !ok { - return nil, false - } - - switch child := child.(type) { - case map[string]any: - node = make(map[any]any, len(child)) - for k, v := range child { - node[k] = v - } - case map[any]any: - node = child - default: - return nil, false - } - } - } - - if val, ok := node[sections[len(sections)-1]]; ok { - return val, true - } - return nil, false -} - -type mapValueSource struct { - key string - ms MapSource -} - -func NewMapValueSource(key string, ms MapSource) ValueSource { - return &mapValueSource{ - key: key, - ms: ms, - } -} - -func (mvs *mapValueSource) String() string { - return fmt.Sprintf("key %[1]q from %[2]s", mvs.key, mvs.ms.String()) -} - -func (mvs *mapValueSource) GoString() string { - return fmt.Sprintf("&mapValueSource{key:%[1]q, src:%[2]s}", mvs.key, mvs.ms.GoString()) -} - -func (mvs *mapValueSource) Lookup() (string, bool) { - if v, ok := mvs.ms.Lookup(mvs.key); !ok { - return "", false - } else { - return fmt.Sprintf("%+v", v), true - } -} diff --git a/vendor/github.com/xo/terminfo/.gitignore b/vendor/github.com/xo/terminfo/.gitignore deleted file mode 100644 index 368e0c0..0000000 --- a/vendor/github.com/xo/terminfo/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/.cache/ - -/cmd/infocmp/infocmp -/cmd/infocmp/.out/ - -/infocmp -/.out/ - -*.txt diff --git a/vendor/github.com/xo/terminfo/LICENSE b/vendor/github.com/xo/terminfo/LICENSE deleted file mode 100644 index 197dadb..0000000 --- a/vendor/github.com/xo/terminfo/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Anmol Sethi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/xo/terminfo/README.md b/vendor/github.com/xo/terminfo/README.md deleted file mode 100644 index e5002d2..0000000 --- a/vendor/github.com/xo/terminfo/README.md +++ /dev/null @@ -1,139 +0,0 @@ -# About terminfo [![GoDoc][1]][2] - -Package `terminfo` provides a pure-Go implementation of reading information -from the terminfo database. - -`terminfo` is meant as a replacement for `ncurses` in simple Go programs. - -## Installing - -Install in the usual Go way: - -```sh -$ go get -u github.com/xo/terminfo -``` - -## Using - -Please see the [GoDoc API listing][2] for more information on using `terminfo`. - -```go -// _examples/simple/main.go -package main - -import ( - "bytes" - "fmt" - "log" - "os" - "os/signal" - "strings" - "sync" - "syscall" - - "github.com/xo/terminfo" -) - -func main() { - //r := rand.New(nil) - - // load terminfo - ti, err := terminfo.LoadFromEnv() - if err != nil { - log.Fatal(err) - } - - // cleanup - defer func() { - err := recover() - termreset(ti) - if err != nil { - log.Fatal(err) - } - }() - - terminit(ti) - termtitle(ti, "simple example!") - termputs(ti, 3, 3, "Ctrl-C to exit") - maxColors := termcolors(ti) - if maxColors > 256 { - maxColors = 256 - } - for i := 0; i < maxColors; i++ { - termputs(ti, 5+i/16, 5+i%16, ti.Colorf(i, 0, "█")) - } - - // wait for signal - sigs := make(chan os.Signal, 1) - signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) - <-sigs -} - -// terminit initializes the special CA mode on the terminal, and makes the -// cursor invisible. -func terminit(ti *terminfo.Terminfo) { - buf := new(bytes.Buffer) - // set the cursor invisible - ti.Fprintf(buf, terminfo.CursorInvisible) - // enter special mode - ti.Fprintf(buf, terminfo.EnterCaMode) - // clear the screen - ti.Fprintf(buf, terminfo.ClearScreen) - os.Stdout.Write(buf.Bytes()) -} - -// termreset is the inverse of terminit. -func termreset(ti *terminfo.Terminfo) { - buf := new(bytes.Buffer) - ti.Fprintf(buf, terminfo.ExitCaMode) - ti.Fprintf(buf, terminfo.CursorNormal) - os.Stdout.Write(buf.Bytes()) -} - -// termputs puts a string at row, col, interpolating v. -func termputs(ti *terminfo.Terminfo, row, col int, s string, v ...interface{}) { - buf := new(bytes.Buffer) - ti.Fprintf(buf, terminfo.CursorAddress, row, col) - fmt.Fprintf(buf, s, v...) - os.Stdout.Write(buf.Bytes()) -} - -// sl is the status line terminfo. -var sl *terminfo.Terminfo - -// termtitle sets the window title. -func termtitle(ti *terminfo.Terminfo, s string) { - var once sync.Once - once.Do(func() { - if ti.Has(terminfo.HasStatusLine) { - return - } - // load the sl xterm if terminal is an xterm or has COLORTERM - if strings.Contains(strings.ToLower(os.Getenv("TERM")), "xterm") || os.Getenv("COLORTERM") == "truecolor" { - sl, _ = terminfo.Load("xterm+sl") - } - }) - if sl != nil { - ti = sl - } - if !ti.Has(terminfo.HasStatusLine) { - return - } - buf := new(bytes.Buffer) - ti.Fprintf(buf, terminfo.ToStatusLine) - fmt.Fprint(buf, s) - ti.Fprintf(buf, terminfo.FromStatusLine) - os.Stdout.Write(buf.Bytes()) -} - -// termcolors returns the maximum colors available for the terminal. -func termcolors(ti *terminfo.Terminfo) int { - if colors := ti.Num(terminfo.MaxColors); colors > 0 { - return colors - } - return int(terminfo.ColorLevelBasic) -} -``` - -[1]: https://godoc.org/github.com/xo/terminfo?status.svg -[2]: https://godoc.org/github.com/xo/terminfo diff --git a/vendor/github.com/xo/terminfo/caps.go b/vendor/github.com/xo/terminfo/caps.go deleted file mode 100644 index e5e1d41..0000000 --- a/vendor/github.com/xo/terminfo/caps.go +++ /dev/null @@ -1,31 +0,0 @@ -package terminfo - -// BoolCapName returns the bool capability name. -func BoolCapName(i int) string { - return boolCapNames[2*i] -} - -// BoolCapNameShort returns the short bool capability name. -func BoolCapNameShort(i int) string { - return boolCapNames[2*i+1] -} - -// NumCapName returns the num capability name. -func NumCapName(i int) string { - return numCapNames[2*i] -} - -// NumCapNameShort returns the short num capability name. -func NumCapNameShort(i int) string { - return numCapNames[2*i+1] -} - -// StringCapName returns the string capability name. -func StringCapName(i int) string { - return stringCapNames[2*i] -} - -// StringCapNameShort returns the short string capability name. -func StringCapNameShort(i int) string { - return stringCapNames[2*i+1] -} diff --git a/vendor/github.com/xo/terminfo/capvals.go b/vendor/github.com/xo/terminfo/capvals.go deleted file mode 100644 index 0c2274e..0000000 --- a/vendor/github.com/xo/terminfo/capvals.go +++ /dev/null @@ -1,1525 +0,0 @@ -package terminfo - -// Code generated by gen.go. DO NOT EDIT. -// Bool capabilities. -const ( - // The AutoLeftMargin [auto_left_margin, bw] bool capability indicates cub1 wraps from column 0 to last column. - AutoLeftMargin = iota - // The AutoRightMargin [auto_right_margin, am] bool capability indicates terminal has automatic margins. - AutoRightMargin - // The NoEscCtlc [no_esc_ctlc, xsb] bool capability indicates beehive (f1=escape, f2=ctrl C). - NoEscCtlc - // The CeolStandoutGlitch [ceol_standout_glitch, xhp] bool capability indicates standout not erased by overwriting (hp). - CeolStandoutGlitch - // The EatNewlineGlitch [eat_newline_glitch, xenl] bool capability indicates newline ignored after 80 cols (concept). - EatNewlineGlitch - // The EraseOverstrike [erase_overstrike, eo] bool capability indicates can erase overstrikes with a blank. - EraseOverstrike - // The GenericType [generic_type, gn] bool capability indicates generic line type. - GenericType - // The HardCopy [hard_copy, hc] bool capability indicates hardcopy terminal. - HardCopy - // The HasMetaKey [has_meta_key, km] bool capability indicates Has a meta key (i.e., sets 8th-bit). - HasMetaKey - // The HasStatusLine [has_status_line, hs] bool capability indicates has extra status line. - HasStatusLine - // The InsertNullGlitch [insert_null_glitch, in] bool capability indicates insert mode distinguishes nulls. - InsertNullGlitch - // The MemoryAbove [memory_above, da] bool capability indicates display may be retained above the screen. - MemoryAbove - // The MemoryBelow [memory_below, db] bool capability indicates display may be retained below the screen. - MemoryBelow - // The MoveInsertMode [move_insert_mode, mir] bool capability indicates safe to move while in insert mode. - MoveInsertMode - // The MoveStandoutMode [move_standout_mode, msgr] bool capability indicates safe to move while in standout mode. - MoveStandoutMode - // The OverStrike [over_strike, os] bool capability indicates terminal can overstrike. - OverStrike - // The StatusLineEscOk [status_line_esc_ok, eslok] bool capability indicates escape can be used on the status line. - StatusLineEscOk - // The DestTabsMagicSmso [dest_tabs_magic_smso, xt] bool capability indicates tabs destructive, magic so char (t1061). - DestTabsMagicSmso - // The TildeGlitch [tilde_glitch, hz] bool capability indicates cannot print ~'s (Hazeltine). - TildeGlitch - // The TransparentUnderline [transparent_underline, ul] bool capability indicates underline character overstrikes. - TransparentUnderline - // The XonXoff [xon_xoff, xon] bool capability indicates terminal uses xon/xoff handshaking. - XonXoff - // The NeedsXonXoff [needs_xon_xoff, nxon] bool capability indicates padding will not work, xon/xoff required. - NeedsXonXoff - // The PrtrSilent [prtr_silent, mc5i] bool capability indicates printer will not echo on screen. - PrtrSilent - // The HardCursor [hard_cursor, chts] bool capability indicates cursor is hard to see. - HardCursor - // The NonRevRmcup [non_rev_rmcup, nrrmc] bool capability indicates smcup does not reverse rmcup. - NonRevRmcup - // The NoPadChar [no_pad_char, npc] bool capability indicates pad character does not exist. - NoPadChar - // The NonDestScrollRegion [non_dest_scroll_region, ndscr] bool capability indicates scrolling region is non-destructive. - NonDestScrollRegion - // The CanChange [can_change, ccc] bool capability indicates terminal can re-define existing colors. - CanChange - // The BackColorErase [back_color_erase, bce] bool capability indicates screen erased with background color. - BackColorErase - // The HueLightnessSaturation [hue_lightness_saturation, hls] bool capability indicates terminal uses only HLS color notation (Tektronix). - HueLightnessSaturation - // The ColAddrGlitch [col_addr_glitch, xhpa] bool capability indicates only positive motion for hpa/mhpa caps. - ColAddrGlitch - // The CrCancelsMicroMode [cr_cancels_micro_mode, crxm] bool capability indicates using cr turns off micro mode. - CrCancelsMicroMode - // The HasPrintWheel [has_print_wheel, daisy] bool capability indicates printer needs operator to change character set. - HasPrintWheel - // The RowAddrGlitch [row_addr_glitch, xvpa] bool capability indicates only positive motion for vpa/mvpa caps. - RowAddrGlitch - // The SemiAutoRightMargin [semi_auto_right_margin, sam] bool capability indicates printing in last column causes cr. - SemiAutoRightMargin - // The CpiChangesRes [cpi_changes_res, cpix] bool capability indicates changing character pitch changes resolution. - CpiChangesRes - // The LpiChangesRes [lpi_changes_res, lpix] bool capability indicates changing line pitch changes resolution. - LpiChangesRes - // The BackspacesWithBs [backspaces_with_bs, OTbs] bool capability indicates uses ^H to move left. - BackspacesWithBs - // The CrtNoScrolling [crt_no_scrolling, OTns] bool capability indicates crt cannot scroll. - CrtNoScrolling - // The NoCorrectlyWorkingCr [no_correctly_working_cr, OTnc] bool capability indicates no way to go to start of line. - NoCorrectlyWorkingCr - // The GnuHasMetaKey [gnu_has_meta_key, OTMT] bool capability indicates has meta key. - GnuHasMetaKey - // The LinefeedIsNewline [linefeed_is_newline, OTNL] bool capability indicates move down with \n. - LinefeedIsNewline - // The HasHardwareTabs [has_hardware_tabs, OTpt] bool capability indicates has 8-char tabs invoked with ^I. - HasHardwareTabs - // The ReturnDoesClrEol [return_does_clr_eol, OTxr] bool capability indicates return clears the line. - ReturnDoesClrEol -) - -// Num capabilities. -const ( - // The Columns [columns, cols] num capability is number of columns in a line. - Columns = iota - // The InitTabs [init_tabs, it] num capability is tabs initially every # spaces. - InitTabs - // The Lines [lines, lines] num capability is number of lines on screen or page. - Lines - // The LinesOfMemory [lines_of_memory, lm] num capability is lines of memory if > line. 0 means varies. - LinesOfMemory - // The MagicCookieGlitch [magic_cookie_glitch, xmc] num capability is number of blank characters left by smso or rmso. - MagicCookieGlitch - // The PaddingBaudRate [padding_baud_rate, pb] num capability is lowest baud rate where padding needed. - PaddingBaudRate - // The VirtualTerminal [virtual_terminal, vt] num capability is virtual terminal number (CB/unix). - VirtualTerminal - // The WidthStatusLine [width_status_line, wsl] num capability is number of columns in status line. - WidthStatusLine - // The NumLabels [num_labels, nlab] num capability is number of labels on screen. - NumLabels - // The LabelHeight [label_height, lh] num capability is rows in each label. - LabelHeight - // The LabelWidth [label_width, lw] num capability is columns in each label. - LabelWidth - // The MaxAttributes [max_attributes, ma] num capability is maximum combined attributes terminal can handle. - MaxAttributes - // The MaximumWindows [maximum_windows, wnum] num capability is maximum number of definable windows. - MaximumWindows - // The MaxColors [max_colors, colors] num capability is maximum number of colors on screen. - MaxColors - // The MaxPairs [max_pairs, pairs] num capability is maximum number of color-pairs on the screen. - MaxPairs - // The NoColorVideo [no_color_video, ncv] num capability is video attributes that cannot be used with colors. - NoColorVideo - // The BufferCapacity [buffer_capacity, bufsz] num capability is numbers of bytes buffered before printing. - BufferCapacity - // The DotVertSpacing [dot_vert_spacing, spinv] num capability is spacing of pins vertically in pins per inch. - DotVertSpacing - // The DotHorzSpacing [dot_horz_spacing, spinh] num capability is spacing of dots horizontally in dots per inch. - DotHorzSpacing - // The MaxMicroAddress [max_micro_address, maddr] num capability is maximum value in micro_..._address. - MaxMicroAddress - // The MaxMicroJump [max_micro_jump, mjump] num capability is maximum value in parm_..._micro. - MaxMicroJump - // The MicroColSize [micro_col_size, mcs] num capability is character step size when in micro mode. - MicroColSize - // The MicroLineSize [micro_line_size, mls] num capability is line step size when in micro mode. - MicroLineSize - // The NumberOfPins [number_of_pins, npins] num capability is numbers of pins in print-head. - NumberOfPins - // The OutputResChar [output_res_char, orc] num capability is horizontal resolution in units per line. - OutputResChar - // The OutputResLine [output_res_line, orl] num capability is vertical resolution in units per line. - OutputResLine - // The OutputResHorzInch [output_res_horz_inch, orhi] num capability is horizontal resolution in units per inch. - OutputResHorzInch - // The OutputResVertInch [output_res_vert_inch, orvi] num capability is vertical resolution in units per inch. - OutputResVertInch - // The PrintRate [print_rate, cps] num capability is print rate in characters per second. - PrintRate - // The WideCharSize [wide_char_size, widcs] num capability is character step size when in double wide mode. - WideCharSize - // The Buttons [buttons, btns] num capability is number of buttons on mouse. - Buttons - // The BitImageEntwining [bit_image_entwining, bitwin] num capability is number of passes for each bit-image row. - BitImageEntwining - // The BitImageType [bit_image_type, bitype] num capability is type of bit-image device. - BitImageType - // The MagicCookieGlitchUl [magic_cookie_glitch_ul, OTug] num capability is number of blanks left by ul. - MagicCookieGlitchUl - // The CarriageReturnDelay [carriage_return_delay, OTdC] num capability is pad needed for CR. - CarriageReturnDelay - // The NewLineDelay [new_line_delay, OTdN] num capability is pad needed for LF. - NewLineDelay - // The BackspaceDelay [backspace_delay, OTdB] num capability is padding required for ^H. - BackspaceDelay - // The HorizontalTabDelay [horizontal_tab_delay, OTdT] num capability is padding required for ^I. - HorizontalTabDelay - // The NumberOfFunctionKeys [number_of_function_keys, OTkn] num capability is count of function keys. - NumberOfFunctionKeys -) - -// String capabilities. -const ( - // The BackTab [back_tab, cbt] string capability is the back tab (P). - BackTab = iota - // The Bell [bell, bel] string capability is the audible signal (bell) (P). - Bell - // The CarriageReturn [carriage_return, cr] string capability is the carriage return (P*) (P*). - CarriageReturn - // The ChangeScrollRegion [change_scroll_region, csr] string capability is the change region to line #1 to line #2 (P). - ChangeScrollRegion - // The ClearAllTabs [clear_all_tabs, tbc] string capability is the clear all tab stops (P). - ClearAllTabs - // The ClearScreen [clear_screen, clear] string capability is the clear screen and home cursor (P*). - ClearScreen - // The ClrEol [clr_eol, el] string capability is the clear to end of line (P). - ClrEol - // The ClrEos [clr_eos, ed] string capability is the clear to end of screen (P*). - ClrEos - // The ColumnAddress [column_address, hpa] string capability is the horizontal position #1, absolute (P). - ColumnAddress - // The CommandCharacter [command_character, cmdch] string capability is the terminal settable cmd character in prototype !?. - CommandCharacter - // The CursorAddress [cursor_address, cup] string capability is the move to row #1 columns #2. - CursorAddress - // The CursorDown [cursor_down, cud1] string capability is the down one line. - CursorDown - // The CursorHome [cursor_home, home] string capability is the home cursor (if no cup). - CursorHome - // The CursorInvisible [cursor_invisible, civis] string capability is the make cursor invisible. - CursorInvisible - // The CursorLeft [cursor_left, cub1] string capability is the move left one space. - CursorLeft - // The CursorMemAddress [cursor_mem_address, mrcup] string capability is the memory relative cursor addressing, move to row #1 columns #2. - CursorMemAddress - // The CursorNormal [cursor_normal, cnorm] string capability is the make cursor appear normal (undo civis/cvvis). - CursorNormal - // The CursorRight [cursor_right, cuf1] string capability is the non-destructive space (move right one space). - CursorRight - // The CursorToLl [cursor_to_ll, ll] string capability is the last line, first column (if no cup). - CursorToLl - // The CursorUp [cursor_up, cuu1] string capability is the up one line. - CursorUp - // The CursorVisible [cursor_visible, cvvis] string capability is the make cursor very visible. - CursorVisible - // The DeleteCharacter [delete_character, dch1] string capability is the delete character (P*). - DeleteCharacter - // The DeleteLine [delete_line, dl1] string capability is the delete line (P*). - DeleteLine - // The DisStatusLine [dis_status_line, dsl] string capability is the disable status line. - DisStatusLine - // The DownHalfLine [down_half_line, hd] string capability is the half a line down. - DownHalfLine - // The EnterAltCharsetMode [enter_alt_charset_mode, smacs] string capability is the start alternate character set (P). - EnterAltCharsetMode - // The EnterBlinkMode [enter_blink_mode, blink] string capability is the turn on blinking. - EnterBlinkMode - // The EnterBoldMode [enter_bold_mode, bold] string capability is the turn on bold (extra bright) mode. - EnterBoldMode - // The EnterCaMode [enter_ca_mode, smcup] string capability is the string to start programs using cup. - EnterCaMode - // The EnterDeleteMode [enter_delete_mode, smdc] string capability is the enter delete mode. - EnterDeleteMode - // The EnterDimMode [enter_dim_mode, dim] string capability is the turn on half-bright mode. - EnterDimMode - // The EnterInsertMode [enter_insert_mode, smir] string capability is the enter insert mode. - EnterInsertMode - // The EnterSecureMode [enter_secure_mode, invis] string capability is the turn on blank mode (characters invisible). - EnterSecureMode - // The EnterProtectedMode [enter_protected_mode, prot] string capability is the turn on protected mode. - EnterProtectedMode - // The EnterReverseMode [enter_reverse_mode, rev] string capability is the turn on reverse video mode. - EnterReverseMode - // The EnterStandoutMode [enter_standout_mode, smso] string capability is the begin standout mode. - EnterStandoutMode - // The EnterUnderlineMode [enter_underline_mode, smul] string capability is the begin underline mode. - EnterUnderlineMode - // The EraseChars [erase_chars, ech] string capability is the erase #1 characters (P). - EraseChars - // The ExitAltCharsetMode [exit_alt_charset_mode, rmacs] string capability is the end alternate character set (P). - ExitAltCharsetMode - // The ExitAttributeMode [exit_attribute_mode, sgr0] string capability is the turn off all attributes. - ExitAttributeMode - // The ExitCaMode [exit_ca_mode, rmcup] string capability is the strings to end programs using cup. - ExitCaMode - // The ExitDeleteMode [exit_delete_mode, rmdc] string capability is the end delete mode. - ExitDeleteMode - // The ExitInsertMode [exit_insert_mode, rmir] string capability is the exit insert mode. - ExitInsertMode - // The ExitStandoutMode [exit_standout_mode, rmso] string capability is the exit standout mode. - ExitStandoutMode - // The ExitUnderlineMode [exit_underline_mode, rmul] string capability is the exit underline mode. - ExitUnderlineMode - // The FlashScreen [flash_screen, flash] string capability is the visible bell (may not move cursor). - FlashScreen - // The FormFeed [form_feed, ff] string capability is the hardcopy terminal page eject (P*). - FormFeed - // The FromStatusLine [from_status_line, fsl] string capability is the return from status line. - FromStatusLine - // The Init1string [init_1string, is1] string capability is the initialization string. - Init1string - // The Init2string [init_2string, is2] string capability is the initialization string. - Init2string - // The Init3string [init_3string, is3] string capability is the initialization string. - Init3string - // The InitFile [init_file, if] string capability is the name of initialization file. - InitFile - // The InsertCharacter [insert_character, ich1] string capability is the insert character (P). - InsertCharacter - // The InsertLine [insert_line, il1] string capability is the insert line (P*). - InsertLine - // The InsertPadding [insert_padding, ip] string capability is the insert padding after inserted character. - InsertPadding - // The KeyBackspace [key_backspace, kbs] string capability is the backspace key. - KeyBackspace - // The KeyCatab [key_catab, ktbc] string capability is the clear-all-tabs key. - KeyCatab - // The KeyClear [key_clear, kclr] string capability is the clear-screen or erase key. - KeyClear - // The KeyCtab [key_ctab, kctab] string capability is the clear-tab key. - KeyCtab - // The KeyDc [key_dc, kdch1] string capability is the delete-character key. - KeyDc - // The KeyDl [key_dl, kdl1] string capability is the delete-line key. - KeyDl - // The KeyDown [key_down, kcud1] string capability is the down-arrow key. - KeyDown - // The KeyEic [key_eic, krmir] string capability is the sent by rmir or smir in insert mode. - KeyEic - // The KeyEol [key_eol, kel] string capability is the clear-to-end-of-line key. - KeyEol - // The KeyEos [key_eos, ked] string capability is the clear-to-end-of-screen key. - KeyEos - // The KeyF0 [key_f0, kf0] string capability is the F0 function key. - KeyF0 - // The KeyF1 [key_f1, kf1] string capability is the F1 function key. - KeyF1 - // The KeyF10 [key_f10, kf10] string capability is the F10 function key. - KeyF10 - // The KeyF2 [key_f2, kf2] string capability is the F2 function key. - KeyF2 - // The KeyF3 [key_f3, kf3] string capability is the F3 function key. - KeyF3 - // The KeyF4 [key_f4, kf4] string capability is the F4 function key. - KeyF4 - // The KeyF5 [key_f5, kf5] string capability is the F5 function key. - KeyF5 - // The KeyF6 [key_f6, kf6] string capability is the F6 function key. - KeyF6 - // The KeyF7 [key_f7, kf7] string capability is the F7 function key. - KeyF7 - // The KeyF8 [key_f8, kf8] string capability is the F8 function key. - KeyF8 - // The KeyF9 [key_f9, kf9] string capability is the F9 function key. - KeyF9 - // The KeyHome [key_home, khome] string capability is the home key. - KeyHome - // The KeyIc [key_ic, kich1] string capability is the insert-character key. - KeyIc - // The KeyIl [key_il, kil1] string capability is the insert-line key. - KeyIl - // The KeyLeft [key_left, kcub1] string capability is the left-arrow key. - KeyLeft - // The KeyLl [key_ll, kll] string capability is the lower-left key (home down). - KeyLl - // The KeyNpage [key_npage, knp] string capability is the next-page key. - KeyNpage - // The KeyPpage [key_ppage, kpp] string capability is the previous-page key. - KeyPpage - // The KeyRight [key_right, kcuf1] string capability is the right-arrow key. - KeyRight - // The KeySf [key_sf, kind] string capability is the scroll-forward key. - KeySf - // The KeySr [key_sr, kri] string capability is the scroll-backward key. - KeySr - // The KeyStab [key_stab, khts] string capability is the set-tab key. - KeyStab - // The KeyUp [key_up, kcuu1] string capability is the up-arrow key. - KeyUp - // The KeypadLocal [keypad_local, rmkx] string capability is the leave 'keyboard_transmit' mode. - KeypadLocal - // The KeypadXmit [keypad_xmit, smkx] string capability is the enter 'keyboard_transmit' mode. - KeypadXmit - // The LabF0 [lab_f0, lf0] string capability is the label on function key f0 if not f0. - LabF0 - // The LabF1 [lab_f1, lf1] string capability is the label on function key f1 if not f1. - LabF1 - // The LabF10 [lab_f10, lf10] string capability is the label on function key f10 if not f10. - LabF10 - // The LabF2 [lab_f2, lf2] string capability is the label on function key f2 if not f2. - LabF2 - // The LabF3 [lab_f3, lf3] string capability is the label on function key f3 if not f3. - LabF3 - // The LabF4 [lab_f4, lf4] string capability is the label on function key f4 if not f4. - LabF4 - // The LabF5 [lab_f5, lf5] string capability is the label on function key f5 if not f5. - LabF5 - // The LabF6 [lab_f6, lf6] string capability is the label on function key f6 if not f6. - LabF6 - // The LabF7 [lab_f7, lf7] string capability is the label on function key f7 if not f7. - LabF7 - // The LabF8 [lab_f8, lf8] string capability is the label on function key f8 if not f8. - LabF8 - // The LabF9 [lab_f9, lf9] string capability is the label on function key f9 if not f9. - LabF9 - // The MetaOff [meta_off, rmm] string capability is the turn off meta mode. - MetaOff - // The MetaOn [meta_on, smm] string capability is the turn on meta mode (8th-bit on). - MetaOn - // The Newline [newline, nel] string capability is the newline (behave like cr followed by lf). - Newline - // The PadChar [pad_char, pad] string capability is the padding char (instead of null). - PadChar - // The ParmDch [parm_dch, dch] string capability is the delete #1 characters (P*). - ParmDch - // The ParmDeleteLine [parm_delete_line, dl] string capability is the delete #1 lines (P*). - ParmDeleteLine - // The ParmDownCursor [parm_down_cursor, cud] string capability is the down #1 lines (P*). - ParmDownCursor - // The ParmIch [parm_ich, ich] string capability is the insert #1 characters (P*). - ParmIch - // The ParmIndex [parm_index, indn] string capability is the scroll forward #1 lines (P). - ParmIndex - // The ParmInsertLine [parm_insert_line, il] string capability is the insert #1 lines (P*). - ParmInsertLine - // The ParmLeftCursor [parm_left_cursor, cub] string capability is the move #1 characters to the left (P). - ParmLeftCursor - // The ParmRightCursor [parm_right_cursor, cuf] string capability is the move #1 characters to the right (P*). - ParmRightCursor - // The ParmRindex [parm_rindex, rin] string capability is the scroll back #1 lines (P). - ParmRindex - // The ParmUpCursor [parm_up_cursor, cuu] string capability is the up #1 lines (P*). - ParmUpCursor - // The PkeyKey [pkey_key, pfkey] string capability is the program function key #1 to type string #2. - PkeyKey - // The PkeyLocal [pkey_local, pfloc] string capability is the program function key #1 to execute string #2. - PkeyLocal - // The PkeyXmit [pkey_xmit, pfx] string capability is the program function key #1 to transmit string #2. - PkeyXmit - // The PrintScreen [print_screen, mc0] string capability is the print contents of screen. - PrintScreen - // The PrtrOff [prtr_off, mc4] string capability is the turn off printer. - PrtrOff - // The PrtrOn [prtr_on, mc5] string capability is the turn on printer. - PrtrOn - // The RepeatChar [repeat_char, rep] string capability is the repeat char #1 #2 times (P*). - RepeatChar - // The Reset1string [reset_1string, rs1] string capability is the reset string. - Reset1string - // The Reset2string [reset_2string, rs2] string capability is the reset string. - Reset2string - // The Reset3string [reset_3string, rs3] string capability is the reset string. - Reset3string - // The ResetFile [reset_file, rf] string capability is the name of reset file. - ResetFile - // The RestoreCursor [restore_cursor, rc] string capability is the restore cursor to position of last save_cursor. - RestoreCursor - // The RowAddress [row_address, vpa] string capability is the vertical position #1 absolute (P). - RowAddress - // The SaveCursor [save_cursor, sc] string capability is the save current cursor position (P). - SaveCursor - // The ScrollForward [scroll_forward, ind] string capability is the scroll text up (P). - ScrollForward - // The ScrollReverse [scroll_reverse, ri] string capability is the scroll text down (P). - ScrollReverse - // The SetAttributes [set_attributes, sgr] string capability is the define video attributes #1-#9 (PG9). - SetAttributes - // The SetTab [set_tab, hts] string capability is the set a tab in every row, current columns. - SetTab - // The SetWindow [set_window, wind] string capability is the current window is lines #1-#2 cols #3-#4. - SetWindow - // The Tab [tab, ht] string capability is the tab to next 8-space hardware tab stop. - Tab - // The ToStatusLine [to_status_line, tsl] string capability is the move to status line, column #1. - ToStatusLine - // The UnderlineChar [underline_char, uc] string capability is the underline char and move past it. - UnderlineChar - // The UpHalfLine [up_half_line, hu] string capability is the half a line up. - UpHalfLine - // The InitProg [init_prog, iprog] string capability is the path name of program for initialization. - InitProg - // The KeyA1 [key_a1, ka1] string capability is the upper left of keypad. - KeyA1 - // The KeyA3 [key_a3, ka3] string capability is the upper right of keypad. - KeyA3 - // The KeyB2 [key_b2, kb2] string capability is the center of keypad. - KeyB2 - // The KeyC1 [key_c1, kc1] string capability is the lower left of keypad. - KeyC1 - // The KeyC3 [key_c3, kc3] string capability is the lower right of keypad. - KeyC3 - // The PrtrNon [prtr_non, mc5p] string capability is the turn on printer for #1 bytes. - PrtrNon - // The CharPadding [char_padding, rmp] string capability is the like ip but when in insert mode. - CharPadding - // The AcsChars [acs_chars, acsc] string capability is the graphics charset pairs, based on vt100. - AcsChars - // The PlabNorm [plab_norm, pln] string capability is the program label #1 to show string #2. - PlabNorm - // The KeyBtab [key_btab, kcbt] string capability is the back-tab key. - KeyBtab - // The EnterXonMode [enter_xon_mode, smxon] string capability is the turn on xon/xoff handshaking. - EnterXonMode - // The ExitXonMode [exit_xon_mode, rmxon] string capability is the turn off xon/xoff handshaking. - ExitXonMode - // The EnterAmMode [enter_am_mode, smam] string capability is the turn on automatic margins. - EnterAmMode - // The ExitAmMode [exit_am_mode, rmam] string capability is the turn off automatic margins. - ExitAmMode - // The XonCharacter [xon_character, xonc] string capability is the XON character. - XonCharacter - // The XoffCharacter [xoff_character, xoffc] string capability is the XOFF character. - XoffCharacter - // The EnaAcs [ena_acs, enacs] string capability is the enable alternate char set. - EnaAcs - // The LabelOn [label_on, smln] string capability is the turn on soft labels. - LabelOn - // The LabelOff [label_off, rmln] string capability is the turn off soft labels. - LabelOff - // The KeyBeg [key_beg, kbeg] string capability is the begin key. - KeyBeg - // The KeyCancel [key_cancel, kcan] string capability is the cancel key. - KeyCancel - // The KeyClose [key_close, kclo] string capability is the close key. - KeyClose - // The KeyCommand [key_command, kcmd] string capability is the command key. - KeyCommand - // The KeyCopy [key_copy, kcpy] string capability is the copy key. - KeyCopy - // The KeyCreate [key_create, kcrt] string capability is the create key. - KeyCreate - // The KeyEnd [key_end, kend] string capability is the end key. - KeyEnd - // The KeyEnter [key_enter, kent] string capability is the enter/send key. - KeyEnter - // The KeyExit [key_exit, kext] string capability is the exit key. - KeyExit - // The KeyFind [key_find, kfnd] string capability is the find key. - KeyFind - // The KeyHelp [key_help, khlp] string capability is the help key. - KeyHelp - // The KeyMark [key_mark, kmrk] string capability is the mark key. - KeyMark - // The KeyMessage [key_message, kmsg] string capability is the message key. - KeyMessage - // The KeyMove [key_move, kmov] string capability is the move key. - KeyMove - // The KeyNext [key_next, knxt] string capability is the next key. - KeyNext - // The KeyOpen [key_open, kopn] string capability is the open key. - KeyOpen - // The KeyOptions [key_options, kopt] string capability is the options key. - KeyOptions - // The KeyPrevious [key_previous, kprv] string capability is the previous key. - KeyPrevious - // The KeyPrint [key_print, kprt] string capability is the print key. - KeyPrint - // The KeyRedo [key_redo, krdo] string capability is the redo key. - KeyRedo - // The KeyReference [key_reference, kref] string capability is the reference key. - KeyReference - // The KeyRefresh [key_refresh, krfr] string capability is the refresh key. - KeyRefresh - // The KeyReplace [key_replace, krpl] string capability is the replace key. - KeyReplace - // The KeyRestart [key_restart, krst] string capability is the restart key. - KeyRestart - // The KeyResume [key_resume, kres] string capability is the resume key. - KeyResume - // The KeySave [key_save, ksav] string capability is the save key. - KeySave - // The KeySuspend [key_suspend, kspd] string capability is the suspend key. - KeySuspend - // The KeyUndo [key_undo, kund] string capability is the undo key. - KeyUndo - // The KeySbeg [key_sbeg, kBEG] string capability is the shifted begin key. - KeySbeg - // The KeyScancel [key_scancel, kCAN] string capability is the shifted cancel key. - KeyScancel - // The KeyScommand [key_scommand, kCMD] string capability is the shifted command key. - KeyScommand - // The KeyScopy [key_scopy, kCPY] string capability is the shifted copy key. - KeyScopy - // The KeyScreate [key_screate, kCRT] string capability is the shifted create key. - KeyScreate - // The KeySdc [key_sdc, kDC] string capability is the shifted delete-character key. - KeySdc - // The KeySdl [key_sdl, kDL] string capability is the shifted delete-line key. - KeySdl - // The KeySelect [key_select, kslt] string capability is the select key. - KeySelect - // The KeySend [key_send, kEND] string capability is the shifted end key. - KeySend - // The KeySeol [key_seol, kEOL] string capability is the shifted clear-to-end-of-line key. - KeySeol - // The KeySexit [key_sexit, kEXT] string capability is the shifted exit key. - KeySexit - // The KeySfind [key_sfind, kFND] string capability is the shifted find key. - KeySfind - // The KeyShelp [key_shelp, kHLP] string capability is the shifted help key. - KeyShelp - // The KeyShome [key_shome, kHOM] string capability is the shifted home key. - KeyShome - // The KeySic [key_sic, kIC] string capability is the shifted insert-character key. - KeySic - // The KeySleft [key_sleft, kLFT] string capability is the shifted left-arrow key. - KeySleft - // The KeySmessage [key_smessage, kMSG] string capability is the shifted message key. - KeySmessage - // The KeySmove [key_smove, kMOV] string capability is the shifted move key. - KeySmove - // The KeySnext [key_snext, kNXT] string capability is the shifted next key. - KeySnext - // The KeySoptions [key_soptions, kOPT] string capability is the shifted options key. - KeySoptions - // The KeySprevious [key_sprevious, kPRV] string capability is the shifted previous key. - KeySprevious - // The KeySprint [key_sprint, kPRT] string capability is the shifted print key. - KeySprint - // The KeySredo [key_sredo, kRDO] string capability is the shifted redo key. - KeySredo - // The KeySreplace [key_sreplace, kRPL] string capability is the shifted replace key. - KeySreplace - // The KeySright [key_sright, kRIT] string capability is the shifted right-arrow key. - KeySright - // The KeySrsume [key_srsume, kRES] string capability is the shifted resume key. - KeySrsume - // The KeySsave [key_ssave, kSAV] string capability is the shifted save key. - KeySsave - // The KeySsuspend [key_ssuspend, kSPD] string capability is the shifted suspend key. - KeySsuspend - // The KeySundo [key_sundo, kUND] string capability is the shifted undo key. - KeySundo - // The ReqForInput [req_for_input, rfi] string capability is the send next input char (for ptys). - ReqForInput - // The KeyF11 [key_f11, kf11] string capability is the F11 function key. - KeyF11 - // The KeyF12 [key_f12, kf12] string capability is the F12 function key. - KeyF12 - // The KeyF13 [key_f13, kf13] string capability is the F13 function key. - KeyF13 - // The KeyF14 [key_f14, kf14] string capability is the F14 function key. - KeyF14 - // The KeyF15 [key_f15, kf15] string capability is the F15 function key. - KeyF15 - // The KeyF16 [key_f16, kf16] string capability is the F16 function key. - KeyF16 - // The KeyF17 [key_f17, kf17] string capability is the F17 function key. - KeyF17 - // The KeyF18 [key_f18, kf18] string capability is the F18 function key. - KeyF18 - // The KeyF19 [key_f19, kf19] string capability is the F19 function key. - KeyF19 - // The KeyF20 [key_f20, kf20] string capability is the F20 function key. - KeyF20 - // The KeyF21 [key_f21, kf21] string capability is the F21 function key. - KeyF21 - // The KeyF22 [key_f22, kf22] string capability is the F22 function key. - KeyF22 - // The KeyF23 [key_f23, kf23] string capability is the F23 function key. - KeyF23 - // The KeyF24 [key_f24, kf24] string capability is the F24 function key. - KeyF24 - // The KeyF25 [key_f25, kf25] string capability is the F25 function key. - KeyF25 - // The KeyF26 [key_f26, kf26] string capability is the F26 function key. - KeyF26 - // The KeyF27 [key_f27, kf27] string capability is the F27 function key. - KeyF27 - // The KeyF28 [key_f28, kf28] string capability is the F28 function key. - KeyF28 - // The KeyF29 [key_f29, kf29] string capability is the F29 function key. - KeyF29 - // The KeyF30 [key_f30, kf30] string capability is the F30 function key. - KeyF30 - // The KeyF31 [key_f31, kf31] string capability is the F31 function key. - KeyF31 - // The KeyF32 [key_f32, kf32] string capability is the F32 function key. - KeyF32 - // The KeyF33 [key_f33, kf33] string capability is the F33 function key. - KeyF33 - // The KeyF34 [key_f34, kf34] string capability is the F34 function key. - KeyF34 - // The KeyF35 [key_f35, kf35] string capability is the F35 function key. - KeyF35 - // The KeyF36 [key_f36, kf36] string capability is the F36 function key. - KeyF36 - // The KeyF37 [key_f37, kf37] string capability is the F37 function key. - KeyF37 - // The KeyF38 [key_f38, kf38] string capability is the F38 function key. - KeyF38 - // The KeyF39 [key_f39, kf39] string capability is the F39 function key. - KeyF39 - // The KeyF40 [key_f40, kf40] string capability is the F40 function key. - KeyF40 - // The KeyF41 [key_f41, kf41] string capability is the F41 function key. - KeyF41 - // The KeyF42 [key_f42, kf42] string capability is the F42 function key. - KeyF42 - // The KeyF43 [key_f43, kf43] string capability is the F43 function key. - KeyF43 - // The KeyF44 [key_f44, kf44] string capability is the F44 function key. - KeyF44 - // The KeyF45 [key_f45, kf45] string capability is the F45 function key. - KeyF45 - // The KeyF46 [key_f46, kf46] string capability is the F46 function key. - KeyF46 - // The KeyF47 [key_f47, kf47] string capability is the F47 function key. - KeyF47 - // The KeyF48 [key_f48, kf48] string capability is the F48 function key. - KeyF48 - // The KeyF49 [key_f49, kf49] string capability is the F49 function key. - KeyF49 - // The KeyF50 [key_f50, kf50] string capability is the F50 function key. - KeyF50 - // The KeyF51 [key_f51, kf51] string capability is the F51 function key. - KeyF51 - // The KeyF52 [key_f52, kf52] string capability is the F52 function key. - KeyF52 - // The KeyF53 [key_f53, kf53] string capability is the F53 function key. - KeyF53 - // The KeyF54 [key_f54, kf54] string capability is the F54 function key. - KeyF54 - // The KeyF55 [key_f55, kf55] string capability is the F55 function key. - KeyF55 - // The KeyF56 [key_f56, kf56] string capability is the F56 function key. - KeyF56 - // The KeyF57 [key_f57, kf57] string capability is the F57 function key. - KeyF57 - // The KeyF58 [key_f58, kf58] string capability is the F58 function key. - KeyF58 - // The KeyF59 [key_f59, kf59] string capability is the F59 function key. - KeyF59 - // The KeyF60 [key_f60, kf60] string capability is the F60 function key. - KeyF60 - // The KeyF61 [key_f61, kf61] string capability is the F61 function key. - KeyF61 - // The KeyF62 [key_f62, kf62] string capability is the F62 function key. - KeyF62 - // The KeyF63 [key_f63, kf63] string capability is the F63 function key. - KeyF63 - // The ClrBol [clr_bol, el1] string capability is the Clear to beginning of line. - ClrBol - // The ClearMargins [clear_margins, mgc] string capability is the clear right and left soft margins. - ClearMargins - // The SetLeftMargin [set_left_margin, smgl] string capability is the set left soft margin at current column. (ML is not in BSD termcap). - SetLeftMargin - // The SetRightMargin [set_right_margin, smgr] string capability is the set right soft margin at current column. - SetRightMargin - // The LabelFormat [label_format, fln] string capability is the label format. - LabelFormat - // The SetClock [set_clock, sclk] string capability is the set clock, #1 hrs #2 mins #3 secs. - SetClock - // The DisplayClock [display_clock, dclk] string capability is the display clock. - DisplayClock - // The RemoveClock [remove_clock, rmclk] string capability is the remove clock. - RemoveClock - // The CreateWindow [create_window, cwin] string capability is the define a window #1 from #2,#3 to #4,#5. - CreateWindow - // The GotoWindow [goto_window, wingo] string capability is the go to window #1. - GotoWindow - // The Hangup [hangup, hup] string capability is the hang-up phone. - Hangup - // The DialPhone [dial_phone, dial] string capability is the dial number #1. - DialPhone - // The QuickDial [quick_dial, qdial] string capability is the dial number #1 without checking. - QuickDial - // The Tone [tone, tone] string capability is the select touch tone dialing. - Tone - // The Pulse [pulse, pulse] string capability is the select pulse dialing. - Pulse - // The FlashHook [flash_hook, hook] string capability is the flash switch hook. - FlashHook - // The FixedPause [fixed_pause, pause] string capability is the pause for 2-3 seconds. - FixedPause - // The WaitTone [wait_tone, wait] string capability is the wait for dial-tone. - WaitTone - // The User0 [user0, u0] string capability is the User string #0. - User0 - // The User1 [user1, u1] string capability is the User string #1. - User1 - // The User2 [user2, u2] string capability is the User string #2. - User2 - // The User3 [user3, u3] string capability is the User string #3. - User3 - // The User4 [user4, u4] string capability is the User string #4. - User4 - // The User5 [user5, u5] string capability is the User string #5. - User5 - // The User6 [user6, u6] string capability is the User string #6. - User6 - // The User7 [user7, u7] string capability is the User string #7. - User7 - // The User8 [user8, u8] string capability is the User string #8. - User8 - // The User9 [user9, u9] string capability is the User string #9. - User9 - // The OrigPair [orig_pair, op] string capability is the Set default pair to its original value. - OrigPair - // The OrigColors [orig_colors, oc] string capability is the Set all color pairs to the original ones. - OrigColors - // The InitializeColor [initialize_color, initc] string capability is the initialize color #1 to (#2,#3,#4). - InitializeColor - // The InitializePair [initialize_pair, initp] string capability is the Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7). - InitializePair - // The SetColorPair [set_color_pair, scp] string capability is the Set current color pair to #1. - SetColorPair - // The SetForeground [set_foreground, setf] string capability is the Set foreground color #1. - SetForeground - // The SetBackground [set_background, setb] string capability is the Set background color #1. - SetBackground - // The ChangeCharPitch [change_char_pitch, cpi] string capability is the Change number of characters per inch to #1. - ChangeCharPitch - // The ChangeLinePitch [change_line_pitch, lpi] string capability is the Change number of lines per inch to #1. - ChangeLinePitch - // The ChangeResHorz [change_res_horz, chr] string capability is the Change horizontal resolution to #1. - ChangeResHorz - // The ChangeResVert [change_res_vert, cvr] string capability is the Change vertical resolution to #1. - ChangeResVert - // The DefineChar [define_char, defc] string capability is the Define a character #1, #2 dots wide, descender #3. - DefineChar - // The EnterDoublewideMode [enter_doublewide_mode, swidm] string capability is the Enter double-wide mode. - EnterDoublewideMode - // The EnterDraftQuality [enter_draft_quality, sdrfq] string capability is the Enter draft-quality mode. - EnterDraftQuality - // The EnterItalicsMode [enter_italics_mode, sitm] string capability is the Enter italic mode. - EnterItalicsMode - // The EnterLeftwardMode [enter_leftward_mode, slm] string capability is the Start leftward carriage motion. - EnterLeftwardMode - // The EnterMicroMode [enter_micro_mode, smicm] string capability is the Start micro-motion mode. - EnterMicroMode - // The EnterNearLetterQuality [enter_near_letter_quality, snlq] string capability is the Enter NLQ mode. - EnterNearLetterQuality - // The EnterNormalQuality [enter_normal_quality, snrmq] string capability is the Enter normal-quality mode. - EnterNormalQuality - // The EnterShadowMode [enter_shadow_mode, sshm] string capability is the Enter shadow-print mode. - EnterShadowMode - // The EnterSubscriptMode [enter_subscript_mode, ssubm] string capability is the Enter subscript mode. - EnterSubscriptMode - // The EnterSuperscriptMode [enter_superscript_mode, ssupm] string capability is the Enter superscript mode. - EnterSuperscriptMode - // The EnterUpwardMode [enter_upward_mode, sum] string capability is the Start upward carriage motion. - EnterUpwardMode - // The ExitDoublewideMode [exit_doublewide_mode, rwidm] string capability is the End double-wide mode. - ExitDoublewideMode - // The ExitItalicsMode [exit_italics_mode, ritm] string capability is the End italic mode. - ExitItalicsMode - // The ExitLeftwardMode [exit_leftward_mode, rlm] string capability is the End left-motion mode. - ExitLeftwardMode - // The ExitMicroMode [exit_micro_mode, rmicm] string capability is the End micro-motion mode. - ExitMicroMode - // The ExitShadowMode [exit_shadow_mode, rshm] string capability is the End shadow-print mode. - ExitShadowMode - // The ExitSubscriptMode [exit_subscript_mode, rsubm] string capability is the End subscript mode. - ExitSubscriptMode - // The ExitSuperscriptMode [exit_superscript_mode, rsupm] string capability is the End superscript mode. - ExitSuperscriptMode - // The ExitUpwardMode [exit_upward_mode, rum] string capability is the End reverse character motion. - ExitUpwardMode - // The MicroColumnAddress [micro_column_address, mhpa] string capability is the Like column_address in micro mode. - MicroColumnAddress - // The MicroDown [micro_down, mcud1] string capability is the Like cursor_down in micro mode. - MicroDown - // The MicroLeft [micro_left, mcub1] string capability is the Like cursor_left in micro mode. - MicroLeft - // The MicroRight [micro_right, mcuf1] string capability is the Like cursor_right in micro mode. - MicroRight - // The MicroRowAddress [micro_row_address, mvpa] string capability is the Like row_address #1 in micro mode. - MicroRowAddress - // The MicroUp [micro_up, mcuu1] string capability is the Like cursor_up in micro mode. - MicroUp - // The OrderOfPins [order_of_pins, porder] string capability is the Match software bits to print-head pins. - OrderOfPins - // The ParmDownMicro [parm_down_micro, mcud] string capability is the Like parm_down_cursor in micro mode. - ParmDownMicro - // The ParmLeftMicro [parm_left_micro, mcub] string capability is the Like parm_left_cursor in micro mode. - ParmLeftMicro - // The ParmRightMicro [parm_right_micro, mcuf] string capability is the Like parm_right_cursor in micro mode. - ParmRightMicro - // The ParmUpMicro [parm_up_micro, mcuu] string capability is the Like parm_up_cursor in micro mode. - ParmUpMicro - // The SelectCharSet [select_char_set, scs] string capability is the Select character set, #1. - SelectCharSet - // The SetBottomMargin [set_bottom_margin, smgb] string capability is the Set bottom margin at current line. - SetBottomMargin - // The SetBottomMarginParm [set_bottom_margin_parm, smgbp] string capability is the Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom. - SetBottomMarginParm - // The SetLeftMarginParm [set_left_margin_parm, smglp] string capability is the Set left (right) margin at column #1. - SetLeftMarginParm - // The SetRightMarginParm [set_right_margin_parm, smgrp] string capability is the Set right margin at column #1. - SetRightMarginParm - // The SetTopMargin [set_top_margin, smgt] string capability is the Set top margin at current line. - SetTopMargin - // The SetTopMarginParm [set_top_margin_parm, smgtp] string capability is the Set top (bottom) margin at row #1. - SetTopMarginParm - // The StartBitImage [start_bit_image, sbim] string capability is the Start printing bit image graphics. - StartBitImage - // The StartCharSetDef [start_char_set_def, scsd] string capability is the Start character set definition #1, with #2 characters in the set. - StartCharSetDef - // The StopBitImage [stop_bit_image, rbim] string capability is the Stop printing bit image graphics. - StopBitImage - // The StopCharSetDef [stop_char_set_def, rcsd] string capability is the End definition of character set #1. - StopCharSetDef - // The SubscriptCharacters [subscript_characters, subcs] string capability is the List of subscriptable characters. - SubscriptCharacters - // The SuperscriptCharacters [superscript_characters, supcs] string capability is the List of superscriptable characters. - SuperscriptCharacters - // The TheseCauseCr [these_cause_cr, docr] string capability is the Printing any of these characters causes CR. - TheseCauseCr - // The ZeroMotion [zero_motion, zerom] string capability is the No motion for subsequent character. - ZeroMotion - // The CharSetNames [char_set_names, csnm] string capability is the Produce #1'th item from list of character set names. - CharSetNames - // The KeyMouse [key_mouse, kmous] string capability is the Mouse event has occurred. - KeyMouse - // The MouseInfo [mouse_info, minfo] string capability is the Mouse status information. - MouseInfo - // The ReqMousePos [req_mouse_pos, reqmp] string capability is the Request mouse position. - ReqMousePos - // The GetMouse [get_mouse, getm] string capability is the Curses should get button events, parameter #1 not documented. - GetMouse - // The SetAForeground [set_a_foreground, setaf] string capability is the Set foreground color to #1, using ANSI escape. - SetAForeground - // The SetABackground [set_a_background, setab] string capability is the Set background color to #1, using ANSI escape. - SetABackground - // The PkeyPlab [pkey_plab, pfxl] string capability is the Program function key #1 to type string #2 and show string #3. - PkeyPlab - // The DeviceType [device_type, devt] string capability is the Indicate language/codeset support. - DeviceType - // The CodeSetInit [code_set_init, csin] string capability is the Init sequence for multiple codesets. - CodeSetInit - // The Set0DesSeq [set0_des_seq, s0ds] string capability is the Shift to codeset 0 (EUC set 0, ASCII). - Set0DesSeq - // The Set1DesSeq [set1_des_seq, s1ds] string capability is the Shift to codeset 1. - Set1DesSeq - // The Set2DesSeq [set2_des_seq, s2ds] string capability is the Shift to codeset 2. - Set2DesSeq - // The Set3DesSeq [set3_des_seq, s3ds] string capability is the Shift to codeset 3. - Set3DesSeq - // The SetLrMargin [set_lr_margin, smglr] string capability is the Set both left and right margins to #1, #2. (ML is not in BSD termcap). - SetLrMargin - // The SetTbMargin [set_tb_margin, smgtb] string capability is the Sets both top and bottom margins to #1, #2. - SetTbMargin - // The BitImageRepeat [bit_image_repeat, birep] string capability is the Repeat bit image cell #1 #2 times. - BitImageRepeat - // The BitImageNewline [bit_image_newline, binel] string capability is the Move to next row of the bit image. - BitImageNewline - // The BitImageCarriageReturn [bit_image_carriage_return, bicr] string capability is the Move to beginning of same row. - BitImageCarriageReturn - // The ColorNames [color_names, colornm] string capability is the Give name for color #1. - ColorNames - // The DefineBitImageRegion [define_bit_image_region, defbi] string capability is the Define rectangular bit image region. - DefineBitImageRegion - // The EndBitImageRegion [end_bit_image_region, endbi] string capability is the End a bit-image region. - EndBitImageRegion - // The SetColorBand [set_color_band, setcolor] string capability is the Change to ribbon color #1. - SetColorBand - // The SetPageLength [set_page_length, slines] string capability is the Set page length to #1 lines. - SetPageLength - // The DisplayPcChar [display_pc_char, dispc] string capability is the Display PC character #1. - DisplayPcChar - // The EnterPcCharsetMode [enter_pc_charset_mode, smpch] string capability is the Enter PC character display mode. - EnterPcCharsetMode - // The ExitPcCharsetMode [exit_pc_charset_mode, rmpch] string capability is the Exit PC character display mode. - ExitPcCharsetMode - // The EnterScancodeMode [enter_scancode_mode, smsc] string capability is the Enter PC scancode mode. - EnterScancodeMode - // The ExitScancodeMode [exit_scancode_mode, rmsc] string capability is the Exit PC scancode mode. - ExitScancodeMode - // The PcTermOptions [pc_term_options, pctrm] string capability is the PC terminal options. - PcTermOptions - // The ScancodeEscape [scancode_escape, scesc] string capability is the Escape for scancode emulation. - ScancodeEscape - // The AltScancodeEsc [alt_scancode_esc, scesa] string capability is the Alternate escape for scancode emulation. - AltScancodeEsc - // The EnterHorizontalHlMode [enter_horizontal_hl_mode, ehhlm] string capability is the Enter horizontal highlight mode. - EnterHorizontalHlMode - // The EnterLeftHlMode [enter_left_hl_mode, elhlm] string capability is the Enter left highlight mode. - EnterLeftHlMode - // The EnterLowHlMode [enter_low_hl_mode, elohlm] string capability is the Enter low highlight mode. - EnterLowHlMode - // The EnterRightHlMode [enter_right_hl_mode, erhlm] string capability is the Enter right highlight mode. - EnterRightHlMode - // The EnterTopHlMode [enter_top_hl_mode, ethlm] string capability is the Enter top highlight mode. - EnterTopHlMode - // The EnterVerticalHlMode [enter_vertical_hl_mode, evhlm] string capability is the Enter vertical highlight mode. - EnterVerticalHlMode - // The SetAAttributes [set_a_attributes, sgr1] string capability is the Define second set of video attributes #1-#6. - SetAAttributes - // The SetPglenInch [set_pglen_inch, slength] string capability is the Set page length to #1 hundredth of an inch (some implementations use sL for termcap). - SetPglenInch - // The TermcapInit2 [termcap_init2, OTi2] string capability is the secondary initialization string. - TermcapInit2 - // The TermcapReset [termcap_reset, OTrs] string capability is the terminal reset string. - TermcapReset - // The LinefeedIfNotLf [linefeed_if_not_lf, OTnl] string capability is the use to move down. - LinefeedIfNotLf - // The BackspaceIfNotBs [backspace_if_not_bs, OTbc] string capability is the move left, if not ^H. - BackspaceIfNotBs - // The OtherNonFunctionKeys [other_non_function_keys, OTko] string capability is the list of self-mapped keycaps. - OtherNonFunctionKeys - // The ArrowKeyMap [arrow_key_map, OTma] string capability is the map motion-keys for vi version 2. - ArrowKeyMap - // The AcsUlcorner [acs_ulcorner, OTG2] string capability is the single upper left. - AcsUlcorner - // The AcsLlcorner [acs_llcorner, OTG3] string capability is the single lower left. - AcsLlcorner - // The AcsUrcorner [acs_urcorner, OTG1] string capability is the single upper right. - AcsUrcorner - // The AcsLrcorner [acs_lrcorner, OTG4] string capability is the single lower right. - AcsLrcorner - // The AcsLtee [acs_ltee, OTGR] string capability is the tee pointing right. - AcsLtee - // The AcsRtee [acs_rtee, OTGL] string capability is the tee pointing left. - AcsRtee - // The AcsBtee [acs_btee, OTGU] string capability is the tee pointing up. - AcsBtee - // The AcsTtee [acs_ttee, OTGD] string capability is the tee pointing down. - AcsTtee - // The AcsHline [acs_hline, OTGH] string capability is the single horizontal line. - AcsHline - // The AcsVline [acs_vline, OTGV] string capability is the single vertical line. - AcsVline - // The AcsPlus [acs_plus, OTGC] string capability is the single intersection. - AcsPlus - // The MemoryLock [memory_lock, meml] string capability is the lock memory above cursor. - MemoryLock - // The MemoryUnlock [memory_unlock, memu] string capability is the unlock memory. - MemoryUnlock - // The BoxChars1 [box_chars_1, box1] string capability is the box characters primary set. - BoxChars1 -) -const ( - // CapCountBool is the count of bool capabilities. - CapCountBool = ReturnDoesClrEol + 1 - // CapCountNum is the count of num capabilities. - CapCountNum = NumberOfFunctionKeys + 1 - // CapCountString is the count of string capabilities. - CapCountString = BoxChars1 + 1 -) - -// boolCapNames are the bool term cap names. -var boolCapNames = [...]string{ - "auto_left_margin", "bw", - "auto_right_margin", "am", - "no_esc_ctlc", "xsb", - "ceol_standout_glitch", "xhp", - "eat_newline_glitch", "xenl", - "erase_overstrike", "eo", - "generic_type", "gn", - "hard_copy", "hc", - "has_meta_key", "km", - "has_status_line", "hs", - "insert_null_glitch", "in", - "memory_above", "da", - "memory_below", "db", - "move_insert_mode", "mir", - "move_standout_mode", "msgr", - "over_strike", "os", - "status_line_esc_ok", "eslok", - "dest_tabs_magic_smso", "xt", - "tilde_glitch", "hz", - "transparent_underline", "ul", - "xon_xoff", "xon", - "needs_xon_xoff", "nxon", - "prtr_silent", "mc5i", - "hard_cursor", "chts", - "non_rev_rmcup", "nrrmc", - "no_pad_char", "npc", - "non_dest_scroll_region", "ndscr", - "can_change", "ccc", - "back_color_erase", "bce", - "hue_lightness_saturation", "hls", - "col_addr_glitch", "xhpa", - "cr_cancels_micro_mode", "crxm", - "has_print_wheel", "daisy", - "row_addr_glitch", "xvpa", - "semi_auto_right_margin", "sam", - "cpi_changes_res", "cpix", - "lpi_changes_res", "lpix", - "backspaces_with_bs", "OTbs", - "crt_no_scrolling", "OTns", - "no_correctly_working_cr", "OTnc", - "gnu_has_meta_key", "OTMT", - "linefeed_is_newline", "OTNL", - "has_hardware_tabs", "OTpt", - "return_does_clr_eol", "OTxr", -} - -// numCapNames are the num term cap names. -var numCapNames = [...]string{ - "columns", "cols", - "init_tabs", "it", - "lines", "lines", - "lines_of_memory", "lm", - "magic_cookie_glitch", "xmc", - "padding_baud_rate", "pb", - "virtual_terminal", "vt", - "width_status_line", "wsl", - "num_labels", "nlab", - "label_height", "lh", - "label_width", "lw", - "max_attributes", "ma", - "maximum_windows", "wnum", - "max_colors", "colors", - "max_pairs", "pairs", - "no_color_video", "ncv", - "buffer_capacity", "bufsz", - "dot_vert_spacing", "spinv", - "dot_horz_spacing", "spinh", - "max_micro_address", "maddr", - "max_micro_jump", "mjump", - "micro_col_size", "mcs", - "micro_line_size", "mls", - "number_of_pins", "npins", - "output_res_char", "orc", - "output_res_line", "orl", - "output_res_horz_inch", "orhi", - "output_res_vert_inch", "orvi", - "print_rate", "cps", - "wide_char_size", "widcs", - "buttons", "btns", - "bit_image_entwining", "bitwin", - "bit_image_type", "bitype", - "magic_cookie_glitch_ul", "OTug", - "carriage_return_delay", "OTdC", - "new_line_delay", "OTdN", - "backspace_delay", "OTdB", - "horizontal_tab_delay", "OTdT", - "number_of_function_keys", "OTkn", -} - -// stringCapNames are the string term cap names. -var stringCapNames = [...]string{ - "back_tab", "cbt", - "bell", "bel", - "carriage_return", "cr", - "change_scroll_region", "csr", - "clear_all_tabs", "tbc", - "clear_screen", "clear", - "clr_eol", "el", - "clr_eos", "ed", - "column_address", "hpa", - "command_character", "cmdch", - "cursor_address", "cup", - "cursor_down", "cud1", - "cursor_home", "home", - "cursor_invisible", "civis", - "cursor_left", "cub1", - "cursor_mem_address", "mrcup", - "cursor_normal", "cnorm", - "cursor_right", "cuf1", - "cursor_to_ll", "ll", - "cursor_up", "cuu1", - "cursor_visible", "cvvis", - "delete_character", "dch1", - "delete_line", "dl1", - "dis_status_line", "dsl", - "down_half_line", "hd", - "enter_alt_charset_mode", "smacs", - "enter_blink_mode", "blink", - "enter_bold_mode", "bold", - "enter_ca_mode", "smcup", - "enter_delete_mode", "smdc", - "enter_dim_mode", "dim", - "enter_insert_mode", "smir", - "enter_secure_mode", "invis", - "enter_protected_mode", "prot", - "enter_reverse_mode", "rev", - "enter_standout_mode", "smso", - "enter_underline_mode", "smul", - "erase_chars", "ech", - "exit_alt_charset_mode", "rmacs", - "exit_attribute_mode", "sgr0", - "exit_ca_mode", "rmcup", - "exit_delete_mode", "rmdc", - "exit_insert_mode", "rmir", - "exit_standout_mode", "rmso", - "exit_underline_mode", "rmul", - "flash_screen", "flash", - "form_feed", "ff", - "from_status_line", "fsl", - "init_1string", "is1", - "init_2string", "is2", - "init_3string", "is3", - "init_file", "if", - "insert_character", "ich1", - "insert_line", "il1", - "insert_padding", "ip", - "key_backspace", "kbs", - "key_catab", "ktbc", - "key_clear", "kclr", - "key_ctab", "kctab", - "key_dc", "kdch1", - "key_dl", "kdl1", - "key_down", "kcud1", - "key_eic", "krmir", - "key_eol", "kel", - "key_eos", "ked", - "key_f0", "kf0", - "key_f1", "kf1", - "key_f10", "kf10", - "key_f2", "kf2", - "key_f3", "kf3", - "key_f4", "kf4", - "key_f5", "kf5", - "key_f6", "kf6", - "key_f7", "kf7", - "key_f8", "kf8", - "key_f9", "kf9", - "key_home", "khome", - "key_ic", "kich1", - "key_il", "kil1", - "key_left", "kcub1", - "key_ll", "kll", - "key_npage", "knp", - "key_ppage", "kpp", - "key_right", "kcuf1", - "key_sf", "kind", - "key_sr", "kri", - "key_stab", "khts", - "key_up", "kcuu1", - "keypad_local", "rmkx", - "keypad_xmit", "smkx", - "lab_f0", "lf0", - "lab_f1", "lf1", - "lab_f10", "lf10", - "lab_f2", "lf2", - "lab_f3", "lf3", - "lab_f4", "lf4", - "lab_f5", "lf5", - "lab_f6", "lf6", - "lab_f7", "lf7", - "lab_f8", "lf8", - "lab_f9", "lf9", - "meta_off", "rmm", - "meta_on", "smm", - "newline", "nel", - "pad_char", "pad", - "parm_dch", "dch", - "parm_delete_line", "dl", - "parm_down_cursor", "cud", - "parm_ich", "ich", - "parm_index", "indn", - "parm_insert_line", "il", - "parm_left_cursor", "cub", - "parm_right_cursor", "cuf", - "parm_rindex", "rin", - "parm_up_cursor", "cuu", - "pkey_key", "pfkey", - "pkey_local", "pfloc", - "pkey_xmit", "pfx", - "print_screen", "mc0", - "prtr_off", "mc4", - "prtr_on", "mc5", - "repeat_char", "rep", - "reset_1string", "rs1", - "reset_2string", "rs2", - "reset_3string", "rs3", - "reset_file", "rf", - "restore_cursor", "rc", - "row_address", "vpa", - "save_cursor", "sc", - "scroll_forward", "ind", - "scroll_reverse", "ri", - "set_attributes", "sgr", - "set_tab", "hts", - "set_window", "wind", - "tab", "ht", - "to_status_line", "tsl", - "underline_char", "uc", - "up_half_line", "hu", - "init_prog", "iprog", - "key_a1", "ka1", - "key_a3", "ka3", - "key_b2", "kb2", - "key_c1", "kc1", - "key_c3", "kc3", - "prtr_non", "mc5p", - "char_padding", "rmp", - "acs_chars", "acsc", - "plab_norm", "pln", - "key_btab", "kcbt", - "enter_xon_mode", "smxon", - "exit_xon_mode", "rmxon", - "enter_am_mode", "smam", - "exit_am_mode", "rmam", - "xon_character", "xonc", - "xoff_character", "xoffc", - "ena_acs", "enacs", - "label_on", "smln", - "label_off", "rmln", - "key_beg", "kbeg", - "key_cancel", "kcan", - "key_close", "kclo", - "key_command", "kcmd", - "key_copy", "kcpy", - "key_create", "kcrt", - "key_end", "kend", - "key_enter", "kent", - "key_exit", "kext", - "key_find", "kfnd", - "key_help", "khlp", - "key_mark", "kmrk", - "key_message", "kmsg", - "key_move", "kmov", - "key_next", "knxt", - "key_open", "kopn", - "key_options", "kopt", - "key_previous", "kprv", - "key_print", "kprt", - "key_redo", "krdo", - "key_reference", "kref", - "key_refresh", "krfr", - "key_replace", "krpl", - "key_restart", "krst", - "key_resume", "kres", - "key_save", "ksav", - "key_suspend", "kspd", - "key_undo", "kund", - "key_sbeg", "kBEG", - "key_scancel", "kCAN", - "key_scommand", "kCMD", - "key_scopy", "kCPY", - "key_screate", "kCRT", - "key_sdc", "kDC", - "key_sdl", "kDL", - "key_select", "kslt", - "key_send", "kEND", - "key_seol", "kEOL", - "key_sexit", "kEXT", - "key_sfind", "kFND", - "key_shelp", "kHLP", - "key_shome", "kHOM", - "key_sic", "kIC", - "key_sleft", "kLFT", - "key_smessage", "kMSG", - "key_smove", "kMOV", - "key_snext", "kNXT", - "key_soptions", "kOPT", - "key_sprevious", "kPRV", - "key_sprint", "kPRT", - "key_sredo", "kRDO", - "key_sreplace", "kRPL", - "key_sright", "kRIT", - "key_srsume", "kRES", - "key_ssave", "kSAV", - "key_ssuspend", "kSPD", - "key_sundo", "kUND", - "req_for_input", "rfi", - "key_f11", "kf11", - "key_f12", "kf12", - "key_f13", "kf13", - "key_f14", "kf14", - "key_f15", "kf15", - "key_f16", "kf16", - "key_f17", "kf17", - "key_f18", "kf18", - "key_f19", "kf19", - "key_f20", "kf20", - "key_f21", "kf21", - "key_f22", "kf22", - "key_f23", "kf23", - "key_f24", "kf24", - "key_f25", "kf25", - "key_f26", "kf26", - "key_f27", "kf27", - "key_f28", "kf28", - "key_f29", "kf29", - "key_f30", "kf30", - "key_f31", "kf31", - "key_f32", "kf32", - "key_f33", "kf33", - "key_f34", "kf34", - "key_f35", "kf35", - "key_f36", "kf36", - "key_f37", "kf37", - "key_f38", "kf38", - "key_f39", "kf39", - "key_f40", "kf40", - "key_f41", "kf41", - "key_f42", "kf42", - "key_f43", "kf43", - "key_f44", "kf44", - "key_f45", "kf45", - "key_f46", "kf46", - "key_f47", "kf47", - "key_f48", "kf48", - "key_f49", "kf49", - "key_f50", "kf50", - "key_f51", "kf51", - "key_f52", "kf52", - "key_f53", "kf53", - "key_f54", "kf54", - "key_f55", "kf55", - "key_f56", "kf56", - "key_f57", "kf57", - "key_f58", "kf58", - "key_f59", "kf59", - "key_f60", "kf60", - "key_f61", "kf61", - "key_f62", "kf62", - "key_f63", "kf63", - "clr_bol", "el1", - "clear_margins", "mgc", - "set_left_margin", "smgl", - "set_right_margin", "smgr", - "label_format", "fln", - "set_clock", "sclk", - "display_clock", "dclk", - "remove_clock", "rmclk", - "create_window", "cwin", - "goto_window", "wingo", - "hangup", "hup", - "dial_phone", "dial", - "quick_dial", "qdial", - "tone", "tone", - "pulse", "pulse", - "flash_hook", "hook", - "fixed_pause", "pause", - "wait_tone", "wait", - "user0", "u0", - "user1", "u1", - "user2", "u2", - "user3", "u3", - "user4", "u4", - "user5", "u5", - "user6", "u6", - "user7", "u7", - "user8", "u8", - "user9", "u9", - "orig_pair", "op", - "orig_colors", "oc", - "initialize_color", "initc", - "initialize_pair", "initp", - "set_color_pair", "scp", - "set_foreground", "setf", - "set_background", "setb", - "change_char_pitch", "cpi", - "change_line_pitch", "lpi", - "change_res_horz", "chr", - "change_res_vert", "cvr", - "define_char", "defc", - "enter_doublewide_mode", "swidm", - "enter_draft_quality", "sdrfq", - "enter_italics_mode", "sitm", - "enter_leftward_mode", "slm", - "enter_micro_mode", "smicm", - "enter_near_letter_quality", "snlq", - "enter_normal_quality", "snrmq", - "enter_shadow_mode", "sshm", - "enter_subscript_mode", "ssubm", - "enter_superscript_mode", "ssupm", - "enter_upward_mode", "sum", - "exit_doublewide_mode", "rwidm", - "exit_italics_mode", "ritm", - "exit_leftward_mode", "rlm", - "exit_micro_mode", "rmicm", - "exit_shadow_mode", "rshm", - "exit_subscript_mode", "rsubm", - "exit_superscript_mode", "rsupm", - "exit_upward_mode", "rum", - "micro_column_address", "mhpa", - "micro_down", "mcud1", - "micro_left", "mcub1", - "micro_right", "mcuf1", - "micro_row_address", "mvpa", - "micro_up", "mcuu1", - "order_of_pins", "porder", - "parm_down_micro", "mcud", - "parm_left_micro", "mcub", - "parm_right_micro", "mcuf", - "parm_up_micro", "mcuu", - "select_char_set", "scs", - "set_bottom_margin", "smgb", - "set_bottom_margin_parm", "smgbp", - "set_left_margin_parm", "smglp", - "set_right_margin_parm", "smgrp", - "set_top_margin", "smgt", - "set_top_margin_parm", "smgtp", - "start_bit_image", "sbim", - "start_char_set_def", "scsd", - "stop_bit_image", "rbim", - "stop_char_set_def", "rcsd", - "subscript_characters", "subcs", - "superscript_characters", "supcs", - "these_cause_cr", "docr", - "zero_motion", "zerom", - "char_set_names", "csnm", - "key_mouse", "kmous", - "mouse_info", "minfo", - "req_mouse_pos", "reqmp", - "get_mouse", "getm", - "set_a_foreground", "setaf", - "set_a_background", "setab", - "pkey_plab", "pfxl", - "device_type", "devt", - "code_set_init", "csin", - "set0_des_seq", "s0ds", - "set1_des_seq", "s1ds", - "set2_des_seq", "s2ds", - "set3_des_seq", "s3ds", - "set_lr_margin", "smglr", - "set_tb_margin", "smgtb", - "bit_image_repeat", "birep", - "bit_image_newline", "binel", - "bit_image_carriage_return", "bicr", - "color_names", "colornm", - "define_bit_image_region", "defbi", - "end_bit_image_region", "endbi", - "set_color_band", "setcolor", - "set_page_length", "slines", - "display_pc_char", "dispc", - "enter_pc_charset_mode", "smpch", - "exit_pc_charset_mode", "rmpch", - "enter_scancode_mode", "smsc", - "exit_scancode_mode", "rmsc", - "pc_term_options", "pctrm", - "scancode_escape", "scesc", - "alt_scancode_esc", "scesa", - "enter_horizontal_hl_mode", "ehhlm", - "enter_left_hl_mode", "elhlm", - "enter_low_hl_mode", "elohlm", - "enter_right_hl_mode", "erhlm", - "enter_top_hl_mode", "ethlm", - "enter_vertical_hl_mode", "evhlm", - "set_a_attributes", "sgr1", - "set_pglen_inch", "slength", - "termcap_init2", "OTi2", - "termcap_reset", "OTrs", - "linefeed_if_not_lf", "OTnl", - "backspace_if_not_bs", "OTbc", - "other_non_function_keys", "OTko", - "arrow_key_map", "OTma", - "acs_ulcorner", "OTG2", - "acs_llcorner", "OTG3", - "acs_urcorner", "OTG1", - "acs_lrcorner", "OTG4", - "acs_ltee", "OTGR", - "acs_rtee", "OTGL", - "acs_btee", "OTGU", - "acs_ttee", "OTGD", - "acs_hline", "OTGH", - "acs_vline", "OTGV", - "acs_plus", "OTGC", - "memory_lock", "meml", - "memory_unlock", "memu", - "box_chars_1", "box1", -} diff --git a/vendor/github.com/xo/terminfo/color.go b/vendor/github.com/xo/terminfo/color.go deleted file mode 100644 index 76c439f..0000000 --- a/vendor/github.com/xo/terminfo/color.go +++ /dev/null @@ -1,88 +0,0 @@ -package terminfo - -import ( - "os" - "strconv" - "strings" -) - -// ColorLevel is the color level supported by a terminal. -type ColorLevel uint - -// ColorLevel values. -const ( - ColorLevelNone ColorLevel = iota - ColorLevelBasic - ColorLevelHundreds - ColorLevelMillions -) - -// String satisfies the Stringer interface. -func (c ColorLevel) String() string { - switch c { - case ColorLevelBasic: - return "basic" - case ColorLevelHundreds: - return "hundreds" - case ColorLevelMillions: - return "millions" - } - return "none" -} - -// ChromaFormatterName returns the github.com/alecthomas/chroma compatible -// formatter name for the color level. -func (c ColorLevel) ChromaFormatterName() string { - switch c { - case ColorLevelBasic: - return "terminal" - case ColorLevelHundreds: - return "terminal256" - case ColorLevelMillions: - return "terminal16m" - } - return "noop" -} - -// ColorLevelFromEnv returns the color level COLORTERM, FORCE_COLOR, -// TERM_PROGRAM, or determined from the TERM environment variable. -func ColorLevelFromEnv() (ColorLevel, error) { - // check for overriding environment variables - colorTerm, termProg, forceColor := os.Getenv("COLORTERM"), os.Getenv("TERM_PROGRAM"), os.Getenv("FORCE_COLOR") - switch { - case strings.Contains(colorTerm, "truecolor") || strings.Contains(colorTerm, "24bit") || termProg == "Hyper": - return ColorLevelMillions, nil - case colorTerm != "" || forceColor != "": - return ColorLevelBasic, nil - case termProg == "Apple_Terminal": - return ColorLevelHundreds, nil - case termProg == "iTerm.app": - ver := os.Getenv("TERM_PROGRAM_VERSION") - if ver == "" { - return ColorLevelHundreds, nil - } - i, err := strconv.Atoi(strings.Split(ver, ".")[0]) - if err != nil { - return ColorLevelNone, ErrInvalidTermProgramVersion - } - if i == 3 { - return ColorLevelMillions, nil - } - return ColorLevelHundreds, nil - } - // otherwise determine from TERM's max_colors capability - if term := os.Getenv("TERM"); term != "" { - ti, err := Load(term) - if err != nil { - return ColorLevelNone, err - } - v, ok := ti.Nums[MaxColors] - switch { - case !ok || v <= 16: - return ColorLevelNone, nil - case ok && v >= 256: - return ColorLevelHundreds, nil - } - } - return ColorLevelBasic, nil -} diff --git a/vendor/github.com/xo/terminfo/dec.go b/vendor/github.com/xo/terminfo/dec.go deleted file mode 100644 index dacc88e..0000000 --- a/vendor/github.com/xo/terminfo/dec.go +++ /dev/null @@ -1,245 +0,0 @@ -package terminfo - -import ( - "sort" -) - -const ( - // maxFileLength is the max file length. - maxFileLength = 4096 - // magic is the file magic for terminfo files. - magic = 0o432 - // magicExtended is the file magic for terminfo files with the extended - // number format. - magicExtended = 0o1036 -) - -// header fields. -const ( - fieldMagic = iota - fieldNameSize - fieldBoolCount - fieldNumCount - fieldStringCount - fieldTableSize -) - -// header extended fields. -const ( - fieldExtBoolCount = iota - fieldExtNumCount - fieldExtStringCount - fieldExtOffsetCount - fieldExtTableSize -) - -// hasInvalidCaps determines if the capabilities in h are invalid. -func hasInvalidCaps(h []int) bool { - return h[fieldBoolCount] > CapCountBool || - h[fieldNumCount] > CapCountNum || - h[fieldStringCount] > CapCountString -} - -// capLength returns the total length of the capabilities in bytes. -func capLength(h []int) int { - return h[fieldNameSize] + - h[fieldBoolCount] + - (h[fieldNameSize]+h[fieldBoolCount])%2 + // account for word align - h[fieldNumCount]*2 + - h[fieldStringCount]*2 + - h[fieldTableSize] -} - -// hasInvalidExtOffset determines if the extended offset field is valid. -func hasInvalidExtOffset(h []int) bool { - return h[fieldExtBoolCount]+ - h[fieldExtNumCount]+ - h[fieldExtStringCount]*2 != h[fieldExtOffsetCount] -} - -// extCapLength returns the total length of extended capabilities in bytes. -func extCapLength(h []int, numWidth int) int { - return h[fieldExtBoolCount] + - h[fieldExtBoolCount]%2 + // account for word align - h[fieldExtNumCount]*(numWidth/8) + - h[fieldExtOffsetCount]*2 + - h[fieldExtTableSize] -} - -// findNull finds the position of null in buf. -func findNull(buf []byte, i int) int { - for ; i < len(buf); i++ { - if buf[i] == 0 { - return i - } - } - return -1 -} - -// readStrings decodes n strings from string data table buf using the indexes in idx. -func readStrings(idx []int, buf []byte, n int) (map[int][]byte, int, error) { - var last int - m := make(map[int][]byte) - for i := 0; i < n; i++ { - start := idx[i] - if start < 0 { - continue - } - if end := findNull(buf, start); end != -1 { - m[i], last = buf[start:end], end+1 - } else { - return nil, 0, ErrInvalidStringTable - } - } - return m, last, nil -} - -// decoder holds state info while decoding a terminfo file. -type decoder struct { - buf []byte - pos int - n int -} - -// readBytes reads the next n bytes of buf, incrementing pos by n. -func (d *decoder) readBytes(n int) ([]byte, error) { - if d.n < d.pos+n { - return nil, ErrUnexpectedFileEnd - } - n, d.pos = d.pos, d.pos+n - return d.buf[n:d.pos], nil -} - -// readInts reads n number of ints with width w. -func (d *decoder) readInts(n, w int) ([]int, error) { - w /= 8 - l := n * w - buf, err := d.readBytes(l) - if err != nil { - return nil, err - } - // align - d.pos += d.pos % 2 - z := make([]int, n) - for i, j := 0, 0; i < l; i, j = i+w, j+1 { - switch w { - case 1: - z[i] = int(buf[i]) - case 2: - z[j] = int(int16(buf[i+1])<<8 | int16(buf[i])) - case 4: - z[j] = int(buf[i+3])<<24 | int(buf[i+2])<<16 | int(buf[i+1])<<8 | int(buf[i]) - } - } - return z, nil -} - -// readBools reads the next n bools. -func (d *decoder) readBools(n int) (map[int]bool, map[int]bool, error) { - buf, err := d.readInts(n, 8) - if err != nil { - return nil, nil, err - } - // process - bools, boolsM := make(map[int]bool), make(map[int]bool) - for i, b := range buf { - bools[i] = b == 1 - if int8(b) == -2 { - boolsM[i] = true - } - } - return bools, boolsM, nil -} - -// readNums reads the next n nums. -func (d *decoder) readNums(n, w int) (map[int]int, map[int]bool, error) { - buf, err := d.readInts(n, w) - if err != nil { - return nil, nil, err - } - // process - nums, numsM := make(map[int]int), make(map[int]bool) - for i := 0; i < n; i++ { - nums[i] = buf[i] - if buf[i] == -2 { - numsM[i] = true - } - } - return nums, numsM, nil -} - -// readStringTable reads the string data for n strings and the accompanying data -// table of length sz. -func (d *decoder) readStringTable(n, sz int) ([][]byte, []int, error) { - buf, err := d.readInts(n, 16) - if err != nil { - return nil, nil, err - } - // read string data table - data, err := d.readBytes(sz) - if err != nil { - return nil, nil, err - } - // align - d.pos += d.pos % 2 - // process - s := make([][]byte, n) - var m []int - for i := 0; i < n; i++ { - start := buf[i] - if start == -2 { - m = append(m, i) - } else if start >= 0 { - if end := findNull(data, start); end != -1 { - s[i] = data[start:end] - } else { - return nil, nil, ErrInvalidStringTable - } - } - } - return s, m, nil -} - -// readStrings reads the next n strings and processes the string data table of -// length sz. -func (d *decoder) readStrings(n, sz int) (map[int][]byte, map[int]bool, error) { - s, m, err := d.readStringTable(n, sz) - if err != nil { - return nil, nil, err - } - strs := make(map[int][]byte) - for k, v := range s { - if k == AcsChars { - v = canonicalizeAscChars(v) - } - strs[k] = v - } - strsM := make(map[int]bool, len(m)) - for _, k := range m { - strsM[k] = true - } - return strs, strsM, nil -} - -// canonicalizeAscChars reorders chars to be unique, in order. -// -// see repair_ascc in ncurses-6.3/progs/dump_entry.c -func canonicalizeAscChars(z []byte) []byte { - var c []byte - enc := make(map[byte]byte, len(z)/2) - for i := 0; i < len(z); i += 2 { - if _, ok := enc[z[i]]; !ok { - a, b := z[i], z[i+1] - // log.Printf(">>> a: %d %c, b: %d %c", a, a, b, b) - c, enc[a] = append(c, b), b - } - } - sort.Slice(c, func(i, j int) bool { - return c[i] < c[j] - }) - r := make([]byte, 2*len(c)) - for i := 0; i < len(c); i++ { - r[i*2], r[i*2+1] = c[i], enc[c[i]] - } - return r -} diff --git a/vendor/github.com/xo/terminfo/load.go b/vendor/github.com/xo/terminfo/load.go deleted file mode 100644 index d7cd266..0000000 --- a/vendor/github.com/xo/terminfo/load.go +++ /dev/null @@ -1,64 +0,0 @@ -package terminfo - -import ( - "os" - "os/user" - "path" - "strings" - "sync" -) - -// termCache is the terminfo cache. -var termCache = struct { - db map[string]*Terminfo - sync.RWMutex -}{ - db: make(map[string]*Terminfo), -} - -// Load follows the behavior described in terminfo(5) to find correct the -// terminfo file using the name, reads the file and then returns a Terminfo -// struct that describes the file. -func Load(name string) (*Terminfo, error) { - if name == "" { - return nil, ErrEmptyTermName - } - termCache.RLock() - ti, ok := termCache.db[name] - termCache.RUnlock() - if ok { - return ti, nil - } - var checkDirs []string - // check $TERMINFO - if dir := os.Getenv("TERMINFO"); dir != "" { - checkDirs = append(checkDirs, dir) - } - // check $HOME/.terminfo - u, err := user.Current() - if err != nil { - return nil, err - } - checkDirs = append(checkDirs, path.Join(u.HomeDir, ".terminfo")) - // check $TERMINFO_DIRS - if dirs := os.Getenv("TERMINFO_DIRS"); dirs != "" { - checkDirs = append(checkDirs, strings.Split(dirs, ":")...) - } - // check fallback directories - checkDirs = append(checkDirs, "/etc/terminfo", "/lib/terminfo", "/usr/share/terminfo") - for _, dir := range checkDirs { - ti, err = Open(dir, name) - if err != nil && err != ErrFileNotFound && !os.IsNotExist(err) { - return nil, err - } else if err == nil { - return ti, nil - } - } - return nil, ErrDatabaseDirectoryNotFound -} - -// LoadFromEnv loads the terminal info based on the name contained in -// environment variable TERM. -func LoadFromEnv() (*Terminfo, error) { - return Load(os.Getenv("TERM")) -} diff --git a/vendor/github.com/xo/terminfo/param.go b/vendor/github.com/xo/terminfo/param.go deleted file mode 100644 index ed4cb86..0000000 --- a/vendor/github.com/xo/terminfo/param.go +++ /dev/null @@ -1,405 +0,0 @@ -package terminfo - -import ( - "bytes" - "fmt" - "io" - "strconv" - "strings" - "sync" -) - -// parametizer represents the a scan state for a parameterized string. -type parametizer struct { - // z is the string to parameterize - z []byte - // pos is the current position in s. - pos int - // nest is the current nest level. - nest int - // s is the variable stack. - s stack - // skipElse keeps the state of skipping else. - skipElse bool - // buf is the result buffer. - buf *bytes.Buffer - // params are the parameters to interpolate. - params [9]interface{} - // vars are dynamic variables. - vars [26]interface{} -} - -// staticVars are the static, global variables. -var staticVars = struct { - vars [26]interface{} - sync.Mutex -}{} - -var parametizerPool = sync.Pool{ - New: func() interface{} { - p := new(parametizer) - p.buf = bytes.NewBuffer(make([]byte, 0, 45)) - return p - }, -} - -// newParametizer returns a new initialized parametizer from the pool. -func newParametizer(z []byte) *parametizer { - p := parametizerPool.Get().(*parametizer) - p.z = z - return p -} - -// reset resets the parametizer. -func (p *parametizer) reset() { - p.pos, p.nest = 0, 0 - p.s.reset() - p.buf.Reset() - p.params, p.vars = [9]interface{}{}, [26]interface{}{} - parametizerPool.Put(p) -} - -// stateFn represents the state of the scanner as a function that returns the -// next state. -type stateFn func() stateFn - -// exec executes the parameterizer, interpolating the supplied parameters. -func (p *parametizer) exec() string { - for state := p.scanTextFn; state != nil; { - state = state() - } - return p.buf.String() -} - -// peek returns the next byte. -func (p *parametizer) peek() (byte, error) { - if p.pos >= len(p.z) { - return 0, io.EOF - } - return p.z[p.pos], nil -} - -// writeFrom writes the characters from ppos to pos to the buffer. -func (p *parametizer) writeFrom(ppos int) { - if p.pos > ppos { - // append remaining characters. - p.buf.Write(p.z[ppos:p.pos]) - } -} - -func (p *parametizer) scanTextFn() stateFn { - ppos := p.pos - for { - ch, err := p.peek() - if err != nil { - p.writeFrom(ppos) - return nil - } - if ch == '%' { - p.writeFrom(ppos) - p.pos++ - return p.scanCodeFn - } - p.pos++ - } -} - -func (p *parametizer) scanCodeFn() stateFn { - ch, err := p.peek() - if err != nil { - return nil - } - switch ch { - case '%': - p.buf.WriteByte('%') - case ':': - // this character is used to avoid interpreting "%-" and "%+" as operators. - // the next character is where the format really begins. - p.pos++ - _, err = p.peek() - if err != nil { - return nil - } - return p.scanFormatFn - case '#', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.': - return p.scanFormatFn - case 'o': - p.buf.WriteString(strconv.FormatInt(int64(p.s.popInt()), 8)) - case 'd': - p.buf.WriteString(strconv.Itoa(p.s.popInt())) - case 'x': - p.buf.WriteString(strconv.FormatInt(int64(p.s.popInt()), 16)) - case 'X': - p.buf.WriteString(strings.ToUpper(strconv.FormatInt(int64(p.s.popInt()), 16))) - case 's': - p.buf.WriteString(p.s.popString()) - case 'c': - p.buf.WriteByte(p.s.popByte()) - case 'p': - p.pos++ - return p.pushParamFn - case 'P': - p.pos++ - return p.setDsVarFn - case 'g': - p.pos++ - return p.getDsVarFn - case '\'': - p.pos++ - ch, err = p.peek() - if err != nil { - return nil - } - p.s.push(ch) - // skip the '\'' - p.pos++ - case '{': - p.pos++ - return p.pushIntfn - case 'l': - p.s.push(len(p.s.popString())) - case '+': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai + bi) - case '-': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai - bi) - case '*': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai * bi) - case '/': - bi, ai := p.s.popInt(), p.s.popInt() - if bi != 0 { - p.s.push(ai / bi) - } else { - p.s.push(0) - } - case 'm': - bi, ai := p.s.popInt(), p.s.popInt() - if bi != 0 { - p.s.push(ai % bi) - } else { - p.s.push(0) - } - case '&': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai & bi) - case '|': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai | bi) - case '^': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai ^ bi) - case '=': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai == bi) - case '>': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai > bi) - case '<': - bi, ai := p.s.popInt(), p.s.popInt() - p.s.push(ai < bi) - case 'A': - bi, ai := p.s.popBool(), p.s.popBool() - p.s.push(ai && bi) - case 'O': - bi, ai := p.s.popBool(), p.s.popBool() - p.s.push(ai || bi) - case '!': - p.s.push(!p.s.popBool()) - case '~': - p.s.push(^p.s.popInt()) - case 'i': - for i := range p.params[:2] { - if n, ok := p.params[i].(int); ok { - p.params[i] = n + 1 - } - } - case '?', ';': - case 't': - return p.scanThenFn - case 'e': - p.skipElse = true - return p.skipTextFn - } - p.pos++ - return p.scanTextFn -} - -func (p *parametizer) scanFormatFn() stateFn { - // the character was already read, so no need to check the error. - ch, _ := p.peek() - // 6 should be the maximum length of a format string, for example "%:-9.9d". - f := []byte{'%', ch, 0, 0, 0, 0} - var err error - for { - p.pos++ - ch, err = p.peek() - if err != nil { - return nil - } - f = append(f, ch) - switch ch { - case 'o', 'd', 'x', 'X': - fmt.Fprintf(p.buf, string(f), p.s.popInt()) - break - case 's': - fmt.Fprintf(p.buf, string(f), p.s.popString()) - break - case 'c': - fmt.Fprintf(p.buf, string(f), p.s.popByte()) - break - } - } - p.pos++ - return p.scanTextFn -} - -func (p *parametizer) pushParamFn() stateFn { - ch, err := p.peek() - if err != nil { - return nil - } - if ai := int(ch - '1'); ai >= 0 && ai < len(p.params) { - p.s.push(p.params[ai]) - } else { - p.s.push(0) - } - // skip the '}' - p.pos++ - return p.scanTextFn -} - -func (p *parametizer) setDsVarFn() stateFn { - ch, err := p.peek() - if err != nil { - return nil - } - if ch >= 'A' && ch <= 'Z' { - staticVars.Lock() - staticVars.vars[int(ch-'A')] = p.s.pop() - staticVars.Unlock() - } else if ch >= 'a' && ch <= 'z' { - p.vars[int(ch-'a')] = p.s.pop() - } - p.pos++ - return p.scanTextFn -} - -func (p *parametizer) getDsVarFn() stateFn { - ch, err := p.peek() - if err != nil { - return nil - } - var a byte - if ch >= 'A' && ch <= 'Z' { - a = 'A' - } else if ch >= 'a' && ch <= 'z' { - a = 'a' - } - staticVars.Lock() - p.s.push(staticVars.vars[int(ch-a)]) - staticVars.Unlock() - p.pos++ - return p.scanTextFn -} - -func (p *parametizer) pushIntfn() stateFn { - var ai int - for { - ch, err := p.peek() - if err != nil { - return nil - } - p.pos++ - if ch < '0' || ch > '9' { - p.s.push(ai) - return p.scanTextFn - } - ai = (ai * 10) + int(ch-'0') - } -} - -func (p *parametizer) scanThenFn() stateFn { - p.pos++ - if p.s.popBool() { - return p.scanTextFn - } - p.skipElse = false - return p.skipTextFn -} - -func (p *parametizer) skipTextFn() stateFn { - for { - ch, err := p.peek() - if err != nil { - return nil - } - p.pos++ - if ch == '%' { - break - } - } - if p.skipElse { - return p.skipElseFn - } - return p.skipThenFn -} - -func (p *parametizer) skipThenFn() stateFn { - ch, err := p.peek() - if err != nil { - return nil - } - p.pos++ - switch ch { - case ';': - if p.nest == 0 { - return p.scanTextFn - } - p.nest-- - case '?': - p.nest++ - case 'e': - if p.nest == 0 { - return p.scanTextFn - } - } - return p.skipTextFn -} - -func (p *parametizer) skipElseFn() stateFn { - ch, err := p.peek() - if err != nil { - return nil - } - p.pos++ - switch ch { - case ';': - if p.nest == 0 { - return p.scanTextFn - } - p.nest-- - case '?': - p.nest++ - } - return p.skipTextFn -} - -// Printf evaluates a parameterized terminfo value z, interpolating params. -func Printf(z []byte, params ...interface{}) string { - p := newParametizer(z) - defer p.reset() - // make sure we always have 9 parameters -- makes it easier - // later to skip checks and its faster - for i := 0; i < len(p.params) && i < len(params); i++ { - p.params[i] = params[i] - } - return p.exec() -} - -// Fprintf evaluates a parameterized terminfo value z, interpolating params and -// writing to w. -func Fprintf(w io.Writer, z []byte, params ...interface{}) { - w.Write([]byte(Printf(z, params...))) -} diff --git a/vendor/github.com/xo/terminfo/stack.go b/vendor/github.com/xo/terminfo/stack.go deleted file mode 100644 index a6de395..0000000 --- a/vendor/github.com/xo/terminfo/stack.go +++ /dev/null @@ -1,48 +0,0 @@ -package terminfo - -type stack []interface{} - -func (s *stack) push(v interface{}) { - *s = append(*s, v) -} - -func (s *stack) pop() interface{} { - if len(*s) == 0 { - return nil - } - v := (*s)[len(*s)-1] - *s = (*s)[:len(*s)-1] - return v -} - -func (s *stack) popInt() int { - if i, ok := s.pop().(int); ok { - return i - } - return 0 -} - -func (s *stack) popBool() bool { - if b, ok := s.pop().(bool); ok { - return b - } - return false -} - -func (s *stack) popByte() byte { - if b, ok := s.pop().(byte); ok { - return b - } - return 0 -} - -func (s *stack) popString() string { - if a, ok := s.pop().(string); ok { - return a - } - return "" -} - -func (s *stack) reset() { - *s = (*s)[:0] -} diff --git a/vendor/github.com/xo/terminfo/terminfo.go b/vendor/github.com/xo/terminfo/terminfo.go deleted file mode 100644 index 69e3b60..0000000 --- a/vendor/github.com/xo/terminfo/terminfo.go +++ /dev/null @@ -1,479 +0,0 @@ -// Package terminfo implements reading terminfo files in pure go. -package terminfo - -//go:generate go run gen.go - -import ( - "io" - "io/ioutil" - "path" - "strconv" - "strings" -) - -// Error is a terminfo error. -type Error string - -// Error satisfies the error interface. -func (err Error) Error() string { - return string(err) -} - -const ( - // ErrInvalidFileSize is the invalid file size error. - ErrInvalidFileSize Error = "invalid file size" - // ErrUnexpectedFileEnd is the unexpected file end error. - ErrUnexpectedFileEnd Error = "unexpected file end" - // ErrInvalidStringTable is the invalid string table error. - ErrInvalidStringTable Error = "invalid string table" - // ErrInvalidMagic is the invalid magic error. - ErrInvalidMagic Error = "invalid magic" - // ErrInvalidHeader is the invalid header error. - ErrInvalidHeader Error = "invalid header" - // ErrInvalidNames is the invalid names error. - ErrInvalidNames Error = "invalid names" - // ErrInvalidExtendedHeader is the invalid extended header error. - ErrInvalidExtendedHeader Error = "invalid extended header" - // ErrEmptyTermName is the empty term name error. - ErrEmptyTermName Error = "empty term name" - // ErrDatabaseDirectoryNotFound is the database directory not found error. - ErrDatabaseDirectoryNotFound Error = "database directory not found" - // ErrFileNotFound is the file not found error. - ErrFileNotFound Error = "file not found" - // ErrInvalidTermProgramVersion is the invalid TERM_PROGRAM_VERSION error. - ErrInvalidTermProgramVersion Error = "invalid TERM_PROGRAM_VERSION" -) - -// Terminfo describes a terminal's capabilities. -type Terminfo struct { - // File is the original source file. - File string - // Names are the provided cap names. - Names []string - // Bools are the bool capabilities. - Bools map[int]bool - // BoolsM are the missing bool capabilities. - BoolsM map[int]bool - // Nums are the num capabilities. - Nums map[int]int - // NumsM are the missing num capabilities. - NumsM map[int]bool - // Strings are the string capabilities. - Strings map[int][]byte - // StringsM are the missing string capabilities. - StringsM map[int]bool - // ExtBools are the extended bool capabilities. - ExtBools map[int]bool - // ExtBoolsNames is the map of extended bool capabilities to their index. - ExtBoolNames map[int][]byte - // ExtNums are the extended num capabilities. - ExtNums map[int]int - // ExtNumsNames is the map of extended num capabilities to their index. - ExtNumNames map[int][]byte - // ExtStrings are the extended string capabilities. - ExtStrings map[int][]byte - // ExtStringsNames is the map of extended string capabilities to their index. - ExtStringNames map[int][]byte -} - -// Decode decodes the terminfo data contained in buf. -func Decode(buf []byte) (*Terminfo, error) { - var err error - // check max file length - if len(buf) >= maxFileLength { - return nil, ErrInvalidFileSize - } - d := &decoder{ - buf: buf, - n: len(buf), - } - // read header - h, err := d.readInts(6, 16) - if err != nil { - return nil, err - } - var numWidth int - // check magic - switch { - case h[fieldMagic] == magic: - numWidth = 16 - case h[fieldMagic] == magicExtended: - numWidth = 32 - default: - return nil, ErrInvalidMagic - } - // check header - if hasInvalidCaps(h) { - return nil, ErrInvalidHeader - } - // check remaining length - if d.n-d.pos < capLength(h) { - return nil, ErrUnexpectedFileEnd - } - // read names - names, err := d.readBytes(h[fieldNameSize]) - if err != nil { - return nil, err - } - // check name is terminated properly - i := findNull(names, 0) - if i == -1 { - return nil, ErrInvalidNames - } - names = names[:i] - // read bool caps - bools, boolsM, err := d.readBools(h[fieldBoolCount]) - if err != nil { - return nil, err - } - // read num caps - nums, numsM, err := d.readNums(h[fieldNumCount], numWidth) - if err != nil { - return nil, err - } - // read string caps - strs, strsM, err := d.readStrings(h[fieldStringCount], h[fieldTableSize]) - if err != nil { - return nil, err - } - ti := &Terminfo{ - Names: strings.Split(string(names), "|"), - Bools: bools, - BoolsM: boolsM, - Nums: nums, - NumsM: numsM, - Strings: strs, - StringsM: strsM, - } - // at the end of file, so no extended caps - if d.pos >= d.n { - return ti, nil - } - // decode extended header - eh, err := d.readInts(5, 16) - if err != nil { - return nil, err - } - // check extended offset field - if hasInvalidExtOffset(eh) { - return nil, ErrInvalidExtendedHeader - } - // check extended cap lengths - if d.n-d.pos != extCapLength(eh, numWidth) { - return nil, ErrInvalidExtendedHeader - } - // read extended bool caps - ti.ExtBools, _, err = d.readBools(eh[fieldExtBoolCount]) - if err != nil { - return nil, err - } - // read extended num caps - ti.ExtNums, _, err = d.readNums(eh[fieldExtNumCount], numWidth) - if err != nil { - return nil, err - } - // read extended string data table indexes - extIndexes, err := d.readInts(eh[fieldExtOffsetCount], 16) - if err != nil { - return nil, err - } - // read string data table - extData, err := d.readBytes(eh[fieldExtTableSize]) - if err != nil { - return nil, err - } - // precautionary check that exactly at end of file - if d.pos != d.n { - return nil, ErrUnexpectedFileEnd - } - var last int - // read extended string caps - ti.ExtStrings, last, err = readStrings(extIndexes, extData, eh[fieldExtStringCount]) - if err != nil { - return nil, err - } - extIndexes, extData = extIndexes[eh[fieldExtStringCount]:], extData[last:] - // read extended bool names - ti.ExtBoolNames, _, err = readStrings(extIndexes, extData, eh[fieldExtBoolCount]) - if err != nil { - return nil, err - } - extIndexes = extIndexes[eh[fieldExtBoolCount]:] - // read extended num names - ti.ExtNumNames, _, err = readStrings(extIndexes, extData, eh[fieldExtNumCount]) - if err != nil { - return nil, err - } - extIndexes = extIndexes[eh[fieldExtNumCount]:] - // read extended string names - ti.ExtStringNames, _, err = readStrings(extIndexes, extData, eh[fieldExtStringCount]) - if err != nil { - return nil, err - } - // extIndexes = extIndexes[eh[fieldExtStringCount]:] - return ti, nil -} - -// Open reads the terminfo file name from the specified directory dir. -func Open(dir, name string) (*Terminfo, error) { - var err error - var buf []byte - var filename string - for _, f := range []string{ - path.Join(dir, name[0:1], name), - path.Join(dir, strconv.FormatUint(uint64(name[0]), 16), name), - } { - buf, err = ioutil.ReadFile(f) - if err == nil { - filename = f - break - } - } - if buf == nil { - return nil, ErrFileNotFound - } - // decode - ti, err := Decode(buf) - if err != nil { - return nil, err - } - // save original file name - ti.File = filename - // add to cache - termCache.Lock() - for _, n := range ti.Names { - termCache.db[n] = ti - } - termCache.Unlock() - return ti, nil -} - -// boolCaps returns all bool and extended capabilities using f to format the -// index key. -func (ti *Terminfo) boolCaps(f func(int) string, extended bool) map[string]bool { - m := make(map[string]bool, len(ti.Bools)+len(ti.ExtBools)) - if !extended { - for k, v := range ti.Bools { - m[f(k)] = v - } - } else { - for k, v := range ti.ExtBools { - m[string(ti.ExtBoolNames[k])] = v - } - } - return m -} - -// BoolCaps returns all bool capabilities. -func (ti *Terminfo) BoolCaps() map[string]bool { - return ti.boolCaps(BoolCapName, false) -} - -// BoolCapsShort returns all bool capabilities, using the short name as the -// index. -func (ti *Terminfo) BoolCapsShort() map[string]bool { - return ti.boolCaps(BoolCapNameShort, false) -} - -// ExtBoolCaps returns all extended bool capabilities. -func (ti *Terminfo) ExtBoolCaps() map[string]bool { - return ti.boolCaps(BoolCapName, true) -} - -// ExtBoolCapsShort returns all extended bool capabilities, using the short -// name as the index. -func (ti *Terminfo) ExtBoolCapsShort() map[string]bool { - return ti.boolCaps(BoolCapNameShort, true) -} - -// numCaps returns all num and extended capabilities using f to format the -// index key. -func (ti *Terminfo) numCaps(f func(int) string, extended bool) map[string]int { - m := make(map[string]int, len(ti.Nums)+len(ti.ExtNums)) - if !extended { - for k, v := range ti.Nums { - m[f(k)] = v - } - } else { - for k, v := range ti.ExtNums { - m[string(ti.ExtNumNames[k])] = v - } - } - return m -} - -// NumCaps returns all num capabilities. -func (ti *Terminfo) NumCaps() map[string]int { - return ti.numCaps(NumCapName, false) -} - -// NumCapsShort returns all num capabilities, using the short name as the -// index. -func (ti *Terminfo) NumCapsShort() map[string]int { - return ti.numCaps(NumCapNameShort, false) -} - -// ExtNumCaps returns all extended num capabilities. -func (ti *Terminfo) ExtNumCaps() map[string]int { - return ti.numCaps(NumCapName, true) -} - -// ExtNumCapsShort returns all extended num capabilities, using the short -// name as the index. -func (ti *Terminfo) ExtNumCapsShort() map[string]int { - return ti.numCaps(NumCapNameShort, true) -} - -// stringCaps returns all string and extended capabilities using f to format the -// index key. -func (ti *Terminfo) stringCaps(f func(int) string, extended bool) map[string][]byte { - m := make(map[string][]byte, len(ti.Strings)+len(ti.ExtStrings)) - if !extended { - for k, v := range ti.Strings { - m[f(k)] = v - } - } else { - for k, v := range ti.ExtStrings { - m[string(ti.ExtStringNames[k])] = v - } - } - return m -} - -// StringCaps returns all string capabilities. -func (ti *Terminfo) StringCaps() map[string][]byte { - return ti.stringCaps(StringCapName, false) -} - -// StringCapsShort returns all string capabilities, using the short name as the -// index. -func (ti *Terminfo) StringCapsShort() map[string][]byte { - return ti.stringCaps(StringCapNameShort, false) -} - -// ExtStringCaps returns all extended string capabilities. -func (ti *Terminfo) ExtStringCaps() map[string][]byte { - return ti.stringCaps(StringCapName, true) -} - -// ExtStringCapsShort returns all extended string capabilities, using the short -// name as the index. -func (ti *Terminfo) ExtStringCapsShort() map[string][]byte { - return ti.stringCaps(StringCapNameShort, true) -} - -// Has determines if the bool cap i is present. -func (ti *Terminfo) Has(i int) bool { - return ti.Bools[i] -} - -// Num returns the num cap i, or -1 if not present. -func (ti *Terminfo) Num(i int) int { - n, ok := ti.Nums[i] - if !ok { - return -1 - } - return n -} - -// Printf formats the string cap i, interpolating parameters v. -func (ti *Terminfo) Printf(i int, v ...interface{}) string { - return Printf(ti.Strings[i], v...) -} - -// Fprintf prints the string cap i to writer w, interpolating parameters v. -func (ti *Terminfo) Fprintf(w io.Writer, i int, v ...interface{}) { - Fprintf(w, ti.Strings[i], v...) -} - -// Color takes a foreground and background color and returns string that sets -// them for this terminal. -func (ti *Terminfo) Colorf(fg, bg int, str string) string { - maxColors := int(ti.Nums[MaxColors]) - // map bright colors to lower versions if the color table only holds 8. - if maxColors == 8 { - if fg > 7 && fg < 16 { - fg -= 8 - } - if bg > 7 && bg < 16 { - bg -= 8 - } - } - var s string - if maxColors > fg && fg >= 0 { - s += ti.Printf(SetAForeground, fg) - } - if maxColors > bg && bg >= 0 { - s += ti.Printf(SetABackground, bg) - } - return s + str + ti.Printf(ExitAttributeMode) -} - -// Goto returns a string suitable for addressing the cursor at the given -// row and column. The origin 0, 0 is in the upper left corner of the screen. -func (ti *Terminfo) Goto(row, col int) string { - return Printf(ti.Strings[CursorAddress], row, col) -} - -// Puts emits the string to the writer, but expands inline padding indications -// (of the form $<[delay]> where [delay] is msec) to a suitable number of -// padding characters (usually null bytes) based upon the supplied baud. At -// high baud rates, more padding characters will be inserted. -/*func (ti *Terminfo) Puts(w io.Writer, s string, lines, baud int) (int, error) { - var err error - for { - start := strings.Index(s, "$<") - if start == -1 { - // most strings don't need padding, which is good news! - return io.WriteString(w, s) - } - end := strings.Index(s, ">") - if end == -1 { - // unterminated... just emit bytes unadulterated. - return io.WriteString(w, "$<"+s) - } - var c int - c, err = io.WriteString(w, s[:start]) - if err != nil { - return n + c, err - } - n += c - s = s[start+2:] - val := s[:end] - s = s[end+1:] - var ms int - var dot, mandatory, asterisk bool - unit := 1000 - for _, ch := range val { - switch { - case ch >= '0' && ch <= '9': - ms = (ms * 10) + int(ch-'0') - if dot { - unit *= 10 - } - case ch == '.' && !dot: - dot = true - case ch == '*' && !asterisk: - ms *= lines - asterisk = true - case ch == '/': - mandatory = true - default: - break - } - } - z, pad := ((baud/8)/unit)*ms, ti.Strings[PadChar] - b := make([]byte, len(pad)*z) - for bp := copy(b, pad); bp < len(b); bp *= 2 { - copy(b[bp:], b[:bp]) - } - if (!ti.Bools[XonXoff] && baud > int(ti.Nums[PaddingBaudRate])) || mandatory { - c, err = w.Write(b) - if err != nil { - return n + c, err - } - n += c - } - } - return n, nil -}*/ diff --git a/vendor/go.lsp.dev/jsonrpc2/.codecov.yml b/vendor/go.lsp.dev/jsonrpc2/.codecov.yml deleted file mode 100644 index 95e4289..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/.codecov.yml +++ /dev/null @@ -1,38 +0,0 @@ -codecov: - allow_coverage_offsets: true - notify: - wait_for_ci: false - -coverage: - precision: 1 - round: down - range: "70...100" - - status: - project: - default: - target: auto - threshold: 1% - if_ci_failed: error - if_not_found: success - patch: - default: - only_pulls: true - target: 50% - threshold: 10% - if_ci_failed: error - if_not_found: failure - changes: - default: - if_ci_failed: error - if_not_found: success - only_pulls: false - branches: - - main - -comment: - behavior: default - show_carryforward_flags: true - -github_checks: - annotations: true diff --git a/vendor/go.lsp.dev/jsonrpc2/.errcheckignore b/vendor/go.lsp.dev/jsonrpc2/.errcheckignore deleted file mode 100644 index 7fda6d3..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/.errcheckignore +++ /dev/null @@ -1 +0,0 @@ -(*go.lsp.dev/jsonrpc2.Request).Reply diff --git a/vendor/go.lsp.dev/jsonrpc2/.gitattributes b/vendor/go.lsp.dev/jsonrpc2/.gitattributes deleted file mode 100644 index 169fc0a..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/.gitattributes +++ /dev/null @@ -1,11 +0,0 @@ -# go.lsp.dev/jsonrpc2 project gitattributes file -# https://github.com/github/linguist#using-gitattributes -# https://github.com/github/linguist/blob/master/lib/linguist/languages.yml - -# To prevent CRLF breakages on Windows for fragile files, like testdata. -* -text - -docs/ linguist-documentation -*.pb.go linguist-generated -*_gen.go linguist-generated -*_string.go linguist-generated diff --git a/vendor/go.lsp.dev/jsonrpc2/.gitignore b/vendor/go.lsp.dev/jsonrpc2/.gitignore deleted file mode 100644 index 6211ff9..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# go.lsp.dev/jsonrpc2 project generated files to ignore -# if you want to ignore files created by your editor/tools, -# please consider a global .gitignore https://help.github.com/articles/ignoring-files -# please do not open a pull request to add something created by your editor or tools - -# github/gitignore/Go.gitignore -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -vendor/ - -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -# cgo generated -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -# test generated -_testmain.go - -# profile -*.pprof - -# coverage -coverage.* - -# tools -bin/ diff --git a/vendor/go.lsp.dev/jsonrpc2/.golangci.yml b/vendor/go.lsp.dev/jsonrpc2/.golangci.yml deleted file mode 100644 index c363c18..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/.golangci.yml +++ /dev/null @@ -1,200 +0,0 @@ -run: - timeout: 5m - issues-exit-code: 1 - tests: true - skip-dirs: [] - skip-dirs-use-default: true - skip-files: [] - allow-parallel-runners: true - -output: - format: colored-line-number - print-issued-lines: true - print-linter-name: true - uniq-by-line: true - sort-results: true - -linters-settings: - dupl: - threshold: 100 - # errcheck: - # check-type-assertions: true - # check-blank: true - # exclude: .errcheckignore - funlen: - lines: 100 - statements: 60 - gocognit: - min-complexity: 20 - goconst: - min-len: 3 - min-occurrences: 3 - gocritic: - enabled-tags: - - diagnostic - - experimental - - opinionated - - performance - - style - disabled-checks: - - commentedOutCode - - whyNoLint - settings: - hugeParam: - sizeThreshold: 80 - rangeExprCopy: - sizeThreshold: 512 - rangeValCopy: - sizeThreshold: 128 - gocyclo: - min-complexity: 15 - godot: - scope: declarations - capital: false - gofmt: - simplify: true - goimports: - local-prefixes: go.lsp.dev/jsonrpc2 - golint: - min-confidence: 0.3 - govet: - enable-all: true - check-shadowing: true - disable: - - fieldalignment - depguard: - list-type: blacklist - include-go-root: true - # packages-with-error-message: - # - github.com/sirupsen/logrus: "logging is allowed only by logutils.Log" - lll: - line-length: 120 - tab-width: 1 - maligned: - suggest-new: true - misspell: - locale: US - ignore-words: - - cancelled - nakedret: - max-func-lines: 30 - prealloc: - simple: true - range-loops: true - for-loops: true - testpackage: - skip-regexp: '.*(export)_test\.go' - unparam: - check-exported: true - algo: cha - unused: - check-exported: false - whitespace: - multi-if: true - multi-func: true - -linters: - fast: false - disabled: - - deadcode # Finds unused code - - errcheck # Errcheck is a program for checking for unchecked errors in go programs - - exhaustivestruct # Checks if all struct's fields are initialized - - forbidigo # Forbids identifiers - - gci # Gci control golang package import order and make it always deterministic - - gochecknoglobals # check that no global variables exist - - gochecknoinits # Checks that no init functions are present in Go code - - godox # Tool for detection of FIXME, TODO and other comment keywords - - goerr113 # Golang linter to check the errors handling expressions - - gofumpt # Gofumpt checks whether code was gofumpt-ed - - goheader # Checks is file header matches to pattern - - golint # Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes - - gomnd # An analyzer to detect magic numbers - - gomodguard # Allow and block list linter for direct Go module dependencies - - gosec # Inspects source code for security problems - - nlreturn # nlreturn checks for a new line before return and branch statements to increase code clarity - - paralleltest # paralleltest detects missing usage of t.Parallel() method in your Go test - - scopelint # Scopelint checks for unpinned variables in go programs - - sqlclosecheck # Checks that sql.Rows and sql.Stmt are closed - - unparam # Reports unused function parameters - - wrapcheck # Checks that errors returned from external packages are wrapped TODO(zchee): enable - - wsl # Whitespace Linter - enable: - - asciicheck # Simple linter to check that your code does not contain non-ASCII identifiers - - bodyclose # checks whether HTTP response body is closed successfully - - depguard # Go linter that checks if package imports are in a list of acceptable packages - - dogsled # Checks assignments with too many blank identifiers - - dupl # Tool for code clone detection - - errorlint # source code linter for Go software that can be used to find code that will cause problemswith the error wrapping scheme introduced in Go 1.13 - - exhaustive # check exhaustiveness of enum switch statements - - exportloopref # checks for pointers to enclosing loop variables - - funlen # Tool for detection of long functions - - gocognit # Computes and checks the cognitive complexity of functions - - goconst # Finds repeated strings that could be replaced by a constant - - gocritic # The most opinionated Go source code linter - - gocyclo # Computes and checks the cyclomatic complexity of functions - - godot # Check if comments end in a period - - gofmt # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification - - goimports # Goimports does everything that gofmt does. Additionally it checks unused imports - - goprintffuncname # Checks that printf-like functions are named with `f` at the end - - gosimple # Linter for Go source code that specializes in simplifying a code - - govet # Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string - - ifshort # Checks that your code uses short syntax for if-statements whenever possible - - ineffassign # Detects when assignments to existing variables are not used - - lll # Reports long lines - - makezero # Finds slice declarations with non-zero initial length - - misspell # Finds commonly misspelled English words in comments - - nakedret # Finds naked returns in functions greater than a specified function length - - nestif # Reports deeply nested if statements - - noctx # noctx finds sending http request without context.Context - - nolintlint # Reports ill-formed or insufficient nolint directives - - prealloc # Finds slice declarations that could potentially be preallocated - - predeclared # find code that shadows one of Go's predeclared identifiers - - rowserrcheck # checks whether Err of rows is checked successfully - - staticcheck # Staticcheck is a go vet on steroids, applying a ton of static analysis checks - - structcheck # Finds unused struct fields - - stylecheck # Stylecheck is a replacement for golint - - testpackage # linter that makes you use a separate _test package - - thelper # thelper detects golang test helpers without t.Helper() call and checks the consistency of test helpers - - tparallel # tparallel detects inappropriate usage of t.Parallel() method in your Go test codes - - typecheck # Like the front-end of a Go compiler, parses and type-checks Go code - - unconvert # Remove unnecessary type conversions - - unused # Checks Go code for unused constants, variables, functions and types - - varcheck # Finds unused global variables and constants - - whitespace # Tool for detection of leading and trailing whitespace - -issues: - max-same-issues: 0 - exclude-use-default: true - exclude-rules: - - path: _test\.go - linters: - - errcheck - - funlen - - gocognit - - goconst - - gocyclo - - lll - - maligned - - wrapcheck - - path: "(.*)?_example_test.go" - linters: - - gocritic - # `TestMain` function is no longer required to call `os.Exit` since Go 1.15. - # ref: https://golang.org/doc/go1.15#testing - - text: "SA3000:" - linters: - - staticcheck - # Exclude shadow checking on the variable named err - - text: "shadow: declaration of \"(err|ok)\"" - linters: - - govet - # fake implements - - path: fake/fake.go - linters: - - errcheck - # future use - - path: wire.go - text: "`(codeServerErrorStart|codeServerErrorEnd)` is unused" - # goroutine - - path: handler.go - text: "Error return value of `handler` is not checked" diff --git a/vendor/go.lsp.dev/jsonrpc2/LICENSE b/vendor/go.lsp.dev/jsonrpc2/LICENSE deleted file mode 100644 index e874870..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2019, The Go Language Server Authors -All rights reserved. - -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. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -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 HOLDER 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. diff --git a/vendor/go.lsp.dev/jsonrpc2/Makefile b/vendor/go.lsp.dev/jsonrpc2/Makefile deleted file mode 100644 index a09304b..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/Makefile +++ /dev/null @@ -1,129 +0,0 @@ -# ----------------------------------------------------------------------------- -# global - -.DEFAULT_GOAL := test -comma := , -empty := -space := $(empty) $(empty) - -# ----------------------------------------------------------------------------- -# go - -GO_PATH ?= $(shell go env GOPATH) -GO_OS ?= $(shell go env GOOS) -GO_ARCH ?= $(shell go env GOARCH) - -PKG := $(subst $(GO_PATH)/src/,,$(CURDIR)) -CGO_ENABLED ?= 0 -GO_BUILDTAGS=osusergo netgo static -GO_LDFLAGS=-s -w "-extldflags=-static" -GO_FLAGS ?= -tags='$(subst $(space),$(comma),${GO_BUILDTAGS})' -ldflags='${GO_LDFLAGS}' -installsuffix=netgo - -GO_PKGS := $(shell go list ./...) -GO_TEST ?= ${TOOLS_BIN}/gotestsum -- -GO_TEST_PKGS ?= $(shell go list -f='{{if or .TestGoFiles .XTestGoFiles}}{{.ImportPath}}{{end}}' ./...) -GO_TEST_FLAGS ?= -race -count=1 -GO_TEST_FUNC ?= . -GO_COVERAGE_OUT ?= coverage.out -GO_BENCH_FLAGS ?= -benchmem -GO_BENCH_FUNC ?= . -GO_LINT_FLAGS ?= - -TOOLS := $(shell cd tools; go list -f '{{ join .Imports " " }}' -tags=tools) -TOOLS_BIN := ${CURDIR}/tools/bin - -# Set build environment -JOBS := $(shell getconf _NPROCESSORS_CONF) - -# ----------------------------------------------------------------------------- -# defines - -define target -@printf "+ $(patsubst ,$@,$(1))\\n" >&2 -endef - -# ----------------------------------------------------------------------------- -# target - -##@ test, bench, coverage - -export GOTESTSUM_FORMAT=standard-verbose - -.PHONY: test -test: CGO_ENABLED=1 -test: GO_FLAGS=-tags='$(subst ${space},${comma},${GO_BUILDTAGS})' -test: tools/bin/gotestsum ## Runs package test including race condition. - $(call target) - @CGO_ENABLED=${CGO_ENABLED} ${GO_TEST} ${GO_TEST_FLAGS} -run=${GO_TEST_FUNC} $(strip ${GO_FLAGS}) ${GO_TEST_PKGS} - -.PHONY: bench -bench: ## Take a package benchmark. - $(call target) - @CGO_ENABLED=${CGO_ENABLED} ${GO_TEST} -run='^$$' -bench=${GO_BENCH_FUNC} ${GO_BENCH_FLAGS} $(strip ${GO_FLAGS}) ${GO_TEST_PKGS} - -.PHONY: coverage -coverage: CGO_ENABLED=1 -coverage: GO_FLAGS=-tags='$(subst ${space},${comma},${GO_BUILDTAGS})' -coverage: tools/bin/gotestsum ## Takes packages test coverage. - $(call target) - @CGO_ENABLED=${CGO_ENABLED} ${GO_TEST} ${GO_TEST_FLAGS} -covermode=atomic -coverpkg=${PKG}/... -coverprofile=${GO_COVERAGE_OUT} $(strip ${GO_FLAGS}) ${GO_PKGS} - - -##@ fmt, lint - -.PHONY: lint -lint: fmt lint/golangci-lint ## Run all linters. - -.PHONY: fmt -fmt: tools/bin/goimportz tools/bin/gofumpt ## Run goimportz and gofumpt. - $(call target) - find . -iname "*.go" -not -path "./vendor/**" | xargs -P ${JOBS} ${TOOLS_BIN}/goimportz -local=${PKG},$(subst /jsonrpc2,,$(PKG)) -w - find . -iname "*.go" -not -path "./vendor/**" | xargs -P ${JOBS} ${TOOLS_BIN}/gofumpt -extra -w - -.PHONY: lint/golangci-lint -lint/golangci-lint: tools/bin/golangci-lint .golangci.yml ## Run golangci-lint. - $(call target) - ${TOOLS_BIN}/golangci-lint -j ${JOBS} run $(strip ${GO_LINT_FLAGS}) ./... - - -##@ tools - -.PHONY: tools -tools: tools/bin/'' ## Install tools - -tools/%: tools/bin/% ## install an individual dependent tool - -tools/bin/%: ${CURDIR}/tools/go.mod ${CURDIR}/tools/go.sum - @cd tools; \ - for t in ${TOOLS}; do \ - if [ -z '$*' ] || [ $$(basename $$t) = '$*' ]; then \ - echo "Install $$t ..."; \ - GOBIN=${TOOLS_BIN} CGO_ENABLED=0 go install -v -mod=mod ${GO_FLAGS} "$${t}"; \ - fi \ - done - - -##@ clean - -.PHONY: clean -clean: ## Cleanups binaries and extra files in the package. - $(call target) - @rm -rf *.out *.test *.prof trace.txt ${TOOLS_BIN} - - -##@ miscellaneous - -.PHONY: todo -TODO: ## Print the all of (TODO|BUG|XXX|FIXME|NOTE) in packages. - @grep -E '(TODO|BUG|XXX|FIXME)(\(.+\):|:)' $(shell find . -type f -name '*.go' -and -not -iwholename '*vendor*') - -.PHONY: env/% -env/%: ## Print the value of MAKEFILE_VARIABLE. Use `make env/GO_FLAGS` or etc. - @echo $($*) - - -##@ help - -.PHONY: help -help: ## Show this help. - @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[33m\033[0m\n"} /^[a-zA-Z_0-9\/%_-]+:.*?##/ { printf " \033[1;32m%-20s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) diff --git a/vendor/go.lsp.dev/jsonrpc2/README.md b/vendor/go.lsp.dev/jsonrpc2/README.md deleted file mode 100644 index 373befc..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# jsonrpc2 - -[![CircleCI][circleci-badge]][circleci] [![pkg.go.dev][pkg.go.dev-badge]][pkg.go.dev] [![Go module][module-badge]][module] [![codecov.io][codecov-badge]][codecov] [![GA][ga-badge]][ga] - -Package jsonrpc2 is an implementation of the JSON-RPC 2 specification for Go. - - - -[circleci]: https://app.circleci.com/pipelines/github/go-language-server/jsonrpc2 -[pkg.go.dev]: https://pkg.go.dev/go.lsp.dev/jsonrpc2 -[module]: https://github.com/go-language-server/jsonrpc2/releases/latest -[codecov]: https://codecov.io/gh/go-language-server/jsonrpc2 -[ga]: https://github.com/go-language-server/jsonrpc2 - -[circleci-badge]: https://img.shields.io/circleci/build/github/go-language-server/jsonrpc2/main.svg?style=for-the-badge&label=CIRCLECI&logo=circleci -[pkg.go.dev-badge]: https://bit.ly/shields-io-pkg-go-dev -[module-badge]: https://img.shields.io/github/release/go-language-server/jsonrpc2.svg?color=00add8&label=MODULE&style=for-the-badge&logoWidth=25&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijg1IDU1IDEyMCAxMjAiPjxwYXRoIGZpbGw9IiMwMEFERDgiIGQ9Ik00MC4yIDEwMS4xYy0uNCAwLS41LS4yLS4zLS41bDIuMS0yLjdjLjItLjMuNy0uNSAxLjEtLjVoMzUuN2MuNCAwIC41LjMuMy42bC0xLjcgMi42Yy0uMi4zLS43LjYtMSAuNmwtMzYuMi0uMXptLTE1LjEgOS4yYy0uNCAwLS41LS4yLS4zLS41bDIuMS0yLjdjLjItLjMuNy0uNSAxLjEtLjVoNDUuNmMuNCAwIC42LjMuNS42bC0uOCAyLjRjLS4xLjQtLjUuNi0uOS42bC00Ny4zLjF6bTI0LjIgOS4yYy0uNCAwLS41LS4zLS4zLS42bDEuNC0yLjVjLjItLjMuNi0uNiAxLS42aDIwYy40IDAgLjYuMy42LjdsLS4yIDIuNGMwIC40LS40LjctLjcuN2wtMjEuOC0uMXptMTAzLjgtMjAuMmMtNi4zIDEuNi0xMC42IDIuOC0xNi44IDQuNC0xLjUuNC0xLjYuNS0yLjktMS0xLjUtMS43LTIuNi0yLjgtNC43LTMuOC02LjMtMy4xLTEyLjQtMi4yLTE4LjEgMS41LTYuOCA0LjQtMTAuMyAxMC45LTEwLjIgMTkgLjEgOCA1LjYgMTQuNiAxMy41IDE1LjcgNi44LjkgMTIuNS0xLjUgMTctNi42LjktMS4xIDEuNy0yLjMgMi43LTMuN2gtMTkuM2MtMi4xIDAtMi42LTEuMy0xLjktMyAxLjMtMy4xIDMuNy04LjMgNS4xLTEwLjkuMy0uNiAxLTEuNiAyLjUtMS42aDM2LjRjLS4yIDIuNy0uMiA1LjQtLjYgOC4xLTEuMSA3LjItMy44IDEzLjgtOC4yIDE5LjYtNy4yIDkuNS0xNi42IDE1LjQtMjguNSAxNy05LjggMS4zLTE4LjktLjYtMjYuOS02LjYtNy40LTUuNi0xMS42LTEzLTEyLjctMjIuMi0xLjMtMTAuOSAxLjktMjAuNyA4LjUtMjkuMyA3LjEtOS4zIDE2LjUtMTUuMiAyOC0xNy4zIDkuNC0xLjcgMTguNC0uNiAyNi41IDQuOSA1LjMgMy41IDkuMSA4LjMgMTEuNiAxNC4xLjYuOS4yIDEuNC0xIDEuN3oiLz48cGF0aCBmaWxsPSIjMDBBREQ4IiBkPSJNMTg2LjIgMTU0LjZjLTkuMS0uMi0xNy40LTIuOC0yNC40LTguOC01LjktNS4xLTkuNi0xMS42LTEwLjgtMTkuMy0xLjgtMTEuMyAxLjMtMjEuMyA4LjEtMzAuMiA3LjMtOS42IDE2LjEtMTQuNiAyOC0xNi43IDEwLjItMS44IDE5LjgtLjggMjguNSA1LjEgNy45IDUuNCAxMi44IDEyLjcgMTQuMSAyMi4zIDEuNyAxMy41LTIuMiAyNC41LTExLjUgMzMuOS02LjYgNi43LTE0LjcgMTAuOS0yNCAxMi44LTIuNy41LTUuNC42LTggLjl6bTIzLjgtNDAuNGMtLjEtMS4zLS4xLTIuMy0uMy0zLjMtMS44LTkuOS0xMC45LTE1LjUtMjAuNC0xMy4zLTkuMyAyLjEtMTUuMyA4LTE3LjUgMTcuNC0xLjggNy44IDIgMTUuNyA5LjIgMTguOSA1LjUgMi40IDExIDIuMSAxNi4zLS42IDcuOS00LjEgMTIuMi0xMC41IDEyLjctMTkuMXoiLz48L3N2Zz4= -[codecov-badge]: https://img.shields.io/codecov/c/github/go-language-server/jsonrpc2/main?logo=codecov&style=for-the-badge -[ga-badge]: https://gh-ga-beacon.appspot.com/UA-89201129-1/go-language-server/jsonrpc2?useReferer&pixel diff --git a/vendor/go.lsp.dev/jsonrpc2/codes.go b/vendor/go.lsp.dev/jsonrpc2/codes.go deleted file mode 100644 index 5da58ea..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/codes.go +++ /dev/null @@ -1,86 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -// Code is an error code as defined in the JSON-RPC spec. -type Code int32 - -// list of JSON-RPC error codes. -const ( - // ParseError is the invalid JSON was received by the server. - // An error occurred on the server while parsing the JSON text. - ParseError Code = -32700 - - // InvalidRequest is the JSON sent is not a valid Request object. - InvalidRequest Code = -32600 - - // MethodNotFound is the method does not exist / is not available. - MethodNotFound Code = -32601 - - // InvalidParams is the invalid method parameter(s). - InvalidParams Code = -32602 - - // InternalError is the internal JSON-RPC error. - InternalError Code = -32603 - - // JSONRPCReservedErrorRangeStart is the start range of JSON RPC reserved error codes. - // - // It doesn't denote a real error code. No LSP error codes should - // be defined between the start and end range. For backwards - // compatibility the "ServerNotInitialized" and the "UnknownErrorCode" - // are left in the range. - // - // @since 3.16.0. - JSONRPCReservedErrorRangeStart Code = -32099 - - // CodeServerErrorStart reserved for implementation-defined server-errors. - // - // Deprecated: Use JSONRPCReservedErrorRangeStart instead. - CodeServerErrorStart = JSONRPCReservedErrorRangeStart - - // ServerNotInitialized is the error of server not initialized. - ServerNotInitialized Code = -32002 - - // UnknownError should be used for all non coded errors. - UnknownError Code = -32001 - - // JSONRPCReservedErrorRangeEnd is the start range of JSON RPC reserved error codes. - // - // It doesn't denote a real error code. - // - // @since 3.16.0. - JSONRPCReservedErrorRangeEnd Code = -32000 - - // CodeServerErrorEnd reserved for implementation-defined server-errors. - // - // Deprecated: Use JSONRPCReservedErrorRangeEnd instead. - CodeServerErrorEnd = JSONRPCReservedErrorRangeEnd -) - -// This file contains the Go forms of the wire specification. -// -// See http://www.jsonrpc.org/specification for details. -// -// list of JSON-RPC errors. -var ( - // ErrUnknown should be used for all non coded errors. - ErrUnknown = NewError(UnknownError, "JSON-RPC unknown error") - - // ErrParse is used when invalid JSON was received by the server. - ErrParse = NewError(ParseError, "JSON-RPC parse error") - - // ErrInvalidRequest is used when the JSON sent is not a valid Request object. - ErrInvalidRequest = NewError(InvalidRequest, "JSON-RPC invalid request") - - // ErrMethodNotFound should be returned by the handler when the method does - // not exist / is not available. - ErrMethodNotFound = NewError(MethodNotFound, "JSON-RPC method not found") - - // ErrInvalidParams should be returned by the handler when method - // parameter(s) were invalid. - ErrInvalidParams = NewError(InvalidParams, "JSON-RPC invalid params") - - // ErrInternal is not currently returned but defined for completeness. - ErrInternal = NewError(InternalError, "JSON-RPC internal error") -) diff --git a/vendor/go.lsp.dev/jsonrpc2/conn.go b/vendor/go.lsp.dev/jsonrpc2/conn.go deleted file mode 100644 index 3b12819..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/conn.go +++ /dev/null @@ -1,245 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "bytes" - "context" - "fmt" - "sync" - "sync/atomic" - - "github.com/segmentio/encoding/json" -) - -// Conn is the common interface to jsonrpc clients and servers. -// -// Conn is bidirectional; it does not have a designated server or client end. -// It manages the jsonrpc2 protocol, connecting responses back to their calls. -type Conn interface { - // Call invokes the target method and waits for a response. - // - // The params will be marshaled to JSON before sending over the wire, and will - // be handed to the method invoked. - // - // The response will be unmarshaled from JSON into the result. - // - // The id returned will be unique from this connection, and can be used for - // logging or tracking. - Call(ctx context.Context, method string, params, result interface{}) (ID, error) - - // Notify invokes the target method but does not wait for a response. - // - // The params will be marshaled to JSON before sending over the wire, and will - // be handed to the method invoked. - Notify(ctx context.Context, method string, params interface{}) error - - // Go starts a goroutine to handle the connection. - // - // It must be called exactly once for each Conn. It returns immediately. - // Must block on Done() to wait for the connection to shut down. - // - // This is a temporary measure, this should be started automatically in the - // future. - Go(ctx context.Context, handler Handler) - - // Close closes the connection and it's underlying stream. - // - // It does not wait for the close to complete, use the Done() channel for - // that. - Close() error - - // Done returns a channel that will be closed when the processing goroutine - // has terminated, which will happen if Close() is called or an underlying - // stream is closed. - Done() <-chan struct{} - - // Err returns an error if there was one from within the processing goroutine. - // - // If err returns non nil, the connection will be already closed or closing. - Err() error -} - -type conn struct { - seq int32 // access atomically - writeMu sync.Mutex // protects writes to the stream - stream Stream // supplied stream - pendingMu sync.Mutex // protects the pending map - pending map[ID]chan *Response // holds the pending response channel with the ID as the key. - - done chan struct{} // closed when done - err atomic.Value // holds run error -} - -// NewConn creates a new connection object around the supplied stream. -func NewConn(s Stream) Conn { - conn := &conn{ - stream: s, - pending: make(map[ID]chan *Response), - done: make(chan struct{}), - } - return conn -} - -// Call implements Conn. -func (c *conn) Call(ctx context.Context, method string, params, result interface{}) (id ID, err error) { - // generate a new request identifier - id = NewNumberID(atomic.AddInt32(&c.seq, 1)) - call, err := NewCall(id, method, params) - if err != nil { - return id, fmt.Errorf("marshaling call parameters: %w", err) - } - - // We have to add ourselves to the pending map before we send, otherwise we - // are racing the response. Also add a buffer to rchan, so that if we get a - // wire response between the time this call is cancelled and id is deleted - // from c.pending, the send to rchan will not block. - rchan := make(chan *Response, 1) - - c.pendingMu.Lock() - c.pending[id] = rchan - c.pendingMu.Unlock() - - defer func() { - c.pendingMu.Lock() - delete(c.pending, id) - c.pendingMu.Unlock() - }() - - // now we are ready to send - _, err = c.write(ctx, call) - if err != nil { - // sending failed, we will never get a response, so don't leave it pending - return id, err - } - - // now wait for the response - select { - case resp := <-rchan: - // is it an error response? - if resp.err != nil { - return id, resp.err - } - - if result == nil || len(resp.result) == 0 { - return id, nil - } - - dec := json.NewDecoder(bytes.NewReader(resp.result)) - dec.ZeroCopy() - if err := dec.Decode(result); err != nil { - return id, fmt.Errorf("unmarshaling result: %w", err) - } - - return id, nil - - case <-ctx.Done(): - return id, ctx.Err() - } -} - -// Notify implements Conn. -func (c *conn) Notify(ctx context.Context, method string, params interface{}) (err error) { - notify, err := NewNotification(method, params) - if err != nil { - return fmt.Errorf("marshaling notify parameters: %w", err) - } - - _, err = c.write(ctx, notify) - - return err -} - -func (c *conn) replier(req Message) Replier { - return func(ctx context.Context, result interface{}, err error) error { - call, ok := req.(*Call) - if !ok { - // request was a notify, no need to respond - return nil - } - - response, err := NewResponse(call.id, result, err) - if err != nil { - return err - } - - _, err = c.write(ctx, response) - if err != nil { - // TODO(iancottrell): if a stream write fails, we really need to shut down the whole stream - return err - } - return nil - } -} - -func (c *conn) write(ctx context.Context, msg Message) (int64, error) { - c.writeMu.Lock() - n, err := c.stream.Write(ctx, msg) - c.writeMu.Unlock() - if err != nil { - return 0, fmt.Errorf("write to stream: %w", err) - } - - return n, nil -} - -// Go implements Conn. -func (c *conn) Go(ctx context.Context, handler Handler) { - go c.run(ctx, handler) -} - -func (c *conn) run(ctx context.Context, handler Handler) { - defer close(c.done) - - for { - // get the next message - msg, _, err := c.stream.Read(ctx) - if err != nil { - // The stream failed, we cannot continue. - c.fail(err) - return - } - - switch msg := msg.(type) { - case Request: - if err := handler(ctx, c.replier(msg), msg); err != nil { - c.fail(err) - } - - case *Response: - // If method is not set, this should be a response, in which case we must - // have an id to send the response back to the caller. - c.pendingMu.Lock() - rchan, ok := c.pending[msg.id] - c.pendingMu.Unlock() - if ok { - rchan <- msg - } - } - } -} - -// Close implements Conn. -func (c *conn) Close() error { - return c.stream.Close() -} - -// Done implements Conn. -func (c *conn) Done() <-chan struct{} { - return c.done -} - -// Err implements Conn. -func (c *conn) Err() error { - if err := c.err.Load(); err != nil { - return err.(error) - } - return nil -} - -// fail sets a failure condition on the stream and closes it. -func (c *conn) fail(err error) { - c.err.Store(err) - c.stream.Close() -} diff --git a/vendor/go.lsp.dev/jsonrpc2/errors.go b/vendor/go.lsp.dev/jsonrpc2/errors.go deleted file mode 100644 index 9c15d42..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/errors.go +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "errors" - "fmt" - - "github.com/segmentio/encoding/json" -) - -// Error represents a JSON-RPC error. -type Error struct { - // Code a number indicating the error type that occurred. - Code Code `json:"code"` - - // Message a string providing a short description of the error. - Message string `json:"message"` - - // Data a Primitive or Structured value that contains additional - // information about the error. Can be omitted. - Data *json.RawMessage `json:"data,omitempty"` -} - -// compile time check whether the Error implements error interface. -var _ error = (*Error)(nil) - -// Error implements error.Error. -func (e *Error) Error() string { - if e == nil { - return "" - } - return e.Message -} - -// Unwrap implements errors.Unwrap. -// -// Returns the error underlying the receiver, which may be nil. -func (e *Error) Unwrap() error { return errors.New(e.Message) } - -// NewError builds a Error struct for the suppied code and message. -func NewError(c Code, message string) *Error { - return &Error{ - Code: c, - Message: message, - } -} - -// Errorf builds a Error struct for the suppied code, format and args. -func Errorf(c Code, format string, args ...interface{}) *Error { - return &Error{ - Code: c, - Message: fmt.Sprintf(format, args...), - } -} - -// constErr represents a error constant. -type constErr string - -// compile time check whether the constErr implements error interface. -var _ error = (*constErr)(nil) - -// Error implements error.Error. -func (e constErr) Error() string { return string(e) } - -const ( - // ErrIdleTimeout is returned when serving timed out waiting for new connections. - ErrIdleTimeout = constErr("timed out waiting for new connections") -) diff --git a/vendor/go.lsp.dev/jsonrpc2/handler.go b/vendor/go.lsp.dev/jsonrpc2/handler.go deleted file mode 100644 index 3c4e322..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/handler.go +++ /dev/null @@ -1,120 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "context" - "fmt" - "sync" -) - -// Handler is invoked to handle incoming requests. -// -// The Replier sends a reply to the request and must be called exactly once. -type Handler func(ctx context.Context, reply Replier, req Request) error - -// Replier is passed to handlers to allow them to reply to the request. -// -// If err is set then result will be ignored. -type Replier func(ctx context.Context, result interface{}, err error) error - -// MethodNotFoundHandler is a Handler that replies to all call requests with the -// standard method not found response. -// -// This should normally be the final handler in a chain. -func MethodNotFoundHandler(ctx context.Context, reply Replier, req Request) error { - return reply(ctx, nil, fmt.Errorf("%q: %w", req.Method(), ErrMethodNotFound)) -} - -// ReplyHandler creates a Handler that panics if the wrapped handler does -// not call Reply for every request that it is passed. -func ReplyHandler(handler Handler) (h Handler) { - h = Handler(func(ctx context.Context, reply Replier, req Request) error { - called := false - err := handler(ctx, func(ctx context.Context, result interface{}, err error) error { - if called { - panic(fmt.Errorf("request %q replied to more than once", req.Method())) - } - called = true - - return reply(ctx, result, err) - }, req) - if !called { - panic(fmt.Errorf("request %q was never replied to", req.Method())) - } - return err - }) - - return h -} - -// CancelHandler returns a handler that supports cancellation, and a function -// that can be used to trigger canceling in progress requests. -func CancelHandler(handler Handler) (h Handler, canceller func(id ID)) { - var mu sync.Mutex - handling := make(map[ID]context.CancelFunc) - - h = Handler(func(ctx context.Context, reply Replier, req Request) error { - if call, ok := req.(*Call); ok { - cancelCtx, cancel := context.WithCancel(ctx) - ctx = cancelCtx - - mu.Lock() - handling[call.ID()] = cancel - mu.Unlock() - - innerReply := reply - reply = func(ctx context.Context, result interface{}, err error) error { - mu.Lock() - delete(handling, call.ID()) - mu.Unlock() - return innerReply(ctx, result, err) - } - } - return handler(ctx, reply, req) - }) - - canceller = func(id ID) { - mu.Lock() - cancel, found := handling[id] - mu.Unlock() - if found { - cancel() - } - } - - return h, canceller -} - -// AsyncHandler returns a handler that processes each request goes in its own -// goroutine. -// -// The handler returns immediately, without the request being processed. -// Each request then waits for the previous request to finish before it starts. -// -// This allows the stream to unblock at the cost of unbounded goroutines -// all stalled on the previous one. -func AsyncHandler(handler Handler) (h Handler) { - nextRequest := make(chan struct{}) - close(nextRequest) - - h = Handler(func(ctx context.Context, reply Replier, req Request) error { - waitForPrevious := nextRequest - nextRequest = make(chan struct{}) - unlockNext := nextRequest - innerReply := reply - reply = func(ctx context.Context, result interface{}, err error) error { - close(unlockNext) - return innerReply(ctx, result, err) - } - - go func() { - <-waitForPrevious - _ = handler(ctx, reply, req) - }() - return nil - }) - - return h -} diff --git a/vendor/go.lsp.dev/jsonrpc2/jsonrpc2.go b/vendor/go.lsp.dev/jsonrpc2/jsonrpc2.go deleted file mode 100644 index dafd066..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/jsonrpc2.go +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -// Package jsonrpc2 is an implementation of the JSON-RPC 2 specification for Go. -// -// https://www.jsonrpc.org/specification -package jsonrpc2 // import "go.lsp.dev/jsonrpc2" diff --git a/vendor/go.lsp.dev/jsonrpc2/message.go b/vendor/go.lsp.dev/jsonrpc2/message.go deleted file mode 100644 index 0f3fd54..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/message.go +++ /dev/null @@ -1,358 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "bytes" - "errors" - "fmt" - - "github.com/segmentio/encoding/json" -) - -// Message is the interface to all JSON-RPC message types. -// -// They share no common functionality, but are a closed set of concrete types -// that are allowed to implement this interface. -// -// The message types are *Call, *Response and *Notification. -type Message interface { - // jsonrpc2Message is used to make the set of message implementations a - // closed set. - jsonrpc2Message() -} - -// Request is the shared interface to jsonrpc2 messages that request -// a method be invoked. -// -// The request types are a closed set of *Call and *Notification. -type Request interface { - Message - - // Method is a string containing the method name to invoke. - Method() string - // Params is either a struct or an array with the parameters of the method. - Params() json.RawMessage - - // jsonrpc2Request is used to make the set of request implementations closed. - jsonrpc2Request() -} - -// Call is a request that expects a response. -// -// The response will have a matching ID. -type Call struct { - // Method is a string containing the method name to invoke. - method string - // Params is either a struct or an array with the parameters of the method. - params json.RawMessage - // id of this request, used to tie the Response back to the request. - id ID -} - -// make sure a Call implements the Request, json.Marshaler and json.Unmarshaler and interfaces. -var ( - _ Request = (*Call)(nil) - _ json.Marshaler = (*Call)(nil) - _ json.Unmarshaler = (*Call)(nil) -) - -// NewCall constructs a new Call message for the supplied ID, method and -// parameters. -func NewCall(id ID, method string, params interface{}) (*Call, error) { - p, merr := marshalInterface(params) - req := &Call{ - id: id, - method: method, - params: p, - } - return req, merr -} - -// ID returns the current call id. -func (c *Call) ID() ID { return c.id } - -// Method implements Request. -func (c *Call) Method() string { return c.method } - -// Params implements Request. -func (c *Call) Params() json.RawMessage { return c.params } - -// jsonrpc2Message implements Request. -func (Call) jsonrpc2Message() {} - -// jsonrpc2Request implements Request. -func (Call) jsonrpc2Request() {} - -// MarshalJSON implements json.Marshaler. -func (c Call) MarshalJSON() ([]byte, error) { - req := wireRequest{ - Method: c.method, - Params: &c.params, - ID: &c.id, - } - data, err := json.Marshal(req) - if err != nil { - return data, fmt.Errorf("marshaling call: %w", err) - } - - return data, nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (c *Call) UnmarshalJSON(data []byte) error { - var req wireRequest - dec := json.NewDecoder(bytes.NewReader(data)) - dec.ZeroCopy() - if err := dec.Decode(&req); err != nil { - return fmt.Errorf("unmarshaling call: %w", err) - } - - c.method = req.Method - if req.Params != nil { - c.params = *req.Params - } - if req.ID != nil { - c.id = *req.ID - } - - return nil -} - -// Response is a reply to a Request. -// -// It will have the same ID as the call it is a response to. -type Response struct { - // result is the content of the response. - result json.RawMessage - // err is set only if the call failed. - err error - // ID of the request this is a response to. - id ID -} - -// make sure a Response implements the Message, json.Marshaler and json.Unmarshaler and interfaces. -var ( - _ Message = (*Response)(nil) - _ json.Marshaler = (*Response)(nil) - _ json.Unmarshaler = (*Response)(nil) -) - -// NewResponse constructs a new Response message that is a reply to the -// supplied. If err is set result may be ignored. -func NewResponse(id ID, result interface{}, err error) (*Response, error) { - r, merr := marshalInterface(result) - resp := &Response{ - id: id, - result: r, - err: err, - } - return resp, merr -} - -// ID returns the current response id. -func (r *Response) ID() ID { return r.id } - -// Result returns the Response result. -func (r *Response) Result() json.RawMessage { return r.result } - -// Err returns the Response error. -func (r *Response) Err() error { return r.err } - -// jsonrpc2Message implements Message. -func (r *Response) jsonrpc2Message() {} - -// MarshalJSON implements json.Marshaler. -func (r Response) MarshalJSON() ([]byte, error) { - resp := &wireResponse{ - Error: toError(r.err), - ID: &r.id, - } - if resp.Error == nil { - resp.Result = &r.result - } - - data, err := json.Marshal(resp) - if err != nil { - return data, fmt.Errorf("marshaling notification: %w", err) - } - - return data, nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (r *Response) UnmarshalJSON(data []byte) error { - var resp wireResponse - dec := json.NewDecoder(bytes.NewReader(data)) - dec.ZeroCopy() - if err := dec.Decode(&resp); err != nil { - return fmt.Errorf("unmarshaling jsonrpc response: %w", err) - } - - if resp.Result != nil { - r.result = *resp.Result - } - if resp.Error != nil { - r.err = resp.Error - } - if resp.ID != nil { - r.id = *resp.ID - } - - return nil -} - -func toError(err error) *Error { - if err == nil { - // no error, the response is complete - return nil - } - - var wrapped *Error - if errors.As(err, &wrapped) { - // already a wire error, just use it - return wrapped - } - - result := &Error{Message: err.Error()} - if errors.As(err, &wrapped) { - // if we wrapped a wire error, keep the code from the wrapped error - // but the message from the outer error - result.Code = wrapped.Code - } - - return result -} - -// Notification is a request for which a response cannot occur, and as such -// it has not ID. -type Notification struct { - // Method is a string containing the method name to invoke. - method string - - params json.RawMessage -} - -// make sure a Notification implements the Request, json.Marshaler and json.Unmarshaler and interfaces. -var ( - _ Request = (*Notification)(nil) - _ json.Marshaler = (*Notification)(nil) - _ json.Unmarshaler = (*Notification)(nil) -) - -// NewNotification constructs a new Notification message for the supplied -// method and parameters. -func NewNotification(method string, params interface{}) (*Notification, error) { - p, merr := marshalInterface(params) - notify := &Notification{ - method: method, - params: p, - } - return notify, merr -} - -// Method implements Request. -func (n *Notification) Method() string { return n.method } - -// Params implements Request. -func (n *Notification) Params() json.RawMessage { return n.params } - -// jsonrpc2Message implements Request. -func (Notification) jsonrpc2Message() {} - -// jsonrpc2Request implements Request. -func (Notification) jsonrpc2Request() {} - -// MarshalJSON implements json.Marshaler. -func (n Notification) MarshalJSON() ([]byte, error) { - req := wireRequest{ - Method: n.method, - Params: &n.params, - } - data, err := json.Marshal(req) - if err != nil { - return data, fmt.Errorf("marshaling notification: %w", err) - } - - return data, nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (n *Notification) UnmarshalJSON(data []byte) error { - var req wireRequest - dec := json.NewDecoder(bytes.NewReader(data)) - dec.ZeroCopy() - if err := dec.Decode(&req); err != nil { - return fmt.Errorf("unmarshaling notification: %w", err) - } - - n.method = req.Method - if req.Params != nil { - n.params = *req.Params - } - - return nil -} - -// DecodeMessage decodes data to Message. -func DecodeMessage(data []byte) (Message, error) { - var msg combined - dec := json.NewDecoder(bytes.NewReader(data)) - dec.ZeroCopy() - if err := dec.Decode(&msg); err != nil { - return nil, fmt.Errorf("unmarshaling jsonrpc message: %w", err) - } - - if msg.Method == "" { - // no method, should be a response - if msg.ID == nil { - return nil, ErrInvalidRequest - } - - resp := &Response{ - id: *msg.ID, - } - if msg.Error != nil { - resp.err = msg.Error - } - if msg.Result != nil { - resp.result = *msg.Result - } - - return resp, nil - } - - // has a method, must be a request - if msg.ID == nil { - // request with no ID is a notify - notify := &Notification{ - method: msg.Method, - } - if msg.Params != nil { - notify.params = *msg.Params - } - - return notify, nil - } - - // request with an ID, must be a call - call := &Call{ - method: msg.Method, - id: *msg.ID, - } - if msg.Params != nil { - call.params = *msg.Params - } - - return call, nil -} - -// marshalInterface marshal obj to json.RawMessage. -func marshalInterface(obj interface{}) (json.RawMessage, error) { - data, err := json.Marshal(obj) - if err != nil { - return json.RawMessage{}, fmt.Errorf("failed to marshal json: %w", err) - } - return json.RawMessage(data), nil -} diff --git a/vendor/go.lsp.dev/jsonrpc2/serve.go b/vendor/go.lsp.dev/jsonrpc2/serve.go deleted file mode 100644 index 3fc28dd..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/serve.go +++ /dev/null @@ -1,129 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "context" - "fmt" - "net" - "os" - "time" -) - -// NOTE: This file provides an experimental API for serving multiple remote -// jsonrpc2 clients over the network. For now, it is intentionally similar to -// net/http, but that may change in the future as we figure out the correct -// semantics. - -// StreamServer is used to serve incoming jsonrpc2 clients communicating over -// a newly created connection. -type StreamServer interface { - ServeStream(context.Context, Conn) error -} - -// ServerFunc is an adapter that implements the StreamServer interface -// using an ordinary function. -type ServerFunc func(context.Context, Conn) error - -// ServeStream implements StreamServer. -// -// ServeStream calls f(ctx, s). -func (f ServerFunc) ServeStream(ctx context.Context, c Conn) error { - return f(ctx, c) -} - -// HandlerServer returns a StreamServer that handles incoming streams using the -// provided handler. -func HandlerServer(h Handler) StreamServer { - return ServerFunc(func(ctx context.Context, conn Conn) error { - conn.Go(ctx, h) - <-conn.Done() - return conn.Err() - }) -} - -// ListenAndServe starts an jsonrpc2 server on the given address. -// -// If idleTimeout is non-zero, ListenAndServe exits after there are no clients for -// this duration, otherwise it exits only on error. -func ListenAndServe(ctx context.Context, network, addr string, server StreamServer, idleTimeout time.Duration) error { - ln, err := net.Listen(network, addr) - if err != nil { - return fmt.Errorf("failed to listen %s:%s: %w", network, addr, err) - } - defer ln.Close() - - if network == "unix" { - defer os.Remove(addr) - } - - return Serve(ctx, ln, server, idleTimeout) -} - -// Serve accepts incoming connections from the network, and handles them using -// the provided server. If idleTimeout is non-zero, ListenAndServe exits after -// there are no clients for this duration, otherwise it exits only on error. -func Serve(ctx context.Context, ln net.Listener, server StreamServer, idleTimeout time.Duration) error { - ctx, cancel := context.WithCancel(ctx) - defer cancel() - - // Max duration: ~290 years; surely that's long enough. - const forever = 1<<63 - 1 - if idleTimeout <= 0 { - idleTimeout = forever - } - connTimer := time.NewTimer(idleTimeout) - - newConns := make(chan net.Conn) - doneListening := make(chan error) - closedConns := make(chan error) - - go func() { - for { - nc, err := ln.Accept() - if err != nil { - select { - case doneListening <- fmt.Errorf("accept: %w", err): - case <-ctx.Done(): - } - return - } - - newConns <- nc - } - }() - - activeConns := 0 - for { - select { - case netConn := <-newConns: - activeConns++ - connTimer.Stop() - stream := NewStream(netConn) - go func() { - conn := NewConn(stream) - closedConns <- server.ServeStream(ctx, conn) - stream.Close() - }() - - case err := <-doneListening: - return err - - case <-closedConns: - // if !isClosingError(err) { - // } - - activeConns-- - if activeConns == 0 { - connTimer.Reset(idleTimeout) - } - - case <-connTimer.C: - return ErrIdleTimeout - - case <-ctx.Done(): - return ctx.Err() - } - } -} diff --git a/vendor/go.lsp.dev/jsonrpc2/stream.go b/vendor/go.lsp.dev/jsonrpc2/stream.go deleted file mode 100644 index b05ab6b..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/stream.go +++ /dev/null @@ -1,226 +0,0 @@ -// SPDX-FileCopyrightText: 2018 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "bufio" - "context" - stdjson "encoding/json" - "fmt" - "io" - "strconv" - "strings" - - "github.com/segmentio/encoding/json" -) - -const ( - // HdrContentLength is the HTTP header name of the length of the content part in bytes. This header is required. - // This entity header indicates the size of the entity-body, in bytes, sent to the recipient. - // - // RFC 7230, section 3.3.2: Content-Length: - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - HdrContentLength = "Content-Length" - - // HeaderContentType is the mime type of the content part. Defaults to "application/vscode-jsonrpc; charset=utf-8". - // This entity header is used to indicate the media type of the resource. - // - // RFC 7231, section 3.1.1.5: Content-Type: - // https://tools.ietf.org/html/rfc7231#section-3.1.1.5 - HdrContentType = "Content-Type" - - // HeaderContentSeparator is the header and content part separator. - HdrContentSeparator = "\r\n\r\n" -) - -// Framer wraps a network connection up into a Stream. -// -// It is responsible for the framing and encoding of messages into wire form. -// NewRawStream and NewStream are implementations of a Framer. -type Framer func(conn io.ReadWriteCloser) Stream - -// Stream abstracts the transport mechanics from the JSON RPC protocol. -// -// A Conn reads and writes messages using the stream it was provided on -// construction, and assumes that each call to Read or Write fully transfers -// a single message, or returns an error. -// -// A stream is not safe for concurrent use, it is expected it will be used by -// a single Conn in a safe manner. -type Stream interface { - // Read gets the next message from the stream. - Read(context.Context) (Message, int64, error) - - // Write sends a message to the stream. - Write(context.Context, Message) (int64, error) - - // Close closes the connection. - // Any blocked Read or Write operations will be unblocked and return errors. - Close() error -} - -type rawStream struct { - conn io.ReadWriteCloser - in *stdjson.Decoder -} - -// NewRawStream returns a Stream built on top of a io.ReadWriteCloser. -// -// The messages are sent with no wrapping, and rely on json decode consistency -// to determine message boundaries. -func NewRawStream(conn io.ReadWriteCloser) Stream { - return &rawStream{ - conn: conn, - in: stdjson.NewDecoder(conn), // TODO(zchee): why test fail using segmentio json.Decoder? - } -} - -// Read implements Stream.Read. -func (s *rawStream) Read(ctx context.Context) (Message, int64, error) { - select { - case <-ctx.Done(): - return nil, 0, ctx.Err() - default: - } - - var raw stdjson.RawMessage - if err := s.in.Decode(&raw); err != nil { - return nil, 0, fmt.Errorf("decoding raw message: %w", err) - } - - msg, err := DecodeMessage(raw) - return msg, int64(len(raw)), err -} - -// Write implements Stream.Write. -func (s *rawStream) Write(ctx context.Context, msg Message) (int64, error) { - select { - case <-ctx.Done(): - return 0, ctx.Err() - default: - } - - data, err := json.Marshal(msg) - if err != nil { - return 0, fmt.Errorf("marshaling message: %w", err) - } - - n, err := s.conn.Write(data) - if err != nil { - return 0, fmt.Errorf("write to stream: %w", err) - } - - return int64(n), nil -} - -// Close implements Stream.Close. -func (s *rawStream) Close() error { - return s.conn.Close() -} - -type stream struct { - conn io.ReadWriteCloser - in *bufio.Reader -} - -// NewStream returns a Stream built on top of a io.ReadWriteCloser. -// -// The messages are sent with HTTP content length and MIME type headers. -// This is the format used by LSP and others. -func NewStream(conn io.ReadWriteCloser) Stream { - return &stream{ - conn: conn, - in: bufio.NewReader(conn), - } -} - -// Read implements Stream.Read. -func (s *stream) Read(ctx context.Context) (Message, int64, error) { - select { - case <-ctx.Done(): - return nil, 0, ctx.Err() - default: - } - - var total int64 - var length int64 - // read the header, stop on the first empty line - for { - line, err := s.in.ReadString('\n') - total += int64(len(line)) - if err != nil { - return nil, total, fmt.Errorf("failed reading header line: %w", err) - } - - line = strings.TrimSpace(line) - // check we have a header line - if line == "" { - break - } - - colon := strings.IndexRune(line, ':') - if colon < 0 { - return nil, total, fmt.Errorf("invalid header line %q", line) - } - - name, value := line[:colon], strings.TrimSpace(line[colon+1:]) - switch name { - case HdrContentLength: - if length, err = strconv.ParseInt(value, 10, 32); err != nil { - return nil, total, fmt.Errorf("failed parsing %s: %v: %w", HdrContentLength, value, err) - } - if length <= 0 { - return nil, total, fmt.Errorf("invalid %s: %v", HdrContentLength, length) - } - default: - // ignoring unknown headers - } - } - - if length == 0 { - return nil, total, fmt.Errorf("missing %s header", HdrContentLength) - } - - data := make([]byte, length) - if _, err := io.ReadFull(s.in, data); err != nil { - return nil, total, fmt.Errorf("read full of data: %w", err) - } - - total += length - msg, err := DecodeMessage(data) - return msg, total, err -} - -// Write implements Stream.Write. -func (s *stream) Write(ctx context.Context, msg Message) (int64, error) { - select { - case <-ctx.Done(): - return 0, ctx.Err() - default: - } - - data, err := json.Marshal(msg) - if err != nil { - return 0, fmt.Errorf("marshaling message: %w", err) - } - - n, err := fmt.Fprintf(s.conn, "%s: %v%s", HdrContentLength, len(data), HdrContentSeparator) - total := int64(n) - if err != nil { - return 0, fmt.Errorf("write data to conn: %w", err) - } - - n, err = s.conn.Write(data) - total += int64(n) - if err != nil { - return 0, fmt.Errorf("write data to conn: %w", err) - } - - return total, nil -} - -// Close implements Stream.Close. -func (s *stream) Close() error { - return s.conn.Close() -} diff --git a/vendor/go.lsp.dev/jsonrpc2/wire.go b/vendor/go.lsp.dev/jsonrpc2/wire.go deleted file mode 100644 index 1fb3f7f..0000000 --- a/vendor/go.lsp.dev/jsonrpc2/wire.go +++ /dev/null @@ -1,140 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "fmt" - - "github.com/segmentio/encoding/json" -) - -// Version represents a JSON-RPC version. -const Version = "2.0" - -// version is a special 0 sized struct that encodes as the jsonrpc version tag. -// -// It will fail during decode if it is not the correct version tag in the stream. -type version struct{} - -// compile time check whether the version implements a json.Marshaler and json.Unmarshaler interfaces. -var ( - _ json.Marshaler = (*version)(nil) - _ json.Unmarshaler = (*version)(nil) -) - -// MarshalJSON implements json.Marshaler. -func (version) MarshalJSON() ([]byte, error) { - return json.Marshal(Version) -} - -// UnmarshalJSON implements json.Unmarshaler. -func (version) UnmarshalJSON(data []byte) error { - version := "" - if err := json.Unmarshal(data, &version); err != nil { - return fmt.Errorf("failed to Unmarshal: %w", err) - } - if version != Version { - return fmt.Errorf("invalid RPC version %v", version) - } - return nil -} - -// ID is a Request identifier. -// -// Only one of either the Name or Number members will be set, using the -// number form if the Name is the empty string. -type ID struct { - name string - number int32 -} - -// compile time check whether the ID implements a fmt.Formatter, json.Marshaler and json.Unmarshaler interfaces. -var ( - _ fmt.Formatter = (*ID)(nil) - _ json.Marshaler = (*ID)(nil) - _ json.Unmarshaler = (*ID)(nil) -) - -// NewNumberID returns a new number request ID. -func NewNumberID(v int32) ID { return ID{number: v} } - -// NewStringID returns a new string request ID. -func NewStringID(v string) ID { return ID{name: v} } - -// Format writes the ID to the formatter. -// -// If the rune is q the representation is non ambiguous, -// string forms are quoted, number forms are preceded by a #. -func (id ID) Format(f fmt.State, r rune) { - numF, strF := `%d`, `%s` - if r == 'q' { - numF, strF = `#%d`, `%q` - } - - switch { - case id.name != "": - fmt.Fprintf(f, strF, id.name) - default: - fmt.Fprintf(f, numF, id.number) - } -} - -// MarshalJSON implements json.Marshaler. -func (id *ID) MarshalJSON() ([]byte, error) { - if id.name != "" { - return json.Marshal(id.name) - } - return json.Marshal(id.number) -} - -// UnmarshalJSON implements json.Unmarshaler. -func (id *ID) UnmarshalJSON(data []byte) error { - *id = ID{} - if err := json.Unmarshal(data, &id.number); err == nil { - return nil - } - return json.Unmarshal(data, &id.name) -} - -// wireRequest is sent to a server to represent a Call or Notify operaton. -type wireRequest struct { - // VersionTag is always encoded as the string "2.0" - VersionTag version `json:"jsonrpc"` - // Method is a string containing the method name to invoke. - Method string `json:"method"` - // Params is either a struct or an array with the parameters of the method. - Params *json.RawMessage `json:"params,omitempty"` - // The id of this request, used to tie the Response back to the request. - // Will be either a string or a number. If not set, the Request is a notify, - // and no response is possible. - ID *ID `json:"id,omitempty"` -} - -// wireResponse is a reply to a Request. -// -// It will always have the ID field set to tie it back to a request, and will -// have either the Result or Error fields set depending on whether it is a -// success or failure wireResponse. -type wireResponse struct { - // VersionTag is always encoded as the string "2.0" - VersionTag version `json:"jsonrpc"` - // Result is the response value, and is required on success. - Result *json.RawMessage `json:"result,omitempty"` - // Error is a structured error response if the call fails. - Error *Error `json:"error,omitempty"` - // ID must be set and is the identifier of the Request this is a response to. - ID *ID `json:"id,omitempty"` -} - -// combined has all the fields of both Request and Response. -// -// We can decode this and then work out which it is. -type combined struct { - VersionTag version `json:"jsonrpc"` - ID *ID `json:"id,omitempty"` - Method string `json:"method"` - Params *json.RawMessage `json:"params,omitempty"` - Result *json.RawMessage `json:"result,omitempty"` - Error *Error `json:"error,omitempty"` -} diff --git a/vendor/go.lsp.dev/pkg/LICENSE b/vendor/go.lsp.dev/pkg/LICENSE deleted file mode 100644 index 4551f8c..0000000 --- a/vendor/go.lsp.dev/pkg/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2020, The Go Language Server Authors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -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 HOLDER 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. diff --git a/vendor/go.lsp.dev/pkg/xcontext/xcontext.go b/vendor/go.lsp.dev/pkg/xcontext/xcontext.go deleted file mode 100644 index df9017e..0000000 --- a/vendor/go.lsp.dev/pkg/xcontext/xcontext.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2020 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -// Package xcontext is a package to offer the extra functionality we need -// from contexts that is not available from the standard context package. -package xcontext - -import ( - "context" - "time" -) - -// Detach returns a context that keeps all the values of its parent context -// but detaches from the cancellation and error handling. -func Detach(ctx context.Context) context.Context { return detachedContext{ctx} } - -type detachedContext struct{ parent context.Context } - -func (v detachedContext) Deadline() (time.Time, bool) { return time.Time{}, false } -func (v detachedContext) Done() <-chan struct{} { return nil } -func (v detachedContext) Err() error { return nil } -func (v detachedContext) Value(key interface{}) interface{} { return v.parent.Value(key) } diff --git a/vendor/go.lsp.dev/protocol/.codecov.yml b/vendor/go.lsp.dev/protocol/.codecov.yml deleted file mode 100644 index dd726bf..0000000 --- a/vendor/go.lsp.dev/protocol/.codecov.yml +++ /dev/null @@ -1,45 +0,0 @@ -codecov: - allow_coverage_offsets: true - -parsers: - go: - partials_as_hits: true - -coverage: - precision: 1 - round: down - range: "70...100" - - status: - default_rules: - flag_coverage_not_uploaded_behavior: include - - project: - default: - target: auto - threshold: 1% - if_not_found: success - if_ci_failed: error - - patch: - default: - only_pulls: true - target: 50% - threshold: 10% - - changes: - default: - target: auto - threshold: 10% - if_not_found: success - if_ci_failed: error - branches: - - main - -comment: - behavior: default - require_changes: true - show_carryforward_flags: true - -github_checks: - annotations: true diff --git a/vendor/go.lsp.dev/protocol/.gitattributes b/vendor/go.lsp.dev/protocol/.gitattributes deleted file mode 100644 index a7b063e..0000000 --- a/vendor/go.lsp.dev/protocol/.gitattributes +++ /dev/null @@ -1,11 +0,0 @@ -# go.lsp.dev/protocol project gitattributes file -# https://github.com/github/linguist#using-gitattributes -# https://github.com/github/linguist/blob/master/lib/linguist/languages.yml - -# To prevent CRLF breakages on Windows for fragile files, like testdata. -* -text - -docs/ linguist-documentation -*.pb.go linguist-generated -*_gen.go linguist-generated -*_string.go linguist-generated diff --git a/vendor/go.lsp.dev/protocol/.gitignore b/vendor/go.lsp.dev/protocol/.gitignore deleted file mode 100644 index 54e59b7..0000000 --- a/vendor/go.lsp.dev/protocol/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# go.lsp.dev/protocol project generated files to ignore -# if you want to ignore files created by your editor/tools, -# please consider a global .gitignore https://help.github.com/articles/ignoring-files -# please do not open a pull request to add something created by your editor or tools - -# github/gitignore/Go.gitignore -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -vendor/ - -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -# cgo generated -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -# test generated -_testmain.go - -# profile -*.pprof - -# coverage -coverage.* - -# tools -tools/bin/ diff --git a/vendor/go.lsp.dev/protocol/.golangci.yml b/vendor/go.lsp.dev/protocol/.golangci.yml deleted file mode 100644 index 8667ed4..0000000 --- a/vendor/go.lsp.dev/protocol/.golangci.yml +++ /dev/null @@ -1,242 +0,0 @@ -# https://golangci-lint.run/usage/configuration/ -# https://github.com/golangci/golangci-lint/blob/master/pkg/config/linters_settings.go ---- -run: - timeout: 1m - issues-exit-code: 1 - tests: true - skip-dirs: [] - skip-dirs-use-default: true - skip-files: [] - allow-parallel-runners: true - -output: - format: colored-line-number - print-issued-lines: true - print-linter-name: true - uniq-by-line: true - sort-results: true - -linters-settings: - depguard: - list-type: blacklist - include-go-root: false - dupl: - threshold: 150 - errcheck: - check-type-assertions: true - check-blank: true - # exclude: .errcheckignore - errorlint: - errorf: true - asserts: true - comparison: true - funlen: - lines: 100 - statements: 60 - gocognit: - min-complexity: 30 - goconst: - min-len: 3 - min-occurrences: 3 - gocritic: - enabled-tags: - - diagnostic - - experimental - - opinionated - - performance - - style - disabled-checks: - - commentedOutCode - - redundantSprint - - whyNoLint - settings: - hugeParam: - sizeThreshold: 80 - rangeExprCopy: - sizeThreshold: 512 - rangeValCopy: - sizeThreshold: 128 - gocyclo: - min-complexity: 30 - godot: - scope: declarations - capital: false - gofmt: - simplify: true - gofumpt: - extra-rules: true - goheader: - values: - const: - AUTHOR: Go Language Server - regexp: - YEAR: '20\d\d' - template: |- - SPDX-FileCopyrightText: {{ YEAR }} The {{ AUTHOR }} Authors - SPDX-License-Identifier: BSD-3-Clause - goimports: - local-prefixes: go.lsp.dev/protocol - gosimple: - go: 1.16 - govet: - enable-all: true - check-shadowing: true - disable: - - fieldalignment - importas: - alias: [] - no-unaliased: true - lll: - line-length: 120 - tab-width: 1 - misspell: - locale: US - ignore-words: - - cancelled - - cancelling - nakedret: - max-func-lines: 30 - nestif: - min-complexity: 4 - prealloc: - simple: true - range-loops: true - for-loops: true - staticcheck: - go: 1.16 - testpackage: - skip-regexp: '.*(export)_test\.go' - unparam: - check-exported: true - algo: cha - unused: - go: 1.16 - whitespace: - multi-if: true - multi-func: true - -linters: - fast: false - disabled: - - exhaustivestruct # Checks if all struct's fields are initialized - - forbidigo # Forbids identifiers - - forcetypeassert # finds forced type assertions - - gci # Gci control golang package import order and make it always deterministic. - - gochecknoglobals # check that no global variables exist - - gochecknoinits # Checks that no init functions are present in Go code - - goconst # Finds repeated strings that could be replaced by a constant - - godox # Tool for detection of FIXME, TODO and other comment keywords - - goerr113 # Golang linter to check the errors handling expressions - - golint # Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes - - gomnd # An analyzer to detect magic numbers. - - gomoddirectives # Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod. - - gomodguard # Allow and block list linter for direct Go module dependencies. - - interfacer # Linter that suggests narrower interface types - - lll # Reports long lines - - maligned # Tool to detect Go structs that would take less memory if their fields were sorted - - promlinter # Check Prometheus metrics naming via promlint - - scopelint # Scopelint checks for unpinned variables in go programs - - sqlclosecheck # Checks that sql.Rows and sql.Stmt are closed. - - testpackage # TODO(zchee): enable: # linter that makes you use a separate _test package - - tparallel # tparallel detects inappropriate usage of t.Parallel() method in your Go test codes - - wrapcheck # TODO(zchee): enable: # Checks that errors returned from external packages are wrapped - - wsl # Whitespace Linter - enable: - - asciicheck # Simple linter to check that your code does not contain non-ASCII identifiers - - bodyclose # checks whether HTTP response body is closed successfully - - cyclop # checks function and package cyclomatic complexity - - deadcode # Finds unused code - - depguard # Go linter that checks if package imports are in a list of acceptable packages - - dogsled # Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f()) - - dupl # Tool for code clone detection - - durationcheck # check for two durations multiplied together - - errcheck # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases - - errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. - - exhaustive # check exhaustiveness of enum switch statements - - exportloopref # checks for pointers to enclosing loop variables - - funlen # Tool for detection of long functions - - gocognit # Computes and checks the cognitive complexity of functions - - gocritic # Provides many diagnostics that check for bugs, performance and style issues. - - gocyclo # Computes and checks the cyclomatic complexity of functions - - godot # Check if comments end in a period - - gofmt # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification - - gofumpt # Gofumpt checks whether code was gofumpt-ed. - - goheader # Checks is file header matches to pattern - - goimports # Goimports does everything that gofmt does. Additionally it checks unused imports - - goprintffuncname # Checks that printf-like functions are named with `f` at the end - - gosec # Inspects source code for security problems - - gosimple # Linter for Go source code that specializes in simplifying a code - - govet # Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string - - ifshort # Checks that your code uses short syntax for if-statements whenever possible - - importas # Enforces consistent import aliases - - ineffassign # Detects when assignments to existing variables are not used - - makezero # Finds slice declarations with non-zero initial length - - misspell # Finds commonly misspelled English words in comments - - nakedret # Finds naked returns in functions greater than a specified function length - - nestif # Reports deeply nested if statements - - nilerr # Finds the code that returns nil even if it checks that the error is not nil. - - nlreturn # nlreturn checks for a new line before return and branch statements to increase code clarity - - noctx # noctx finds sending http request without context.Context - - nolintlint # Reports ill-formed or insufficient nolint directives - - paralleltest # paralleltest detects missing usage of t.Parallel() method in your Go test - - prealloc # Finds slice declarations that could potentially be preallocated - - predeclared # find code that shadows one of Go's predeclared identifiers - - revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. - - rowserrcheck # checks whether Err of rows is checked successfully - - staticcheck # Staticcheck is a go vet on steroids, applying a ton of static analysis checks - - structcheck # Finds unused struct fields - - stylecheck # Stylecheck is a replacement for golint - - tagliatelle # Checks the struct tags. - - thelper # thelper detects golang test helpers without t.Helper() call and checks the consistency of test helpers - - typecheck # Like the front-end of a Go compiler, parses and type-checks Go code - - unconvert # Remove unnecessary type conversions - - unparam # Reports unused function parameters - - unused # Checks Go code for unused constants, variables, functions and types - - varcheck # Finds unused global variables and constants - - wastedassign # wastedassign finds wasted assignment statements. - - whitespace # Tool for detection of leading and trailing whitespace - -issues: - max-issues-per-linter: 0 - max-same-issues: 0 - exclude-use-default: true - exclude-rules: - - path: _test\.go - linters: - - cyclop - - dupl - - errcheck - - funlen - - gocognit - - goconst - - gocritic - - gocyclo - - gosec - - thelper - - wrapcheck - - path: "(.*)?_example_test.go" - linters: - - gocritic - # Exclude shadow checking on the variable named err - - text: "shadow: declaration of \"(err|ok)\"" - linters: - - govet - # false positive - - path: language.go - text: "deprecatedComment: the proper format is `Deprecated: `" - # async - - path: handler.go - text: "Error return value of `conn.Notify` is not checked" - linters: - - errcheck - - path: log.go - text: "Error return value of `s.log.Write` is not checked" - linters: - - errcheck - - path: deprecated.go - linters: - - lll - - path: "(client|server)_json.go" - linters: - - nlreturn diff --git a/vendor/go.lsp.dev/protocol/LICENSE b/vendor/go.lsp.dev/protocol/LICENSE deleted file mode 100644 index e874870..0000000 --- a/vendor/go.lsp.dev/protocol/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2019, The Go Language Server Authors -All rights reserved. - -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. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -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 HOLDER 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. diff --git a/vendor/go.lsp.dev/protocol/Makefile b/vendor/go.lsp.dev/protocol/Makefile deleted file mode 100644 index f08992f..0000000 --- a/vendor/go.lsp.dev/protocol/Makefile +++ /dev/null @@ -1,126 +0,0 @@ -# ----------------------------------------------------------------------------- -# global - -.DEFAULT_GOAL := test -comma := , -empty := -space := $(empty) $(empty) - -# ----------------------------------------------------------------------------- -# go - -GO_PATH ?= $(shell go env GOPATH) - -PKG := $(subst $(GO_PATH)/src/,,$(CURDIR)) -CGO_ENABLED ?= 0 -GO_BUILDTAGS=osusergo,netgo,static -GO_LDFLAGS=-s -w "-extldflags=-static" -GO_FLAGS ?= -tags='$(subst $(space),$(comma),${GO_BUILDTAGS})' -ldflags='${GO_LDFLAGS}' -installsuffix=netgo - -TOOLS_DIR := ${CURDIR}/tools -TOOLS_BIN := ${TOOLS_DIR}/bin -TOOLS := $(shell cd ${TOOLS_DIR} && go list -v -x -f '{{ join .Imports " " }}' -tags=tools) - -GO_PKGS := ./... - -GO_TEST ?= ${TOOLS_BIN}/gotestsum -- -GO_TEST_PKGS ?= $(shell go list -f='{{if or .TestGoFiles .XTestGoFiles}}{{.ImportPath}}{{end}}' ./...) -GO_TEST_FLAGS ?= -race -count=1 -GO_TEST_FUNC ?= . -GO_BENCH_FLAGS ?= -benchmem -GO_BENCH_FUNC ?= . -GO_LINT_FLAGS ?= - -# Set build environment -JOBS := $(shell getconf _NPROCESSORS_CONF) - -# ----------------------------------------------------------------------------- -# defines - -define target -@printf "+ $(patsubst ,$@,$(1))\\n" >&2 -endef - -# ----------------------------------------------------------------------------- -# target - -##@ test, bench, coverage - -export GOTESTSUM_FORMAT=standard-verbose - -.PHONY: test -test: CGO_ENABLED=1 -test: tools/bin/gotestsum ## Runs package test including race condition. - $(call target) - @CGO_ENABLED=${CGO_ENABLED} ${GO_TEST} ${GO_TEST_FLAGS} -run=${GO_TEST_FUNC} -tags='$(subst $(space),$(comma),${GO_BUILDTAGS})' ${GO_TEST_PKGS} - -.PHONY: coverage -coverage: CGO_ENABLED=1 -coverage: tools/bin/gotestsum ## Takes packages test coverage. - $(call target) - CGO_ENABLED=${CGO_ENABLED} ${GO_TEST} ${GO_TEST_FLAGS} -covermode=atomic -coverpkg=./... -coverprofile=coverage.out $(strip ${GO_FLAGS}) ${GO_PKGS} - - -##@ fmt, lint - -.PHONY: lint -lint: fmt lint/golangci-lint ## Run all linters. - -.PHONY: fmt -fmt: tools/goimportz tools/gofumpt ## Run goimportz and gofumpt. - $(call target) - find . -iname "*.go" -not -path "./vendor/**" | xargs -P ${JOBS} ${TOOLS_BIN}/goimportz -local=${PKG},$(subst /protocol,,$(PKG)) -w - find . -iname "*.go" -not -path "./vendor/**" | xargs -P ${JOBS} ${TOOLS_BIN}/gofumpt -extra -w - -.PHONY: lint/golangci-lint -lint/golangci-lint: tools/golangci-lint .golangci.yml ## Run golangci-lint. - $(call target) - ${TOOLS_BIN}/golangci-lint -j ${JOBS} run $(strip ${GO_LINT_FLAGS}) ./... - - -##@ tools - -.PHONY: tools -tools: tools/bin/'' ## Install tools - -tools/%: ## install an individual dependent tool - @${MAKE} tools/bin/$* 1>/dev/null - -tools/bin/%: ${TOOLS_DIR}/go.mod ${TOOLS_DIR}/go.sum - @cd tools; \ - for t in ${TOOLS}; do \ - if [ -z '$*' ] || [ $$(basename $$t) = '$*' ]; then \ - echo "Install $$t ..." >&2; \ - GOBIN=${TOOLS_BIN} CGO_ENABLED=0 go install -mod=mod ${GO_FLAGS} "$${t}"; \ - fi \ - done - - -##@ clean - -.PHONY: clean -clean: ## Cleanups binaries and extra files in the package. - $(call target) - @rm -rf *.out *.test *.prof trace.txt ${TOOLS_BIN} - - -##@ miscellaneous - -.PHONY: todo -TODO: ## Print the all of (TODO|BUG|XXX|FIXME|NOTE) in packages. - @grep -E '(TODO|BUG|XXX|FIXME)(\(.+\):|:)' $(shell find . -type f -name '*.go' -and -not -iwholename '*vendor*') - -.PHONY: nolint -nolint: ## Print the all of //nolint:... pragma in packages. - @grep -E -C 3 '//nolint.+' $(shell find . -type f -name '*.go' -and -not -iwholename '*vendor*' -and -not -iwholename '*internal*') - -.PHONY: env/% -env/%: ## Print the value of MAKEFILE_VARIABLE. Use `make env/GO_FLAGS` or etc. - @echo $($*) - - -##@ help - -.PHONY: help -help: ## Show this help. - @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[33m\033[0m\n"} /^[a-zA-Z_0-9\/%_-]+:.*?##/ { printf " \033[1;32m%-20s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) diff --git a/vendor/go.lsp.dev/protocol/README.md b/vendor/go.lsp.dev/protocol/README.md deleted file mode 100644 index 2f091de..0000000 --- a/vendor/go.lsp.dev/protocol/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# protocol - -[![CircleCI][circleci-badge]][circleci] [![pkg.go.dev][pkg.go.dev-badge]][pkg.go.dev] [![Go module][module-badge]][module] [![codecov.io][codecov-badge]][codecov] [![GA][ga-badge]][ga] - -Package protocol implements Language Server Protocol specification in Go. - - - -[circleci]: https://app.circleci.com/pipelines/github/go-language-server/protocol -[pkg.go.dev]: https://pkg.go.dev/go.lsp.dev/protocol -[module]: https://github.com/go-language-server/protocol/releases/latest -[codecov]: https://codecov.io/gh/go-language-server/protocol -[ga]: https://github.com/go-language-server/protocol - -[circleci-badge]: https://img.shields.io/circleci/build/github/go-language-server/protocol/main.svg?style=for-the-badge&label=CIRCLECI&logo=circleci -[pkg.go.dev-badge]: https://bit.ly/pkg-go-dev-badge -[module-badge]: https://img.shields.io/github/release/go-language-server/protocol.svg?color=007D9C&label=MODULE&style=for-the-badge&logoWidth=25&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijg1IDU1IDEyMCAxMjAiPjxwYXRoIGZpbGw9IiMwMEFERDgiIGQ9Ik00MC4yIDEwMS4xYy0uNCAwLS41LS4yLS4zLS41bDIuMS0yLjdjLjItLjMuNy0uNSAxLjEtLjVoMzUuN2MuNCAwIC41LjMuMy42bC0xLjcgMi42Yy0uMi4zLS43LjYtMSAuNmwtMzYuMi0uMXptLTE1LjEgOS4yYy0uNCAwLS41LS4yLS4zLS41bDIuMS0yLjdjLjItLjMuNy0uNSAxLjEtLjVoNDUuNmMuNCAwIC42LjMuNS42bC0uOCAyLjRjLS4xLjQtLjUuNi0uOS42bC00Ny4zLjF6bTI0LjIgOS4yYy0uNCAwLS41LS4zLS4zLS42bDEuNC0yLjVjLjItLjMuNi0uNiAxLS42aDIwYy40IDAgLjYuMy42LjdsLS4yIDIuNGMwIC40LS40LjctLjcuN2wtMjEuOC0uMXptMTAzLjgtMjAuMmMtNi4zIDEuNi0xMC42IDIuOC0xNi44IDQuNC0xLjUuNC0xLjYuNS0yLjktMS0xLjUtMS43LTIuNi0yLjgtNC43LTMuOC02LjMtMy4xLTEyLjQtMi4yLTE4LjEgMS41LTYuOCA0LjQtMTAuMyAxMC45LTEwLjIgMTkgLjEgOCA1LjYgMTQuNiAxMy41IDE1LjcgNi44LjkgMTIuNS0xLjUgMTctNi42LjktMS4xIDEuNy0yLjMgMi43LTMuN2gtMTkuM2MtMi4xIDAtMi42LTEuMy0xLjktMyAxLjMtMy4xIDMuNy04LjMgNS4xLTEwLjkuMy0uNiAxLTEuNiAyLjUtMS42aDM2LjRjLS4yIDIuNy0uMiA1LjQtLjYgOC4xLTEuMSA3LjItMy44IDEzLjgtOC4yIDE5LjYtNy4yIDkuNS0xNi42IDE1LjQtMjguNSAxNy05LjggMS4zLTE4LjktLjYtMjYuOS02LjYtNy40LTUuNi0xMS42LTEzLTEyLjctMjIuMi0xLjMtMTAuOSAxLjktMjAuNyA4LjUtMjkuMyA3LjEtOS4zIDE2LjUtMTUuMiAyOC0xNy4zIDkuNC0xLjcgMTguNC0uNiAyNi41IDQuOSA1LjMgMy41IDkuMSA4LjMgMTEuNiAxNC4xLjYuOS4yIDEuNC0xIDEuN3oiLz48cGF0aCBmaWxsPSIjMDBBREQ4IiBkPSJNMTg2LjIgMTU0LjZjLTkuMS0uMi0xNy40LTIuOC0yNC40LTguOC01LjktNS4xLTkuNi0xMS42LTEwLjgtMTkuMy0xLjgtMTEuMyAxLjMtMjEuMyA4LjEtMzAuMiA3LjMtOS42IDE2LjEtMTQuNiAyOC0xNi43IDEwLjItMS44IDE5LjgtLjggMjguNSA1LjEgNy45IDUuNCAxMi44IDEyLjcgMTQuMSAyMi4zIDEuNyAxMy41LTIuMiAyNC41LTExLjUgMzMuOS02LjYgNi43LTE0LjcgMTAuOS0yNCAxMi44LTIuNy41LTUuNC42LTggLjl6bTIzLjgtNDAuNGMtLjEtMS4zLS4xLTIuMy0uMy0zLjMtMS44LTkuOS0xMC45LTE1LjUtMjAuNC0xMy4zLTkuMyAyLjEtMTUuMyA4LTE3LjUgMTcuNC0xLjggNy44IDIgMTUuNyA5LjIgMTguOSA1LjUgMi40IDExIDIuMSAxNi4zLS42IDcuOS00LjEgMTIuMi0xMC41IDEyLjctMTkuMXoiLz48L3N2Zz4= -[codecov-badge]: https://img.shields.io/codecov/c/github/go-language-server/protocol/main?logo=codecov&style=for-the-badge -[ga-badge]: https://gh-ga-beacon.appspot.com/UA-89201129-1/go-language-server/protocol?useReferer&pixel diff --git a/vendor/go.lsp.dev/protocol/base.go b/vendor/go.lsp.dev/protocol/base.go deleted file mode 100644 index 3cca2e9..0000000 --- a/vendor/go.lsp.dev/protocol/base.go +++ /dev/null @@ -1,96 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "fmt" - - "github.com/segmentio/encoding/json" -) - -// CancelParams params of cancelRequest. -type CancelParams struct { - // ID is the request id to cancel. - ID interface{} `json:"id"` // int32 | string -} - -// ProgressParams params of Progress netification. -// -// @since 3.15.0. -type ProgressParams struct { - // Token is the progress token provided by the client or server. - Token ProgressToken `json:"token"` - - // Value is the progress data. - Value interface{} `json:"value"` -} - -// ProgressToken is the progress token provided by the client or server. -// -// @since 3.15.0. -type ProgressToken struct { - name string - number int32 -} - -// compile time check whether the ProgressToken implements a fmt.Formatter, fmt.Stringer, json.Marshaler and json.Unmarshaler interfaces. -var ( - _ fmt.Formatter = (*ProgressToken)(nil) - _ fmt.Stringer = (*ProgressToken)(nil) - _ json.Marshaler = (*ProgressToken)(nil) - _ json.Unmarshaler = (*ProgressToken)(nil) -) - -// NewProgressToken returns a new ProgressToken. -func NewProgressToken(s string) *ProgressToken { - return &ProgressToken{name: s} -} - -// NewNumberProgressToken returns a new number ProgressToken. -func NewNumberProgressToken(n int32) *ProgressToken { - return &ProgressToken{number: n} -} - -// Format writes the ProgressToken to the formatter. -// -// If the rune is q the representation is non ambiguous, -// string forms are quoted. -func (v ProgressToken) Format(f fmt.State, r rune) { - const numF = `%d` - strF := `%s` - if r == 'q' { - strF = `%q` - } - - switch { - case v.name != "": - fmt.Fprintf(f, strF, v.name) - default: - fmt.Fprintf(f, numF, v.number) - } -} - -// String returns a string representation of the ProgressToken. -func (v ProgressToken) String() string { - return fmt.Sprint(v) -} - -// MarshalJSON implements json.Marshaler. -func (v *ProgressToken) MarshalJSON() ([]byte, error) { - if v.name != "" { - return json.Marshal(v.name) - } - - return json.Marshal(v.number) -} - -// UnmarshalJSON implements json.Unmarshaler. -func (v *ProgressToken) UnmarshalJSON(data []byte) error { - *v = ProgressToken{} - if err := json.Unmarshal(data, &v.number); err == nil { - return nil - } - - return json.Unmarshal(data, &v.name) -} diff --git a/vendor/go.lsp.dev/protocol/basic.go b/vendor/go.lsp.dev/protocol/basic.go deleted file mode 100644 index feb022f..0000000 --- a/vendor/go.lsp.dev/protocol/basic.go +++ /dev/null @@ -1,705 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "go.lsp.dev/uri" -) - -// DocumentURI represents the URI of a document. -// -// Many of the interfaces contain fields that correspond to the URI of a document. -// For clarity, the type of such a field is declared as a DocumentURI. -// Over the wire, it will still be transferred as a string, but this guarantees -// that the contents of that string can be parsed as a valid URI. -type DocumentURI = uri.URI - -// URI a tagging interface for normal non document URIs. -// -// @since 3.16.0. -type URI = uri.URI - -// EOL denotes represents the character offset. -var EOL = []string{"\n", "\r\n", "\r"} - -// Position represents a text document expressed as zero-based line and zero-based character offset. -// -// The offsets are based on a UTF-16 string representation. -// So a string of the form "a𐐀b" the character offset of the character "a" is 0, -// the character offset of "𐐀" is 1 and the character offset of "b" is 3 since 𐐀 is represented using two code -// units in UTF-16. -// -// Positions are line end character agnostic. So you can not specify a position that -// denotes "\r|\n" or "\n|" where "|" represents the character offset. -// -// Position is between two characters like an "insert" cursor in a editor. -// Special values like for example "-1" to denote the end of a line are not supported. -type Position struct { - // Line position in a document (zero-based). - // - // If a line number is greater than the number of lines in a document, it defaults back to the number of lines in - // the document. - // If a line number is negative, it defaults to 0. - Line uint32 `json:"line"` - - // Character offset on a line in a document (zero-based). - // - // Assuming that the line is represented as a string, the Character value represents the gap between the - // "character" and "character + 1". - // - // If the character value is greater than the line length it defaults back to the line length. - // If a line number is negative, it defaults to 0. - Character uint32 `json:"character"` -} - -// Range represents a text document expressed as (zero-based) start and end positions. -// -// A range is comparable to a selection in an editor. Therefore the end position is exclusive. -// If you want to specify a range that contains a line including the line ending character(s) then use an end position -// denoting the start of the next line. -type Range struct { - // Start is the range's start position. - Start Position `json:"start"` - - // End is the range's end position. - End Position `json:"end"` -} - -// Location represents a location inside a resource, such as a line inside a text file. -type Location struct { - URI DocumentURI `json:"uri"` - Range Range `json:"range"` -} - -// LocationLink represents a link between a source and a target location. -type LocationLink struct { - // OriginSelectionRange span of the origin of this link. - // - // Used as the underlined span for mouse interaction. Defaults to the word range at the mouse position. - OriginSelectionRange *Range `json:"originSelectionRange,omitempty"` - - // TargetURI is the target resource identifier of this link. - TargetURI DocumentURI `json:"targetUri"` - - // TargetRange is the full target range of this link. - // - // If the target for example is a symbol then target range is the range enclosing this symbol not including - // leading/trailing whitespace but everything else like comments. - // - // This information is typically used to highlight the range in the editor. - TargetRange Range `json:"targetRange"` - - // TargetSelectionRange is the range that should be selected and revealed when this link is being followed, - // e.g the name of a function. - // - // Must be contained by the the TargetRange. See also DocumentSymbol#range - TargetSelectionRange Range `json:"targetSelectionRange"` -} - -// Command represents a reference to a command. Provides a title which will be used to represent a command in the UI. -// -// Commands are identified by a string identifier. -// The recommended way to handle commands is to implement their execution on the server side if the client and -// server provides the corresponding capabilities. -// -// Alternatively the tool extension code could handle the command. The protocol currently doesn't specify -// a set of well-known commands. -type Command struct { - // Title of the command, like `save`. - Title string `json:"title"` - - // Command is the identifier of the actual command handler. - Command string `json:"command"` - - // Arguments that the command handler should be invoked with. - Arguments []interface{} `json:"arguments,omitempty"` -} - -// TextEdit is a textual edit applicable to a text document. -type TextEdit struct { - // Range is the range of the text document to be manipulated. - // - // To insert text into a document create a range where start == end. - Range Range `json:"range"` - - // NewText is the string to be inserted. For delete operations use an - // empty string. - NewText string `json:"newText"` -} - -// ChangeAnnotation is the additional information that describes document changes. -// -// @since 3.16.0. -type ChangeAnnotation struct { - // Label a human-readable string describing the actual change. - // The string is rendered prominent in the user interface. - Label string `json:"label"` - - // NeedsConfirmation is a flag which indicates that user confirmation is needed - // before applying the change. - NeedsConfirmation bool `json:"needsConfirmation,omitempty"` - - // Description is a human-readable string which is rendered less prominent in - // the user interface. - Description string `json:"description,omitempty"` -} - -// ChangeAnnotationIdentifier an identifier referring to a change annotation managed by a workspace -// edit. -// -// @since 3.16.0. -type ChangeAnnotationIdentifier string - -// AnnotatedTextEdit is a special text edit with an additional change annotation. -// -// @since 3.16.0. -type AnnotatedTextEdit struct { - TextEdit - - // AnnotationID is the actual annotation identifier. - AnnotationID ChangeAnnotationIdentifier `json:"annotationId"` -} - -// TextDocumentEdit describes textual changes on a single text document. -// -// The TextDocument is referred to as a OptionalVersionedTextDocumentIdentifier to allow clients to check the -// text document version before an edit is applied. -// -// TextDocumentEdit describes all changes on a version "Si" and after they are applied move the document to -// version "Si+1". -// So the creator of a TextDocumentEdit doesn't need to sort the array or do any kind of ordering. However the -// edits must be non overlapping. -type TextDocumentEdit struct { - // TextDocument is the text document to change. - TextDocument OptionalVersionedTextDocumentIdentifier `json:"textDocument"` - - // Edits is the edits to be applied. - // - // @since 3.16.0 - support for AnnotatedTextEdit. - // This is guarded by the client capability Workspace.WorkspaceEdit.ChangeAnnotationSupport. - Edits []TextEdit `json:"edits"` // []TextEdit | []AnnotatedTextEdit -} - -// ResourceOperationKind is the file event type. -type ResourceOperationKind string - -const ( - // CreateResourceOperation supports creating new files and folders. - CreateResourceOperation ResourceOperationKind = "create" - - // RenameResourceOperation supports renaming existing files and folders. - RenameResourceOperation ResourceOperationKind = "rename" - - // DeleteResourceOperation supports deleting existing files and folders. - DeleteResourceOperation ResourceOperationKind = "delete" -) - -// CreateFileOptions represents an options to create a file. -type CreateFileOptions struct { - // Overwrite existing file. Overwrite wins over `ignoreIfExists`. - Overwrite bool `json:"overwrite,omitempty"` - - // IgnoreIfExists ignore if exists. - IgnoreIfExists bool `json:"ignoreIfExists,omitempty"` -} - -// CreateFile represents a create file operation. -type CreateFile struct { - // Kind a create. - Kind ResourceOperationKind `json:"kind"` // should be `create` - - // URI is the resource to create. - URI DocumentURI `json:"uri"` - - // Options additional options. - Options *CreateFileOptions `json:"options,omitempty"` - - // AnnotationID an optional annotation identifier describing the operation. - // - // @since 3.16.0. - AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` -} - -// RenameFileOptions represents a rename file options. -type RenameFileOptions struct { - // Overwrite target if existing. Overwrite wins over `ignoreIfExists`. - Overwrite bool `json:"overwrite,omitempty"` - - // IgnoreIfExists ignores if target exists. - IgnoreIfExists bool `json:"ignoreIfExists,omitempty"` -} - -// RenameFile represents a rename file operation. -type RenameFile struct { - // Kind a rename. - Kind ResourceOperationKind `json:"kind"` // should be `rename` - - // OldURI is the old (existing) location. - OldURI DocumentURI `json:"oldUri"` - - // NewURI is the new location. - NewURI DocumentURI `json:"newUri"` - - // Options rename options. - Options *RenameFileOptions `json:"options,omitempty"` - - // AnnotationID an optional annotation identifier describing the operation. - // - // @since 3.16.0. - AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` -} - -// DeleteFileOptions represents a delete file options. -type DeleteFileOptions struct { - // Recursive delete the content recursively if a folder is denoted. - Recursive bool `json:"recursive,omitempty"` - - // IgnoreIfNotExists ignore the operation if the file doesn't exist. - IgnoreIfNotExists bool `json:"ignoreIfNotExists,omitempty"` -} - -// DeleteFile represents a delete file operation. -type DeleteFile struct { - // Kind is a delete. - Kind ResourceOperationKind `json:"kind"` // should be `delete` - - // URI is the file to delete. - URI DocumentURI `json:"uri"` - - // Options delete options. - Options *DeleteFileOptions `json:"options,omitempty"` - - // AnnotationID an optional annotation identifier describing the operation. - // - // @since 3.16.0. - AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` -} - -// WorkspaceEdit represent a changes to many resources managed in the workspace. -// -// The edit should either provide changes or documentChanges. -// If the client can handle versioned document edits and if documentChanges are present, the latter are preferred over -// changes. -type WorkspaceEdit struct { - // Changes holds changes to existing resources. - Changes map[DocumentURI][]TextEdit `json:"changes,omitempty"` - - // DocumentChanges depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes - // are either an array of `TextDocumentEdit`s to express changes to n different text documents - // where each text document edit addresses a specific version of a text document. Or it can contain - // above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations. - // - // Whether a client supports versioned document edits is expressed via - // `workspace.workspaceEdit.documentChanges` client capability. - // - // If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then - // only plain `TextEdit`s using the `changes` property are supported. - DocumentChanges []TextDocumentEdit `json:"documentChanges,omitempty"` - - // ChangeAnnotations is a map of change annotations that can be referenced in - // "AnnotatedTextEdit"s or create, rename and delete file / folder - // operations. - // - // Whether clients honor this property depends on the client capability - // "workspace.changeAnnotationSupport". - // - // @since 3.16.0. - ChangeAnnotations map[ChangeAnnotationIdentifier]ChangeAnnotation `json:"changeAnnotations,omitempty"` -} - -// TextDocumentIdentifier indicates the using a URI. On the protocol level, URIs are passed as strings. -type TextDocumentIdentifier struct { - // URI is the text document's URI. - URI DocumentURI `json:"uri"` -} - -// TextDocumentItem represent an item to transfer a text document from the client to the server. -type TextDocumentItem struct { - // URI is the text document's URI. - URI DocumentURI `json:"uri"` - - // LanguageID is the text document's language identifier. - LanguageID LanguageIdentifier `json:"languageId"` - - // Version is the version number of this document (it will increase after each - // change, including undo/redo). - Version int32 `json:"version"` - - // Text is the content of the opened text document. - Text string `json:"text"` -} - -// LanguageIdentifier represent a text document's language identifier. -type LanguageIdentifier string - -const ( - // ABAPLanguage ABAP Language. - ABAPLanguage LanguageIdentifier = "abap" - - // BatLanguage Windows Bat Language. - BatLanguage LanguageIdentifier = "bat" - - // BibtexLanguage BibTeX Language. - BibtexLanguage LanguageIdentifier = "bibtex" - - // ClojureLanguage Clojure Language. - ClojureLanguage LanguageIdentifier = "clojure" - - // CoffeescriptLanguage CoffeeScript Language. - CoffeeScriptLanguage LanguageIdentifier = "coffeescript" - - // CLanguage C Language. - CLanguage LanguageIdentifier = "c" - - // CppLanguage C++ Language. - CppLanguage LanguageIdentifier = "cpp" - - // CsharpLanguage C# Language. - CsharpLanguage LanguageIdentifier = "csharp" - - // CSSLanguage CSS Language. - CSSLanguage LanguageIdentifier = "css" - - // DiffLanguage Diff Language. - DiffLanguage LanguageIdentifier = "diff" - - // DartLanguage Dart Language. - DartLanguage LanguageIdentifier = "dart" - - // DockerfileLanguage Dockerfile Language. - DockerfileLanguage LanguageIdentifier = "dockerfile" - - // ElixirLanguage Elixir Language. - ElixirLanguage LanguageIdentifier = "elixir" - - // ErlangLanguage Erlang Language. - ErlangLanguage LanguageIdentifier = "erlang" - - // FsharpLanguage F# Language. - FsharpLanguage LanguageIdentifier = "fsharp" - - // GitCommitLanguage Git Language. - GitCommitLanguage LanguageIdentifier = "git-commit" - - // GitRebaseLanguage Git Language. - GitRebaseLanguage LanguageIdentifier = "git-rebase" - - // GoLanguage Go Language. - GoLanguage LanguageIdentifier = "go" - - // GroovyLanguage Groovy Language. - GroovyLanguage LanguageIdentifier = "groovy" - - // HandlebarsLanguage Handlebars Language. - HandlebarsLanguage LanguageIdentifier = "handlebars" - - // HTMLLanguage HTML Language. - HTMLLanguage LanguageIdentifier = "html" - - // IniLanguage Ini Language. - IniLanguage LanguageIdentifier = "ini" - - // JavaLanguage Java Language. - JavaLanguage LanguageIdentifier = "java" - - // JavaScriptLanguage JavaScript Language. - JavaScriptLanguage LanguageIdentifier = "javascript" - - // JavaScriptReactLanguage JavaScript React Language. - JavaScriptReactLanguage LanguageIdentifier = "javascriptreact" - - // JSONLanguage JSON Language. - JSONLanguage LanguageIdentifier = "json" - - // LatexLanguage LaTeX Language. - LatexLanguage LanguageIdentifier = "latex" - - // LessLanguage Less Language. - LessLanguage LanguageIdentifier = "less" - - // LuaLanguage Lua Language. - LuaLanguage LanguageIdentifier = "lua" - - // MakefileLanguage Makefile Language. - MakefileLanguage LanguageIdentifier = "makefile" - - // MarkdownLanguage Markdown Language. - MarkdownLanguage LanguageIdentifier = "markdown" - - // ObjectiveCLanguage Objective-C Language. - ObjectiveCLanguage LanguageIdentifier = "objective-c" - - // ObjectiveCppLanguage Objective-C++ Language. - ObjectiveCppLanguage LanguageIdentifier = "objective-cpp" - - // PerlLanguage Perl Language. - PerlLanguage LanguageIdentifier = "perl" - - // Perl6Language Perl Language. - Perl6Language LanguageIdentifier = "perl6" - - // PHPLanguage PHP Language. - PHPLanguage LanguageIdentifier = "php" - - // PowershellLanguage Powershell Language. - PowershellLanguage LanguageIdentifier = "powershell" - - // JadeLanguage Pug Language. - JadeLanguage LanguageIdentifier = "jade" - - // PythonLanguage Python Language. - PythonLanguage LanguageIdentifier = "python" - - // RLanguage R Language. - RLanguage LanguageIdentifier = "r" - - // RazorLanguage Razor(cshtml) Language. - RazorLanguage LanguageIdentifier = "razor" - - // RubyLanguage Ruby Language. - RubyLanguage LanguageIdentifier = "ruby" - - // RustLanguage Rust Language. - RustLanguage LanguageIdentifier = "rust" - - // SCSSLanguage SCSS Languages syntax using curly brackets. - SCSSLanguage LanguageIdentifier = "scss" - - // SASSLanguage SCSS Languages indented syntax. - SASSLanguage LanguageIdentifier = "sass" - - // ScalaLanguage Scala Language. - ScalaLanguage LanguageIdentifier = "scala" - - // ShaderlabLanguage ShaderLab Language. - ShaderlabLanguage LanguageIdentifier = "shaderlab" - - // ShellscriptLanguage Shell Script (Bash) Language. - ShellscriptLanguage LanguageIdentifier = "shellscript" - - // SQLLanguage SQL Language. - SQLLanguage LanguageIdentifier = "sql" - - // SwiftLanguage Swift Language. - SwiftLanguage LanguageIdentifier = "swift" - - // TypeScriptLanguage TypeScript Language. - TypeScriptLanguage LanguageIdentifier = "typescript" - - // TypeScriptReactLanguage TypeScript React Language. - TypeScriptReactLanguage LanguageIdentifier = "typescriptreact" - - // TeXLanguage TeX Language. - TeXLanguage LanguageIdentifier = "tex" - - // VBLanguage Visual Basic Language. - VBLanguage LanguageIdentifier = "vb" - - // XMLLanguage XML Language. - XMLLanguage LanguageIdentifier = "xml" - - // XslLanguage XSL Language. - XslLanguage LanguageIdentifier = "xsl" - - // YamlLanguage YAML Language. - YamlLanguage LanguageIdentifier = "yaml" -) - -// languageIdentifierMap map of LanguageIdentifiers. -var languageIdentifierMap = map[string]LanguageIdentifier{ - "abap": ABAPLanguage, - "bat": BatLanguage, - "bibtex": BibtexLanguage, - "clojure": ClojureLanguage, - "coffeescript": CoffeeScriptLanguage, - "c": CLanguage, - "cpp": CppLanguage, - "csharp": CsharpLanguage, - "css": CSSLanguage, - "diff": DiffLanguage, - "dart": DartLanguage, - "dockerfile": DockerfileLanguage, - "elixir": ElixirLanguage, - "erlang": ErlangLanguage, - "fsharp": FsharpLanguage, - "git-commit": GitCommitLanguage, - "git-rebase": GitRebaseLanguage, - "go": GoLanguage, - "groovy": GroovyLanguage, - "handlebars": HandlebarsLanguage, - "html": HTMLLanguage, - "ini": IniLanguage, - "java": JavaLanguage, - "javascript": JavaScriptLanguage, - "javascriptreact": JavaScriptReactLanguage, - "json": JSONLanguage, - "latex": LatexLanguage, - "less": LessLanguage, - "lua": LuaLanguage, - "makefile": MakefileLanguage, - "markdown": MarkdownLanguage, - "objective-c": ObjectiveCLanguage, - "objective-cpp": ObjectiveCppLanguage, - "perl": PerlLanguage, - "perl6": Perl6Language, - "php": PHPLanguage, - "powershell": PowershellLanguage, - "jade": JadeLanguage, - "python": PythonLanguage, - "r": RLanguage, - "razor": RazorLanguage, - "ruby": RubyLanguage, - "rust": RustLanguage, - "scss": SCSSLanguage, - "sass": SASSLanguage, - "scala": ScalaLanguage, - "shaderlab": ShaderlabLanguage, - "shellscript": ShellscriptLanguage, - "sql": SQLLanguage, - "swift": SwiftLanguage, - "typescript": TypeScriptLanguage, - "typescriptreact": TypeScriptReactLanguage, - "tex": TeXLanguage, - "vb": VBLanguage, - "xml": XMLLanguage, - "xsl": XslLanguage, - "yaml": YamlLanguage, -} - -// ToLanguageIdentifier converts ft to LanguageIdentifier. -func ToLanguageIdentifier(ft string) LanguageIdentifier { - langID, ok := languageIdentifierMap[ft] - if ok { - return langID - } - - return LanguageIdentifier(ft) -} - -// VersionedTextDocumentIdentifier represents an identifier to denote a specific version of a text document. -// -// This information usually flows from the client to the server. -type VersionedTextDocumentIdentifier struct { - TextDocumentIdentifier - - // Version is the version number of this document. - // - // The version number of a document will increase after each change, including - // undo/redo. The number doesn't need to be consecutive. - Version int32 `json:"version"` -} - -// OptionalVersionedTextDocumentIdentifier represents an identifier which optionally denotes a specific version of -// a text document. -// -// This information usually flows from the server to the client. -// -// @since 3.16.0. -type OptionalVersionedTextDocumentIdentifier struct { - TextDocumentIdentifier - - // Version is the version number of this document. If an optional versioned text document - // identifier is sent from the server to the client and the file is not - // open in the editor (the server has not received an open notification - // before) the server can send `null` to indicate that the version is - // known and the content on disk is the master (as specified with document - // content ownership). - // - // The version number of a document will increase after each change, - // including undo/redo. The number doesn't need to be consecutive. - Version *int32 `json:"version"` // int32 | null -} - -// TextDocumentPositionParams is a parameter literal used in requests to pass a text document and a position -// inside that document. -// -// It is up to the client to decide how a selection is converted into a position when issuing a request for a text -// document. -// -// The client can for example honor or ignore the selection direction to make LSP request consistent with features -// implemented internally. -type TextDocumentPositionParams struct { - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Position is the position inside the text document. - Position Position `json:"position"` -} - -// DocumentFilter is a document filter denotes a document through properties like language, scheme or pattern. -// -// An example is a filter that applies to TypeScript files on disk. -type DocumentFilter struct { - // Language a language id, like `typescript`. - Language string `json:"language,omitempty"` - - // Scheme a URI scheme, like `file` or `untitled`. - Scheme string `json:"scheme,omitempty"` - - // Pattern a glob pattern, like `*.{ts,js}`. - // - // Glob patterns can have the following syntax: - // "*" - // "*" to match one or more characters in a path segment - // "?" - // "?" to match on one character in a path segment - // "**" - // "**" to match any number of path segments, including none - // "{}" - // "{}" to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files) - // "[]" - // "[]" to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) - // "[!...]" - // "[!...]" to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) - Pattern string `json:"pattern,omitempty"` -} - -// DocumentSelector is a document selector is the combination of one or more document filters. -type DocumentSelector []*DocumentFilter - -// MarkupKind describes the content type that a client supports in various -// result literals like `Hover`, `ParameterInfo` or `CompletionItem`. -// -// Please note that `MarkupKinds` must not start with a `$`. This kinds -// are reserved for internal usage. -type MarkupKind string - -const ( - // PlainText is supported as a content format. - PlainText MarkupKind = "plaintext" - - // Markdown is supported as a content format. - Markdown MarkupKind = "markdown" -) - -// MarkupContent a `MarkupContent` literal represents a string value which content is interpreted base on its -// kind flag. -// -// Currently the protocol supports `plaintext` and `markdown` as markup kinds. -// -// If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues. -// See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting -// -// Here is an example how such a string can be constructed using JavaScript / TypeScript: -// -// let markdown: MarkdownContent = { -// kind: MarkupKind.Markdown, -// value: [ -// '# Header', -// 'Some text', -// '```typescript', -// 'someCode();', -// '```' -// ].join('\n') -// }; -// -// NOTE: clients might sanitize the return markdown. A client could decide to -// remove HTML from the markdown to avoid script execution. -type MarkupContent struct { - // Kind is the type of the Markup - Kind MarkupKind `json:"kind"` - - // Value is the content itself - Value string `json:"value"` -} diff --git a/vendor/go.lsp.dev/protocol/callhierarchy.go b/vendor/go.lsp.dev/protocol/callhierarchy.go deleted file mode 100644 index eebb9e3..0000000 --- a/vendor/go.lsp.dev/protocol/callhierarchy.go +++ /dev/null @@ -1,103 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// CallHierarchy capabilities specific to the "textDocument/callHierarchy". -// -// @since 3.16.0. -type CallHierarchy struct { - // DynamicRegistration whether implementation supports dynamic registration. - // - // If this is set to "true" the client supports the new - // TextDocumentRegistrationOptions && StaticRegistrationOptions return - // value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// CallHierarchyPrepareParams params of CallHierarchyPrepare. -// -// @since 3.16.0. -type CallHierarchyPrepareParams struct { - TextDocumentPositionParams - WorkDoneProgressParams -} - -// CallHierarchyItem is the result of a "textDocument/prepareCallHierarchy" request. -// -// @since 3.16.0. -type CallHierarchyItem struct { - // name is the name of this item. - Name string `json:"name"` - - // Kind is the kind of this item. - Kind SymbolKind `json:"kind"` - - // Tags for this item. - Tags []SymbolTag `json:"tags,omitempty"` - - // Detail more detail for this item, e.g. the signature of a function. - Detail string `json:"detail,omitempty"` - - // URI is the resource identifier of this item. - URI DocumentURI `json:"uri"` - - // Range is the range enclosing this symbol not including leading/trailing whitespace - // but everything else, e.g. comments and code. - Range Range `json:"range"` - - // SelectionRange is the range that should be selected and revealed when this symbol is being - // picked, e.g. the name of a function. Must be contained by the - // Range. - SelectionRange Range `json:"selectionRange"` - - // Data is a data entry field that is preserved between a call hierarchy prepare and - // incoming calls or outgoing calls requests. - Data interface{} `json:"data,omitempty"` -} - -// CallHierarchyIncomingCallsParams params of CallHierarchyIncomingCalls. -// -// @since 3.16.0. -type CallHierarchyIncomingCallsParams struct { - WorkDoneProgressParams - PartialResultParams - - // Item is the IncomingCalls item. - Item CallHierarchyItem `json:"item"` -} - -// CallHierarchyIncomingCall is the result of a "callHierarchy/incomingCalls" request. -// -// @since 3.16.0. -type CallHierarchyIncomingCall struct { - // From is the item that makes the call. - From CallHierarchyItem `json:"from"` - - // FromRanges is the ranges at which the calls appear. This is relative to the caller - // denoted by From. - FromRanges []Range `json:"fromRanges"` -} - -// CallHierarchyOutgoingCallsParams params of CallHierarchyOutgoingCalls. -// -// @since 3.16.0. -type CallHierarchyOutgoingCallsParams struct { - WorkDoneProgressParams - PartialResultParams - - // Item is the OutgoingCalls item. - Item CallHierarchyItem `json:"item"` -} - -// CallHierarchyOutgoingCall is the result of a "callHierarchy/outgoingCalls" request. -// -// @since 3.16.0. -type CallHierarchyOutgoingCall struct { - // To is the item that is called. - To CallHierarchyItem `json:"to"` - - // FromRanges is the range at which this item is called. This is the range relative to - // the caller, e.g the item passed to "callHierarchy/outgoingCalls" request. - FromRanges []Range `json:"fromRanges"` -} diff --git a/vendor/go.lsp.dev/protocol/capabilities_client.go b/vendor/go.lsp.dev/protocol/capabilities_client.go deleted file mode 100644 index 2d6bb74..0000000 --- a/vendor/go.lsp.dev/protocol/capabilities_client.go +++ /dev/null @@ -1,1061 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import "strconv" - -// ClientCapabilities now define capabilities for dynamic registration, workspace and text document features -// the client supports. -// -// The experimental can be used to pass experimental capabilities under development. -// -// For future compatibility a ClientCapabilities object literal can have more properties set than currently defined. -// Servers receiving a ClientCapabilities object literal with unknown properties should ignore these properties. -// -// A missing property should be interpreted as an absence of the capability. -// If a missing property normally defines sub properties, all missing sub properties should be interpreted -// as an absence of the corresponding capability. -type ClientCapabilities struct { - // Workspace specific client capabilities. - Workspace *WorkspaceClientCapabilities `json:"workspace,omitempty"` - - // TextDocument specific client capabilities. - TextDocument *TextDocumentClientCapabilities `json:"textDocument,omitempty"` - - // Window specific client capabilities. - Window *WindowClientCapabilities `json:"window,omitempty"` - - // General client capabilities. - // - // @since 3.16.0. - General *GeneralClientCapabilities `json:"general,omitempty"` - - // Experimental client capabilities. - Experimental interface{} `json:"experimental,omitempty"` -} - -// WorkspaceClientCapabilities Workspace specific client capabilities. -type WorkspaceClientCapabilities struct { - // The client supports applying batch edits to the workspace by supporting - // the request "workspace/applyEdit". - ApplyEdit bool `json:"applyEdit,omitempty"` - - // WorkspaceEdit capabilities specific to `WorkspaceEdit`s. - WorkspaceEdit *WorkspaceClientCapabilitiesWorkspaceEdit `json:"workspaceEdit,omitempty"` - - // DidChangeConfiguration capabilities specific to the `workspace/didChangeConfiguration` notification. - DidChangeConfiguration *DidChangeConfigurationWorkspaceClientCapabilities `json:"didChangeConfiguration,omitempty"` - - // DidChangeWatchedFiles capabilities specific to the `workspace/didChangeWatchedFiles` notification. - DidChangeWatchedFiles *DidChangeWatchedFilesWorkspaceClientCapabilities `json:"didChangeWatchedFiles,omitempty"` - - // Symbol capabilities specific to the "workspace/symbol" request. - Symbol *WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"` - - // ExecuteCommand capabilities specific to the "workspace/executeCommand" request. - ExecuteCommand *ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"` - - // WorkspaceFolders is the client has support for workspace folders. - // - // @since 3.6.0. - WorkspaceFolders bool `json:"workspaceFolders,omitempty"` - - // Configuration is the client supports "workspace/configuration" requests. - // - // @since 3.6.0. - Configuration bool `json:"configuration,omitempty"` - - // SemanticTokens is the capabilities specific to the semantic token requests scoped to the - // workspace. - // - // @since 3.16.0. - SemanticTokens *SemanticTokensWorkspaceClientCapabilities `json:"semanticTokens,omitempty"` - - // CodeLens is the Capabilities specific to the code lens requests scoped to the - // workspace. - // - // @since 3.16.0. - CodeLens *CodeLensWorkspaceClientCapabilities `json:"codeLens,omitempty"` - - // FileOperations is the client has support for file requests/notifications. - // - // @since 3.16.0. - FileOperations *WorkspaceClientCapabilitiesFileOperations `json:"fileOperations,omitempty"` -} - -// WorkspaceClientCapabilitiesWorkspaceEdit capabilities specific to "WorkspaceEdit"s. -type WorkspaceClientCapabilitiesWorkspaceEdit struct { - // DocumentChanges is the client supports versioned document changes in `WorkspaceEdit`s - DocumentChanges bool `json:"documentChanges,omitempty"` - - // FailureHandling is the failure handling strategy of a client if applying the workspace edit - // fails. - // - // Mostly FailureHandlingKind. - FailureHandling string `json:"failureHandling,omitempty"` - - // ResourceOperations is the resource operations the client supports. Clients should at least - // support "create", "rename" and "delete" files and folders. - ResourceOperations []string `json:"resourceOperations,omitempty"` - - // NormalizesLineEndings whether the client normalizes line endings to the client specific - // setting. - // If set to `true` the client will normalize line ending characters - // in a workspace edit to the client specific new line character(s). - // - // @since 3.16.0. - NormalizesLineEndings bool `json:"normalizesLineEndings,omitempty"` - - // ChangeAnnotationSupport whether the client in general supports change annotations on text edits, - // create file, rename file and delete file changes. - // - // @since 3.16.0. - ChangeAnnotationSupport *WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport `json:"changeAnnotationSupport,omitempty"` -} - -// FailureHandlingKind is the kind of failure handling . -type FailureHandlingKind string - -const ( - // FailureHandlingKindAbort applying the workspace change is simply aborted if one of the changes provided - // fails. All operations executed before the failing operation stay executed. - FailureHandlingKindAbort FailureHandlingKind = "abort" - - // FailureHandlingKindTransactional all operations are executed transactional. That means they either all - // succeed or no changes at all are applied to the workspace. - FailureHandlingKindTransactional FailureHandlingKind = "transactional" - - // FailureHandlingKindTextOnlyTransactional if the workspace edit contains only textual file changes they are executed transactional. - // If resource changes (create, rename or delete file) are part of the change the failure - // handling strategy is abort. - FailureHandlingKindTextOnlyTransactional FailureHandlingKind = "textOnlyTransactional" - - // FailureHandlingKindUndo the client tries to undo the operations already executed. But there is no - // guarantee that this is succeeding. - FailureHandlingKindUndo FailureHandlingKind = "undo" -) - -// WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport is the ChangeAnnotationSupport of WorkspaceClientCapabilitiesWorkspaceEdit. -// -// @since 3.16.0. -type WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport struct { - // GroupsOnLabel whether the client groups edits with equal labels into tree nodes, - // for instance all edits labeled with "Changes in Strings" would - // be a tree node. - GroupsOnLabel bool `json:"groupsOnLabel,omitempty"` -} - -// DidChangeConfigurationWorkspaceClientCapabilities capabilities specific to the "workspace/didChangeConfiguration" notification. -// -// @since 3.16.0. -type DidChangeConfigurationWorkspaceClientCapabilities struct { - // DynamicRegistration whether the did change configuration notification supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DidChangeWatchedFilesWorkspaceClientCapabilities capabilities specific to the "workspace/didChangeWatchedFiles" notification. -// -// @since 3.16.0. -type DidChangeWatchedFilesWorkspaceClientCapabilities struct { - // Did change watched files notification supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// WorkspaceSymbolClientCapabilities capabilities specific to the `workspace/symbol` request. -// -// WorkspaceSymbolClientCapabilities is the workspace symbol request is sent from the client to the server to -// list project-wide symbols matching the query string. -type WorkspaceSymbolClientCapabilities struct { - // DynamicRegistration is the Symbol request supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // SymbolKindCapabilities is the specific capabilities for the SymbolKindCapabilities in the "workspace/symbol" request. - SymbolKind *SymbolKindCapabilities `json:"symbolKind,omitempty"` - - // TagSupport is the client supports tags on `SymbolInformation`. - // Clients supporting tags have to handle unknown tags gracefully. - // - // @since 3.16.0 - TagSupport *TagSupportCapabilities `json:"tagSupport,omitempty"` -} - -type SymbolKindCapabilities struct { - // ValueSet is the symbol kind values the client supports. When this - // property exists the client also guarantees that it will - // handle values outside its set gracefully and falls back - // to a default value when unknown. - // - // If this property is not present the client only supports - // the symbol kinds from `File` to `Array` as defined in - // the initial version of the protocol. - ValueSet []SymbolKind `json:"valueSet,omitempty"` -} - -type TagSupportCapabilities struct { - // ValueSet is the tags supported by the client. - ValueSet []SymbolTag `json:"valueSet,omitempty"` -} - -// ExecuteCommandClientCapabilities capabilities specific to the "workspace/executeCommand" request. -type ExecuteCommandClientCapabilities struct { - // DynamicRegistration Execute command supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// SemanticTokensWorkspaceClientCapabilities capabilities specific to the "workspace/semanticToken" request. -// -// @since 3.16.0. -type SemanticTokensWorkspaceClientCapabilities struct { - // RefreshSupport whether the client implementation supports a refresh request sent from - // the server to the client. - // - // Note that this event is global and will force the client to refresh all - // semantic tokens currently shown. It should be used with absolute care - // and is useful for situation where a server for example detect a project - // wide change that requires such a calculation. - RefreshSupport bool `json:"refreshSupport,omitempty"` -} - -// CodeLensWorkspaceClientCapabilities capabilities specific to the "workspace/codeLens" request. -// -// @since 3.16.0. -type CodeLensWorkspaceClientCapabilities struct { - // RefreshSupport whether the client implementation supports a refresh request sent from the - // server to the client. - // - // Note that this event is global and will force the client to refresh all - // code lenses currently shown. It should be used with absolute care and is - // useful for situation where a server for example detect a project wide - // change that requires such a calculation. - RefreshSupport bool `json:"refreshSupport,omitempty"` -} - -// WorkspaceClientCapabilitiesFileOperations capabilities specific to the fileOperations. -// -// @since 3.16.0. -type WorkspaceClientCapabilitiesFileOperations struct { - // DynamicRegistration whether the client supports dynamic registration for file - // requests/notifications. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // DidCreate is the client has support for sending didCreateFiles notifications. - DidCreate bool `json:"didCreate,omitempty"` - - // WillCreate is the client has support for sending willCreateFiles requests. - WillCreate bool `json:"willCreate,omitempty"` - - // DidRename is the client has support for sending didRenameFiles notifications. - DidRename bool `json:"didRename,omitempty"` - - // WillRename is the client has support for sending willRenameFiles requests. - WillRename bool `json:"willRename,omitempty"` - - // DidDelete is the client has support for sending didDeleteFiles notifications. - DidDelete bool `json:"didDelete,omitempty"` - - // WillDelete is the client has support for sending willDeleteFiles requests. - WillDelete bool `json:"willDelete,omitempty"` -} - -// TextDocumentClientCapabilities Text document specific client capabilities. -type TextDocumentClientCapabilities struct { - // Synchronization defines which synchronization capabilities the client supports. - Synchronization *TextDocumentSyncClientCapabilities `json:"synchronization,omitempty"` - - // Completion Capabilities specific to the "textDocument/completion". - Completion *CompletionTextDocumentClientCapabilities `json:"completion,omitempty"` - - // Hover capabilities specific to the "textDocument/hover". - Hover *HoverTextDocumentClientCapabilities `json:"hover,omitempty"` - - // SignatureHelp capabilities specific to the "textDocument/signatureHelp". - SignatureHelp *SignatureHelpTextDocumentClientCapabilities `json:"signatureHelp,omitempty"` - - // Declaration capabilities specific to the "textDocument/declaration". - Declaration *DeclarationTextDocumentClientCapabilities `json:"declaration,omitempty"` - - // Definition capabilities specific to the "textDocument/definition". - // - // @since 3.14.0. - Definition *DefinitionTextDocumentClientCapabilities `json:"definition,omitempty"` - - // TypeDefinition capabilities specific to the "textDocument/typeDefinition". - // - // @since 3.6.0. - TypeDefinition *TypeDefinitionTextDocumentClientCapabilities `json:"typeDefinition,omitempty"` - - // Implementation capabilities specific to the "textDocument/implementation". - // - // @since 3.6.0. - Implementation *ImplementationTextDocumentClientCapabilities `json:"implementation,omitempty"` - - // References capabilities specific to the "textDocument/references". - References *ReferencesTextDocumentClientCapabilities `json:"references,omitempty"` - - // DocumentHighlight capabilities specific to the "textDocument/documentHighlight". - DocumentHighlight *DocumentHighlightClientCapabilities `json:"documentHighlight,omitempty"` - - // DocumentSymbol capabilities specific to the "textDocument/documentSymbol". - DocumentSymbol *DocumentSymbolClientCapabilities `json:"documentSymbol,omitempty"` - - // CodeAction capabilities specific to the "textDocument/codeAction". - CodeAction *CodeActionClientCapabilities `json:"codeAction,omitempty"` - - // CodeLens capabilities specific to the "textDocument/codeLens". - CodeLens *CodeLensClientCapabilities `json:"codeLens,omitempty"` - - // DocumentLink capabilities specific to the "textDocument/documentLink". - DocumentLink *DocumentLinkClientCapabilities `json:"documentLink,omitempty"` - - // ColorProvider capabilities specific to the "textDocument/documentColor" and the - // "textDocument/colorPresentation" request. - // - // @since 3.6.0. - ColorProvider *DocumentColorClientCapabilities `json:"colorProvider,omitempty"` - - // Formatting Capabilities specific to the "textDocument/formatting" request. - Formatting *DocumentFormattingClientCapabilities `json:"formatting,omitempty"` - - // RangeFormatting Capabilities specific to the "textDocument/rangeFormatting" request. - RangeFormatting *DocumentRangeFormattingClientCapabilities `json:"rangeFormatting,omitempty"` - - // OnTypeFormatting Capabilities specific to the "textDocument/onTypeFormatting" request. - OnTypeFormatting *DocumentOnTypeFormattingClientCapabilities `json:"onTypeFormatting,omitempty"` - - // PublishDiagnostics capabilities specific to "textDocument/publishDiagnostics". - PublishDiagnostics *PublishDiagnosticsClientCapabilities `json:"publishDiagnostics,omitempty"` - - // Rename capabilities specific to the "textDocument/rename". - Rename *RenameClientCapabilities `json:"rename,omitempty"` - - // FoldingRange capabilities specific to "textDocument/foldingRange" requests. - // - // @since 3.10.0. - FoldingRange *FoldingRangeClientCapabilities `json:"foldingRange,omitempty"` - - // SelectionRange capabilities specific to "textDocument/selectionRange" requests. - // - // @since 3.15.0. - SelectionRange *SelectionRangeClientCapabilities `json:"selectionRange,omitempty"` - - // CallHierarchy capabilities specific to the various call hierarchy requests. - // - // @since 3.16.0. - CallHierarchy *CallHierarchyClientCapabilities `json:"callHierarchy,omitempty"` - - // SemanticTokens capabilities specific to the various semantic token requests. - // - // @since 3.16.0. - SemanticTokens *SemanticTokensClientCapabilities `json:"semanticTokens,omitempty"` - - // LinkedEditingRange capabilities specific to the "textDocument/linkedEditingRange" request. - // - // @since 3.16.0. - LinkedEditingRange *LinkedEditingRangeClientCapabilities `json:"linkedEditingRange,omitempty"` - - // Moniker capabilities specific to the "textDocument/moniker" request. - // - // @since 3.16.0. - Moniker *MonikerClientCapabilities `json:"moniker,omitempty"` -} - -// TextDocumentSyncClientCapabilities defines which synchronization capabilities the client supports. -type TextDocumentSyncClientCapabilities struct { - // DynamicRegistration whether text document synchronization supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // WillSave is the client supports sending will save notifications. - WillSave bool `json:"willSave,omitempty"` - - // WillSaveWaitUntil is the client supports sending a will save request and - // waits for a response providing text edits which will - // be applied to the document before it is saved. - WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"` - - // DidSave is the client supports did save notifications. - DidSave bool `json:"didSave,omitempty"` -} - -// CompletionTextDocumentClientCapabilities Capabilities specific to the "textDocument/completion". -type CompletionTextDocumentClientCapabilities struct { - // Whether completion supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // The client supports the following `CompletionItem` specific - // capabilities. - CompletionItem *CompletionTextDocumentClientCapabilitiesItem `json:"completionItem,omitempty"` - - CompletionItemKind *CompletionTextDocumentClientCapabilitiesItemKind `json:"completionItemKind,omitempty"` - - // ContextSupport is the client supports to send additional context information for a - // `textDocument/completion` request. - ContextSupport bool `json:"contextSupport,omitempty"` -} - -// CompletionTextDocumentClientCapabilitiesItem is the client supports the following "CompletionItem" specific -// capabilities. -type CompletionTextDocumentClientCapabilitiesItem struct { - // SnippetSupport client supports snippets as insert text. - // - // A snippet can define tab stops and placeholders with `$1`, `$2` - // and `${3:foo}`. `$0` defines the final tab stop, it defaults to - // the end of the snippet. Placeholders with equal identifiers are linked, - // that is typing in one will update others too. - SnippetSupport bool `json:"snippetSupport,omitempty"` - - // CommitCharactersSupport client supports commit characters on a completion item. - CommitCharactersSupport bool `json:"commitCharactersSupport,omitempty"` - - // DocumentationFormat client supports the follow content formats for the documentation - // property. The order describes the preferred format of the client. - DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"` - - // DeprecatedSupport client supports the deprecated property on a completion item. - DeprecatedSupport bool `json:"deprecatedSupport,omitempty"` - - // PreselectSupport client supports the preselect property on a completion item. - PreselectSupport bool `json:"preselectSupport,omitempty"` - - // TagSupport is the client supports the tag property on a completion item. - // - // Clients supporting tags have to handle unknown tags gracefully. - // Clients especially need to preserve unknown tags when sending - // a completion item back to the server in a resolve call. - // - // @since 3.15.0. - TagSupport *CompletionTextDocumentClientCapabilitiesItemTagSupport `json:"tagSupport,omitempty"` - - // InsertReplaceSupport client supports insert replace edit to control different behavior if - // a completion item is inserted in the text or should replace text. - // - // @since 3.16.0. - InsertReplaceSupport bool `json:"insertReplaceSupport,omitempty"` - - // ResolveSupport indicates which properties a client can resolve lazily on a - // completion item. Before version 3.16.0 only the predefined properties - // `documentation` and `details` could be resolved lazily. - // - // @since 3.16.0. - ResolveSupport *CompletionTextDocumentClientCapabilitiesItemResolveSupport `json:"resolveSupport,omitempty"` - - // InsertTextModeSupport is the client supports the `insertTextMode` property on - // a completion item to override the whitespace handling mode - // as defined by the client (see `insertTextMode`). - // - // @since 3.16.0. - InsertTextModeSupport *CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport `json:"insertTextModeSupport,omitempty"` -} - -// CompletionTextDocumentClientCapabilitiesItemTagSupport specific capabilities for the "TagSupport" in the "textDocument/completion" request. -// -// @since 3.15.0. -type CompletionTextDocumentClientCapabilitiesItemTagSupport struct { - // ValueSet is the tags supported by the client. - // - // @since 3.15.0. - ValueSet []CompletionItemTag `json:"valueSet,omitempty"` -} - -// CompletionTextDocumentClientCapabilitiesItemResolveSupport specific capabilities for the ResolveSupport in the CompletionTextDocumentClientCapabilitiesItem. -// -// @since 3.16.0. -type CompletionTextDocumentClientCapabilitiesItemResolveSupport struct { - // Properties is the properties that a client can resolve lazily. - Properties []string `json:"properties"` -} - -// CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport specific capabilities for the InsertTextModeSupport in the CompletionTextDocumentClientCapabilitiesItem. -// -// @since 3.16.0. -type CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport struct { - // ValueSet is the tags supported by the client. - // - // @since 3.16.0. - ValueSet []InsertTextMode `json:"valueSet,omitempty"` -} - -// CompletionTextDocumentClientCapabilitiesItemKind specific capabilities for the "CompletionItemKind" in the "textDocument/completion" request. -type CompletionTextDocumentClientCapabilitiesItemKind struct { - // The completion item kind values the client supports. When this - // property exists the client also guarantees that it will - // handle values outside its set gracefully and falls back - // to a default value when unknown. - // - // If this property is not present the client only supports - // the completion items kinds from `Text` to `Reference` as defined in - // the initial version of the protocol. - // - ValueSet []CompletionItemKind `json:"valueSet,omitempty"` -} - -// HoverTextDocumentClientCapabilities capabilities specific to the "textDocument/hover". -type HoverTextDocumentClientCapabilities struct { - // DynamicRegistration whether hover supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // ContentFormat is the client supports the follow content formats for the content - // property. The order describes the preferred format of the client. - ContentFormat []MarkupKind `json:"contentFormat,omitempty"` -} - -// SignatureHelpTextDocumentClientCapabilities capabilities specific to the "textDocument/signatureHelp". -type SignatureHelpTextDocumentClientCapabilities struct { - // DynamicRegistration whether signature help supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // SignatureInformation is the client supports the following "SignatureInformation" - // specific properties. - SignatureInformation *TextDocumentClientCapabilitiesSignatureInformation `json:"signatureInformation,omitempty"` - - // ContextSupport is the client supports to send additional context information for a "textDocument/signatureHelp" request. - // - // A client that opts into contextSupport will also support the "retriggerCharacters" on "SignatureHelpOptions". - // - // @since 3.15.0. - ContextSupport bool `json:"contextSupport,omitempty"` -} - -// TextDocumentClientCapabilitiesSignatureInformation is the client supports the following "SignatureInformation" -// specific properties. -type TextDocumentClientCapabilitiesSignatureInformation struct { - // DocumentationFormat is the client supports the follow content formats for the documentation - // property. The order describes the preferred format of the client. - DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"` - - // ParameterInformation is the Client capabilities specific to parameter information. - ParameterInformation *TextDocumentClientCapabilitiesParameterInformation `json:"parameterInformation,omitempty"` - - // ActiveParameterSupport is the client supports the `activeParameter` property on - // `SignatureInformation` literal. - // - // @since 3.16.0. - ActiveParameterSupport bool `json:"activeParameterSupport,omitempty"` -} - -// TextDocumentClientCapabilitiesParameterInformation is the client capabilities specific to parameter information. -type TextDocumentClientCapabilitiesParameterInformation struct { - // LabelOffsetSupport is the client supports processing label offsets instead of a - // simple label string. - // - // @since 3.14.0. - LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"` -} - -// DeclarationTextDocumentClientCapabilities capabilities specific to the "textDocument/declaration". -type DeclarationTextDocumentClientCapabilities struct { - // DynamicRegistration whether declaration supports dynamic registration. If this is set to `true` - // the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)` - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // LinkSupport is the client supports additional metadata in the form of declaration links. - // - // @since 3.14.0. - LinkSupport bool `json:"linkSupport,omitempty"` -} - -// DefinitionTextDocumentClientCapabilities capabilities specific to the "textDocument/definition". -// -// @since 3.14.0. -type DefinitionTextDocumentClientCapabilities struct { - // DynamicRegistration whether definition supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // LinkSupport is the client supports additional metadata in the form of definition links. - LinkSupport bool `json:"linkSupport,omitempty"` -} - -// TypeDefinitionTextDocumentClientCapabilities capabilities specific to the "textDocument/typeDefinition". -// -// @since 3.6.0. -type TypeDefinitionTextDocumentClientCapabilities struct { - // DynamicRegistration whether typeDefinition supports dynamic registration. If this is set to `true` - // the client supports the new "(TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // LinkSupport is the client supports additional metadata in the form of definition links. - // - // @since 3.14.0 - LinkSupport bool `json:"linkSupport,omitempty"` -} - -// ImplementationTextDocumentClientCapabilities capabilities specific to the "textDocument/implementation". -// -// @since 3.6.0. -type ImplementationTextDocumentClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. If this is set to `true` - // the client supports the new "(TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // LinkSupport is the client supports additional metadata in the form of definition links. - // - // @since 3.14.0 - LinkSupport bool `json:"linkSupport,omitempty"` -} - -// ReferencesTextDocumentClientCapabilities capabilities specific to the "textDocument/references". -type ReferencesTextDocumentClientCapabilities struct { - // DynamicRegistration whether references supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentHighlightClientCapabilities capabilities specific to the "textDocument/documentHighlight". -type DocumentHighlightClientCapabilities struct { - // DynamicRegistration Whether document highlight supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentSymbolClientCapabilities capabilities specific to the "textDocument/documentSymbol". -type DocumentSymbolClientCapabilities struct { - // DynamicRegistration whether document symbol supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // SymbolKind specific capabilities for the "SymbolKindCapabilities". - SymbolKind *SymbolKindCapabilities `json:"symbolKind,omitempty"` - - // HierarchicalDocumentSymbolSupport is the client support hierarchical document symbols. - HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport,omitempty"` - - // TagSupport is the client supports tags on "SymbolInformation". Tags are supported on - // "DocumentSymbol" if "HierarchicalDocumentSymbolSupport" is set to true. - // Clients supporting tags have to handle unknown tags gracefully. - // - // @since 3.16.0. - TagSupport *DocumentSymbolClientCapabilitiesTagSupport `json:"tagSupport,omitempty"` - - // LabelSupport is the client supports an additional label presented in the UI when - // registering a document symbol provider. - // - // @since 3.16.0. - LabelSupport bool `json:"labelSupport,omitempty"` -} - -// DocumentSymbolClientCapabilitiesTagSupport TagSupport in the DocumentSymbolClientCapabilities. -// -// @since 3.16.0. -type DocumentSymbolClientCapabilitiesTagSupport struct { - // ValueSet is the tags supported by the client. - ValueSet []SymbolTag `json:"valueSet"` -} - -// CodeActionClientCapabilities capabilities specific to the "textDocument/codeAction". -type CodeActionClientCapabilities struct { - // DynamicRegistration whether code action supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // CodeActionLiteralSupport is the client support code action literals as a valid - // response of the "textDocument/codeAction" request. - // - // @since 3.8.0 - CodeActionLiteralSupport *CodeActionClientCapabilitiesLiteralSupport `json:"codeActionLiteralSupport,omitempty"` - - // IsPreferredSupport whether code action supports the "isPreferred" property. - // - // @since 3.15.0. - IsPreferredSupport bool `json:"isPreferredSupport,omitempty"` - - // DisabledSupport whether code action supports the `disabled` property. - // - // @since 3.16.0. - DisabledSupport bool `json:"disabledSupport,omitempty"` - - // DataSupport whether code action supports the `data` property which is - // preserved between a `textDocument/codeAction` and a - // `codeAction/resolve` request. - // - // @since 3.16.0. - DataSupport bool `json:"dataSupport,omitempty"` - - // ResolveSupport whether the client supports resolving additional code action - // properties via a separate `codeAction/resolve` request. - // - // @since 3.16.0. - ResolveSupport *CodeActionClientCapabilitiesResolveSupport `json:"resolveSupport,omitempty"` - - // HonorsChangeAnnotations whether the client honors the change annotations in - // text edits and resource operations returned via the - // `CodeAction#edit` property by for example presenting - // the workspace edit in the user interface and asking - // for confirmation. - // - // @since 3.16.0. - HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"` -} - -// CodeActionClientCapabilitiesLiteralSupport is the client support code action literals as a valid response of the "textDocument/codeAction" request. -type CodeActionClientCapabilitiesLiteralSupport struct { - // CodeActionKind is the code action kind is support with the following value - // set. - CodeActionKind *CodeActionClientCapabilitiesKind `json:"codeActionKind"` -} - -// CodeActionClientCapabilitiesKind is the code action kind is support with the following value set. -type CodeActionClientCapabilitiesKind struct { - // ValueSet is the code action kind values the client supports. When this - // property exists the client also guarantees that it will - // handle values outside its set gracefully and falls back - // to a default value when unknown. - ValueSet []CodeActionKind `json:"valueSet"` -} - -// CodeActionClientCapabilitiesResolveSupport ResolveSupport in the CodeActionClientCapabilities. -// -// @since 3.16.0. -type CodeActionClientCapabilitiesResolveSupport struct { - // Properties is the properties that a client can resolve lazily. - Properties []string `json:"properties"` -} - -// CodeLensClientCapabilities capabilities specific to the "textDocument/codeLens". -type CodeLensClientCapabilities struct { - // DynamicRegistration Whether code lens supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentLinkClientCapabilities capabilities specific to the "textDocument/documentLink". -type DocumentLinkClientCapabilities struct { - // DynamicRegistration whether document link supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // TooltipSupport whether the client supports the "tooltip" property on "DocumentLink". - // - // @since 3.15.0. - TooltipSupport bool `json:"tooltipSupport,omitempty"` -} - -// DocumentColorClientCapabilities capabilities specific to the "textDocument/documentColor" and the -// "textDocument/colorPresentation" request. -// -// @since 3.6.0. -type DocumentColorClientCapabilities struct { - // DynamicRegistration whether colorProvider supports dynamic registration. If this is set to `true` - // the client supports the new "(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentFormattingClientCapabilities capabilities specific to the "textDocument/formatting". -type DocumentFormattingClientCapabilities struct { - // DynamicRegistration whether code lens supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentRangeFormattingClientCapabilities capabilities specific to the "textDocument/rangeFormatting". -type DocumentRangeFormattingClientCapabilities struct { - // DynamicRegistration whether code lens supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentOnTypeFormattingClientCapabilities capabilities specific to the "textDocument/onTypeFormatting". -type DocumentOnTypeFormattingClientCapabilities struct { - // DynamicRegistration whether code lens supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// PublishDiagnosticsClientCapabilities capabilities specific to "textDocument/publishDiagnostics". -type PublishDiagnosticsClientCapabilities struct { - // RelatedInformation whether the clients accepts diagnostics with related information. - RelatedInformation bool `json:"relatedInformation,omitempty"` - - // TagSupport clients supporting tags have to handle unknown tags gracefully. - // - // @since 3.15.0. - TagSupport *PublishDiagnosticsClientCapabilitiesTagSupport `json:"tagSupport,omitempty"` - - // VersionSupport whether the client interprets the version property of the - // "textDocument/publishDiagnostics" notification`s parameter. - // - // @since 3.15.0. - VersionSupport bool `json:"versionSupport,omitempty"` - - // CodeDescriptionSupport client supports a codeDescription property - // - // @since 3.16.0. - CodeDescriptionSupport bool `json:"codeDescriptionSupport,omitempty"` - - // DataSupport whether code action supports the `data` property which is - // preserved between a `textDocument/publishDiagnostics` and - // `textDocument/codeAction` request. - // - // @since 3.16.0. - DataSupport bool `json:"dataSupport,omitempty"` -} - -// PublishDiagnosticsClientCapabilitiesTagSupport is the client capacity of TagSupport. -// -// @since 3.15.0. -type PublishDiagnosticsClientCapabilitiesTagSupport struct { - // ValueSet is the tags supported by the client. - ValueSet []DiagnosticTag `json:"valueSet"` -} - -// RenameClientCapabilities capabilities specific to the "textDocument/rename". -type RenameClientCapabilities struct { - // DynamicRegistration whether rename supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // PrepareSupport is the client supports testing for validity of rename operations - // before execution. - PrepareSupport bool `json:"prepareSupport,omitempty"` - - // PrepareSupportDefaultBehavior client supports the default behavior result - // (`{ defaultBehavior: boolean }`). - // - // The value indicates the default behavior used by the - // client. - // - // @since 3.16.0. - PrepareSupportDefaultBehavior PrepareSupportDefaultBehavior `json:"prepareSupportDefaultBehavior,omitempty"` - - // HonorsChangeAnnotations whether th client honors the change annotations in - // text edits and resource operations returned via the - // rename request's workspace edit by for example presenting - // the workspace edit in the user interface and asking - // for confirmation. - // - // @since 3.16.0. - HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"` -} - -// PrepareSupportDefaultBehavior default behavior of PrepareSupport. -// -// @since 3.16.0. -type PrepareSupportDefaultBehavior float64 - -// list of PrepareSupportDefaultBehavior. -const ( - // PrepareSupportDefaultBehaviorIdentifier is the client's default behavior is to select the identifier - // according the to language's syntax rule. - PrepareSupportDefaultBehaviorIdentifier PrepareSupportDefaultBehavior = 1 -) - -// String returns a string representation of the PrepareSupportDefaultBehavior. -func (k PrepareSupportDefaultBehavior) String() string { - switch k { - case PrepareSupportDefaultBehaviorIdentifier: - return "Identifier" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// FoldingRangeClientCapabilities capabilities specific to "textDocument/foldingRange" requests. -// -// @since 3.10.0. -type FoldingRangeClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration for folding range providers. If this is set to `true` - // the client supports the new "(FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // RangeLimit is the maximum number of folding ranges that the client prefers to receive per document. The value serves as a - // hint, servers are free to follow the limit. - RangeLimit uint32 `json:"rangeLimit,omitempty"` - - // LineFoldingOnly if set, the client signals that it only supports folding complete lines. If set, client will - // ignore specified "startCharacter" and "endCharacter" properties in a FoldingRange. - LineFoldingOnly bool `json:"lineFoldingOnly,omitempty"` -} - -// SelectionRangeClientCapabilities capabilities specific to "textDocument/selectionRange" requests. -// -// @since 3.16.0. -type SelectionRangeClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration for selection range providers. If this is set to `true` - // the client supports the new "(SelectionRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// CallHierarchyClientCapabilities capabilities specific to "textDocument/callHierarchy" requests. -// -// @since 3.16.0. -type CallHierarchyClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. If this is set to - // `true` the client supports the new `(TextDocumentRegistrationOptions & - // StaticRegistrationOptions)` return value for the corresponding server - // capability as well.} - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// SemanticTokensClientCapabilities capabilities specific to the "textDocument.semanticTokens" request. -// -// @since 3.16.0. -type SemanticTokensClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. If this is set to - // `true` the client supports the new `(TextDocumentRegistrationOptions & - // StaticRegistrationOptions)` return value for the corresponding server - // capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // Requests which requests the client supports and might send to the server - // depending on the server's capability. Please note that clients might not - // show semantic tokens or degrade some of the user experience if a range - // or full request is advertised by the client but not provided by the - // server. If for example the client capability `requests.full` and - // `request.range` are both set to true but the server only provides a - // range provider the client might not render a minimap correctly or might - // even decide to not show any semantic tokens at all. - Requests SemanticTokensWorkspaceClientCapabilitiesRequests `json:"requests"` - - // TokenTypes is the token types that the client supports. - TokenTypes []string `json:"tokenTypes"` - - // TokenModifiers is the token modifiers that the client supports. - TokenModifiers []string `json:"tokenModifiers"` - - // Formats is the formats the clients supports. - Formats []TokenFormat `json:"formats"` - - // OverlappingTokenSupport whether the client supports tokens that can overlap each other. - OverlappingTokenSupport bool `json:"overlappingTokenSupport,omitempty"` - - // MultilineTokenSupport whether the client supports tokens that can span multiple lines. - MultilineTokenSupport bool `json:"multilineTokenSupport,omitempty"` -} - -// SemanticTokensWorkspaceClientCapabilitiesRequests capabilities specific to the "textDocument/semanticTokens/xxx" request. -// -// @since 3.16.0. -type SemanticTokensWorkspaceClientCapabilitiesRequests struct { - // Range is the client will send the "textDocument/semanticTokens/range" request - // if the server provides a corresponding handler. - Range bool `json:"range,omitempty"` - - // Full is the client will send the "textDocument/semanticTokens/full" request - // if the server provides a corresponding handler. The client will send the - // `textDocument/semanticTokens/full/delta` request if the server provides a - // corresponding handler. - Full interface{} `json:"full,omitempty"` -} - -// LinkedEditingRangeClientCapabilities capabilities specific to "textDocument/linkedEditingRange" requests. -// -// @since 3.16.0. -type LinkedEditingRangeClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. - // If this is set to `true` the client supports the new - // `(TextDocumentRegistrationOptions & StaticRegistrationOptions)` - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// MonikerClientCapabilities capabilities specific to the "textDocument/moniker" request. -// -// @since 3.16.0. -type MonikerClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. If this is set to - // `true` the client supports the new `(TextDocumentRegistrationOptions & - // StaticRegistrationOptions)` return value for the corresponding server - // capability as well.// DynamicRegistration whether implementation supports dynamic registration. If this is set to - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// WindowClientCapabilities represents a WindowClientCapabilities specific client capabilities. -// -// @since 3.15.0. -type WindowClientCapabilities struct { - // WorkDoneProgress whether client supports handling progress notifications. If set servers are allowed to - // report in "workDoneProgress" property in the request specific server capabilities. - // - // @since 3.15.0. - WorkDoneProgress bool `json:"workDoneProgress,omitempty"` - - // ShowMessage capabilities specific to the showMessage request. - // - // @since 3.16.0. - ShowMessage *ShowMessageRequestClientCapabilities `json:"showMessage,omitempty"` - - // ShowDocument client capabilities for the show document request. - // - // @since 3.16.0. - ShowDocument *ShowDocumentClientCapabilities `json:"showDocument,omitempty"` -} - -// ShowMessageRequestClientCapabilities show message request client capabilities. -// -// @since 3.16.0. -type ShowMessageRequestClientCapabilities struct { - // MessageActionItem capabilities specific to the "MessageActionItem" type. - MessageActionItem *ShowMessageRequestClientCapabilitiesMessageActionItem `json:"messageActionItem,omitempty"` -} - -// ShowMessageRequestClientCapabilitiesMessageActionItem capabilities specific to the "MessageActionItem" type. -// -// @since 3.16.0. -type ShowMessageRequestClientCapabilitiesMessageActionItem struct { - // AdditionalPropertiesSupport whether the client supports additional attributes which - // are preserved and sent back to the server in the - // request's response. - AdditionalPropertiesSupport bool `json:"additionalPropertiesSupport,omitempty"` -} - -// ShowDocumentClientCapabilities client capabilities for the show document request. -// -// @since 3.16.0. -type ShowDocumentClientCapabilities struct { - // Support is the client has support for the show document - // request. - Support bool `json:"support"` -} - -// GeneralClientCapabilities represents a General specific client capabilities. -// -// @since 3.16.0. -type GeneralClientCapabilities struct { - // RegularExpressions is the client capabilities specific to regular expressions. - // - // @since 3.16.0. - RegularExpressions *RegularExpressionsClientCapabilities `json:"regularExpressions,omitempty"` - - // Markdown client capabilities specific to the client's markdown parser. - // - // @since 3.16.0. - Markdown *MarkdownClientCapabilities `json:"markdown,omitempty"` -} - -// RegularExpressionsClientCapabilities represents a client capabilities specific to regular expressions. -// -// The following features from the ECMAScript 2020 regular expression specification are NOT mandatory for a client: -// -// Assertions -// Lookahead assertion, Negative lookahead assertion, lookbehind assertion, negative lookbehind assertion. -// Character classes -// Matching control characters using caret notation (e.g. "\cX") and matching UTF-16 code units (e.g. "\uhhhh"). -// Group and ranges -// Named capturing groups. -// Unicode property escapes -// None of the features needs to be supported. -// -// The only regular expression flag that a client needs to support is "i" to specify a case insensitive search. -// -// @since 3.16.0. -type RegularExpressionsClientCapabilities struct { - // Engine is the engine's name. - // - // Well known engine name is "ECMAScript". - // https://tc39.es/ecma262/#sec-regexp-regular-expression-objects - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions - Engine string `json:"engine"` - - // Version is the engine's version. - // - // Well known engine version is "ES2020". - // https://tc39.es/ecma262/#sec-regexp-regular-expression-objects - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions - Version string `json:"version,omitempty"` -} - -// MarkdownClientCapabilities represents a client capabilities specific to the used markdown parser. -// -// @since 3.16.0. -type MarkdownClientCapabilities struct { - // Parser is the name of the parser. - Parser string `json:"parser"` - - // version is the version of the parser. - Version string `json:"version,omitempty"` -} diff --git a/vendor/go.lsp.dev/protocol/capabilities_server.go b/vendor/go.lsp.dev/protocol/capabilities_server.go deleted file mode 100644 index 40ae88a..0000000 --- a/vendor/go.lsp.dev/protocol/capabilities_server.go +++ /dev/null @@ -1,523 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" -) - -// ServerCapabilities efines the capabilities provided by a language server. -type ServerCapabilities struct { - // TextDocumentSync defines how text documents are synced. Is either a detailed structure defining each notification - // or for backwards compatibility the TextDocumentSyncKind number. - // - // If omitted it defaults to TextDocumentSyncKind.None` - TextDocumentSync interface{} `json:"textDocumentSync,omitempty"` // *TextDocumentSyncOptions | TextDocumentSyncKind - - // CompletionProvider is The server provides completion support. - CompletionProvider *CompletionOptions `json:"completionProvider,omitempty"` - - // HoverProvider is the server provides hover support. - HoverProvider interface{} `json:"hoverProvider,omitempty"` // TODO(zchee): bool | *HoverOptions - - // SignatureHelpProvider is the server provides signature help support. - SignatureHelpProvider *SignatureHelpOptions `json:"signatureHelpProvider,omitempty"` - - // DeclarationProvider is the server provides Goto Declaration support. - // - // @since 3.14.0. - DeclarationProvider interface{} `json:"declarationProvider,omitempty"` // TODO(zchee): bool | *DeclarationOptions | *DeclarationRegistrationOptions - - // DefinitionProvider is the server provides Goto definition support. - DefinitionProvider interface{} `json:"definitionProvider,omitempty"` // TODO(zchee): bool | *DefinitionOptions - - // TypeDefinitionProvider is the provides Goto Type Definition support. - // - // @since 3.6.0. - TypeDefinitionProvider interface{} `json:"typeDefinitionProvider,omitempty"` // TODO(zchee): bool | *TypeDefinitionOptions | *TypeDefinitionRegistrationOptions - - // ImplementationProvider is the provides Goto Implementation support. - // - // @since 3.6.0. - ImplementationProvider interface{} `json:"implementationProvider,omitempty"` // TODO(zchee): bool | *ImplementationOptions | *ImplementationRegistrationOptions - - // ReferencesProvider is the server provides find references support. - ReferencesProvider interface{} `json:"referencesProvider,omitempty"` // TODO(zchee): bool | *ReferenceOptions - - // DocumentHighlightProvider is the server provides document highlight support. - DocumentHighlightProvider interface{} `json:"documentHighlightProvider,omitempty"` // TODO(zchee): bool | *DocumentHighlightOptions - - // DocumentSymbolProvider is the server provides document symbol support. - DocumentSymbolProvider interface{} `json:"documentSymbolProvider,omitempty"` // TODO(zchee): bool | *DocumentSymbolOptions - - // CodeActionProvider is the server provides code actions. - // - // CodeActionOptions may only be specified if the client states that it supports CodeActionLiteralSupport in its - // initial Initialize request. - CodeActionProvider interface{} `json:"codeActionProvider,omitempty"` // TODO(zchee): bool | *CodeActionOptions - - // CodeLensProvider is the server provides code lens. - CodeLensProvider *CodeLensOptions `json:"codeLensProvider,omitempty"` - - // The server provides document link support. - DocumentLinkProvider *DocumentLinkOptions `json:"documentLinkProvider,omitempty"` - - // ColorProvider is the server provides color provider support. - // - // @since 3.6.0. - ColorProvider interface{} `json:"colorProvider,omitempty"` // TODO(zchee): bool | *DocumentColorOptions | *DocumentColorRegistrationOptions - - // WorkspaceSymbolProvider is the server provides workspace symbol support. - WorkspaceSymbolProvider interface{} `json:"workspaceSymbolProvider,omitempty"` // TODO(zchee): bool | *WorkspaceSymbolOptions - - // DocumentFormattingProvider is the server provides document formatting. - DocumentFormattingProvider interface{} `json:"documentFormattingProvider,omitempty"` // TODO(zchee): bool | *DocumentFormattingOptions - - // DocumentRangeFormattingProvider is the server provides document range formatting. - DocumentRangeFormattingProvider interface{} `json:"documentRangeFormattingProvider,omitempty"` // TODO(zchee): bool | *DocumentRangeFormattingOptions - - // DocumentOnTypeFormattingProvider is the server provides document formatting on typing. - DocumentOnTypeFormattingProvider *DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"` - - // RenameProvider is the server provides rename support. - // - // RenameOptions may only be specified if the client states that it supports PrepareSupport in its - // initial Initialize request. - RenameProvider interface{} `json:"renameProvider,omitempty"` // TODO(zchee): bool | *RenameOptions - - // FoldingRangeProvider is the server provides folding provider support. - // - // @since 3.10.0. - FoldingRangeProvider interface{} `json:"foldingRangeProvider,omitempty"` // TODO(zchee): bool | *FoldingRangeOptions | *FoldingRangeRegistrationOptions - - // SelectionRangeProvider is the server provides selection range support. - // - // @since 3.15.0. - SelectionRangeProvider interface{} `json:"selectionRangeProvider,omitempty"` // TODO(zchee): bool | *SelectionRangeOptions | *SelectionRangeRegistrationOptions - - // ExecuteCommandProvider is the server provides execute command support. - ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"` - - // CallHierarchyProvider is the server provides call hierarchy support. - // - // @since 3.16.0. - CallHierarchyProvider interface{} `json:"callHierarchyProvider,omitempty"` // TODO(zchee): bool | *CallHierarchyOptions | *CallHierarchyRegistrationOptions - - // LinkedEditingRangeProvider is the server provides linked editing range support. - // - // @since 3.16.0. - LinkedEditingRangeProvider interface{} `json:"linkedEditingRangeProvider,omitempty"` // TODO(zchee): bool | *LinkedEditingRangeOptions | *LinkedEditingRangeRegistrationOptions - - // SemanticTokensProvider is the server provides semantic tokens support. - // - // @since 3.16.0. - SemanticTokensProvider interface{} `json:"semanticTokensProvider,omitempty"` // TODO(zchee): *SemanticTokensOptions | *SemanticTokensRegistrationOptions - - // Workspace is the window specific server capabilities. - Workspace *ServerCapabilitiesWorkspace `json:"workspace,omitempty"` - - // MonikerProvider is the server provides moniker support. - // - // @since 3.16.0. - MonikerProvider interface{} `json:"monikerProvider,omitempty"` // TODO(zchee): bool | *MonikerOptions | *MonikerRegistrationOptions - - // Experimental server capabilities. - Experimental interface{} `json:"experimental,omitempty"` -} - -// TextDocumentSyncOptions TextDocumentSync options. -type TextDocumentSyncOptions struct { - // OpenClose open and close notifications are sent to the server. - OpenClose bool `json:"openClose,omitempty"` - - // Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full - // and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. - Change TextDocumentSyncKind `json:"change,omitempty"` - - // WillSave notifications are sent to the server. - WillSave bool `json:"willSave,omitempty"` - - // WillSaveWaitUntil will save wait until requests are sent to the server. - WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"` - - // Save notifications are sent to the server. - Save *SaveOptions `json:"save,omitempty"` -} - -// SaveOptions save options. -type SaveOptions struct { - // IncludeText is the client is supposed to include the content on save. - IncludeText bool `json:"includeText,omitempty"` -} - -// TextDocumentSyncKind defines how the host (editor) should sync document changes to the language server. -type TextDocumentSyncKind float64 - -const ( - // TextDocumentSyncKindNone documents should not be synced at all. - TextDocumentSyncKindNone TextDocumentSyncKind = 0 - - // TextDocumentSyncKindFull documents are synced by always sending the full content - // of the document. - TextDocumentSyncKindFull TextDocumentSyncKind = 1 - - // TextDocumentSyncKindIncremental documents are synced by sending the full content on open. - // After that only incremental updates to the document are - // send. - TextDocumentSyncKindIncremental TextDocumentSyncKind = 2 -) - -// String implements fmt.Stringer. -func (k TextDocumentSyncKind) String() string { - switch k { - case TextDocumentSyncKindNone: - return "None" - case TextDocumentSyncKindFull: - return "Full" - case TextDocumentSyncKindIncremental: - return "Incremental" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// CompletionOptions Completion options. -type CompletionOptions struct { - // The server provides support to resolve additional - // information for a completion item. - ResolveProvider bool `json:"resolveProvider,omitempty"` - - // The characters that trigger completion automatically. - TriggerCharacters []string `json:"triggerCharacters,omitempty"` -} - -// HoverOptions option of hover provider server capabilities. -type HoverOptions struct { - WorkDoneProgressOptions -} - -// SignatureHelpOptions SignatureHelp options. -type SignatureHelpOptions struct { - // The characters that trigger signature help - // automatically. - TriggerCharacters []string `json:"triggerCharacters,omitempty"` - - // RetriggerCharacters is the slist of characters that re-trigger signature help. - // - // These trigger characters are only active when signature help is already - // showing. - // All trigger characters are also counted as re-trigger characters. - // - // @since 3.15.0. - RetriggerCharacters []string `json:"retriggerCharacters,omitempty"` -} - -// DeclarationOptions registration option of Declaration server capability. -// -// @since 3.15.0. -type DeclarationOptions struct { - WorkDoneProgressOptions -} - -// DeclarationRegistrationOptions registration option of Declaration server capability. -// -// @since 3.15.0. -type DeclarationRegistrationOptions struct { - DeclarationOptions - TextDocumentRegistrationOptions - StaticRegistrationOptions -} - -// DefinitionOptions registration option of Definition server capability. -// -// @since 3.15.0. -type DefinitionOptions struct { - WorkDoneProgressOptions -} - -// TypeDefinitionOptions registration option of TypeDefinition server capability. -// -// @since 3.15.0. -type TypeDefinitionOptions struct { - WorkDoneProgressOptions -} - -// TypeDefinitionRegistrationOptions registration option of TypeDefinition server capability. -// -// @since 3.15.0. -type TypeDefinitionRegistrationOptions struct { - TextDocumentRegistrationOptions - TypeDefinitionOptions - StaticRegistrationOptions -} - -// ImplementationOptions registration option of Implementation server capability. -// -// @since 3.15.0. -type ImplementationOptions struct { - WorkDoneProgressOptions -} - -// ImplementationRegistrationOptions registration option of Implementation server capability. -// -// @since 3.15.0. -type ImplementationRegistrationOptions struct { - TextDocumentRegistrationOptions - ImplementationOptions - StaticRegistrationOptions -} - -// ReferenceOptions registration option of Reference server capability. -type ReferenceOptions struct { - WorkDoneProgressOptions -} - -// DocumentHighlightOptions registration option of DocumentHighlight server capability. -// -// @since 3.15.0. -type DocumentHighlightOptions struct { - WorkDoneProgressOptions -} - -// DocumentSymbolOptions registration option of DocumentSymbol server capability. -// -// @since 3.15.0. -type DocumentSymbolOptions struct { - WorkDoneProgressOptions - - // Label a human-readable string that is shown when multiple outlines trees - // are shown for the same document. - // - // @since 3.16.0. - Label string `json:"label,omitempty"` -} - -// CodeActionOptions CodeAction options. -type CodeActionOptions struct { - // CodeActionKinds that this server may return. - // - // The list of kinds may be generic, such as "CodeActionKind.Refactor", or the server - // may list out every specific kind they provide. - CodeActionKinds []CodeActionKind `json:"codeActionKinds,omitempty"` - - // ResolveProvider is the server provides support to resolve additional - // information for a code action. - // - // @since 3.16.0. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// CodeLensOptions CodeLens options. -type CodeLensOptions struct { - // Code lens has a resolve provider as well. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// DocumentLinkOptions document link options. -type DocumentLinkOptions struct { - // ResolveProvider document links have a resolve provider as well. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// DocumentColorOptions registration option of DocumentColor server capability. -// -// @since 3.15.0. -type DocumentColorOptions struct { - WorkDoneProgressOptions -} - -// DocumentColorRegistrationOptions registration option of DocumentColor server capability. -// -// @since 3.15.0. -type DocumentColorRegistrationOptions struct { - TextDocumentRegistrationOptions - StaticRegistrationOptions - DocumentColorOptions -} - -// WorkspaceSymbolOptions registration option of WorkspaceSymbol server capability. -// -// @since 3.15.0. -type WorkspaceSymbolOptions struct { - WorkDoneProgressOptions -} - -// DocumentFormattingOptions registration option of DocumentFormatting server capability. -// -// @since 3.15.0. -type DocumentFormattingOptions struct { - WorkDoneProgressOptions -} - -// DocumentRangeFormattingOptions registration option of DocumentRangeFormatting server capability. -// -// @since 3.15.0. -type DocumentRangeFormattingOptions struct { - WorkDoneProgressOptions -} - -// DocumentOnTypeFormattingOptions format document on type options. -type DocumentOnTypeFormattingOptions struct { - // FirstTriggerCharacter a character on which formatting should be triggered, like "}". - FirstTriggerCharacter string `json:"firstTriggerCharacter"` - - // MoreTriggerCharacter more trigger characters. - MoreTriggerCharacter []string `json:"moreTriggerCharacter,omitempty"` -} - -// RenameOptions rename options. -type RenameOptions struct { - // PrepareProvider renames should be checked and tested before being executed. - PrepareProvider bool `json:"prepareProvider,omitempty"` -} - -// FoldingRangeOptions registration option of FoldingRange server capability. -// -// @since 3.15.0. -type FoldingRangeOptions struct { - WorkDoneProgressOptions -} - -// FoldingRangeRegistrationOptions registration option of FoldingRange server capability. -// -// @since 3.15.0. -type FoldingRangeRegistrationOptions struct { - TextDocumentRegistrationOptions - FoldingRangeOptions - StaticRegistrationOptions -} - -// ExecuteCommandOptions execute command options. -type ExecuteCommandOptions struct { - // Commands is the commands to be executed on the server - Commands []string `json:"commands"` -} - -// CallHierarchyOptions option of CallHierarchy. -// -// @since 3.16.0. -type CallHierarchyOptions struct { - WorkDoneProgressOptions -} - -// CallHierarchyRegistrationOptions registration options of CallHierarchy. -// -// @since 3.16.0. -type CallHierarchyRegistrationOptions struct { - TextDocumentRegistrationOptions - CallHierarchyOptions - StaticRegistrationOptions -} - -// LinkedEditingRangeOptions option of linked editing range provider server capabilities. -// -// @since 3.16.0. -type LinkedEditingRangeOptions struct { - WorkDoneProgressOptions -} - -// LinkedEditingRangeRegistrationOptions registration option of linked editing range provider server capabilities. -// -// @since 3.16.0. -type LinkedEditingRangeRegistrationOptions struct { - TextDocumentRegistrationOptions - LinkedEditingRangeOptions - StaticRegistrationOptions -} - -// SemanticTokensOptions option of semantic tokens provider server capabilities. -// -// @since 3.16.0. -type SemanticTokensOptions struct { - WorkDoneProgressOptions -} - -// SemanticTokensRegistrationOptions registration option of semantic tokens provider server capabilities. -// -// @since 3.16.0. -type SemanticTokensRegistrationOptions struct { - TextDocumentRegistrationOptions - SemanticTokensOptions - StaticRegistrationOptions -} - -// ServerCapabilitiesWorkspace specific server capabilities. -type ServerCapabilitiesWorkspace struct { - // WorkspaceFolders is the server supports workspace folder. - // - // @since 3.6.0. - WorkspaceFolders *ServerCapabilitiesWorkspaceFolders `json:"workspaceFolders,omitempty"` - - // FileOperations is the server is interested in file notifications/requests. - // - // @since 3.16.0. - FileOperations *ServerCapabilitiesWorkspaceFileOperations `json:"fileOperations,omitempty"` -} - -// ServerCapabilitiesWorkspaceFolders is the server supports workspace folder. -// -// @since 3.6.0. -type ServerCapabilitiesWorkspaceFolders struct { - // Supported is the server has support for workspace folders - Supported bool `json:"supported,omitempty"` - - // ChangeNotifications whether the server wants to receive workspace folder - // change notifications. - // - // If a strings is provided the string is treated as a ID - // under which the notification is registered on the client - // side. The ID can be used to unregister for these events - // using the `client/unregisterCapability` request. - ChangeNotifications interface{} `json:"changeNotifications,omitempty"` // string | boolean -} - -// ServerCapabilitiesWorkspaceFileOperations is the server is interested in file notifications/requests. -// -// @since 3.16.0. -type ServerCapabilitiesWorkspaceFileOperations struct { - // DidCreate is the server is interested in receiving didCreateFiles - // notifications. - DidCreate *FileOperationRegistrationOptions `json:"didCreate,omitempty"` - - // WillCreate is the server is interested in receiving willCreateFiles requests. - WillCreate *FileOperationRegistrationOptions `json:"willCreate,omitempty"` - - // DidRename is the server is interested in receiving didRenameFiles - // notifications. - DidRename *FileOperationRegistrationOptions `json:"didRename,omitempty"` - - // WillRename is the server is interested in receiving willRenameFiles requests. - WillRename *FileOperationRegistrationOptions `json:"willRename,omitempty"` - - // DidDelete is the server is interested in receiving didDeleteFiles file - // notifications. - DidDelete *FileOperationRegistrationOptions `json:"didDelete,omitempty"` - - // WillDelete is the server is interested in receiving willDeleteFiles file - // requests. - WillDelete *FileOperationRegistrationOptions `json:"willDelete,omitempty"` -} - -// FileOperationRegistrationOptions is the options to register for file operations. -// -// @since 3.16.0. -type FileOperationRegistrationOptions struct { - // filters is the actual filters. - Filters []FileOperationFilter `json:"filters"` -} - -// MonikerOptions option of moniker provider server capabilities. -// -// @since 3.16.0. -type MonikerOptions struct { - WorkDoneProgressOptions -} - -// MonikerRegistrationOptions registration option of moniker provider server capabilities. -// -// @since 3.16.0. -type MonikerRegistrationOptions struct { - TextDocumentRegistrationOptions - MonikerOptions -} diff --git a/vendor/go.lsp.dev/protocol/client.go b/vendor/go.lsp.dev/protocol/client.go deleted file mode 100644 index 0210920..0000000 --- a/vendor/go.lsp.dev/protocol/client.go +++ /dev/null @@ -1,412 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "bytes" - "context" - "fmt" - - "github.com/segmentio/encoding/json" - "go.uber.org/zap" - - "go.lsp.dev/jsonrpc2" - "go.lsp.dev/pkg/xcontext" -) - -// ClientDispatcher returns a Client that dispatches LSP requests across the -// given jsonrpc2 connection. -func ClientDispatcher(conn jsonrpc2.Conn, logger *zap.Logger) Client { - return &client{ - Conn: conn, - logger: logger, - } -} - -// ClientHandler handler of LSP client. -func ClientHandler(client Client, handler jsonrpc2.Handler) jsonrpc2.Handler { - h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { - if ctx.Err() != nil { - xctx := xcontext.Detach(ctx) - - return reply(xctx, nil, ErrRequestCancelled) - } - - handled, err := clientDispatch(ctx, client, reply, req) - if handled || err != nil { - return err - } - - return handler(ctx, reply, req) - } - - return h -} - -// clientDispatch implements jsonrpc2.Handler. -//nolint:funlen,cyclop -func clientDispatch(ctx context.Context, client Client, reply jsonrpc2.Replier, req jsonrpc2.Request) (handled bool, err error) { - if ctx.Err() != nil { - return true, reply(ctx, nil, ErrRequestCancelled) - } - - dec := json.NewDecoder(bytes.NewReader(req.Params())) - logger := LoggerFromContext(ctx) - - switch req.Method() { - case MethodProgress: // notification - defer logger.Debug(MethodProgress, zap.Error(err)) - - var params ProgressParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.Progress(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWorkDoneProgressCreate: // request - defer logger.Debug(MethodWorkDoneProgressCreate, zap.Error(err)) - - var params WorkDoneProgressCreateParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.WorkDoneProgressCreate(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWindowLogMessage: // notification - defer logger.Debug(MethodWindowLogMessage, zap.Error(err)) - - var params LogMessageParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.LogMessage(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentPublishDiagnostics: // notification - defer logger.Debug(MethodTextDocumentPublishDiagnostics, zap.Error(err)) - - var params PublishDiagnosticsParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.PublishDiagnostics(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWindowShowMessage: // notification - defer logger.Debug(MethodWindowShowMessage, zap.Error(err)) - - var params ShowMessageParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.ShowMessage(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWindowShowMessageRequest: // request - defer logger.Debug(MethodWindowShowMessageRequest, zap.Error(err)) - - var params ShowMessageRequestParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := client.ShowMessageRequest(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTelemetryEvent: // notification - defer logger.Debug(MethodTelemetryEvent, zap.Error(err)) - - var params interface{} - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.Telemetry(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodClientRegisterCapability: // request - defer logger.Debug(MethodClientRegisterCapability, zap.Error(err)) - - var params RegistrationParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.RegisterCapability(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodClientUnregisterCapability: // request - defer logger.Debug(MethodClientUnregisterCapability, zap.Error(err)) - - var params UnregistrationParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.UnregisterCapability(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWorkspaceApplyEdit: // request - defer logger.Debug(MethodWorkspaceApplyEdit, zap.Error(err)) - - var params ApplyWorkspaceEditParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := client.ApplyEdit(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodWorkspaceConfiguration: // request - defer logger.Debug(MethodWorkspaceConfiguration, zap.Error(err)) - - var params ConfigurationParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := client.Configuration(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodWorkspaceWorkspaceFolders: // request - defer logger.Debug(MethodWorkspaceWorkspaceFolders, zap.Error(err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - resp, err := client.WorkspaceFolders(ctx) - - return true, reply(ctx, resp, err) - - default: - return false, nil - } -} - -// Client represents a Language Server Protocol client. -type Client interface { - Progress(ctx context.Context, params *ProgressParams) (err error) - WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) (err error) - LogMessage(ctx context.Context, params *LogMessageParams) (err error) - PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) (err error) - ShowMessage(ctx context.Context, params *ShowMessageParams) (err error) - ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (result *MessageActionItem, err error) - Telemetry(ctx context.Context, params interface{}) (err error) - RegisterCapability(ctx context.Context, params *RegistrationParams) (err error) - UnregisterCapability(ctx context.Context, params *UnregistrationParams) (err error) - ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (result bool, err error) - Configuration(ctx context.Context, params *ConfigurationParams) (result []interface{}, err error) - WorkspaceFolders(ctx context.Context) (result []WorkspaceFolder, err error) -} - -// list of client methods. -const ( - // MethodProgress method name of "$/progress". - MethodProgress = "$/progress" - - // MethodWorkDoneProgressCreate method name of "window/workDoneProgress/create". - MethodWorkDoneProgressCreate = "window/workDoneProgress/create" - - // MethodWindowShowMessage method name of "window/showMessage". - MethodWindowShowMessage = "window/showMessage" - - // MethodWindowShowMessageRequest method name of "window/showMessageRequest. - MethodWindowShowMessageRequest = "window/showMessageRequest" - - // MethodWindowLogMessage method name of "window/logMessage. - MethodWindowLogMessage = "window/logMessage" - - // MethodTelemetryEvent method name of "telemetry/event. - MethodTelemetryEvent = "telemetry/event" - - // MethodClientRegisterCapability method name of "client/registerCapability. - MethodClientRegisterCapability = "client/registerCapability" - - // MethodClientUnregisterCapability method name of "client/unregisterCapability. - MethodClientUnregisterCapability = "client/unregisterCapability" - - // MethodTextDocumentPublishDiagnostics method name of "textDocument/publishDiagnostics. - MethodTextDocumentPublishDiagnostics = "textDocument/publishDiagnostics" - - // MethodWorkspaceApplyEdit method name of "workspace/applyEdit. - MethodWorkspaceApplyEdit = "workspace/applyEdit" - - // MethodWorkspaceConfiguration method name of "workspace/configuration. - MethodWorkspaceConfiguration = "workspace/configuration" - - // MethodWorkspaceWorkspaceFolders method name of "workspace/workspaceFolders". - MethodWorkspaceWorkspaceFolders = "workspace/workspaceFolders" -) - -// client implements a Language Server Protocol client. -type client struct { - jsonrpc2.Conn - - logger *zap.Logger -} - -// compiler time check whether the Client implements ClientInterface interface. -var _ Client = (*client)(nil) - -// Progress is the base protocol offers also support to report progress in a generic fashion. -// -// This mechanism can be used to report any kind of progress including work done progress (usually used to report progress in the user interface using a progress bar) and -// partial result progress to support streaming of results. -// -// @since 3.16.0. -func (c *client) Progress(ctx context.Context, params *ProgressParams) (err error) { - c.logger.Debug("call " + MethodProgress) - defer c.logger.Debug("end "+MethodProgress, zap.Error(err)) - - return c.Conn.Notify(ctx, MethodProgress, params) -} - -// WorkDoneProgressCreate sends the request is sent from the server to the client to ask the client to create a work done progress. -// -// @since 3.16.0. -func (c *client) WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) (err error) { - c.logger.Debug("call " + MethodWorkDoneProgressCreate) - defer c.logger.Debug("end "+MethodWorkDoneProgressCreate, zap.Error(err)) - - return Call(ctx, c.Conn, MethodWorkDoneProgressCreate, params, nil) -} - -// LogMessage sends the notification from the server to the client to ask the client to log a particular message. -func (c *client) LogMessage(ctx context.Context, params *LogMessageParams) (err error) { - c.logger.Debug("call " + MethodWindowLogMessage) - defer c.logger.Debug("end "+MethodWindowLogMessage, zap.Error(err)) - - return c.Conn.Notify(ctx, MethodWindowLogMessage, params) -} - -// PublishDiagnostics sends the notification from the server to the client to signal results of validation runs. -// -// Diagnostics are “owned” by the server so it is the server’s responsibility to clear them if necessary. The following rule is used for VS Code servers that generate diagnostics: -// -// - if a language is single file only (for example HTML) then diagnostics are cleared by the server when the file is closed. -// - if a language has a project system (for example C#) diagnostics are not cleared when a file closes. When a project is opened all diagnostics for all files are recomputed (or read from a cache). -// -// When a file changes it is the server’s responsibility to re-compute diagnostics and push them to the client. -// If the computed set is empty it has to push the empty array to clear former diagnostics. -// Newly pushed diagnostics always replace previously pushed diagnostics. There is no merging that happens on the client side. -func (c *client) PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) (err error) { - c.logger.Debug("call " + MethodTextDocumentPublishDiagnostics) - defer c.logger.Debug("end "+MethodTextDocumentPublishDiagnostics, zap.Error(err)) - - return c.Conn.Notify(ctx, MethodTextDocumentPublishDiagnostics, params) -} - -// ShowMessage sends the notification from a server to a client to ask the -// client to display a particular message in the user interface. -func (c *client) ShowMessage(ctx context.Context, params *ShowMessageParams) (err error) { - return c.Conn.Notify(ctx, MethodWindowShowMessage, params) -} - -// ShowMessageRequest sends the request from a server to a client to ask the client to display a particular message in the user interface. -// -// In addition to the show message notification the request allows to pass actions and to wait for an answer from the client. -func (c *client) ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (_ *MessageActionItem, err error) { - c.logger.Debug("call " + MethodWindowShowMessageRequest) - defer c.logger.Debug("end "+MethodWindowShowMessageRequest, zap.Error(err)) - - var result *MessageActionItem - if err := Call(ctx, c.Conn, MethodWindowShowMessageRequest, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Telemetry sends the notification from the server to the client to ask the client to log a telemetry event. -func (c *client) Telemetry(ctx context.Context, params interface{}) (err error) { - c.logger.Debug("call " + MethodTelemetryEvent) - defer c.logger.Debug("end "+MethodTelemetryEvent, zap.Error(err)) - - return c.Conn.Notify(ctx, MethodTelemetryEvent, params) -} - -// RegisterCapability sends the request from the server to the client to register for a new capability on the client side. -// -// Not all clients need to support dynamic capability registration. -// -// A client opts in via the dynamicRegistration property on the specific client capabilities. -// A client can even provide dynamic registration for capability A but not for capability B (see TextDocumentClientCapabilities as an example). -func (c *client) RegisterCapability(ctx context.Context, params *RegistrationParams) (err error) { - c.logger.Debug("call " + MethodClientRegisterCapability) - defer c.logger.Debug("end "+MethodClientRegisterCapability, zap.Error(err)) - - return Call(ctx, c.Conn, MethodClientRegisterCapability, params, nil) -} - -// UnregisterCapability sends the request from the server to the client to unregister a previously registered capability. -func (c *client) UnregisterCapability(ctx context.Context, params *UnregistrationParams) (err error) { - c.logger.Debug("call " + MethodClientUnregisterCapability) - defer c.logger.Debug("end "+MethodClientUnregisterCapability, zap.Error(err)) - - return Call(ctx, c.Conn, MethodClientUnregisterCapability, params, nil) -} - -// ApplyEdit sends the request from the server to the client to modify resource on the client side. -func (c *client) ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (result bool, err error) { - c.logger.Debug("call " + MethodWorkspaceApplyEdit) - defer c.logger.Debug("end "+MethodWorkspaceApplyEdit, zap.Error(err)) - - if err := Call(ctx, c.Conn, MethodWorkspaceApplyEdit, params, &result); err != nil { - return false, err - } - - return result, nil -} - -// Configuration sends the request from the server to the client to fetch configuration settings from the client. -// -// The request can fetch several configuration settings in one roundtrip. -// The order of the returned configuration settings correspond to the order of the -// passed ConfigurationItems (e.g. the first item in the response is the result for the first configuration item in the params). -func (c *client) Configuration(ctx context.Context, params *ConfigurationParams) (_ []interface{}, err error) { - c.logger.Debug("call " + MethodWorkspaceConfiguration) - defer c.logger.Debug("end "+MethodWorkspaceConfiguration, zap.Error(err)) - - var result []interface{} - if err := Call(ctx, c.Conn, MethodWorkspaceConfiguration, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// WorkspaceFolders sends the request from the server to the client to fetch the current open list of workspace folders. -// -// Returns null in the response if only a single file is open in the tool. Returns an empty array if a workspace is open but no folders are configured. -// -// @since 3.6.0. -func (c *client) WorkspaceFolders(ctx context.Context) (result []WorkspaceFolder, err error) { - c.logger.Debug("call " + MethodWorkspaceWorkspaceFolders) - defer c.logger.Debug("end "+MethodWorkspaceWorkspaceFolders, zap.Error(err)) - - if err := Call(ctx, c.Conn, MethodWorkspaceWorkspaceFolders, nil, &result); err != nil { - return nil, err - } - - return result, nil -} diff --git a/vendor/go.lsp.dev/protocol/context.go b/vendor/go.lsp.dev/protocol/context.go deleted file mode 100644 index d12bcd8..0000000 --- a/vendor/go.lsp.dev/protocol/context.go +++ /dev/null @@ -1,35 +0,0 @@ -// SPDX-FileCopyrightText: 2020 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "context" - - "go.uber.org/zap" -) - -var ( - ctxLogger struct{} - ctxClient struct{} -) - -// WithLogger returns the context with zap.Logger value. -func WithLogger(ctx context.Context, logger *zap.Logger) context.Context { - return context.WithValue(ctx, ctxLogger, logger) -} - -// LoggerFromContext extracts zap.Logger from context. -func LoggerFromContext(ctx context.Context) *zap.Logger { - logger, ok := ctx.Value(ctxLogger).(*zap.Logger) - if !ok { - return zap.NewNop() - } - - return logger -} - -// WithClient returns the context with Client value. -func WithClient(ctx context.Context, client Client) context.Context { - return context.WithValue(ctx, ctxClient, client) -} diff --git a/vendor/go.lsp.dev/protocol/deprecated.go b/vendor/go.lsp.dev/protocol/deprecated.go deleted file mode 100644 index fa4b216..0000000 --- a/vendor/go.lsp.dev/protocol/deprecated.go +++ /dev/null @@ -1,264 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// ClientCapabilitiesShowDocument alias of ShowDocumentClientCapabilities. -// -// Deprecated: Use ShowDocumentClientCapabilities instead. -type ClientCapabilitiesShowDocument = ShowDocumentClientCapabilities - -// ClientCapabilitiesShowMessageRequest alias of ShowMessageRequestClientCapabilities. -// -// Deprecated: Use ShowMessageRequestClientCapabilities instead. -type ClientCapabilitiesShowMessageRequest = ShowMessageRequestClientCapabilities - -// ClientCapabilitiesShowMessageRequestMessageActionItem alias of ShowMessageRequestClientCapabilitiesMessageActionItem. -// -// Deprecated: Use ShowMessageRequestClientCapabilitiesMessageActionItem instead. -type ClientCapabilitiesShowMessageRequestMessageActionItem = ShowMessageRequestClientCapabilitiesMessageActionItem - -// ReferencesParams alias of ReferenceParams. -// -// Deprecated: Use ReferenceParams instead. -type ReferencesParams = ReferenceParams - -// TextDocumentClientCapabilitiesCallHierarchy alias of CallHierarchyClientCapabilities. -// -// Deprecated: Use CallHierarchyClientCapabilities instead. -type TextDocumentClientCapabilitiesCallHierarchy = CallHierarchyClientCapabilities - -// TextDocumentClientCapabilitiesCodeAction alias of CodeActionClientCapabilities. -// -// Deprecated: Use CodeActionClientCapabilities instead. -type TextDocumentClientCapabilitiesCodeAction = CodeActionClientCapabilities - -// TextDocumentClientCapabilitiesCodeActionKind alias of CodeActionClientCapabilitiesKind. -// -// Deprecated: Use CodeActionClientCapabilitiesKind instead. -type TextDocumentClientCapabilitiesCodeActionKind = CodeActionClientCapabilitiesKind - -// TextDocumentClientCapabilitiesCodeActionLiteralSupport alias of CodeActionClientCapabilitiesLiteralSupport. -// -// Deprecated: Use CodeActionClientCapabilitiesLiteralSupport instead. -type TextDocumentClientCapabilitiesCodeActionLiteralSupport = CodeActionClientCapabilitiesLiteralSupport - -// TextDocumentClientCapabilitiesCodeActionResolveSupport alias of CodeActionClientCapabilitiesResolveSupport. -// -// Deprecated: Use CodeActionClientCapabilitiesResolveSupport instead. -type TextDocumentClientCapabilitiesCodeActionResolveSupport = CodeActionClientCapabilitiesResolveSupport - -// TextDocumentClientCapabilitiesCodeLens alias of CodeLensClientCapabilities. -// -// Deprecated: Use CodeLensClientCapabilities instead. -type TextDocumentClientCapabilitiesCodeLens = CodeLensClientCapabilities - -// TextDocumentClientCapabilitiesColorProvider alias of DocumentColorClientCapabilities. -// -// Deprecated: Use DocumentColorClientCapabilities instead. -type TextDocumentClientCapabilitiesColorProvider = DocumentColorClientCapabilities - -// TextDocumentClientCapabilitiesCompletion alias of CompletionTextDocumentClientCapabilities. -// -// Deprecated: Use CompletionTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesCompletion = CompletionTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesCompletionItem alias of CompletionTextDocumentClientCapabilitiesItem. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItem instead. -type TextDocumentClientCapabilitiesCompletionItem = CompletionTextDocumentClientCapabilitiesItem - -// TextDocumentClientCapabilitiesCompletionItemInsertTextModeSupport alias of CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport instead. -type TextDocumentClientCapabilitiesCompletionItemInsertTextModeSupport = CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport - -// TextDocumentClientCapabilitiesCompletionItemKind alias of CompletionTextDocumentClientCapabilitiesItemKind. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemKind instead. -type TextDocumentClientCapabilitiesCompletionItemKind = CompletionTextDocumentClientCapabilitiesItemKind - -// TextDocumentClientCapabilitiesCompletionItemResolveSupport alias of CompletionTextDocumentClientCapabilitiesItemResolveSupport. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemResolveSupport instead. -type TextDocumentClientCapabilitiesCompletionItemResolveSupport = CompletionTextDocumentClientCapabilitiesItemResolveSupport - -// TextDocumentClientCapabilitiesCompletionItemTagSupport alias of CompletionTextDocumentClientCapabilitiesItemTagSupport. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemTagSupport instead. -type TextDocumentClientCapabilitiesCompletionItemTagSupport = CompletionTextDocumentClientCapabilitiesItemTagSupport - -// TextDocumentClientCapabilitiesDeclaration alias of DeclarationTextDocumentClientCapabilities. -// -// Deprecated: Use DeclarationTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesDeclaration = DeclarationTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesDefinition alias of DefinitionTextDocumentClientCapabilities. -// -// Deprecated: Use DefinitionTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesDefinition = DefinitionTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesDocumentHighlight alias of DocumentHighlightClientCapabilities. -// -// Deprecated: Use DocumentHighlightClientCapabilities instead. -type TextDocumentClientCapabilitiesDocumentHighlight = DocumentHighlightClientCapabilities - -// TextDocumentClientCapabilitiesDocumentLink alias of DocumentLinkClientCapabilities. -// -// Deprecated: Use DocumentLinkClientCapabilities instead. -type TextDocumentClientCapabilitiesDocumentLink = DocumentLinkClientCapabilities - -// TextDocumentClientCapabilitiesDocumentSymbol alias of DocumentSymbolClientCapabilities. -// -// Deprecated: Use DocumentSymbolClientCapabilities instead. -type TextDocumentClientCapabilitiesDocumentSymbol = DocumentSymbolClientCapabilities - -// TextDocumentClientCapabilitiesDocumentSymbolTagSupport alias of DocumentSymbolClientCapabilitiesTagSupport. -// -// Deprecated: Use DocumentSymbolClientCapabilitiesTagSupport instead. -type TextDocumentClientCapabilitiesDocumentSymbolTagSupport = DocumentSymbolClientCapabilitiesTagSupport - -// TextDocumentClientCapabilitiesFoldingRange alias of FoldingRangeClientCapabilities. -// -// Deprecated: Use FoldingRangeClientCapabilities instead. -type TextDocumentClientCapabilitiesFoldingRange = FoldingRangeClientCapabilities - -// TextDocumentClientCapabilitiesFormatting alias of DocumentFormattingClientCapabilities. -// -// Deprecated: Use DocumentFormattingClientCapabilities instead. -type TextDocumentClientCapabilitiesFormatting = DocumentFormattingClientCapabilities - -// TextDocumentClientCapabilitiesHover alias of HoverTextDocumentClientCapabilities. -// -// Deprecated: Use HoverTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesHover = HoverTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesImplementation alias of ImplementationTextDocumentClientCapabilities. -// -// Deprecated: Use ImplementationTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesImplementation = ImplementationTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesLinkedEditingRange alias of LinkedEditingRangeClientCapabilities. -// -// Deprecated: Use LinkedEditingRangeClientCapabilities instead. -type TextDocumentClientCapabilitiesLinkedEditingRange = LinkedEditingRangeClientCapabilities - -// TextDocumentClientCapabilitiesMoniker of MonikerClientCapabilities. -// -// Deprecated: Use MonikerClientCapabilities instead. -type TextDocumentClientCapabilitiesMoniker = MonikerClientCapabilities - -// TextDocumentClientCapabilitiesOnTypeFormatting of DocumentOnTypeFormattingClientCapabilities. -// -// Deprecated: Use DocumentOnTypeFormattingClientCapabilities instead. -type TextDocumentClientCapabilitiesOnTypeFormatting = DocumentOnTypeFormattingClientCapabilities - -// TextDocumentClientCapabilitiesPublishDiagnostics of PublishDiagnosticsClientCapabilities. -// -// Deprecated: Use PublishDiagnosticsClientCapabilities instead. -type TextDocumentClientCapabilitiesPublishDiagnostics = PublishDiagnosticsClientCapabilities - -// TextDocumentClientCapabilitiesPublishDiagnosticsTagSupport of PublishDiagnosticsClientCapabilitiesTagSupport. -// -// Deprecated: Use PublishDiagnosticsClientCapabilitiesTagSupport instead. -type TextDocumentClientCapabilitiesPublishDiagnosticsTagSupport = PublishDiagnosticsClientCapabilitiesTagSupport - -// TextDocumentClientCapabilitiesRangeFormatting of DocumentRangeFormattingClientCapabilities. -// -// Deprecated: Use DocumentRangeFormattingClientCapabilities instead. -type TextDocumentClientCapabilitiesRangeFormatting = DocumentRangeFormattingClientCapabilities - -// TextDocumentClientCapabilitiesReferences of ReferencesTextDocumentClientCapabilities. -// -// Deprecated: Use ReferencesTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesReferences = ReferencesTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesRename of RenameClientCapabilities. -// -// Deprecated: Use RenameClientCapabilities instead. -type TextDocumentClientCapabilitiesRename = RenameClientCapabilities - -// TextDocumentClientCapabilitiesSelectionRange of SelectionRangeClientCapabilities. -// -// Deprecated: Use SelectionRangeClientCapabilities instead. -type TextDocumentClientCapabilitiesSelectionRange = SelectionRangeClientCapabilities - -// TextDocumentClientCapabilitiesSemanticTokens of SemanticTokensClientCapabilities. -// -// Deprecated: Use SemanticTokensClientCapabilities instead. -type TextDocumentClientCapabilitiesSemanticTokens = SemanticTokensClientCapabilities - -// TextDocumentClientCapabilitiesSignatureHelp of SignatureHelpTextDocumentClientCapabilities. -// -// Deprecated: Use SignatureHelpTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesSignatureHelp = SignatureHelpTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesSynchronization of TextDocumentSyncClientCapabilities. -// -// Deprecated: Use TextDocumentSyncClientCapabilities instead. -type TextDocumentClientCapabilitiesSynchronization = TextDocumentSyncClientCapabilities - -// TextDocumentClientCapabilitiesTypeDefinition of TypeDefinitionTextDocumentClientCapabilities. -// -// Deprecated: Use TypeDefinitionTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesTypeDefinition = TypeDefinitionTextDocumentClientCapabilities - -// Abort alias of FailureHandlingKindAbort. -// -// Deprecated: Use FailureHandlingKindAbort instead. -const Abort = FailureHandlingKindAbort - -// TextOnlyTransactional alias of FailureHandlingKindTextOnlyTransactional. -// -// Deprecated: Use FailureHandlingKindTextOnlyTransactional instead. -const TextOnlyTransactional = FailureHandlingKindTextOnlyTransactional - -// Transactional alias of FailureHandlingKindTransactional. -// -// Deprecated: Use FailureHandlingKindTransactional instead. -const Transactional = FailureHandlingKindTransactional - -// Undo alias of FailureHandlingKindUndo. -// -// Deprecated: Use FailureHandlingKindUndo instead. -const Undo = FailureHandlingKindUndo - -// WorkspaceClientCapabilitiesSymbol alias of WorkspaceSymbolClientCapabilities. -// -// Deprecated: Use WorkspaceSymbolClientCapabilities instead. -type WorkspaceClientCapabilitiesSymbol = WorkspaceSymbolClientCapabilities - -// WorkspaceClientCapabilitiesSymbolKind alias of SymbolKindCapabilities. -// -// Deprecated: Use SymbolKindCapabilities instead. -type WorkspaceClientCapabilitiesSymbolKind = SymbolKindCapabilities - -// WorkspaceClientCapabilitiesCodeLens alias of CodeLensWorkspaceClientCapabilities. -// -// Deprecated: Use CodeLensWorkspaceClientCapabilities instead. -type WorkspaceClientCapabilitiesCodeLens = CodeLensWorkspaceClientCapabilities - -// WorkspaceClientCapabilitiesDidChangeConfiguration alias of DidChangeConfigurationWorkspaceClientCapabilities. -// -// Deprecated: Use DidChangeConfigurationWorkspaceClientCapabilities instead. -type WorkspaceClientCapabilitiesDidChangeConfiguration = DidChangeConfigurationWorkspaceClientCapabilities - -// WorkspaceClientCapabilitiesDidChangeWatchedFiles alias of DidChangeWatchedFilesWorkspaceClientCapabilities. -// -// Deprecated: Use DidChangeWatchedFilesWorkspaceClientCapabilities instead. -type WorkspaceClientCapabilitiesDidChangeWatchedFiles = DidChangeWatchedFilesWorkspaceClientCapabilities - -// WorkspaceClientCapabilitiesExecuteCommand alias of ExecuteCommandClientCapabilities. -// -// Deprecated: Use ExecuteCommandClientCapabilities instead. -type WorkspaceClientCapabilitiesExecuteCommand = ExecuteCommandClientCapabilities - -// WorkspaceClientCapabilitiesSemanticTokens alias of SemanticTokensWorkspaceClientCapabilities. -// -// Deprecated: Use SemanticTokensWorkspaceClientCapabilities instead. -type WorkspaceClientCapabilitiesSemanticTokens = SemanticTokensWorkspaceClientCapabilities - -// WorkspaceClientCapabilitiesSemanticTokensRequests alias of SemanticTokensWorkspaceClientCapabilitiesRequests. -// -// Deprecated: Use SemanticTokensWorkspaceClientCapabilitiesRequests instead. -type WorkspaceClientCapabilitiesSemanticTokensRequests = SemanticTokensWorkspaceClientCapabilitiesRequests diff --git a/vendor/go.lsp.dev/protocol/diagnostics.go b/vendor/go.lsp.dev/protocol/diagnostics.go deleted file mode 100644 index 6097f46..0000000 --- a/vendor/go.lsp.dev/protocol/diagnostics.go +++ /dev/null @@ -1,149 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" -) - -// Diagnostic represents a diagnostic, such as a compiler error or warning. -// -// Diagnostic objects are only valid in the scope of a resource. -type Diagnostic struct { - // Range is the range at which the message applies. - Range Range `json:"range"` - - // Severity is the diagnostic's severity. Can be omitted. If omitted it is up to the - // client to interpret diagnostics as error, warning, info or hint. - Severity DiagnosticSeverity `json:"severity,omitempty"` - - // Code is the diagnostic's code, which might appear in the user interface. - Code interface{} `json:"code,omitempty"` // int32 | string; - - // CodeDescription an optional property to describe the error code. - // - // @since 3.16.0. - CodeDescription *CodeDescription `json:"codeDescription,omitempty"` - - // Source a human-readable string describing the source of this - // diagnostic, e.g. 'typescript' or 'super lint'. - Source string `json:"source,omitempty"` - - // Message is the diagnostic's message. - Message string `json:"message"` - - // Tags is the additional metadata about the diagnostic. - // - // @since 3.15.0. - Tags []DiagnosticTag `json:"tags,omitempty"` - - // RelatedInformation an array of related diagnostic information, e.g. when symbol-names within - // a scope collide all definitions can be marked via this property. - RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"` - - // Data is a data entry field that is preserved between a - // "textDocument/publishDiagnostics" notification and - // "textDocument/codeAction" request. - // - // @since 3.16.0. - Data interface{} `json:"data,omitempty"` -} - -// DiagnosticSeverity indicates the severity of a Diagnostic message. -type DiagnosticSeverity float64 - -const ( - // DiagnosticSeverityError reports an error. - DiagnosticSeverityError DiagnosticSeverity = 1 - - // DiagnosticSeverityWarning reports a warning. - DiagnosticSeverityWarning DiagnosticSeverity = 2 - - // DiagnosticSeverityInformation reports an information. - DiagnosticSeverityInformation DiagnosticSeverity = 3 - - // DiagnosticSeverityHint reports a hint. - DiagnosticSeverityHint DiagnosticSeverity = 4 -) - -// String implements fmt.Stringer. -func (d DiagnosticSeverity) String() string { - switch d { - case DiagnosticSeverityError: - return "Error" - case DiagnosticSeverityWarning: - return "Warning" - case DiagnosticSeverityInformation: - return "Information" - case DiagnosticSeverityHint: - return "Hint" - default: - return strconv.FormatFloat(float64(d), 'f', -10, 64) - } -} - -// CodeDescription is the structure to capture a description for an error code. -// -// @since 3.16.0. -type CodeDescription struct { - // Href an URI to open with more information about the diagnostic error. - Href URI `json:"href"` -} - -// DiagnosticTag is the diagnostic tags. -// -// @since 3.15.0. -type DiagnosticTag float64 - -// list of DiagnosticTag. -const ( - // DiagnosticTagUnnecessary unused or unnecessary code. - // - // Clients are allowed to render diagnostics with this tag faded out instead of having - // an error squiggle. - DiagnosticTagUnnecessary DiagnosticTag = 1 - - // DiagnosticTagDeprecated deprecated or obsolete code. - // - // Clients are allowed to rendered diagnostics with this tag strike through. - DiagnosticTagDeprecated DiagnosticTag = 2 -) - -// String implements fmt.Stringer. -func (d DiagnosticTag) String() string { - switch d { - case DiagnosticTagUnnecessary: - return "Unnecessary" - case DiagnosticTagDeprecated: - return "Deprecated" - default: - return strconv.FormatFloat(float64(d), 'f', -10, 64) - } -} - -// DiagnosticRelatedInformation represents a related message and source code location for a diagnostic. -// -// This should be used to point to code locations that cause or related to a diagnostics, e.g when duplicating -// a symbol in a scope. -type DiagnosticRelatedInformation struct { - // Location is the location of this related diagnostic information. - Location Location `json:"location"` - - // Message is the message of this related diagnostic information. - Message string `json:"message"` -} - -// PublishDiagnosticsParams represents a params of PublishDiagnostics notification. -type PublishDiagnosticsParams struct { - // URI is the URI for which diagnostic information is reported. - URI DocumentURI `json:"uri"` - - // Version optional the version number of the document the diagnostics are published for. - // - // @since 3.15 - Version uint32 `json:"version,omitempty"` - - // Diagnostics an array of diagnostic information items. - Diagnostics []Diagnostic `json:"diagnostics"` -} diff --git a/vendor/go.lsp.dev/protocol/doc.go b/vendor/go.lsp.dev/protocol/doc.go deleted file mode 100644 index 4873783..0000000 --- a/vendor/go.lsp.dev/protocol/doc.go +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -// Package protocol implements Language Server Protocol specification in Go. -// -// This package contains the structs that map directly to the wire format -// of the Language Server Protocol. -// -// It is a literal transcription, with unmodified comments, and only the changes -// required to make it Go code. -// -// - Names are uppercased to export them. -// -// - All fields have JSON tags added to correct the names. -// -// - Fields marked with a ? are also marked as "omitempty". -// -// - Fields that are "|| null" are made pointers. -// -// - Fields that are string or number are left as string. -// -// - Fields that are type "number" are made float64. -package protocol // import "go.lsp.dev/protocol" diff --git a/vendor/go.lsp.dev/protocol/errors.go b/vendor/go.lsp.dev/protocol/errors.go deleted file mode 100644 index 56645f6..0000000 --- a/vendor/go.lsp.dev/protocol/errors.go +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import "go.lsp.dev/jsonrpc2" - -const ( - // LSPReservedErrorRangeStart is the start range of LSP reserved error codes. - // - // It doesn't denote a real error code. - // - // @since 3.16.0. - LSPReservedErrorRangeStart jsonrpc2.Code = -32899 - - // ContentModified is the state change that invalidates the result of a request in execution. - // - // Defined by the protocol. - CodeContentModified jsonrpc2.Code = -32801 - - // RequestCancelled is the cancellation error. - // - // Defined by the protocol. - CodeRequestCancelled jsonrpc2.Code = -32800 - - // LSPReservedErrorRangeEnd is the end range of LSP reserved error codes. - // - // It doesn't denote a real error code. - // - // @since 3.16.0. - LSPReservedErrorRangeEnd jsonrpc2.Code = -32800 -) - -var ( - // ErrContentModified should be used when a request is canceled early. - ErrContentModified = jsonrpc2.NewError(CodeContentModified, "cancelled JSON-RPC") - - // ErrRequestCancelled should be used when a request is canceled early. - ErrRequestCancelled = jsonrpc2.NewError(CodeRequestCancelled, "cancelled JSON-RPC") -) diff --git a/vendor/go.lsp.dev/protocol/general.go b/vendor/go.lsp.dev/protocol/general.go deleted file mode 100644 index 1693b0c..0000000 --- a/vendor/go.lsp.dev/protocol/general.go +++ /dev/null @@ -1,461 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// TraceValue represents a InitializeParams Trace mode. -type TraceValue string - -// list of TraceValue. -const ( - // TraceOff disable tracing. - TraceOff TraceValue = "off" - - // TraceMessage normal tracing mode. - TraceMessage TraceValue = "message" - - // TraceVerbose verbose tracing mode. - TraceVerbose TraceValue = "verbose" -) - -// ClientInfo information about the client. -// -// @since 3.15.0. -type ClientInfo struct { - // Name is the name of the client as defined by the client. - Name string `json:"name"` - - // Version is the client's version as defined by the client. - Version string `json:"version,omitempty"` -} - -// InitializeParams params of Initialize request. -type InitializeParams struct { - WorkDoneProgressParams - - // ProcessID is the process Id of the parent process that started - // the server. Is null if the process has not been started by another process. - // If the parent process is not alive then the server should exit (see exit notification) its process. - ProcessID int32 `json:"processId"` - - // ClientInfo is the information about the client. - // - // @since 3.15.0 - ClientInfo *ClientInfo `json:"clientInfo,omitempty"` - - // Locale is the locale the client is currently showing the user interface - // in. This must not necessarily be the locale of the operating - // system. - // - // Uses IETF language tags as the value's syntax - // (See https://en.wikipedia.org/wiki/IETF_language_tag) - // - // @since 3.16.0. - Locale string `json:"locale,omitempty"` - - // RootPath is the rootPath of the workspace. Is null - // if no folder is open. - // - // Deprecated: Use RootURI instead. - RootPath string `json:"rootPath,omitempty"` - - // RootURI is the rootUri of the workspace. Is null if no - // folder is open. If both `rootPath` and "rootUri" are set - // "rootUri" wins. - // - // Deprecated: Use WorkspaceFolders instead. - RootURI DocumentURI `json:"rootUri,omitempty"` - - // InitializationOptions user provided initialization options. - InitializationOptions interface{} `json:"initializationOptions,omitempty"` - - // Capabilities is the capabilities provided by the client (editor or tool) - Capabilities ClientCapabilities `json:"capabilities"` - - // Trace is the initial trace setting. If omitted trace is disabled ('off'). - Trace TraceValue `json:"trace,omitempty"` - - // WorkspaceFolders is the workspace folders configured in the client when the server starts. - // This property is only available if the client supports workspace folders. - // It can be `null` if the client supports workspace folders but none are - // configured. - // - // @since 3.6.0. - WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders,omitempty"` -} - -// InitializeResult result of ClientCapabilities. -type InitializeResult struct { - // Capabilities is the capabilities the language server provides. - Capabilities ServerCapabilities `json:"capabilities"` - - // ServerInfo Information about the server. - // - // @since 3.15.0. - ServerInfo *ServerInfo `json:"serverInfo,omitempty"` -} - -// LogTraceParams params of LogTrace notification. -// -// @since 3.16.0. -type LogTraceParams struct { - // Message is the message to be logged. - Message string `json:"message"` - - // Verbose is the additional information that can be computed if the "trace" configuration - // is set to "verbose". - Verbose TraceValue `json:"verbose,omitempty"` -} - -// SetTraceParams params of SetTrace notification. -// -// @since 3.16.0. -type SetTraceParams struct { - // Value is the new value that should be assigned to the trace setting. - Value TraceValue `json:"value"` -} - -// FileOperationPatternKind is a pattern kind describing if a glob pattern matches a file a folder or -// both. -// -// @since 3.16.0. -type FileOperationPatternKind string - -// list of FileOperationPatternKind. -const ( - // FileOperationPatternKindFile is the pattern matches a file only. - FileOperationPatternKindFile FileOperationPatternKind = "file" - - // FileOperationPatternKindFolder is the pattern matches a folder only. - FileOperationPatternKindFolder FileOperationPatternKind = "folder" -) - -// FileOperationPatternOptions matching options for the file operation pattern. -// -// @since 3.16.0. -type FileOperationPatternOptions struct { - // IgnoreCase is The pattern should be matched ignoring casing. - IgnoreCase bool `json:"ignoreCase,omitempty"` -} - -// FileOperationPattern a pattern to describe in which file operation requests or notifications -// the server is interested in. -// -// @since 3.16.0. -type FileOperationPattern struct { - // The glob pattern to match. Glob patterns can have the following syntax: - // - `*` to match one or more characters in a path segment - // - `?` to match on one character in a path segment - // - `**` to match any number of path segments, including none - // - `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript - // and JavaScript files) - // - `[]` to declare a range of characters to match in a path segment - // (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) - // - `[!...]` to negate a range of characters to match in a path segment - // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but - // not `example.0`) - Glob string `json:"glob"` - - // Matches whether to match files or folders with this pattern. - // - // Matches both if undefined. - Matches FileOperationPatternKind `json:"matches,omitempty"` - - // Options additional options used during matching. - Options FileOperationPatternOptions `json:"options,omitempty"` -} - -// FileOperationFilter is a filter to describe in which file operation requests or notifications -// the server is interested in. -// -// @since 3.16.0. -type FileOperationFilter struct { - // Scheme is a URI like "file" or "untitled". - Scheme string `json:"scheme,omitempty"` - - // Pattern is the actual file operation pattern. - Pattern FileOperationPattern `json:"pattern"` -} - -// CreateFilesParams is the parameters sent in notifications/requests for user-initiated creation -// of files. -// -// @since 3.16.0. -type CreateFilesParams struct { - // Files an array of all files/folders created in this operation. - Files []FileCreate `json:"files"` -} - -// FileCreate nepresents information on a file/folder create. -// -// @since 3.16.0. -type FileCreate struct { - // URI is a file:// URI for the location of the file/folder being created. - URI string `json:"uri"` -} - -// RenameFilesParams is the parameters sent in notifications/requests for user-initiated renames -// of files. -// -// @since 3.16.0. -type RenameFilesParams struct { - // Files an array of all files/folders renamed in this operation. When a folder - // is renamed, only the folder will be included, and not its children. - Files []FileRename `json:"files"` -} - -// FileRename represents information on a file/folder rename. -// -// @since 3.16.0. -type FileRename struct { - // OldURI is a file:// URI for the original location of the file/folder being renamed. - OldURI string `json:"oldUri"` - - // NewURI is a file:// URI for the new location of the file/folder being renamed. - NewURI string `json:"newUri"` -} - -// DeleteFilesParams is the parameters sent in notifications/requests for user-initiated deletes -// of files. -// -// @since 3.16.0. -type DeleteFilesParams struct { - // Files an array of all files/folders deleted in this operation. - Files []FileDelete `json:"files"` -} - -// FileDelete represents information on a file/folder delete. -// -// @since 3.16.0. -type FileDelete struct { - // URI is a file:// URI for the location of the file/folder being deleted. - URI string `json:"uri"` -} - -// DocumentHighlightParams params of DocumentHighlight request. -// -// @since 3.15.0. -type DocumentHighlightParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// DeclarationParams params of Declaration request. -// -// @since 3.15.0. -type DeclarationParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// DefinitionParams params of Definition request. -// -// @since 3.15.0. -type DefinitionParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// TypeDefinitionParams params of TypeDefinition request. -// -// @since 3.15.0. -type TypeDefinitionParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// ImplementationParams params of Implementation request. -// -// @since 3.15.0. -type ImplementationParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// ShowDocumentParams params to show a document. -// -// @since 3.16.0. -type ShowDocumentParams struct { - // URI is the document uri to show. - URI URI `json:"uri"` - - // External indicates to show the resource in an external program. - // To show for example `https://code.visualstudio.com/` - // in the default WEB browser set `external` to `true`. - External bool `json:"external,omitempty"` - - // TakeFocus an optional property to indicate whether the editor - // showing the document should take focus or not. - // Clients might ignore this property if an external - // program is started. - TakeFocus bool `json:"takeFocus,omitempty"` - - // Selection an optional selection range if the document is a text - // document. Clients might ignore the property if an - // external program is started or the file is not a text - // file. - Selection *Range `json:"selection,omitempty"` -} - -// ShowDocumentResult is the result of an show document request. -// -// @since 3.16.0. -type ShowDocumentResult struct { - // Success a boolean indicating if the show was successful. - Success bool `json:"success"` -} - -// ServerInfo Information about the server. -// -// @since 3.15.0. -type ServerInfo struct { - // Name is the name of the server as defined by the server. - Name string `json:"name"` - - // Version is the server's version as defined by the server. - Version string `json:"version,omitempty"` -} - -// InitializeError known error codes for an "InitializeError". -type InitializeError struct { - // Retry indicates whether the client execute the following retry logic: - // (1) show the message provided by the ResponseError to the user - // (2) user selects retry or cancel - // (3) if user selected retry the initialize method is sent again. - Retry bool `json:"retry,omitempty"` -} - -// ReferencesOptions ReferencesProvider options. -// -// @since 3.15.0. -type ReferencesOptions struct { - WorkDoneProgressOptions -} - -// WorkDoneProgressOptions WorkDoneProgress options. -// -// @since 3.15.0. -type WorkDoneProgressOptions struct { - WorkDoneProgress bool `json:"workDoneProgress,omitempty"` -} - -// LinkedEditingRangeParams params for the LinkedEditingRange request. -// -// @since 3.16.0. -type LinkedEditingRangeParams struct { - TextDocumentPositionParams - WorkDoneProgressParams -} - -// LinkedEditingRanges result of LinkedEditingRange request. -// -// @since 3.16.0. -type LinkedEditingRanges struct { - // Ranges a list of ranges that can be renamed together. - // - // The ranges must have identical length and contain identical text content. - // - // The ranges cannot overlap. - Ranges []Range `json:"ranges"` - - // WordPattern an optional word pattern (regular expression) that describes valid contents for - // the given ranges. - // - // If no pattern is provided, the client configuration's word pattern will be used. - WordPattern string `json:"wordPattern,omitempty"` -} - -// MonikerParams params for the Moniker request. -// -// @since 3.16.0. -type MonikerParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// UniquenessLevel is the Moniker uniqueness level to define scope of the moniker. -// -// @since 3.16.0. -type UniquenessLevel string - -// list of UniquenessLevel. -const ( - // UniquenessLevelDocument is the moniker is only unique inside a document. - UniquenessLevelDocument UniquenessLevel = "document" - - // UniquenessLevelProject is the moniker is unique inside a project for which a dump got created. - UniquenessLevelProject UniquenessLevel = "project" - - // UniquenessLevelGroup is the moniker is unique inside the group to which a project belongs. - UniquenessLevelGroup UniquenessLevel = "group" - - // UniquenessLevelScheme is the moniker is unique inside the moniker scheme. - UniquenessLevelScheme UniquenessLevel = "scheme" - - // UniquenessLevelGlobal is the moniker is globally unique. - UniquenessLevelGlobal UniquenessLevel = "global" -) - -// MonikerKind is the moniker kind. -// -// @since 3.16.0. -type MonikerKind string - -// list of MonikerKind. -const ( - // MonikerKindImport is the moniker represent a symbol that is imported into a project. - MonikerKindImport MonikerKind = "import" - - // MonikerKindExport is the moniker represents a symbol that is exported from a project. - MonikerKindExport MonikerKind = "export" - - // MonikerKindLocal is the moniker represents a symbol that is local to a project (e.g. a local - // variable of a function, a class not visible outside the project, ...). - MonikerKindLocal MonikerKind = "local" -) - -// Moniker definition to match LSIF 0.5 moniker definition. -// -// @since 3.16.0. -type Moniker struct { - // Scheme is the scheme of the moniker. For example tsc or .Net. - Scheme string `json:"scheme"` - - // Identifier is the identifier of the moniker. - // - // The value is opaque in LSIF however schema owners are allowed to define the structure if they want. - Identifier string `json:"identifier"` - - // Unique is the scope in which the moniker is unique. - Unique UniquenessLevel `json:"unique"` - - // Kind is the moniker kind if known. - Kind MonikerKind `json:"kind,omitempty"` -} - -// StaticRegistrationOptions staticRegistration options to be returned in the initialize request. -type StaticRegistrationOptions struct { - // ID is the id used to register the request. The id can be used to deregister - // the request again. See also Registration#id. - ID string `json:"id,omitempty"` -} - -// DocumentLinkRegistrationOptions DocumentLinkRegistration options. -type DocumentLinkRegistrationOptions struct { - TextDocumentRegistrationOptions - - // ResolveProvider document links have a resolve provider as well. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// InitializedParams params of Initialized notification. -type InitializedParams struct{} - -// WorkspaceFolders represents a slice of WorkspaceFolder. -type WorkspaceFolders []WorkspaceFolder diff --git a/vendor/go.lsp.dev/protocol/handler.go b/vendor/go.lsp.dev/protocol/handler.go deleted file mode 100644 index ac253a2..0000000 --- a/vendor/go.lsp.dev/protocol/handler.go +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "context" - "fmt" - - "github.com/segmentio/encoding/json" - - "go.lsp.dev/jsonrpc2" - "go.lsp.dev/pkg/xcontext" -) - -// CancelHandler handler of cancelling. -func CancelHandler(handler jsonrpc2.Handler) jsonrpc2.Handler { - handler, canceller := jsonrpc2.CancelHandler(handler) - - h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { - if req.Method() != MethodCancelRequest { - // TODO(iancottrell): See if we can generate a reply for the request to be cancelled - // at the point of cancellation rather than waiting for gopls to naturally reply. - // To do that, we need to keep track of whether a reply has been sent already and - // be careful about racing between the two paths. - // TODO(iancottrell): Add a test that watches the stream and verifies the response - // for the cancelled request flows. - reply := func(ctx context.Context, resp interface{}, err error) error { - // https://microsoft.github.io/language-server-protocol/specifications/specification-current/#cancelRequest - if ctx.Err() != nil && err == nil { - err = ErrRequestCancelled - } - ctx = xcontext.Detach(ctx) - - return reply(ctx, resp, err) - } - - return handler(ctx, reply, req) - } - - var params CancelParams - if err := json.Unmarshal(req.Params(), ¶ms); err != nil { - return replyParseError(ctx, reply, err) - } - - switch id := params.ID.(type) { - case int32: - canceller(jsonrpc2.NewNumberID(id)) - case string: - canceller(jsonrpc2.NewStringID(id)) - default: - return replyParseError(ctx, reply, fmt.Errorf("request ID %v malformed", id)) - } - - return reply(ctx, nil, nil) - } - - return h -} - -// Handlers default jsonrpc2.Handler. -func Handlers(handler jsonrpc2.Handler) jsonrpc2.Handler { - return CancelHandler( - jsonrpc2.AsyncHandler( - jsonrpc2.ReplyHandler(handler), - ), - ) -} - -// Call calls method to params and result. -func Call(ctx context.Context, conn jsonrpc2.Conn, method string, params, result interface{}) error { - id, err := conn.Call(ctx, method, params, result) - if ctx.Err() != nil { - notifyCancel(ctx, conn, id) - } - - return err -} - -func notifyCancel(ctx context.Context, conn jsonrpc2.Conn, id jsonrpc2.ID) { - ctx = xcontext.Detach(ctx) - // Note that only *jsonrpc2.ID implements json.Marshaler. - conn.Notify(ctx, MethodCancelRequest, &CancelParams{ID: &id}) -} - -func replyParseError(ctx context.Context, reply jsonrpc2.Replier, err error) error { - return reply(ctx, nil, fmt.Errorf("%s: %w", jsonrpc2.ErrParse, err)) -} diff --git a/vendor/go.lsp.dev/protocol/language.go b/vendor/go.lsp.dev/protocol/language.go deleted file mode 100644 index 221d72a..0000000 --- a/vendor/go.lsp.dev/protocol/language.go +++ /dev/null @@ -1,1316 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" -) - -// CompletionParams params of Completion request. -type CompletionParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams - - // Context is the completion context. This is only available if the client specifies - // to send this using `ClientCapabilities.textDocument.completion.contextSupport === true` - Context *CompletionContext `json:"context,omitempty"` -} - -// CompletionTriggerKind how a completion was triggered. -type CompletionTriggerKind float64 - -const ( - // CompletionTriggerKindInvoked completion was triggered by typing an identifier (24x7 code - // complete), manual invocation (e.g Ctrl+Space) or via API. - CompletionTriggerKindInvoked CompletionTriggerKind = 1 - - // CompletionTriggerKindTriggerCharacter completion was triggered by a trigger character specified by - // the `triggerCharacters` properties of the `CompletionRegistrationOptions`. - CompletionTriggerKindTriggerCharacter CompletionTriggerKind = 2 - - // CompletionTriggerKindTriggerForIncompleteCompletions completion was re-triggered as the current completion list is incomplete. - CompletionTriggerKindTriggerForIncompleteCompletions CompletionTriggerKind = 3 -) - -// String implements fmt.Stringer. -func (k CompletionTriggerKind) String() string { - switch k { - case CompletionTriggerKindInvoked: - return "Invoked" - case CompletionTriggerKindTriggerCharacter: - return "TriggerCharacter" - case CompletionTriggerKindTriggerForIncompleteCompletions: - return "TriggerForIncompleteCompletions" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// CompletionContext contains additional information about the context in which a completion request is triggered. -type CompletionContext struct { - // TriggerCharacter is the trigger character (a single character) that has trigger code complete. - // Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter` - TriggerCharacter string `json:"triggerCharacter,omitempty"` - - // TriggerKind how the completion was triggered. - TriggerKind CompletionTriggerKind `json:"triggerKind"` -} - -// CompletionList represents a collection of [completion items](#CompletionItem) to be presented -// in the editor. -type CompletionList struct { - // IsIncomplete this list it not complete. Further typing should result in recomputing - // this list. - IsIncomplete bool `json:"isIncomplete"` - - // Items is the completion items. - Items []CompletionItem `json:"items"` -} - -// InsertTextFormat defines whether the insert text in a completion item should be interpreted as -// plain text or a snippet. -type InsertTextFormat float64 - -const ( - // InsertTextFormatPlainText is the primary text to be inserted is treated as a plain string. - InsertTextFormatPlainText InsertTextFormat = 1 - - // InsertTextFormatSnippet is the primary text to be inserted is treated as a snippet. - // - // A snippet can define tab stops and placeholders with `$1`, `$2` - // and `${3:foo}`. `$0` defines the final tab stop, it defaults to - // the end of the snippet. Placeholders with equal identifiers are linked, - // that is typing in one will update others too. - InsertTextFormatSnippet InsertTextFormat = 2 -) - -// String implements fmt.Stringer. -func (tf InsertTextFormat) String() string { - switch tf { - case InsertTextFormatPlainText: - return "PlainText" - case InsertTextFormatSnippet: - return "Snippet" - default: - return strconv.FormatFloat(float64(tf), 'f', -10, 64) - } -} - -// InsertReplaceEdit is a special text edit to provide an insert and a replace operation. -// -// @since 3.16.0. -type InsertReplaceEdit struct { - // NewText is the string to be inserted. - NewText string `json:"newText"` - - // Insert is the range if the insert is requested. - Insert Range `json:"insert"` - - // Replace is the range if the replace is requested. - Replace Range `json:"replace"` -} - -// InsertTextMode how whitespace and indentation is handled during completion -// item insertion. -// -// @since 3.16.0. -type InsertTextMode float64 - -const ( - // AsIs is the insertion or replace strings is taken as it is. If the - // value is multi line the lines below the cursor will be - // inserted using the indentation defined in the string value. - // The client will not apply any kind of adjustments to the - // string. - InsertTextModeAsIs InsertTextMode = 1 - - // AdjustIndentation is the editor adjusts leading whitespace of new lines so that - // they match the indentation up to the cursor of the line for - // which the item is accepted. - // - // Consider a line like this: <2tabs><3tabs>foo. Accepting a - // multi line completion item is indented using 2 tabs and all - // following lines inserted will be indented using 2 tabs as well. - InsertTextModeAdjustIndentation InsertTextMode = 2 -) - -// String returns a string representation of the InsertTextMode. -func (k InsertTextMode) String() string { - switch k { - case InsertTextModeAsIs: - return "AsIs" - case InsertTextModeAdjustIndentation: - return "AdjustIndentation" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// CompletionItem item of CompletionList. -type CompletionItem struct { - // AdditionalTextEdits an optional array of additional text edits that are applied when - // selecting this completion. Edits must not overlap (including the same insert position) - // with the main edit nor with themselves. - // - // Additional text edits should be used to change text unrelated to the current cursor position - // (for example adding an import statement at the top of the file if the completion item will - // insert an unqualified type). - AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"` - - // Command an optional command that is executed *after* inserting this completion. *Note* that - // additional modifications to the current document should be described with the - // additionalTextEdits-property. - Command *Command `json:"command,omitempty"` - - // CommitCharacters an optional set of characters that when pressed while this completion is active will accept it first and - // then type that character. *Note* that all commit characters should have `length=1` and that superfluous - // characters will be ignored. - CommitCharacters []string `json:"commitCharacters,omitempty"` - - // Tags is the tag for this completion item. - // - // @since 3.15.0. - Tags []CompletionItemTag `json:"tags,omitempty"` - - // Data an data entry field that is preserved on a completion item between - // a completion and a completion resolve request. - Data interface{} `json:"data,omitempty"` - - // Deprecated indicates if this item is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - - // Detail a human-readable string with additional information - // about this item, like type or symbol information. - Detail string `json:"detail,omitempty"` - - // Documentation a human-readable string that represents a doc-comment. - Documentation interface{} `json:"documentation,omitempty"` - - // FilterText a string that should be used when filtering a set of - // completion items. When `falsy` the label is used. - FilterText string `json:"filterText,omitempty"` - - // InsertText a string that should be inserted into a document when selecting - // this completion. When `falsy` the label is used. - // - // The `insertText` is subject to interpretation by the client side. - // Some tools might not take the string literally. For example - // VS Code when code complete is requested in this example `con` - // and a completion item with an `insertText` of `console` is provided it - // will only insert `sole`. Therefore it is recommended to use `textEdit` instead - // since it avoids additional client side interpretation. - InsertText string `json:"insertText,omitempty"` - - // InsertTextFormat is the format of the insert text. The format applies to both the `insertText` property - // and the `newText` property of a provided `textEdit`. - InsertTextFormat InsertTextFormat `json:"insertTextFormat,omitempty"` - - // InsertTextMode how whitespace and indentation is handled during completion - // item insertion. If not provided the client's default value depends on - // the `textDocument.completion.insertTextMode` client capability. - // - // @since 3.16.0. - InsertTextMode InsertTextMode `json:"insertTextMode,omitempty"` - - // Kind is the kind of this completion item. Based of the kind - // an icon is chosen by the editor. - Kind CompletionItemKind `json:"kind,omitempty"` - - // Label is the label of this completion item. By default - // also the text that is inserted when selecting - // this completion. - Label string `json:"label"` - - // Preselect select this item when showing. - // - // *Note* that only one completion item can be selected and that the - // tool / client decides which item that is. The rule is that the *first* - // item of those that match best is selected. - Preselect bool `json:"preselect,omitempty"` - - // SortText a string that should be used when comparing this item - // with other items. When `falsy` the label is used. - SortText string `json:"sortText,omitempty"` - - // TextEdit an edit which is applied to a document when selecting this completion. When an edit is provided the value of - // `insertText` is ignored. - // - // NOTE: The range of the edit must be a single line range and it must contain the position at which completion - // has been requested. - // - // Most editors support two different operations when accepting a completion - // item. One is to insert a completion text and the other is to replace an - // existing text with a completion text. Since this can usually not be - // predetermined by a server it can report both ranges. Clients need to - // signal support for `InsertReplaceEdits` via the - // "textDocument.completion.insertReplaceSupport" client capability - // property. - // - // NOTE 1: The text edit's range as well as both ranges from an insert - // replace edit must be a [single line] and they must contain the position - // at which completion has been requested. - // - // NOTE 2: If an "InsertReplaceEdit" is returned the edit's insert range - // must be a prefix of the edit's replace range, that means it must be - // contained and starting at the same position. - // - // @since 3.16.0 additional type "InsertReplaceEdit". - TextEdit *TextEdit `json:"textEdit,omitempty"` // *TextEdit | *InsertReplaceEdit -} - -// CompletionItemKind is the completion item kind values the client supports. When this -// property exists the client also guarantees that it will -// handle values outside its set gracefully and falls back -// to a default value when unknown. -// -// If this property is not present the client only supports -// the completion items kinds from `Text` to `Reference` as defined in -// the initial version of the protocol. -type CompletionItemKind float64 - -const ( - // CompletionItemKindText text completion kind. - CompletionItemKindText CompletionItemKind = 1 - // CompletionItemKindMethod method completion kind. - CompletionItemKindMethod CompletionItemKind = 2 - // CompletionItemKindFunction function completion kind. - CompletionItemKindFunction CompletionItemKind = 3 - // CompletionItemKindConstructor constructor completion kind. - CompletionItemKindConstructor CompletionItemKind = 4 - // CompletionItemKindField field completion kind. - CompletionItemKindField CompletionItemKind = 5 - // CompletionItemKindVariable variable completion kind. - CompletionItemKindVariable CompletionItemKind = 6 - // CompletionItemKindClass class completion kind. - CompletionItemKindClass CompletionItemKind = 7 - // CompletionItemKindInterface interface completion kind. - CompletionItemKindInterface CompletionItemKind = 8 - // CompletionItemKindModule module completion kind. - CompletionItemKindModule CompletionItemKind = 9 - // CompletionItemKindProperty property completion kind. - CompletionItemKindProperty CompletionItemKind = 10 - // CompletionItemKindUnit unit completion kind. - CompletionItemKindUnit CompletionItemKind = 11 - // CompletionItemKindValue value completion kind. - CompletionItemKindValue CompletionItemKind = 12 - // CompletionItemKindEnum enum completion kind. - CompletionItemKindEnum CompletionItemKind = 13 - // CompletionItemKindKeyword keyword completion kind. - CompletionItemKindKeyword CompletionItemKind = 14 - // CompletionItemKindSnippet snippet completion kind. - CompletionItemKindSnippet CompletionItemKind = 15 - // CompletionItemKindColor color completion kind. - CompletionItemKindColor CompletionItemKind = 16 - // CompletionItemKindFile file completion kind. - CompletionItemKindFile CompletionItemKind = 17 - // CompletionItemKindReference reference completion kind. - CompletionItemKindReference CompletionItemKind = 18 - // CompletionItemKindFolder folder completion kind. - CompletionItemKindFolder CompletionItemKind = 19 - // CompletionItemKindEnumMember enum member completion kind. - CompletionItemKindEnumMember CompletionItemKind = 20 - // CompletionItemKindConstant constant completion kind. - CompletionItemKindConstant CompletionItemKind = 21 - // CompletionItemKindStruct struct completion kind. - CompletionItemKindStruct CompletionItemKind = 22 - // CompletionItemKindEvent event completion kind. - CompletionItemKindEvent CompletionItemKind = 23 - // CompletionItemKindOperator operator completion kind. - CompletionItemKindOperator CompletionItemKind = 24 - // CompletionItemKindTypeParameter type parameter completion kind. - CompletionItemKindTypeParameter CompletionItemKind = 25 -) - -// String implements fmt.Stringer. -//nolint:cyclop -func (k CompletionItemKind) String() string { - switch k { - case CompletionItemKindText: - return "Text" - case CompletionItemKindMethod: - return "Method" - case CompletionItemKindFunction: - return "Function" - case CompletionItemKindConstructor: - return "Constructor" - case CompletionItemKindField: - return "Field" - case CompletionItemKindVariable: - return "Variable" - case CompletionItemKindClass: - return "Class" - case CompletionItemKindInterface: - return "Interface" - case CompletionItemKindModule: - return "Module" - case CompletionItemKindProperty: - return "Property" - case CompletionItemKindUnit: - return "Unit" - case CompletionItemKindValue: - return "Value" - case CompletionItemKindEnum: - return "Enum" - case CompletionItemKindKeyword: - return "Keyword" - case CompletionItemKindSnippet: - return "Snippet" - case CompletionItemKindColor: - return "Color" - case CompletionItemKindFile: - return "File" - case CompletionItemKindReference: - return "Reference" - case CompletionItemKindFolder: - return "Folder" - case CompletionItemKindEnumMember: - return "EnumMember" - case CompletionItemKindConstant: - return "Constant" - case CompletionItemKindStruct: - return "Struct" - case CompletionItemKindEvent: - return "Event" - case CompletionItemKindOperator: - return "Operator" - case CompletionItemKindTypeParameter: - return "TypeParameter" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// CompletionItemTag completion item tags are extra annotations that tweak the rendering of a completion -// item. -// -// @since 3.15.0. -type CompletionItemTag float64 - -// list of CompletionItemTag. -const ( - // CompletionItemTagDeprecated is the render a completion as obsolete, usually using a strike-out. - CompletionItemTagDeprecated CompletionItemTag = 1 -) - -// String returns a string representation of the type. -func (c CompletionItemTag) String() string { - switch c { - case CompletionItemTagDeprecated: - return "Deprecated" - default: - return strconv.FormatFloat(float64(c), 'f', -10, 64) - } -} - -// CompletionRegistrationOptions CompletionRegistration options. -type CompletionRegistrationOptions struct { - TextDocumentRegistrationOptions - - // TriggerCharacters most tools trigger completion request automatically without explicitly requesting - // it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user - // starts to type an identifier. For example if the user types `c` in a JavaScript file - // code complete will automatically pop up present `console` besides others as a - // completion item. Characters that make up identifiers don't need to be listed here. - // - // If code complete should automatically be trigger on characters not being valid inside - // an identifier (for example `.` in JavaScript) list them in `triggerCharacters`. - TriggerCharacters []string `json:"triggerCharacters,omitempty"` - - // ResolveProvider is the server provides support to resolve additional - // information for a completion item. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// HoverParams params of Hover request. -// -// @since 3.15.0. -type HoverParams struct { - TextDocumentPositionParams - WorkDoneProgressParams -} - -// Hover is the result of a hover request. -type Hover struct { - // Contents is the hover's content - Contents MarkupContent `json:"contents"` - - // Range an optional range is a range inside a text document - // that is used to visualize a hover, e.g. by changing the background color. - Range *Range `json:"range,omitempty"` -} - -// SignatureHelpParams params of SignatureHelp request. -// -// @since 3.15.0. -type SignatureHelpParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - - // context is the signature help context. - // - // This is only available if the client specifies to send this using the - // client capability `textDocument.signatureHelp.contextSupport === true`. - // - // @since 3.15.0. - Context *SignatureHelpContext `json:"context,omitempty"` -} - -// SignatureHelpTriggerKind is the how a signature help was triggered. -// -// @since 3.15.0. -type SignatureHelpTriggerKind float64 - -// list of SignatureHelpTriggerKind. -const ( - // SignatureHelpTriggerKindInvoked is the signature help was invoked manually by the user or by a command. - SignatureHelpTriggerKindInvoked SignatureHelpTriggerKind = 1 - - // SignatureHelpTriggerKindTriggerCharacter is the signature help was triggered by a trigger character. - SignatureHelpTriggerKindTriggerCharacter SignatureHelpTriggerKind = 2 - - // SignatureHelpTriggerKindContentChange is the signature help was triggered by the cursor moving or - // by the document content changing. - SignatureHelpTriggerKindContentChange SignatureHelpTriggerKind = 3 -) - -// String returns a string representation of the type. -func (s SignatureHelpTriggerKind) String() string { - switch s { - case SignatureHelpTriggerKindInvoked: - return "Invoked" - case SignatureHelpTriggerKindTriggerCharacter: - return "TriggerCharacter" - case SignatureHelpTriggerKindContentChange: - return "ContentChange" - default: - return strconv.FormatFloat(float64(s), 'f', -10, 64) - } -} - -// SignatureHelpContext is the additional information about the context in which a -// signature help request was triggered. -// -// @since 3.15.0. -type SignatureHelpContext struct { - // TriggerKind is the action that caused signature help to be triggered. - TriggerKind SignatureHelpTriggerKind `json:"triggerKind"` - - // Character that caused signature help to be triggered. - // - // This is undefined when - // TriggerKind != SignatureHelpTriggerKindTriggerCharacter - TriggerCharacter string `json:"triggerCharacter,omitempty"` - - // IsRetrigger is the `true` if signature help was already showing when it was triggered. - // - // Retriggers occur when the signature help is already active and can be - // caused by actions such as typing a trigger character, a cursor move, - // or document content changes. - IsRetrigger bool `json:"isRetrigger"` - - // ActiveSignatureHelp is the currently active SignatureHelp. - // - // The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field - // updated based on the user navigating through available signatures. - ActiveSignatureHelp *SignatureHelp `json:"activeSignatureHelp,omitempty"` -} - -// SignatureHelp signature help represents the signature of something -// callable. There can be multiple signature but only one -// active and only one active parameter. -type SignatureHelp struct { - // Signatures one or more signatures. - Signatures []SignatureInformation `json:"signatures"` - - // ActiveParameter is the active parameter of the active signature. If omitted or the value - // lies outside the range of `signatures[activeSignature].parameters` - // defaults to 0 if the active signature has parameters. If - // the active signature has no parameters it is ignored. - // In future version of the protocol this property might become - // mandatory to better express the active parameter if the - // active signature does have any. - ActiveParameter uint32 `json:"activeParameter,omitempty"` - - // ActiveSignature is the active signature. If omitted or the value lies outside the - // range of `signatures` the value defaults to zero or is ignored if - // `signatures.length === 0`. Whenever possible implementors should - // make an active decision about the active signature and shouldn't - // rely on a default value. - // In future version of the protocol this property might become - // mandatory to better express this. - ActiveSignature uint32 `json:"activeSignature,omitempty"` -} - -// SignatureInformation is the client supports the following `SignatureInformation` -// specific properties. -type SignatureInformation struct { - // Label is the label of this signature. Will be shown in - // the UI. - // - // @since 3.16.0. - Label string `json:"label"` - - // Documentation is the human-readable doc-comment of this signature. Will be shown - // in the UI but can be omitted. - // - // @since 3.16.0. - Documentation interface{} `json:"documentation,omitempty"` // string | *MarkupContent - - // Parameters is the parameters of this signature. - // - // @since 3.16.0. - Parameters []ParameterInformation `json:"parameters,omitempty"` - - // ActiveParameterSupport is the client supports the `activeParameter` property on - // `SignatureInformation` literal. - // - // @since 3.16.0. - ActiveParameter uint32 `json:"activeParameter,omitempty"` -} - -// ParameterInformation represents a parameter of a callable-signature. A parameter can -// have a label and a doc-comment. -type ParameterInformation struct { - // Label is the label of this parameter information. - // - // Either a string or an inclusive start and exclusive end offsets within its containing - // signature label. (see SignatureInformation.label). The offsets are based on a UTF-16 - // string representation as "Position" and "Range" does. - // - // *Note*: a label of type string should be a substring of its containing signature label. - // Its intended use case is to highlight the parameter label part in the "SignatureInformation.label". - Label string `json:"label"` // string | [uint32, uint32] - - // Documentation is the human-readable doc-comment of this parameter. Will be shown - // in the UI but can be omitted. - Documentation interface{} `json:"documentation,omitempty"` // string | MarkupContent -} - -// SignatureHelpRegistrationOptions SignatureHelp Registration options. -type SignatureHelpRegistrationOptions struct { - TextDocumentRegistrationOptions - - // TriggerCharacters is the characters that trigger signature help - // automatically. - TriggerCharacters []string `json:"triggerCharacters,omitempty"` -} - -// ReferenceParams params of References request. -// -// @since 3.15.0. -type ReferenceParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams - - // Context is the ReferenceParams context. - Context ReferenceContext `json:"context"` -} - -// ReferenceContext context of ReferenceParams. -type ReferenceContext struct { - // IncludeDeclaration include the declaration of the current symbol. - IncludeDeclaration bool `json:"includeDeclaration"` -} - -// DocumentHighlight a document highlight is a range inside a text document which deserves -// special attention. Usually a document highlight is visualized by changing -// the background color of its range. -type DocumentHighlight struct { - // Range is the range this highlight applies to. - Range Range `json:"range"` - - // Kind is the highlight kind, default is DocumentHighlightKind.Text. - Kind DocumentHighlightKind `json:"kind,omitempty"` -} - -// DocumentHighlightKind a document highlight kind. -type DocumentHighlightKind float64 - -const ( - // DocumentHighlightKindText a textual occurrence. - DocumentHighlightKindText DocumentHighlightKind = 1 - - // DocumentHighlightKindRead read-access of a symbol, like reading a variable. - DocumentHighlightKindRead DocumentHighlightKind = 2 - - // DocumentHighlightKindWrite write-access of a symbol, like writing to a variable. - DocumentHighlightKindWrite DocumentHighlightKind = 3 -) - -// String implements fmt.Stringer. -func (k DocumentHighlightKind) String() string { - switch k { - case DocumentHighlightKindText: - return "Text" - case DocumentHighlightKindRead: - return "Read" - case DocumentHighlightKindWrite: - return "Write" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// DocumentSymbolParams params of Document Symbols request. -type DocumentSymbolParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// SymbolKind specific capabilities for the `SymbolKind`. -// The symbol kind values the client supports. When this -// property exists the client also guarantees that it will -// handle values outside its set gracefully and falls back -// to a default value when unknown. -// -// If this property is not present the client only supports -// the symbol kinds from `File` to `Array` as defined in -// the initial version of the protocol. -type SymbolKind float64 - -const ( - // SymbolKindFile symbol of file. - SymbolKindFile SymbolKind = 1 - // SymbolKindModule symbol of module. - SymbolKindModule SymbolKind = 2 - // SymbolKindNamespace symbol of namespace. - SymbolKindNamespace SymbolKind = 3 - // SymbolKindPackage symbol of package. - SymbolKindPackage SymbolKind = 4 - // SymbolKindClass symbol of class. - SymbolKindClass SymbolKind = 5 - // SymbolKindMethod symbol of method. - SymbolKindMethod SymbolKind = 6 - // SymbolKindProperty symbol of property. - SymbolKindProperty SymbolKind = 7 - // SymbolKindField symbol of field. - SymbolKindField SymbolKind = 8 - // SymbolKindConstructor symbol of constructor. - SymbolKindConstructor SymbolKind = 9 - // SymbolKindEnum symbol of enum. - SymbolKindEnum SymbolKind = 10 - // SymbolKindInterface symbol of interface. - SymbolKindInterface SymbolKind = 11 - // SymbolKindFunction symbol of function. - SymbolKindFunction SymbolKind = 12 - // SymbolKindVariable symbol of variable. - SymbolKindVariable SymbolKind = 13 - // SymbolKindConstant symbol of constant. - SymbolKindConstant SymbolKind = 14 - // SymbolKindString symbol of string. - SymbolKindString SymbolKind = 15 - // SymbolKindNumber symbol of number. - SymbolKindNumber SymbolKind = 16 - // SymbolKindBoolean symbol of boolean. - SymbolKindBoolean SymbolKind = 17 - // SymbolKindArray symbol of array. - SymbolKindArray SymbolKind = 18 - // SymbolKindObject symbol of object. - SymbolKindObject SymbolKind = 19 - // SymbolKindKey symbol of key. - SymbolKindKey SymbolKind = 20 - // SymbolKindNull symbol of null. - SymbolKindNull SymbolKind = 21 - // SymbolKindEnumMember symbol of enum member. - SymbolKindEnumMember SymbolKind = 22 - // SymbolKindStruct symbol of struct. - SymbolKindStruct SymbolKind = 23 - // SymbolKindEvent symbol of event. - SymbolKindEvent SymbolKind = 24 - // SymbolKindOperator symbol of operator. - SymbolKindOperator SymbolKind = 25 - // SymbolKindTypeParameter symbol of type parameter. - SymbolKindTypeParameter SymbolKind = 26 -) - -// String implements fmt.Stringer. -//nolint:cyclop -func (k SymbolKind) String() string { - switch k { - case SymbolKindFile: - return "File" - case SymbolKindModule: - return "Module" - case SymbolKindNamespace: - return "Namespace" - case SymbolKindPackage: - return "Package" - case SymbolKindClass: - return "Class" - case SymbolKindMethod: - return "Method" - case SymbolKindProperty: - return "Property" - case SymbolKindField: - return "Field" - case SymbolKindConstructor: - return "Constructor" - case SymbolKindEnum: - return "Enum" - case SymbolKindInterface: - return "Interface" - case SymbolKindFunction: - return "Function" - case SymbolKindVariable: - return "Variable" - case SymbolKindConstant: - return "Constant" - case SymbolKindString: - return "String" - case SymbolKindNumber: - return "Number" - case SymbolKindBoolean: - return "Boolean" - case SymbolKindArray: - return "Array" - case SymbolKindObject: - return "Object" - case SymbolKindKey: - return "Key" - case SymbolKindNull: - return "Null" - case SymbolKindEnumMember: - return "EnumMember" - case SymbolKindStruct: - return "Struct" - case SymbolKindEvent: - return "Event" - case SymbolKindOperator: - return "Operator" - case SymbolKindTypeParameter: - return "TypeParameter" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// SymbolTag symbol tags are extra annotations that tweak the rendering of a symbol. -// -// @since 3.16.0. -type SymbolTag float64 - -// list of SymbolTag. -const ( - // SymbolTagDeprecated render a symbol as obsolete, usually using a strike-out. - SymbolTagDeprecated SymbolTag = 1 -) - -// String returns a string representation of the SymbolTag. -func (k SymbolTag) String() string { - switch k { - case SymbolTagDeprecated: - return "Deprecated" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// DocumentSymbol represents programming constructs like variables, classes, interfaces etc. that appear in a document. Document symbols can be -// hierarchical and they have two ranges: one that encloses its definition and one that points to its most interesting range, -// e.g. the range of an identifier. -type DocumentSymbol struct { - // Name is the name of this symbol. Will be displayed in the user interface and therefore must not be - // an empty string or a string only consisting of white spaces. - Name string `json:"name"` - - // Detail is the more detail for this symbol, e.g the signature of a function. - Detail string `json:"detail,omitempty"` - - // Kind is the kind of this symbol. - Kind SymbolKind `json:"kind"` - - // Tags for this document symbol. - // - // @since 3.16.0. - Tags []SymbolTag `json:"tags,omitempty"` - - // Deprecated indicates if this symbol is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - - // Range is the range enclosing this symbol not including leading/trailing whitespace but everything else - // like comments. This information is typically used to determine if the clients cursor is - // inside the symbol to reveal in the symbol in the UI. - Range Range `json:"range"` - - // SelectionRange is the range that should be selected and revealed when this symbol is being picked, e.g the name of a function. - // Must be contained by the `range`. - SelectionRange Range `json:"selectionRange"` - - // Children children of this symbol, e.g. properties of a class. - Children []DocumentSymbol `json:"children,omitempty"` -} - -// SymbolInformation represents information about programming constructs like variables, classes, -// interfaces etc. -type SymbolInformation struct { - // Name is the name of this symbol. - Name string `json:"name"` - - // Kind is the kind of this symbol. - Kind SymbolKind `json:"kind"` - - // Tags for this completion item. - // - // @since 3.16.0. - Tags []SymbolTag `json:"tags,omitempty"` - - // Deprecated indicates if this symbol is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - - // Location is the location of this symbol. The location's range is used by a tool - // to reveal the location in the editor. If the symbol is selected in the - // tool the range's start information is used to position the cursor. So - // the range usually spans more then the actual symbol's name and does - // normally include things like visibility modifiers. - // - // The range doesn't have to denote a node range in the sense of a abstract - // syntax tree. It can therefore not be used to re-construct a hierarchy of - // the symbols. - Location Location `json:"location"` - - // ContainerName is the name of the symbol containing this symbol. This information is for - // user interface purposes (e.g. to render a qualifier in the user interface - // if necessary). It can't be used to re-infer a hierarchy for the document - // symbols. - ContainerName string `json:"containerName,omitempty"` -} - -// CodeActionParams params for the CodeActionRequest. -type CodeActionParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the document in which the command was invoked. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Context carrying additional information. - Context CodeActionContext `json:"context"` - - // Range is the range for which the command was invoked. - Range Range `json:"range"` -} - -// CodeActionKind is the code action kind values the client supports. When this -// property exists the client also guarantees that it will -// handle values outside its set gracefully and falls back -// to a default value when unknown. -type CodeActionKind string - -// A set of predefined code action kinds. -const ( - // QuickFix base kind for quickfix actions: 'quickfix'. - QuickFix CodeActionKind = "quickfix" - - // Refactor base kind for refactoring actions: 'refactor'. - Refactor CodeActionKind = "refactor" - - // RefactorExtract base kind for refactoring extraction actions: 'refactor.extract' - // - // Example extract actions: - // - // - Extract method - // - Extract function - // - Extract variable - // - Extract interface from class - // - ... - RefactorExtract CodeActionKind = "refactor.extract" - - // RefactorInline base kind for refactoring inline actions: 'refactor.inline' - // - // Example inline actions: - // - // - Inline function - // - Inline variable - // - Inline constant - // - ... - RefactorInline CodeActionKind = "refactor.inline" - - // RefactorRewrite base kind for refactoring rewrite actions: 'refactor.rewrite' - // - // Example rewrite actions: - // - // - Convert JavaScript function to class - // - Add or remove parameter - // - Encapsulate field - // - Make method static - // - Move method to base class - // - ... - RefactorRewrite CodeActionKind = "refactor.rewrite" - - // Source base kind for source actions: `source` - // - // Source code actions apply to the entire file. - Source CodeActionKind = "source" - - // SourceOrganizeImports base kind for an organize imports source action: `source.organizeImports`. - SourceOrganizeImports CodeActionKind = "source.organizeImports" -) - -// CodeActionContext contains additional diagnostic information about the context in which -// a code action is run. -type CodeActionContext struct { - // Diagnostics is an array of diagnostics. - Diagnostics []Diagnostic `json:"diagnostics"` - - // Only requested kind of actions to return. - // - // Actions not of this kind are filtered out by the client before being shown. So servers - // can omit computing them. - Only []CodeActionKind `json:"only,omitempty"` -} - -// CodeAction capabilities specific to the `textDocument/codeAction`. -type CodeAction struct { - // Title is a short, human-readable, title for this code action. - Title string `json:"title"` - - // Kind is the kind of the code action. - // - // Used to filter code actions. - Kind CodeActionKind `json:"kind,omitempty"` - - // Diagnostics is the diagnostics that this code action resolves. - Diagnostics []Diagnostic `json:"diagnostics,omitempty"` - - // IsPreferred marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted - // by keybindings. - // - // A quick fix should be marked preferred if it properly addresses the underlying error. - // A refactoring should be marked preferred if it is the most reasonable choice of actions to take. - // - // @since 3.15.0. - IsPreferred bool `json:"isPreferred,omitempty"` - - // Disabled marks that the code action cannot currently be applied. - // - // Clients should follow the following guidelines regarding disabled code - // actions: - // - // - Disabled code actions are not shown in automatic lightbulbs code - // action menus. - // - // - Disabled actions are shown as faded out in the code action menu when - // the user request a more specific type of code action, such as - // refactorings. - // - // - If the user has a keybinding that auto applies a code action and only - // a disabled code actions are returned, the client should show the user - // an error message with `reason` in the editor. - // - // @since 3.16.0. - Disabled *CodeActionDisable `json:"disabled,omitempty"` - - // Edit is the workspace edit this code action performs. - Edit *WorkspaceEdit `json:"edit,omitempty"` - - // Command is a command this code action executes. If a code action - // provides an edit and a command, first the edit is - // executed and then the command. - Command *Command `json:"command,omitempty"` - - // Data is a data entry field that is preserved on a code action between - // a "textDocument/codeAction" and a "codeAction/resolve" request. - // - // @since 3.16.0. - Data interface{} `json:"data,omitempty"` -} - -// CodeActionDisable Disable in CodeAction. -// -// @since 3.16.0. -type CodeActionDisable struct { - // Reason human readable description of why the code action is currently - // disabled. - // - // This is displayed in the code actions UI. - Reason string `json:"reason"` -} - -// CodeActionRegistrationOptions CodeAction Registrationi options. -type CodeActionRegistrationOptions struct { - TextDocumentRegistrationOptions - - CodeActionOptions -} - -// CodeLensParams params of Code Lens request. -type CodeLensParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the document to request code lens for. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// CodeLens is a code lens represents a command that should be shown along with -// source text, like the number of references, a way to run tests, etc. -// -// A code lens is _unresolved_ when no command is associated to it. For performance -// reasons the creation of a code lens and resolving should be done in two stages. -type CodeLens struct { - // Range is the range in which this code lens is valid. Should only span a single line. - Range Range `json:"range"` - - // Command is the command this code lens represents. - Command *Command `json:"command,omitempty"` - - // Data is a data entry field that is preserved on a code lens item between - // a code lens and a code lens resolve request. - Data interface{} `json:"data,omitempty"` -} - -// CodeLensRegistrationOptions CodeLens Registration options. -type CodeLensRegistrationOptions struct { - TextDocumentRegistrationOptions - - // ResolveProvider code lens has a resolve provider as well. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// DocumentLinkParams params of Document Link request. -type DocumentLinkParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the document to provide document links for. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// DocumentLink is a document link is a range in a text document that links to an internal or external resource, like another -// text document or a web site. -type DocumentLink struct { - // Range is the range this link applies to. - Range Range `json:"range"` - - // Target is the uri this link points to. If missing a resolve request is sent later. - Target DocumentURI `json:"target,omitempty"` - - // Tooltip is the tooltip text when you hover over this link. - // - // If a tooltip is provided, is will be displayed in a string that includes instructions on how to - // trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS, - // user settings, and localization. - // - // @since 3.15.0. - Tooltip string `json:"tooltip,omitempty"` - - // Data is a data entry field that is preserved on a document link between a - // DocumentLinkRequest and a DocumentLinkResolveRequest. - Data interface{} `json:"data,omitempty"` -} - -// DocumentColorParams params of Document Color request. -type DocumentColorParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the document to format. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// ColorInformation response of Document Color request. -type ColorInformation struct { - // Range is the range in the document where this color appears. - Range Range `json:"range"` - - // Color is the actual color value for this color range. - Color Color `json:"color"` -} - -// Color represents a color in RGBA space. -type Color struct { - // Alpha is the alpha component of this color in the range [0-1]. - Alpha float64 `json:"alpha"` - - // Blue is the blue component of this color in the range [0-1]. - Blue float64 `json:"blue"` - - // Green is the green component of this color in the range [0-1]. - Green float64 `json:"green"` - - // Red is the red component of this color in the range [0-1]. - Red float64 `json:"red"` -} - -// ColorPresentationParams params of Color Presentation request. -type ColorPresentationParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Color is the color information to request presentations for. - Color Color `json:"color"` - - // Range is the range where the color would be inserted. Serves as a context. - Range Range `json:"range"` -} - -// ColorPresentation response of Color Presentation request. -type ColorPresentation struct { - // Label is the label of this color presentation. It will be shown on the color - // picker header. By default this is also the text that is inserted when selecting - // this color presentation. - Label string `json:"label"` - - // TextEdit an edit which is applied to a document when selecting - // this presentation for the color. When `falsy` the label is used. - TextEdit *TextEdit `json:"textEdit,omitempty"` - - // AdditionalTextEdits an optional array of additional [text edits](#TextEdit) that are applied when - // selecting this color presentation. Edits must not overlap with the main [edit](#ColorPresentation.textEdit) nor with themselves. - AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"` -} - -// DocumentFormattingParams params of Document Formatting request. -type DocumentFormattingParams struct { - WorkDoneProgressParams - - // Options is the format options. - Options FormattingOptions `json:"options"` - - // TextDocument is the document to format. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// FormattingOptions value-object describing what options formatting should use. -type FormattingOptions struct { - // InsertSpaces prefer spaces over tabs. - InsertSpaces bool `json:"insertSpaces"` - - // TabSize size of a tab in spaces. - TabSize uint32 `json:"tabSize"` - - // TrimTrailingWhitespace trim trailing whitespaces on a line. - // - // @since 3.15.0. - TrimTrailingWhitespace bool `json:"trimTrailingWhitespace,omitempty"` - - // InsertFinalNewlines insert a newline character at the end of the file if one does not exist. - // - // @since 3.15.0. - InsertFinalNewline bool `json:"insertFinalNewline,omitempty"` - - // TrimFinalNewlines trim all newlines after the final newline at the end of the file. - // - // @since 3.15.0. - TrimFinalNewlines bool `json:"trimFinalNewlines,omitempty"` - - // Key is the signature for further properties. - Key map[string]interface{} `json:"key,omitempty"` // bool | int32 | string -} - -// DocumentRangeFormattingParams params of Document Range Formatting request. -type DocumentRangeFormattingParams struct { - WorkDoneProgressParams - - // TextDocument is the document to format. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Range is the range to format - Range Range `json:"range"` - - // Options is the format options. - Options FormattingOptions `json:"options"` -} - -// DocumentOnTypeFormattingParams params of Document on Type Formatting request. -type DocumentOnTypeFormattingParams struct { - // TextDocument is the document to format. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Position is the position at which this request was sent. - Position Position `json:"position"` - - // Ch is the character that has been typed. - Ch string `json:"ch"` - - // Options is the format options. - Options FormattingOptions `json:"options"` -} - -// DocumentOnTypeFormattingRegistrationOptions DocumentOnTypeFormatting Registration options. -type DocumentOnTypeFormattingRegistrationOptions struct { - TextDocumentRegistrationOptions - - // FirstTriggerCharacter a character on which formatting should be triggered, like `}`. - FirstTriggerCharacter string `json:"firstTriggerCharacter"` - - // MoreTriggerCharacter a More trigger characters. - MoreTriggerCharacter []string `json:"moreTriggerCharacter"` -} - -// RenameParams params of Rename request. -type RenameParams struct { - TextDocumentPositionParams - PartialResultParams - - // NewName is the new name of the symbol. If the given name is not valid the - // request must return a [ResponseError](#ResponseError) with an - // appropriate message set. - NewName string `json:"newName"` -} - -// RenameRegistrationOptions Rename Registration options. -type RenameRegistrationOptions struct { - TextDocumentRegistrationOptions - - // PrepareProvider is the renames should be checked and tested for validity before being executed. - PrepareProvider bool `json:"prepareProvider,omitempty"` -} - -// PrepareRenameParams params of PrepareRenameParams request. -// -// @since 3.15.0. -type PrepareRenameParams struct { - TextDocumentPositionParams -} - -// FoldingRangeParams params of Folding Range request. -type FoldingRangeParams struct { - TextDocumentPositionParams - PartialResultParams -} - -// FoldingRangeKind is the enum of known range kinds. -type FoldingRangeKind string - -const ( - // CommentFoldingRange is the folding range for a comment. - CommentFoldingRange FoldingRangeKind = "comment" - - // ImportsFoldingRange is the folding range for a imports or includes. - ImportsFoldingRange FoldingRangeKind = "imports" - - // RegionFoldingRange is the folding range for a region (e.g. `#region`). - RegionFoldingRange FoldingRangeKind = "region" -) - -// FoldingRange capabilities specific to `textDocument/foldingRange` requests. -// -// @since 3.10.0. -type FoldingRange struct { - // StartLine is the zero-based line number from where the folded range starts. - StartLine uint32 `json:"startLine"` - - // StartCharacter is the zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line. - StartCharacter uint32 `json:"startCharacter,omitempty"` - - // EndLine is the zero-based line number where the folded range ends. - EndLine uint32 `json:"endLine"` - - // EndCharacter is the zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line. - EndCharacter uint32 `json:"endCharacter,omitempty"` - - // Kind describes the kind of the folding range such as `comment' or 'region'. The kind - // is used to categorize folding ranges and used by commands like 'Fold all comments'. - // See FoldingRangeKind for an enumeration of standardized kinds. - Kind FoldingRangeKind `json:"kind,omitempty"` -} diff --git a/vendor/go.lsp.dev/protocol/log.go b/vendor/go.lsp.dev/protocol/log.go deleted file mode 100644 index 0b7c9aa..0000000 --- a/vendor/go.lsp.dev/protocol/log.go +++ /dev/null @@ -1,156 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "bytes" - "context" - "fmt" - "io" - "sync" - "time" - - "go.lsp.dev/jsonrpc2" -) - -// loggingStream represents a logging of jsonrpc2.Stream. -type loggingStream struct { - stream jsonrpc2.Stream - log io.Writer - logMu sync.Mutex -} - -// LoggingStream returns a stream that does LSP protocol logging. -func LoggingStream(stream jsonrpc2.Stream, w io.Writer) jsonrpc2.Stream { - return &loggingStream{ - stream: stream, - log: w, - } -} - -// Read implements jsonrpc2.Stream.Read. -func (s *loggingStream) Read(ctx context.Context) (jsonrpc2.Message, int64, error) { - msg, count, err := s.stream.Read(ctx) - if err == nil { - s.logCommon(msg, true) - } - - return msg, count, err -} - -// Write implements jsonrpc2.Stream.Write. -func (s *loggingStream) Write(ctx context.Context, msg jsonrpc2.Message) (int64, error) { - s.logCommon(msg, false) - count, err := s.stream.Write(ctx, msg) - - return count, err -} - -// Close implements jsonrpc2.Stream.Close. -func (s *loggingStream) Close() error { - return s.stream.Close() -} - -type req struct { - method string - start time.Time -} - -type mapped struct { - mu sync.Mutex - clientCalls map[string]req - serverCalls map[string]req -} - -var maps = &mapped{ - mu: sync.Mutex{}, - clientCalls: make(map[string]req), - serverCalls: make(map[string]req), -} - -// these 4 methods are each used exactly once, but it seemed -// better to have the encapsulation rather than ad hoc mutex -// code in 4 places. -func (m *mapped) client(id string) req { - m.mu.Lock() - v := m.clientCalls[id] - delete(m.clientCalls, id) - m.mu.Unlock() - - return v -} - -func (m *mapped) server(id string) req { - m.mu.Lock() - v := m.serverCalls[id] - delete(m.serverCalls, id) - m.mu.Unlock() - - return v -} - -func (m *mapped) setClient(id string, r req) { - m.mu.Lock() - m.clientCalls[id] = r - m.mu.Unlock() -} - -func (m *mapped) setServer(id string, r req) { - m.mu.Lock() - m.serverCalls[id] = r - m.mu.Unlock() -} - -const eor = "\r\n\r\n\r\n" - -func (s *loggingStream) logCommon(msg jsonrpc2.Message, isRead bool) { - if msg == nil || s.log == nil { - return - } - - s.logMu.Lock() - - direction, pastTense := "Received", "Received" - get, set := maps.client, maps.setServer - if isRead { - direction, pastTense = "Sending", "Sent" - get, set = maps.server, maps.setClient - } - - tm := time.Now() - tmfmt := tm.Format("15:04:05.000 PM") - - var buf bytes.Buffer - fmt.Fprintf(&buf, "[Trace - %s] ", tmfmt) // common beginning - - switch msg := msg.(type) { - case *jsonrpc2.Call: - id := fmt.Sprint(msg.ID()) - fmt.Fprintf(&buf, "%s request '%s - (%s)'.\n", direction, msg.Method(), id) - fmt.Fprintf(&buf, "Params: %s%s", msg.Params(), eor) - set(id, req{method: msg.Method(), start: tm}) - - case *jsonrpc2.Notification: - fmt.Fprintf(&buf, "%s notification '%s'.\n", direction, msg.Method()) - fmt.Fprintf(&buf, "Params: %s%s", msg.Params(), eor) - - case *jsonrpc2.Response: - id := fmt.Sprint(msg.ID()) - if err := msg.Err(); err != nil { - fmt.Fprintf(s.log, "[Error - %s] %s #%s %s%s", pastTense, tmfmt, id, err, eor) - - return - } - - cc := get(id) - elapsed := tm.Sub(cc.start) - fmt.Fprintf(&buf, "%s response '%s - (%s)' in %dms.\n", - direction, cc.method, id, elapsed/time.Millisecond) - fmt.Fprintf(&buf, "Result: %s%s", msg.Result(), eor) - } - - s.log.Write(buf.Bytes()) - - s.logMu.Unlock() -} diff --git a/vendor/go.lsp.dev/protocol/progress.go b/vendor/go.lsp.dev/protocol/progress.go deleted file mode 100644 index d1a2e9f..0000000 --- a/vendor/go.lsp.dev/protocol/progress.go +++ /dev/null @@ -1,119 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// WorkDoneProgressKind kind of WorkDoneProgress. -// -// @since 3.15.0. -type WorkDoneProgressKind string - -// list of WorkDoneProgressKind. -const ( - // WorkDoneProgressKindBegin kind of WorkDoneProgressBegin. - WorkDoneProgressKindBegin WorkDoneProgressKind = "begin" - - // WorkDoneProgressKindReport kind of WorkDoneProgressReport. - WorkDoneProgressKindReport WorkDoneProgressKind = "report" - - // WorkDoneProgressKindEnd kind of WorkDoneProgressEnd. - WorkDoneProgressKindEnd WorkDoneProgressKind = "end" -) - -// WorkDoneProgressBegin is the to start progress reporting a "$/progress" notification. -// -// @since 3.15.0. -type WorkDoneProgressBegin struct { - // Kind is the kind of WorkDoneProgressBegin. - // - // It must be WorkDoneProgressKindBegin. - Kind WorkDoneProgressKind `json:"kind"` - - // Title mandatory title of the progress operation. Used to briefly inform about - // the kind of operation being performed. - // - // Examples: "Indexing" or "Linking dependencies". - Title string `json:"title"` - - // Cancellable controls if a cancel button should show to allow the user to cancel the - // long running operation. Clients that don't support cancellation are allowed - // to ignore the setting. - Cancellable bool `json:"cancellable,omitempty"` - - // Message is optional, more detailed associated progress message. Contains - // complementary information to the `title`. - // - // Examples: "3/25 files", "project/src/module2", "node_modules/some_dep". - // If unset, the previous progress message (if any) is still valid. - Message string `json:"message,omitempty"` - - // Percentage is optional progress percentage to display (value 100 is considered 100%). - // If not provided infinite progress is assumed and clients are allowed - // to ignore the `percentage` value in subsequent in report notifications. - // - // The value should be steadily rising. Clients are free to ignore values - // that are not following this rule. - Percentage uint32 `json:"percentage,omitempty"` -} - -// WorkDoneProgressReport is the reporting progress is done. -// -// @since 3.15.0. -type WorkDoneProgressReport struct { - // Kind is the kind of WorkDoneProgressReport. - // - // It must be WorkDoneProgressKindReport. - Kind WorkDoneProgressKind `json:"kind"` - - // Cancellable controls enablement state of a cancel button. - // - // Clients that don't support cancellation or don't support controlling the button's - // enablement state are allowed to ignore the property. - Cancellable bool `json:"cancellable,omitempty"` - - // Message is optional, more detailed associated progress message. Contains - // complementary information to the `title`. - // - // Examples: "3/25 files", "project/src/module2", "node_modules/some_dep". - // If unset, the previous progress message (if any) is still valid. - Message string `json:"message,omitempty"` - - // Percentage is optional progress percentage to display (value 100 is considered 100%). - // If not provided infinite progress is assumed and clients are allowed - // to ignore the `percentage` value in subsequent in report notifications. - // - // The value should be steadily rising. Clients are free to ignore values - // that are not following this rule. - Percentage uint32 `json:"percentage,omitempty"` -} - -// WorkDoneProgressEnd is the signaling the end of a progress reporting is done. -// -// @since 3.15.0. -type WorkDoneProgressEnd struct { - // Kind is the kind of WorkDoneProgressEnd. - // - // It must be WorkDoneProgressKindEnd. - Kind WorkDoneProgressKind `json:"kind"` - - // Message is optional, a final message indicating to for example indicate the outcome - // of the operation. - Message string `json:"message,omitempty"` -} - -// WorkDoneProgressParams is a parameter property of report work done progress. -// -// @since 3.15.0. -type WorkDoneProgressParams struct { - // WorkDoneToken an optional token that a server can use to report work done progress. - WorkDoneToken *ProgressToken `json:"workDoneToken,omitempty"` -} - -// PartialResultParams is the parameter literal used to pass a partial result token. -// -// @since 3.15.0. -type PartialResultParams struct { - // PartialResultToken an optional token that a server can use to report partial results - // (for example, streaming) to the client. - PartialResultToken *ProgressToken `json:"partialResultToken,omitempty"` -} diff --git a/vendor/go.lsp.dev/protocol/protocol.go b/vendor/go.lsp.dev/protocol/protocol.go deleted file mode 100644 index 7d90b25..0000000 --- a/vendor/go.lsp.dev/protocol/protocol.go +++ /dev/null @@ -1,42 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "context" - - "go.uber.org/zap" - - "go.lsp.dev/jsonrpc2" -) - -// NewServer returns the context in which client is embedded, jsonrpc2.Conn, and the Client. -func NewServer(ctx context.Context, server Server, stream jsonrpc2.Stream, logger *zap.Logger) (context.Context, jsonrpc2.Conn, Client) { - conn := jsonrpc2.NewConn(stream) - cliint := ClientDispatcher(conn, logger.Named("client")) - ctx = WithClient(ctx, cliint) - - conn.Go(ctx, - Handlers( - ServerHandler(server, jsonrpc2.MethodNotFoundHandler), - ), - ) - - return ctx, conn, cliint -} - -// NewClient returns the context in which Client is embedded, jsonrpc2.Conn, and the Server. -func NewClient(ctx context.Context, client Client, stream jsonrpc2.Stream, logger *zap.Logger) (context.Context, jsonrpc2.Conn, Server) { - ctx = WithClient(ctx, client) - - conn := jsonrpc2.NewConn(stream) - conn.Go(ctx, - Handlers( - ClientHandler(client, jsonrpc2.MethodNotFoundHandler), - ), - ) - server := ServerDispatcher(conn, logger.Named("server")) - - return ctx, conn, server -} diff --git a/vendor/go.lsp.dev/protocol/registration.go b/vendor/go.lsp.dev/protocol/registration.go deleted file mode 100644 index a2abb43..0000000 --- a/vendor/go.lsp.dev/protocol/registration.go +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// Registration general parameters to register for a capability. -type Registration struct { - // ID is the id used to register the request. The id can be used to deregister - // the request again. - ID string `json:"id"` - - // Method is the method / capability to register for. - Method string `json:"method"` - - // RegisterOptions options necessary for the registration. - RegisterOptions interface{} `json:"registerOptions,omitempty"` -} - -// RegistrationParams params of Register Capability. -type RegistrationParams struct { - Registrations []Registration `json:"registrations"` -} - -// TextDocumentRegistrationOptions TextDocumentRegistration options. -type TextDocumentRegistrationOptions struct { - // DocumentSelector a document selector to identify the scope of the registration. If set to null - // the document selector provided on the client side will be used. - DocumentSelector DocumentSelector `json:"documentSelector"` -} - -// Unregistration general parameters to unregister a capability. -type Unregistration struct { - // ID is the id used to unregister the request or notification. Usually an id - // provided during the register request. - ID string `json:"id"` - - // Method is the method / capability to unregister for. - Method string `json:"method"` -} - -// UnregistrationParams params of Unregistration. -type UnregistrationParams struct { - Unregisterations []Unregistration `json:"unregisterations"` -} diff --git a/vendor/go.lsp.dev/protocol/selectionrange.go b/vendor/go.lsp.dev/protocol/selectionrange.go deleted file mode 100644 index c4cd169..0000000 --- a/vendor/go.lsp.dev/protocol/selectionrange.go +++ /dev/null @@ -1,110 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// SelectionRangeProviderOptions selection range provider options interface. -type SelectionRangeProviderOptions interface{} - -// SelectionRange represents a selection range represents a part of a selection hierarchy. -// -// A selection range may have a parent selection range that contains it. -// -// @since 3.15.0. -type SelectionRange struct { - // Range is the Range of this selection range. - Range Range `json:"range"` - - // Parent is the parent selection range containing this range. Therefore `parent.range` must contain this Range. - Parent *SelectionRange `json:"parent,omitempty"` -} - -// EnableSelectionRange is the whether the selection range. -type EnableSelectionRange bool - -// compile time check whether the EnableSelectionRange implements a SelectionRangeProviderOptions interface. -var _ SelectionRangeProviderOptions = (*EnableSelectionRange)(nil) - -// Value implements SelectionRangeProviderOptions interface. -func (v EnableSelectionRange) Value() interface{} { - return bool(v) -} - -// NewEnableSelectionRange returns the new EnableSelectionRange underlying types SelectionRangeProviderOptions. -func NewEnableSelectionRange(enable bool) SelectionRangeProviderOptions { - v := EnableSelectionRange(enable) - - return &v -} - -// SelectionRangeOptions is the server capability of selection range. -type SelectionRangeOptions struct { - WorkDoneProgressOptions -} - -// compile time check whether the EnableSelectionRange implements a SelectionRangeProviderOptions interface. -var _ SelectionRangeProviderOptions = (*EnableSelectionRange)(nil) - -// Value implements SelectionRangeProviderOptions interface. -func (v *SelectionRangeOptions) Value() interface{} { - return v -} - -// NewSelectionRangeOptions returns the new SelectionRangeOptions underlying types SelectionRangeProviderOptions. -func NewSelectionRangeOptions(enableWorkDoneProgress bool) SelectionRangeProviderOptions { - v := SelectionRangeOptions{ - WorkDoneProgressOptions: WorkDoneProgressOptions{ - WorkDoneProgress: enableWorkDoneProgress, - }, - } - - return &v -} - -// SelectionRangeRegistrationOptions is the server capability of selection range registration. -type SelectionRangeRegistrationOptions struct { - SelectionRangeOptions - TextDocumentRegistrationOptions - StaticRegistrationOptions -} - -// compile time check whether the SelectionRangeRegistrationOptions implements a SelectionRangeProviderOptions interface. -var _ SelectionRangeProviderOptions = (*SelectionRangeRegistrationOptions)(nil) - -// Value implements SelectionRangeProviderOptions interface. -func (v *SelectionRangeRegistrationOptions) Value() interface{} { - return v -} - -// NewSelectionRangeRegistrationOptions returns the new SelectionRangeRegistrationOptions underlying types SelectionRangeProviderOptions. -func NewSelectionRangeRegistrationOptions(enableWorkDoneProgress bool, selector DocumentSelector, id string) SelectionRangeProviderOptions { - v := SelectionRangeRegistrationOptions{ - SelectionRangeOptions: SelectionRangeOptions{ - WorkDoneProgressOptions: WorkDoneProgressOptions{ - WorkDoneProgress: enableWorkDoneProgress, - }, - }, - TextDocumentRegistrationOptions: TextDocumentRegistrationOptions{ - DocumentSelector: selector, - }, - StaticRegistrationOptions: StaticRegistrationOptions{ - ID: id, - }, - } - - return &v -} - -// SelectionRangeParams represents a parameter literal used in selection range requests. -// -// @since 3.15.0. -type SelectionRangeParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Positions is the positions inside the text document. - Positions []Position `json:"positions"` -} diff --git a/vendor/go.lsp.dev/protocol/semantic_token.go b/vendor/go.lsp.dev/protocol/semantic_token.go deleted file mode 100644 index c2d1f3a..0000000 --- a/vendor/go.lsp.dev/protocol/semantic_token.go +++ /dev/null @@ -1,179 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// SemanticTokenTypes represents a type of semantic token. -// -// @since 3.16.0. -type SemanticTokenTypes string - -// list of SemanticTokenTypes. -const ( - SemanticTokenNamespace SemanticTokenTypes = "namespace" - - // Represents a generic type. Acts as a fallback for types which - // can't be mapped to a specific type like class or enum. - SemanticTokenType SemanticTokenTypes = "type" - SemanticTokenClass SemanticTokenTypes = "class" - SemanticTokenEnum SemanticTokenTypes = "enum" - SemanticTokenInterface SemanticTokenTypes = "interface" - SemanticTokenStruct SemanticTokenTypes = "struct" - SemanticTokenTypeParameter SemanticTokenTypes = "typeParameter" - SemanticTokenParameter SemanticTokenTypes = "parameter" - SemanticTokenVariable SemanticTokenTypes = "variable" - SemanticTokenProperty SemanticTokenTypes = "property" - SemanticTokenEnumMember SemanticTokenTypes = "enumMember" - SemanticTokenEvent SemanticTokenTypes = "event" - SemanticTokenFunction SemanticTokenTypes = "function" - SemanticTokenMethod SemanticTokenTypes = "method" - SemanticTokenMacro SemanticTokenTypes = "macro" - SemanticTokenKeyword SemanticTokenTypes = "keyword" - SemanticTokenModifier SemanticTokenTypes = "modifier" - SemanticTokenComment SemanticTokenTypes = "comment" - SemanticTokenString SemanticTokenTypes = "string" - SemanticTokenNumber SemanticTokenTypes = "number" - SemanticTokenRegexp SemanticTokenTypes = "regexp" - SemanticTokenOperator SemanticTokenTypes = "operator" -) - -// SemanticTokenModifiers represents a modifiers of semantic token. -// -// @since 3.16.0. -type SemanticTokenModifiers string - -// list of SemanticTokenModifiers. -const ( - SemanticTokenModifierDeclaration SemanticTokenModifiers = "declaration" - SemanticTokenModifierDefinition SemanticTokenModifiers = "definition" - SemanticTokenModifierReadonly SemanticTokenModifiers = "readonly" - SemanticTokenModifierStatic SemanticTokenModifiers = "static" - SemanticTokenModifierDeprecated SemanticTokenModifiers = "deprecated" - SemanticTokenModifierAbstract SemanticTokenModifiers = "abstract" - SemanticTokenModifierAsync SemanticTokenModifiers = "async" - SemanticTokenModifierModification SemanticTokenModifiers = "modification" - SemanticTokenModifierDocumentation SemanticTokenModifiers = "documentation" - SemanticTokenModifierDefaultLibrary SemanticTokenModifiers = "defaultLibrary" -) - -// TokenFormat is an additional token format capability to allow future extensions of the format. -// -// @since 3.16.0. -type TokenFormat string - -// TokenFormatRelative described using relative positions. -const TokenFormatRelative TokenFormat = "relative" - -// SemanticTokensLegend is the on the capability level types and modifiers are defined using strings. -// -// However the real encoding happens using numbers. -// -// The server therefore needs to let the client know which numbers it is using for which types and modifiers. -// -// @since 3.16.0. -type SemanticTokensLegend struct { - // TokenTypes is the token types a server uses. - TokenTypes []SemanticTokenTypes `json:"tokenTypes"` - - // TokenModifiers is the token modifiers a server uses. - TokenModifiers []SemanticTokenModifiers `json:"tokenModifiers"` -} - -// SemanticTokensParams params for the SemanticTokensFull request. -// -// @since 3.16.0. -type SemanticTokensParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// SemanticTokens is the result of SemanticTokensFull request. -// -// @since 3.16.0. -type SemanticTokens struct { - // ResultID an optional result id. If provided and clients support delta updating - // the client will include the result id in the next semantic token request. - // - // A server can then instead of computing all semantic tokens again simply - // send a delta. - ResultID string `json:"resultId,omitempty"` - - // Data is the actual tokens. - Data []uint32 `json:"data"` -} - -// SemanticTokensPartialResult is the partial result of SemanticTokensFull request. -// -// @since 3.16.0. -type SemanticTokensPartialResult struct { - // Data is the actual tokens. - Data []uint32 `json:"data"` -} - -// SemanticTokensDeltaParams params for the SemanticTokensFullDelta request. -// -// @since 3.16.0. -type SemanticTokensDeltaParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // PreviousResultID is the result id of a previous response. - // - // The result Id can either point to a full response or a delta response depending on what was received last. - PreviousResultID string `json:"previousResultId"` -} - -// SemanticTokensDelta result of SemanticTokensFullDelta request. -// -// @since 3.16.0. -type SemanticTokensDelta struct { - // ResultID is the result id. - // - // This field is readonly. - ResultID string `json:"resultId,omitempty"` - - // Edits is the semantic token edits to transform a previous result into a new - // result. - Edits []SemanticTokensEdit `json:"edits"` -} - -// SemanticTokensDeltaPartialResult is the partial result of SemanticTokensFullDelta request. -// -// @since 3.16.0. -type SemanticTokensDeltaPartialResult struct { - Edits []SemanticTokensEdit `json:"edits"` -} - -// SemanticTokensEdit is the semantic token edit. -// -// @since 3.16.0. -type SemanticTokensEdit struct { - // Start is the start offset of the edit. - Start uint32 `json:"start"` - - // DeleteCount is the count of elements to remove. - DeleteCount uint32 `json:"deleteCount"` - - // Data is the elements to insert. - Data []uint32 `json:"data,omitempty"` -} - -// SemanticTokensRangeParams params for the SemanticTokensRange request. -// -// @since 3.16.0. -type SemanticTokensRangeParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Range is the range the semantic tokens are requested for. - Range Range `json:"range"` -} diff --git a/vendor/go.lsp.dev/protocol/server.go b/vendor/go.lsp.dev/protocol/server.go deleted file mode 100644 index 6f96161..0000000 --- a/vendor/go.lsp.dev/protocol/server.go +++ /dev/null @@ -1,1892 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "bytes" - "context" - "fmt" - - "github.com/segmentio/encoding/json" - "go.uber.org/zap" - - "go.lsp.dev/jsonrpc2" - "go.lsp.dev/pkg/xcontext" -) - -// ServerDispatcher returns a Server that dispatches LSP requests across the -// given jsonrpc2 connection. -func ServerDispatcher(conn jsonrpc2.Conn, logger *zap.Logger) Server { - return &server{ - Conn: conn, - logger: logger, - } -} - -// ServerHandler jsonrpc2.Handler of Language Server Prococol Server. -//nolint:unparam -func ServerHandler(server Server, handler jsonrpc2.Handler) jsonrpc2.Handler { - h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { - if ctx.Err() != nil { - xctx := xcontext.Detach(ctx) - - return reply(xctx, nil, ErrRequestCancelled) - } - handled, err := serverDispatch(ctx, server, reply, req) - if handled || err != nil { - return err - } - - // TODO: This code is wrong, it ignores handler and assumes non standard - // request handles everything - // non standard request should just be a layered handler. - var params interface{} - if err := json.Unmarshal(req.Params(), ¶ms); err != nil { - return replyParseError(ctx, reply, err) - } - - resp, err := server.Request(ctx, req.Method(), params) - - return reply(ctx, resp, err) - } - - return h -} - -// serverDispatch implements jsonrpc2.Handler. -//nolint:gocognit,funlen,gocyclo,cyclop -func serverDispatch(ctx context.Context, server Server, reply jsonrpc2.Replier, req jsonrpc2.Request) (handled bool, err error) { - if ctx.Err() != nil { - return true, reply(ctx, nil, ErrRequestCancelled) - } - - dec := json.NewDecoder(bytes.NewReader(req.Params())) - logger := LoggerFromContext(ctx) - - switch req.Method() { - case MethodInitialize: // request - defer logger.Debug(MethodInitialize, zap.Error(err)) - - var params InitializeParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Initialize(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodInitialized: // notification - defer logger.Debug(MethodInitialized, zap.Error(err)) - - var params InitializedParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.Initialized(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodShutdown: // request - defer logger.Debug(MethodShutdown, zap.Error(err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - err := server.Shutdown(ctx) - - return true, reply(ctx, nil, err) - - case MethodExit: // notification - defer logger.Debug(MethodExit, zap.Error(err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - err := server.Exit(ctx) - - return true, reply(ctx, nil, err) - - case MethodWorkDoneProgressCancel: // notification - defer logger.Debug(MethodWorkDoneProgressCancel, zap.Error(err)) - - var params WorkDoneProgressCancelParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.WorkDoneProgressCancel(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodLogTrace: // notification - defer logger.Debug(MethodLogTrace, zap.Error(err)) - - var params LogTraceParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.LogTrace(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodSetTrace: // notification - defer logger.Debug(MethodSetTrace, zap.Error(err)) - - var params SetTraceParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.SetTrace(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentCodeAction: // request - defer logger.Debug(MethodTextDocumentCodeAction, zap.Error(err)) - - var params CodeActionParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.CodeAction(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentCodeLens: // request - defer logger.Debug(MethodTextDocumentCodeLens, zap.Error(err)) - - var params CodeLensParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.CodeLens(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodCodeLensResolve: // request - defer logger.Debug(MethodCodeLensResolve, zap.Error(err)) - - var params CodeLens - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.CodeLensResolve(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentColorPresentation: // request - defer logger.Debug(MethodTextDocumentColorPresentation, zap.Error(err)) - - var params ColorPresentationParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.ColorPresentation(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentCompletion: // request - defer logger.Debug(MethodTextDocumentCompletion, zap.Error(err)) - - var params CompletionParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Completion(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodCompletionItemResolve: // request - defer logger.Debug(MethodCompletionItemResolve, zap.Error(err)) - - var params CompletionItem - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.CompletionResolve(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDeclaration: // request - defer logger.Debug(MethodTextDocumentDeclaration, zap.Error(err)) - - var params DeclarationParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Declaration(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDefinition: // request - defer logger.Debug(MethodTextDocumentDefinition, zap.Error(err)) - - var params DefinitionParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Definition(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDidChange: // notification - defer logger.Debug(MethodTextDocumentDidChange, zap.Error(err)) - - var params DidChangeTextDocumentParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidChange(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWorkspaceDidChangeConfiguration: // notification - defer logger.Debug(MethodWorkspaceDidChangeConfiguration, zap.Error(err)) - - var params DidChangeConfigurationParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidChangeConfiguration(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWorkspaceDidChangeWatchedFiles: // notification - defer logger.Debug(MethodWorkspaceDidChangeWatchedFiles, zap.Error(err)) - - var params DidChangeWatchedFilesParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidChangeWatchedFiles(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWorkspaceDidChangeWorkspaceFolders: // notification - defer logger.Debug(MethodWorkspaceDidChangeWorkspaceFolders, zap.Error(err)) - - var params DidChangeWorkspaceFoldersParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidChangeWorkspaceFolders(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentDidClose: // notification - defer logger.Debug(MethodTextDocumentDidClose, zap.Error(err)) - - var params DidCloseTextDocumentParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidClose(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentDidOpen: // notification - defer logger.Debug(MethodTextDocumentDidOpen, zap.Error(err)) - - var params DidOpenTextDocumentParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidOpen(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentDidSave: // notification - defer logger.Debug(MethodTextDocumentDidSave, zap.Error(err)) - - var params DidSaveTextDocumentParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidSave(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentDocumentColor: // request - defer logger.Debug(MethodTextDocumentDocumentColor, zap.Error(err)) - - var params DocumentColorParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentColor(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDocumentHighlight: // request - defer logger.Debug(MethodTextDocumentDocumentHighlight, zap.Error(err)) - - var params DocumentHighlightParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentHighlight(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDocumentLink: // request - defer logger.Debug(MethodTextDocumentDocumentLink, zap.Error(err)) - - var params DocumentLinkParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentLink(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodDocumentLinkResolve: // request - defer logger.Debug(MethodDocumentLinkResolve, zap.Error(err)) - - var params DocumentLink - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentLinkResolve(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDocumentSymbol: // request - defer logger.Debug(MethodTextDocumentDocumentSymbol, zap.Error(err)) - - var params DocumentSymbolParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentSymbol(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodWorkspaceExecuteCommand: // request - defer logger.Debug(MethodWorkspaceExecuteCommand, zap.Error(err)) - - var params ExecuteCommandParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.ExecuteCommand(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentFoldingRange: // request - defer logger.Debug(MethodTextDocumentFoldingRange, zap.Error(err)) - - var params FoldingRangeParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.FoldingRanges(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentFormatting: // request - defer logger.Debug(MethodTextDocumentFormatting, zap.Error(err)) - - var params DocumentFormattingParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Formatting(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentHover: // request - defer logger.Debug(MethodTextDocumentHover, zap.Error(err)) - - var params HoverParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Hover(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentImplementation: // request - defer logger.Debug(MethodTextDocumentImplementation, zap.Error(err)) - - var params ImplementationParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Implementation(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentOnTypeFormatting: // request - defer logger.Debug(MethodTextDocumentOnTypeFormatting, zap.Error(err)) - - var params DocumentOnTypeFormattingParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.OnTypeFormatting(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentPrepareRename: // request - defer logger.Debug(MethodTextDocumentPrepareRename, zap.Error(err)) - - var params PrepareRenameParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.PrepareRename(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentRangeFormatting: // request - defer logger.Debug(MethodTextDocumentRangeFormatting, zap.Error(err)) - - var params DocumentRangeFormattingParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.RangeFormatting(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentReferences: // request - defer logger.Debug(MethodTextDocumentReferences, zap.Error(err)) - - var params ReferenceParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.References(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentRename: // request - defer logger.Debug(MethodTextDocumentRename, zap.Error(err)) - - var params RenameParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Rename(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentSignatureHelp: // request - defer logger.Debug(MethodTextDocumentSignatureHelp, zap.Error(err)) - - var params SignatureHelpParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.SignatureHelp(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodWorkspaceSymbol: // request - defer logger.Debug(MethodWorkspaceSymbol, zap.Error(err)) - - var params WorkspaceSymbolParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Symbols(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentTypeDefinition: // request - defer logger.Debug(MethodTextDocumentTypeDefinition, zap.Error(err)) - - var params TypeDefinitionParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.TypeDefinition(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentWillSave: // notification - defer logger.Debug(MethodTextDocumentWillSave, zap.Error(err)) - - var params WillSaveTextDocumentParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.WillSave(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentWillSaveWaitUntil: // request - defer logger.Debug(MethodTextDocumentWillSaveWaitUntil, zap.Error(err)) - - var params WillSaveTextDocumentParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.WillSaveWaitUntil(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodShowDocument: // request - defer logger.Debug(MethodShowDocument, zap.Error(err)) - - var params ShowDocumentParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.ShowDocument(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodWillCreateFiles: // request - defer logger.Debug(MethodWillCreateFiles, zap.Error(err)) - - var params CreateFilesParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.WillCreateFiles(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodDidCreateFiles: // notification - defer logger.Debug(MethodDidCreateFiles, zap.Error(err)) - - var params CreateFilesParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidCreateFiles(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWillRenameFiles: // request - defer logger.Debug(MethodWillRenameFiles, zap.Error(err)) - - var params RenameFilesParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.WillRenameFiles(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodDidRenameFiles: // notification - defer logger.Debug(MethodDidRenameFiles, zap.Error(err)) - - var params RenameFilesParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidRenameFiles(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodWillDeleteFiles: // request - defer logger.Debug(MethodWillDeleteFiles, zap.Error(err)) - - var params DeleteFilesParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.WillDeleteFiles(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodDidDeleteFiles: // notification - defer logger.Debug(MethodDidDeleteFiles, zap.Error(err)) - - var params DeleteFilesParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidDeleteFiles(ctx, ¶ms) - - return true, reply(ctx, nil, err) - - case MethodCodeLensRefresh: // request - defer logger.Debug(MethodCodeLensRefresh, zap.Error(err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - err := server.CodeLensRefresh(ctx) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentPrepareCallHierarchy: // request - defer logger.Debug(MethodTextDocumentPrepareCallHierarchy, zap.Error(err)) - - var params CallHierarchyPrepareParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.PrepareCallHierarchy(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodCallHierarchyIncomingCalls: // request - defer logger.Debug(MethodCallHierarchyIncomingCalls, zap.Error(err)) - - var params CallHierarchyIncomingCallsParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.IncomingCalls(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodCallHierarchyOutgoingCalls: // request - defer logger.Debug(MethodCallHierarchyOutgoingCalls, zap.Error(err)) - - var params CallHierarchyOutgoingCallsParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.OutgoingCalls(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodSemanticTokensFull: // request - defer logger.Debug(MethodSemanticTokensFull, zap.Error(err)) - - var params SemanticTokensParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.SemanticTokensFull(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodSemanticTokensFullDelta: // request - defer logger.Debug(MethodSemanticTokensFullDelta, zap.Error(err)) - - var params SemanticTokensDeltaParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.SemanticTokensFullDelta(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodSemanticTokensRange: // request - defer logger.Debug(MethodSemanticTokensRange, zap.Error(err)) - - var params SemanticTokensRangeParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.SemanticTokensRange(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodSemanticTokensRefresh: // request - defer logger.Debug(MethodSemanticTokensRefresh, zap.Error(err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - err := server.SemanticTokensRefresh(ctx) - - return true, reply(ctx, nil, err) - - case MethodLinkedEditingRange: // request - defer logger.Debug(MethodLinkedEditingRange, zap.Error(err)) - - var params LinkedEditingRangeParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.LinkedEditingRange(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - case MethodMoniker: // request - defer logger.Debug(MethodMoniker, zap.Error(err)) - - var params MonikerParams - if err := dec.Decode(¶ms); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Moniker(ctx, ¶ms) - - return true, reply(ctx, resp, err) - - default: - return false, nil - } -} - -// Server represents a Language Server Protocol server. -type Server interface { - Initialize(ctx context.Context, params *InitializeParams) (result *InitializeResult, err error) - Initialized(ctx context.Context, params *InitializedParams) (err error) - Shutdown(ctx context.Context) (err error) - Exit(ctx context.Context) (err error) - WorkDoneProgressCancel(ctx context.Context, params *WorkDoneProgressCancelParams) (err error) - LogTrace(ctx context.Context, params *LogTraceParams) (err error) - SetTrace(ctx context.Context, params *SetTraceParams) (err error) - CodeAction(ctx context.Context, params *CodeActionParams) (result []CodeAction, err error) - CodeLens(ctx context.Context, params *CodeLensParams) (result []CodeLens, err error) - CodeLensResolve(ctx context.Context, params *CodeLens) (result *CodeLens, err error) - ColorPresentation(ctx context.Context, params *ColorPresentationParams) (result []ColorPresentation, err error) - Completion(ctx context.Context, params *CompletionParams) (result *CompletionList, err error) - CompletionResolve(ctx context.Context, params *CompletionItem) (result *CompletionItem, err error) - Declaration(ctx context.Context, params *DeclarationParams) (result []Location /* Declaration | DeclarationLink[] | null */, err error) - Definition(ctx context.Context, params *DefinitionParams) (result []Location /* Definition | DefinitionLink[] | null */, err error) - DidChange(ctx context.Context, params *DidChangeTextDocumentParams) (err error) - DidChangeConfiguration(ctx context.Context, params *DidChangeConfigurationParams) (err error) - DidChangeWatchedFiles(ctx context.Context, params *DidChangeWatchedFilesParams) (err error) - DidChangeWorkspaceFolders(ctx context.Context, params *DidChangeWorkspaceFoldersParams) (err error) - DidClose(ctx context.Context, params *DidCloseTextDocumentParams) (err error) - DidOpen(ctx context.Context, params *DidOpenTextDocumentParams) (err error) - DidSave(ctx context.Context, params *DidSaveTextDocumentParams) (err error) - DocumentColor(ctx context.Context, params *DocumentColorParams) (result []ColorInformation, err error) - DocumentHighlight(ctx context.Context, params *DocumentHighlightParams) (result []DocumentHighlight, err error) - DocumentLink(ctx context.Context, params *DocumentLinkParams) (result []DocumentLink, err error) - DocumentLinkResolve(ctx context.Context, params *DocumentLink) (result *DocumentLink, err error) - DocumentSymbol(ctx context.Context, params *DocumentSymbolParams) (result []interface{} /* []SymbolInformation | []DocumentSymbol */, err error) - ExecuteCommand(ctx context.Context, params *ExecuteCommandParams) (result interface{}, err error) - FoldingRanges(ctx context.Context, params *FoldingRangeParams) (result []FoldingRange, err error) - Formatting(ctx context.Context, params *DocumentFormattingParams) (result []TextEdit, err error) - Hover(ctx context.Context, params *HoverParams) (result *Hover, err error) - Implementation(ctx context.Context, params *ImplementationParams) (result []Location, err error) - OnTypeFormatting(ctx context.Context, params *DocumentOnTypeFormattingParams) (result []TextEdit, err error) - PrepareRename(ctx context.Context, params *PrepareRenameParams) (result *Range, err error) - RangeFormatting(ctx context.Context, params *DocumentRangeFormattingParams) (result []TextEdit, err error) - References(ctx context.Context, params *ReferenceParams) (result []Location, err error) - Rename(ctx context.Context, params *RenameParams) (result *WorkspaceEdit, err error) - SignatureHelp(ctx context.Context, params *SignatureHelpParams) (result *SignatureHelp, err error) - Symbols(ctx context.Context, params *WorkspaceSymbolParams) (result []SymbolInformation, err error) - TypeDefinition(ctx context.Context, params *TypeDefinitionParams) (result []Location, err error) - WillSave(ctx context.Context, params *WillSaveTextDocumentParams) (err error) - WillSaveWaitUntil(ctx context.Context, params *WillSaveTextDocumentParams) (result []TextEdit, err error) - ShowDocument(ctx context.Context, params *ShowDocumentParams) (result *ShowDocumentResult, err error) - WillCreateFiles(ctx context.Context, params *CreateFilesParams) (result *WorkspaceEdit, err error) - DidCreateFiles(ctx context.Context, params *CreateFilesParams) (err error) - WillRenameFiles(ctx context.Context, params *RenameFilesParams) (result *WorkspaceEdit, err error) - DidRenameFiles(ctx context.Context, params *RenameFilesParams) (err error) - WillDeleteFiles(ctx context.Context, params *DeleteFilesParams) (result *WorkspaceEdit, err error) - DidDeleteFiles(ctx context.Context, params *DeleteFilesParams) (err error) - CodeLensRefresh(ctx context.Context) (err error) - PrepareCallHierarchy(ctx context.Context, params *CallHierarchyPrepareParams) (result []CallHierarchyItem, err error) - IncomingCalls(ctx context.Context, params *CallHierarchyIncomingCallsParams) (result []CallHierarchyIncomingCall, err error) - OutgoingCalls(ctx context.Context, params *CallHierarchyOutgoingCallsParams) (result []CallHierarchyOutgoingCall, err error) - SemanticTokensFull(ctx context.Context, params *SemanticTokensParams) (result *SemanticTokens, err error) - SemanticTokensFullDelta(ctx context.Context, params *SemanticTokensDeltaParams) (result interface{} /* SemanticTokens | SemanticTokensDelta */, err error) - SemanticTokensRange(ctx context.Context, params *SemanticTokensRangeParams) (result *SemanticTokens, err error) - SemanticTokensRefresh(ctx context.Context) (err error) - LinkedEditingRange(ctx context.Context, params *LinkedEditingRangeParams) (result *LinkedEditingRanges, err error) - Moniker(ctx context.Context, params *MonikerParams) (result []Moniker, err error) - Request(ctx context.Context, method string, params interface{}) (result interface{}, err error) -} - -// list of server methods. -const ( - // MethodCancelRequest method name of "$/cancelRequest". - MethodCancelRequest = "$/cancelRequest" - - // MethodInitialize method name of "initialize". - MethodInitialize = "initialize" - - // MethodInitialized method name of "initialized". - MethodInitialized = "initialized" - - // MethodShutdown method name of "shutdown". - MethodShutdown = "shutdown" - - // MethodExit method name of "exit". - MethodExit = "exit" - - // MethodWorkDoneProgressCancel method name of "window/workDoneProgress/cancel". - MethodWorkDoneProgressCancel = "window/workDoneProgress/cancel" - - // MethodLogTrace method name of "$/logTrace". - MethodLogTrace = "$/logTrace" - - // MethodSetTrace method name of "$/setTrace". - MethodSetTrace = "$/setTrace" - - // MethodTextDocumentCodeAction method name of "textDocument/codeAction". - MethodTextDocumentCodeAction = "textDocument/codeAction" - - // MethodTextDocumentCodeLens method name of "textDocument/codeLens". - MethodTextDocumentCodeLens = "textDocument/codeLens" - - // MethodCodeLensResolve method name of "codeLens/resolve". - MethodCodeLensResolve = "codeLens/resolve" - - // MethodTextDocumentColorPresentation method name of "textDocument/colorPresentation". - MethodTextDocumentColorPresentation = "textDocument/colorPresentation" - - // MethodTextDocumentCompletion method name of "textDocument/completion". - MethodTextDocumentCompletion = "textDocument/completion" - - // MethodCompletionItemResolve method name of "completionItem/resolve". - MethodCompletionItemResolve = "completionItem/resolve" - - // MethodTextDocumentDeclaration method name of "textDocument/declaration". - MethodTextDocumentDeclaration = "textDocument/declaration" - - // MethodTextDocumentDefinition method name of "textDocument/definition". - MethodTextDocumentDefinition = "textDocument/definition" - - // MethodTextDocumentDidChange method name of "textDocument/didChange". - MethodTextDocumentDidChange = "textDocument/didChange" - - // MethodWorkspaceDidChangeConfiguration method name of "workspace/didChangeConfiguration". - MethodWorkspaceDidChangeConfiguration = "workspace/didChangeConfiguration" - - // MethodWorkspaceDidChangeWatchedFiles method name of "workspace/didChangeWatchedFiles". - MethodWorkspaceDidChangeWatchedFiles = "workspace/didChangeWatchedFiles" - - // MethodWorkspaceDidChangeWorkspaceFolders method name of "workspace/didChangeWorkspaceFolders". - MethodWorkspaceDidChangeWorkspaceFolders = "workspace/didChangeWorkspaceFolders" - - // MethodTextDocumentDidClose method name of "textDocument/didClose". - MethodTextDocumentDidClose = "textDocument/didClose" - - // MethodTextDocumentDidOpen method name of "textDocument/didOpen". - MethodTextDocumentDidOpen = "textDocument/didOpen" - - // MethodTextDocumentDidSave method name of "textDocument/didSave". - MethodTextDocumentDidSave = "textDocument/didSave" - - // MethodTextDocumentDocumentColor method name of"textDocument/documentColor". - MethodTextDocumentDocumentColor = "textDocument/documentColor" - - // MethodTextDocumentDocumentHighlight method name of "textDocument/documentHighlight". - MethodTextDocumentDocumentHighlight = "textDocument/documentHighlight" - - // MethodTextDocumentDocumentLink method name of "textDocument/documentLink". - MethodTextDocumentDocumentLink = "textDocument/documentLink" - - // MethodDocumentLinkResolve method name of "documentLink/resolve". - MethodDocumentLinkResolve = "documentLink/resolve" - - // MethodTextDocumentDocumentSymbol method name of "textDocument/documentSymbol". - MethodTextDocumentDocumentSymbol = "textDocument/documentSymbol" - - // MethodWorkspaceExecuteCommand method name of "workspace/executeCommand". - MethodWorkspaceExecuteCommand = "workspace/executeCommand" - - // MethodTextDocumentFoldingRange method name of "textDocument/foldingRange". - MethodTextDocumentFoldingRange = "textDocument/foldingRange" - - // MethodTextDocumentFormatting method name of "textDocument/formatting". - MethodTextDocumentFormatting = "textDocument/formatting" - - // MethodTextDocumentHover method name of "textDocument/hover". - MethodTextDocumentHover = "textDocument/hover" - - // MethodTextDocumentImplementation method name of "textDocument/implementation". - MethodTextDocumentImplementation = "textDocument/implementation" - - // MethodTextDocumentOnTypeFormatting method name of "textDocument/onTypeFormatting". - MethodTextDocumentOnTypeFormatting = "textDocument/onTypeFormatting" - - // MethodTextDocumentPrepareRename method name of "textDocument/prepareRename". - MethodTextDocumentPrepareRename = "textDocument/prepareRename" - - // MethodTextDocumentRangeFormatting method name of "textDocument/rangeFormatting". - MethodTextDocumentRangeFormatting = "textDocument/rangeFormatting" - - // MethodTextDocumentReferences method name of "textDocument/references". - MethodTextDocumentReferences = "textDocument/references" - - // MethodTextDocumentRename method name of "textDocument/rename". - MethodTextDocumentRename = "textDocument/rename" - - // MethodTextDocumentSignatureHelp method name of "textDocument/signatureHelp". - MethodTextDocumentSignatureHelp = "textDocument/signatureHelp" - - // MethodWorkspaceSymbol method name of "workspace/symbol". - MethodWorkspaceSymbol = "workspace/symbol" - - // MethodTextDocumentTypeDefinition method name of "textDocument/typeDefinition". - MethodTextDocumentTypeDefinition = "textDocument/typeDefinition" - - // MethodTextDocumentWillSave method name of "textDocument/willSave". - MethodTextDocumentWillSave = "textDocument/willSave" - - // MethodTextDocumentWillSaveWaitUntil method name of "textDocument/willSaveWaitUntil". - MethodTextDocumentWillSaveWaitUntil = "textDocument/willSaveWaitUntil" - - // MethodShowDocument method name of "window/showDocument". - MethodShowDocument = "window/showDocument" - - // MethodWillCreateFiles method name of "workspace/willCreateFiles". - MethodWillCreateFiles = "workspace/willCreateFiles" - - // MethodDidCreateFiles method name of "workspace/didCreateFiles". - MethodDidCreateFiles = "workspace/didCreateFiles" - - // MethodWillRenameFiles method name of "workspace/willRenameFiles". - MethodWillRenameFiles = "workspace/willRenameFiles" - - // MethodDidRenameFiles method name of "workspace/didRenameFiles". - MethodDidRenameFiles = "workspace/didRenameFiles" - - // MethodWillDeleteFiles method name of "workspace/willDeleteFiles". - MethodWillDeleteFiles = "workspace/willDeleteFiles" - - // MethodDidDeleteFiles method name of "workspace/didDeleteFiles". - MethodDidDeleteFiles = "workspace/didDeleteFiles" - - // MethodCodeLensRefresh method name of "workspace/codeLens/refresh". - MethodCodeLensRefresh = "workspace/codeLens/refresh" - - // MethodTextDocumentPrepareCallHierarchy method name of "textDocument/prepareCallHierarchy". - MethodTextDocumentPrepareCallHierarchy = "textDocument/prepareCallHierarchy" - - // MethodCallHierarchyIncomingCalls method name of "callHierarchy/incomingCalls". - MethodCallHierarchyIncomingCalls = "callHierarchy/incomingCalls" - - // MethodCallHierarchyOutgoingCalls method name of "callHierarchy/outgoingCalls". - MethodCallHierarchyOutgoingCalls = "callHierarchy/outgoingCalls" - - // MethodSemanticTokensFull method name of "textDocument/semanticTokens/full". - MethodSemanticTokensFull = "textDocument/semanticTokens/full" - - // MethodSemanticTokensFullDelta method name of "textDocument/semanticTokens/full/delta". - MethodSemanticTokensFullDelta = "textDocument/semanticTokens/full/delta" - - // MethodSemanticTokensRange method name of "textDocument/semanticTokens/range". - MethodSemanticTokensRange = "textDocument/semanticTokens/range" - - // MethodSemanticTokensRefresh method name of "workspace/semanticTokens/refresh". - MethodSemanticTokensRefresh = "workspace/semanticTokens/refresh" - - // MethodLinkedEditingRange method name of "textDocument/linkedEditingRange". - MethodLinkedEditingRange = "textDocument/linkedEditingRange" - - // MethodMoniker method name of "textDocument/moniker". - MethodMoniker = "textDocument/moniker" -) - -// server implements a Language Server Protocol server. -type server struct { - jsonrpc2.Conn - - logger *zap.Logger -} - -var _ Server = (*server)(nil) - -// Initialize sents the request as the first request from the client to the server. -// -// If the server receives a request or notification before the initialize request it should act as follows: -// -// - For a request the response should be an error with code: -32002. The message can be picked by the server. -// - Notifications should be dropped, except for the exit notification. This will allow the exit of a server without an initialize request. -// -// Until the server has responded to the initialize request with an InitializeResult, the client -// must not send any additional requests or notifications to the server. -// In addition the server is not allowed to send any requests or notifications to the client until -// it has responded with an InitializeResult, with the exception that during the initialize request -// the server is allowed to send the notifications window/showMessage, window/logMessage and telemetry/event -// as well as the window/showMessageRequest request to the client. -func (s *server) Initialize(ctx context.Context, params *InitializeParams) (_ *InitializeResult, err error) { - s.logger.Debug("call " + MethodInitialize) - defer s.logger.Debug("end "+MethodInitialize, zap.Error(err)) - - var result *InitializeResult - if err := Call(ctx, s.Conn, MethodInitialize, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Initialized sends the notification from the client to the server after the client received the result of the -// initialize request but before the client is sending any other request or notification to the server. -// -// The server can use the initialized notification for example to dynamically register capabilities. -// The initialized notification may only be sent once. -func (s *server) Initialized(ctx context.Context, params *InitializedParams) (err error) { - s.logger.Debug("notify " + MethodInitialized) - defer s.logger.Debug("end "+MethodInitialized, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodInitialized, params) -} - -// Shutdown sents the request from the client to the server. -// -// It asks the server to shut down, but to not exit (otherwise the response might not be delivered correctly to the client). -// There is a separate exit notification that asks the server to exit. -// -// Clients must not sent any notifications other than `exit` or requests to a server to which they have sent a shutdown requests. -// If a server receives requests after a shutdown request those requests should be errored with `InvalidRequest`. -func (s *server) Shutdown(ctx context.Context) (err error) { - s.logger.Debug("call " + MethodShutdown) - defer s.logger.Debug("end "+MethodShutdown, zap.Error(err)) - - return Call(ctx, s.Conn, MethodShutdown, nil, nil) -} - -// Exit a notification to ask the server to exit its process. -// -// The server should exit with success code 0 if the shutdown request has been received before; otherwise with error code 1. -func (s *server) Exit(ctx context.Context) (err error) { - s.logger.Debug("notify " + MethodExit) - defer s.logger.Debug("end "+MethodExit, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodExit, nil) -} - -// LogTrace a notification to log the trace of the server’s execution. -// -// The amount and content of these notifications depends on the current trace configuration. -// -// If trace is "off", the server should not send any logTrace notification. If trace is "message", -// the server should not add the "verbose" field in the LogTraceParams. -// -// @since 3.16.0. -func (s *server) LogTrace(ctx context.Context, params *LogTraceParams) (err error) { - s.logger.Debug("notify " + MethodLogTrace) - defer s.logger.Debug("end "+MethodLogTrace, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodLogTrace, params) -} - -// SetTrace a notification that should be used by the client to modify the trace setting of the server. -// -// @since 3.16.0. -func (s *server) SetTrace(ctx context.Context, params *SetTraceParams) (err error) { - s.logger.Debug("notify " + MethodSetTrace) - defer s.logger.Debug("end "+MethodSetTrace, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodSetTrace, params) -} - -// WorkDoneProgressCancel is the sends notification from the client to the server to cancel a progress initiated on the -// server side using the "window/workDoneProgress/create". -func (s *server) WorkDoneProgressCancel(ctx context.Context, params *WorkDoneProgressCancelParams) (err error) { - s.logger.Debug("call " + MethodWorkDoneProgressCancel) - defer s.logger.Debug("end "+MethodWorkDoneProgressCancel, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodWorkDoneProgressCancel, params) -} - -// CodeAction sends the request is from the client to the server to compute commands for a given text document and range. -// -// These commands are typically code fixes to either fix problems or to beautify/refactor code. The result of a `textDocument/codeAction` -// request is an array of `Command` literals which are typically presented in the user interface. -// -// To ensure that a server is useful in many clients the commands specified in a code actions should be handled by the -// server and not by the client (see `workspace/executeCommand` and `ServerCapabilities.executeCommandProvider`). -// If the client supports providing edits with a code action then the mode should be used. -func (s *server) CodeAction(ctx context.Context, params *CodeActionParams) (result []CodeAction, err error) { - s.logger.Debug("call " + MethodTextDocumentCodeAction) - defer s.logger.Debug("end "+MethodTextDocumentCodeAction, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentCodeAction, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// CodeLens sends the request from the client to the server to compute code lenses for a given text document. -func (s *server) CodeLens(ctx context.Context, params *CodeLensParams) (result []CodeLens, err error) { - s.logger.Debug("call " + MethodTextDocumentCodeLens) - defer s.logger.Debug("end "+MethodTextDocumentCodeLens, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentCodeLens, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// CodeLensResolve sends the request from the client to the server to resolve the command for a given code lens item. -func (s *server) CodeLensResolve(ctx context.Context, params *CodeLens) (_ *CodeLens, err error) { - s.logger.Debug("call " + MethodCodeLensResolve) - defer s.logger.Debug("end "+MethodCodeLensResolve, zap.Error(err)) - - var result *CodeLens - if err := Call(ctx, s.Conn, MethodCodeLensResolve, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// ColorPresentation sends the request from the client to the server to obtain a list of presentations for a color value at a given location. -// -// Clients can use the result to -// -// - modify a color reference. -// - show in a color picker and let users pick one of the presentations. -func (s *server) ColorPresentation(ctx context.Context, params *ColorPresentationParams) (result []ColorPresentation, err error) { - s.logger.Debug("call " + MethodTextDocumentColorPresentation) - defer s.logger.Debug("end "+MethodTextDocumentColorPresentation, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentColorPresentation, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Completion sends the request from the client to the server to compute completion items at a given cursor position. -// -// Completion items are presented in the IntelliSense user interface. -// If computing full completion items is expensive, servers can additionally provide a handler for the completion item resolve request (‘completionItem/resolve’). -// -// This request is sent when a completion item is selected in the user interface. -// A typical use case is for example: the ‘textDocument/completion’ request doesn’t fill in the documentation property -// for returned completion items since it is expensive to compute. When the item is selected in the user interface then -// a ‘completionItem/resolve’ request is sent with the selected completion item as a parameter. -// -// The returned completion item should have the documentation property filled in. The request can delay the computation of -// the `detail` and `documentation` properties. However, properties that are needed for the initial sorting and filtering, -// like `sortText`, `filterText`, `insertText`, and `textEdit` must be provided in the `textDocument/completion` response and must not be changed during resolve. -func (s *server) Completion(ctx context.Context, params *CompletionParams) (_ *CompletionList, err error) { - s.logger.Debug("call " + MethodTextDocumentCompletion) - defer s.logger.Debug("end "+MethodTextDocumentCompletion, zap.Error(err)) - - var result *CompletionList - if err := Call(ctx, s.Conn, MethodTextDocumentCompletion, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// CompletionResolve sends the request from the client to the server to resolve additional information for a given completion item. -func (s *server) CompletionResolve(ctx context.Context, params *CompletionItem) (_ *CompletionItem, err error) { - s.logger.Debug("call " + MethodCompletionItemResolve) - defer s.logger.Debug("end "+MethodCompletionItemResolve, zap.Error(err)) - - var result *CompletionItem - if err := Call(ctx, s.Conn, MethodCompletionItemResolve, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Declaration sends the request from the client to the server to resolve the declaration location of a symbol at a given text document position. -// -// The result type LocationLink[] got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.declaration.linkSupport`. -// -// @since 3.14.0. -func (s *server) Declaration(ctx context.Context, params *DeclarationParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentDeclaration) - defer s.logger.Debug("end "+MethodTextDocumentDeclaration, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDeclaration, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Definition sends the request from the client to the server to resolve the definition location of a symbol at a given text document position. -// -// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.definition.linkSupport`. -// -// @since 3.14.0. -func (s *server) Definition(ctx context.Context, params *DefinitionParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentDefinition) - defer s.logger.Debug("end "+MethodTextDocumentDefinition, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDefinition, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DidChange sends the notification from the client to the server to signal changes to a text document. -// -// In 2.0 the shape of the params has changed to include proper version numbers and language ids. -func (s *server) DidChange(ctx context.Context, params *DidChangeTextDocumentParams) (err error) { - s.logger.Debug("notify " + MethodTextDocumentDidChange) - defer s.logger.Debug("end "+MethodTextDocumentDidChange, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodTextDocumentDidChange, params) -} - -// DidChangeConfiguration sends the notification from the client to the server to signal the change of configuration settings. -func (s *server) DidChangeConfiguration(ctx context.Context, params *DidChangeConfigurationParams) (err error) { - s.logger.Debug("call " + MethodWorkspaceDidChangeConfiguration) - defer s.logger.Debug("end "+MethodWorkspaceDidChangeConfiguration, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodWorkspaceDidChangeConfiguration, params) -} - -// DidChangeWatchedFiles sends the notification from the client to the server when the client detects changes to files watched by the language client. -// -// It is recommended that servers register for these file events using the registration mechanism. -// In former implementations clients pushed file events without the server actively asking for it. -func (s *server) DidChangeWatchedFiles(ctx context.Context, params *DidChangeWatchedFilesParams) (err error) { - s.logger.Debug("call " + MethodWorkspaceDidChangeWatchedFiles) - defer s.logger.Debug("end "+MethodWorkspaceDidChangeWatchedFiles, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodWorkspaceDidChangeWatchedFiles, params) -} - -// DidChangeWorkspaceFolders sents the notification from the client to the server to inform the server about workspace folder configuration changes. -// -// The notification is sent by default if both ServerCapabilities/workspace/workspaceFolders and ClientCapabilities/workspace/workspaceFolders are true; -// or if the server has registered itself to receive this notification. -// To register for the workspace/didChangeWorkspaceFolders send a client/registerCapability request from the server to the client. -// -// The registration parameter must have a registrations item of the following form, where id is a unique id used to unregister the capability (the example uses a UUID). -func (s *server) DidChangeWorkspaceFolders(ctx context.Context, params *DidChangeWorkspaceFoldersParams) (err error) { - s.logger.Debug("call " + MethodWorkspaceDidChangeWorkspaceFolders) - defer s.logger.Debug("end "+MethodWorkspaceDidChangeWorkspaceFolders, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodWorkspaceDidChangeWorkspaceFolders, params) -} - -// DidClose sends the notification from the client to the server when the document got closed in the client. -// -// The document’s truth now exists where the document’s Uri points to (e.g. if the document’s Uri is a file Uri the truth now exists on disk). -// As with the open notification the close notification is about managing the document’s content. -// Receiving a close notification doesn’t mean that the document was open in an editor before. -// -// A close notification requires a previous open notification to be sent. -// Note that a server’s ability to fulfill requests is independent of whether a text document is open or closed. -func (s *server) DidClose(ctx context.Context, params *DidCloseTextDocumentParams) (err error) { - s.logger.Debug("call " + MethodTextDocumentDidClose) - defer s.logger.Debug("end "+MethodTextDocumentDidClose, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodTextDocumentDidClose, params) -} - -// DidOpen sends the open notification from the client to the server to signal newly opened text documents. -// -// The document’s truth is now managed by the client and the server must not try to read the document’s truth using the document’s Uri. -// Open in this sense means it is managed by the client. It doesn’t necessarily mean that its content is presented in an editor. -// -// An open notification must not be sent more than once without a corresponding close notification send before. -// This means open and close notification must be balanced and the max open count for a particular textDocument is one. -// Note that a server’s ability to fulfill requests is independent of whether a text document is open or closed. -func (s *server) DidOpen(ctx context.Context, params *DidOpenTextDocumentParams) (err error) { - s.logger.Debug("call " + MethodTextDocumentDidOpen) - defer s.logger.Debug("end "+MethodTextDocumentDidOpen, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodTextDocumentDidOpen, params) -} - -// DidSave sends the notification from the client to the server when the document was saved in the client. -func (s *server) DidSave(ctx context.Context, params *DidSaveTextDocumentParams) (err error) { - s.logger.Debug("call " + MethodTextDocumentDidSave) - defer s.logger.Debug("end "+MethodTextDocumentDidSave, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodTextDocumentDidSave, params) -} - -// DocumentColor sends the request from the client to the server to list all color references found in a given text document. -// -// Along with the range, a color value in RGB is returned. -// -// Clients can use the result to decorate color references in an editor. -// For example: -// -// - Color boxes showing the actual color next to the reference -// - Show a color picker when a color reference is edited. -func (s *server) DocumentColor(ctx context.Context, params *DocumentColorParams) (result []ColorInformation, err error) { - s.logger.Debug("call " + MethodTextDocumentDocumentColor) - defer s.logger.Debug("end "+MethodTextDocumentDocumentColor, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDocumentColor, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DocumentHighlight sends the request is from the client to the server to resolve a document highlights for a given text document position. -// -// For programming languages this usually highlights all references to the symbol scoped to this file. -// However we kept ‘textDocument/documentHighlight’ and ‘textDocument/references’ separate requests since the first one is allowed to be more fuzzy. -// -// Symbol matches usually have a `DocumentHighlightKind` of `Read` or `Write` whereas fuzzy or textual matches use `Text` as the kind. -func (s *server) DocumentHighlight(ctx context.Context, params *DocumentHighlightParams) (result []DocumentHighlight, err error) { - s.logger.Debug("call " + MethodTextDocumentDocumentHighlight) - defer s.logger.Debug("end "+MethodTextDocumentDocumentHighlight, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDocumentHighlight, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DocumentLink sends the request from the client to the server to request the location of links in a document. -func (s *server) DocumentLink(ctx context.Context, params *DocumentLinkParams) (result []DocumentLink, err error) { - s.logger.Debug("call " + MethodTextDocumentDocumentLink) - defer s.logger.Debug("end "+MethodTextDocumentDocumentLink, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDocumentLink, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DocumentLinkResolve sends the request from the client to the server to resolve the target of a given document link. -func (s *server) DocumentLinkResolve(ctx context.Context, params *DocumentLink) (_ *DocumentLink, err error) { - s.logger.Debug("call " + MethodDocumentLinkResolve) - defer s.logger.Debug("end "+MethodDocumentLinkResolve, zap.Error(err)) - - var result *DocumentLink - if err := Call(ctx, s.Conn, MethodDocumentLinkResolve, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DocumentSymbol sends the request from the client to the server to return a flat list of all symbols found in a given text document. -// -// Neither the symbol’s location range nor the symbol’s container name should be used to infer a hierarchy. -func (s *server) DocumentSymbol(ctx context.Context, params *DocumentSymbolParams) (result []interface{}, err error) { - s.logger.Debug("call " + MethodTextDocumentDocumentSymbol) - defer s.logger.Debug("end "+MethodTextDocumentDocumentSymbol, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDocumentSymbol, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// ExecuteCommand sends the request from the client to the server to trigger command execution on the server. -// -// In most cases the server creates a `WorkspaceEdit` structure and applies the changes to the workspace using the -// request `workspace/applyEdit` which is sent from the server to the client. -func (s *server) ExecuteCommand(ctx context.Context, params *ExecuteCommandParams) (result interface{}, err error) { - s.logger.Debug("call " + MethodWorkspaceExecuteCommand) - defer s.logger.Debug("end "+MethodWorkspaceExecuteCommand, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodWorkspaceExecuteCommand, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// FoldingRanges sends the request from the client to the server to return all folding ranges found in a given text document. -// -// @since version 3.10.0. -func (s *server) FoldingRanges(ctx context.Context, params *FoldingRangeParams) (result []FoldingRange, err error) { - s.logger.Debug("call " + MethodTextDocumentFoldingRange) - defer s.logger.Debug("end "+MethodTextDocumentFoldingRange, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentFoldingRange, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Formatting sends the request from the client to the server to format a whole document. -func (s *server) Formatting(ctx context.Context, params *DocumentFormattingParams) (result []TextEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentFormatting) - defer s.logger.Debug("end "+MethodTextDocumentFormatting, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentFormatting, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Hover sends the request is from the client to the server to request hover information at a given text document position. -func (s *server) Hover(ctx context.Context, params *HoverParams) (_ *Hover, err error) { - s.logger.Debug("call " + MethodTextDocumentHover) - defer s.logger.Debug("end "+MethodTextDocumentHover, zap.Error(err)) - - var result *Hover - if err := Call(ctx, s.Conn, MethodTextDocumentHover, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Implementation sends the request from the client to the server to resolve the implementation location of a symbol at a given text document position. -// -// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.implementation.typeDefinition.linkSupport`. -func (s *server) Implementation(ctx context.Context, params *ImplementationParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentImplementation) - defer s.logger.Debug("end "+MethodTextDocumentImplementation, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentImplementation, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// OnTypeFormatting sends the request from the client to the server to format parts of the document during typing. -func (s *server) OnTypeFormatting(ctx context.Context, params *DocumentOnTypeFormattingParams) (result []TextEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentOnTypeFormatting) - defer s.logger.Debug("end "+MethodTextDocumentOnTypeFormatting, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentOnTypeFormatting, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// PrepareRename sends the request from the client to the server to setup and test the validity of a rename operation at a given location. -// -// @since version 3.12.0. -func (s *server) PrepareRename(ctx context.Context, params *PrepareRenameParams) (result *Range, err error) { - s.logger.Debug("call " + MethodTextDocumentPrepareRename) - defer s.logger.Debug("end "+MethodTextDocumentPrepareRename, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentPrepareRename, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// RangeFormatting sends the request from the client to the server to format a given range in a document. -func (s *server) RangeFormatting(ctx context.Context, params *DocumentRangeFormattingParams) (result []TextEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentRangeFormatting) - defer s.logger.Debug("end "+MethodTextDocumentRangeFormatting, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentRangeFormatting, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// References sends the request from the client to the server to resolve project-wide references for the symbol denoted by the given text document position. -func (s *server) References(ctx context.Context, params *ReferenceParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentReferences) - defer s.logger.Debug("end "+MethodTextDocumentReferences, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentReferences, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Rename sends the request from the client to the server to perform a workspace-wide rename of a symbol. -func (s *server) Rename(ctx context.Context, params *RenameParams) (result *WorkspaceEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentRename) - defer s.logger.Debug("end "+MethodTextDocumentRename, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentRename, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SignatureHelp sends the request from the client to the server to request signature information at a given cursor position. -func (s *server) SignatureHelp(ctx context.Context, params *SignatureHelpParams) (_ *SignatureHelp, err error) { - s.logger.Debug("call " + MethodTextDocumentSignatureHelp) - defer s.logger.Debug("end "+MethodTextDocumentSignatureHelp, zap.Error(err)) - - var result *SignatureHelp - if err := Call(ctx, s.Conn, MethodTextDocumentSignatureHelp, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Symbols sends the request from the client to the server to list project-wide symbols matching the query string. -func (s *server) Symbols(ctx context.Context, params *WorkspaceSymbolParams) (result []SymbolInformation, err error) { - s.logger.Debug("call " + MethodWorkspaceSymbol) - defer s.logger.Debug("end "+MethodWorkspaceSymbol, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodWorkspaceSymbol, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// TypeDefinition sends the request from the client to the server to resolve the type definition location of a symbol at a given text document position. -// -// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.typeDefinition.linkSupport`. -// -// @since version 3.6.0. -func (s *server) TypeDefinition(ctx context.Context, params *TypeDefinitionParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentTypeDefinition) - defer s.logger.Debug("end "+MethodTextDocumentTypeDefinition, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentTypeDefinition, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// WillSave sends the notification from the client to the server before the document is actually saved. -func (s *server) WillSave(ctx context.Context, params *WillSaveTextDocumentParams) (err error) { - s.logger.Debug("call " + MethodTextDocumentWillSave) - defer s.logger.Debug("end "+MethodTextDocumentWillSave, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodTextDocumentWillSave, params) -} - -// WillSaveWaitUntil sends the request from the client to the server before the document is actually saved. -// -// The request can return an array of TextEdits which will be applied to the text document before it is saved. -// Please note that clients might drop results if computing the text edits took too long or if a server constantly fails on this request. -// This is done to keep the save fast and reliable. -func (s *server) WillSaveWaitUntil(ctx context.Context, params *WillSaveTextDocumentParams) (result []TextEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentWillSaveWaitUntil) - defer s.logger.Debug("end "+MethodTextDocumentWillSaveWaitUntil, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentWillSaveWaitUntil, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// ShowDocument sends the request from a server to a client to ask the client to display a particular document in the user interface. -// -// @since 3.16.0. -func (s *server) ShowDocument(ctx context.Context, params *ShowDocumentParams) (result *ShowDocumentResult, err error) { - s.logger.Debug("call " + MethodShowDocument) - defer s.logger.Debug("end "+MethodShowDocument, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodShowDocument, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// WillCreateFiles sends the will create files request is sent from the client to the server before files are actually created as long as the creation is triggered from within the client. -// -// The request can return a WorkspaceEdit which will be applied to workspace before the files are created. -// -// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep creates fast and reliable. -// -// @since 3.16.0. -func (s *server) WillCreateFiles(ctx context.Context, params *CreateFilesParams) (result *WorkspaceEdit, err error) { - s.logger.Debug("call " + MethodWillCreateFiles) - defer s.logger.Debug("end "+MethodWillCreateFiles, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodWillCreateFiles, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DidCreateFiles sends the did create files notification is sent from the client to the server when files were created from within the client. -// -// @since 3.16.0. -func (s *server) DidCreateFiles(ctx context.Context, params *CreateFilesParams) (err error) { - s.logger.Debug("call " + MethodDidCreateFiles) - defer s.logger.Debug("end "+MethodDidCreateFiles, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodDidCreateFiles, params) -} - -// WillRenameFiles sends the will rename files request is sent from the client to the server before files are actually renamed as long as the rename is triggered from within the client. -// -// The request can return a WorkspaceEdit which will be applied to workspace before the files are renamed. -// -// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep renames fast and reliable. -// -// @since 3.16.0. -func (s *server) WillRenameFiles(ctx context.Context, params *RenameFilesParams) (result *WorkspaceEdit, err error) { - s.logger.Debug("call " + MethodWillRenameFiles) - defer s.logger.Debug("end "+MethodWillRenameFiles, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodWillRenameFiles, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DidRenameFiles sends the did rename files notification is sent from the client to the server when files were renamed from within the client. -// -// @since 3.16.0. -func (s *server) DidRenameFiles(ctx context.Context, params *RenameFilesParams) (err error) { - s.logger.Debug("call " + MethodDidRenameFiles) - defer s.logger.Debug("end "+MethodDidRenameFiles, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodDidRenameFiles, params) -} - -// WillDeleteFiles sends the will delete files request is sent from the client to the server before files are actually deleted as long as the deletion is triggered from within the client. -// -// The request can return a WorkspaceEdit which will be applied to workspace before the files are deleted. -// -// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep deletes fast and reliable. -// -// @since 3.16.0. -func (s *server) WillDeleteFiles(ctx context.Context, params *DeleteFilesParams) (result *WorkspaceEdit, err error) { - s.logger.Debug("call " + MethodWillDeleteFiles) - defer s.logger.Debug("end "+MethodWillDeleteFiles, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodWillDeleteFiles, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DidDeleteFiles sends the did delete files notification is sent from the client to the server when files were deleted from within the client. -// -// @since 3.16.0. -func (s *server) DidDeleteFiles(ctx context.Context, params *DeleteFilesParams) (err error) { - s.logger.Debug("call " + MethodDidDeleteFiles) - defer s.logger.Debug("end "+MethodDidDeleteFiles, zap.Error(err)) - - return s.Conn.Notify(ctx, MethodDidDeleteFiles, params) -} - -// CodeLensRefresh sent from the server to the client. -// -// Servers can use it to ask clients to refresh the code lenses currently shown in editors. -// As a result the client should ask the server to recompute the code lenses for these editors. -// This is useful if a server detects a configuration change which requires a re-calculation of all code lenses. -// -// Note that the client still has the freedom to delay the re-calculation of the code lenses if for example an editor is currently not visible. -// -// @since 3.16.0. -func (s *server) CodeLensRefresh(ctx context.Context) (err error) { - s.logger.Debug("call " + MethodCodeLensRefresh) - defer s.logger.Debug("end "+MethodCodeLensRefresh, zap.Error(err)) - - return Call(ctx, s.Conn, MethodCodeLensRefresh, nil, nil) -} - -// PrepareCallHierarchy sent from the client to the server to return a call hierarchy for the language element of given text document positions. -// -// The call hierarchy requests are executed in two steps: -// 1. first a call hierarchy item is resolved for the given text document position -// 2. for a call hierarchy item the incoming or outgoing call hierarchy items are resolved. -// -// @since 3.16.0. -func (s *server) PrepareCallHierarchy(ctx context.Context, params *CallHierarchyPrepareParams) (result []CallHierarchyItem, err error) { - s.logger.Debug("call " + MethodTextDocumentPrepareCallHierarchy) - defer s.logger.Debug("end "+MethodTextDocumentPrepareCallHierarchy, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentPrepareCallHierarchy, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// IncomingCalls is the request is sent from the client to the server to resolve incoming calls for a given call hierarchy item. -// -// The request doesn’t define its own client and server capabilities. It is only issued if a server registers for the "textDocument/prepareCallHierarchy" request. -// -// @since 3.16.0. -func (s *server) IncomingCalls(ctx context.Context, params *CallHierarchyIncomingCallsParams) (result []CallHierarchyIncomingCall, err error) { - s.logger.Debug("call " + MethodCallHierarchyIncomingCalls) - defer s.logger.Debug("end "+MethodCallHierarchyIncomingCalls, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodCallHierarchyIncomingCalls, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// OutgoingCalls is the request is sent from the client to the server to resolve outgoing calls for a given call hierarchy item. -// -// The request doesn’t define its own client and server capabilities. It is only issued if a server registers for the "textDocument/prepareCallHierarchy" request. -// -// @since 3.16.0. -func (s *server) OutgoingCalls(ctx context.Context, params *CallHierarchyOutgoingCallsParams) (result []CallHierarchyOutgoingCall, err error) { - s.logger.Debug("call " + MethodCallHierarchyOutgoingCalls) - defer s.logger.Debug("end "+MethodCallHierarchyOutgoingCalls, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodCallHierarchyOutgoingCalls, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SemanticTokensFull is the request is sent from the client to the server to resolve semantic tokens for a given file. -// -// Semantic tokens are used to add additional color information to a file that depends on language specific symbol information. -// -// A semantic token request usually produces a large result. The protocol therefore supports encoding tokens with numbers. -// -// @since 3.16.0. -func (s *server) SemanticTokensFull(ctx context.Context, params *SemanticTokensParams) (result *SemanticTokens, err error) { - s.logger.Debug("call " + MethodSemanticTokensFull) - defer s.logger.Debug("end "+MethodSemanticTokensFull, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodSemanticTokensFull, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SemanticTokensFullDelta is the request is sent from the client to the server to resolve semantic token delta for a given file. -// -// Semantic tokens are used to add additional color information to a file that depends on language specific symbol information. -// -// A semantic token request usually produces a large result. The protocol therefore supports encoding tokens with numbers. -// -// @since 3.16.0. -func (s *server) SemanticTokensFullDelta(ctx context.Context, params *SemanticTokensDeltaParams) (result interface{}, err error) { - s.logger.Debug("call " + MethodSemanticTokensFullDelta) - defer s.logger.Debug("end "+MethodSemanticTokensFullDelta, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodSemanticTokensFullDelta, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SemanticTokensRange is the request is sent from the client to the server to resolve semantic token delta for a given file. -// -// When a user opens a file it can be beneficial to only compute the semantic tokens for the visible range (faster rendering of the tokens in the user interface). -// If a server can compute these tokens faster than for the whole file it can provide a handler for the "textDocument/semanticTokens/range" request to handle this case special. -// -// Please note that if a client also announces that it will send the "textDocument/semanticTokens/range" server should implement this request as well to allow for flicker free scrolling and semantic coloring of a minimap. -// -// @since 3.16.0. -func (s *server) SemanticTokensRange(ctx context.Context, params *SemanticTokensRangeParams) (result *SemanticTokens, err error) { - s.logger.Debug("call " + MethodSemanticTokensRange) - defer s.logger.Debug("end "+MethodSemanticTokensRange, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodSemanticTokensRange, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SemanticTokensRefresh is sent from the server to the client. Servers can use it to ask clients to refresh the editors for which this server provides semantic tokens. -// -// As a result the client should ask the server to recompute the semantic tokens for these editors. -// This is useful if a server detects a project wide configuration change which requires a re-calculation of all semantic tokens. -// -// Note that the client still has the freedom to delay the re-calculation of the semantic tokens if for example an editor is currently not visible. -// -// @since 3.16.0. -func (s *server) SemanticTokensRefresh(ctx context.Context) (err error) { - s.logger.Debug("call " + MethodSemanticTokensRefresh) - defer s.logger.Debug("end "+MethodSemanticTokensRefresh, zap.Error(err)) - - return Call(ctx, s.Conn, MethodSemanticTokensRefresh, nil, nil) -} - -// LinkedEditingRange is the linked editing request is sent from the client to the server to return for a given position in a document the range of the symbol at the position and all ranges that have the same content. -// -// Optionally a word pattern can be returned to describe valid contents. -// -// A rename to one of the ranges can be applied to all other ranges if the new content is valid. If no result-specific word pattern is provided, the word pattern from the client’s language configuration is used. -// -// @since 3.16.0. -func (s *server) LinkedEditingRange(ctx context.Context, params *LinkedEditingRangeParams) (result *LinkedEditingRanges, err error) { - s.logger.Debug("call " + MethodLinkedEditingRange) - defer s.logger.Debug("end "+MethodLinkedEditingRange, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodLinkedEditingRange, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Moniker is the request is sent from the client to the server to get the symbol monikers for a given text document position. -// -// An array of Moniker types is returned as response to indicate possible monikers at the given location. -// -// If no monikers can be calculated, an empty array or null should be returned. -// -// @since 3.16.0. -func (s *server) Moniker(ctx context.Context, params *MonikerParams) (result []Moniker, err error) { - s.logger.Debug("call " + MethodMoniker) - defer s.logger.Debug("end "+MethodMoniker, zap.Error(err)) - - if err := Call(ctx, s.Conn, MethodMoniker, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Request sends a request from the client to the server that non-compliant with the Language Server Protocol specifications. -func (s *server) Request(ctx context.Context, method string, params interface{}) (interface{}, error) { - s.logger.Debug("call " + method) - defer s.logger.Debug("end " + method) - - var result interface{} - if err := Call(ctx, s.Conn, method, params, &result); err != nil { - return nil, err - } - - return result, nil -} diff --git a/vendor/go.lsp.dev/protocol/text.go b/vendor/go.lsp.dev/protocol/text.go deleted file mode 100644 index 34aec1b..0000000 --- a/vendor/go.lsp.dev/protocol/text.go +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" -) - -// DidOpenTextDocumentParams params of DidOpenTextDocument notification. -type DidOpenTextDocumentParams struct { - // TextDocument is the document that was opened. - TextDocument TextDocumentItem `json:"textDocument"` -} - -// DidChangeTextDocumentParams params of DidChangeTextDocument notification. -type DidChangeTextDocumentParams struct { - // TextDocument is the document that did change. The version number points - // to the version after all provided content changes have - // been applied. - TextDocument VersionedTextDocumentIdentifier `json:"textDocument"` - - // ContentChanges is the actual content changes. The content changes describe single state changes - // to the document. So if there are two content changes c1 and c2 for a document - // in state S then c1 move the document to S' and c2 to S''. - ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"` // []TextDocumentContentChangeEvent | text -} - -// TextDocumentSaveReason represents reasons why a text document is saved. -type TextDocumentSaveReason float64 - -const ( - // TextDocumentSaveReasonManual is the manually triggered, e.g. by the user pressing save, by starting debugging, - // or by an API call. - TextDocumentSaveReasonManual TextDocumentSaveReason = 1 - - // TextDocumentSaveReasonAfterDelay is the automatic after a delay. - TextDocumentSaveReasonAfterDelay TextDocumentSaveReason = 2 - - // TextDocumentSaveReasonFocusOut when the editor lost focus. - TextDocumentSaveReasonFocusOut TextDocumentSaveReason = 3 -) - -// String implements fmt.Stringer. -func (t TextDocumentSaveReason) String() string { - switch t { - case TextDocumentSaveReasonManual: - return "Manual" - case TextDocumentSaveReasonAfterDelay: - return "AfterDelay" - case TextDocumentSaveReasonFocusOut: - return "FocusOut" - default: - return strconv.FormatFloat(float64(t), 'f', -10, 64) - } -} - -// TextDocumentChangeRegistrationOptions describe options to be used when registering for text document change events. -type TextDocumentChangeRegistrationOptions struct { - TextDocumentRegistrationOptions - - // SyncKind how documents are synced to the server. See TextDocumentSyncKind.Full - // and TextDocumentSyncKind.Incremental. - SyncKind TextDocumentSyncKind `json:"syncKind"` -} - -// WillSaveTextDocumentParams is the parameters send in a will save text document notification. -type WillSaveTextDocumentParams struct { - // TextDocument is the document that will be saved. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Reason is the 'TextDocumentSaveReason'. - Reason TextDocumentSaveReason `json:"reason,omitempty"` -} - -// DidSaveTextDocumentParams params of DidSaveTextDocument notification. -type DidSaveTextDocumentParams struct { - // Text optional the content when saved. Depends on the includeText value - // when the save notification was requested. - Text string `json:"text,omitempty"` - - // TextDocument is the document that was saved. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// TextDocumentContentChangeEvent an event describing a change to a text document. If range and rangeLength are omitted -// the new text is considered to be the full content of the document. -type TextDocumentContentChangeEvent struct { - // Range is the range of the document that changed. - Range Range `json:"range"` - - // RangeLength is the length of the range that got replaced. - RangeLength uint32 `json:"rangeLength,omitempty"` - - // Text is the new text of the document. - Text string `json:"text"` -} - -// TextDocumentSaveRegistrationOptions TextDocumentSave Registration options. -type TextDocumentSaveRegistrationOptions struct { - TextDocumentRegistrationOptions - - // IncludeText is the client is supposed to include the content on save. - IncludeText bool `json:"includeText,omitempty"` -} - -// DidCloseTextDocumentParams params of DidCloseTextDocument notification. -type DidCloseTextDocumentParams struct { - // TextDocument the document that was closed. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} diff --git a/vendor/go.lsp.dev/protocol/util.go b/vendor/go.lsp.dev/protocol/util.go deleted file mode 100644 index 4dc29c4..0000000 --- a/vendor/go.lsp.dev/protocol/util.go +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// NewVersion returns the int32 pointer converted i. -func NewVersion(i int32) *int32 { - return &i -} diff --git a/vendor/go.lsp.dev/protocol/version.go b/vendor/go.lsp.dev/protocol/version.go deleted file mode 100644 index 79a27f3..0000000 --- a/vendor/go.lsp.dev/protocol/version.go +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-FileCopyrightText: 2018 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// Version is the version of the language-server-protocol specification being implemented. -const Version = "3.15.3" diff --git a/vendor/go.lsp.dev/protocol/window.go b/vendor/go.lsp.dev/protocol/window.go deleted file mode 100644 index b6af6f4..0000000 --- a/vendor/go.lsp.dev/protocol/window.go +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import "strconv" - -// ShowMessageParams params of ShowMessage notification. -type ShowMessageParams struct { - // Message is the actual message. - Message string `json:"message"` - - // Type is the message type. - Type MessageType `json:"type"` -} - -// MessageType type of ShowMessageParams type. -type MessageType float64 - -const ( - // MessageTypeError an error message. - MessageTypeError MessageType = 1 - // MessageTypeWarning a warning message. - MessageTypeWarning MessageType = 2 - // MessageTypeInfo an information message. - MessageTypeInfo MessageType = 3 - // MessageTypeLog a log message. - MessageTypeLog MessageType = 4 -) - -// String implements fmt.Stringer. -func (m MessageType) String() string { - switch m { - case MessageTypeError: - return "error" - case MessageTypeWarning: - return "warning" - case MessageTypeInfo: - return "info" - case MessageTypeLog: - return "log" - default: - return strconv.FormatFloat(float64(m), 'f', -10, 64) - } -} - -// Enabled reports whether the level is enabled. -func (m MessageType) Enabled(level MessageType) bool { - return level > 0 && m >= level -} - -// messageTypeMap map of MessageTypes. -var messageTypeMap = map[string]MessageType{ - "error": MessageTypeError, - "warning": MessageTypeWarning, - "info": MessageTypeInfo, - "log": MessageTypeLog, -} - -// ToMessageType converts level to the MessageType. -func ToMessageType(level string) MessageType { - mt, ok := messageTypeMap[level] - if !ok { - return MessageType(0) // unknown - } - - return mt -} - -// ShowMessageRequestParams params of ShowMessage request. -type ShowMessageRequestParams struct { - // Actions is the message action items to present. - Actions []MessageActionItem `json:"actions"` - - // Message is the actual message - Message string `json:"message"` - - // Type is the message type. See {@link MessageType} - Type MessageType `json:"type"` -} - -// MessageActionItem item of ShowMessageRequestParams action. -type MessageActionItem struct { - // Title a short title like 'Retry', 'Open Log' etc. - Title string `json:"title"` -} - -// LogMessageParams params of LogMessage notification. -type LogMessageParams struct { - // Message is the actual message - Message string `json:"message"` - - // Type is the message type. See {@link MessageType} - Type MessageType `json:"type"` -} - -// WorkDoneProgressCreateParams params of WorkDoneProgressCreate request. -// -// @since 3.15.0. -type WorkDoneProgressCreateParams struct { - // Token is the token to be used to report progress. - Token ProgressToken `json:"token"` -} - -// WorkDoneProgressCreateParams params of WorkDoneProgressCancel request. -// -// @since 3.15.0. -type WorkDoneProgressCancelParams struct { - // Token is the token to be used to report progress. - Token ProgressToken `json:"token"` -} diff --git a/vendor/go.lsp.dev/protocol/workspace.go b/vendor/go.lsp.dev/protocol/workspace.go deleted file mode 100644 index 3d39cd7..0000000 --- a/vendor/go.lsp.dev/protocol/workspace.go +++ /dev/null @@ -1,213 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" - - "go.lsp.dev/uri" -) - -// WorkspaceFolder response of Workspace folders request. -type WorkspaceFolder struct { - // URI is the associated URI for this workspace folder. - URI string `json:"uri"` - - // Name is the name of the workspace folder. Used to refer to this - // workspace folder in the user interface. - Name string `json:"name"` -} - -// DidChangeWorkspaceFoldersParams params of DidChangeWorkspaceFolders notification. -type DidChangeWorkspaceFoldersParams struct { - // Event is the actual workspace folder change event. - Event WorkspaceFoldersChangeEvent `json:"event"` -} - -// WorkspaceFoldersChangeEvent is the workspace folder change event. -type WorkspaceFoldersChangeEvent struct { - // Added is the array of added workspace folders - Added []WorkspaceFolder `json:"added"` - - // Removed is the array of the removed workspace folders - Removed []WorkspaceFolder `json:"removed"` -} - -// DidChangeConfigurationParams params of DidChangeConfiguration notification. -type DidChangeConfigurationParams struct { - // Settings is the actual changed settings - Settings interface{} `json:"settings,omitempty"` -} - -// ConfigurationParams params of Configuration request. -type ConfigurationParams struct { - Items []ConfigurationItem `json:"items"` -} - -// ConfigurationItem a ConfigurationItem consists of the configuration section to ask for and an additional scope URI. -// The configuration section ask for is defined by the server and doesn’t necessarily need to correspond to the configuration store used be the client. -// So a server might ask for a configuration cpp.formatterOptions but the client stores the configuration in a XML store layout differently. -// It is up to the client to do the necessary conversion. If a scope URI is provided the client should return the setting scoped to the provided resource. -// If the client for example uses EditorConfig to manage its settings the configuration should be returned for the passed resource URI. If the client can’t provide a configuration setting for a given scope then null need to be present in the returned array. -type ConfigurationItem struct { - // ScopeURI is the scope to get the configuration section for. - ScopeURI uri.URI `json:"scopeUri,omitempty"` - - // Section is the configuration section asked for. - Section string `json:"section,omitempty"` -} - -// DidChangeWatchedFilesParams params of DidChangeWatchedFiles notification. -type DidChangeWatchedFilesParams struct { - // Changes is the actual file events. - Changes []*FileEvent `json:"changes,omitempty"` -} - -// FileEvent an event describing a file change. -type FileEvent struct { - // Type is the change type. - Type FileChangeType `json:"type"` - - // URI is the file's URI. - URI uri.URI `json:"uri"` -} - -// FileChangeType is the file event type. -type FileChangeType float64 - -const ( - // FileChangeTypeCreated is the file got created. - FileChangeTypeCreated FileChangeType = 1 - // FileChangeTypeChanged is the file got changed. - FileChangeTypeChanged FileChangeType = 2 - // FileChangeTypeDeleted is the file got deleted. - FileChangeTypeDeleted FileChangeType = 3 -) - -// String implements fmt.Stringer. -func (t FileChangeType) String() string { - switch t { - case FileChangeTypeCreated: - return "Created" - case FileChangeTypeChanged: - return "Changed" - case FileChangeTypeDeleted: - return "Deleted" - default: - return strconv.FormatFloat(float64(t), 'f', -10, 64) - } -} - -// DidChangeWatchedFilesRegistrationOptions describe options to be used when registering for file system change events. -type DidChangeWatchedFilesRegistrationOptions struct { - // Watchers is the watchers to register. - Watchers []FileSystemWatcher `json:"watchers"` -} - -// FileSystemWatcher watchers of DidChangeWatchedFiles Registration options. -type FileSystemWatcher struct { - // GlobPattern is the glob pattern to watch. - // - // Glob patterns can have the following syntax: - // - `*` to match one or more characters in a path segment - // - `?` to match on one character in a path segment - // - `**` to match any number of path segments, including none - // - `{}` to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files) - // - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) - // - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) - GlobPattern string `json:"globPattern"` - - // Kind is the kind of events of interest. If omitted it defaults - // to WatchKind.Create | WatchKind.Change | WatchKind.Delete - // which is 7. - Kind WatchKind `json:"kind,omitempty"` -} - -// WatchKind kind of FileSystemWatcher kind. -type WatchKind float64 - -const ( - // WatchKindCreate interested in create events. - WatchKindCreate WatchKind = 1 - - // WatchKindChange interested in change events. - WatchKindChange WatchKind = 2 - - // WatchKindDelete interested in delete events. - WatchKindDelete WatchKind = 4 -) - -// String implements fmt.Stringer. -func (k WatchKind) String() string { - switch k { - case WatchKindCreate: - return "Create" - case WatchKindChange: - return "Change" - case WatchKindDelete: - return "Delete" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// WorkspaceSymbolParams is the parameters of a Workspace Symbol request. -type WorkspaceSymbolParams struct { - WorkDoneProgressParams - PartialResultParams - - // Query a query string to filter symbols by. - // - // Clients may send an empty string here to request all symbols. - Query string `json:"query"` -} - -// ExecuteCommandParams params of Execute a command. -type ExecuteCommandParams struct { - WorkDoneProgressParams - - // Command is the identifier of the actual command handler. - Command string `json:"command"` - - // Arguments that the command should be invoked with. - Arguments []interface{} `json:"arguments,omitempty"` -} - -// ExecuteCommandRegistrationOptions execute command registration options. -type ExecuteCommandRegistrationOptions struct { - // Commands is the commands to be executed on the server - Commands []string `json:"commands"` -} - -// ApplyWorkspaceEditParams params of Applies a WorkspaceEdit. -type ApplyWorkspaceEditParams struct { - // Label an optional label of the workspace edit. This label is - // presented in the user interface for example on an undo - // stack to undo the workspace edit. - Label string `json:"label,omitempty"` - - // Edit is the edits to apply. - Edit WorkspaceEdit `json:"edit"` -} - -// ApplyWorkspaceEditResponse response of Applies a WorkspaceEdit. -type ApplyWorkspaceEditResponse struct { - // Applied indicates whether the edit was applied or not. - Applied bool `json:"applied"` - - // FailureReason an optional textual description for why the edit was not applied. - // This may be used by the server for diagnostic logging or to provide - // a suitable error for a request that triggered the edit. - // - // @since 3.16.0. - FailureReason string `json:"failureReason,omitempty"` - - // FailedChange depending on the client's failure handling strategy "failedChange" - // might contain the index of the change that failed. This property is - // only available if the client signals a "failureHandlingStrategy" - // in its client capabilities. - // - // @since 3.16.0. - FailedChange uint32 `json:"failedChange,omitempty"` -} diff --git a/vendor/go.lsp.dev/uri/.codecov.yml b/vendor/go.lsp.dev/uri/.codecov.yml deleted file mode 100644 index cb891cd..0000000 --- a/vendor/go.lsp.dev/uri/.codecov.yml +++ /dev/null @@ -1,24 +0,0 @@ -coverage: - precision: 1 - round: down - range: "70...100" - - status: - project: - default: off - target: auto - threshold: 10% - if_not_found: success - if_ci_failed: error - patch: - default: off - only_pulls: true - target: 50% - threshold: 10% - changes: false - ignore: - - "vendor" - -comment: - behavior: default - require_changes: true diff --git a/vendor/go.lsp.dev/uri/.gitattributes b/vendor/go.lsp.dev/uri/.gitattributes deleted file mode 100644 index cae764e..0000000 --- a/vendor/go.lsp.dev/uri/.gitattributes +++ /dev/null @@ -1,11 +0,0 @@ -# go.lsp.dev/uri project gitattributes file -# https://github.com/github/linguist#using-gitattributes -# https://github.com/github/linguist/blob/master/lib/linguist/languages.yml - -# To prevent CRLF breakages on Windows for fragile files, like testdata. -* -text - -docs/ linguist-documentation -*.pb.go linguist-generated -*_gen.go linguist-generated -*_string.go linguist-generated diff --git a/vendor/go.lsp.dev/uri/.gitignore b/vendor/go.lsp.dev/uri/.gitignore deleted file mode 100644 index 0449794..0000000 --- a/vendor/go.lsp.dev/uri/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -# go.lsp.dev/uri project generated files to ignore -# if you want to ignore files created by your editor/tools, -# please consider a global .gitignore https://help.github.com/articles/ignoring-files -# please do not open a pull request to add something created by your editor or tools - -# github/gitignore/Go.gitignore -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -vendor/ - -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -# cgo generated -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -# test generated -_testmain.go - -# profile -*.pprof - -# coverage -coverage.* diff --git a/vendor/go.lsp.dev/uri/.golangci.yml b/vendor/go.lsp.dev/uri/.golangci.yml deleted file mode 100644 index 14d15c2..0000000 --- a/vendor/go.lsp.dev/uri/.golangci.yml +++ /dev/null @@ -1,151 +0,0 @@ -run: - issues-exit-code: 1 - tests: true - skip-dirs: - - "vendor$" - skip-files: - - ".*\\.pb\\.go" - - ".*(.|_)gen\\.go" - modules-download-mode: vendor - -linters-settings: - dupl: - threshold: 400 - errcheck: - check-type-assertions: true - check-blank: true - # exclude: .errcheckignore - funlen: - lines: 80 - statements: 40 - goconst: - min-len: 3 - min-occurrences: 3 - gocritic: - enabled-tags: - - diagnostic - - experimental - - opinionated - - performance - - style - settings: - hugeParam: - sizeThreshold: 80 - rangeExprCopy: - sizeThreshold: 512 - rangeValCopy: - sizeThreshold: 128 - gocyclo: - min-complexity: 10 - gofmt: - simplify: true - goimports: - local-prefixes: go.lsp.dev/uri - golint: - min-confidence: 0.3 - govet: - enable: - - asmdecl - - assign - - atomic - - atomicalign - - bools - - buildssa - - buildtag - - cgocall - - composite - - copylock - - ctrlflow - - deepequalerrors - - errorsas - - findcall - - httpresponse - - inspect - - loopclosure - - lostcancel - - nilfunc - - nilness - - pkgfact - - printf - - shift - - sortslice - - stdmethods - - structtag - - tests - - unmarshal - - unreachable - - unsafeptr - - unusedresult - disable: - - shadow - lll: - line-length: 180 - tab-width: 1 - maligned: - suggest-new: false - misspell: - locale: US - nakedret: - max-func-lines: 30 - prealloc: - simple: true - range-loops: true - for-loops: false - unparam: - algo: cha - check-exported: true - unused: - check-exported: false - -linters: - # disabled: - # - funlen - # - gochecknoglobals - # - gochecknoinits - # - gocyclo - # - godox - # - gomnd - # - maligned - # - megacheck - # - scopelint - # - wsl - disable-all: true - enable: - - bodyclose - - deadcode - - depguard - - dogsled - - dupl - - errcheck - - gocognit - - goconst - - gocritic - - gofmt - - goimports - - golint - - gosec - - gosimple - - govet - - ineffassign - - interfacer - - lll - - misspell - - nakedret - - prealloc - - staticcheck - - structcheck - - stylecheck - - typecheck - - unconvert - - unparam - - unused - - varcheck - - whitespace - -issues: - exclude-use-default: true - -output: - format: colored-line-number - print-issued-lines: true - print-linter-name: true diff --git a/vendor/go.lsp.dev/uri/LICENSE b/vendor/go.lsp.dev/uri/LICENSE deleted file mode 100644 index e874870..0000000 --- a/vendor/go.lsp.dev/uri/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2019, The Go Language Server Authors -All rights reserved. - -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. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -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 HOLDER 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. diff --git a/vendor/go.lsp.dev/uri/Makefile b/vendor/go.lsp.dev/uri/Makefile deleted file mode 100644 index f4aeab6..0000000 --- a/vendor/go.lsp.dev/uri/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# ---------------------------------------------------------------------------- -# global - -.DEFAULT_GOAL = test - -# ---------------------------------------------------------------------------- -# target - -# ---------------------------------------------------------------------------- -# include - -include hack/make/go.mk - -# ---------------------------------------------------------------------------- -# overlays diff --git a/vendor/go.lsp.dev/uri/README.md b/vendor/go.lsp.dev/uri/README.md deleted file mode 100644 index 5d8909c..0000000 --- a/vendor/go.lsp.dev/uri/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# uri - -[![CircleCI][circleci-badge]][circleci] [![pkg.go.dev][pkg.go.dev-badge]][pkg.go.dev] [![Go module][module-badge]][module] [![codecov.io][codecov-badge]][codecov] [![GA][ga-badge]][ga] - -Package uri is an implementation of the URI Uniform Resource Identifier(RFC3986) specification for Go. - - - -[circleci]: https://app.circleci.com/pipelines/github/go-language-server/uri -[pkg.go.dev]: https://pkg.go.dev/go.lsp.dev/uri -[module]: https://github.com/go-language-server/uri/releases/latest -[codecov]: https://codecov.io/gh/go-language-server/uri -[ga]: https://github.com/go-language-server/uri - -[circleci-badge]: https://img.shields.io/circleci/build/github/go-language-server/uri/master.svg?style=for-the-badge&label=CIRCLECI&logo=circleci -[pkg.go.dev-badge]: https://bit.ly/shields-io-pkg-go-dev -[module-badge]: https://img.shields.io/github/release/go-language-server/uri.svg?color=00add8&label=MODULE&style=for-the-badge&logoWidth=25&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijg1IDU1IDEyMCAxMjAiPjxwYXRoIGZpbGw9IiMwMEFERDgiIGQ9Ik00MC4yIDEwMS4xYy0uNCAwLS41LS4yLS4zLS41bDIuMS0yLjdjLjItLjMuNy0uNSAxLjEtLjVoMzUuN2MuNCAwIC41LjMuMy42bC0xLjcgMi42Yy0uMi4zLS43LjYtMSAuNmwtMzYuMi0uMXptLTE1LjEgOS4yYy0uNCAwLS41LS4yLS4zLS41bDIuMS0yLjdjLjItLjMuNy0uNSAxLjEtLjVoNDUuNmMuNCAwIC42LjMuNS42bC0uOCAyLjRjLS4xLjQtLjUuNi0uOS42bC00Ny4zLjF6bTI0LjIgOS4yYy0uNCAwLS41LS4zLS4zLS42bDEuNC0yLjVjLjItLjMuNi0uNiAxLS42aDIwYy40IDAgLjYuMy42LjdsLS4yIDIuNGMwIC40LS40LjctLjcuN2wtMjEuOC0uMXptMTAzLjgtMjAuMmMtNi4zIDEuNi0xMC42IDIuOC0xNi44IDQuNC0xLjUuNC0xLjYuNS0yLjktMS0xLjUtMS43LTIuNi0yLjgtNC43LTMuOC02LjMtMy4xLTEyLjQtMi4yLTE4LjEgMS41LTYuOCA0LjQtMTAuMyAxMC45LTEwLjIgMTkgLjEgOCA1LjYgMTQuNiAxMy41IDE1LjcgNi44LjkgMTIuNS0xLjUgMTctNi42LjktMS4xIDEuNy0yLjMgMi43LTMuN2gtMTkuM2MtMi4xIDAtMi42LTEuMy0xLjktMyAxLjMtMy4xIDMuNy04LjMgNS4xLTEwLjkuMy0uNiAxLTEuNiAyLjUtMS42aDM2LjRjLS4yIDIuNy0uMiA1LjQtLjYgOC4xLTEuMSA3LjItMy44IDEzLjgtOC4yIDE5LjYtNy4yIDkuNS0xNi42IDE1LjQtMjguNSAxNy05LjggMS4zLTE4LjktLjYtMjYuOS02LjYtNy40LTUuNi0xMS42LTEzLTEyLjctMjIuMi0xLjMtMTAuOSAxLjktMjAuNyA4LjUtMjkuMyA3LjEtOS4zIDE2LjUtMTUuMiAyOC0xNy4zIDkuNC0xLjcgMTguNC0uNiAyNi41IDQuOSA1LjMgMy41IDkuMSA4LjMgMTEuNiAxNC4xLjYuOS4yIDEuNC0xIDEuN3oiLz48cGF0aCBmaWxsPSIjMDBBREQ4IiBkPSJNMTg2LjIgMTU0LjZjLTkuMS0uMi0xNy40LTIuOC0yNC40LTguOC01LjktNS4xLTkuNi0xMS42LTEwLjgtMTkuMy0xLjgtMTEuMyAxLjMtMjEuMyA4LjEtMzAuMiA3LjMtOS42IDE2LjEtMTQuNiAyOC0xNi43IDEwLjItMS44IDE5LjgtLjggMjguNSA1LjEgNy45IDUuNCAxMi44IDEyLjcgMTQuMSAyMi4zIDEuNyAxMy41LTIuMiAyNC41LTExLjUgMzMuOS02LjYgNi43LTE0LjcgMTAuOS0yNCAxMi44LTIuNy41LTUuNC42LTggLjl6bTIzLjgtNDAuNGMtLjEtMS4zLS4xLTIuMy0uMy0zLjMtMS44LTkuOS0xMC45LTE1LjUtMjAuNC0xMy4zLTkuMyAyLjEtMTUuMyA4LTE3LjUgMTcuNC0xLjggNy44IDIgMTUuNyA5LjIgMTguOSA1LjUgMi40IDExIDIuMSAxNi4zLS42IDcuOS00LjEgMTIuMi0xMC41IDEyLjctMTkuMXoiLz48L3N2Zz4= -[codecov-badge]: https://img.shields.io/codecov/c/github/go-language-server/uri/master?logo=codecov&style=for-the-badge -[ga-badge]: https://gh-ga-beacon.appspot.com/UA-89201129-1/go-language-server/uri?useReferer&pixel diff --git a/vendor/go.lsp.dev/uri/doc.go b/vendor/go.lsp.dev/uri/doc.go deleted file mode 100644 index 3d9d72e..0000000 --- a/vendor/go.lsp.dev/uri/doc.go +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2019 The Go Language Server 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 uri is an implementation of the URI Uniform Resource Identifier(RFC3986) specification for Go. -package uri // import "go.lsp.dev/uri" diff --git a/vendor/go.lsp.dev/uri/uri.go b/vendor/go.lsp.dev/uri/uri.go deleted file mode 100644 index 32fb313..0000000 --- a/vendor/go.lsp.dev/uri/uri.go +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright 2019 The Go Language Server 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 uri - -import ( - "errors" - "fmt" - "net/url" - "path/filepath" - "runtime" - "strings" - "unicode" -) - -const ( - // FileScheme schema of filesystem path. - FileScheme = "file" - - // HTTPScheme schema of http. - HTTPScheme = "http" - - // HTTPSScheme schema of https. - HTTPSScheme = "https" -) - -const ( - hierPart = "://" -) - -// URI Uniform Resource Identifier (URI) https://tools.ietf.org/html/rfc3986. -// -// This class is a simple parser which creates the basic component parts -// (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation -// and encoding. -// -// foo://example.com:8042/over/there?name=ferret#nose -// \_/ \______________/\_________/ \_________/ \__/ -// | | | | | -// scheme authority path query fragment -// | _____________________|__ -// / \ / \ -// urn:example:animal:ferret:nose -type URI string - -// Filename returns the file path for the given URI. -// It is an error to call this on a URI that is not a valid filename. -func (u URI) Filename() string { - filename, err := filename(u) - if err != nil { - panic(err) - } - - return filepath.FromSlash(filename) -} - -func filename(uri URI) (string, error) { - u, err := url.ParseRequestURI(string(uri)) - if err != nil { - return "", fmt.Errorf("failed to parse request URI: %w", err) - } - - if u.Scheme != FileScheme { - return "", fmt.Errorf("only file URIs are supported, got %v", u.Scheme) - } - - if isWindowsDriveURI(u.Path) { - u.Path = u.Path[1:] - } - - return u.Path, nil -} - -// New parses and creates a new URI from s. -func New(s string) URI { - if u, err := url.PathUnescape(s); err == nil { - s = u - } - - if strings.HasPrefix(s, FileScheme+hierPart) { - return URI(s) - } - - return File(s) -} - -// File parses and creates a new filesystem URI from path. -func File(path string) URI { - const goRootPragma = "$GOROOT" - if len(path) >= len(goRootPragma) && strings.EqualFold(goRootPragma, path[:len(goRootPragma)]) { - path = runtime.GOROOT() + path[len(goRootPragma):] - } - - if !isWindowsDrivePath(path) { - if abs, err := filepath.Abs(path); err == nil { - path = abs - } - } - - if isWindowsDrivePath(path) { - path = "/" + path - } - - path = filepath.ToSlash(path) - u := url.URL{ - Scheme: FileScheme, - Path: path, - } - - return URI(u.String()) -} - -// Parse parses and creates a new URI from s. -func Parse(s string) (u URI, err error) { - us, err := url.Parse(s) - if err != nil { - return u, fmt.Errorf("url.Parse: %w", err) - } - - switch us.Scheme { - case FileScheme: - ut := url.URL{ - Scheme: FileScheme, - Path: us.Path, - RawPath: filepath.FromSlash(us.Path), - } - u = URI(ut.String()) - - case HTTPScheme, HTTPSScheme: - ut := url.URL{ - Scheme: us.Scheme, - Host: us.Host, - Path: us.Path, - RawQuery: us.Query().Encode(), - Fragment: us.Fragment, - } - u = URI(ut.String()) - - default: - return u, errors.New("unknown scheme") - } - - return -} - -// From returns the new URI from args. -func From(scheme, authority, path, query, fragment string) URI { - switch scheme { - case FileScheme: - u := url.URL{ - Scheme: FileScheme, - Path: path, - RawPath: filepath.FromSlash(path), - } - return URI(u.String()) - - case HTTPScheme, HTTPSScheme: - u := url.URL{ - Scheme: scheme, - Host: authority, - Path: path, - RawQuery: url.QueryEscape(query), - Fragment: fragment, - } - return URI(u.String()) - - default: - panic(fmt.Sprintf("unknown scheme: %s", scheme)) - } -} - -// isWindowsDrivePath returns true if the file path is of the form used by Windows. -// -// We check if the path begins with a drive letter, followed by a ":". -func isWindowsDrivePath(path string) bool { - if len(path) < 4 { - return false - } - return unicode.IsLetter(rune(path[0])) && path[1] == ':' -} - -// isWindowsDriveURI returns true if the file URI is of the format used by -// Windows URIs. The url.Parse package does not specially handle Windows paths -// (see https://golang.org/issue/6027). We check if the URI path has -// a drive prefix (e.g. "/C:"). If so, we trim the leading "/". -func isWindowsDriveURI(uri string) bool { - if len(uri) < 4 { - return false - } - return uri[0] == '/' && unicode.IsLetter(rune(uri[1])) && uri[2] == ':' -} diff --git a/vendor/go.uber.org/multierr/.codecov.yml b/vendor/go.uber.org/multierr/.codecov.yml deleted file mode 100644 index 6d4d1be..0000000 --- a/vendor/go.uber.org/multierr/.codecov.yml +++ /dev/null @@ -1,15 +0,0 @@ -coverage: - range: 80..100 - round: down - precision: 2 - - status: - project: # measuring the overall project coverage - default: # context, you can create multiple ones with custom titles - enabled: yes # must be yes|true to enable this status - target: 100 # specify the target coverage for each commit status - # option: "auto" (must increase from parent commit or pull request base) - # option: "X%" a static target percentage to hit - if_not_found: success # if parent is not found report status as success, error, or failure - if_ci_failed: error # if ci fails report status as success, error, or failure - diff --git a/vendor/go.uber.org/multierr/.gitignore b/vendor/go.uber.org/multierr/.gitignore deleted file mode 100644 index b9a05e3..0000000 --- a/vendor/go.uber.org/multierr/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/vendor -cover.html -cover.out -/bin diff --git a/vendor/go.uber.org/multierr/CHANGELOG.md b/vendor/go.uber.org/multierr/CHANGELOG.md deleted file mode 100644 index cfd2e6a..0000000 --- a/vendor/go.uber.org/multierr/CHANGELOG.md +++ /dev/null @@ -1,88 +0,0 @@ -Releases -======== - -v1.10.0 (2023-03-08) -==================== - -- Comply with Go 1.20's multiple-error interface. -- Drop Go 1.18 support. - Per the support policy, only Go 1.19 and 1.20 are supported now. -- Drop all non-test external dependencies. - -v1.9.0 (2022-12-12) -=================== - -- Add `AppendFunc` that allow passsing functions to similar to - `AppendInvoke`. - -- Bump up yaml.v3 dependency to 3.0.1. - -v1.8.0 (2022-02-28) -=================== - -- `Combine`: perform zero allocations when there are no errors. - - -v1.7.0 (2021-05-06) -=================== - -- Add `AppendInvoke` to append into errors from `defer` blocks. - - -v1.6.0 (2020-09-14) -=================== - -- Actually drop library dependency on development-time tooling. - - -v1.5.0 (2020-02-24) -=================== - -- Drop library dependency on development-time tooling. - - -v1.4.0 (2019-11-04) -=================== - -- Add `AppendInto` function to more ergonomically build errors inside a - loop. - - -v1.3.0 (2019-10-29) -=================== - -- Switch to Go modules. - - -v1.2.0 (2019-09-26) -=================== - -- Support extracting and matching against wrapped errors with `errors.As` - and `errors.Is`. - - -v1.1.0 (2017-06-30) -=================== - -- Added an `Errors(error) []error` function to extract the underlying list of - errors for a multierr error. - - -v1.0.0 (2017-05-31) -=================== - -No changes since v0.2.0. This release is committing to making no breaking -changes to the current API in the 1.X series. - - -v0.2.0 (2017-04-11) -=================== - -- Repeatedly appending to the same error is now faster due to fewer - allocations. - - -v0.1.0 (2017-31-03) -=================== - -- Initial release diff --git a/vendor/go.uber.org/multierr/LICENSE.txt b/vendor/go.uber.org/multierr/LICENSE.txt deleted file mode 100644 index 413e30f..0000000 --- a/vendor/go.uber.org/multierr/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2017-2021 Uber Technologies, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/go.uber.org/multierr/Makefile b/vendor/go.uber.org/multierr/Makefile deleted file mode 100644 index dcb6fe7..0000000 --- a/vendor/go.uber.org/multierr/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -# Directory to put `go install`ed binaries in. -export GOBIN ?= $(shell pwd)/bin - -GO_FILES := $(shell \ - find . '(' -path '*/.*' -o -path './vendor' ')' -prune \ - -o -name '*.go' -print | cut -b3-) - -.PHONY: build -build: - go build ./... - -.PHONY: test -test: - go test -race ./... - -.PHONY: gofmt -gofmt: - $(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX)) - @gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true - @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" | cat - $(FMT_LOG) && false) - -.PHONY: golint -golint: - @cd tools && go install golang.org/x/lint/golint - @$(GOBIN)/golint ./... - -.PHONY: staticcheck -staticcheck: - @cd tools && go install honnef.co/go/tools/cmd/staticcheck - @$(GOBIN)/staticcheck ./... - -.PHONY: lint -lint: gofmt golint staticcheck - -.PHONY: cover -cover: - go test -race -coverprofile=cover.out -coverpkg=./... -v ./... - go tool cover -html=cover.out -o cover.html diff --git a/vendor/go.uber.org/multierr/README.md b/vendor/go.uber.org/multierr/README.md deleted file mode 100644 index 5ab6ac4..0000000 --- a/vendor/go.uber.org/multierr/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# multierr [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] - -`multierr` allows combining one or more Go `error`s together. - -## Features - -- **Idiomatic**: - multierr follows best practices in Go, and keeps your code idiomatic. - - It keeps the underlying error type hidden, - allowing you to deal in `error` values exclusively. - - It provides APIs to safely append into an error from a `defer` statement. -- **Performant**: - multierr is optimized for performance: - - It avoids allocations where possible. - - It utilizes slice resizing semantics to optimize common cases - like appending into the same error object from a loop. -- **Interoperable**: - multierr interoperates with the Go standard library's error APIs seamlessly: - - The `errors.Is` and `errors.As` functions *just work*. -- **Lightweight**: - multierr comes with virtually no dependencies. - -## Installation - -```bash -go get -u go.uber.org/multierr@latest -``` - -## Status - -Stable: No breaking changes will be made before 2.0. - -------------------------------------------------------------------------------- - -Released under the [MIT License]. - -[MIT License]: LICENSE.txt -[doc-img]: https://pkg.go.dev/badge/go.uber.org/multierr -[doc]: https://pkg.go.dev/go.uber.org/multierr -[ci-img]: https://github.com/uber-go/multierr/actions/workflows/go.yml/badge.svg -[cov-img]: https://codecov.io/gh/uber-go/multierr/branch/master/graph/badge.svg -[ci]: https://github.com/uber-go/multierr/actions/workflows/go.yml -[cov]: https://codecov.io/gh/uber-go/multierr diff --git a/vendor/go.uber.org/multierr/error.go b/vendor/go.uber.org/multierr/error.go deleted file mode 100644 index 4ee4b9f..0000000 --- a/vendor/go.uber.org/multierr/error.go +++ /dev/null @@ -1,652 +0,0 @@ -// Copyright (c) 2017-2023 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package multierr allows combining one or more errors together. -// -// # Overview -// -// Errors can be combined with the use of the Combine function. -// -// multierr.Combine( -// reader.Close(), -// writer.Close(), -// conn.Close(), -// ) -// -// If only two errors are being combined, the Append function may be used -// instead. -// -// err = multierr.Append(reader.Close(), writer.Close()) -// -// The underlying list of errors for a returned error object may be retrieved -// with the Errors function. -// -// errors := multierr.Errors(err) -// if len(errors) > 0 { -// fmt.Println("The following errors occurred:", errors) -// } -// -// # Appending from a loop -// -// You sometimes need to append into an error from a loop. -// -// var err error -// for _, item := range items { -// err = multierr.Append(err, process(item)) -// } -// -// Cases like this may require knowledge of whether an individual instance -// failed. This usually requires introduction of a new variable. -// -// var err error -// for _, item := range items { -// if perr := process(item); perr != nil { -// log.Warn("skipping item", item) -// err = multierr.Append(err, perr) -// } -// } -// -// multierr includes AppendInto to simplify cases like this. -// -// var err error -// for _, item := range items { -// if multierr.AppendInto(&err, process(item)) { -// log.Warn("skipping item", item) -// } -// } -// -// This will append the error into the err variable, and return true if that -// individual error was non-nil. -// -// See [AppendInto] for more information. -// -// # Deferred Functions -// -// Go makes it possible to modify the return value of a function in a defer -// block if the function was using named returns. This makes it possible to -// record resource cleanup failures from deferred blocks. -// -// func sendRequest(req Request) (err error) { -// conn, err := openConnection() -// if err != nil { -// return err -// } -// defer func() { -// err = multierr.Append(err, conn.Close()) -// }() -// // ... -// } -// -// multierr provides the Invoker type and AppendInvoke function to make cases -// like the above simpler and obviate the need for a closure. The following is -// roughly equivalent to the example above. -// -// func sendRequest(req Request) (err error) { -// conn, err := openConnection() -// if err != nil { -// return err -// } -// defer multierr.AppendInvoke(&err, multierr.Close(conn)) -// // ... -// } -// -// See [AppendInvoke] and [Invoker] for more information. -// -// NOTE: If you're modifying an error from inside a defer, you MUST use a named -// return value for that function. -// -// # Advanced Usage -// -// Errors returned by Combine and Append MAY implement the following -// interface. -// -// type errorGroup interface { -// // Returns a slice containing the underlying list of errors. -// // -// // This slice MUST NOT be modified by the caller. -// Errors() []error -// } -// -// Note that if you need access to list of errors behind a multierr error, you -// should prefer using the Errors function. That said, if you need cheap -// read-only access to the underlying errors slice, you can attempt to cast -// the error to this interface. You MUST handle the failure case gracefully -// because errors returned by Combine and Append are not guaranteed to -// implement this interface. -// -// var errors []error -// group, ok := err.(errorGroup) -// if ok { -// errors = group.Errors() -// } else { -// errors = []error{err} -// } -package multierr // import "go.uber.org/multierr" - -import ( - "bytes" - "fmt" - "io" - "strings" - "sync" - "sync/atomic" -) - -var ( - // Separator for single-line error messages. - _singlelineSeparator = []byte("; ") - - // Prefix for multi-line messages - _multilinePrefix = []byte("the following errors occurred:") - - // Prefix for the first and following lines of an item in a list of - // multi-line error messages. - // - // For example, if a single item is: - // - // foo - // bar - // - // It will become, - // - // - foo - // bar - _multilineSeparator = []byte("\n - ") - _multilineIndent = []byte(" ") -) - -// _bufferPool is a pool of bytes.Buffers. -var _bufferPool = sync.Pool{ - New: func() interface{} { - return &bytes.Buffer{} - }, -} - -type errorGroup interface { - Errors() []error -} - -// Errors returns a slice containing zero or more errors that the supplied -// error is composed of. If the error is nil, a nil slice is returned. -// -// err := multierr.Append(r.Close(), w.Close()) -// errors := multierr.Errors(err) -// -// If the error is not composed of other errors, the returned slice contains -// just the error that was passed in. -// -// Callers of this function are free to modify the returned slice. -func Errors(err error) []error { - if err == nil { - return nil - } - - // Note that we're casting to multiError, not errorGroup. Our contract is - // that returned errors MAY implement errorGroup. Errors, however, only - // has special behavior for multierr-specific error objects. - // - // This behavior can be expanded in the future but I think it's prudent to - // start with as little as possible in terms of contract and possibility - // of misuse. - eg, ok := err.(*multiError) - if !ok { - return []error{err} - } - - return append(([]error)(nil), eg.Errors()...) -} - -// multiError is an error that holds one or more errors. -// -// An instance of this is guaranteed to be non-empty and flattened. That is, -// none of the errors inside multiError are other multiErrors. -// -// multiError formats to a semi-colon delimited list of error messages with -// %v and with a more readable multi-line format with %+v. -type multiError struct { - copyNeeded atomic.Bool - errors []error -} - -var _ errorGroup = (*multiError)(nil) - -// Errors returns the list of underlying errors. -// -// This slice MUST NOT be modified. -func (merr *multiError) Errors() []error { - if merr == nil { - return nil - } - return merr.errors -} - -func (merr *multiError) Error() string { - if merr == nil { - return "" - } - - buff := _bufferPool.Get().(*bytes.Buffer) - buff.Reset() - - merr.writeSingleline(buff) - - result := buff.String() - _bufferPool.Put(buff) - return result -} - -func (merr *multiError) Format(f fmt.State, c rune) { - if c == 'v' && f.Flag('+') { - merr.writeMultiline(f) - } else { - merr.writeSingleline(f) - } -} - -func (merr *multiError) writeSingleline(w io.Writer) { - first := true - for _, item := range merr.errors { - if first { - first = false - } else { - w.Write(_singlelineSeparator) - } - io.WriteString(w, item.Error()) - } -} - -func (merr *multiError) writeMultiline(w io.Writer) { - w.Write(_multilinePrefix) - for _, item := range merr.errors { - w.Write(_multilineSeparator) - writePrefixLine(w, _multilineIndent, fmt.Sprintf("%+v", item)) - } -} - -// Writes s to the writer with the given prefix added before each line after -// the first. -func writePrefixLine(w io.Writer, prefix []byte, s string) { - first := true - for len(s) > 0 { - if first { - first = false - } else { - w.Write(prefix) - } - - idx := strings.IndexByte(s, '\n') - if idx < 0 { - idx = len(s) - 1 - } - - io.WriteString(w, s[:idx+1]) - s = s[idx+1:] - } -} - -type inspectResult struct { - // Number of top-level non-nil errors - Count int - - // Total number of errors including multiErrors - Capacity int - - // Index of the first non-nil error in the list. Value is meaningless if - // Count is zero. - FirstErrorIdx int - - // Whether the list contains at least one multiError - ContainsMultiError bool -} - -// Inspects the given slice of errors so that we can efficiently allocate -// space for it. -func inspect(errors []error) (res inspectResult) { - first := true - for i, err := range errors { - if err == nil { - continue - } - - res.Count++ - if first { - first = false - res.FirstErrorIdx = i - } - - if merr, ok := err.(*multiError); ok { - res.Capacity += len(merr.errors) - res.ContainsMultiError = true - } else { - res.Capacity++ - } - } - return -} - -// fromSlice converts the given list of errors into a single error. -func fromSlice(errors []error) error { - // Don't pay to inspect small slices. - switch len(errors) { - case 0: - return nil - case 1: - return errors[0] - } - - res := inspect(errors) - switch res.Count { - case 0: - return nil - case 1: - // only one non-nil entry - return errors[res.FirstErrorIdx] - case len(errors): - if !res.ContainsMultiError { - // Error list is flat. Make a copy of it - // Otherwise "errors" escapes to the heap - // unconditionally for all other cases. - // This lets us optimize for the "no errors" case. - out := append(([]error)(nil), errors...) - return &multiError{errors: out} - } - } - - nonNilErrs := make([]error, 0, res.Capacity) - for _, err := range errors[res.FirstErrorIdx:] { - if err == nil { - continue - } - - if nested, ok := err.(*multiError); ok { - nonNilErrs = append(nonNilErrs, nested.errors...) - } else { - nonNilErrs = append(nonNilErrs, err) - } - } - - return &multiError{errors: nonNilErrs} -} - -// Combine combines the passed errors into a single error. -// -// If zero arguments were passed or if all items are nil, a nil error is -// returned. -// -// Combine(nil, nil) // == nil -// -// If only a single error was passed, it is returned as-is. -// -// Combine(err) // == err -// -// Combine skips over nil arguments so this function may be used to combine -// together errors from operations that fail independently of each other. -// -// multierr.Combine( -// reader.Close(), -// writer.Close(), -// pipe.Close(), -// ) -// -// If any of the passed errors is a multierr error, it will be flattened along -// with the other errors. -// -// multierr.Combine(multierr.Combine(err1, err2), err3) -// // is the same as -// multierr.Combine(err1, err2, err3) -// -// The returned error formats into a readable multi-line error message if -// formatted with %+v. -// -// fmt.Sprintf("%+v", multierr.Combine(err1, err2)) -func Combine(errors ...error) error { - return fromSlice(errors) -} - -// Append appends the given errors together. Either value may be nil. -// -// This function is a specialization of Combine for the common case where -// there are only two errors. -// -// err = multierr.Append(reader.Close(), writer.Close()) -// -// The following pattern may also be used to record failure of deferred -// operations without losing information about the original error. -// -// func doSomething(..) (err error) { -// f := acquireResource() -// defer func() { -// err = multierr.Append(err, f.Close()) -// }() -// -// Note that the variable MUST be a named return to append an error to it from -// the defer statement. See also [AppendInvoke]. -func Append(left error, right error) error { - switch { - case left == nil: - return right - case right == nil: - return left - } - - if _, ok := right.(*multiError); !ok { - if l, ok := left.(*multiError); ok && !l.copyNeeded.Swap(true) { - // Common case where the error on the left is constantly being - // appended to. - errs := append(l.errors, right) - return &multiError{errors: errs} - } else if !ok { - // Both errors are single errors. - return &multiError{errors: []error{left, right}} - } - } - - // Either right or both, left and right, are multiErrors. Rely on usual - // expensive logic. - errors := [2]error{left, right} - return fromSlice(errors[0:]) -} - -// AppendInto appends an error into the destination of an error pointer and -// returns whether the error being appended was non-nil. -// -// var err error -// multierr.AppendInto(&err, r.Close()) -// multierr.AppendInto(&err, w.Close()) -// -// The above is equivalent to, -// -// err := multierr.Append(r.Close(), w.Close()) -// -// As AppendInto reports whether the provided error was non-nil, it may be -// used to build a multierr error in a loop more ergonomically. For example: -// -// var err error -// for line := range lines { -// var item Item -// if multierr.AppendInto(&err, parse(line, &item)) { -// continue -// } -// items = append(items, item) -// } -// -// Compare this with a version that relies solely on Append: -// -// var err error -// for line := range lines { -// var item Item -// if parseErr := parse(line, &item); parseErr != nil { -// err = multierr.Append(err, parseErr) -// continue -// } -// items = append(items, item) -// } -func AppendInto(into *error, err error) (errored bool) { - if into == nil { - // We panic if 'into' is nil. This is not documented above - // because suggesting that the pointer must be non-nil may - // confuse users into thinking that the error that it points - // to must be non-nil. - panic("misuse of multierr.AppendInto: into pointer must not be nil") - } - - if err == nil { - return false - } - *into = Append(*into, err) - return true -} - -// Invoker is an operation that may fail with an error. Use it with -// AppendInvoke to append the result of calling the function into an error. -// This allows you to conveniently defer capture of failing operations. -// -// See also, [Close] and [Invoke]. -type Invoker interface { - Invoke() error -} - -// Invoke wraps a function which may fail with an error to match the Invoker -// interface. Use it to supply functions matching this signature to -// AppendInvoke. -// -// For example, -// -// func processReader(r io.Reader) (err error) { -// scanner := bufio.NewScanner(r) -// defer multierr.AppendInvoke(&err, multierr.Invoke(scanner.Err)) -// for scanner.Scan() { -// // ... -// } -// // ... -// } -// -// In this example, the following line will construct the Invoker right away, -// but defer the invocation of scanner.Err() until the function returns. -// -// defer multierr.AppendInvoke(&err, multierr.Invoke(scanner.Err)) -// -// Note that the error you're appending to from the defer statement MUST be a -// named return. -type Invoke func() error - -// Invoke calls the supplied function and returns its result. -func (i Invoke) Invoke() error { return i() } - -// Close builds an Invoker that closes the provided io.Closer. Use it with -// AppendInvoke to close io.Closers and append their results into an error. -// -// For example, -// -// func processFile(path string) (err error) { -// f, err := os.Open(path) -// if err != nil { -// return err -// } -// defer multierr.AppendInvoke(&err, multierr.Close(f)) -// return processReader(f) -// } -// -// In this example, multierr.Close will construct the Invoker right away, but -// defer the invocation of f.Close until the function returns. -// -// defer multierr.AppendInvoke(&err, multierr.Close(f)) -// -// Note that the error you're appending to from the defer statement MUST be a -// named return. -func Close(closer io.Closer) Invoker { - return Invoke(closer.Close) -} - -// AppendInvoke appends the result of calling the given Invoker into the -// provided error pointer. Use it with named returns to safely defer -// invocation of fallible operations until a function returns, and capture the -// resulting errors. -// -// func doSomething(...) (err error) { -// // ... -// f, err := openFile(..) -// if err != nil { -// return err -// } -// -// // multierr will call f.Close() when this function returns and -// // if the operation fails, its append its error into the -// // returned error. -// defer multierr.AppendInvoke(&err, multierr.Close(f)) -// -// scanner := bufio.NewScanner(f) -// // Similarly, this scheduled scanner.Err to be called and -// // inspected when the function returns and append its error -// // into the returned error. -// defer multierr.AppendInvoke(&err, multierr.Invoke(scanner.Err)) -// -// // ... -// } -// -// NOTE: If used with a defer, the error variable MUST be a named return. -// -// Without defer, AppendInvoke behaves exactly like AppendInto. -// -// err := // ... -// multierr.AppendInvoke(&err, mutltierr.Invoke(foo)) -// -// // ...is roughly equivalent to... -// -// err := // ... -// multierr.AppendInto(&err, foo()) -// -// The advantage of the indirection introduced by Invoker is to make it easy -// to defer the invocation of a function. Without this indirection, the -// invoked function will be evaluated at the time of the defer block rather -// than when the function returns. -// -// // BAD: This is likely not what the caller intended. This will evaluate -// // foo() right away and append its result into the error when the -// // function returns. -// defer multierr.AppendInto(&err, foo()) -// -// // GOOD: This will defer invocation of foo unutil the function returns. -// defer multierr.AppendInvoke(&err, multierr.Invoke(foo)) -// -// multierr provides a few Invoker implementations out of the box for -// convenience. See [Invoker] for more information. -func AppendInvoke(into *error, invoker Invoker) { - AppendInto(into, invoker.Invoke()) -} - -// AppendFunc is a shorthand for [AppendInvoke]. -// It allows using function or method value directly -// without having to wrap it into an [Invoker] interface. -// -// func doSomething(...) (err error) { -// w, err := startWorker(...) -// if err != nil { -// return err -// } -// -// // multierr will call w.Stop() when this function returns and -// // if the operation fails, it appends its error into the -// // returned error. -// defer multierr.AppendFunc(&err, w.Stop) -// } -func AppendFunc(into *error, fn func() error) { - AppendInvoke(into, Invoke(fn)) -} diff --git a/vendor/go.uber.org/multierr/error_post_go120.go b/vendor/go.uber.org/multierr/error_post_go120.go deleted file mode 100644 index 0b00bec..0000000 --- a/vendor/go.uber.org/multierr/error_post_go120.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2017-2023 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -//go:build go1.20 -// +build go1.20 - -package multierr - -// Unwrap returns a list of errors wrapped by this multierr. -func (merr *multiError) Unwrap() []error { - return merr.Errors() -} diff --git a/vendor/go.uber.org/multierr/error_pre_go120.go b/vendor/go.uber.org/multierr/error_pre_go120.go deleted file mode 100644 index 8da10f1..0000000 --- a/vendor/go.uber.org/multierr/error_pre_go120.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) 2017-2023 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -//go:build !go1.20 -// +build !go1.20 - -package multierr - -import "errors" - -// Versions of Go before 1.20 did not support the Unwrap() []error method. -// This provides a similar behavior by implementing the Is(..) and As(..) -// methods. -// See the errors.Join proposal for details: -// https://github.com/golang/go/issues/53435 - -// As attempts to find the first error in the error list that matches the type -// of the value that target points to. -// -// This function allows errors.As to traverse the values stored on the -// multierr error. -func (merr *multiError) As(target interface{}) bool { - for _, err := range merr.Errors() { - if errors.As(err, target) { - return true - } - } - return false -} - -// Is attempts to match the provided error against errors in the error list. -// -// This function allows errors.Is to traverse the values stored on the -// multierr error. -func (merr *multiError) Is(target error) bool { - for _, err := range merr.Errors() { - if errors.Is(err, target) { - return true - } - } - return false -} diff --git a/vendor/go.uber.org/zap/.codecov.yml b/vendor/go.uber.org/zap/.codecov.yml deleted file mode 100644 index 8e5ca7d..0000000 --- a/vendor/go.uber.org/zap/.codecov.yml +++ /dev/null @@ -1,17 +0,0 @@ -coverage: - range: 80..100 - round: down - precision: 2 - - status: - project: # measuring the overall project coverage - default: # context, you can create multiple ones with custom titles - enabled: yes # must be yes|true to enable this status - target: 95% # specify the target coverage for each commit status - # option: "auto" (must increase from parent commit or pull request base) - # option: "X%" a static target percentage to hit - if_not_found: success # if parent is not found report status as success, error, or failure - if_ci_failed: error # if ci fails report status as success, error, or failure -ignore: - - internal/readme/readme.go - diff --git a/vendor/go.uber.org/zap/.gitignore b/vendor/go.uber.org/zap/.gitignore deleted file mode 100644 index da9d9d0..0000000 --- a/vendor/go.uber.org/zap/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test -vendor - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof -*.pprof -*.out -*.log - -/bin -cover.out -cover.html diff --git a/vendor/go.uber.org/zap/.golangci.yml b/vendor/go.uber.org/zap/.golangci.yml deleted file mode 100644 index 74faaa7..0000000 --- a/vendor/go.uber.org/zap/.golangci.yml +++ /dev/null @@ -1,77 +0,0 @@ -output: - # Make output more digestible with quickfix in vim/emacs/etc. - sort-results: true - print-issued-lines: false - -linters: - # We'll track the golangci-lint default linters manually - # instead of letting them change without our control. - disable-all: true - enable: - # golangci-lint defaults: - - errcheck - - gosimple - - govet - - ineffassign - - staticcheck - - unused - - # Our own extras: - - gofumpt - - nolintlint # lints nolint directives - - revive - -linters-settings: - govet: - # These govet checks are disabled by default, but they're useful. - enable: - - nilness - - reflectvaluecompare - - sortslice - - unusedwrite - - errcheck: - exclude-functions: - # These methods can not fail. - # They operate on an in-memory buffer. - - (*go.uber.org/zap/buffer.Buffer).Write - - (*go.uber.org/zap/buffer.Buffer).WriteByte - - (*go.uber.org/zap/buffer.Buffer).WriteString - - - (*go.uber.org/zap/zapio.Writer).Close - - (*go.uber.org/zap/zapio.Writer).Sync - - (*go.uber.org/zap/zapio.Writer).Write - # Write to zapio.Writer cannot fail, - # so io.WriteString on it cannot fail. - - io.WriteString(*go.uber.org/zap/zapio.Writer) - - # Writing a plain string to a fmt.State cannot fail. - - io.WriteString(fmt.State) - -issues: - # Print all issues reported by all linters. - max-issues-per-linter: 0 - max-same-issues: 0 - - # Don't ignore some of the issues that golangci-lint considers okay. - # This includes documenting all exported entities. - exclude-use-default: false - - exclude-rules: - # Don't warn on unused parameters. - # Parameter names are useful; replacing them with '_' is undesirable. - - linters: [revive] - text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _' - - # staticcheck already has smarter checks for empty blocks. - # revive's empty-block linter has false positives. - # For example, as of writing this, the following is not allowed. - # for foo() { } - - linters: [revive] - text: 'empty-block: this block is empty, you can remove it' - - # Ignore logger.Sync() errcheck failures in example_test.go - # since those are intended to be uncomplicated examples. - - linters: [errcheck] - path: example_test.go - text: 'Error return value of `logger.Sync` is not checked' diff --git a/vendor/go.uber.org/zap/.readme.tmpl b/vendor/go.uber.org/zap/.readme.tmpl deleted file mode 100644 index 4fea302..0000000 --- a/vendor/go.uber.org/zap/.readme.tmpl +++ /dev/null @@ -1,117 +0,0 @@ -# :zap: zap [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] - -

- -Blazing fast, structured, leveled logging in Go. - -![Zap logo](assets/logo.png) - -[![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] - -
- -## Installation - -`go get -u go.uber.org/zap` - -Note that zap only supports the two most recent minor versions of Go. - -## Quick Start - -In contexts where performance is nice, but not critical, use the -`SugaredLogger`. It's 4-10x faster than other structured logging -packages and includes both structured and `printf`-style APIs. - -```go -logger, _ := zap.NewProduction() -defer logger.Sync() // flushes buffer, if any -sugar := logger.Sugar() -sugar.Infow("failed to fetch URL", - // Structured context as loosely typed key-value pairs. - "url", url, - "attempt", 3, - "backoff", time.Second, -) -sugar.Infof("Failed to fetch URL: %s", url) -``` - -When performance and type safety are critical, use the `Logger`. It's even -faster than the `SugaredLogger` and allocates far less, but it only supports -structured logging. - -```go -logger, _ := zap.NewProduction() -defer logger.Sync() -logger.Info("failed to fetch URL", - // Structured context as strongly typed Field values. - zap.String("url", url), - zap.Int("attempt", 3), - zap.Duration("backoff", time.Second), -) -``` - -See the [documentation][doc] and [FAQ](FAQ.md) for more details. - -## Performance - -For applications that log in the hot path, reflection-based serialization and -string formatting are prohibitively expensive — they're CPU-intensive -and make many small allocations. Put differently, using `encoding/json` and -`fmt.Fprintf` to log tons of `interface{}`s makes your application slow. - -Zap takes a different approach. It includes a reflection-free, zero-allocation -JSON encoder, and the base `Logger` strives to avoid serialization overhead -and allocations wherever possible. By building the high-level `SugaredLogger` -on that foundation, zap lets users *choose* when they need to count every -allocation and when they'd prefer a more familiar, loosely typed API. - -As measured by its own [benchmarking suite][], not only is zap more performant -than comparable structured logging packages — it's also faster than the -standard library. Like all benchmarks, take these with a grain of salt.[1](#footnote-versions) - -Log a message and 10 fields: - -{{.BenchmarkAddingFields}} - -Log a message with a logger that already has 10 fields of context: - -{{.BenchmarkAccumulatedContext}} - -Log a static string, without any context or `printf`-style templating: - -{{.BenchmarkWithoutFields}} - -## Development Status: Stable - -All APIs are finalized, and no breaking changes will be made in the 1.x series -of releases. Users of semver-aware dependency management systems should pin -zap to `^1`. - -## Contributing - -We encourage and support an active, healthy community of contributors — -including you! Details are in the [contribution guide](CONTRIBUTING.md) and -the [code of conduct](CODE_OF_CONDUCT.md). The zap maintainers keep an eye on -issues and pull requests, but you can also report any negative conduct to -oss-conduct@uber.com. That email list is a private, safe space; even the zap -maintainers don't have access, so don't hesitate to hold us to a high -standard. - -
- -Released under the [MIT License](LICENSE). - -1 In particular, keep in mind that we may be -benchmarking against slightly older versions of other packages. Versions are -pinned in the [benchmarks/go.mod][] file. [↩](#anchor-versions) - -[doc-img]: https://pkg.go.dev/badge/go.uber.org/zap -[doc]: https://pkg.go.dev/go.uber.org/zap -[ci-img]: https://github.com/uber-go/zap/actions/workflows/go.yml/badge.svg -[ci]: https://github.com/uber-go/zap/actions/workflows/go.yml -[cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg -[cov]: https://codecov.io/gh/uber-go/zap -[benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks -[benchmarks/go.mod]: https://github.com/uber-go/zap/blob/master/benchmarks/go.mod - diff --git a/vendor/go.uber.org/zap/CHANGELOG.md b/vendor/go.uber.org/zap/CHANGELOG.md deleted file mode 100644 index 86e7e6f..0000000 --- a/vendor/go.uber.org/zap/CHANGELOG.md +++ /dev/null @@ -1,697 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## 1.27.1 (19 Nov 2025) -Enhancements: -* [#1501][]: prevent `Object` from panicking on nils -* [#1511][]: Fix a race condition in `WithLazy`. - -Thanks to @rabbbit, @alshopov, @jquirke, @arukiidou for their contributions to this release. - -[#1501]: https://github.com/uber-go/zap/pull/1501 -[#1511]: https://github.com/uber-go/zap/pull/1511 - -## 1.27.0 (20 Feb 2024) -Enhancements: -* [#1378][]: Add `WithLazy` method for `SugaredLogger`. -* [#1399][]: zaptest: Add `NewTestingWriter` for customizing TestingWriter with more flexibility than `NewLogger`. -* [#1406][]: Add `Log`, `Logw`, `Logln` methods for `SugaredLogger`. -* [#1416][]: Add `WithPanicHook` option for testing panic logs. - -Thanks to @defval, @dimmo, @arxeiss, and @MKrupauskas for their contributions to this release. - -[#1378]: https://github.com/uber-go/zap/pull/1378 -[#1399]: https://github.com/uber-go/zap/pull/1399 -[#1406]: https://github.com/uber-go/zap/pull/1406 -[#1416]: https://github.com/uber-go/zap/pull/1416 - -## 1.26.0 (14 Sep 2023) -Enhancements: -* [#1297][]: Add Dict as a Field. -* [#1319][]: Add `WithLazy` method to `Logger` which lazily evaluates the structured -context. -* [#1350][]: String encoding is much (~50%) faster now. - -Thanks to @hhk7734, @jquirke, and @cdvr1993 for their contributions to this release. - -[#1297]: https://github.com/uber-go/zap/pull/1297 -[#1319]: https://github.com/uber-go/zap/pull/1319 -[#1350]: https://github.com/uber-go/zap/pull/1350 - -## 1.25.0 (1 Aug 2023) - -This release contains several improvements including performance, API additions, -and two new experimental packages whose APIs are unstable and may change in the -future. - -Enhancements: -* [#1246][]: Add `zap/exp/zapslog` package for integration with slog. -* [#1273][]: Add `Name` to `Logger` which returns the Logger's name if one is set. -* [#1281][]: Add `zap/exp/expfield` package which contains helper methods -`Str` and `Strs` for constructing String-like zap.Fields. -* [#1310][]: Reduce stack size on `Any`. - -Thanks to @knight42, @dzakaammar, @bcspragu, and @rexywork for their contributions -to this release. - -[#1246]: https://github.com/uber-go/zap/pull/1246 -[#1273]: https://github.com/uber-go/zap/pull/1273 -[#1281]: https://github.com/uber-go/zap/pull/1281 -[#1310]: https://github.com/uber-go/zap/pull/1310 - -## 1.24.0 (30 Nov 2022) - -Enhancements: -* [#1148][]: Add `Level` to both `Logger` and `SugaredLogger` that reports the - current minimum enabled log level. -* [#1185][]: `SugaredLogger` turns errors to zap.Error automatically. - -Thanks to @Abirdcfly, @craigpastro, @nnnkkk7, and @sashamelentyev for their -contributions to this release. - -[#1148]: https://github.coml/uber-go/zap/pull/1148 -[#1185]: https://github.coml/uber-go/zap/pull/1185 - -## 1.23.0 (24 Aug 2022) - -Enhancements: -* [#1147][]: Add a `zapcore.LevelOf` function to determine the level of a - `LevelEnabler` or `Core`. -* [#1155][]: Add `zap.Stringers` field constructor to log arrays of objects - that implement `String() string`. - -[#1147]: https://github.com/uber-go/zap/pull/1147 -[#1155]: https://github.com/uber-go/zap/pull/1155 - -## 1.22.0 (8 Aug 2022) - -Enhancements: -* [#1071][]: Add `zap.Objects` and `zap.ObjectValues` field constructors to log - arrays of objects. With these two constructors, you don't need to implement - `zapcore.ArrayMarshaler` for use with `zap.Array` if those objects implement - `zapcore.ObjectMarshaler`. -* [#1079][]: Add `SugaredLogger.WithOptions` to build a copy of an existing - `SugaredLogger` with the provided options applied. -* [#1080][]: Add `*ln` variants to `SugaredLogger` for each log level. - These functions provide a string joining behavior similar to `fmt.Println`. -* [#1088][]: Add `zap.WithFatalHook` option to control the behavior of the - logger for `Fatal`-level log entries. This defaults to exiting the program. -* [#1108][]: Add a `zap.Must` function that you can use with `NewProduction` or - `NewDevelopment` to panic if the system was unable to build the logger. -* [#1118][]: Add a `Logger.Log` method that allows specifying the log level for - a statement dynamically. - -Thanks to @cardil, @craigpastro, @sashamelentyev, @shota3506, and @zhupeijun -for their contributions to this release. - -[#1071]: https://github.com/uber-go/zap/pull/1071 -[#1079]: https://github.com/uber-go/zap/pull/1079 -[#1080]: https://github.com/uber-go/zap/pull/1080 -[#1088]: https://github.com/uber-go/zap/pull/1088 -[#1108]: https://github.com/uber-go/zap/pull/1108 -[#1118]: https://github.com/uber-go/zap/pull/1118 - -## 1.21.0 (7 Feb 2022) - -Enhancements: -* [#1047][]: Add `zapcore.ParseLevel` to parse a `Level` from a string. -* [#1048][]: Add `zap.ParseAtomicLevel` to parse an `AtomicLevel` from a - string. - -Bugfixes: -* [#1058][]: Fix panic in JSON encoder when `EncodeLevel` is unset. - -Other changes: -* [#1052][]: Improve encoding performance when the `AddCaller` and - `AddStacktrace` options are used together. - -[#1047]: https://github.com/uber-go/zap/pull/1047 -[#1048]: https://github.com/uber-go/zap/pull/1048 -[#1052]: https://github.com/uber-go/zap/pull/1052 -[#1058]: https://github.com/uber-go/zap/pull/1058 - -Thanks to @aerosol and @Techassi for their contributions to this release. - -## 1.20.0 (4 Jan 2022) - -Enhancements: -* [#989][]: Add `EncoderConfig.SkipLineEnding` flag to disable adding newline - characters between log statements. -* [#1039][]: Add `EncoderConfig.NewReflectedEncoder` field to customize JSON - encoding of reflected log fields. - -Bugfixes: -* [#1011][]: Fix inaccurate precision when encoding complex64 as JSON. -* [#554][], [#1017][]: Close JSON namespaces opened in `MarshalLogObject` - methods when the methods return. -* [#1033][]: Avoid panicking in Sampler core if `thereafter` is zero. - -Other changes: -* [#1028][]: Drop support for Go < 1.15. - -[#554]: https://github.com/uber-go/zap/pull/554 -[#989]: https://github.com/uber-go/zap/pull/989 -[#1011]: https://github.com/uber-go/zap/pull/1011 -[#1017]: https://github.com/uber-go/zap/pull/1017 -[#1028]: https://github.com/uber-go/zap/pull/1028 -[#1033]: https://github.com/uber-go/zap/pull/1033 -[#1039]: https://github.com/uber-go/zap/pull/1039 - -Thanks to @psrajat, @lruggieri, @sammyrnycreal for their contributions to this release. - -## 1.19.1 (8 Sep 2021) - -Bugfixes: -* [#1001][]: JSON: Fix complex number encoding with negative imaginary part. Thanks to @hemantjadon. -* [#1003][]: JSON: Fix inaccurate precision when encoding float32. - -[#1001]: https://github.com/uber-go/zap/pull/1001 -[#1003]: https://github.com/uber-go/zap/pull/1003 - -## 1.19.0 (9 Aug 2021) - -Enhancements: -* [#975][]: Avoid panicking in Sampler core if the level is out of bounds. -* [#984][]: Reduce the size of BufferedWriteSyncer by aligning the fields - better. - -[#975]: https://github.com/uber-go/zap/pull/975 -[#984]: https://github.com/uber-go/zap/pull/984 - -Thanks to @lancoLiu and @thockin for their contributions to this release. - -## 1.18.1 (28 Jun 2021) - -Bugfixes: -* [#974][]: Fix nil dereference in logger constructed by `zap.NewNop`. - -[#974]: https://github.com/uber-go/zap/pull/974 - -## 1.18.0 (28 Jun 2021) - -Enhancements: -* [#961][]: Add `zapcore.BufferedWriteSyncer`, a new `WriteSyncer` that buffers - messages in-memory and flushes them periodically. -* [#971][]: Add `zapio.Writer` to use a Zap logger as an `io.Writer`. -* [#897][]: Add `zap.WithClock` option to control the source of time via the - new `zapcore.Clock` interface. -* [#949][]: Avoid panicking in `zap.SugaredLogger` when arguments of `*w` - methods don't match expectations. -* [#943][]: Add support for filtering by level or arbitrary matcher function to - `zaptest/observer`. -* [#691][]: Comply with `io.StringWriter` and `io.ByteWriter` in Zap's - `buffer.Buffer`. - -Thanks to @atrn0, @ernado, @heyanfu, @hnlq715, @zchee -for their contributions to this release. - -[#691]: https://github.com/uber-go/zap/pull/691 -[#897]: https://github.com/uber-go/zap/pull/897 -[#943]: https://github.com/uber-go/zap/pull/943 -[#949]: https://github.com/uber-go/zap/pull/949 -[#961]: https://github.com/uber-go/zap/pull/961 -[#971]: https://github.com/uber-go/zap/pull/971 - -## 1.17.0 (25 May 2021) - -Bugfixes: -* [#867][]: Encode `` for nil `error` instead of a panic. -* [#931][], [#936][]: Update minimum version constraints to address - vulnerabilities in dependencies. - -Enhancements: -* [#865][]: Improve alignment of fields of the Logger struct, reducing its - size from 96 to 80 bytes. -* [#881][]: Support `grpclog.LoggerV2` in zapgrpc. -* [#903][]: Support URL-encoded POST requests to the AtomicLevel HTTP handler - with the `application/x-www-form-urlencoded` content type. -* [#912][]: Support multi-field encoding with `zap.Inline`. -* [#913][]: Speed up SugaredLogger for calls with a single string. -* [#928][]: Add support for filtering by field name to `zaptest/observer`. - -Thanks to @ash2k, @FMLS, @jimmystewpot, @Oncilla, @tsoslow, @tylitianrui, @withshubh, and @wziww for their contributions to this release. - -[#865]: https://github.com/uber-go/zap/pull/865 -[#867]: https://github.com/uber-go/zap/pull/867 -[#881]: https://github.com/uber-go/zap/pull/881 -[#903]: https://github.com/uber-go/zap/pull/903 -[#912]: https://github.com/uber-go/zap/pull/912 -[#913]: https://github.com/uber-go/zap/pull/913 -[#928]: https://github.com/uber-go/zap/pull/928 -[#931]: https://github.com/uber-go/zap/pull/931 -[#936]: https://github.com/uber-go/zap/pull/936 - -## 1.16.0 (1 Sep 2020) - -Bugfixes: -* [#828][]: Fix missing newline in IncreaseLevel error messages. -* [#835][]: Fix panic in JSON encoder when encoding times or durations - without specifying a time or duration encoder. -* [#843][]: Honor CallerSkip when taking stack traces. -* [#862][]: Fix the default file permissions to use `0666` and rely on the umask instead. -* [#854][]: Encode `` for nil `Stringer` instead of a panic error log. - -Enhancements: -* [#629][]: Added `zapcore.TimeEncoderOfLayout` to easily create time encoders - for custom layouts. -* [#697][]: Added support for a configurable delimiter in the console encoder. -* [#852][]: Optimize console encoder by pooling the underlying JSON encoder. -* [#844][]: Add ability to include the calling function as part of logs. -* [#843][]: Add `StackSkip` for including truncated stacks as a field. -* [#861][]: Add options to customize Fatal behaviour for better testability. - -Thanks to @SteelPhase, @tmshn, @lixingwang, @wyxloading, @moul, @segevfiner, @andy-retailnext and @jcorbin for their contributions to this release. - -[#629]: https://github.com/uber-go/zap/pull/629 -[#697]: https://github.com/uber-go/zap/pull/697 -[#828]: https://github.com/uber-go/zap/pull/828 -[#835]: https://github.com/uber-go/zap/pull/835 -[#843]: https://github.com/uber-go/zap/pull/843 -[#844]: https://github.com/uber-go/zap/pull/844 -[#852]: https://github.com/uber-go/zap/pull/852 -[#854]: https://github.com/uber-go/zap/pull/854 -[#861]: https://github.com/uber-go/zap/pull/861 -[#862]: https://github.com/uber-go/zap/pull/862 - -## 1.15.0 (23 Apr 2020) - -Bugfixes: -* [#804][]: Fix handling of `Time` values out of `UnixNano` range. -* [#812][]: Fix `IncreaseLevel` being reset after a call to `With`. - -Enhancements: -* [#806][]: Add `WithCaller` option to supersede the `AddCaller` option. This - allows disabling annotation of log entries with caller information if - previously enabled with `AddCaller`. -* [#813][]: Deprecate `NewSampler` constructor in favor of - `NewSamplerWithOptions` which supports a `SamplerHook` option. This option - adds support for monitoring sampling decisions through a hook. - -Thanks to @danielbprice for their contributions to this release. - -[#804]: https://github.com/uber-go/zap/pull/804 -[#812]: https://github.com/uber-go/zap/pull/812 -[#806]: https://github.com/uber-go/zap/pull/806 -[#813]: https://github.com/uber-go/zap/pull/813 - -## 1.14.1 (14 Mar 2020) - -Bugfixes: -* [#791][]: Fix panic on attempting to build a logger with an invalid Config. -* [#795][]: Vendoring Zap with `go mod vendor` no longer includes Zap's - development-time dependencies. -* [#799][]: Fix issue introduced in 1.14.0 that caused invalid JSON output to - be generated for arrays of `time.Time` objects when using string-based time - formats. - -Thanks to @YashishDua for their contributions to this release. - -[#791]: https://github.com/uber-go/zap/pull/791 -[#795]: https://github.com/uber-go/zap/pull/795 -[#799]: https://github.com/uber-go/zap/pull/799 - -## 1.14.0 (20 Feb 2020) - -Enhancements: -* [#771][]: Optimize calls for disabled log levels. -* [#773][]: Add millisecond duration encoder. -* [#775][]: Add option to increase the level of a logger. -* [#786][]: Optimize time formatters using `Time.AppendFormat` where possible. - -Thanks to @caibirdme for their contributions to this release. - -[#771]: https://github.com/uber-go/zap/pull/771 -[#773]: https://github.com/uber-go/zap/pull/773 -[#775]: https://github.com/uber-go/zap/pull/775 -[#786]: https://github.com/uber-go/zap/pull/786 - -## 1.13.0 (13 Nov 2019) - -Enhancements: -* [#758][]: Add `Intp`, `Stringp`, and other similar `*p` field constructors - to log pointers to primitives with support for `nil` values. - -Thanks to @jbizzle for their contributions to this release. - -[#758]: https://github.com/uber-go/zap/pull/758 - -## 1.12.0 (29 Oct 2019) - -Enhancements: -* [#751][]: Migrate to Go modules. - -[#751]: https://github.com/uber-go/zap/pull/751 - -## 1.11.0 (21 Oct 2019) - -Enhancements: -* [#725][]: Add `zapcore.OmitKey` to omit keys in an `EncoderConfig`. -* [#736][]: Add `RFC3339` and `RFC3339Nano` time encoders. - -Thanks to @juicemia, @uhthomas for their contributions to this release. - -[#725]: https://github.com/uber-go/zap/pull/725 -[#736]: https://github.com/uber-go/zap/pull/736 - -## 1.10.0 (29 Apr 2019) - -Bugfixes: -* [#657][]: Fix `MapObjectEncoder.AppendByteString` not adding value as a - string. -* [#706][]: Fix incorrect call depth to determine caller in Go 1.12. - -Enhancements: -* [#610][]: Add `zaptest.WrapOptions` to wrap `zap.Option` for creating test - loggers. -* [#675][]: Don't panic when encoding a String field. -* [#704][]: Disable HTML escaping for JSON objects encoded using the - reflect-based encoder. - -Thanks to @iaroslav-ciupin, @lelenanam, @joa, @NWilson for their contributions -to this release. - -[#657]: https://github.com/uber-go/zap/pull/657 -[#706]: https://github.com/uber-go/zap/pull/706 -[#610]: https://github.com/uber-go/zap/pull/610 -[#675]: https://github.com/uber-go/zap/pull/675 -[#704]: https://github.com/uber-go/zap/pull/704 - -## 1.9.1 (06 Aug 2018) - -Bugfixes: - -* [#614][]: MapObjectEncoder should not ignore empty slices. - -[#614]: https://github.com/uber-go/zap/pull/614 - -## 1.9.0 (19 Jul 2018) - -Enhancements: -* [#602][]: Reduce number of allocations when logging with reflection. -* [#572][], [#606][]: Expose a registry for third-party logging sinks. - -Thanks to @nfarah86, @AlekSi, @JeanMertz, @philippgille, @etsangsplk, and -@dimroc for their contributions to this release. - -[#602]: https://github.com/uber-go/zap/pull/602 -[#572]: https://github.com/uber-go/zap/pull/572 -[#606]: https://github.com/uber-go/zap/pull/606 - -## 1.8.0 (13 Apr 2018) - -Enhancements: -* [#508][]: Make log level configurable when redirecting the standard - library's logger. -* [#518][]: Add a logger that writes to a `*testing.TB`. -* [#577][]: Add a top-level alias for `zapcore.Field` to clean up GoDoc. - -Bugfixes: -* [#574][]: Add a missing import comment to `go.uber.org/zap/buffer`. - -Thanks to @DiSiqueira and @djui for their contributions to this release. - -[#508]: https://github.com/uber-go/zap/pull/508 -[#518]: https://github.com/uber-go/zap/pull/518 -[#577]: https://github.com/uber-go/zap/pull/577 -[#574]: https://github.com/uber-go/zap/pull/574 - -## 1.7.1 (25 Sep 2017) - -Bugfixes: -* [#504][]: Store strings when using AddByteString with the map encoder. - -[#504]: https://github.com/uber-go/zap/pull/504 - -## 1.7.0 (21 Sep 2017) - -Enhancements: - -* [#487][]: Add `NewStdLogAt`, which extends `NewStdLog` by allowing the user - to specify the level of the logged messages. - -[#487]: https://github.com/uber-go/zap/pull/487 - -## 1.6.0 (30 Aug 2017) - -Enhancements: - -* [#491][]: Omit zap stack frames from stacktraces. -* [#490][]: Add a `ContextMap` method to observer logs for simpler - field validation in tests. - -[#490]: https://github.com/uber-go/zap/pull/490 -[#491]: https://github.com/uber-go/zap/pull/491 - -## 1.5.0 (22 Jul 2017) - -Enhancements: - -* [#460][] and [#470][]: Support errors produced by `go.uber.org/multierr`. -* [#465][]: Support user-supplied encoders for logger names. - -Bugfixes: - -* [#477][]: Fix a bug that incorrectly truncated deep stacktraces. - -Thanks to @richard-tunein and @pavius for their contributions to this release. - -[#477]: https://github.com/uber-go/zap/pull/477 -[#465]: https://github.com/uber-go/zap/pull/465 -[#460]: https://github.com/uber-go/zap/pull/460 -[#470]: https://github.com/uber-go/zap/pull/470 - -## 1.4.1 (08 Jun 2017) - -This release fixes two bugs. - -Bugfixes: - -* [#435][]: Support a variety of case conventions when unmarshaling levels. -* [#444][]: Fix a panic in the observer. - -[#435]: https://github.com/uber-go/zap/pull/435 -[#444]: https://github.com/uber-go/zap/pull/444 - -## 1.4.0 (12 May 2017) - -This release adds a few small features and is fully backward-compatible. - -Enhancements: - -* [#424][]: Add a `LineEnding` field to `EncoderConfig`, allowing users to - override the Unix-style default. -* [#425][]: Preserve time zones when logging times. -* [#431][]: Make `zap.AtomicLevel` implement `fmt.Stringer`, which makes a - variety of operations a bit simpler. - -[#424]: https://github.com/uber-go/zap/pull/424 -[#425]: https://github.com/uber-go/zap/pull/425 -[#431]: https://github.com/uber-go/zap/pull/431 - -## 1.3.0 (25 Apr 2017) - -This release adds an enhancement to zap's testing helpers as well as the -ability to marshal an AtomicLevel. It is fully backward-compatible. - -Enhancements: - -* [#415][]: Add a substring-filtering helper to zap's observer. This is - particularly useful when testing the `SugaredLogger`. -* [#416][]: Make `AtomicLevel` implement `encoding.TextMarshaler`. - -[#415]: https://github.com/uber-go/zap/pull/415 -[#416]: https://github.com/uber-go/zap/pull/416 - -## 1.2.0 (13 Apr 2017) - -This release adds a gRPC compatibility wrapper. It is fully backward-compatible. - -Enhancements: - -* [#402][]: Add a `zapgrpc` package that wraps zap's Logger and implements - `grpclog.Logger`. - -[#402]: https://github.com/uber-go/zap/pull/402 - -## 1.1.0 (31 Mar 2017) - -This release fixes two bugs and adds some enhancements to zap's testing helpers. -It is fully backward-compatible. - -Bugfixes: - -* [#385][]: Fix caller path trimming on Windows. -* [#396][]: Fix a panic when attempting to use non-existent directories with - zap's configuration struct. - -Enhancements: - -* [#386][]: Add filtering helpers to zaptest's observing logger. - -Thanks to @moitias for contributing to this release. - -[#385]: https://github.com/uber-go/zap/pull/385 -[#396]: https://github.com/uber-go/zap/pull/396 -[#386]: https://github.com/uber-go/zap/pull/386 - -## 1.0.0 (14 Mar 2017) - -This is zap's first stable release. All exported APIs are now final, and no -further breaking changes will be made in the 1.x release series. Anyone using a -semver-aware dependency manager should now pin to `^1`. - -Breaking changes: - -* [#366][]: Add byte-oriented APIs to encoders to log UTF-8 encoded text without - casting from `[]byte` to `string`. -* [#364][]: To support buffering outputs, add `Sync` methods to `zapcore.Core`, - `zap.Logger`, and `zap.SugaredLogger`. -* [#371][]: Rename the `testutils` package to `zaptest`, which is less likely to - clash with other testing helpers. - -Bugfixes: - -* [#362][]: Make the ISO8601 time formatters fixed-width, which is friendlier - for tab-separated console output. -* [#369][]: Remove the automatic locks in `zapcore.NewCore`, which allows zap to - work with concurrency-safe `WriteSyncer` implementations. -* [#347][]: Stop reporting errors when trying to `fsync` standard out on Linux - systems. -* [#373][]: Report the correct caller from zap's standard library - interoperability wrappers. - -Enhancements: - -* [#348][]: Add a registry allowing third-party encodings to work with zap's - built-in `Config`. -* [#327][]: Make the representation of logger callers configurable (like times, - levels, and durations). -* [#376][]: Allow third-party encoders to use their own buffer pools, which - removes the last performance advantage that zap's encoders have over plugins. -* [#346][]: Add `CombineWriteSyncers`, a convenience function to tee multiple - `WriteSyncer`s and lock the result. -* [#365][]: Make zap's stacktraces compatible with mid-stack inlining (coming in - Go 1.9). -* [#372][]: Export zap's observing logger as `zaptest/observer`. This makes it - easier for particularly punctilious users to unit test their application's - logging. - -Thanks to @suyash, @htrendev, @flisky, @Ulexus, and @skipor for their -contributions to this release. - -[#366]: https://github.com/uber-go/zap/pull/366 -[#364]: https://github.com/uber-go/zap/pull/364 -[#371]: https://github.com/uber-go/zap/pull/371 -[#362]: https://github.com/uber-go/zap/pull/362 -[#369]: https://github.com/uber-go/zap/pull/369 -[#347]: https://github.com/uber-go/zap/pull/347 -[#373]: https://github.com/uber-go/zap/pull/373 -[#348]: https://github.com/uber-go/zap/pull/348 -[#327]: https://github.com/uber-go/zap/pull/327 -[#376]: https://github.com/uber-go/zap/pull/376 -[#346]: https://github.com/uber-go/zap/pull/346 -[#365]: https://github.com/uber-go/zap/pull/365 -[#372]: https://github.com/uber-go/zap/pull/372 - -## 1.0.0-rc.3 (7 Mar 2017) - -This is the third release candidate for zap's stable release. There are no -breaking changes. - -Bugfixes: - -* [#339][]: Byte slices passed to `zap.Any` are now correctly treated as binary blobs - rather than `[]uint8`. - -Enhancements: - -* [#307][]: Users can opt into colored output for log levels. -* [#353][]: In addition to hijacking the output of the standard library's - package-global logging functions, users can now construct a zap-backed - `log.Logger` instance. -* [#311][]: Frames from common runtime functions and some of zap's internal - machinery are now omitted from stacktraces. - -Thanks to @ansel1 and @suyash for their contributions to this release. - -[#339]: https://github.com/uber-go/zap/pull/339 -[#307]: https://github.com/uber-go/zap/pull/307 -[#353]: https://github.com/uber-go/zap/pull/353 -[#311]: https://github.com/uber-go/zap/pull/311 - -## 1.0.0-rc.2 (21 Feb 2017) - -This is the second release candidate for zap's stable release. It includes two -breaking changes. - -Breaking changes: - -* [#316][]: Zap's global loggers are now fully concurrency-safe - (previously, users had to ensure that `ReplaceGlobals` was called before the - loggers were in use). However, they must now be accessed via the `L()` and - `S()` functions. Users can update their projects with - - ``` - gofmt -r "zap.L -> zap.L()" -w . - gofmt -r "zap.S -> zap.S()" -w . - ``` -* [#309][] and [#317][]: RC1 was mistakenly shipped with invalid - JSON and YAML struct tags on all config structs. This release fixes the tags - and adds static analysis to prevent similar bugs in the future. - -Bugfixes: - -* [#321][]: Redirecting the standard library's `log` output now - correctly reports the logger's caller. - -Enhancements: - -* [#325][] and [#333][]: Zap now transparently supports non-standard, rich - errors like those produced by `github.com/pkg/errors`. -* [#326][]: Though `New(nil)` continues to return a no-op logger, `NewNop()` is - now preferred. Users can update their projects with `gofmt -r 'zap.New(nil) -> - zap.NewNop()' -w .`. -* [#300][]: Incorrectly importing zap as `github.com/uber-go/zap` now returns a - more informative error. - -Thanks to @skipor and @chapsuk for their contributions to this release. - -[#316]: https://github.com/uber-go/zap/pull/316 -[#309]: https://github.com/uber-go/zap/pull/309 -[#317]: https://github.com/uber-go/zap/pull/317 -[#321]: https://github.com/uber-go/zap/pull/321 -[#325]: https://github.com/uber-go/zap/pull/325 -[#333]: https://github.com/uber-go/zap/pull/333 -[#326]: https://github.com/uber-go/zap/pull/326 -[#300]: https://github.com/uber-go/zap/pull/300 - -## 1.0.0-rc.1 (14 Feb 2017) - -This is the first release candidate for zap's stable release. There are multiple -breaking changes and improvements from the pre-release version. Most notably: - -* **Zap's import path is now "go.uber.org/zap"** — all users will - need to update their code. -* User-facing types and functions remain in the `zap` package. Code relevant - largely to extension authors is now in the `zapcore` package. -* The `zapcore.Core` type makes it easy for third-party packages to use zap's - internals but provide a different user-facing API. -* `Logger` is now a concrete type instead of an interface. -* A less verbose (though slower) logging API is included by default. -* Package-global loggers `L` and `S` are included. -* A human-friendly console encoder is included. -* A declarative config struct allows common logger configurations to be managed - as configuration instead of code. -* Sampling is more accurate, and doesn't depend on the standard library's shared - timer heap. - -## 0.1.0-beta.1 (6 Feb 2017) - -This is a minor version, tagged to allow users to pin to the pre-1.0 APIs and -upgrade at their leisure. Since this is the first tagged release, there are no -backward compatibility concerns and all functionality is new. - -Early zap adopters should pin to the 0.1.x minor version until they're ready to -upgrade to the upcoming stable release. diff --git a/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md b/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md deleted file mode 100644 index bc988b7..0000000 --- a/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,75 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, -body size, disability, ethnicity, gender identity and expression, level of -experience, nationality, personal appearance, race, religion, or sexual -identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an -appointed representative at an online or offline event. Representation of a -project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at oss-conduct@uber.com. The project -team will review and investigate all complaints, and will respond in a way -that it deems appropriate to the circumstances. The project team is obligated -to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 1.4, available at -[http://contributor-covenant.org/version/1/4][version]. - -[homepage]: https://contributor-covenant.org -[version]: https://contributor-covenant.org/version/1/4/ diff --git a/vendor/go.uber.org/zap/CONTRIBUTING.md b/vendor/go.uber.org/zap/CONTRIBUTING.md deleted file mode 100644 index ea02f3c..0000000 --- a/vendor/go.uber.org/zap/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing - -We'd love your help making zap the very best structured logging library in Go! - -If you'd like to add new exported APIs, please [open an issue][open-issue] -describing your proposal — discussing API changes ahead of time makes -pull request review much smoother. In your issue, pull request, and any other -communications, please remember to treat your fellow contributors with -respect! We take our [code of conduct](CODE_OF_CONDUCT.md) seriously. - -Note that you'll need to sign [Uber's Contributor License Agreement][cla] -before we can accept any of your contributions. If necessary, a bot will remind -you to accept the CLA when you open your pull request. - -## Setup - -[Fork][fork], then clone the repository: - -```bash -mkdir -p $GOPATH/src/go.uber.org -cd $GOPATH/src/go.uber.org -git clone git@github.com:your_github_username/zap.git -cd zap -git remote add upstream https://github.com/uber-go/zap.git -git fetch upstream -``` - -Make sure that the tests and the linters pass: - -```bash -make test -make lint -``` - -## Making Changes - -Start by creating a new branch for your changes: - -```bash -cd $GOPATH/src/go.uber.org/zap -git checkout master -git fetch upstream -git rebase upstream/master -git checkout -b cool_new_feature -``` - -Make your changes, then ensure that `make lint` and `make test` still pass. If -you're satisfied with your changes, push them to your fork. - -```bash -git push origin cool_new_feature -``` - -Then use the GitHub UI to open a pull request. - -At this point, you're waiting on us to review your changes. We _try_ to respond -to issues and pull requests within a few business days, and we may suggest some -improvements or alternatives. Once your changes are approved, one of the -project maintainers will merge them. - -We're much more likely to approve your changes if you: - -- Add tests for new functionality. -- Write a [good commit message][commit-message]. -- Maintain backward compatibility. - -[fork]: https://github.com/uber-go/zap/fork -[open-issue]: https://github.com/uber-go/zap/issues/new -[cla]: https://cla-assistant.io/uber-go/zap -[commit-message]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html diff --git a/vendor/go.uber.org/zap/FAQ.md b/vendor/go.uber.org/zap/FAQ.md deleted file mode 100644 index b183b20..0000000 --- a/vendor/go.uber.org/zap/FAQ.md +++ /dev/null @@ -1,164 +0,0 @@ -# Frequently Asked Questions - -## Design - -### Why spend so much effort on logger performance? - -Of course, most applications won't notice the impact of a slow logger: they -already take tens or hundreds of milliseconds for each operation, so an extra -millisecond doesn't matter. - -On the other hand, why *not* make structured logging fast? The `SugaredLogger` -isn't any harder to use than other logging packages, and the `Logger` makes -structured logging possible in performance-sensitive contexts. Across a fleet -of Go microservices, making each application even slightly more efficient adds -up quickly. - -### Why aren't `Logger` and `SugaredLogger` interfaces? - -Unlike the familiar `io.Writer` and `http.Handler`, `Logger` and -`SugaredLogger` interfaces would include *many* methods. As [Rob Pike points -out][go-proverbs], "The bigger the interface, the weaker the abstraction." -Interfaces are also rigid — *any* change requires releasing a new major -version, since it breaks all third-party implementations. - -Making the `Logger` and `SugaredLogger` concrete types doesn't sacrifice much -abstraction, and it lets us add methods without introducing breaking changes. -Your applications should define and depend upon an interface that includes -just the methods you use. - -### Why are some of my logs missing? - -Logs are dropped intentionally by zap when sampling is enabled. The production -configuration (as returned by `NewProductionConfig()` enables sampling which will -cause repeated logs within a second to be sampled. See more details on why sampling -is enabled in [Why sample application logs](https://github.com/uber-go/zap/blob/master/FAQ.md#why-sample-application-logs). - -### Why sample application logs? - -Applications often experience runs of errors, either because of a bug or -because of a misbehaving user. Logging errors is usually a good idea, but it -can easily make this bad situation worse: not only is your application coping -with a flood of errors, it's also spending extra CPU cycles and I/O logging -those errors. Since writes are typically serialized, logging limits throughput -when you need it most. - -Sampling fixes this problem by dropping repetitive log entries. Under normal -conditions, your application writes out every entry. When similar entries are -logged hundreds or thousands of times each second, though, zap begins dropping -duplicates to preserve throughput. - -### Why do the structured logging APIs take a message in addition to fields? - -Subjectively, we find it helpful to accompany structured context with a brief -description. This isn't critical during development, but it makes debugging -and operating unfamiliar systems much easier. - -More concretely, zap's sampling algorithm uses the message to identify -duplicate entries. In our experience, this is a practical middle ground -between random sampling (which often drops the exact entry that you need while -debugging) and hashing the complete entry (which is prohibitively expensive). - -### Why include package-global loggers? - -Since so many other logging packages include a global logger, many -applications aren't designed to accept loggers as explicit parameters. -Changing function signatures is often a breaking change, so zap includes -global loggers to simplify migration. - -Avoid them where possible. - -### Why include dedicated Panic and Fatal log levels? - -In general, application code should handle errors gracefully instead of using -`panic` or `os.Exit`. However, every rule has exceptions, and it's common to -crash when an error is truly unrecoverable. To avoid losing any information -— especially the reason for the crash — the logger must flush any -buffered entries before the process exits. - -Zap makes this easy by offering `Panic` and `Fatal` logging methods that -automatically flush before exiting. Of course, this doesn't guarantee that -logs will never be lost, but it eliminates a common error. - -See the discussion in uber-go/zap#207 for more details. - -### What's `DPanic`? - -`DPanic` stands for "panic in development." In development, it logs at -`PanicLevel`; otherwise, it logs at `ErrorLevel`. `DPanic` makes it easier to -catch errors that are theoretically possible, but shouldn't actually happen, -*without* crashing in production. - -If you've ever written code like this, you need `DPanic`: - -```go -if err != nil { - panic(fmt.Sprintf("shouldn't ever get here: %v", err)) -} -``` - -## Installation - -### What does the error `expects import "go.uber.org/zap"` mean? - -Either zap was installed incorrectly or you're referencing the wrong package -name in your code. - -Zap's source code happens to be hosted on GitHub, but the [import -path][import-path] is `go.uber.org/zap`. This gives us, the project -maintainers, the freedom to move the source code if necessary. However, it -means that you need to take a little care when installing and using the -package. - -If you follow two simple rules, everything should work: install zap with `go -get -u go.uber.org/zap`, and always import it in your code with `import -"go.uber.org/zap"`. Your code shouldn't contain *any* references to -`github.com/uber-go/zap`. - -## Usage - -### Does zap support log rotation? - -Zap doesn't natively support rotating log files, since we prefer to leave this -to an external program like `logrotate`. - -However, it's easy to integrate a log rotation package like -[`gopkg.in/natefinch/lumberjack.v2`][lumberjack] as a `zapcore.WriteSyncer`. - -```go -// lumberjack.Logger is already safe for concurrent use, so we don't need to -// lock it. -w := zapcore.AddSync(&lumberjack.Logger{ - Filename: "/var/log/myapp/foo.log", - MaxSize: 500, // megabytes - MaxBackups: 3, - MaxAge: 28, // days -}) -core := zapcore.NewCore( - zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()), - w, - zap.InfoLevel, -) -logger := zap.New(core) -``` - -## Extensions - -We'd love to support every logging need within zap itself, but we're only -familiar with a handful of log ingestion systems, flag-parsing packages, and -the like. Rather than merging code that we can't effectively debug and -support, we'd rather grow an ecosystem of zap extensions. - -We're aware of the following extensions, but haven't used them ourselves: - -| Package | Integration | -| --- | --- | -| `github.com/tchap/zapext` | Sentry, syslog | -| `github.com/fgrosse/zaptest` | Ginkgo | -| `github.com/blendle/zapdriver` | Stackdriver | -| `github.com/moul/zapgorm` | Gorm | -| `github.com/moul/zapfilter` | Advanced filtering rules | - -[go-proverbs]: https://go-proverbs.github.io/ -[import-path]: https://golang.org/cmd/go/#hdr-Remote_import_paths -[lumberjack]: https://godoc.org/gopkg.in/natefinch/lumberjack.v2 diff --git a/vendor/go.uber.org/zap/LICENSE b/vendor/go.uber.org/zap/LICENSE deleted file mode 100644 index 3883b9a..0000000 --- a/vendor/go.uber.org/zap/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2016-2024 Uber Technologies, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/go.uber.org/zap/Makefile b/vendor/go.uber.org/zap/Makefile deleted file mode 100644 index f9db385..0000000 --- a/vendor/go.uber.org/zap/Makefile +++ /dev/null @@ -1,76 +0,0 @@ -# Directory containing the Makefile. -PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) - -export GOBIN ?= $(PROJECT_ROOT)/bin -export PATH := $(GOBIN):$(PATH) - -GOVULNCHECK = $(GOBIN)/govulncheck -BENCH_FLAGS ?= -cpuprofile=cpu.pprof -memprofile=mem.pprof -benchmem - -# Directories containing independent Go modules. -MODULE_DIRS = . ./exp ./benchmarks ./zapgrpc/internal/test - -# Directories that we want to track coverage for. -COVER_DIRS = . ./exp - -.PHONY: all -all: lint test - -.PHONY: lint -lint: golangci-lint tidy-lint license-lint - -.PHONY: golangci-lint -golangci-lint: - @$(foreach mod,$(MODULE_DIRS), \ - (cd $(mod) && \ - echo "[lint] golangci-lint: $(mod)" && \ - golangci-lint run --path-prefix $(mod) ./...) &&) true - -.PHONY: tidy -tidy: - @$(foreach dir,$(MODULE_DIRS), \ - (cd $(dir) && go mod tidy) &&) true - -.PHONY: tidy-lint -tidy-lint: - @$(foreach mod,$(MODULE_DIRS), \ - (cd $(mod) && \ - echo "[lint] tidy: $(mod)" && \ - go mod tidy && \ - git diff --exit-code -- go.mod go.sum) &&) true - - -.PHONY: license-lint -license-lint: - ./checklicense.sh - -$(GOVULNCHECK): - cd tools && go install golang.org/x/vuln/cmd/govulncheck - -.PHONY: test -test: - @$(foreach dir,$(MODULE_DIRS),(cd $(dir) && go test -race ./...) &&) true - -.PHONY: cover -cover: - @$(foreach dir,$(COVER_DIRS), ( \ - cd $(dir) && \ - go test -race -coverprofile=cover.out -coverpkg=./... ./... \ - && go tool cover -html=cover.out -o cover.html) &&) true - -.PHONY: bench -BENCH ?= . -bench: - @$(foreach dir,$(MODULE_DIRS), ( \ - cd $(dir) && \ - go list ./... | xargs -n1 go test -bench=$(BENCH) -run="^$$" $(BENCH_FLAGS) \ - ) &&) true - -.PHONY: updatereadme -updatereadme: - rm -f README.md - cat .readme.tmpl | go run internal/readme/readme.go > README.md - -.PHONY: vulncheck -vulncheck: $(GOVULNCHECK) - $(GOVULNCHECK) ./... diff --git a/vendor/go.uber.org/zap/README.md b/vendor/go.uber.org/zap/README.md deleted file mode 100644 index a17035c..0000000 --- a/vendor/go.uber.org/zap/README.md +++ /dev/null @@ -1,149 +0,0 @@ -# :zap: zap - - -
- -Blazing fast, structured, leveled logging in Go. - -![Zap logo](assets/logo.png) - -[![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] - -
- -## Installation - -`go get -u go.uber.org/zap` - -Note that zap only supports the two most recent minor versions of Go. - -## Quick Start - -In contexts where performance is nice, but not critical, use the -`SugaredLogger`. It's 4-10x faster than other structured logging -packages and includes both structured and `printf`-style APIs. - -```go -logger, _ := zap.NewProduction() -defer logger.Sync() // flushes buffer, if any -sugar := logger.Sugar() -sugar.Infow("failed to fetch URL", - // Structured context as loosely typed key-value pairs. - "url", url, - "attempt", 3, - "backoff", time.Second, -) -sugar.Infof("Failed to fetch URL: %s", url) -``` - -When performance and type safety are critical, use the `Logger`. It's even -faster than the `SugaredLogger` and allocates far less, but it only supports -structured logging. - -```go -logger, _ := zap.NewProduction() -defer logger.Sync() -logger.Info("failed to fetch URL", - // Structured context as strongly typed Field values. - zap.String("url", url), - zap.Int("attempt", 3), - zap.Duration("backoff", time.Second), -) -``` - -See the [documentation][doc] and [FAQ](FAQ.md) for more details. - -## Performance - -For applications that log in the hot path, reflection-based serialization and -string formatting are prohibitively expensive — they're CPU-intensive -and make many small allocations. Put differently, using `encoding/json` and -`fmt.Fprintf` to log tons of `interface{}`s makes your application slow. - -Zap takes a different approach. It includes a reflection-free, zero-allocation -JSON encoder, and the base `Logger` strives to avoid serialization overhead -and allocations wherever possible. By building the high-level `SugaredLogger` -on that foundation, zap lets users *choose* when they need to count every -allocation and when they'd prefer a more familiar, loosely typed API. - -As measured by its own [benchmarking suite][], not only is zap more performant -than comparable structured logging packages — it's also faster than the -standard library. Like all benchmarks, take these with a grain of salt.[1](#footnote-versions) - -Log a message and 10 fields: - -| Package | Time | Time % to zap | Objects Allocated | -| :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 656 ns/op | +0% | 5 allocs/op -| :zap: zap (sugared) | 935 ns/op | +43% | 10 allocs/op -| zerolog | 380 ns/op | -42% | 1 allocs/op -| go-kit | 2249 ns/op | +243% | 57 allocs/op -| slog (LogAttrs) | 2479 ns/op | +278% | 40 allocs/op -| slog | 2481 ns/op | +278% | 42 allocs/op -| apex/log | 9591 ns/op | +1362% | 63 allocs/op -| log15 | 11393 ns/op | +1637% | 75 allocs/op -| logrus | 11654 ns/op | +1677% | 79 allocs/op - -Log a message with a logger that already has 10 fields of context: - -| Package | Time | Time % to zap | Objects Allocated | -| :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 67 ns/op | +0% | 0 allocs/op -| :zap: zap (sugared) | 84 ns/op | +25% | 1 allocs/op -| zerolog | 35 ns/op | -48% | 0 allocs/op -| slog | 193 ns/op | +188% | 0 allocs/op -| slog (LogAttrs) | 200 ns/op | +199% | 0 allocs/op -| go-kit | 2460 ns/op | +3572% | 56 allocs/op -| log15 | 9038 ns/op | +13390% | 70 allocs/op -| apex/log | 9068 ns/op | +13434% | 53 allocs/op -| logrus | 10521 ns/op | +15603% | 68 allocs/op - -Log a static string, without any context or `printf`-style templating: - -| Package | Time | Time % to zap | Objects Allocated | -| :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 63 ns/op | +0% | 0 allocs/op -| :zap: zap (sugared) | 81 ns/op | +29% | 1 allocs/op -| zerolog | 32 ns/op | -49% | 0 allocs/op -| standard library | 124 ns/op | +97% | 1 allocs/op -| slog | 196 ns/op | +211% | 0 allocs/op -| slog (LogAttrs) | 200 ns/op | +217% | 0 allocs/op -| go-kit | 213 ns/op | +238% | 9 allocs/op -| apex/log | 771 ns/op | +1124% | 5 allocs/op -| logrus | 1439 ns/op | +2184% | 23 allocs/op -| log15 | 2069 ns/op | +3184% | 20 allocs/op - -## Development Status: Stable - -All APIs are finalized, and no breaking changes will be made in the 1.x series -of releases. Users of semver-aware dependency management systems should pin -zap to `^1`. - -## Contributing - -We encourage and support an active, healthy community of contributors — -including you! Details are in the [contribution guide](CONTRIBUTING.md) and -the [code of conduct](CODE_OF_CONDUCT.md). The zap maintainers keep an eye on -issues and pull requests, but you can also report any negative conduct to -oss-conduct@uber.com. That email list is a private, safe space; even the zap -maintainers don't have access, so don't hesitate to hold us to a high -standard. - -
- -Released under the [MIT License](LICENSE). - -1 In particular, keep in mind that we may be -benchmarking against slightly older versions of other packages. Versions are -pinned in the [benchmarks/go.mod][] file. [↩](#anchor-versions) - -[doc-img]: https://pkg.go.dev/badge/go.uber.org/zap -[doc]: https://pkg.go.dev/go.uber.org/zap -[ci-img]: https://github.com/uber-go/zap/actions/workflows/go.yml/badge.svg -[ci]: https://github.com/uber-go/zap/actions/workflows/go.yml -[cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg -[cov]: https://codecov.io/gh/uber-go/zap -[benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks -[benchmarks/go.mod]: https://github.com/uber-go/zap/blob/master/benchmarks/go.mod - diff --git a/vendor/go.uber.org/zap/array.go b/vendor/go.uber.org/zap/array.go deleted file mode 100644 index abfccb5..0000000 --- a/vendor/go.uber.org/zap/array.go +++ /dev/null @@ -1,447 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "fmt" - "time" - - "go.uber.org/zap/zapcore" -) - -// Array constructs a field with the given key and ArrayMarshaler. It provides -// a flexible, but still type-safe and efficient, way to add array-like types -// to the logging context. The struct's MarshalLogArray method is called lazily. -func Array(key string, val zapcore.ArrayMarshaler) Field { - return Field{Key: key, Type: zapcore.ArrayMarshalerType, Interface: val} -} - -// Bools constructs a field that carries a slice of bools. -func Bools(key string, bs []bool) Field { - return Array(key, bools(bs)) -} - -// ByteStrings constructs a field that carries a slice of []byte, each of which -// must be UTF-8 encoded text. -func ByteStrings(key string, bss [][]byte) Field { - return Array(key, byteStringsArray(bss)) -} - -// Complex128s constructs a field that carries a slice of complex numbers. -func Complex128s(key string, nums []complex128) Field { - return Array(key, complex128s(nums)) -} - -// Complex64s constructs a field that carries a slice of complex numbers. -func Complex64s(key string, nums []complex64) Field { - return Array(key, complex64s(nums)) -} - -// Durations constructs a field that carries a slice of time.Durations. -func Durations(key string, ds []time.Duration) Field { - return Array(key, durations(ds)) -} - -// Float64s constructs a field that carries a slice of floats. -func Float64s(key string, nums []float64) Field { - return Array(key, float64s(nums)) -} - -// Float32s constructs a field that carries a slice of floats. -func Float32s(key string, nums []float32) Field { - return Array(key, float32s(nums)) -} - -// Ints constructs a field that carries a slice of integers. -func Ints(key string, nums []int) Field { - return Array(key, ints(nums)) -} - -// Int64s constructs a field that carries a slice of integers. -func Int64s(key string, nums []int64) Field { - return Array(key, int64s(nums)) -} - -// Int32s constructs a field that carries a slice of integers. -func Int32s(key string, nums []int32) Field { - return Array(key, int32s(nums)) -} - -// Int16s constructs a field that carries a slice of integers. -func Int16s(key string, nums []int16) Field { - return Array(key, int16s(nums)) -} - -// Int8s constructs a field that carries a slice of integers. -func Int8s(key string, nums []int8) Field { - return Array(key, int8s(nums)) -} - -// Objects constructs a field with the given key, holding a list of the -// provided objects that can be marshaled by Zap. -// -// Note that these objects must implement zapcore.ObjectMarshaler directly. -// That is, if you're trying to marshal a []Request, the MarshalLogObject -// method must be declared on the Request type, not its pointer (*Request). -// If it's on the pointer, use ObjectValues. -// -// Given an object that implements MarshalLogObject on the value receiver, you -// can log a slice of those objects with Objects like so: -// -// type Author struct{ ... } -// func (a Author) MarshalLogObject(enc zapcore.ObjectEncoder) error -// -// var authors []Author = ... -// logger.Info("loading article", zap.Objects("authors", authors)) -// -// Similarly, given a type that implements MarshalLogObject on its pointer -// receiver, you can log a slice of pointers to that object with Objects like -// so: -// -// type Request struct{ ... } -// func (r *Request) MarshalLogObject(enc zapcore.ObjectEncoder) error -// -// var requests []*Request = ... -// logger.Info("sending requests", zap.Objects("requests", requests)) -// -// If instead, you have a slice of values of such an object, use the -// ObjectValues constructor. -// -// var requests []Request = ... -// logger.Info("sending requests", zap.ObjectValues("requests", requests)) -func Objects[T zapcore.ObjectMarshaler](key string, values []T) Field { - return Array(key, objects[T](values)) -} - -type objects[T zapcore.ObjectMarshaler] []T - -func (os objects[T]) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for _, o := range os { - if err := arr.AppendObject(o); err != nil { - return err - } - } - return nil -} - -// ObjectMarshalerPtr is a constraint that specifies that the given type -// implements zapcore.ObjectMarshaler on a pointer receiver. -type ObjectMarshalerPtr[T any] interface { - *T - zapcore.ObjectMarshaler -} - -// ObjectValues constructs a field with the given key, holding a list of the -// provided objects, where pointers to these objects can be marshaled by Zap. -// -// Note that pointers to these objects must implement zapcore.ObjectMarshaler. -// That is, if you're trying to marshal a []Request, the MarshalLogObject -// method must be declared on the *Request type, not the value (Request). -// If it's on the value, use Objects. -// -// Given an object that implements MarshalLogObject on the pointer receiver, -// you can log a slice of those objects with ObjectValues like so: -// -// type Request struct{ ... } -// func (r *Request) MarshalLogObject(enc zapcore.ObjectEncoder) error -// -// var requests []Request = ... -// logger.Info("sending requests", zap.ObjectValues("requests", requests)) -// -// If instead, you have a slice of pointers of such an object, use the Objects -// field constructor. -// -// var requests []*Request = ... -// logger.Info("sending requests", zap.Objects("requests", requests)) -func ObjectValues[T any, P ObjectMarshalerPtr[T]](key string, values []T) Field { - return Array(key, objectValues[T, P](values)) -} - -type objectValues[T any, P ObjectMarshalerPtr[T]] []T - -func (os objectValues[T, P]) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range os { - // It is necessary for us to explicitly reference the "P" type. - // We cannot simply pass "&os[i]" to AppendObject because its type - // is "*T", which the type system does not consider as - // implementing ObjectMarshaler. - // Only the type "P" satisfies ObjectMarshaler, which we have - // to convert "*T" to explicitly. - var p P = &os[i] - if err := arr.AppendObject(p); err != nil { - return err - } - } - return nil -} - -// Strings constructs a field that carries a slice of strings. -func Strings(key string, ss []string) Field { - return Array(key, stringArray(ss)) -} - -// Stringers constructs a field with the given key, holding a list of the -// output provided by the value's String method -// -// Given an object that implements String on the value receiver, you -// can log a slice of those objects with Objects like so: -// -// type Request struct{ ... } -// func (a Request) String() string -// -// var requests []Request = ... -// logger.Info("sending requests", zap.Stringers("requests", requests)) -// -// Note that these objects must implement fmt.Stringer directly. -// That is, if you're trying to marshal a []Request, the String method -// must be declared on the Request type, not its pointer (*Request). -func Stringers[T fmt.Stringer](key string, values []T) Field { - return Array(key, stringers[T](values)) -} - -type stringers[T fmt.Stringer] []T - -func (os stringers[T]) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for _, o := range os { - arr.AppendString(o.String()) - } - return nil -} - -// Times constructs a field that carries a slice of time.Times. -func Times(key string, ts []time.Time) Field { - return Array(key, times(ts)) -} - -// Uints constructs a field that carries a slice of unsigned integers. -func Uints(key string, nums []uint) Field { - return Array(key, uints(nums)) -} - -// Uint64s constructs a field that carries a slice of unsigned integers. -func Uint64s(key string, nums []uint64) Field { - return Array(key, uint64s(nums)) -} - -// Uint32s constructs a field that carries a slice of unsigned integers. -func Uint32s(key string, nums []uint32) Field { - return Array(key, uint32s(nums)) -} - -// Uint16s constructs a field that carries a slice of unsigned integers. -func Uint16s(key string, nums []uint16) Field { - return Array(key, uint16s(nums)) -} - -// Uint8s constructs a field that carries a slice of unsigned integers. -func Uint8s(key string, nums []uint8) Field { - return Array(key, uint8s(nums)) -} - -// Uintptrs constructs a field that carries a slice of pointer addresses. -func Uintptrs(key string, us []uintptr) Field { - return Array(key, uintptrs(us)) -} - -// Errors constructs a field that carries a slice of errors. -func Errors(key string, errs []error) Field { - return Array(key, errArray(errs)) -} - -type bools []bool - -func (bs bools) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range bs { - arr.AppendBool(bs[i]) - } - return nil -} - -type byteStringsArray [][]byte - -func (bss byteStringsArray) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range bss { - arr.AppendByteString(bss[i]) - } - return nil -} - -type complex128s []complex128 - -func (nums complex128s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendComplex128(nums[i]) - } - return nil -} - -type complex64s []complex64 - -func (nums complex64s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendComplex64(nums[i]) - } - return nil -} - -type durations []time.Duration - -func (ds durations) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range ds { - arr.AppendDuration(ds[i]) - } - return nil -} - -type float64s []float64 - -func (nums float64s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendFloat64(nums[i]) - } - return nil -} - -type float32s []float32 - -func (nums float32s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendFloat32(nums[i]) - } - return nil -} - -type ints []int - -func (nums ints) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendInt(nums[i]) - } - return nil -} - -type int64s []int64 - -func (nums int64s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendInt64(nums[i]) - } - return nil -} - -type int32s []int32 - -func (nums int32s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendInt32(nums[i]) - } - return nil -} - -type int16s []int16 - -func (nums int16s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendInt16(nums[i]) - } - return nil -} - -type int8s []int8 - -func (nums int8s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendInt8(nums[i]) - } - return nil -} - -type stringArray []string - -func (ss stringArray) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range ss { - arr.AppendString(ss[i]) - } - return nil -} - -type times []time.Time - -func (ts times) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range ts { - arr.AppendTime(ts[i]) - } - return nil -} - -type uints []uint - -func (nums uints) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendUint(nums[i]) - } - return nil -} - -type uint64s []uint64 - -func (nums uint64s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendUint64(nums[i]) - } - return nil -} - -type uint32s []uint32 - -func (nums uint32s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendUint32(nums[i]) - } - return nil -} - -type uint16s []uint16 - -func (nums uint16s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendUint16(nums[i]) - } - return nil -} - -type uint8s []uint8 - -func (nums uint8s) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendUint8(nums[i]) - } - return nil -} - -type uintptrs []uintptr - -func (nums uintptrs) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range nums { - arr.AppendUintptr(nums[i]) - } - return nil -} diff --git a/vendor/go.uber.org/zap/buffer/buffer.go b/vendor/go.uber.org/zap/buffer/buffer.go deleted file mode 100644 index 0b8540c..0000000 --- a/vendor/go.uber.org/zap/buffer/buffer.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package buffer provides a thin wrapper around a byte slice. Unlike the -// standard library's bytes.Buffer, it supports a portion of the strconv -// package's zero-allocation formatters. -package buffer // import "go.uber.org/zap/buffer" - -import ( - "strconv" - "time" -) - -const _size = 1024 // by default, create 1 KiB buffers - -// Buffer is a thin wrapper around a byte slice. It's intended to be pooled, so -// the only way to construct one is via a Pool. -type Buffer struct { - bs []byte - pool Pool -} - -// AppendByte writes a single byte to the Buffer. -func (b *Buffer) AppendByte(v byte) { - b.bs = append(b.bs, v) -} - -// AppendBytes writes the given slice of bytes to the Buffer. -func (b *Buffer) AppendBytes(v []byte) { - b.bs = append(b.bs, v...) -} - -// AppendString writes a string to the Buffer. -func (b *Buffer) AppendString(s string) { - b.bs = append(b.bs, s...) -} - -// AppendInt appends an integer to the underlying buffer (assuming base 10). -func (b *Buffer) AppendInt(i int64) { - b.bs = strconv.AppendInt(b.bs, i, 10) -} - -// AppendTime appends the time formatted using the specified layout. -func (b *Buffer) AppendTime(t time.Time, layout string) { - b.bs = t.AppendFormat(b.bs, layout) -} - -// AppendUint appends an unsigned integer to the underlying buffer (assuming -// base 10). -func (b *Buffer) AppendUint(i uint64) { - b.bs = strconv.AppendUint(b.bs, i, 10) -} - -// AppendBool appends a bool to the underlying buffer. -func (b *Buffer) AppendBool(v bool) { - b.bs = strconv.AppendBool(b.bs, v) -} - -// AppendFloat appends a float to the underlying buffer. It doesn't quote NaN -// or +/- Inf. -func (b *Buffer) AppendFloat(f float64, bitSize int) { - b.bs = strconv.AppendFloat(b.bs, f, 'f', -1, bitSize) -} - -// Len returns the length of the underlying byte slice. -func (b *Buffer) Len() int { - return len(b.bs) -} - -// Cap returns the capacity of the underlying byte slice. -func (b *Buffer) Cap() int { - return cap(b.bs) -} - -// Bytes returns a mutable reference to the underlying byte slice. -func (b *Buffer) Bytes() []byte { - return b.bs -} - -// String returns a string copy of the underlying byte slice. -func (b *Buffer) String() string { - return string(b.bs) -} - -// Reset resets the underlying byte slice. Subsequent writes re-use the slice's -// backing array. -func (b *Buffer) Reset() { - b.bs = b.bs[:0] -} - -// Write implements io.Writer. -func (b *Buffer) Write(bs []byte) (int, error) { - b.bs = append(b.bs, bs...) - return len(bs), nil -} - -// WriteByte writes a single byte to the Buffer. -// -// Error returned is always nil, function signature is compatible -// with bytes.Buffer and bufio.Writer -func (b *Buffer) WriteByte(v byte) error { - b.AppendByte(v) - return nil -} - -// WriteString writes a string to the Buffer. -// -// Error returned is always nil, function signature is compatible -// with bytes.Buffer and bufio.Writer -func (b *Buffer) WriteString(s string) (int, error) { - b.AppendString(s) - return len(s), nil -} - -// TrimNewline trims any final "\n" byte from the end of the buffer. -func (b *Buffer) TrimNewline() { - if i := len(b.bs) - 1; i >= 0 { - if b.bs[i] == '\n' { - b.bs = b.bs[:i] - } - } -} - -// Free returns the Buffer to its Pool. -// -// Callers must not retain references to the Buffer after calling Free. -func (b *Buffer) Free() { - b.pool.put(b) -} diff --git a/vendor/go.uber.org/zap/buffer/pool.go b/vendor/go.uber.org/zap/buffer/pool.go deleted file mode 100644 index 8463233..0000000 --- a/vendor/go.uber.org/zap/buffer/pool.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package buffer - -import ( - "go.uber.org/zap/internal/pool" -) - -// A Pool is a type-safe wrapper around a sync.Pool. -type Pool struct { - p *pool.Pool[*Buffer] -} - -// NewPool constructs a new Pool. -func NewPool() Pool { - return Pool{ - p: pool.New(func() *Buffer { - return &Buffer{ - bs: make([]byte, 0, _size), - } - }), - } -} - -// Get retrieves a Buffer from the pool, creating one if necessary. -func (p Pool) Get() *Buffer { - buf := p.p.Get() - buf.Reset() - buf.pool = p - return buf -} - -func (p Pool) put(buf *Buffer) { - p.p.Put(buf) -} diff --git a/vendor/go.uber.org/zap/checklicense.sh b/vendor/go.uber.org/zap/checklicense.sh deleted file mode 100644 index 345ac8b..0000000 --- a/vendor/go.uber.org/zap/checklicense.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -e - -ERROR_COUNT=0 -while read -r file -do - case "$(head -1 "${file}")" in - *"Copyright (c) "*" Uber Technologies, Inc.") - # everything's cool - ;; - *) - echo "$file is missing license header." - (( ERROR_COUNT++ )) - ;; - esac -done < <(git ls-files "*\.go") - -exit $ERROR_COUNT diff --git a/vendor/go.uber.org/zap/config.go b/vendor/go.uber.org/zap/config.go deleted file mode 100644 index e76e4e6..0000000 --- a/vendor/go.uber.org/zap/config.go +++ /dev/null @@ -1,330 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "errors" - "sort" - "time" - - "go.uber.org/zap/zapcore" -) - -// SamplingConfig sets a sampling strategy for the logger. Sampling caps the -// global CPU and I/O load that logging puts on your process while attempting -// to preserve a representative subset of your logs. -// -// If specified, the Sampler will invoke the Hook after each decision. -// -// Values configured here are per-second. See zapcore.NewSamplerWithOptions for -// details. -type SamplingConfig struct { - Initial int `json:"initial" yaml:"initial"` - Thereafter int `json:"thereafter" yaml:"thereafter"` - Hook func(zapcore.Entry, zapcore.SamplingDecision) `json:"-" yaml:"-"` -} - -// Config offers a declarative way to construct a logger. It doesn't do -// anything that can't be done with New, Options, and the various -// zapcore.WriteSyncer and zapcore.Core wrappers, but it's a simpler way to -// toggle common options. -// -// Note that Config intentionally supports only the most common options. More -// unusual logging setups (logging to network connections or message queues, -// splitting output between multiple files, etc.) are possible, but require -// direct use of the zapcore package. For sample code, see the package-level -// BasicConfiguration and AdvancedConfiguration examples. -// -// For an example showing runtime log level changes, see the documentation for -// AtomicLevel. -type Config struct { - // Level is the minimum enabled logging level. Note that this is a dynamic - // level, so calling Config.Level.SetLevel will atomically change the log - // level of all loggers descended from this config. - Level AtomicLevel `json:"level" yaml:"level"` - // Development puts the logger in development mode, which changes the - // behavior of DPanicLevel and takes stacktraces more liberally. - Development bool `json:"development" yaml:"development"` - // DisableCaller stops annotating logs with the calling function's file - // name and line number. By default, all logs are annotated. - DisableCaller bool `json:"disableCaller" yaml:"disableCaller"` - // DisableStacktrace completely disables automatic stacktrace capturing. By - // default, stacktraces are captured for WarnLevel and above logs in - // development and ErrorLevel and above in production. - DisableStacktrace bool `json:"disableStacktrace" yaml:"disableStacktrace"` - // Sampling sets a sampling policy. A nil SamplingConfig disables sampling. - Sampling *SamplingConfig `json:"sampling" yaml:"sampling"` - // Encoding sets the logger's encoding. Valid values are "json" and - // "console", as well as any third-party encodings registered via - // RegisterEncoder. - Encoding string `json:"encoding" yaml:"encoding"` - // EncoderConfig sets options for the chosen encoder. See - // zapcore.EncoderConfig for details. - EncoderConfig zapcore.EncoderConfig `json:"encoderConfig" yaml:"encoderConfig"` - // OutputPaths is a list of URLs or file paths to write logging output to. - // See Open for details. - OutputPaths []string `json:"outputPaths" yaml:"outputPaths"` - // ErrorOutputPaths is a list of URLs to write internal logger errors to. - // The default is standard error. - // - // Note that this setting only affects internal errors; for sample code that - // sends error-level logs to a different location from info- and debug-level - // logs, see the package-level AdvancedConfiguration example. - ErrorOutputPaths []string `json:"errorOutputPaths" yaml:"errorOutputPaths"` - // InitialFields is a collection of fields to add to the root logger. - InitialFields map[string]interface{} `json:"initialFields" yaml:"initialFields"` -} - -// NewProductionEncoderConfig returns an opinionated EncoderConfig for -// production environments. -// -// Messages encoded with this configuration will be JSON-formatted -// and will have the following keys by default: -// -// - "level": The logging level (e.g. "info", "error"). -// - "ts": The current time in number of seconds since the Unix epoch. -// - "msg": The message passed to the log statement. -// - "caller": If available, a short path to the file and line number -// where the log statement was issued. -// The logger configuration determines whether this field is captured. -// - "stacktrace": If available, a stack trace from the line -// where the log statement was issued. -// The logger configuration determines whether this field is captured. -// -// By default, the following formats are used for different types: -// -// - Time is formatted as floating-point number of seconds since the Unix -// epoch. -// - Duration is formatted as floating-point number of seconds. -// -// You may change these by setting the appropriate fields in the returned -// object. -// For example, use the following to change the time encoding format: -// -// cfg := zap.NewProductionEncoderConfig() -// cfg.EncodeTime = zapcore.ISO8601TimeEncoder -func NewProductionEncoderConfig() zapcore.EncoderConfig { - return zapcore.EncoderConfig{ - TimeKey: "ts", - LevelKey: "level", - NameKey: "logger", - CallerKey: "caller", - FunctionKey: zapcore.OmitKey, - MessageKey: "msg", - StacktraceKey: "stacktrace", - LineEnding: zapcore.DefaultLineEnding, - EncodeLevel: zapcore.LowercaseLevelEncoder, - EncodeTime: zapcore.EpochTimeEncoder, - EncodeDuration: zapcore.SecondsDurationEncoder, - EncodeCaller: zapcore.ShortCallerEncoder, - } -} - -// NewProductionConfig builds a reasonable default production logging -// configuration. -// Logging is enabled at InfoLevel and above, and uses a JSON encoder. -// Logs are written to standard error. -// Stacktraces are included on logs of ErrorLevel and above. -// DPanicLevel logs will not panic, but will write a stacktrace. -// -// Sampling is enabled at 100:100 by default, -// meaning that after the first 100 log entries -// with the same level and message in the same second, -// it will log every 100th entry -// with the same level and message in the same second. -// You may disable this behavior by setting Sampling to nil. -// -// See [NewProductionEncoderConfig] for information -// on the default encoder configuration. -func NewProductionConfig() Config { - return Config{ - Level: NewAtomicLevelAt(InfoLevel), - Development: false, - Sampling: &SamplingConfig{ - Initial: 100, - Thereafter: 100, - }, - Encoding: "json", - EncoderConfig: NewProductionEncoderConfig(), - OutputPaths: []string{"stderr"}, - ErrorOutputPaths: []string{"stderr"}, - } -} - -// NewDevelopmentEncoderConfig returns an opinionated EncoderConfig for -// development environments. -// -// Messages encoded with this configuration will use Zap's console encoder -// intended to print human-readable output. -// It will print log messages with the following information: -// -// - The log level (e.g. "INFO", "ERROR"). -// - The time in ISO8601 format (e.g. "2017-01-01T12:00:00Z"). -// - The message passed to the log statement. -// - If available, a short path to the file and line number -// where the log statement was issued. -// The logger configuration determines whether this field is captured. -// - If available, a stacktrace from the line -// where the log statement was issued. -// The logger configuration determines whether this field is captured. -// -// By default, the following formats are used for different types: -// -// - Time is formatted in ISO8601 format (e.g. "2017-01-01T12:00:00Z"). -// - Duration is formatted as a string (e.g. "1.234s"). -// -// You may change these by setting the appropriate fields in the returned -// object. -// For example, use the following to change the time encoding format: -// -// cfg := zap.NewDevelopmentEncoderConfig() -// cfg.EncodeTime = zapcore.ISO8601TimeEncoder -func NewDevelopmentEncoderConfig() zapcore.EncoderConfig { - return zapcore.EncoderConfig{ - // Keys can be anything except the empty string. - TimeKey: "T", - LevelKey: "L", - NameKey: "N", - CallerKey: "C", - FunctionKey: zapcore.OmitKey, - MessageKey: "M", - StacktraceKey: "S", - LineEnding: zapcore.DefaultLineEnding, - EncodeLevel: zapcore.CapitalLevelEncoder, - EncodeTime: zapcore.ISO8601TimeEncoder, - EncodeDuration: zapcore.StringDurationEncoder, - EncodeCaller: zapcore.ShortCallerEncoder, - } -} - -// NewDevelopmentConfig builds a reasonable default development logging -// configuration. -// Logging is enabled at DebugLevel and above, and uses a console encoder. -// Logs are written to standard error. -// Stacktraces are included on logs of WarnLevel and above. -// DPanicLevel logs will panic. -// -// See [NewDevelopmentEncoderConfig] for information -// on the default encoder configuration. -func NewDevelopmentConfig() Config { - return Config{ - Level: NewAtomicLevelAt(DebugLevel), - Development: true, - Encoding: "console", - EncoderConfig: NewDevelopmentEncoderConfig(), - OutputPaths: []string{"stderr"}, - ErrorOutputPaths: []string{"stderr"}, - } -} - -// Build constructs a logger from the Config and Options. -func (cfg Config) Build(opts ...Option) (*Logger, error) { - enc, err := cfg.buildEncoder() - if err != nil { - return nil, err - } - - sink, errSink, err := cfg.openSinks() - if err != nil { - return nil, err - } - - if cfg.Level == (AtomicLevel{}) { - return nil, errors.New("missing Level") - } - - log := New( - zapcore.NewCore(enc, sink, cfg.Level), - cfg.buildOptions(errSink)..., - ) - if len(opts) > 0 { - log = log.WithOptions(opts...) - } - return log, nil -} - -func (cfg Config) buildOptions(errSink zapcore.WriteSyncer) []Option { - opts := []Option{ErrorOutput(errSink)} - - if cfg.Development { - opts = append(opts, Development()) - } - - if !cfg.DisableCaller { - opts = append(opts, AddCaller()) - } - - stackLevel := ErrorLevel - if cfg.Development { - stackLevel = WarnLevel - } - if !cfg.DisableStacktrace { - opts = append(opts, AddStacktrace(stackLevel)) - } - - if scfg := cfg.Sampling; scfg != nil { - opts = append(opts, WrapCore(func(core zapcore.Core) zapcore.Core { - var samplerOpts []zapcore.SamplerOption - if scfg.Hook != nil { - samplerOpts = append(samplerOpts, zapcore.SamplerHook(scfg.Hook)) - } - return zapcore.NewSamplerWithOptions( - core, - time.Second, - cfg.Sampling.Initial, - cfg.Sampling.Thereafter, - samplerOpts..., - ) - })) - } - - if len(cfg.InitialFields) > 0 { - fs := make([]Field, 0, len(cfg.InitialFields)) - keys := make([]string, 0, len(cfg.InitialFields)) - for k := range cfg.InitialFields { - keys = append(keys, k) - } - sort.Strings(keys) - for _, k := range keys { - fs = append(fs, Any(k, cfg.InitialFields[k])) - } - opts = append(opts, Fields(fs...)) - } - - return opts -} - -func (cfg Config) openSinks() (zapcore.WriteSyncer, zapcore.WriteSyncer, error) { - sink, closeOut, err := Open(cfg.OutputPaths...) - if err != nil { - return nil, nil, err - } - errSink, _, err := Open(cfg.ErrorOutputPaths...) - if err != nil { - closeOut() - return nil, nil, err - } - return sink, errSink, nil -} - -func (cfg Config) buildEncoder() (zapcore.Encoder, error) { - return newEncoder(cfg.Encoding, cfg.EncoderConfig) -} diff --git a/vendor/go.uber.org/zap/doc.go b/vendor/go.uber.org/zap/doc.go deleted file mode 100644 index 3c50d7b..0000000 --- a/vendor/go.uber.org/zap/doc.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package zap provides fast, structured, leveled logging. -// -// For applications that log in the hot path, reflection-based serialization -// and string formatting are prohibitively expensive - they're CPU-intensive -// and make many small allocations. Put differently, using json.Marshal and -// fmt.Fprintf to log tons of interface{} makes your application slow. -// -// Zap takes a different approach. It includes a reflection-free, -// zero-allocation JSON encoder, and the base Logger strives to avoid -// serialization overhead and allocations wherever possible. By building the -// high-level SugaredLogger on that foundation, zap lets users choose when -// they need to count every allocation and when they'd prefer a more familiar, -// loosely typed API. -// -// # Choosing a Logger -// -// In contexts where performance is nice, but not critical, use the -// SugaredLogger. It's 4-10x faster than other structured logging packages and -// supports both structured and printf-style logging. Like log15 and go-kit, -// the SugaredLogger's structured logging APIs are loosely typed and accept a -// variadic number of key-value pairs. (For more advanced use cases, they also -// accept strongly typed fields - see the SugaredLogger.With documentation for -// details.) -// -// sugar := zap.NewExample().Sugar() -// defer sugar.Sync() -// sugar.Infow("failed to fetch URL", -// "url", "http://example.com", -// "attempt", 3, -// "backoff", time.Second, -// ) -// sugar.Infof("failed to fetch URL: %s", "http://example.com") -// -// By default, loggers are unbuffered. However, since zap's low-level APIs -// allow buffering, calling Sync before letting your process exit is a good -// habit. -// -// In the rare contexts where every microsecond and every allocation matter, -// use the Logger. It's even faster than the SugaredLogger and allocates far -// less, but it only supports strongly-typed, structured logging. -// -// logger := zap.NewExample() -// defer logger.Sync() -// logger.Info("failed to fetch URL", -// zap.String("url", "http://example.com"), -// zap.Int("attempt", 3), -// zap.Duration("backoff", time.Second), -// ) -// -// Choosing between the Logger and SugaredLogger doesn't need to be an -// application-wide decision: converting between the two is simple and -// inexpensive. -// -// logger := zap.NewExample() -// defer logger.Sync() -// sugar := logger.Sugar() -// plain := sugar.Desugar() -// -// # Configuring Zap -// -// The simplest way to build a Logger is to use zap's opinionated presets: -// NewExample, NewProduction, and NewDevelopment. These presets build a logger -// with a single function call: -// -// logger, err := zap.NewProduction() -// if err != nil { -// log.Fatalf("can't initialize zap logger: %v", err) -// } -// defer logger.Sync() -// -// Presets are fine for small projects, but larger projects and organizations -// naturally require a bit more customization. For most users, zap's Config -// struct strikes the right balance between flexibility and convenience. See -// the package-level BasicConfiguration example for sample code. -// -// More unusual configurations (splitting output between files, sending logs -// to a message queue, etc.) are possible, but require direct use of -// go.uber.org/zap/zapcore. See the package-level AdvancedConfiguration -// example for sample code. -// -// # Extending Zap -// -// The zap package itself is a relatively thin wrapper around the interfaces -// in go.uber.org/zap/zapcore. Extending zap to support a new encoding (e.g., -// BSON), a new log sink (e.g., Kafka), or something more exotic (perhaps an -// exception aggregation service, like Sentry or Rollbar) typically requires -// implementing the zapcore.Encoder, zapcore.WriteSyncer, or zapcore.Core -// interfaces. See the zapcore documentation for details. -// -// Similarly, package authors can use the high-performance Encoder and Core -// implementations in the zapcore package to build their own loggers. -// -// # Frequently Asked Questions -// -// An FAQ covering everything from installation errors to design decisions is -// available at https://github.com/uber-go/zap/blob/master/FAQ.md. -package zap // import "go.uber.org/zap" diff --git a/vendor/go.uber.org/zap/encoder.go b/vendor/go.uber.org/zap/encoder.go deleted file mode 100644 index caa04ce..0000000 --- a/vendor/go.uber.org/zap/encoder.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "errors" - "fmt" - "sync" - - "go.uber.org/zap/zapcore" -) - -var ( - errNoEncoderNameSpecified = errors.New("no encoder name specified") - - _encoderNameToConstructor = map[string]func(zapcore.EncoderConfig) (zapcore.Encoder, error){ - "console": func(encoderConfig zapcore.EncoderConfig) (zapcore.Encoder, error) { - return zapcore.NewConsoleEncoder(encoderConfig), nil - }, - "json": func(encoderConfig zapcore.EncoderConfig) (zapcore.Encoder, error) { - return zapcore.NewJSONEncoder(encoderConfig), nil - }, - } - _encoderMutex sync.RWMutex -) - -// RegisterEncoder registers an encoder constructor, which the Config struct -// can then reference. By default, the "json" and "console" encoders are -// registered. -// -// Attempting to register an encoder whose name is already taken returns an -// error. -func RegisterEncoder(name string, constructor func(zapcore.EncoderConfig) (zapcore.Encoder, error)) error { - _encoderMutex.Lock() - defer _encoderMutex.Unlock() - if name == "" { - return errNoEncoderNameSpecified - } - if _, ok := _encoderNameToConstructor[name]; ok { - return fmt.Errorf("encoder already registered for name %q", name) - } - _encoderNameToConstructor[name] = constructor - return nil -} - -func newEncoder(name string, encoderConfig zapcore.EncoderConfig) (zapcore.Encoder, error) { - if encoderConfig.TimeKey != "" && encoderConfig.EncodeTime == nil { - return nil, errors.New("missing EncodeTime in EncoderConfig") - } - - _encoderMutex.RLock() - defer _encoderMutex.RUnlock() - if name == "" { - return nil, errNoEncoderNameSpecified - } - constructor, ok := _encoderNameToConstructor[name] - if !ok { - return nil, fmt.Errorf("no encoder registered for name %q", name) - } - return constructor(encoderConfig) -} diff --git a/vendor/go.uber.org/zap/error.go b/vendor/go.uber.org/zap/error.go deleted file mode 100644 index 45f7b83..0000000 --- a/vendor/go.uber.org/zap/error.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) 2017 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "go.uber.org/zap/internal/pool" - "go.uber.org/zap/zapcore" -) - -var _errArrayElemPool = pool.New(func() *errArrayElem { - return &errArrayElem{} -}) - -// Error is shorthand for the common idiom NamedError("error", err). -func Error(err error) Field { - return NamedError("error", err) -} - -// NamedError constructs a field that lazily stores err.Error() under the -// provided key. Errors which also implement fmt.Formatter (like those produced -// by github.com/pkg/errors) will also have their verbose representation stored -// under key+"Verbose". If passed a nil error, the field is a no-op. -// -// For the common case in which the key is simply "error", the Error function -// is shorter and less repetitive. -func NamedError(key string, err error) Field { - if err == nil { - return Skip() - } - return Field{Key: key, Type: zapcore.ErrorType, Interface: err} -} - -type errArray []error - -func (errs errArray) MarshalLogArray(arr zapcore.ArrayEncoder) error { - for i := range errs { - if errs[i] == nil { - continue - } - // To represent each error as an object with an "error" attribute and - // potentially an "errorVerbose" attribute, we need to wrap it in a - // type that implements LogObjectMarshaler. To prevent this from - // allocating, pool the wrapper type. - elem := _errArrayElemPool.Get() - elem.error = errs[i] - err := arr.AppendObject(elem) - elem.error = nil - _errArrayElemPool.Put(elem) - if err != nil { - return err - } - } - return nil -} - -type errArrayElem struct { - error -} - -func (e *errArrayElem) MarshalLogObject(enc zapcore.ObjectEncoder) error { - // Re-use the error field's logic, which supports non-standard error types. - Error(e.error).AddTo(enc) - return nil -} diff --git a/vendor/go.uber.org/zap/field.go b/vendor/go.uber.org/zap/field.go deleted file mode 100644 index 1884afa..0000000 --- a/vendor/go.uber.org/zap/field.go +++ /dev/null @@ -1,625 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "fmt" - "math" - "time" - - "go.uber.org/zap/internal/stacktrace" - "go.uber.org/zap/zapcore" -) - -// Field is an alias for Field. Aliasing this type dramatically -// improves the navigability of this package's API documentation. -type Field = zapcore.Field - -var ( - _minTimeInt64 = time.Unix(0, math.MinInt64) - _maxTimeInt64 = time.Unix(0, math.MaxInt64) -) - -// Skip constructs a no-op field, which is often useful when handling invalid -// inputs in other Field constructors. -func Skip() Field { - return Field{Type: zapcore.SkipType} -} - -// nilField returns a field which will marshal explicitly as nil. See motivation -// in https://github.com/uber-go/zap/issues/753 . If we ever make breaking -// changes and add zapcore.NilType and zapcore.ObjectEncoder.AddNil, the -// implementation here should be changed to reflect that. -func nilField(key string) Field { return Reflect(key, nil) } - -// Binary constructs a field that carries an opaque binary blob. -// -// Binary data is serialized in an encoding-appropriate format. For example, -// zap's JSON encoder base64-encodes binary blobs. To log UTF-8 encoded text, -// use ByteString. -func Binary(key string, val []byte) Field { - return Field{Key: key, Type: zapcore.BinaryType, Interface: val} -} - -// Bool constructs a field that carries a bool. -func Bool(key string, val bool) Field { - var ival int64 - if val { - ival = 1 - } - return Field{Key: key, Type: zapcore.BoolType, Integer: ival} -} - -// Boolp constructs a field that carries a *bool. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Boolp(key string, val *bool) Field { - if val == nil { - return nilField(key) - } - return Bool(key, *val) -} - -// ByteString constructs a field that carries UTF-8 encoded text as a []byte. -// To log opaque binary blobs (which aren't necessarily valid UTF-8), use -// Binary. -func ByteString(key string, val []byte) Field { - return Field{Key: key, Type: zapcore.ByteStringType, Interface: val} -} - -// Complex128 constructs a field that carries a complex number. Unlike most -// numeric fields, this costs an allocation (to convert the complex128 to -// interface{}). -func Complex128(key string, val complex128) Field { - return Field{Key: key, Type: zapcore.Complex128Type, Interface: val} -} - -// Complex128p constructs a field that carries a *complex128. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Complex128p(key string, val *complex128) Field { - if val == nil { - return nilField(key) - } - return Complex128(key, *val) -} - -// Complex64 constructs a field that carries a complex number. Unlike most -// numeric fields, this costs an allocation (to convert the complex64 to -// interface{}). -func Complex64(key string, val complex64) Field { - return Field{Key: key, Type: zapcore.Complex64Type, Interface: val} -} - -// Complex64p constructs a field that carries a *complex64. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Complex64p(key string, val *complex64) Field { - if val == nil { - return nilField(key) - } - return Complex64(key, *val) -} - -// Float64 constructs a field that carries a float64. The way the -// floating-point value is represented is encoder-dependent, so marshaling is -// necessarily lazy. -func Float64(key string, val float64) Field { - return Field{Key: key, Type: zapcore.Float64Type, Integer: int64(math.Float64bits(val))} -} - -// Float64p constructs a field that carries a *float64. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Float64p(key string, val *float64) Field { - if val == nil { - return nilField(key) - } - return Float64(key, *val) -} - -// Float32 constructs a field that carries a float32. The way the -// floating-point value is represented is encoder-dependent, so marshaling is -// necessarily lazy. -func Float32(key string, val float32) Field { - return Field{Key: key, Type: zapcore.Float32Type, Integer: int64(math.Float32bits(val))} -} - -// Float32p constructs a field that carries a *float32. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Float32p(key string, val *float32) Field { - if val == nil { - return nilField(key) - } - return Float32(key, *val) -} - -// Int constructs a field with the given key and value. -func Int(key string, val int) Field { - return Int64(key, int64(val)) -} - -// Intp constructs a field that carries a *int. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Intp(key string, val *int) Field { - if val == nil { - return nilField(key) - } - return Int(key, *val) -} - -// Int64 constructs a field with the given key and value. -func Int64(key string, val int64) Field { - return Field{Key: key, Type: zapcore.Int64Type, Integer: val} -} - -// Int64p constructs a field that carries a *int64. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Int64p(key string, val *int64) Field { - if val == nil { - return nilField(key) - } - return Int64(key, *val) -} - -// Int32 constructs a field with the given key and value. -func Int32(key string, val int32) Field { - return Field{Key: key, Type: zapcore.Int32Type, Integer: int64(val)} -} - -// Int32p constructs a field that carries a *int32. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Int32p(key string, val *int32) Field { - if val == nil { - return nilField(key) - } - return Int32(key, *val) -} - -// Int16 constructs a field with the given key and value. -func Int16(key string, val int16) Field { - return Field{Key: key, Type: zapcore.Int16Type, Integer: int64(val)} -} - -// Int16p constructs a field that carries a *int16. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Int16p(key string, val *int16) Field { - if val == nil { - return nilField(key) - } - return Int16(key, *val) -} - -// Int8 constructs a field with the given key and value. -func Int8(key string, val int8) Field { - return Field{Key: key, Type: zapcore.Int8Type, Integer: int64(val)} -} - -// Int8p constructs a field that carries a *int8. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Int8p(key string, val *int8) Field { - if val == nil { - return nilField(key) - } - return Int8(key, *val) -} - -// String constructs a field with the given key and value. -func String(key string, val string) Field { - return Field{Key: key, Type: zapcore.StringType, String: val} -} - -// Stringp constructs a field that carries a *string. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Stringp(key string, val *string) Field { - if val == nil { - return nilField(key) - } - return String(key, *val) -} - -// Uint constructs a field with the given key and value. -func Uint(key string, val uint) Field { - return Uint64(key, uint64(val)) -} - -// Uintp constructs a field that carries a *uint. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Uintp(key string, val *uint) Field { - if val == nil { - return nilField(key) - } - return Uint(key, *val) -} - -// Uint64 constructs a field with the given key and value. -func Uint64(key string, val uint64) Field { - return Field{Key: key, Type: zapcore.Uint64Type, Integer: int64(val)} -} - -// Uint64p constructs a field that carries a *uint64. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Uint64p(key string, val *uint64) Field { - if val == nil { - return nilField(key) - } - return Uint64(key, *val) -} - -// Uint32 constructs a field with the given key and value. -func Uint32(key string, val uint32) Field { - return Field{Key: key, Type: zapcore.Uint32Type, Integer: int64(val)} -} - -// Uint32p constructs a field that carries a *uint32. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Uint32p(key string, val *uint32) Field { - if val == nil { - return nilField(key) - } - return Uint32(key, *val) -} - -// Uint16 constructs a field with the given key and value. -func Uint16(key string, val uint16) Field { - return Field{Key: key, Type: zapcore.Uint16Type, Integer: int64(val)} -} - -// Uint16p constructs a field that carries a *uint16. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Uint16p(key string, val *uint16) Field { - if val == nil { - return nilField(key) - } - return Uint16(key, *val) -} - -// Uint8 constructs a field with the given key and value. -func Uint8(key string, val uint8) Field { - return Field{Key: key, Type: zapcore.Uint8Type, Integer: int64(val)} -} - -// Uint8p constructs a field that carries a *uint8. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Uint8p(key string, val *uint8) Field { - if val == nil { - return nilField(key) - } - return Uint8(key, *val) -} - -// Uintptr constructs a field with the given key and value. -func Uintptr(key string, val uintptr) Field { - return Field{Key: key, Type: zapcore.UintptrType, Integer: int64(val)} -} - -// Uintptrp constructs a field that carries a *uintptr. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Uintptrp(key string, val *uintptr) Field { - if val == nil { - return nilField(key) - } - return Uintptr(key, *val) -} - -// Reflect constructs a field with the given key and an arbitrary object. It uses -// an encoding-appropriate, reflection-based function to lazily serialize nearly -// any object into the logging context, but it's relatively slow and -// allocation-heavy. Outside tests, Any is always a better choice. -// -// If encoding fails (e.g., trying to serialize a map[int]string to JSON), Reflect -// includes the error message in the final log output. -func Reflect(key string, val interface{}) Field { - return Field{Key: key, Type: zapcore.ReflectType, Interface: val} -} - -// Namespace creates a named, isolated scope within the logger's context. All -// subsequent fields will be added to the new namespace. -// -// This helps prevent key collisions when injecting loggers into sub-components -// or third-party libraries. -func Namespace(key string) Field { - return Field{Key: key, Type: zapcore.NamespaceType} -} - -// Stringer constructs a field with the given key and the output of the value's -// String method. The Stringer's String method is called lazily. -func Stringer(key string, val fmt.Stringer) Field { - return Field{Key: key, Type: zapcore.StringerType, Interface: val} -} - -// Time constructs a Field with the given key and value. The encoder -// controls how the time is serialized. -func Time(key string, val time.Time) Field { - if val.Before(_minTimeInt64) || val.After(_maxTimeInt64) { - return Field{Key: key, Type: zapcore.TimeFullType, Interface: val} - } - return Field{Key: key, Type: zapcore.TimeType, Integer: val.UnixNano(), Interface: val.Location()} -} - -// Timep constructs a field that carries a *time.Time. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Timep(key string, val *time.Time) Field { - if val == nil { - return nilField(key) - } - return Time(key, *val) -} - -// Stack constructs a field that stores a stacktrace of the current goroutine -// under provided key. Keep in mind that taking a stacktrace is eager and -// expensive (relatively speaking); this function both makes an allocation and -// takes about two microseconds. -func Stack(key string) Field { - return StackSkip(key, 1) // skip Stack -} - -// StackSkip constructs a field similarly to Stack, but also skips the given -// number of frames from the top of the stacktrace. -func StackSkip(key string, skip int) Field { - // Returning the stacktrace as a string costs an allocation, but saves us - // from expanding the zapcore.Field union struct to include a byte slice. Since - // taking a stacktrace is already so expensive (~10us), the extra allocation - // is okay. - return String(key, stacktrace.Take(skip+1)) // skip StackSkip -} - -// Duration constructs a field with the given key and value. The encoder -// controls how the duration is serialized. -func Duration(key string, val time.Duration) Field { - return Field{Key: key, Type: zapcore.DurationType, Integer: int64(val)} -} - -// Durationp constructs a field that carries a *time.Duration. The returned Field will safely -// and explicitly represent `nil` when appropriate. -func Durationp(key string, val *time.Duration) Field { - if val == nil { - return nilField(key) - } - return Duration(key, *val) -} - -// Object constructs a field with the given key and ObjectMarshaler. It -// provides a flexible, but still type-safe and efficient, way to add map- or -// struct-like user-defined types to the logging context. The struct's -// MarshalLogObject method is called lazily. -func Object(key string, val zapcore.ObjectMarshaler) Field { - if val == nil { - return nilField(key) - } - return Field{Key: key, Type: zapcore.ObjectMarshalerType, Interface: val} -} - -// Inline constructs a Field that is similar to Object, but it -// will add the elements of the provided ObjectMarshaler to the -// current namespace. -func Inline(val zapcore.ObjectMarshaler) Field { - return zapcore.Field{ - Type: zapcore.InlineMarshalerType, - Interface: val, - } -} - -// Dict constructs a field containing the provided key-value pairs. -// It acts similar to [Object], but with the fields specified as arguments. -func Dict(key string, val ...Field) Field { - return dictField(key, val) -} - -// We need a function with the signature (string, T) for zap.Any. -func dictField(key string, val []Field) Field { - return Object(key, dictObject(val)) -} - -type dictObject []Field - -func (d dictObject) MarshalLogObject(enc zapcore.ObjectEncoder) error { - for _, f := range d { - f.AddTo(enc) - } - return nil -} - -// DictObject constructs a [zapcore.ObjectMarshaler] with the given list of fields. -// The resulting object marshaler can be used as input to [Object], [Objects], or -// any other functions that expect an object marshaler. -func DictObject(val ...Field) zapcore.ObjectMarshaler { - return dictObject(val) -} - -// We discovered an issue where zap.Any can cause a performance degradation -// when used in new goroutines. -// -// This happens because the compiler assigns 4.8kb (one zap.Field per arm of -// switch statement) of stack space for zap.Any when it takes the form: -// -// switch v := v.(type) { -// case string: -// return String(key, v) -// case int: -// return Int(key, v) -// // ... -// default: -// return Reflect(key, v) -// } -// -// To avoid this, we use the type switch to assign a value to a single local variable -// and then call a function on it. -// The local variable is just a function reference so it doesn't allocate -// when converted to an interface{}. -// -// A fair bit of experimentation went into this. -// See also: -// -// - https://github.com/uber-go/zap/pull/1301 -// - https://github.com/uber-go/zap/pull/1303 -// - https://github.com/uber-go/zap/pull/1304 -// - https://github.com/uber-go/zap/pull/1305 -// - https://github.com/uber-go/zap/pull/1308 -// -// See https://github.com/golang/go/issues/62077 for upstream issue. -type anyFieldC[T any] func(string, T) Field - -func (f anyFieldC[T]) Any(key string, val any) Field { - v, _ := val.(T) - // val is guaranteed to be a T, except when it's nil. - return f(key, v) -} - -// Any takes a key and an arbitrary value and chooses the best way to represent -// them as a field, falling back to a reflection-based approach only if -// necessary. -// -// Since byte/uint8 and rune/int32 are aliases, Any can't differentiate between -// them. To minimize surprises, []byte values are treated as binary blobs, byte -// values are treated as uint8, and runes are always treated as integers. -func Any(key string, value interface{}) Field { - var c interface{ Any(string, any) Field } - - switch value.(type) { - case zapcore.ObjectMarshaler: - c = anyFieldC[zapcore.ObjectMarshaler](Object) - case zapcore.ArrayMarshaler: - c = anyFieldC[zapcore.ArrayMarshaler](Array) - case []Field: - c = anyFieldC[[]Field](dictField) - case bool: - c = anyFieldC[bool](Bool) - case *bool: - c = anyFieldC[*bool](Boolp) - case []bool: - c = anyFieldC[[]bool](Bools) - case complex128: - c = anyFieldC[complex128](Complex128) - case *complex128: - c = anyFieldC[*complex128](Complex128p) - case []complex128: - c = anyFieldC[[]complex128](Complex128s) - case complex64: - c = anyFieldC[complex64](Complex64) - case *complex64: - c = anyFieldC[*complex64](Complex64p) - case []complex64: - c = anyFieldC[[]complex64](Complex64s) - case float64: - c = anyFieldC[float64](Float64) - case *float64: - c = anyFieldC[*float64](Float64p) - case []float64: - c = anyFieldC[[]float64](Float64s) - case float32: - c = anyFieldC[float32](Float32) - case *float32: - c = anyFieldC[*float32](Float32p) - case []float32: - c = anyFieldC[[]float32](Float32s) - case int: - c = anyFieldC[int](Int) - case *int: - c = anyFieldC[*int](Intp) - case []int: - c = anyFieldC[[]int](Ints) - case int64: - c = anyFieldC[int64](Int64) - case *int64: - c = anyFieldC[*int64](Int64p) - case []int64: - c = anyFieldC[[]int64](Int64s) - case int32: - c = anyFieldC[int32](Int32) - case *int32: - c = anyFieldC[*int32](Int32p) - case []int32: - c = anyFieldC[[]int32](Int32s) - case int16: - c = anyFieldC[int16](Int16) - case *int16: - c = anyFieldC[*int16](Int16p) - case []int16: - c = anyFieldC[[]int16](Int16s) - case int8: - c = anyFieldC[int8](Int8) - case *int8: - c = anyFieldC[*int8](Int8p) - case []int8: - c = anyFieldC[[]int8](Int8s) - case string: - c = anyFieldC[string](String) - case *string: - c = anyFieldC[*string](Stringp) - case []string: - c = anyFieldC[[]string](Strings) - case uint: - c = anyFieldC[uint](Uint) - case *uint: - c = anyFieldC[*uint](Uintp) - case []uint: - c = anyFieldC[[]uint](Uints) - case uint64: - c = anyFieldC[uint64](Uint64) - case *uint64: - c = anyFieldC[*uint64](Uint64p) - case []uint64: - c = anyFieldC[[]uint64](Uint64s) - case uint32: - c = anyFieldC[uint32](Uint32) - case *uint32: - c = anyFieldC[*uint32](Uint32p) - case []uint32: - c = anyFieldC[[]uint32](Uint32s) - case uint16: - c = anyFieldC[uint16](Uint16) - case *uint16: - c = anyFieldC[*uint16](Uint16p) - case []uint16: - c = anyFieldC[[]uint16](Uint16s) - case uint8: - c = anyFieldC[uint8](Uint8) - case *uint8: - c = anyFieldC[*uint8](Uint8p) - case []byte: - c = anyFieldC[[]byte](Binary) - case uintptr: - c = anyFieldC[uintptr](Uintptr) - case *uintptr: - c = anyFieldC[*uintptr](Uintptrp) - case []uintptr: - c = anyFieldC[[]uintptr](Uintptrs) - case time.Time: - c = anyFieldC[time.Time](Time) - case *time.Time: - c = anyFieldC[*time.Time](Timep) - case []time.Time: - c = anyFieldC[[]time.Time](Times) - case time.Duration: - c = anyFieldC[time.Duration](Duration) - case *time.Duration: - c = anyFieldC[*time.Duration](Durationp) - case []time.Duration: - c = anyFieldC[[]time.Duration](Durations) - case error: - c = anyFieldC[error](NamedError) - case []error: - c = anyFieldC[[]error](Errors) - case fmt.Stringer: - c = anyFieldC[fmt.Stringer](Stringer) - default: - c = anyFieldC[any](Reflect) - } - - return c.Any(key, value) -} diff --git a/vendor/go.uber.org/zap/flag.go b/vendor/go.uber.org/zap/flag.go deleted file mode 100644 index 1312875..0000000 --- a/vendor/go.uber.org/zap/flag.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "flag" - - "go.uber.org/zap/zapcore" -) - -// LevelFlag uses the standard library's flag.Var to declare a global flag -// with the specified name, default, and usage guidance. The returned value is -// a pointer to the value of the flag. -// -// If you don't want to use the flag package's global state, you can use any -// non-nil *Level as a flag.Value with your own *flag.FlagSet. -func LevelFlag(name string, defaultLevel zapcore.Level, usage string) *zapcore.Level { - lvl := defaultLevel - flag.Var(&lvl, name, usage) - return &lvl -} diff --git a/vendor/go.uber.org/zap/glide.yaml b/vendor/go.uber.org/zap/glide.yaml deleted file mode 100644 index 8e1d05e..0000000 --- a/vendor/go.uber.org/zap/glide.yaml +++ /dev/null @@ -1,34 +0,0 @@ -package: go.uber.org/zap -license: MIT -import: -- package: go.uber.org/atomic - version: ^1 -- package: go.uber.org/multierr - version: ^1 -testImport: -- package: github.com/satori/go.uuid -- package: github.com/sirupsen/logrus -- package: github.com/apex/log - subpackages: - - handlers/json -- package: github.com/go-kit/kit - subpackages: - - log -- package: github.com/stretchr/testify - subpackages: - - assert - - require -- package: gopkg.in/inconshreveable/log15.v2 -- package: github.com/mattn/goveralls -- package: github.com/pborman/uuid -- package: github.com/pkg/errors -- package: github.com/rs/zerolog -- package: golang.org/x/tools - subpackages: - - cover -- package: golang.org/x/lint - subpackages: - - golint -- package: github.com/axw/gocov - subpackages: - - gocov diff --git a/vendor/go.uber.org/zap/global.go b/vendor/go.uber.org/zap/global.go deleted file mode 100644 index 3cb46c9..0000000 --- a/vendor/go.uber.org/zap/global.go +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "bytes" - "fmt" - "log" - "os" - "sync" - - "go.uber.org/zap/zapcore" -) - -const ( - _stdLogDefaultDepth = 1 - _loggerWriterDepth = 2 - _programmerErrorTemplate = "You've found a bug in zap! Please file a bug at " + - "https://github.com/uber-go/zap/issues/new and reference this error: %v" -) - -var ( - _globalMu sync.RWMutex - _globalL = NewNop() - _globalS = _globalL.Sugar() -) - -// L returns the global Logger, which can be reconfigured with ReplaceGlobals. -// It's safe for concurrent use. -func L() *Logger { - _globalMu.RLock() - l := _globalL - _globalMu.RUnlock() - return l -} - -// S returns the global SugaredLogger, which can be reconfigured with -// ReplaceGlobals. It's safe for concurrent use. -func S() *SugaredLogger { - _globalMu.RLock() - s := _globalS - _globalMu.RUnlock() - return s -} - -// ReplaceGlobals replaces the global Logger and SugaredLogger, and returns a -// function to restore the original values. It's safe for concurrent use. -func ReplaceGlobals(logger *Logger) func() { - _globalMu.Lock() - prev := _globalL - _globalL = logger - _globalS = logger.Sugar() - _globalMu.Unlock() - return func() { ReplaceGlobals(prev) } -} - -// NewStdLog returns a *log.Logger which writes to the supplied zap Logger at -// InfoLevel. To redirect the standard library's package-global logging -// functions, use RedirectStdLog instead. -func NewStdLog(l *Logger) *log.Logger { - logger := l.WithOptions(AddCallerSkip(_stdLogDefaultDepth + _loggerWriterDepth)) - f := logger.Info - return log.New(&loggerWriter{f}, "" /* prefix */, 0 /* flags */) -} - -// NewStdLogAt returns *log.Logger which writes to supplied zap logger at -// required level. -func NewStdLogAt(l *Logger, level zapcore.Level) (*log.Logger, error) { - logger := l.WithOptions(AddCallerSkip(_stdLogDefaultDepth + _loggerWriterDepth)) - logFunc, err := levelToFunc(logger, level) - if err != nil { - return nil, err - } - return log.New(&loggerWriter{logFunc}, "" /* prefix */, 0 /* flags */), nil -} - -// RedirectStdLog redirects output from the standard library's package-global -// logger to the supplied logger at InfoLevel. Since zap already handles caller -// annotations, timestamps, etc., it automatically disables the standard -// library's annotations and prefixing. -// -// It returns a function to restore the original prefix and flags and reset the -// standard library's output to os.Stderr. -func RedirectStdLog(l *Logger) func() { - f, err := redirectStdLogAt(l, InfoLevel) - if err != nil { - // Can't get here, since passing InfoLevel to redirectStdLogAt always - // works. - panic(fmt.Sprintf(_programmerErrorTemplate, err)) - } - return f -} - -// RedirectStdLogAt redirects output from the standard library's package-global -// logger to the supplied logger at the specified level. Since zap already -// handles caller annotations, timestamps, etc., it automatically disables the -// standard library's annotations and prefixing. -// -// It returns a function to restore the original prefix and flags and reset the -// standard library's output to os.Stderr. -func RedirectStdLogAt(l *Logger, level zapcore.Level) (func(), error) { - return redirectStdLogAt(l, level) -} - -func redirectStdLogAt(l *Logger, level zapcore.Level) (func(), error) { - flags := log.Flags() - prefix := log.Prefix() - log.SetFlags(0) - log.SetPrefix("") - logger := l.WithOptions(AddCallerSkip(_stdLogDefaultDepth + _loggerWriterDepth)) - logFunc, err := levelToFunc(logger, level) - if err != nil { - return nil, err - } - log.SetOutput(&loggerWriter{logFunc}) - return func() { - log.SetFlags(flags) - log.SetPrefix(prefix) - log.SetOutput(os.Stderr) - }, nil -} - -func levelToFunc(logger *Logger, lvl zapcore.Level) (func(string, ...Field), error) { - switch lvl { - case DebugLevel: - return logger.Debug, nil - case InfoLevel: - return logger.Info, nil - case WarnLevel: - return logger.Warn, nil - case ErrorLevel: - return logger.Error, nil - case DPanicLevel: - return logger.DPanic, nil - case PanicLevel: - return logger.Panic, nil - case FatalLevel: - return logger.Fatal, nil - } - return nil, fmt.Errorf("unrecognized level: %q", lvl) -} - -type loggerWriter struct { - logFunc func(msg string, fields ...Field) -} - -func (l *loggerWriter) Write(p []byte) (int, error) { - p = bytes.TrimSpace(p) - l.logFunc(string(p)) - return len(p), nil -} diff --git a/vendor/go.uber.org/zap/http_handler.go b/vendor/go.uber.org/zap/http_handler.go deleted file mode 100644 index 1cae2c1..0000000 --- a/vendor/go.uber.org/zap/http_handler.go +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "encoding/json" - "errors" - "fmt" - "io" - "net/http" - - "go.uber.org/zap/zapcore" -) - -// ServeHTTP is a simple JSON endpoint that can report on or change the current -// logging level. -// -// # GET -// -// The GET request returns a JSON description of the current logging level like: -// -// {"level":"info"} -// -// # PUT -// -// The PUT request changes the logging level. It is perfectly safe to change the -// logging level while a program is running. Two content types are supported: -// -// Content-Type: application/x-www-form-urlencoded -// -// With this content type, the level can be provided through the request body or -// a query parameter. The log level is URL encoded like: -// -// level=debug -// -// The request body takes precedence over the query parameter, if both are -// specified. -// -// This content type is the default for a curl PUT request. Following are two -// example curl requests that both set the logging level to debug. -// -// curl -X PUT localhost:8080/log/level?level=debug -// curl -X PUT localhost:8080/log/level -d level=debug -// -// For any other content type, the payload is expected to be JSON encoded and -// look like: -// -// {"level":"info"} -// -// An example curl request could look like this: -// -// curl -X PUT localhost:8080/log/level -H "Content-Type: application/json" -d '{"level":"debug"}' -func (lvl AtomicLevel) ServeHTTP(w http.ResponseWriter, r *http.Request) { - if err := lvl.serveHTTP(w, r); err != nil { - w.WriteHeader(http.StatusInternalServerError) - _, _ = fmt.Fprintf(w, "internal error: %v", err) - } -} - -func (lvl AtomicLevel) serveHTTP(w http.ResponseWriter, r *http.Request) error { - type errorResponse struct { - Error string `json:"error"` - } - type payload struct { - Level zapcore.Level `json:"level"` - } - - enc := json.NewEncoder(w) - - switch r.Method { - case http.MethodGet: - return enc.Encode(payload{Level: lvl.Level()}) - - case http.MethodPut: - requestedLvl, err := decodePutRequest(r.Header.Get("Content-Type"), r) - if err != nil { - w.WriteHeader(http.StatusBadRequest) - return enc.Encode(errorResponse{Error: err.Error()}) - } - lvl.SetLevel(requestedLvl) - return enc.Encode(payload{Level: lvl.Level()}) - - default: - w.WriteHeader(http.StatusMethodNotAllowed) - return enc.Encode(errorResponse{ - Error: "Only GET and PUT are supported.", - }) - } -} - -// Decodes incoming PUT requests and returns the requested logging level. -func decodePutRequest(contentType string, r *http.Request) (zapcore.Level, error) { - if contentType == "application/x-www-form-urlencoded" { - return decodePutURL(r) - } - return decodePutJSON(r.Body) -} - -func decodePutURL(r *http.Request) (zapcore.Level, error) { - lvl := r.FormValue("level") - if lvl == "" { - return 0, errors.New("must specify logging level") - } - var l zapcore.Level - if err := l.UnmarshalText([]byte(lvl)); err != nil { - return 0, err - } - return l, nil -} - -func decodePutJSON(body io.Reader) (zapcore.Level, error) { - var pld struct { - Level *zapcore.Level `json:"level"` - } - if err := json.NewDecoder(body).Decode(&pld); err != nil { - return 0, fmt.Errorf("malformed request body: %v", err) - } - if pld.Level == nil { - return 0, errors.New("must specify logging level") - } - return *pld.Level, nil -} diff --git a/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go b/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go deleted file mode 100644 index dad583a..0000000 --- a/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package bufferpool houses zap's shared internal buffer pool. Third-party -// packages can recreate the same functionality with buffers.NewPool. -package bufferpool - -import "go.uber.org/zap/buffer" - -var ( - _pool = buffer.NewPool() - // Get retrieves a buffer from the pool, creating one if necessary. - Get = _pool.Get -) diff --git a/vendor/go.uber.org/zap/internal/color/color.go b/vendor/go.uber.org/zap/internal/color/color.go deleted file mode 100644 index c4d5d02..0000000 --- a/vendor/go.uber.org/zap/internal/color/color.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package color adds coloring functionality for TTY output. -package color - -import "fmt" - -// Foreground colors. -const ( - Black Color = iota + 30 - Red - Green - Yellow - Blue - Magenta - Cyan - White -) - -// Color represents a text color. -type Color uint8 - -// Add adds the coloring to the given string. -func (c Color) Add(s string) string { - return fmt.Sprintf("\x1b[%dm%s\x1b[0m", uint8(c), s) -} diff --git a/vendor/go.uber.org/zap/internal/exit/exit.go b/vendor/go.uber.org/zap/internal/exit/exit.go deleted file mode 100644 index f673f99..0000000 --- a/vendor/go.uber.org/zap/internal/exit/exit.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package exit provides stubs so that unit tests can exercise code that calls -// os.Exit(1). -package exit - -import "os" - -var _exit = os.Exit - -// With terminates the process by calling os.Exit(code). If the package is -// stubbed, it instead records a call in the testing spy. -func With(code int) { - _exit(code) -} - -// A StubbedExit is a testing fake for os.Exit. -type StubbedExit struct { - Exited bool - Code int - prev func(code int) -} - -// Stub substitutes a fake for the call to os.Exit(1). -func Stub() *StubbedExit { - s := &StubbedExit{prev: _exit} - _exit = s.exit - return s -} - -// WithStub runs the supplied function with Exit stubbed. It returns the stub -// used, so that users can test whether the process would have crashed. -func WithStub(f func()) *StubbedExit { - s := Stub() - defer s.Unstub() - f() - return s -} - -// Unstub restores the previous exit function. -func (se *StubbedExit) Unstub() { - _exit = se.prev -} - -func (se *StubbedExit) exit(code int) { - se.Exited = true - se.Code = code -} diff --git a/vendor/go.uber.org/zap/internal/level_enabler.go b/vendor/go.uber.org/zap/internal/level_enabler.go deleted file mode 100644 index 40bfed8..0000000 --- a/vendor/go.uber.org/zap/internal/level_enabler.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) 2022 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package internal and its subpackages hold types and functionality -// that are not part of Zap's public API. -package internal - -import "go.uber.org/zap/zapcore" - -// LeveledEnabler is an interface satisfied by LevelEnablers that are able to -// report their own level. -// -// This interface is defined to use more conveniently in tests and non-zapcore -// packages. -// This cannot be imported from zapcore because of the cyclic dependency. -type LeveledEnabler interface { - zapcore.LevelEnabler - - Level() zapcore.Level -} diff --git a/vendor/go.uber.org/zap/internal/pool/pool.go b/vendor/go.uber.org/zap/internal/pool/pool.go deleted file mode 100644 index 60e9d2c..0000000 --- a/vendor/go.uber.org/zap/internal/pool/pool.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) 2023 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package pool provides internal pool utilities. -package pool - -import ( - "sync" -) - -// A Pool is a generic wrapper around [sync.Pool] to provide strongly-typed -// object pooling. -// -// Note that SA6002 (ref: https://staticcheck.io/docs/checks/#SA6002) will -// not be detected, so all internal pool use must take care to only store -// pointer types. -type Pool[T any] struct { - pool sync.Pool -} - -// New returns a new [Pool] for T, and will use fn to construct new Ts when -// the pool is empty. -func New[T any](fn func() T) *Pool[T] { - return &Pool[T]{ - pool: sync.Pool{ - New: func() any { - return fn() - }, - }, - } -} - -// Get gets a T from the pool, or creates a new one if the pool is empty. -func (p *Pool[T]) Get() T { - return p.pool.Get().(T) -} - -// Put returns x into the pool. -func (p *Pool[T]) Put(x T) { - p.pool.Put(x) -} diff --git a/vendor/go.uber.org/zap/internal/stacktrace/stack.go b/vendor/go.uber.org/zap/internal/stacktrace/stack.go deleted file mode 100644 index 82af755..0000000 --- a/vendor/go.uber.org/zap/internal/stacktrace/stack.go +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright (c) 2023 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package stacktrace provides support for gathering stack traces -// efficiently. -package stacktrace - -import ( - "runtime" - - "go.uber.org/zap/buffer" - "go.uber.org/zap/internal/bufferpool" - "go.uber.org/zap/internal/pool" -) - -var _stackPool = pool.New(func() *Stack { - return &Stack{ - storage: make([]uintptr, 64), - } -}) - -// Stack is a captured stack trace. -type Stack struct { - pcs []uintptr // program counters; always a subslice of storage - frames *runtime.Frames - - // The size of pcs varies depending on requirements: - // it will be one if the only the first frame was requested, - // and otherwise it will reflect the depth of the call stack. - // - // storage decouples the slice we need (pcs) from the slice we pool. - // We will always allocate a reasonably large storage, but we'll use - // only as much of it as we need. - storage []uintptr -} - -// Depth specifies how deep of a stack trace should be captured. -type Depth int - -const ( - // First captures only the first frame. - First Depth = iota - - // Full captures the entire call stack, allocating more - // storage for it if needed. - Full -) - -// Capture captures a stack trace of the specified depth, skipping -// the provided number of frames. skip=0 identifies the caller of -// Capture. -// -// The caller must call Free on the returned stacktrace after using it. -func Capture(skip int, depth Depth) *Stack { - stack := _stackPool.Get() - - switch depth { - case First: - stack.pcs = stack.storage[:1] - case Full: - stack.pcs = stack.storage - } - - // Unlike other "skip"-based APIs, skip=0 identifies runtime.Callers - // itself. +2 to skip captureStacktrace and runtime.Callers. - numFrames := runtime.Callers( - skip+2, - stack.pcs, - ) - - // runtime.Callers truncates the recorded stacktrace if there is no - // room in the provided slice. For the full stack trace, keep expanding - // storage until there are fewer frames than there is room. - if depth == Full { - pcs := stack.pcs - for numFrames == len(pcs) { - pcs = make([]uintptr, len(pcs)*2) - numFrames = runtime.Callers(skip+2, pcs) - } - - // Discard old storage instead of returning it to the pool. - // This will adjust the pool size over time if stack traces are - // consistently very deep. - stack.storage = pcs - stack.pcs = pcs[:numFrames] - } else { - stack.pcs = stack.pcs[:numFrames] - } - - stack.frames = runtime.CallersFrames(stack.pcs) - return stack -} - -// Free releases resources associated with this stacktrace -// and returns it back to the pool. -func (st *Stack) Free() { - st.frames = nil - st.pcs = nil - _stackPool.Put(st) -} - -// Count reports the total number of frames in this stacktrace. -// Count DOES NOT change as Next is called. -func (st *Stack) Count() int { - return len(st.pcs) -} - -// Next returns the next frame in the stack trace, -// and a boolean indicating whether there are more after it. -func (st *Stack) Next() (_ runtime.Frame, more bool) { - return st.frames.Next() -} - -// Take returns a string representation of the current stacktrace. -// -// skip is the number of frames to skip before recording the stack trace. -// skip=0 identifies the caller of Take. -func Take(skip int) string { - stack := Capture(skip+1, Full) - defer stack.Free() - - buffer := bufferpool.Get() - defer buffer.Free() - - stackfmt := NewFormatter(buffer) - stackfmt.FormatStack(stack) - return buffer.String() -} - -// Formatter formats a stack trace into a readable string representation. -type Formatter struct { - b *buffer.Buffer - nonEmpty bool // whehther we've written at least one frame already -} - -// NewFormatter builds a new Formatter. -func NewFormatter(b *buffer.Buffer) Formatter { - return Formatter{b: b} -} - -// FormatStack formats all remaining frames in the provided stacktrace -- minus -// the final runtime.main/runtime.goexit frame. -func (sf *Formatter) FormatStack(stack *Stack) { - // Note: On the last iteration, frames.Next() returns false, with a valid - // frame, but we ignore this frame. The last frame is a runtime frame which - // adds noise, since it's only either runtime.main or runtime.goexit. - for frame, more := stack.Next(); more; frame, more = stack.Next() { - sf.FormatFrame(frame) - } -} - -// FormatFrame formats the given frame. -func (sf *Formatter) FormatFrame(frame runtime.Frame) { - if sf.nonEmpty { - sf.b.AppendByte('\n') - } - sf.nonEmpty = true - sf.b.AppendString(frame.Function) - sf.b.AppendByte('\n') - sf.b.AppendByte('\t') - sf.b.AppendString(frame.File) - sf.b.AppendByte(':') - sf.b.AppendInt(int64(frame.Line)) -} diff --git a/vendor/go.uber.org/zap/level.go b/vendor/go.uber.org/zap/level.go deleted file mode 100644 index 155b208..0000000 --- a/vendor/go.uber.org/zap/level.go +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "sync/atomic" - - "go.uber.org/zap/internal" - "go.uber.org/zap/zapcore" -) - -const ( - // DebugLevel logs are typically voluminous, and are usually disabled in - // production. - DebugLevel = zapcore.DebugLevel - // InfoLevel is the default logging priority. - InfoLevel = zapcore.InfoLevel - // WarnLevel logs are more important than Info, but don't need individual - // human review. - WarnLevel = zapcore.WarnLevel - // ErrorLevel logs are high-priority. If an application is running smoothly, - // it shouldn't generate any error-level logs. - ErrorLevel = zapcore.ErrorLevel - // DPanicLevel logs are particularly important errors. In development the - // logger panics after writing the message. - DPanicLevel = zapcore.DPanicLevel - // PanicLevel logs a message, then panics. - PanicLevel = zapcore.PanicLevel - // FatalLevel logs a message, then calls os.Exit(1). - FatalLevel = zapcore.FatalLevel -) - -// LevelEnablerFunc is a convenient way to implement zapcore.LevelEnabler with -// an anonymous function. -// -// It's particularly useful when splitting log output between different -// outputs (e.g., standard error and standard out). For sample code, see the -// package-level AdvancedConfiguration example. -type LevelEnablerFunc func(zapcore.Level) bool - -// Enabled calls the wrapped function. -func (f LevelEnablerFunc) Enabled(lvl zapcore.Level) bool { return f(lvl) } - -// An AtomicLevel is an atomically changeable, dynamic logging level. It lets -// you safely change the log level of a tree of loggers (the root logger and -// any children created by adding context) at runtime. -// -// The AtomicLevel itself is an http.Handler that serves a JSON endpoint to -// alter its level. -// -// AtomicLevels must be created with the NewAtomicLevel constructor to allocate -// their internal atomic pointer. -type AtomicLevel struct { - l *atomic.Int32 -} - -var _ internal.LeveledEnabler = AtomicLevel{} - -// NewAtomicLevel creates an AtomicLevel with InfoLevel and above logging -// enabled. -func NewAtomicLevel() AtomicLevel { - lvl := AtomicLevel{l: new(atomic.Int32)} - lvl.l.Store(int32(InfoLevel)) - return lvl -} - -// NewAtomicLevelAt is a convenience function that creates an AtomicLevel -// and then calls SetLevel with the given level. -func NewAtomicLevelAt(l zapcore.Level) AtomicLevel { - a := NewAtomicLevel() - a.SetLevel(l) - return a -} - -// ParseAtomicLevel parses an AtomicLevel based on a lowercase or all-caps ASCII -// representation of the log level. If the provided ASCII representation is -// invalid an error is returned. -// -// This is particularly useful when dealing with text input to configure log -// levels. -func ParseAtomicLevel(text string) (AtomicLevel, error) { - a := NewAtomicLevel() - l, err := zapcore.ParseLevel(text) - if err != nil { - return a, err - } - - a.SetLevel(l) - return a, nil -} - -// Enabled implements the zapcore.LevelEnabler interface, which allows the -// AtomicLevel to be used in place of traditional static levels. -func (lvl AtomicLevel) Enabled(l zapcore.Level) bool { - return lvl.Level().Enabled(l) -} - -// Level returns the minimum enabled log level. -func (lvl AtomicLevel) Level() zapcore.Level { - return zapcore.Level(int8(lvl.l.Load())) -} - -// SetLevel alters the logging level. -func (lvl AtomicLevel) SetLevel(l zapcore.Level) { - lvl.l.Store(int32(l)) -} - -// String returns the string representation of the underlying Level. -func (lvl AtomicLevel) String() string { - return lvl.Level().String() -} - -// UnmarshalText unmarshals the text to an AtomicLevel. It uses the same text -// representations as the static zapcore.Levels ("debug", "info", "warn", -// "error", "dpanic", "panic", and "fatal"). -func (lvl *AtomicLevel) UnmarshalText(text []byte) error { - if lvl.l == nil { - lvl.l = &atomic.Int32{} - } - - var l zapcore.Level - if err := l.UnmarshalText(text); err != nil { - return err - } - - lvl.SetLevel(l) - return nil -} - -// MarshalText marshals the AtomicLevel to a byte slice. It uses the same -// text representation as the static zapcore.Levels ("debug", "info", "warn", -// "error", "dpanic", "panic", and "fatal"). -func (lvl AtomicLevel) MarshalText() (text []byte, err error) { - return lvl.Level().MarshalText() -} diff --git a/vendor/go.uber.org/zap/logger.go b/vendor/go.uber.org/zap/logger.go deleted file mode 100644 index 2d0ef14..0000000 --- a/vendor/go.uber.org/zap/logger.go +++ /dev/null @@ -1,439 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "fmt" - "io" - "os" - "strings" - - "go.uber.org/zap/internal/bufferpool" - "go.uber.org/zap/internal/stacktrace" - "go.uber.org/zap/zapcore" -) - -// A Logger provides fast, leveled, structured logging. All methods are safe -// for concurrent use. -// -// The Logger is designed for contexts in which every microsecond and every -// allocation matters, so its API intentionally favors performance and type -// safety over brevity. For most applications, the SugaredLogger strikes a -// better balance between performance and ergonomics. -type Logger struct { - core zapcore.Core - - development bool - addCaller bool - onPanic zapcore.CheckWriteHook // default is WriteThenPanic - onFatal zapcore.CheckWriteHook // default is WriteThenFatal - - name string - errorOutput zapcore.WriteSyncer - - addStack zapcore.LevelEnabler - - callerSkip int - - clock zapcore.Clock -} - -// New constructs a new Logger from the provided zapcore.Core and Options. If -// the passed zapcore.Core is nil, it falls back to using a no-op -// implementation. -// -// This is the most flexible way to construct a Logger, but also the most -// verbose. For typical use cases, the highly-opinionated presets -// (NewProduction, NewDevelopment, and NewExample) or the Config struct are -// more convenient. -// -// For sample code, see the package-level AdvancedConfiguration example. -func New(core zapcore.Core, options ...Option) *Logger { - if core == nil { - return NewNop() - } - log := &Logger{ - core: core, - errorOutput: zapcore.Lock(os.Stderr), - addStack: zapcore.FatalLevel + 1, - clock: zapcore.DefaultClock, - } - return log.WithOptions(options...) -} - -// NewNop returns a no-op Logger. It never writes out logs or internal errors, -// and it never runs user-defined hooks. -// -// Using WithOptions to replace the Core or error output of a no-op Logger can -// re-enable logging. -func NewNop() *Logger { - return &Logger{ - core: zapcore.NewNopCore(), - errorOutput: zapcore.AddSync(io.Discard), - addStack: zapcore.FatalLevel + 1, - clock: zapcore.DefaultClock, - } -} - -// NewProduction builds a sensible production Logger that writes InfoLevel and -// above logs to standard error as JSON. -// -// It's a shortcut for NewProductionConfig().Build(...Option). -func NewProduction(options ...Option) (*Logger, error) { - return NewProductionConfig().Build(options...) -} - -// NewDevelopment builds a development Logger that writes DebugLevel and above -// logs to standard error in a human-friendly format. -// -// It's a shortcut for NewDevelopmentConfig().Build(...Option). -func NewDevelopment(options ...Option) (*Logger, error) { - return NewDevelopmentConfig().Build(options...) -} - -// Must is a helper that wraps a call to a function returning (*Logger, error) -// and panics if the error is non-nil. It is intended for use in variable -// initialization such as: -// -// var logger = zap.Must(zap.NewProduction()) -func Must(logger *Logger, err error) *Logger { - if err != nil { - panic(err) - } - - return logger -} - -// NewExample builds a Logger that's designed for use in zap's testable -// examples. It writes DebugLevel and above logs to standard out as JSON, but -// omits the timestamp and calling function to keep example output -// short and deterministic. -func NewExample(options ...Option) *Logger { - encoderCfg := zapcore.EncoderConfig{ - MessageKey: "msg", - LevelKey: "level", - NameKey: "logger", - EncodeLevel: zapcore.LowercaseLevelEncoder, - EncodeTime: zapcore.ISO8601TimeEncoder, - EncodeDuration: zapcore.StringDurationEncoder, - } - core := zapcore.NewCore(zapcore.NewJSONEncoder(encoderCfg), os.Stdout, DebugLevel) - return New(core).WithOptions(options...) -} - -// Sugar wraps the Logger to provide a more ergonomic, but slightly slower, -// API. Sugaring a Logger is quite inexpensive, so it's reasonable for a -// single application to use both Loggers and SugaredLoggers, converting -// between them on the boundaries of performance-sensitive code. -func (log *Logger) Sugar() *SugaredLogger { - core := log.clone() - core.callerSkip += 2 - return &SugaredLogger{core} -} - -// Named adds a new path segment to the logger's name. Segments are joined by -// periods. By default, Loggers are unnamed. -func (log *Logger) Named(s string) *Logger { - if s == "" { - return log - } - l := log.clone() - if log.name == "" { - l.name = s - } else { - l.name = strings.Join([]string{l.name, s}, ".") - } - return l -} - -// WithOptions clones the current Logger, applies the supplied Options, and -// returns the resulting Logger. It's safe to use concurrently. -func (log *Logger) WithOptions(opts ...Option) *Logger { - c := log.clone() - for _, opt := range opts { - opt.apply(c) - } - return c -} - -// With creates a child logger and adds structured context to it. Fields added -// to the child don't affect the parent, and vice versa. Any fields that -// require evaluation (such as Objects) are evaluated upon invocation of With. -func (log *Logger) With(fields ...Field) *Logger { - if len(fields) == 0 { - return log - } - l := log.clone() - l.core = l.core.With(fields) - return l -} - -// WithLazy creates a child logger and adds structured context to it lazily. -// -// The fields are evaluated only if the logger is further chained with [With] -// or is written to with any of the log level methods. -// Until that occurs, the logger may retain references to objects inside the fields, -// and logging will reflect the state of an object at the time of logging, -// not the time of WithLazy(). -// -// WithLazy provides a worthwhile performance optimization for contextual loggers -// when the likelihood of using the child logger is low, -// such as error paths and rarely taken branches. -// -// Similar to [With], fields added to the child don't affect the parent, and vice versa. -func (log *Logger) WithLazy(fields ...Field) *Logger { - if len(fields) == 0 { - return log - } - return log.WithOptions(WrapCore(func(core zapcore.Core) zapcore.Core { - return zapcore.NewLazyWith(core, fields) - })) -} - -// Level reports the minimum enabled level for this logger. -// -// For NopLoggers, this is [zapcore.InvalidLevel]. -func (log *Logger) Level() zapcore.Level { - return zapcore.LevelOf(log.core) -} - -// Check returns a CheckedEntry if logging a message at the specified level -// is enabled. It's a completely optional optimization; in high-performance -// applications, Check can help avoid allocating a slice to hold fields. -func (log *Logger) Check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { - return log.check(lvl, msg) -} - -// Log logs a message at the specified level. The message includes any fields -// passed at the log site, as well as any fields accumulated on the logger. -// Any Fields that require evaluation (such as Objects) are evaluated upon -// invocation of Log. -func (log *Logger) Log(lvl zapcore.Level, msg string, fields ...Field) { - if ce := log.check(lvl, msg); ce != nil { - ce.Write(fields...) - } -} - -// Debug logs a message at DebugLevel. The message includes any fields passed -// at the log site, as well as any fields accumulated on the logger. -func (log *Logger) Debug(msg string, fields ...Field) { - if ce := log.check(DebugLevel, msg); ce != nil { - ce.Write(fields...) - } -} - -// Info logs a message at InfoLevel. The message includes any fields passed -// at the log site, as well as any fields accumulated on the logger. -func (log *Logger) Info(msg string, fields ...Field) { - if ce := log.check(InfoLevel, msg); ce != nil { - ce.Write(fields...) - } -} - -// Warn logs a message at WarnLevel. The message includes any fields passed -// at the log site, as well as any fields accumulated on the logger. -func (log *Logger) Warn(msg string, fields ...Field) { - if ce := log.check(WarnLevel, msg); ce != nil { - ce.Write(fields...) - } -} - -// Error logs a message at ErrorLevel. The message includes any fields passed -// at the log site, as well as any fields accumulated on the logger. -func (log *Logger) Error(msg string, fields ...Field) { - if ce := log.check(ErrorLevel, msg); ce != nil { - ce.Write(fields...) - } -} - -// DPanic logs a message at DPanicLevel. The message includes any fields -// passed at the log site, as well as any fields accumulated on the logger. -// -// If the logger is in development mode, it then panics (DPanic means -// "development panic"). This is useful for catching errors that are -// recoverable, but shouldn't ever happen. -func (log *Logger) DPanic(msg string, fields ...Field) { - if ce := log.check(DPanicLevel, msg); ce != nil { - ce.Write(fields...) - } -} - -// Panic logs a message at PanicLevel. The message includes any fields passed -// at the log site, as well as any fields accumulated on the logger. -// -// The logger then panics, even if logging at PanicLevel is disabled. -func (log *Logger) Panic(msg string, fields ...Field) { - if ce := log.check(PanicLevel, msg); ce != nil { - ce.Write(fields...) - } -} - -// Fatal logs a message at FatalLevel. The message includes any fields passed -// at the log site, as well as any fields accumulated on the logger. -// -// The logger then calls os.Exit(1), even if logging at FatalLevel is -// disabled. -func (log *Logger) Fatal(msg string, fields ...Field) { - if ce := log.check(FatalLevel, msg); ce != nil { - ce.Write(fields...) - } -} - -// Sync calls the underlying Core's Sync method, flushing any buffered log -// entries. Applications should take care to call Sync before exiting. -func (log *Logger) Sync() error { - return log.core.Sync() -} - -// Core returns the Logger's underlying zapcore.Core. -func (log *Logger) Core() zapcore.Core { - return log.core -} - -// Name returns the Logger's underlying name, -// or an empty string if the logger is unnamed. -func (log *Logger) Name() string { - return log.name -} - -func (log *Logger) clone() *Logger { - clone := *log - return &clone -} - -func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { - // Logger.check must always be called directly by a method in the - // Logger interface (e.g., Check, Info, Fatal). - // This skips Logger.check and the Info/Fatal/Check/etc. method that - // called it. - const callerSkipOffset = 2 - - // Check the level first to reduce the cost of disabled log calls. - // Since Panic and higher may exit, we skip the optimization for those levels. - if lvl < zapcore.DPanicLevel && !log.core.Enabled(lvl) { - return nil - } - - // Create basic checked entry thru the core; this will be non-nil if the - // log message will actually be written somewhere. - ent := zapcore.Entry{ - LoggerName: log.name, - Time: log.clock.Now(), - Level: lvl, - Message: msg, - } - ce := log.core.Check(ent, nil) - willWrite := ce != nil - - // Set up any required terminal behavior. - switch ent.Level { - case zapcore.PanicLevel: - ce = ce.After(ent, terminalHookOverride(zapcore.WriteThenPanic, log.onPanic)) - case zapcore.FatalLevel: - ce = ce.After(ent, terminalHookOverride(zapcore.WriteThenFatal, log.onFatal)) - case zapcore.DPanicLevel: - if log.development { - ce = ce.After(ent, terminalHookOverride(zapcore.WriteThenPanic, log.onPanic)) - } - } - - // Only do further annotation if we're going to write this message; checked - // entries that exist only for terminal behavior don't benefit from - // annotation. - if !willWrite { - return ce - } - - // Thread the error output through to the CheckedEntry. - ce.ErrorOutput = log.errorOutput - - addStack := log.addStack.Enabled(ce.Level) - if !log.addCaller && !addStack { - return ce - } - - // Adding the caller or stack trace requires capturing the callers of - // this function. We'll share information between these two. - stackDepth := stacktrace.First - if addStack { - stackDepth = stacktrace.Full - } - stack := stacktrace.Capture(log.callerSkip+callerSkipOffset, stackDepth) - defer stack.Free() - - if stack.Count() == 0 { - if log.addCaller { - _, _ = fmt.Fprintf( - log.errorOutput, - "%v Logger.check error: failed to get caller\n", - ent.Time.UTC(), - ) - _ = log.errorOutput.Sync() - } - return ce - } - - frame, more := stack.Next() - - if log.addCaller { - ce.Caller = zapcore.EntryCaller{ - Defined: frame.PC != 0, - PC: frame.PC, - File: frame.File, - Line: frame.Line, - Function: frame.Function, - } - } - - if addStack { - buffer := bufferpool.Get() - defer buffer.Free() - - stackfmt := stacktrace.NewFormatter(buffer) - - // We've already extracted the first frame, so format that - // separately and defer to stackfmt for the rest. - stackfmt.FormatFrame(frame) - if more { - stackfmt.FormatStack(stack) - } - ce.Stack = buffer.String() - } - - return ce -} - -func terminalHookOverride(defaultHook, override zapcore.CheckWriteHook) zapcore.CheckWriteHook { - // A nil or WriteThenNoop hook will lead to continued execution after - // a Panic or Fatal log entry, which is unexpected. For example, - // - // f, err := os.Open(..) - // if err != nil { - // log.Fatal("cannot open", zap.Error(err)) - // } - // fmt.Println(f.Name()) - // - // The f.Name() will panic if we continue execution after the log.Fatal. - if override == nil || override == zapcore.WriteThenNoop { - return defaultHook - } - return override -} diff --git a/vendor/go.uber.org/zap/options.go b/vendor/go.uber.org/zap/options.go deleted file mode 100644 index 04a3c1e..0000000 --- a/vendor/go.uber.org/zap/options.go +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "fmt" - - "go.uber.org/zap/zapcore" -) - -// An Option configures a Logger. -type Option interface { - apply(*Logger) -} - -// optionFunc wraps a func so it satisfies the Option interface. -type optionFunc func(*Logger) - -func (f optionFunc) apply(log *Logger) { - f(log) -} - -// WrapCore wraps or replaces the Logger's underlying zapcore.Core. -func WrapCore(f func(zapcore.Core) zapcore.Core) Option { - return optionFunc(func(log *Logger) { - log.core = f(log.core) - }) -} - -// Hooks registers functions which will be called each time the Logger writes -// out an Entry. Repeated use of Hooks is additive. -// -// Hooks are useful for simple side effects, like capturing metrics for the -// number of emitted logs. More complex side effects, including anything that -// requires access to the Entry's structured fields, should be implemented as -// a zapcore.Core instead. See zapcore.RegisterHooks for details. -func Hooks(hooks ...func(zapcore.Entry) error) Option { - return optionFunc(func(log *Logger) { - log.core = zapcore.RegisterHooks(log.core, hooks...) - }) -} - -// Fields adds fields to the Logger. -func Fields(fs ...Field) Option { - return optionFunc(func(log *Logger) { - log.core = log.core.With(fs) - }) -} - -// ErrorOutput sets the destination for errors generated by the Logger. Note -// that this option only affects internal errors; for sample code that sends -// error-level logs to a different location from info- and debug-level logs, -// see the package-level AdvancedConfiguration example. -// -// The supplied WriteSyncer must be safe for concurrent use. The Open and -// zapcore.Lock functions are the simplest ways to protect files with a mutex. -func ErrorOutput(w zapcore.WriteSyncer) Option { - return optionFunc(func(log *Logger) { - log.errorOutput = w - }) -} - -// Development puts the logger in development mode, which makes DPanic-level -// logs panic instead of simply logging an error. -func Development() Option { - return optionFunc(func(log *Logger) { - log.development = true - }) -} - -// AddCaller configures the Logger to annotate each message with the filename, -// line number, and function name of zap's caller. See also WithCaller. -func AddCaller() Option { - return WithCaller(true) -} - -// WithCaller configures the Logger to annotate each message with the filename, -// line number, and function name of zap's caller, or not, depending on the -// value of enabled. This is a generalized form of AddCaller. -func WithCaller(enabled bool) Option { - return optionFunc(func(log *Logger) { - log.addCaller = enabled - }) -} - -// AddCallerSkip increases the number of callers skipped by caller annotation -// (as enabled by the AddCaller option). When building wrappers around the -// Logger and SugaredLogger, supplying this Option prevents zap from always -// reporting the wrapper code as the caller. -func AddCallerSkip(skip int) Option { - return optionFunc(func(log *Logger) { - log.callerSkip += skip - }) -} - -// AddStacktrace configures the Logger to record a stack trace for all messages at -// or above a given level. -func AddStacktrace(lvl zapcore.LevelEnabler) Option { - return optionFunc(func(log *Logger) { - log.addStack = lvl - }) -} - -// IncreaseLevel increase the level of the logger. It has no effect if -// the passed in level tries to decrease the level of the logger. -func IncreaseLevel(lvl zapcore.LevelEnabler) Option { - return optionFunc(func(log *Logger) { - core, err := zapcore.NewIncreaseLevelCore(log.core, lvl) - if err != nil { - _, _ = fmt.Fprintf( - log.errorOutput, - "failed to IncreaseLevel: %v\n", - err, - ) - } else { - log.core = core - } - }) -} - -// WithPanicHook sets a CheckWriteHook to run on Panic/DPanic logs. -// Zap will call this hook after writing a log statement with a Panic/DPanic level. -// -// For example, the following builds a logger that will exit the current -// goroutine after writing a Panic/DPanic log message, but it will not start a panic. -// -// zap.New(core, zap.WithPanicHook(zapcore.WriteThenGoexit)) -// -// This is useful for testing Panic/DPanic log output. -func WithPanicHook(hook zapcore.CheckWriteHook) Option { - return optionFunc(func(log *Logger) { - log.onPanic = hook - }) -} - -// OnFatal sets the action to take on fatal logs. -// -// Deprecated: Use [WithFatalHook] instead. -func OnFatal(action zapcore.CheckWriteAction) Option { - return WithFatalHook(action) -} - -// WithFatalHook sets a CheckWriteHook to run on fatal logs. -// Zap will call this hook after writing a log statement with a Fatal level. -// -// For example, the following builds a logger that will exit the current -// goroutine after writing a fatal log message, but it will not exit the -// program. -// -// zap.New(core, zap.WithFatalHook(zapcore.WriteThenGoexit)) -// -// It is important that the provided CheckWriteHook stops the control flow at -// the current statement to meet expectations of callers of the logger. -// We recommend calling os.Exit or runtime.Goexit inside custom hooks at -// minimum. -func WithFatalHook(hook zapcore.CheckWriteHook) Option { - return optionFunc(func(log *Logger) { - log.onFatal = hook - }) -} - -// WithClock specifies the clock used by the logger to determine the current -// time for logged entries. Defaults to the system clock with time.Now. -func WithClock(clock zapcore.Clock) Option { - return optionFunc(func(log *Logger) { - log.clock = clock - }) -} diff --git a/vendor/go.uber.org/zap/sink.go b/vendor/go.uber.org/zap/sink.go deleted file mode 100644 index 9220228..0000000 --- a/vendor/go.uber.org/zap/sink.go +++ /dev/null @@ -1,180 +0,0 @@ -// Copyright (c) 2016-2022 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "errors" - "fmt" - "io" - "net/url" - "os" - "path/filepath" - "strings" - "sync" - - "go.uber.org/zap/zapcore" -) - -const schemeFile = "file" - -var _sinkRegistry = newSinkRegistry() - -// Sink defines the interface to write to and close logger destinations. -type Sink interface { - zapcore.WriteSyncer - io.Closer -} - -type errSinkNotFound struct { - scheme string -} - -func (e *errSinkNotFound) Error() string { - return fmt.Sprintf("no sink found for scheme %q", e.scheme) -} - -type nopCloserSink struct{ zapcore.WriteSyncer } - -func (nopCloserSink) Close() error { return nil } - -type sinkRegistry struct { - mu sync.Mutex - factories map[string]func(*url.URL) (Sink, error) // keyed by scheme - openFile func(string, int, os.FileMode) (*os.File, error) // type matches os.OpenFile -} - -func newSinkRegistry() *sinkRegistry { - sr := &sinkRegistry{ - factories: make(map[string]func(*url.URL) (Sink, error)), - openFile: os.OpenFile, - } - // Infallible operation: the registry is empty, so we can't have a conflict. - _ = sr.RegisterSink(schemeFile, sr.newFileSinkFromURL) - return sr -} - -// RegisterSink registers the given factory for the specific scheme. -func (sr *sinkRegistry) RegisterSink(scheme string, factory func(*url.URL) (Sink, error)) error { - sr.mu.Lock() - defer sr.mu.Unlock() - - if scheme == "" { - return errors.New("can't register a sink factory for empty string") - } - normalized, err := normalizeScheme(scheme) - if err != nil { - return fmt.Errorf("%q is not a valid scheme: %v", scheme, err) - } - if _, ok := sr.factories[normalized]; ok { - return fmt.Errorf("sink factory already registered for scheme %q", normalized) - } - sr.factories[normalized] = factory - return nil -} - -func (sr *sinkRegistry) newSink(rawURL string) (Sink, error) { - // URL parsing doesn't work well for Windows paths such as `c:\log.txt`, as scheme is set to - // the drive, and path is unset unless `c:/log.txt` is used. - // To avoid Windows-specific URL handling, we instead check IsAbs to open as a file. - // filepath.IsAbs is OS-specific, so IsAbs('c:/log.txt') is false outside of Windows. - if filepath.IsAbs(rawURL) { - return sr.newFileSinkFromPath(rawURL) - } - - u, err := url.Parse(rawURL) - if err != nil { - return nil, fmt.Errorf("can't parse %q as a URL: %v", rawURL, err) - } - if u.Scheme == "" { - u.Scheme = schemeFile - } - - sr.mu.Lock() - factory, ok := sr.factories[u.Scheme] - sr.mu.Unlock() - if !ok { - return nil, &errSinkNotFound{u.Scheme} - } - return factory(u) -} - -// RegisterSink registers a user-supplied factory for all sinks with a -// particular scheme. -// -// All schemes must be ASCII, valid under section 0.1 of RFC 3986 -// (https://tools.ietf.org/html/rfc3983#section-3.1), and must not already -// have a factory registered. Zap automatically registers a factory for the -// "file" scheme. -func RegisterSink(scheme string, factory func(*url.URL) (Sink, error)) error { - return _sinkRegistry.RegisterSink(scheme, factory) -} - -func (sr *sinkRegistry) newFileSinkFromURL(u *url.URL) (Sink, error) { - if u.User != nil { - return nil, fmt.Errorf("user and password not allowed with file URLs: got %v", u) - } - if u.Fragment != "" { - return nil, fmt.Errorf("fragments not allowed with file URLs: got %v", u) - } - if u.RawQuery != "" { - return nil, fmt.Errorf("query parameters not allowed with file URLs: got %v", u) - } - // Error messages are better if we check hostname and port separately. - if u.Port() != "" { - return nil, fmt.Errorf("ports not allowed with file URLs: got %v", u) - } - if hn := u.Hostname(); hn != "" && hn != "localhost" { - return nil, fmt.Errorf("file URLs must leave host empty or use localhost: got %v", u) - } - - return sr.newFileSinkFromPath(u.Path) -} - -func (sr *sinkRegistry) newFileSinkFromPath(path string) (Sink, error) { - switch path { - case "stdout": - return nopCloserSink{os.Stdout}, nil - case "stderr": - return nopCloserSink{os.Stderr}, nil - } - return sr.openFile(path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0o666) -} - -func normalizeScheme(s string) (string, error) { - // https://tools.ietf.org/html/rfc3986#section-3.1 - s = strings.ToLower(s) - if first := s[0]; 'a' > first || 'z' < first { - return "", errors.New("must start with a letter") - } - for i := 1; i < len(s); i++ { // iterate over bytes, not runes - c := s[i] - switch { - case 'a' <= c && c <= 'z': - continue - case '0' <= c && c <= '9': - continue - case c == '.' || c == '+' || c == '-': - continue - } - return "", fmt.Errorf("may not contain %q", c) - } - return s, nil -} diff --git a/vendor/go.uber.org/zap/sugar.go b/vendor/go.uber.org/zap/sugar.go deleted file mode 100644 index 8904cd0..0000000 --- a/vendor/go.uber.org/zap/sugar.go +++ /dev/null @@ -1,476 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "fmt" - - "go.uber.org/zap/zapcore" - - "go.uber.org/multierr" -) - -const ( - _oddNumberErrMsg = "Ignored key without a value." - _nonStringKeyErrMsg = "Ignored key-value pairs with non-string keys." - _multipleErrMsg = "Multiple errors without a key." -) - -// A SugaredLogger wraps the base Logger functionality in a slower, but less -// verbose, API. Any Logger can be converted to a SugaredLogger with its Sugar -// method. -// -// Unlike the Logger, the SugaredLogger doesn't insist on structured logging. -// For each log level, it exposes four methods: -// -// - methods named after the log level for log.Print-style logging -// - methods ending in "w" for loosely-typed structured logging -// - methods ending in "f" for log.Printf-style logging -// - methods ending in "ln" for log.Println-style logging -// -// For example, the methods for InfoLevel are: -// -// Info(...any) Print-style logging -// Infow(...any) Structured logging (read as "info with") -// Infof(string, ...any) Printf-style logging -// Infoln(...any) Println-style logging -type SugaredLogger struct { - base *Logger -} - -// Desugar unwraps a SugaredLogger, exposing the original Logger. Desugaring -// is quite inexpensive, so it's reasonable for a single application to use -// both Loggers and SugaredLoggers, converting between them on the boundaries -// of performance-sensitive code. -func (s *SugaredLogger) Desugar() *Logger { - base := s.base.clone() - base.callerSkip -= 2 - return base -} - -// Named adds a sub-scope to the logger's name. See Logger.Named for details. -func (s *SugaredLogger) Named(name string) *SugaredLogger { - return &SugaredLogger{base: s.base.Named(name)} -} - -// WithOptions clones the current SugaredLogger, applies the supplied Options, -// and returns the result. It's safe to use concurrently. -func (s *SugaredLogger) WithOptions(opts ...Option) *SugaredLogger { - base := s.base.clone() - for _, opt := range opts { - opt.apply(base) - } - return &SugaredLogger{base: base} -} - -// With adds a variadic number of fields to the logging context. It accepts a -// mix of strongly-typed Field objects and loosely-typed key-value pairs. When -// processing pairs, the first element of the pair is used as the field key -// and the second as the field value. -// -// For example, -// -// sugaredLogger.With( -// "hello", "world", -// "failure", errors.New("oh no"), -// Stack(), -// "count", 42, -// "user", User{Name: "alice"}, -// ) -// -// is the equivalent of -// -// unsugared.With( -// String("hello", "world"), -// String("failure", "oh no"), -// Stack(), -// Int("count", 42), -// Object("user", User{Name: "alice"}), -// ) -// -// Note that the keys in key-value pairs should be strings. In development, -// passing a non-string key panics. In production, the logger is more -// forgiving: a separate error is logged, but the key-value pair is skipped -// and execution continues. Passing an orphaned key triggers similar behavior: -// panics in development and errors in production. -func (s *SugaredLogger) With(args ...interface{}) *SugaredLogger { - return &SugaredLogger{base: s.base.With(s.sweetenFields(args)...)} -} - -// WithLazy adds a variadic number of fields to the logging context lazily. -// The fields are evaluated only if the logger is further chained with [With] -// or is written to with any of the log level methods. -// Until that occurs, the logger may retain references to objects inside the fields, -// and logging will reflect the state of an object at the time of logging, -// not the time of WithLazy(). -// -// Similar to [With], fields added to the child don't affect the parent, -// and vice versa. Also, the keys in key-value pairs should be strings. In development, -// passing a non-string key panics, while in production it logs an error and skips the pair. -// Passing an orphaned key has the same behavior. -func (s *SugaredLogger) WithLazy(args ...interface{}) *SugaredLogger { - return &SugaredLogger{base: s.base.WithLazy(s.sweetenFields(args)...)} -} - -// Level reports the minimum enabled level for this logger. -// -// For NopLoggers, this is [zapcore.InvalidLevel]. -func (s *SugaredLogger) Level() zapcore.Level { - return zapcore.LevelOf(s.base.core) -} - -// Log logs the provided arguments at provided level. -// Spaces are added between arguments when neither is a string. -func (s *SugaredLogger) Log(lvl zapcore.Level, args ...interface{}) { - s.log(lvl, "", args, nil) -} - -// Debug logs the provided arguments at [DebugLevel]. -// Spaces are added between arguments when neither is a string. -func (s *SugaredLogger) Debug(args ...interface{}) { - s.log(DebugLevel, "", args, nil) -} - -// Info logs the provided arguments at [InfoLevel]. -// Spaces are added between arguments when neither is a string. -func (s *SugaredLogger) Info(args ...interface{}) { - s.log(InfoLevel, "", args, nil) -} - -// Warn logs the provided arguments at [WarnLevel]. -// Spaces are added between arguments when neither is a string. -func (s *SugaredLogger) Warn(args ...interface{}) { - s.log(WarnLevel, "", args, nil) -} - -// Error logs the provided arguments at [ErrorLevel]. -// Spaces are added between arguments when neither is a string. -func (s *SugaredLogger) Error(args ...interface{}) { - s.log(ErrorLevel, "", args, nil) -} - -// DPanic logs the provided arguments at [DPanicLevel]. -// In development, the logger then panics. (See [DPanicLevel] for details.) -// Spaces are added between arguments when neither is a string. -func (s *SugaredLogger) DPanic(args ...interface{}) { - s.log(DPanicLevel, "", args, nil) -} - -// Panic constructs a message with the provided arguments and panics. -// Spaces are added between arguments when neither is a string. -func (s *SugaredLogger) Panic(args ...interface{}) { - s.log(PanicLevel, "", args, nil) -} - -// Fatal constructs a message with the provided arguments and calls os.Exit. -// Spaces are added between arguments when neither is a string. -func (s *SugaredLogger) Fatal(args ...interface{}) { - s.log(FatalLevel, "", args, nil) -} - -// Logf formats the message according to the format specifier -// and logs it at provided level. -func (s *SugaredLogger) Logf(lvl zapcore.Level, template string, args ...interface{}) { - s.log(lvl, template, args, nil) -} - -// Debugf formats the message according to the format specifier -// and logs it at [DebugLevel]. -func (s *SugaredLogger) Debugf(template string, args ...interface{}) { - s.log(DebugLevel, template, args, nil) -} - -// Infof formats the message according to the format specifier -// and logs it at [InfoLevel]. -func (s *SugaredLogger) Infof(template string, args ...interface{}) { - s.log(InfoLevel, template, args, nil) -} - -// Warnf formats the message according to the format specifier -// and logs it at [WarnLevel]. -func (s *SugaredLogger) Warnf(template string, args ...interface{}) { - s.log(WarnLevel, template, args, nil) -} - -// Errorf formats the message according to the format specifier -// and logs it at [ErrorLevel]. -func (s *SugaredLogger) Errorf(template string, args ...interface{}) { - s.log(ErrorLevel, template, args, nil) -} - -// DPanicf formats the message according to the format specifier -// and logs it at [DPanicLevel]. -// In development, the logger then panics. (See [DPanicLevel] for details.) -func (s *SugaredLogger) DPanicf(template string, args ...interface{}) { - s.log(DPanicLevel, template, args, nil) -} - -// Panicf formats the message according to the format specifier -// and panics. -func (s *SugaredLogger) Panicf(template string, args ...interface{}) { - s.log(PanicLevel, template, args, nil) -} - -// Fatalf formats the message according to the format specifier -// and calls os.Exit. -func (s *SugaredLogger) Fatalf(template string, args ...interface{}) { - s.log(FatalLevel, template, args, nil) -} - -// Logw logs a message with some additional context. The variadic key-value -// pairs are treated as they are in With. -func (s *SugaredLogger) Logw(lvl zapcore.Level, msg string, keysAndValues ...interface{}) { - s.log(lvl, msg, nil, keysAndValues) -} - -// Debugw logs a message with some additional context. The variadic key-value -// pairs are treated as they are in With. -// -// When debug-level logging is disabled, this is much faster than -// -// s.With(keysAndValues).Debug(msg) -func (s *SugaredLogger) Debugw(msg string, keysAndValues ...interface{}) { - s.log(DebugLevel, msg, nil, keysAndValues) -} - -// Infow logs a message with some additional context. The variadic key-value -// pairs are treated as they are in With. -func (s *SugaredLogger) Infow(msg string, keysAndValues ...interface{}) { - s.log(InfoLevel, msg, nil, keysAndValues) -} - -// Warnw logs a message with some additional context. The variadic key-value -// pairs are treated as they are in With. -func (s *SugaredLogger) Warnw(msg string, keysAndValues ...interface{}) { - s.log(WarnLevel, msg, nil, keysAndValues) -} - -// Errorw logs a message with some additional context. The variadic key-value -// pairs are treated as they are in With. -func (s *SugaredLogger) Errorw(msg string, keysAndValues ...interface{}) { - s.log(ErrorLevel, msg, nil, keysAndValues) -} - -// DPanicw logs a message with some additional context. In development, the -// logger then panics. (See DPanicLevel for details.) The variadic key-value -// pairs are treated as they are in With. -func (s *SugaredLogger) DPanicw(msg string, keysAndValues ...interface{}) { - s.log(DPanicLevel, msg, nil, keysAndValues) -} - -// Panicw logs a message with some additional context, then panics. The -// variadic key-value pairs are treated as they are in With. -func (s *SugaredLogger) Panicw(msg string, keysAndValues ...interface{}) { - s.log(PanicLevel, msg, nil, keysAndValues) -} - -// Fatalw logs a message with some additional context, then calls os.Exit. The -// variadic key-value pairs are treated as they are in With. -func (s *SugaredLogger) Fatalw(msg string, keysAndValues ...interface{}) { - s.log(FatalLevel, msg, nil, keysAndValues) -} - -// Logln logs a message at provided level. -// Spaces are always added between arguments. -func (s *SugaredLogger) Logln(lvl zapcore.Level, args ...interface{}) { - s.logln(lvl, args, nil) -} - -// Debugln logs a message at [DebugLevel]. -// Spaces are always added between arguments. -func (s *SugaredLogger) Debugln(args ...interface{}) { - s.logln(DebugLevel, args, nil) -} - -// Infoln logs a message at [InfoLevel]. -// Spaces are always added between arguments. -func (s *SugaredLogger) Infoln(args ...interface{}) { - s.logln(InfoLevel, args, nil) -} - -// Warnln logs a message at [WarnLevel]. -// Spaces are always added between arguments. -func (s *SugaredLogger) Warnln(args ...interface{}) { - s.logln(WarnLevel, args, nil) -} - -// Errorln logs a message at [ErrorLevel]. -// Spaces are always added between arguments. -func (s *SugaredLogger) Errorln(args ...interface{}) { - s.logln(ErrorLevel, args, nil) -} - -// DPanicln logs a message at [DPanicLevel]. -// In development, the logger then panics. (See [DPanicLevel] for details.) -// Spaces are always added between arguments. -func (s *SugaredLogger) DPanicln(args ...interface{}) { - s.logln(DPanicLevel, args, nil) -} - -// Panicln logs a message at [PanicLevel] and panics. -// Spaces are always added between arguments. -func (s *SugaredLogger) Panicln(args ...interface{}) { - s.logln(PanicLevel, args, nil) -} - -// Fatalln logs a message at [FatalLevel] and calls os.Exit. -// Spaces are always added between arguments. -func (s *SugaredLogger) Fatalln(args ...interface{}) { - s.logln(FatalLevel, args, nil) -} - -// Sync flushes any buffered log entries. -func (s *SugaredLogger) Sync() error { - return s.base.Sync() -} - -// log message with Sprint, Sprintf, or neither. -func (s *SugaredLogger) log(lvl zapcore.Level, template string, fmtArgs []interface{}, context []interface{}) { - // If logging at this level is completely disabled, skip the overhead of - // string formatting. - if lvl < DPanicLevel && !s.base.Core().Enabled(lvl) { - return - } - - msg := getMessage(template, fmtArgs) - if ce := s.base.Check(lvl, msg); ce != nil { - ce.Write(s.sweetenFields(context)...) - } -} - -// logln message with Sprintln -func (s *SugaredLogger) logln(lvl zapcore.Level, fmtArgs []interface{}, context []interface{}) { - if lvl < DPanicLevel && !s.base.Core().Enabled(lvl) { - return - } - - msg := getMessageln(fmtArgs) - if ce := s.base.Check(lvl, msg); ce != nil { - ce.Write(s.sweetenFields(context)...) - } -} - -// getMessage format with Sprint, Sprintf, or neither. -func getMessage(template string, fmtArgs []interface{}) string { - if len(fmtArgs) == 0 { - return template - } - - if template != "" { - return fmt.Sprintf(template, fmtArgs...) - } - - if len(fmtArgs) == 1 { - if str, ok := fmtArgs[0].(string); ok { - return str - } - } - return fmt.Sprint(fmtArgs...) -} - -// getMessageln format with Sprintln. -func getMessageln(fmtArgs []interface{}) string { - msg := fmt.Sprintln(fmtArgs...) - return msg[:len(msg)-1] -} - -func (s *SugaredLogger) sweetenFields(args []interface{}) []Field { - if len(args) == 0 { - return nil - } - - var ( - // Allocate enough space for the worst case; if users pass only structured - // fields, we shouldn't penalize them with extra allocations. - fields = make([]Field, 0, len(args)) - invalid invalidPairs - seenError bool - ) - - for i := 0; i < len(args); { - // This is a strongly-typed field. Consume it and move on. - if f, ok := args[i].(Field); ok { - fields = append(fields, f) - i++ - continue - } - - // If it is an error, consume it and move on. - if err, ok := args[i].(error); ok { - if !seenError { - seenError = true - fields = append(fields, Error(err)) - } else { - s.base.Error(_multipleErrMsg, Error(err)) - } - i++ - continue - } - - // Make sure this element isn't a dangling key. - if i == len(args)-1 { - s.base.Error(_oddNumberErrMsg, Any("ignored", args[i])) - break - } - - // Consume this value and the next, treating them as a key-value pair. If the - // key isn't a string, add this pair to the slice of invalid pairs. - key, val := args[i], args[i+1] - if keyStr, ok := key.(string); !ok { - // Subsequent errors are likely, so allocate once up front. - if cap(invalid) == 0 { - invalid = make(invalidPairs, 0, len(args)/2) - } - invalid = append(invalid, invalidPair{i, key, val}) - } else { - fields = append(fields, Any(keyStr, val)) - } - i += 2 - } - - // If we encountered any invalid key-value pairs, log an error. - if len(invalid) > 0 { - s.base.Error(_nonStringKeyErrMsg, Array("invalid", invalid)) - } - return fields -} - -type invalidPair struct { - position int - key, value interface{} -} - -func (p invalidPair) MarshalLogObject(enc zapcore.ObjectEncoder) error { - enc.AddInt64("position", int64(p.position)) - Any("key", p.key).AddTo(enc) - Any("value", p.value).AddTo(enc) - return nil -} - -type invalidPairs []invalidPair - -func (ps invalidPairs) MarshalLogArray(enc zapcore.ArrayEncoder) error { - var err error - for i := range ps { - err = multierr.Append(err, enc.AppendObject(ps[i])) - } - return err -} diff --git a/vendor/go.uber.org/zap/time.go b/vendor/go.uber.org/zap/time.go deleted file mode 100644 index c5a1f16..0000000 --- a/vendor/go.uber.org/zap/time.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import "time" - -func timeToMillis(t time.Time) int64 { - return t.UnixNano() / int64(time.Millisecond) -} diff --git a/vendor/go.uber.org/zap/writer.go b/vendor/go.uber.org/zap/writer.go deleted file mode 100644 index 06768c6..0000000 --- a/vendor/go.uber.org/zap/writer.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2016-2022 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zap - -import ( - "fmt" - "io" - - "go.uber.org/zap/zapcore" - - "go.uber.org/multierr" -) - -// Open is a high-level wrapper that takes a variadic number of URLs, opens or -// creates each of the specified resources, and combines them into a locked -// WriteSyncer. It also returns any error encountered and a function to close -// any opened files. -// -// Passing no URLs returns a no-op WriteSyncer. Zap handles URLs without a -// scheme and URLs with the "file" scheme. Third-party code may register -// factories for other schemes using RegisterSink. -// -// URLs with the "file" scheme must use absolute paths on the local -// filesystem. No user, password, port, fragments, or query parameters are -// allowed, and the hostname must be empty or "localhost". -// -// Since it's common to write logs to the local filesystem, URLs without a -// scheme (e.g., "/var/log/foo.log") are treated as local file paths. Without -// a scheme, the special paths "stdout" and "stderr" are interpreted as -// os.Stdout and os.Stderr. When specified without a scheme, relative file -// paths also work. -func Open(paths ...string) (zapcore.WriteSyncer, func(), error) { - writers, closeAll, err := open(paths) - if err != nil { - return nil, nil, err - } - - writer := CombineWriteSyncers(writers...) - return writer, closeAll, nil -} - -func open(paths []string) ([]zapcore.WriteSyncer, func(), error) { - writers := make([]zapcore.WriteSyncer, 0, len(paths)) - closers := make([]io.Closer, 0, len(paths)) - closeAll := func() { - for _, c := range closers { - _ = c.Close() - } - } - - var openErr error - for _, path := range paths { - sink, err := _sinkRegistry.newSink(path) - if err != nil { - openErr = multierr.Append(openErr, fmt.Errorf("open sink %q: %w", path, err)) - continue - } - writers = append(writers, sink) - closers = append(closers, sink) - } - if openErr != nil { - closeAll() - return nil, nil, openErr - } - - return writers, closeAll, nil -} - -// CombineWriteSyncers is a utility that combines multiple WriteSyncers into a -// single, locked WriteSyncer. If no inputs are supplied, it returns a no-op -// WriteSyncer. -// -// It's provided purely as a convenience; the result is no different from -// using zapcore.NewMultiWriteSyncer and zapcore.Lock individually. -func CombineWriteSyncers(writers ...zapcore.WriteSyncer) zapcore.WriteSyncer { - if len(writers) == 0 { - return zapcore.AddSync(io.Discard) - } - return zapcore.Lock(zapcore.NewMultiWriteSyncer(writers...)) -} diff --git a/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go b/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go deleted file mode 100644 index 4b426a5..0000000 --- a/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go +++ /dev/null @@ -1,220 +0,0 @@ -// Copyright (c) 2021 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "bufio" - "sync" - "time" - - "go.uber.org/multierr" -) - -const ( - // _defaultBufferSize specifies the default size used by Buffer. - _defaultBufferSize = 256 * 1024 // 256 kB - - // _defaultFlushInterval specifies the default flush interval for - // Buffer. - _defaultFlushInterval = 30 * time.Second -) - -// A BufferedWriteSyncer is a WriteSyncer that buffers writes in-memory before -// flushing them to a wrapped WriteSyncer after reaching some limit, or at some -// fixed interval--whichever comes first. -// -// BufferedWriteSyncer is safe for concurrent use. You don't need to use -// zapcore.Lock for WriteSyncers with BufferedWriteSyncer. -// -// To set up a BufferedWriteSyncer, construct a WriteSyncer for your log -// destination (*os.File is a valid WriteSyncer), wrap it with -// BufferedWriteSyncer, and defer a Stop() call for when you no longer need the -// object. -// -// func main() { -// ws := ... // your log destination -// bws := &zapcore.BufferedWriteSyncer{WS: ws} -// defer bws.Stop() -// -// // ... -// core := zapcore.NewCore(enc, bws, lvl) -// logger := zap.New(core) -// -// // ... -// } -// -// By default, a BufferedWriteSyncer will buffer up to 256 kilobytes of logs, -// waiting at most 30 seconds between flushes. -// You can customize these parameters by setting the Size or FlushInterval -// fields. -// For example, the following buffers up to 512 kB of logs before flushing them -// to Stderr, with a maximum of one minute between each flush. -// -// ws := &BufferedWriteSyncer{ -// WS: os.Stderr, -// Size: 512 * 1024, // 512 kB -// FlushInterval: time.Minute, -// } -// defer ws.Stop() -type BufferedWriteSyncer struct { - // WS is the WriteSyncer around which BufferedWriteSyncer will buffer - // writes. - // - // This field is required. - WS WriteSyncer - - // Size specifies the maximum amount of data the writer will buffered - // before flushing. - // - // Defaults to 256 kB if unspecified. - Size int - - // FlushInterval specifies how often the writer should flush data if - // there have been no writes. - // - // Defaults to 30 seconds if unspecified. - FlushInterval time.Duration - - // Clock, if specified, provides control of the source of time for the - // writer. - // - // Defaults to the system clock. - Clock Clock - - // unexported fields for state - mu sync.Mutex - initialized bool // whether initialize() has run - stopped bool // whether Stop() has run - writer *bufio.Writer - ticker *time.Ticker - stop chan struct{} // closed when flushLoop should stop - done chan struct{} // closed when flushLoop has stopped -} - -func (s *BufferedWriteSyncer) initialize() { - size := s.Size - if size == 0 { - size = _defaultBufferSize - } - - flushInterval := s.FlushInterval - if flushInterval == 0 { - flushInterval = _defaultFlushInterval - } - - if s.Clock == nil { - s.Clock = DefaultClock - } - - s.ticker = s.Clock.NewTicker(flushInterval) - s.writer = bufio.NewWriterSize(s.WS, size) - s.stop = make(chan struct{}) - s.done = make(chan struct{}) - s.initialized = true - go s.flushLoop() -} - -// Write writes log data into buffer syncer directly, multiple Write calls will be batched, -// and log data will be flushed to disk when the buffer is full or periodically. -func (s *BufferedWriteSyncer) Write(bs []byte) (int, error) { - s.mu.Lock() - defer s.mu.Unlock() - - if !s.initialized { - s.initialize() - } - - // To avoid partial writes from being flushed, we manually flush the existing buffer if: - // * The current write doesn't fit into the buffer fully, and - // * The buffer is not empty (since bufio will not split large writes when the buffer is empty) - if len(bs) > s.writer.Available() && s.writer.Buffered() > 0 { - if err := s.writer.Flush(); err != nil { - return 0, err - } - } - - return s.writer.Write(bs) -} - -// Sync flushes buffered log data into disk directly. -func (s *BufferedWriteSyncer) Sync() error { - s.mu.Lock() - defer s.mu.Unlock() - - var err error - if s.initialized { - err = s.writer.Flush() - } - - return multierr.Append(err, s.WS.Sync()) -} - -// flushLoop flushes the buffer at the configured interval until Stop is -// called. -func (s *BufferedWriteSyncer) flushLoop() { - defer close(s.done) - - for { - select { - case <-s.ticker.C: - // we just simply ignore error here - // because the underlying bufio writer stores any errors - // and we return any error from Sync() as part of the close - _ = s.Sync() - case <-s.stop: - return - } - } -} - -// Stop closes the buffer, cleans up background goroutines, and flushes -// remaining unwritten data. -func (s *BufferedWriteSyncer) Stop() (err error) { - // Critical section. - stopped := func() bool { - s.mu.Lock() - defer s.mu.Unlock() - - if !s.initialized { - return false - } - - if s.stopped { - return false - } - s.stopped = true - - s.ticker.Stop() - close(s.stop) // tell flushLoop to stop - return true - }() - - // Not initialized, or already stopped, no need for any cleanup. - if !stopped { - return - } - - // Wait for flushLoop to end outside of the lock, as it may need the lock to complete. - // See https://github.com/uber-go/zap/issues/1428 for details. - <-s.done - - return s.Sync() -} diff --git a/vendor/go.uber.org/zap/zapcore/clock.go b/vendor/go.uber.org/zap/zapcore/clock.go deleted file mode 100644 index 422fd82..0000000 --- a/vendor/go.uber.org/zap/zapcore/clock.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2021 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import "time" - -// DefaultClock is the default clock used by Zap in operations that require -// time. This clock uses the system clock for all operations. -var DefaultClock = systemClock{} - -// Clock is a source of time for logged entries. -type Clock interface { - // Now returns the current local time. - Now() time.Time - - // NewTicker returns *time.Ticker that holds a channel - // that delivers "ticks" of a clock. - NewTicker(time.Duration) *time.Ticker -} - -// systemClock implements default Clock that uses system time. -type systemClock struct{} - -func (systemClock) Now() time.Time { - return time.Now() -} - -func (systemClock) NewTicker(duration time.Duration) *time.Ticker { - return time.NewTicker(duration) -} diff --git a/vendor/go.uber.org/zap/zapcore/console_encoder.go b/vendor/go.uber.org/zap/zapcore/console_encoder.go deleted file mode 100644 index 98eea51..0000000 --- a/vendor/go.uber.org/zap/zapcore/console_encoder.go +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "fmt" - - "go.uber.org/zap/buffer" - "go.uber.org/zap/internal/bufferpool" - "go.uber.org/zap/internal/pool" -) - -var _sliceEncoderPool = pool.New(func() *sliceArrayEncoder { - return &sliceArrayEncoder{ - elems: make([]interface{}, 0, 2), - } -}) - -func getSliceEncoder() *sliceArrayEncoder { - return _sliceEncoderPool.Get() -} - -func putSliceEncoder(e *sliceArrayEncoder) { - e.elems = e.elems[:0] - _sliceEncoderPool.Put(e) -} - -type consoleEncoder struct { - *jsonEncoder -} - -// NewConsoleEncoder creates an encoder whose output is designed for human - -// rather than machine - consumption. It serializes the core log entry data -// (message, level, timestamp, etc.) in a plain-text format and leaves the -// structured context as JSON. -// -// Note that although the console encoder doesn't use the keys specified in the -// encoder configuration, it will omit any element whose key is set to the empty -// string. -func NewConsoleEncoder(cfg EncoderConfig) Encoder { - if cfg.ConsoleSeparator == "" { - // Use a default delimiter of '\t' for backwards compatibility - cfg.ConsoleSeparator = "\t" - } - return consoleEncoder{newJSONEncoder(cfg, true)} -} - -func (c consoleEncoder) Clone() Encoder { - return consoleEncoder{c.jsonEncoder.Clone().(*jsonEncoder)} -} - -func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, error) { - line := bufferpool.Get() - - // We don't want the entry's metadata to be quoted and escaped (if it's - // encoded as strings), which means that we can't use the JSON encoder. The - // simplest option is to use the memory encoder and fmt.Fprint. - // - // If this ever becomes a performance bottleneck, we can implement - // ArrayEncoder for our plain-text format. - arr := getSliceEncoder() - if c.TimeKey != "" && c.EncodeTime != nil && !ent.Time.IsZero() { - c.EncodeTime(ent.Time, arr) - } - if c.LevelKey != "" && c.EncodeLevel != nil { - c.EncodeLevel(ent.Level, arr) - } - if ent.LoggerName != "" && c.NameKey != "" { - nameEncoder := c.EncodeName - - if nameEncoder == nil { - // Fall back to FullNameEncoder for backward compatibility. - nameEncoder = FullNameEncoder - } - - nameEncoder(ent.LoggerName, arr) - } - if ent.Caller.Defined { - if c.CallerKey != "" && c.EncodeCaller != nil { - c.EncodeCaller(ent.Caller, arr) - } - if c.FunctionKey != "" { - arr.AppendString(ent.Caller.Function) - } - } - for i := range arr.elems { - if i > 0 { - line.AppendString(c.ConsoleSeparator) - } - _, _ = fmt.Fprint(line, arr.elems[i]) - } - putSliceEncoder(arr) - - // Add the message itself. - if c.MessageKey != "" { - c.addSeparatorIfNecessary(line) - line.AppendString(ent.Message) - } - - // Add any structured context. - c.writeContext(line, fields) - - // If there's no stacktrace key, honor that; this allows users to force - // single-line output. - if ent.Stack != "" && c.StacktraceKey != "" { - line.AppendByte('\n') - line.AppendString(ent.Stack) - } - - line.AppendString(c.LineEnding) - return line, nil -} - -func (c consoleEncoder) writeContext(line *buffer.Buffer, extra []Field) { - context := c.jsonEncoder.Clone().(*jsonEncoder) - defer func() { - // putJSONEncoder assumes the buffer is still used, but we write out the buffer so - // we can free it. - context.buf.Free() - putJSONEncoder(context) - }() - - addFields(context, extra) - context.closeOpenNamespaces() - if context.buf.Len() == 0 { - return - } - - c.addSeparatorIfNecessary(line) - line.AppendByte('{') - line.Write(context.buf.Bytes()) - line.AppendByte('}') -} - -func (c consoleEncoder) addSeparatorIfNecessary(line *buffer.Buffer) { - if line.Len() > 0 { - line.AppendString(c.ConsoleSeparator) - } -} diff --git a/vendor/go.uber.org/zap/zapcore/core.go b/vendor/go.uber.org/zap/zapcore/core.go deleted file mode 100644 index 776e93f..0000000 --- a/vendor/go.uber.org/zap/zapcore/core.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -// Core is a minimal, fast logger interface. It's designed for library authors -// to wrap in a more user-friendly API. -type Core interface { - LevelEnabler - - // With adds structured context to the Core. - With([]Field) Core - // Check determines whether the supplied Entry should be logged (using the - // embedded LevelEnabler and possibly some extra logic). If the entry - // should be logged, the Core adds itself to the CheckedEntry and returns - // the result. - // - // Callers must use Check before calling Write. - Check(Entry, *CheckedEntry) *CheckedEntry - // Write serializes the Entry and any Fields supplied at the log site and - // writes them to their destination. - // - // If called, Write should always log the Entry and Fields; it should not - // replicate the logic of Check. - Write(Entry, []Field) error - // Sync flushes buffered logs (if any). - Sync() error -} - -type nopCore struct{} - -// NewNopCore returns a no-op Core. -func NewNopCore() Core { return nopCore{} } -func (nopCore) Enabled(Level) bool { return false } -func (n nopCore) With([]Field) Core { return n } -func (nopCore) Check(_ Entry, ce *CheckedEntry) *CheckedEntry { return ce } -func (nopCore) Write(Entry, []Field) error { return nil } -func (nopCore) Sync() error { return nil } - -// NewCore creates a Core that writes logs to a WriteSyncer. -func NewCore(enc Encoder, ws WriteSyncer, enab LevelEnabler) Core { - return &ioCore{ - LevelEnabler: enab, - enc: enc, - out: ws, - } -} - -type ioCore struct { - LevelEnabler - enc Encoder - out WriteSyncer -} - -var ( - _ Core = (*ioCore)(nil) - _ leveledEnabler = (*ioCore)(nil) -) - -func (c *ioCore) Level() Level { - return LevelOf(c.LevelEnabler) -} - -func (c *ioCore) With(fields []Field) Core { - clone := c.clone() - addFields(clone.enc, fields) - return clone -} - -func (c *ioCore) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { - if c.Enabled(ent.Level) { - return ce.AddCore(ent, c) - } - return ce -} - -func (c *ioCore) Write(ent Entry, fields []Field) error { - buf, err := c.enc.EncodeEntry(ent, fields) - if err != nil { - return err - } - _, err = c.out.Write(buf.Bytes()) - buf.Free() - if err != nil { - return err - } - if ent.Level > ErrorLevel { - // Since we may be crashing the program, sync the output. - // Ignore Sync errors, pending a clean solution to issue #370. - _ = c.Sync() - } - return nil -} - -func (c *ioCore) Sync() error { - return c.out.Sync() -} - -func (c *ioCore) clone() *ioCore { - return &ioCore{ - LevelEnabler: c.LevelEnabler, - enc: c.enc.Clone(), - out: c.out, - } -} diff --git a/vendor/go.uber.org/zap/zapcore/doc.go b/vendor/go.uber.org/zap/zapcore/doc.go deleted file mode 100644 index 31000e9..0000000 --- a/vendor/go.uber.org/zap/zapcore/doc.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// Package zapcore defines and implements the low-level interfaces upon which -// zap is built. By providing alternate implementations of these interfaces, -// external packages can extend zap's capabilities. -package zapcore // import "go.uber.org/zap/zapcore" diff --git a/vendor/go.uber.org/zap/zapcore/encoder.go b/vendor/go.uber.org/zap/zapcore/encoder.go deleted file mode 100644 index 0446254..0000000 --- a/vendor/go.uber.org/zap/zapcore/encoder.go +++ /dev/null @@ -1,466 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "encoding/json" - "io" - "time" - - "go.uber.org/zap/buffer" -) - -// DefaultLineEnding defines the default line ending when writing logs. -// Alternate line endings specified in EncoderConfig can override this -// behavior. -const DefaultLineEnding = "\n" - -// OmitKey defines the key to use when callers want to remove a key from log output. -const OmitKey = "" - -// A LevelEncoder serializes a Level to a primitive type. -// -// This function must make exactly one call -// to a PrimitiveArrayEncoder's Append* method. -type LevelEncoder func(Level, PrimitiveArrayEncoder) - -// LowercaseLevelEncoder serializes a Level to a lowercase string. For example, -// InfoLevel is serialized to "info". -func LowercaseLevelEncoder(l Level, enc PrimitiveArrayEncoder) { - enc.AppendString(l.String()) -} - -// LowercaseColorLevelEncoder serializes a Level to a lowercase string and adds coloring. -// For example, InfoLevel is serialized to "info" and colored blue. -func LowercaseColorLevelEncoder(l Level, enc PrimitiveArrayEncoder) { - s, ok := _levelToLowercaseColorString[l] - if !ok { - s = _unknownLevelColor.Add(l.String()) - } - enc.AppendString(s) -} - -// CapitalLevelEncoder serializes a Level to an all-caps string. For example, -// InfoLevel is serialized to "INFO". -func CapitalLevelEncoder(l Level, enc PrimitiveArrayEncoder) { - enc.AppendString(l.CapitalString()) -} - -// CapitalColorLevelEncoder serializes a Level to an all-caps string and adds color. -// For example, InfoLevel is serialized to "INFO" and colored blue. -func CapitalColorLevelEncoder(l Level, enc PrimitiveArrayEncoder) { - s, ok := _levelToCapitalColorString[l] - if !ok { - s = _unknownLevelColor.Add(l.CapitalString()) - } - enc.AppendString(s) -} - -// UnmarshalText unmarshals text to a LevelEncoder. "capital" is unmarshaled to -// CapitalLevelEncoder, "coloredCapital" is unmarshaled to CapitalColorLevelEncoder, -// "colored" is unmarshaled to LowercaseColorLevelEncoder, and anything else -// is unmarshaled to LowercaseLevelEncoder. -func (e *LevelEncoder) UnmarshalText(text []byte) error { - switch string(text) { - case "capital": - *e = CapitalLevelEncoder - case "capitalColor": - *e = CapitalColorLevelEncoder - case "color": - *e = LowercaseColorLevelEncoder - default: - *e = LowercaseLevelEncoder - } - return nil -} - -// A TimeEncoder serializes a time.Time to a primitive type. -// -// This function must make exactly one call -// to a PrimitiveArrayEncoder's Append* method. -type TimeEncoder func(time.Time, PrimitiveArrayEncoder) - -// EpochTimeEncoder serializes a time.Time to a floating-point number of seconds -// since the Unix epoch. -func EpochTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { - nanos := t.UnixNano() - sec := float64(nanos) / float64(time.Second) - enc.AppendFloat64(sec) -} - -// EpochMillisTimeEncoder serializes a time.Time to a floating-point number of -// milliseconds since the Unix epoch. -func EpochMillisTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { - nanos := t.UnixNano() - millis := float64(nanos) / float64(time.Millisecond) - enc.AppendFloat64(millis) -} - -// EpochNanosTimeEncoder serializes a time.Time to an integer number of -// nanoseconds since the Unix epoch. -func EpochNanosTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { - enc.AppendInt64(t.UnixNano()) -} - -func encodeTimeLayout(t time.Time, layout string, enc PrimitiveArrayEncoder) { - type appendTimeEncoder interface { - AppendTimeLayout(time.Time, string) - } - - if enc, ok := enc.(appendTimeEncoder); ok { - enc.AppendTimeLayout(t, layout) - return - } - - enc.AppendString(t.Format(layout)) -} - -// ISO8601TimeEncoder serializes a time.Time to an ISO8601-formatted string -// with millisecond precision. -// -// If enc supports AppendTimeLayout(t time.Time,layout string), it's used -// instead of appending a pre-formatted string value. -func ISO8601TimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { - encodeTimeLayout(t, "2006-01-02T15:04:05.000Z0700", enc) -} - -// RFC3339TimeEncoder serializes a time.Time to an RFC3339-formatted string. -// -// If enc supports AppendTimeLayout(t time.Time,layout string), it's used -// instead of appending a pre-formatted string value. -func RFC3339TimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { - encodeTimeLayout(t, time.RFC3339, enc) -} - -// RFC3339NanoTimeEncoder serializes a time.Time to an RFC3339-formatted string -// with nanosecond precision. -// -// If enc supports AppendTimeLayout(t time.Time,layout string), it's used -// instead of appending a pre-formatted string value. -func RFC3339NanoTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { - encodeTimeLayout(t, time.RFC3339Nano, enc) -} - -// TimeEncoderOfLayout returns TimeEncoder which serializes a time.Time using -// given layout. -func TimeEncoderOfLayout(layout string) TimeEncoder { - return func(t time.Time, enc PrimitiveArrayEncoder) { - encodeTimeLayout(t, layout, enc) - } -} - -// UnmarshalText unmarshals text to a TimeEncoder. -// "rfc3339nano" and "RFC3339Nano" are unmarshaled to RFC3339NanoTimeEncoder. -// "rfc3339" and "RFC3339" are unmarshaled to RFC3339TimeEncoder. -// "iso8601" and "ISO8601" are unmarshaled to ISO8601TimeEncoder. -// "millis" is unmarshaled to EpochMillisTimeEncoder. -// "nanos" is unmarshaled to EpochNanosEncoder. -// Anything else is unmarshaled to EpochTimeEncoder. -func (e *TimeEncoder) UnmarshalText(text []byte) error { - switch string(text) { - case "rfc3339nano", "RFC3339Nano": - *e = RFC3339NanoTimeEncoder - case "rfc3339", "RFC3339": - *e = RFC3339TimeEncoder - case "iso8601", "ISO8601": - *e = ISO8601TimeEncoder - case "millis": - *e = EpochMillisTimeEncoder - case "nanos": - *e = EpochNanosTimeEncoder - default: - *e = EpochTimeEncoder - } - return nil -} - -// UnmarshalYAML unmarshals YAML to a TimeEncoder. -// If value is an object with a "layout" field, it will be unmarshaled to TimeEncoder with given layout. -// -// timeEncoder: -// layout: 06/01/02 03:04pm -// -// If value is string, it uses UnmarshalText. -// -// timeEncoder: iso8601 -func (e *TimeEncoder) UnmarshalYAML(unmarshal func(interface{}) error) error { - var o struct { - Layout string `json:"layout" yaml:"layout"` - } - if err := unmarshal(&o); err == nil { - *e = TimeEncoderOfLayout(o.Layout) - return nil - } - - var s string - if err := unmarshal(&s); err != nil { - return err - } - return e.UnmarshalText([]byte(s)) -} - -// UnmarshalJSON unmarshals JSON to a TimeEncoder as same way UnmarshalYAML does. -func (e *TimeEncoder) UnmarshalJSON(data []byte) error { - return e.UnmarshalYAML(func(v interface{}) error { - return json.Unmarshal(data, v) - }) -} - -// A DurationEncoder serializes a time.Duration to a primitive type. -// -// This function must make exactly one call -// to a PrimitiveArrayEncoder's Append* method. -type DurationEncoder func(time.Duration, PrimitiveArrayEncoder) - -// SecondsDurationEncoder serializes a time.Duration to a floating-point number of seconds elapsed. -func SecondsDurationEncoder(d time.Duration, enc PrimitiveArrayEncoder) { - enc.AppendFloat64(float64(d) / float64(time.Second)) -} - -// NanosDurationEncoder serializes a time.Duration to an integer number of -// nanoseconds elapsed. -func NanosDurationEncoder(d time.Duration, enc PrimitiveArrayEncoder) { - enc.AppendInt64(int64(d)) -} - -// MillisDurationEncoder serializes a time.Duration to an integer number of -// milliseconds elapsed. -func MillisDurationEncoder(d time.Duration, enc PrimitiveArrayEncoder) { - enc.AppendInt64(d.Nanoseconds() / 1e6) -} - -// StringDurationEncoder serializes a time.Duration using its built-in String -// method. -func StringDurationEncoder(d time.Duration, enc PrimitiveArrayEncoder) { - enc.AppendString(d.String()) -} - -// UnmarshalText unmarshals text to a DurationEncoder. "string" is unmarshaled -// to StringDurationEncoder, and anything else is unmarshaled to -// NanosDurationEncoder. -func (e *DurationEncoder) UnmarshalText(text []byte) error { - switch string(text) { - case "string": - *e = StringDurationEncoder - case "nanos": - *e = NanosDurationEncoder - case "ms": - *e = MillisDurationEncoder - default: - *e = SecondsDurationEncoder - } - return nil -} - -// A CallerEncoder serializes an EntryCaller to a primitive type. -// -// This function must make exactly one call -// to a PrimitiveArrayEncoder's Append* method. -type CallerEncoder func(EntryCaller, PrimitiveArrayEncoder) - -// FullCallerEncoder serializes a caller in /full/path/to/package/file:line -// format. -func FullCallerEncoder(caller EntryCaller, enc PrimitiveArrayEncoder) { - // TODO: consider using a byte-oriented API to save an allocation. - enc.AppendString(caller.String()) -} - -// ShortCallerEncoder serializes a caller in package/file:line format, trimming -// all but the final directory from the full path. -func ShortCallerEncoder(caller EntryCaller, enc PrimitiveArrayEncoder) { - // TODO: consider using a byte-oriented API to save an allocation. - enc.AppendString(caller.TrimmedPath()) -} - -// UnmarshalText unmarshals text to a CallerEncoder. "full" is unmarshaled to -// FullCallerEncoder and anything else is unmarshaled to ShortCallerEncoder. -func (e *CallerEncoder) UnmarshalText(text []byte) error { - switch string(text) { - case "full": - *e = FullCallerEncoder - default: - *e = ShortCallerEncoder - } - return nil -} - -// A NameEncoder serializes a period-separated logger name to a primitive -// type. -// -// This function must make exactly one call -// to a PrimitiveArrayEncoder's Append* method. -type NameEncoder func(string, PrimitiveArrayEncoder) - -// FullNameEncoder serializes the logger name as-is. -func FullNameEncoder(loggerName string, enc PrimitiveArrayEncoder) { - enc.AppendString(loggerName) -} - -// UnmarshalText unmarshals text to a NameEncoder. Currently, everything is -// unmarshaled to FullNameEncoder. -func (e *NameEncoder) UnmarshalText(text []byte) error { - switch string(text) { - case "full": - *e = FullNameEncoder - default: - *e = FullNameEncoder - } - return nil -} - -// An EncoderConfig allows users to configure the concrete encoders supplied by -// zapcore. -type EncoderConfig struct { - // Set the keys used for each log entry. If any key is empty, that portion - // of the entry is omitted. - MessageKey string `json:"messageKey" yaml:"messageKey"` - LevelKey string `json:"levelKey" yaml:"levelKey"` - TimeKey string `json:"timeKey" yaml:"timeKey"` - NameKey string `json:"nameKey" yaml:"nameKey"` - CallerKey string `json:"callerKey" yaml:"callerKey"` - FunctionKey string `json:"functionKey" yaml:"functionKey"` - StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"` - SkipLineEnding bool `json:"skipLineEnding" yaml:"skipLineEnding"` - LineEnding string `json:"lineEnding" yaml:"lineEnding"` - // Configure the primitive representations of common complex types. For - // example, some users may want all time.Times serialized as floating-point - // seconds since epoch, while others may prefer ISO8601 strings. - EncodeLevel LevelEncoder `json:"levelEncoder" yaml:"levelEncoder"` - EncodeTime TimeEncoder `json:"timeEncoder" yaml:"timeEncoder"` - EncodeDuration DurationEncoder `json:"durationEncoder" yaml:"durationEncoder"` - EncodeCaller CallerEncoder `json:"callerEncoder" yaml:"callerEncoder"` - // Unlike the other primitive type encoders, EncodeName is optional. The - // zero value falls back to FullNameEncoder. - EncodeName NameEncoder `json:"nameEncoder" yaml:"nameEncoder"` - // Configure the encoder for interface{} type objects. - // If not provided, objects are encoded using json.Encoder - NewReflectedEncoder func(io.Writer) ReflectedEncoder `json:"-" yaml:"-"` - // Configures the field separator used by the console encoder. Defaults - // to tab. - ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"` -} - -// ObjectEncoder is a strongly-typed, encoding-agnostic interface for adding a -// map- or struct-like object to the logging context. Like maps, ObjectEncoders -// aren't safe for concurrent use (though typical use shouldn't require locks). -type ObjectEncoder interface { - // Logging-specific marshalers. - AddArray(key string, marshaler ArrayMarshaler) error - AddObject(key string, marshaler ObjectMarshaler) error - - // Built-in types. - AddBinary(key string, value []byte) // for arbitrary bytes - AddByteString(key string, value []byte) // for UTF-8 encoded bytes - AddBool(key string, value bool) - AddComplex128(key string, value complex128) - AddComplex64(key string, value complex64) - AddDuration(key string, value time.Duration) - AddFloat64(key string, value float64) - AddFloat32(key string, value float32) - AddInt(key string, value int) - AddInt64(key string, value int64) - AddInt32(key string, value int32) - AddInt16(key string, value int16) - AddInt8(key string, value int8) - AddString(key, value string) - AddTime(key string, value time.Time) - AddUint(key string, value uint) - AddUint64(key string, value uint64) - AddUint32(key string, value uint32) - AddUint16(key string, value uint16) - AddUint8(key string, value uint8) - AddUintptr(key string, value uintptr) - - // AddReflected uses reflection to serialize arbitrary objects, so it can be - // slow and allocation-heavy. - AddReflected(key string, value interface{}) error - // OpenNamespace opens an isolated namespace where all subsequent fields will - // be added. Applications can use namespaces to prevent key collisions when - // injecting loggers into sub-components or third-party libraries. - OpenNamespace(key string) -} - -// ArrayEncoder is a strongly-typed, encoding-agnostic interface for adding -// array-like objects to the logging context. Of note, it supports mixed-type -// arrays even though they aren't typical in Go. Like slices, ArrayEncoders -// aren't safe for concurrent use (though typical use shouldn't require locks). -type ArrayEncoder interface { - // Built-in types. - PrimitiveArrayEncoder - - // Time-related types. - AppendDuration(time.Duration) - AppendTime(time.Time) - - // Logging-specific marshalers. - AppendArray(ArrayMarshaler) error - AppendObject(ObjectMarshaler) error - - // AppendReflected uses reflection to serialize arbitrary objects, so it's - // slow and allocation-heavy. - AppendReflected(value interface{}) error -} - -// PrimitiveArrayEncoder is the subset of the ArrayEncoder interface that deals -// only in Go's built-in types. It's included only so that Duration- and -// TimeEncoders cannot trigger infinite recursion. -type PrimitiveArrayEncoder interface { - // Built-in types. - AppendBool(bool) - AppendByteString([]byte) // for UTF-8 encoded bytes - AppendComplex128(complex128) - AppendComplex64(complex64) - AppendFloat64(float64) - AppendFloat32(float32) - AppendInt(int) - AppendInt64(int64) - AppendInt32(int32) - AppendInt16(int16) - AppendInt8(int8) - AppendString(string) - AppendUint(uint) - AppendUint64(uint64) - AppendUint32(uint32) - AppendUint16(uint16) - AppendUint8(uint8) - AppendUintptr(uintptr) -} - -// Encoder is a format-agnostic interface for all log entry marshalers. Since -// log encoders don't need to support the same wide range of use cases as -// general-purpose marshalers, it's possible to make them faster and -// lower-allocation. -// -// Implementations of the ObjectEncoder interface's methods can, of course, -// freely modify the receiver. However, the Clone and EncodeEntry methods will -// be called concurrently and shouldn't modify the receiver. -type Encoder interface { - ObjectEncoder - - // Clone copies the encoder, ensuring that adding fields to the copy doesn't - // affect the original. - Clone() Encoder - - // EncodeEntry encodes an entry and fields, along with any accumulated - // context, into a byte buffer and returns it. Any fields that are empty, - // including fields on the `Entry` type, should be omitted. - EncodeEntry(Entry, []Field) (*buffer.Buffer, error) -} diff --git a/vendor/go.uber.org/zap/zapcore/entry.go b/vendor/go.uber.org/zap/zapcore/entry.go deleted file mode 100644 index 841752f..0000000 --- a/vendor/go.uber.org/zap/zapcore/entry.go +++ /dev/null @@ -1,308 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "fmt" - "runtime" - "strings" - "time" - - "go.uber.org/multierr" - "go.uber.org/zap/internal/bufferpool" - "go.uber.org/zap/internal/exit" - "go.uber.org/zap/internal/pool" -) - -var _cePool = pool.New(func() *CheckedEntry { - // Pre-allocate some space for cores. - return &CheckedEntry{ - cores: make([]Core, 4), - } -}) - -func getCheckedEntry() *CheckedEntry { - ce := _cePool.Get() - ce.reset() - return ce -} - -func putCheckedEntry(ce *CheckedEntry) { - if ce == nil { - return - } - _cePool.Put(ce) -} - -// NewEntryCaller makes an EntryCaller from the return signature of -// runtime.Caller. -func NewEntryCaller(pc uintptr, file string, line int, ok bool) EntryCaller { - if !ok { - return EntryCaller{} - } - return EntryCaller{ - PC: pc, - File: file, - Line: line, - Defined: true, - } -} - -// EntryCaller represents the caller of a logging function. -type EntryCaller struct { - Defined bool - PC uintptr - File string - Line int - Function string -} - -// String returns the full path and line number of the caller. -func (ec EntryCaller) String() string { - return ec.FullPath() -} - -// FullPath returns a /full/path/to/package/file:line description of the -// caller. -func (ec EntryCaller) FullPath() string { - if !ec.Defined { - return "undefined" - } - buf := bufferpool.Get() - buf.AppendString(ec.File) - buf.AppendByte(':') - buf.AppendInt(int64(ec.Line)) - caller := buf.String() - buf.Free() - return caller -} - -// TrimmedPath returns a package/file:line description of the caller, -// preserving only the leaf directory name and file name. -func (ec EntryCaller) TrimmedPath() string { - if !ec.Defined { - return "undefined" - } - // nb. To make sure we trim the path correctly on Windows too, we - // counter-intuitively need to use '/' and *not* os.PathSeparator here, - // because the path given originates from Go stdlib, specifically - // runtime.Caller() which (as of Mar/17) returns forward slashes even on - // Windows. - // - // See https://github.com/golang/go/issues/3335 - // and https://github.com/golang/go/issues/18151 - // - // for discussion on the issue on Go side. - // - // Find the last separator. - // - idx := strings.LastIndexByte(ec.File, '/') - if idx == -1 { - return ec.FullPath() - } - // Find the penultimate separator. - idx = strings.LastIndexByte(ec.File[:idx], '/') - if idx == -1 { - return ec.FullPath() - } - buf := bufferpool.Get() - // Keep everything after the penultimate separator. - buf.AppendString(ec.File[idx+1:]) - buf.AppendByte(':') - buf.AppendInt(int64(ec.Line)) - caller := buf.String() - buf.Free() - return caller -} - -// An Entry represents a complete log message. The entry's structured context -// is already serialized, but the log level, time, message, and call site -// information are available for inspection and modification. Any fields left -// empty will be omitted when encoding. -// -// Entries are pooled, so any functions that accept them MUST be careful not to -// retain references to them. -type Entry struct { - Level Level - Time time.Time - LoggerName string - Message string - Caller EntryCaller - Stack string -} - -// CheckWriteHook is a custom action that may be executed after an entry is -// written. -// -// Register one on a CheckedEntry with the After method. -// -// if ce := logger.Check(...); ce != nil { -// ce = ce.After(hook) -// ce.Write(...) -// } -// -// You can configure the hook for Fatal log statements at the logger level with -// the zap.WithFatalHook option. -type CheckWriteHook interface { - // OnWrite is invoked with the CheckedEntry that was written and a list - // of fields added with that entry. - // - // The list of fields DOES NOT include fields that were already added - // to the logger with the With method. - OnWrite(*CheckedEntry, []Field) -} - -// CheckWriteAction indicates what action to take after a log entry is -// processed. Actions are ordered in increasing severity. -type CheckWriteAction uint8 - -const ( - // WriteThenNoop indicates that nothing special needs to be done. It's the - // default behavior. - WriteThenNoop CheckWriteAction = iota - // WriteThenGoexit runs runtime.Goexit after Write. - WriteThenGoexit - // WriteThenPanic causes a panic after Write. - WriteThenPanic - // WriteThenFatal causes an os.Exit(1) after Write. - WriteThenFatal -) - -// OnWrite implements the OnWrite method to keep CheckWriteAction compatible -// with the new CheckWriteHook interface which deprecates CheckWriteAction. -func (a CheckWriteAction) OnWrite(ce *CheckedEntry, _ []Field) { - switch a { - case WriteThenGoexit: - runtime.Goexit() - case WriteThenPanic: - panic(ce.Message) - case WriteThenFatal: - exit.With(1) - } -} - -var _ CheckWriteHook = CheckWriteAction(0) - -// CheckedEntry is an Entry together with a collection of Cores that have -// already agreed to log it. -// -// CheckedEntry references should be created by calling AddCore or After on a -// nil *CheckedEntry. References are returned to a pool after Write, and MUST -// NOT be retained after calling their Write method. -type CheckedEntry struct { - Entry - ErrorOutput WriteSyncer - dirty bool // best-effort detection of pool misuse - after CheckWriteHook - cores []Core -} - -func (ce *CheckedEntry) reset() { - ce.Entry = Entry{} - ce.ErrorOutput = nil - ce.dirty = false - ce.after = nil - for i := range ce.cores { - // don't keep references to cores - ce.cores[i] = nil - } - ce.cores = ce.cores[:0] -} - -// Write writes the entry to the stored Cores, returns any errors, and returns -// the CheckedEntry reference to a pool for immediate re-use. Finally, it -// executes any required CheckWriteAction. -func (ce *CheckedEntry) Write(fields ...Field) { - if ce == nil { - return - } - - if ce.dirty { - if ce.ErrorOutput != nil { - // Make a best effort to detect unsafe re-use of this CheckedEntry. - // If the entry is dirty, log an internal error; because the - // CheckedEntry is being used after it was returned to the pool, - // the message may be an amalgamation from multiple call sites. - _, _ = fmt.Fprintf( - ce.ErrorOutput, - "%v Unsafe CheckedEntry re-use near Entry %+v.\n", - ce.Time, - ce.Entry, - ) - _ = ce.ErrorOutput.Sync() // ignore error - } - return - } - ce.dirty = true - - var err error - for i := range ce.cores { - err = multierr.Append(err, ce.cores[i].Write(ce.Entry, fields)) - } - if err != nil && ce.ErrorOutput != nil { - _, _ = fmt.Fprintf( - ce.ErrorOutput, - "%v write error: %v\n", - ce.Time, - err, - ) - _ = ce.ErrorOutput.Sync() // ignore error - } - - hook := ce.after - if hook != nil { - hook.OnWrite(ce, fields) - } - putCheckedEntry(ce) -} - -// AddCore adds a Core that has agreed to log this CheckedEntry. It's intended to be -// used by Core.Check implementations, and is safe to call on nil CheckedEntry -// references. -func (ce *CheckedEntry) AddCore(ent Entry, core Core) *CheckedEntry { - if ce == nil { - ce = getCheckedEntry() - ce.Entry = ent - } - ce.cores = append(ce.cores, core) - return ce -} - -// Should sets this CheckedEntry's CheckWriteAction, which controls whether a -// Core will panic or fatal after writing this log entry. Like AddCore, it's -// safe to call on nil CheckedEntry references. -// -// Deprecated: Use [CheckedEntry.After] instead. -func (ce *CheckedEntry) Should(ent Entry, should CheckWriteAction) *CheckedEntry { - return ce.After(ent, should) -} - -// After sets this CheckEntry's CheckWriteHook, which will be called after this -// log entry has been written. It's safe to call this on nil CheckedEntry -// references. -func (ce *CheckedEntry) After(ent Entry, hook CheckWriteHook) *CheckedEntry { - if ce == nil { - ce = getCheckedEntry() - ce.Entry = ent - } - ce.after = hook - return ce -} diff --git a/vendor/go.uber.org/zap/zapcore/error.go b/vendor/go.uber.org/zap/zapcore/error.go deleted file mode 100644 index c40df13..0000000 --- a/vendor/go.uber.org/zap/zapcore/error.go +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright (c) 2017 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "fmt" - "reflect" - - "go.uber.org/zap/internal/pool" -) - -// Encodes the given error into fields of an object. A field with the given -// name is added for the error message. -// -// If the error implements fmt.Formatter, a field with the name ${key}Verbose -// is also added with the full verbose error message. -// -// Finally, if the error implements errorGroup (from go.uber.org/multierr) or -// causer (from github.com/pkg/errors), a ${key}Causes field is added with an -// array of objects containing the errors this error was comprised of. -// -// { -// "error": err.Error(), -// "errorVerbose": fmt.Sprintf("%+v", err), -// "errorCauses": [ -// ... -// ], -// } -func encodeError(key string, err error, enc ObjectEncoder) (retErr error) { - // Try to capture panics (from nil references or otherwise) when calling - // the Error() method - defer func() { - if rerr := recover(); rerr != nil { - // If it's a nil pointer, just say "". The likeliest causes are a - // error that fails to guard against nil or a nil pointer for a - // value receiver, and in either case, "" is a nice result. - if v := reflect.ValueOf(err); v.Kind() == reflect.Ptr && v.IsNil() { - enc.AddString(key, "") - return - } - - retErr = fmt.Errorf("PANIC=%v", rerr) - } - }() - - basic := err.Error() - enc.AddString(key, basic) - - switch e := err.(type) { - case errorGroup: - return enc.AddArray(key+"Causes", errArray(e.Errors())) - case fmt.Formatter: - verbose := fmt.Sprintf("%+v", e) - if verbose != basic { - // This is a rich error type, like those produced by - // github.com/pkg/errors. - enc.AddString(key+"Verbose", verbose) - } - } - return nil -} - -type errorGroup interface { - // Provides read-only access to the underlying list of errors, preferably - // without causing any allocs. - Errors() []error -} - -// Note that errArray and errArrayElem are very similar to the version -// implemented in the top-level error.go file. We can't re-use this because -// that would require exporting errArray as part of the zapcore API. - -// Encodes a list of errors using the standard error encoding logic. -type errArray []error - -func (errs errArray) MarshalLogArray(arr ArrayEncoder) error { - for i := range errs { - if errs[i] == nil { - continue - } - - el := newErrArrayElem(errs[i]) - err := arr.AppendObject(el) - el.Free() - if err != nil { - return err - } - } - return nil -} - -var _errArrayElemPool = pool.New(func() *errArrayElem { - return &errArrayElem{} -}) - -// Encodes any error into a {"error": ...} re-using the same errors logic. -// -// May be passed in place of an array to build a single-element array. -type errArrayElem struct{ err error } - -func newErrArrayElem(err error) *errArrayElem { - e := _errArrayElemPool.Get() - e.err = err - return e -} - -func (e *errArrayElem) MarshalLogArray(arr ArrayEncoder) error { - return arr.AppendObject(e) -} - -func (e *errArrayElem) MarshalLogObject(enc ObjectEncoder) error { - return encodeError("error", e.err, enc) -} - -func (e *errArrayElem) Free() { - e.err = nil - _errArrayElemPool.Put(e) -} diff --git a/vendor/go.uber.org/zap/zapcore/field.go b/vendor/go.uber.org/zap/zapcore/field.go deleted file mode 100644 index 308c978..0000000 --- a/vendor/go.uber.org/zap/zapcore/field.go +++ /dev/null @@ -1,233 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "bytes" - "fmt" - "math" - "reflect" - "time" -) - -// A FieldType indicates which member of the Field union struct should be used -// and how it should be serialized. -type FieldType uint8 - -const ( - // UnknownType is the default field type. Attempting to add it to an encoder will panic. - UnknownType FieldType = iota - // ArrayMarshalerType indicates that the field carries an ArrayMarshaler. - ArrayMarshalerType - // ObjectMarshalerType indicates that the field carries an ObjectMarshaler. - ObjectMarshalerType - // BinaryType indicates that the field carries an opaque binary blob. - BinaryType - // BoolType indicates that the field carries a bool. - BoolType - // ByteStringType indicates that the field carries UTF-8 encoded bytes. - ByteStringType - // Complex128Type indicates that the field carries a complex128. - Complex128Type - // Complex64Type indicates that the field carries a complex64. - Complex64Type - // DurationType indicates that the field carries a time.Duration. - DurationType - // Float64Type indicates that the field carries a float64. - Float64Type - // Float32Type indicates that the field carries a float32. - Float32Type - // Int64Type indicates that the field carries an int64. - Int64Type - // Int32Type indicates that the field carries an int32. - Int32Type - // Int16Type indicates that the field carries an int16. - Int16Type - // Int8Type indicates that the field carries an int8. - Int8Type - // StringType indicates that the field carries a string. - StringType - // TimeType indicates that the field carries a time.Time that is - // representable by a UnixNano() stored as an int64. - TimeType - // TimeFullType indicates that the field carries a time.Time stored as-is. - TimeFullType - // Uint64Type indicates that the field carries a uint64. - Uint64Type - // Uint32Type indicates that the field carries a uint32. - Uint32Type - // Uint16Type indicates that the field carries a uint16. - Uint16Type - // Uint8Type indicates that the field carries a uint8. - Uint8Type - // UintptrType indicates that the field carries a uintptr. - UintptrType - // ReflectType indicates that the field carries an interface{}, which should - // be serialized using reflection. - ReflectType - // NamespaceType signals the beginning of an isolated namespace. All - // subsequent fields should be added to the new namespace. - NamespaceType - // StringerType indicates that the field carries a fmt.Stringer. - StringerType - // ErrorType indicates that the field carries an error. - ErrorType - // SkipType indicates that the field is a no-op. - SkipType - - // InlineMarshalerType indicates that the field carries an ObjectMarshaler - // that should be inlined. - InlineMarshalerType -) - -// A Field is a marshaling operation used to add a key-value pair to a logger's -// context. Most fields are lazily marshaled, so it's inexpensive to add fields -// to disabled debug-level log statements. -type Field struct { - Key string - Type FieldType - Integer int64 - String string - Interface interface{} -} - -// AddTo exports a field through the ObjectEncoder interface. It's primarily -// useful to library authors, and shouldn't be necessary in most applications. -func (f Field) AddTo(enc ObjectEncoder) { - var err error - - switch f.Type { - case ArrayMarshalerType: - err = enc.AddArray(f.Key, f.Interface.(ArrayMarshaler)) - case ObjectMarshalerType: - err = enc.AddObject(f.Key, f.Interface.(ObjectMarshaler)) - case InlineMarshalerType: - err = f.Interface.(ObjectMarshaler).MarshalLogObject(enc) - case BinaryType: - enc.AddBinary(f.Key, f.Interface.([]byte)) - case BoolType: - enc.AddBool(f.Key, f.Integer == 1) - case ByteStringType: - enc.AddByteString(f.Key, f.Interface.([]byte)) - case Complex128Type: - enc.AddComplex128(f.Key, f.Interface.(complex128)) - case Complex64Type: - enc.AddComplex64(f.Key, f.Interface.(complex64)) - case DurationType: - enc.AddDuration(f.Key, time.Duration(f.Integer)) - case Float64Type: - enc.AddFloat64(f.Key, math.Float64frombits(uint64(f.Integer))) - case Float32Type: - enc.AddFloat32(f.Key, math.Float32frombits(uint32(f.Integer))) - case Int64Type: - enc.AddInt64(f.Key, f.Integer) - case Int32Type: - enc.AddInt32(f.Key, int32(f.Integer)) - case Int16Type: - enc.AddInt16(f.Key, int16(f.Integer)) - case Int8Type: - enc.AddInt8(f.Key, int8(f.Integer)) - case StringType: - enc.AddString(f.Key, f.String) - case TimeType: - if f.Interface != nil { - enc.AddTime(f.Key, time.Unix(0, f.Integer).In(f.Interface.(*time.Location))) - } else { - // Fall back to UTC if location is nil. - enc.AddTime(f.Key, time.Unix(0, f.Integer)) - } - case TimeFullType: - enc.AddTime(f.Key, f.Interface.(time.Time)) - case Uint64Type: - enc.AddUint64(f.Key, uint64(f.Integer)) - case Uint32Type: - enc.AddUint32(f.Key, uint32(f.Integer)) - case Uint16Type: - enc.AddUint16(f.Key, uint16(f.Integer)) - case Uint8Type: - enc.AddUint8(f.Key, uint8(f.Integer)) - case UintptrType: - enc.AddUintptr(f.Key, uintptr(f.Integer)) - case ReflectType: - err = enc.AddReflected(f.Key, f.Interface) - case NamespaceType: - enc.OpenNamespace(f.Key) - case StringerType: - err = encodeStringer(f.Key, f.Interface, enc) - case ErrorType: - err = encodeError(f.Key, f.Interface.(error), enc) - case SkipType: - break - default: - panic(fmt.Sprintf("unknown field type: %v", f)) - } - - if err != nil { - enc.AddString(fmt.Sprintf("%sError", f.Key), err.Error()) - } -} - -// Equals returns whether two fields are equal. For non-primitive types such as -// errors, marshalers, or reflect types, it uses reflect.DeepEqual. -func (f Field) Equals(other Field) bool { - if f.Type != other.Type { - return false - } - if f.Key != other.Key { - return false - } - - switch f.Type { - case BinaryType, ByteStringType: - return bytes.Equal(f.Interface.([]byte), other.Interface.([]byte)) - case ArrayMarshalerType, ObjectMarshalerType, ErrorType, ReflectType: - return reflect.DeepEqual(f.Interface, other.Interface) - default: - return f == other - } -} - -func addFields(enc ObjectEncoder, fields []Field) { - for i := range fields { - fields[i].AddTo(enc) - } -} - -func encodeStringer(key string, stringer interface{}, enc ObjectEncoder) (retErr error) { - // Try to capture panics (from nil references or otherwise) when calling - // the String() method, similar to https://golang.org/src/fmt/print.go#L540 - defer func() { - if err := recover(); err != nil { - // If it's a nil pointer, just say "". The likeliest causes are a - // Stringer that fails to guard against nil or a nil pointer for a - // value receiver, and in either case, "" is a nice result. - if v := reflect.ValueOf(stringer); v.Kind() == reflect.Ptr && v.IsNil() { - enc.AddString(key, "") - return - } - - retErr = fmt.Errorf("PANIC=%v", err) - } - }() - - enc.AddString(key, stringer.(fmt.Stringer).String()) - return nil -} diff --git a/vendor/go.uber.org/zap/zapcore/hook.go b/vendor/go.uber.org/zap/zapcore/hook.go deleted file mode 100644 index 198def9..0000000 --- a/vendor/go.uber.org/zap/zapcore/hook.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import "go.uber.org/multierr" - -type hooked struct { - Core - funcs []func(Entry) error -} - -var ( - _ Core = (*hooked)(nil) - _ leveledEnabler = (*hooked)(nil) -) - -// RegisterHooks wraps a Core and runs a collection of user-defined callback -// hooks each time a message is logged. Execution of the callbacks is blocking. -// -// This offers users an easy way to register simple callbacks (e.g., metrics -// collection) without implementing the full Core interface. -func RegisterHooks(core Core, hooks ...func(Entry) error) Core { - funcs := append([]func(Entry) error{}, hooks...) - return &hooked{ - Core: core, - funcs: funcs, - } -} - -func (h *hooked) Level() Level { - return LevelOf(h.Core) -} - -func (h *hooked) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { - // Let the wrapped Core decide whether to log this message or not. This - // also gives the downstream a chance to register itself directly with the - // CheckedEntry. - if downstream := h.Core.Check(ent, ce); downstream != nil { - return downstream.AddCore(ent, h) - } - return ce -} - -func (h *hooked) With(fields []Field) Core { - return &hooked{ - Core: h.Core.With(fields), - funcs: h.funcs, - } -} - -func (h *hooked) Write(ent Entry, _ []Field) error { - // Since our downstream had a chance to register itself directly with the - // CheckedMessage, we don't need to call it here. - var err error - for i := range h.funcs { - err = multierr.Append(err, h.funcs[i](ent)) - } - return err -} diff --git a/vendor/go.uber.org/zap/zapcore/increase_level.go b/vendor/go.uber.org/zap/zapcore/increase_level.go deleted file mode 100644 index 7a11237..0000000 --- a/vendor/go.uber.org/zap/zapcore/increase_level.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) 2020 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import "fmt" - -type levelFilterCore struct { - core Core - level LevelEnabler -} - -var ( - _ Core = (*levelFilterCore)(nil) - _ leveledEnabler = (*levelFilterCore)(nil) -) - -// NewIncreaseLevelCore creates a core that can be used to increase the level of -// an existing Core. It cannot be used to decrease the logging level, as it acts -// as a filter before calling the underlying core. If level decreases the log level, -// an error is returned. -func NewIncreaseLevelCore(core Core, level LevelEnabler) (Core, error) { - for l := _maxLevel; l >= _minLevel; l-- { - if !core.Enabled(l) && level.Enabled(l) { - return nil, fmt.Errorf("invalid increase level, as level %q is allowed by increased level, but not by existing core", l) - } - } - - return &levelFilterCore{core, level}, nil -} - -func (c *levelFilterCore) Enabled(lvl Level) bool { - return c.level.Enabled(lvl) -} - -func (c *levelFilterCore) Level() Level { - return LevelOf(c.level) -} - -func (c *levelFilterCore) With(fields []Field) Core { - return &levelFilterCore{c.core.With(fields), c.level} -} - -func (c *levelFilterCore) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { - if !c.Enabled(ent.Level) { - return ce - } - - return c.core.Check(ent, ce) -} - -func (c *levelFilterCore) Write(ent Entry, fields []Field) error { - return c.core.Write(ent, fields) -} - -func (c *levelFilterCore) Sync() error { - return c.core.Sync() -} diff --git a/vendor/go.uber.org/zap/zapcore/json_encoder.go b/vendor/go.uber.org/zap/zapcore/json_encoder.go deleted file mode 100644 index 9685169..0000000 --- a/vendor/go.uber.org/zap/zapcore/json_encoder.go +++ /dev/null @@ -1,583 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "encoding/base64" - "math" - "time" - "unicode/utf8" - - "go.uber.org/zap/buffer" - "go.uber.org/zap/internal/bufferpool" - "go.uber.org/zap/internal/pool" -) - -// For JSON-escaping; see jsonEncoder.safeAddString below. -const _hex = "0123456789abcdef" - -var _jsonPool = pool.New(func() *jsonEncoder { - return &jsonEncoder{} -}) - -func putJSONEncoder(enc *jsonEncoder) { - if enc.reflectBuf != nil { - enc.reflectBuf.Free() - } - enc.EncoderConfig = nil - enc.buf = nil - enc.spaced = false - enc.openNamespaces = 0 - enc.reflectBuf = nil - enc.reflectEnc = nil - _jsonPool.Put(enc) -} - -type jsonEncoder struct { - *EncoderConfig - buf *buffer.Buffer - spaced bool // include spaces after colons and commas - openNamespaces int - - // for encoding generic values by reflection - reflectBuf *buffer.Buffer - reflectEnc ReflectedEncoder -} - -// NewJSONEncoder creates a fast, low-allocation JSON encoder. The encoder -// appropriately escapes all field keys and values. -// -// Note that the encoder doesn't deduplicate keys, so it's possible to produce -// a message like -// -// {"foo":"bar","foo":"baz"} -// -// This is permitted by the JSON specification, but not encouraged. Many -// libraries will ignore duplicate key-value pairs (typically keeping the last -// pair) when unmarshaling, but users should attempt to avoid adding duplicate -// keys. -func NewJSONEncoder(cfg EncoderConfig) Encoder { - return newJSONEncoder(cfg, false) -} - -func newJSONEncoder(cfg EncoderConfig, spaced bool) *jsonEncoder { - if cfg.SkipLineEnding { - cfg.LineEnding = "" - } else if cfg.LineEnding == "" { - cfg.LineEnding = DefaultLineEnding - } - - // If no EncoderConfig.NewReflectedEncoder is provided by the user, then use default - if cfg.NewReflectedEncoder == nil { - cfg.NewReflectedEncoder = defaultReflectedEncoder - } - - return &jsonEncoder{ - EncoderConfig: &cfg, - buf: bufferpool.Get(), - spaced: spaced, - } -} - -func (enc *jsonEncoder) AddArray(key string, arr ArrayMarshaler) error { - enc.addKey(key) - return enc.AppendArray(arr) -} - -func (enc *jsonEncoder) AddObject(key string, obj ObjectMarshaler) error { - enc.addKey(key) - return enc.AppendObject(obj) -} - -func (enc *jsonEncoder) AddBinary(key string, val []byte) { - enc.AddString(key, base64.StdEncoding.EncodeToString(val)) -} - -func (enc *jsonEncoder) AddByteString(key string, val []byte) { - enc.addKey(key) - enc.AppendByteString(val) -} - -func (enc *jsonEncoder) AddBool(key string, val bool) { - enc.addKey(key) - enc.AppendBool(val) -} - -func (enc *jsonEncoder) AddComplex128(key string, val complex128) { - enc.addKey(key) - enc.AppendComplex128(val) -} - -func (enc *jsonEncoder) AddComplex64(key string, val complex64) { - enc.addKey(key) - enc.AppendComplex64(val) -} - -func (enc *jsonEncoder) AddDuration(key string, val time.Duration) { - enc.addKey(key) - enc.AppendDuration(val) -} - -func (enc *jsonEncoder) AddFloat64(key string, val float64) { - enc.addKey(key) - enc.AppendFloat64(val) -} - -func (enc *jsonEncoder) AddFloat32(key string, val float32) { - enc.addKey(key) - enc.AppendFloat32(val) -} - -func (enc *jsonEncoder) AddInt64(key string, val int64) { - enc.addKey(key) - enc.AppendInt64(val) -} - -func (enc *jsonEncoder) resetReflectBuf() { - if enc.reflectBuf == nil { - enc.reflectBuf = bufferpool.Get() - enc.reflectEnc = enc.NewReflectedEncoder(enc.reflectBuf) - } else { - enc.reflectBuf.Reset() - } -} - -var nullLiteralBytes = []byte("null") - -// Only invoke the standard JSON encoder if there is actually something to -// encode; otherwise write JSON null literal directly. -func (enc *jsonEncoder) encodeReflected(obj interface{}) ([]byte, error) { - if obj == nil { - return nullLiteralBytes, nil - } - enc.resetReflectBuf() - if err := enc.reflectEnc.Encode(obj); err != nil { - return nil, err - } - enc.reflectBuf.TrimNewline() - return enc.reflectBuf.Bytes(), nil -} - -func (enc *jsonEncoder) AddReflected(key string, obj interface{}) error { - valueBytes, err := enc.encodeReflected(obj) - if err != nil { - return err - } - enc.addKey(key) - _, err = enc.buf.Write(valueBytes) - return err -} - -func (enc *jsonEncoder) OpenNamespace(key string) { - enc.addKey(key) - enc.buf.AppendByte('{') - enc.openNamespaces++ -} - -func (enc *jsonEncoder) AddString(key, val string) { - enc.addKey(key) - enc.AppendString(val) -} - -func (enc *jsonEncoder) AddTime(key string, val time.Time) { - enc.addKey(key) - enc.AppendTime(val) -} - -func (enc *jsonEncoder) AddUint64(key string, val uint64) { - enc.addKey(key) - enc.AppendUint64(val) -} - -func (enc *jsonEncoder) AppendArray(arr ArrayMarshaler) error { - enc.addElementSeparator() - enc.buf.AppendByte('[') - err := arr.MarshalLogArray(enc) - enc.buf.AppendByte(']') - return err -} - -func (enc *jsonEncoder) AppendObject(obj ObjectMarshaler) error { - // Close ONLY new openNamespaces that are created during - // AppendObject(). - old := enc.openNamespaces - enc.openNamespaces = 0 - enc.addElementSeparator() - enc.buf.AppendByte('{') - err := obj.MarshalLogObject(enc) - enc.buf.AppendByte('}') - enc.closeOpenNamespaces() - enc.openNamespaces = old - return err -} - -func (enc *jsonEncoder) AppendBool(val bool) { - enc.addElementSeparator() - enc.buf.AppendBool(val) -} - -func (enc *jsonEncoder) AppendByteString(val []byte) { - enc.addElementSeparator() - enc.buf.AppendByte('"') - enc.safeAddByteString(val) - enc.buf.AppendByte('"') -} - -// appendComplex appends the encoded form of the provided complex128 value. -// precision specifies the encoding precision for the real and imaginary -// components of the complex number. -func (enc *jsonEncoder) appendComplex(val complex128, precision int) { - enc.addElementSeparator() - // Cast to a platform-independent, fixed-size type. - r, i := float64(real(val)), float64(imag(val)) - enc.buf.AppendByte('"') - // Because we're always in a quoted string, we can use strconv without - // special-casing NaN and +/-Inf. - enc.buf.AppendFloat(r, precision) - // If imaginary part is less than 0, minus (-) sign is added by default - // by AppendFloat. - if i >= 0 { - enc.buf.AppendByte('+') - } - enc.buf.AppendFloat(i, precision) - enc.buf.AppendByte('i') - enc.buf.AppendByte('"') -} - -func (enc *jsonEncoder) AppendDuration(val time.Duration) { - cur := enc.buf.Len() - if e := enc.EncodeDuration; e != nil { - e(val, enc) - } - if cur == enc.buf.Len() { - // User-supplied EncodeDuration is a no-op. Fall back to nanoseconds to keep - // JSON valid. - enc.AppendInt64(int64(val)) - } -} - -func (enc *jsonEncoder) AppendInt64(val int64) { - enc.addElementSeparator() - enc.buf.AppendInt(val) -} - -func (enc *jsonEncoder) AppendReflected(val interface{}) error { - valueBytes, err := enc.encodeReflected(val) - if err != nil { - return err - } - enc.addElementSeparator() - _, err = enc.buf.Write(valueBytes) - return err -} - -func (enc *jsonEncoder) AppendString(val string) { - enc.addElementSeparator() - enc.buf.AppendByte('"') - enc.safeAddString(val) - enc.buf.AppendByte('"') -} - -func (enc *jsonEncoder) AppendTimeLayout(time time.Time, layout string) { - enc.addElementSeparator() - enc.buf.AppendByte('"') - enc.buf.AppendTime(time, layout) - enc.buf.AppendByte('"') -} - -func (enc *jsonEncoder) AppendTime(val time.Time) { - cur := enc.buf.Len() - if e := enc.EncodeTime; e != nil { - e(val, enc) - } - if cur == enc.buf.Len() { - // User-supplied EncodeTime is a no-op. Fall back to nanos since epoch to keep - // output JSON valid. - enc.AppendInt64(val.UnixNano()) - } -} - -func (enc *jsonEncoder) AppendUint64(val uint64) { - enc.addElementSeparator() - enc.buf.AppendUint(val) -} - -func (enc *jsonEncoder) AddInt(k string, v int) { enc.AddInt64(k, int64(v)) } -func (enc *jsonEncoder) AddInt32(k string, v int32) { enc.AddInt64(k, int64(v)) } -func (enc *jsonEncoder) AddInt16(k string, v int16) { enc.AddInt64(k, int64(v)) } -func (enc *jsonEncoder) AddInt8(k string, v int8) { enc.AddInt64(k, int64(v)) } -func (enc *jsonEncoder) AddUint(k string, v uint) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AddUint32(k string, v uint32) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AddUint16(k string, v uint16) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AddUint8(k string, v uint8) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AddUintptr(k string, v uintptr) { enc.AddUint64(k, uint64(v)) } -func (enc *jsonEncoder) AppendComplex64(v complex64) { enc.appendComplex(complex128(v), 32) } -func (enc *jsonEncoder) AppendComplex128(v complex128) { enc.appendComplex(complex128(v), 64) } -func (enc *jsonEncoder) AppendFloat64(v float64) { enc.appendFloat(v, 64) } -func (enc *jsonEncoder) AppendFloat32(v float32) { enc.appendFloat(float64(v), 32) } -func (enc *jsonEncoder) AppendInt(v int) { enc.AppendInt64(int64(v)) } -func (enc *jsonEncoder) AppendInt32(v int32) { enc.AppendInt64(int64(v)) } -func (enc *jsonEncoder) AppendInt16(v int16) { enc.AppendInt64(int64(v)) } -func (enc *jsonEncoder) AppendInt8(v int8) { enc.AppendInt64(int64(v)) } -func (enc *jsonEncoder) AppendUint(v uint) { enc.AppendUint64(uint64(v)) } -func (enc *jsonEncoder) AppendUint32(v uint32) { enc.AppendUint64(uint64(v)) } -func (enc *jsonEncoder) AppendUint16(v uint16) { enc.AppendUint64(uint64(v)) } -func (enc *jsonEncoder) AppendUint8(v uint8) { enc.AppendUint64(uint64(v)) } -func (enc *jsonEncoder) AppendUintptr(v uintptr) { enc.AppendUint64(uint64(v)) } - -func (enc *jsonEncoder) Clone() Encoder { - clone := enc.clone() - clone.buf.Write(enc.buf.Bytes()) - return clone -} - -func (enc *jsonEncoder) clone() *jsonEncoder { - clone := _jsonPool.Get() - clone.EncoderConfig = enc.EncoderConfig - clone.spaced = enc.spaced - clone.openNamespaces = enc.openNamespaces - clone.buf = bufferpool.Get() - return clone -} - -func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, error) { - final := enc.clone() - final.buf.AppendByte('{') - - if final.LevelKey != "" && final.EncodeLevel != nil { - final.addKey(final.LevelKey) - cur := final.buf.Len() - final.EncodeLevel(ent.Level, final) - if cur == final.buf.Len() { - // User-supplied EncodeLevel was a no-op. Fall back to strings to keep - // output JSON valid. - final.AppendString(ent.Level.String()) - } - } - if final.TimeKey != "" && !ent.Time.IsZero() { - final.AddTime(final.TimeKey, ent.Time) - } - if ent.LoggerName != "" && final.NameKey != "" { - final.addKey(final.NameKey) - cur := final.buf.Len() - nameEncoder := final.EncodeName - - // if no name encoder provided, fall back to FullNameEncoder for backwards - // compatibility - if nameEncoder == nil { - nameEncoder = FullNameEncoder - } - - nameEncoder(ent.LoggerName, final) - if cur == final.buf.Len() { - // User-supplied EncodeName was a no-op. Fall back to strings to - // keep output JSON valid. - final.AppendString(ent.LoggerName) - } - } - if ent.Caller.Defined { - if final.CallerKey != "" { - final.addKey(final.CallerKey) - cur := final.buf.Len() - final.EncodeCaller(ent.Caller, final) - if cur == final.buf.Len() { - // User-supplied EncodeCaller was a no-op. Fall back to strings to - // keep output JSON valid. - final.AppendString(ent.Caller.String()) - } - } - if final.FunctionKey != "" { - final.addKey(final.FunctionKey) - final.AppendString(ent.Caller.Function) - } - } - if final.MessageKey != "" { - final.addKey(enc.MessageKey) - final.AppendString(ent.Message) - } - if enc.buf.Len() > 0 { - final.addElementSeparator() - final.buf.Write(enc.buf.Bytes()) - } - addFields(final, fields) - final.closeOpenNamespaces() - if ent.Stack != "" && final.StacktraceKey != "" { - final.AddString(final.StacktraceKey, ent.Stack) - } - final.buf.AppendByte('}') - final.buf.AppendString(final.LineEnding) - - ret := final.buf - putJSONEncoder(final) - return ret, nil -} - -func (enc *jsonEncoder) truncate() { - enc.buf.Reset() -} - -func (enc *jsonEncoder) closeOpenNamespaces() { - for i := 0; i < enc.openNamespaces; i++ { - enc.buf.AppendByte('}') - } - enc.openNamespaces = 0 -} - -func (enc *jsonEncoder) addKey(key string) { - enc.addElementSeparator() - enc.buf.AppendByte('"') - enc.safeAddString(key) - enc.buf.AppendByte('"') - enc.buf.AppendByte(':') - if enc.spaced { - enc.buf.AppendByte(' ') - } -} - -func (enc *jsonEncoder) addElementSeparator() { - last := enc.buf.Len() - 1 - if last < 0 { - return - } - switch enc.buf.Bytes()[last] { - case '{', '[', ':', ',', ' ': - return - default: - enc.buf.AppendByte(',') - if enc.spaced { - enc.buf.AppendByte(' ') - } - } -} - -func (enc *jsonEncoder) appendFloat(val float64, bitSize int) { - enc.addElementSeparator() - switch { - case math.IsNaN(val): - enc.buf.AppendString(`"NaN"`) - case math.IsInf(val, 1): - enc.buf.AppendString(`"+Inf"`) - case math.IsInf(val, -1): - enc.buf.AppendString(`"-Inf"`) - default: - enc.buf.AppendFloat(val, bitSize) - } -} - -// safeAddString JSON-escapes a string and appends it to the internal buffer. -// Unlike the standard library's encoder, it doesn't attempt to protect the -// user from browser vulnerabilities or JSONP-related problems. -func (enc *jsonEncoder) safeAddString(s string) { - safeAppendStringLike( - (*buffer.Buffer).AppendString, - utf8.DecodeRuneInString, - enc.buf, - s, - ) -} - -// safeAddByteString is no-alloc equivalent of safeAddString(string(s)) for s []byte. -func (enc *jsonEncoder) safeAddByteString(s []byte) { - safeAppendStringLike( - (*buffer.Buffer).AppendBytes, - utf8.DecodeRune, - enc.buf, - s, - ) -} - -// safeAppendStringLike is a generic implementation of safeAddString and safeAddByteString. -// It appends a string or byte slice to the buffer, escaping all special characters. -func safeAppendStringLike[S []byte | string]( - // appendTo appends this string-like object to the buffer. - appendTo func(*buffer.Buffer, S), - // decodeRune decodes the next rune from the string-like object - // and returns its value and width in bytes. - decodeRune func(S) (rune, int), - buf *buffer.Buffer, - s S, -) { - // The encoding logic below works by skipping over characters - // that can be safely copied as-is, - // until a character is found that needs special handling. - // At that point, we copy everything we've seen so far, - // and then handle that special character. - // - // last is the index of the last byte that was copied to the buffer. - last := 0 - for i := 0; i < len(s); { - if s[i] >= utf8.RuneSelf { - // Character >= RuneSelf may be part of a multi-byte rune. - // They need to be decoded before we can decide how to handle them. - r, size := decodeRune(s[i:]) - if r != utf8.RuneError || size != 1 { - // No special handling required. - // Skip over this rune and continue. - i += size - continue - } - - // Invalid UTF-8 sequence. - // Replace it with the Unicode replacement character. - appendTo(buf, s[last:i]) - buf.AppendString(`\ufffd`) - - i++ - last = i - } else { - // Character < RuneSelf is a single-byte UTF-8 rune. - if s[i] >= 0x20 && s[i] != '\\' && s[i] != '"' { - // No escaping necessary. - // Skip over this character and continue. - i++ - continue - } - - // This character needs to be escaped. - appendTo(buf, s[last:i]) - switch s[i] { - case '\\', '"': - buf.AppendByte('\\') - buf.AppendByte(s[i]) - case '\n': - buf.AppendByte('\\') - buf.AppendByte('n') - case '\r': - buf.AppendByte('\\') - buf.AppendByte('r') - case '\t': - buf.AppendByte('\\') - buf.AppendByte('t') - default: - // Encode bytes < 0x20, except for the escape sequences above. - buf.AppendString(`\u00`) - buf.AppendByte(_hex[s[i]>>4]) - buf.AppendByte(_hex[s[i]&0xF]) - } - - i++ - last = i - } - } - - // add remaining - appendTo(buf, s[last:]) -} diff --git a/vendor/go.uber.org/zap/zapcore/lazy_with.go b/vendor/go.uber.org/zap/zapcore/lazy_with.go deleted file mode 100644 index 500809d..0000000 --- a/vendor/go.uber.org/zap/zapcore/lazy_with.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) 2023 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import "sync" - -type lazyWithCore struct { - core Core - originalCore Core - sync.Once - fields []Field -} - -// NewLazyWith wraps a Core with a "lazy" Core that will only encode fields if -// the logger is written to (or is further chained in a lon-lazy manner). -func NewLazyWith(core Core, fields []Field) Core { - return &lazyWithCore{ - core: nil, // core is allocated once `initOnce` is called. - originalCore: core, - fields: fields, - } -} - -func (d *lazyWithCore) initOnce() { - d.Once.Do(func() { - d.core = d.originalCore.With(d.fields) - }) -} - -func (d *lazyWithCore) With(fields []Field) Core { - d.initOnce() - return d.core.With(fields) -} - -func (d *lazyWithCore) Check(e Entry, ce *CheckedEntry) *CheckedEntry { - // This is safe because `lazyWithCore` doesn't change the level. - // So we can delagate the level check, any not `initOnce` - // just for the check. - if !d.originalCore.Enabled(e.Level) { - return ce - } - d.initOnce() - return d.core.Check(e, ce) -} - -func (d *lazyWithCore) Enabled(level Level) bool { - // Like above, this is safe because `lazyWithCore` doesn't change the level. - return d.originalCore.Enabled(level) -} - -func (d *lazyWithCore) Write(e Entry, fields []Field) error { - d.initOnce() - return d.core.Write(e, fields) -} - -func (d *lazyWithCore) Sync() error { - d.initOnce() - return d.core.Sync() -} diff --git a/vendor/go.uber.org/zap/zapcore/level.go b/vendor/go.uber.org/zap/zapcore/level.go deleted file mode 100644 index f3e166d..0000000 --- a/vendor/go.uber.org/zap/zapcore/level.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "bytes" - "errors" - "fmt" -) - -var errUnmarshalNilLevel = errors.New("can't unmarshal a nil *Level") - -// A Level is a logging priority. Higher levels are more important. -type Level int8 - -const ( - // DebugLevel logs are typically voluminous, and are usually disabled in - // production. - DebugLevel Level = iota - 1 - // InfoLevel is the default logging priority. - InfoLevel - // WarnLevel logs are more important than Info, but don't need individual - // human review. - WarnLevel - // ErrorLevel logs are high-priority. If an application is running smoothly, - // it shouldn't generate any error-level logs. - ErrorLevel - // DPanicLevel logs are particularly important errors. In development the - // logger panics after writing the message. - DPanicLevel - // PanicLevel logs a message, then panics. - PanicLevel - // FatalLevel logs a message, then calls os.Exit(1). - FatalLevel - - _minLevel = DebugLevel - _maxLevel = FatalLevel - - // InvalidLevel is an invalid value for Level. - // - // Core implementations may panic if they see messages of this level. - InvalidLevel = _maxLevel + 1 -) - -// ParseLevel parses a level based on the lower-case or all-caps ASCII -// representation of the log level. If the provided ASCII representation is -// invalid an error is returned. -// -// This is particularly useful when dealing with text input to configure log -// levels. -func ParseLevel(text string) (Level, error) { - var level Level - err := level.UnmarshalText([]byte(text)) - return level, err -} - -type leveledEnabler interface { - LevelEnabler - - Level() Level -} - -// LevelOf reports the minimum enabled log level for the given LevelEnabler -// from Zap's supported log levels, or [InvalidLevel] if none of them are -// enabled. -// -// A LevelEnabler may implement a 'Level() Level' method to override the -// behavior of this function. -// -// func (c *core) Level() Level { -// return c.currentLevel -// } -// -// It is recommended that [Core] implementations that wrap other cores use -// LevelOf to retrieve the level of the wrapped core. For example, -// -// func (c *coreWrapper) Level() Level { -// return zapcore.LevelOf(c.wrappedCore) -// } -func LevelOf(enab LevelEnabler) Level { - if lvler, ok := enab.(leveledEnabler); ok { - return lvler.Level() - } - - for lvl := _minLevel; lvl <= _maxLevel; lvl++ { - if enab.Enabled(lvl) { - return lvl - } - } - - return InvalidLevel -} - -// String returns a lower-case ASCII representation of the log level. -func (l Level) String() string { - switch l { - case DebugLevel: - return "debug" - case InfoLevel: - return "info" - case WarnLevel: - return "warn" - case ErrorLevel: - return "error" - case DPanicLevel: - return "dpanic" - case PanicLevel: - return "panic" - case FatalLevel: - return "fatal" - default: - return fmt.Sprintf("Level(%d)", l) - } -} - -// CapitalString returns an all-caps ASCII representation of the log level. -func (l Level) CapitalString() string { - // Printing levels in all-caps is common enough that we should export this - // functionality. - switch l { - case DebugLevel: - return "DEBUG" - case InfoLevel: - return "INFO" - case WarnLevel: - return "WARN" - case ErrorLevel: - return "ERROR" - case DPanicLevel: - return "DPANIC" - case PanicLevel: - return "PANIC" - case FatalLevel: - return "FATAL" - default: - return fmt.Sprintf("LEVEL(%d)", l) - } -} - -// MarshalText marshals the Level to text. Note that the text representation -// drops the -Level suffix (see example). -func (l Level) MarshalText() ([]byte, error) { - return []byte(l.String()), nil -} - -// UnmarshalText unmarshals text to a level. Like MarshalText, UnmarshalText -// expects the text representation of a Level to drop the -Level suffix (see -// example). -// -// In particular, this makes it easy to configure logging levels using YAML, -// TOML, or JSON files. -func (l *Level) UnmarshalText(text []byte) error { - if l == nil { - return errUnmarshalNilLevel - } - if !l.unmarshalText(text) && !l.unmarshalText(bytes.ToLower(text)) { - return fmt.Errorf("unrecognized level: %q", text) - } - return nil -} - -func (l *Level) unmarshalText(text []byte) bool { - switch string(text) { - case "debug": - *l = DebugLevel - case "info", "": // make the zero value useful - *l = InfoLevel - case "warn", "warning": - *l = WarnLevel - case "error": - *l = ErrorLevel - case "dpanic": - *l = DPanicLevel - case "panic": - *l = PanicLevel - case "fatal": - *l = FatalLevel - default: - return false - } - return true -} - -// Set sets the level for the flag.Value interface. -func (l *Level) Set(s string) error { - return l.UnmarshalText([]byte(s)) -} - -// Get gets the level for the flag.Getter interface. -func (l *Level) Get() interface{} { - return *l -} - -// Enabled returns true if the given level is at or above this level. -func (l Level) Enabled(lvl Level) bool { - return lvl >= l -} - -// LevelEnabler decides whether a given logging level is enabled when logging a -// message. -// -// Enablers are intended to be used to implement deterministic filters; -// concerns like sampling are better implemented as a Core. -// -// Each concrete Level value implements a static LevelEnabler which returns -// true for itself and all higher logging levels. For example WarnLevel.Enabled() -// will return true for WarnLevel, ErrorLevel, DPanicLevel, PanicLevel, and -// FatalLevel, but return false for InfoLevel and DebugLevel. -type LevelEnabler interface { - Enabled(Level) bool -} diff --git a/vendor/go.uber.org/zap/zapcore/level_strings.go b/vendor/go.uber.org/zap/zapcore/level_strings.go deleted file mode 100644 index 7af8dad..0000000 --- a/vendor/go.uber.org/zap/zapcore/level_strings.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import "go.uber.org/zap/internal/color" - -var ( - _levelToColor = map[Level]color.Color{ - DebugLevel: color.Magenta, - InfoLevel: color.Blue, - WarnLevel: color.Yellow, - ErrorLevel: color.Red, - DPanicLevel: color.Red, - PanicLevel: color.Red, - FatalLevel: color.Red, - } - _unknownLevelColor = color.Red - - _levelToLowercaseColorString = make(map[Level]string, len(_levelToColor)) - _levelToCapitalColorString = make(map[Level]string, len(_levelToColor)) -) - -func init() { - for level, color := range _levelToColor { - _levelToLowercaseColorString[level] = color.Add(level.String()) - _levelToCapitalColorString[level] = color.Add(level.CapitalString()) - } -} diff --git a/vendor/go.uber.org/zap/zapcore/marshaler.go b/vendor/go.uber.org/zap/zapcore/marshaler.go deleted file mode 100644 index c3c55ba..0000000 --- a/vendor/go.uber.org/zap/zapcore/marshaler.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -// ObjectMarshaler allows user-defined types to efficiently add themselves to the -// logging context, and to selectively omit information which shouldn't be -// included in logs (e.g., passwords). -// -// Note: ObjectMarshaler is only used when zap.Object is used or when -// passed directly to zap.Any. It is not used when reflection-based -// encoding is used. -type ObjectMarshaler interface { - MarshalLogObject(ObjectEncoder) error -} - -// ObjectMarshalerFunc is a type adapter that turns a function into an -// ObjectMarshaler. -type ObjectMarshalerFunc func(ObjectEncoder) error - -// MarshalLogObject calls the underlying function. -func (f ObjectMarshalerFunc) MarshalLogObject(enc ObjectEncoder) error { - return f(enc) -} - -// ArrayMarshaler allows user-defined types to efficiently add themselves to the -// logging context, and to selectively omit information which shouldn't be -// included in logs (e.g., passwords). -// -// Note: ArrayMarshaler is only used when zap.Array is used or when -// passed directly to zap.Any. It is not used when reflection-based -// encoding is used. -type ArrayMarshaler interface { - MarshalLogArray(ArrayEncoder) error -} - -// ArrayMarshalerFunc is a type adapter that turns a function into an -// ArrayMarshaler. -type ArrayMarshalerFunc func(ArrayEncoder) error - -// MarshalLogArray calls the underlying function. -func (f ArrayMarshalerFunc) MarshalLogArray(enc ArrayEncoder) error { - return f(enc) -} diff --git a/vendor/go.uber.org/zap/zapcore/memory_encoder.go b/vendor/go.uber.org/zap/zapcore/memory_encoder.go deleted file mode 100644 index dfead08..0000000 --- a/vendor/go.uber.org/zap/zapcore/memory_encoder.go +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import "time" - -// MapObjectEncoder is an ObjectEncoder backed by a simple -// map[string]interface{}. It's not fast enough for production use, but it's -// helpful in tests. -type MapObjectEncoder struct { - // Fields contains the entire encoded log context. - Fields map[string]interface{} - // cur is a pointer to the namespace we're currently writing to. - cur map[string]interface{} -} - -// NewMapObjectEncoder creates a new map-backed ObjectEncoder. -func NewMapObjectEncoder() *MapObjectEncoder { - m := make(map[string]interface{}) - return &MapObjectEncoder{ - Fields: m, - cur: m, - } -} - -// AddArray implements ObjectEncoder. -func (m *MapObjectEncoder) AddArray(key string, v ArrayMarshaler) error { - arr := &sliceArrayEncoder{elems: make([]interface{}, 0)} - err := v.MarshalLogArray(arr) - m.cur[key] = arr.elems - return err -} - -// AddObject implements ObjectEncoder. -func (m *MapObjectEncoder) AddObject(k string, v ObjectMarshaler) error { - newMap := NewMapObjectEncoder() - m.cur[k] = newMap.Fields - return v.MarshalLogObject(newMap) -} - -// AddBinary implements ObjectEncoder. -func (m *MapObjectEncoder) AddBinary(k string, v []byte) { m.cur[k] = v } - -// AddByteString implements ObjectEncoder. -func (m *MapObjectEncoder) AddByteString(k string, v []byte) { m.cur[k] = string(v) } - -// AddBool implements ObjectEncoder. -func (m *MapObjectEncoder) AddBool(k string, v bool) { m.cur[k] = v } - -// AddDuration implements ObjectEncoder. -func (m MapObjectEncoder) AddDuration(k string, v time.Duration) { m.cur[k] = v } - -// AddComplex128 implements ObjectEncoder. -func (m *MapObjectEncoder) AddComplex128(k string, v complex128) { m.cur[k] = v } - -// AddComplex64 implements ObjectEncoder. -func (m *MapObjectEncoder) AddComplex64(k string, v complex64) { m.cur[k] = v } - -// AddFloat64 implements ObjectEncoder. -func (m *MapObjectEncoder) AddFloat64(k string, v float64) { m.cur[k] = v } - -// AddFloat32 implements ObjectEncoder. -func (m *MapObjectEncoder) AddFloat32(k string, v float32) { m.cur[k] = v } - -// AddInt implements ObjectEncoder. -func (m *MapObjectEncoder) AddInt(k string, v int) { m.cur[k] = v } - -// AddInt64 implements ObjectEncoder. -func (m *MapObjectEncoder) AddInt64(k string, v int64) { m.cur[k] = v } - -// AddInt32 implements ObjectEncoder. -func (m *MapObjectEncoder) AddInt32(k string, v int32) { m.cur[k] = v } - -// AddInt16 implements ObjectEncoder. -func (m *MapObjectEncoder) AddInt16(k string, v int16) { m.cur[k] = v } - -// AddInt8 implements ObjectEncoder. -func (m *MapObjectEncoder) AddInt8(k string, v int8) { m.cur[k] = v } - -// AddString implements ObjectEncoder. -func (m *MapObjectEncoder) AddString(k string, v string) { m.cur[k] = v } - -// AddTime implements ObjectEncoder. -func (m MapObjectEncoder) AddTime(k string, v time.Time) { m.cur[k] = v } - -// AddUint implements ObjectEncoder. -func (m *MapObjectEncoder) AddUint(k string, v uint) { m.cur[k] = v } - -// AddUint64 implements ObjectEncoder. -func (m *MapObjectEncoder) AddUint64(k string, v uint64) { m.cur[k] = v } - -// AddUint32 implements ObjectEncoder. -func (m *MapObjectEncoder) AddUint32(k string, v uint32) { m.cur[k] = v } - -// AddUint16 implements ObjectEncoder. -func (m *MapObjectEncoder) AddUint16(k string, v uint16) { m.cur[k] = v } - -// AddUint8 implements ObjectEncoder. -func (m *MapObjectEncoder) AddUint8(k string, v uint8) { m.cur[k] = v } - -// AddUintptr implements ObjectEncoder. -func (m *MapObjectEncoder) AddUintptr(k string, v uintptr) { m.cur[k] = v } - -// AddReflected implements ObjectEncoder. -func (m *MapObjectEncoder) AddReflected(k string, v interface{}) error { - m.cur[k] = v - return nil -} - -// OpenNamespace implements ObjectEncoder. -func (m *MapObjectEncoder) OpenNamespace(k string) { - ns := make(map[string]interface{}) - m.cur[k] = ns - m.cur = ns -} - -// sliceArrayEncoder is an ArrayEncoder backed by a simple []interface{}. Like -// the MapObjectEncoder, it's not designed for production use. -type sliceArrayEncoder struct { - elems []interface{} -} - -func (s *sliceArrayEncoder) AppendArray(v ArrayMarshaler) error { - enc := &sliceArrayEncoder{} - err := v.MarshalLogArray(enc) - s.elems = append(s.elems, enc.elems) - return err -} - -func (s *sliceArrayEncoder) AppendObject(v ObjectMarshaler) error { - m := NewMapObjectEncoder() - err := v.MarshalLogObject(m) - s.elems = append(s.elems, m.Fields) - return err -} - -func (s *sliceArrayEncoder) AppendReflected(v interface{}) error { - s.elems = append(s.elems, v) - return nil -} - -func (s *sliceArrayEncoder) AppendBool(v bool) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendByteString(v []byte) { s.elems = append(s.elems, string(v)) } -func (s *sliceArrayEncoder) AppendComplex128(v complex128) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendComplex64(v complex64) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendDuration(v time.Duration) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendFloat64(v float64) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendFloat32(v float32) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendInt(v int) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendInt64(v int64) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendInt32(v int32) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendInt16(v int16) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendInt8(v int8) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendString(v string) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendTime(v time.Time) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendUint(v uint) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendUint64(v uint64) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendUint32(v uint32) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendUint16(v uint16) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendUint8(v uint8) { s.elems = append(s.elems, v) } -func (s *sliceArrayEncoder) AppendUintptr(v uintptr) { s.elems = append(s.elems, v) } diff --git a/vendor/go.uber.org/zap/zapcore/reflected_encoder.go b/vendor/go.uber.org/zap/zapcore/reflected_encoder.go deleted file mode 100644 index 8746360..0000000 --- a/vendor/go.uber.org/zap/zapcore/reflected_encoder.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "encoding/json" - "io" -) - -// ReflectedEncoder serializes log fields that can't be serialized with Zap's -// JSON encoder. These have the ReflectType field type. -// Use EncoderConfig.NewReflectedEncoder to set this. -type ReflectedEncoder interface { - // Encode encodes and writes to the underlying data stream. - Encode(interface{}) error -} - -func defaultReflectedEncoder(w io.Writer) ReflectedEncoder { - enc := json.NewEncoder(w) - // For consistency with our custom JSON encoder. - enc.SetEscapeHTML(false) - return enc -} diff --git a/vendor/go.uber.org/zap/zapcore/sampler.go b/vendor/go.uber.org/zap/zapcore/sampler.go deleted file mode 100644 index b7c093a..0000000 --- a/vendor/go.uber.org/zap/zapcore/sampler.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright (c) 2016-2022 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "sync/atomic" - "time" -) - -const ( - _numLevels = _maxLevel - _minLevel + 1 - _countersPerLevel = 4096 -) - -type counter struct { - resetAt atomic.Int64 - counter atomic.Uint64 -} - -type counters [_numLevels][_countersPerLevel]counter - -func newCounters() *counters { - return &counters{} -} - -func (cs *counters) get(lvl Level, key string) *counter { - i := lvl - _minLevel - j := fnv32a(key) % _countersPerLevel - return &cs[i][j] -} - -// fnv32a, adapted from "hash/fnv", but without a []byte(string) alloc -func fnv32a(s string) uint32 { - const ( - offset32 = 2166136261 - prime32 = 16777619 - ) - hash := uint32(offset32) - for i := 0; i < len(s); i++ { - hash ^= uint32(s[i]) - hash *= prime32 - } - return hash -} - -func (c *counter) IncCheckReset(t time.Time, tick time.Duration) uint64 { - tn := t.UnixNano() - resetAfter := c.resetAt.Load() - if resetAfter > tn { - return c.counter.Add(1) - } - - c.counter.Store(1) - - newResetAfter := tn + tick.Nanoseconds() - if !c.resetAt.CompareAndSwap(resetAfter, newResetAfter) { - // We raced with another goroutine trying to reset, and it also reset - // the counter to 1, so we need to reincrement the counter. - return c.counter.Add(1) - } - - return 1 -} - -// SamplingDecision is a decision represented as a bit field made by sampler. -// More decisions may be added in the future. -type SamplingDecision uint32 - -const ( - // LogDropped indicates that the Sampler dropped a log entry. - LogDropped SamplingDecision = 1 << iota - // LogSampled indicates that the Sampler sampled a log entry. - LogSampled -) - -// optionFunc wraps a func so it satisfies the SamplerOption interface. -type optionFunc func(*sampler) - -func (f optionFunc) apply(s *sampler) { - f(s) -} - -// SamplerOption configures a Sampler. -type SamplerOption interface { - apply(*sampler) -} - -// nopSamplingHook is the default hook used by sampler. -func nopSamplingHook(Entry, SamplingDecision) {} - -// SamplerHook registers a function which will be called when Sampler makes a -// decision. -// -// This hook may be used to get visibility into the performance of the sampler. -// For example, use it to track metrics of dropped versus sampled logs. -// -// var dropped atomic.Int64 -// zapcore.SamplerHook(func(ent zapcore.Entry, dec zapcore.SamplingDecision) { -// if dec&zapcore.LogDropped > 0 { -// dropped.Inc() -// } -// }) -func SamplerHook(hook func(entry Entry, dec SamplingDecision)) SamplerOption { - return optionFunc(func(s *sampler) { - s.hook = hook - }) -} - -// NewSamplerWithOptions creates a Core that samples incoming entries, which -// caps the CPU and I/O load of logging while attempting to preserve a -// representative subset of your logs. -// -// Zap samples by logging the first N entries with a given level and message -// each tick. If more Entries with the same level and message are seen during -// the same interval, every Mth message is logged and the rest are dropped. -// -// For example, -// -// core = NewSamplerWithOptions(core, time.Second, 10, 5) -// -// This will log the first 10 log entries with the same level and message -// in a one second interval as-is. Following that, it will allow through -// every 5th log entry with the same level and message in that interval. -// -// If thereafter is zero, the Core will drop all log entries after the first N -// in that interval. -// -// Sampler can be configured to report sampling decisions with the SamplerHook -// option. -// -// Keep in mind that Zap's sampling implementation is optimized for speed over -// absolute precision; under load, each tick may be slightly over- or -// under-sampled. -func NewSamplerWithOptions(core Core, tick time.Duration, first, thereafter int, opts ...SamplerOption) Core { - s := &sampler{ - Core: core, - tick: tick, - counts: newCounters(), - first: uint64(first), - thereafter: uint64(thereafter), - hook: nopSamplingHook, - } - for _, opt := range opts { - opt.apply(s) - } - - return s -} - -type sampler struct { - Core - - counts *counters - tick time.Duration - first, thereafter uint64 - hook func(Entry, SamplingDecision) -} - -var ( - _ Core = (*sampler)(nil) - _ leveledEnabler = (*sampler)(nil) -) - -// NewSampler creates a Core that samples incoming entries, which -// caps the CPU and I/O load of logging while attempting to preserve a -// representative subset of your logs. -// -// Zap samples by logging the first N entries with a given level and message -// each tick. If more Entries with the same level and message are seen during -// the same interval, every Mth message is logged and the rest are dropped. -// -// Keep in mind that zap's sampling implementation is optimized for speed over -// absolute precision; under load, each tick may be slightly over- or -// under-sampled. -// -// Deprecated: use NewSamplerWithOptions. -func NewSampler(core Core, tick time.Duration, first, thereafter int) Core { - return NewSamplerWithOptions(core, tick, first, thereafter) -} - -func (s *sampler) Level() Level { - return LevelOf(s.Core) -} - -func (s *sampler) With(fields []Field) Core { - return &sampler{ - Core: s.Core.With(fields), - tick: s.tick, - counts: s.counts, - first: s.first, - thereafter: s.thereafter, - hook: s.hook, - } -} - -func (s *sampler) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { - if !s.Enabled(ent.Level) { - return ce - } - - if ent.Level >= _minLevel && ent.Level <= _maxLevel { - counter := s.counts.get(ent.Level, ent.Message) - n := counter.IncCheckReset(ent.Time, s.tick) - if n > s.first && (s.thereafter == 0 || (n-s.first)%s.thereafter != 0) { - s.hook(ent, LogDropped) - return ce - } - s.hook(ent, LogSampled) - } - return s.Core.Check(ent, ce) -} diff --git a/vendor/go.uber.org/zap/zapcore/tee.go b/vendor/go.uber.org/zap/zapcore/tee.go deleted file mode 100644 index 9bb32f0..0000000 --- a/vendor/go.uber.org/zap/zapcore/tee.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2016-2022 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import "go.uber.org/multierr" - -type multiCore []Core - -var ( - _ leveledEnabler = multiCore(nil) - _ Core = multiCore(nil) -) - -// NewTee creates a Core that duplicates log entries into two or more -// underlying Cores. -// -// Calling it with a single Core returns the input unchanged, and calling -// it with no input returns a no-op Core. -func NewTee(cores ...Core) Core { - switch len(cores) { - case 0: - return NewNopCore() - case 1: - return cores[0] - default: - return multiCore(cores) - } -} - -func (mc multiCore) With(fields []Field) Core { - clone := make(multiCore, len(mc)) - for i := range mc { - clone[i] = mc[i].With(fields) - } - return clone -} - -func (mc multiCore) Level() Level { - minLvl := _maxLevel // mc is never empty - for i := range mc { - if lvl := LevelOf(mc[i]); lvl < minLvl { - minLvl = lvl - } - } - return minLvl -} - -func (mc multiCore) Enabled(lvl Level) bool { - for i := range mc { - if mc[i].Enabled(lvl) { - return true - } - } - return false -} - -func (mc multiCore) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { - for i := range mc { - ce = mc[i].Check(ent, ce) - } - return ce -} - -func (mc multiCore) Write(ent Entry, fields []Field) error { - var err error - for i := range mc { - err = multierr.Append(err, mc[i].Write(ent, fields)) - } - return err -} - -func (mc multiCore) Sync() error { - var err error - for i := range mc { - err = multierr.Append(err, mc[i].Sync()) - } - return err -} diff --git a/vendor/go.uber.org/zap/zapcore/write_syncer.go b/vendor/go.uber.org/zap/zapcore/write_syncer.go deleted file mode 100644 index d4a1af3..0000000 --- a/vendor/go.uber.org/zap/zapcore/write_syncer.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (c) 2016 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package zapcore - -import ( - "io" - "sync" - - "go.uber.org/multierr" -) - -// A WriteSyncer is an io.Writer that can also flush any buffered data. Note -// that *os.File (and thus, os.Stderr and os.Stdout) implement WriteSyncer. -type WriteSyncer interface { - io.Writer - Sync() error -} - -// AddSync converts an io.Writer to a WriteSyncer. It attempts to be -// intelligent: if the concrete type of the io.Writer implements WriteSyncer, -// we'll use the existing Sync method. If it doesn't, we'll add a no-op Sync. -func AddSync(w io.Writer) WriteSyncer { - switch w := w.(type) { - case WriteSyncer: - return w - default: - return writerWrapper{w} - } -} - -type lockedWriteSyncer struct { - sync.Mutex - ws WriteSyncer -} - -// Lock wraps a WriteSyncer in a mutex to make it safe for concurrent use. In -// particular, *os.Files must be locked before use. -func Lock(ws WriteSyncer) WriteSyncer { - if _, ok := ws.(*lockedWriteSyncer); ok { - // no need to layer on another lock - return ws - } - return &lockedWriteSyncer{ws: ws} -} - -func (s *lockedWriteSyncer) Write(bs []byte) (int, error) { - s.Lock() - n, err := s.ws.Write(bs) - s.Unlock() - return n, err -} - -func (s *lockedWriteSyncer) Sync() error { - s.Lock() - err := s.ws.Sync() - s.Unlock() - return err -} - -type writerWrapper struct { - io.Writer -} - -func (w writerWrapper) Sync() error { - return nil -} - -type multiWriteSyncer []WriteSyncer - -// NewMultiWriteSyncer creates a WriteSyncer that duplicates its writes -// and sync calls, much like io.MultiWriter. -func NewMultiWriteSyncer(ws ...WriteSyncer) WriteSyncer { - if len(ws) == 1 { - return ws[0] - } - return multiWriteSyncer(ws) -} - -// See https://golang.org/src/io/multi.go -// When not all underlying syncers write the same number of bytes, -// the smallest number is returned even though Write() is called on -// all of them. -func (ws multiWriteSyncer) Write(p []byte) (int, error) { - var writeErr error - nWritten := 0 - for _, w := range ws { - n, err := w.Write(p) - writeErr = multierr.Append(writeErr, err) - if nWritten == 0 && n != 0 { - nWritten = n - } else if n < nWritten { - nWritten = n - } - } - return nWritten, writeErr -} - -func (ws multiWriteSyncer) Sync() error { - var err error - for _, w := range ws { - err = multierr.Append(err, w.Sync()) - } - return err -} diff --git a/vendor/golang.org/x/sync/LICENSE b/vendor/golang.org/x/sync/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/vendor/golang.org/x/sync/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -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. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -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. diff --git a/vendor/golang.org/x/sync/PATENTS b/vendor/golang.org/x/sync/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/sync/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sync/semaphore/semaphore.go b/vendor/golang.org/x/sync/semaphore/semaphore.go deleted file mode 100644 index b618162..0000000 --- a/vendor/golang.org/x/sync/semaphore/semaphore.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package semaphore provides a weighted semaphore implementation. -package semaphore // import "golang.org/x/sync/semaphore" - -import ( - "container/list" - "context" - "sync" -) - -type waiter struct { - n int64 - ready chan<- struct{} // Closed when semaphore acquired. -} - -// NewWeighted creates a new weighted semaphore with the given -// maximum combined weight for concurrent access. -func NewWeighted(n int64) *Weighted { - w := &Weighted{size: n} - return w -} - -// Weighted provides a way to bound concurrent access to a resource. -// The callers can request access with a given weight. -type Weighted struct { - size int64 - cur int64 - mu sync.Mutex - waiters list.List -} - -// Acquire acquires the semaphore with a weight of n, blocking until resources -// are available or ctx is done. On success, returns nil. On failure, returns -// ctx.Err() and leaves the semaphore unchanged. -func (s *Weighted) Acquire(ctx context.Context, n int64) error { - done := ctx.Done() - - s.mu.Lock() - select { - case <-done: - // ctx becoming done has "happened before" acquiring the semaphore, - // whether it became done before the call began or while we were - // waiting for the mutex. We prefer to fail even if we could acquire - // the mutex without blocking. - s.mu.Unlock() - return ctx.Err() - default: - } - if s.size-s.cur >= n && s.waiters.Len() == 0 { - // Since we hold s.mu and haven't synchronized since checking done, if - // ctx becomes done before we return here, it becoming done must have - // "happened concurrently" with this call - it cannot "happen before" - // we return in this branch. So, we're ok to always acquire here. - s.cur += n - s.mu.Unlock() - return nil - } - - if n > s.size { - // Don't make other Acquire calls block on one that's doomed to fail. - s.mu.Unlock() - <-done - return ctx.Err() - } - - ready := make(chan struct{}) - w := waiter{n: n, ready: ready} - elem := s.waiters.PushBack(w) - s.mu.Unlock() - - select { - case <-done: - s.mu.Lock() - select { - case <-ready: - // Acquired the semaphore after we were canceled. - // Pretend we didn't and put the tokens back. - s.cur -= n - s.notifyWaiters() - default: - isFront := s.waiters.Front() == elem - s.waiters.Remove(elem) - // If we're at the front and there're extra tokens left, notify other waiters. - if isFront && s.size > s.cur { - s.notifyWaiters() - } - } - s.mu.Unlock() - return ctx.Err() - - case <-ready: - // Acquired the semaphore. Check that ctx isn't already done. - // We check the done channel instead of calling ctx.Err because we - // already have the channel, and ctx.Err is O(n) with the nesting - // depth of ctx. - select { - case <-done: - s.Release(n) - return ctx.Err() - default: - } - return nil - } -} - -// TryAcquire acquires the semaphore with a weight of n without blocking. -// On success, returns true. On failure, returns false and leaves the semaphore unchanged. -func (s *Weighted) TryAcquire(n int64) bool { - s.mu.Lock() - success := s.size-s.cur >= n && s.waiters.Len() == 0 - if success { - s.cur += n - } - s.mu.Unlock() - return success -} - -// Release releases the semaphore with a weight of n. -func (s *Weighted) Release(n int64) { - s.mu.Lock() - s.cur -= n - if s.cur < 0 { - s.mu.Unlock() - panic("semaphore: released more than held") - } - s.notifyWaiters() - s.mu.Unlock() -} - -func (s *Weighted) notifyWaiters() { - for { - next := s.waiters.Front() - if next == nil { - break // No more waiters blocked. - } - - w := next.Value.(waiter) - if s.size-s.cur < w.n { - // Not enough tokens for the next waiter. We could keep going (to try to - // find a waiter with a smaller request), but under load that could cause - // starvation for large requests; instead, we leave all remaining waiters - // blocked. - // - // Consider a semaphore used as a read-write lock, with N tokens, N - // readers, and one writer. Each reader can Acquire(1) to obtain a read - // lock. The writer can Acquire(N) to obtain a write lock, excluding all - // of the readers. If we allow the readers to jump ahead in the queue, - // the writer will starve — there is always one token available for every - // reader. - break - } - - s.cur += w.n - s.waiters.Remove(next) - close(w.ready) - } -} diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/vendor/golang.org/x/sys/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -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. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -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. diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/sys/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. 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 269e173..0000000 --- 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. - -//go:build gc - -#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/asm_darwin_x86_gc.s b/vendor/golang.org/x/sys/cpu/asm_darwin_x86_gc.s deleted file mode 100644 index ec2acfe..0000000 --- a/vendor/golang.org/x/sys/cpu/asm_darwin_x86_gc.s +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2024 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:build darwin && amd64 && gc - -#include "textflag.h" - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_sysctlbyname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctlbyname(SB) -GLOBL ·libc_sysctlbyname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctlbyname_trampoline_addr(SB)/8, $libc_sysctlbyname_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/cpu/byteorder.go b/vendor/golang.org/x/sys/cpu/byteorder.go deleted file mode 100644 index 271055b..0000000 --- a/vendor/golang.org/x/sys/cpu/byteorder.go +++ /dev/null @@ -1,66 +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. - -package cpu - -import ( - "runtime" -) - -// byteOrder is a subset of encoding/binary.ByteOrder. -type byteOrder interface { - Uint32([]byte) uint32 - Uint64([]byte) uint64 -} - -type littleEndian struct{} -type bigEndian struct{} - -func (littleEndian) Uint32(b []byte) uint32 { - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -} - -func (littleEndian) Uint64(b []byte) uint64 { - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -} - -func (bigEndian) Uint32(b []byte) uint32 { - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24 -} - -func (bigEndian) Uint64(b []byte) uint64 { - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | - uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 -} - -// hostByteOrder returns littleEndian on little-endian machines and -// bigEndian on big-endian machines. -func hostByteOrder() byteOrder { - switch runtime.GOARCH { - case "386", "amd64", "amd64p32", - "alpha", - "arm", "arm64", - "loong64", - "mipsle", "mips64le", "mips64p32le", - "nios2", - "ppc64le", - "riscv", "riscv64", - "sh": - return littleEndian{} - case "armbe", "arm64be", - "m68k", - "mips", "mips64", "mips64p32", - "ppc", "ppc64", - "s390", "s390x", - "shbe", - "sparc", "sparc64": - return bigEndian{} - } - panic("unknown architecture") -} diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go deleted file mode 100644 index 6354199..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ /dev/null @@ -1,338 +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 cpu implements processor feature detection for -// various CPU architectures. -package cpu - -import ( - "os" - "strings" -) - -// Initialized reports whether the CPU features were initialized. -// -// For some GOOS/GOARCH combinations initialization of the CPU features depends -// on reading an operating specific file, e.g. /proc/self/auxv on linux/arm -// Initialized will report false if reading the file fails. -var Initialized bool - -// CacheLinePad is used to pad structs to avoid false sharing. -type CacheLinePad struct{ _ [cacheLineSize]byte } - -// X86 contains the supported CPU features of the -// current X86/AMD64 platform. If the current platform -// is not X86/AMD64 then all feature flags are false. -// -// X86 is padded to avoid false sharing. Further the HasAVX -// and HasAVX2 are only set if the OS supports XMM and YMM -// registers in addition to the CPUID feature bit being set. -var X86 struct { - _ CacheLinePad - HasAES bool // AES hardware implementation (AES NI) - HasADX bool // Multi-precision add-carry instruction extensions - HasAVX bool // Advanced vector extension - HasAVX2 bool // Advanced vector extension 2 - HasAVX512 bool // Advanced vector extension 512 - HasAVX512F bool // Advanced vector extension 512 Foundation Instructions - HasAVX512CD bool // Advanced vector extension 512 Conflict Detection Instructions - HasAVX512ER bool // Advanced vector extension 512 Exponential and Reciprocal Instructions - HasAVX512PF bool // Advanced vector extension 512 Prefetch Instructions - HasAVX512VL bool // Advanced vector extension 512 Vector Length Extensions - HasAVX512BW bool // Advanced vector extension 512 Byte and Word Instructions - HasAVX512DQ bool // Advanced vector extension 512 Doubleword and Quadword Instructions - HasAVX512IFMA bool // Advanced vector extension 512 Integer Fused Multiply Add - HasAVX512VBMI bool // Advanced vector extension 512 Vector Byte Manipulation Instructions - HasAVX5124VNNIW bool // Advanced vector extension 512 Vector Neural Network Instructions Word variable precision - HasAVX5124FMAPS bool // Advanced vector extension 512 Fused Multiply Accumulation Packed Single precision - HasAVX512VPOPCNTDQ bool // Advanced vector extension 512 Double and quad word population count instructions - HasAVX512VPCLMULQDQ bool // Advanced vector extension 512 Vector carry-less multiply operations - HasAVX512VNNI bool // Advanced vector extension 512 Vector Neural Network Instructions - HasAVX512GFNI bool // Advanced vector extension 512 Galois field New Instructions - HasAVX512VAES bool // Advanced vector extension 512 Vector AES instructions - HasAVX512VBMI2 bool // Advanced vector extension 512 Vector Byte Manipulation Instructions 2 - HasAVX512BITALG bool // Advanced vector extension 512 Bit Algorithms - HasAVX512BF16 bool // Advanced vector extension 512 BFloat16 Instructions - HasAMXTile bool // Advanced Matrix Extension Tile instructions - HasAMXInt8 bool // Advanced Matrix Extension Int8 instructions - HasAMXBF16 bool // Advanced Matrix Extension BFloat16 instructions - HasBMI1 bool // Bit manipulation instruction set 1 - HasBMI2 bool // Bit manipulation instruction set 2 - HasCX16 bool // Compare and exchange 16 Bytes - HasERMS bool // Enhanced REP for MOVSB and STOSB - HasFMA bool // Fused-multiply-add instructions - HasOSXSAVE bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers. - HasPCLMULQDQ bool // PCLMULQDQ instruction - most often used for AES-GCM - HasPOPCNT bool // Hamming weight instruction POPCNT. - HasRDRAND bool // RDRAND instruction (on-chip random number generator) - HasRDSEED bool // RDSEED instruction (on-chip random number generator) - HasSSE2 bool // Streaming SIMD extension 2 (always available on amd64) - HasSSE3 bool // Streaming SIMD extension 3 - HasSSSE3 bool // Supplemental streaming SIMD extension 3 - HasSSE41 bool // Streaming SIMD extension 4 and 4.1 - HasSSE42 bool // Streaming SIMD extension 4 and 4.2 - HasAVXIFMA bool // Advanced vector extension Integer Fused Multiply Add - HasAVXVNNI bool // Advanced vector extension Vector Neural Network Instructions - HasAVXVNNIInt8 bool // Advanced vector extension Vector Neural Network Int8 instructions - _ CacheLinePad -} - -// ARM64 contains the supported CPU features of the -// current ARMv8(aarch64) platform. If the current platform -// is not arm64 then all feature flags are false. -var ARM64 struct { - _ CacheLinePad - HasFP bool // Floating-point instruction set (always available) - HasASIMD bool // Advanced SIMD (always available) - HasEVTSTRM bool // Event stream support - HasAES bool // AES hardware implementation - HasPMULL bool // Polynomial multiplication instruction set - HasSHA1 bool // SHA1 hardware implementation - HasSHA2 bool // SHA2 hardware implementation - HasCRC32 bool // CRC32 hardware implementation - HasATOMICS bool // Atomic memory operation instruction set - HasFPHP bool // Half precision floating-point instruction set - HasASIMDHP bool // Advanced SIMD half precision instruction set - HasCPUID bool // CPUID identification scheme registers - HasASIMDRDM bool // Rounding double multiply add/subtract instruction set - HasJSCVT bool // Javascript conversion from floating-point to integer - HasFCMA bool // Floating-point multiplication and addition of complex numbers - HasLRCPC bool // Release Consistent processor consistent support - HasDCPOP bool // Persistent memory support - HasSHA3 bool // SHA3 hardware implementation - HasSM3 bool // SM3 hardware implementation - HasSM4 bool // SM4 hardware implementation - HasASIMDDP bool // Advanced SIMD double precision instruction set - HasSHA512 bool // SHA512 hardware implementation - HasSVE bool // Scalable Vector Extensions - HasSVE2 bool // Scalable Vector Extensions 2 - HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32 - HasDIT bool // Data Independent Timing support - HasI8MM bool // Advanced SIMD Int8 matrix multiplication instructions - _ CacheLinePad -} - -// ARM contains the supported CPU features of the current ARM (32-bit) platform. -// All feature flags are false if: -// 1. the current platform is not arm, or -// 2. the current operating system is not Linux. -var ARM struct { - _ CacheLinePad - HasSWP bool // SWP instruction support - HasHALF bool // Half-word load and store support - HasTHUMB bool // ARM Thumb instruction set - Has26BIT bool // Address space limited to 26-bits - HasFASTMUL bool // 32-bit operand, 64-bit result multiplication support - HasFPA bool // Floating point arithmetic support - HasVFP bool // Vector floating point support - HasEDSP bool // DSP Extensions support - HasJAVA bool // Java instruction set - HasIWMMXT bool // Intel Wireless MMX technology support - HasCRUNCH bool // MaverickCrunch context switching and handling - HasTHUMBEE bool // Thumb EE instruction set - HasNEON bool // NEON instruction set - HasVFPv3 bool // Vector floating point version 3 support - HasVFPv3D16 bool // Vector floating point version 3 D8-D15 - HasTLS bool // Thread local storage support - HasVFPv4 bool // Vector floating point version 4 support - HasIDIVA bool // Integer divide instruction support in ARM mode - HasIDIVT bool // Integer divide instruction support in Thumb mode - HasVFPD32 bool // Vector floating point version 3 D15-D31 - HasLPAE bool // Large Physical Address Extensions - HasEVTSTRM bool // Event stream support - HasAES bool // AES hardware implementation - HasPMULL bool // Polynomial multiplication instruction set - HasSHA1 bool // SHA1 hardware implementation - HasSHA2 bool // SHA2 hardware implementation - HasCRC32 bool // CRC32 hardware implementation - _ CacheLinePad -} - -// The booleans in Loong64 contain the correspondingly named cpu feature bit. -// The struct is padded to avoid false sharing. -var Loong64 struct { - _ CacheLinePad - HasLSX bool // support 128-bit vector extension - HasLASX bool // support 256-bit vector extension - HasCRC32 bool // support CRC instruction - HasLAM_BH bool // support AM{SWAP/ADD}[_DB].{B/H} instruction - HasLAMCAS bool // support AMCAS[_DB].{B/H/W/D} instruction - _ CacheLinePad -} - -// MIPS64X contains the supported CPU features of the current mips64/mips64le -// platforms. If the current platform is not mips64/mips64le or the current -// operating system is not Linux then all feature flags are false. -var MIPS64X struct { - _ CacheLinePad - HasMSA bool // MIPS SIMD architecture - _ CacheLinePad -} - -// PPC64 contains the supported CPU features of the current ppc64/ppc64le platforms. -// If the current platform is not ppc64/ppc64le then all feature flags are false. -// -// For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00, -// since there are no optional categories. There are some exceptions that also -// require kernel support to work (DARN, SCV), so there are feature bits for -// those as well. The struct is padded to avoid false sharing. -var PPC64 struct { - _ CacheLinePad - HasDARN bool // Hardware random number generator (requires kernel enablement) - HasSCV bool // Syscall vectored (requires kernel enablement) - IsPOWER8 bool // ISA v2.07 (POWER8) - IsPOWER9 bool // ISA v3.00 (POWER9), implies IsPOWER8 - _ CacheLinePad -} - -// S390X contains the supported CPU features of the current IBM Z -// (s390x) platform. If the current platform is not IBM Z then all -// feature flags are false. -// -// S390X is padded to avoid false sharing. Further HasVX is only set -// if the OS supports vector registers in addition to the STFLE -// feature bit being set. -var S390X struct { - _ CacheLinePad - HasZARCH bool // z/Architecture mode is active [mandatory] - HasSTFLE bool // store facility list extended - HasLDISP bool // long (20-bit) displacements - HasEIMM bool // 32-bit immediates - HasDFP bool // decimal floating point - HasETF3EH bool // ETF-3 enhanced - HasMSA bool // message security assist (CPACF) - HasAES bool // KM-AES{128,192,256} functions - HasAESCBC bool // KMC-AES{128,192,256} functions - HasAESCTR bool // KMCTR-AES{128,192,256} functions - HasAESGCM bool // KMA-GCM-AES{128,192,256} functions - HasGHASH bool // KIMD-GHASH function - HasSHA1 bool // K{I,L}MD-SHA-1 functions - HasSHA256 bool // K{I,L}MD-SHA-256 functions - HasSHA512 bool // K{I,L}MD-SHA-512 functions - HasSHA3 bool // K{I,L}MD-SHA3-{224,256,384,512} and K{I,L}MD-SHAKE-{128,256} functions - HasVX bool // vector facility - HasVXE bool // vector-enhancements facility 1 - _ CacheLinePad -} - -// RISCV64 contains the supported CPU features and performance characteristics for riscv64 -// platforms. The booleans in RISCV64, with the exception of HasFastMisaligned, indicate -// the presence of RISC-V extensions. -// -// It is safe to assume that all the RV64G extensions are supported and so they are omitted from -// this structure. As riscv64 Go programs require at least RV64G, the code that populates -// this structure cannot run successfully if some of the RV64G extensions are missing. -// The struct is padded to avoid false sharing. -var RISCV64 struct { - _ CacheLinePad - HasFastMisaligned bool // Fast misaligned accesses - HasC bool // Compressed instruction-set extension - HasV bool // Vector extension compatible with RVV 1.0 - HasZba bool // Address generation instructions extension - HasZbb bool // Basic bit-manipulation extension - HasZbs bool // Single-bit instructions extension - HasZvbb bool // Vector Basic Bit-manipulation - HasZvbc bool // Vector Carryless Multiplication - HasZvkb bool // Vector Cryptography Bit-manipulation - HasZvkt bool // Vector Data-Independent Execution Latency - HasZvkg bool // Vector GCM/GMAC - HasZvkn bool // NIST Algorithm Suite (AES/SHA256/SHA512) - HasZvknc bool // NIST Algorithm Suite with carryless multiply - HasZvkng bool // NIST Algorithm Suite with GCM - HasZvks bool // ShangMi Algorithm Suite - HasZvksc bool // ShangMi Algorithm Suite with carryless multiplication - HasZvksg bool // ShangMi Algorithm Suite with GCM - _ CacheLinePad -} - -func init() { - archInit() - initOptions() - processOptions() -} - -// options contains the cpu debug options that can be used in GODEBUG. -// Options are arch dependent and are added by the arch specific initOptions functions. -// Features that are mandatory for the specific GOARCH should have the Required field set -// (e.g. SSE2 on amd64). -var options []option - -// Option names should be lower case. e.g. avx instead of AVX. -type option struct { - Name string - Feature *bool - Specified bool // whether feature value was specified in GODEBUG - Enable bool // whether feature should be enabled - Required bool // whether feature is mandatory and can not be disabled -} - -func processOptions() { - env := os.Getenv("GODEBUG") -field: - for env != "" { - field := "" - i := strings.IndexByte(env, ',') - if i < 0 { - field, env = env, "" - } else { - field, env = env[:i], env[i+1:] - } - if len(field) < 4 || field[:4] != "cpu." { - continue - } - i = strings.IndexByte(field, '=') - if i < 0 { - print("GODEBUG sys/cpu: no value specified for \"", field, "\"\n") - continue - } - key, value := field[4:i], field[i+1:] // e.g. "SSE2", "on" - - var enable bool - switch value { - case "on": - enable = true - case "off": - enable = false - default: - print("GODEBUG sys/cpu: value \"", value, "\" not supported for cpu option \"", key, "\"\n") - continue field - } - - if key == "all" { - for i := range options { - options[i].Specified = true - options[i].Enable = enable || options[i].Required - } - continue field - } - - for i := range options { - if options[i].Name == key { - options[i].Specified = true - options[i].Enable = enable - continue field - } - } - - print("GODEBUG sys/cpu: unknown cpu feature \"", key, "\"\n") - } - - for _, o := range options { - if !o.Specified { - continue - } - - if o.Enable && !*o.Feature { - print("GODEBUG sys/cpu: can not enable \"", o.Name, "\", missing CPU support\n") - continue - } - - if !o.Enable && o.Required { - print("GODEBUG sys/cpu: can not disable \"", o.Name, "\", required CPU feature\n") - continue - } - - *o.Feature = o.Enable - } -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_aix.go b/vendor/golang.org/x/sys/cpu/cpu_aix.go deleted file mode 100644 index 9bf0c32..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_aix.go +++ /dev/null @@ -1,33 +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. - -//go:build aix - -package cpu - -const ( - // getsystemcfg constants - _SC_IMPL = 2 - _IMPL_POWER8 = 0x10000 - _IMPL_POWER9 = 0x20000 -) - -func archInit() { - impl := getsystemcfg(_SC_IMPL) - if impl&_IMPL_POWER8 != 0 { - PPC64.IsPOWER8 = true - } - if impl&_IMPL_POWER9 != 0 { - PPC64.IsPOWER8 = true - 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_arm.go b/vendor/golang.org/x/sys/cpu/cpu_arm.go deleted file mode 100644 index 301b752..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_arm.go +++ /dev/null @@ -1,73 +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 cpu - -const cacheLineSize = 32 - -// HWCAP/HWCAP2 bits. -// These are specific to Linux. -const ( - hwcap_SWP = 1 << 0 - hwcap_HALF = 1 << 1 - hwcap_THUMB = 1 << 2 - hwcap_26BIT = 1 << 3 - hwcap_FAST_MULT = 1 << 4 - hwcap_FPA = 1 << 5 - hwcap_VFP = 1 << 6 - hwcap_EDSP = 1 << 7 - hwcap_JAVA = 1 << 8 - hwcap_IWMMXT = 1 << 9 - hwcap_CRUNCH = 1 << 10 - hwcap_THUMBEE = 1 << 11 - hwcap_NEON = 1 << 12 - hwcap_VFPv3 = 1 << 13 - hwcap_VFPv3D16 = 1 << 14 - hwcap_TLS = 1 << 15 - hwcap_VFPv4 = 1 << 16 - hwcap_IDIVA = 1 << 17 - hwcap_IDIVT = 1 << 18 - hwcap_VFPD32 = 1 << 19 - hwcap_LPAE = 1 << 20 - hwcap_EVTSTRM = 1 << 21 - - hwcap2_AES = 1 << 0 - hwcap2_PMULL = 1 << 1 - hwcap2_SHA1 = 1 << 2 - hwcap2_SHA2 = 1 << 3 - hwcap2_CRC32 = 1 << 4 -) - -func initOptions() { - options = []option{ - {Name: "pmull", Feature: &ARM.HasPMULL}, - {Name: "sha1", Feature: &ARM.HasSHA1}, - {Name: "sha2", Feature: &ARM.HasSHA2}, - {Name: "swp", Feature: &ARM.HasSWP}, - {Name: "thumb", Feature: &ARM.HasTHUMB}, - {Name: "thumbee", Feature: &ARM.HasTHUMBEE}, - {Name: "tls", Feature: &ARM.HasTLS}, - {Name: "vfp", Feature: &ARM.HasVFP}, - {Name: "vfpd32", Feature: &ARM.HasVFPD32}, - {Name: "vfpv3", Feature: &ARM.HasVFPv3}, - {Name: "vfpv3d16", Feature: &ARM.HasVFPv3D16}, - {Name: "vfpv4", Feature: &ARM.HasVFPv4}, - {Name: "half", Feature: &ARM.HasHALF}, - {Name: "26bit", Feature: &ARM.Has26BIT}, - {Name: "fastmul", Feature: &ARM.HasFASTMUL}, - {Name: "fpa", Feature: &ARM.HasFPA}, - {Name: "edsp", Feature: &ARM.HasEDSP}, - {Name: "java", Feature: &ARM.HasJAVA}, - {Name: "iwmmxt", Feature: &ARM.HasIWMMXT}, - {Name: "crunch", Feature: &ARM.HasCRUNCH}, - {Name: "neon", Feature: &ARM.HasNEON}, - {Name: "idivt", Feature: &ARM.HasIDIVT}, - {Name: "idiva", Feature: &ARM.HasIDIVA}, - {Name: "lpae", Feature: &ARM.HasLPAE}, - {Name: "evtstrm", Feature: &ARM.HasEVTSTRM}, - {Name: "aes", Feature: &ARM.HasAES}, - {Name: "crc32", Feature: &ARM.HasCRC32}, - } - -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go deleted file mode 100644 index af2aa99..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go +++ /dev/null @@ -1,194 +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. - -package cpu - -import "runtime" - -// cacheLineSize is used to prevent false sharing of cache lines. -// We choose 128 because Apple Silicon, a.k.a. M1, has 128-byte cache line size. -// It doesn't cost much and is much more future-proof. -const cacheLineSize = 128 - -func initOptions() { - options = []option{ - {Name: "fp", Feature: &ARM64.HasFP}, - {Name: "asimd", Feature: &ARM64.HasASIMD}, - {Name: "evstrm", Feature: &ARM64.HasEVTSTRM}, - {Name: "aes", Feature: &ARM64.HasAES}, - {Name: "fphp", Feature: &ARM64.HasFPHP}, - {Name: "jscvt", Feature: &ARM64.HasJSCVT}, - {Name: "lrcpc", Feature: &ARM64.HasLRCPC}, - {Name: "pmull", Feature: &ARM64.HasPMULL}, - {Name: "sha1", Feature: &ARM64.HasSHA1}, - {Name: "sha2", Feature: &ARM64.HasSHA2}, - {Name: "sha3", Feature: &ARM64.HasSHA3}, - {Name: "sha512", Feature: &ARM64.HasSHA512}, - {Name: "sm3", Feature: &ARM64.HasSM3}, - {Name: "sm4", Feature: &ARM64.HasSM4}, - {Name: "sve", Feature: &ARM64.HasSVE}, - {Name: "sve2", Feature: &ARM64.HasSVE2}, - {Name: "crc32", Feature: &ARM64.HasCRC32}, - {Name: "atomics", Feature: &ARM64.HasATOMICS}, - {Name: "asimdhp", Feature: &ARM64.HasASIMDHP}, - {Name: "cpuid", Feature: &ARM64.HasCPUID}, - {Name: "asimrdm", Feature: &ARM64.HasASIMDRDM}, - {Name: "fcma", Feature: &ARM64.HasFCMA}, - {Name: "dcpop", Feature: &ARM64.HasDCPOP}, - {Name: "asimddp", Feature: &ARM64.HasASIMDDP}, - {Name: "asimdfhm", Feature: &ARM64.HasASIMDFHM}, - {Name: "dit", Feature: &ARM64.HasDIT}, - {Name: "i8mm", Feature: &ARM64.HasI8MM}, - } -} - -func archInit() { - switch runtime.GOOS { - case "freebsd": - readARM64Registers() - case "linux", "netbsd", "openbsd": - doinit() - default: - // Many platforms don't seem to allow reading these registers. - setMinimalFeatures() - } -} - -// setMinimalFeatures fakes the minimal ARM64 features expected by -// TestARM64minimalFeatures. -func setMinimalFeatures() { - ARM64.HasASIMD = true - ARM64.HasFP = true -} - -func readARM64Registers() { - Initialized = true - - parseARM64SystemRegisters(getisar0(), getisar1(), getpfr0()) -} - -func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { - // ID_AA64ISAR0_EL1 - switch extractBits(isar0, 4, 7) { - case 1: - ARM64.HasAES = true - case 2: - ARM64.HasAES = true - ARM64.HasPMULL = true - } - - switch extractBits(isar0, 8, 11) { - case 1: - ARM64.HasSHA1 = true - } - - switch extractBits(isar0, 12, 15) { - case 1: - ARM64.HasSHA2 = true - case 2: - ARM64.HasSHA2 = true - ARM64.HasSHA512 = true - } - - switch extractBits(isar0, 16, 19) { - case 1: - ARM64.HasCRC32 = true - } - - switch extractBits(isar0, 20, 23) { - case 2: - ARM64.HasATOMICS = true - } - - switch extractBits(isar0, 28, 31) { - case 1: - ARM64.HasASIMDRDM = true - } - - switch extractBits(isar0, 32, 35) { - case 1: - ARM64.HasSHA3 = true - } - - switch extractBits(isar0, 36, 39) { - case 1: - ARM64.HasSM3 = true - } - - switch extractBits(isar0, 40, 43) { - case 1: - ARM64.HasSM4 = true - } - - switch extractBits(isar0, 44, 47) { - case 1: - ARM64.HasASIMDDP = true - } - - // ID_AA64ISAR1_EL1 - switch extractBits(isar1, 0, 3) { - case 1: - ARM64.HasDCPOP = true - } - - switch extractBits(isar1, 12, 15) { - case 1: - ARM64.HasJSCVT = true - } - - switch extractBits(isar1, 16, 19) { - case 1: - ARM64.HasFCMA = true - } - - switch extractBits(isar1, 20, 23) { - case 1: - ARM64.HasLRCPC = true - } - - switch extractBits(isar1, 52, 55) { - case 1: - ARM64.HasI8MM = true - } - - // ID_AA64PFR0_EL1 - switch extractBits(pfr0, 16, 19) { - case 0: - ARM64.HasFP = true - case 1: - ARM64.HasFP = true - ARM64.HasFPHP = true - } - - switch extractBits(pfr0, 20, 23) { - case 0: - ARM64.HasASIMD = true - case 1: - ARM64.HasASIMD = true - ARM64.HasASIMDHP = true - } - - switch extractBits(pfr0, 32, 35) { - case 1: - ARM64.HasSVE = true - - parseARM64SVERegister(getzfr0()) - } - - switch extractBits(pfr0, 48, 51) { - case 1: - ARM64.HasDIT = true - } -} - -func parseARM64SVERegister(zfr0 uint64) { - switch extractBits(zfr0, 0, 3) { - case 1: - ARM64.HasSVE2 = true - } -} - -func extractBits(data uint64, start, end uint) uint { - return (uint)(data>>start) & ((1 << (end - start + 1)) - 1) -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_arm64.s deleted file mode 100644 index 22cc998..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.s +++ /dev/null @@ -1,39 +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. - -//go:build gc - -#include "textflag.h" - -// func getisar0() uint64 -TEXT ·getisar0(SB),NOSPLIT,$0-8 - // get Instruction Set Attributes 0 into x0 - // mrs x0, ID_AA64ISAR0_EL1 = d5380600 - WORD $0xd5380600 - MOVD R0, ret+0(FP) - RET - -// func getisar1() uint64 -TEXT ·getisar1(SB),NOSPLIT,$0-8 - // get Instruction Set Attributes 1 into x0 - // mrs x0, ID_AA64ISAR1_EL1 = d5380620 - WORD $0xd5380620 - MOVD R0, ret+0(FP) - RET - -// func getpfr0() uint64 -TEXT ·getpfr0(SB),NOSPLIT,$0-8 - // get Processor Feature Register 0 into x0 - // mrs x0, ID_AA64PFR0_EL1 = d5380400 - WORD $0xd5380400 - MOVD R0, ret+0(FP) - RET - -// func getzfr0() uint64 -TEXT ·getzfr0(SB),NOSPLIT,$0-8 - // get SVE Feature Register 0 into x0 - // mrs x0, ID_AA64ZFR0_EL1 = d5380480 - WORD $0xd5380480 - MOVD R0, ret+0(FP) - RET diff --git a/vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go b/vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go deleted file mode 100644 index b838cb9..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2024 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:build darwin && amd64 && gc - -package cpu - -// darwinSupportsAVX512 checks Darwin kernel for AVX512 support via sysctl -// call (see issue 43089). It also restricts AVX512 support for Darwin to -// kernel version 21.3.0 (MacOS 12.2.0) or later (see issue 49233). -// -// Background: -// Darwin implements a special mechanism to economize on thread state when -// AVX512 specific registers are not in use. This scheme minimizes state when -// preempting threads that haven't yet used any AVX512 instructions, but adds -// special requirements to check for AVX512 hardware support at runtime (e.g. -// via sysctl call or commpage inspection). See issue 43089 and link below for -// full background: -// https://github.com/apple-oss-distributions/xnu/blob/xnu-11215.1.10/osfmk/i386/fpu.c#L214-L240 -// -// Additionally, all versions of the Darwin kernel from 19.6.0 through 21.2.0 -// (corresponding to MacOS 10.15.6 - 12.1) have a bug that can cause corruption -// of the AVX512 mask registers (K0-K7) upon signal return. For this reason -// AVX512 is considered unsafe to use on Darwin for kernel versions prior to -// 21.3.0, where a fix has been confirmed. See issue 49233 for full background. -func darwinSupportsAVX512() bool { - return darwinSysctlEnabled([]byte("hw.optional.avx512f\x00")) && darwinKernelVersionCheck(21, 3, 0) -} - -// Ensure Darwin kernel version is at least major.minor.patch, avoiding dependencies -func darwinKernelVersionCheck(major, minor, patch int) bool { - var release [256]byte - err := darwinOSRelease(&release) - if err != nil { - return false - } - - var mmp [3]int - c := 0 -Loop: - for _, b := range release[:] { - switch { - case b >= '0' && b <= '9': - mmp[c] = 10*mmp[c] + int(b-'0') - case b == '.': - c++ - if c > 2 { - return false - } - case b == 0: - break Loop - default: - return false - } - } - if c != 2 { - return false - } - return mmp[0] > major || mmp[0] == major && (mmp[1] > minor || mmp[1] == minor && mmp[2] >= patch) -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go deleted file mode 100644 index 6ac6e1e..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +++ /dev/null @@ -1,12 +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. - -//go:build gc - -package cpu - -func getisar0() uint64 -func getisar1() uint64 -func getpfr0() uint64 -func getzfr0() uint64 diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go deleted file mode 100644 index c8ae6dd..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go +++ /dev/null @@ -1,21 +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. - -//go:build gc - -package cpu - -// haveAsmFunctions reports whether the other functions in this file can -// be safely called. -func haveAsmFunctions() bool { return true } - -// The following feature detection functions are defined in cpu_s390x.s. -// They are likely to be expensive to call so the results should be cached. -func stfle() facilityList -func kmQuery() queryResult -func kmcQuery() queryResult -func kmctrQuery() queryResult -func kmaQuery() queryResult -func kimdQuery() queryResult -func klmdQuery() queryResult diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go deleted file mode 100644 index 32a4451..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go +++ /dev/null @@ -1,15 +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. - -//go:build (386 || amd64 || amd64p32) && gc - -package cpu - -// cpuid is implemented in cpu_gc_x86.s for gc compiler -// and in cpu_gccgo.c for gccgo. -func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) - -// xgetbv with ecx = 0 is implemented in cpu_gc_x86.s for gc compiler -// and in cpu_gccgo.c for gccgo. -func xgetbv() (eax, edx uint32) diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.s b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.s deleted file mode 100644 index ce208ce..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.s +++ /dev/null @@ -1,26 +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. - -//go:build (386 || amd64 || amd64p32) && gc - -#include "textflag.h" - -// func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) -TEXT ·cpuid(SB), NOSPLIT, $0-24 - MOVL eaxArg+0(FP), AX - MOVL ecxArg+4(FP), CX - CPUID - MOVL AX, eax+8(FP) - MOVL BX, ebx+12(FP) - MOVL CX, ecx+16(FP) - MOVL DX, edx+20(FP) - RET - -// func xgetbv() (eax, edx uint32) -TEXT ·xgetbv(SB), NOSPLIT, $0-8 - MOVL $0, CX - XGETBV - MOVL AX, eax+0(FP) - MOVL DX, edx+4(FP) - RET diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go deleted file mode 100644 index 7f19467..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go +++ /dev/null @@ -1,11 +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. - -//go:build gccgo - -package cpu - -func getisar0() uint64 { return 0 } -func getisar1() uint64 { return 0 } -func getpfr0() uint64 { return 0 } diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go deleted file mode 100644 index 9526d2c..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go +++ /dev/null @@ -1,22 +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. - -//go:build gccgo - -package cpu - -// haveAsmFunctions reports whether the other functions in this file can -// be safely called. -func haveAsmFunctions() bool { return false } - -// TODO(mundaym): the following feature detection functions are currently -// stubs. See https://golang.org/cl/162887 for how to fix this. -// They are likely to be expensive to call so the results should be cached. -func stfle() facilityList { panic("not implemented for gccgo") } -func kmQuery() queryResult { panic("not implemented for gccgo") } -func kmcQuery() queryResult { panic("not implemented for gccgo") } -func kmctrQuery() queryResult { panic("not implemented for gccgo") } -func kmaQuery() queryResult { panic("not implemented for gccgo") } -func kimdQuery() queryResult { panic("not implemented for gccgo") } -func klmdQuery() queryResult { panic("not implemented for gccgo") } diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c deleted file mode 100644 index 3f73a05..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c +++ /dev/null @@ -1,37 +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. - -//go:build (386 || amd64 || amd64p32) && gccgo - -#include -#include -#include - -// Need to wrap __get_cpuid_count because it's declared as static. -int -gccgoGetCpuidCount(uint32_t leaf, uint32_t subleaf, - uint32_t *eax, uint32_t *ebx, - uint32_t *ecx, uint32_t *edx) -{ - return __get_cpuid_count(leaf, subleaf, eax, ebx, ecx, edx); -} - -#pragma GCC diagnostic ignored "-Wunknown-pragmas" -#pragma GCC push_options -#pragma GCC target("xsave") -#pragma clang attribute push (__attribute__((target("xsave"))), apply_to=function) - -// xgetbv reads the contents of an XCR (Extended Control Register) -// specified in the ECX register into registers EDX:EAX. -// Currently, the only supported value for XCR is 0. -void -gccgoXgetbv(uint32_t *eax, uint32_t *edx) -{ - uint64_t v = _xgetbv(0); - *eax = v & 0xffffffff; - *edx = v >> 32; -} - -#pragma clang attribute pop -#pragma GCC pop_options diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go deleted file mode 100644 index 170d21d..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go +++ /dev/null @@ -1,25 +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. - -//go:build (386 || amd64 || amd64p32) && gccgo - -package cpu - -//extern gccgoGetCpuidCount -func gccgoGetCpuidCount(eaxArg, ecxArg uint32, eax, ebx, ecx, edx *uint32) - -func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) { - var a, b, c, d uint32 - gccgoGetCpuidCount(eaxArg, ecxArg, &a, &b, &c, &d) - return a, b, c, d -} - -//extern gccgoXgetbv -func gccgoXgetbv(eax, edx *uint32) - -func xgetbv() (eax, edx uint32) { - var a, d uint32 - gccgoXgetbv(&a, &d) - return a, d -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux.go b/vendor/golang.org/x/sys/cpu/cpu_linux.go deleted file mode 100644 index 743eb54..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux.go +++ /dev/null @@ -1,15 +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. - -//go:build !386 && !amd64 && !amd64p32 && !arm64 - -package cpu - -func archInit() { - if err := readHWCAP(); err != nil { - return - } - doinit() - Initialized = true -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm.go deleted file mode 100644 index 2057006..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_arm.go +++ /dev/null @@ -1,39 +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. - -package cpu - -func doinit() { - ARM.HasSWP = isSet(hwCap, hwcap_SWP) - ARM.HasHALF = isSet(hwCap, hwcap_HALF) - ARM.HasTHUMB = isSet(hwCap, hwcap_THUMB) - ARM.Has26BIT = isSet(hwCap, hwcap_26BIT) - ARM.HasFASTMUL = isSet(hwCap, hwcap_FAST_MULT) - ARM.HasFPA = isSet(hwCap, hwcap_FPA) - ARM.HasVFP = isSet(hwCap, hwcap_VFP) - ARM.HasEDSP = isSet(hwCap, hwcap_EDSP) - ARM.HasJAVA = isSet(hwCap, hwcap_JAVA) - ARM.HasIWMMXT = isSet(hwCap, hwcap_IWMMXT) - ARM.HasCRUNCH = isSet(hwCap, hwcap_CRUNCH) - ARM.HasTHUMBEE = isSet(hwCap, hwcap_THUMBEE) - ARM.HasNEON = isSet(hwCap, hwcap_NEON) - ARM.HasVFPv3 = isSet(hwCap, hwcap_VFPv3) - ARM.HasVFPv3D16 = isSet(hwCap, hwcap_VFPv3D16) - ARM.HasTLS = isSet(hwCap, hwcap_TLS) - ARM.HasVFPv4 = isSet(hwCap, hwcap_VFPv4) - ARM.HasIDIVA = isSet(hwCap, hwcap_IDIVA) - ARM.HasIDIVT = isSet(hwCap, hwcap_IDIVT) - ARM.HasVFPD32 = isSet(hwCap, hwcap_VFPD32) - ARM.HasLPAE = isSet(hwCap, hwcap_LPAE) - ARM.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM) - ARM.HasAES = isSet(hwCap2, hwcap2_AES) - ARM.HasPMULL = isSet(hwCap2, hwcap2_PMULL) - ARM.HasSHA1 = isSet(hwCap2, hwcap2_SHA1) - ARM.HasSHA2 = isSet(hwCap2, hwcap2_SHA2) - ARM.HasCRC32 = isSet(hwCap2, hwcap2_CRC32) -} - -func isSet(hwc uint, value uint) bool { - return hwc&value != 0 -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go deleted file mode 100644 index f1caf0f..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go +++ /dev/null @@ -1,120 +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 cpu - -import ( - "strings" - "syscall" -) - -// HWCAP/HWCAP2 bits. These are exposed by Linux. -const ( - hwcap_FP = 1 << 0 - hwcap_ASIMD = 1 << 1 - hwcap_EVTSTRM = 1 << 2 - hwcap_AES = 1 << 3 - hwcap_PMULL = 1 << 4 - hwcap_SHA1 = 1 << 5 - hwcap_SHA2 = 1 << 6 - hwcap_CRC32 = 1 << 7 - hwcap_ATOMICS = 1 << 8 - hwcap_FPHP = 1 << 9 - hwcap_ASIMDHP = 1 << 10 - hwcap_CPUID = 1 << 11 - hwcap_ASIMDRDM = 1 << 12 - hwcap_JSCVT = 1 << 13 - hwcap_FCMA = 1 << 14 - hwcap_LRCPC = 1 << 15 - hwcap_DCPOP = 1 << 16 - hwcap_SHA3 = 1 << 17 - hwcap_SM3 = 1 << 18 - hwcap_SM4 = 1 << 19 - hwcap_ASIMDDP = 1 << 20 - hwcap_SHA512 = 1 << 21 - hwcap_SVE = 1 << 22 - hwcap_ASIMDFHM = 1 << 23 - hwcap_DIT = 1 << 24 - - hwcap2_SVE2 = 1 << 1 - hwcap2_I8MM = 1 << 13 -) - -// linuxKernelCanEmulateCPUID reports whether we're running -// on Linux 4.11+. Ideally we'd like to ask the question about -// whether the current kernel contains -// https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=77c97b4ee21290f5f083173d957843b615abbff2 -// but the version number will have to do. -func linuxKernelCanEmulateCPUID() bool { - var un syscall.Utsname - syscall.Uname(&un) - var sb strings.Builder - for _, b := range un.Release[:] { - if b == 0 { - break - } - sb.WriteByte(byte(b)) - } - major, minor, _, ok := parseRelease(sb.String()) - return ok && (major > 4 || major == 4 && minor >= 11) -} - -func doinit() { - if err := readHWCAP(); err != nil { - // We failed to read /proc/self/auxv. This can happen if the binary has - // been given extra capabilities(7) with /bin/setcap. - // - // When this happens, we have two options. If the Linux kernel is new - // enough (4.11+), we can read the arm64 registers directly which'll - // trap into the kernel and then return back to userspace. - // - // But on older kernels, such as Linux 4.4.180 as used on many Synology - // devices, calling readARM64Registers (specifically getisar0) will - // cause a SIGILL and we'll die. So for older kernels, parse /proc/cpuinfo - // instead. - // - // See golang/go#57336. - if linuxKernelCanEmulateCPUID() { - readARM64Registers() - } else { - readLinuxProcCPUInfo() - } - return - } - - // HWCAP feature bits - ARM64.HasFP = isSet(hwCap, hwcap_FP) - ARM64.HasASIMD = isSet(hwCap, hwcap_ASIMD) - ARM64.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM) - ARM64.HasAES = isSet(hwCap, hwcap_AES) - ARM64.HasPMULL = isSet(hwCap, hwcap_PMULL) - ARM64.HasSHA1 = isSet(hwCap, hwcap_SHA1) - ARM64.HasSHA2 = isSet(hwCap, hwcap_SHA2) - ARM64.HasCRC32 = isSet(hwCap, hwcap_CRC32) - ARM64.HasATOMICS = isSet(hwCap, hwcap_ATOMICS) - ARM64.HasFPHP = isSet(hwCap, hwcap_FPHP) - ARM64.HasASIMDHP = isSet(hwCap, hwcap_ASIMDHP) - ARM64.HasCPUID = isSet(hwCap, hwcap_CPUID) - ARM64.HasASIMDRDM = isSet(hwCap, hwcap_ASIMDRDM) - ARM64.HasJSCVT = isSet(hwCap, hwcap_JSCVT) - ARM64.HasFCMA = isSet(hwCap, hwcap_FCMA) - ARM64.HasLRCPC = isSet(hwCap, hwcap_LRCPC) - ARM64.HasDCPOP = isSet(hwCap, hwcap_DCPOP) - ARM64.HasSHA3 = isSet(hwCap, hwcap_SHA3) - ARM64.HasSM3 = isSet(hwCap, hwcap_SM3) - ARM64.HasSM4 = isSet(hwCap, hwcap_SM4) - ARM64.HasASIMDDP = isSet(hwCap, hwcap_ASIMDDP) - ARM64.HasSHA512 = isSet(hwCap, hwcap_SHA512) - ARM64.HasSVE = isSet(hwCap, hwcap_SVE) - ARM64.HasASIMDFHM = isSet(hwCap, hwcap_ASIMDFHM) - ARM64.HasDIT = isSet(hwCap, hwcap_DIT) - - // HWCAP2 feature bits - ARM64.HasSVE2 = isSet(hwCap2, hwcap2_SVE2) - ARM64.HasI8MM = isSet(hwCap2, hwcap2_I8MM) -} - -func isSet(hwc uint, value uint) bool { - return hwc&value != 0 -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_loong64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_loong64.go deleted file mode 100644 index 4f34114..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_loong64.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2025 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 cpu - -// HWCAP bits. These are exposed by the Linux kernel. -const ( - hwcap_LOONGARCH_LSX = 1 << 4 - hwcap_LOONGARCH_LASX = 1 << 5 -) - -func doinit() { - // TODO: Features that require kernel support like LSX and LASX can - // be detected here once needed in std library or by the compiler. - Loong64.HasLSX = hwcIsSet(hwCap, hwcap_LOONGARCH_LSX) - Loong64.HasLASX = hwcIsSet(hwCap, hwcap_LOONGARCH_LASX) -} - -func hwcIsSet(hwc uint, val uint) bool { - return hwc&val != 0 -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go deleted file mode 100644 index 4686c1d..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2020 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:build linux && (mips64 || mips64le) - -package cpu - -// HWCAP bits. These are exposed by the Linux kernel 5.4. -const ( - // CPU features - hwcap_MIPS_MSA = 1 << 1 -) - -func doinit() { - // HWCAP feature bits - MIPS64X.HasMSA = isSet(hwCap, hwcap_MIPS_MSA) -} - -func isSet(hwc uint, value uint) bool { - return hwc&value != 0 -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go b/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go deleted file mode 100644 index a428dec..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go +++ /dev/null @@ -1,9 +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. - -//go:build linux && !arm && !arm64 && !loong64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x && !riscv64 - -package cpu - -func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go deleted file mode 100644 index 197188e..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go +++ /dev/null @@ -1,30 +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. - -//go:build linux && (ppc64 || ppc64le) - -package cpu - -// HWCAP/HWCAP2 bits. These are exposed by the kernel. -const ( - // ISA Level - _PPC_FEATURE2_ARCH_2_07 = 0x80000000 - _PPC_FEATURE2_ARCH_3_00 = 0x00800000 - - // CPU features - _PPC_FEATURE2_DARN = 0x00200000 - _PPC_FEATURE2_SCV = 0x00100000 -) - -func doinit() { - // HWCAP2 feature bits - PPC64.IsPOWER8 = isSet(hwCap2, _PPC_FEATURE2_ARCH_2_07) - PPC64.IsPOWER9 = isSet(hwCap2, _PPC_FEATURE2_ARCH_3_00) - PPC64.HasDARN = isSet(hwCap2, _PPC_FEATURE2_DARN) - PPC64.HasSCV = isSet(hwCap2, _PPC_FEATURE2_SCV) -} - -func isSet(hwc uint, value uint) bool { - return hwc&value != 0 -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go deleted file mode 100644 index ad74153..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2024 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 cpu - -import ( - "syscall" - "unsafe" -) - -// RISC-V extension discovery code for Linux. The approach here is to first try the riscv_hwprobe -// syscall falling back to HWCAP to check for the C extension if riscv_hwprobe is not available. -// -// A note on detection of the Vector extension using HWCAP. -// -// Support for the Vector extension version 1.0 was added to the Linux kernel in release 6.5. -// Support for the riscv_hwprobe syscall was added in 6.4. It follows that if the riscv_hwprobe -// syscall is not available then neither is the Vector extension (which needs kernel support). -// The riscv_hwprobe syscall should then be all we need to detect the Vector extension. -// However, some RISC-V board manufacturers ship boards with an older kernel on top of which -// they have back-ported various versions of the Vector extension patches but not the riscv_hwprobe -// patches. These kernels advertise support for the Vector extension using HWCAP. Falling -// back to HWCAP to detect the Vector extension, if riscv_hwprobe is not available, or simply not -// bothering with riscv_hwprobe at all and just using HWCAP may then seem like an attractive option. -// -// Unfortunately, simply checking the 'V' bit in AT_HWCAP will not work as this bit is used by -// RISC-V board and cloud instance providers to mean different things. The Lichee Pi 4A board -// and the Scaleway RV1 cloud instances use the 'V' bit to advertise their support for the unratified -// 0.7.1 version of the Vector Specification. The Banana Pi BPI-F3 and the CanMV-K230 board use -// it to advertise support for 1.0 of the Vector extension. Versions 0.7.1 and 1.0 of the Vector -// extension are binary incompatible. HWCAP can then not be used in isolation to populate the -// HasV field as this field indicates that the underlying CPU is compatible with RVV 1.0. -// -// There is a way at runtime to distinguish between versions 0.7.1 and 1.0 of the Vector -// specification by issuing a RVV 1.0 vsetvli instruction and checking the vill bit of the vtype -// register. This check would allow us to safely detect version 1.0 of the Vector extension -// with HWCAP, if riscv_hwprobe were not available. However, the check cannot -// be added until the assembler supports the Vector instructions. -// -// Note the riscv_hwprobe syscall does not suffer from these ambiguities by design as all of the -// extensions it advertises support for are explicitly versioned. It's also worth noting that -// the riscv_hwprobe syscall is the only way to detect multi-letter RISC-V extensions, e.g., Zba. -// These cannot be detected using HWCAP and so riscv_hwprobe must be used to detect the majority -// of RISC-V extensions. -// -// Please see https://docs.kernel.org/arch/riscv/hwprobe.html for more information. - -// golang.org/x/sys/cpu is not allowed to depend on golang.org/x/sys/unix so we must -// reproduce the constants, types and functions needed to make the riscv_hwprobe syscall -// here. - -const ( - // Copied from golang.org/x/sys/unix/ztypes_linux_riscv64.go. - riscv_HWPROBE_KEY_IMA_EXT_0 = 0x4 - riscv_HWPROBE_IMA_C = 0x2 - riscv_HWPROBE_IMA_V = 0x4 - riscv_HWPROBE_EXT_ZBA = 0x8 - riscv_HWPROBE_EXT_ZBB = 0x10 - riscv_HWPROBE_EXT_ZBS = 0x20 - riscv_HWPROBE_EXT_ZVBB = 0x20000 - riscv_HWPROBE_EXT_ZVBC = 0x40000 - riscv_HWPROBE_EXT_ZVKB = 0x80000 - riscv_HWPROBE_EXT_ZVKG = 0x100000 - riscv_HWPROBE_EXT_ZVKNED = 0x200000 - riscv_HWPROBE_EXT_ZVKNHB = 0x800000 - riscv_HWPROBE_EXT_ZVKSED = 0x1000000 - riscv_HWPROBE_EXT_ZVKSH = 0x2000000 - riscv_HWPROBE_EXT_ZVKT = 0x4000000 - riscv_HWPROBE_KEY_CPUPERF_0 = 0x5 - riscv_HWPROBE_MISALIGNED_FAST = 0x3 - riscv_HWPROBE_MISALIGNED_MASK = 0x7 -) - -const ( - // sys_RISCV_HWPROBE is copied from golang.org/x/sys/unix/zsysnum_linux_riscv64.go. - sys_RISCV_HWPROBE = 258 -) - -// riscvHWProbePairs is copied from golang.org/x/sys/unix/ztypes_linux_riscv64.go. -type riscvHWProbePairs struct { - key int64 - value uint64 -} - -const ( - // CPU features - hwcap_RISCV_ISA_C = 1 << ('C' - 'A') -) - -func doinit() { - // A slice of key/value pair structures is passed to the RISCVHWProbe syscall. The key - // field should be initialised with one of the key constants defined above, e.g., - // RISCV_HWPROBE_KEY_IMA_EXT_0. The syscall will set the value field to the appropriate value. - // If the kernel does not recognise a key it will set the key field to -1 and the value field to 0. - - pairs := []riscvHWProbePairs{ - {riscv_HWPROBE_KEY_IMA_EXT_0, 0}, - {riscv_HWPROBE_KEY_CPUPERF_0, 0}, - } - - // This call only indicates that extensions are supported if they are implemented on all cores. - if riscvHWProbe(pairs, 0) { - if pairs[0].key != -1 { - v := uint(pairs[0].value) - RISCV64.HasC = isSet(v, riscv_HWPROBE_IMA_C) - RISCV64.HasV = isSet(v, riscv_HWPROBE_IMA_V) - RISCV64.HasZba = isSet(v, riscv_HWPROBE_EXT_ZBA) - RISCV64.HasZbb = isSet(v, riscv_HWPROBE_EXT_ZBB) - RISCV64.HasZbs = isSet(v, riscv_HWPROBE_EXT_ZBS) - RISCV64.HasZvbb = isSet(v, riscv_HWPROBE_EXT_ZVBB) - RISCV64.HasZvbc = isSet(v, riscv_HWPROBE_EXT_ZVBC) - RISCV64.HasZvkb = isSet(v, riscv_HWPROBE_EXT_ZVKB) - RISCV64.HasZvkg = isSet(v, riscv_HWPROBE_EXT_ZVKG) - RISCV64.HasZvkt = isSet(v, riscv_HWPROBE_EXT_ZVKT) - // Cryptography shorthand extensions - RISCV64.HasZvkn = isSet(v, riscv_HWPROBE_EXT_ZVKNED) && - isSet(v, riscv_HWPROBE_EXT_ZVKNHB) && RISCV64.HasZvkb && RISCV64.HasZvkt - RISCV64.HasZvknc = RISCV64.HasZvkn && RISCV64.HasZvbc - RISCV64.HasZvkng = RISCV64.HasZvkn && RISCV64.HasZvkg - RISCV64.HasZvks = isSet(v, riscv_HWPROBE_EXT_ZVKSED) && - isSet(v, riscv_HWPROBE_EXT_ZVKSH) && RISCV64.HasZvkb && RISCV64.HasZvkt - RISCV64.HasZvksc = RISCV64.HasZvks && RISCV64.HasZvbc - RISCV64.HasZvksg = RISCV64.HasZvks && RISCV64.HasZvkg - } - if pairs[1].key != -1 { - v := pairs[1].value & riscv_HWPROBE_MISALIGNED_MASK - RISCV64.HasFastMisaligned = v == riscv_HWPROBE_MISALIGNED_FAST - } - } - - // Let's double check with HWCAP if the C extension does not appear to be supported. - // This may happen if we're running on a kernel older than 6.4. - - if !RISCV64.HasC { - RISCV64.HasC = isSet(hwCap, hwcap_RISCV_ISA_C) - } -} - -func isSet(hwc uint, value uint) bool { - return hwc&value != 0 -} - -// riscvHWProbe is a simplified version of the generated wrapper function found in -// golang.org/x/sys/unix/zsyscall_linux_riscv64.go. We simplify it by removing the -// cpuCount and cpus parameters which we do not need. We always want to pass 0 for -// these parameters here so the kernel only reports the extensions that are present -// on all cores. -func riscvHWProbe(pairs []riscvHWProbePairs, flags uint) bool { - var _zero uintptr - var p0 unsafe.Pointer - if len(pairs) > 0 { - p0 = unsafe.Pointer(&pairs[0]) - } else { - p0 = unsafe.Pointer(&_zero) - } - - _, _, e1 := syscall.Syscall6(sys_RISCV_HWPROBE, uintptr(p0), uintptr(len(pairs)), uintptr(0), uintptr(0), uintptr(flags), 0) - return e1 == 0 -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go deleted file mode 100644 index 1517ac6..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go +++ /dev/null @@ -1,40 +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. - -package cpu - -const ( - // bit mask values from /usr/include/bits/hwcap.h - hwcap_ZARCH = 2 - hwcap_STFLE = 4 - hwcap_MSA = 8 - hwcap_LDISP = 16 - hwcap_EIMM = 32 - hwcap_DFP = 64 - hwcap_ETF3EH = 256 - hwcap_VX = 2048 - hwcap_VXE = 8192 -) - -func initS390Xbase() { - // test HWCAP bit vector - has := func(featureMask uint) bool { - return hwCap&featureMask == featureMask - } - - // mandatory - S390X.HasZARCH = has(hwcap_ZARCH) - - // optional - S390X.HasSTFLE = has(hwcap_STFLE) - S390X.HasLDISP = has(hwcap_LDISP) - S390X.HasEIMM = has(hwcap_EIMM) - S390X.HasETF3EH = has(hwcap_ETF3EH) - S390X.HasDFP = has(hwcap_DFP) - S390X.HasMSA = has(hwcap_MSA) - S390X.HasVX = has(hwcap_VX) - if S390X.HasVX { - S390X.HasVXE = has(hwcap_VXE) - } -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_loong64.go b/vendor/golang.org/x/sys/cpu/cpu_loong64.go deleted file mode 100644 index 45ecb29..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_loong64.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2022 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:build loong64 - -package cpu - -const cacheLineSize = 64 - -// Bit fields for CPUCFG registers, Related reference documents: -// https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#_cpucfg -const ( - // CPUCFG1 bits - cpucfg1_CRC32 = 1 << 25 - - // CPUCFG2 bits - cpucfg2_LAM_BH = 1 << 27 - cpucfg2_LAMCAS = 1 << 28 -) - -func initOptions() { - options = []option{ - {Name: "lsx", Feature: &Loong64.HasLSX}, - {Name: "lasx", Feature: &Loong64.HasLASX}, - {Name: "crc32", Feature: &Loong64.HasCRC32}, - {Name: "lam_bh", Feature: &Loong64.HasLAM_BH}, - {Name: "lamcas", Feature: &Loong64.HasLAMCAS}, - } - - // The CPUCFG data on Loong64 only reflects the hardware capabilities, - // not the kernel support status, so features such as LSX and LASX that - // require kernel support cannot be obtained from the CPUCFG data. - // - // These features only require hardware capability support and do not - // require kernel specific support, so they can be obtained directly - // through CPUCFG - cfg1 := get_cpucfg(1) - cfg2 := get_cpucfg(2) - - Loong64.HasCRC32 = cfgIsSet(cfg1, cpucfg1_CRC32) - Loong64.HasLAMCAS = cfgIsSet(cfg2, cpucfg2_LAMCAS) - Loong64.HasLAM_BH = cfgIsSet(cfg2, cpucfg2_LAM_BH) -} - -func get_cpucfg(reg uint32) uint32 - -func cfgIsSet(cfg uint32, val uint32) bool { - return cfg&val != 0 -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_loong64.s b/vendor/golang.org/x/sys/cpu/cpu_loong64.s deleted file mode 100644 index 71cbaf1..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_loong64.s +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2025 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. - -#include "textflag.h" - -// func get_cpucfg(reg uint32) uint32 -TEXT ·get_cpucfg(SB), NOSPLIT|NOFRAME, $0 - MOVW reg+0(FP), R5 - // CPUCFG R5, R4 = 0x00006ca4 - WORD $0x00006ca4 - MOVW R4, ret+8(FP) - RET diff --git a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go deleted file mode 100644 index fedb00c..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go +++ /dev/null @@ -1,15 +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. - -//go:build mips64 || mips64le - -package cpu - -const cacheLineSize = 32 - -func initOptions() { - options = []option{ - {Name: "msa", Feature: &MIPS64X.HasMSA}, - } -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go deleted file mode 100644 index ffb4ec7..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go +++ /dev/null @@ -1,11 +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. - -//go:build mips || mipsle - -package cpu - -const cacheLineSize = 32 - -func initOptions() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go deleted file mode 100644 index ebfb3fc..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2020 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 cpu - -import ( - "syscall" - "unsafe" -) - -// Minimal copy of functionality from x/sys/unix so the cpu package can call -// sysctl without depending on x/sys/unix. - -const ( - _CTL_QUERY = -2 - - _SYSCTL_VERS_1 = 0x1000000 -) - -var _zero uintptr - -func sysctl(mib []int32, 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) - } - _, _, errno := syscall.Syscall6( - syscall.SYS___SYSCTL, - uintptr(_p0), - uintptr(len(mib)), - uintptr(unsafe.Pointer(old)), - uintptr(unsafe.Pointer(oldlen)), - uintptr(unsafe.Pointer(new)), - uintptr(newlen)) - if errno != 0 { - return errno - } - return nil -} - -type sysctlNode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - __rsvd uint32 - Un [16]byte - _sysctl_size [8]byte - _sysctl_func [8]byte - _sysctl_parent [8]byte - _sysctl_desc [8]byte -} - -func sysctlNodes(mib []int32) ([]sysctlNode, error) { - var olen uintptr - - // Get a list of all sysctl nodes below the given MIB by performing - // a sysctl for the given MIB with CTL_QUERY appended. - mib = append(mib, _CTL_QUERY) - qnode := sysctlNode{Flags: _SYSCTL_VERS_1} - qp := (*byte)(unsafe.Pointer(&qnode)) - sz := unsafe.Sizeof(qnode) - if err := sysctl(mib, nil, &olen, qp, sz); err != nil { - return nil, err - } - - // Now that we know the size, get the actual nodes. - nodes := make([]sysctlNode, olen/sz) - np := (*byte)(unsafe.Pointer(&nodes[0])) - if err := sysctl(mib, np, &olen, qp, sz); err != nil { - return nil, err - } - - return nodes, nil -} - -func nametomib(name string) ([]int32, error) { - // Split name into components. - var parts []string - last := 0 - for i := 0; i < len(name); i++ { - if name[i] == '.' { - parts = append(parts, name[last:i]) - last = i + 1 - } - } - parts = append(parts, name[last:]) - - mib := []int32{} - // Discover the nodes and construct the MIB OID. - for partno, part := range parts { - nodes, err := sysctlNodes(mib) - if err != nil { - return nil, err - } - for _, node := range nodes { - n := make([]byte, 0) - for i := range node.Name { - if node.Name[i] != 0 { - n = append(n, byte(node.Name[i])) - } - } - if string(n) == part { - mib = append(mib, int32(node.Num)) - break - } - } - if len(mib) != partno+1 { - return nil, err - } - } - - return mib, nil -} - -// aarch64SysctlCPUID is struct aarch64_sysctl_cpu_id from NetBSD's -type aarch64SysctlCPUID struct { - midr uint64 /* Main ID Register */ - revidr uint64 /* Revision ID Register */ - mpidr uint64 /* Multiprocessor Affinity Register */ - aa64dfr0 uint64 /* A64 Debug Feature Register 0 */ - aa64dfr1 uint64 /* A64 Debug Feature Register 1 */ - aa64isar0 uint64 /* A64 Instruction Set Attribute Register 0 */ - aa64isar1 uint64 /* A64 Instruction Set Attribute Register 1 */ - aa64mmfr0 uint64 /* A64 Memory Model Feature Register 0 */ - aa64mmfr1 uint64 /* A64 Memory Model Feature Register 1 */ - aa64mmfr2 uint64 /* A64 Memory Model Feature Register 2 */ - aa64pfr0 uint64 /* A64 Processor Feature Register 0 */ - aa64pfr1 uint64 /* A64 Processor Feature Register 1 */ - aa64zfr0 uint64 /* A64 SVE Feature ID Register 0 */ - mvfr0 uint32 /* Media and VFP Feature Register 0 */ - mvfr1 uint32 /* Media and VFP Feature Register 1 */ - mvfr2 uint32 /* Media and VFP Feature Register 2 */ - pad uint32 - clidr uint64 /* Cache Level ID Register */ - ctr uint64 /* Cache Type Register */ -} - -func sysctlCPUID(name string) (*aarch64SysctlCPUID, error) { - mib, err := nametomib(name) - if err != nil { - return nil, err - } - - out := aarch64SysctlCPUID{} - n := unsafe.Sizeof(out) - _, _, errno := syscall.Syscall6( - syscall.SYS___SYSCTL, - uintptr(unsafe.Pointer(&mib[0])), - uintptr(len(mib)), - uintptr(unsafe.Pointer(&out)), - uintptr(unsafe.Pointer(&n)), - uintptr(0), - uintptr(0)) - if errno != 0 { - return nil, errno - } - return &out, nil -} - -func doinit() { - cpuid, err := sysctlCPUID("machdep.cpu0.cpu_id") - if err != nil { - setMinimalFeatures() - return - } - parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, cpuid.aa64pfr0) - - Initialized = true -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go deleted file mode 100644 index 85b64d5..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2022 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 cpu - -import ( - "syscall" - "unsafe" -) - -// Minimal copy of functionality from x/sys/unix so the cpu package can call -// sysctl without depending on x/sys/unix. - -const ( - // From OpenBSD's sys/sysctl.h. - _CTL_MACHDEP = 7 - - // From OpenBSD's machine/cpu.h. - _CPU_ID_AA64ISAR0 = 2 - _CPU_ID_AA64ISAR1 = 3 -) - -// Implemented in the runtime package (runtime/sys_openbsd3.go) -func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) - -//go:linkname syscall_syscall6 syscall.syscall6 - -func sysctl(mib []uint32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - _, _, errno := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(unsafe.Pointer(&mib[0])), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if errno != 0 { - return errno - } - return nil -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -func sysctlUint64(mib []uint32) (uint64, bool) { - var out uint64 - nout := unsafe.Sizeof(out) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&out)), &nout, nil, 0); err != nil { - return 0, false - } - return out, true -} - -func doinit() { - setMinimalFeatures() - - // Get ID_AA64ISAR0 and ID_AA64ISAR1 from sysctl. - isar0, ok := sysctlUint64([]uint32{_CTL_MACHDEP, _CPU_ID_AA64ISAR0}) - if !ok { - return - } - isar1, ok := sysctlUint64([]uint32{_CTL_MACHDEP, _CPU_ID_AA64ISAR1}) - if !ok { - return - } - parseARM64SystemRegisters(isar0, isar1, 0) - - Initialized = true -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s deleted file mode 100644 index 054ba05..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2022 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. - -#include "textflag.h" - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) - -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm.go deleted file mode 100644 index e9ecf2a..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_arm.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2020 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:build !linux && arm - -package cpu - -func archInit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go deleted file mode 100644 index 5341e7f..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go +++ /dev/null @@ -1,9 +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. - -//go:build !linux && !netbsd && !openbsd && arm64 - -package cpu - -func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go deleted file mode 100644 index 5f8f241..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2020 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:build !linux && (mips64 || mips64le) - -package cpu - -func archInit() { - Initialized = true -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go deleted file mode 100644 index 89608fb..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2022 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:build !aix && !linux && (ppc64 || ppc64le) - -package cpu - -func archInit() { - PPC64.IsPOWER8 = true - Initialized = true -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_other_riscv64.go deleted file mode 100644 index 5ab8780..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_riscv64.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2022 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:build !linux && riscv64 - -package cpu - -func archInit() { - Initialized = true -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_x86.go b/vendor/golang.org/x/sys/cpu/cpu_other_x86.go deleted file mode 100644 index a0fd7e2..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_other_x86.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 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:build 386 || amd64p32 || (amd64 && (!darwin || !gc)) - -package cpu - -func darwinSupportsAVX512() bool { - panic("only implemented for gc && amd64 && darwin") -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go deleted file mode 100644 index c14f12b..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2020 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:build ppc64 || ppc64le - -package cpu - -const cacheLineSize = 128 - -func initOptions() { - options = []option{ - {Name: "darn", Feature: &PPC64.HasDARN}, - {Name: "scv", Feature: &PPC64.HasSCV}, - } -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go deleted file mode 100644 index 0f617ae..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +++ /dev/null @@ -1,32 +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. - -//go:build riscv64 - -package cpu - -const cacheLineSize = 64 - -func initOptions() { - options = []option{ - {Name: "fastmisaligned", Feature: &RISCV64.HasFastMisaligned}, - {Name: "c", Feature: &RISCV64.HasC}, - {Name: "v", Feature: &RISCV64.HasV}, - {Name: "zba", Feature: &RISCV64.HasZba}, - {Name: "zbb", Feature: &RISCV64.HasZbb}, - {Name: "zbs", Feature: &RISCV64.HasZbs}, - // RISC-V Cryptography Extensions - {Name: "zvbb", Feature: &RISCV64.HasZvbb}, - {Name: "zvbc", Feature: &RISCV64.HasZvbc}, - {Name: "zvkb", Feature: &RISCV64.HasZvkb}, - {Name: "zvkg", Feature: &RISCV64.HasZvkg}, - {Name: "zvkt", Feature: &RISCV64.HasZvkt}, - {Name: "zvkn", Feature: &RISCV64.HasZvkn}, - {Name: "zvknc", Feature: &RISCV64.HasZvknc}, - {Name: "zvkng", Feature: &RISCV64.HasZvkng}, - {Name: "zvks", Feature: &RISCV64.HasZvks}, - {Name: "zvksc", Feature: &RISCV64.HasZvksc}, - {Name: "zvksg", Feature: &RISCV64.HasZvksg}, - } -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_s390x.go deleted file mode 100644 index 5881b88..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_s390x.go +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright 2020 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 cpu - -const cacheLineSize = 256 - -func initOptions() { - options = []option{ - {Name: "zarch", Feature: &S390X.HasZARCH, Required: true}, - {Name: "stfle", Feature: &S390X.HasSTFLE, Required: true}, - {Name: "ldisp", Feature: &S390X.HasLDISP, Required: true}, - {Name: "eimm", Feature: &S390X.HasEIMM, Required: true}, - {Name: "dfp", Feature: &S390X.HasDFP}, - {Name: "etf3eh", Feature: &S390X.HasETF3EH}, - {Name: "msa", Feature: &S390X.HasMSA}, - {Name: "aes", Feature: &S390X.HasAES}, - {Name: "aescbc", Feature: &S390X.HasAESCBC}, - {Name: "aesctr", Feature: &S390X.HasAESCTR}, - {Name: "aesgcm", Feature: &S390X.HasAESGCM}, - {Name: "ghash", Feature: &S390X.HasGHASH}, - {Name: "sha1", Feature: &S390X.HasSHA1}, - {Name: "sha256", Feature: &S390X.HasSHA256}, - {Name: "sha3", Feature: &S390X.HasSHA3}, - {Name: "sha512", Feature: &S390X.HasSHA512}, - {Name: "vx", Feature: &S390X.HasVX}, - {Name: "vxe", Feature: &S390X.HasVXE}, - } -} - -// bitIsSet reports whether the bit at index is set. The bit index -// is in big endian order, so bit index 0 is the leftmost bit. -func bitIsSet(bits []uint64, index uint) bool { - return bits[index/64]&((1<<63)>>(index%64)) != 0 -} - -// facility is a bit index for the named facility. -type facility uint8 - -const ( - // mandatory facilities - zarch facility = 1 // z architecture mode is active - stflef facility = 7 // store-facility-list-extended - ldisp facility = 18 // long-displacement - eimm facility = 21 // extended-immediate - - // miscellaneous facilities - dfp facility = 42 // decimal-floating-point - etf3eh facility = 30 // extended-translation 3 enhancement - - // cryptography facilities - msa facility = 17 // message-security-assist - msa3 facility = 76 // message-security-assist extension 3 - msa4 facility = 77 // message-security-assist extension 4 - msa5 facility = 57 // message-security-assist extension 5 - msa8 facility = 146 // message-security-assist extension 8 - msa9 facility = 155 // message-security-assist extension 9 - - // vector facilities - vx facility = 129 // vector facility - vxe facility = 135 // vector-enhancements 1 - vxe2 facility = 148 // vector-enhancements 2 -) - -// facilityList contains the result of an STFLE call. -// Bits are numbered in big endian order so the -// leftmost bit (the MSB) is at index 0. -type facilityList struct { - bits [4]uint64 -} - -// Has reports whether the given facilities are present. -func (s *facilityList) Has(fs ...facility) bool { - if len(fs) == 0 { - panic("no facility bits provided") - } - for _, f := range fs { - if !bitIsSet(s.bits[:], uint(f)) { - return false - } - } - return true -} - -// function is the code for the named cryptographic function. -type function uint8 - -const ( - // KM{,A,C,CTR} function codes - aes128 function = 18 // AES-128 - aes192 function = 19 // AES-192 - aes256 function = 20 // AES-256 - - // K{I,L}MD function codes - sha1 function = 1 // SHA-1 - sha256 function = 2 // SHA-256 - sha512 function = 3 // SHA-512 - sha3_224 function = 32 // SHA3-224 - sha3_256 function = 33 // SHA3-256 - sha3_384 function = 34 // SHA3-384 - sha3_512 function = 35 // SHA3-512 - shake128 function = 36 // SHAKE-128 - shake256 function = 37 // SHAKE-256 - - // KLMD function codes - ghash function = 65 // GHASH -) - -// queryResult contains the result of a Query function -// call. Bits are numbered in big endian order so the -// leftmost bit (the MSB) is at index 0. -type queryResult struct { - bits [2]uint64 -} - -// Has reports whether the given functions are present. -func (q *queryResult) Has(fns ...function) bool { - if len(fns) == 0 { - panic("no function codes provided") - } - for _, f := range fns { - if !bitIsSet(q.bits[:], uint(f)) { - return false - } - } - return true -} - -func doinit() { - initS390Xbase() - - // We need implementations of stfle, km and so on - // to detect cryptographic features. - if !haveAsmFunctions() { - return - } - - // optional cryptographic functions - if S390X.HasMSA { - aes := []function{aes128, aes192, aes256} - - // cipher message - km, kmc := kmQuery(), kmcQuery() - S390X.HasAES = km.Has(aes...) - S390X.HasAESCBC = kmc.Has(aes...) - if S390X.HasSTFLE { - facilities := stfle() - if facilities.Has(msa4) { - kmctr := kmctrQuery() - S390X.HasAESCTR = kmctr.Has(aes...) - } - if facilities.Has(msa8) { - kma := kmaQuery() - S390X.HasAESGCM = kma.Has(aes...) - } - } - - // compute message digest - kimd := kimdQuery() // intermediate (no padding) - klmd := klmdQuery() // last (padding) - S390X.HasSHA1 = kimd.Has(sha1) && klmd.Has(sha1) - S390X.HasSHA256 = kimd.Has(sha256) && klmd.Has(sha256) - S390X.HasSHA512 = kimd.Has(sha512) && klmd.Has(sha512) - S390X.HasGHASH = kimd.Has(ghash) // KLMD-GHASH does not exist - sha3 := []function{ - sha3_224, sha3_256, sha3_384, sha3_512, - shake128, shake256, - } - S390X.HasSHA3 = kimd.Has(sha3...) && klmd.Has(sha3...) - } -} diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.s b/vendor/golang.org/x/sys/cpu/cpu_s390x.s deleted file mode 100644 index 1fb4b70..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_s390x.s +++ /dev/null @@ -1,57 +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. - -//go:build gc - -#include "textflag.h" - -// func stfle() facilityList -TEXT ·stfle(SB), NOSPLIT|NOFRAME, $0-32 - MOVD $ret+0(FP), R1 - MOVD $3, R0 // last doubleword index to store - XC $32, (R1), (R1) // clear 4 doublewords (32 bytes) - WORD $0xb2b01000 // store facility list extended (STFLE) - RET - -// func kmQuery() queryResult -TEXT ·kmQuery(SB), NOSPLIT|NOFRAME, $0-16 - MOVD $0, R0 // set function code to 0 (KM-Query) - MOVD $ret+0(FP), R1 // address of 16-byte return value - WORD $0xB92E0024 // cipher message (KM) - RET - -// func kmcQuery() queryResult -TEXT ·kmcQuery(SB), NOSPLIT|NOFRAME, $0-16 - MOVD $0, R0 // set function code to 0 (KMC-Query) - MOVD $ret+0(FP), R1 // address of 16-byte return value - WORD $0xB92F0024 // cipher message with chaining (KMC) - RET - -// func kmctrQuery() queryResult -TEXT ·kmctrQuery(SB), NOSPLIT|NOFRAME, $0-16 - MOVD $0, R0 // set function code to 0 (KMCTR-Query) - MOVD $ret+0(FP), R1 // address of 16-byte return value - WORD $0xB92D4024 // cipher message with counter (KMCTR) - RET - -// func kmaQuery() queryResult -TEXT ·kmaQuery(SB), NOSPLIT|NOFRAME, $0-16 - MOVD $0, R0 // set function code to 0 (KMA-Query) - MOVD $ret+0(FP), R1 // address of 16-byte return value - WORD $0xb9296024 // cipher message with authentication (KMA) - RET - -// func kimdQuery() queryResult -TEXT ·kimdQuery(SB), NOSPLIT|NOFRAME, $0-16 - MOVD $0, R0 // set function code to 0 (KIMD-Query) - MOVD $ret+0(FP), R1 // address of 16-byte return value - WORD $0xB93E0024 // compute intermediate message digest (KIMD) - RET - -// func klmdQuery() queryResult -TEXT ·klmdQuery(SB), NOSPLIT|NOFRAME, $0-16 - MOVD $0, R0 // set function code to 0 (KLMD-Query) - MOVD $ret+0(FP), R1 // address of 16-byte return value - WORD $0xB93F0024 // compute last message digest (KLMD) - RET 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 384787e..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_wasm.go +++ /dev/null @@ -1,17 +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. - -//go: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 initOptions() {} - -func archInit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go deleted file mode 100644 index 1e642f3..0000000 --- a/vendor/golang.org/x/sys/cpu/cpu_x86.go +++ /dev/null @@ -1,162 +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. - -//go:build 386 || amd64 || amd64p32 - -package cpu - -import "runtime" - -const cacheLineSize = 64 - -func initOptions() { - options = []option{ - {Name: "adx", Feature: &X86.HasADX}, - {Name: "aes", Feature: &X86.HasAES}, - {Name: "avx", Feature: &X86.HasAVX}, - {Name: "avx2", Feature: &X86.HasAVX2}, - {Name: "avx512", Feature: &X86.HasAVX512}, - {Name: "avx512f", Feature: &X86.HasAVX512F}, - {Name: "avx512cd", Feature: &X86.HasAVX512CD}, - {Name: "avx512er", Feature: &X86.HasAVX512ER}, - {Name: "avx512pf", Feature: &X86.HasAVX512PF}, - {Name: "avx512vl", Feature: &X86.HasAVX512VL}, - {Name: "avx512bw", Feature: &X86.HasAVX512BW}, - {Name: "avx512dq", Feature: &X86.HasAVX512DQ}, - {Name: "avx512ifma", Feature: &X86.HasAVX512IFMA}, - {Name: "avx512vbmi", Feature: &X86.HasAVX512VBMI}, - {Name: "avx512vnniw", Feature: &X86.HasAVX5124VNNIW}, - {Name: "avx5124fmaps", Feature: &X86.HasAVX5124FMAPS}, - {Name: "avx512vpopcntdq", Feature: &X86.HasAVX512VPOPCNTDQ}, - {Name: "avx512vpclmulqdq", Feature: &X86.HasAVX512VPCLMULQDQ}, - {Name: "avx512vnni", Feature: &X86.HasAVX512VNNI}, - {Name: "avx512gfni", Feature: &X86.HasAVX512GFNI}, - {Name: "avx512vaes", Feature: &X86.HasAVX512VAES}, - {Name: "avx512vbmi2", Feature: &X86.HasAVX512VBMI2}, - {Name: "avx512bitalg", Feature: &X86.HasAVX512BITALG}, - {Name: "avx512bf16", Feature: &X86.HasAVX512BF16}, - {Name: "amxtile", Feature: &X86.HasAMXTile}, - {Name: "amxint8", Feature: &X86.HasAMXInt8}, - {Name: "amxbf16", Feature: &X86.HasAMXBF16}, - {Name: "bmi1", Feature: &X86.HasBMI1}, - {Name: "bmi2", Feature: &X86.HasBMI2}, - {Name: "cx16", Feature: &X86.HasCX16}, - {Name: "erms", Feature: &X86.HasERMS}, - {Name: "fma", Feature: &X86.HasFMA}, - {Name: "osxsave", Feature: &X86.HasOSXSAVE}, - {Name: "pclmulqdq", Feature: &X86.HasPCLMULQDQ}, - {Name: "popcnt", Feature: &X86.HasPOPCNT}, - {Name: "rdrand", Feature: &X86.HasRDRAND}, - {Name: "rdseed", Feature: &X86.HasRDSEED}, - {Name: "sse3", Feature: &X86.HasSSE3}, - {Name: "sse41", Feature: &X86.HasSSE41}, - {Name: "sse42", Feature: &X86.HasSSE42}, - {Name: "ssse3", Feature: &X86.HasSSSE3}, - {Name: "avxifma", Feature: &X86.HasAVXIFMA}, - {Name: "avxvnni", Feature: &X86.HasAVXVNNI}, - {Name: "avxvnniint8", Feature: &X86.HasAVXVNNIInt8}, - - // These capabilities should always be enabled on amd64: - {Name: "sse2", Feature: &X86.HasSSE2, Required: runtime.GOARCH == "amd64"}, - } -} - -func archInit() { - - Initialized = true - - maxID, _, _, _ := cpuid(0, 0) - - if maxID < 1 { - return - } - - _, _, ecx1, edx1 := cpuid(1, 0) - X86.HasSSE2 = isSet(26, edx1) - - X86.HasSSE3 = isSet(0, ecx1) - X86.HasPCLMULQDQ = isSet(1, ecx1) - X86.HasSSSE3 = isSet(9, ecx1) - X86.HasFMA = isSet(12, ecx1) - X86.HasCX16 = isSet(13, ecx1) - X86.HasSSE41 = isSet(19, ecx1) - X86.HasSSE42 = isSet(20, ecx1) - X86.HasPOPCNT = isSet(23, ecx1) - X86.HasAES = isSet(25, ecx1) - X86.HasOSXSAVE = isSet(27, ecx1) - X86.HasRDRAND = isSet(30, ecx1) - - var osSupportsAVX, osSupportsAVX512 bool - // For XGETBV, OSXSAVE bit is required and sufficient. - if X86.HasOSXSAVE { - eax, _ := xgetbv() - // Check if XMM and YMM registers have OS support. - osSupportsAVX = isSet(1, eax) && isSet(2, eax) - - if runtime.GOOS == "darwin" { - // Darwin requires special AVX512 checks, see cpu_darwin_x86.go - osSupportsAVX512 = osSupportsAVX && darwinSupportsAVX512() - } else { - // Check if OPMASK and ZMM registers have OS support. - osSupportsAVX512 = osSupportsAVX && isSet(5, eax) && isSet(6, eax) && isSet(7, eax) - } - } - - X86.HasAVX = isSet(28, ecx1) && osSupportsAVX - - if maxID < 7 { - return - } - - eax7, ebx7, ecx7, edx7 := cpuid(7, 0) - X86.HasBMI1 = isSet(3, ebx7) - X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX - X86.HasBMI2 = isSet(8, ebx7) - X86.HasERMS = isSet(9, ebx7) - X86.HasRDSEED = isSet(18, ebx7) - X86.HasADX = isSet(19, ebx7) - - X86.HasAVX512 = isSet(16, ebx7) && osSupportsAVX512 // Because avx-512 foundation is the core required extension - if X86.HasAVX512 { - X86.HasAVX512F = true - X86.HasAVX512CD = isSet(28, ebx7) - X86.HasAVX512ER = isSet(27, ebx7) - X86.HasAVX512PF = isSet(26, ebx7) - X86.HasAVX512VL = isSet(31, ebx7) - X86.HasAVX512BW = isSet(30, ebx7) - X86.HasAVX512DQ = isSet(17, ebx7) - X86.HasAVX512IFMA = isSet(21, ebx7) - X86.HasAVX512VBMI = isSet(1, ecx7) - X86.HasAVX5124VNNIW = isSet(2, edx7) - X86.HasAVX5124FMAPS = isSet(3, edx7) - X86.HasAVX512VPOPCNTDQ = isSet(14, ecx7) - X86.HasAVX512VPCLMULQDQ = isSet(10, ecx7) - X86.HasAVX512VNNI = isSet(11, ecx7) - X86.HasAVX512GFNI = isSet(8, ecx7) - X86.HasAVX512VAES = isSet(9, ecx7) - X86.HasAVX512VBMI2 = isSet(6, ecx7) - X86.HasAVX512BITALG = isSet(12, ecx7) - } - - X86.HasAMXTile = isSet(24, edx7) - X86.HasAMXInt8 = isSet(25, edx7) - X86.HasAMXBF16 = isSet(22, edx7) - - // These features depend on the second level of extended features. - if eax7 >= 1 { - eax71, _, _, edx71 := cpuid(7, 1) - if X86.HasAVX512 { - X86.HasAVX512BF16 = isSet(5, eax71) - } - if X86.HasAVX { - X86.HasAVXIFMA = isSet(23, eax71) - X86.HasAVXVNNI = isSet(4, eax71) - X86.HasAVXVNNIInt8 = isSet(4, edx71) - } - } -} - -func isSet(bitpos uint, value uint32) bool { - return value&(1<> 63)) -) - -// For those platforms don't have a 'cpuid' equivalent we use HWCAP/HWCAP2 -// These are initialized in cpu_$GOARCH.go -// and should not be changed after they are initialized. -var hwCap uint -var hwCap2 uint - -func readHWCAP() error { - // For Go 1.21+, get auxv from the Go runtime. - if a := getAuxv(); len(a) > 0 { - for len(a) >= 2 { - tag, val := a[0], uint(a[1]) - a = a[2:] - switch tag { - case _AT_HWCAP: - hwCap = val - case _AT_HWCAP2: - hwCap2 = val - } - } - return nil - } - - buf, err := os.ReadFile(procAuxv) - if err != nil { - // e.g. on android /proc/self/auxv is not accessible, so silently - // ignore the error and leave Initialized = false. On some - // architectures (e.g. arm64) doinit() implements a fallback - // readout and will set Initialized = true again. - return err - } - bo := hostByteOrder() - for len(buf) >= 2*(uintSize/8) { - var tag, val uint - switch uintSize { - case 32: - tag = uint(bo.Uint32(buf[0:])) - val = uint(bo.Uint32(buf[4:])) - buf = buf[8:] - case 64: - tag = uint(bo.Uint64(buf[0:])) - val = uint(bo.Uint64(buf[8:])) - buf = buf[16:] - } - switch tag { - case _AT_HWCAP: - hwCap = val - case _AT_HWCAP2: - hwCap2 = val - } - } - return nil -} diff --git a/vendor/golang.org/x/sys/cpu/parse.go b/vendor/golang.org/x/sys/cpu/parse.go deleted file mode 100644 index 56a7e1a..0000000 --- a/vendor/golang.org/x/sys/cpu/parse.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2022 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 cpu - -import "strconv" - -// parseRelease parses a dot-separated version number. It follows the semver -// syntax, but allows the minor and patch versions to be elided. -// -// This is a copy of the Go runtime's parseRelease from -// https://golang.org/cl/209597. -func parseRelease(rel string) (major, minor, patch int, ok bool) { - // Strip anything after a dash or plus. - for i := range len(rel) { - if rel[i] == '-' || rel[i] == '+' { - rel = rel[:i] - break - } - } - - next := func() (int, bool) { - for i := range len(rel) { - if rel[i] == '.' { - ver, err := strconv.Atoi(rel[:i]) - rel = rel[i+1:] - return ver, err == nil - } - } - ver, err := strconv.Atoi(rel) - rel = "" - return ver, err == nil - } - if major, ok = next(); !ok || rel == "" { - return - } - if minor, ok = next(); !ok || rel == "" { - return - } - patch, ok = next() - return -} diff --git a/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go b/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go deleted file mode 100644 index 4cd64c7..0000000 --- a/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2022 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:build linux && arm64 - -package cpu - -import ( - "errors" - "io" - "os" - "strings" -) - -func readLinuxProcCPUInfo() error { - f, err := os.Open("/proc/cpuinfo") - if err != nil { - return err - } - defer f.Close() - - var buf [1 << 10]byte // enough for first CPU - n, err := io.ReadFull(f, buf[:]) - if err != nil && err != io.ErrUnexpectedEOF { - return err - } - in := string(buf[:n]) - const features = "\nFeatures : " - i := strings.Index(in, features) - if i == -1 { - return errors.New("no CPU features found") - } - in = in[i+len(features):] - if i := strings.Index(in, "\n"); i != -1 { - in = in[:i] - } - m := map[string]*bool{} - - initOptions() // need it early here; it's harmless to call twice - for _, o := range options { - m[o.Name] = o.Feature - } - // The EVTSTRM field has alias "evstrm" in Go, but Linux calls it "evtstrm". - m["evtstrm"] = &ARM64.HasEVTSTRM - - for _, f := range strings.Fields(in) { - if p, ok := m[f]; ok { - *p = true - } - } - return nil -} diff --git a/vendor/golang.org/x/sys/cpu/runtime_auxv.go b/vendor/golang.org/x/sys/cpu/runtime_auxv.go deleted file mode 100644 index 5f92ac9..0000000 --- a/vendor/golang.org/x/sys/cpu/runtime_auxv.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2023 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 cpu - -// getAuxvFn is non-nil on Go 1.21+ (via runtime_auxv_go121.go init) -// on platforms that use auxv. -var getAuxvFn func() []uintptr - -func getAuxv() []uintptr { - if getAuxvFn == nil { - return nil - } - return getAuxvFn() -} diff --git a/vendor/golang.org/x/sys/cpu/runtime_auxv_go121.go b/vendor/golang.org/x/sys/cpu/runtime_auxv_go121.go deleted file mode 100644 index 4c9788e..0000000 --- a/vendor/golang.org/x/sys/cpu/runtime_auxv_go121.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2023 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:build go1.21 - -package cpu - -import ( - _ "unsafe" // for linkname -) - -//go:linkname runtime_getAuxv runtime.getAuxv -func runtime_getAuxv() []uintptr - -func init() { - getAuxvFn = runtime_getAuxv -} diff --git a/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go b/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go deleted file mode 100644 index 1b9ccb0..0000000 --- a/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2020 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. - -// Recreate a getsystemcfg syscall handler instead of -// using the one provided by x/sys/unix to avoid having -// the dependency between them. (See golang.org/issue/32102) -// Moreover, this file will be used during the building of -// gccgo's libgo and thus must not used a CGo method. - -//go:build aix && gccgo - -package cpu - -import ( - "syscall" -) - -//extern getsystemcfg -func gccgoGetsystemcfg(label uint32) (r uint64) - -func callgetsystemcfg(label int) (r1 uintptr, e1 syscall.Errno) { - r1 = uintptr(gccgoGetsystemcfg(uint32(label))) - e1 = syscall.GetErrno() - return -} 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 e8b6cdb..0000000 --- a/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go +++ /dev/null @@ -1,35 +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) - -//go:build aix && ppc64 && gc - -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/cpu/syscall_darwin_x86_gc.go b/vendor/golang.org/x/sys/cpu/syscall_darwin_x86_gc.go deleted file mode 100644 index 4d0888b..0000000 --- a/vendor/golang.org/x/sys/cpu/syscall_darwin_x86_gc.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2024 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 Darwin without depending on x/sys/unix. - -//go:build darwin && amd64 && gc - -package cpu - -import ( - "syscall" - "unsafe" -) - -type _C_int int32 - -// adapted from unix.Uname() at x/sys/unix/syscall_darwin.go L419 -func darwinOSRelease(release *[256]byte) error { - // from x/sys/unix/zerrors_openbsd_amd64.go - const ( - CTL_KERN = 0x1 - KERN_OSRELEASE = 0x2 - ) - - mib := []_C_int{CTL_KERN, KERN_OSRELEASE} - n := unsafe.Sizeof(*release) - - return sysctl(mib, &release[0], &n, nil, 0) -} - -type Errno = syscall.Errno - -var _zero uintptr // Single-word zero for use when we need a valid pointer to 0 bytes. - -// from x/sys/unix/zsyscall_darwin_amd64.go L791-807 -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - if _, _, err := syscall_syscall6( - libc_sysctl_trampoline_addr, - uintptr(_p0), - uintptr(len(mib)), - uintptr(unsafe.Pointer(old)), - uintptr(unsafe.Pointer(oldlen)), - uintptr(unsafe.Pointer(new)), - uintptr(newlen), - ); err != 0 { - return err - } - - return nil -} - -var libc_sysctl_trampoline_addr uintptr - -// adapted from internal/cpu/cpu_arm64_darwin.go -func darwinSysctlEnabled(name []byte) bool { - out := int32(0) - nout := unsafe.Sizeof(out) - if ret := sysctlbyname(&name[0], (*byte)(unsafe.Pointer(&out)), &nout, nil, 0); ret != nil { - return false - } - return out > 0 -} - -//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" - -var libc_sysctlbyname_trampoline_addr uintptr - -// adapted from runtime/sys_darwin.go in the pattern of sysctl() above, as defined in x/sys/unix -func sysctlbyname(name *byte, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error { - if _, _, err := syscall_syscall6( - libc_sysctlbyname_trampoline_addr, - uintptr(unsafe.Pointer(name)), - uintptr(unsafe.Pointer(old)), - uintptr(unsafe.Pointer(oldlen)), - uintptr(unsafe.Pointer(new)), - uintptr(newlen), - 0, - ); err != 0 { - return err - } - - return nil -} - -//go:cgo_import_dynamic libc_sysctlbyname sysctlbyname "/usr/lib/libSystem.B.dylib" - -// Implemented in the runtime package (runtime/sys_darwin.go) -func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) - -//go:linkname syscall_syscall6 syscall.syscall6 diff --git a/vendor/golang.org/x/sys/unix/.gitignore b/vendor/golang.org/x/sys/unix/.gitignore deleted file mode 100644 index e3e0fc6..0000000 --- a/vendor/golang.org/x/sys/unix/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -_obj/ -unix.test diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md deleted file mode 100644 index 6e08a76..0000000 --- a/vendor/golang.org/x/sys/unix/README.md +++ /dev/null @@ -1,184 +0,0 @@ -# Building `sys/unix` - -The sys/unix package provides access to the raw system call interface of the -underlying operating system. See: https://godoc.org/golang.org/x/sys/unix - -Porting Go to a new architecture/OS combination or adding syscalls, types, or -constants to an existing architecture/OS pair requires some manual effort; -however, there are tools that automate much of the process. - -## Build Systems - -There are currently two ways we generate the necessary files. We are currently -migrating the build system to use containers so the builds are reproducible. -This is being done on an OS-by-OS basis. Please update this documentation as -components of the build system change. - -### Old Build System (currently for `GOOS != "linux"`) - -The old build system generates the Go files based on the C header files -present on your system. This means that files -for a given GOOS/GOARCH pair must be generated on a system with that OS and -architecture. This also means that the generated code can differ from system -to system, based on differences in the header files. - -To avoid this, if you are using the old build system, only generate the Go -files on an installation with unmodified header files. It is also important to -keep track of which version of the OS the files were generated from (ex. -Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes -and have each OS upgrade correspond to a single change. - -To build the files for your current OS and architecture, make sure GOOS and -GOARCH are set correctly and run `mkall.sh`. This will generate the files for -your specific system. Running `mkall.sh -n` shows the commands that will be run. - -Requirements: bash, go - -### New Build System (currently for `GOOS == "linux"`) - -The new build system uses a Docker container to generate the go files directly -from source checkouts of the kernel and various system libraries. This means -that on any platform that supports Docker, all the files using the new build -system can be generated at once, and generated files will not change based on -what the person running the scripts has installed on their computer. - -The OS specific files for the new build system are located in the `${GOOS}` -directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When -the kernel or system library updates, modify the Dockerfile at -`${GOOS}/Dockerfile` to checkout the new release of the source. - -To build all the files under the new build system, you must be on an amd64/Linux -system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will -then generate all of the files for all of the GOOS/GOARCH pairs in the new build -system. Running `mkall.sh -n` shows the commands that will be run. - -Requirements: bash, go, docker - -## Component files - -This section describes the various files used in the code generation process. -It also contains instructions on how to modify these files to add a new -architecture/OS or to add additional syscalls, types, or constants. Note that -if you are using the new build system, the scripts/programs cannot be called normally. -They must be called from within the docker container. - -### asm files - -The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system -call dispatch. There are three entry points: -``` - func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) - func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) - func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) -``` -The first and second are the standard ones; they differ only in how many -arguments can be passed to the kernel. The third is for low-level use by the -ForkExec wrapper. Unlike the first two, it does not call into the scheduler to -let it know that a system call is running. - -When porting Go to a new architecture/OS, this file must be implemented for -each GOOS/GOARCH pair. - -### mksysnum - -Mksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go` -for the old system). This program takes in a list of header files containing the -syscall number declarations and parses them to produce the corresponding list of -Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated -constants. - -Adding new syscall numbers is mostly done by running the build on a sufficiently -new installation of the target OS (or updating the source checkouts for the -new build system). However, depending on the OS, you may need to update the -parsing in mksysnum. - -### mksyscall.go - -The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are -hand-written Go files which implement system calls (for unix, the specific OS, -or the specific OS/Architecture pair respectively) that need special handling -and list `//sys` comments giving prototypes for ones that can be generated. - -The mksyscall.go program takes the `//sys` and `//sysnb` comments and converts -them into syscalls. This requires the name of the prototype in the comment to -match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function -prototype can be exported (capitalized) or not. - -Adding a new syscall often just requires adding a new `//sys` function prototype -with the desired arguments and a capitalized name so it is exported. However, if -you want the interface to the syscall to be different, often one will make an -unexported `//sys` prototype, and then write a custom wrapper in -`syscall_${GOOS}.go`. - -### types files - -For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or -`types_${GOOS}.go` on the old system). This file includes standard C headers and -creates Go type aliases to the corresponding C types. The file is then fed -through godef to get the Go compatible definitions. Finally, the generated code -is fed though mkpost.go to format the code correctly and remove any hidden or -private identifiers. This cleaned-up code is written to -`ztypes_${GOOS}_${GOARCH}.go`. - -The hardest part about preparing this file is figuring out which headers to -include and which symbols need to be `#define`d to get the actual data -structures that pass through to the kernel system calls. Some C libraries -preset alternate versions for binary compatibility and translate them on the -way in and out of system calls, but there is almost always a `#define` that can -get the real ones. -See `types_darwin.go` and `linux/types.go` for examples. - -To add a new type, add in the necessary include statement at the top of the -file (if it is not already there) and add in a type alias line. Note that if -your type is significantly different on different architectures, you may need -some `#if/#elif` macros in your include statements. - -### mkerrors.sh - -This script is used to generate the system's various constants. This doesn't -just include the error numbers and error strings, but also the signal numbers -and a wide variety of miscellaneous constants. The constants come from the list -of include files in the `includes_${uname}` variable. A regex then picks out -the desired `#define` statements, and generates the corresponding Go constants. -The error numbers and strings are generated from `#include `, and the -signal numbers and strings are generated from `#include `. All of -these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program, -`_errors.c`, which prints out all the constants. - -To add a constant, add the header that includes it to the appropriate variable. -Then, edit the regex (if necessary) to match the desired constant. Avoid making -the regex too broad to avoid matching unintended constants. - -### internal/mkmerge - -This program is used to extract duplicate const, func, and type declarations -from the generated architecture-specific files listed below, and merge these -into a common file for each OS. - -The merge is performed in the following steps: -1. Construct the set of common code that is identical in all architecture-specific files. -2. Write this common code to the merged file. -3. Remove the common code from all architecture-specific files. - - -## Generated files - -### `zerrors_${GOOS}_${GOARCH}.go` - -A file containing all of the system's generated error numbers, error strings, -signal numbers, and constants. Generated by `mkerrors.sh` (see above). - -### `zsyscall_${GOOS}_${GOARCH}.go` - -A file containing all the generated syscalls for a specific GOOS and GOARCH. -Generated by `mksyscall.go` (see above). - -### `zsysnum_${GOOS}_${GOARCH}.go` - -A list of numeric constants for all the syscall number of the specific GOOS -and GOARCH. Generated by mksysnum (see above). - -### `ztypes_${GOOS}_${GOARCH}.go` - -A file containing Go types for passing into (or returning from) syscalls. -Generated by godefs and the types file (see above). diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go deleted file mode 100644 index 3ea4703..0000000 --- a/vendor/golang.org/x/sys/unix/affinity_linux.go +++ /dev/null @@ -1,93 +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. - -// CPU affinity functions - -package unix - -import ( - "math/bits" - "unsafe" -) - -const cpuSetSize = _CPU_SETSIZE / _NCPUBITS - -// CPUSet represents a CPU affinity mask. -type CPUSet [cpuSetSize]cpuMask - -func schedAffinity(trap uintptr, pid int, set *CPUSet) error { - _, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set))) - if e != 0 { - return errnoErr(e) - } - return nil -} - -// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid. -// If pid is 0 the calling thread is used. -func SchedGetaffinity(pid int, set *CPUSet) error { - return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set) -} - -// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid. -// If pid is 0 the calling thread is used. -func SchedSetaffinity(pid int, set *CPUSet) error { - return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set) -} - -// Zero clears the set s, so that it contains no CPUs. -func (s *CPUSet) Zero() { - clear(s[:]) -} - -// Fill adds all possible CPU bits to the set s. On Linux, [SchedSetaffinity] -// will silently ignore any invalid CPU bits in [CPUSet] so this is an -// efficient way of resetting the CPU affinity of a process. -func (s *CPUSet) Fill() { - for i := range s { - s[i] = ^cpuMask(0) - } -} - -func cpuBitsIndex(cpu int) int { - return cpu / _NCPUBITS -} - -func cpuBitsMask(cpu int) cpuMask { - return cpuMask(1 << (uint(cpu) % _NCPUBITS)) -} - -// Set adds cpu to the set s. -func (s *CPUSet) Set(cpu int) { - i := cpuBitsIndex(cpu) - if i < len(s) { - s[i] |= cpuBitsMask(cpu) - } -} - -// Clear removes cpu from the set s. -func (s *CPUSet) Clear(cpu int) { - i := cpuBitsIndex(cpu) - if i < len(s) { - s[i] &^= cpuBitsMask(cpu) - } -} - -// IsSet reports whether cpu is in the set s. -func (s *CPUSet) IsSet(cpu int) bool { - i := cpuBitsIndex(cpu) - if i < len(s) { - return s[i]&cpuBitsMask(cpu) != 0 - } - return false -} - -// Count returns the number of CPUs in the set s. -func (s *CPUSet) Count() int { - c := 0 - for _, b := range s { - c += bits.OnesCount64(uint64(b)) - } - return c -} diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go deleted file mode 100644 index b0e4198..0000000 --- a/vendor/golang.org/x/sys/unix/aliases.go +++ /dev/null @@ -1,13 +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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -import "syscall" - -type Signal = syscall.Signal -type Errno = syscall.Errno -type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s deleted file mode 100644 index 269e173..0000000 --- a/vendor/golang.org/x/sys/unix/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. - -//go:build gc - -#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/unix/asm_bsd_386.s b/vendor/golang.org/x/sys/unix/asm_bsd_386.s deleted file mode 100644 index a4fcef0..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_386.s +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2021 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:build (freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for 386 BSD - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s deleted file mode 100644 index 1e63615..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2021 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:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for AMD64 BSD - -// 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/asm_bsd_arm.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s deleted file mode 100644 index 6496c31..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_arm.s +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2021 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:build (freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for ARM BSD - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s deleted file mode 100644 index 4fd1f54..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2021 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:build (darwin || freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for ARM64 BSD - -// 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/asm_bsd_ppc64.s b/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s deleted file mode 100644 index 42f7eb9..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2022 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:build (darwin || freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// -// System call support for ppc64, BSD -// - -// 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/asm_bsd_riscv64.s b/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s deleted file mode 100644 index f890266..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2021 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:build (darwin || freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for RISCV64 BSD - -// 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/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s deleted file mode 100644 index 3b47348..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_386.s +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc - -#include "textflag.h" - -// -// System calls for 386, Linux -// - -// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80 -// instead of the glibc-specific "CALL 0x10(GS)". -#define INVOKE_SYSCALL INT $0x80 - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 - CALL runtime·entersyscall(SB) - MOVL trap+0(FP), AX // syscall entry - MOVL a1+4(FP), BX - MOVL a2+8(FP), CX - MOVL a3+12(FP), DX - MOVL $0, SI - MOVL $0, DI - INVOKE_SYSCALL - MOVL AX, r1+16(FP) - MOVL DX, r2+20(FP) - CALL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVL trap+0(FP), AX // syscall entry - MOVL a1+4(FP), BX - MOVL a2+8(FP), CX - MOVL a3+12(FP), DX - MOVL $0, SI - MOVL $0, DI - INVOKE_SYSCALL - MOVL AX, r1+16(FP) - MOVL DX, r2+20(FP) - RET - -TEXT ·socketcall(SB),NOSPLIT,$0-36 - JMP syscall·socketcall(SB) - -TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 - JMP syscall·rawsocketcall(SB) - -TEXT ·seek(SB),NOSPLIT,$0-28 - JMP syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s deleted file mode 100644 index 67e29f3..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc - -#include "textflag.h" - -// -// System calls for AMD64, Linux -// - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 - CALL runtime·entersyscall(SB) - MOVQ a1+8(FP), DI - MOVQ a2+16(FP), SI - MOVQ a3+24(FP), DX - MOVQ $0, R10 - MOVQ $0, R8 - MOVQ $0, R9 - MOVQ trap+0(FP), AX // syscall entry - SYSCALL - MOVQ AX, r1+32(FP) - MOVQ DX, r2+40(FP) - 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 - MOVQ a1+8(FP), DI - MOVQ a2+16(FP), SI - MOVQ a3+24(FP), DX - MOVQ $0, R10 - MOVQ $0, R8 - MOVQ $0, R9 - MOVQ trap+0(FP), AX // syscall entry - SYSCALL - MOVQ AX, r1+32(FP) - MOVQ DX, r2+40(FP) - RET - -TEXT ·gettimeofday(SB),NOSPLIT,$0-16 - JMP syscall·gettimeofday(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s deleted file mode 100644 index d6ae269..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm.s +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc - -#include "textflag.h" - -// -// System calls for arm, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 - BL runtime·entersyscall(SB) - MOVW trap+0(FP), R7 - MOVW a1+4(FP), R0 - MOVW a2+8(FP), R1 - MOVW a3+12(FP), R2 - MOVW $0, R3 - MOVW $0, R4 - MOVW $0, R5 - SWI $0 - MOVW R0, r1+16(FP) - MOVW $0, R0 - MOVW R0, r2+20(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVW trap+0(FP), R7 // syscall entry - MOVW a1+4(FP), R0 - MOVW a2+8(FP), R1 - MOVW a3+12(FP), R2 - SWI $0 - MOVW R0, r1+16(FP) - MOVW $0, R0 - MOVW R0, r2+20(FP) - RET - -TEXT ·seek(SB),NOSPLIT,$0-28 - B syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s deleted file mode 100644 index 01e5e25..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +++ /dev/null @@ -1,50 +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. - -//go:build linux && arm64 && gc - -#include "textflag.h" - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - B syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R0 - MOVD a2+16(FP), R1 - MOVD a3+24(FP), R2 - MOVD $0, R3 - MOVD $0, R4 - MOVD $0, R5 - MOVD trap+0(FP), R8 // syscall entry - SVC - MOVD R0, r1+32(FP) // r1 - MOVD R1, r2+40(FP) // r2 - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R0 - MOVD a2+16(FP), R1 - MOVD a3+24(FP), R2 - MOVD $0, R3 - MOVD $0, R4 - MOVD $0, R5 - MOVD trap+0(FP), R8 // syscall entry - SVC - MOVD R0, r1+32(FP) - MOVD R1, r2+40(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_loong64.s b/vendor/golang.org/x/sys/unix/asm_linux_loong64.s deleted file mode 100644 index 2abf12f..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_loong64.s +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2022 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:build linux && loong64 && gc - -#include "textflag.h" - - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 - JAL runtime·entersyscall(SB) - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R11 // syscall entry - SYSCALL - MOVV R4, r1+32(FP) - MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 - JAL 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 - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R11 // syscall entry - SYSCALL - MOVV R4, r1+32(FP) - MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s deleted file mode 100644 index f84bae7..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +++ /dev/null @@ -1,54 +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. - -//go:build linux && (mips64 || mips64le) && gc - -#include "textflag.h" - -// -// System calls for mips64, Linux -// - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 - JAL runtime·entersyscall(SB) - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R2 // syscall entry - SYSCALL - MOVV R2, r1+32(FP) - MOVV R3, r2+40(FP) - JAL 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 - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R2 // syscall entry - SYSCALL - MOVV R2, r1+32(FP) - MOVV R3, r2+40(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s deleted file mode 100644 index f08f628..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips || mipsle) && gc - -#include "textflag.h" - -// -// System calls for mips, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 - JAL runtime·entersyscall(SB) - MOVW a1+4(FP), R4 - MOVW a2+8(FP), R5 - MOVW a3+12(FP), R6 - MOVW R0, R7 - MOVW trap+0(FP), R2 // syscall entry - SYSCALL - MOVW R2, r1+16(FP) // r1 - MOVW R3, r2+20(FP) // r2 - JAL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVW a1+4(FP), R4 - MOVW a2+8(FP), R5 - MOVW a3+12(FP), R6 - MOVW trap+0(FP), R2 // syscall entry - SYSCALL - MOVW R2, r1+16(FP) - MOVW R3, r2+20(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s deleted file mode 100644 index bdfc024..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +++ /dev/null @@ -1,42 +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. - -//go:build linux && (ppc64 || ppc64le) && gc - -#include "textflag.h" - -// -// System calls for ppc64, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R3 - MOVD a2+16(FP), R4 - MOVD a3+24(FP), R5 - MOVD R0, R6 - MOVD R0, R7 - MOVD R0, R8 - MOVD trap+0(FP), R9 // syscall entry - SYSCALL R9 - MOVD R3, r1+32(FP) - MOVD R4, r2+40(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R3 - MOVD a2+16(FP), R4 - MOVD a3+24(FP), R5 - MOVD R0, R6 - MOVD R0, R7 - MOVD R0, R8 - MOVD trap+0(FP), R9 // syscall entry - SYSCALL R9 - MOVD R3, r1+32(FP) - MOVD R4, r2+40(FP) - RET 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 2e8c996..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s +++ /dev/null @@ -1,47 +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. - -//go:build riscv64 && gc - -#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 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 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_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s deleted file mode 100644 index 2c394b1..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && s390x && gc - -#include "textflag.h" - -// -// System calls for s390x, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - BR syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - BR syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R2 - MOVD a2+16(FP), R3 - MOVD a3+24(FP), R4 - MOVD $0, R5 - MOVD $0, R6 - MOVD $0, R7 - MOVD trap+0(FP), R1 // syscall entry - SYSCALL - MOVD R2, r1+32(FP) - MOVD R3, r2+40(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - BR syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - BR syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R2 - MOVD a2+16(FP), R3 - MOVD a3+24(FP), R4 - MOVD $0, R5 - MOVD $0, R6 - MOVD $0, R7 - MOVD trap+0(FP), R1 // syscall entry - SYSCALL - MOVD R2, r1+32(FP) - MOVD R3, r2+40(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s deleted file mode 100644 index fab586a..0000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.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. - -//go:build gc - -#include "textflag.h" - -// -// System call support for mips64, 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/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s deleted file mode 100644 index f949ec5..0000000 --- a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +++ /dev/null @@ -1,17 +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. - -//go:build gc - -#include "textflag.h" - -// -// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go -// - -TEXT ·sysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·sysvicall6(SB) - -TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·rawSysvicall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s deleted file mode 100644 index 813dfad..0000000 --- a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s +++ /dev/null @@ -1,382 +0,0 @@ -// Copyright 2020 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:build zos && s390x && gc - -#include "textflag.h" - -#define PSALAA 1208(R0) -#define GTAB64(x) 80(x) -#define LCA64(x) 88(x) -#define SAVSTACK_ASYNC(x) 336(x) // in the LCA -#define CAA(x) 8(x) -#define CEECAATHDID(x) 976(x) // in the CAA -#define EDCHPXV(x) 1016(x) // in the CAA -#define GOCB(x) 1104(x) // in the CAA - -// SS_*, where x=SAVSTACK_ASYNC -#define SS_LE(x) 0(x) -#define SS_GO(x) 8(x) -#define SS_ERRNO(x) 16(x) -#define SS_ERRNOJR(x) 20(x) - -// Function Descriptor Offsets -#define __errno 0x156*16 -#define __err2ad 0x16C*16 - -// Call Instructions -#define LE_CALL BYTE $0x0D; BYTE $0x76 // BL R7, R6 -#define SVC_LOAD BYTE $0x0A; BYTE $0x08 // SVC 08 LOAD -#define SVC_DELETE BYTE $0x0A; BYTE $0x09 // SVC 09 DELETE - -DATA zosLibVec<>(SB)/8, $0 -GLOBL zosLibVec<>(SB), NOPTR, $8 - -TEXT ·initZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD CAA(R8), R8 - MOVD EDCHPXV(R8), R8 - MOVD R8, zosLibVec<>(SB) - RET - -TEXT ·GetZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 - MOVD zosLibVec<>(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·clearErrno(SB), NOSPLIT, $0-0 - BL addrerrno<>(SB) - MOVD $0, 0(R3) - RET - -// Returns the address of errno in R3. -TEXT addrerrno<>(SB), NOSPLIT|NOFRAME, $0-0 - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get __errno FuncDesc. - MOVD CAA(R8), R9 - MOVD EDCHPXV(R9), R9 - ADD $(__errno), R9 - LMG 0(R9), R5, R6 - - // Switch to saved LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R4 - MOVD $0, 0(R9) - - // Call __errno function. - LE_CALL - NOPH - - // Switch back to Go stack. - XOR R0, R0 // Restore R0 to $0. - MOVD R4, 0(R9) // Save stack pointer. - RET - -// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) -TEXT ·svcCall(SB), NOSPLIT, $0 - BL runtime·save_g(SB) // Save g and stack pointer - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD R15, 0(R9) - - MOVD argv+8(FP), R1 // Move function arguments into registers - MOVD dsa+16(FP), g - MOVD fnptr+0(FP), R15 - - BYTE $0x0D // Branch to function - BYTE $0xEF - - BL runtime·load_g(SB) // Restore g and stack pointer - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD SAVSTACK_ASYNC(R8), R9 - MOVD 0(R9), R15 - - RET - -// func svcLoad(name *byte) unsafe.Pointer -TEXT ·svcLoad(SB), NOSPLIT, $0 - MOVD R15, R2 // Save go stack pointer - MOVD name+0(FP), R0 // Move SVC args into registers - MOVD $0x80000000, R1 - MOVD $0, R15 - SVC_LOAD - MOVW R15, R3 // Save return code from SVC - MOVD R2, R15 // Restore go stack pointer - CMP R3, $0 // Check SVC return code - BNE error - - MOVD $-2, R3 // Reset last bit of entry point to zero - AND R0, R3 - MOVD R3, ret+8(FP) // Return entry point returned by SVC - CMP R0, R3 // Check if last bit of entry point was set - BNE done - - MOVD R15, R2 // Save go stack pointer - MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) - SVC_DELETE - MOVD R2, R15 // Restore go stack pointer - -error: - MOVD $0, ret+8(FP) // Return 0 on failure - -done: - XOR R0, R0 // Reset r0 to 0 - RET - -// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 -TEXT ·svcUnload(SB), NOSPLIT, $0 - MOVD R15, R2 // Save go stack pointer - MOVD name+0(FP), R0 // Move SVC args into registers - MOVD fnptr+8(FP), R15 - SVC_DELETE - XOR R0, R0 // Reset r0 to 0 - MOVD R15, R1 // Save SVC return code - MOVD R2, R15 // Restore go stack pointer - MOVD R1, ret+16(FP) // Return SVC return code - RET - -// func gettid() uint64 -TEXT ·gettid(SB), NOSPLIT, $0 - // Get library control area (LCA). - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - - // Get CEECAATHDID - MOVD CAA(R8), R9 - MOVD CEECAATHDID(R9), R9 - MOVD R9, ret+0(FP) - - RET - -// -// Call LE function, if the return is -1 -// errno and errno2 is retrieved -// -TEXT ·CallLeFuncWithErr(SB), NOSPLIT, $0 - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD CAA(R8), R9 - MOVD g, GOCB(R9) - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address - MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer - - MOVD parms_base+8(FP), R7 // R7 -> argument array - MOVD parms_len+16(FP), R8 // R8 number of arguments - - // arg 1 ---> R1 - CMP R8, $0 - BEQ docall - SUB $1, R8 - MOVD 0(R7), R1 - - // arg 2 ---> R2 - CMP R8, $0 - BEQ docall - SUB $1, R8 - ADD $8, R7 - MOVD 0(R7), R2 - - // arg 3 --> R3 - CMP R8, $0 - BEQ docall - SUB $1, R8 - ADD $8, R7 - MOVD 0(R7), R3 - - CMP R8, $0 - BEQ docall - MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument - -repeat: - ADD $8, R7 - MOVD 0(R7), R0 // advance arg pointer by 8 byte - ADD $8, R6 // advance LE argument address by 8 byte - MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame - SUB $1, R8 - CMP R8, $0 - BNE repeat - -docall: - MOVD funcdesc+0(FP), R8 // R8-> function descriptor - LMG 0(R8), R5, R6 - MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC - LE_CALL // balr R7, R6 (return #1) - NOPH - MOVD R3, ret+32(FP) - CMP R3, $-1 // compare result to -1 - BNE done - - // retrieve errno and errno2 - MOVD zosLibVec<>(SB), R8 - ADD $(__errno), R8 - LMG 0(R8), R5, R6 - LE_CALL // balr R7, R6 __errno (return #3) - NOPH - MOVWZ 0(R3), R3 - MOVD R3, err+48(FP) - MOVD zosLibVec<>(SB), R8 - ADD $(__err2ad), R8 - LMG 0(R8), R5, R6 - LE_CALL // balr R7, R6 __err2ad (return #2) - NOPH - MOVW (R3), R2 // retrieve errno2 - MOVD R2, errno2+40(FP) // store in return area - -done: - MOVD R4, 0(R9) // Save stack pointer. - RET - -// -// Call LE function, if the return is 0 -// errno and errno2 is retrieved -// -TEXT ·CallLeFuncWithPtrReturn(SB), NOSPLIT, $0 - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD CAA(R8), R9 - MOVD g, GOCB(R9) - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address - MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer - - MOVD parms_base+8(FP), R7 // R7 -> argument array - MOVD parms_len+16(FP), R8 // R8 number of arguments - - // arg 1 ---> R1 - CMP R8, $0 - BEQ docall - SUB $1, R8 - MOVD 0(R7), R1 - - // arg 2 ---> R2 - CMP R8, $0 - BEQ docall - SUB $1, R8 - ADD $8, R7 - MOVD 0(R7), R2 - - // arg 3 --> R3 - CMP R8, $0 - BEQ docall - SUB $1, R8 - ADD $8, R7 - MOVD 0(R7), R3 - - CMP R8, $0 - BEQ docall - MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument - -repeat: - ADD $8, R7 - MOVD 0(R7), R0 // advance arg pointer by 8 byte - ADD $8, R6 // advance LE argument address by 8 byte - MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame - SUB $1, R8 - CMP R8, $0 - BNE repeat - -docall: - MOVD funcdesc+0(FP), R8 // R8-> function descriptor - LMG 0(R8), R5, R6 - MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC - LE_CALL // balr R7, R6 (return #1) - NOPH - MOVD R3, ret+32(FP) - CMP R3, $0 // compare result to 0 - BNE done - - // retrieve errno and errno2 - MOVD zosLibVec<>(SB), R8 - ADD $(__errno), R8 - LMG 0(R8), R5, R6 - LE_CALL // balr R7, R6 __errno (return #3) - NOPH - MOVWZ 0(R3), R3 - MOVD R3, err+48(FP) - MOVD zosLibVec<>(SB), R8 - ADD $(__err2ad), R8 - LMG 0(R8), R5, R6 - LE_CALL // balr R7, R6 __err2ad (return #2) - NOPH - MOVW (R3), R2 // retrieve errno2 - MOVD R2, errno2+40(FP) // store in return area - XOR R2, R2 - MOVWZ R2, (R3) // clear errno2 - -done: - MOVD R4, 0(R9) // Save stack pointer. - RET - -// -// function to test if a pointer can be safely dereferenced (content read) -// return 0 for succces -// -TEXT ·ptrtest(SB), NOSPLIT, $0-16 - MOVD arg+0(FP), R10 // test pointer in R10 - - // set up R2 to point to CEECAADMC - BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 - BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 - BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 - BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) - BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) - BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) - - // set up R5 to point to the "shunt" path which set 1 to R3 (failure) - BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 - BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 - BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 - - // if r3 is not zero (failed) then branch to finish - BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 - BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 - - // stomic store shunt address in R5 into CEECAADMC - BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) - - // now try reading from the test pointer in R10, if it fails it branches to the "lghi" instruction above - BYTE $0xE3; BYTE $0x9A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 9,0(10) - - // finish here, restore 0 into CEECAADMC - BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 - BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) - MOVD R3, ret+8(FP) // result in R3 - RET - -// -// function to test if a untptr can be loaded from a pointer -// return 1: the 8-byte content -// 2: 0 for success, 1 for failure -// -// func safeload(ptr uintptr) ( value uintptr, error uintptr) -TEXT ·safeload(SB), NOSPLIT, $0-24 - MOVD ptr+0(FP), R10 // test pointer in R10 - MOVD $0x0, R6 - BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 - BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 - BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 - BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) - BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) - BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) - BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 - BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 - BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 - BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 - BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 - BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) - BYTE $0xE3; BYTE $0x6A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 6,0(10) - BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 - BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) - MOVD R6, value+8(FP) // result in R6 - MOVD R3, error+16(FP) // error in R3 - RET diff --git a/vendor/golang.org/x/sys/unix/auxv.go b/vendor/golang.org/x/sys/unix/auxv.go deleted file mode 100644 index 37a8252..0000000 --- a/vendor/golang.org/x/sys/unix/auxv.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2025 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:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) - -package unix - -import ( - "syscall" - "unsafe" -) - -//go:linkname runtime_getAuxv runtime.getAuxv -func runtime_getAuxv() []uintptr - -// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs. -// The returned slice is always a fresh copy, owned by the caller. -// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed, -// which happens in some locked-down environments and build modes. -func Auxv() ([][2]uintptr, error) { - vec := runtime_getAuxv() - vecLen := len(vec) - - if vecLen == 0 { - return nil, syscall.ENOENT - } - - if vecLen%2 != 0 { - return nil, syscall.EINVAL - } - - result := make([]uintptr, vecLen) - copy(result, vec) - return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil -} diff --git a/vendor/golang.org/x/sys/unix/auxv_unsupported.go b/vendor/golang.org/x/sys/unix/auxv_unsupported.go deleted file mode 100644 index 1200487..0000000 --- a/vendor/golang.org/x/sys/unix/auxv_unsupported.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2025 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:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) - -package unix - -import "syscall" - -func Auxv() ([][2]uintptr, error) { - return nil, syscall.ENOTSUP -} diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go deleted file mode 100644 index a178a61..0000000 --- a/vendor/golang.org/x/sys/unix/bluetooth_linux.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Bluetooth sockets and messages - -package unix - -// Bluetooth Protocols -const ( - BTPROTO_L2CAP = 0 - BTPROTO_HCI = 1 - BTPROTO_SCO = 2 - BTPROTO_RFCOMM = 3 - BTPROTO_BNEP = 4 - BTPROTO_CMTP = 5 - BTPROTO_HIDP = 6 - BTPROTO_AVDTP = 7 -) - -const ( - HCI_CHANNEL_RAW = 0 - HCI_CHANNEL_USER = 1 - HCI_CHANNEL_MONITOR = 2 - HCI_CHANNEL_CONTROL = 3 - HCI_CHANNEL_LOGGING = 4 -) - -// Socketoption Level -const ( - SOL_BLUETOOTH = 0x112 - SOL_HCI = 0x0 - SOL_L2CAP = 0x6 - SOL_RFCOMM = 0x12 - SOL_SCO = 0x11 -) diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.go b/vendor/golang.org/x/sys/unix/bpxsvc_zos.go deleted file mode 100644 index 39d647d..0000000 --- a/vendor/golang.org/x/sys/unix/bpxsvc_zos.go +++ /dev/null @@ -1,657 +0,0 @@ -// Copyright 2024 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:build zos - -package unix - -import ( - "bytes" - "fmt" - "unsafe" -) - -//go:noescape -func bpxcall(plist []unsafe.Pointer, bpx_offset int64) - -//go:noescape -func A2e([]byte) - -//go:noescape -func E2a([]byte) - -const ( - BPX4STA = 192 // stat - BPX4FST = 104 // fstat - BPX4LST = 132 // lstat - BPX4OPN = 156 // open - BPX4CLO = 72 // close - BPX4CHR = 500 // chattr - BPX4FCR = 504 // fchattr - BPX4LCR = 1180 // lchattr - BPX4CTW = 492 // cond_timed_wait - BPX4GTH = 1056 // __getthent - BPX4PTQ = 412 // pthread_quiesc - BPX4PTR = 320 // ptrace -) - -const ( - //options - //byte1 - BPX_OPNFHIGH = 0x80 - //byte2 - BPX_OPNFEXEC = 0x80 - //byte3 - BPX_O_NOLARGEFILE = 0x08 - BPX_O_LARGEFILE = 0x04 - BPX_O_ASYNCSIG = 0x02 - BPX_O_SYNC = 0x01 - //byte4 - BPX_O_CREXCL = 0xc0 - BPX_O_CREAT = 0x80 - BPX_O_EXCL = 0x40 - BPX_O_NOCTTY = 0x20 - BPX_O_TRUNC = 0x10 - BPX_O_APPEND = 0x08 - BPX_O_NONBLOCK = 0x04 - BPX_FNDELAY = 0x04 - BPX_O_RDWR = 0x03 - BPX_O_RDONLY = 0x02 - BPX_O_WRONLY = 0x01 - BPX_O_ACCMODE = 0x03 - BPX_O_GETFL = 0x0f - - //mode - // byte1 (file type) - BPX_FT_DIR = 1 - BPX_FT_CHARSPEC = 2 - BPX_FT_REGFILE = 3 - BPX_FT_FIFO = 4 - BPX_FT_SYMLINK = 5 - BPX_FT_SOCKET = 6 - //byte3 - BPX_S_ISUID = 0x08 - BPX_S_ISGID = 0x04 - BPX_S_ISVTX = 0x02 - BPX_S_IRWXU1 = 0x01 - BPX_S_IRUSR = 0x01 - //byte4 - BPX_S_IRWXU2 = 0xc0 - BPX_S_IWUSR = 0x80 - BPX_S_IXUSR = 0x40 - BPX_S_IRWXG = 0x38 - BPX_S_IRGRP = 0x20 - BPX_S_IWGRP = 0x10 - BPX_S_IXGRP = 0x08 - BPX_S_IRWXOX = 0x07 - BPX_S_IROTH = 0x04 - BPX_S_IWOTH = 0x02 - BPX_S_IXOTH = 0x01 - - CW_INTRPT = 1 - CW_CONDVAR = 32 - CW_TIMEOUT = 64 - - PGTHA_NEXT = 2 - PGTHA_CURRENT = 1 - PGTHA_FIRST = 0 - PGTHA_LAST = 3 - PGTHA_PROCESS = 0x80 - PGTHA_CONTTY = 0x40 - PGTHA_PATH = 0x20 - PGTHA_COMMAND = 0x10 - PGTHA_FILEDATA = 0x08 - PGTHA_THREAD = 0x04 - PGTHA_PTAG = 0x02 - PGTHA_COMMANDLONG = 0x01 - PGTHA_THREADFAST = 0x80 - PGTHA_FILEPATH = 0x40 - PGTHA_THDSIGMASK = 0x20 - // thread quiece mode - QUIESCE_TERM int32 = 1 - QUIESCE_FORCE int32 = 2 - QUIESCE_QUERY int32 = 3 - QUIESCE_FREEZE int32 = 4 - QUIESCE_UNFREEZE int32 = 5 - FREEZE_THIS_THREAD int32 = 6 - FREEZE_EXIT int32 = 8 - QUIESCE_SRB int32 = 9 -) - -type Pgtha struct { - Pid uint32 // 0 - Tid0 uint32 // 4 - Tid1 uint32 - Accesspid byte // C - Accesstid byte // D - Accessasid uint16 // E - Loginname [8]byte // 10 - Flag1 byte // 18 - Flag1b2 byte // 19 -} - -type Bpxystat_t struct { // DSECT BPXYSTAT - St_id [4]uint8 // 0 - St_length uint16 // 0x4 - St_version uint16 // 0x6 - St_mode uint32 // 0x8 - St_ino uint32 // 0xc - St_dev uint32 // 0x10 - St_nlink uint32 // 0x14 - St_uid uint32 // 0x18 - St_gid uint32 // 0x1c - St_size uint64 // 0x20 - St_atime uint32 // 0x28 - St_mtime uint32 // 0x2c - St_ctime uint32 // 0x30 - St_rdev uint32 // 0x34 - St_auditoraudit uint32 // 0x38 - St_useraudit uint32 // 0x3c - St_blksize uint32 // 0x40 - St_createtime uint32 // 0x44 - St_auditid [4]uint32 // 0x48 - St_res01 uint32 // 0x58 - Ft_ccsid uint16 // 0x5c - Ft_flags uint16 // 0x5e - St_res01a [2]uint32 // 0x60 - St_res02 uint32 // 0x68 - St_blocks uint32 // 0x6c - St_opaque [3]uint8 // 0x70 - St_visible uint8 // 0x73 - St_reftime uint32 // 0x74 - St_fid uint64 // 0x78 - St_filefmt uint8 // 0x80 - St_fspflag2 uint8 // 0x81 - St_res03 [2]uint8 // 0x82 - St_ctimemsec uint32 // 0x84 - St_seclabel [8]uint8 // 0x88 - St_res04 [4]uint8 // 0x90 - // end of version 1 - _ uint32 // 0x94 - St_atime64 uint64 // 0x98 - St_mtime64 uint64 // 0xa0 - St_ctime64 uint64 // 0xa8 - St_createtime64 uint64 // 0xb0 - St_reftime64 uint64 // 0xb8 - _ uint64 // 0xc0 - St_res05 [16]uint8 // 0xc8 - // end of version 2 -} - -type BpxFilestatus struct { - Oflag1 byte - Oflag2 byte - Oflag3 byte - Oflag4 byte -} - -type BpxMode struct { - Ftype byte - Mode1 byte - Mode2 byte - Mode3 byte -} - -// Thr attribute structure for extended attributes -type Bpxyatt_t struct { // DSECT BPXYATT - Att_id [4]uint8 - Att_version uint16 - Att_res01 [2]uint8 - Att_setflags1 uint8 - Att_setflags2 uint8 - Att_setflags3 uint8 - Att_setflags4 uint8 - Att_mode uint32 - Att_uid uint32 - Att_gid uint32 - Att_opaquemask [3]uint8 - Att_visblmaskres uint8 - Att_opaque [3]uint8 - Att_visibleres uint8 - Att_size_h uint32 - Att_size_l uint32 - Att_atime uint32 - Att_mtime uint32 - Att_auditoraudit uint32 - Att_useraudit uint32 - Att_ctime uint32 - Att_reftime uint32 - // end of version 1 - Att_filefmt uint8 - Att_res02 [3]uint8 - Att_filetag uint32 - Att_res03 [8]uint8 - // end of version 2 - Att_atime64 uint64 - Att_mtime64 uint64 - Att_ctime64 uint64 - Att_reftime64 uint64 - Att_seclabel [8]uint8 - Att_ver3res02 [8]uint8 - // end of version 3 -} - -func BpxOpen(name string, options *BpxFilestatus, mode *BpxMode) (rv int32, rc int32, rn int32) { - if len(name) < 1024 { - var namebuf [1024]byte - sz := int32(copy(namebuf[:], name)) - A2e(namebuf[:sz]) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(options) - parms[3] = unsafe.Pointer(mode) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4OPN) - return rv, rc, rn - } - return -1, -1, -1 -} - -func BpxClose(fd int32) (rv int32, rc int32, rn int32) { - var parms [4]unsafe.Pointer - parms[0] = unsafe.Pointer(&fd) - parms[1] = unsafe.Pointer(&rv) - parms[2] = unsafe.Pointer(&rc) - parms[3] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4CLO) - return rv, rc, rn -} - -func BpxFileFStat(fd int32, st *Bpxystat_t) (rv int32, rc int32, rn int32) { - st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} - st.St_version = 2 - stat_sz := uint32(unsafe.Sizeof(*st)) - var parms [6]unsafe.Pointer - parms[0] = unsafe.Pointer(&fd) - parms[1] = unsafe.Pointer(&stat_sz) - parms[2] = unsafe.Pointer(st) - parms[3] = unsafe.Pointer(&rv) - parms[4] = unsafe.Pointer(&rc) - parms[5] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4FST) - return rv, rc, rn -} - -func BpxFileStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { - if len(name) < 1024 { - var namebuf [1024]byte - sz := int32(copy(namebuf[:], name)) - A2e(namebuf[:sz]) - st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} - st.St_version = 2 - stat_sz := uint32(unsafe.Sizeof(*st)) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(&stat_sz) - parms[3] = unsafe.Pointer(st) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4STA) - return rv, rc, rn - } - return -1, -1, -1 -} - -func BpxFileLStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { - if len(name) < 1024 { - var namebuf [1024]byte - sz := int32(copy(namebuf[:], name)) - A2e(namebuf[:sz]) - st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} - st.St_version = 2 - stat_sz := uint32(unsafe.Sizeof(*st)) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(&stat_sz) - parms[3] = unsafe.Pointer(st) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4LST) - return rv, rc, rn - } - return -1, -1, -1 -} - -func BpxChattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { - if len(path) >= 1024 { - return -1, -1, -1 - } - var namebuf [1024]byte - sz := int32(copy(namebuf[:], path)) - A2e(namebuf[:sz]) - attr_sz := uint32(unsafe.Sizeof(*attr)) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(&attr_sz) - parms[3] = unsafe.Pointer(attr) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4CHR) - return rv, rc, rn -} - -func BpxLchattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { - if len(path) >= 1024 { - return -1, -1, -1 - } - var namebuf [1024]byte - sz := int32(copy(namebuf[:], path)) - A2e(namebuf[:sz]) - attr_sz := uint32(unsafe.Sizeof(*attr)) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(&attr_sz) - parms[3] = unsafe.Pointer(attr) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4LCR) - return rv, rc, rn -} - -func BpxFchattr(fd int32, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { - attr_sz := uint32(unsafe.Sizeof(*attr)) - var parms [6]unsafe.Pointer - parms[0] = unsafe.Pointer(&fd) - parms[1] = unsafe.Pointer(&attr_sz) - parms[2] = unsafe.Pointer(attr) - parms[3] = unsafe.Pointer(&rv) - parms[4] = unsafe.Pointer(&rc) - parms[5] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4FCR) - return rv, rc, rn -} - -func BpxCondTimedWait(sec uint32, nsec uint32, events uint32, secrem *uint32, nsecrem *uint32) (rv int32, rc int32, rn int32) { - var parms [8]unsafe.Pointer - parms[0] = unsafe.Pointer(&sec) - parms[1] = unsafe.Pointer(&nsec) - parms[2] = unsafe.Pointer(&events) - parms[3] = unsafe.Pointer(secrem) - parms[4] = unsafe.Pointer(nsecrem) - parms[5] = unsafe.Pointer(&rv) - parms[6] = unsafe.Pointer(&rc) - parms[7] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4CTW) - return rv, rc, rn -} -func BpxGetthent(in *Pgtha, outlen *uint32, out unsafe.Pointer) (rv int32, rc int32, rn int32) { - var parms [7]unsafe.Pointer - inlen := uint32(26) // nothing else will work. Go says Pgtha is 28-byte because of alignment, but Pgtha is "packed" and must be 26-byte - parms[0] = unsafe.Pointer(&inlen) - parms[1] = unsafe.Pointer(&in) - parms[2] = unsafe.Pointer(outlen) - parms[3] = unsafe.Pointer(&out) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4GTH) - return rv, rc, rn -} -func ZosJobname() (jobname string, err error) { - var pgtha Pgtha - pgtha.Pid = uint32(Getpid()) - pgtha.Accesspid = PGTHA_CURRENT - pgtha.Flag1 = PGTHA_PROCESS - var out [256]byte - var outlen uint32 - outlen = 256 - rv, rc, rn := BpxGetthent(&pgtha, &outlen, unsafe.Pointer(&out[0])) - if rv == 0 { - gthc := []byte{0x87, 0xa3, 0x88, 0x83} // 'gthc' in ebcdic - ix := bytes.Index(out[:], gthc) - if ix == -1 { - err = fmt.Errorf("BPX4GTH: gthc return data not found") - return - } - jn := out[ix+80 : ix+88] // we didn't declare Pgthc, but jobname is 8-byte at offset 80 - E2a(jn) - jobname = string(bytes.TrimRight(jn, " ")) - - } else { - err = fmt.Errorf("BPX4GTH: rc=%d errno=%d reason=code=0x%x", rv, rc, rn) - } - return -} -func Bpx4ptq(code int32, data string) (rv int32, rc int32, rn int32) { - var userdata [8]byte - var parms [5]unsafe.Pointer - copy(userdata[:], data+" ") - A2e(userdata[:]) - parms[0] = unsafe.Pointer(&code) - parms[1] = unsafe.Pointer(&userdata[0]) - parms[2] = unsafe.Pointer(&rv) - parms[3] = unsafe.Pointer(&rc) - parms[4] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4PTQ) - return rv, rc, rn -} - -const ( - PT_TRACE_ME = 0 // Debug this process - PT_READ_I = 1 // Read a full word - PT_READ_D = 2 // Read a full word - PT_READ_U = 3 // Read control info - PT_WRITE_I = 4 //Write a full word - PT_WRITE_D = 5 //Write a full word - PT_CONTINUE = 7 //Continue the process - PT_KILL = 8 //Terminate the process - PT_READ_GPR = 11 // Read GPR, CR, PSW - PT_READ_FPR = 12 // Read FPR - PT_READ_VR = 13 // Read VR - PT_WRITE_GPR = 14 // Write GPR, CR, PSW - PT_WRITE_FPR = 15 // Write FPR - PT_WRITE_VR = 16 // Write VR - PT_READ_BLOCK = 17 // Read storage - PT_WRITE_BLOCK = 19 // Write storage - PT_READ_GPRH = 20 // Read GPRH - PT_WRITE_GPRH = 21 // Write GPRH - PT_REGHSET = 22 // Read all GPRHs - PT_ATTACH = 30 // Attach to a process - PT_DETACH = 31 // Detach from a process - PT_REGSET = 32 // Read all GPRs - PT_REATTACH = 33 // Reattach to a process - PT_LDINFO = 34 // Read loader info - PT_MULTI = 35 // Multi process mode - PT_LD64INFO = 36 // RMODE64 Info Area - PT_BLOCKREQ = 40 // Block request - PT_THREAD_INFO = 60 // Read thread info - PT_THREAD_MODIFY = 61 - PT_THREAD_READ_FOCUS = 62 - PT_THREAD_WRITE_FOCUS = 63 - PT_THREAD_HOLD = 64 - PT_THREAD_SIGNAL = 65 - PT_EXPLAIN = 66 - PT_EVENTS = 67 - PT_THREAD_INFO_EXTENDED = 68 - PT_REATTACH2 = 71 - PT_CAPTURE = 72 - PT_UNCAPTURE = 73 - PT_GET_THREAD_TCB = 74 - PT_GET_ALET = 75 - PT_SWAPIN = 76 - PT_EXTENDED_EVENT = 98 - PT_RECOVER = 99 // Debug a program check - PT_GPR0 = 0 // General purpose register 0 - PT_GPR1 = 1 // General purpose register 1 - PT_GPR2 = 2 // General purpose register 2 - PT_GPR3 = 3 // General purpose register 3 - PT_GPR4 = 4 // General purpose register 4 - PT_GPR5 = 5 // General purpose register 5 - PT_GPR6 = 6 // General purpose register 6 - PT_GPR7 = 7 // General purpose register 7 - PT_GPR8 = 8 // General purpose register 8 - PT_GPR9 = 9 // General purpose register 9 - PT_GPR10 = 10 // General purpose register 10 - PT_GPR11 = 11 // General purpose register 11 - PT_GPR12 = 12 // General purpose register 12 - PT_GPR13 = 13 // General purpose register 13 - PT_GPR14 = 14 // General purpose register 14 - PT_GPR15 = 15 // General purpose register 15 - PT_FPR0 = 16 // Floating point register 0 - PT_FPR1 = 17 // Floating point register 1 - PT_FPR2 = 18 // Floating point register 2 - PT_FPR3 = 19 // Floating point register 3 - PT_FPR4 = 20 // Floating point register 4 - PT_FPR5 = 21 // Floating point register 5 - PT_FPR6 = 22 // Floating point register 6 - PT_FPR7 = 23 // Floating point register 7 - PT_FPR8 = 24 // Floating point register 8 - PT_FPR9 = 25 // Floating point register 9 - PT_FPR10 = 26 // Floating point register 10 - PT_FPR11 = 27 // Floating point register 11 - PT_FPR12 = 28 // Floating point register 12 - PT_FPR13 = 29 // Floating point register 13 - PT_FPR14 = 30 // Floating point register 14 - PT_FPR15 = 31 // Floating point register 15 - PT_FPC = 32 // Floating point control register - PT_PSW = 40 // PSW - PT_PSW0 = 40 // Left half of the PSW - PT_PSW1 = 41 // Right half of the PSW - PT_CR0 = 42 // Control register 0 - PT_CR1 = 43 // Control register 1 - PT_CR2 = 44 // Control register 2 - PT_CR3 = 45 // Control register 3 - PT_CR4 = 46 // Control register 4 - PT_CR5 = 47 // Control register 5 - PT_CR6 = 48 // Control register 6 - PT_CR7 = 49 // Control register 7 - PT_CR8 = 50 // Control register 8 - PT_CR9 = 51 // Control register 9 - PT_CR10 = 52 // Control register 10 - PT_CR11 = 53 // Control register 11 - PT_CR12 = 54 // Control register 12 - PT_CR13 = 55 // Control register 13 - PT_CR14 = 56 // Control register 14 - PT_CR15 = 57 // Control register 15 - PT_GPRH0 = 58 // GP High register 0 - PT_GPRH1 = 59 // GP High register 1 - PT_GPRH2 = 60 // GP High register 2 - PT_GPRH3 = 61 // GP High register 3 - PT_GPRH4 = 62 // GP High register 4 - PT_GPRH5 = 63 // GP High register 5 - PT_GPRH6 = 64 // GP High register 6 - PT_GPRH7 = 65 // GP High register 7 - PT_GPRH8 = 66 // GP High register 8 - PT_GPRH9 = 67 // GP High register 9 - PT_GPRH10 = 68 // GP High register 10 - PT_GPRH11 = 69 // GP High register 11 - PT_GPRH12 = 70 // GP High register 12 - PT_GPRH13 = 71 // GP High register 13 - PT_GPRH14 = 72 // GP High register 14 - PT_GPRH15 = 73 // GP High register 15 - PT_VR0 = 74 // Vector register 0 - PT_VR1 = 75 // Vector register 1 - PT_VR2 = 76 // Vector register 2 - PT_VR3 = 77 // Vector register 3 - PT_VR4 = 78 // Vector register 4 - PT_VR5 = 79 // Vector register 5 - PT_VR6 = 80 // Vector register 6 - PT_VR7 = 81 // Vector register 7 - PT_VR8 = 82 // Vector register 8 - PT_VR9 = 83 // Vector register 9 - PT_VR10 = 84 // Vector register 10 - PT_VR11 = 85 // Vector register 11 - PT_VR12 = 86 // Vector register 12 - PT_VR13 = 87 // Vector register 13 - PT_VR14 = 88 // Vector register 14 - PT_VR15 = 89 // Vector register 15 - PT_VR16 = 90 // Vector register 16 - PT_VR17 = 91 // Vector register 17 - PT_VR18 = 92 // Vector register 18 - PT_VR19 = 93 // Vector register 19 - PT_VR20 = 94 // Vector register 20 - PT_VR21 = 95 // Vector register 21 - PT_VR22 = 96 // Vector register 22 - PT_VR23 = 97 // Vector register 23 - PT_VR24 = 98 // Vector register 24 - PT_VR25 = 99 // Vector register 25 - PT_VR26 = 100 // Vector register 26 - PT_VR27 = 101 // Vector register 27 - PT_VR28 = 102 // Vector register 28 - PT_VR29 = 103 // Vector register 29 - PT_VR30 = 104 // Vector register 30 - PT_VR31 = 105 // Vector register 31 - PT_PSWG = 106 // PSWG - PT_PSWG0 = 106 // Bytes 0-3 - PT_PSWG1 = 107 // Bytes 4-7 - PT_PSWG2 = 108 // Bytes 8-11 (IA high word) - PT_PSWG3 = 109 // Bytes 12-15 (IA low word) -) - -func Bpx4ptr(request int32, pid int32, addr unsafe.Pointer, data unsafe.Pointer, buffer unsafe.Pointer) (rv int32, rc int32, rn int32) { - var parms [8]unsafe.Pointer - parms[0] = unsafe.Pointer(&request) - parms[1] = unsafe.Pointer(&pid) - parms[2] = unsafe.Pointer(&addr) - parms[3] = unsafe.Pointer(&data) - parms[4] = unsafe.Pointer(&buffer) - parms[5] = unsafe.Pointer(&rv) - parms[6] = unsafe.Pointer(&rc) - parms[7] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4PTR) - return rv, rc, rn -} - -func copyU8(val uint8, dest []uint8) int { - if len(dest) < 1 { - return 0 - } - dest[0] = val - return 1 -} - -func copyU8Arr(src, dest []uint8) int { - if len(dest) < len(src) { - return 0 - } - for i, v := range src { - dest[i] = v - } - return len(src) -} - -func copyU16(val uint16, dest []uint16) int { - if len(dest) < 1 { - return 0 - } - dest[0] = val - return 1 -} - -func copyU32(val uint32, dest []uint32) int { - if len(dest) < 1 { - return 0 - } - dest[0] = val - return 1 -} - -func copyU32Arr(src, dest []uint32) int { - if len(dest) < len(src) { - return 0 - } - for i, v := range src { - dest[i] = v - } - return len(src) -} - -func copyU64(val uint64, dest []uint64) int { - if len(dest) < 1 { - return 0 - } - dest[0] = val - return 1 -} diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.s b/vendor/golang.org/x/sys/unix/bpxsvc_zos.s deleted file mode 100644 index 4bd4a17..0000000 --- a/vendor/golang.org/x/sys/unix/bpxsvc_zos.s +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright 2024 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. - -#include "go_asm.h" -#include "textflag.h" - -// function to call USS assembly language services -// -// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bit64env.htm -// -// arg1 unsafe.Pointer array that ressembles an OS PLIST -// -// arg2 function offset as in -// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bpx2cr_List_of_offsets.htm -// -// func bpxcall(plist []unsafe.Pointer, bpx_offset int64) - -TEXT ·bpxcall(SB), NOSPLIT|NOFRAME, $0 - MOVD plist_base+0(FP), R1 // r1 points to plist - MOVD bpx_offset+24(FP), R2 // r2 offset to BPX vector table - MOVD R14, R7 // save r14 - MOVD R15, R8 // save r15 - MOVWZ 16(R0), R9 - MOVWZ 544(R9), R9 - MOVWZ 24(R9), R9 // call vector in r9 - ADD R2, R9 // add offset to vector table - MOVWZ (R9), R9 // r9 points to entry point - BYTE $0x0D // BL R14,R9 --> basr r14,r9 - BYTE $0xE9 // clobbers 0,1,14,15 - MOVD R8, R15 // restore 15 - JMP R7 // return via saved return address - -// func A2e(arr [] byte) -// code page conversion from 819 to 1047 -TEXT ·A2e(SB), NOSPLIT|NOFRAME, $0 - MOVD arg_base+0(FP), R2 // pointer to arry of characters - MOVD arg_len+8(FP), R3 // count - XOR R0, R0 - XOR R1, R1 - BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) - - // ASCII -> EBCDIC conversion table: - BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 - BYTE $0x37; BYTE $0x2d; BYTE $0x2e; BYTE $0x2f - BYTE $0x16; BYTE $0x05; BYTE $0x15; BYTE $0x0b - BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f - BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 - BYTE $0x3c; BYTE $0x3d; BYTE $0x32; BYTE $0x26 - BYTE $0x18; BYTE $0x19; BYTE $0x3f; BYTE $0x27 - BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f - BYTE $0x40; BYTE $0x5a; BYTE $0x7f; BYTE $0x7b - BYTE $0x5b; BYTE $0x6c; BYTE $0x50; BYTE $0x7d - BYTE $0x4d; BYTE $0x5d; BYTE $0x5c; BYTE $0x4e - BYTE $0x6b; BYTE $0x60; BYTE $0x4b; BYTE $0x61 - BYTE $0xf0; BYTE $0xf1; BYTE $0xf2; BYTE $0xf3 - BYTE $0xf4; BYTE $0xf5; BYTE $0xf6; BYTE $0xf7 - BYTE $0xf8; BYTE $0xf9; BYTE $0x7a; BYTE $0x5e - BYTE $0x4c; BYTE $0x7e; BYTE $0x6e; BYTE $0x6f - BYTE $0x7c; BYTE $0xc1; BYTE $0xc2; BYTE $0xc3 - BYTE $0xc4; BYTE $0xc5; BYTE $0xc6; BYTE $0xc7 - BYTE $0xc8; BYTE $0xc9; BYTE $0xd1; BYTE $0xd2 - BYTE $0xd3; BYTE $0xd4; BYTE $0xd5; BYTE $0xd6 - BYTE $0xd7; BYTE $0xd8; BYTE $0xd9; BYTE $0xe2 - BYTE $0xe3; BYTE $0xe4; BYTE $0xe5; BYTE $0xe6 - BYTE $0xe7; BYTE $0xe8; BYTE $0xe9; BYTE $0xad - BYTE $0xe0; BYTE $0xbd; BYTE $0x5f; BYTE $0x6d - BYTE $0x79; BYTE $0x81; BYTE $0x82; BYTE $0x83 - BYTE $0x84; BYTE $0x85; BYTE $0x86; BYTE $0x87 - BYTE $0x88; BYTE $0x89; BYTE $0x91; BYTE $0x92 - BYTE $0x93; BYTE $0x94; BYTE $0x95; BYTE $0x96 - BYTE $0x97; BYTE $0x98; BYTE $0x99; BYTE $0xa2 - BYTE $0xa3; BYTE $0xa4; BYTE $0xa5; BYTE $0xa6 - BYTE $0xa7; BYTE $0xa8; BYTE $0xa9; BYTE $0xc0 - BYTE $0x4f; BYTE $0xd0; BYTE $0xa1; BYTE $0x07 - BYTE $0x20; BYTE $0x21; BYTE $0x22; BYTE $0x23 - BYTE $0x24; BYTE $0x25; BYTE $0x06; BYTE $0x17 - BYTE $0x28; BYTE $0x29; BYTE $0x2a; BYTE $0x2b - BYTE $0x2c; BYTE $0x09; BYTE $0x0a; BYTE $0x1b - BYTE $0x30; BYTE $0x31; BYTE $0x1a; BYTE $0x33 - BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x08 - BYTE $0x38; BYTE $0x39; BYTE $0x3a; BYTE $0x3b - BYTE $0x04; BYTE $0x14; BYTE $0x3e; BYTE $0xff - BYTE $0x41; BYTE $0xaa; BYTE $0x4a; BYTE $0xb1 - BYTE $0x9f; BYTE $0xb2; BYTE $0x6a; BYTE $0xb5 - BYTE $0xbb; BYTE $0xb4; BYTE $0x9a; BYTE $0x8a - BYTE $0xb0; BYTE $0xca; BYTE $0xaf; BYTE $0xbc - BYTE $0x90; BYTE $0x8f; BYTE $0xea; BYTE $0xfa - BYTE $0xbe; BYTE $0xa0; BYTE $0xb6; BYTE $0xb3 - BYTE $0x9d; BYTE $0xda; BYTE $0x9b; BYTE $0x8b - BYTE $0xb7; BYTE $0xb8; BYTE $0xb9; BYTE $0xab - BYTE $0x64; BYTE $0x65; BYTE $0x62; BYTE $0x66 - BYTE $0x63; BYTE $0x67; BYTE $0x9e; BYTE $0x68 - BYTE $0x74; BYTE $0x71; BYTE $0x72; BYTE $0x73 - BYTE $0x78; BYTE $0x75; BYTE $0x76; BYTE $0x77 - BYTE $0xac; BYTE $0x69; BYTE $0xed; BYTE $0xee - BYTE $0xeb; BYTE $0xef; BYTE $0xec; BYTE $0xbf - BYTE $0x80; BYTE $0xfd; BYTE $0xfe; BYTE $0xfb - BYTE $0xfc; BYTE $0xba; BYTE $0xae; BYTE $0x59 - BYTE $0x44; BYTE $0x45; BYTE $0x42; BYTE $0x46 - BYTE $0x43; BYTE $0x47; BYTE $0x9c; BYTE $0x48 - BYTE $0x54; BYTE $0x51; BYTE $0x52; BYTE $0x53 - BYTE $0x58; BYTE $0x55; BYTE $0x56; BYTE $0x57 - BYTE $0x8c; BYTE $0x49; BYTE $0xcd; BYTE $0xce - BYTE $0xcb; BYTE $0xcf; BYTE $0xcc; BYTE $0xe1 - BYTE $0x70; BYTE $0xdd; BYTE $0xde; BYTE $0xdb - BYTE $0xdc; BYTE $0x8d; BYTE $0x8e; BYTE $0xdf - -retry: - WORD $0xB9931022 // TROO 2,2,b'0001' - BVS retry - RET - -// func e2a(arr [] byte) -// code page conversion from 1047 to 819 -TEXT ·E2a(SB), NOSPLIT|NOFRAME, $0 - MOVD arg_base+0(FP), R2 // pointer to arry of characters - MOVD arg_len+8(FP), R3 // count - XOR R0, R0 - XOR R1, R1 - BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) - - // EBCDIC -> ASCII conversion table: - BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 - BYTE $0x9c; BYTE $0x09; BYTE $0x86; BYTE $0x7f - BYTE $0x97; BYTE $0x8d; BYTE $0x8e; BYTE $0x0b - BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f - BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 - BYTE $0x9d; BYTE $0x0a; BYTE $0x08; BYTE $0x87 - BYTE $0x18; BYTE $0x19; BYTE $0x92; BYTE $0x8f - BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f - BYTE $0x80; BYTE $0x81; BYTE $0x82; BYTE $0x83 - BYTE $0x84; BYTE $0x85; BYTE $0x17; BYTE $0x1b - BYTE $0x88; BYTE $0x89; BYTE $0x8a; BYTE $0x8b - BYTE $0x8c; BYTE $0x05; BYTE $0x06; BYTE $0x07 - BYTE $0x90; BYTE $0x91; BYTE $0x16; BYTE $0x93 - BYTE $0x94; BYTE $0x95; BYTE $0x96; BYTE $0x04 - BYTE $0x98; BYTE $0x99; BYTE $0x9a; BYTE $0x9b - BYTE $0x14; BYTE $0x15; BYTE $0x9e; BYTE $0x1a - BYTE $0x20; BYTE $0xa0; BYTE $0xe2; BYTE $0xe4 - BYTE $0xe0; BYTE $0xe1; BYTE $0xe3; BYTE $0xe5 - BYTE $0xe7; BYTE $0xf1; BYTE $0xa2; BYTE $0x2e - BYTE $0x3c; BYTE $0x28; BYTE $0x2b; BYTE $0x7c - BYTE $0x26; BYTE $0xe9; BYTE $0xea; BYTE $0xeb - BYTE $0xe8; BYTE $0xed; BYTE $0xee; BYTE $0xef - BYTE $0xec; BYTE $0xdf; BYTE $0x21; BYTE $0x24 - BYTE $0x2a; BYTE $0x29; BYTE $0x3b; BYTE $0x5e - BYTE $0x2d; BYTE $0x2f; BYTE $0xc2; BYTE $0xc4 - BYTE $0xc0; BYTE $0xc1; BYTE $0xc3; BYTE $0xc5 - BYTE $0xc7; BYTE $0xd1; BYTE $0xa6; BYTE $0x2c - BYTE $0x25; BYTE $0x5f; BYTE $0x3e; BYTE $0x3f - BYTE $0xf8; BYTE $0xc9; BYTE $0xca; BYTE $0xcb - BYTE $0xc8; BYTE $0xcd; BYTE $0xce; BYTE $0xcf - BYTE $0xcc; BYTE $0x60; BYTE $0x3a; BYTE $0x23 - BYTE $0x40; BYTE $0x27; BYTE $0x3d; BYTE $0x22 - BYTE $0xd8; BYTE $0x61; BYTE $0x62; BYTE $0x63 - BYTE $0x64; BYTE $0x65; BYTE $0x66; BYTE $0x67 - BYTE $0x68; BYTE $0x69; BYTE $0xab; BYTE $0xbb - BYTE $0xf0; BYTE $0xfd; BYTE $0xfe; BYTE $0xb1 - BYTE $0xb0; BYTE $0x6a; BYTE $0x6b; BYTE $0x6c - BYTE $0x6d; BYTE $0x6e; BYTE $0x6f; BYTE $0x70 - BYTE $0x71; BYTE $0x72; BYTE $0xaa; BYTE $0xba - BYTE $0xe6; BYTE $0xb8; BYTE $0xc6; BYTE $0xa4 - BYTE $0xb5; BYTE $0x7e; BYTE $0x73; BYTE $0x74 - BYTE $0x75; BYTE $0x76; BYTE $0x77; BYTE $0x78 - BYTE $0x79; BYTE $0x7a; BYTE $0xa1; BYTE $0xbf - BYTE $0xd0; BYTE $0x5b; BYTE $0xde; BYTE $0xae - BYTE $0xac; BYTE $0xa3; BYTE $0xa5; BYTE $0xb7 - BYTE $0xa9; BYTE $0xa7; BYTE $0xb6; BYTE $0xbc - BYTE $0xbd; BYTE $0xbe; BYTE $0xdd; BYTE $0xa8 - BYTE $0xaf; BYTE $0x5d; BYTE $0xb4; BYTE $0xd7 - BYTE $0x7b; BYTE $0x41; BYTE $0x42; BYTE $0x43 - BYTE $0x44; BYTE $0x45; BYTE $0x46; BYTE $0x47 - BYTE $0x48; BYTE $0x49; BYTE $0xad; BYTE $0xf4 - BYTE $0xf6; BYTE $0xf2; BYTE $0xf3; BYTE $0xf5 - BYTE $0x7d; BYTE $0x4a; BYTE $0x4b; BYTE $0x4c - BYTE $0x4d; BYTE $0x4e; BYTE $0x4f; BYTE $0x50 - BYTE $0x51; BYTE $0x52; BYTE $0xb9; BYTE $0xfb - BYTE $0xfc; BYTE $0xf9; BYTE $0xfa; BYTE $0xff - BYTE $0x5c; BYTE $0xf7; BYTE $0x53; BYTE $0x54 - BYTE $0x55; BYTE $0x56; BYTE $0x57; BYTE $0x58 - BYTE $0x59; BYTE $0x5a; BYTE $0xb2; BYTE $0xd4 - BYTE $0xd6; BYTE $0xd2; BYTE $0xd3; BYTE $0xd5 - BYTE $0x30; BYTE $0x31; BYTE $0x32; BYTE $0x33 - BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x37 - BYTE $0x38; BYTE $0x39; BYTE $0xb3; BYTE $0xdb - BYTE $0xdc; BYTE $0xd9; BYTE $0xda; BYTE $0x9f - -retry: - WORD $0xB9931022 // TROO 2,2,b'0001' - BVS retry - RET diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go deleted file mode 100644 index a086578..0000000 --- a/vendor/golang.org/x/sys/unix/cap_freebsd.go +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build freebsd - -package unix - -import ( - "errors" - "fmt" -) - -// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c - -const ( - // This is the version of CapRights this package understands. See C implementation for parallels. - capRightsGoVersion = CAP_RIGHTS_VERSION_00 - capArSizeMin = CAP_RIGHTS_VERSION_00 + 2 - capArSizeMax = capRightsGoVersion + 2 -) - -var ( - bit2idx = []int{ - -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, - 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - } -) - -func capidxbit(right uint64) int { - return int((right >> 57) & 0x1f) -} - -func rightToIndex(right uint64) (int, error) { - idx := capidxbit(right) - if idx < 0 || idx >= len(bit2idx) { - return -2, fmt.Errorf("index for right 0x%x out of range", right) - } - return bit2idx[idx], nil -} - -func caprver(right uint64) int { - return int(right >> 62) -} - -func capver(rights *CapRights) int { - return caprver(rights.Rights[0]) -} - -func caparsize(rights *CapRights) int { - return capver(rights) + 2 -} - -// CapRightsSet sets the permissions in setrights in rights. -func CapRightsSet(rights *CapRights, setrights []uint64) error { - // This is essentially a copy of cap_rights_vset() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return errors.New("bad rights size") - } - - for _, right := range setrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return err - } - if i >= n { - return errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch") - } - rights.Rights[i] |= right - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch (after assign)") - } - } - - return nil -} - -// CapRightsClear clears the permissions in clearrights from rights. -func CapRightsClear(rights *CapRights, clearrights []uint64) error { - // This is essentially a copy of cap_rights_vclear() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return errors.New("bad rights size") - } - - for _, right := range clearrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return err - } - if i >= n { - return errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch") - } - rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch (after assign)") - } - } - - return nil -} - -// CapRightsIsSet checks whether all the permissions in setrights are present in rights. -func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) { - // This is essentially a copy of cap_rights_is_vset() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return false, fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return false, errors.New("bad rights size") - } - - for _, right := range setrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return false, errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return false, err - } - if i >= n { - return false, errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return false, errors.New("index mismatch") - } - if (rights.Rights[i] & right) != right { - return false, nil - } - } - - return true, nil -} - -func capright(idx uint64, bit uint64) uint64 { - return ((1 << (57 + idx)) | bit) -} - -// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights. -// See man cap_rights_init(3) and rights(4). -func CapRightsInit(rights []uint64) (*CapRights, error) { - var r CapRights - r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0) - r.Rights[1] = capright(1, 0) - - err := CapRightsSet(&r, rights) - if err != nil { - return nil, err - } - return &r, nil -} - -// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights. -// The capability rights on fd can never be increased by CapRightsLimit. -// See man cap_rights_limit(2) and rights(4). -func CapRightsLimit(fd uintptr, rights *CapRights) error { - return capRightsLimit(int(fd), rights) -} - -// CapRightsGet returns a CapRights structure containing the operations permitted on fd. -// See man cap_rights_get(3) and rights(4). -func CapRightsGet(fd uintptr) (*CapRights, error) { - r, err := CapRightsInit(nil) - if err != nil { - return nil, err - } - err = capRightsGet(capRightsGoVersion, int(fd), r) - if err != nil { - return nil, err - } - return r, nil -} diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go deleted file mode 100644 index 6fb7cb7..0000000 --- a/vendor/golang.org/x/sys/unix/constants.go +++ /dev/null @@ -1,13 +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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -const ( - R_OK = 0x4 - W_OK = 0x2 - X_OK = 0x1 -) diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go deleted file mode 100644 index d785134..0000000 --- a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go +++ /dev/null @@ -1,26 +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. - -//go:build aix && ppc - -// Functions to access/create device major and minor numbers matching the -// encoding used by AIX. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 16) & 0xffff) -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff) -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return uint64(((major) << 16) | (minor)) -} diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go deleted file mode 100644 index 623a5e6..0000000 --- a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go +++ /dev/null @@ -1,28 +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. - -//go:build aix && ppc64 - -// Functions to access/create device major and minor numbers matching the -// encoding used AIX. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x3fffffff00000000) >> 32) -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - return uint32((dev & 0x00000000ffffffff) >> 0) -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - var DEVNO64 uint64 - DEVNO64 = 0x8000000000000000 - return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64) -} diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go deleted file mode 100644 index 8d1dc0f..0000000 --- a/vendor/golang.org/x/sys/unix/dev_darwin.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in Darwin's sys/types.h header. - -package unix - -// Major returns the major component of a Darwin device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 24) & 0xff) -} - -// Minor returns the minor component of a Darwin device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffffff) -} - -// Mkdev returns a Darwin device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 24) | uint64(minor) -} diff --git a/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/vendor/golang.org/x/sys/unix/dev_dragonfly.go deleted file mode 100644 index 8502f20..0000000 --- a/vendor/golang.org/x/sys/unix/dev_dragonfly.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in Dragonfly's sys/types.h header. -// -// The information below is extracted and adapted from sys/types.h: -// -// Minor gives a cookie instead of an index since in order to avoid changing the -// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for -// devices that don't use them. - -package unix - -// Major returns the major component of a DragonFlyBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 8) & 0xff) -} - -// Minor returns the minor component of a DragonFlyBSD device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff00ff) -} - -// Mkdev returns a DragonFlyBSD device number generated from the given major and -// minor components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 8) | uint64(minor) -} diff --git a/vendor/golang.org/x/sys/unix/dev_freebsd.go b/vendor/golang.org/x/sys/unix/dev_freebsd.go deleted file mode 100644 index eba3b4b..0000000 --- a/vendor/golang.org/x/sys/unix/dev_freebsd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in FreeBSD's sys/types.h header. -// -// The information below is extracted and adapted from sys/types.h: -// -// Minor gives a cookie instead of an index since in order to avoid changing the -// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for -// devices that don't use them. - -package unix - -// Major returns the major component of a FreeBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 8) & 0xff) -} - -// Minor returns the minor component of a FreeBSD device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff00ff) -} - -// Mkdev returns a FreeBSD device number generated from the given major and -// minor components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 8) | uint64(minor) -} diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go deleted file mode 100644 index d165d6f..0000000 --- a/vendor/golang.org/x/sys/unix/dev_linux.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used by the Linux kernel and glibc. -// -// The information below is extracted and adapted from bits/sysmacros.h in the -// glibc sources: -// -// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's -// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major -// number and m is a hex digit of the minor number. This is backward compatible -// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also -// backward compatible with the Linux kernel, which for some architectures uses -// 32-bit dev_t, encoded as mmmM MMmm. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - major := uint32((dev & 0x00000000000fff00) >> 8) - major |= uint32((dev & 0xfffff00000000000) >> 32) - return major -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x00000000000000ff) >> 0) - minor |= uint32((dev & 0x00000ffffff00000) >> 12) - return minor -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) & 0x00000fff) << 8 - dev |= (uint64(major) & 0xfffff000) << 32 - dev |= (uint64(minor) & 0x000000ff) << 0 - dev |= (uint64(minor) & 0xffffff00) << 12 - return dev -} diff --git a/vendor/golang.org/x/sys/unix/dev_netbsd.go b/vendor/golang.org/x/sys/unix/dev_netbsd.go deleted file mode 100644 index b4a203d..0000000 --- a/vendor/golang.org/x/sys/unix/dev_netbsd.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in NetBSD's sys/types.h header. - -package unix - -// Major returns the major component of a NetBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x000fff00) >> 8) -} - -// Minor returns the minor component of a NetBSD device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x000000ff) >> 0) - minor |= uint32((dev & 0xfff00000) >> 12) - return minor -} - -// Mkdev returns a NetBSD device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) << 8) & 0x000fff00 - dev |= (uint64(minor) << 12) & 0xfff00000 - dev |= (uint64(minor) << 0) & 0x000000ff - return dev -} diff --git a/vendor/golang.org/x/sys/unix/dev_openbsd.go b/vendor/golang.org/x/sys/unix/dev_openbsd.go deleted file mode 100644 index f3430c4..0000000 --- a/vendor/golang.org/x/sys/unix/dev_openbsd.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in OpenBSD's sys/types.h header. - -package unix - -// Major returns the major component of an OpenBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x0000ff00) >> 8) -} - -// Minor returns the minor component of an OpenBSD device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x000000ff) >> 0) - minor |= uint32((dev & 0xffff0000) >> 8) - return minor -} - -// Mkdev returns an OpenBSD device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) << 8) & 0x0000ff00 - dev |= (uint64(minor) << 8) & 0xffff0000 - dev |= (uint64(minor) << 0) & 0x000000ff - return dev -} diff --git a/vendor/golang.org/x/sys/unix/dev_zos.go b/vendor/golang.org/x/sys/unix/dev_zos.go deleted file mode 100644 index bb6a64f..0000000 --- a/vendor/golang.org/x/sys/unix/dev_zos.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2020 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:build zos && s390x - -// Functions to access/create device major and minor numbers matching the -// encoding used by z/OS. -// -// The information below is extracted and adapted from macros. - -package unix - -// Major returns the major component of a z/OS device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 16) & 0x0000FFFF) -} - -// Minor returns the minor component of a z/OS device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0x0000FFFF) -} - -// Mkdev returns a z/OS device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 16) | uint64(minor) -} diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go deleted file mode 100644 index 1ebf117..0000000 --- a/vendor/golang.org/x/sys/unix/dirent.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -import "unsafe" - -// readInt returns the size-bytes unsigned integer in native byte order at offset off. -func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { - if len(b) < int(off+size) { - return 0, false - } - if isBigEndian { - return readIntBE(b[off:], size), true - } - return readIntLE(b[off:], size), true -} - -func readIntBE(b []byte, size uintptr) uint64 { - switch size { - case 1: - return uint64(b[0]) - case 2: - _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[1]) | uint64(b[0])<<8 - case 4: - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 - case 8: - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | - uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 - default: - panic("syscall: readInt with unsupported size") - } -} - -func readIntLE(b []byte, size uintptr) uint64 { - switch size { - case 1: - return uint64(b[0]) - case 2: - _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 - case 4: - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 - case 8: - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 - default: - panic("syscall: readInt with unsupported size") - } -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number of -// bytes consumed from buf, the number of entries added -// to names, and the new names slice. -func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { - origlen := len(buf) - count = 0 - for max != 0 && len(buf) > 0 { - reclen, ok := direntReclen(buf) - if !ok || reclen > uint64(len(buf)) { - return origlen, count, names - } - rec := buf[:reclen] - buf = buf[reclen:] - ino, ok := direntIno(rec) - if !ok { - break - } - if ino == 0 { // File absent in directory. - continue - } - const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) - namlen, ok := direntNamlen(rec) - if !ok || namoff+namlen > uint64(len(rec)) { - break - } - name := rec[namoff : namoff+namlen] - for i, c := range name { - if c == 0 { - name = name[:i] - break - } - } - // Check for useless names before allocating a string. - if string(name) == "." || string(name) == ".." { - continue - } - max-- - count++ - names = append(names, string(name)) - } - return origlen - len(buf), count, names -} diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go deleted file mode 100644 index 1095fd3..0000000 --- a/vendor/golang.org/x/sys/unix/endian_big.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 - -package unix - -const isBigEndian = true diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go deleted file mode 100644 index b9f0e27..0000000 --- a/vendor/golang.org/x/sys/unix/endian_little.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh - -package unix - -const isBigEndian = false diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go deleted file mode 100644 index a96da71..0000000 --- a/vendor/golang.org/x/sys/unix/env_unix.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2010 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:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -// Unix environment variables. - -package unix - -import "syscall" - -func Getenv(key string) (value string, found bool) { - return syscall.Getenv(key) -} - -func Setenv(key, value string) error { - return syscall.Setenv(key, value) -} - -func Clearenv() { - syscall.Clearenv() -} - -func Environ() []string { - return syscall.Environ() -} - -func Unsetenv(key string) error { - return syscall.Unsetenv(key) -} diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go deleted file mode 100644 index 6200876..0000000 --- a/vendor/golang.org/x/sys/unix/fcntl.go +++ /dev/null @@ -1,36 +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. - -//go:build dragonfly || freebsd || linux || netbsd - -package unix - -import "unsafe" - -// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux -// systems by fcntl_linux_32bit.go to be SYS_FCNTL64. -var fcntl64Syscall uintptr = SYS_FCNTL - -func fcntl(fd int, cmd, arg int) (int, error) { - valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg)) - var err error - if errno != 0 { - err = errno - } - return int(valptr), err -} - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - return fcntl(int(fd), cmd, arg) -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) - if errno == 0 { - return nil - } - return errno -} diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go deleted file mode 100644 index a9911c7..0000000 --- a/vendor/golang.org/x/sys/unix/fcntl_darwin.go +++ /dev/null @@ -1,24 +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. - -package unix - -import "unsafe" - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - return fcntl(int(fd), cmd, arg) -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk)))) - return err -} - -// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command. -func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error { - _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore)))) - return err -} diff --git a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go deleted file mode 100644 index 13b4acd..0000000 --- a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +++ /dev/null @@ -1,13 +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. - -//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc) - -package unix - -func init() { - // On 32-bit Linux systems, the fcntl syscall that matches Go's - // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. - fcntl64Syscall = SYS_FCNTL64 -} diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go deleted file mode 100644 index 62ed126..0000000 --- a/vendor/golang.org/x/sys/unix/fdset.go +++ /dev/null @@ -1,27 +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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -// Set adds fd to the set fds. -func (fds *FdSet) Set(fd int) { - fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS)) -} - -// Clear removes fd from the set fds. -func (fds *FdSet) Clear(fd int) { - fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS)) -} - -// IsSet returns whether fd is in the set fds. -func (fds *FdSet) IsSet(fd int) bool { - return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0 -} - -// Zero clears the set fds. -func (fds *FdSet) Zero() { - clear(fds.Bits[:]) -} diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go deleted file mode 100644 index aca5721..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo.go +++ /dev/null @@ -1,59 +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. - -//go:build gccgo && !aix && !hurd - -package unix - -import "syscall" - -// We can't use the gc-syntax .s files for gccgo. On the plus side -// much of the functionality can be written directly in Go. - -func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) - -func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) - -func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { - syscall.Entersyscall() - r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - syscall.Exitsyscall() - return r, 0 -} - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { - r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - return r, 0 -} - -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - return r, 0, syscall.Errno(errno) -} - -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) - return r, 0, syscall.Errno(errno) -} diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c deleted file mode 100644 index d468b7b..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo_c.c +++ /dev/null @@ -1,44 +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. - -//go:build gccgo && !aix && !hurd - -#include -#include -#include - -#define _STRINGIFY2_(x) #x -#define _STRINGIFY_(x) _STRINGIFY2_(x) -#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__) - -// Call syscall from C code because the gccgo support for calling from -// Go to C does not support varargs functions. - -struct ret { - uintptr_t r; - uintptr_t err; -}; - -struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) - __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscall"); - -struct ret -gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) -{ - struct ret r; - - errno = 0; - r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); - r.err = errno; - return r; -} - -uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) - __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscallNoError"); - -uintptr_t -gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) -{ - return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); -} diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go deleted file mode 100644 index 972d61b..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +++ /dev/null @@ -1,20 +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. - -//go:build gccgo && linux && amd64 - -package unix - -import "syscall" - -//extern gettimeofday -func realGettimeofday(*Timeval, *byte) int32 - -func gettimeofday(tv *Timeval) (err syscall.Errno) { - r := realGettimeofday(tv, nil) - if r < 0 { - return syscall.GetErrno() - } - return 0 -} diff --git a/vendor/golang.org/x/sys/unix/ifreq_linux.go b/vendor/golang.org/x/sys/unix/ifreq_linux.go deleted file mode 100644 index 309f5a2..0000000 --- a/vendor/golang.org/x/sys/unix/ifreq_linux.go +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2021 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:build linux - -package unix - -import ( - "unsafe" -) - -// Helpers for dealing with ifreq since it contains a union and thus requires a -// lot of unsafe.Pointer casts to use properly. - -// An Ifreq is a type-safe wrapper around the raw ifreq struct. An Ifreq -// contains an interface name and a union of arbitrary data which can be -// accessed using the Ifreq's methods. To create an Ifreq, use the NewIfreq -// function. -// -// Use the Name method to access the stored interface name. The union data -// fields can be get and set using the following methods: -// - Uint16/SetUint16: flags -// - Uint32/SetUint32: ifindex, metric, mtu -type Ifreq struct{ raw ifreq } - -// NewIfreq creates an Ifreq with the input network interface name after -// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required) -// bytes. -func NewIfreq(name string) (*Ifreq, error) { - // Leave room for terminating NULL byte. - if len(name) >= IFNAMSIZ { - return nil, EINVAL - } - - var ifr ifreq - copy(ifr.Ifrn[:], name) - - return &Ifreq{raw: ifr}, nil -} - -// TODO(mdlayher): get/set methods for hardware address sockaddr, char array, etc. - -// Name returns the interface name associated with the Ifreq. -func (ifr *Ifreq) Name() string { - return ByteSliceToString(ifr.raw.Ifrn[:]) -} - -// According to netdevice(7), only AF_INET addresses are returned for numerous -// sockaddr ioctls. For convenience, we expose these as Inet4Addr since the Port -// field and other data is always empty. - -// Inet4Addr returns the Ifreq union data from an embedded sockaddr as a C -// in_addr/Go []byte (4-byte IPv4 address) value. If the sockaddr family is not -// AF_INET, an error is returned. -func (ifr *Ifreq) Inet4Addr() ([]byte, error) { - raw := *(*RawSockaddrInet4)(unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0])) - if raw.Family != AF_INET { - // Cannot safely interpret raw.Addr bytes as an IPv4 address. - return nil, EINVAL - } - - return raw.Addr[:], nil -} - -// SetInet4Addr sets a C in_addr/Go []byte (4-byte IPv4 address) value in an -// embedded sockaddr within the Ifreq's union data. v must be 4 bytes in length -// or an error will be returned. -func (ifr *Ifreq) SetInet4Addr(v []byte) error { - if len(v) != 4 { - return EINVAL - } - - var addr [4]byte - copy(addr[:], v) - - ifr.clear() - *(*RawSockaddrInet4)( - unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]), - ) = RawSockaddrInet4{ - // Always set IP family as ioctls would require it anyway. - Family: AF_INET, - Addr: addr, - } - - return nil -} - -// Uint16 returns the Ifreq union data as a C short/Go uint16 value. -func (ifr *Ifreq) Uint16() uint16 { - return *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) -} - -// SetUint16 sets a C short/Go uint16 value as the Ifreq's union data. -func (ifr *Ifreq) SetUint16(v uint16) { - ifr.clear() - *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) = v -} - -// Uint32 returns the Ifreq union data as a C int/Go uint32 value. -func (ifr *Ifreq) Uint32() uint32 { - return *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) -} - -// SetUint32 sets a C int/Go uint32 value as the Ifreq's union data. -func (ifr *Ifreq) SetUint32(v uint32) { - ifr.clear() - *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) = v -} - -// clear zeroes the ifreq's union field to prevent trailing garbage data from -// being sent to the kernel if an ifreq is reused. -func (ifr *Ifreq) clear() { - clear(ifr.raw.Ifru[:]) -} - -// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as -// IoctlGetEthtoolDrvinfo which use these APIs under the hood. - -// An ifreqData is an Ifreq which carries pointer data. To produce an ifreqData, -// use the Ifreq.withData method. -type ifreqData struct { - name [IFNAMSIZ]byte - // A type separate from ifreq is required in order to comply with the - // unsafe.Pointer rules since the "pointer-ness" of data would not be - // preserved if it were cast into the byte array of a raw ifreq. - data unsafe.Pointer - // Pad to the same size as ifreq. - _ [len(ifreq{}.Ifru) - SizeofPtr]byte -} - -// withData produces an ifreqData with the pointer p set for ioctls which require -// arbitrary pointer data. -func (ifr Ifreq) withData(p unsafe.Pointer) ifreqData { - return ifreqData{ - name: ifr.raw.Ifrn, - data: p, - } -} diff --git a/vendor/golang.org/x/sys/unix/ioctl_linux.go b/vendor/golang.org/x/sys/unix/ioctl_linux.go deleted file mode 100644 index 7ca4fa1..0000000 --- a/vendor/golang.org/x/sys/unix/ioctl_linux.go +++ /dev/null @@ -1,334 +0,0 @@ -// Copyright 2021 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 unix - -import "unsafe" - -// IoctlRetInt performs an ioctl operation specified by req on a device -// associated with opened file descriptor fd, and returns a non-negative -// integer that is returned by the ioctl syscall. -func IoctlRetInt(fd int, req uint) (int, error) { - ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0) - if err != 0 { - return 0, err - } - return int(ret), nil -} - -func IoctlGetUint32(fd int, req uint) (uint32, error) { - var value uint32 - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetRTCTime(fd int) (*RTCTime, error) { - var value RTCTime - err := ioctlPtr(fd, RTC_RD_TIME, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlSetRTCTime(fd int, value *RTCTime) error { - return ioctlPtr(fd, RTC_SET_TIME, unsafe.Pointer(value)) -} - -func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { - var value RTCWkAlrm - err := ioctlPtr(fd, RTC_WKALM_RD, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { - return ioctlPtr(fd, RTC_WKALM_SET, unsafe.Pointer(value)) -} - -// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network -// device specified by ifname. -func IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) { - ifr, err := NewIfreq(ifname) - if err != nil { - return nil, err - } - - value := EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO} - ifrd := ifr.withData(unsafe.Pointer(&value)) - - err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) - return &value, err -} - -// IoctlGetEthtoolTsInfo fetches ethtool timestamping and PHC -// association for the network device specified by ifname. -func IoctlGetEthtoolTsInfo(fd int, ifname string) (*EthtoolTsInfo, error) { - ifr, err := NewIfreq(ifname) - if err != nil { - return nil, err - } - - value := EthtoolTsInfo{Cmd: ETHTOOL_GET_TS_INFO} - ifrd := ifr.withData(unsafe.Pointer(&value)) - - err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) - return &value, err -} - -// IoctlGetHwTstamp retrieves the hardware timestamping configuration -// for the network device specified by ifname. -func IoctlGetHwTstamp(fd int, ifname string) (*HwTstampConfig, error) { - ifr, err := NewIfreq(ifname) - if err != nil { - return nil, err - } - - value := HwTstampConfig{} - ifrd := ifr.withData(unsafe.Pointer(&value)) - - err = ioctlIfreqData(fd, SIOCGHWTSTAMP, &ifrd) - return &value, err -} - -// IoctlSetHwTstamp updates the hardware timestamping configuration for -// the network device specified by ifname. -func IoctlSetHwTstamp(fd int, ifname string, cfg *HwTstampConfig) error { - ifr, err := NewIfreq(ifname) - if err != nil { - return err - } - ifrd := ifr.withData(unsafe.Pointer(cfg)) - return ioctlIfreqData(fd, SIOCSHWTSTAMP, &ifrd) -} - -// FdToClockID derives the clock ID from the file descriptor number -// - see clock_gettime(3), FD_TO_CLOCKID macros. The resulting ID is -// suitable for system calls like ClockGettime. -func FdToClockID(fd int) int32 { return int32((int(^fd) << 3) | 3) } - -// IoctlPtpClockGetcaps returns the description of a given PTP device. -func IoctlPtpClockGetcaps(fd int) (*PtpClockCaps, error) { - var value PtpClockCaps - err := ioctlPtr(fd, PTP_CLOCK_GETCAPS2, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlPtpSysOffsetPrecise returns a description of the clock -// offset compared to the system clock. -func IoctlPtpSysOffsetPrecise(fd int) (*PtpSysOffsetPrecise, error) { - var value PtpSysOffsetPrecise - err := ioctlPtr(fd, PTP_SYS_OFFSET_PRECISE2, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlPtpSysOffsetExtended returns an extended description of the -// clock offset compared to the system clock. The samples parameter -// specifies the desired number of measurements. -func IoctlPtpSysOffsetExtended(fd int, samples uint) (*PtpSysOffsetExtended, error) { - value := PtpSysOffsetExtended{Samples: uint32(samples)} - err := ioctlPtr(fd, PTP_SYS_OFFSET_EXTENDED2, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlPtpPinGetfunc returns the configuration of the specified -// I/O pin on given PTP device. -func IoctlPtpPinGetfunc(fd int, index uint) (*PtpPinDesc, error) { - value := PtpPinDesc{Index: uint32(index)} - err := ioctlPtr(fd, PTP_PIN_GETFUNC2, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlPtpPinSetfunc updates configuration of the specified PTP -// I/O pin. -func IoctlPtpPinSetfunc(fd int, pd *PtpPinDesc) error { - return ioctlPtr(fd, PTP_PIN_SETFUNC2, unsafe.Pointer(pd)) -} - -// IoctlPtpPeroutRequest configures the periodic output mode of the -// PTP I/O pins. -func IoctlPtpPeroutRequest(fd int, r *PtpPeroutRequest) error { - return ioctlPtr(fd, PTP_PEROUT_REQUEST2, unsafe.Pointer(r)) -} - -// IoctlPtpExttsRequest configures the external timestamping mode -// of the PTP I/O pins. -func IoctlPtpExttsRequest(fd int, r *PtpExttsRequest) error { - return ioctlPtr(fd, PTP_EXTTS_REQUEST2, unsafe.Pointer(r)) -} - -// IoctlGetWatchdogInfo fetches information about a watchdog device from the -// Linux watchdog API. For more information, see: -// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. -func IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) { - var value WatchdogInfo - err := ioctlPtr(fd, WDIOC_GETSUPPORT, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For -// more information, see: -// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. -func IoctlWatchdogKeepalive(fd int) error { - // arg is ignored and not a pointer, so ioctl is fine instead of ioctlPtr. - return ioctl(fd, WDIOC_KEEPALIVE, 0) -} - -// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the -// range of data conveyed in value to the file associated with the file -// descriptor destFd. See the ioctl_ficlonerange(2) man page for details. -func IoctlFileCloneRange(destFd int, value *FileCloneRange) error { - return ioctlPtr(destFd, FICLONERANGE, unsafe.Pointer(value)) -} - -// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file -// associated with the file description srcFd to the file associated with the -// file descriptor destFd. See the ioctl_ficlone(2) man page for details. -func IoctlFileClone(destFd, srcFd int) error { - return ioctl(destFd, FICLONE, uintptr(srcFd)) -} - -type FileDedupeRange struct { - Src_offset uint64 - Src_length uint64 - Reserved1 uint16 - Reserved2 uint32 - Info []FileDedupeRangeInfo -} - -type FileDedupeRangeInfo struct { - Dest_fd int64 - Dest_offset uint64 - Bytes_deduped uint64 - Status int32 - Reserved uint32 -} - -// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the -// range of data conveyed in value from the file associated with the file -// descriptor srcFd to the value.Info destinations. See the -// ioctl_fideduperange(2) man page for details. -func IoctlFileDedupeRange(srcFd int, value *FileDedupeRange) error { - buf := make([]byte, SizeofRawFileDedupeRange+ - len(value.Info)*SizeofRawFileDedupeRangeInfo) - rawrange := (*RawFileDedupeRange)(unsafe.Pointer(&buf[0])) - rawrange.Src_offset = value.Src_offset - rawrange.Src_length = value.Src_length - rawrange.Dest_count = uint16(len(value.Info)) - rawrange.Reserved1 = value.Reserved1 - rawrange.Reserved2 = value.Reserved2 - - for i := range value.Info { - rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( - uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + - uintptr(i*SizeofRawFileDedupeRangeInfo))) - rawinfo.Dest_fd = value.Info[i].Dest_fd - rawinfo.Dest_offset = value.Info[i].Dest_offset - rawinfo.Bytes_deduped = value.Info[i].Bytes_deduped - rawinfo.Status = value.Info[i].Status - rawinfo.Reserved = value.Info[i].Reserved - } - - err := ioctlPtr(srcFd, FIDEDUPERANGE, unsafe.Pointer(&buf[0])) - - // Output - for i := range value.Info { - rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( - uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + - uintptr(i*SizeofRawFileDedupeRangeInfo))) - value.Info[i].Dest_fd = rawinfo.Dest_fd - value.Info[i].Dest_offset = rawinfo.Dest_offset - value.Info[i].Bytes_deduped = rawinfo.Bytes_deduped - value.Info[i].Status = rawinfo.Status - value.Info[i].Reserved = rawinfo.Reserved - } - - return err -} - -func IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error { - return ioctlPtr(fd, HIDIOCGRDESC, unsafe.Pointer(value)) -} - -func IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) { - var value HIDRawDevInfo - err := ioctlPtr(fd, HIDIOCGRAWINFO, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlHIDGetRawName(fd int) (string, error) { - var value [_HIDIOCGRAWNAME_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWNAME, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -func IoctlHIDGetRawPhys(fd int) (string, error) { - var value [_HIDIOCGRAWPHYS_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWPHYS, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -func IoctlHIDGetRawUniq(fd int) (string, error) { - var value [_HIDIOCGRAWUNIQ_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWUNIQ, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -// IoctlIfreq performs an ioctl using an Ifreq structure for input and/or -// output. See the netdevice(7) man page for details. -func IoctlIfreq(fd int, req uint, value *Ifreq) error { - // It is possible we will add more fields to *Ifreq itself later to prevent - // misuse, so pass the raw *ifreq directly. - return ioctlPtr(fd, req, unsafe.Pointer(&value.raw)) -} - -// TODO(mdlayher): export if and when IfreqData is exported. - -// ioctlIfreqData performs an ioctl using an ifreqData structure for input -// and/or output. See the netdevice(7) man page for details. -func ioctlIfreqData(fd int, req uint, value *ifreqData) error { - // The memory layout of IfreqData (type-safe) and ifreq (not type-safe) are - // identical so pass *IfreqData directly. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an -// existing KCM socket, returning a structure containing the file descriptor of -// the new socket. -func IoctlKCMClone(fd int) (*KCMClone, error) { - var info KCMClone - if err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil { - return nil, err - } - - return &info, nil -} - -// IoctlKCMAttach attaches a TCP socket and associated BPF program file -// descriptor to a multiplexor. -func IoctlKCMAttach(fd int, info KCMAttach) error { - return ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info)) -} - -// IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor. -func IoctlKCMUnattach(fd int, info KCMUnattach) error { - return ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info)) -} - -// IoctlLoopGetStatus64 gets the status of the loop device associated with the -// file descriptor fd using the LOOP_GET_STATUS64 operation. -func IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) { - var value LoopInfo64 - if err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil { - return nil, err - } - return &value, nil -} - -// IoctlLoopSetStatus64 sets the status of the loop device associated with the -// file descriptor fd using the LOOP_SET_STATUS64 operation. -func IoctlLoopSetStatus64(fd int, value *LoopInfo64) error { - return ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value)) -} - -// IoctlLoopConfigure configures all loop device parameters in a single step -func IoctlLoopConfigure(fd int, value *LoopConfig) error { - return ioctlPtr(fd, LOOP_CONFIGURE, unsafe.Pointer(value)) -} diff --git a/vendor/golang.org/x/sys/unix/ioctl_signed.go b/vendor/golang.org/x/sys/unix/ioctl_signed.go deleted file mode 100644 index 5b0759b..0000000 --- a/vendor/golang.org/x/sys/unix/ioctl_signed.go +++ /dev/null @@ -1,69 +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. - -//go:build aix || solaris - -package unix - -import ( - "unsafe" -) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req int, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -// IoctlSetPointerInt performs an ioctl operation which sets an -// integer value on fd, using the specified request number. The ioctl -// argument is called with a pointer to the integer value, rather than -// passing the integer value directly. -func IoctlSetPointerInt(fd int, req int, value int) error { - v := int32(value) - return ioctlPtr(fd, req, unsafe.Pointer(&v)) -} - -// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. -// -// To change fd's window size, the req argument should be TIOCSWINSZ. -func IoctlSetWinsize(fd int, req int, value *Winsize) error { - // TODO: if we get the chance, remove the req parameter and - // hardcode TIOCSWINSZ. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlSetTermios performs an ioctl on fd with a *Termios. -// -// The req value will usually be TCSETA or TIOCSETA. -func IoctlSetTermios(fd int, req int, value *Termios) error { - // TODO: if we get the chance, remove the req parameter. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -// -// A few ioctl requests use the return value as an output parameter; -// for those, IoctlRetInt should be used instead of this function. -func IoctlGetInt(fd int, req int) (int, error) { - var value int - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req int) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlGetTermios(fd int, req int) (*Termios, error) { - var value Termios - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} diff --git a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go b/vendor/golang.org/x/sys/unix/ioctl_unsigned.go deleted file mode 100644 index 20f470b..0000000 --- a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go +++ /dev/null @@ -1,69 +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. - -//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd - -package unix - -import ( - "unsafe" -) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -// IoctlSetPointerInt performs an ioctl operation which sets an -// integer value on fd, using the specified request number. The ioctl -// argument is called with a pointer to the integer value, rather than -// passing the integer value directly. -func IoctlSetPointerInt(fd int, req uint, value int) error { - v := int32(value) - return ioctlPtr(fd, req, unsafe.Pointer(&v)) -} - -// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. -// -// To change fd's window size, the req argument should be TIOCSWINSZ. -func IoctlSetWinsize(fd int, req uint, value *Winsize) error { - // TODO: if we get the chance, remove the req parameter and - // hardcode TIOCSWINSZ. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlSetTermios performs an ioctl on fd with a *Termios. -// -// The req value will usually be TCSETA or TIOCSETA. -func IoctlSetTermios(fd int, req uint, value *Termios) error { - // TODO: if we get the chance, remove the req parameter. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -// -// A few ioctl requests use the return value as an output parameter; -// for those, IoctlRetInt should be used instead of this function. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} diff --git a/vendor/golang.org/x/sys/unix/ioctl_zos.go b/vendor/golang.org/x/sys/unix/ioctl_zos.go deleted file mode 100644 index c8b2a75..0000000 --- a/vendor/golang.org/x/sys/unix/ioctl_zos.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2020 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:build zos && s390x - -package unix - -import ( - "runtime" - "unsafe" -) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req int, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. -// -// To change fd's window size, the req argument should be TIOCSWINSZ. -func IoctlSetWinsize(fd int, req int, value *Winsize) error { - // TODO: if we get the chance, remove the req parameter and - // hardcode TIOCSWINSZ. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlSetTermios performs an ioctl on fd with a *Termios. -// -// The req value is expected to be TCSETS, TCSETSW, or TCSETSF -func IoctlSetTermios(fd int, req int, value *Termios) error { - if (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) { - return ENOSYS - } - err := Tcsetattr(fd, int(req), value) - runtime.KeepAlive(value) - return err -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -// -// A few ioctl requests use the return value as an output parameter; -// for those, IoctlRetInt should be used instead of this function. -func IoctlGetInt(fd int, req int) (int, error) { - var value int - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req int) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlGetTermios performs an ioctl on fd with a *Termios. -// -// The req value is expected to be TCGETS -func IoctlGetTermios(fd int, req int) (*Termios, error) { - var value Termios - if req != TCGETS { - return &value, ENOSYS - } - err := Tcgetattr(fd, &value) - return &value, err -} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh deleted file mode 100644 index d0ed611..0000000 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ /dev/null @@ -1,250 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# This script runs or (given -n) prints suggested commands to generate files for -# the Architecture/OS specified by the GOARCH and GOOS environment variables. -# See README.md for more information about how the build system works. - -GOOSARCH="${GOOS}_${GOARCH}" - -# defaults -mksyscall="go run mksyscall.go" -mkerrors="./mkerrors.sh" -zerrors="zerrors_$GOOSARCH.go" -mksysctl="" -zsysctl="zsysctl_$GOOSARCH.go" -mksysnum= -mktypes= -mkasm= -run="sh" -cmd="" - -case "$1" in --syscalls) - for i in zsyscall*go - do - # Run the command line that appears in the first line - # of the generated file to regenerate it. - sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i - rm _$i - done - exit 0 - ;; --n) - run="cat" - cmd="echo" - shift -esac - -case "$#" in -0) - ;; -*) - echo 'usage: mkall.sh [-n]' 1>&2 - exit 2 -esac - -if [[ "$GOOS" = "linux" ]]; then - # Use the Docker-based build system - # Files generated through docker (use $cmd so you can Ctl-C the build or run) - set -e - $cmd docker build --tag generate:$GOOS $GOOS - $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS - exit -fi - -GOOSARCH_in=syscall_$GOOSARCH.go -case "$GOOSARCH" in -_* | *_ | _) - echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 - exit 1 - ;; -aix_ppc) - mkerrors="$mkerrors -maix32" - mksyscall="go run mksyscall_aix_ppc.go -aix" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -aix_ppc64) - mkerrors="$mkerrors -maix64" - mksyscall="go run mksyscall_aix_ppc64.go -aix" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -darwin_amd64) - mkerrors="$mkerrors -m64" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm.go" - ;; -darwin_arm64) - mkerrors="$mkerrors -m64" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm.go" - ;; -dragonfly_amd64) - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -dragonfly" - mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_386) - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_amd64) - mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_arm) - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -arm" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - # 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://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -freebsd_riscv64) - mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -netbsd_386) - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32 -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" - ;; -netbsd_amd64) - 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" - ;; -netbsd_arm) - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -netbsd -arm" - mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~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" - ;; -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) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32 -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_amd64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_arm) - mkasm="go run mkasm.go" - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -openbsd -arm -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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_mips64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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_ppc64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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_riscv64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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" - ;; -solaris_amd64) - mksyscall="go run mksyscall_solaris.go" - mkerrors="$mkerrors -m64" - mksysnum= - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -illumos_amd64) - mksyscall="go run mksyscall_solaris.go" - mkerrors= - mksysnum= - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -*) - echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 - exit 1 - ;; -esac - -( - if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi - case "$GOOS" in - *) - syscall_goos="syscall_$GOOS.go" - case "$GOOS" in - darwin | dragonfly | freebsd | netbsd | openbsd) - syscall_goos="syscall_bsd.go $syscall_goos" - ;; - esac - if [ -n "$mksyscall" ]; then - if [ "$GOOSARCH" == "aix_ppc64" ]; then - # aix/ppc64 script generates files instead of writing to stdin. - echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; - elif [ "$GOOS" == "illumos" ]; then - # illumos code generation requires a --illumos switch - echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go"; - # illumos implies solaris, so solaris code generation is also required - echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go"; - else - echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; - fi - fi - 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 "$mkasm" ]; then echo "$mkasm $GOOS $GOARCH"; fi -) | $run diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh deleted file mode 100644 index d1c8b26..0000000 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ /dev/null @@ -1,808 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# Generate Go code listing errors and other #defined constant -# values (ENAMETOOLONG etc.), by asking the preprocessor -# about the definitions. - -unset LANG -export LC_ALL=C -export LC_CTYPE=C - -if test -z "$GOARCH" -o -z "$GOOS"; then - echo 1>&2 "GOARCH or GOOS not defined in environment" - exit 1 -fi - -# Check that we are using the new build system if we should -if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then - echo 1>&2 "In the Docker based build system, mkerrors should not be called directly." - echo 1>&2 "See README.md" - exit 1 -fi - -if [[ "$GOOS" = "aix" ]]; then - CC=${CC:-gcc} -else - CC=${CC:-cc} -fi - -if [[ "$GOOS" = "solaris" ]]; then - # Assumes GNU versions of utilities in PATH. - export PATH=/usr/gnu/bin:$PATH -fi - -uname=$(uname) - -includes_AIX=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define AF_LOCAL AF_UNIX -' - -includes_Darwin=' -#define _DARWIN_C_SOURCE -#define KERNEL 1 -#define _DARWIN_USE_64_BIT_INODE -#define __APPLE_USE_RFC_3542 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// for backwards compatibility because moved TIOCREMOTE to Kernel.framework after MacOSX12.0.sdk. -#define TIOCREMOTE 0x80047469 -' - -includes_DragonFly=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' - -includes_FreeBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if __FreeBSD__ >= 10 -#define IFT_CARP 0xf8 // IFT_CARP is deprecated in FreeBSD 10 -#undef SIOCAIFADDR -#define SIOCAIFADDR _IOW(105, 26, struct oifaliasreq) // ifaliasreq contains if_data -#undef SIOCSIFPHYADDR -#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq) // ifaliasreq contains if_data -#endif -' - -includes_Linux=' -#define _LARGEFILE_SOURCE -#define _LARGEFILE64_SOURCE -#ifndef __LP64__ -#define _FILE_OFFSET_BITS 64 -#endif -#define _GNU_SOURCE - -// See the description in unix/linux/types.go -#if defined(__ARM_EABI__) || \ - (defined(__mips__) && (_MIPS_SIM == _ABIO32)) || \ - (defined(__powerpc__) && (!defined(__powerpc64__))) -# ifdef _TIME_BITS -# undef _TIME_BITS -# endif -# define _TIME_BITS 32 -#endif - -// is broken on powerpc64, as it fails to include definitions of -// these structures. We just include them copied from . -#if defined(__powerpc__) -struct sgttyb { - char sg_ispeed; - char sg_ospeed; - char sg_erase; - char sg_kill; - short sg_flags; -}; - -struct tchars { - char t_intrc; - char t_quitc; - char t_startc; - char t_stopc; - char t_eofc; - char t_brkc; -}; - -struct ltchars { - char t_suspc; - char t_dsuspc; - char t_rprntc; - char t_flushc; - char t_werasc; - char t_lnextc; -}; -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#if defined(__sparc__) -// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the -// definition in glibc. As only the error constants are needed here, include the -// generic termibits.h (which is included by termbits.h on sparc). -#include -#else -#include -#endif - -#ifndef PTRACE_GETREGS -#define PTRACE_GETREGS 0xc -#endif - -#ifndef PTRACE_SETREGS -#define PTRACE_SETREGS 0xd -#endif - -#ifdef SOL_BLUETOOTH -// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h -// but it is already in bluetooth_linux.go -#undef SOL_BLUETOOTH -#endif - -// Certain constants are missing from the fs/crypto UAPI -#define FS_KEY_DESC_PREFIX "fscrypt:" -#define FS_KEY_DESC_PREFIX_SIZE 8 -#define FS_MAX_KEY_SIZE 64 - -// The code generator produces -0x1 for (~0), but an unsigned value is necessary -// for the tipc_subscr timeout __u32 field. -#undef TIPC_WAIT_FOREVER -#define TIPC_WAIT_FOREVER 0xffffffff - -// Copied from linux/netfilter/nf_nat.h -// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h -// and netinet/in.h. -#define NF_NAT_RANGE_MAP_IPS (1 << 0) -#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) -#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) -#define NF_NAT_RANGE_PERSISTENT (1 << 3) -#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) -#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) -#define NF_NAT_RANGE_NETMAP (1 << 6) -#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ - (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -#define NF_NAT_RANGE_MASK \ - (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ - NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ - NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ - NF_NAT_RANGE_NETMAP) - -// Copied from linux/hid.h. -// Keep in sync with the size of the referenced fields. -#define _HIDIOCGRAWNAME_LEN 128 // sizeof_field(struct hid_device, name) -#define _HIDIOCGRAWPHYS_LEN 64 // sizeof_field(struct hid_device, phys) -#define _HIDIOCGRAWUNIQ_LEN 64 // sizeof_field(struct hid_device, uniq) - -#define _HIDIOCGRAWNAME HIDIOCGRAWNAME(_HIDIOCGRAWNAME_LEN) -#define _HIDIOCGRAWPHYS HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN) -#define _HIDIOCGRAWUNIQ HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN) - -// Renamed in v6.16, commit c6d732c38f93 ("net: ethtool: remove duplicate defines for family info") -#define ETHTOOL_FAMILY_NAME ETHTOOL_GENL_NAME -#define ETHTOOL_FAMILY_VERSION ETHTOOL_GENL_VERSION -' - -includes_NetBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Needed since refers to it... -#define schedppq 1 -' - -includes_OpenBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// We keep some constants not supported in OpenBSD 5.5 and beyond for -// the promise of compatibility. -#define EMUL_ENABLED 0x1 -#define EMUL_NATIVE 0x2 -#define IPV6_FAITH 0x1d -#define IPV6_OPTIONS 0x1 -#define IPV6_RTHDR_STRICT 0x1 -#define IPV6_SOCKOPT_RESERVED1 0x3 -#define SIOCGIFGENERIC 0xc020693a -#define SIOCSIFGENERIC 0x80206939 -#define WALTSIG 0x4 -' - -includes_SunOS=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' - - -includes=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' -ccflags="$@" - -# Write go tool cgo -godefs input. -( - echo package unix - echo - echo '/*' - indirect="includes_$(uname)" - echo "${!indirect} $includes" - echo '*/' - echo 'import "C"' - echo 'import "syscall"' - echo - echo 'const (' - - # The gcc command line prints all the #defines - # it encounters while processing the input - echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | - awk ' - $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} - - $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers - $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} - $2 ~ /^(SCM_SRCRT)$/ {next} - $2 ~ /^(MAP_FAILED)$/ {next} - $2 ~ /^ELF_.*$/ {next}# contains ELF_ARCH, etc. - - $2 ~ /^EXTATTR_NAMESPACE_NAMES/ || - $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next} - - $2 !~ /^ECCAPBITS/ && - $2 !~ /^ETH_/ && - $2 !~ /^EPROC_/ && - $2 !~ /^EQUIV_/ && - $2 !~ /^EXPR_/ && - $2 !~ /^EVIOC/ && - $2 ~ /^E[A-Z0-9_]+$/ || - $2 ~ /^B[0-9_]+$/ || - $2 ~ /^(OLD|NEW)DEV$/ || - $2 == "BOTHER" || - $2 ~ /^CI?BAUD(EX)?$/ || - $2 == "IBSHIFT" || - $2 ~ /^V[A-Z0-9]+$/ || - $2 ~ /^CS[A-Z0-9]/ || - $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ || - $2 ~ /^IGN/ || - $2 ~ /^IX(ON|ANY|OFF)$/ || - $2 ~ /^IN(LCR|PCK)$/ || - $2 !~ "X86_CR3_PCID_NOFLUSH" && - $2 ~ /(^FLU?SH)|(FLU?SH$)/ || - $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ || - $2 == "BRKINT" || - $2 == "HUPCL" || - $2 == "PENDIN" || - $2 == "TOSTOP" || - $2 == "XCASE" || - $2 == "ALTWERASE" || - $2 == "NOKERNINFO" || - $2 == "NFDBITS" || - $2 ~ /^PAR/ || - $2 ~ /^SIG[^_]/ || - $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || - $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || - $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || - $2 ~ /^O?XTABS$/ || - $2 ~ /^TC[IO](ON|OFF)$/ || - $2 ~ /^IN_/ || - $2 ~ /^KCM/ || - $2 ~ /^LANDLOCK_/ || - $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || - $2 ~ /^LO_(KEY|NAME)_SIZE$/ || - $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || - $2 == "LOOP_CONFIGURE" || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || - $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || - $2 ~ /^NFC_.*_(MAX)?SIZE$/ || - $2 ~ /^PTP_/ || - $2 ~ /^RAW_PAYLOAD_/ || - $2 ~ /^[US]F_/ || - $2 ~ /^TP_STATUS_/ || - $2 ~ /^FALLOC_/ || - $2 ~ /^ICMPV?6?_(FILTER|SEC)/ || - $2 == "SOMAXCONN" || - $2 == "NAME_MAX" || - $2 == "IFNAMSIZ" || - $2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ || - $2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ || - $2 ~ /^HW_MACHINE$/ || - $2 ~ /^SYSCTL_VERS/ || - $2 !~ "MNT_BITS" && - $2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ || - $2 ~ /^NS_GET_/ || - $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|TFD)_/ || - $2 ~ /^KEXEC_/ || - $2 ~ /^LINUX_REBOOT_CMD_/ || - $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || - $2 ~ /^MODULE_INIT_/ || - $2 !~ "NLA_TYPE_MASK" && - $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && - $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || - $2 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ || - $2 ~ /^(CONNECT|SAE)_/ || - $2 ~ /^FIORDCHK$/ || - $2 ~ /^SIOC/ || - $2 ~ /^TIOC/ || - $2 ~ /^TCGET/ || - $2 ~ /^TCSET/ || - $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || - $2 !~ "RTF_BITS" && - $2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ || - $2 ~ /^BIOC/ || - $2 ~ /^DIOC/ || - $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || - $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]+|BPF_F_LINK)$/ && - $2 ~ /^(BPF|DLT)_/ || - $2 ~ /^AUDIT_/ || - $2 ~ /^(CLOCK|TIMER)_/ || - $2 ~ /^CAN_/ || - $2 ~ /^CAP_/ || - $2 ~ /^CP_/ || - $2 ~ /^CPUSTATES$/ || - $2 ~ /^CTLIOCGINFO$/ || - $2 ~ /^ALG_/ || - $2 ~ /^FI(CLONE|DEDUPERANGE)/ || - $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ || - $2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ || - $2 ~ /^FS_VERITY_/ || - $2 ~ /^FSCRYPT_/ || - $2 ~ /^DM_/ || - $2 ~ /^GRND_/ || - $2 ~ /^RND/ || - $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || - $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_/ || - $2 ~ /^SECCOMP_/ || - $2 ~ /^SEEK_/ || - $2 ~ /^SCHED_/ || - $2 ~ /^SPLICE_/ || - $2 ~ /^SYNC_FILE_RANGE_/ || - $2 !~ /IOC_MAGIC/ && - $2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ || - $2 ~ /^(VM|VMADDR)_/ || - $2 ~ /^IOCTL_VM_SOCKETS_/ || - $2 ~ /^(TASKSTATS|TS)_/ || - $2 ~ /^CGROUPSTATS_/ || - $2 ~ /^GENL_/ || - $2 ~ /^STATX_/ || - $2 ~ /^RENAME/ || - $2 ~ /^UBI_IOC[A-Z]/ || - $2 ~ /^UTIME_/ || - $2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ || - $2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ || - $2 ~ /^FSOPT_/ || - $2 ~ /^WDIO[CFS]_/ || - $2 ~ /^NFN/ || - $2 !~ /^NFT_META_IIFTYPE/ && - $2 ~ /^NFT_/ || - $2 ~ /^NF_NAT_/ || - $2 ~ /^XDP_/ || - $2 ~ /^RWF_/ || - $2 ~ /^(HDIO|WIN|SMART)_/ || - $2 ~ /^CRYPTO_/ || - $2 ~ /^TIPC_/ || - $2 !~ "DEVLINK_RELOAD_LIMITS_VALID_MASK" && - $2 ~ /^DEVLINK_/ || - $2 ~ /^ETHTOOL_/ || - $2 ~ /^LWTUNNEL_IP/ || - $2 ~ /^ITIMER_/ || - $2 !~ "WMESGLEN" && - $2 ~ /^W[A-Z0-9]+$/ || - $2 ~ /^P_/ || - $2 ~/^PPPIOC/ || - $2 ~ /^FAN_|FANOTIFY_/ || - $2 == "HID_MAX_DESCRIPTOR_SIZE" || - $2 ~ /^_?HIDIOC/ || - $2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ || - $2 ~ /^MTD/ || - $2 ~ /^OTP/ || - $2 ~ /^MEM/ || - $2 ~ /^WG/ || - $2 ~ /^FIB_RULE_/ || - $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE|IOMIN$|IOOPT$|ALIGNOFF$|DISCARD|ROTATIONAL$|ZEROOUT$|GETDISKSEQ$)/ {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)} - - {next} - ' | sort - - echo ')' -) >_const.go - -# Pull out the error names for later. -errors=$( - echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | - sort -) - -# Pull out the signal names for later. -signals=$( - echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | - grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | - sort -) - -# Again, writing regexps to a file. -echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | - sort >_error.grep -echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | - grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | - sort >_signal.grep - -echo '// mkerrors.sh' "$@" -echo '// Code generated by the command above; see README.md. DO NOT EDIT.' -echo -echo "//go:build ${GOARCH} && ${GOOS}" -echo -go tool cgo -godefs -- "$@" _const.go >_error.out -cat _error.out | grep -vf _error.grep | grep -vf _signal.grep -echo -echo '// Errors' -echo 'const (' -cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= syscall.Errno(\1)/' -echo ')' - -echo -echo '// Signals' -echo 'const (' -cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= syscall.Signal(\1)/' -echo ')' - -# Run C program to print error and syscall strings. -( - echo -E " -#include -#include -#include -#include -#include -#include - -#define nelem(x) (sizeof(x)/sizeof((x)[0])) - -enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below - -struct tuple { - int num; - const char *name; -}; - -struct tuple errors[] = { -" - for i in $errors - do - echo -E ' {'$i', "'$i'" },' - done - - echo -E " -}; - -struct tuple signals[] = { -" - for i in $signals - do - echo -E ' {'$i', "'$i'" },' - done - - # Use -E because on some systems bash builtin interprets \n itself. - echo -E ' -}; - -static int -tuplecmp(const void *a, const void *b) -{ - return ((struct tuple *)a)->num - ((struct tuple *)b)->num; -} - -int -main(void) -{ - int i, e; - char buf[1024], *p; - - printf("\n\n// Error table\n"); - printf("var errorList = [...]struct {\n"); - printf("\tnum syscall.Errno\n"); - printf("\tname string\n"); - printf("\tdesc string\n"); - printf("} {\n"); - qsort(errors, nelem(errors), sizeof errors[0], tuplecmp); - for(i=0; i 0 && errors[i-1].num == e) - continue; - strncpy(buf, strerror(e), sizeof(buf) - 1); - buf[sizeof(buf) - 1] = '\0'; - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; - printf("\t{ %d, \"%s\", \"%s\" },\n", e, errors[i].name, buf); - } - printf("}\n\n"); - - printf("\n\n// Signal table\n"); - printf("var signalList = [...]struct {\n"); - printf("\tnum syscall.Signal\n"); - printf("\tname string\n"); - printf("\tdesc string\n"); - printf("} {\n"); - qsort(signals, nelem(signals), sizeof signals[0], tuplecmp); - for(i=0; i 0 && signals[i-1].num == e) - continue; - strncpy(buf, strsignal(e), sizeof(buf) - 1); - buf[sizeof(buf) - 1] = '\0'; - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; - // cut trailing : number. - p = strrchr(buf, ":"[0]); - if(p) - *p = '\0'; - printf("\t{ %d, \"%s\", \"%s\" },\n", e, signals[i].name, buf); - } - printf("}\n\n"); - - return 0; -} - -' -) >_errors.c - -$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/vendor/golang.org/x/sys/unix/mmap_nomremap.go deleted file mode 100644 index 7f602ff..0000000 --- a/vendor/golang.org/x/sys/unix/mmap_nomremap.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2023 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:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos - -package unix - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} diff --git a/vendor/golang.org/x/sys/unix/mremap.go b/vendor/golang.org/x/sys/unix/mremap.go deleted file mode 100644 index 3a5e776..0000000 --- a/vendor/golang.org/x/sys/unix/mremap.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2023 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:build linux || netbsd - -package unix - -import "unsafe" - -type mremapMmapper struct { - mmapper - mremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) -} - -var mapper = &mremapMmapper{ - mmapper: mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, - }, - mremap: mremap, -} - -func (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { - if newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 { - return nil, EINVAL - } - - pOld := &oldData[cap(oldData)-1] - m.Lock() - defer m.Unlock() - bOld := m.active[pOld] - if bOld == nil || &bOld[0] != &oldData[0] { - return nil, EINVAL - } - newAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0) - if errno != nil { - return nil, errno - } - bNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength) - pNew := &bNew[cap(bNew)-1] - if flags&mremapDontunmap == 0 { - delete(m.active, pOld) - } - m.active[pNew] = bNew - return bNew, nil -} - -func Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { - return mapper.Mremap(oldData, newLength, flags) -} - -func MremapPtr(oldAddr unsafe.Pointer, oldSize uintptr, newAddr unsafe.Pointer, newSize uintptr, flags int) (ret unsafe.Pointer, err error) { - xaddr, err := mapper.mremap(uintptr(oldAddr), oldSize, newSize, flags, uintptr(newAddr)) - return unsafe.Pointer(xaddr), err -} diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go deleted file mode 100644 index 0482408..0000000 --- a/vendor/golang.org/x/sys/unix/pagesize_unix.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -// For Unix, get the pagesize from the runtime. - -package unix - -import "syscall" - -func Getpagesize() int { - return syscall.Getpagesize() -} diff --git a/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/vendor/golang.org/x/sys/unix/pledge_openbsd.go deleted file mode 100644 index 6a09af5..0000000 --- a/vendor/golang.org/x/sys/unix/pledge_openbsd.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import ( - "errors" - "fmt" - "strconv" -) - -// Pledge implements the pledge syscall. -// -// This changes both the promises and execpromises; use PledgePromises or -// PledgeExecpromises to only change the promises or execpromises -// respectively. -// -// For more information see pledge(2). -func Pledge(promises, execpromises string) error { - if err := pledgeAvailable(); err != nil { - return err - } - - pptr, err := BytePtrFromString(promises) - if err != nil { - return err - } - - exptr, err := BytePtrFromString(execpromises) - if err != nil { - return err - } - - return pledge(pptr, exptr) -} - -// PledgePromises implements the pledge syscall. -// -// This changes the promises and leaves the execpromises untouched. -// -// For more information see pledge(2). -func PledgePromises(promises string) error { - if err := pledgeAvailable(); err != nil { - return err - } - - pptr, err := BytePtrFromString(promises) - if err != nil { - return err - } - - return pledge(pptr, nil) -} - -// PledgeExecpromises implements the pledge syscall. -// -// This changes the execpromises and leaves the promises untouched. -// -// For more information see pledge(2). -func PledgeExecpromises(execpromises string) error { - if err := pledgeAvailable(); err != nil { - return err - } - - exptr, err := BytePtrFromString(execpromises) - if err != nil { - return err - } - - return pledge(nil, exptr) -} - -// majmin returns major and minor version number for an OpenBSD system. -func majmin() (major int, minor int, err error) { - var v Utsname - err = Uname(&v) - if err != nil { - return - } - - major, err = strconv.Atoi(string(v.Release[0])) - if err != nil { - err = errors.New("cannot parse major version number returned by uname") - return - } - - minor, err = strconv.Atoi(string(v.Release[2])) - if err != nil { - err = errors.New("cannot parse minor version number returned by uname") - return - } - - return -} - -// pledgeAvailable checks for availability of the pledge(2) syscall -// based on the running OpenBSD version. -func pledgeAvailable() error { - maj, min, err := majmin() - if err != nil { - return err - } - - // Require OpenBSD 6.4 as a minimum. - if maj < 6 || (maj == 6 && min <= 3) { - return fmt.Errorf("cannot call Pledge on OpenBSD %d.%d", maj, min) - } - - return nil -} diff --git a/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/vendor/golang.org/x/sys/unix/ptrace_darwin.go deleted file mode 100644 index 3f0975f..0000000 --- a/vendor/golang.org/x/sys/unix/ptrace_darwin.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2020 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:build darwin && !ios - -package unix - -func ptrace(request int, pid int, addr uintptr, data uintptr) error { - return ptrace1(request, pid, addr, data) -} diff --git a/vendor/golang.org/x/sys/unix/ptrace_ios.go b/vendor/golang.org/x/sys/unix/ptrace_ios.go deleted file mode 100644 index a4d35db..0000000 --- a/vendor/golang.org/x/sys/unix/ptrace_ios.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2020 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:build ios - -package unix - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - return ENOTSUP -} diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go deleted file mode 100644 index 714d2aa..0000000 --- a/vendor/golang.org/x/sys/unix/race.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin && race) || (linux && race) || (freebsd && race) - -package unix - -import ( - "runtime" - "unsafe" -) - -const raceenabled = true - -func raceAcquire(addr unsafe.Pointer) { - runtime.RaceAcquire(addr) -} - -func raceReleaseMerge(addr unsafe.Pointer) { - runtime.RaceReleaseMerge(addr) -} - -func raceReadRange(addr unsafe.Pointer, len int) { - runtime.RaceReadRange(addr, len) -} - -func raceWriteRange(addr unsafe.Pointer, len int) { - runtime.RaceWriteRange(addr, len) -} diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go deleted file mode 100644 index 4a9f663..0000000 --- a/vendor/golang.org/x/sys/unix/race0.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos - -package unix - -import ( - "unsafe" -) - -const raceenabled = false - -func raceAcquire(addr unsafe.Pointer) { -} - -func raceReleaseMerge(addr unsafe.Pointer) { -} - -func raceReadRange(addr unsafe.Pointer, len int) { -} - -func raceWriteRange(addr unsafe.Pointer, len int) { -} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go deleted file mode 100644 index dbd2b6c..0000000 --- a/vendor/golang.org/x/sys/unix/readdirent_getdents.go +++ /dev/null @@ -1,12 +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. - -//go:build aix || dragonfly || freebsd || linux || netbsd || openbsd - -package unix - -// ReadDirent reads directory entries from fd and writes them into buf. -func ReadDirent(fd int, buf []byte) (n int, err error) { - return Getdents(fd, buf) -} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go deleted file mode 100644 index b903c00..0000000 --- a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +++ /dev/null @@ -1,19 +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. - -//go:build darwin || zos - -package unix - -import "unsafe" - -// ReadDirent reads directory entries from fd and writes them into buf. -func ReadDirent(fd int, buf []byte) (n int, err error) { - // Final argument is (basep *uintptr) and the syscall doesn't take nil. - // 64 bits should be enough. (32 bits isn't even on 386). Since the - // actual system call is getdirentries64, 64 is a good guess. - // TODO(rsc): Can we use a single global basep for all calls? - var base = (*uintptr)(unsafe.Pointer(new(uint64))) - return Getdirentries(fd, buf, base) -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go deleted file mode 100644 index 5144dee..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +++ /dev/null @@ -1,16 +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. - -package unix - -// Round the length of a raw sockaddr up to align it properly. -func cmsgAlignOf(salen int) int { - salign := SizeofPtr - if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) { - // 64-bit Dragonfly before the September 2019 ABI changes still requires - // 32-bit aligned access to network subsystem. - salign = 4 - } - return (salen + salign - 1) & ^(salign - 1) -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go deleted file mode 100644 index 5f63147..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go +++ /dev/null @@ -1,85 +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. - -// Socket control messages - -package unix - -import "unsafe" - -// UnixCredentials encodes credentials into a socket control message -// for sending to another process. This can be used for -// authentication. -func UnixCredentials(ucred *Ucred) []byte { - b := make([]byte, CmsgSpace(SizeofUcred)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_CREDENTIALS - h.SetLen(CmsgLen(SizeofUcred)) - *(*Ucred)(h.data(0)) = *ucred - return b -} - -// ParseUnixCredentials decodes a socket control message that contains -// credentials in a Ucred structure. To receive such a message, the -// SO_PASSCRED option must be enabled on the socket. -func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_CREDENTIALS { - return nil, EINVAL - } - ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) - return &ucred, nil -} - -// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. -func PktInfo4(info *Inet4Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IP - h.Type = IP_PKTINFO - h.SetLen(CmsgLen(SizeofInet4Pktinfo)) - *(*Inet4Pktinfo)(h.data(0)) = *info - return b -} - -// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. -func PktInfo6(info *Inet6Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IPV6 - h.Type = IPV6_PKTINFO - h.SetLen(CmsgLen(SizeofInet6Pktinfo)) - *(*Inet6Pktinfo)(h.data(0)) = *info - return b -} - -// ParseOrigDstAddr decodes a socket control message containing the original -// destination address. To receive such a message the IP_RECVORIGDSTADDR or -// IPV6_RECVORIGDSTADDR option must be enabled on the socket. -func ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) { - switch { - case m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR: - pp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0])) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR: - pp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0])) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - - default: - return nil, EINVAL - } -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go deleted file mode 100644 index c3a62db..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +++ /dev/null @@ -1,106 +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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -// Socket control messages - -package unix - -import ( - "unsafe" -) - -// CmsgLen returns the value to store in the Len field of the Cmsghdr -// structure, taking into account any necessary alignment. -func CmsgLen(datalen int) int { - return cmsgAlignOf(SizeofCmsghdr) + datalen -} - -// CmsgSpace returns the number of bytes an ancillary element with -// payload of the passed data length occupies. -func CmsgSpace(datalen int) int { - return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) -} - -func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer { - return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset) -} - -// SocketControlMessage represents a socket control message. -type SocketControlMessage struct { - Header Cmsghdr - Data []byte -} - -// ParseSocketControlMessage parses b as an array of socket control -// messages. -func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { - var msgs []SocketControlMessage - i := 0 - for i+CmsgLen(0) <= len(b) { - h, dbuf, err := socketControlMessageHeaderAndData(b[i:]) - if err != nil { - return nil, err - } - m := SocketControlMessage{Header: *h, Data: dbuf} - msgs = append(msgs, m) - i += cmsgAlignOf(int(h.Len)) - } - return msgs, nil -} - -// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header, -// message data (a slice of b), and the remainder of b after that single message. -// When there are no remaining messages, len(remainder) == 0. -func ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) { - h, dbuf, err := socketControlMessageHeaderAndData(b) - if err != nil { - return Cmsghdr{}, nil, nil, err - } - if i := cmsgAlignOf(int(h.Len)); i < len(b) { - remainder = b[i:] - } - return *h, dbuf, remainder, nil -} - -func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { - return nil, nil, EINVAL - } - return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil -} - -// UnixRights encodes a set of open file descriptors into a socket -// control message for sending to another process. -func UnixRights(fds ...int) []byte { - datalen := len(fds) * 4 - b := make([]byte, CmsgSpace(datalen)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_RIGHTS - h.SetLen(CmsgLen(datalen)) - for i, fd := range fds { - *(*int32)(h.data(4 * uintptr(i))) = int32(fd) - } - return b -} - -// ParseUnixRights decodes a socket control message that contains an -// integer array of open file descriptors from another process. -func ParseUnixRights(m *SocketControlMessage) ([]int, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_RIGHTS { - return nil, EINVAL - } - fds := make([]int, len(m.Data)>>2) - for i, j := 0, 0; i < len(m.Data); i += 4 { - fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i]))) - j++ - } - return fds, nil -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go deleted file mode 100644 index 4a1eab3..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +++ /dev/null @@ -1,46 +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. - -//go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -import ( - "runtime" -) - -// Round the length of a raw sockaddr up to align it properly. -func cmsgAlignOf(salen int) int { - salign := SizeofPtr - - // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in - // sockcmsg_dragonfly.go - switch runtime.GOOS { - case "aix": - // There is no alignment on AIX. - salign = 1 - case "darwin", "ios", "illumos", "solaris": - // NOTE: It seems like 64-bit Darwin, Illumos and Solaris - // kernels still require 32-bit aligned access to network - // subsystem. - if SizeofPtr == 8 { - salign = 4 - } - case "netbsd", "openbsd": - // NetBSD and OpenBSD armv7 require 64-bit alignment. - if runtime.GOARCH == "arm" { - salign = 8 - } - // NetBSD aarch64 requires 128-bit alignment. - if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" { - salign = 16 - } - case "zos": - // z/OS socket macros use [32-bit] sizeof(int) alignment, - // not pointer width. - salign = SizeofInt - } - - return (salen + salign - 1) & ^(salign - 1) -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_zos.go b/vendor/golang.org/x/sys/unix/sockcmsg_zos.go deleted file mode 100644 index 3e53dbc..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_zos.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2024 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. - -// Socket control messages - -package unix - -import "unsafe" - -// UnixCredentials encodes credentials into a socket control message -// for sending to another process. This can be used for -// authentication. -func UnixCredentials(ucred *Ucred) []byte { - b := make([]byte, CmsgSpace(SizeofUcred)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_CREDENTIALS - h.SetLen(CmsgLen(SizeofUcred)) - *(*Ucred)(h.data(0)) = *ucred - return b -} - -// ParseUnixCredentials decodes a socket control message that contains -// credentials in a Ucred structure. To receive such a message, the -// SO_PASSCRED option must be enabled on the socket. -func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_CREDENTIALS { - return nil, EINVAL - } - ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) - return &ucred, nil -} - -// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. -func PktInfo4(info *Inet4Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IP - h.Type = IP_PKTINFO - h.SetLen(CmsgLen(SizeofInet4Pktinfo)) - *(*Inet4Pktinfo)(h.data(0)) = *info - return b -} - -// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. -func PktInfo6(info *Inet6Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IPV6 - h.Type = IPV6_PKTINFO - h.SetLen(CmsgLen(SizeofInet6Pktinfo)) - *(*Inet6Pktinfo)(h.data(0)) = *info - return b -} diff --git a/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s deleted file mode 100644 index 3c4f33c..0000000 --- a/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2024 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:build zos && s390x && gc - -#include "textflag.h" - -// provide the address of function variable to be fixed up. - -TEXT ·getPipe2Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Pipe2(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_FlockAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Flock(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_GetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Getxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_NanosleepAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Nanosleep(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_SetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Setxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_Wait4Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Wait4(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_MountAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Mount(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_UnmountAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Unmount(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_UtimesNanoAtAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·UtimesNanoAt(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_UtimesNanoAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·UtimesNano(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_MkfifoatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Mkfifoat(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_ChtagAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Chtag(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_ReadlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Readlinkat(SB), R8 - MOVD R8, ret+0(FP) - RET - diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go deleted file mode 100644 index 5ea74da..0000000 --- a/vendor/golang.org/x/sys/unix/syscall.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -// Package unix contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display OS-specific documentation for the current -// system. If you want godoc to display OS documentation for another -// system, set $GOOS and $GOARCH to the desired system. For example, if -// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS -// to freebsd and $GOARCH to arm. -// -// The primary use of this package is inside other packages that provide a more -// portable interface to the system, such as "os", "time" and "net". Use -// those packages rather than this one if you can. -// -// For details of the functions and data types in this package consult -// the manuals for the appropriate operating system. -// -// These calls return err == nil to indicate success; otherwise -// err represents an operating system error describing the failure and -// holds a value of type syscall.Errno. -package unix // import "golang.org/x/sys/unix" - -import ( - "bytes" - "strings" - "unsafe" -) - -// ByteSliceFromString returns a NUL-terminated slice of bytes -// containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, EINVAL). -func ByteSliceFromString(s string) ([]byte, error) { - if strings.IndexByte(s, 0) != -1 { - return nil, EINVAL - } - a := make([]byte, len(s)+1) - copy(a, s) - return a, nil -} - -// BytePtrFromString returns a pointer to a NUL-terminated array of -// bytes containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, EINVAL). -func BytePtrFromString(s string) (*byte, error) { - a, err := ByteSliceFromString(s) - if err != nil { - return nil, err - } - return &a[0], nil -} - -// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any -// bytes after the NUL removed. -func ByteSliceToString(s []byte) string { - if i := bytes.IndexByte(s, 0); i != -1 { - s = s[:i] - } - return string(s) -} - -// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. -// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated -// at a zero byte; if the zero byte is not present, the program may crash. -func BytePtrToString(p *byte) string { - if p == nil { - return "" - } - if *p == 0 { - return "" - } - - // Find NUL terminator. - n := 0 - for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + 1) - } - - return string(unsafe.Slice(p, n)) -} - -// Single-word zero for use when we need a valid pointer to 0 bytes. -var _zero uintptr diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go deleted file mode 100644 index 6f15ba1..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_aix.go +++ /dev/null @@ -1,582 +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. - -//go:build aix - -// Aix system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and -// wrap it in our own nicer implementation. - -package unix - -import "unsafe" - -/* - * Wrapped - */ - -func Access(path string, mode uint32) (err error) { - return Faccessat(AT_FDCWD, path, mode, 0) -} - -func Chmod(path string, mode uint32) (err error) { - return Fchmodat(AT_FDCWD, path, mode, 0) -} - -func Chown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, 0) -} - -func Creat(path string, mode uint32) (fd int, err error) { - return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) error { - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n > len(sa.raw.Path) { - return nil, 0, EINVAL - } - if n == len(sa.raw.Path) && name[0] != '@' { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = uint8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { - // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -//sys getcwd(buf []byte) (err error) - -const ImplementsGetwd = true - -func Getwd() (ret string, err error) { - for len := uint64(4096); ; len *= 2 { - b := make([]byte, len) - err := getcwd(b) - if err == nil { - i := 0 - for b[i] != 0 { - i++ - } - return string(b[0:i]), nil - } - if err != ERANGE { - return "", err - } - } -} - -func Getcwd(buf []byte) (n int, err error) { - err = getcwd(buf) - if err == nil { - i := 0 - for buf[i] != 0 { - i++ - } - n = i + 1 - } - return -} - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 16 on BSD. - if n < 0 || n > 1000 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -/* - * Socket - */ - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if nfd == -1 { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); n == -1 { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - - // Some versions of AIX have a bug in getsockname (see IV78655). - // We can't rely on sa.Len being set correctly. - n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL. - for i := 0; i < n; i++ { - if pp.Path[i] == 0 { - n = i - break - } - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return nil, EAFNOSUPPORT -} - -func Gettimeofday(tv *Timeval) (err error) { - err = gettimeofday(tv, nil) - return -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -//sys getdirent(fd int, buf []byte) (n int, err error) - -func Getdents(fd int, buf []byte) (n int, err error) { - return getdirent(fd, buf) -} - -//sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - var r Pid_t - err = ERESTART - // AIX wait4 may return with ERESTART errno, while the process is still - // active. - for err == ERESTART { - r, err = wait4(Pid_t(pid), &status, options, rusage) - } - wpid = int(r) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -/* - * Wait - */ - -type WaitStatus uint32 - -func (w WaitStatus) Stopped() bool { return w&0x40 != 0 } -func (w WaitStatus) StopSignal() Signal { - if !w.Stopped() { - return -1 - } - return Signal(w>>8) & 0xFF -} - -func (w WaitStatus) Exited() bool { return w&0xFF == 0 } -func (w WaitStatus) ExitStatus() int { - if !w.Exited() { - return -1 - } - return int((w >> 8) & 0xFF) -} - -func (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 } -func (w WaitStatus) Signal() Signal { - if !w.Signaled() { - return -1 - } - return Signal(w>>16) & 0xFF -} - -func (w WaitStatus) Continued() bool { return w&0x01000000 != 0 } - -func (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 } - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys ioctl(fd int, req int, arg uintptr) (err error) -//sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = ioctl - -// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX -// There is no way to create a custom fcntl and to keep //sys fcntl easily, -// Therefore, the programmer must call dup2 instead of fcntl in this case. - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -//sys FcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -//sys FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -//sys fsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range - -func Fsync(fd int) error { - return fsyncRange(fd, O_SYNC, 0, 0) -} - -/* - * Direct access - */ - -//sys Acct(path string) (err error) -//sys Chdir(path string) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Dup(oldfd int) (fd int, err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fdatasync(fd int) (err error) -// readdir_r -//sysnb Getpgid(pid int) (pgid int, err error) - -//sys Getpgrp() (pid int) - -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Kill(pid int, sig Signal) (err error) -//sys Klogctl(typ int, buf []byte) (n int, err error) = syslog -//sys Mkdir(dirfd int, path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64 -//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Setdomainname(p []byte) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tv *Timeval) (err error) - -//sys Setuid(uid int) (err error) -//sys Setgid(uid int) (err error) - -//sys Setpriority(which int, who int, prio int) (err error) -//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) -//sys Sync() -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sysnb Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys write(fd int, p []byte) (n int, err error) - -//sys Dup2(oldfd int, newfd int) (err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys fstat(fd int, stat *Stat_t) (err error) -//sys fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = pread64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys stat(path string, statptr *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys Truncate(path string, length int64) (err error) - -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) - -// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used. -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg - -//sys munmap(addr uintptr, length uintptr) (err error) -//sys Madvise(b []byte, advice int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) - -//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 - err = pipe(&pp) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) - -//sys Getsystemcfg(label int) (n uint64) - -//sys umount(target string) (err error) - -func Unmount(target string, flags int) (err error) { - if flags != 0 { - // AIX doesn't have any flags for umount. - return ENOSYS - } - return umount(target) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go deleted file mode 100644 index 1fdaa47..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go +++ /dev/null @@ -1,52 +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. - -//go:build aix && ppc - -package unix - -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64 - -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func Fstat(fd int, stat *Stat_t) error { - return fstat(fd, stat) -} - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { - return fstatat(dirfd, path, stat, flags) -} - -func Lstat(path string, stat *Stat_t) error { - return lstat(path, stat) -} - -func Stat(path string, statptr *Stat_t) error { - return stat(path, statptr) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go deleted file mode 100644 index c87f9a9..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +++ /dev/null @@ -1,83 +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. - -//go:build aix && ppc64 - -package unix - -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek - -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64 - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int64(sec), Usec: int32(usec)} -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// In order to only have Timespec structure, type of Stat_t's fields -// Atim, Mtim and Ctim is changed from StTimespec to Timespec during -// ztypes generation. -// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an -// int32, so the fields' value must be modified. -func fixStatTimFields(stat *Stat_t) { - stat.Atim.Nsec >>= 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_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go deleted file mode 100644 index a00c3e5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ /dev/null @@ -1,609 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin || dragonfly || freebsd || netbsd || openbsd - -// BSD system call wrappers shared by *BSD based systems -// including OS X (Darwin) and FreeBSD. Like the other -// syscall_*.go files it is compiled as Go code but also -// used as input to mksyscall which parses the //sys -// lines and generates system call stubs. - -package unix - -import ( - "runtime" - "syscall" - "unsafe" -) - -const ImplementsGetwd = true - -func Getwd() (string, error) { - var buf [PathMax]byte - _, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - -/* - * Wrapped - */ - -//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) -//sysnb setgroups(ngid int, gid *_Gid_t) (err error) - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 16 on BSD. - if n < 0 || n > 1000 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. - -type WaitStatus uint32 - -const ( - mask = 0x7F - core = 0x80 - shift = 8 - - exited = 0 - killed = 9 - stopped = 0x7F -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) ExitStatus() int { - if w&mask != exited { - return -1 - } - return int(w >> shift) -} - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } - -func (w WaitStatus) Signal() syscall.Signal { - sig := syscall.Signal(w & mask) - if sig == stopped || sig == 0 { - return -1 - } - return sig -} - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } - -func (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL } - -func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - wpid, err = wait4(pid, &status, options, rusage) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys Shutdown(s int, how int) (err error) - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet4 - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet6 - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) || n == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Index == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = sa.Len - sa.raw.Family = AF_LINK - sa.raw.Index = sa.Index - sa.raw.Type = sa.Type - sa.raw.Nlen = sa.Nlen - sa.raw.Alen = sa.Alen - sa.raw.Slen = sa.Slen - sa.raw.Data = sa.Data - return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_LINK: - pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) - sa := new(SockaddrDatalink) - sa.Len = pp.Len - sa.Family = pp.Family - sa.Index = pp.Index - sa.Type = pp.Type - sa.Nlen = pp.Nlen - sa.Alen = pp.Alen - sa.Slen = pp.Slen - sa.Data = pp.Data - return sa, nil - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - if pp.Len < 2 || pp.Len > SizeofSockaddrUnix { - return nil, EINVAL - } - sa := new(SockaddrUnix) - - // Some BSDs include the trailing NUL in the length, whereas - // others do not. Work around this by subtracting the leading - // family and len. The path is then scanned to see if a NUL - // terminator still exists within the length. - n := int(pp.Len) - 2 // subtract leading Family, Len - for i := 0; i < n; i++ { - if pp.Path[i] == 0 { - // found early NUL; assume Len included the NUL - // or was overestimating. - n = i - break - } - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return anyToSockaddrGOOS(fd, rsa) -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if err != nil { - return - } - if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 { - // Accepted socket has no address. - // This is likely due to a bug in xnu kernels, - // where instead of ECONNABORTED error socket - // is accepted, but has no address. - Close(nfd) - return 0, nil, ECONNABORTED - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - // TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be - // reported upstream. - if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { - rsa.Addr.Family = AF_UNIX - rsa.Addr.Len = SizeofSockaddrUnix - } - return anyToSockaddr(fd, &rsa) -} - -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) - -// GetsockoptString returns the string value of the socket option opt for the -// socket associated with fd at the given socket level. -func GetsockoptString(fd, level, opt int) (string, error) { - buf := make([]byte, 256) - vallen := _Socklen(len(buf)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - if err != nil { - return "", err - } - return ByteSliceToString(buf[:vallen]), nil -} - -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) - -func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) { - var change, event unsafe.Pointer - if len(changes) > 0 { - change = unsafe.Pointer(&changes[0]) - } - if len(events) > 0 { - event = unsafe.Pointer(&events[0]) - } - return kevent(kq, change, len(changes), event, len(events), timeout) -} - -// sysctlmib translates name to mib number and appends any additional args. -func sysctlmib(name string, args ...int) ([]_C_int, error) { - // Translate name to mib number. - mib, err := nametomib(name) - if err != nil { - return nil, err - } - - for _, a := range args { - mib = append(mib, _C_int(a)) - } - - return mib, nil -} - -func Sysctl(name string) (string, error) { - return SysctlArgs(name) -} - -func SysctlArgs(name string, args ...int) (string, error) { - buf, err := SysctlRaw(name, args...) - if err != nil { - return "", err - } - n := len(buf) - - // Throw away terminating NUL. - if n > 0 && buf[n-1] == '\x00' { - n-- - } - return string(buf[0:n]), nil -} - -func SysctlUint32(name string) (uint32, error) { - return SysctlUint32Args(name) -} - -func SysctlUint32Args(name string, args ...int) (uint32, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return 0, err - } - - n := uintptr(4) - buf := make([]byte, 4) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return 0, err - } - if n != 4 { - return 0, EIO - } - return *(*uint32)(unsafe.Pointer(&buf[0])), nil -} - -func SysctlUint64(name string, args ...int) (uint64, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return 0, err - } - - n := uintptr(8) - buf := make([]byte, 8) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return 0, err - } - if n != 8 { - return 0, EIO - } - return *(*uint64)(unsafe.Pointer(&buf[0])), nil -} - -func SysctlRaw(name string, args ...int) ([]byte, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Read into buffer of that size. - buf := make([]byte, n) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return nil, err - } - - // The actual call may return less than the original reported required - // size so ensure we deal with that. - return buf[:n], nil -} - -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 SysctlTimeval(name string) (*Timeval, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - var tv Timeval - n := uintptr(unsafe.Sizeof(tv)) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil { - return nil, err - } - if n != unsafe.Sizeof(tv) { - return nil, EIO - } - return &tv, nil -} - -//sys utimes(path string, timeval *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) error { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(ts) != 2 { - return EINVAL - } - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - // Not as efficient as it could be because Timespec and - // Timeval have different types in the different OSes - tv := [2]Timeval{ - NsecToTimeval(TimespecToNsec(ts[0])), - NsecToTimeval(TimespecToNsec(ts[1])), - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys futimes(fd int, timeval *[2]Timeval) (err error) - -func Futimes(fd int, tv []Timeval) error { - if tv == nil { - return futimes(fd, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -// TODO: wrap -// Acct(name nil-string) (err error) -// Gethostuuid(uuid *byte, timeout *Timespec) (err error) -// Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) - -//sys Madvise(b []byte, behav int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go deleted file mode 100644 index 7838ca5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ /dev/null @@ -1,800 +0,0 @@ -// Copyright 2009,2010 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. - -// Darwin system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "fmt" - "syscall" - "unsafe" -) - -//sys closedir(dir uintptr) (err error) -//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) - -func fdopendir(fd int) (dir uintptr, err error) { - r0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0) - dir = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fdopendir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib" - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - // Simulate Getdirentries using fdopendir/readdir_r/closedir. - // We store the number of entries to skip in the seek - // offset of fd. See issue #31368. - // It's not the full required semantics, but should handle the case - // of calling Getdirentries or ReadDirent repeatedly. - // It won't handle assigning the results of lseek to *basep, or handle - // the directory being edited underfoot. - skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - return 0, err - } - - // We need to duplicate the incoming file descriptor - // because the caller expects to retain control of it, but - // fdopendir expects to take control of its argument. - // Just Dup'ing the file descriptor is not enough, as the - // result shares underlying state. Use Openat to make a really - // new file descriptor referring to the same directory. - fd2, err := Openat(fd, ".", O_RDONLY, 0) - if err != nil { - return 0, err - } - d, err := fdopendir(fd2) - if err != nil { - Close(fd2) - return 0, err - } - defer closedir(d) - - var cnt int64 - for { - var entry Dirent - var entryp *Dirent - e := readdir_r(d, &entry, &entryp) - if e != 0 { - return n, errnoErr(e) - } - if entryp == nil { - break - } - if skip > 0 { - skip-- - cnt++ - continue - } - - reclen := int(entry.Reclen) - if reclen > len(buf) { - // Not enough room. Return for now. - // The counter will let us know where we should start up again. - // Note: this strategy for suspending in the middle and - // restarting is O(n^2) in the length of the directory. Oh well. - break - } - - // Copy entry into return buffer. - s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen) - copy(buf, s) - - buf = buf[reclen:] - n += reclen - cnt++ - } - // Set the seek offset of the input fd to record - // how many files we've already returned. - _, err = Seek(fd, cnt, 0 /* SEEK_SET */) - if err != nil { - return n, err - } - - return n, nil -} - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - raw RawSockaddrDatalink -} - -// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets. -type SockaddrCtl struct { - ID uint32 - Unit uint32 - raw RawSockaddrCtl -} - -func (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Sc_len = SizeofSockaddrCtl - sa.raw.Sc_family = AF_SYSTEM - sa.raw.Ss_sysaddr = AF_SYS_CONTROL - sa.raw.Sc_id = sa.ID - sa.raw.Sc_unit = sa.Unit - return unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil -} - -// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. -// SockaddrVM provides access to Darwin VM sockets: a mechanism that enables -// bidirectional communication between a hypervisor and its guest virtual -// machines. -type SockaddrVM struct { - // CID and Port specify a context ID and port address for a VM socket. - // Guests have a unique CID, and hosts may have a well-known CID of: - // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. - // - VMADDR_CID_LOCAL: refers to local communication (loopback). - // - VMADDR_CID_HOST: refers to other processes on the host. - CID uint32 - Port uint32 - raw RawSockaddrVM -} - -func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Len = SizeofSockaddrVM - sa.raw.Family = AF_VSOCK - sa.raw.Port = sa.Port - sa.raw.Cid = sa.CID - - return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_SYSTEM: - pp := (*RawSockaddrCtl)(unsafe.Pointer(rsa)) - if pp.Ss_sysaddr == AF_SYS_CONTROL { - sa := new(SockaddrCtl) - sa.ID = pp.Sc_id - sa.Unit = pp.Sc_unit - return sa, nil - } - case AF_VSOCK: - pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) - sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, - } - return sa, nil - } - return nil, EAFNOSUPPORT -} - -// Some external packages rely on SYS___SYSCTL being defined to implement their -// own sysctl wrappers. Provide it here, even though direct syscalls are no -// longer supported on darwin. -const SYS___SYSCTL = SYS_SYSCTL - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } -func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } -func PtraceDenyAttach() (err error) { return ptrace(PT_DENY_ATTACH, 0, 0, 0) } - -//sysnb pipe(p *[2]int32) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var x [2]int32 - err = pipe(&x) - if err == nil { - p[0] = int(x[0]) - p[1] = int(x[1]) - } - return -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - return getfsstat(_p0, bufsize, flags) -} - -func xattrPointer(dest []byte) *byte { - // It's only when dest is set to NULL that the OS X implementations of - // getxattr() and listxattr() return the current sizes of the named attributes. - // An empty byte array is not sufficient. To maintain the same behaviour as the - // linux implementation, we wrap around the system calls and pass in NULL when - // dest is empty. - var destp *byte - if len(dest) > 0 { - destp = &dest[0] - } - return destp -} - -//sys getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0) -} - -func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW) -} - -//sys fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - return fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0) -} - -//sys setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - // The parameters for the OS X implementation vary slightly compared to the - // linux system call, specifically the position parameter: - // - // linux: - // int setxattr( - // const char *path, - // const char *name, - // const void *value, - // size_t size, - // int flags - // ); - // - // darwin: - // int setxattr( - // const char *path, - // const char *name, - // void *value, - // size_t size, - // u_int32_t position, - // int options - // ); - // - // position specifies the offset within the extended attribute. In the - // current implementation, only the resource fork extended attribute makes - // use of this argument. For all others, position is reserved. We simply - // default to setting it to zero. - return setxattr(path, attr, xattrPointer(data), len(data), 0, flags) -} - -func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { - return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW) -} - -//sys fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) - -func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { - return fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0) -} - -//sys removexattr(path string, attr string, options int) (err error) - -func Removexattr(path string, attr string) (err error) { - // We wrap around and explicitly zero out the options provided to the OS X - // implementation of removexattr, we do so for interoperability with the - // linux variant. - return removexattr(path, attr, 0) -} - -func Lremovexattr(link string, attr string) (err error) { - return removexattr(link, attr, XATTR_NOFOLLOW) -} - -//sys fremovexattr(fd int, attr string, options int) (err error) - -func Fremovexattr(fd int, attr string) (err error) { - return fremovexattr(fd, attr, 0) -} - -//sys listxattr(path string, dest *byte, size int, options int) (sz int, err error) - -func Listxattr(path string, dest []byte) (sz int, err error) { - return listxattr(path, xattrPointer(dest), len(dest), 0) -} - -func Llistxattr(link string, dest []byte) (sz int, err error) { - return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW) -} - -//sys flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - return flistxattr(fd, xattrPointer(dest), len(dest), 0) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Wrapped - */ - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -//sys kill(pid int, signum int, posix int) (err error) - -func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -func IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error { - return ioctlPtr(fd, CTLIOCGINFO, unsafe.Pointer(ctlInfo)) -} - -// IfreqMTU is struct ifreq used to get or set a network device's MTU. -type IfreqMTU struct { - Name [IFNAMSIZ]byte - MTU int32 -} - -// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU -// of the network device specified by ifname. -func IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) { - var ifreq IfreqMTU - copy(ifreq.Name[:], ifname) - err := ioctlPtr(fd, SIOCGIFMTU, unsafe.Pointer(&ifreq)) - return &ifreq, err -} - -// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU -// of the network device specified by ifreq.Name. -func IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error { - return ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq)) -} - -//sys renamexNp(from string, to string, flag uint32) (err error) - -func RenamexNp(from string, to string, flag uint32) (err error) { - return renamexNp(from, to, flag) -} - -//sys renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) - -func RenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) { - return renameatxNp(fromfd, from, tofd, to, flag) -} - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - var length = int64(count) - err = sendfile(infd, outfd, *offset, &length, nil, 0) - written = int(length) - return -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, errno -} - -func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. -// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. -func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { - x := new(Xucred) - vallen := _Socklen(SizeofXucred) - err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) - return x, err -} - -func GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) { - var value TCPConnectionInfo - vallen := _Socklen(SizeofTCPConnectionInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - var kinfo KinfoProc - n := uintptr(SizeofKinfoProc) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&kinfo)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofKinfoProc { - return nil, EIO - } - return &kinfo, nil -} - -func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - for { - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - if n%SizeofKinfoProc != 0 { - return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) - } - - // Read into buffer of that size. - buf := make([]KinfoProc, n/SizeofKinfoProc) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { - if err == ENOMEM { - // Process table grew. Try again. - continue - } - return nil, err - } - if n%SizeofKinfoProc != 0 { - return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) - } - - // The actual call may return less than the original reported required - // size so ensure we deal with that. - return buf[:n/SizeofKinfoProc], nil - } -} - -//sys pthread_chdir_np(path string) (err error) - -func PthreadChdir(path string) (err error) { - return pthread_chdir_np(path) -} - -//sys pthread_fchdir_np(fd int) (err error) - -func PthreadFchdir(fd int) (err error) { - return pthread_fchdir_np(fd) -} - -// Connectx calls connectx(2) to initiate a connection on a socket. -// -// srcIf, srcAddr, and dstAddr are filled into a [SaEndpoints] struct and passed as the endpoints argument. -// -// - srcIf is the optional source interface index. 0 means unspecified. -// - srcAddr is the optional source address. nil means unspecified. -// - dstAddr is the destination address. -// -// On success, Connectx returns the number of bytes enqueued for transmission. -func Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocID, flags uint32, iov []Iovec, connid *SaeConnID) (n uintptr, err error) { - endpoints := SaEndpoints{ - Srcif: srcIf, - } - - if srcAddr != nil { - addrp, addrlen, err := srcAddr.sockaddr() - if err != nil { - return 0, err - } - endpoints.Srcaddr = (*RawSockaddr)(addrp) - endpoints.Srcaddrlen = uint32(addrlen) - } - - if dstAddr != nil { - addrp, addrlen, err := dstAddr.sockaddr() - if err != nil { - return 0, err - } - endpoints.Dstaddr = (*RawSockaddr)(addrp) - endpoints.Dstaddrlen = uint32(addrlen) - } - - err = connectx(fd, &endpoints, associd, flags, iov, &n, connid) - return -} - -const minIovec = 8 - -func Readv(fd int, iovs [][]byte) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - n, err = readv(fd, iovecs) - readvRacedetect(iovecs, n, err) - return n, err -} - -func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - n, err = preadv(fd, iovecs, offset) - readvRacedetect(iovecs, n, err) - return n, err -} - -func Writev(fd int, iovs [][]byte) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = writev(fd, iovecs) - writevRacedetect(iovecs, n) - return n, err -} - -func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = pwritev(fd, iovecs, offset) - writevRacedetect(iovecs, n) - return n, err -} - -func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { - for _, b := range bs { - var v Iovec - v.SetLen(len(b)) - if len(b) > 0 { - v.Base = &b[0] - } else { - v.Base = (*byte)(unsafe.Pointer(&_zero)) - } - vecs = append(vecs, v) - } - return vecs -} - -func writevRacedetect(iovecs []Iovec, n int) { - if !raceenabled { - return - } - for i := 0; n > 0 && i < len(iovecs); i++ { - m := int(iovecs[i].Len) - if m > n { - m = n - } - n -= m - if m > 0 { - raceReadRange(unsafe.Pointer(iovecs[i].Base), m) - } - } -} - -func readvRacedetect(iovecs []Iovec, n int, err error) { - if !raceenabled { - return - } - for i := 0; n > 0 && i < len(iovecs); i++ { - m := int(iovecs[i].Len) - if m > n { - m = n - } - n -= m - if m > 0 { - raceWriteRange(unsafe.Pointer(iovecs[i].Base), m) - } - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } -} - -//sys connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) -//sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) - -//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) -//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) -//sys shmdt(addr uintptr) (err error) -//sys shmget(key int, size int, flag int) (id int, err error) - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Clonefile(src string, dst string, flags int) (err error) -//sys Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exchangedata(path1 string, path2 string, options int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Getcwd(buf []byte) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tp *Timeval) (err error) -//sysnb Getuid() (uid int) -//sysnb Issetugid() (tainted bool) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) -//sys Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sys Setprivexec(flag int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readv(fd int, iovecs []Iovec) (n int, err error) -//sys preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) -//sys writev(fd int, iovecs []Iovec) (n int, err error) -//sys pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go deleted file mode 100644 index 0eaecf5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && darwin - -package unix - -import "syscall" - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 -//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go deleted file mode 100644 index f36c670..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +++ /dev/null @@ -1,50 +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. - -//go:build arm64 && darwin - -package unix - -import "syscall" - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic - -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT -//sys Lstat(path string, stat *Stat_t) (err error) -//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go deleted file mode 100644 index 2f0fa76..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +++ /dev/null @@ -1,26 +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. - -//go:build darwin - -package unix - -import _ "unsafe" - -// Implemented in the runtime package (runtime/sys_darwin.go) -func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only -func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) - -//go:linkname syscall_syscall syscall.syscall -//go:linkname syscall_syscall6 syscall.syscall6 -//go:linkname syscall_syscall6X syscall.syscall6X -//go:linkname syscall_syscall9 syscall.syscall9 -//go:linkname syscall_rawSyscall syscall.rawSyscall -//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 -//go:linkname syscall_syscallPtr syscall.syscallPtr diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go deleted file mode 100644 index be8c002..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// DragonFly BSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "sync" - "unsafe" -) - -// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h -var ( - osreldateOnce sync.Once - osreldate uint32 -) - -// First __DragonFly_version after September 2019 ABI changes -// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html -const _dragonflyABIChangeVersion = 500705 - -func supportsABI(ver uint32) bool { - osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) - return osreldate >= ver -} - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - Rcf uint16 - Route [16]uint16 - raw RawSockaddrDatalink -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - return nil, EAFNOSUPPORT -} - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - namlen, ok := direntNamlen(buf) - if !ok { - return 0, false - } - return (16 + namlen + 1 + 7) &^ 7, true -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -//sysnb pipe() (r int, w int, err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - r, w, err := pipe() - if err == nil { - p[0], p[1] = r, w - } - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (r int, w int, err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - // pipe2 on dragonfly takes an fds array as an argument, but still - // returns the file descriptors. - r, w, err := pipe2(&pp, flags) - if err == nil { - p[0], p[1] = r, w - } - return err -} - -//sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) - -func pread(fd int, p []byte, offset int64) (n int, err error) { - return extpread(fd, p, 0, offset) -} - -//sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - return extpwrite(fd, p, 0, offset) -} - -func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { - err := sysctl(mib, old, oldlen, nil, 0) - if err != nil { - // Utsname members on Dragonfly are only 32 bytes and - // the syscall returns ENOMEM in case the actual value - // is longer. - if err == ENOMEM { - err = nil - } - } - return err -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil { - return err - } - uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil { - return err - } - uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctlUname(mib, &uname.Release[0], &n); err != nil { - return err - } - uname.Release[unsafe.Sizeof(uname.Release)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctlUname(mib, &uname.Version[0], &n); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil { - return err - } - uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0 - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -func Dup3(oldfd, newfd, flags int) error { - if oldfd == newfd || flags&^O_CLOEXEC != 0 { - return EINVAL - } - how := F_DUP2FD - if flags&O_CLOEXEC != 0 { - how = F_DUP2FD_CLOEXEC - } - _, err := fcntl(oldfd, how, newfd) - return err -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Getdents(fd int, buf []byte) (n int, err error) -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(fd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go deleted file mode 100644 index 14bab6b..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && dragonfly - -package unix - -import ( - "syscall" - "unsafe" -) - -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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go deleted file mode 100644 index 2b57e0f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ /dev/null @@ -1,455 +0,0 @@ -// Copyright 2009,2010 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. - -// FreeBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "errors" - "sync" - "unsafe" -) - -// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html. -var ( - osreldateOnce sync.Once - osreldate uint32 -) - -func supportsABI(ver uint32) bool { - osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) - return osreldate >= ver -} - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 - raw RawSockaddrDatalink -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - return nil, EAFNOSUPPORT -} - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -func Pipe(p []int) (err error) { - return Pipe2(p, 0) -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, errno -} - -func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. -// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. -func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { - x := new(Xucred) - vallen := _Socklen(SizeofXucred) - err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) - return x, err -} - -func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var ( - _p0 unsafe.Pointer - bufsize uintptr - ) - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - return nil -} - -func Stat(path string, st *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, st, 0) -} - -func Lstat(path string, st *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW) -} - -func Getdents(fd int, buf []byte) (n int, err error) { - return Getdirentries(fd, buf, nil) -} - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - if basep == nil || unsafe.Sizeof(*basep) == 8 { - return getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep))) - } - // The 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(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 -} - -func Mknod(path string, mode uint32, dev uint64) (err error) { - return Mknodat(AT_FDCWD, path, mode, dev) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -//sys ptrace(request int, pid int, addr uintptr, data int) (err error) -//sys ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE - -func PtraceAttach(pid int) (err error) { - return ptrace(PT_ATTACH, pid, 0, 0) -} - -func PtraceCont(pid int, signal int) (err error) { - return ptrace(PT_CONTINUE, pid, 1, signal) -} - -func PtraceDetach(pid int) (err error) { - return ptrace(PT_DETACH, pid, 1, 0) -} - -func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { - return ptracePtr(PT_GETFPREGS, pid, unsafe.Pointer(fpregsout), 0) -} - -func PtraceGetRegs(pid int, regsout *Reg) (err error) { - return ptracePtr(PT_GETREGS, pid, unsafe.Pointer(regsout), 0) -} - -func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{ - Op: int32(req), - Offs: offs, - } - if countin > 0 { - _ = out[:countin] // check bounds - ioDesc.Addr = &out[0] - } else if out != nil { - ioDesc.Addr = (*byte)(unsafe.Pointer(&_zero)) - } - ioDesc.SetLen(countin) - - err = ptracePtr(PT_IO, pid, unsafe.Pointer(&ioDesc), 0) - return int(ioDesc.Len), err -} - -func PtraceLwpEvents(pid int, enable int) (err error) { - return ptrace(PT_LWP_EVENTS, pid, 0, enable) -} - -func PtraceLwpInfo(pid int, info *PtraceLwpInfoStruct) (err error) { - return ptracePtr(PT_LWPINFO, pid, unsafe.Pointer(info), int(unsafe.Sizeof(*info))) -} - -func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { - return PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong) -} - -func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { - return PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong) -} - -func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { - return PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong) -} - -func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { - return PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong) -} - -func PtraceSetRegs(pid int, regs *Reg) (err error) { - return ptracePtr(PT_SETREGS, pid, unsafe.Pointer(regs), 0) -} - -func PtraceSingleStep(pid int) (err error) { - return ptrace(PT_STEP, pid, 1, 0) -} - -func Dup3(oldfd, newfd, flags int) error { - if oldfd == newfd || flags&^O_CLOEXEC != 0 { - return EINVAL - } - how := F_DUP2FD - if flags&O_CLOEXEC != 0 { - how = F_DUP2FD_CLOEXEC - } - _, err := fcntl(oldfd, how, newfd) - return err -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys CapEnter() (err error) -//sys capRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET -//sys capRightsLimit(fd int, rightsp *CapRights) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exit(code int) -//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) -//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) -//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) -//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknodat(fd int, path string, mode uint32, dev uint64) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go deleted file mode 100644 index 3967bca..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func PtraceGetFsBase(pid int, fsbase *int64) (err error) { - return ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go deleted file mode 100644 index eff19ad..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func PtraceGetFsBase(pid int, fsbase *int64) (err error) { - return ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go deleted file mode 100644 index 4f24b51..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go deleted file mode 100644 index ac30759..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +++ /dev/null @@ -1,60 +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. - -//go:build arm64 && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go deleted file mode 100644 index aab725c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2022 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:build riscv64 && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd.go b/vendor/golang.org/x/sys/unix/syscall_hurd.go deleted file mode 100644 index a6a2d2f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_hurd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2022 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:build hurd - -package unix - -/* -#include -int ioctl(int, unsigned long int, uintptr_t); -*/ -import "C" -import "unsafe" - -func ioctl(fd int, req uint, arg uintptr) (err error) { - r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) - if r0 == -1 && er != nil { - err = er - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg))) - if r0 == -1 && er != nil { - err = er - } - return -} diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go deleted file mode 100644 index df89f9e..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 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:build 386 && hurd - -package unix - -const ( - TIOCGETA = 0x62251713 -) - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go deleted file mode 100644 index a863f70..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_illumos.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2021 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. - -// illumos system calls not present on Solaris. - -//go:build amd64 && illumos - -package unix - -import ( - "unsafe" -) - -func bytes2iovec(bs [][]byte) []Iovec { - iovecs := make([]Iovec, len(bs)) - for i, b := range bs { - iovecs[i].SetLen(len(b)) - if len(b) > 0 { - iovecs[i].Base = &b[0] - } else { - iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) - } - } - return iovecs -} - -//sys readv(fd int, iovs []Iovec) (n int, err error) - -func Readv(fd int, iovs [][]byte) (n int, err error) { - iovecs := bytes2iovec(iovs) - n, err = readv(fd, iovecs) - return n, err -} - -//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error) - -func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) { - iovecs := bytes2iovec(iovs) - n, err = preadv(fd, iovecs, off) - return n, err -} - -//sys writev(fd int, iovs []Iovec) (n int, err error) - -func Writev(fd int, iovs [][]byte) (n int, err error) { - iovecs := bytes2iovec(iovs) - n, err = writev(fd, iovecs) - return n, err -} - -//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error) - -func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) { - iovecs := bytes2iovec(iovs) - n, err = pwritev(fd, iovecs, off) - return n, err -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4 - -func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go deleted file mode 100644 index 9439af9..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ /dev/null @@ -1,2645 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Linux system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and -// wrap it in our own nicer implementation. - -package unix - -import ( - "encoding/binary" - "slices" - "strconv" - "syscall" - "time" - "unsafe" -) - -/* - * Wrapped - */ - -func Access(path string, mode uint32) (err error) { - return Faccessat(AT_FDCWD, path, mode, 0) -} - -func Chmod(path string, mode uint32) (err error) { - return Fchmodat(AT_FDCWD, path, mode, 0) -} - -func Chown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, 0) -} - -func Creat(path string, mode uint32) (fd int, err error) { - return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) -} - -func EpollCreate(size int) (fd int, err error) { - if size <= 0 { - return -1, EINVAL - } - return EpollCreate1(0) -} - -//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) -//sys fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) - -func Fchmodat(dirfd int, path string, mode uint32, flags int) error { - // Linux fchmodat doesn't support the flags parameter, but fchmodat2 does. - // Try fchmodat2 if flags are specified. - if flags != 0 { - err := fchmodat2(dirfd, path, mode, flags) - if err == ENOSYS { - // fchmodat2 isn't available. If the flags are known to be valid, - // return EOPNOTSUPP to indicate that fchmodat doesn't support them. - if flags&^(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 { - return EINVAL - } else if flags&(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 { - return EOPNOTSUPP - } - } - return err - } - return fchmodat(dirfd, path, mode) -} - -func InotifyInit() (fd int, err error) { - return InotifyInit1(0) -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -// ioctl itself should not be exposed directly, but additional get/set functions -// for specific types are permissible. These are defined in ioctl.go and -// ioctl_linux.go. -// -// The third argument to ioctl is often a pointer but sometimes an integer. -// Callers should use ioctlPtr when the third argument is a pointer and ioctl -// when the third argument is an integer. -// -// TODO: some existing code incorrectly uses ioctl when it should use ioctlPtr. - -//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) - -func Link(oldpath string, newpath string) (err error) { - return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0) -} - -func Mkdir(path string, mode uint32) (err error) { - return Mkdirat(AT_FDCWD, path, mode) -} - -func Mknod(path string, mode uint32, dev int) (err error) { - return Mknodat(AT_FDCWD, path, mode, dev) -} - -func Open(path string, mode int, perm uint32) (fd int, err error) { - return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm) -} - -//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - return openat(dirfd, path, flags|O_LARGEFILE, mode) -} - -//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) - -func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { - return openat2(dirfd, path, how, SizeofOpenHow) -} - -func Pipe(p []int) error { - return Pipe2(p, 0) -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) - -func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - if len(fds) == 0 { - return ppoll(nil, 0, timeout, sigmask) - } - return ppoll(&fds[0], len(fds), timeout, sigmask) -} - -func Poll(fds []PollFd, timeout int) (n int, err error) { - var ts *Timespec - if timeout >= 0 { - ts = new(Timespec) - *ts = NsecToTimespec(int64(timeout) * 1e6) - } - return Ppoll(fds, ts, nil) -} - -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) - -func Readlink(path string, buf []byte) (n int, err error) { - return Readlinkat(AT_FDCWD, path, buf) -} - -func Rename(oldpath string, newpath string) (err error) { - return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath) -} - -func Rmdir(path string) error { - return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) -} - -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) - -func Symlink(oldpath string, newpath string) (err error) { - return Symlinkat(oldpath, AT_FDCWD, newpath) -} - -func Unlink(path string) error { - return Unlinkat(AT_FDCWD, path, 0) -} - -//sys Unlinkat(dirfd int, path string, flags int) (err error) - -func Utimes(path string, tv []Timeval) error { - if tv == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - var ts [2]Timespec - ts[0] = NsecToTimespec(TimevalToNsec(tv[0])) - ts[1] = NsecToTimespec(TimevalToNsec(tv[1])) - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - return UtimesNanoAt(AT_FDCWD, path, ts, 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -func Futimesat(dirfd int, path string, tv []Timeval) error { - if tv == nil { - return futimesat(dirfd, path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func Futimes(fd int, tv []Timeval) (err error) { - // Believe it or not, this is the best we can do on Linux - // (and is what glibc does). - return Utimes("/proc/self/fd/"+strconv.Itoa(fd), tv) -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - n, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - // Getcwd returns the number of bytes written to buf, including the NUL. - if n < 1 || n > len(buf) || buf[n-1] != 0 { - return "", EINVAL - } - // In some cases, Linux can return a path that starts with the - // "(unreachable)" prefix, which can potentially be a valid relative - // path. To work around that, return ENOENT if path is not absolute. - if buf[0] != '/' { - return "", ENOENT - } - - return string(buf[0 : n-1]), nil -} - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 1<<16 on Linux. - if n < 0 || n > 1<<20 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -type WaitStatus uint32 - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. At least that's the idea. -// There are various irregularities. For example, the -// "continued" status is 0xFFFF, distinguishing itself -// from stopped via the core dump bit. - -const ( - mask = 0x7F - core = 0x80 - exited = 0x00 - stopped = 0x7F - shift = 8 -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } - -func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } - -func (w WaitStatus) Continued() bool { return w == 0xFFFF } - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) ExitStatus() int { - if !w.Exited() { - return -1 - } - return int(w>>shift) & 0xFF -} - -func (w WaitStatus) Signal() syscall.Signal { - if !w.Signaled() { - return -1 - } - return syscall.Signal(w & mask) -} - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { - if w.StopSignal() != SIGTRAP { - return -1 - } - return int(w>>shift) >> 8 -} - -//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - wpid, err = wait4(pid, &status, options, rusage) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sys Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) - -func Mkfifo(path string, mode uint32) error { - return Mknod(path, mode|S_IFIFO, 0) -} - -func Mkfifoat(dirfd int, path string, mode uint32) error { - return Mknodat(dirfd, path, mode|S_IFIFO, 0) -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := range n { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { - // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets. -type SockaddrLinklayer struct { - Protocol uint16 - Ifindex int - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]byte - raw RawSockaddrLinklayer -} - -func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_PACKET - sa.raw.Protocol = sa.Protocol - sa.raw.Ifindex = int32(sa.Ifindex) - sa.raw.Hatype = sa.Hatype - sa.raw.Pkttype = sa.Pkttype - sa.raw.Halen = sa.Halen - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil -} - -// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets. -type SockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 - raw RawSockaddrNetlink -} - -func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_NETLINK - sa.raw.Pad = sa.Pad - sa.raw.Pid = sa.Pid - sa.raw.Groups = sa.Groups - return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil -} - -// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the HCI protocol. -type SockaddrHCI struct { - Dev uint16 - Channel uint16 - raw RawSockaddrHCI -} - -func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - sa.raw.Dev = sa.Dev - sa.raw.Channel = sa.Channel - return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil -} - -// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the L2CAP protocol. -type SockaddrL2 struct { - PSM uint16 - CID uint16 - Addr [6]uint8 - AddrType uint8 - raw RawSockaddrL2 -} - -func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm)) - psm[0] = byte(sa.PSM) - psm[1] = byte(sa.PSM >> 8) - for i := range len(sa.Addr) { - sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i] - } - cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid)) - cid[0] = byte(sa.CID) - cid[1] = byte(sa.CID >> 8) - sa.raw.Bdaddr_type = sa.AddrType - return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil -} - -// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the RFCOMM protocol. -// -// Server example: -// -// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) -// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ -// Channel: 1, -// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 -// }) -// _ = Listen(fd, 1) -// nfd, sa, _ := Accept(fd) -// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) -// Read(nfd, buf) -// -// Client example: -// -// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) -// _ = Connect(fd, &SockaddrRFCOMM{ -// Channel: 1, -// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 -// }) -// Write(fd, []byte(`hello`)) -type SockaddrRFCOMM struct { - // Addr represents a bluetooth address, byte ordering is little-endian. - Addr [6]uint8 - - // Channel is a designated bluetooth channel, only 1-30 are available for use. - // Since Linux 2.6.7 and further zero value is the first available channel. - Channel uint8 - - raw RawSockaddrRFCOMM -} - -func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - sa.raw.Channel = sa.Channel - sa.raw.Bdaddr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil -} - -// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. -// The RxID and TxID fields are used for transport protocol addressing in -// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with -// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. -// -// The SockaddrCAN struct must be bound to the socket file descriptor -// using Bind before the CAN socket can be used. -// -// // Read one raw CAN frame -// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) -// addr := &SockaddrCAN{Ifindex: index} -// Bind(fd, addr) -// frame := make([]byte, 16) -// Read(fd, frame) -// -// The full SocketCAN documentation can be found in the linux kernel -// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt -type SockaddrCAN struct { - Ifindex int - RxID uint32 - TxID uint32 - raw RawSockaddrCAN -} - -func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_CAN - sa.raw.Ifindex = int32(sa.Ifindex) - rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) - for i := range 4 { - sa.raw.Addr[i] = rx[i] - } - tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) - for i := range 4 { - sa.raw.Addr[i+4] = tx[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil -} - -// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939 -// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information -// on the purposes of the fields, check the official linux kernel documentation -// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst -type SockaddrCANJ1939 struct { - Ifindex int - Name uint64 - PGN uint32 - Addr uint8 - raw RawSockaddrCAN -} - -func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_CAN - sa.raw.Ifindex = int32(sa.Ifindex) - n := (*[8]byte)(unsafe.Pointer(&sa.Name)) - for i := range 8 { - sa.raw.Addr[i] = n[i] - } - p := (*[4]byte)(unsafe.Pointer(&sa.PGN)) - for i := range 4 { - sa.raw.Addr[i+8] = p[i] - } - sa.raw.Addr[12] = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil -} - -// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets. -// SockaddrALG enables userspace access to the Linux kernel's cryptography -// subsystem. The Type and Name fields specify which type of hash or cipher -// should be used with a given socket. -// -// To create a file descriptor that provides access to a hash or cipher, both -// Bind and Accept must be used. Once the setup process is complete, input -// data can be written to the socket, processed by the kernel, and then read -// back as hash output or ciphertext. -// -// Here is an example of using an AF_ALG socket with SHA1 hashing. -// The initial socket setup process is as follows: -// -// // Open a socket to perform SHA1 hashing. -// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) -// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} -// unix.Bind(fd, addr) -// // Note: unix.Accept does not work at this time; must invoke accept() -// // manually using unix.Syscall. -// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) -// -// Once a file descriptor has been returned from Accept, it may be used to -// perform SHA1 hashing. The descriptor is not safe for concurrent use, but -// may be re-used repeatedly with subsequent Write and Read operations. -// -// When hashing a small byte slice or string, a single Write and Read may -// be used: -// -// // Assume hashfd is already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash an input string and read the results. Each Write discards -// // previous hash state. Read always reads the current state. -// b := make([]byte, 20) -// for i := 0; i < 2; i++ { -// io.WriteString(hash, "Hello, world.") -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// } -// // Output: -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// -// For hashing larger byte slices, or byte streams such as those read from -// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update -// the hash digest instead of creating a new one for a given chunk and finalizing it. -// -// // Assume hashfd and addr are already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash the contents of a file. -// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") -// b := make([]byte, 4096) -// for { -// n, err := f.Read(b) -// if err == io.EOF { -// break -// } -// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) -// } -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 -// -// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. -type SockaddrALG struct { - Type string - Name string - Feature uint32 - Mask uint32 - raw RawSockaddrALG -} - -func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { - // Leave room for NUL byte terminator. - if len(sa.Type) > len(sa.raw.Type)-1 { - return nil, 0, EINVAL - } - if len(sa.Name) > len(sa.raw.Name)-1 { - return nil, 0, EINVAL - } - - sa.raw.Family = AF_ALG - sa.raw.Feat = sa.Feature - sa.raw.Mask = sa.Mask - - copy(sa.raw.Type[:], sa.Type) - copy(sa.raw.Name[:], sa.Name) - - return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil -} - -// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. -// SockaddrVM provides access to Linux VM sockets: a mechanism that enables -// bidirectional communication between a hypervisor and its guest virtual -// machines. -type SockaddrVM struct { - // CID and Port specify a context ID and port address for a VM socket. - // Guests have a unique CID, and hosts may have a well-known CID of: - // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. - // - VMADDR_CID_LOCAL: refers to local communication (loopback). - // - VMADDR_CID_HOST: refers to other processes on the host. - CID uint32 - Port uint32 - Flags uint8 - raw RawSockaddrVM -} - -func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_VSOCK - sa.raw.Port = sa.Port - sa.raw.Cid = sa.CID - sa.raw.Flags = sa.Flags - - return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil -} - -type SockaddrXDP struct { - Flags uint16 - Ifindex uint32 - QueueID uint32 - SharedUmemFD uint32 - raw RawSockaddrXDP -} - -func (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_XDP - sa.raw.Flags = sa.Flags - sa.raw.Ifindex = sa.Ifindex - sa.raw.Queue_id = sa.QueueID - sa.raw.Shared_umem_fd = sa.SharedUmemFD - - return unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil -} - -// This constant mirrors the #define of PX_PROTO_OE in -// linux/if_pppox.h. We're defining this by hand here instead of -// autogenerating through mkerrors.sh because including -// linux/if_pppox.h causes some declaration conflicts with other -// includes (linux/if_pppox.h includes linux/in.h, which conflicts -// with netinet/in.h). Given that we only need a single zero constant -// out of that file, it's cleaner to just define it by hand here. -const px_proto_oe = 0 - -type SockaddrPPPoE struct { - SID uint16 - Remote []byte - Dev string - raw RawSockaddrPPPoX -} - -func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { - if len(sa.Remote) != 6 { - return nil, 0, EINVAL - } - if len(sa.Dev) > IFNAMSIZ-1 { - return nil, 0, EINVAL - } - - *(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX - // This next field is in host-endian byte order. We can't use the - // same unsafe pointer cast as above, because this value is not - // 32-bit aligned and some architectures don't allow unaligned - // access. - // - // However, the value of px_proto_oe is 0, so we can use - // encoding/binary helpers to write the bytes without worrying - // about the ordering. - binary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe) - // This field is deliberately big-endian, unlike the previous - // one. The kernel expects SID to be in network byte order. - binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID) - copy(sa.raw[8:14], sa.Remote) - clear(sa.raw[14 : 14+IFNAMSIZ]) - copy(sa.raw[14:], sa.Dev) - return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil -} - -// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets. -// For more information on TIPC, see: http://tipc.sourceforge.net/. -type SockaddrTIPC struct { - // Scope is the publication scopes when binding service/service range. - // Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE. - Scope int - - // Addr is the type of address used to manipulate a socket. Addr must be - // one of: - // - *TIPCSocketAddr: "id" variant in the C addr union - // - *TIPCServiceRange: "nameseq" variant in the C addr union - // - *TIPCServiceName: "name" variant in the C addr union - // - // If nil, EINVAL will be returned when the structure is used. - Addr TIPCAddr - - raw RawSockaddrTIPC -} - -// TIPCAddr is implemented by types that can be used as an address for -// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange, -// and *TIPCServiceName. -type TIPCAddr interface { - tipcAddrtype() uint8 - tipcAddr() [12]byte -} - -func (sa *TIPCSocketAddr) tipcAddr() [12]byte { - var out [12]byte - copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:]) - return out -} - -func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR } - -func (sa *TIPCServiceRange) tipcAddr() [12]byte { - var out [12]byte - copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:]) - return out -} - -func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE } - -func (sa *TIPCServiceName) tipcAddr() [12]byte { - var out [12]byte - copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:]) - return out -} - -func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR } - -func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Addr == nil { - return nil, 0, EINVAL - } - sa.raw.Family = AF_TIPC - sa.raw.Scope = int8(sa.Scope) - sa.raw.Addrtype = sa.Addr.tipcAddrtype() - sa.raw.Addr = sa.Addr.tipcAddr() - return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil -} - -// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets. -type SockaddrL2TPIP struct { - Addr [4]byte - ConnId uint32 - raw RawSockaddrL2TPIP -} - -func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_INET - sa.raw.Conn_id = sa.ConnId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil -} - -// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets. -type SockaddrL2TPIP6 struct { - Addr [16]byte - ZoneId uint32 - ConnId uint32 - raw RawSockaddrL2TPIP6 -} - -func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_INET6 - sa.raw.Conn_id = sa.ConnId - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil -} - -// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets. -type SockaddrIUCV struct { - UserID string - Name string - raw RawSockaddrIUCV -} - -func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_IUCV - // These are EBCDIC encoded by the kernel, but we still need to pad them - // with blanks. Initializing with blanks allows the caller to feed in either - // a padded or an unpadded string. - for i := range 8 { - sa.raw.Nodeid[i] = ' ' - sa.raw.User_id[i] = ' ' - sa.raw.Name[i] = ' ' - } - if len(sa.UserID) > 8 || len(sa.Name) > 8 { - return nil, 0, EINVAL - } - for i, b := range []byte(sa.UserID[:]) { - sa.raw.User_id[i] = int8(b) - } - for i, b := range []byte(sa.Name[:]) { - sa.raw.Name[i] = int8(b) - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil -} - -type SockaddrNFC struct { - DeviceIdx uint32 - TargetIdx uint32 - NFCProtocol uint32 - raw RawSockaddrNFC -} - -func (sa *SockaddrNFC) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Sa_family = AF_NFC - sa.raw.Dev_idx = sa.DeviceIdx - sa.raw.Target_idx = sa.TargetIdx - sa.raw.Nfc_protocol = sa.NFCProtocol - return unsafe.Pointer(&sa.raw), SizeofSockaddrNFC, nil -} - -type SockaddrNFCLLCP struct { - DeviceIdx uint32 - TargetIdx uint32 - NFCProtocol uint32 - DestinationSAP uint8 - SourceSAP uint8 - ServiceName string - raw RawSockaddrNFCLLCP -} - -func (sa *SockaddrNFCLLCP) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Sa_family = AF_NFC - sa.raw.Dev_idx = sa.DeviceIdx - sa.raw.Target_idx = sa.TargetIdx - sa.raw.Nfc_protocol = sa.NFCProtocol - sa.raw.Dsap = sa.DestinationSAP - sa.raw.Ssap = sa.SourceSAP - if len(sa.ServiceName) > len(sa.raw.Service_name) { - return nil, 0, EINVAL - } - copy(sa.raw.Service_name[:], sa.ServiceName) - sa.raw.SetServiceNameLen(len(sa.ServiceName)) - return unsafe.Pointer(&sa.raw), SizeofSockaddrNFCLLCP, nil -} - -var socketProtocol = func(fd int) (int, error) { - return GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_NETLINK: - pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) - sa := new(SockaddrNetlink) - sa.Family = pp.Family - sa.Pad = pp.Pad - sa.Pid = pp.Pid - sa.Groups = pp.Groups - return sa, nil - - case AF_PACKET: - pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) - sa := new(SockaddrLinklayer) - sa.Protocol = pp.Protocol - sa.Ifindex = int(pp.Ifindex) - sa.Hatype = pp.Hatype - sa.Pkttype = pp.Pkttype - sa.Halen = pp.Halen - sa.Addr = pp.Addr - return sa, nil - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - if pp.Path[0] == 0 { - // "Abstract" Unix domain socket. - // Rewrite leading NUL as @ for textual display. - // (This is the standard convention.) - // Not friendly to overwrite in place, - // but the callers below don't care. - pp.Path[0] = '@' - } - - // Assume path ends at NUL. - // This is not technically the Linux semantics for - // abstract Unix domain sockets--they are supposed - // to be uninterpreted fixed-size binary blobs--but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - - switch proto { - case IPPROTO_L2TP: - pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa)) - sa := new(SockaddrL2TPIP) - sa.ConnId = pp.Conn_id - sa.Addr = pp.Addr - return sa, nil - default: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - } - - case AF_INET6: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - - switch proto { - case IPPROTO_L2TP: - pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa)) - sa := new(SockaddrL2TPIP6) - sa.ConnId = pp.Conn_id - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - default: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - - case AF_VSOCK: - pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) - sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, - Flags: pp.Flags, - } - return sa, nil - case AF_BLUETOOTH: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - // only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections - switch proto { - case BTPROTO_L2CAP: - pp := (*RawSockaddrL2)(unsafe.Pointer(rsa)) - sa := &SockaddrL2{ - PSM: pp.Psm, - CID: pp.Cid, - Addr: pp.Bdaddr, - AddrType: pp.Bdaddr_type, - } - return sa, nil - case BTPROTO_RFCOMM: - pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa)) - sa := &SockaddrRFCOMM{ - Channel: pp.Channel, - Addr: pp.Bdaddr, - } - return sa, nil - } - case AF_XDP: - pp := (*RawSockaddrXDP)(unsafe.Pointer(rsa)) - sa := &SockaddrXDP{ - Flags: pp.Flags, - Ifindex: pp.Ifindex, - QueueID: pp.Queue_id, - SharedUmemFD: pp.Shared_umem_fd, - } - return sa, nil - case AF_PPPOX: - pp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa)) - if binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe { - return nil, EINVAL - } - sa := &SockaddrPPPoE{ - SID: binary.BigEndian.Uint16(pp[6:8]), - Remote: pp[8:14], - } - for i := 14; i < 14+IFNAMSIZ; i++ { - if pp[i] == 0 { - sa.Dev = string(pp[14:i]) - break - } - } - return sa, nil - case AF_TIPC: - pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa)) - - sa := &SockaddrTIPC{ - Scope: int(pp.Scope), - } - - // Determine which union variant is present in pp.Addr by checking - // pp.Addrtype. - switch pp.Addrtype { - case TIPC_SERVICE_RANGE: - sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr)) - case TIPC_SERVICE_ADDR: - sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr)) - case TIPC_SOCKET_ADDR: - sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr)) - default: - return nil, EINVAL - } - - return sa, nil - case AF_IUCV: - pp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa)) - - var user [8]byte - var name [8]byte - - for i := range 8 { - user[i] = byte(pp.User_id[i]) - name[i] = byte(pp.Name[i]) - } - - sa := &SockaddrIUCV{ - UserID: string(user[:]), - Name: string(name[:]), - } - return sa, nil - - case AF_CAN: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - - pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa)) - - switch proto { - case CAN_J1939: - sa := &SockaddrCANJ1939{ - Ifindex: int(pp.Ifindex), - } - name := (*[8]byte)(unsafe.Pointer(&sa.Name)) - for i := range 8 { - name[i] = pp.Addr[i] - } - pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN)) - for i := range 4 { - pgn[i] = pp.Addr[i+8] - } - addr := (*[1]byte)(unsafe.Pointer(&sa.Addr)) - addr[0] = pp.Addr[12] - return sa, nil - default: - sa := &SockaddrCAN{ - Ifindex: int(pp.Ifindex), - } - rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) - for i := range 4 { - rx[i] = pp.Addr[i] - } - tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) - for i := range 4 { - tx[i] = pp.Addr[i+4] - } - return sa, nil - } - case AF_NFC: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - switch proto { - case NFC_SOCKPROTO_RAW: - pp := (*RawSockaddrNFC)(unsafe.Pointer(rsa)) - sa := &SockaddrNFC{ - DeviceIdx: pp.Dev_idx, - TargetIdx: pp.Target_idx, - NFCProtocol: pp.Nfc_protocol, - } - return sa, nil - case NFC_SOCKPROTO_LLCP: - pp := (*RawSockaddrNFCLLCP)(unsafe.Pointer(rsa)) - if uint64(pp.Service_name_len) > uint64(len(pp.Service_name)) { - return nil, EINVAL - } - sa := &SockaddrNFCLLCP{ - DeviceIdx: pp.Dev_idx, - TargetIdx: pp.Target_idx, - NFCProtocol: pp.Nfc_protocol, - DestinationSAP: pp.Dsap, - SourceSAP: pp.Ssap, - ServiceName: string(pp.Service_name[:pp.Service_name_len]), - } - return sa, nil - default: - return nil, EINVAL - } - } - return nil, EAFNOSUPPORT -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, 0) - if err != nil { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { - var value Ucred - vallen := _Socklen(SizeofUcred) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { - var value TCPInfo - vallen := _Socklen(SizeofTCPInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -// GetsockoptTCPCCVegasInfo returns algorithm specific congestion control information for a socket using the "vegas" -// algorithm. -// -// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: -// -// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) -func GetsockoptTCPCCVegasInfo(fd, level, opt int) (*TCPVegasInfo, error) { - var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment - vallen := _Socklen(SizeofTCPCCInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - out := (*TCPVegasInfo)(unsafe.Pointer(&value[0])) - return out, err -} - -// GetsockoptTCPCCDCTCPInfo returns algorithm specific congestion control information for a socket using the "dctp" -// algorithm. -// -// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: -// -// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) -func GetsockoptTCPCCDCTCPInfo(fd, level, opt int) (*TCPDCTCPInfo, error) { - var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment - vallen := _Socklen(SizeofTCPCCInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - out := (*TCPDCTCPInfo)(unsafe.Pointer(&value[0])) - return out, err -} - -// GetsockoptTCPCCBBRInfo returns algorithm specific congestion control information for a socket using the "bbr" -// algorithm. -// -// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: -// -// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) -func GetsockoptTCPCCBBRInfo(fd, level, opt int) (*TCPBBRInfo, error) { - var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment - vallen := _Socklen(SizeofTCPCCInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - out := (*TCPBBRInfo)(unsafe.Pointer(&value[0])) - return out, err -} - -// GetsockoptString returns the string value of the socket option opt for the -// socket associated with fd at the given socket level. -func GetsockoptString(fd, level, opt int) (string, error) { - buf := make([]byte, 256) - vallen := _Socklen(len(buf)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - if err != nil { - if err == ERANGE { - buf = make([]byte, vallen) - err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - } - if err != nil { - return "", err - } - } - return ByteSliceToString(buf[:vallen]), 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 { - return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog)) -} - -func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error { - var p unsafe.Pointer - if len(filter) > 0 { - p = unsafe.Pointer(&filter[0]) - } - 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)) -} - -func SetsockoptTCPRepairOpt(fd, level, opt int, o []TCPRepairOpt) (err error) { - if len(o) == 0 { - return EINVAL - } - return setsockopt(fd, level, opt, unsafe.Pointer(&o[0]), uintptr(SizeofTCPRepairOpt*len(o))) -} - -func SetsockoptTCPMD5Sig(fd, level, opt int, s *TCPMD5Sig) error { - return setsockopt(fd, level, opt, unsafe.Pointer(s), unsafe.Sizeof(*s)) -} - -// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) - -// KeyctlInt calls keyctl commands in which each argument is an int. -// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK, -// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT, -// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT, -// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT. -//sys KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlBuffer calls keyctl commands in which the third and fourth -// arguments are a buffer and its length, respectively. -// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE. -//sys KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlString calls keyctl commands which return a string. -// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY. -func KeyctlString(cmd int, id int) (string, error) { - // We must loop as the string data may change in between the syscalls. - // We could allocate a large buffer here to reduce the chance that the - // syscall needs to be called twice; however, this is unnecessary as - // the performance loss is negligible. - var buffer []byte - for { - // Try to fill the buffer with data - length, err := KeyctlBuffer(cmd, id, buffer, 0) - if err != nil { - return "", err - } - - // Check if the data was written - if length <= len(buffer) { - // Exclude the null terminator - return string(buffer[:length-1]), nil - } - - // Make a bigger buffer if needed - buffer = make([]byte, length) - } -} - -// Keyctl commands with special signatures. - -// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html -func KeyctlGetKeyringID(id int, create bool) (ringid int, err error) { - createInt := 0 - if create { - createInt = 1 - } - return KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0) -} - -// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the -// key handle permission mask as described in the "keyctl setperm" section of -// http://man7.org/linux/man-pages/man1/keyctl.1.html. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html -func KeyctlSetperm(id int, perm uint32) error { - _, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0) - return err -} - -//sys keyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL - -// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html -func KeyctlJoinSessionKeyring(name string) (ringid int, err error) { - return keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name) -} - -//sys keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlSearch implements the KEYCTL_SEARCH command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_search.3.html -func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) { - return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) -} - -//sys keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL - -// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This -// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice -// of Iovec (each of which represents a buffer) instead of a single buffer. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html -func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error { - return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid) -} - -//sys keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL - -// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command -// computes a Diffie-Hellman shared secret based on the provide params. The -// secret is written to the provided buffer and the returned size is the number -// of bytes written (returning an error if there is insufficient space in the -// buffer). If a nil buffer is passed in, this function returns the minimum -// buffer length needed to store the appropriate data. Note that this differs -// from KEYCTL_READ's behavior which always returns the requested payload size. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html -func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) { - return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer) -} - -// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This -// command limits the set of keys that can be linked to the keyring, regardless -// of keyring permissions. The command requires the "setattr" permission. -// -// When called with an empty keyType the command locks the keyring, preventing -// any further keys from being linked to the keyring. -// -// The "asymmetric" keyType defines restrictions requiring key payloads to be -// DER encoded X.509 certificates signed by keys in another keyring. Restrictions -// for "asymmetric" include "builtin_trusted", "builtin_and_secondary_trusted", -// "key_or_keyring:", and "key_or_keyring::chain". -// -// As of Linux 4.12, only the "asymmetric" keyType defines type-specific -// restrictions. -// -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html -// http://man7.org/linux/man-pages/man2/keyctl.2.html -func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error { - if keyType == "" { - return keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid) - } - return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction) -} - -//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL -//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - if emptyIovecs(iov) { - var sockType int - sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) - if err != nil { - return - } - // receive at least one normal byte - if sockType != SOCK_DGRAM { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - } - msg.Control = &oob[0] - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(ptr) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - empty = emptyIovecs(iov) - if empty { - var sockType int - sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) - if err != nil { - return 0, err - } - // send at least one normal byte - if sockType != SOCK_DGRAM { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - } - msg.Control = &oob[0] - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -// BindToDevice binds the socket associated with fd to device. -func BindToDevice(fd int, device string) (err error) { - return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) -} - -//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) -//sys ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE - -func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { - // The peek requests are machine-size oriented, so we wrap it - // to retrieve arbitrary-length data. - - // The ptrace syscall differs from glibc's ptrace. - // Peeks returns the word in *data, not as the return value. - - var buf [SizeofPtr]byte - - // Leading edge. PEEKTEXT/PEEKDATA don't require aligned - // access (PEEKUSER warns that it might), but if we don't - // align our reads, we might straddle an unmapped page - // boundary and not get the bytes leading up to the page - // boundary. - n := 0 - if addr%SizeofPtr != 0 { - err = ptracePtr(req, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) - if err != nil { - return 0, err - } - n += copy(out, buf[addr%SizeofPtr:]) - out = out[n:] - } - - // Remainder. - for len(out) > 0 { - // We use an internal buffer to guarantee alignment. - // It's not documented if this is necessary, but we're paranoid. - err = ptracePtr(req, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) - if err != nil { - return n, err - } - copied := copy(out, buf[0:]) - n += copied - out = out[copied:] - } - - return n, nil -} - -func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out) -} - -func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKDATA, pid, addr, out) -} - -func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKUSR, pid, addr, out) -} - -func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) { - // As for ptracePeek, we need to align our accesses to deal - // with the possibility of straddling an invalid page. - - // Leading edge. - n := 0 - if addr%SizeofPtr != 0 { - var buf [SizeofPtr]byte - err = ptracePtr(peekReq, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) - if err != nil { - return 0, err - } - n += copy(buf[addr%SizeofPtr:], data) - word := *((*uintptr)(unsafe.Pointer(&buf[0]))) - err = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word) - if err != nil { - return 0, err - } - data = data[n:] - } - - // Interior. - for len(data) > SizeofPtr { - word := *((*uintptr)(unsafe.Pointer(&data[0]))) - err = ptrace(pokeReq, pid, addr+uintptr(n), word) - if err != nil { - return n, err - } - n += SizeofPtr - data = data[SizeofPtr:] - } - - // Trailing edge. - if len(data) > 0 { - var buf [SizeofPtr]byte - err = ptracePtr(peekReq, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) - if err != nil { - return n, err - } - copy(buf[0:], data) - word := *((*uintptr)(unsafe.Pointer(&buf[0]))) - err = ptrace(pokeReq, pid, addr+uintptr(n), word) - if err != nil { - return n, err - } - n += len(data) - } - - return n, nil -} - -func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data) -} - -func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) -} - -func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) -} - -// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so -// x/sys/unix doesn't need to depend on debug/elf and thus -// compress/zlib, debug/dwarf, and other packages. -const elfNT_PRSTATUS = 1 - -func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { - var iov Iovec - iov.Base = (*byte)(unsafe.Pointer(regsout)) - iov.SetLen(int(unsafe.Sizeof(*regsout))) - return ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) -} - -func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { - var iov Iovec - iov.Base = (*byte)(unsafe.Pointer(regs)) - iov.SetLen(int(unsafe.Sizeof(*regs))) - return ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) -} - -func PtraceSetOptions(pid int, options int) (err error) { - return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) -} - -func PtraceGetEventMsg(pid int) (msg uint, err error) { - var data _C_long - err = ptracePtr(PTRACE_GETEVENTMSG, pid, 0, unsafe.Pointer(&data)) - msg = uint(data) - return -} - -func PtraceCont(pid int, signal int) (err error) { - return ptrace(PTRACE_CONT, pid, 0, uintptr(signal)) -} - -func PtraceSyscall(pid int, signal int) (err error) { - return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal)) -} - -func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } - -func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) } - -func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } - -func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) } - -func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } - -//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) - -func Reboot(cmd int) (err error) { - return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -//sys mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) - -func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { - // Certain file systems get rather angry and EINVAL if you give - // them an empty string of data, rather than NULL. - if data == "" { - return mount(source, target, fstype, flags, nil) - } - datap, err := BytePtrFromString(data) - if err != nil { - return err - } - return mount(source, target, fstype, flags, datap) -} - -//sys mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) = SYS_MOUNT_SETATTR - -// MountSetattr is a wrapper for mount_setattr(2). -// https://man7.org/linux/man-pages/man2/mount_setattr.2.html -// -// Requires kernel >= 5.12. -func MountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr) error { - return mountSetattr(dirfd, pathname, flags, attr, unsafe.Sizeof(*attr)) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -// Sendto -// Recvfrom -// Socketpair - -/* - * Direct access - */ -//sys Acct(path string) (err error) -//sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) -//sys Adjtimex(buf *Timex) (state int, err error) -//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error) -//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) -//sys Chdir(path string) (err error) -//sys Chroot(path string) (err error) -//sys ClockAdjtime(clockid int32, buf *Timex) (state int, err error) -//sys ClockGetres(clockid int32, res *Timespec) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys ClockSettime(clockid int32, time *Timespec) (err error) -//sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) -//sys Close(fd int) (err error) -//sys CloseRange(first uint, last uint, flags uint) (err error) -//sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys DeleteModule(name string, flags int) (err error) -//sys Dup(oldfd int) (fd int, err error) - -func Dup2(oldfd, newfd int) error { - return Dup3(oldfd, newfd, 0) -} - -//sys Dup3(oldfd int, newfd int, flags int) (err error) -//sysnb EpollCreate1(flag int) (fd int, err error) -//sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) -//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 -//sys Exit(code int) = SYS_EXIT_GROUP -//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fdatasync(fd int) (err error) -//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) -//sys FinitModule(fd int, params string, flags int) (err error) -//sys Flistxattr(fd int, dest []byte) (sz int, err error) -//sys Flock(fd int, how int) (err error) -//sys Fremovexattr(fd int, attr string) (err error) -//sys Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) -//sys Fsync(fd int) (err error) -//sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) -//sys Fsopen(fsName string, flags int) (fd int, err error) -//sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) - -//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) - -func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { - var keyp *byte - if keyp, err = BytePtrFromString(key); err != nil { - return - } - return fsconfig(fd, cmd, keyp, value, aux) -} - -// FsconfigSetFlag is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_FLAG. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -func FsconfigSetFlag(fd int, key string) (err error) { - return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) -} - -// FsconfigSetString is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_STRING. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -// value is the parameter value to set. -func FsconfigSetString(fd int, key string, value string) (err error) { - var valuep *byte - if valuep, err = BytePtrFromString(value); err != nil { - return - } - return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) -} - -// FsconfigSetBinary is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_BINARY. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -// value is the parameter value to set. -func FsconfigSetBinary(fd int, key string, value []byte) (err error) { - if len(value) == 0 { - return EINVAL - } - return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) -} - -// FsconfigSetPath is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_PATH. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -// path is a non-empty path for specified key. -// atfd is a file descriptor at which to start lookup from or AT_FDCWD. -func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { - var valuep *byte - if valuep, err = BytePtrFromString(path); err != nil { - return - } - return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) -} - -// FsconfigSetPathEmpty is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as -// FconfigSetPath but with AT_PATH_EMPTY implied. -func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { - var valuep *byte - if valuep, err = BytePtrFromString(path); err != nil { - return - } - return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) -} - -// FsconfigSetFd is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_FD. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -// value is a file descriptor to be assigned to specified key. -func FsconfigSetFd(fd int, key string, value int) (err error) { - return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) -} - -// FsconfigCreate is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_CMD_CREATE. -// -// fd is the filesystem context to act upon. -func FsconfigCreate(fd int) (err error) { - return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) -} - -// FsconfigReconfigure is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_CMD_RECONFIGURE. -// -// fd is the filesystem context to act upon. -func FsconfigReconfigure(fd int) (err error) { - return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) -} - -//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 -//sysnb Getpgid(pid int) (pgid int, err error) - -func Getpgrp() (pid int) { - pid, _ = Getpgid(0) - return -} - -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) - -func Getrandom(buf []byte, flags int) (n int, err error) { - vdsoRet, supported := vgetrandom(buf, uint32(flags)) - if supported { - if vdsoRet < 0 { - return 0, errnoErr(syscall.Errno(-vdsoRet)) - } - return vdsoRet, nil - } - var p *byte - if len(buf) > 0 { - p = &buf[0] - } - r, _, e := Syscall(SYS_GETRANDOM, uintptr(unsafe.Pointer(p)), uintptr(len(buf)), uintptr(flags)) - if e != 0 { - return 0, errnoErr(e) - } - return int(r), nil -} - -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettid() (tid int) -//sys Getxattr(path string, attr string, dest []byte) (sz int, err error) -//sys InitModule(moduleImage []byte, params string) (err error) -//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) -//sysnb InotifyInit1(flags int) (fd int, err error) -//sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) -//sysnb Kill(pid int, sig syscall.Signal) (err error) -//sys Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG -//sys Lgetxattr(path string, attr string, dest []byte) (sz int, err error) -//sys Listxattr(path string, dest []byte) (sz int, err error) -//sys Llistxattr(path string, dest []byte) (sz int, err error) -//sys Lremovexattr(path string, attr string) (err error) -//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) -//sys MemfdCreate(name string, flags int) (fd int, err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys OpenTree(dfd int, fileName string, flags uint) (r int, err error) -//sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) -//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT -//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) -//sys pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Removexattr(path string, attr string) (err error) -//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) -//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) -//sys Setdomainname(p []byte) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tv *Timeval) (err error) -//sys Setns(fd int, nstype int) (err error) - -//go:linkname syscall_prlimit syscall.prlimit -func syscall_prlimit(pid, resource int, newlimit, old *syscall.Rlimit) error - -func Prlimit(pid, resource int, newlimit, old *Rlimit) error { - // Just call the syscall version, because as of Go 1.21 - // it will affect starting a new process. - return syscall_prlimit(pid, resource, (*syscall.Rlimit)(newlimit), (*syscall.Rlimit)(old)) -} - -// PrctlRetInt performs a prctl operation specified by option and further -// optional arguments arg2 through arg5 depending on option. It returns a -// non-negative integer that is returned by the prctl syscall. -func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) { - ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if err != 0 { - return 0, err - } - return int(ret), nil -} - -func Setuid(uid int) (err error) { - return syscall.Setuid(uid) -} - -func Setgid(gid int) (err error) { - return syscall.Setgid(gid) -} - -func Setreuid(ruid, euid int) (err error) { - return syscall.Setreuid(ruid, euid) -} - -func Setregid(rgid, egid int) (err error) { - return syscall.Setregid(rgid, egid) -} - -func Setresuid(ruid, euid, suid int) (err error) { - return syscall.Setresuid(ruid, euid, suid) -} - -func Setresgid(rgid, egid, sgid int) (err error) { - return syscall.Setresgid(rgid, egid, sgid) -} - -// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set. -// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability. -// If the call fails due to other reasons, current fsgid will be returned. -func SetfsgidRetGid(gid int) (int, error) { - return setfsgid(gid) -} - -// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set. -// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability -// If the call fails due to other reasons, current fsuid will be returned. -func SetfsuidRetUid(uid int) (int, error) { - return setfsuid(uid) -} - -func Setfsgid(gid int) error { - _, err := setfsgid(gid) - return err -} - -func Setfsuid(uid int) error { - _, err := setfsuid(uid) - return err -} - -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 Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) -//sys Sync() -//sys Syncfs(fd int) (err error) -//sysnb Sysinfo(info *Sysinfo_t) (err error) -//sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) -//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error) -//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error) -//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) -//sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sysnb Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2 -//sys Unshare(flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys exitThread(code int) (err error) = SYS_EXIT -//sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV -//sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV -//sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV -//sys pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV -//sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2 -//sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2 - -// minIovec is the size of the small initial allocation used by -// Readv, Writev, etc. -// -// This small allocation gets stack allocated, which lets the -// common use case of len(iovs) <= minIovs avoid more expensive -// heap allocations. -const minIovec = 8 - -// appendBytes converts bs to Iovecs and appends them to vecs. -func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { - for _, b := range bs { - var v Iovec - v.SetLen(len(b)) - if len(b) > 0 { - v.Base = &b[0] - } else { - v.Base = (*byte)(unsafe.Pointer(&_zero)) - } - vecs = append(vecs, v) - } - return vecs -} - -// offs2lohi splits offs into its low and high order bits. -func offs2lohi(offs int64) (lo, hi uintptr) { - const longBits = SizeofLong * 8 - return uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet -} - -func Readv(fd int, iovs [][]byte) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - n, err = readv(fd, iovecs) - readvRacedetect(iovecs, n, err) - return n, err -} - -func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - lo, hi := offs2lohi(offset) - n, err = preadv(fd, iovecs, lo, hi) - readvRacedetect(iovecs, n, err) - return n, err -} - -func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - lo, hi := offs2lohi(offset) - n, err = preadv2(fd, iovecs, lo, hi, flags) - readvRacedetect(iovecs, n, err) - return n, err -} - -func readvRacedetect(iovecs []Iovec, n int, err error) { - if !raceenabled { - return - } - for i := 0; n > 0 && i < len(iovecs); i++ { - m := min(int(iovecs[i].Len), n) - n -= m - if m > 0 { - raceWriteRange(unsafe.Pointer(iovecs[i].Base), m) - } - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } -} - -func Writev(fd int, iovs [][]byte) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = writev(fd, iovecs) - writevRacedetect(iovecs, n) - return n, err -} - -func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - lo, hi := offs2lohi(offset) - n, err = pwritev(fd, iovecs, lo, hi) - writevRacedetect(iovecs, n) - return n, err -} - -func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - lo, hi := offs2lohi(offset) - n, err = pwritev2(fd, iovecs, lo, hi, flags) - writevRacedetect(iovecs, n) - return n, err -} - -func writevRacedetect(iovecs []Iovec, n int) { - if !raceenabled { - return - } - for i := 0; n > 0 && i < len(iovecs); i++ { - m := min(int(iovecs[i].Len), n) - n -= m - if m > 0 { - raceReadRange(unsafe.Pointer(iovecs[i].Base), m) - } - } -} - -// mmap varies by architecture; see syscall_linux_*.go. -//sys munmap(addr uintptr, length uintptr) (err error) -//sys mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) -//sys Madvise(b []byte, advice int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) - -const ( - mremapFixed = MREMAP_FIXED - mremapDontunmap = MREMAP_DONTUNMAP - mremapMaymove = MREMAP_MAYMOVE -) - -// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, -// using the specified flags. -func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { - var p unsafe.Pointer - if len(iovs) > 0 { - p = unsafe.Pointer(&iovs[0]) - } - - n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0) - if errno != 0 { - return 0, syscall.Errno(errno) - } - - return int(n), nil -} - -func isGroupMember(gid int) bool { - groups, err := Getgroups() - if err != nil { - return false - } - - return slices.Contains(groups, gid) -} - -func isCapDacOverrideSet() bool { - hdr := CapUserHeader{Version: LINUX_CAPABILITY_VERSION_3} - data := [2]CapUserData{} - err := Capget(&hdr, &data[0]) - - return err == nil && data[0].Effective&(1<> 6) & 7 - } else { - var gid int - if flags&AT_EACCESS != 0 { - gid = Getegid() - } else { - gid = Getgid() - } - - if uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) { - fmode = (st.Mode >> 3) & 7 - } else { - fmode = st.Mode & 7 - } - } - - if fmode&mode == mode { - return nil - } - - 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 unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), 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) -} - -// Klogset wraps the sys_syslog system call; it sets console_loglevel to -// the value specified by arg and passes a dummy pointer to bufp. -func Klogset(typ int, arg int) (err error) { - var p unsafe.Pointer - _, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg)) - if errno != 0 { - return errnoErr(errno) - } - return nil -} - -// RemoteIovec is Iovec with the pointer replaced with an integer. -// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer -// refers to a location in a different process' address space, which -// would confuse the Go garbage collector. -type RemoteIovec struct { - Base uintptr - Len int -} - -//sys ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV -//sys ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV - -//sys PidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN -//sys PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD -//sys PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL - -//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) -//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) -//sys shmdt(addr uintptr) (err error) -//sys shmget(key int, size int, flag int) (id int, err error) - -//sys getitimer(which int, currValue *Itimerval) (err error) -//sys setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) - -// MakeItimerval creates an Itimerval from interval and value durations. -func MakeItimerval(interval, value time.Duration) Itimerval { - return Itimerval{ - Interval: NsecToTimeval(interval.Nanoseconds()), - Value: NsecToTimeval(value.Nanoseconds()), - } -} - -// A value which may be passed to the which parameter for Getitimer and -// Setitimer. -type ItimerWhich int - -// Possible which values for Getitimer and Setitimer. -const ( - ItimerReal ItimerWhich = ITIMER_REAL - ItimerVirtual ItimerWhich = ITIMER_VIRTUAL - ItimerProf ItimerWhich = ITIMER_PROF -) - -// Getitimer wraps getitimer(2) to return the current value of the timer -// specified by which. -func Getitimer(which ItimerWhich) (Itimerval, error) { - var it Itimerval - if err := getitimer(int(which), &it); err != nil { - return Itimerval{}, err - } - - return it, nil -} - -// Setitimer wraps setitimer(2) to arm or disarm the timer specified by which. -// It returns the previous value of the timer. -// -// If the Itimerval argument is the zero value, the timer will be disarmed. -func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) { - var prev Itimerval - if err := setitimer(int(which), &it, &prev); err != nil { - return Itimerval{}, err - } - - return prev, nil -} - -//sysnb rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK - -func PthreadSigmask(how int, set, oldset *Sigset_t) error { - if oldset != nil { - // Explicitly clear in case Sigset_t is larger than _C__NSIG. - *oldset = Sigset_t{} - } - return rtSigprocmask(how, set, oldset, _C__NSIG/8) -} - -//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) - -func Getresuid() (ruid, euid, suid int) { - var r, e, s _C_int - getresuid(&r, &e, &s) - return int(r), int(e), int(s) -} - -func Getresgid() (rgid, egid, sgid int) { - var r, e, s _C_int - getresgid(&r, &e, &s) - return int(r), int(e), int(s) -} - -// Pselect is a wrapper around the Linux pselect6 system call. -// This version does not modify the timeout argument. -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - // Per https://man7.org/linux/man-pages/man2/select.2.html#NOTES, - // The Linux pselect6() system call modifies its timeout argument. - // [Not modifying the argument] is the behavior required by POSIX.1-2001. - var mutableTimeout *Timespec - if timeout != nil { - mutableTimeout = new(Timespec) - *mutableTimeout = *timeout - } - - // The final argument of the pselect6() system call is not a - // sigset_t * pointer, but is instead a structure - var kernelMask *sigset_argpack - if sigmask != nil { - wordBits := 32 << (^uintptr(0) >> 63) // see math.intSize - - // A sigset stores one bit per signal, - // offset by 1 (because signal 0 does not exist). - // So the number of words needed is ⌈__C_NSIG - 1 / wordBits⌉. - sigsetWords := (_C__NSIG - 1 + wordBits - 1) / (wordBits) - - sigsetBytes := uintptr(sigsetWords * (wordBits / 8)) - kernelMask = &sigset_argpack{ - ss: sigmask, - ssLen: sigsetBytes, - } - } - - return pselect6(nfd, r, w, e, mutableTimeout, kernelMask) -} - -//sys schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) -//sys schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) - -// SchedSetAttr is a wrapper for sched_setattr(2) syscall. -// https://man7.org/linux/man-pages/man2/sched_setattr.2.html -func SchedSetAttr(pid int, attr *SchedAttr, flags uint) error { - if attr == nil { - return EINVAL - } - attr.Size = SizeofSchedAttr - return schedSetattr(pid, attr, flags) -} - -// SchedGetAttr is a wrapper for sched_getattr(2) syscall. -// https://man7.org/linux/man-pages/man2/sched_getattr.2.html -func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { - attr := &SchedAttr{} - if err := schedGetattr(pid, attr, SizeofSchedAttr, flags); err != nil { - return nil, err - } - return attr, nil -} - -//sys Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) -//sys Mseal(b []byte, flags uint) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go deleted file mode 100644 index 506dafa..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go +++ /dev/null @@ -1,314 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && linux - -package unix - -import ( - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -// 64-bit file system and 32-bit uid calls -// (386 default is 32-bit file system and 16-bit uid). -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 -//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) = SYS_GETEGID32 -//sysnb Geteuid() (euid int) = SYS_GETEUID32 -//sysnb Getgid() (gid int) = SYS_GETGID32 -//sysnb Getuid() (uid int) = SYS_GETUID32 -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 -//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 -//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) -//sys Pause() (err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -// On x86 Linux, all the socket calls go through an extra indirection, -// I think because the 5-register system call interface can't handle -// the 6-argument calls like sendto and recvfrom. Instead the -// arguments to the underlying system call are the number below -// and a pointer to an array of uintptr. We hide the pointer in the -// socketcall assembly to avoid allocation on every system call. - -const ( - // see linux/net.h - _SOCKET = 1 - _BIND = 2 - _CONNECT = 3 - _LISTEN = 4 - _ACCEPT = 5 - _GETSOCKNAME = 6 - _GETPEERNAME = 7 - _SOCKETPAIR = 8 - _SEND = 9 - _RECV = 10 - _SENDTO = 11 - _RECVFROM = 12 - _SHUTDOWN = 13 - _SETSOCKOPT = 14 - _GETSOCKOPT = 15 - _SENDMSG = 16 - _RECVMSG = 17 - _ACCEPT4 = 18 - _RECVMMSG = 19 - _SENDMMSG = 20 -) - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - if e != 0 { - err = e - } - return -} - -func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { - _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) - if e != 0 { - err = e - } - return -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func socket(domain int, typ int, proto int) (fd int, err error) { - fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e != 0 { - err = e - } - return -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0) - if e != 0 { - err = e - } - return -} - -func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - if e != 0 { - err = e - } - return -} - -func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e != 0 { - err = e - } - return -} - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Listen(s int, n int) (err error) { - _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Shutdown(s, how int) (err error) { - _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go b/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go deleted file mode 100644 index 38d5564..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2022 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:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64) - -package unix - -// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH -// values. - -//sys Alarm(seconds uint) (remaining uint, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go deleted file mode 100644 index d557cf8..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && linux - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys MemfdSecret(flags int) (fd int, err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func Stat(path string, stat *Stat_t) (err error) { - // Use fstatat, because Android's seccomp policy blocks stat. - return Fstatat(AT_FDCWD, path, stat, 0) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) - -func Gettimeofday(tv *Timeval) (err error) { - errno := gettimeofday(tv) - if errno != 0 { - return errno - } - return nil -} - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - errno := gettimeofday(&tv) - if errno != 0 { - return 0, errno - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -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 (r *PtraceRegs) PC() uint64 { return r.Rip } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -//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_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go deleted file mode 100644 index facdb83..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && linux && gc - -package unix - -import "syscall" - -//go:noescape -func gettimeofday(tv *Timeval) (err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go deleted file mode 100644 index cd2dd79..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && linux - -package unix - -import ( - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 -//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -// 64-bit file system and 32-bit uid calls -// (16-bit uid calls are not always supported in newer kernels) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sysnb Getegid() (egid int) = SYS_GETEGID32 -//sysnb Geteuid() (euid int) = SYS_GETEUID32 -//sysnb Getgid() (gid int) = SYS_GETGID32 -//sysnb Getuid() (uid int) = SYS_GETUID32 -//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Pause() (err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 -//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} - -//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and arm_sync_file_range syscalls differ only in the - // 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 deleted file mode 100644 index 745e5c7..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ /dev/null @@ -1,186 +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. - -//go:build arm64 && linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys MemfdSecret(flags int) (fd int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -// Getrlimit prefers the prlimit64 system call. See issue 38604. -func Getrlimit(resource int, rlim *Rlimit) error { - err := Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - return getrlimit(resource, rlim) -} - -func (r *PtraceRegs) PC() uint64 { return r.Pc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -//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) -} - -const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go deleted file mode 100644 index ffc4c2b..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go +++ /dev/null @@ -1,14 +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. - -//go:build linux && gc - -package unix - -// SyscallNoError may be used instead of Syscall for syscalls that don't fail. -func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) - -// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't -// fail. -func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go deleted file mode 100644 index 9ebfdcf..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +++ /dev/null @@ -1,16 +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. - -//go:build linux && gc && 386 - -package unix - -import "syscall" - -// Underlying system call writes to newoffset via pointer. -// Implemented in assembly to avoid allocation. -func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) -func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go deleted file mode 100644 index 5f2b57c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && gc && linux - -package unix - -import "syscall" - -// Underlying system call writes to newoffset via pointer. -// Implemented in assembly to avoid allocation. -func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go deleted file mode 100644 index d1a3ad8..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +++ /dev/null @@ -1,30 +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. - -//go:build linux && gccgo && 386 - -package unix - -import ( - "syscall" - "unsafe" -) - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { - fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) - return int(fd), err -} - -func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { - fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) - return int(fd), err -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go deleted file mode 100644 index f2f6742..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +++ /dev/null @@ -1,20 +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. - -//go:build linux && gccgo && arm - -package unix - -import ( - "syscall" - "unsafe" -) - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go deleted file mode 100644 index dd2262a..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2022 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:build loong64 && linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func timespecFromStatxTimestamp(x StatxTimestamp) Timespec { - return Timespec{ - Sec: x.Sec, - Nsec: int64(x.Nsec), - } -} - -func Fstatat(fd int, path string, stat *Stat_t, flags int) error { - var r Statx_t - // Do it the glibc way, add AT_NO_AUTOMOUNT. - if err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil { - return err - } - - stat.Dev = Mkdev(r.Dev_major, r.Dev_minor) - stat.Ino = r.Ino - stat.Mode = uint32(r.Mode) - stat.Nlink = r.Nlink - stat.Uid = r.Uid - stat.Gid = r.Gid - stat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor) - // hope we don't get to process files so large to overflow these size - // fields... - stat.Size = int64(r.Size) - stat.Blksize = int32(r.Blksize) - stat.Blocks = int64(r.Blocks) - stat.Atim = timespecFromStatxTimestamp(r.Atime) - stat.Mtim = timespecFromStatxTimestamp(r.Mtime) - stat.Ctim = timespecFromStatxTimestamp(r.Ctime) - - return nil -} - -func Fstat(fd int, stat *Stat_t) (err error) { - return Fstatat(fd, "", stat, AT_EMPTY_PATH) -} - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - return -} - -func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func (r *PtraceRegs) PC() uint64 { return r.Era } - -func (r *PtraceRegs) SetPC(era uint64) { r.Era = era } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -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) -} - -const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go deleted file mode 100644 index 70963a9..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ /dev/null @@ -1,188 +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. - -//go:build linux && (mips64 || mips64le) - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -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 Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -type stat_t struct { - Dev uint32 - Pad0 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad1 [3]uint32 - Size int64 - Atime uint32 - Atime_nsec uint32 - Mtime uint32 - Mtime_nsec uint32 - Ctime uint32 - Ctime_nsec uint32 - Blksize uint32 - Pad2 uint32 - Blocks int64 -} - -//sys fstat(fd int, st *stat_t) (err error) -//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys lstat(path string, st *stat_t) (err error) -//sys stat(path string, st *stat_t) (err error) - -func Fstat(fd int, s *Stat_t) (err error) { - st := &stat_t{} - err = fstat(fd, st) - fillStat_t(s, st) - return -} - -func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) { - st := &stat_t{} - err = fstatat(dirfd, path, st, flags) - fillStat_t(s, st) - return -} - -func Lstat(path string, s *Stat_t) (err error) { - st := &stat_t{} - err = lstat(path, st) - fillStat_t(s, st) - return -} - -func Stat(path string, s *Stat_t) (err error) { - st := &stat_t{} - err = stat(path, st) - fillStat_t(s, st) - return -} - -func fillStat_t(s *Stat_t, st *stat_t) { - s.Dev = st.Dev - s.Ino = st.Ino - s.Mode = st.Mode - s.Nlink = st.Nlink - s.Uid = st.Uid - s.Gid = st.Gid - s.Rdev = st.Rdev - s.Size = st.Size - s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)} - s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)} - s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)} - s.Blksize = st.Blksize - s.Blocks = st.Blocks -} - -func (r *PtraceRegs) PC() uint64 { return r.Epc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go deleted file mode 100644 index c218ebd..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips || mipsle) - -package unix - -import ( - "syscall" - "unsafe" -) - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 - -//sys Pause() (err error) - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = errnoErr(e) - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - p, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = errnoErr(e) - } - return -} - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) - if e != 0 { - err = errnoErr(e) - } - return -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint64 { return r.Epc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go deleted file mode 100644 index e6c4850..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright 2021 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:build linux && ppc - -package unix - -import ( - "syscall" - "unsafe" -) - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint32 { return r.Nip } - -func (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} - -//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and sync_file_range2 syscalls differ only in the - // order of their arguments. - return syncFileRange2(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_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go deleted file mode 100644 index 7286a9a..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (ppc64 || ppc64le) - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -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 (r *PtraceRegs) PC() uint64 { return r.Nip } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and sync_file_range2 syscalls differ only in the - // order of their arguments. - return syncFileRange2(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_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go deleted file mode 100644 index 8cf3670..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ /dev/null @@ -1,191 +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. - -//go:build riscv64 && linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys MemfdSecret(flags int) (fd int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func (r *PtraceRegs) PC() uint64 { return r.Pc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -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) -} - -//sys riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) - -func RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error) { - var setSize uintptr - - if set != nil { - setSize = uintptr(unsafe.Sizeof(*set)) - } - return riscvHWProbe(pairs, setSize, set, flags) -} - -const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go deleted file mode 100644 index 66f3121..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +++ /dev/null @@ -1,296 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build s390x && linux - -package unix - -import ( - "unsafe" -) - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -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 Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. -// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in . -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} - r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// On s390x Linux, all the socket calls go through an extra indirection. -// The arguments to the underlying system call (SYS_SOCKETCALL) are the -// number below and a pointer to an array of uintptr. -const ( - // see linux/net.h - netSocket = 1 - netBind = 2 - netConnect = 3 - netListen = 4 - netAccept = 5 - netGetSockName = 6 - netGetPeerName = 7 - netSocketPair = 8 - netSend = 9 - netRecv = 10 - netSendTo = 11 - netRecvFrom = 12 - netShutdown = 13 - netSetSockOpt = 14 - netGetSockOpt = 15 - netSendMsg = 16 - netRecvMsg = 17 - netAccept4 = 18 - netRecvMMsg = 19 - netSendMMsg = 20 -) - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { - args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} - fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func socketpair(domain int, typ int, flags int, fd *[2]int32) error { - args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func socket(domain int, typ int, proto int) (int, error) { - args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)} - fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error { - args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))} - _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { - args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen} - _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))} - n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func recvmsg(s int, msg *Msghdr, flags int) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} - n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func sendmsg(s int, msg *Msghdr, flags int) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} - n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func Listen(s int, n int) error { - args := [2]uintptr{uintptr(s), uintptr(n)} - _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func Shutdown(s, how int) error { - args := [2]uintptr{uintptr(s), uintptr(how)} - _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return 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_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go deleted file mode 100644 index 11d1f16..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build sparc64 && linux - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func (r *PtraceRegs) PC() uint64 { return r.Tpc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go deleted file mode 100644 index 34a4676..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ /dev/null @@ -1,388 +0,0 @@ -// Copyright 2009,2010 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. - -// NetBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "syscall" - "unsafe" -) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - raw RawSockaddrDatalink -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - return nil, EAFNOSUPPORT -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { - var olen uintptr - - // Get a list of all sysctl nodes below the given MIB by performing - // a sysctl for the given MIB with CTL_QUERY appended. - mib = append(mib, CTL_QUERY) - qnode := Sysctlnode{Flags: SYSCTL_VERS_1} - qp := (*byte)(unsafe.Pointer(&qnode)) - sz := unsafe.Sizeof(qnode) - if err = sysctl(mib, nil, &olen, qp, sz); err != nil { - return nil, err - } - - // Now that we know the size, get the actual nodes. - nodes = make([]Sysctlnode, olen/sz) - np := (*byte)(unsafe.Pointer(&nodes[0])) - if err = sysctl(mib, np, &olen, qp, sz); err != nil { - return nil, err - } - - return nodes, nil -} - -func nametomib(name string) (mib []_C_int, err error) { - // Split name into components. - var parts []string - last := 0 - for i := 0; i < len(name); i++ { - if name[i] == '.' { - parts = append(parts, name[last:i]) - last = i + 1 - } - } - parts = append(parts, name[last:]) - - // Discover the nodes and construct the MIB OID. - for partno, part := range parts { - nodes, err := sysctlNodes(mib) - if err != nil { - return nil, err - } - for _, node := range nodes { - n := make([]byte, 0) - for i := range node.Name { - if node.Name[i] != 0 { - n = append(n, byte(node.Name[i])) - } - } - if string(n) == part { - mib = append(mib, _C_int(node.Num)) - break - } - } - if len(mib) != partno+1 { - return nil, EINVAL - } - } - - return mib, nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -func SysctlUvmexp(name string) (*Uvmexp, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofUvmexp) - var u Uvmexp - if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { - return nil, err - } - return &u, nil -} - -func Pipe(p []int) (err error) { - return Pipe2(p, 0) -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//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>>32 != 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 -} - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) { - var value Ptmget - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -func Fstatvfs(fd int, buf *Statvfs_t) (err error) { - return Fstatvfs1(fd, buf, ST_WAIT) -} - -func Statvfs(path string, buf *Statvfs_t) (err error) { - return Statvfs1(path, buf, ST_WAIT) -} - -func Getvfsstat(buf []Statvfs_t, flags int) (n int, err error) { - var ( - _p0 unsafe.Pointer - bufsize uintptr - ) - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statvfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETVFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Dup3(from int, to int, flags int) (err error) -//sys Exit(code int) -//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) -//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) -//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) -//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1 -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1 -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -const ( - mremapFixed = MAP_FIXED - mremapDontunmap = 0 - mremapMaymove = 0 -) - -//sys mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) = SYS_MREMAP - -func mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (uintptr, error) { - return mremapNetBSD(oldaddr, oldlength, newaddr, newlength, flags) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go deleted file mode 100644 index 7a5eb57..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && netbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go deleted file mode 100644 index 62d8957..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && netbsd - -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: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go deleted file mode 100644 index ce6a068..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +++ /dev/null @@ -1,37 +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:build arm && netbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go deleted file mode 100644 index d46d689..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_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. - -//go:build arm64 && netbsd - -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: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go deleted file mode 100644 index b86ded5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ /dev/null @@ -1,342 +0,0 @@ -// Copyright 2009,2010 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. - -// OpenBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "sort" - "syscall" - "unsafe" -) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 - raw RawSockaddrDatalink -} - -func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - return nil, EAFNOSUPPORT -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func nametomib(name string) (mib []_C_int, err error) { - i := sort.Search(len(sysctlMib), func(i int) bool { - return sysctlMib[i].ctlname >= name - }) - if i < len(sysctlMib) && sysctlMib[i].ctlname == name { - return sysctlMib[i].ctloid, nil - } - return nil, EINVAL -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -func SysctlUvmexp(name string) (*Uvmexp, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofUvmexp) - var u Uvmexp - if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofUvmexp { - return nil, EIO - } - return &u, nil -} - -func Pipe(p []int) (err error) { - return Pipe2(p, 0) -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//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>>32 != 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 -} - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var bufptr *Statfs_t - var bufsize uintptr - if len(buf) > 0 { - bufptr = &buf[0] - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - return getfsstat(bufptr, bufsize, flags) -} - -//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) - -func Getresuid() (ruid, euid, suid int) { - var r, e, s _C_int - getresuid(&r, &e, &s) - return int(r), int(e), int(s) -} - -func Getresgid() (rgid, egid, sgid int) { - var r, e, s _C_int - getresgid(&r, &e, &s) - return int(r), int(e), int(s) -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -//sys fcntl(fd int, cmd int, arg int) (n int, err error) -//sys fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) = SYS_FCNTL - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - return fcntl(int(fd), cmd, arg) -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, err := fcntlPtr(int(fd), cmd, unsafe.Pointer(lk)) - return err -} - -//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) - -func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - if len(fds) == 0 { - return ppoll(nil, 0, timeout, sigmask) - } - return ppoll(&fds[0], len(fds), timeout, sigmask) -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Dup3(from int, to int, flags int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrtable() (rtable int, err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrtable(rtable int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) -//sys pledge(promises *byte, execpromises *byte) (err error) -//sys unveil(path *byte, flags *byte) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go deleted file mode 100644 index 9ddc89f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = 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/386 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go deleted file mode 100644 index 70a3c96..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && 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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = 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_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go deleted file mode 100644 index 265caa8..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = 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/arm the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL 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 ac4fda1..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +++ /dev/null @@ -1,41 +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. - -//go: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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = 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_openbsd_libc.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go deleted file mode 100644 index 0a451e6..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2022 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:build openbsd - -package unix - -import _ "unsafe" - -// Implemented in the runtime package (runtime/sys_openbsd3.go) -func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) - -//go:linkname syscall_syscall syscall.syscall -//go:linkname syscall_syscall6 syscall.syscall6 -//go:linkname syscall_syscall10 syscall.syscall10 -//go:linkname syscall_rawSyscall syscall.rawSyscall -//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 - -func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) { - return syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go deleted file mode 100644 index 1378489..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +++ /dev/null @@ -1,39 +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. - -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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = 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 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go deleted file mode 100644 index 30a308c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +++ /dev/null @@ -1,41 +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. - -//go:build ppc64 && 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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = 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/ppc64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go deleted file mode 100644 index ea95433..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +++ /dev/null @@ -1,41 +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. - -//go:build riscv64 && 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 (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = 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/riscv64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go deleted file mode 100644 index 18a3d9b..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ /dev/null @@ -1,1191 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Solaris system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_solaris.go or syscall_unix.go. - -package unix - -import ( - "fmt" - "os" - "runtime" - "sync" - "syscall" - "unsafe" -) - -// Implemented in runtime/syscall_solaris.go. -type syscallFunc uintptr - -func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Family uint16 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [244]int8 - raw RawSockaddrDatalink -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -//sysnb pipe(p *[2]_C_int) (n int, err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - n, err := pipe(&pp) - if n != 0 { - return err - } - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return nil -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) error { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { - // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -// GetsockoptString returns the string value of the socket option opt for the -// socket associated with fd at the given socket level. -func GetsockoptString(fd, level, opt int) (string, error) { - buf := make([]byte, 256) - vallen := _Socklen(len(buf)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - if err != nil { - return "", err - } - return ByteSliceToString(buf[:vallen]), nil -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - // Getcwd will return an error if it failed for any reason. - _, err = Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - -/* - * Wrapped - */ - -//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) -//sysnb setgroups(ngid int, gid *_Gid_t) (err error) - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - // Check for error and sanity check group count. Newer versions of - // Solaris allow up to 1024 (NGROUPS_MAX). - if n < 0 || n > 1024 { - if err != nil { - return nil, err - } - return nil, EINVAL - } else if n == 0 { - return nil, nil - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if n == -1 { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -// ReadDirent reads directory entries from fd and writes them into buf. -func ReadDirent(fd int, buf []byte) (n int, err error) { - // Final argument is (basep *uintptr) and the syscall doesn't take nil. - // TODO(rsc): Can we use a single global basep for all calls? - return Getdents(fd, buf, new(uintptr)) -} - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. - -type WaitStatus uint32 - -const ( - mask = 0x7F - core = 0x80 - shift = 8 - - exited = 0 - stopped = 0x7F -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) ExitStatus() int { - if w&mask != exited { - return -1 - } - return int(w >> shift) -} - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } - -func (w WaitStatus) Signal() syscall.Signal { - sig := syscall.Signal(w & mask) - if sig == stopped || sig == 0 { - return -1 - } - return sig -} - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } - -func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) { - var status _C_int - rpid, err := wait4(int32(pid), &status, options, rusage) - wpid := int(rpid) - if wpid == -1 { - return wpid, err - } - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return wpid, nil -} - -//sys gethostname(buf []byte) (n int, err error) - -func Gethostname() (name string, err error) { - var buf [MaxHostNameLen]byte - n, err := gethostname(buf[:]) - if n != 0 { - return "", err - } - n = clen(buf[:]) - if n < 1 { - return "", EFAULT - } - return string(buf[:n]), nil -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) (err error) { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) - var err error - if errno != 0 { - err = errno - } - return int(valptr), err -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) - if e1 != 0 { - return e1 - } - return nil -} - -//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error) - -func Futimesat(dirfd int, path string, tv []Timeval) error { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - if tv == nil { - return futimesat(dirfd, pathp, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -// Solaris doesn't have an futimes function because it allows NULL to be -// specified as the path for futimesat. However, Go doesn't like -// NULL-style string interfaces, so this simple wrapper is provided. -func Futimes(fd int, tv []Timeval) error { - if tv == nil { - return futimesat(fd, nil, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - // Assume path ends at NUL. - // This is not technically the Solaris semantics for - // abstract Unix domain sockets -- they are supposed - // to be uninterpreted fixed-size binary blobs -- but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return nil, EAFNOSUPPORT -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if nfd == -1 { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Accrightslen = int32(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); n == -1 { - return - } - oobn = int(msg.Accrightslen) - return -} - -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Accrightslen = int32(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -//sys acct(path *byte) (err error) - -func Acct(path string) (err error) { - if len(path) == 0 { - // Assume caller wants to disable accounting. - return acct(nil) - } - - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - return acct(pathp) -} - -//sys __makedev(version int, major uint, minor uint) (val uint64) - -func Mkdev(major, minor uint32) uint64 { - return __makedev(NEWDEV, uint(major), uint(minor)) -} - -//sys __major(version int, dev uint64) (val uint) - -func Major(dev uint64) uint32 { - return uint32(__major(NEWDEV, dev)) -} - -//sys __minor(version int, dev uint64) (val uint) - -func Minor(dev uint64) uint32 { - return uint32(__minor(NEWDEV, dev)) -} - -/* - * Expose the ioctl function - */ - -//sys ioctlRet(fd int, req int, arg uintptr) (ret int, err error) = libc.ioctl -//sys ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) = libc.ioctl - -func ioctl(fd int, req int, arg uintptr) (err error) { - _, err = ioctlRet(fd, req, arg) - return err -} - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - _, err = ioctlPtrRet(fd, req, arg) - return err -} - -func IoctlSetTermio(fd int, req int, value *Termio) error { - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -func IoctlGetTermio(fd int, req int) (*Termio, error) { - var value Termio - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Creat(path string, mode uint32) (fd int, err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(oldfd int, newfd int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fdatasync(fd int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) -//sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) -//sysnb Getgid() (gid int) -//sysnb Getpid() (pid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgid int, err error) -//sys Geteuid() (euid int) -//sys Getegid() (egid int) -//sys Getppid() (ppid int) -//sys Getpriority(which int, who int) (n int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_listen -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Madvise(b []byte, advice int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Setuid(uid int) (err error) -//sys Shutdown(s int, how int) (err error) = libsocket.shutdown -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statvfs(path string, vfsstat *Statvfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Sync() (err error) -//sys Sysconf(which int) (n int64, err error) -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sys Truncate(path string, length int64) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unmount(target string, flags int) (err error) = libc.umount -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto -//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair -//sys write(fd int, p []byte) (n int, err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom - -// Event Ports - -type fileObjCookie struct { - fobj *fileObj - cookie interface{} -} - -// EventPort provides a safe abstraction on top of Solaris/illumos Event Ports. -type EventPort struct { - port int - mu sync.Mutex - fds map[uintptr]*fileObjCookie - paths map[string]*fileObjCookie - // The user cookie presents an interesting challenge from a memory management perspective. - // There are two paths by which we can discover that it is no longer in use: - // 1. The user calls port_dissociate before any events fire - // 2. An event fires and we return it to the user - // The tricky situation is if the event has fired in the kernel but - // the user hasn't requested/received it yet. - // If the user wants to port_dissociate before the event has been processed, - // we should handle things gracefully. To do so, we need to keep an extra - // reference to the cookie around until the event is processed - // thus the otherwise seemingly extraneous "cookies" map - // The key of this map is a pointer to the corresponding fCookie - cookies map[*fileObjCookie]struct{} -} - -// PortEvent is an abstraction of the port_event C struct. -// Compare Source against PORT_SOURCE_FILE or PORT_SOURCE_FD -// to see if Path or Fd was the event source. The other will be -// uninitialized. -type PortEvent struct { - Cookie interface{} - Events int32 - Fd uintptr - Path string - Source uint16 - fobj *fileObj -} - -// NewEventPort creates a new EventPort including the -// underlying call to port_create(3c). -func NewEventPort() (*EventPort, error) { - port, err := port_create() - if err != nil { - return nil, err - } - e := &EventPort{ - port: port, - fds: make(map[uintptr]*fileObjCookie), - paths: make(map[string]*fileObjCookie), - cookies: make(map[*fileObjCookie]struct{}), - } - return e, nil -} - -//sys port_create() (n int, err error) -//sys port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) -//sys port_dissociate(port int, source int, object uintptr) (n int, err error) -//sys port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) -//sys port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) - -// Close closes the event port. -func (e *EventPort) Close() error { - e.mu.Lock() - defer e.mu.Unlock() - err := Close(e.port) - if err != nil { - return err - } - e.fds = nil - e.paths = nil - e.cookies = nil - return nil -} - -// PathIsWatched checks to see if path is associated with this EventPort. -func (e *EventPort) PathIsWatched(path string) bool { - e.mu.Lock() - defer e.mu.Unlock() - _, found := e.paths[path] - return found -} - -// FdIsWatched checks to see if fd is associated with this EventPort. -func (e *EventPort) FdIsWatched(fd uintptr) bool { - e.mu.Lock() - defer e.mu.Unlock() - _, found := e.fds[fd] - return found -} - -// AssociatePath wraps port_associate(3c) for a filesystem path including -// creating the necessary file_obj from the provided stat information. -func (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, cookie interface{}) error { - e.mu.Lock() - defer e.mu.Unlock() - if _, found := e.paths[path]; found { - return fmt.Errorf("%v is already associated with this Event Port", path) - } - fCookie, err := createFileObjCookie(path, stat, cookie) - if err != nil { - return err - } - _, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie))) - if err != nil { - return err - } - e.paths[path] = fCookie - e.cookies[fCookie] = struct{}{} - return nil -} - -// DissociatePath wraps port_dissociate(3c) for a filesystem path. -func (e *EventPort) DissociatePath(path string) error { - e.mu.Lock() - defer e.mu.Unlock() - f, ok := e.paths[path] - if !ok { - return fmt.Errorf("%v is not associated with this Event Port", path) - } - _, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj))) - // If the path is no longer associated with this event port (ENOENT) - // we should delete it from our map. We can still return ENOENT to the caller. - // But we need to save the cookie - if err != nil && err != ENOENT { - return err - } - if err == nil { - // dissociate was successful, safe to delete the cookie - fCookie := e.paths[path] - delete(e.cookies, fCookie) - } - delete(e.paths, path) - return err -} - -// AssociateFd wraps calls to port_associate(3c) on file descriptors. -func (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) error { - e.mu.Lock() - defer e.mu.Unlock() - if _, found := e.fds[fd]; found { - return fmt.Errorf("%v is already associated with this Event Port", fd) - } - fCookie, err := createFileObjCookie("", nil, cookie) - if err != nil { - return err - } - _, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie))) - if err != nil { - return err - } - e.fds[fd] = fCookie - e.cookies[fCookie] = struct{}{} - return nil -} - -// DissociateFd wraps calls to port_dissociate(3c) on file descriptors. -func (e *EventPort) DissociateFd(fd uintptr) error { - e.mu.Lock() - defer e.mu.Unlock() - _, ok := e.fds[fd] - if !ok { - return fmt.Errorf("%v is not associated with this Event Port", fd) - } - _, err := port_dissociate(e.port, PORT_SOURCE_FD, fd) - if err != nil && err != ENOENT { - return err - } - if err == nil { - // dissociate was successful, safe to delete the cookie - fCookie := e.fds[fd] - delete(e.cookies, fCookie) - } - delete(e.fds, fd) - return err -} - -func createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) { - fCookie := new(fileObjCookie) - fCookie.cookie = cookie - if name != "" && stat != nil { - fCookie.fobj = new(fileObj) - bs, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - fCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0])) - s := stat.Sys().(*syscall.Stat_t) - fCookie.fobj.Atim.Sec = s.Atim.Sec - fCookie.fobj.Atim.Nsec = s.Atim.Nsec - fCookie.fobj.Mtim.Sec = s.Mtim.Sec - fCookie.fobj.Mtim.Nsec = s.Mtim.Nsec - fCookie.fobj.Ctim.Sec = s.Ctim.Sec - fCookie.fobj.Ctim.Nsec = s.Ctim.Nsec - } - return fCookie, nil -} - -// GetOne wraps port_get(3c) and returns a single PortEvent. -func (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) { - pe := new(portEvent) - _, err := port_get(e.port, pe, t) - if err != nil { - return nil, err - } - p := new(PortEvent) - e.mu.Lock() - defer e.mu.Unlock() - err = e.peIntToExt(pe, p) - if err != nil { - return nil, err - } - return p, nil -} - -// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent -// NOTE: Always call this function while holding the e.mu mutex -func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error { - if e.cookies == nil { - return fmt.Errorf("this EventPort is already closed") - } - peExt.Events = peInt.Events - peExt.Source = peInt.Source - fCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User)) - _, found := e.cookies[fCookie] - - if !found { - panic("unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254") - } - peExt.Cookie = fCookie.cookie - delete(e.cookies, fCookie) - - switch peInt.Source { - case PORT_SOURCE_FD: - peExt.Fd = uintptr(peInt.Object) - // Only remove the fds entry if it exists and this cookie matches - if fobj, ok := e.fds[peExt.Fd]; ok { - if fobj == fCookie { - delete(e.fds, peExt.Fd) - } - } - case PORT_SOURCE_FILE: - peExt.fobj = fCookie.fobj - peExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name))) - // Only remove the paths entry if it exists and this cookie matches - if fobj, ok := e.paths[peExt.Path]; ok { - if fobj == fCookie { - delete(e.paths, peExt.Path) - } - } - } - return nil -} - -// Pending wraps port_getn(3c) and returns how many events are pending. -func (e *EventPort) Pending() (int, error) { - var n uint32 = 0 - _, err := port_getn(e.port, nil, 0, &n, nil) - return int(n), err -} - -// Get wraps port_getn(3c) and fills a slice of PortEvent. -// It will block until either min events have been received -// or the timeout has been exceeded. It will return how many -// events were actually received along with any error information. -func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) { - if min == 0 { - return 0, fmt.Errorf("need to request at least one event or use Pending() instead") - } - if len(s) < min { - return 0, fmt.Errorf("len(s) (%d) is less than min events requested (%d)", len(s), min) - } - got := uint32(min) - max := uint32(len(s)) - var err error - ps := make([]portEvent, max) - _, err = port_getn(e.port, &ps[0], max, &got, timeout) - // got will be trustworthy with ETIME, but not any other error. - if err != nil && err != ETIME { - return 0, err - } - e.mu.Lock() - defer e.mu.Unlock() - valid := 0 - for i := 0; i < int(got); i++ { - err2 := e.peIntToExt(&ps[i], &s[i]) - if err2 != nil { - if valid == 0 && err == nil { - // If err2 is the only error and there are no valid events - // to return, return it to the caller. - err = err2 - } - break - } - valid = i + 1 - } - return valid, err -} - -//sys putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) - -func Putmsg(fd int, cl []byte, data []byte, flags int) (err error) { - var clp, datap *strbuf - if len(cl) > 0 { - clp = &strbuf{ - Len: int32(len(cl)), - Buf: (*int8)(unsafe.Pointer(&cl[0])), - } - } - if len(data) > 0 { - datap = &strbuf{ - Len: int32(len(data)), - Buf: (*int8)(unsafe.Pointer(&data[0])), - } - } - return putmsg(fd, clp, datap, flags) -} - -//sys getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) - -func Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) { - var clp, datap *strbuf - if len(cl) > 0 { - clp = &strbuf{ - Maxlen: int32(len(cl)), - Buf: (*int8)(unsafe.Pointer(&cl[0])), - } - } - if len(data) > 0 { - datap = &strbuf{ - Maxlen: int32(len(data)), - Buf: (*int8)(unsafe.Pointer(&data[0])), - } - } - - if err = getmsg(fd, clp, datap, &flags); err != nil { - return nil, nil, 0, err - } - - if len(cl) > 0 { - retCl = cl[:clp.Len] - } - if len(data) > 0 { - retData = data[:datap.Len] - } - return retCl, retData, flags, nil -} - -func IoctlSetIntRetInt(fd int, req int, arg int) (int, error) { - return ioctlRet(fd, req, uintptr(arg)) -} - -func IoctlSetString(fd int, req int, val string) error { - bs := make([]byte, len(val)+1) - copy(bs[:len(bs)-1], val) - err := ioctlPtr(fd, req, unsafe.Pointer(&bs[0])) - runtime.KeepAlive(&bs[0]) - return err -} - -// Lifreq Helpers - -func (l *Lifreq) SetName(name string) error { - if len(name) >= len(l.Name) { - return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1) - } - for i := range name { - l.Name[i] = int8(name[i]) - } - return nil -} - -func (l *Lifreq) SetLifruInt(d int) { - *(*int)(unsafe.Pointer(&l.Lifru[0])) = d -} - -func (l *Lifreq) GetLifruInt() int { - return *(*int)(unsafe.Pointer(&l.Lifru[0])) -} - -func (l *Lifreq) SetLifruUint(d uint) { - *(*uint)(unsafe.Pointer(&l.Lifru[0])) = d -} - -func (l *Lifreq) GetLifruUint() uint { - return *(*uint)(unsafe.Pointer(&l.Lifru[0])) -} - -func IoctlLifreq(fd int, req int, l *Lifreq) error { - return ioctlPtr(fd, req, unsafe.Pointer(l)) -} - -// Strioctl Helpers - -func (s *Strioctl) SetInt(i int) { - s.Len = int32(unsafe.Sizeof(i)) - s.Dp = (*int8)(unsafe.Pointer(&i)) -} - -func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { - return ioctlPtrRet(fd, req, unsafe.Pointer(s)) -} - -// Ucred Helpers -// See ucred(3c) and getpeerucred(3c) - -//sys getpeerucred(fd uintptr, ucred *uintptr) (err error) -//sys ucredFree(ucred uintptr) = ucred_free -//sys ucredGet(pid int) (ucred uintptr, err error) = ucred_get -//sys ucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid -//sys ucredGetegid(ucred uintptr) (gid int) = ucred_getegid -//sys ucredGetruid(ucred uintptr) (uid int) = ucred_getruid -//sys ucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid -//sys ucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid -//sys ucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid -//sys ucredGetpid(ucred uintptr) (pid int) = ucred_getpid - -// Ucred is an opaque struct that holds user credentials. -type Ucred struct { - ucred uintptr -} - -// We need to ensure that ucredFree is called on the underlying ucred -// when the Ucred is garbage collected. -func ucredFinalizer(u *Ucred) { - ucredFree(u.ucred) -} - -func GetPeerUcred(fd uintptr) (*Ucred, error) { - var ucred uintptr - err := getpeerucred(fd, &ucred) - if err != nil { - return nil, err - } - result := &Ucred{ - ucred: ucred, - } - // set the finalizer on the result so that the ucred will be freed - runtime.SetFinalizer(result, ucredFinalizer) - return result, nil -} - -func UcredGet(pid int) (*Ucred, error) { - ucred, err := ucredGet(pid) - if err != nil { - return nil, err - } - result := &Ucred{ - ucred: ucred, - } - // set the finalizer on the result so that the ucred will be freed - runtime.SetFinalizer(result, ucredFinalizer) - return result, nil -} - -func (u *Ucred) Geteuid() int { - defer runtime.KeepAlive(u) - return ucredGeteuid(u.ucred) -} - -func (u *Ucred) Getruid() int { - defer runtime.KeepAlive(u) - return ucredGetruid(u.ucred) -} - -func (u *Ucred) Getsuid() int { - defer runtime.KeepAlive(u) - return ucredGetsuid(u.ucred) -} - -func (u *Ucred) Getegid() int { - defer runtime.KeepAlive(u) - return ucredGetegid(u.ucred) -} - -func (u *Ucred) Getrgid() int { - defer runtime.KeepAlive(u) - return ucredGetrgid(u.ucred) -} - -func (u *Ucred) Getsgid() int { - defer runtime.KeepAlive(u) - return ucredGetsgid(u.ucred) -} - -func (u *Ucred) Getpid() int { - defer runtime.KeepAlive(u) - return ucredGetpid(u.ucred) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go deleted file mode 100644 index e02d8ce..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && solaris - -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 (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetIovlen(length int) { - msghdr.Iovlen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go deleted file mode 100644 index 4e92e5a..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ /dev/null @@ -1,615 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris - -package unix - -import ( - "bytes" - "sort" - "sync" - "syscall" - "unsafe" -) - -var ( - Stdin = 0 - Stdout = 1 - Stderr = 2 -) - -// Do the interface allocations only once for common -// Errno values. -var ( - errEAGAIN error = syscall.EAGAIN - errEINVAL error = syscall.EINVAL - 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 { - switch e { - case 0: - return nil - case EAGAIN: - return errEAGAIN - case EINVAL: - return errEINVAL - case ENOENT: - return errENOENT - } - return e -} - -// ErrnoName returns the error name for error number e. -func ErrnoName(e syscall.Errno) string { - i := sort.Search(len(errorList), func(i int) bool { - return errorList[i].num >= e - }) - if i < len(errorList) && errorList[i].num == e { - return errorList[i].name - } - return "" -} - -// SignalName returns the signal name for signal number s. -func SignalName(s syscall.Signal) string { - i := sort.Search(len(signalList), func(i int) bool { - return signalList[i].num >= s - }) - if i < len(signalList) && signalList[i].num == s { - return signalList[i].name - } - 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, len(signalList)) - 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) - if i == -1 { - i = len(n) - } - return i -} - -// Mmap manager, for use by operating system-specific implementations. - -type mmapper struct { - sync.Mutex - active map[*byte][]byte // active mappings; key is last byte in mapping - mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) - munmap func(addr uintptr, length uintptr) error -} - -func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - if length <= 0 { - return nil, EINVAL - } - - // Map the requested memory. - addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) - if errno != nil { - return nil, errno - } - - // Use unsafe to convert addr into a []byte. - b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length) - - // Register mapping in m and return it. - p := &b[cap(b)-1] - m.Lock() - defer m.Unlock() - m.active[p] = b - return b, nil -} - -func (m *mmapper) Munmap(data []byte) (err error) { - if len(data) == 0 || len(data) != cap(data) { - return EINVAL - } - - // Find the base of the mapping. - p := &data[cap(data)-1] - m.Lock() - defer m.Unlock() - b := m.active[p] - if b == nil || &b[0] != &data[0] { - return EINVAL - } - - // Unmap the memory and update m. - if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { - return errno - } - delete(m.active, p) - return nil -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -func MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) { - xaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset) - return unsafe.Pointer(xaddr), err -} - -func MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) { - return mapper.munmap(uintptr(addr), length) -} - -func Read(fd int, p []byte) (n int, err error) { - n, err = read(fd, p) - if raceenabled { - if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } - } - return -} - -func Write(fd int, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = write(fd, p) - if raceenabled && n > 0 { - raceReadRange(unsafe.Pointer(&p[0]), n) - } - return -} - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - n, err = pread(fd, p, offset) - if raceenabled { - if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } - } - return -} - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = pwrite(fd, p, offset) - if raceenabled && n > 0 { - raceReadRange(unsafe.Pointer(&p[0]), n) - } - return -} - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -// Sockaddr represents a socket address. -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs -} - -// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. -type SockaddrUnix struct { - Name string - raw RawSockaddrUnix -} - -func Bind(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func Getpeername(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getpeername(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -func GetsockoptByte(fd, level, opt int) (value byte, err error) { - var n byte - vallen := _Socklen(1) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return n, err -} - -func GetsockoptInt(fd, level, opt int) (value int, err error) { - var n int32 - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return int(n), err -} - -func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - return value, err -} - -func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { - var value IPMreq - vallen := _Socklen(SizeofIPMreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { - var value IPv6Mreq - vallen := _Socklen(SizeofIPv6Mreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { - var value IPv6MTUInfo - vallen := _Socklen(SizeofIPv6MTUInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { - var value ICMPv6Filter - vallen := _Socklen(SizeofICMPv6Filter) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptLinger(fd, level, opt int) (*Linger, error) { - var linger Linger - vallen := _Socklen(SizeofLinger) - err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) - return &linger, err -} - -func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { - var tv Timeval - vallen := _Socklen(unsafe.Sizeof(tv)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) - 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 - if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { - return - } - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -// Recvmsg receives a message from a socket using the recvmsg system call. The -// received non-control data will be written to p, and any "out of band" -// control data will be written to oob. The flags are passed to recvmsg. -// -// The results are: -// - n is the number of non-control data bytes read into p -// - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage] -// - recvflags is flags returned by recvmsg -// - from is the address of the sender -// -// If the underlying socket type is not SOCK_DGRAM, a received message -// containing oob data and a single '\0' of non-control data is treated as if -// the message contained only control data, i.e. n will be zero on return. -func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - var iov [1]Iovec - if len(p) > 0 { - iov[0].Base = &p[0] - iov[0].SetLen(len(p)) - } - var rsa RawSockaddrAny - n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa) - // source address is only specified if the socket is unconnected - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -// RecvmsgBuffers receives a message from a socket using the recvmsg system -// call. This function is equivalent to Recvmsg, but non-control data read is -// scattered into the buffers slices. -func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - iov := make([]Iovec, len(buffers)) - for i := range buffers { - if len(buffers[i]) > 0 { - iov[i].Base = &buffers[i][0] - iov[i].SetLen(len(buffers[i])) - } else { - iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) - } - } - var rsa RawSockaddrAny - n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa) - if err == nil && rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -// Sendmsg sends a message on a socket to an address using the sendmsg system -// call. This function is equivalent to SendmsgN, but does not return the -// number of bytes actually sent. -func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { - _, err = SendmsgN(fd, p, oob, to, flags) - return -} - -// SendmsgN sends a message on a socket to an address using the sendmsg system -// call. p contains the non-control data to send, and oob contains the "out of -// band" control data. The flags are passed to sendmsg. The number of -// non-control bytes actually written to the socket is returned. -// -// Some socket types do not support sending control data without accompanying -// non-control data. If p is empty, and oob contains control data, and the -// underlying socket type is not SOCK_DGRAM, p will be treated as containing a -// single '\0' and the return value will indicate zero bytes sent. -// -// The Go function Recvmsg, if called with an empty p and a non-empty oob, -// will read and ignore this additional '\0'. If the message is received by -// code that does not use Recvmsg, or that does not use Go at all, that code -// will need to be written to expect and ignore the additional '\0'. -// -// If you need to send non-empty oob with p actually empty, and if the -// underlying socket type supports it, you can do so via a raw system call as -// follows: -// -// msg := &unix.Msghdr{ -// Control: &oob[0], -// } -// msg.SetControllen(len(oob)) -// n, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags) -func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { - var iov [1]Iovec - if len(p) > 0 { - iov[0].Base = &p[0] - iov[0].SetLen(len(p)) - } - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - return sendmsgN(fd, iov[:], oob, ptr, salen, flags) -} - -// SendmsgBuffers sends a message on a socket to an address using the sendmsg -// system call. This function is equivalent to SendmsgN, but the non-control -// data is gathered from buffers. -func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) { - iov := make([]Iovec, len(buffers)) - for i := range buffers { - if len(buffers[i]) > 0 { - iov[i].Base = &buffers[i][0] - iov[i].SetLen(len(buffers[i])) - } else { - iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) - } - } - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - return sendmsgN(fd, iov, oob, ptr, salen, flags) -} - -func Send(s int, buf []byte, flags int) (err error) { - return sendto(s, buf, flags, nil, 0) -} - -func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return err - } - } - return sendto(fd, p, flags, ptr, salen) -} - -func SetsockoptByte(fd, level, opt int, value byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) -} - -func SetsockoptInt(fd, level, opt int, value int) (err error) { - var n = int32(value) - return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) -} - -func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) -} - -func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) -} - -func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) -} - -func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { - return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) -} - -func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) -} - -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))) -} - -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 - } - fd, err = socket(domain, typ, proto) - return -} - -func Socketpair(domain, typ, proto int) (fd [2]int, err error) { - var fdx [2]int32 - err = socketpair(domain, typ, proto, &fdx) - if err == nil { - fd[0] = int(fdx[0]) - fd[1] = int(fdx[1]) - } - return -} - -var ioSync int64 - -func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } - -func SetNonblock(fd int, nonblocking bool) (err error) { - flag, err := fcntl(fd, F_GETFL, 0) - if err != nil { - return err - } - if (flag&O_NONBLOCK != 0) == nonblocking { - return nil - } - if nonblocking { - flag |= O_NONBLOCK - } else { - flag &= ^O_NONBLOCK - } - _, err = fcntl(fd, F_SETFL, flag) - return err -} - -// Exec calls execve(2), which replaces the calling executable in the process -// tree. argv0 should be the full path to an executable ("/bin/ls") and the -// executable name should also be the first argument in argv (["ls", "-l"]). -// envv are the environment variables that should be passed to the new -// process (["USER=go", "PWD=/tmp"]). -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) -} - -// emptyIovecs reports whether there are no bytes in the slice of Iovec. -func emptyIovecs(iov []Iovec) bool { - for i := range iov { - if iov[i].Len > 0 { - return false - } - } - return true -} - -// Setrlimit sets a resource limit. -func Setrlimit(resource int, rlim *Rlimit) error { - // Just call the syscall version, because as of Go 1.21 - // it will affect starting a new process. - return syscall.Setrlimit(resource, (*syscall.Rlimit)(rlim)) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go deleted file mode 100644 index 05c95bc..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc - -package unix - -import "syscall" - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go deleted file mode 100644 index 23f39b7..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +++ /dev/null @@ -1,22 +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. - -//go:build linux && (ppc64le || ppc64) && gc - -package unix - -import "syscall" - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.Syscall(trap, a1, a2, a3) -} -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6) -} -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.RawSyscall(trap, a1, a2, a3) -} -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go deleted file mode 100644 index 7bf5c04..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +++ /dev/null @@ -1,3213 +0,0 @@ -// Copyright 2020 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:build zos && s390x - -// Many of the following syscalls are not available on all versions of z/OS. -// Some missing calls have legacy implementations/simulations but others -// will be missing completely. To achieve consistent failing behaviour on -// legacy systems, we first test the function pointer via a safeloading -// mechanism to see if the function exists on a given system. Then execution -// is branched to either continue the function call, or return an error. - -package unix - -import ( - "bytes" - "fmt" - "os" - "reflect" - "regexp" - "runtime" - "sort" - "strings" - "sync" - "syscall" - "unsafe" -) - -//go:noescape -func initZosLibVec() - -//go:noescape -func GetZosLibVec() uintptr - -func init() { - initZosLibVec() - r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACE\x00"))[0]))) - if r0 != 0 { - n, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) - ZosTraceLevel = int(n) - r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACEFD\x00"))[0]))) - if r0 != 0 { - fd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) - f := os.NewFile(fd, "zostracefile") - if f != nil { - ZosTracefile = f - } - } - - } -} - -//go:noescape -func CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) - -//go:noescape -func CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) - -// ------------------------------- -// pointer validity test -// good pointer returns 0 -// bad pointer returns 1 -// -//go:nosplit -func ptrtest(uintptr) uint64 - -// Load memory at ptr location with error handling if the location is invalid -// -//go:noescape -func safeload(ptr uintptr) (value uintptr, error uintptr) - -const ( - entrypointLocationOffset = 8 // From function descriptor - - xplinkEyecatcher = 0x00c300c500c500f1 // ".C.E.E.1" - eyecatcherOffset = 16 // From function entrypoint (negative) - ppa1LocationOffset = 8 // From function entrypoint (negative) - - nameLenOffset = 0x14 // From PPA1 start - nameOffset = 0x16 // From PPA1 start -) - -func getPpaOffset(funcptr uintptr) int64 { - entrypoint, err := safeload(funcptr + entrypointLocationOffset) - if err != 0 { - return -1 - } - - // XPLink functions have ".C.E.E.1" as the first 8 bytes (EBCDIC) - val, err := safeload(entrypoint - eyecatcherOffset) - if err != 0 { - return -1 - } - if val != xplinkEyecatcher { - return -1 - } - - ppaoff, err := safeload(entrypoint - ppa1LocationOffset) - if err != 0 { - return -1 - } - - ppaoff >>= 32 - return int64(ppaoff) -} - -//------------------------------- -// function descriptor pointer validity test -// good pointer returns 0 -// bad pointer returns 1 - -// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName -// have correct funcName pass to the funcptrtest function -func funcptrtest(funcptr uintptr, funcName string) uint64 { - entrypoint, err := safeload(funcptr + entrypointLocationOffset) - if err != 0 { - return 1 - } - - ppaoff := getPpaOffset(funcptr) - if ppaoff == -1 { - return 1 - } - - // PPA1 offset value is from the start of the entire function block, not the entrypoint - ppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff) - - nameLen, err := safeload(ppa1 + nameLenOffset) - if err != 0 { - return 1 - } - - nameLen >>= 48 - if nameLen > 128 { - return 1 - } - - // no function name input to argument end here - if funcName == "" { - return 0 - } - - var funcname [128]byte - for i := 0; i < int(nameLen); i += 8 { - v, err := safeload(ppa1 + nameOffset + uintptr(i)) - if err != 0 { - return 1 - } - funcname[i] = byte(v >> 56) - funcname[i+1] = byte(v >> 48) - funcname[i+2] = byte(v >> 40) - funcname[i+3] = byte(v >> 32) - funcname[i+4] = byte(v >> 24) - funcname[i+5] = byte(v >> 16) - funcname[i+6] = byte(v >> 8) - funcname[i+7] = byte(v) - } - - runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l - []uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen}) - - name := string(funcname[:nameLen]) - if name != funcName { - return 1 - } - - return 0 -} - -// For detection of capabilities on a system. -// Is function descriptor f a valid function? -func isValidLeFunc(f uintptr) error { - ret := funcptrtest(f, "") - if ret != 0 { - return fmt.Errorf("Bad pointer, not an LE function ") - } - return nil -} - -// Retrieve function name from descriptor -func getLeFuncName(f uintptr) (string, error) { - // assume it has been checked, only check ppa1 validity here - entry := ((*[2]uintptr)(unsafe.Pointer(f)))[1] - preamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset))) - - offsetPpa1 := preamp[2] - if offsetPpa1 > 0x0ffff { - return "", fmt.Errorf("PPA1 offset seems too big 0x%x\n", offsetPpa1) - } - - ppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1) - res := ptrtest(ppa1) - if res != 0 { - return "", fmt.Errorf("PPA1 address not valid") - } - - size := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset)) - if size > 128 { - return "", fmt.Errorf("Function name seems too long, length=%d\n", size) - } - - var name [128]byte - funcname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset)) - copy(name[0:size], funcname[0:size]) - - runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l - []uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)}) - - return string(name[:size]), nil -} - -// Check z/OS version -func zosLeVersion() (version, release uint32) { - p1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32 - p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88))) - p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8))) - p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984))) - vrm := *(*uint32)(unsafe.Pointer(p1 + 80)) - version = (vrm & 0x00ff0000) >> 16 - release = (vrm & 0x0000ff00) >> 8 - return -} - -// returns a zos C FILE * for stdio fd 0, 1, 2 -func ZosStdioFilep(fd int32) uintptr { - return uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3)))))))) -} - -func copyStat(stat *Stat_t, statLE *Stat_LE_t) { - stat.Dev = uint64(statLE.Dev) - stat.Ino = uint64(statLE.Ino) - stat.Nlink = uint64(statLE.Nlink) - stat.Mode = uint32(statLE.Mode) - stat.Uid = uint32(statLE.Uid) - stat.Gid = uint32(statLE.Gid) - stat.Rdev = uint64(statLE.Rdev) - stat.Size = statLE.Size - stat.Atim.Sec = int64(statLE.Atim) - stat.Atim.Nsec = 0 //zos doesn't return nanoseconds - stat.Mtim.Sec = int64(statLE.Mtim) - stat.Mtim.Nsec = 0 //zos doesn't return nanoseconds - stat.Ctim.Sec = int64(statLE.Ctim) - stat.Ctim.Nsec = 0 //zos doesn't return nanoseconds - stat.Blksize = int64(statLE.Blksize) - stat.Blocks = statLE.Blocks -} - -func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) -func svcLoad(name *byte) unsafe.Pointer -func svcUnload(name *byte, fnptr unsafe.Pointer) int64 - -func (d *Dirent) NameString() string { - if d == nil { - return "" - } - s := string(d.Name[:]) - idx := strings.IndexByte(s, 0) - if idx == -1 { - return s - } else { - return s[:idx] - } -} - -func DecodeData(dest []byte, sz int, val uint64) { - for i := 0; i < sz; i++ { - dest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff) - } -} - -func EncodeData(data []byte) uint64 { - var value uint64 - sz := len(data) - for i := 0; i < sz; i++ { - value |= uint64(data[i]) << uint64(((sz - i - 1) * 8)) - } - return value -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet4 - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet6 - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) || n == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { - // TODO(neeilan): Implement use of first param (fd) - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - // For z/OS, only replace NUL with @ when the - // length is not zero. - if pp.Len != 0 && pp.Path[0] == 0 { - // "Abstract" Unix domain socket. - // Rewrite leading NUL as @ for textual display. - // (This is the standard convention.) - // Not friendly to overwrite in place, - // but the callers below don't care. - pp.Path[0] = '@' - } - - // Assume path ends at NUL. - // - // For z/OS, the length of the name is a field - // in the structure. To be on the safe side, we - // will still scan the name for a NUL but only - // to the length provided in the structure. - // - // This is not technically the Linux semantics for - // abstract Unix domain sockets--they are supposed - // to be uninterpreted fixed-size binary blobs--but - // everyone uses this convention. - n := 0 - for n < int(pp.Len) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - } - return nil, EAFNOSUPPORT -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if err != nil { - return - } - // TODO(neeilan): Remove 0 in call - sa, err = anyToSockaddr(0, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - // TODO(neeilan): Remove 0 in call - sa, err = anyToSockaddr(0, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Ctermid() (tty string, err error) { - var termdev [1025]byte - runtime.EnterSyscall() - r0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0]))) - runtime.ExitSyscall() - if r0 == 0 { - return "", fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) - } - s := string(termdev[:]) - idx := strings.Index(s, string(rune(0))) - if idx == -1 { - tty = s - } else { - tty = s[:idx] - } - return -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = int32(length) -} - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) -//sys Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A -//sys Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A -//sys read(fd int, p []byte) (n int, err error) -//sys write(fd int, p []byte) (n int, err error) - -//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A -//sys Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_A -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A -//sys Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_A -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP -//sys munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP -//sys ioctl(fd int, req int, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL -//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT -//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64 -//sys shmdt(addr uintptr) (err error) = SYS_SHMDT -//sys shmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET - -//sys Access(path string, mode uint32) (err error) = SYS___ACCESS_A -//sys Chdir(path string) (err error) = SYS___CHDIR_A -//sys Chown(path string, uid int, gid int) (err error) = SYS___CHOWN_A -//sys Chmod(path string, mode uint32) (err error) = SYS___CHMOD_A -//sys Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A -//sys Dup(oldfd int) (fd int, err error) -//sys Dup2(oldfd int, newfd int) (err error) -//sys Dup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3 -//sys Dirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD -//sys EpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE -//sys EpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1 -//sys EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL -//sys EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT -//sys Errno2() (er2 int) = SYS___ERRNO2 -//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A - -func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { - return Faccessat(dirfd, path, mode, flags) -} - -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A -//sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL -//sys Fdatasync(fd int) (err error) = SYS_FDATASYNC -//sys fstat(fd int, stat *Stat_LE_t) (err error) -//sys fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A - -func Fstat(fd int, stat *Stat_t) (err error) { - var statLE Stat_LE_t - err = fstat(fd, &statLE) - copyStat(stat, &statLE) - return -} - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var statLE Stat_LE_t - err = fstatat(dirfd, path, &statLE, flags) - copyStat(stat, &statLE) - return -} - -func impl_Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error)) - -var Getxattr = enter_Getxattr - -func enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) { - funcref := get_GetxattrAddr() - if validGetxattr() { - *funcref = impl_Getxattr - } else { - *funcref = error_Getxattr - } - return (*funcref)(path, attr, dest) -} - -func error_Getxattr(path string, attr string, dest []byte) (sz int, err error) { - return -1, ENOSYS -} - -func validGetxattr() bool { - if funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil { - return name == "__getxattr_a" - } - } - return false -} - -//sys Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A -//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A - -func impl_Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) - -var Setxattr = enter_Setxattr - -func enter_Setxattr(path string, attr string, data []byte, flags int) (err error) { - funcref := get_SetxattrAddr() - if validSetxattr() { - *funcref = impl_Setxattr - } else { - *funcref = error_Setxattr - } - return (*funcref)(path, attr, data, flags) -} - -func error_Setxattr(path string, attr string, data []byte, flags int) (err error) { - return ENOSYS -} - -func validSetxattr() bool { - if funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil { - return name == "__setxattr_a" - } - } - return false -} - -//sys Fstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS -//sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS -//sys Fsync(fd int) (err error) -//sys Futimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES -//sys Futimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A -//sys Ftruncate(fd int, length int64) (err error) -//sys Getrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM -//sys InotifyInit() (fd int, err error) = SYS_INOTIFY_INIT -//sys InotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1 -//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A -//sys InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH -//sys Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A -//sys Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A -//sys Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A -//sys Lutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A -//sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT -//sys Msync(b []byte, flags int) (err error) = SYS_MSYNC -//sys Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2 - -// Pipe2 begin - -//go:nosplit -func getPipe2Addr() *(func([]int, int) error) - -var Pipe2 = pipe2Enter - -func pipe2Enter(p []int, flags int) (err error) { - if funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, "") == 0 { - *getPipe2Addr() = pipe2Impl - } else { - *getPipe2Addr() = pipe2Error - } - return (*getPipe2Addr())(p, flags) -} - -func pipe2Impl(p []int, flags int) (err error) { - var pp [2]_C_int - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } else { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return -} -func pipe2Error(p []int, flags int) (err error) { - return fmt.Errorf("Pipe2 is not available on this system") -} - -// Pipe2 end - -//sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL - -func Readdir(dir uintptr) (dirent *Dirent, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir)) - runtime.ExitSyscall() - dirent = (*Dirent)(unsafe.Pointer(r0)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//sys Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A -//sys Statfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A -//sys Syncfs(fd int) (err error) = SYS_SYNCFS -//sys Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES -//sys W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT -//sys W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A - -//sys mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A -//sys unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A -//sys Chroot(path string) (err error) = SYS___CHROOT_A -//sys Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT -//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A -//sys Unshare(flags int) (err error) = SYS_UNSHARE - -func Ptsname(fd int) (name string, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd)) - runtime.ExitSyscall() - if r0 == 0 { - err = errnoErr2(e1, e2) - } else { - name = u2s(unsafe.Pointer(r0)) - } - return -} - -func u2s(cstr unsafe.Pointer) string { - str := (*[1024]uint8)(cstr) - i := 0 - for str[i] != 0 { - i++ - } - return string(str[:i]) -} - -func Close(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) - runtime.ExitSyscall() - for i := 0; e1 == EAGAIN && i < 10; i++ { - runtime.EnterSyscall() - CallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10)) - runtime.ExitSyscall() - runtime.EnterSyscall() - r0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) - runtime.ExitSyscall() - } - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -// Dummy function: there are no semantics for Madvise on z/OS -func Madvise(b []byte, advice int) (err error) { - return -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -func MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) { - xaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset) - return unsafe.Pointer(xaddr), err -} - -func MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) { - return mapper.munmap(uintptr(addr), length) -} - -//sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A -//sysnb Getgid() (gid int) -//sysnb Getpid() (pid int) -//sysnb Getpgid(pid int) (pgid int, err error) = SYS_GETPGID - -func Getpgrp() (pid int) { - pid, _ = Getpgid(0) - return -} - -//sysnb Getppid() (pid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT - -//sysnb getrusage(who int, rusage *rusage_zos) (err error) = SYS_GETRUSAGE - -func Getrusage(who int, rusage *Rusage) (err error) { - var ruz rusage_zos - err = getrusage(who, &ruz) - //Only the first two fields of Rusage are set - rusage.Utime.Sec = ruz.Utime.Sec - rusage.Utime.Usec = int64(ruz.Utime.Usec) - rusage.Stime.Sec = ruz.Stime.Sec - rusage.Stime.Usec = int64(ruz.Stime.Usec) - return -} - -//sys Getegid() (egid int) = SYS_GETEGID -//sys Geteuid() (euid int) = SYS_GETEUID -//sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID -//sysnb Getuid() (uid int) -//sysnb Kill(pid int, sig Signal) (err error) -//sys Lchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A -//sys Link(path string, link string) (err error) = SYS___LINK_A -//sys Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) = SYS___LINKAT_A -//sys Listen(s int, n int) (err error) -//sys lstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A - -func Lstat(path string, stat *Stat_t) (err error) { - var statLE Stat_LE_t - err = lstat(path, &statLE) - copyStat(stat, &statLE) - return -} - -// for checking symlinks begins with $VERSION/ $SYSNAME/ $SYSSYMR/ $SYSSYMA/ -func isSpecialPath(path []byte) (v bool) { - var special = [4][8]byte{ - {'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'}, - {'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'}, - {'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'}, - {'S', 'Y', 'S', 'S', 'Y', 'M', 'A', '/'}} - - var i, j int - for i = 0; i < len(special); i++ { - for j = 0; j < len(special[i]); j++ { - if path[j] != special[i][j] { - break - } - } - if j == len(special[i]) { - return true - } - } - return false -} - -func realpath(srcpath string, abspath []byte) (pathlen int, errno int) { - var source [1024]byte - copy(source[:], srcpath) - source[len(srcpath)] = 0 - ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___REALPATH_A<<4, //__realpath_a() - []uintptr{uintptr(unsafe.Pointer(&source[0])), - uintptr(unsafe.Pointer(&abspath[0]))}) - if ret != 0 { - index := bytes.IndexByte(abspath[:], byte(0)) - if index != -1 { - return index, 0 - } - } else { - errptr := (*int)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) //__errno() - return 0, *errptr - } - return 0, 245 // EBADDATA 245 -} - -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) - } - n = int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___READLINK_A<<4, - []uintptr{uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))})) - runtime.KeepAlive(unsafe.Pointer(_p0)) - if n == -1 { - value := *(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) - err = errnoErr(Errno(value)) - } else { - if buf[0] == '$' { - if isSpecialPath(buf[1:9]) { - cnt, err1 := realpath(path, buf) - if err1 == 0 { - n = cnt - } - } - } - } - return -} - -func impl_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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - return n, err - } else { - if buf[0] == '$' { - if isSpecialPath(buf[1:9]) { - cnt, err1 := realpath(path, buf) - if err1 == 0 { - n = cnt - } - } - } - } - return -} - -//go:nosplit -func get_ReadlinkatAddr() *(func(dirfd int, path string, buf []byte) (n int, err error)) - -var Readlinkat = enter_Readlinkat - -func enter_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - funcref := get_ReadlinkatAddr() - if funcptrtest(GetZosLibVec()+SYS___READLINKAT_A<<4, "") == 0 { - *funcref = impl_Readlinkat - } else { - *funcref = error_Readlinkat - } - return (*funcref)(dirfd, path, buf) -} - -func error_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - n = -1 - err = ENOSYS - return -} - -//sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) = SYS___MKDIRAT_A -//sys Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A -//sys Mknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) = SYS___MKNODAT_A -//sys PivotRoot(newroot string, oldroot string) (err error) = SYS___PIVOT_ROOT_A -//sys Pread(fd int, p []byte, offset int64) (n int, err error) -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) = SYS___PRCTL_A -//sysnb Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT -//sys Rename(from string, to string) (err error) = SYS___RENAME_A -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) = SYS___RENAMEAT_A -//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) = SYS___RENAMEAT2_A -//sys Rmdir(path string) (err error) = SYS___RMDIR_A -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Setegid(egid int) (err error) = SYS_SETEGID -//sys Seteuid(euid int) (err error) = SYS_SETEUID -//sys Sethostname(p []byte) (err error) = SYS___SETHOSTNAME_A -//sys Setns(fd int, nstype int) (err error) = SYS_SETNS -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) = SYS_SETPGID -//sysnb Setrlimit(resource int, lim *Rlimit) (err error) -//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID -//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID -//sysnb Setsid() (pid int, err error) = SYS_SETSID -//sys Setuid(uid int) (err error) = SYS_SETUID -//sys Setgid(uid int) (err error) = SYS_SETGID -//sys Shutdown(fd int, how int) (err error) -//sys stat(path string, statLE *Stat_LE_t) (err error) = SYS___STAT_A - -func Stat(path string, sta *Stat_t) (err error) { - var statLE Stat_LE_t - err = stat(path, &statLE) - copyStat(sta, &statLE) - return -} - -//sys Symlink(path string, link string) (err error) = SYS___SYMLINK_A -//sys Symlinkat(oldPath string, dirfd int, newPath string) (err error) = SYS___SYMLINKAT_A -//sys Sync() = SYS_SYNC -//sys Truncate(path string, length int64) (err error) = SYS___TRUNCATE_A -//sys Tcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR -//sys Tcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR -//sys Umask(mask int) (oldmask int) -//sys Unlink(path string) (err error) = SYS___UNLINK_A -//sys Unlinkat(dirfd int, path string, flags int) (err error) = SYS___UNLINKAT_A -//sys Utime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A - -//sys open(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A - -func Open(path string, mode int, perm uint32) (fd int, err error) { - if mode&O_ACCMODE == 0 { - mode |= O_RDONLY - } - return open(path, mode, perm) -} - -//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) = SYS___OPENAT_A - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - if flags&O_ACCMODE == 0 { - flags |= O_RDONLY - } - return openat(dirfd, path, flags, mode) -} - -//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) = SYS___OPENAT2_A - -func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { - if how.Flags&O_ACCMODE == 0 { - how.Flags |= O_RDONLY - } - return openat2(dirfd, path, how, SizeofOpenHow) -} - -func ZosFdToPath(dirfd int) (path string, err error) { - var buffer [1024]byte - runtime.EnterSyscall() - ret, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_IOCTL<<4, uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))) - runtime.ExitSyscall() - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - CallLeFuncWithErr(GetZosLibVec()+SYS___E2A_L<<4, uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)) - return string(buffer[:zb]), nil - } - return "", errnoErr2(e1, e2) -} - -//sys remove(path string) (err error) - -func Remove(path string) error { - return remove(path) -} - -const ImplementsGetwd = true - -func Getcwd(buf []byte) (n int, err error) { - var p unsafe.Pointer - if len(buf) > 0 { - p = unsafe.Pointer(&buf[0]) - } else { - p = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___GETCWD_A<<4, uintptr(p), uintptr(len(buf))) - runtime.ExitSyscall() - n = clen(buf) + 1 - if r0 == 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - n, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - // Getcwd returns the number of bytes written to buf, including the NUL. - if n < 1 || n > len(buf) || buf[n-1] != 0 { - return "", EINVAL - } - return string(buf[0 : n-1]), nil -} - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 1<<16 on Linux. - if n < 0 || n > 1<<20 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -func gettid() uint64 - -func Gettid() (tid int) { - return int(gettid()) -} - -type WaitStatus uint32 - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. At least that's the idea. -// There are various irregularities. For example, the -// "continued" status is 0xFFFF, distinguishing itself -// from stopped via the core dump bit. - -const ( - mask = 0x7F - core = 0x80 - exited = 0x00 - stopped = 0x7F - shift = 8 -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } - -func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } - -func (w WaitStatus) Continued() bool { return w == 0xFFFF } - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) ExitStatus() int { - if !w.Exited() { - return -1 - } - return int(w>>shift) & 0xFF -} - -func (w WaitStatus) Signal() Signal { - if !w.Signaled() { - return -1 - } - return Signal(w & mask) -} - -func (w WaitStatus) StopSignal() Signal { - if !w.Stopped() { - return -1 - } - return Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys waitid(idType int, id int, info *Siginfo, options int) (err error) - -func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { - return waitid(idType, id, info, options) -} - -//sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) - -func impl_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAIT4<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage))) - runtime.ExitSyscall() - wpid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_Wait4Addr() *(func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error)) - -var Wait4 = enter_Wait4 - -func enter_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - funcref := get_Wait4Addr() - if funcptrtest(GetZosLibVec()+SYS_WAIT4<<4, "") == 0 { - *funcref = impl_Wait4 - } else { - *funcref = legacyWait4 - } - return (*funcref)(pid, wstatus, options, rusage) -} - -func legacyWait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - // TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want. - // At the moment rusage will not be touched. - var status _C_int - wpid, err = waitpid(pid, &status, options) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sysnb gettimeofday(tv *timeval_zos) (err error) - -func Gettimeofday(tv *Timeval) (err error) { - var tvz timeval_zos - err = gettimeofday(&tvz) - tv.Sec = tvz.Sec - tv.Usec = int64(tvz.Usec) - return -} - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { //fix - return Timeval{Sec: sec, Usec: 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 - err = pipe(&pp) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A - -func Utimes(path string, tv []Timeval) (err error) { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) = SYS___UTIMENSAT_A - -func validUtimensat() bool { - if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS___UTIMENSAT_A<<4); err == nil { - return name == "__utimensat_a" - } - } - return false -} - -// Begin UtimesNano - -//go:nosplit -func get_UtimesNanoAddr() *(func(path string, ts []Timespec) (err error)) - -var UtimesNano = enter_UtimesNano - -func enter_UtimesNano(path string, ts []Timespec) (err error) { - funcref := get_UtimesNanoAddr() - if validUtimensat() { - *funcref = utimesNanoImpl - } else { - *funcref = legacyUtimesNano - } - return (*funcref)(path, ts) -} - -func utimesNanoImpl(path string, ts []Timespec) (err error) { - if ts == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func legacyUtimesNano(path string, ts []Timespec) (err error) { - if len(ts) != 2 { - return EINVAL - } - // Not as efficient as it could be because Timespec and - // Timeval have different types in the different OSes - tv := [2]Timeval{ - NsecToTimeval(TimespecToNsec(ts[0])), - NsecToTimeval(TimespecToNsec(ts[1])), - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -// End UtimesNano - -// Begin UtimesNanoAt - -//go:nosplit -func get_UtimesNanoAtAddr() *(func(dirfd int, path string, ts []Timespec, flags int) (err error)) - -var UtimesNanoAt = enter_UtimesNanoAt - -func enter_UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { - funcref := get_UtimesNanoAtAddr() - if validUtimensat() { - *funcref = utimesNanoAtImpl - } else { - *funcref = legacyUtimesNanoAt - } - return (*funcref)(dirfd, path, ts, flags) -} - -func utimesNanoAtImpl(dirfd int, path string, ts []Timespec, flags int) (err error) { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -func legacyUtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { - if path[0] != '/' { - dirPath, err := ZosFdToPath(dirfd) - if err != nil { - return err - } - path = dirPath + "/" + path - } - if flags == AT_SYMLINK_NOFOLLOW { - if len(ts) != 2 { - return EINVAL - } - - if ts[0].Nsec >= 5e8 { - ts[0].Sec++ - } - ts[0].Nsec = 0 - if ts[1].Nsec >= 5e8 { - ts[1].Sec++ - } - ts[1].Nsec = 0 - - // Not as efficient as it could be because Timespec and - // Timeval have different types in the different OSes - tv := []Timeval{ - NsecToTimeval(TimespecToNsec(ts[0])), - NsecToTimeval(TimespecToNsec(ts[1])), - } - return Lutimes(path, tv) - } - return UtimesNano(path, ts) -} - -// End UtimesNanoAt - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - // TODO(neeilan) : Remove this 0 ( added to get sys/unix compiling on z/OS ) - return anyToSockaddr(0, &rsa) -} - -const ( - // identifier constants - nwmHeaderIdentifier = 0xd5e6d4c8 - nwmFilterIdentifier = 0xd5e6d4c6 - nwmTCPConnIdentifier = 0xd5e6d4c3 - nwmRecHeaderIdentifier = 0xd5e6d4d9 - nwmIPStatsIdentifier = 0xd5e6d4c9d7e2e340 - nwmIPGStatsIdentifier = 0xd5e6d4c9d7c7e2e3 - nwmTCPStatsIdentifier = 0xd5e6d4e3c3d7e2e3 - nwmUDPStatsIdentifier = 0xd5e6d4e4c4d7e2e3 - nwmICMPGStatsEntry = 0xd5e6d4c9c3d4d7c7 - nwmICMPTStatsEntry = 0xd5e6d4c9c3d4d7e3 - - // nwmHeader constants - nwmVersion1 = 1 - nwmVersion2 = 2 - nwmCurrentVer = 2 - - nwmTCPConnType = 1 - nwmGlobalStatsType = 14 - - // nwmFilter constants - nwmFilterLclAddrMask = 0x20000000 // Local address - nwmFilterSrcAddrMask = 0x20000000 // Source address - nwmFilterLclPortMask = 0x10000000 // Local port - nwmFilterSrcPortMask = 0x10000000 // Source port - - // nwmConnEntry constants - nwmTCPStateClosed = 1 - nwmTCPStateListen = 2 - nwmTCPStateSynSent = 3 - nwmTCPStateSynRcvd = 4 - nwmTCPStateEstab = 5 - nwmTCPStateFinWait1 = 6 - nwmTCPStateFinWait2 = 7 - nwmTCPStateClosWait = 8 - nwmTCPStateLastAck = 9 - nwmTCPStateClosing = 10 - nwmTCPStateTimeWait = 11 - nwmTCPStateDeletTCB = 12 - - // Existing constants on linux - BPF_TCP_CLOSE = 1 - BPF_TCP_LISTEN = 2 - BPF_TCP_SYN_SENT = 3 - BPF_TCP_SYN_RECV = 4 - BPF_TCP_ESTABLISHED = 5 - BPF_TCP_FIN_WAIT1 = 6 - BPF_TCP_FIN_WAIT2 = 7 - BPF_TCP_CLOSE_WAIT = 8 - BPF_TCP_LAST_ACK = 9 - BPF_TCP_CLOSING = 10 - BPF_TCP_TIME_WAIT = 11 - BPF_TCP_NEW_SYN_RECV = -1 - BPF_TCP_MAX_STATES = -2 -) - -type nwmTriplet struct { - offset uint32 - length uint32 - number uint32 -} - -type nwmQuadruplet struct { - offset uint32 - length uint32 - number uint32 - match uint32 -} - -type nwmHeader struct { - ident uint32 - length uint32 - version uint16 - nwmType uint16 - bytesNeeded uint32 - options uint32 - _ [16]byte - inputDesc nwmTriplet - outputDesc nwmQuadruplet -} - -type nwmFilter struct { - ident uint32 - flags uint32 - resourceName [8]byte - resourceId uint32 - listenerId uint32 - local [28]byte // union of sockaddr4 and sockaddr6 - remote [28]byte // union of sockaddr4 and sockaddr6 - _ uint16 - _ uint16 - asid uint16 - _ [2]byte - tnLuName [8]byte - tnMonGrp uint32 - tnAppl [8]byte - applData [40]byte - nInterface [16]byte - dVipa [16]byte - dVipaPfx uint16 - dVipaPort uint16 - dVipaFamily byte - _ [3]byte - destXCF [16]byte - destXCFPfx uint16 - destXCFFamily byte - _ [1]byte - targIP [16]byte - targIPPfx uint16 - targIPFamily byte - _ [1]byte - _ [20]byte -} - -type nwmRecHeader struct { - ident uint32 - length uint32 - number byte - _ [3]byte -} - -type nwmTCPStatsEntry struct { - ident uint64 - currEstab uint32 - activeOpened uint32 - passiveOpened uint32 - connClosed uint32 - estabResets uint32 - attemptFails uint32 - passiveDrops uint32 - timeWaitReused uint32 - inSegs uint64 - predictAck uint32 - predictData uint32 - inDupAck uint32 - inBadSum uint32 - inBadLen uint32 - inShort uint32 - inDiscOldTime uint32 - inAllBeforeWin uint32 - inSomeBeforeWin uint32 - inAllAfterWin uint32 - inSomeAfterWin uint32 - inOutOfOrder uint32 - inAfterClose uint32 - inWinProbes uint32 - inWinUpdates uint32 - outWinUpdates uint32 - outSegs uint64 - outDelayAcks uint32 - outRsts uint32 - retransSegs uint32 - retransTimeouts uint32 - retransDrops uint32 - pmtuRetrans uint32 - pmtuErrors uint32 - outWinProbes uint32 - probeDrops uint32 - keepAliveProbes uint32 - keepAliveDrops uint32 - finwait2Drops uint32 - acceptCount uint64 - inBulkQSegs uint64 - inDiscards uint64 - connFloods uint32 - connStalls uint32 - cfgEphemDef uint16 - ephemInUse uint16 - ephemHiWater uint16 - flags byte - _ [1]byte - ephemExhaust uint32 - smcRCurrEstabLnks uint32 - smcRLnkActTimeOut uint32 - smcRActLnkOpened uint32 - smcRPasLnkOpened uint32 - smcRLnksClosed uint32 - smcRCurrEstab uint32 - smcRActiveOpened uint32 - smcRPassiveOpened uint32 - smcRConnClosed uint32 - smcRInSegs uint64 - smcROutSegs uint64 - smcRInRsts uint32 - smcROutRsts uint32 - smcDCurrEstabLnks uint32 - smcDActLnkOpened uint32 - smcDPasLnkOpened uint32 - smcDLnksClosed uint32 - smcDCurrEstab uint32 - smcDActiveOpened uint32 - smcDPassiveOpened uint32 - smcDConnClosed uint32 - smcDInSegs uint64 - smcDOutSegs uint64 - smcDInRsts uint32 - smcDOutRsts uint32 -} - -type nwmConnEntry struct { - ident uint32 - local [28]byte // union of sockaddr4 and sockaddr6 - remote [28]byte // union of sockaddr4 and sockaddr6 - startTime [8]byte // uint64, changed to prevent padding from being inserted - lastActivity [8]byte // uint64 - bytesIn [8]byte // uint64 - bytesOut [8]byte // uint64 - inSegs [8]byte // uint64 - outSegs [8]byte // uint64 - state uint16 - activeOpen byte - flag01 byte - outBuffered uint32 - inBuffered uint32 - maxSndWnd uint32 - reXmtCount uint32 - congestionWnd uint32 - ssThresh uint32 - roundTripTime uint32 - roundTripVar uint32 - sendMSS uint32 - sndWnd uint32 - rcvBufSize uint32 - sndBufSize uint32 - outOfOrderCount uint32 - lcl0WindowCount uint32 - rmt0WindowCount uint32 - dupacks uint32 - flag02 byte - sockOpt6Cont byte - asid uint16 - resourceName [8]byte - resourceId uint32 - subtask uint32 - sockOpt byte - sockOpt6 byte - clusterConnFlag byte - proto byte - targetAppl [8]byte - luName [8]byte - clientUserId [8]byte - logMode [8]byte - timeStamp uint32 - timeStampAge uint32 - serverResourceId uint32 - intfName [16]byte - ttlsStatPol byte - ttlsStatConn byte - ttlsSSLProt uint16 - ttlsNegCiph [2]byte - ttlsSecType byte - ttlsFIPS140Mode byte - ttlsUserID [8]byte - applData [40]byte - inOldestTime [8]byte // uint64 - outOldestTime [8]byte // uint64 - tcpTrustedPartner byte - _ [3]byte - bulkDataIntfName [16]byte - ttlsNegCiph4 [4]byte - smcReason uint32 - lclSMCLinkId uint32 - rmtSMCLinkId uint32 - smcStatus byte - smcFlags byte - _ [2]byte - rcvWnd uint32 - lclSMCBufSz uint32 - rmtSMCBufSz uint32 - ttlsSessID [32]byte - ttlsSessIDLen int16 - _ [1]byte - smcDStatus byte - smcDReason uint32 -} - -var svcNameTable [][]byte = [][]byte{ - []byte("\xc5\xe9\xc2\xd5\xd4\xc9\xc6\xf4"), // svc_EZBNMIF4 -} - -const ( - svc_EZBNMIF4 = 0 -) - -func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { - jobname := []byte("\x5c\x40\x40\x40\x40\x40\x40\x40") // "*" - responseBuffer := [4096]byte{0} - var bufferAlet, reasonCode uint32 = 0, 0 - var bufferLen, returnValue, returnCode int32 = 4096, 0, 0 - - dsa := [18]uint64{0} - var argv [7]unsafe.Pointer - argv[0] = unsafe.Pointer(&jobname[0]) - argv[1] = unsafe.Pointer(&responseBuffer[0]) - argv[2] = unsafe.Pointer(&bufferAlet) - argv[3] = unsafe.Pointer(&bufferLen) - argv[4] = unsafe.Pointer(&returnValue) - argv[5] = unsafe.Pointer(&returnCode) - argv[6] = unsafe.Pointer(&reasonCode) - - request := (*struct { - header nwmHeader - filter nwmFilter - })(unsafe.Pointer(&responseBuffer[0])) - - EZBNMIF4 := svcLoad(&svcNameTable[svc_EZBNMIF4][0]) - if EZBNMIF4 == nil { - return nil, errnoErr(EINVAL) - } - - // GetGlobalStats EZBNMIF4 call - request.header.ident = nwmHeaderIdentifier - request.header.length = uint32(unsafe.Sizeof(request.header)) - request.header.version = nwmCurrentVer - request.header.nwmType = nwmGlobalStatsType - request.header.options = 0x80000000 - - svcCall(EZBNMIF4, &argv[0], &dsa[0]) - - // outputDesc field is filled by EZBNMIF4 on success - if returnCode != 0 || request.header.outputDesc.offset == 0 { - return nil, errnoErr(EINVAL) - } - - // Check that EZBNMIF4 returned a nwmRecHeader - recHeader := (*nwmRecHeader)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) - if recHeader.ident != nwmRecHeaderIdentifier { - return nil, errnoErr(EINVAL) - } - - // Parse nwmTriplets to get offsets of returned entries - var sections []*uint64 - var sectionDesc *nwmTriplet = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[0])) - for i := uint32(0); i < uint32(recHeader.number); i++ { - offset := request.header.outputDesc.offset + uint32(unsafe.Sizeof(*recHeader)) + i*uint32(unsafe.Sizeof(*sectionDesc)) - sectionDesc = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[offset])) - for j := uint32(0); j < sectionDesc.number; j++ { - offset = request.header.outputDesc.offset + sectionDesc.offset + j*sectionDesc.length - sections = append(sections, (*uint64)(unsafe.Pointer(&responseBuffer[offset]))) - } - } - - // Find nwmTCPStatsEntry in returned entries - var tcpStats *nwmTCPStatsEntry = nil - for _, ptr := range sections { - switch *ptr { - case nwmTCPStatsIdentifier: - if tcpStats != nil { - return nil, errnoErr(EINVAL) - } - tcpStats = (*nwmTCPStatsEntry)(unsafe.Pointer(ptr)) - case nwmIPStatsIdentifier: - case nwmIPGStatsIdentifier: - case nwmUDPStatsIdentifier: - case nwmICMPGStatsEntry: - case nwmICMPTStatsEntry: - default: - return nil, errnoErr(EINVAL) - } - } - if tcpStats == nil { - return nil, errnoErr(EINVAL) - } - - // GetConnectionDetail EZBNMIF4 call - responseBuffer = [4096]byte{0} - dsa = [18]uint64{0} - bufferAlet, reasonCode = 0, 0 - bufferLen, returnValue, returnCode = 4096, 0, 0 - nameptr := (*uint32)(unsafe.Pointer(uintptr(0x21c))) // Get jobname of current process - nameptr = (*uint32)(unsafe.Pointer(uintptr(*nameptr + 12))) - argv[0] = unsafe.Pointer(uintptr(*nameptr)) - - request.header.ident = nwmHeaderIdentifier - request.header.length = uint32(unsafe.Sizeof(request.header)) - request.header.version = nwmCurrentVer - request.header.nwmType = nwmTCPConnType - request.header.options = 0x80000000 - - request.filter.ident = nwmFilterIdentifier - - var localSockaddr RawSockaddrAny - socklen := _Socklen(SizeofSockaddrAny) - err := getsockname(fd, &localSockaddr, &socklen) - if err != nil { - return nil, errnoErr(EINVAL) - } - if localSockaddr.Addr.Family == AF_INET { - localSockaddr := (*RawSockaddrInet4)(unsafe.Pointer(&localSockaddr.Addr)) - localSockFilter := (*RawSockaddrInet4)(unsafe.Pointer(&request.filter.local[0])) - localSockFilter.Family = AF_INET - var i int - for i = 0; i < 4; i++ { - if localSockaddr.Addr[i] != 0 { - break - } - } - if i != 4 { - request.filter.flags |= nwmFilterLclAddrMask - for i = 0; i < 4; i++ { - localSockFilter.Addr[i] = localSockaddr.Addr[i] - } - } - if localSockaddr.Port != 0 { - request.filter.flags |= nwmFilterLclPortMask - localSockFilter.Port = localSockaddr.Port - } - } else if localSockaddr.Addr.Family == AF_INET6 { - localSockaddr := (*RawSockaddrInet6)(unsafe.Pointer(&localSockaddr.Addr)) - localSockFilter := (*RawSockaddrInet6)(unsafe.Pointer(&request.filter.local[0])) - localSockFilter.Family = AF_INET6 - var i int - for i = 0; i < 16; i++ { - if localSockaddr.Addr[i] != 0 { - break - } - } - if i != 16 { - request.filter.flags |= nwmFilterLclAddrMask - for i = 0; i < 16; i++ { - localSockFilter.Addr[i] = localSockaddr.Addr[i] - } - } - if localSockaddr.Port != 0 { - request.filter.flags |= nwmFilterLclPortMask - localSockFilter.Port = localSockaddr.Port - } - } - - svcCall(EZBNMIF4, &argv[0], &dsa[0]) - - // outputDesc field is filled by EZBNMIF4 on success - if returnCode != 0 || request.header.outputDesc.offset == 0 { - return nil, errnoErr(EINVAL) - } - - // Check that EZBNMIF4 returned a nwmConnEntry - conn := (*nwmConnEntry)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) - if conn.ident != nwmTCPConnIdentifier { - return nil, errnoErr(EINVAL) - } - - // Copy data from the returned data structures into tcpInfo - // Stats from nwmConnEntry are specific to that connection. - // Stats from nwmTCPStatsEntry are global (to the interface?) - // Fields may not be an exact match. Some fields have no equivalent. - var tcpinfo TCPInfo - tcpinfo.State = uint8(conn.state) - tcpinfo.Ca_state = 0 // dummy - tcpinfo.Retransmits = uint8(tcpStats.retransSegs) - tcpinfo.Probes = uint8(tcpStats.outWinProbes) - tcpinfo.Backoff = 0 // dummy - tcpinfo.Options = 0 // dummy - tcpinfo.Rto = tcpStats.retransTimeouts - tcpinfo.Ato = tcpStats.outDelayAcks - tcpinfo.Snd_mss = conn.sendMSS - tcpinfo.Rcv_mss = conn.sendMSS // dummy - tcpinfo.Unacked = 0 // dummy - tcpinfo.Sacked = 0 // dummy - tcpinfo.Lost = 0 // dummy - tcpinfo.Retrans = conn.reXmtCount - tcpinfo.Fackets = 0 // dummy - tcpinfo.Last_data_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.lastActivity[0]))) - tcpinfo.Last_ack_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.outOldestTime[0]))) - tcpinfo.Last_data_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) - tcpinfo.Last_ack_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) - tcpinfo.Pmtu = conn.sendMSS // dummy, NWMIfRouteMtu is a candidate - tcpinfo.Rcv_ssthresh = conn.ssThresh - tcpinfo.Rtt = conn.roundTripTime - tcpinfo.Rttvar = conn.roundTripVar - tcpinfo.Snd_ssthresh = conn.ssThresh // dummy - tcpinfo.Snd_cwnd = conn.congestionWnd - tcpinfo.Advmss = conn.sendMSS // dummy - tcpinfo.Reordering = 0 // dummy - tcpinfo.Rcv_rtt = conn.roundTripTime // dummy - tcpinfo.Rcv_space = conn.sendMSS // dummy - tcpinfo.Total_retrans = conn.reXmtCount - - svcUnload(&svcNameTable[svc_EZBNMIF4][0], EZBNMIF4) - - return &tcpinfo, nil -} - -// GetsockoptString returns the string value of the socket option opt for the -// socket associated with fd at the given socket level. -func GetsockoptString(fd, level, opt int) (string, error) { - buf := make([]byte, 256) - vallen := _Socklen(len(buf)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - if err != nil { - return "", err - } - - return ByteSliceToString(buf[:vallen]), nil -} - -func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - var msg Msghdr - var rsa RawSockaddrAny - msg.Name = (*byte)(unsafe.Pointer(&rsa)) - msg.Namelen = SizeofSockaddrAny - var iov Iovec - if len(p) > 0 { - iov.Base = (*byte)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - // source address is only specified if the socket is unconnected - if rsa.Addr.Family != AF_UNSPEC { - // TODO(neeilan): Remove 0 arg added to get this compiling on z/OS - from, err = anyToSockaddr(0, &rsa) - } - return -} - -func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { - _, err = SendmsgN(fd, p, oob, to, flags) - return -} - -func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - var err error - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = int32(salen) - var iov Iovec - if len(p) > 0 { - iov.Base = (*byte)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy byte - if len(oob) > 0 { - // send at least one normal byte - if len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && len(p) == 0 { - n = 0 - } - return n, nil -} - -func Opendir(name string) (uintptr, error) { - p, err := BytePtrFromString(name) - if err != nil { - return 0, err - } - err = nil - runtime.EnterSyscall() - dir, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___OPENDIR_A<<4, uintptr(unsafe.Pointer(p))) - runtime.ExitSyscall() - runtime.KeepAlive(unsafe.Pointer(p)) - if dir == 0 { - err = errnoErr2(e1, e2) - } - return dir, err -} - -// clearsyscall.Errno resets the errno value to 0. -func clearErrno() - -func Closedir(dir uintptr) error { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSEDIR<<4, dir) - runtime.ExitSyscall() - if r0 != 0 { - return errnoErr2(e1, e2) - } - return nil -} - -func Seekdir(dir uintptr, pos int) { - runtime.EnterSyscall() - CallLeFuncWithErr(GetZosLibVec()+SYS_SEEKDIR<<4, dir, uintptr(pos)) - runtime.ExitSyscall() -} - -func Telldir(dir uintptr) (int, error) { - p, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TELLDIR<<4, dir) - pos := int(p) - if int64(p) == -1 { - return pos, errnoErr2(e1, e2) - } - return pos, nil -} - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - // struct flock is packed on z/OS. We can't emulate that in Go so - // instead we pack it here. - var flock [24]byte - *(*int16)(unsafe.Pointer(&flock[0])) = lk.Type - *(*int16)(unsafe.Pointer(&flock[2])) = lk.Whence - *(*int64)(unsafe.Pointer(&flock[4])) = lk.Start - *(*int64)(unsafe.Pointer(&flock[12])) = lk.Len - *(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) - runtime.ExitSyscall() - lk.Type = *(*int16)(unsafe.Pointer(&flock[0])) - lk.Whence = *(*int16)(unsafe.Pointer(&flock[2])) - lk.Start = *(*int64)(unsafe.Pointer(&flock[4])) - lk.Len = *(*int64)(unsafe.Pointer(&flock[12])) - lk.Pid = *(*int32)(unsafe.Pointer(&flock[20])) - if r0 == 0 { - return nil - } - return errnoErr2(e1, e2) -} - -func impl_Flock(fd int, how int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FLOCK<<4, uintptr(fd), uintptr(how)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FlockAddr() *(func(fd int, how int) (err error)) - -var Flock = enter_Flock - -func validFlock(fp uintptr) bool { - if funcptrtest(GetZosLibVec()+SYS_FLOCK<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS_FLOCK<<4); err == nil { - return name == "flock" - } - } - return false -} - -func enter_Flock(fd int, how int) (err error) { - funcref := get_FlockAddr() - if validFlock(GetZosLibVec() + SYS_FLOCK<<4) { - *funcref = impl_Flock - } else { - *funcref = legacyFlock - } - return (*funcref)(fd, how) -} - -func legacyFlock(fd int, how int) error { - - var flock_type int16 - var fcntl_cmd int - - switch how { - case LOCK_SH | LOCK_NB: - flock_type = F_RDLCK - fcntl_cmd = F_SETLK - case LOCK_EX | LOCK_NB: - flock_type = F_WRLCK - fcntl_cmd = F_SETLK - case LOCK_EX: - flock_type = F_WRLCK - fcntl_cmd = F_SETLKW - case LOCK_UN: - flock_type = F_UNLCK - fcntl_cmd = F_SETLKW - default: - } - - flock := Flock_t{ - Type: int16(flock_type), - Whence: int16(0), - Start: int64(0), - Len: int64(0), - Pid: int32(Getppid()), - } - - err := FcntlFlock(uintptr(fd), fcntl_cmd, &flock) - return err -} - -func Mlock(b []byte) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Mlock2(b []byte, flags int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Mlockall(flags int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Munlock(b []byte) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Munlockall() (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func ClockGettime(clockid int32, ts *Timespec) error { - - var ticks_per_sec uint32 = 100 //TODO(kenan): value is currently hardcoded; need sysconf() call otherwise - var nsec_per_sec int64 = 1000000000 - - if ts == nil { - return EFAULT - } - if clockid == CLOCK_REALTIME || clockid == CLOCK_MONOTONIC { - var nanotime int64 = runtime.Nanotime1() - ts.Sec = nanotime / nsec_per_sec - ts.Nsec = nanotime % nsec_per_sec - } else if clockid == CLOCK_PROCESS_CPUTIME_ID || clockid == CLOCK_THREAD_CPUTIME_ID { - var tm Tms - _, err := Times(&tm) - if err != nil { - return EFAULT - } - ts.Sec = int64(tm.Utime / ticks_per_sec) - ts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec) - } else { - return EINVAL - } - return nil -} - -// Chtag - -//go:nosplit -func get_ChtagAddr() *(func(path string, ccsid uint64, textbit uint64) error) - -var Chtag = enter_Chtag - -func enter_Chtag(path string, ccsid uint64, textbit uint64) error { - funcref := get_ChtagAddr() - if validSetxattr() { - *funcref = impl_Chtag - } else { - *funcref = legacy_Chtag - } - return (*funcref)(path, ccsid, textbit) -} - -func legacy_Chtag(path string, ccsid uint64, textbit uint64) error { - tag := ccsid<<16 | textbit<<15 - var tag_buff [8]byte - DecodeData(tag_buff[:], 8, tag) - return Setxattr(path, "filetag", tag_buff[:], XATTR_REPLACE) -} - -func impl_Chtag(path string, ccsid uint64, textbit uint64) error { - tag := ccsid<<16 | textbit<<15 - var tag_buff [4]byte - DecodeData(tag_buff[:], 4, tag) - return Setxattr(path, "system.filetag", tag_buff[:], XATTR_REPLACE) -} - -// End of Chtag - -// Nanosleep - -//go:nosplit -func get_NanosleepAddr() *(func(time *Timespec, leftover *Timespec) error) - -var Nanosleep = enter_Nanosleep - -func enter_Nanosleep(time *Timespec, leftover *Timespec) error { - funcref := get_NanosleepAddr() - if funcptrtest(GetZosLibVec()+SYS_NANOSLEEP<<4, "") == 0 { - *funcref = impl_Nanosleep - } else { - *funcref = legacyNanosleep - } - return (*funcref)(time, leftover) -} - -func impl_Nanosleep(time *Timespec, leftover *Timespec) error { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_NANOSLEEP<<4, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) - runtime.ExitSyscall() - if int64(r0) == -1 { - return errnoErr2(e1, e2) - } - return nil -} - -func legacyNanosleep(time *Timespec, leftover *Timespec) error { - t0 := runtime.Nanotime1() - var secrem uint32 - var nsecrem uint32 - total := time.Sec*1000000000 + time.Nsec - elapsed := runtime.Nanotime1() - t0 - var rv int32 - var rc int32 - var err error - // repeatedly sleep for 1 second until less than 1 second left - for total-elapsed > 1000000000 { - rv, rc, _ = BpxCondTimedWait(uint32(1), uint32(0), uint32(CW_CONDVAR), &secrem, &nsecrem) - if rv != 0 && rc != 112 { // 112 is EAGAIN - if leftover != nil && rc == 120 { // 120 is EINTR - leftover.Sec = int64(secrem) - leftover.Nsec = int64(nsecrem) - } - err = Errno(rc) - return err - } - elapsed = runtime.Nanotime1() - t0 - } - // sleep the remainder - if total > elapsed { - rv, rc, _ = BpxCondTimedWait(uint32(0), uint32(total-elapsed), uint32(CW_CONDVAR), &secrem, &nsecrem) - } - if leftover != nil && rc == 120 { - leftover.Sec = int64(secrem) - leftover.Nsec = int64(nsecrem) - } - if rv != 0 && rc != 112 { - err = Errno(rc) - } - return err -} - -// End of Nanosleep - -var ( - Stdin = 0 - Stdout = 1 - Stderr = 2 -) - -// Do the interface allocations only once for common -// Errno values. -var ( - errEAGAIN error = syscall.EAGAIN - errEINVAL error = syscall.EINVAL - errENOENT error = syscall.ENOENT -) - -var ZosTraceLevel int -var ZosTracefile *os.File - -var ( - signalNameMapOnce sync.Once - signalNameMap map[string]syscall.Signal -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e Errno) error { - switch e { - case 0: - return nil - case EAGAIN: - return errEAGAIN - case EINVAL: - return errEINVAL - case ENOENT: - return errENOENT - } - return e -} - -var reg *regexp.Regexp - -// enhanced with zos specific errno2 -func errnoErr2(e Errno, e2 uintptr) error { - switch e { - case 0: - return nil - case EAGAIN: - return errEAGAIN - /* - Allow the retrieval of errno2 for EINVAL and ENOENT on zos - case EINVAL: - return errEINVAL - case ENOENT: - return errENOENT - */ - } - if ZosTraceLevel > 0 { - var name string - if reg == nil { - reg = regexp.MustCompile("(^unix\\.[^/]+$|.*\\/unix\\.[^/]+$)") - } - i := 1 - pc, file, line, ok := runtime.Caller(i) - if ok { - name = runtime.FuncForPC(pc).Name() - } - for ok && reg.MatchString(runtime.FuncForPC(pc).Name()) { - i += 1 - pc, file, line, ok = runtime.Caller(i) - } - if ok { - if ZosTracefile == nil { - ZosConsolePrintf("From %s:%d\n", file, line) - ZosConsolePrintf("%s: %s (errno2=0x%x)\n", name, e.Error(), e2) - } else { - fmt.Fprintf(ZosTracefile, "From %s:%d\n", file, line) - fmt.Fprintf(ZosTracefile, "%s: %s (errno2=0x%x)\n", name, e.Error(), e2) - } - } else { - if ZosTracefile == nil { - ZosConsolePrintf("%s (errno2=0x%x)\n", e.Error(), e2) - } else { - fmt.Fprintf(ZosTracefile, "%s (errno2=0x%x)\n", e.Error(), e2) - } - } - } - return e -} - -// ErrnoName returns the error name for error number e. -func ErrnoName(e Errno) string { - i := sort.Search(len(errorList), func(i int) bool { - return errorList[i].num >= e - }) - if i < len(errorList) && errorList[i].num == e { - return errorList[i].name - } - return "" -} - -// SignalName returns the signal name for signal number s. -func SignalName(s syscall.Signal) string { - i := sort.Search(len(signalList), func(i int) bool { - return signalList[i].num >= s - }) - if i < len(signalList) && signalList[i].num == s { - return signalList[i].name - } - 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, len(signalList)) - 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) - if i == -1 { - i = len(n) - } - return i -} - -// Mmap manager, for use by operating system-specific implementations. - -type mmapper struct { - sync.Mutex - active map[*byte][]byte // active mappings; key is last byte in mapping - mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) - munmap func(addr uintptr, length uintptr) error -} - -func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - if length <= 0 { - return nil, EINVAL - } - - // Set __MAP_64 by default - flags |= __MAP_64 - - // Map the requested memory. - addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) - if errno != nil { - return nil, errno - } - - // Slice memory layout - var sl = struct { - addr uintptr - len int - cap int - }{addr, length, length} - - // Use unsafe to turn sl into a []byte. - b := *(*[]byte)(unsafe.Pointer(&sl)) - - // Register mapping in m and return it. - p := &b[cap(b)-1] - m.Lock() - defer m.Unlock() - m.active[p] = b - return b, nil -} - -func (m *mmapper) Munmap(data []byte) (err error) { - if len(data) == 0 || len(data) != cap(data) { - return EINVAL - } - - // Find the base of the mapping. - p := &data[cap(data)-1] - m.Lock() - defer m.Unlock() - b := m.active[p] - if b == nil || &b[0] != &data[0] { - return EINVAL - } - - // Unmap the memory and update m. - if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { - return errno - } - delete(m.active, p) - return nil -} - -func Read(fd int, p []byte) (n int, err error) { - n, err = read(fd, p) - if raceenabled { - if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } - } - return -} - -func Write(fd int, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = write(fd, p) - if raceenabled && n > 0 { - raceReadRange(unsafe.Pointer(&p[0]), n) - } - return -} - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -// Sockaddr represents a socket address. -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs -} - -// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. -type SockaddrUnix struct { - Name string - raw RawSockaddrUnix -} - -func Bind(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func Getpeername(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getpeername(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -func GetsockoptByte(fd, level, opt int) (value byte, err error) { - var n byte - vallen := _Socklen(1) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return n, err -} - -func GetsockoptInt(fd, level, opt int) (value int, err error) { - var n int32 - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return int(n), err -} - -func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - return value, err -} - -func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { - var value IPMreq - vallen := _Socklen(SizeofIPMreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { - var value IPv6Mreq - vallen := _Socklen(SizeofIPv6Mreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { - var value IPv6MTUInfo - vallen := _Socklen(SizeofIPv6MTUInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { - var value ICMPv6Filter - vallen := _Socklen(SizeofICMPv6Filter) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptLinger(fd, level, opt int) (*Linger, error) { - var linger Linger - vallen := _Socklen(SizeofLinger) - err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) - return &linger, err -} - -func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { - var tv Timeval - vallen := _Socklen(unsafe.Sizeof(tv)) - err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) - 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 - if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { - return - } - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { - ptr, n, err := to.sockaddr() - if err != nil { - return err - } - return sendto(fd, p, flags, ptr, n) -} - -func SetsockoptByte(fd, level, opt int, value byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) -} - -func SetsockoptInt(fd, level, opt int, value int) (err error) { - var n = int32(value) - return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) -} - -func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) -} - -func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) -} - -func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) -} - -func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { - return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) -} - -func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) -} - -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))) -} - -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 - } - fd, err = socket(domain, typ, proto) - return -} - -func Socketpair(domain, typ, proto int) (fd [2]int, err error) { - var fdx [2]int32 - err = socketpair(domain, typ, proto, &fdx) - if err == nil { - fd[0] = int(fdx[0]) - fd[1] = int(fdx[1]) - } - return -} - -var ioSync int64 - -func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } - -func SetNonblock(fd int, nonblocking bool) (err error) { - flag, err := fcntl(fd, F_GETFL, 0) - if err != nil { - return err - } - if nonblocking { - flag |= O_NONBLOCK - } else { - flag &= ^O_NONBLOCK - } - _, err = fcntl(fd, F_SETFL, flag) - return err -} - -// Exec calls execve(2), which replaces the calling executable in the process -// tree. argv0 should be the full path to an executable ("/bin/ls") and the -// executable name should also be the first argument in argv (["ls", "-l"]). -// envv are the environment variables that should be passed to the new -// process (["USER=go", "PWD=/tmp"]). -func Exec(argv0 string, argv []string, envv []string) error { - return syscall.Exec(argv0, argv, envv) -} - -func Getag(path string) (ccsid uint16, flag uint16, err error) { - var val [8]byte - sz, err := Getxattr(path, "ccsid", val[:]) - if err != nil { - return - } - ccsid = uint16(EncodeData(val[0:sz])) - sz, err = Getxattr(path, "flags", val[:]) - if err != nil { - return - } - flag = uint16(EncodeData(val[0:sz]) >> 15) - return -} - -// Mount begin -func impl_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - var _p3 *byte - _p3, err = BytePtrFromString(data) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT1_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(_p3))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_MountAddr() *(func(source string, target string, fstype string, flags uintptr, data string) (err error)) - -var Mount = enter_Mount - -func enter_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { - funcref := get_MountAddr() - if validMount() { - *funcref = impl_Mount - } else { - *funcref = legacyMount - } - return (*funcref)(source, target, fstype, flags, data) -} - -func legacyMount(source string, target string, fstype string, flags uintptr, data string) (err error) { - if needspace := 8 - len(fstype); needspace <= 0 { - fstype = fstype[0:8] - } else { - fstype += " "[0:needspace] - } - return mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data) -} - -func validMount() bool { - if funcptrtest(GetZosLibVec()+SYS___MOUNT1_A<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS___MOUNT1_A<<4); err == nil { - return name == "__mount1_a" - } - } - return false -} - -// Mount end - -// Unmount begin -func impl_Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT2_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_UnmountAddr() *(func(target string, flags int) (err error)) - -var Unmount = enter_Unmount - -func enter_Unmount(target string, flags int) (err error) { - funcref := get_UnmountAddr() - if funcptrtest(GetZosLibVec()+SYS___UMOUNT2_A<<4, "") == 0 { - *funcref = impl_Unmount - } else { - *funcref = legacyUnmount - } - return (*funcref)(target, flags) -} - -func legacyUnmount(name string, mtm int) (err error) { - // mountpoint is always a full path and starts with a '/' - // check if input string is not a mountpoint but a filesystem name - if name[0] != '/' { - return unmount_LE(name, mtm) - } - // treat name as mountpoint - b2s := func(arr []byte) string { - var str string - for i := 0; i < len(arr); i++ { - if arr[i] == 0 { - str = string(arr[:i]) - break - } - } - return str - } - var buffer struct { - header W_Mnth - fsinfo [64]W_Mntent - } - fs_count, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) - if err == nil { - err = EINVAL - for i := 0; i < fs_count; i++ { - if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { - err = unmount_LE(b2s(buffer.fsinfo[i].Fsname[:]), mtm) - break - } - } - } else if fs_count == 0 { - err = EINVAL - } - return err -} - -// Unmount end - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -func direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) { - var d Dirent - - d.Ino = uint64(dirent.Ino) - offset, err := Telldir(dir) - if err != nil { - return d, err - } - - d.Off = int64(offset) - s := string(bytes.Split(dirent.Name[:], []byte{0})[0]) - copy(d.Name[:], s) - - d.Reclen = uint16(24 + len(d.NameString())) - var st Stat_t - path = path + "/" + s - err = Lstat(path, &st) - if err != nil { - return d, err - } - - d.Type = uint8(st.Mode >> 24) - return d, err -} - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - // Simulation of Getdirentries port from the Darwin implementation. - // COMMENTS FROM DARWIN: - // It's not the full required semantics, but should handle the case - // of calling Getdirentries or ReadDirent repeatedly. - // It won't handle assigning the results of lseek to *basep, or handle - // the directory being edited underfoot. - - skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - return 0, err - } - - // Get path from fd to avoid unavailable call (fdopendir) - path, err := ZosFdToPath(fd) - if err != nil { - return 0, err - } - d, err := Opendir(path) - if err != nil { - return 0, err - } - defer Closedir(d) - - var cnt int64 - for { - var entryLE direntLE - var entrypLE *direntLE - e := Readdir_r(d, &entryLE, &entrypLE) - if e != nil { - return n, e - } - if entrypLE == nil { - break - } - if skip > 0 { - skip-- - cnt++ - continue - } - - // Dirent on zos has a different structure - entry, e := direntLeToDirentUnix(&entryLE, d, path) - if e != nil { - return n, e - } - - reclen := int(entry.Reclen) - if reclen > len(buf) { - // Not enough room. Return for now. - // The counter will let us know where we should start up again. - // Note: this strategy for suspending in the middle and - // restarting is O(n^2) in the length of the directory. Oh well. - break - } - - // Copy entry into return buffer. - s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen) - copy(buf, s) - - buf = buf[reclen:] - n += reclen - cnt++ - } - // Set the seek offset of the input fd to record - // how many files we've already returned. - _, err = Seek(fd, cnt, 0 /* SEEK_SET */) - if err != nil { - return n, err - } - - return n, nil -} - -func Err2ad() (eadd *int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERR2AD<<4) - eadd = (*int)(unsafe.Pointer(r0)) - return -} - -func ZosConsolePrintf(format string, v ...interface{}) (int, error) { - type __cmsg struct { - _ uint16 - _ [2]uint8 - __msg_length uint32 - __msg uintptr - _ [4]uint8 - } - msg := fmt.Sprintf(format, v...) - strptr := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&msg)).Data) - len := (*reflect.StringHeader)(unsafe.Pointer(&msg)).Len - cmsg := __cmsg{__msg_length: uint32(len), __msg: uintptr(strptr)} - cmd := uint32(0) - runtime.EnterSyscall() - rc, err2, err1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____CONSOLE_A<<4, uintptr(unsafe.Pointer(&cmsg)), 0, uintptr(unsafe.Pointer(&cmd))) - runtime.ExitSyscall() - if rc != 0 { - return 0, fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) - } - return 0, nil -} -func ZosStringToEbcdicBytes(str string, nullterm bool) (ebcdicBytes []byte) { - if nullterm { - ebcdicBytes = []byte(str + "\x00") - } else { - ebcdicBytes = []byte(str) - } - A2e(ebcdicBytes) - return -} -func ZosEbcdicBytesToString(b []byte, trimRight bool) (str string) { - res := make([]byte, len(b)) - copy(res, b) - E2a(res) - if trimRight { - str = string(bytes.TrimRight(res, " \x00")) - } else { - str = string(res) - } - return -} - -func fdToPath(dirfd int) (path string, err error) { - var buffer [1024]byte - // w_ctrl() - ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, - []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - // __e2a_l() - runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, - []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) - return string(buffer[:zb]), nil - } - // __errno() - errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, - []uintptr{})))) - // __errno2() - errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, - []uintptr{})) - // strerror_r() - ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, - []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) - } else { - return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) - } -} - -func impl_Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFOAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_MkfifoatAddr() *(func(dirfd int, path string, mode uint32) (err error)) - -var Mkfifoat = enter_Mkfifoat - -func enter_Mkfifoat(dirfd int, path string, mode uint32) (err error) { - funcref := get_MkfifoatAddr() - if funcptrtest(GetZosLibVec()+SYS___MKFIFOAT_A<<4, "") == 0 { - *funcref = impl_Mkfifoat - } else { - *funcref = legacy_Mkfifoat - } - return (*funcref)(dirfd, path, mode) -} - -func legacy_Mkfifoat(dirfd int, path string, mode uint32) (err error) { - dirname, err := ZosFdToPath(dirfd) - if err != nil { - return err - } - return Mkfifo(dirname+"/"+path, mode) -} - -//sys Posix_openpt(oflag int) (fd int, err error) = SYS_POSIX_OPENPT -//sys Grantpt(fildes int) (rc int, err error) = SYS_GRANTPT -//sys Unlockpt(fildes int) (rc int, err error) = SYS_UNLOCKPT - -func fcntlAsIs(fd uintptr, cmd int, arg uintptr) (val int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), arg) - runtime.ExitSyscall() - val = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -func Fcntl(fd uintptr, cmd int, op interface{}) (ret int, err error) { - switch op.(type) { - case *Flock_t: - err = FcntlFlock(fd, cmd, op.(*Flock_t)) - if err != nil { - ret = -1 - } - return - case int: - return FcntlInt(fd, cmd, op.(int)) - case *F_cnvrt: - return fcntlAsIs(fd, cmd, uintptr(unsafe.Pointer(op.(*F_cnvrt)))) - case unsafe.Pointer: - return fcntlAsIs(fd, cmd, uintptr(op.(unsafe.Pointer))) - default: - return -1, EINVAL - } - return -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - // TODO: use LE call instead if the call is implemented - originalOffset, err := Seek(infd, 0, SEEK_CUR) - if err != nil { - return -1, err - } - //start reading data from in_fd - if offset != nil { - _, err := Seek(infd, *offset, SEEK_SET) - if err != nil { - return -1, err - } - } - - buf := make([]byte, count) - readBuf := make([]byte, 0) - var n int = 0 - for i := 0; i < count; i += n { - n, err := Read(infd, buf) - if n == 0 { - if err != nil { - return -1, err - } else { // EOF - break - } - } - readBuf = append(readBuf, buf...) - buf = buf[0:0] - } - - n2, err := Write(outfd, readBuf) - if err != nil { - return -1, err - } - - //When sendfile() returns, this variable will be set to the - // offset of the byte following the last byte that was read. - if offset != nil { - *offset = *offset + int64(n) - // If offset is not NULL, then sendfile() does not modify the file - // offset of in_fd - _, err := Seek(infd, originalOffset, SEEK_SET) - if err != nil { - return -1, err - } - } - return n2, nil -} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_linux.go b/vendor/golang.org/x/sys/unix/sysvshm_linux.go deleted file mode 100644 index 4fcd38d..0000000 --- a/vendor/golang.org/x/sys/unix/sysvshm_linux.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2021 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:build linux - -package unix - -import "runtime" - -// SysvShmCtl performs control operations on the shared memory segment -// specified by id. -func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { - if runtime.GOARCH == "arm" || - runtime.GOARCH == "mips64" || runtime.GOARCH == "mips64le" { - cmd |= ipc_64 - } - - return shmctl(id, cmd, desc) -} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/vendor/golang.org/x/sys/unix/sysvshm_unix.go deleted file mode 100644 index 672d6b0..0000000 --- a/vendor/golang.org/x/sys/unix/sysvshm_unix.go +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2021 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:build (darwin && !ios) || linux || zos - -package unix - -import "unsafe" - -// SysvShmAttach attaches the Sysv shared memory segment associated with the -// shared memory identifier id. -func SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) { - addr, errno := shmat(id, addr, flag) - if errno != nil { - return nil, errno - } - - // Retrieve the size of the shared memory to enable slice creation - var info SysvShmDesc - - _, err := SysvShmCtl(id, IPC_STAT, &info) - if err != nil { - // release the shared memory if we can't find the size - - // ignoring error from shmdt as there's nothing sensible to return here - shmdt(addr) - return nil, err - } - - // Use unsafe to convert addr into a []byte. - b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz)) - return b, nil -} - -// SysvShmDetach unmaps the shared memory slice returned from SysvShmAttach. -// -// It is not safe to use the slice after calling this function. -func SysvShmDetach(data []byte) error { - if len(data) == 0 { - return EINVAL - } - - return shmdt(uintptr(unsafe.Pointer(&data[0]))) -} - -// SysvShmGet returns the Sysv shared memory identifier associated with key. -// If the IPC_CREAT flag is specified a new segment is created. -func SysvShmGet(key, size, flag int) (id int, err error) { - return shmget(key, size, flag) -} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go deleted file mode 100644 index 8b7977a..0000000 --- a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2021 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:build (darwin && !ios) || zos - -package unix - -// SysvShmCtl performs control operations on the shared memory segment -// specified by id. -func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { - return shmctl(id, cmd, desc) -} diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go deleted file mode 100644 index 7997b19..0000000 --- a/vendor/golang.org/x/sys/unix/timestruct.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -import "time" - -// TimespecToNsec returns the time stored in ts as nanoseconds. -func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } - -// NsecToTimespec converts a number of nanoseconds into a Timespec. -func NsecToTimespec(nsec int64) Timespec { - sec := nsec / 1e9 - nsec = nsec % 1e9 - if nsec < 0 { - nsec += 1e9 - sec-- - } - return setTimespec(sec, nsec) -} - -// TimeToTimespec converts t into a Timespec. -// On some 32-bit systems the range of valid Timespec values are smaller -// than that of time.Time values. So if t is out of the valid range of -// Timespec, it returns a zero Timespec and ERANGE. -func TimeToTimespec(t time.Time) (Timespec, error) { - sec := t.Unix() - nsec := int64(t.Nanosecond()) - ts := setTimespec(sec, nsec) - - // Currently all targets have either int32 or int64 for Timespec.Sec. - // If there were a new target with floating point type for it, we have - // to consider the rounding error. - if int64(ts.Sec) != sec { - return Timespec{}, ERANGE - } - return ts, nil -} - -// TimevalToNsec returns the time stored in tv as nanoseconds. -func TimevalToNsec(tv Timeval) int64 { return tv.Nano() } - -// NsecToTimeval converts a number of nanoseconds into a Timeval. -func NsecToTimeval(nsec int64) Timeval { - nsec += 999 // round up to microsecond - usec := nsec % 1e9 / 1e3 - sec := nsec / 1e9 - if usec < 0 { - usec += 1e6 - sec-- - } - return setTimeval(sec, usec) -} - -// Unix returns the time stored in ts as seconds plus nanoseconds. -func (ts *Timespec) Unix() (sec int64, nsec int64) { - return int64(ts.Sec), int64(ts.Nsec) -} - -// Unix returns the time stored in tv as seconds plus nanoseconds. -func (tv *Timeval) Unix() (sec int64, nsec int64) { - return int64(tv.Sec), int64(tv.Usec) * 1000 -} - -// Nano returns the time stored in ts as nanoseconds. -func (ts *Timespec) Nano() int64 { - return int64(ts.Sec)*1e9 + int64(ts.Nsec) -} - -// Nano returns the time stored in tv as nanoseconds. -func (tv *Timeval) Nano() int64 { - return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 -} diff --git a/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/vendor/golang.org/x/sys/unix/unveil_openbsd.go deleted file mode 100644 index cb7e598..0000000 --- a/vendor/golang.org/x/sys/unix/unveil_openbsd.go +++ /dev/null @@ -1,51 +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 unix - -import "fmt" - -// Unveil implements the unveil syscall. -// For more information see unveil(2). -// Note that the special case of blocking further -// unveil calls is handled by UnveilBlock. -func Unveil(path string, flags string) error { - if err := supportsUnveil(); err != nil { - return err - } - pathPtr, err := BytePtrFromString(path) - if err != nil { - return err - } - flagsPtr, err := BytePtrFromString(flags) - if err != nil { - return err - } - return unveil(pathPtr, flagsPtr) -} - -// UnveilBlock blocks future unveil calls. -// For more information see unveil(2). -func UnveilBlock() error { - if err := supportsUnveil(); err != nil { - return err - } - return unveil(nil, nil) -} - -// supportsUnveil checks for availability of the unveil(2) system call based -// on the running OpenBSD version. -func supportsUnveil() error { - maj, min, err := majmin() - if err != nil { - return err - } - - // unveil is not available before 6.4 - if maj < 6 || (maj == 6 && min <= 3) { - return fmt.Errorf("cannot call Unveil on OpenBSD %d.%d", maj, min) - } - - return nil -} diff --git a/vendor/golang.org/x/sys/unix/vgetrandom_linux.go b/vendor/golang.org/x/sys/unix/vgetrandom_linux.go deleted file mode 100644 index 07ac8e0..0000000 --- a/vendor/golang.org/x/sys/unix/vgetrandom_linux.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2024 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:build linux && go1.24 - -package unix - -import _ "unsafe" - -//go:linkname vgetrandom runtime.vgetrandom -//go:noescape -func vgetrandom(p []byte, flags uint32) (ret int, supported bool) diff --git a/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go b/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go deleted file mode 100644 index 297e97b..0000000 --- a/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 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:build !linux || !go1.24 - -package unix - -func vgetrandom(p []byte, flags uint32) (ret int, supported bool) { - return -1, false -} diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go deleted file mode 100644 index e168793..0000000 --- a/vendor/golang.org/x/sys/unix/xattr_bsd.go +++ /dev/null @@ -1,280 +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. - -//go:build freebsd || netbsd - -package unix - -import ( - "strings" - "unsafe" -) - -// Derive extattr namespace and attribute name - -func xattrnamespace(fullattr string) (ns int, attr string, err error) { - s := strings.IndexByte(fullattr, '.') - if s == -1 { - return -1, "", ENOATTR - } - - namespace := fullattr[0:s] - attr = fullattr[s+1:] - - switch namespace { - case "user": - return EXTATTR_NAMESPACE_USER, attr, nil - case "system": - return EXTATTR_NAMESPACE_SYSTEM, attr, nil - default: - return -1, "", ENOATTR - } -} - -func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { - if len(dest) > idx { - return unsafe.Pointer(&dest[idx]) - } - if dest != nil { - // extattr_get_file and extattr_list_file treat NULL differently from - // a non-NULL pointer of length zero. Preserve the property of nilness, - // even if we can't use dest directly. - return unsafe.Pointer(&_zero) - } - return nil -} - -// FreeBSD and NetBSD implement their own syscalls to handle extended attributes - -func Getxattr(file string, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetFile(file, nsid, a, uintptr(d), destsize) -} - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize) -} - -func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetLink(link, nsid, a, uintptr(d), destsize) -} - -// flags are unused on FreeBSD - -func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz) - return -} - -func Setxattr(file string, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz) - return -} - -func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz) - return -} - -func Removexattr(file string, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteFile(file, nsid, a) - return -} - -func Fremovexattr(fd int, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteFd(fd, nsid, a) - return -} - -func Lremovexattr(link string, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteLink(link, nsid, a) - return -} - -func Listxattr(file string, dest []byte) (sz int, err error) { - destsiz := len(dest) - - // FreeBSD won't allow you to list xattrs from multiple namespaces - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ListxattrNS(file, nsid, dest[pos:]) - - /* Errors accessing system attrs are ignored so that - * we can implement the Linux-like behavior of omitting errors that - * we don't have read permissions on - * - * Linux will still error if we ask for user attributes on a file that - * we don't have read permissions on, so don't ignore those errors - */ - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - destsiz := len(dest) - - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := FlistxattrNS(fd, nsid, dest[pos:]) - - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} - -func Llistxattr(link string, dest []byte) (sz int, err error) { - destsiz := len(dest) - - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := LlistxattrNS(link, nsid, dest[pos:]) - - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go deleted file mode 100644 index 2fb219d..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +++ /dev/null @@ -1,1384 +0,0 @@ -// mkerrors.sh -maix32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && aix - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -maix32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BYPASS = 0x19 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_INTF = 0x14 - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x1e - AF_NDD = 0x17 - AF_NETWARE = 0x16 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_RIF = 0x15 - AF_ROUTE = 0x11 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x400000 - ARPHRD_802_3 = 0x6 - ARPHRD_802_5 = 0x6 - ARPHRD_ETHER = 0x1 - ARPHRD_FDDI = 0x1 - B0 = 0x0 - B110 = 0x3 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2400 = 0xb - B300 = 0x7 - B38400 = 0xf - B4800 = 0xc - B50 = 0x1 - B600 = 0x8 - B75 = 0x2 - B9600 = 0xd - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x1000 - BSDLY = 0x1000 - CAP_AACCT = 0x6 - CAP_ARM_APPLICATION = 0x5 - CAP_BYPASS_RAC_VMM = 0x3 - CAP_CLEAR = 0x0 - CAP_CREDENTIALS = 0x7 - CAP_EFFECTIVE = 0x1 - CAP_EWLM_AGENT = 0x4 - CAP_INHERITABLE = 0x2 - CAP_MAXIMUM = 0x7 - CAP_NUMA_ATTACH = 0x2 - CAP_PERMITTED = 0x3 - CAP_PROPAGATE = 0x1 - CAP_PROPOGATE = 0x1 - CAP_SET = 0x1 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_MONOTONIC = 0xa - CLOCK_PROCESS_CPUTIME_ID = 0xb - CLOCK_REALTIME = 0x9 - CLOCK_THREAD_CPUTIME_ID = 0xc - CR0 = 0x0 - CR1 = 0x100 - CR2 = 0x200 - CR3 = 0x300 - CRDLY = 0x300 - CREAD = 0x80 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIOCGIFCONF = -0x3ff796dc - CSIZE = 0x30 - CSMAP_DIR = "/usr/lib/nls/csmap/" - CSTART = '\021' - CSTOP = '\023' - CSTOPB = 0x40 - CSUSP = 0x1a - ECHO = 0x8 - ECHOCTL = 0x20000 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x80000 - ECHONL = 0x40 - ECHOPRT = 0x40000 - ECH_ICMPID = 0x2 - ETHERNET_CSMACD = 0x6 - EVENP = 0x80 - EXCONTINUE = 0x0 - EXDLOK = 0x3 - EXIO = 0x2 - EXPGIO = 0x0 - EXRESUME = 0x2 - EXRETURN = 0x1 - EXSIG = 0x4 - EXTA = 0xe - EXTB = 0xf - EXTRAP = 0x1 - EYEC_RTENTRYA = 0x257274656e747241 - EYEC_RTENTRYF = 0x257274656e747246 - E_ACC = 0x0 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0xfffe - FF0 = 0x0 - FF1 = 0x2000 - FFDLY = 0x2000 - FLUSHBAND = 0x40 - FLUSHLOW = 0x8 - FLUSHO = 0x100000 - FLUSHR = 0x1 - FLUSHRW = 0x3 - FLUSHW = 0x2 - F_CLOSEM = 0xa - F_DUP2FD = 0xe - F_DUPFD = 0x0 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x5 - F_GETLK64 = 0xb - F_GETOWN = 0x8 - F_LOCK = 0x1 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x6 - F_SETLK64 = 0xc - F_SETLKW = 0x7 - F_SETLKW64 = 0xd - F_SETOWN = 0x9 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_TSTLK = 0xf - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x26 - ICMP6_SEC_SEND_DEL = 0x46 - ICMP6_SEC_SEND_GET = 0x47 - ICMP6_SEC_SEND_SET = 0x44 - ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 - ICRNL = 0x100 - IEXTEN = 0x200000 - IFA_FIRSTALIAS = 0x2000 - IFA_ROUTE = 0x1 - IFF_64BIT = 0x4000000 - IFF_ALLCAST = 0x20000 - IFF_ALLMULTI = 0x200 - IFF_BPF = 0x8000000 - IFF_BRIDGE = 0x40000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x80c52 - IFF_CHECKSUM_OFFLOAD = 0x10000000 - IFF_D1 = 0x8000 - IFF_D2 = 0x4000 - IFF_D3 = 0x2000 - IFF_D4 = 0x1000 - IFF_DEBUG = 0x4 - IFF_DEVHEALTH = 0x4000 - IFF_DO_HW_LOOPBACK = 0x10000 - IFF_GROUP_ROUTING = 0x2000000 - IFF_IFBUFMGT = 0x800000 - IFF_LINK0 = 0x100000 - IFF_LINK1 = 0x200000 - IFF_LINK2 = 0x400000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x80000 - IFF_NOARP = 0x80 - IFF_NOECHO = 0x800 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_PSEG = 0x40000000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SNAP = 0x8000 - IFF_TCP_DISABLE_CKSUM = 0x20000000 - IFF_TCP_NOCKSUM = 0x1000000 - IFF_UP = 0x1 - IFF_VIPA = 0x80000000 - IFNAMSIZ = 0x10 - IFO_FLUSH = 0x1 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_CLUSTER = 0x3e - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FCS = 0x3a - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIFTUNNEL = 0x3c - IFT_HDH1822 = 0x3 - IFT_HF = 0x3d - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SN = 0x38 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SP = 0x39 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TUNNEL = 0x3b - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_VIPA = 0x37 - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x10000 - 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_USE = 0x1 - IPPROTO_AH = 0x33 - IPPROTO_BIP = 0x53 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GIF = 0x8c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_LOCAL = 0x3f - IPPROTO_MAX = 0x100 - IPPROTO_MH = 0x87 - IPPROTO_NONE = 0x3b - IPPROTO_PUP = 0xc - IPPROTO_QOS = 0x2d - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_ADDRFORM = 0x16 - IPV6_ADDR_PREFERENCES = 0x4a - IPV6_ADD_MEMBERSHIP = 0xc - IPV6_AIXRAWSOCKET = 0x39 - IPV6_CHECKSUM = 0x27 - IPV6_DONTFRAG = 0x2d - IPV6_DROP_MEMBERSHIP = 0xd - IPV6_DSTOPTS = 0x36 - IPV6_FLOWINFO_FLOWLABEL = 0xffffff - IPV6_FLOWINFO_PRIFLOW = 0xfffffff - IPV6_FLOWINFO_PRIORITY = 0xf000000 - IPV6_FLOWINFO_SRFLAG = 0x10000000 - IPV6_FLOWINFO_VERSION = 0xf0000000 - IPV6_HOPLIMIT = 0x28 - IPV6_HOPOPTS = 0x34 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MIPDSTOPTS = 0x36 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_NOPROBE = 0x1c - IPV6_PATHMTU = 0x2e - IPV6_PKTINFO = 0x21 - IPV6_PKTOPTIONS = 0x24 - IPV6_PRIORITY_10 = 0xa000000 - IPV6_PRIORITY_11 = 0xb000000 - IPV6_PRIORITY_12 = 0xc000000 - IPV6_PRIORITY_13 = 0xd000000 - IPV6_PRIORITY_14 = 0xe000000 - IPV6_PRIORITY_15 = 0xf000000 - IPV6_PRIORITY_8 = 0x8000000 - IPV6_PRIORITY_9 = 0x9000000 - IPV6_PRIORITY_BULK = 0x4000000 - IPV6_PRIORITY_CONTROL = 0x7000000 - IPV6_PRIORITY_FILLER = 0x1000000 - IPV6_PRIORITY_INTERACTIVE = 0x6000000 - IPV6_PRIORITY_RESERVED1 = 0x3000000 - IPV6_PRIORITY_RESERVED2 = 0x5000000 - IPV6_PRIORITY_UNATTENDED = 0x2000000 - IPV6_PRIORITY_UNCHARACTERIZED = 0x0 - IPV6_RECVDSTOPTS = 0x38 - IPV6_RECVHOPLIMIT = 0x29 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVHOPS = 0x22 - IPV6_RECVIF = 0x1e - IPV6_RECVPATHMTU = 0x2f - IPV6_RECVPKTINFO = 0x23 - IPV6_RECVRTHDR = 0x33 - IPV6_RECVSRCRT = 0x1d - IPV6_RECVTCLASS = 0x2a - IPV6_RTHDR = 0x32 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RTHDR_TYPE_2 = 0x2 - IPV6_SENDIF = 0x1f - IPV6_SRFLAG_LOOSE = 0x0 - IPV6_SRFLAG_STRICT = 0x10000000 - IPV6_TCLASS = 0x2b - IPV6_TOKEN_LENGTH = 0x40 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2c - IPV6_V6ONLY = 0x25 - IPV6_VERSION = 0x60000000 - IP_ADDRFORM = 0x16 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x3c - IP_BLOCK_SOURCE = 0x3a - IP_BROADCAST_IF = 0x10 - IP_CACHE_LINE_SIZE = 0x80 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPMODE = 0x11 - IP_DONTFRAG = 0x19 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x3d - IP_FINDPMTU = 0x1a - IP_HDRINCL = 0x2 - IP_INC_MEMBERSHIPS = 0x14 - IP_INIT_MEMBERSHIP = 0x14 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_HOPS = 0xa - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OPT = 0x1b - IP_OPTIONS = 0x1 - IP_PMTUAGE = 0x1b - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVIFINFO = 0xf - IP_RECVINTERFACE = 0x20 - IP_RECVMACHDR = 0xe - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x22 - IP_RETOPTS = 0x8 - IP_SOURCE_FILTER = 0x48 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x3b - IP_UNICAST_HOPS = 0x4 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x800 - IXANY = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - I_FLUSH = 0x20005305 - LNOFLSH = 0x8000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x10 - MAP_ANONYMOUS = 0x10 - MAP_FILE = 0x0 - MAP_FIXED = 0x100 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_TYPE = 0xf0 - MAP_VARIABLE = 0x0 - MCAST_BLOCK_SOURCE = 0x40 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x3e - MCAST_JOIN_SOURCE_GROUP = 0x42 - MCAST_LEAVE_GROUP = 0x3f - MCAST_LEAVE_SOURCE_GROUP = 0x43 - MCAST_SOURCE_FILTER = 0x49 - MCAST_UNBLOCK_SOURCE = 0x41 - MCL_CURRENT = 0x100 - MCL_FUTURE = 0x200 - MSG_ANY = 0x4 - MSG_ARGEXT = 0x400 - MSG_BAND = 0x2 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_EOR = 0x8 - MSG_HIPRI = 0x1 - MSG_MAXIOVLEN = 0x10 - MSG_MPEG2 = 0x80 - MSG_NONBLOCK = 0x4000 - MSG_NOSIGNAL = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x200 - MS_ASYNC = 0x10 - MS_EINTR = 0x80 - MS_INVALIDATE = 0x40 - MS_PER_SEC = 0x3e8 - MS_SYNC = 0x20 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x4000 - NL2 = 0x8000 - NL3 = 0xc000 - NLDLY = 0x4000 - NOFLSH = 0x80 - NOFLUSH = 0x80000000 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - ONOEOT = 0x80000 - OPOST = 0x1 - OXTABS = 0x40000 - O_ACCMODE = 0x23 - O_APPEND = 0x8 - O_CIO = 0x80 - O_CIOR = 0x800000000 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DEFER = 0x2000 - O_DELAY = 0x4000 - O_DIRECT = 0x8000000 - O_DIRECTORY = 0x80000 - O_DSYNC = 0x400000 - O_EFSOFF = 0x400000000 - O_EFSON = 0x200000000 - O_EXCL = 0x400 - O_EXEC = 0x20 - O_LARGEFILE = 0x4000000 - O_NDELAY = 0x8000 - O_NOCACHE = 0x100000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x1000000 - O_NONBLOCK = 0x4 - O_NONE = 0x3 - O_NSHARE = 0x10000 - O_RAW = 0x100000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSHARE = 0x1000 - O_RSYNC = 0x200000 - O_SEARCH = 0x20 - O_SNAPSHOT = 0x40 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_TTY_INIT = 0x0 - O_WRONLY = 0x1 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_64BIT = 0x20 - PR_ADDR = 0x2 - PR_ARGEXT = 0x400 - PR_ATOMIC = 0x1 - PR_CONNREQUIRED = 0x4 - PR_FASTHZ = 0x5 - PR_INP = 0x40 - PR_INTRLEVEL = 0x8000 - PR_MLS = 0x100 - PR_MLS_1_LABEL = 0x200 - PR_NOEOR = 0x4000 - PR_RIGHTS = 0x10 - PR_SLOWHZ = 0x2 - PR_WANTRCVD = 0x8 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x9 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DOWNSTREAM = 0x100 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTC_IA64 = 0x3 - RTC_POWER = 0x1 - RTC_POWER_PC = 0x2 - RTF_ACTIVE_DGD = 0x1000000 - RTF_BCE = 0x80000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_BUL = 0x2000 - RTF_CLONE = 0x10000 - RTF_CLONED = 0x20000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FREE_IN_PROG = 0x4000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PERMANENT6 = 0x8000000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_SMALLMTU = 0x40000 - RTF_STATIC = 0x800 - RTF_STOPSRCH = 0x2000000 - RTF_UNREACHABLE = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_EXPIRE = 0xf - RTM_GET = 0x4 - RTM_GETNEXT = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTLOST = 0x10 - RTM_RTTUNIT = 0xf4240 - RTM_SAMEADDR = 0x12 - RTM_SET = 0x13 - RTM_VERSION = 0x2 - RTM_VERSION_GR = 0x4 - RTM_VERSION_GR_COMPAT = 0x3 - RTM_VERSION_POLICY = 0x5 - RTM_VERSION_POLICY_EXT = 0x6 - RTM_VERSION_POLICY_PRFN = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIGMAX64 = 0xff - SIGQUEUE_MAX = 0x20 - SIOCADDIFVIPA = 0x20006942 - SIOCADDMTU = -0x7ffb9690 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDNETID = -0x7fd796a9 - SIOCADDRT = -0x7fcf8df6 - SIOCAIFADDR = -0x7fbf96e6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fb396e0 - SIOCDELIFVIPA = 0x20006943 - SIOCDELMTU = -0x7ffb968f - SIOCDELMULTI = -0x7fdf96ce - SIOCDELPMTU = -0x7fd78ff6 - SIOCDELRT = -0x7fcf8df5 - SIOCDIFADDR = -0x7fd796e7 - SIOCDNETOPT = -0x3ffe9680 - SIOCDX25XLATE = -0x7fd7969b - SIOCFIFADDR = -0x7fdf966d - SIOCGARP = -0x3fb396da - SIOCGETMTUS = 0x2000696f - SIOCGETSGCNT = -0x3feb8acc - SIOCGETVIFCNT = -0x3feb8acd - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fd796df - SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fdf9669 - SIOCGIFBRDADDR = -0x3fd796dd - SIOCGIFCONF = -0x3ff796bb - SIOCGIFCONFGLOB = -0x3ff79670 - SIOCGIFDSTADDR = -0x3fd796de - SIOCGIFFLAGS = -0x3fd796ef - SIOCGIFGIDLIST = 0x20006968 - SIOCGIFHWADDR = -0x3fab966b - SIOCGIFMETRIC = -0x3fd796e9 - SIOCGIFMTU = -0x3fd796aa - SIOCGIFNETMASK = -0x3fd796db - SIOCGIFOPTIONS = -0x3fd796d6 - SIOCGISNO = -0x3fd79695 - SIOCGLOADF = -0x3ffb967e - SIOCGLOWAT = 0x40047303 - SIOCGNETOPT = -0x3ffe96a5 - SIOCGNETOPT1 = -0x3fdf967f - SIOCGNMTUS = 0x2000696e - SIOCGPGRP = 0x40047309 - SIOCGSIZIFCONF = 0x4004696a - SIOCGSRCFILTER = -0x3fe796cb - SIOCGTUNEPHASE = -0x3ffb9676 - SIOCGX25XLATE = -0x3fd7969c - SIOCIFATTACH = -0x7fdf9699 - SIOCIFDETACH = -0x7fdf969a - SIOCIFGETPKEY = -0x7fdf969b - SIOCIF_ATM_DARP = -0x7fdf9683 - SIOCIF_ATM_DUMPARP = -0x7fdf9685 - SIOCIF_ATM_GARP = -0x7fdf9682 - SIOCIF_ATM_IDLE = -0x7fdf9686 - SIOCIF_ATM_SARP = -0x7fdf9681 - SIOCIF_ATM_SNMPARP = -0x7fdf9687 - SIOCIF_ATM_SVC = -0x7fdf9684 - SIOCIF_ATM_UBR = -0x7fdf9688 - SIOCIF_DEVHEALTH = -0x7ffb966c - SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 - SIOCIF_IB_ARP_TIMER = -0x7fdf9678 - SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f - SIOCIF_IB_DEL_ARP = -0x7fdf967f - SIOCIF_IB_DEL_PINFO = -0x3fdf9670 - SIOCIF_IB_DUMP_ARP = -0x7fdf9680 - SIOCIF_IB_GET_ARP = -0x7fdf967e - SIOCIF_IB_GET_INFO = -0x3f879675 - SIOCIF_IB_GET_STATS = -0x3f879672 - SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a - SIOCIF_IB_RESET_STATS = -0x3f879671 - SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 - SIOCIF_IB_SET_ARP = -0x7fdf967d - SIOCIF_IB_SET_PKEY = -0x7fdf967c - SIOCIF_IB_SET_PORT = -0x7fdf967b - SIOCIF_IB_SET_QKEY = -0x7fdf9676 - SIOCIF_IB_SET_QSIZE = -0x7fdf967a - SIOCLISTIFVIPA = 0x20006944 - SIOCSARP = -0x7fb396e2 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = -0x7fd796f4 - SIOCSIFADDRORI = -0x7fdb9673 - SIOCSIFBRDADDR = -0x7fd796ed - SIOCSIFDSTADDR = -0x7fd796f2 - SIOCSIFFLAGS = -0x7fd796f0 - SIOCSIFGIDLIST = 0x20006969 - SIOCSIFMETRIC = -0x7fd796e8 - SIOCSIFMTU = -0x7fd796a8 - SIOCSIFNETDUMP = -0x7fd796e4 - SIOCSIFNETMASK = -0x7fd796ea - SIOCSIFOPTIONS = -0x7fd796d7 - SIOCSIFSUBCHAN = -0x7fd796e5 - SIOCSISNO = -0x7fd79694 - SIOCSLOADF = -0x3ffb967d - SIOCSLOWAT = 0x80047302 - SIOCSNETOPT = -0x7ffe96a6 - SIOCSPGRP = 0x80047308 - SIOCSX25XLATE = -0x7fd7969d - SOCK_CONN_DGRAM = 0x6 - SOCK_DGRAM = 0x2 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x400 - SO_ACCEPTCONN = 0x2 - SO_AUDIT = 0x8000 - SO_BROADCAST = 0x20 - SO_CKSUMRECV = 0x800 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_KERNACCEPT = 0x2000 - SO_LINGER = 0x80 - SO_NOMULTIPATH = 0x4000 - SO_NOREUSEADDR = 0x1000 - SO_OOBINLINE = 0x100 - SO_PEERID = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMPNS = 0x100a - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USE_IFBUFS = 0x400 - S_BANDURG = 0x400 - S_EMODFMT = 0x3c000000 - S_ENFMT = 0x400 - S_ERROR = 0x100 - S_HANGUP = 0x200 - S_HIPRI = 0x2 - S_ICRYPTO = 0x80000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFJOURNAL = 0x10000 - S_IFLNK = 0xa000 - S_IFMPX = 0x2200 - S_IFMT = 0xf000 - S_IFPDIR = 0x4000000 - S_IFPSDIR = 0x8000000 - S_IFPSSDIR = 0xc000000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFSYSEA = 0x30000000 - S_INPUT = 0x1 - 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_ISUID = 0x800 - S_ISVTX = 0x200 - S_ITCB = 0x1000000 - S_ITP = 0x800000 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXACL = 0x2000000 - S_IXATTR = 0x40000 - S_IXGRP = 0x8 - S_IXINTERFACE = 0x100000 - S_IXMOD = 0x40000000 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_MSG = 0x8 - S_OUTPUT = 0x4 - S_RDBAND = 0x20 - S_RDNORM = 0x10 - S_RESERVED1 = 0x20000 - S_RESERVED2 = 0x200000 - S_RESERVED3 = 0x400000 - S_RESERVED4 = 0x80000000 - S_RESFMT1 = 0x10000000 - S_RESFMT10 = 0x34000000 - S_RESFMT11 = 0x38000000 - S_RESFMT12 = 0x3c000000 - S_RESFMT2 = 0x14000000 - S_RESFMT3 = 0x18000000 - S_RESFMT4 = 0x1c000000 - S_RESFMT5 = 0x20000000 - S_RESFMT6 = 0x24000000 - S_RESFMT7 = 0x28000000 - S_RESFMT8 = 0x2c000000 - S_WRBAND = 0x80 - S_WRNORM = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x540c - TCGETA = 0x5405 - TCGETS = 0x5401 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 - TCP_ACLADD = 0x23 - TCP_ACLBIND = 0x26 - TCP_ACLCLEAR = 0x22 - TCP_ACLDEL = 0x24 - TCP_ACLDENY = 0x8 - TCP_ACLFLUSH = 0x21 - TCP_ACLGID = 0x1 - TCP_ACLLS = 0x25 - TCP_ACLSUBNET = 0x4 - TCP_ACLUID = 0x2 - TCP_CWND_DF = 0x16 - TCP_CWND_IF = 0x15 - TCP_DELAY_ACK_FIN = 0x2 - TCP_DELAY_ACK_SYN = 0x1 - TCP_FASTNAME = 0x101080a - TCP_KEEPCNT = 0x13 - TCP_KEEPIDLE = 0x11 - TCP_KEEPINTVL = 0x12 - TCP_LSPRIV = 0x29 - TCP_LUID = 0x20 - TCP_MAXBURST = 0x8 - TCP_MAXDF = 0x64 - TCP_MAXIF = 0x64 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAXWINDOWSCALE = 0xe - TCP_MAX_SACK = 0x4 - TCP_MSS = 0x5b4 - TCP_NODELAY = 0x1 - TCP_NODELAYACK = 0x14 - TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 - TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 - TCP_NOTENTER_SSTART = 0x17 - TCP_OPT = 0x19 - TCP_RFC1323 = 0x4 - TCP_SETPRIV = 0x27 - TCP_STDURG = 0x10 - TCP_TIMESTAMP_OPTLEN = 0xc - TCP_UNSETPRIV = 0x28 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETSF = 0x5404 - TCSETSW = 0x5403 - TCXONC = 0x540b - TIMER_ABSTIME = 0x3e7 - TIMER_MAX = 0x20 - TIOC = 0x5400 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCEXCL = 0x2000740d - TIOCFLUSH = 0x80047410 - TIOCGETC = 0x40067412 - TIOCGETD = 0x40047400 - TIOCGETP = 0x40067408 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047448 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCHPCL = 0x20007402 - TIOCLBIC = 0x8004747e - TIOCLBIS = 0x8004747f - TIOCLGET = 0x4004747c - TIOCLSET = 0x8004747d - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x80047464 - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - 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_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSDTR = 0x20007479 - TIOCSETC = 0x80067411 - TIOCSETD = 0x80047401 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x10000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x3 - VDISCRD = 0xc - VDSUSP = 0xa - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xe - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0x7 - VSTOP = 0x8 - VSTRT = 0x7 - VSUSP = 0x9 - VT0 = 0x0 - VT1 = 0x8000 - VTDELAY = 0x2000 - VTDLY = 0x8000 - VTIME = 0x5 - VWERSE = 0xd - WPARSTART = 0x1 - WPARSTOP = 0x2 - WPARTTYNAME = "Global" - XCASE = 0x4 - XTABS = 0xc00 - _FDATAFLUSH = 0x2000000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x43) - EADDRNOTAVAIL = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x42) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x38) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x78) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x75) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECLONEME = syscall.Errno(0x52) - ECONNABORTED = syscall.Errno(0x48) - ECONNREFUSED = syscall.Errno(0x4f) - ECONNRESET = syscall.Errno(0x49) - ECORRUPT = syscall.Errno(0x59) - EDEADLK = syscall.Errno(0x2d) - EDESTADDREQ = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x3a) - EDIST = syscall.Errno(0x35) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x58) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFORMAT = syscall.Errno(0x30) - EHOSTDOWN = syscall.Errno(0x50) - EHOSTUNREACH = syscall.Errno(0x51) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x74) - EINPROGRESS = syscall.Errno(0x37) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x4b) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x55) - EMEDIA = syscall.Errno(0x6e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x3b) - EMULTIHOP = syscall.Errno(0x7d) - ENAMETOOLONG = syscall.Errno(0x56) - ENETDOWN = syscall.Errno(0x45) - ENETRESET = syscall.Errno(0x47) - ENETUNREACH = syscall.Errno(0x46) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x70) - ENOBUFS = syscall.Errno(0x4a) - ENOCONNECT = syscall.Errno(0x32) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x7a) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x31) - ENOLINK = syscall.Errno(0x7e) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENOPROTOOPT = syscall.Errno(0x3d) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x76) - ENOSTR = syscall.Errno(0x7b) - ENOSYS = syscall.Errno(0x6d) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x4c) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x11) - ENOTREADY = syscall.Errno(0x2e) - ENOTRECOVERABLE = syscall.Errno(0x5e) - ENOTRUST = syscall.Errno(0x72) - ENOTSOCK = syscall.Errno(0x39) - ENOTSUP = syscall.Errno(0x7c) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x40) - EOVERFLOW = syscall.Errno(0x7f) - EOWNERDEAD = syscall.Errno(0x5f) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x41) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x53) - EPROTO = syscall.Errno(0x79) - EPROTONOSUPPORT = syscall.Errno(0x3e) - EPROTOTYPE = syscall.Errno(0x3c) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x5d) - ERESTART = syscall.Errno(0x52) - EROFS = syscall.Errno(0x1e) - ESAD = syscall.Errno(0x71) - ESHUTDOWN = syscall.Errno(0x4d) - ESOCKTNOSUPPORT = syscall.Errno(0x3f) - ESOFT = syscall.Errno(0x6f) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x34) - ESYSERROR = syscall.Errno(0x5a) - ETIME = syscall.Errno(0x77) - ETIMEDOUT = syscall.Errno(0x4e) - ETOOMANYREFS = syscall.Errno(0x73) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x54) - EWOULDBLOCK = syscall.Errno(0xb) - EWRPROTECT = syscall.Errno(0x2f) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGAIO = syscall.Signal(0x17) - SIGALRM = syscall.Signal(0xe) - SIGALRM1 = syscall.Signal(0x26) - SIGBUS = syscall.Signal(0xa) - SIGCAPI = syscall.Signal(0x31) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGCPUFAIL = syscall.Signal(0x3b) - SIGDANGER = syscall.Signal(0x21) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGGRANT = syscall.Signal(0x3c) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOINT = syscall.Signal(0x10) - SIGIOT = syscall.Signal(0x6) - SIGKAP = syscall.Signal(0x3c) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x6) - SIGMAX = syscall.Signal(0x3f) - SIGMAX32 = syscall.Signal(0x3f) - SIGMIGRATE = syscall.Signal(0x23) - SIGMSG = syscall.Signal(0x1b) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x17) - SIGPRE = syscall.Signal(0x24) - SIGPROF = syscall.Signal(0x20) - SIGPTY = syscall.Signal(0x17) - SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGRECONFIG = syscall.Signal(0x3a) - SIGRETRACT = syscall.Signal(0x3d) - SIGSAK = syscall.Signal(0x3f) - SIGSEGV = syscall.Signal(0xb) - SIGSOUND = syscall.Signal(0x3e) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGSYSERROR = syscall.Signal(0x30) - SIGTALRM = syscall.Signal(0x26) - SIGTERM = syscall.Signal(0xf) - 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) - SIGVIRT = syscall.Signal(0x25) - SIGVTALRM = syscall.Signal(0x22) - SIGWAITING = syscall.Signal(0x27) - 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", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EWOULDBLOCK", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "ENOTEMPTY", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "not a typewriter"}, - {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", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock condition if locked"}, - {46, "ENOTREADY", "device not ready"}, - {47, "EWRPROTECT", "write-protected media"}, - {48, "EFORMAT", "unformatted or incompatible media"}, - {49, "ENOLCK", "no locks available"}, - {50, "ENOCONNECT", "cannot Establish Connection"}, - {52, "ESTALE", "missing file or filesystem"}, - {53, "EDIST", "requests blocked by Administrator"}, - {55, "EINPROGRESS", "operation now in progress"}, - {56, "EALREADY", "operation already in progress"}, - {57, "ENOTSOCK", "socket operation on non-socket"}, - {58, "EDESTADDREQ", "destination address required"}, - {59, "EMSGSIZE", "message too long"}, - {60, "EPROTOTYPE", "protocol wrong type for socket"}, - {61, "ENOPROTOOPT", "protocol not available"}, - {62, "EPROTONOSUPPORT", "protocol not supported"}, - {63, "ESOCKTNOSUPPORT", "socket type not supported"}, - {64, "EOPNOTSUPP", "operation not supported on socket"}, - {65, "EPFNOSUPPORT", "protocol family not supported"}, - {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, - {67, "EADDRINUSE", "address already in use"}, - {68, "EADDRNOTAVAIL", "can't assign requested address"}, - {69, "ENETDOWN", "network is down"}, - {70, "ENETUNREACH", "network is unreachable"}, - {71, "ENETRESET", "network dropped connection on reset"}, - {72, "ECONNABORTED", "software caused connection abort"}, - {73, "ECONNRESET", "connection reset by peer"}, - {74, "ENOBUFS", "no buffer space available"}, - {75, "EISCONN", "socket is already connected"}, - {76, "ENOTCONN", "socket is not connected"}, - {77, "ESHUTDOWN", "can't send after socket shutdown"}, - {78, "ETIMEDOUT", "connection timed out"}, - {79, "ECONNREFUSED", "connection refused"}, - {80, "EHOSTDOWN", "host is down"}, - {81, "EHOSTUNREACH", "no route to host"}, - {82, "ERESTART", "restart the system call"}, - {83, "EPROCLIM", "too many processes"}, - {84, "EUSERS", "too many users"}, - {85, "ELOOP", "too many levels of symbolic links"}, - {86, "ENAMETOOLONG", "file name too long"}, - {88, "EDQUOT", "disk quota exceeded"}, - {89, "ECORRUPT", "invalid file system control data detected"}, - {90, "ESYSERROR", "for future use "}, - {93, "EREMOTE", "item is not local to host"}, - {94, "ENOTRECOVERABLE", "state not recoverable "}, - {95, "EOWNERDEAD", "previous owner died "}, - {109, "ENOSYS", "function not implemented"}, - {110, "EMEDIA", "media surface error"}, - {111, "ESOFT", "I/O completed, but needs relocation"}, - {112, "ENOATTR", "no attribute found"}, - {113, "ESAD", "security Authentication Denied"}, - {114, "ENOTRUST", "not a Trusted Program"}, - {115, "ETOOMANYREFS", "too many references: can't splice"}, - {116, "EILSEQ", "invalid wide character"}, - {117, "ECANCELED", "asynchronous I/O cancelled"}, - {118, "ENOSR", "out of STREAMS resources"}, - {119, "ETIME", "system call timed out"}, - {120, "EBADMSG", "next message has wrong type"}, - {121, "EPROTO", "error in protocol"}, - {122, "ENODATA", "no message on stream head read q"}, - {123, "ENOSTR", "fd not associated with a stream"}, - {124, "ENOTSUP", "unsupported attribute value"}, - {125, "EMULTIHOP", "multihop is not allowed"}, - {126, "ENOLINK", "the server link has been severed"}, - {127, "EOVERFLOW", "value too large to be stored in data type"}, -} - -// 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, "SIGIOT", "IOT/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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible/complete"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {27, "SIGMSG", "input device data"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGPWR", "power-failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPROF", "profiling timer expired"}, - {33, "SIGDANGER", "paging space low"}, - {34, "SIGVTALRM", "virtual timer expired"}, - {35, "SIGMIGRATE", "signal 35"}, - {36, "SIGPRE", "signal 36"}, - {37, "SIGVIRT", "signal 37"}, - {38, "SIGTALRM", "signal 38"}, - {39, "SIGWAITING", "signal 39"}, - {48, "SIGSYSERROR", "signal 48"}, - {49, "SIGCAPI", "signal 49"}, - {58, "SIGRECONFIG", "signal 58"}, - {59, "SIGCPUFAIL", "CPU Failure Predicted"}, - {60, "SIGKAP", "monitor mode granted"}, - {61, "SIGRETRACT", "monitor mode retracted"}, - {62, "SIGSOUND", "sound completed"}, - {63, "SIGSAK", "secure attention"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go deleted file mode 100644 index b0e6f5c..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +++ /dev/null @@ -1,1385 +0,0 @@ -// mkerrors.sh -maix64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && aix - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -maix64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BYPASS = 0x19 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_INTF = 0x14 - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x1e - AF_NDD = 0x17 - AF_NETWARE = 0x16 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_RIF = 0x15 - AF_ROUTE = 0x11 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x400000 - ARPHRD_802_3 = 0x6 - ARPHRD_802_5 = 0x6 - ARPHRD_ETHER = 0x1 - ARPHRD_FDDI = 0x1 - B0 = 0x0 - B110 = 0x3 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2400 = 0xb - B300 = 0x7 - B38400 = 0xf - B4800 = 0xc - B50 = 0x1 - B600 = 0x8 - B75 = 0x2 - B9600 = 0xd - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x1000 - BSDLY = 0x1000 - CAP_AACCT = 0x6 - CAP_ARM_APPLICATION = 0x5 - CAP_BYPASS_RAC_VMM = 0x3 - CAP_CLEAR = 0x0 - CAP_CREDENTIALS = 0x7 - CAP_EFFECTIVE = 0x1 - CAP_EWLM_AGENT = 0x4 - CAP_INHERITABLE = 0x2 - CAP_MAXIMUM = 0x7 - CAP_NUMA_ATTACH = 0x2 - CAP_PERMITTED = 0x3 - CAP_PROPAGATE = 0x1 - CAP_PROPOGATE = 0x1 - CAP_SET = 0x1 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_MONOTONIC = 0xa - CLOCK_PROCESS_CPUTIME_ID = 0xb - CLOCK_REALTIME = 0x9 - CLOCK_THREAD_CPUTIME_ID = 0xc - CR0 = 0x0 - CR1 = 0x100 - CR2 = 0x200 - CR3 = 0x300 - CRDLY = 0x300 - CREAD = 0x80 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIOCGIFCONF = -0x3fef96dc - CSIZE = 0x30 - CSMAP_DIR = "/usr/lib/nls/csmap/" - CSTART = '\021' - CSTOP = '\023' - CSTOPB = 0x40 - CSUSP = 0x1a - ECHO = 0x8 - ECHOCTL = 0x20000 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x80000 - ECHONL = 0x40 - ECHOPRT = 0x40000 - ECH_ICMPID = 0x2 - ETHERNET_CSMACD = 0x6 - EVENP = 0x80 - EXCONTINUE = 0x0 - EXDLOK = 0x3 - EXIO = 0x2 - EXPGIO = 0x0 - EXRESUME = 0x2 - EXRETURN = 0x1 - EXSIG = 0x4 - EXTA = 0xe - EXTB = 0xf - EXTRAP = 0x1 - EYEC_RTENTRYA = 0x257274656e747241 - EYEC_RTENTRYF = 0x257274656e747246 - E_ACC = 0x0 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0xfffe - FF0 = 0x0 - FF1 = 0x2000 - FFDLY = 0x2000 - FLUSHBAND = 0x40 - FLUSHLOW = 0x8 - FLUSHO = 0x100000 - FLUSHR = 0x1 - FLUSHRW = 0x3 - FLUSHW = 0x2 - F_CLOSEM = 0xa - F_DUP2FD = 0xe - F_DUPFD = 0x0 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETLK64 = 0xb - F_GETOWN = 0x8 - F_LOCK = 0x1 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLK64 = 0xc - F_SETLKW = 0xd - F_SETLKW64 = 0xd - F_SETOWN = 0x9 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_TSTLK = 0xf - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x26 - ICMP6_SEC_SEND_DEL = 0x46 - ICMP6_SEC_SEND_GET = 0x47 - ICMP6_SEC_SEND_SET = 0x44 - ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 - ICRNL = 0x100 - IEXTEN = 0x200000 - IFA_FIRSTALIAS = 0x2000 - IFA_ROUTE = 0x1 - IFF_64BIT = 0x4000000 - IFF_ALLCAST = 0x20000 - IFF_ALLMULTI = 0x200 - IFF_BPF = 0x8000000 - IFF_BRIDGE = 0x40000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x80c52 - IFF_CHECKSUM_OFFLOAD = 0x10000000 - IFF_D1 = 0x8000 - IFF_D2 = 0x4000 - IFF_D3 = 0x2000 - IFF_D4 = 0x1000 - IFF_DEBUG = 0x4 - IFF_DEVHEALTH = 0x4000 - IFF_DO_HW_LOOPBACK = 0x10000 - IFF_GROUP_ROUTING = 0x2000000 - IFF_IFBUFMGT = 0x800000 - IFF_LINK0 = 0x100000 - IFF_LINK1 = 0x200000 - IFF_LINK2 = 0x400000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x80000 - IFF_NOARP = 0x80 - IFF_NOECHO = 0x800 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_PSEG = 0x40000000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SNAP = 0x8000 - IFF_TCP_DISABLE_CKSUM = 0x20000000 - IFF_TCP_NOCKSUM = 0x1000000 - IFF_UP = 0x1 - IFF_VIPA = 0x80000000 - IFNAMSIZ = 0x10 - IFO_FLUSH = 0x1 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_CLUSTER = 0x3e - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FCS = 0x3a - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIFTUNNEL = 0x3c - IFT_HDH1822 = 0x3 - IFT_HF = 0x3d - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SN = 0x38 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SP = 0x39 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TUNNEL = 0x3b - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_VIPA = 0x37 - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x10000 - 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_USE = 0x1 - IPPROTO_AH = 0x33 - IPPROTO_BIP = 0x53 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GIF = 0x8c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_LOCAL = 0x3f - IPPROTO_MAX = 0x100 - IPPROTO_MH = 0x87 - IPPROTO_NONE = 0x3b - IPPROTO_PUP = 0xc - IPPROTO_QOS = 0x2d - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_ADDRFORM = 0x16 - IPV6_ADDR_PREFERENCES = 0x4a - IPV6_ADD_MEMBERSHIP = 0xc - IPV6_AIXRAWSOCKET = 0x39 - IPV6_CHECKSUM = 0x27 - IPV6_DONTFRAG = 0x2d - IPV6_DROP_MEMBERSHIP = 0xd - IPV6_DSTOPTS = 0x36 - IPV6_FLOWINFO_FLOWLABEL = 0xffffff - IPV6_FLOWINFO_PRIFLOW = 0xfffffff - IPV6_FLOWINFO_PRIORITY = 0xf000000 - IPV6_FLOWINFO_SRFLAG = 0x10000000 - IPV6_FLOWINFO_VERSION = 0xf0000000 - IPV6_HOPLIMIT = 0x28 - IPV6_HOPOPTS = 0x34 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MIPDSTOPTS = 0x36 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_NOPROBE = 0x1c - IPV6_PATHMTU = 0x2e - IPV6_PKTINFO = 0x21 - IPV6_PKTOPTIONS = 0x24 - IPV6_PRIORITY_10 = 0xa000000 - IPV6_PRIORITY_11 = 0xb000000 - IPV6_PRIORITY_12 = 0xc000000 - IPV6_PRIORITY_13 = 0xd000000 - IPV6_PRIORITY_14 = 0xe000000 - IPV6_PRIORITY_15 = 0xf000000 - IPV6_PRIORITY_8 = 0x8000000 - IPV6_PRIORITY_9 = 0x9000000 - IPV6_PRIORITY_BULK = 0x4000000 - IPV6_PRIORITY_CONTROL = 0x7000000 - IPV6_PRIORITY_FILLER = 0x1000000 - IPV6_PRIORITY_INTERACTIVE = 0x6000000 - IPV6_PRIORITY_RESERVED1 = 0x3000000 - IPV6_PRIORITY_RESERVED2 = 0x5000000 - IPV6_PRIORITY_UNATTENDED = 0x2000000 - IPV6_PRIORITY_UNCHARACTERIZED = 0x0 - IPV6_RECVDSTOPTS = 0x38 - IPV6_RECVHOPLIMIT = 0x29 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVHOPS = 0x22 - IPV6_RECVIF = 0x1e - IPV6_RECVPATHMTU = 0x2f - IPV6_RECVPKTINFO = 0x23 - IPV6_RECVRTHDR = 0x33 - IPV6_RECVSRCRT = 0x1d - IPV6_RECVTCLASS = 0x2a - IPV6_RTHDR = 0x32 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RTHDR_TYPE_2 = 0x2 - IPV6_SENDIF = 0x1f - IPV6_SRFLAG_LOOSE = 0x0 - IPV6_SRFLAG_STRICT = 0x10000000 - IPV6_TCLASS = 0x2b - IPV6_TOKEN_LENGTH = 0x40 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2c - IPV6_V6ONLY = 0x25 - IPV6_VERSION = 0x60000000 - IP_ADDRFORM = 0x16 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x3c - IP_BLOCK_SOURCE = 0x3a - IP_BROADCAST_IF = 0x10 - IP_CACHE_LINE_SIZE = 0x80 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPMODE = 0x11 - IP_DONTFRAG = 0x19 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x3d - IP_FINDPMTU = 0x1a - IP_HDRINCL = 0x2 - IP_INC_MEMBERSHIPS = 0x14 - IP_INIT_MEMBERSHIP = 0x14 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_HOPS = 0xa - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OPT = 0x1b - IP_OPTIONS = 0x1 - IP_PMTUAGE = 0x1b - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVIFINFO = 0xf - IP_RECVINTERFACE = 0x20 - IP_RECVMACHDR = 0xe - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x22 - IP_RETOPTS = 0x8 - IP_SOURCE_FILTER = 0x48 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x3b - IP_UNICAST_HOPS = 0x4 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x800 - IXANY = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - I_FLUSH = 0x20005305 - LNOFLSH = 0x8000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x10 - MAP_ANONYMOUS = 0x10 - MAP_FILE = 0x0 - MAP_FIXED = 0x100 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_TYPE = 0xf0 - MAP_VARIABLE = 0x0 - MCAST_BLOCK_SOURCE = 0x40 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x3e - MCAST_JOIN_SOURCE_GROUP = 0x42 - MCAST_LEAVE_GROUP = 0x3f - MCAST_LEAVE_SOURCE_GROUP = 0x43 - MCAST_SOURCE_FILTER = 0x49 - MCAST_UNBLOCK_SOURCE = 0x41 - MCL_CURRENT = 0x100 - MCL_FUTURE = 0x200 - MSG_ANY = 0x4 - MSG_ARGEXT = 0x400 - MSG_BAND = 0x2 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_EOR = 0x8 - MSG_HIPRI = 0x1 - MSG_MAXIOVLEN = 0x10 - MSG_MPEG2 = 0x80 - MSG_NONBLOCK = 0x4000 - MSG_NOSIGNAL = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x200 - MS_ASYNC = 0x10 - MS_EINTR = 0x80 - MS_INVALIDATE = 0x40 - MS_PER_SEC = 0x3e8 - MS_SYNC = 0x20 - NFDBITS = 0x40 - NL0 = 0x0 - NL1 = 0x4000 - NL2 = 0x8000 - NL3 = 0xc000 - NLDLY = 0x4000 - NOFLSH = 0x80 - NOFLUSH = 0x80000000 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - ONOEOT = 0x80000 - OPOST = 0x1 - OXTABS = 0x40000 - O_ACCMODE = 0x23 - O_APPEND = 0x8 - O_CIO = 0x80 - O_CIOR = 0x800000000 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DEFER = 0x2000 - O_DELAY = 0x4000 - O_DIRECT = 0x8000000 - O_DIRECTORY = 0x80000 - O_DSYNC = 0x400000 - O_EFSOFF = 0x400000000 - O_EFSON = 0x200000000 - O_EXCL = 0x400 - O_EXEC = 0x20 - O_LARGEFILE = 0x4000000 - O_NDELAY = 0x8000 - O_NOCACHE = 0x100000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x1000000 - O_NONBLOCK = 0x4 - O_NONE = 0x3 - O_NSHARE = 0x10000 - O_RAW = 0x100000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSHARE = 0x1000 - O_RSYNC = 0x200000 - O_SEARCH = 0x20 - O_SNAPSHOT = 0x40 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_TTY_INIT = 0x0 - O_WRONLY = 0x1 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_64BIT = 0x20 - PR_ADDR = 0x2 - PR_ARGEXT = 0x400 - PR_ATOMIC = 0x1 - PR_CONNREQUIRED = 0x4 - PR_FASTHZ = 0x5 - PR_INP = 0x40 - PR_INTRLEVEL = 0x8000 - PR_MLS = 0x100 - PR_MLS_1_LABEL = 0x200 - PR_NOEOR = 0x4000 - PR_RIGHTS = 0x10 - PR_SLOWHZ = 0x2 - PR_WANTRCVD = 0x8 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x9 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DOWNSTREAM = 0x100 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTC_IA64 = 0x3 - RTC_POWER = 0x1 - RTC_POWER_PC = 0x2 - RTF_ACTIVE_DGD = 0x1000000 - RTF_BCE = 0x80000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_BUL = 0x2000 - RTF_CLONE = 0x10000 - RTF_CLONED = 0x20000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FREE_IN_PROG = 0x4000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PERMANENT6 = 0x8000000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_SMALLMTU = 0x40000 - RTF_STATIC = 0x800 - RTF_STOPSRCH = 0x2000000 - RTF_UNREACHABLE = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_EXPIRE = 0xf - RTM_GET = 0x4 - RTM_GETNEXT = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTLOST = 0x10 - RTM_RTTUNIT = 0xf4240 - RTM_SAMEADDR = 0x12 - RTM_SET = 0x13 - RTM_VERSION = 0x2 - RTM_VERSION_GR = 0x4 - RTM_VERSION_GR_COMPAT = 0x3 - RTM_VERSION_POLICY = 0x5 - RTM_VERSION_POLICY_EXT = 0x6 - RTM_VERSION_POLICY_PRFN = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIGMAX64 = 0xff - SIGQUEUE_MAX = 0x20 - SIOCADDIFVIPA = 0x20006942 - SIOCADDMTU = -0x7ffb9690 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDNETID = -0x7fd796a9 - SIOCADDRT = -0x7fc78df6 - SIOCAIFADDR = -0x7fbf96e6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fb396e0 - SIOCDELIFVIPA = 0x20006943 - SIOCDELMTU = -0x7ffb968f - SIOCDELMULTI = -0x7fdf96ce - SIOCDELPMTU = -0x7fd78ff6 - SIOCDELRT = -0x7fc78df5 - SIOCDIFADDR = -0x7fd796e7 - SIOCDNETOPT = -0x3ffe9680 - SIOCDX25XLATE = -0x7fd7969b - SIOCFIFADDR = -0x7fdf966d - SIOCGARP = -0x3fb396da - SIOCGETMTUS = 0x2000696f - SIOCGETSGCNT = -0x3feb8acc - SIOCGETVIFCNT = -0x3feb8acd - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fd796df - SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fdf9669 - SIOCGIFBRDADDR = -0x3fd796dd - SIOCGIFCONF = -0x3fef96bb - SIOCGIFCONFGLOB = -0x3fef9670 - SIOCGIFDSTADDR = -0x3fd796de - SIOCGIFFLAGS = -0x3fd796ef - SIOCGIFGIDLIST = 0x20006968 - SIOCGIFHWADDR = -0x3fab966b - SIOCGIFMETRIC = -0x3fd796e9 - SIOCGIFMTU = -0x3fd796aa - SIOCGIFNETMASK = -0x3fd796db - SIOCGIFOPTIONS = -0x3fd796d6 - SIOCGISNO = -0x3fd79695 - SIOCGLOADF = -0x3ffb967e - SIOCGLOWAT = 0x40047303 - SIOCGNETOPT = -0x3ffe96a5 - SIOCGNETOPT1 = -0x3fdf967f - SIOCGNMTUS = 0x2000696e - SIOCGPGRP = 0x40047309 - SIOCGSIZIFCONF = 0x4004696a - SIOCGSRCFILTER = -0x3fe796cb - SIOCGTUNEPHASE = -0x3ffb9676 - SIOCGX25XLATE = -0x3fd7969c - SIOCIFATTACH = -0x7fdf9699 - SIOCIFDETACH = -0x7fdf969a - SIOCIFGETPKEY = -0x7fdf969b - SIOCIF_ATM_DARP = -0x7fdf9683 - SIOCIF_ATM_DUMPARP = -0x7fdf9685 - SIOCIF_ATM_GARP = -0x7fdf9682 - SIOCIF_ATM_IDLE = -0x7fdf9686 - SIOCIF_ATM_SARP = -0x7fdf9681 - SIOCIF_ATM_SNMPARP = -0x7fdf9687 - SIOCIF_ATM_SVC = -0x7fdf9684 - SIOCIF_ATM_UBR = -0x7fdf9688 - SIOCIF_DEVHEALTH = -0x7ffb966c - SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 - SIOCIF_IB_ARP_TIMER = -0x7fdf9678 - SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f - SIOCIF_IB_DEL_ARP = -0x7fdf967f - SIOCIF_IB_DEL_PINFO = -0x3fdf9670 - SIOCIF_IB_DUMP_ARP = -0x7fdf9680 - SIOCIF_IB_GET_ARP = -0x7fdf967e - SIOCIF_IB_GET_INFO = -0x3f879675 - SIOCIF_IB_GET_STATS = -0x3f879672 - SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a - SIOCIF_IB_RESET_STATS = -0x3f879671 - SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 - SIOCIF_IB_SET_ARP = -0x7fdf967d - SIOCIF_IB_SET_PKEY = -0x7fdf967c - SIOCIF_IB_SET_PORT = -0x7fdf967b - SIOCIF_IB_SET_QKEY = -0x7fdf9676 - SIOCIF_IB_SET_QSIZE = -0x7fdf967a - SIOCLISTIFVIPA = 0x20006944 - SIOCSARP = -0x7fb396e2 - SIOCSHIWAT = 0xffffffff80047300 - SIOCSIFADDR = -0x7fd796f4 - SIOCSIFADDRORI = -0x7fdb9673 - SIOCSIFBRDADDR = -0x7fd796ed - SIOCSIFDSTADDR = -0x7fd796f2 - SIOCSIFFLAGS = -0x7fd796f0 - SIOCSIFGIDLIST = 0x20006969 - SIOCSIFMETRIC = -0x7fd796e8 - SIOCSIFMTU = -0x7fd796a8 - SIOCSIFNETDUMP = -0x7fd796e4 - SIOCSIFNETMASK = -0x7fd796ea - SIOCSIFOPTIONS = -0x7fd796d7 - SIOCSIFSUBCHAN = -0x7fd796e5 - SIOCSISNO = -0x7fd79694 - SIOCSLOADF = -0x3ffb967d - SIOCSLOWAT = 0xffffffff80047302 - SIOCSNETOPT = -0x7ffe96a6 - SIOCSPGRP = 0xffffffff80047308 - SIOCSX25XLATE = -0x7fd7969d - SOCK_CONN_DGRAM = 0x6 - SOCK_DGRAM = 0x2 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x400 - SO_ACCEPTCONN = 0x2 - SO_AUDIT = 0x8000 - SO_BROADCAST = 0x20 - SO_CKSUMRECV = 0x800 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_KERNACCEPT = 0x2000 - SO_LINGER = 0x80 - SO_NOMULTIPATH = 0x4000 - SO_NOREUSEADDR = 0x1000 - SO_OOBINLINE = 0x100 - SO_PEERID = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMPNS = 0x100a - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USE_IFBUFS = 0x400 - S_BANDURG = 0x400 - S_EMODFMT = 0x3c000000 - S_ENFMT = 0x400 - S_ERROR = 0x100 - S_HANGUP = 0x200 - S_HIPRI = 0x2 - S_ICRYPTO = 0x80000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFJOURNAL = 0x10000 - S_IFLNK = 0xa000 - S_IFMPX = 0x2200 - S_IFMT = 0xf000 - S_IFPDIR = 0x4000000 - S_IFPSDIR = 0x8000000 - S_IFPSSDIR = 0xc000000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFSYSEA = 0x30000000 - S_INPUT = 0x1 - 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_ISUID = 0x800 - S_ISVTX = 0x200 - S_ITCB = 0x1000000 - S_ITP = 0x800000 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXACL = 0x2000000 - S_IXATTR = 0x40000 - S_IXGRP = 0x8 - S_IXINTERFACE = 0x100000 - S_IXMOD = 0x40000000 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_MSG = 0x8 - S_OUTPUT = 0x4 - S_RDBAND = 0x20 - S_RDNORM = 0x10 - S_RESERVED1 = 0x20000 - S_RESERVED2 = 0x200000 - S_RESERVED3 = 0x400000 - S_RESERVED4 = 0x80000000 - S_RESFMT1 = 0x10000000 - S_RESFMT10 = 0x34000000 - S_RESFMT11 = 0x38000000 - S_RESFMT12 = 0x3c000000 - S_RESFMT2 = 0x14000000 - S_RESFMT3 = 0x18000000 - S_RESFMT4 = 0x1c000000 - S_RESFMT5 = 0x20000000 - S_RESFMT6 = 0x24000000 - S_RESFMT7 = 0x28000000 - S_RESFMT8 = 0x2c000000 - S_WRBAND = 0x80 - S_WRNORM = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x540c - TCGETA = 0x5405 - TCGETS = 0x5401 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 - TCP_ACLADD = 0x23 - TCP_ACLBIND = 0x26 - TCP_ACLCLEAR = 0x22 - TCP_ACLDEL = 0x24 - TCP_ACLDENY = 0x8 - TCP_ACLFLUSH = 0x21 - TCP_ACLGID = 0x1 - TCP_ACLLS = 0x25 - TCP_ACLSUBNET = 0x4 - TCP_ACLUID = 0x2 - TCP_CWND_DF = 0x16 - TCP_CWND_IF = 0x15 - TCP_DELAY_ACK_FIN = 0x2 - TCP_DELAY_ACK_SYN = 0x1 - TCP_FASTNAME = 0x101080a - TCP_KEEPCNT = 0x13 - TCP_KEEPIDLE = 0x11 - TCP_KEEPINTVL = 0x12 - TCP_LSPRIV = 0x29 - TCP_LUID = 0x20 - TCP_MAXBURST = 0x8 - TCP_MAXDF = 0x64 - TCP_MAXIF = 0x64 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAXWINDOWSCALE = 0xe - TCP_MAX_SACK = 0x4 - TCP_MSS = 0x5b4 - TCP_NODELAY = 0x1 - TCP_NODELAYACK = 0x14 - TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 - TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 - TCP_NOTENTER_SSTART = 0x17 - TCP_OPT = 0x19 - TCP_RFC1323 = 0x4 - TCP_SETPRIV = 0x27 - TCP_STDURG = 0x10 - TCP_TIMESTAMP_OPTLEN = 0xc - TCP_UNSETPRIV = 0x28 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETSF = 0x5404 - TCSETSW = 0x5403 - TCXONC = 0x540b - TIMER_ABSTIME = 0x3e7 - TIMER_MAX = 0x20 - TIOC = 0x5400 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0xffffffff80047462 - TIOCEXCL = 0x2000740d - TIOCFLUSH = 0xffffffff80047410 - TIOCGETC = 0x40067412 - TIOCGETD = 0x40047400 - TIOCGETP = 0x40067408 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047448 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCHPCL = 0x20007402 - TIOCLBIC = 0xffffffff8004747e - TIOCLBIS = 0xffffffff8004747f - TIOCLGET = 0x4004747c - TIOCLSET = 0xffffffff8004747d - TIOCMBIC = 0xffffffff8004746b - TIOCMBIS = 0xffffffff8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0xffffffff80047464 - TIOCMODG = 0x40047403 - TIOCMODS = 0xffffffff80047404 - TIOCMSET = 0xffffffff8004746d - 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 = 0xffffffff80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0xffffffff80047469 - TIOCSBRK = 0x2000747b - TIOCSDTR = 0x20007479 - TIOCSETC = 0xffffffff80067411 - TIOCSETD = 0xffffffff80047401 - TIOCSETN = 0xffffffff8006740a - TIOCSETP = 0xffffffff80067409 - TIOCSLTC = 0xffffffff80067475 - TIOCSPGRP = 0xffffffff80047476 - TIOCSSIZE = 0xffffffff80087467 - TIOCSTART = 0x2000746e - TIOCSTI = 0xffffffff80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0xffffffff80087467 - TIOCUCNTL = 0xffffffff80047466 - TOSTOP = 0x10000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x3 - VDISCRD = 0xc - VDSUSP = 0xa - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xe - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0x7 - VSTOP = 0x8 - VSTRT = 0x7 - VSUSP = 0x9 - VT0 = 0x0 - VT1 = 0x8000 - VTDELAY = 0x2000 - VTDLY = 0x8000 - VTIME = 0x5 - VWERSE = 0xd - WPARSTART = 0x1 - WPARSTOP = 0x2 - WPARTTYNAME = "Global" - XCASE = 0x4 - XTABS = 0xc00 - _FDATAFLUSH = 0x2000000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x43) - EADDRNOTAVAIL = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x42) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x38) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x78) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x75) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECLONEME = syscall.Errno(0x52) - ECONNABORTED = syscall.Errno(0x48) - ECONNREFUSED = syscall.Errno(0x4f) - ECONNRESET = syscall.Errno(0x49) - ECORRUPT = syscall.Errno(0x59) - EDEADLK = syscall.Errno(0x2d) - EDESTADDREQ = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x3a) - EDIST = syscall.Errno(0x35) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x58) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFORMAT = syscall.Errno(0x30) - EHOSTDOWN = syscall.Errno(0x50) - EHOSTUNREACH = syscall.Errno(0x51) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x74) - EINPROGRESS = syscall.Errno(0x37) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x4b) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x55) - EMEDIA = syscall.Errno(0x6e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x3b) - EMULTIHOP = syscall.Errno(0x7d) - ENAMETOOLONG = syscall.Errno(0x56) - ENETDOWN = syscall.Errno(0x45) - ENETRESET = syscall.Errno(0x47) - ENETUNREACH = syscall.Errno(0x46) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x70) - ENOBUFS = syscall.Errno(0x4a) - ENOCONNECT = syscall.Errno(0x32) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x7a) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x31) - ENOLINK = syscall.Errno(0x7e) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENOPROTOOPT = syscall.Errno(0x3d) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x76) - ENOSTR = syscall.Errno(0x7b) - ENOSYS = syscall.Errno(0x6d) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x4c) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x11) - ENOTREADY = syscall.Errno(0x2e) - ENOTRECOVERABLE = syscall.Errno(0x5e) - ENOTRUST = syscall.Errno(0x72) - ENOTSOCK = syscall.Errno(0x39) - ENOTSUP = syscall.Errno(0x7c) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x40) - EOVERFLOW = syscall.Errno(0x7f) - EOWNERDEAD = syscall.Errno(0x5f) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x41) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x53) - EPROTO = syscall.Errno(0x79) - EPROTONOSUPPORT = syscall.Errno(0x3e) - EPROTOTYPE = syscall.Errno(0x3c) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x5d) - ERESTART = syscall.Errno(0x52) - EROFS = syscall.Errno(0x1e) - ESAD = syscall.Errno(0x71) - ESHUTDOWN = syscall.Errno(0x4d) - ESOCKTNOSUPPORT = syscall.Errno(0x3f) - ESOFT = syscall.Errno(0x6f) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x34) - ESYSERROR = syscall.Errno(0x5a) - ETIME = syscall.Errno(0x77) - ETIMEDOUT = syscall.Errno(0x4e) - ETOOMANYREFS = syscall.Errno(0x73) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x54) - EWOULDBLOCK = syscall.Errno(0xb) - EWRPROTECT = syscall.Errno(0x2f) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGAIO = syscall.Signal(0x17) - SIGALRM = syscall.Signal(0xe) - SIGALRM1 = syscall.Signal(0x26) - SIGBUS = syscall.Signal(0xa) - SIGCAPI = syscall.Signal(0x31) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGCPUFAIL = syscall.Signal(0x3b) - SIGDANGER = syscall.Signal(0x21) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGGRANT = syscall.Signal(0x3c) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOINT = syscall.Signal(0x10) - SIGIOT = syscall.Signal(0x6) - SIGKAP = syscall.Signal(0x3c) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x6) - SIGMAX = syscall.Signal(0xff) - SIGMAX32 = syscall.Signal(0x3f) - SIGMIGRATE = syscall.Signal(0x23) - SIGMSG = syscall.Signal(0x1b) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x17) - SIGPRE = syscall.Signal(0x24) - SIGPROF = syscall.Signal(0x20) - SIGPTY = syscall.Signal(0x17) - SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGRECONFIG = syscall.Signal(0x3a) - SIGRETRACT = syscall.Signal(0x3d) - SIGSAK = syscall.Signal(0x3f) - SIGSEGV = syscall.Signal(0xb) - SIGSOUND = syscall.Signal(0x3e) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGSYSERROR = syscall.Signal(0x30) - SIGTALRM = syscall.Signal(0x26) - SIGTERM = syscall.Signal(0xf) - 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) - SIGVIRT = syscall.Signal(0x25) - SIGVTALRM = syscall.Signal(0x22) - SIGWAITING = syscall.Signal(0x27) - 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", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EWOULDBLOCK", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "ENOTEMPTY", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "not a typewriter"}, - {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", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock condition if locked"}, - {46, "ENOTREADY", "device not ready"}, - {47, "EWRPROTECT", "write-protected media"}, - {48, "EFORMAT", "unformatted or incompatible media"}, - {49, "ENOLCK", "no locks available"}, - {50, "ENOCONNECT", "cannot Establish Connection"}, - {52, "ESTALE", "missing file or filesystem"}, - {53, "EDIST", "requests blocked by Administrator"}, - {55, "EINPROGRESS", "operation now in progress"}, - {56, "EALREADY", "operation already in progress"}, - {57, "ENOTSOCK", "socket operation on non-socket"}, - {58, "EDESTADDREQ", "destination address required"}, - {59, "EMSGSIZE", "message too long"}, - {60, "EPROTOTYPE", "protocol wrong type for socket"}, - {61, "ENOPROTOOPT", "protocol not available"}, - {62, "EPROTONOSUPPORT", "protocol not supported"}, - {63, "ESOCKTNOSUPPORT", "socket type not supported"}, - {64, "EOPNOTSUPP", "operation not supported on socket"}, - {65, "EPFNOSUPPORT", "protocol family not supported"}, - {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, - {67, "EADDRINUSE", "address already in use"}, - {68, "EADDRNOTAVAIL", "can't assign requested address"}, - {69, "ENETDOWN", "network is down"}, - {70, "ENETUNREACH", "network is unreachable"}, - {71, "ENETRESET", "network dropped connection on reset"}, - {72, "ECONNABORTED", "software caused connection abort"}, - {73, "ECONNRESET", "connection reset by peer"}, - {74, "ENOBUFS", "no buffer space available"}, - {75, "EISCONN", "socket is already connected"}, - {76, "ENOTCONN", "socket is not connected"}, - {77, "ESHUTDOWN", "can't send after socket shutdown"}, - {78, "ETIMEDOUT", "connection timed out"}, - {79, "ECONNREFUSED", "connection refused"}, - {80, "EHOSTDOWN", "host is down"}, - {81, "EHOSTUNREACH", "no route to host"}, - {82, "ERESTART", "restart the system call"}, - {83, "EPROCLIM", "too many processes"}, - {84, "EUSERS", "too many users"}, - {85, "ELOOP", "too many levels of symbolic links"}, - {86, "ENAMETOOLONG", "file name too long"}, - {88, "EDQUOT", "disk quota exceeded"}, - {89, "ECORRUPT", "invalid file system control data detected"}, - {90, "ESYSERROR", "for future use "}, - {93, "EREMOTE", "item is not local to host"}, - {94, "ENOTRECOVERABLE", "state not recoverable "}, - {95, "EOWNERDEAD", "previous owner died "}, - {109, "ENOSYS", "function not implemented"}, - {110, "EMEDIA", "media surface error"}, - {111, "ESOFT", "I/O completed, but needs relocation"}, - {112, "ENOATTR", "no attribute found"}, - {113, "ESAD", "security Authentication Denied"}, - {114, "ENOTRUST", "not a Trusted Program"}, - {115, "ETOOMANYREFS", "too many references: can't splice"}, - {116, "EILSEQ", "invalid wide character"}, - {117, "ECANCELED", "asynchronous I/O cancelled"}, - {118, "ENOSR", "out of STREAMS resources"}, - {119, "ETIME", "system call timed out"}, - {120, "EBADMSG", "next message has wrong type"}, - {121, "EPROTO", "error in protocol"}, - {122, "ENODATA", "no message on stream head read q"}, - {123, "ENOSTR", "fd not associated with a stream"}, - {124, "ENOTSUP", "unsupported attribute value"}, - {125, "EMULTIHOP", "multihop is not allowed"}, - {126, "ENOLINK", "the server link has been severed"}, - {127, "EOVERFLOW", "value too large to be stored in data type"}, -} - -// 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, "SIGIOT", "IOT/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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible/complete"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {27, "SIGMSG", "input device data"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGPWR", "power-failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPROF", "profiling timer expired"}, - {33, "SIGDANGER", "paging space low"}, - {34, "SIGVTALRM", "virtual timer expired"}, - {35, "SIGMIGRATE", "signal 35"}, - {36, "SIGPRE", "signal 36"}, - {37, "SIGVIRT", "signal 37"}, - {38, "SIGTALRM", "signal 38"}, - {39, "SIGWAITING", "signal 39"}, - {48, "SIGSYSERROR", "signal 48"}, - {49, "SIGCAPI", "signal 49"}, - {58, "SIGRECONFIG", "signal 58"}, - {59, "SIGCPUFAIL", "CPU Failure Predicted"}, - {60, "SIGGRANT", "monitor mode granted"}, - {61, "SIGRETRACT", "monitor mode retracted"}, - {62, "SIGSOUND", "sound completed"}, - {63, "SIGMAX32", "secure attention"}, - {255, "SIGMAX", "signal 255"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go deleted file mode 100644 index d73c465..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +++ /dev/null @@ -1,1922 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && darwin - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x29 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_SYS_CONTROL = 0x2 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - AF_VSOCK = 0x28 - ALTWERASE = 0x200 - ATTR_BIT_MAP_COUNT = 0x5 - ATTR_CMN_ACCESSMASK = 0x20000 - ATTR_CMN_ACCTIME = 0x1000 - ATTR_CMN_ADDEDTIME = 0x10000000 - ATTR_CMN_BKUPTIME = 0x2000 - ATTR_CMN_CHGTIME = 0x800 - ATTR_CMN_CRTIME = 0x200 - ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 - ATTR_CMN_DEVID = 0x2 - ATTR_CMN_DOCUMENT_ID = 0x100000 - ATTR_CMN_ERROR = 0x20000000 - ATTR_CMN_EXTENDED_SECURITY = 0x400000 - ATTR_CMN_FILEID = 0x2000000 - ATTR_CMN_FLAGS = 0x40000 - ATTR_CMN_FNDRINFO = 0x4000 - ATTR_CMN_FSID = 0x4 - ATTR_CMN_FULLPATH = 0x8000000 - ATTR_CMN_GEN_COUNT = 0x80000 - ATTR_CMN_GRPID = 0x10000 - ATTR_CMN_GRPUUID = 0x1000000 - ATTR_CMN_MODTIME = 0x400 - ATTR_CMN_NAME = 0x1 - ATTR_CMN_NAMEDATTRCOUNT = 0x80000 - ATTR_CMN_NAMEDATTRLIST = 0x100000 - ATTR_CMN_OBJID = 0x20 - ATTR_CMN_OBJPERMANENTID = 0x40 - ATTR_CMN_OBJTAG = 0x10 - ATTR_CMN_OBJTYPE = 0x8 - ATTR_CMN_OWNERID = 0x8000 - ATTR_CMN_PARENTID = 0x4000000 - ATTR_CMN_PAROBJID = 0x80 - ATTR_CMN_RETURNED_ATTRS = 0x80000000 - ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x51c7ff00 - ATTR_CMN_USERACCESS = 0x200000 - ATTR_CMN_UUID = 0x800000 - ATTR_CMN_VALIDMASK = 0xffffffff - ATTR_CMN_VOLSETMASK = 0x6700 - ATTR_FILE_ALLOCSIZE = 0x4 - ATTR_FILE_CLUMPSIZE = 0x10 - ATTR_FILE_DATAALLOCSIZE = 0x400 - ATTR_FILE_DATAEXTENTS = 0x800 - ATTR_FILE_DATALENGTH = 0x200 - ATTR_FILE_DEVTYPE = 0x20 - ATTR_FILE_FILETYPE = 0x40 - ATTR_FILE_FORKCOUNT = 0x80 - ATTR_FILE_FORKLIST = 0x100 - ATTR_FILE_IOBLOCKSIZE = 0x8 - ATTR_FILE_LINKCOUNT = 0x1 - ATTR_FILE_RSRCALLOCSIZE = 0x2000 - ATTR_FILE_RSRCEXTENTS = 0x4000 - ATTR_FILE_RSRCLENGTH = 0x1000 - ATTR_FILE_SETMASK = 0x20 - ATTR_FILE_TOTALSIZE = 0x2 - ATTR_FILE_VALIDMASK = 0x37ff - ATTR_VOL_ALLOCATIONCLUMP = 0x40 - ATTR_VOL_ATTRIBUTES = 0x40000000 - ATTR_VOL_CAPABILITIES = 0x20000 - ATTR_VOL_DIRCOUNT = 0x400 - ATTR_VOL_ENCODINGSUSED = 0x10000 - ATTR_VOL_FILECOUNT = 0x200 - ATTR_VOL_FSTYPE = 0x1 - ATTR_VOL_INFO = 0x80000000 - ATTR_VOL_IOBLOCKSIZE = 0x80 - ATTR_VOL_MAXOBJCOUNT = 0x800 - ATTR_VOL_MINALLOCATION = 0x20 - ATTR_VOL_MOUNTEDDEVICE = 0x8000 - ATTR_VOL_MOUNTFLAGS = 0x4000 - ATTR_VOL_MOUNTPOINT = 0x1000 - ATTR_VOL_NAME = 0x2000 - ATTR_VOL_OBJCOUNT = 0x100 - ATTR_VOL_QUOTA_SIZE = 0x10000000 - ATTR_VOL_RESERVED_SIZE = 0x20000000 - ATTR_VOL_SETMASK = 0x80002000 - ATTR_VOL_SIGNATURE = 0x2 - ATTR_VOL_SIZE = 0x4 - ATTR_VOL_SPACEAVAIL = 0x10 - ATTR_VOL_SPACEFREE = 0x8 - ATTR_VOL_SPACEUSED = 0x800000 - ATTR_VOL_UUID = 0x40000 - ATTR_VOL_VALIDMASK = 0xf087ffff - 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 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - 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 = 0x80000 - 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 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CLONE_NOFOLLOW = 0x1 - CLONE_NOOWNERCOPY = 0x2 - CONNECT_DATA_AUTHENTICATED = 0x4 - CONNECT_DATA_IDEMPOTENT = 0x2 - CONNECT_RESUME_ON_READ_WRITE = 0x1 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTLIOCGINFO = 0xc0644e03 - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x10a - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_DARWIN = 0x10a - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - 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 - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x11 - EVFILT_THREADMARKER = 0x11 - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FSOPT_ATTR_CMN_EXTENDED = 0x20 - FSOPT_NOFOLLOW = 0x1 - FSOPT_NOINMEMUPDATE = 0x2 - FSOPT_PACK_INVAL_ATTRS = 0x8 - FSOPT_REPORT_FULLSIZE = 0x4 - FSOPT_RETURN_REALDEV = 0x200 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_INFO = 0x67 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDFILESUPPL = 0x68 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPATH_NOFIRMLINK = 0x66 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GETSIGSINFO = 0x69 - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_PUNCHHOLE = 0x63 - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_SPECULATIVE_READ = 0x65 - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_TRIM_ACTIVE_FILE = 0x64 - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6LOWPAN = 0x40 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - 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_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_3542DSTOPTS = 0x32 - IPV6_3542HOPLIMIT = 0x2f - IPV6_3542HOPOPTS = 0x31 - IPV6_3542NEXTHOP = 0x30 - IPV6_3542PKTINFO = 0x2e - IPV6_3542RTHDR = 0x33 - IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 - IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 - IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x3000 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x3d - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x39 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x1c - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x1b - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_PEERCRED = 0x1 - LOCAL_PEEREPID = 0x3 - LOCAL_PEEREUUID = 0x5 - LOCAL_PEERPID = 0x2 - LOCAL_PEERTOKEN = 0x6 - LOCAL_PEERUUID = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_32BIT = 0x8000 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 - MAP_UNIX03 = 0x40000 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_EXT_ROOT_DATA_VOL = 0x1 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_REMOVABLE = 0x200 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x40000000 - MNT_STRICTATIME = 0x80000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xd7f0f7ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_NOSIGNAL = 0x80000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_FLAGS_PRIV = 0xa - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xb - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACHTIME = 0x100 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NOFOLLOW_ANY = 0x20000000 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RENAME_EXCL = 0x4 - RENAME_NOFOLLOW_ANY = 0x10 - RENAME_RESERVED1 = 0x8 - RENAME_SECLUDE = 0x1 - RENAME_SWAP = 0x2 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DEAD = 0x20000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_GLOBAL = 0x40000000 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - 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 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SAE_ASSOCID_ALL = 0xffffffff - SAE_ASSOCID_ANY = 0x0 - SAE_CONNID_ALL = 0xffffffff - SAE_CONNID_ANY = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SEEK_CUR = 0x1 - SEEK_DATA = 0x4 - SEEK_END = 0x2 - SEEK_HOLE = 0x3 - SEEK_SET = 0x0 - SF_APPEND = 0x40000 - SF_ARCHIVED = 0x10000 - SF_DATALESS = 0x40000000 - SF_FIRMLINK = 0x800000 - SF_IMMUTABLE = 0x20000 - SF_NOUNLINK = 0x100000 - SF_RESTRICTED = 0x80000 - SF_SETTABLE = 0x3fff0000 - SF_SUPPORTED = 0x9f0000 - SF_SYNTHETIC = 0xc0000000 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIF6LOWPAN = 0xc02069c5 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFFUNCTIONALTYPE = 0xc02069ad - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGIFXMEDIA = 0xc02c6948 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIF6LOWPAN = 0x802069c4 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 - SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 - SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 - SO_TRACKER_TRANSPARENCY_VERSION = 0x3 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_CC = 0xb - TCPOPT_CCECHO = 0xd - TCPOPT_CCNEW = 0xc - TCPOPT_EOL = 0x0 - TCPOPT_FASTOPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - 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 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UF_APPEND = 0x4 - UF_COMPRESSED = 0x20 - UF_DATAVAULT = 0x80 - UF_HIDDEN = 0x8000 - UF_IMMUTABLE = 0x2 - UF_NODUMP = 0x1 - UF_OPAQUE = 0x8 - UF_SETTABLE = 0xffff - UF_TRACKED = 0x40 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 - XATTR_CREATE = 0x2 - XATTR_NODEFAULT = 0x10 - XATTR_NOFOLLOW = 0x1 - XATTR_NOSECURITY = 0x8 - XATTR_REPLACE = 0x4 - XATTR_SHOWCOMPRESSION = 0x20 -) - -// 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) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - 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(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - 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(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - 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) - 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", "resource 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, "ENOTSUP", "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", "disc 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 prog. not avail"}, - {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, "EPWROFF", "device power is off"}, - {83, "EDEVERR", "device error"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EBADEXEC", "bad executable (or shared library)"}, - {86, "EBADARCH", "bad CPU type in executable"}, - {87, "ESHLIBVERS", "shared library version mismatch"}, - {88, "EBADMACHO", "malformed Mach-o file"}, - {89, "ECANCELED", "operation canceled"}, - {90, "EIDRM", "identifier removed"}, - {91, "ENOMSG", "no message of desired type"}, - {92, "EILSEQ", "illegal byte sequence"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EBADMSG", "bad message"}, - {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, - {96, "ENODATA", "no message available on STREAM"}, - {97, "ENOLINK", "ENOLINK (Reserved)"}, - {98, "ENOSR", "no STREAM resources"}, - {99, "ENOSTR", "not a STREAM"}, - {100, "EPROTO", "protocol error"}, - {101, "ETIME", "STREAM ioctl timeout"}, - {102, "EOPNOTSUPP", "operation not supported on socket"}, - {103, "ENOPOLICY", "policy not found"}, - {104, "ENOTRECOVERABLE", "state not recoverable"}, - {105, "EOWNERDEAD", "previous owner died"}, - {106, "EQFULL", "interface output queue is full"}, -} - -// 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"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go deleted file mode 100644 index 4a55a40..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +++ /dev/null @@ -1,1922 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && darwin - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x29 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_SYS_CONTROL = 0x2 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - AF_VSOCK = 0x28 - ALTWERASE = 0x200 - ATTR_BIT_MAP_COUNT = 0x5 - ATTR_CMN_ACCESSMASK = 0x20000 - ATTR_CMN_ACCTIME = 0x1000 - ATTR_CMN_ADDEDTIME = 0x10000000 - ATTR_CMN_BKUPTIME = 0x2000 - ATTR_CMN_CHGTIME = 0x800 - ATTR_CMN_CRTIME = 0x200 - ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 - ATTR_CMN_DEVID = 0x2 - ATTR_CMN_DOCUMENT_ID = 0x100000 - ATTR_CMN_ERROR = 0x20000000 - ATTR_CMN_EXTENDED_SECURITY = 0x400000 - ATTR_CMN_FILEID = 0x2000000 - ATTR_CMN_FLAGS = 0x40000 - ATTR_CMN_FNDRINFO = 0x4000 - ATTR_CMN_FSID = 0x4 - ATTR_CMN_FULLPATH = 0x8000000 - ATTR_CMN_GEN_COUNT = 0x80000 - ATTR_CMN_GRPID = 0x10000 - ATTR_CMN_GRPUUID = 0x1000000 - ATTR_CMN_MODTIME = 0x400 - ATTR_CMN_NAME = 0x1 - ATTR_CMN_NAMEDATTRCOUNT = 0x80000 - ATTR_CMN_NAMEDATTRLIST = 0x100000 - ATTR_CMN_OBJID = 0x20 - ATTR_CMN_OBJPERMANENTID = 0x40 - ATTR_CMN_OBJTAG = 0x10 - ATTR_CMN_OBJTYPE = 0x8 - ATTR_CMN_OWNERID = 0x8000 - ATTR_CMN_PARENTID = 0x4000000 - ATTR_CMN_PAROBJID = 0x80 - ATTR_CMN_RETURNED_ATTRS = 0x80000000 - ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x51c7ff00 - ATTR_CMN_USERACCESS = 0x200000 - ATTR_CMN_UUID = 0x800000 - ATTR_CMN_VALIDMASK = 0xffffffff - ATTR_CMN_VOLSETMASK = 0x6700 - ATTR_FILE_ALLOCSIZE = 0x4 - ATTR_FILE_CLUMPSIZE = 0x10 - ATTR_FILE_DATAALLOCSIZE = 0x400 - ATTR_FILE_DATAEXTENTS = 0x800 - ATTR_FILE_DATALENGTH = 0x200 - ATTR_FILE_DEVTYPE = 0x20 - ATTR_FILE_FILETYPE = 0x40 - ATTR_FILE_FORKCOUNT = 0x80 - ATTR_FILE_FORKLIST = 0x100 - ATTR_FILE_IOBLOCKSIZE = 0x8 - ATTR_FILE_LINKCOUNT = 0x1 - ATTR_FILE_RSRCALLOCSIZE = 0x2000 - ATTR_FILE_RSRCEXTENTS = 0x4000 - ATTR_FILE_RSRCLENGTH = 0x1000 - ATTR_FILE_SETMASK = 0x20 - ATTR_FILE_TOTALSIZE = 0x2 - ATTR_FILE_VALIDMASK = 0x37ff - ATTR_VOL_ALLOCATIONCLUMP = 0x40 - ATTR_VOL_ATTRIBUTES = 0x40000000 - ATTR_VOL_CAPABILITIES = 0x20000 - ATTR_VOL_DIRCOUNT = 0x400 - ATTR_VOL_ENCODINGSUSED = 0x10000 - ATTR_VOL_FILECOUNT = 0x200 - ATTR_VOL_FSTYPE = 0x1 - ATTR_VOL_INFO = 0x80000000 - ATTR_VOL_IOBLOCKSIZE = 0x80 - ATTR_VOL_MAXOBJCOUNT = 0x800 - ATTR_VOL_MINALLOCATION = 0x20 - ATTR_VOL_MOUNTEDDEVICE = 0x8000 - ATTR_VOL_MOUNTFLAGS = 0x4000 - ATTR_VOL_MOUNTPOINT = 0x1000 - ATTR_VOL_NAME = 0x2000 - ATTR_VOL_OBJCOUNT = 0x100 - ATTR_VOL_QUOTA_SIZE = 0x10000000 - ATTR_VOL_RESERVED_SIZE = 0x20000000 - ATTR_VOL_SETMASK = 0x80002000 - ATTR_VOL_SIGNATURE = 0x2 - ATTR_VOL_SIZE = 0x4 - ATTR_VOL_SPACEAVAIL = 0x10 - ATTR_VOL_SPACEFREE = 0x8 - ATTR_VOL_SPACEUSED = 0x800000 - ATTR_VOL_UUID = 0x40000 - ATTR_VOL_VALIDMASK = 0xf087ffff - 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 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - 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 = 0x80000 - 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 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CLONE_NOFOLLOW = 0x1 - CLONE_NOOWNERCOPY = 0x2 - CONNECT_DATA_AUTHENTICATED = 0x4 - CONNECT_DATA_IDEMPOTENT = 0x2 - CONNECT_RESUME_ON_READ_WRITE = 0x1 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTLIOCGINFO = 0xc0644e03 - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x10a - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_DARWIN = 0x10a - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - 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 - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x11 - EVFILT_THREADMARKER = 0x11 - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FSOPT_ATTR_CMN_EXTENDED = 0x20 - FSOPT_NOFOLLOW = 0x1 - FSOPT_NOINMEMUPDATE = 0x2 - FSOPT_PACK_INVAL_ATTRS = 0x8 - FSOPT_REPORT_FULLSIZE = 0x4 - FSOPT_RETURN_REALDEV = 0x200 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_INFO = 0x67 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDFILESUPPL = 0x68 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPATH_NOFIRMLINK = 0x66 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GETSIGSINFO = 0x69 - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_PUNCHHOLE = 0x63 - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_SPECULATIVE_READ = 0x65 - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_TRIM_ACTIVE_FILE = 0x64 - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6LOWPAN = 0x40 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - 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_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_3542DSTOPTS = 0x32 - IPV6_3542HOPLIMIT = 0x2f - IPV6_3542HOPOPTS = 0x31 - IPV6_3542NEXTHOP = 0x30 - IPV6_3542PKTINFO = 0x2e - IPV6_3542RTHDR = 0x33 - IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 - IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 - IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOW_ECN_MASK = 0x3000 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x3d - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x39 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x1c - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x1b - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_PEERCRED = 0x1 - LOCAL_PEEREPID = 0x3 - LOCAL_PEEREUUID = 0x5 - LOCAL_PEERPID = 0x2 - LOCAL_PEERTOKEN = 0x6 - LOCAL_PEERUUID = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_32BIT = 0x8000 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 - MAP_UNIX03 = 0x40000 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_EXT_ROOT_DATA_VOL = 0x1 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_REMOVABLE = 0x200 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x40000000 - MNT_STRICTATIME = 0x80000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xd7f0f7ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_NOSIGNAL = 0x80000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_FLAGS_PRIV = 0xa - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xb - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACHTIME = 0x100 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NOFOLLOW_ANY = 0x20000000 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RENAME_EXCL = 0x4 - RENAME_NOFOLLOW_ANY = 0x10 - RENAME_RESERVED1 = 0x8 - RENAME_SECLUDE = 0x1 - RENAME_SWAP = 0x2 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DEAD = 0x20000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_GLOBAL = 0x40000000 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - 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 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SAE_ASSOCID_ALL = 0xffffffff - SAE_ASSOCID_ANY = 0x0 - SAE_CONNID_ALL = 0xffffffff - SAE_CONNID_ANY = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SEEK_CUR = 0x1 - SEEK_DATA = 0x4 - SEEK_END = 0x2 - SEEK_HOLE = 0x3 - SEEK_SET = 0x0 - SF_APPEND = 0x40000 - SF_ARCHIVED = 0x10000 - SF_DATALESS = 0x40000000 - SF_FIRMLINK = 0x800000 - SF_IMMUTABLE = 0x20000 - SF_NOUNLINK = 0x100000 - SF_RESTRICTED = 0x80000 - SF_SETTABLE = 0x3fff0000 - SF_SUPPORTED = 0x9f0000 - SF_SYNTHETIC = 0xc0000000 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIF6LOWPAN = 0xc02069c5 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFFUNCTIONALTYPE = 0xc02069ad - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGIFXMEDIA = 0xc02c6948 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIF6LOWPAN = 0x802069c4 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 - SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 - SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 - SO_TRACKER_TRANSPARENCY_VERSION = 0x3 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_CC = 0xb - TCPOPT_CCECHO = 0xd - TCPOPT_CCNEW = 0xc - TCPOPT_EOL = 0x0 - TCPOPT_FASTOPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - 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 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UF_APPEND = 0x4 - UF_COMPRESSED = 0x20 - UF_DATAVAULT = 0x80 - UF_HIDDEN = 0x8000 - UF_IMMUTABLE = 0x2 - UF_NODUMP = 0x1 - UF_OPAQUE = 0x8 - UF_SETTABLE = 0xffff - UF_TRACKED = 0x40 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 - XATTR_CREATE = 0x2 - XATTR_NODEFAULT = 0x10 - XATTR_NOFOLLOW = 0x1 - XATTR_NOSECURITY = 0x8 - XATTR_REPLACE = 0x4 - XATTR_SHOWCOMPRESSION = 0x20 -) - -// 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) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - 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(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - 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(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - 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) - 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", "resource 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, "ENOTSUP", "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", "disc 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 prog. not avail"}, - {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, "EPWROFF", "device power is off"}, - {83, "EDEVERR", "device error"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EBADEXEC", "bad executable (or shared library)"}, - {86, "EBADARCH", "bad CPU type in executable"}, - {87, "ESHLIBVERS", "shared library version mismatch"}, - {88, "EBADMACHO", "malformed Mach-o file"}, - {89, "ECANCELED", "operation canceled"}, - {90, "EIDRM", "identifier removed"}, - {91, "ENOMSG", "no message of desired type"}, - {92, "EILSEQ", "illegal byte sequence"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EBADMSG", "bad message"}, - {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, - {96, "ENODATA", "no message available on STREAM"}, - {97, "ENOLINK", "ENOLINK (Reserved)"}, - {98, "ENOSR", "no STREAM resources"}, - {99, "ENOSTR", "not a STREAM"}, - {100, "EPROTO", "protocol error"}, - {101, "ETIME", "STREAM ioctl timeout"}, - {102, "EOPNOTSUPP", "operation not supported on socket"}, - {103, "ENOPOLICY", "policy not found"}, - {104, "ENOTRECOVERABLE", "state not recoverable"}, - {105, "EOWNERDEAD", "previous owner died"}, - {106, "EQFULL", "interface output queue is full"}, -} - -// 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"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go deleted file mode 100644 index c0e0f86..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +++ /dev/null @@ -1,1737 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && dragonfly - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x21 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x23 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x22 - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETIF = 0x4020426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x8010427b - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DEFAULTBUFSIZE = 0x1000 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MAX_CLONES = 0x80 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x109 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - 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 - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DBF = 0xf - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0x8 - EVFILT_FS = -0xa - EVFILT_MARKER = 0xf - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xa - EVFILT_TIMER = -0x7 - EVFILT_USER = -0x9 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - 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_HUP = 0x800 - EV_NODATA = 0x1000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTEXIT_LWP = 0x10000 - EXTEXIT_PROC = 0x0 - EXTEXIT_SETINT = 0x1 - EXTEXIT_SIMPLE = 0x0 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - 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_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x318e72 - IFF_DEBUG = 0x4 - IFF_IDIRECT = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NPOLLING = 0x100000 - IFF_OACTIVE = 0x400 - IFF_OACTIVE_COMPAT = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_POLLING = 0x10000 - IFF_POLLING_COMPAT = 0x10000 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SMART = 0x20 - IFF_STATICARP = 0x80000 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - 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_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_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - 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_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - 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 = 0xf1 - 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_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_STF = 0xf3 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - 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_VOICEEM = 0x64 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SKIP = 0x39 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UNKNOWN = 0x102 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHLIM = 0x28 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PKTOPTIONS = 0x34 - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_RESETLOG = 0x37 - IP_FW_TBL_ADD = 0x2a - IP_FW_TBL_CREATE = 0x28 - IP_FW_TBL_DEL = 0x2b - IP_FW_TBL_DESTROY = 0x29 - IP_FW_TBL_EXPIRE = 0x2f - IP_FW_TBL_FLUSH = 0x2c - IP_FW_TBL_GET = 0x2d - IP_FW_TBL_ZERO = 0x2e - IP_FW_X = 0x31 - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CONTROL_END = 0xb - MADV_CONTROL_START = 0xa - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_INVAL = 0xa - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SETMAP = 0xb - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_NOCORE = 0x20000 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_NOSYNC = 0x800 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_SIZEALIGN = 0x40000 - MAP_STACK = 0x400 - MAP_TRYFIXED = 0x10000 - MAP_VPAGETABLE = 0x2000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x20 - MNT_CMDFLAGS = 0xf0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x4 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SYNCHRONOUS = 0x2 - MNT_TRIM = 0x1000000 - MNT_UPDATE = 0x10000 - MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0xf1f0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x1000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FBLOCKING = 0x10000 - MSG_FMASK = 0xffff0000 - MSG_FNONBLOCKING = 0x20000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_SYNC = 0x800 - MSG_TRUNC = 0x10 - MSG_UNUSED09 = 0x200 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x4 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x20000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x8000000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FAPPEND = 0x100000 - O_FASYNCWRITE = 0x800000 - O_FBLOCKING = 0x40000 - O_FMASK = 0xfc0000 - O_FNONBLOCKING = 0x80000 - O_FOFFSET = 0x200000 - O_FSYNC = 0x80 - O_FSYNCWRITE = 0x400000 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0xb - RTAX_MPLS1 = 0x8 - RTAX_MPLS2 = 0x9 - RTAX_MPLS3 = 0xa - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_MPLS1 = 0x100 - RTA_MPLS2 = 0x200 - RTA_MPLS3 = 0x400 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPLSOPS = 0x1000000 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_IWCAPSEGS = 0x400 - RTV_IWMAXSEGS = 0x200 - RTV_MSL = 0x100 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCALIFADDR = 0x8118691b - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8118691d - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc0406929 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc0206926 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPOLLCPU = 0xc020697e - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFTSOLEN = 0xc0206980 - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFPOLLCPU = 0x8020697d - SIOCSIFTSOLEN = 0x8020697f - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_CPUHINT = 0x1030 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x2000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDSPACE = 0x100a - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDB = 0x9000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_FASTKEEP = 0x80 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x20 - TCP_KEEPINTVL = 0x200 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0x100 - TCP_MIN_WINSHIFT = 0x5 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_SIGNATURE_ENABLE = 0x10 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCISPTMASTER = 0x20007455 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - 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 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VCHECKPT = 0x13 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x0 - VM_SWZONE_SIZE_MAX = 0x4000000000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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) - EASYNC = syscall.Errno(0x63) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x63) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEDIUM = syscall.Errno(0x5d) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - 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) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x5c) - 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) - SIGCKPT = syscall.Signal(0x21) - SIGCKPTEXIT = syscall.Signal(0x22) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOMEDIUM", "no medium found"}, - {99, "EASYNC", "unknown error: 99"}, -} - -// 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, "SIGIOT", "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 Scheduler"}, - {33, "SIGCKPT", "checkPoint"}, - {34, "SIGCKPTEXIT", "checkPointExit"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go deleted file mode 100644 index 6c69239..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +++ /dev/null @@ -1,2042 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4004427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4008426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x400c4280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x80084282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8008427b - BIOCSETZBUF = 0x800c4281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8008426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc144648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFRONTSTUFF = 0x40086486 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x804c6490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc06c648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - 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 - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - 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_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETFSBASE = 0x47 - PT_GETGSBASE = 0x49 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETXMMREGS = 0x40 - PT_GETXSTATE = 0x45 - PT_GETXSTATE_INFO = 0x44 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETFSBASE = 0x48 - PT_SETGSBASE = 0x4a - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETXMMREGS = 0x41 - PT_SETXSTATE = 0x46 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc028698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOG_ID_LEN = 0x40 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40087459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x70e0000 - VM_SWZONE_SIZE_MAX = 0x2280000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go deleted file mode 100644 index dd9163f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +++ /dev/null @@ -1,2039 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFRONTSTUFF = 0x40086486 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x80506490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc080648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - 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 - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - 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_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETFSBASE = 0x47 - PT_GETGSBASE = 0x49 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETXSTATE = 0x45 - PT_GETXSTATE_INFO = 0x44 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETFSBASE = 0x48 - PT_SETGSBASE = 0x4a - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETXSTATE = 0x46 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOG_ID_LEN = 0x40 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go deleted file mode 100644 index 493a2a7..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +++ /dev/null @@ -1,2033 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4004427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x400c4280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x80084282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8008427b - BIOCSETZBUF = 0x800c4281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFRONTSTUFF = 0x40086486 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x804c6490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc078648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - 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 - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - 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_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETVFPREGS = 0x40 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETVFPREGS = 0x41 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc028698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOG_ID_LEN = 0x40 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go deleted file mode 100644 index 8b437b3..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +++ /dev/null @@ -1,2033 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFRONTSTUFF = 0x40086486 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x80506490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc080648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - 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 - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - 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_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOG_ID_LEN = 0x40 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x19000000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go deleted file mode 100644 index 67c02dd..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +++ /dev/null @@ -1,2147 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_HYPERV = 0x2b - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B1000000 = 0xf4240 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1500000 = 0x16e360 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B2000000 = 0x1e8480 - B230400 = 0x38400 - B2400 = 0x960 - B2500000 = 0x2625a0 - B28800 = 0x7080 - B300 = 0x12c - B3000000 = 0x2dc6c0 - B3500000 = 0x3567e0 - B38400 = 0x9600 - B4000000 = 0x3d0900 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B500000 = 0x7a120 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x5 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_COARSE = 0xc - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_COARSE = 0xa - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGKERNELDUMP = 0xc0986492 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x80986491 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCSKERNELDUMP_FREEBSD12 = 0x80506490 - DIOCZONECMD = 0xc080648f - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DISPLAYPORT_AUX = 0x113 - DLT_DOCSIS = 0x8f - DLT_DOCSIS31_XRA31 = 0x111 - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_ETHERNET_MPACKET = 0x112 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB_KONTRON = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NORDIC_BLE = 0x110 - DLT_NULL = 0x0 - DLT_OPENFLOW = 0x10b - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TI_LLN_SNIFFER = 0x10d - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_DARWIN = 0x10a - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - 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 - DLT_VSOCK = 0x10f - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EHE_DEAD_PRIORITY = -0x1 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xd - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EVNAMEMAP_NAME_SIZE = 0x40 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_NONE = -0xc8 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_ADD_SEALS = 0x13 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_GET_SEALS = 0x14 - F_ISUNIONSTACK = 0x15 - F_KINFO = 0x16 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f72 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_KNOWSEPOCH = 0x20 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_NETMASK_DEFAULT = 0xffffff00 - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_ORIGDSTADDR = 0x48 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_CREDS_PERSISTENT = 0x3 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCAST_BLOCK_SOURCE = 0x54 - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x50 - MCAST_JOIN_SOURCE_GROUP = 0x52 - MCAST_LEAVE_GROUP = 0x51 - MCAST_LEAVE_SOURCE_GROUP = 0x53 - MCAST_UNBLOCK_SOURCE = 0x55 - MCAST_UNDEFINED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0xfc000000 - MFD_HUGE_SHIFT = 0x1a - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0x300d0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EMPTYDIR = 0x2000000000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_EXTLS = 0x4000000000 - MNT_EXTLSCERT = 0x8000000000 - MNT_EXTLSCERTUSER = 0x10000000000 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOCOVER = 0x1000000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NET_RT_NHGRP = 0x7 - NET_RT_NHOP = 0x6 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x1000000 - O_EMPTY_PATH = 0x2000000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_PATH = 0x400000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_COREDUMP = 0x1d - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_DEFAULT_WEIGHT = 0x1 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAX_WEIGHT = 0xffffff - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_CREDS2 = 0x8 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0x8020692c - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_MAX_PACING_RATE = 0x1018 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSEPORT_LB = 0x10000 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TS_BINTIME = 0x1 - SO_TS_CLOCK = 0x1017 - SO_TS_CLOCK_MAX = 0x3 - SO_TS_DEFAULT = 0x0 - SO_TS_MONOTONIC = 0x3 - SO_TS_REALTIME = 0x2 - SO_TS_REALTIME_MICRO = 0x0 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - TCP_BBR_IWINTSO = 0x42b - TCP_BBR_LOWGAIN_FD = 0x436 - TCP_BBR_LOWGAIN_HALF = 0x435 - TCP_BBR_LOWGAIN_THRESH = 0x434 - TCP_BBR_MAX_RTO = 0x439 - TCP_BBR_MIN_RTO = 0x438 - TCP_BBR_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_INIT_RATE = 0x458 - TCP_BBR_RACK_RTT_USE = 0x44a - TCP_BBR_RECFORCE = 0x42c - TCP_BBR_REC_OVER_HPTS = 0x43a - TCP_BBR_RETRAN_WTSO = 0x44b - TCP_BBR_RWND_IS_APP = 0x42f - TCP_BBR_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_USE_RACK_RR = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DEFER_OPTIONS = 0x470 - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FAST_RSM_HACK = 0x471 - TCP_FIN_IS_RST = 0x49 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_HDWR_RATE_CAP = 0x46a - TCP_HDWR_UP_ONLY = 0x46c - TCP_IDLE_REDUCE = 0x46 - TCP_INFO = 0x20 - TCP_IWND_NB = 0x2b - TCP_IWND_NSEG = 0x2c - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_LOG = 0x22 - TCP_LOGBUF = 0x23 - TCP_LOGDUMP = 0x25 - TCP_LOGDUMPID = 0x26 - TCP_LOGID = 0x24 - TCP_LOGID_CNT = 0x2e - TCP_LOG_ID_LEN = 0x40 - TCP_LOG_LIMIT = 0x4a - TCP_LOG_TAG = 0x2f - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXPEAKRATE = 0x45 - TCP_MAXSEG = 0x2 - TCP_MAXUNACKTIME = 0x44 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NO_PRR = 0x462 - TCP_PACING_RATE_CAP = 0x46b - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_PERF_INFO = 0x4e - TCP_PROC_ACCOUNTING = 0x4c - TCP_RACK_ABC_VAL = 0x46d - TCP_RACK_CHEAT_NOT_CONF_RATE = 0x459 - TCP_RACK_DO_DETECTION = 0x449 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_FORCE_MSEG = 0x45d - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_GP_INCREASE_CA = 0x45a - TCP_RACK_GP_INCREASE_REC = 0x45c - TCP_RACK_GP_INCREASE_SS = 0x45b - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MBUF_QUEUE = 0x41a - TCP_RACK_MEASURE_CNT = 0x46f - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_NONRXT_CFG_RATE = 0x463 - TCP_RACK_NO_PUSH_AT_MAX = 0x466 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_RATE_CA = 0x45e - TCP_RACK_PACE_RATE_REC = 0x460 - TCP_RACK_PACE_RATE_SS = 0x45f - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PACE_TO_FILL = 0x467 - TCP_RACK_PACING_BETA = 0x472 - TCP_RACK_PACING_BETA_ECN = 0x473 - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROFILE = 0x469 - TCP_RACK_PROP = 0x41b - TCP_RACK_PROP_RATE = 0x420 - TCP_RACK_PRR_SENDALOT = 0x421 - TCP_RACK_REORD_FADE = 0x426 - TCP_RACK_REORD_THRESH = 0x425 - TCP_RACK_RR_CONF = 0x459 - TCP_RACK_TIMER_SLOP = 0x474 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_REC_ABC_VAL = 0x46e - TCP_REMOTE_UDP_ENCAPS_PORT = 0x47 - TCP_REUSPORT_LB_NUMA = 0x402 - TCP_REUSPORT_LB_NUMA_CURDOM = -0x1 - TCP_REUSPORT_LB_NUMA_NODOM = -0x2 - TCP_RXTLS_ENABLE = 0x29 - TCP_RXTLS_MODE = 0x2a - TCP_SHARED_CWND_ALLOWED = 0x4b - TCP_SHARED_CWND_ENABLE = 0x464 - TCP_SHARED_CWND_TIME_LIMIT = 0x468 - TCP_STATS = 0x21 - TCP_TIMELY_DYN_ADJ = 0x465 - TCP_TLS_MODE_IFNET = 0x2 - TCP_TLS_MODE_NONE = 0x0 - TCP_TLS_MODE_SW = 0x1 - TCP_TLS_MODE_TOE = 0x3 - TCP_TXTLS_ENABLE = 0x27 - TCP_TXTLS_MODE = 0x28 - TCP_USER_LOG = 0x30 - TCP_USE_CMP_ACKS = 0x4d - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go deleted file mode 100644 index b6db27d..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ /dev/null @@ -1,3783 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go:build linux - -package unix - -import "syscall" - -const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2e - AF_MCTP = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_DRBG_ENTROPY = 0x6 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_KEY_BY_KEY_SERIAL = 0x7 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_MCTP = 0x122 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUDIT_ADD = 0x3eb - AUDIT_ADD_RULE = 0x3f3 - AUDIT_ALWAYS = 0x2 - AUDIT_ANOM_ABEND = 0x6a5 - AUDIT_ANOM_CREAT = 0x6a7 - AUDIT_ANOM_LINK = 0x6a6 - AUDIT_ANOM_PROMISCUOUS = 0x6a4 - AUDIT_ARCH = 0xb - AUDIT_ARCH_AARCH64 = 0xc00000b7 - AUDIT_ARCH_ALPHA = 0xc0009026 - AUDIT_ARCH_ARCOMPACT = 0x4000005d - AUDIT_ARCH_ARCOMPACTBE = 0x5d - AUDIT_ARCH_ARCV2 = 0x400000c3 - AUDIT_ARCH_ARCV2BE = 0xc3 - AUDIT_ARCH_ARM = 0x40000028 - AUDIT_ARCH_ARMEB = 0x28 - AUDIT_ARCH_C6X = 0x4000008c - AUDIT_ARCH_C6XBE = 0x8c - AUDIT_ARCH_CRIS = 0x4000004c - AUDIT_ARCH_CSKY = 0x400000fc - AUDIT_ARCH_FRV = 0x5441 - AUDIT_ARCH_H8300 = 0x2e - AUDIT_ARCH_HEXAGON = 0xa4 - AUDIT_ARCH_I386 = 0x40000003 - AUDIT_ARCH_IA64 = 0xc0000032 - AUDIT_ARCH_LOONGARCH32 = 0x40000102 - AUDIT_ARCH_LOONGARCH64 = 0xc0000102 - AUDIT_ARCH_M32R = 0x58 - AUDIT_ARCH_M68K = 0x4 - AUDIT_ARCH_MICROBLAZE = 0xbd - AUDIT_ARCH_MIPS = 0x8 - AUDIT_ARCH_MIPS64 = 0x80000008 - AUDIT_ARCH_MIPS64N32 = 0xa0000008 - AUDIT_ARCH_MIPSEL = 0x40000008 - AUDIT_ARCH_MIPSEL64 = 0xc0000008 - AUDIT_ARCH_MIPSEL64N32 = 0xe0000008 - AUDIT_ARCH_NDS32 = 0x400000a7 - AUDIT_ARCH_NDS32BE = 0xa7 - AUDIT_ARCH_NIOS2 = 0x40000071 - AUDIT_ARCH_OPENRISC = 0x5c - AUDIT_ARCH_PARISC = 0xf - AUDIT_ARCH_PARISC64 = 0x8000000f - AUDIT_ARCH_PPC = 0x14 - AUDIT_ARCH_PPC64 = 0x80000015 - AUDIT_ARCH_PPC64LE = 0xc0000015 - AUDIT_ARCH_RISCV32 = 0x400000f3 - AUDIT_ARCH_RISCV64 = 0xc00000f3 - AUDIT_ARCH_S390 = 0x16 - AUDIT_ARCH_S390X = 0x80000016 - AUDIT_ARCH_SH = 0x2a - AUDIT_ARCH_SH64 = 0x8000002a - AUDIT_ARCH_SHEL = 0x4000002a - AUDIT_ARCH_SHEL64 = 0xc000002a - AUDIT_ARCH_SPARC = 0x2 - AUDIT_ARCH_SPARC64 = 0x8000002b - AUDIT_ARCH_TILEGX = 0xc00000bf - AUDIT_ARCH_TILEGX32 = 0x400000bf - AUDIT_ARCH_TILEPRO = 0x400000bc - AUDIT_ARCH_UNICORE = 0x4000006e - AUDIT_ARCH_X86_64 = 0xc000003e - AUDIT_ARCH_XTENSA = 0x5e - AUDIT_ARG0 = 0xc8 - AUDIT_ARG1 = 0xc9 - AUDIT_ARG2 = 0xca - AUDIT_ARG3 = 0xcb - AUDIT_AVC = 0x578 - AUDIT_AVC_PATH = 0x57a - AUDIT_BITMASK_SIZE = 0x40 - AUDIT_BIT_MASK = 0x8000000 - AUDIT_BIT_TEST = 0x48000000 - AUDIT_BPF = 0x536 - AUDIT_BPRM_FCAPS = 0x529 - AUDIT_CAPSET = 0x52a - AUDIT_CLASS_CHATTR = 0x2 - AUDIT_CLASS_CHATTR_32 = 0x3 - AUDIT_CLASS_DIR_WRITE = 0x0 - AUDIT_CLASS_DIR_WRITE_32 = 0x1 - AUDIT_CLASS_READ = 0x4 - AUDIT_CLASS_READ_32 = 0x5 - AUDIT_CLASS_SIGNAL = 0x8 - AUDIT_CLASS_SIGNAL_32 = 0x9 - AUDIT_CLASS_WRITE = 0x6 - AUDIT_CLASS_WRITE_32 = 0x7 - AUDIT_COMPARE_AUID_TO_EUID = 0x10 - AUDIT_COMPARE_AUID_TO_FSUID = 0xe - AUDIT_COMPARE_AUID_TO_OBJ_UID = 0x5 - AUDIT_COMPARE_AUID_TO_SUID = 0xf - AUDIT_COMPARE_EGID_TO_FSGID = 0x17 - AUDIT_COMPARE_EGID_TO_OBJ_GID = 0x4 - AUDIT_COMPARE_EGID_TO_SGID = 0x18 - AUDIT_COMPARE_EUID_TO_FSUID = 0x12 - AUDIT_COMPARE_EUID_TO_OBJ_UID = 0x3 - AUDIT_COMPARE_EUID_TO_SUID = 0x11 - AUDIT_COMPARE_FSGID_TO_OBJ_GID = 0x9 - AUDIT_COMPARE_FSUID_TO_OBJ_UID = 0x8 - AUDIT_COMPARE_GID_TO_EGID = 0x14 - AUDIT_COMPARE_GID_TO_FSGID = 0x15 - AUDIT_COMPARE_GID_TO_OBJ_GID = 0x2 - AUDIT_COMPARE_GID_TO_SGID = 0x16 - AUDIT_COMPARE_SGID_TO_FSGID = 0x19 - AUDIT_COMPARE_SGID_TO_OBJ_GID = 0x7 - AUDIT_COMPARE_SUID_TO_FSUID = 0x13 - AUDIT_COMPARE_SUID_TO_OBJ_UID = 0x6 - AUDIT_COMPARE_UID_TO_AUID = 0xa - AUDIT_COMPARE_UID_TO_EUID = 0xb - AUDIT_COMPARE_UID_TO_FSUID = 0xc - AUDIT_COMPARE_UID_TO_OBJ_UID = 0x1 - AUDIT_COMPARE_UID_TO_SUID = 0xd - AUDIT_CONFIG_CHANGE = 0x519 - AUDIT_CWD = 0x51b - AUDIT_DAEMON_ABORT = 0x4b2 - AUDIT_DAEMON_CONFIG = 0x4b3 - AUDIT_DAEMON_END = 0x4b1 - AUDIT_DAEMON_START = 0x4b0 - AUDIT_DEL = 0x3ec - AUDIT_DEL_RULE = 0x3f4 - AUDIT_DEVMAJOR = 0x64 - AUDIT_DEVMINOR = 0x65 - AUDIT_DIR = 0x6b - AUDIT_DM_CTRL = 0x53a - AUDIT_DM_EVENT = 0x53b - AUDIT_EGID = 0x6 - AUDIT_EOE = 0x528 - AUDIT_EQUAL = 0x40000000 - AUDIT_EUID = 0x2 - AUDIT_EVENT_LISTENER = 0x537 - AUDIT_EXE = 0x70 - AUDIT_EXECVE = 0x51d - AUDIT_EXIT = 0x67 - AUDIT_FAIL_PANIC = 0x2 - AUDIT_FAIL_PRINTK = 0x1 - AUDIT_FAIL_SILENT = 0x0 - AUDIT_FANOTIFY = 0x533 - AUDIT_FD_PAIR = 0x525 - AUDIT_FEATURE_BITMAP_ALL = 0x7f - AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT = 0x1 - AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME = 0x2 - AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND = 0x8 - AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH = 0x4 - AUDIT_FEATURE_BITMAP_FILTER_FS = 0x40 - AUDIT_FEATURE_BITMAP_LOST_RESET = 0x20 - AUDIT_FEATURE_BITMAP_SESSIONID_FILTER = 0x10 - AUDIT_FEATURE_CHANGE = 0x530 - AUDIT_FEATURE_LOGINUID_IMMUTABLE = 0x1 - AUDIT_FEATURE_ONLY_UNSET_LOGINUID = 0x0 - AUDIT_FEATURE_VERSION = 0x1 - AUDIT_FIELD_COMPARE = 0x6f - AUDIT_FILETYPE = 0x6c - AUDIT_FILTERKEY = 0xd2 - AUDIT_FILTER_ENTRY = 0x2 - AUDIT_FILTER_EXCLUDE = 0x5 - AUDIT_FILTER_EXIT = 0x4 - AUDIT_FILTER_FS = 0x6 - AUDIT_FILTER_PREPEND = 0x10 - AUDIT_FILTER_TASK = 0x1 - AUDIT_FILTER_TYPE = 0x5 - AUDIT_FILTER_URING_EXIT = 0x7 - AUDIT_FILTER_USER = 0x0 - AUDIT_FILTER_WATCH = 0x3 - AUDIT_FIRST_KERN_ANOM_MSG = 0x6a4 - AUDIT_FIRST_USER_MSG = 0x44c - AUDIT_FIRST_USER_MSG2 = 0x834 - AUDIT_FSGID = 0x8 - AUDIT_FSTYPE = 0x1a - AUDIT_FSUID = 0x4 - AUDIT_GET = 0x3e8 - AUDIT_GET_FEATURE = 0x3fb - AUDIT_GID = 0x5 - AUDIT_GREATER_THAN = 0x20000000 - AUDIT_GREATER_THAN_OR_EQUAL = 0x60000000 - AUDIT_INODE = 0x66 - AUDIT_INTEGRITY_DATA = 0x708 - AUDIT_INTEGRITY_EVM_XATTR = 0x70e - AUDIT_INTEGRITY_HASH = 0x70b - AUDIT_INTEGRITY_METADATA = 0x709 - AUDIT_INTEGRITY_PCR = 0x70c - AUDIT_INTEGRITY_POLICY_RULE = 0x70f - AUDIT_INTEGRITY_RULE = 0x70d - AUDIT_INTEGRITY_STATUS = 0x70a - AUDIT_INTEGRITY_USERSPACE = 0x710 - AUDIT_IPC = 0x517 - AUDIT_IPC_SET_PERM = 0x51f - AUDIT_IPE_ACCESS = 0x58c - AUDIT_IPE_CONFIG_CHANGE = 0x58d - AUDIT_IPE_POLICY_LOAD = 0x58e - AUDIT_KERNEL = 0x7d0 - AUDIT_KERNEL_OTHER = 0x524 - AUDIT_KERN_MODULE = 0x532 - AUDIT_LANDLOCK_ACCESS = 0x58f - AUDIT_LANDLOCK_DOMAIN = 0x590 - AUDIT_LAST_FEATURE = 0x1 - AUDIT_LAST_KERN_ANOM_MSG = 0x707 - AUDIT_LAST_USER_MSG = 0x4af - AUDIT_LAST_USER_MSG2 = 0xbb7 - AUDIT_LESS_THAN = 0x10000000 - AUDIT_LESS_THAN_OR_EQUAL = 0x50000000 - AUDIT_LIST = 0x3ea - AUDIT_LIST_RULES = 0x3f5 - AUDIT_LOGIN = 0x3ee - AUDIT_LOGINUID = 0x9 - AUDIT_LOGINUID_SET = 0x18 - AUDIT_MAC_CALIPSO_ADD = 0x58a - AUDIT_MAC_CALIPSO_DEL = 0x58b - AUDIT_MAC_CIPSOV4_ADD = 0x57f - AUDIT_MAC_CIPSOV4_DEL = 0x580 - AUDIT_MAC_CONFIG_CHANGE = 0x57d - AUDIT_MAC_IPSEC_ADDSA = 0x583 - AUDIT_MAC_IPSEC_ADDSPD = 0x585 - AUDIT_MAC_IPSEC_DELSA = 0x584 - AUDIT_MAC_IPSEC_DELSPD = 0x586 - AUDIT_MAC_IPSEC_EVENT = 0x587 - AUDIT_MAC_MAP_ADD = 0x581 - AUDIT_MAC_MAP_DEL = 0x582 - AUDIT_MAC_POLICY_LOAD = 0x57b - AUDIT_MAC_STATUS = 0x57c - AUDIT_MAC_UNLBL_ALLOW = 0x57e - AUDIT_MAC_UNLBL_STCADD = 0x588 - AUDIT_MAC_UNLBL_STCDEL = 0x589 - AUDIT_MAKE_EQUIV = 0x3f7 - AUDIT_MAX_FIELDS = 0x40 - AUDIT_MAX_FIELD_COMPARE = 0x19 - AUDIT_MAX_KEY_LEN = 0x100 - AUDIT_MESSAGE_TEXT_MAX = 0x2170 - AUDIT_MMAP = 0x52b - AUDIT_MQ_GETSETATTR = 0x523 - AUDIT_MQ_NOTIFY = 0x522 - AUDIT_MQ_OPEN = 0x520 - AUDIT_MQ_SENDRECV = 0x521 - AUDIT_MSGTYPE = 0xc - AUDIT_NEGATE = 0x80000000 - AUDIT_NETFILTER_CFG = 0x52d - AUDIT_NETFILTER_PKT = 0x52c - AUDIT_NEVER = 0x0 - AUDIT_NLGRP_MAX = 0x1 - AUDIT_NOT_EQUAL = 0x30000000 - AUDIT_NR_FILTERS = 0x8 - AUDIT_OBJ_GID = 0x6e - AUDIT_OBJ_LEV_HIGH = 0x17 - AUDIT_OBJ_LEV_LOW = 0x16 - AUDIT_OBJ_PID = 0x526 - AUDIT_OBJ_ROLE = 0x14 - AUDIT_OBJ_TYPE = 0x15 - AUDIT_OBJ_UID = 0x6d - AUDIT_OBJ_USER = 0x13 - AUDIT_OPENAT2 = 0x539 - AUDIT_OPERATORS = 0x78000000 - AUDIT_PATH = 0x516 - AUDIT_PERM = 0x6a - AUDIT_PERM_ATTR = 0x8 - AUDIT_PERM_EXEC = 0x1 - AUDIT_PERM_READ = 0x4 - AUDIT_PERM_WRITE = 0x2 - AUDIT_PERS = 0xa - AUDIT_PID = 0x0 - AUDIT_POSSIBLE = 0x1 - AUDIT_PPID = 0x12 - AUDIT_PROCTITLE = 0x52f - AUDIT_REPLACE = 0x531 - AUDIT_SADDR_FAM = 0x71 - AUDIT_SECCOMP = 0x52e - AUDIT_SELINUX_ERR = 0x579 - AUDIT_SESSIONID = 0x19 - AUDIT_SET = 0x3e9 - AUDIT_SET_FEATURE = 0x3fa - AUDIT_SGID = 0x7 - AUDIT_SID_UNSET = 0xffffffff - AUDIT_SIGNAL_INFO = 0x3f2 - AUDIT_SOCKADDR = 0x51a - AUDIT_SOCKETCALL = 0x518 - AUDIT_STATUS_BACKLOG_LIMIT = 0x10 - AUDIT_STATUS_BACKLOG_WAIT_TIME = 0x20 - AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL = 0x80 - AUDIT_STATUS_ENABLED = 0x1 - AUDIT_STATUS_FAILURE = 0x2 - AUDIT_STATUS_LOST = 0x40 - AUDIT_STATUS_PID = 0x4 - AUDIT_STATUS_RATE_LIMIT = 0x8 - AUDIT_SUBJ_CLR = 0x11 - AUDIT_SUBJ_ROLE = 0xe - AUDIT_SUBJ_SEN = 0x10 - AUDIT_SUBJ_TYPE = 0xf - AUDIT_SUBJ_USER = 0xd - AUDIT_SUCCESS = 0x68 - AUDIT_SUID = 0x3 - AUDIT_SYSCALL = 0x514 - AUDIT_SYSCALL_CLASSES = 0x10 - AUDIT_TIME_ADJNTPVAL = 0x535 - AUDIT_TIME_INJOFFSET = 0x534 - AUDIT_TRIM = 0x3f6 - AUDIT_TTY = 0x527 - AUDIT_TTY_GET = 0x3f8 - AUDIT_TTY_SET = 0x3f9 - AUDIT_UID = 0x1 - AUDIT_UID_UNSET = 0xffffffff - AUDIT_UNUSED_BITS = 0x7fffc00 - AUDIT_URINGOP = 0x538 - AUDIT_USER = 0x3ed - AUDIT_USER_AVC = 0x453 - AUDIT_USER_TTY = 0x464 - AUDIT_VERSION_BACKLOG_LIMIT = 0x1 - AUDIT_VERSION_BACKLOG_WAIT_TIME = 0x2 - AUDIT_VERSION_LATEST = 0x7f - AUDIT_WATCH = 0x69 - AUDIT_WATCH_INS = 0x3ef - AUDIT_WATCH_LIST = 0x3f1 - AUDIT_WATCH_REM = 0x3f0 - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B110 = 0x3 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2400 = 0xb - B300 = 0x7 - B38400 = 0xf - B4800 = 0xc - B50 = 0x1 - B600 = 0x8 - B75 = 0x2 - B9600 = 0xd - BCACHEFS_SUPER_MAGIC = 0xca451a4e - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ARSH = 0xc0 - BPF_ATOMIC = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_CMPXCHG = 0xf1 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIT = 0x90 - BPF_FETCH = 0x1 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_AFTER = 0x10 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_BEFORE = 0x8 - BPF_F_ID = 0x20 - BPF_F_NETFILTER_IP_DEFRAG = 0x1 - BPF_F_PREORDER = 0x40 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_REDIRECT_FLAGS = 0x19 - BPF_F_REPLACE = 0x4 - BPF_F_SLEEPABLE = 0x10 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TEST_REG_INVARIANTS = 0x80 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TEST_RUN_ON_CPU = 0x1 - BPF_F_TEST_SKB_CHECKSUM_COMPLETE = 0x4 - BPF_F_TEST_STATE_FREQ = 0x8 - BPF_F_TEST_XDP_LIVE_FRAMES = 0x2 - BPF_F_XDP_DEV_BOUND_ONLY = 0x40 - BPF_F_XDP_HAS_FRAGS = 0x20 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JCOND = 0xe0 - 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 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LOAD_ACQ = 0x100 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMSX = 0x80 - BPF_MEMWORDS = 0x10 - 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_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_BTF_ID = 0x3 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_FUNC = 0x4 - BPF_PSEUDO_KFUNC_CALL = 0x2 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_IDX = 0x5 - BPF_PSEUDO_MAP_IDX_VALUE = 0x6 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STORE_REL = 0x110 - 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_XCHG = 0xe1 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - BUS_BLUETOOTH = 0x5 - BUS_HIL = 0x4 - BUS_USB = 0x3 - BUS_VIRTUAL = 0x6 - CAN_BCM = 0x2 - CAN_BUS_OFF_THRESHOLD = 0x100 - CAN_CTRLMODE_3_SAMPLES = 0x4 - CAN_CTRLMODE_BERR_REPORTING = 0x10 - CAN_CTRLMODE_CC_LEN8_DLC = 0x100 - CAN_CTRLMODE_FD = 0x20 - CAN_CTRLMODE_FD_NON_ISO = 0x80 - CAN_CTRLMODE_LISTENONLY = 0x2 - CAN_CTRLMODE_LOOPBACK = 0x1 - CAN_CTRLMODE_ONE_SHOT = 0x8 - CAN_CTRLMODE_PRESUME_ACK = 0x40 - CAN_CTRLMODE_TDC_AUTO = 0x200 - CAN_CTRLMODE_TDC_MANUAL = 0x400 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERROR_PASSIVE_THRESHOLD = 0x80 - CAN_ERROR_WARNING_THRESHOLD = 0x60 - CAN_ERR_ACK = 0x20 - CAN_ERR_BUSERROR = 0x80 - CAN_ERR_BUSOFF = 0x40 - CAN_ERR_CNT = 0x200 - CAN_ERR_CRTL = 0x4 - CAN_ERR_CRTL_ACTIVE = 0x40 - CAN_ERR_CRTL_RX_OVERFLOW = 0x1 - CAN_ERR_CRTL_RX_PASSIVE = 0x10 - CAN_ERR_CRTL_RX_WARNING = 0x4 - CAN_ERR_CRTL_TX_OVERFLOW = 0x2 - CAN_ERR_CRTL_TX_PASSIVE = 0x20 - CAN_ERR_CRTL_TX_WARNING = 0x8 - CAN_ERR_CRTL_UNSPEC = 0x0 - CAN_ERR_DLC = 0x8 - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_LOSTARB = 0x2 - CAN_ERR_LOSTARB_UNSPEC = 0x0 - CAN_ERR_MASK = 0x1fffffff - CAN_ERR_PROT = 0x8 - CAN_ERR_PROT_ACTIVE = 0x40 - CAN_ERR_PROT_BIT = 0x1 - CAN_ERR_PROT_BIT0 = 0x8 - CAN_ERR_PROT_BIT1 = 0x10 - CAN_ERR_PROT_FORM = 0x2 - CAN_ERR_PROT_LOC_ACK = 0x19 - CAN_ERR_PROT_LOC_ACK_DEL = 0x1b - CAN_ERR_PROT_LOC_CRC_DEL = 0x18 - CAN_ERR_PROT_LOC_CRC_SEQ = 0x8 - CAN_ERR_PROT_LOC_DATA = 0xa - CAN_ERR_PROT_LOC_DLC = 0xb - CAN_ERR_PROT_LOC_EOF = 0x1a - CAN_ERR_PROT_LOC_ID04_00 = 0xe - CAN_ERR_PROT_LOC_ID12_05 = 0xf - CAN_ERR_PROT_LOC_ID17_13 = 0x7 - CAN_ERR_PROT_LOC_ID20_18 = 0x6 - CAN_ERR_PROT_LOC_ID28_21 = 0x2 - CAN_ERR_PROT_LOC_IDE = 0x5 - CAN_ERR_PROT_LOC_INTERM = 0x12 - CAN_ERR_PROT_LOC_RES0 = 0x9 - CAN_ERR_PROT_LOC_RES1 = 0xd - CAN_ERR_PROT_LOC_RTR = 0xc - CAN_ERR_PROT_LOC_SOF = 0x3 - CAN_ERR_PROT_LOC_SRTR = 0x4 - CAN_ERR_PROT_LOC_UNSPEC = 0x0 - CAN_ERR_PROT_OVERLOAD = 0x20 - CAN_ERR_PROT_STUFF = 0x4 - CAN_ERR_PROT_TX = 0x80 - CAN_ERR_PROT_UNSPEC = 0x0 - CAN_ERR_RESTARTED = 0x100 - CAN_ERR_TRX = 0x10 - CAN_ERR_TRX_CANH_NO_WIRE = 0x4 - CAN_ERR_TRX_CANH_SHORT_TO_BAT = 0x5 - CAN_ERR_TRX_CANH_SHORT_TO_GND = 0x7 - CAN_ERR_TRX_CANH_SHORT_TO_VCC = 0x6 - CAN_ERR_TRX_CANL_NO_WIRE = 0x40 - CAN_ERR_TRX_CANL_SHORT_TO_BAT = 0x50 - CAN_ERR_TRX_CANL_SHORT_TO_CANH = 0x80 - CAN_ERR_TRX_CANL_SHORT_TO_GND = 0x70 - CAN_ERR_TRX_CANL_SHORT_TO_VCC = 0x60 - CAN_ERR_TRX_UNSPEC = 0x0 - CAN_ERR_TX_TIMEOUT = 0x1 - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_J1939 = 0x7 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MAX_RAW_DLC = 0xf - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x8 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RAW_XL_VCID_RX_FILTER = 0x4 - CAN_RAW_XL_VCID_TX_PASS = 0x2 - CAN_RAW_XL_VCID_TX_SET = 0x1 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TERMINATION_DISABLED = 0x0 - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_BPF = 0x27 - CAP_CHECKPOINT_RESTORE = 0x28 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x28 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_PERFMON = 0x26 - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CEPH_SUPER_MAGIC = 0xc36400 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIFS_SUPER_MAGIC = 0xff534d42 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_ARGS_SIZE_VER0 = 0x40 - CLONE_ARGS_SIZE_VER1 = 0x50 - CLONE_ARGS_SIZE_VER2 = 0x58 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_CLEAR_SIGHAND = 0x100000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_INTO_CGROUP = 0x200000000 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWTIME = 0x80 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CRAMFS_MAGIC = 0x28cd3d45 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CSIGNAL = 0xff - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d - DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e - DEVLINK_FLASH_OVERWRITE_IDENTIFIERS = 0x2 - DEVLINK_FLASH_OVERWRITE_SETTINGS = 0x1 - DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" - DEVLINK_GENL_NAME = "devlink" - DEVLINK_GENL_VERSION = 0x1 - DEVLINK_PORT_FN_CAP_IPSEC_CRYPTO = 0x4 - DEVLINK_PORT_FN_CAP_IPSEC_PACKET = 0x8 - DEVLINK_PORT_FN_CAP_MIGRATABLE = 0x2 - DEVLINK_PORT_FN_CAP_ROCE = 0x1 - DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 - DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS = 0x3 - DEVMEM_MAGIC = 0x454d444d - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DM_ACTIVE_PRESENT_FLAG = 0x20 - DM_BUFFER_FULL_FLAG = 0x100 - DM_CONTROL_NODE = "control" - DM_DATA_OUT_FLAG = 0x10000 - DM_DEFERRED_REMOVE = 0x20000 - DM_DEV_ARM_POLL = 0xc138fd10 - DM_DEV_CREATE = 0xc138fd03 - DM_DEV_REMOVE = 0xc138fd04 - DM_DEV_RENAME = 0xc138fd05 - DM_DEV_SET_GEOMETRY = 0xc138fd0f - DM_DEV_STATUS = 0xc138fd07 - DM_DEV_SUSPEND = 0xc138fd06 - DM_DEV_WAIT = 0xc138fd08 - DM_DIR = "mapper" - DM_GET_TARGET_VERSION = 0xc138fd11 - DM_IMA_MEASUREMENT_FLAG = 0x80000 - DM_INACTIVE_PRESENT_FLAG = 0x40 - DM_INTERNAL_SUSPEND_FLAG = 0x40000 - DM_IOCTL = 0xfd - DM_LIST_DEVICES = 0xc138fd02 - DM_LIST_VERSIONS = 0xc138fd0d - DM_MAX_TYPE_NAME = 0x10 - DM_NAME_LEN = 0x80 - DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID = 0x2 - DM_NAME_LIST_FLAG_HAS_UUID = 0x1 - DM_NOFLUSH_FLAG = 0x800 - DM_PERSISTENT_DEV_FLAG = 0x8 - DM_QUERY_INACTIVE_TABLE_FLAG = 0x1000 - DM_READONLY_FLAG = 0x1 - DM_REMOVE_ALL = 0xc138fd01 - DM_SECURE_DATA_FLAG = 0x8000 - DM_SKIP_BDGET_FLAG = 0x200 - DM_SKIP_LOCKFS_FLAG = 0x400 - DM_STATUS_TABLE_FLAG = 0x10 - DM_SUSPEND_FLAG = 0x2 - DM_TABLE_CLEAR = 0xc138fd0a - DM_TABLE_DEPS = 0xc138fd0b - DM_TABLE_LOAD = 0xc138fd09 - DM_TABLE_STATUS = 0xc138fd0c - DM_TARGET_MSG = 0xc138fd0e - DM_UEVENT_GENERATED_FLAG = 0x2000 - DM_UUID_FLAG = 0x4000 - DM_UUID_LEN = 0x81 - DM_VERSION = 0xc138fd00 - DM_VERSION_EXTRA = "-ioctl (2025-04-28)" - DM_VERSION_MAJOR = 0x4 - DM_VERSION_MINOR = 0x32 - DM_VERSION_PATCHLEVEL = 0x0 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - EM_386 = 0x3 - EM_486 = 0x6 - EM_68K = 0x4 - EM_860 = 0x7 - EM_88K = 0x5 - EM_AARCH64 = 0xb7 - EM_ALPHA = 0x9026 - EM_ALTERA_NIOS2 = 0x71 - EM_ARCOMPACT = 0x5d - EM_ARCV2 = 0xc3 - EM_ARM = 0x28 - EM_BLACKFIN = 0x6a - EM_BPF = 0xf7 - EM_CRIS = 0x4c - EM_CSKY = 0xfc - EM_CYGNUS_M32R = 0x9041 - EM_CYGNUS_MN10300 = 0xbeef - EM_FRV = 0x5441 - EM_H8_300 = 0x2e - EM_HEXAGON = 0xa4 - EM_IA_64 = 0x32 - EM_LOONGARCH = 0x102 - EM_M32 = 0x1 - EM_M32R = 0x58 - EM_MICROBLAZE = 0xbd - EM_MIPS = 0x8 - EM_MIPS_RS3_LE = 0xa - EM_MIPS_RS4_BE = 0xa - EM_MN10300 = 0x59 - EM_NDS32 = 0xa7 - EM_NONE = 0x0 - EM_OPENRISC = 0x5c - EM_PARISC = 0xf - EM_PPC = 0x14 - EM_PPC64 = 0x15 - EM_RISCV = 0xf3 - EM_S390 = 0x16 - EM_S390_OLD = 0xa390 - EM_SH = 0x2a - EM_SPARC = 0x2 - EM_SPARC32PLUS = 0x12 - EM_SPARCV9 = 0x2b - EM_SPU = 0x17 - EM_TILEGX = 0xbf - EM_TILEPRO = 0xbc - EM_TI_C6000 = 0x8c - EM_UNICORE = 0x6e - EM_X86_64 = 0x3e - EM_XTENSA = 0x5e - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - EPOLL_IOC_TYPE = 0x8a - EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 - ETHTOOL_BUSINFO_LEN = 0x20 - ETHTOOL_EROMVERS_LEN = 0x20 - ETHTOOL_FAMILY_NAME = "ethtool" - ETHTOOL_FAMILY_VERSION = 0x1 - ETHTOOL_FEC_AUTO = 0x2 - ETHTOOL_FEC_BASER = 0x10 - ETHTOOL_FEC_LLRS = 0x20 - ETHTOOL_FEC_NONE = 0x1 - ETHTOOL_FEC_OFF = 0x4 - ETHTOOL_FEC_RS = 0x8 - ETHTOOL_FLAG_ALL = 0x7 - ETHTOOL_FLASHDEV = 0x33 - ETHTOOL_FLASH_MAX_FILENAME = 0x80 - ETHTOOL_FWVERS_LEN = 0x20 - ETHTOOL_F_COMPAT = 0x4 - ETHTOOL_F_UNSUPPORTED = 0x1 - ETHTOOL_F_WISH = 0x2 - ETHTOOL_GCHANNELS = 0x3c - ETHTOOL_GCOALESCE = 0xe - ETHTOOL_GDRVINFO = 0x3 - ETHTOOL_GEEE = 0x44 - ETHTOOL_GEEPROM = 0xb - ETHTOOL_GENL_NAME = "ethtool" - ETHTOOL_GENL_VERSION = 0x1 - ETHTOOL_GET_DUMP_DATA = 0x40 - ETHTOOL_GET_DUMP_FLAG = 0x3f - ETHTOOL_GET_TS_INFO = 0x41 - ETHTOOL_GFEATURES = 0x3a - ETHTOOL_GFECPARAM = 0x50 - ETHTOOL_GFLAGS = 0x25 - ETHTOOL_GGRO = 0x2b - ETHTOOL_GGSO = 0x23 - ETHTOOL_GLINK = 0xa - ETHTOOL_GLINKSETTINGS = 0x4c - ETHTOOL_GMODULEEEPROM = 0x43 - ETHTOOL_GMODULEINFO = 0x42 - ETHTOOL_GMSGLVL = 0x7 - ETHTOOL_GPAUSEPARAM = 0x12 - ETHTOOL_GPERMADDR = 0x20 - ETHTOOL_GPFLAGS = 0x27 - ETHTOOL_GPHYSTATS = 0x4a - ETHTOOL_GREGS = 0x4 - ETHTOOL_GRINGPARAM = 0x10 - ETHTOOL_GRSSH = 0x46 - ETHTOOL_GRXCLSRLALL = 0x30 - ETHTOOL_GRXCLSRLCNT = 0x2e - ETHTOOL_GRXCLSRULE = 0x2f - ETHTOOL_GRXCSUM = 0x14 - ETHTOOL_GRXFH = 0x29 - ETHTOOL_GRXFHINDIR = 0x38 - ETHTOOL_GRXNTUPLE = 0x36 - ETHTOOL_GRXRINGS = 0x2d - ETHTOOL_GSET = 0x1 - ETHTOOL_GSG = 0x18 - ETHTOOL_GSSET_INFO = 0x37 - ETHTOOL_GSTATS = 0x1d - ETHTOOL_GSTRINGS = 0x1b - ETHTOOL_GTSO = 0x1e - ETHTOOL_GTUNABLE = 0x48 - ETHTOOL_GTXCSUM = 0x16 - ETHTOOL_GUFO = 0x21 - ETHTOOL_GWOL = 0x5 - ETHTOOL_MCGRP_MONITOR_NAME = "monitor" - ETHTOOL_NWAY_RST = 0x9 - ETHTOOL_PERQUEUE = 0x4b - ETHTOOL_PHYS_ID = 0x1c - ETHTOOL_PHY_EDPD_DFLT_TX_MSECS = 0xffff - ETHTOOL_PHY_EDPD_DISABLE = 0x0 - ETHTOOL_PHY_EDPD_NO_TX = 0xfffe - ETHTOOL_PHY_FAST_LINK_DOWN_OFF = 0xff - ETHTOOL_PHY_FAST_LINK_DOWN_ON = 0x0 - ETHTOOL_PHY_GTUNABLE = 0x4e - ETHTOOL_PHY_STUNABLE = 0x4f - ETHTOOL_RESET = 0x34 - ETHTOOL_RXNTUPLE_ACTION_CLEAR = -0x2 - ETHTOOL_RXNTUPLE_ACTION_DROP = -0x1 - ETHTOOL_RX_FLOW_SPEC_RING = 0xffffffff - ETHTOOL_RX_FLOW_SPEC_RING_VF = 0xff00000000 - ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF = 0x20 - ETHTOOL_SCHANNELS = 0x3d - ETHTOOL_SCOALESCE = 0xf - ETHTOOL_SEEE = 0x45 - ETHTOOL_SEEPROM = 0xc - ETHTOOL_SET_DUMP = 0x3e - ETHTOOL_SFEATURES = 0x3b - ETHTOOL_SFECPARAM = 0x51 - ETHTOOL_SFLAGS = 0x26 - ETHTOOL_SGRO = 0x2c - ETHTOOL_SGSO = 0x24 - ETHTOOL_SLINKSETTINGS = 0x4d - ETHTOOL_SMSGLVL = 0x8 - ETHTOOL_SPAUSEPARAM = 0x13 - ETHTOOL_SPFLAGS = 0x28 - ETHTOOL_SRINGPARAM = 0x11 - ETHTOOL_SRSSH = 0x47 - ETHTOOL_SRXCLSRLDEL = 0x31 - ETHTOOL_SRXCLSRLINS = 0x32 - ETHTOOL_SRXCSUM = 0x15 - ETHTOOL_SRXFH = 0x2a - ETHTOOL_SRXFHINDIR = 0x39 - ETHTOOL_SRXNTUPLE = 0x35 - ETHTOOL_SSET = 0x2 - ETHTOOL_SSG = 0x19 - ETHTOOL_STSO = 0x1f - ETHTOOL_STUNABLE = 0x49 - ETHTOOL_STXCSUM = 0x17 - ETHTOOL_SUFO = 0x22 - ETHTOOL_SWOL = 0x6 - ETHTOOL_TEST = 0x1a - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CANXL = 0xe - ETH_P_CFM = 0x8902 - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_DSA_A5PSW = 0xe001 - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_ETHERCAT = 0x88a4 - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MCTP = 0xfa - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MRP = 0x88e3 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PROFINET = 0x8892 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_REALTEK = 0x8899 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EV_ABS = 0x3 - EV_CNT = 0x20 - EV_FF = 0x15 - EV_FF_STATUS = 0x17 - EV_KEY = 0x1 - EV_LED = 0x11 - EV_MAX = 0x1f - EV_MSC = 0x4 - EV_PWR = 0x16 - EV_REL = 0x2 - EV_REP = 0x14 - EV_SND = 0x12 - EV_SW = 0x5 - EV_SYN = 0x0 - EV_VERSION = 0x10001 - EXABYTE_ENABLE_NEST = 0xf0 - EXFAT_SUPER_MAGIC = 0x2011bab0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_ALLOCATE_RANGE = 0x0 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - 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_EPIDFD = -0x2 - FAN_ERRNO_BITS = 0x8 - FAN_ERRNO_MASK = 0xff - FAN_ERRNO_SHIFT = 0x18 - FAN_EVENT_INFO_TYPE_DFID = 0x3 - FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 - FAN_EVENT_INFO_TYPE_ERROR = 0x5 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_INFO_TYPE_MNT = 0x7 - FAN_EVENT_INFO_TYPE_NEW_DFID_NAME = 0xc - FAN_EVENT_INFO_TYPE_OLD_DFID_NAME = 0xa - FAN_EVENT_INFO_TYPE_PIDFD = 0x4 - FAN_EVENT_INFO_TYPE_RANGE = 0x6 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_FS_ERROR = 0x8000 - FAN_INFO = 0x20 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_EVICTABLE = 0x200 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORE = 0x400 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_IGNORE_SURV = 0x440 - FAN_MARK_INODE = 0x0 - FAN_MARK_MNTNS = 0x110 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MNT_ATTACH = 0x1000000 - FAN_MNT_DETACH = 0x2000000 - 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_NOPIDFD = -0x1 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_PRE_ACCESS = 0x100000 - FAN_Q_OVERFLOW = 0x4000 - FAN_RENAME = 0x10000000 - FAN_REPORT_DFID_NAME = 0xc00 - FAN_REPORT_DFID_NAME_TARGET = 0x1e00 - FAN_REPORT_DIR_FID = 0x400 - FAN_REPORT_FD_ERROR = 0x2000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_MNT = 0x4000 - FAN_REPORT_NAME = 0x800 - FAN_REPORT_PIDFD = 0x80 - FAN_REPORT_TARGET_FID = 0x1000 - FAN_REPORT_TID = 0x100 - FAN_RESPONSE_INFO_AUDIT_RULE = 0x1 - FAN_RESPONSE_INFO_NONE = 0x0 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FIB_RULE_DEV_DETACHED = 0x8 - FIB_RULE_FIND_SADDR = 0x10000 - FIB_RULE_IIF_DETACHED = 0x8 - FIB_RULE_INVERT = 0x2 - FIB_RULE_OIF_DETACHED = 0x10 - FIB_RULE_PERMANENT = 0x1 - FIB_RULE_UNRESOLVED = 0x4 - FIDEDUPERANGE = 0xc0189436 - FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED = 0x1 - FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8 - FSCRYPT_KEY_DESC_PREFIX = "fscrypt:" - FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8 - FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10 - FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1 - FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2 - FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1 - FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2 - FSCRYPT_KEY_STATUS_ABSENT = 0x1 - FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1 - FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3 - FSCRYPT_KEY_STATUS_PRESENT = 0x2 - FSCRYPT_MAX_KEY_SIZE = 0x40 - FSCRYPT_MODE_ADIANTUM = 0x9 - FSCRYPT_MODE_AES_128_CBC = 0x5 - FSCRYPT_MODE_AES_128_CTS = 0x6 - FSCRYPT_MODE_AES_256_CTS = 0x4 - FSCRYPT_MODE_AES_256_HCTR2 = 0xa - FSCRYPT_MODE_AES_256_XTS = 0x1 - FSCRYPT_MODE_SM4_CTS = 0x8 - FSCRYPT_MODE_SM4_XTS = 0x7 - FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2 - FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3 - FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0 - FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1 - FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3 - FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4 - FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10 - FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8 - FSCRYPT_POLICY_V1 = 0x0 - FSCRYPT_POLICY_V2 = 0x2 - 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 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617 - FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a - FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616 - FS_IOC_MEASURE_VERITY = 0xc0046686 - FS_IOC_READ_VERITY_METADATA = 0xc0286687 - FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618 - FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FS_VERITY_FL = 0x100000 - FS_VERITY_HASH_ALG_SHA256 = 0x1 - FS_VERITY_HASH_ALG_SHA512 = 0x2 - FS_VERITY_METADATA_TYPE_DESCRIPTOR = 0x2 - FS_VERITY_METADATA_TYPE_MERKLE_TREE = 0x1 - FS_VERITY_METADATA_TYPE_SIGNATURE = 0x3 - FUSE_SUPER_MAGIC = 0x65735546 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_CREATED_QUERY = 0x404 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_DUPFD_QUERY = 0x403 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_SEAL_EXEC = 0x20 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_INSECURE = 0x4 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HID_MAX_DESCRIPTOR_SIZE = 0x1000 - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - IBSHIFT = 0x10 - ICRNL = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xb - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_CARRIER = 0x40 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - 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_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERNET = 0x8f - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_L2TP = 0x73 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MPTCP = 0x106 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_SMC = 0x100 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVERR_RFC4884 = 0x1f - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_LOCAL_PORT_RANGE = 0x33 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_PROTOCOL = 0x34 - IP_RECVERR = 0xb - IP_RECVERR_RFC4884 = 0x1a - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUTF8 = 0x4000 - IXANY = 0x800 - JFFS2_SUPER_MAGIC = 0x72b6 - KCMPROTO_CONNECTED = 0x0 - KCM_RECV_DISABLE = 0x1 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_LOONGARCH = 0x1020000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PARISC = 0xf0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_RISCV = 0xf30000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_CRASH_HOTPLUG_SUPPORT = 0x8 - KEXEC_FILE_DEBUG = 0x8 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEXEC_UPDATE_ELFCOREHDR = 0x4 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NOTIFICATIONS = 0x4 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEYCTL_WATCH_KEY = 0x20 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LANDLOCK_ACCESS_FS_EXECUTE = 0x1 - LANDLOCK_ACCESS_FS_IOCTL_DEV = 0x8000 - LANDLOCK_ACCESS_FS_MAKE_BLOCK = 0x800 - LANDLOCK_ACCESS_FS_MAKE_CHAR = 0x40 - LANDLOCK_ACCESS_FS_MAKE_DIR = 0x80 - LANDLOCK_ACCESS_FS_MAKE_FIFO = 0x400 - LANDLOCK_ACCESS_FS_MAKE_REG = 0x100 - LANDLOCK_ACCESS_FS_MAKE_SOCK = 0x200 - LANDLOCK_ACCESS_FS_MAKE_SYM = 0x1000 - LANDLOCK_ACCESS_FS_READ_DIR = 0x8 - LANDLOCK_ACCESS_FS_READ_FILE = 0x4 - LANDLOCK_ACCESS_FS_REFER = 0x2000 - LANDLOCK_ACCESS_FS_REMOVE_DIR = 0x10 - LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 - LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 - LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 - LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 - LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 - LANDLOCK_CREATE_RULESET_ERRATA = 0x2 - LANDLOCK_CREATE_RULESET_VERSION = 0x1 - LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON = 0x2 - LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF = 0x1 - LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF = 0x4 - LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET = 0x1 - LANDLOCK_SCOPE_SIGNAL = 0x2 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CONFIGURE = 0x4c0a - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LOOP_SET_STATUS_CLEARABLE_FLAGS = 0x4 - LOOP_SET_STATUS_SETTABLE_FLAGS = 0xc - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - LWTUNNEL_IP6_MAX = 0x8 - LWTUNNEL_IP_MAX = 0x8 - LWTUNNEL_IP_OPTS_MAX = 0x3 - LWTUNNEL_IP_OPT_ERSPAN_MAX = 0x4 - LWTUNNEL_IP_OPT_GENEVE_MAX = 0x3 - LWTUNNEL_IP_OPT_VXLAN_MAX = 0x1 - MADV_COLD = 0x14 - MADV_COLLAPSE = 0x19 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_DONTNEED_LOCKED = 0x18 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0x15 - MADV_POPULATE_READ = 0x16 - MADV_POPULATE_WRITE = 0x17 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_DROPPABLE = 0x8 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_HUGE_16GB = 0x88000000 - MAP_HUGE_16KB = 0x38000000 - MAP_HUGE_16MB = 0x60000000 - MAP_HUGE_1GB = 0x78000000 - MAP_HUGE_1MB = 0x50000000 - MAP_HUGE_256MB = 0x70000000 - MAP_HUGE_2GB = 0x7c000000 - MAP_HUGE_2MB = 0x54000000 - MAP_HUGE_32MB = 0x64000000 - MAP_HUGE_512KB = 0x4c000000 - MAP_HUGE_512MB = 0x74000000 - MAP_HUGE_64KB = 0x40000000 - MAP_HUGE_8MB = 0x5c000000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - 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 - MEMGETREGIONINFO = 0xc0104d08 - MEMREADOOB64 = 0xc0184d16 - MEMWRITE = 0xc0304d18 - MEMWRITEOOB64 = 0xc0184d15 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_EXEC = 0x10 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = 0x88000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MFD_NOEXEC_SEAL = 0x8 - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MNT_ID_REQ_SIZE_VER0 = 0x18 - MNT_ID_REQ_SIZE_VER1 = 0x20 - MNT_NS_INFO_SIZE_VER0 = 0x10 - MODULE_INIT_COMPRESSED_FILE = 0x4 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MOUNT_ATTR_IDMAP = 0x100000 - MOUNT_ATTR_NOATIME = 0x10 - MOUNT_ATTR_NODEV = 0x4 - MOUNT_ATTR_NODIRATIME = 0x80 - MOUNT_ATTR_NOEXEC = 0x8 - MOUNT_ATTR_NOSUID = 0x2 - MOUNT_ATTR_NOSYMFOLLOW = 0x200000 - MOUNT_ATTR_RDONLY = 0x1 - MOUNT_ATTR_RELATIME = 0x0 - MOUNT_ATTR_SIZE_VER0 = 0x20 - MOUNT_ATTR_STRICTATIME = 0x20 - MOUNT_ATTR__ATIME = 0x70 - MREMAP_DONTUNMAP = 0x4 - MREMAP_FIXED = 0x2 - MREMAP_MAYMOVE = 0x1 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SOCK_DEVMEM = 0x2000000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOSYMFOLLOW = 0x100 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_ABSENT = 0x0 - MTD_BIT_WRITEABLE = 0x800 - MTD_CAP_NANDFLASH = 0x400 - MTD_CAP_NORFLASH = 0xc00 - MTD_CAP_NVRAM = 0x1c00 - MTD_CAP_RAM = 0x1c00 - MTD_CAP_ROM = 0x0 - MTD_DATAFLASH = 0x6 - MTD_INODE_FS_MAGIC = 0x11307854 - MTD_MAX_ECCPOS_ENTRIES = 0x40 - MTD_MAX_OOBFREE_ENTRIES = 0x8 - MTD_MLCNANDFLASH = 0x8 - MTD_NANDECC_AUTOPLACE = 0x2 - MTD_NANDECC_AUTOPL_USR = 0x4 - MTD_NANDECC_OFF = 0x0 - MTD_NANDECC_PLACE = 0x1 - MTD_NANDECC_PLACEONLY = 0x3 - MTD_NANDFLASH = 0x4 - MTD_NORFLASH = 0x3 - MTD_NO_ERASE = 0x1000 - MTD_OTP_FACTORY = 0x1 - MTD_OTP_OFF = 0x0 - MTD_OTP_USER = 0x2 - MTD_POWERUP_LOCK = 0x2000 - MTD_RAM = 0x1 - MTD_ROM = 0x2 - MTD_SLC_ON_MLC_EMULATION = 0x4000 - MTD_UBIVOLUME = 0x7 - MTD_WRITEABLE = 0x400 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFC_ATR_REQ_GB_MAXSIZE = 0x30 - NFC_ATR_REQ_MAXSIZE = 0x40 - NFC_ATR_RES_GB_MAXSIZE = 0x2f - NFC_ATR_RES_MAXSIZE = 0x40 - NFC_ATS_MAXSIZE = 0x14 - NFC_COMM_ACTIVE = 0x0 - NFC_COMM_PASSIVE = 0x1 - NFC_DEVICE_NAME_MAXSIZE = 0x8 - NFC_DIRECTION_RX = 0x0 - NFC_DIRECTION_TX = 0x1 - NFC_FIRMWARE_NAME_MAXSIZE = 0x20 - NFC_GB_MAXSIZE = 0x30 - NFC_GENL_MCAST_EVENT_NAME = "events" - NFC_GENL_NAME = "nfc" - NFC_GENL_VERSION = 0x1 - NFC_HEADER_SIZE = 0x1 - NFC_ISO15693_UID_MAXSIZE = 0x8 - NFC_LLCP_MAX_SERVICE_NAME = 0x3f - NFC_LLCP_MIUX = 0x1 - NFC_LLCP_REMOTE_LTO = 0x3 - NFC_LLCP_REMOTE_MIU = 0x2 - NFC_LLCP_REMOTE_RW = 0x4 - NFC_LLCP_RW = 0x0 - NFC_NFCID1_MAXSIZE = 0xa - NFC_NFCID2_MAXSIZE = 0x8 - NFC_NFCID3_MAXSIZE = 0xa - NFC_PROTO_FELICA = 0x3 - NFC_PROTO_FELICA_MASK = 0x8 - NFC_PROTO_ISO14443 = 0x4 - NFC_PROTO_ISO14443_B = 0x6 - NFC_PROTO_ISO14443_B_MASK = 0x40 - NFC_PROTO_ISO14443_MASK = 0x10 - NFC_PROTO_ISO15693 = 0x7 - NFC_PROTO_ISO15693_MASK = 0x80 - NFC_PROTO_JEWEL = 0x1 - NFC_PROTO_JEWEL_MASK = 0x2 - NFC_PROTO_MAX = 0x8 - NFC_PROTO_MIFARE = 0x2 - NFC_PROTO_MIFARE_MASK = 0x4 - NFC_PROTO_NFC_DEP = 0x5 - NFC_PROTO_NFC_DEP_MASK = 0x20 - NFC_RAW_HEADER_SIZE = 0x2 - NFC_RF_INITIATOR = 0x0 - NFC_RF_NONE = 0x2 - NFC_RF_TARGET = 0x1 - NFC_SENSB_RES_MAXSIZE = 0xc - NFC_SENSF_RES_MAXSIZE = 0x12 - NFC_SE_DISABLED = 0x0 - NFC_SE_EMBEDDED = 0x2 - NFC_SE_ENABLED = 0x1 - NFC_SE_UICC = 0x1 - NFC_SOCKPROTO_LLCP = 0x1 - NFC_SOCKPROTO_MAX = 0x2 - NFC_SOCKPROTO_RAW = 0x0 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xd - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_HOOK = 0xc - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NFT_BITWISE_BOOL = 0x0 - NFT_CHAIN_FLAGS = 0x7 - NFT_CHAIN_MAXNAMELEN = 0x100 - NFT_CT_MAX = 0x17 - NFT_DATA_RESERVED_MASK = 0xffffff00 - NFT_DATA_VALUE_MAXLEN = 0x40 - NFT_EXTHDR_OP_MAX = 0x4 - NFT_FIB_RESULT_MAX = 0x3 - NFT_INNER_MASK = 0xf - NFT_LOGLEVEL_MAX = 0x8 - NFT_NAME_MAXLEN = 0x100 - NFT_NG_MAX = 0x1 - NFT_OBJECT_CONNLIMIT = 0x5 - NFT_OBJECT_COUNTER = 0x1 - NFT_OBJECT_CT_EXPECT = 0x9 - NFT_OBJECT_CT_HELPER = 0x3 - NFT_OBJECT_CT_TIMEOUT = 0x7 - NFT_OBJECT_LIMIT = 0x4 - NFT_OBJECT_MAX = 0xa - NFT_OBJECT_QUOTA = 0x2 - NFT_OBJECT_SECMARK = 0x8 - NFT_OBJECT_SYNPROXY = 0xa - NFT_OBJECT_TUNNEL = 0x6 - NFT_OBJECT_UNSPEC = 0x0 - NFT_OBJ_MAXNAMELEN = 0x100 - NFT_OSF_MAXGENRELEN = 0x10 - NFT_QUEUE_FLAG_BYPASS = 0x1 - NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 - NFT_QUEUE_FLAG_MASK = 0x3 - NFT_REG32_COUNT = 0x10 - NFT_REG32_SIZE = 0x4 - NFT_REG_MAX = 0x4 - NFT_REG_SIZE = 0x10 - NFT_REJECT_ICMPX_MAX = 0x3 - NFT_RT_MAX = 0x4 - NFT_SECMARK_CTX_MAXLEN = 0x1000 - NFT_SET_MAXNAMELEN = 0x100 - NFT_SOCKET_MAX = 0x3 - NFT_TABLE_F_MASK = 0x7 - NFT_TABLE_MAXNAMELEN = 0x100 - NFT_TRACETYPE_MAX = 0x3 - NFT_TUNNEL_F_MASK = 0x7 - NFT_TUNNEL_MAX = 0x1 - NFT_TUNNEL_MODE_MAX = 0x2 - NFT_USERDATA_MAXLEN = 0x100 - NFT_XFRM_KEY_MAX = 0x6 - NF_NAT_RANGE_MAP_IPS = 0x1 - NF_NAT_RANGE_MASK = 0x7f - NF_NAT_RANGE_NETMAP = 0x40 - NF_NAT_RANGE_PERSISTENT = 0x8 - NF_NAT_RANGE_PROTO_OFFSET = 0x20 - NF_NAT_RANGE_PROTO_RANDOM = 0x4 - NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 - NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 - NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_BULK = 0x200 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NSFS_MAGIC = 0x6e736673 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_IGNORE_OUTGOING = 0x4000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PACKET_VNET_HDR_SZ = 0x18 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PERF_ATTR_SIZE_VER0 = 0x40 - PERF_ATTR_SIZE_VER1 = 0x48 - PERF_ATTR_SIZE_VER2 = 0x50 - PERF_ATTR_SIZE_VER3 = 0x60 - PERF_ATTR_SIZE_VER4 = 0x68 - PERF_ATTR_SIZE_VER5 = 0x70 - PERF_ATTR_SIZE_VER6 = 0x78 - PERF_ATTR_SIZE_VER7 = 0x80 - PERF_ATTR_SIZE_VER8 = 0x88 - PERF_AUX_FLAG_COLLISION = 0x8 - PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT = 0x0 - PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW = 0x100 - PERF_AUX_FLAG_OVERWRITE = 0x2 - PERF_AUX_FLAG_PARTIAL = 0x4 - PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 - PERF_AUX_FLAG_TRUNCATED = 0x1 - PERF_BRANCH_ENTRY_INFO_BITS_MAX = 0x21 - PERF_BR_ARM64_DEBUG_DATA = 0x7 - PERF_BR_ARM64_DEBUG_EXIT = 0x5 - PERF_BR_ARM64_DEBUG_HALT = 0x4 - PERF_BR_ARM64_DEBUG_INST = 0x6 - PERF_BR_ARM64_FIQ = 0x3 - PERF_FLAG_FD_CLOEXEC = 0x8 - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_HW_EVENT_MASK = 0xffffffff - PERF_MAX_CONTEXTS_PER_STACK = 0x8 - PERF_MAX_STACK_DEPTH = 0x7f - PERF_MEM_BLK_ADDR = 0x4 - PERF_MEM_BLK_DATA = 0x2 - PERF_MEM_BLK_NA = 0x1 - PERF_MEM_BLK_SHIFT = 0x28 - PERF_MEM_HOPS_0 = 0x1 - PERF_MEM_HOPS_1 = 0x2 - PERF_MEM_HOPS_2 = 0x3 - PERF_MEM_HOPS_3 = 0x4 - PERF_MEM_HOPS_SHIFT = 0x2b - PERF_MEM_LOCK_LOCKED = 0x2 - PERF_MEM_LOCK_NA = 0x1 - PERF_MEM_LOCK_SHIFT = 0x18 - PERF_MEM_LVLNUM_ANY_CACHE = 0xb - PERF_MEM_LVLNUM_CXL = 0x9 - PERF_MEM_LVLNUM_IO = 0xa - PERF_MEM_LVLNUM_L1 = 0x1 - PERF_MEM_LVLNUM_L2 = 0x2 - PERF_MEM_LVLNUM_L2_MHB = 0x5 - PERF_MEM_LVLNUM_L3 = 0x3 - PERF_MEM_LVLNUM_L4 = 0x4 - PERF_MEM_LVLNUM_LFB = 0xc - PERF_MEM_LVLNUM_MSC = 0x6 - PERF_MEM_LVLNUM_NA = 0xf - PERF_MEM_LVLNUM_PMEM = 0xe - PERF_MEM_LVLNUM_RAM = 0xd - PERF_MEM_LVLNUM_SHIFT = 0x21 - PERF_MEM_LVLNUM_UNC = 0x8 - PERF_MEM_LVL_HIT = 0x2 - PERF_MEM_LVL_IO = 0x1000 - PERF_MEM_LVL_L1 = 0x8 - PERF_MEM_LVL_L2 = 0x20 - PERF_MEM_LVL_L3 = 0x40 - PERF_MEM_LVL_LFB = 0x10 - PERF_MEM_LVL_LOC_RAM = 0x80 - PERF_MEM_LVL_MISS = 0x4 - PERF_MEM_LVL_NA = 0x1 - PERF_MEM_LVL_REM_CCE1 = 0x400 - PERF_MEM_LVL_REM_CCE2 = 0x800 - PERF_MEM_LVL_REM_RAM1 = 0x100 - PERF_MEM_LVL_REM_RAM2 = 0x200 - PERF_MEM_LVL_SHIFT = 0x5 - PERF_MEM_LVL_UNC = 0x2000 - PERF_MEM_OP_EXEC = 0x10 - PERF_MEM_OP_LOAD = 0x2 - PERF_MEM_OP_NA = 0x1 - PERF_MEM_OP_PFETCH = 0x8 - PERF_MEM_OP_SHIFT = 0x0 - PERF_MEM_OP_STORE = 0x4 - PERF_MEM_REMOTE_REMOTE = 0x1 - PERF_MEM_REMOTE_SHIFT = 0x25 - PERF_MEM_SNOOPX_FWD = 0x1 - PERF_MEM_SNOOPX_PEER = 0x2 - PERF_MEM_SNOOPX_SHIFT = 0x26 - PERF_MEM_SNOOP_HIT = 0x4 - PERF_MEM_SNOOP_HITM = 0x10 - PERF_MEM_SNOOP_MISS = 0x8 - PERF_MEM_SNOOP_NA = 0x1 - PERF_MEM_SNOOP_NONE = 0x2 - PERF_MEM_SNOOP_SHIFT = 0x13 - PERF_MEM_TLB_HIT = 0x2 - PERF_MEM_TLB_L1 = 0x8 - PERF_MEM_TLB_L2 = 0x10 - PERF_MEM_TLB_MISS = 0x4 - PERF_MEM_TLB_NA = 0x1 - PERF_MEM_TLB_OS = 0x40 - PERF_MEM_TLB_SHIFT = 0x1a - PERF_MEM_TLB_WK = 0x20 - PERF_PMU_TYPE_SHIFT = 0x20 - PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER = 0x1 - PERF_RECORD_MISC_COMM_EXEC = 0x2000 - PERF_RECORD_MISC_CPUMODE_MASK = 0x7 - PERF_RECORD_MISC_CPUMODE_UNKNOWN = 0x0 - PERF_RECORD_MISC_EXACT_IP = 0x4000 - PERF_RECORD_MISC_EXT_RESERVED = 0x8000 - PERF_RECORD_MISC_FORK_EXEC = 0x2000 - PERF_RECORD_MISC_GUEST_KERNEL = 0x4 - PERF_RECORD_MISC_GUEST_USER = 0x5 - PERF_RECORD_MISC_HYPERVISOR = 0x3 - PERF_RECORD_MISC_KERNEL = 0x1 - PERF_RECORD_MISC_MMAP_BUILD_ID = 0x4000 - PERF_RECORD_MISC_MMAP_DATA = 0x2000 - PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT = 0x1000 - PERF_RECORD_MISC_SWITCH_OUT = 0x2000 - PERF_RECORD_MISC_SWITCH_OUT_PREEMPT = 0x4000 - PERF_RECORD_MISC_USER = 0x2 - PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 - PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 - PID_FS_MAGIC = 0x50494446 - PIPEFS_MAGIC = 0x50495045 - PPPIOCGNPMODE = 0xc008744c - PPPIOCNEWUNIT = 0xc004743e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROCFS_IOCTL_MAGIC = 'f' - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_FUTEX_HASH = 0x4e - PR_FUTEX_HASH_GET_IMMUTABLE = 0x3 - PR_FUTEX_HASH_GET_SLOTS = 0x2 - PR_FUTEX_HASH_SET_SLOTS = 0x1 - PR_GET_AUXV = 0x41555856 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_IO_FLUSHER = 0x3a - PR_GET_KEEPCAPS = 0x7 - PR_GET_MDWE = 0x42 - PR_GET_MEMORY_MERGE = 0x44 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SHADOW_STACK_STATUS = 0x4a - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_TAGGED_ADDR_CTRL = 0x38 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_LOCK_SHADOW_STACK_STATUS = 0x4c - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MDWE_NO_INHERIT = 0x2 - PR_MDWE_REFUSE_EXEC_GAIN = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_MTE_TAG_MASK = 0x7fff8 - PR_MTE_TAG_SHIFT = 0x3 - PR_MTE_TCF_ASYNC = 0x4 - PR_MTE_TCF_MASK = 0x6 - PR_MTE_TCF_NONE = 0x0 - PR_MTE_TCF_SHIFT = 0x1 - PR_MTE_TCF_SYNC = 0x2 - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_GET_ENABLED_KEYS = 0x3d - PR_PAC_RESET_KEYS = 0x36 - PR_PAC_SET_ENABLED_KEYS = 0x3c - PR_PMLEN_MASK = 0x7f000000 - PR_PMLEN_SHIFT = 0x18 - PR_PPC_DEXCR_CTRL_CLEAR = 0x4 - PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC = 0x10 - PR_PPC_DEXCR_CTRL_EDITABLE = 0x1 - PR_PPC_DEXCR_CTRL_MASK = 0x1f - PR_PPC_DEXCR_CTRL_SET = 0x2 - PR_PPC_DEXCR_CTRL_SET_ONEXEC = 0x8 - PR_PPC_DEXCR_IBRTPD = 0x1 - PR_PPC_DEXCR_NPHIE = 0x3 - PR_PPC_DEXCR_SBHE = 0x0 - PR_PPC_DEXCR_SRAPD = 0x2 - PR_PPC_GET_DEXCR = 0x48 - PR_PPC_SET_DEXCR = 0x49 - PR_RISCV_CTX_SW_FENCEI_OFF = 0x1 - PR_RISCV_CTX_SW_FENCEI_ON = 0x0 - PR_RISCV_SCOPE_PER_PROCESS = 0x0 - PR_RISCV_SCOPE_PER_THREAD = 0x1 - PR_RISCV_SET_ICACHE_FLUSH_CTX = 0x47 - PR_RISCV_V_GET_CONTROL = 0x46 - PR_RISCV_V_SET_CONTROL = 0x45 - PR_RISCV_V_VSTATE_CTRL_CUR_MASK = 0x3 - PR_RISCV_V_VSTATE_CTRL_DEFAULT = 0x0 - PR_RISCV_V_VSTATE_CTRL_INHERIT = 0x10 - PR_RISCV_V_VSTATE_CTRL_MASK = 0x1f - PR_RISCV_V_VSTATE_CTRL_NEXT_MASK = 0xc - PR_RISCV_V_VSTATE_CTRL_OFF = 0x1 - PR_RISCV_V_VSTATE_CTRL_ON = 0x2 - PR_SCHED_CORE = 0x3e - PR_SCHED_CORE_CREATE = 0x1 - PR_SCHED_CORE_GET = 0x0 - PR_SCHED_CORE_MAX = 0x4 - PR_SCHED_CORE_SCOPE_PROCESS_GROUP = 0x2 - PR_SCHED_CORE_SCOPE_THREAD = 0x0 - PR_SCHED_CORE_SCOPE_THREAD_GROUP = 0x1 - PR_SCHED_CORE_SHARE_FROM = 0x3 - PR_SCHED_CORE_SHARE_TO = 0x2 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_IO_FLUSHER = 0x39 - PR_SET_KEEPCAPS = 0x8 - PR_SET_MDWE = 0x41 - PR_SET_MEMORY_MERGE = 0x43 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SHADOW_STACK_STATUS = 0x4b - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_SYSCALL_USER_DISPATCH = 0x3b - PR_SET_TAGGED_ADDR_CTRL = 0x37 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SET_VMA = 0x53564d41 - PR_SET_VMA_ANON_NAME = 0x0 - PR_SHADOW_STACK_ENABLE = 0x1 - PR_SHADOW_STACK_PUSH = 0x4 - PR_SHADOW_STACK_WRITE = 0x2 - PR_SME_GET_VL = 0x40 - PR_SME_SET_VL = 0x3f - PR_SME_SET_VL_ONEXEC = 0x40000 - PR_SME_VL_INHERIT = 0x20000 - PR_SME_VL_LEN_MASK = 0xffff - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_L1D_FLUSH = 0x2 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_SYS_DISPATCH_OFF = 0x0 - PR_SYS_DISPATCH_ON = 0x1 - PR_TAGGED_ADDR_ENABLE = 0x1 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMER_CREATE_RESTORE_IDS = 0x4d - PR_TIMER_CREATE_RESTORE_IDS_GET = 0x2 - PR_TIMER_CREATE_RESTORE_IDS_OFF = 0x0 - PR_TIMER_CREATE_RESTORE_IDS_ON = 0x1 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTP_CLK_MAGIC = '=' - PTP_ENABLE_FEATURE = 0x1 - PTP_EXTTS_EDGES = 0x6 - PTP_EXTTS_EVENT_VALID = 0x1 - PTP_EXTTS_V1_VALID_FLAGS = 0x7 - PTP_EXTTS_VALID_FLAGS = 0x1f - PTP_EXT_OFFSET = 0x10 - PTP_FALLING_EDGE = 0x4 - PTP_MAX_SAMPLES = 0x19 - PTP_PEROUT_DUTY_CYCLE = 0x2 - PTP_PEROUT_ONE_SHOT = 0x1 - PTP_PEROUT_PHASE = 0x4 - PTP_PEROUT_V1_VALID_FLAGS = 0x0 - PTP_PEROUT_VALID_FLAGS = 0x7 - PTP_PIN_GETFUNC = 0xc0603d06 - PTP_PIN_GETFUNC2 = 0xc0603d0f - PTP_RISING_EDGE = 0x2 - PTP_STRICT_FLAGS = 0x8 - PTP_SYS_OFFSET_EXTENDED = 0xc4c03d09 - PTP_SYS_OFFSET_EXTENDED2 = 0xc4c03d12 - PTP_SYS_OFFSET_PRECISE = 0xc0403d08 - PTP_SYS_OFFSET_PRECISE2 = 0xc0403d11 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_RSEQ_CONFIGURATION = 0x420f - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_SYSCALL_INFO = 0x4212 - PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - P_ALL = 0x0 - P_PGID = 0x2 - P_PID = 0x1 - P_PIDFD = 0x3 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RAW_PAYLOAD_DIGITAL = 0x3 - RAW_PAYLOAD_HCI = 0x2 - RAW_PAYLOAD_LLCP = 0x0 - RAW_PAYLOAD_NCI = 0x1 - RAW_PAYLOAD_PROPRIETARY = 0x4 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0x1f - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TCP_USEC_TS = 0x10 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1f - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_BSM_DIRECT = 0x1 - RTC_BSM_DISABLED = 0x0 - RTC_BSM_LEVEL = 0x2 - RTC_BSM_STANDBY = 0x3 - RTC_FEATURE_ALARM = 0x0 - RTC_FEATURE_ALARM_RES_2S = 0x3 - RTC_FEATURE_ALARM_RES_MINUTE = 0x1 - RTC_FEATURE_ALARM_WAKEUP_ONLY = 0x7 - RTC_FEATURE_BACKUP_SWITCH_MODE = 0x6 - RTC_FEATURE_CNT = 0x8 - RTC_FEATURE_CORRECTION = 0x5 - RTC_FEATURE_NEED_WEEK_DAY = 0x2 - RTC_FEATURE_UPDATE_INTERRUPT = 0x4 - RTC_IRQF = 0x80 - RTC_MAX_FREQ = 0x2000 - RTC_PARAM_BACKUP_SWITCH_MODE = 0x2 - RTC_PARAM_CORRECTION = 0x1 - RTC_PARAM_FEATURES = 0x0 - RTC_PF = 0x40 - RTC_UF = 0x10 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTMGRP_DECnet_IFADDR = 0x1000 - RTMGRP_DECnet_ROUTE = 0x4000 - RTMGRP_IPV4_IFADDR = 0x10 - RTMGRP_IPV4_MROUTE = 0x20 - RTMGRP_IPV4_ROUTE = 0x40 - RTMGRP_IPV4_RULE = 0x80 - RTMGRP_IPV6_IFADDR = 0x100 - RTMGRP_IPV6_IFINFO = 0x800 - RTMGRP_IPV6_MROUTE = 0x200 - RTMGRP_IPV6_PREFIX = 0x20000 - RTMGRP_IPV6_ROUTE = 0x400 - RTMGRP_LINK = 0x1 - RTMGRP_NEIGH = 0x4 - RTMGRP_NOTIFY = 0x2 - RTMGRP_TC = 0x8 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELANYCAST = 0x3d - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELLINKPROP = 0x6d - RTM_DELMDB = 0x55 - RTM_DELMULTICAST = 0x39 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNEXTHOPBUCKET = 0x75 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_DELTUNNEL = 0x79 - RTM_DELVLAN = 0x71 - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_OFFLOAD = 0x4000 - RTM_F_OFFLOAD_FAILED = 0x20000000 - RTM_F_PREFIX = 0x800 - RTM_F_TRAP = 0x8000 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETLINKPROP = 0x6e - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNEXTHOPBUCKET = 0x76 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_GETTUNNEL = 0x7a - RTM_GETVLAN = 0x72 - RTM_MAX = 0x7b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWANYCAST = 0x3c - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWLINKPROP = 0x6c - RTM_NEWMDB = 0x54 - RTM_NEWMULTICAST = 0x38 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNEXTHOPBUCKET = 0x74 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NEWTUNNEL = 0x78 - RTM_NEWVLAN = 0x70 - RTM_NR_FAMILIES = 0x1b - RTM_NR_MSGTYPES = 0x6c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTM_SETSTATS = 0x5f - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x59 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_TRAP = 0x40 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KEEPALIVED = 0x12 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OPENR = 0x63 - RTPROT_OSPF = 0xbc - RTPROT_OVN = 0x54 - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - RWF_APPEND = 0x10 - RWF_ATOMIC = 0x40 - RWF_DONTCACHE = 0x80 - RWF_DSYNC = 0x2 - RWF_HIPRI = 0x1 - RWF_NOAPPEND = 0x20 - RWF_NOWAIT = 0x8 - RWF_SUPPORTED = 0xff - RWF_SYNC = 0x4 - RWF_WRITE_LIFE_NOT_SET = 0x0 - SCHED_BATCH = 0x3 - SCHED_DEADLINE = 0x6 - SCHED_EXT = 0x7 - SCHED_FIFO = 0x1 - SCHED_FLAG_ALL = 0x7f - SCHED_FLAG_DL_OVERRUN = 0x4 - SCHED_FLAG_KEEP_ALL = 0x18 - SCHED_FLAG_KEEP_PARAMS = 0x10 - SCHED_FLAG_KEEP_POLICY = 0x8 - SCHED_FLAG_RECLAIM = 0x2 - SCHED_FLAG_RESET_ON_FORK = 0x1 - SCHED_FLAG_UTIL_CLAMP = 0x60 - SCHED_FLAG_UTIL_CLAMP_MAX = 0x40 - SCHED_FLAG_UTIL_CLAMP_MIN = 0x20 - SCHED_IDLE = 0x5 - SCHED_NORMAL = 0x0 - SCHED_RESET_ON_FORK = 0x40000000 - SCHED_RR = 0x2 - SCM_CREDENTIALS = 0x2 - SCM_PIDFD = 0x4 - SCM_RIGHTS = 0x1 - SCM_SECURITY = 0x3 - SCM_TIMESTAMP = 0x1d - SC_LOG_FLUSH = 0x100000 - SECCOMP_ADDFD_FLAG_SEND = 0x2 - SECCOMP_ADDFD_FLAG_SETFD = 0x1 - SECCOMP_FILTER_FLAG_LOG = 0x2 - SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8 - SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4 - SECCOMP_FILTER_FLAG_TSYNC = 0x1 - SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10 - SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20 - SECCOMP_GET_ACTION_AVAIL = 0x2 - SECCOMP_GET_NOTIF_SIZES = 0x3 - SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100 - SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101 - SECCOMP_IOC_MAGIC = '!' - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECCOMP_RET_ACTION = 0x7fff0000 - SECCOMP_RET_ACTION_FULL = 0xffff0000 - SECCOMP_RET_ALLOW = 0x7fff0000 - SECCOMP_RET_DATA = 0xffff - SECCOMP_RET_ERRNO = 0x50000 - SECCOMP_RET_KILL = 0x0 - SECCOMP_RET_KILL_PROCESS = 0x80000000 - SECCOMP_RET_KILL_THREAD = 0x0 - SECCOMP_RET_LOG = 0x7ffc0000 - SECCOMP_RET_TRACE = 0x7ff00000 - SECCOMP_RET_TRAP = 0x30000 - SECCOMP_RET_USER_NOTIF = 0x7fc00000 - SECCOMP_SET_MODE_FILTER = 0x1 - SECCOMP_SET_MODE_STRICT = 0x0 - SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1 - SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1 - SECRETMEM_MAGIC = 0x5345434d - SECURITYFS_MAGIC = 0x73636673 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_MAX = 0x4 - SEEK_SET = 0x0 - SELINUX_MAGIC = 0xf97cff8c - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_OLD = 0x8906 - SIOCKCMATTACH = 0x89e0 - SIOCKCMCLONE = 0x89e2 - SIOCKCMUNATTACH = 0x89e1 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SK_DIAG_BPF_STORAGE_MAX = 0x3 - SK_DIAG_BPF_STORAGE_REQ_MAX = 0x1 - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB2_SUPER_MAGIC = 0xfe534d42 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_BUF_LOCK_MASK = 0x3 - SOCK_DCCP = 0x6 - SOCK_DESTROY = 0x15 - SOCK_DIAG_BY_FAMILY = 0x14 - SOCK_IOC_TYPE = 0x89 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RCVBUF_LOCK = 0x2 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_SNDBUF_LOCK = 0x1 - SOCK_TXREHASH_DEFAULT = 0xff - SOCK_TXREHASH_DISABLED = 0x0 - SOCK_TXREHASH_ENABLED = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_CAN_RAW = 0x65 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_MCTP = 0x11d - SOL_MPTCP = 0x11c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SMC = 0x11e - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_UDP = 0x11 - SOL_VSOCK = 0x11f - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x1000 - SO_ATTACH_FILTER = 0x1a - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_EE_RFC4884_FLAG_INVALID = 0x1 - SO_GET_FILTER = 0x1a - SO_NO_CHECK = 0xb - SO_PEERNAME = 0x1c - SO_PRIORITY = 0xc - SO_TIMESTAMP = 0x1d - SO_TIMESTAMP_OLD = 0x1d - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW = 0x8 - SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_DAX = 0x200000 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_MOUNT_ROOT = 0x2000 - STATX_ATTR_NODUMP = 0x40 - STATX_ATTR_VERITY = 0x100000 - STATX_ATTR_WRITE_ATOMIC = 0x400000 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_DIOALIGN = 0x2000 - STATX_DIO_READ_ALIGN = 0x20000 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MNT_ID = 0x1000 - STATX_MNT_ID_UNIQUE = 0x4000 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_SUBVOL = 0x8000 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX_WRITE_ATOMIC = 0x10000 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - 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_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 - TAB0 = 0x0 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x10 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_IFINDEX = 0x2 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_TX_DELAY = 0x25 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TFD_TIMER_ABSTIME = 0x1 - TFD_TIMER_CANCEL_ON_SET = 0x2 - TIMER_ABSTIME = 0x1 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RTS = 0x4 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_AEAD_ALG_NAME = 0x20 - TIPC_AEAD_KEYLEN_MAX = 0x24 - TIPC_AEAD_KEYLEN_MIN = 0x14 - TIPC_AEAD_KEY_SIZE_MAX = 0x48 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODELAY = 0x8a - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_REKEYING_NOW = 0xffffffff - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_GSO_TCP = 0x100 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - UBI_IOCECNFO = 0xc01c6f06 - UDF_SUPER_MAGIC = 0x15013346 - UDP_CORK = 0x1 - UDP_ENCAP = 0x64 - UDP_ENCAP_ESPINUDP = 0x2 - UDP_ENCAP_ESPINUDP_NON_IKE = 0x1 - UDP_ENCAP_GTP0 = 0x4 - UDP_ENCAP_GTP1U = 0x5 - UDP_ENCAP_L2TPINUDP = 0x3 - UDP_GRO = 0x68 - UDP_NO_CHECK6_RX = 0x66 - UDP_NO_CHECK6_TX = 0x65 - UDP_SEGMENT = 0x67 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_LOCAL = 0x1 - VMADDR_FLAG_TO_HOST = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VT0 = 0x0 - WAKE_MAGIC = 0x20 - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WDIOF_ALARMONLY = 0x400 - WDIOF_CARDRESET = 0x20 - WDIOF_EXTERN1 = 0x4 - WDIOF_EXTERN2 = 0x8 - WDIOF_FANFAULT = 0x2 - WDIOF_KEEPALIVEPING = 0x8000 - WDIOF_MAGICCLOSE = 0x100 - WDIOF_OVERHEAT = 0x1 - WDIOF_POWEROVER = 0x40 - WDIOF_POWERUNDER = 0x10 - WDIOF_PRETIMEOUT = 0x200 - WDIOF_SETTIMEOUT = 0x80 - WDIOF_UNKNOWN = -0x1 - WDIOS_DISABLECARD = 0x1 - WDIOS_ENABLECARD = 0x2 - WDIOS_TEMPPANIC = 0x4 - WDIOS_UNKNOWN = -0x1 - WEXITED = 0x4 - WGALLOWEDIP_A_MAX = 0x4 - WGDEVICE_A_MAX = 0x8 - WGPEER_A_MAX = 0xa - WG_CMD_MAX = 0x1 - WG_GENL_NAME = "wireguard" - WG_GENL_VERSION = 0x1 - WG_KEY_LEN = 0x20 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0x1f - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_REPLACE = 0x10 - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_PKT_CONTD = 0x1 - XDP_RING_NEED_WAKEUP = 0x1 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TXMD_FLAGS_CHECKSUM = 0x2 - XDP_TXMD_FLAGS_LAUNCH_TIME = 0x4 - XDP_TXMD_FLAGS_TIMESTAMP = 0x1 - XDP_TX_METADATA = 0x2 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_UMEM_TX_METADATA_LEN = 0x4 - XDP_UMEM_TX_SW_CSUM = 0x2 - XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 - XDP_USE_NEED_WAKEUP = 0x8 - XDP_USE_SG = 0x10 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - ZONEFS_MAGIC = 0x5a4f4653 - _HIDIOCGRAWNAME_LEN = 0x80 - _HIDIOCGRAWPHYS_LEN = 0x40 - _HIDIOCGRAWUNIQ_LEN = 0x40 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EAGAIN = syscall.Errno(0xb) - EBADF = syscall.Errno(0x9) - EBUSY = syscall.Errno(0x10) - ECHILD = syscall.Errno(0xa) - EDOM = syscall.Errno(0x21) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISDIR = syscall.Errno(0x15) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - ENFILE = syscall.Errno(0x17) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOMEM = syscall.Errno(0xc) - ENOSPC = syscall.Errno(0x1c) - ENOTBLK = syscall.Errno(0xf) - ENOTDIR = syscall.Errno(0x14) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EPERM = syscall.Errno(0x1) - EPIPE = syscall.Errno(0x20) - ERANGE = syscall.Errno(0x22) - EROFS = syscall.Errno(0x1e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ETXTBSY = syscall.Errno(0x1a) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) -) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go deleted file mode 100644 index 1c37f9f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ /dev/null @@ -1,876 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0xfd12 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FP_XSTATE_MAGIC2 = 0x46505845 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_32BIT = 0x40 - MAP_ABOVE4G = 0x80 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc03c4d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x8000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8008743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40087446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x400c744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40087447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffff - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8004700d - RTC_EPOCH_SET = 0x4004700e - RTC_IRQP_READ = 0x8004700b - RTC_IRQP_SET = 0x4004700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x801c7011 - RTC_PLL_SET = 0x401c7012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - 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 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x20 - X86_FXSR_MAGIC = 0x0 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go deleted file mode 100644 index 6f54d34..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ /dev/null @@ -1,876 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0xfd12 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FP_XSTATE_MAGIC2 = 0x46505845 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_32BIT = 0x40 - MAP_ABOVE4G = 0x80 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - PTRACE_ARCH_PRCTL = 0x1e - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - 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 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go deleted file mode 100644 index 783ec5c..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ /dev/null @@ -1,881 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0xfd12 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x20000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8008743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40087446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x400c744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40087447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffff - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - PTRACE_GETCRUNCHREGS = 0x19 - PTRACE_GETFDPIC = 0x1f - PTRACE_GETFDPIC_EXEC = 0x0 - PTRACE_GETFDPIC_INTERP = 0x1 - PTRACE_GETFPREGS = 0xe - PTRACE_GETHBPREGS = 0x1d - PTRACE_GETVFPREGS = 0x1b - PTRACE_GETWMMXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x16 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_SETCRUNCHREGS = 0x1a - PTRACE_SETFPREGS = 0xf - PTRACE_SETHBPREGS = 0x1e - PTRACE_SETVFPREGS = 0x1c - PTRACE_SETWMMXREGS = 0x13 - PTRACE_SET_SYSCALL = 0x17 - PT_DATA_ADDR = 0x10004 - PT_TEXT_ADDR = 0x10000 - PT_TEXT_END_ADDR = 0x10008 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8004700d - RTC_EPOCH_SET = 0x4004700e - RTC_IRQP_READ = 0x8004700b - RTC_IRQP_SET = 0x4004700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x801c7011 - RTC_PLL_SET = 0x401c7012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - 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 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x20 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go deleted file mode 100644 index ca83d3b..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ /dev/null @@ -1,878 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0xfd12 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - ESR_MAGIC = 0x45535201 - EXTPROC = 0x10000 - EXTRA_MAGIC = 0x45585401 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FPMR_MAGIC = 0x46504d52 - FPSIMD_MAGIC = 0x46508001 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GCS_MAGIC = 0x47435300 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - POE_MAGIC = 0x504f4530 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PROT_BTI = 0x10 - PROT_MTE = 0x20 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - PTRACE_PEEKMTETAGS = 0x21 - PTRACE_POKEMTETAGS = 0x22 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SVE_MAGIC = 0x53564501 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TPIDR2_MAGIC = 0x54504902 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - 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 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - ZA_MAGIC = 0x54366345 - ZT_MAGIC = 0x5a544e01 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go deleted file mode 100644 index 607e611..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +++ /dev/null @@ -1,868 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0xfd12 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FPU_CTX_MAGIC = 0x46505501 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - LASX_CTX_MAGIC = 0x41535801 - LBT_CTX_MAGIC = 0x42540001 - LSX_CTX_MAGIC = 0x53580001 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - 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 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go deleted file mode 100644 index b9cb5bd..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ /dev/null @@ -1,882 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0x2000fd12 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x2000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_RDLCK = 0x0 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_RENAME = 0x800 - MAP_STACK = 0x40000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - PTRACE_GETFPREGS = 0xe - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_SETFPREGS = 0xf - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - RLIMIT_AS = 0x6 - RLIMIT_MEMLOCK = 0x9 - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 - SIOCGPGRP = 0x40047309 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NONBLOCK = 0x80 - SOCK_STREAM = 0x2 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x80 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - 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 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VMIN = 0x4 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x20 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go deleted file mode 100644 index 65b078a..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ /dev/null @@ -1,882 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0x2000fd12 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x2000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_RENAME = 0x800 - MAP_STACK = 0x40000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - PTRACE_GETFPREGS = 0xe - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_SETFPREGS = 0xf - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - RLIMIT_AS = 0x6 - RLIMIT_MEMLOCK = 0x9 - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 - SIOCGPGRP = 0x40047309 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NONBLOCK = 0x80 - SOCK_STREAM = 0x2 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x80 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - 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 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VMIN = 0x4 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go deleted file mode 100644 index 5298a30..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ /dev/null @@ -1,882 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0x2000fd12 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x2000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_RENAME = 0x800 - MAP_STACK = 0x40000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - PTRACE_GETFPREGS = 0xe - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_SETFPREGS = 0xf - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - RLIMIT_AS = 0x6 - RLIMIT_MEMLOCK = 0x9 - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 - SIOCGPGRP = 0x40047309 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NONBLOCK = 0x80 - SOCK_STREAM = 0x2 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x80 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - 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 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VMIN = 0x4 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go deleted file mode 100644 index 7bc557c..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ /dev/null @@ -1,882 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mipsle && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0x2000fd12 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x2000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_RDLCK = 0x0 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_RENAME = 0x800 - MAP_STACK = 0x40000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - PTRACE_GETFPREGS = 0xe - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_SETFPREGS = 0xf - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - RLIMIT_AS = 0x6 - RLIMIT_MEMLOCK = 0x9 - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 - SIOCGPGRP = 0x40047309 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NONBLOCK = 0x80 - SOCK_STREAM = 0x2 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x80 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - 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 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VMIN = 0x4 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x20 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go deleted file mode 100644 index 152399b..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +++ /dev/null @@ -1,934 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x17 - B115200 = 0x11 - B1152000 = 0x18 - B1500000 = 0x19 - B2000000 = 0x1a - B230400 = 0x12 - B2500000 = 0x1b - B3000000 = 0x1c - B3500000 = 0x1d - B4000000 = 0x1e - B460800 = 0x13 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 - CBAUD = 0xff - CBAUDEX = 0x0 - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTOPB = 0x400 - DM_MPATH_PROBE_PATHS = 0x2000fd12 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000000 - FF1 = 0x4000 - FFDLY = 0x4000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x800000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40046601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80046602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - ISIG = 0x80 - IUCLC = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x10000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x1000 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PROT_SAO = 0x10 - PR_SET_PTRACER_ANY = 0xffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS64 = 0x16 - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETREGS64 = 0x17 - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPR31 = 0x6e - PT_FPSCR = 0x71 - PT_LNK = 0x24 - PT_MQ = 0x27 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_TRAP = 0x28 - PT_XER = 0x25 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x400000 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - 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 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VMIN = 0x5 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x20 - XCASE = 0x4000 - XTABS = 0xc00 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go deleted file mode 100644 index 1a1ce24..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ /dev/null @@ -1,938 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x17 - B115200 = 0x11 - B1152000 = 0x18 - B1500000 = 0x19 - B2000000 = 0x1a - B230400 = 0x12 - B2500000 = 0x1b - B3000000 = 0x1c - B3500000 = 0x1d - B4000000 = 0x1e - B460800 = 0x13 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 - CBAUD = 0xff - CBAUDEX = 0x0 - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTOPB = 0x400 - DM_MPATH_PROBE_PATHS = 0x2000fd12 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000000 - FF1 = 0x4000 - FFDLY = 0x4000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x800000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - ISIG = 0x80 - IUCLC = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x1000 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PROT_SAO = 0x10 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS64 = 0x16 - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETREGS64 = 0x17 - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x400000 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - 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 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VMIN = 0x5 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4000 - XTABS = 0xc00 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go deleted file mode 100644 index 4231a1f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ /dev/null @@ -1,938 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x17 - B115200 = 0x11 - B1152000 = 0x18 - B1500000 = 0x19 - B2000000 = 0x1a - B230400 = 0x12 - B2500000 = 0x1b - B3000000 = 0x1c - B3500000 = 0x1d - B4000000 = 0x1e - B460800 = 0x13 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 - CBAUD = 0xff - CBAUDEX = 0x0 - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTOPB = 0x400 - DM_MPATH_PROBE_PATHS = 0x2000fd12 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000000 - FF1 = 0x4000 - FFDLY = 0x4000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x800000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x80 - IUCLC = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - PARENB = 0x1000 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PROT_SAO = 0x10 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS64 = 0x16 - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETREGS64 = 0x17 - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x400000 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - 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 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VMIN = 0x5 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4000 - XTABS = 0xc00 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go deleted file mode 100644 index 21c0e95..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ /dev/null @@ -1,865 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0xfd12 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - PTRACE_GETFDPIC = 0x21 - PTRACE_GETFDPIC_EXEC = 0x0 - PTRACE_GETFDPIC_INTERP = 0x1 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - 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 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go deleted file mode 100644 index f00d1cd..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ /dev/null @@ -1,937 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go - -package unix - -import "syscall" - -const ( - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0xfd12 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FS_IOC_ENABLE_VERITY = 0x40806685 - FS_IOC_GETFLAGS = 0x80086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SETFLAGS = 0x40086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_RDLCK = 0x0 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCBRIDGECHAN = 0x40047435 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGIDLE32 = 0x8008743f - PPPIOCGIDLE64 = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - PTRACE_DISABLE_TE = 0x5010 - PTRACE_ENABLE_TE = 0x5009 - PTRACE_GET_LAST_BREAK = 0x5006 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_PEEKDATA_AREA = 0x5003 - PTRACE_PEEKTEXT_AREA = 0x5002 - PTRACE_PEEKUSR_AREA = 0x5000 - PTRACE_PEEK_SYSTEM_CALL = 0x5007 - PTRACE_POKEDATA_AREA = 0x5005 - PTRACE_POKETEXT_AREA = 0x5004 - PTRACE_POKEUSR_AREA = 0x5001 - PTRACE_POKE_SYSTEM_CALL = 0x5008 - PTRACE_PROT = 0x15 - PTRACE_SINGLEBLOCK = 0xc - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TE_ABORT_RAND = 0x5011 - PT_ACR0 = 0x90 - PT_ACR1 = 0x94 - PT_ACR10 = 0xb8 - PT_ACR11 = 0xbc - PT_ACR12 = 0xc0 - PT_ACR13 = 0xc4 - PT_ACR14 = 0xc8 - PT_ACR15 = 0xcc - PT_ACR2 = 0x98 - PT_ACR3 = 0x9c - PT_ACR4 = 0xa0 - PT_ACR5 = 0xa4 - PT_ACR6 = 0xa8 - PT_ACR7 = 0xac - PT_ACR8 = 0xb0 - PT_ACR9 = 0xb4 - PT_CR_10 = 0x168 - PT_CR_11 = 0x170 - PT_CR_9 = 0x160 - PT_ENDREGS = 0x1af - PT_FPC = 0xd8 - PT_FPR0 = 0xe0 - PT_FPR1 = 0xe8 - PT_FPR10 = 0x130 - PT_FPR11 = 0x138 - PT_FPR12 = 0x140 - PT_FPR13 = 0x148 - PT_FPR14 = 0x150 - PT_FPR15 = 0x158 - PT_FPR2 = 0xf0 - PT_FPR3 = 0xf8 - PT_FPR4 = 0x100 - PT_FPR5 = 0x108 - PT_FPR6 = 0x110 - PT_FPR7 = 0x118 - PT_FPR8 = 0x120 - PT_FPR9 = 0x128 - PT_GPR0 = 0x10 - PT_GPR1 = 0x18 - PT_GPR10 = 0x60 - PT_GPR11 = 0x68 - PT_GPR12 = 0x70 - PT_GPR13 = 0x78 - PT_GPR14 = 0x80 - PT_GPR15 = 0x88 - PT_GPR2 = 0x20 - PT_GPR3 = 0x28 - PT_GPR4 = 0x30 - PT_GPR5 = 0x38 - PT_GPR6 = 0x40 - PT_GPR7 = 0x48 - PT_GPR8 = 0x50 - PT_GPR9 = 0x58 - PT_IEEE_IP = 0x1a8 - PT_LASTOFF = 0x1a8 - PT_ORIGGPR2 = 0xd0 - PT_PSWADDR = 0x8 - PT_PSWMASK = 0x0 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - SCM_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0x1 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - 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 - SO_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSRIGHTS = 0x53 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - 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_TXREHASH = 0x4a - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TFD_CLOEXEC = 0x80000 - TFD_NONBLOCK = 0x800 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - 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 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go deleted file mode 100644 index bc8d539..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ /dev/null @@ -1,980 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go - -package unix - -import "syscall" - -const ( - ASI_LEON_DFLUSH = 0x11 - ASI_LEON_IFLUSH = 0x10 - ASI_LEON_MMUFLUSH = 0x18 - B1000000 = 0x1008 - B115200 = 0x1002 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B230400 = 0x1003 - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - B460800 = 0x1004 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTOPB = 0x40 - DM_MPATH_PROBE_PATHS = 0x2000fd12 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x400000 - EFD_NONBLOCK = 0x4000 - EMT_TAGOVF = 0x1 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x400000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x1000 - FS_IOC_ENABLE_VERITY = 0x80806685 - FS_IOC_GETFLAGS = 0x40086601 - FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SETFLAGS = 0x80086602 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - F_GETLK = 0x7 - F_GETLK64 = 0x7 - F_GETOWN = 0x5 - F_RDLCK = 0x1 - F_SETLK = 0x8 - F_SETLK64 = 0x8 - F_SETLKW = 0x9 - F_SETLKW64 = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - HIDIOCGRAWINFO = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x400000 - IN_NONBLOCK = 0x4000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_GROWSDOWN = 0x200 - MAP_HUGETLB = 0x40000 - MAP_LOCKED = 0x100 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_RENAME = 0x20 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x100000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x2000 - O_EXCL = 0x800 - O_FSYNC = 0x802000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x4004 - O_NOATIME = 0x200000 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x4000 - O_PATH = 0x1000000 - O_RSYNC = 0x802000 - O_SYNC = 0x802000 - O_TMPFILE = 0x2010000 - O_TRUNC = 0x400 - PARENB = 0x100 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCBRIDGECHAN = 0x80047435 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGIDLE32 = 0x4008743f - PPPIOCGIDLE64 = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCUNBRIDGECHAN = 0x20007434 - PPPIOCXFERUNIT = 0x2000744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - PTRACE_GETFPAREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPREGS64 = 0x19 - PTRACE_GETREGS64 = 0x16 - PTRACE_READDATA = 0x10 - PTRACE_READTEXT = 0x12 - PTRACE_SETFPAREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPREGS64 = 0x1a - PTRACE_SETREGS64 = 0x17 - PTRACE_SPARC_DETACH = 0xb - PTRACE_WRITEDATA = 0x11 - PTRACE_WRITETEXT = 0x13 - PT_FP = 0x48 - PT_G0 = 0x10 - PT_G1 = 0x14 - PT_G2 = 0x18 - PT_G3 = 0x1c - PT_G4 = 0x20 - PT_G5 = 0x24 - PT_G6 = 0x28 - PT_G7 = 0x2c - PT_I0 = 0x30 - PT_I1 = 0x34 - PT_I2 = 0x38 - PT_I3 = 0x3c - PT_I4 = 0x40 - PT_I5 = 0x44 - PT_I6 = 0x48 - PT_I7 = 0x4c - PT_NPC = 0x8 - PT_PC = 0x4 - PT_PSR = 0x0 - PT_REGS_MAGIC = 0x57ac6c00 - PT_TNPC = 0x90 - PT_TPC = 0x88 - PT_TSTATE = 0x80 - PT_V9_FP = 0x70 - PT_V9_G0 = 0x0 - PT_V9_G1 = 0x8 - PT_V9_G2 = 0x10 - PT_V9_G3 = 0x18 - PT_V9_G4 = 0x20 - PT_V9_G5 = 0x28 - PT_V9_G6 = 0x30 - PT_V9_G7 = 0x38 - PT_V9_I0 = 0x40 - PT_V9_I1 = 0x48 - PT_V9_I2 = 0x50 - PT_V9_I3 = 0x58 - PT_V9_I4 = 0x60 - PT_V9_I5 = 0x68 - PT_V9_I6 = 0x70 - PT_V9_I7 = 0x78 - PT_V9_MAGIC = 0x9c - PT_V9_TNPC = 0x90 - PT_V9_TPC = 0x88 - PT_V9_TSTATE = 0x80 - PT_V9_Y = 0x98 - PT_WIM = 0x10 - PT_Y = 0xc - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x6 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - SCM_DEVMEM_DMABUF = 0x58 - SCM_DEVMEM_LINEAR = 0x57 - SCM_TIMESTAMPING = 0x23 - SCM_TIMESTAMPING_OPT_STATS = 0x38 - SCM_TIMESTAMPING_PKTINFO = 0x3c - SCM_TIMESTAMPNS = 0x21 - SCM_TS_OPT_ID = 0x5a - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SF_FP = 0x38 - SF_I0 = 0x20 - SF_I1 = 0x24 - SF_I2 = 0x28 - SF_I3 = 0x2c - SF_I4 = 0x30 - SF_I5 = 0x34 - SF_L0 = 0x0 - SF_L1 = 0x4 - SF_L2 = 0x8 - SF_L3 = 0xc - SF_L4 = 0x10 - SF_L5 = 0x14 - SF_L6 = 0x18 - SF_L7 = 0x1c - SF_PC = 0x3c - SF_RETP = 0x40 - SF_V9_FP = 0x70 - SF_V9_I0 = 0x40 - SF_V9_I1 = 0x48 - SF_V9_I2 = 0x50 - SF_V9_I3 = 0x58 - SF_V9_I4 = 0x60 - SF_V9_I5 = 0x68 - SF_V9_L0 = 0x0 - SF_V9_L1 = 0x8 - SF_V9_L2 = 0x10 - SF_V9_L3 = 0x18 - SF_V9_L4 = 0x20 - SF_V9_L5 = 0x28 - SF_V9_L6 = 0x30 - SF_V9_L7 = 0x38 - SF_V9_PC = 0x78 - SF_V9_RETP = 0x80 - SF_V9_XARG0 = 0x88 - SF_V9_XARG1 = 0x90 - SF_V9_XARG2 = 0x98 - SF_V9_XARG3 = 0xa0 - SF_V9_XARG4 = 0xa8 - SF_V9_XARG5 = 0xb0 - SF_V9_XXARG = 0xb8 - SF_XARG0 = 0x44 - SF_XARG1 = 0x48 - SF_XARG2 = 0x4c - SF_XARG3 = 0x50 - SF_XARG4 = 0x54 - SF_XARG5 = 0x58 - SF_XXARG = 0x5c - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCSPGRP = 0x8902 - SOCK_CLOEXEC = 0x400000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x4000 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SO_ACCEPTCONN = 0x8000 - SO_ATTACH_BPF = 0x34 - 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 - SO_BUF_LOCK = 0x51 - SO_BUSY_POLL = 0x30 - SO_BUSY_POLL_BUDGET = 0x49 - SO_CNX_ADVICE = 0x37 - SO_COOKIE = 0x3b - SO_DETACH_REUSEPORT_BPF = 0x47 - SO_DEVMEM_DMABUF = 0x58 - SO_DEVMEM_DONTNEED = 0x59 - SO_DEVMEM_LINEAR = 0x57 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_INCOMING_CPU = 0x33 - SO_INCOMING_NAPI_ID = 0x3a - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x28 - SO_MARK = 0x22 - SO_MAX_PACING_RATE = 0x31 - SO_MEMINFO = 0x39 - SO_NETNS_COOKIE = 0x50 - SO_NOFCS = 0x27 - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x2 - SO_PASSPIDFD = 0x55 - SO_PASSRIGHTS = 0x5c - SO_PASSSEC = 0x1f - SO_PEEK_OFF = 0x26 - SO_PEERCRED = 0x40 - SO_PEERGROUPS = 0x3d - SO_PEERPIDFD = 0x56 - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x48 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x100b - SO_RCVLOWAT = 0x800 - SO_RCVMARK = 0x54 - SO_RCVPRIORITY = 0x5b - SO_RCVTIMEO = 0x2000 - SO_RCVTIMEO_NEW = 0x44 - SO_RCVTIMEO_OLD = 0x2000 - SO_RESERVE_MEM = 0x52 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x24 - SO_SECURITY_AUTHENTICATION = 0x5001 - SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 - SO_SELECT_ERR_QUEUE = 0x29 - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x100a - SO_SNDLOWAT = 0x1000 - SO_SNDTIMEO = 0x4000 - SO_SNDTIMEO_NEW = 0x45 - SO_SNDTIMEO_OLD = 0x4000 - 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_TXREHASH = 0x53 - SO_TXTIME = 0x3f - SO_TYPE = 0x1008 - SO_WIFI_STATUS = 0x25 - SO_ZEROCOPY = 0x3e - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x20005407 - TCGETA = 0x40125401 - TCGETS = 0x40245408 - TCGETS2 = 0x402c540c - TCSAFLUSH = 0x2 - TCSBRK = 0x20005405 - TCSBRKP = 0x5425 - TCSETA = 0x80125402 - TCSETAF = 0x80125404 - TCSETAW = 0x80125403 - TCSETS = 0x80245409 - TCSETS2 = 0x802c540d - TCSETSF = 0x8024540b - TCSETSF2 = 0x802c540f - TCSETSW = 0x8024540a - TCSETSW2 = 0x802c540e - TCXONC = 0x20005406 - TFD_CLOEXEC = 0x400000 - TFD_NONBLOCK = 0x4000 - TIOCCBRK = 0x2000747a - TIOCCONS = 0x20007424 - TIOCEXCL = 0x2000740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x40047400 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285443 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x40047483 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40047486 - TIOCGPTPEER = 0x20007489 - TIOCGRS485 = 0x40205441 - TIOCGSERIAL = 0x541e - TIOCGSID = 0x40047485 - TIOCGSOFTCAR = 0x40047464 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x545c - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007484 - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSETD = 0x80047401 - TIOCSIG = 0x80047488 - TIOCSISO7816 = 0xc0285444 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x80047482 - TIOCSPTLCK = 0x80047487 - TIOCSRS485 = 0xc0205442 - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x80047465 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x20005437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - 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 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VMIN = 0x6 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WORDSIZE = 0x40 - XCASE = 0x4 - XTABS = 0x1800 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 - __TIOCFLUSH = 0x80047410 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EADV = syscall.Errno(0x53) - EAFNOSUPPORT = syscall.Errno(0x2f) - EALREADY = syscall.Errno(0x25) - EBADE = syscall.Errno(0x66) - EBADFD = syscall.Errno(0x5d) - EBADMSG = syscall.Errno(0x4c) - EBADR = syscall.Errno(0x67) - EBADRQC = syscall.Errno(0x6a) - EBADSLT = syscall.Errno(0x6b) - EBFONT = syscall.Errno(0x6d) - ECANCELED = syscall.Errno(0x7f) - ECHRNG = syscall.Errno(0x5e) - ECOMM = syscall.Errno(0x55) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0x4e) - EDEADLOCK = syscall.Errno(0x6c) - EDESTADDRREQ = syscall.Errno(0x27) - EDOTDOT = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EHWPOISON = syscall.Errno(0x87) - EIDRM = syscall.Errno(0x4d) - EILSEQ = syscall.Errno(0x7a) - EINPROGRESS = syscall.Errno(0x24) - EISCONN = syscall.Errno(0x38) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x81) - EKEYREJECTED = syscall.Errno(0x83) - EKEYREVOKED = syscall.Errno(0x82) - EL2HLT = syscall.Errno(0x65) - EL2NSYNC = syscall.Errno(0x5f) - EL3HLT = syscall.Errno(0x60) - EL3RST = syscall.Errno(0x61) - ELIBACC = syscall.Errno(0x72) - ELIBBAD = syscall.Errno(0x70) - ELIBEXEC = syscall.Errno(0x6e) - ELIBMAX = syscall.Errno(0x7b) - ELIBSCN = syscall.Errno(0x7c) - ELNRNG = syscall.Errno(0x62) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x7e) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x57) - ENAMETOOLONG = syscall.Errno(0x3f) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENOANO = syscall.Errno(0x69) - ENOBUFS = syscall.Errno(0x37) - ENOCSI = syscall.Errno(0x64) - ENODATA = syscall.Errno(0x6f) - ENOKEY = syscall.Errno(0x80) - ENOLCK = syscall.Errno(0x4f) - ENOLINK = syscall.Errno(0x52) - ENOMEDIUM = syscall.Errno(0x7d) - ENOMSG = syscall.Errno(0x4b) - ENONET = syscall.Errno(0x50) - ENOPKG = syscall.Errno(0x71) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSR = syscall.Errno(0x4a) - ENOSTR = syscall.Errno(0x48) - ENOSYS = syscall.Errno(0x5a) - ENOTCONN = syscall.Errno(0x39) - ENOTEMPTY = syscall.Errno(0x42) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x85) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTUNIQ = syscall.Errno(0x73) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x5c) - EOWNERDEAD = syscall.Errno(0x84) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPROCLIM = syscall.Errno(0x43) - EPROTO = syscall.Errno(0x56) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EREMCHG = syscall.Errno(0x59) - EREMOTE = syscall.Errno(0x47) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x74) - ERFKILL = syscall.Errno(0x86) - ERREMOTE = syscall.Errno(0x51) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESRMNT = syscall.Errno(0x54) - ESTALE = syscall.Errno(0x46) - ESTRPIPE = syscall.Errno(0x5b) - ETIME = syscall.Errno(0x49) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x63) - EUSERS = syscall.Errno(0x44) - EXFULL = syscall.Errno(0x68) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x17) - SIGLOST = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x17) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1d) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {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, "ENOTSUP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "cannot 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", "transport endpoint is already connected"}, - {57, "ENOTCONN", "transport endpoint is not connected"}, - {58, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {59, "ETOOMANYREFS", "too many references: cannot splice"}, - {60, "ETIMEDOUT", "connection 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 file handle"}, - {71, "EREMOTE", "object is remote"}, - {72, "ENOSTR", "device not a stream"}, - {73, "ETIME", "timer expired"}, - {74, "ENOSR", "out of streams resources"}, - {75, "ENOMSG", "no message of desired type"}, - {76, "EBADMSG", "bad message"}, - {77, "EIDRM", "identifier removed"}, - {78, "EDEADLK", "resource deadlock avoided"}, - {79, "ENOLCK", "no locks available"}, - {80, "ENONET", "machine is not on the network"}, - {81, "ERREMOTE", "unknown error 81"}, - {82, "ENOLINK", "link has been severed"}, - {83, "EADV", "advertise error"}, - {84, "ESRMNT", "srmount error"}, - {85, "ECOMM", "communication error on send"}, - {86, "EPROTO", "protocol error"}, - {87, "EMULTIHOP", "multihop attempted"}, - {88, "EDOTDOT", "RFS specific error"}, - {89, "EREMCHG", "remote address changed"}, - {90, "ENOSYS", "function not implemented"}, - {91, "ESTRPIPE", "streams pipe error"}, - {92, "EOVERFLOW", "value too large for defined data type"}, - {93, "EBADFD", "file descriptor in bad state"}, - {94, "ECHRNG", "channel number out of range"}, - {95, "EL2NSYNC", "level 2 not synchronized"}, - {96, "EL3HLT", "level 3 halted"}, - {97, "EL3RST", "level 3 reset"}, - {98, "ELNRNG", "link number out of range"}, - {99, "EUNATCH", "protocol driver not attached"}, - {100, "ENOCSI", "no CSI structure available"}, - {101, "EL2HLT", "level 2 halted"}, - {102, "EBADE", "invalid exchange"}, - {103, "EBADR", "invalid request descriptor"}, - {104, "EXFULL", "exchange full"}, - {105, "ENOANO", "no anode"}, - {106, "EBADRQC", "invalid request code"}, - {107, "EBADSLT", "invalid slot"}, - {108, "EDEADLOCK", "file locking deadlock error"}, - {109, "EBFONT", "bad font file format"}, - {110, "ELIBEXEC", "cannot exec a shared library directly"}, - {111, "ENODATA", "no data available"}, - {112, "ELIBBAD", "accessing a corrupted shared library"}, - {113, "ENOPKG", "package not installed"}, - {114, "ELIBACC", "can not access a needed shared library"}, - {115, "ENOTUNIQ", "name not unique on network"}, - {116, "ERESTART", "interrupted system call should be restarted"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {123, "ELIBMAX", "attempting to link in too many shared libraries"}, - {124, "ELIBSCN", ".lib section in a.out corrupted"}, - {125, "ENOMEDIUM", "no medium found"}, - {126, "EMEDIUMTYPE", "wrong medium type"}, - {127, "ECANCELED", "operation canceled"}, - {128, "ENOKEY", "required key not available"}, - {129, "EKEYEXPIRED", "key has expired"}, - {130, "EKEYREVOKED", "key has been revoked"}, - {131, "EKEYREJECTED", "key was rejected by service"}, - {132, "EOWNERDEAD", "owner died"}, - {133, "ENOTRECOVERABLE", "state not recoverable"}, - {134, "ERFKILL", "operation not possible due to RF-kill"}, - {135, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGLOST", "power failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go deleted file mode 100644 index 130085d..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +++ /dev/null @@ -1,1779 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - 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_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x400c427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x800c427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80084272 - BIOCSUDPF = 0x80084273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SIGHAND = 0x800 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - EN_SW_CTL_INF = 0x1000 - EN_SW_CTL_PREC = 0x300 - EN_SW_CTL_ROUND = 0xc00 - EN_SW_DATACHAIN = 0x80 - EN_SW_DENORM = 0x2 - EN_SW_INVOP = 0x1 - EN_SW_OVERFLOW = 0x8 - EN_SW_PRECLOSS = 0x20 - EN_SW_UNDERFLOW = 0x10 - EN_SW_ZERODIV = 0x4 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - 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_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_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - 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 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - 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_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_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 = 0xf1 - 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_STF = 0xd7 - 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 - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - 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_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - 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 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - 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_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - 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_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc01c697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0946920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0086926 - SIOCGIFDATA = 0xc0946985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc01c6987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCINITIFADDR = 0xc0446984 - SIOCSDRVSPEC = 0x801c697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8094691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x801c6988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0946986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - 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_IFWHT = 0xe000 - 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 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x400c7458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - 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 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80047445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80047444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// 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(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - 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(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x60) - 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) - ETIME = syscall.Errno(0x5c) - 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) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - 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 or too small"}, - {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 option 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", "connection 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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "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, "SIGIOT", "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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {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, "SIGPWR", "power fail/restart"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go deleted file mode 100644 index 84769a1..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +++ /dev/null @@ -1,1769 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - 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_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x8010427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80104272 - BIOCSUDPF = 0x80104273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SIGHAND = 0x800 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - 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_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_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - 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 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - 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_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_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 = 0xf1 - 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_STF = 0xd7 - 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 - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - 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_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - 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 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - 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_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - 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_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8038720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8038720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc028697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0986920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0106926 - SIOCGIFDATA = 0xc0986985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0306936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc0286987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc0106978 - SIOCINITIFADDR = 0xc0706984 - SIOCSDRVSPEC = 0x8028697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8098691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x80286988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0986986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - 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_IFWHT = 0xe000 - 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 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - 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 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80087445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80087444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// 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(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - 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(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x60) - 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) - ETIME = syscall.Errno(0x5c) - 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) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - 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 or too small"}, - {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 option 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", "connection 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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "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, "SIGIOT", "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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {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, "SIGPWR", "power fail/restart"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go deleted file mode 100644 index 602ded0..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +++ /dev/null @@ -1,1758 +0,0 @@ -// mkerrors.sh -marm -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -marm _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - 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_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x400c427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x800c427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80084272 - BIOCSUDPF = 0x80084273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - 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_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_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - 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 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - 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_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_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 = 0xf1 - 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_STF = 0xd7 - 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 - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - 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_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - 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 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - 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_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - 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_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PRI_IOFLUSH = 0x7c - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc01c697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0946920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0086926 - SIOCGIFDATA = 0xc0946985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc01c6987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCINITIFADDR = 0xc0446984 - SIOCSDRVSPEC = 0x801c697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8094691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x801c6988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0946986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - 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_IFWHT = 0xe000 - 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 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x400c7458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - 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 - TIOCPTMGET = 0x48087446 - TIOCPTSNAME = 0x48087448 - TIOCRCVFRAME = 0x80047445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80047444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// 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(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - 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(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x60) - 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) - ETIME = syscall.Errno(0x5c) - 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) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - 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 or too small"}, - {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 option 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", "connection 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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "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, "SIGIOT", "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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {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, "SIGPWR", "power fail/restart"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go deleted file mode 100644 index efc0406..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +++ /dev/null @@ -1,1769 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - 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_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x8010427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80104272 - BIOCSUDPF = 0x80104273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SIGHAND = 0x800 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - 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_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_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - 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 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - 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_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_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 = 0xf1 - 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_STF = 0xd7 - 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 - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - 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_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - 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 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - 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_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - 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_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8038720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8038720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc028697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0986920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0106926 - SIOCGIFDATA = 0xc0986985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0306936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc0286987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc0106978 - SIOCINITIFADDR = 0xc0706984 - SIOCSDRVSPEC = 0x8028697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8098691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x80286988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0986986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - 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_IFWHT = 0xe000 - 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 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - 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 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80087445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80087444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// 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(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - 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(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x60) - 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) - ETIME = syscall.Errno(0x5c) - 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) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - 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 or too small"}, - {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 option 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", "connection 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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "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, "SIGIOT", "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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {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, "SIGPWR", "power fail/restart"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go deleted file mode 100644 index 5a6500f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _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 = 0xc008427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x400c426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80084277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x800c426d - 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - 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 - DIOCADDQUEUE = 0xc100445d - DIOCADDRULE = 0xccc84404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xccc8441a - DIOCCLRIFFLAG = 0xc024445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0d04412 - DIOCCLRSTATUS = 0xc0244416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1084460 - DIOCGETQUEUE = 0xc100445f - DIOCGETQUEUES = 0xc100445e - DIOCGETRULE = 0xccc84407 - DIOCGETRULES = 0xccc84406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0084454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0084419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0244457 - DIOCKILLSRCNODES = 0xc068445b - DIOCKILLSTATES = 0xc0d04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc084444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0844450 - DIOCRADDADDRS = 0xc44c4443 - DIOCRADDTABLES = 0xc44c443d - DIOCRCLRADDRS = 0xc44c4442 - DIOCRCLRASTATS = 0xc44c4448 - DIOCRCLRTABLES = 0xc44c443c - DIOCRCLRTSTATS = 0xc44c4441 - DIOCRDELADDRS = 0xc44c4444 - DIOCRDELTABLES = 0xc44c443e - DIOCRGETADDRS = 0xc44c4446 - DIOCRGETASTATS = 0xc44c4447 - DIOCRGETTABLES = 0xc44c443f - DIOCRGETTSTATS = 0xc44c4440 - DIOCRINADEFINE = 0xc44c444d - DIOCRSETADDRS = 0xc44c4445 - DIOCRSETTFLAGS = 0xc44c444a - DIOCRTSTADDRS = 0xc44c4449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0244459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0244414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc00c4451 - DIOCXCOMMIT = 0xc00c4452 - DIOCXROLLBACK = 0xc00c4453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_MACSEC = 0x88e5 - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x805c693c - SIOCBRDGADDL = 0x805c6949 - SIOCBRDGADDS = 0x805c6941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x805c693d - SIOCBRDGDELS = 0x805c6942 - SIOCBRDGFLUSH = 0x805c6948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc05c693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc03c6958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc028694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc05c6942 - SIOCBRDGRTS = 0xc0186943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x805c6955 - SIOCBRDGSIFFLGS = 0x805c693f - SIOCBRDGSIFPRIO = 0x805c6954 - SIOCBRDGSIFPROT = 0x805c694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc024698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc024698d - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0386938 - 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 - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8024698c - 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 - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - 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_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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_SACKHOLE_LIMIT = 0x80 - 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 = 0x400c745b - 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, "SIGIOT", "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"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go deleted file mode 100644 index a5aeeb9..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - 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 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_MACSEC = 0x88e5 - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - SIOCGRXHPRIO = 0xc02069db - 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 - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - 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_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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_SACKHOLE_LIMIT = 0x80 - 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, "SIGIOT", "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"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go deleted file mode 100644 index 0e9748a..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- _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 = 0xc008427b - 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 = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80084277 - 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - 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 - DIOCADDQUEUE = 0xc100445d - DIOCADDRULE = 0xcce04404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcce0441a - DIOCCLRIFFLAG = 0xc024445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0d04412 - DIOCCLRSTATUS = 0xc0244416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1084460 - DIOCGETQUEUE = 0xc100445f - DIOCGETQUEUES = 0xc100445e - DIOCGETRULE = 0xcce04407 - DIOCGETRULES = 0xcce04406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0084454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0084419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0244457 - DIOCKILLSRCNODES = 0xc068445b - DIOCKILLSTATES = 0xc0d04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc44c4443 - DIOCRADDTABLES = 0xc44c443d - DIOCRCLRADDRS = 0xc44c4442 - DIOCRCLRASTATS = 0xc44c4448 - DIOCRCLRTABLES = 0xc44c443c - DIOCRCLRTSTATS = 0xc44c4441 - DIOCRDELADDRS = 0xc44c4444 - DIOCRDELTABLES = 0xc44c443e - DIOCRGETADDRS = 0xc44c4446 - DIOCRGETASTATS = 0xc44c4447 - DIOCRGETTABLES = 0xc44c443f - DIOCRGETTSTATS = 0xc44c4440 - DIOCRINADEFINE = 0xc44c444d - DIOCRSETADDRS = 0xc44c4445 - DIOCRSETTFLAGS = 0xc44c444a - DIOCRTSTADDRS = 0xc44c4449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0244459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0244414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc00c4451 - DIOCXCOMMIT = 0xc00c4452 - DIOCXROLLBACK = 0xc00c4453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_MACSEC = 0x88e5 - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc028694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0186943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc024698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc024698d - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0386938 - 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 - SIOCGRXHPRIO = 0xc02069db - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGTXHPRIO = 0xc02069c6 - SIOCGUMBINFO = 0xc02069be - SIOCGUMBPARAM = 0xc02069c0 - SIOCGVH = 0xc02069f6 - SIOCGVNETFLOWID = 0xc02069c4 - SIOCGVNETID = 0xc02069a7 - SIOCIFAFATTACH = 0x801169ab - SIOCIFAFDETACH = 0x801169ac - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8024698c - 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 - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - 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_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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_SACKHOLE_LIMIT = 0x80 - 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, "SIGIOT", "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"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} 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 4f4449a..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go: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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - 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 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_MACSEC = 0x88e5 - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - SIOCGRXHPRIO = 0xc02069db - 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 - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - 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_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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_SACKHOLE_LIMIT = 0x80 - 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, "SIGIOT", "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"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go deleted file mode 100644 index 76a363f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - 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 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_MACSEC = 0x88e5 - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - 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 = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - SIOCGRXHPRIO = 0xc02069db - 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 - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - 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_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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_SACKHOLE_LIMIT = 0x80 - 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, "SIGIOT", "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"}, - {81920, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go deleted file mode 100644 index 43ca0cd..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +++ /dev/null @@ -1,1904 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - 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 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_MACSEC = 0x88e5 - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - 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 = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - SIOCGRXHPRIO = 0xc02069db - 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 - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - 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_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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_SACKHOLE_LIMIT = 0x80 - 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/zerrors_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go deleted file mode 100644 index b1b8bb2..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +++ /dev/null @@ -1,1903 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - CPUSTATES = 0x6 - CP_IDLE = 0x5 - CP_INTR = 0x4 - CP_NICE = 0x1 - CP_SPIN = 0x3 - CP_SYS = 0x2 - CP_USER = 0x0 - 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 - DIOCADDQUEUE = 0xc110445d - DIOCADDRULE = 0xcd604404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcd60441a - DIOCCLRIFFLAG = 0xc028445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0e04412 - DIOCCLRSTATUS = 0xc0284416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1204460 - DIOCGETQUEUE = 0xc110445f - DIOCGETQUEUES = 0xc110445e - DIOCGETRULE = 0xcd604407 - DIOCGETRULES = 0xcd604406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0104454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0104419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0284457 - DIOCKILLSRCNODES = 0xc080445b - DIOCKILLSTATES = 0xc0e04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc4504443 - DIOCRADDTABLES = 0xc450443d - DIOCRCLRADDRS = 0xc4504442 - DIOCRCLRASTATS = 0xc4504448 - DIOCRCLRTABLES = 0xc450443c - DIOCRCLRTSTATS = 0xc4504441 - DIOCRDELADDRS = 0xc4504444 - DIOCRDELTABLES = 0xc450443e - DIOCRGETADDRS = 0xc4504446 - DIOCRGETASTATS = 0xc4504447 - DIOCRGETTABLES = 0xc450443f - DIOCRGETTSTATS = 0xc4504440 - DIOCRINADEFINE = 0xc450444d - DIOCRSETADDRS = 0xc4504445 - DIOCRSETTFLAGS = 0xc450444a - DIOCRTSTADDRS = 0xc4504449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0284459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0284414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc0104451 - DIOCXCOMMIT = 0xc0104452 - DIOCXROLLBACK = 0xc0104453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_MACSEC = 0x88e5 - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 = 0x8 - NET_RT_SOURCE = 0x7 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NFDBITS = 0x20 - 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - SIOCGRXHPRIO = 0xc02069db - 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 - SIOCSRXHPRIO = 0x802069db - SIOCSSPPPPARAMS = 0x80206993 - SIOCSTXHPRIO = 0x802069c5 - SIOCSUMBPARAM = 0x802069bf - SIOCSVH = 0xc02069f5 - SIOCSVNETFLOWID = 0x802069c3 - SIOCSVNETID = 0x802069a6 - 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_DOMAIN = 0x1024 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_PROTOCOL = 0x1025 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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_SACKHOLE_LIMIT = 0x80 - 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/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go deleted file mode 100644 index d2ddd31..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +++ /dev/null @@ -1,1556 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && solaris - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_802 = 0x12 - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_FILE = 0x1 - AF_GOSIP = 0x16 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1a - AF_INET_OFFLOAD = 0x1e - AF_IPX = 0x17 - AF_KEY = 0x1b - AF_LAT = 0xe - AF_LINK = 0x19 - AF_LOCAL = 0x1 - AF_MAX = 0x20 - AF_NBS = 0x7 - AF_NCA = 0x1c - AF_NIT = 0x11 - AF_NS = 0x6 - AF_OSI = 0x13 - AF_OSINET = 0x15 - AF_PACKET = 0x20 - AF_POLICY = 0x1d - AF_PUP = 0x4 - AF_ROUTE = 0x18 - AF_SNA = 0xb - AF_TRILL = 0x1f - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_X25 = 0x14 - ARPHRD_ARCNET = 0x7 - ARPHRD_ATM = 0x10 - ARPHRD_AX25 = 0x3 - ARPHRD_CHAOS = 0x5 - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_FC = 0x12 - ARPHRD_FRAME = 0xf - ARPHRD_HDLC = 0x11 - ARPHRD_IB = 0x20 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IPATM = 0x13 - ARPHRD_METRICOM = 0x17 - ARPHRD_TUNNEL = 0x1f - B0 = 0x0 - B110 = 0x3 - B115200 = 0x12 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B153600 = 0x13 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B230400 = 0x14 - B2400 = 0xb - B300 = 0x7 - B307200 = 0x15 - B38400 = 0xf - B460800 = 0x16 - B4800 = 0xc - B50 = 0x1 - B57600 = 0x10 - B600 = 0x8 - B75 = 0x2 - B76800 = 0x11 - B921600 = 0x17 - B9600 = 0xd - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = -0x3fefbd89 - BIOCGDLTLIST32 = -0x3ff7bd89 - BIOCGETIF = 0x4020426b - BIOCGETLIF = 0x4078426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGRTIMEOUT32 = 0x4008427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = -0x7ffbbd90 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = -0x3ffbbd9a - BIOCSDLT = -0x7ffbbd8a - BIOCSETF = -0x7fefbd99 - BIOCSETF32 = -0x7ff7bd99 - BIOCSETIF = -0x7fdfbd94 - BIOCSETLIF = -0x7f87bd94 - BIOCSHDRCMPLT = -0x7ffbbd8b - BIOCSRTIMEOUT = -0x7fefbd86 - BIOCSRTIMEOUT32 = -0x7ff7bd86 - BIOCSSEESENT = -0x7ffbbd87 - BIOCSTCPF = -0x7fefbd8e - BIOCSUDPF = -0x7fefbd8d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_HIGHRES = 0x4 - CLOCK_LEVEL = 0xa - CLOCK_MONOTONIC = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x5 - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x3 - CLOCK_THREAD_CPUTIME_ID = 0x2 - CLOCK_VIRTUAL = 0x1 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - CSWTCH = 0x1a - DIOC = 0x6400 - DIOCGETB = 0x6402 - DIOCGETC = 0x6401 - DIOCGETP = 0x6408 - DIOCSETE = 0x6403 - DIOCSETP = 0x6409 - DLT_AIRONET_HEADER = 0x78 - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_BACNET_MS_TP = 0xa5 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FDDI = 0xa - DLT_FRELAY = 0x6b - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xa2 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_PPPD = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EMPTY_SET = 0x0 - EMT_CPCOVF = 0x1 - EQUALITY_CHECK = 0x0 - EXTA = 0xe - EXTB = 0xf - FD_CLOEXEC = 0x1 - FD_NFDBITS = 0x40 - FD_SETSIZE = 0x10000 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FIORDCHK = 0x6603 - FLUSHALL = 0x1 - FLUSHDATA = 0x0 - FLUSHO = 0x2000 - F_ALLOCSP = 0xa - F_ALLOCSP64 = 0xa - F_BADFD = 0x2e - F_BLKSIZE = 0x13 - F_BLOCKS = 0x12 - F_CHKFL = 0x8 - F_COMPAT = 0x8 - F_DUP2FD = 0x9 - F_DUP2FD_CLOEXEC = 0x24 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x25 - F_FLOCK = 0x35 - F_FLOCK64 = 0x35 - F_FLOCKW = 0x36 - F_FLOCKW64 = 0x36 - F_FREESP = 0xb - F_FREESP64 = 0xb - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETXFL = 0x2d - F_HASREMOTELOCKS = 0x1a - F_ISSTREAM = 0xd - F_MANDDNY = 0x10 - F_MDACC = 0x20 - F_NODNY = 0x0 - F_NPRIV = 0x10 - F_OFD_GETLK = 0x2f - F_OFD_GETLK64 = 0x2f - F_OFD_SETLK = 0x30 - F_OFD_SETLK64 = 0x30 - F_OFD_SETLKW = 0x31 - F_OFD_SETLKW64 = 0x31 - F_PRIV = 0xf - F_QUOTACTL = 0x11 - F_RDACC = 0x1 - F_RDDNY = 0x1 - F_RDLCK = 0x1 - F_REVOKE = 0x19 - F_RMACC = 0x4 - F_RMDNY = 0x4 - F_RWACC = 0x3 - F_RWDNY = 0x3 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLK64_NBMAND = 0x2a - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETLK_NBMAND = 0x2a - F_SETOWN = 0x18 - F_SHARE = 0x28 - F_SHARE_NBMAND = 0x2b - F_UNLCK = 0x3 - F_UNLKSYS = 0x4 - F_UNSHARE = 0x29 - F_WRACC = 0x2 - F_WRDNY = 0x2 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFF_ADDRCONF = 0x80000 - IFF_ALLMULTI = 0x200 - IFF_ANYCAST = 0x400000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x7f203003b5a - IFF_COS_ENABLED = 0x200000000 - IFF_DEBUG = 0x4 - IFF_DEPRECATED = 0x40000 - IFF_DHCPRUNNING = 0x4000 - IFF_DUPLICATE = 0x4000000000 - IFF_FAILED = 0x10000000 - IFF_FIXEDMTU = 0x1000000000 - IFF_INACTIVE = 0x40000000 - IFF_INTELLIGENT = 0x400 - IFF_IPMP = 0x8000000000 - IFF_IPMP_CANTCHANGE = 0x10000000 - IFF_IPMP_INVALID = 0x1ec200080 - IFF_IPV4 = 0x1000000 - IFF_IPV6 = 0x2000000 - IFF_L3PROTECT = 0x40000000000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x800 - IFF_MULTI_BCAST = 0x1000 - IFF_NOACCEPT = 0x4000000 - IFF_NOARP = 0x80 - IFF_NOFAILOVER = 0x8000000 - IFF_NOLINKLOCAL = 0x20000000000 - IFF_NOLOCAL = 0x20000 - IFF_NONUD = 0x200000 - IFF_NORTEXCH = 0x800000 - IFF_NOTRAILERS = 0x20 - IFF_NOXMIT = 0x10000 - IFF_OFFLINE = 0x80000000 - IFF_POINTOPOINT = 0x10 - IFF_PREFERRED = 0x400000000 - IFF_PRIVATE = 0x8000 - IFF_PROMISC = 0x100 - IFF_ROUTER = 0x100000 - IFF_RUNNING = 0x40 - IFF_STANDBY = 0x20000000 - IFF_TEMPORARY = 0x800000000 - IFF_UNNUMBERED = 0x2000 - IFF_UP = 0x1 - IFF_VIRTUAL = 0x2000000000 - IFF_VRRP = 0x10000000000 - IFF_XRESOLV = 0x100000000 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6TO4 = 0xca - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_IPV4 = 0xc8 - IFT_IPV6 = 0xc9 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_AUTOCONF_MASK = 0xffff0000 - IN_AUTOCONF_NET = 0xa9fe0000 - 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_CLASSE_NET = 0xffffffff - IN_LOOPBACKNET = 0x7f - IN_PRIVATE12_MASK = 0xfff00000 - IN_PRIVATE12_NET = 0xac100000 - IN_PRIVATE16_MASK = 0xffff0000 - IN_PRIVATE16_NET = 0xc0a80000 - IN_PRIVATE8_MASK = 0xff000000 - IN_PRIVATE8_NET = 0xa000000 - IPPROTO_AH = 0x33 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x4 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_HELLO = 0x3f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_ND = 0x4d - IPPROTO_NONE = 0x3b - IPPROTO_OSPF = 0x59 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_UDP = 0x11 - IPV6_ADD_MEMBERSHIP = 0x9 - IPV6_BOUND_IF = 0x41 - IPV6_CHECKSUM = 0x18 - IPV6_DONTFRAG = 0x21 - IPV6_DROP_MEMBERSHIP = 0xa - IPV6_DSTOPTS = 0xf - IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 - IPV6_FLOWINFO_TCLASS = 0xf00f - IPV6_HOPLIMIT = 0xc - IPV6_HOPOPTS = 0xe - IPV6_JOIN_GROUP = 0x9 - IPV6_LEAVE_GROUP = 0xa - IPV6_MULTICAST_HOPS = 0x7 - IPV6_MULTICAST_IF = 0x6 - IPV6_MULTICAST_LOOP = 0x8 - IPV6_NEXTHOP = 0xd - IPV6_PAD1_OPT = 0x0 - IPV6_PATHMTU = 0x25 - IPV6_PKTINFO = 0xb - IPV6_PREFER_SRC_CGA = 0x20 - IPV6_PREFER_SRC_CGADEFAULT = 0x10 - IPV6_PREFER_SRC_CGAMASK = 0x30 - IPV6_PREFER_SRC_COA = 0x2 - IPV6_PREFER_SRC_DEFAULT = 0x15 - IPV6_PREFER_SRC_HOME = 0x1 - IPV6_PREFER_SRC_MASK = 0x3f - IPV6_PREFER_SRC_MIPDEFAULT = 0x1 - IPV6_PREFER_SRC_MIPMASK = 0x3 - IPV6_PREFER_SRC_NONCGA = 0x10 - IPV6_PREFER_SRC_PUBLIC = 0x4 - IPV6_PREFER_SRC_TMP = 0x8 - IPV6_PREFER_SRC_TMPDEFAULT = 0x4 - IPV6_PREFER_SRC_TMPMASK = 0xc - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x13 - IPV6_RECVHOPOPTS = 0x14 - IPV6_RECVPATHMTU = 0x24 - IPV6_RECVPKTINFO = 0x12 - IPV6_RECVRTHDR = 0x16 - IPV6_RECVRTHDRDSTOPTS = 0x17 - IPV6_RECVTCLASS = 0x19 - IPV6_RTHDR = 0x10 - IPV6_RTHDRDSTOPTS = 0x11 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SEC_OPT = 0x22 - IPV6_SRC_PREFERENCES = 0x23 - IPV6_TCLASS = 0x26 - IPV6_UNICAST_HOPS = 0x5 - IPV6_UNSPEC_SRC = 0x42 - IPV6_USE_MIN_MTU = 0x20 - IPV6_V6ONLY = 0x27 - IP_ADD_MEMBERSHIP = 0x13 - IP_ADD_SOURCE_MEMBERSHIP = 0x17 - IP_BLOCK_SOURCE = 0x15 - IP_BOUND_IF = 0x41 - IP_BROADCAST = 0x106 - IP_BROADCAST_TTL = 0x43 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPINIT_IF = 0x45 - IP_DONTFRAG = 0x1b - IP_DONTROUTE = 0x105 - IP_DROP_MEMBERSHIP = 0x14 - IP_DROP_SOURCE_MEMBERSHIP = 0x18 - IP_HDRINCL = 0x2 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x10 - IP_MULTICAST_LOOP = 0x12 - IP_MULTICAST_TTL = 0x11 - IP_NEXTHOP = 0x19 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x9 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVSLLA = 0xa - IP_RECVTOS = 0xc - IP_RECVTTL = 0xb - IP_RETOPTS = 0x8 - IP_REUSEADDR = 0x104 - IP_SEC_OPT = 0x22 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x16 - IP_UNSPEC_SRC = 0x42 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_ACCESS_DEFAULT = 0x6 - MADV_ACCESS_LWP = 0x7 - MADV_ACCESS_MANY = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NORMAL = 0x0 - MADV_PURGE = 0x9 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80 - MAP_ALIGN = 0x200 - MAP_ANON = 0x100 - MAP_ANONYMOUS = 0x100 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_INITDATA = 0x800 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_TEXT = 0x400 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x2 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x29 - MCAST_JOIN_SOURCE_GROUP = 0x2d - MCAST_LEAVE_GROUP = 0x2a - MCAST_LEAVE_SOURCE_GROUP = 0x2e - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_CTRUNC = 0x10 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_DUPCTRL = 0x800 - MSG_EOR = 0x8 - MSG_MAXIOVLEN = 0x10 - MSG_NOSIGNAL = 0x200 - MSG_NOTIFICATION = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x20 - MSG_WAITALL = 0x40 - MSG_XPG4_2 = 0x8000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_OLDSYNC = 0x0 - MS_SYNC = 0x4 - M_FLUSH = 0x86 - NAME_MAX = 0xff - NEWDEV = 0x1 - NFDBITS = 0x40 - NL0 = 0x0 - NL1 = 0x100 - NLDLY = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - OLDDEV = 0x0 - ONBITSMAJOR = 0x7 - ONBITSMINOR = 0x8 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENFAIL = -0x1 - OPOST = 0x1 - O_ACCMODE = 0x600003 - O_APPEND = 0x8 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DIRECT = 0x2000000 - O_DIRECTORY = 0x1000000 - O_DSYNC = 0x40 - O_EXCL = 0x400 - O_EXEC = 0x400000 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x4 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NOLINKS = 0x40000 - O_NONBLOCK = 0x80 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x8000 - O_SEARCH = 0x200000 - O_SIOCGIFCONF = -0x3ff796ec - O_SIOCGLIFCONF = -0x3fef9688 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - O_XATTR = 0x4000 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xfffffffffffffffd - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_SRC = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_NUMBITS = 0x9 - RTA_SRC = 0x100 - RTF_BLACKHOLE = 0x1000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INDIRECT = 0x40000 - RTF_KERNEL = 0x80000 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTIRT = 0x10000 - RTF_PRIVATE = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SETSRC = 0x20000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTF_ZONE = 0x100000 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0xf - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_FREEADDR = 0x10 - RTM_GET = 0x4 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_VERSION = 0x3 - 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_AWARE = 0x1 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_RIGHTS = 0x1010 - SCM_TIMESTAMP = 0x1013 - SCM_UCRED = 0x1012 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIG2STR_MAX = 0x20 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDRT = -0x7fcf8df6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fdb96e0 - SIOCDELMULTI = -0x7fdf96ce - SIOCDELRT = -0x7fcf8df5 - SIOCDXARP = -0x7fff9658 - SIOCGARP = -0x3fdb96e1 - SIOCGDSTINFO = -0x3fff965c - SIOCGENADDR = -0x3fdf96ab - SIOCGENPSTATS = -0x3fdf96c7 - SIOCGETLSGCNT = -0x3fef8deb - SIOCGETNAME = 0x40107334 - SIOCGETPEER = 0x40107335 - SIOCGETPROP = -0x3fff8f44 - SIOCGETSGCNT = -0x3feb8deb - SIOCGETSYNC = -0x3fdf96d3 - SIOCGETVIFCNT = -0x3feb8dec - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fdf96f3 - SIOCGIFBRDADDR = -0x3fdf96e9 - SIOCGIFCONF = -0x3ff796a4 - SIOCGIFDSTADDR = -0x3fdf96f1 - SIOCGIFFLAGS = -0x3fdf96ef - SIOCGIFHWADDR = -0x3fdf9647 - SIOCGIFINDEX = -0x3fdf96a6 - SIOCGIFMEM = -0x3fdf96ed - SIOCGIFMETRIC = -0x3fdf96e5 - SIOCGIFMTU = -0x3fdf96ea - SIOCGIFMUXID = -0x3fdf96a8 - SIOCGIFNETMASK = -0x3fdf96e7 - SIOCGIFNUM = 0x40046957 - SIOCGIP6ADDRPOLICY = -0x3fff965e - SIOCGIPMSFILTER = -0x3ffb964c - SIOCGLIFADDR = -0x3f87968f - SIOCGLIFBINDING = -0x3f879666 - SIOCGLIFBRDADDR = -0x3f879685 - SIOCGLIFCONF = -0x3fef965b - SIOCGLIFDADSTATE = -0x3f879642 - SIOCGLIFDSTADDR = -0x3f87968d - SIOCGLIFFLAGS = -0x3f87968b - SIOCGLIFGROUPINFO = -0x3f4b9663 - SIOCGLIFGROUPNAME = -0x3f879664 - SIOCGLIFHWADDR = -0x3f879640 - SIOCGLIFINDEX = -0x3f87967b - SIOCGLIFLNKINFO = -0x3f879674 - SIOCGLIFMETRIC = -0x3f879681 - SIOCGLIFMTU = -0x3f879686 - SIOCGLIFMUXID = -0x3f87967d - SIOCGLIFNETMASK = -0x3f879683 - SIOCGLIFNUM = -0x3ff3967e - SIOCGLIFSRCOF = -0x3fef964f - SIOCGLIFSUBNET = -0x3f879676 - SIOCGLIFTOKEN = -0x3f879678 - SIOCGLIFUSESRC = -0x3f879651 - SIOCGLIFZONE = -0x3f879656 - SIOCGLOWAT = 0x40047303 - SIOCGMSFILTER = -0x3ffb964e - SIOCGPGRP = 0x40047309 - SIOCGSTAMP = -0x3fef9646 - SIOCGXARP = -0x3fff9659 - SIOCIFDETACH = -0x7fdf96c8 - SIOCILB = -0x3ffb9645 - SIOCLIFADDIF = -0x3f879691 - SIOCLIFDELND = -0x7f879673 - SIOCLIFGETND = -0x3f879672 - SIOCLIFREMOVEIF = -0x7f879692 - SIOCLIFSETND = -0x7f879671 - SIOCLOWER = -0x7fdf96d7 - SIOCSARP = -0x7fdb96e2 - SIOCSCTPGOPT = -0x3fef9653 - SIOCSCTPPEELOFF = -0x3ffb9652 - SIOCSCTPSOPT = -0x7fef9654 - SIOCSENABLESDP = -0x3ffb9649 - SIOCSETPROP = -0x7ffb8f43 - SIOCSETSYNC = -0x7fdf96d4 - SIOCSHIWAT = -0x7ffb8d00 - SIOCSIFADDR = -0x7fdf96f4 - SIOCSIFBRDADDR = -0x7fdf96e8 - SIOCSIFDSTADDR = -0x7fdf96f2 - SIOCSIFFLAGS = -0x7fdf96f0 - SIOCSIFINDEX = -0x7fdf96a5 - SIOCSIFMEM = -0x7fdf96ee - SIOCSIFMETRIC = -0x7fdf96e4 - SIOCSIFMTU = -0x7fdf96eb - SIOCSIFMUXID = -0x7fdf96a7 - SIOCSIFNAME = -0x7fdf96b7 - SIOCSIFNETMASK = -0x7fdf96e6 - SIOCSIP6ADDRPOLICY = -0x7fff965d - SIOCSIPMSFILTER = -0x7ffb964b - SIOCSLGETREQ = -0x3fdf96b9 - SIOCSLIFADDR = -0x7f879690 - SIOCSLIFBRDADDR = -0x7f879684 - SIOCSLIFDSTADDR = -0x7f87968e - SIOCSLIFFLAGS = -0x7f87968c - SIOCSLIFGROUPNAME = -0x7f879665 - SIOCSLIFINDEX = -0x7f87967a - SIOCSLIFLNKINFO = -0x7f879675 - SIOCSLIFMETRIC = -0x7f879680 - SIOCSLIFMTU = -0x7f879687 - SIOCSLIFMUXID = -0x7f87967c - SIOCSLIFNAME = -0x3f87967f - SIOCSLIFNETMASK = -0x7f879682 - SIOCSLIFPREFIX = -0x3f879641 - SIOCSLIFSUBNET = -0x7f879677 - SIOCSLIFTOKEN = -0x7f879679 - SIOCSLIFUSESRC = -0x7f879650 - SIOCSLIFZONE = -0x7f879655 - SIOCSLOWAT = -0x7ffb8cfe - SIOCSLSTAT = -0x7fdf96b8 - SIOCSMSFILTER = -0x7ffb964d - SIOCSPGRP = -0x7ffb8cf8 - SIOCSPROMISC = -0x7ffb96d0 - SIOCSQPTR = -0x3ffb9648 - SIOCSSDSTATS = -0x3fdf96d2 - SIOCSSESTATS = -0x3fdf96d1 - SIOCSXARP = -0x7fff965a - SIOCTMYADDR = -0x3ff79670 - SIOCTMYSITE = -0x3ff7966e - SIOCTONLINK = -0x3ff7966f - SIOCUPPER = -0x7fdf96d8 - SIOCX25RCV = -0x3fdf96c4 - SIOCX25TBL = -0x3fdf96c3 - SIOCX25XMT = -0x3fdf96c5 - SIOCXPROTO = 0x20007337 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NDELAY = 0x200000 - SOCK_NONBLOCK = 0x100000 - SOCK_RAW = 0x4 - SOCK_RDM = 0x5 - SOCK_SEQPACKET = 0x6 - SOCK_STREAM = 0x2 - SOCK_TYPE_MASK = 0xffff - SOL_FILTER = 0xfffc - SOL_PACKET = 0xfffd - SOL_ROUTE = 0xfffe - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ALL = 0x3f - SO_ALLZONES = 0x1014 - SO_ANON_MLP = 0x100a - SO_ATTACH_FILTER = 0x40000001 - SO_BAND = 0x4000 - SO_BROADCAST = 0x20 - SO_COPYOPT = 0x80000 - SO_DEBUG = 0x1 - SO_DELIM = 0x8000 - SO_DETACH_FILTER = 0x40000002 - SO_DGRAM_ERRIND = 0x200 - SO_DOMAIN = 0x100c - SO_DONTLINGER = -0x81 - SO_DONTROUTE = 0x10 - SO_ERROPT = 0x40000 - SO_ERROR = 0x1007 - SO_EXCLBIND = 0x1015 - SO_HIWAT = 0x10 - SO_ISNTTY = 0x800 - SO_ISTTY = 0x400 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOWAT = 0x20 - SO_MAC_EXEMPT = 0x100b - SO_MAC_IMPLICIT = 0x1016 - SO_MAXBLK = 0x100000 - SO_MAXPSZ = 0x8 - SO_MINPSZ = 0x4 - SO_MREADOFF = 0x80 - SO_MREADON = 0x40 - SO_NDELOFF = 0x200 - SO_NDELON = 0x100 - SO_NODELIM = 0x10000 - SO_OOBINLINE = 0x100 - SO_PROTOTYPE = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVPSH = 0x100d - SO_RCVTIMEO = 0x1006 - SO_READOPT = 0x1 - SO_RECVUCRED = 0x400 - SO_REUSEADDR = 0x4 - SO_SECATTR = 0x1011 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STRHOLD = 0x20000 - SO_TAIL = 0x200000 - SO_TIMESTAMP = 0x1013 - SO_TONSTOP = 0x2000 - SO_TOSTOP = 0x1000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_VRRP = 0x1017 - SO_WROFF = 0x2 - S_ENFMT = 0x400 - S_IAMB = 0x1ff - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFDOOR = 0xd000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFNAM = 0x5000 - S_IFPORT = 0xe000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_INSEM = 0x1 - S_INSHD = 0x2 - 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_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 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_ABORT_THRESHOLD = 0x11 - TCP_ANONPRIVBIND = 0x20 - TCP_CONGESTION = 0x25 - TCP_CONN_ABORT_THRESHOLD = 0x13 - TCP_CONN_NOTIFY_THRESHOLD = 0x12 - TCP_CORK = 0x18 - TCP_EXCLBIND = 0x21 - TCP_INIT_CWND = 0x15 - TCP_KEEPALIVE = 0x8 - TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 - TCP_KEEPALIVE_THRESHOLD = 0x16 - TCP_KEEPCNT = 0x23 - TCP_KEEPIDLE = 0x22 - TCP_KEEPINTVL = 0x24 - TCP_LINGER2 = 0x1c - TCP_MAXSEG = 0x2 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOTIFY_THRESHOLD = 0x10 - TCP_RECVDSTADDR = 0x14 - TCP_RTO_INITIAL = 0x19 - TCP_RTO_MAX = 0x1b - TCP_RTO_MIN = 0x1a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETSF = 0x5410 - TCSETSW = 0x540f - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOC = 0x5400 - TIOCCBRK = 0x747a - TIOCCDTR = 0x7478 - TIOCCILOOP = 0x746c - TIOCEXCL = 0x740d - TIOCFLUSH = 0x7410 - TIOCGETC = 0x7412 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x7414 - TIOCGPPS = 0x547d - TIOCGPPSEV = 0x547f - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5469 - TIOCGWINSZ = 0x5468 - TIOCHPCL = 0x7402 - TIOCKBOF = 0x5409 - TIOCKBON = 0x5408 - TIOCLBIC = 0x747e - TIOCLBIS = 0x747f - TIOCLGET = 0x747c - TIOCLSET = 0x747d - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMSET = 0x741a - 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 = 0x7471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7473 - TIOCREMOTE = 0x741e - TIOCSBRK = 0x747b - TIOCSCTTY = 0x7484 - TIOCSDTR = 0x7479 - TIOCSETC = 0x7411 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIGNAL = 0x741f - TIOCSILOOP = 0x746d - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x7415 - TIOCSPPS = 0x547e - TIOCSSOFTCAR = 0x546a - TIOCSTART = 0x746e - TIOCSTI = 0x7417 - TIOCSTOP = 0x746f - TIOCSWINSZ = 0x5467 - TOSTOP = 0x100 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VCEOF = 0x8 - VCEOL = 0x9 - VDISCARD = 0xd - VDSUSP = 0xb - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VERASE2 = 0x11 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTATUS = 0x10 - VSTOP = 0x9 - VSUSP = 0xa - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WCONTFLG = 0xffff - WCONTINUED = 0x8 - WCOREFLG = 0x80 - WEXITED = 0x1 - WNOHANG = 0x40 - WNOWAIT = 0x80 - WOPTMASK = 0xcf - WRAP = 0x20000 - WSIGMASK = 0x7f - WSTOPFLG = 0x7f - WSTOPPED = 0x4 - WTRAPPED = 0x2 - WUNTRACED = 0x4 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x39) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x2f) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x31) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOCKUNMAPPED = syscall.Errno(0x48) - ELOOP = syscall.Errno(0x5a) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTACTIVE = syscall.Errno(0x49) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTRECOVERABLE = syscall.Errno(0x3b) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x30) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0x3a) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x52) - EREMOTE = syscall.Errno(0x42) - ERESTART = syscall.Errno(0x5b) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCANCEL = syscall.Signal(0x24) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGFREEZE = syscall.Signal(0x22) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x29) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGJVM1 = syscall.Signal(0x27) - SIGJVM2 = syscall.Signal(0x28) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x25) - SIGLWP = syscall.Signal(0x21) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHAW = syscall.Signal(0x23) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWAITING = syscall.Signal(0x20) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) - SIGXRES = syscall.Signal(0x26) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {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", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {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", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock situation detected/avoided"}, - {46, "ENOLCK", "no record locks available"}, - {47, "ECANCELED", "operation canceled"}, - {48, "ENOTSUP", "operation not supported"}, - {49, "EDQUOT", "disc quota exceeded"}, - {50, "EBADE", "bad exchange descriptor"}, - {51, "EBADR", "bad request descriptor"}, - {52, "EXFULL", "message tables full"}, - {53, "ENOANO", "anode table overflow"}, - {54, "EBADRQC", "bad request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock"}, - {57, "EBFONT", "bad font file format"}, - {58, "EOWNERDEAD", "owner of the lock died"}, - {59, "ENOTRECOVERABLE", "lock is not recoverable"}, - {60, "ENOSTR", "not a stream device"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of stream resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "ELOCKUNMAPPED", "locked lock was unmapped "}, - {73, "ENOTACTIVE", "facility is not active"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "not a data message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in more shared libraries than system limit"}, - {87, "ELIBEXEC", "can not exec a shared library directly"}, - {88, "EILSEQ", "illegal byte sequence"}, - {89, "ENOSYS", "operation not applicable"}, - {90, "ELOOP", "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"}, - {91, "ERESTART", "error 91"}, - {92, "ESTRPIPE", "error 92"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "option not supported by protocol"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "EOPNOTSUPP", "operation not supported on transport endpoint"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection because of reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {143, "ESHUTDOWN", "cannot send after socket shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale NFS file handle"}, -} - -// 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/Breakpoint Trap"}, - {6, "SIGABRT", "abort"}, - {7, "SIGEMT", "emulation Trap"}, - {8, "SIGFPE", "arithmetic 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, "SIGUSR1", "user Signal 1"}, - {17, "SIGUSR2", "user Signal 2"}, - {18, "SIGCHLD", "child Status Changed"}, - {19, "SIGPWR", "power-Fail/Restart"}, - {20, "SIGWINCH", "window Size Change"}, - {21, "SIGURG", "urgent Socket Condition"}, - {22, "SIGIO", "pollable Event"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped (user)"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual Timer Expired"}, - {29, "SIGPROF", "profiling Timer Expired"}, - {30, "SIGXCPU", "cpu Limit Exceeded"}, - {31, "SIGXFSZ", "file Size Limit Exceeded"}, - {32, "SIGWAITING", "no runnable lwp"}, - {33, "SIGLWP", "inter-lwp signal"}, - {34, "SIGFREEZE", "checkpoint Freeze"}, - {35, "SIGTHAW", "checkpoint Thaw"}, - {36, "SIGCANCEL", "thread Cancellation"}, - {37, "SIGLOST", "resource Lost"}, - {38, "SIGXRES", "resource Control Exceeded"}, - {39, "SIGJVM1", "reserved for JVM 1"}, - {40, "SIGJVM2", "reserved for JVM 2"}, - {41, "SIGINFO", "information Request"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go deleted file mode 100644 index 1ec2b14..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +++ /dev/null @@ -1,990 +0,0 @@ -// Copyright 2020 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:build zos && s390x - -// Hand edited based on zerrors_linux_s390x.go -// TODO: auto-generate. - -package unix - -const ( - BRKINT = 0x0001 - CLOCAL = 0x1 - CLOCK_MONOTONIC = 0x1 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLONE_NEWIPC = 0x08000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x00020000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUTS = 0x04000000 - CLONE_PARENT = 0x00008000 - CS8 = 0x0030 - CSIZE = 0x0030 - ECHO = 0x00000008 - ECHONL = 0x00000001 - EFD_SEMAPHORE = 0x00002000 - EFD_CLOEXEC = 0x00001000 - EFD_NONBLOCK = 0x00000004 - EPOLL_CLOEXEC = 0x00001000 - EPOLL_CTL_ADD = 0 - EPOLL_CTL_MOD = 1 - EPOLL_CTL_DEL = 2 - EPOLLRDNORM = 0x0001 - EPOLLRDBAND = 0x0002 - EPOLLIN = 0x0003 - EPOLLOUT = 0x0004 - EPOLLWRBAND = 0x0008 - EPOLLPRI = 0x0010 - EPOLLERR = 0x0020 - EPOLLHUP = 0x0040 - EPOLLEXCLUSIVE = 0x20000000 - EPOLLONESHOT = 0x40000000 - FD_CLOEXEC = 0x01 - FD_CLOFORK = 0x02 - FD_SETSIZE = 0x800 - FNDELAY = 0x04 - F_CLOSFD = 9 - F_CONTROL_CVT = 13 - F_DUPFD = 0 - F_DUPFD2 = 8 - F_GETFD = 1 - F_GETFL = 259 - F_GETLK = 5 - F_GETOWN = 10 - F_OK = 0x0 - F_RDLCK = 1 - F_SETFD = 2 - F_SETFL = 4 - F_SETLK = 6 - F_SETLKW = 7 - F_SETOWN = 11 - F_SETTAG = 12 - F_UNLCK = 3 - F_WRLCK = 2 - FSTYPE_ZFS = 0xe9 //"Z" - FSTYPE_HFS = 0xc8 //"H" - FSTYPE_NFS = 0xd5 //"N" - FSTYPE_TFS = 0xe3 //"T" - FSTYPE_AUTOMOUNT = 0xc1 //"A" - GRND_NONBLOCK = 1 - GRND_RANDOM = 2 - HUPCL = 0x0100 // Hang up on last close - IN_CLOEXEC = 0x00001000 - IN_NONBLOCK = 0x00000004 - IN_ACCESS = 0x00000001 - IN_MODIFY = 0x00000002 - IN_ATTRIB = 0x00000004 - IN_CLOSE_WRITE = 0x00000008 - IN_CLOSE_NOWRITE = 0x00000010 - IN_OPEN = 0x00000020 - IN_MOVED_FROM = 0x00000040 - IN_MOVED_TO = 0x00000080 - IN_CREATE = 0x00000100 - IN_DELETE = 0x00000200 - IN_DELETE_SELF = 0x00000400 - IN_MOVE_SELF = 0x00000800 - IN_UNMOUNT = 0x00002000 - IN_Q_OVERFLOW = 0x00004000 - IN_IGNORED = 0x00008000 - IN_CLOSE = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) - IN_MOVE = (IN_MOVED_FROM | IN_MOVED_TO) - IN_ALL_EVENTS = (IN_ACCESS | IN_MODIFY | IN_ATTRIB | - IN_CLOSE | IN_OPEN | IN_MOVE | - IN_CREATE | IN_DELETE | IN_DELETE_SELF | - IN_MOVE_SELF) - IN_ONLYDIR = 0x01000000 - IN_DONT_FOLLOW = 0x02000000 - IN_EXCL_UNLINK = 0x04000000 - IN_MASK_CREATE = 0x10000000 - IN_MASK_ADD = 0x20000000 - IN_ISDIR = 0x40000000 - IN_ONESHOT = 0x80000000 - IP6F_MORE_FRAG = 0x0001 - IP6F_OFF_MASK = 0xfff8 - IP6F_RESERVED_MASK = 0x0006 - IP6OPT_JUMBO = 0xc2 - IP6OPT_JUMBO_LEN = 6 - IP6OPT_MUTABLE = 0x20 - IP6OPT_NSAP_ADDR = 0xc3 - IP6OPT_PAD1 = 0x00 - IP6OPT_PADN = 0x01 - IP6OPT_ROUTER_ALERT = 0x05 - IP6OPT_TUNNEL_LIMIT = 0x04 - IP6OPT_TYPE_DISCARD = 0x40 - IP6OPT_TYPE_FORCEICMP = 0x80 - IP6OPT_TYPE_ICMP = 0xc0 - IP6OPT_TYPE_SKIP = 0x00 - IP6_ALERT_AN = 0x0002 - IP6_ALERT_MLD = 0x0000 - IP6_ALERT_RSVP = 0x0001 - IPPORT_RESERVED = 1024 - IPPORT_USERRESERVED = 5000 - IPPROTO_AH = 51 - SOL_AH = 51 - IPPROTO_DSTOPTS = 60 - SOL_DSTOPTS = 60 - IPPROTO_EGP = 8 - SOL_EGP = 8 - IPPROTO_ESP = 50 - SOL_ESP = 50 - IPPROTO_FRAGMENT = 44 - SOL_FRAGMENT = 44 - IPPROTO_GGP = 2 - SOL_GGP = 2 - IPPROTO_HOPOPTS = 0 - SOL_HOPOPTS = 0 - IPPROTO_ICMP = 1 - SOL_ICMP = 1 - IPPROTO_ICMPV6 = 58 - SOL_ICMPV6 = 58 - IPPROTO_IDP = 22 - SOL_IDP = 22 - IPPROTO_IP = 0 - SOL_IP = 0 - IPPROTO_IPV6 = 41 - SOL_IPV6 = 41 - IPPROTO_MAX = 256 - SOL_MAX = 256 - IPPROTO_NONE = 59 - SOL_NONE = 59 - IPPROTO_PUP = 12 - SOL_PUP = 12 - IPPROTO_RAW = 255 - SOL_RAW = 255 - IPPROTO_ROUTING = 43 - SOL_ROUTING = 43 - IPPROTO_TCP = 6 - SOL_TCP = 6 - IPPROTO_UDP = 17 - SOL_UDP = 17 - IPV6_ADDR_PREFERENCES = 32 - IPV6_CHECKSUM = 19 - IPV6_DONTFRAG = 29 - IPV6_DSTOPTS = 23 - IPV6_HOPLIMIT = 11 - IPV6_HOPOPTS = 22 - IPV6_JOIN_GROUP = 5 - IPV6_LEAVE_GROUP = 6 - IPV6_MULTICAST_HOPS = 9 - IPV6_MULTICAST_IF = 7 - IPV6_MULTICAST_LOOP = 4 - IPV6_NEXTHOP = 20 - IPV6_PATHMTU = 12 - IPV6_PKTINFO = 13 - IPV6_PREFER_SRC_CGA = 0x10 - IPV6_PREFER_SRC_COA = 0x02 - IPV6_PREFER_SRC_HOME = 0x01 - IPV6_PREFER_SRC_NONCGA = 0x20 - IPV6_PREFER_SRC_PUBLIC = 0x08 - IPV6_PREFER_SRC_TMP = 0x04 - IPV6_RECVDSTOPTS = 28 - IPV6_RECVHOPLIMIT = 14 - IPV6_RECVHOPOPTS = 26 - IPV6_RECVPATHMTU = 16 - IPV6_RECVPKTINFO = 15 - IPV6_RECVRTHDR = 25 - IPV6_RECVTCLASS = 31 - IPV6_RTHDR = 21 - IPV6_RTHDRDSTOPTS = 24 - IPV6_RTHDR_TYPE_0 = 0 - IPV6_TCLASS = 30 - IPV6_UNICAST_HOPS = 3 - IPV6_USE_MIN_MTU = 18 - IPV6_V6ONLY = 10 - IP_ADD_MEMBERSHIP = 5 - IP_ADD_SOURCE_MEMBERSHIP = 12 - IP_BLOCK_SOURCE = 10 - IP_DEFAULT_MULTICAST_LOOP = 1 - IP_DEFAULT_MULTICAST_TTL = 1 - IP_DROP_MEMBERSHIP = 6 - IP_DROP_SOURCE_MEMBERSHIP = 13 - IP_MAX_MEMBERSHIPS = 20 - IP_MULTICAST_IF = 7 - IP_MULTICAST_LOOP = 4 - IP_MULTICAST_TTL = 3 - IP_OPTIONS = 1 - IP_PKTINFO = 101 - IP_RECVPKTINFO = 102 - IP_TOS = 2 - IP_TTL = 14 - IP_UNBLOCK_SOURCE = 11 - ICMP6_FILTER = 1 - MCAST_INCLUDE = 0 - MCAST_EXCLUDE = 1 - MCAST_JOIN_GROUP = 40 - MCAST_LEAVE_GROUP = 41 - MCAST_JOIN_SOURCE_GROUP = 42 - MCAST_LEAVE_SOURCE_GROUP = 43 - MCAST_BLOCK_SOURCE = 44 - MCAST_UNBLOCK_SOURCE = 46 - ICANON = 0x0010 - ICRNL = 0x0002 - IEXTEN = 0x0020 - IGNBRK = 0x0004 - IGNCR = 0x0008 - INLCR = 0x0020 - ISIG = 0x0040 - ISTRIP = 0x0080 - IXON = 0x0200 - IXOFF = 0x0100 - LOCK_SH = 0x1 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_UN = 0x8 - POLLIN = 0x0003 - POLLOUT = 0x0004 - POLLPRI = 0x0010 - POLLERR = 0x0020 - POLLHUP = 0x0040 - POLLNVAL = 0x0080 - PROT_READ = 0x1 // mmap - page can be read - PROT_WRITE = 0x2 // page can be written - PROT_NONE = 0x4 // can't be accessed - PROT_EXEC = 0x8 // can be executed - MAP_PRIVATE = 0x1 // changes are private - MAP_SHARED = 0x2 // changes are shared - MAP_FIXED = 0x4 // place exactly - __MAP_MEGA = 0x8 - __MAP_64 = 0x10 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MS_SYNC = 0x1 // msync - synchronous writes - MS_ASYNC = 0x2 // asynchronous writes - MS_INVALIDATE = 0x4 // invalidate mappings - MS_BIND = 0x00001000 - MS_MOVE = 0x00002000 - MS_NOSUID = 0x00000002 - MS_PRIVATE = 0x00040000 - MS_REC = 0x00004000 - MS_REMOUNT = 0x00008000 - MS_RDONLY = 0x00000001 - MS_UNBINDABLE = 0x00020000 - MNT_DETACH = 0x00000004 - ZOSDSFS_SUPER_MAGIC = 0x44534653 // zOS DSFS - NFS_SUPER_MAGIC = 0x6969 // NFS - NSFS_MAGIC = 0x6e736673 // PROCNS - PROC_SUPER_MAGIC = 0x9fa0 // proc FS - ZOSTFS_SUPER_MAGIC = 0x544653 // zOS TFS - ZOSUFS_SUPER_MAGIC = 0x554653 // zOS UFS - ZOSZFS_SUPER_MAGIC = 0x5A4653 // zOS ZFS - MTM_RDONLY = 0x80000000 - MTM_RDWR = 0x40000000 - MTM_UMOUNT = 0x10000000 - MTM_IMMED = 0x08000000 - MTM_FORCE = 0x04000000 - MTM_DRAIN = 0x02000000 - MTM_RESET = 0x01000000 - MTM_SAMEMODE = 0x00100000 - MTM_UNQSEFORCE = 0x00040000 - MTM_NOSUID = 0x00000400 - MTM_SYNCHONLY = 0x00000200 - MTM_REMOUNT = 0x00000100 - MTM_NOSECURITY = 0x00000080 - NFDBITS = 0x20 - ONLRET = 0x0020 // NL performs CR function - O_ACCMODE = 0x03 - O_APPEND = 0x08 - O_ASYNCSIG = 0x0200 - O_CREAT = 0x80 - O_DIRECT = 0x00002000 - O_NOFOLLOW = 0x00004000 - O_DIRECTORY = 0x00008000 - O_PATH = 0x00080000 - O_CLOEXEC = 0x00001000 - O_EXCL = 0x40 - O_GETFL = 0x0F - O_LARGEFILE = 0x0400 - O_NDELAY = 0x4 - O_NONBLOCK = 0x04 - O_RDONLY = 0x02 - O_RDWR = 0x03 - O_SYNC = 0x0100 - O_TRUNC = 0x10 - O_WRONLY = 0x01 - O_NOCTTY = 0x20 - OPOST = 0x0001 - ONLCR = 0x0004 - PARENB = 0x0200 - PARMRK = 0x0400 - QUERYCVT = 3 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 // RUSAGE_THREAD unsupported on z/OS - SEEK_CUR = 1 - SEEK_END = 2 - SEEK_SET = 0 - SETAUTOCVTALL = 5 - SETAUTOCVTON = 2 - SETCVTALL = 4 - SETCVTOFF = 0 - SETCVTON = 1 - AF_APPLETALK = 16 - AF_CCITT = 10 - AF_CHAOS = 5 - AF_DATAKIT = 9 - AF_DLI = 13 - AF_ECMA = 8 - AF_HYLINK = 15 - AF_IMPLINK = 3 - AF_INET = 2 - AF_INET6 = 19 - AF_INTF = 20 - AF_IUCV = 17 - AF_LAT = 14 - AF_LINK = 18 - AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX - AF_MAX = 30 - AF_NBS = 7 - AF_NDD = 23 - AF_NETWARE = 22 - AF_NS = 6 - AF_PUP = 4 - AF_RIF = 21 - AF_ROUTE = 20 - AF_SNA = 11 - AF_UNIX = 1 - AF_UNSPEC = 0 - IBMTCP_IMAGE = 1 - MSG_ACK_EXPECTED = 0x10 - MSG_ACK_GEN = 0x40 - MSG_ACK_TIMEOUT = 0x20 - MSG_CONNTERM = 0x80 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_EOF = 0x8000 - MSG_EOR = 0x8 - MSG_MAXIOVLEN = 16 - MSG_NONBLOCK = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - PRIO_PROCESS = 1 - PRIO_PGRP = 2 - PRIO_USER = 3 - RLIMIT_CPU = 0 - RLIMIT_FSIZE = 1 - RLIMIT_DATA = 2 - RLIMIT_STACK = 3 - RLIMIT_CORE = 4 - RLIMIT_AS = 5 - RLIMIT_NOFILE = 6 - RLIMIT_MEMLIMIT = 7 - RLIMIT_MEMLOCK = 0x8 - RLIM_INFINITY = 2147483647 - SCHED_FIFO = 0x2 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x01 - SF_CLOSE = 0x00000002 - SF_REUSE = 0x00000001 - SHM_RND = 0x2 - SHM_RDONLY = 0x1 - SHMLBA = 0x1000 - IPC_STAT = 0x3 - IPC_SET = 0x2 - IPC_RMID = 0x1 - IPC_PRIVATE = 0x0 - IPC_CREAT = 0x1000000 - __IPC_MEGA = 0x4000000 - __IPC_SHAREAS = 0x20000000 - __IPC_BELOWBAR = 0x10000000 - IPC_EXCL = 0x2000000 - __IPC_GIGA = 0x8000000 - SHUT_RD = 0 - SHUT_RDWR = 2 - SHUT_WR = 1 - SOCK_CLOEXEC = 0x00001000 - SOCK_CONN_DGRAM = 6 - SOCK_DGRAM = 2 - SOCK_NONBLOCK = 0x800 - SOCK_RAW = 3 - SOCK_RDM = 4 - SOCK_SEQPACKET = 5 - SOCK_STREAM = 1 - SOL_SOCKET = 0xffff - SOMAXCONN = 10 - SO_ACCEPTCONN = 0x0002 - SO_ACCEPTECONNABORTED = 0x0006 - SO_ACKNOW = 0x7700 - SO_BROADCAST = 0x0020 - SO_BULKMODE = 0x8000 - SO_CKSUMRECV = 0x0800 - SO_CLOSE = 0x01 - SO_CLUSTERCONNTYPE = 0x00004001 - SO_CLUSTERCONNTYPE_INTERNAL = 8 - SO_CLUSTERCONNTYPE_NOCONN = 0 - SO_CLUSTERCONNTYPE_NONE = 1 - SO_CLUSTERCONNTYPE_SAME_CLUSTER = 2 - SO_CLUSTERCONNTYPE_SAME_IMAGE = 4 - SO_DEBUG = 0x0001 - SO_DONTROUTE = 0x0010 - SO_ERROR = 0x1007 - SO_IGNOREINCOMINGPUSH = 0x1 - SO_IGNORESOURCEVIPA = 0x0002 - SO_KEEPALIVE = 0x0008 - SO_LINGER = 0x0080 - SO_NONBLOCKLOCAL = 0x8001 - SO_NOREUSEADDR = 0x1000 - SO_OOBINLINE = 0x0100 - SO_OPTACK = 0x8004 - SO_OPTMSS = 0x8003 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x0004 - SO_REUSEPORT = 0x0200 - SO_SECINFO = 0x00004002 - SO_SET = 0x0200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TYPE = 0x1008 - SO_UNSET = 0x0400 - SO_USELOOPBACK = 0x0040 - SO_USE_IFBUFS = 0x0400 - S_ISUID = 0x0800 - S_ISGID = 0x0400 - S_ISVTX = 0x0200 - S_IRUSR = 0x0100 - S_IWUSR = 0x0080 - S_IXUSR = 0x0040 - S_IRWXU = 0x01C0 - S_IRGRP = 0x0020 - S_IWGRP = 0x0010 - S_IXGRP = 0x0008 - S_IRWXG = 0x0038 - S_IROTH = 0x0004 - S_IWOTH = 0x0002 - S_IXOTH = 0x0001 - S_IRWXO = 0x0007 - S_IREAD = S_IRUSR - S_IWRITE = S_IWUSR - S_IEXEC = S_IXUSR - S_IFDIR = 0x01000000 - S_IFCHR = 0x02000000 - S_IFREG = 0x03000000 - S_IFFIFO = 0x04000000 - S_IFIFO = 0x04000000 - S_IFLNK = 0x05000000 - S_IFBLK = 0x06000000 - S_IFSOCK = 0x07000000 - S_IFVMEXTL = 0xFE000000 - S_IFVMEXTL_EXEC = 0x00010000 - S_IFVMEXTL_DATA = 0x00020000 - S_IFVMEXTL_MEL = 0x00030000 - S_IFEXTL = 0x00000001 - S_IFPROGCTL = 0x00000002 - S_IFAPFCTL = 0x00000004 - S_IFNOSHARE = 0x00000008 - S_IFSHARELIB = 0x00000010 - S_IFMT = 0xFF000000 - S_IFMST = 0x00FF0000 - TCP_KEEPALIVE = 0x8 - TCP_NODELAY = 0x1 - TIOCGWINSZ = 0x4008a368 - TIOCSWINSZ = 0x8008a367 - TIOCSBRK = 0x2000a77b - TIOCCBRK = 0x2000a77a - TIOCSTI = 0x8001a772 - TIOCGPGRP = 0x4004a777 // _IOR(167, 119, int) - TCSANOW = 0 - TCSETS = 0 // equivalent to TCSANOW for tcsetattr - TCSADRAIN = 1 - TCSETSW = 1 // equivalent to TCSADRAIN for tcsetattr - TCSAFLUSH = 2 - TCSETSF = 2 // equivalent to TCSAFLUSH for tcsetattr - TCGETS = 3 // not defined in ioctl.h -- zos golang only - TCIFLUSH = 0 - TCOFLUSH = 1 - TCIOFLUSH = 2 - TCOOFF = 0 - TCOON = 1 - TCIOFF = 2 - TCION = 3 - TIOCSPGRP = 0x8004a776 - TIOCNOTTY = 0x2000a771 - TIOCEXCL = 0x2000a70d - TIOCNXCL = 0x2000a70e - TIOCGETD = 0x4004a700 - TIOCSETD = 0x8004a701 - TIOCPKT = 0x8004a770 - TIOCSTOP = 0x2000a76f - TIOCSTART = 0x2000a76e - TIOCUCNTL = 0x8004a766 - TIOCREMOTE = 0x8004a769 - TIOCMGET = 0x4004a76a - TIOCMSET = 0x8004a76d - TIOCMBIC = 0x8004a76b - TIOCMBIS = 0x8004a76c - VINTR = 0 - VQUIT = 1 - VERASE = 2 - VKILL = 3 - VEOF = 4 - VEOL = 5 - VMIN = 6 - VSTART = 7 - VSTOP = 8 - VSUSP = 9 - VTIME = 10 - WCONTINUED = 0x4 - WEXITED = 0x8 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WSTOPPED = 0x10 - WUNTRACED = 0x2 - _BPX_SWAP = 1 - _BPX_NONSWAP = 2 - MCL_CURRENT = 1 // for Linux compatibility -- no zos semantics - MCL_FUTURE = 2 // for Linux compatibility -- no zos semantics - MCL_ONFAULT = 3 // for Linux compatibility -- no zos semantics - MADV_NORMAL = 0 // for Linux compatibility -- no zos semantics - MADV_RANDOM = 1 // for Linux compatibility -- no zos semantics - MADV_SEQUENTIAL = 2 // for Linux compatibility -- no zos semantics - MADV_WILLNEED = 3 // for Linux compatibility -- no zos semantics - MADV_REMOVE = 4 // for Linux compatibility -- no zos semantics - MADV_DONTFORK = 5 // for Linux compatibility -- no zos semantics - MADV_DOFORK = 6 // for Linux compatibility -- no zos semantics - MADV_HWPOISON = 7 // for Linux compatibility -- no zos semantics - MADV_MERGEABLE = 8 // for Linux compatibility -- no zos semantics - MADV_UNMERGEABLE = 9 // for Linux compatibility -- no zos semantics - MADV_SOFT_OFFLINE = 10 // for Linux compatibility -- no zos semantics - MADV_HUGEPAGE = 11 // for Linux compatibility -- no zos semantics - MADV_NOHUGEPAGE = 12 // for Linux compatibility -- no zos semantics - MADV_DONTDUMP = 13 // for Linux compatibility -- no zos semantics - MADV_DODUMP = 14 // for Linux compatibility -- no zos semantics - MADV_FREE = 15 // for Linux compatibility -- no zos semantics - MADV_WIPEONFORK = 16 // for Linux compatibility -- no zos semantics - MADV_KEEPONFORK = 17 // for Linux compatibility -- no zos semantics - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - P_PID = 0 - P_PGID = 1 - P_ALL = 2 - PR_SET_NAME = 15 - PR_GET_NAME = 16 - PR_SET_NO_NEW_PRIVS = 38 - PR_GET_NO_NEW_PRIVS = 39 - PR_SET_DUMPABLE = 4 - PR_GET_DUMPABLE = 3 - PR_SET_PDEATHSIG = 1 - PR_GET_PDEATHSIG = 2 - PR_SET_CHILD_SUBREAPER = 36 - PR_GET_CHILD_SUBREAPER = 37 - AT_FDCWD = -100 - AT_EACCESS = 0x200 - AT_EMPTY_PATH = 0x1000 - AT_REMOVEDIR = 0x200 - RENAME_NOREPLACE = 1 << 0 - ST_RDONLY = 1 - ST_NOSUID = 2 -) - -const ( - EDOM = Errno(1) - ERANGE = Errno(2) - EACCES = Errno(111) - EAGAIN = Errno(112) - EBADF = Errno(113) - EBUSY = Errno(114) - ECHILD = Errno(115) - EDEADLK = Errno(116) - EEXIST = Errno(117) - EFAULT = Errno(118) - EFBIG = Errno(119) - EINTR = Errno(120) - EINVAL = Errno(121) - EIO = Errno(122) - EISDIR = Errno(123) - EMFILE = Errno(124) - EMLINK = Errno(125) - ENAMETOOLONG = Errno(126) - ENFILE = Errno(127) - ENOATTR = Errno(265) - ENODEV = Errno(128) - ENOENT = Errno(129) - ENOEXEC = Errno(130) - ENOLCK = Errno(131) - ENOMEM = Errno(132) - ENOSPC = Errno(133) - ENOSYS = Errno(134) - ENOTDIR = Errno(135) - ENOTEMPTY = Errno(136) - ENOTTY = Errno(137) - ENXIO = Errno(138) - EPERM = Errno(139) - EPIPE = Errno(140) - EROFS = Errno(141) - ESPIPE = Errno(142) - ESRCH = Errno(143) - EXDEV = Errno(144) - E2BIG = Errno(145) - ELOOP = Errno(146) - EILSEQ = Errno(147) - ENODATA = Errno(148) - EOVERFLOW = Errno(149) - EMVSNOTUP = Errno(150) - ECMSSTORAGE = Errno(151) - EMVSDYNALC = Errno(151) - EMVSCVAF = Errno(152) - EMVSCATLG = Errno(153) - ECMSINITIAL = Errno(156) - EMVSINITIAL = Errno(156) - ECMSERR = Errno(157) - EMVSERR = Errno(157) - EMVSPARM = Errno(158) - ECMSPFSFILE = Errno(159) - EMVSPFSFILE = Errno(159) - EMVSBADCHAR = Errno(160) - ECMSPFSPERM = Errno(162) - EMVSPFSPERM = Errno(162) - EMVSSAFEXTRERR = Errno(163) - EMVSSAF2ERR = Errno(164) - EMVSTODNOTSET = Errno(165) - EMVSPATHOPTS = Errno(166) - EMVSNORTL = Errno(167) - EMVSEXPIRE = Errno(168) - EMVSPASSWORD = Errno(169) - EMVSWLMERROR = Errno(170) - EMVSCPLERROR = Errno(171) - EMVSARMERROR = Errno(172) - ELENOFORK = Errno(200) - ELEMSGERR = Errno(201) - EFPMASKINV = Errno(202) - EFPMODEINV = Errno(203) - EBUFLEN = Errno(227) - EEXTLINK = Errno(228) - ENODD = Errno(229) - ECMSESMERR = Errno(230) - ECPERR = Errno(231) - ELEMULTITHREAD = Errno(232) - ELEFENCE = Errno(244) - EBADDATA = Errno(245) - EUNKNOWN = Errno(246) - ENOTSUP = Errno(247) - EBADNAME = Errno(248) - ENOTSAFE = Errno(249) - ELEMULTITHREADFORK = Errno(257) - ECUNNOENV = Errno(258) - ECUNNOCONV = Errno(259) - ECUNNOTALIGNED = Errno(260) - ECUNERR = Errno(262) - EIBMBADCALL = Errno(1000) - EIBMBADPARM = Errno(1001) - EIBMSOCKOUTOFRANGE = Errno(1002) - EIBMSOCKINUSE = Errno(1003) - EIBMIUCVERR = Errno(1004) - EOFFLOADboxERROR = Errno(1005) - EOFFLOADboxRESTART = Errno(1006) - EOFFLOADboxDOWN = Errno(1007) - EIBMCONFLICT = Errno(1008) - EIBMCANCELLED = Errno(1009) - EIBMBADTCPNAME = Errno(1011) - ENOTBLK = Errno(1100) - ETXTBSY = Errno(1101) - EWOULDBLOCK = Errno(1102) - EINPROGRESS = Errno(1103) - EALREADY = Errno(1104) - ENOTSOCK = Errno(1105) - EDESTADDRREQ = Errno(1106) - EMSGSIZE = Errno(1107) - EPROTOTYPE = Errno(1108) - ENOPROTOOPT = Errno(1109) - EPROTONOSUPPORT = Errno(1110) - ESOCKTNOSUPPORT = Errno(1111) - EOPNOTSUPP = Errno(1112) - EPFNOSUPPORT = Errno(1113) - EAFNOSUPPORT = Errno(1114) - EADDRINUSE = Errno(1115) - EADDRNOTAVAIL = Errno(1116) - ENETDOWN = Errno(1117) - ENETUNREACH = Errno(1118) - ENETRESET = Errno(1119) - ECONNABORTED = Errno(1120) - ECONNRESET = Errno(1121) - ENOBUFS = Errno(1122) - EISCONN = Errno(1123) - ENOTCONN = Errno(1124) - ESHUTDOWN = Errno(1125) - ETOOMANYREFS = Errno(1126) - ETIMEDOUT = Errno(1127) - ECONNREFUSED = Errno(1128) - EHOSTDOWN = Errno(1129) - EHOSTUNREACH = Errno(1130) - EPROCLIM = Errno(1131) - EUSERS = Errno(1132) - EDQUOT = Errno(1133) - ESTALE = Errno(1134) - EREMOTE = Errno(1135) - ENOSTR = Errno(1136) - ETIME = Errno(1137) - ENOSR = Errno(1138) - ENOMSG = Errno(1139) - EBADMSG = Errno(1140) - EIDRM = Errno(1141) - ENONET = Errno(1142) - ERREMOTE = Errno(1143) - ENOLINK = Errno(1144) - EADV = Errno(1145) - ESRMNT = Errno(1146) - ECOMM = Errno(1147) - EPROTO = Errno(1148) - EMULTIHOP = Errno(1149) - EDOTDOT = Errno(1150) - EREMCHG = Errno(1151) - ECANCELED = Errno(1152) - EINTRNODATA = Errno(1159) - ENOREUSE = Errno(1160) - ENOMOVE = Errno(1161) -) - -// Signals -const ( - SIGHUP = Signal(1) - SIGINT = Signal(2) - SIGABRT = Signal(3) - SIGILL = Signal(4) - SIGPOLL = Signal(5) - SIGURG = Signal(6) - SIGSTOP = Signal(7) - SIGFPE = Signal(8) - SIGKILL = Signal(9) - SIGBUS = Signal(10) - SIGSEGV = Signal(11) - SIGSYS = Signal(12) - SIGPIPE = Signal(13) - SIGALRM = Signal(14) - SIGTERM = Signal(15) - SIGUSR1 = Signal(16) - SIGUSR2 = Signal(17) - SIGABND = Signal(18) - SIGCONT = Signal(19) - SIGCHLD = Signal(20) - SIGTTIN = Signal(21) - SIGTTOU = Signal(22) - SIGIO = Signal(23) - SIGQUIT = Signal(24) - SIGTSTP = Signal(25) - SIGTRAP = Signal(26) - SIGIOERR = Signal(27) - SIGWINCH = Signal(28) - SIGXCPU = Signal(29) - SIGXFSZ = Signal(30) - SIGVTALRM = Signal(31) - SIGPROF = Signal(32) - SIGDANGER = Signal(33) - SIGTHSTOP = Signal(34) - SIGTHCONT = Signal(35) - SIGTRACE = Signal(37) - SIGDCE = Signal(38) - SIGDUMP = Signal(39) -) - -// Error table -var errorList = [...]struct { - num Errno - name string - desc string -}{ - {1, "EDC5001I", "A domain error occurred."}, - {2, "EDC5002I", "A range error occurred."}, - {111, "EDC5111I", "Permission denied."}, - {112, "EDC5112I", "Resource temporarily unavailable."}, - {113, "EDC5113I", "Bad file descriptor."}, - {114, "EDC5114I", "Resource busy."}, - {115, "EDC5115I", "No child processes."}, - {116, "EDC5116I", "Resource deadlock avoided."}, - {117, "EDC5117I", "File exists."}, - {118, "EDC5118I", "Incorrect address."}, - {119, "EDC5119I", "File too large."}, - {120, "EDC5120I", "Interrupted function call."}, - {121, "EDC5121I", "Invalid argument."}, - {122, "EDC5122I", "Input/output error."}, - {123, "EDC5123I", "Is a directory."}, - {124, "EDC5124I", "Too many open files."}, - {125, "EDC5125I", "Too many links."}, - {126, "EDC5126I", "Filename too long."}, - {127, "EDC5127I", "Too many open files in system."}, - {128, "EDC5128I", "No such device."}, - {129, "EDC5129I", "No such file or directory."}, - {130, "EDC5130I", "Exec format error."}, - {131, "EDC5131I", "No locks available."}, - {132, "EDC5132I", "Not enough memory."}, - {133, "EDC5133I", "No space left on device."}, - {134, "EDC5134I", "Function not implemented."}, - {135, "EDC5135I", "Not a directory."}, - {136, "EDC5136I", "Directory not empty."}, - {137, "EDC5137I", "Inappropriate I/O control operation."}, - {138, "EDC5138I", "No such device or address."}, - {139, "EDC5139I", "Operation not permitted."}, - {140, "EDC5140I", "Broken pipe."}, - {141, "EDC5141I", "Read-only file system."}, - {142, "EDC5142I", "Invalid seek."}, - {143, "EDC5143I", "No such process."}, - {144, "EDC5144I", "Improper link."}, - {145, "EDC5145I", "The parameter list is too long, or the message to receive was too large for the buffer."}, - {146, "EDC5146I", "Too many levels of symbolic links."}, - {147, "EDC5147I", "Illegal byte sequence."}, - {148, "EDC5148I", "The named attribute or data not available."}, - {149, "EDC5149I", "Value Overflow Error."}, - {150, "EDC5150I", "UNIX System Services is not active."}, - {151, "EDC5151I", "Dynamic allocation error."}, - {152, "EDC5152I", "Common VTOC access facility (CVAF) error."}, - {153, "EDC5153I", "Catalog obtain error."}, - {156, "EDC5156I", "Process initialization error."}, - {157, "EDC5157I", "An internal error has occurred."}, - {158, "EDC5158I", "Bad parameters were passed to the service."}, - {159, "EDC5159I", "The Physical File System encountered a permanent file error."}, - {160, "EDC5160I", "Bad character in environment variable name."}, - {162, "EDC5162I", "The Physical File System encountered a system error."}, - {163, "EDC5163I", "SAF/RACF extract error."}, - {164, "EDC5164I", "SAF/RACF error."}, - {165, "EDC5165I", "System TOD clock not set."}, - {166, "EDC5166I", "Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement."}, - {167, "EDC5167I", "Access to the UNIX System Services version of the C RTL is denied."}, - {168, "EDC5168I", "Password has expired."}, - {169, "EDC5169I", "Password is invalid."}, - {170, "EDC5170I", "An error was encountered with WLM."}, - {171, "EDC5171I", "An error was encountered with CPL."}, - {172, "EDC5172I", "An error was encountered with Application Response Measurement (ARM) component."}, - {200, "EDC5200I", "The application contains a Language Environment member language that cannot tolerate a fork()."}, - {201, "EDC5201I", "The Language Environment message file was not found in the hierarchical file system."}, - {202, "EDC5202E", "DLL facilities are not supported under SPC environment."}, - {203, "EDC5203E", "DLL facilities are not supported under POSIX environment."}, - {227, "EDC5227I", "Buffer is not long enough to contain a path definition"}, - {228, "EDC5228I", "The file referred to is an external link"}, - {229, "EDC5229I", "No path definition for ddname in effect"}, - {230, "EDC5230I", "ESM error."}, - {231, "EDC5231I", "CP or the external security manager had an error"}, - {232, "EDC5232I", "The function failed because it was invoked from a multithread environment."}, - {244, "EDC5244I", "The program, module or DLL is not supported in this environment."}, - {245, "EDC5245I", "Data is not valid."}, - {246, "EDC5246I", "Unknown system state."}, - {247, "EDC5247I", "Operation not supported."}, - {248, "EDC5248I", "The object name specified is not correct."}, - {249, "EDC5249I", "The function is not allowed."}, - {257, "EDC5257I", "Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called."}, - {258, "EDC5258I", "A CUN_RS_NO_UNI_ENV error was issued by Unicode Services."}, - {259, "EDC5259I", "A CUN_RS_NO_CONVERSION error was issued by Unicode Services."}, - {260, "EDC5260I", "A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services."}, - {262, "EDC5262I", "An iconv() function encountered an unexpected error while using Unicode Services."}, - {265, "EDC5265I", "The named attribute not available."}, - {1000, "EDC8000I", "A bad socket-call constant was found in the IUCV header."}, - {1001, "EDC8001I", "An error was found in the IUCV header."}, - {1002, "EDC8002I", "A socket descriptor is out of range."}, - {1003, "EDC8003I", "A socket descriptor is in use."}, - {1004, "EDC8004I", "Request failed because of an IUCV error."}, - {1005, "EDC8005I", "Offload box error."}, - {1006, "EDC8006I", "Offload box restarted."}, - {1007, "EDC8007I", "Offload box down."}, - {1008, "EDC8008I", "Already a conflicting call outstanding on socket."}, - {1009, "EDC8009I", "Request cancelled using a SOCKcallCANCEL request."}, - {1011, "EDC8011I", "A name of a PFS was specified that either is not configured or is not a Sockets PFS."}, - {1100, "EDC8100I", "Block device required."}, - {1101, "EDC8101I", "Text file busy."}, - {1102, "EDC8102I", "Operation would block."}, - {1103, "EDC8103I", "Operation now in progress."}, - {1104, "EDC8104I", "Connection already in progress."}, - {1105, "EDC8105I", "Socket operation on non-socket."}, - {1106, "EDC8106I", "Destination address required."}, - {1107, "EDC8107I", "Message too long."}, - {1108, "EDC8108I", "Protocol wrong type for socket."}, - {1109, "EDC8109I", "Protocol not available."}, - {1110, "EDC8110I", "Protocol not supported."}, - {1111, "EDC8111I", "Socket type not supported."}, - {1112, "EDC8112I", "Operation not supported on socket."}, - {1113, "EDC8113I", "Protocol family not supported."}, - {1114, "EDC8114I", "Address family not supported."}, - {1115, "EDC8115I", "Address already in use."}, - {1116, "EDC8116I", "Address not available."}, - {1117, "EDC8117I", "Network is down."}, - {1118, "EDC8118I", "Network is unreachable."}, - {1119, "EDC8119I", "Network dropped connection on reset."}, - {1120, "EDC8120I", "Connection ended abnormally."}, - {1121, "EDC8121I", "Connection reset."}, - {1122, "EDC8122I", "No buffer space available."}, - {1123, "EDC8123I", "Socket already connected."}, - {1124, "EDC8124I", "Socket not connected."}, - {1125, "EDC8125I", "Can't send after socket shutdown."}, - {1126, "EDC8126I", "Too many references; can't splice."}, - {1127, "EDC8127I", "Connection timed out."}, - {1128, "EDC8128I", "Connection refused."}, - {1129, "EDC8129I", "Host is not available."}, - {1130, "EDC8130I", "Host cannot be reached."}, - {1131, "EDC8131I", "Too many processes."}, - {1132, "EDC8132I", "Too many users."}, - {1133, "EDC8133I", "Disk quota exceeded."}, - {1134, "EDC8134I", "Stale file handle."}, - {1135, "", ""}, - {1136, "EDC8136I", "File is not a STREAM."}, - {1137, "EDC8137I", "STREAMS ioctl() timeout."}, - {1138, "EDC8138I", "No STREAMS resources."}, - {1139, "EDC8139I", "The message identified by set_id and msg_id is not in the message catalog."}, - {1140, "EDC8140I", "Bad message."}, - {1141, "EDC8141I", "Identifier removed."}, - {1142, "", ""}, - {1143, "", ""}, - {1144, "EDC8144I", "The link has been severed."}, - {1145, "", ""}, - {1146, "", ""}, - {1147, "", ""}, - {1148, "EDC8148I", "Protocol error."}, - {1149, "EDC8149I", "Multihop not allowed."}, - {1150, "", ""}, - {1151, "", ""}, - {1152, "EDC8152I", "The asynchronous I/O request has been canceled."}, - {1159, "EDC8159I", "Function call was interrupted before any data was received."}, - {1160, "EDC8160I", "Socket reuse is not supported."}, - {1161, "EDC8161I", "The file system cannot currently be moved."}, -} - -// Signal table -var signalList = [...]struct { - num Signal - name string - desc string -}{ - {1, "SIGHUP", "hangup"}, - {2, "SIGINT", "interrupt"}, - {3, "SIGABT", "aborted"}, - {4, "SIGILL", "illegal instruction"}, - {5, "SIGPOLL", "pollable event"}, - {6, "SIGURG", "urgent I/O condition"}, - {7, "SIGSTOP", "stop process"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGBUS", "bus error"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGSYS", "bad argument to routine"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGABND", "abend"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGQUIT", "quit"}, - {25, "SIGTSTP", "stopped"}, - {26, "SIGTRAP", "trace/breakpoint trap"}, - {27, "SIGIOER", "I/O error"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGXCPU", "CPU time limit exceeded"}, - {30, "SIGXFSZ", "file size limit exceeded"}, - {31, "SIGVTALRM", "virtual timer expired"}, - {32, "SIGPROF", "profiling timer expired"}, - {33, "SIGDANGER", "danger"}, - {34, "SIGTHSTOP", "stop thread"}, - {35, "SIGTHCONT", "continue thread"}, - {37, "SIGTRACE", "trace"}, - {38, "", "DCE"}, - {39, "SIGDUMP", "dump"}, -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go deleted file mode 100644 index 586317c..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. - -//go:build linux && (arm || arm64) - -package unix - -import "unsafe" - -// PtraceRegsArm is the registers used by arm binaries. -type PtraceRegsArm struct { - Uregs [18]uint32 -} - -// PtraceGetRegsArm fetches the registers used by arm binaries. -func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsArm sets the registers used by arm binaries. -func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsArm64 is the registers used by arm64 binaries. -type PtraceRegsArm64 struct { - Regs [31]uint64 - Sp uint64 - Pc uint64 - Pstate uint64 -} - -// PtraceGetRegsArm64 fetches the registers used by arm64 binaries. -func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsArm64 sets the registers used by arm64 binaries. -func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go deleted file mode 100644 index 834d285..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +++ /dev/null @@ -1,17 +0,0 @@ -// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT. - -package unix - -import "unsafe" - -// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries. -func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error { - iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))} - return ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) -} - -// PtraceSetRegSetArm64 sets the registers used by arm64 binaries. -func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error { - iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))} - return ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go deleted file mode 100644 index d7c881b..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. - -//go:build linux && (mips || mips64) - -package unix - -import "unsafe" - -// PtraceRegsMips is the registers used by mips binaries. -type PtraceRegsMips struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips fetches the registers used by mips binaries. -func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips sets the registers used by mips binaries. -func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsMips64 is the registers used by mips64 binaries. -type PtraceRegsMips64 struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips64 fetches the registers used by mips64 binaries. -func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips64 sets the registers used by mips64 binaries. -func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go deleted file mode 100644 index 2d2de5d..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. - -//go:build linux && (mipsle || mips64le) - -package unix - -import "unsafe" - -// PtraceRegsMipsle is the registers used by mipsle binaries. -type PtraceRegsMipsle struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMipsle fetches the registers used by mipsle binaries. -func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMipsle sets the registers used by mipsle binaries. -func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsMips64le is the registers used by mips64le binaries. -type PtraceRegsMips64le struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips64le fetches the registers used by mips64le binaries. -func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips64le sets the registers used by mips64le binaries. -func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go deleted file mode 100644 index 5adc79f..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go +++ /dev/null @@ -1,79 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. - -//go:build linux && (386 || amd64) - -package unix - -import "unsafe" - -// PtraceRegs386 is the registers used by 386 binaries. -type PtraceRegs386 struct { - Ebx int32 - Ecx int32 - Edx int32 - Esi int32 - Edi int32 - Ebp int32 - Eax int32 - Xds int32 - Xes int32 - Xfs int32 - Xgs int32 - Orig_eax int32 - Eip int32 - Xcs int32 - Eflags int32 - Esp int32 - Xss int32 -} - -// PtraceGetRegs386 fetches the registers used by 386 binaries. -func PtraceGetRegs386(pid int, regsout *PtraceRegs386) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegs386 sets the registers used by 386 binaries. -func PtraceSetRegs386(pid int, regs *PtraceRegs386) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsAmd64 is the registers used by amd64 binaries. -type PtraceRegsAmd64 struct { - R15 uint64 - R14 uint64 - R13 uint64 - R12 uint64 - Rbp uint64 - Rbx uint64 - R11 uint64 - R10 uint64 - R9 uint64 - R8 uint64 - Rax uint64 - Rcx uint64 - Rdx uint64 - Rsi uint64 - Rdi uint64 - Orig_rax uint64 - Rip uint64 - Cs uint64 - Eflags uint64 - Rsp uint64 - Ss uint64 - Fs_base uint64 - Gs_base uint64 - Ds uint64 - Es uint64 - Fs uint64 - Gs uint64 -} - -// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries. -func PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsAmd64 sets the registers used by amd64 binaries. -func PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s deleted file mode 100644 index b77ff5d..0000000 --- a/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +++ /dev/null @@ -1,364 +0,0 @@ -// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build zos && s390x -#include "textflag.h" - -// provide the address of function variable to be fixed up. - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Flistxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fremovexattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fgetxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fsetxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_accept4Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·accept4(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_RemovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Removexattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_Dup3Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Dup3(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_DirfdAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Dirfd(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollCreateAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollCreate(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollCreate1Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollCreate1(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollCtlAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollCtl(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollPwaitAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollPwait(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollWaitAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollWait(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EventfdAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Eventfd(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FaccessatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Faccessat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FchmodatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fchmodat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FchownatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fchownat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FdatasyncAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fdatasync(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_fstatatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·fstatat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Lgetxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Lsetxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FstatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fstatfs(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Futimes(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FutimesatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Futimesat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_GetrandomAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Getrandom(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_InotifyInitAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·InotifyInit(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_InotifyInit1Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·InotifyInit1(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_InotifyAddWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·InotifyAddWatch(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_InotifyRmWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·InotifyRmWatch(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_ListxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Listxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Llistxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Lremovexattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Lutimes(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_StatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Statfs(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_SyncfsAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Syncfs(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_UnshareAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Unshare(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Linkat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_MkdiratAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Mkdirat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_MknodatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Mknodat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_PivotRootAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·PivotRoot(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_PrctlAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Prctl(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_PrlimitAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Prlimit(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_RenameatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Renameat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_Renameat2Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Renameat2(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_SethostnameAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Sethostname(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_SetnsAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Setns(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_SymlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Symlinkat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_UnlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Unlinkat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_openatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·openat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_openat2Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·openat2(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_utimensatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·utimensat(SB), R8 - MOVD R8, ret+0(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go deleted file mode 100644 index 6ea64a3..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +++ /dev/null @@ -1,1461 +0,0 @@ -// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build aix && ppc - -package unix - -/* -#include -#include -int utimes(uintptr_t, uintptr_t); -int utimensat(int, uintptr_t, uintptr_t, int); -int getcwd(uintptr_t, size_t); -int accept(int, uintptr_t, uintptr_t); -int getdirent(int, uintptr_t, size_t); -int wait4(int, uintptr_t, int, uintptr_t); -int ioctl(int, int, uintptr_t); -int fcntl(uintptr_t, int, uintptr_t); -int fsync_range(int, int, long long, long long); -int acct(uintptr_t); -int chdir(uintptr_t); -int chroot(uintptr_t); -int close(int); -int dup(int); -void exit(int); -int faccessat(int, uintptr_t, unsigned int, int); -int fchdir(int); -int fchmod(int, unsigned int); -int fchmodat(int, uintptr_t, unsigned int, int); -int fchownat(int, uintptr_t, int, int, int); -int fdatasync(int); -int getpgid(int); -int getpgrp(); -int getpid(); -int getppid(); -int getpriority(int, int); -int getrusage(int, uintptr_t); -int getsid(int); -int kill(int, int); -int syslog(int, uintptr_t, size_t); -int mkdir(int, uintptr_t, unsigned int); -int mkdirat(int, uintptr_t, unsigned int); -int mkfifo(uintptr_t, unsigned int); -int mknod(uintptr_t, unsigned int, int); -int mknodat(int, uintptr_t, unsigned int, int); -int nanosleep(uintptr_t, uintptr_t); -int open64(uintptr_t, int, unsigned int); -int openat(int, uintptr_t, int, unsigned int); -int read(int, uintptr_t, size_t); -int readlink(uintptr_t, uintptr_t, size_t); -int renameat(int, uintptr_t, int, uintptr_t); -int setdomainname(uintptr_t, size_t); -int sethostname(uintptr_t, size_t); -int setpgid(int, int); -int setsid(); -int settimeofday(uintptr_t); -int setuid(int); -int setgid(int); -int setpriority(int, int, int); -int statx(int, uintptr_t, int, int, uintptr_t); -int sync(); -uintptr_t times(uintptr_t); -int umask(int); -int uname(uintptr_t); -int unlink(uintptr_t); -int unlinkat(int, uintptr_t, int); -int ustat(int, uintptr_t); -int write(int, uintptr_t, size_t); -int dup2(int, int); -int posix_fadvise64(int, long long, long long, int); -int fchown(int, int, int); -int fstat(int, uintptr_t); -int fstatat(int, uintptr_t, uintptr_t, int); -int fstatfs(int, uintptr_t); -int ftruncate(int, long long); -int getegid(); -int geteuid(); -int getgid(); -int getuid(); -int lchown(uintptr_t, int, int); -int listen(int, int); -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); -int shutdown(int, int); -long long splice(int, uintptr_t, int, uintptr_t, int, int); -int stat(uintptr_t, uintptr_t); -int statfs(uintptr_t, uintptr_t); -int truncate(uintptr_t, long long); -int bind(int, uintptr_t, uintptr_t); -int connect(int, uintptr_t, uintptr_t); -int getgroups(int, uintptr_t); -int setgroups(int, uintptr_t); -int getsockopt(int, int, int, uintptr_t, uintptr_t); -int setsockopt(int, int, int, uintptr_t, uintptr_t); -int socket(int, int, int); -int socketpair(int, int, int, uintptr_t); -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 munmap(uintptr_t, uintptr_t); -int madvise(uintptr_t, size_t, int); -int mprotect(uintptr_t, size_t, int); -int mlock(uintptr_t, size_t); -int mlockall(int); -int msync(uintptr_t, size_t, int); -int munlock(uintptr_t, size_t); -int munlockall(); -int pipe(uintptr_t); -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); -long long lseek64(int, long long, int); -uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long); - -*/ -import "C" -import ( - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getcwd(buf []byte) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirent(fd int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - 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 wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { - r0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) - wpid = Pid_t(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req int, arg uintptr) (err error) { - r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { - r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) - r = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { - r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk)))) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) - val = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsyncRange(fd int, how int, start int64, length int64) (err error) { - r0, er := C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.acct(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 Chdir(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.chdir(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 Chroot(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.chroot(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 Close(fd int) (err error) { - r0, er := C.close(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, er := C.dup(C.int(oldfd)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - C.exit(C.int(code)) - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - r0, er := C.fchdir(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - r0, er := C.fchmod(C.int(fd), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - r0, er := C.fdatasync(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, er := C.getpgid(C.int(pid)) - pgid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pid int) { - r0, _ := C.getpgrp() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := C.getpid() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := C.getppid() - 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, er := C.getpriority(C.int(which), C.int(who)) - prio = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - r0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, er := C.getsid(C.int(pid)) - sid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig Signal) (err error) { - r0, er := C.kill(C.int(pid), C.int(sig)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - 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 Mkdir(dirfd int, path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - r0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover)))) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - 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 Readlink(path string, buf []byte) (n int, err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - var _p1 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - var _p2 int - _p2 = len(buf) - r0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2)) - 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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(oldpath))) - _p1 := uintptr(unsafe.Pointer(C.CString(newpath))) - r0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - r0, er := C.setpgid(C.int(pid), C.int(pgid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, er := C.setsid() - pid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - r0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - r0, er := C.setuid(C.int(uid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(uid int) (err error) { - r0, er := C.setgid(C.int(uid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - r0, er := C.setpriority(C.int(which), C.int(who), C.int(prio)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - C.sync() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms)))) - ticks = uintptr(r0) - if uintptr(r0) == ^uintptr(0) && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := C.umask(C.int(mask)) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - r0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.unlink(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 Unlinkat(dirfd int, path string, flags int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf)))) - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - 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 Dup2(oldfd int, newfd int) (err error) { - r0, er := C.dup2(C.int(oldfd), C.int(newfd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - r0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - r0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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 - } - return -} - -// 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) { - _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 { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - r0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - r0, er := C.ftruncate(C.int(fd), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := C.getegid() - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := C.geteuid() - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := C.getgid() - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := C.getuid() - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - r0, er := C.listen(C.int(s), C.int(n)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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 { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - r0, er := C.pause() - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) - 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 pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) - 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 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) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - r0, er := C.setregid(C.int(rgid), C.int(egid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - r0, er := C.setreuid(C.int(ruid), C.int(euid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - r0, er := C.shutdown(C.int(fd), C.int(how)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags)) - n = int64(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, statptr *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)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) - nn = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - r0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen)))) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen)) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.socket(C.int(domain), C.int(typ), C.int(proto)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen)))) - 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 sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) - 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 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)) - 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 munmap(addr uintptr, length uintptr) (err error) { - r0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - r0, er := C.mlockall(C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - r0, er := C.munlockall() - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - r0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p)))) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(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 gettimeofday(tv *Timeval, tzp *Timezone) (err error) { - r0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t)))) - tt = Time_t(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// 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 { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence)) - off = int64(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)) - xaddr = uintptr(r0) - if uintptr(r0) == ^uintptr(0) && er != nil { - err = er - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go deleted file mode 100644 index 99ee439..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +++ /dev/null @@ -1,1420 +0,0 @@ -// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build aix && ppc64 - -package unix - -import ( - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getcwd(buf []byte) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf)) - 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 := callaccept(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 getdirent(fd int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), 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 wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { - r0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage))) - wpid = Pid_t(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 int, arg uintptr) (err error) { - _, e1 := callioctl(fd, req, arg) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - _, e1 := callioctl_ptr(fd, req, arg) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { - r0, e1 := callfcntl(fd, cmd, uintptr(arg)) - r = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { - _, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk))) - 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 := callfcntl(uintptr(fd), 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 fsyncRange(fd int, how int, start int64, length int64) (err error) { - _, e1 := callfsync_range(fd, how, start, length) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callacct(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 Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callchdir(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 Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callchroot(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 Close(fd int) (err error) { - _, e1 := callclose(fd) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, e1 := calldup(oldfd) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - callexit(code) - 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 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) - 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 := callfchdir(fd) - 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 := callfchmod(fd, mode) - 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 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) - 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 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, e1 := callfdatasync(fd) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, e1 := callgetpgid(pid) - 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() (pid int) { - r0, _ := callgetpgrp() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := callgetpid() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := callgetppid() - 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 := callgetpriority(which, who) - prio = 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 := callgetrusage(who, uintptr(unsafe.Pointer(rusage))) - 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 := callgetsid(pid) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig Signal) (err error) { - _, e1 := callkill(pid, int(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), 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 Mkdir(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode) - 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 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), 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 := callmkfifo(uintptr(unsafe.Pointer(_p0)), 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 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, 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 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev) - 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 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) - 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 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, 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, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode) - fd = 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), 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 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - r0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 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 Renameat(olddirfd int, 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 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), 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 Setdomainname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p)) - 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 := callsetpgid(pid, pgid) - 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 := callsetsid() - 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(tv *Timeval) (err error) { - _, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv))) - 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 := callsetuid(uid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(uid int) (err error) { - _, e1 := callsetgid(uid) - 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 := callsetpriority(which, who, prio) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - callsync() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, e1 := calltimes(uintptr(unsafe.Pointer(tms))) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := callumask(mask) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, e1 := calluname(uintptr(unsafe.Pointer(buf))) - if e1 != 0 { - err = errnoErr(e1) - } - 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 := callunlink(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 Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf))) - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), 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 Dup2(oldfd int, newfd int) (err error) { - _, e1 := calldup2(oldfd, newfd) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, e1 := callposix_fadvise64(fd, offset, length, advice) - 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 := callfchown(fd, uid, gid) - 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 := callfstat(fd, uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf))) - 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 := callftruncate(fd, 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, _ := callgetegid() - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := callgeteuid() - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := callgetgid() - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := callgetuid() - uid = int(r0) - 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 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, e1 := calllisten(s, n) - 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 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, e1 := callpause() - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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) - 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 := callsetregid(rgid, egid) - 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 := callsetreuid(ruid, euid) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, e1 := callshutdown(fd, how) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, statptr *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))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) - 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 := calltruncate(uintptr(unsafe.Pointer(_p0)), length) - 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 := callbind(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 := callconnect(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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list))) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list))) - 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 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen))) - 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 := callsetsockopt(s, level, name, uintptr(val), vallen) - 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 := callsocket(domain, typ, 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 socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd))) - 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 := callgetpeername(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 := callgetsockname(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 recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), 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 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), 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 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), 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 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), 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 munmap(addr uintptr, length uintptr) (err error) { - _, e1 := callmunmap(addr, length) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice) - 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot) - 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b)) - 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 := callmlockall(flags) - 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b)) - 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 := callmunlockall() - 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 := callpipe(uintptr(unsafe.Pointer(p))) - 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 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, 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 gettimeofday(tv *Timeval, tzp *Timezone) (err error) { - _, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, e1 := calltime(uintptr(unsafe.Pointer(t))) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 { - 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) (off int64, err error) { - r0, e1 := calllseek(fd, offset, whence) - off = int64(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, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, e1 := callmmap64(addr, length, prot, flags, fd, offset) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} 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 deleted file mode 100644 index b68a783..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +++ /dev/null @@ -1,1188 +0,0 @@ -// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build aix && ppc64 && gc - -package unix - -import ( - "unsafe" -) - -//go:cgo_import_dynamic libc_utimes utimes "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_utimensat utimensat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getcwd getcwd "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_accept accept "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getdirent getdirent "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_wait4 wait4 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fcntl fcntl "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fsync_range fsync_range "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_acct acct "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_chdir chdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_chroot chroot "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_close close "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_dup dup "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_exit exit "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_faccessat faccessat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchdir fchdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchmod fchmod "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchownat fchownat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpgid getpgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpid getpid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getppid getppid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpriority getpriority "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getrusage getrusage "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsid getsid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_kill kill "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_syslog syslog "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkdir mkdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mknod mknod "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mknodat mknodat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_open64 open64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_openat openat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_read read "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_readlink readlink "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_renameat renameat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setdomainname setdomainname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_sethostname sethostname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setpriority setpriority "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_statx statx "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_sync sync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_times times "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_umask umask "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_uname uname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_unlink unlink "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ustat ustat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_write write "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_dup2 dup2 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchown fchown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstat fstat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstatat fstatat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getegid getegid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_geteuid geteuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getgid getgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getuid getuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_lchown lchown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_listen listen "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_lstat lstat "libc.a/shr_64.o" -//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" -//go:cgo_import_dynamic libc_shutdown shutdown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_splice splice "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_stat stat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_statfs statfs "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_truncate truncate "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_bind bind "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_connect connect "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getgroups getgroups "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_socket socket "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_socketpair socketpair "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpeername getpeername "libc.a/shr_64.o" -//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_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" -//go:cgo_import_dynamic libc_mlock mlock "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mlockall mlockall "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_msync msync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_munlock munlock "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_munlockall munlockall "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_pipe pipe "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_poll poll "libc.a/shr_64.o" -//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_lseek lseek "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mmap64 mmap64 "libc.a/shr_64.o" - -//go:linkname libc_utimes libc_utimes -//go:linkname libc_utimensat libc_utimensat -//go:linkname libc_getcwd libc_getcwd -//go:linkname libc_accept libc_accept -//go:linkname libc_getdirent libc_getdirent -//go:linkname libc_wait4 libc_wait4 -//go:linkname libc_ioctl libc_ioctl -//go:linkname libc_fcntl libc_fcntl -//go:linkname libc_fsync_range libc_fsync_range -//go:linkname libc_acct libc_acct -//go:linkname libc_chdir libc_chdir -//go:linkname libc_chroot libc_chroot -//go:linkname libc_close libc_close -//go:linkname libc_dup libc_dup -//go:linkname libc_exit libc_exit -//go:linkname libc_faccessat libc_faccessat -//go:linkname libc_fchdir libc_fchdir -//go:linkname libc_fchmod libc_fchmod -//go:linkname libc_fchmodat libc_fchmodat -//go:linkname libc_fchownat libc_fchownat -//go:linkname libc_fdatasync libc_fdatasync -//go:linkname libc_getpgid libc_getpgid -//go:linkname libc_getpgrp libc_getpgrp -//go:linkname libc_getpid libc_getpid -//go:linkname libc_getppid libc_getppid -//go:linkname libc_getpriority libc_getpriority -//go:linkname libc_getrusage libc_getrusage -//go:linkname libc_getsid libc_getsid -//go:linkname libc_kill libc_kill -//go:linkname libc_syslog libc_syslog -//go:linkname libc_mkdir libc_mkdir -//go:linkname libc_mkdirat libc_mkdirat -//go:linkname libc_mkfifo libc_mkfifo -//go:linkname libc_mknod libc_mknod -//go:linkname libc_mknodat libc_mknodat -//go:linkname libc_nanosleep libc_nanosleep -//go:linkname libc_open64 libc_open64 -//go:linkname libc_openat libc_openat -//go:linkname libc_read libc_read -//go:linkname libc_readlink libc_readlink -//go:linkname libc_renameat libc_renameat -//go:linkname libc_setdomainname libc_setdomainname -//go:linkname libc_sethostname libc_sethostname -//go:linkname libc_setpgid libc_setpgid -//go:linkname libc_setsid libc_setsid -//go:linkname libc_settimeofday libc_settimeofday -//go:linkname libc_setuid libc_setuid -//go:linkname libc_setgid libc_setgid -//go:linkname libc_setpriority libc_setpriority -//go:linkname libc_statx libc_statx -//go:linkname libc_sync libc_sync -//go:linkname libc_times libc_times -//go:linkname libc_umask libc_umask -//go:linkname libc_uname libc_uname -//go:linkname libc_unlink libc_unlink -//go:linkname libc_unlinkat libc_unlinkat -//go:linkname libc_ustat libc_ustat -//go:linkname libc_write libc_write -//go:linkname libc_dup2 libc_dup2 -//go:linkname libc_posix_fadvise64 libc_posix_fadvise64 -//go:linkname libc_fchown libc_fchown -//go:linkname libc_fstat libc_fstat -//go:linkname libc_fstatat libc_fstatat -//go:linkname libc_fstatfs libc_fstatfs -//go:linkname libc_ftruncate libc_ftruncate -//go:linkname libc_getegid libc_getegid -//go:linkname libc_geteuid libc_geteuid -//go:linkname libc_getgid libc_getgid -//go:linkname libc_getuid libc_getuid -//go:linkname libc_lchown libc_lchown -//go:linkname libc_listen libc_listen -//go:linkname libc_lstat libc_lstat -//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 -//go:linkname libc_shutdown libc_shutdown -//go:linkname libc_splice libc_splice -//go:linkname libc_stat libc_stat -//go:linkname libc_statfs libc_statfs -//go:linkname libc_truncate libc_truncate -//go:linkname libc_bind libc_bind -//go:linkname libc_connect libc_connect -//go:linkname libc_getgroups libc_getgroups -//go:linkname libc_setgroups libc_setgroups -//go:linkname libc_getsockopt libc_getsockopt -//go:linkname libc_setsockopt libc_setsockopt -//go:linkname libc_socket libc_socket -//go:linkname libc_socketpair libc_socketpair -//go:linkname libc_getpeername libc_getpeername -//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_munmap libc_munmap -//go:linkname libc_madvise libc_madvise -//go:linkname libc_mprotect libc_mprotect -//go:linkname libc_mlock libc_mlock -//go:linkname libc_mlockall libc_mlockall -//go:linkname libc_msync libc_msync -//go:linkname libc_munlock libc_munlock -//go:linkname libc_munlockall libc_munlockall -//go:linkname libc_pipe libc_pipe -//go:linkname libc_poll libc_poll -//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_lseek libc_lseek -//go:linkname libc_mmap64 libc_mmap64 - -type syscallFunc uintptr - -var ( - libc_utimes, - libc_utimensat, - libc_getcwd, - libc_accept, - libc_getdirent, - libc_wait4, - libc_ioctl, - libc_fcntl, - libc_fsync_range, - libc_acct, - libc_chdir, - libc_chroot, - libc_close, - libc_dup, - libc_exit, - libc_faccessat, - libc_fchdir, - libc_fchmod, - libc_fchmodat, - libc_fchownat, - libc_fdatasync, - libc_getpgid, - libc_getpgrp, - libc_getpid, - libc_getppid, - libc_getpriority, - libc_getrusage, - libc_getsid, - libc_kill, - libc_syslog, - libc_mkdir, - libc_mkdirat, - libc_mkfifo, - libc_mknod, - libc_mknodat, - libc_nanosleep, - libc_open64, - libc_openat, - libc_read, - libc_readlink, - libc_renameat, - libc_setdomainname, - libc_sethostname, - libc_setpgid, - libc_setsid, - libc_settimeofday, - libc_setuid, - libc_setgid, - libc_setpriority, - libc_statx, - libc_sync, - libc_times, - libc_umask, - libc_uname, - libc_unlink, - libc_unlinkat, - libc_ustat, - libc_write, - libc_dup2, - libc_posix_fadvise64, - libc_fchown, - libc_fstat, - libc_fstatat, - libc_fstatfs, - libc_ftruncate, - libc_getegid, - libc_geteuid, - libc_getgid, - libc_getuid, - libc_lchown, - libc_listen, - libc_lstat, - libc_pause, - libc_pread64, - libc_pwrite64, - libc_select, - libc_pselect, - libc_setregid, - libc_setreuid, - libc_shutdown, - libc_splice, - libc_stat, - libc_statfs, - libc_truncate, - libc_bind, - libc_connect, - libc_getgroups, - libc_setgroups, - libc_getsockopt, - libc_setsockopt, - libc_socket, - libc_socketpair, - libc_getpeername, - libc_getsockname, - libc_recvfrom, - libc_sendto, - libc_nrecvmsg, - libc_nsendmsg, - libc_munmap, - libc_madvise, - libc_mprotect, - libc_mlock, - libc_mlockall, - libc_msync, - libc_munlock, - libc_munlockall, - libc_pipe, - libc_poll, - libc_gettimeofday, - libc_time, - libc_utime, - libc_getsystemcfg, - libc_umount, - libc_getrlimit, - libc_lseek, - libc_mmap64 syscallFunc -) - -// 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) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync_range)), 4, uintptr(fd), uintptr(how), uintptr(start), uintptr(length), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callclose(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup(oldfd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callexit(code int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchdir(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfdatasync(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgid(pid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgrp() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetppid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsid(pid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetuid(uid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgid(uid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsync() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumask(mask int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calluname(buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetegid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgeteuid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetuid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllisten(s int, n int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpause() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) - return -} - -// 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags)) - return -} - -// 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen) - return -} - -// 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) - 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlockall(flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlockall() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpipe(p uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltime(t uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0) - return -} - -// 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - 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 deleted file mode 100644 index 0a87450..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +++ /dev/null @@ -1,1069 +0,0 @@ -// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build aix && ppc64 && gccgo - -package unix - -/* -#include -int utimes(uintptr_t, uintptr_t); -int utimensat(int, uintptr_t, uintptr_t, int); -int getcwd(uintptr_t, size_t); -int accept(int, uintptr_t, uintptr_t); -int getdirent(int, uintptr_t, size_t); -int wait4(int, uintptr_t, int, uintptr_t); -int ioctl(int, int, uintptr_t); -int fcntl(uintptr_t, int, uintptr_t); -int fsync_range(int, int, long long, long long); -int acct(uintptr_t); -int chdir(uintptr_t); -int chroot(uintptr_t); -int close(int); -int dup(int); -void exit(int); -int faccessat(int, uintptr_t, unsigned int, int); -int fchdir(int); -int fchmod(int, unsigned int); -int fchmodat(int, uintptr_t, unsigned int, int); -int fchownat(int, uintptr_t, int, int, int); -int fdatasync(int); -int getpgid(int); -int getpgrp(); -int getpid(); -int getppid(); -int getpriority(int, int); -int getrusage(int, uintptr_t); -int getsid(int); -int kill(int, int); -int syslog(int, uintptr_t, size_t); -int mkdir(int, uintptr_t, unsigned int); -int mkdirat(int, uintptr_t, unsigned int); -int mkfifo(uintptr_t, unsigned int); -int mknod(uintptr_t, unsigned int, int); -int mknodat(int, uintptr_t, unsigned int, int); -int nanosleep(uintptr_t, uintptr_t); -int open64(uintptr_t, int, unsigned int); -int openat(int, uintptr_t, int, unsigned int); -int read(int, uintptr_t, size_t); -int readlink(uintptr_t, uintptr_t, size_t); -int renameat(int, uintptr_t, int, uintptr_t); -int setdomainname(uintptr_t, size_t); -int sethostname(uintptr_t, size_t); -int setpgid(int, int); -int setsid(); -int settimeofday(uintptr_t); -int setuid(int); -int setgid(int); -int setpriority(int, int, int); -int statx(int, uintptr_t, int, int, uintptr_t); -int sync(); -uintptr_t times(uintptr_t); -int umask(int); -int uname(uintptr_t); -int unlink(uintptr_t); -int unlinkat(int, uintptr_t, int); -int ustat(int, uintptr_t); -int write(int, uintptr_t, size_t); -int dup2(int, int); -int posix_fadvise64(int, long long, long long, int); -int fchown(int, int, int); -int fstat(int, uintptr_t); -int fstatat(int, uintptr_t, uintptr_t, int); -int fstatfs(int, uintptr_t); -int ftruncate(int, long long); -int getegid(); -int geteuid(); -int getgid(); -int getuid(); -int lchown(uintptr_t, int, int); -int listen(int, int); -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); -int shutdown(int, int); -long long splice(int, uintptr_t, int, uintptr_t, int, int); -int stat(uintptr_t, uintptr_t); -int statfs(uintptr_t, uintptr_t); -int truncate(uintptr_t, long long); -int bind(int, uintptr_t, uintptr_t); -int connect(int, uintptr_t, uintptr_t); -int getgroups(int, uintptr_t); -int setgroups(int, uintptr_t); -int getsockopt(int, int, int, uintptr_t, uintptr_t); -int setsockopt(int, int, int, uintptr_t, uintptr_t); -int socket(int, int, int); -int socketpair(int, int, int, uintptr_t); -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 munmap(uintptr_t, uintptr_t); -int madvise(uintptr_t, size_t, int); -int mprotect(uintptr_t, size_t, int); -int mlock(uintptr_t, size_t); -int mlockall(int); -int msync(uintptr_t, size_t, int); -int munlock(uintptr_t, size_t); -int munlockall(); -int pipe(uintptr_t); -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); -long long lseek(int, long long, int); -uintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long); - -*/ -import "C" -import ( - "syscall" - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg)))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.acct(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.chdir(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.chroot(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callclose(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.close(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup(oldfd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.dup(C.int(oldfd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callexit(code int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.exit(C.int(code))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchdir(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchdir(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchmod(C.int(fd), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfdatasync(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fdatasync(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgid(pid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpgid(C.int(pid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgrp() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpgrp()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetppid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getppid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpriority(C.int(which), C.int(who))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsid(pid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsid(C.int(pid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.kill(C.int(pid), C.int(sig))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setpgid(C.int(pid), C.int(pgid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setsid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.settimeofday(C.uintptr_t(tv))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetuid(uid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setuid(C.int(uid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgid(uid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setgid(C.int(uid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsync() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sync()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.times(C.uintptr_t(tms))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumask(mask int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.umask(C.int(mask))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calluname(buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.uname(C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.unlink(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetegid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getegid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgeteuid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.geteuid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getgid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetuid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getuid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllisten(s int, n int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.listen(C.int(s), C.int(n))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpause() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pause()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} - -// 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() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setregid(C.int(rgid), C.int(egid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setreuid(C.int(ruid), C.int(euid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.shutdown(C.int(fd), C.int(how))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// 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))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// 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))) - 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))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlockall(flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mlockall(C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlockall() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munlockall()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpipe(p uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pipe(C.uintptr_t(p))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltime(t uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.time(C.uintptr_t(t))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// 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() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go deleted file mode 100644 index 813c05b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ /dev/null @@ -1,2728 +0,0 @@ -// go run mksyscall.go -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build darwin && amd64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_closedir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -var libc_readdir_r_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fgetxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsetxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_removexattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fremovexattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flistxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 renamexNp(from string, to string, flag uint32) (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_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renamex_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renamex_np renamex_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (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_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameatx_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameatx_np renameatx_np "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pthread_chdir_np(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pthread_chdir_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pthread_fchdir_np(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pthread_fchdir_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { - var _p0 unsafe.Pointer - if len(iov) > 0 { - _p0 = unsafe.Pointer(&iov[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connectx_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connectx connectx "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendfile_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmdt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmget_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Clonefile(src string, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(src) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefile_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(src) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefileat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_exchangedata_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fclonefileat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0) - size = int(r0) - return -} - -var libc_getdtablesize_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(attrBuf) > 0 { - _p1 = unsafe.Pointer(&attrBuf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setattrlist_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setprivexec_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_undelete_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readv(fd int, iovecs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readv_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readv readv "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_preadv_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_preadv preadv "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writev(fd int, iovecs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_writev_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_writev writev "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwritev_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwritev pwritev "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ptrace_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs64_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s deleted file mode 100644 index fda3285..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +++ /dev/null @@ -1,799 +0,0 @@ -// go run mkasm.go darwin amd64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) -GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) -GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - -TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) -GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) - -TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) -GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) - -TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) -GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) - -TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) -GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) - -TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) -GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) - -TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) -GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) - -TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) -GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) - -TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) -GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) - -TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) -GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) - -TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) -GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renamex_np(SB) -GLOBL ·libc_renamex_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB) - -TEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameatx_np(SB) -GLOBL ·libc_renameatx_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pthread_chdir_np(SB) -GLOBL ·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB) - -TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pthread_fchdir_np(SB) -GLOBL ·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) - -TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connectx(SB) -GLOBL ·libc_connectx_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) - -TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) -GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) - -TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmat(SB) -GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) - -TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmctl(SB) -GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) - -TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmdt(SB) -GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) - -TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmget(SB) -GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefile(SB) -GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) - -TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefileat(SB) -GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) -GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fclonefileat(SB) -GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) -GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setattrlist(SB) -GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) -GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) -GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 -DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readv(SB) -GLOBL ·libc_readv_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB) - -TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_preadv(SB) -GLOBL ·libc_preadv_trampoline_addr(SB), RODATA, $8 -DATA ·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB) - -TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_writev(SB) -GLOBL ·libc_writev_trampoline_addr(SB), RODATA, $8 -DATA ·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB) - -TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwritev(SB) -GLOBL ·libc_pwritev_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB) - -TEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat64(SB) -GLOBL ·libc_fstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB) - -TEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat64(SB) -GLOBL ·libc_fstatat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB) - -TEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs64(SB) -GLOBL ·libc_fstatfs64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB) - -TEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat64(SB) -GLOBL ·libc_getfsstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB) - -TEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat64(SB) -GLOBL ·libc_lstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB) - -TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) - -TEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat64(SB) -GLOBL ·libc_stat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB) - -TEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs64(SB) -GLOBL ·libc_statfs64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go deleted file mode 100644 index e6f58f3..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ /dev/null @@ -1,2728 +0,0 @@ -// go run mksyscall.go -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build darwin && 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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_closedir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -var libc_readdir_r_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fgetxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsetxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func removexattr(path string, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_removexattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fremovexattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flistxattr_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 renamexNp(from string, to string, flag uint32) (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_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renamex_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renamex_np renamex_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (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_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameatx_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameatx_np renameatx_np "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pthread_chdir_np(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pthread_chdir_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pthread_fchdir_np(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pthread_fchdir_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { - var _p0 unsafe.Pointer - if len(iov) > 0 { - _p0 = unsafe.Pointer(&iov[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connectx_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connectx connectx "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { - _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendfile_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmdt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmget_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Clonefile(src string, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(src) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefile_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(src) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefileat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_exchangedata_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(dst) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fclonefileat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0) - size = int(r0) - return -} - -var libc_getdtablesize_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(attrBuf) > 0 { - _p1 = unsafe.Pointer(&attrBuf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setattrlist_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setprivexec_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_undelete_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readv(fd int, iovecs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readv_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readv readv "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_preadv_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_preadv preadv "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writev(fd int, iovecs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_writev_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_writev writev "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwritev_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwritev pwritev "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ptrace_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s deleted file mode 100644 index 7f8998b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +++ /dev/null @@ -1,799 +0,0 @@ -// go run mkasm.go darwin arm64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) -GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) -GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - -TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) -GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) - -TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) -GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) - -TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) -GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) - -TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) -GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) - -TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) -GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) - -TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) -GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) - -TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) -GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) - -TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) -GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) - -TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) -GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) - -TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) -GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renamex_np(SB) -GLOBL ·libc_renamex_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB) - -TEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameatx_np(SB) -GLOBL ·libc_renameatx_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pthread_chdir_np(SB) -GLOBL ·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB) - -TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pthread_fchdir_np(SB) -GLOBL ·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) - -TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connectx(SB) -GLOBL ·libc_connectx_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) - -TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) -GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) - -TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmat(SB) -GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) - -TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmctl(SB) -GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) - -TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmdt(SB) -GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) - -TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmget(SB) -GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefile(SB) -GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) - -TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefileat(SB) -GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) -GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fclonefileat(SB) -GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) -GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setattrlist(SB) -GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) -GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) -GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 -DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readv(SB) -GLOBL ·libc_readv_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB) - -TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_preadv(SB) -GLOBL ·libc_preadv_trampoline_addr(SB), RODATA, $8 -DATA ·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB) - -TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_writev(SB) -GLOBL ·libc_writev_trampoline_addr(SB), RODATA, $8 -DATA ·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB) - -TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwritev(SB) -GLOBL ·libc_pwritev_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go deleted file mode 100644 index aad65fc..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ /dev/null @@ -1,1666 +0,0 @@ -// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build dragonfly && amd64 - -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 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 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() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - 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) (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func extpread(fd int, p []byte, flags int, 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_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), 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 extpwrite(fd int, p []byte, flags int, 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_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 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 Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - 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 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 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(fd 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(fd), 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 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 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, 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 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go deleted file mode 100644 index c009639..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ /dev/null @@ -1,1886 +0,0 @@ -// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && 386 - -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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - 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), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - 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 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 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 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(fdat 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(fdat), 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)), uintptr(offset), uintptr(offset>>32), 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)), uintptr(offset), uintptr(offset>>32), 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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)), uintptr(length), uintptr(length>>32)) - 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 Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, 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 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), uintptr(pos), uintptr(pos>>32), 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go deleted file mode 100644 index 7664df7..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ /dev/null @@ -1,1886 +0,0 @@ -// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && amd64 - -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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - 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 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 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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(fdat 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(fdat), 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)), uintptr(offset), 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 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)), uintptr(offset), 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 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 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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)), uintptr(length), 0) - 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 Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, 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 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 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go deleted file mode 100644 index ae09918..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ /dev/null @@ -1,1886 +0,0 @@ -// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && arm - -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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - 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 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 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32)) - 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(fdat 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(fdat), 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), uintptr(offset>>32)) - 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), uintptr(offset>>32)) - 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - 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 Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, 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 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), uintptr(pos>>32), 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go deleted file mode 100644 index 11fd5d4..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ /dev/null @@ -1,1886 +0,0 @@ -// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && 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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - 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 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 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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(fdat 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(fdat), 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)), uintptr(offset), 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 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)), uintptr(offset), 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 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 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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)), uintptr(length), 0) - 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 Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, 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 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 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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/zsyscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go deleted file mode 100644 index c3d2d65..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +++ /dev/null @@ -1,1886 +0,0 @@ -// go run mksyscall.go -tags freebsd,riscv64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_riscv64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && riscv64 - -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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - 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 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 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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(fdat 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(fdat), 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)), uintptr(offset), 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 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)), uintptr(offset), 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 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 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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)), uintptr(length), 0) - 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 Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, 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 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 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go deleted file mode 100644 index c698cbc..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +++ /dev/null @@ -1,101 +0,0 @@ -// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build illumos && amd64 - -package unix - -import ( - "unsafe" -) - -//go:cgo_import_dynamic libc_readv readv "libc.so" -//go:cgo_import_dynamic libc_preadv preadv "libc.so" -//go:cgo_import_dynamic libc_writev writev "libc.so" -//go:cgo_import_dynamic libc_pwritev pwritev "libc.so" -//go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so" - -//go:linkname procreadv libc_readv -//go:linkname procpreadv libc_preadv -//go:linkname procwritev libc_writev -//go:linkname procpwritev libc_pwritev -//go:linkname procaccept4 libc_accept4 - -var ( - procreadv, - procpreadv, - procwritev, - procpwritev, - procaccept4 syscallFunc -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readv(fd int, iovs []Iovec) (n int, err error) { - var _p0 *Iovec - if len(iovs) > 0 { - _p0 = &iovs[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 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 preadv(fd int, iovs []Iovec, off int64) (n int, err error) { - var _p0 *Iovec - if len(iovs) > 0 { - _p0 = &iovs[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 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 writev(fd int, iovs []Iovec) (n int, err error) { - var _p0 *Iovec - if len(iovs) > 0 { - _p0 = &iovs[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 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 pwritev(fd int, iovs []Iovec, off int64) (n int, err error) { - var _p0 *Iovec - if len(iovs) > 0 { - _p0 = &iovs[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go deleted file mode 100644 index 5cc1e8e..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ /dev/null @@ -1,2240 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go:build linux - -package unix - -import ( - "syscall" - "unsafe" -) - -// 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 fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, 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 fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT2, 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (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 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 openat(dirfd int, path string, flags int, mode 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(flags), uintptr(mode), 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 openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - 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 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 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 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 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 -} - -// 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 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 Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { - _, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), 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 keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), 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 mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT_SETATTR, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(unsafe.Pointer(attr)), uintptr(size), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 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 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 ClockAdjtime(clockid int32, buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockSettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_SETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 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 CloseRange(first uint, last uint, flags uint) (err error) { - _, _, e1 := Syscall(SYS_CLOSE_RANGE, uintptr(first), uintptr(last), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, 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 Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 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 Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 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 EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(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 Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - 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 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 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 Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, 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 Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), 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 Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - 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 Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 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 Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) { - r0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs)) - fsfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsopen(fsName string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_FSOPEN, uintptr(unsafe.Pointer(_p0)), uintptr(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 Fspick(dirfd int, pathName string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { - _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 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_GETDENTS64, 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 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 Getpid() (pid int) { - r0, _ := RawSyscallNoError(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, _ := RawSyscallNoError(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 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 Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), 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 InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 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 InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ 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_SYSLOG, uintptr(typ), 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 Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, 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 Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(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 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 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 MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fromPathName) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(toPathName) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), 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 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 OpenTree(dfd int, fileName string, flags uint) (r int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fileName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - r = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(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 PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, 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 Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - 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 Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, 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 Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (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 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 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 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(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, 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 Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 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 Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), 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 Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, 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 Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func TimerfdCreate(clockid int, flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(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 TimerfdGettime(fd int, currValue *ItimerSpec) (err error) { - _, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) { - _, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, 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 Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, 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 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 exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readv(fd int, iovs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writev(fd int, iovs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 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 mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldaddr), uintptr(oldlength), uintptr(newlength), uintptr(flags), uintptr(newaddr), 0) - xaddr = uintptr(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, advice 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(advice)) - 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 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 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 faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, 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 Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT2, 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 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 ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { - var _p0 unsafe.Pointer - if len(localIov) > 0 { - _p0 = unsafe.Pointer(&localIov[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 unsafe.Pointer - if len(remoteIov) > 0 { - _p1 = unsafe.Pointer(&remoteIov[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), 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 ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { - var _p0 unsafe.Pointer - if len(localIov) > 0 { - _p0 = unsafe.Pointer(&localIov[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 unsafe.Pointer - if len(remoteIov) > 0 { - _p1 = unsafe.Pointer(&remoteIov[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), 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 PidfdOpen(pid int, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_PIDFD_OPEN, uintptr(pid), uintptr(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 PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_PIDFD_GETFD, uintptr(pidfd), uintptr(targetfd), 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 PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) { - _, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), 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 shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := Syscall(SYS_SHMCTL, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := Syscall(SYS_SHMDT, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := Syscall(SYS_SHMGET, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getitimer(which int, currValue *Itimerval) (err error) { - _, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) { - _, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) { - _, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - RawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - RawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) { - _, _, e1 := Syscall(SYS_SCHED_SETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) { - _, _, e1 := Syscall6(SYS_SCHED_GETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(size), 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 Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) { - _, _, e1 := Syscall6(SYS_CACHESTAT, uintptr(fd), uintptr(unsafe.Pointer(crange)), uintptr(unsafe.Pointer(cstat)), 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 Mseal(b []byte, flags uint) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSEAL, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go deleted file mode 100644 index 4def3e9..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ /dev/null @@ -1,486 +0,0 @@ -// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && 386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) - 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_FCHOWN32, 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 Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), 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 Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)) - 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, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - 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_LCHOWN32, 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 Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags)) - 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_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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 *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go deleted file mode 100644 index fef2bc8..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ /dev/null @@ -1,653 +0,0 @@ -// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go deleted file mode 100644 index a9fd76a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ /dev/null @@ -1,601 +0,0 @@ -// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN32, 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 Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) - uid = int(r0) - 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_LCHOWN32, 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 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_LSTAT64, 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, 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 Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 utimes(path string, times *[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(times)), 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - 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 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 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 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - 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 *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - 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 deleted file mode 100644 index 4600650..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ /dev/null @@ -1,552 +0,0 @@ -// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(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 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_loong64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go deleted file mode 100644 index c8987d2..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +++ /dev/null @@ -1,486 +0,0 @@ -// go run mksyscall.go -tags linux,loong64 syscall_linux.go syscall_linux_loong64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && loong64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(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 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 deleted file mode 100644 index 921f430..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ /dev/null @@ -1,653 +0,0 @@ -// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mips - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r0)<<32 | int64(r1)) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 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 Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) - 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), 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 Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 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_LSTAT64, 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 Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), 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 Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - 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 *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go deleted file mode 100644 index 44f0678..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ /dev/null @@ -1,647 +0,0 @@ -// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mips64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, st *stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 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 lstat(path string, st *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(st)), 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, st *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(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go deleted file mode 100644 index e7fa0ab..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ /dev/null @@ -1,636 +0,0 @@ -// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mips64le - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, st *stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 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 lstat(path string, st *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(st)), 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, st *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(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go deleted file mode 100644 index 8c51256..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ /dev/null @@ -1,653 +0,0 @@ -// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mipsle - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 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 Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), 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 Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 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_LSTAT64, 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 Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), 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 Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - 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 *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go deleted file mode 100644 index 7392fd4..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +++ /dev/null @@ -1,658 +0,0 @@ -// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r0)<<32 | int64(r1)) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 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 Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), 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 Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 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_LSTAT64, 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), 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 Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, 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 Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - 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 *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n)) - if e1 != 0 { - err = errnoErr(e1) - } - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go deleted file mode 100644 index 4118043..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ /dev/null @@ -1,704 +0,0 @@ -// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - 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, buf *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(buf)), 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go deleted file mode 100644 index 40c6ce7..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ /dev/null @@ -1,704 +0,0 @@ -// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc64le - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - 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, buf *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(buf)), 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go deleted file mode 100644 index 2cfe34a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ /dev/null @@ -1,548 +0,0 @@ -// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && riscv64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) { - var _p0 unsafe.Pointer - if len(pairs) > 0 { - _p0 = unsafe.Pointer(&pairs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_RISCV_HWPROBE, uintptr(_p0), uintptr(len(pairs)), uintptr(cpuCount), uintptr(unsafe.Pointer(cpus)), 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 deleted file mode 100644 index 61e6f07..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ /dev/null @@ -1,495 +0,0 @@ -// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && s390x - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - 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, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go deleted file mode 100644 index 834b842..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ /dev/null @@ -1,648 +0,0 @@ -// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && sparc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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), uintptr(length), 0) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 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, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsgid(gid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setfsuid(uid int) (prev int, err error) { - r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - prev = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - 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, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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 Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go deleted file mode 100644 index e91ebc1..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ /dev/null @@ -1,1848 +0,0 @@ -// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build netbsd && 386 - -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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) - 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 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 Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { - _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - 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 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), uintptr(offset>>32)) - 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), uintptr(offset>>32)) - 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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 Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - 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), uintptr(pos>>32), 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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go deleted file mode 100644 index be28bab..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ /dev/null @@ -1,1848 +0,0 @@ -// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build netbsd && amd64 - -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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) - 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) - 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 Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { - _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - 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 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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 Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - 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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go deleted file mode 100644 index fb587e8..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ /dev/null @@ -1,1848 +0,0 @@ -// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build netbsd && arm - -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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) - 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 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 Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { - _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - 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 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), uintptr(offset>>32)) - 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), uintptr(offset>>32)) - 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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 Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - 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), uintptr(pos>>32), 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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go deleted file mode 100644 index d576438..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ /dev/null @@ -1,1848 +0,0 @@ -// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build netbsd && 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 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 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 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 ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 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 Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) - 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) - 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 Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { - _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - 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 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 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 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 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 Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) - 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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go deleted file mode 100644 index 1851df1..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -l32 -openbsd -libc -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && 386 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s deleted file mode 100644 index 0b43c69..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd 386 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 -DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 -DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 -DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 -DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 -DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 -DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 -DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 -DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 -DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 -DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 -DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 -DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 -DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 -DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 -DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go deleted file mode 100644 index e1ec0db..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && amd64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s deleted file mode 100644 index 880c6d6..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd amd64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go deleted file mode 100644 index 7c8452a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -l32 -openbsd -arm -libc -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && arm - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s deleted file mode 100644 index b8ef95b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd arm -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 -DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 -DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 -DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 -DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 -DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 -DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 -DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 -DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 -DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 -DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 -DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 -DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 -DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 -DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 -DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB) 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 2ffdf86..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -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. - -//go: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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s deleted file mode 100644 index 2af3b5c..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd arm64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go deleted file mode 100644 index 1da08d5..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && mips64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s deleted file mode 100644 index b7a2513..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd mips64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go deleted file mode 100644 index 6e85b0a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && ppc64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s deleted file mode 100644 index f15dadf..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +++ /dev/null @@ -1,838 +0,0 @@ -// go run mkasm.go openbsd ppc64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getgroups(SB) - RET -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setgroups(SB) - RET -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_wait4(SB) - RET -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_accept(SB) - RET -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_bind(SB) - RET -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_connect(SB) - RET -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_socket(SB) - RET -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsockopt(SB) - RET -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setsockopt(SB) - RET -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpeername(SB) - RET -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsockname(SB) - RET -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_shutdown(SB) - RET -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_socketpair(SB) - RET -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_recvfrom(SB) - RET -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sendto(SB) - RET -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_recvmsg(SB) - RET -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sendmsg(SB) - RET -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kevent(SB) - RET -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_utimes(SB) - RET -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_futimes(SB) - RET -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_poll(SB) - RET -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_madvise(SB) - RET -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mlock(SB) - RET -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mlockall(SB) - RET -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mprotect(SB) - RET -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_msync(SB) - RET -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munlock(SB) - RET -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munlockall(SB) - RET -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pipe2(SB) - RET -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getdents(SB) - RET -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getcwd(SB) - RET -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getresuid(SB) - RET -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getresgid(SB) - RET -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ioctl(SB) - RET -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sysctl(SB) - RET -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fcntl(SB) - RET -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ppoll(SB) - RET -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_access(SB) - RET -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_adjtime(SB) - RET -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chdir(SB) - RET -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chflags(SB) - RET -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chmod(SB) - RET -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chown(SB) - RET -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chroot(SB) - RET -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_clock_gettime(SB) - RET -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_close(SB) - RET -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup(SB) - RET -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup2(SB) - RET -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup3(SB) - RET -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_exit(SB) - RET -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_faccessat(SB) - RET -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchdir(SB) - RET -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchflags(SB) - RET -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchmod(SB) - RET -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchmodat(SB) - RET -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchown(SB) - RET -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchownat(SB) - RET -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_flock(SB) - RET -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fpathconf(SB) - RET -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstat(SB) - RET -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstatat(SB) - RET -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstatfs(SB) - RET -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fsync(SB) - RET -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ftruncate(SB) - RET -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getegid(SB) - RET -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_geteuid(SB) - RET -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getgid(SB) - RET -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpgid(SB) - RET -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpgrp(SB) - RET -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpid(SB) - RET -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getppid(SB) - RET -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpriority(SB) - RET -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrlimit(SB) - RET -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrtable(SB) - RET -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrusage(SB) - RET -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsid(SB) - RET -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_gettimeofday(SB) - RET -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getuid(SB) - RET -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_issetugid(SB) - RET -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kill(SB) - RET -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kqueue(SB) - RET -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lchown(SB) - RET -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_link(SB) - RET -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_linkat(SB) - RET -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_listen(SB) - RET -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lstat(SB) - RET -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkdir(SB) - RET -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkdirat(SB) - RET -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkfifo(SB) - RET -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkfifoat(SB) - RET -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mknod(SB) - RET -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mknodat(SB) - RET -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mount(SB) - RET -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_nanosleep(SB) - RET -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_open(SB) - RET -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_openat(SB) - RET -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pathconf(SB) - RET -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pread(SB) - RET -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pwrite(SB) - RET -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_read(SB) - RET -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_readlink(SB) - RET -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_readlinkat(SB) - RET -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_rename(SB) - RET -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_renameat(SB) - RET -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_revoke(SB) - RET -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_rmdir(SB) - RET -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lseek(SB) - RET -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_select(SB) - RET -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setegid(SB) - RET -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_seteuid(SB) - RET -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setgid(SB) - RET -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setlogin(SB) - RET -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setpgid(SB) - RET -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setpriority(SB) - RET -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setregid(SB) - RET -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setreuid(SB) - RET -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setresgid(SB) - RET -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setresuid(SB) - RET -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setrtable(SB) - RET -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setsid(SB) - RET -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_settimeofday(SB) - RET -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setuid(SB) - RET -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_stat(SB) - RET -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_statfs(SB) - RET -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_symlink(SB) - RET -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_symlinkat(SB) - RET -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sync(SB) - RET -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_truncate(SB) - RET -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_umask(SB) - RET -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unlink(SB) - RET -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unlinkat(SB) - RET -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unmount(SB) - RET -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_write(SB) - RET -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mmap(SB) - RET -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munmap(SB) - RET -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getfsstat(SB) - RET -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_utimensat(SB) - RET -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pledge(SB) - RET -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unveil(SB) - RET -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go deleted file mode 100644 index 28b487d..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && riscv64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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 := syscall_syscall6(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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 := syscall_syscall6(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s deleted file mode 100644 index 1e7f321..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd riscv64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go deleted file mode 100644 index b4609c2..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ /dev/null @@ -1,2217 +0,0 @@ -// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build solaris && amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -//go:cgo_import_dynamic libc_pipe pipe "libc.so" -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" -//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" -//go:cgo_import_dynamic libc_gethostname gethostname "libc.so" -//go:cgo_import_dynamic libc_utimes utimes "libc.so" -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -//go:cgo_import_dynamic libc_futimesat futimesat "libc.so" -//go:cgo_import_dynamic libc_accept accept "libsocket.so" -//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" -//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" -//go:cgo_import_dynamic libc_acct acct "libc.so" -//go:cgo_import_dynamic libc___makedev __makedev "libc.so" -//go:cgo_import_dynamic libc___major __major "libc.so" -//go:cgo_import_dynamic libc___minor __minor "libc.so" -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -//go:cgo_import_dynamic libc_poll poll "libc.so" -//go:cgo_import_dynamic libc_access access "libc.so" -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" -//go:cgo_import_dynamic libc_chdir chdir "libc.so" -//go:cgo_import_dynamic libc_chmod chmod "libc.so" -//go:cgo_import_dynamic libc_chown chown "libc.so" -//go:cgo_import_dynamic libc_chroot chroot "libc.so" -//go:cgo_import_dynamic libc_clockgettime clockgettime "libc.so" -//go:cgo_import_dynamic libc_close close "libc.so" -//go:cgo_import_dynamic libc_creat creat "libc.so" -//go:cgo_import_dynamic libc_dup dup "libc.so" -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" -//go:cgo_import_dynamic libc_exit exit "libc.so" -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" -//go:cgo_import_dynamic libc_fchown fchown "libc.so" -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" -//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so" -//go:cgo_import_dynamic libc_flock flock "libc.so" -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" -//go:cgo_import_dynamic libc_fstat fstat "libc.so" -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" -//go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so" -//go:cgo_import_dynamic libc_getdents getdents "libc.so" -//go:cgo_import_dynamic libc_getgid getgid "libc.so" -//go:cgo_import_dynamic libc_getpid getpid "libc.so" -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" -//go:cgo_import_dynamic libc_getegid getegid "libc.so" -//go:cgo_import_dynamic libc_getppid getppid "libc.so" -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" -//go:cgo_import_dynamic libc_getsid getsid "libc.so" -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" -//go:cgo_import_dynamic libc_getuid getuid "libc.so" -//go:cgo_import_dynamic libc_kill kill "libc.so" -//go:cgo_import_dynamic libc_lchown lchown "libc.so" -//go:cgo_import_dynamic libc_link link "libc.so" -//go:cgo_import_dynamic libc___xnet_listen __xnet_listen "libsocket.so" -//go:cgo_import_dynamic libc_lstat lstat "libc.so" -//go:cgo_import_dynamic libc_madvise madvise "libc.so" -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" -//go:cgo_import_dynamic libc_mknod mknod "libc.so" -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" -//go:cgo_import_dynamic libc_mlock mlock "libc.so" -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" -//go:cgo_import_dynamic libc_msync msync "libc.so" -//go:cgo_import_dynamic libc_munlock munlock "libc.so" -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" -//go:cgo_import_dynamic libc_open open "libc.so" -//go:cgo_import_dynamic libc_openat openat "libc.so" -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" -//go:cgo_import_dynamic libc_pause pause "libc.so" -//go:cgo_import_dynamic libc_pread pread "libc.so" -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" -//go:cgo_import_dynamic libc_read read "libc.so" -//go:cgo_import_dynamic libc_readlink readlink "libc.so" -//go:cgo_import_dynamic libc_rename rename "libc.so" -//go:cgo_import_dynamic libc_renameat renameat "libc.so" -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" -//go:cgo_import_dynamic libc_lseek lseek "libc.so" -//go:cgo_import_dynamic libc_select select "libc.so" -//go:cgo_import_dynamic libc_setegid setegid "libc.so" -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" -//go:cgo_import_dynamic libc_setgid setgid "libc.so" -//go:cgo_import_dynamic libc_sethostname sethostname "libc.so" -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" -//go:cgo_import_dynamic libc_setregid setregid "libc.so" -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" -//go:cgo_import_dynamic libc_setsid setsid "libc.so" -//go:cgo_import_dynamic libc_setuid setuid "libc.so" -//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so" -//go:cgo_import_dynamic libc_stat stat "libc.so" -//go:cgo_import_dynamic libc_statvfs statvfs "libc.so" -//go:cgo_import_dynamic libc_symlink symlink "libc.so" -//go:cgo_import_dynamic libc_sync sync "libc.so" -//go:cgo_import_dynamic libc_sysconf sysconf "libc.so" -//go:cgo_import_dynamic libc_times times "libc.so" -//go:cgo_import_dynamic libc_truncate truncate "libc.so" -//go:cgo_import_dynamic libc_fsync fsync "libc.so" -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" -//go:cgo_import_dynamic libc_umask umask "libc.so" -//go:cgo_import_dynamic libc_uname uname "libc.so" -//go:cgo_import_dynamic libc_umount umount "libc.so" -//go:cgo_import_dynamic libc_unlink unlink "libc.so" -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" -//go:cgo_import_dynamic libc_ustat ustat "libc.so" -//go:cgo_import_dynamic libc_utime utime "libc.so" -//go:cgo_import_dynamic libc___xnet_bind __xnet_bind "libsocket.so" -//go:cgo_import_dynamic libc___xnet_connect __xnet_connect "libsocket.so" -//go:cgo_import_dynamic libc_mmap mmap "libc.so" -//go:cgo_import_dynamic libc_munmap munmap "libc.so" -//go:cgo_import_dynamic libc_sendfile sendfile "libsendfile.so" -//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so" -//go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so" -//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so" -//go:cgo_import_dynamic libc_write write "libc.so" -//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" -//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" -//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" -//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" -//go:cgo_import_dynamic libc_getpeerucred getpeerucred "libc.so" -//go:cgo_import_dynamic libc_ucred_get ucred_get "libc.so" -//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid "libc.so" -//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid "libc.so" -//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid "libc.so" -//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid "libc.so" -//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid "libc.so" -//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid "libc.so" -//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid "libc.so" -//go:cgo_import_dynamic libc_ucred_free ucred_free "libc.so" -//go:cgo_import_dynamic libc_port_create port_create "libc.so" -//go:cgo_import_dynamic libc_port_associate port_associate "libc.so" -//go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" -//go:cgo_import_dynamic libc_port_get port_get "libc.so" -//go:cgo_import_dynamic libc_port_getn port_getn "libc.so" -//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" -//go:cgo_import_dynamic libc_getmsg getmsg "libc.so" - -//go:linkname procpipe libc_pipe -//go:linkname procpipe2 libc_pipe2 -//go:linkname procgetsockname libc_getsockname -//go:linkname procGetcwd libc_getcwd -//go:linkname procgetgroups libc_getgroups -//go:linkname procsetgroups libc_setgroups -//go:linkname procwait4 libc_wait4 -//go:linkname procgethostname libc_gethostname -//go:linkname procutimes libc_utimes -//go:linkname procutimensat libc_utimensat -//go:linkname procfcntl libc_fcntl -//go:linkname procfutimesat libc_futimesat -//go:linkname procaccept libc_accept -//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg -//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg -//go:linkname procacct libc_acct -//go:linkname proc__makedev libc___makedev -//go:linkname proc__major libc___major -//go:linkname proc__minor libc___minor -//go:linkname procioctl libc_ioctl -//go:linkname procpoll libc_poll -//go:linkname procAccess libc_access -//go:linkname procAdjtime libc_adjtime -//go:linkname procChdir libc_chdir -//go:linkname procChmod libc_chmod -//go:linkname procChown libc_chown -//go:linkname procChroot libc_chroot -//go:linkname procClockGettime libc_clockgettime -//go:linkname procClose libc_close -//go:linkname procCreat libc_creat -//go:linkname procDup libc_dup -//go:linkname procDup2 libc_dup2 -//go:linkname procExit libc_exit -//go:linkname procFaccessat libc_faccessat -//go:linkname procFchdir libc_fchdir -//go:linkname procFchmod libc_fchmod -//go:linkname procFchmodat libc_fchmodat -//go:linkname procFchown libc_fchown -//go:linkname procFchownat libc_fchownat -//go:linkname procFdatasync libc_fdatasync -//go:linkname procFlock libc_flock -//go:linkname procFpathconf libc_fpathconf -//go:linkname procFstat libc_fstat -//go:linkname procFstatat libc_fstatat -//go:linkname procFstatvfs libc_fstatvfs -//go:linkname procGetdents libc_getdents -//go:linkname procGetgid libc_getgid -//go:linkname procGetpid libc_getpid -//go:linkname procGetpgid libc_getpgid -//go:linkname procGetpgrp libc_getpgrp -//go:linkname procGeteuid libc_geteuid -//go:linkname procGetegid libc_getegid -//go:linkname procGetppid libc_getppid -//go:linkname procGetpriority libc_getpriority -//go:linkname procGetrlimit libc_getrlimit -//go:linkname procGetrusage libc_getrusage -//go:linkname procGetsid libc_getsid -//go:linkname procGettimeofday libc_gettimeofday -//go:linkname procGetuid libc_getuid -//go:linkname procKill libc_kill -//go:linkname procLchown libc_lchown -//go:linkname procLink libc_link -//go:linkname proc__xnet_listen libc___xnet_listen -//go:linkname procLstat libc_lstat -//go:linkname procMadvise libc_madvise -//go:linkname procMkdir libc_mkdir -//go:linkname procMkdirat libc_mkdirat -//go:linkname procMkfifo libc_mkfifo -//go:linkname procMkfifoat libc_mkfifoat -//go:linkname procMknod libc_mknod -//go:linkname procMknodat libc_mknodat -//go:linkname procMlock libc_mlock -//go:linkname procMlockall libc_mlockall -//go:linkname procMprotect libc_mprotect -//go:linkname procMsync libc_msync -//go:linkname procMunlock libc_munlock -//go:linkname procMunlockall libc_munlockall -//go:linkname procNanosleep libc_nanosleep -//go:linkname procOpen libc_open -//go:linkname procOpenat libc_openat -//go:linkname procPathconf libc_pathconf -//go:linkname procPause libc_pause -//go:linkname procpread libc_pread -//go:linkname procpwrite libc_pwrite -//go:linkname procread libc_read -//go:linkname procReadlink libc_readlink -//go:linkname procRename libc_rename -//go:linkname procRenameat libc_renameat -//go:linkname procRmdir libc_rmdir -//go:linkname proclseek libc_lseek -//go:linkname procSelect libc_select -//go:linkname procSetegid libc_setegid -//go:linkname procSeteuid libc_seteuid -//go:linkname procSetgid libc_setgid -//go:linkname procSethostname libc_sethostname -//go:linkname procSetpgid libc_setpgid -//go:linkname procSetpriority libc_setpriority -//go:linkname procSetregid libc_setregid -//go:linkname procSetreuid libc_setreuid -//go:linkname procSetsid libc_setsid -//go:linkname procSetuid libc_setuid -//go:linkname procshutdown libc_shutdown -//go:linkname procStat libc_stat -//go:linkname procStatvfs libc_statvfs -//go:linkname procSymlink libc_symlink -//go:linkname procSync libc_sync -//go:linkname procSysconf libc_sysconf -//go:linkname procTimes libc_times -//go:linkname procTruncate libc_truncate -//go:linkname procFsync libc_fsync -//go:linkname procFtruncate libc_ftruncate -//go:linkname procUmask libc_umask -//go:linkname procUname libc_uname -//go:linkname procumount libc_umount -//go:linkname procUnlink libc_unlink -//go:linkname procUnlinkat libc_unlinkat -//go:linkname procUstat libc_ustat -//go:linkname procUtime libc_utime -//go:linkname proc__xnet_bind libc___xnet_bind -//go:linkname proc__xnet_connect libc___xnet_connect -//go:linkname procmmap libc_mmap -//go:linkname procmunmap libc_munmap -//go:linkname procsendfile libc_sendfile -//go:linkname proc__xnet_sendto libc___xnet_sendto -//go:linkname proc__xnet_socket libc___xnet_socket -//go:linkname proc__xnet_socketpair libc___xnet_socketpair -//go:linkname procwrite libc_write -//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt -//go:linkname procgetpeername libc_getpeername -//go:linkname procsetsockopt libc_setsockopt -//go:linkname procrecvfrom libc_recvfrom -//go:linkname procgetpeerucred libc_getpeerucred -//go:linkname procucred_get libc_ucred_get -//go:linkname procucred_geteuid libc_ucred_geteuid -//go:linkname procucred_getegid libc_ucred_getegid -//go:linkname procucred_getruid libc_ucred_getruid -//go:linkname procucred_getrgid libc_ucred_getrgid -//go:linkname procucred_getsuid libc_ucred_getsuid -//go:linkname procucred_getsgid libc_ucred_getsgid -//go:linkname procucred_getpid libc_ucred_getpid -//go:linkname procucred_free libc_ucred_free -//go:linkname procport_create libc_port_create -//go:linkname procport_associate libc_port_associate -//go:linkname procport_dissociate libc_port_dissociate -//go:linkname procport_get libc_port_get -//go:linkname procport_getn libc_port_getn -//go:linkname procputmsg libc_putmsg -//go:linkname procgetmsg libc_getmsg - -var ( - procpipe, - procpipe2, - procgetsockname, - procGetcwd, - procgetgroups, - procsetgroups, - procwait4, - procgethostname, - procutimes, - procutimensat, - procfcntl, - procfutimesat, - procaccept, - proc__xnet_recvmsg, - proc__xnet_sendmsg, - procacct, - proc__makedev, - proc__major, - proc__minor, - procioctl, - procpoll, - procAccess, - procAdjtime, - procChdir, - procChmod, - procChown, - procChroot, - procClockGettime, - procClose, - procCreat, - procDup, - procDup2, - procExit, - procFaccessat, - procFchdir, - procFchmod, - procFchmodat, - procFchown, - procFchownat, - procFdatasync, - procFlock, - procFpathconf, - procFstat, - procFstatat, - procFstatvfs, - procGetdents, - procGetgid, - procGetpid, - procGetpgid, - procGetpgrp, - procGeteuid, - procGetegid, - procGetppid, - procGetpriority, - procGetrlimit, - procGetrusage, - procGetsid, - procGettimeofday, - procGetuid, - procKill, - procLchown, - procLink, - proc__xnet_listen, - procLstat, - procMadvise, - procMkdir, - procMkdirat, - procMkfifo, - procMkfifoat, - procMknod, - procMknodat, - procMlock, - procMlockall, - procMprotect, - procMsync, - procMunlock, - procMunlockall, - procNanosleep, - procOpen, - procOpenat, - procPathconf, - procPause, - procpread, - procpwrite, - procread, - procReadlink, - procRename, - procRenameat, - procRmdir, - proclseek, - procSelect, - procSetegid, - procSeteuid, - procSetgid, - procSethostname, - procSetpgid, - procSetpriority, - procSetregid, - procSetreuid, - procSetsid, - procSetuid, - procshutdown, - procStat, - procStatvfs, - procSymlink, - procSync, - procSysconf, - procTimes, - procTruncate, - procFsync, - procFtruncate, - procUmask, - procUname, - procumount, - procUnlink, - procUnlinkat, - procUstat, - procUtime, - proc__xnet_bind, - proc__xnet_connect, - procmmap, - procmunmap, - procsendfile, - proc__xnet_sendto, - proc__xnet_socket, - proc__xnet_socketpair, - procwrite, - proc__xnet_getsockopt, - procgetpeername, - procsetsockopt, - procrecvfrom, - procgetpeerucred, - procucred_get, - procucred_geteuid, - procucred_getegid, - procucred_getruid, - procucred_getrgid, - procucred_getsuid, - procucred_getsgid, - procucred_getpid, - procucred_free, - procport_create, - procport_associate, - procport_dissociate, - procport_get, - procport_getn, - procputmsg, - procgetmsg syscallFunc -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 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 pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - 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 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 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 getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 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 setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int32(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gethostname(buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 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 utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 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 futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 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 acct(path *byte) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __makedev(version int, major uint, minor uint) (val uint64) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0) - val = uint64(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __major(version int, dev uint64) (val uint) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) - val = uint(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __minor(version int, dev uint64) (val uint) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) - val = uint(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlRet(fd int, req int, arg uintptr) (ret int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - ret = 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 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Creat(path string, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 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 Dup(fd int) (nfd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 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(oldfd int, newfd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 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) { - sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, 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 Fdatasync(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, 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 Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 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, basep *uintptr) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 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 Getgid() (gid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0) - pid = 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 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() (pgid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 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 Geteuid() (euid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 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) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 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 Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) - 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 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, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_listen)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, 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 Mlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0) - 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0) - 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 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 Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 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 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 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 Pause() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 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 pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 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 read(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 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 Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, 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 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 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 Setegid(egid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) - 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 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 Setuid(uid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statvfs(path string, vfsstat *Statvfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysconf(which int) (n int64, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) - ticks = uintptr(r0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = 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 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_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 socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 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 socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, 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 write(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 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 getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, 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 getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, 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 recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_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 getpeerucred(fd uintptr, ucred *uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGet(pid int) (ucred uintptr, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0) - ucred = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGeteuid(ucred uintptr) (uid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetegid(ucred uintptr) (gid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetruid(ucred uintptr) (uid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetrgid(ucred uintptr) (gid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetsuid(ucred uintptr) (uid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetsgid(ucred uintptr) (gid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetpid(ucred uintptr) (pid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredFree(ucred uintptr) { - sysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func port_create() (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 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 port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 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 port_dissociate(port int, source int, object uintptr) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 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 port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 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 port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 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 putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), 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 getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go deleted file mode 100644 index 7ccf66b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +++ /dev/null @@ -1,3458 +0,0 @@ -// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build zos && s390x - -package unix - -import ( - "runtime" - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) - runtime.ExitSyscall() - val = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FLISTXATTR_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FlistxattrAddr() *(func(fd int, dest []byte) (sz int, err error)) - -var Flistxattr = enter_Flistxattr - -func enter_Flistxattr(fd int, dest []byte) (sz int, err error) { - funcref := get_FlistxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___FLISTXATTR_A<<4, "") == 0 { - *funcref = impl_Flistxattr - } else { - *funcref = error_Flistxattr - } - return (*funcref)(fd, dest) -} - -func error_Flistxattr(fd int, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FremovexattrAddr() *(func(fd int, attr string) (err error)) - -var Fremovexattr = enter_Fremovexattr - -func enter_Fremovexattr(fd int, attr string) (err error) { - funcref := get_FremovexattrAddr() - if funcptrtest(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, "") == 0 { - *funcref = impl_Fremovexattr - } else { - *funcref = error_Fremovexattr - } - return (*funcref)(fd, attr) -} - -func error_Fremovexattr(fd int, attr string) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_READ<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FGETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FgetxattrAddr() *(func(fd int, attr string, dest []byte) (sz int, err error)) - -var Fgetxattr = enter_Fgetxattr - -func enter_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - funcref := get_FgetxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___FGETXATTR_A<<4, "") == 0 { - *funcref = impl_Fgetxattr - } else { - *funcref = error_Fgetxattr - } - return (*funcref)(fd, attr, dest) -} - -func error_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(data) > 0 { - _p1 = unsafe.Pointer(&data[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(data)), uintptr(flag)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FsetxattrAddr() *(func(fd int, attr string, data []byte, flag int) (err error)) - -var Fsetxattr = enter_Fsetxattr - -func enter_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { - funcref := get_FsetxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___FSETXATTR_A<<4, "") == 0 { - *funcref = impl_Fsetxattr - } else { - *funcref = error_Fsetxattr - } - return (*funcref)(fd, attr, data, flag) -} - -func error_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { - err = ENOSYS - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT4_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_accept4Addr() *(func(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)) - -var accept4 = enter_accept4 - -func enter_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - funcref := get_accept4Addr() - if funcptrtest(GetZosLibVec()+SYS___ACCEPT4_A<<4, "") == 0 { - *funcref = impl_accept4 - } else { - *funcref = error_accept4 - } - return (*funcref)(s, rsa, addrlen, flags) -} - -func error_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - fd = -1 - err = ENOSYS - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___BIND_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONNECT_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) - nn = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKET<<4, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKETPAIR<<4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETPEERNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETSOCKNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_RemovexattrAddr() *(func(path string, attr string) (err error)) - -var Removexattr = enter_Removexattr - -func enter_Removexattr(path string, attr string) (err error) { - funcref := get_RemovexattrAddr() - if funcptrtest(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, "") == 0 { - *funcref = impl_Removexattr - } else { - *funcref = error_Removexattr - } - return (*funcref)(path, attr) -} - -func error_Removexattr(path string, attr string) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVFROM_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDTO_A<<4, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MMAP<<4, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - runtime.ExitSyscall() - ret = uintptr(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MUNMAP<<4, uintptr(addr), uintptr(length)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req int, arg uintptr) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMAT<<4, uintptr(id), uintptr(addr), uintptr(flag)) - runtime.ExitSyscall() - ret = uintptr(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMCTL64<<4, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - runtime.ExitSyscall() - result = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMDT<<4, uintptr(addr)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMGET<<4, uintptr(key), uintptr(size), uintptr(flag)) - runtime.ExitSyscall() - id = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCESS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHDIR_A<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHMOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Creat(path string, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CREAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP<<4, uintptr(oldfd)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP2<<4, uintptr(oldfd), uintptr(newfd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Dup3(oldfd int, newfd int, flags int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP3<<4, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_Dup3Addr() *(func(oldfd int, newfd int, flags int) (err error)) - -var Dup3 = enter_Dup3 - -func enter_Dup3(oldfd int, newfd int, flags int) (err error) { - funcref := get_Dup3Addr() - if funcptrtest(GetZosLibVec()+SYS_DUP3<<4, "") == 0 { - *funcref = impl_Dup3 - } else { - *funcref = error_Dup3 - } - return (*funcref)(oldfd, newfd, flags) -} - -func error_Dup3(oldfd int, newfd int, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Dirfd(dirp uintptr) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DIRFD<<4, uintptr(dirp)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_DirfdAddr() *(func(dirp uintptr) (fd int, err error)) - -var Dirfd = enter_Dirfd - -func enter_Dirfd(dirp uintptr) (fd int, err error) { - funcref := get_DirfdAddr() - if funcptrtest(GetZosLibVec()+SYS_DIRFD<<4, "") == 0 { - *funcref = impl_Dirfd - } else { - *funcref = error_Dirfd - } - return (*funcref)(dirp) -} - -func error_Dirfd(dirp uintptr) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollCreate(size int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE<<4, uintptr(size)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollCreateAddr() *(func(size int) (fd int, err error)) - -var EpollCreate = enter_EpollCreate - -func enter_EpollCreate(size int) (fd int, err error) { - funcref := get_EpollCreateAddr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE<<4, "") == 0 { - *funcref = impl_EpollCreate - } else { - *funcref = error_EpollCreate - } - return (*funcref)(size) -} - -func error_EpollCreate(size int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollCreate1(flags int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, uintptr(flags)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollCreate1Addr() *(func(flags int) (fd int, err error)) - -var EpollCreate1 = enter_EpollCreate1 - -func enter_EpollCreate1(flags int) (fd int, err error) { - funcref := get_EpollCreate1Addr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, "") == 0 { - *funcref = impl_EpollCreate1 - } else { - *funcref = error_EpollCreate1 - } - return (*funcref)(flags) -} - -func error_EpollCreate1(flags int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CTL<<4, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollCtlAddr() *(func(epfd int, op int, fd int, event *EpollEvent) (err error)) - -var EpollCtl = enter_EpollCtl - -func enter_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - funcref := get_EpollCtlAddr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_CTL<<4, "") == 0 { - *funcref = impl_EpollCtl - } else { - *funcref = error_EpollCtl - } - return (*funcref)(epfd, op, fd, event) -} - -func error_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), uintptr(unsafe.Pointer(sigmask))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollPwaitAddr() *(func(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error)) - -var EpollPwait = enter_EpollPwait - -func enter_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { - funcref := get_EpollPwaitAddr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, "") == 0 { - *funcref = impl_EpollPwait - } else { - *funcref = error_EpollPwait - } - return (*funcref)(epfd, events, msec, sigmask) -} - -func error_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { - n = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_WAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollWaitAddr() *(func(epfd int, events []EpollEvent, msec int) (n int, err error)) - -var EpollWait = enter_EpollWait - -func enter_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - funcref := get_EpollWaitAddr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_WAIT<<4, "") == 0 { - *funcref = impl_EpollWait - } else { - *funcref = error_EpollWait - } - return (*funcref)(epfd, events, msec) -} - -func error_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - n = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Errno2() (er2 int) { - runtime.EnterSyscall() - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERRNO2<<4) - runtime.ExitSyscall() - er2 = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Eventfd(initval uint, flags int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EVENTFD<<4, uintptr(initval), uintptr(flags)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EventfdAddr() *(func(initval uint, flags int) (fd int, err error)) - -var Eventfd = enter_Eventfd - -func enter_Eventfd(initval uint, flags int) (fd int, err error) { - funcref := get_EventfdAddr() - if funcptrtest(GetZosLibVec()+SYS_EVENTFD<<4, "") == 0 { - *funcref = impl_Eventfd - } else { - *funcref = error_Eventfd - } - return (*funcref)(initval, flags) -} - -func error_Eventfd(initval uint, flags int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - runtime.EnterSyscall() - CallLeFuncWithErr(GetZosLibVec()+SYS_EXIT<<4, uintptr(code)) - runtime.ExitSyscall() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FACCESSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FaccessatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) - -var Faccessat = enter_Faccessat - -func enter_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - funcref := get_FaccessatAddr() - if funcptrtest(GetZosLibVec()+SYS___FACCESSAT_A<<4, "") == 0 { - *funcref = impl_Faccessat - } else { - *funcref = error_Faccessat - } - return (*funcref)(dirfd, path, mode, flags) -} - -func error_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHDIR<<4, uintptr(fd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHMOD<<4, uintptr(fd), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHMODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FchmodatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) - -var Fchmodat = enter_Fchmodat - -func enter_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - funcref := get_FchmodatAddr() - if funcptrtest(GetZosLibVec()+SYS___FCHMODAT_A<<4, "") == 0 { - *funcref = impl_Fchmodat - } else { - *funcref = error_Fchmodat - } - return (*funcref)(dirfd, path, mode, flags) -} - -func error_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHOWN<<4, uintptr(fd), uintptr(uid), uintptr(gid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHOWNAT_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FchownatAddr() *(func(fd int, path string, uid int, gid int, flags int) (err error)) - -var Fchownat = enter_Fchownat - -func enter_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { - funcref := get_FchownatAddr() - if funcptrtest(GetZosLibVec()+SYS___FCHOWNAT_A<<4, "") == 0 { - *funcref = impl_Fchownat - } else { - *funcref = error_Fchownat - } - return (*funcref)(fd, path, uid, gid, flags) -} - -func error_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) - runtime.ExitSyscall() - retval = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fdatasync(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FDATASYNC<<4, uintptr(fd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FdatasyncAddr() *(func(fd int) (err error)) - -var Fdatasync = enter_Fdatasync - -func enter_Fdatasync(fd int) (err error) { - funcref := get_FdatasyncAddr() - if funcptrtest(GetZosLibVec()+SYS_FDATASYNC<<4, "") == 0 { - *funcref = impl_Fdatasync - } else { - *funcref = error_Fdatasync - } - return (*funcref)(fd) -} - -func error_Fdatasync(fd int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, stat *Stat_LE_t) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTAT<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSTATAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_fstatatAddr() *(func(dirfd int, path string, stat *Stat_LE_t, flags int) (err error)) - -var fstatat = enter_fstatat - -func enter_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { - funcref := get_fstatatAddr() - if funcptrtest(GetZosLibVec()+SYS___FSTATAT_A<<4, "") == 0 { - *funcref = impl_fstatat - } else { - *funcref = error_fstatat - } - return (*funcref)(dirfd, path, stat, flags) -} - -func error_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LGETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LgetxattrAddr() *(func(link string, attr string, dest []byte) (sz int, err error)) - -var Lgetxattr = enter_Lgetxattr - -func enter_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - funcref := get_LgetxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LGETXATTR_A<<4, "") == 0 { - *funcref = impl_Lgetxattr - } else { - *funcref = error_Lgetxattr - } - return (*funcref)(link, attr, dest) -} - -func error_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LsetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) - -var Lsetxattr = enter_Lsetxattr - -func enter_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - funcref := get_LsetxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LSETXATTR_A<<4, "") == 0 { - *funcref = impl_Lsetxattr - } else { - *funcref = error_Lsetxattr - } - return (*funcref)(path, attr, data, flags) -} - -func error_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fstatfs(fd int, buf *Statfs_t) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATFS<<4, uintptr(fd), uintptr(unsafe.Pointer(buf))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FstatfsAddr() *(func(fd int, buf *Statfs_t) (err error)) - -var Fstatfs = enter_Fstatfs - -func enter_Fstatfs(fd int, buf *Statfs_t) (err error) { - funcref := get_FstatfsAddr() - if funcptrtest(GetZosLibVec()+SYS_FSTATFS<<4, "") == 0 { - *funcref = impl_Fstatfs - } else { - *funcref = error_Fstatfs - } - return (*funcref)(fd, buf) -} - -func error_Fstatfs(fd int, buf *Statfs_t) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatvfs(fd int, stat *Statvfs_t) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATVFS<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSYNC<<4, uintptr(fd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Futimes(fd int, tv []Timeval) (err error) { - var _p0 unsafe.Pointer - if len(tv) > 0 { - _p0 = unsafe.Pointer(&tv[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FUTIMES<<4, uintptr(fd), uintptr(_p0), uintptr(len(tv))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FutimesAddr() *(func(fd int, tv []Timeval) (err error)) - -var Futimes = enter_Futimes - -func enter_Futimes(fd int, tv []Timeval) (err error) { - funcref := get_FutimesAddr() - if funcptrtest(GetZosLibVec()+SYS_FUTIMES<<4, "") == 0 { - *funcref = impl_Futimes - } else { - *funcref = error_Futimes - } - return (*funcref)(fd, tv) -} - -func error_Futimes(fd int, tv []Timeval) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Futimesat(dirfd int, path string, tv []Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(tv) > 0 { - _p1 = unsafe.Pointer(&tv[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FUTIMESAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FutimesatAddr() *(func(dirfd int, path string, tv []Timeval) (err error)) - -var Futimesat = enter_Futimesat - -func enter_Futimesat(dirfd int, path string, tv []Timeval) (err error) { - funcref := get_FutimesatAddr() - if funcptrtest(GetZosLibVec()+SYS___FUTIMESAT_A<<4, "") == 0 { - *funcref = impl_Futimesat - } else { - *funcref = error_Futimesat - } - return (*funcref)(dirfd, path, tv) -} - -func error_Futimesat(dirfd int, path string, tv []Timeval) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FTRUNCATE<<4, uintptr(fd), uintptr(length)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRANDOM<<4, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_GetrandomAddr() *(func(buf []byte, flags int) (n int, err error)) - -var Getrandom = enter_Getrandom - -func enter_Getrandom(buf []byte, flags int) (n int, err error) { - funcref := get_GetrandomAddr() - if funcptrtest(GetZosLibVec()+SYS_GETRANDOM<<4, "") == 0 { - *funcref = impl_Getrandom - } else { - *funcref = error_Getrandom - } - return (*funcref)(buf, flags) -} - -func error_Getrandom(buf []byte, flags int) (n int, err error) { - n = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_InotifyInit() (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_INOTIFY_INIT<<4) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_InotifyInitAddr() *(func() (fd int, err error)) - -var InotifyInit = enter_InotifyInit - -func enter_InotifyInit() (fd int, err error) { - funcref := get_InotifyInitAddr() - if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT<<4, "") == 0 { - *funcref = impl_InotifyInit - } else { - *funcref = error_InotifyInit - } - return (*funcref)() -} - -func error_InotifyInit() (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_InotifyInit1(flags int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, uintptr(flags)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_InotifyInit1Addr() *(func(flags int) (fd int, err error)) - -var InotifyInit1 = enter_InotifyInit1 - -func enter_InotifyInit1(flags int) (fd int, err error) { - funcref := get_InotifyInit1Addr() - if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, "") == 0 { - *funcref = impl_InotifyInit1 - } else { - *funcref = error_InotifyInit1 - } - return (*funcref)(flags) -} - -func error_InotifyInit1(flags int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - runtime.ExitSyscall() - watchdesc = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_InotifyAddWatchAddr() *(func(fd int, pathname string, mask uint32) (watchdesc int, err error)) - -var InotifyAddWatch = enter_InotifyAddWatch - -func enter_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - funcref := get_InotifyAddWatchAddr() - if funcptrtest(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, "") == 0 { - *funcref = impl_InotifyAddWatch - } else { - *funcref = error_InotifyAddWatch - } - return (*funcref)(fd, pathname, mask) -} - -func error_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - watchdesc = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, uintptr(fd), uintptr(watchdesc)) - runtime.ExitSyscall() - success = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_InotifyRmWatchAddr() *(func(fd int, watchdesc uint32) (success int, err error)) - -var InotifyRmWatch = enter_InotifyRmWatch - -func enter_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - funcref := get_InotifyRmWatchAddr() - if funcptrtest(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, "") == 0 { - *funcref = impl_InotifyRmWatch - } else { - *funcref = error_InotifyRmWatch - } - return (*funcref)(fd, watchdesc) -} - -func error_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - success = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_ListxattrAddr() *(func(path string, dest []byte) (sz int, err error)) - -var Listxattr = enter_Listxattr - -func enter_Listxattr(path string, dest []byte) (sz int, err error) { - funcref := get_ListxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LISTXATTR_A<<4, "") == 0 { - *funcref = impl_Listxattr - } else { - *funcref = error_Listxattr - } - return (*funcref)(path, dest) -} - -func error_Listxattr(path string, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LLISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LlistxattrAddr() *(func(path string, dest []byte) (sz int, err error)) - -var Llistxattr = enter_Llistxattr - -func enter_Llistxattr(path string, dest []byte) (sz int, err error) { - funcref := get_LlistxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LLISTXATTR_A<<4, "") == 0 { - *funcref = impl_Llistxattr - } else { - *funcref = error_Llistxattr - } - return (*funcref)(path, dest) -} - -func error_Llistxattr(path string, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LremovexattrAddr() *(func(path string, attr string) (err error)) - -var Lremovexattr = enter_Lremovexattr - -func enter_Lremovexattr(path string, attr string) (err error) { - funcref := get_LremovexattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, "") == 0 { - *funcref = impl_Lremovexattr - } else { - *funcref = error_Lremovexattr - } - return (*funcref)(path, attr) -} - -func error_Lremovexattr(path string, attr string) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Lutimes(path string, tv []Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(tv) > 0 { - _p1 = unsafe.Pointer(&tv[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LUTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LutimesAddr() *(func(path string, tv []Timeval) (err error)) - -var Lutimes = enter_Lutimes - -func enter_Lutimes(path string, tv []Timeval) (err error) { - funcref := get_LutimesAddr() - if funcptrtest(GetZosLibVec()+SYS___LUTIMES_A<<4, "") == 0 { - *funcref = impl_Lutimes - } else { - *funcref = error_Lutimes - } - return (*funcref)(path, tv) -} - -func error_Lutimes(path string, tv []Timeval) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MPROTECT<<4, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MSYNC<<4, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONSOLE2<<4, uintptr(unsafe.Pointer(cmsg)), uintptr(unsafe.Pointer(modstr)), uintptr(unsafe.Pointer(concmd))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Poll(fds []PollFd, timeout int) (n int, err error) { - var _p0 unsafe.Pointer - if len(fds) > 0 { - _p0 = unsafe.Pointer(&fds[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POLL<<4, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_R_A<<4, uintptr(dirp), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STATFS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_StatfsAddr() *(func(path string, buf *Statfs_t) (err error)) - -var Statfs = enter_Statfs - -func enter_Statfs(path string, buf *Statfs_t) (err error) { - funcref := get_StatfsAddr() - if funcptrtest(GetZosLibVec()+SYS___STATFS_A<<4, "") == 0 { - *funcref = impl_Statfs - } else { - *funcref = error_Statfs - } - return (*funcref)(path, buf) -} - -func error_Statfs(path string, buf *Statfs_t) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Syncfs(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SYNCFS<<4, uintptr(fd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SyncfsAddr() *(func(fd int) (err error)) - -var Syncfs = enter_Syncfs - -func enter_Syncfs(fd int) (err error) { - funcref := get_SyncfsAddr() - if funcptrtest(GetZosLibVec()+SYS_SYNCFS<<4, "") == 0 { - *funcref = impl_Syncfs - } else { - *funcref = error_Syncfs - } - return (*funcref)(fd) -} - -func error_Syncfs(fd int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TIMES<<4, uintptr(unsafe.Pointer(tms))) - runtime.ExitSyscall() - ticks = uintptr(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func W_Getmntent(buff *byte, size int) (lastsys int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_GETMNTENT<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) - runtime.ExitSyscall() - lastsys = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___W_GETMNTENT_A<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) - runtime.ExitSyscall() - lastsys = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(filesystem) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - var _p3 *byte - _p3, err = BytePtrFromString(parm) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unmount_LE(filesystem string, mtm int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(filesystem) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mtm)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHROOT_A<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SELECT<<4, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) - runtime.ExitSyscall() - ret = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____OSNAME_A<<4, uintptr(unsafe.Pointer(buf))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Unshare(flags int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNSHARE<<4, uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_UnshareAddr() *(func(flags int) (err error)) - -var Unshare = enter_Unshare - -func enter_Unshare(flags int) (err error) { - funcref := get_UnshareAddr() - if funcptrtest(GetZosLibVec()+SYS_UNSHARE<<4, "") == 0 { - *funcref = impl_Unshare - } else { - *funcref = error_Unshare - } - return (*funcref)(flags) -} - -func error_Unshare(flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gethostname(buf []byte) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(buf))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETGID<<4) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPID<<4) - pid = 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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPGID<<4, uintptr(pid)) - pgid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (pid int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPPID<<4) - pid = 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPRIORITY<<4, uintptr(which), uintptr(who)) - runtime.ExitSyscall() - prio = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(rlim))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrusage(who int, rusage *rusage_zos) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRUSAGE<<4, uintptr(who), uintptr(unsafe.Pointer(rusage))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - runtime.EnterSyscall() - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEGID<<4) - runtime.ExitSyscall() - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - runtime.EnterSyscall() - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEUID<<4) - runtime.ExitSyscall() - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSID<<4, uintptr(pid)) - sid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETUID<<4) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig Signal) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_KILL<<4, uintptr(pid), uintptr(sig)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LCHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldPath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newPath) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINKAT_A<<4, uintptr(oldDirFd), uintptr(unsafe.Pointer(_p0)), uintptr(newDirFd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LinkatAddr() *(func(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error)) - -var Linkat = enter_Linkat - -func enter_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { - funcref := get_LinkatAddr() - if funcptrtest(GetZosLibVec()+SYS___LINKAT_A<<4, "") == 0 { - *funcref = impl_Linkat - } else { - *funcref = error_Linkat - } - return (*funcref)(oldDirFd, oldPath, newDirFd, newPath, flags) -} - -func error_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LISTEN<<4, uintptr(s), uintptr(n)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func lstat(path string, stat *Stat_LE_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSTAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIRAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_MkdiratAddr() *(func(dirfd int, path string, mode uint32) (err error)) - -var Mkdirat = enter_Mkdirat - -func enter_Mkdirat(dirfd int, path string, mode uint32) (err error) { - funcref := get_MkdiratAddr() - if funcptrtest(GetZosLibVec()+SYS___MKDIRAT_A<<4, "") == 0 { - *funcref = impl_Mkdirat - } else { - *funcref = error_Mkdirat - } - return (*funcref)(dirfd, path, mode) -} - -func error_Mkdirat(dirfd int, path string, mode uint32) (err error) { - err = ENOSYS - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFO_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_MknodatAddr() *(func(dirfd int, path string, mode uint32, dev int) (err error)) - -var Mknodat = enter_Mknodat - -func enter_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - funcref := get_MknodatAddr() - if funcptrtest(GetZosLibVec()+SYS___MKNODAT_A<<4, "") == 0 { - *funcref = impl_Mknodat - } else { - *funcref = error_Mknodat - } - return (*funcref)(dirfd, path, mode, dev) -} - -func error_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_PivotRoot(newroot string, oldroot string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(oldroot) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_PivotRootAddr() *(func(newroot string, oldroot string) (err error)) - -var PivotRoot = enter_PivotRoot - -func enter_PivotRoot(newroot string, oldroot string) (err error) { - funcref := get_PivotRootAddr() - if funcptrtest(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, "") == 0 { - *funcref = impl_PivotRoot - } else { - *funcref = error_PivotRoot - } - return (*funcref)(newroot, oldroot) -} - -func error_PivotRoot(newroot string, oldroot string) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PREAD<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PWRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PRCTL_A<<4, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_PrctlAddr() *(func(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)) - -var Prctl = enter_Prctl - -func enter_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - funcref := get_PrctlAddr() - if funcptrtest(GetZosLibVec()+SYS___PRCTL_A<<4, "") == 0 { - *funcref = impl_Prctl - } else { - *funcref = error_Prctl - } - return (*funcref)(option, arg2, arg3, arg4, arg5) -} - -func error_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PRLIMIT<<4, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_PrlimitAddr() *(func(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error)) - -var Prlimit = enter_Prlimit - -func enter_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - funcref := get_PrlimitAddr() - if funcptrtest(GetZosLibVec()+SYS_PRLIMIT<<4, "") == 0 { - *funcref = impl_Prlimit - } else { - *funcref = error_Prlimit - } - return (*funcref)(pid, resource, newlimit, old) -} - -func error_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - err = ENOSYS - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Renameat(olddirfd int, 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_RenameatAddr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)) - -var Renameat = enter_Renameat - -func enter_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - funcref := get_RenameatAddr() - if funcptrtest(GetZosLibVec()+SYS___RENAMEAT_A<<4, "") == 0 { - *funcref = impl_Renameat - } else { - *funcref = error_Renameat - } - return (*funcref)(olddirfd, oldpath, newdirfd, newpath) -} - -func error_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT2_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_Renameat2Addr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)) - -var Renameat2 = enter_Renameat2 - -func enter_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - funcref := get_Renameat2Addr() - if funcptrtest(GetZosLibVec()+SYS___RENAMEAT2_A<<4, "") == 0 { - *funcref = impl_Renameat2 - } else { - *funcref = error_Renameat2 - } - return (*funcref)(olddirfd, oldpath, newdirfd, newpath, flags) -} - -func error_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - err = ENOSYS - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RMDIR_A<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LSEEK<<4, uintptr(fd), uintptr(offset), uintptr(whence)) - runtime.ExitSyscall() - off = int64(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEGID<<4, uintptr(egid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEUID<<4, uintptr(euid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(p))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SethostnameAddr() *(func(p []byte) (err error)) - -var Sethostname = enter_Sethostname - -func enter_Sethostname(p []byte) (err error) { - funcref := get_SethostnameAddr() - if funcptrtest(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, "") == 0 { - *funcref = impl_Sethostname - } else { - *funcref = error_Sethostname - } - return (*funcref)(p) -} - -func error_Sethostname(p []byte) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Setns(fd int, nstype int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETNS<<4, uintptr(fd), uintptr(nstype)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SetnsAddr() *(func(fd int, nstype int) (err error)) - -var Setns = enter_Setns - -func enter_Setns(fd int, nstype int) (err error) { - funcref := get_SetnsAddr() - if funcptrtest(GetZosLibVec()+SYS_SETNS<<4, "") == 0 { - *funcref = impl_Setns - } else { - *funcref = error_Setns - } - return (*funcref)(fd, nstype) -} - -func error_Setns(fd int, nstype int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPRIORITY<<4, uintptr(which), uintptr(who), uintptr(prio)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPGID<<4, uintptr(pid), uintptr(pgid)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, lim *Rlimit) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(lim))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREGID<<4, uintptr(rgid), uintptr(egid)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREUID<<4, uintptr(ruid), uintptr(euid)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_SETSID<<4) - pid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETUID<<4, uintptr(uid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(uid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGID<<4, uintptr(uid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHUTDOWN<<4, uintptr(fd), uintptr(how)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, statLE *Stat_LE_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Symlinkat(oldPath string, dirfd 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINKAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(dirfd), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SymlinkatAddr() *(func(oldPath string, dirfd int, newPath string) (err error)) - -var Symlinkat = enter_Symlinkat - -func enter_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { - funcref := get_SymlinkatAddr() - if funcptrtest(GetZosLibVec()+SYS___SYMLINKAT_A<<4, "") == 0 { - *funcref = impl_Symlinkat - } else { - *funcref = error_Symlinkat - } - return (*funcref)(oldPath, dirfd, newPath) -} - -func error_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - runtime.EnterSyscall() - CallLeFuncWithErr(GetZosLibVec() + SYS_SYNC<<4) - runtime.ExitSyscall() - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___TRUNCATE_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(length)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tcgetattr(fildes int, termptr *Termios) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCGETATTR<<4, uintptr(fildes), uintptr(unsafe.Pointer(termptr))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCSETATTR<<4, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - runtime.EnterSyscall() - r0, _, _ := CallLeFuncWithErr(GetZosLibVec()+SYS_UMASK<<4, uintptr(mask)) - runtime.ExitSyscall() - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINK_A<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_UnlinkatAddr() *(func(dirfd int, path string, flags int) (err error)) - -var Unlinkat = enter_Unlinkat - -func enter_Unlinkat(dirfd int, path string, flags int) (err error) { - funcref := get_UnlinkatAddr() - if funcptrtest(GetZosLibVec()+SYS___UNLINKAT_A<<4, "") == 0 { - *funcref = impl_Unlinkat - } else { - *funcref = error_Unlinkat - } - return (*funcref)(dirfd, path, flags) -} - -func error_Unlinkat(dirfd int, path string, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, utim *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPEN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_openatAddr() *(func(dirfd int, path string, flags int, mode uint32) (fd int, err error)) - -var openat = enter_openat - -func enter_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - funcref := get_openatAddr() - if funcptrtest(GetZosLibVec()+SYS___OPENAT_A<<4, "") == 0 { - *funcref = impl_openat - } else { - *funcref = error_openat - } - return (*funcref)(dirfd, path, flags, mode) -} - -func error_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT2_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_openat2Addr() *(func(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)) - -var openat2 = enter_openat2 - -func enter_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { - funcref := get_openat2Addr() - if funcptrtest(GetZosLibVec()+SYS___OPENAT2_A<<4, "") == 0 { - *funcref = impl_openat2 - } else { - *funcref = error_openat2 - } - return (*funcref)(dirfd, path, open_how, size) -} - -func error_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func remove(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_REMOVE<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func waitid(idType int, id int, info *Siginfo, options int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITID<<4, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITPID<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) - runtime.ExitSyscall() - wpid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tv *timeval_zos) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETTIMEOFDAY<<4, uintptr(unsafe.Pointer(tv))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE<<4, uintptr(unsafe.Pointer(p))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMENSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(ts)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_utimensatAddr() *(func(dirfd int, path string, ts *[2]Timespec, flags int) (err error)) - -var utimensat = enter_utimensat - -func enter_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { - funcref := get_utimensatAddr() - if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { - *funcref = impl_utimensat - } else { - *funcref = error_utimensat - } - return (*funcref)(dirfd, path, ts, flags) -} - -func error_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Posix_openpt(oflag int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POSIX_OPENPT<<4, uintptr(oflag)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Grantpt(fildes int) (rc int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GRANTPT<<4, uintptr(fildes)) - runtime.ExitSyscall() - rc = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlockpt(fildes int) (rc int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNLOCKPT<<4, uintptr(fildes)) - runtime.ExitSyscall() - rc = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 deleted file mode 100644 index 3a58ae8..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build 386 && 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.power", []_C_int{6, 26}}, - {"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.allowdt", []_C_int{1, 65}}, - {"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.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"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.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.pfstatus", []_C_int{1, 86}}, - {"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.timeout_stats", []_C_int{1, 87}}, - {"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.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"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.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.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/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go deleted file mode 100644 index dcb7a0e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build amd64 && 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.power", []_C_int{6, 26}}, - {"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.allowdt", []_C_int{1, 65}}, - {"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.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"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.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.pfstatus", []_C_int{1, 86}}, - {"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.timeout_stats", []_C_int{1, 87}}, - {"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.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"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.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.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/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go deleted file mode 100644 index db5a7bf..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build arm && 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.power", []_C_int{6, 26}}, - {"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.allowdt", []_C_int{1, 65}}, - {"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.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"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.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.pfstatus", []_C_int{1, 86}}, - {"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.timeout_stats", []_C_int{1, 87}}, - {"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.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"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.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.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/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go deleted file mode 100644 index 7be575a..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go: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.power", []_C_int{6, 26}}, - {"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.allowdt", []_C_int{1, 65}}, - {"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.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"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.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.pfstatus", []_C_int{1, 86}}, - {"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.timeout_stats", []_C_int{1, 87}}, - {"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.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"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.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.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/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go deleted file mode 100644 index d6e3174..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build mips64 && 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.power", []_C_int{6, 26}}, - {"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.allowdt", []_C_int{1, 65}}, - {"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.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"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.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.pfstatus", []_C_int{1, 86}}, - {"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.timeout_stats", []_C_int{1, 87}}, - {"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.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"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.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.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/zsysctl_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go deleted file mode 100644 index ee97157..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build ppc64 && 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.power", []_C_int{6, 26}}, - {"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.allowdt", []_C_int{1, 65}}, - {"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.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"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.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.pfstatus", []_C_int{1, 86}}, - {"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.timeout_stats", []_C_int{1, 87}}, - {"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.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"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.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.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/zsysctl_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go deleted file mode 100644 index 35c3b91..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +++ /dev/null @@ -1,281 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build riscv64 && 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.power", []_C_int{6, 26}}, - {"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.allowdt", []_C_int{1, 65}}, - {"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.consbuf", []_C_int{1, 83}}, - {"kern.consbufsize", []_C_int{1, 82}}, - {"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.pfstatus", []_C_int{1, 86}}, - {"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.timeout_stats", []_C_int{1, 87}}, - {"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.utc_offset", []_C_int{1, 88}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.video", []_C_int{1, 89}}, - {"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.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.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_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go deleted file mode 100644 index 5edda76..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +++ /dev/null @@ -1,439 +0,0 @@ -// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && darwin - -package unix - -// Deprecated: Use libSystem wrappers instead of direct syscalls. -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_THREAD_SELFCOUNTS = 186 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS_KEVENT_ID = 375 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_NECP_SESSION_OPEN = 522 - SYS_NECP_SESSION_ACTION = 523 - SYS_SETATTRLISTAT = 524 - SYS_NET_QOS_GUIDELINE = 525 - SYS_FMOUNT = 526 - SYS_NTP_ADJTIME = 527 - SYS_NTP_GETTIME = 528 - SYS_OS_FAULT_WITH_PAYLOAD = 529 - SYS_KQUEUE_WORKLOOP_CTL = 530 - SYS___MACH_BRIDGE_REMOTE_TIME = 531 - SYS_MAXSYSCALL = 532 - SYS_INVALID = 63 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go deleted file mode 100644 index 0dc9e8b..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +++ /dev/null @@ -1,437 +0,0 @@ -// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && darwin - -package unix - -// Deprecated: Use libSystem wrappers instead of direct syscalls. -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_THREAD_SELFCOUNTS = 186 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS_KEVENT_ID = 375 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_NECP_SESSION_OPEN = 522 - SYS_NECP_SESSION_ACTION = 523 - SYS_SETATTRLISTAT = 524 - SYS_NET_QOS_GUIDELINE = 525 - SYS_FMOUNT = 526 - SYS_NTP_ADJTIME = 527 - SYS_NTP_GETTIME = 528 - SYS_OS_FAULT_WITH_PAYLOAD = 529 - SYS_MAXSYSCALL = 530 - SYS_INVALID = 63 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go deleted file mode 100644 index 308ddf3..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +++ /dev/null @@ -1,316 +0,0 @@ -// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && dragonfly - -package unix - -const ( - SYS_EXIT = 1 // { void exit(int rval); } - 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_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); } wait4 wait_args int - // SYS_NOSYS = 8; // { int nosys(void); } __nosys nosys_args int - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - 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_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - 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, caddr_t msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } - SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } - SYS_ACCESS = 33 // { int access(char *path, int flags); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(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, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, size_t namelen); } - 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_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 // { int readlink(char *path, char *buf, int count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { pid_t vfork(void); } - SYS_SBRK = 69 // { caddr_t sbrk(size_t incr); } - SYS_SSTK = 70 // { int sstk(size_t incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(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_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_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(int from, 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_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_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_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_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); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - 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_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - 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_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } - SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } - SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - 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_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int 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); } - 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___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); } - SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - 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 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } - 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_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } - SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } - SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - 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_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_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_AIO_READ = 318 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 319 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(u_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_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_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } - 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 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { int 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 // { 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); } - SYS_KEVENT = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - 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_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } - SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } - SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } - SYS_EXEC_SYS_REGISTER = 465 // { int exec_sys_register(void *entry); } - SYS_EXEC_SYS_UNREGISTER = 466 // { int exec_sys_unregister(int id); } - SYS_SYS_CHECKPOINT = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); } - SYS_MOUNTCTL = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); } - SYS_UMTX_SLEEP = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); } - SYS_UMTX_WAKEUP = 470 // { int umtx_wakeup(volatile const int *ptr, int count); } - SYS_JAIL_ATTACH = 471 // { int jail_attach(int jid); } - SYS_SET_TLS_AREA = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); } - SYS_GET_TLS_AREA = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); } - SYS_CLOSEFROM = 474 // { int closefrom(int fd); } - SYS_STAT = 475 // { int stat(const char *path, struct stat *ub); } - SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } - SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } - SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); } - SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } - SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } - SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } - SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } - SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } - SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, struct trapframe *tframe, struct vextframe *vframe); } - SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); } - SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, size_t len); } - SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, size_t len, int behav, off_t value); } - SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); } - SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); } - SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } - SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } - SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } - SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } - SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } - SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sigmask); } - SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } - SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } - SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } - SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags); } - SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } - SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, struct stat *sb, int flags); } - SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, int flags); } - SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); } - SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } - SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, int flags); } - SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); } - SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } - SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } - SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); } - SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); } - SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); } - SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); } - SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); } - SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } - SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } - SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } - SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } - SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_SWAPOFF = 529 // { int swapoff(char *name); } - SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, struct plistref *pref); } - SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); } - SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } - SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } - SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } - SYS_VMM_GUEST_SYNC_ADDR = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); } - SYS_PROCCTL = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); } - SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);} - SYS_PIPE2 = 538 // { int pipe2(int *fildes, int flags); } - SYS_UTIMENSAT = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); } - SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); } - SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); } - SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); } - SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); } - SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); } - SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); } - SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); } - SYS_GETCPUCLOCKID = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); } - SYS_WAIT6 = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } - SYS_LWP_GETNAME = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); } - SYS_GETRANDOM = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); } - SYS___REALPATH = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go deleted file mode 100644 index 418664e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && freebsd - -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_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_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_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - 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_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); } - SYS_SYNC = 36 // { int sync(void); } - 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_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_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - 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_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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(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_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_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - 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_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_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_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_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); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - 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_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - 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_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - 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_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_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - 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___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); } - 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_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 // { ssize_t 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_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_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_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - 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_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_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_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, size_t 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_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_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - 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_KQUEUE = 362 // { int kqueue(void); } - 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___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___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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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_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_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_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_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_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_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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go deleted file mode 100644 index 34d0b86..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && freebsd - -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_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_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_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - 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_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); } - SYS_SYNC = 36 // { int sync(void); } - 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_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_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - 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_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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(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_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_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - 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_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_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_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_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); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - 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_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - 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_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - 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_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_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - 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___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); } - 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_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 // { ssize_t 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_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_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_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - 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_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_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_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, size_t 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_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_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - 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_KQUEUE = 362 // { int kqueue(void); } - 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___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___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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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_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_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_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_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_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_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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go deleted file mode 100644 index b71cf45..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && freebsd - -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_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_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_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - 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_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); } - SYS_SYNC = 36 // { int sync(void); } - 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_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_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - 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_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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(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_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_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - 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_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_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_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_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); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - 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_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - 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_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - 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_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_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - 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___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); } - 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_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 // { ssize_t 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_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_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_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - 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_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_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_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, size_t 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_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_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - 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_KQUEUE = 362 // { int kqueue(void); } - 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___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___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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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_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_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_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_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_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_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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go deleted file mode 100644 index e32df1c..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && freebsd - -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_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_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_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - 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_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); } - SYS_SYNC = 36 // { int sync(void); } - 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_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_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - 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_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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(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_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_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - 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_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_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_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_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); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - 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_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - 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_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - 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_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_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - 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___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); } - 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_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 // { ssize_t 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_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_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_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - 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_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_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_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, size_t 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_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_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - 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_KQUEUE = 362 // { int kqueue(void); } - 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___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___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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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_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_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_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_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_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_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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go deleted file mode 100644 index 15ad611..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && freebsd - -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_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_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_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } - 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_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); } - SYS_SYNC = 36 // { int sync(void); } - 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_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_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - 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_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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(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_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_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - 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_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_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_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_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); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - 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_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } - 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_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } - 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_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_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - 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___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); } - 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_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 // { ssize_t 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_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_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_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - 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_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_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_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, size_t 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_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_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } - 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_KQUEUE = 362 // { int kqueue(void); } - 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___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___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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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_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_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_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_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_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_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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go deleted file mode 100644 index aca56ee..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ /dev/null @@ -1,466 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && linux - -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_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go deleted file mode 100644 index 2ea1ef5..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ /dev/null @@ -1,389 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux - -package unix - -const ( - SYS_READ = 0 - SYS_WRITE = 1 - SYS_OPEN = 2 - SYS_CLOSE = 3 - SYS_STAT = 4 - SYS_FSTAT = 5 - SYS_LSTAT = 6 - SYS_POLL = 7 - SYS_LSEEK = 8 - SYS_MMAP = 9 - SYS_MPROTECT = 10 - SYS_MUNMAP = 11 - SYS_BRK = 12 - SYS_RT_SIGACTION = 13 - SYS_RT_SIGPROCMASK = 14 - SYS_RT_SIGRETURN = 15 - SYS_IOCTL = 16 - SYS_PREAD64 = 17 - SYS_PWRITE64 = 18 - SYS_READV = 19 - SYS_WRITEV = 20 - SYS_ACCESS = 21 - SYS_PIPE = 22 - SYS_SELECT = 23 - SYS_SCHED_YIELD = 24 - SYS_MREMAP = 25 - SYS_MSYNC = 26 - SYS_MINCORE = 27 - SYS_MADVISE = 28 - SYS_SHMGET = 29 - SYS_SHMAT = 30 - SYS_SHMCTL = 31 - SYS_DUP = 32 - SYS_DUP2 = 33 - SYS_PAUSE = 34 - SYS_NANOSLEEP = 35 - SYS_GETITIMER = 36 - SYS_ALARM = 37 - SYS_SETITIMER = 38 - SYS_GETPID = 39 - SYS_SENDFILE = 40 - SYS_SOCKET = 41 - SYS_CONNECT = 42 - SYS_ACCEPT = 43 - SYS_SENDTO = 44 - SYS_RECVFROM = 45 - SYS_SENDMSG = 46 - SYS_RECVMSG = 47 - SYS_SHUTDOWN = 48 - SYS_BIND = 49 - SYS_LISTEN = 50 - SYS_GETSOCKNAME = 51 - SYS_GETPEERNAME = 52 - SYS_SOCKETPAIR = 53 - SYS_SETSOCKOPT = 54 - SYS_GETSOCKOPT = 55 - SYS_CLONE = 56 - SYS_FORK = 57 - SYS_VFORK = 58 - SYS_EXECVE = 59 - SYS_EXIT = 60 - SYS_WAIT4 = 61 - SYS_KILL = 62 - SYS_UNAME = 63 - SYS_SEMGET = 64 - SYS_SEMOP = 65 - SYS_SEMCTL = 66 - SYS_SHMDT = 67 - SYS_MSGGET = 68 - SYS_MSGSND = 69 - SYS_MSGRCV = 70 - SYS_MSGCTL = 71 - SYS_FCNTL = 72 - SYS_FLOCK = 73 - SYS_FSYNC = 74 - SYS_FDATASYNC = 75 - SYS_TRUNCATE = 76 - SYS_FTRUNCATE = 77 - SYS_GETDENTS = 78 - SYS_GETCWD = 79 - SYS_CHDIR = 80 - SYS_FCHDIR = 81 - SYS_RENAME = 82 - SYS_MKDIR = 83 - SYS_RMDIR = 84 - SYS_CREAT = 85 - SYS_LINK = 86 - SYS_UNLINK = 87 - SYS_SYMLINK = 88 - SYS_READLINK = 89 - SYS_CHMOD = 90 - SYS_FCHMOD = 91 - SYS_CHOWN = 92 - SYS_FCHOWN = 93 - SYS_LCHOWN = 94 - SYS_UMASK = 95 - SYS_GETTIMEOFDAY = 96 - SYS_GETRLIMIT = 97 - SYS_GETRUSAGE = 98 - SYS_SYSINFO = 99 - SYS_TIMES = 100 - SYS_PTRACE = 101 - SYS_GETUID = 102 - SYS_SYSLOG = 103 - SYS_GETGID = 104 - SYS_SETUID = 105 - SYS_SETGID = 106 - SYS_GETEUID = 107 - SYS_GETEGID = 108 - SYS_SETPGID = 109 - SYS_GETPPID = 110 - SYS_GETPGRP = 111 - SYS_SETSID = 112 - SYS_SETREUID = 113 - SYS_SETREGID = 114 - SYS_GETGROUPS = 115 - SYS_SETGROUPS = 116 - SYS_SETRESUID = 117 - SYS_GETRESUID = 118 - SYS_SETRESGID = 119 - SYS_GETRESGID = 120 - SYS_GETPGID = 121 - SYS_SETFSUID = 122 - SYS_SETFSGID = 123 - SYS_GETSID = 124 - SYS_CAPGET = 125 - SYS_CAPSET = 126 - SYS_RT_SIGPENDING = 127 - SYS_RT_SIGTIMEDWAIT = 128 - SYS_RT_SIGQUEUEINFO = 129 - SYS_RT_SIGSUSPEND = 130 - SYS_SIGALTSTACK = 131 - SYS_UTIME = 132 - SYS_MKNOD = 133 - SYS_USELIB = 134 - SYS_PERSONALITY = 135 - SYS_USTAT = 136 - SYS_STATFS = 137 - SYS_FSTATFS = 138 - SYS_SYSFS = 139 - SYS_GETPRIORITY = 140 - SYS_SETPRIORITY = 141 - SYS_SCHED_SETPARAM = 142 - SYS_SCHED_GETPARAM = 143 - SYS_SCHED_SETSCHEDULER = 144 - SYS_SCHED_GETSCHEDULER = 145 - SYS_SCHED_GET_PRIORITY_MAX = 146 - SYS_SCHED_GET_PRIORITY_MIN = 147 - SYS_SCHED_RR_GET_INTERVAL = 148 - SYS_MLOCK = 149 - SYS_MUNLOCK = 150 - SYS_MLOCKALL = 151 - SYS_MUNLOCKALL = 152 - SYS_VHANGUP = 153 - SYS_MODIFY_LDT = 154 - SYS_PIVOT_ROOT = 155 - SYS__SYSCTL = 156 - SYS_PRCTL = 157 - SYS_ARCH_PRCTL = 158 - SYS_ADJTIMEX = 159 - SYS_SETRLIMIT = 160 - SYS_CHROOT = 161 - SYS_SYNC = 162 - SYS_ACCT = 163 - SYS_SETTIMEOFDAY = 164 - SYS_MOUNT = 165 - SYS_UMOUNT2 = 166 - SYS_SWAPON = 167 - SYS_SWAPOFF = 168 - SYS_REBOOT = 169 - SYS_SETHOSTNAME = 170 - SYS_SETDOMAINNAME = 171 - SYS_IOPL = 172 - SYS_IOPERM = 173 - SYS_CREATE_MODULE = 174 - SYS_INIT_MODULE = 175 - SYS_DELETE_MODULE = 176 - SYS_GET_KERNEL_SYMS = 177 - SYS_QUERY_MODULE = 178 - SYS_QUOTACTL = 179 - SYS_NFSSERVCTL = 180 - SYS_GETPMSG = 181 - SYS_PUTPMSG = 182 - SYS_AFS_SYSCALL = 183 - SYS_TUXCALL = 184 - SYS_SECURITY = 185 - SYS_GETTID = 186 - SYS_READAHEAD = 187 - SYS_SETXATTR = 188 - SYS_LSETXATTR = 189 - SYS_FSETXATTR = 190 - SYS_GETXATTR = 191 - SYS_LGETXATTR = 192 - SYS_FGETXATTR = 193 - SYS_LISTXATTR = 194 - SYS_LLISTXATTR = 195 - SYS_FLISTXATTR = 196 - SYS_REMOVEXATTR = 197 - SYS_LREMOVEXATTR = 198 - SYS_FREMOVEXATTR = 199 - SYS_TKILL = 200 - SYS_TIME = 201 - SYS_FUTEX = 202 - SYS_SCHED_SETAFFINITY = 203 - SYS_SCHED_GETAFFINITY = 204 - SYS_SET_THREAD_AREA = 205 - SYS_IO_SETUP = 206 - SYS_IO_DESTROY = 207 - SYS_IO_GETEVENTS = 208 - SYS_IO_SUBMIT = 209 - SYS_IO_CANCEL = 210 - SYS_GET_THREAD_AREA = 211 - SYS_LOOKUP_DCOOKIE = 212 - SYS_EPOLL_CREATE = 213 - SYS_EPOLL_CTL_OLD = 214 - SYS_EPOLL_WAIT_OLD = 215 - SYS_REMAP_FILE_PAGES = 216 - SYS_GETDENTS64 = 217 - SYS_SET_TID_ADDRESS = 218 - SYS_RESTART_SYSCALL = 219 - SYS_SEMTIMEDOP = 220 - SYS_FADVISE64 = 221 - SYS_TIMER_CREATE = 222 - SYS_TIMER_SETTIME = 223 - SYS_TIMER_GETTIME = 224 - SYS_TIMER_GETOVERRUN = 225 - SYS_TIMER_DELETE = 226 - SYS_CLOCK_SETTIME = 227 - SYS_CLOCK_GETTIME = 228 - SYS_CLOCK_GETRES = 229 - SYS_CLOCK_NANOSLEEP = 230 - SYS_EXIT_GROUP = 231 - SYS_EPOLL_WAIT = 232 - SYS_EPOLL_CTL = 233 - SYS_TGKILL = 234 - SYS_UTIMES = 235 - SYS_VSERVER = 236 - SYS_MBIND = 237 - SYS_SET_MEMPOLICY = 238 - SYS_GET_MEMPOLICY = 239 - SYS_MQ_OPEN = 240 - SYS_MQ_UNLINK = 241 - SYS_MQ_TIMEDSEND = 242 - SYS_MQ_TIMEDRECEIVE = 243 - SYS_MQ_NOTIFY = 244 - SYS_MQ_GETSETATTR = 245 - SYS_KEXEC_LOAD = 246 - SYS_WAITID = 247 - SYS_ADD_KEY = 248 - SYS_REQUEST_KEY = 249 - SYS_KEYCTL = 250 - SYS_IOPRIO_SET = 251 - SYS_IOPRIO_GET = 252 - SYS_INOTIFY_INIT = 253 - SYS_INOTIFY_ADD_WATCH = 254 - SYS_INOTIFY_RM_WATCH = 255 - SYS_MIGRATE_PAGES = 256 - SYS_OPENAT = 257 - SYS_MKDIRAT = 258 - SYS_MKNODAT = 259 - SYS_FCHOWNAT = 260 - SYS_FUTIMESAT = 261 - SYS_NEWFSTATAT = 262 - SYS_UNLINKAT = 263 - SYS_RENAMEAT = 264 - SYS_LINKAT = 265 - SYS_SYMLINKAT = 266 - SYS_READLINKAT = 267 - SYS_FCHMODAT = 268 - SYS_FACCESSAT = 269 - SYS_PSELECT6 = 270 - SYS_PPOLL = 271 - SYS_UNSHARE = 272 - SYS_SET_ROBUST_LIST = 273 - SYS_GET_ROBUST_LIST = 274 - SYS_SPLICE = 275 - SYS_TEE = 276 - SYS_SYNC_FILE_RANGE = 277 - SYS_VMSPLICE = 278 - SYS_MOVE_PAGES = 279 - SYS_UTIMENSAT = 280 - SYS_EPOLL_PWAIT = 281 - SYS_SIGNALFD = 282 - SYS_TIMERFD_CREATE = 283 - SYS_EVENTFD = 284 - SYS_FALLOCATE = 285 - SYS_TIMERFD_SETTIME = 286 - SYS_TIMERFD_GETTIME = 287 - SYS_ACCEPT4 = 288 - SYS_SIGNALFD4 = 289 - SYS_EVENTFD2 = 290 - SYS_EPOLL_CREATE1 = 291 - SYS_DUP3 = 292 - SYS_PIPE2 = 293 - SYS_INOTIFY_INIT1 = 294 - SYS_PREADV = 295 - SYS_PWRITEV = 296 - SYS_RT_TGSIGQUEUEINFO = 297 - SYS_PERF_EVENT_OPEN = 298 - SYS_RECVMMSG = 299 - SYS_FANOTIFY_INIT = 300 - SYS_FANOTIFY_MARK = 301 - SYS_PRLIMIT64 = 302 - SYS_NAME_TO_HANDLE_AT = 303 - SYS_OPEN_BY_HANDLE_AT = 304 - SYS_CLOCK_ADJTIME = 305 - SYS_SYNCFS = 306 - SYS_SENDMMSG = 307 - SYS_SETNS = 308 - SYS_GETCPU = 309 - SYS_PROCESS_VM_READV = 310 - SYS_PROCESS_VM_WRITEV = 311 - SYS_KCMP = 312 - SYS_FINIT_MODULE = 313 - SYS_SCHED_SETATTR = 314 - SYS_SCHED_GETATTR = 315 - SYS_RENAMEAT2 = 316 - SYS_SECCOMP = 317 - SYS_GETRANDOM = 318 - SYS_MEMFD_CREATE = 319 - SYS_KEXEC_FILE_LOAD = 320 - SYS_BPF = 321 - SYS_EXECVEAT = 322 - SYS_USERFAULTFD = 323 - SYS_MEMBARRIER = 324 - SYS_MLOCK2 = 325 - SYS_COPY_FILE_RANGE = 326 - SYS_PREADV2 = 327 - SYS_PWRITEV2 = 328 - SYS_PKEY_MPROTECT = 329 - SYS_PKEY_ALLOC = 330 - SYS_PKEY_FREE = 331 - SYS_STATX = 332 - SYS_IO_PGETEVENTS = 333 - SYS_RSEQ = 334 - SYS_URETPROBE = 335 - SYS_PIDFD_SEND_SIGNAL = 424 - SYS_IO_URING_SETUP = 425 - SYS_IO_URING_ENTER = 426 - SYS_IO_URING_REGISTER = 427 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go deleted file mode 100644 index d22c8af..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ /dev/null @@ -1,430 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux - -package unix - -const ( - SYS_SYSCALL_MASK = 0 - 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_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go deleted file mode 100644 index 5ee264a..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ /dev/null @@ -1,333 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_RENAMEAT = 38 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_NEWFSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRLIMIT = 163 - SYS_SETRLIMIT = 164 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - 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 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go deleted file mode 100644 index f9f03eb..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +++ /dev/null @@ -1,329 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_NEWFSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - 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 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go deleted file mode 100644 index 87c2118..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ /dev/null @@ -1,450 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips && linux - -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_OPEN_TREE = 4428 - SYS_MOVE_MOUNT = 4429 - SYS_FSOPEN = 4430 - SYS_FSCONFIG = 4431 - SYS_FSMOUNT = 4432 - SYS_FSPICK = 4433 - SYS_PIDFD_OPEN = 4434 - SYS_CLONE3 = 4435 - SYS_CLOSE_RANGE = 4436 - SYS_OPENAT2 = 4437 - SYS_PIDFD_GETFD = 4438 - SYS_FACCESSAT2 = 4439 - SYS_PROCESS_MADVISE = 4440 - SYS_EPOLL_PWAIT2 = 4441 - SYS_MOUNT_SETATTR = 4442 - SYS_QUOTACTL_FD = 4443 - SYS_LANDLOCK_CREATE_RULESET = 4444 - SYS_LANDLOCK_ADD_RULE = 4445 - SYS_LANDLOCK_RESTRICT_SELF = 4446 - SYS_PROCESS_MRELEASE = 4448 - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 - SYS_MAP_SHADOW_STACK = 4453 - SYS_FUTEX_WAKE = 4454 - SYS_FUTEX_WAIT = 4455 - SYS_FUTEX_REQUEUE = 4456 - SYS_STATMOUNT = 4457 - SYS_LISTMOUNT = 4458 - SYS_LSM_GET_SELF_ATTR = 4459 - SYS_LSM_SET_SELF_ATTR = 4460 - SYS_LSM_LIST_MODULES = 4461 - SYS_MSEAL = 4462 - SYS_SETXATTRAT = 4463 - SYS_GETXATTRAT = 4464 - SYS_LISTXATTRAT = 4465 - SYS_REMOVEXATTRAT = 4466 - SYS_OPEN_TREE_ATTR = 4467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go deleted file mode 100644 index 391ad10..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ /dev/null @@ -1,380 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux - -package unix - -const ( - SYS_READ = 5000 - SYS_WRITE = 5001 - SYS_OPEN = 5002 - SYS_CLOSE = 5003 - SYS_STAT = 5004 - SYS_FSTAT = 5005 - SYS_LSTAT = 5006 - SYS_POLL = 5007 - SYS_LSEEK = 5008 - SYS_MMAP = 5009 - SYS_MPROTECT = 5010 - SYS_MUNMAP = 5011 - SYS_BRK = 5012 - SYS_RT_SIGACTION = 5013 - SYS_RT_SIGPROCMASK = 5014 - SYS_IOCTL = 5015 - SYS_PREAD64 = 5016 - SYS_PWRITE64 = 5017 - SYS_READV = 5018 - SYS_WRITEV = 5019 - SYS_ACCESS = 5020 - SYS_PIPE = 5021 - SYS__NEWSELECT = 5022 - SYS_SCHED_YIELD = 5023 - SYS_MREMAP = 5024 - SYS_MSYNC = 5025 - SYS_MINCORE = 5026 - SYS_MADVISE = 5027 - SYS_SHMGET = 5028 - SYS_SHMAT = 5029 - SYS_SHMCTL = 5030 - SYS_DUP = 5031 - SYS_DUP2 = 5032 - SYS_PAUSE = 5033 - SYS_NANOSLEEP = 5034 - SYS_GETITIMER = 5035 - SYS_SETITIMER = 5036 - SYS_ALARM = 5037 - SYS_GETPID = 5038 - SYS_SENDFILE = 5039 - SYS_SOCKET = 5040 - SYS_CONNECT = 5041 - SYS_ACCEPT = 5042 - SYS_SENDTO = 5043 - SYS_RECVFROM = 5044 - SYS_SENDMSG = 5045 - SYS_RECVMSG = 5046 - SYS_SHUTDOWN = 5047 - SYS_BIND = 5048 - SYS_LISTEN = 5049 - SYS_GETSOCKNAME = 5050 - SYS_GETPEERNAME = 5051 - SYS_SOCKETPAIR = 5052 - SYS_SETSOCKOPT = 5053 - SYS_GETSOCKOPT = 5054 - SYS_CLONE = 5055 - SYS_FORK = 5056 - SYS_EXECVE = 5057 - SYS_EXIT = 5058 - SYS_WAIT4 = 5059 - SYS_KILL = 5060 - SYS_UNAME = 5061 - SYS_SEMGET = 5062 - SYS_SEMOP = 5063 - SYS_SEMCTL = 5064 - SYS_SHMDT = 5065 - SYS_MSGGET = 5066 - SYS_MSGSND = 5067 - SYS_MSGRCV = 5068 - SYS_MSGCTL = 5069 - SYS_FCNTL = 5070 - SYS_FLOCK = 5071 - SYS_FSYNC = 5072 - SYS_FDATASYNC = 5073 - SYS_TRUNCATE = 5074 - SYS_FTRUNCATE = 5075 - SYS_GETDENTS = 5076 - SYS_GETCWD = 5077 - SYS_CHDIR = 5078 - SYS_FCHDIR = 5079 - SYS_RENAME = 5080 - SYS_MKDIR = 5081 - SYS_RMDIR = 5082 - SYS_CREAT = 5083 - SYS_LINK = 5084 - SYS_UNLINK = 5085 - SYS_SYMLINK = 5086 - SYS_READLINK = 5087 - SYS_CHMOD = 5088 - SYS_FCHMOD = 5089 - SYS_CHOWN = 5090 - SYS_FCHOWN = 5091 - SYS_LCHOWN = 5092 - SYS_UMASK = 5093 - SYS_GETTIMEOFDAY = 5094 - SYS_GETRLIMIT = 5095 - SYS_GETRUSAGE = 5096 - SYS_SYSINFO = 5097 - SYS_TIMES = 5098 - SYS_PTRACE = 5099 - SYS_GETUID = 5100 - SYS_SYSLOG = 5101 - SYS_GETGID = 5102 - SYS_SETUID = 5103 - SYS_SETGID = 5104 - SYS_GETEUID = 5105 - SYS_GETEGID = 5106 - SYS_SETPGID = 5107 - SYS_GETPPID = 5108 - SYS_GETPGRP = 5109 - SYS_SETSID = 5110 - SYS_SETREUID = 5111 - SYS_SETREGID = 5112 - SYS_GETGROUPS = 5113 - SYS_SETGROUPS = 5114 - SYS_SETRESUID = 5115 - SYS_GETRESUID = 5116 - SYS_SETRESGID = 5117 - SYS_GETRESGID = 5118 - SYS_GETPGID = 5119 - SYS_SETFSUID = 5120 - SYS_SETFSGID = 5121 - SYS_GETSID = 5122 - SYS_CAPGET = 5123 - SYS_CAPSET = 5124 - SYS_RT_SIGPENDING = 5125 - SYS_RT_SIGTIMEDWAIT = 5126 - SYS_RT_SIGQUEUEINFO = 5127 - SYS_RT_SIGSUSPEND = 5128 - SYS_SIGALTSTACK = 5129 - SYS_UTIME = 5130 - SYS_MKNOD = 5131 - SYS_PERSONALITY = 5132 - SYS_USTAT = 5133 - SYS_STATFS = 5134 - SYS_FSTATFS = 5135 - SYS_SYSFS = 5136 - SYS_GETPRIORITY = 5137 - SYS_SETPRIORITY = 5138 - SYS_SCHED_SETPARAM = 5139 - SYS_SCHED_GETPARAM = 5140 - SYS_SCHED_SETSCHEDULER = 5141 - SYS_SCHED_GETSCHEDULER = 5142 - SYS_SCHED_GET_PRIORITY_MAX = 5143 - SYS_SCHED_GET_PRIORITY_MIN = 5144 - SYS_SCHED_RR_GET_INTERVAL = 5145 - SYS_MLOCK = 5146 - SYS_MUNLOCK = 5147 - SYS_MLOCKALL = 5148 - SYS_MUNLOCKALL = 5149 - SYS_VHANGUP = 5150 - SYS_PIVOT_ROOT = 5151 - SYS__SYSCTL = 5152 - SYS_PRCTL = 5153 - SYS_ADJTIMEX = 5154 - SYS_SETRLIMIT = 5155 - SYS_CHROOT = 5156 - SYS_SYNC = 5157 - SYS_ACCT = 5158 - SYS_SETTIMEOFDAY = 5159 - SYS_MOUNT = 5160 - SYS_UMOUNT2 = 5161 - SYS_SWAPON = 5162 - SYS_SWAPOFF = 5163 - SYS_REBOOT = 5164 - SYS_SETHOSTNAME = 5165 - SYS_SETDOMAINNAME = 5166 - SYS_CREATE_MODULE = 5167 - SYS_INIT_MODULE = 5168 - SYS_DELETE_MODULE = 5169 - SYS_GET_KERNEL_SYMS = 5170 - SYS_QUERY_MODULE = 5171 - SYS_QUOTACTL = 5172 - SYS_NFSSERVCTL = 5173 - SYS_GETPMSG = 5174 - SYS_PUTPMSG = 5175 - SYS_AFS_SYSCALL = 5176 - SYS_RESERVED177 = 5177 - SYS_GETTID = 5178 - SYS_READAHEAD = 5179 - SYS_SETXATTR = 5180 - SYS_LSETXATTR = 5181 - SYS_FSETXATTR = 5182 - SYS_GETXATTR = 5183 - SYS_LGETXATTR = 5184 - SYS_FGETXATTR = 5185 - SYS_LISTXATTR = 5186 - SYS_LLISTXATTR = 5187 - SYS_FLISTXATTR = 5188 - SYS_REMOVEXATTR = 5189 - SYS_LREMOVEXATTR = 5190 - SYS_FREMOVEXATTR = 5191 - SYS_TKILL = 5192 - SYS_RESERVED193 = 5193 - SYS_FUTEX = 5194 - SYS_SCHED_SETAFFINITY = 5195 - SYS_SCHED_GETAFFINITY = 5196 - SYS_CACHEFLUSH = 5197 - SYS_CACHECTL = 5198 - SYS_SYSMIPS = 5199 - SYS_IO_SETUP = 5200 - SYS_IO_DESTROY = 5201 - SYS_IO_GETEVENTS = 5202 - SYS_IO_SUBMIT = 5203 - SYS_IO_CANCEL = 5204 - SYS_EXIT_GROUP = 5205 - SYS_LOOKUP_DCOOKIE = 5206 - SYS_EPOLL_CREATE = 5207 - SYS_EPOLL_CTL = 5208 - SYS_EPOLL_WAIT = 5209 - SYS_REMAP_FILE_PAGES = 5210 - SYS_RT_SIGRETURN = 5211 - SYS_SET_TID_ADDRESS = 5212 - SYS_RESTART_SYSCALL = 5213 - SYS_SEMTIMEDOP = 5214 - SYS_FADVISE64 = 5215 - SYS_TIMER_CREATE = 5216 - SYS_TIMER_SETTIME = 5217 - SYS_TIMER_GETTIME = 5218 - SYS_TIMER_GETOVERRUN = 5219 - SYS_TIMER_DELETE = 5220 - SYS_CLOCK_SETTIME = 5221 - SYS_CLOCK_GETTIME = 5222 - SYS_CLOCK_GETRES = 5223 - SYS_CLOCK_NANOSLEEP = 5224 - SYS_TGKILL = 5225 - SYS_UTIMES = 5226 - SYS_MBIND = 5227 - SYS_GET_MEMPOLICY = 5228 - SYS_SET_MEMPOLICY = 5229 - SYS_MQ_OPEN = 5230 - SYS_MQ_UNLINK = 5231 - SYS_MQ_TIMEDSEND = 5232 - SYS_MQ_TIMEDRECEIVE = 5233 - SYS_MQ_NOTIFY = 5234 - SYS_MQ_GETSETATTR = 5235 - SYS_VSERVER = 5236 - SYS_WAITID = 5237 - SYS_ADD_KEY = 5239 - SYS_REQUEST_KEY = 5240 - SYS_KEYCTL = 5241 - SYS_SET_THREAD_AREA = 5242 - SYS_INOTIFY_INIT = 5243 - SYS_INOTIFY_ADD_WATCH = 5244 - SYS_INOTIFY_RM_WATCH = 5245 - SYS_MIGRATE_PAGES = 5246 - SYS_OPENAT = 5247 - SYS_MKDIRAT = 5248 - SYS_MKNODAT = 5249 - SYS_FCHOWNAT = 5250 - SYS_FUTIMESAT = 5251 - SYS_NEWFSTATAT = 5252 - SYS_UNLINKAT = 5253 - SYS_RENAMEAT = 5254 - SYS_LINKAT = 5255 - SYS_SYMLINKAT = 5256 - SYS_READLINKAT = 5257 - SYS_FCHMODAT = 5258 - SYS_FACCESSAT = 5259 - SYS_PSELECT6 = 5260 - SYS_PPOLL = 5261 - SYS_UNSHARE = 5262 - SYS_SPLICE = 5263 - SYS_SYNC_FILE_RANGE = 5264 - SYS_TEE = 5265 - SYS_VMSPLICE = 5266 - SYS_MOVE_PAGES = 5267 - SYS_SET_ROBUST_LIST = 5268 - SYS_GET_ROBUST_LIST = 5269 - SYS_KEXEC_LOAD = 5270 - SYS_GETCPU = 5271 - SYS_EPOLL_PWAIT = 5272 - SYS_IOPRIO_SET = 5273 - SYS_IOPRIO_GET = 5274 - SYS_UTIMENSAT = 5275 - SYS_SIGNALFD = 5276 - SYS_TIMERFD = 5277 - SYS_EVENTFD = 5278 - SYS_FALLOCATE = 5279 - SYS_TIMERFD_CREATE = 5280 - SYS_TIMERFD_GETTIME = 5281 - SYS_TIMERFD_SETTIME = 5282 - SYS_SIGNALFD4 = 5283 - SYS_EVENTFD2 = 5284 - SYS_EPOLL_CREATE1 = 5285 - SYS_DUP3 = 5286 - SYS_PIPE2 = 5287 - SYS_INOTIFY_INIT1 = 5288 - SYS_PREADV = 5289 - SYS_PWRITEV = 5290 - SYS_RT_TGSIGQUEUEINFO = 5291 - SYS_PERF_EVENT_OPEN = 5292 - SYS_ACCEPT4 = 5293 - SYS_RECVMMSG = 5294 - SYS_FANOTIFY_INIT = 5295 - SYS_FANOTIFY_MARK = 5296 - SYS_PRLIMIT64 = 5297 - SYS_NAME_TO_HANDLE_AT = 5298 - SYS_OPEN_BY_HANDLE_AT = 5299 - SYS_CLOCK_ADJTIME = 5300 - SYS_SYNCFS = 5301 - SYS_SENDMMSG = 5302 - SYS_SETNS = 5303 - SYS_PROCESS_VM_READV = 5304 - SYS_PROCESS_VM_WRITEV = 5305 - SYS_KCMP = 5306 - SYS_FINIT_MODULE = 5307 - SYS_GETDENTS64 = 5308 - SYS_SCHED_SETATTR = 5309 - SYS_SCHED_GETATTR = 5310 - SYS_RENAMEAT2 = 5311 - SYS_SECCOMP = 5312 - SYS_GETRANDOM = 5313 - SYS_MEMFD_CREATE = 5314 - SYS_BPF = 5315 - SYS_EXECVEAT = 5316 - SYS_USERFAULTFD = 5317 - SYS_MEMBARRIER = 5318 - SYS_MLOCK2 = 5319 - SYS_COPY_FILE_RANGE = 5320 - SYS_PREADV2 = 5321 - SYS_PWRITEV2 = 5322 - SYS_PKEY_MPROTECT = 5323 - SYS_PKEY_ALLOC = 5324 - SYS_PKEY_FREE = 5325 - 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 - SYS_OPEN_TREE = 5428 - SYS_MOVE_MOUNT = 5429 - SYS_FSOPEN = 5430 - SYS_FSCONFIG = 5431 - SYS_FSMOUNT = 5432 - SYS_FSPICK = 5433 - SYS_PIDFD_OPEN = 5434 - SYS_CLONE3 = 5435 - SYS_CLOSE_RANGE = 5436 - SYS_OPENAT2 = 5437 - SYS_PIDFD_GETFD = 5438 - SYS_FACCESSAT2 = 5439 - SYS_PROCESS_MADVISE = 5440 - SYS_EPOLL_PWAIT2 = 5441 - SYS_MOUNT_SETATTR = 5442 - SYS_QUOTACTL_FD = 5443 - SYS_LANDLOCK_CREATE_RULESET = 5444 - SYS_LANDLOCK_ADD_RULE = 5445 - SYS_LANDLOCK_RESTRICT_SELF = 5446 - SYS_PROCESS_MRELEASE = 5448 - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 - SYS_MAP_SHADOW_STACK = 5453 - SYS_FUTEX_WAKE = 5454 - SYS_FUTEX_WAIT = 5455 - SYS_FUTEX_REQUEUE = 5456 - SYS_STATMOUNT = 5457 - SYS_LISTMOUNT = 5458 - SYS_LSM_GET_SELF_ATTR = 5459 - SYS_LSM_SET_SELF_ATTR = 5460 - SYS_LSM_LIST_MODULES = 5461 - SYS_MSEAL = 5462 - SYS_SETXATTRAT = 5463 - SYS_GETXATTRAT = 5464 - SYS_LISTXATTRAT = 5465 - SYS_REMOVEXATTRAT = 5466 - SYS_OPEN_TREE_ATTR = 5467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go deleted file mode 100644 index 5656157..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ /dev/null @@ -1,380 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux - -package unix - -const ( - SYS_READ = 5000 - SYS_WRITE = 5001 - SYS_OPEN = 5002 - SYS_CLOSE = 5003 - SYS_STAT = 5004 - SYS_FSTAT = 5005 - SYS_LSTAT = 5006 - SYS_POLL = 5007 - SYS_LSEEK = 5008 - SYS_MMAP = 5009 - SYS_MPROTECT = 5010 - SYS_MUNMAP = 5011 - SYS_BRK = 5012 - SYS_RT_SIGACTION = 5013 - SYS_RT_SIGPROCMASK = 5014 - SYS_IOCTL = 5015 - SYS_PREAD64 = 5016 - SYS_PWRITE64 = 5017 - SYS_READV = 5018 - SYS_WRITEV = 5019 - SYS_ACCESS = 5020 - SYS_PIPE = 5021 - SYS__NEWSELECT = 5022 - SYS_SCHED_YIELD = 5023 - SYS_MREMAP = 5024 - SYS_MSYNC = 5025 - SYS_MINCORE = 5026 - SYS_MADVISE = 5027 - SYS_SHMGET = 5028 - SYS_SHMAT = 5029 - SYS_SHMCTL = 5030 - SYS_DUP = 5031 - SYS_DUP2 = 5032 - SYS_PAUSE = 5033 - SYS_NANOSLEEP = 5034 - SYS_GETITIMER = 5035 - SYS_SETITIMER = 5036 - SYS_ALARM = 5037 - SYS_GETPID = 5038 - SYS_SENDFILE = 5039 - SYS_SOCKET = 5040 - SYS_CONNECT = 5041 - SYS_ACCEPT = 5042 - SYS_SENDTO = 5043 - SYS_RECVFROM = 5044 - SYS_SENDMSG = 5045 - SYS_RECVMSG = 5046 - SYS_SHUTDOWN = 5047 - SYS_BIND = 5048 - SYS_LISTEN = 5049 - SYS_GETSOCKNAME = 5050 - SYS_GETPEERNAME = 5051 - SYS_SOCKETPAIR = 5052 - SYS_SETSOCKOPT = 5053 - SYS_GETSOCKOPT = 5054 - SYS_CLONE = 5055 - SYS_FORK = 5056 - SYS_EXECVE = 5057 - SYS_EXIT = 5058 - SYS_WAIT4 = 5059 - SYS_KILL = 5060 - SYS_UNAME = 5061 - SYS_SEMGET = 5062 - SYS_SEMOP = 5063 - SYS_SEMCTL = 5064 - SYS_SHMDT = 5065 - SYS_MSGGET = 5066 - SYS_MSGSND = 5067 - SYS_MSGRCV = 5068 - SYS_MSGCTL = 5069 - SYS_FCNTL = 5070 - SYS_FLOCK = 5071 - SYS_FSYNC = 5072 - SYS_FDATASYNC = 5073 - SYS_TRUNCATE = 5074 - SYS_FTRUNCATE = 5075 - SYS_GETDENTS = 5076 - SYS_GETCWD = 5077 - SYS_CHDIR = 5078 - SYS_FCHDIR = 5079 - SYS_RENAME = 5080 - SYS_MKDIR = 5081 - SYS_RMDIR = 5082 - SYS_CREAT = 5083 - SYS_LINK = 5084 - SYS_UNLINK = 5085 - SYS_SYMLINK = 5086 - SYS_READLINK = 5087 - SYS_CHMOD = 5088 - SYS_FCHMOD = 5089 - SYS_CHOWN = 5090 - SYS_FCHOWN = 5091 - SYS_LCHOWN = 5092 - SYS_UMASK = 5093 - SYS_GETTIMEOFDAY = 5094 - SYS_GETRLIMIT = 5095 - SYS_GETRUSAGE = 5096 - SYS_SYSINFO = 5097 - SYS_TIMES = 5098 - SYS_PTRACE = 5099 - SYS_GETUID = 5100 - SYS_SYSLOG = 5101 - SYS_GETGID = 5102 - SYS_SETUID = 5103 - SYS_SETGID = 5104 - SYS_GETEUID = 5105 - SYS_GETEGID = 5106 - SYS_SETPGID = 5107 - SYS_GETPPID = 5108 - SYS_GETPGRP = 5109 - SYS_SETSID = 5110 - SYS_SETREUID = 5111 - SYS_SETREGID = 5112 - SYS_GETGROUPS = 5113 - SYS_SETGROUPS = 5114 - SYS_SETRESUID = 5115 - SYS_GETRESUID = 5116 - SYS_SETRESGID = 5117 - SYS_GETRESGID = 5118 - SYS_GETPGID = 5119 - SYS_SETFSUID = 5120 - SYS_SETFSGID = 5121 - SYS_GETSID = 5122 - SYS_CAPGET = 5123 - SYS_CAPSET = 5124 - SYS_RT_SIGPENDING = 5125 - SYS_RT_SIGTIMEDWAIT = 5126 - SYS_RT_SIGQUEUEINFO = 5127 - SYS_RT_SIGSUSPEND = 5128 - SYS_SIGALTSTACK = 5129 - SYS_UTIME = 5130 - SYS_MKNOD = 5131 - SYS_PERSONALITY = 5132 - SYS_USTAT = 5133 - SYS_STATFS = 5134 - SYS_FSTATFS = 5135 - SYS_SYSFS = 5136 - SYS_GETPRIORITY = 5137 - SYS_SETPRIORITY = 5138 - SYS_SCHED_SETPARAM = 5139 - SYS_SCHED_GETPARAM = 5140 - SYS_SCHED_SETSCHEDULER = 5141 - SYS_SCHED_GETSCHEDULER = 5142 - SYS_SCHED_GET_PRIORITY_MAX = 5143 - SYS_SCHED_GET_PRIORITY_MIN = 5144 - SYS_SCHED_RR_GET_INTERVAL = 5145 - SYS_MLOCK = 5146 - SYS_MUNLOCK = 5147 - SYS_MLOCKALL = 5148 - SYS_MUNLOCKALL = 5149 - SYS_VHANGUP = 5150 - SYS_PIVOT_ROOT = 5151 - SYS__SYSCTL = 5152 - SYS_PRCTL = 5153 - SYS_ADJTIMEX = 5154 - SYS_SETRLIMIT = 5155 - SYS_CHROOT = 5156 - SYS_SYNC = 5157 - SYS_ACCT = 5158 - SYS_SETTIMEOFDAY = 5159 - SYS_MOUNT = 5160 - SYS_UMOUNT2 = 5161 - SYS_SWAPON = 5162 - SYS_SWAPOFF = 5163 - SYS_REBOOT = 5164 - SYS_SETHOSTNAME = 5165 - SYS_SETDOMAINNAME = 5166 - SYS_CREATE_MODULE = 5167 - SYS_INIT_MODULE = 5168 - SYS_DELETE_MODULE = 5169 - SYS_GET_KERNEL_SYMS = 5170 - SYS_QUERY_MODULE = 5171 - SYS_QUOTACTL = 5172 - SYS_NFSSERVCTL = 5173 - SYS_GETPMSG = 5174 - SYS_PUTPMSG = 5175 - SYS_AFS_SYSCALL = 5176 - SYS_RESERVED177 = 5177 - SYS_GETTID = 5178 - SYS_READAHEAD = 5179 - SYS_SETXATTR = 5180 - SYS_LSETXATTR = 5181 - SYS_FSETXATTR = 5182 - SYS_GETXATTR = 5183 - SYS_LGETXATTR = 5184 - SYS_FGETXATTR = 5185 - SYS_LISTXATTR = 5186 - SYS_LLISTXATTR = 5187 - SYS_FLISTXATTR = 5188 - SYS_REMOVEXATTR = 5189 - SYS_LREMOVEXATTR = 5190 - SYS_FREMOVEXATTR = 5191 - SYS_TKILL = 5192 - SYS_RESERVED193 = 5193 - SYS_FUTEX = 5194 - SYS_SCHED_SETAFFINITY = 5195 - SYS_SCHED_GETAFFINITY = 5196 - SYS_CACHEFLUSH = 5197 - SYS_CACHECTL = 5198 - SYS_SYSMIPS = 5199 - SYS_IO_SETUP = 5200 - SYS_IO_DESTROY = 5201 - SYS_IO_GETEVENTS = 5202 - SYS_IO_SUBMIT = 5203 - SYS_IO_CANCEL = 5204 - SYS_EXIT_GROUP = 5205 - SYS_LOOKUP_DCOOKIE = 5206 - SYS_EPOLL_CREATE = 5207 - SYS_EPOLL_CTL = 5208 - SYS_EPOLL_WAIT = 5209 - SYS_REMAP_FILE_PAGES = 5210 - SYS_RT_SIGRETURN = 5211 - SYS_SET_TID_ADDRESS = 5212 - SYS_RESTART_SYSCALL = 5213 - SYS_SEMTIMEDOP = 5214 - SYS_FADVISE64 = 5215 - SYS_TIMER_CREATE = 5216 - SYS_TIMER_SETTIME = 5217 - SYS_TIMER_GETTIME = 5218 - SYS_TIMER_GETOVERRUN = 5219 - SYS_TIMER_DELETE = 5220 - SYS_CLOCK_SETTIME = 5221 - SYS_CLOCK_GETTIME = 5222 - SYS_CLOCK_GETRES = 5223 - SYS_CLOCK_NANOSLEEP = 5224 - SYS_TGKILL = 5225 - SYS_UTIMES = 5226 - SYS_MBIND = 5227 - SYS_GET_MEMPOLICY = 5228 - SYS_SET_MEMPOLICY = 5229 - SYS_MQ_OPEN = 5230 - SYS_MQ_UNLINK = 5231 - SYS_MQ_TIMEDSEND = 5232 - SYS_MQ_TIMEDRECEIVE = 5233 - SYS_MQ_NOTIFY = 5234 - SYS_MQ_GETSETATTR = 5235 - SYS_VSERVER = 5236 - SYS_WAITID = 5237 - SYS_ADD_KEY = 5239 - SYS_REQUEST_KEY = 5240 - SYS_KEYCTL = 5241 - SYS_SET_THREAD_AREA = 5242 - SYS_INOTIFY_INIT = 5243 - SYS_INOTIFY_ADD_WATCH = 5244 - SYS_INOTIFY_RM_WATCH = 5245 - SYS_MIGRATE_PAGES = 5246 - SYS_OPENAT = 5247 - SYS_MKDIRAT = 5248 - SYS_MKNODAT = 5249 - SYS_FCHOWNAT = 5250 - SYS_FUTIMESAT = 5251 - SYS_NEWFSTATAT = 5252 - SYS_UNLINKAT = 5253 - SYS_RENAMEAT = 5254 - SYS_LINKAT = 5255 - SYS_SYMLINKAT = 5256 - SYS_READLINKAT = 5257 - SYS_FCHMODAT = 5258 - SYS_FACCESSAT = 5259 - SYS_PSELECT6 = 5260 - SYS_PPOLL = 5261 - SYS_UNSHARE = 5262 - SYS_SPLICE = 5263 - SYS_SYNC_FILE_RANGE = 5264 - SYS_TEE = 5265 - SYS_VMSPLICE = 5266 - SYS_MOVE_PAGES = 5267 - SYS_SET_ROBUST_LIST = 5268 - SYS_GET_ROBUST_LIST = 5269 - SYS_KEXEC_LOAD = 5270 - SYS_GETCPU = 5271 - SYS_EPOLL_PWAIT = 5272 - SYS_IOPRIO_SET = 5273 - SYS_IOPRIO_GET = 5274 - SYS_UTIMENSAT = 5275 - SYS_SIGNALFD = 5276 - SYS_TIMERFD = 5277 - SYS_EVENTFD = 5278 - SYS_FALLOCATE = 5279 - SYS_TIMERFD_CREATE = 5280 - SYS_TIMERFD_GETTIME = 5281 - SYS_TIMERFD_SETTIME = 5282 - SYS_SIGNALFD4 = 5283 - SYS_EVENTFD2 = 5284 - SYS_EPOLL_CREATE1 = 5285 - SYS_DUP3 = 5286 - SYS_PIPE2 = 5287 - SYS_INOTIFY_INIT1 = 5288 - SYS_PREADV = 5289 - SYS_PWRITEV = 5290 - SYS_RT_TGSIGQUEUEINFO = 5291 - SYS_PERF_EVENT_OPEN = 5292 - SYS_ACCEPT4 = 5293 - SYS_RECVMMSG = 5294 - SYS_FANOTIFY_INIT = 5295 - SYS_FANOTIFY_MARK = 5296 - SYS_PRLIMIT64 = 5297 - SYS_NAME_TO_HANDLE_AT = 5298 - SYS_OPEN_BY_HANDLE_AT = 5299 - SYS_CLOCK_ADJTIME = 5300 - SYS_SYNCFS = 5301 - SYS_SENDMMSG = 5302 - SYS_SETNS = 5303 - SYS_PROCESS_VM_READV = 5304 - SYS_PROCESS_VM_WRITEV = 5305 - SYS_KCMP = 5306 - SYS_FINIT_MODULE = 5307 - SYS_GETDENTS64 = 5308 - SYS_SCHED_SETATTR = 5309 - SYS_SCHED_GETATTR = 5310 - SYS_RENAMEAT2 = 5311 - SYS_SECCOMP = 5312 - SYS_GETRANDOM = 5313 - SYS_MEMFD_CREATE = 5314 - SYS_BPF = 5315 - SYS_EXECVEAT = 5316 - SYS_USERFAULTFD = 5317 - SYS_MEMBARRIER = 5318 - SYS_MLOCK2 = 5319 - SYS_COPY_FILE_RANGE = 5320 - SYS_PREADV2 = 5321 - SYS_PWRITEV2 = 5322 - SYS_PKEY_MPROTECT = 5323 - SYS_PKEY_ALLOC = 5324 - SYS_PKEY_FREE = 5325 - 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 - SYS_OPEN_TREE = 5428 - SYS_MOVE_MOUNT = 5429 - SYS_FSOPEN = 5430 - SYS_FSCONFIG = 5431 - SYS_FSMOUNT = 5432 - SYS_FSPICK = 5433 - SYS_PIDFD_OPEN = 5434 - SYS_CLONE3 = 5435 - SYS_CLOSE_RANGE = 5436 - SYS_OPENAT2 = 5437 - SYS_PIDFD_GETFD = 5438 - SYS_FACCESSAT2 = 5439 - SYS_PROCESS_MADVISE = 5440 - SYS_EPOLL_PWAIT2 = 5441 - SYS_MOUNT_SETATTR = 5442 - SYS_QUOTACTL_FD = 5443 - SYS_LANDLOCK_CREATE_RULESET = 5444 - SYS_LANDLOCK_ADD_RULE = 5445 - SYS_LANDLOCK_RESTRICT_SELF = 5446 - SYS_PROCESS_MRELEASE = 5448 - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 - SYS_MAP_SHADOW_STACK = 5453 - SYS_FUTEX_WAKE = 5454 - SYS_FUTEX_WAIT = 5455 - SYS_FUTEX_REQUEUE = 5456 - SYS_STATMOUNT = 5457 - SYS_LISTMOUNT = 5458 - SYS_LSM_GET_SELF_ATTR = 5459 - SYS_LSM_SET_SELF_ATTR = 5460 - SYS_LSM_LIST_MODULES = 5461 - SYS_MSEAL = 5462 - SYS_SETXATTRAT = 5463 - SYS_GETXATTRAT = 5464 - SYS_LISTXATTRAT = 5465 - SYS_REMOVEXATTRAT = 5466 - SYS_OPEN_TREE_ATTR = 5467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go deleted file mode 100644 index 0482b52..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ /dev/null @@ -1,450 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mipsle && linux - -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_OPEN_TREE = 4428 - SYS_MOVE_MOUNT = 4429 - SYS_FSOPEN = 4430 - SYS_FSCONFIG = 4431 - SYS_FSMOUNT = 4432 - SYS_FSPICK = 4433 - SYS_PIDFD_OPEN = 4434 - SYS_CLONE3 = 4435 - SYS_CLOSE_RANGE = 4436 - SYS_OPENAT2 = 4437 - SYS_PIDFD_GETFD = 4438 - SYS_FACCESSAT2 = 4439 - SYS_PROCESS_MADVISE = 4440 - SYS_EPOLL_PWAIT2 = 4441 - SYS_MOUNT_SETATTR = 4442 - SYS_QUOTACTL_FD = 4443 - SYS_LANDLOCK_CREATE_RULESET = 4444 - SYS_LANDLOCK_ADD_RULE = 4445 - SYS_LANDLOCK_RESTRICT_SELF = 4446 - SYS_PROCESS_MRELEASE = 4448 - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 - SYS_MAP_SHADOW_STACK = 4453 - SYS_FUTEX_WAKE = 4454 - SYS_FUTEX_WAIT = 4455 - SYS_FUTEX_REQUEUE = 4456 - SYS_STATMOUNT = 4457 - SYS_LISTMOUNT = 4458 - SYS_LSM_GET_SELF_ATTR = 4459 - SYS_LSM_SET_SELF_ATTR = 4460 - SYS_LSM_LIST_MODULES = 4461 - SYS_MSEAL = 4462 - SYS_SETXATTRAT = 4463 - SYS_GETXATTRAT = 4464 - SYS_LISTXATTRAT = 4465 - SYS_REMOVEXATTRAT = 4466 - SYS_OPEN_TREE_ATTR = 4467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go deleted file mode 100644 index 71806f0..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +++ /dev/null @@ -1,457 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && linux - -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_VM86 = 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_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_FCNTL64 = 204 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_SENDFILE64 = 226 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_FADVISE64_64 = 254 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_FSTATAT64 = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - SYS_PKEY_MPROTECT = 386 - SYS_RSEQ = 387 - SYS_IO_PGETEVENTS = 388 - 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_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go deleted file mode 100644 index e35a710..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ /dev/null @@ -1,429 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && linux - -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_VM86 = 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_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_NEWFSTATAT = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - 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 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go deleted file mode 100644 index 2aea476..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ /dev/null @@ -1,429 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && linux - -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_VM86 = 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_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_NEWFSTATAT = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - 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 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go deleted file mode 100644 index 6c9bb4e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ /dev/null @@ -1,334 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_NEWFSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRLIMIT = 163 - SYS_SETRLIMIT = 164 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_RISCV_HWPROBE = 258 - SYS_RISCV_FLUSH_ICACHE = 259 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - 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 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go deleted file mode 100644 index 680bc99..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ /dev/null @@ -1,395 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux - -package unix - -const ( - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_RESTART_SYSCALL = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_PAUSE = 29 - SYS_UTIME = 30 - 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_SIGNAL = 48 - 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_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_SYMLINK = 83 - 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_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_LOOKUP_DCOOKIE = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - 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_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_GETDENTS = 141 - SYS_SELECT = 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_QUERY_MODULE = 167 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - 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_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_GETPMSG = 188 - SYS_PUTPMSG = 189 - SYS_VFORK = 190 - SYS_GETRLIMIT = 191 - SYS_LCHOWN = 198 - SYS_GETUID = 199 - SYS_GETGID = 200 - SYS_GETEUID = 201 - SYS_GETEGID = 202 - SYS_SETREUID = 203 - SYS_SETREGID = 204 - SYS_GETGROUPS = 205 - SYS_SETGROUPS = 206 - SYS_FCHOWN = 207 - SYS_SETRESUID = 208 - SYS_GETRESUID = 209 - SYS_SETRESGID = 210 - SYS_GETRESGID = 211 - SYS_CHOWN = 212 - SYS_SETUID = 213 - SYS_SETGID = 214 - SYS_SETFSUID = 215 - SYS_SETFSGID = 216 - SYS_PIVOT_ROOT = 217 - SYS_MINCORE = 218 - SYS_MADVISE = 219 - SYS_GETDENTS64 = 220 - SYS_READAHEAD = 222 - SYS_SETXATTR = 224 - SYS_LSETXATTR = 225 - SYS_FSETXATTR = 226 - SYS_GETXATTR = 227 - SYS_LGETXATTR = 228 - SYS_FGETXATTR = 229 - SYS_LISTXATTR = 230 - SYS_LLISTXATTR = 231 - SYS_FLISTXATTR = 232 - SYS_REMOVEXATTR = 233 - SYS_LREMOVEXATTR = 234 - SYS_FREMOVEXATTR = 235 - SYS_GETTID = 236 - SYS_TKILL = 237 - SYS_FUTEX = 238 - SYS_SCHED_SETAFFINITY = 239 - SYS_SCHED_GETAFFINITY = 240 - SYS_TGKILL = 241 - 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_EPOLL_CREATE = 249 - SYS_EPOLL_CTL = 250 - SYS_EPOLL_WAIT = 251 - SYS_SET_TID_ADDRESS = 252 - SYS_FADVISE64 = 253 - SYS_TIMER_CREATE = 254 - SYS_TIMER_SETTIME = 255 - SYS_TIMER_GETTIME = 256 - SYS_TIMER_GETOVERRUN = 257 - SYS_TIMER_DELETE = 258 - SYS_CLOCK_SETTIME = 259 - SYS_CLOCK_GETTIME = 260 - SYS_CLOCK_GETRES = 261 - SYS_CLOCK_NANOSLEEP = 262 - SYS_STATFS64 = 265 - SYS_FSTATFS64 = 266 - SYS_REMAP_FILE_PAGES = 267 - SYS_MBIND = 268 - SYS_GET_MEMPOLICY = 269 - SYS_SET_MEMPOLICY = 270 - SYS_MQ_OPEN = 271 - SYS_MQ_UNLINK = 272 - SYS_MQ_TIMEDSEND = 273 - SYS_MQ_TIMEDRECEIVE = 274 - SYS_MQ_NOTIFY = 275 - SYS_MQ_GETSETATTR = 276 - SYS_KEXEC_LOAD = 277 - SYS_ADD_KEY = 278 - SYS_REQUEST_KEY = 279 - SYS_KEYCTL = 280 - SYS_WAITID = 281 - SYS_IOPRIO_SET = 282 - SYS_IOPRIO_GET = 283 - SYS_INOTIFY_INIT = 284 - SYS_INOTIFY_ADD_WATCH = 285 - SYS_INOTIFY_RM_WATCH = 286 - SYS_MIGRATE_PAGES = 287 - SYS_OPENAT = 288 - SYS_MKDIRAT = 289 - SYS_MKNODAT = 290 - SYS_FCHOWNAT = 291 - SYS_FUTIMESAT = 292 - SYS_NEWFSTATAT = 293 - SYS_UNLINKAT = 294 - SYS_RENAMEAT = 295 - SYS_LINKAT = 296 - SYS_SYMLINKAT = 297 - SYS_READLINKAT = 298 - SYS_FCHMODAT = 299 - SYS_FACCESSAT = 300 - SYS_PSELECT6 = 301 - SYS_PPOLL = 302 - SYS_UNSHARE = 303 - SYS_SET_ROBUST_LIST = 304 - SYS_GET_ROBUST_LIST = 305 - SYS_SPLICE = 306 - SYS_SYNC_FILE_RANGE = 307 - SYS_TEE = 308 - SYS_VMSPLICE = 309 - SYS_MOVE_PAGES = 310 - SYS_GETCPU = 311 - SYS_EPOLL_PWAIT = 312 - SYS_UTIMES = 313 - SYS_FALLOCATE = 314 - SYS_UTIMENSAT = 315 - SYS_SIGNALFD = 316 - SYS_TIMERFD = 317 - SYS_EVENTFD = 318 - SYS_TIMERFD_CREATE = 319 - SYS_TIMERFD_SETTIME = 320 - SYS_TIMERFD_GETTIME = 321 - SYS_SIGNALFD4 = 322 - SYS_EVENTFD2 = 323 - SYS_INOTIFY_INIT1 = 324 - SYS_PIPE2 = 325 - SYS_DUP3 = 326 - SYS_EPOLL_CREATE1 = 327 - SYS_PREADV = 328 - SYS_PWRITEV = 329 - SYS_RT_TGSIGQUEUEINFO = 330 - SYS_PERF_EVENT_OPEN = 331 - SYS_FANOTIFY_INIT = 332 - SYS_FANOTIFY_MARK = 333 - SYS_PRLIMIT64 = 334 - SYS_NAME_TO_HANDLE_AT = 335 - SYS_OPEN_BY_HANDLE_AT = 336 - SYS_CLOCK_ADJTIME = 337 - SYS_SYNCFS = 338 - SYS_SETNS = 339 - SYS_PROCESS_VM_READV = 340 - SYS_PROCESS_VM_WRITEV = 341 - SYS_S390_RUNTIME_INSTR = 342 - SYS_KCMP = 343 - SYS_FINIT_MODULE = 344 - SYS_SCHED_SETATTR = 345 - SYS_SCHED_GETATTR = 346 - SYS_RENAMEAT2 = 347 - SYS_SECCOMP = 348 - SYS_GETRANDOM = 349 - SYS_MEMFD_CREATE = 350 - SYS_BPF = 351 - SYS_S390_PCI_MMIO_WRITE = 352 - SYS_S390_PCI_MMIO_READ = 353 - SYS_EXECVEAT = 354 - SYS_USERFAULTFD = 355 - SYS_MEMBARRIER = 356 - SYS_RECVMMSG = 357 - SYS_SENDMMSG = 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_MLOCK2 = 374 - SYS_COPY_FILE_RANGE = 375 - SYS_PREADV2 = 376 - SYS_PWRITEV2 = 377 - SYS_S390_GUARDED_STORAGE = 378 - SYS_STATX = 379 - SYS_S390_STHYI = 380 - 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 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLONE3 = 435 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go deleted file mode 100644 index 620f271..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ /dev/null @@ -1,408 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && linux - -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_WAIT4 = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECV = 11 - SYS_CHDIR = 12 - SYS_CHOWN = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BRK = 17 - SYS_PERFCTR = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_CAPGET = 21 - SYS_CAPSET = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_VMSPLICE = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_SIGALTSTACK = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_STAT = 38 - SYS_SENDFILE = 39 - SYS_LSTAT = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_UMOUNT2 = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_MEMORY_ORDERING = 52 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_FSTAT = 62 - SYS_FSTAT64 = 63 - SYS_GETPAGESIZE = 64 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_MMAP = 71 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_VHANGUP = 76 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_SETHOSTNAME = 88 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_ACCEPT = 99 - SYS_GETPRIORITY = 100 - SYS_RT_SIGRETURN = 101 - SYS_RT_SIGACTION = 102 - SYS_RT_SIGPROCMASK = 103 - SYS_RT_SIGPENDING = 104 - SYS_RT_SIGTIMEDWAIT = 105 - SYS_RT_SIGQUEUEINFO = 106 - SYS_RT_SIGSUSPEND = 107 - SYS_SETRESUID = 108 - SYS_GETRESUID = 109 - SYS_SETRESGID = 110 - SYS_GETRESGID = 111 - SYS_RECVMSG = 113 - SYS_SENDMSG = 114 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_GETCWD = 119 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_RECVFROM = 125 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_TRUNCATE = 129 - SYS_FTRUNCATE = 130 - SYS_FLOCK = 131 - SYS_LSTAT64 = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_STAT64 = 139 - SYS_SENDFILE64 = 140 - SYS_GETPEERNAME = 141 - SYS_FUTEX = 142 - SYS_GETTID = 143 - SYS_GETRLIMIT = 144 - SYS_SETRLIMIT = 145 - SYS_PIVOT_ROOT = 146 - SYS_PRCTL = 147 - SYS_PCICONFIG_READ = 148 - SYS_PCICONFIG_WRITE = 149 - SYS_GETSOCKNAME = 150 - SYS_INOTIFY_INIT = 151 - SYS_INOTIFY_ADD_WATCH = 152 - SYS_POLL = 153 - SYS_GETDENTS64 = 154 - SYS_INOTIFY_RM_WATCH = 156 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UMOUNT = 159 - SYS_SCHED_SET_AFFINITY = 160 - SYS_SCHED_GET_AFFINITY = 161 - SYS_GETDOMAINNAME = 162 - SYS_SETDOMAINNAME = 163 - SYS_UTRAP_INSTALL = 164 - SYS_QUOTACTL = 165 - SYS_SET_TID_ADDRESS = 166 - SYS_MOUNT = 167 - SYS_USTAT = 168 - SYS_SETXATTR = 169 - SYS_LSETXATTR = 170 - SYS_FSETXATTR = 171 - SYS_GETXATTR = 172 - SYS_LGETXATTR = 173 - SYS_GETDENTS = 174 - SYS_SETSID = 175 - SYS_FCHDIR = 176 - SYS_FGETXATTR = 177 - SYS_LISTXATTR = 178 - SYS_LLISTXATTR = 179 - SYS_FLISTXATTR = 180 - SYS_REMOVEXATTR = 181 - SYS_LREMOVEXATTR = 182 - SYS_SIGPENDING = 183 - SYS_QUERY_MODULE = 184 - SYS_SETPGID = 185 - SYS_FREMOVEXATTR = 186 - SYS_TKILL = 187 - SYS_EXIT_GROUP = 188 - SYS_UNAME = 189 - SYS_INIT_MODULE = 190 - SYS_PERSONALITY = 191 - SYS_REMAP_FILE_PAGES = 192 - SYS_EPOLL_CREATE = 193 - SYS_EPOLL_CTL = 194 - SYS_EPOLL_WAIT = 195 - SYS_IOPRIO_SET = 196 - SYS_GETPPID = 197 - SYS_SIGACTION = 198 - SYS_SGETMASK = 199 - SYS_SSETMASK = 200 - SYS_SIGSUSPEND = 201 - SYS_OLDLSTAT = 202 - SYS_USELIB = 203 - SYS_READDIR = 204 - SYS_READAHEAD = 205 - SYS_SOCKETCALL = 206 - SYS_SYSLOG = 207 - SYS_LOOKUP_DCOOKIE = 208 - SYS_FADVISE64 = 209 - SYS_FADVISE64_64 = 210 - SYS_TGKILL = 211 - SYS_WAITPID = 212 - SYS_SWAPOFF = 213 - SYS_SYSINFO = 214 - SYS_IPC = 215 - SYS_SIGRETURN = 216 - SYS_CLONE = 217 - SYS_IOPRIO_GET = 218 - SYS_ADJTIMEX = 219 - SYS_SIGPROCMASK = 220 - SYS_CREATE_MODULE = 221 - SYS_DELETE_MODULE = 222 - SYS_GET_KERNEL_SYMS = 223 - SYS_GETPGID = 224 - SYS_BDFLUSH = 225 - SYS_SYSFS = 226 - SYS_AFS_SYSCALL = 227 - SYS_SETFSUID = 228 - SYS_SETFSGID = 229 - SYS__NEWSELECT = 230 - SYS_SPLICE = 232 - SYS_STIME = 233 - SYS_STATFS64 = 234 - SYS_FSTATFS64 = 235 - SYS__LLSEEK = 236 - SYS_MLOCK = 237 - SYS_MUNLOCK = 238 - SYS_MLOCKALL = 239 - SYS_MUNLOCKALL = 240 - SYS_SCHED_SETPARAM = 241 - SYS_SCHED_GETPARAM = 242 - SYS_SCHED_SETSCHEDULER = 243 - SYS_SCHED_GETSCHEDULER = 244 - SYS_SCHED_YIELD = 245 - SYS_SCHED_GET_PRIORITY_MAX = 246 - SYS_SCHED_GET_PRIORITY_MIN = 247 - SYS_SCHED_RR_GET_INTERVAL = 248 - SYS_NANOSLEEP = 249 - SYS_MREMAP = 250 - SYS__SYSCTL = 251 - SYS_GETSID = 252 - SYS_FDATASYNC = 253 - SYS_NFSSERVCTL = 254 - SYS_SYNC_FILE_RANGE = 255 - SYS_CLOCK_SETTIME = 256 - SYS_CLOCK_GETTIME = 257 - SYS_CLOCK_GETRES = 258 - SYS_CLOCK_NANOSLEEP = 259 - SYS_SCHED_GETAFFINITY = 260 - SYS_SCHED_SETAFFINITY = 261 - SYS_TIMER_SETTIME = 262 - SYS_TIMER_GETTIME = 263 - 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 - SYS_IO_CANCEL = 271 - SYS_IO_GETEVENTS = 272 - SYS_MQ_OPEN = 273 - SYS_MQ_UNLINK = 274 - SYS_MQ_TIMEDSEND = 275 - SYS_MQ_TIMEDRECEIVE = 276 - SYS_MQ_NOTIFY = 277 - SYS_MQ_GETSETATTR = 278 - SYS_WAITID = 279 - SYS_TEE = 280 - SYS_ADD_KEY = 281 - SYS_REQUEST_KEY = 282 - SYS_KEYCTL = 283 - SYS_OPENAT = 284 - SYS_MKDIRAT = 285 - SYS_MKNODAT = 286 - SYS_FCHOWNAT = 287 - SYS_FUTIMESAT = 288 - SYS_FSTATAT64 = 289 - SYS_UNLINKAT = 290 - SYS_RENAMEAT = 291 - SYS_LINKAT = 292 - SYS_SYMLINKAT = 293 - SYS_READLINKAT = 294 - SYS_FCHMODAT = 295 - SYS_FACCESSAT = 296 - SYS_PSELECT6 = 297 - SYS_PPOLL = 298 - SYS_UNSHARE = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_GET_ROBUST_LIST = 301 - SYS_MIGRATE_PAGES = 302 - SYS_MBIND = 303 - SYS_GET_MEMPOLICY = 304 - SYS_SET_MEMPOLICY = 305 - SYS_KEXEC_LOAD = 306 - SYS_MOVE_PAGES = 307 - SYS_GETCPU = 308 - SYS_EPOLL_PWAIT = 309 - SYS_UTIMENSAT = 310 - SYS_SIGNALFD = 311 - SYS_TIMERFD_CREATE = 312 - SYS_EVENTFD = 313 - SYS_FALLOCATE = 314 - SYS_TIMERFD_SETTIME = 315 - SYS_TIMERFD_GETTIME = 316 - SYS_SIGNALFD4 = 317 - SYS_EVENTFD2 = 318 - SYS_EPOLL_CREATE1 = 319 - SYS_DUP3 = 320 - SYS_PIPE2 = 321 - SYS_INOTIFY_INIT1 = 322 - SYS_ACCEPT4 = 323 - SYS_PREADV = 324 - SYS_PWRITEV = 325 - SYS_RT_TGSIGQUEUEINFO = 326 - SYS_PERF_EVENT_OPEN = 327 - SYS_RECVMMSG = 328 - SYS_FANOTIFY_INIT = 329 - SYS_FANOTIFY_MARK = 330 - SYS_PRLIMIT64 = 331 - SYS_NAME_TO_HANDLE_AT = 332 - SYS_OPEN_BY_HANDLE_AT = 333 - SYS_CLOCK_ADJTIME = 334 - SYS_SYNCFS = 335 - SYS_SENDMMSG = 336 - SYS_SETNS = 337 - SYS_PROCESS_VM_READV = 338 - SYS_PROCESS_VM_WRITEV = 339 - SYS_KERN_FEATURES = 340 - SYS_KCMP = 341 - SYS_FINIT_MODULE = 342 - SYS_SCHED_SETATTR = 343 - SYS_SCHED_GETATTR = 344 - SYS_RENAMEAT2 = 345 - SYS_SECCOMP = 346 - SYS_GETRANDOM = 347 - SYS_MEMFD_CREATE = 348 - SYS_BPF = 349 - SYS_EXECVEAT = 350 - SYS_MEMBARRIER = 351 - SYS_USERFAULTFD = 352 - SYS_BIND = 353 - SYS_LISTEN = 354 - SYS_SETSOCKOPT = 355 - SYS_MLOCK2 = 356 - SYS_COPY_FILE_RANGE = 357 - SYS_PREADV2 = 358 - 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 - SYS_OPEN_TREE = 428 - SYS_MOVE_MOUNT = 429 - SYS_FSOPEN = 430 - SYS_FSCONFIG = 431 - SYS_FSMOUNT = 432 - SYS_FSPICK = 433 - SYS_PIDFD_OPEN = 434 - SYS_CLOSE_RANGE = 436 - SYS_OPENAT2 = 437 - SYS_PIDFD_GETFD = 438 - SYS_FACCESSAT2 = 439 - SYS_PROCESS_MADVISE = 440 - SYS_EPOLL_PWAIT2 = 441 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 - SYS_OPEN_TREE_ATTR = 467 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go deleted file mode 100644 index b2aa8cd..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +++ /dev/null @@ -1,274 +0,0 @@ -// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && netbsd - -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_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - 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_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - 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_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - 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_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - 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_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_SETSID = 147 // { int|sys||setsid(void); } - 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go deleted file mode 100644 index 524a1b1..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +++ /dev/null @@ -1,274 +0,0 @@ -// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && netbsd - -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_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - 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_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - 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_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - 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_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - 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_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_SETSID = 147 // { int|sys||setsid(void); } - 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go deleted file mode 100644 index d59b943..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +++ /dev/null @@ -1,274 +0,0 @@ -// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && netbsd - -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_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - 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_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - 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_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - 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_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - 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_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_SETSID = 147 // { int|sys||setsid(void); } - 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go deleted file mode 100644 index 31e771d..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +++ /dev/null @@ -1,274 +0,0 @@ -// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master -// Code generated by the command above; DO NOT EDIT. - -//go:build arm64 && netbsd - -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_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - 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_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - 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_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - 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_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - 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_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_SETSID = 147 // { int|sys||setsid(void); } - 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go deleted file mode 100644 index 9fd77c6..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +++ /dev/null @@ -1,219 +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. - -//go:build 386 && openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - 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/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go deleted file mode 100644 index af10af2..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +++ /dev/null @@ -1,219 +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. - -//go:build amd64 && openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - 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/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go deleted file mode 100644 index cc2028a..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +++ /dev/null @@ -1,219 +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. - -//go:build arm && openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - 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/zsysnum_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go deleted file mode 100644 index c06dd44..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +++ /dev/null @@ -1,218 +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. - -//go:build arm64 && openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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/zsysnum_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go deleted file mode 100644 index 9ddbf3e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +++ /dev/null @@ -1,221 +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. - -//go:build mips64 && openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_MSYSCALL = 37 // { int sys_msyscall(void *addr, size_t len); } - 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___REALPATH = 115 // { int sys___realpath(const char *pathname, char *resolved); } - 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___TMPFD = 164 // { int sys___tmpfd(int flags); } - 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/zsysnum_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go deleted file mode 100644 index 19a6ee4..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.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. - -//go:build ppc64 && 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/zsysnum_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go deleted file mode 100644 index 05192a7..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +++ /dev/null @@ -1,218 +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. - -//go:build riscv64 && openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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/zsysnum_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go deleted file mode 100644 index 5e8c263..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +++ /dev/null @@ -1,2852 +0,0 @@ -// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build zos && s390x - -package unix - -const ( - SYS_LOG = 0x17 // 23 - SYS_COSH = 0x18 // 24 - SYS_TANH = 0x19 // 25 - SYS_EXP = 0x1A // 26 - SYS_MODF = 0x1B // 27 - SYS_LOG10 = 0x1C // 28 - SYS_FREXP = 0x1D // 29 - SYS_LDEXP = 0x1E // 30 - SYS_CEIL = 0x1F // 31 - SYS_POW = 0x20 // 32 - SYS_SQRT = 0x21 // 33 - SYS_FLOOR = 0x22 // 34 - SYS_J1 = 0x23 // 35 - SYS_FABS = 0x24 // 36 - SYS_FMOD = 0x25 // 37 - SYS_J0 = 0x26 // 38 - SYS_YN = 0x27 // 39 - SYS_JN = 0x28 // 40 - SYS_Y0 = 0x29 // 41 - SYS_Y1 = 0x2A // 42 - SYS_HYPOT = 0x2B // 43 - SYS_ERF = 0x2C // 44 - SYS_ERFC = 0x2D // 45 - SYS_GAMMA = 0x2E // 46 - SYS_ISALPHA = 0x30 // 48 - SYS_ISALNUM = 0x31 // 49 - SYS_ISLOWER = 0x32 // 50 - SYS_ISCNTRL = 0x33 // 51 - SYS_ISDIGIT = 0x34 // 52 - SYS_ISGRAPH = 0x35 // 53 - SYS_ISUPPER = 0x36 // 54 - SYS_ISPRINT = 0x37 // 55 - SYS_ISPUNCT = 0x38 // 56 - SYS_ISSPACE = 0x39 // 57 - SYS_SETLOCAL = 0x3A // 58 - SYS_SETLOCALE = 0x3A // 58 - SYS_ISXDIGIT = 0x3B // 59 - SYS_TOLOWER = 0x3C // 60 - SYS_TOUPPER = 0x3D // 61 - SYS_ASIN = 0x3E // 62 - SYS_SIN = 0x3F // 63 - SYS_COS = 0x40 // 64 - SYS_TAN = 0x41 // 65 - SYS_SINH = 0x42 // 66 - SYS_ACOS = 0x43 // 67 - SYS_ATAN = 0x44 // 68 - SYS_ATAN2 = 0x45 // 69 - SYS_FTELL = 0x46 // 70 - SYS_FGETPOS = 0x47 // 71 - SYS_FSEEK = 0x48 // 72 - SYS_FSETPOS = 0x49 // 73 - SYS_FERROR = 0x4A // 74 - SYS_REWIND = 0x4B // 75 - SYS_CLEARERR = 0x4C // 76 - SYS_FEOF = 0x4D // 77 - SYS_ATOL = 0x4E // 78 - SYS_PERROR = 0x4F // 79 - SYS_ATOF = 0x50 // 80 - SYS_ATOI = 0x51 // 81 - SYS_RAND = 0x52 // 82 - SYS_STRTOD = 0x53 // 83 - SYS_STRTOL = 0x54 // 84 - SYS_STRTOUL = 0x55 // 85 - SYS_MALLOC = 0x56 // 86 - SYS_SRAND = 0x57 // 87 - SYS_CALLOC = 0x58 // 88 - SYS_FREE = 0x59 // 89 - SYS_EXIT = 0x5A // 90 - SYS_REALLOC = 0x5B // 91 - SYS_ABORT = 0x5C // 92 - SYS___ABORT = 0x5C // 92 - SYS_ATEXIT = 0x5D // 93 - SYS_RAISE = 0x5E // 94 - SYS_SETJMP = 0x5F // 95 - SYS_LONGJMP = 0x60 // 96 - SYS_SIGNAL = 0x61 // 97 - SYS_TMPNAM = 0x62 // 98 - SYS_REMOVE = 0x63 // 99 - SYS_RENAME = 0x64 // 100 - SYS_TMPFILE = 0x65 // 101 - SYS_FREOPEN = 0x66 // 102 - SYS_FCLOSE = 0x67 // 103 - SYS_FFLUSH = 0x68 // 104 - SYS_FOPEN = 0x69 // 105 - SYS_FSCANF = 0x6A // 106 - SYS_SETBUF = 0x6B // 107 - SYS_SETVBUF = 0x6C // 108 - SYS_FPRINTF = 0x6D // 109 - SYS_SSCANF = 0x6E // 110 - SYS_PRINTF = 0x6F // 111 - SYS_SCANF = 0x70 // 112 - SYS_SPRINTF = 0x71 // 113 - SYS_FGETC = 0x72 // 114 - SYS_VFPRINTF = 0x73 // 115 - SYS_VPRINTF = 0x74 // 116 - SYS_VSPRINTF = 0x75 // 117 - SYS_GETC = 0x76 // 118 - SYS_FGETS = 0x77 // 119 - SYS_FPUTC = 0x78 // 120 - SYS_FPUTS = 0x79 // 121 - SYS_PUTCHAR = 0x7A // 122 - SYS_GETCHAR = 0x7B // 123 - SYS_GETS = 0x7C // 124 - SYS_PUTC = 0x7D // 125 - SYS_FWRITE = 0x7E // 126 - SYS_PUTS = 0x7F // 127 - SYS_UNGETC = 0x80 // 128 - SYS_FREAD = 0x81 // 129 - SYS_WCSTOMBS = 0x82 // 130 - SYS_MBTOWC = 0x83 // 131 - SYS_WCTOMB = 0x84 // 132 - SYS_MBSTOWCS = 0x85 // 133 - SYS_WCSCPY = 0x86 // 134 - SYS_WCSCAT = 0x87 // 135 - SYS_WCSCHR = 0x88 // 136 - SYS_WCSCMP = 0x89 // 137 - SYS_WCSNCMP = 0x8A // 138 - SYS_WCSCSPN = 0x8B // 139 - SYS_WCSLEN = 0x8C // 140 - SYS_WCSNCAT = 0x8D // 141 - SYS_WCSSPN = 0x8E // 142 - SYS_WCSNCPY = 0x8F // 143 - SYS_ABS = 0x90 // 144 - SYS_DIV = 0x91 // 145 - SYS_LABS = 0x92 // 146 - SYS_STRNCPY = 0x93 // 147 - SYS_MEMCPY = 0x94 // 148 - SYS_MEMMOVE = 0x95 // 149 - SYS_STRCPY = 0x96 // 150 - SYS_STRCMP = 0x97 // 151 - SYS_STRCAT = 0x98 // 152 - SYS_STRNCAT = 0x99 // 153 - SYS_MEMCMP = 0x9A // 154 - SYS_MEMCHR = 0x9B // 155 - SYS_STRCOLL = 0x9C // 156 - SYS_STRNCMP = 0x9D // 157 - SYS_STRXFRM = 0x9E // 158 - SYS_STRRCHR = 0x9F // 159 - SYS_STRCHR = 0xA0 // 160 - SYS_STRCSPN = 0xA1 // 161 - SYS_STRPBRK = 0xA2 // 162 - SYS_MEMSET = 0xA3 // 163 - SYS_STRSPN = 0xA4 // 164 - SYS_STRSTR = 0xA5 // 165 - SYS_STRTOK = 0xA6 // 166 - SYS_DIFFTIME = 0xA7 // 167 - SYS_STRERROR = 0xA8 // 168 - SYS_STRLEN = 0xA9 // 169 - SYS_CLOCK = 0xAA // 170 - SYS_CTIME = 0xAB // 171 - SYS_MKTIME = 0xAC // 172 - SYS_TIME = 0xAD // 173 - SYS_ASCTIME = 0xAE // 174 - SYS_MBLEN = 0xAF // 175 - SYS_GMTIME = 0xB0 // 176 - SYS_LOCALTIM = 0xB1 // 177 - SYS_LOCALTIME = 0xB1 // 177 - SYS_STRFTIME = 0xB2 // 178 - SYS___GETCB = 0xB4 // 180 - SYS_FUPDATE = 0xB5 // 181 - SYS___FUPDT = 0xB5 // 181 - SYS_CLRMEMF = 0xBD // 189 - SYS___CLRMF = 0xBD // 189 - SYS_FETCHEP = 0xBF // 191 - SYS___FTCHEP = 0xBF // 191 - SYS_FLDATA = 0xC1 // 193 - SYS___FLDATA = 0xC1 // 193 - SYS_DYNFREE = 0xC2 // 194 - SYS___DYNFRE = 0xC2 // 194 - SYS_DYNALLOC = 0xC3 // 195 - SYS___DYNALL = 0xC3 // 195 - SYS___CDUMP = 0xC4 // 196 - SYS_CSNAP = 0xC5 // 197 - SYS___CSNAP = 0xC5 // 197 - SYS_CTRACE = 0xC6 // 198 - SYS___CTRACE = 0xC6 // 198 - SYS___CTEST = 0xC7 // 199 - SYS_SETENV = 0xC8 // 200 - SYS___SETENV = 0xC8 // 200 - SYS_CLEARENV = 0xC9 // 201 - SYS___CLRENV = 0xC9 // 201 - SYS___REGCOMP_STD = 0xEA // 234 - SYS_NL_LANGINFO = 0xFC // 252 - SYS_GETSYNTX = 0xFD // 253 - SYS_ISBLANK = 0xFE // 254 - SYS___ISBLNK = 0xFE // 254 - SYS_ISWALNUM = 0xFF // 255 - SYS_ISWALPHA = 0x100 // 256 - SYS_ISWBLANK = 0x101 // 257 - SYS___ISWBLK = 0x101 // 257 - SYS_ISWCNTRL = 0x102 // 258 - SYS_ISWDIGIT = 0x103 // 259 - SYS_ISWGRAPH = 0x104 // 260 - SYS_ISWLOWER = 0x105 // 261 - SYS_ISWPRINT = 0x106 // 262 - SYS_ISWPUNCT = 0x107 // 263 - SYS_ISWSPACE = 0x108 // 264 - SYS_ISWUPPER = 0x109 // 265 - SYS_ISWXDIGI = 0x10A // 266 - SYS_ISWXDIGIT = 0x10A // 266 - SYS_WCTYPE = 0x10B // 267 - SYS_ISWCTYPE = 0x10C // 268 - SYS_TOWLOWER = 0x10D // 269 - SYS_TOWUPPER = 0x10E // 270 - SYS_MBSINIT = 0x10F // 271 - SYS_WCTOB = 0x110 // 272 - SYS_MBRLEN = 0x111 // 273 - SYS_MBRTOWC = 0x112 // 274 - SYS_MBSRTOWC = 0x113 // 275 - SYS_MBSRTOWCS = 0x113 // 275 - SYS_WCRTOMB = 0x114 // 276 - SYS_WCSRTOMB = 0x115 // 277 - SYS_WCSRTOMBS = 0x115 // 277 - SYS___CSID = 0x116 // 278 - SYS___WCSID = 0x117 // 279 - SYS_STRPTIME = 0x118 // 280 - SYS___STRPTM = 0x118 // 280 - SYS_STRFMON = 0x119 // 281 - SYS___RPMTCH = 0x11A // 282 - SYS_WCSSTR = 0x11B // 283 - SYS_WCSTOK = 0x12C // 300 - SYS_WCSTOL = 0x12D // 301 - SYS_WCSTOD = 0x12E // 302 - SYS_WCSTOUL = 0x12F // 303 - SYS_WCSCOLL = 0x130 // 304 - SYS_WCSXFRM = 0x131 // 305 - SYS_WCSWIDTH = 0x132 // 306 - SYS_WCWIDTH = 0x133 // 307 - SYS_WCSFTIME = 0x134 // 308 - SYS_SWPRINTF = 0x135 // 309 - SYS_VSWPRINT = 0x136 // 310 - SYS_VSWPRINTF = 0x136 // 310 - SYS_SWSCANF = 0x137 // 311 - SYS_REGCOMP = 0x138 // 312 - SYS_REGEXEC = 0x139 // 313 - SYS_REGFREE = 0x13A // 314 - SYS_REGERROR = 0x13B // 315 - SYS_FGETWC = 0x13C // 316 - SYS_FGETWS = 0x13D // 317 - SYS_FPUTWC = 0x13E // 318 - SYS_FPUTWS = 0x13F // 319 - SYS_GETWC = 0x140 // 320 - SYS_GETWCHAR = 0x141 // 321 - SYS_PUTWC = 0x142 // 322 - SYS_PUTWCHAR = 0x143 // 323 - SYS_UNGETWC = 0x144 // 324 - SYS_ICONV_OPEN = 0x145 // 325 - SYS_ICONV = 0x146 // 326 - SYS_ICONV_CLOSE = 0x147 // 327 - SYS_ISMCCOLLEL = 0x14C // 332 - SYS_STRTOCOLL = 0x14D // 333 - SYS_COLLTOSTR = 0x14E // 334 - SYS_COLLEQUIV = 0x14F // 335 - SYS_COLLRANGE = 0x150 // 336 - SYS_CCLASS = 0x151 // 337 - SYS_COLLORDER = 0x152 // 338 - SYS___DEMANGLE = 0x154 // 340 - SYS_FDOPEN = 0x155 // 341 - SYS___ERRNO = 0x156 // 342 - SYS___ERRNO2 = 0x157 // 343 - SYS___TERROR = 0x158 // 344 - SYS_MAXCOLL = 0x169 // 361 - SYS_GETMCCOLL = 0x16A // 362 - SYS_GETWMCCOLL = 0x16B // 363 - SYS___ERR2AD = 0x16C // 364 - SYS_DLLQUERYFN = 0x16D // 365 - SYS_DLLQUERYVAR = 0x16E // 366 - SYS_DLLFREE = 0x16F // 367 - SYS_DLLLOAD = 0x170 // 368 - SYS__EXIT = 0x174 // 372 - SYS_ACCESS = 0x175 // 373 - SYS_ALARM = 0x176 // 374 - SYS_CFGETISPEED = 0x177 // 375 - SYS_CFGETOSPEED = 0x178 // 376 - SYS_CFSETISPEED = 0x179 // 377 - SYS_CFSETOSPEED = 0x17A // 378 - SYS_CHDIR = 0x17B // 379 - SYS_CHMOD = 0x17C // 380 - SYS_CHOWN = 0x17D // 381 - SYS_CLOSE = 0x17E // 382 - SYS_CLOSEDIR = 0x17F // 383 - SYS_CREAT = 0x180 // 384 - SYS_CTERMID = 0x181 // 385 - SYS_DUP = 0x182 // 386 - SYS_DUP2 = 0x183 // 387 - SYS_EXECL = 0x184 // 388 - SYS_EXECLE = 0x185 // 389 - SYS_EXECLP = 0x186 // 390 - SYS_EXECV = 0x187 // 391 - SYS_EXECVE = 0x188 // 392 - SYS_EXECVP = 0x189 // 393 - SYS_FCHMOD = 0x18A // 394 - SYS_FCHOWN = 0x18B // 395 - SYS_FCNTL = 0x18C // 396 - SYS_FILENO = 0x18D // 397 - SYS_FORK = 0x18E // 398 - SYS_FPATHCONF = 0x18F // 399 - SYS_FSTAT = 0x190 // 400 - SYS_FSYNC = 0x191 // 401 - SYS_FTRUNCATE = 0x192 // 402 - SYS_GETCWD = 0x193 // 403 - SYS_GETEGID = 0x194 // 404 - SYS_GETEUID = 0x195 // 405 - SYS_GETGID = 0x196 // 406 - SYS_GETGRGID = 0x197 // 407 - SYS_GETGRNAM = 0x198 // 408 - SYS_GETGROUPS = 0x199 // 409 - SYS_GETLOGIN = 0x19A // 410 - SYS_W_GETMNTENT = 0x19B // 411 - SYS_GETPGRP = 0x19C // 412 - SYS_GETPID = 0x19D // 413 - SYS_GETPPID = 0x19E // 414 - SYS_GETPWNAM = 0x19F // 415 - SYS_GETPWUID = 0x1A0 // 416 - SYS_GETUID = 0x1A1 // 417 - SYS_W_IOCTL = 0x1A2 // 418 - SYS_ISATTY = 0x1A3 // 419 - SYS_KILL = 0x1A4 // 420 - SYS_LINK = 0x1A5 // 421 - SYS_LSEEK = 0x1A6 // 422 - SYS_LSTAT = 0x1A7 // 423 - SYS_MKDIR = 0x1A8 // 424 - SYS_MKFIFO = 0x1A9 // 425 - SYS_MKNOD = 0x1AA // 426 - SYS_MOUNT = 0x1AB // 427 - SYS_OPEN = 0x1AC // 428 - SYS_OPENDIR = 0x1AD // 429 - SYS_PATHCONF = 0x1AE // 430 - SYS_PAUSE = 0x1AF // 431 - SYS_PIPE = 0x1B0 // 432 - SYS_W_GETPSENT = 0x1B1 // 433 - SYS_READ = 0x1B2 // 434 - SYS_READDIR = 0x1B3 // 435 - SYS_READLINK = 0x1B4 // 436 - SYS_REWINDDIR = 0x1B5 // 437 - SYS_RMDIR = 0x1B6 // 438 - SYS_SETEGID = 0x1B7 // 439 - SYS_SETEUID = 0x1B8 // 440 - SYS_SETGID = 0x1B9 // 441 - SYS_SETPGID = 0x1BA // 442 - SYS_SETSID = 0x1BB // 443 - SYS_SETUID = 0x1BC // 444 - SYS_SIGACTION = 0x1BD // 445 - SYS_SIGADDSET = 0x1BE // 446 - SYS_SIGDELSET = 0x1BF // 447 - SYS_SIGEMPTYSET = 0x1C0 // 448 - SYS_SIGFILLSET = 0x1C1 // 449 - SYS_SIGISMEMBER = 0x1C2 // 450 - SYS_SIGLONGJMP = 0x1C3 // 451 - SYS_SIGPENDING = 0x1C4 // 452 - SYS_SIGPROCMASK = 0x1C5 // 453 - SYS_SIGSETJMP = 0x1C6 // 454 - SYS_SIGSUSPEND = 0x1C7 // 455 - SYS_SLEEP = 0x1C8 // 456 - SYS_STAT = 0x1C9 // 457 - SYS_W_STATFS = 0x1CA // 458 - SYS_SYMLINK = 0x1CB // 459 - SYS_SYSCONF = 0x1CC // 460 - SYS_TCDRAIN = 0x1CD // 461 - SYS_TCFLOW = 0x1CE // 462 - SYS_TCFLUSH = 0x1CF // 463 - SYS_TCGETATTR = 0x1D0 // 464 - SYS_TCGETPGRP = 0x1D1 // 465 - SYS_TCSENDBREAK = 0x1D2 // 466 - SYS_TCSETATTR = 0x1D3 // 467 - SYS_TCSETPGRP = 0x1D4 // 468 - SYS_TIMES = 0x1D5 // 469 - SYS_TTYNAME = 0x1D6 // 470 - SYS_TZSET = 0x1D7 // 471 - SYS_UMASK = 0x1D8 // 472 - SYS_UMOUNT = 0x1D9 // 473 - SYS_UNAME = 0x1DA // 474 - SYS_UNLINK = 0x1DB // 475 - SYS_UTIME = 0x1DC // 476 - SYS_WAIT = 0x1DD // 477 - SYS_WAITPID = 0x1DE // 478 - SYS_WRITE = 0x1DF // 479 - SYS_CHAUDIT = 0x1E0 // 480 - SYS_FCHAUDIT = 0x1E1 // 481 - SYS_GETGROUPSBYNAME = 0x1E2 // 482 - SYS_SIGWAIT = 0x1E3 // 483 - SYS_PTHREAD_EXIT = 0x1E4 // 484 - SYS_PTHREAD_KILL = 0x1E5 // 485 - SYS_PTHREAD_ATTR_INIT = 0x1E6 // 486 - SYS_PTHREAD_ATTR_DESTROY = 0x1E7 // 487 - SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 // 488 - SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 // 489 - SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA // 490 - SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB // 491 - SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC // 492 - SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED // 493 - SYS_PTHREAD_CANCEL = 0x1EE // 494 - SYS_PTHREAD_CLEANUP_PUSH = 0x1EF // 495 - SYS_PTHREAD_CLEANUP_POP = 0x1F0 // 496 - SYS_PTHREAD_CONDATTR_INIT = 0x1F1 // 497 - SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 // 498 - SYS_PTHREAD_COND_INIT = 0x1F3 // 499 - SYS_PTHREAD_COND_DESTROY = 0x1F4 // 500 - SYS_PTHREAD_COND_SIGNAL = 0x1F5 // 501 - SYS_PTHREAD_COND_BROADCAST = 0x1F6 // 502 - SYS_PTHREAD_COND_WAIT = 0x1F7 // 503 - SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 // 504 - SYS_PTHREAD_CREATE = 0x1F9 // 505 - SYS_PTHREAD_DETACH = 0x1FA // 506 - SYS_PTHREAD_EQUAL = 0x1FB // 507 - SYS_PTHREAD_GETSPECIFIC = 0x1FC // 508 - SYS_PTHREAD_JOIN = 0x1FD // 509 - SYS_PTHREAD_KEY_CREATE = 0x1FE // 510 - SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF // 511 - SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 // 512 - SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 // 513 - SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 // 514 - SYS_PTHREAD_MUTEX_INIT = 0x203 // 515 - SYS_PTHREAD_MUTEX_DESTROY = 0x204 // 516 - SYS_PTHREAD_MUTEX_LOCK = 0x205 // 517 - SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 // 518 - SYS_PTHREAD_MUTEX_UNLOCK = 0x207 // 519 - SYS_PTHREAD_ONCE = 0x209 // 521 - SYS_PTHREAD_SELF = 0x20A // 522 - SYS_PTHREAD_SETINTR = 0x20B // 523 - SYS_PTHREAD_SETINTRTYPE = 0x20C // 524 - SYS_PTHREAD_SETSPECIFIC = 0x20D // 525 - SYS_PTHREAD_TESTINTR = 0x20E // 526 - SYS_PTHREAD_YIELD = 0x20F // 527 - SYS_TW_OPEN = 0x210 // 528 - SYS_TW_FCNTL = 0x211 // 529 - SYS_PTHREAD_JOIN_D4_NP = 0x212 // 530 - SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 // 531 - SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 // 532 - SYS_EXTLINK_NP = 0x215 // 533 - SYS___PASSWD = 0x216 // 534 - SYS_SETGROUPS = 0x217 // 535 - SYS_INITGROUPS = 0x218 // 536 - SYS_WCSPBRK = 0x23F // 575 - SYS_WCSRCHR = 0x240 // 576 - SYS_SVC99 = 0x241 // 577 - SYS___SVC99 = 0x241 // 577 - SYS_WCSWCS = 0x242 // 578 - SYS_LOCALECO = 0x243 // 579 - SYS_LOCALECONV = 0x243 // 579 - SYS___LIBREL = 0x244 // 580 - SYS_RELEASE = 0x245 // 581 - SYS___RLSE = 0x245 // 581 - SYS_FLOCATE = 0x246 // 582 - SYS___FLOCT = 0x246 // 582 - SYS_FDELREC = 0x247 // 583 - SYS___FDLREC = 0x247 // 583 - SYS_FETCH = 0x248 // 584 - SYS___FETCH = 0x248 // 584 - SYS_QSORT = 0x249 // 585 - SYS_GETENV = 0x24A // 586 - SYS_SYSTEM = 0x24B // 587 - SYS_BSEARCH = 0x24C // 588 - SYS_LDIV = 0x24D // 589 - SYS___THROW = 0x25E // 606 - SYS___RETHROW = 0x25F // 607 - SYS___CLEANUPCATCH = 0x260 // 608 - SYS___CATCHMATCH = 0x261 // 609 - SYS___CLEAN2UPCATCH = 0x262 // 610 - SYS_PUTENV = 0x26A // 618 - SYS___GETENV = 0x26F // 623 - SYS_GETPRIORITY = 0x270 // 624 - SYS_NICE = 0x271 // 625 - SYS_SETPRIORITY = 0x272 // 626 - SYS_GETITIMER = 0x273 // 627 - SYS_SETITIMER = 0x274 // 628 - SYS_MSGCTL = 0x275 // 629 - SYS_MSGGET = 0x276 // 630 - SYS_MSGRCV = 0x277 // 631 - SYS_MSGSND = 0x278 // 632 - SYS_MSGXRCV = 0x279 // 633 - SYS___MSGXR = 0x279 // 633 - SYS_SEMCTL = 0x27A // 634 - SYS_SEMGET = 0x27B // 635 - SYS_SEMOP = 0x27C // 636 - SYS_SHMAT = 0x27D // 637 - SYS_SHMCTL = 0x27E // 638 - SYS_SHMDT = 0x27F // 639 - SYS_SHMGET = 0x280 // 640 - SYS___GETIPC = 0x281 // 641 - SYS_SETGRENT = 0x282 // 642 - SYS_GETGRENT = 0x283 // 643 - SYS_ENDGRENT = 0x284 // 644 - SYS_SETPWENT = 0x285 // 645 - SYS_GETPWENT = 0x286 // 646 - SYS_ENDPWENT = 0x287 // 647 - SYS_BSD_SIGNAL = 0x288 // 648 - SYS_KILLPG = 0x289 // 649 - SYS_SIGALTSTACK = 0x28A // 650 - SYS_SIGHOLD = 0x28B // 651 - SYS_SIGIGNORE = 0x28C // 652 - SYS_SIGINTERRUPT = 0x28D // 653 - SYS_SIGPAUSE = 0x28E // 654 - SYS_SIGRELSE = 0x28F // 655 - SYS_SIGSET = 0x290 // 656 - SYS_SIGSTACK = 0x291 // 657 - SYS_GETRLIMIT = 0x292 // 658 - SYS_SETRLIMIT = 0x293 // 659 - SYS_GETRUSAGE = 0x294 // 660 - SYS_MMAP = 0x295 // 661 - SYS_MPROTECT = 0x296 // 662 - SYS_MSYNC = 0x297 // 663 - SYS_MUNMAP = 0x298 // 664 - SYS_CONFSTR = 0x299 // 665 - SYS_GETOPT = 0x29A // 666 - SYS_LCHOWN = 0x29B // 667 - SYS_TRUNCATE = 0x29C // 668 - SYS_GETSUBOPT = 0x29D // 669 - SYS_SETPGRP = 0x29E // 670 - SYS___GDERR = 0x29F // 671 - SYS___TZONE = 0x2A0 // 672 - SYS___DLGHT = 0x2A1 // 673 - SYS___OPARGF = 0x2A2 // 674 - SYS___OPOPTF = 0x2A3 // 675 - SYS___OPINDF = 0x2A4 // 676 - SYS___OPERRF = 0x2A5 // 677 - SYS_GETDATE = 0x2A6 // 678 - SYS_WAIT3 = 0x2A7 // 679 - SYS_WAITID = 0x2A8 // 680 - SYS___CATTRM = 0x2A9 // 681 - SYS___GDTRM = 0x2AA // 682 - SYS___RNDTRM = 0x2AB // 683 - SYS_CRYPT = 0x2AC // 684 - SYS_ENCRYPT = 0x2AD // 685 - SYS_SETKEY = 0x2AE // 686 - SYS___CNVBLK = 0x2AF // 687 - SYS___CRYTRM = 0x2B0 // 688 - SYS___ECRTRM = 0x2B1 // 689 - SYS_DRAND48 = 0x2B2 // 690 - SYS_ERAND48 = 0x2B3 // 691 - SYS_FSTATVFS = 0x2B4 // 692 - SYS_STATVFS = 0x2B5 // 693 - SYS_CATCLOSE = 0x2B6 // 694 - SYS_CATGETS = 0x2B7 // 695 - SYS_CATOPEN = 0x2B8 // 696 - SYS_BCMP = 0x2B9 // 697 - SYS_BCOPY = 0x2BA // 698 - SYS_BZERO = 0x2BB // 699 - SYS_FFS = 0x2BC // 700 - SYS_INDEX = 0x2BD // 701 - SYS_RINDEX = 0x2BE // 702 - SYS_STRCASECMP = 0x2BF // 703 - SYS_STRDUP = 0x2C0 // 704 - SYS_STRNCASECMP = 0x2C1 // 705 - SYS_INITSTATE = 0x2C2 // 706 - SYS_SETSTATE = 0x2C3 // 707 - SYS_RANDOM = 0x2C4 // 708 - SYS_SRANDOM = 0x2C5 // 709 - SYS_HCREATE = 0x2C6 // 710 - SYS_HDESTROY = 0x2C7 // 711 - SYS_HSEARCH = 0x2C8 // 712 - SYS_LFIND = 0x2C9 // 713 - SYS_LSEARCH = 0x2CA // 714 - SYS_TDELETE = 0x2CB // 715 - SYS_TFIND = 0x2CC // 716 - SYS_TSEARCH = 0x2CD // 717 - SYS_TWALK = 0x2CE // 718 - SYS_INSQUE = 0x2CF // 719 - SYS_REMQUE = 0x2D0 // 720 - SYS_POPEN = 0x2D1 // 721 - SYS_PCLOSE = 0x2D2 // 722 - SYS_SWAB = 0x2D3 // 723 - SYS_MEMCCPY = 0x2D4 // 724 - SYS_GETPAGESIZE = 0x2D8 // 728 - SYS_FCHDIR = 0x2D9 // 729 - SYS___OCLCK = 0x2DA // 730 - SYS___ATOE = 0x2DB // 731 - SYS___ATOE_L = 0x2DC // 732 - SYS___ETOA = 0x2DD // 733 - SYS___ETOA_L = 0x2DE // 734 - SYS_SETUTXENT = 0x2DF // 735 - SYS_GETUTXENT = 0x2E0 // 736 - SYS_ENDUTXENT = 0x2E1 // 737 - SYS_GETUTXID = 0x2E2 // 738 - SYS_GETUTXLINE = 0x2E3 // 739 - SYS_PUTUTXLINE = 0x2E4 // 740 - SYS_FMTMSG = 0x2E5 // 741 - SYS_JRAND48 = 0x2E6 // 742 - SYS_LRAND48 = 0x2E7 // 743 - SYS_MRAND48 = 0x2E8 // 744 - SYS_NRAND48 = 0x2E9 // 745 - SYS_LCONG48 = 0x2EA // 746 - SYS_SRAND48 = 0x2EB // 747 - SYS_SEED48 = 0x2EC // 748 - SYS_ISASCII = 0x2ED // 749 - SYS_TOASCII = 0x2EE // 750 - SYS_A64L = 0x2EF // 751 - SYS_L64A = 0x2F0 // 752 - SYS_UALARM = 0x2F1 // 753 - SYS_USLEEP = 0x2F2 // 754 - SYS___UTXTRM = 0x2F3 // 755 - SYS___SRCTRM = 0x2F4 // 756 - SYS_FTIME = 0x2F5 // 757 - SYS_GETTIMEOFDAY = 0x2F6 // 758 - SYS_DBM_CLEARERR = 0x2F7 // 759 - SYS_DBM_CLOSE = 0x2F8 // 760 - SYS_DBM_DELETE = 0x2F9 // 761 - SYS_DBM_ERROR = 0x2FA // 762 - SYS_DBM_FETCH = 0x2FB // 763 - SYS_DBM_FIRSTKEY = 0x2FC // 764 - SYS_DBM_NEXTKEY = 0x2FD // 765 - SYS_DBM_OPEN = 0x2FE // 766 - SYS_DBM_STORE = 0x2FF // 767 - SYS___NDMTRM = 0x300 // 768 - SYS_FTOK = 0x301 // 769 - SYS_BASENAME = 0x302 // 770 - SYS_DIRNAME = 0x303 // 771 - SYS_GETDTABLESIZE = 0x304 // 772 - SYS_MKSTEMP = 0x305 // 773 - SYS_MKTEMP = 0x306 // 774 - SYS_NFTW = 0x307 // 775 - SYS_GETWD = 0x308 // 776 - SYS_LOCKF = 0x309 // 777 - SYS__LONGJMP = 0x30D // 781 - SYS__SETJMP = 0x30E // 782 - SYS_VFORK = 0x30F // 783 - SYS_WORDEXP = 0x310 // 784 - SYS_WORDFREE = 0x311 // 785 - SYS_GETPGID = 0x312 // 786 - SYS_GETSID = 0x313 // 787 - SYS___UTMPXNAME = 0x314 // 788 - SYS_CUSERID = 0x315 // 789 - SYS_GETPASS = 0x316 // 790 - SYS_FNMATCH = 0x317 // 791 - SYS_FTW = 0x318 // 792 - SYS_GETW = 0x319 // 793 - SYS_GLOB = 0x31A // 794 - SYS_GLOBFREE = 0x31B // 795 - SYS_PUTW = 0x31C // 796 - SYS_SEEKDIR = 0x31D // 797 - SYS_TELLDIR = 0x31E // 798 - SYS_TEMPNAM = 0x31F // 799 - SYS_ACOSH = 0x320 // 800 - SYS_ASINH = 0x321 // 801 - SYS_ATANH = 0x322 // 802 - SYS_CBRT = 0x323 // 803 - SYS_EXPM1 = 0x324 // 804 - SYS_ILOGB = 0x325 // 805 - SYS_LOGB = 0x326 // 806 - SYS_LOG1P = 0x327 // 807 - SYS_NEXTAFTER = 0x328 // 808 - SYS_RINT = 0x329 // 809 - SYS_REMAINDER = 0x32A // 810 - SYS_SCALB = 0x32B // 811 - SYS_LGAMMA = 0x32C // 812 - SYS_TTYSLOT = 0x32D // 813 - SYS_GETTIMEOFDAY_R = 0x32E // 814 - SYS_SYNC = 0x32F // 815 - SYS_SPAWN = 0x330 // 816 - SYS_SPAWNP = 0x331 // 817 - SYS_GETLOGIN_UU = 0x332 // 818 - SYS_ECVT = 0x333 // 819 - SYS_FCVT = 0x334 // 820 - SYS_GCVT = 0x335 // 821 - SYS_ACCEPT = 0x336 // 822 - SYS_BIND = 0x337 // 823 - SYS_CONNECT = 0x338 // 824 - SYS_ENDHOSTENT = 0x339 // 825 - SYS_ENDPROTOENT = 0x33A // 826 - SYS_ENDSERVENT = 0x33B // 827 - SYS_GETHOSTBYADDR_R = 0x33C // 828 - SYS_GETHOSTBYADDR = 0x33D // 829 - SYS_GETHOSTBYNAME_R = 0x33E // 830 - SYS_GETHOSTBYNAME = 0x33F // 831 - SYS_GETHOSTENT = 0x340 // 832 - SYS_GETHOSTID = 0x341 // 833 - SYS_GETHOSTNAME = 0x342 // 834 - SYS_GETNETBYADDR = 0x343 // 835 - SYS_GETNETBYNAME = 0x344 // 836 - SYS_GETNETENT = 0x345 // 837 - SYS_GETPEERNAME = 0x346 // 838 - SYS_GETPROTOBYNAME = 0x347 // 839 - SYS_GETPROTOBYNUMBER = 0x348 // 840 - SYS_GETPROTOENT = 0x349 // 841 - SYS_GETSERVBYNAME = 0x34A // 842 - SYS_GETSERVBYPORT = 0x34B // 843 - SYS_GETSERVENT = 0x34C // 844 - SYS_GETSOCKNAME = 0x34D // 845 - SYS_GETSOCKOPT = 0x34E // 846 - SYS_INET_ADDR = 0x34F // 847 - SYS_INET_LNAOF = 0x350 // 848 - SYS_INET_MAKEADDR = 0x351 // 849 - SYS_INET_NETOF = 0x352 // 850 - SYS_INET_NETWORK = 0x353 // 851 - SYS_INET_NTOA = 0x354 // 852 - SYS_IOCTL = 0x355 // 853 - SYS_LISTEN = 0x356 // 854 - SYS_READV = 0x357 // 855 - SYS_RECV = 0x358 // 856 - SYS_RECVFROM = 0x359 // 857 - SYS_SELECT = 0x35B // 859 - SYS_SELECTEX = 0x35C // 860 - SYS_SEND = 0x35D // 861 - SYS_SENDTO = 0x35F // 863 - SYS_SETHOSTENT = 0x360 // 864 - SYS_SETNETENT = 0x361 // 865 - SYS_SETPEER = 0x362 // 866 - SYS_SETPROTOENT = 0x363 // 867 - SYS_SETSERVENT = 0x364 // 868 - SYS_SETSOCKOPT = 0x365 // 869 - SYS_SHUTDOWN = 0x366 // 870 - SYS_SOCKET = 0x367 // 871 - SYS_SOCKETPAIR = 0x368 // 872 - SYS_WRITEV = 0x369 // 873 - SYS_CHROOT = 0x36A // 874 - SYS_W_STATVFS = 0x36B // 875 - SYS_ULIMIT = 0x36C // 876 - SYS_ISNAN = 0x36D // 877 - SYS_UTIMES = 0x36E // 878 - SYS___H_ERRNO = 0x36F // 879 - SYS_ENDNETENT = 0x370 // 880 - SYS_CLOSELOG = 0x371 // 881 - SYS_OPENLOG = 0x372 // 882 - SYS_SETLOGMASK = 0x373 // 883 - SYS_SYSLOG = 0x374 // 884 - SYS_PTSNAME = 0x375 // 885 - SYS_SETREUID = 0x376 // 886 - SYS_SETREGID = 0x377 // 887 - SYS_REALPATH = 0x378 // 888 - SYS___SIGNGAM = 0x379 // 889 - SYS_GRANTPT = 0x37A // 890 - SYS_UNLOCKPT = 0x37B // 891 - SYS_TCGETSID = 0x37C // 892 - SYS___TCGETCP = 0x37D // 893 - SYS___TCSETCP = 0x37E // 894 - SYS___TCSETTABLES = 0x37F // 895 - SYS_POLL = 0x380 // 896 - SYS_REXEC = 0x381 // 897 - SYS___ISASCII2 = 0x382 // 898 - SYS___TOASCII2 = 0x383 // 899 - SYS_CHPRIORITY = 0x384 // 900 - SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 // 901 - SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 // 902 - SYS_PTHREAD_SET_LIMIT_NP = 0x387 // 903 - SYS___STNETENT = 0x388 // 904 - SYS___STPROTOENT = 0x389 // 905 - SYS___STSERVENT = 0x38A // 906 - SYS___STHOSTENT = 0x38B // 907 - SYS_NLIST = 0x38C // 908 - SYS___IPDBCS = 0x38D // 909 - SYS___IPDSPX = 0x38E // 910 - SYS___IPMSGC = 0x38F // 911 - SYS___SELECT1 = 0x390 // 912 - SYS_PTHREAD_SECURITY_NP = 0x391 // 913 - SYS___CHECK_RESOURCE_AUTH_NP = 0x392 // 914 - SYS___CONVERT_ID_NP = 0x393 // 915 - SYS___OPENVMREL = 0x394 // 916 - SYS_WMEMCHR = 0x395 // 917 - SYS_WMEMCMP = 0x396 // 918 - SYS_WMEMCPY = 0x397 // 919 - SYS_WMEMMOVE = 0x398 // 920 - SYS_WMEMSET = 0x399 // 921 - SYS___FPUTWC = 0x400 // 1024 - SYS___PUTWC = 0x401 // 1025 - SYS___PWCHAR = 0x402 // 1026 - SYS___WCSFTM = 0x403 // 1027 - SYS___WCSTOK = 0x404 // 1028 - SYS___WCWDTH = 0x405 // 1029 - SYS_T_ACCEPT = 0x409 // 1033 - SYS_T_ALLOC = 0x40A // 1034 - SYS_T_BIND = 0x40B // 1035 - SYS_T_CLOSE = 0x40C // 1036 - SYS_T_CONNECT = 0x40D // 1037 - SYS_T_ERROR = 0x40E // 1038 - SYS_T_FREE = 0x40F // 1039 - SYS_T_GETINFO = 0x410 // 1040 - SYS_T_GETPROTADDR = 0x411 // 1041 - SYS_T_GETSTATE = 0x412 // 1042 - SYS_T_LISTEN = 0x413 // 1043 - SYS_T_LOOK = 0x414 // 1044 - SYS_T_OPEN = 0x415 // 1045 - SYS_T_OPTMGMT = 0x416 // 1046 - SYS_T_RCV = 0x417 // 1047 - SYS_T_RCVCONNECT = 0x418 // 1048 - SYS_T_RCVDIS = 0x419 // 1049 - SYS_T_RCVREL = 0x41A // 1050 - SYS_T_RCVUDATA = 0x41B // 1051 - SYS_T_RCVUDERR = 0x41C // 1052 - SYS_T_SND = 0x41D // 1053 - SYS_T_SNDDIS = 0x41E // 1054 - SYS_T_SNDREL = 0x41F // 1055 - SYS_T_SNDUDATA = 0x420 // 1056 - SYS_T_STRERROR = 0x421 // 1057 - SYS_T_SYNC = 0x422 // 1058 - SYS_T_UNBIND = 0x423 // 1059 - SYS___T_ERRNO = 0x424 // 1060 - SYS___RECVMSG2 = 0x425 // 1061 - SYS___SENDMSG2 = 0x426 // 1062 - SYS_FATTACH = 0x427 // 1063 - SYS_FDETACH = 0x428 // 1064 - SYS_GETMSG = 0x429 // 1065 - SYS_GETPMSG = 0x42A // 1066 - SYS_ISASTREAM = 0x42B // 1067 - SYS_PUTMSG = 0x42C // 1068 - SYS_PUTPMSG = 0x42D // 1069 - SYS___ISPOSIXON = 0x42E // 1070 - SYS___OPENMVSREL = 0x42F // 1071 - SYS_GETCONTEXT = 0x430 // 1072 - SYS_SETCONTEXT = 0x431 // 1073 - SYS_MAKECONTEXT = 0x432 // 1074 - SYS_SWAPCONTEXT = 0x433 // 1075 - SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 // 1076 - SYS_GETCLIENTID = 0x470 // 1136 - SYS___GETCLIENTID = 0x471 // 1137 - SYS_GETSTABLESIZE = 0x472 // 1138 - SYS_GETIBMOPT = 0x473 // 1139 - SYS_GETIBMSOCKOPT = 0x474 // 1140 - SYS_GIVESOCKET = 0x475 // 1141 - SYS_IBMSFLUSH = 0x476 // 1142 - SYS_MAXDESC = 0x477 // 1143 - SYS_SETIBMOPT = 0x478 // 1144 - SYS_SETIBMSOCKOPT = 0x479 // 1145 - SYS_SOCK_DEBUG = 0x47A // 1146 - SYS_SOCK_DO_TESTSTOR = 0x47D // 1149 - SYS_TAKESOCKET = 0x47E // 1150 - SYS___SERVER_INIT = 0x47F // 1151 - SYS___SERVER_PWU = 0x480 // 1152 - SYS_PTHREAD_TAG_NP = 0x481 // 1153 - SYS___CONSOLE = 0x482 // 1154 - SYS___WSINIT = 0x483 // 1155 - SYS___IPTCPN = 0x489 // 1161 - SYS___SMF_RECORD = 0x48A // 1162 - SYS___IPHOST = 0x48B // 1163 - SYS___IPNODE = 0x48C // 1164 - SYS___SERVER_CLASSIFY_CREATE = 0x48D // 1165 - SYS___SERVER_CLASSIFY_DESTROY = 0x48E // 1166 - SYS___SERVER_CLASSIFY_RESET = 0x48F // 1167 - SYS___SERVER_CLASSIFY = 0x490 // 1168 - SYS___HEAPRPT = 0x496 // 1174 - SYS___FNWSA = 0x49B // 1179 - SYS___SPAWN2 = 0x49D // 1181 - SYS___SPAWNP2 = 0x49E // 1182 - SYS___GDRR = 0x4A1 // 1185 - SYS___HRRNO = 0x4A2 // 1186 - SYS___OPRG = 0x4A3 // 1187 - SYS___OPRR = 0x4A4 // 1188 - SYS___OPND = 0x4A5 // 1189 - SYS___OPPT = 0x4A6 // 1190 - SYS___SIGGM = 0x4A7 // 1191 - SYS___DGHT = 0x4A8 // 1192 - SYS___TZNE = 0x4A9 // 1193 - SYS___TZZN = 0x4AA // 1194 - SYS___TRRNO = 0x4AF // 1199 - SYS___ENVN = 0x4B0 // 1200 - SYS___MLOCKALL = 0x4B1 // 1201 - SYS_CREATEWO = 0x4B2 // 1202 - SYS_CREATEWORKUNIT = 0x4B2 // 1202 - SYS_CONTINUE = 0x4B3 // 1203 - SYS_CONTINUEWORKUNIT = 0x4B3 // 1203 - SYS_CONNECTW = 0x4B4 // 1204 - SYS_CONNECTWORKMGR = 0x4B4 // 1204 - SYS_CONNECTS = 0x4B5 // 1205 - SYS_CONNECTSERVER = 0x4B5 // 1205 - SYS_DISCONNE = 0x4B6 // 1206 - SYS_DISCONNECTSERVER = 0x4B6 // 1206 - SYS_JOINWORK = 0x4B7 // 1207 - SYS_JOINWORKUNIT = 0x4B7 // 1207 - SYS_LEAVEWOR = 0x4B8 // 1208 - SYS_LEAVEWORKUNIT = 0x4B8 // 1208 - SYS_DELETEWO = 0x4B9 // 1209 - SYS_DELETEWORKUNIT = 0x4B9 // 1209 - SYS_QUERYMET = 0x4BA // 1210 - SYS_QUERYMETRICS = 0x4BA // 1210 - SYS_QUERYSCH = 0x4BB // 1211 - SYS_QUERYSCHENV = 0x4BB // 1211 - SYS_CHECKSCH = 0x4BC // 1212 - SYS_CHECKSCHENV = 0x4BC // 1212 - SYS___PID_AFFINITY = 0x4BD // 1213 - SYS___ASINH_B = 0x4BE // 1214 - SYS___ATAN_B = 0x4BF // 1215 - SYS___CBRT_B = 0x4C0 // 1216 - SYS___CEIL_B = 0x4C1 // 1217 - SYS_COPYSIGN = 0x4C2 // 1218 - SYS___COS_B = 0x4C3 // 1219 - SYS___ERF_B = 0x4C4 // 1220 - SYS___ERFC_B = 0x4C5 // 1221 - SYS___EXPM1_B = 0x4C6 // 1222 - SYS___FABS_B = 0x4C7 // 1223 - SYS_FINITE = 0x4C8 // 1224 - SYS___FLOOR_B = 0x4C9 // 1225 - SYS___FREXP_B = 0x4CA // 1226 - SYS___ILOGB_B = 0x4CB // 1227 - SYS___ISNAN_B = 0x4CC // 1228 - SYS___LDEXP_B = 0x4CD // 1229 - SYS___LOG1P_B = 0x4CE // 1230 - SYS___LOGB_B = 0x4CF // 1231 - SYS_MATHERR = 0x4D0 // 1232 - SYS___MODF_B = 0x4D1 // 1233 - SYS___NEXTAFTER_B = 0x4D2 // 1234 - SYS___RINT_B = 0x4D3 // 1235 - SYS_SCALBN = 0x4D4 // 1236 - SYS_SIGNIFIC = 0x4D5 // 1237 - SYS_SIGNIFICAND = 0x4D5 // 1237 - SYS___SIN_B = 0x4D6 // 1238 - SYS___TAN_B = 0x4D7 // 1239 - SYS___TANH_B = 0x4D8 // 1240 - SYS___ACOS_B = 0x4D9 // 1241 - SYS___ACOSH_B = 0x4DA // 1242 - SYS___ASIN_B = 0x4DB // 1243 - SYS___ATAN2_B = 0x4DC // 1244 - SYS___ATANH_B = 0x4DD // 1245 - SYS___COSH_B = 0x4DE // 1246 - SYS___EXP_B = 0x4DF // 1247 - SYS___FMOD_B = 0x4E0 // 1248 - SYS___GAMMA_B = 0x4E1 // 1249 - SYS_GAMMA_R = 0x4E2 // 1250 - SYS___HYPOT_B = 0x4E3 // 1251 - SYS___J0_B = 0x4E4 // 1252 - SYS___Y0_B = 0x4E5 // 1253 - SYS___J1_B = 0x4E6 // 1254 - SYS___Y1_B = 0x4E7 // 1255 - SYS___JN_B = 0x4E8 // 1256 - SYS___YN_B = 0x4E9 // 1257 - SYS___LGAMMA_B = 0x4EA // 1258 - SYS_LGAMMA_R = 0x4EB // 1259 - SYS___LOG_B = 0x4EC // 1260 - SYS___LOG10_B = 0x4ED // 1261 - SYS___POW_B = 0x4EE // 1262 - SYS___REMAINDER_B = 0x4EF // 1263 - SYS___SCALB_B = 0x4F0 // 1264 - SYS___SINH_B = 0x4F1 // 1265 - SYS___SQRT_B = 0x4F2 // 1266 - SYS___OPENDIR2 = 0x4F3 // 1267 - SYS___READDIR2 = 0x4F4 // 1268 - SYS___LOGIN = 0x4F5 // 1269 - SYS___OPEN_STAT = 0x4F6 // 1270 - SYS_ACCEPT_AND_RECV = 0x4F7 // 1271 - SYS___FP_SETMODE = 0x4F8 // 1272 - SYS___SIGACTIONSET = 0x4FB // 1275 - SYS___UCREATE = 0x4FC // 1276 - SYS___UMALLOC = 0x4FD // 1277 - SYS___UFREE = 0x4FE // 1278 - SYS___UHEAPREPORT = 0x4FF // 1279 - SYS___ISBFP = 0x500 // 1280 - SYS___FP_CAST = 0x501 // 1281 - SYS___CERTIFICATE = 0x502 // 1282 - SYS_SEND_FILE = 0x503 // 1283 - SYS_AIO_CANCEL = 0x504 // 1284 - SYS_AIO_ERROR = 0x505 // 1285 - SYS_AIO_READ = 0x506 // 1286 - SYS_AIO_RETURN = 0x507 // 1287 - SYS_AIO_SUSPEND = 0x508 // 1288 - SYS_AIO_WRITE = 0x509 // 1289 - SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A // 1290 - SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B // 1291 - SYS_PTHREAD_RWLOCK_DESTROY = 0x50C // 1292 - SYS_PTHREAD_RWLOCK_INIT = 0x50D // 1293 - SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E // 1294 - SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F // 1295 - SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 // 1296 - SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 // 1297 - SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 // 1298 - SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 // 1299 - SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 // 1300 - SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 // 1301 - SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 // 1302 - SYS___CTTBL = 0x517 // 1303 - SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 // 1304 - SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 // 1305 - SYS___FP_CLR_FLAG = 0x51A // 1306 - SYS___FP_READ_FLAG = 0x51B // 1307 - SYS___FP_RAISE_XCP = 0x51C // 1308 - SYS___FP_CLASS = 0x51D // 1309 - SYS___FP_FINITE = 0x51E // 1310 - SYS___FP_ISNAN = 0x51F // 1311 - SYS___FP_UNORDERED = 0x520 // 1312 - SYS___FP_READ_RND = 0x521 // 1313 - SYS___FP_READ_RND_B = 0x522 // 1314 - SYS___FP_SWAP_RND = 0x523 // 1315 - SYS___FP_SWAP_RND_B = 0x524 // 1316 - SYS___FP_LEVEL = 0x525 // 1317 - SYS___FP_BTOH = 0x526 // 1318 - SYS___FP_HTOB = 0x527 // 1319 - SYS___FPC_RD = 0x528 // 1320 - SYS___FPC_WR = 0x529 // 1321 - SYS___FPC_RW = 0x52A // 1322 - SYS___FPC_SM = 0x52B // 1323 - SYS___FPC_RS = 0x52C // 1324 - SYS_SIGTIMEDWAIT = 0x52D // 1325 - SYS_SIGWAITINFO = 0x52E // 1326 - SYS___CHKBFP = 0x52F // 1327 - SYS___W_PIOCTL = 0x59E // 1438 - SYS___OSENV = 0x59F // 1439 - SYS_EXPORTWO = 0x5A1 // 1441 - SYS_EXPORTWORKUNIT = 0x5A1 // 1441 - SYS_UNDOEXPO = 0x5A2 // 1442 - SYS_UNDOEXPORTWORKUNIT = 0x5A2 // 1442 - SYS_IMPORTWO = 0x5A3 // 1443 - SYS_IMPORTWORKUNIT = 0x5A3 // 1443 - SYS_UNDOIMPO = 0x5A4 // 1444 - SYS_UNDOIMPORTWORKUNIT = 0x5A4 // 1444 - SYS_EXTRACTW = 0x5A5 // 1445 - SYS_EXTRACTWORKUNIT = 0x5A5 // 1445 - SYS___CPL = 0x5A6 // 1446 - SYS___MAP_INIT = 0x5A7 // 1447 - SYS___MAP_SERVICE = 0x5A8 // 1448 - SYS_SIGQUEUE = 0x5A9 // 1449 - SYS___MOUNT = 0x5AA // 1450 - SYS___GETUSERID = 0x5AB // 1451 - SYS___IPDOMAINNAME = 0x5AC // 1452 - SYS_QUERYENC = 0x5AD // 1453 - SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD // 1453 - SYS_CONNECTE = 0x5AE // 1454 - SYS_CONNECTEXPORTIMPORT = 0x5AE // 1454 - SYS___FP_SWAPMODE = 0x5AF // 1455 - SYS_STRTOLL = 0x5B0 // 1456 - SYS_STRTOULL = 0x5B1 // 1457 - SYS___DSA_PREV = 0x5B2 // 1458 - SYS___EP_FIND = 0x5B3 // 1459 - SYS___SERVER_THREADS_QUERY = 0x5B4 // 1460 - SYS___MSGRCV_TIMED = 0x5B7 // 1463 - SYS___SEMOP_TIMED = 0x5B8 // 1464 - SYS___GET_CPUID = 0x5B9 // 1465 - SYS___GET_SYSTEM_SETTINGS = 0x5BA // 1466 - SYS_FTELLO = 0x5C8 // 1480 - SYS_FSEEKO = 0x5C9 // 1481 - SYS_LLDIV = 0x5CB // 1483 - SYS_WCSTOLL = 0x5CC // 1484 - SYS_WCSTOULL = 0x5CD // 1485 - SYS_LLABS = 0x5CE // 1486 - SYS___CONSOLE2 = 0x5D2 // 1490 - SYS_INET_NTOP = 0x5D3 // 1491 - SYS_INET_PTON = 0x5D4 // 1492 - SYS___RES = 0x5D6 // 1494 - SYS_RES_MKQUERY = 0x5D7 // 1495 - SYS_RES_INIT = 0x5D8 // 1496 - SYS_RES_QUERY = 0x5D9 // 1497 - SYS_RES_SEARCH = 0x5DA // 1498 - SYS_RES_SEND = 0x5DB // 1499 - SYS_RES_QUERYDOMAIN = 0x5DC // 1500 - SYS_DN_EXPAND = 0x5DD // 1501 - SYS_DN_SKIPNAME = 0x5DE // 1502 - SYS_DN_COMP = 0x5DF // 1503 - SYS_ASCTIME_R = 0x5E0 // 1504 - SYS_CTIME_R = 0x5E1 // 1505 - SYS_GMTIME_R = 0x5E2 // 1506 - SYS_LOCALTIME_R = 0x5E3 // 1507 - SYS_RAND_R = 0x5E4 // 1508 - SYS_STRTOK_R = 0x5E5 // 1509 - SYS_READDIR_R = 0x5E6 // 1510 - SYS_GETGRGID_R = 0x5E7 // 1511 - SYS_GETGRNAM_R = 0x5E8 // 1512 - SYS_GETLOGIN_R = 0x5E9 // 1513 - SYS_GETPWNAM_R = 0x5EA // 1514 - SYS_GETPWUID_R = 0x5EB // 1515 - SYS_TTYNAME_R = 0x5EC // 1516 - SYS_PTHREAD_ATFORK = 0x5ED // 1517 - SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE // 1518 - SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF // 1519 - SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 // 1520 - SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 // 1521 - SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 // 1522 - SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 // 1523 - SYS_PTHREAD_GETCONCURRENCY = 0x5F4 // 1524 - SYS_PTHREAD_KEY_DELETE = 0x5F5 // 1525 - SYS_PTHREAD_SETCONCURRENCY = 0x5F6 // 1526 - SYS_PTHREAD_SIGMASK = 0x5F7 // 1527 - SYS___DISCARDDATA = 0x5F8 // 1528 - SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 // 1529 - SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA // 1530 - SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB // 1531 - SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC // 1532 - SYS_PTHREAD_DETACH_U98 = 0x5FD // 1533 - SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE // 1534 - SYS_PTHREAD_SETCANCELSTATE = 0x5FF // 1535 - SYS_PTHREAD_SETCANCELTYPE = 0x600 // 1536 - SYS_PTHREAD_TESTCANCEL = 0x601 // 1537 - SYS___ATANF_B = 0x602 // 1538 - SYS___ATANL_B = 0x603 // 1539 - SYS___CEILF_B = 0x604 // 1540 - SYS___CEILL_B = 0x605 // 1541 - SYS___COSF_B = 0x606 // 1542 - SYS___COSL_B = 0x607 // 1543 - SYS___FABSF_B = 0x608 // 1544 - SYS___FABSL_B = 0x609 // 1545 - SYS___FLOORF_B = 0x60A // 1546 - SYS___FLOORL_B = 0x60B // 1547 - SYS___FREXPF_B = 0x60C // 1548 - SYS___FREXPL_B = 0x60D // 1549 - SYS___LDEXPF_B = 0x60E // 1550 - SYS___LDEXPL_B = 0x60F // 1551 - SYS___SINF_B = 0x610 // 1552 - SYS___SINL_B = 0x611 // 1553 - SYS___TANF_B = 0x612 // 1554 - SYS___TANL_B = 0x613 // 1555 - SYS___TANHF_B = 0x614 // 1556 - SYS___TANHL_B = 0x615 // 1557 - SYS___ACOSF_B = 0x616 // 1558 - SYS___ACOSL_B = 0x617 // 1559 - SYS___ASINF_B = 0x618 // 1560 - SYS___ASINL_B = 0x619 // 1561 - SYS___ATAN2F_B = 0x61A // 1562 - SYS___ATAN2L_B = 0x61B // 1563 - SYS___COSHF_B = 0x61C // 1564 - SYS___COSHL_B = 0x61D // 1565 - SYS___EXPF_B = 0x61E // 1566 - SYS___EXPL_B = 0x61F // 1567 - SYS___LOGF_B = 0x620 // 1568 - SYS___LOGL_B = 0x621 // 1569 - SYS___LOG10F_B = 0x622 // 1570 - SYS___LOG10L_B = 0x623 // 1571 - SYS___POWF_B = 0x624 // 1572 - SYS___POWL_B = 0x625 // 1573 - SYS___SINHF_B = 0x626 // 1574 - SYS___SINHL_B = 0x627 // 1575 - SYS___SQRTF_B = 0x628 // 1576 - SYS___SQRTL_B = 0x629 // 1577 - SYS___ABSF_B = 0x62A // 1578 - SYS___ABS_B = 0x62B // 1579 - SYS___ABSL_B = 0x62C // 1580 - SYS___FMODF_B = 0x62D // 1581 - SYS___FMODL_B = 0x62E // 1582 - SYS___MODFF_B = 0x62F // 1583 - SYS___MODFL_B = 0x630 // 1584 - SYS_ABSF = 0x631 // 1585 - SYS_ABSL = 0x632 // 1586 - SYS_ACOSF = 0x633 // 1587 - SYS_ACOSL = 0x634 // 1588 - SYS_ASINF = 0x635 // 1589 - SYS_ASINL = 0x636 // 1590 - SYS_ATAN2F = 0x637 // 1591 - SYS_ATAN2L = 0x638 // 1592 - SYS_ATANF = 0x639 // 1593 - SYS_ATANL = 0x63A // 1594 - SYS_CEILF = 0x63B // 1595 - SYS_CEILL = 0x63C // 1596 - SYS_COSF = 0x63D // 1597 - SYS_COSL = 0x63E // 1598 - SYS_COSHF = 0x63F // 1599 - SYS_COSHL = 0x640 // 1600 - SYS_EXPF = 0x641 // 1601 - SYS_EXPL = 0x642 // 1602 - SYS_TANHF = 0x643 // 1603 - SYS_TANHL = 0x644 // 1604 - SYS_LOG10F = 0x645 // 1605 - SYS_LOG10L = 0x646 // 1606 - SYS_LOGF = 0x647 // 1607 - SYS_LOGL = 0x648 // 1608 - SYS_POWF = 0x649 // 1609 - SYS_POWL = 0x64A // 1610 - SYS_SINF = 0x64B // 1611 - SYS_SINL = 0x64C // 1612 - SYS_SQRTF = 0x64D // 1613 - SYS_SQRTL = 0x64E // 1614 - SYS_SINHF = 0x64F // 1615 - SYS_SINHL = 0x650 // 1616 - SYS_TANF = 0x651 // 1617 - SYS_TANL = 0x652 // 1618 - SYS_FABSF = 0x653 // 1619 - SYS_FABSL = 0x654 // 1620 - SYS_FLOORF = 0x655 // 1621 - SYS_FLOORL = 0x656 // 1622 - SYS_FMODF = 0x657 // 1623 - SYS_FMODL = 0x658 // 1624 - SYS_FREXPF = 0x659 // 1625 - SYS_FREXPL = 0x65A // 1626 - SYS_LDEXPF = 0x65B // 1627 - SYS_LDEXPL = 0x65C // 1628 - SYS_MODFF = 0x65D // 1629 - SYS_MODFL = 0x65E // 1630 - SYS_BTOWC = 0x65F // 1631 - SYS___CHATTR = 0x660 // 1632 - SYS___FCHATTR = 0x661 // 1633 - SYS___TOCCSID = 0x662 // 1634 - SYS___CSNAMETYPE = 0x663 // 1635 - SYS___TOCSNAME = 0x664 // 1636 - SYS___CCSIDTYPE = 0x665 // 1637 - SYS___AE_CORRESTBL_QUERY = 0x666 // 1638 - SYS___AE_AUTOCONVERT_STATE = 0x667 // 1639 - SYS_DN_FIND = 0x668 // 1640 - SYS___GETHOSTBYADDR_A = 0x669 // 1641 - SYS___GETHOSTBYNAME_A = 0x66A // 1642 - SYS___RES_INIT_A = 0x66B // 1643 - SYS___GETHOSTBYADDR_R_A = 0x66C // 1644 - SYS___GETHOSTBYNAME_R_A = 0x66D // 1645 - SYS___CHARMAP_INIT_A = 0x66E // 1646 - SYS___MBLEN_A = 0x66F // 1647 - SYS___MBLEN_SB_A = 0x670 // 1648 - SYS___MBLEN_STD_A = 0x671 // 1649 - SYS___MBLEN_UTF = 0x672 // 1650 - SYS___MBSTOWCS_A = 0x673 // 1651 - SYS___MBSTOWCS_STD_A = 0x674 // 1652 - SYS___MBTOWC_A = 0x675 // 1653 - SYS___MBTOWC_ISO1 = 0x676 // 1654 - SYS___MBTOWC_SBCS = 0x677 // 1655 - SYS___MBTOWC_MBCS = 0x678 // 1656 - SYS___MBTOWC_UTF = 0x679 // 1657 - SYS___WCSTOMBS_A = 0x67A // 1658 - SYS___WCSTOMBS_STD_A = 0x67B // 1659 - SYS___WCSWIDTH_A = 0x67C // 1660 - SYS___GETGRGID_R_A = 0x67D // 1661 - SYS___WCSWIDTH_STD_A = 0x67E // 1662 - SYS___WCSWIDTH_ASIA = 0x67F // 1663 - SYS___CSID_A = 0x680 // 1664 - SYS___CSID_STD_A = 0x681 // 1665 - SYS___WCSID_A = 0x682 // 1666 - SYS___WCSID_STD_A = 0x683 // 1667 - SYS___WCTOMB_A = 0x684 // 1668 - SYS___WCTOMB_ISO1 = 0x685 // 1669 - SYS___WCTOMB_STD_A = 0x686 // 1670 - SYS___WCTOMB_UTF = 0x687 // 1671 - SYS___WCWIDTH_A = 0x688 // 1672 - SYS___GETGRNAM_R_A = 0x689 // 1673 - SYS___WCWIDTH_STD_A = 0x68A // 1674 - SYS___WCWIDTH_ASIA = 0x68B // 1675 - SYS___GETPWNAM_R_A = 0x68C // 1676 - SYS___GETPWUID_R_A = 0x68D // 1677 - SYS___GETLOGIN_R_A = 0x68E // 1678 - SYS___TTYNAME_R_A = 0x68F // 1679 - SYS___READDIR_R_A = 0x690 // 1680 - SYS___E2A_S = 0x691 // 1681 - SYS___FNMATCH_A = 0x692 // 1682 - SYS___FNMATCH_C_A = 0x693 // 1683 - SYS___EXECL_A = 0x694 // 1684 - SYS___FNMATCH_STD_A = 0x695 // 1685 - SYS___REGCOMP_A = 0x696 // 1686 - SYS___REGCOMP_STD_A = 0x697 // 1687 - SYS___REGERROR_A = 0x698 // 1688 - SYS___REGERROR_STD_A = 0x699 // 1689 - SYS___REGEXEC_A = 0x69A // 1690 - SYS___REGEXEC_STD_A = 0x69B // 1691 - SYS___REGFREE_A = 0x69C // 1692 - SYS___REGFREE_STD_A = 0x69D // 1693 - SYS___STRCOLL_A = 0x69E // 1694 - SYS___STRCOLL_C_A = 0x69F // 1695 - SYS___EXECLE_A = 0x6A0 // 1696 - SYS___STRCOLL_STD_A = 0x6A1 // 1697 - SYS___STRXFRM_A = 0x6A2 // 1698 - SYS___STRXFRM_C_A = 0x6A3 // 1699 - SYS___EXECLP_A = 0x6A4 // 1700 - SYS___STRXFRM_STD_A = 0x6A5 // 1701 - SYS___WCSCOLL_A = 0x6A6 // 1702 - SYS___WCSCOLL_C_A = 0x6A7 // 1703 - SYS___WCSCOLL_STD_A = 0x6A8 // 1704 - SYS___WCSXFRM_A = 0x6A9 // 1705 - SYS___WCSXFRM_C_A = 0x6AA // 1706 - SYS___WCSXFRM_STD_A = 0x6AB // 1707 - SYS___COLLATE_INIT_A = 0x6AC // 1708 - SYS___WCTYPE_A = 0x6AD // 1709 - SYS___GET_WCTYPE_STD_A = 0x6AE // 1710 - SYS___CTYPE_INIT_A = 0x6AF // 1711 - SYS___ISWCTYPE_A = 0x6B0 // 1712 - SYS___EXECV_A = 0x6B1 // 1713 - SYS___IS_WCTYPE_STD_A = 0x6B2 // 1714 - SYS___TOWLOWER_A = 0x6B3 // 1715 - SYS___TOWLOWER_STD_A = 0x6B4 // 1716 - SYS___TOWUPPER_A = 0x6B5 // 1717 - SYS___TOWUPPER_STD_A = 0x6B6 // 1718 - SYS___LOCALE_INIT_A = 0x6B7 // 1719 - SYS___LOCALECONV_A = 0x6B8 // 1720 - SYS___LOCALECONV_STD_A = 0x6B9 // 1721 - SYS___NL_LANGINFO_A = 0x6BA // 1722 - SYS___NL_LNAGINFO_STD_A = 0x6BB // 1723 - SYS___MONETARY_INIT_A = 0x6BC // 1724 - SYS___STRFMON_A = 0x6BD // 1725 - SYS___STRFMON_STD_A = 0x6BE // 1726 - SYS___GETADDRINFO_A = 0x6BF // 1727 - SYS___CATGETS_A = 0x6C0 // 1728 - SYS___EXECVE_A = 0x6C1 // 1729 - SYS___EXECVP_A = 0x6C2 // 1730 - SYS___SPAWN_A = 0x6C3 // 1731 - SYS___GETNAMEINFO_A = 0x6C4 // 1732 - SYS___SPAWNP_A = 0x6C5 // 1733 - SYS___NUMERIC_INIT_A = 0x6C6 // 1734 - SYS___RESP_INIT_A = 0x6C7 // 1735 - SYS___RPMATCH_A = 0x6C8 // 1736 - SYS___RPMATCH_C_A = 0x6C9 // 1737 - SYS___RPMATCH_STD_A = 0x6CA // 1738 - SYS___TIME_INIT_A = 0x6CB // 1739 - SYS___STRFTIME_A = 0x6CC // 1740 - SYS___STRFTIME_STD_A = 0x6CD // 1741 - SYS___STRPTIME_A = 0x6CE // 1742 - SYS___STRPTIME_STD_A = 0x6CF // 1743 - SYS___WCSFTIME_A = 0x6D0 // 1744 - SYS___WCSFTIME_STD_A = 0x6D1 // 1745 - SYS_____SPAWN2_A = 0x6D2 // 1746 - SYS_____SPAWNP2_A = 0x6D3 // 1747 - SYS___SYNTAX_INIT_A = 0x6D4 // 1748 - SYS___TOD_INIT_A = 0x6D5 // 1749 - SYS___NL_CSINFO_A = 0x6D6 // 1750 - SYS___NL_MONINFO_A = 0x6D7 // 1751 - SYS___NL_NUMINFO_A = 0x6D8 // 1752 - SYS___NL_RESPINFO_A = 0x6D9 // 1753 - SYS___NL_TIMINFO_A = 0x6DA // 1754 - SYS___IF_NAMETOINDEX_A = 0x6DB // 1755 - SYS___IF_INDEXTONAME_A = 0x6DC // 1756 - SYS___PRINTF_A = 0x6DD // 1757 - SYS___ICONV_OPEN_A = 0x6DE // 1758 - SYS___DLLLOAD_A = 0x6DF // 1759 - SYS___DLLQUERYFN_A = 0x6E0 // 1760 - SYS___DLLQUERYVAR_A = 0x6E1 // 1761 - SYS_____CHATTR_A = 0x6E2 // 1762 - SYS___E2A_L = 0x6E3 // 1763 - SYS_____TOCCSID_A = 0x6E4 // 1764 - SYS_____TOCSNAME_A = 0x6E5 // 1765 - SYS_____CCSIDTYPE_A = 0x6E6 // 1766 - SYS_____CSNAMETYPE_A = 0x6E7 // 1767 - SYS___CHMOD_A = 0x6E8 // 1768 - SYS___MKDIR_A = 0x6E9 // 1769 - SYS___STAT_A = 0x6EA // 1770 - SYS___STAT_O_A = 0x6EB // 1771 - SYS___MKFIFO_A = 0x6EC // 1772 - SYS_____OPEN_STAT_A = 0x6ED // 1773 - SYS___LSTAT_A = 0x6EE // 1774 - SYS___LSTAT_O_A = 0x6EF // 1775 - SYS___MKNOD_A = 0x6F0 // 1776 - SYS___MOUNT_A = 0x6F1 // 1777 - SYS___UMOUNT_A = 0x6F2 // 1778 - SYS___CHAUDIT_A = 0x6F4 // 1780 - SYS___W_GETMNTENT_A = 0x6F5 // 1781 - SYS___CREAT_A = 0x6F6 // 1782 - SYS___OPEN_A = 0x6F7 // 1783 - SYS___SETLOCALE_A = 0x6F9 // 1785 - SYS___FPRINTF_A = 0x6FA // 1786 - SYS___SPRINTF_A = 0x6FB // 1787 - SYS___VFPRINTF_A = 0x6FC // 1788 - SYS___VPRINTF_A = 0x6FD // 1789 - SYS___VSPRINTF_A = 0x6FE // 1790 - SYS___VSWPRINTF_A = 0x6FF // 1791 - SYS___SWPRINTF_A = 0x700 // 1792 - SYS___FSCANF_A = 0x701 // 1793 - SYS___SCANF_A = 0x702 // 1794 - SYS___SSCANF_A = 0x703 // 1795 - SYS___SWSCANF_A = 0x704 // 1796 - SYS___ATOF_A = 0x705 // 1797 - SYS___ATOI_A = 0x706 // 1798 - SYS___ATOL_A = 0x707 // 1799 - SYS___STRTOD_A = 0x708 // 1800 - SYS___STRTOL_A = 0x709 // 1801 - SYS___STRTOUL_A = 0x70A // 1802 - SYS_____AE_CORRESTBL_QUERY_A = 0x70B // 1803 - SYS___A64L_A = 0x70C // 1804 - SYS___ECVT_A = 0x70D // 1805 - SYS___FCVT_A = 0x70E // 1806 - SYS___GCVT_A = 0x70F // 1807 - SYS___L64A_A = 0x710 // 1808 - SYS___STRERROR_A = 0x711 // 1809 - SYS___PERROR_A = 0x712 // 1810 - SYS___FETCH_A = 0x713 // 1811 - SYS___GETENV_A = 0x714 // 1812 - SYS___MKSTEMP_A = 0x717 // 1815 - SYS___PTSNAME_A = 0x718 // 1816 - SYS___PUTENV_A = 0x719 // 1817 - SYS___REALPATH_A = 0x71A // 1818 - SYS___SETENV_A = 0x71B // 1819 - SYS___SYSTEM_A = 0x71C // 1820 - SYS___GETOPT_A = 0x71D // 1821 - SYS___CATOPEN_A = 0x71E // 1822 - SYS___ACCESS_A = 0x71F // 1823 - SYS___CHDIR_A = 0x720 // 1824 - SYS___CHOWN_A = 0x721 // 1825 - SYS___CHROOT_A = 0x722 // 1826 - SYS___GETCWD_A = 0x723 // 1827 - SYS___GETWD_A = 0x724 // 1828 - SYS___LCHOWN_A = 0x725 // 1829 - SYS___LINK_A = 0x726 // 1830 - SYS___PATHCONF_A = 0x727 // 1831 - SYS___IF_NAMEINDEX_A = 0x728 // 1832 - SYS___READLINK_A = 0x729 // 1833 - SYS___RMDIR_A = 0x72A // 1834 - SYS___STATVFS_A = 0x72B // 1835 - SYS___SYMLINK_A = 0x72C // 1836 - SYS___TRUNCATE_A = 0x72D // 1837 - SYS___UNLINK_A = 0x72E // 1838 - SYS___GAI_STRERROR_A = 0x72F // 1839 - SYS___EXTLINK_NP_A = 0x730 // 1840 - SYS___ISALNUM_A = 0x731 // 1841 - SYS___ISALPHA_A = 0x732 // 1842 - SYS___A2E_S = 0x733 // 1843 - SYS___ISCNTRL_A = 0x734 // 1844 - SYS___ISDIGIT_A = 0x735 // 1845 - SYS___ISGRAPH_A = 0x736 // 1846 - SYS___ISLOWER_A = 0x737 // 1847 - SYS___ISPRINT_A = 0x738 // 1848 - SYS___ISPUNCT_A = 0x739 // 1849 - SYS___ISSPACE_A = 0x73A // 1850 - SYS___ISUPPER_A = 0x73B // 1851 - SYS___ISXDIGIT_A = 0x73C // 1852 - SYS___TOLOWER_A = 0x73D // 1853 - SYS___TOUPPER_A = 0x73E // 1854 - SYS___ISWALNUM_A = 0x73F // 1855 - SYS___ISWALPHA_A = 0x740 // 1856 - SYS___A2E_L = 0x741 // 1857 - SYS___ISWCNTRL_A = 0x742 // 1858 - SYS___ISWDIGIT_A = 0x743 // 1859 - SYS___ISWGRAPH_A = 0x744 // 1860 - SYS___ISWLOWER_A = 0x745 // 1861 - SYS___ISWPRINT_A = 0x746 // 1862 - SYS___ISWPUNCT_A = 0x747 // 1863 - SYS___ISWSPACE_A = 0x748 // 1864 - SYS___ISWUPPER_A = 0x749 // 1865 - SYS___ISWXDIGIT_A = 0x74A // 1866 - SYS___CONFSTR_A = 0x74B // 1867 - SYS___FTOK_A = 0x74C // 1868 - SYS___MKTEMP_A = 0x74D // 1869 - SYS___FDOPEN_A = 0x74E // 1870 - SYS___FLDATA_A = 0x74F // 1871 - SYS___REMOVE_A = 0x750 // 1872 - SYS___RENAME_A = 0x751 // 1873 - SYS___TMPNAM_A = 0x752 // 1874 - SYS___FOPEN_A = 0x753 // 1875 - SYS___FREOPEN_A = 0x754 // 1876 - SYS___CUSERID_A = 0x755 // 1877 - SYS___POPEN_A = 0x756 // 1878 - SYS___TEMPNAM_A = 0x757 // 1879 - SYS___FTW_A = 0x758 // 1880 - SYS___GETGRENT_A = 0x759 // 1881 - SYS___GETGRGID_A = 0x75A // 1882 - SYS___GETGRNAM_A = 0x75B // 1883 - SYS___GETGROUPSBYNAME_A = 0x75C // 1884 - SYS___GETHOSTENT_A = 0x75D // 1885 - SYS___GETHOSTNAME_A = 0x75E // 1886 - SYS___GETLOGIN_A = 0x75F // 1887 - SYS___INET_NTOP_A = 0x760 // 1888 - SYS___GETPASS_A = 0x761 // 1889 - SYS___GETPWENT_A = 0x762 // 1890 - SYS___GETPWNAM_A = 0x763 // 1891 - SYS___GETPWUID_A = 0x764 // 1892 - SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 // 1893 - SYS___CHECKSCHENV_A = 0x766 // 1894 - SYS___CONNECTSERVER_A = 0x767 // 1895 - SYS___CONNECTWORKMGR_A = 0x768 // 1896 - SYS_____CONSOLE_A = 0x769 // 1897 - SYS___CREATEWORKUNIT_A = 0x76A // 1898 - SYS___CTERMID_A = 0x76B // 1899 - SYS___FMTMSG_A = 0x76C // 1900 - SYS___INITGROUPS_A = 0x76D // 1901 - SYS_____LOGIN_A = 0x76E // 1902 - SYS___MSGRCV_A = 0x76F // 1903 - SYS___MSGSND_A = 0x770 // 1904 - SYS___MSGXRCV_A = 0x771 // 1905 - SYS___NFTW_A = 0x772 // 1906 - SYS_____PASSWD_A = 0x773 // 1907 - SYS___PTHREAD_SECURITY_NP_A = 0x774 // 1908 - SYS___QUERYMETRICS_A = 0x775 // 1909 - SYS___QUERYSCHENV = 0x776 // 1910 - SYS___READV_A = 0x777 // 1911 - SYS_____SERVER_CLASSIFY_A = 0x778 // 1912 - SYS_____SERVER_INIT_A = 0x779 // 1913 - SYS_____SERVER_PWU_A = 0x77A // 1914 - SYS___STRCASECMP_A = 0x77B // 1915 - SYS___STRNCASECMP_A = 0x77C // 1916 - SYS___TTYNAME_A = 0x77D // 1917 - SYS___UNAME_A = 0x77E // 1918 - SYS___UTIMES_A = 0x77F // 1919 - SYS___W_GETPSENT_A = 0x780 // 1920 - SYS___WRITEV_A = 0x781 // 1921 - SYS___W_STATFS_A = 0x782 // 1922 - SYS___W_STATVFS_A = 0x783 // 1923 - SYS___FPUTC_A = 0x784 // 1924 - SYS___PUTCHAR_A = 0x785 // 1925 - SYS___PUTS_A = 0x786 // 1926 - SYS___FGETS_A = 0x787 // 1927 - SYS___GETS_A = 0x788 // 1928 - SYS___FPUTS_A = 0x789 // 1929 - SYS___FREAD_A = 0x78A // 1930 - SYS___FWRITE_A = 0x78B // 1931 - SYS___OPEN_O_A = 0x78C // 1932 - SYS___ISASCII = 0x78D // 1933 - SYS___CREAT_O_A = 0x78E // 1934 - SYS___ENVNA = 0x78F // 1935 - SYS___PUTC_A = 0x790 // 1936 - SYS___AE_THREAD_SETMODE = 0x791 // 1937 - SYS___AE_THREAD_SWAPMODE = 0x792 // 1938 - SYS___GETNETBYADDR_A = 0x793 // 1939 - SYS___GETNETBYNAME_A = 0x794 // 1940 - SYS___GETNETENT_A = 0x795 // 1941 - SYS___GETPROTOBYNAME_A = 0x796 // 1942 - SYS___GETPROTOBYNUMBER_A = 0x797 // 1943 - SYS___GETPROTOENT_A = 0x798 // 1944 - SYS___GETSERVBYNAME_A = 0x799 // 1945 - SYS___GETSERVBYPORT_A = 0x79A // 1946 - SYS___GETSERVENT_A = 0x79B // 1947 - SYS___ASCTIME_A = 0x79C // 1948 - SYS___CTIME_A = 0x79D // 1949 - SYS___GETDATE_A = 0x79E // 1950 - SYS___TZSET_A = 0x79F // 1951 - SYS___UTIME_A = 0x7A0 // 1952 - SYS___ASCTIME_R_A = 0x7A1 // 1953 - SYS___CTIME_R_A = 0x7A2 // 1954 - SYS___STRTOLL_A = 0x7A3 // 1955 - SYS___STRTOULL_A = 0x7A4 // 1956 - SYS___FPUTWC_A = 0x7A5 // 1957 - SYS___PUTWC_A = 0x7A6 // 1958 - SYS___PUTWCHAR_A = 0x7A7 // 1959 - SYS___FPUTWS_A = 0x7A8 // 1960 - SYS___UNGETWC_A = 0x7A9 // 1961 - SYS___FGETWC_A = 0x7AA // 1962 - SYS___GETWC_A = 0x7AB // 1963 - SYS___GETWCHAR_A = 0x7AC // 1964 - SYS___FGETWS_A = 0x7AD // 1965 - SYS___GETTIMEOFDAY_A = 0x7AE // 1966 - SYS___GMTIME_A = 0x7AF // 1967 - SYS___GMTIME_R_A = 0x7B0 // 1968 - SYS___LOCALTIME_A = 0x7B1 // 1969 - SYS___LOCALTIME_R_A = 0x7B2 // 1970 - SYS___MKTIME_A = 0x7B3 // 1971 - SYS___TZZNA = 0x7B4 // 1972 - SYS_UNATEXIT = 0x7B5 // 1973 - SYS___CEE3DMP_A = 0x7B6 // 1974 - SYS___CDUMP_A = 0x7B7 // 1975 - SYS___CSNAP_A = 0x7B8 // 1976 - SYS___CTEST_A = 0x7B9 // 1977 - SYS___CTRACE_A = 0x7BA // 1978 - SYS___VSWPRNTF2_A = 0x7BB // 1979 - SYS___INET_PTON_A = 0x7BC // 1980 - SYS___SYSLOG_A = 0x7BD // 1981 - SYS___CRYPT_A = 0x7BE // 1982 - SYS_____OPENDIR2_A = 0x7BF // 1983 - SYS_____READDIR2_A = 0x7C0 // 1984 - SYS___OPENDIR_A = 0x7C2 // 1986 - SYS___READDIR_A = 0x7C3 // 1987 - SYS_PREAD = 0x7C7 // 1991 - SYS_PWRITE = 0x7C8 // 1992 - SYS_M_CREATE_LAYOUT = 0x7C9 // 1993 - SYS_M_DESTROY_LAYOUT = 0x7CA // 1994 - SYS_M_GETVALUES_LAYOUT = 0x7CB // 1995 - SYS_M_SETVALUES_LAYOUT = 0x7CC // 1996 - SYS_M_TRANSFORM_LAYOUT = 0x7CD // 1997 - SYS_M_WTRANSFORM_LAYOUT = 0x7CE // 1998 - SYS_FWPRINTF = 0x7D1 // 2001 - SYS_WPRINTF = 0x7D2 // 2002 - SYS_VFWPRINT = 0x7D3 // 2003 - SYS_VFWPRINTF = 0x7D3 // 2003 - SYS_VWPRINTF = 0x7D4 // 2004 - SYS_FWSCANF = 0x7D5 // 2005 - SYS_WSCANF = 0x7D6 // 2006 - SYS_WCTRANS = 0x7D7 // 2007 - SYS_TOWCTRAN = 0x7D8 // 2008 - SYS_TOWCTRANS = 0x7D8 // 2008 - SYS___WCSTOD_A = 0x7D9 // 2009 - SYS___WCSTOL_A = 0x7DA // 2010 - SYS___WCSTOUL_A = 0x7DB // 2011 - SYS___BASENAME_A = 0x7DC // 2012 - SYS___DIRNAME_A = 0x7DD // 2013 - SYS___GLOB_A = 0x7DE // 2014 - SYS_FWIDE = 0x7DF // 2015 - SYS___OSNAME = 0x7E0 // 2016 - SYS_____OSNAME_A = 0x7E1 // 2017 - SYS___BTOWC_A = 0x7E4 // 2020 - SYS___WCTOB_A = 0x7E5 // 2021 - SYS___DBM_OPEN_A = 0x7E6 // 2022 - SYS___VFPRINTF2_A = 0x7E7 // 2023 - SYS___VPRINTF2_A = 0x7E8 // 2024 - SYS___VSPRINTF2_A = 0x7E9 // 2025 - SYS___CEIL_H = 0x7EA // 2026 - SYS___FLOOR_H = 0x7EB // 2027 - SYS___MODF_H = 0x7EC // 2028 - SYS___FABS_H = 0x7ED // 2029 - SYS___J0_H = 0x7EE // 2030 - SYS___J1_H = 0x7EF // 2031 - SYS___JN_H = 0x7F0 // 2032 - SYS___Y0_H = 0x7F1 // 2033 - SYS___Y1_H = 0x7F2 // 2034 - SYS___YN_H = 0x7F3 // 2035 - SYS___CEILF_H = 0x7F4 // 2036 - SYS___CEILL_H = 0x7F5 // 2037 - SYS___FLOORF_H = 0x7F6 // 2038 - SYS___FLOORL_H = 0x7F7 // 2039 - SYS___MODFF_H = 0x7F8 // 2040 - SYS___MODFL_H = 0x7F9 // 2041 - SYS___FABSF_H = 0x7FA // 2042 - SYS___FABSL_H = 0x7FB // 2043 - SYS___MALLOC24 = 0x7FC // 2044 - SYS___MALLOC31 = 0x7FD // 2045 - SYS_ACL_INIT = 0x7FE // 2046 - SYS_ACL_FREE = 0x7FF // 2047 - SYS_ACL_FIRST_ENTRY = 0x800 // 2048 - SYS_ACL_GET_ENTRY = 0x801 // 2049 - SYS_ACL_VALID = 0x802 // 2050 - SYS_ACL_CREATE_ENTRY = 0x803 // 2051 - SYS_ACL_DELETE_ENTRY = 0x804 // 2052 - SYS_ACL_UPDATE_ENTRY = 0x805 // 2053 - SYS_ACL_DELETE_FD = 0x806 // 2054 - SYS_ACL_DELETE_FILE = 0x807 // 2055 - SYS_ACL_GET_FD = 0x808 // 2056 - SYS_ACL_GET_FILE = 0x809 // 2057 - SYS_ACL_SET_FD = 0x80A // 2058 - SYS_ACL_SET_FILE = 0x80B // 2059 - SYS_ACL_FROM_TEXT = 0x80C // 2060 - SYS_ACL_TO_TEXT = 0x80D // 2061 - SYS_ACL_SORT = 0x80E // 2062 - SYS___SHUTDOWN_REGISTRATION = 0x80F // 2063 - SYS___ERFL_B = 0x810 // 2064 - SYS___ERFCL_B = 0x811 // 2065 - SYS___LGAMMAL_B = 0x812 // 2066 - SYS___SETHOOKEVENTS = 0x813 // 2067 - SYS_IF_NAMETOINDEX = 0x814 // 2068 - SYS_IF_INDEXTONAME = 0x815 // 2069 - SYS_IF_NAMEINDEX = 0x816 // 2070 - SYS_IF_FREENAMEINDEX = 0x817 // 2071 - SYS_GETADDRINFO = 0x818 // 2072 - SYS_GETNAMEINFO = 0x819 // 2073 - SYS_FREEADDRINFO = 0x81A // 2074 - SYS_GAI_STRERROR = 0x81B // 2075 - SYS_REXEC_AF = 0x81C // 2076 - SYS___POE = 0x81D // 2077 - SYS___DYNALLOC_A = 0x81F // 2079 - SYS___DYNFREE_A = 0x820 // 2080 - SYS___RES_QUERY_A = 0x821 // 2081 - SYS___RES_SEARCH_A = 0x822 // 2082 - SYS___RES_QUERYDOMAIN_A = 0x823 // 2083 - SYS___RES_MKQUERY_A = 0x824 // 2084 - SYS___RES_SEND_A = 0x825 // 2085 - SYS___DN_EXPAND_A = 0x826 // 2086 - SYS___DN_SKIPNAME_A = 0x827 // 2087 - SYS___DN_COMP_A = 0x828 // 2088 - SYS___DN_FIND_A = 0x829 // 2089 - SYS___NLIST_A = 0x82A // 2090 - SYS_____TCGETCP_A = 0x82B // 2091 - SYS_____TCSETCP_A = 0x82C // 2092 - SYS_____W_PIOCTL_A = 0x82E // 2094 - SYS___INET_ADDR_A = 0x82F // 2095 - SYS___INET_NTOA_A = 0x830 // 2096 - SYS___INET_NETWORK_A = 0x831 // 2097 - SYS___ACCEPT_A = 0x832 // 2098 - SYS___ACCEPT_AND_RECV_A = 0x833 // 2099 - SYS___BIND_A = 0x834 // 2100 - SYS___CONNECT_A = 0x835 // 2101 - SYS___GETPEERNAME_A = 0x836 // 2102 - SYS___GETSOCKNAME_A = 0x837 // 2103 - SYS___RECVFROM_A = 0x838 // 2104 - SYS___SENDTO_A = 0x839 // 2105 - SYS___SENDMSG_A = 0x83A // 2106 - SYS___RECVMSG_A = 0x83B // 2107 - SYS_____LCHATTR_A = 0x83C // 2108 - SYS___CABEND = 0x83D // 2109 - SYS___LE_CIB_GET = 0x83E // 2110 - SYS___SET_LAA_FOR_JIT = 0x83F // 2111 - SYS___LCHATTR = 0x840 // 2112 - SYS___WRITEDOWN = 0x841 // 2113 - SYS_PTHREAD_MUTEX_INIT2 = 0x842 // 2114 - SYS___ACOSHF_B = 0x843 // 2115 - SYS___ACOSHL_B = 0x844 // 2116 - SYS___ASINHF_B = 0x845 // 2117 - SYS___ASINHL_B = 0x846 // 2118 - SYS___ATANHF_B = 0x847 // 2119 - SYS___ATANHL_B = 0x848 // 2120 - SYS___CBRTF_B = 0x849 // 2121 - SYS___CBRTL_B = 0x84A // 2122 - SYS___COPYSIGNF_B = 0x84B // 2123 - SYS___COPYSIGNL_B = 0x84C // 2124 - SYS___COTANF_B = 0x84D // 2125 - SYS___COTAN_B = 0x84E // 2126 - SYS___COTANL_B = 0x84F // 2127 - SYS___EXP2F_B = 0x850 // 2128 - SYS___EXP2L_B = 0x851 // 2129 - SYS___EXPM1F_B = 0x852 // 2130 - SYS___EXPM1L_B = 0x853 // 2131 - SYS___FDIMF_B = 0x854 // 2132 - SYS___FDIM_B = 0x855 // 2133 - SYS___FDIML_B = 0x856 // 2134 - SYS___HYPOTF_B = 0x857 // 2135 - SYS___HYPOTL_B = 0x858 // 2136 - SYS___LOG1PF_B = 0x859 // 2137 - SYS___LOG1PL_B = 0x85A // 2138 - SYS___LOG2F_B = 0x85B // 2139 - SYS___LOG2_B = 0x85C // 2140 - SYS___LOG2L_B = 0x85D // 2141 - SYS___REMAINDERF_B = 0x85E // 2142 - SYS___REMAINDERL_B = 0x85F // 2143 - SYS___REMQUOF_B = 0x860 // 2144 - SYS___REMQUO_B = 0x861 // 2145 - SYS___REMQUOL_B = 0x862 // 2146 - SYS___TGAMMAF_B = 0x863 // 2147 - SYS___TGAMMA_B = 0x864 // 2148 - SYS___TGAMMAL_B = 0x865 // 2149 - SYS___TRUNCF_B = 0x866 // 2150 - SYS___TRUNC_B = 0x867 // 2151 - SYS___TRUNCL_B = 0x868 // 2152 - SYS___LGAMMAF_B = 0x869 // 2153 - SYS___LROUNDF_B = 0x86A // 2154 - SYS___LROUND_B = 0x86B // 2155 - SYS___ERFF_B = 0x86C // 2156 - SYS___ERFCF_B = 0x86D // 2157 - SYS_ACOSHF = 0x86E // 2158 - SYS_ACOSHL = 0x86F // 2159 - SYS_ASINHF = 0x870 // 2160 - SYS_ASINHL = 0x871 // 2161 - SYS_ATANHF = 0x872 // 2162 - SYS_ATANHL = 0x873 // 2163 - SYS_CBRTF = 0x874 // 2164 - SYS_CBRTL = 0x875 // 2165 - SYS_COPYSIGNF = 0x876 // 2166 - SYS_CPYSIGNF = 0x876 // 2166 - SYS_COPYSIGNL = 0x877 // 2167 - SYS_CPYSIGNL = 0x877 // 2167 - SYS_COTANF = 0x878 // 2168 - SYS___COTANF = 0x878 // 2168 - SYS_COTAN = 0x879 // 2169 - SYS___COTAN = 0x879 // 2169 - SYS_COTANL = 0x87A // 2170 - SYS___COTANL = 0x87A // 2170 - SYS_EXP2F = 0x87B // 2171 - SYS_EXP2L = 0x87C // 2172 - SYS_EXPM1F = 0x87D // 2173 - SYS_EXPM1L = 0x87E // 2174 - SYS_FDIMF = 0x87F // 2175 - SYS_FDIM = 0x881 // 2177 - SYS_FDIML = 0x882 // 2178 - SYS_HYPOTF = 0x883 // 2179 - SYS_HYPOTL = 0x884 // 2180 - SYS_LOG1PF = 0x885 // 2181 - SYS_LOG1PL = 0x886 // 2182 - SYS_LOG2F = 0x887 // 2183 - SYS_LOG2 = 0x888 // 2184 - SYS_LOG2L = 0x889 // 2185 - SYS_REMAINDERF = 0x88A // 2186 - SYS_REMAINDF = 0x88A // 2186 - SYS_REMAINDERL = 0x88B // 2187 - SYS_REMAINDL = 0x88B // 2187 - SYS_REMQUOF = 0x88C // 2188 - SYS_REMQUO = 0x88D // 2189 - SYS_REMQUOL = 0x88E // 2190 - SYS_TGAMMAF = 0x88F // 2191 - SYS_TGAMMA = 0x890 // 2192 - SYS_TGAMMAL = 0x891 // 2193 - SYS_TRUNCF = 0x892 // 2194 - SYS_TRUNC = 0x893 // 2195 - SYS_TRUNCL = 0x894 // 2196 - SYS_LGAMMAF = 0x895 // 2197 - SYS_LGAMMAL = 0x896 // 2198 - SYS_LROUNDF = 0x897 // 2199 - SYS_LROUND = 0x898 // 2200 - SYS_ERFF = 0x899 // 2201 - SYS_ERFL = 0x89A // 2202 - SYS_ERFCF = 0x89B // 2203 - SYS_ERFCL = 0x89C // 2204 - SYS___EXP2_B = 0x89D // 2205 - SYS_EXP2 = 0x89E // 2206 - SYS___FAR_JUMP = 0x89F // 2207 - SYS___TCGETATTR_A = 0x8A1 // 2209 - SYS___TCSETATTR_A = 0x8A2 // 2210 - SYS___SUPERKILL = 0x8A4 // 2212 - SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 // 2213 - SYS___LE_MSG_ADD_INSERT = 0x8A6 // 2214 - SYS___LE_MSG_GET = 0x8A7 // 2215 - SYS___LE_MSG_GET_AND_WRITE = 0x8A8 // 2216 - SYS___LE_MSG_WRITE = 0x8A9 // 2217 - SYS___ITOA = 0x8AA // 2218 - SYS___UTOA = 0x8AB // 2219 - SYS___LTOA = 0x8AC // 2220 - SYS___ULTOA = 0x8AD // 2221 - SYS___LLTOA = 0x8AE // 2222 - SYS___ULLTOA = 0x8AF // 2223 - SYS___ITOA_A = 0x8B0 // 2224 - SYS___UTOA_A = 0x8B1 // 2225 - SYS___LTOA_A = 0x8B2 // 2226 - SYS___ULTOA_A = 0x8B3 // 2227 - SYS___LLTOA_A = 0x8B4 // 2228 - SYS___ULLTOA_A = 0x8B5 // 2229 - SYS_____GETENV_A = 0x8C3 // 2243 - SYS___REXEC_A = 0x8C4 // 2244 - SYS___REXEC_AF_A = 0x8C5 // 2245 - SYS___GETUTXENT_A = 0x8C6 // 2246 - SYS___GETUTXID_A = 0x8C7 // 2247 - SYS___GETUTXLINE_A = 0x8C8 // 2248 - SYS___PUTUTXLINE_A = 0x8C9 // 2249 - SYS_____UTMPXNAME_A = 0x8CA // 2250 - SYS___PUTC_UNLOCKED_A = 0x8CB // 2251 - SYS___PUTCHAR_UNLOCKED_A = 0x8CC // 2252 - SYS___SNPRINTF_A = 0x8CD // 2253 - SYS___VSNPRINTF_A = 0x8CE // 2254 - SYS___DLOPEN_A = 0x8D0 // 2256 - SYS___DLSYM_A = 0x8D1 // 2257 - SYS___DLERROR_A = 0x8D2 // 2258 - SYS_FLOCKFILE = 0x8D3 // 2259 - SYS_FTRYLOCKFILE = 0x8D4 // 2260 - SYS_FUNLOCKFILE = 0x8D5 // 2261 - SYS_GETC_UNLOCKED = 0x8D6 // 2262 - SYS_GETCHAR_UNLOCKED = 0x8D7 // 2263 - SYS_PUTC_UNLOCKED = 0x8D8 // 2264 - SYS_PUTCHAR_UNLOCKED = 0x8D9 // 2265 - SYS_SNPRINTF = 0x8DA // 2266 - SYS_VSNPRINTF = 0x8DB // 2267 - SYS_DLOPEN = 0x8DD // 2269 - SYS_DLSYM = 0x8DE // 2270 - SYS_DLCLOSE = 0x8DF // 2271 - SYS_DLERROR = 0x8E0 // 2272 - SYS___SET_EXCEPTION_HANDLER = 0x8E2 // 2274 - SYS___RESET_EXCEPTION_HANDLER = 0x8E3 // 2275 - SYS___VHM_EVENT = 0x8E4 // 2276 - SYS___ABS_H = 0x8E6 // 2278 - SYS___ABSF_H = 0x8E7 // 2279 - SYS___ABSL_H = 0x8E8 // 2280 - SYS___ACOS_H = 0x8E9 // 2281 - SYS___ACOSF_H = 0x8EA // 2282 - SYS___ACOSL_H = 0x8EB // 2283 - SYS___ACOSH_H = 0x8EC // 2284 - SYS___ASIN_H = 0x8ED // 2285 - SYS___ASINF_H = 0x8EE // 2286 - SYS___ASINL_H = 0x8EF // 2287 - SYS___ASINH_H = 0x8F0 // 2288 - SYS___ATAN_H = 0x8F1 // 2289 - SYS___ATANF_H = 0x8F2 // 2290 - SYS___ATANL_H = 0x8F3 // 2291 - SYS___ATANH_H = 0x8F4 // 2292 - SYS___ATANHF_H = 0x8F5 // 2293 - SYS___ATANHL_H = 0x8F6 // 2294 - SYS___ATAN2_H = 0x8F7 // 2295 - SYS___ATAN2F_H = 0x8F8 // 2296 - SYS___ATAN2L_H = 0x8F9 // 2297 - SYS___CBRT_H = 0x8FA // 2298 - SYS___COPYSIGNF_H = 0x8FB // 2299 - SYS___COPYSIGNL_H = 0x8FC // 2300 - SYS___COS_H = 0x8FD // 2301 - SYS___COSF_H = 0x8FE // 2302 - SYS___COSL_H = 0x8FF // 2303 - SYS___COSHF_H = 0x900 // 2304 - SYS___COSHL_H = 0x901 // 2305 - SYS___COTAN_H = 0x902 // 2306 - SYS___COTANF_H = 0x903 // 2307 - SYS___COTANL_H = 0x904 // 2308 - SYS___ERF_H = 0x905 // 2309 - SYS___ERFF_H = 0x906 // 2310 - SYS___ERFL_H = 0x907 // 2311 - SYS___ERFC_H = 0x908 // 2312 - SYS___ERFCF_H = 0x909 // 2313 - SYS___ERFCL_H = 0x90A // 2314 - SYS___EXP_H = 0x90B // 2315 - SYS___EXPF_H = 0x90C // 2316 - SYS___EXPL_H = 0x90D // 2317 - SYS___EXPM1_H = 0x90E // 2318 - SYS___FDIM_H = 0x90F // 2319 - SYS___FDIMF_H = 0x910 // 2320 - SYS___FDIML_H = 0x911 // 2321 - SYS___FMOD_H = 0x912 // 2322 - SYS___FMODF_H = 0x913 // 2323 - SYS___FMODL_H = 0x914 // 2324 - SYS___GAMMA_H = 0x915 // 2325 - SYS___HYPOT_H = 0x916 // 2326 - SYS___ILOGB_H = 0x917 // 2327 - SYS___LGAMMA_H = 0x918 // 2328 - SYS___LGAMMAF_H = 0x919 // 2329 - SYS___LOG_H = 0x91A // 2330 - SYS___LOGF_H = 0x91B // 2331 - SYS___LOGL_H = 0x91C // 2332 - SYS___LOGB_H = 0x91D // 2333 - SYS___LOG2_H = 0x91E // 2334 - SYS___LOG2F_H = 0x91F // 2335 - SYS___LOG2L_H = 0x920 // 2336 - SYS___LOG1P_H = 0x921 // 2337 - SYS___LOG10_H = 0x922 // 2338 - SYS___LOG10F_H = 0x923 // 2339 - SYS___LOG10L_H = 0x924 // 2340 - SYS___LROUND_H = 0x925 // 2341 - SYS___LROUNDF_H = 0x926 // 2342 - SYS___NEXTAFTER_H = 0x927 // 2343 - SYS___POW_H = 0x928 // 2344 - SYS___POWF_H = 0x929 // 2345 - SYS___POWL_H = 0x92A // 2346 - SYS___REMAINDER_H = 0x92B // 2347 - SYS___RINT_H = 0x92C // 2348 - SYS___SCALB_H = 0x92D // 2349 - SYS___SIN_H = 0x92E // 2350 - SYS___SINF_H = 0x92F // 2351 - SYS___SINL_H = 0x930 // 2352 - SYS___SINH_H = 0x931 // 2353 - SYS___SINHF_H = 0x932 // 2354 - SYS___SINHL_H = 0x933 // 2355 - SYS___SQRT_H = 0x934 // 2356 - SYS___SQRTF_H = 0x935 // 2357 - SYS___SQRTL_H = 0x936 // 2358 - SYS___TAN_H = 0x937 // 2359 - SYS___TANF_H = 0x938 // 2360 - SYS___TANL_H = 0x939 // 2361 - SYS___TANH_H = 0x93A // 2362 - SYS___TANHF_H = 0x93B // 2363 - SYS___TANHL_H = 0x93C // 2364 - SYS___TGAMMA_H = 0x93D // 2365 - SYS___TGAMMAF_H = 0x93E // 2366 - SYS___TRUNC_H = 0x93F // 2367 - SYS___TRUNCF_H = 0x940 // 2368 - SYS___TRUNCL_H = 0x941 // 2369 - SYS___COSH_H = 0x942 // 2370 - SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 // 2371 - SYS_VFSCANF = 0x944 // 2372 - SYS_VSCANF = 0x946 // 2374 - SYS_VSSCANF = 0x948 // 2376 - SYS_VFWSCANF = 0x94A // 2378 - SYS_VWSCANF = 0x94C // 2380 - SYS_VSWSCANF = 0x94E // 2382 - SYS_IMAXABS = 0x950 // 2384 - SYS_IMAXDIV = 0x951 // 2385 - SYS_STRTOIMAX = 0x952 // 2386 - SYS_STRTOUMAX = 0x953 // 2387 - SYS_WCSTOIMAX = 0x954 // 2388 - SYS_WCSTOUMAX = 0x955 // 2389 - SYS_ATOLL = 0x956 // 2390 - SYS_STRTOF = 0x957 // 2391 - SYS_STRTOLD = 0x958 // 2392 - SYS_WCSTOF = 0x959 // 2393 - SYS_WCSTOLD = 0x95A // 2394 - SYS_INET6_RTH_SPACE = 0x95B // 2395 - SYS_INET6_RTH_INIT = 0x95C // 2396 - SYS_INET6_RTH_ADD = 0x95D // 2397 - SYS_INET6_RTH_REVERSE = 0x95E // 2398 - SYS_INET6_RTH_SEGMENTS = 0x95F // 2399 - SYS_INET6_RTH_GETADDR = 0x960 // 2400 - SYS_INET6_OPT_INIT = 0x961 // 2401 - SYS_INET6_OPT_APPEND = 0x962 // 2402 - SYS_INET6_OPT_FINISH = 0x963 // 2403 - SYS_INET6_OPT_SET_VAL = 0x964 // 2404 - SYS_INET6_OPT_NEXT = 0x965 // 2405 - SYS_INET6_OPT_FIND = 0x966 // 2406 - SYS_INET6_OPT_GET_VAL = 0x967 // 2407 - SYS___POW_I = 0x987 // 2439 - SYS___POW_I_B = 0x988 // 2440 - SYS___POW_I_H = 0x989 // 2441 - SYS___POW_II = 0x98A // 2442 - SYS___POW_II_B = 0x98B // 2443 - SYS___POW_II_H = 0x98C // 2444 - SYS_CABS = 0x98E // 2446 - SYS___CABS_B = 0x98F // 2447 - SYS___CABS_H = 0x990 // 2448 - SYS_CABSF = 0x991 // 2449 - SYS___CABSF_B = 0x992 // 2450 - SYS___CABSF_H = 0x993 // 2451 - SYS_CABSL = 0x994 // 2452 - SYS___CABSL_B = 0x995 // 2453 - SYS___CABSL_H = 0x996 // 2454 - SYS_CACOS = 0x997 // 2455 - SYS___CACOS_B = 0x998 // 2456 - SYS___CACOS_H = 0x999 // 2457 - SYS_CACOSF = 0x99A // 2458 - SYS___CACOSF_B = 0x99B // 2459 - SYS___CACOSF_H = 0x99C // 2460 - SYS_CACOSL = 0x99D // 2461 - SYS___CACOSL_B = 0x99E // 2462 - SYS___CACOSL_H = 0x99F // 2463 - SYS_CACOSH = 0x9A0 // 2464 - SYS___CACOSH_B = 0x9A1 // 2465 - SYS___CACOSH_H = 0x9A2 // 2466 - SYS_CACOSHF = 0x9A3 // 2467 - SYS___CACOSHF_B = 0x9A4 // 2468 - SYS___CACOSHF_H = 0x9A5 // 2469 - SYS_CACOSHL = 0x9A6 // 2470 - SYS___CACOSHL_B = 0x9A7 // 2471 - SYS___CACOSHL_H = 0x9A8 // 2472 - SYS_CARG = 0x9A9 // 2473 - SYS___CARG_B = 0x9AA // 2474 - SYS___CARG_H = 0x9AB // 2475 - SYS_CARGF = 0x9AC // 2476 - SYS___CARGF_B = 0x9AD // 2477 - SYS___CARGF_H = 0x9AE // 2478 - SYS_CARGL = 0x9AF // 2479 - SYS___CARGL_B = 0x9B0 // 2480 - SYS___CARGL_H = 0x9B1 // 2481 - SYS_CASIN = 0x9B2 // 2482 - SYS___CASIN_B = 0x9B3 // 2483 - SYS___CASIN_H = 0x9B4 // 2484 - SYS_CASINF = 0x9B5 // 2485 - SYS___CASINF_B = 0x9B6 // 2486 - SYS___CASINF_H = 0x9B7 // 2487 - SYS_CASINL = 0x9B8 // 2488 - SYS___CASINL_B = 0x9B9 // 2489 - SYS___CASINL_H = 0x9BA // 2490 - SYS_CASINH = 0x9BB // 2491 - SYS___CASINH_B = 0x9BC // 2492 - SYS___CASINH_H = 0x9BD // 2493 - SYS_CASINHF = 0x9BE // 2494 - SYS___CASINHF_B = 0x9BF // 2495 - SYS___CASINHF_H = 0x9C0 // 2496 - SYS_CASINHL = 0x9C1 // 2497 - SYS___CASINHL_B = 0x9C2 // 2498 - SYS___CASINHL_H = 0x9C3 // 2499 - SYS_CATAN = 0x9C4 // 2500 - SYS___CATAN_B = 0x9C5 // 2501 - SYS___CATAN_H = 0x9C6 // 2502 - SYS_CATANF = 0x9C7 // 2503 - SYS___CATANF_B = 0x9C8 // 2504 - SYS___CATANF_H = 0x9C9 // 2505 - SYS_CATANL = 0x9CA // 2506 - SYS___CATANL_B = 0x9CB // 2507 - SYS___CATANL_H = 0x9CC // 2508 - SYS_CATANH = 0x9CD // 2509 - SYS___CATANH_B = 0x9CE // 2510 - SYS___CATANH_H = 0x9CF // 2511 - SYS_CATANHF = 0x9D0 // 2512 - SYS___CATANHF_B = 0x9D1 // 2513 - SYS___CATANHF_H = 0x9D2 // 2514 - SYS_CATANHL = 0x9D3 // 2515 - SYS___CATANHL_B = 0x9D4 // 2516 - SYS___CATANHL_H = 0x9D5 // 2517 - SYS_CCOS = 0x9D6 // 2518 - SYS___CCOS_B = 0x9D7 // 2519 - SYS___CCOS_H = 0x9D8 // 2520 - SYS_CCOSF = 0x9D9 // 2521 - SYS___CCOSF_B = 0x9DA // 2522 - SYS___CCOSF_H = 0x9DB // 2523 - SYS_CCOSL = 0x9DC // 2524 - SYS___CCOSL_B = 0x9DD // 2525 - SYS___CCOSL_H = 0x9DE // 2526 - SYS_CCOSH = 0x9DF // 2527 - SYS___CCOSH_B = 0x9E0 // 2528 - SYS___CCOSH_H = 0x9E1 // 2529 - SYS_CCOSHF = 0x9E2 // 2530 - SYS___CCOSHF_B = 0x9E3 // 2531 - SYS___CCOSHF_H = 0x9E4 // 2532 - SYS_CCOSHL = 0x9E5 // 2533 - SYS___CCOSHL_B = 0x9E6 // 2534 - SYS___CCOSHL_H = 0x9E7 // 2535 - SYS_CEXP = 0x9E8 // 2536 - SYS___CEXP_B = 0x9E9 // 2537 - SYS___CEXP_H = 0x9EA // 2538 - SYS_CEXPF = 0x9EB // 2539 - SYS___CEXPF_B = 0x9EC // 2540 - SYS___CEXPF_H = 0x9ED // 2541 - SYS_CEXPL = 0x9EE // 2542 - SYS___CEXPL_B = 0x9EF // 2543 - SYS___CEXPL_H = 0x9F0 // 2544 - SYS_CIMAG = 0x9F1 // 2545 - SYS___CIMAG_B = 0x9F2 // 2546 - SYS___CIMAG_H = 0x9F3 // 2547 - SYS_CIMAGF = 0x9F4 // 2548 - SYS___CIMAGF_B = 0x9F5 // 2549 - SYS___CIMAGF_H = 0x9F6 // 2550 - SYS_CIMAGL = 0x9F7 // 2551 - SYS___CIMAGL_B = 0x9F8 // 2552 - SYS___CIMAGL_H = 0x9F9 // 2553 - SYS___CLOG = 0x9FA // 2554 - SYS___CLOG_B = 0x9FB // 2555 - SYS___CLOG_H = 0x9FC // 2556 - SYS_CLOGF = 0x9FD // 2557 - SYS___CLOGF_B = 0x9FE // 2558 - SYS___CLOGF_H = 0x9FF // 2559 - SYS_CLOGL = 0xA00 // 2560 - SYS___CLOGL_B = 0xA01 // 2561 - SYS___CLOGL_H = 0xA02 // 2562 - SYS_CONJ = 0xA03 // 2563 - SYS___CONJ_B = 0xA04 // 2564 - SYS___CONJ_H = 0xA05 // 2565 - SYS_CONJF = 0xA06 // 2566 - SYS___CONJF_B = 0xA07 // 2567 - SYS___CONJF_H = 0xA08 // 2568 - SYS_CONJL = 0xA09 // 2569 - SYS___CONJL_B = 0xA0A // 2570 - SYS___CONJL_H = 0xA0B // 2571 - SYS_CPOW = 0xA0C // 2572 - SYS___CPOW_B = 0xA0D // 2573 - SYS___CPOW_H = 0xA0E // 2574 - SYS_CPOWF = 0xA0F // 2575 - SYS___CPOWF_B = 0xA10 // 2576 - SYS___CPOWF_H = 0xA11 // 2577 - SYS_CPOWL = 0xA12 // 2578 - SYS___CPOWL_B = 0xA13 // 2579 - SYS___CPOWL_H = 0xA14 // 2580 - SYS_CPROJ = 0xA15 // 2581 - SYS___CPROJ_B = 0xA16 // 2582 - SYS___CPROJ_H = 0xA17 // 2583 - SYS_CPROJF = 0xA18 // 2584 - SYS___CPROJF_B = 0xA19 // 2585 - SYS___CPROJF_H = 0xA1A // 2586 - SYS_CPROJL = 0xA1B // 2587 - SYS___CPROJL_B = 0xA1C // 2588 - SYS___CPROJL_H = 0xA1D // 2589 - SYS_CREAL = 0xA1E // 2590 - SYS___CREAL_B = 0xA1F // 2591 - SYS___CREAL_H = 0xA20 // 2592 - SYS_CREALF = 0xA21 // 2593 - SYS___CREALF_B = 0xA22 // 2594 - SYS___CREALF_H = 0xA23 // 2595 - SYS_CREALL = 0xA24 // 2596 - SYS___CREALL_B = 0xA25 // 2597 - SYS___CREALL_H = 0xA26 // 2598 - SYS_CSIN = 0xA27 // 2599 - SYS___CSIN_B = 0xA28 // 2600 - SYS___CSIN_H = 0xA29 // 2601 - SYS_CSINF = 0xA2A // 2602 - SYS___CSINF_B = 0xA2B // 2603 - SYS___CSINF_H = 0xA2C // 2604 - SYS_CSINL = 0xA2D // 2605 - SYS___CSINL_B = 0xA2E // 2606 - SYS___CSINL_H = 0xA2F // 2607 - SYS_CSINH = 0xA30 // 2608 - SYS___CSINH_B = 0xA31 // 2609 - SYS___CSINH_H = 0xA32 // 2610 - SYS_CSINHF = 0xA33 // 2611 - SYS___CSINHF_B = 0xA34 // 2612 - SYS___CSINHF_H = 0xA35 // 2613 - SYS_CSINHL = 0xA36 // 2614 - SYS___CSINHL_B = 0xA37 // 2615 - SYS___CSINHL_H = 0xA38 // 2616 - SYS_CSQRT = 0xA39 // 2617 - SYS___CSQRT_B = 0xA3A // 2618 - SYS___CSQRT_H = 0xA3B // 2619 - SYS_CSQRTF = 0xA3C // 2620 - SYS___CSQRTF_B = 0xA3D // 2621 - SYS___CSQRTF_H = 0xA3E // 2622 - SYS_CSQRTL = 0xA3F // 2623 - SYS___CSQRTL_B = 0xA40 // 2624 - SYS___CSQRTL_H = 0xA41 // 2625 - SYS_CTAN = 0xA42 // 2626 - SYS___CTAN_B = 0xA43 // 2627 - SYS___CTAN_H = 0xA44 // 2628 - SYS_CTANF = 0xA45 // 2629 - SYS___CTANF_B = 0xA46 // 2630 - SYS___CTANF_H = 0xA47 // 2631 - SYS_CTANL = 0xA48 // 2632 - SYS___CTANL_B = 0xA49 // 2633 - SYS___CTANL_H = 0xA4A // 2634 - SYS_CTANH = 0xA4B // 2635 - SYS___CTANH_B = 0xA4C // 2636 - SYS___CTANH_H = 0xA4D // 2637 - SYS_CTANHF = 0xA4E // 2638 - SYS___CTANHF_B = 0xA4F // 2639 - SYS___CTANHF_H = 0xA50 // 2640 - SYS_CTANHL = 0xA51 // 2641 - SYS___CTANHL_B = 0xA52 // 2642 - SYS___CTANHL_H = 0xA53 // 2643 - SYS___ACOSHF_H = 0xA54 // 2644 - SYS___ACOSHL_H = 0xA55 // 2645 - SYS___ASINHF_H = 0xA56 // 2646 - SYS___ASINHL_H = 0xA57 // 2647 - SYS___CBRTF_H = 0xA58 // 2648 - SYS___CBRTL_H = 0xA59 // 2649 - SYS___COPYSIGN_B = 0xA5A // 2650 - SYS___EXPM1F_H = 0xA5B // 2651 - SYS___EXPM1L_H = 0xA5C // 2652 - SYS___EXP2_H = 0xA5D // 2653 - SYS___EXP2F_H = 0xA5E // 2654 - SYS___EXP2L_H = 0xA5F // 2655 - SYS___LOG1PF_H = 0xA60 // 2656 - SYS___LOG1PL_H = 0xA61 // 2657 - SYS___LGAMMAL_H = 0xA62 // 2658 - SYS_FMA = 0xA63 // 2659 - SYS___FMA_B = 0xA64 // 2660 - SYS___FMA_H = 0xA65 // 2661 - SYS_FMAF = 0xA66 // 2662 - SYS___FMAF_B = 0xA67 // 2663 - SYS___FMAF_H = 0xA68 // 2664 - SYS_FMAL = 0xA69 // 2665 - SYS___FMAL_B = 0xA6A // 2666 - SYS___FMAL_H = 0xA6B // 2667 - SYS_FMAX = 0xA6C // 2668 - SYS___FMAX_B = 0xA6D // 2669 - SYS___FMAX_H = 0xA6E // 2670 - SYS_FMAXF = 0xA6F // 2671 - SYS___FMAXF_B = 0xA70 // 2672 - SYS___FMAXF_H = 0xA71 // 2673 - SYS_FMAXL = 0xA72 // 2674 - SYS___FMAXL_B = 0xA73 // 2675 - SYS___FMAXL_H = 0xA74 // 2676 - SYS_FMIN = 0xA75 // 2677 - SYS___FMIN_B = 0xA76 // 2678 - SYS___FMIN_H = 0xA77 // 2679 - SYS_FMINF = 0xA78 // 2680 - SYS___FMINF_B = 0xA79 // 2681 - SYS___FMINF_H = 0xA7A // 2682 - SYS_FMINL = 0xA7B // 2683 - SYS___FMINL_B = 0xA7C // 2684 - SYS___FMINL_H = 0xA7D // 2685 - SYS_ILOGBF = 0xA7E // 2686 - SYS___ILOGBF_B = 0xA7F // 2687 - SYS___ILOGBF_H = 0xA80 // 2688 - SYS_ILOGBL = 0xA81 // 2689 - SYS___ILOGBL_B = 0xA82 // 2690 - SYS___ILOGBL_H = 0xA83 // 2691 - SYS_LLRINT = 0xA84 // 2692 - SYS___LLRINT_B = 0xA85 // 2693 - SYS___LLRINT_H = 0xA86 // 2694 - SYS_LLRINTF = 0xA87 // 2695 - SYS___LLRINTF_B = 0xA88 // 2696 - SYS___LLRINTF_H = 0xA89 // 2697 - SYS_LLRINTL = 0xA8A // 2698 - SYS___LLRINTL_B = 0xA8B // 2699 - SYS___LLRINTL_H = 0xA8C // 2700 - SYS_LLROUND = 0xA8D // 2701 - SYS___LLROUND_B = 0xA8E // 2702 - SYS___LLROUND_H = 0xA8F // 2703 - SYS_LLROUNDF = 0xA90 // 2704 - SYS___LLROUNDF_B = 0xA91 // 2705 - SYS___LLROUNDF_H = 0xA92 // 2706 - SYS_LLROUNDL = 0xA93 // 2707 - SYS___LLROUNDL_B = 0xA94 // 2708 - SYS___LLROUNDL_H = 0xA95 // 2709 - SYS_LOGBF = 0xA96 // 2710 - SYS___LOGBF_B = 0xA97 // 2711 - SYS___LOGBF_H = 0xA98 // 2712 - SYS_LOGBL = 0xA99 // 2713 - SYS___LOGBL_B = 0xA9A // 2714 - SYS___LOGBL_H = 0xA9B // 2715 - SYS_LRINT = 0xA9C // 2716 - SYS___LRINT_B = 0xA9D // 2717 - SYS___LRINT_H = 0xA9E // 2718 - SYS_LRINTF = 0xA9F // 2719 - SYS___LRINTF_B = 0xAA0 // 2720 - SYS___LRINTF_H = 0xAA1 // 2721 - SYS_LRINTL = 0xAA2 // 2722 - SYS___LRINTL_B = 0xAA3 // 2723 - SYS___LRINTL_H = 0xAA4 // 2724 - SYS_LROUNDL = 0xAA5 // 2725 - SYS___LROUNDL_B = 0xAA6 // 2726 - SYS___LROUNDL_H = 0xAA7 // 2727 - SYS_NAN = 0xAA8 // 2728 - SYS___NAN_B = 0xAA9 // 2729 - SYS_NANF = 0xAAA // 2730 - SYS___NANF_B = 0xAAB // 2731 - SYS_NANL = 0xAAC // 2732 - SYS___NANL_B = 0xAAD // 2733 - SYS_NEARBYINT = 0xAAE // 2734 - SYS___NEARBYINT_B = 0xAAF // 2735 - SYS___NEARBYINT_H = 0xAB0 // 2736 - SYS_NEARBYINTF = 0xAB1 // 2737 - SYS___NEARBYINTF_B = 0xAB2 // 2738 - SYS___NEARBYINTF_H = 0xAB3 // 2739 - SYS_NEARBYINTL = 0xAB4 // 2740 - SYS___NEARBYINTL_B = 0xAB5 // 2741 - SYS___NEARBYINTL_H = 0xAB6 // 2742 - SYS_NEXTAFTERF = 0xAB7 // 2743 - SYS___NEXTAFTERF_B = 0xAB8 // 2744 - SYS___NEXTAFTERF_H = 0xAB9 // 2745 - SYS_NEXTAFTERL = 0xABA // 2746 - SYS___NEXTAFTERL_B = 0xABB // 2747 - SYS___NEXTAFTERL_H = 0xABC // 2748 - SYS_NEXTTOWARD = 0xABD // 2749 - SYS___NEXTTOWARD_B = 0xABE // 2750 - SYS___NEXTTOWARD_H = 0xABF // 2751 - SYS_NEXTTOWARDF = 0xAC0 // 2752 - SYS___NEXTTOWARDF_B = 0xAC1 // 2753 - SYS___NEXTTOWARDF_H = 0xAC2 // 2754 - SYS_NEXTTOWARDL = 0xAC3 // 2755 - SYS___NEXTTOWARDL_B = 0xAC4 // 2756 - SYS___NEXTTOWARDL_H = 0xAC5 // 2757 - SYS___REMAINDERF_H = 0xAC6 // 2758 - SYS___REMAINDERL_H = 0xAC7 // 2759 - SYS___REMQUO_H = 0xAC8 // 2760 - SYS___REMQUOF_H = 0xAC9 // 2761 - SYS___REMQUOL_H = 0xACA // 2762 - SYS_RINTF = 0xACB // 2763 - SYS___RINTF_B = 0xACC // 2764 - SYS_RINTL = 0xACD // 2765 - SYS___RINTL_B = 0xACE // 2766 - SYS_ROUND = 0xACF // 2767 - SYS___ROUND_B = 0xAD0 // 2768 - SYS___ROUND_H = 0xAD1 // 2769 - SYS_ROUNDF = 0xAD2 // 2770 - SYS___ROUNDF_B = 0xAD3 // 2771 - SYS___ROUNDF_H = 0xAD4 // 2772 - SYS_ROUNDL = 0xAD5 // 2773 - SYS___ROUNDL_B = 0xAD6 // 2774 - SYS___ROUNDL_H = 0xAD7 // 2775 - SYS_SCALBLN = 0xAD8 // 2776 - SYS___SCALBLN_B = 0xAD9 // 2777 - SYS___SCALBLN_H = 0xADA // 2778 - SYS_SCALBLNF = 0xADB // 2779 - SYS___SCALBLNF_B = 0xADC // 2780 - SYS___SCALBLNF_H = 0xADD // 2781 - SYS_SCALBLNL = 0xADE // 2782 - SYS___SCALBLNL_B = 0xADF // 2783 - SYS___SCALBLNL_H = 0xAE0 // 2784 - SYS___SCALBN_B = 0xAE1 // 2785 - SYS___SCALBN_H = 0xAE2 // 2786 - SYS_SCALBNF = 0xAE3 // 2787 - SYS___SCALBNF_B = 0xAE4 // 2788 - SYS___SCALBNF_H = 0xAE5 // 2789 - SYS_SCALBNL = 0xAE6 // 2790 - SYS___SCALBNL_B = 0xAE7 // 2791 - SYS___SCALBNL_H = 0xAE8 // 2792 - SYS___TGAMMAL_H = 0xAE9 // 2793 - SYS_FECLEAREXCEPT = 0xAEA // 2794 - SYS_FEGETENV = 0xAEB // 2795 - SYS_FEGETEXCEPTFLAG = 0xAEC // 2796 - SYS_FEGETROUND = 0xAED // 2797 - SYS_FEHOLDEXCEPT = 0xAEE // 2798 - SYS_FERAISEEXCEPT = 0xAEF // 2799 - SYS_FESETENV = 0xAF0 // 2800 - SYS_FESETEXCEPTFLAG = 0xAF1 // 2801 - SYS_FESETROUND = 0xAF2 // 2802 - SYS_FETESTEXCEPT = 0xAF3 // 2803 - SYS_FEUPDATEENV = 0xAF4 // 2804 - SYS___COPYSIGN_H = 0xAF5 // 2805 - SYS___HYPOTF_H = 0xAF6 // 2806 - SYS___HYPOTL_H = 0xAF7 // 2807 - SYS___CLASS = 0xAFA // 2810 - SYS___CLASS_B = 0xAFB // 2811 - SYS___CLASS_H = 0xAFC // 2812 - SYS___ISBLANK_A = 0xB2E // 2862 - SYS___ISWBLANK_A = 0xB2F // 2863 - SYS___LROUND_FIXUP = 0xB30 // 2864 - SYS___LROUNDF_FIXUP = 0xB31 // 2865 - SYS_SCHED_YIELD = 0xB32 // 2866 - SYS_STRERROR_R = 0xB33 // 2867 - SYS_UNSETENV = 0xB34 // 2868 - SYS___LGAMMA_H_C99 = 0xB38 // 2872 - SYS___LGAMMA_B_C99 = 0xB39 // 2873 - SYS___LGAMMA_R_C99 = 0xB3A // 2874 - SYS___FTELL2 = 0xB3B // 2875 - SYS___FSEEK2 = 0xB3C // 2876 - SYS___STATIC_REINIT = 0xB3D // 2877 - SYS_PTHREAD_ATTR_GETSTACK = 0xB3E // 2878 - SYS_PTHREAD_ATTR_SETSTACK = 0xB3F // 2879 - SYS___TGAMMA_H_C99 = 0xB78 // 2936 - SYS___TGAMMAF_H_C99 = 0xB79 // 2937 - SYS___LE_TRACEBACK = 0xB7A // 2938 - SYS___MUST_STAY_CLEAN = 0xB7C // 2940 - SYS___O_ENV = 0xB7D // 2941 - SYS_ACOSD32 = 0xB7E // 2942 - SYS_ACOSD64 = 0xB7F // 2943 - SYS_ACOSD128 = 0xB80 // 2944 - SYS_ACOSHD32 = 0xB81 // 2945 - SYS_ACOSHD64 = 0xB82 // 2946 - SYS_ACOSHD128 = 0xB83 // 2947 - SYS_ASIND32 = 0xB84 // 2948 - SYS_ASIND64 = 0xB85 // 2949 - SYS_ASIND128 = 0xB86 // 2950 - SYS_ASINHD32 = 0xB87 // 2951 - SYS_ASINHD64 = 0xB88 // 2952 - SYS_ASINHD128 = 0xB89 // 2953 - SYS_ATAND32 = 0xB8A // 2954 - SYS_ATAND64 = 0xB8B // 2955 - SYS_ATAND128 = 0xB8C // 2956 - SYS_ATAN2D32 = 0xB8D // 2957 - SYS_ATAN2D64 = 0xB8E // 2958 - SYS_ATAN2D128 = 0xB8F // 2959 - SYS_ATANHD32 = 0xB90 // 2960 - SYS_ATANHD64 = 0xB91 // 2961 - SYS_ATANHD128 = 0xB92 // 2962 - SYS_CBRTD32 = 0xB93 // 2963 - SYS_CBRTD64 = 0xB94 // 2964 - SYS_CBRTD128 = 0xB95 // 2965 - SYS_CEILD32 = 0xB96 // 2966 - SYS_CEILD64 = 0xB97 // 2967 - SYS_CEILD128 = 0xB98 // 2968 - SYS___CLASS2 = 0xB99 // 2969 - SYS___CLASS2_B = 0xB9A // 2970 - SYS___CLASS2_H = 0xB9B // 2971 - SYS_COPYSIGND32 = 0xB9C // 2972 - SYS_COPYSIGND64 = 0xB9D // 2973 - SYS_COPYSIGND128 = 0xB9E // 2974 - SYS_COSD32 = 0xB9F // 2975 - SYS_COSD64 = 0xBA0 // 2976 - SYS_COSD128 = 0xBA1 // 2977 - SYS_COSHD32 = 0xBA2 // 2978 - SYS_COSHD64 = 0xBA3 // 2979 - SYS_COSHD128 = 0xBA4 // 2980 - SYS_ERFD32 = 0xBA5 // 2981 - SYS_ERFD64 = 0xBA6 // 2982 - SYS_ERFD128 = 0xBA7 // 2983 - SYS_ERFCD32 = 0xBA8 // 2984 - SYS_ERFCD64 = 0xBA9 // 2985 - SYS_ERFCD128 = 0xBAA // 2986 - SYS_EXPD32 = 0xBAB // 2987 - SYS_EXPD64 = 0xBAC // 2988 - SYS_EXPD128 = 0xBAD // 2989 - SYS_EXP2D32 = 0xBAE // 2990 - SYS_EXP2D64 = 0xBAF // 2991 - SYS_EXP2D128 = 0xBB0 // 2992 - SYS_EXPM1D32 = 0xBB1 // 2993 - SYS_EXPM1D64 = 0xBB2 // 2994 - SYS_EXPM1D128 = 0xBB3 // 2995 - SYS_FABSD32 = 0xBB4 // 2996 - SYS_FABSD64 = 0xBB5 // 2997 - SYS_FABSD128 = 0xBB6 // 2998 - SYS_FDIMD32 = 0xBB7 // 2999 - SYS_FDIMD64 = 0xBB8 // 3000 - SYS_FDIMD128 = 0xBB9 // 3001 - SYS_FE_DEC_GETROUND = 0xBBA // 3002 - SYS_FE_DEC_SETROUND = 0xBBB // 3003 - SYS_FLOORD32 = 0xBBC // 3004 - SYS_FLOORD64 = 0xBBD // 3005 - SYS_FLOORD128 = 0xBBE // 3006 - SYS_FMAD32 = 0xBBF // 3007 - SYS_FMAD64 = 0xBC0 // 3008 - SYS_FMAD128 = 0xBC1 // 3009 - SYS_FMAXD32 = 0xBC2 // 3010 - SYS_FMAXD64 = 0xBC3 // 3011 - SYS_FMAXD128 = 0xBC4 // 3012 - SYS_FMIND32 = 0xBC5 // 3013 - SYS_FMIND64 = 0xBC6 // 3014 - SYS_FMIND128 = 0xBC7 // 3015 - SYS_FMODD32 = 0xBC8 // 3016 - SYS_FMODD64 = 0xBC9 // 3017 - SYS_FMODD128 = 0xBCA // 3018 - SYS___FP_CAST_D = 0xBCB // 3019 - SYS_FREXPD32 = 0xBCC // 3020 - SYS_FREXPD64 = 0xBCD // 3021 - SYS_FREXPD128 = 0xBCE // 3022 - SYS_HYPOTD32 = 0xBCF // 3023 - SYS_HYPOTD64 = 0xBD0 // 3024 - SYS_HYPOTD128 = 0xBD1 // 3025 - SYS_ILOGBD32 = 0xBD2 // 3026 - SYS_ILOGBD64 = 0xBD3 // 3027 - SYS_ILOGBD128 = 0xBD4 // 3028 - SYS_LDEXPD32 = 0xBD5 // 3029 - SYS_LDEXPD64 = 0xBD6 // 3030 - SYS_LDEXPD128 = 0xBD7 // 3031 - SYS_LGAMMAD32 = 0xBD8 // 3032 - SYS_LGAMMAD64 = 0xBD9 // 3033 - SYS_LGAMMAD128 = 0xBDA // 3034 - SYS_LLRINTD32 = 0xBDB // 3035 - SYS_LLRINTD64 = 0xBDC // 3036 - SYS_LLRINTD128 = 0xBDD // 3037 - SYS_LLROUNDD32 = 0xBDE // 3038 - SYS_LLROUNDD64 = 0xBDF // 3039 - SYS_LLROUNDD128 = 0xBE0 // 3040 - SYS_LOGD32 = 0xBE1 // 3041 - SYS_LOGD64 = 0xBE2 // 3042 - SYS_LOGD128 = 0xBE3 // 3043 - SYS_LOG10D32 = 0xBE4 // 3044 - SYS_LOG10D64 = 0xBE5 // 3045 - SYS_LOG10D128 = 0xBE6 // 3046 - SYS_LOG1PD32 = 0xBE7 // 3047 - SYS_LOG1PD64 = 0xBE8 // 3048 - SYS_LOG1PD128 = 0xBE9 // 3049 - SYS_LOG2D32 = 0xBEA // 3050 - SYS_LOG2D64 = 0xBEB // 3051 - SYS_LOG2D128 = 0xBEC // 3052 - SYS_LOGBD32 = 0xBED // 3053 - SYS_LOGBD64 = 0xBEE // 3054 - SYS_LOGBD128 = 0xBEF // 3055 - SYS_LRINTD32 = 0xBF0 // 3056 - SYS_LRINTD64 = 0xBF1 // 3057 - SYS_LRINTD128 = 0xBF2 // 3058 - SYS_LROUNDD32 = 0xBF3 // 3059 - SYS_LROUNDD64 = 0xBF4 // 3060 - SYS_LROUNDD128 = 0xBF5 // 3061 - SYS_MODFD32 = 0xBF6 // 3062 - SYS_MODFD64 = 0xBF7 // 3063 - SYS_MODFD128 = 0xBF8 // 3064 - SYS_NAND32 = 0xBF9 // 3065 - SYS_NAND64 = 0xBFA // 3066 - SYS_NAND128 = 0xBFB // 3067 - SYS_NEARBYINTD32 = 0xBFC // 3068 - SYS_NEARBYINTD64 = 0xBFD // 3069 - SYS_NEARBYINTD128 = 0xBFE // 3070 - SYS_NEXTAFTERD32 = 0xBFF // 3071 - SYS_NEXTAFTERD64 = 0xC00 // 3072 - SYS_NEXTAFTERD128 = 0xC01 // 3073 - SYS_NEXTTOWARDD32 = 0xC02 // 3074 - SYS_NEXTTOWARDD64 = 0xC03 // 3075 - SYS_NEXTTOWARDD128 = 0xC04 // 3076 - SYS_POWD32 = 0xC05 // 3077 - SYS_POWD64 = 0xC06 // 3078 - SYS_POWD128 = 0xC07 // 3079 - SYS_QUANTIZED32 = 0xC08 // 3080 - SYS_QUANTIZED64 = 0xC09 // 3081 - SYS_QUANTIZED128 = 0xC0A // 3082 - SYS_REMAINDERD32 = 0xC0B // 3083 - SYS_REMAINDERD64 = 0xC0C // 3084 - SYS_REMAINDERD128 = 0xC0D // 3085 - SYS___REMQUOD32 = 0xC0E // 3086 - SYS___REMQUOD64 = 0xC0F // 3087 - SYS___REMQUOD128 = 0xC10 // 3088 - SYS_RINTD32 = 0xC11 // 3089 - SYS_RINTD64 = 0xC12 // 3090 - SYS_RINTD128 = 0xC13 // 3091 - SYS_ROUNDD32 = 0xC14 // 3092 - SYS_ROUNDD64 = 0xC15 // 3093 - SYS_ROUNDD128 = 0xC16 // 3094 - SYS_SAMEQUANTUMD32 = 0xC17 // 3095 - SYS_SAMEQUANTUMD64 = 0xC18 // 3096 - SYS_SAMEQUANTUMD128 = 0xC19 // 3097 - SYS_SCALBLND32 = 0xC1A // 3098 - SYS_SCALBLND64 = 0xC1B // 3099 - SYS_SCALBLND128 = 0xC1C // 3100 - SYS_SCALBND32 = 0xC1D // 3101 - SYS_SCALBND64 = 0xC1E // 3102 - SYS_SCALBND128 = 0xC1F // 3103 - SYS_SIND32 = 0xC20 // 3104 - SYS_SIND64 = 0xC21 // 3105 - SYS_SIND128 = 0xC22 // 3106 - SYS_SINHD32 = 0xC23 // 3107 - SYS_SINHD64 = 0xC24 // 3108 - SYS_SINHD128 = 0xC25 // 3109 - SYS_SQRTD32 = 0xC26 // 3110 - SYS_SQRTD64 = 0xC27 // 3111 - SYS_SQRTD128 = 0xC28 // 3112 - SYS_STRTOD32 = 0xC29 // 3113 - SYS_STRTOD64 = 0xC2A // 3114 - SYS_STRTOD128 = 0xC2B // 3115 - SYS_TAND32 = 0xC2C // 3116 - SYS_TAND64 = 0xC2D // 3117 - SYS_TAND128 = 0xC2E // 3118 - SYS_TANHD32 = 0xC2F // 3119 - SYS_TANHD64 = 0xC30 // 3120 - SYS_TANHD128 = 0xC31 // 3121 - SYS_TGAMMAD32 = 0xC32 // 3122 - SYS_TGAMMAD64 = 0xC33 // 3123 - SYS_TGAMMAD128 = 0xC34 // 3124 - SYS_TRUNCD32 = 0xC3E // 3134 - SYS_TRUNCD64 = 0xC3F // 3135 - SYS_TRUNCD128 = 0xC40 // 3136 - SYS_WCSTOD32 = 0xC41 // 3137 - SYS_WCSTOD64 = 0xC42 // 3138 - SYS_WCSTOD128 = 0xC43 // 3139 - SYS___CODEPAGE_INFO = 0xC64 // 3172 - SYS_POSIX_OPENPT = 0xC66 // 3174 - SYS_PSELECT = 0xC67 // 3175 - SYS_SOCKATMARK = 0xC68 // 3176 - SYS_AIO_FSYNC = 0xC69 // 3177 - SYS_LIO_LISTIO = 0xC6A // 3178 - SYS___ATANPID32 = 0xC6B // 3179 - SYS___ATANPID64 = 0xC6C // 3180 - SYS___ATANPID128 = 0xC6D // 3181 - SYS___COSPID32 = 0xC6E // 3182 - SYS___COSPID64 = 0xC6F // 3183 - SYS___COSPID128 = 0xC70 // 3184 - SYS___SINPID32 = 0xC71 // 3185 - SYS___SINPID64 = 0xC72 // 3186 - SYS___SINPID128 = 0xC73 // 3187 - SYS_SETIPV4SOURCEFILTER = 0xC76 // 3190 - SYS_GETIPV4SOURCEFILTER = 0xC77 // 3191 - SYS_SETSOURCEFILTER = 0xC78 // 3192 - SYS_GETSOURCEFILTER = 0xC79 // 3193 - SYS_FWRITE_UNLOCKED = 0xC7A // 3194 - SYS_FREAD_UNLOCKED = 0xC7B // 3195 - SYS_FGETS_UNLOCKED = 0xC7C // 3196 - SYS_GETS_UNLOCKED = 0xC7D // 3197 - SYS_FPUTS_UNLOCKED = 0xC7E // 3198 - SYS_PUTS_UNLOCKED = 0xC7F // 3199 - SYS_FGETC_UNLOCKED = 0xC80 // 3200 - SYS_FPUTC_UNLOCKED = 0xC81 // 3201 - SYS_DLADDR = 0xC82 // 3202 - SYS_SHM_OPEN = 0xC8C // 3212 - SYS_SHM_UNLINK = 0xC8D // 3213 - SYS___CLASS2F = 0xC91 // 3217 - SYS___CLASS2L = 0xC92 // 3218 - SYS___CLASS2F_B = 0xC93 // 3219 - SYS___CLASS2F_H = 0xC94 // 3220 - SYS___CLASS2L_B = 0xC95 // 3221 - SYS___CLASS2L_H = 0xC96 // 3222 - SYS___CLASS2D32 = 0xC97 // 3223 - SYS___CLASS2D64 = 0xC98 // 3224 - SYS___CLASS2D128 = 0xC99 // 3225 - SYS___TOCSNAME2 = 0xC9A // 3226 - SYS___D1TOP = 0xC9B // 3227 - SYS___D2TOP = 0xC9C // 3228 - SYS___D4TOP = 0xC9D // 3229 - SYS___PTOD1 = 0xC9E // 3230 - SYS___PTOD2 = 0xC9F // 3231 - SYS___PTOD4 = 0xCA0 // 3232 - SYS_CLEARERR_UNLOCKED = 0xCA1 // 3233 - SYS_FDELREC_UNLOCKED = 0xCA2 // 3234 - SYS_FEOF_UNLOCKED = 0xCA3 // 3235 - SYS_FERROR_UNLOCKED = 0xCA4 // 3236 - SYS_FFLUSH_UNLOCKED = 0xCA5 // 3237 - SYS_FGETPOS_UNLOCKED = 0xCA6 // 3238 - SYS_FGETWC_UNLOCKED = 0xCA7 // 3239 - SYS_FGETWS_UNLOCKED = 0xCA8 // 3240 - SYS_FILENO_UNLOCKED = 0xCA9 // 3241 - SYS_FLDATA_UNLOCKED = 0xCAA // 3242 - SYS_FLOCATE_UNLOCKED = 0xCAB // 3243 - SYS_FPRINTF_UNLOCKED = 0xCAC // 3244 - SYS_FPUTWC_UNLOCKED = 0xCAD // 3245 - SYS_FPUTWS_UNLOCKED = 0xCAE // 3246 - SYS_FSCANF_UNLOCKED = 0xCAF // 3247 - SYS_FSEEK_UNLOCKED = 0xCB0 // 3248 - SYS_FSEEKO_UNLOCKED = 0xCB1 // 3249 - SYS_FSETPOS_UNLOCKED = 0xCB3 // 3251 - SYS_FTELL_UNLOCKED = 0xCB4 // 3252 - SYS_FTELLO_UNLOCKED = 0xCB5 // 3253 - SYS_FUPDATE_UNLOCKED = 0xCB7 // 3255 - SYS_FWIDE_UNLOCKED = 0xCB8 // 3256 - SYS_FWPRINTF_UNLOCKED = 0xCB9 // 3257 - SYS_FWSCANF_UNLOCKED = 0xCBA // 3258 - SYS_GETWC_UNLOCKED = 0xCBB // 3259 - SYS_GETWCHAR_UNLOCKED = 0xCBC // 3260 - SYS_PERROR_UNLOCKED = 0xCBD // 3261 - SYS_PRINTF_UNLOCKED = 0xCBE // 3262 - SYS_PUTWC_UNLOCKED = 0xCBF // 3263 - SYS_PUTWCHAR_UNLOCKED = 0xCC0 // 3264 - SYS_REWIND_UNLOCKED = 0xCC1 // 3265 - SYS_SCANF_UNLOCKED = 0xCC2 // 3266 - SYS_UNGETC_UNLOCKED = 0xCC3 // 3267 - SYS_UNGETWC_UNLOCKED = 0xCC4 // 3268 - SYS_VFPRINTF_UNLOCKED = 0xCC5 // 3269 - SYS_VFSCANF_UNLOCKED = 0xCC7 // 3271 - SYS_VFWPRINTF_UNLOCKED = 0xCC9 // 3273 - SYS_VFWSCANF_UNLOCKED = 0xCCB // 3275 - SYS_VPRINTF_UNLOCKED = 0xCCD // 3277 - SYS_VSCANF_UNLOCKED = 0xCCF // 3279 - SYS_VWPRINTF_UNLOCKED = 0xCD1 // 3281 - SYS_VWSCANF_UNLOCKED = 0xCD3 // 3283 - SYS_WPRINTF_UNLOCKED = 0xCD5 // 3285 - SYS_WSCANF_UNLOCKED = 0xCD6 // 3286 - SYS_ASCTIME64 = 0xCD7 // 3287 - SYS_ASCTIME64_R = 0xCD8 // 3288 - SYS_CTIME64 = 0xCD9 // 3289 - SYS_CTIME64_R = 0xCDA // 3290 - SYS_DIFFTIME64 = 0xCDB // 3291 - SYS_GMTIME64 = 0xCDC // 3292 - SYS_GMTIME64_R = 0xCDD // 3293 - SYS_LOCALTIME64 = 0xCDE // 3294 - SYS_LOCALTIME64_R = 0xCDF // 3295 - SYS_MKTIME64 = 0xCE0 // 3296 - SYS_TIME64 = 0xCE1 // 3297 - SYS___LOGIN_APPLID = 0xCE2 // 3298 - SYS___PASSWD_APPLID = 0xCE3 // 3299 - SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 // 3300 - SYS___GETTHENT = 0xCE5 // 3301 - SYS_FREEIFADDRS = 0xCE6 // 3302 - SYS_GETIFADDRS = 0xCE7 // 3303 - SYS_POSIX_FALLOCATE = 0xCE8 // 3304 - SYS_POSIX_MEMALIGN = 0xCE9 // 3305 - SYS_SIZEOF_ALLOC = 0xCEA // 3306 - SYS_RESIZE_ALLOC = 0xCEB // 3307 - SYS_FREAD_NOUPDATE = 0xCEC // 3308 - SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED // 3309 - SYS_FGETPOS64 = 0xCEE // 3310 - SYS_FSEEK64 = 0xCEF // 3311 - SYS_FSEEKO64 = 0xCF0 // 3312 - SYS_FSETPOS64 = 0xCF1 // 3313 - SYS_FTELL64 = 0xCF2 // 3314 - SYS_FTELLO64 = 0xCF3 // 3315 - SYS_FGETPOS64_UNLOCKED = 0xCF4 // 3316 - SYS_FSEEK64_UNLOCKED = 0xCF5 // 3317 - SYS_FSEEKO64_UNLOCKED = 0xCF6 // 3318 - SYS_FSETPOS64_UNLOCKED = 0xCF7 // 3319 - SYS_FTELL64_UNLOCKED = 0xCF8 // 3320 - SYS_FTELLO64_UNLOCKED = 0xCF9 // 3321 - SYS_FOPEN_UNLOCKED = 0xCFA // 3322 - SYS_FREOPEN_UNLOCKED = 0xCFB // 3323 - SYS_FDOPEN_UNLOCKED = 0xCFC // 3324 - SYS_TMPFILE_UNLOCKED = 0xCFD // 3325 - SYS___MOSERVICES = 0xD3D // 3389 - SYS___GETTOD = 0xD3E // 3390 - SYS_C16RTOMB = 0xD40 // 3392 - SYS_C32RTOMB = 0xD41 // 3393 - SYS_MBRTOC16 = 0xD42 // 3394 - SYS_MBRTOC32 = 0xD43 // 3395 - SYS_QUANTEXPD32 = 0xD44 // 3396 - SYS_QUANTEXPD64 = 0xD45 // 3397 - SYS_QUANTEXPD128 = 0xD46 // 3398 - SYS___LOCALE_CTL = 0xD47 // 3399 - SYS___SMF_RECORD2 = 0xD48 // 3400 - SYS_FOPEN64 = 0xD49 // 3401 - SYS_FOPEN64_UNLOCKED = 0xD4A // 3402 - SYS_FREOPEN64 = 0xD4B // 3403 - SYS_FREOPEN64_UNLOCKED = 0xD4C // 3404 - SYS_TMPFILE64 = 0xD4D // 3405 - SYS_TMPFILE64_UNLOCKED = 0xD4E // 3406 - SYS_GETDATE64 = 0xD4F // 3407 - SYS_GETTIMEOFDAY64 = 0xD50 // 3408 - SYS_BIND2ADDRSEL = 0xD59 // 3417 - SYS_INET6_IS_SRCADDR = 0xD5A // 3418 - SYS___GETGRGID1 = 0xD5B // 3419 - SYS___GETGRNAM1 = 0xD5C // 3420 - SYS___FBUFSIZE = 0xD60 // 3424 - SYS___FPENDING = 0xD61 // 3425 - SYS___FLBF = 0xD62 // 3426 - SYS___FREADABLE = 0xD63 // 3427 - SYS___FWRITABLE = 0xD64 // 3428 - SYS___FREADING = 0xD65 // 3429 - SYS___FWRITING = 0xD66 // 3430 - SYS___FSETLOCKING = 0xD67 // 3431 - SYS__FLUSHLBF = 0xD68 // 3432 - SYS___FPURGE = 0xD69 // 3433 - SYS___FREADAHEAD = 0xD6A // 3434 - SYS___FSETERR = 0xD6B // 3435 - SYS___FPENDING_UNLOCKED = 0xD6C // 3436 - SYS___FREADING_UNLOCKED = 0xD6D // 3437 - SYS___FWRITING_UNLOCKED = 0xD6E // 3438 - SYS__FLUSHLBF_UNLOCKED = 0xD6F // 3439 - SYS___FPURGE_UNLOCKED = 0xD70 // 3440 - SYS___FREADAHEAD_UNLOCKED = 0xD71 // 3441 - SYS___LE_CEEGTJS = 0xD72 // 3442 - SYS___LE_RECORD_DUMP = 0xD73 // 3443 - SYS_FSTAT64 = 0xD74 // 3444 - SYS_LSTAT64 = 0xD75 // 3445 - SYS_STAT64 = 0xD76 // 3446 - SYS___READDIR2_64 = 0xD77 // 3447 - SYS___OPEN_STAT64 = 0xD78 // 3448 - SYS_FTW64 = 0xD79 // 3449 - SYS_NFTW64 = 0xD7A // 3450 - SYS_UTIME64 = 0xD7B // 3451 - SYS_UTIMES64 = 0xD7C // 3452 - SYS___GETIPC64 = 0xD7D // 3453 - SYS_MSGCTL64 = 0xD7E // 3454 - SYS_SEMCTL64 = 0xD7F // 3455 - SYS_SHMCTL64 = 0xD80 // 3456 - SYS_MSGXRCV64 = 0xD81 // 3457 - SYS___MGXR64 = 0xD81 // 3457 - SYS_W_GETPSENT64 = 0xD82 // 3458 - SYS_PTHREAD_COND_TIMEDWAIT64 = 0xD83 // 3459 - SYS_FTIME64 = 0xD85 // 3461 - SYS_GETUTXENT64 = 0xD86 // 3462 - SYS_GETUTXID64 = 0xD87 // 3463 - SYS_GETUTXLINE64 = 0xD88 // 3464 - SYS_PUTUTXLINE64 = 0xD89 // 3465 - SYS_NEWLOCALE = 0xD8A // 3466 - SYS_FREELOCALE = 0xD8B // 3467 - SYS_USELOCALE = 0xD8C // 3468 - SYS_DUPLOCALE = 0xD8D // 3469 - SYS___CHATTR64 = 0xD9C // 3484 - SYS___LCHATTR64 = 0xD9D // 3485 - SYS___FCHATTR64 = 0xD9E // 3486 - SYS_____CHATTR64_A = 0xD9F // 3487 - SYS_____LCHATTR64_A = 0xDA0 // 3488 - SYS___LE_CEEUSGD = 0xDA1 // 3489 - SYS___LE_IFAM_CON = 0xDA2 // 3490 - SYS___LE_IFAM_DSC = 0xDA3 // 3491 - SYS___LE_IFAM_GET = 0xDA4 // 3492 - SYS___LE_IFAM_QRY = 0xDA5 // 3493 - SYS_ALIGNED_ALLOC = 0xDA6 // 3494 - SYS_ACCEPT4 = 0xDA7 // 3495 - SYS___ACCEPT4_A = 0xDA8 // 3496 - SYS_COPYFILERANGE = 0xDA9 // 3497 - SYS_GETLINE = 0xDAA // 3498 - SYS___GETLINE_A = 0xDAB // 3499 - SYS_DIRFD = 0xDAC // 3500 - SYS_CLOCK_GETTIME = 0xDAD // 3501 - SYS_DUP3 = 0xDAE // 3502 - SYS_EPOLL_CREATE = 0xDAF // 3503 - SYS_EPOLL_CREATE1 = 0xDB0 // 3504 - SYS_EPOLL_CTL = 0xDB1 // 3505 - SYS_EPOLL_WAIT = 0xDB2 // 3506 - SYS_EPOLL_PWAIT = 0xDB3 // 3507 - SYS_EVENTFD = 0xDB4 // 3508 - SYS_STATFS = 0xDB5 // 3509 - SYS___STATFS_A = 0xDB6 // 3510 - SYS_FSTATFS = 0xDB7 // 3511 - SYS_INOTIFY_INIT = 0xDB8 // 3512 - SYS_INOTIFY_INIT1 = 0xDB9 // 3513 - SYS_INOTIFY_ADD_WATCH = 0xDBA // 3514 - SYS___INOTIFY_ADD_WATCH_A = 0xDBB // 3515 - SYS_INOTIFY_RM_WATCH = 0xDBC // 3516 - SYS_PIPE2 = 0xDBD // 3517 - SYS_PIVOT_ROOT = 0xDBE // 3518 - SYS___PIVOT_ROOT_A = 0xDBF // 3519 - SYS_PRCTL = 0xDC0 // 3520 - SYS_PRLIMIT = 0xDC1 // 3521 - SYS_SETHOSTNAME = 0xDC2 // 3522 - SYS___SETHOSTNAME_A = 0xDC3 // 3523 - SYS_SETRESUID = 0xDC4 // 3524 - SYS_SETRESGID = 0xDC5 // 3525 - SYS_PTHREAD_CONDATTR_GETCLOCK = 0xDC6 // 3526 - SYS_FLOCK = 0xDC7 // 3527 - SYS_FGETXATTR = 0xDC8 // 3528 - SYS___FGETXATTR_A = 0xDC9 // 3529 - SYS_FLISTXATTR = 0xDCA // 3530 - SYS___FLISTXATTR_A = 0xDCB // 3531 - SYS_FREMOVEXATTR = 0xDCC // 3532 - SYS___FREMOVEXATTR_A = 0xDCD // 3533 - SYS_FSETXATTR = 0xDCE // 3534 - SYS___FSETXATTR_A = 0xDCF // 3535 - SYS_GETXATTR = 0xDD0 // 3536 - SYS___GETXATTR_A = 0xDD1 // 3537 - SYS_LGETXATTR = 0xDD2 // 3538 - SYS___LGETXATTR_A = 0xDD3 // 3539 - SYS_LISTXATTR = 0xDD4 // 3540 - SYS___LISTXATTR_A = 0xDD5 // 3541 - SYS_LLISTXATTR = 0xDD6 // 3542 - SYS___LLISTXATTR_A = 0xDD7 // 3543 - SYS_LREMOVEXATTR = 0xDD8 // 3544 - SYS___LREMOVEXATTR_A = 0xDD9 // 3545 - SYS_LSETXATTR = 0xDDA // 3546 - SYS___LSETXATTR_A = 0xDDB // 3547 - SYS_REMOVEXATTR = 0xDDC // 3548 - SYS___REMOVEXATTR_A = 0xDDD // 3549 - SYS_SETXATTR = 0xDDE // 3550 - SYS___SETXATTR_A = 0xDDF // 3551 - SYS_FDATASYNC = 0xDE0 // 3552 - SYS_SYNCFS = 0xDE1 // 3553 - SYS_FUTIMES = 0xDE2 // 3554 - SYS_FUTIMESAT = 0xDE3 // 3555 - SYS___FUTIMESAT_A = 0xDE4 // 3556 - SYS_LUTIMES = 0xDE5 // 3557 - SYS___LUTIMES_A = 0xDE6 // 3558 - SYS_INET_ATON = 0xDE7 // 3559 - SYS_GETRANDOM = 0xDE8 // 3560 - SYS_GETTID = 0xDE9 // 3561 - SYS_MEMFD_CREATE = 0xDEA // 3562 - SYS___MEMFD_CREATE_A = 0xDEB // 3563 - SYS_FACCESSAT = 0xDEC // 3564 - SYS___FACCESSAT_A = 0xDED // 3565 - SYS_FCHMODAT = 0xDEE // 3566 - SYS___FCHMODAT_A = 0xDEF // 3567 - SYS_FCHOWNAT = 0xDF0 // 3568 - SYS___FCHOWNAT_A = 0xDF1 // 3569 - SYS_FSTATAT = 0xDF2 // 3570 - SYS___FSTATAT_A = 0xDF3 // 3571 - SYS_LINKAT = 0xDF4 // 3572 - SYS___LINKAT_A = 0xDF5 // 3573 - SYS_MKDIRAT = 0xDF6 // 3574 - SYS___MKDIRAT_A = 0xDF7 // 3575 - SYS_MKFIFOAT = 0xDF8 // 3576 - SYS___MKFIFOAT_A = 0xDF9 // 3577 - SYS_MKNODAT = 0xDFA // 3578 - SYS___MKNODAT_A = 0xDFB // 3579 - SYS_OPENAT = 0xDFC // 3580 - SYS___OPENAT_A = 0xDFD // 3581 - SYS_READLINKAT = 0xDFE // 3582 - SYS___READLINKAT_A = 0xDFF // 3583 - SYS_RENAMEAT = 0xE00 // 3584 - SYS___RENAMEAT_A = 0xE01 // 3585 - SYS_RENAMEAT2 = 0xE02 // 3586 - SYS___RENAMEAT2_A = 0xE03 // 3587 - SYS_SYMLINKAT = 0xE04 // 3588 - SYS___SYMLINKAT_A = 0xE05 // 3589 - SYS_UNLINKAT = 0xE06 // 3590 - SYS___UNLINKAT_A = 0xE07 // 3591 - SYS_SYSINFO = 0xE08 // 3592 - SYS_WAIT4 = 0xE0A // 3594 - SYS_CLONE = 0xE0B // 3595 - SYS_UNSHARE = 0xE0C // 3596 - SYS_SETNS = 0xE0D // 3597 - SYS_CAPGET = 0xE0E // 3598 - SYS_CAPSET = 0xE0F // 3599 - SYS_STRCHRNUL = 0xE10 // 3600 - SYS_PTHREAD_CONDATTR_SETCLOCK = 0xE12 // 3602 - SYS_OPEN_BY_HANDLE_AT = 0xE13 // 3603 - SYS___OPEN_BY_HANDLE_AT_A = 0xE14 // 3604 - SYS___INET_ATON_A = 0xE15 // 3605 - SYS_MOUNT1 = 0xE16 // 3606 - SYS___MOUNT1_A = 0xE17 // 3607 - SYS_UMOUNT1 = 0xE18 // 3608 - SYS___UMOUNT1_A = 0xE19 // 3609 - SYS_UMOUNT2 = 0xE1A // 3610 - SYS___UMOUNT2_A = 0xE1B // 3611 - SYS___PRCTL_A = 0xE1C // 3612 - SYS_LOCALTIME_R2 = 0xE1D // 3613 - SYS___LOCALTIME_R2_A = 0xE1E // 3614 - SYS_OPENAT2 = 0xE1F // 3615 - SYS___OPENAT2_A = 0xE20 // 3616 - SYS___LE_CEEMICT = 0xE21 // 3617 - SYS_GETENTROPY = 0xE22 // 3618 - SYS_NANOSLEEP = 0xE23 // 3619 - SYS_UTIMENSAT = 0xE24 // 3620 - SYS___UTIMENSAT_A = 0xE25 // 3621 - SYS_ASPRINTF = 0xE26 // 3622 - SYS___ASPRINTF_A = 0xE27 // 3623 - SYS_VASPRINTF = 0xE28 // 3624 - SYS___VASPRINTF_A = 0xE29 // 3625 - SYS_DPRINTF = 0xE2A // 3626 - SYS___DPRINTF_A = 0xE2B // 3627 - SYS_GETOPT_LONG = 0xE2C // 3628 - SYS___GETOPT_LONG_A = 0xE2D // 3629 - SYS_PSIGNAL = 0xE2E // 3630 - SYS___PSIGNAL_A = 0xE2F // 3631 - SYS_PSIGNAL_UNLOCKED = 0xE30 // 3632 - SYS___PSIGNAL_UNLOCKED_A = 0xE31 // 3633 - SYS_FSTATAT_O = 0xE32 // 3634 - SYS___FSTATAT_O_A = 0xE33 // 3635 - SYS_FSTATAT64 = 0xE34 // 3636 - SYS___FSTATAT64_A = 0xE35 // 3637 - SYS___CHATTRAT = 0xE36 // 3638 - SYS_____CHATTRAT_A = 0xE37 // 3639 - SYS___CHATTRAT64 = 0xE38 // 3640 - SYS_____CHATTRAT64_A = 0xE39 // 3641 - SYS_MADVISE = 0xE3A // 3642 - SYS___AUTHENTICATE = 0xE3B // 3643 - -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go deleted file mode 100644 index 3e6d57c..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +++ /dev/null @@ -1,353 +0,0 @@ -// cgo -godefs types_aix.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && aix - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x3ff -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type off64 int64 -type off int32 -type Mode_t uint32 - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Timex struct{} - -type Time_t int32 - -type Tms struct{} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Timezone struct { - Minuteswest int32 - Dsttime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type Pid_t int32 - -type _Gid_t uint32 - -type dev_t uint32 - -type Stat_t struct { - Dev uint32 - Ino uint32 - Mode uint32 - Nlink int16 - Flag uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Size int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Blocks int32 - Vfstype int32 - Vfs uint32 - Type uint32 - Gen uint32 - Reserved [9]uint32 -} - -type StatxTimestamp struct{} - -type Statx_t struct{} - -type Dirent struct { - Offset uint32 - Ino uint32 - Reclen uint16 - Namlen uint16 - Name [256]uint8 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -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 [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 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [1012]uint8 -} - -type _Socklen uint32 - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x404 - SizeofSockaddrUnix = 0x401 - SizeofSockaddrDatalink = 0x80 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofICMPv6Filter = 0x20 -) - -const ( - SizeofIfMsghdr = 0x10 -) - -type IfMsgHdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Addrlen uint8 - _ [1]byte -} - -type FdSet struct { - Bits [2048]int32 -} - -type Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - Version [32]byte - Machine [32]byte -} - -type Ustat_t struct{} - -type Sigset_t struct { - Losigs uint32 - Hisigs uint32 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x1 - AT_SYMLINK_NOFOLLOW = 0x1 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [16]uint8 -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line uint8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type PollFd struct { - Fd int32 - Events uint16 - Revents uint16 -} - -const ( - POLLERR = 0x4000 - POLLHUP = 0x2000 - POLLIN = 0x1 - POLLNVAL = 0x8000 - POLLOUT = 0x2 - POLLPRI = 0x4 - POLLRDBAND = 0x20 - POLLRDNORM = 0x10 - POLLWRBAND = 0x40 - POLLWRNORM = 0x2 -) - -type Flock_t struct { - Type int16 - Whence int16 - Sysid uint32 - Pid int32 - Vfs int32 - Start int64 - Len int64 -} - -type Fsid_t struct { - Val [2]uint32 -} -type Fsid64_t struct { - Val [2]uint64 -} - -type Statfs_t struct { - Version int32 - Type int32 - Bsize uint32 - Blocks uint32 - Bfree uint32 - Bavail uint32 - Files uint32 - Ffree uint32 - Fsid Fsid_t - Vfstype int32 - Fsize uint32 - Vfsnumber int32 - Vfsoff int32 - Vfslen int32 - Vfsvers int32 - Fname [32]uint8 - Fpack [32]uint8 - Name_max int32 -} - -const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go deleted file mode 100644 index 3a219bd..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +++ /dev/null @@ -1,357 +0,0 @@ -// cgo -godefs types_aix.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && aix - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x3ff -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type off64 int64 -type off int64 -type Mode_t uint32 - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Timex struct{} - -type Time_t int64 - -type Tms struct{} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Timezone struct { - Minuteswest int32 - Dsttime int32 -} - -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 Pid_t int32 - -type _Gid_t uint32 - -type dev_t uint64 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink int16 - Flag uint16 - Uid uint32 - Gid uint32 - Rdev uint64 - Ssize int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int64 - Blocks int64 - Vfstype int32 - Vfs uint32 - Type uint32 - Gen uint32 - Reserved [9]uint32 - Padto_ll uint32 - Size int64 -} - -type StatxTimestamp struct{} - -type Statx_t struct{} - -type Dirent struct { - Offset uint64 - Ino uint64 - Reclen uint16 - Namlen uint16 - Name [256]uint8 - _ [4]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -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 [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 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [1012]uint8 -} - -type _Socklen uint32 - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -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 IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x404 - SizeofSockaddrUnix = 0x401 - SizeofSockaddrDatalink = 0x80 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofICMPv6Filter = 0x20 -) - -const ( - SizeofIfMsghdr = 0x10 -) - -type IfMsgHdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Addrlen uint8 - _ [1]byte -} - -type FdSet struct { - Bits [1024]int64 -} - -type Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - Version [32]byte - Machine [32]byte -} - -type Ustat_t struct{} - -type Sigset_t struct { - Set [4]uint64 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x1 - AT_SYMLINK_NOFOLLOW = 0x1 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [16]uint8 -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line uint8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type PollFd struct { - Fd int32 - Events uint16 - Revents uint16 -} - -const ( - POLLERR = 0x4000 - POLLHUP = 0x2000 - POLLIN = 0x1 - POLLNVAL = 0x8000 - POLLOUT = 0x2 - POLLPRI = 0x4 - POLLRDBAND = 0x20 - POLLRDNORM = 0x10 - POLLWRBAND = 0x40 - POLLWRNORM = 0x2 -) - -type Flock_t struct { - Type int16 - Whence int16 - Sysid uint32 - Pid int32 - Vfs int32 - Start int64 - Len int64 -} - -type Fsid_t struct { - Val [2]uint32 -} -type Fsid64_t struct { - Val [2]uint64 -} - -type Statfs_t struct { - Version int32 - Type int32 - Bsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid64_t - Vfstype int32 - Fsize uint64 - Vfsnumber int32 - Vfsoff int32 - Vfslen int32 - Vfsvers int32 - Fname [32]uint8 - Fpack [32]uint8 - Name_max int32 - _ [4]byte -} - -const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go deleted file mode 100644 index 17c53bd..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ /dev/null @@ -1,878 +0,0 @@ -// cgo -godefs types_darwin.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && darwin - -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 int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -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 { - 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 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]byte - Mntonname [1024]byte - Mntfromname [1024]byte - Flags_ext uint32 - Reserved [7]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 - _ [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - _ [16]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - _ [3]byte -} - -type Attrlist struct { - Bitmapcount uint16 - Reserved uint16 - Commonattr uint32 - Volattr uint32 - Dirattr uint32 - Fileattr uint32 - Forkattr uint32 -} - -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 [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type RawSockaddrCtl struct { - Sc_len uint8 - Sc_family uint8 - Ss_sysaddr uint16 - Sc_id uint32 - Sc_unit uint32 - Sc_reserved [5]uint32 -} - -type RawSockaddrVM struct { - Len uint8 - Family uint8 - Reserved1 uint16 - Port uint32 - Cid uint32 -} - -type XVSockPCB struct { - Xv_len uint32 - Xv_vsockpp uint64 - Xvp_local_cid uint32 - Xvp_local_port uint32 - Xvp_remote_cid uint32 - Xvp_remote_port uint32 - Xvp_rxcnt uint32 - Xvp_txcnt uint32 - Xvp_peer_rxhiwat uint32 - Xvp_peer_rxcnt uint32 - Xvp_last_pid int32 - Xvp_gencnt uint64 - Xv_socket XSocket - _ [4]byte -} - -type XSocket struct { - Xso_len uint32 - Xso_so uint32 - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - So_pcb uint32 - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSocket64 struct { - Xso_len uint32 - _ [8]byte - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - _ [8]byte - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSockbuf struct { - Cc uint32 - Hiwat uint32 - Mbcnt uint32 - Mbmax uint32 - Lowat int32 - Flags int16 - Timeo int16 -} - -type XVSockPgen struct { - Len uint32 - Count uint64 - Gen uint64 - Sogen uint64 -} - -type _Socklen uint32 - -type SaeAssocID uint32 - -type SaeConnID uint32 - -type SaEndpoints struct { - Srcif uint32 - Srcaddr *RawSockaddr - Srcaddrlen uint32 - Dstaddr *RawSockaddr - Dstaddrlen uint32 - _ [4]byte -} - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]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 IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type TCPConnectionInfo struct { - State uint8 - Snd_wscale uint8 - Rcv_wscale uint8 - _ uint8 - Options uint32 - Flags uint32 - Rto uint32 - Maxseg uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Snd_wnd uint32 - Snd_sbbytes uint32 - Rcv_wnd uint32 - Rttcur uint32 - Srtt uint32 - Rttvar uint32 - Txpackets uint64 - Txbytes uint64 - Txretransmitbytes uint64 - Rxpackets uint64 - Rxbytes uint64 - Rxoutoforderbytes uint64 - Txretransmitpackets uint64 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofSockaddrCtl = 0x20 - SizeofSockaddrVM = 0xc - SizeofXvsockpcb = 0xa8 - SizeofXSocket = 0x64 - SizeofXSockbuf = 0x18 - SizeofXVSockPgen = 0x20 - SizeofXucred = 0x4c - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofTCPConnectionInfo = 0x70 -) - -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]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfMsghdr2 = 0xa0 - SizeofIfData = 0x60 - SizeofIfData64 = 0x80 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMsghdr2 = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Snd_len int32 - Snd_maxlen int32 - Snd_drops int32 - Timer int32 - Data IfData64 -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfData64 struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Refcnt int32 - Parentflags int32 - Reserved int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - State uint32 - Filler [3]uint32 -} - -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 Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Ispeed uint64 - Ospeed uint64 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 - AT_EACCESS = 0x10 -) - -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 Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} - -type CtlInfo struct { - Id uint32 - Name [96]byte -} - -const SizeofKinfoProc = 0x288 - -type Eproc struct { - Paddr uintptr - Sess uintptr - Pcred Pcred - Ucred Ucred - Vm Vmspace - Ppid int32 - Pgid int32 - Jobc int16 - Tdev int32 - Tpgid int32 - Tsess uintptr - Wmesg [8]byte - Xsize int32 - Xrssize int16 - Xccount int16 - Xswrss int16 - Flag int32 - Login [12]byte - Spare [4]int32 - _ [4]byte -} - -type ExternProc struct { - P_starttime Timeval - P_vmspace *Vmspace - P_sigacts uintptr - P_flag int32 - P_stat int8 - P_pid int32 - P_oppid int32 - P_dupfd int32 - User_stack *int8 - Exit_thread *byte - P_debugger int32 - Sigwait int32 - P_estcpu uint32 - P_cpticks int32 - P_pctcpu uint32 - P_wchan *byte - P_wmesg *int8 - P_swtime uint32 - P_slptime uint32 - P_realtimer Itimerval - P_rtime Timeval - P_uticks uint64 - P_sticks uint64 - P_iticks uint64 - P_traceflag int32 - P_tracep uintptr - P_siglist int32 - P_textvp uintptr - P_holdcnt int32 - P_sigmask uint32 - P_sigignore uint32 - P_sigcatch uint32 - P_priority uint8 - P_usrpri uint8 - P_nice int8 - P_comm [17]byte - P_pgrp uintptr - P_addr uintptr - P_xstat uint16 - P_acflag uint16 - P_ru *Rusage -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -type KinfoProc struct { - Proc ExternProc - Eproc Eproc -} - -type Vmspace struct { - Dummy int32 - Dummy2 *int8 - Dummy3 [5]int32 - Dummy4 [3]*int8 -} - -type Pcred struct { - Pc_lock [72]int8 - Pc_ucred uintptr - P_ruid uint32 - P_svuid uint32 - P_rgid uint32 - P_svgid uint32 - P_refcnt int32 - _ [4]byte -} - -type Ucred struct { - Ref int32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 -} - -type SysvIpcPerm struct { - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ uint16 - _ int32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Lpid int32 - Cpid int32 - Nattch uint16 - _ [34]byte -} - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go deleted file mode 100644 index 2392226..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +++ /dev/null @@ -1,878 +0,0 @@ -// cgo -godefs types_darwin.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && darwin - -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 int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -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 { - 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 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]byte - Mntonname [1024]byte - Mntfromname [1024]byte - Flags_ext uint32 - Reserved [7]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 - _ [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - _ [16]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - _ [3]byte -} - -type Attrlist struct { - Bitmapcount uint16 - Reserved uint16 - Commonattr uint32 - Volattr uint32 - Dirattr uint32 - Fileattr uint32 - Forkattr uint32 -} - -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 [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type RawSockaddrCtl struct { - Sc_len uint8 - Sc_family uint8 - Ss_sysaddr uint16 - Sc_id uint32 - Sc_unit uint32 - Sc_reserved [5]uint32 -} - -type RawSockaddrVM struct { - Len uint8 - Family uint8 - Reserved1 uint16 - Port uint32 - Cid uint32 -} - -type XVSockPCB struct { - Xv_len uint32 - Xv_vsockpp uint64 - Xvp_local_cid uint32 - Xvp_local_port uint32 - Xvp_remote_cid uint32 - Xvp_remote_port uint32 - Xvp_rxcnt uint32 - Xvp_txcnt uint32 - Xvp_peer_rxhiwat uint32 - Xvp_peer_rxcnt uint32 - Xvp_last_pid int32 - Xvp_gencnt uint64 - Xv_socket XSocket - _ [4]byte -} - -type XSocket struct { - Xso_len uint32 - Xso_so uint32 - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - So_pcb uint32 - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSocket64 struct { - Xso_len uint32 - _ [8]byte - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - _ [8]byte - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSockbuf struct { - Cc uint32 - Hiwat uint32 - Mbcnt uint32 - Mbmax uint32 - Lowat int32 - Flags int16 - Timeo int16 -} - -type XVSockPgen struct { - Len uint32 - Count uint64 - Gen uint64 - Sogen uint64 -} - -type _Socklen uint32 - -type SaeAssocID uint32 - -type SaeConnID uint32 - -type SaEndpoints struct { - Srcif uint32 - Srcaddr *RawSockaddr - Srcaddrlen uint32 - Dstaddr *RawSockaddr - Dstaddrlen uint32 - _ [4]byte -} - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]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 IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type TCPConnectionInfo struct { - State uint8 - Snd_wscale uint8 - Rcv_wscale uint8 - _ uint8 - Options uint32 - Flags uint32 - Rto uint32 - Maxseg uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Snd_wnd uint32 - Snd_sbbytes uint32 - Rcv_wnd uint32 - Rttcur uint32 - Srtt uint32 - Rttvar uint32 - Txpackets uint64 - Txbytes uint64 - Txretransmitbytes uint64 - Rxpackets uint64 - Rxbytes uint64 - Rxoutoforderbytes uint64 - Txretransmitpackets uint64 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofSockaddrCtl = 0x20 - SizeofSockaddrVM = 0xc - SizeofXvsockpcb = 0xa8 - SizeofXSocket = 0x64 - SizeofXSockbuf = 0x18 - SizeofXVSockPgen = 0x20 - SizeofXucred = 0x4c - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofTCPConnectionInfo = 0x70 -) - -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]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfMsghdr2 = 0xa0 - SizeofIfData = 0x60 - SizeofIfData64 = 0x80 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMsghdr2 = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Snd_len int32 - Snd_maxlen int32 - Snd_drops int32 - Timer int32 - Data IfData64 -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfData64 struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Refcnt int32 - Parentflags int32 - Reserved int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - State uint32 - Filler [3]uint32 -} - -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 Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Ispeed uint64 - Ospeed uint64 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 - AT_EACCESS = 0x10 -) - -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 Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} - -type CtlInfo struct { - Id uint32 - Name [96]byte -} - -const SizeofKinfoProc = 0x288 - -type Eproc struct { - Paddr uintptr - Sess uintptr - Pcred Pcred - Ucred Ucred - Vm Vmspace - Ppid int32 - Pgid int32 - Jobc int16 - Tdev int32 - Tpgid int32 - Tsess uintptr - Wmesg [8]byte - Xsize int32 - Xrssize int16 - Xccount int16 - Xswrss int16 - Flag int32 - Login [12]byte - Spare [4]int32 - _ [4]byte -} - -type ExternProc struct { - P_starttime Timeval - P_vmspace *Vmspace - P_sigacts uintptr - P_flag int32 - P_stat int8 - P_pid int32 - P_oppid int32 - P_dupfd int32 - User_stack *int8 - Exit_thread *byte - P_debugger int32 - Sigwait int32 - P_estcpu uint32 - P_cpticks int32 - P_pctcpu uint32 - P_wchan *byte - P_wmesg *int8 - P_swtime uint32 - P_slptime uint32 - P_realtimer Itimerval - P_rtime Timeval - P_uticks uint64 - P_sticks uint64 - P_iticks uint64 - P_traceflag int32 - P_tracep uintptr - P_siglist int32 - P_textvp uintptr - P_holdcnt int32 - P_sigmask uint32 - P_sigignore uint32 - P_sigcatch uint32 - P_priority uint8 - P_usrpri uint8 - P_nice int8 - P_comm [17]byte - P_pgrp uintptr - P_addr uintptr - P_xstat uint16 - P_acflag uint16 - P_ru *Rusage -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -type KinfoProc struct { - Proc ExternProc - Eproc Eproc -} - -type Vmspace struct { - Dummy int32 - Dummy2 *int8 - Dummy3 [5]int32 - Dummy4 [3]*int8 -} - -type Pcred struct { - Pc_lock [72]int8 - Pc_ucred uintptr - P_ruid uint32 - P_svuid uint32 - P_rgid uint32 - P_svgid uint32 - P_refcnt int32 - _ [4]byte -} - -type Ucred struct { - Ref int32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 -} - -type SysvIpcPerm struct { - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ uint16 - _ int32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Lpid int32 - Cpid int32 - Nattch uint16 - _ [34]byte -} - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go deleted file mode 100644 index 30e405b..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +++ /dev/null @@ -1,473 +0,0 @@ -// cgo -godefs types_dragonfly.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && dragonfly - -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 int64 - Max int64 -} - -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 - _ uint32 - Flags uint32 - Gen uint32 - Lspare int32 - Blksize int64 - Qspare2 int64 -} - -type Statfs_t struct { - Spare2 int64 - Bsize int64 - Iosize int64 - Blocks int64 - Bfree int64 - Bavail int64 - Files int64 - Ffree int64 - Fsid Fsid - Owner uint32 - Type int32 - Flags int32 - Syncwrites int64 - Asyncwrites int64 - Fstypename [16]byte - Mntonname [80]byte - Syncreads int64 - Asyncreads int64 - Spares1 int16 - Mntfromname [80]byte - Spares2 int16 - Spare [2]int64 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Namlen uint16 - Type uint8 - Unused1 uint8 - Unused2 uint32 - 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 [12]int8 - Rcf uint16 - Route [16]uint16 -} - -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 int32 - 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 = 0x36 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - 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 [16]uint64 -} - -const ( - SizeofIfMsghdr = 0xb0 - SizeofIfData = 0xa0 - SizeofIfaMsghdr = 0x18 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Data IfData -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Mtu uint64 - Metric uint64 - Link_state uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Oqdrops uint64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Addrflags int32 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Pksent uint64 - Expire uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Recvpipe uint64 - Hopcount uint64 - Mssopt uint16 - Pad uint16 - Msl uint64 - Iwmaxsegs uint64 - Iwcapsegs uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -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 Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = 0xfffafdcd - AT_SYMLINK_NOFOLLOW = 0x1 - AT_REMOVEDIR = 0x2 - AT_EACCESS = 0x4 - AT_SYMLINK_FOLLOW = 0x8 -) - -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 Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - Version [32]byte - Machine [32]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_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go deleted file mode 100644 index 51e13eb..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ /dev/null @@ -1,651 +0,0 @@ -// cgo -godefs types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && freebsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Time_t int32 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x50 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [4]byte - _ [32]byte -} -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [4]byte - _ [32]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - Fs uint32 - Es uint32 - Ds uint32 - Edi uint32 - Esi uint32 - Ebp uint32 - Isp uint32 - Ebx uint32 - Edx uint32 - Ecx uint32 - Eax uint32 - Trapno uint32 - Err uint32 - Eip uint32 - Cs uint32 - Eflags uint32 - Esp uint32 - Ss uint32 - Gs uint32 -} - -type FpReg struct { - Env [7]uint32 - Acc [8][10]uint8 - Ex_sw uint32 - Pad [64]uint8 -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint32 -} - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0x60 - sizeofIfData = 0x98 - SizeofIfData = 0x50 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - Epoch int32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Weight uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0xc - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go deleted file mode 100644 index d002d8e..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ /dev/null @@ -1,656 +0,0 @@ -// cgo -godefs types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && freebsd - -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 Time_t 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 int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -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 IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [8]byte - _ [40]byte -} - -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [8]byte - _ [40]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - R15 int64 - R14 int64 - R13 int64 - R12 int64 - R11 int64 - R10 int64 - R9 int64 - R8 int64 - Rdi int64 - Rsi int64 - Rbp int64 - Rbx int64 - Rdx int64 - Rcx int64 - Rax int64 - Trapno uint32 - Fs uint16 - Gs uint16 - Err uint32 - Es uint16 - Ds uint16 - Rip int64 - Cs int64 - Rflags int64 - Rsp int64 - Ss int64 -} - -type FpReg struct { - Env [4]uint64 - Acc [8][16]uint8 - Xacc [16][16]uint8 - Spare [12]uint64 -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Filler [3]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go deleted file mode 100644 index 3f863d8..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ /dev/null @@ -1,642 +0,0 @@ -// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && freebsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - _ [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Time_t int64 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x50 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [4]byte - _ [32]byte -} - -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [4]byte - _ [32]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - R [13]uint32 - Sp uint32 - Lr uint32 - Pc uint32 - Cpsr uint32 -} - -type FpReg struct { - Fpsr uint32 - Fpr [8]FpExtendedPrecision -} - -type FpExtendedPrecision struct { - Exponent uint32 - Mantissa_hi uint32 - Mantissa_lo uint32 -} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint32 -} - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - _ [4]byte - Data int64 - Udata *byte - _ [4]byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0x70 - sizeofIfData = 0x98 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - _ [4]byte - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Weight uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0xc - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go deleted file mode 100644 index 61c7293..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ /dev/null @@ -1,636 +0,0 @@ -// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && freebsd - -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 Time_t 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 int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -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 IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [8]byte - _ [40]byte -} - -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [8]byte - _ [40]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - X [30]uint64 - Lr uint64 - Sp uint64 - Elr uint64 - Spsr uint32 - _ [4]byte -} - -type FpReg struct { - Q [32][16]uint8 - Sr uint32 - Cr uint32 - _ [8]byte -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Filler [3]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go deleted file mode 100644 index b5d1741..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +++ /dev/null @@ -1,638 +0,0 @@ -// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && freebsd - -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 Time_t 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 int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -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 IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - Tdname [20]int8 - Child_pid int32 - Syscall_code uint32 - Syscall_narg uint32 -} - -type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [8]byte - _ [40]byte -} - -type __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [8]byte - _ [40]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - Ra uint64 - Sp uint64 - Gp uint64 - Tp uint64 - T [7]uint64 - S [12]uint64 - A [8]uint64 - Sepc uint64 - Sstatus uint64 -} - -type FpReg struct { - X [32][2]uint64 - Fcsr uint64 -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Nhidx uint64 - Filler [2]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Spare int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go deleted file mode 100644 index 944e75a..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ /dev/null @@ -1,6334 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go:build linux - -package unix - -const ( - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - - _C_long_long int64 -) - -type ItimerSpec struct { - Interval Timespec - Value Timespec -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -const ( - ADJ_OFFSET = 0x1 - ADJ_FREQUENCY = 0x2 - ADJ_MAXERROR = 0x4 - ADJ_ESTERROR = 0x8 - ADJ_STATUS = 0x10 - ADJ_TIMECONST = 0x20 - ADJ_TAI = 0x80 - ADJ_SETOFFSET = 0x100 - ADJ_MICRO = 0x1000 - ADJ_NANO = 0x2000 - ADJ_TICK = 0x4000 - ADJ_OFFSET_SINGLESHOT = 0x8001 - ADJ_OFFSET_SS_READ = 0xa001 -) - -const ( - STA_PLL = 0x1 - STA_PPSFREQ = 0x2 - STA_PPSTIME = 0x4 - STA_FLL = 0x8 - STA_INS = 0x10 - STA_DEL = 0x20 - STA_UNSYNC = 0x40 - STA_FREQHOLD = 0x80 - STA_PPSSIGNAL = 0x100 - STA_PPSJITTER = 0x200 - STA_PPSWANDER = 0x400 - STA_PPSERROR = 0x800 - STA_CLOCKERR = 0x1000 - STA_NANO = 0x2000 - STA_MODE = 0x4000 - STA_CLK = 0x8000 -) - -const ( - TIME_OK = 0x0 - TIME_INS = 0x1 - TIME_DEL = 0x2 - TIME_OOP = 0x3 - TIME_WAIT = 0x4 - TIME_ERROR = 0x5 - TIME_BAD = 0x5 -) - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - Mnt_id uint64 - Dio_mem_align uint32 - Dio_offset_align uint32 - Subvol uint64 - Atomic_write_unit_min uint32 - Atomic_write_unit_max uint32 - Atomic_write_segments_max uint32 - Dio_read_offset_align uint32 - Atomic_write_unit_max_opt uint32 - _ [1]uint32 - _ [8]uint64 -} - -type Fsid struct { - Val [2]int32 -} - -type FileCloneRange struct { - Src_fd int64 - Src_offset uint64 - Src_length uint64 - Dest_offset uint64 -} - -type RawFileDedupeRange struct { - Src_offset uint64 - Src_length uint64 - Dest_count uint16 - Reserved1 uint16 - Reserved2 uint32 -} - -type RawFileDedupeRangeInfo struct { - Dest_fd int64 - Dest_offset uint64 - Bytes_deduped uint64 - Status int32 - Reserved uint32 -} - -const ( - SizeofRawFileDedupeRange = 0x18 - SizeofRawFileDedupeRangeInfo = 0x20 - FILE_DEDUPE_RANGE_SAME = 0x0 - FILE_DEDUPE_RANGE_DIFFERS = 0x1 -) - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type FscryptPolicyV1 struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptPolicyV2 struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Log2_data_unit_size uint8 - _ [3]uint8 - Master_key_identifier [16]uint8 -} - -type FscryptGetPolicyExArg struct { - Size uint64 - Policy [24]byte -} - -type FscryptKeySpecifier struct { - Type uint32 - _ uint32 - U [32]byte -} - -type FscryptAddKeyArg struct { - Key_spec FscryptKeySpecifier - Raw_size uint32 - Key_id uint32 - Flags uint32 - _ [7]uint32 -} - -type FscryptRemoveKeyArg struct { - Key_spec FscryptKeySpecifier - Removal_status_flags uint32 - _ [5]uint32 -} - -type FscryptGetKeyStatusArg struct { - Key_spec FscryptKeySpecifier - _ [6]uint32 - Status uint32 - Status_flags uint32 - User_count uint32 - _ [13]uint32 -} - -type DmIoctl struct { - Version [3]uint32 - Data_size uint32 - Data_start uint32 - Target_count uint32 - Open_count int32 - Flags uint32 - Event_nr uint32 - _ uint32 - Dev uint64 - Name [128]byte - Uuid [129]byte - Data [7]byte -} - -type DmTargetSpec struct { - Sector_start uint64 - Length uint64 - Status int32 - Next uint32 - Target_type [16]byte -} - -type DmTargetDeps struct { - Count uint32 - _ uint32 -} - -type DmTargetVersions struct { - Next uint32 - Version [3]uint32 -} - -type DmTargetMsg struct { - Sector uint64 -} - -const ( - SizeofDmIoctl = 0x138 - SizeofDmTargetSpec = 0x28 -) - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [16]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Flags uint8 - Zero [3]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - -type RawSockaddrL2TPIP struct { - Family uint16 - Unused uint16 - Addr [4]byte /* in_addr */ - Conn_id uint32 - _ [4]uint8 -} - -type RawSockaddrL2TPIP6 struct { - Family uint16 - Unused uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - Conn_id uint32 -} - -type RawSockaddrIUCV struct { - Family uint16 - Port uint16 - Addr uint32 - Nodeid [8]int8 - User_id [8]int8 - Name [8]int8 -} - -type RawSockaddrNFC struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 - Pacing_rate uint64 - Max_pacing_rate uint64 - Bytes_acked uint64 - Bytes_received uint64 - Segs_out uint32 - Segs_in uint32 - Notsent_bytes uint32 - Min_rtt uint32 - Data_segs_in uint32 - Data_segs_out uint32 - Delivery_rate uint64 - Busy_time uint64 - Rwnd_limited uint64 - Sndbuf_limited uint64 - Delivered uint32 - Delivered_ce uint32 - Bytes_sent uint64 - Bytes_retrans uint64 - Dsack_dups uint32 - Reord_seen uint32 - Rcv_ooopack uint32 - Snd_wnd uint32 - Rcv_wnd uint32 - Rehash uint32 - Total_rto uint16 - Total_rto_recoveries uint16 - Total_rto_time uint32 -} - -type TCPVegasInfo struct { - Enabled uint32 - Rttcnt uint32 - Rtt uint32 - Minrtt uint32 -} - -type TCPDCTCPInfo struct { - Enabled uint16 - Ce_state uint16 - Alpha uint32 - Ab_ecn uint32 - Ab_tot uint32 -} - -type TCPBBRInfo struct { - Bw_lo uint32 - Bw_hi uint32 - Min_rtt uint32 - Pacing_gain uint32 - Cwnd_gain uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - -type TCPRepairOpt struct { - Code uint32 - Val uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x18 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofSockaddrL2TPIP = 0x10 - SizeofSockaddrL2TPIP6 = 0x20 - SizeofSockaddrIUCV = 0x20 - SizeofSockaddrNFC = 0x10 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0xf8 - SizeofTCPCCInfo = 0x14 - SizeofCanFilter = 0x8 - SizeofTCPRepairOpt = 0x8 -) - -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 - IFAL_LABEL = 0x2 - IFAL_ADDRESS = 0x1 - 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 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfAddrlblmsg = 0xc - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfAddrlblmsg struct { - Family uint8 - _ uint8 - Prefixlen uint8 - Flags uint8 - Index uint32 - Seq uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - ICMP_FILTER = 0x1 - - ICMPV6_FILTER = 0x1 - ICMPV6_FILTER_BLOCK = 0x1 - ICMPV6_FILTER_BLOCKOTHERS = 0x3 - ICMPV6_FILTER_PASS = 0x2 - ICMPV6_FILTER_PASSONLY = 0x4 -) - -const ( - SizeofSockFilter = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -const SI_LOAD_SHIFT = 0x10 - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_RECURSIVE = 0x8000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 - - OPEN_TREE_CLONE = 0x1 - - MOVE_MOUNT_F_SYMLINKS = 0x1 - MOVE_MOUNT_F_AUTOMOUNTS = 0x2 - MOVE_MOUNT_F_EMPTY_PATH = 0x4 - MOVE_MOUNT_T_SYMLINKS = 0x10 - MOVE_MOUNT_T_AUTOMOUNTS = 0x20 - MOVE_MOUNT_T_EMPTY_PATH = 0x40 - MOVE_MOUNT_SET_GROUP = 0x100 - - FSOPEN_CLOEXEC = 0x1 - - FSPICK_CLOEXEC = 0x1 - FSPICK_SYMLINK_NOFOLLOW = 0x2 - FSPICK_NO_AUTOMOUNT = 0x4 - FSPICK_EMPTY_PATH = 0x8 - - FSMOUNT_CLOEXEC = 0x1 - - FSCONFIG_SET_FLAG = 0x0 - FSCONFIG_SET_STRING = 0x1 - FSCONFIG_SET_BINARY = 0x2 - FSCONFIG_SET_PATH = 0x3 - FSCONFIG_SET_PATH_EMPTY = 0x4 - FSCONFIG_SET_FD = 0x5 - FSCONFIG_CMD_CREATE = 0x6 - FSCONFIG_CMD_RECONFIGURE = 0x7 -) - -type OpenHow struct { - Flags uint64 - Mode uint64 - Resolve uint64 -} - -const SizeofOpenHow = 0x18 - -const ( - RESOLVE_BENEATH = 0x8 - RESOLVE_IN_ROOT = 0x10 - RESOLVE_NO_MAGICLINKS = 0x2 - RESOLVE_NO_SYMLINKS = 0x4 - RESOLVE_NO_XDEV = 0x1 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type sigset_argpack struct { - ss *Sigset_t - ssLen uintptr -} - -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_CMD_GETPOLICY = 0xa - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_POLICY = 0x8 - CTRL_ATTR_OP_POLICY = 0x9 - CTRL_ATTR_OP = 0xa - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 - CTRL_ATTR_POLICY_UNSPEC = 0x0 - CTRL_ATTR_POLICY_DO = 0x1 - CTRL_ATTR_POLICY_DUMP = 0x2 - CTRL_ATTR_POLICY_DUMP_MAX = 0x2 -) - -const ( - _CPU_SETSIZE = 0x400 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 - Aux_sample_size uint32 - _ uint32 - Sig_data uint64 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ uint32 - Time_cycles uint64 - Time_mask uint64 - _ [928]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 - PerfBitWriteBackward = CBitFieldMaskBit27 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - PERF_TYPE_MAX = 0x6 - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - PERF_COUNT_HW_MAX = 0xa - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - PERF_COUNT_HW_CACHE_MAX = 0x7 - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - PERF_COUNT_HW_CACHE_OP_MAX = 0x3 - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - PERF_COUNT_HW_CACHE_RESULT_MAX = 0x2 - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - PERF_COUNT_SW_MAX = 0xc - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - PERF_SAMPLE_REGS_USER = 0x1000 - PERF_SAMPLE_STACK_USER = 0x2000 - PERF_SAMPLE_WEIGHT = 0x4000 - PERF_SAMPLE_DATA_SRC = 0x8000 - PERF_SAMPLE_IDENTIFIER = 0x10000 - PERF_SAMPLE_TRANSACTION = 0x20000 - PERF_SAMPLE_REGS_INTR = 0x40000 - PERF_SAMPLE_PHYS_ADDR = 0x80000 - PERF_SAMPLE_AUX = 0x100000 - PERF_SAMPLE_CGROUP = 0x200000 - PERF_SAMPLE_DATA_PAGE_SIZE = 0x400000 - PERF_SAMPLE_CODE_PAGE_SIZE = 0x800000 - PERF_SAMPLE_WEIGHT_STRUCT = 0x1000000 - PERF_SAMPLE_MAX = 0x2000000 - PERF_SAMPLE_BRANCH_USER_SHIFT = 0x0 - PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 0x1 - PERF_SAMPLE_BRANCH_HV_SHIFT = 0x2 - PERF_SAMPLE_BRANCH_ANY_SHIFT = 0x3 - PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 0x4 - PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 0x5 - PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 0x6 - PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 0x7 - PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 0x8 - PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 0x9 - PERF_SAMPLE_BRANCH_COND_SHIFT = 0xa - PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 0xb - PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 0xc - PERF_SAMPLE_BRANCH_CALL_SHIFT = 0xd - PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 0xe - PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 0xf - PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 - PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 - PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 0x12 - PERF_SAMPLE_BRANCH_COUNTERS = 0x80000 - PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x14 - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - 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_SAMPLE_BRANCH_HW_INDEX = 0x20000 - PERF_SAMPLE_BRANCH_PRIV_SAVE = 0x40000 - PERF_SAMPLE_BRANCH_MAX = 0x100000 - PERF_BR_UNKNOWN = 0x0 - PERF_BR_COND = 0x1 - PERF_BR_UNCOND = 0x2 - PERF_BR_IND = 0x3 - PERF_BR_CALL = 0x4 - PERF_BR_IND_CALL = 0x5 - PERF_BR_RET = 0x6 - PERF_BR_SYSCALL = 0x7 - PERF_BR_SYSRET = 0x8 - PERF_BR_COND_CALL = 0x9 - PERF_BR_COND_RET = 0xa - PERF_BR_ERET = 0xb - PERF_BR_IRQ = 0xc - PERF_BR_SERROR = 0xd - PERF_BR_NO_TX = 0xe - PERF_BR_EXTEND_ABI = 0xf - PERF_BR_MAX = 0x10 - PERF_SAMPLE_REGS_ABI_NONE = 0x0 - PERF_SAMPLE_REGS_ABI_32 = 0x1 - PERF_SAMPLE_REGS_ABI_64 = 0x2 - PERF_TXN_ELISION = 0x1 - PERF_TXN_TRANSACTION = 0x2 - PERF_TXN_SYNC = 0x4 - PERF_TXN_ASYNC = 0x8 - PERF_TXN_RETRY = 0x10 - PERF_TXN_CONFLICT = 0x20 - PERF_TXN_CAPACITY_WRITE = 0x40 - PERF_TXN_CAPACITY_READ = 0x80 - PERF_TXN_MAX = 0x100 - PERF_TXN_ABORT_MASK = -0x100000000 - PERF_TXN_ABORT_SHIFT = 0x20 - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - PERF_FORMAT_LOST = 0x10 - PERF_FORMAT_MAX = 0x20 - PERF_IOC_FLAG_GROUP = 0x1 - 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_KSYMBOL = 0x11 - PERF_RECORD_BPF_EVENT = 0x12 - PERF_RECORD_CGROUP = 0x13 - PERF_RECORD_TEXT_POKE = 0x14 - PERF_RECORD_AUX_OUTPUT_HW_ID = 0x15 - PERF_RECORD_MAX = 0x16 - PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0x0 - PERF_RECORD_KSYMBOL_TYPE_BPF = 0x1 - PERF_RECORD_KSYMBOL_TYPE_OOL = 0x2 - PERF_RECORD_KSYMBOL_TYPE_MAX = 0x3 - PERF_BPF_EVENT_UNKNOWN = 0x0 - PERF_BPF_EVENT_PROG_LOAD = 0x1 - PERF_BPF_EVENT_PROG_UNLOAD = 0x2 - PERF_BPF_EVENT_MAX = 0x3 - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - PERF_CONTEXT_MAX = -0xfff -) - -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - Ifindex int32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - 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 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - -const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 -) - -const ( - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - 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_PROP_LIST = 0x34 - IFLA_ALT_IFNAME = 0x35 - IFLA_PERM_ADDRESS = 0x36 - IFLA_PROTO_DOWN_REASON = 0x37 - IFLA_PARENT_DEV_NAME = 0x38 - IFLA_PARENT_DEV_BUS_NAME = 0x39 - IFLA_GRO_MAX_SIZE = 0x3a - IFLA_TSO_MAX_SIZE = 0x3b - IFLA_TSO_MAX_SEGS = 0x3c - IFLA_ALLMULTI = 0x3d - IFLA_DEVLINK_PORT = 0x3e - IFLA_GSO_IPV4_MAX_SIZE = 0x3f - IFLA_GRO_IPV4_MAX_SIZE = 0x40 - IFLA_DPLL_PIN = 0x41 - IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 - IFLA_PROTO_DOWN_REASON_MASK = 0x1 - IFLA_PROTO_DOWN_REASON_VALUE = 0x2 - IFLA_PROTO_DOWN_REASON_MAX = 0x2 - IFLA_INET_UNSPEC = 0x0 - IFLA_INET_CONF = 0x1 - IFLA_INET6_UNSPEC = 0x0 - IFLA_INET6_FLAGS = 0x1 - IFLA_INET6_CONF = 0x2 - IFLA_INET6_STATS = 0x3 - IFLA_INET6_MCAST = 0x4 - IFLA_INET6_CACHEINFO = 0x5 - IFLA_INET6_ICMP6STATS = 0x6 - IFLA_INET6_TOKEN = 0x7 - IFLA_INET6_ADDR_GEN_MODE = 0x8 - IFLA_INET6_RA_MTU = 0x9 - IFLA_BR_UNSPEC = 0x0 - IFLA_BR_FORWARD_DELAY = 0x1 - IFLA_BR_HELLO_TIME = 0x2 - IFLA_BR_MAX_AGE = 0x3 - IFLA_BR_AGEING_TIME = 0x4 - IFLA_BR_STP_STATE = 0x5 - IFLA_BR_PRIORITY = 0x6 - IFLA_BR_VLAN_FILTERING = 0x7 - IFLA_BR_VLAN_PROTOCOL = 0x8 - IFLA_BR_GROUP_FWD_MASK = 0x9 - IFLA_BR_ROOT_ID = 0xa - IFLA_BR_BRIDGE_ID = 0xb - IFLA_BR_ROOT_PORT = 0xc - IFLA_BR_ROOT_PATH_COST = 0xd - IFLA_BR_TOPOLOGY_CHANGE = 0xe - IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 0xf - IFLA_BR_HELLO_TIMER = 0x10 - IFLA_BR_TCN_TIMER = 0x11 - IFLA_BR_TOPOLOGY_CHANGE_TIMER = 0x12 - IFLA_BR_GC_TIMER = 0x13 - IFLA_BR_GROUP_ADDR = 0x14 - IFLA_BR_FDB_FLUSH = 0x15 - IFLA_BR_MCAST_ROUTER = 0x16 - IFLA_BR_MCAST_SNOOPING = 0x17 - IFLA_BR_MCAST_QUERY_USE_IFADDR = 0x18 - IFLA_BR_MCAST_QUERIER = 0x19 - IFLA_BR_MCAST_HASH_ELASTICITY = 0x1a - IFLA_BR_MCAST_HASH_MAX = 0x1b - IFLA_BR_MCAST_LAST_MEMBER_CNT = 0x1c - IFLA_BR_MCAST_STARTUP_QUERY_CNT = 0x1d - IFLA_BR_MCAST_LAST_MEMBER_INTVL = 0x1e - IFLA_BR_MCAST_MEMBERSHIP_INTVL = 0x1f - IFLA_BR_MCAST_QUERIER_INTVL = 0x20 - IFLA_BR_MCAST_QUERY_INTVL = 0x21 - IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 0x22 - IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 0x23 - IFLA_BR_NF_CALL_IPTABLES = 0x24 - IFLA_BR_NF_CALL_IP6TABLES = 0x25 - IFLA_BR_NF_CALL_ARPTABLES = 0x26 - IFLA_BR_VLAN_DEFAULT_PVID = 0x27 - IFLA_BR_PAD = 0x28 - IFLA_BR_VLAN_STATS_ENABLED = 0x29 - IFLA_BR_MCAST_STATS_ENABLED = 0x2a - IFLA_BR_MCAST_IGMP_VERSION = 0x2b - IFLA_BR_MCAST_MLD_VERSION = 0x2c - IFLA_BR_VLAN_STATS_PER_PORT = 0x2d - IFLA_BR_MULTI_BOOLOPT = 0x2e - IFLA_BR_MCAST_QUERIER_STATE = 0x2f - IFLA_BR_FDB_N_LEARNED = 0x30 - IFLA_BR_FDB_MAX_LEARNED = 0x31 - IFLA_BRPORT_UNSPEC = 0x0 - IFLA_BRPORT_STATE = 0x1 - IFLA_BRPORT_PRIORITY = 0x2 - IFLA_BRPORT_COST = 0x3 - IFLA_BRPORT_MODE = 0x4 - IFLA_BRPORT_GUARD = 0x5 - IFLA_BRPORT_PROTECT = 0x6 - IFLA_BRPORT_FAST_LEAVE = 0x7 - IFLA_BRPORT_LEARNING = 0x8 - IFLA_BRPORT_UNICAST_FLOOD = 0x9 - IFLA_BRPORT_PROXYARP = 0xa - IFLA_BRPORT_LEARNING_SYNC = 0xb - IFLA_BRPORT_PROXYARP_WIFI = 0xc - IFLA_BRPORT_ROOT_ID = 0xd - IFLA_BRPORT_BRIDGE_ID = 0xe - IFLA_BRPORT_DESIGNATED_PORT = 0xf - IFLA_BRPORT_DESIGNATED_COST = 0x10 - IFLA_BRPORT_ID = 0x11 - IFLA_BRPORT_NO = 0x12 - IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 0x13 - IFLA_BRPORT_CONFIG_PENDING = 0x14 - IFLA_BRPORT_MESSAGE_AGE_TIMER = 0x15 - IFLA_BRPORT_FORWARD_DELAY_TIMER = 0x16 - IFLA_BRPORT_HOLD_TIMER = 0x17 - IFLA_BRPORT_FLUSH = 0x18 - IFLA_BRPORT_MULTICAST_ROUTER = 0x19 - IFLA_BRPORT_PAD = 0x1a - IFLA_BRPORT_MCAST_FLOOD = 0x1b - IFLA_BRPORT_MCAST_TO_UCAST = 0x1c - IFLA_BRPORT_VLAN_TUNNEL = 0x1d - IFLA_BRPORT_BCAST_FLOOD = 0x1e - IFLA_BRPORT_GROUP_FWD_MASK = 0x1f - IFLA_BRPORT_NEIGH_SUPPRESS = 0x20 - IFLA_BRPORT_ISOLATED = 0x21 - IFLA_BRPORT_BACKUP_PORT = 0x22 - IFLA_BRPORT_MRP_RING_OPEN = 0x23 - IFLA_BRPORT_MRP_IN_OPEN = 0x24 - IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 - IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 - IFLA_BRPORT_LOCKED = 0x27 - IFLA_BRPORT_MAB = 0x28 - IFLA_BRPORT_MCAST_N_GROUPS = 0x29 - IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a - IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b - IFLA_BRPORT_BACKUP_NHID = 0x2c - IFLA_INFO_UNSPEC = 0x0 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - IFLA_VLAN_UNSPEC = 0x0 - IFLA_VLAN_ID = 0x1 - IFLA_VLAN_FLAGS = 0x2 - IFLA_VLAN_EGRESS_QOS = 0x3 - IFLA_VLAN_INGRESS_QOS = 0x4 - IFLA_VLAN_PROTOCOL = 0x5 - IFLA_VLAN_QOS_UNSPEC = 0x0 - IFLA_VLAN_QOS_MAPPING = 0x1 - IFLA_MACVLAN_UNSPEC = 0x0 - IFLA_MACVLAN_MODE = 0x1 - IFLA_MACVLAN_FLAGS = 0x2 - IFLA_MACVLAN_MACADDR_MODE = 0x3 - IFLA_MACVLAN_MACADDR = 0x4 - IFLA_MACVLAN_MACADDR_DATA = 0x5 - IFLA_MACVLAN_MACADDR_COUNT = 0x6 - IFLA_MACVLAN_BC_QUEUE_LEN = 0x7 - IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 - IFLA_MACVLAN_BC_CUTOFF = 0x9 - IFLA_VRF_UNSPEC = 0x0 - IFLA_VRF_TABLE = 0x1 - IFLA_VRF_PORT_UNSPEC = 0x0 - IFLA_VRF_PORT_TABLE = 0x1 - IFLA_MACSEC_UNSPEC = 0x0 - IFLA_MACSEC_SCI = 0x1 - IFLA_MACSEC_PORT = 0x2 - IFLA_MACSEC_ICV_LEN = 0x3 - IFLA_MACSEC_CIPHER_SUITE = 0x4 - IFLA_MACSEC_WINDOW = 0x5 - IFLA_MACSEC_ENCODING_SA = 0x6 - IFLA_MACSEC_ENCRYPT = 0x7 - IFLA_MACSEC_PROTECT = 0x8 - IFLA_MACSEC_INC_SCI = 0x9 - IFLA_MACSEC_ES = 0xa - IFLA_MACSEC_SCB = 0xb - IFLA_MACSEC_REPLAY_PROTECT = 0xc - IFLA_MACSEC_VALIDATION = 0xd - IFLA_MACSEC_PAD = 0xe - IFLA_MACSEC_OFFLOAD = 0xf - IFLA_XFRM_UNSPEC = 0x0 - IFLA_XFRM_LINK = 0x1 - IFLA_XFRM_IF_ID = 0x2 - IFLA_XFRM_COLLECT_METADATA = 0x3 - IFLA_IPVLAN_UNSPEC = 0x0 - IFLA_IPVLAN_MODE = 0x1 - IFLA_IPVLAN_FLAGS = 0x2 - IFLA_NETKIT_UNSPEC = 0x0 - IFLA_NETKIT_PEER_INFO = 0x1 - IFLA_NETKIT_PRIMARY = 0x2 - IFLA_NETKIT_POLICY = 0x3 - IFLA_NETKIT_PEER_POLICY = 0x4 - IFLA_NETKIT_MODE = 0x5 - IFLA_VXLAN_UNSPEC = 0x0 - IFLA_VXLAN_ID = 0x1 - IFLA_VXLAN_GROUP = 0x2 - IFLA_VXLAN_LINK = 0x3 - IFLA_VXLAN_LOCAL = 0x4 - IFLA_VXLAN_TTL = 0x5 - IFLA_VXLAN_TOS = 0x6 - IFLA_VXLAN_LEARNING = 0x7 - IFLA_VXLAN_AGEING = 0x8 - IFLA_VXLAN_LIMIT = 0x9 - IFLA_VXLAN_PORT_RANGE = 0xa - IFLA_VXLAN_PROXY = 0xb - IFLA_VXLAN_RSC = 0xc - IFLA_VXLAN_L2MISS = 0xd - IFLA_VXLAN_L3MISS = 0xe - IFLA_VXLAN_PORT = 0xf - IFLA_VXLAN_GROUP6 = 0x10 - IFLA_VXLAN_LOCAL6 = 0x11 - IFLA_VXLAN_UDP_CSUM = 0x12 - IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 0x13 - IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 0x14 - IFLA_VXLAN_REMCSUM_TX = 0x15 - IFLA_VXLAN_REMCSUM_RX = 0x16 - IFLA_VXLAN_GBP = 0x17 - IFLA_VXLAN_REMCSUM_NOPARTIAL = 0x18 - IFLA_VXLAN_COLLECT_METADATA = 0x19 - IFLA_VXLAN_LABEL = 0x1a - IFLA_VXLAN_GPE = 0x1b - IFLA_VXLAN_TTL_INHERIT = 0x1c - IFLA_VXLAN_DF = 0x1d - IFLA_VXLAN_VNIFILTER = 0x1e - IFLA_VXLAN_LOCALBYPASS = 0x1f - IFLA_VXLAN_LABEL_POLICY = 0x20 - IFLA_GENEVE_UNSPEC = 0x0 - IFLA_GENEVE_ID = 0x1 - IFLA_GENEVE_REMOTE = 0x2 - IFLA_GENEVE_TTL = 0x3 - IFLA_GENEVE_TOS = 0x4 - IFLA_GENEVE_PORT = 0x5 - IFLA_GENEVE_COLLECT_METADATA = 0x6 - IFLA_GENEVE_REMOTE6 = 0x7 - IFLA_GENEVE_UDP_CSUM = 0x8 - IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 0x9 - IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 0xa - IFLA_GENEVE_LABEL = 0xb - IFLA_GENEVE_TTL_INHERIT = 0xc - IFLA_GENEVE_DF = 0xd - IFLA_GENEVE_INNER_PROTO_INHERIT = 0xe - IFLA_BAREUDP_UNSPEC = 0x0 - IFLA_BAREUDP_PORT = 0x1 - IFLA_BAREUDP_ETHERTYPE = 0x2 - IFLA_BAREUDP_SRCPORT_MIN = 0x3 - IFLA_BAREUDP_MULTIPROTO_MODE = 0x4 - IFLA_PPP_UNSPEC = 0x0 - IFLA_PPP_DEV_FD = 0x1 - IFLA_GTP_UNSPEC = 0x0 - IFLA_GTP_FD0 = 0x1 - IFLA_GTP_FD1 = 0x2 - IFLA_GTP_PDP_HASHSIZE = 0x3 - IFLA_GTP_ROLE = 0x4 - IFLA_GTP_CREATE_SOCKETS = 0x5 - IFLA_GTP_RESTART_COUNT = 0x6 - IFLA_GTP_LOCAL = 0x7 - IFLA_GTP_LOCAL6 = 0x8 - IFLA_BOND_UNSPEC = 0x0 - IFLA_BOND_MODE = 0x1 - IFLA_BOND_ACTIVE_SLAVE = 0x2 - IFLA_BOND_MIIMON = 0x3 - IFLA_BOND_UPDELAY = 0x4 - IFLA_BOND_DOWNDELAY = 0x5 - IFLA_BOND_USE_CARRIER = 0x6 - IFLA_BOND_ARP_INTERVAL = 0x7 - IFLA_BOND_ARP_IP_TARGET = 0x8 - IFLA_BOND_ARP_VALIDATE = 0x9 - IFLA_BOND_ARP_ALL_TARGETS = 0xa - IFLA_BOND_PRIMARY = 0xb - IFLA_BOND_PRIMARY_RESELECT = 0xc - IFLA_BOND_FAIL_OVER_MAC = 0xd - IFLA_BOND_XMIT_HASH_POLICY = 0xe - IFLA_BOND_RESEND_IGMP = 0xf - IFLA_BOND_NUM_PEER_NOTIF = 0x10 - IFLA_BOND_ALL_SLAVES_ACTIVE = 0x11 - IFLA_BOND_MIN_LINKS = 0x12 - IFLA_BOND_LP_INTERVAL = 0x13 - IFLA_BOND_PACKETS_PER_SLAVE = 0x14 - IFLA_BOND_AD_LACP_RATE = 0x15 - IFLA_BOND_AD_SELECT = 0x16 - IFLA_BOND_AD_INFO = 0x17 - IFLA_BOND_AD_ACTOR_SYS_PRIO = 0x18 - IFLA_BOND_AD_USER_PORT_KEY = 0x19 - IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a - IFLA_BOND_TLB_DYNAMIC_LB = 0x1b - IFLA_BOND_PEER_NOTIF_DELAY = 0x1c - IFLA_BOND_AD_LACP_ACTIVE = 0x1d - IFLA_BOND_MISSED_MAX = 0x1e - IFLA_BOND_NS_IP6_TARGET = 0x1f - IFLA_BOND_COUPLED_CONTROL = 0x20 - IFLA_BOND_AD_INFO_UNSPEC = 0x0 - IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 - IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 - IFLA_BOND_AD_INFO_ACTOR_KEY = 0x3 - IFLA_BOND_AD_INFO_PARTNER_KEY = 0x4 - IFLA_BOND_AD_INFO_PARTNER_MAC = 0x5 - IFLA_BOND_SLAVE_UNSPEC = 0x0 - IFLA_BOND_SLAVE_STATE = 0x1 - IFLA_BOND_SLAVE_MII_STATUS = 0x2 - IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 0x3 - IFLA_BOND_SLAVE_PERM_HWADDR = 0x4 - IFLA_BOND_SLAVE_QUEUE_ID = 0x5 - IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 - IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 - IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 - IFLA_BOND_SLAVE_PRIO = 0x9 - IFLA_VF_INFO_UNSPEC = 0x0 - IFLA_VF_INFO = 0x1 - IFLA_VF_UNSPEC = 0x0 - IFLA_VF_MAC = 0x1 - IFLA_VF_VLAN = 0x2 - IFLA_VF_TX_RATE = 0x3 - IFLA_VF_SPOOFCHK = 0x4 - IFLA_VF_LINK_STATE = 0x5 - IFLA_VF_RATE = 0x6 - IFLA_VF_RSS_QUERY_EN = 0x7 - IFLA_VF_STATS = 0x8 - IFLA_VF_TRUST = 0x9 - IFLA_VF_IB_NODE_GUID = 0xa - IFLA_VF_IB_PORT_GUID = 0xb - IFLA_VF_VLAN_LIST = 0xc - IFLA_VF_BROADCAST = 0xd - IFLA_VF_VLAN_INFO_UNSPEC = 0x0 - IFLA_VF_VLAN_INFO = 0x1 - IFLA_VF_LINK_STATE_AUTO = 0x0 - IFLA_VF_LINK_STATE_ENABLE = 0x1 - IFLA_VF_LINK_STATE_DISABLE = 0x2 - IFLA_VF_STATS_RX_PACKETS = 0x0 - IFLA_VF_STATS_TX_PACKETS = 0x1 - IFLA_VF_STATS_RX_BYTES = 0x2 - IFLA_VF_STATS_TX_BYTES = 0x3 - IFLA_VF_STATS_BROADCAST = 0x4 - IFLA_VF_STATS_MULTICAST = 0x5 - IFLA_VF_STATS_PAD = 0x6 - IFLA_VF_STATS_RX_DROPPED = 0x7 - IFLA_VF_STATS_TX_DROPPED = 0x8 - IFLA_VF_PORT_UNSPEC = 0x0 - IFLA_VF_PORT = 0x1 - IFLA_PORT_UNSPEC = 0x0 - IFLA_PORT_VF = 0x1 - IFLA_PORT_PROFILE = 0x2 - IFLA_PORT_VSI_TYPE = 0x3 - IFLA_PORT_INSTANCE_UUID = 0x4 - IFLA_PORT_HOST_UUID = 0x5 - IFLA_PORT_REQUEST = 0x6 - IFLA_PORT_RESPONSE = 0x7 - IFLA_IPOIB_UNSPEC = 0x0 - IFLA_IPOIB_PKEY = 0x1 - IFLA_IPOIB_MODE = 0x2 - IFLA_IPOIB_UMCAST = 0x3 - IFLA_HSR_UNSPEC = 0x0 - IFLA_HSR_SLAVE1 = 0x1 - IFLA_HSR_SLAVE2 = 0x2 - IFLA_HSR_MULTICAST_SPEC = 0x3 - IFLA_HSR_SUPERVISION_ADDR = 0x4 - IFLA_HSR_SEQ_NR = 0x5 - IFLA_HSR_VERSION = 0x6 - IFLA_HSR_PROTOCOL = 0x7 - IFLA_HSR_INTERLINK = 0x8 - IFLA_STATS_UNSPEC = 0x0 - IFLA_STATS_LINK_64 = 0x1 - IFLA_STATS_LINK_XSTATS = 0x2 - IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 - IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 - IFLA_STATS_AF_SPEC = 0x5 - IFLA_STATS_GETSET_UNSPEC = 0x0 - IFLA_STATS_GET_FILTERS = 0x1 - IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 - IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 - IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 - IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 - IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 - IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 - IFLA_XDP_UNSPEC = 0x0 - IFLA_XDP_FD = 0x1 - IFLA_XDP_ATTACHED = 0x2 - IFLA_XDP_FLAGS = 0x3 - IFLA_XDP_PROG_ID = 0x4 - IFLA_XDP_DRV_PROG_ID = 0x5 - IFLA_XDP_SKB_PROG_ID = 0x6 - IFLA_XDP_HW_PROG_ID = 0x7 - IFLA_XDP_EXPECTED_FD = 0x8 - IFLA_EVENT_NONE = 0x0 - IFLA_EVENT_REBOOT = 0x1 - IFLA_EVENT_FEATURES = 0x2 - IFLA_EVENT_BONDING_FAILOVER = 0x3 - IFLA_EVENT_NOTIFY_PEERS = 0x4 - IFLA_EVENT_IGMP_RESEND = 0x5 - IFLA_EVENT_BONDING_OPTIONS = 0x6 - IFLA_TUN_UNSPEC = 0x0 - IFLA_TUN_OWNER = 0x1 - IFLA_TUN_GROUP = 0x2 - IFLA_TUN_TYPE = 0x3 - IFLA_TUN_PI = 0x4 - IFLA_TUN_VNET_HDR = 0x5 - IFLA_TUN_PERSIST = 0x6 - IFLA_TUN_MULTI_QUEUE = 0x7 - IFLA_TUN_NUM_QUEUES = 0x8 - IFLA_TUN_NUM_DISABLED_QUEUES = 0x9 - IFLA_RMNET_UNSPEC = 0x0 - IFLA_RMNET_MUX_ID = 0x1 - IFLA_RMNET_FLAGS = 0x2 - IFLA_MCTP_UNSPEC = 0x0 - IFLA_MCTP_NET = 0x1 - IFLA_DSA_UNSPEC = 0x0 - IFLA_DSA_CONDUIT = 0x1 - IFLA_DSA_MASTER = 0x1 -) - -const ( - NETKIT_NEXT = -0x1 - NETKIT_PASS = 0x0 - NETKIT_DROP = 0x2 - NETKIT_REDIRECT = 0x7 - NETKIT_L2 = 0x0 - NETKIT_L3 = 0x1 -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_EGRESS = 0x1 - NF_NETDEV_NUMHOOKS = 0x2 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -const SO_ORIGINAL_DST = 0x50 - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_NEWFLOWTABLE = 0x16 - NFT_MSG_GETFLOWTABLE = 0x17 - NFT_MSG_DELFLOWTABLE = 0x18 - NFT_MSG_GETRULE_RESET = 0x19 - NFT_MSG_MAX = 0x22 - NFTA_LIST_UNSPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_INNER_HEADER = 0x3 - NFT_PAYLOAD_TUN_HEADER = 0x4 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_CSUM_SCTP = 0x2 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFT_CT_SRC_IP = 0x13 - NFT_CT_DST_IP = 0x14 - NFT_CT_SRC_IP6 = 0x15 - NFT_CT_DST_IP6 = 0x16 - NFT_CT_ID = 0x17 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -const ( - NFTA_TARGET_UNSPEC = 0x0 - NFTA_TARGET_NAME = 0x1 - NFTA_TARGET_REV = 0x2 - NFTA_TARGET_INFO = 0x3 - NFTA_MATCH_UNSPEC = 0x0 - NFTA_MATCH_NAME = 0x1 - NFTA_MATCH_REV = 0x2 - NFTA_MATCH_INFO = 0x3 - NFTA_COMPAT_UNSPEC = 0x0 - NFTA_COMPAT_NAME = 0x1 - NFTA_COMPAT_REV = 0x2 - NFTA_COMPAT_TYPE = 0x3 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - -const ( - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 -) - -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 - NETNSA_TARGET_NSID = 0x4 - NETNSA_CURRENT_NSID = 0x5 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 - Flags uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - -type XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - Tx_metadata_len uint32 -} - -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 - Rx_ring_full uint64 - Rx_fill_ring_empty_descs uint64 - Tx_ring_empty_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - SOF_TIMESTAMPING_BIND_PHC = 0x8000 - SOF_TIMESTAMPING_OPT_ID_TCP = 0x10000 - - SOF_TIMESTAMPING_LAST = 0x40000 - SOF_TIMESTAMPING_MASK = 0x7ffff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - 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 -) - -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_CGROUP_ITER_ORDER_UNSPEC = 0x0 - BPF_CGROUP_ITER_SELF_ONLY = 0x1 - BPF_CGROUP_ITER_DESCENDANTS_PRE = 0x2 - BPF_CGROUP_ITER_DESCENDANTS_POST = 0x3 - BPF_CGROUP_ITER_ANCESTORS_UP = 0x4 - 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_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_FREEZE = 0x16 - BPF_BTF_GET_NEXT_ID = 0x17 - BPF_MAP_LOOKUP_BATCH = 0x18 - BPF_MAP_LOOKUP_AND_DELETE_BATCH = 0x19 - BPF_MAP_UPDATE_BATCH = 0x1a - BPF_MAP_DELETE_BATCH = 0x1b - BPF_LINK_CREATE = 0x1c - BPF_LINK_UPDATE = 0x1d - BPF_LINK_GET_FD_BY_ID = 0x1e - BPF_LINK_GET_NEXT_ID = 0x1f - BPF_ENABLE_STATS = 0x20 - BPF_ITER_CREATE = 0x21 - BPF_LINK_DETACH = 0x22 - BPF_PROG_BIND_MAP = 0x23 - 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_DEPRECATED = 0x13 - 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_MAP_TYPE_SK_STORAGE = 0x18 - BPF_MAP_TYPE_DEVMAP_HASH = 0x19 - BPF_MAP_TYPE_STRUCT_OPS = 0x1a - BPF_MAP_TYPE_RINGBUF = 0x1b - BPF_MAP_TYPE_INODE_STORAGE = 0x1c - BPF_MAP_TYPE_TASK_STORAGE = 0x1d - BPF_MAP_TYPE_BLOOM_FILTER = 0x1e - BPF_MAP_TYPE_USER_RINGBUF = 0x1f - BPF_MAP_TYPE_CGRP_STORAGE = 0x20 - 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_PROG_TYPE_CGROUP_SYSCTL = 0x17 - BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18 - BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19 - BPF_PROG_TYPE_TRACING = 0x1a - BPF_PROG_TYPE_STRUCT_OPS = 0x1b - BPF_PROG_TYPE_EXT = 0x1c - BPF_PROG_TYPE_LSM = 0x1d - BPF_PROG_TYPE_SK_LOOKUP = 0x1e - BPF_PROG_TYPE_SYSCALL = 0x1f - BPF_PROG_TYPE_NETFILTER = 0x20 - 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_CGROUP_SYSCTL = 0x12 - BPF_CGROUP_UDP4_RECVMSG = 0x13 - BPF_CGROUP_UDP6_RECVMSG = 0x14 - BPF_CGROUP_GETSOCKOPT = 0x15 - BPF_CGROUP_SETSOCKOPT = 0x16 - BPF_TRACE_RAW_TP = 0x17 - BPF_TRACE_FENTRY = 0x18 - BPF_TRACE_FEXIT = 0x19 - BPF_MODIFY_RETURN = 0x1a - BPF_LSM_MAC = 0x1b - BPF_TRACE_ITER = 0x1c - BPF_CGROUP_INET4_GETPEERNAME = 0x1d - BPF_CGROUP_INET6_GETPEERNAME = 0x1e - BPF_CGROUP_INET4_GETSOCKNAME = 0x1f - BPF_CGROUP_INET6_GETSOCKNAME = 0x20 - BPF_XDP_DEVMAP = 0x21 - BPF_CGROUP_INET_SOCK_RELEASE = 0x22 - BPF_XDP_CPUMAP = 0x23 - BPF_SK_LOOKUP = 0x24 - BPF_XDP = 0x25 - BPF_SK_SKB_VERDICT = 0x26 - BPF_SK_REUSEPORT_SELECT = 0x27 - BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 0x28 - BPF_PERF_EVENT = 0x29 - BPF_TRACE_KPROBE_MULTI = 0x2a - BPF_LSM_CGROUP = 0x2b - BPF_STRUCT_OPS = 0x2c - BPF_NETFILTER = 0x2d - BPF_TCX_INGRESS = 0x2e - BPF_TCX_EGRESS = 0x2f - BPF_TRACE_UPROBE_MULTI = 0x30 - BPF_LINK_TYPE_UNSPEC = 0x0 - BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 - BPF_LINK_TYPE_TRACING = 0x2 - BPF_LINK_TYPE_CGROUP = 0x3 - BPF_LINK_TYPE_ITER = 0x4 - BPF_LINK_TYPE_NETNS = 0x5 - BPF_LINK_TYPE_XDP = 0x6 - BPF_LINK_TYPE_PERF_EVENT = 0x7 - BPF_LINK_TYPE_KPROBE_MULTI = 0x8 - BPF_LINK_TYPE_STRUCT_OPS = 0x9 - BPF_LINK_TYPE_NETFILTER = 0xa - BPF_LINK_TYPE_TCX = 0xb - BPF_LINK_TYPE_UPROBE_MULTI = 0xc - BPF_PERF_EVENT_UNSPEC = 0x0 - BPF_PERF_EVENT_UPROBE = 0x1 - BPF_PERF_EVENT_URETPROBE = 0x2 - BPF_PERF_EVENT_KPROBE = 0x3 - BPF_PERF_EVENT_KRETPROBE = 0x4 - BPF_PERF_EVENT_TRACEPOINT = 0x5 - BPF_PERF_EVENT_EVENT = 0x6 - BPF_F_KPROBE_MULTI_RETURN = 0x1 - BPF_F_UPROBE_MULTI_RETURN = 0x1 - BPF_ANY = 0x0 - BPF_NOEXIST = 0x1 - BPF_EXIST = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NUMA_NODE = 0x4 - BPF_F_RDONLY = 0x8 - BPF_F_WRONLY = 0x10 - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_ZERO_SEED = 0x40 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_CLONE = 0x200 - BPF_F_MMAPABLE = 0x400 - BPF_F_PRESERVE_ELEMS = 0x800 - BPF_F_INNER_MAP = 0x1000 - BPF_F_LINK = 0x2000 - BPF_F_PATH_FD = 0x4000 - BPF_STATS_RUN_TIME = 0x0 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_INGRESS = 0x1 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_USER_STACK = 0x100 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_NO_TUNNEL_KEY = 0x10 - BPF_F_TUNINFO_FLAGS = 0x10 - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_NETNS = -0x1 - BPF_CSUM_LEVEL_QUERY = 0x0 - BPF_CSUM_LEVEL_INC = 0x1 - BPF_CSUM_LEVEL_DEC = 0x2 - BPF_CSUM_LEVEL_RESET = 0x3 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 - BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 0x40 - BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = 0x80 - BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = 0x100 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_LOCAL_STORAGE_GET_F_CREATE = 0x1 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_F_GET_BRANCH_RECORDS_SIZE = 0x1 - BPF_RB_NO_WAKEUP = 0x1 - BPF_RB_FORCE_WAKEUP = 0x2 - BPF_RB_AVAIL_DATA = 0x0 - BPF_RB_RING_SIZE = 0x1 - BPF_RB_CONS_POS = 0x2 - BPF_RB_PROD_POS = 0x3 - BPF_RINGBUF_BUSY_BIT = 0x80000000 - BPF_RINGBUF_DISCARD_BIT = 0x40000000 - BPF_RINGBUF_HDR_SZ = 0x8 - BPF_SK_LOOKUP_F_REPLACE = 0x1 - BPF_SK_LOOKUP_F_NO_REUSEPORT = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_ADJ_ROOM_MAC = 0x1 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_LWT_ENCAP_IP = 0x2 - BPF_F_BPRM_SECUREEXEC = 0x1 - BPF_F_BROADCAST = 0x8 - BPF_F_EXCLUDE_INGRESS = 0x10 - BPF_SKB_TSTAMP_UNSPEC = 0x0 - BPF_SKB_TSTAMP_DELIVERY_MONO = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_LWT_REROUTE = 0x80 - BPF_FLOW_DISSECTOR_CONTINUE = 0x81 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 0x10 - BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20 - BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 0x40 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7f - 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_SOCK_OPS_RTT_CB = 0xc - BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 0xd - BPF_SOCK_OPS_HDR_OPT_LEN_CB = 0xe - BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 0xf - 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 = 0xe - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_BPF_DELACK_MAX = 0x3eb - TCP_BPF_RTO_MIN = 0x3ec - TCP_BPF_SYN = 0x3ed - TCP_BPF_SYN_IP = 0x3ee - TCP_BPF_SYN_MAC = 0x3ef - BPF_LOAD_HDR_OPT_TCP_SYN = 0x1 - BPF_WRITE_HDR_TCP_CURRENT_MSS = 0x1 - BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 0x2 - 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_FIB_LOOKUP_DIRECT = 0x1 - BPF_FIB_LOOKUP_OUTPUT = 0x2 - BPF_FIB_LOOKUP_SKIP_NEIGH = 0x4 - BPF_FIB_LOOKUP_TBID = 0x8 - 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_MTU_CHK_SEGS = 0x1 - BPF_MTU_CHK_RET_SUCCESS = 0x0 - BPF_MTU_CHK_RET_FRAG_NEEDED = 0x1 - BPF_MTU_CHK_RET_SEGS_TOOBIG = 0x2 - 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 - BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 - BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 - BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 - BPF_CORE_FIELD_BYTE_OFFSET = 0x0 - BPF_CORE_FIELD_BYTE_SIZE = 0x1 - BPF_CORE_FIELD_EXISTS = 0x2 - BPF_CORE_FIELD_SIGNED = 0x3 - BPF_CORE_FIELD_LSHIFT_U64 = 0x4 - BPF_CORE_FIELD_RSHIFT_U64 = 0x5 - BPF_CORE_TYPE_ID_LOCAL = 0x6 - BPF_CORE_TYPE_ID_TARGET = 0x7 - BPF_CORE_TYPE_EXISTS = 0x8 - BPF_CORE_TYPE_SIZE = 0x9 - BPF_CORE_ENUMVAL_EXISTS = 0xa - BPF_CORE_ENUMVAL_VALUE = 0xb - BPF_CORE_TYPE_MATCHES = 0xc - BPF_F_TIMER_ABS = 0x1 -) - -const ( - TCA_UNSPEC = 0x0 - TCA_KIND = 0x1 - TCA_OPTIONS = 0x2 - TCA_STATS = 0x3 - TCA_XSTATS = 0x4 - TCA_RATE = 0x5 - TCA_FCNT = 0x6 - TCA_STATS2 = 0x7 - TCA_STAB = 0x8 - TCA_PAD = 0x9 - TCA_DUMP_INVISIBLE = 0xa - TCA_CHAIN = 0xb - TCA_HW_OFFLOAD = 0xc - TCA_INGRESS_BLOCK = 0xd - TCA_EGRESS_BLOCK = 0xe - TCA_DUMP_FLAGS = 0xf - TCA_EXT_WARN_MSG = 0x10 - 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_DECnet_IFADDR = 0xd - RTNLGRP_NOP2 = 0xe - RTNLGRP_DECnet_ROUTE = 0xf - RTNLGRP_DECnet_RULE = 0x10 - RTNLGRP_NOP4 = 0x11 - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - RTNLGRP_PHONET_IFADDR = 0x15 - RTNLGRP_PHONET_ROUTE = 0x16 - RTNLGRP_DCB = 0x17 - RTNLGRP_IPV4_NETCONF = 0x18 - RTNLGRP_IPV6_NETCONF = 0x19 - RTNLGRP_MDB = 0x1a - RTNLGRP_MPLS_ROUTE = 0x1b - RTNLGRP_NSID = 0x1c - RTNLGRP_MPLS_NETCONF = 0x1d - RTNLGRP_IPV4_MROUTE_R = 0x1e - RTNLGRP_IPV6_MROUTE_R = 0x1f - RTNLGRP_NEXTHOP = 0x20 - RTNLGRP_BRVLAN = 0x21 - RTNLGRP_MCTP_IFADDR = 0x22 - RTNLGRP_TUNNEL = 0x23 - RTNLGRP_STATS = 0x24 - RTNLGRP_IPV4_MCADDR = 0x25 - RTNLGRP_IPV6_MCADDR = 0x26 - RTNLGRP_IPV6_ACADDR = 0x27 - TCA_ROOT_UNSPEC = 0x0 - TCA_ROOT_TAB = 0x1 - TCA_ROOT_FLAGS = 0x2 - TCA_ROOT_COUNT = 0x3 - TCA_ROOT_TIME_DELTA = 0x4 - TCA_ROOT_EXT_WARN_MSG = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} -type LoopConfig struct { - Fd uint32 - Size uint32 - Info LoopInfo64 - _ [8]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} - -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) - -const ( - DEVLINK_CMD_UNSPEC = 0x0 - DEVLINK_CMD_GET = 0x1 - DEVLINK_CMD_SET = 0x2 - DEVLINK_CMD_NEW = 0x3 - DEVLINK_CMD_DEL = 0x4 - DEVLINK_CMD_PORT_GET = 0x5 - DEVLINK_CMD_PORT_SET = 0x6 - DEVLINK_CMD_PORT_NEW = 0x7 - DEVLINK_CMD_PORT_DEL = 0x8 - DEVLINK_CMD_PORT_SPLIT = 0x9 - DEVLINK_CMD_PORT_UNSPLIT = 0xa - DEVLINK_CMD_SB_GET = 0xb - DEVLINK_CMD_SB_SET = 0xc - DEVLINK_CMD_SB_NEW = 0xd - DEVLINK_CMD_SB_DEL = 0xe - DEVLINK_CMD_SB_POOL_GET = 0xf - DEVLINK_CMD_SB_POOL_SET = 0x10 - DEVLINK_CMD_SB_POOL_NEW = 0x11 - DEVLINK_CMD_SB_POOL_DEL = 0x12 - DEVLINK_CMD_SB_PORT_POOL_GET = 0x13 - DEVLINK_CMD_SB_PORT_POOL_SET = 0x14 - DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15 - DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16 - DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17 - DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18 - DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19 - DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a - DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b - DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c - DEVLINK_CMD_ESWITCH_GET = 0x1d - DEVLINK_CMD_ESWITCH_SET = 0x1e - DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f - DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20 - DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21 - DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22 - DEVLINK_CMD_RESOURCE_SET = 0x23 - DEVLINK_CMD_RESOURCE_DUMP = 0x24 - DEVLINK_CMD_RELOAD = 0x25 - DEVLINK_CMD_PARAM_GET = 0x26 - DEVLINK_CMD_PARAM_SET = 0x27 - DEVLINK_CMD_PARAM_NEW = 0x28 - DEVLINK_CMD_PARAM_DEL = 0x29 - DEVLINK_CMD_REGION_GET = 0x2a - DEVLINK_CMD_REGION_SET = 0x2b - DEVLINK_CMD_REGION_NEW = 0x2c - DEVLINK_CMD_REGION_DEL = 0x2d - DEVLINK_CMD_REGION_READ = 0x2e - DEVLINK_CMD_PORT_PARAM_GET = 0x2f - DEVLINK_CMD_PORT_PARAM_SET = 0x30 - DEVLINK_CMD_PORT_PARAM_NEW = 0x31 - DEVLINK_CMD_PORT_PARAM_DEL = 0x32 - DEVLINK_CMD_INFO_GET = 0x33 - DEVLINK_CMD_HEALTH_REPORTER_GET = 0x34 - DEVLINK_CMD_HEALTH_REPORTER_SET = 0x35 - DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 0x36 - DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 0x37 - DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 0x38 - DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 0x39 - DEVLINK_CMD_FLASH_UPDATE = 0x3a - DEVLINK_CMD_FLASH_UPDATE_END = 0x3b - DEVLINK_CMD_FLASH_UPDATE_STATUS = 0x3c - DEVLINK_CMD_TRAP_GET = 0x3d - DEVLINK_CMD_TRAP_SET = 0x3e - DEVLINK_CMD_TRAP_NEW = 0x3f - DEVLINK_CMD_TRAP_DEL = 0x40 - DEVLINK_CMD_TRAP_GROUP_GET = 0x41 - DEVLINK_CMD_TRAP_GROUP_SET = 0x42 - DEVLINK_CMD_TRAP_GROUP_NEW = 0x43 - DEVLINK_CMD_TRAP_GROUP_DEL = 0x44 - DEVLINK_CMD_TRAP_POLICER_GET = 0x45 - DEVLINK_CMD_TRAP_POLICER_SET = 0x46 - DEVLINK_CMD_TRAP_POLICER_NEW = 0x47 - DEVLINK_CMD_TRAP_POLICER_DEL = 0x48 - DEVLINK_CMD_HEALTH_REPORTER_TEST = 0x49 - DEVLINK_CMD_RATE_GET = 0x4a - DEVLINK_CMD_RATE_SET = 0x4b - DEVLINK_CMD_RATE_NEW = 0x4c - DEVLINK_CMD_RATE_DEL = 0x4d - DEVLINK_CMD_LINECARD_GET = 0x4e - DEVLINK_CMD_LINECARD_SET = 0x4f - DEVLINK_CMD_LINECARD_NEW = 0x50 - DEVLINK_CMD_LINECARD_DEL = 0x51 - DEVLINK_CMD_SELFTESTS_GET = 0x52 - DEVLINK_CMD_MAX = 0x54 - DEVLINK_PORT_TYPE_NOTSET = 0x0 - DEVLINK_PORT_TYPE_AUTO = 0x1 - DEVLINK_PORT_TYPE_ETH = 0x2 - DEVLINK_PORT_TYPE_IB = 0x3 - DEVLINK_SB_POOL_TYPE_INGRESS = 0x0 - DEVLINK_SB_POOL_TYPE_EGRESS = 0x1 - DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0 - DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1 - DEVLINK_ESWITCH_MODE_LEGACY = 0x0 - DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1 - DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0 - DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1 - DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2 - DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3 - DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0 - DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1 - DEVLINK_PORT_FLAVOUR_PHYSICAL = 0x0 - DEVLINK_PORT_FLAVOUR_CPU = 0x1 - DEVLINK_PORT_FLAVOUR_DSA = 0x2 - DEVLINK_PORT_FLAVOUR_PCI_PF = 0x3 - DEVLINK_PORT_FLAVOUR_PCI_VF = 0x4 - DEVLINK_PORT_FLAVOUR_VIRTUAL = 0x5 - DEVLINK_PORT_FLAVOUR_UNUSED = 0x6 - DEVLINK_PARAM_CMODE_RUNTIME = 0x0 - DEVLINK_PARAM_CMODE_DRIVERINIT = 0x1 - DEVLINK_PARAM_CMODE_PERMANENT = 0x2 - DEVLINK_PARAM_CMODE_MAX = 0x2 - DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER = 0x0 - DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH = 0x1 - DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK = 0x2 - DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN = 0x3 - DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0 - DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS = 0x1 - DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER = 0x2 - DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK = 0x3 - DEVLINK_ATTR_STATS_RX_PACKETS = 0x0 - DEVLINK_ATTR_STATS_RX_BYTES = 0x1 - DEVLINK_ATTR_STATS_RX_DROPPED = 0x2 - DEVLINK_ATTR_STATS_MAX = 0x2 - DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT = 0x0 - DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT = 0x1 - DEVLINK_FLASH_OVERWRITE_MAX_BIT = 0x1 - DEVLINK_TRAP_ACTION_DROP = 0x0 - DEVLINK_TRAP_ACTION_TRAP = 0x1 - DEVLINK_TRAP_ACTION_MIRROR = 0x2 - DEVLINK_TRAP_TYPE_DROP = 0x0 - DEVLINK_TRAP_TYPE_EXCEPTION = 0x1 - DEVLINK_TRAP_TYPE_CONTROL = 0x2 - DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0x0 - DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 0x1 - DEVLINK_RELOAD_ACTION_UNSPEC = 0x0 - DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 0x1 - DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 0x2 - DEVLINK_RELOAD_ACTION_MAX = 0x2 - DEVLINK_RELOAD_LIMIT_UNSPEC = 0x0 - DEVLINK_RELOAD_LIMIT_NO_RESET = 0x1 - DEVLINK_RELOAD_LIMIT_MAX = 0x1 - DEVLINK_ATTR_UNSPEC = 0x0 - DEVLINK_ATTR_BUS_NAME = 0x1 - DEVLINK_ATTR_DEV_NAME = 0x2 - DEVLINK_ATTR_PORT_INDEX = 0x3 - DEVLINK_ATTR_PORT_TYPE = 0x4 - DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5 - DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6 - DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7 - DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8 - DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9 - DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa - DEVLINK_ATTR_SB_INDEX = 0xb - DEVLINK_ATTR_SB_SIZE = 0xc - DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd - DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe - DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf - DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10 - DEVLINK_ATTR_SB_POOL_INDEX = 0x11 - DEVLINK_ATTR_SB_POOL_TYPE = 0x12 - DEVLINK_ATTR_SB_POOL_SIZE = 0x13 - DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14 - DEVLINK_ATTR_SB_THRESHOLD = 0x15 - DEVLINK_ATTR_SB_TC_INDEX = 0x16 - DEVLINK_ATTR_SB_OCC_CUR = 0x17 - DEVLINK_ATTR_SB_OCC_MAX = 0x18 - DEVLINK_ATTR_ESWITCH_MODE = 0x19 - DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a - DEVLINK_ATTR_DPIPE_TABLES = 0x1b - DEVLINK_ATTR_DPIPE_TABLE = 0x1c - DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d - DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e - DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f - DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20 - DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21 - DEVLINK_ATTR_DPIPE_ENTRIES = 0x22 - DEVLINK_ATTR_DPIPE_ENTRY = 0x23 - DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24 - DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25 - DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26 - DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27 - DEVLINK_ATTR_DPIPE_MATCH = 0x28 - DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29 - DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a - DEVLINK_ATTR_DPIPE_ACTION = 0x2b - DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c - DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d - DEVLINK_ATTR_DPIPE_VALUE = 0x2e - DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f - DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30 - DEVLINK_ATTR_DPIPE_HEADERS = 0x31 - DEVLINK_ATTR_DPIPE_HEADER = 0x32 - DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33 - DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34 - DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35 - DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36 - DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37 - DEVLINK_ATTR_DPIPE_FIELD = 0x38 - DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39 - DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a - DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b - DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c - DEVLINK_ATTR_PAD = 0x3d - DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e - DEVLINK_ATTR_RESOURCE_LIST = 0x3f - DEVLINK_ATTR_RESOURCE = 0x40 - DEVLINK_ATTR_RESOURCE_NAME = 0x41 - DEVLINK_ATTR_RESOURCE_ID = 0x42 - DEVLINK_ATTR_RESOURCE_SIZE = 0x43 - DEVLINK_ATTR_RESOURCE_SIZE_NEW = 0x44 - DEVLINK_ATTR_RESOURCE_SIZE_VALID = 0x45 - DEVLINK_ATTR_RESOURCE_SIZE_MIN = 0x46 - DEVLINK_ATTR_RESOURCE_SIZE_MAX = 0x47 - DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 0x48 - DEVLINK_ATTR_RESOURCE_UNIT = 0x49 - DEVLINK_ATTR_RESOURCE_OCC = 0x4a - DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 0x4b - DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 0x4c - DEVLINK_ATTR_PORT_FLAVOUR = 0x4d - DEVLINK_ATTR_PORT_NUMBER = 0x4e - DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 0x4f - DEVLINK_ATTR_PARAM = 0x50 - DEVLINK_ATTR_PARAM_NAME = 0x51 - DEVLINK_ATTR_PARAM_GENERIC = 0x52 - DEVLINK_ATTR_PARAM_TYPE = 0x53 - DEVLINK_ATTR_PARAM_VALUES_LIST = 0x54 - DEVLINK_ATTR_PARAM_VALUE = 0x55 - DEVLINK_ATTR_PARAM_VALUE_DATA = 0x56 - DEVLINK_ATTR_PARAM_VALUE_CMODE = 0x57 - DEVLINK_ATTR_REGION_NAME = 0x58 - DEVLINK_ATTR_REGION_SIZE = 0x59 - DEVLINK_ATTR_REGION_SNAPSHOTS = 0x5a - DEVLINK_ATTR_REGION_SNAPSHOT = 0x5b - DEVLINK_ATTR_REGION_SNAPSHOT_ID = 0x5c - DEVLINK_ATTR_REGION_CHUNKS = 0x5d - DEVLINK_ATTR_REGION_CHUNK = 0x5e - DEVLINK_ATTR_REGION_CHUNK_DATA = 0x5f - DEVLINK_ATTR_REGION_CHUNK_ADDR = 0x60 - DEVLINK_ATTR_REGION_CHUNK_LEN = 0x61 - DEVLINK_ATTR_INFO_DRIVER_NAME = 0x62 - DEVLINK_ATTR_INFO_SERIAL_NUMBER = 0x63 - DEVLINK_ATTR_INFO_VERSION_FIXED = 0x64 - DEVLINK_ATTR_INFO_VERSION_RUNNING = 0x65 - DEVLINK_ATTR_INFO_VERSION_STORED = 0x66 - DEVLINK_ATTR_INFO_VERSION_NAME = 0x67 - DEVLINK_ATTR_INFO_VERSION_VALUE = 0x68 - DEVLINK_ATTR_SB_POOL_CELL_SIZE = 0x69 - DEVLINK_ATTR_FMSG = 0x6a - DEVLINK_ATTR_FMSG_OBJ_NEST_START = 0x6b - DEVLINK_ATTR_FMSG_PAIR_NEST_START = 0x6c - DEVLINK_ATTR_FMSG_ARR_NEST_START = 0x6d - DEVLINK_ATTR_FMSG_NEST_END = 0x6e - DEVLINK_ATTR_FMSG_OBJ_NAME = 0x6f - DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 0x70 - DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 0x71 - DEVLINK_ATTR_HEALTH_REPORTER = 0x72 - DEVLINK_ATTR_HEALTH_REPORTER_NAME = 0x73 - DEVLINK_ATTR_HEALTH_REPORTER_STATE = 0x74 - DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 0x75 - DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 0x76 - DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 0x77 - DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 0x78 - DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 0x79 - DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 0x7a - DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 0x7b - DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 0x7c - DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 0x7d - DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 0x7e - DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 0x7f - DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 0x80 - DEVLINK_ATTR_STATS = 0x81 - DEVLINK_ATTR_TRAP_NAME = 0x82 - DEVLINK_ATTR_TRAP_ACTION = 0x83 - DEVLINK_ATTR_TRAP_TYPE = 0x84 - DEVLINK_ATTR_TRAP_GENERIC = 0x85 - DEVLINK_ATTR_TRAP_METADATA = 0x86 - DEVLINK_ATTR_TRAP_GROUP_NAME = 0x87 - DEVLINK_ATTR_RELOAD_FAILED = 0x88 - DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 0x89 - DEVLINK_ATTR_NETNS_FD = 0x8a - DEVLINK_ATTR_NETNS_PID = 0x8b - DEVLINK_ATTR_NETNS_ID = 0x8c - DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 0x8d - DEVLINK_ATTR_TRAP_POLICER_ID = 0x8e - DEVLINK_ATTR_TRAP_POLICER_RATE = 0x8f - DEVLINK_ATTR_TRAP_POLICER_BURST = 0x90 - DEVLINK_ATTR_PORT_FUNCTION = 0x91 - DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 0x92 - DEVLINK_ATTR_PORT_LANES = 0x93 - DEVLINK_ATTR_PORT_SPLITTABLE = 0x94 - DEVLINK_ATTR_PORT_EXTERNAL = 0x95 - DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 0x96 - DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 0x97 - DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 0x98 - DEVLINK_ATTR_RELOAD_ACTION = 0x99 - DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 0x9a - DEVLINK_ATTR_RELOAD_LIMITS = 0x9b - DEVLINK_ATTR_DEV_STATS = 0x9c - DEVLINK_ATTR_RELOAD_STATS = 0x9d - DEVLINK_ATTR_RELOAD_STATS_ENTRY = 0x9e - DEVLINK_ATTR_RELOAD_STATS_LIMIT = 0x9f - DEVLINK_ATTR_RELOAD_STATS_VALUE = 0xa0 - DEVLINK_ATTR_REMOTE_RELOAD_STATS = 0xa1 - DEVLINK_ATTR_RELOAD_ACTION_INFO = 0xa2 - DEVLINK_ATTR_RELOAD_ACTION_STATS = 0xa3 - DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 0xa4 - DEVLINK_ATTR_RATE_TYPE = 0xa5 - DEVLINK_ATTR_RATE_TX_SHARE = 0xa6 - DEVLINK_ATTR_RATE_TX_MAX = 0xa7 - DEVLINK_ATTR_RATE_NODE_NAME = 0xa8 - DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 0xa9 - DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 0xaa - DEVLINK_ATTR_LINECARD_INDEX = 0xab - DEVLINK_ATTR_LINECARD_STATE = 0xac - DEVLINK_ATTR_LINECARD_TYPE = 0xad - DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 0xae - DEVLINK_ATTR_NESTED_DEVLINK = 0xaf - DEVLINK_ATTR_SELFTESTS = 0xb0 - DEVLINK_ATTR_MAX = 0xb3 - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 - DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 - DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0 - DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0 - DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0 - DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0 - DEVLINK_DPIPE_HEADER_ETHERNET = 0x0 - DEVLINK_DPIPE_HEADER_IPV4 = 0x1 - DEVLINK_DPIPE_HEADER_IPV6 = 0x2 - DEVLINK_RESOURCE_UNIT_ENTRY = 0x0 - DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0x0 - DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 0x1 - DEVLINK_PORT_FN_ATTR_STATE = 0x2 - DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 - DEVLINK_PORT_FN_ATTR_CAPS = 0x4 - DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x6 -) - -type FsverityDigest struct { - Algorithm uint16 - Size uint16 -} - -type FsverityEnableArg struct { - Version uint32 - Hash_algorithm uint32 - Block_size uint32 - Salt_size uint32 - Salt_ptr uint64 - Sig_size uint32 - _ uint32 - Sig_ptr uint64 - _ [11]uint64 -} - -type Nhmsg struct { - Family uint8 - Scope uint8 - Protocol uint8 - Resvd uint8 - Flags uint32 -} - -type NexthopGrp struct { - Id uint32 - Weight uint8 - High uint8 - Resvd2 uint16 -} - -const ( - NHA_UNSPEC = 0x0 - NHA_ID = 0x1 - NHA_GROUP = 0x2 - NHA_GROUP_TYPE = 0x3 - NHA_BLACKHOLE = 0x4 - NHA_OIF = 0x5 - NHA_GATEWAY = 0x6 - NHA_ENCAP_TYPE = 0x7 - NHA_ENCAP = 0x8 - NHA_GROUPS = 0x9 - NHA_MASTER = 0xa -) - -const ( - CAN_RAW_FILTER = 0x1 - CAN_RAW_ERR_FILTER = 0x2 - CAN_RAW_LOOPBACK = 0x3 - CAN_RAW_RECV_OWN_MSGS = 0x4 - CAN_RAW_FD_FRAMES = 0x5 - CAN_RAW_JOIN_FILTERS = 0x6 -) - -type WatchdogInfo struct { - Options uint32 - Version uint32 - Identity [32]uint8 -} - -type PPSFData struct { - Info PPSKInfo - Timeout PPSKTime -} - -type PPSKParams struct { - Api_version int32 - Mode int32 - Assert_off_tu PPSKTime - Clear_off_tu PPSKTime -} - -type PPSKTime struct { - Sec int64 - Nsec int32 - Flags uint32 -} - -const ( - LWTUNNEL_ENCAP_NONE = 0x0 - LWTUNNEL_ENCAP_MPLS = 0x1 - LWTUNNEL_ENCAP_IP = 0x2 - LWTUNNEL_ENCAP_ILA = 0x3 - LWTUNNEL_ENCAP_IP6 = 0x4 - LWTUNNEL_ENCAP_SEG6 = 0x5 - LWTUNNEL_ENCAP_BPF = 0x6 - LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7 - LWTUNNEL_ENCAP_RPL = 0x8 - LWTUNNEL_ENCAP_IOAM6 = 0x9 - LWTUNNEL_ENCAP_XFRM = 0xa - LWTUNNEL_ENCAP_MAX = 0xa - - MPLS_IPTUNNEL_UNSPEC = 0x0 - MPLS_IPTUNNEL_DST = 0x1 - MPLS_IPTUNNEL_TTL = 0x2 - MPLS_IPTUNNEL_MAX = 0x2 -) - -const ( - ETHTOOL_ID_UNSPEC = 0x0 - ETHTOOL_RX_COPYBREAK = 0x1 - ETHTOOL_TX_COPYBREAK = 0x2 - ETHTOOL_PFC_PREVENTION_TOUT = 0x3 - ETHTOOL_TUNABLE_UNSPEC = 0x0 - ETHTOOL_TUNABLE_U8 = 0x1 - ETHTOOL_TUNABLE_U16 = 0x2 - ETHTOOL_TUNABLE_U32 = 0x3 - ETHTOOL_TUNABLE_U64 = 0x4 - ETHTOOL_TUNABLE_STRING = 0x5 - ETHTOOL_TUNABLE_S8 = 0x6 - ETHTOOL_TUNABLE_S16 = 0x7 - ETHTOOL_TUNABLE_S32 = 0x8 - ETHTOOL_TUNABLE_S64 = 0x9 - ETHTOOL_PHY_ID_UNSPEC = 0x0 - ETHTOOL_PHY_DOWNSHIFT = 0x1 - ETHTOOL_PHY_FAST_LINK_DOWN = 0x2 - ETHTOOL_PHY_EDPD = 0x3 - ETHTOOL_LINK_EXT_STATE_AUTONEG = 0x0 - ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 0x1 - ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 0x2 - ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 0x3 - ETHTOOL_LINK_EXT_STATE_NO_CABLE = 0x4 - ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 0x5 - ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 0x6 - ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 0x7 - ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 0x8 - ETHTOOL_LINK_EXT_STATE_OVERHEAT = 0x9 - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 0x2 - ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 0x3 - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 0x4 - ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 0x5 - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 0x6 - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 0x2 - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3 - ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 0x4 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 0x2 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 0x3 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 0x4 - ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 0x5 - ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 0x2 - ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 0x1 - ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 0x2 - ETHTOOL_FLASH_ALL_REGIONS = 0x0 - ETHTOOL_F_UNSUPPORTED__BIT = 0x0 - ETHTOOL_F_WISH__BIT = 0x1 - ETHTOOL_F_COMPAT__BIT = 0x2 - ETHTOOL_FEC_NONE_BIT = 0x0 - ETHTOOL_FEC_AUTO_BIT = 0x1 - ETHTOOL_FEC_OFF_BIT = 0x2 - ETHTOOL_FEC_RS_BIT = 0x3 - ETHTOOL_FEC_BASER_BIT = 0x4 - ETHTOOL_FEC_LLRS_BIT = 0x5 - ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0x0 - ETHTOOL_LINK_MODE_10baseT_Full_BIT = 0x1 - ETHTOOL_LINK_MODE_100baseT_Half_BIT = 0x2 - ETHTOOL_LINK_MODE_100baseT_Full_BIT = 0x3 - ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 0x4 - ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 0x5 - ETHTOOL_LINK_MODE_Autoneg_BIT = 0x6 - ETHTOOL_LINK_MODE_TP_BIT = 0x7 - ETHTOOL_LINK_MODE_AUI_BIT = 0x8 - ETHTOOL_LINK_MODE_MII_BIT = 0x9 - ETHTOOL_LINK_MODE_FIBRE_BIT = 0xa - ETHTOOL_LINK_MODE_BNC_BIT = 0xb - ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 0xc - ETHTOOL_LINK_MODE_Pause_BIT = 0xd - ETHTOOL_LINK_MODE_Asym_Pause_BIT = 0xe - ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 0xf - ETHTOOL_LINK_MODE_Backplane_BIT = 0x10 - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 0x11 - ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 0x12 - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 0x13 - ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 0x14 - ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 0x15 - ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 0x16 - ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 0x17 - ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 0x18 - ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 0x19 - ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 0x1a - ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 0x1b - ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 0x1c - ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 0x1d - ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 0x1e - ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 0x1f - ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 0x20 - ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 0x21 - ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 0x22 - ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 0x23 - ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 0x24 - ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 0x25 - ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 0x26 - ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 0x27 - ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 0x28 - ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 0x29 - ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 0x2a - ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 0x2b - ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 0x2c - ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 0x2d - ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 0x2e - ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 0x2f - ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 0x30 - ETHTOOL_LINK_MODE_FEC_NONE_BIT = 0x31 - ETHTOOL_LINK_MODE_FEC_RS_BIT = 0x32 - ETHTOOL_LINK_MODE_FEC_BASER_BIT = 0x33 - ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 0x34 - ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 0x35 - ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 0x36 - ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 0x37 - ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 0x38 - ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 0x39 - ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 0x3a - ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 0x3b - ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 0x3c - ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 0x3d - ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 0x3e - ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 0x3f - ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 0x40 - ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 0x41 - ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 0x42 - ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 0x43 - ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 0x44 - ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 0x45 - ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 0x46 - ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 0x47 - ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 0x48 - ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 0x49 - ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 0x4a - ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 0x4b - ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 0x4c - ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 0x4d - ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 0x4e - ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 0x4f - ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 0x50 - ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 0x51 - ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 0x52 - ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 0x53 - ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 0x54 - ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 0x55 - ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 0x56 - ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 0x57 - ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 0x58 - ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 0x59 - ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 0x5a - ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 0x5b - - ETHTOOL_MSG_USER_NONE = 0x0 - ETHTOOL_MSG_STRSET_GET = 0x1 - ETHTOOL_MSG_LINKINFO_GET = 0x2 - ETHTOOL_MSG_LINKINFO_SET = 0x3 - ETHTOOL_MSG_LINKMODES_GET = 0x4 - ETHTOOL_MSG_LINKMODES_SET = 0x5 - ETHTOOL_MSG_LINKSTATE_GET = 0x6 - ETHTOOL_MSG_DEBUG_GET = 0x7 - ETHTOOL_MSG_DEBUG_SET = 0x8 - ETHTOOL_MSG_WOL_GET = 0x9 - ETHTOOL_MSG_WOL_SET = 0xa - ETHTOOL_MSG_FEATURES_GET = 0xb - ETHTOOL_MSG_FEATURES_SET = 0xc - ETHTOOL_MSG_PRIVFLAGS_GET = 0xd - ETHTOOL_MSG_PRIVFLAGS_SET = 0xe - ETHTOOL_MSG_RINGS_GET = 0xf - ETHTOOL_MSG_RINGS_SET = 0x10 - ETHTOOL_MSG_CHANNELS_GET = 0x11 - ETHTOOL_MSG_CHANNELS_SET = 0x12 - ETHTOOL_MSG_COALESCE_GET = 0x13 - ETHTOOL_MSG_COALESCE_SET = 0x14 - ETHTOOL_MSG_PAUSE_GET = 0x15 - ETHTOOL_MSG_PAUSE_SET = 0x16 - ETHTOOL_MSG_EEE_GET = 0x17 - ETHTOOL_MSG_EEE_SET = 0x18 - ETHTOOL_MSG_TSINFO_GET = 0x19 - ETHTOOL_MSG_CABLE_TEST_ACT = 0x1a - ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 0x1b - ETHTOOL_MSG_TUNNEL_INFO_GET = 0x1c - ETHTOOL_MSG_FEC_GET = 0x1d - ETHTOOL_MSG_FEC_SET = 0x1e - ETHTOOL_MSG_MODULE_EEPROM_GET = 0x1f - ETHTOOL_MSG_STATS_GET = 0x20 - ETHTOOL_MSG_PHC_VCLOCKS_GET = 0x21 - ETHTOOL_MSG_MODULE_GET = 0x22 - ETHTOOL_MSG_MODULE_SET = 0x23 - ETHTOOL_MSG_PSE_GET = 0x24 - ETHTOOL_MSG_PSE_SET = 0x25 - ETHTOOL_MSG_RSS_GET = 0x26 - ETHTOOL_MSG_PLCA_GET_CFG = 0x27 - ETHTOOL_MSG_PLCA_SET_CFG = 0x28 - ETHTOOL_MSG_PLCA_GET_STATUS = 0x29 - ETHTOOL_MSG_MM_GET = 0x2a - ETHTOOL_MSG_MM_SET = 0x2b - ETHTOOL_MSG_MODULE_FW_FLASH_ACT = 0x2c - ETHTOOL_MSG_PHY_GET = 0x2d - ETHTOOL_MSG_TSCONFIG_GET = 0x2e - ETHTOOL_MSG_TSCONFIG_SET = 0x2f - ETHTOOL_MSG_USER_MAX = 0x2f - ETHTOOL_MSG_KERNEL_NONE = 0x0 - ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 - ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 - ETHTOOL_MSG_LINKINFO_NTF = 0x3 - ETHTOOL_MSG_LINKMODES_GET_REPLY = 0x4 - ETHTOOL_MSG_LINKMODES_NTF = 0x5 - ETHTOOL_MSG_LINKSTATE_GET_REPLY = 0x6 - ETHTOOL_MSG_DEBUG_GET_REPLY = 0x7 - ETHTOOL_MSG_DEBUG_NTF = 0x8 - ETHTOOL_MSG_WOL_GET_REPLY = 0x9 - ETHTOOL_MSG_WOL_NTF = 0xa - ETHTOOL_MSG_FEATURES_GET_REPLY = 0xb - ETHTOOL_MSG_FEATURES_SET_REPLY = 0xc - ETHTOOL_MSG_FEATURES_NTF = 0xd - ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 0xe - ETHTOOL_MSG_PRIVFLAGS_NTF = 0xf - ETHTOOL_MSG_RINGS_GET_REPLY = 0x10 - ETHTOOL_MSG_RINGS_NTF = 0x11 - ETHTOOL_MSG_CHANNELS_GET_REPLY = 0x12 - ETHTOOL_MSG_CHANNELS_NTF = 0x13 - ETHTOOL_MSG_COALESCE_GET_REPLY = 0x14 - ETHTOOL_MSG_COALESCE_NTF = 0x15 - ETHTOOL_MSG_PAUSE_GET_REPLY = 0x16 - ETHTOOL_MSG_PAUSE_NTF = 0x17 - ETHTOOL_MSG_EEE_GET_REPLY = 0x18 - ETHTOOL_MSG_EEE_NTF = 0x19 - ETHTOOL_MSG_TSINFO_GET_REPLY = 0x1a - ETHTOOL_MSG_CABLE_TEST_NTF = 0x1b - ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 0x1c - ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 0x1d - ETHTOOL_MSG_FEC_GET_REPLY = 0x1e - ETHTOOL_MSG_FEC_NTF = 0x1f - ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 0x20 - ETHTOOL_MSG_STATS_GET_REPLY = 0x21 - ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 0x22 - ETHTOOL_MSG_MODULE_GET_REPLY = 0x23 - ETHTOOL_MSG_MODULE_NTF = 0x24 - ETHTOOL_MSG_PSE_GET_REPLY = 0x25 - ETHTOOL_MSG_RSS_GET_REPLY = 0x26 - ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 0x27 - ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 0x28 - ETHTOOL_MSG_PLCA_NTF = 0x29 - ETHTOOL_MSG_MM_GET_REPLY = 0x2a - ETHTOOL_MSG_MM_NTF = 0x2b - ETHTOOL_MSG_MODULE_FW_FLASH_NTF = 0x2c - ETHTOOL_MSG_PHY_GET_REPLY = 0x2d - ETHTOOL_MSG_PHY_NTF = 0x2e - ETHTOOL_MSG_TSCONFIG_GET_REPLY = 0x2f - ETHTOOL_MSG_TSCONFIG_SET_REPLY = 0x30 - ETHTOOL_MSG_KERNEL_MAX = 0x30 - ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 - ETHTOOL_FLAG_OMIT_REPLY = 0x2 - ETHTOOL_FLAG_STATS = 0x4 - ETHTOOL_A_HEADER_UNSPEC = 0x0 - ETHTOOL_A_HEADER_DEV_INDEX = 0x1 - ETHTOOL_A_HEADER_DEV_NAME = 0x2 - ETHTOOL_A_HEADER_FLAGS = 0x3 - ETHTOOL_A_HEADER_MAX = 0x4 - ETHTOOL_A_BITSET_BIT_UNSPEC = 0x0 - ETHTOOL_A_BITSET_BIT_INDEX = 0x1 - ETHTOOL_A_BITSET_BIT_NAME = 0x2 - ETHTOOL_A_BITSET_BIT_VALUE = 0x3 - ETHTOOL_A_BITSET_BIT_MAX = 0x3 - ETHTOOL_A_BITSET_BITS_UNSPEC = 0x0 - ETHTOOL_A_BITSET_BITS_BIT = 0x1 - ETHTOOL_A_BITSET_BITS_MAX = 0x1 - ETHTOOL_A_BITSET_UNSPEC = 0x0 - ETHTOOL_A_BITSET_NOMASK = 0x1 - ETHTOOL_A_BITSET_SIZE = 0x2 - ETHTOOL_A_BITSET_BITS = 0x3 - ETHTOOL_A_BITSET_VALUE = 0x4 - ETHTOOL_A_BITSET_MASK = 0x5 - ETHTOOL_A_BITSET_MAX = 0x5 - ETHTOOL_A_STRING_UNSPEC = 0x0 - ETHTOOL_A_STRING_INDEX = 0x1 - ETHTOOL_A_STRING_VALUE = 0x2 - ETHTOOL_A_STRING_MAX = 0x2 - ETHTOOL_A_STRINGS_UNSPEC = 0x0 - ETHTOOL_A_STRINGS_STRING = 0x1 - ETHTOOL_A_STRINGS_MAX = 0x1 - ETHTOOL_A_STRINGSET_UNSPEC = 0x0 - ETHTOOL_A_STRINGSET_ID = 0x1 - ETHTOOL_A_STRINGSET_COUNT = 0x2 - ETHTOOL_A_STRINGSET_STRINGS = 0x3 - ETHTOOL_A_STRINGSET_MAX = 0x3 - ETHTOOL_A_STRINGSETS_UNSPEC = 0x0 - ETHTOOL_A_STRINGSETS_STRINGSET = 0x1 - ETHTOOL_A_STRINGSETS_MAX = 0x1 - ETHTOOL_A_STRSET_UNSPEC = 0x0 - ETHTOOL_A_STRSET_HEADER = 0x1 - ETHTOOL_A_STRSET_STRINGSETS = 0x2 - ETHTOOL_A_STRSET_COUNTS_ONLY = 0x3 - ETHTOOL_A_STRSET_MAX = 0x3 - ETHTOOL_A_LINKINFO_UNSPEC = 0x0 - ETHTOOL_A_LINKINFO_HEADER = 0x1 - ETHTOOL_A_LINKINFO_PORT = 0x2 - ETHTOOL_A_LINKINFO_PHYADDR = 0x3 - ETHTOOL_A_LINKINFO_TP_MDIX = 0x4 - ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 0x5 - ETHTOOL_A_LINKINFO_TRANSCEIVER = 0x6 - ETHTOOL_A_LINKINFO_MAX = 0x6 - ETHTOOL_A_LINKMODES_UNSPEC = 0x0 - ETHTOOL_A_LINKMODES_HEADER = 0x1 - ETHTOOL_A_LINKMODES_AUTONEG = 0x2 - ETHTOOL_A_LINKMODES_OURS = 0x3 - ETHTOOL_A_LINKMODES_PEER = 0x4 - ETHTOOL_A_LINKMODES_SPEED = 0x5 - ETHTOOL_A_LINKMODES_DUPLEX = 0x6 - ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7 - ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8 - ETHTOOL_A_LINKMODES_LANES = 0x9 - ETHTOOL_A_LINKMODES_RATE_MATCHING = 0xa - ETHTOOL_A_LINKMODES_MAX = 0xa - ETHTOOL_A_LINKSTATE_UNSPEC = 0x0 - ETHTOOL_A_LINKSTATE_HEADER = 0x1 - ETHTOOL_A_LINKSTATE_LINK = 0x2 - ETHTOOL_A_LINKSTATE_SQI = 0x3 - ETHTOOL_A_LINKSTATE_SQI_MAX = 0x4 - ETHTOOL_A_LINKSTATE_EXT_STATE = 0x5 - ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 0x6 - ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT = 0x7 - ETHTOOL_A_LINKSTATE_MAX = 0x7 - ETHTOOL_A_DEBUG_UNSPEC = 0x0 - ETHTOOL_A_DEBUG_HEADER = 0x1 - ETHTOOL_A_DEBUG_MSGMASK = 0x2 - ETHTOOL_A_DEBUG_MAX = 0x2 - ETHTOOL_A_WOL_UNSPEC = 0x0 - ETHTOOL_A_WOL_HEADER = 0x1 - ETHTOOL_A_WOL_MODES = 0x2 - ETHTOOL_A_WOL_SOPASS = 0x3 - ETHTOOL_A_WOL_MAX = 0x3 - ETHTOOL_A_FEATURES_UNSPEC = 0x0 - ETHTOOL_A_FEATURES_HEADER = 0x1 - ETHTOOL_A_FEATURES_HW = 0x2 - ETHTOOL_A_FEATURES_WANTED = 0x3 - ETHTOOL_A_FEATURES_ACTIVE = 0x4 - ETHTOOL_A_FEATURES_NOCHANGE = 0x5 - ETHTOOL_A_FEATURES_MAX = 0x5 - ETHTOOL_A_PRIVFLAGS_UNSPEC = 0x0 - ETHTOOL_A_PRIVFLAGS_HEADER = 0x1 - ETHTOOL_A_PRIVFLAGS_FLAGS = 0x2 - ETHTOOL_A_PRIVFLAGS_MAX = 0x2 - ETHTOOL_A_RINGS_UNSPEC = 0x0 - ETHTOOL_A_RINGS_HEADER = 0x1 - ETHTOOL_A_RINGS_RX_MAX = 0x2 - ETHTOOL_A_RINGS_RX_MINI_MAX = 0x3 - ETHTOOL_A_RINGS_RX_JUMBO_MAX = 0x4 - ETHTOOL_A_RINGS_TX_MAX = 0x5 - ETHTOOL_A_RINGS_RX = 0x6 - ETHTOOL_A_RINGS_RX_MINI = 0x7 - ETHTOOL_A_RINGS_RX_JUMBO = 0x8 - ETHTOOL_A_RINGS_TX = 0x9 - ETHTOOL_A_RINGS_RX_BUF_LEN = 0xa - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb - ETHTOOL_A_RINGS_CQE_SIZE = 0xc - ETHTOOL_A_RINGS_TX_PUSH = 0xd - ETHTOOL_A_RINGS_RX_PUSH = 0xe - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 0xf - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 0x10 - ETHTOOL_A_RINGS_HDS_THRESH = 0x11 - ETHTOOL_A_RINGS_HDS_THRESH_MAX = 0x12 - ETHTOOL_A_RINGS_MAX = 0x12 - ETHTOOL_A_CHANNELS_UNSPEC = 0x0 - ETHTOOL_A_CHANNELS_HEADER = 0x1 - ETHTOOL_A_CHANNELS_RX_MAX = 0x2 - ETHTOOL_A_CHANNELS_TX_MAX = 0x3 - ETHTOOL_A_CHANNELS_OTHER_MAX = 0x4 - ETHTOOL_A_CHANNELS_COMBINED_MAX = 0x5 - ETHTOOL_A_CHANNELS_RX_COUNT = 0x6 - ETHTOOL_A_CHANNELS_TX_COUNT = 0x7 - ETHTOOL_A_CHANNELS_OTHER_COUNT = 0x8 - ETHTOOL_A_CHANNELS_COMBINED_COUNT = 0x9 - ETHTOOL_A_CHANNELS_MAX = 0x9 - ETHTOOL_A_COALESCE_UNSPEC = 0x0 - ETHTOOL_A_COALESCE_HEADER = 0x1 - ETHTOOL_A_COALESCE_RX_USECS = 0x2 - ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 0x3 - ETHTOOL_A_COALESCE_RX_USECS_IRQ = 0x4 - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 0x5 - ETHTOOL_A_COALESCE_TX_USECS = 0x6 - ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 0x7 - ETHTOOL_A_COALESCE_TX_USECS_IRQ = 0x8 - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 0x9 - ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 0xa - ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 0xb - ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 0xc - ETHTOOL_A_COALESCE_PKT_RATE_LOW = 0xd - ETHTOOL_A_COALESCE_RX_USECS_LOW = 0xe - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 0xf - ETHTOOL_A_COALESCE_TX_USECS_LOW = 0x10 - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 0x11 - ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 0x12 - ETHTOOL_A_COALESCE_RX_USECS_HIGH = 0x13 - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 0x14 - ETHTOOL_A_COALESCE_TX_USECS_HIGH = 0x15 - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 0x16 - ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 - ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 0x18 - ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 0x19 - ETHTOOL_A_COALESCE_MAX = 0x1e - ETHTOOL_A_PAUSE_UNSPEC = 0x0 - ETHTOOL_A_PAUSE_HEADER = 0x1 - ETHTOOL_A_PAUSE_AUTONEG = 0x2 - ETHTOOL_A_PAUSE_RX = 0x3 - ETHTOOL_A_PAUSE_TX = 0x4 - ETHTOOL_A_PAUSE_STATS = 0x5 - ETHTOOL_A_PAUSE_MAX = 0x6 - ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0 - ETHTOOL_A_PAUSE_STAT_PAD = 0x1 - ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2 - ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 0x3 - ETHTOOL_A_PAUSE_STAT_MAX = 0x3 - ETHTOOL_A_EEE_UNSPEC = 0x0 - ETHTOOL_A_EEE_HEADER = 0x1 - ETHTOOL_A_EEE_MODES_OURS = 0x2 - ETHTOOL_A_EEE_MODES_PEER = 0x3 - ETHTOOL_A_EEE_ACTIVE = 0x4 - ETHTOOL_A_EEE_ENABLED = 0x5 - ETHTOOL_A_EEE_TX_LPI_ENABLED = 0x6 - ETHTOOL_A_EEE_TX_LPI_TIMER = 0x7 - ETHTOOL_A_EEE_MAX = 0x7 - ETHTOOL_A_TSINFO_UNSPEC = 0x0 - ETHTOOL_A_TSINFO_HEADER = 0x1 - ETHTOOL_A_TSINFO_TIMESTAMPING = 0x2 - ETHTOOL_A_TSINFO_TX_TYPES = 0x3 - ETHTOOL_A_TSINFO_RX_FILTERS = 0x4 - ETHTOOL_A_TSINFO_PHC_INDEX = 0x5 - ETHTOOL_A_TSINFO_STATS = 0x6 - ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER = 0x7 - ETHTOOL_A_TSINFO_MAX = 0x9 - ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_HEADER = 0x1 - ETHTOOL_A_CABLE_TEST_MAX = 0x1 - ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0x0 - ETHTOOL_A_CABLE_RESULT_CODE_OK = 0x1 - ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 0x2 - ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 0x3 - ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 0x4 - ETHTOOL_A_CABLE_PAIR_A = 0x0 - ETHTOOL_A_CABLE_PAIR_B = 0x1 - ETHTOOL_A_CABLE_PAIR_C = 0x2 - ETHTOOL_A_CABLE_PAIR_D = 0x3 - ETHTOOL_A_CABLE_RESULT_UNSPEC = 0x0 - ETHTOOL_A_CABLE_RESULT_PAIR = 0x1 - ETHTOOL_A_CABLE_RESULT_CODE = 0x2 - ETHTOOL_A_CABLE_RESULT_MAX = 0x3 - ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0x0 - ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 0x1 - ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 0x2 - ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 0x3 - ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 0x1 - ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2 - ETHTOOL_A_CABLE_NEST_UNSPEC = 0x0 - ETHTOOL_A_CABLE_NEST_RESULT = 0x1 - ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 0x2 - ETHTOOL_A_CABLE_NEST_MAX = 0x2 - ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_NTF_HEADER = 0x1 - ETHTOOL_A_CABLE_TEST_NTF_STATUS = 0x2 - ETHTOOL_A_CABLE_TEST_NTF_NEST = 0x3 - ETHTOOL_A_CABLE_TEST_NTF_MAX = 0x3 - ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 0x1 - ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 0x2 - ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 0x3 - ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 0x4 - ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 0x4 - ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_TDR_HEADER = 0x1 - ETHTOOL_A_CABLE_TEST_TDR_CFG = 0x2 - ETHTOOL_A_CABLE_TEST_TDR_MAX = 0x2 - ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0x0 - ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 0x1 - ETHTOOL_A_CABLE_AMPLITUDE_mV = 0x2 - ETHTOOL_A_CABLE_AMPLITUDE_MAX = 0x2 - ETHTOOL_A_CABLE_PULSE_UNSPEC = 0x0 - ETHTOOL_A_CABLE_PULSE_mV = 0x1 - ETHTOOL_A_CABLE_PULSE_MAX = 0x1 - ETHTOOL_A_CABLE_STEP_UNSPEC = 0x0 - ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 0x1 - ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 0x2 - ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 0x3 - ETHTOOL_A_CABLE_STEP_MAX = 0x3 - ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TDR_NEST_STEP = 0x1 - ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 0x2 - ETHTOOL_A_CABLE_TDR_NEST_PULSE = 0x3 - ETHTOOL_A_CABLE_TDR_NEST_MAX = 0x3 - ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC = 0x0 - ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER = 0x1 - ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS = 0x2 - ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST = 0x3 - ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = 0x3 - ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0x0 - ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 0x1 - ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 0x2 - ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0x0 - ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 0x1 - ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 0x2 - ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 0x2 - ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0x0 - ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 0x1 - ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 0x2 - ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 0x3 - ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 0x3 - ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0x0 - ETHTOOL_A_TUNNEL_UDP_TABLE = 0x1 - ETHTOOL_A_TUNNEL_UDP_MAX = 0x1 - ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0x0 - ETHTOOL_A_TUNNEL_INFO_HEADER = 0x1 - ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 0x2 - ETHTOOL_A_TUNNEL_INFO_MAX = 0x2 -) - -const ( - TCP_V4_FLOW = 0x1 - UDP_V4_FLOW = 0x2 - TCP_V6_FLOW = 0x5 - UDP_V6_FLOW = 0x6 - ESP_V4_FLOW = 0xa - ESP_V6_FLOW = 0xc - IP_USER_FLOW = 0xd - IPV6_USER_FLOW = 0xe - IPV6_FLOW = 0x11 - ETHER_FLOW = 0x12 -) - -const SPEED_UNKNOWN = -0x1 - -type EthtoolDrvinfo struct { - Cmd uint32 - Driver [32]byte - Version [32]byte - Fw_version [32]byte - Bus_info [32]byte - Erom_version [32]byte - Reserved2 [12]byte - N_priv_flags uint32 - N_stats uint32 - Testinfo_len uint32 - Eedump_len uint32 - Regdump_len uint32 -} - -type EthtoolTsInfo struct { - Cmd uint32 - So_timestamping uint32 - Phc_index int32 - Tx_types uint32 - Tx_reserved [3]uint32 - Rx_filters uint32 - Rx_reserved [3]uint32 -} - -type HwTstampConfig struct { - Flags int32 - Tx_type int32 - Rx_filter int32 -} - -const ( - HWTSTAMP_FILTER_NONE = 0x0 - HWTSTAMP_FILTER_ALL = 0x1 - HWTSTAMP_FILTER_SOME = 0x2 - HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 0x3 - HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 0x6 - HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 0x9 - HWTSTAMP_FILTER_PTP_V2_EVENT = 0xc -) - -const ( - HWTSTAMP_TX_OFF = 0x0 - HWTSTAMP_TX_ON = 0x1 - HWTSTAMP_TX_ONESTEP_SYNC = 0x2 -) - -type ( - PtpClockCaps struct { - Max_adj int32 - N_alarm int32 - N_ext_ts int32 - N_per_out int32 - Pps int32 - N_pins int32 - Cross_timestamping int32 - Adjust_phase int32 - Max_phase_adj int32 - Rsv [11]int32 - } - PtpClockTime struct { - Sec int64 - Nsec uint32 - Reserved uint32 - } - PtpExttsEvent struct { - T PtpClockTime - Index uint32 - Flags uint32 - Rsv [2]uint32 - } - PtpExttsRequest struct { - Index uint32 - Flags uint32 - Rsv [2]uint32 - } - PtpPeroutRequest struct { - StartOrPhase PtpClockTime - Period PtpClockTime - Index uint32 - Flags uint32 - On PtpClockTime - } - PtpPinDesc struct { - Name [64]byte - Index uint32 - Func uint32 - Chan uint32 - Rsv [5]uint32 - } - PtpSysOffset struct { - Samples uint32 - Rsv [3]uint32 - Ts [51]PtpClockTime - } - PtpSysOffsetExtended struct { - Samples uint32 - Clockid int32 - Rsv [2]uint32 - Ts [25][3]PtpClockTime - } - PtpSysOffsetPrecise struct { - Device PtpClockTime - Realtime PtpClockTime - Monoraw PtpClockTime - Rsv [4]uint32 - } -) - -const ( - PTP_PF_NONE = 0x0 - PTP_PF_EXTTS = 0x1 - PTP_PF_PEROUT = 0x2 - PTP_PF_PHYSYNC = 0x3 -) - -type ( - HIDRawReportDescriptor struct { - Size uint32 - Value [4096]uint8 - } - HIDRawDevInfo struct { - Bustype uint32 - Vendor int16 - Product int16 - } -) - -const ( - CLOSE_RANGE_UNSHARE = 0x2 - CLOSE_RANGE_CLOEXEC = 0x4 -) - -const ( - NLMSGERR_ATTR_MSG = 0x1 - NLMSGERR_ATTR_OFFS = 0x2 - NLMSGERR_ATTR_COOKIE = 0x3 -) - -type ( - EraseInfo struct { - Start uint32 - Length uint32 - } - EraseInfo64 struct { - Start uint64 - Length uint64 - } - MtdOobBuf struct { - Start uint32 - Length uint32 - Ptr *uint8 - } - MtdOobBuf64 struct { - Start uint64 - Pad uint32 - Length uint32 - Ptr uint64 - } - MtdWriteReq struct { - Start uint64 - Len uint64 - Ooblen uint64 - Data uint64 - Oob uint64 - Mode uint8 - _ [7]uint8 - } - MtdInfo struct { - Type uint8 - Flags uint32 - Size uint32 - Erasesize uint32 - Writesize uint32 - Oobsize uint32 - _ uint64 - } - RegionInfo struct { - Offset uint32 - Erasesize uint32 - Numblocks uint32 - Regionindex uint32 - } - OtpInfo struct { - Start uint32 - Length uint32 - Locked uint32 - } - NandOobinfo struct { - Useecc uint32 - Eccbytes uint32 - Oobfree [8][2]uint32 - Eccpos [32]uint32 - } - NandOobfree struct { - Offset uint32 - Length uint32 - } - NandEcclayout struct { - Eccbytes uint32 - Eccpos [64]uint32 - Oobavail uint32 - Oobfree [8]NandOobfree - } - MtdEccStats struct { - Corrected uint32 - Failed uint32 - Badblocks uint32 - Bbtblocks uint32 - } -) - -const ( - MTD_OPS_PLACE_OOB = 0x0 - MTD_OPS_AUTO_OOB = 0x1 - MTD_OPS_RAW = 0x2 -) - -const ( - MTD_FILE_MODE_NORMAL = 0x0 - MTD_FILE_MODE_OTP_FACTORY = 0x1 - MTD_FILE_MODE_OTP_USER = 0x2 - MTD_FILE_MODE_RAW = 0x3 -) - -const ( - NFC_CMD_UNSPEC = 0x0 - NFC_CMD_GET_DEVICE = 0x1 - NFC_CMD_DEV_UP = 0x2 - NFC_CMD_DEV_DOWN = 0x3 - NFC_CMD_DEP_LINK_UP = 0x4 - NFC_CMD_DEP_LINK_DOWN = 0x5 - NFC_CMD_START_POLL = 0x6 - NFC_CMD_STOP_POLL = 0x7 - NFC_CMD_GET_TARGET = 0x8 - NFC_EVENT_TARGETS_FOUND = 0x9 - NFC_EVENT_DEVICE_ADDED = 0xa - NFC_EVENT_DEVICE_REMOVED = 0xb - NFC_EVENT_TARGET_LOST = 0xc - NFC_EVENT_TM_ACTIVATED = 0xd - NFC_EVENT_TM_DEACTIVATED = 0xe - NFC_CMD_LLC_GET_PARAMS = 0xf - NFC_CMD_LLC_SET_PARAMS = 0x10 - NFC_CMD_ENABLE_SE = 0x11 - NFC_CMD_DISABLE_SE = 0x12 - NFC_CMD_LLC_SDREQ = 0x13 - NFC_EVENT_LLC_SDRES = 0x14 - NFC_CMD_FW_DOWNLOAD = 0x15 - NFC_EVENT_SE_ADDED = 0x16 - NFC_EVENT_SE_REMOVED = 0x17 - NFC_EVENT_SE_CONNECTIVITY = 0x18 - NFC_EVENT_SE_TRANSACTION = 0x19 - NFC_CMD_GET_SE = 0x1a - NFC_CMD_SE_IO = 0x1b - NFC_CMD_ACTIVATE_TARGET = 0x1c - NFC_CMD_VENDOR = 0x1d - NFC_CMD_DEACTIVATE_TARGET = 0x1e - NFC_ATTR_UNSPEC = 0x0 - NFC_ATTR_DEVICE_INDEX = 0x1 - NFC_ATTR_DEVICE_NAME = 0x2 - NFC_ATTR_PROTOCOLS = 0x3 - NFC_ATTR_TARGET_INDEX = 0x4 - NFC_ATTR_TARGET_SENS_RES = 0x5 - NFC_ATTR_TARGET_SEL_RES = 0x6 - NFC_ATTR_TARGET_NFCID1 = 0x7 - NFC_ATTR_TARGET_SENSB_RES = 0x8 - NFC_ATTR_TARGET_SENSF_RES = 0x9 - NFC_ATTR_COMM_MODE = 0xa - NFC_ATTR_RF_MODE = 0xb - NFC_ATTR_DEVICE_POWERED = 0xc - NFC_ATTR_IM_PROTOCOLS = 0xd - NFC_ATTR_TM_PROTOCOLS = 0xe - NFC_ATTR_LLC_PARAM_LTO = 0xf - NFC_ATTR_LLC_PARAM_RW = 0x10 - NFC_ATTR_LLC_PARAM_MIUX = 0x11 - NFC_ATTR_SE = 0x12 - NFC_ATTR_LLC_SDP = 0x13 - NFC_ATTR_FIRMWARE_NAME = 0x14 - NFC_ATTR_SE_INDEX = 0x15 - NFC_ATTR_SE_TYPE = 0x16 - NFC_ATTR_SE_AID = 0x17 - NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS = 0x18 - NFC_ATTR_SE_APDU = 0x19 - NFC_ATTR_TARGET_ISO15693_DSFID = 0x1a - NFC_ATTR_TARGET_ISO15693_UID = 0x1b - NFC_ATTR_SE_PARAMS = 0x1c - NFC_ATTR_VENDOR_ID = 0x1d - NFC_ATTR_VENDOR_SUBCMD = 0x1e - NFC_ATTR_VENDOR_DATA = 0x1f - NFC_SDP_ATTR_UNSPEC = 0x0 - NFC_SDP_ATTR_URI = 0x1 - NFC_SDP_ATTR_SAP = 0x2 -) - -type LandlockRulesetAttr struct { - Access_fs uint64 - Access_net uint64 - Scoped uint64 -} - -type LandlockPathBeneathAttr struct { - Allowed_access uint64 - Parent_fd int32 -} - -const ( - LANDLOCK_RULE_PATH_BENEATH = 0x1 -) - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 - - ipc_64 = 0x100 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) - -type MountAttr struct { - Attr_set uint64 - Attr_clr uint64 - Propagation uint64 - Userns_fd uint64 -} - -const ( - WG_CMD_GET_DEVICE = 0x0 - WG_CMD_SET_DEVICE = 0x1 - WGDEVICE_F_REPLACE_PEERS = 0x1 - WGDEVICE_A_UNSPEC = 0x0 - WGDEVICE_A_IFINDEX = 0x1 - WGDEVICE_A_IFNAME = 0x2 - WGDEVICE_A_PRIVATE_KEY = 0x3 - WGDEVICE_A_PUBLIC_KEY = 0x4 - WGDEVICE_A_FLAGS = 0x5 - WGDEVICE_A_LISTEN_PORT = 0x6 - WGDEVICE_A_FWMARK = 0x7 - WGDEVICE_A_PEERS = 0x8 - WGPEER_F_REMOVE_ME = 0x1 - WGPEER_F_REPLACE_ALLOWEDIPS = 0x2 - WGPEER_F_UPDATE_ONLY = 0x4 - WGPEER_A_UNSPEC = 0x0 - WGPEER_A_PUBLIC_KEY = 0x1 - WGPEER_A_PRESHARED_KEY = 0x2 - WGPEER_A_FLAGS = 0x3 - WGPEER_A_ENDPOINT = 0x4 - WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL = 0x5 - WGPEER_A_LAST_HANDSHAKE_TIME = 0x6 - WGPEER_A_RX_BYTES = 0x7 - WGPEER_A_TX_BYTES = 0x8 - WGPEER_A_ALLOWEDIPS = 0x9 - WGPEER_A_PROTOCOL_VERSION = 0xa - WGALLOWEDIP_A_UNSPEC = 0x0 - WGALLOWEDIP_A_FAMILY = 0x1 - WGALLOWEDIP_A_IPADDR = 0x2 - WGALLOWEDIP_A_CIDR_MASK = 0x3 -) - -const ( - NL_ATTR_TYPE_INVALID = 0x0 - NL_ATTR_TYPE_FLAG = 0x1 - NL_ATTR_TYPE_U8 = 0x2 - NL_ATTR_TYPE_U16 = 0x3 - NL_ATTR_TYPE_U32 = 0x4 - NL_ATTR_TYPE_U64 = 0x5 - NL_ATTR_TYPE_S8 = 0x6 - NL_ATTR_TYPE_S16 = 0x7 - NL_ATTR_TYPE_S32 = 0x8 - NL_ATTR_TYPE_S64 = 0x9 - NL_ATTR_TYPE_BINARY = 0xa - NL_ATTR_TYPE_STRING = 0xb - NL_ATTR_TYPE_NUL_STRING = 0xc - NL_ATTR_TYPE_NESTED = 0xd - NL_ATTR_TYPE_NESTED_ARRAY = 0xe - NL_ATTR_TYPE_BITFIELD32 = 0xf - - NL_POLICY_TYPE_ATTR_UNSPEC = 0x0 - NL_POLICY_TYPE_ATTR_TYPE = 0x1 - NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 0x2 - NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 0x3 - NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 0x4 - NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 0x5 - NL_POLICY_TYPE_ATTR_MIN_LENGTH = 0x6 - NL_POLICY_TYPE_ATTR_MAX_LENGTH = 0x7 - NL_POLICY_TYPE_ATTR_POLICY_IDX = 0x8 - NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 0x9 - NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa - NL_POLICY_TYPE_ATTR_PAD = 0xb - NL_POLICY_TYPE_ATTR_MASK = 0xc - NL_POLICY_TYPE_ATTR_MAX = 0xc -) - -type CANBitTiming struct { - Bitrate uint32 - Sample_point uint32 - Tq uint32 - Prop_seg uint32 - Phase_seg1 uint32 - Phase_seg2 uint32 - Sjw uint32 - Brp uint32 -} - -type CANBitTimingConst struct { - Name [16]uint8 - Tseg1_min uint32 - Tseg1_max uint32 - Tseg2_min uint32 - Tseg2_max uint32 - Sjw_max uint32 - Brp_min uint32 - Brp_max uint32 - Brp_inc uint32 -} - -type CANClock struct { - Freq uint32 -} - -type CANBusErrorCounters struct { - Txerr uint16 - Rxerr uint16 -} - -type CANCtrlMode struct { - Mask uint32 - Flags uint32 -} - -type CANDeviceStats struct { - Bus_error uint32 - Error_warning uint32 - Error_passive uint32 - Bus_off uint32 - Arbitration_lost uint32 - Restarts uint32 -} - -const ( - CAN_STATE_ERROR_ACTIVE = 0x0 - CAN_STATE_ERROR_WARNING = 0x1 - CAN_STATE_ERROR_PASSIVE = 0x2 - CAN_STATE_BUS_OFF = 0x3 - CAN_STATE_STOPPED = 0x4 - CAN_STATE_SLEEPING = 0x5 - CAN_STATE_MAX = 0x6 -) - -const ( - IFLA_CAN_UNSPEC = 0x0 - IFLA_CAN_BITTIMING = 0x1 - IFLA_CAN_BITTIMING_CONST = 0x2 - IFLA_CAN_CLOCK = 0x3 - IFLA_CAN_STATE = 0x4 - IFLA_CAN_CTRLMODE = 0x5 - IFLA_CAN_RESTART_MS = 0x6 - IFLA_CAN_RESTART = 0x7 - IFLA_CAN_BERR_COUNTER = 0x8 - IFLA_CAN_DATA_BITTIMING = 0x9 - IFLA_CAN_DATA_BITTIMING_CONST = 0xa - IFLA_CAN_TERMINATION = 0xb - IFLA_CAN_TERMINATION_CONST = 0xc - IFLA_CAN_BITRATE_CONST = 0xd - IFLA_CAN_DATA_BITRATE_CONST = 0xe - IFLA_CAN_BITRATE_MAX = 0xf -) - -type KCMAttach struct { - Fd int32 - Bpf_fd int32 -} - -type KCMUnattach struct { - Fd int32 -} - -type KCMClone struct { - Fd int32 -} - -const ( - NL80211_AC_BE = 0x2 - NL80211_AC_BK = 0x3 - NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0x0 - NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 0x1 - NL80211_AC_VI = 0x1 - NL80211_AC_VO = 0x0 - NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 0x1 - NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 0x2 - NL80211_AP_SME_SA_QUERY_OFFLOAD = 0x1 - NL80211_ATTR_4ADDR = 0x53 - NL80211_ATTR_ACK = 0x5c - NL80211_ATTR_ACK_SIGNAL = 0x107 - NL80211_ATTR_ACL_POLICY = 0xa5 - NL80211_ATTR_ADMITTED_TIME = 0xd4 - NL80211_ATTR_AIRTIME_WEIGHT = 0x112 - NL80211_ATTR_AKM_SUITES = 0x4c - NL80211_ATTR_AP_ISOLATE = 0x60 - NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135 - NL80211_ATTR_ASSOC_SPP_AMSDU = 0x14a - NL80211_ATTR_AUTH_DATA = 0x9c - NL80211_ATTR_AUTH_TYPE = 0x35 - NL80211_ATTR_BANDS = 0xef - NL80211_ATTR_BEACON_HEAD = 0xe - NL80211_ATTR_BEACON_INTERVAL = 0xc - NL80211_ATTR_BEACON_TAIL = 0xf - NL80211_ATTR_BG_SCAN_PERIOD = 0x98 - NL80211_ATTR_BSS_BASIC_RATES = 0x24 - NL80211_ATTR_BSS = 0x2f - NL80211_ATTR_BSS_CTS_PROT = 0x1c - NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA = 0x147 - NL80211_ATTR_BSS_HT_OPMODE = 0x6d - NL80211_ATTR_BSSID = 0xf5 - NL80211_ATTR_BSS_SELECT = 0xe3 - NL80211_ATTR_BSS_SHORT_PREAMBLE = 0x1d - NL80211_ATTR_BSS_SHORT_SLOT_TIME = 0x1e - NL80211_ATTR_CENTER_FREQ1 = 0xa0 - NL80211_ATTR_CENTER_FREQ1_OFFSET = 0x123 - NL80211_ATTR_CENTER_FREQ2 = 0xa1 - NL80211_ATTR_CHANNEL_WIDTH = 0x9f - NL80211_ATTR_CH_SWITCH_BLOCK_TX = 0xb8 - NL80211_ATTR_CH_SWITCH_COUNT = 0xb7 - NL80211_ATTR_CIPHER_SUITE_GROUP = 0x4a - NL80211_ATTR_CIPHER_SUITES = 0x39 - NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 0x49 - NL80211_ATTR_CNTDWN_OFFS_BEACON = 0xba - NL80211_ATTR_CNTDWN_OFFS_PRESP = 0xbb - NL80211_ATTR_COALESCE_RULE = 0xb6 - NL80211_ATTR_COALESCE_RULE_CONDITION = 0x2 - NL80211_ATTR_COALESCE_RULE_DELAY = 0x1 - NL80211_ATTR_COALESCE_RULE_MAX = 0x3 - NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 0x3 - NL80211_ATTR_COLOR_CHANGE_COLOR = 0x130 - NL80211_ATTR_COLOR_CHANGE_COUNT = 0x12f - NL80211_ATTR_COLOR_CHANGE_ELEMS = 0x131 - NL80211_ATTR_CONN_FAILED_REASON = 0x9b - NL80211_ATTR_CONTROL_PORT = 0x44 - NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 0x66 - NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 0x67 - NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 0x11e - NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 0x108 - NL80211_ATTR_COOKIE = 0x58 - NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 0x8 - NL80211_ATTR_CQM = 0x5e - NL80211_ATTR_CQM_MAX = 0x9 - NL80211_ATTR_CQM_PKT_LOSS_EVENT = 0x4 - NL80211_ATTR_CQM_RSSI_HYST = 0x2 - NL80211_ATTR_CQM_RSSI_LEVEL = 0x9 - NL80211_ATTR_CQM_RSSI_THOLD = 0x1 - NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 0x3 - NL80211_ATTR_CQM_TXE_INTVL = 0x7 - NL80211_ATTR_CQM_TXE_PKTS = 0x6 - NL80211_ATTR_CQM_TXE_RATE = 0x5 - NL80211_ATTR_CRIT_PROT_ID = 0xb3 - NL80211_ATTR_CSA_C_OFF_BEACON = 0xba - NL80211_ATTR_CSA_C_OFF_PRESP = 0xbb - NL80211_ATTR_CSA_C_OFFSETS_TX = 0xcd - NL80211_ATTR_CSA_IES = 0xb9 - NL80211_ATTR_DEVICE_AP_SME = 0x8d - NL80211_ATTR_DFS_CAC_TIME = 0x7 - NL80211_ATTR_DFS_REGION = 0x92 - NL80211_ATTR_DISABLE_EHT = 0x137 - NL80211_ATTR_DISABLE_HE = 0x12d - NL80211_ATTR_DISABLE_HT = 0x93 - NL80211_ATTR_DISABLE_VHT = 0xaf - NL80211_ATTR_DISCONNECTED_BY_AP = 0x47 - NL80211_ATTR_DONT_WAIT_FOR_ACK = 0x8e - NL80211_ATTR_DTIM_PERIOD = 0xd - NL80211_ATTR_DURATION = 0x57 - NL80211_ATTR_EHT_CAPABILITY = 0x136 - NL80211_ATTR_EMA_RNR_ELEMS = 0x145 - NL80211_ATTR_EML_CAPABILITY = 0x13d - NL80211_ATTR_EXT_CAPA = 0xa9 - NL80211_ATTR_EXT_CAPA_MASK = 0xaa - NL80211_ATTR_EXTERNAL_AUTH_ACTION = 0x104 - NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 0x105 - NL80211_ATTR_EXT_FEATURES = 0xd9 - NL80211_ATTR_FEATURE_FLAGS = 0x8f - NL80211_ATTR_FILS_CACHE_ID = 0xfd - NL80211_ATTR_FILS_DISCOVERY = 0x126 - NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 0xfb - NL80211_ATTR_FILS_ERP_REALM = 0xfa - NL80211_ATTR_FILS_ERP_RRK = 0xfc - NL80211_ATTR_FILS_ERP_USERNAME = 0xf9 - NL80211_ATTR_FILS_KEK = 0xf2 - NL80211_ATTR_FILS_NONCES = 0xf3 - NL80211_ATTR_FRAME = 0x33 - NL80211_ATTR_FRAME_MATCH = 0x5b - NL80211_ATTR_FRAME_TYPE = 0x65 - NL80211_ATTR_FREQ_AFTER = 0x3b - NL80211_ATTR_FREQ_BEFORE = 0x3a - NL80211_ATTR_FREQ_FIXED = 0x3c - NL80211_ATTR_FREQ_RANGE_END = 0x3 - NL80211_ATTR_FREQ_RANGE_MAX_BW = 0x4 - NL80211_ATTR_FREQ_RANGE_START = 0x2 - NL80211_ATTR_FTM_RESPONDER = 0x10e - NL80211_ATTR_FTM_RESPONDER_STATS = 0x10f - NL80211_ATTR_GENERATION = 0x2e - NL80211_ATTR_HANDLE_DFS = 0xbf - NL80211_ATTR_HE_6GHZ_CAPABILITY = 0x125 - NL80211_ATTR_HE_BSS_COLOR = 0x11b - NL80211_ATTR_HE_CAPABILITY = 0x10d - NL80211_ATTR_HE_OBSS_PD = 0x117 - NL80211_ATTR_HIDDEN_SSID = 0x7e - NL80211_ATTR_HT_CAPABILITY = 0x1f - NL80211_ATTR_HT_CAPABILITY_MASK = 0x94 - NL80211_ATTR_HW_TIMESTAMP_ENABLED = 0x144 - NL80211_ATTR_IE_ASSOC_RESP = 0x80 - NL80211_ATTR_IE = 0x2a - NL80211_ATTR_IE_PROBE_RESP = 0x7f - NL80211_ATTR_IE_RIC = 0xb2 - NL80211_ATTR_IFACE_SOCKET_OWNER = 0xcc - NL80211_ATTR_IFINDEX = 0x3 - NL80211_ATTR_IFNAME = 0x4 - NL80211_ATTR_IFTYPE_AKM_SUITES = 0x11c - NL80211_ATTR_IFTYPE = 0x5 - NL80211_ATTR_IFTYPE_EXT_CAPA = 0xe6 - NL80211_ATTR_INACTIVITY_TIMEOUT = 0x96 - NL80211_ATTR_INTERFACE_COMBINATIONS = 0x78 - NL80211_ATTR_KEY_CIPHER = 0x9 - NL80211_ATTR_KEY = 0x50 - NL80211_ATTR_KEY_DATA = 0x7 - NL80211_ATTR_KEY_DEFAULT = 0xb - NL80211_ATTR_KEY_DEFAULT_MGMT = 0x28 - NL80211_ATTR_KEY_DEFAULT_TYPES = 0x6e - NL80211_ATTR_KEY_IDX = 0x8 - NL80211_ATTR_KEYS = 0x51 - NL80211_ATTR_KEY_SEQ = 0xa - NL80211_ATTR_KEY_TYPE = 0x37 - NL80211_ATTR_LOCAL_MESH_POWER_MODE = 0xa4 - NL80211_ATTR_LOCAL_STATE_CHANGE = 0x5f - NL80211_ATTR_MAC_ACL_MAX = 0xa7 - NL80211_ATTR_MAC_ADDRS = 0xa6 - NL80211_ATTR_MAC = 0x6 - NL80211_ATTR_MAC_HINT = 0xc8 - NL80211_ATTR_MAC_MASK = 0xd7 - NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x151 - NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 - NL80211_ATTR_MAX_CSA_COUNTERS = 0xce - NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 0x143 - NL80211_ATTR_MAX_MATCH_SETS = 0x85 - NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c - NL80211_ATTR_MAX_NUM_PMKIDS = 0x56 - NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 0x2b - NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 0xde - NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 0x7b - NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 0x6f - NL80211_ATTR_MAX_SCAN_IE_LEN = 0x38 - NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 0xdf - NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 0xe0 - NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 0x7c - NL80211_ATTR_MBSSID_CONFIG = 0x132 - NL80211_ATTR_MBSSID_ELEMS = 0x133 - NL80211_ATTR_MCAST_RATE = 0x6b - NL80211_ATTR_MDID = 0xb1 - NL80211_ATTR_MEASUREMENT_DURATION = 0xeb - NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 0xec - NL80211_ATTR_MESH_CONFIG = 0x23 - NL80211_ATTR_MESH_ID = 0x18 - NL80211_ATTR_MESH_PEER_AID = 0xed - NL80211_ATTR_MESH_SETUP = 0x70 - NL80211_ATTR_MGMT_SUBTYPE = 0x29 - NL80211_ATTR_MLD_ADDR = 0x13a - NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e - NL80211_ATTR_MLO_LINK_DISABLED = 0x146 - NL80211_ATTR_MLO_LINK_ID = 0x139 - NL80211_ATTR_MLO_LINKS = 0x138 - NL80211_ATTR_MLO_SUPPORT = 0x13b - NL80211_ATTR_MLO_TTLM_DLINK = 0x148 - NL80211_ATTR_MLO_TTLM_ULINK = 0x149 - NL80211_ATTR_MNTR_FLAGS = 0x17 - NL80211_ATTR_MPATH_INFO = 0x1b - NL80211_ATTR_MPATH_NEXT_HOP = 0x1a - NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 0xf4 - NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 0xe8 - NL80211_ATTR_MU_MIMO_GROUP_DATA = 0xe7 - NL80211_ATTR_NAN_FUNC = 0xf0 - NL80211_ATTR_NAN_MASTER_PREF = 0xee - NL80211_ATTR_NAN_MATCH = 0xf1 - NL80211_ATTR_NETNS_FD = 0xdb - NL80211_ATTR_NOACK_MAP = 0x95 - NL80211_ATTR_NSS = 0x106 - NL80211_ATTR_OBSS_COLOR_BITMAP = 0x12e - NL80211_ATTR_OFFCHANNEL_TX_OK = 0x6c - NL80211_ATTR_OPER_CLASS = 0xd6 - NL80211_ATTR_OPMODE_NOTIF = 0xc2 - NL80211_ATTR_P2P_CTWINDOW = 0xa2 - NL80211_ATTR_P2P_OPPPS = 0xa3 - NL80211_ATTR_PAD = 0xe5 - NL80211_ATTR_PBSS = 0xe2 - NL80211_ATTR_PEER_AID = 0xb5 - NL80211_ATTR_PEER_MEASUREMENTS = 0x111 - NL80211_ATTR_PID = 0x52 - NL80211_ATTR_PMK = 0xfe - NL80211_ATTR_PMKID = 0x55 - NL80211_ATTR_PMK_LIFETIME = 0x11f - NL80211_ATTR_PMKR0_NAME = 0x102 - NL80211_ATTR_PMK_REAUTH_THRESHOLD = 0x120 - NL80211_ATTR_PMKSA_CANDIDATE = 0x86 - NL80211_ATTR_PORT_AUTHORIZED = 0x103 - NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 0x5 - NL80211_ATTR_POWER_RULE_MAX_EIRP = 0x6 - NL80211_ATTR_POWER_RULE_PSD = 0x8 - NL80211_ATTR_PREV_BSSID = 0x4f - NL80211_ATTR_PRIVACY = 0x46 - NL80211_ATTR_PROBE_RESP = 0x91 - NL80211_ATTR_PROBE_RESP_OFFLOAD = 0x90 - NL80211_ATTR_PROTOCOL_FEATURES = 0xad - NL80211_ATTR_PS_STATE = 0x5d - NL80211_ATTR_PUNCT_BITMAP = 0x142 - NL80211_ATTR_QOS_MAP = 0xc7 - NL80211_ATTR_RADAR_BACKGROUND = 0x134 - NL80211_ATTR_RADAR_EVENT = 0xa8 - NL80211_ATTR_REASON_CODE = 0x36 - NL80211_ATTR_RECEIVE_MULTICAST = 0x121 - NL80211_ATTR_RECONNECT_REQUESTED = 0x12b - NL80211_ATTR_REG_ALPHA2 = 0x21 - NL80211_ATTR_REG_INDOOR = 0xdd - NL80211_ATTR_REG_INITIATOR = 0x30 - NL80211_ATTR_REG_RULE_FLAGS = 0x1 - NL80211_ATTR_REG_RULES = 0x22 - NL80211_ATTR_REG_TYPE = 0x31 - NL80211_ATTR_REKEY_DATA = 0x7a - NL80211_ATTR_REQ_IE = 0x4d - NL80211_ATTR_RESP_IE = 0x4e - NL80211_ATTR_ROAM_SUPPORT = 0x83 - NL80211_ATTR_RX_FRAME_TYPES = 0x64 - NL80211_ATTR_RX_HW_TIMESTAMP = 0x140 - NL80211_ATTR_RXMGMT_FLAGS = 0xbc - NL80211_ATTR_RX_SIGNAL_DBM = 0x97 - NL80211_ATTR_S1G_CAPABILITY = 0x128 - NL80211_ATTR_S1G_CAPABILITY_MASK = 0x129 - NL80211_ATTR_SAE_DATA = 0x9c - NL80211_ATTR_SAE_PASSWORD = 0x115 - NL80211_ATTR_SAE_PWE = 0x12a - NL80211_ATTR_SAR_SPEC = 0x12c - NL80211_ATTR_SCAN_FLAGS = 0x9e - NL80211_ATTR_SCAN_FREQ_KHZ = 0x124 - NL80211_ATTR_SCAN_FREQUENCIES = 0x2c - NL80211_ATTR_SCAN_GENERATION = 0x2e - NL80211_ATTR_SCAN_SSIDS = 0x2d - NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 0xea - NL80211_ATTR_SCAN_START_TIME_TSF = 0xe9 - NL80211_ATTR_SCAN_SUPP_RATES = 0x7d - NL80211_ATTR_SCHED_SCAN_DELAY = 0xdc - NL80211_ATTR_SCHED_SCAN_INTERVAL = 0x77 - NL80211_ATTR_SCHED_SCAN_MATCH = 0x84 - NL80211_ATTR_SCHED_SCAN_MATCH_SSID = 0x1 - NL80211_ATTR_SCHED_SCAN_MAX_REQS = 0x100 - NL80211_ATTR_SCHED_SCAN_MULTI = 0xff - NL80211_ATTR_SCHED_SCAN_PLANS = 0xe1 - NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 0xf6 - NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 0xf7 - NL80211_ATTR_SMPS_MODE = 0xd5 - NL80211_ATTR_SOCKET_OWNER = 0xcc - NL80211_ATTR_SOFTWARE_IFTYPES = 0x79 - NL80211_ATTR_SPLIT_WIPHY_DUMP = 0xae - NL80211_ATTR_SSID = 0x34 - NL80211_ATTR_STA_AID = 0x10 - NL80211_ATTR_STA_CAPABILITY = 0xab - NL80211_ATTR_STA_EXT_CAPABILITY = 0xac - NL80211_ATTR_STA_FLAGS2 = 0x43 - NL80211_ATTR_STA_FLAGS = 0x11 - NL80211_ATTR_STA_INFO = 0x15 - NL80211_ATTR_STA_LISTEN_INTERVAL = 0x12 - NL80211_ATTR_STA_PLINK_ACTION = 0x19 - NL80211_ATTR_STA_PLINK_STATE = 0x74 - NL80211_ATTR_STA_SUPPORTED_CHANNELS = 0xbd - NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 0xbe - NL80211_ATTR_STA_SUPPORTED_RATES = 0x13 - NL80211_ATTR_STA_SUPPORT_P2P_PS = 0xe4 - NL80211_ATTR_STATUS_CODE = 0x48 - NL80211_ATTR_STA_TX_POWER = 0x114 - NL80211_ATTR_STA_TX_POWER_SETTING = 0x113 - NL80211_ATTR_STA_VLAN = 0x14 - NL80211_ATTR_STA_WME = 0x81 - NL80211_ATTR_SUPPORT_10_MHZ = 0xc1 - NL80211_ATTR_SUPPORT_5_MHZ = 0xc0 - NL80211_ATTR_SUPPORT_AP_UAPSD = 0x82 - NL80211_ATTR_SUPPORTED_COMMANDS = 0x32 - NL80211_ATTR_SUPPORTED_IFTYPES = 0x20 - NL80211_ATTR_SUPPORT_IBSS_RSN = 0x68 - NL80211_ATTR_SUPPORT_MESH_AUTH = 0x73 - NL80211_ATTR_SURVEY_INFO = 0x54 - NL80211_ATTR_SURVEY_RADIO_STATS = 0xda - NL80211_ATTR_TD_BITMAP = 0x141 - NL80211_ATTR_TDLS_ACTION = 0x88 - NL80211_ATTR_TDLS_DIALOG_TOKEN = 0x89 - NL80211_ATTR_TDLS_EXTERNAL_SETUP = 0x8c - NL80211_ATTR_TDLS_INITIATOR = 0xcf - NL80211_ATTR_TDLS_OPERATION = 0x8a - NL80211_ATTR_TDLS_PEER_CAPABILITY = 0xcb - NL80211_ATTR_TDLS_SUPPORT = 0x8b - NL80211_ATTR_TESTDATA = 0x45 - NL80211_ATTR_TID_CONFIG = 0x11d - NL80211_ATTR_TIMED_OUT = 0x41 - NL80211_ATTR_TIMEOUT = 0x110 - NL80211_ATTR_TIMEOUT_REASON = 0xf8 - NL80211_ATTR_TSID = 0xd2 - NL80211_ATTR_TWT_RESPONDER = 0x116 - NL80211_ATTR_TX_FRAME_TYPES = 0x63 - NL80211_ATTR_TX_HW_TIMESTAMP = 0x13f - NL80211_ATTR_TX_NO_CCK_RATE = 0x87 - NL80211_ATTR_TXQ_LIMIT = 0x10a - NL80211_ATTR_TXQ_MEMORY_LIMIT = 0x10b - NL80211_ATTR_TXQ_QUANTUM = 0x10c - NL80211_ATTR_TXQ_STATS = 0x109 - NL80211_ATTR_TX_RATES = 0x5a - NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 0x127 - NL80211_ATTR_UNSPEC = 0x0 - NL80211_ATTR_USE_MFP = 0x42 - NL80211_ATTR_USER_PRIO = 0xd3 - NL80211_ATTR_USER_REG_HINT_TYPE = 0x9a - NL80211_ATTR_USE_RRM = 0xd0 - NL80211_ATTR_VENDOR_DATA = 0xc5 - NL80211_ATTR_VENDOR_EVENTS = 0xc6 - NL80211_ATTR_VENDOR_ID = 0xc3 - NL80211_ATTR_VENDOR_SUBCMD = 0xc4 - NL80211_ATTR_VHT_CAPABILITY = 0x9d - NL80211_ATTR_VHT_CAPABILITY_MASK = 0xb0 - NL80211_ATTR_VLAN_ID = 0x11a - NL80211_ATTR_WANT_1X_4WAY_HS = 0x101 - NL80211_ATTR_WDEV = 0x99 - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 0x72 - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 0x71 - NL80211_ATTR_WIPHY_ANTENNA_RX = 0x6a - NL80211_ATTR_WIPHY_ANTENNA_TX = 0x69 - NL80211_ATTR_WIPHY_BANDS = 0x16 - NL80211_ATTR_WIPHY_CHANNEL_TYPE = 0x27 - NL80211_ATTR_WIPHY = 0x1 - NL80211_ATTR_WIPHY_COVERAGE_CLASS = 0x59 - NL80211_ATTR_WIPHY_DYN_ACK = 0xd1 - NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 0x119 - NL80211_ATTR_WIPHY_EDMG_CHANNELS = 0x118 - NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 0x3f - NL80211_ATTR_WIPHY_FREQ = 0x26 - NL80211_ATTR_WIPHY_FREQ_HINT = 0xc9 - NL80211_ATTR_WIPHY_FREQ_OFFSET = 0x122 - NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS = 0x14c - NL80211_ATTR_WIPHY_NAME = 0x2 - NL80211_ATTR_WIPHY_RADIOS = 0x14b - NL80211_ATTR_WIPHY_RETRY_LONG = 0x3e - NL80211_ATTR_WIPHY_RETRY_SHORT = 0x3d - NL80211_ATTR_WIPHY_RTS_THRESHOLD = 0x40 - NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 0xd8 - NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 0x62 - NL80211_ATTR_WIPHY_TX_POWER_SETTING = 0x61 - NL80211_ATTR_WIPHY_TXQ_PARAMS = 0x25 - NL80211_ATTR_WOWLAN_TRIGGERS = 0x75 - NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 0x76 - NL80211_ATTR_WPA_VERSIONS = 0x4b - NL80211_AUTHTYPE_AUTOMATIC = 0x8 - NL80211_AUTHTYPE_FILS_PK = 0x7 - NL80211_AUTHTYPE_FILS_SK = 0x5 - NL80211_AUTHTYPE_FILS_SK_PFS = 0x6 - NL80211_AUTHTYPE_FT = 0x2 - NL80211_AUTHTYPE_MAX = 0x7 - NL80211_AUTHTYPE_NETWORK_EAP = 0x3 - NL80211_AUTHTYPE_OPEN_SYSTEM = 0x0 - NL80211_AUTHTYPE_SAE = 0x4 - NL80211_AUTHTYPE_SHARED_KEY = 0x1 - NL80211_BAND_2GHZ = 0x0 - NL80211_BAND_5GHZ = 0x1 - NL80211_BAND_60GHZ = 0x2 - NL80211_BAND_6GHZ = 0x3 - NL80211_BAND_ATTR_EDMG_BW_CONFIG = 0xb - NL80211_BAND_ATTR_EDMG_CHANNELS = 0xa - NL80211_BAND_ATTR_FREQS = 0x1 - NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 0x6 - NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 0x5 - NL80211_BAND_ATTR_HT_CAPA = 0x4 - NL80211_BAND_ATTR_HT_MCS_SET = 0x3 - NL80211_BAND_ATTR_IFTYPE_DATA = 0x9 - NL80211_BAND_ATTR_MAX = 0xd - NL80211_BAND_ATTR_RATES = 0x2 - NL80211_BAND_ATTR_S1G_CAPA = 0xd - NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 0xc - NL80211_BAND_ATTR_VHT_CAPA = 0x8 - NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 0xa - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 0x9 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 0xb - NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 0x6 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 0x2 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 0x4 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 0x3 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 0x5 - NL80211_BAND_IFTYPE_ATTR_IFTYPES = 0x1 - NL80211_BAND_IFTYPE_ATTR_MAX = 0xb - NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 0x7 - NL80211_BAND_LC = 0x5 - NL80211_BAND_S1GHZ = 0x4 - NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 0x2 - NL80211_BITRATE_ATTR_MAX = 0x2 - NL80211_BITRATE_ATTR_RATE = 0x1 - NL80211_BSS_BEACON_IES = 0xb - NL80211_BSS_BEACON_INTERVAL = 0x4 - NL80211_BSS_BEACON_TSF = 0xd - NL80211_BSS_BSSID = 0x1 - NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 0x2 - NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 0x1 - NL80211_BSS_CANNOT_USE_REASONS = 0x18 - NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH = 0x2 - NL80211_BSS_CAPABILITY = 0x5 - NL80211_BSS_CHAIN_SIGNAL = 0x13 - NL80211_BSS_CHAN_WIDTH_10 = 0x1 - NL80211_BSS_CHAN_WIDTH_1 = 0x3 - NL80211_BSS_CHAN_WIDTH_20 = 0x0 - NL80211_BSS_CHAN_WIDTH_2 = 0x4 - NL80211_BSS_CHAN_WIDTH_5 = 0x2 - NL80211_BSS_CHAN_WIDTH = 0xc - NL80211_BSS_FREQUENCY = 0x2 - NL80211_BSS_FREQUENCY_OFFSET = 0x14 - NL80211_BSS_INFORMATION_ELEMENTS = 0x6 - NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf - NL80211_BSS_MAX = 0x18 - NL80211_BSS_MLD_ADDR = 0x16 - NL80211_BSS_MLO_LINK_ID = 0x15 - NL80211_BSS_PAD = 0x10 - NL80211_BSS_PARENT_BSSID = 0x12 - NL80211_BSS_PARENT_TSF = 0x11 - NL80211_BSS_PRESP_DATA = 0xe - NL80211_BSS_SEEN_MS_AGO = 0xa - NL80211_BSS_SELECT_ATTR_BAND_PREF = 0x2 - NL80211_BSS_SELECT_ATTR_MAX = 0x3 - NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 0x3 - NL80211_BSS_SELECT_ATTR_RSSI = 0x1 - NL80211_BSS_SIGNAL_MBM = 0x7 - NL80211_BSS_SIGNAL_UNSPEC = 0x8 - NL80211_BSS_STATUS_ASSOCIATED = 0x1 - NL80211_BSS_STATUS_AUTHENTICATED = 0x0 - NL80211_BSS_STATUS = 0x9 - NL80211_BSS_STATUS_IBSS_JOINED = 0x2 - NL80211_BSS_TSF = 0x3 - NL80211_BSS_USE_FOR = 0x17 - NL80211_BSS_USE_FOR_MLD_LINK = 0x2 - NL80211_BSS_USE_FOR_NORMAL = 0x1 - NL80211_CHAN_HT20 = 0x1 - NL80211_CHAN_HT40MINUS = 0x2 - NL80211_CHAN_HT40PLUS = 0x3 - NL80211_CHAN_NO_HT = 0x0 - NL80211_CHAN_WIDTH_10 = 0x7 - NL80211_CHAN_WIDTH_160 = 0x5 - NL80211_CHAN_WIDTH_16 = 0xc - NL80211_CHAN_WIDTH_1 = 0x8 - NL80211_CHAN_WIDTH_20 = 0x1 - NL80211_CHAN_WIDTH_20_NOHT = 0x0 - NL80211_CHAN_WIDTH_2 = 0x9 - NL80211_CHAN_WIDTH_320 = 0xd - NL80211_CHAN_WIDTH_40 = 0x2 - NL80211_CHAN_WIDTH_4 = 0xa - NL80211_CHAN_WIDTH_5 = 0x6 - NL80211_CHAN_WIDTH_80 = 0x3 - NL80211_CHAN_WIDTH_80P80 = 0x4 - NL80211_CHAN_WIDTH_8 = 0xb - NL80211_CMD_ABORT_SCAN = 0x72 - NL80211_CMD_ACTION = 0x3b - NL80211_CMD_ACTION_TX_STATUS = 0x3c - NL80211_CMD_ADD_LINK = 0x94 - NL80211_CMD_ADD_LINK_STA = 0x96 - NL80211_CMD_ADD_NAN_FUNCTION = 0x75 - NL80211_CMD_ADD_TX_TS = 0x69 - NL80211_CMD_ASSOC_COMEBACK = 0x93 - NL80211_CMD_ASSOCIATE = 0x26 - NL80211_CMD_AUTHENTICATE = 0x25 - NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 0x38 - NL80211_CMD_CHANGE_NAN_CONFIG = 0x77 - NL80211_CMD_CHANNEL_SWITCH = 0x66 - NL80211_CMD_CH_SWITCH_NOTIFY = 0x58 - NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 0x6e - NL80211_CMD_COLOR_CHANGE_ABORTED = 0x90 - NL80211_CMD_COLOR_CHANGE_COMPLETED = 0x91 - NL80211_CMD_COLOR_CHANGE_REQUEST = 0x8e - NL80211_CMD_COLOR_CHANGE_STARTED = 0x8f - NL80211_CMD_CONNECT = 0x2e - NL80211_CMD_CONN_FAILED = 0x5b - NL80211_CMD_CONTROL_PORT_FRAME = 0x81 - NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 0x8b - NL80211_CMD_CRIT_PROTOCOL_START = 0x62 - NL80211_CMD_CRIT_PROTOCOL_STOP = 0x63 - NL80211_CMD_DEAUTHENTICATE = 0x27 - NL80211_CMD_DEL_BEACON = 0x10 - NL80211_CMD_DEL_INTERFACE = 0x8 - NL80211_CMD_DEL_KEY = 0xc - NL80211_CMD_DEL_MPATH = 0x18 - NL80211_CMD_DEL_NAN_FUNCTION = 0x76 - NL80211_CMD_DEL_PMK = 0x7c - NL80211_CMD_DEL_PMKSA = 0x35 - NL80211_CMD_DEL_STATION = 0x14 - NL80211_CMD_DEL_TX_TS = 0x6a - NL80211_CMD_DEL_WIPHY = 0x4 - NL80211_CMD_DISASSOCIATE = 0x28 - NL80211_CMD_DISCONNECT = 0x30 - NL80211_CMD_EXTERNAL_AUTH = 0x7f - NL80211_CMD_FLUSH_PMKSA = 0x36 - NL80211_CMD_FRAME = 0x3b - NL80211_CMD_FRAME_TX_STATUS = 0x3c - NL80211_CMD_FRAME_WAIT_CANCEL = 0x43 - NL80211_CMD_FT_EVENT = 0x61 - NL80211_CMD_GET_BEACON = 0xd - NL80211_CMD_GET_COALESCE = 0x64 - NL80211_CMD_GET_FTM_RESPONDER_STATS = 0x82 - NL80211_CMD_GET_INTERFACE = 0x5 - NL80211_CMD_GET_KEY = 0x9 - NL80211_CMD_GET_MESH_CONFIG = 0x1c - NL80211_CMD_GET_MESH_PARAMS = 0x1c - NL80211_CMD_GET_MPATH = 0x15 - NL80211_CMD_GET_MPP = 0x6b - NL80211_CMD_GET_POWER_SAVE = 0x3e - NL80211_CMD_GET_PROTOCOL_FEATURES = 0x5f - NL80211_CMD_GET_REG = 0x1f - NL80211_CMD_GET_SCAN = 0x20 - NL80211_CMD_GET_STATION = 0x11 - NL80211_CMD_GET_SURVEY = 0x32 - NL80211_CMD_GET_WIPHY = 0x1 - NL80211_CMD_GET_WOWLAN = 0x49 - NL80211_CMD_JOIN_IBSS = 0x2b - NL80211_CMD_JOIN_MESH = 0x44 - NL80211_CMD_JOIN_OCB = 0x6c - NL80211_CMD_LEAVE_IBSS = 0x2c - NL80211_CMD_LEAVE_MESH = 0x45 - NL80211_CMD_LEAVE_OCB = 0x6d - NL80211_CMD_LINKS_REMOVED = 0x9a - NL80211_CMD_MAX = 0x9d - NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 - NL80211_CMD_MODIFY_LINK_STA = 0x97 - NL80211_CMD_NAN_MATCH = 0x78 - NL80211_CMD_NEW_BEACON = 0xf - NL80211_CMD_NEW_INTERFACE = 0x7 - NL80211_CMD_NEW_KEY = 0xb - NL80211_CMD_NEW_MPATH = 0x17 - NL80211_CMD_NEW_PEER_CANDIDATE = 0x48 - NL80211_CMD_NEW_SCAN_RESULTS = 0x22 - NL80211_CMD_NEW_STATION = 0x13 - NL80211_CMD_NEW_SURVEY_RESULTS = 0x33 - NL80211_CMD_NEW_WIPHY = 0x3 - NL80211_CMD_NOTIFY_CQM = 0x40 - NL80211_CMD_NOTIFY_RADAR = 0x86 - NL80211_CMD_OBSS_COLOR_COLLISION = 0x8d - NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 0x85 - NL80211_CMD_PEER_MEASUREMENT_RESULT = 0x84 - NL80211_CMD_PEER_MEASUREMENT_START = 0x83 - NL80211_CMD_PMKSA_CANDIDATE = 0x50 - NL80211_CMD_PORT_AUTHORIZED = 0x7d - NL80211_CMD_PROBE_CLIENT = 0x54 - NL80211_CMD_PROBE_MESH_LINK = 0x88 - NL80211_CMD_RADAR_DETECT = 0x5e - NL80211_CMD_REG_BEACON_HINT = 0x2a - NL80211_CMD_REG_CHANGE = 0x24 - NL80211_CMD_REGISTER_ACTION = 0x3a - NL80211_CMD_REGISTER_BEACONS = 0x55 - NL80211_CMD_REGISTER_FRAME = 0x3a - NL80211_CMD_RELOAD_REGDB = 0x7e - NL80211_CMD_REMAIN_ON_CHANNEL = 0x37 - NL80211_CMD_REMOVE_LINK = 0x95 - NL80211_CMD_REMOVE_LINK_STA = 0x98 - NL80211_CMD_REQ_SET_REG = 0x1b - NL80211_CMD_ROAM = 0x2f - NL80211_CMD_SCAN_ABORTED = 0x23 - NL80211_CMD_SCHED_SCAN_RESULTS = 0x4d - NL80211_CMD_SCHED_SCAN_STOPPED = 0x4e - NL80211_CMD_SET_BEACON = 0xe - NL80211_CMD_SET_BSS = 0x19 - NL80211_CMD_SET_CHANNEL = 0x41 - NL80211_CMD_SET_COALESCE = 0x65 - NL80211_CMD_SET_CQM = 0x3f - NL80211_CMD_SET_FILS_AAD = 0x92 - NL80211_CMD_SET_HW_TIMESTAMP = 0x99 - NL80211_CMD_SET_INTERFACE = 0x6 - NL80211_CMD_SET_KEY = 0xa - NL80211_CMD_SET_MAC_ACL = 0x5d - NL80211_CMD_SET_MCAST_RATE = 0x5c - NL80211_CMD_SET_MESH_CONFIG = 0x1d - NL80211_CMD_SET_MESH_PARAMS = 0x1d - NL80211_CMD_SET_MGMT_EXTRA_IE = 0x1e - NL80211_CMD_SET_MPATH = 0x16 - NL80211_CMD_SET_MULTICAST_TO_UNICAST = 0x79 - NL80211_CMD_SET_NOACK_MAP = 0x57 - NL80211_CMD_SET_PMK = 0x7b - NL80211_CMD_SET_PMKSA = 0x34 - NL80211_CMD_SET_POWER_SAVE = 0x3d - NL80211_CMD_SET_QOS_MAP = 0x68 - NL80211_CMD_SET_REG = 0x1a - NL80211_CMD_SET_REKEY_OFFLOAD = 0x4f - NL80211_CMD_SET_SAR_SPECS = 0x8c - NL80211_CMD_SET_STATION = 0x12 - NL80211_CMD_SET_TID_CONFIG = 0x89 - NL80211_CMD_SET_TID_TO_LINK_MAPPING = 0x9b - NL80211_CMD_SET_TX_BITRATE_MASK = 0x39 - NL80211_CMD_SET_WDS_PEER = 0x42 - NL80211_CMD_SET_WIPHY = 0x2 - NL80211_CMD_SET_WIPHY_NETNS = 0x31 - NL80211_CMD_SET_WOWLAN = 0x4a - NL80211_CMD_STA_OPMODE_CHANGED = 0x80 - NL80211_CMD_START_AP = 0xf - NL80211_CMD_START_NAN = 0x73 - NL80211_CMD_START_P2P_DEVICE = 0x59 - NL80211_CMD_START_SCHED_SCAN = 0x4b - NL80211_CMD_STOP_AP = 0x10 - NL80211_CMD_STOP_NAN = 0x74 - NL80211_CMD_STOP_P2P_DEVICE = 0x5a - NL80211_CMD_STOP_SCHED_SCAN = 0x4c - NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 0x70 - NL80211_CMD_TDLS_CHANNEL_SWITCH = 0x6f - NL80211_CMD_TDLS_MGMT = 0x52 - NL80211_CMD_TDLS_OPER = 0x51 - NL80211_CMD_TESTMODE = 0x2d - NL80211_CMD_TRIGGER_SCAN = 0x21 - NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 0x56 - NL80211_CMD_UNEXPECTED_FRAME = 0x53 - NL80211_CMD_UNPROT_BEACON = 0x8a - NL80211_CMD_UNPROT_DEAUTHENTICATE = 0x46 - NL80211_CMD_UNPROT_DISASSOCIATE = 0x47 - NL80211_CMD_UNSPEC = 0x0 - NL80211_CMD_UPDATE_CONNECT_PARAMS = 0x7a - NL80211_CMD_UPDATE_FT_IES = 0x60 - NL80211_CMD_UPDATE_OWE_INFO = 0x87 - NL80211_CMD_VENDOR = 0x67 - NL80211_CMD_WIPHY_REG_CHANGE = 0x71 - NL80211_COALESCE_CONDITION_MATCH = 0x0 - NL80211_COALESCE_CONDITION_NO_MATCH = 0x1 - NL80211_CONN_FAIL_BLOCKED_CLIENT = 0x1 - NL80211_CONN_FAIL_MAX_CLIENTS = 0x0 - NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 0x2 - NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 0x1 - NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0x0 - NL80211_CQM_TXE_MAX_INTVL = 0x708 - NL80211_CRIT_PROTO_APIPA = 0x3 - NL80211_CRIT_PROTO_DHCP = 0x1 - NL80211_CRIT_PROTO_EAPOL = 0x2 - NL80211_CRIT_PROTO_MAX_DURATION = 0x1388 - NL80211_CRIT_PROTO_UNSPEC = 0x0 - NL80211_DFS_AVAILABLE = 0x2 - NL80211_DFS_ETSI = 0x2 - NL80211_DFS_FCC = 0x1 - NL80211_DFS_JP = 0x3 - NL80211_DFS_UNAVAILABLE = 0x1 - NL80211_DFS_UNSET = 0x0 - NL80211_DFS_USABLE = 0x0 - NL80211_EDMG_BW_CONFIG_MAX = 0xf - NL80211_EDMG_BW_CONFIG_MIN = 0x4 - NL80211_EDMG_CHANNELS_MAX = 0x3c - NL80211_EDMG_CHANNELS_MIN = 0x1 - NL80211_EHT_MAX_CAPABILITY_LEN = 0x33 - NL80211_EHT_MIN_CAPABILITY_LEN = 0xd - NL80211_EXTERNAL_AUTH_ABORT = 0x1 - NL80211_EXTERNAL_AUTH_START = 0x0 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 0x32 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 0x10 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 0xf - NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 0x12 - NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 0x1b - NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 0x21 - NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 0x22 - NL80211_EXT_FEATURE_AQL = 0x28 - NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 0x40 - NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 0x2e - NL80211_EXT_FEATURE_BEACON_PROTECTION = 0x29 - NL80211_EXT_FEATURE_BEACON_RATE_HE = 0x36 - NL80211_EXT_FEATURE_BEACON_RATE_HT = 0x7 - NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 0x6 - NL80211_EXT_FEATURE_BEACON_RATE_VHT = 0x8 - NL80211_EXT_FEATURE_BSS_COLOR = 0x3a - NL80211_EXT_FEATURE_BSS_PARENT_TSF = 0x4 - NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 0x1f - NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 0x2a - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 0x1a - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 0x30 - NL80211_EXT_FEATURE_CQM_RSSI_LIST = 0xd - NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 0x1b - NL80211_EXT_FEATURE_DEL_IBSS_STA = 0x2c - NL80211_EXT_FEATURE_DFS_CONCURRENT = 0x43 - NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19 - NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20 - NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24 - NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 0x3b - NL80211_EXT_FEATURE_FILS_DISCOVERY = 0x34 - NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 0x11 - NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 0xe - NL80211_EXT_FEATURE_FILS_STA = 0x9 - NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 0x18 - NL80211_EXT_FEATURE_LOW_POWER_SCAN = 0x17 - NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 0x16 - NL80211_EXT_FEATURE_MFP_OPTIONAL = 0x15 - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 0xa - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 0xb - NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 0x2d - NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 0x2 - NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14 - NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13 - NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31 - NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 0x42 - NL80211_EXT_FEATURE_OWE_OFFLOAD = 0x41 - NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d - NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b - NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39 - NL80211_EXT_FEATURE_PUNCT = 0x3e - NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c - NL80211_EXT_FEATURE_RRM = 0x1 - NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33 - NL80211_EXT_FEATURE_SAE_OFFLOAD = 0x26 - NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 0x2f - NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 0x1e - NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 0x1d - NL80211_EXT_FEATURE_SCAN_START_TIME = 0x3 - NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23 - NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 0xc - NL80211_EXT_FEATURE_SECURE_LTF = 0x37 - NL80211_EXT_FEATURE_SECURE_NAN = 0x3f - NL80211_EXT_FEATURE_SECURE_RTT = 0x38 - NL80211_EXT_FEATURE_SET_SCAN_DWELL = 0x5 - NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT = 0x44 - NL80211_EXT_FEATURE_STA_TX_PWR = 0x25 - NL80211_EXT_FEATURE_TXQS = 0x1c - NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 0x35 - NL80211_EXT_FEATURE_VHT_IBSS = 0x0 - NL80211_EXT_FEATURE_VLAN_OFFLOAD = 0x27 - NL80211_FEATURE_ACKTO_ESTIMATION = 0x800000 - NL80211_FEATURE_ACTIVE_MONITOR = 0x20000 - NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 0x4000 - NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 0x40000 - NL80211_FEATURE_AP_SCAN = 0x100 - NL80211_FEATURE_CELL_BASE_REG_HINTS = 0x8 - NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 0x80000 - NL80211_FEATURE_DYNAMIC_SMPS = 0x2000000 - NL80211_FEATURE_FULL_AP_CLIENT_STATE = 0x8000 - NL80211_FEATURE_HT_IBSS = 0x2 - NL80211_FEATURE_INACTIVITY_TIMER = 0x4 - NL80211_FEATURE_LOW_PRIORITY_SCAN = 0x40 - NL80211_FEATURE_MAC_ON_CREATE = 0x8000000 - NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 0x80000000 - NL80211_FEATURE_NEED_OBSS_SCAN = 0x400 - NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 0x10 - NL80211_FEATURE_P2P_GO_CTWIN = 0x800 - NL80211_FEATURE_P2P_GO_OPPPS = 0x1000 - NL80211_FEATURE_QUIET = 0x200000 - NL80211_FEATURE_SAE = 0x20 - NL80211_FEATURE_SCAN_FLUSH = 0x80 - NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 0x20000000 - NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 0x40000000 - NL80211_FEATURE_SK_TX_STATUS = 0x1 - NL80211_FEATURE_STATIC_SMPS = 0x1000000 - NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 0x4000000 - NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 0x10000000 - NL80211_FEATURE_TX_POWER_INSERTION = 0x400000 - NL80211_FEATURE_USERSPACE_MPM = 0x10000 - NL80211_FEATURE_VIF_TXPOWER = 0x200 - NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 0x100000 - NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 0x2 - NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 0x1 - NL80211_FILS_DISCOVERY_ATTR_MAX = 0x3 - NL80211_FILS_DISCOVERY_ATTR_TMPL = 0x3 - NL80211_FILS_DISCOVERY_TMPL_MIN_LEN = 0x2a - NL80211_FREQUENCY_ATTR_16MHZ = 0x19 - NL80211_FREQUENCY_ATTR_1MHZ = 0x15 - NL80211_FREQUENCY_ATTR_2MHZ = 0x16 - NL80211_FREQUENCY_ATTR_4MHZ = 0x17 - NL80211_FREQUENCY_ATTR_8MHZ = 0x18 - NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP = 0x21 - NL80211_FREQUENCY_ATTR_CAN_MONITOR = 0x20 - NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 0xd - NL80211_FREQUENCY_ATTR_DFS_CONCURRENT = 0x1d - NL80211_FREQUENCY_ATTR_DFS_STATE = 0x7 - NL80211_FREQUENCY_ATTR_DFS_TIME = 0x8 - NL80211_FREQUENCY_ATTR_DISABLED = 0x2 - NL80211_FREQUENCY_ATTR_FREQ = 0x1 - NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_MAX = 0x22 - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 - NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 - NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc - NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10 - NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a - NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT = 0x1f - NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT = 0x1e - NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb - NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b - NL80211_FREQUENCY_ATTR_NO_HE = 0x13 - NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 0x9 - NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa - NL80211_FREQUENCY_ATTR_NO_IBSS = 0x3 - NL80211_FREQUENCY_ATTR_NO_IR = 0x3 - NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT = 0x1f - NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT = 0x1e - NL80211_FREQUENCY_ATTR_OFFSET = 0x14 - NL80211_FREQUENCY_ATTR_PASSIVE_SCAN = 0x3 - NL80211_FREQUENCY_ATTR_PSD = 0x1c - NL80211_FREQUENCY_ATTR_RADAR = 0x5 - NL80211_FREQUENCY_ATTR_WMM = 0x12 - NL80211_FTM_RESP_ATTR_CIVICLOC = 0x3 - NL80211_FTM_RESP_ATTR_ENABLED = 0x1 - NL80211_FTM_RESP_ATTR_LCI = 0x2 - NL80211_FTM_RESP_ATTR_MAX = 0x3 - NL80211_FTM_STATS_ASAP_NUM = 0x4 - NL80211_FTM_STATS_FAILED_NUM = 0x3 - NL80211_FTM_STATS_MAX = 0xa - NL80211_FTM_STATS_NON_ASAP_NUM = 0x5 - NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 0x9 - NL80211_FTM_STATS_PAD = 0xa - NL80211_FTM_STATS_PARTIAL_NUM = 0x2 - NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 0x8 - NL80211_FTM_STATS_SUCCESS_NUM = 0x1 - NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 0x6 - NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 0x7 - NL80211_GENL_NAME = "nl80211" - NL80211_HE_BSS_COLOR_ATTR_COLOR = 0x1 - NL80211_HE_BSS_COLOR_ATTR_DISABLED = 0x2 - NL80211_HE_BSS_COLOR_ATTR_MAX = 0x3 - NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 0x3 - NL80211_HE_MAX_CAPABILITY_LEN = 0x36 - NL80211_HE_MIN_CAPABILITY_LEN = 0x10 - NL80211_HE_NSS_MAX = 0x8 - NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 0x4 - NL80211_HE_OBSS_PD_ATTR_MAX = 0x6 - NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 0x2 - NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 0x1 - NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 0x3 - NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 0x5 - NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 0x6 - NL80211_HIDDEN_SSID_NOT_IN_USE = 0x0 - NL80211_HIDDEN_SSID_ZERO_CONTENTS = 0x2 - NL80211_HIDDEN_SSID_ZERO_LEN = 0x1 - NL80211_HT_CAPABILITY_LEN = 0x1a - NL80211_IFACE_COMB_BI_MIN_GCD = 0x7 - NL80211_IFACE_COMB_LIMITS = 0x1 - NL80211_IFACE_COMB_MAXNUM = 0x2 - NL80211_IFACE_COMB_NUM_CHANNELS = 0x4 - NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 0x6 - NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 0x5 - NL80211_IFACE_COMB_STA_AP_BI_MATCH = 0x3 - NL80211_IFACE_COMB_UNSPEC = 0x0 - NL80211_IFACE_LIMIT_MAX = 0x1 - NL80211_IFACE_LIMIT_TYPES = 0x2 - NL80211_IFACE_LIMIT_UNSPEC = 0x0 - NL80211_IFTYPE_ADHOC = 0x1 - NL80211_IFTYPE_AKM_ATTR_IFTYPES = 0x1 - NL80211_IFTYPE_AKM_ATTR_MAX = 0x2 - NL80211_IFTYPE_AKM_ATTR_SUITES = 0x2 - NL80211_IFTYPE_AP = 0x3 - NL80211_IFTYPE_AP_VLAN = 0x4 - NL80211_IFTYPE_MAX = 0xc - NL80211_IFTYPE_MESH_POINT = 0x7 - NL80211_IFTYPE_MONITOR = 0x6 - NL80211_IFTYPE_NAN = 0xc - NL80211_IFTYPE_OCB = 0xb - NL80211_IFTYPE_P2P_CLIENT = 0x8 - NL80211_IFTYPE_P2P_DEVICE = 0xa - NL80211_IFTYPE_P2P_GO = 0x9 - NL80211_IFTYPE_STATION = 0x2 - NL80211_IFTYPE_UNSPECIFIED = 0x0 - NL80211_IFTYPE_WDS = 0x5 - NL80211_KCK_EXT_LEN_32 = 0x20 - NL80211_KCK_EXT_LEN = 0x18 - NL80211_KCK_LEN = 0x10 - NL80211_KEK_EXT_LEN = 0x20 - NL80211_KEK_LEN = 0x10 - NL80211_KEY_CIPHER = 0x3 - NL80211_KEY_DATA = 0x1 - NL80211_KEY_DEFAULT_BEACON = 0xa - NL80211_KEY_DEFAULT = 0x5 - NL80211_KEY_DEFAULT_MGMT = 0x6 - NL80211_KEY_DEFAULT_TYPE_MULTICAST = 0x2 - NL80211_KEY_DEFAULT_TYPES = 0x8 - NL80211_KEY_DEFAULT_TYPE_UNICAST = 0x1 - NL80211_KEY_IDX = 0x2 - NL80211_KEY_MAX = 0xa - NL80211_KEY_MODE = 0x9 - NL80211_KEY_NO_TX = 0x1 - NL80211_KEY_RX_TX = 0x0 - NL80211_KEY_SEQ = 0x4 - NL80211_KEY_SET_TX = 0x2 - NL80211_KEY_TYPE = 0x7 - NL80211_KEYTYPE_GROUP = 0x0 - NL80211_KEYTYPE_PAIRWISE = 0x1 - NL80211_KEYTYPE_PEERKEY = 0x2 - NL80211_MAX_NR_AKM_SUITES = 0x2 - NL80211_MAX_NR_CIPHER_SUITES = 0x5 - NL80211_MAX_SUPP_HT_RATES = 0x4d - NL80211_MAX_SUPP_RATES = 0x20 - NL80211_MAX_SUPP_REG_RULES = 0x80 - NL80211_MAX_SUPP_SELECTORS = 0x80 - NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5 - NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3 - NL80211_MBSSID_CONFIG_ATTR_MAX = 0x6 - NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 0x2 - NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 0x1 - NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 0x4 - NL80211_MESHCONF_ATTR_MAX = 0x1f - NL80211_MESHCONF_AUTO_OPEN_PLINKS = 0x7 - NL80211_MESHCONF_AWAKE_WINDOW = 0x1b - NL80211_MESHCONF_CONFIRM_TIMEOUT = 0x2 - NL80211_MESHCONF_CONNECTED_TO_AS = 0x1f - NL80211_MESHCONF_CONNECTED_TO_GATE = 0x1d - NL80211_MESHCONF_ELEMENT_TTL = 0xf - NL80211_MESHCONF_FORWARDING = 0x13 - NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 0x11 - NL80211_MESHCONF_HOLDING_TIMEOUT = 0x3 - NL80211_MESHCONF_HT_OPMODE = 0x16 - NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 0xb - NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 0x19 - NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 0x8 - NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 0xd - NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 0x17 - NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 0x12 - NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 0xc - NL80211_MESHCONF_HWMP_RANN_INTERVAL = 0x10 - NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 0x18 - NL80211_MESHCONF_HWMP_ROOTMODE = 0xe - NL80211_MESHCONF_MAX_PEER_LINKS = 0x4 - NL80211_MESHCONF_MAX_RETRIES = 0x5 - NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 0xa - NL80211_MESHCONF_NOLEARN = 0x1e - NL80211_MESHCONF_PATH_REFRESH_TIME = 0x9 - NL80211_MESHCONF_PLINK_TIMEOUT = 0x1c - NL80211_MESHCONF_POWER_MODE = 0x1a - NL80211_MESHCONF_RETRY_TIMEOUT = 0x1 - NL80211_MESHCONF_RSSI_THRESHOLD = 0x14 - NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 0x15 - NL80211_MESHCONF_TTL = 0x6 - NL80211_MESH_POWER_ACTIVE = 0x1 - NL80211_MESH_POWER_DEEP_SLEEP = 0x3 - NL80211_MESH_POWER_LIGHT_SLEEP = 0x2 - NL80211_MESH_POWER_MAX = 0x3 - NL80211_MESH_POWER_UNKNOWN = 0x0 - NL80211_MESH_SETUP_ATTR_MAX = 0x8 - NL80211_MESH_SETUP_AUTH_PROTOCOL = 0x8 - NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 0x2 - NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 0x1 - NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 0x6 - NL80211_MESH_SETUP_IE = 0x3 - NL80211_MESH_SETUP_USERSPACE_AMPE = 0x5 - NL80211_MESH_SETUP_USERSPACE_AUTH = 0x4 - NL80211_MESH_SETUP_USERSPACE_MPM = 0x7 - NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE = 0x3 - NL80211_MFP_NO = 0x0 - NL80211_MFP_OPTIONAL = 0x2 - NL80211_MFP_REQUIRED = 0x1 - NL80211_MIN_REMAIN_ON_CHANNEL_TIME = 0xa - NL80211_MNTR_FLAG_ACTIVE = 0x6 - NL80211_MNTR_FLAG_CONTROL = 0x3 - NL80211_MNTR_FLAG_COOK_FRAMES = 0x5 - NL80211_MNTR_FLAG_FCSFAIL = 0x1 - NL80211_MNTR_FLAG_MAX = 0x7 - NL80211_MNTR_FLAG_OTHER_BSS = 0x4 - NL80211_MNTR_FLAG_PLCPFAIL = 0x2 - NL80211_MPATH_FLAG_ACTIVE = 0x1 - NL80211_MPATH_FLAG_FIXED = 0x8 - NL80211_MPATH_FLAG_RESOLVED = 0x10 - NL80211_MPATH_FLAG_RESOLVING = 0x2 - NL80211_MPATH_FLAG_SN_VALID = 0x4 - NL80211_MPATH_INFO_DISCOVERY_RETRIES = 0x7 - NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 0x6 - NL80211_MPATH_INFO_EXPTIME = 0x4 - NL80211_MPATH_INFO_FLAGS = 0x5 - NL80211_MPATH_INFO_FRAME_QLEN = 0x1 - NL80211_MPATH_INFO_HOP_COUNT = 0x8 - NL80211_MPATH_INFO_MAX = 0x9 - NL80211_MPATH_INFO_METRIC = 0x3 - NL80211_MPATH_INFO_PATH_CHANGE = 0x9 - NL80211_MPATH_INFO_SN = 0x2 - NL80211_MULTICAST_GROUP_CONFIG = "config" - NL80211_MULTICAST_GROUP_MLME = "mlme" - NL80211_MULTICAST_GROUP_NAN = "nan" - NL80211_MULTICAST_GROUP_REG = "regulatory" - NL80211_MULTICAST_GROUP_SCAN = "scan" - NL80211_MULTICAST_GROUP_TESTMODE = "testmode" - NL80211_MULTICAST_GROUP_VENDOR = "vendor" - NL80211_NAN_FUNC_ATTR_MAX = 0x10 - NL80211_NAN_FUNC_CLOSE_RANGE = 0x9 - NL80211_NAN_FUNC_FOLLOW_UP = 0x2 - NL80211_NAN_FUNC_FOLLOW_UP_DEST = 0x8 - NL80211_NAN_FUNC_FOLLOW_UP_ID = 0x6 - NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 0x7 - NL80211_NAN_FUNC_INSTANCE_ID = 0xf - NL80211_NAN_FUNC_MAX_TYPE = 0x2 - NL80211_NAN_FUNC_PUBLISH_BCAST = 0x4 - NL80211_NAN_FUNC_PUBLISH = 0x0 - NL80211_NAN_FUNC_PUBLISH_TYPE = 0x3 - NL80211_NAN_FUNC_RX_MATCH_FILTER = 0xd - NL80211_NAN_FUNC_SERVICE_ID = 0x2 - NL80211_NAN_FUNC_SERVICE_ID_LEN = 0x6 - NL80211_NAN_FUNC_SERVICE_INFO = 0xb - NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN = 0xff - NL80211_NAN_FUNC_SRF = 0xc - NL80211_NAN_FUNC_SRF_MAX_LEN = 0xff - NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 0x5 - NL80211_NAN_FUNC_SUBSCRIBE = 0x1 - NL80211_NAN_FUNC_TERM_REASON = 0x10 - NL80211_NAN_FUNC_TERM_REASON_ERROR = 0x2 - NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 0x1 - NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0x0 - NL80211_NAN_FUNC_TTL = 0xa - NL80211_NAN_FUNC_TX_MATCH_FILTER = 0xe - NL80211_NAN_FUNC_TYPE = 0x1 - NL80211_NAN_MATCH_ATTR_MAX = 0x2 - NL80211_NAN_MATCH_FUNC_LOCAL = 0x1 - NL80211_NAN_MATCH_FUNC_PEER = 0x2 - NL80211_NAN_SOLICITED_PUBLISH = 0x1 - NL80211_NAN_SRF_ATTR_MAX = 0x4 - NL80211_NAN_SRF_BF = 0x2 - NL80211_NAN_SRF_BF_IDX = 0x3 - NL80211_NAN_SRF_INCLUDE = 0x1 - NL80211_NAN_SRF_MAC_ADDRS = 0x4 - NL80211_NAN_UNSOLICITED_PUBLISH = 0x2 - NL80211_NUM_ACS = 0x4 - NL80211_P2P_PS_SUPPORTED = 0x1 - NL80211_P2P_PS_UNSUPPORTED = 0x0 - NL80211_PKTPAT_MASK = 0x1 - NL80211_PKTPAT_OFFSET = 0x3 - NL80211_PKTPAT_PATTERN = 0x2 - NL80211_PLINK_ACTION_BLOCK = 0x2 - NL80211_PLINK_ACTION_NO_ACTION = 0x0 - NL80211_PLINK_ACTION_OPEN = 0x1 - NL80211_PLINK_BLOCKED = 0x6 - NL80211_PLINK_CNF_RCVD = 0x3 - NL80211_PLINK_ESTAB = 0x4 - NL80211_PLINK_HOLDING = 0x5 - NL80211_PLINK_LISTEN = 0x0 - NL80211_PLINK_OPN_RCVD = 0x2 - NL80211_PLINK_OPN_SNT = 0x1 - NL80211_PMKSA_CANDIDATE_BSSID = 0x2 - NL80211_PMKSA_CANDIDATE_INDEX = 0x1 - NL80211_PMKSA_CANDIDATE_PREAUTH = 0x3 - NL80211_PMSR_ATTR_MAX = 0x5 - NL80211_PMSR_ATTR_MAX_PEERS = 0x1 - NL80211_PMSR_ATTR_PEERS = 0x5 - NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 0x3 - NL80211_PMSR_ATTR_REPORT_AP_TSF = 0x2 - NL80211_PMSR_ATTR_TYPE_CAPA = 0x4 - NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 0x1 - NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 0x6 - NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 0x7 - NL80211_PMSR_FTM_CAPA_ATTR_MAX = 0xa - NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 0x8 - NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 0x2 - NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 0xa - NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 0x5 - NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 0x4 - NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 0x3 - NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 0x9 - NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 0x7 - NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 0x5 - NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 0x1 - NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 0x6 - NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 0x4 - NL80211_PMSR_FTM_FAILURE_REJECTED = 0x2 - NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0x0 - NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 0x3 - NL80211_PMSR_FTM_REQ_ATTR_ASAP = 0x1 - NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 0xd - NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 0x5 - NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 0x4 - NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 0x6 - NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 0xc - NL80211_PMSR_FTM_REQ_ATTR_MAX = 0xd - NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 0xb - NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 0x3 - NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 0x7 - NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 0x2 - NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 0x9 - NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 0x8 - NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 0xa - NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 0x7 - NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 0x2 - NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 0x5 - NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 0x14 - NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 0x10 - NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 0x12 - NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 0x11 - NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 0x1 - NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 0x8 - NL80211_PMSR_FTM_RESP_ATTR_LCI = 0x13 - NL80211_PMSR_FTM_RESP_ATTR_MAX = 0x15 - NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 0x6 - NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 0x3 - NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 0x4 - NL80211_PMSR_FTM_RESP_ATTR_PAD = 0x15 - NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 0x9 - NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 0xa - NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 0xd - NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 0xf - NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 0xe - NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 0xc - NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 0xb - NL80211_PMSR_PEER_ATTR_ADDR = 0x1 - NL80211_PMSR_PEER_ATTR_CHAN = 0x2 - NL80211_PMSR_PEER_ATTR_MAX = 0x4 - NL80211_PMSR_PEER_ATTR_REQ = 0x3 - NL80211_PMSR_PEER_ATTR_RESP = 0x4 - NL80211_PMSR_REQ_ATTR_DATA = 0x1 - NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 0x2 - NL80211_PMSR_REQ_ATTR_MAX = 0x2 - NL80211_PMSR_RESP_ATTR_AP_TSF = 0x4 - NL80211_PMSR_RESP_ATTR_DATA = 0x1 - NL80211_PMSR_RESP_ATTR_FINAL = 0x5 - NL80211_PMSR_RESP_ATTR_HOST_TIME = 0x3 - NL80211_PMSR_RESP_ATTR_MAX = 0x6 - NL80211_PMSR_RESP_ATTR_PAD = 0x6 - NL80211_PMSR_RESP_ATTR_STATUS = 0x2 - NL80211_PMSR_STATUS_FAILURE = 0x3 - NL80211_PMSR_STATUS_REFUSED = 0x1 - NL80211_PMSR_STATUS_SUCCESS = 0x0 - NL80211_PMSR_STATUS_TIMEOUT = 0x2 - NL80211_PMSR_TYPE_FTM = 0x1 - NL80211_PMSR_TYPE_INVALID = 0x0 - NL80211_PMSR_TYPE_MAX = 0x1 - NL80211_PREAMBLE_DMG = 0x3 - NL80211_PREAMBLE_HE = 0x4 - NL80211_PREAMBLE_HT = 0x1 - NL80211_PREAMBLE_LEGACY = 0x0 - NL80211_PREAMBLE_VHT = 0x2 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 0x8 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 0x4 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 0x2 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 0x1 - NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 0x1 - NL80211_PS_DISABLED = 0x0 - NL80211_PS_ENABLED = 0x1 - NL80211_RADAR_CAC_ABORTED = 0x2 - NL80211_RADAR_CAC_FINISHED = 0x1 - NL80211_RADAR_CAC_STARTED = 0x5 - NL80211_RADAR_DETECTED = 0x0 - NL80211_RADAR_NOP_FINISHED = 0x3 - NL80211_RADAR_PRE_CAC_EXPIRED = 0x4 - NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb - NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa - NL80211_RATE_INFO_16_MHZ_WIDTH = 0x1d - NL80211_RATE_INFO_1_MHZ_WIDTH = 0x19 - NL80211_RATE_INFO_2_MHZ_WIDTH = 0x1a - NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12 - NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3 - NL80211_RATE_INFO_4_MHZ_WIDTH = 0x1b - NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc - NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8 - NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9 - NL80211_RATE_INFO_8_MHZ_WIDTH = 0x1c - NL80211_RATE_INFO_BITRATE32 = 0x5 - NL80211_RATE_INFO_BITRATE = 0x1 - NL80211_RATE_INFO_EHT_GI_0_8 = 0x0 - NL80211_RATE_INFO_EHT_GI_1_6 = 0x1 - NL80211_RATE_INFO_EHT_GI_3_2 = 0x2 - NL80211_RATE_INFO_EHT_GI = 0x15 - NL80211_RATE_INFO_EHT_MCS = 0x13 - NL80211_RATE_INFO_EHT_NSS = 0x14 - NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 0x3 - NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 0x4 - NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 0x5 - NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0x0 - NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 0xb - NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 0xc - NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 0xd - NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 0xe - NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 0x6 - NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 0x7 - NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 0xf - NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 0x1 - NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 0x2 - NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 0x8 - NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 0x9 - NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 0xa - NL80211_RATE_INFO_EHT_RU_ALLOC = 0x16 - NL80211_RATE_INFO_HE_1XLTF = 0x0 - NL80211_RATE_INFO_HE_2XLTF = 0x1 - NL80211_RATE_INFO_HE_4XLTF = 0x2 - NL80211_RATE_INFO_HE_DCM = 0x10 - NL80211_RATE_INFO_HE_GI_0_8 = 0x0 - NL80211_RATE_INFO_HE_GI_1_6 = 0x1 - NL80211_RATE_INFO_HE_GI_3_2 = 0x2 - NL80211_RATE_INFO_HE_GI = 0xf - NL80211_RATE_INFO_HE_MCS = 0xd - NL80211_RATE_INFO_HE_NSS = 0xe - NL80211_RATE_INFO_HE_RU_ALLOC_106 = 0x2 - NL80211_RATE_INFO_HE_RU_ALLOC_242 = 0x3 - NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0x0 - NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 0x6 - NL80211_RATE_INFO_HE_RU_ALLOC_484 = 0x4 - NL80211_RATE_INFO_HE_RU_ALLOC_52 = 0x1 - NL80211_RATE_INFO_HE_RU_ALLOC_996 = 0x5 - NL80211_RATE_INFO_HE_RU_ALLOC = 0x11 - NL80211_RATE_INFO_MAX = 0x1d - NL80211_RATE_INFO_MCS = 0x2 - NL80211_RATE_INFO_S1G_MCS = 0x17 - NL80211_RATE_INFO_S1G_NSS = 0x18 - NL80211_RATE_INFO_SHORT_GI = 0x4 - NL80211_RATE_INFO_VHT_MCS = 0x6 - NL80211_RATE_INFO_VHT_NSS = 0x7 - NL80211_REGDOM_SET_BY_CORE = 0x0 - NL80211_REGDOM_SET_BY_COUNTRY_IE = 0x3 - NL80211_REGDOM_SET_BY_DRIVER = 0x2 - NL80211_REGDOM_SET_BY_USER = 0x1 - NL80211_REGDOM_TYPE_COUNTRY = 0x0 - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 - NL80211_REGDOM_TYPE_INTERSECTION = 0x3 - NL80211_REGDOM_TYPE_WORLD = 0x1 - NL80211_REG_RULE_ATTR_MAX = 0x8 - NL80211_REKEY_DATA_AKM = 0x4 - NL80211_REKEY_DATA_KCK = 0x2 - NL80211_REKEY_DATA_KEK = 0x1 - NL80211_REKEY_DATA_REPLAY_CTR = 0x3 - NL80211_REPLAY_CTR_LEN = 0x8 - NL80211_RRF_ALLOW_6GHZ_VLP_AP = 0x1000000 - NL80211_RRF_AUTO_BW = 0x800 - NL80211_RRF_DFS = 0x10 - NL80211_RRF_DFS_CONCURRENT = 0x200000 - NL80211_RRF_GO_CONCURRENT = 0x1000 - NL80211_RRF_IR_CONCURRENT = 0x1000 - NL80211_RRF_NO_160MHZ = 0x10000 - NL80211_RRF_NO_320MHZ = 0x40000 - NL80211_RRF_NO_6GHZ_AFC_CLIENT = 0x800000 - NL80211_RRF_NO_6GHZ_VLP_CLIENT = 0x400000 - NL80211_RRF_NO_80MHZ = 0x8000 - NL80211_RRF_NO_CCK = 0x2 - NL80211_RRF_NO_EHT = 0x80000 - NL80211_RRF_NO_HE = 0x20000 - NL80211_RRF_NO_HT40 = 0x6000 - NL80211_RRF_NO_HT40MINUS = 0x2000 - NL80211_RRF_NO_HT40PLUS = 0x4000 - NL80211_RRF_NO_IBSS = 0x80 - NL80211_RRF_NO_INDOOR = 0x4 - NL80211_RRF_NO_IR_ALL = 0x180 - NL80211_RRF_NO_IR = 0x80 - NL80211_RRF_NO_OFDM = 0x1 - NL80211_RRF_NO_OUTDOOR = 0x8 - NL80211_RRF_NO_UHB_AFC_CLIENT = 0x800000 - NL80211_RRF_NO_UHB_VLP_CLIENT = 0x400000 - NL80211_RRF_PASSIVE_SCAN = 0x80 - NL80211_RRF_PSD = 0x100000 - NL80211_RRF_PTMP_ONLY = 0x40 - NL80211_RRF_PTP_ONLY = 0x20 - NL80211_RXMGMT_FLAG_ANSWERED = 0x1 - NL80211_RXMGMT_FLAG_EXTERNAL_AUTH = 0x2 - NL80211_SAE_PWE_BOTH = 0x3 - NL80211_SAE_PWE_HASH_TO_ELEMENT = 0x2 - NL80211_SAE_PWE_HUNT_AND_PECK = 0x1 - NL80211_SAE_PWE_UNSPECIFIED = 0x0 - NL80211_SAR_ATTR_MAX = 0x2 - NL80211_SAR_ATTR_SPECS = 0x2 - NL80211_SAR_ATTR_SPECS_END_FREQ = 0x4 - NL80211_SAR_ATTR_SPECS_MAX = 0x4 - NL80211_SAR_ATTR_SPECS_POWER = 0x1 - NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 0x2 - NL80211_SAR_ATTR_SPECS_START_FREQ = 0x3 - NL80211_SAR_ATTR_TYPE = 0x1 - NL80211_SAR_TYPE_POWER = 0x0 - NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 0x20 - NL80211_SCAN_FLAG_AP = 0x4 - NL80211_SCAN_FLAG_COLOCATED_6GHZ = 0x4000 - NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 0x10 - NL80211_SCAN_FLAG_FLUSH = 0x2 - NL80211_SCAN_FLAG_FREQ_KHZ = 0x2000 - NL80211_SCAN_FLAG_HIGH_ACCURACY = 0x400 - NL80211_SCAN_FLAG_LOW_POWER = 0x200 - NL80211_SCAN_FLAG_LOW_PRIORITY = 0x1 - NL80211_SCAN_FLAG_LOW_SPAN = 0x100 - NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 0x1000 - NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x80 - NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 0x40 - NL80211_SCAN_FLAG_RANDOM_ADDR = 0x8 - NL80211_SCAN_FLAG_RANDOM_SN = 0x800 - NL80211_SCAN_RSSI_THOLD_OFF = -0x12c - NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 0x5 - NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 0x6 - NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 0x3 - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 0x4 - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 0x2 - NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 0x1 - NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 0x6 - NL80211_SCHED_SCAN_PLAN_INTERVAL = 0x1 - NL80211_SCHED_SCAN_PLAN_ITERATIONS = 0x2 - NL80211_SCHED_SCAN_PLAN_MAX = 0x2 - NL80211_SMPS_DYNAMIC = 0x2 - NL80211_SMPS_MAX = 0x2 - NL80211_SMPS_OFF = 0x0 - NL80211_SMPS_STATIC = 0x1 - NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 0x5 - NL80211_STA_BSS_PARAM_CTS_PROT = 0x1 - NL80211_STA_BSS_PARAM_DTIM_PERIOD = 0x4 - NL80211_STA_BSS_PARAM_MAX = 0x5 - NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 0x2 - NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 0x3 - NL80211_STA_FLAG_ASSOCIATED = 0x7 - NL80211_STA_FLAG_AUTHENTICATED = 0x5 - NL80211_STA_FLAG_AUTHORIZED = 0x1 - NL80211_STA_FLAG_MAX = 0x8 - NL80211_STA_FLAG_MAX_OLD_API = 0x6 - NL80211_STA_FLAG_MFP = 0x4 - NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2 - NL80211_STA_FLAG_SPP_AMSDU = 0x8 - NL80211_STA_FLAG_TDLS_PEER = 0x6 - NL80211_STA_FLAG_WME = 0x3 - NL80211_STA_INFO_ACK_SIGNAL_AVG = 0x23 - NL80211_STA_INFO_ACK_SIGNAL = 0x22 - NL80211_STA_INFO_AIRTIME_LINK_METRIC = 0x29 - NL80211_STA_INFO_AIRTIME_WEIGHT = 0x28 - NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 0x2a - NL80211_STA_INFO_BEACON_LOSS = 0x12 - NL80211_STA_INFO_BEACON_RX = 0x1d - NL80211_STA_INFO_BEACON_SIGNAL_AVG = 0x1e - NL80211_STA_INFO_BSS_PARAM = 0xf - NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 0x1a - NL80211_STA_INFO_CHAIN_SIGNAL = 0x19 - NL80211_STA_INFO_CONNECTED_TIME = 0x10 - NL80211_STA_INFO_CONNECTED_TO_AS = 0x2b - NL80211_STA_INFO_CONNECTED_TO_GATE = 0x26 - NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG = 0x23 - NL80211_STA_INFO_EXPECTED_THROUGHPUT = 0x1b - NL80211_STA_INFO_FCS_ERROR_COUNT = 0x25 - NL80211_STA_INFO_INACTIVE_TIME = 0x1 - NL80211_STA_INFO_LLID = 0x4 - NL80211_STA_INFO_LOCAL_PM = 0x14 - NL80211_STA_INFO_MAX = 0x2b - NL80211_STA_INFO_NONPEER_PM = 0x16 - NL80211_STA_INFO_PAD = 0x21 - NL80211_STA_INFO_PEER_PM = 0x15 - NL80211_STA_INFO_PLID = 0x5 - NL80211_STA_INFO_PLINK_STATE = 0x6 - NL80211_STA_INFO_RX_BITRATE = 0xe - NL80211_STA_INFO_RX_BYTES64 = 0x17 - NL80211_STA_INFO_RX_BYTES = 0x2 - NL80211_STA_INFO_RX_DROP_MISC = 0x1c - NL80211_STA_INFO_RX_DURATION = 0x20 - NL80211_STA_INFO_RX_MPDUS = 0x24 - NL80211_STA_INFO_RX_PACKETS = 0x9 - NL80211_STA_INFO_SIGNAL_AVG = 0xd - NL80211_STA_INFO_SIGNAL = 0x7 - NL80211_STA_INFO_STA_FLAGS = 0x11 - NL80211_STA_INFO_TID_STATS = 0x1f - NL80211_STA_INFO_T_OFFSET = 0x13 - NL80211_STA_INFO_TX_BITRATE = 0x8 - NL80211_STA_INFO_TX_BYTES64 = 0x18 - NL80211_STA_INFO_TX_BYTES = 0x3 - NL80211_STA_INFO_TX_DURATION = 0x27 - NL80211_STA_INFO_TX_FAILED = 0xc - NL80211_STA_INFO_TX_PACKETS = 0xa - NL80211_STA_INFO_TX_RETRIES = 0xb - NL80211_STA_WME_MAX = 0x2 - NL80211_STA_WME_MAX_SP = 0x2 - NL80211_STA_WME_UAPSD_QUEUES = 0x1 - NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY = 0x5 - NL80211_SURVEY_INFO_CHANNEL_TIME = 0x4 - NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY = 0x6 - NL80211_SURVEY_INFO_CHANNEL_TIME_RX = 0x7 - NL80211_SURVEY_INFO_CHANNEL_TIME_TX = 0x8 - NL80211_SURVEY_INFO_FREQUENCY = 0x1 - NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 0xc - NL80211_SURVEY_INFO_IN_USE = 0x3 - NL80211_SURVEY_INFO_MAX = 0xc - NL80211_SURVEY_INFO_NOISE = 0x2 - NL80211_SURVEY_INFO_PAD = 0xa - NL80211_SURVEY_INFO_TIME_BSS_RX = 0xb - NL80211_SURVEY_INFO_TIME_BUSY = 0x5 - NL80211_SURVEY_INFO_TIME = 0x4 - NL80211_SURVEY_INFO_TIME_EXT_BUSY = 0x6 - NL80211_SURVEY_INFO_TIME_RX = 0x7 - NL80211_SURVEY_INFO_TIME_SCAN = 0x9 - NL80211_SURVEY_INFO_TIME_TX = 0x8 - NL80211_TDLS_DISABLE_LINK = 0x4 - NL80211_TDLS_DISCOVERY_REQ = 0x0 - NL80211_TDLS_ENABLE_LINK = 0x3 - NL80211_TDLS_PEER_HE = 0x8 - NL80211_TDLS_PEER_HT = 0x1 - NL80211_TDLS_PEER_VHT = 0x2 - NL80211_TDLS_PEER_WMM = 0x4 - NL80211_TDLS_SETUP = 0x1 - NL80211_TDLS_TEARDOWN = 0x2 - NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 0x9 - NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 0xb - NL80211_TID_CONFIG_ATTR_MAX = 0xd - NL80211_TID_CONFIG_ATTR_NOACK = 0x6 - NL80211_TID_CONFIG_ATTR_OVERRIDE = 0x4 - NL80211_TID_CONFIG_ATTR_PAD = 0x1 - NL80211_TID_CONFIG_ATTR_PEER_SUPP = 0x3 - NL80211_TID_CONFIG_ATTR_RETRY_LONG = 0x8 - NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 0x7 - NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 0xa - NL80211_TID_CONFIG_ATTR_TIDS = 0x5 - NL80211_TID_CONFIG_ATTR_TX_RATE = 0xd - NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 0xc - NL80211_TID_CONFIG_ATTR_VIF_SUPP = 0x2 - NL80211_TID_CONFIG_DISABLE = 0x1 - NL80211_TID_CONFIG_ENABLE = 0x0 - NL80211_TID_STATS_MAX = 0x6 - NL80211_TID_STATS_PAD = 0x5 - NL80211_TID_STATS_RX_MSDU = 0x1 - NL80211_TID_STATS_TX_MSDU = 0x2 - NL80211_TID_STATS_TX_MSDU_FAILED = 0x4 - NL80211_TID_STATS_TX_MSDU_RETRIES = 0x3 - NL80211_TID_STATS_TXQ_STATS = 0x6 - NL80211_TIMEOUT_ASSOC = 0x3 - NL80211_TIMEOUT_AUTH = 0x2 - NL80211_TIMEOUT_SCAN = 0x1 - NL80211_TIMEOUT_UNSPECIFIED = 0x0 - NL80211_TKIP_DATA_OFFSET_ENCR_KEY = 0x0 - NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY = 0x18 - NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY = 0x10 - NL80211_TX_POWER_AUTOMATIC = 0x0 - NL80211_TX_POWER_FIXED = 0x2 - NL80211_TX_POWER_LIMITED = 0x1 - NL80211_TXQ_ATTR_AC = 0x1 - NL80211_TXQ_ATTR_AIFS = 0x5 - NL80211_TXQ_ATTR_CWMAX = 0x4 - NL80211_TXQ_ATTR_CWMIN = 0x3 - NL80211_TXQ_ATTR_MAX = 0x5 - NL80211_TXQ_ATTR_QUEUE = 0x1 - NL80211_TXQ_ATTR_TXOP = 0x2 - NL80211_TXQ_Q_BE = 0x2 - NL80211_TXQ_Q_BK = 0x3 - NL80211_TXQ_Q_VI = 0x1 - NL80211_TXQ_Q_VO = 0x0 - NL80211_TXQ_STATS_BACKLOG_BYTES = 0x1 - NL80211_TXQ_STATS_BACKLOG_PACKETS = 0x2 - NL80211_TXQ_STATS_COLLISIONS = 0x8 - NL80211_TXQ_STATS_DROPS = 0x4 - NL80211_TXQ_STATS_ECN_MARKS = 0x5 - NL80211_TXQ_STATS_FLOWS = 0x3 - NL80211_TXQ_STATS_MAX = 0xb - NL80211_TXQ_STATS_MAX_FLOWS = 0xb - NL80211_TXQ_STATS_OVERLIMIT = 0x6 - NL80211_TXQ_STATS_OVERMEMORY = 0x7 - NL80211_TXQ_STATS_TX_BYTES = 0x9 - NL80211_TXQ_STATS_TX_PACKETS = 0xa - NL80211_TX_RATE_AUTOMATIC = 0x0 - NL80211_TXRATE_DEFAULT_GI = 0x0 - NL80211_TX_RATE_FIXED = 0x2 - NL80211_TXRATE_FORCE_LGI = 0x2 - NL80211_TXRATE_FORCE_SGI = 0x1 - NL80211_TXRATE_GI = 0x4 - NL80211_TXRATE_HE = 0x5 - NL80211_TXRATE_HE_GI = 0x6 - NL80211_TXRATE_HE_LTF = 0x7 - NL80211_TXRATE_HT = 0x2 - NL80211_TXRATE_LEGACY = 0x1 - NL80211_TX_RATE_LIMITED = 0x1 - NL80211_TXRATE_MAX = 0x7 - NL80211_TXRATE_MCS = 0x2 - NL80211_TXRATE_VHT = 0x3 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 0x1 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 0x2 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 0x2 - NL80211_USER_REG_HINT_CELL_BASE = 0x1 - NL80211_USER_REG_HINT_INDOOR = 0x2 - NL80211_USER_REG_HINT_USER = 0x0 - NL80211_VENDOR_ID_IS_LINUX = 0x80000000 - NL80211_VHT_CAPABILITY_LEN = 0xc - NL80211_VHT_NSS_MAX = 0x8 - NL80211_WIPHY_NAME_MAXLEN = 0x40 - NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE = 0x2 - NL80211_WIPHY_RADIO_ATTR_INDEX = 0x1 - NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION = 0x3 - NL80211_WIPHY_RADIO_ATTR_MAX = 0x4 - NL80211_WIPHY_RADIO_FREQ_ATTR_END = 0x2 - NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = 0x2 - NL80211_WIPHY_RADIO_FREQ_ATTR_START = 0x1 - NL80211_WMMR_AIFSN = 0x3 - NL80211_WMMR_CW_MAX = 0x2 - NL80211_WMMR_CW_MIN = 0x1 - NL80211_WMMR_MAX = 0x4 - NL80211_WMMR_TXOP = 0x4 - NL80211_WOWLAN_PKTPAT_MASK = 0x1 - NL80211_WOWLAN_PKTPAT_OFFSET = 0x3 - NL80211_WOWLAN_PKTPAT_PATTERN = 0x2 - NL80211_WOWLAN_TCP_DATA_INTERVAL = 0x9 - NL80211_WOWLAN_TCP_DATA_PAYLOAD = 0x6 - NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 0x7 - NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 0x8 - NL80211_WOWLAN_TCP_DST_IPV4 = 0x2 - NL80211_WOWLAN_TCP_DST_MAC = 0x3 - NL80211_WOWLAN_TCP_DST_PORT = 0x5 - NL80211_WOWLAN_TCP_SRC_IPV4 = 0x1 - NL80211_WOWLAN_TCP_SRC_PORT = 0x4 - NL80211_WOWLAN_TCP_WAKE_MASK = 0xb - NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 0xa - NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 0x8 - NL80211_WOWLAN_TRIG_ANY = 0x1 - NL80211_WOWLAN_TRIG_DISCONNECT = 0x2 - NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 0x7 - NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 0x6 - NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 0x5 - NL80211_WOWLAN_TRIG_MAGIC_PKT = 0x3 - NL80211_WOWLAN_TRIG_NET_DETECT = 0x12 - NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 0x13 - NL80211_WOWLAN_TRIG_PKT_PATTERN = 0x4 - NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 0x9 - NL80211_WOWLAN_TRIG_TCP_CONNECTION = 0xe - NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC = 0x14 - NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 0xa - NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 0xb - NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 0xc - NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 0xd - NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 0x10 - NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 0xf - NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 0x11 - NL80211_WPA_VERSION_1 = 0x1 - NL80211_WPA_VERSION_2 = 0x2 - NL80211_WPA_VERSION_3 = 0x4 -) - -const ( - FRA_UNSPEC = 0x0 - FRA_DST = 0x1 - FRA_SRC = 0x2 - FRA_IIFNAME = 0x3 - FRA_GOTO = 0x4 - FRA_UNUSED2 = 0x5 - FRA_PRIORITY = 0x6 - FRA_UNUSED3 = 0x7 - FRA_UNUSED4 = 0x8 - FRA_UNUSED5 = 0x9 - FRA_FWMARK = 0xa - FRA_FLOW = 0xb - FRA_TUN_ID = 0xc - FRA_SUPPRESS_IFGROUP = 0xd - FRA_SUPPRESS_PREFIXLEN = 0xe - FRA_TABLE = 0xf - FRA_FWMASK = 0x10 - FRA_OIFNAME = 0x11 - FRA_PAD = 0x12 - FRA_L3MDEV = 0x13 - FRA_UID_RANGE = 0x14 - FRA_PROTOCOL = 0x15 - FRA_IP_PROTO = 0x16 - FRA_SPORT_RANGE = 0x17 - FRA_DPORT_RANGE = 0x18 - FR_ACT_UNSPEC = 0x0 - FR_ACT_TO_TBL = 0x1 - FR_ACT_GOTO = 0x2 - FR_ACT_NOP = 0x3 - FR_ACT_RES3 = 0x4 - FR_ACT_RES4 = 0x5 - FR_ACT_BLACKHOLE = 0x6 - FR_ACT_UNREACHABLE = 0x7 - FR_ACT_PROHIBIT = 0x8 -) - -const ( - AUDIT_NLGRP_NONE = 0x0 - AUDIT_NLGRP_READLOG = 0x1 -) - -const ( - TUN_F_CSUM = 0x1 - TUN_F_TSO4 = 0x2 - TUN_F_TSO6 = 0x4 - TUN_F_TSO_ECN = 0x8 - TUN_F_UFO = 0x10 - TUN_F_USO4 = 0x20 - TUN_F_USO6 = 0x40 -) - -const ( - VIRTIO_NET_HDR_F_NEEDS_CSUM = 0x1 - VIRTIO_NET_HDR_F_DATA_VALID = 0x2 - VIRTIO_NET_HDR_F_RSC_INFO = 0x4 -) - -const ( - VIRTIO_NET_HDR_GSO_NONE = 0x0 - VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 - VIRTIO_NET_HDR_GSO_UDP = 0x3 - VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 - VIRTIO_NET_HDR_GSO_UDP_L4 = 0x5 - VIRTIO_NET_HDR_GSO_ECN = 0x80 -) - -type SchedAttr struct { - Size uint32 - Policy uint32 - Flags uint64 - Nice int32 - Priority uint32 - Runtime uint64 - Deadline uint64 - Period uint64 - Util_min uint32 - Util_max uint32 -} - -const SizeofSchedAttr = 0x38 - -type Cachestat_t struct { - Cache uint64 - Dirty uint64 - Writeback uint64 - Evicted uint64 - Recently_evicted uint64 -} -type CachestatRange struct { - Off uint64 - Len uint64 -} - -const ( - SK_MEMINFO_RMEM_ALLOC = 0x0 - SK_MEMINFO_RCVBUF = 0x1 - SK_MEMINFO_WMEM_ALLOC = 0x2 - SK_MEMINFO_SNDBUF = 0x3 - SK_MEMINFO_FWD_ALLOC = 0x4 - SK_MEMINFO_WMEM_QUEUED = 0x5 - SK_MEMINFO_OPTMEM = 0x6 - SK_MEMINFO_BACKLOG = 0x7 - SK_MEMINFO_DROPS = 0x8 - SK_MEMINFO_VARS = 0x9 - SKNLGRP_NONE = 0x0 - SKNLGRP_INET_TCP_DESTROY = 0x1 - SKNLGRP_INET_UDP_DESTROY = 0x2 - SKNLGRP_INET6_TCP_DESTROY = 0x3 - SKNLGRP_INET6_UDP_DESTROY = 0x4 - SK_DIAG_BPF_STORAGE_REQ_NONE = 0x0 - SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1 - SK_DIAG_BPF_STORAGE_REP_NONE = 0x0 - SK_DIAG_BPF_STORAGE = 0x1 - SK_DIAG_BPF_STORAGE_NONE = 0x0 - SK_DIAG_BPF_STORAGE_PAD = 0x1 - SK_DIAG_BPF_STORAGE_MAP_ID = 0x2 - SK_DIAG_BPF_STORAGE_MAP_VALUE = 0x3 -) - -type SockDiagReq struct { - Family uint8 - Protocol uint8 -} - -const RTM_NEWNVLAN = 0x70 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go deleted file mode 100644 index 485f2d3..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ /dev/null @@ -1,705 +0,0 @@ -// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - _ uint16 - _ uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - Size int64 - Blksize int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [1]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 -} - -type DmNameList struct { - Dev uint64 - Next uint32 -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Ebx int32 - Ecx int32 - Edx int32 - Esi int32 - Edi int32 - Ebp int32 - Eax int32 - Xds int32 - Xes int32 - Xfs int32 - Xgs int32 - Orig_eax int32 - Eip int32 - Xcs int32 - Eflags int32 - Esp int32 - Xss int32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 -} - -const ( - BLKPG = 0x1269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint16 - Inode uint32 - Rdevice uint16 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]int8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 -} - -const ( - PPS_GETPARAMS = 0x800470a1 - PPS_SETPARAMS = 0x400470a2 - PPS_GETCAP = 0x800470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ [2]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Atime_high uint32 - Dtime uint32 - Dtime_high uint32 - Ctime uint32 - Ctime_high uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go deleted file mode 100644 index ecbd1ad..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ /dev/null @@ -1,719 +0,0 @@ -// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [3]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - R15 uint64 - R14 uint64 - R13 uint64 - R12 uint64 - Rbp uint64 - Rbx uint64 - R11 uint64 - R10 uint64 - R9 uint64 - R8 uint64 - Rax uint64 - Rcx uint64 - Rdx uint64 - Rsi uint64 - Rdi uint64 - Orig_rax uint64 - Rip uint64 - Cs uint64 - Eflags uint64 - Rsp uint64 - Ss uint64 - Fs_base uint64 - Gs_base uint64 - Ds uint64 - Es uint64 - Fs uint64 - Gs uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint64 - Inode uint64 - Rdevice uint64 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go deleted file mode 100644 index 02f0463..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ /dev/null @@ -1,699 +0,0 @@ -// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - _ uint16 - _ uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - _ [6]byte - Size int64 - Blksize int32 - _ [4]byte - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Uregs [18]uint32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]uint8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]uint8 - Fpack [6]uint8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint16 - Inode uint32 - Rdevice uint16 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]uint8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800470a1 - PPS_SETPARAMS = 0x400470a2 - PPS_GETCAP = 0x800470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ [2]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Atime_high uint32 - Dtime uint32 - Dtime_high uint32 - Ctime uint32 - Ctime_high uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go deleted file mode 100644 index 6f4d400..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ /dev/null @@ -1,698 +0,0 @@ -// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [31]uint64 - Sp uint64 - Pc uint64 - Pstate uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go deleted file mode 100644 index cd532cf..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +++ /dev/null @@ -1,699 +0,0 @@ -// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Orig_a0 uint64 - Era uint64 - Badv uint64 - Reserved [10]uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go deleted file mode 100644 index 4133620..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ /dev/null @@ -1,704 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint32 - Pad1 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]int32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad4 int32 - Blocks int64 - Pad5 [14]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Frsize int32 - _ [4]byte - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int32 - Flags int32 - Spare [5]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint32 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]int8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400470a1 - PPS_SETPARAMS = 0x800470a2 - PPS_GETCAP = 0x400470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Dtime uint32 - Ctime uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - Atime_high uint16 - Dtime_high uint16 - Ctime_high uint16 - _ uint16 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go deleted file mode 100644 index eaa37eb..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ /dev/null @@ -1,701 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint32 - Pad1 [3]uint32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]uint32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize uint32 - Pad4 uint32 - Blocks int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Frsize int64 - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int64 - Flags int64 - Spare [5]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go deleted file mode 100644 index 98ae6a1..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ /dev/null @@ -1,701 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint32 - Pad1 [3]uint32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]uint32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize uint32 - Pad4 uint32 - Blocks int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Frsize int64 - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int64 - Flags int64 - Spare [5]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go deleted file mode 100644 index cae1961..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ /dev/null @@ -1,704 +0,0 @@ -// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mipsle && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint32 - Pad1 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]int32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad4 int32 - Blocks int64 - Pad5 [14]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Frsize int32 - _ [4]byte - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int32 - Flags int32 - Spare [5]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint32 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]int8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400470a1 - PPS_SETPARAMS = 0x800470a2 - PPS_GETCAP = 0x400470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Dtime uint32 - Ctime uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - Atime_high uint16 - Dtime_high uint16 - Ctime_high uint16 - _ uint16 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go deleted file mode 100644 index 6ce3b4e..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +++ /dev/null @@ -1,712 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - _ [6]byte - Size int64 - Blksize int32 - _ [4]byte - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint32 - _ uint32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Gpr [32]uint32 - Nip uint32 - Msr uint32 - Orig_gpr3 uint32 - Ctr uint32 - Link uint32 - Xer uint32 - Ccr uint32 - Mq uint32 - Trap uint32 - Dar uint32 - Dsisr uint32 - Result uint32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]uint8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]uint8 - Fpack [6]uint8 -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint32 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]uint8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400470a1 - PPS_SETPARAMS = 0x800470a2 - PPS_GETCAP = 0x400470a3 - PPS_FETCH = 0xc00470a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime_high uint32 - Atime uint32 - Dtime_high uint32 - Dtime uint32 - Ctime_high uint32 - Ctime uint32 - _ uint32 - Segsz uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 - _ [4]byte -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go deleted file mode 100644 index c7429c6..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ /dev/null @@ -1,707 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Gpr [32]uint64 - Nip uint64 - Msr uint64 - Orig_gpr3 uint64 - Ctr uint64 - Link uint64 - Xer uint64 - Ccr uint64 - Softe uint64 - Trap uint64 - Dar uint64 - Dsisr uint64 - Result uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint64 - Inode uint64 - Rdevice uint64 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]uint8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go deleted file mode 100644 index 4bf4baf..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ /dev/null @@ -1,707 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Gpr [32]uint64 - Nip uint64 - Msr uint64 - Orig_gpr3 uint64 - Ctr uint64 - Link uint64 - Xer uint64 - Ccr uint64 - Softe uint64 - Trap uint64 - Dar uint64 - Dsisr uint64 - Result uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint64 - Inode uint64 - Rdevice uint64 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]uint8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go deleted file mode 100644 index e9709d7..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ /dev/null @@ -1,786 +0,0 @@ -// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Pc uint64 - Ra uint64 - Sp uint64 - Gp uint64 - Tp uint64 - T0 uint64 - T1 uint64 - T2 uint64 - S0 uint64 - S1 uint64 - A0 uint64 - A1 uint64 - A2 uint64 - A3 uint64 - A4 uint64 - A5 uint64 - A6 uint64 - A7 uint64 - S2 uint64 - S3 uint64 - S4 uint64 - S5 uint64 - S6 uint64 - S7 uint64 - S8 uint64 - S9 uint64 - S10 uint64 - S11 uint64 - T3 uint64 - T4 uint64 - T5 uint64 - T6 uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]uint8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} - -type RISCVHWProbePairs struct { - Key int64 - Value uint64 -} - -const ( - RISCV_HWPROBE_KEY_MVENDORID = 0x0 - RISCV_HWPROBE_KEY_MARCHID = 0x1 - RISCV_HWPROBE_KEY_MIMPID = 0x2 - RISCV_HWPROBE_KEY_BASE_BEHAVIOR = 0x3 - RISCV_HWPROBE_BASE_BEHAVIOR_IMA = 0x1 - RISCV_HWPROBE_KEY_IMA_EXT_0 = 0x4 - RISCV_HWPROBE_IMA_FD = 0x1 - RISCV_HWPROBE_IMA_C = 0x2 - RISCV_HWPROBE_IMA_V = 0x4 - RISCV_HWPROBE_EXT_ZBA = 0x8 - RISCV_HWPROBE_EXT_ZBB = 0x10 - RISCV_HWPROBE_EXT_ZBS = 0x20 - RISCV_HWPROBE_EXT_ZICBOZ = 0x40 - RISCV_HWPROBE_EXT_ZBC = 0x80 - RISCV_HWPROBE_EXT_ZBKB = 0x100 - RISCV_HWPROBE_EXT_ZBKC = 0x200 - RISCV_HWPROBE_EXT_ZBKX = 0x400 - RISCV_HWPROBE_EXT_ZKND = 0x800 - RISCV_HWPROBE_EXT_ZKNE = 0x1000 - RISCV_HWPROBE_EXT_ZKNH = 0x2000 - RISCV_HWPROBE_EXT_ZKSED = 0x4000 - RISCV_HWPROBE_EXT_ZKSH = 0x8000 - RISCV_HWPROBE_EXT_ZKT = 0x10000 - RISCV_HWPROBE_EXT_ZVBB = 0x20000 - RISCV_HWPROBE_EXT_ZVBC = 0x40000 - RISCV_HWPROBE_EXT_ZVKB = 0x80000 - RISCV_HWPROBE_EXT_ZVKG = 0x100000 - RISCV_HWPROBE_EXT_ZVKNED = 0x200000 - RISCV_HWPROBE_EXT_ZVKNHA = 0x400000 - RISCV_HWPROBE_EXT_ZVKNHB = 0x800000 - RISCV_HWPROBE_EXT_ZVKSED = 0x1000000 - RISCV_HWPROBE_EXT_ZVKSH = 0x2000000 - RISCV_HWPROBE_EXT_ZVKT = 0x4000000 - RISCV_HWPROBE_EXT_ZFH = 0x8000000 - RISCV_HWPROBE_EXT_ZFHMIN = 0x10000000 - RISCV_HWPROBE_EXT_ZIHINTNTL = 0x20000000 - RISCV_HWPROBE_EXT_ZVFH = 0x40000000 - RISCV_HWPROBE_EXT_ZVFHMIN = 0x80000000 - RISCV_HWPROBE_EXT_ZFA = 0x100000000 - RISCV_HWPROBE_EXT_ZTSO = 0x200000000 - RISCV_HWPROBE_EXT_ZACAS = 0x400000000 - RISCV_HWPROBE_EXT_ZICOND = 0x800000000 - RISCV_HWPROBE_EXT_ZIHINTPAUSE = 0x1000000000 - RISCV_HWPROBE_KEY_CPUPERF_0 = 0x5 - RISCV_HWPROBE_MISALIGNED_UNKNOWN = 0x0 - RISCV_HWPROBE_MISALIGNED_EMULATED = 0x1 - RISCV_HWPROBE_MISALIGNED_SLOW = 0x2 - RISCV_HWPROBE_MISALIGNED_FAST = 0x3 - RISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4 - RISCV_HWPROBE_MISALIGNED_MASK = 0x7 - RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE = 0x6 - RISCV_HWPROBE_WHICH_CPUS = 0x1 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go deleted file mode 100644 index fb44268..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ /dev/null @@ -1,721 +0,0 @@ -// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int64 - Blocks int64 - _ [3]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x6 - FADV_NOREUSE = 0x7 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Psw PtracePsw - Gprs [16]uint64 - Acrs [16]uint32 - Orig_gpr2 uint64 - Fp_regs PtraceFpregs - Per_info PtracePer - Ieee_instruction_pointer uint64 -} - -type PtracePsw struct { - Mask uint64 - Addr uint64 -} - -type PtraceFpregs struct { - Fpc uint32 - Fprs [16]float64 -} - -type PtracePer struct { - Control_regs [3]uint64 - _ [8]byte - Starting_addr uint64 - Ending_addr uint64 - Perc_atmid uint16 - Address uint64 - Access_id uint8 - _ [7]byte -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type uint32 - Bsize uint32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen uint32 - Frsize uint32 - Flags uint32 - Spare [4]uint32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint16 - Inode uint64 - Rdevice uint16 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x800870a1 - PPS_SETPARAMS = 0x400870a2 - PPS_GETCAP = 0x800870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ uint16 - Seq uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go deleted file mode 100644 index 9c38265..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ /dev/null @@ -1,702 +0,0 @@ -// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - _ uint16 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ int16 - _ [2]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [16]uint64 - Tstate uint64 - Tpc uint64 - Tnpc uint64 - Y uint32 - Magic uint32 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x400000 -) - -const ( - POLLRDHUP = 0x800 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x4 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Irq_count uint64 - Irq_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -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 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint64 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]int8 - Encrypt_key [32]uint8 - Init [2]uint64 - Reserved [4]int8 - _ [4]byte -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -type PPSKInfo struct { - Assert_sequence uint32 - Clear_sequence uint32 - Assert_tu PPSKTime - Clear_tu PPSKTime - Current_mode int32 - _ [4]byte -} - -const ( - PPS_GETPARAMS = 0x400870a1 - PPS_SETPARAMS = 0x800870a2 - PPS_GETCAP = 0x400870a3 - PPS_FETCH = 0xc00870a4 -) - -const ( - PIDFD_NONBLOCK = 0x4000 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ uint16 - Seq uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go deleted file mode 100644 index f22e794..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ /dev/null @@ -1,585 +0,0 @@ -// cgo -godefs types_netbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && netbsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -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 -} - -type Statfs_t [0]byte - -type Statvfs_t struct { - Flag uint32 - Bsize uint32 - Frsize uint32 - Iosize uint32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Bresvd uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fresvd uint64 - Syncreads uint64 - Syncwrites uint64 - Asyncreads uint64 - Asyncwrites uint64 - Fsidx Fsid - Fsid uint32 - Namemax uint32 - Owner uint32 - Spare [4]uint32 - Fstypename [32]byte - Mntonname [1024]byte - Mntfromname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [12]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 uint32 -} - -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 int32 - 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 = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter uint32 - Flags uint32 - Fflags uint32 - Data int64 - Udata int32 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x84 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData - Pad_cgo_1 [4]byte -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -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 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -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 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -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 Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -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_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go deleted file mode 100644 index 066a7d8..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ /dev/null @@ -1,593 +0,0 @@ -// cgo -godefs types_netbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && netbsd - -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 int32 - Pad_cgo_0 [4]byte -} - -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 { - 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 -} - -type Statfs_t [0]byte - -type Statvfs_t struct { - Flag uint64 - Bsize uint64 - Frsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Bresvd uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fresvd uint64 - Syncreads uint64 - Syncwrites uint64 - Asyncreads uint64 - Asyncwrites uint64 - Fsidx Fsid - Fsid uint64 - Namemax uint64 - Owner uint32 - Spare [4]uint32 - Fstypename [32]byte - Mntonname [1024]byte - Mntfromname [1024]byte - _ [4]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [12]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 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - 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 = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - 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 uint32 - Flags uint32 - Fflags uint32 - Pad_cgo_0 [4]byte - Data int64 - Udata int64 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfTimeval struct { - Sec int64 - Usec int64 -} - -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 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -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 Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -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_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go deleted file mode 100644 index 439548e..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ /dev/null @@ -1,590 +0,0 @@ -// cgo -godefs types_netbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && netbsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - Pad_cgo_0 [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -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 -} - -type Statfs_t [0]byte - -type Statvfs_t struct { - Flag uint32 - Bsize uint32 - Frsize uint32 - Iosize uint32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Bresvd uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fresvd uint64 - Syncreads uint64 - Syncwrites uint64 - Asyncreads uint64 - Asyncwrites uint64 - Fsidx Fsid - Fsid uint32 - Namemax uint32 - Owner uint32 - Spare [4]uint32 - Fstypename [32]byte - Mntonname [1024]byte - Mntfromname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [12]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 uint32 -} - -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 int32 - 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 = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter uint32 - Flags uint32 - Fflags uint32 - Data int64 - Udata int32 - Pad_cgo_0 [4]byte -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -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 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -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 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -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 Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -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_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go deleted file mode 100644 index 16085d3..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ /dev/null @@ -1,593 +0,0 @@ -// cgo -godefs types_netbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && netbsd - -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 int32 - Pad_cgo_0 [4]byte -} - -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 { - 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 -} - -type Statfs_t [0]byte - -type Statvfs_t struct { - Flag uint64 - Bsize uint64 - Frsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Bresvd uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fresvd uint64 - Syncreads uint64 - Syncwrites uint64 - Asyncreads uint64 - Asyncwrites uint64 - Fsidx Fsid - Fsid uint64 - Namemax uint64 - Owner uint32 - Spare [4]uint32 - Fstypename [32]byte - Mntonname [1024]byte - Mntfromname [1024]byte - _ [4]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [12]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 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - 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 = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - 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 uint32 - Flags uint32 - Fflags uint32 - Pad_cgo_0 [4]byte - Data int64 - Udata int64 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfTimeval struct { - Sec int64 - Usec int64 -} - -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 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -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 Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -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_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go deleted file mode 100644 index afd13a3..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ /dev/null @@ -1,568 +0,0 @@ -// cgo -godefs types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && openbsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 uint32 -} - -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 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa0 - SizeofIfData = 0x88 - 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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick 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 deleted file mode 100644 index 5d97f1f..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ /dev/null @@ -1,568 +0,0 @@ -// cgo -godefs types_openbsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && 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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 - SizeofIovec = 0x10 - 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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick 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 deleted file mode 100644 index 34871cd..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ /dev/null @@ -1,575 +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. - -//go:build arm && openbsd - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - _ [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -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 - _ [4]byte - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - _ [4]byte - 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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 uint32 -} - -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 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - _ [4]byte - Data int64 - Udata *byte - _ [4]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 - _ [4]byte - 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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick 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 5911bce..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +++ /dev/null @@ -1,568 +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. - -//go: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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 - SizeofIovec = 0x10 - 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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go deleted file mode 100644 index e4f24f3..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +++ /dev/null @@ -1,568 +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. - -//go:build mips64 && 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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 - SizeofIovec = 0x10 - 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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go deleted file mode 100644 index ca50a79..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +++ /dev/null @@ -1,570 +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. - -//go:build ppc64 && 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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 - SizeofIovec = 0x10 - 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 = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go deleted file mode 100644 index d7d7f79..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +++ /dev/null @@ -1,570 +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. - -//go:build riscv64 && 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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 - SizeofIovec = 0x10 - 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 = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go deleted file mode 100644 index 1416057..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ /dev/null @@ -1,516 +0,0 @@ -// cgo -godefs types_solaris.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && solaris - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x400 - MaxHostNameLen = 0x100 -) - -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 Timeval32 struct { - Sec int32 - Usec int32 -} - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Blocks int64 - Fstype [16]int8 -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Sysid int32 - Pid int32 - Pad [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Name [1]int8 - _ [5]byte -} - -type _Fsblkcnt_t uint64 - -type Statvfs_t struct { - Bsize uint64 - Frsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fsid uint64 - Basetype [16]int8 - Flag uint64 - Namemax uint64 - Fstr [32]int8 -} - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - _ uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrDatalink struct { - Family uint16 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [244]int8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [236]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 int32 - Accrights *int8 - Accrightslen int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -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 = 0x20 - SizeofSockaddrAny = 0xfc - SizeofSockaddrUnix = 0x6e - SizeofSockaddrDatalink = 0xfc - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x24 - SizeofICMPv6Filter = 0x20 -) - -type FdSet struct { - Bits [1024]int64 -} - -type Utsname struct { - Sysname [257]byte - Nodename [257]byte - Release [257]byte - Version [257]byte - Machine [257]byte -} - -type Ustat_t struct { - Tfree int64 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -const ( - AT_FDCWD = 0xffd19553 - AT_SYMLINK_NOFOLLOW = 0x1000 - AT_SYMLINK_FOLLOW = 0x2000 - AT_REMOVEDIR = 0x1 - AT_EACCESS = 0x4 -) - -const ( - SizeofIfMsghdr = 0x54 - SizeofIfData = 0x44 - SizeofIfaMsghdr = 0x14 - SizeofRtMsghdr = 0x4c - SizeofRtMetrics = 0x28 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Lastchange Timeval32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - _ [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - _ [1]byte -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line int8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -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 fileObj struct { - Atim Timespec - Mtim Timespec - Ctim Timespec - Pad [3]uint64 - Name *int8 -} - -type portEvent struct { - Events int32 - Source uint16 - Pad uint16 - Object uint64 - User *byte -} - -const ( - PORT_SOURCE_AIO = 0x1 - PORT_SOURCE_TIMER = 0x2 - PORT_SOURCE_USER = 0x3 - PORT_SOURCE_FD = 0x4 - PORT_SOURCE_ALERT = 0x5 - PORT_SOURCE_MQ = 0x6 - PORT_SOURCE_FILE = 0x7 - PORT_ALERT_SET = 0x1 - PORT_ALERT_UPDATE = 0x2 - PORT_ALERT_INVALID = 0x3 - FILE_ACCESS = 0x1 - FILE_MODIFIED = 0x2 - FILE_ATTRIB = 0x4 - FILE_TRUNC = 0x100000 - FILE_NOFOLLOW = 0x10000000 - FILE_DELETE = 0x10 - FILE_RENAME_TO = 0x20 - FILE_RENAME_FROM = 0x40 - UNMOUNTED = 0x20000000 - MOUNTEDOVER = 0x40000000 - FILE_EXCEPTION = 0x60000070 -) - -const ( - TUNNEWPPA = 0x540001 - TUNSETPPA = 0x540002 - - I_STR = 0x5308 - I_POP = 0x5303 - I_PUSH = 0x5302 - I_LINK = 0x530c - I_UNLINK = 0x530d - I_PLINK = 0x5316 - I_PUNLINK = 0x5317 - - IF_UNITSEL = -0x7ffb8cca -) - -type strbuf struct { - Maxlen int32 - Len int32 - Buf *int8 -} - -type Strioctl struct { - Cmd int32 - Timout int32 - Len int32 - Dp *int8 -} - -type Lifreq struct { - Name [32]int8 - Lifru1 [4]byte - Type uint32 - Lifru [336]byte -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go deleted file mode 100644 index 2e5d5a4..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +++ /dev/null @@ -1,552 +0,0 @@ -// Copyright 2020 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:build zos && s390x - -// Hand edited based on ztypes_linux_s390x.go -// TODO: auto-generate. - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 -) - -const ( - SizeofSockaddrAny = 128 - SizeofCmsghdr = 12 - SizeofIPMreq = 8 - SizeofIPv6Mreq = 20 - SizeofICMPv6Filter = 32 - SizeofIPv6MTUInfo = 32 - SizeofInet4Pktinfo = 8 - SizeofInet6Pktinfo = 20 - SizeofLinger = 8 - SizeofSockaddrInet4 = 16 - SizeofSockaddrInet6 = 28 - SizeofTCPInfo = 0x68 - SizeofUcred = 12 -) - -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 timeval_zos struct { //correct (with padding and all) - Sec int64 - _ [4]byte // pad - Usec int32 -} - -type Tms struct { //clock_t is 4-byte unsigned int in zos - Utime uint32 - Stime uint32 - Cutime uint32 - Cstime uint32 -} - -type Time_t int64 - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Utsname struct { - Sysname [16]byte - Nodename [32]byte - Release [8]byte - Version [8]byte - Machine [16]byte -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -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 [108]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - _ [112]uint8 // pad -} - -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 - Iov *Iovec - Control *byte - Flags int32 - Namelen int32 - Iovlen int32 - Controllen int32 -} - -type Cmsghdr struct { - Len int32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Addr [4]byte /* in_addr */ - Ifindex uint32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type _Gid_t uint32 - -type rusage_zos struct { - Utime timeval_zos - Stime timeval_zos -} - -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 -} - -// { int, short, short } in poll.h -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -type Stat_t struct { //Linux Definition - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int64 - Blocks int64 - _ [3]int64 -} - -type Stat_LE_t struct { - _ [4]byte // eye catcher - Length uint16 - Version uint16 - Mode int32 - Ino uint32 - Dev uint32 - Nlink int32 - Uid int32 - Gid int32 - Size int64 - Atim31 [4]byte - Mtim31 [4]byte - Ctim31 [4]byte - Rdev uint32 - Auditoraudit uint32 - Useraudit uint32 - Blksize int32 - Creatim31 [4]byte - AuditID [16]byte - _ [4]byte // rsrvd1 - File_tag struct { - Ccsid uint16 - Txtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14 - } - CharsetID [8]byte - Blocks int64 - Genvalue uint32 - Reftim31 [4]byte - Fid [8]byte - Filefmt byte - Fspflag2 byte - _ [2]byte // rsrvd2 - Ctimemsec int32 - Seclabel [8]byte - _ [4]byte // rsrvd3 - _ [4]byte // rsrvd4 - Atim Time_t - Mtim Time_t - Ctim Time_t - Creatim Time_t - Reftim Time_t - _ [24]byte // rsrvd5 -} - -type Statvfs_t struct { - ID [4]byte - Len int32 - Bsize uint64 - Blocks uint64 - Usedspace uint64 - Bavail uint64 - Flag uint64 - Maxfilesize int64 - _ [16]byte - Frsize uint64 - Bfree uint64 - Files uint32 - Ffree uint32 - Favail uint32 - Namemax31 uint32 - Invarsec uint32 - _ [4]byte - Fsid uint64 - Namemax uint64 -} - -type Statfs_t struct { - Type uint64 - Bsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint32 - Ffree uint32 - Fsid uint64 - Namelen uint64 - Frsize uint64 - Flags uint64 - _ [4]uint64 -} - -type direntLE struct { - Reclen uint16 - Namlen uint16 - Ino uint32 - Extra uintptr - Name [256]byte -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type FdSet struct { - Bits [64]int32 -} - -// This struct is packed on z/OS so it can't be used directly. -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 -} - -type F_cnvrt struct { - Cvtcmd int32 - Pccsid int16 - Fccsid int16 -} - -type Termios struct { - Cflag uint32 - Iflag uint32 - Lflag uint32 - Oflag uint32 - Cc [11]uint8 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type W_Mnth struct { - Hid [4]byte - Size int32 - Cur1 int32 //32bit pointer - Cur2 int32 //^ - Devno uint32 - _ [4]byte -} - -type W_Mntent struct { - Fstype uint32 - Mode uint32 - Dev uint32 - Parentdev uint32 - Rootino uint32 - Status byte - Ddname [9]byte - Fstname [9]byte - Fsname [45]byte - Pathlen uint32 - Mountpoint [1024]byte - Jobname [8]byte - PID int32 - Parmoffset int32 - Parmlen int16 - Owner [8]byte - Quiesceowner [8]byte - _ [38]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 - Name string -} - -const ( - SizeofInotifyEvent = 0x10 -) - -type ConsMsg2 struct { - Cm2Format uint16 - Cm2R1 uint16 - Cm2Msglength uint32 - Cm2Msg *byte - Cm2R2 [4]byte - Cm2R3 [4]byte - Cm2Routcde *uint32 - Cm2Descr *uint32 - Cm2Msgflag uint32 - Cm2Token uint32 - Cm2Msgid *uint32 - Cm2R4 [4]byte - Cm2DomToken uint32 - Cm2DomMsgid *uint32 - Cm2ModCartptr *byte - Cm2ModConsidptr *byte - Cm2MsgCart [8]byte - Cm2MsgConsid [4]byte - Cm2R5 [12]byte -} - -const ( - CC_modify = 1 - CC_stop = 2 - CONSOLE_FORMAT_2 = 2 - CONSOLE_FORMAT_3 = 3 - CONSOLE_HRDCPY = 0x80000000 -) - -type OpenHow struct { - Flags uint64 - Mode uint64 - Resolve uint64 -} - -const SizeofOpenHow = 0x18 - -const ( - RESOLVE_CACHED = 0x20 - RESOLVE_BENEATH = 0x8 - RESOLVE_IN_ROOT = 0x10 - RESOLVE_NO_MAGICLINKS = 0x2 - RESOLVE_NO_SYMLINKS = 0x4 - RESOLVE_NO_XDEV = 0x1 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - _ [44]byte -} - -type SysvIpcPerm struct { - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode int32 -} - -type SysvShmDesc struct { - Perm SysvIpcPerm - _ [4]byte - Lpid int32 - Cpid int32 - Nattch uint32 - _ [4]byte - _ [4]byte - _ [4]byte - _ int32 - _ uint8 - _ uint8 - _ uint16 - _ *byte - Segsz uint64 - Atime Time_t - Dtime Time_t - Ctime Time_t -} - -type SysvShmDesc64 struct { - Perm SysvIpcPerm - _ [4]byte - Lpid int32 - Cpid int32 - Nattch uint32 - _ [4]byte - _ [4]byte - _ [4]byte - _ int32 - _ byte - _ uint8 - _ uint16 - _ *byte - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 -} diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go deleted file mode 100644 index 16f9056..0000000 --- a/vendor/golang.org/x/sys/windows/aliases.go +++ /dev/null @@ -1,12 +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. - -//go:build windows - -package windows - -import "syscall" - -type Errno = syscall.Errno -type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go deleted file mode 100644 index 3ca814f..0000000 --- a/vendor/golang.org/x/sys/windows/dll_windows.go +++ /dev/null @@ -1,415 +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 windows - -import ( - "sync" - "sync/atomic" - "syscall" - "unsafe" -) - -// We need to use LoadLibrary and GetProcAddress from the Go runtime, because -// the these symbols are loaded by the system linker and are required to -// dynamically load additional symbols. Note that in the Go runtime, these -// return syscall.Handle and syscall.Errno, but these are the same, in fact, -// as windows.Handle and windows.Errno, and we intend to keep these the same. - -//go:linkname syscall_loadlibrary syscall.loadlibrary -func syscall_loadlibrary(filename *uint16) (handle Handle, err Errno) - -//go:linkname syscall_getprocaddress syscall.getprocaddress -func syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno) - -// DLLError describes reasons for DLL load failures. -type DLLError struct { - Err error - ObjName string - Msg string -} - -func (e *DLLError) Error() string { return e.Msg } - -func (e *DLLError) Unwrap() error { return e.Err } - -// A DLL implements access to a single DLL. -type DLL struct { - Name string - Handle Handle -} - -// LoadDLL loads DLL file into memory. -// -// Warning: using LoadDLL without an absolute path name is subject to -// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL], -// or use [LoadLibraryEx] directly. -func LoadDLL(name string) (dll *DLL, err error) { - namep, err := UTF16PtrFromString(name) - if err != nil { - return nil, err - } - h, e := syscall_loadlibrary(namep) - if e != 0 { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to load " + name + ": " + e.Error(), - } - } - d := &DLL{ - Name: name, - Handle: h, - } - return d, nil -} - -// MustLoadDLL is like LoadDLL but panics if load operation fails. -func MustLoadDLL(name string) *DLL { - d, e := LoadDLL(name) - if e != nil { - panic(e) - } - return d -} - -// FindProc searches DLL d for procedure named name and returns *Proc -// if found. It returns an error if search fails. -func (d *DLL) FindProc(name string) (proc *Proc, err error) { - namep, err := BytePtrFromString(name) - if err != nil { - return nil, err - } - a, e := syscall_getprocaddress(d.Handle, namep) - if e != 0 { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), - } - } - p := &Proc{ - Dll: d, - Name: name, - addr: a, - } - return p, nil -} - -// MustFindProc is like FindProc but panics if search fails. -func (d *DLL) MustFindProc(name string) *Proc { - p, e := d.FindProc(name) - if e != nil { - panic(e) - } - return p -} - -// FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc -// if found. It returns an error if search fails. -func (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) { - a, e := GetProcAddressByOrdinal(d.Handle, ordinal) - name := "#" + itoa(int(ordinal)) - if e != nil { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), - } - } - p := &Proc{ - Dll: d, - Name: name, - addr: a, - } - return p, nil -} - -// MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails. -func (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc { - p, e := d.FindProcByOrdinal(ordinal) - if e != nil { - panic(e) - } - return p -} - -// Release unloads DLL d from memory. -func (d *DLL) Release() (err error) { - return FreeLibrary(d.Handle) -} - -// A Proc implements access to a procedure inside a DLL. -type Proc struct { - Dll *DLL - Name string - addr uintptr -} - -// Addr returns the address of the procedure represented by p. -// The return value can be passed to Syscall to run the procedure. -func (p *Proc) Addr() uintptr { - return p.addr -} - -//go:uintptrescapes - -// Call executes procedure p with arguments a. It will panic, if more than 15 arguments -// are supplied. -// -// The returned error is always non-nil, constructed from the result of GetLastError. -// Callers must inspect the primary return value to decide whether an error occurred -// (according to the semantics of the specific function being called) before consulting -// the error. The error will be guaranteed to contain windows.Errno. -func (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { - switch len(a) { - case 0: - return syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0) - case 1: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0) - case 2: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0) - case 3: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2]) - case 4: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0) - case 5: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0) - case 6: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5]) - case 7: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0) - case 8: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0) - case 9: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) - case 10: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0) - case 11: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0) - case 12: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]) - case 13: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0) - case 14: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0) - case 15: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]) - default: - panic("Call " + p.Name + " with too many arguments " + itoa(len(a)) + ".") - } -} - -// A LazyDLL implements access to a single DLL. -// It will delay the load of the DLL until the first -// call to its Handle method or to one of its -// LazyProc's Addr method. -type LazyDLL struct { - Name string - - // System determines whether the DLL must be loaded from the - // Windows System directory, bypassing the normal DLL search - // path. - System bool - - mu sync.Mutex - dll *DLL // non nil once DLL is loaded -} - -// Load loads DLL file d.Name into memory. It returns an error if fails. -// Load will not try to load DLL, if it is already loaded into memory. -func (d *LazyDLL) Load() error { - // Non-racy version of: - // if d.dll != nil { - if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil { - return nil - } - d.mu.Lock() - defer d.mu.Unlock() - if d.dll != nil { - return nil - } - - // kernel32.dll is special, since it's where LoadLibraryEx comes from. - // The kernel already special-cases its name, so it's always - // loaded from system32. - var dll *DLL - var err error - if d.Name == "kernel32.dll" { - dll, err = LoadDLL(d.Name) - } else { - dll, err = loadLibraryEx(d.Name, d.System) - } - if err != nil { - return err - } - - // Non-racy version of: - // d.dll = dll - atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll)) - return nil -} - -// mustLoad is like Load but panics if search fails. -func (d *LazyDLL) mustLoad() { - e := d.Load() - if e != nil { - panic(e) - } -} - -// Handle returns d's module handle. -func (d *LazyDLL) Handle() uintptr { - d.mustLoad() - return uintptr(d.dll.Handle) -} - -// NewProc returns a LazyProc for accessing the named procedure in the DLL d. -func (d *LazyDLL) NewProc(name string) *LazyProc { - return &LazyProc{l: d, Name: name} -} - -// NewLazyDLL creates new LazyDLL associated with DLL file. -// -// Warning: using NewLazyDLL without an absolute path name is subject to -// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL]. -func NewLazyDLL(name string) *LazyDLL { - return &LazyDLL{Name: name} -} - -// NewLazySystemDLL is like NewLazyDLL, but will only -// search Windows System directory for the DLL if name is -// a base name (like "advapi32.dll"). -func NewLazySystemDLL(name string) *LazyDLL { - return &LazyDLL{Name: name, System: true} -} - -// A LazyProc implements access to a procedure inside a LazyDLL. -// It delays the lookup until the Addr method is called. -type LazyProc struct { - Name string - - mu sync.Mutex - l *LazyDLL - proc *Proc -} - -// Find searches DLL for procedure named p.Name. It returns -// an error if search fails. Find will not search procedure, -// if it is already found and loaded into memory. -func (p *LazyProc) Find() error { - // Non-racy version of: - // if p.proc == nil { - if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil { - p.mu.Lock() - defer p.mu.Unlock() - if p.proc == nil { - e := p.l.Load() - if e != nil { - return e - } - proc, e := p.l.dll.FindProc(p.Name) - if e != nil { - return e - } - // Non-racy version of: - // p.proc = proc - atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc)) - } - } - return nil -} - -// mustFind is like Find but panics if search fails. -func (p *LazyProc) mustFind() { - e := p.Find() - if e != nil { - panic(e) - } -} - -// Addr returns the address of the procedure represented by p. -// The return value can be passed to Syscall to run the procedure. -// It will panic if the procedure cannot be found. -func (p *LazyProc) Addr() uintptr { - p.mustFind() - return p.proc.Addr() -} - -//go:uintptrescapes - -// Call executes procedure p with arguments a. It will panic, if more than 15 arguments -// are supplied. It will also panic if the procedure cannot be found. -// -// The returned error is always non-nil, constructed from the result of GetLastError. -// Callers must inspect the primary return value to decide whether an error occurred -// (according to the semantics of the specific function being called) before consulting -// the error. The error will be guaranteed to contain windows.Errno. -func (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { - p.mustFind() - return p.proc.Call(a...) -} - -var canDoSearchSystem32Once struct { - sync.Once - v bool -} - -func initCanDoSearchSystem32() { - // https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says: - // "Windows 7, Windows Server 2008 R2, Windows Vista, and Windows - // Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on - // systems that have KB2533623 installed. To determine whether the - // flags are available, use GetProcAddress to get the address of the - // AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories - // function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_* - // flags can be used with LoadLibraryEx." - canDoSearchSystem32Once.v = (modkernel32.NewProc("AddDllDirectory").Find() == nil) -} - -func canDoSearchSystem32() bool { - canDoSearchSystem32Once.Do(initCanDoSearchSystem32) - return canDoSearchSystem32Once.v -} - -func isBaseName(name string) bool { - for _, c := range name { - if c == ':' || c == '/' || c == '\\' { - return false - } - } - return true -} - -// loadLibraryEx wraps the Windows LoadLibraryEx function. -// -// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx -// -// If name is not an absolute path, LoadLibraryEx searches for the DLL -// in a variety of automatic locations unless constrained by flags. -// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx -func loadLibraryEx(name string, system bool) (*DLL, error) { - loadDLL := name - var flags uintptr - if system { - if canDoSearchSystem32() { - flags = LOAD_LIBRARY_SEARCH_SYSTEM32 - } else if isBaseName(name) { - // WindowsXP or unpatched Windows machine - // 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 - } - loadDLL = systemdir + "\\" + name - } - } - h, err := LoadLibraryEx(loadDLL, 0, flags) - if err != nil { - return nil, err - } - return &DLL{Name: name, Handle: h}, nil -} diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go deleted file mode 100644 index d4577a4..0000000 --- a/vendor/golang.org/x/sys/windows/env_windows.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2010 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. - -// Windows environment variables. - -package windows - -import ( - "syscall" - "unsafe" -) - -func Getenv(key string) (value string, found bool) { - return syscall.Getenv(key) -} - -func Setenv(key, value string) error { - return syscall.Setenv(key, value) -} - -func Clearenv() { - syscall.Clearenv() -} - -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) - size := unsafe.Sizeof(*block) - for *block != 0 { - // find NUL terminator - end := unsafe.Pointer(block) - for *(*uint16)(end) != 0 { - end = unsafe.Add(end, size) - } - - entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) - env = append(env, UTF16ToString(entry)) - block = (*uint16)(unsafe.Add(end, size)) - } - return env, nil -} - -func Unsetenv(key string) error { - return syscall.Unsetenv(key) -} diff --git a/vendor/golang.org/x/sys/windows/eventlog.go b/vendor/golang.org/x/sys/windows/eventlog.go deleted file mode 100644 index 6c36695..0000000 --- a/vendor/golang.org/x/sys/windows/eventlog.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows - -package windows - -const ( - EVENTLOG_SUCCESS = 0 - EVENTLOG_ERROR_TYPE = 1 - EVENTLOG_WARNING_TYPE = 2 - EVENTLOG_INFORMATION_TYPE = 4 - EVENTLOG_AUDIT_SUCCESS = 8 - EVENTLOG_AUDIT_FAILURE = 16 -) - -//sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW -//sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource -//sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go deleted file mode 100644 index 9cabbb6..0000000 --- a/vendor/golang.org/x/sys/windows/exec_windows.go +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Fork, exec, wait, etc. - -package windows - -import ( - errorspkg "errors" - "unsafe" -) - -// EscapeArg rewrites command line argument s as prescribed -// in http://msdn.microsoft.com/en-us/library/ms880421. -// This function returns "" (2 double quotes) if s is empty. -// Alternatively, these transformations are done: -// - every back slash (\) is doubled, but only if immediately -// followed by double quote ("); -// - every double quote (") is escaped by back slash (\); -// - finally, s is wrapped with double quotes (arg -> "arg"), -// but only if there is space or tab inside s. -func EscapeArg(s string) string { - if len(s) == 0 { - return `""` - } - n := len(s) - hasSpace := false - for i := 0; i < len(s); i++ { - switch s[i] { - case '"', '\\': - n++ - case ' ', '\t': - hasSpace = true - } - } - if hasSpace { - n += 2 // Reserve space for quotes. - } - if n == len(s) { - return s - } - - qs := make([]byte, n) - j := 0 - if hasSpace { - qs[j] = '"' - j++ - } - slashes := 0 - for i := 0; i < len(s); i++ { - switch s[i] { - default: - slashes = 0 - qs[j] = s[i] - case '\\': - slashes++ - qs[j] = s[i] - case '"': - for ; slashes > 0; slashes-- { - qs[j] = '\\' - j++ - } - qs[j] = '\\' - j++ - qs[j] = s[i] - } - j++ - } - if hasSpace { - for ; slashes > 0; slashes-- { - qs[j] = '\\' - j++ - } - qs[j] = '"' - j++ - } - return string(qs[:j]) -} - -// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line, -// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument, -// or any program that uses CommandLineToArgv. -func ComposeCommandLine(args []string) string { - if len(args) == 0 { - return "" - } - - // Per https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw: - // “This function accepts command lines that contain a program name; the - // program name can be enclosed in quotation marks or not.” - // - // Unfortunately, it provides no means of escaping interior quotation marks - // within that program name, and we have no way to report them here. - prog := args[0] - mustQuote := len(prog) == 0 - for i := 0; i < len(prog); i++ { - c := prog[i] - if c <= ' ' || (c == '"' && i == 0) { - // Force quotes for not only the ASCII space and tab as described in the - // MSDN article, but also ASCII control characters. - // The documentation for CommandLineToArgvW doesn't say what happens when - // the first argument is not a valid program name, but it empirically - // seems to drop unquoted control characters. - mustQuote = true - break - } - } - var commandLine []byte - if mustQuote { - commandLine = make([]byte, 0, len(prog)+2) - commandLine = append(commandLine, '"') - for i := 0; i < len(prog); i++ { - c := prog[i] - if c == '"' { - // This quote would interfere with our surrounding quotes. - // We have no way to report an error, so just strip out - // the offending character instead. - continue - } - commandLine = append(commandLine, c) - } - commandLine = append(commandLine, '"') - } else { - if len(args) == 1 { - // args[0] is a valid command line representing itself. - // No need to allocate a new slice or string for it. - return prog - } - commandLine = []byte(prog) - } - - for _, arg := range args[1:] { - commandLine = append(commandLine, ' ') - // TODO(bcmills): since we're already appending to a slice, it would be nice - // to avoid the intermediate allocations of EscapeArg. - // Perhaps we can factor out an appendEscapedArg function. - commandLine = append(commandLine, EscapeArg(arg)...) - } - return string(commandLine) -} - -// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv, -// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that -// command lines are passed around. -// DecomposeCommandLine returns an error if commandLine contains NUL. -func DecomposeCommandLine(commandLine string) ([]string, error) { - if len(commandLine) == 0 { - return []string{}, nil - } - utf16CommandLine, err := UTF16FromString(commandLine) - if err != nil { - return nil, errorspkg.New("string with NUL passed to DecomposeCommandLine") - } - var argc int32 - argv, err := commandLineToArgv(&utf16CommandLine[0], &argc) - if err != nil { - return nil, err - } - defer LocalFree(Handle(unsafe.Pointer(argv))) - - var args []string - for _, p := range unsafe.Slice(argv, argc) { - args = append(args, UTF16PtrToString(p)) - } - return args, nil -} - -// CommandLineToArgv parses a Unicode command line string and sets -// argc to the number of parsed arguments. -// -// The returned memory should be freed using a single call to LocalFree. -// -// Note that although the return type of CommandLineToArgv indicates 8192 -// entries of up to 8192 characters each, the actual count of parsed arguments -// may exceed 8192, and the documentation for CommandLineToArgvW does not mention -// any bound on the lengths of the individual argument strings. -// (See https://go.dev/issue/63236.) -func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { - argp, err := commandLineToArgv(cmd, argc) - argv = (*[8192]*[8192]uint16)(unsafe.Pointer(argp)) - return argv, err -} - -func CloseOnExec(fd Handle) { - SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) -} - -// FullPath retrieves the full path of the specified file. -func FullPath(name string) (path string, err error) { - p, err := UTF16PtrFromString(name) - if err != nil { - return "", err - } - n := uint32(100) - for { - buf := make([]uint16, n) - n, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil) - if err != nil { - return "", err - } - if n <= uint32(len(buf)) { - return UTF16ToString(buf[:n]), nil - } - } -} - -// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes. -func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) { - var size uintptr - err := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size) - if err != ERROR_INSUFFICIENT_BUFFER { - if err == nil { - return nil, errorspkg.New("unable to query buffer size from InitializeProcThreadAttributeList") - } - return nil, err - } - alloc, err := LocalAlloc(LMEM_FIXED, uint32(size)) - if err != nil { - return nil, err - } - // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. - al := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))} - err = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size) - if err != nil { - return nil, err - } - return al, err -} - -// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. -func (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error { - al.pointers = append(al.pointers, value) - return updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil) -} - -// Delete frees ProcThreadAttributeList's resources. -func (al *ProcThreadAttributeListContainer) Delete() { - deleteProcThreadAttributeList(al.data) - LocalFree(Handle(unsafe.Pointer(al.data))) - al.data = nil - al.pointers = nil -} - -// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx. -func (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList { - return al.data -} diff --git a/vendor/golang.org/x/sys/windows/memory_windows.go b/vendor/golang.org/x/sys/windows/memory_windows.go deleted file mode 100644 index 6dc0920..0000000 --- a/vendor/golang.org/x/sys/windows/memory_windows.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -const ( - MEM_COMMIT = 0x00001000 - MEM_RESERVE = 0x00002000 - MEM_DECOMMIT = 0x00004000 - MEM_RELEASE = 0x00008000 - MEM_RESET = 0x00080000 - MEM_TOP_DOWN = 0x00100000 - MEM_WRITE_WATCH = 0x00200000 - MEM_PHYSICAL = 0x00400000 - MEM_RESET_UNDO = 0x01000000 - MEM_LARGE_PAGES = 0x20000000 - - PAGE_NOACCESS = 0x00000001 - PAGE_READONLY = 0x00000002 - PAGE_READWRITE = 0x00000004 - PAGE_WRITECOPY = 0x00000008 - PAGE_EXECUTE = 0x00000010 - PAGE_EXECUTE_READ = 0x00000020 - PAGE_EXECUTE_READWRITE = 0x00000040 - PAGE_EXECUTE_WRITECOPY = 0x00000080 - PAGE_GUARD = 0x00000100 - PAGE_NOCACHE = 0x00000200 - PAGE_WRITECOMBINE = 0x00000400 - PAGE_TARGETS_INVALID = 0x40000000 - PAGE_TARGETS_NO_UPDATE = 0x40000000 - - QUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002 - QUOTA_LIMITS_HARDWS_MIN_ENABLE = 0x00000001 - QUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008 - QUOTA_LIMITS_HARDWS_MAX_ENABLE = 0x00000004 -) - -type MemoryBasicInformation struct { - BaseAddress uintptr - AllocationBase uintptr - AllocationProtect uint32 - PartitionId uint16 - RegionSize uintptr - State uint32 - Protect uint32 - Type uint32 -} 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 58e0188..0000000 --- a/vendor/golang.org/x/sys/windows/mkerrors.bash +++ /dev/null @@ -1,70 +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; } -ntstatus="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)" -[[ -n $ntstatus ]] || { echo "Unable to find ntstatus.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" - - while read -r line; do - [[ $line =~ ^#define\ (STATUS_[^\s]+)\ +\(\(NTSTATUS\)((0x)?[0-9a-fA-F]+)L?\) ]] || continue - echo "${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}" - done < "$ntstatus" - - 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 ab8924e..0000000 --- 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 deleted file mode 100644 index dbcdb09..0000000 --- a/vendor/golang.org/x/sys/windows/mksyscall.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build generate - -package windows - -//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go diff --git a/vendor/golang.org/x/sys/windows/race.go b/vendor/golang.org/x/sys/windows/race.go deleted file mode 100644 index 0f1bdc3..0000000 --- a/vendor/golang.org/x/sys/windows/race.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows && race - -package windows - -import ( - "runtime" - "unsafe" -) - -const raceenabled = true - -func raceAcquire(addr unsafe.Pointer) { - runtime.RaceAcquire(addr) -} - -func raceReleaseMerge(addr unsafe.Pointer) { - runtime.RaceReleaseMerge(addr) -} - -func raceReadRange(addr unsafe.Pointer, len int) { - runtime.RaceReadRange(addr, len) -} - -func raceWriteRange(addr unsafe.Pointer, len int) { - runtime.RaceWriteRange(addr, len) -} diff --git a/vendor/golang.org/x/sys/windows/race0.go b/vendor/golang.org/x/sys/windows/race0.go deleted file mode 100644 index 0c78da7..0000000 --- a/vendor/golang.org/x/sys/windows/race0.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows && !race - -package windows - -import ( - "unsafe" -) - -const raceenabled = false - -func raceAcquire(addr unsafe.Pointer) { -} - -func raceReleaseMerge(addr unsafe.Pointer) { -} - -func raceReadRange(addr unsafe.Pointer, len int) { -} - -func raceWriteRange(addr unsafe.Pointer, len int) { -} diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go deleted file mode 100644 index a8b0364..0000000 --- a/vendor/golang.org/x/sys/windows/security_windows.go +++ /dev/null @@ -1,1497 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package windows - -import ( - "syscall" - "unsafe" -) - -const ( - NameUnknown = 0 - NameFullyQualifiedDN = 1 - NameSamCompatible = 2 - NameDisplay = 3 - NameUniqueId = 6 - NameCanonical = 7 - NameUserPrincipal = 8 - NameCanonicalEx = 9 - NameServicePrincipal = 10 - NameDnsDomain = 12 -) - -// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. -// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx -//sys TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW -//sys GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW - -// TranslateAccountName converts a directory service -// object name from one format to another. -func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) { - u, e := UTF16PtrFromString(username) - if e != nil { - return "", e - } - n := uint32(50) - for { - b := make([]uint16, n) - e = TranslateName(u, from, to, &b[0], &n) - if e == nil { - return UTF16ToString(b[:n]), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", e - } - if n <= uint32(len(b)) { - return "", e - } - } -} - -const ( - // do not reorder - NetSetupUnknownStatus = iota - NetSetupUnjoined - NetSetupWorkgroupName - NetSetupDomainName -) - -type UserInfo10 struct { - Name *uint16 - Comment *uint16 - UsrComment *uint16 - FullName *uint16 -} - -//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo -//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation -//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree -//sys NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum - -const ( - // do not reorder - SidTypeUser = 1 + iota - SidTypeGroup - SidTypeDomain - SidTypeAlias - SidTypeWellKnownGroup - SidTypeDeletedAccount - SidTypeInvalid - SidTypeUnknown - SidTypeComputer - SidTypeLabel -) - -type SidIdentifierAuthority struct { - Value [6]byte -} - -var ( - SECURITY_NULL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}} - SECURITY_WORLD_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}} - SECURITY_LOCAL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}} - SECURITY_CREATOR_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}} - SECURITY_NON_UNIQUE_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}} - SECURITY_NT_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}} - SECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}} -) - -const ( - SECURITY_NULL_RID = 0 - SECURITY_WORLD_RID = 0 - SECURITY_LOCAL_RID = 0 - SECURITY_CREATOR_OWNER_RID = 0 - SECURITY_CREATOR_GROUP_RID = 1 - SECURITY_DIALUP_RID = 1 - SECURITY_NETWORK_RID = 2 - SECURITY_BATCH_RID = 3 - SECURITY_INTERACTIVE_RID = 4 - SECURITY_LOGON_IDS_RID = 5 - SECURITY_SERVICE_RID = 6 - SECURITY_LOCAL_SYSTEM_RID = 18 - SECURITY_BUILTIN_DOMAIN_RID = 32 - SECURITY_PRINCIPAL_SELF_RID = 10 - SECURITY_CREATOR_OWNER_SERVER_RID = 0x2 - SECURITY_CREATOR_GROUP_SERVER_RID = 0x3 - SECURITY_LOGON_IDS_RID_COUNT = 0x3 - SECURITY_ANONYMOUS_LOGON_RID = 0x7 - SECURITY_PROXY_RID = 0x8 - SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9 - SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID - SECURITY_AUTHENTICATED_USER_RID = 0xb - SECURITY_RESTRICTED_CODE_RID = 0xc - SECURITY_NT_NON_UNIQUE_RID = 0x15 -) - -// Predefined domain-relative RIDs for local groups. -// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx -const ( - DOMAIN_ALIAS_RID_ADMINS = 0x220 - DOMAIN_ALIAS_RID_USERS = 0x221 - DOMAIN_ALIAS_RID_GUESTS = 0x222 - DOMAIN_ALIAS_RID_POWER_USERS = 0x223 - DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x224 - DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x225 - DOMAIN_ALIAS_RID_PRINT_OPS = 0x226 - DOMAIN_ALIAS_RID_BACKUP_OPS = 0x227 - DOMAIN_ALIAS_RID_REPLICATOR = 0x228 - DOMAIN_ALIAS_RID_RAS_SERVERS = 0x229 - DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x22a - DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b - DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c - DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d - DOMAIN_ALIAS_RID_MONITORING_USERS = 0x22e - DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f - DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230 - DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231 - DOMAIN_ALIAS_RID_DCOM_USERS = 0x232 - DOMAIN_ALIAS_RID_IUSERS = 0x238 - DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 0x239 - DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 0x23b - DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c - DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 0x23d - DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP = 0x23e -) - -//sys LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW -//sys LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW -//sys ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW -//sys ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW -//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. -func StringToSid(s string) (*SID, error) { - var sid *SID - p, e := UTF16PtrFromString(s) - if e != nil { - return nil, e - } - e = ConvertStringSidToSid(p, &sid) - if e != nil { - return nil, e - } - defer LocalFree((Handle)(unsafe.Pointer(sid))) - return sid.Copy() -} - -// 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) { - if len(account) == 0 { - return nil, "", 0, syscall.EINVAL - } - acc, e := UTF16PtrFromString(account) - if e != nil { - return nil, "", 0, e - } - var sys *uint16 - if len(system) > 0 { - sys, e = UTF16PtrFromString(system) - if e != nil { - return nil, "", 0, e - } - } - n := uint32(50) - dn := uint32(50) - for { - b := make([]byte, n) - db := make([]uint16, dn) - sid = (*SID)(unsafe.Pointer(&b[0])) - e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType) - if e == nil { - return sid, UTF16ToString(db), accType, nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return nil, "", 0, e - } - if n <= uint32(len(b)) { - return nil, "", 0, e - } - } -} - -// String converts SID to a string format suitable for display, storage, or transmission. -func (sid *SID) String() string { - var s *uint16 - e := ConvertSidToStringSid(sid, &s) - if e != nil { - return "" - } - defer LocalFree((Handle)(unsafe.Pointer(s))) - return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]) -} - -// 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. -func (sid *SID) Copy() (*SID, error) { - b := make([]byte, sid.Len()) - sid2 := (*SID)(unsafe.Pointer(&b[0])) - e := CopySid(uint32(len(b)), sid2, sid) - if e != nil { - return nil, e - } - 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. -// System specify target computer to search for. -func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) { - var sys *uint16 - if len(system) > 0 { - sys, err = UTF16PtrFromString(system) - if err != nil { - return "", "", 0, err - } - } - n := uint32(50) - dn := uint32(50) - for { - b := make([]uint16, n) - db := make([]uint16, dn) - e := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType) - if e == nil { - return UTF16ToString(b), UTF16ToString(db), accType, nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", "", 0, e - } - if n <= uint32(len(b)) { - return "", "", 0, e - } - } -} - -// 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 - TOKEN_DUPLICATE - TOKEN_IMPERSONATE - TOKEN_QUERY - TOKEN_QUERY_SOURCE - TOKEN_ADJUST_PRIVILEGES - TOKEN_ADJUST_GROUPS - TOKEN_ADJUST_DEFAULT - TOKEN_ADJUST_SESSIONID - - TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | - TOKEN_ASSIGN_PRIMARY | - TOKEN_DUPLICATE | - TOKEN_IMPERSONATE | - TOKEN_QUERY | - TOKEN_QUERY_SOURCE | - TOKEN_ADJUST_PRIVILEGES | - TOKEN_ADJUST_GROUPS | - TOKEN_ADJUST_DEFAULT | - TOKEN_ADJUST_SESSIONID - TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY - TOKEN_WRITE = STANDARD_RIGHTS_WRITE | - TOKEN_ADJUST_PRIVILEGES | - TOKEN_ADJUST_GROUPS | - TOKEN_ADJUST_DEFAULT - TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE -) - -const ( - // do not reorder - TokenUser = 1 + iota - TokenGroups - TokenPrivileges - TokenOwner - TokenPrimaryGroup - TokenDefaultDacl - TokenSource - TokenType - TokenImpersonationLevel - TokenStatistics - TokenRestrictedSids - TokenSessionId - TokenGroupsAndPrivileges - TokenSessionReference - TokenSandBoxInert - TokenAuditPolicy - TokenOrigin - TokenElevationType - TokenLinkedToken - TokenElevation - TokenHasRestrictions - TokenAccessInformation - TokenVirtualizationAllowed - TokenVirtualizationEnabled - TokenIntegrityLevel - TokenUIAccess - TokenMandatoryPolicy - TokenLogonSid - 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 -} - -type Tokenuser struct { - User SIDAndAttributes -} - -type Tokenprimarygroup struct { - PrimaryGroup *SID -} - -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) -} - -// Authorization Functions -//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership -//sys isTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted -//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 GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW -//sys getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW -//sys getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetWindowsDirectoryW -//sys getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemWindowsDirectoryW - -// An access token contains the security information for a logon session. -// The system creates an access token when a user logs on, and every -// process executed on behalf of the user has a copy of the token. -// The token identifies the user, the user's groups, and the user's -// privileges. The system uses the token to control access to securable -// objects and to control the ability of the user to perform various -// system-related operations on the local computer. -type Token Handle - -// OpenCurrentProcessToken opens an access token associated with current -// process with TOKEN_QUERY access. It is a real token that needs to be closed. -// -// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...) -// with the desired access instead, or use GetCurrentProcessToken for a -// TOKEN_QUERY token. -func OpenCurrentProcessToken() (Token, error) { - var token Token - err := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token) - return token, err -} - -// 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)) -} - -// getInfo retrieves a specified type of information about an access token. -func (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) { - n := uint32(initSize) - for { - b := make([]byte, n) - e := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n) - if e == nil { - return unsafe.Pointer(&b[0]), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return nil, e - } - if n <= uint32(len(b)) { - return nil, e - } - } -} - -// GetTokenUser retrieves access token t user account information. -func (t Token) GetTokenUser() (*Tokenuser, error) { - i, e := t.getInfo(TokenUser, 50) - if e != nil { - return nil, e - } - return (*Tokenuser)(i), nil -} - -// GetTokenGroups retrieves group accounts associated with access token t. -func (t Token) GetTokenGroups() (*Tokengroups, error) { - i, e := t.getInfo(TokenGroups, 50) - if e != nil { - return nil, e - } - return (*Tokengroups)(i), nil -} - -// GetTokenPrimaryGroup retrieves access token t primary group information. -// A pointer to a SID structure representing a group that will become -// the primary group of any objects created by a process using this access token. -func (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) { - i, e := t.getInfo(TokenPrimaryGroup, 50) - if e != nil { - return nil, e - } - return (*Tokenprimarygroup)(i), nil -} - -// GetUserProfileDirectory retrieves path to the -// root directory of the access token t user's profile. -func (t Token) GetUserProfileDirectory() (string, error) { - n := uint32(100) - for { - b := make([]uint16, n) - e := GetUserProfileDirectory(t, &b[0], &n) - if e == nil { - return UTF16ToString(b), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", e - } - if n <= uint32(len(b)) { - return "", e - } - } -} - -// 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 the 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 - } -} - -// GetWindowsDirectory retrieves the path to current location of the Windows -// directory, which is typically, though not always, `C:\Windows`. This may -// be a private user directory in the case that the application is running -// under a terminal server. -func GetWindowsDirectory() (string, error) { - n := uint32(MAX_PATH) - for { - b := make([]uint16, n) - l, e := getWindowsDirectory(&b[0], n) - if e != nil { - return "", e - } - if l <= n { - return UTF16ToString(b[:l]), nil - } - n = l - } -} - -// GetSystemWindowsDirectory retrieves the path to current location of the -// Windows directory, which is typically, though not always, `C:\Windows`. -func GetSystemWindowsDirectory() (string, error) { - n := uint32(MAX_PATH) - for { - b := make([]uint16, n) - l, e := getSystemWindowsDirectory(&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 - if e := checkTokenMembership(t, sid, &b); e != nil { - return false, e - } - return b != 0, nil -} - -// IsRestricted reports whether the access token t is a restricted token. -func (t Token) IsRestricted() (isRestricted bool, err error) { - isRestricted, err = isTokenRestricted(t) - if !isRestricted && err == syscall.EINVAL { - // If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token. - err = nil - } - return -} - -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 -//sys WTSGetActiveConsoleSessionId() (sessionID uint32) - -type ACL struct { - aclRevision byte - sbz1 byte - aclSize uint16 - AceCount uint16 - sbz2 uint16 -} - -type SECURITY_DESCRIPTOR struct { - revision byte - sbz1 byte - control SECURITY_DESCRIPTOR_CONTROL - owner *SID - group *SID - sacl *ACL - dacl *ACL -} - -type SECURITY_QUALITY_OF_SERVICE struct { - Length uint32 - ImpersonationLevel uint32 - ContextTrackingMode byte - EffectiveOnly byte -} - -// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE. -const ( - SECURITY_STATIC_TRACKING = 0 - SECURITY_DYNAMIC_TRACKING = 1 -) - -type SecurityAttributes struct { - Length uint32 - SecurityDescriptor *SECURITY_DESCRIPTOR - InheritHandle uint32 -} - -type SE_OBJECT_TYPE uint32 - -// Constants for type SE_OBJECT_TYPE -const ( - SE_UNKNOWN_OBJECT_TYPE = 0 - SE_FILE_OBJECT = 1 - SE_SERVICE = 2 - SE_PRINTER = 3 - SE_REGISTRY_KEY = 4 - SE_LMSHARE = 5 - SE_KERNEL_OBJECT = 6 - SE_WINDOW_OBJECT = 7 - SE_DS_OBJECT = 8 - SE_DS_OBJECT_ALL = 9 - SE_PROVIDER_DEFINED_OBJECT = 10 - SE_WMIGUID_OBJECT = 11 - SE_REGISTRY_WOW64_32KEY = 12 - SE_REGISTRY_WOW64_64KEY = 13 -) - -type SECURITY_INFORMATION uint32 - -// Constants for type SECURITY_INFORMATION -const ( - OWNER_SECURITY_INFORMATION = 0x00000001 - GROUP_SECURITY_INFORMATION = 0x00000002 - DACL_SECURITY_INFORMATION = 0x00000004 - SACL_SECURITY_INFORMATION = 0x00000008 - LABEL_SECURITY_INFORMATION = 0x00000010 - ATTRIBUTE_SECURITY_INFORMATION = 0x00000020 - SCOPE_SECURITY_INFORMATION = 0x00000040 - BACKUP_SECURITY_INFORMATION = 0x00010000 - PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 - PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 - UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 - UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 -) - -type SECURITY_DESCRIPTOR_CONTROL uint16 - -// Constants for type SECURITY_DESCRIPTOR_CONTROL -const ( - SE_OWNER_DEFAULTED = 0x0001 - SE_GROUP_DEFAULTED = 0x0002 - SE_DACL_PRESENT = 0x0004 - SE_DACL_DEFAULTED = 0x0008 - SE_SACL_PRESENT = 0x0010 - SE_SACL_DEFAULTED = 0x0020 - SE_DACL_AUTO_INHERIT_REQ = 0x0100 - SE_SACL_AUTO_INHERIT_REQ = 0x0200 - SE_DACL_AUTO_INHERITED = 0x0400 - SE_SACL_AUTO_INHERITED = 0x0800 - SE_DACL_PROTECTED = 0x1000 - SE_SACL_PROTECTED = 0x2000 - SE_RM_CONTROL_VALID = 0x4000 - SE_SELF_RELATIVE = 0x8000 -) - -type ACCESS_MASK uint32 - -// Constants for type ACCESS_MASK -const ( - DELETE = 0x00010000 - READ_CONTROL = 0x00020000 - WRITE_DAC = 0x00040000 - WRITE_OWNER = 0x00080000 - SYNCHRONIZE = 0x00100000 - STANDARD_RIGHTS_REQUIRED = 0x000F0000 - STANDARD_RIGHTS_READ = READ_CONTROL - STANDARD_RIGHTS_WRITE = READ_CONTROL - STANDARD_RIGHTS_EXECUTE = READ_CONTROL - STANDARD_RIGHTS_ALL = 0x001F0000 - SPECIFIC_RIGHTS_ALL = 0x0000FFFF - ACCESS_SYSTEM_SECURITY = 0x01000000 - MAXIMUM_ALLOWED = 0x02000000 - GENERIC_READ = 0x80000000 - GENERIC_WRITE = 0x40000000 - GENERIC_EXECUTE = 0x20000000 - GENERIC_ALL = 0x10000000 -) - -type ACCESS_MODE uint32 - -// Constants for type ACCESS_MODE -const ( - NOT_USED_ACCESS = 0 - GRANT_ACCESS = 1 - SET_ACCESS = 2 - DENY_ACCESS = 3 - REVOKE_ACCESS = 4 - SET_AUDIT_SUCCESS = 5 - SET_AUDIT_FAILURE = 6 -) - -// Constants for AceFlags and Inheritance fields -const ( - NO_INHERITANCE = 0x0 - SUB_OBJECTS_ONLY_INHERIT = 0x1 - SUB_CONTAINERS_ONLY_INHERIT = 0x2 - SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3 - INHERIT_NO_PROPAGATE = 0x4 - INHERIT_ONLY = 0x8 - INHERITED_ACCESS_ENTRY = 0x10 - INHERITED_PARENT = 0x10000000 - INHERITED_GRANDPARENT = 0x20000000 - OBJECT_INHERIT_ACE = 0x1 - CONTAINER_INHERIT_ACE = 0x2 - NO_PROPAGATE_INHERIT_ACE = 0x4 - INHERIT_ONLY_ACE = 0x8 - INHERITED_ACE = 0x10 - VALID_INHERIT_FLAGS = 0x1F -) - -type MULTIPLE_TRUSTEE_OPERATION uint32 - -// Constants for MULTIPLE_TRUSTEE_OPERATION -const ( - NO_MULTIPLE_TRUSTEE = 0 - TRUSTEE_IS_IMPERSONATE = 1 -) - -type TRUSTEE_FORM uint32 - -// Constants for TRUSTEE_FORM -const ( - TRUSTEE_IS_SID = 0 - TRUSTEE_IS_NAME = 1 - TRUSTEE_BAD_FORM = 2 - TRUSTEE_IS_OBJECTS_AND_SID = 3 - TRUSTEE_IS_OBJECTS_AND_NAME = 4 -) - -type TRUSTEE_TYPE uint32 - -// Constants for TRUSTEE_TYPE -const ( - TRUSTEE_IS_UNKNOWN = 0 - TRUSTEE_IS_USER = 1 - TRUSTEE_IS_GROUP = 2 - TRUSTEE_IS_DOMAIN = 3 - TRUSTEE_IS_ALIAS = 4 - TRUSTEE_IS_WELL_KNOWN_GROUP = 5 - TRUSTEE_IS_DELETED = 6 - TRUSTEE_IS_INVALID = 7 - TRUSTEE_IS_COMPUTER = 8 -) - -// Constants for ObjectsPresent field -const ( - ACE_OBJECT_TYPE_PRESENT = 0x1 - ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 -) - -type EXPLICIT_ACCESS struct { - AccessPermissions ACCESS_MASK - AccessMode ACCESS_MODE - Inheritance uint32 - Trustee TRUSTEE -} - -// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header -type ACE_HEADER struct { - AceType uint8 - AceFlags uint8 - AceSize uint16 -} - -// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace -type ACCESS_ALLOWED_ACE struct { - Header ACE_HEADER - Mask ACCESS_MASK - SidStart uint32 -} - -const ( - // Constants for AceType - // https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header - ACCESS_ALLOWED_ACE_TYPE = 0 - ACCESS_DENIED_ACE_TYPE = 1 -) - -// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions. -type TrusteeValue uintptr - -func TrusteeValueFromString(str string) TrusteeValue { - return TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str))) -} -func TrusteeValueFromSID(sid *SID) TrusteeValue { - return TrusteeValue(unsafe.Pointer(sid)) -} -func TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue { - return TrusteeValue(unsafe.Pointer(objectsAndSid)) -} -func TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue { - return TrusteeValue(unsafe.Pointer(objectsAndName)) -} - -type TRUSTEE struct { - MultipleTrustee *TRUSTEE - MultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION - TrusteeForm TRUSTEE_FORM - TrusteeType TRUSTEE_TYPE - TrusteeValue TrusteeValue -} - -type OBJECTS_AND_SID struct { - ObjectsPresent uint32 - ObjectTypeGuid GUID - InheritedObjectTypeGuid GUID - Sid *SID -} - -type OBJECTS_AND_NAME struct { - ObjectsPresent uint32 - ObjectType SE_OBJECT_TYPE - ObjectTypeName *uint16 - InheritedObjectTypeName *uint16 - Name *uint16 -} - -//sys getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo -//sys SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo -//sys getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW -//sys SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW -//sys SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity - -//sys buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW -//sys initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor - -//sys getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl -//sys getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl -//sys getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl -//sys getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner -//sys getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup -//sys getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength -//sys getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl -//sys isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor - -//sys setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl -//sys setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl -//sys setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl -//sys setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner -//sys setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup -//sys setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl - -//sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW -//sys convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW - -//sys makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD -//sys makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD - -//sys setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW -//sys GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) = advapi32.GetAce - -// Control returns the security descriptor control bits. -func (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) { - err = getSecurityDescriptorControl(sd, &control, &revision) - return -} - -// SetControl sets the security descriptor control bits. -func (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error { - return setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet) -} - -// RMControl returns the security descriptor resource manager control bits. -func (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) { - err = getSecurityDescriptorRMControl(sd, &control) - return -} - -// SetRMControl sets the security descriptor resource manager control bits. -func (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) { - setSecurityDescriptorRMControl(sd, &rmControl) -} - -// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil -// if a DACL exists but is an "empty DACL", meaning fully permissive. If the DACL does not exist, err returns -// ERROR_OBJECT_NOT_FOUND. -func (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) { - var present bool - err = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted) - if !present { - err = ERROR_OBJECT_NOT_FOUND - } - return -} - -// SetDACL sets the absolute security descriptor DACL. -func (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error { - return setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted) -} - -// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil -// if a SACL exists but is an "empty SACL", meaning fully permissive. If the SACL does not exist, err returns -// ERROR_OBJECT_NOT_FOUND. -func (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) { - var present bool - err = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted) - if !present { - err = ERROR_OBJECT_NOT_FOUND - } - return -} - -// SetSACL sets the absolute security descriptor SACL. -func (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error { - return setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted) -} - -// Owner returns the security descriptor owner and whether it was defaulted. -func (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) { - err = getSecurityDescriptorOwner(sd, &owner, &defaulted) - return -} - -// SetOwner sets the absolute security descriptor owner. -func (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error { - return setSecurityDescriptorOwner(absoluteSD, owner, defaulted) -} - -// Group returns the security descriptor group and whether it was defaulted. -func (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) { - err = getSecurityDescriptorGroup(sd, &group, &defaulted) - return -} - -// SetGroup sets the absolute security descriptor owner. -func (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error { - return setSecurityDescriptorGroup(absoluteSD, group, defaulted) -} - -// Length returns the length of the security descriptor. -func (sd *SECURITY_DESCRIPTOR) Length() uint32 { - return getSecurityDescriptorLength(sd) -} - -// IsValid returns whether the security descriptor is valid. -func (sd *SECURITY_DESCRIPTOR) IsValid() bool { - return isValidSecurityDescriptor(sd) -} - -// String returns the SDDL form of the security descriptor, with a function signature that can be -// used with %v formatting directives. -func (sd *SECURITY_DESCRIPTOR) String() string { - var sddl *uint16 - err := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil) - if err != nil { - return "" - } - defer LocalFree(Handle(unsafe.Pointer(sddl))) - return UTF16PtrToString(sddl) -} - -// ToAbsolute converts a self-relative security descriptor into an absolute one. -func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) { - control, _, err := selfRelativeSD.Control() - if err != nil { - return - } - if control&SE_SELF_RELATIVE == 0 { - err = ERROR_INVALID_PARAMETER - return - } - var absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32 - err = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize, - nil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize) - switch err { - case ERROR_INSUFFICIENT_BUFFER: - case nil: - // makeAbsoluteSD is expected to fail, but it succeeds. - return nil, ERROR_INTERNAL_ERROR - default: - return nil, err - } - if absoluteSDSize > 0 { - absoluteSD = new(SECURITY_DESCRIPTOR) - if unsafe.Sizeof(*absoluteSD) < uintptr(absoluteSDSize) { - panic("sizeof(SECURITY_DESCRIPTOR) too small") - } - } - var ( - dacl *ACL - sacl *ACL - owner *SID - group *SID - ) - if daclSize > 0 { - dacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, daclSize)))) - } - if saclSize > 0 { - sacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, saclSize)))) - } - if ownerSize > 0 { - owner = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, ownerSize)))) - } - if groupSize > 0 { - group = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, groupSize)))) - } - // We call into Windows via makeAbsoluteSD, which sets up - // pointers within absoluteSD that point to other chunks of memory - // we pass into makeAbsoluteSD, and that happens outside the view of the GC. - // We therefore take some care here to then verify the pointers are as we expect - // and set them explicitly in view of the GC. See https://go.dev/issue/73199. - // TODO: consider weak pointers once Go 1.24 is appropriate. See suggestion in https://go.dev/cl/663575. - err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, - dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) - if err != nil { - // Don't return absoluteSD, which might be partially initialized. - return nil, err - } - // Before using any fields, verify absoluteSD is in the format we expect according to Windows. - // See https://learn.microsoft.com/en-us/windows/win32/secauthz/absolute-and-self-relative-security-descriptors - absControl, _, err := absoluteSD.Control() - if err != nil { - panic("absoluteSD: " + err.Error()) - } - if absControl&SE_SELF_RELATIVE != 0 { - panic("absoluteSD not in absolute format") - } - if absoluteSD.dacl != dacl { - panic("dacl pointer mismatch") - } - if absoluteSD.sacl != sacl { - panic("sacl pointer mismatch") - } - if absoluteSD.owner != owner { - panic("owner pointer mismatch") - } - if absoluteSD.group != group { - panic("group pointer mismatch") - } - absoluteSD.dacl = dacl - absoluteSD.sacl = sacl - absoluteSD.owner = owner - absoluteSD.group = group - - return -} - -// ToSelfRelative converts an absolute security descriptor into a self-relative one. -func (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) { - control, _, err := absoluteSD.Control() - if err != nil { - return - } - if control&SE_SELF_RELATIVE != 0 { - err = ERROR_INVALID_PARAMETER - return - } - var selfRelativeSDSize uint32 - err = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize) - switch err { - case ERROR_INSUFFICIENT_BUFFER: - case nil: - // makeSelfRelativeSD is expected to fail, but it succeeds. - return nil, ERROR_INTERNAL_ERROR - default: - return nil, err - } - if selfRelativeSDSize > 0 { - selfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0])) - } - err = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize) - return -} - -func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR { - sdLen := int(selfRelativeSD.Length()) - const min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{})) - if sdLen < min { - sdLen = min - } - - src := unsafe.Slice((*byte)(unsafe.Pointer(selfRelativeSD)), sdLen) - // SECURITY_DESCRIPTOR has pointers in it, which means checkptr expects for it to - // be aligned properly. When we're copying a Windows-allocated struct to a - // Go-allocated one, make sure that the Go allocation is aligned to the - // pointer size. - const psize = int(unsafe.Sizeof(uintptr(0))) - alloc := make([]uintptr, (sdLen+psize-1)/psize) - dst := unsafe.Slice((*byte)(unsafe.Pointer(&alloc[0])), sdLen) - copy(dst, src) - return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0])) -} - -// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a -// self-relative security descriptor object allocated on the Go heap. -func SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) { - var winHeapSD *SECURITY_DESCRIPTOR - err = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) - return winHeapSD.copySelfRelativeSecurityDescriptor(), nil -} - -// GetSecurityInfo queries the security information for a given handle and returns the self-relative security -// descriptor result on the Go heap. -func GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { - var winHeapSD *SECURITY_DESCRIPTOR - err = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) - return winHeapSD.copySelfRelativeSecurityDescriptor(), nil -} - -// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security -// descriptor result on the Go heap. -func GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { - var winHeapSD *SECURITY_DESCRIPTOR - err = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) - return winHeapSD.copySelfRelativeSecurityDescriptor(), nil -} - -// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and -// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor -// result on the Go heap. -func BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) { - var winHeapSD *SECURITY_DESCRIPTOR - var winHeapSDSize uint32 - var firstAccessEntry *EXPLICIT_ACCESS - if len(accessEntries) > 0 { - firstAccessEntry = &accessEntries[0] - } - var firstAuditEntry *EXPLICIT_ACCESS - if len(auditEntries) > 0 { - firstAuditEntry = &auditEntries[0] - } - err = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) - return winHeapSD.copySelfRelativeSecurityDescriptor(), nil -} - -// NewSecurityDescriptor creates and initializes a new absolute security descriptor. -func NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) { - absoluteSD = &SECURITY_DESCRIPTOR{} - err = initializeSecurityDescriptor(absoluteSD, 1) - return -} - -// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL. -// Both explicitEntries and mergedACL are optional and can be nil. -func ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) { - var firstExplicitEntry *EXPLICIT_ACCESS - if len(explicitEntries) > 0 { - firstExplicitEntry = &explicitEntries[0] - } - var winHeapACL *ACL - err = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL) - if err != nil { - return - } - defer LocalFree(Handle(unsafe.Pointer(winHeapACL))) - aclBytes := make([]byte, winHeapACL.aclSize) - copy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)]) - return (*ACL)(unsafe.Pointer(&aclBytes[0])), nil -} diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go deleted file mode 100644 index a9dc630..0000000 --- a/vendor/golang.org/x/sys/windows/service.go +++ /dev/null @@ -1,257 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows - -package windows - -const ( - SC_MANAGER_CONNECT = 1 - SC_MANAGER_CREATE_SERVICE = 2 - SC_MANAGER_ENUMERATE_SERVICE = 4 - SC_MANAGER_LOCK = 8 - SC_MANAGER_QUERY_LOCK_STATUS = 16 - SC_MANAGER_MODIFY_BOOT_CONFIG = 32 - SC_MANAGER_ALL_ACCESS = 0xf003f -) - -const ( - SERVICE_KERNEL_DRIVER = 1 - SERVICE_FILE_SYSTEM_DRIVER = 2 - SERVICE_ADAPTER = 4 - SERVICE_RECOGNIZER_DRIVER = 8 - SERVICE_WIN32_OWN_PROCESS = 16 - SERVICE_WIN32_SHARE_PROCESS = 32 - SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS - SERVICE_INTERACTIVE_PROCESS = 256 - SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER - SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS - - SERVICE_BOOT_START = 0 - SERVICE_SYSTEM_START = 1 - SERVICE_AUTO_START = 2 - SERVICE_DEMAND_START = 3 - SERVICE_DISABLED = 4 - - SERVICE_ERROR_IGNORE = 0 - SERVICE_ERROR_NORMAL = 1 - SERVICE_ERROR_SEVERE = 2 - SERVICE_ERROR_CRITICAL = 3 - - SC_STATUS_PROCESS_INFO = 0 - - SC_ACTION_NONE = 0 - SC_ACTION_RESTART = 1 - SC_ACTION_REBOOT = 2 - SC_ACTION_RUN_COMMAND = 3 - - SERVICE_STOPPED = 1 - SERVICE_START_PENDING = 2 - SERVICE_STOP_PENDING = 3 - SERVICE_RUNNING = 4 - SERVICE_CONTINUE_PENDING = 5 - SERVICE_PAUSE_PENDING = 6 - SERVICE_PAUSED = 7 - SERVICE_NO_CHANGE = 0xffffffff - - SERVICE_ACCEPT_STOP = 1 - SERVICE_ACCEPT_PAUSE_CONTINUE = 2 - SERVICE_ACCEPT_SHUTDOWN = 4 - SERVICE_ACCEPT_PARAMCHANGE = 8 - SERVICE_ACCEPT_NETBINDCHANGE = 16 - SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 - SERVICE_ACCEPT_POWEREVENT = 64 - SERVICE_ACCEPT_SESSIONCHANGE = 128 - SERVICE_ACCEPT_PRESHUTDOWN = 256 - - SERVICE_CONTROL_STOP = 1 - SERVICE_CONTROL_PAUSE = 2 - SERVICE_CONTROL_CONTINUE = 3 - SERVICE_CONTROL_INTERROGATE = 4 - SERVICE_CONTROL_SHUTDOWN = 5 - SERVICE_CONTROL_PARAMCHANGE = 6 - SERVICE_CONTROL_NETBINDADD = 7 - SERVICE_CONTROL_NETBINDREMOVE = 8 - SERVICE_CONTROL_NETBINDENABLE = 9 - SERVICE_CONTROL_NETBINDDISABLE = 10 - SERVICE_CONTROL_DEVICEEVENT = 11 - SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12 - SERVICE_CONTROL_POWEREVENT = 13 - SERVICE_CONTROL_SESSIONCHANGE = 14 - SERVICE_CONTROL_PRESHUTDOWN = 15 - - SERVICE_ACTIVE = 1 - 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_RUNS_IN_SYSTEM_PROCESS = 1 - - 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 - - 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 - - SC_EVENT_DATABASE_CHANGE = 0 - SC_EVENT_PROPERTY_CHANGE = 1 - SC_EVENT_STATUS_CHANGE = 2 - - SERVICE_START_REASON_DEMAND = 0x00000001 - SERVICE_START_REASON_AUTO = 0x00000002 - SERVICE_START_REASON_TRIGGER = 0x00000004 - SERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008 - SERVICE_START_REASON_DELAYEDAUTO = 0x00000010 - - SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1 -) - -type ENUM_SERVICE_STATUS struct { - ServiceName *uint16 - DisplayName *uint16 - ServiceStatus SERVICE_STATUS -} - -type SERVICE_STATUS struct { - ServiceType uint32 - CurrentState uint32 - ControlsAccepted uint32 - Win32ExitCode uint32 - ServiceSpecificExitCode uint32 - CheckPoint uint32 - WaitHint uint32 -} - -type SERVICE_TABLE_ENTRY struct { - ServiceName *uint16 - ServiceProc uintptr -} - -type QUERY_SERVICE_CONFIG struct { - ServiceType uint32 - StartType uint32 - ErrorControl uint32 - BinaryPathName *uint16 - LoadOrderGroup *uint16 - TagId uint32 - Dependencies *uint16 - ServiceStartName *uint16 - DisplayName *uint16 -} - -type SERVICE_DESCRIPTION struct { - Description *uint16 -} - -type SERVICE_DELAYED_AUTO_START_INFO struct { - IsDelayedAutoStartUp uint32 -} - -type SERVICE_STATUS_PROCESS struct { - ServiceType uint32 - CurrentState uint32 - ControlsAccepted uint32 - Win32ExitCode uint32 - ServiceSpecificExitCode uint32 - CheckPoint uint32 - WaitHint uint32 - ProcessId uint32 - ServiceFlags uint32 -} - -type ENUM_SERVICE_STATUS_PROCESS struct { - ServiceName *uint16 - DisplayName *uint16 - 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 - Command *uint16 - ActionsCount uint32 - Actions *SC_ACTION -} - -type SERVICE_FAILURE_ACTIONS_FLAG struct { - FailureActionsOnNonCrashFailures int32 -} - -type SC_ACTION struct { - Type uint32 - Delay uint32 -} - -type QUERY_SERVICE_LOCK_STATUS struct { - IsLocked uint32 - LockOwner *uint16 - LockDuration uint32 -} - -//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW -//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 -//sys ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW -//sys QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW -//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 SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications? -//sys UnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications? -//sys RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW -//sys QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation? -//sys EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW diff --git a/vendor/golang.org/x/sys/windows/setupapi_windows.go b/vendor/golang.org/x/sys/windows/setupapi_windows.go deleted file mode 100644 index f812648..0000000 --- a/vendor/golang.org/x/sys/windows/setupapi_windows.go +++ /dev/null @@ -1,1425 +0,0 @@ -// Copyright 2021 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 windows - -import ( - "encoding/binary" - "errors" - "fmt" - "runtime" - "strings" - "syscall" - "unsafe" -) - -// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll, -// core system functions for managing hardware devices, drivers, and the PnP tree. -// Information about these APIs can be found at: -// https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi -// https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32- - -const ( - ERROR_EXPECTED_SECTION_NAME Errno = 0x20000000 | 0xC0000000 | 0 - ERROR_BAD_SECTION_NAME_LINE Errno = 0x20000000 | 0xC0000000 | 1 - ERROR_SECTION_NAME_TOO_LONG Errno = 0x20000000 | 0xC0000000 | 2 - ERROR_GENERAL_SYNTAX Errno = 0x20000000 | 0xC0000000 | 3 - ERROR_WRONG_INF_STYLE Errno = 0x20000000 | 0xC0000000 | 0x100 - ERROR_SECTION_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x101 - ERROR_LINE_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x102 - ERROR_NO_BACKUP Errno = 0x20000000 | 0xC0000000 | 0x103 - ERROR_NO_ASSOCIATED_CLASS Errno = 0x20000000 | 0xC0000000 | 0x200 - ERROR_CLASS_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x201 - ERROR_DUPLICATE_FOUND Errno = 0x20000000 | 0xC0000000 | 0x202 - ERROR_NO_DRIVER_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x203 - ERROR_KEY_DOES_NOT_EXIST Errno = 0x20000000 | 0xC0000000 | 0x204 - ERROR_INVALID_DEVINST_NAME Errno = 0x20000000 | 0xC0000000 | 0x205 - ERROR_INVALID_CLASS Errno = 0x20000000 | 0xC0000000 | 0x206 - ERROR_DEVINST_ALREADY_EXISTS Errno = 0x20000000 | 0xC0000000 | 0x207 - ERROR_DEVINFO_NOT_REGISTERED Errno = 0x20000000 | 0xC0000000 | 0x208 - ERROR_INVALID_REG_PROPERTY Errno = 0x20000000 | 0xC0000000 | 0x209 - ERROR_NO_INF Errno = 0x20000000 | 0xC0000000 | 0x20A - ERROR_NO_SUCH_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x20B - ERROR_CANT_LOAD_CLASS_ICON Errno = 0x20000000 | 0xC0000000 | 0x20C - ERROR_INVALID_CLASS_INSTALLER Errno = 0x20000000 | 0xC0000000 | 0x20D - ERROR_DI_DO_DEFAULT Errno = 0x20000000 | 0xC0000000 | 0x20E - ERROR_DI_NOFILECOPY Errno = 0x20000000 | 0xC0000000 | 0x20F - ERROR_INVALID_HWPROFILE Errno = 0x20000000 | 0xC0000000 | 0x210 - ERROR_NO_DEVICE_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x211 - ERROR_DEVINFO_LIST_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x212 - ERROR_DEVINFO_DATA_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x213 - ERROR_DI_BAD_PATH Errno = 0x20000000 | 0xC0000000 | 0x214 - ERROR_NO_CLASSINSTALL_PARAMS Errno = 0x20000000 | 0xC0000000 | 0x215 - ERROR_FILEQUEUE_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x216 - ERROR_BAD_SERVICE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x217 - ERROR_NO_CLASS_DRIVER_LIST Errno = 0x20000000 | 0xC0000000 | 0x218 - ERROR_NO_ASSOCIATED_SERVICE Errno = 0x20000000 | 0xC0000000 | 0x219 - ERROR_NO_DEFAULT_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x21A - ERROR_DEVICE_INTERFACE_ACTIVE Errno = 0x20000000 | 0xC0000000 | 0x21B - ERROR_DEVICE_INTERFACE_REMOVED Errno = 0x20000000 | 0xC0000000 | 0x21C - ERROR_BAD_INTERFACE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x21D - ERROR_NO_SUCH_INTERFACE_CLASS Errno = 0x20000000 | 0xC0000000 | 0x21E - ERROR_INVALID_REFERENCE_STRING Errno = 0x20000000 | 0xC0000000 | 0x21F - ERROR_INVALID_MACHINENAME Errno = 0x20000000 | 0xC0000000 | 0x220 - ERROR_REMOTE_COMM_FAILURE Errno = 0x20000000 | 0xC0000000 | 0x221 - ERROR_MACHINE_UNAVAILABLE Errno = 0x20000000 | 0xC0000000 | 0x222 - ERROR_NO_CONFIGMGR_SERVICES Errno = 0x20000000 | 0xC0000000 | 0x223 - ERROR_INVALID_PROPPAGE_PROVIDER Errno = 0x20000000 | 0xC0000000 | 0x224 - ERROR_NO_SUCH_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x225 - ERROR_DI_POSTPROCESSING_REQUIRED Errno = 0x20000000 | 0xC0000000 | 0x226 - ERROR_INVALID_COINSTALLER Errno = 0x20000000 | 0xC0000000 | 0x227 - ERROR_NO_COMPAT_DRIVERS Errno = 0x20000000 | 0xC0000000 | 0x228 - ERROR_NO_DEVICE_ICON Errno = 0x20000000 | 0xC0000000 | 0x229 - ERROR_INVALID_INF_LOGCONFIG Errno = 0x20000000 | 0xC0000000 | 0x22A - ERROR_DI_DONT_INSTALL Errno = 0x20000000 | 0xC0000000 | 0x22B - ERROR_INVALID_FILTER_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22C - ERROR_NON_WINDOWS_NT_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22D - ERROR_NON_WINDOWS_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22E - ERROR_NO_CATALOG_FOR_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x22F - ERROR_DEVINSTALL_QUEUE_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x230 - ERROR_NOT_DISABLEABLE Errno = 0x20000000 | 0xC0000000 | 0x231 - ERROR_CANT_REMOVE_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x232 - ERROR_INVALID_TARGET Errno = 0x20000000 | 0xC0000000 | 0x233 - ERROR_DRIVER_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x234 - ERROR_IN_WOW64 Errno = 0x20000000 | 0xC0000000 | 0x235 - ERROR_SET_SYSTEM_RESTORE_POINT Errno = 0x20000000 | 0xC0000000 | 0x236 - ERROR_SCE_DISABLED Errno = 0x20000000 | 0xC0000000 | 0x238 - ERROR_UNKNOWN_EXCEPTION Errno = 0x20000000 | 0xC0000000 | 0x239 - ERROR_PNP_REGISTRY_ERROR Errno = 0x20000000 | 0xC0000000 | 0x23A - ERROR_REMOTE_REQUEST_UNSUPPORTED Errno = 0x20000000 | 0xC0000000 | 0x23B - ERROR_NOT_AN_INSTALLED_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x23C - ERROR_INF_IN_USE_BY_DEVICES Errno = 0x20000000 | 0xC0000000 | 0x23D - ERROR_DI_FUNCTION_OBSOLETE Errno = 0x20000000 | 0xC0000000 | 0x23E - ERROR_NO_AUTHENTICODE_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x23F - ERROR_AUTHENTICODE_DISALLOWED Errno = 0x20000000 | 0xC0000000 | 0x240 - ERROR_AUTHENTICODE_TRUSTED_PUBLISHER Errno = 0x20000000 | 0xC0000000 | 0x241 - ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED Errno = 0x20000000 | 0xC0000000 | 0x242 - ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Errno = 0x20000000 | 0xC0000000 | 0x243 - ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x244 - ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE Errno = 0x20000000 | 0xC0000000 | 0x245 - ERROR_DEVICE_INSTALLER_NOT_READY Errno = 0x20000000 | 0xC0000000 | 0x246 - ERROR_DRIVER_STORE_ADD_FAILED Errno = 0x20000000 | 0xC0000000 | 0x247 - ERROR_DEVICE_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x248 - ERROR_DRIVER_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x249 - ERROR_WRONG_INF_TYPE Errno = 0x20000000 | 0xC0000000 | 0x24A - ERROR_FILE_HASH_NOT_IN_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x24B - ERROR_DRIVER_STORE_DELETE_FAILED Errno = 0x20000000 | 0xC0000000 | 0x24C - ERROR_UNRECOVERABLE_STACK_OVERFLOW Errno = 0x20000000 | 0xC0000000 | 0x300 - EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW - ERROR_NO_DEFAULT_INTERFACE_DEVICE Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE - ERROR_INTERFACE_DEVICE_ACTIVE Errno = ERROR_DEVICE_INTERFACE_ACTIVE - ERROR_INTERFACE_DEVICE_REMOVED Errno = ERROR_DEVICE_INTERFACE_REMOVED - ERROR_NO_SUCH_INTERFACE_DEVICE Errno = ERROR_NO_SUCH_DEVICE_INTERFACE -) - -const ( - MAX_DEVICE_ID_LEN = 200 - MAX_DEVNODE_ID_LEN = MAX_DEVICE_ID_LEN - MAX_GUID_STRING_LEN = 39 // 38 chars + terminator null - MAX_CLASS_NAME_LEN = 32 - MAX_PROFILE_LEN = 80 - MAX_CONFIG_VALUE = 9999 - MAX_INSTANCE_VALUE = 9999 - CONFIGMG_VERSION = 0x0400 -) - -// Maximum string length constants -const ( - LINE_LEN = 256 // Windows 9x-compatible maximum for displayable strings coming from a device INF. - MAX_INF_STRING_LENGTH = 4096 // Actual maximum size of an INF string (including string substitutions). - MAX_INF_SECTION_NAME_LENGTH = 255 // For Windows 9x compatibility, INF section names should be constrained to 32 characters. - MAX_TITLE_LEN = 60 - MAX_INSTRUCTION_LEN = 256 - MAX_LABEL_LEN = 30 - MAX_SERVICE_NAME_LEN = 256 - MAX_SUBTITLE_LEN = 256 -) - -const ( - // SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., "\\\\MachineName\0"). - SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3 -) - -// HSPFILEQ is type for setup file queue -type HSPFILEQ uintptr - -// DevInfo holds reference to device information set -type DevInfo Handle - -// DEVINST is a handle usually recognized by cfgmgr32 APIs -type DEVINST uint32 - -// DevInfoData is a device information structure (references a device instance that is a member of a device information set) -type DevInfoData struct { - size uint32 - ClassGUID GUID - DevInst DEVINST - _ uintptr -} - -// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass). -type DevInfoListDetailData struct { - size uint32 // Use unsafeSizeOf method - ClassGUID GUID - RemoteMachineHandle Handle - remoteMachineName [SP_MAX_MACHINENAME_LENGTH]uint16 -} - -func (*DevInfoListDetailData) unsafeSizeOf() uint32 { - if unsafe.Sizeof(uintptr(0)) == 4 { - // Windows declares this with pshpack1.h - return uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName)) - } - return uint32(unsafe.Sizeof(DevInfoListDetailData{})) -} - -func (data *DevInfoListDetailData) RemoteMachineName() string { - return UTF16ToString(data.remoteMachineName[:]) -} - -func (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error { - str, err := UTF16FromString(remoteMachineName) - if err != nil { - return err - } - copy(data.remoteMachineName[:], str) - return nil -} - -// DI_FUNCTION is function type for device installer -type DI_FUNCTION uint32 - -const ( - DIF_SELECTDEVICE DI_FUNCTION = 0x00000001 - DIF_INSTALLDEVICE DI_FUNCTION = 0x00000002 - DIF_ASSIGNRESOURCES DI_FUNCTION = 0x00000003 - DIF_PROPERTIES DI_FUNCTION = 0x00000004 - DIF_REMOVE DI_FUNCTION = 0x00000005 - DIF_FIRSTTIMESETUP DI_FUNCTION = 0x00000006 - DIF_FOUNDDEVICE DI_FUNCTION = 0x00000007 - DIF_SELECTCLASSDRIVERS DI_FUNCTION = 0x00000008 - DIF_VALIDATECLASSDRIVERS DI_FUNCTION = 0x00000009 - DIF_INSTALLCLASSDRIVERS DI_FUNCTION = 0x0000000A - DIF_CALCDISKSPACE DI_FUNCTION = 0x0000000B - DIF_DESTROYPRIVATEDATA DI_FUNCTION = 0x0000000C - DIF_VALIDATEDRIVER DI_FUNCTION = 0x0000000D - DIF_DETECT DI_FUNCTION = 0x0000000F - DIF_INSTALLWIZARD DI_FUNCTION = 0x00000010 - DIF_DESTROYWIZARDDATA DI_FUNCTION = 0x00000011 - DIF_PROPERTYCHANGE DI_FUNCTION = 0x00000012 - DIF_ENABLECLASS DI_FUNCTION = 0x00000013 - DIF_DETECTVERIFY DI_FUNCTION = 0x00000014 - DIF_INSTALLDEVICEFILES DI_FUNCTION = 0x00000015 - DIF_UNREMOVE DI_FUNCTION = 0x00000016 - DIF_SELECTBESTCOMPATDRV DI_FUNCTION = 0x00000017 - DIF_ALLOW_INSTALL DI_FUNCTION = 0x00000018 - DIF_REGISTERDEVICE DI_FUNCTION = 0x00000019 - DIF_NEWDEVICEWIZARD_PRESELECT DI_FUNCTION = 0x0000001A - DIF_NEWDEVICEWIZARD_SELECT DI_FUNCTION = 0x0000001B - DIF_NEWDEVICEWIZARD_PREANALYZE DI_FUNCTION = 0x0000001C - DIF_NEWDEVICEWIZARD_POSTANALYZE DI_FUNCTION = 0x0000001D - DIF_NEWDEVICEWIZARD_FINISHINSTALL DI_FUNCTION = 0x0000001E - DIF_INSTALLINTERFACES DI_FUNCTION = 0x00000020 - DIF_DETECTCANCEL DI_FUNCTION = 0x00000021 - DIF_REGISTER_COINSTALLERS DI_FUNCTION = 0x00000022 - DIF_ADDPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000023 - DIF_ADDPROPERTYPAGE_BASIC DI_FUNCTION = 0x00000024 - DIF_TROUBLESHOOTER DI_FUNCTION = 0x00000026 - DIF_POWERMESSAGEWAKE DI_FUNCTION = 0x00000027 - DIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028 - DIF_UPDATEDRIVER_UI DI_FUNCTION = 0x00000029 - DIF_FINISHINSTALL_ACTION DI_FUNCTION = 0x0000002A -) - -// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set) -type DevInstallParams struct { - size uint32 - Flags DI_FLAGS - FlagsEx DI_FLAGSEX - hwndParent uintptr - InstallMsgHandler uintptr - InstallMsgHandlerContext uintptr - FileQueue HSPFILEQ - _ uintptr - _ uint32 - driverPath [MAX_PATH]uint16 -} - -func (params *DevInstallParams) DriverPath() string { - return UTF16ToString(params.driverPath[:]) -} - -func (params *DevInstallParams) SetDriverPath(driverPath string) error { - str, err := UTF16FromString(driverPath) - if err != nil { - return err - } - copy(params.driverPath[:], str) - return nil -} - -// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values -type DI_FLAGS uint32 - -const ( - // Flags for choosing a device - DI_SHOWOEM DI_FLAGS = 0x00000001 // support Other... button - DI_SHOWCOMPAT DI_FLAGS = 0x00000002 // show compatibility list - DI_SHOWCLASS DI_FLAGS = 0x00000004 // show class list - DI_SHOWALL DI_FLAGS = 0x00000007 // both class & compat list shown - DI_NOVCP DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue - DI_DIDCOMPAT DI_FLAGS = 0x00000010 // Searched for compatible devices - DI_DIDCLASS DI_FLAGS = 0x00000020 // Searched for class devices - DI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible - - // Flags returned by DiInstallDevice to indicate need to reboot/restart - DI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect - DI_NEEDREBOOT DI_FLAGS = 0x00000100 // "" - - // Flags for device installation - DI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk - - // Flags set by DiBuildDriverInfoList - DI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list - - // Flag indicates that device is disabled - DI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled - - // Flags for Device/Class Properties - DI_GENERALPAGE_ADDED DI_FLAGS = 0x00001000 - DI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000 - - // Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated. - DI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000 - - // Flag to indicate that the sorting from the INF file should be used. - DI_INF_IS_SORTED DI_FLAGS = 0x00008000 - - // Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. - DI_ENUMSINGLEINF DI_FLAGS = 0x00010000 - - // Flag that prevents ConfigMgr from removing/re-enumerating devices during device - // registration, installation, and deletion. - DI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000 - - // The following flag can be used to install a device disabled - DI_INSTALLDISABLED DI_FLAGS = 0x00040000 - - // Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver - // list from its existing class driver list, instead of the normal INF search. - DI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000 - - // This flag is set if the Class Install params should be used. - DI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000 - - // This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT. - DI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000 - - // Flags for device installation - DI_QUIETINSTALL DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info - DI_NOFILECOPY DI_FLAGS = 0x01000000 // No file Copy necessary - DI_FORCECOPY DI_FLAGS = 0x02000000 // Force files to be copied from install path - DI_DRIVERPAGE_ADDED DI_FLAGS = 0x04000000 // Prop provider added Driver page. - DI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg - DI_OVERRIDE_INFFLAGS DI_FLAGS = 0x10000000 // Override INF flags - DI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props - - DI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs - - DI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install -) - -// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values -type DI_FLAGSEX uint32 - -const ( - DI_FLAGSEX_CI_FAILED DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer - DI_FLAGSEX_FINISHINSTALL_ACTION DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context. - DI_FLAGSEX_DIDINFOLIST DI_FLAGSEX = 0x00000010 // Did the Class Info List - DI_FLAGSEX_DIDCOMPATINFO DI_FLAGSEX = 0x00000020 // Did the Compat Info List - DI_FLAGSEX_FILTERCLASSES DI_FLAGSEX = 0x00000040 - DI_FLAGSEX_SETFAILEDINSTALL DI_FLAGSEX = 0x00000080 - DI_FLAGSEX_DEVICECHANGE DI_FLAGSEX = 0x00000100 - DI_FLAGSEX_ALWAYSWRITEIDS DI_FLAGSEX = 0x00000200 - DI_FLAGSEX_PROPCHANGE_PENDING DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur. - DI_FLAGSEX_ALLOWEXCLUDEDDRVS DI_FLAGSEX = 0x00000800 - DI_FLAGSEX_NOUIONQUERYREMOVE DI_FLAGSEX = 0x00001000 - DI_FLAGSEX_USECLASSFORCOMPAT DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.) - DI_FLAGSEX_NO_DRVREG_MODIFY DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key. - DI_FLAGSEX_IN_SYSTEM_SETUP DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup. - DI_FLAGSEX_INET_DRIVER DI_FLAGSEX = 0x00020000 // Driver came from Windows Update - DI_FLAGSEX_APPENDDRIVERLIST DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list. - DI_FLAGSEX_PREINSTALLBACKUP DI_FLAGSEX = 0x00080000 // not used - DI_FLAGSEX_BACKUPONREPLACE DI_FLAGSEX = 0x00100000 // not used - DI_FLAGSEX_DRIVERLIST_FROM_URL DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website) - DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later. - DI_FLAGSEX_POWERPAGE_ADDED DI_FLAGSEX = 0x01000000 // class installer added their own power page - DI_FLAGSEX_FILTERSIMILARDRIVERS DI_FLAGSEX = 0x02000000 // only include similar drivers in class list - DI_FLAGSEX_INSTALLEDDRIVER DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list. Used in calls to SetupDiBuildDriverInfoList - DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list - DI_FLAGSEX_ALTPLATFORM_DRVSEARCH DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue - DI_FLAGSEX_RESTART_DEVICE_ONLY DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers. - DI_FLAGSEX_RECURSIVESEARCH DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search - DI_FLAGSEX_SEARCH_PUBLISHED_INFS DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a "published INF" search -) - -// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure. -type ClassInstallHeader struct { - size uint32 - InstallFunction DI_FUNCTION -} - -func MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader { - hdr := &ClassInstallHeader{InstallFunction: installFunction} - hdr.size = uint32(unsafe.Sizeof(*hdr)) - return hdr -} - -// DICS_STATE specifies values indicating a change in a device's state -type DICS_STATE uint32 - -const ( - DICS_ENABLE DICS_STATE = 0x00000001 // The device is being enabled. - DICS_DISABLE DICS_STATE = 0x00000002 // The device is being disabled. - DICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed. - DICS_START DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile). - DICS_STOP DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device. -) - -// DICS_FLAG specifies the scope of a device property change -type DICS_FLAG uint32 - -const ( - DICS_FLAG_GLOBAL DICS_FLAG = 0x00000001 // make change in all hardware profiles - DICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only - DICS_FLAG_CONFIGGENERAL DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete) -) - -// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function. -type PropChangeParams struct { - ClassInstallHeader ClassInstallHeader - StateChange DICS_STATE - Scope DICS_FLAG - HwProfile uint32 -} - -// DI_REMOVEDEVICE specifies the scope of the device removal -type DI_REMOVEDEVICE uint32 - -const ( - DI_REMOVEDEVICE_GLOBAL DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry. - DI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal. -) - -// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function. -type RemoveDeviceParams struct { - ClassInstallHeader ClassInstallHeader - Scope DI_REMOVEDEVICE - HwProfile uint32 -} - -// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set) -type DrvInfoData struct { - size uint32 - DriverType uint32 - _ uintptr - description [LINE_LEN]uint16 - mfgName [LINE_LEN]uint16 - providerName [LINE_LEN]uint16 - DriverDate Filetime - DriverVersion uint64 -} - -func (data *DrvInfoData) Description() string { - return UTF16ToString(data.description[:]) -} - -func (data *DrvInfoData) SetDescription(description string) error { - str, err := UTF16FromString(description) - if err != nil { - return err - } - copy(data.description[:], str) - return nil -} - -func (data *DrvInfoData) MfgName() string { - return UTF16ToString(data.mfgName[:]) -} - -func (data *DrvInfoData) SetMfgName(mfgName string) error { - str, err := UTF16FromString(mfgName) - if err != nil { - return err - } - copy(data.mfgName[:], str) - return nil -} - -func (data *DrvInfoData) ProviderName() string { - return UTF16ToString(data.providerName[:]) -} - -func (data *DrvInfoData) SetProviderName(providerName string) error { - str, err := UTF16FromString(providerName) - if err != nil { - return err - } - copy(data.providerName[:], str) - return nil -} - -// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters. -func (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool { - if data.DriverDate.HighDateTime > driverDate.HighDateTime { - return true - } - if data.DriverDate.HighDateTime < driverDate.HighDateTime { - return false - } - - if data.DriverDate.LowDateTime > driverDate.LowDateTime { - return true - } - if data.DriverDate.LowDateTime < driverDate.LowDateTime { - return false - } - - if data.DriverVersion > driverVersion { - return true - } - if data.DriverVersion < driverVersion { - return false - } - - return false -} - -// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure) -type DrvInfoDetailData struct { - size uint32 // Use unsafeSizeOf method - InfDate Filetime - compatIDsOffset uint32 - compatIDsLength uint32 - _ uintptr - sectionName [LINE_LEN]uint16 - infFileName [MAX_PATH]uint16 - drvDescription [LINE_LEN]uint16 - hardwareID [1]uint16 -} - -func (*DrvInfoDetailData) unsafeSizeOf() uint32 { - if unsafe.Sizeof(uintptr(0)) == 4 { - // Windows declares this with pshpack1.h - return uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID)) - } - return uint32(unsafe.Sizeof(DrvInfoDetailData{})) -} - -func (data *DrvInfoDetailData) SectionName() string { - return UTF16ToString(data.sectionName[:]) -} - -func (data *DrvInfoDetailData) InfFileName() string { - return UTF16ToString(data.infFileName[:]) -} - -func (data *DrvInfoDetailData) DrvDescription() string { - return UTF16ToString(data.drvDescription[:]) -} - -func (data *DrvInfoDetailData) HardwareID() string { - if data.compatIDsOffset > 1 { - bufW := data.getBuf() - return UTF16ToString(bufW[:wcslen(bufW)]) - } - - return "" -} - -func (data *DrvInfoDetailData) CompatIDs() []string { - a := make([]string, 0) - - if data.compatIDsLength > 0 { - bufW := data.getBuf() - bufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength] - for i := 0; i < len(bufW); { - j := i + wcslen(bufW[i:]) - if i < j { - a = append(a, UTF16ToString(bufW[i:j])) - } - i = j + 1 - } - } - - return a -} - -func (data *DrvInfoDetailData) getBuf() []uint16 { - len := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2 - sl := struct { - addr *uint16 - len int - cap int - }{&data.hardwareID[0], int(len), int(len)} - return *(*[]uint16)(unsafe.Pointer(&sl)) -} - -// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list. -func (data *DrvInfoDetailData) IsCompatible(hwid string) bool { - hwidLC := strings.ToLower(hwid) - if strings.ToLower(data.HardwareID()) == hwidLC { - return true - } - a := data.CompatIDs() - for i := range a { - if strings.ToLower(a[i]) == hwidLC { - return true - } - } - - return false -} - -// DICD flags control SetupDiCreateDeviceInfo -type DICD uint32 - -const ( - DICD_GENERATE_ID DICD = 0x00000001 - DICD_INHERIT_CLASSDRVS DICD = 0x00000002 -) - -// SUOI flags control SetupUninstallOEMInf -type SUOI uint32 - -const ( - SUOI_FORCEDELETE SUOI = 0x0001 -) - -// SPDIT flags to distinguish between class drivers and -// device drivers. (Passed in 'DriverType' parameter of -// driver information list APIs) -type SPDIT uint32 - -const ( - SPDIT_NODRIVER SPDIT = 0x00000000 - SPDIT_CLASSDRIVER SPDIT = 0x00000001 - SPDIT_COMPATDRIVER SPDIT = 0x00000002 -) - -// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs -type DIGCF uint32 - -const ( - DIGCF_DEFAULT DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE - DIGCF_PRESENT DIGCF = 0x00000002 - DIGCF_ALLCLASSES DIGCF = 0x00000004 - DIGCF_PROFILE DIGCF = 0x00000008 - DIGCF_DEVICEINTERFACE DIGCF = 0x00000010 -) - -// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey. -type DIREG uint32 - -const ( - DIREG_DEV DIREG = 0x00000001 // Open/Create/Delete device key - DIREG_DRV DIREG = 0x00000002 // Open/Create/Delete driver key - DIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key -) - -// SPDRP specifies device registry property codes -// (Codes marked as read-only (R) may only be used for -// SetupDiGetDeviceRegistryProperty) -// -// These values should cover the same set of registry properties -// as defined by the CM_DRP codes in cfgmgr32.h. -// -// Note that SPDRP codes are zero based while CM_DRP codes are one based! -type SPDRP uint32 - -const ( - SPDRP_DEVICEDESC SPDRP = 0x00000000 // DeviceDesc (R/W) - SPDRP_HARDWAREID SPDRP = 0x00000001 // HardwareID (R/W) - SPDRP_COMPATIBLEIDS SPDRP = 0x00000002 // CompatibleIDs (R/W) - SPDRP_SERVICE SPDRP = 0x00000004 // Service (R/W) - SPDRP_CLASS SPDRP = 0x00000007 // Class (R--tied to ClassGUID) - SPDRP_CLASSGUID SPDRP = 0x00000008 // ClassGUID (R/W) - SPDRP_DRIVER SPDRP = 0x00000009 // Driver (R/W) - SPDRP_CONFIGFLAGS SPDRP = 0x0000000A // ConfigFlags (R/W) - SPDRP_MFG SPDRP = 0x0000000B // Mfg (R/W) - SPDRP_FRIENDLYNAME SPDRP = 0x0000000C // FriendlyName (R/W) - SPDRP_LOCATION_INFORMATION SPDRP = 0x0000000D // LocationInformation (R/W) - SPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R) - SPDRP_CAPABILITIES SPDRP = 0x0000000F // Capabilities (R) - SPDRP_UI_NUMBER SPDRP = 0x00000010 // UiNumber (R) - SPDRP_UPPERFILTERS SPDRP = 0x00000011 // UpperFilters (R/W) - SPDRP_LOWERFILTERS SPDRP = 0x00000012 // LowerFilters (R/W) - SPDRP_BUSTYPEGUID SPDRP = 0x00000013 // BusTypeGUID (R) - SPDRP_LEGACYBUSTYPE SPDRP = 0x00000014 // LegacyBusType (R) - SPDRP_BUSNUMBER SPDRP = 0x00000015 // BusNumber (R) - SPDRP_ENUMERATOR_NAME SPDRP = 0x00000016 // Enumerator Name (R) - SPDRP_SECURITY SPDRP = 0x00000017 // Security (R/W, binary form) - SPDRP_SECURITY_SDS SPDRP = 0x00000018 // Security (W, SDS form) - SPDRP_DEVTYPE SPDRP = 0x00000019 // Device Type (R/W) - SPDRP_EXCLUSIVE SPDRP = 0x0000001A // Device is exclusive-access (R/W) - SPDRP_CHARACTERISTICS SPDRP = 0x0000001B // Device Characteristics (R/W) - SPDRP_ADDRESS SPDRP = 0x0000001C // Device Address (R) - SPDRP_UI_NUMBER_DESC_FORMAT SPDRP = 0x0000001D // UiNumberDescFormat (R/W) - SPDRP_DEVICE_POWER_DATA SPDRP = 0x0000001E // Device Power Data (R) - SPDRP_REMOVAL_POLICY SPDRP = 0x0000001F // Removal Policy (R) - SPDRP_REMOVAL_POLICY_HW_DEFAULT SPDRP = 0x00000020 // Hardware Removal Policy (R) - SPDRP_REMOVAL_POLICY_OVERRIDE SPDRP = 0x00000021 // Removal Policy Override (RW) - SPDRP_INSTALL_STATE SPDRP = 0x00000022 // Device Install State (R) - SPDRP_LOCATION_PATHS SPDRP = 0x00000023 // Device Location Paths (R) - SPDRP_BASE_CONTAINERID SPDRP = 0x00000024 // Base ContainerID (R) - - SPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals -) - -// DEVPROPTYPE represents the property-data-type identifier that specifies the -// data type of a device property value in the unified device property model. -type DEVPROPTYPE uint32 - -const ( - DEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000 - DEVPROP_TYPEMOD_LIST DEVPROPTYPE = 0x00002000 - - DEVPROP_TYPE_EMPTY DEVPROPTYPE = 0x00000000 - DEVPROP_TYPE_NULL DEVPROPTYPE = 0x00000001 - DEVPROP_TYPE_SBYTE DEVPROPTYPE = 0x00000002 - DEVPROP_TYPE_BYTE DEVPROPTYPE = 0x00000003 - DEVPROP_TYPE_INT16 DEVPROPTYPE = 0x00000004 - DEVPROP_TYPE_UINT16 DEVPROPTYPE = 0x00000005 - DEVPROP_TYPE_INT32 DEVPROPTYPE = 0x00000006 - DEVPROP_TYPE_UINT32 DEVPROPTYPE = 0x00000007 - DEVPROP_TYPE_INT64 DEVPROPTYPE = 0x00000008 - DEVPROP_TYPE_UINT64 DEVPROPTYPE = 0x00000009 - DEVPROP_TYPE_FLOAT DEVPROPTYPE = 0x0000000A - DEVPROP_TYPE_DOUBLE DEVPROPTYPE = 0x0000000B - DEVPROP_TYPE_DECIMAL DEVPROPTYPE = 0x0000000C - DEVPROP_TYPE_GUID DEVPROPTYPE = 0x0000000D - DEVPROP_TYPE_CURRENCY DEVPROPTYPE = 0x0000000E - DEVPROP_TYPE_DATE DEVPROPTYPE = 0x0000000F - DEVPROP_TYPE_FILETIME DEVPROPTYPE = 0x00000010 - DEVPROP_TYPE_BOOLEAN DEVPROPTYPE = 0x00000011 - DEVPROP_TYPE_STRING DEVPROPTYPE = 0x00000012 - DEVPROP_TYPE_STRING_LIST DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST - DEVPROP_TYPE_SECURITY_DESCRIPTOR DEVPROPTYPE = 0x00000013 - DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014 - DEVPROP_TYPE_DEVPROPKEY DEVPROPTYPE = 0x00000015 - DEVPROP_TYPE_DEVPROPTYPE DEVPROPTYPE = 0x00000016 - DEVPROP_TYPE_BINARY DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY - DEVPROP_TYPE_ERROR DEVPROPTYPE = 0x00000017 - DEVPROP_TYPE_NTSTATUS DEVPROPTYPE = 0x00000018 - DEVPROP_TYPE_STRING_INDIRECT DEVPROPTYPE = 0x00000019 - - MAX_DEVPROP_TYPE DEVPROPTYPE = 0x00000019 - MAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000 - - DEVPROP_MASK_TYPE DEVPROPTYPE = 0x00000FFF - DEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000 -) - -// DEVPROPGUID specifies a property category. -type DEVPROPGUID GUID - -// DEVPROPID uniquely identifies the property within the property category. -type DEVPROPID uint32 - -const DEVPROPID_FIRST_USABLE DEVPROPID = 2 - -// DEVPROPKEY represents a device property key for a device property in the -// unified device property model. -type DEVPROPKEY struct { - FmtID DEVPROPGUID - PID DEVPROPID -} - -// CONFIGRET is a return value or error code from cfgmgr32 APIs -type CONFIGRET uint32 - -func (ret CONFIGRET) Error() string { - if win32Error, ok := ret.Unwrap().(Errno); ok { - return fmt.Sprintf("%s (CfgMgr error: 0x%08x)", win32Error.Error(), uint32(ret)) - } - return fmt.Sprintf("CfgMgr error: 0x%08x", uint32(ret)) -} - -func (ret CONFIGRET) Win32Error(defaultError Errno) Errno { - return cm_MapCrToWin32Err(ret, defaultError) -} - -func (ret CONFIGRET) Unwrap() error { - const noMatch = Errno(^uintptr(0)) - win32Error := ret.Win32Error(noMatch) - if win32Error == noMatch { - return nil - } - return win32Error -} - -const ( - CR_SUCCESS CONFIGRET = 0x00000000 - CR_DEFAULT CONFIGRET = 0x00000001 - CR_OUT_OF_MEMORY CONFIGRET = 0x00000002 - CR_INVALID_POINTER CONFIGRET = 0x00000003 - CR_INVALID_FLAG CONFIGRET = 0x00000004 - CR_INVALID_DEVNODE CONFIGRET = 0x00000005 - CR_INVALID_DEVINST = CR_INVALID_DEVNODE - CR_INVALID_RES_DES CONFIGRET = 0x00000006 - CR_INVALID_LOG_CONF CONFIGRET = 0x00000007 - CR_INVALID_ARBITRATOR CONFIGRET = 0x00000008 - CR_INVALID_NODELIST CONFIGRET = 0x00000009 - CR_DEVNODE_HAS_REQS CONFIGRET = 0x0000000A - CR_DEVINST_HAS_REQS = CR_DEVNODE_HAS_REQS - CR_INVALID_RESOURCEID CONFIGRET = 0x0000000B - CR_DLVXD_NOT_FOUND CONFIGRET = 0x0000000C - CR_NO_SUCH_DEVNODE CONFIGRET = 0x0000000D - CR_NO_SUCH_DEVINST = CR_NO_SUCH_DEVNODE - CR_NO_MORE_LOG_CONF CONFIGRET = 0x0000000E - CR_NO_MORE_RES_DES CONFIGRET = 0x0000000F - CR_ALREADY_SUCH_DEVNODE CONFIGRET = 0x00000010 - CR_ALREADY_SUCH_DEVINST = CR_ALREADY_SUCH_DEVNODE - CR_INVALID_RANGE_LIST CONFIGRET = 0x00000011 - CR_INVALID_RANGE CONFIGRET = 0x00000012 - CR_FAILURE CONFIGRET = 0x00000013 - CR_NO_SUCH_LOGICAL_DEV CONFIGRET = 0x00000014 - CR_CREATE_BLOCKED CONFIGRET = 0x00000015 - CR_NOT_SYSTEM_VM CONFIGRET = 0x00000016 - CR_REMOVE_VETOED CONFIGRET = 0x00000017 - CR_APM_VETOED CONFIGRET = 0x00000018 - CR_INVALID_LOAD_TYPE CONFIGRET = 0x00000019 - CR_BUFFER_SMALL CONFIGRET = 0x0000001A - CR_NO_ARBITRATOR CONFIGRET = 0x0000001B - CR_NO_REGISTRY_HANDLE CONFIGRET = 0x0000001C - CR_REGISTRY_ERROR CONFIGRET = 0x0000001D - CR_INVALID_DEVICE_ID CONFIGRET = 0x0000001E - CR_INVALID_DATA CONFIGRET = 0x0000001F - CR_INVALID_API CONFIGRET = 0x00000020 - CR_DEVLOADER_NOT_READY CONFIGRET = 0x00000021 - CR_NEED_RESTART CONFIGRET = 0x00000022 - CR_NO_MORE_HW_PROFILES CONFIGRET = 0x00000023 - CR_DEVICE_NOT_THERE CONFIGRET = 0x00000024 - CR_NO_SUCH_VALUE CONFIGRET = 0x00000025 - CR_WRONG_TYPE CONFIGRET = 0x00000026 - CR_INVALID_PRIORITY CONFIGRET = 0x00000027 - CR_NOT_DISABLEABLE CONFIGRET = 0x00000028 - CR_FREE_RESOURCES CONFIGRET = 0x00000029 - CR_QUERY_VETOED CONFIGRET = 0x0000002A - CR_CANT_SHARE_IRQ CONFIGRET = 0x0000002B - CR_NO_DEPENDENT CONFIGRET = 0x0000002C - CR_SAME_RESOURCES CONFIGRET = 0x0000002D - CR_NO_SUCH_REGISTRY_KEY CONFIGRET = 0x0000002E - CR_INVALID_MACHINENAME CONFIGRET = 0x0000002F - CR_REMOTE_COMM_FAILURE CONFIGRET = 0x00000030 - CR_MACHINE_UNAVAILABLE CONFIGRET = 0x00000031 - CR_NO_CM_SERVICES CONFIGRET = 0x00000032 - CR_ACCESS_DENIED CONFIGRET = 0x00000033 - CR_CALL_NOT_IMPLEMENTED CONFIGRET = 0x00000034 - CR_INVALID_PROPERTY CONFIGRET = 0x00000035 - CR_DEVICE_INTERFACE_ACTIVE CONFIGRET = 0x00000036 - CR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037 - CR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038 - CR_INVALID_CONFLICT_LIST CONFIGRET = 0x00000039 - CR_INVALID_INDEX CONFIGRET = 0x0000003A - CR_INVALID_STRUCTURE_SIZE CONFIGRET = 0x0000003B - NUM_CR_RESULTS CONFIGRET = 0x0000003C -) - -const ( - CM_GET_DEVICE_INTERFACE_LIST_PRESENT = 0 // only currently 'live' device interfaces - CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not -) - -const ( - DN_ROOT_ENUMERATED = 0x00000001 // Was enumerated by ROOT - DN_DRIVER_LOADED = 0x00000002 // Has Register_Device_Driver - DN_ENUM_LOADED = 0x00000004 // Has Register_Enumerator - DN_STARTED = 0x00000008 // Is currently configured - DN_MANUAL = 0x00000010 // Manually installed - DN_NEED_TO_ENUM = 0x00000020 // May need reenumeration - DN_NOT_FIRST_TIME = 0x00000040 // Has received a config - DN_HARDWARE_ENUM = 0x00000080 // Enum generates hardware ID - DN_LIAR = 0x00000100 // Lied about can reconfig once - DN_HAS_MARK = 0x00000200 // Not CM_Create_DevInst lately - DN_HAS_PROBLEM = 0x00000400 // Need device installer - DN_FILTERED = 0x00000800 // Is filtered - DN_MOVED = 0x00001000 // Has been moved - DN_DISABLEABLE = 0x00002000 // Can be disabled - DN_REMOVABLE = 0x00004000 // Can be removed - DN_PRIVATE_PROBLEM = 0x00008000 // Has a private problem - DN_MF_PARENT = 0x00010000 // Multi function parent - DN_MF_CHILD = 0x00020000 // Multi function child - DN_WILL_BE_REMOVED = 0x00040000 // DevInst is being removed - DN_NOT_FIRST_TIMEE = 0x00080000 // Has received a config enumerate - DN_STOP_FREE_RES = 0x00100000 // When child is stopped, free resources - DN_REBAL_CANDIDATE = 0x00200000 // Don't skip during rebalance - DN_BAD_PARTIAL = 0x00400000 // This devnode's log_confs do not have same resources - DN_NT_ENUMERATOR = 0x00800000 // This devnode's is an NT enumerator - DN_NT_DRIVER = 0x01000000 // This devnode's is an NT driver - DN_NEEDS_LOCKING = 0x02000000 // Devnode need lock resume processing - DN_ARM_WAKEUP = 0x04000000 // Devnode can be the wakeup device - DN_APM_ENUMERATOR = 0x08000000 // APM aware enumerator - DN_APM_DRIVER = 0x10000000 // APM aware driver - DN_SILENT_INSTALL = 0x20000000 // Silent install - DN_NO_SHOW_IN_DM = 0x40000000 // No show in device manager - DN_BOOT_LOG_PROB = 0x80000000 // Had a problem during preassignment of boot log conf - DN_NEED_RESTART = DN_LIAR // System needs to be restarted for this Devnode to work properly - DN_DRIVER_BLOCKED = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode - DN_LEGACY_DRIVER = DN_MOVED // This device is using a legacy driver - DN_CHILD_WITH_INVALID_ID = DN_HAS_MARK // One or more children have invalid IDs - DN_DEVICE_DISCONNECTED = DN_NEEDS_LOCKING // The function driver for a device reported that the device is not connected. Typically this means a wireless device is out of range. - DN_QUERY_REMOVE_PENDING = DN_MF_PARENT // Device is part of a set of related devices collectively pending query-removal - DN_QUERY_REMOVE_ACTIVE = DN_MF_CHILD // Device is actively engaged in a query-remove IRP - DN_CHANGEABLE_FLAGS = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM -) - -//sys setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW - -// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class. -func SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) { - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - return setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0) -} - -//sys setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW - -// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. -func SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) { - data := &DevInfoListDetailData{} - data.size = data.unsafeSizeOf() - - return data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data) -} - -// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. -func (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) { - return SetupDiGetDeviceInfoListDetail(deviceInfoSet) -} - -//sys setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW - -// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set. -func SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) { - deviceNameUTF16, err := UTF16PtrFromString(deviceName) - if err != nil { - return - } - - var deviceDescriptionUTF16 *uint16 - if deviceDescription != "" { - deviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription) - if err != nil { - return - } - } - - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data) -} - -// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set. -func (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) { - return SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags) -} - -//sys setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo - -// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set. -func SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) { - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data) -} - -// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set. -func (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) { - return SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex) -} - -// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory. -//sys SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList - -// Close method deletes a device information set and frees all associated memory. -func (deviceInfoSet DevInfo) Close() error { - return SetupDiDestroyDeviceInfoList(deviceInfoSet) -} - -//sys SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList - -// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set. -func (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { - return SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType) -} - -//sys SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch - -// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread. -func (deviceInfoSet DevInfo) CancelDriverInfoSearch() error { - return SetupDiCancelDriverInfoSearch(deviceInfoSet) -} - -//sys setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW - -// SetupDiEnumDriverInfo function enumerates the members of a driver list. -func SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { - data := &DrvInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data) -} - -// EnumDriverInfo method enumerates the members of a driver list. -func (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { - return SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex) -} - -//sys setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW - -// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element. -func SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) { - data := &DrvInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data) -} - -// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) { - return SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData) -} - -//sys SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW - -// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set. -func (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error { - return SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData) -} - -//sys setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW - -// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set. -func SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { - reqSize := uint32(2048) - for { - buf := make([]byte, reqSize) - data := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0])) - data.size = data.unsafeSizeOf() - err := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return nil, err - } - data.size = reqSize - return data, nil - } -} - -// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set. -func (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { - return SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData) -} - -//sys SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList - -// DestroyDriverInfoList method deletes a driver list. -func (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { - return SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType) -} - -//sys setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW - -// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer. -func SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) { - var enumeratorUTF16 *uint16 - if enumerator != "" { - enumeratorUTF16, err = UTF16PtrFromString(enumerator) - if err != nil { - return - } - } - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - return setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0) -} - -// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). -//sys SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller - -// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). -func (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error { - return SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData) -} - -// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information. -//sys SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey - -// OpenDevRegKey method opens a registry key for device-specific configuration information. -func (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) { - return SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired) -} - -//sys setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW - -// SetupDiGetDeviceProperty function retrieves a specified device instance property. -func SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) { - reqSize := uint32(256) - for { - var dataType DEVPROPTYPE - buf := make([]byte, reqSize) - err = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return - } - switch dataType { - case DEVPROP_TYPE_STRING: - ret := UTF16ToString(bufToUTF16(buf)) - runtime.KeepAlive(buf) - return ret, nil - } - return nil, errors.New("unimplemented property type") - } -} - -//sys setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW - -// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property. -func SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) { - reqSize := uint32(256) - for { - var dataType uint32 - buf := make([]byte, reqSize) - err = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return - } - return getRegistryValue(buf[:reqSize], dataType) - } -} - -func getRegistryValue(buf []byte, dataType uint32) (interface{}, error) { - switch dataType { - case REG_SZ: - ret := UTF16ToString(bufToUTF16(buf)) - runtime.KeepAlive(buf) - return ret, nil - case REG_EXPAND_SZ: - value := UTF16ToString(bufToUTF16(buf)) - if value == "" { - return "", nil - } - p, err := syscall.UTF16PtrFromString(value) - if err != nil { - return "", err - } - ret := make([]uint16, 100) - for { - n, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret))) - if err != nil { - return "", err - } - if n <= uint32(len(ret)) { - return UTF16ToString(ret[:n]), nil - } - ret = make([]uint16, n) - } - case REG_BINARY: - return buf, nil - case REG_DWORD_LITTLE_ENDIAN: - return binary.LittleEndian.Uint32(buf), nil - case REG_DWORD_BIG_ENDIAN: - return binary.BigEndian.Uint32(buf), nil - case REG_MULTI_SZ: - bufW := bufToUTF16(buf) - a := []string{} - for i := 0; i < len(bufW); { - j := i + wcslen(bufW[i:]) - if i < j { - a = append(a, UTF16ToString(bufW[i:j])) - } - i = j + 1 - } - runtime.KeepAlive(buf) - return a, nil - case REG_QWORD_LITTLE_ENDIAN: - return binary.LittleEndian.Uint64(buf), nil - default: - return nil, fmt.Errorf("Unsupported registry value type: %v", dataType) - } -} - -// bufToUTF16 function reinterprets []byte buffer as []uint16 -func bufToUTF16(buf []byte) []uint16 { - sl := struct { - addr *uint16 - len int - cap int - }{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2} - return *(*[]uint16)(unsafe.Pointer(&sl)) -} - -// utf16ToBuf function reinterprets []uint16 as []byte -func utf16ToBuf(buf []uint16) []byte { - sl := struct { - addr *byte - len int - cap int - }{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2} - return *(*[]byte)(unsafe.Pointer(&sl)) -} - -func wcslen(str []uint16) int { - for i := 0; i < len(str); i++ { - if str[i] == 0 { - return i - } - } - return len(str) -} - -// DeviceRegistryProperty method retrieves a specified Plug and Play device property. -func (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) { - return SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property) -} - -//sys setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW - -// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device. -func SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { - return setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers))) -} - -// SetDeviceRegistryProperty function sets a Plug and Play device property for a device. -func (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { - return SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers) -} - -// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device. -func (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error { - str16, err := UTF16FromString(str) - if err != nil { - return err - } - err = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0))) - runtime.KeepAlive(str16) - return err -} - -//sys setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW - -// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element. -func SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) { - params := &DevInstallParams{} - params.size = uint32(unsafe.Sizeof(*params)) - - return params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params) -} - -// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) { - return SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData) -} - -//sys setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW - -// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device. -func SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) { - reqSize := uint32(1024) - for { - buf := make([]uint16, reqSize) - err := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return "", err - } - return UTF16ToString(buf), nil - } -} - -// DeviceInstanceID method retrieves the instance ID of the device. -func (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) { - return SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData) -} - -// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element. -//sys SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW - -// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error { - return SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize) -} - -//sys SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW - -// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error { - return SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams) -} - -// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element. -//sys SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW - -// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error { - return SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize) -} - -//sys setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW - -// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer. -func SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) { - var classNameUTF16 [MAX_CLASS_NAME_LEN]uint16 - - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - - err = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0) - if err != nil { - return - } - - className = UTF16ToString(classNameUTF16[:]) - return -} - -//sys setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW - -// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer. -func SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) { - classNameUTF16, err := UTF16PtrFromString(className) - if err != nil { - return nil, err - } - - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return nil, err - } - } - - reqSize := uint32(4) - for { - buf := make([]GUID, reqSize) - err = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return nil, err - } - return buf[:reqSize], nil - } -} - -//sys setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice - -// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set. -func SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) { - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiGetSelectedDevice(deviceInfoSet, data) -} - -// SelectedDevice method retrieves the selected device information element in a device information set. -func (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) { - return SetupDiGetSelectedDevice(deviceInfoSet) -} - -// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. -//sys SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice - -// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. -func (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error { - return SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData) -} - -//sys setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW - -// SetupUninstallOEMInf uninstalls the specified driver. -func SetupUninstallOEMInf(infFileName string, flags SUOI) error { - infFileName16, err := UTF16PtrFromString(infFileName) - if err != nil { - return err - } - return setupUninstallOEMInf(infFileName16, flags, 0) -} - -//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err - -//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW -//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW - -func CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) { - deviceID16, err := UTF16PtrFromString(deviceID) - if err != nil { - return nil, err - } - var buf []uint16 - var buflen uint32 - for { - if ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS { - return nil, ret - } - buf = make([]uint16, buflen) - if ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS { - break - } else if ret != CR_BUFFER_SMALL { - return nil, ret - } - } - var interfaces []string - for i := 0; i < len(buf); { - j := i + wcslen(buf[i:]) - if i < j { - interfaces = append(interfaces, UTF16ToString(buf[i:j])) - } - i = j + 1 - } - if interfaces == nil { - return nil, ERROR_NO_SUCH_DEVICE_INTERFACE - } - return interfaces, nil -} - -//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status - -func CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error { - ret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags) - if ret == CR_SUCCESS { - return nil - } - return ret -} diff --git a/vendor/golang.org/x/sys/windows/str.go b/vendor/golang.org/x/sys/windows/str.go deleted file mode 100644 index 6a4f9ce..0000000 --- a/vendor/golang.org/x/sys/windows/str.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows - -package windows - -func itoa(val int) string { // do it here rather than with fmt to avoid dependency - if val < 0 { - return "-" + itoa(-val) - } - var buf [32]byte // big enough for int64 - i := len(buf) - 1 - for val >= 10 { - buf[i] = byte(val%10 + '0') - i-- - val /= 10 - } - buf[i] = byte(val + '0') - return string(buf[i:]) -} diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go deleted file mode 100644 index e85ed6b..0000000 --- a/vendor/golang.org/x/sys/windows/syscall.go +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build windows - -// Package windows contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display the OS-specific documentation for the current -// system. If you want godoc to display syscall documentation for another -// system, set $GOOS and $GOARCH to the desired system. For example, if -// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS -// to freebsd and $GOARCH to arm. -// -// The primary use of this package is inside other packages that provide a more -// portable interface to the system, such as "os", "time" and "net". Use -// those packages rather than this one if you can. -// -// For details of the functions and data types in this package consult -// the manuals for the appropriate operating system. -// -// These calls return err == nil to indicate success; otherwise -// err represents an operating system error describing the failure and -// holds a value of type syscall.Errno. -package windows // import "golang.org/x/sys/windows" - -import ( - "bytes" - "strings" - "syscall" - "unsafe" -) - -// ByteSliceFromString returns a NUL-terminated slice of bytes -// containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func ByteSliceFromString(s string) ([]byte, error) { - if strings.IndexByte(s, 0) != -1 { - return nil, syscall.EINVAL - } - a := make([]byte, len(s)+1) - copy(a, s) - return a, nil -} - -// BytePtrFromString returns a pointer to a NUL-terminated array of -// bytes containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func BytePtrFromString(s string) (*byte, error) { - a, err := ByteSliceFromString(s) - if err != nil { - return nil, err - } - return &a[0], nil -} - -// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any -// bytes after the NUL removed. -func ByteSliceToString(s []byte) string { - if i := bytes.IndexByte(s, 0); i != -1 { - s = s[:i] - } - return string(s) -} - -// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. -// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated -// at a zero byte; if the zero byte is not present, the program may crash. -func BytePtrToString(p *byte) string { - if p == nil { - return "" - } - if *p == 0 { - return "" - } - - // Find NUL terminator. - n := 0 - for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + 1) - } - - return string(unsafe.Slice(p, n)) -} - -// Single-word zero for use when we need a valid pointer to 0 bytes. -// See mksyscall.pl. -var _zero uintptr - -func (ts *Timespec) Unix() (sec int64, nsec int64) { - return int64(ts.Sec), int64(ts.Nsec) -} - -func (tv *Timeval) Unix() (sec int64, nsec int64) { - return int64(tv.Sec), int64(tv.Usec) * 1000 -} - -func (ts *Timespec) Nano() int64 { - return int64(ts.Sec)*1e9 + int64(ts.Nsec) -} - -func (tv *Timeval) Nano() int64 { - return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 -} diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go deleted file mode 100644 index bd51337..0000000 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ /dev/null @@ -1,1936 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Windows system calls. - -package windows - -import ( - errorspkg "errors" - "fmt" - "runtime" - "sync" - "syscall" - "time" - "unicode/utf16" - "unsafe" -) - -type ( - Handle uintptr - HWND uintptr -) - -const ( - InvalidHandle = ^Handle(0) - InvalidHWND = ^HWND(0) - - // Flags for DefineDosDevice. - DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 - DDD_NO_BROADCAST_SYSTEM = 0x00000008 - DDD_RAW_TARGET_PATH = 0x00000001 - DDD_REMOVE_DEFINITION = 0x00000002 - - // Return values for GetDriveType. - DRIVE_UNKNOWN = 0 - DRIVE_NO_ROOT_DIR = 1 - DRIVE_REMOVABLE = 2 - DRIVE_FIXED = 3 - DRIVE_REMOTE = 4 - DRIVE_CDROM = 5 - DRIVE_RAMDISK = 6 - - // File system flags from GetVolumeInformation and GetVolumeInformationByHandle. - FILE_CASE_SENSITIVE_SEARCH = 0x00000001 - FILE_CASE_PRESERVED_NAMES = 0x00000002 - FILE_FILE_COMPRESSION = 0x00000010 - FILE_DAX_VOLUME = 0x20000000 - FILE_NAMED_STREAMS = 0x00040000 - FILE_PERSISTENT_ACLS = 0x00000008 - FILE_READ_ONLY_VOLUME = 0x00080000 - FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000 - FILE_SUPPORTS_ENCRYPTION = 0x00020000 - FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000 - FILE_SUPPORTS_HARD_LINKS = 0x00400000 - FILE_SUPPORTS_OBJECT_IDS = 0x00010000 - FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000 - FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 - FILE_SUPPORTS_SPARSE_FILES = 0x00000040 - FILE_SUPPORTS_TRANSACTIONS = 0x00200000 - FILE_SUPPORTS_USN_JOURNAL = 0x02000000 - FILE_UNICODE_ON_DISK = 0x00000004 - FILE_VOLUME_IS_COMPRESSED = 0x00008000 - FILE_VOLUME_QUOTAS = 0x00000020 - - // Flags for LockFileEx. - LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 - LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 - - // Return value of SleepEx and other APC functions - WAIT_IO_COMPLETION = 0x000000C0 -) - -// StringToUTF16 is deprecated. Use UTF16FromString instead. -// If s contains a NUL byte this function panics instead of -// returning an error. -func StringToUTF16(s string) []uint16 { - a, err := UTF16FromString(s) - if err != nil { - panic("windows: string with NUL passed to StringToUTF16") - } - return a -} - -// UTF16FromString returns the UTF-16 encoding of the UTF-8 string -// s, with a terminating NUL added. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func UTF16FromString(s string) ([]uint16, error) { - return syscall.UTF16FromString(s) -} - -// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, -// with a terminating NUL and any bytes after the NUL removed. -func UTF16ToString(s []uint16) string { - return syscall.UTF16ToString(s) -} - -// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. -// If s contains a NUL byte this function panics instead of -// returning an error. -func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] } - -// UTF16PtrFromString returns pointer to the UTF-16 encoding of -// the UTF-8 string s, with a terminating NUL added. If s -// contains a NUL byte at any location, it returns (nil, syscall.EINVAL). -func UTF16PtrFromString(s string) (*uint16, error) { - a, err := UTF16FromString(s) - if err != nil { - return nil, err - } - return &a[0], nil -} - -// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string. -// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated -// at a zero word; if the zero word is not present, the program may crash. -func UTF16PtrToString(p *uint16) string { - if p == nil { - return "" - } - if *p == 0 { - return "" - } - - // Find NUL terminator. - n := 0 - for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) - } - return UTF16ToString(unsafe.Slice(p, n)) -} - -func Getpagesize() int { return 4096 } - -// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. -// This is useful when interoperating with Windows code requiring callbacks. -// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. -func NewCallback(fn interface{}) uintptr { - return syscall.NewCallback(fn) -} - -// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention. -// This is useful when interoperating with Windows code requiring callbacks. -// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. -func NewCallbackCDecl(fn interface{}) uintptr { - return syscall.NewCallbackCDecl(fn) -} - -// windows api calls - -//sys GetLastError() (lasterr error) -//sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW -//sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW -//sys FreeLibrary(handle Handle) (err error) -//sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) -//sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW -//sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW -//sys SetDefaultDllDirectories(directoryFlags uint32) (err error) -//sys AddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory -//sys RemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory -//sys SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW -//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 IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2? -//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW -//sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW -//sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) -//sys DisconnectNamedPipe(pipe Handle) (err error) -//sys GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) -//sys GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) -//sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) -//sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW -//sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState -//sys readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = ReadFile -//sys writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile -//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] -//sys SetStdHandle(stdhandle uint32, handle Handle) (err error) -//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW -//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 SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen 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 -//sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW -//sys DeleteFile(path *uint16) (err error) = DeleteFileW -//sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW -//sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW -//sys LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) -//sys UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) -//sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW -//sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW -//sys SetEndOfFile(handle Handle) (err error) -//sys SetFileValidData(handle Handle, validDataLength int64) (err error) -//sys GetSystemTimeAsFileTime(time *Filetime) -//sys GetSystemTimePreciseAsFileTime(time *Filetime) -//sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) -//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) -//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) -//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 CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW -//sys initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList -//sys deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList -//sys updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute -//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) [failretval<=32] = shell32.ShellExecuteW -//sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId -//sys LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW -//sys UnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout -//sys GetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout -//sys ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx -//sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow -//sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW -//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx -//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath -//sys TerminateProcess(handle Handle, exitcode uint32) (err error) -//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) -//sys getStartupInfo(startupInfo *StartupInfo) = GetStartupInfoW -//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] -//sys waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects -//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW -//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) -//sys GetFileType(filehandle Handle) (n uint32, err error) -//sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW -//sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext -//sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom -//sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW -//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 ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW -//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 GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) -//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 -//sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW -//sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW -//sys commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW -//sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] -//sys LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) -//sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) -//sys FlushFileBuffers(handle Handle) (err error) -//sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW -//sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW -//sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW -//sys GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW -//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW -//sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) -//sys UnmapViewOfFile(addr uintptr) (err error) -//sys FlushViewOfFile(addr uintptr, length uintptr) (err error) -//sys VirtualLock(addr uintptr, length uintptr) (err error) -//sys VirtualUnlock(addr uintptr, length uintptr) (err error) -//sys VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc -//sys VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree -//sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect -//sys VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx -//sys VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery -//sys VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx -//sys ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory -//sys WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory -//sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile -//sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW -//sys FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW -//sys FindNextChangeNotification(handle Handle) (err error) -//sys FindCloseChangeNotification(handle Handle) (err error) -//sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW -//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore -//sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore -//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore -//sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore -//sys CertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore -//sys CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext -//sys PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore -//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain -//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain -//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext -//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext -//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy -//sys CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW -//sys CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension -//sys CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore -//sys CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore -//sys CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey -//sys CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject -//sys CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject -//sys CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData -//sys CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData -//sys WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx -//sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW -//sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey -//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 RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue -//sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId -//sys ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId -//sys ClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole -//sys createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole -//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 -//sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition -//sys GetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP -//sys GetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP -//sys SetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP -//sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP -//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW -//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW -//sys GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) = kernel32.GetNumberOfConsoleInputEvents -//sys FlushConsoleInputBuffer(console Handle) (err error) = kernel32.FlushConsoleInputBuffer -//sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole -//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot -//sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW -//sys Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW -//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 -//sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW -//sys GetCurrentThreadId() (id uint32) -//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW -//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW -//sys OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW -//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 CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW -//sys CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW -//sys OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW -//sys ReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex -//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 QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject -//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 QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW -//sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) -//sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost -//sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) -//sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) -//sys ClearCommBreak(handle Handle) (err error) -//sys ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) -//sys EscapeCommFunction(handle Handle, dwFunc uint32) (err error) -//sys GetCommState(handle Handle, lpDCB *DCB) (err error) -//sys GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) -//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) -//sys PurgeComm(handle Handle, dwFlags uint32) (err error) -//sys SetCommBreak(handle Handle) (err error) -//sys SetCommMask(handle Handle, dwEvtMask uint32) (err error) -//sys SetCommState(handle Handle, lpDCB *DCB) (err error) -//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) -//sys SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) -//sys WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) -//sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) -//sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) -//sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows -//sys EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows -//sys GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW -//sys GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow -//sys GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow -//sys IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow -//sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode -//sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible -//sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo -//sys GetLargePageMinimum() (size uintptr) - -// Volume Management Functions -//sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW -//sys DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW -//sys FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW -//sys FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW -//sys FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW -//sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW -//sys FindVolumeClose(findVolume Handle) (err error) -//sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) -//sys GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW -//sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW -//sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0] -//sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW -//sys GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW -//sys GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW -//sys GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW -//sys GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW -//sys GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW -//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 InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW -//sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters -//sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters -//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 -//sys CoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx -//sys CoUninitialize() = ole32.CoUninitialize -//sys CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject -//sys getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages -//sys getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages -//sys getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages -//sys getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages -//sys findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW -//sys SizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource -//sys LoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource -//sys LockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource - -// Version APIs -//sys GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW -//sys GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW -//sys VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW - -// Process Status API (PSAPI) -//sys enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses -//sys EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules -//sys EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx -//sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation -//sys GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW -//sys GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW -//sys QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx - -// NT Native APIs -//sys rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb -//sys rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion -//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers -//sys RtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb -//sys RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString -//sys RtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString -//sys NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile -//sys NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile -//sys NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile -//sys RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus -//sys RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus -//sys RtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl -//sys NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess -//sys NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess -//sys NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation -//sys NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation -//sys RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable -//sys RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable - -// Desktop Window Manager API (Dwmapi) -//sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute -//sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute - -// Windows Multimedia API -//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod -//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod - -// syscall interface implementation for other packages - -// GetCurrentProcess returns the handle for the current process. -// It is a pseudo handle that does not need to be closed. -// The returned error is always nil. -// -// Deprecated: use CurrentProcess for the same Handle without the nil -// error. -func GetCurrentProcess() (Handle, error) { - return CurrentProcess(), nil -} - -// CurrentProcess returns the handle for the current process. -// It is a pseudo handle that does not need to be closed. -func CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) } - -// GetCurrentThread returns the handle for the current thread. -// It is a pseudo handle that does not need to be closed. -// The returned error is always nil. -// -// Deprecated: use CurrentThread for the same Handle without the nil -// error. -func GetCurrentThread() (Handle, error) { - return CurrentThread(), nil -} - -// CurrentThread returns the handle for the current thread. -// It is a pseudo handle that does not need to be closed. -func CurrentThread() Handle { return Handle(^uintptr(2 - 1)) } - -// GetProcAddressByOrdinal retrieves the address of the exported -// function from module by ordinal. -func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) { - r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0) - proc = uintptr(r0) - if proc == 0 { - err = errnoErr(e1) - } - return -} - -func Exit(code int) { ExitProcess(uint32(code)) } - -func makeInheritSa() *SecurityAttributes { - var sa SecurityAttributes - sa.Length = uint32(unsafe.Sizeof(sa)) - sa.InheritHandle = 1 - return &sa -} - -func Open(path string, mode int, perm uint32) (fd Handle, err error) { - if len(path) == 0 { - return InvalidHandle, ERROR_FILE_NOT_FOUND - } - pathp, err := UTF16PtrFromString(path) - if err != nil { - return InvalidHandle, err - } - var access uint32 - switch mode & (O_RDONLY | O_WRONLY | O_RDWR) { - case O_RDONLY: - access = GENERIC_READ - case O_WRONLY: - access = GENERIC_WRITE - case O_RDWR: - access = GENERIC_READ | GENERIC_WRITE - } - if mode&O_CREAT != 0 { - access |= GENERIC_WRITE - } - if mode&O_APPEND != 0 { - access &^= GENERIC_WRITE - access |= FILE_APPEND_DATA - } - sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE) - var sa *SecurityAttributes - if mode&O_CLOEXEC == 0 { - sa = makeInheritSa() - } - var createmode uint32 - switch { - case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL): - createmode = CREATE_NEW - case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC): - createmode = CREATE_ALWAYS - case mode&O_CREAT == O_CREAT: - createmode = OPEN_ALWAYS - case mode&O_TRUNC == O_TRUNC: - createmode = TRUNCATE_EXISTING - default: - createmode = OPEN_EXISTING - } - var attrs uint32 = FILE_ATTRIBUTE_NORMAL - if perm&S_IWRITE == 0 { - attrs = FILE_ATTRIBUTE_READONLY - } - h, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0) - return h, e -} - -func Read(fd Handle, p []byte) (n int, err error) { - var done uint32 - e := ReadFile(fd, p, &done, nil) - if e != nil { - if e == ERROR_BROKEN_PIPE { - // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin - return 0, nil - } - return 0, e - } - return int(done), nil -} - -func Write(fd Handle, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - var done uint32 - e := WriteFile(fd, p, &done, nil) - if e != nil { - return 0, e - } - return int(done), nil -} - -func ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { - err := readFile(fd, p, done, overlapped) - if raceenabled { - if *done > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), int(*done)) - } - raceAcquire(unsafe.Pointer(&ioSync)) - } - return err -} - -func WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - err := writeFile(fd, p, done, overlapped) - if raceenabled && *done > 0 { - raceReadRange(unsafe.Pointer(&p[0]), int(*done)) - } - return err -} - -var ioSync int64 - -func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) { - var w uint32 - switch whence { - case 0: - w = FILE_BEGIN - case 1: - w = FILE_CURRENT - case 2: - w = FILE_END - } - hi := int32(offset >> 32) - lo := int32(offset) - // use GetFileType to check pipe, pipe can't do seek - ft, _ := GetFileType(fd) - if ft == FILE_TYPE_PIPE { - return 0, syscall.EPIPE - } - rlo, e := SetFilePointer(fd, lo, &hi, w) - if e != nil { - return 0, e - } - return int64(hi)<<32 + int64(rlo), nil -} - -func Close(fd Handle) (err error) { - return CloseHandle(fd) -} - -var ( - Stdin = getStdHandle(STD_INPUT_HANDLE) - Stdout = getStdHandle(STD_OUTPUT_HANDLE) - Stderr = getStdHandle(STD_ERROR_HANDLE) -) - -func getStdHandle(stdhandle uint32) (fd Handle) { - r, _ := GetStdHandle(stdhandle) - return r -} - -const ImplementsGetwd = true - -func Getwd() (wd string, err error) { - b := make([]uint16, 300) - n, e := GetCurrentDirectory(uint32(len(b)), &b[0]) - if e != nil { - return "", e - } - return string(utf16.Decode(b[0:n])), nil -} - -func Chdir(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return SetCurrentDirectory(pathp) -} - -func Mkdir(path string, mode uint32) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return CreateDirectory(pathp, nil) -} - -func Rmdir(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return RemoveDirectory(pathp) -} - -func Unlink(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return DeleteFile(pathp) -} - -func Rename(oldpath, newpath string) (err error) { - from, err := UTF16PtrFromString(oldpath) - if err != nil { - return err - } - to, err := UTF16PtrFromString(newpath) - if err != nil { - return err - } - return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) -} - -func ComputerName() (name string, err error) { - var n uint32 = MAX_COMPUTERNAME_LENGTH + 1 - b := make([]uint16, n) - e := GetComputerName(&b[0], &n) - if e != nil { - return "", e - } - 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) { - type _FILE_END_OF_FILE_INFO struct { - EndOfFile int64 - } - var info _FILE_END_OF_FILE_INFO - info.EndOfFile = length - return SetFileInformationByHandle(fd, FileEndOfFileInfo, (*byte)(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info))) -} - -func Gettimeofday(tv *Timeval) (err error) { - var ft Filetime - GetSystemTimeAsFileTime(&ft) - *tv = NsecToTimeval(ft.Nanoseconds()) - return nil -} - -func Pipe(p []Handle) (err error) { - if len(p) != 2 { - return syscall.EINVAL - } - var r, w Handle - e := CreatePipe(&r, &w, makeInheritSa(), 0) - if e != nil { - return e - } - p[0] = r - p[1] = w - return nil -} - -func Utimes(path string, tv []Timeval) (err error) { - if len(tv) != 2 { - return syscall.EINVAL - } - pathp, e := UTF16PtrFromString(path) - if e != nil { - return e - } - h, e := CreateFile(pathp, - FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) - if e != nil { - return e - } - defer CloseHandle(h) - a := NsecToFiletime(tv[0].Nanoseconds()) - w := NsecToFiletime(tv[1].Nanoseconds()) - return SetFileTime(h, nil, &a, &w) -} - -func UtimesNano(path string, ts []Timespec) (err error) { - if len(ts) != 2 { - return syscall.EINVAL - } - pathp, e := UTF16PtrFromString(path) - if e != nil { - return e - } - h, e := CreateFile(pathp, - FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) - if e != nil { - return e - } - defer CloseHandle(h) - a := NsecToFiletime(TimespecToNsec(ts[0])) - w := NsecToFiletime(TimespecToNsec(ts[1])) - return SetFileTime(h, nil, &a, &w) -} - -func Fsync(fd Handle) (err error) { - return FlushFileBuffers(fd) -} - -func Chmod(path string, mode uint32) (err error) { - p, e := UTF16PtrFromString(path) - if e != nil { - return e - } - attrs, e := GetFileAttributes(p) - if e != nil { - return e - } - if mode&S_IWRITE != 0 { - attrs &^= FILE_ATTRIBUTE_READONLY - } else { - attrs |= FILE_ATTRIBUTE_READONLY - } - return SetFileAttributes(p, attrs) -} - -func LoadGetSystemTimePreciseAsFileTime() error { - return procGetSystemTimePreciseAsFileTime.Find() -} - -func LoadCancelIoEx() error { - return procCancelIoEx.Find() -} - -func LoadSetFileCompletionNotificationModes() error { - return procSetFileCompletionNotificationModes.Find() -} - -func WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { - // Every other win32 array API takes arguments as "pointer, count", except for this function. So we - // can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore - // trivially stub this ourselves. - - var handlePtr *Handle - if len(handles) > 0 { - handlePtr = &handles[0] - } - return waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds) -} - -// net api calls - -const socket_error = uintptr(^uint32(0)) - -//sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup -//sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup -//sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl -//sys WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW -//sys WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW -//sys WSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd -//sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket -//sys sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto -//sys recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom -//sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt -//sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt -//sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind -//sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect -//sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname -//sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername -//sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen -//sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown -//sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket -//sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx -//sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs -//sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv -//sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend -//sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom -//sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo -//sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW -//sys WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW -//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname -//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname -//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs -//sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname -//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W -//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree -//sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W -//sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW -//sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW -//sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry -//sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo -//sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes -//sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW -//sys WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult -//sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses -//sys GetACP() (acp uint32) = kernel32.GetACP -//sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar -//sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx -//sys GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex -//sys GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry -//sys NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange -//sys NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange -//sys CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2 - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [100]int8 -} - -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs -} - -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -type RawSockaddrUnix struct { - Family uint16 - Path [UNIX_PATH_MAX]int8 -} - -type SockaddrUnix struct { - Name string - raw RawSockaddrUnix -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { - name := sa.Name - n := len(name) - if n > len(sa.raw.Path) { - return nil, 0, syscall.EINVAL - } - if n == len(sa.raw.Path) && name[0] != '@' { - return nil, 0, syscall.EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := int32(2) - if n > 0 { - sl += int32(n) + 1 - } - if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { - // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -type RawSockaddrBth struct { - AddressFamily [2]byte - BtAddr [8]byte - ServiceClassId [16]byte - Port [4]byte -} - -type SockaddrBth struct { - BtAddr uint64 - ServiceClassId GUID - Port uint32 - - raw RawSockaddrBth -} - -func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) { - family := AF_BTH - sa.raw = RawSockaddrBth{ - AddressFamily: *(*[2]byte)(unsafe.Pointer(&family)), - BtAddr: *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)), - Port: *(*[4]byte)(unsafe.Pointer(&sa.Port)), - ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)), - } - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - if pp.Path[0] == 0 { - // "Abstract" Unix domain socket. - // Rewrite leading NUL as @ for textual display. - // (This is the standard convention.) - // Not friendly to overwrite in place, - // but the callers below don't care. - pp.Path[0] = '@' - } - - // Assume path ends at NUL. - // This is not technically the Linux semantics for - // abstract Unix domain sockets--they are supposed - // to be uninterpreted fixed-size binary blobs--but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - } - return nil, syscall.EAFNOSUPPORT -} - -func Socket(domain, typ, proto int) (fd Handle, err error) { - if domain == AF_INET6 && SocketDisableIPv6 { - return InvalidHandle, syscall.EAFNOSUPPORT - } - return socket(int32(domain), int32(typ), int32(proto)) -} - -func SetsockoptInt(fd Handle, level, opt int, value int) (err error) { - v := int32(value) - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v))) -} - -func Bind(fd Handle, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd Handle, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) { - ptr, _, err := sa.sockaddr() - if err != nil { - return err - } - return getBestInterfaceEx(ptr, pdwBestIfIndex) -} - -func Getsockname(fd Handle) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - if err = getsockname(fd, &rsa, &l); err != nil { - return - } - return rsa.Sockaddr() -} - -func Getpeername(fd Handle) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - if err = getpeername(fd, &rsa, &l); err != nil { - return - } - return rsa.Sockaddr() -} - -func Listen(s Handle, n int) (err error) { - return listen(s, int32(n)) -} - -func Shutdown(fd Handle, how int) (err error) { - return shutdown(fd, int32(how)) -} - -func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { - var rsa unsafe.Pointer - var l int32 - if to != nil { - rsa, l, err = to.sockaddr() - if err != nil { - return err - } - } - return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) -} - -func LoadGetAddrInfo() error { - return procGetAddrInfoW.Find() -} - -var connectExFunc struct { - once sync.Once - addr uintptr - err error -} - -func LoadConnectEx() error { - connectExFunc.once.Do(func() { - var s Handle - s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) - if connectExFunc.err != nil { - return - } - defer CloseHandle(s) - var n uint32 - connectExFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)), - uint32(unsafe.Sizeof(WSAID_CONNECTEX)), - (*byte)(unsafe.Pointer(&connectExFunc.addr)), - uint32(unsafe.Sizeof(connectExFunc.addr)), - &n, nil, 0) - }) - return connectExFunc.err -} - -func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error { - err := LoadConnectEx() - if err != nil { - return errorspkg.New("failed to find ConnectEx: " + err.Error()) - } - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) -} - -var sendRecvMsgFunc struct { - once sync.Once - sendAddr uintptr - recvAddr uintptr - err error -} - -func loadWSASendRecvMsg() error { - sendRecvMsgFunc.once.Do(func() { - var s Handle - s, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) - if sendRecvMsgFunc.err != nil { - return - } - defer CloseHandle(s) - var n uint32 - sendRecvMsgFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)), - uint32(unsafe.Sizeof(WSAID_WSARECVMSG)), - (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)), - uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)), - &n, nil, 0) - if sendRecvMsgFunc.err != nil { - return - } - sendRecvMsgFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)), - uint32(unsafe.Sizeof(WSAID_WSASENDMSG)), - (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)), - uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)), - &n, nil, 0) - }) - return sendRecvMsgFunc.err -} - -func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error { - err := loadWSASendRecvMsg() - if err != nil { - return err - } - r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - err = errnoErr(e1) - } - return err -} - -func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error { - err := loadWSASendRecvMsg() - if err != nil { - return err - } - r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return err -} - -// Invented structures to support what package os expects. -type Rusage struct { - CreationTime Filetime - ExitTime Filetime - KernelTime Filetime - UserTime Filetime -} - -type WaitStatus struct { - ExitCode uint32 -} - -func (w WaitStatus) Exited() bool { return true } - -func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) } - -func (w WaitStatus) Signal() Signal { return -1 } - -func (w WaitStatus) CoreDump() bool { return false } - -func (w WaitStatus) Stopped() bool { return false } - -func (w WaitStatus) Continued() bool { return false } - -func (w WaitStatus) StopSignal() Signal { return -1 } - -func (w WaitStatus) Signaled() bool { return false } - -func (w WaitStatus) TrapCause() int { return -1 } - -// Timespec is an invented structure on Windows, but here for -// consistency with the corresponding package for other operating systems. -type Timespec struct { - Sec int64 - Nsec int64 -} - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -// TODO(brainman): fix all needed for net - -func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS } - -func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - n32, err := recvfrom(fd, p, int32(flags), &rsa, &l) - n = int(n32) - if err != nil { - return - } - from, err = rsa.Sockaddr() - return -} - -func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { - ptr, l, err := to.sockaddr() - if err != nil { - return err - } - return sendto(fd, p, int32(flags), ptr, l) -} - -func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS } - -// The Linger struct is wrong but we only noticed after Go 1. -// sysLinger is the real system call structure. - -// BUG(brainman): The definition of Linger is not appropriate for direct use -// with Setsockopt and Getsockopt. -// Use SetsockoptLinger instead. - -type Linger struct { - Onoff int32 - Linger int32 -} - -type sysLinger struct { - Onoff uint16 - Linger uint16 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -func GetsockoptInt(fd Handle, level, opt int) (int, error) { - v := int32(0) - l := int32(unsafe.Sizeof(v)) - err := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l) - return int(v), err -} - -func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { - sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys))) -} - -func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) -} - -func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) -} - -func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { - return syscall.EWINDOWS -} - -func EnumProcesses(processIds []uint32, bytesReturned *uint32) error { - // EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses - // the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy. - var p *uint32 - if len(processIds) > 0 { - p = &processIds[0] - } - size := uint32(len(processIds) * 4) - return enumProcesses(p, size, bytesReturned) -} - -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: - // the two paths are each one uint16 short. Use the correct struct, - // a win32finddata1, and then copy the results out. - // There is no loss of expressivity here, because the final - // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that. - // For Go 1.1, we might avoid the allocation of win32finddata1 here - // by adding a final Bug [2]uint16 field to the struct and then - // adjusting the fields in the result directly. - var data1 win32finddata1 - handle, err = findFirstFile1(name, &data1) - if err == nil { - copyFindData(data, &data1) - } - return -} - -func FindNextFile(handle Handle, data *Win32finddata) (err error) { - var data1 win32finddata1 - err = findNextFile1(handle, &data1) - if err == nil { - copyFindData(data, &data1) - } - return -} - -func getProcessEntry(pid int) (*ProcessEntry32, error) { - snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) - if err != nil { - return nil, err - } - defer CloseHandle(snapshot) - var procEntry ProcessEntry32 - procEntry.Size = uint32(unsafe.Sizeof(procEntry)) - if err = Process32First(snapshot, &procEntry); err != nil { - return nil, err - } - for { - if procEntry.ProcessID == uint32(pid) { - return &procEntry, nil - } - err = Process32Next(snapshot, &procEntry) - if err != nil { - return nil, err - } - } -} - -func Getppid() (ppid int) { - pe, err := getProcessEntry(Getpid()) - if err != nil { - return -1 - } - return int(pe.ParentProcessID) -} - -// TODO(brainman): fix all needed for os -func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS } -func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS } -func Symlink(path, link string) (err error) { return syscall.EWINDOWS } - -func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS } -func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } -func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } -func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS } - -func Getuid() (uid int) { return -1 } -func Geteuid() (euid int) { return -1 } -func Getgid() (gid int) { return -1 } -func Getegid() (egid int) { return -1 } -func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS } - -type Signal int - -func (s Signal) Signal() {} - -func (s Signal) String() string { - if 0 <= s && int(s) < len(signals) { - str := signals[s] - if str != "" { - return str - } - } - return "signal " + itoa(int(s)) -} - -func LoadCreateSymbolicLink() error { - return procCreateSymbolicLinkW.Find() -} - -// Readlink returns the destination of the named symbolic link. -func Readlink(path string, buf []byte) (n int, err error) { - fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING, - FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0) - if err != nil { - return -1, err - } - defer CloseHandle(fd) - - rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE) - var bytesReturned uint32 - err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil) - if err != nil { - return -1, err - } - - rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0])) - var s string - switch rdb.ReparseTag { - case IO_REPARSE_TAG_SYMLINK: - data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) - p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) - s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) - case IO_REPARSE_TAG_MOUNT_POINT: - data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) - p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) - s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) - default: - // the path is not a symlink or junction but another type of reparse - // point - return -1, syscall.ENOENT - } - n = copy(buf, []byte(s)) - - 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 UTF16PtrToString(p), nil -} - -// RtlGetVersion returns the version of the underlying operating system, ignoring -// manifest semantics but is affected by the application compatibility layer. -func RtlGetVersion() *OsVersionInfoEx { - info := &OsVersionInfoEx{} - info.osVersionInfoSize = uint32(unsafe.Sizeof(*info)) - // According to documentation, this function always succeeds. - // The function doesn't even check the validity of the - // osVersionInfoSize member. Disassembling ntdll.dll indicates - // that the documentation is indeed correct about that. - _ = rtlGetVersion(info) - return info -} - -// RtlGetNtVersionNumbers returns the version of the underlying operating system, -// ignoring manifest semantics and the application compatibility layer. -func RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) { - rtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber) - buildNumber &= 0xffff - return -} - -// GetProcessPreferredUILanguages retrieves the process preferred UI languages. -func GetProcessPreferredUILanguages(flags uint32) ([]string, error) { - return getUILanguages(flags, getProcessPreferredUILanguages) -} - -// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread. -func GetThreadPreferredUILanguages(flags uint32) ([]string, error) { - return getUILanguages(flags, getThreadPreferredUILanguages) -} - -// GetUserPreferredUILanguages retrieves information about the user preferred UI languages. -func GetUserPreferredUILanguages(flags uint32) ([]string, error) { - return getUILanguages(flags, getUserPreferredUILanguages) -} - -// GetSystemPreferredUILanguages retrieves the system preferred UI languages. -func GetSystemPreferredUILanguages(flags uint32) ([]string, error) { - return getUILanguages(flags, getSystemPreferredUILanguages) -} - -func getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) { - size := uint32(128) - for { - var numLanguages uint32 - buf := make([]uint16, size) - err := f(flags, &numLanguages, &buf[0], &size) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return nil, err - } - buf = buf[:size] - if numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with "\0\0" - return []string{}, nil - } - if buf[len(buf)-1] == 0 { - buf = buf[:len(buf)-1] // remove terminating null - } - languages := make([]string, 0, numLanguages) - from := 0 - for i, c := range buf { - if c == 0 { - languages = append(languages, string(utf16.Decode(buf[from:i]))) - from = i + 1 - } - } - return languages, nil - } -} - -func SetConsoleCursorPosition(console Handle, position Coord) error { - return setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position)))) -} - -func GetStartupInfo(startupInfo *StartupInfo) error { - getStartupInfo(startupInfo) - return nil -} - -func (s NTStatus) Errno() syscall.Errno { - return rtlNtStatusToDosErrorNoTeb(s) -} - -func langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) } - -func (s NTStatus) Error() string { - b := make([]uint16, 300) - n, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil) - if err != nil { - return fmt.Sprintf("NTSTATUS 0x%08x", uint32(s)) - } - // trim terminating \r and \n - for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- { - } - return string(utf16.Decode(b[:n])) -} - -// NewNTUnicodeString returns a new NTUnicodeString structure for use with native -// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs -// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for -// the more common *uint16 string type. -func NewNTUnicodeString(s string) (*NTUnicodeString, error) { - s16, err := UTF16FromString(s) - if err != nil { - return nil, err - } - n := uint16(len(s16) * 2) - return &NTUnicodeString{ - Length: n - 2, // subtract 2 bytes for the NULL terminator - MaximumLength: n, - Buffer: &s16[0], - }, nil -} - -// Slice returns a uint16 slice that aliases the data in the NTUnicodeString. -func (s *NTUnicodeString) Slice() []uint16 { - // Note: this rounds the length down, if it happens - // to (incorrectly) be odd. Probably safer than rounding up. - return unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2] -} - -func (s *NTUnicodeString) String() string { - return UTF16ToString(s.Slice()) -} - -// NewNTString returns a new NTString structure for use with native -// NT APIs that work over the NTString type. Note that most Windows APIs -// do not use NTString, and instead UTF16PtrFromString should be used for -// the more common *uint16 string type. -func NewNTString(s string) (*NTString, error) { - var nts NTString - s8, err := BytePtrFromString(s) - if err != nil { - return nil, err - } - RtlInitString(&nts, s8) - return &nts, nil -} - -// Slice returns a byte slice that aliases the data in the NTString. -func (s *NTString) Slice() []byte { - slice := unsafe.Slice(s.Buffer, s.MaximumLength) - return slice[:s.Length] -} - -func (s *NTString) String() string { - return ByteSliceToString(s.Slice()) -} - -// FindResource resolves a resource of the given name and resource type. -func FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) { - var namePtr, resTypePtr uintptr - var name16, resType16 *uint16 - var err error - resolvePtr := func(i interface{}, keep **uint16) (uintptr, error) { - switch v := i.(type) { - case string: - *keep, err = UTF16PtrFromString(v) - if err != nil { - return 0, err - } - return uintptr(unsafe.Pointer(*keep)), nil - case ResourceID: - return uintptr(v), nil - } - return 0, errorspkg.New("parameter must be a ResourceID or a string") - } - namePtr, err = resolvePtr(name, &name16) - if err != nil { - return 0, err - } - resTypePtr, err = resolvePtr(resType, &resType16) - if err != nil { - return 0, err - } - resInfo, err := findResource(module, namePtr, resTypePtr) - runtime.KeepAlive(name16) - runtime.KeepAlive(resType16) - return resInfo, err -} - -func LoadResourceData(module, resInfo Handle) (data []byte, err error) { - size, err := SizeofResource(module, resInfo) - if err != nil { - return - } - resData, err := LoadResource(module, resInfo) - if err != nil { - return - } - ptr, err := LockResource(resData) - if err != nil { - return - } - data = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size) - return -} - -// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page. -type PSAPI_WORKING_SET_EX_BLOCK uint64 - -// Valid returns the validity of this page. -// If this bit is 1, the subsequent members are valid; otherwise they should be ignored. -func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool { - return (b & 1) == 1 -} - -// ShareCount is the number of processes that share this page. The maximum value of this member is 7. -func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 { - return b.intField(1, 3) -} - -// Win32Protection is the memory protection attributes of the page. For a list of values, see -// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants -func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 { - return b.intField(4, 11) -} - -// Shared returns the shared status of this page. -// If this bit is 1, the page can be shared. -func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool { - return (b & (1 << 15)) == 1 -} - -// Node is the NUMA node. The maximum value of this member is 63. -func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 { - return b.intField(16, 6) -} - -// Locked returns the locked status of this page. -// If this bit is 1, the virtual page is locked in physical memory. -func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool { - return (b & (1 << 22)) == 1 -} - -// LargePage returns the large page status of this page. -// If this bit is 1, the page is a large page. -func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool { - return (b & (1 << 23)) == 1 -} - -// Bad returns the bad status of this page. -// If this bit is 1, the page is has been reported as bad. -func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool { - return (b & (1 << 31)) == 1 -} - -// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union. -func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 { - var mask PSAPI_WORKING_SET_EX_BLOCK - for pos := start; pos < start+length; pos++ { - mask |= (1 << pos) - } - - masked := b & mask - return uint64(masked >> start) -} - -// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process. -type PSAPI_WORKING_SET_EX_INFORMATION struct { - // The virtual address. - VirtualAddress Pointer - // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. - VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK -} - -// CreatePseudoConsole creates a windows pseudo console. -func CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error { - // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only - // accept arguments that can be casted to uintptr, and Coord can't. - return createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole) -} - -// ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`. -func ResizePseudoConsole(pconsole Handle, size Coord) error { - // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only - // accept arguments that can be casted to uintptr, and Coord can't. - return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size)))) -} - -// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb. -const ( - CBR_110 = 110 - CBR_300 = 300 - CBR_600 = 600 - CBR_1200 = 1200 - CBR_2400 = 2400 - CBR_4800 = 4800 - CBR_9600 = 9600 - CBR_14400 = 14400 - CBR_19200 = 19200 - CBR_38400 = 38400 - CBR_57600 = 57600 - CBR_115200 = 115200 - CBR_128000 = 128000 - CBR_256000 = 256000 - - DTR_CONTROL_DISABLE = 0x00000000 - DTR_CONTROL_ENABLE = 0x00000010 - DTR_CONTROL_HANDSHAKE = 0x00000020 - - RTS_CONTROL_DISABLE = 0x00000000 - RTS_CONTROL_ENABLE = 0x00001000 - RTS_CONTROL_HANDSHAKE = 0x00002000 - RTS_CONTROL_TOGGLE = 0x00003000 - - NOPARITY = 0 - ODDPARITY = 1 - EVENPARITY = 2 - MARKPARITY = 3 - SPACEPARITY = 4 - - ONESTOPBIT = 0 - ONE5STOPBITS = 1 - TWOSTOPBITS = 2 -) - -// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction. -const ( - SETXOFF = 1 - SETXON = 2 - SETRTS = 3 - CLRRTS = 4 - SETDTR = 5 - CLRDTR = 6 - SETBREAK = 8 - CLRBREAK = 9 -) - -// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm. -const ( - PURGE_TXABORT = 0x0001 - PURGE_RXABORT = 0x0002 - PURGE_TXCLEAR = 0x0004 - PURGE_RXCLEAR = 0x0008 -) - -// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask. -const ( - EV_RXCHAR = 0x0001 - EV_RXFLAG = 0x0002 - EV_TXEMPTY = 0x0004 - EV_CTS = 0x0008 - EV_DSR = 0x0010 - EV_RLSD = 0x0020 - EV_BREAK = 0x0040 - EV_ERR = 0x0080 - EV_RING = 0x0100 -) diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go deleted file mode 100644 index 358be3c..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ /dev/null @@ -1,3864 +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 windows - -import ( - "net" - "syscall" - "unsafe" -) - -// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and -// other native functions. -type NTStatus uint32 - -const ( - // Invented values to support what package os expects. - O_RDONLY = 0x00000 - O_WRONLY = 0x00001 - O_RDWR = 0x00002 - O_CREAT = 0x00040 - O_EXCL = 0x00080 - O_NOCTTY = 0x00100 - O_TRUNC = 0x00200 - O_NONBLOCK = 0x00800 - O_APPEND = 0x00400 - O_SYNC = 0x01000 - O_ASYNC = 0x02000 - O_CLOEXEC = 0x80000 -) - -const ( - // More invented values for signals - SIGHUP = Signal(0x1) - SIGINT = Signal(0x2) - SIGQUIT = Signal(0x3) - SIGILL = Signal(0x4) - SIGTRAP = Signal(0x5) - SIGABRT = Signal(0x6) - SIGBUS = Signal(0x7) - SIGFPE = Signal(0x8) - SIGKILL = Signal(0x9) - SIGSEGV = Signal(0xb) - SIGPIPE = Signal(0xd) - SIGALRM = Signal(0xe) - SIGTERM = Signal(0xf) -) - -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", -} - -// File flags for [os.OpenFile]. The O_ prefix is used to indicate -// that these flags are specific to the OpenFile function. -const ( - O_FILE_FLAG_OPEN_NO_RECALL = FILE_FLAG_OPEN_NO_RECALL - O_FILE_FLAG_OPEN_REPARSE_POINT = FILE_FLAG_OPEN_REPARSE_POINT - O_FILE_FLAG_SESSION_AWARE = FILE_FLAG_SESSION_AWARE - O_FILE_FLAG_POSIX_SEMANTICS = FILE_FLAG_POSIX_SEMANTICS - O_FILE_FLAG_BACKUP_SEMANTICS = FILE_FLAG_BACKUP_SEMANTICS - O_FILE_FLAG_DELETE_ON_CLOSE = FILE_FLAG_DELETE_ON_CLOSE - O_FILE_FLAG_SEQUENTIAL_SCAN = FILE_FLAG_SEQUENTIAL_SCAN - O_FILE_FLAG_RANDOM_ACCESS = FILE_FLAG_RANDOM_ACCESS - O_FILE_FLAG_NO_BUFFERING = FILE_FLAG_NO_BUFFERING - O_FILE_FLAG_OVERLAPPED = FILE_FLAG_OVERLAPPED - O_FILE_FLAG_WRITE_THROUGH = FILE_FLAG_WRITE_THROUGH -) - -const ( - FILE_READ_DATA = 0x00000001 - FILE_READ_ATTRIBUTES = 0x00000080 - FILE_READ_EA = 0x00000008 - FILE_WRITE_DATA = 0x00000002 - FILE_WRITE_ATTRIBUTES = 0x00000100 - FILE_WRITE_EA = 0x00000010 - FILE_APPEND_DATA = 0x00000004 - FILE_EXECUTE = 0x00000020 - - FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE - FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE - FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE - - FILE_LIST_DIRECTORY = 0x00000001 - FILE_TRAVERSE = 0x00000020 - - FILE_SHARE_READ = 0x00000001 - FILE_SHARE_WRITE = 0x00000002 - FILE_SHARE_DELETE = 0x00000004 - - FILE_ATTRIBUTE_READONLY = 0x00000001 - FILE_ATTRIBUTE_HIDDEN = 0x00000002 - FILE_ATTRIBUTE_SYSTEM = 0x00000004 - FILE_ATTRIBUTE_DIRECTORY = 0x00000010 - FILE_ATTRIBUTE_ARCHIVE = 0x00000020 - FILE_ATTRIBUTE_DEVICE = 0x00000040 - FILE_ATTRIBUTE_NORMAL = 0x00000080 - FILE_ATTRIBUTE_TEMPORARY = 0x00000100 - FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 - FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 - FILE_ATTRIBUTE_COMPRESSED = 0x00000800 - FILE_ATTRIBUTE_OFFLINE = 0x00001000 - FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 - FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 - FILE_ATTRIBUTE_INTEGRITY_STREAM = 0x00008000 - FILE_ATTRIBUTE_VIRTUAL = 0x00010000 - FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x00020000 - FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x00040000 - FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000 - - INVALID_FILE_ATTRIBUTES = 0xffffffff - - CREATE_NEW = 1 - CREATE_ALWAYS = 2 - OPEN_EXISTING = 3 - 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 - - HANDLE_FLAG_INHERIT = 0x00000001 - STARTF_USESTDHANDLES = 0x00000100 - STARTF_USESHOWWINDOW = 0x00000001 - DUPLICATE_CLOSE_SOURCE = 0x00000001 - DUPLICATE_SAME_ACCESS = 0x00000002 - - STD_INPUT_HANDLE = -10 & (1<<32 - 1) - STD_OUTPUT_HANDLE = -11 & (1<<32 - 1) - STD_ERROR_HANDLE = -12 & (1<<32 - 1) - - FILE_BEGIN = 0 - FILE_CURRENT = 1 - FILE_END = 2 - - LANG_ENGLISH = 0x09 - SUBLANG_ENGLISH_US = 0x01 - - FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 - FORMAT_MESSAGE_IGNORE_INSERTS = 512 - FORMAT_MESSAGE_FROM_STRING = 1024 - FORMAT_MESSAGE_FROM_HMODULE = 2048 - FORMAT_MESSAGE_FROM_SYSTEM = 4096 - FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 - FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 - - MAX_PATH = 260 - MAX_LONG_PATH = 32768 - - MAX_MODULE_NAME32 = 255 - - MAX_COMPUTERNAME_LENGTH = 15 - - MAX_DHCPV6_DUID_LENGTH = 130 - - MAX_DNS_SUFFIX_STRING_LENGTH = 256 - - TIME_ZONE_ID_UNKNOWN = 0 - TIME_ZONE_ID_STANDARD = 1 - - TIME_ZONE_ID_DAYLIGHT = 2 - IGNORE = 0 - INFINITE = 0xffffffff - - WAIT_ABANDONED = 0x00000080 - WAIT_OBJECT_0 = 0x00000000 - WAIT_FAILED = 0xFFFFFFFF - - // Access rights for process. - PROCESS_ALL_ACCESS = 0xFFFF - 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 - - FILE_MAP_COPY = 0x01 - FILE_MAP_WRITE = 0x02 - FILE_MAP_READ = 0x04 - FILE_MAP_EXECUTE = 0x20 - - CTRL_C_EVENT = 0 - CTRL_BREAK_EVENT = 1 - CTRL_CLOSE_EVENT = 2 - CTRL_LOGOFF_EVENT = 5 - CTRL_SHUTDOWN_EVENT = 6 - - // Windows reserves errors >= 1<<29 for application use. - APPLICATION_ERROR = 1 << 29 -) - -const ( - // Process creation flags. - CREATE_BREAKAWAY_FROM_JOB = 0x01000000 - CREATE_DEFAULT_ERROR_MODE = 0x04000000 - CREATE_NEW_CONSOLE = 0x00000010 - CREATE_NEW_PROCESS_GROUP = 0x00000200 - CREATE_NO_WINDOW = 0x08000000 - CREATE_PROTECTED_PROCESS = 0x00040000 - CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 - CREATE_SEPARATE_WOW_VDM = 0x00000800 - CREATE_SHARED_WOW_VDM = 0x00001000 - CREATE_SUSPENDED = 0x00000004 - CREATE_UNICODE_ENVIRONMENT = 0x00000400 - DEBUG_ONLY_THIS_PROCESS = 0x00000002 - DEBUG_PROCESS = 0x00000001 - DETACHED_PROCESS = 0x00000008 - EXTENDED_STARTUPINFO_PRESENT = 0x00080000 - INHERIT_PARENT_AFFINITY = 0x00010000 -) - -const ( - // attributes for ProcThreadAttributeList - PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 0x00020000 - PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 0x00020002 - PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = 0x00030003 - PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = 0x00020004 - PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = 0x00030005 - PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007 - PROC_THREAD_ATTRIBUTE_UMS_THREAD = 0x00030006 - PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 0x0002000b - PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x00020016 -) - -const ( - // flags for CreateToolhelp32Snapshot - TH32CS_SNAPHEAPLIST = 0x01 - TH32CS_SNAPPROCESS = 0x02 - TH32CS_SNAPTHREAD = 0x04 - TH32CS_SNAPMODULE = 0x08 - TH32CS_SNAPMODULE32 = 0x10 - TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD - TH32CS_INHERIT = 0x80000000 -) - -const ( - // flags for EnumProcessModulesEx - LIST_MODULES_32BIT = 0x01 - LIST_MODULES_64BIT = 0x02 - LIST_MODULES_ALL = 0x03 - LIST_MODULES_DEFAULT = 0x00 -) - -const ( - // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW - FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 - FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 - FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 - FILE_NOTIFY_CHANGE_SIZE = 0x008 - FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010 - FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020 - FILE_NOTIFY_CHANGE_CREATION = 0x040 - FILE_NOTIFY_CHANGE_SECURITY = 0x100 -) - -const ( - // do not reorder - FILE_ACTION_ADDED = iota + 1 - FILE_ACTION_REMOVED - FILE_ACTION_MODIFIED - FILE_ACTION_RENAMED_OLD_NAME - FILE_ACTION_RENAMED_NEW_NAME -) - -const ( - // wincrypt.h - /* certenrolld_begin -- PROV_RSA_*/ - PROV_RSA_FULL = 1 - PROV_RSA_SIG = 2 - PROV_DSS = 3 - PROV_FORTEZZA = 4 - PROV_MS_EXCHANGE = 5 - PROV_SSL = 6 - PROV_RSA_SCHANNEL = 12 - PROV_DSS_DH = 13 - PROV_EC_ECDSA_SIG = 14 - PROV_EC_ECNRA_SIG = 15 - PROV_EC_ECDSA_FULL = 16 - PROV_EC_ECNRA_FULL = 17 - PROV_DH_SCHANNEL = 18 - PROV_SPYRUS_LYNKS = 20 - PROV_RNG = 21 - PROV_INTEL_SEC = 22 - PROV_REPLACE_OWF = 23 - PROV_RSA_AES = 24 - - /* dwFlags definitions for CryptAcquireContext */ - CRYPT_VERIFYCONTEXT = 0xF0000000 - CRYPT_NEWKEYSET = 0x00000008 - CRYPT_DELETEKEYSET = 0x00000010 - CRYPT_MACHINE_KEYSET = 0x00000020 - CRYPT_SILENT = 0x00000040 - CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080 - - /* Flags for PFXImportCertStore */ - CRYPT_EXPORTABLE = 0x00000001 - CRYPT_USER_PROTECTED = 0x00000002 - CRYPT_USER_KEYSET = 0x00001000 - PKCS12_PREFER_CNG_KSP = 0x00000100 - PKCS12_ALWAYS_CNG_KSP = 0x00000200 - PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000 - PKCS12_NO_PERSIST_KEY = 0x00008000 - PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010 - - /* Flags for CryptAcquireCertificatePrivateKey */ - CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 - CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 - CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 - CRYPT_ACQUIRE_NO_HEALING = 0x00000008 - CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 - CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG = 0x00000080 - CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = 0x00070000 - CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = 0x00010000 - CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000 - CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 0x00040000 - - /* pdwKeySpec for CryptAcquireCertificatePrivateKey */ - AT_KEYEXCHANGE = 1 - AT_SIGNATURE = 2 - CERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF - - /* Default usage match type is AND with value zero */ - USAGE_MATCH_TYPE_AND = 0 - USAGE_MATCH_TYPE_OR = 1 - - /* msgAndCertEncodingType values for CertOpenStore function */ - X509_ASN_ENCODING = 0x00000001 - PKCS_7_ASN_ENCODING = 0x00010000 - - /* storeProvider values for CertOpenStore function */ - CERT_STORE_PROV_MSG = 1 - CERT_STORE_PROV_MEMORY = 2 - CERT_STORE_PROV_FILE = 3 - CERT_STORE_PROV_REG = 4 - CERT_STORE_PROV_PKCS7 = 5 - CERT_STORE_PROV_SERIALIZED = 6 - CERT_STORE_PROV_FILENAME_A = 7 - CERT_STORE_PROV_FILENAME_W = 8 - CERT_STORE_PROV_FILENAME = CERT_STORE_PROV_FILENAME_W - CERT_STORE_PROV_SYSTEM_A = 9 - CERT_STORE_PROV_SYSTEM_W = 10 - CERT_STORE_PROV_SYSTEM = CERT_STORE_PROV_SYSTEM_W - CERT_STORE_PROV_COLLECTION = 11 - CERT_STORE_PROV_SYSTEM_REGISTRY_A = 12 - CERT_STORE_PROV_SYSTEM_REGISTRY_W = 13 - CERT_STORE_PROV_SYSTEM_REGISTRY = CERT_STORE_PROV_SYSTEM_REGISTRY_W - CERT_STORE_PROV_PHYSICAL_W = 14 - CERT_STORE_PROV_PHYSICAL = CERT_STORE_PROV_PHYSICAL_W - CERT_STORE_PROV_SMART_CARD_W = 15 - CERT_STORE_PROV_SMART_CARD = CERT_STORE_PROV_SMART_CARD_W - CERT_STORE_PROV_LDAP_W = 16 - CERT_STORE_PROV_LDAP = CERT_STORE_PROV_LDAP_W - CERT_STORE_PROV_PKCS12 = 17 - - /* store characteristics (low WORD of flag) for CertOpenStore function */ - CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 - CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 - CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 - CERT_STORE_DELETE_FLAG = 0x00000010 - CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 - CERT_STORE_SHARE_STORE_FLAG = 0x00000040 - CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 - CERT_STORE_MANIFOLD_FLAG = 0x00000100 - CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 - CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 - CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 - CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 - CERT_STORE_CREATE_NEW_FLAG = 0x00002000 - CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 - CERT_STORE_READONLY_FLAG = 0x00008000 - - /* store locations (high WORD of flag) for CertOpenStore function */ - CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000 - CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000 - CERT_SYSTEM_STORE_CURRENT_SERVICE = 0x00040000 - CERT_SYSTEM_STORE_SERVICES = 0x00050000 - CERT_SYSTEM_STORE_USERS = 0x00060000 - CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 0x00070000 - CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000 - CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 0x00090000 - CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 - CERT_SYSTEM_STORE_RELOCATE_FLAG = 0x80000000 - - /* Miscellaneous high-WORD flags for CertOpenStore function */ - CERT_REGISTRY_STORE_REMOTE_FLAG = 0x00010000 - CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x00020000 - CERT_REGISTRY_STORE_ROAMING_FLAG = 0x00040000 - CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000 - CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 - CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 0x80000000 - CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x00010000 - CERT_LDAP_STORE_SIGN_FLAG = 0x00010000 - CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x00020000 - CERT_LDAP_STORE_OPENED_FLAG = 0x00040000 - CERT_LDAP_STORE_UNBIND_FLAG = 0x00080000 - - /* addDisposition values for CertAddCertificateContextToStore function */ - CERT_STORE_ADD_NEW = 1 - CERT_STORE_ADD_USE_EXISTING = 2 - CERT_STORE_ADD_REPLACE_EXISTING = 3 - CERT_STORE_ADD_ALWAYS = 4 - CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 - CERT_STORE_ADD_NEWER = 6 - CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 - - /* ErrorStatus values for CertTrustStatus struct */ - CERT_TRUST_NO_ERROR = 0x00000000 - CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 - CERT_TRUST_IS_REVOKED = 0x00000004 - CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 - CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 - CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 - CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 - CERT_TRUST_IS_CYCLIC = 0x00000080 - CERT_TRUST_INVALID_EXTENSION = 0x00000100 - CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 - CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 - CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 - CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 - CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 - CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 - CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 - CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 - CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 - CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 - CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 - CERT_TRUST_HAS_WEAK_SIGNATURE = 0x00100000 - CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 - CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 - CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000 - CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000 - - /* InfoStatus values for CertTrustStatus struct */ - CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 - CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 - CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 - CERT_TRUST_IS_SELF_SIGNED = 0x00000008 - CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 - CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000400 - CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 - CERT_TRUST_IS_PEER_TRUSTED = 0x00000800 - CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 0x00001000 - CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000 - CERT_TRUST_IS_CA_TRUSTED = 0x00004000 - CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 - - /* Certificate Information Flags */ - CERT_INFO_VERSION_FLAG = 1 - CERT_INFO_SERIAL_NUMBER_FLAG = 2 - CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 - CERT_INFO_ISSUER_FLAG = 4 - CERT_INFO_NOT_BEFORE_FLAG = 5 - CERT_INFO_NOT_AFTER_FLAG = 6 - CERT_INFO_SUBJECT_FLAG = 7 - CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 - CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 - CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 - CERT_INFO_EXTENSION_FLAG = 11 - - /* dwFindType for CertFindCertificateInStore */ - CERT_COMPARE_MASK = 0xFFFF - CERT_COMPARE_SHIFT = 16 - CERT_COMPARE_ANY = 0 - CERT_COMPARE_SHA1_HASH = 1 - CERT_COMPARE_NAME = 2 - CERT_COMPARE_ATTR = 3 - CERT_COMPARE_MD5_HASH = 4 - CERT_COMPARE_PROPERTY = 5 - CERT_COMPARE_PUBLIC_KEY = 6 - CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH - CERT_COMPARE_NAME_STR_A = 7 - CERT_COMPARE_NAME_STR_W = 8 - CERT_COMPARE_KEY_SPEC = 9 - CERT_COMPARE_ENHKEY_USAGE = 10 - CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE - CERT_COMPARE_SUBJECT_CERT = 11 - CERT_COMPARE_ISSUER_OF = 12 - CERT_COMPARE_EXISTING = 13 - CERT_COMPARE_SIGNATURE_HASH = 14 - CERT_COMPARE_KEY_IDENTIFIER = 15 - CERT_COMPARE_CERT_ID = 16 - CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 - CERT_COMPARE_PUBKEY_MD5_HASH = 18 - CERT_COMPARE_SUBJECT_INFO_ACCESS = 19 - CERT_COMPARE_HASH_STR = 20 - CERT_COMPARE_HAS_PRIVATE_KEY = 21 - CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) - CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) - CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) - CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) - CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) - CERT_FIND_HASH = CERT_FIND_SHA1_HASH - CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) - CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) - CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME<> 32 & 0xffffffff) - return ft -} - -type Win32finddata struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 - Reserved0 uint32 - Reserved1 uint32 - FileName [MAX_PATH - 1]uint16 - AlternateFileName [13]uint16 -} - -// This is the actual system call structure. -// Win32finddata is what we committed to in Go 1. -type win32finddata1 struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 - Reserved0 uint32 - Reserved1 uint32 - FileName [MAX_PATH]uint16 - AlternateFileName [14]uint16 - - // The Microsoft documentation for this struct¹ describes three additional - // fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields - // are empirically only present in the macOS port of the Win32 API,² and thus - // not needed for binaries built for Windows. - // - // ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe - // ² https://golang.org/issue/42637#issuecomment-760715755. -} - -func copyFindData(dst *Win32finddata, src *win32finddata1) { - dst.FileAttributes = src.FileAttributes - dst.CreationTime = src.CreationTime - dst.LastAccessTime = src.LastAccessTime - dst.LastWriteTime = src.LastWriteTime - dst.FileSizeHigh = src.FileSizeHigh - dst.FileSizeLow = src.FileSizeLow - dst.Reserved0 = src.Reserved0 - dst.Reserved1 = src.Reserved1 - - // The src is 1 element bigger than dst, but it must be NUL. - copy(dst.FileName[:], src.FileName[:]) - copy(dst.AlternateFileName[:], src.AlternateFileName[:]) -} - -type ByHandleFileInformation struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - VolumeSerialNumber uint32 - FileSizeHigh uint32 - FileSizeLow uint32 - NumberOfLinks uint32 - FileIndexHigh uint32 - FileIndexLow uint32 -} - -const ( - GetFileExInfoStandard = 0 - GetFileExMaxInfoLevel = 1 -) - -type Win32FileAttributeData struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 -} - -// ShowWindow constants -const ( - // winuser.h - SW_HIDE = 0 - SW_NORMAL = 1 - SW_SHOWNORMAL = 1 - SW_SHOWMINIMIZED = 2 - SW_SHOWMAXIMIZED = 3 - SW_MAXIMIZE = 3 - SW_SHOWNOACTIVATE = 4 - SW_SHOW = 5 - SW_MINIMIZE = 6 - SW_SHOWMINNOACTIVE = 7 - SW_SHOWNA = 8 - SW_RESTORE = 9 - SW_SHOWDEFAULT = 10 - SW_FORCEMINIMIZE = 11 -) - -type StartupInfo struct { - Cb uint32 - _ *uint16 - Desktop *uint16 - Title *uint16 - X uint32 - Y uint32 - XSize uint32 - YSize uint32 - XCountChars uint32 - YCountChars uint32 - FillAttribute uint32 - Flags uint32 - ShowWindow uint16 - _ uint16 - _ *byte - StdInput Handle - StdOutput Handle - StdErr Handle -} - -type StartupInfoEx struct { - StartupInfo - ProcThreadAttributeList *ProcThreadAttributeList -} - -// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST. -// -// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update -// it with ProcThreadAttributeListContainer.Update, free its memory using -// ProcThreadAttributeListContainer.Delete, and access the list itself using -// ProcThreadAttributeListContainer.List. -type ProcThreadAttributeList struct{} - -type ProcThreadAttributeListContainer struct { - data *ProcThreadAttributeList - pointers []unsafe.Pointer -} - -type ProcessInformation struct { - Process Handle - Thread Handle - ProcessId uint32 - ThreadId uint32 -} - -type ProcessEntry32 struct { - Size uint32 - Usage uint32 - ProcessID uint32 - DefaultHeapID uintptr - ModuleID uint32 - Threads uint32 - ParentProcessID uint32 - PriClassBase int32 - Flags uint32 - ExeFile [MAX_PATH]uint16 -} - -type ThreadEntry32 struct { - Size uint32 - Usage uint32 - ThreadID uint32 - OwnerProcessID uint32 - BasePri int32 - DeltaPri int32 - Flags uint32 -} - -type ModuleEntry32 struct { - Size uint32 - ModuleID uint32 - ProcessID uint32 - GlblcntUsage uint32 - ProccntUsage uint32 - ModBaseAddr uintptr - ModBaseSize uint32 - ModuleHandle Handle - Module [MAX_MODULE_NAME32 + 1]uint16 - ExePath [MAX_PATH]uint16 -} - -const SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{}) - -type Systemtime struct { - Year uint16 - Month uint16 - DayOfWeek uint16 - Day uint16 - Hour uint16 - Minute uint16 - Second uint16 - Milliseconds uint16 -} - -type Timezoneinformation struct { - Bias int32 - StandardName [32]uint16 - StandardDate Systemtime - StandardBias int32 - DaylightName [32]uint16 - DaylightDate Systemtime - DaylightBias int32 -} - -// Socket related. - -const ( - AF_UNSPEC = 0 - AF_UNIX = 1 - AF_INET = 2 - AF_NETBIOS = 17 - AF_INET6 = 23 - AF_IRDA = 26 - AF_BTH = 32 - - SOCK_STREAM = 1 - SOCK_DGRAM = 2 - SOCK_RAW = 3 - SOCK_RDM = 4 - SOCK_SEQPACKET = 5 - - IPPROTO_IP = 0 - IPPROTO_ICMP = 1 - IPPROTO_IGMP = 2 - BTHPROTO_RFCOMM = 3 - IPPROTO_TCP = 6 - IPPROTO_UDP = 17 - IPPROTO_IPV6 = 41 - IPPROTO_ICMPV6 = 58 - IPPROTO_RM = 113 - - SOL_SOCKET = 0xffff - SO_REUSEADDR = 4 - SO_KEEPALIVE = 8 - SO_DONTROUTE = 16 - SO_BROADCAST = 32 - SO_LINGER = 128 - SO_RCVBUF = 0x1002 - SO_RCVTIMEO = 0x1006 - SO_SNDBUF = 0x1001 - SO_UPDATE_ACCEPT_CONTEXT = 0x700b - SO_UPDATE_CONNECT_CONTEXT = 0x7010 - - IOC_OUT = 0x40000000 - IOC_IN = 0x80000000 - IOC_VENDOR = 0x18000000 - IOC_INOUT = IOC_IN | IOC_OUT - IOC_WS2 = 0x08000000 - SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 - SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 - SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 - SIO_UDP_NETRESET = IOC_IN | IOC_VENDOR | 15 - - // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 - - IP_HDRINCL = 0x2 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_LOOP = 0xb - IP_ADD_MEMBERSHIP = 0xc - IP_DROP_MEMBERSHIP = 0xd - IP_PKTINFO = 0x13 - IP_MTU_DISCOVER = 0x47 - - IPV6_V6ONLY = 0x1b - IPV6_UNICAST_HOPS = 0x4 - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_LOOP = 0xb - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_PKTINFO = 0x13 - IPV6_MTU_DISCOVER = 0x47 - - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_DONTROUTE = 0x4 - MSG_WAITALL = 0x8 - - MSG_TRUNC = 0x0100 - MSG_CTRUNC = 0x0200 - MSG_BCAST = 0x0400 - MSG_MCAST = 0x0800 - - SOMAXCONN = 0x7fffffff - - TCP_NODELAY = 1 - TCP_EXPEDITED_1122 = 2 - TCP_KEEPALIVE = 3 - TCP_MAXSEG = 4 - TCP_MAXRT = 5 - TCP_STDURG = 6 - TCP_NOURG = 7 - TCP_ATMARK = 8 - TCP_NOSYNRETRIES = 9 - TCP_TIMESTAMPS = 10 - TCP_OFFLOAD_PREFERENCE = 11 - TCP_CONGESTION_ALGORITHM = 12 - TCP_DELAY_FIN_ACK = 13 - TCP_MAXRTMS = 14 - TCP_FASTOPEN = 15 - TCP_KEEPCNT = 16 - TCP_KEEPIDLE = TCP_KEEPALIVE - TCP_KEEPINTVL = 17 - TCP_FAIL_CONNECT_ON_ICMP_ERROR = 18 - TCP_ICMP_ERROR_INFO = 19 - - UDP_NOCHECKSUM = 1 - UDP_SEND_MSG_SIZE = 2 - UDP_RECV_MAX_COALESCED_SIZE = 3 - UDP_CHECKSUM_COVERAGE = 20 - - UDP_COALESCED_INFO = 3 - - SHUT_RD = 0 - SHUT_WR = 1 - SHUT_RDWR = 2 - - WSADESCRIPTION_LEN = 256 - WSASYS_STATUS_LEN = 128 -) - -// enum PMTUD_STATE from ws2ipdef.h -const ( - IP_PMTUDISC_NOT_SET = 0 - IP_PMTUDISC_DO = 1 - IP_PMTUDISC_DONT = 2 - IP_PMTUDISC_PROBE = 3 - IP_PMTUDISC_MAX = 4 -) - -type WSABuf struct { - Len uint32 - Buf *byte -} - -type WSAMsg struct { - Name *syscall.RawSockaddrAny - Namelen int32 - Buffers *WSABuf - BufferCount uint32 - Control WSABuf - Flags uint32 -} - -type WSACMSGHDR struct { - Len uintptr - Level int32 - Type int32 -} - -type IN_PKTINFO struct { - Addr [4]byte - Ifindex uint32 -} - -type IN6_PKTINFO struct { - Addr [16]byte - Ifindex uint32 -} - -// Flags for WSASocket -const ( - WSA_FLAG_OVERLAPPED = 0x01 - WSA_FLAG_MULTIPOINT_C_ROOT = 0x02 - WSA_FLAG_MULTIPOINT_C_LEAF = 0x04 - WSA_FLAG_MULTIPOINT_D_ROOT = 0x08 - WSA_FLAG_MULTIPOINT_D_LEAF = 0x10 - WSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40 - WSA_FLAG_NO_HANDLE_INHERIT = 0x80 - WSA_FLAG_REGISTERED_IO = 0x100 -) - -// Invented values to support what package os expects. -const ( - S_IFMT = 0x1f000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -const ( - FILE_TYPE_CHAR = 0x0002 - FILE_TYPE_DISK = 0x0001 - FILE_TYPE_PIPE = 0x0003 - FILE_TYPE_REMOTE = 0x8000 - FILE_TYPE_UNKNOWN = 0x0000 -) - -type Hostent struct { - Name *byte - Aliases **byte - AddrType uint16 - Length uint16 - AddrList **byte -} - -type Protoent struct { - Name *byte - Aliases **byte - Proto uint16 -} - -const ( - DNS_TYPE_A = 0x0001 - DNS_TYPE_NS = 0x0002 - DNS_TYPE_MD = 0x0003 - DNS_TYPE_MF = 0x0004 - DNS_TYPE_CNAME = 0x0005 - DNS_TYPE_SOA = 0x0006 - DNS_TYPE_MB = 0x0007 - DNS_TYPE_MG = 0x0008 - DNS_TYPE_MR = 0x0009 - DNS_TYPE_NULL = 0x000a - DNS_TYPE_WKS = 0x000b - DNS_TYPE_PTR = 0x000c - DNS_TYPE_HINFO = 0x000d - DNS_TYPE_MINFO = 0x000e - DNS_TYPE_MX = 0x000f - DNS_TYPE_TEXT = 0x0010 - DNS_TYPE_RP = 0x0011 - DNS_TYPE_AFSDB = 0x0012 - DNS_TYPE_X25 = 0x0013 - DNS_TYPE_ISDN = 0x0014 - DNS_TYPE_RT = 0x0015 - DNS_TYPE_NSAP = 0x0016 - DNS_TYPE_NSAPPTR = 0x0017 - DNS_TYPE_SIG = 0x0018 - DNS_TYPE_KEY = 0x0019 - DNS_TYPE_PX = 0x001a - DNS_TYPE_GPOS = 0x001b - DNS_TYPE_AAAA = 0x001c - DNS_TYPE_LOC = 0x001d - DNS_TYPE_NXT = 0x001e - DNS_TYPE_EID = 0x001f - DNS_TYPE_NIMLOC = 0x0020 - DNS_TYPE_SRV = 0x0021 - DNS_TYPE_ATMA = 0x0022 - DNS_TYPE_NAPTR = 0x0023 - DNS_TYPE_KX = 0x0024 - DNS_TYPE_CERT = 0x0025 - DNS_TYPE_A6 = 0x0026 - DNS_TYPE_DNAME = 0x0027 - DNS_TYPE_SINK = 0x0028 - DNS_TYPE_OPT = 0x0029 - DNS_TYPE_DS = 0x002B - DNS_TYPE_RRSIG = 0x002E - DNS_TYPE_NSEC = 0x002F - DNS_TYPE_DNSKEY = 0x0030 - DNS_TYPE_DHCID = 0x0031 - DNS_TYPE_UINFO = 0x0064 - DNS_TYPE_UID = 0x0065 - DNS_TYPE_GID = 0x0066 - DNS_TYPE_UNSPEC = 0x0067 - DNS_TYPE_ADDRS = 0x00f8 - DNS_TYPE_TKEY = 0x00f9 - DNS_TYPE_TSIG = 0x00fa - DNS_TYPE_IXFR = 0x00fb - DNS_TYPE_AXFR = 0x00fc - DNS_TYPE_MAILB = 0x00fd - DNS_TYPE_MAILA = 0x00fe - DNS_TYPE_ALL = 0x00ff - DNS_TYPE_ANY = 0x00ff - DNS_TYPE_WINS = 0xff01 - DNS_TYPE_WINSR = 0xff02 - DNS_TYPE_NBSTAT = 0xff01 -) - -const ( - // flags inside DNSRecord.Dw - DnsSectionQuestion = 0x0000 - DnsSectionAnswer = 0x0001 - DnsSectionAuthority = 0x0002 - DnsSectionAdditional = 0x0003 -) - -const ( - // flags of WSALookupService - LUP_DEEP = 0x0001 - LUP_CONTAINERS = 0x0002 - LUP_NOCONTAINERS = 0x0004 - LUP_NEAREST = 0x0008 - LUP_RETURN_NAME = 0x0010 - LUP_RETURN_TYPE = 0x0020 - LUP_RETURN_VERSION = 0x0040 - LUP_RETURN_COMMENT = 0x0080 - LUP_RETURN_ADDR = 0x0100 - LUP_RETURN_BLOB = 0x0200 - LUP_RETURN_ALIASES = 0x0400 - LUP_RETURN_QUERY_STRING = 0x0800 - LUP_RETURN_ALL = 0x0FF0 - LUP_RES_SERVICE = 0x8000 - - LUP_FLUSHCACHE = 0x1000 - LUP_FLUSHPREVIOUS = 0x2000 - - LUP_NON_AUTHORITATIVE = 0x4000 - LUP_SECURE = 0x8000 - LUP_RETURN_PREFERRED_NAMES = 0x10000 - LUP_DNS_ONLY = 0x20000 - - LUP_ADDRCONFIG = 0x100000 - LUP_DUAL_ADDR = 0x200000 - LUP_FILESERVER = 0x400000 - LUP_DISABLE_IDN_ENCODING = 0x00800000 - LUP_API_ANSI = 0x01000000 - - LUP_RESOLUTION_HANDLE = 0x80000000 -) - -const ( - // values of WSAQUERYSET's namespace - NS_ALL = 0 - NS_DNS = 12 - NS_NLA = 15 - NS_BTH = 16 - NS_EMAIL = 37 - NS_PNRPNAME = 38 - NS_PNRPCLOUD = 39 -) - -type DNSSRVData struct { - Target *uint16 - Priority uint16 - Weight uint16 - Port uint16 - Pad uint16 -} - -type DNSPTRData struct { - Host *uint16 -} - -type DNSMXData struct { - NameExchange *uint16 - Preference uint16 - Pad uint16 -} - -type DNSTXTData struct { - StringCount uint16 - StringArray [1]*uint16 -} - -type DNSRecord struct { - Next *DNSRecord - Name *uint16 - Type uint16 - Length uint16 - Dw uint32 - Ttl uint32 - Reserved uint32 - Data [40]byte -} - -const ( - TF_DISCONNECT = 1 - TF_REUSE_SOCKET = 2 - TF_WRITE_BEHIND = 4 - TF_USE_DEFAULT_WORKER = 0 - TF_USE_SYSTEM_THREAD = 16 - TF_USE_KERNEL_APC = 32 -) - -type TransmitFileBuffers struct { - Head uintptr - HeadLength uint32 - Tail uintptr - TailLength uint32 -} - -const ( - IFF_UP = 1 - IFF_BROADCAST = 2 - IFF_LOOPBACK = 4 - IFF_POINTTOPOINT = 8 - IFF_MULTICAST = 16 -) - -const SIO_GET_INTERFACE_LIST = 0x4004747F - -// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old. -// will be fixed to change variable type as suitable. - -type SockaddrGen [24]byte - -type InterfaceInfo struct { - Flags uint32 - Address SockaddrGen - BroadcastAddress SockaddrGen - Netmask SockaddrGen -} - -type IpAddressString struct { - String [16]byte -} - -type IpMaskString IpAddressString - -type IpAddrString struct { - Next *IpAddrString - IpAddress IpAddressString - IpMask IpMaskString - Context uint32 -} - -const MAX_ADAPTER_NAME_LENGTH = 256 -const MAX_ADAPTER_DESCRIPTION_LENGTH = 128 -const MAX_ADAPTER_ADDRESS_LENGTH = 8 - -type IpAdapterInfo struct { - Next *IpAdapterInfo - ComboIndex uint32 - AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte - Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte - AddressLength uint32 - Address [MAX_ADAPTER_ADDRESS_LENGTH]byte - Index uint32 - Type uint32 - DhcpEnabled uint32 - CurrentIpAddress *IpAddrString - IpAddressList IpAddrString - GatewayList IpAddrString - DhcpServer IpAddrString - HaveWins bool - PrimaryWinsServer IpAddrString - SecondaryWinsServer IpAddrString - LeaseObtained int64 - LeaseExpires int64 -} - -const MAXLEN_PHYSADDR = 8 -const MAX_INTERFACE_NAME_LEN = 256 -const MAXLEN_IFDESCR = 256 - -type MibIfRow struct { - Name [MAX_INTERFACE_NAME_LEN]uint16 - Index uint32 - Type uint32 - Mtu uint32 - Speed uint32 - PhysAddrLen uint32 - PhysAddr [MAXLEN_PHYSADDR]byte - AdminStatus uint32 - OperStatus uint32 - LastChange uint32 - InOctets uint32 - InUcastPkts uint32 - InNUcastPkts uint32 - InDiscards uint32 - InErrors uint32 - InUnknownProtos uint32 - OutOctets uint32 - OutUcastPkts uint32 - OutNUcastPkts uint32 - OutDiscards uint32 - OutErrors uint32 - OutQLen uint32 - DescrLen uint32 - Descr [MAXLEN_IFDESCR]byte -} - -type CertInfo struct { - Version uint32 - SerialNumber CryptIntegerBlob - SignatureAlgorithm CryptAlgorithmIdentifier - Issuer CertNameBlob - NotBefore Filetime - NotAfter Filetime - Subject CertNameBlob - SubjectPublicKeyInfo CertPublicKeyInfo - IssuerUniqueId CryptBitBlob - SubjectUniqueId CryptBitBlob - CountExtensions uint32 - Extensions *CertExtension -} - -type CertExtension struct { - ObjId *byte - Critical int32 - Value CryptObjidBlob -} - -type CryptAlgorithmIdentifier struct { - ObjId *byte - Parameters CryptObjidBlob -} - -type CertPublicKeyInfo struct { - Algorithm CryptAlgorithmIdentifier - PublicKey CryptBitBlob -} - -type DataBlob struct { - Size uint32 - Data *byte -} -type CryptIntegerBlob DataBlob -type CryptUintBlob DataBlob -type CryptObjidBlob DataBlob -type CertNameBlob DataBlob -type CertRdnValueBlob DataBlob -type CertBlob DataBlob -type CrlBlob DataBlob -type CryptDataBlob DataBlob -type CryptHashBlob DataBlob -type CryptDigestBlob DataBlob -type CryptDerBlob DataBlob -type CryptAttrBlob DataBlob - -type CryptBitBlob struct { - Size uint32 - Data *byte - UnusedBits uint32 -} - -type CertContext struct { - EncodingType uint32 - EncodedCert *byte - Length uint32 - CertInfo *CertInfo - Store Handle -} - -type CertChainContext struct { - Size uint32 - TrustStatus CertTrustStatus - ChainCount uint32 - Chains **CertSimpleChain - LowerQualityChainCount uint32 - LowerQualityChains **CertChainContext - HasRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 -} - -type CertTrustListInfo struct { - // Not implemented -} - -type CertSimpleChain struct { - Size uint32 - TrustStatus CertTrustStatus - NumElements uint32 - Elements **CertChainElement - TrustListInfo *CertTrustListInfo - HasRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 -} - -type CertChainElement struct { - Size uint32 - CertContext *CertContext - TrustStatus CertTrustStatus - RevocationInfo *CertRevocationInfo - IssuanceUsage *CertEnhKeyUsage - ApplicationUsage *CertEnhKeyUsage - ExtendedErrorInfo *uint16 -} - -type CertRevocationCrlInfo struct { - // Not implemented -} - -type CertRevocationInfo struct { - Size uint32 - RevocationResult uint32 - RevocationOid *byte - OidSpecificInfo Pointer - HasFreshnessTime uint32 - FreshnessTime uint32 - CrlInfo *CertRevocationCrlInfo -} - -type CertTrustStatus struct { - ErrorStatus uint32 - InfoStatus uint32 -} - -type CertUsageMatch struct { - Type uint32 - Usage CertEnhKeyUsage -} - -type CertEnhKeyUsage struct { - Length uint32 - UsageIdentifiers **byte -} - -type CertChainPara struct { - Size uint32 - RequestedUsage CertUsageMatch - RequstedIssuancePolicy CertUsageMatch - URLRetrievalTimeout uint32 - CheckRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 - CacheResync *Filetime -} - -type CertChainPolicyPara struct { - Size uint32 - Flags uint32 - ExtraPolicyPara Pointer -} - -type SSLExtraCertChainPolicyPara struct { - Size uint32 - AuthType uint32 - Checks uint32 - ServerName *uint16 -} - -type CertChainPolicyStatus struct { - Size uint32 - Error uint32 - ChainIndex uint32 - ElementIndex uint32 - ExtraPolicyStatus Pointer -} - -type CertPolicyInfo struct { - Identifier *byte - CountQualifiers uint32 - Qualifiers *CertPolicyQualifierInfo -} - -type CertPoliciesInfo struct { - Count uint32 - PolicyInfos *CertPolicyInfo -} - -type CertPolicyQualifierInfo struct { - // Not implemented -} - -type CertStrongSignPara struct { - Size uint32 - InfoChoice uint32 - InfoOrSerializedInfoOrOID unsafe.Pointer -} - -type CryptProtectPromptStruct struct { - Size uint32 - PromptFlags uint32 - App HWND - Prompt *uint16 -} - -type CertChainFindByIssuerPara struct { - Size uint32 - UsageIdentifier *byte - KeySpec uint32 - AcquirePrivateKeyFlags uint32 - IssuerCount uint32 - Issuer Pointer - FindCallback Pointer - FindArg Pointer - IssuerChainIndex *uint32 - IssuerElementIndex *uint32 -} - -type WinTrustData struct { - Size uint32 - PolicyCallbackData uintptr - SIPClientData uintptr - UIChoice uint32 - RevocationChecks uint32 - UnionChoice uint32 - FileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer - StateAction uint32 - StateData Handle - URLReference *uint16 - ProvFlags uint32 - UIContext uint32 - SignatureSettings *WinTrustSignatureSettings -} - -type WinTrustFileInfo struct { - Size uint32 - FilePath *uint16 - File Handle - KnownSubject *GUID -} - -type WinTrustSignatureSettings struct { - Size uint32 - Index uint32 - Flags uint32 - SecondarySigs uint32 - VerifiedSigIndex uint32 - CryptoPolicy *CertStrongSignPara -} - -const ( - // do not reorder - HKEY_CLASSES_ROOT = 0x80000000 + iota - HKEY_CURRENT_USER - HKEY_LOCAL_MACHINE - HKEY_USERS - HKEY_PERFORMANCE_DATA - HKEY_CURRENT_CONFIG - HKEY_DYN_DATA - - KEY_QUERY_VALUE = 1 - KEY_SET_VALUE = 2 - KEY_CREATE_SUB_KEY = 4 - KEY_ENUMERATE_SUB_KEYS = 8 - KEY_NOTIFY = 16 - KEY_CREATE_LINK = 32 - KEY_WRITE = 0x20006 - KEY_EXECUTE = 0x20019 - KEY_READ = 0x20019 - KEY_WOW64_64KEY = 0x0100 - KEY_WOW64_32KEY = 0x0200 - KEY_ALL_ACCESS = 0xf003f -) - -const ( - // do not reorder - REG_NONE = iota - REG_SZ - REG_EXPAND_SZ - REG_BINARY - REG_DWORD_LITTLE_ENDIAN - REG_DWORD_BIG_ENDIAN - REG_LINK - REG_MULTI_SZ - REG_RESOURCE_LIST - REG_FULL_RESOURCE_DESCRIPTOR - REG_RESOURCE_REQUIREMENTS_LIST - REG_QWORD_LITTLE_ENDIAN - REG_DWORD = REG_DWORD_LITTLE_ENDIAN - REG_QWORD = REG_QWORD_LITTLE_ENDIAN -) - -const ( - EVENT_MODIFY_STATE = 0x0002 - EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 - - MUTANT_QUERY_STATE = 0x0001 - MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE - - SEMAPHORE_MODIFY_STATE = 0x0002 - SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 - - TIMER_QUERY_STATE = 0x0001 - TIMER_MODIFY_STATE = 0x0002 - TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE - - MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE - MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS - - CREATE_EVENT_MANUAL_RESET = 0x1 - CREATE_EVENT_INITIAL_SET = 0x2 - CREATE_MUTEX_INITIAL_OWNER = 0x1 -) - -type AddrinfoW struct { - Flags int32 - Family int32 - Socktype int32 - Protocol int32 - Addrlen uintptr - Canonname *uint16 - Addr uintptr - Next *AddrinfoW -} - -const ( - AI_PASSIVE = 1 - AI_CANONNAME = 2 - AI_NUMERICHOST = 4 -) - -type GUID struct { - Data1 uint32 - Data2 uint16 - Data3 uint16 - Data4 [8]byte -} - -var WSAID_CONNECTEX = GUID{ - 0x25a207b9, - 0xddf3, - 0x4660, - [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, -} - -var WSAID_WSASENDMSG = GUID{ - 0xa441e712, - 0x754f, - 0x43ca, - [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d}, -} - -var WSAID_WSARECVMSG = GUID{ - 0xf689d7c8, - 0x6f1f, - 0x436b, - [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22}, -} - -const ( - FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 - FILE_SKIP_SET_EVENT_ON_HANDLE = 2 -) - -const ( - WSAPROTOCOL_LEN = 255 - MAX_PROTOCOL_CHAIN = 7 - BASE_PROTOCOL = 1 - LAYERED_PROTOCOL = 0 - - XP1_CONNECTIONLESS = 0x00000001 - XP1_GUARANTEED_DELIVERY = 0x00000002 - XP1_GUARANTEED_ORDER = 0x00000004 - XP1_MESSAGE_ORIENTED = 0x00000008 - XP1_PSEUDO_STREAM = 0x00000010 - XP1_GRACEFUL_CLOSE = 0x00000020 - XP1_EXPEDITED_DATA = 0x00000040 - XP1_CONNECT_DATA = 0x00000080 - XP1_DISCONNECT_DATA = 0x00000100 - XP1_SUPPORT_BROADCAST = 0x00000200 - XP1_SUPPORT_MULTIPOINT = 0x00000400 - XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800 - XP1_MULTIPOINT_DATA_PLANE = 0x00001000 - XP1_QOS_SUPPORTED = 0x00002000 - XP1_UNI_SEND = 0x00008000 - XP1_UNI_RECV = 0x00010000 - XP1_IFS_HANDLES = 0x00020000 - XP1_PARTIAL_MESSAGE = 0x00040000 - XP1_SAN_SUPPORT_SDP = 0x00080000 - - PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001 - PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002 - PFL_HIDDEN = 0x00000004 - PFL_MATCHES_PROTOCOL_ZERO = 0x00000008 - PFL_NETWORKDIRECT_PROVIDER = 0x00000010 -) - -type WSAProtocolInfo struct { - ServiceFlags1 uint32 - ServiceFlags2 uint32 - ServiceFlags3 uint32 - ServiceFlags4 uint32 - ProviderFlags uint32 - ProviderId GUID - CatalogEntryId uint32 - ProtocolChain WSAProtocolChain - Version int32 - AddressFamily int32 - MaxSockAddr int32 - MinSockAddr int32 - SocketType int32 - Protocol int32 - ProtocolMaxOffset int32 - NetworkByteOrder int32 - SecurityScheme int32 - MessageSize uint32 - ProviderReserved uint32 - ProtocolName [WSAPROTOCOL_LEN + 1]uint16 -} - -type WSAProtocolChain struct { - ChainLen int32 - ChainEntries [MAX_PROTOCOL_CHAIN]uint32 -} - -type TCPKeepalive struct { - OnOff uint32 - Time uint32 - Interval uint32 -} - -type symbolicLinkReparseBuffer struct { - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 - Flags uint32 - PathBuffer [1]uint16 -} - -type mountPointReparseBuffer struct { - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 - PathBuffer [1]uint16 -} - -type reparseDataBuffer struct { - ReparseTag uint32 - ReparseDataLength uint16 - Reserved uint16 - - // GenericReparseBuffer - reparseBuffer byte -} - -const ( - FSCTL_CREATE_OR_GET_OBJECT_ID = 0x0900C0 - FSCTL_DELETE_OBJECT_ID = 0x0900A0 - FSCTL_DELETE_REPARSE_POINT = 0x0900AC - FSCTL_DUPLICATE_EXTENTS_TO_FILE = 0x098344 - FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX = 0x0983E8 - FSCTL_FILESYSTEM_GET_STATISTICS = 0x090060 - FSCTL_FILE_LEVEL_TRIM = 0x098208 - FSCTL_FIND_FILES_BY_SID = 0x09008F - FSCTL_GET_COMPRESSION = 0x09003C - FSCTL_GET_INTEGRITY_INFORMATION = 0x09027C - FSCTL_GET_NTFS_VOLUME_DATA = 0x090064 - FSCTL_GET_REFS_VOLUME_DATA = 0x0902D8 - FSCTL_GET_OBJECT_ID = 0x09009C - FSCTL_GET_REPARSE_POINT = 0x0900A8 - FSCTL_GET_RETRIEVAL_POINTER_COUNT = 0x09042B - FSCTL_GET_RETRIEVAL_POINTERS = 0x090073 - FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3 - FSCTL_IS_PATHNAME_VALID = 0x09002C - FSCTL_LMR_SET_LINK_TRACKING_INFORMATION = 0x1400EC - FSCTL_MARK_HANDLE = 0x0900FC - FSCTL_OFFLOAD_READ = 0x094264 - FSCTL_OFFLOAD_WRITE = 0x098268 - FSCTL_PIPE_PEEK = 0x11400C - FSCTL_PIPE_TRANSCEIVE = 0x11C017 - FSCTL_PIPE_WAIT = 0x110018 - FSCTL_QUERY_ALLOCATED_RANGES = 0x0940CF - FSCTL_QUERY_FAT_BPB = 0x090058 - FSCTL_QUERY_FILE_REGIONS = 0x090284 - FSCTL_QUERY_ON_DISK_VOLUME_INFO = 0x09013C - FSCTL_QUERY_SPARING_INFO = 0x090138 - FSCTL_READ_FILE_USN_DATA = 0x0900EB - FSCTL_RECALL_FILE = 0x090117 - FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT = 0x090440 - FSCTL_SET_COMPRESSION = 0x09C040 - FSCTL_SET_DEFECT_MANAGEMENT = 0x098134 - FSCTL_SET_ENCRYPTION = 0x0900D7 - FSCTL_SET_INTEGRITY_INFORMATION = 0x09C280 - FSCTL_SET_INTEGRITY_INFORMATION_EX = 0x090380 - FSCTL_SET_OBJECT_ID = 0x090098 - FSCTL_SET_OBJECT_ID_EXTENDED = 0x0900BC - FSCTL_SET_REPARSE_POINT = 0x0900A4 - FSCTL_SET_SPARSE = 0x0900C4 - FSCTL_SET_ZERO_DATA = 0x0980C8 - FSCTL_SET_ZERO_ON_DEALLOCATION = 0x090194 - FSCTL_SIS_COPYFILE = 0x090100 - FSCTL_WRITE_USN_CLOSE_RECORD = 0x0900EF - - MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 - IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 - IO_REPARSE_TAG_SYMLINK = 0xA000000C - SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 -) - -// FILE_ZERO_DATA_INFORMATION from winioctl.h -type FileZeroDataInformation struct { - FileOffset int64 - BeyondFinalZero int64 -} - -const ( - ComputerNameNetBIOS = 0 - ComputerNameDnsHostname = 1 - ComputerNameDnsDomain = 2 - ComputerNameDnsFullyQualified = 3 - ComputerNamePhysicalNetBIOS = 4 - ComputerNamePhysicalDnsHostname = 5 - ComputerNamePhysicalDnsDomain = 6 - ComputerNamePhysicalDnsFullyQualified = 7 - 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 - MOVEFILE_DELAY_UNTIL_REBOOT = 0x4 - MOVEFILE_WRITE_THROUGH = 0x8 - MOVEFILE_CREATE_HARDLINK = 0x10 - MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20 -) - -// Flags for GetAdaptersAddresses, see -// https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses. -const ( - GAA_FLAG_SKIP_UNICAST = 0x1 - GAA_FLAG_SKIP_ANYCAST = 0x2 - GAA_FLAG_SKIP_MULTICAST = 0x4 - GAA_FLAG_SKIP_DNS_SERVER = 0x8 - GAA_FLAG_INCLUDE_PREFIX = 0x10 - GAA_FLAG_SKIP_FRIENDLY_NAME = 0x20 - GAA_FLAG_INCLUDE_WINS_INFO = 0x40 - GAA_FLAG_INCLUDE_GATEWAYS = 0x80 - GAA_FLAG_INCLUDE_ALL_INTERFACES = 0x100 - GAA_FLAG_INCLUDE_ALL_COMPARTMENTS = 0x200 - GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = 0x400 -) - -const ( - IF_TYPE_OTHER = 1 - IF_TYPE_ETHERNET_CSMACD = 6 - IF_TYPE_ISO88025_TOKENRING = 9 - IF_TYPE_PPP = 23 - IF_TYPE_SOFTWARE_LOOPBACK = 24 - IF_TYPE_ATM = 37 - IF_TYPE_IEEE80211 = 71 - IF_TYPE_TUNNEL = 131 - IF_TYPE_IEEE1394 = 144 -) - -// Enum NL_PREFIX_ORIGIN for [IpAdapterUnicastAddress], see -// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_prefix_origin -const ( - IpPrefixOriginOther = 0 - IpPrefixOriginManual = 1 - IpPrefixOriginWellKnown = 2 - IpPrefixOriginDhcp = 3 - IpPrefixOriginRouterAdvertisement = 4 - IpPrefixOriginUnchanged = 1 << 4 -) - -// Enum NL_SUFFIX_ORIGIN for [IpAdapterUnicastAddress], see -// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_suffix_origin -const ( - NlsoOther = 0 - NlsoManual = 1 - NlsoWellKnown = 2 - NlsoDhcp = 3 - NlsoLinkLayerAddress = 4 - NlsoRandom = 5 - IpSuffixOriginOther = 0 - IpSuffixOriginManual = 1 - IpSuffixOriginWellKnown = 2 - IpSuffixOriginDhcp = 3 - IpSuffixOriginLinkLayerAddress = 4 - IpSuffixOriginRandom = 5 - IpSuffixOriginUnchanged = 1 << 4 -) - -// Enum NL_DAD_STATE for [IpAdapterUnicastAddress], see -// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_dad_state -const ( - NldsInvalid = 0 - NldsTentative = 1 - NldsDuplicate = 2 - NldsDeprecated = 3 - NldsPreferred = 4 - IpDadStateInvalid = 0 - IpDadStateTentative = 1 - IpDadStateDuplicate = 2 - IpDadStateDeprecated = 3 - IpDadStatePreferred = 4 -) - -type SocketAddress struct { - Sockaddr *syscall.RawSockaddrAny - 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 - Next *IpAdapterUnicastAddress - Address SocketAddress - PrefixOrigin int32 - SuffixOrigin int32 - DadState int32 - ValidLifetime uint32 - PreferredLifetime uint32 - LeaseLifetime uint32 - OnLinkPrefixLength uint8 -} - -type IpAdapterAnycastAddress struct { - Length uint32 - Flags uint32 - Next *IpAdapterAnycastAddress - Address SocketAddress -} - -type IpAdapterMulticastAddress struct { - Length uint32 - Flags uint32 - Next *IpAdapterMulticastAddress - Address SocketAddress -} - -type IpAdapterDnsServerAdapter struct { - Length uint32 - Reserved uint32 - Next *IpAdapterDnsServerAdapter - Address SocketAddress -} - -type IpAdapterPrefix struct { - Length uint32 - Flags uint32 - Next *IpAdapterPrefix - Address SocketAddress - PrefixLength uint32 -} - -type IpAdapterAddresses struct { - Length uint32 - IfIndex uint32 - Next *IpAdapterAddresses - AdapterName *byte - FirstUnicastAddress *IpAdapterUnicastAddress - FirstAnycastAddress *IpAdapterAnycastAddress - FirstMulticastAddress *IpAdapterMulticastAddress - FirstDnsServerAddress *IpAdapterDnsServerAdapter - DnsSuffix *uint16 - Description *uint16 - FriendlyName *uint16 - PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte - PhysicalAddressLength uint32 - Flags uint32 - Mtu uint32 - IfType uint32 - OperStatus uint32 - Ipv6IfIndex uint32 - ZoneIndices [16]uint32 - FirstPrefix *IpAdapterPrefix - TransmitLinkSpeed uint64 - ReceiveLinkSpeed uint64 - FirstWinsServerAddress *IpAdapterWinsServerAddress - FirstGatewayAddress *IpAdapterGatewayAddress - Ipv4Metric uint32 - Ipv6Metric uint32 - Luid uint64 - Dhcpv4Server SocketAddress - CompartmentId uint32 - NetworkGuid GUID - ConnectionType uint32 - TunnelType uint32 - Dhcpv6Server SocketAddress - Dhcpv6ClientDuid [MAX_DHCPV6_DUID_LENGTH]byte - Dhcpv6ClientDuidLength uint32 - Dhcpv6Iaid uint32 - FirstDnsSuffix *IpAdapterDNSSuffix -} - -type IpAdapterWinsServerAddress struct { - Length uint32 - Reserved uint32 - Next *IpAdapterWinsServerAddress - Address SocketAddress -} - -type IpAdapterGatewayAddress struct { - Length uint32 - Reserved uint32 - Next *IpAdapterGatewayAddress - Address SocketAddress -} - -type IpAdapterDNSSuffix struct { - Next *IpAdapterDNSSuffix - String [MAX_DNS_SUFFIX_STRING_LENGTH]uint16 -} - -const ( - IfOperStatusUp = 1 - IfOperStatusDown = 2 - IfOperStatusTesting = 3 - IfOperStatusUnknown = 4 - IfOperStatusDormant = 5 - IfOperStatusNotPresent = 6 - IfOperStatusLowerLayerDown = 7 -) - -const ( - IF_MAX_PHYS_ADDRESS_LENGTH = 32 - IF_MAX_STRING_SIZE = 256 -) - -// MIB_IF_ENTRY_LEVEL enumeration from netioapi.h or -// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2ex. -const ( - MibIfEntryNormal = 0 - MibIfEntryNormalWithoutStatistics = 2 -) - -// MIB_NOTIFICATION_TYPE enumeration from netioapi.h or -// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ne-netioapi-mib_notification_type. -const ( - MibParameterNotification = 0 - MibAddInstance = 1 - MibDeleteInstance = 2 - MibInitialNotification = 3 -) - -// MibIfRow2 stores information about a particular interface. See -// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2. -type MibIfRow2 struct { - InterfaceLuid uint64 - InterfaceIndex uint32 - InterfaceGuid GUID - Alias [IF_MAX_STRING_SIZE + 1]uint16 - Description [IF_MAX_STRING_SIZE + 1]uint16 - PhysicalAddressLength uint32 - PhysicalAddress [IF_MAX_PHYS_ADDRESS_LENGTH]uint8 - PermanentPhysicalAddress [IF_MAX_PHYS_ADDRESS_LENGTH]uint8 - Mtu uint32 - Type uint32 - TunnelType uint32 - MediaType uint32 - PhysicalMediumType uint32 - AccessType uint32 - DirectionType uint32 - InterfaceAndOperStatusFlags uint8 - OperStatus uint32 - AdminStatus uint32 - MediaConnectState uint32 - NetworkGuid GUID - ConnectionType uint32 - TransmitLinkSpeed uint64 - ReceiveLinkSpeed uint64 - InOctets uint64 - InUcastPkts uint64 - InNUcastPkts uint64 - InDiscards uint64 - InErrors uint64 - InUnknownProtos uint64 - InUcastOctets uint64 - InMulticastOctets uint64 - InBroadcastOctets uint64 - OutOctets uint64 - OutUcastPkts uint64 - OutNUcastPkts uint64 - OutDiscards uint64 - OutErrors uint64 - OutUcastOctets uint64 - OutMulticastOctets uint64 - OutBroadcastOctets uint64 - OutQLen uint64 -} - -// MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See -// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row. -type MibUnicastIpAddressRow struct { - Address RawSockaddrInet6 // SOCKADDR_INET union - InterfaceLuid uint64 - InterfaceIndex uint32 - PrefixOrigin uint32 - SuffixOrigin uint32 - ValidLifetime uint32 - PreferredLifetime uint32 - OnLinkPrefixLength uint8 - SkipAsSource uint8 - DadState uint32 - ScopeId uint32 - CreationTimeStamp Filetime -} - -const ScopeLevelCount = 16 - -// MIB_IPINTERFACE_ROW stores interface management information for a particular IP address family on a network interface. -// See https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipinterface_row. -type MibIpInterfaceRow struct { - Family uint16 - InterfaceLuid uint64 - InterfaceIndex uint32 - MaxReassemblySize uint32 - InterfaceIdentifier uint64 - MinRouterAdvertisementInterval uint32 - MaxRouterAdvertisementInterval uint32 - AdvertisingEnabled uint8 - ForwardingEnabled uint8 - WeakHostSend uint8 - WeakHostReceive uint8 - UseAutomaticMetric uint8 - UseNeighborUnreachabilityDetection uint8 - ManagedAddressConfigurationSupported uint8 - OtherStatefulConfigurationSupported uint8 - AdvertiseDefaultRoute uint8 - RouterDiscoveryBehavior uint32 - DadTransmits uint32 - BaseReachableTime uint32 - RetransmitTime uint32 - PathMtuDiscoveryTimeout uint32 - LinkLocalAddressBehavior uint32 - LinkLocalAddressTimeout uint32 - ZoneIndices [ScopeLevelCount]uint32 - SitePrefixLength uint32 - Metric uint32 - NlMtu uint32 - Connected uint8 - SupportsWakeUpPatterns uint8 - SupportsNeighborDiscovery uint8 - SupportsRouterDiscovery uint8 - ReachableTime uint32 - TransmitOffload uint32 - ReceiveOffload uint32 - DisableDefaultRoutes uint8 -} - -// Console related constants used for the mode parameter to SetConsoleMode. See -// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details. - -const ( - ENABLE_PROCESSED_INPUT = 0x1 - ENABLE_LINE_INPUT = 0x2 - ENABLE_ECHO_INPUT = 0x4 - ENABLE_WINDOW_INPUT = 0x8 - ENABLE_MOUSE_INPUT = 0x10 - ENABLE_INSERT_MODE = 0x20 - ENABLE_QUICK_EDIT_MODE = 0x40 - ENABLE_EXTENDED_FLAGS = 0x80 - ENABLE_AUTO_POSITION = 0x100 - ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200 - - ENABLE_PROCESSED_OUTPUT = 0x1 - ENABLE_WRAP_AT_EOL_OUTPUT = 0x2 - ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 - DISABLE_NEWLINE_AUTO_RETURN = 0x8 - ENABLE_LVB_GRID_WORLDWIDE = 0x10 -) - -// Pseudo console related constants used for the flags parameter to -// CreatePseudoConsole. See: https://learn.microsoft.com/en-us/windows/console/createpseudoconsole -const ( - PSEUDOCONSOLE_INHERIT_CURSOR = 0x1 -) - -type Coord struct { - X int16 - Y int16 -} - -type SmallRect struct { - Left int16 - Top int16 - Right int16 - Bottom int16 -} - -// Used with GetConsoleScreenBuffer to retrieve information about a console -// screen buffer. See -// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str -// for details. - -type ConsoleScreenBufferInfo struct { - Size Coord - CursorPosition Coord - Attributes uint16 - Window SmallRect - MaximumWindowSize Coord -} - -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 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 for QueryInformationJobObject and SetInformationJobObject - JobObjectAssociateCompletionPortInformation = 7 - JobObjectBasicAccountingInformation = 1 - JobObjectBasicAndIoAccountingInformation = 8 - JobObjectBasicLimitInformation = 2 - JobObjectBasicProcessIdList = 3 - JobObjectBasicUIRestrictions = 4 - JobObjectCpuRateControlInformation = 15 - JobObjectEndOfJobTimeInformation = 6 - JobObjectExtendedLimitInformation = 9 - JobObjectGroupInformation = 11 - JobObjectGroupInformationEx = 14 - JobObjectLimitViolationInformation = 13 - JobObjectLimitViolationInformation2 = 34 - JobObjectNetRateControlInformation = 32 - JobObjectNotificationLimitInformation = 12 - JobObjectNotificationLimitInformation2 = 33 - 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 -) - -type OsVersionInfoEx struct { - osVersionInfoSize uint32 - MajorVersion uint32 - MinorVersion uint32 - BuildNumber uint32 - PlatformId uint32 - CsdVersion [128]uint16 - ServicePackMajor uint16 - ServicePackMinor uint16 - SuiteMask uint16 - ProductType byte - _ byte -} - -const ( - EWX_LOGOFF = 0x00000000 - EWX_SHUTDOWN = 0x00000001 - EWX_REBOOT = 0x00000002 - EWX_FORCE = 0x00000004 - EWX_POWEROFF = 0x00000008 - EWX_FORCEIFHUNG = 0x00000010 - EWX_QUICKRESOLVE = 0x00000020 - EWX_RESTARTAPPS = 0x00000040 - EWX_HYBRID_SHUTDOWN = 0x00400000 - EWX_BOOTOPTIONS = 0x01000000 - - SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000 - SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000 - SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000 - SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000 - SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000 - SHTDN_REASON_FLAG_PLANNED = 0x80000000 - SHTDN_REASON_MAJOR_OTHER = 0x00000000 - SHTDN_REASON_MAJOR_NONE = 0x00000000 - SHTDN_REASON_MAJOR_HARDWARE = 0x00010000 - SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000 - SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000 - SHTDN_REASON_MAJOR_APPLICATION = 0x00040000 - SHTDN_REASON_MAJOR_SYSTEM = 0x00050000 - SHTDN_REASON_MAJOR_POWER = 0x00060000 - SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000 - SHTDN_REASON_MINOR_OTHER = 0x00000000 - SHTDN_REASON_MINOR_NONE = 0x000000ff - SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001 - SHTDN_REASON_MINOR_INSTALLATION = 0x00000002 - SHTDN_REASON_MINOR_UPGRADE = 0x00000003 - SHTDN_REASON_MINOR_RECONFIG = 0x00000004 - SHTDN_REASON_MINOR_HUNG = 0x00000005 - SHTDN_REASON_MINOR_UNSTABLE = 0x00000006 - SHTDN_REASON_MINOR_DISK = 0x00000007 - SHTDN_REASON_MINOR_PROCESSOR = 0x00000008 - SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009 - SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a - SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b - SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c - SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d - SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e - SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F - SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010 - SHTDN_REASON_MINOR_HOTFIX = 0x00000011 - SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012 - SHTDN_REASON_MINOR_SECURITY = 0x00000013 - SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014 - SHTDN_REASON_MINOR_WMI = 0x00000015 - SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 0x00000016 - SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017 - SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 0x00000018 - SHTDN_REASON_MINOR_MMC = 0x00000019 - SHTDN_REASON_MINOR_SYSTEMRESTORE = 0x0000001a - SHTDN_REASON_MINOR_TERMSRV = 0x00000020 - SHTDN_REASON_MINOR_DC_PROMOTION = 0x00000021 - SHTDN_REASON_MINOR_DC_DEMOTION = 0x00000022 - SHTDN_REASON_UNKNOWN = SHTDN_REASON_MINOR_NONE - SHTDN_REASON_LEGACY_API = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED - SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff - - SHUTDOWN_NORETRY = 0x1 -) - -// Flags used for GetModuleHandleEx -const ( - GET_MODULE_HANDLE_EX_FLAG_PIN = 1 - GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2 - GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4 -) - -// MUI function flag values -const ( - MUI_LANGUAGE_ID = 0x4 - MUI_LANGUAGE_NAME = 0x8 - MUI_MERGE_SYSTEM_FALLBACK = 0x10 - MUI_MERGE_USER_FALLBACK = 0x20 - MUI_UI_FALLBACK = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK - MUI_THREAD_LANGUAGES = 0x40 - MUI_CONSOLE_FILTER = 0x100 - MUI_COMPLEX_SCRIPT_FILTER = 0x200 - MUI_RESET_FILTERS = 0x001 - MUI_USER_PREFERRED_UI_LANGUAGES = 0x10 - MUI_USE_INSTALLED_LANGUAGES = 0x20 - MUI_USE_SEARCH_ALL_LANGUAGES = 0x40 - MUI_LANG_NEUTRAL_PE_FILE = 0x100 - MUI_NON_LANG_NEUTRAL_FILE = 0x200 - MUI_MACHINE_LANGUAGE_SETTINGS = 0x400 - MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 0x001 - MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002 - MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 0x004 - MUI_QUERY_TYPE = 0x001 - MUI_QUERY_CHECKSUM = 0x002 - MUI_QUERY_LANGUAGE_NAME = 0x004 - MUI_QUERY_RESOURCE_TYPES = 0x008 - MUI_FILEINFO_VERSION = 0x001 - - MUI_FULL_LANGUAGE = 0x01 - MUI_PARTIAL_LANGUAGE = 0x02 - MUI_LIP_LANGUAGE = 0x04 - MUI_LANGUAGE_INSTALLED = 0x20 - MUI_LANGUAGE_LICENSED = 0x40 -) - -// FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx -const ( - FileBasicInfo = 0 - FileStandardInfo = 1 - FileNameInfo = 2 - FileRenameInfo = 3 - FileDispositionInfo = 4 - FileAllocationInfo = 5 - FileEndOfFileInfo = 6 - FileStreamInfo = 7 - FileCompressionInfo = 8 - FileAttributeTagInfo = 9 - FileIdBothDirectoryInfo = 10 - FileIdBothDirectoryRestartInfo = 11 - FileIoPriorityHintInfo = 12 - FileRemoteProtocolInfo = 13 - FileFullDirectoryInfo = 14 - FileFullDirectoryRestartInfo = 15 - FileStorageInfo = 16 - FileAlignmentInfo = 17 - FileIdInfo = 18 - FileIdExtdDirectoryInfo = 19 - FileIdExtdDirectoryRestartInfo = 20 - FileDispositionInfoEx = 21 - FileRenameInfoEx = 22 - FileCaseSensitiveInfo = 23 - FileNormalizedNameInfo = 24 -) - -// LoadLibrary flags for determining from where to search for a DLL -const ( - DONT_RESOLVE_DLL_REFERENCES = 0x1 - LOAD_LIBRARY_AS_DATAFILE = 0x2 - LOAD_WITH_ALTERED_SEARCH_PATH = 0x8 - LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10 - LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x20 - LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x40 - LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 0x80 - LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 0x100 - LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x200 - LOAD_LIBRARY_SEARCH_USER_DIRS = 0x400 - LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x800 - LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x1000 - LOAD_LIBRARY_SAFE_CURRENT_DIRS = 0x00002000 - LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000 - LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY = 0x00008000 -) - -// RegNotifyChangeKeyValue notifyFilter flags. -const ( - // REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted. - REG_NOTIFY_CHANGE_NAME = 0x00000001 - - // REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information. - REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 - - // REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value. - REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 - - // REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key. - REG_NOTIFY_CHANGE_SECURITY = 0x00000008 - - // REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later. - REG_NOTIFY_THREAD_AGNOSTIC = 0x10000000 -) - -type CommTimeouts struct { - ReadIntervalTimeout uint32 - ReadTotalTimeoutMultiplier uint32 - ReadTotalTimeoutConstant uint32 - WriteTotalTimeoutMultiplier uint32 - WriteTotalTimeoutConstant uint32 -} - -// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING. -type NTUnicodeString struct { - // Note: Length and MaximumLength are in *bytes*, not uint16s. - // They should always be even. - Length uint16 - MaximumLength uint16 - Buffer *uint16 -} - -// NTString is an ANSI string for NT native APIs, corresponding to STRING. -type NTString struct { - Length uint16 - MaximumLength uint16 - Buffer *byte -} - -type LIST_ENTRY struct { - Flink *LIST_ENTRY - Blink *LIST_ENTRY -} - -type RUNTIME_FUNCTION struct { - BeginAddress uint32 - EndAddress uint32 - UnwindData uint32 -} - -type LDR_DATA_TABLE_ENTRY struct { - reserved1 [2]uintptr - InMemoryOrderLinks LIST_ENTRY - reserved2 [2]uintptr - DllBase uintptr - reserved3 [2]uintptr - FullDllName NTUnicodeString - reserved4 [8]byte - reserved5 [3]uintptr - reserved6 uintptr - TimeDateStamp uint32 -} - -type PEB_LDR_DATA struct { - reserved1 [8]byte - reserved2 [3]uintptr - InMemoryOrderModuleList LIST_ENTRY -} - -type CURDIR struct { - DosPath NTUnicodeString - Handle Handle -} - -type RTL_DRIVE_LETTER_CURDIR struct { - Flags uint16 - Length uint16 - TimeStamp uint32 - DosPath NTString -} - -type RTL_USER_PROCESS_PARAMETERS struct { - MaximumLength, Length uint32 - - Flags, DebugFlags uint32 - - ConsoleHandle Handle - ConsoleFlags uint32 - StandardInput, StandardOutput, StandardError Handle - - CurrentDirectory CURDIR - DllPath NTUnicodeString - ImagePathName NTUnicodeString - CommandLine NTUnicodeString - Environment unsafe.Pointer - - StartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32 - - WindowFlags, ShowWindowFlags uint32 - WindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString - CurrentDirectories [32]RTL_DRIVE_LETTER_CURDIR - - EnvironmentSize, EnvironmentVersion uintptr - - PackageDependencyData unsafe.Pointer - ProcessGroupId uint32 - LoaderThreads uint32 - - RedirectionDllName NTUnicodeString - HeapPartitionName NTUnicodeString - DefaultThreadpoolCpuSetMasks uintptr - DefaultThreadpoolCpuSetMaskCount uint32 -} - -type PEB struct { - reserved1 [2]byte - BeingDebugged byte - BitField byte - reserved3 uintptr - ImageBaseAddress uintptr - Ldr *PEB_LDR_DATA - ProcessParameters *RTL_USER_PROCESS_PARAMETERS - reserved4 [3]uintptr - AtlThunkSListPtr uintptr - reserved5 uintptr - reserved6 uint32 - reserved7 uintptr - reserved8 uint32 - AtlThunkSListPtr32 uint32 - reserved9 [45]uintptr - reserved10 [96]byte - PostProcessInitRoutine uintptr - reserved11 [128]byte - reserved12 [1]uintptr - SessionId uint32 -} - -type OBJECT_ATTRIBUTES struct { - Length uint32 - RootDirectory Handle - ObjectName *NTUnicodeString - Attributes uint32 - SecurityDescriptor *SECURITY_DESCRIPTOR - SecurityQoS *SECURITY_QUALITY_OF_SERVICE -} - -// Values for the Attributes member of OBJECT_ATTRIBUTES. -const ( - OBJ_INHERIT = 0x00000002 - OBJ_PERMANENT = 0x00000010 - OBJ_EXCLUSIVE = 0x00000020 - OBJ_CASE_INSENSITIVE = 0x00000040 - OBJ_OPENIF = 0x00000080 - OBJ_OPENLINK = 0x00000100 - OBJ_KERNEL_HANDLE = 0x00000200 - OBJ_FORCE_ACCESS_CHECK = 0x00000400 - OBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800 - OBJ_DONT_REPARSE = 0x00001000 - OBJ_VALID_ATTRIBUTES = 0x00001FF2 -) - -type IO_STATUS_BLOCK struct { - Status NTStatus - Information uintptr -} - -type RTLP_CURDIR_REF struct { - RefCount int32 - Handle Handle -} - -type RTL_RELATIVE_NAME struct { - RelativeName NTUnicodeString - ContainingDirectory Handle - CurDirRef *RTLP_CURDIR_REF -} - -const ( - // CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile. - FILE_SUPERSEDE = 0x00000000 - FILE_OPEN = 0x00000001 - FILE_CREATE = 0x00000002 - FILE_OPEN_IF = 0x00000003 - FILE_OVERWRITE = 0x00000004 - FILE_OVERWRITE_IF = 0x00000005 - FILE_MAXIMUM_DISPOSITION = 0x00000005 - - // CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile. - FILE_DIRECTORY_FILE = 0x00000001 - FILE_WRITE_THROUGH = 0x00000002 - FILE_SEQUENTIAL_ONLY = 0x00000004 - FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008 - FILE_SYNCHRONOUS_IO_ALERT = 0x00000010 - FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020 - FILE_NON_DIRECTORY_FILE = 0x00000040 - FILE_CREATE_TREE_CONNECTION = 0x00000080 - FILE_COMPLETE_IF_OPLOCKED = 0x00000100 - FILE_NO_EA_KNOWLEDGE = 0x00000200 - FILE_OPEN_REMOTE_INSTANCE = 0x00000400 - FILE_RANDOM_ACCESS = 0x00000800 - FILE_DELETE_ON_CLOSE = 0x00001000 - FILE_OPEN_BY_FILE_ID = 0x00002000 - FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000 - FILE_NO_COMPRESSION = 0x00008000 - FILE_OPEN_REQUIRING_OPLOCK = 0x00010000 - FILE_DISALLOW_EXCLUSIVE = 0x00020000 - FILE_RESERVE_OPFILTER = 0x00100000 - FILE_OPEN_REPARSE_POINT = 0x00200000 - FILE_OPEN_NO_RECALL = 0x00400000 - FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000 - - // Parameter constants for NtCreateNamedPipeFile. - - FILE_PIPE_BYTE_STREAM_TYPE = 0x00000000 - FILE_PIPE_MESSAGE_TYPE = 0x00000001 - - FILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000 - FILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002 - - FILE_PIPE_TYPE_VALID_MASK = 0x00000003 - - FILE_PIPE_BYTE_STREAM_MODE = 0x00000000 - FILE_PIPE_MESSAGE_MODE = 0x00000001 - - FILE_PIPE_QUEUE_OPERATION = 0x00000000 - FILE_PIPE_COMPLETE_OPERATION = 0x00000001 - - FILE_PIPE_INBOUND = 0x00000000 - FILE_PIPE_OUTBOUND = 0x00000001 - FILE_PIPE_FULL_DUPLEX = 0x00000002 - - FILE_PIPE_DISCONNECTED_STATE = 0x00000001 - FILE_PIPE_LISTENING_STATE = 0x00000002 - FILE_PIPE_CONNECTED_STATE = 0x00000003 - FILE_PIPE_CLOSING_STATE = 0x00000004 - - FILE_PIPE_CLIENT_END = 0x00000000 - FILE_PIPE_SERVER_END = 0x00000001 -) - -const ( - // FileInformationClass for NtSetInformationFile - FileBasicInformation = 4 - FileRenameInformation = 10 - FileDispositionInformation = 13 - FilePositionInformation = 14 - FileEndOfFileInformation = 20 - FileValidDataLengthInformation = 39 - FileShortNameInformation = 40 - FileIoPriorityHintInformation = 43 - FileReplaceCompletionInformation = 61 - FileDispositionInformationEx = 64 - FileCaseSensitiveInformation = 71 - FileLinkInformation = 72 - FileCaseSensitiveInformationForceAccessCheck = 75 - FileKnownFolderInformation = 76 - - // Flags for FILE_RENAME_INFORMATION - FILE_RENAME_REPLACE_IF_EXISTS = 0x00000001 - FILE_RENAME_POSIX_SEMANTICS = 0x00000002 - FILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE = 0x00000004 - FILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 - FILE_RENAME_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 - FILE_RENAME_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 - FILE_RENAME_PRESERVE_AVAILABLE_SPACE = 0x00000030 - FILE_RENAME_IGNORE_READONLY_ATTRIBUTE = 0x00000040 - FILE_RENAME_FORCE_RESIZE_TARGET_SR = 0x00000080 - FILE_RENAME_FORCE_RESIZE_SOURCE_SR = 0x00000100 - FILE_RENAME_FORCE_RESIZE_SR = 0x00000180 - - // Flags for FILE_DISPOSITION_INFORMATION_EX - FILE_DISPOSITION_DO_NOT_DELETE = 0x00000000 - FILE_DISPOSITION_DELETE = 0x00000001 - FILE_DISPOSITION_POSIX_SEMANTICS = 0x00000002 - FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004 - FILE_DISPOSITION_ON_CLOSE = 0x00000008 - FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010 - - // Flags for FILE_CASE_SENSITIVE_INFORMATION - FILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001 - - // Flags for FILE_LINK_INFORMATION - FILE_LINK_REPLACE_IF_EXISTS = 0x00000001 - FILE_LINK_POSIX_SEMANTICS = 0x00000002 - FILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 - FILE_LINK_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 - FILE_LINK_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 - FILE_LINK_PRESERVE_AVAILABLE_SPACE = 0x00000030 - FILE_LINK_IGNORE_READONLY_ATTRIBUTE = 0x00000040 - FILE_LINK_FORCE_RESIZE_TARGET_SR = 0x00000080 - FILE_LINK_FORCE_RESIZE_SOURCE_SR = 0x00000100 - FILE_LINK_FORCE_RESIZE_SR = 0x00000180 -) - -// ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess. -const ( - ProcessBasicInformation = iota - ProcessQuotaLimits - ProcessIoCounters - ProcessVmCounters - ProcessTimes - ProcessBasePriority - ProcessRaisePriority - ProcessDebugPort - ProcessExceptionPort - ProcessAccessToken - ProcessLdtInformation - ProcessLdtSize - ProcessDefaultHardErrorMode - ProcessIoPortHandlers - ProcessPooledUsageAndLimits - ProcessWorkingSetWatch - ProcessUserModeIOPL - ProcessEnableAlignmentFaultFixup - ProcessPriorityClass - ProcessWx86Information - ProcessHandleCount - ProcessAffinityMask - ProcessPriorityBoost - ProcessDeviceMap - ProcessSessionInformation - ProcessForegroundInformation - ProcessWow64Information - ProcessImageFileName - ProcessLUIDDeviceMapsEnabled - ProcessBreakOnTermination - ProcessDebugObjectHandle - ProcessDebugFlags - ProcessHandleTracing - ProcessIoPriority - ProcessExecuteFlags - ProcessTlsInformation - ProcessCookie - ProcessImageInformation - ProcessCycleTime - ProcessPagePriority - ProcessInstrumentationCallback - ProcessThreadStackAllocation - ProcessWorkingSetWatchEx - ProcessImageFileNameWin32 - ProcessImageFileMapping - ProcessAffinityUpdateMode - ProcessMemoryAllocationMode - ProcessGroupInformation - ProcessTokenVirtualizationEnabled - ProcessConsoleHostProcess - ProcessWindowInformation - ProcessHandleInformation - ProcessMitigationPolicy - ProcessDynamicFunctionTableInformation - ProcessHandleCheckingMode - ProcessKeepAliveCount - ProcessRevokeFileHandles - ProcessWorkingSetControl - ProcessHandleTable - ProcessCheckStackExtentsMode - ProcessCommandLineInformation - ProcessProtectionInformation - ProcessMemoryExhaustion - ProcessFaultInformation - ProcessTelemetryIdInformation - ProcessCommitReleaseInformation - ProcessDefaultCpuSetsInformation - ProcessAllowedCpuSetsInformation - ProcessSubsystemProcess - ProcessJobMemoryInformation - ProcessInPrivate - ProcessRaiseUMExceptionOnInvalidHandleClose - ProcessIumChallengeResponse - ProcessChildProcessInformation - ProcessHighGraphicsPriorityInformation - ProcessSubsystemInformation - ProcessEnergyValues - ProcessActivityThrottleState - ProcessActivityThrottlePolicy - ProcessWin32kSyscallFilterInformation - ProcessDisableSystemAllowedCpuSets - ProcessWakeInformation - ProcessEnergyTrackingState - ProcessManageWritesToExecutableMemory - ProcessCaptureTrustletLiveDump - ProcessTelemetryCoverage - ProcessEnclaveInformation - ProcessEnableReadWriteVmLogging - ProcessUptimeInformation - ProcessImageSection - ProcessDebugAuthInformation - ProcessSystemResourceManagement - ProcessSequenceNumber - ProcessLoaderDetour - ProcessSecurityDomainInformation - ProcessCombineSecurityDomainsInformation - ProcessEnableLogging - ProcessLeapSecondInformation - ProcessFiberShadowStackAllocation - ProcessFreeFiberShadowStackAllocation - ProcessAltSystemCallInformation - ProcessDynamicEHContinuationTargets - ProcessDynamicEnforcedCetCompatibleRanges -) - -type PROCESS_BASIC_INFORMATION struct { - ExitStatus NTStatus - PebBaseAddress *PEB - AffinityMask uintptr - BasePriority int32 - UniqueProcessId uintptr - InheritedFromUniqueProcessId uintptr -} - -type SYSTEM_PROCESS_INFORMATION struct { - NextEntryOffset uint32 - NumberOfThreads uint32 - WorkingSetPrivateSize int64 - HardFaultCount uint32 - NumberOfThreadsHighWatermark uint32 - CycleTime uint64 - CreateTime int64 - UserTime int64 - KernelTime int64 - ImageName NTUnicodeString - BasePriority int32 - UniqueProcessID uintptr - InheritedFromUniqueProcessID uintptr - HandleCount uint32 - SessionID uint32 - UniqueProcessKey *uint32 - PeakVirtualSize uintptr - VirtualSize uintptr - PageFaultCount uint32 - PeakWorkingSetSize uintptr - WorkingSetSize uintptr - QuotaPeakPagedPoolUsage uintptr - QuotaPagedPoolUsage uintptr - QuotaPeakNonPagedPoolUsage uintptr - QuotaNonPagedPoolUsage uintptr - PagefileUsage uintptr - PeakPagefileUsage uintptr - PrivatePageCount uintptr - ReadOperationCount int64 - WriteOperationCount int64 - OtherOperationCount int64 - ReadTransferCount int64 - WriteTransferCount int64 - OtherTransferCount int64 -} - -// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation -const ( - SystemBasicInformation = iota - SystemProcessorInformation - SystemPerformanceInformation - SystemTimeOfDayInformation - SystemPathInformation - SystemProcessInformation - SystemCallCountInformation - SystemDeviceInformation - SystemProcessorPerformanceInformation - SystemFlagsInformation - SystemCallTimeInformation - SystemModuleInformation - SystemLocksInformation - SystemStackTraceInformation - SystemPagedPoolInformation - SystemNonPagedPoolInformation - SystemHandleInformation - SystemObjectInformation - SystemPageFileInformation - SystemVdmInstemulInformation - SystemVdmBopInformation - SystemFileCacheInformation - SystemPoolTagInformation - SystemInterruptInformation - SystemDpcBehaviorInformation - SystemFullMemoryInformation - SystemLoadGdiDriverInformation - SystemUnloadGdiDriverInformation - SystemTimeAdjustmentInformation - SystemSummaryMemoryInformation - SystemMirrorMemoryInformation - SystemPerformanceTraceInformation - systemObsolete0 - SystemExceptionInformation - SystemCrashDumpStateInformation - SystemKernelDebuggerInformation - SystemContextSwitchInformation - SystemRegistryQuotaInformation - SystemExtendServiceTableInformation - SystemPrioritySeperation - SystemVerifierAddDriverInformation - SystemVerifierRemoveDriverInformation - SystemProcessorIdleInformation - SystemLegacyDriverInformation - SystemCurrentTimeZoneInformation - SystemLookasideInformation - SystemTimeSlipNotification - SystemSessionCreate - SystemSessionDetach - SystemSessionInformation - SystemRangeStartInformation - SystemVerifierInformation - SystemVerifierThunkExtend - SystemSessionProcessInformation - SystemLoadGdiDriverInSystemSpace - SystemNumaProcessorMap - SystemPrefetcherInformation - SystemExtendedProcessInformation - SystemRecommendedSharedDataAlignment - SystemComPlusPackage - SystemNumaAvailableMemory - SystemProcessorPowerInformation - SystemEmulationBasicInformation - SystemEmulationProcessorInformation - SystemExtendedHandleInformation - SystemLostDelayedWriteInformation - SystemBigPoolInformation - SystemSessionPoolTagInformation - SystemSessionMappedViewInformation - SystemHotpatchInformation - SystemObjectSecurityMode - SystemWatchdogTimerHandler - SystemWatchdogTimerInformation - SystemLogicalProcessorInformation - SystemWow64SharedInformationObsolete - SystemRegisterFirmwareTableInformationHandler - SystemFirmwareTableInformation - SystemModuleInformationEx - SystemVerifierTriageInformation - SystemSuperfetchInformation - SystemMemoryListInformation - SystemFileCacheInformationEx - SystemThreadPriorityClientIdInformation - SystemProcessorIdleCycleTimeInformation - SystemVerifierCancellationInformation - SystemProcessorPowerInformationEx - SystemRefTraceInformation - SystemSpecialPoolInformation - SystemProcessIdInformation - SystemErrorPortInformation - SystemBootEnvironmentInformation - SystemHypervisorInformation - SystemVerifierInformationEx - SystemTimeZoneInformation - SystemImageFileExecutionOptionsInformation - SystemCoverageInformation - SystemPrefetchPatchInformation - SystemVerifierFaultsInformation - SystemSystemPartitionInformation - SystemSystemDiskInformation - SystemProcessorPerformanceDistribution - SystemNumaProximityNodeInformation - SystemDynamicTimeZoneInformation - SystemCodeIntegrityInformation - SystemProcessorMicrocodeUpdateInformation - SystemProcessorBrandString - SystemVirtualAddressInformation - SystemLogicalProcessorAndGroupInformation - SystemProcessorCycleTimeInformation - SystemStoreInformation - SystemRegistryAppendString - SystemAitSamplingValue - SystemVhdBootInformation - SystemCpuQuotaInformation - SystemNativeBasicInformation - systemSpare1 - SystemLowPriorityIoInformation - SystemTpmBootEntropyInformation - SystemVerifierCountersInformation - SystemPagedPoolInformationEx - SystemSystemPtesInformationEx - SystemNodeDistanceInformation - SystemAcpiAuditInformation - SystemBasicPerformanceInformation - SystemQueryPerformanceCounterInformation - SystemSessionBigPoolInformation - SystemBootGraphicsInformation - SystemScrubPhysicalMemoryInformation - SystemBadPageInformation - SystemProcessorProfileControlArea - SystemCombinePhysicalMemoryInformation - SystemEntropyInterruptTimingCallback - SystemConsoleInformation - SystemPlatformBinaryInformation - SystemThrottleNotificationInformation - SystemHypervisorProcessorCountInformation - SystemDeviceDataInformation - SystemDeviceDataEnumerationInformation - SystemMemoryTopologyInformation - SystemMemoryChannelInformation - SystemBootLogoInformation - SystemProcessorPerformanceInformationEx - systemSpare0 - SystemSecureBootPolicyInformation - SystemPageFileInformationEx - SystemSecureBootInformation - SystemEntropyInterruptTimingRawInformation - SystemPortableWorkspaceEfiLauncherInformation - SystemFullProcessInformation - SystemKernelDebuggerInformationEx - SystemBootMetadataInformation - SystemSoftRebootInformation - SystemElamCertificateInformation - SystemOfflineDumpConfigInformation - SystemProcessorFeaturesInformation - SystemRegistryReconciliationInformation - SystemEdidInformation - SystemManufacturingInformation - SystemEnergyEstimationConfigInformation - SystemHypervisorDetailInformation - SystemProcessorCycleStatsInformation - SystemVmGenerationCountInformation - SystemTrustedPlatformModuleInformation - SystemKernelDebuggerFlags - SystemCodeIntegrityPolicyInformation - SystemIsolatedUserModeInformation - SystemHardwareSecurityTestInterfaceResultsInformation - SystemSingleModuleInformation - SystemAllowedCpuSetsInformation - SystemDmaProtectionInformation - SystemInterruptCpuSetsInformation - SystemSecureBootPolicyFullInformation - SystemCodeIntegrityPolicyFullInformation - SystemAffinitizedInterruptProcessorInformation - SystemRootSiloInformation -) - -type RTL_PROCESS_MODULE_INFORMATION struct { - Section Handle - MappedBase uintptr - ImageBase uintptr - ImageSize uint32 - Flags uint32 - LoadOrderIndex uint16 - InitOrderIndex uint16 - LoadCount uint16 - OffsetToFileName uint16 - FullPathName [256]byte -} - -type RTL_PROCESS_MODULES struct { - NumberOfModules uint32 - Modules [1]RTL_PROCESS_MODULE_INFORMATION -} - -// Constants for LocalAlloc flags. -const ( - LMEM_FIXED = 0x0 - LMEM_MOVEABLE = 0x2 - LMEM_NOCOMPACT = 0x10 - LMEM_NODISCARD = 0x20 - LMEM_ZEROINIT = 0x40 - LMEM_MODIFY = 0x80 - LMEM_DISCARDABLE = 0xf00 - LMEM_VALID_FLAGS = 0xf72 - LMEM_INVALID_HANDLE = 0x8000 - LHND = LMEM_MOVEABLE | LMEM_ZEROINIT - LPTR = LMEM_FIXED | LMEM_ZEROINIT - NONZEROLHND = LMEM_MOVEABLE - NONZEROLPTR = LMEM_FIXED -) - -// Constants for the CreateNamedPipe-family of functions. -const ( - PIPE_ACCESS_INBOUND = 0x1 - PIPE_ACCESS_OUTBOUND = 0x2 - PIPE_ACCESS_DUPLEX = 0x3 - - PIPE_CLIENT_END = 0x0 - PIPE_SERVER_END = 0x1 - - PIPE_WAIT = 0x0 - PIPE_NOWAIT = 0x1 - PIPE_READMODE_BYTE = 0x0 - PIPE_READMODE_MESSAGE = 0x2 - PIPE_TYPE_BYTE = 0x0 - PIPE_TYPE_MESSAGE = 0x4 - PIPE_ACCEPT_REMOTE_CLIENTS = 0x0 - PIPE_REJECT_REMOTE_CLIENTS = 0x8 - - PIPE_UNLIMITED_INSTANCES = 255 -) - -// Constants for security attributes when opening named pipes. -const ( - SECURITY_ANONYMOUS = SecurityAnonymous << 16 - SECURITY_IDENTIFICATION = SecurityIdentification << 16 - SECURITY_IMPERSONATION = SecurityImpersonation << 16 - SECURITY_DELEGATION = SecurityDelegation << 16 - - SECURITY_CONTEXT_TRACKING = 0x40000 - SECURITY_EFFECTIVE_ONLY = 0x80000 - - SECURITY_SQOS_PRESENT = 0x100000 - SECURITY_VALID_SQOS_FLAGS = 0x1f0000 -) - -// ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro. -type ResourceID uint16 - -// ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID, -// or a string, to specify a resource or resource type by name. -type ResourceIDOrString interface{} - -// Predefined resource names and types. -var ( - // Predefined names. - CREATEPROCESS_MANIFEST_RESOURCE_ID ResourceID = 1 - ISOLATIONAWARE_MANIFEST_RESOURCE_ID ResourceID = 2 - ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3 - ISOLATIONPOLICY_MANIFEST_RESOURCE_ID ResourceID = 4 - ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID ResourceID = 5 - MINIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 1 // inclusive - MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 16 // inclusive - - // Predefined types. - RT_CURSOR ResourceID = 1 - RT_BITMAP ResourceID = 2 - RT_ICON ResourceID = 3 - RT_MENU ResourceID = 4 - RT_DIALOG ResourceID = 5 - RT_STRING ResourceID = 6 - RT_FONTDIR ResourceID = 7 - RT_FONT ResourceID = 8 - RT_ACCELERATOR ResourceID = 9 - RT_RCDATA ResourceID = 10 - RT_MESSAGETABLE ResourceID = 11 - RT_GROUP_CURSOR ResourceID = 12 - RT_GROUP_ICON ResourceID = 14 - RT_VERSION ResourceID = 16 - RT_DLGINCLUDE ResourceID = 17 - RT_PLUGPLAY ResourceID = 19 - RT_VXD ResourceID = 20 - RT_ANICURSOR ResourceID = 21 - RT_ANIICON ResourceID = 22 - RT_HTML ResourceID = 23 - RT_MANIFEST ResourceID = 24 -) - -type VS_FIXEDFILEINFO struct { - Signature uint32 - StrucVersion uint32 - FileVersionMS uint32 - FileVersionLS uint32 - ProductVersionMS uint32 - ProductVersionLS uint32 - FileFlagsMask uint32 - FileFlags uint32 - FileOS uint32 - FileType uint32 - FileSubtype uint32 - FileDateMS uint32 - FileDateLS uint32 -} - -type COAUTHIDENTITY struct { - User *uint16 - UserLength uint32 - Domain *uint16 - DomainLength uint32 - Password *uint16 - PasswordLength uint32 - Flags uint32 -} - -type COAUTHINFO struct { - AuthnSvc uint32 - AuthzSvc uint32 - ServerPrincName *uint16 - AuthnLevel uint32 - ImpersonationLevel uint32 - AuthIdentityData *COAUTHIDENTITY - Capabilities uint32 -} - -type COSERVERINFO struct { - Reserved1 uint32 - Aame *uint16 - AuthInfo *COAUTHINFO - Reserved2 uint32 -} - -type BIND_OPTS3 struct { - CbStruct uint32 - Flags uint32 - Mode uint32 - TickCountDeadline uint32 - TrackFlags uint32 - ClassContext uint32 - Locale uint32 - ServerInfo *COSERVERINFO - Hwnd HWND -} - -const ( - CLSCTX_INPROC_SERVER = 0x1 - CLSCTX_INPROC_HANDLER = 0x2 - CLSCTX_LOCAL_SERVER = 0x4 - CLSCTX_INPROC_SERVER16 = 0x8 - CLSCTX_REMOTE_SERVER = 0x10 - CLSCTX_INPROC_HANDLER16 = 0x20 - CLSCTX_RESERVED1 = 0x40 - CLSCTX_RESERVED2 = 0x80 - CLSCTX_RESERVED3 = 0x100 - CLSCTX_RESERVED4 = 0x200 - CLSCTX_NO_CODE_DOWNLOAD = 0x400 - CLSCTX_RESERVED5 = 0x800 - CLSCTX_NO_CUSTOM_MARSHAL = 0x1000 - CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000 - CLSCTX_NO_FAILURE_LOG = 0x4000 - CLSCTX_DISABLE_AAA = 0x8000 - CLSCTX_ENABLE_AAA = 0x10000 - CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000 - CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000 - CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000 - CLSCTX_ENABLE_CLOAKING = 0x100000 - CLSCTX_APPCONTAINER = 0x400000 - CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000 - CLSCTX_PS_DLL = 0x80000000 - - COINIT_MULTITHREADED = 0x0 - COINIT_APARTMENTTHREADED = 0x2 - COINIT_DISABLE_OLE1DDE = 0x4 - COINIT_SPEED_OVER_MEMORY = 0x8 -) - -// Flag for QueryFullProcessImageName. -const PROCESS_NAME_NATIVE = 1 - -type ModuleInfo struct { - BaseOfDll uintptr - SizeOfImage uint32 - EntryPoint uintptr -} - -const ALL_PROCESSOR_GROUPS = 0xFFFF - -type Rect struct { - Left int32 - Top int32 - Right int32 - Bottom int32 -} - -type GUIThreadInfo struct { - Size uint32 - Flags uint32 - Active HWND - Focus HWND - Capture HWND - MenuOwner HWND - MoveSize HWND - CaretHandle HWND - CaretRect Rect -} - -const ( - DWMWA_NCRENDERING_ENABLED = 1 - DWMWA_NCRENDERING_POLICY = 2 - DWMWA_TRANSITIONS_FORCEDISABLED = 3 - DWMWA_ALLOW_NCPAINT = 4 - DWMWA_CAPTION_BUTTON_BOUNDS = 5 - DWMWA_NONCLIENT_RTL_LAYOUT = 6 - DWMWA_FORCE_ICONIC_REPRESENTATION = 7 - DWMWA_FLIP3D_POLICY = 8 - DWMWA_EXTENDED_FRAME_BOUNDS = 9 - DWMWA_HAS_ICONIC_BITMAP = 10 - DWMWA_DISALLOW_PEEK = 11 - DWMWA_EXCLUDED_FROM_PEEK = 12 - DWMWA_CLOAK = 13 - DWMWA_CLOAKED = 14 - DWMWA_FREEZE_REPRESENTATION = 15 - DWMWA_PASSIVE_UPDATE_MODE = 16 - DWMWA_USE_HOSTBACKDROPBRUSH = 17 - DWMWA_USE_IMMERSIVE_DARK_MODE = 20 - DWMWA_WINDOW_CORNER_PREFERENCE = 33 - DWMWA_BORDER_COLOR = 34 - DWMWA_CAPTION_COLOR = 35 - DWMWA_TEXT_COLOR = 36 - DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37 -) - -type WSAQUERYSET struct { - Size uint32 - ServiceInstanceName *uint16 - ServiceClassId *GUID - Version *WSAVersion - Comment *uint16 - NameSpace uint32 - NSProviderId *GUID - Context *uint16 - NumberOfProtocols uint32 - AfpProtocols *AFProtocols - QueryString *uint16 - NumberOfCsAddrs uint32 - SaBuffer *CSAddrInfo - OutputFlags uint32 - Blob *BLOB -} - -type WSAVersion struct { - Version uint32 - EnumerationOfComparison int32 -} - -type AFProtocols struct { - AddressFamily int32 - Protocol int32 -} - -type CSAddrInfo struct { - LocalAddr SocketAddress - RemoteAddr SocketAddress - SocketType int32 - Protocol int32 -} - -type BLOB struct { - Size uint32 - BlobData *byte -} - -type ComStat struct { - Flags uint32 - CBInQue uint32 - CBOutQue uint32 -} - -type DCB struct { - DCBlength uint32 - BaudRate uint32 - Flags uint32 - wReserved uint16 - XonLim uint16 - XoffLim uint16 - ByteSize uint8 - Parity uint8 - StopBits uint8 - XonChar byte - XoffChar byte - ErrorChar byte - EofChar byte - EvtChar byte - wReserved1 uint16 -} - -// Keyboard Layout Flags. -// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadkeyboardlayoutw -const ( - KLF_ACTIVATE = 0x00000001 - KLF_SUBSTITUTE_OK = 0x00000002 - KLF_REORDER = 0x00000008 - KLF_REPLACELANG = 0x00000010 - KLF_NOTELLSHELL = 0x00000080 - KLF_SETFORPROCESS = 0x00000100 -) - -// Virtual Key codes -// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes -const ( - VK_LBUTTON = 0x01 - VK_RBUTTON = 0x02 - VK_CANCEL = 0x03 - VK_MBUTTON = 0x04 - VK_XBUTTON1 = 0x05 - VK_XBUTTON2 = 0x06 - VK_BACK = 0x08 - VK_TAB = 0x09 - VK_CLEAR = 0x0C - VK_RETURN = 0x0D - VK_SHIFT = 0x10 - VK_CONTROL = 0x11 - VK_MENU = 0x12 - VK_PAUSE = 0x13 - VK_CAPITAL = 0x14 - VK_KANA = 0x15 - VK_HANGEUL = 0x15 - VK_HANGUL = 0x15 - VK_IME_ON = 0x16 - VK_JUNJA = 0x17 - VK_FINAL = 0x18 - VK_HANJA = 0x19 - VK_KANJI = 0x19 - VK_IME_OFF = 0x1A - VK_ESCAPE = 0x1B - VK_CONVERT = 0x1C - VK_NONCONVERT = 0x1D - VK_ACCEPT = 0x1E - VK_MODECHANGE = 0x1F - VK_SPACE = 0x20 - VK_PRIOR = 0x21 - VK_NEXT = 0x22 - VK_END = 0x23 - VK_HOME = 0x24 - VK_LEFT = 0x25 - VK_UP = 0x26 - VK_RIGHT = 0x27 - VK_DOWN = 0x28 - VK_SELECT = 0x29 - VK_PRINT = 0x2A - VK_EXECUTE = 0x2B - VK_SNAPSHOT = 0x2C - VK_INSERT = 0x2D - VK_DELETE = 0x2E - VK_HELP = 0x2F - VK_LWIN = 0x5B - VK_RWIN = 0x5C - VK_APPS = 0x5D - VK_SLEEP = 0x5F - VK_NUMPAD0 = 0x60 - VK_NUMPAD1 = 0x61 - VK_NUMPAD2 = 0x62 - VK_NUMPAD3 = 0x63 - VK_NUMPAD4 = 0x64 - VK_NUMPAD5 = 0x65 - VK_NUMPAD6 = 0x66 - VK_NUMPAD7 = 0x67 - VK_NUMPAD8 = 0x68 - VK_NUMPAD9 = 0x69 - VK_MULTIPLY = 0x6A - VK_ADD = 0x6B - VK_SEPARATOR = 0x6C - VK_SUBTRACT = 0x6D - VK_DECIMAL = 0x6E - VK_DIVIDE = 0x6F - VK_F1 = 0x70 - VK_F2 = 0x71 - VK_F3 = 0x72 - VK_F4 = 0x73 - VK_F5 = 0x74 - VK_F6 = 0x75 - VK_F7 = 0x76 - VK_F8 = 0x77 - VK_F9 = 0x78 - VK_F10 = 0x79 - VK_F11 = 0x7A - VK_F12 = 0x7B - VK_F13 = 0x7C - VK_F14 = 0x7D - VK_F15 = 0x7E - VK_F16 = 0x7F - VK_F17 = 0x80 - VK_F18 = 0x81 - VK_F19 = 0x82 - VK_F20 = 0x83 - VK_F21 = 0x84 - VK_F22 = 0x85 - VK_F23 = 0x86 - VK_F24 = 0x87 - VK_NUMLOCK = 0x90 - VK_SCROLL = 0x91 - VK_OEM_NEC_EQUAL = 0x92 - VK_OEM_FJ_JISHO = 0x92 - VK_OEM_FJ_MASSHOU = 0x93 - VK_OEM_FJ_TOUROKU = 0x94 - VK_OEM_FJ_LOYA = 0x95 - VK_OEM_FJ_ROYA = 0x96 - VK_LSHIFT = 0xA0 - VK_RSHIFT = 0xA1 - VK_LCONTROL = 0xA2 - VK_RCONTROL = 0xA3 - VK_LMENU = 0xA4 - VK_RMENU = 0xA5 - VK_BROWSER_BACK = 0xA6 - VK_BROWSER_FORWARD = 0xA7 - VK_BROWSER_REFRESH = 0xA8 - VK_BROWSER_STOP = 0xA9 - VK_BROWSER_SEARCH = 0xAA - VK_BROWSER_FAVORITES = 0xAB - VK_BROWSER_HOME = 0xAC - VK_VOLUME_MUTE = 0xAD - VK_VOLUME_DOWN = 0xAE - VK_VOLUME_UP = 0xAF - VK_MEDIA_NEXT_TRACK = 0xB0 - VK_MEDIA_PREV_TRACK = 0xB1 - VK_MEDIA_STOP = 0xB2 - VK_MEDIA_PLAY_PAUSE = 0xB3 - VK_LAUNCH_MAIL = 0xB4 - VK_LAUNCH_MEDIA_SELECT = 0xB5 - VK_LAUNCH_APP1 = 0xB6 - VK_LAUNCH_APP2 = 0xB7 - VK_OEM_1 = 0xBA - VK_OEM_PLUS = 0xBB - VK_OEM_COMMA = 0xBC - VK_OEM_MINUS = 0xBD - VK_OEM_PERIOD = 0xBE - VK_OEM_2 = 0xBF - VK_OEM_3 = 0xC0 - VK_OEM_4 = 0xDB - VK_OEM_5 = 0xDC - VK_OEM_6 = 0xDD - VK_OEM_7 = 0xDE - VK_OEM_8 = 0xDF - VK_OEM_AX = 0xE1 - VK_OEM_102 = 0xE2 - VK_ICO_HELP = 0xE3 - VK_ICO_00 = 0xE4 - VK_PROCESSKEY = 0xE5 - VK_ICO_CLEAR = 0xE6 - VK_OEM_RESET = 0xE9 - VK_OEM_JUMP = 0xEA - VK_OEM_PA1 = 0xEB - VK_OEM_PA2 = 0xEC - VK_OEM_PA3 = 0xED - VK_OEM_WSCTRL = 0xEE - VK_OEM_CUSEL = 0xEF - VK_OEM_ATTN = 0xF0 - VK_OEM_FINISH = 0xF1 - VK_OEM_COPY = 0xF2 - VK_OEM_AUTO = 0xF3 - VK_OEM_ENLW = 0xF4 - VK_OEM_BACKTAB = 0xF5 - VK_ATTN = 0xF6 - VK_CRSEL = 0xF7 - VK_EXSEL = 0xF8 - VK_EREOF = 0xF9 - VK_PLAY = 0xFA - VK_ZOOM = 0xFB - VK_NONAME = 0xFC - VK_PA1 = 0xFD - VK_OEM_CLEAR = 0xFE -) - -// Mouse button constants. -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str -const ( - FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 - RIGHTMOST_BUTTON_PRESSED = 0x0002 - FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 - FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 - FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 -) - -// Control key state constaints. -// https://docs.microsoft.com/en-us/windows/console/key-event-record-str -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str -const ( - CAPSLOCK_ON = 0x0080 - ENHANCED_KEY = 0x0100 - LEFT_ALT_PRESSED = 0x0002 - LEFT_CTRL_PRESSED = 0x0008 - NUMLOCK_ON = 0x0020 - RIGHT_ALT_PRESSED = 0x0001 - RIGHT_CTRL_PRESSED = 0x0004 - SCROLLLOCK_ON = 0x0040 - SHIFT_PRESSED = 0x0010 -) - -// Mouse event record event flags. -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str -const ( - MOUSE_MOVED = 0x0001 - DOUBLE_CLICK = 0x0002 - MOUSE_WHEELED = 0x0004 - MOUSE_HWHEELED = 0x0008 -) - -// Input Record Event Types -// https://learn.microsoft.com/en-us/windows/console/input-record-str -const ( - FOCUS_EVENT = 0x0010 - KEY_EVENT = 0x0001 - MENU_EVENT = 0x0008 - MOUSE_EVENT = 0x0002 - WINDOW_BUFFER_SIZE_EVENT = 0x0004 -) diff --git a/vendor/golang.org/x/sys/windows/types_windows_386.go b/vendor/golang.org/x/sys/windows/types_windows_386.go deleted file mode 100644 index 8bce3e2..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows_386.go +++ /dev/null @@ -1,35 +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 windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte -} - -type Servent struct { - Name *byte - Aliases **byte - Port uint16 - Proto *byte -} - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 - _ uint32 // pad to 8 byte boundary -} diff --git a/vendor/golang.org/x/sys/windows/types_windows_amd64.go b/vendor/golang.org/x/sys/windows/types_windows_amd64.go deleted file mode 100644 index fdddc0c..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows_amd64.go +++ /dev/null @@ -1,34 +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 windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte -} - -type Servent struct { - Name *byte - Aliases **byte - Proto *byte - Port uint16 -} - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 -} diff --git a/vendor/golang.org/x/sys/windows/types_windows_arm.go b/vendor/golang.org/x/sys/windows/types_windows_arm.go deleted file mode 100644 index 321872c..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows_arm.go +++ /dev/null @@ -1,35 +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 windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte -} - -type Servent struct { - Name *byte - Aliases **byte - Port uint16 - Proto *byte -} - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 - _ uint32 // pad to 8 byte boundary -} diff --git a/vendor/golang.org/x/sys/windows/types_windows_arm64.go b/vendor/golang.org/x/sys/windows/types_windows_arm64.go deleted file mode 100644 index fdddc0c..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows_arm64.go +++ /dev/null @@ -1,34 +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 windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte -} - -type Servent struct { - Name *byte - Aliases **byte - Proto *byte - Port uint16 -} - -type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { - PerProcessUserTimeLimit int64 - PerJobUserTimeLimit int64 - LimitFlags uint32 - MinimumWorkingSetSize uintptr - MaximumWorkingSetSize uintptr - ActiveProcessLimit uint32 - Affinity uintptr - PriorityClass uint32 - SchedulingClass uint32 -} 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 0cf658f..0000000 --- a/vendor/golang.org/x/sys/windows/zerrors_windows.go +++ /dev/null @@ -1,9468 +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_GAME = 2340 - 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_SENSITIVE_THREAD syscall.Errno = 422 - ERROR_DPL_NOT_SUPPORTED_FOR_USER syscall.Errno = 423 - ERROR_CASE_DIFFERING_NAMES_IN_DIR syscall.Errno = 424 - ERROR_FILE_NOT_SUPPORTED syscall.Errno = 425 - ERROR_CLOUD_FILE_REQUEST_TIMEOUT syscall.Errno = 426 - ERROR_NO_TASK_QUEUE syscall.Errno = 427 - ERROR_SRC_SRV_DLL_LOAD_FAILED syscall.Errno = 428 - ERROR_NOT_SUPPORTED_WITH_BTT syscall.Errno = 429 - ERROR_ENCRYPTION_DISABLED syscall.Errno = 430 - ERROR_ENCRYPTING_METADATA_DISALLOWED syscall.Errno = 431 - ERROR_CANT_CLEAR_ENCRYPTION_FLAG syscall.Errno = 432 - ERROR_NO_SUCH_DEVICE syscall.Errno = 433 - 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_SYSTEM_INTEGRITY_TOO_MANY_POLICIES syscall.Errno = 4554 - ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED syscall.Errno = 4555 - 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_WIP_ENCRYPTION_FAILED syscall.Errno = 6023 - 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_SXS_DUPLICATE_ACTIVATABLE_CLASS syscall.Errno = 14111 - 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_MRM_MISSING_DEFAULT_LANGUAGE syscall.Errno = 15160 - 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 - ERROR_APPX_RAW_DATA_WRITE_FAILED syscall.Errno = 15648 - ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE syscall.Errno = 15649 - ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE syscall.Errno = 15650 - ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY syscall.Errno = 15651 - ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY syscall.Errno = 15652 - ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER syscall.Errno = 15653 - ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED syscall.Errno = 15654 - ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE syscall.Errno = 15655 - ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES syscall.Errno = 15656 - 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 - APPMODEL_ERROR_NO_MUTABLE_DIRECTORY syscall.Errno = 15707 - 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_SENSITIVE_THREAD = ERROR_TIME_SENSITIVE_THREAD - E_NO_TASK_QUEUE = ERROR_NO_TASK_QUEUE - 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_I_GENERIC_EXTENSION_RECEIVED Handle = 0x00090316 - 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_EXT_BUFFER_TOO_SMALL Handle = 0x8009036A - SEC_E_INSUFFICIENT_BUFFERS Handle = 0x8009036B - 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_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN Handle = 0xC0262012 - ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED Handle = 0xC0262013 - 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 - FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE Handle = 0x803100DA - FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE Handle = 0x803100DB - FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE Handle = 0x803100DC - FVE_E_KEY_ROTATION_NOT_SUPPORTED Handle = 0x803100DD - FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON Handle = 0x803100DE - FVE_E_KEY_ROTATION_NOT_ENABLED Handle = 0x803100DF - FVE_E_DEVICE_NOT_JOINED Handle = 0x803100E0 - 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 - HCN_E_ICS_DISABLED Handle = 0x803B002A - HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS Handle = 0x803B002B - HCN_E_ENTITY_HAS_REFERENCES Handle = 0x803B002C - HCN_E_INVALID_INTERNAL_PORT Handle = 0x803B002D - HCN_E_NAMESPACE_ATTACH_FAILED Handle = 0x803B002E - HCN_E_ADDR_INVALID_OR_RESERVED Handle = 0x803B002F - 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 - UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED Handle = 0x87C5105C - WINML_ERR_INVALID_DEVICE Handle = 0x88900001 - WINML_ERR_INVALID_BINDING Handle = 0x88900002 - WINML_ERR_VALUE_NOTFOUND Handle = 0x88900003 - WINML_ERR_SIZE_MISMATCH Handle = 0x88900004 - STATUS_WAIT_0 NTStatus = 0x00000000 - STATUS_SUCCESS NTStatus = 0x00000000 - STATUS_WAIT_1 NTStatus = 0x00000001 - STATUS_WAIT_2 NTStatus = 0x00000002 - STATUS_WAIT_3 NTStatus = 0x00000003 - STATUS_WAIT_63 NTStatus = 0x0000003F - STATUS_ABANDONED NTStatus = 0x00000080 - STATUS_ABANDONED_WAIT_0 NTStatus = 0x00000080 - STATUS_ABANDONED_WAIT_63 NTStatus = 0x000000BF - STATUS_USER_APC NTStatus = 0x000000C0 - STATUS_ALREADY_COMPLETE NTStatus = 0x000000FF - STATUS_KERNEL_APC NTStatus = 0x00000100 - STATUS_ALERTED NTStatus = 0x00000101 - STATUS_TIMEOUT NTStatus = 0x00000102 - STATUS_PENDING NTStatus = 0x00000103 - STATUS_REPARSE NTStatus = 0x00000104 - STATUS_MORE_ENTRIES NTStatus = 0x00000105 - STATUS_NOT_ALL_ASSIGNED NTStatus = 0x00000106 - STATUS_SOME_NOT_MAPPED NTStatus = 0x00000107 - STATUS_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0x00000108 - STATUS_VOLUME_MOUNTED NTStatus = 0x00000109 - STATUS_RXACT_COMMITTED NTStatus = 0x0000010A - STATUS_NOTIFY_CLEANUP NTStatus = 0x0000010B - STATUS_NOTIFY_ENUM_DIR NTStatus = 0x0000010C - STATUS_NO_QUOTAS_FOR_ACCOUNT NTStatus = 0x0000010D - STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED NTStatus = 0x0000010E - STATUS_PAGE_FAULT_TRANSITION NTStatus = 0x00000110 - STATUS_PAGE_FAULT_DEMAND_ZERO NTStatus = 0x00000111 - STATUS_PAGE_FAULT_COPY_ON_WRITE NTStatus = 0x00000112 - STATUS_PAGE_FAULT_GUARD_PAGE NTStatus = 0x00000113 - STATUS_PAGE_FAULT_PAGING_FILE NTStatus = 0x00000114 - STATUS_CACHE_PAGE_LOCKED NTStatus = 0x00000115 - STATUS_CRASH_DUMP NTStatus = 0x00000116 - STATUS_BUFFER_ALL_ZEROS NTStatus = 0x00000117 - STATUS_REPARSE_OBJECT NTStatus = 0x00000118 - STATUS_RESOURCE_REQUIREMENTS_CHANGED NTStatus = 0x00000119 - STATUS_TRANSLATION_COMPLETE NTStatus = 0x00000120 - STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY NTStatus = 0x00000121 - STATUS_NOTHING_TO_TERMINATE NTStatus = 0x00000122 - STATUS_PROCESS_NOT_IN_JOB NTStatus = 0x00000123 - STATUS_PROCESS_IN_JOB NTStatus = 0x00000124 - STATUS_VOLSNAP_HIBERNATE_READY NTStatus = 0x00000125 - STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY NTStatus = 0x00000126 - STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED NTStatus = 0x00000127 - STATUS_INTERRUPT_STILL_CONNECTED NTStatus = 0x00000128 - STATUS_PROCESS_CLONED NTStatus = 0x00000129 - STATUS_FILE_LOCKED_WITH_ONLY_READERS NTStatus = 0x0000012A - STATUS_FILE_LOCKED_WITH_WRITERS NTStatus = 0x0000012B - STATUS_VALID_IMAGE_HASH NTStatus = 0x0000012C - STATUS_VALID_CATALOG_HASH NTStatus = 0x0000012D - STATUS_VALID_STRONG_CODE_HASH NTStatus = 0x0000012E - STATUS_GHOSTED NTStatus = 0x0000012F - STATUS_DATA_OVERWRITTEN NTStatus = 0x00000130 - STATUS_RESOURCEMANAGER_READ_ONLY NTStatus = 0x00000202 - STATUS_RING_PREVIOUSLY_EMPTY NTStatus = 0x00000210 - STATUS_RING_PREVIOUSLY_FULL NTStatus = 0x00000211 - STATUS_RING_PREVIOUSLY_ABOVE_QUOTA NTStatus = 0x00000212 - STATUS_RING_NEWLY_EMPTY NTStatus = 0x00000213 - STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT NTStatus = 0x00000214 - STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE NTStatus = 0x00000215 - STATUS_OPLOCK_HANDLE_CLOSED NTStatus = 0x00000216 - STATUS_WAIT_FOR_OPLOCK NTStatus = 0x00000367 - STATUS_REPARSE_GLOBAL NTStatus = 0x00000368 - STATUS_FLT_IO_COMPLETE NTStatus = 0x001C0001 - STATUS_OBJECT_NAME_EXISTS NTStatus = 0x40000000 - STATUS_THREAD_WAS_SUSPENDED NTStatus = 0x40000001 - STATUS_WORKING_SET_LIMIT_RANGE NTStatus = 0x40000002 - STATUS_IMAGE_NOT_AT_BASE NTStatus = 0x40000003 - STATUS_RXACT_STATE_CREATED NTStatus = 0x40000004 - STATUS_SEGMENT_NOTIFICATION NTStatus = 0x40000005 - STATUS_LOCAL_USER_SESSION_KEY NTStatus = 0x40000006 - STATUS_BAD_CURRENT_DIRECTORY NTStatus = 0x40000007 - STATUS_SERIAL_MORE_WRITES NTStatus = 0x40000008 - STATUS_REGISTRY_RECOVERED NTStatus = 0x40000009 - STATUS_FT_READ_RECOVERY_FROM_BACKUP NTStatus = 0x4000000A - STATUS_FT_WRITE_RECOVERY NTStatus = 0x4000000B - STATUS_SERIAL_COUNTER_TIMEOUT NTStatus = 0x4000000C - STATUS_NULL_LM_PASSWORD NTStatus = 0x4000000D - STATUS_IMAGE_MACHINE_TYPE_MISMATCH NTStatus = 0x4000000E - STATUS_RECEIVE_PARTIAL NTStatus = 0x4000000F - STATUS_RECEIVE_EXPEDITED NTStatus = 0x40000010 - STATUS_RECEIVE_PARTIAL_EXPEDITED NTStatus = 0x40000011 - STATUS_EVENT_DONE NTStatus = 0x40000012 - STATUS_EVENT_PENDING NTStatus = 0x40000013 - STATUS_CHECKING_FILE_SYSTEM NTStatus = 0x40000014 - STATUS_FATAL_APP_EXIT NTStatus = 0x40000015 - STATUS_PREDEFINED_HANDLE NTStatus = 0x40000016 - STATUS_WAS_UNLOCKED NTStatus = 0x40000017 - STATUS_SERVICE_NOTIFICATION NTStatus = 0x40000018 - STATUS_WAS_LOCKED NTStatus = 0x40000019 - STATUS_LOG_HARD_ERROR NTStatus = 0x4000001A - STATUS_ALREADY_WIN32 NTStatus = 0x4000001B - STATUS_WX86_UNSIMULATE NTStatus = 0x4000001C - STATUS_WX86_CONTINUE NTStatus = 0x4000001D - STATUS_WX86_SINGLE_STEP NTStatus = 0x4000001E - STATUS_WX86_BREAKPOINT NTStatus = 0x4000001F - STATUS_WX86_EXCEPTION_CONTINUE NTStatus = 0x40000020 - STATUS_WX86_EXCEPTION_LASTCHANCE NTStatus = 0x40000021 - STATUS_WX86_EXCEPTION_CHAIN NTStatus = 0x40000022 - STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE NTStatus = 0x40000023 - STATUS_NO_YIELD_PERFORMED NTStatus = 0x40000024 - STATUS_TIMER_RESUME_IGNORED NTStatus = 0x40000025 - STATUS_ARBITRATION_UNHANDLED NTStatus = 0x40000026 - STATUS_CARDBUS_NOT_SUPPORTED NTStatus = 0x40000027 - STATUS_WX86_CREATEWX86TIB NTStatus = 0x40000028 - STATUS_MP_PROCESSOR_MISMATCH NTStatus = 0x40000029 - STATUS_HIBERNATED NTStatus = 0x4000002A - STATUS_RESUME_HIBERNATION NTStatus = 0x4000002B - STATUS_FIRMWARE_UPDATED NTStatus = 0x4000002C - STATUS_DRIVERS_LEAKING_LOCKED_PAGES NTStatus = 0x4000002D - STATUS_MESSAGE_RETRIEVED NTStatus = 0x4000002E - STATUS_SYSTEM_POWERSTATE_TRANSITION NTStatus = 0x4000002F - STATUS_ALPC_CHECK_COMPLETION_LIST NTStatus = 0x40000030 - STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION NTStatus = 0x40000031 - STATUS_ACCESS_AUDIT_BY_POLICY NTStatus = 0x40000032 - STATUS_ABANDON_HIBERFILE NTStatus = 0x40000033 - STATUS_BIZRULES_NOT_ENABLED NTStatus = 0x40000034 - STATUS_FT_READ_FROM_COPY NTStatus = 0x40000035 - STATUS_IMAGE_AT_DIFFERENT_BASE NTStatus = 0x40000036 - STATUS_PATCH_DEFERRED NTStatus = 0x40000037 - STATUS_HEURISTIC_DAMAGE_POSSIBLE NTStatus = 0x40190001 - STATUS_GUARD_PAGE_VIOLATION NTStatus = 0x80000001 - STATUS_DATATYPE_MISALIGNMENT NTStatus = 0x80000002 - STATUS_BREAKPOINT NTStatus = 0x80000003 - STATUS_SINGLE_STEP NTStatus = 0x80000004 - STATUS_BUFFER_OVERFLOW NTStatus = 0x80000005 - STATUS_NO_MORE_FILES NTStatus = 0x80000006 - STATUS_WAKE_SYSTEM_DEBUGGER NTStatus = 0x80000007 - STATUS_HANDLES_CLOSED NTStatus = 0x8000000A - STATUS_NO_INHERITANCE NTStatus = 0x8000000B - STATUS_GUID_SUBSTITUTION_MADE NTStatus = 0x8000000C - STATUS_PARTIAL_COPY NTStatus = 0x8000000D - STATUS_DEVICE_PAPER_EMPTY NTStatus = 0x8000000E - STATUS_DEVICE_POWERED_OFF NTStatus = 0x8000000F - STATUS_DEVICE_OFF_LINE NTStatus = 0x80000010 - STATUS_DEVICE_BUSY NTStatus = 0x80000011 - STATUS_NO_MORE_EAS NTStatus = 0x80000012 - STATUS_INVALID_EA_NAME NTStatus = 0x80000013 - STATUS_EA_LIST_INCONSISTENT NTStatus = 0x80000014 - STATUS_INVALID_EA_FLAG NTStatus = 0x80000015 - STATUS_VERIFY_REQUIRED NTStatus = 0x80000016 - STATUS_EXTRANEOUS_INFORMATION NTStatus = 0x80000017 - STATUS_RXACT_COMMIT_NECESSARY NTStatus = 0x80000018 - STATUS_NO_MORE_ENTRIES NTStatus = 0x8000001A - STATUS_FILEMARK_DETECTED NTStatus = 0x8000001B - STATUS_MEDIA_CHANGED NTStatus = 0x8000001C - STATUS_BUS_RESET NTStatus = 0x8000001D - STATUS_END_OF_MEDIA NTStatus = 0x8000001E - STATUS_BEGINNING_OF_MEDIA NTStatus = 0x8000001F - STATUS_MEDIA_CHECK NTStatus = 0x80000020 - STATUS_SETMARK_DETECTED NTStatus = 0x80000021 - STATUS_NO_DATA_DETECTED NTStatus = 0x80000022 - STATUS_REDIRECTOR_HAS_OPEN_HANDLES NTStatus = 0x80000023 - STATUS_SERVER_HAS_OPEN_HANDLES NTStatus = 0x80000024 - STATUS_ALREADY_DISCONNECTED NTStatus = 0x80000025 - STATUS_LONGJUMP NTStatus = 0x80000026 - STATUS_CLEANER_CARTRIDGE_INSTALLED NTStatus = 0x80000027 - STATUS_PLUGPLAY_QUERY_VETOED NTStatus = 0x80000028 - STATUS_UNWIND_CONSOLIDATE NTStatus = 0x80000029 - STATUS_REGISTRY_HIVE_RECOVERED NTStatus = 0x8000002A - STATUS_DLL_MIGHT_BE_INSECURE NTStatus = 0x8000002B - STATUS_DLL_MIGHT_BE_INCOMPATIBLE NTStatus = 0x8000002C - STATUS_STOPPED_ON_SYMLINK NTStatus = 0x8000002D - STATUS_CANNOT_GRANT_REQUESTED_OPLOCK NTStatus = 0x8000002E - STATUS_NO_ACE_CONDITION NTStatus = 0x8000002F - STATUS_DEVICE_SUPPORT_IN_PROGRESS NTStatus = 0x80000030 - STATUS_DEVICE_POWER_CYCLE_REQUIRED NTStatus = 0x80000031 - STATUS_NO_WORK_DONE NTStatus = 0x80000032 - STATUS_CLUSTER_NODE_ALREADY_UP NTStatus = 0x80130001 - STATUS_CLUSTER_NODE_ALREADY_DOWN NTStatus = 0x80130002 - STATUS_CLUSTER_NETWORK_ALREADY_ONLINE NTStatus = 0x80130003 - STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE NTStatus = 0x80130004 - STATUS_CLUSTER_NODE_ALREADY_MEMBER NTStatus = 0x80130005 - STATUS_FLT_BUFFER_TOO_SMALL NTStatus = 0x801C0001 - STATUS_FVE_PARTIAL_METADATA NTStatus = 0x80210001 - STATUS_FVE_TRANSIENT_STATE NTStatus = 0x80210002 - STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH NTStatus = 0x8000CF00 - STATUS_UNSUCCESSFUL NTStatus = 0xC0000001 - STATUS_NOT_IMPLEMENTED NTStatus = 0xC0000002 - STATUS_INVALID_INFO_CLASS NTStatus = 0xC0000003 - STATUS_INFO_LENGTH_MISMATCH NTStatus = 0xC0000004 - STATUS_ACCESS_VIOLATION NTStatus = 0xC0000005 - STATUS_IN_PAGE_ERROR NTStatus = 0xC0000006 - STATUS_PAGEFILE_QUOTA NTStatus = 0xC0000007 - STATUS_INVALID_HANDLE NTStatus = 0xC0000008 - STATUS_BAD_INITIAL_STACK NTStatus = 0xC0000009 - STATUS_BAD_INITIAL_PC NTStatus = 0xC000000A - STATUS_INVALID_CID NTStatus = 0xC000000B - STATUS_TIMER_NOT_CANCELED NTStatus = 0xC000000C - STATUS_INVALID_PARAMETER NTStatus = 0xC000000D - STATUS_NO_SUCH_DEVICE NTStatus = 0xC000000E - STATUS_NO_SUCH_FILE NTStatus = 0xC000000F - STATUS_INVALID_DEVICE_REQUEST NTStatus = 0xC0000010 - STATUS_END_OF_FILE NTStatus = 0xC0000011 - STATUS_WRONG_VOLUME NTStatus = 0xC0000012 - STATUS_NO_MEDIA_IN_DEVICE NTStatus = 0xC0000013 - STATUS_UNRECOGNIZED_MEDIA NTStatus = 0xC0000014 - STATUS_NONEXISTENT_SECTOR NTStatus = 0xC0000015 - STATUS_MORE_PROCESSING_REQUIRED NTStatus = 0xC0000016 - STATUS_NO_MEMORY NTStatus = 0xC0000017 - STATUS_CONFLICTING_ADDRESSES NTStatus = 0xC0000018 - STATUS_NOT_MAPPED_VIEW NTStatus = 0xC0000019 - STATUS_UNABLE_TO_FREE_VM NTStatus = 0xC000001A - STATUS_UNABLE_TO_DELETE_SECTION NTStatus = 0xC000001B - STATUS_INVALID_SYSTEM_SERVICE NTStatus = 0xC000001C - STATUS_ILLEGAL_INSTRUCTION NTStatus = 0xC000001D - STATUS_INVALID_LOCK_SEQUENCE NTStatus = 0xC000001E - STATUS_INVALID_VIEW_SIZE NTStatus = 0xC000001F - STATUS_INVALID_FILE_FOR_SECTION NTStatus = 0xC0000020 - STATUS_ALREADY_COMMITTED NTStatus = 0xC0000021 - STATUS_ACCESS_DENIED NTStatus = 0xC0000022 - STATUS_BUFFER_TOO_SMALL NTStatus = 0xC0000023 - STATUS_OBJECT_TYPE_MISMATCH NTStatus = 0xC0000024 - STATUS_NONCONTINUABLE_EXCEPTION NTStatus = 0xC0000025 - STATUS_INVALID_DISPOSITION NTStatus = 0xC0000026 - STATUS_UNWIND NTStatus = 0xC0000027 - STATUS_BAD_STACK NTStatus = 0xC0000028 - STATUS_INVALID_UNWIND_TARGET NTStatus = 0xC0000029 - STATUS_NOT_LOCKED NTStatus = 0xC000002A - STATUS_PARITY_ERROR NTStatus = 0xC000002B - STATUS_UNABLE_TO_DECOMMIT_VM NTStatus = 0xC000002C - STATUS_NOT_COMMITTED NTStatus = 0xC000002D - STATUS_INVALID_PORT_ATTRIBUTES NTStatus = 0xC000002E - STATUS_PORT_MESSAGE_TOO_LONG NTStatus = 0xC000002F - STATUS_INVALID_PARAMETER_MIX NTStatus = 0xC0000030 - STATUS_INVALID_QUOTA_LOWER NTStatus = 0xC0000031 - STATUS_DISK_CORRUPT_ERROR NTStatus = 0xC0000032 - STATUS_OBJECT_NAME_INVALID NTStatus = 0xC0000033 - STATUS_OBJECT_NAME_NOT_FOUND NTStatus = 0xC0000034 - STATUS_OBJECT_NAME_COLLISION NTStatus = 0xC0000035 - STATUS_PORT_DO_NOT_DISTURB NTStatus = 0xC0000036 - STATUS_PORT_DISCONNECTED NTStatus = 0xC0000037 - STATUS_DEVICE_ALREADY_ATTACHED NTStatus = 0xC0000038 - STATUS_OBJECT_PATH_INVALID NTStatus = 0xC0000039 - STATUS_OBJECT_PATH_NOT_FOUND NTStatus = 0xC000003A - STATUS_OBJECT_PATH_SYNTAX_BAD NTStatus = 0xC000003B - STATUS_DATA_OVERRUN NTStatus = 0xC000003C - STATUS_DATA_LATE_ERROR NTStatus = 0xC000003D - STATUS_DATA_ERROR NTStatus = 0xC000003E - STATUS_CRC_ERROR NTStatus = 0xC000003F - STATUS_SECTION_TOO_BIG NTStatus = 0xC0000040 - STATUS_PORT_CONNECTION_REFUSED NTStatus = 0xC0000041 - STATUS_INVALID_PORT_HANDLE NTStatus = 0xC0000042 - STATUS_SHARING_VIOLATION NTStatus = 0xC0000043 - STATUS_QUOTA_EXCEEDED NTStatus = 0xC0000044 - STATUS_INVALID_PAGE_PROTECTION NTStatus = 0xC0000045 - STATUS_MUTANT_NOT_OWNED NTStatus = 0xC0000046 - STATUS_SEMAPHORE_LIMIT_EXCEEDED NTStatus = 0xC0000047 - STATUS_PORT_ALREADY_SET NTStatus = 0xC0000048 - STATUS_SECTION_NOT_IMAGE NTStatus = 0xC0000049 - STATUS_SUSPEND_COUNT_EXCEEDED NTStatus = 0xC000004A - STATUS_THREAD_IS_TERMINATING NTStatus = 0xC000004B - STATUS_BAD_WORKING_SET_LIMIT NTStatus = 0xC000004C - STATUS_INCOMPATIBLE_FILE_MAP NTStatus = 0xC000004D - STATUS_SECTION_PROTECTION NTStatus = 0xC000004E - STATUS_EAS_NOT_SUPPORTED NTStatus = 0xC000004F - STATUS_EA_TOO_LARGE NTStatus = 0xC0000050 - STATUS_NONEXISTENT_EA_ENTRY NTStatus = 0xC0000051 - STATUS_NO_EAS_ON_FILE NTStatus = 0xC0000052 - STATUS_EA_CORRUPT_ERROR NTStatus = 0xC0000053 - STATUS_FILE_LOCK_CONFLICT NTStatus = 0xC0000054 - STATUS_LOCK_NOT_GRANTED NTStatus = 0xC0000055 - STATUS_DELETE_PENDING NTStatus = 0xC0000056 - STATUS_CTL_FILE_NOT_SUPPORTED NTStatus = 0xC0000057 - STATUS_UNKNOWN_REVISION NTStatus = 0xC0000058 - STATUS_REVISION_MISMATCH NTStatus = 0xC0000059 - STATUS_INVALID_OWNER NTStatus = 0xC000005A - STATUS_INVALID_PRIMARY_GROUP NTStatus = 0xC000005B - STATUS_NO_IMPERSONATION_TOKEN NTStatus = 0xC000005C - STATUS_CANT_DISABLE_MANDATORY NTStatus = 0xC000005D - STATUS_NO_LOGON_SERVERS NTStatus = 0xC000005E - STATUS_NO_SUCH_LOGON_SESSION NTStatus = 0xC000005F - STATUS_NO_SUCH_PRIVILEGE NTStatus = 0xC0000060 - STATUS_PRIVILEGE_NOT_HELD NTStatus = 0xC0000061 - STATUS_INVALID_ACCOUNT_NAME NTStatus = 0xC0000062 - STATUS_USER_EXISTS NTStatus = 0xC0000063 - STATUS_NO_SUCH_USER NTStatus = 0xC0000064 - STATUS_GROUP_EXISTS NTStatus = 0xC0000065 - STATUS_NO_SUCH_GROUP NTStatus = 0xC0000066 - STATUS_MEMBER_IN_GROUP NTStatus = 0xC0000067 - STATUS_MEMBER_NOT_IN_GROUP NTStatus = 0xC0000068 - STATUS_LAST_ADMIN NTStatus = 0xC0000069 - STATUS_WRONG_PASSWORD NTStatus = 0xC000006A - STATUS_ILL_FORMED_PASSWORD NTStatus = 0xC000006B - STATUS_PASSWORD_RESTRICTION NTStatus = 0xC000006C - STATUS_LOGON_FAILURE NTStatus = 0xC000006D - STATUS_ACCOUNT_RESTRICTION NTStatus = 0xC000006E - STATUS_INVALID_LOGON_HOURS NTStatus = 0xC000006F - STATUS_INVALID_WORKSTATION NTStatus = 0xC0000070 - STATUS_PASSWORD_EXPIRED NTStatus = 0xC0000071 - STATUS_ACCOUNT_DISABLED NTStatus = 0xC0000072 - STATUS_NONE_MAPPED NTStatus = 0xC0000073 - STATUS_TOO_MANY_LUIDS_REQUESTED NTStatus = 0xC0000074 - STATUS_LUIDS_EXHAUSTED NTStatus = 0xC0000075 - STATUS_INVALID_SUB_AUTHORITY NTStatus = 0xC0000076 - STATUS_INVALID_ACL NTStatus = 0xC0000077 - STATUS_INVALID_SID NTStatus = 0xC0000078 - STATUS_INVALID_SECURITY_DESCR NTStatus = 0xC0000079 - STATUS_PROCEDURE_NOT_FOUND NTStatus = 0xC000007A - STATUS_INVALID_IMAGE_FORMAT NTStatus = 0xC000007B - STATUS_NO_TOKEN NTStatus = 0xC000007C - STATUS_BAD_INHERITANCE_ACL NTStatus = 0xC000007D - STATUS_RANGE_NOT_LOCKED NTStatus = 0xC000007E - STATUS_DISK_FULL NTStatus = 0xC000007F - STATUS_SERVER_DISABLED NTStatus = 0xC0000080 - STATUS_SERVER_NOT_DISABLED NTStatus = 0xC0000081 - STATUS_TOO_MANY_GUIDS_REQUESTED NTStatus = 0xC0000082 - STATUS_GUIDS_EXHAUSTED NTStatus = 0xC0000083 - STATUS_INVALID_ID_AUTHORITY NTStatus = 0xC0000084 - STATUS_AGENTS_EXHAUSTED NTStatus = 0xC0000085 - STATUS_INVALID_VOLUME_LABEL NTStatus = 0xC0000086 - STATUS_SECTION_NOT_EXTENDED NTStatus = 0xC0000087 - STATUS_NOT_MAPPED_DATA NTStatus = 0xC0000088 - STATUS_RESOURCE_DATA_NOT_FOUND NTStatus = 0xC0000089 - STATUS_RESOURCE_TYPE_NOT_FOUND NTStatus = 0xC000008A - STATUS_RESOURCE_NAME_NOT_FOUND NTStatus = 0xC000008B - STATUS_ARRAY_BOUNDS_EXCEEDED NTStatus = 0xC000008C - STATUS_FLOAT_DENORMAL_OPERAND NTStatus = 0xC000008D - STATUS_FLOAT_DIVIDE_BY_ZERO NTStatus = 0xC000008E - STATUS_FLOAT_INEXACT_RESULT NTStatus = 0xC000008F - STATUS_FLOAT_INVALID_OPERATION NTStatus = 0xC0000090 - STATUS_FLOAT_OVERFLOW NTStatus = 0xC0000091 - STATUS_FLOAT_STACK_CHECK NTStatus = 0xC0000092 - STATUS_FLOAT_UNDERFLOW NTStatus = 0xC0000093 - STATUS_INTEGER_DIVIDE_BY_ZERO NTStatus = 0xC0000094 - STATUS_INTEGER_OVERFLOW NTStatus = 0xC0000095 - STATUS_PRIVILEGED_INSTRUCTION NTStatus = 0xC0000096 - STATUS_TOO_MANY_PAGING_FILES NTStatus = 0xC0000097 - STATUS_FILE_INVALID NTStatus = 0xC0000098 - STATUS_ALLOTTED_SPACE_EXCEEDED NTStatus = 0xC0000099 - STATUS_INSUFFICIENT_RESOURCES NTStatus = 0xC000009A - STATUS_DFS_EXIT_PATH_FOUND NTStatus = 0xC000009B - STATUS_DEVICE_DATA_ERROR NTStatus = 0xC000009C - STATUS_DEVICE_NOT_CONNECTED NTStatus = 0xC000009D - STATUS_DEVICE_POWER_FAILURE NTStatus = 0xC000009E - STATUS_FREE_VM_NOT_AT_BASE NTStatus = 0xC000009F - STATUS_MEMORY_NOT_ALLOCATED NTStatus = 0xC00000A0 - STATUS_WORKING_SET_QUOTA NTStatus = 0xC00000A1 - STATUS_MEDIA_WRITE_PROTECTED NTStatus = 0xC00000A2 - STATUS_DEVICE_NOT_READY NTStatus = 0xC00000A3 - STATUS_INVALID_GROUP_ATTRIBUTES NTStatus = 0xC00000A4 - STATUS_BAD_IMPERSONATION_LEVEL NTStatus = 0xC00000A5 - STATUS_CANT_OPEN_ANONYMOUS NTStatus = 0xC00000A6 - STATUS_BAD_VALIDATION_CLASS NTStatus = 0xC00000A7 - STATUS_BAD_TOKEN_TYPE NTStatus = 0xC00000A8 - STATUS_BAD_MASTER_BOOT_RECORD NTStatus = 0xC00000A9 - STATUS_INSTRUCTION_MISALIGNMENT NTStatus = 0xC00000AA - STATUS_INSTANCE_NOT_AVAILABLE NTStatus = 0xC00000AB - STATUS_PIPE_NOT_AVAILABLE NTStatus = 0xC00000AC - STATUS_INVALID_PIPE_STATE NTStatus = 0xC00000AD - STATUS_PIPE_BUSY NTStatus = 0xC00000AE - STATUS_ILLEGAL_FUNCTION NTStatus = 0xC00000AF - STATUS_PIPE_DISCONNECTED NTStatus = 0xC00000B0 - STATUS_PIPE_CLOSING NTStatus = 0xC00000B1 - STATUS_PIPE_CONNECTED NTStatus = 0xC00000B2 - STATUS_PIPE_LISTENING NTStatus = 0xC00000B3 - STATUS_INVALID_READ_MODE NTStatus = 0xC00000B4 - STATUS_IO_TIMEOUT NTStatus = 0xC00000B5 - STATUS_FILE_FORCED_CLOSED NTStatus = 0xC00000B6 - STATUS_PROFILING_NOT_STARTED NTStatus = 0xC00000B7 - STATUS_PROFILING_NOT_STOPPED NTStatus = 0xC00000B8 - STATUS_COULD_NOT_INTERPRET NTStatus = 0xC00000B9 - STATUS_FILE_IS_A_DIRECTORY NTStatus = 0xC00000BA - STATUS_NOT_SUPPORTED NTStatus = 0xC00000BB - STATUS_REMOTE_NOT_LISTENING NTStatus = 0xC00000BC - STATUS_DUPLICATE_NAME NTStatus = 0xC00000BD - STATUS_BAD_NETWORK_PATH NTStatus = 0xC00000BE - STATUS_NETWORK_BUSY NTStatus = 0xC00000BF - STATUS_DEVICE_DOES_NOT_EXIST NTStatus = 0xC00000C0 - STATUS_TOO_MANY_COMMANDS NTStatus = 0xC00000C1 - STATUS_ADAPTER_HARDWARE_ERROR NTStatus = 0xC00000C2 - STATUS_INVALID_NETWORK_RESPONSE NTStatus = 0xC00000C3 - STATUS_UNEXPECTED_NETWORK_ERROR NTStatus = 0xC00000C4 - STATUS_BAD_REMOTE_ADAPTER NTStatus = 0xC00000C5 - STATUS_PRINT_QUEUE_FULL NTStatus = 0xC00000C6 - STATUS_NO_SPOOL_SPACE NTStatus = 0xC00000C7 - STATUS_PRINT_CANCELLED NTStatus = 0xC00000C8 - STATUS_NETWORK_NAME_DELETED NTStatus = 0xC00000C9 - STATUS_NETWORK_ACCESS_DENIED NTStatus = 0xC00000CA - STATUS_BAD_DEVICE_TYPE NTStatus = 0xC00000CB - STATUS_BAD_NETWORK_NAME NTStatus = 0xC00000CC - STATUS_TOO_MANY_NAMES NTStatus = 0xC00000CD - STATUS_TOO_MANY_SESSIONS NTStatus = 0xC00000CE - STATUS_SHARING_PAUSED NTStatus = 0xC00000CF - STATUS_REQUEST_NOT_ACCEPTED NTStatus = 0xC00000D0 - STATUS_REDIRECTOR_PAUSED NTStatus = 0xC00000D1 - STATUS_NET_WRITE_FAULT NTStatus = 0xC00000D2 - STATUS_PROFILING_AT_LIMIT NTStatus = 0xC00000D3 - STATUS_NOT_SAME_DEVICE NTStatus = 0xC00000D4 - STATUS_FILE_RENAMED NTStatus = 0xC00000D5 - STATUS_VIRTUAL_CIRCUIT_CLOSED NTStatus = 0xC00000D6 - STATUS_NO_SECURITY_ON_OBJECT NTStatus = 0xC00000D7 - STATUS_CANT_WAIT NTStatus = 0xC00000D8 - STATUS_PIPE_EMPTY NTStatus = 0xC00000D9 - STATUS_CANT_ACCESS_DOMAIN_INFO NTStatus = 0xC00000DA - STATUS_CANT_TERMINATE_SELF NTStatus = 0xC00000DB - STATUS_INVALID_SERVER_STATE NTStatus = 0xC00000DC - STATUS_INVALID_DOMAIN_STATE NTStatus = 0xC00000DD - STATUS_INVALID_DOMAIN_ROLE NTStatus = 0xC00000DE - STATUS_NO_SUCH_DOMAIN NTStatus = 0xC00000DF - STATUS_DOMAIN_EXISTS NTStatus = 0xC00000E0 - STATUS_DOMAIN_LIMIT_EXCEEDED NTStatus = 0xC00000E1 - STATUS_OPLOCK_NOT_GRANTED NTStatus = 0xC00000E2 - STATUS_INVALID_OPLOCK_PROTOCOL NTStatus = 0xC00000E3 - STATUS_INTERNAL_DB_CORRUPTION NTStatus = 0xC00000E4 - STATUS_INTERNAL_ERROR NTStatus = 0xC00000E5 - STATUS_GENERIC_NOT_MAPPED NTStatus = 0xC00000E6 - STATUS_BAD_DESCRIPTOR_FORMAT NTStatus = 0xC00000E7 - STATUS_INVALID_USER_BUFFER NTStatus = 0xC00000E8 - STATUS_UNEXPECTED_IO_ERROR NTStatus = 0xC00000E9 - STATUS_UNEXPECTED_MM_CREATE_ERR NTStatus = 0xC00000EA - STATUS_UNEXPECTED_MM_MAP_ERROR NTStatus = 0xC00000EB - STATUS_UNEXPECTED_MM_EXTEND_ERR NTStatus = 0xC00000EC - STATUS_NOT_LOGON_PROCESS NTStatus = 0xC00000ED - STATUS_LOGON_SESSION_EXISTS NTStatus = 0xC00000EE - STATUS_INVALID_PARAMETER_1 NTStatus = 0xC00000EF - STATUS_INVALID_PARAMETER_2 NTStatus = 0xC00000F0 - STATUS_INVALID_PARAMETER_3 NTStatus = 0xC00000F1 - STATUS_INVALID_PARAMETER_4 NTStatus = 0xC00000F2 - STATUS_INVALID_PARAMETER_5 NTStatus = 0xC00000F3 - STATUS_INVALID_PARAMETER_6 NTStatus = 0xC00000F4 - STATUS_INVALID_PARAMETER_7 NTStatus = 0xC00000F5 - STATUS_INVALID_PARAMETER_8 NTStatus = 0xC00000F6 - STATUS_INVALID_PARAMETER_9 NTStatus = 0xC00000F7 - STATUS_INVALID_PARAMETER_10 NTStatus = 0xC00000F8 - STATUS_INVALID_PARAMETER_11 NTStatus = 0xC00000F9 - STATUS_INVALID_PARAMETER_12 NTStatus = 0xC00000FA - STATUS_REDIRECTOR_NOT_STARTED NTStatus = 0xC00000FB - STATUS_REDIRECTOR_STARTED NTStatus = 0xC00000FC - STATUS_STACK_OVERFLOW NTStatus = 0xC00000FD - STATUS_NO_SUCH_PACKAGE NTStatus = 0xC00000FE - STATUS_BAD_FUNCTION_TABLE NTStatus = 0xC00000FF - STATUS_VARIABLE_NOT_FOUND NTStatus = 0xC0000100 - STATUS_DIRECTORY_NOT_EMPTY NTStatus = 0xC0000101 - STATUS_FILE_CORRUPT_ERROR NTStatus = 0xC0000102 - STATUS_NOT_A_DIRECTORY NTStatus = 0xC0000103 - STATUS_BAD_LOGON_SESSION_STATE NTStatus = 0xC0000104 - STATUS_LOGON_SESSION_COLLISION NTStatus = 0xC0000105 - STATUS_NAME_TOO_LONG NTStatus = 0xC0000106 - STATUS_FILES_OPEN NTStatus = 0xC0000107 - STATUS_CONNECTION_IN_USE NTStatus = 0xC0000108 - STATUS_MESSAGE_NOT_FOUND NTStatus = 0xC0000109 - STATUS_PROCESS_IS_TERMINATING NTStatus = 0xC000010A - STATUS_INVALID_LOGON_TYPE NTStatus = 0xC000010B - STATUS_NO_GUID_TRANSLATION NTStatus = 0xC000010C - STATUS_CANNOT_IMPERSONATE NTStatus = 0xC000010D - STATUS_IMAGE_ALREADY_LOADED NTStatus = 0xC000010E - STATUS_ABIOS_NOT_PRESENT NTStatus = 0xC000010F - STATUS_ABIOS_LID_NOT_EXIST NTStatus = 0xC0000110 - STATUS_ABIOS_LID_ALREADY_OWNED NTStatus = 0xC0000111 - STATUS_ABIOS_NOT_LID_OWNER NTStatus = 0xC0000112 - STATUS_ABIOS_INVALID_COMMAND NTStatus = 0xC0000113 - STATUS_ABIOS_INVALID_LID NTStatus = 0xC0000114 - STATUS_ABIOS_SELECTOR_NOT_AVAILABLE NTStatus = 0xC0000115 - STATUS_ABIOS_INVALID_SELECTOR NTStatus = 0xC0000116 - STATUS_NO_LDT NTStatus = 0xC0000117 - STATUS_INVALID_LDT_SIZE NTStatus = 0xC0000118 - STATUS_INVALID_LDT_OFFSET NTStatus = 0xC0000119 - STATUS_INVALID_LDT_DESCRIPTOR NTStatus = 0xC000011A - STATUS_INVALID_IMAGE_NE_FORMAT NTStatus = 0xC000011B - STATUS_RXACT_INVALID_STATE NTStatus = 0xC000011C - STATUS_RXACT_COMMIT_FAILURE NTStatus = 0xC000011D - STATUS_MAPPED_FILE_SIZE_ZERO NTStatus = 0xC000011E - STATUS_TOO_MANY_OPENED_FILES NTStatus = 0xC000011F - STATUS_CANCELLED NTStatus = 0xC0000120 - STATUS_CANNOT_DELETE NTStatus = 0xC0000121 - STATUS_INVALID_COMPUTER_NAME NTStatus = 0xC0000122 - STATUS_FILE_DELETED NTStatus = 0xC0000123 - STATUS_SPECIAL_ACCOUNT NTStatus = 0xC0000124 - STATUS_SPECIAL_GROUP NTStatus = 0xC0000125 - STATUS_SPECIAL_USER NTStatus = 0xC0000126 - STATUS_MEMBERS_PRIMARY_GROUP NTStatus = 0xC0000127 - STATUS_FILE_CLOSED NTStatus = 0xC0000128 - STATUS_TOO_MANY_THREADS NTStatus = 0xC0000129 - STATUS_THREAD_NOT_IN_PROCESS NTStatus = 0xC000012A - STATUS_TOKEN_ALREADY_IN_USE NTStatus = 0xC000012B - STATUS_PAGEFILE_QUOTA_EXCEEDED NTStatus = 0xC000012C - STATUS_COMMITMENT_LIMIT NTStatus = 0xC000012D - STATUS_INVALID_IMAGE_LE_FORMAT NTStatus = 0xC000012E - STATUS_INVALID_IMAGE_NOT_MZ NTStatus = 0xC000012F - STATUS_INVALID_IMAGE_PROTECT NTStatus = 0xC0000130 - STATUS_INVALID_IMAGE_WIN_16 NTStatus = 0xC0000131 - STATUS_LOGON_SERVER_CONFLICT NTStatus = 0xC0000132 - STATUS_TIME_DIFFERENCE_AT_DC NTStatus = 0xC0000133 - STATUS_SYNCHRONIZATION_REQUIRED NTStatus = 0xC0000134 - STATUS_DLL_NOT_FOUND NTStatus = 0xC0000135 - STATUS_OPEN_FAILED NTStatus = 0xC0000136 - STATUS_IO_PRIVILEGE_FAILED NTStatus = 0xC0000137 - STATUS_ORDINAL_NOT_FOUND NTStatus = 0xC0000138 - STATUS_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000139 - STATUS_CONTROL_C_EXIT NTStatus = 0xC000013A - STATUS_LOCAL_DISCONNECT NTStatus = 0xC000013B - STATUS_REMOTE_DISCONNECT NTStatus = 0xC000013C - STATUS_REMOTE_RESOURCES NTStatus = 0xC000013D - STATUS_LINK_FAILED NTStatus = 0xC000013E - STATUS_LINK_TIMEOUT NTStatus = 0xC000013F - STATUS_INVALID_CONNECTION NTStatus = 0xC0000140 - STATUS_INVALID_ADDRESS NTStatus = 0xC0000141 - STATUS_DLL_INIT_FAILED NTStatus = 0xC0000142 - STATUS_MISSING_SYSTEMFILE NTStatus = 0xC0000143 - STATUS_UNHANDLED_EXCEPTION NTStatus = 0xC0000144 - STATUS_APP_INIT_FAILURE NTStatus = 0xC0000145 - STATUS_PAGEFILE_CREATE_FAILED NTStatus = 0xC0000146 - STATUS_NO_PAGEFILE NTStatus = 0xC0000147 - STATUS_INVALID_LEVEL NTStatus = 0xC0000148 - STATUS_WRONG_PASSWORD_CORE NTStatus = 0xC0000149 - STATUS_ILLEGAL_FLOAT_CONTEXT NTStatus = 0xC000014A - STATUS_PIPE_BROKEN NTStatus = 0xC000014B - STATUS_REGISTRY_CORRUPT NTStatus = 0xC000014C - STATUS_REGISTRY_IO_FAILED NTStatus = 0xC000014D - STATUS_NO_EVENT_PAIR NTStatus = 0xC000014E - STATUS_UNRECOGNIZED_VOLUME NTStatus = 0xC000014F - STATUS_SERIAL_NO_DEVICE_INITED NTStatus = 0xC0000150 - STATUS_NO_SUCH_ALIAS NTStatus = 0xC0000151 - STATUS_MEMBER_NOT_IN_ALIAS NTStatus = 0xC0000152 - STATUS_MEMBER_IN_ALIAS NTStatus = 0xC0000153 - STATUS_ALIAS_EXISTS NTStatus = 0xC0000154 - STATUS_LOGON_NOT_GRANTED NTStatus = 0xC0000155 - STATUS_TOO_MANY_SECRETS NTStatus = 0xC0000156 - STATUS_SECRET_TOO_LONG NTStatus = 0xC0000157 - STATUS_INTERNAL_DB_ERROR NTStatus = 0xC0000158 - STATUS_FULLSCREEN_MODE NTStatus = 0xC0000159 - STATUS_TOO_MANY_CONTEXT_IDS NTStatus = 0xC000015A - STATUS_LOGON_TYPE_NOT_GRANTED NTStatus = 0xC000015B - STATUS_NOT_REGISTRY_FILE NTStatus = 0xC000015C - STATUS_NT_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000015D - STATUS_DOMAIN_CTRLR_CONFIG_ERROR NTStatus = 0xC000015E - STATUS_FT_MISSING_MEMBER NTStatus = 0xC000015F - STATUS_ILL_FORMED_SERVICE_ENTRY NTStatus = 0xC0000160 - STATUS_ILLEGAL_CHARACTER NTStatus = 0xC0000161 - STATUS_UNMAPPABLE_CHARACTER NTStatus = 0xC0000162 - STATUS_UNDEFINED_CHARACTER NTStatus = 0xC0000163 - STATUS_FLOPPY_VOLUME NTStatus = 0xC0000164 - STATUS_FLOPPY_ID_MARK_NOT_FOUND NTStatus = 0xC0000165 - STATUS_FLOPPY_WRONG_CYLINDER NTStatus = 0xC0000166 - STATUS_FLOPPY_UNKNOWN_ERROR NTStatus = 0xC0000167 - STATUS_FLOPPY_BAD_REGISTERS NTStatus = 0xC0000168 - STATUS_DISK_RECALIBRATE_FAILED NTStatus = 0xC0000169 - STATUS_DISK_OPERATION_FAILED NTStatus = 0xC000016A - STATUS_DISK_RESET_FAILED NTStatus = 0xC000016B - STATUS_SHARED_IRQ_BUSY NTStatus = 0xC000016C - STATUS_FT_ORPHANING NTStatus = 0xC000016D - STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT NTStatus = 0xC000016E - STATUS_PARTITION_FAILURE NTStatus = 0xC0000172 - STATUS_INVALID_BLOCK_LENGTH NTStatus = 0xC0000173 - STATUS_DEVICE_NOT_PARTITIONED NTStatus = 0xC0000174 - STATUS_UNABLE_TO_LOCK_MEDIA NTStatus = 0xC0000175 - STATUS_UNABLE_TO_UNLOAD_MEDIA NTStatus = 0xC0000176 - STATUS_EOM_OVERFLOW NTStatus = 0xC0000177 - STATUS_NO_MEDIA NTStatus = 0xC0000178 - STATUS_NO_SUCH_MEMBER NTStatus = 0xC000017A - STATUS_INVALID_MEMBER NTStatus = 0xC000017B - STATUS_KEY_DELETED NTStatus = 0xC000017C - STATUS_NO_LOG_SPACE NTStatus = 0xC000017D - STATUS_TOO_MANY_SIDS NTStatus = 0xC000017E - STATUS_LM_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000017F - STATUS_KEY_HAS_CHILDREN NTStatus = 0xC0000180 - STATUS_CHILD_MUST_BE_VOLATILE NTStatus = 0xC0000181 - STATUS_DEVICE_CONFIGURATION_ERROR NTStatus = 0xC0000182 - STATUS_DRIVER_INTERNAL_ERROR NTStatus = 0xC0000183 - STATUS_INVALID_DEVICE_STATE NTStatus = 0xC0000184 - STATUS_IO_DEVICE_ERROR NTStatus = 0xC0000185 - STATUS_DEVICE_PROTOCOL_ERROR NTStatus = 0xC0000186 - STATUS_BACKUP_CONTROLLER NTStatus = 0xC0000187 - STATUS_LOG_FILE_FULL NTStatus = 0xC0000188 - STATUS_TOO_LATE NTStatus = 0xC0000189 - STATUS_NO_TRUST_LSA_SECRET NTStatus = 0xC000018A - STATUS_NO_TRUST_SAM_ACCOUNT NTStatus = 0xC000018B - STATUS_TRUSTED_DOMAIN_FAILURE NTStatus = 0xC000018C - STATUS_TRUSTED_RELATIONSHIP_FAILURE NTStatus = 0xC000018D - STATUS_EVENTLOG_FILE_CORRUPT NTStatus = 0xC000018E - STATUS_EVENTLOG_CANT_START NTStatus = 0xC000018F - STATUS_TRUST_FAILURE NTStatus = 0xC0000190 - STATUS_MUTANT_LIMIT_EXCEEDED NTStatus = 0xC0000191 - STATUS_NETLOGON_NOT_STARTED NTStatus = 0xC0000192 - STATUS_ACCOUNT_EXPIRED NTStatus = 0xC0000193 - STATUS_POSSIBLE_DEADLOCK NTStatus = 0xC0000194 - STATUS_NETWORK_CREDENTIAL_CONFLICT NTStatus = 0xC0000195 - STATUS_REMOTE_SESSION_LIMIT NTStatus = 0xC0000196 - STATUS_EVENTLOG_FILE_CHANGED NTStatus = 0xC0000197 - STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT NTStatus = 0xC0000198 - STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT NTStatus = 0xC0000199 - STATUS_NOLOGON_SERVER_TRUST_ACCOUNT NTStatus = 0xC000019A - STATUS_DOMAIN_TRUST_INCONSISTENT NTStatus = 0xC000019B - STATUS_FS_DRIVER_REQUIRED NTStatus = 0xC000019C - STATUS_IMAGE_ALREADY_LOADED_AS_DLL NTStatus = 0xC000019D - STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING NTStatus = 0xC000019E - STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME NTStatus = 0xC000019F - STATUS_SECURITY_STREAM_IS_INCONSISTENT NTStatus = 0xC00001A0 - STATUS_INVALID_LOCK_RANGE NTStatus = 0xC00001A1 - STATUS_INVALID_ACE_CONDITION NTStatus = 0xC00001A2 - STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT NTStatus = 0xC00001A3 - STATUS_NOTIFICATION_GUID_ALREADY_DEFINED NTStatus = 0xC00001A4 - STATUS_INVALID_EXCEPTION_HANDLER NTStatus = 0xC00001A5 - STATUS_DUPLICATE_PRIVILEGES NTStatus = 0xC00001A6 - STATUS_NOT_ALLOWED_ON_SYSTEM_FILE NTStatus = 0xC00001A7 - STATUS_REPAIR_NEEDED NTStatus = 0xC00001A8 - STATUS_QUOTA_NOT_ENABLED NTStatus = 0xC00001A9 - STATUS_NO_APPLICATION_PACKAGE NTStatus = 0xC00001AA - STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS NTStatus = 0xC00001AB - STATUS_NOT_SAME_OBJECT NTStatus = 0xC00001AC - STATUS_FATAL_MEMORY_EXHAUSTION NTStatus = 0xC00001AD - STATUS_ERROR_PROCESS_NOT_IN_JOB NTStatus = 0xC00001AE - STATUS_CPU_SET_INVALID NTStatus = 0xC00001AF - STATUS_IO_DEVICE_INVALID_DATA NTStatus = 0xC00001B0 - STATUS_IO_UNALIGNED_WRITE NTStatus = 0xC00001B1 - STATUS_NETWORK_OPEN_RESTRICTION NTStatus = 0xC0000201 - STATUS_NO_USER_SESSION_KEY NTStatus = 0xC0000202 - STATUS_USER_SESSION_DELETED NTStatus = 0xC0000203 - STATUS_RESOURCE_LANG_NOT_FOUND NTStatus = 0xC0000204 - STATUS_INSUFF_SERVER_RESOURCES NTStatus = 0xC0000205 - STATUS_INVALID_BUFFER_SIZE NTStatus = 0xC0000206 - STATUS_INVALID_ADDRESS_COMPONENT NTStatus = 0xC0000207 - STATUS_INVALID_ADDRESS_WILDCARD NTStatus = 0xC0000208 - STATUS_TOO_MANY_ADDRESSES NTStatus = 0xC0000209 - STATUS_ADDRESS_ALREADY_EXISTS NTStatus = 0xC000020A - STATUS_ADDRESS_CLOSED NTStatus = 0xC000020B - STATUS_CONNECTION_DISCONNECTED NTStatus = 0xC000020C - STATUS_CONNECTION_RESET NTStatus = 0xC000020D - STATUS_TOO_MANY_NODES NTStatus = 0xC000020E - STATUS_TRANSACTION_ABORTED NTStatus = 0xC000020F - STATUS_TRANSACTION_TIMED_OUT NTStatus = 0xC0000210 - STATUS_TRANSACTION_NO_RELEASE NTStatus = 0xC0000211 - STATUS_TRANSACTION_NO_MATCH NTStatus = 0xC0000212 - STATUS_TRANSACTION_RESPONDED NTStatus = 0xC0000213 - STATUS_TRANSACTION_INVALID_ID NTStatus = 0xC0000214 - STATUS_TRANSACTION_INVALID_TYPE NTStatus = 0xC0000215 - STATUS_NOT_SERVER_SESSION NTStatus = 0xC0000216 - STATUS_NOT_CLIENT_SESSION NTStatus = 0xC0000217 - STATUS_CANNOT_LOAD_REGISTRY_FILE NTStatus = 0xC0000218 - STATUS_DEBUG_ATTACH_FAILED NTStatus = 0xC0000219 - STATUS_SYSTEM_PROCESS_TERMINATED NTStatus = 0xC000021A - STATUS_DATA_NOT_ACCEPTED NTStatus = 0xC000021B - STATUS_NO_BROWSER_SERVERS_FOUND NTStatus = 0xC000021C - STATUS_VDM_HARD_ERROR NTStatus = 0xC000021D - STATUS_DRIVER_CANCEL_TIMEOUT NTStatus = 0xC000021E - STATUS_REPLY_MESSAGE_MISMATCH NTStatus = 0xC000021F - STATUS_MAPPED_ALIGNMENT NTStatus = 0xC0000220 - STATUS_IMAGE_CHECKSUM_MISMATCH NTStatus = 0xC0000221 - STATUS_LOST_WRITEBEHIND_DATA NTStatus = 0xC0000222 - STATUS_CLIENT_SERVER_PARAMETERS_INVALID NTStatus = 0xC0000223 - STATUS_PASSWORD_MUST_CHANGE NTStatus = 0xC0000224 - STATUS_NOT_FOUND NTStatus = 0xC0000225 - STATUS_NOT_TINY_STREAM NTStatus = 0xC0000226 - STATUS_RECOVERY_FAILURE NTStatus = 0xC0000227 - STATUS_STACK_OVERFLOW_READ NTStatus = 0xC0000228 - STATUS_FAIL_CHECK NTStatus = 0xC0000229 - STATUS_DUPLICATE_OBJECTID NTStatus = 0xC000022A - STATUS_OBJECTID_EXISTS NTStatus = 0xC000022B - STATUS_CONVERT_TO_LARGE NTStatus = 0xC000022C - STATUS_RETRY NTStatus = 0xC000022D - STATUS_FOUND_OUT_OF_SCOPE NTStatus = 0xC000022E - STATUS_ALLOCATE_BUCKET NTStatus = 0xC000022F - STATUS_PROPSET_NOT_FOUND NTStatus = 0xC0000230 - STATUS_MARSHALL_OVERFLOW NTStatus = 0xC0000231 - STATUS_INVALID_VARIANT NTStatus = 0xC0000232 - STATUS_DOMAIN_CONTROLLER_NOT_FOUND NTStatus = 0xC0000233 - STATUS_ACCOUNT_LOCKED_OUT NTStatus = 0xC0000234 - STATUS_HANDLE_NOT_CLOSABLE NTStatus = 0xC0000235 - STATUS_CONNECTION_REFUSED NTStatus = 0xC0000236 - STATUS_GRACEFUL_DISCONNECT NTStatus = 0xC0000237 - STATUS_ADDRESS_ALREADY_ASSOCIATED NTStatus = 0xC0000238 - STATUS_ADDRESS_NOT_ASSOCIATED NTStatus = 0xC0000239 - STATUS_CONNECTION_INVALID NTStatus = 0xC000023A - STATUS_CONNECTION_ACTIVE NTStatus = 0xC000023B - STATUS_NETWORK_UNREACHABLE NTStatus = 0xC000023C - STATUS_HOST_UNREACHABLE NTStatus = 0xC000023D - STATUS_PROTOCOL_UNREACHABLE NTStatus = 0xC000023E - STATUS_PORT_UNREACHABLE NTStatus = 0xC000023F - STATUS_REQUEST_ABORTED NTStatus = 0xC0000240 - STATUS_CONNECTION_ABORTED NTStatus = 0xC0000241 - STATUS_BAD_COMPRESSION_BUFFER NTStatus = 0xC0000242 - STATUS_USER_MAPPED_FILE NTStatus = 0xC0000243 - STATUS_AUDIT_FAILED NTStatus = 0xC0000244 - STATUS_TIMER_RESOLUTION_NOT_SET NTStatus = 0xC0000245 - STATUS_CONNECTION_COUNT_LIMIT NTStatus = 0xC0000246 - STATUS_LOGIN_TIME_RESTRICTION NTStatus = 0xC0000247 - STATUS_LOGIN_WKSTA_RESTRICTION NTStatus = 0xC0000248 - STATUS_IMAGE_MP_UP_MISMATCH NTStatus = 0xC0000249 - STATUS_INSUFFICIENT_LOGON_INFO NTStatus = 0xC0000250 - STATUS_BAD_DLL_ENTRYPOINT NTStatus = 0xC0000251 - STATUS_BAD_SERVICE_ENTRYPOINT NTStatus = 0xC0000252 - STATUS_LPC_REPLY_LOST NTStatus = 0xC0000253 - STATUS_IP_ADDRESS_CONFLICT1 NTStatus = 0xC0000254 - STATUS_IP_ADDRESS_CONFLICT2 NTStatus = 0xC0000255 - STATUS_REGISTRY_QUOTA_LIMIT NTStatus = 0xC0000256 - STATUS_PATH_NOT_COVERED NTStatus = 0xC0000257 - STATUS_NO_CALLBACK_ACTIVE NTStatus = 0xC0000258 - STATUS_LICENSE_QUOTA_EXCEEDED NTStatus = 0xC0000259 - STATUS_PWD_TOO_SHORT NTStatus = 0xC000025A - STATUS_PWD_TOO_RECENT NTStatus = 0xC000025B - STATUS_PWD_HISTORY_CONFLICT NTStatus = 0xC000025C - STATUS_PLUGPLAY_NO_DEVICE NTStatus = 0xC000025E - STATUS_UNSUPPORTED_COMPRESSION NTStatus = 0xC000025F - STATUS_INVALID_HW_PROFILE NTStatus = 0xC0000260 - STATUS_INVALID_PLUGPLAY_DEVICE_PATH NTStatus = 0xC0000261 - STATUS_DRIVER_ORDINAL_NOT_FOUND NTStatus = 0xC0000262 - STATUS_DRIVER_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000263 - STATUS_RESOURCE_NOT_OWNED NTStatus = 0xC0000264 - STATUS_TOO_MANY_LINKS NTStatus = 0xC0000265 - STATUS_QUOTA_LIST_INCONSISTENT NTStatus = 0xC0000266 - STATUS_FILE_IS_OFFLINE NTStatus = 0xC0000267 - STATUS_EVALUATION_EXPIRATION NTStatus = 0xC0000268 - STATUS_ILLEGAL_DLL_RELOCATION NTStatus = 0xC0000269 - STATUS_LICENSE_VIOLATION NTStatus = 0xC000026A - STATUS_DLL_INIT_FAILED_LOGOFF NTStatus = 0xC000026B - STATUS_DRIVER_UNABLE_TO_LOAD NTStatus = 0xC000026C - STATUS_DFS_UNAVAILABLE NTStatus = 0xC000026D - STATUS_VOLUME_DISMOUNTED NTStatus = 0xC000026E - STATUS_WX86_INTERNAL_ERROR NTStatus = 0xC000026F - STATUS_WX86_FLOAT_STACK_CHECK NTStatus = 0xC0000270 - STATUS_VALIDATE_CONTINUE NTStatus = 0xC0000271 - STATUS_NO_MATCH NTStatus = 0xC0000272 - STATUS_NO_MORE_MATCHES NTStatus = 0xC0000273 - STATUS_NOT_A_REPARSE_POINT NTStatus = 0xC0000275 - STATUS_IO_REPARSE_TAG_INVALID NTStatus = 0xC0000276 - STATUS_IO_REPARSE_TAG_MISMATCH NTStatus = 0xC0000277 - STATUS_IO_REPARSE_DATA_INVALID NTStatus = 0xC0000278 - STATUS_IO_REPARSE_TAG_NOT_HANDLED NTStatus = 0xC0000279 - STATUS_PWD_TOO_LONG NTStatus = 0xC000027A - STATUS_STOWED_EXCEPTION NTStatus = 0xC000027B - STATUS_CONTEXT_STOWED_EXCEPTION NTStatus = 0xC000027C - STATUS_REPARSE_POINT_NOT_RESOLVED NTStatus = 0xC0000280 - STATUS_DIRECTORY_IS_A_REPARSE_POINT NTStatus = 0xC0000281 - STATUS_RANGE_LIST_CONFLICT NTStatus = 0xC0000282 - STATUS_SOURCE_ELEMENT_EMPTY NTStatus = 0xC0000283 - STATUS_DESTINATION_ELEMENT_FULL NTStatus = 0xC0000284 - STATUS_ILLEGAL_ELEMENT_ADDRESS NTStatus = 0xC0000285 - STATUS_MAGAZINE_NOT_PRESENT NTStatus = 0xC0000286 - STATUS_REINITIALIZATION_NEEDED NTStatus = 0xC0000287 - STATUS_DEVICE_REQUIRES_CLEANING NTStatus = 0x80000288 - STATUS_DEVICE_DOOR_OPEN NTStatus = 0x80000289 - STATUS_ENCRYPTION_FAILED NTStatus = 0xC000028A - STATUS_DECRYPTION_FAILED NTStatus = 0xC000028B - STATUS_RANGE_NOT_FOUND NTStatus = 0xC000028C - STATUS_NO_RECOVERY_POLICY NTStatus = 0xC000028D - STATUS_NO_EFS NTStatus = 0xC000028E - STATUS_WRONG_EFS NTStatus = 0xC000028F - STATUS_NO_USER_KEYS NTStatus = 0xC0000290 - STATUS_FILE_NOT_ENCRYPTED NTStatus = 0xC0000291 - STATUS_NOT_EXPORT_FORMAT NTStatus = 0xC0000292 - STATUS_FILE_ENCRYPTED NTStatus = 0xC0000293 - STATUS_WAKE_SYSTEM NTStatus = 0x40000294 - STATUS_WMI_GUID_NOT_FOUND NTStatus = 0xC0000295 - STATUS_WMI_INSTANCE_NOT_FOUND NTStatus = 0xC0000296 - STATUS_WMI_ITEMID_NOT_FOUND NTStatus = 0xC0000297 - STATUS_WMI_TRY_AGAIN NTStatus = 0xC0000298 - STATUS_SHARED_POLICY NTStatus = 0xC0000299 - STATUS_POLICY_OBJECT_NOT_FOUND NTStatus = 0xC000029A - STATUS_POLICY_ONLY_IN_DS NTStatus = 0xC000029B - STATUS_VOLUME_NOT_UPGRADED NTStatus = 0xC000029C - STATUS_REMOTE_STORAGE_NOT_ACTIVE NTStatus = 0xC000029D - STATUS_REMOTE_STORAGE_MEDIA_ERROR NTStatus = 0xC000029E - STATUS_NO_TRACKING_SERVICE NTStatus = 0xC000029F - STATUS_SERVER_SID_MISMATCH NTStatus = 0xC00002A0 - STATUS_DS_NO_ATTRIBUTE_OR_VALUE NTStatus = 0xC00002A1 - STATUS_DS_INVALID_ATTRIBUTE_SYNTAX NTStatus = 0xC00002A2 - STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED NTStatus = 0xC00002A3 - STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS NTStatus = 0xC00002A4 - STATUS_DS_BUSY NTStatus = 0xC00002A5 - STATUS_DS_UNAVAILABLE NTStatus = 0xC00002A6 - STATUS_DS_NO_RIDS_ALLOCATED NTStatus = 0xC00002A7 - STATUS_DS_NO_MORE_RIDS NTStatus = 0xC00002A8 - STATUS_DS_INCORRECT_ROLE_OWNER NTStatus = 0xC00002A9 - STATUS_DS_RIDMGR_INIT_ERROR NTStatus = 0xC00002AA - STATUS_DS_OBJ_CLASS_VIOLATION NTStatus = 0xC00002AB - STATUS_DS_CANT_ON_NON_LEAF NTStatus = 0xC00002AC - STATUS_DS_CANT_ON_RDN NTStatus = 0xC00002AD - STATUS_DS_CANT_MOD_OBJ_CLASS NTStatus = 0xC00002AE - STATUS_DS_CROSS_DOM_MOVE_FAILED NTStatus = 0xC00002AF - STATUS_DS_GC_NOT_AVAILABLE NTStatus = 0xC00002B0 - STATUS_DIRECTORY_SERVICE_REQUIRED NTStatus = 0xC00002B1 - STATUS_REPARSE_ATTRIBUTE_CONFLICT NTStatus = 0xC00002B2 - STATUS_CANT_ENABLE_DENY_ONLY NTStatus = 0xC00002B3 - STATUS_FLOAT_MULTIPLE_FAULTS NTStatus = 0xC00002B4 - STATUS_FLOAT_MULTIPLE_TRAPS NTStatus = 0xC00002B5 - STATUS_DEVICE_REMOVED NTStatus = 0xC00002B6 - STATUS_JOURNAL_DELETE_IN_PROGRESS NTStatus = 0xC00002B7 - STATUS_JOURNAL_NOT_ACTIVE NTStatus = 0xC00002B8 - STATUS_NOINTERFACE NTStatus = 0xC00002B9 - STATUS_DS_RIDMGR_DISABLED NTStatus = 0xC00002BA - STATUS_DS_ADMIN_LIMIT_EXCEEDED NTStatus = 0xC00002C1 - STATUS_DRIVER_FAILED_SLEEP NTStatus = 0xC00002C2 - STATUS_MUTUAL_AUTHENTICATION_FAILED NTStatus = 0xC00002C3 - STATUS_CORRUPT_SYSTEM_FILE NTStatus = 0xC00002C4 - STATUS_DATATYPE_MISALIGNMENT_ERROR NTStatus = 0xC00002C5 - STATUS_WMI_READ_ONLY NTStatus = 0xC00002C6 - STATUS_WMI_SET_FAILURE NTStatus = 0xC00002C7 - STATUS_COMMITMENT_MINIMUM NTStatus = 0xC00002C8 - STATUS_REG_NAT_CONSUMPTION NTStatus = 0xC00002C9 - STATUS_TRANSPORT_FULL NTStatus = 0xC00002CA - STATUS_DS_SAM_INIT_FAILURE NTStatus = 0xC00002CB - STATUS_ONLY_IF_CONNECTED NTStatus = 0xC00002CC - STATUS_DS_SENSITIVE_GROUP_VIOLATION NTStatus = 0xC00002CD - STATUS_PNP_RESTART_ENUMERATION NTStatus = 0xC00002CE - STATUS_JOURNAL_ENTRY_DELETED NTStatus = 0xC00002CF - STATUS_DS_CANT_MOD_PRIMARYGROUPID NTStatus = 0xC00002D0 - STATUS_SYSTEM_IMAGE_BAD_SIGNATURE NTStatus = 0xC00002D1 - STATUS_PNP_REBOOT_REQUIRED NTStatus = 0xC00002D2 - STATUS_POWER_STATE_INVALID NTStatus = 0xC00002D3 - STATUS_DS_INVALID_GROUP_TYPE NTStatus = 0xC00002D4 - STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D5 - STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D6 - STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D7 - STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC00002D8 - STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D9 - STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER NTStatus = 0xC00002DA - STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER NTStatus = 0xC00002DB - STATUS_DS_HAVE_PRIMARY_MEMBERS NTStatus = 0xC00002DC - STATUS_WMI_NOT_SUPPORTED NTStatus = 0xC00002DD - STATUS_INSUFFICIENT_POWER NTStatus = 0xC00002DE - STATUS_SAM_NEED_BOOTKEY_PASSWORD NTStatus = 0xC00002DF - STATUS_SAM_NEED_BOOTKEY_FLOPPY NTStatus = 0xC00002E0 - STATUS_DS_CANT_START NTStatus = 0xC00002E1 - STATUS_DS_INIT_FAILURE NTStatus = 0xC00002E2 - STATUS_SAM_INIT_FAILURE NTStatus = 0xC00002E3 - STATUS_DS_GC_REQUIRED NTStatus = 0xC00002E4 - STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY NTStatus = 0xC00002E5 - STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS NTStatus = 0xC00002E6 - STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED NTStatus = 0xC00002E7 - STATUS_MULTIPLE_FAULT_VIOLATION NTStatus = 0xC00002E8 - STATUS_CURRENT_DOMAIN_NOT_ALLOWED NTStatus = 0xC00002E9 - STATUS_CANNOT_MAKE NTStatus = 0xC00002EA - STATUS_SYSTEM_SHUTDOWN NTStatus = 0xC00002EB - STATUS_DS_INIT_FAILURE_CONSOLE NTStatus = 0xC00002EC - STATUS_DS_SAM_INIT_FAILURE_CONSOLE NTStatus = 0xC00002ED - STATUS_UNFINISHED_CONTEXT_DELETED NTStatus = 0xC00002EE - STATUS_NO_TGT_REPLY NTStatus = 0xC00002EF - STATUS_OBJECTID_NOT_FOUND NTStatus = 0xC00002F0 - STATUS_NO_IP_ADDRESSES NTStatus = 0xC00002F1 - STATUS_WRONG_CREDENTIAL_HANDLE NTStatus = 0xC00002F2 - STATUS_CRYPTO_SYSTEM_INVALID NTStatus = 0xC00002F3 - STATUS_MAX_REFERRALS_EXCEEDED NTStatus = 0xC00002F4 - STATUS_MUST_BE_KDC NTStatus = 0xC00002F5 - STATUS_STRONG_CRYPTO_NOT_SUPPORTED NTStatus = 0xC00002F6 - STATUS_TOO_MANY_PRINCIPALS NTStatus = 0xC00002F7 - STATUS_NO_PA_DATA NTStatus = 0xC00002F8 - STATUS_PKINIT_NAME_MISMATCH NTStatus = 0xC00002F9 - STATUS_SMARTCARD_LOGON_REQUIRED NTStatus = 0xC00002FA - STATUS_KDC_INVALID_REQUEST NTStatus = 0xC00002FB - STATUS_KDC_UNABLE_TO_REFER NTStatus = 0xC00002FC - STATUS_KDC_UNKNOWN_ETYPE NTStatus = 0xC00002FD - STATUS_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FE - STATUS_SERVER_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FF - STATUS_NOT_SUPPORTED_ON_SBS NTStatus = 0xC0000300 - STATUS_WMI_GUID_DISCONNECTED NTStatus = 0xC0000301 - STATUS_WMI_ALREADY_DISABLED NTStatus = 0xC0000302 - STATUS_WMI_ALREADY_ENABLED NTStatus = 0xC0000303 - STATUS_MFT_TOO_FRAGMENTED NTStatus = 0xC0000304 - STATUS_COPY_PROTECTION_FAILURE NTStatus = 0xC0000305 - STATUS_CSS_AUTHENTICATION_FAILURE NTStatus = 0xC0000306 - STATUS_CSS_KEY_NOT_PRESENT NTStatus = 0xC0000307 - STATUS_CSS_KEY_NOT_ESTABLISHED NTStatus = 0xC0000308 - STATUS_CSS_SCRAMBLED_SECTOR NTStatus = 0xC0000309 - STATUS_CSS_REGION_MISMATCH NTStatus = 0xC000030A - STATUS_CSS_RESETS_EXHAUSTED NTStatus = 0xC000030B - STATUS_PASSWORD_CHANGE_REQUIRED NTStatus = 0xC000030C - STATUS_LOST_MODE_LOGON_RESTRICTION NTStatus = 0xC000030D - STATUS_PKINIT_FAILURE NTStatus = 0xC0000320 - STATUS_SMARTCARD_SUBSYSTEM_FAILURE NTStatus = 0xC0000321 - STATUS_NO_KERB_KEY NTStatus = 0xC0000322 - STATUS_HOST_DOWN NTStatus = 0xC0000350 - STATUS_UNSUPPORTED_PREAUTH NTStatus = 0xC0000351 - STATUS_EFS_ALG_BLOB_TOO_BIG NTStatus = 0xC0000352 - STATUS_PORT_NOT_SET NTStatus = 0xC0000353 - STATUS_DEBUGGER_INACTIVE NTStatus = 0xC0000354 - STATUS_DS_VERSION_CHECK_FAILURE NTStatus = 0xC0000355 - STATUS_AUDITING_DISABLED NTStatus = 0xC0000356 - STATUS_PRENT4_MACHINE_ACCOUNT NTStatus = 0xC0000357 - STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC0000358 - STATUS_INVALID_IMAGE_WIN_32 NTStatus = 0xC0000359 - STATUS_INVALID_IMAGE_WIN_64 NTStatus = 0xC000035A - STATUS_BAD_BINDINGS NTStatus = 0xC000035B - STATUS_NETWORK_SESSION_EXPIRED NTStatus = 0xC000035C - STATUS_APPHELP_BLOCK NTStatus = 0xC000035D - STATUS_ALL_SIDS_FILTERED NTStatus = 0xC000035E - STATUS_NOT_SAFE_MODE_DRIVER NTStatus = 0xC000035F - STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT NTStatus = 0xC0000361 - STATUS_ACCESS_DISABLED_BY_POLICY_PATH NTStatus = 0xC0000362 - STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER NTStatus = 0xC0000363 - STATUS_ACCESS_DISABLED_BY_POLICY_OTHER NTStatus = 0xC0000364 - STATUS_FAILED_DRIVER_ENTRY NTStatus = 0xC0000365 - STATUS_DEVICE_ENUMERATION_ERROR NTStatus = 0xC0000366 - STATUS_MOUNT_POINT_NOT_RESOLVED NTStatus = 0xC0000368 - STATUS_INVALID_DEVICE_OBJECT_PARAMETER NTStatus = 0xC0000369 - STATUS_MCA_OCCURED NTStatus = 0xC000036A - STATUS_DRIVER_BLOCKED_CRITICAL NTStatus = 0xC000036B - STATUS_DRIVER_BLOCKED NTStatus = 0xC000036C - STATUS_DRIVER_DATABASE_ERROR NTStatus = 0xC000036D - STATUS_SYSTEM_HIVE_TOO_LARGE NTStatus = 0xC000036E - STATUS_INVALID_IMPORT_OF_NON_DLL NTStatus = 0xC000036F - STATUS_DS_SHUTTING_DOWN NTStatus = 0x40000370 - STATUS_NO_SECRETS NTStatus = 0xC0000371 - STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY NTStatus = 0xC0000372 - STATUS_FAILED_STACK_SWITCH NTStatus = 0xC0000373 - STATUS_HEAP_CORRUPTION NTStatus = 0xC0000374 - STATUS_SMARTCARD_WRONG_PIN NTStatus = 0xC0000380 - STATUS_SMARTCARD_CARD_BLOCKED NTStatus = 0xC0000381 - STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED NTStatus = 0xC0000382 - STATUS_SMARTCARD_NO_CARD NTStatus = 0xC0000383 - STATUS_SMARTCARD_NO_KEY_CONTAINER NTStatus = 0xC0000384 - STATUS_SMARTCARD_NO_CERTIFICATE NTStatus = 0xC0000385 - STATUS_SMARTCARD_NO_KEYSET NTStatus = 0xC0000386 - STATUS_SMARTCARD_IO_ERROR NTStatus = 0xC0000387 - STATUS_DOWNGRADE_DETECTED NTStatus = 0xC0000388 - STATUS_SMARTCARD_CERT_REVOKED NTStatus = 0xC0000389 - STATUS_ISSUING_CA_UNTRUSTED NTStatus = 0xC000038A - STATUS_REVOCATION_OFFLINE_C NTStatus = 0xC000038B - STATUS_PKINIT_CLIENT_FAILURE NTStatus = 0xC000038C - STATUS_SMARTCARD_CERT_EXPIRED NTStatus = 0xC000038D - STATUS_DRIVER_FAILED_PRIOR_UNLOAD NTStatus = 0xC000038E - STATUS_SMARTCARD_SILENT_CONTEXT NTStatus = 0xC000038F - STATUS_PER_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000401 - STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000402 - STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000403 - STATUS_DS_NAME_NOT_UNIQUE NTStatus = 0xC0000404 - STATUS_DS_DUPLICATE_ID_FOUND NTStatus = 0xC0000405 - STATUS_DS_GROUP_CONVERSION_ERROR NTStatus = 0xC0000406 - STATUS_VOLSNAP_PREPARE_HIBERNATE NTStatus = 0xC0000407 - STATUS_USER2USER_REQUIRED NTStatus = 0xC0000408 - STATUS_STACK_BUFFER_OVERRUN NTStatus = 0xC0000409 - STATUS_NO_S4U_PROT_SUPPORT NTStatus = 0xC000040A - STATUS_CROSSREALM_DELEGATION_FAILURE NTStatus = 0xC000040B - STATUS_REVOCATION_OFFLINE_KDC NTStatus = 0xC000040C - STATUS_ISSUING_CA_UNTRUSTED_KDC NTStatus = 0xC000040D - STATUS_KDC_CERT_EXPIRED NTStatus = 0xC000040E - STATUS_KDC_CERT_REVOKED NTStatus = 0xC000040F - STATUS_PARAMETER_QUOTA_EXCEEDED NTStatus = 0xC0000410 - STATUS_HIBERNATION_FAILURE NTStatus = 0xC0000411 - STATUS_DELAY_LOAD_FAILED NTStatus = 0xC0000412 - STATUS_AUTHENTICATION_FIREWALL_FAILED NTStatus = 0xC0000413 - STATUS_VDM_DISALLOWED NTStatus = 0xC0000414 - STATUS_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC0000415 - STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE NTStatus = 0xC0000416 - STATUS_INVALID_CRUNTIME_PARAMETER NTStatus = 0xC0000417 - STATUS_NTLM_BLOCKED NTStatus = 0xC0000418 - STATUS_DS_SRC_SID_EXISTS_IN_FOREST NTStatus = 0xC0000419 - STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041A - STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041B - STATUS_INVALID_USER_PRINCIPAL_NAME NTStatus = 0xC000041C - STATUS_FATAL_USER_CALLBACK_EXCEPTION NTStatus = 0xC000041D - STATUS_ASSERTION_FAILURE NTStatus = 0xC0000420 - STATUS_VERIFIER_STOP NTStatus = 0xC0000421 - STATUS_CALLBACK_POP_STACK NTStatus = 0xC0000423 - STATUS_INCOMPATIBLE_DRIVER_BLOCKED NTStatus = 0xC0000424 - STATUS_HIVE_UNLOADED NTStatus = 0xC0000425 - STATUS_COMPRESSION_DISABLED NTStatus = 0xC0000426 - STATUS_FILE_SYSTEM_LIMITATION NTStatus = 0xC0000427 - STATUS_INVALID_IMAGE_HASH NTStatus = 0xC0000428 - STATUS_NOT_CAPABLE NTStatus = 0xC0000429 - STATUS_REQUEST_OUT_OF_SEQUENCE NTStatus = 0xC000042A - STATUS_IMPLEMENTATION_LIMIT NTStatus = 0xC000042B - STATUS_ELEVATION_REQUIRED NTStatus = 0xC000042C - STATUS_NO_SECURITY_CONTEXT NTStatus = 0xC000042D - STATUS_PKU2U_CERT_FAILURE NTStatus = 0xC000042F - STATUS_BEYOND_VDL NTStatus = 0xC0000432 - STATUS_ENCOUNTERED_WRITE_IN_PROGRESS NTStatus = 0xC0000433 - STATUS_PTE_CHANGED NTStatus = 0xC0000434 - STATUS_PURGE_FAILED NTStatus = 0xC0000435 - STATUS_CRED_REQUIRES_CONFIRMATION NTStatus = 0xC0000440 - STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE NTStatus = 0xC0000441 - STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER NTStatus = 0xC0000442 - STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE NTStatus = 0xC0000443 - STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE NTStatus = 0xC0000444 - STATUS_CS_ENCRYPTION_FILE_NOT_CSE NTStatus = 0xC0000445 - STATUS_INVALID_LABEL NTStatus = 0xC0000446 - STATUS_DRIVER_PROCESS_TERMINATED NTStatus = 0xC0000450 - STATUS_AMBIGUOUS_SYSTEM_DEVICE NTStatus = 0xC0000451 - STATUS_SYSTEM_DEVICE_NOT_FOUND NTStatus = 0xC0000452 - STATUS_RESTART_BOOT_APPLICATION NTStatus = 0xC0000453 - STATUS_INSUFFICIENT_NVRAM_RESOURCES NTStatus = 0xC0000454 - STATUS_INVALID_SESSION NTStatus = 0xC0000455 - STATUS_THREAD_ALREADY_IN_SESSION NTStatus = 0xC0000456 - STATUS_THREAD_NOT_IN_SESSION NTStatus = 0xC0000457 - STATUS_INVALID_WEIGHT NTStatus = 0xC0000458 - STATUS_REQUEST_PAUSED NTStatus = 0xC0000459 - STATUS_NO_RANGES_PROCESSED NTStatus = 0xC0000460 - STATUS_DISK_RESOURCES_EXHAUSTED NTStatus = 0xC0000461 - STATUS_NEEDS_REMEDIATION NTStatus = 0xC0000462 - STATUS_DEVICE_FEATURE_NOT_SUPPORTED NTStatus = 0xC0000463 - STATUS_DEVICE_UNREACHABLE NTStatus = 0xC0000464 - STATUS_INVALID_TOKEN NTStatus = 0xC0000465 - STATUS_SERVER_UNAVAILABLE NTStatus = 0xC0000466 - STATUS_FILE_NOT_AVAILABLE NTStatus = 0xC0000467 - STATUS_DEVICE_INSUFFICIENT_RESOURCES NTStatus = 0xC0000468 - STATUS_PACKAGE_UPDATING NTStatus = 0xC0000469 - STATUS_NOT_READ_FROM_COPY NTStatus = 0xC000046A - STATUS_FT_WRITE_FAILURE NTStatus = 0xC000046B - STATUS_FT_DI_SCAN_REQUIRED NTStatus = 0xC000046C - STATUS_OBJECT_NOT_EXTERNALLY_BACKED NTStatus = 0xC000046D - STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN NTStatus = 0xC000046E - STATUS_COMPRESSION_NOT_BENEFICIAL NTStatus = 0xC000046F - STATUS_DATA_CHECKSUM_ERROR NTStatus = 0xC0000470 - STATUS_INTERMIXED_KERNEL_EA_OPERATION NTStatus = 0xC0000471 - STATUS_TRIM_READ_ZERO_NOT_SUPPORTED NTStatus = 0xC0000472 - STATUS_TOO_MANY_SEGMENT_DESCRIPTORS NTStatus = 0xC0000473 - STATUS_INVALID_OFFSET_ALIGNMENT NTStatus = 0xC0000474 - STATUS_INVALID_FIELD_IN_PARAMETER_LIST NTStatus = 0xC0000475 - STATUS_OPERATION_IN_PROGRESS NTStatus = 0xC0000476 - STATUS_INVALID_INITIATOR_TARGET_PATH NTStatus = 0xC0000477 - STATUS_SCRUB_DATA_DISABLED NTStatus = 0xC0000478 - STATUS_NOT_REDUNDANT_STORAGE NTStatus = 0xC0000479 - STATUS_RESIDENT_FILE_NOT_SUPPORTED NTStatus = 0xC000047A - STATUS_COMPRESSED_FILE_NOT_SUPPORTED NTStatus = 0xC000047B - STATUS_DIRECTORY_NOT_SUPPORTED NTStatus = 0xC000047C - STATUS_IO_OPERATION_TIMEOUT NTStatus = 0xC000047D - STATUS_SYSTEM_NEEDS_REMEDIATION NTStatus = 0xC000047E - STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN NTStatus = 0xC000047F - STATUS_SHARE_UNAVAILABLE NTStatus = 0xC0000480 - STATUS_APISET_NOT_HOSTED NTStatus = 0xC0000481 - STATUS_APISET_NOT_PRESENT NTStatus = 0xC0000482 - STATUS_DEVICE_HARDWARE_ERROR NTStatus = 0xC0000483 - STATUS_FIRMWARE_SLOT_INVALID NTStatus = 0xC0000484 - STATUS_FIRMWARE_IMAGE_INVALID NTStatus = 0xC0000485 - STATUS_STORAGE_TOPOLOGY_ID_MISMATCH NTStatus = 0xC0000486 - STATUS_WIM_NOT_BOOTABLE NTStatus = 0xC0000487 - STATUS_BLOCKED_BY_PARENTAL_CONTROLS NTStatus = 0xC0000488 - STATUS_NEEDS_REGISTRATION NTStatus = 0xC0000489 - STATUS_QUOTA_ACTIVITY NTStatus = 0xC000048A - STATUS_CALLBACK_INVOKE_INLINE NTStatus = 0xC000048B - STATUS_BLOCK_TOO_MANY_REFERENCES NTStatus = 0xC000048C - STATUS_MARKED_TO_DISALLOW_WRITES NTStatus = 0xC000048D - STATUS_NETWORK_ACCESS_DENIED_EDP NTStatus = 0xC000048E - STATUS_ENCLAVE_FAILURE NTStatus = 0xC000048F - STATUS_PNP_NO_COMPAT_DRIVERS NTStatus = 0xC0000490 - STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND NTStatus = 0xC0000491 - STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND NTStatus = 0xC0000492 - STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE NTStatus = 0xC0000493 - STATUS_PNP_FUNCTION_DRIVER_REQUIRED NTStatus = 0xC0000494 - STATUS_PNP_DEVICE_CONFIGURATION_PENDING NTStatus = 0xC0000495 - STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL NTStatus = 0xC0000496 - STATUS_PACKAGE_NOT_AVAILABLE NTStatus = 0xC0000497 - STATUS_DEVICE_IN_MAINTENANCE NTStatus = 0xC0000499 - STATUS_NOT_SUPPORTED_ON_DAX NTStatus = 0xC000049A - STATUS_FREE_SPACE_TOO_FRAGMENTED NTStatus = 0xC000049B - STATUS_DAX_MAPPING_EXISTS NTStatus = 0xC000049C - STATUS_CHILD_PROCESS_BLOCKED NTStatus = 0xC000049D - STATUS_STORAGE_LOST_DATA_PERSISTENCE NTStatus = 0xC000049E - STATUS_VRF_CFG_ENABLED NTStatus = 0xC000049F - STATUS_PARTITION_TERMINATING NTStatus = 0xC00004A0 - STATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED NTStatus = 0xC00004A1 - STATUS_ENCLAVE_VIOLATION NTStatus = 0xC00004A2 - STATUS_FILE_PROTECTED_UNDER_DPL NTStatus = 0xC00004A3 - STATUS_VOLUME_NOT_CLUSTER_ALIGNED NTStatus = 0xC00004A4 - STATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND NTStatus = 0xC00004A5 - STATUS_APPX_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A6 - STATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A7 - STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET NTStatus = 0xC00004A8 - STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE NTStatus = 0xC00004A9 - STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER NTStatus = 0xC00004AA - STATUS_FT_READ_FAILURE NTStatus = 0xC00004AB - STATUS_PATCH_CONFLICT NTStatus = 0xC00004AC - STATUS_STORAGE_RESERVE_ID_INVALID NTStatus = 0xC00004AD - STATUS_STORAGE_RESERVE_DOES_NOT_EXIST NTStatus = 0xC00004AE - STATUS_STORAGE_RESERVE_ALREADY_EXISTS NTStatus = 0xC00004AF - STATUS_STORAGE_RESERVE_NOT_EMPTY NTStatus = 0xC00004B0 - STATUS_NOT_A_DAX_VOLUME NTStatus = 0xC00004B1 - STATUS_NOT_DAX_MAPPABLE NTStatus = 0xC00004B2 - STATUS_CASE_DIFFERING_NAMES_IN_DIR NTStatus = 0xC00004B3 - STATUS_FILE_NOT_SUPPORTED NTStatus = 0xC00004B4 - STATUS_NOT_SUPPORTED_WITH_BTT NTStatus = 0xC00004B5 - STATUS_ENCRYPTION_DISABLED NTStatus = 0xC00004B6 - STATUS_ENCRYPTING_METADATA_DISALLOWED NTStatus = 0xC00004B7 - STATUS_CANT_CLEAR_ENCRYPTION_FLAG NTStatus = 0xC00004B8 - STATUS_INVALID_TASK_NAME NTStatus = 0xC0000500 - STATUS_INVALID_TASK_INDEX NTStatus = 0xC0000501 - STATUS_THREAD_ALREADY_IN_TASK NTStatus = 0xC0000502 - STATUS_CALLBACK_BYPASS NTStatus = 0xC0000503 - STATUS_UNDEFINED_SCOPE NTStatus = 0xC0000504 - STATUS_INVALID_CAP NTStatus = 0xC0000505 - STATUS_NOT_GUI_PROCESS NTStatus = 0xC0000506 - STATUS_DEVICE_HUNG NTStatus = 0xC0000507 - STATUS_CONTAINER_ASSIGNED NTStatus = 0xC0000508 - STATUS_JOB_NO_CONTAINER NTStatus = 0xC0000509 - STATUS_DEVICE_UNRESPONSIVE NTStatus = 0xC000050A - STATUS_REPARSE_POINT_ENCOUNTERED NTStatus = 0xC000050B - STATUS_ATTRIBUTE_NOT_PRESENT NTStatus = 0xC000050C - STATUS_NOT_A_TIERED_VOLUME NTStatus = 0xC000050D - STATUS_ALREADY_HAS_STREAM_ID NTStatus = 0xC000050E - STATUS_JOB_NOT_EMPTY NTStatus = 0xC000050F - STATUS_ALREADY_INITIALIZED NTStatus = 0xC0000510 - STATUS_ENCLAVE_NOT_TERMINATED NTStatus = 0xC0000511 - STATUS_ENCLAVE_IS_TERMINATING NTStatus = 0xC0000512 - STATUS_SMB1_NOT_AVAILABLE NTStatus = 0xC0000513 - STATUS_SMR_GARBAGE_COLLECTION_REQUIRED NTStatus = 0xC0000514 - STATUS_INTERRUPTED NTStatus = 0xC0000515 - STATUS_THREAD_NOT_RUNNING NTStatus = 0xC0000516 - STATUS_FAIL_FAST_EXCEPTION NTStatus = 0xC0000602 - STATUS_IMAGE_CERT_REVOKED NTStatus = 0xC0000603 - STATUS_DYNAMIC_CODE_BLOCKED NTStatus = 0xC0000604 - STATUS_IMAGE_CERT_EXPIRED NTStatus = 0xC0000605 - STATUS_STRICT_CFG_VIOLATION NTStatus = 0xC0000606 - STATUS_SET_CONTEXT_DENIED NTStatus = 0xC000060A - STATUS_CROSS_PARTITION_VIOLATION NTStatus = 0xC000060B - STATUS_PORT_CLOSED NTStatus = 0xC0000700 - STATUS_MESSAGE_LOST NTStatus = 0xC0000701 - STATUS_INVALID_MESSAGE NTStatus = 0xC0000702 - STATUS_REQUEST_CANCELED NTStatus = 0xC0000703 - STATUS_RECURSIVE_DISPATCH NTStatus = 0xC0000704 - STATUS_LPC_RECEIVE_BUFFER_EXPECTED NTStatus = 0xC0000705 - STATUS_LPC_INVALID_CONNECTION_USAGE NTStatus = 0xC0000706 - STATUS_LPC_REQUESTS_NOT_ALLOWED NTStatus = 0xC0000707 - STATUS_RESOURCE_IN_USE NTStatus = 0xC0000708 - STATUS_HARDWARE_MEMORY_ERROR NTStatus = 0xC0000709 - STATUS_THREADPOOL_HANDLE_EXCEPTION NTStatus = 0xC000070A - STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED NTStatus = 0xC000070B - STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED NTStatus = 0xC000070C - STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED NTStatus = 0xC000070D - STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED NTStatus = 0xC000070E - STATUS_THREADPOOL_RELEASED_DURING_OPERATION NTStatus = 0xC000070F - STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000710 - STATUS_APC_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000711 - STATUS_PROCESS_IS_PROTECTED NTStatus = 0xC0000712 - STATUS_MCA_EXCEPTION NTStatus = 0xC0000713 - STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE NTStatus = 0xC0000714 - STATUS_SYMLINK_CLASS_DISABLED NTStatus = 0xC0000715 - STATUS_INVALID_IDN_NORMALIZATION NTStatus = 0xC0000716 - STATUS_NO_UNICODE_TRANSLATION NTStatus = 0xC0000717 - STATUS_ALREADY_REGISTERED NTStatus = 0xC0000718 - STATUS_CONTEXT_MISMATCH NTStatus = 0xC0000719 - STATUS_PORT_ALREADY_HAS_COMPLETION_LIST NTStatus = 0xC000071A - STATUS_CALLBACK_RETURNED_THREAD_PRIORITY NTStatus = 0xC000071B - STATUS_INVALID_THREAD NTStatus = 0xC000071C - STATUS_CALLBACK_RETURNED_TRANSACTION NTStatus = 0xC000071D - STATUS_CALLBACK_RETURNED_LDR_LOCK NTStatus = 0xC000071E - STATUS_CALLBACK_RETURNED_LANG NTStatus = 0xC000071F - STATUS_CALLBACK_RETURNED_PRI_BACK NTStatus = 0xC0000720 - STATUS_CALLBACK_RETURNED_THREAD_AFFINITY NTStatus = 0xC0000721 - STATUS_LPC_HANDLE_COUNT_EXCEEDED NTStatus = 0xC0000722 - STATUS_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000723 - STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000724 - STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000725 - STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000726 - STATUS_DISK_REPAIR_DISABLED NTStatus = 0xC0000800 - STATUS_DS_DOMAIN_RENAME_IN_PROGRESS NTStatus = 0xC0000801 - STATUS_DISK_QUOTA_EXCEEDED NTStatus = 0xC0000802 - STATUS_DATA_LOST_REPAIR NTStatus = 0x80000803 - STATUS_CONTENT_BLOCKED NTStatus = 0xC0000804 - STATUS_BAD_CLUSTERS NTStatus = 0xC0000805 - STATUS_VOLUME_DIRTY NTStatus = 0xC0000806 - STATUS_DISK_REPAIR_REDIRECTED NTStatus = 0x40000807 - STATUS_DISK_REPAIR_UNSUCCESSFUL NTStatus = 0xC0000808 - STATUS_CORRUPT_LOG_OVERFULL NTStatus = 0xC0000809 - STATUS_CORRUPT_LOG_CORRUPTED NTStatus = 0xC000080A - STATUS_CORRUPT_LOG_UNAVAILABLE NTStatus = 0xC000080B - STATUS_CORRUPT_LOG_DELETED_FULL NTStatus = 0xC000080C - STATUS_CORRUPT_LOG_CLEARED NTStatus = 0xC000080D - STATUS_ORPHAN_NAME_EXHAUSTED NTStatus = 0xC000080E - STATUS_PROACTIVE_SCAN_IN_PROGRESS NTStatus = 0xC000080F - STATUS_ENCRYPTED_IO_NOT_POSSIBLE NTStatus = 0xC0000810 - STATUS_CORRUPT_LOG_UPLEVEL_RECORDS NTStatus = 0xC0000811 - STATUS_FILE_CHECKED_OUT NTStatus = 0xC0000901 - STATUS_CHECKOUT_REQUIRED NTStatus = 0xC0000902 - STATUS_BAD_FILE_TYPE NTStatus = 0xC0000903 - STATUS_FILE_TOO_LARGE NTStatus = 0xC0000904 - STATUS_FORMS_AUTH_REQUIRED NTStatus = 0xC0000905 - STATUS_VIRUS_INFECTED NTStatus = 0xC0000906 - STATUS_VIRUS_DELETED NTStatus = 0xC0000907 - STATUS_BAD_MCFG_TABLE NTStatus = 0xC0000908 - STATUS_CANNOT_BREAK_OPLOCK NTStatus = 0xC0000909 - STATUS_BAD_KEY NTStatus = 0xC000090A - STATUS_BAD_DATA NTStatus = 0xC000090B - STATUS_NO_KEY NTStatus = 0xC000090C - STATUS_FILE_HANDLE_REVOKED NTStatus = 0xC0000910 - STATUS_WOW_ASSERTION NTStatus = 0xC0009898 - STATUS_INVALID_SIGNATURE NTStatus = 0xC000A000 - STATUS_HMAC_NOT_SUPPORTED NTStatus = 0xC000A001 - STATUS_AUTH_TAG_MISMATCH NTStatus = 0xC000A002 - STATUS_INVALID_STATE_TRANSITION NTStatus = 0xC000A003 - STATUS_INVALID_KERNEL_INFO_VERSION NTStatus = 0xC000A004 - STATUS_INVALID_PEP_INFO_VERSION NTStatus = 0xC000A005 - STATUS_HANDLE_REVOKED NTStatus = 0xC000A006 - STATUS_EOF_ON_GHOSTED_RANGE NTStatus = 0xC000A007 - STATUS_IPSEC_QUEUE_OVERFLOW NTStatus = 0xC000A010 - STATUS_ND_QUEUE_OVERFLOW NTStatus = 0xC000A011 - STATUS_HOPLIMIT_EXCEEDED NTStatus = 0xC000A012 - STATUS_PROTOCOL_NOT_SUPPORTED NTStatus = 0xC000A013 - STATUS_FASTPATH_REJECTED NTStatus = 0xC000A014 - STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED NTStatus = 0xC000A080 - STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR NTStatus = 0xC000A081 - STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR NTStatus = 0xC000A082 - STATUS_XML_PARSE_ERROR NTStatus = 0xC000A083 - STATUS_XMLDSIG_ERROR NTStatus = 0xC000A084 - STATUS_WRONG_COMPARTMENT NTStatus = 0xC000A085 - STATUS_AUTHIP_FAILURE NTStatus = 0xC000A086 - STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS NTStatus = 0xC000A087 - STATUS_DS_OID_NOT_FOUND NTStatus = 0xC000A088 - STATUS_INCORRECT_ACCOUNT_TYPE NTStatus = 0xC000A089 - STATUS_HASH_NOT_SUPPORTED NTStatus = 0xC000A100 - STATUS_HASH_NOT_PRESENT NTStatus = 0xC000A101 - STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED NTStatus = 0xC000A121 - STATUS_GPIO_CLIENT_INFORMATION_INVALID NTStatus = 0xC000A122 - STATUS_GPIO_VERSION_NOT_SUPPORTED NTStatus = 0xC000A123 - STATUS_GPIO_INVALID_REGISTRATION_PACKET NTStatus = 0xC000A124 - STATUS_GPIO_OPERATION_DENIED NTStatus = 0xC000A125 - STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE NTStatus = 0xC000A126 - STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED NTStatus = 0x8000A127 - STATUS_CANNOT_SWITCH_RUNLEVEL NTStatus = 0xC000A141 - STATUS_INVALID_RUNLEVEL_SETTING NTStatus = 0xC000A142 - STATUS_RUNLEVEL_SWITCH_TIMEOUT NTStatus = 0xC000A143 - STATUS_SERVICES_FAILED_AUTOSTART NTStatus = 0x4000A144 - STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT NTStatus = 0xC000A145 - STATUS_RUNLEVEL_SWITCH_IN_PROGRESS NTStatus = 0xC000A146 - STATUS_NOT_APPCONTAINER NTStatus = 0xC000A200 - STATUS_NOT_SUPPORTED_IN_APPCONTAINER NTStatus = 0xC000A201 - STATUS_INVALID_PACKAGE_SID_LENGTH NTStatus = 0xC000A202 - STATUS_LPAC_ACCESS_DENIED NTStatus = 0xC000A203 - STATUS_ADMINLESS_ACCESS_DENIED NTStatus = 0xC000A204 - STATUS_APP_DATA_NOT_FOUND NTStatus = 0xC000A281 - STATUS_APP_DATA_EXPIRED NTStatus = 0xC000A282 - STATUS_APP_DATA_CORRUPT NTStatus = 0xC000A283 - STATUS_APP_DATA_LIMIT_EXCEEDED NTStatus = 0xC000A284 - STATUS_APP_DATA_REBOOT_REQUIRED NTStatus = 0xC000A285 - STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A1 - STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A2 - STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A3 - STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A4 - STATUS_WOF_WIM_HEADER_CORRUPT NTStatus = 0xC000A2A5 - STATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A6 - STATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A7 - STATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE NTStatus = 0xC000CE01 - STATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT NTStatus = 0xC000CE02 - STATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY NTStatus = 0xC000CE03 - STATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN NTStatus = 0xC000CE04 - STATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION NTStatus = 0xC000CE05 - STATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT NTStatus = 0xC000CF00 - STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING NTStatus = 0xC000CF01 - STATUS_CLOUD_FILE_METADATA_CORRUPT NTStatus = 0xC000CF02 - STATUS_CLOUD_FILE_METADATA_TOO_LARGE NTStatus = 0xC000CF03 - STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE NTStatus = 0x8000CF04 - STATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS NTStatus = 0x8000CF05 - STATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED NTStatus = 0xC000CF06 - STATUS_NOT_A_CLOUD_FILE NTStatus = 0xC000CF07 - STATUS_CLOUD_FILE_NOT_IN_SYNC NTStatus = 0xC000CF08 - STATUS_CLOUD_FILE_ALREADY_CONNECTED NTStatus = 0xC000CF09 - STATUS_CLOUD_FILE_NOT_SUPPORTED NTStatus = 0xC000CF0A - STATUS_CLOUD_FILE_INVALID_REQUEST NTStatus = 0xC000CF0B - STATUS_CLOUD_FILE_READ_ONLY_VOLUME NTStatus = 0xC000CF0C - STATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY NTStatus = 0xC000CF0D - STATUS_CLOUD_FILE_VALIDATION_FAILED NTStatus = 0xC000CF0E - STATUS_CLOUD_FILE_AUTHENTICATION_FAILED NTStatus = 0xC000CF0F - STATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES NTStatus = 0xC000CF10 - STATUS_CLOUD_FILE_NETWORK_UNAVAILABLE NTStatus = 0xC000CF11 - STATUS_CLOUD_FILE_UNSUCCESSFUL NTStatus = 0xC000CF12 - STATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT NTStatus = 0xC000CF13 - STATUS_CLOUD_FILE_IN_USE NTStatus = 0xC000CF14 - STATUS_CLOUD_FILE_PINNED NTStatus = 0xC000CF15 - STATUS_CLOUD_FILE_REQUEST_ABORTED NTStatus = 0xC000CF16 - STATUS_CLOUD_FILE_PROPERTY_CORRUPT NTStatus = 0xC000CF17 - STATUS_CLOUD_FILE_ACCESS_DENIED NTStatus = 0xC000CF18 - STATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS NTStatus = 0xC000CF19 - STATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT NTStatus = 0xC000CF1A - STATUS_CLOUD_FILE_REQUEST_CANCELED NTStatus = 0xC000CF1B - STATUS_CLOUD_FILE_PROVIDER_TERMINATED NTStatus = 0xC000CF1D - STATUS_NOT_A_CLOUD_SYNC_ROOT NTStatus = 0xC000CF1E - STATUS_CLOUD_FILE_REQUEST_TIMEOUT NTStatus = 0xC000CF1F - STATUS_ACPI_INVALID_OPCODE NTStatus = 0xC0140001 - STATUS_ACPI_STACK_OVERFLOW NTStatus = 0xC0140002 - STATUS_ACPI_ASSERT_FAILED NTStatus = 0xC0140003 - STATUS_ACPI_INVALID_INDEX NTStatus = 0xC0140004 - STATUS_ACPI_INVALID_ARGUMENT NTStatus = 0xC0140005 - STATUS_ACPI_FATAL NTStatus = 0xC0140006 - STATUS_ACPI_INVALID_SUPERNAME NTStatus = 0xC0140007 - STATUS_ACPI_INVALID_ARGTYPE NTStatus = 0xC0140008 - STATUS_ACPI_INVALID_OBJTYPE NTStatus = 0xC0140009 - STATUS_ACPI_INVALID_TARGETTYPE NTStatus = 0xC014000A - STATUS_ACPI_INCORRECT_ARGUMENT_COUNT NTStatus = 0xC014000B - STATUS_ACPI_ADDRESS_NOT_MAPPED NTStatus = 0xC014000C - STATUS_ACPI_INVALID_EVENTTYPE NTStatus = 0xC014000D - STATUS_ACPI_HANDLER_COLLISION NTStatus = 0xC014000E - STATUS_ACPI_INVALID_DATA NTStatus = 0xC014000F - STATUS_ACPI_INVALID_REGION NTStatus = 0xC0140010 - STATUS_ACPI_INVALID_ACCESS_SIZE NTStatus = 0xC0140011 - STATUS_ACPI_ACQUIRE_GLOBAL_LOCK NTStatus = 0xC0140012 - STATUS_ACPI_ALREADY_INITIALIZED NTStatus = 0xC0140013 - STATUS_ACPI_NOT_INITIALIZED NTStatus = 0xC0140014 - STATUS_ACPI_INVALID_MUTEX_LEVEL NTStatus = 0xC0140015 - STATUS_ACPI_MUTEX_NOT_OWNED NTStatus = 0xC0140016 - STATUS_ACPI_MUTEX_NOT_OWNER NTStatus = 0xC0140017 - STATUS_ACPI_RS_ACCESS NTStatus = 0xC0140018 - STATUS_ACPI_INVALID_TABLE NTStatus = 0xC0140019 - STATUS_ACPI_REG_HANDLER_FAILED NTStatus = 0xC0140020 - STATUS_ACPI_POWER_REQUEST_FAILED NTStatus = 0xC0140021 - STATUS_CTX_WINSTATION_NAME_INVALID NTStatus = 0xC00A0001 - STATUS_CTX_INVALID_PD NTStatus = 0xC00A0002 - STATUS_CTX_PD_NOT_FOUND NTStatus = 0xC00A0003 - STATUS_CTX_CDM_CONNECT NTStatus = 0x400A0004 - STATUS_CTX_CDM_DISCONNECT NTStatus = 0x400A0005 - STATUS_CTX_CLOSE_PENDING NTStatus = 0xC00A0006 - STATUS_CTX_NO_OUTBUF NTStatus = 0xC00A0007 - STATUS_CTX_MODEM_INF_NOT_FOUND NTStatus = 0xC00A0008 - STATUS_CTX_INVALID_MODEMNAME NTStatus = 0xC00A0009 - STATUS_CTX_RESPONSE_ERROR NTStatus = 0xC00A000A - STATUS_CTX_MODEM_RESPONSE_TIMEOUT NTStatus = 0xC00A000B - STATUS_CTX_MODEM_RESPONSE_NO_CARRIER NTStatus = 0xC00A000C - STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE NTStatus = 0xC00A000D - STATUS_CTX_MODEM_RESPONSE_BUSY NTStatus = 0xC00A000E - STATUS_CTX_MODEM_RESPONSE_VOICE NTStatus = 0xC00A000F - STATUS_CTX_TD_ERROR NTStatus = 0xC00A0010 - STATUS_CTX_LICENSE_CLIENT_INVALID NTStatus = 0xC00A0012 - STATUS_CTX_LICENSE_NOT_AVAILABLE NTStatus = 0xC00A0013 - STATUS_CTX_LICENSE_EXPIRED NTStatus = 0xC00A0014 - STATUS_CTX_WINSTATION_NOT_FOUND NTStatus = 0xC00A0015 - STATUS_CTX_WINSTATION_NAME_COLLISION NTStatus = 0xC00A0016 - STATUS_CTX_WINSTATION_BUSY NTStatus = 0xC00A0017 - STATUS_CTX_BAD_VIDEO_MODE NTStatus = 0xC00A0018 - STATUS_CTX_GRAPHICS_INVALID NTStatus = 0xC00A0022 - STATUS_CTX_NOT_CONSOLE NTStatus = 0xC00A0024 - STATUS_CTX_CLIENT_QUERY_TIMEOUT NTStatus = 0xC00A0026 - STATUS_CTX_CONSOLE_DISCONNECT NTStatus = 0xC00A0027 - STATUS_CTX_CONSOLE_CONNECT NTStatus = 0xC00A0028 - STATUS_CTX_SHADOW_DENIED NTStatus = 0xC00A002A - STATUS_CTX_WINSTATION_ACCESS_DENIED NTStatus = 0xC00A002B - STATUS_CTX_INVALID_WD NTStatus = 0xC00A002E - STATUS_CTX_WD_NOT_FOUND NTStatus = 0xC00A002F - STATUS_CTX_SHADOW_INVALID NTStatus = 0xC00A0030 - STATUS_CTX_SHADOW_DISABLED NTStatus = 0xC00A0031 - STATUS_RDP_PROTOCOL_ERROR NTStatus = 0xC00A0032 - STATUS_CTX_CLIENT_LICENSE_NOT_SET NTStatus = 0xC00A0033 - STATUS_CTX_CLIENT_LICENSE_IN_USE NTStatus = 0xC00A0034 - STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE NTStatus = 0xC00A0035 - STATUS_CTX_SHADOW_NOT_RUNNING NTStatus = 0xC00A0036 - STATUS_CTX_LOGON_DISABLED NTStatus = 0xC00A0037 - STATUS_CTX_SECURITY_LAYER_ERROR NTStatus = 0xC00A0038 - STATUS_TS_INCOMPATIBLE_SESSIONS NTStatus = 0xC00A0039 - STATUS_TS_VIDEO_SUBSYSTEM_ERROR NTStatus = 0xC00A003A - STATUS_PNP_BAD_MPS_TABLE NTStatus = 0xC0040035 - STATUS_PNP_TRANSLATION_FAILED NTStatus = 0xC0040036 - STATUS_PNP_IRQ_TRANSLATION_FAILED NTStatus = 0xC0040037 - STATUS_PNP_INVALID_ID NTStatus = 0xC0040038 - STATUS_IO_REISSUE_AS_CACHED NTStatus = 0xC0040039 - STATUS_MUI_FILE_NOT_FOUND NTStatus = 0xC00B0001 - STATUS_MUI_INVALID_FILE NTStatus = 0xC00B0002 - STATUS_MUI_INVALID_RC_CONFIG NTStatus = 0xC00B0003 - STATUS_MUI_INVALID_LOCALE_NAME NTStatus = 0xC00B0004 - STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME NTStatus = 0xC00B0005 - STATUS_MUI_FILE_NOT_LOADED NTStatus = 0xC00B0006 - STATUS_RESOURCE_ENUM_USER_STOP NTStatus = 0xC00B0007 - STATUS_FLT_NO_HANDLER_DEFINED NTStatus = 0xC01C0001 - STATUS_FLT_CONTEXT_ALREADY_DEFINED NTStatus = 0xC01C0002 - STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST NTStatus = 0xC01C0003 - STATUS_FLT_DISALLOW_FAST_IO NTStatus = 0xC01C0004 - STATUS_FLT_INVALID_NAME_REQUEST NTStatus = 0xC01C0005 - STATUS_FLT_NOT_SAFE_TO_POST_OPERATION NTStatus = 0xC01C0006 - STATUS_FLT_NOT_INITIALIZED NTStatus = 0xC01C0007 - STATUS_FLT_FILTER_NOT_READY NTStatus = 0xC01C0008 - STATUS_FLT_POST_OPERATION_CLEANUP NTStatus = 0xC01C0009 - STATUS_FLT_INTERNAL_ERROR NTStatus = 0xC01C000A - STATUS_FLT_DELETING_OBJECT NTStatus = 0xC01C000B - STATUS_FLT_MUST_BE_NONPAGED_POOL NTStatus = 0xC01C000C - STATUS_FLT_DUPLICATE_ENTRY NTStatus = 0xC01C000D - STATUS_FLT_CBDQ_DISABLED NTStatus = 0xC01C000E - STATUS_FLT_DO_NOT_ATTACH NTStatus = 0xC01C000F - STATUS_FLT_DO_NOT_DETACH NTStatus = 0xC01C0010 - STATUS_FLT_INSTANCE_ALTITUDE_COLLISION NTStatus = 0xC01C0011 - STATUS_FLT_INSTANCE_NAME_COLLISION NTStatus = 0xC01C0012 - STATUS_FLT_FILTER_NOT_FOUND NTStatus = 0xC01C0013 - STATUS_FLT_VOLUME_NOT_FOUND NTStatus = 0xC01C0014 - STATUS_FLT_INSTANCE_NOT_FOUND NTStatus = 0xC01C0015 - STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND NTStatus = 0xC01C0016 - STATUS_FLT_INVALID_CONTEXT_REGISTRATION NTStatus = 0xC01C0017 - STATUS_FLT_NAME_CACHE_MISS NTStatus = 0xC01C0018 - STATUS_FLT_NO_DEVICE_OBJECT NTStatus = 0xC01C0019 - STATUS_FLT_VOLUME_ALREADY_MOUNTED NTStatus = 0xC01C001A - STATUS_FLT_ALREADY_ENLISTED NTStatus = 0xC01C001B - STATUS_FLT_CONTEXT_ALREADY_LINKED NTStatus = 0xC01C001C - STATUS_FLT_NO_WAITER_FOR_REPLY NTStatus = 0xC01C0020 - STATUS_FLT_REGISTRATION_BUSY NTStatus = 0xC01C0023 - STATUS_SXS_SECTION_NOT_FOUND NTStatus = 0xC0150001 - STATUS_SXS_CANT_GEN_ACTCTX NTStatus = 0xC0150002 - STATUS_SXS_INVALID_ACTCTXDATA_FORMAT NTStatus = 0xC0150003 - STATUS_SXS_ASSEMBLY_NOT_FOUND NTStatus = 0xC0150004 - STATUS_SXS_MANIFEST_FORMAT_ERROR NTStatus = 0xC0150005 - STATUS_SXS_MANIFEST_PARSE_ERROR NTStatus = 0xC0150006 - STATUS_SXS_ACTIVATION_CONTEXT_DISABLED NTStatus = 0xC0150007 - STATUS_SXS_KEY_NOT_FOUND NTStatus = 0xC0150008 - STATUS_SXS_VERSION_CONFLICT NTStatus = 0xC0150009 - STATUS_SXS_WRONG_SECTION_TYPE NTStatus = 0xC015000A - STATUS_SXS_THREAD_QUERIES_DISABLED NTStatus = 0xC015000B - STATUS_SXS_ASSEMBLY_MISSING NTStatus = 0xC015000C - STATUS_SXS_RELEASE_ACTIVATION_CONTEXT NTStatus = 0x4015000D - STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET NTStatus = 0xC015000E - STATUS_SXS_EARLY_DEACTIVATION NTStatus = 0xC015000F - STATUS_SXS_INVALID_DEACTIVATION NTStatus = 0xC0150010 - STATUS_SXS_MULTIPLE_DEACTIVATION NTStatus = 0xC0150011 - STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY NTStatus = 0xC0150012 - STATUS_SXS_PROCESS_TERMINATION_REQUESTED NTStatus = 0xC0150013 - STATUS_SXS_CORRUPT_ACTIVATION_STACK NTStatus = 0xC0150014 - STATUS_SXS_CORRUPTION NTStatus = 0xC0150015 - STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE NTStatus = 0xC0150016 - STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME NTStatus = 0xC0150017 - STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE NTStatus = 0xC0150018 - STATUS_SXS_IDENTITY_PARSE_ERROR NTStatus = 0xC0150019 - STATUS_SXS_COMPONENT_STORE_CORRUPT NTStatus = 0xC015001A - STATUS_SXS_FILE_HASH_MISMATCH NTStatus = 0xC015001B - STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT NTStatus = 0xC015001C - STATUS_SXS_IDENTITIES_DIFFERENT NTStatus = 0xC015001D - STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT NTStatus = 0xC015001E - STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY NTStatus = 0xC015001F - STATUS_ADVANCED_INSTALLER_FAILED NTStatus = 0xC0150020 - STATUS_XML_ENCODING_MISMATCH NTStatus = 0xC0150021 - STATUS_SXS_MANIFEST_TOO_BIG NTStatus = 0xC0150022 - STATUS_SXS_SETTING_NOT_REGISTERED NTStatus = 0xC0150023 - STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE NTStatus = 0xC0150024 - STATUS_SMI_PRIMITIVE_INSTALLER_FAILED NTStatus = 0xC0150025 - STATUS_GENERIC_COMMAND_FAILED NTStatus = 0xC0150026 - STATUS_SXS_FILE_HASH_MISSING NTStatus = 0xC0150027 - STATUS_CLUSTER_INVALID_NODE NTStatus = 0xC0130001 - STATUS_CLUSTER_NODE_EXISTS NTStatus = 0xC0130002 - STATUS_CLUSTER_JOIN_IN_PROGRESS NTStatus = 0xC0130003 - STATUS_CLUSTER_NODE_NOT_FOUND NTStatus = 0xC0130004 - STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND NTStatus = 0xC0130005 - STATUS_CLUSTER_NETWORK_EXISTS NTStatus = 0xC0130006 - STATUS_CLUSTER_NETWORK_NOT_FOUND NTStatus = 0xC0130007 - STATUS_CLUSTER_NETINTERFACE_EXISTS NTStatus = 0xC0130008 - STATUS_CLUSTER_NETINTERFACE_NOT_FOUND NTStatus = 0xC0130009 - STATUS_CLUSTER_INVALID_REQUEST NTStatus = 0xC013000A - STATUS_CLUSTER_INVALID_NETWORK_PROVIDER NTStatus = 0xC013000B - STATUS_CLUSTER_NODE_DOWN NTStatus = 0xC013000C - STATUS_CLUSTER_NODE_UNREACHABLE NTStatus = 0xC013000D - STATUS_CLUSTER_NODE_NOT_MEMBER NTStatus = 0xC013000E - STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS NTStatus = 0xC013000F - STATUS_CLUSTER_INVALID_NETWORK NTStatus = 0xC0130010 - STATUS_CLUSTER_NO_NET_ADAPTERS NTStatus = 0xC0130011 - STATUS_CLUSTER_NODE_UP NTStatus = 0xC0130012 - STATUS_CLUSTER_NODE_PAUSED NTStatus = 0xC0130013 - STATUS_CLUSTER_NODE_NOT_PAUSED NTStatus = 0xC0130014 - STATUS_CLUSTER_NO_SECURITY_CONTEXT NTStatus = 0xC0130015 - STATUS_CLUSTER_NETWORK_NOT_INTERNAL NTStatus = 0xC0130016 - STATUS_CLUSTER_POISONED NTStatus = 0xC0130017 - STATUS_CLUSTER_NON_CSV_PATH NTStatus = 0xC0130018 - STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL NTStatus = 0xC0130019 - STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0xC0130020 - STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR NTStatus = 0xC0130021 - STATUS_CLUSTER_CSV_REDIRECTED NTStatus = 0xC0130022 - STATUS_CLUSTER_CSV_NOT_REDIRECTED NTStatus = 0xC0130023 - STATUS_CLUSTER_CSV_VOLUME_DRAINING NTStatus = 0xC0130024 - STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS NTStatus = 0xC0130025 - STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL NTStatus = 0xC0130026 - STATUS_CLUSTER_CSV_NO_SNAPSHOTS NTStatus = 0xC0130027 - STATUS_CSV_IO_PAUSE_TIMEOUT NTStatus = 0xC0130028 - STATUS_CLUSTER_CSV_INVALID_HANDLE NTStatus = 0xC0130029 - STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR NTStatus = 0xC0130030 - STATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED NTStatus = 0xC0130031 - STATUS_TRANSACTIONAL_CONFLICT NTStatus = 0xC0190001 - STATUS_INVALID_TRANSACTION NTStatus = 0xC0190002 - STATUS_TRANSACTION_NOT_ACTIVE NTStatus = 0xC0190003 - STATUS_TM_INITIALIZATION_FAILED NTStatus = 0xC0190004 - STATUS_RM_NOT_ACTIVE NTStatus = 0xC0190005 - STATUS_RM_METADATA_CORRUPT NTStatus = 0xC0190006 - STATUS_TRANSACTION_NOT_JOINED NTStatus = 0xC0190007 - STATUS_DIRECTORY_NOT_RM NTStatus = 0xC0190008 - STATUS_COULD_NOT_RESIZE_LOG NTStatus = 0x80190009 - STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE NTStatus = 0xC019000A - STATUS_LOG_RESIZE_INVALID_SIZE NTStatus = 0xC019000B - STATUS_REMOTE_FILE_VERSION_MISMATCH NTStatus = 0xC019000C - STATUS_CRM_PROTOCOL_ALREADY_EXISTS NTStatus = 0xC019000F - STATUS_TRANSACTION_PROPAGATION_FAILED NTStatus = 0xC0190010 - STATUS_CRM_PROTOCOL_NOT_FOUND NTStatus = 0xC0190011 - STATUS_TRANSACTION_SUPERIOR_EXISTS NTStatus = 0xC0190012 - STATUS_TRANSACTION_REQUEST_NOT_VALID NTStatus = 0xC0190013 - STATUS_TRANSACTION_NOT_REQUESTED NTStatus = 0xC0190014 - STATUS_TRANSACTION_ALREADY_ABORTED NTStatus = 0xC0190015 - STATUS_TRANSACTION_ALREADY_COMMITTED NTStatus = 0xC0190016 - STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER NTStatus = 0xC0190017 - STATUS_CURRENT_TRANSACTION_NOT_VALID NTStatus = 0xC0190018 - STATUS_LOG_GROWTH_FAILED NTStatus = 0xC0190019 - STATUS_OBJECT_NO_LONGER_EXISTS NTStatus = 0xC0190021 - STATUS_STREAM_MINIVERSION_NOT_FOUND NTStatus = 0xC0190022 - STATUS_STREAM_MINIVERSION_NOT_VALID NTStatus = 0xC0190023 - STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION NTStatus = 0xC0190024 - STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT NTStatus = 0xC0190025 - STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS NTStatus = 0xC0190026 - STATUS_HANDLE_NO_LONGER_VALID NTStatus = 0xC0190028 - STATUS_NO_TXF_METADATA NTStatus = 0x80190029 - STATUS_LOG_CORRUPTION_DETECTED NTStatus = 0xC0190030 - STATUS_CANT_RECOVER_WITH_HANDLE_OPEN NTStatus = 0x80190031 - STATUS_RM_DISCONNECTED NTStatus = 0xC0190032 - STATUS_ENLISTMENT_NOT_SUPERIOR NTStatus = 0xC0190033 - STATUS_RECOVERY_NOT_NEEDED NTStatus = 0x40190034 - STATUS_RM_ALREADY_STARTED NTStatus = 0x40190035 - STATUS_FILE_IDENTITY_NOT_PERSISTENT NTStatus = 0xC0190036 - STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY NTStatus = 0xC0190037 - STATUS_CANT_CROSS_RM_BOUNDARY NTStatus = 0xC0190038 - STATUS_TXF_DIR_NOT_EMPTY NTStatus = 0xC0190039 - STATUS_INDOUBT_TRANSACTIONS_EXIST NTStatus = 0xC019003A - STATUS_TM_VOLATILE NTStatus = 0xC019003B - STATUS_ROLLBACK_TIMER_EXPIRED NTStatus = 0xC019003C - STATUS_TXF_ATTRIBUTE_CORRUPT NTStatus = 0xC019003D - STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC019003E - STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED NTStatus = 0xC019003F - STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE NTStatus = 0xC0190040 - STATUS_TXF_METADATA_ALREADY_PRESENT NTStatus = 0x80190041 - STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET NTStatus = 0x80190042 - STATUS_TRANSACTION_REQUIRED_PROMOTION NTStatus = 0xC0190043 - STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION NTStatus = 0xC0190044 - STATUS_TRANSACTIONS_NOT_FROZEN NTStatus = 0xC0190045 - STATUS_TRANSACTION_FREEZE_IN_PROGRESS NTStatus = 0xC0190046 - STATUS_NOT_SNAPSHOT_VOLUME NTStatus = 0xC0190047 - STATUS_NO_SAVEPOINT_WITH_OPEN_FILES NTStatus = 0xC0190048 - STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190049 - STATUS_TM_IDENTITY_MISMATCH NTStatus = 0xC019004A - STATUS_FLOATED_SECTION NTStatus = 0xC019004B - STATUS_CANNOT_ACCEPT_TRANSACTED_WORK NTStatus = 0xC019004C - STATUS_CANNOT_ABORT_TRANSACTIONS NTStatus = 0xC019004D - STATUS_TRANSACTION_NOT_FOUND NTStatus = 0xC019004E - STATUS_RESOURCEMANAGER_NOT_FOUND NTStatus = 0xC019004F - STATUS_ENLISTMENT_NOT_FOUND NTStatus = 0xC0190050 - STATUS_TRANSACTIONMANAGER_NOT_FOUND NTStatus = 0xC0190051 - STATUS_TRANSACTIONMANAGER_NOT_ONLINE NTStatus = 0xC0190052 - STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION NTStatus = 0xC0190053 - STATUS_TRANSACTION_NOT_ROOT NTStatus = 0xC0190054 - STATUS_TRANSACTION_OBJECT_EXPIRED NTStatus = 0xC0190055 - STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190056 - STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED NTStatus = 0xC0190057 - STATUS_TRANSACTION_RECORD_TOO_LONG NTStatus = 0xC0190058 - STATUS_NO_LINK_TRACKING_IN_TRANSACTION NTStatus = 0xC0190059 - STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION NTStatus = 0xC019005A - STATUS_TRANSACTION_INTEGRITY_VIOLATED NTStatus = 0xC019005B - STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH NTStatus = 0xC019005C - STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT NTStatus = 0xC019005D - STATUS_TRANSACTION_MUST_WRITETHROUGH NTStatus = 0xC019005E - STATUS_TRANSACTION_NO_SUPERIOR NTStatus = 0xC019005F - STATUS_EXPIRED_HANDLE NTStatus = 0xC0190060 - STATUS_TRANSACTION_NOT_ENLISTED NTStatus = 0xC0190061 - STATUS_LOG_SECTOR_INVALID NTStatus = 0xC01A0001 - STATUS_LOG_SECTOR_PARITY_INVALID NTStatus = 0xC01A0002 - STATUS_LOG_SECTOR_REMAPPED NTStatus = 0xC01A0003 - STATUS_LOG_BLOCK_INCOMPLETE NTStatus = 0xC01A0004 - STATUS_LOG_INVALID_RANGE NTStatus = 0xC01A0005 - STATUS_LOG_BLOCKS_EXHAUSTED NTStatus = 0xC01A0006 - STATUS_LOG_READ_CONTEXT_INVALID NTStatus = 0xC01A0007 - STATUS_LOG_RESTART_INVALID NTStatus = 0xC01A0008 - STATUS_LOG_BLOCK_VERSION NTStatus = 0xC01A0009 - STATUS_LOG_BLOCK_INVALID NTStatus = 0xC01A000A - STATUS_LOG_READ_MODE_INVALID NTStatus = 0xC01A000B - STATUS_LOG_NO_RESTART NTStatus = 0x401A000C - STATUS_LOG_METADATA_CORRUPT NTStatus = 0xC01A000D - STATUS_LOG_METADATA_INVALID NTStatus = 0xC01A000E - STATUS_LOG_METADATA_INCONSISTENT NTStatus = 0xC01A000F - STATUS_LOG_RESERVATION_INVALID NTStatus = 0xC01A0010 - STATUS_LOG_CANT_DELETE NTStatus = 0xC01A0011 - STATUS_LOG_CONTAINER_LIMIT_EXCEEDED NTStatus = 0xC01A0012 - STATUS_LOG_START_OF_LOG NTStatus = 0xC01A0013 - STATUS_LOG_POLICY_ALREADY_INSTALLED NTStatus = 0xC01A0014 - STATUS_LOG_POLICY_NOT_INSTALLED NTStatus = 0xC01A0015 - STATUS_LOG_POLICY_INVALID NTStatus = 0xC01A0016 - STATUS_LOG_POLICY_CONFLICT NTStatus = 0xC01A0017 - STATUS_LOG_PINNED_ARCHIVE_TAIL NTStatus = 0xC01A0018 - STATUS_LOG_RECORD_NONEXISTENT NTStatus = 0xC01A0019 - STATUS_LOG_RECORDS_RESERVED_INVALID NTStatus = 0xC01A001A - STATUS_LOG_SPACE_RESERVED_INVALID NTStatus = 0xC01A001B - STATUS_LOG_TAIL_INVALID NTStatus = 0xC01A001C - STATUS_LOG_FULL NTStatus = 0xC01A001D - STATUS_LOG_MULTIPLEXED NTStatus = 0xC01A001E - STATUS_LOG_DEDICATED NTStatus = 0xC01A001F - STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS NTStatus = 0xC01A0020 - STATUS_LOG_ARCHIVE_IN_PROGRESS NTStatus = 0xC01A0021 - STATUS_LOG_EPHEMERAL NTStatus = 0xC01A0022 - STATUS_LOG_NOT_ENOUGH_CONTAINERS NTStatus = 0xC01A0023 - STATUS_LOG_CLIENT_ALREADY_REGISTERED NTStatus = 0xC01A0024 - STATUS_LOG_CLIENT_NOT_REGISTERED NTStatus = 0xC01A0025 - STATUS_LOG_FULL_HANDLER_IN_PROGRESS NTStatus = 0xC01A0026 - STATUS_LOG_CONTAINER_READ_FAILED NTStatus = 0xC01A0027 - STATUS_LOG_CONTAINER_WRITE_FAILED NTStatus = 0xC01A0028 - STATUS_LOG_CONTAINER_OPEN_FAILED NTStatus = 0xC01A0029 - STATUS_LOG_CONTAINER_STATE_INVALID NTStatus = 0xC01A002A - STATUS_LOG_STATE_INVALID NTStatus = 0xC01A002B - STATUS_LOG_PINNED NTStatus = 0xC01A002C - STATUS_LOG_METADATA_FLUSH_FAILED NTStatus = 0xC01A002D - STATUS_LOG_INCONSISTENT_SECURITY NTStatus = 0xC01A002E - STATUS_LOG_APPENDED_FLUSH_FAILED NTStatus = 0xC01A002F - STATUS_LOG_PINNED_RESERVATION NTStatus = 0xC01A0030 - STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC01B00EA - STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED NTStatus = 0x801B00EB - STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST NTStatus = 0x401B00EC - STATUS_MONITOR_NO_DESCRIPTOR NTStatus = 0xC01D0001 - STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT NTStatus = 0xC01D0002 - STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM NTStatus = 0xC01D0003 - STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK NTStatus = 0xC01D0004 - STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED NTStatus = 0xC01D0005 - STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK NTStatus = 0xC01D0006 - STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK NTStatus = 0xC01D0007 - STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA NTStatus = 0xC01D0008 - STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK NTStatus = 0xC01D0009 - STATUS_MONITOR_INVALID_MANUFACTURE_DATE NTStatus = 0xC01D000A - STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER NTStatus = 0xC01E0000 - STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER NTStatus = 0xC01E0001 - STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER NTStatus = 0xC01E0002 - STATUS_GRAPHICS_ADAPTER_WAS_RESET NTStatus = 0xC01E0003 - STATUS_GRAPHICS_INVALID_DRIVER_MODEL NTStatus = 0xC01E0004 - STATUS_GRAPHICS_PRESENT_MODE_CHANGED NTStatus = 0xC01E0005 - STATUS_GRAPHICS_PRESENT_OCCLUDED NTStatus = 0xC01E0006 - STATUS_GRAPHICS_PRESENT_DENIED NTStatus = 0xC01E0007 - STATUS_GRAPHICS_CANNOTCOLORCONVERT NTStatus = 0xC01E0008 - STATUS_GRAPHICS_DRIVER_MISMATCH NTStatus = 0xC01E0009 - STATUS_GRAPHICS_PARTIAL_DATA_POPULATED NTStatus = 0x401E000A - STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED NTStatus = 0xC01E000B - STATUS_GRAPHICS_PRESENT_UNOCCLUDED NTStatus = 0xC01E000C - STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE NTStatus = 0xC01E000D - STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED NTStatus = 0xC01E000E - STATUS_GRAPHICS_PRESENT_INVALID_WINDOW NTStatus = 0xC01E000F - STATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND NTStatus = 0xC01E0010 - STATUS_GRAPHICS_VAIL_STATE_CHANGED NTStatus = 0xC01E0011 - STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN NTStatus = 0xC01E0012 - STATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED NTStatus = 0xC01E0013 - STATUS_GRAPHICS_NO_VIDEO_MEMORY NTStatus = 0xC01E0100 - STATUS_GRAPHICS_CANT_LOCK_MEMORY NTStatus = 0xC01E0101 - STATUS_GRAPHICS_ALLOCATION_BUSY NTStatus = 0xC01E0102 - STATUS_GRAPHICS_TOO_MANY_REFERENCES NTStatus = 0xC01E0103 - STATUS_GRAPHICS_TRY_AGAIN_LATER NTStatus = 0xC01E0104 - STATUS_GRAPHICS_TRY_AGAIN_NOW NTStatus = 0xC01E0105 - STATUS_GRAPHICS_ALLOCATION_INVALID NTStatus = 0xC01E0106 - STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE NTStatus = 0xC01E0107 - STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED NTStatus = 0xC01E0108 - STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION NTStatus = 0xC01E0109 - STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE NTStatus = 0xC01E0110 - STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION NTStatus = 0xC01E0111 - STATUS_GRAPHICS_ALLOCATION_CLOSED NTStatus = 0xC01E0112 - STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE NTStatus = 0xC01E0113 - STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE NTStatus = 0xC01E0114 - STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE NTStatus = 0xC01E0115 - STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST NTStatus = 0xC01E0116 - STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE NTStatus = 0xC01E0200 - STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION NTStatus = 0x401E0201 - STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY NTStatus = 0xC01E0300 - STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED NTStatus = 0xC01E0301 - STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED NTStatus = 0xC01E0302 - STATUS_GRAPHICS_INVALID_VIDPN NTStatus = 0xC01E0303 - STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE NTStatus = 0xC01E0304 - STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET NTStatus = 0xC01E0305 - STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED NTStatus = 0xC01E0306 - STATUS_GRAPHICS_MODE_NOT_PINNED NTStatus = 0x401E0307 - STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET NTStatus = 0xC01E0308 - STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET NTStatus = 0xC01E0309 - STATUS_GRAPHICS_INVALID_FREQUENCY NTStatus = 0xC01E030A - STATUS_GRAPHICS_INVALID_ACTIVE_REGION NTStatus = 0xC01E030B - STATUS_GRAPHICS_INVALID_TOTAL_REGION NTStatus = 0xC01E030C - STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE NTStatus = 0xC01E0310 - STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE NTStatus = 0xC01E0311 - STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET NTStatus = 0xC01E0312 - STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY NTStatus = 0xC01E0313 - STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET NTStatus = 0xC01E0314 - STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET NTStatus = 0xC01E0315 - STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET NTStatus = 0xC01E0316 - STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET NTStatus = 0xC01E0317 - STATUS_GRAPHICS_TARGET_ALREADY_IN_SET NTStatus = 0xC01E0318 - STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH NTStatus = 0xC01E0319 - STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY NTStatus = 0xC01E031A - STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET NTStatus = 0xC01E031B - STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE NTStatus = 0xC01E031C - STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET NTStatus = 0xC01E031D - STATUS_GRAPHICS_NO_PREFERRED_MODE NTStatus = 0x401E031E - STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET NTStatus = 0xC01E031F - STATUS_GRAPHICS_STALE_MODESET NTStatus = 0xC01E0320 - STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET NTStatus = 0xC01E0321 - STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE NTStatus = 0xC01E0322 - STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN NTStatus = 0xC01E0323 - STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0324 - STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION NTStatus = 0xC01E0325 - STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES NTStatus = 0xC01E0326 - STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY NTStatus = 0xC01E0327 - STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE NTStatus = 0xC01E0328 - STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET NTStatus = 0xC01E0329 - STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET NTStatus = 0xC01E032A - STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR NTStatus = 0xC01E032B - STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET NTStatus = 0xC01E032C - STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET NTStatus = 0xC01E032D - STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE NTStatus = 0xC01E032E - STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE NTStatus = 0xC01E032F - STATUS_GRAPHICS_RESOURCES_NOT_RELATED NTStatus = 0xC01E0330 - STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0331 - STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0332 - STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET NTStatus = 0xC01E0333 - STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER NTStatus = 0xC01E0334 - STATUS_GRAPHICS_NO_VIDPNMGR NTStatus = 0xC01E0335 - STATUS_GRAPHICS_NO_ACTIVE_VIDPN NTStatus = 0xC01E0336 - STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY NTStatus = 0xC01E0337 - STATUS_GRAPHICS_MONITOR_NOT_CONNECTED NTStatus = 0xC01E0338 - STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY NTStatus = 0xC01E0339 - STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE NTStatus = 0xC01E033A - STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE NTStatus = 0xC01E033B - STATUS_GRAPHICS_INVALID_STRIDE NTStatus = 0xC01E033C - STATUS_GRAPHICS_INVALID_PIXELFORMAT NTStatus = 0xC01E033D - STATUS_GRAPHICS_INVALID_COLORBASIS NTStatus = 0xC01E033E - STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE NTStatus = 0xC01E033F - STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY NTStatus = 0xC01E0340 - STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT NTStatus = 0xC01E0341 - STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE NTStatus = 0xC01E0342 - STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN NTStatus = 0xC01E0343 - STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL NTStatus = 0xC01E0344 - STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION NTStatus = 0xC01E0345 - STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED NTStatus = 0xC01E0346 - STATUS_GRAPHICS_INVALID_GAMMA_RAMP NTStatus = 0xC01E0347 - STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED NTStatus = 0xC01E0348 - STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED NTStatus = 0xC01E0349 - STATUS_GRAPHICS_MODE_NOT_IN_MODESET NTStatus = 0xC01E034A - STATUS_GRAPHICS_DATASET_IS_EMPTY NTStatus = 0x401E034B - STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET NTStatus = 0x401E034C - STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON NTStatus = 0xC01E034D - STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE NTStatus = 0xC01E034E - STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE NTStatus = 0xC01E034F - STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS NTStatus = 0xC01E0350 - STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED NTStatus = 0x401E0351 - STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING NTStatus = 0xC01E0352 - STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED NTStatus = 0xC01E0353 - STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS NTStatus = 0xC01E0354 - STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT NTStatus = 0xC01E0355 - STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM NTStatus = 0xC01E0356 - STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN NTStatus = 0xC01E0357 - STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT NTStatus = 0xC01E0358 - STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED NTStatus = 0xC01E0359 - STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION NTStatus = 0xC01E035A - STATUS_GRAPHICS_INVALID_CLIENT_TYPE NTStatus = 0xC01E035B - STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET NTStatus = 0xC01E035C - STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED NTStatus = 0xC01E0400 - STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED NTStatus = 0xC01E0401 - STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS NTStatus = 0x401E042F - STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER NTStatus = 0xC01E0430 - STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED NTStatus = 0xC01E0431 - STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED NTStatus = 0xC01E0432 - STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY NTStatus = 0xC01E0433 - STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED NTStatus = 0xC01E0434 - STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON NTStatus = 0xC01E0435 - STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE NTStatus = 0xC01E0436 - STATUS_GRAPHICS_LEADLINK_START_DEFERRED NTStatus = 0x401E0437 - STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER NTStatus = 0xC01E0438 - STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY NTStatus = 0x401E0439 - STATUS_GRAPHICS_START_DEFERRED NTStatus = 0x401E043A - STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED NTStatus = 0xC01E043B - STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS NTStatus = 0x401E043C - STATUS_GRAPHICS_OPM_NOT_SUPPORTED NTStatus = 0xC01E0500 - STATUS_GRAPHICS_COPP_NOT_SUPPORTED NTStatus = 0xC01E0501 - STATUS_GRAPHICS_UAB_NOT_SUPPORTED NTStatus = 0xC01E0502 - STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS NTStatus = 0xC01E0503 - STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST NTStatus = 0xC01E0505 - STATUS_GRAPHICS_OPM_INTERNAL_ERROR NTStatus = 0xC01E050B - STATUS_GRAPHICS_OPM_INVALID_HANDLE NTStatus = 0xC01E050C - STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH NTStatus = 0xC01E050E - STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED NTStatus = 0xC01E050F - STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED NTStatus = 0xC01E0510 - STATUS_GRAPHICS_PVP_HFS_FAILED NTStatus = 0xC01E0511 - STATUS_GRAPHICS_OPM_INVALID_SRM NTStatus = 0xC01E0512 - STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP NTStatus = 0xC01E0513 - STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP NTStatus = 0xC01E0514 - STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA NTStatus = 0xC01E0515 - STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET NTStatus = 0xC01E0516 - STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH NTStatus = 0xC01E0517 - STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE NTStatus = 0xC01E0518 - STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS NTStatus = 0xC01E051A - STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS NTStatus = 0xC01E051C - STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST NTStatus = 0xC01E051D - STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR NTStatus = 0xC01E051E - STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS NTStatus = 0xC01E051F - STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED NTStatus = 0xC01E0520 - STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST NTStatus = 0xC01E0521 - STATUS_GRAPHICS_I2C_NOT_SUPPORTED NTStatus = 0xC01E0580 - STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST NTStatus = 0xC01E0581 - STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA NTStatus = 0xC01E0582 - STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA NTStatus = 0xC01E0583 - STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED NTStatus = 0xC01E0584 - STATUS_GRAPHICS_DDCCI_INVALID_DATA NTStatus = 0xC01E0585 - STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE NTStatus = 0xC01E0586 - STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING NTStatus = 0xC01E0587 - STATUS_GRAPHICS_MCA_INTERNAL_ERROR NTStatus = 0xC01E0588 - STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND NTStatus = 0xC01E0589 - STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH NTStatus = 0xC01E058A - STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM NTStatus = 0xC01E058B - STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE NTStatus = 0xC01E058C - STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS NTStatus = 0xC01E058D - STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED NTStatus = 0xC01E05E0 - STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME NTStatus = 0xC01E05E1 - STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP NTStatus = 0xC01E05E2 - STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED NTStatus = 0xC01E05E3 - STATUS_GRAPHICS_INVALID_POINTER NTStatus = 0xC01E05E4 - STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE NTStatus = 0xC01E05E5 - STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL NTStatus = 0xC01E05E6 - STATUS_GRAPHICS_INTERNAL_ERROR NTStatus = 0xC01E05E7 - STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS NTStatus = 0xC01E05E8 - STATUS_FVE_LOCKED_VOLUME NTStatus = 0xC0210000 - STATUS_FVE_NOT_ENCRYPTED NTStatus = 0xC0210001 - STATUS_FVE_BAD_INFORMATION NTStatus = 0xC0210002 - STATUS_FVE_TOO_SMALL NTStatus = 0xC0210003 - STATUS_FVE_FAILED_WRONG_FS NTStatus = 0xC0210004 - STATUS_FVE_BAD_PARTITION_SIZE NTStatus = 0xC0210005 - STATUS_FVE_FS_NOT_EXTENDED NTStatus = 0xC0210006 - STATUS_FVE_FS_MOUNTED NTStatus = 0xC0210007 - STATUS_FVE_NO_LICENSE NTStatus = 0xC0210008 - STATUS_FVE_ACTION_NOT_ALLOWED NTStatus = 0xC0210009 - STATUS_FVE_BAD_DATA NTStatus = 0xC021000A - STATUS_FVE_VOLUME_NOT_BOUND NTStatus = 0xC021000B - STATUS_FVE_NOT_DATA_VOLUME NTStatus = 0xC021000C - STATUS_FVE_CONV_READ_ERROR NTStatus = 0xC021000D - STATUS_FVE_CONV_WRITE_ERROR NTStatus = 0xC021000E - STATUS_FVE_OVERLAPPED_UPDATE NTStatus = 0xC021000F - STATUS_FVE_FAILED_SECTOR_SIZE NTStatus = 0xC0210010 - STATUS_FVE_FAILED_AUTHENTICATION NTStatus = 0xC0210011 - STATUS_FVE_NOT_OS_VOLUME NTStatus = 0xC0210012 - STATUS_FVE_KEYFILE_NOT_FOUND NTStatus = 0xC0210013 - STATUS_FVE_KEYFILE_INVALID NTStatus = 0xC0210014 - STATUS_FVE_KEYFILE_NO_VMK NTStatus = 0xC0210015 - STATUS_FVE_TPM_DISABLED NTStatus = 0xC0210016 - STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO NTStatus = 0xC0210017 - STATUS_FVE_TPM_INVALID_PCR NTStatus = 0xC0210018 - STATUS_FVE_TPM_NO_VMK NTStatus = 0xC0210019 - STATUS_FVE_PIN_INVALID NTStatus = 0xC021001A - STATUS_FVE_AUTH_INVALID_APPLICATION NTStatus = 0xC021001B - STATUS_FVE_AUTH_INVALID_CONFIG NTStatus = 0xC021001C - STATUS_FVE_DEBUGGER_ENABLED NTStatus = 0xC021001D - STATUS_FVE_DRY_RUN_FAILED NTStatus = 0xC021001E - STATUS_FVE_BAD_METADATA_POINTER NTStatus = 0xC021001F - STATUS_FVE_OLD_METADATA_COPY NTStatus = 0xC0210020 - STATUS_FVE_REBOOT_REQUIRED NTStatus = 0xC0210021 - STATUS_FVE_RAW_ACCESS NTStatus = 0xC0210022 - STATUS_FVE_RAW_BLOCKED NTStatus = 0xC0210023 - STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY NTStatus = 0xC0210024 - STATUS_FVE_MOR_FAILED NTStatus = 0xC0210025 - STATUS_FVE_NO_FEATURE_LICENSE NTStatus = 0xC0210026 - STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED NTStatus = 0xC0210027 - STATUS_FVE_CONV_RECOVERY_FAILED NTStatus = 0xC0210028 - STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG NTStatus = 0xC0210029 - STATUS_FVE_INVALID_DATUM_TYPE NTStatus = 0xC021002A - STATUS_FVE_VOLUME_TOO_SMALL NTStatus = 0xC0210030 - STATUS_FVE_ENH_PIN_INVALID NTStatus = 0xC0210031 - STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210032 - STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210033 - STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK NTStatus = 0xC0210034 - STATUS_FVE_NOT_ALLOWED_ON_CLUSTER NTStatus = 0xC0210035 - STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING NTStatus = 0xC0210036 - STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE NTStatus = 0xC0210037 - STATUS_FVE_EDRIVE_DRY_RUN_FAILED NTStatus = 0xC0210038 - STATUS_FVE_SECUREBOOT_DISABLED NTStatus = 0xC0210039 - STATUS_FVE_SECUREBOOT_CONFIG_CHANGE NTStatus = 0xC021003A - STATUS_FVE_DEVICE_LOCKEDOUT NTStatus = 0xC021003B - STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT NTStatus = 0xC021003C - STATUS_FVE_NOT_DE_VOLUME NTStatus = 0xC021003D - STATUS_FVE_PROTECTION_DISABLED NTStatus = 0xC021003E - STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED NTStatus = 0xC021003F - STATUS_FVE_OSV_KSR_NOT_ALLOWED NTStatus = 0xC0210040 - STATUS_FWP_CALLOUT_NOT_FOUND NTStatus = 0xC0220001 - STATUS_FWP_CONDITION_NOT_FOUND NTStatus = 0xC0220002 - STATUS_FWP_FILTER_NOT_FOUND NTStatus = 0xC0220003 - STATUS_FWP_LAYER_NOT_FOUND NTStatus = 0xC0220004 - STATUS_FWP_PROVIDER_NOT_FOUND NTStatus = 0xC0220005 - STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND NTStatus = 0xC0220006 - STATUS_FWP_SUBLAYER_NOT_FOUND NTStatus = 0xC0220007 - STATUS_FWP_NOT_FOUND NTStatus = 0xC0220008 - STATUS_FWP_ALREADY_EXISTS NTStatus = 0xC0220009 - STATUS_FWP_IN_USE NTStatus = 0xC022000A - STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS NTStatus = 0xC022000B - STATUS_FWP_WRONG_SESSION NTStatus = 0xC022000C - STATUS_FWP_NO_TXN_IN_PROGRESS NTStatus = 0xC022000D - STATUS_FWP_TXN_IN_PROGRESS NTStatus = 0xC022000E - STATUS_FWP_TXN_ABORTED NTStatus = 0xC022000F - STATUS_FWP_SESSION_ABORTED NTStatus = 0xC0220010 - STATUS_FWP_INCOMPATIBLE_TXN NTStatus = 0xC0220011 - STATUS_FWP_TIMEOUT NTStatus = 0xC0220012 - STATUS_FWP_NET_EVENTS_DISABLED NTStatus = 0xC0220013 - STATUS_FWP_INCOMPATIBLE_LAYER NTStatus = 0xC0220014 - STATUS_FWP_KM_CLIENTS_ONLY NTStatus = 0xC0220015 - STATUS_FWP_LIFETIME_MISMATCH NTStatus = 0xC0220016 - STATUS_FWP_BUILTIN_OBJECT NTStatus = 0xC0220017 - STATUS_FWP_TOO_MANY_CALLOUTS NTStatus = 0xC0220018 - STATUS_FWP_NOTIFICATION_DROPPED NTStatus = 0xC0220019 - STATUS_FWP_TRAFFIC_MISMATCH NTStatus = 0xC022001A - STATUS_FWP_INCOMPATIBLE_SA_STATE NTStatus = 0xC022001B - STATUS_FWP_NULL_POINTER NTStatus = 0xC022001C - STATUS_FWP_INVALID_ENUMERATOR NTStatus = 0xC022001D - STATUS_FWP_INVALID_FLAGS NTStatus = 0xC022001E - STATUS_FWP_INVALID_NET_MASK NTStatus = 0xC022001F - STATUS_FWP_INVALID_RANGE NTStatus = 0xC0220020 - STATUS_FWP_INVALID_INTERVAL NTStatus = 0xC0220021 - STATUS_FWP_ZERO_LENGTH_ARRAY NTStatus = 0xC0220022 - STATUS_FWP_NULL_DISPLAY_NAME NTStatus = 0xC0220023 - STATUS_FWP_INVALID_ACTION_TYPE NTStatus = 0xC0220024 - STATUS_FWP_INVALID_WEIGHT NTStatus = 0xC0220025 - STATUS_FWP_MATCH_TYPE_MISMATCH NTStatus = 0xC0220026 - STATUS_FWP_TYPE_MISMATCH NTStatus = 0xC0220027 - STATUS_FWP_OUT_OF_BOUNDS NTStatus = 0xC0220028 - STATUS_FWP_RESERVED NTStatus = 0xC0220029 - STATUS_FWP_DUPLICATE_CONDITION NTStatus = 0xC022002A - STATUS_FWP_DUPLICATE_KEYMOD NTStatus = 0xC022002B - STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002C - STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER NTStatus = 0xC022002D - STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002E - STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT NTStatus = 0xC022002F - STATUS_FWP_INCOMPATIBLE_AUTH_METHOD NTStatus = 0xC0220030 - STATUS_FWP_INCOMPATIBLE_DH_GROUP NTStatus = 0xC0220031 - STATUS_FWP_EM_NOT_SUPPORTED NTStatus = 0xC0220032 - STATUS_FWP_NEVER_MATCH NTStatus = 0xC0220033 - STATUS_FWP_PROVIDER_CONTEXT_MISMATCH NTStatus = 0xC0220034 - STATUS_FWP_INVALID_PARAMETER NTStatus = 0xC0220035 - STATUS_FWP_TOO_MANY_SUBLAYERS NTStatus = 0xC0220036 - STATUS_FWP_CALLOUT_NOTIFICATION_FAILED NTStatus = 0xC0220037 - STATUS_FWP_INVALID_AUTH_TRANSFORM NTStatus = 0xC0220038 - STATUS_FWP_INVALID_CIPHER_TRANSFORM NTStatus = 0xC0220039 - STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM NTStatus = 0xC022003A - STATUS_FWP_INVALID_TRANSFORM_COMBINATION NTStatus = 0xC022003B - STATUS_FWP_DUPLICATE_AUTH_METHOD NTStatus = 0xC022003C - STATUS_FWP_INVALID_TUNNEL_ENDPOINT NTStatus = 0xC022003D - STATUS_FWP_L2_DRIVER_NOT_READY NTStatus = 0xC022003E - STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED NTStatus = 0xC022003F - STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL NTStatus = 0xC0220040 - STATUS_FWP_CONNECTIONS_DISABLED NTStatus = 0xC0220041 - STATUS_FWP_INVALID_DNS_NAME NTStatus = 0xC0220042 - STATUS_FWP_STILL_ON NTStatus = 0xC0220043 - STATUS_FWP_IKEEXT_NOT_RUNNING NTStatus = 0xC0220044 - STATUS_FWP_TCPIP_NOT_READY NTStatus = 0xC0220100 - STATUS_FWP_INJECT_HANDLE_CLOSING NTStatus = 0xC0220101 - STATUS_FWP_INJECT_HANDLE_STALE NTStatus = 0xC0220102 - STATUS_FWP_CANNOT_PEND NTStatus = 0xC0220103 - STATUS_FWP_DROP_NOICMP NTStatus = 0xC0220104 - STATUS_NDIS_CLOSING NTStatus = 0xC0230002 - STATUS_NDIS_BAD_VERSION NTStatus = 0xC0230004 - STATUS_NDIS_BAD_CHARACTERISTICS NTStatus = 0xC0230005 - STATUS_NDIS_ADAPTER_NOT_FOUND NTStatus = 0xC0230006 - STATUS_NDIS_OPEN_FAILED NTStatus = 0xC0230007 - STATUS_NDIS_DEVICE_FAILED NTStatus = 0xC0230008 - STATUS_NDIS_MULTICAST_FULL NTStatus = 0xC0230009 - STATUS_NDIS_MULTICAST_EXISTS NTStatus = 0xC023000A - STATUS_NDIS_MULTICAST_NOT_FOUND NTStatus = 0xC023000B - STATUS_NDIS_REQUEST_ABORTED NTStatus = 0xC023000C - STATUS_NDIS_RESET_IN_PROGRESS NTStatus = 0xC023000D - STATUS_NDIS_NOT_SUPPORTED NTStatus = 0xC02300BB - STATUS_NDIS_INVALID_PACKET NTStatus = 0xC023000F - STATUS_NDIS_ADAPTER_NOT_READY NTStatus = 0xC0230011 - STATUS_NDIS_INVALID_LENGTH NTStatus = 0xC0230014 - STATUS_NDIS_INVALID_DATA NTStatus = 0xC0230015 - STATUS_NDIS_BUFFER_TOO_SHORT NTStatus = 0xC0230016 - STATUS_NDIS_INVALID_OID NTStatus = 0xC0230017 - STATUS_NDIS_ADAPTER_REMOVED NTStatus = 0xC0230018 - STATUS_NDIS_UNSUPPORTED_MEDIA NTStatus = 0xC0230019 - STATUS_NDIS_GROUP_ADDRESS_IN_USE NTStatus = 0xC023001A - STATUS_NDIS_FILE_NOT_FOUND NTStatus = 0xC023001B - STATUS_NDIS_ERROR_READING_FILE NTStatus = 0xC023001C - STATUS_NDIS_ALREADY_MAPPED NTStatus = 0xC023001D - STATUS_NDIS_RESOURCE_CONFLICT NTStatus = 0xC023001E - STATUS_NDIS_MEDIA_DISCONNECTED NTStatus = 0xC023001F - STATUS_NDIS_INVALID_ADDRESS NTStatus = 0xC0230022 - STATUS_NDIS_INVALID_DEVICE_REQUEST NTStatus = 0xC0230010 - STATUS_NDIS_PAUSED NTStatus = 0xC023002A - STATUS_NDIS_INTERFACE_NOT_FOUND NTStatus = 0xC023002B - STATUS_NDIS_UNSUPPORTED_REVISION NTStatus = 0xC023002C - STATUS_NDIS_INVALID_PORT NTStatus = 0xC023002D - STATUS_NDIS_INVALID_PORT_STATE NTStatus = 0xC023002E - STATUS_NDIS_LOW_POWER_STATE NTStatus = 0xC023002F - STATUS_NDIS_REINIT_REQUIRED NTStatus = 0xC0230030 - STATUS_NDIS_NO_QUEUES NTStatus = 0xC0230031 - STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED NTStatus = 0xC0232000 - STATUS_NDIS_DOT11_MEDIA_IN_USE NTStatus = 0xC0232001 - STATUS_NDIS_DOT11_POWER_STATE_INVALID NTStatus = 0xC0232002 - STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL NTStatus = 0xC0232003 - STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL NTStatus = 0xC0232004 - STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232005 - STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232006 - STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED NTStatus = 0xC0232007 - STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED NTStatus = 0xC0232008 - STATUS_NDIS_INDICATION_REQUIRED NTStatus = 0x40230001 - STATUS_NDIS_OFFLOAD_POLICY NTStatus = 0xC023100F - STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED NTStatus = 0xC0231012 - STATUS_NDIS_OFFLOAD_PATH_REJECTED NTStatus = 0xC0231013 - STATUS_TPM_ERROR_MASK NTStatus = 0xC0290000 - STATUS_TPM_AUTHFAIL NTStatus = 0xC0290001 - STATUS_TPM_BADINDEX NTStatus = 0xC0290002 - STATUS_TPM_BAD_PARAMETER NTStatus = 0xC0290003 - STATUS_TPM_AUDITFAILURE NTStatus = 0xC0290004 - STATUS_TPM_CLEAR_DISABLED NTStatus = 0xC0290005 - STATUS_TPM_DEACTIVATED NTStatus = 0xC0290006 - STATUS_TPM_DISABLED NTStatus = 0xC0290007 - STATUS_TPM_DISABLED_CMD NTStatus = 0xC0290008 - STATUS_TPM_FAIL NTStatus = 0xC0290009 - STATUS_TPM_BAD_ORDINAL NTStatus = 0xC029000A - STATUS_TPM_INSTALL_DISABLED NTStatus = 0xC029000B - STATUS_TPM_INVALID_KEYHANDLE NTStatus = 0xC029000C - STATUS_TPM_KEYNOTFOUND NTStatus = 0xC029000D - STATUS_TPM_INAPPROPRIATE_ENC NTStatus = 0xC029000E - STATUS_TPM_MIGRATEFAIL NTStatus = 0xC029000F - STATUS_TPM_INVALID_PCR_INFO NTStatus = 0xC0290010 - STATUS_TPM_NOSPACE NTStatus = 0xC0290011 - STATUS_TPM_NOSRK NTStatus = 0xC0290012 - STATUS_TPM_NOTSEALED_BLOB NTStatus = 0xC0290013 - STATUS_TPM_OWNER_SET NTStatus = 0xC0290014 - STATUS_TPM_RESOURCES NTStatus = 0xC0290015 - STATUS_TPM_SHORTRANDOM NTStatus = 0xC0290016 - STATUS_TPM_SIZE NTStatus = 0xC0290017 - STATUS_TPM_WRONGPCRVAL NTStatus = 0xC0290018 - STATUS_TPM_BAD_PARAM_SIZE NTStatus = 0xC0290019 - STATUS_TPM_SHA_THREAD NTStatus = 0xC029001A - STATUS_TPM_SHA_ERROR NTStatus = 0xC029001B - STATUS_TPM_FAILEDSELFTEST NTStatus = 0xC029001C - STATUS_TPM_AUTH2FAIL NTStatus = 0xC029001D - STATUS_TPM_BADTAG NTStatus = 0xC029001E - STATUS_TPM_IOERROR NTStatus = 0xC029001F - STATUS_TPM_ENCRYPT_ERROR NTStatus = 0xC0290020 - STATUS_TPM_DECRYPT_ERROR NTStatus = 0xC0290021 - STATUS_TPM_INVALID_AUTHHANDLE NTStatus = 0xC0290022 - STATUS_TPM_NO_ENDORSEMENT NTStatus = 0xC0290023 - STATUS_TPM_INVALID_KEYUSAGE NTStatus = 0xC0290024 - STATUS_TPM_WRONG_ENTITYTYPE NTStatus = 0xC0290025 - STATUS_TPM_INVALID_POSTINIT NTStatus = 0xC0290026 - STATUS_TPM_INAPPROPRIATE_SIG NTStatus = 0xC0290027 - STATUS_TPM_BAD_KEY_PROPERTY NTStatus = 0xC0290028 - STATUS_TPM_BAD_MIGRATION NTStatus = 0xC0290029 - STATUS_TPM_BAD_SCHEME NTStatus = 0xC029002A - STATUS_TPM_BAD_DATASIZE NTStatus = 0xC029002B - STATUS_TPM_BAD_MODE NTStatus = 0xC029002C - STATUS_TPM_BAD_PRESENCE NTStatus = 0xC029002D - STATUS_TPM_BAD_VERSION NTStatus = 0xC029002E - STATUS_TPM_NO_WRAP_TRANSPORT NTStatus = 0xC029002F - STATUS_TPM_AUDITFAIL_UNSUCCESSFUL NTStatus = 0xC0290030 - STATUS_TPM_AUDITFAIL_SUCCESSFUL NTStatus = 0xC0290031 - STATUS_TPM_NOTRESETABLE NTStatus = 0xC0290032 - STATUS_TPM_NOTLOCAL NTStatus = 0xC0290033 - STATUS_TPM_BAD_TYPE NTStatus = 0xC0290034 - STATUS_TPM_INVALID_RESOURCE NTStatus = 0xC0290035 - STATUS_TPM_NOTFIPS NTStatus = 0xC0290036 - STATUS_TPM_INVALID_FAMILY NTStatus = 0xC0290037 - STATUS_TPM_NO_NV_PERMISSION NTStatus = 0xC0290038 - STATUS_TPM_REQUIRES_SIGN NTStatus = 0xC0290039 - STATUS_TPM_KEY_NOTSUPPORTED NTStatus = 0xC029003A - STATUS_TPM_AUTH_CONFLICT NTStatus = 0xC029003B - STATUS_TPM_AREA_LOCKED NTStatus = 0xC029003C - STATUS_TPM_BAD_LOCALITY NTStatus = 0xC029003D - STATUS_TPM_READ_ONLY NTStatus = 0xC029003E - STATUS_TPM_PER_NOWRITE NTStatus = 0xC029003F - STATUS_TPM_FAMILYCOUNT NTStatus = 0xC0290040 - STATUS_TPM_WRITE_LOCKED NTStatus = 0xC0290041 - STATUS_TPM_BAD_ATTRIBUTES NTStatus = 0xC0290042 - STATUS_TPM_INVALID_STRUCTURE NTStatus = 0xC0290043 - STATUS_TPM_KEY_OWNER_CONTROL NTStatus = 0xC0290044 - STATUS_TPM_BAD_COUNTER NTStatus = 0xC0290045 - STATUS_TPM_NOT_FULLWRITE NTStatus = 0xC0290046 - STATUS_TPM_CONTEXT_GAP NTStatus = 0xC0290047 - STATUS_TPM_MAXNVWRITES NTStatus = 0xC0290048 - STATUS_TPM_NOOPERATOR NTStatus = 0xC0290049 - STATUS_TPM_RESOURCEMISSING NTStatus = 0xC029004A - STATUS_TPM_DELEGATE_LOCK NTStatus = 0xC029004B - STATUS_TPM_DELEGATE_FAMILY NTStatus = 0xC029004C - STATUS_TPM_DELEGATE_ADMIN NTStatus = 0xC029004D - STATUS_TPM_TRANSPORT_NOTEXCLUSIVE NTStatus = 0xC029004E - STATUS_TPM_OWNER_CONTROL NTStatus = 0xC029004F - STATUS_TPM_DAA_RESOURCES NTStatus = 0xC0290050 - STATUS_TPM_DAA_INPUT_DATA0 NTStatus = 0xC0290051 - STATUS_TPM_DAA_INPUT_DATA1 NTStatus = 0xC0290052 - STATUS_TPM_DAA_ISSUER_SETTINGS NTStatus = 0xC0290053 - STATUS_TPM_DAA_TPM_SETTINGS NTStatus = 0xC0290054 - STATUS_TPM_DAA_STAGE NTStatus = 0xC0290055 - STATUS_TPM_DAA_ISSUER_VALIDITY NTStatus = 0xC0290056 - STATUS_TPM_DAA_WRONG_W NTStatus = 0xC0290057 - STATUS_TPM_BAD_HANDLE NTStatus = 0xC0290058 - STATUS_TPM_BAD_DELEGATE NTStatus = 0xC0290059 - STATUS_TPM_BADCONTEXT NTStatus = 0xC029005A - STATUS_TPM_TOOMANYCONTEXTS NTStatus = 0xC029005B - STATUS_TPM_MA_TICKET_SIGNATURE NTStatus = 0xC029005C - STATUS_TPM_MA_DESTINATION NTStatus = 0xC029005D - STATUS_TPM_MA_SOURCE NTStatus = 0xC029005E - STATUS_TPM_MA_AUTHORITY NTStatus = 0xC029005F - STATUS_TPM_PERMANENTEK NTStatus = 0xC0290061 - STATUS_TPM_BAD_SIGNATURE NTStatus = 0xC0290062 - STATUS_TPM_NOCONTEXTSPACE NTStatus = 0xC0290063 - STATUS_TPM_20_E_ASYMMETRIC NTStatus = 0xC0290081 - STATUS_TPM_20_E_ATTRIBUTES NTStatus = 0xC0290082 - STATUS_TPM_20_E_HASH NTStatus = 0xC0290083 - STATUS_TPM_20_E_VALUE NTStatus = 0xC0290084 - STATUS_TPM_20_E_HIERARCHY NTStatus = 0xC0290085 - STATUS_TPM_20_E_KEY_SIZE NTStatus = 0xC0290087 - STATUS_TPM_20_E_MGF NTStatus = 0xC0290088 - STATUS_TPM_20_E_MODE NTStatus = 0xC0290089 - STATUS_TPM_20_E_TYPE NTStatus = 0xC029008A - STATUS_TPM_20_E_HANDLE NTStatus = 0xC029008B - STATUS_TPM_20_E_KDF NTStatus = 0xC029008C - STATUS_TPM_20_E_RANGE NTStatus = 0xC029008D - STATUS_TPM_20_E_AUTH_FAIL NTStatus = 0xC029008E - STATUS_TPM_20_E_NONCE NTStatus = 0xC029008F - STATUS_TPM_20_E_PP NTStatus = 0xC0290090 - STATUS_TPM_20_E_SCHEME NTStatus = 0xC0290092 - STATUS_TPM_20_E_SIZE NTStatus = 0xC0290095 - STATUS_TPM_20_E_SYMMETRIC NTStatus = 0xC0290096 - STATUS_TPM_20_E_TAG NTStatus = 0xC0290097 - STATUS_TPM_20_E_SELECTOR NTStatus = 0xC0290098 - STATUS_TPM_20_E_INSUFFICIENT NTStatus = 0xC029009A - STATUS_TPM_20_E_SIGNATURE NTStatus = 0xC029009B - STATUS_TPM_20_E_KEY NTStatus = 0xC029009C - STATUS_TPM_20_E_POLICY_FAIL NTStatus = 0xC029009D - STATUS_TPM_20_E_INTEGRITY NTStatus = 0xC029009F - STATUS_TPM_20_E_TICKET NTStatus = 0xC02900A0 - STATUS_TPM_20_E_RESERVED_BITS NTStatus = 0xC02900A1 - STATUS_TPM_20_E_BAD_AUTH NTStatus = 0xC02900A2 - STATUS_TPM_20_E_EXPIRED NTStatus = 0xC02900A3 - STATUS_TPM_20_E_POLICY_CC NTStatus = 0xC02900A4 - STATUS_TPM_20_E_BINDING NTStatus = 0xC02900A5 - STATUS_TPM_20_E_CURVE NTStatus = 0xC02900A6 - STATUS_TPM_20_E_ECC_POINT NTStatus = 0xC02900A7 - STATUS_TPM_20_E_INITIALIZE NTStatus = 0xC0290100 - STATUS_TPM_20_E_FAILURE NTStatus = 0xC0290101 - STATUS_TPM_20_E_SEQUENCE NTStatus = 0xC0290103 - STATUS_TPM_20_E_PRIVATE NTStatus = 0xC029010B - STATUS_TPM_20_E_HMAC NTStatus = 0xC0290119 - STATUS_TPM_20_E_DISABLED NTStatus = 0xC0290120 - STATUS_TPM_20_E_EXCLUSIVE NTStatus = 0xC0290121 - STATUS_TPM_20_E_ECC_CURVE NTStatus = 0xC0290123 - STATUS_TPM_20_E_AUTH_TYPE NTStatus = 0xC0290124 - STATUS_TPM_20_E_AUTH_MISSING NTStatus = 0xC0290125 - STATUS_TPM_20_E_POLICY NTStatus = 0xC0290126 - STATUS_TPM_20_E_PCR NTStatus = 0xC0290127 - STATUS_TPM_20_E_PCR_CHANGED NTStatus = 0xC0290128 - STATUS_TPM_20_E_UPGRADE NTStatus = 0xC029012D - STATUS_TPM_20_E_TOO_MANY_CONTEXTS NTStatus = 0xC029012E - STATUS_TPM_20_E_AUTH_UNAVAILABLE NTStatus = 0xC029012F - STATUS_TPM_20_E_REBOOT NTStatus = 0xC0290130 - STATUS_TPM_20_E_UNBALANCED NTStatus = 0xC0290131 - STATUS_TPM_20_E_COMMAND_SIZE NTStatus = 0xC0290142 - STATUS_TPM_20_E_COMMAND_CODE NTStatus = 0xC0290143 - STATUS_TPM_20_E_AUTHSIZE NTStatus = 0xC0290144 - STATUS_TPM_20_E_AUTH_CONTEXT NTStatus = 0xC0290145 - STATUS_TPM_20_E_NV_RANGE NTStatus = 0xC0290146 - STATUS_TPM_20_E_NV_SIZE NTStatus = 0xC0290147 - STATUS_TPM_20_E_NV_LOCKED NTStatus = 0xC0290148 - STATUS_TPM_20_E_NV_AUTHORIZATION NTStatus = 0xC0290149 - STATUS_TPM_20_E_NV_UNINITIALIZED NTStatus = 0xC029014A - STATUS_TPM_20_E_NV_SPACE NTStatus = 0xC029014B - STATUS_TPM_20_E_NV_DEFINED NTStatus = 0xC029014C - STATUS_TPM_20_E_BAD_CONTEXT NTStatus = 0xC0290150 - STATUS_TPM_20_E_CPHASH NTStatus = 0xC0290151 - STATUS_TPM_20_E_PARENT NTStatus = 0xC0290152 - STATUS_TPM_20_E_NEEDS_TEST NTStatus = 0xC0290153 - STATUS_TPM_20_E_NO_RESULT NTStatus = 0xC0290154 - STATUS_TPM_20_E_SENSITIVE NTStatus = 0xC0290155 - STATUS_TPM_COMMAND_BLOCKED NTStatus = 0xC0290400 - STATUS_TPM_INVALID_HANDLE NTStatus = 0xC0290401 - STATUS_TPM_DUPLICATE_VHANDLE NTStatus = 0xC0290402 - STATUS_TPM_EMBEDDED_COMMAND_BLOCKED NTStatus = 0xC0290403 - STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED NTStatus = 0xC0290404 - STATUS_TPM_RETRY NTStatus = 0xC0290800 - STATUS_TPM_NEEDS_SELFTEST NTStatus = 0xC0290801 - STATUS_TPM_DOING_SELFTEST NTStatus = 0xC0290802 - STATUS_TPM_DEFEND_LOCK_RUNNING NTStatus = 0xC0290803 - STATUS_TPM_COMMAND_CANCELED NTStatus = 0xC0291001 - STATUS_TPM_TOO_MANY_CONTEXTS NTStatus = 0xC0291002 - STATUS_TPM_NOT_FOUND NTStatus = 0xC0291003 - STATUS_TPM_ACCESS_DENIED NTStatus = 0xC0291004 - STATUS_TPM_INSUFFICIENT_BUFFER NTStatus = 0xC0291005 - STATUS_TPM_PPI_FUNCTION_UNSUPPORTED NTStatus = 0xC0291006 - STATUS_PCP_ERROR_MASK NTStatus = 0xC0292000 - STATUS_PCP_DEVICE_NOT_READY NTStatus = 0xC0292001 - STATUS_PCP_INVALID_HANDLE NTStatus = 0xC0292002 - STATUS_PCP_INVALID_PARAMETER NTStatus = 0xC0292003 - STATUS_PCP_FLAG_NOT_SUPPORTED NTStatus = 0xC0292004 - STATUS_PCP_NOT_SUPPORTED NTStatus = 0xC0292005 - STATUS_PCP_BUFFER_TOO_SMALL NTStatus = 0xC0292006 - STATUS_PCP_INTERNAL_ERROR NTStatus = 0xC0292007 - STATUS_PCP_AUTHENTICATION_FAILED NTStatus = 0xC0292008 - STATUS_PCP_AUTHENTICATION_IGNORED NTStatus = 0xC0292009 - STATUS_PCP_POLICY_NOT_FOUND NTStatus = 0xC029200A - STATUS_PCP_PROFILE_NOT_FOUND NTStatus = 0xC029200B - STATUS_PCP_VALIDATION_FAILED NTStatus = 0xC029200C - STATUS_PCP_DEVICE_NOT_FOUND NTStatus = 0xC029200D - STATUS_PCP_WRONG_PARENT NTStatus = 0xC029200E - STATUS_PCP_KEY_NOT_LOADED NTStatus = 0xC029200F - STATUS_PCP_NO_KEY_CERTIFICATION NTStatus = 0xC0292010 - STATUS_PCP_KEY_NOT_FINALIZED NTStatus = 0xC0292011 - STATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET NTStatus = 0xC0292012 - STATUS_PCP_NOT_PCR_BOUND NTStatus = 0xC0292013 - STATUS_PCP_KEY_ALREADY_FINALIZED NTStatus = 0xC0292014 - STATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED NTStatus = 0xC0292015 - STATUS_PCP_KEY_USAGE_POLICY_INVALID NTStatus = 0xC0292016 - STATUS_PCP_SOFT_KEY_ERROR NTStatus = 0xC0292017 - STATUS_PCP_KEY_NOT_AUTHENTICATED NTStatus = 0xC0292018 - STATUS_PCP_KEY_NOT_AIK NTStatus = 0xC0292019 - STATUS_PCP_KEY_NOT_SIGNING_KEY NTStatus = 0xC029201A - STATUS_PCP_LOCKED_OUT NTStatus = 0xC029201B - STATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED NTStatus = 0xC029201C - STATUS_PCP_TPM_VERSION_NOT_SUPPORTED NTStatus = 0xC029201D - STATUS_PCP_BUFFER_LENGTH_MISMATCH NTStatus = 0xC029201E - STATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED NTStatus = 0xC029201F - STATUS_PCP_TICKET_MISSING NTStatus = 0xC0292020 - STATUS_PCP_RAW_POLICY_NOT_SUPPORTED NTStatus = 0xC0292021 - STATUS_PCP_KEY_HANDLE_INVALIDATED NTStatus = 0xC0292022 - STATUS_PCP_UNSUPPORTED_PSS_SALT NTStatus = 0x40292023 - STATUS_RTPM_CONTEXT_CONTINUE NTStatus = 0x00293000 - STATUS_RTPM_CONTEXT_COMPLETE NTStatus = 0x00293001 - STATUS_RTPM_NO_RESULT NTStatus = 0xC0293002 - STATUS_RTPM_PCR_READ_INCOMPLETE NTStatus = 0xC0293003 - STATUS_RTPM_INVALID_CONTEXT NTStatus = 0xC0293004 - STATUS_RTPM_UNSUPPORTED_CMD NTStatus = 0xC0293005 - STATUS_TPM_ZERO_EXHAUST_ENABLED NTStatus = 0xC0294000 - STATUS_HV_INVALID_HYPERCALL_CODE NTStatus = 0xC0350002 - STATUS_HV_INVALID_HYPERCALL_INPUT NTStatus = 0xC0350003 - STATUS_HV_INVALID_ALIGNMENT NTStatus = 0xC0350004 - STATUS_HV_INVALID_PARAMETER NTStatus = 0xC0350005 - STATUS_HV_ACCESS_DENIED NTStatus = 0xC0350006 - STATUS_HV_INVALID_PARTITION_STATE NTStatus = 0xC0350007 - STATUS_HV_OPERATION_DENIED NTStatus = 0xC0350008 - STATUS_HV_UNKNOWN_PROPERTY NTStatus = 0xC0350009 - STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE NTStatus = 0xC035000A - STATUS_HV_INSUFFICIENT_MEMORY NTStatus = 0xC035000B - STATUS_HV_PARTITION_TOO_DEEP NTStatus = 0xC035000C - STATUS_HV_INVALID_PARTITION_ID NTStatus = 0xC035000D - STATUS_HV_INVALID_VP_INDEX NTStatus = 0xC035000E - STATUS_HV_INVALID_PORT_ID NTStatus = 0xC0350011 - STATUS_HV_INVALID_CONNECTION_ID NTStatus = 0xC0350012 - STATUS_HV_INSUFFICIENT_BUFFERS NTStatus = 0xC0350013 - STATUS_HV_NOT_ACKNOWLEDGED NTStatus = 0xC0350014 - STATUS_HV_INVALID_VP_STATE NTStatus = 0xC0350015 - STATUS_HV_ACKNOWLEDGED NTStatus = 0xC0350016 - STATUS_HV_INVALID_SAVE_RESTORE_STATE NTStatus = 0xC0350017 - STATUS_HV_INVALID_SYNIC_STATE NTStatus = 0xC0350018 - STATUS_HV_OBJECT_IN_USE NTStatus = 0xC0350019 - STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO NTStatus = 0xC035001A - STATUS_HV_NO_DATA NTStatus = 0xC035001B - STATUS_HV_INACTIVE NTStatus = 0xC035001C - STATUS_HV_NO_RESOURCES NTStatus = 0xC035001D - STATUS_HV_FEATURE_UNAVAILABLE NTStatus = 0xC035001E - STATUS_HV_INSUFFICIENT_BUFFER NTStatus = 0xC0350033 - STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS NTStatus = 0xC0350038 - STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003C - STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003D - STATUS_HV_PROCESSOR_STARTUP_TIMEOUT NTStatus = 0xC035003E - STATUS_HV_SMX_ENABLED NTStatus = 0xC035003F - STATUS_HV_INVALID_LP_INDEX NTStatus = 0xC0350041 - STATUS_HV_INVALID_REGISTER_VALUE NTStatus = 0xC0350050 - STATUS_HV_INVALID_VTL_STATE NTStatus = 0xC0350051 - STATUS_HV_NX_NOT_DETECTED NTStatus = 0xC0350055 - STATUS_HV_INVALID_DEVICE_ID NTStatus = 0xC0350057 - STATUS_HV_INVALID_DEVICE_STATE NTStatus = 0xC0350058 - STATUS_HV_PENDING_PAGE_REQUESTS NTStatus = 0x00350059 - STATUS_HV_PAGE_REQUEST_INVALID NTStatus = 0xC0350060 - STATUS_HV_INVALID_CPU_GROUP_ID NTStatus = 0xC035006F - STATUS_HV_INVALID_CPU_GROUP_STATE NTStatus = 0xC0350070 - STATUS_HV_OPERATION_FAILED NTStatus = 0xC0350071 - STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE NTStatus = 0xC0350072 - STATUS_HV_INSUFFICIENT_ROOT_MEMORY NTStatus = 0xC0350073 - STATUS_HV_NOT_PRESENT NTStatus = 0xC0351000 - STATUS_VID_DUPLICATE_HANDLER NTStatus = 0xC0370001 - STATUS_VID_TOO_MANY_HANDLERS NTStatus = 0xC0370002 - STATUS_VID_QUEUE_FULL NTStatus = 0xC0370003 - STATUS_VID_HANDLER_NOT_PRESENT NTStatus = 0xC0370004 - STATUS_VID_INVALID_OBJECT_NAME NTStatus = 0xC0370005 - STATUS_VID_PARTITION_NAME_TOO_LONG NTStatus = 0xC0370006 - STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG NTStatus = 0xC0370007 - STATUS_VID_PARTITION_ALREADY_EXISTS NTStatus = 0xC0370008 - STATUS_VID_PARTITION_DOES_NOT_EXIST NTStatus = 0xC0370009 - STATUS_VID_PARTITION_NAME_NOT_FOUND NTStatus = 0xC037000A - STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS NTStatus = 0xC037000B - STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT NTStatus = 0xC037000C - STATUS_VID_MB_STILL_REFERENCED NTStatus = 0xC037000D - STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED NTStatus = 0xC037000E - STATUS_VID_INVALID_NUMA_SETTINGS NTStatus = 0xC037000F - STATUS_VID_INVALID_NUMA_NODE_INDEX NTStatus = 0xC0370010 - STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED NTStatus = 0xC0370011 - STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE NTStatus = 0xC0370012 - STATUS_VID_PAGE_RANGE_OVERFLOW NTStatus = 0xC0370013 - STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE NTStatus = 0xC0370014 - STATUS_VID_INVALID_GPA_RANGE_HANDLE NTStatus = 0xC0370015 - STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE NTStatus = 0xC0370016 - STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED NTStatus = 0xC0370017 - STATUS_VID_INVALID_PPM_HANDLE NTStatus = 0xC0370018 - STATUS_VID_MBPS_ARE_LOCKED NTStatus = 0xC0370019 - STATUS_VID_MESSAGE_QUEUE_CLOSED NTStatus = 0xC037001A - STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED NTStatus = 0xC037001B - STATUS_VID_STOP_PENDING NTStatus = 0xC037001C - STATUS_VID_INVALID_PROCESSOR_STATE NTStatus = 0xC037001D - STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT NTStatus = 0xC037001E - STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED NTStatus = 0xC037001F - STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET NTStatus = 0xC0370020 - STATUS_VID_MMIO_RANGE_DESTROYED NTStatus = 0xC0370021 - STATUS_VID_INVALID_CHILD_GPA_PAGE_SET NTStatus = 0xC0370022 - STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED NTStatus = 0xC0370023 - STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL NTStatus = 0xC0370024 - STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE NTStatus = 0xC0370025 - STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT NTStatus = 0xC0370026 - STATUS_VID_SAVED_STATE_CORRUPT NTStatus = 0xC0370027 - STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM NTStatus = 0xC0370028 - STATUS_VID_SAVED_STATE_INCOMPATIBLE NTStatus = 0xC0370029 - STATUS_VID_VTL_ACCESS_DENIED NTStatus = 0xC037002A - STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED NTStatus = 0x80370001 - STATUS_IPSEC_BAD_SPI NTStatus = 0xC0360001 - STATUS_IPSEC_SA_LIFETIME_EXPIRED NTStatus = 0xC0360002 - STATUS_IPSEC_WRONG_SA NTStatus = 0xC0360003 - STATUS_IPSEC_REPLAY_CHECK_FAILED NTStatus = 0xC0360004 - STATUS_IPSEC_INVALID_PACKET NTStatus = 0xC0360005 - STATUS_IPSEC_INTEGRITY_CHECK_FAILED NTStatus = 0xC0360006 - STATUS_IPSEC_CLEAR_TEXT_DROP NTStatus = 0xC0360007 - STATUS_IPSEC_AUTH_FIREWALL_DROP NTStatus = 0xC0360008 - STATUS_IPSEC_THROTTLE_DROP NTStatus = 0xC0360009 - STATUS_IPSEC_DOSP_BLOCK NTStatus = 0xC0368000 - STATUS_IPSEC_DOSP_RECEIVED_MULTICAST NTStatus = 0xC0368001 - STATUS_IPSEC_DOSP_INVALID_PACKET NTStatus = 0xC0368002 - STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED NTStatus = 0xC0368003 - STATUS_IPSEC_DOSP_MAX_ENTRIES NTStatus = 0xC0368004 - STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED NTStatus = 0xC0368005 - STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES NTStatus = 0xC0368006 - STATUS_VOLMGR_INCOMPLETE_REGENERATION NTStatus = 0x80380001 - STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION NTStatus = 0x80380002 - STATUS_VOLMGR_DATABASE_FULL NTStatus = 0xC0380001 - STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED NTStatus = 0xC0380002 - STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC NTStatus = 0xC0380003 - STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED NTStatus = 0xC0380004 - STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME NTStatus = 0xC0380005 - STATUS_VOLMGR_DISK_DUPLICATE NTStatus = 0xC0380006 - STATUS_VOLMGR_DISK_DYNAMIC NTStatus = 0xC0380007 - STATUS_VOLMGR_DISK_ID_INVALID NTStatus = 0xC0380008 - STATUS_VOLMGR_DISK_INVALID NTStatus = 0xC0380009 - STATUS_VOLMGR_DISK_LAST_VOTER NTStatus = 0xC038000A - STATUS_VOLMGR_DISK_LAYOUT_INVALID NTStatus = 0xC038000B - STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS NTStatus = 0xC038000C - STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED NTStatus = 0xC038000D - STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL NTStatus = 0xC038000E - STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS NTStatus = 0xC038000F - STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS NTStatus = 0xC0380010 - STATUS_VOLMGR_DISK_MISSING NTStatus = 0xC0380011 - STATUS_VOLMGR_DISK_NOT_EMPTY NTStatus = 0xC0380012 - STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE NTStatus = 0xC0380013 - STATUS_VOLMGR_DISK_REVECTORING_FAILED NTStatus = 0xC0380014 - STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID NTStatus = 0xC0380015 - STATUS_VOLMGR_DISK_SET_NOT_CONTAINED NTStatus = 0xC0380016 - STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS NTStatus = 0xC0380017 - STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES NTStatus = 0xC0380018 - STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED NTStatus = 0xC0380019 - STATUS_VOLMGR_EXTENT_ALREADY_USED NTStatus = 0xC038001A - STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS NTStatus = 0xC038001B - STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION NTStatus = 0xC038001C - STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED NTStatus = 0xC038001D - STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION NTStatus = 0xC038001E - STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH NTStatus = 0xC038001F - STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED NTStatus = 0xC0380020 - STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0380021 - STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS NTStatus = 0xC0380022 - STATUS_VOLMGR_MEMBER_IN_SYNC NTStatus = 0xC0380023 - STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE NTStatus = 0xC0380024 - STATUS_VOLMGR_MEMBER_INDEX_INVALID NTStatus = 0xC0380025 - STATUS_VOLMGR_MEMBER_MISSING NTStatus = 0xC0380026 - STATUS_VOLMGR_MEMBER_NOT_DETACHED NTStatus = 0xC0380027 - STATUS_VOLMGR_MEMBER_REGENERATING NTStatus = 0xC0380028 - STATUS_VOLMGR_ALL_DISKS_FAILED NTStatus = 0xC0380029 - STATUS_VOLMGR_NO_REGISTERED_USERS NTStatus = 0xC038002A - STATUS_VOLMGR_NO_SUCH_USER NTStatus = 0xC038002B - STATUS_VOLMGR_NOTIFICATION_RESET NTStatus = 0xC038002C - STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID NTStatus = 0xC038002D - STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID NTStatus = 0xC038002E - STATUS_VOLMGR_PACK_DUPLICATE NTStatus = 0xC038002F - STATUS_VOLMGR_PACK_ID_INVALID NTStatus = 0xC0380030 - STATUS_VOLMGR_PACK_INVALID NTStatus = 0xC0380031 - STATUS_VOLMGR_PACK_NAME_INVALID NTStatus = 0xC0380032 - STATUS_VOLMGR_PACK_OFFLINE NTStatus = 0xC0380033 - STATUS_VOLMGR_PACK_HAS_QUORUM NTStatus = 0xC0380034 - STATUS_VOLMGR_PACK_WITHOUT_QUORUM NTStatus = 0xC0380035 - STATUS_VOLMGR_PARTITION_STYLE_INVALID NTStatus = 0xC0380036 - STATUS_VOLMGR_PARTITION_UPDATE_FAILED NTStatus = 0xC0380037 - STATUS_VOLMGR_PLEX_IN_SYNC NTStatus = 0xC0380038 - STATUS_VOLMGR_PLEX_INDEX_DUPLICATE NTStatus = 0xC0380039 - STATUS_VOLMGR_PLEX_INDEX_INVALID NTStatus = 0xC038003A - STATUS_VOLMGR_PLEX_LAST_ACTIVE NTStatus = 0xC038003B - STATUS_VOLMGR_PLEX_MISSING NTStatus = 0xC038003C - STATUS_VOLMGR_PLEX_REGENERATING NTStatus = 0xC038003D - STATUS_VOLMGR_PLEX_TYPE_INVALID NTStatus = 0xC038003E - STATUS_VOLMGR_PLEX_NOT_RAID5 NTStatus = 0xC038003F - STATUS_VOLMGR_PLEX_NOT_SIMPLE NTStatus = 0xC0380040 - STATUS_VOLMGR_STRUCTURE_SIZE_INVALID NTStatus = 0xC0380041 - STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS NTStatus = 0xC0380042 - STATUS_VOLMGR_TRANSACTION_IN_PROGRESS NTStatus = 0xC0380043 - STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE NTStatus = 0xC0380044 - STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK NTStatus = 0xC0380045 - STATUS_VOLMGR_VOLUME_ID_INVALID NTStatus = 0xC0380046 - STATUS_VOLMGR_VOLUME_LENGTH_INVALID NTStatus = 0xC0380047 - STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE NTStatus = 0xC0380048 - STATUS_VOLMGR_VOLUME_NOT_MIRRORED NTStatus = 0xC0380049 - STATUS_VOLMGR_VOLUME_NOT_RETAINED NTStatus = 0xC038004A - STATUS_VOLMGR_VOLUME_OFFLINE NTStatus = 0xC038004B - STATUS_VOLMGR_VOLUME_RETAINED NTStatus = 0xC038004C - STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID NTStatus = 0xC038004D - STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE NTStatus = 0xC038004E - STATUS_VOLMGR_BAD_BOOT_DISK NTStatus = 0xC038004F - STATUS_VOLMGR_PACK_CONFIG_OFFLINE NTStatus = 0xC0380050 - STATUS_VOLMGR_PACK_CONFIG_ONLINE NTStatus = 0xC0380051 - STATUS_VOLMGR_NOT_PRIMARY_PACK NTStatus = 0xC0380052 - STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED NTStatus = 0xC0380053 - STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID NTStatus = 0xC0380054 - STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID NTStatus = 0xC0380055 - STATUS_VOLMGR_VOLUME_MIRRORED NTStatus = 0xC0380056 - STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED NTStatus = 0xC0380057 - STATUS_VOLMGR_NO_VALID_LOG_COPIES NTStatus = 0xC0380058 - STATUS_VOLMGR_PRIMARY_PACK_PRESENT NTStatus = 0xC0380059 - STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID NTStatus = 0xC038005A - STATUS_VOLMGR_MIRROR_NOT_SUPPORTED NTStatus = 0xC038005B - STATUS_VOLMGR_RAID5_NOT_SUPPORTED NTStatus = 0xC038005C - STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED NTStatus = 0x80390001 - STATUS_BCD_TOO_MANY_ELEMENTS NTStatus = 0xC0390002 - STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED NTStatus = 0x80390003 - STATUS_VHD_DRIVE_FOOTER_MISSING NTStatus = 0xC03A0001 - STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH NTStatus = 0xC03A0002 - STATUS_VHD_DRIVE_FOOTER_CORRUPT NTStatus = 0xC03A0003 - STATUS_VHD_FORMAT_UNKNOWN NTStatus = 0xC03A0004 - STATUS_VHD_FORMAT_UNSUPPORTED_VERSION NTStatus = 0xC03A0005 - STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH NTStatus = 0xC03A0006 - STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION NTStatus = 0xC03A0007 - STATUS_VHD_SPARSE_HEADER_CORRUPT NTStatus = 0xC03A0008 - STATUS_VHD_BLOCK_ALLOCATION_FAILURE NTStatus = 0xC03A0009 - STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT NTStatus = 0xC03A000A - STATUS_VHD_INVALID_BLOCK_SIZE NTStatus = 0xC03A000B - STATUS_VHD_BITMAP_MISMATCH NTStatus = 0xC03A000C - STATUS_VHD_PARENT_VHD_NOT_FOUND NTStatus = 0xC03A000D - STATUS_VHD_CHILD_PARENT_ID_MISMATCH NTStatus = 0xC03A000E - STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH NTStatus = 0xC03A000F - STATUS_VHD_METADATA_READ_FAILURE NTStatus = 0xC03A0010 - STATUS_VHD_METADATA_WRITE_FAILURE NTStatus = 0xC03A0011 - STATUS_VHD_INVALID_SIZE NTStatus = 0xC03A0012 - STATUS_VHD_INVALID_FILE_SIZE NTStatus = 0xC03A0013 - STATUS_VIRTDISK_PROVIDER_NOT_FOUND NTStatus = 0xC03A0014 - STATUS_VIRTDISK_NOT_VIRTUAL_DISK NTStatus = 0xC03A0015 - STATUS_VHD_PARENT_VHD_ACCESS_DENIED NTStatus = 0xC03A0016 - STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH NTStatus = 0xC03A0017 - STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED NTStatus = 0xC03A0018 - STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT NTStatus = 0xC03A0019 - STATUS_VIRTUAL_DISK_LIMITATION NTStatus = 0xC03A001A - STATUS_VHD_INVALID_TYPE NTStatus = 0xC03A001B - STATUS_VHD_INVALID_STATE NTStatus = 0xC03A001C - STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE NTStatus = 0xC03A001D - STATUS_VIRTDISK_DISK_ALREADY_OWNED NTStatus = 0xC03A001E - STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE NTStatus = 0xC03A001F - STATUS_CTLOG_TRACKING_NOT_INITIALIZED NTStatus = 0xC03A0020 - STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE NTStatus = 0xC03A0021 - STATUS_CTLOG_VHD_CHANGED_OFFLINE NTStatus = 0xC03A0022 - STATUS_CTLOG_INVALID_TRACKING_STATE NTStatus = 0xC03A0023 - STATUS_CTLOG_INCONSISTENT_TRACKING_FILE NTStatus = 0xC03A0024 - STATUS_VHD_METADATA_FULL NTStatus = 0xC03A0028 - STATUS_VHD_INVALID_CHANGE_TRACKING_ID NTStatus = 0xC03A0029 - STATUS_VHD_CHANGE_TRACKING_DISABLED NTStatus = 0xC03A002A - STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION NTStatus = 0xC03A0030 - STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA NTStatus = 0xC03A0031 - STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0032 - STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0033 - STATUS_QUERY_STORAGE_ERROR NTStatus = 0x803A0001 - STATUS_GDI_HANDLE_LEAK NTStatus = 0x803F0001 - STATUS_RKF_KEY_NOT_FOUND NTStatus = 0xC0400001 - STATUS_RKF_DUPLICATE_KEY NTStatus = 0xC0400002 - STATUS_RKF_BLOB_FULL NTStatus = 0xC0400003 - STATUS_RKF_STORE_FULL NTStatus = 0xC0400004 - STATUS_RKF_FILE_BLOCKED NTStatus = 0xC0400005 - STATUS_RKF_ACTIVE_KEY NTStatus = 0xC0400006 - STATUS_RDBSS_RESTART_OPERATION NTStatus = 0xC0410001 - STATUS_RDBSS_CONTINUE_OPERATION NTStatus = 0xC0410002 - STATUS_RDBSS_POST_OPERATION NTStatus = 0xC0410003 - STATUS_RDBSS_RETRY_LOOKUP NTStatus = 0xC0410004 - STATUS_BTH_ATT_INVALID_HANDLE NTStatus = 0xC0420001 - STATUS_BTH_ATT_READ_NOT_PERMITTED NTStatus = 0xC0420002 - STATUS_BTH_ATT_WRITE_NOT_PERMITTED NTStatus = 0xC0420003 - STATUS_BTH_ATT_INVALID_PDU NTStatus = 0xC0420004 - STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION NTStatus = 0xC0420005 - STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED NTStatus = 0xC0420006 - STATUS_BTH_ATT_INVALID_OFFSET NTStatus = 0xC0420007 - STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION NTStatus = 0xC0420008 - STATUS_BTH_ATT_PREPARE_QUEUE_FULL NTStatus = 0xC0420009 - STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND NTStatus = 0xC042000A - STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG NTStatus = 0xC042000B - STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE NTStatus = 0xC042000C - STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH NTStatus = 0xC042000D - STATUS_BTH_ATT_UNLIKELY NTStatus = 0xC042000E - STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION NTStatus = 0xC042000F - STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE NTStatus = 0xC0420010 - STATUS_BTH_ATT_INSUFFICIENT_RESOURCES NTStatus = 0xC0420011 - STATUS_BTH_ATT_UNKNOWN_ERROR NTStatus = 0xC0421000 - STATUS_SECUREBOOT_ROLLBACK_DETECTED NTStatus = 0xC0430001 - STATUS_SECUREBOOT_POLICY_VIOLATION NTStatus = 0xC0430002 - STATUS_SECUREBOOT_INVALID_POLICY NTStatus = 0xC0430003 - STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND NTStatus = 0xC0430004 - STATUS_SECUREBOOT_POLICY_NOT_SIGNED NTStatus = 0xC0430005 - STATUS_SECUREBOOT_NOT_ENABLED NTStatus = 0x80430006 - STATUS_SECUREBOOT_FILE_REPLACED NTStatus = 0xC0430007 - STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED NTStatus = 0xC0430008 - STATUS_SECUREBOOT_POLICY_UNKNOWN NTStatus = 0xC0430009 - STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION NTStatus = 0xC043000A - STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH NTStatus = 0xC043000B - STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED NTStatus = 0xC043000C - STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH NTStatus = 0xC043000D - STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING NTStatus = 0xC043000E - STATUS_SECUREBOOT_NOT_BASE_POLICY NTStatus = 0xC043000F - STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY NTStatus = 0xC0430010 - STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED NTStatus = 0xC0EB0001 - STATUS_PLATFORM_MANIFEST_INVALID NTStatus = 0xC0EB0002 - STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED NTStatus = 0xC0EB0003 - STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED NTStatus = 0xC0EB0004 - STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND NTStatus = 0xC0EB0005 - STATUS_PLATFORM_MANIFEST_NOT_ACTIVE NTStatus = 0xC0EB0006 - STATUS_PLATFORM_MANIFEST_NOT_SIGNED NTStatus = 0xC0EB0007 - STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED NTStatus = 0xC0E90001 - STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION NTStatus = 0xC0E90002 - STATUS_SYSTEM_INTEGRITY_INVALID_POLICY NTStatus = 0xC0E90003 - STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED NTStatus = 0xC0E90004 - STATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES NTStatus = 0xC0E90005 - STATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED NTStatus = 0xC0E90006 - STATUS_NO_APPLICABLE_APP_LICENSES_FOUND NTStatus = 0xC0EA0001 - STATUS_CLIP_LICENSE_NOT_FOUND NTStatus = 0xC0EA0002 - STATUS_CLIP_DEVICE_LICENSE_MISSING NTStatus = 0xC0EA0003 - STATUS_CLIP_LICENSE_INVALID_SIGNATURE NTStatus = 0xC0EA0004 - STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID NTStatus = 0xC0EA0005 - STATUS_CLIP_LICENSE_EXPIRED NTStatus = 0xC0EA0006 - STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE NTStatus = 0xC0EA0007 - STATUS_CLIP_LICENSE_NOT_SIGNED NTStatus = 0xC0EA0008 - STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE NTStatus = 0xC0EA0009 - STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH NTStatus = 0xC0EA000A - STATUS_AUDIO_ENGINE_NODE_NOT_FOUND NTStatus = 0xC0440001 - STATUS_HDAUDIO_EMPTY_CONNECTION_LIST NTStatus = 0xC0440002 - STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED NTStatus = 0xC0440003 - STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED NTStatus = 0xC0440004 - STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY NTStatus = 0xC0440005 - STATUS_SPACES_REPAIRED NTStatus = 0x00E70000 - STATUS_SPACES_PAUSE NTStatus = 0x00E70001 - STATUS_SPACES_COMPLETE NTStatus = 0x00E70002 - STATUS_SPACES_REDIRECT NTStatus = 0x00E70003 - STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID NTStatus = 0xC0E70001 - STATUS_SPACES_RESILIENCY_TYPE_INVALID NTStatus = 0xC0E70003 - STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID NTStatus = 0xC0E70004 - STATUS_SPACES_DRIVE_REDUNDANCY_INVALID NTStatus = 0xC0E70006 - STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID NTStatus = 0xC0E70007 - STATUS_SPACES_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0E70009 - STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID NTStatus = 0xC0E7000A - STATUS_SPACES_NOT_ENOUGH_DRIVES NTStatus = 0xC0E7000B - STATUS_SPACES_EXTENDED_ERROR NTStatus = 0xC0E7000C - STATUS_SPACES_PROVISIONING_TYPE_INVALID NTStatus = 0xC0E7000D - STATUS_SPACES_ALLOCATION_SIZE_INVALID NTStatus = 0xC0E7000E - STATUS_SPACES_ENCLOSURE_AWARE_INVALID NTStatus = 0xC0E7000F - STATUS_SPACES_WRITE_CACHE_SIZE_INVALID NTStatus = 0xC0E70010 - STATUS_SPACES_NUMBER_OF_GROUPS_INVALID NTStatus = 0xC0E70011 - STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID NTStatus = 0xC0E70012 - STATUS_SPACES_UPDATE_COLUMN_STATE NTStatus = 0xC0E70013 - STATUS_SPACES_MAP_REQUIRED NTStatus = 0xC0E70014 - STATUS_SPACES_UNSUPPORTED_VERSION NTStatus = 0xC0E70015 - STATUS_SPACES_CORRUPT_METADATA NTStatus = 0xC0E70016 - STATUS_SPACES_DRT_FULL NTStatus = 0xC0E70017 - STATUS_SPACES_INCONSISTENCY NTStatus = 0xC0E70018 - STATUS_SPACES_LOG_NOT_READY NTStatus = 0xC0E70019 - STATUS_SPACES_NO_REDUNDANCY NTStatus = 0xC0E7001A - STATUS_SPACES_DRIVE_NOT_READY NTStatus = 0xC0E7001B - STATUS_SPACES_DRIVE_SPLIT NTStatus = 0xC0E7001C - STATUS_SPACES_DRIVE_LOST_DATA NTStatus = 0xC0E7001D - STATUS_SPACES_ENTRY_INCOMPLETE NTStatus = 0xC0E7001E - STATUS_SPACES_ENTRY_INVALID NTStatus = 0xC0E7001F - STATUS_SPACES_MARK_DIRTY NTStatus = 0xC0E70020 - STATUS_VOLSNAP_BOOTFILE_NOT_VALID NTStatus = 0xC0500003 - STATUS_VOLSNAP_ACTIVATION_TIMEOUT NTStatus = 0xC0500004 - STATUS_IO_PREEMPTED NTStatus = 0xC0510001 - STATUS_SVHDX_ERROR_STORED NTStatus = 0xC05C0000 - STATUS_SVHDX_ERROR_NOT_AVAILABLE NTStatus = 0xC05CFF00 - STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE NTStatus = 0xC05CFF01 - STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED NTStatus = 0xC05CFF02 - STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED NTStatus = 0xC05CFF03 - STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED NTStatus = 0xC05CFF04 - STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED NTStatus = 0xC05CFF05 - STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED NTStatus = 0xC05CFF06 - STATUS_SVHDX_RESERVATION_CONFLICT NTStatus = 0xC05CFF07 - STATUS_SVHDX_WRONG_FILE_TYPE NTStatus = 0xC05CFF08 - STATUS_SVHDX_VERSION_MISMATCH NTStatus = 0xC05CFF09 - STATUS_VHD_SHARED NTStatus = 0xC05CFF0A - STATUS_SVHDX_NO_INITIATOR NTStatus = 0xC05CFF0B - STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND NTStatus = 0xC05CFF0C - STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP NTStatus = 0xC05D0000 - STATUS_SMB_BAD_CLUSTER_DIALECT NTStatus = 0xC05D0001 - STATUS_SMB_GUEST_LOGON_BLOCKED NTStatus = 0xC05D0002 - STATUS_SECCORE_INVALID_COMMAND NTStatus = 0xC0E80000 - STATUS_VSM_NOT_INITIALIZED NTStatus = 0xC0450000 - STATUS_VSM_DMA_PROTECTION_NOT_IN_USE NTStatus = 0xC0450001 - STATUS_APPEXEC_CONDITION_NOT_SATISFIED NTStatus = 0xC0EC0000 - STATUS_APPEXEC_HANDLE_INVALIDATED NTStatus = 0xC0EC0001 - STATUS_APPEXEC_INVALID_HOST_GENERATION NTStatus = 0xC0EC0002 - STATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION NTStatus = 0xC0EC0003 - STATUS_APPEXEC_INVALID_HOST_STATE NTStatus = 0xC0EC0004 - STATUS_APPEXEC_NO_DONOR NTStatus = 0xC0EC0005 - STATUS_APPEXEC_HOST_ID_MISMATCH NTStatus = 0xC0EC0006 - STATUS_APPEXEC_UNKNOWN_USER NTStatus = 0xC0EC0007 -) 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 6048ac6..0000000 --- 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 deleted file mode 100644 index 426151a..0000000 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ /dev/null @@ -1,4713 +0,0 @@ -// Code generated by 'go generate'; DO NOT EDIT. - -package windows - -import ( - "syscall" - "unsafe" -) - -var _ unsafe.Pointer - -// Do the interface allocations only once for common -// Errno values. -const ( - errnoERROR_IO_PENDING = 997 -) - -var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) - errERROR_EINVAL error = syscall.EINVAL -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } - // TODO: add more here, after collecting data on the common - // error values see on Windows. (perhaps when running - // all.bat?) - return e -} - -var ( - modCfgMgr32 = NewLazySystemDLL("CfgMgr32.dll") - modadvapi32 = NewLazySystemDLL("advapi32.dll") - modcrypt32 = NewLazySystemDLL("crypt32.dll") - moddnsapi = NewLazySystemDLL("dnsapi.dll") - moddwmapi = NewLazySystemDLL("dwmapi.dll") - modiphlpapi = NewLazySystemDLL("iphlpapi.dll") - modkernel32 = NewLazySystemDLL("kernel32.dll") - modmswsock = NewLazySystemDLL("mswsock.dll") - modnetapi32 = NewLazySystemDLL("netapi32.dll") - modntdll = NewLazySystemDLL("ntdll.dll") - modole32 = NewLazySystemDLL("ole32.dll") - modpsapi = NewLazySystemDLL("psapi.dll") - modsechost = NewLazySystemDLL("sechost.dll") - modsecur32 = NewLazySystemDLL("secur32.dll") - modsetupapi = NewLazySystemDLL("setupapi.dll") - modshell32 = NewLazySystemDLL("shell32.dll") - moduser32 = NewLazySystemDLL("user32.dll") - moduserenv = NewLazySystemDLL("userenv.dll") - modversion = NewLazySystemDLL("version.dll") - modwinmm = NewLazySystemDLL("winmm.dll") - modwintrust = NewLazySystemDLL("wintrust.dll") - modws2_32 = NewLazySystemDLL("ws2_32.dll") - modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") - - procCM_Get_DevNode_Status = modCfgMgr32.NewProc("CM_Get_DevNode_Status") - procCM_Get_Device_Interface_ListW = modCfgMgr32.NewProc("CM_Get_Device_Interface_ListW") - procCM_Get_Device_Interface_List_SizeW = modCfgMgr32.NewProc("CM_Get_Device_Interface_List_SizeW") - procCM_MapCrToWin32Err = modCfgMgr32.NewProc("CM_MapCrToWin32Err") - procAdjustTokenGroups = modadvapi32.NewProc("AdjustTokenGroups") - procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") - procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") - procBuildSecurityDescriptorW = modadvapi32.NewProc("BuildSecurityDescriptorW") - procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") - procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") - procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") - procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") - procControlService = modadvapi32.NewProc("ControlService") - procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") - procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") - procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") - procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") - procCopySid = modadvapi32.NewProc("CopySid") - procCreateProcessAsUserW = modadvapi32.NewProc("CreateProcessAsUserW") - procCreateServiceW = modadvapi32.NewProc("CreateServiceW") - procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid") - procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") - procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") - procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") - procDeleteService = modadvapi32.NewProc("DeleteService") - procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") - procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx") - procEnumDependentServicesW = modadvapi32.NewProc("EnumDependentServicesW") - procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") - procEqualSid = modadvapi32.NewProc("EqualSid") - procFreeSid = modadvapi32.NewProc("FreeSid") - procGetAce = modadvapi32.NewProc("GetAce") - procGetLengthSid = modadvapi32.NewProc("GetLengthSid") - procGetNamedSecurityInfoW = modadvapi32.NewProc("GetNamedSecurityInfoW") - procGetSecurityDescriptorControl = modadvapi32.NewProc("GetSecurityDescriptorControl") - procGetSecurityDescriptorDacl = modadvapi32.NewProc("GetSecurityDescriptorDacl") - procGetSecurityDescriptorGroup = modadvapi32.NewProc("GetSecurityDescriptorGroup") - procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength") - procGetSecurityDescriptorOwner = modadvapi32.NewProc("GetSecurityDescriptorOwner") - procGetSecurityDescriptorRMControl = modadvapi32.NewProc("GetSecurityDescriptorRMControl") - procGetSecurityDescriptorSacl = modadvapi32.NewProc("GetSecurityDescriptorSacl") - procGetSecurityInfo = modadvapi32.NewProc("GetSecurityInfo") - procGetSidIdentifierAuthority = modadvapi32.NewProc("GetSidIdentifierAuthority") - procGetSidSubAuthority = modadvapi32.NewProc("GetSidSubAuthority") - procGetSidSubAuthorityCount = modadvapi32.NewProc("GetSidSubAuthorityCount") - procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") - procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") - procInitializeSecurityDescriptor = modadvapi32.NewProc("InitializeSecurityDescriptor") - procInitiateSystemShutdownExW = modadvapi32.NewProc("InitiateSystemShutdownExW") - procIsTokenRestricted = modadvapi32.NewProc("IsTokenRestricted") - procIsValidSecurityDescriptor = modadvapi32.NewProc("IsValidSecurityDescriptor") - procIsValidSid = modadvapi32.NewProc("IsValidSid") - procIsWellKnownSid = modadvapi32.NewProc("IsWellKnownSid") - procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") - procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") - procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") - procMakeAbsoluteSD = modadvapi32.NewProc("MakeAbsoluteSD") - procMakeSelfRelativeSD = modadvapi32.NewProc("MakeSelfRelativeSD") - procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW") - procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") - procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") - procOpenServiceW = modadvapi32.NewProc("OpenServiceW") - procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") - procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") - procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") - procQueryServiceDynamicInformation = modadvapi32.NewProc("QueryServiceDynamicInformation") - procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW") - procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") - procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx") - procRegCloseKey = modadvapi32.NewProc("RegCloseKey") - procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") - procRegNotifyChangeKeyValue = modadvapi32.NewProc("RegNotifyChangeKeyValue") - procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") - procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") - procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") - procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") - procRegisterServiceCtrlHandlerExW = modadvapi32.NewProc("RegisterServiceCtrlHandlerExW") - procReportEventW = modadvapi32.NewProc("ReportEventW") - procRevertToSelf = modadvapi32.NewProc("RevertToSelf") - procSetEntriesInAclW = modadvapi32.NewProc("SetEntriesInAclW") - procSetKernelObjectSecurity = modadvapi32.NewProc("SetKernelObjectSecurity") - procSetNamedSecurityInfoW = modadvapi32.NewProc("SetNamedSecurityInfoW") - procSetSecurityDescriptorControl = modadvapi32.NewProc("SetSecurityDescriptorControl") - procSetSecurityDescriptorDacl = modadvapi32.NewProc("SetSecurityDescriptorDacl") - procSetSecurityDescriptorGroup = modadvapi32.NewProc("SetSecurityDescriptorGroup") - procSetSecurityDescriptorOwner = modadvapi32.NewProc("SetSecurityDescriptorOwner") - procSetSecurityDescriptorRMControl = modadvapi32.NewProc("SetSecurityDescriptorRMControl") - procSetSecurityDescriptorSacl = modadvapi32.NewProc("SetSecurityDescriptorSacl") - procSetSecurityInfo = modadvapi32.NewProc("SetSecurityInfo") - procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") - procSetThreadToken = modadvapi32.NewProc("SetThreadToken") - procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") - procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") - procStartServiceW = modadvapi32.NewProc("StartServiceW") - procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") - procCertCloseStore = modcrypt32.NewProc("CertCloseStore") - procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") - procCertDeleteCertificateFromStore = modcrypt32.NewProc("CertDeleteCertificateFromStore") - procCertDuplicateCertificateContext = modcrypt32.NewProc("CertDuplicateCertificateContext") - procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") - procCertFindCertificateInStore = modcrypt32.NewProc("CertFindCertificateInStore") - procCertFindChainInStore = modcrypt32.NewProc("CertFindChainInStore") - procCertFindExtension = modcrypt32.NewProc("CertFindExtension") - procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") - procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") - procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") - procCertGetNameStringW = modcrypt32.NewProc("CertGetNameStringW") - procCertOpenStore = modcrypt32.NewProc("CertOpenStore") - procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") - procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") - procCryptAcquireCertificatePrivateKey = modcrypt32.NewProc("CryptAcquireCertificatePrivateKey") - procCryptDecodeObject = modcrypt32.NewProc("CryptDecodeObject") - procCryptProtectData = modcrypt32.NewProc("CryptProtectData") - procCryptQueryObject = modcrypt32.NewProc("CryptQueryObject") - procCryptUnprotectData = modcrypt32.NewProc("CryptUnprotectData") - procPFXImportCertStore = modcrypt32.NewProc("PFXImportCertStore") - procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") - procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") - procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") - procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") - procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") - procCancelMibChangeNotify2 = modiphlpapi.NewProc("CancelMibChangeNotify2") - procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") - procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") - procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") - procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") - procGetIfEntry2Ex = modiphlpapi.NewProc("GetIfEntry2Ex") - procGetUnicastIpAddressEntry = modiphlpapi.NewProc("GetUnicastIpAddressEntry") - procNotifyIpInterfaceChange = modiphlpapi.NewProc("NotifyIpInterfaceChange") - procNotifyUnicastIpAddressChange = modiphlpapi.NewProc("NotifyUnicastIpAddressChange") - procAddDllDirectory = modkernel32.NewProc("AddDllDirectory") - procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") - procCancelIo = modkernel32.NewProc("CancelIo") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procClearCommBreak = modkernel32.NewProc("ClearCommBreak") - procClearCommError = modkernel32.NewProc("ClearCommError") - procCloseHandle = modkernel32.NewProc("CloseHandle") - procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") - procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") - procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") - procCreateEventExW = modkernel32.NewProc("CreateEventExW") - procCreateEventW = modkernel32.NewProc("CreateEventW") - procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") - procCreateFileW = modkernel32.NewProc("CreateFileW") - procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") - procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") - procCreateJobObjectW = modkernel32.NewProc("CreateJobObjectW") - procCreateMutexExW = modkernel32.NewProc("CreateMutexExW") - procCreateMutexW = modkernel32.NewProc("CreateMutexW") - procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") - procCreatePipe = modkernel32.NewProc("CreatePipe") - procCreateProcessW = modkernel32.NewProc("CreateProcessW") - procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole") - procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") - procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") - procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") - procDeleteFileW = modkernel32.NewProc("DeleteFileW") - procDeleteProcThreadAttributeList = modkernel32.NewProc("DeleteProcThreadAttributeList") - procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") - procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") - procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe") - procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") - procEscapeCommFunction = modkernel32.NewProc("EscapeCommFunction") - procExitProcess = modkernel32.NewProc("ExitProcess") - procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") - procFindClose = modkernel32.NewProc("FindClose") - procFindCloseChangeNotification = modkernel32.NewProc("FindCloseChangeNotification") - procFindFirstChangeNotificationW = modkernel32.NewProc("FindFirstChangeNotificationW") - procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") - procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") - procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") - procFindNextChangeNotification = modkernel32.NewProc("FindNextChangeNotification") - procFindNextFileW = modkernel32.NewProc("FindNextFileW") - procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") - procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") - procFindResourceW = modkernel32.NewProc("FindResourceW") - procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") - procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") - procFlushConsoleInputBuffer = modkernel32.NewProc("FlushConsoleInputBuffer") - procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") - procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") - procFormatMessageW = modkernel32.NewProc("FormatMessageW") - procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") - procFreeLibrary = modkernel32.NewProc("FreeLibrary") - procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") - procGetACP = modkernel32.NewProc("GetACP") - procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") - procGetCommModemStatus = modkernel32.NewProc("GetCommModemStatus") - procGetCommState = modkernel32.NewProc("GetCommState") - procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") - procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") - procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") - procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") - procGetConsoleCP = modkernel32.NewProc("GetConsoleCP") - procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") - procGetConsoleOutputCP = modkernel32.NewProc("GetConsoleOutputCP") - procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") - procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") - procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") - procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") - procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW") - procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") - procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") - procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") - procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") - procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") - procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") - procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") - procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") - procGetFileTime = modkernel32.NewProc("GetFileTime") - procGetFileType = modkernel32.NewProc("GetFileType") - procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") - procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") - procGetLargePageMinimum = modkernel32.NewProc("GetLargePageMinimum") - procGetLastError = modkernel32.NewProc("GetLastError") - procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") - procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") - procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") - procGetMaximumProcessorCount = modkernel32.NewProc("GetMaximumProcessorCount") - procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW") - procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW") - procGetNamedPipeClientProcessId = modkernel32.NewProc("GetNamedPipeClientProcessId") - procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") - procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") - procGetNamedPipeServerProcessId = modkernel32.NewProc("GetNamedPipeServerProcessId") - procGetNumberOfConsoleInputEvents = modkernel32.NewProc("GetNumberOfConsoleInputEvents") - procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") - procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") - procGetProcAddress = modkernel32.NewProc("GetProcAddress") - procGetProcessId = modkernel32.NewProc("GetProcessId") - procGetProcessPreferredUILanguages = modkernel32.NewProc("GetProcessPreferredUILanguages") - procGetProcessShutdownParameters = modkernel32.NewProc("GetProcessShutdownParameters") - procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") - procGetProcessWorkingSetSizeEx = modkernel32.NewProc("GetProcessWorkingSetSizeEx") - procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") - procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") - procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") - procGetStdHandle = modkernel32.NewProc("GetStdHandle") - procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW") - procGetSystemPreferredUILanguages = modkernel32.NewProc("GetSystemPreferredUILanguages") - procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") - procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") - procGetSystemWindowsDirectoryW = modkernel32.NewProc("GetSystemWindowsDirectoryW") - procGetTempPathW = modkernel32.NewProc("GetTempPathW") - procGetThreadPreferredUILanguages = modkernel32.NewProc("GetThreadPreferredUILanguages") - procGetTickCount64 = modkernel32.NewProc("GetTickCount64") - procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") - procGetUserPreferredUILanguages = modkernel32.NewProc("GetUserPreferredUILanguages") - procGetVersion = modkernel32.NewProc("GetVersion") - procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") - procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") - procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") - procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") - procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") - procGetWindowsDirectoryW = modkernel32.NewProc("GetWindowsDirectoryW") - procInitializeProcThreadAttributeList = modkernel32.NewProc("InitializeProcThreadAttributeList") - procIsWow64Process = modkernel32.NewProc("IsWow64Process") - procIsWow64Process2 = modkernel32.NewProc("IsWow64Process2") - procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") - procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") - procLoadResource = modkernel32.NewProc("LoadResource") - procLocalAlloc = modkernel32.NewProc("LocalAlloc") - procLocalFree = modkernel32.NewProc("LocalFree") - procLockFileEx = modkernel32.NewProc("LockFileEx") - procLockResource = modkernel32.NewProc("LockResource") - procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") - procModule32FirstW = modkernel32.NewProc("Module32FirstW") - procModule32NextW = modkernel32.NewProc("Module32NextW") - procMoveFileExW = modkernel32.NewProc("MoveFileExW") - procMoveFileW = modkernel32.NewProc("MoveFileW") - procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") - procOpenEventW = modkernel32.NewProc("OpenEventW") - procOpenMutexW = modkernel32.NewProc("OpenMutexW") - procOpenProcess = modkernel32.NewProc("OpenProcess") - procOpenThread = modkernel32.NewProc("OpenThread") - procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") - procProcess32FirstW = modkernel32.NewProc("Process32FirstW") - procProcess32NextW = modkernel32.NewProc("Process32NextW") - procProcessIdToSessionId = modkernel32.NewProc("ProcessIdToSessionId") - procPulseEvent = modkernel32.NewProc("PulseEvent") - procPurgeComm = modkernel32.NewProc("PurgeComm") - procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") - procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") - procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") - procReadConsoleW = modkernel32.NewProc("ReadConsoleW") - procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") - procReadFile = modkernel32.NewProc("ReadFile") - procReadProcessMemory = modkernel32.NewProc("ReadProcessMemory") - procReleaseMutex = modkernel32.NewProc("ReleaseMutex") - procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") - procRemoveDllDirectory = modkernel32.NewProc("RemoveDllDirectory") - procResetEvent = modkernel32.NewProc("ResetEvent") - procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") - procResumeThread = modkernel32.NewProc("ResumeThread") - procSetCommBreak = modkernel32.NewProc("SetCommBreak") - procSetCommMask = modkernel32.NewProc("SetCommMask") - procSetCommState = modkernel32.NewProc("SetCommState") - procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") - procSetConsoleCP = modkernel32.NewProc("SetConsoleCP") - procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") - procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") - procSetConsoleOutputCP = modkernel32.NewProc("SetConsoleOutputCP") - procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") - procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") - procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetErrorMode = modkernel32.NewProc("SetErrorMode") - procSetEvent = modkernel32.NewProc("SetEvent") - procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") - procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") - procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle") - procSetFilePointer = modkernel32.NewProc("SetFilePointer") - procSetFileTime = modkernel32.NewProc("SetFileTime") - procSetFileValidData = modkernel32.NewProc("SetFileValidData") - procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") - procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") - procSetNamedPipeHandleState = modkernel32.NewProc("SetNamedPipeHandleState") - procSetPriorityClass = modkernel32.NewProc("SetPriorityClass") - procSetProcessPriorityBoost = modkernel32.NewProc("SetProcessPriorityBoost") - procSetProcessShutdownParameters = modkernel32.NewProc("SetProcessShutdownParameters") - procSetProcessWorkingSetSizeEx = modkernel32.NewProc("SetProcessWorkingSetSizeEx") - procSetStdHandle = modkernel32.NewProc("SetStdHandle") - procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") - procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") - procSetupComm = modkernel32.NewProc("SetupComm") - procSizeofResource = modkernel32.NewProc("SizeofResource") - procSleepEx = modkernel32.NewProc("SleepEx") - procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") - procTerminateProcess = modkernel32.NewProc("TerminateProcess") - procThread32First = modkernel32.NewProc("Thread32First") - procThread32Next = modkernel32.NewProc("Thread32Next") - procUnlockFileEx = modkernel32.NewProc("UnlockFileEx") - procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") - procUpdateProcThreadAttribute = modkernel32.NewProc("UpdateProcThreadAttribute") - procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") - procVirtualFree = modkernel32.NewProc("VirtualFree") - procVirtualLock = modkernel32.NewProc("VirtualLock") - procVirtualProtect = modkernel32.NewProc("VirtualProtect") - procVirtualProtectEx = modkernel32.NewProc("VirtualProtectEx") - procVirtualQuery = modkernel32.NewProc("VirtualQuery") - procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx") - procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") - procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId") - procWaitCommEvent = modkernel32.NewProc("WaitCommEvent") - procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") - procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") - procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") - procWriteFile = modkernel32.NewProc("WriteFile") - procWriteProcessMemory = modkernel32.NewProc("WriteProcessMemory") - procAcceptEx = modmswsock.NewProc("AcceptEx") - procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") - procTransmitFile = modmswsock.NewProc("TransmitFile") - procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") - procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") - procNetUserEnum = modnetapi32.NewProc("NetUserEnum") - procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") - procNtCreateFile = modntdll.NewProc("NtCreateFile") - procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") - procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") - procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation") - procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") - procNtSetInformationProcess = modntdll.NewProc("NtSetInformationProcess") - procNtSetSystemInformation = modntdll.NewProc("NtSetSystemInformation") - procRtlAddFunctionTable = modntdll.NewProc("RtlAddFunctionTable") - procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") - procRtlDeleteFunctionTable = modntdll.NewProc("RtlDeleteFunctionTable") - procRtlDosPathNameToNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToNtPathName_U_WithStatus") - procRtlDosPathNameToRelativeNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToRelativeNtPathName_U_WithStatus") - procRtlGetCurrentPeb = modntdll.NewProc("RtlGetCurrentPeb") - procRtlGetNtVersionNumbers = modntdll.NewProc("RtlGetNtVersionNumbers") - procRtlGetVersion = modntdll.NewProc("RtlGetVersion") - procRtlInitString = modntdll.NewProc("RtlInitString") - procRtlInitUnicodeString = modntdll.NewProc("RtlInitUnicodeString") - procRtlNtStatusToDosErrorNoTeb = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") - procCLSIDFromString = modole32.NewProc("CLSIDFromString") - procCoCreateGuid = modole32.NewProc("CoCreateGuid") - procCoGetObject = modole32.NewProc("CoGetObject") - procCoInitializeEx = modole32.NewProc("CoInitializeEx") - procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") - procCoUninitialize = modole32.NewProc("CoUninitialize") - procStringFromGUID2 = modole32.NewProc("StringFromGUID2") - procEnumProcessModules = modpsapi.NewProc("EnumProcessModules") - procEnumProcessModulesEx = modpsapi.NewProc("EnumProcessModulesEx") - procEnumProcesses = modpsapi.NewProc("EnumProcesses") - procGetModuleBaseNameW = modpsapi.NewProc("GetModuleBaseNameW") - procGetModuleFileNameExW = modpsapi.NewProc("GetModuleFileNameExW") - procGetModuleInformation = modpsapi.NewProc("GetModuleInformation") - procQueryWorkingSetEx = modpsapi.NewProc("QueryWorkingSetEx") - procSubscribeServiceChangeNotifications = modsechost.NewProc("SubscribeServiceChangeNotifications") - procUnsubscribeServiceChangeNotifications = modsechost.NewProc("UnsubscribeServiceChangeNotifications") - procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") - procTranslateNameW = modsecur32.NewProc("TranslateNameW") - procSetupDiBuildDriverInfoList = modsetupapi.NewProc("SetupDiBuildDriverInfoList") - procSetupDiCallClassInstaller = modsetupapi.NewProc("SetupDiCallClassInstaller") - procSetupDiCancelDriverInfoSearch = modsetupapi.NewProc("SetupDiCancelDriverInfoSearch") - procSetupDiClassGuidsFromNameExW = modsetupapi.NewProc("SetupDiClassGuidsFromNameExW") - procSetupDiClassNameFromGuidExW = modsetupapi.NewProc("SetupDiClassNameFromGuidExW") - procSetupDiCreateDeviceInfoListExW = modsetupapi.NewProc("SetupDiCreateDeviceInfoListExW") - procSetupDiCreateDeviceInfoW = modsetupapi.NewProc("SetupDiCreateDeviceInfoW") - procSetupDiDestroyDeviceInfoList = modsetupapi.NewProc("SetupDiDestroyDeviceInfoList") - procSetupDiDestroyDriverInfoList = modsetupapi.NewProc("SetupDiDestroyDriverInfoList") - procSetupDiEnumDeviceInfo = modsetupapi.NewProc("SetupDiEnumDeviceInfo") - procSetupDiEnumDriverInfoW = modsetupapi.NewProc("SetupDiEnumDriverInfoW") - procSetupDiGetClassDevsExW = modsetupapi.NewProc("SetupDiGetClassDevsExW") - procSetupDiGetClassInstallParamsW = modsetupapi.NewProc("SetupDiGetClassInstallParamsW") - procSetupDiGetDeviceInfoListDetailW = modsetupapi.NewProc("SetupDiGetDeviceInfoListDetailW") - procSetupDiGetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiGetDeviceInstallParamsW") - procSetupDiGetDeviceInstanceIdW = modsetupapi.NewProc("SetupDiGetDeviceInstanceIdW") - procSetupDiGetDevicePropertyW = modsetupapi.NewProc("SetupDiGetDevicePropertyW") - procSetupDiGetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiGetDeviceRegistryPropertyW") - procSetupDiGetDriverInfoDetailW = modsetupapi.NewProc("SetupDiGetDriverInfoDetailW") - procSetupDiGetSelectedDevice = modsetupapi.NewProc("SetupDiGetSelectedDevice") - procSetupDiGetSelectedDriverW = modsetupapi.NewProc("SetupDiGetSelectedDriverW") - procSetupDiOpenDevRegKey = modsetupapi.NewProc("SetupDiOpenDevRegKey") - procSetupDiSetClassInstallParamsW = modsetupapi.NewProc("SetupDiSetClassInstallParamsW") - procSetupDiSetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiSetDeviceInstallParamsW") - procSetupDiSetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiSetDeviceRegistryPropertyW") - procSetupDiSetSelectedDevice = modsetupapi.NewProc("SetupDiSetSelectedDevice") - procSetupDiSetSelectedDriverW = modsetupapi.NewProc("SetupDiSetSelectedDriverW") - procSetupUninstallOEMInfW = modsetupapi.NewProc("SetupUninstallOEMInfW") - procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") - procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") - procShellExecuteW = modshell32.NewProc("ShellExecuteW") - procEnumChildWindows = moduser32.NewProc("EnumChildWindows") - procEnumWindows = moduser32.NewProc("EnumWindows") - procExitWindowsEx = moduser32.NewProc("ExitWindowsEx") - procGetClassNameW = moduser32.NewProc("GetClassNameW") - procGetDesktopWindow = moduser32.NewProc("GetDesktopWindow") - procGetForegroundWindow = moduser32.NewProc("GetForegroundWindow") - procGetGUIThreadInfo = moduser32.NewProc("GetGUIThreadInfo") - procGetKeyboardLayout = moduser32.NewProc("GetKeyboardLayout") - procGetShellWindow = moduser32.NewProc("GetShellWindow") - procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") - procIsWindow = moduser32.NewProc("IsWindow") - procIsWindowUnicode = moduser32.NewProc("IsWindowUnicode") - procIsWindowVisible = moduser32.NewProc("IsWindowVisible") - procLoadKeyboardLayoutW = moduser32.NewProc("LoadKeyboardLayoutW") - procMessageBoxW = moduser32.NewProc("MessageBoxW") - procToUnicodeEx = moduser32.NewProc("ToUnicodeEx") - procUnloadKeyboardLayout = moduser32.NewProc("UnloadKeyboardLayout") - procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") - procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") - procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") - procGetFileVersionInfoSizeW = modversion.NewProc("GetFileVersionInfoSizeW") - procGetFileVersionInfoW = modversion.NewProc("GetFileVersionInfoW") - procVerQueryValueW = modversion.NewProc("VerQueryValueW") - proctimeBeginPeriod = modwinmm.NewProc("timeBeginPeriod") - proctimeEndPeriod = modwinmm.NewProc("timeEndPeriod") - procWinVerifyTrustEx = modwintrust.NewProc("WinVerifyTrustEx") - procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") - procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") - procWSACleanup = modws2_32.NewProc("WSACleanup") - procWSADuplicateSocketW = modws2_32.NewProc("WSADuplicateSocketW") - procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") - procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") - procWSAIoctl = modws2_32.NewProc("WSAIoctl") - procWSALookupServiceBeginW = modws2_32.NewProc("WSALookupServiceBeginW") - procWSALookupServiceEnd = modws2_32.NewProc("WSALookupServiceEnd") - procWSALookupServiceNextW = modws2_32.NewProc("WSALookupServiceNextW") - procWSARecv = modws2_32.NewProc("WSARecv") - procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") - procWSASend = modws2_32.NewProc("WSASend") - procWSASendTo = modws2_32.NewProc("WSASendTo") - procWSASocketW = modws2_32.NewProc("WSASocketW") - procWSAStartup = modws2_32.NewProc("WSAStartup") - procbind = modws2_32.NewProc("bind") - procclosesocket = modws2_32.NewProc("closesocket") - procconnect = modws2_32.NewProc("connect") - procgethostbyname = modws2_32.NewProc("gethostbyname") - procgetpeername = modws2_32.NewProc("getpeername") - procgetprotobyname = modws2_32.NewProc("getprotobyname") - procgetservbyname = modws2_32.NewProc("getservbyname") - procgetsockname = modws2_32.NewProc("getsockname") - procgetsockopt = modws2_32.NewProc("getsockopt") - proclisten = modws2_32.NewProc("listen") - procntohs = modws2_32.NewProc("ntohs") - procrecvfrom = modws2_32.NewProc("recvfrom") - procsendto = modws2_32.NewProc("sendto") - procsetsockopt = modws2_32.NewProc("setsockopt") - procshutdown = modws2_32.NewProc("shutdown") - procsocket = modws2_32.NewProc("socket") - procWTSEnumerateSessionsW = modwtsapi32.NewProc("WTSEnumerateSessionsW") - procWTSFreeMemory = modwtsapi32.NewProc("WTSFreeMemory") - procWTSQueryUserToken = modwtsapi32.NewProc("WTSQueryUserToken") -) - -func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.SyscallN(procCM_Get_DevNode_Status.Addr(), uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags)) - ret = CONFIGRET(r0) - return -} - -func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_ListW.Addr(), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags)) - ret = CONFIGRET(r0) - return -} - -func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_List_SizeW.Addr(), uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags)) - ret = CONFIGRET(r0) - return -} - -func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { - r0, _, _ := syscall.SyscallN(procCM_MapCrToWin32Err.Addr(), uintptr(configRet), uintptr(defaultWin32Error)) - ret = Errno(r0) - return -} - -func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { - var _p0 uint32 - if resetToDefault { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procAdjustTokenGroups.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { - var _p0 uint32 - if disableAllPrivileges { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procAdjustTokenPrivileges.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func 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) { - r1, _, e1 := syscall.SyscallN(procAllocateAndInitializeSid.Addr(), uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.SyscallN(procBuildSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procChangeServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procChangeServiceConfigW.Addr(), uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { - r1, _, e1 := syscall.SyscallN(procCheckTokenMembership.Addr(), uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procCloseServiceHandle.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.SyscallN(procControlService.Addr(), uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procConvertSidToStringSidW.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(str) - if err != nil { - return - } - return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) -} - -func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { - r1, _, e1 := syscall.SyscallN(procConvertStringSidToSidW.Addr(), uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { - r1, _, e1 := syscall.SyscallN(procCopySid.Addr(), uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { - var _p0 uint32 - if inheritHandles { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procCreateProcessAsUserW.Addr(), uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func 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) { - r0, _, e1 := syscall.SyscallN(procCreateServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password))) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procCreateWellKnownSid.Addr(), uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procCryptAcquireContextW.Addr(), uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procCryptGenRandom.Addr(), uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procCryptReleaseContext.Addr(), uintptr(provhandle), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeleteService(service Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procDeleteService.Addr(), uintptr(service)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procDeregisterEventSource.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { - r1, _, e1 := syscall.SyscallN(procDuplicateTokenEx.Addr(), uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procEnumDependentServicesW.Addr(), uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procEnumServicesStatusExW.Addr(), uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { - r0, _, _ := syscall.SyscallN(procEqualSid.Addr(), uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2))) - isEqual = r0 != 0 - return -} - -func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.SyscallN(procFreeSid.Addr(), uintptr(unsafe.Pointer(sid))) - if r1 != 0 { - err = errnoErr(e1) - } - return -} - -func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { - r1, _, e1 := syscall.SyscallN(procGetAce.Addr(), uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.SyscallN(procGetLengthSid.Addr(), uintptr(unsafe.Pointer(sid))) - len = uint32(r0) - return -} - -func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - var _p0 *uint16 - _p0, ret = syscall.UTF16PtrFromString(objectName) - if ret != nil { - return - } - return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd) -} - -func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.SyscallN(procGetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) { - var _p0 uint32 - if *daclPresent { - _p0 = 1 - } - var _p1 uint32 - if *daclDefaulted { - _p1 = 1 - } - r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1))) - *daclPresent = _p0 != 0 - *daclDefaulted = _p1 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) { - var _p0 uint32 - if *groupDefaulted { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) - *groupDefaulted = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { - r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorLength.Addr(), uintptr(unsafe.Pointer(sd))) - len = uint32(r0) - return -} - -func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) { - var _p0 uint32 - if *ownerDefaulted { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) - *ownerDefaulted = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { - r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) { - var _p0 uint32 - if *saclPresent { - _p0 = 1 - } - var _p1 uint32 - if *saclDefaulted { - _p1 = 1 - } - r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1))) - *saclPresent = _p0 != 0 - *saclDefaulted = _p1 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.SyscallN(procGetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { - r0, _, _ := syscall.SyscallN(procGetSidIdentifierAuthority.Addr(), uintptr(unsafe.Pointer(sid))) - authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) - return -} - -func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { - r0, _, _ := syscall.SyscallN(procGetSidSubAuthority.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(index)) - subAuthority = (*uint32)(unsafe.Pointer(r0)) - return -} - -func getSidSubAuthorityCount(sid *SID) (count *uint8) { - r0, _, _ := syscall.SyscallN(procGetSidSubAuthorityCount.Addr(), uintptr(unsafe.Pointer(sid))) - count = (*uint8)(unsafe.Pointer(r0)) - return -} - -func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ImpersonateSelf(impersonationlevel uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procImpersonateSelf.Addr(), uintptr(impersonationlevel)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procInitializeSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) { - var _p0 uint32 - if forceAppsClosed { - _p0 = 1 - } - var _p1 uint32 - if rebootAfterShutdown { - _p1 = 1 - } - r1, _, e1 := syscall.SyscallN(procInitiateSystemShutdownExW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func isTokenRestricted(tokenHandle Token) (ret bool, err error) { - r0, _, e1 := syscall.SyscallN(procIsTokenRestricted.Addr(), uintptr(tokenHandle)) - ret = r0 != 0 - if !ret { - err = errnoErr(e1) - } - return -} - -func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { - r0, _, _ := syscall.SyscallN(procIsValidSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(sd))) - isValid = r0 != 0 - return -} - -func isValidSid(sid *SID) (isValid bool) { - r0, _, _ := syscall.SyscallN(procIsValidSid.Addr(), uintptr(unsafe.Pointer(sid))) - isValid = r0 != 0 - return -} - -func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { - r0, _, _ := syscall.SyscallN(procIsWellKnownSid.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(sidType)) - isWellKnown = r0 != 0 - return -} - -func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procLookupAccountNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procLookupAccountSidW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { - r1, _, e1 := syscall.SyscallN(procLookupPrivilegeValueW.Addr(), uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procMakeAbsoluteSD.Addr(), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procMakeSelfRelativeSD.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { - r0, _, _ := syscall.SyscallN(procNotifyServiceStatusChangeW.Addr(), uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.SyscallN(procOpenProcessToken.Addr(), uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procOpenSCManagerW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procOpenServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) { - var _p0 uint32 - if openAsSelf { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procOpenThreadToken.Addr(), uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procQueryServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procQueryServiceConfigW.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) { - err = procQueryServiceDynamicInformation.Find() - if err != nil { - return - } - r1, _, e1 := syscall.SyscallN(procQueryServiceDynamicInformation.Addr(), uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procQueryServiceLockStatusW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.SyscallN(procQueryServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(status))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procQueryServiceStatusEx.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.SyscallN(procRegCloseKey.Addr(), uintptr(key)) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.SyscallN(procRegEnumKeyExW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) { - var _p0 uint32 - if watchSubtree { - _p0 = 1 - } - var _p1 uint32 - if asynchronous { - _p1 = 1 - } - r0, _, _ := syscall.SyscallN(procRegNotifyChangeKeyValue.Addr(), uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1)) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { - r0, _, _ := syscall.SyscallN(procRegOpenKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func 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) { - r0, _, _ := syscall.SyscallN(procRegQueryInfoKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.SyscallN(procRegQueryValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procRegisterEventSourceW.Addr(), uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName))) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procRegisterServiceCtrlHandlerExW.Addr(), uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procReportEventW.Addr(), uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func RevertToSelf() (err error) { - r1, _, e1 := syscall.SyscallN(procRevertToSelf.Addr()) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { - r0, _, _ := syscall.SyscallN(procSetEntriesInAclW.Addr(), uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) { - r1, _, e1 := syscall.SyscallN(procSetKernelObjectSecurity.Addr(), uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - var _p0 *uint16 - _p0, ret = syscall.UTF16PtrFromString(objectName) - if ret != nil { - return - } - return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl) -} - -func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.SyscallN(procSetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { - r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) { - var _p0 uint32 - if daclPresent { - _p0 = 1 - } - var _p1 uint32 - if daclDefaulted { - _p1 = 1 - } - r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) { - var _p0 uint32 - if groupDefaulted { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) { - var _p0 uint32 - if ownerDefaulted { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { - syscall.SyscallN(procSetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl))) - return -} - -func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) { - var _p0 uint32 - if saclPresent { - _p0 = 1 - } - var _p1 uint32 - if saclDefaulted { - _p1 = 1 - } - r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.SyscallN(procSetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.SyscallN(procSetServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceStatus))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetThreadToken(thread *Handle, token Token) (err error) { - r1, _, e1 := syscall.SyscallN(procSetThreadToken.Addr(), uintptr(unsafe.Pointer(thread)), uintptr(token)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { - r1, _, e1 := syscall.SyscallN(procStartServiceCtrlDispatcherW.Addr(), uintptr(unsafe.Pointer(serviceTable))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procStartServiceW.Addr(), uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { - r1, _, e1 := syscall.SyscallN(procCertAddCertificateContextToStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procCertCloseStore.Addr(), uintptr(store), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { - r0, _, e1 := syscall.SyscallN(procCertCreateCertificateContext.Addr(), uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - err = errnoErr(e1) - } - return -} - -func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { - r1, _, e1 := syscall.SyscallN(procCertDeleteCertificateFromStore.Addr(), uintptr(unsafe.Pointer(certContext))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) { - r0, _, _ := syscall.SyscallN(procCertDuplicateCertificateContext.Addr(), uintptr(unsafe.Pointer(certContext))) - dupContext = (*CertContext)(unsafe.Pointer(r0)) - return -} - -func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { - r0, _, e1 := syscall.SyscallN(procCertEnumCertificatesInStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(prevContext))) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - err = errnoErr(e1) - } - return -} - -func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) { - r0, _, e1 := syscall.SyscallN(procCertFindCertificateInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) - cert = (*CertContext)(unsafe.Pointer(r0)) - if cert == nil { - err = errnoErr(e1) - } - return -} - -func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) { - r0, _, e1 := syscall.SyscallN(procCertFindChainInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) - certchain = (*CertChainContext)(unsafe.Pointer(r0)) - if certchain == nil { - err = errnoErr(e1) - } - return -} - -func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) { - r0, _, _ := syscall.SyscallN(procCertFindExtension.Addr(), uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) - ret = (*CertExtension)(unsafe.Pointer(r0)) - return -} - -func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.SyscallN(procCertFreeCertificateChain.Addr(), uintptr(unsafe.Pointer(ctx))) - return -} - -func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.SyscallN(procCertFreeCertificateContext.Addr(), uintptr(unsafe.Pointer(ctx))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { - r1, _, e1 := syscall.SyscallN(procCertGetCertificateChain.Addr(), uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { - r0, _, _ := syscall.SyscallN(procCertGetNameStringW.Addr(), uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) - chars = uint32(r0) - return -} - -func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCertOpenStore.Addr(), uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCertOpenSystemStoreW.Addr(), uintptr(hprov), uintptr(unsafe.Pointer(name))) - store = Handle(r0) - if store == 0 { - err = errnoErr(e1) - } - return -} - -func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { - r1, _, e1 := syscall.SyscallN(procCertVerifyCertificateChainPolicy.Addr(), uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) { - var _p0 uint32 - if *callerFreeProvOrNCryptKey { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procCryptAcquireCertificatePrivateKey.Addr(), uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) - *callerFreeProvOrNCryptKey = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procCryptDecodeObject.Addr(), uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.SyscallN(procCryptProtectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { - r1, _, e1 := syscall.SyscallN(procCryptQueryObject.Addr(), uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.SyscallN(procCryptUnprotectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { - r0, _, e1 := syscall.SyscallN(procPFXImportCertStore.Addr(), uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) - store = Handle(r0) - if store == 0 { - err = errnoErr(e1) - } - return -} - -func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { - r0, _, _ := syscall.SyscallN(procDnsNameCompare_W.Addr(), uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2))) - same = r0 != 0 - return -} - -func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - var _p0 *uint16 - _p0, status = syscall.UTF16PtrFromString(name) - if status != nil { - return - } - return _DnsQuery(_p0, qtype, options, extra, qrs, pr) -} - -func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - r0, _, _ := syscall.SyscallN(procDnsQuery_W.Addr(), uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) - if r0 != 0 { - status = syscall.Errno(r0) - } - return -} - -func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.SyscallN(procDnsRecordListFree.Addr(), uintptr(unsafe.Pointer(rl)), uintptr(freetype)) - return -} - -func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.SyscallN(procDwmGetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size)) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.SyscallN(procDwmSetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size)) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { - r0, _, _ := syscall.SyscallN(procCancelMibChangeNotify2.Addr(), uintptr(notificationHandle)) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { - r0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer))) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { - r0, _, _ := syscall.SyscallN(procGetAdaptersInfo.Addr(), uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol))) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { - r0, _, _ := syscall.SyscallN(procGetBestInterfaceEx.Addr(), uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex))) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - r0, _, _ := syscall.SyscallN(procGetIfEntry.Addr(), uintptr(unsafe.Pointer(pIfRow))) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { - r0, _, _ := syscall.SyscallN(procGetIfEntry2Ex.Addr(), uintptr(level), uintptr(unsafe.Pointer(row))) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) { - r0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), uintptr(unsafe.Pointer(row))) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { - var _p0 uint32 - if initialNotification { - _p0 = 1 - } - r0, _, _ := syscall.SyscallN(procNotifyIpInterfaceChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { - var _p0 uint32 - if initialNotification { - _p0 = 1 - } - r0, _, _ := syscall.SyscallN(procNotifyUnicastIpAddressChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func AddDllDirectory(path *uint16) (cookie uintptr, err error) { - r0, _, e1 := syscall.SyscallN(procAddDllDirectory.Addr(), uintptr(unsafe.Pointer(path))) - cookie = uintptr(r0) - if cookie == 0 { - err = errnoErr(e1) - } - return -} - -func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procAssignProcessToJobObject.Addr(), uintptr(job), uintptr(process)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procCancelIo.Addr(), uintptr(s)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CancelIoEx(s Handle, o *Overlapped) (err error) { - r1, _, e1 := syscall.SyscallN(procCancelIoEx.Addr(), uintptr(s), uintptr(unsafe.Pointer(o))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ClearCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procClearCommBreak.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { - r1, _, e1 := syscall.SyscallN(procClearCommError.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procCloseHandle.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ClosePseudoConsole(console Handle) { - syscall.SyscallN(procClosePseudoConsole.Addr(), uintptr(console)) - return -} - -func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.SyscallN(procConnectNamedPipe.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { - r1, _, e1 := syscall.SyscallN(procCreateDirectoryW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateEventExW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess)) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateEventW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateFileMappingW.Addr(), uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procCreateHardLinkW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) - if r1&0xff == 0 { - err = errnoErr(e1) - } - return -} - -func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateIoCompletionPort.Addr(), uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateJobObjectW.Addr(), uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateMutexExW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess)) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if initialOwner { - _p0 = 1 - } - r0, _, e1 := syscall.SyscallN(procCreateMutexW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateNamedPipeW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa))) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procCreatePipe.Addr(), uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { - var _p0 uint32 - if inheritHandles { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procCreateProcessW.Addr(), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) { - r0, _, _ := syscall.SyscallN(procCreatePseudoConsole.Addr(), uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole))) - if r0 != 0 { - hr = syscall.Errno(r0) - } - return -} - -func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procCreateSymbolicLinkW.Addr(), uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) - if r1&0xff == 0 { - err = errnoErr(e1) - } - return -} - -func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procCreateToolhelp32Snapshot.Addr(), uintptr(flags), uintptr(processId)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procDefineDosDeviceW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procDeleteFileW.Addr(), uintptr(unsafe.Pointer(path))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { - syscall.SyscallN(procDeleteProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist))) - return -} - -func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procDeleteVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.SyscallN(procDeviceIoControl.Addr(), uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DisconnectNamedPipe(pipe Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procDisconnectNamedPipe.Addr(), uintptr(pipe)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { - var _p0 uint32 - if bInheritHandle { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procDuplicateHandle.Addr(), uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procEscapeCommFunction.Addr(), uintptr(handle), uintptr(dwFunc)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ExitProcess(exitcode uint32) { - syscall.SyscallN(procExitProcess.Addr(), uintptr(exitcode)) - return -} - -func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procFindClose.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindCloseChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procFindCloseChangeNotification.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(path) - if err != nil { - return - } - return _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter) -} - -func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { - var _p1 uint32 - if watchSubtree { - _p1 = 1 - } - r0, _, e1 := syscall.SyscallN(procFindFirstChangeNotificationW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procFindFirstFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data))) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procFindFirstVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procFindFirstVolumeW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func FindNextChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procFindNextChangeNotification.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func findNextFile1(handle Handle, data *win32finddata1) (err error) { - r1, _, e1 := syscall.SyscallN(procFindNextFileW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procFindNextVolumeMountPointW.Addr(), uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procFindNextVolumeW.Addr(), uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { - r0, _, e1 := syscall.SyscallN(procFindResourceW.Addr(), uintptr(module), uintptr(name), uintptr(resType)) - resInfo = Handle(r0) - if resInfo == 0 { - err = errnoErr(e1) - } - return -} - -func FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procFindVolumeClose.Addr(), uintptr(findVolume)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procFindVolumeMountPointClose.Addr(), uintptr(findVolumeMountPoint)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FlushConsoleInputBuffer(console Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procFlushConsoleInputBuffer.Addr(), uintptr(console)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procFlushViewOfFile.Addr(), uintptr(addr), uintptr(length)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { - var _p0 *uint16 - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := syscall.SyscallN(procFormatMessageW.Addr(), uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args))) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procFreeEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(envs))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procFreeLibrary.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGenerateConsoleCtrlEvent.Addr(), uintptr(ctrlEvent), uintptr(processGroupID)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetACP() (acp uint32) { - r0, _, _ := syscall.SyscallN(procGetACP.Addr()) - acp = uint32(r0) - return -} - -func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.SyscallN(procGetActiveProcessorCount.Addr(), uintptr(groupNumber)) - ret = uint32(r0) - return -} - -func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetCommModemStatus.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpModemStat))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.SyscallN(procGetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.SyscallN(procGetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.SyscallN(procGetCommandLineW.Addr()) - cmd = (*uint16)(unsafe.Pointer(r0)) - return -} - -func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetComputerNameExW.Addr(), uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetComputerName(buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetComputerNameW.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetConsoleCP() (cp uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetConsoleCP.Addr()) - cp = uint32(r0) - if cp == 0 { - err = errnoErr(e1) - } - return -} - -func GetConsoleMode(console Handle, mode *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetConsoleMode.Addr(), uintptr(console), uintptr(unsafe.Pointer(mode))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetConsoleOutputCP() (cp uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetConsoleOutputCP.Addr()) - cp = uint32(r0) - if cp == 0 { - err = errnoErr(e1) - } - return -} - -func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { - r1, _, e1 := syscall.SyscallN(procGetConsoleScreenBufferInfo.Addr(), uintptr(console), uintptr(unsafe.Pointer(info))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetCurrentDirectoryW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf))) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.SyscallN(procGetCurrentProcessId.Addr()) - pid = uint32(r0) - return -} - -func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.SyscallN(procGetCurrentThreadId.Addr()) - id = uint32(r0) - return -} - -func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { - r1, _, e1 := syscall.SyscallN(procGetDiskFreeSpaceExW.Addr(), uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetDriveType(rootPathName *uint16) (driveType uint32) { - r0, _, _ := syscall.SyscallN(procGetDriveTypeW.Addr(), uintptr(unsafe.Pointer(rootPathName))) - driveType = uint32(r0) - return -} - -func GetEnvironmentStrings() (envs *uint16, err error) { - r0, _, e1 := syscall.SyscallN(procGetEnvironmentStringsW.Addr()) - envs = (*uint16)(unsafe.Pointer(r0)) - if envs == nil { - err = errnoErr(e1) - } - return -} - -func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetExitCodeProcess.Addr(), uintptr(handle), uintptr(unsafe.Pointer(exitcode))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procGetFileAttributesExW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileAttributes(name *uint16) (attrs uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name))) - attrs = uint32(r0) - if attrs == INVALID_FILE_ATTRIBUTES { - err = errnoErr(e1) - } - return -} - -func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { - r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandle.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandleEx.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.SyscallN(procGetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetFileType.Addr(), uintptr(filehandle)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetFinalPathNameByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetFullPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname))) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetLargePageMinimum() (size uintptr) { - r0, _, _ := syscall.SyscallN(procGetLargePageMinimum.Addr()) - size = uintptr(r0) - return -} - -func GetLastError() (lasterr error) { - r0, _, _ := syscall.SyscallN(procGetLastError.Addr()) - if r0 != 0 { - lasterr = syscall.Errno(r0) - } - return -} - -func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetLogicalDriveStringsW.Addr(), uintptr(bufferLength), uintptr(unsafe.Pointer(buffer))) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetLogicalDrives() (drivesBitMask uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetLogicalDrives.Addr()) - drivesBitMask = uint32(r0) - if drivesBitMask == 0 { - err = errnoErr(e1) - } - return -} - -func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetLongPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.SyscallN(procGetMaximumProcessorCount.Addr(), uintptr(groupNumber)) - ret = uint32(r0) - return -} - -func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetModuleFileNameW.Addr(), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procGetModuleHandleExW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetNamedPipeClientProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetNamedPipeHandleStateW.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetNamedPipeInfo.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetNamedPipeServerProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetNumberOfConsoleInputEvents.Addr(), uintptr(console), uintptr(unsafe.Pointer(numevents))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { - var _p0 uint32 - if wait { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procGetOverlappedResult.Addr(), uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetPriorityClass(process Handle) (ret uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetPriorityClass.Addr(), uintptr(process)) - ret = uint32(r0) - if ret == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(procname) - if err != nil { - return - } - return _GetProcAddress(module, _p0) -} - -func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { - r0, _, e1 := syscall.SyscallN(procGetProcAddress.Addr(), uintptr(module), uintptr(unsafe.Pointer(procname))) - proc = uintptr(r0) - if proc == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcessId(process Handle) (id uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetProcessId.Addr(), uintptr(process)) - id = uint32(r0) - if id == 0 { - err = errnoErr(e1) - } - return -} - -func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetProcessPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetProcessShutdownParameters.Addr(), uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { - r1, _, e1 := syscall.SyscallN(procGetProcessTimes.Addr(), uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { - syscall.SyscallN(procGetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags))) - return -} - -func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetShortPathNameW.Addr(), uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func getStartupInfo(startupInfo *StartupInfo) { - syscall.SyscallN(procGetStartupInfoW.Addr(), uintptr(unsafe.Pointer(startupInfo))) - return -} - -func GetStdHandle(stdhandle uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procGetStdHandle.Addr(), uintptr(stdhandle)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetSystemDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) - len = uint32(r0) - if len == 0 { - err = errnoErr(e1) - } - return -} - -func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetSystemPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetSystemTimeAsFileTime(time *Filetime) { - syscall.SyscallN(procGetSystemTimeAsFileTime.Addr(), uintptr(unsafe.Pointer(time))) - return -} - -func GetSystemTimePreciseAsFileTime(time *Filetime) { - syscall.SyscallN(procGetSystemTimePreciseAsFileTime.Addr(), uintptr(unsafe.Pointer(time))) - return -} - -func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetSystemWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) - len = uint32(r0) - if len == 0 { - err = errnoErr(e1) - } - return -} - -func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetTempPathW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf))) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetThreadPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getTickCount64() (ms uint64) { - r0, _, _ := syscall.SyscallN(procGetTickCount64.Addr()) - ms = uint64(r0) - return -} - -func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetTimeZoneInformation.Addr(), uintptr(unsafe.Pointer(tzi))) - rc = uint32(r0) - if rc == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetUserPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVersion() (ver uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetVersion.Addr()) - ver = uint32(r0) - if ver == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetVolumeInformationByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetVolumeInformationW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetVolumeNameForVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetVolumePathNameW.Addr(), uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetVolumePathNamesForVolumeNameW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) - len = uint32(r0) - if len == 0 { - err = errnoErr(e1) - } - return -} - -func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procInitializeProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func IsWow64Process(handle Handle, isWow64 *bool) (err error) { - var _p0 uint32 - if *isWow64 { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procIsWow64Process.Addr(), uintptr(handle), uintptr(unsafe.Pointer(&_p0))) - *isWow64 = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) { - err = procIsWow64Process2.Find() - if err != nil { - return - } - r1, _, e1 := syscall.SyscallN(procIsWow64Process2.Addr(), uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(libname) - if err != nil { - return - } - return _LoadLibraryEx(_p0, zero, flags) -} - -func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procLoadLibraryExW.Addr(), uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func LoadLibrary(libname string) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(libname) - if err != nil { - return - } - return _LoadLibrary(_p0) -} - -func _LoadLibrary(libname *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procLoadLibraryW.Addr(), uintptr(unsafe.Pointer(libname))) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { - r0, _, e1 := syscall.SyscallN(procLoadResource.Addr(), uintptr(module), uintptr(resInfo)) - resData = Handle(r0) - if resData == 0 { - err = errnoErr(e1) - } - return -} - -func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { - r0, _, e1 := syscall.SyscallN(procLocalAlloc.Addr(), uintptr(flags), uintptr(length)) - ptr = uintptr(r0) - if ptr == 0 { - err = errnoErr(e1) - } - return -} - -func LocalFree(hmem Handle) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procLocalFree.Addr(), uintptr(hmem)) - handle = Handle(r0) - if handle != 0 { - err = errnoErr(e1) - } - return -} - -func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.SyscallN(procLockFileEx.Addr(), uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func LockResource(resData Handle) (addr uintptr, err error) { - r0, _, e1 := syscall.SyscallN(procLockResource.Addr(), uintptr(resData)) - addr = uintptr(r0) - if addr == 0 { - err = errnoErr(e1) - } - return -} - -func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { - r0, _, e1 := syscall.SyscallN(procMapViewOfFile.Addr(), uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length)) - addr = uintptr(r0) - if addr == 0 { - err = errnoErr(e1) - } - return -} - -func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.SyscallN(procModule32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.SyscallN(procModule32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procMoveFileExW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func MoveFile(from *uint16, to *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procMoveFileW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { - r0, _, e1 := syscall.SyscallN(procMultiByteToWideChar.Addr(), uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) - nwrite = int32(r0) - if nwrite == 0 { - err = errnoErr(e1) - } - return -} - -func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } - r0, _, e1 := syscall.SyscallN(procOpenEventW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } - r0, _, e1 := syscall.SyscallN(procOpenMutexW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } - r0, _, e1 := syscall.SyscallN(procOpenProcess.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } - r0, _, e1 := syscall.SyscallN(procOpenThread.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) - handle = Handle(r0) - if handle == 0 { - err = errnoErr(e1) - } - return -} - -func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.SyscallN(procPostQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.SyscallN(procProcess32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.SyscallN(procProcess32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procProcessIdToSessionId.Addr(), uintptr(pid), uintptr(unsafe.Pointer(sessionid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func PulseEvent(event Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procPulseEvent.Addr(), uintptr(event)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func PurgeComm(handle Handle, dwFlags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procPurgeComm.Addr(), uintptr(handle), uintptr(dwFlags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { - r0, _, e1 := syscall.SyscallN(procQueryDosDeviceW.Addr(), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procQueryFullProcessImageNameW.Addr(), uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procQueryInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procReadConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - var _p0 uint32 - if watchSubTree { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procReadDirectoryChangesW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.SyscallN(procReadFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procReadProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ReleaseMutex(mutex Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procReleaseMutex.Addr(), uintptr(mutex)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procRemoveDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func RemoveDllDirectory(cookie uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procRemoveDllDirectory.Addr(), uintptr(cookie)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procResetEvent.Addr(), uintptr(event)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { - r0, _, _ := syscall.SyscallN(procResizePseudoConsole.Addr(), uintptr(pconsole), uintptr(size)) - if r0 != 0 { - hr = syscall.Errno(r0) - } - return -} - -func ResumeThread(thread Handle) (ret uint32, err error) { - r0, _, e1 := syscall.SyscallN(procResumeThread.Addr(), uintptr(thread)) - ret = uint32(r0) - if ret == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func SetCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procSetCommBreak.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetCommMask.Addr(), uintptr(handle), uintptr(dwEvtMask)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.SyscallN(procSetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.SyscallN(procSetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetConsoleCP(cp uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetConsoleCP.Addr(), uintptr(cp)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setConsoleCursorPosition(console Handle, position uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetConsoleCursorPosition.Addr(), uintptr(console), uintptr(position)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetConsoleMode(console Handle, mode uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetConsoleMode.Addr(), uintptr(console), uintptr(mode)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetConsoleOutputCP(cp uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetConsoleOutputCP.Addr(), uintptr(cp)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procSetCurrentDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetDefaultDllDirectories(directoryFlags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetDefaultDllDirectories.Addr(), uintptr(directoryFlags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetDllDirectory(path string) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(path) - if err != nil { - return - } - return _SetDllDirectory(_p0) -} - -func _SetDllDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procSetDllDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procSetEndOfFile.Addr(), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procSetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetErrorMode(mode uint32) (ret uint32) { - r0, _, _ := syscall.SyscallN(procSetErrorMode.Addr(), uintptr(mode)) - ret = uint32(r0) - return -} - -func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procSetEvent.Addr(), uintptr(event)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFileAttributes(name *uint16, attrs uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(attrs)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.SyscallN(procSetFileCompletionNotificationModes.Addr(), uintptr(handle), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetFileInformationByHandle.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { - r0, _, e1 := syscall.SyscallN(procSetFilePointer.Addr(), uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence)) - newlowoffset = uint32(r0) - if newlowoffset == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.SyscallN(procSetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetFileValidData(handle Handle, validDataLength int64) (err error) { - r1, _, e1 := syscall.SyscallN(procSetFileValidData.Addr(), uintptr(handle), uintptr(validDataLength)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetHandleInformation.Addr(), uintptr(handle), uintptr(mask), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { - r0, _, e1 := syscall.SyscallN(procSetInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength)) - ret = int(r0) - if ret == 0 { - err = errnoErr(e1) - } - return -} - -func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetNamedPipeHandleState.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetPriorityClass(process Handle, priorityClass uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetPriorityClass.Addr(), uintptr(process), uintptr(priorityClass)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetProcessPriorityBoost(process Handle, disable bool) (err error) { - var _p0 uint32 - if disable { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procSetProcessPriorityBoost.Addr(), uintptr(process), uintptr(_p0)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetProcessShutdownParameters.Addr(), uintptr(level), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetStdHandle(stdhandle uint32, handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procSetStdHandle.Addr(), uintptr(stdhandle), uintptr(handle)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procSetVolumeLabelW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procSetVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupComm.Addr(), uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { - r0, _, e1 := syscall.SyscallN(procSizeofResource.Addr(), uintptr(module), uintptr(resInfo)) - size = uint32(r0) - if size == 0 { - err = errnoErr(e1) - } - return -} - -func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { - var _p0 uint32 - if alertable { - _p0 = 1 - } - r0, _, _ := syscall.SyscallN(procSleepEx.Addr(), uintptr(milliseconds), uintptr(_p0)) - ret = uint32(r0) - return -} - -func TerminateJobObject(job Handle, exitCode uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procTerminateJobObject.Addr(), uintptr(job), uintptr(exitCode)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procTerminateProcess.Addr(), uintptr(handle), uintptr(exitcode)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.SyscallN(procThread32First.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.SyscallN(procThread32Next.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.SyscallN(procUnlockFileEx.Addr(), uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procUnmapViewOfFile.Addr(), uintptr(addr)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procUpdateProcThreadAttribute.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { - r0, _, e1 := syscall.SyscallN(procVirtualAlloc.Addr(), uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect)) - value = uintptr(r0) - if value == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procVirtualFree.Addr(), uintptr(address), uintptr(size), uintptr(freetype)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procVirtualLock.Addr(), uintptr(addr), uintptr(length)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procVirtualProtect.Addr(), uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procVirtualProtectEx.Addr(), uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procVirtualQuery.Addr(), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procVirtualQueryEx.Addr(), uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procVirtualUnlock.Addr(), uintptr(addr), uintptr(length)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WTSGetActiveConsoleSessionId() (sessionID uint32) { - r0, _, _ := syscall.SyscallN(procWTSGetActiveConsoleSessionId.Addr()) - sessionID = uint32(r0) - return -} - -func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { - r1, _, e1 := syscall.SyscallN(procWaitCommEvent.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { - var _p0 uint32 - if waitAll { - _p0 = 1 - } - r0, _, e1 := syscall.SyscallN(procWaitForMultipleObjects.Addr(), uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds)) - event = uint32(r0) - if event == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { - r0, _, e1 := syscall.SyscallN(procWaitForSingleObject.Addr(), uintptr(handle), uintptr(waitMilliseconds)) - event = uint32(r0) - if event == 0xffffffff { - err = errnoErr(e1) - } - return -} - -func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procWriteConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.SyscallN(procWriteFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procWriteProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.SyscallN(procAcceptEx.Addr(), uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { - syscall.SyscallN(procGetAcceptExSockaddrs.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen))) - return -} - -func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procTransmitFile.Addr(), uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func NetApiBufferFree(buf *byte) (neterr error) { - r0, _, _ := syscall.SyscallN(procNetApiBufferFree.Addr(), uintptr(unsafe.Pointer(buf))) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { - r0, _, _ := syscall.SyscallN(procNetGetJoinInformation.Addr(), uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { - r0, _, _ := syscall.SyscallN(procNetUserEnum.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle))) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { - r0, _, _ := syscall.SyscallN(procNetUserGetInfo.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf))) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procNtCreateFile.Addr(), uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength)) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procNtCreateNamedPipeFile.Addr(), uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout))) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procNtQueryInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen))) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procNtQuerySystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen))) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procNtSetInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class)) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procNtSetInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen)) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procNtSetSystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { - r0, _, _ := syscall.SyscallN(procRtlAddFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) - ret = r0 != 0 - return -} - -func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procRtlDefaultNpAcl.Addr(), uintptr(unsafe.Pointer(acl))) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { - r0, _, _ := syscall.SyscallN(procRtlDeleteFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable))) - ret = r0 != 0 - return -} - -func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName))) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName))) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlGetCurrentPeb() (peb *PEB) { - r0, _, _ := syscall.SyscallN(procRtlGetCurrentPeb.Addr()) - peb = (*PEB)(unsafe.Pointer(r0)) - return -} - -func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { - syscall.SyscallN(procRtlGetNtVersionNumbers.Addr(), uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) - return -} - -func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { - r0, _, _ := syscall.SyscallN(procRtlGetVersion.Addr(), uintptr(unsafe.Pointer(info))) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlInitString(destinationString *NTString, sourceString *byte) { - syscall.SyscallN(procRtlInitString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString))) - return -} - -func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { - syscall.SyscallN(procRtlInitUnicodeString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString))) - return -} - -func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { - r0, _, _ := syscall.SyscallN(procRtlNtStatusToDosErrorNoTeb.Addr(), uintptr(ntstatus)) - ret = syscall.Errno(r0) - return -} - -func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { - r0, _, _ := syscall.SyscallN(procCLSIDFromString.Addr(), uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func coCreateGuid(pguid *GUID) (ret error) { - r0, _, _ := syscall.SyscallN(procCoCreateGuid.Addr(), uintptr(unsafe.Pointer(pguid))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { - r0, _, _ := syscall.SyscallN(procCoGetObject.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { - r0, _, _ := syscall.SyscallN(procCoInitializeEx.Addr(), uintptr(reserved), uintptr(coInit)) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func CoTaskMemFree(address unsafe.Pointer) { - syscall.SyscallN(procCoTaskMemFree.Addr(), uintptr(address)) - return -} - -func CoUninitialize() { - syscall.SyscallN(procCoUninitialize.Addr()) - return -} - -func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { - r0, _, _ := syscall.SyscallN(procStringFromGUID2.Addr(), uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) - chars = int32(r0) - return -} - -func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procEnumProcessModules.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procEnumProcessModulesEx.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procEnumProcesses.Addr(), uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetModuleBaseNameW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetModuleFileNameExW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetModuleInformation.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procQueryWorkingSetEx.Addr(), uintptr(process), uintptr(pv), uintptr(cb)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) { - ret = procSubscribeServiceChangeNotifications.Find() - if ret != nil { - return - } - r0, _, _ := syscall.SyscallN(procSubscribeServiceChangeNotifications.Addr(), uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { - err = procUnsubscribeServiceChangeNotifications.Find() - if err != nil { - return - } - syscall.SyscallN(procUnsubscribeServiceChangeNotifications.Addr(), uintptr(subscription)) - return -} - -func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetUserNameExW.Addr(), uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) - if r1&0xff == 0 { - err = errnoErr(e1) - } - return -} - -func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procTranslateNameW.Addr(), uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize))) - if r1&0xff == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiBuildDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiCallClassInstaller.Addr(), uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiCancelDriverInfoSearch.Addr(), uintptr(deviceInfoSet)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiClassGuidsFromNameExW.Addr(), uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiClassNameFromGuidExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoListExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) - handle = DevInfo(r0) - if handle == DevInfo(InvalidHandle) { - err = errnoErr(e1) - } - return -} - -func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDeviceInfoList.Addr(), uintptr(deviceInfoSet)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiEnumDeviceInfo.Addr(), uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiEnumDriverInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.SyscallN(procSetupDiGetClassDevsExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) - handle = DevInfo(r0) - if handle == DevInfo(InvalidHandle) { - err = errnoErr(e1) - } - return -} - -func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInfoListDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstanceIdW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetDevicePropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetDriverInfoDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { - r0, _, e1 := syscall.SyscallN(procSetupDiOpenDevRegKey.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) - key = Handle(r0) - if key == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiSetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procSetupUninstallOEMInfW.Addr(), uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { - r0, _, e1 := syscall.SyscallN(procCommandLineToArgvW.Addr(), uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc))) - argv = (**uint16)(unsafe.Pointer(r0)) - if argv == nil { - err = errnoErr(e1) - } - return -} - -func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { - r0, _, _ := syscall.SyscallN(procSHGetKnownFolderPath.Addr(), uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { - r1, _, e1 := syscall.SyscallN(procShellExecuteW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) - if r1 <= 32 { - err = errnoErr(e1) - } - return -} - -func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { - syscall.SyscallN(procEnumChildWindows.Addr(), uintptr(hwnd), uintptr(enumFunc), uintptr(param)) - return -} - -func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { - r1, _, e1 := syscall.SyscallN(procEnumWindows.Addr(), uintptr(enumFunc), uintptr(param)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ExitWindowsEx(flags uint32, reason uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procExitWindowsEx.Addr(), uintptr(flags), uintptr(reason)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { - r0, _, e1 := syscall.SyscallN(procGetClassNameW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) - copied = int32(r0) - if copied == 0 { - err = errnoErr(e1) - } - return -} - -func GetDesktopWindow() (hwnd HWND) { - r0, _, _ := syscall.SyscallN(procGetDesktopWindow.Addr()) - hwnd = HWND(r0) - return -} - -func GetForegroundWindow() (hwnd HWND) { - r0, _, _ := syscall.SyscallN(procGetForegroundWindow.Addr()) - hwnd = HWND(r0) - return -} - -func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { - r1, _, e1 := syscall.SyscallN(procGetGUIThreadInfo.Addr(), uintptr(thread), uintptr(unsafe.Pointer(info))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetKeyboardLayout(tid uint32) (hkl Handle) { - r0, _, _ := syscall.SyscallN(procGetKeyboardLayout.Addr(), uintptr(tid)) - hkl = Handle(r0) - return -} - -func GetShellWindow() (shellWindow HWND) { - r0, _, _ := syscall.SyscallN(procGetShellWindow.Addr()) - shellWindow = HWND(r0) - return -} - -func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetWindowThreadProcessId.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(pid))) - tid = uint32(r0) - if tid == 0 { - err = errnoErr(e1) - } - return -} - -func IsWindow(hwnd HWND) (isWindow bool) { - r0, _, _ := syscall.SyscallN(procIsWindow.Addr(), uintptr(hwnd)) - isWindow = r0 != 0 - return -} - -func IsWindowUnicode(hwnd HWND) (isUnicode bool) { - r0, _, _ := syscall.SyscallN(procIsWindowUnicode.Addr(), uintptr(hwnd)) - isUnicode = r0 != 0 - return -} - -func IsWindowVisible(hwnd HWND) (isVisible bool) { - r0, _, _ := syscall.SyscallN(procIsWindowVisible.Addr(), uintptr(hwnd)) - isVisible = r0 != 0 - return -} - -func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { - r0, _, e1 := syscall.SyscallN(procLoadKeyboardLayoutW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags)) - hkl = Handle(r0) - if hkl == 0 { - err = errnoErr(e1) - } - return -} - -func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { - r0, _, e1 := syscall.SyscallN(procMessageBoxW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype)) - ret = int32(r0) - if ret == 0 { - err = errnoErr(e1) - } - return -} - -func ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) { - r0, _, _ := syscall.SyscallN(procToUnicodeEx.Addr(), uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl)) - ret = int32(r0) - return -} - -func UnloadKeyboardLayout(hkl Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procUnloadKeyboardLayout.Addr(), uintptr(hkl)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { - var _p0 uint32 - if inheritExisting { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procCreateEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DestroyEnvironmentBlock(block *uint16) (err error) { - r1, _, e1 := syscall.SyscallN(procDestroyEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procGetUserProfileDirectoryW.Addr(), uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(filename) - if err != nil { - return - } - return _GetFileVersionInfoSize(_p0, zeroHandle) -} - -func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { - r0, _, e1 := syscall.SyscallN(procGetFileVersionInfoSizeW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle))) - bufSize = uint32(r0) - if bufSize == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(filename) - if err != nil { - return - } - return _GetFileVersionInfo(_p0, handle, bufSize, buffer) -} - -func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - r1, _, e1 := syscall.SyscallN(procGetFileVersionInfoW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(subBlock) - if err != nil { - return - } - return _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize) -} - -func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procVerQueryValueW.Addr(), uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func TimeBeginPeriod(period uint32) (err error) { - r1, _, e1 := syscall.SyscallN(proctimeBeginPeriod.Addr(), uintptr(period)) - if r1 != 0 { - err = errnoErr(e1) - } - return -} - -func TimeEndPeriod(period uint32) (err error) { - r1, _, e1 := syscall.SyscallN(proctimeEndPeriod.Addr(), uintptr(period)) - if r1 != 0 { - err = errnoErr(e1) - } - return -} - -func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { - r0, _, _ := syscall.SyscallN(procWinVerifyTrustEx.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.SyscallN(procFreeAddrInfoW.Addr(), uintptr(unsafe.Pointer(addrinfo))) - return -} - -func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { - r0, _, _ := syscall.SyscallN(procGetAddrInfoW.Addr(), uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result))) - if r0 != 0 { - sockerr = syscall.Errno(r0) - } - return -} - -func WSACleanup() (err error) { - r1, _, e1 := syscall.SyscallN(procWSACleanup.Addr()) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) { - r1, _, e1 := syscall.SyscallN(procWSADuplicateSocketW.Addr(), uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) - if r1 != 0 { - err = errnoErr(e1) - } - return -} - -func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.SyscallN(procWSAEnumProtocolsW.Addr(), uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) - n = int32(r0) - if n == -1 { - err = errnoErr(e1) - } - return -} - -func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { - var _p0 uint32 - if wait { - _p0 = 1 - } - r1, _, e1 := syscall.SyscallN(procWSAGetOverlappedResult.Addr(), uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - r1, _, e1 := syscall.SyscallN(procWSAIoctl.Addr(), uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procWSALookupServiceBeginW.Addr(), uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSALookupServiceEnd(handle Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procWSALookupServiceEnd.Addr(), uintptr(handle)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { - r1, _, e1 := syscall.SyscallN(procWSALookupServiceNextW.Addr(), uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procWSARecv.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procWSARecvFrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procWSASend.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.SyscallN(procWSASendTo.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procWSASocketW.Addr(), uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { - r0, _, _ := syscall.SyscallN(procWSAStartup.Addr(), uintptr(verreq), uintptr(unsafe.Pointer(data))) - if r0 != 0 { - sockerr = syscall.Errno(r0) - } - return -} - -func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.SyscallN(procbind.Addr(), uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.SyscallN(procclosesocket.Addr(), uintptr(s)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.SyscallN(procconnect.Addr(), uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func GetHostByName(name string) (h *Hostent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - return _GetHostByName(_p0) -} - -func _GetHostByName(name *byte) (h *Hostent, err error) { - r0, _, e1 := syscall.SyscallN(procgethostbyname.Addr(), uintptr(unsafe.Pointer(name))) - h = (*Hostent)(unsafe.Pointer(r0)) - if h == nil { - err = errnoErr(e1) - } - return -} - -func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.SyscallN(procgetpeername.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func GetProtoByName(name string) (p *Protoent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - return _GetProtoByName(_p0) -} - -func _GetProtoByName(name *byte) (p *Protoent, err error) { - r0, _, e1 := syscall.SyscallN(procgetprotobyname.Addr(), uintptr(unsafe.Pointer(name))) - p = (*Protoent)(unsafe.Pointer(r0)) - if p == nil { - err = errnoErr(e1) - } - return -} - -func GetServByName(name string, proto string) (s *Servent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - var _p1 *byte - _p1, err = syscall.BytePtrFromString(proto) - if err != nil { - return - } - return _GetServByName(_p0, _p1) -} - -func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { - r0, _, e1 := syscall.SyscallN(procgetservbyname.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto))) - s = (*Servent)(unsafe.Pointer(r0)) - if s == nil { - err = errnoErr(e1) - } - return -} - -func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.SyscallN(procgetsockname.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { - r1, _, e1 := syscall.SyscallN(procgetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func listen(s Handle, backlog int32) (err error) { - r1, _, e1 := syscall.SyscallN(proclisten.Addr(), uintptr(s), uintptr(backlog)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.SyscallN(procntohs.Addr(), uintptr(netshort)) - u = uint16(r0) - return -} - -func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := syscall.SyscallN(procrecvfrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int32(r0) - if n == -1 { - err = errnoErr(e1) - } - return -} - -func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.SyscallN(procsendto.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { - r1, _, e1 := syscall.SyscallN(procsetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func shutdown(s Handle, how int32) (err error) { - r1, _, e1 := syscall.SyscallN(procshutdown.Addr(), uintptr(s), uintptr(how)) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { - r0, _, e1 := syscall.SyscallN(procsocket.Addr(), uintptr(af), uintptr(typ), uintptr(protocol)) - handle = Handle(r0) - if handle == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { - r1, _, e1 := syscall.SyscallN(procWTSEnumerateSessionsW.Addr(), uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func WTSFreeMemory(ptr uintptr) { - syscall.SyscallN(procWTSFreeMemory.Addr(), uintptr(ptr)) - return -} - -func WTSQueryUserToken(session uint32, token *Token) (err error) { - r1, _, e1 := syscall.SyscallN(procWTSQueryUserToken.Addr(), uintptr(session), uintptr(unsafe.Pointer(token))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/text/LICENSE b/vendor/golang.org/x/text/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/vendor/golang.org/x/text/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -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. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -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. diff --git a/vendor/golang.org/x/text/PATENTS b/vendor/golang.org/x/text/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/text/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go deleted file mode 100644 index 48ec64b..0000000 --- a/vendor/golang.org/x/text/transform/transform.go +++ /dev/null @@ -1,709 +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 transform provides reader and writer wrappers that transform the -// bytes passing through as well as various transformations. Example -// transformations provided by other packages include normalization and -// conversion between character sets. -package transform // import "golang.org/x/text/transform" - -import ( - "bytes" - "errors" - "io" - "unicode/utf8" -) - -var ( - // ErrShortDst means that the destination buffer was too short to - // receive all of the transformed bytes. - ErrShortDst = errors.New("transform: short destination buffer") - - // ErrShortSrc means that the source buffer has insufficient data to - // complete the transformation. - ErrShortSrc = errors.New("transform: short source buffer") - - // ErrEndOfSpan means that the input and output (the transformed input) - // are not identical. - ErrEndOfSpan = errors.New("transform: input and output are not identical") - - // errInconsistentByteCount means that Transform returned success (nil - // error) but also returned nSrc inconsistent with the src argument. - errInconsistentByteCount = errors.New("transform: inconsistent byte count returned") - - // errShortInternal means that an internal buffer is not large enough - // to make progress and the Transform operation must be aborted. - errShortInternal = errors.New("transform: short internal buffer") -) - -// Transformer transforms bytes. -type Transformer interface { - // Transform writes to dst the transformed bytes read from src, and - // returns the number of dst bytes written and src bytes read. The - // atEOF argument tells whether src represents the last bytes of the - // input. - // - // Callers should always process the nDst bytes produced and account - // for the nSrc bytes consumed before considering the error err. - // - // A nil error means that all of the transformed bytes (whether freshly - // transformed from src or left over from previous Transform calls) - // were written to dst. A nil error can be returned regardless of - // whether atEOF is true. If err is nil then nSrc must equal len(src); - // the converse is not necessarily true. - // - // ErrShortDst means that dst was too short to receive all of the - // transformed bytes. ErrShortSrc means that src had insufficient data - // to complete the transformation. If both conditions apply, then - // either error may be returned. Other than the error conditions listed - // here, implementations are free to report other errors that arise. - Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) - - // Reset resets the state and allows a Transformer to be reused. - Reset() -} - -// SpanningTransformer extends the Transformer interface with a Span method -// that determines how much of the input already conforms to the Transformer. -type SpanningTransformer interface { - Transformer - - // Span returns a position in src such that transforming src[:n] results in - // identical output src[:n] for these bytes. It does not necessarily return - // the largest such n. The atEOF argument tells whether src represents the - // last bytes of the input. - // - // Callers should always account for the n bytes consumed before - // 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 - // equal len(src); the converse is not necessarily true. - // - // ErrEndOfSpan means that the Transformer output may differ from the - // input after n bytes. Note that n may be len(src), meaning that the output - // would contain additional bytes after otherwise identical output. - // ErrShortSrc means that src had insufficient data to determine whether the - // remaining bytes would change. Other than the error conditions listed - // here, implementations are free to report other errors that arise. - // - // Calling Span can modify the Transformer state as a side effect. In - // effect, it does the transformation just as calling Transform would, only - // without copying to a destination buffer and only up to a point it can - // determine the input and output bytes are the same. This is obviously more - // limited than calling Transform, but can be more efficient in terms of - // copying and allocating buffers. Calls to Span and Transform may be - // interleaved. - Span(src []byte, atEOF bool) (n int, err error) -} - -// NopResetter can be embedded by implementations of Transformer to add a nop -// Reset method. -type NopResetter struct{} - -// Reset implements the Reset method of the Transformer interface. -func (NopResetter) Reset() {} - -// Reader wraps another io.Reader by transforming the bytes read. -type Reader struct { - r io.Reader - t Transformer - err error - - // dst[dst0:dst1] contains bytes that have been transformed by t but - // not yet copied out via Read. - dst []byte - dst0, dst1 int - - // src[src0:src1] contains bytes that have been read from r but not - // yet transformed through t. - src []byte - src0, src1 int - - // transformComplete is whether the transformation is complete, - // regardless of whether or not it was successful. - transformComplete bool -} - -const defaultBufSize = 4096 - -// NewReader returns a new Reader that wraps r by transforming the bytes read -// via t. It calls Reset on t. -func NewReader(r io.Reader, t Transformer) *Reader { - t.Reset() - return &Reader{ - r: r, - t: t, - dst: make([]byte, defaultBufSize), - src: make([]byte, defaultBufSize), - } -} - -// Read implements the io.Reader interface. -func (r *Reader) Read(p []byte) (int, error) { - n, err := 0, error(nil) - for { - // Copy out any transformed bytes and return the final error if we are done. - if r.dst0 != r.dst1 { - n = copy(p, r.dst[r.dst0:r.dst1]) - r.dst0 += n - if r.dst0 == r.dst1 && r.transformComplete { - return n, r.err - } - return n, nil - } else if r.transformComplete { - return 0, r.err - } - - // Try to transform some source bytes, or to flush the transformer if we - // are out of source bytes. We do this even if r.r.Read returned an error. - // As the io.Reader documentation says, "process the n > 0 bytes returned - // before considering the error". - if r.src0 != r.src1 || r.err != nil { - r.dst0 = 0 - r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF) - r.src0 += n - - switch { - case err == nil: - if r.src0 != r.src1 { - r.err = errInconsistentByteCount - } - // The Transform call was successful; we are complete if we - // cannot read more bytes into src. - r.transformComplete = r.err != nil - continue - case err == ErrShortDst && (r.dst1 != 0 || n != 0): - // Make room in dst by copying out, and try again. - continue - case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil: - // Read more bytes into src via the code below, and try again. - default: - r.transformComplete = true - // The reader error (r.err) takes precedence over the - // transformer error (err) unless r.err is nil or io.EOF. - if r.err == nil || r.err == io.EOF { - r.err = err - } - continue - } - } - - // Move any untransformed source bytes to the start of the buffer - // and read more bytes. - if r.src0 != 0 { - r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1]) - } - n, r.err = r.r.Read(r.src[r.src1:]) - r.src1 += n - } -} - -// TODO: implement ReadByte (and ReadRune??). - -// Writer wraps another io.Writer by transforming the bytes read. -// The user needs to call Close to flush unwritten bytes that may -// be buffered. -type Writer struct { - w io.Writer - t Transformer - dst []byte - - // src[:n] contains bytes that have not yet passed through t. - src []byte - n int -} - -// NewWriter returns a new Writer that wraps w by transforming the bytes written -// via t. It calls Reset on t. -func NewWriter(w io.Writer, t Transformer) *Writer { - t.Reset() - return &Writer{ - w: w, - t: t, - dst: make([]byte, defaultBufSize), - src: make([]byte, defaultBufSize), - } -} - -// Write implements the io.Writer interface. If there are not enough -// bytes available to complete a Transform, the bytes will be buffered -// for the next write. Call Close to convert the remaining bytes. -func (w *Writer) Write(data []byte) (n int, err error) { - src := data - if w.n > 0 { - // Append bytes from data to the last remainder. - // TODO: limit the amount copied on first try. - n = copy(w.src[w.n:], data) - w.n += n - src = w.src[:w.n] - } - for { - nDst, nSrc, err := w.t.Transform(w.dst, src, false) - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return n, werr - } - src = src[nSrc:] - if w.n == 0 { - n += nSrc - } else if len(src) <= n { - // Enough bytes from w.src have been consumed. We make src point - // to data instead to reduce the copying. - w.n = 0 - n -= len(src) - src = data[n:] - if n < len(data) && (err == nil || err == ErrShortSrc) { - continue - } - } - switch err { - case ErrShortDst: - // This error is okay as long as we are making progress. - if nDst > 0 || nSrc > 0 { - continue - } - case ErrShortSrc: - if len(src) < len(w.src) { - m := copy(w.src, src) - // If w.n > 0, bytes from data were already copied to w.src and n - // was already set to the number of bytes consumed. - if w.n == 0 { - n += m - } - w.n = m - err = nil - } else if nDst > 0 || nSrc > 0 { - // Not enough buffer to store the remainder. Keep processing as - // long as there is progress. Without this case, transforms that - // require a lookahead larger than the buffer may result in an - // error. This is not something one may expect to be common in - // practice, but it may occur when buffers are set to small - // sizes during testing. - continue - } - case nil: - if w.n > 0 { - err = errInconsistentByteCount - } - } - return n, err - } -} - -// Close implements the io.Closer interface. -func (w *Writer) Close() error { - src := w.src[:w.n] - for { - nDst, nSrc, err := w.t.Transform(w.dst, src, true) - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return werr - } - if err != ErrShortDst { - return err - } - src = src[nSrc:] - } -} - -type nop struct{ NopResetter } - -func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := copy(dst, src) - if n < len(src) { - err = ErrShortDst - } - return n, n, err -} - -func (nop) Span(src []byte, atEOF bool) (n int, err error) { - return len(src), nil -} - -type discard struct{ NopResetter } - -func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - return 0, len(src), nil -} - -var ( - // Discard is a Transformer for which all Transform calls succeed - // by consuming all bytes and writing nothing. - Discard Transformer = discard{} - - // Nop is a SpanningTransformer that copies src to dst. - Nop SpanningTransformer = nop{} -) - -// chain is a sequence of links. A chain with N Transformers has N+1 links and -// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst -// buffers given to chain.Transform and the middle N-1 buffers are intermediate -// buffers owned by the chain. The i'th link transforms bytes from the i'th -// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer -// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N). -type chain struct { - link []link - err error - // errStart is the index at which the error occurred plus 1. Processing - // errStart at this level at the next call to Transform. As long as - // errStart > 0, chain will not consume any more source bytes. - errStart int -} - -func (c *chain) fatalError(errIndex int, err error) { - if i := errIndex + 1; i > c.errStart { - c.errStart = i - c.err = err - } -} - -type link struct { - t Transformer - // b[p:n] holds the bytes to be transformed by t. - b []byte - p int - n int -} - -func (l *link) src() []byte { - return l.b[l.p:l.n] -} - -func (l *link) dst() []byte { - return l.b[l.n:] -} - -// Chain returns a Transformer that applies t in sequence. -func Chain(t ...Transformer) Transformer { - if len(t) == 0 { - return nop{} - } - c := &chain{link: make([]link, len(t)+1)} - for i, tt := range t { - c.link[i].t = tt - } - // Allocate intermediate buffers. - b := make([][defaultBufSize]byte, len(t)-1) - for i := range b { - c.link[i+1].b = b[i][:] - } - return c -} - -// Reset resets the state of Chain. It calls Reset on all the Transformers. -func (c *chain) Reset() { - for i, l := range c.link { - if l.t != nil { - l.t.Reset() - } - c.link[i].p, c.link[i].n = 0, 0 - } -} - -// TODO: make chain use Span (is going to be fun to implement!) - -// Transform applies the transformers of c in sequence. -func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - // Set up src and dst in the chain. - srcL := &c.link[0] - dstL := &c.link[len(c.link)-1] - srcL.b, srcL.p, srcL.n = src, 0, len(src) - dstL.b, dstL.n = dst, 0 - var lastFull, needProgress bool // for detecting progress - - // i is the index of the next Transformer to apply, for i in [low, high]. - // low is the lowest index for which c.link[low] may still produce bytes. - // high is the highest index for which c.link[high] has a Transformer. - // The error returned by Transform determines whether to increase or - // decrease i. We try to completely fill a buffer before converting it. - for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; { - in, out := &c.link[i], &c.link[i+1] - nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i) - out.n += nDst - in.p += nSrc - if i > 0 && in.p == in.n { - in.p, in.n = 0, 0 - } - needProgress, lastFull = lastFull, false - switch err0 { - case ErrShortDst: - // Process the destination buffer next. Return if we are already - // at the high index. - if i == high { - return dstL.n, srcL.p, ErrShortDst - } - if out.n != 0 { - i++ - // If the Transformer at the next index is not able to process any - // source bytes there is nothing that can be done to make progress - // and the bytes will remain unprocessed. lastFull is used to - // detect this and break out of the loop with a fatal error. - lastFull = true - continue - } - // The destination buffer was too small, but is completely empty. - // Return a fatal error as this transformation can never complete. - c.fatalError(i, errShortInternal) - case ErrShortSrc: - if i == 0 { - // Save ErrShortSrc in err. All other errors take precedence. - err = ErrShortSrc - break - } - // Source bytes were depleted before filling up the destination buffer. - // Verify we made some progress, move the remaining bytes to the errStart - // and try to get more source bytes. - if needProgress && nSrc == 0 || in.n-in.p == len(in.b) { - // There were not enough source bytes to proceed while the source - // buffer cannot hold any more bytes. Return a fatal error as this - // transformation can never complete. - c.fatalError(i, errShortInternal) - break - } - // in.b is an internal buffer and we can make progress. - in.p, in.n = 0, copy(in.b, in.src()) - fallthrough - case nil: - // if i == low, we have depleted the bytes at index i or any lower levels. - // In that case we increase low and i. In all other cases we decrease i to - // fetch more bytes before proceeding to the next index. - if i > low { - i-- - continue - } - default: - c.fatalError(i, err0) - } - // Exhausted level low or fatal error: increase low and continue - // to process the bytes accepted so far. - i++ - low = i - } - - // If c.errStart > 0, this means we found a fatal error. We will clear - // all upstream buffers. At this point, no more progress can be made - // downstream, as Transform would have bailed while handling ErrShortDst. - if c.errStart > 0 { - for i := 1; i < c.errStart; i++ { - c.link[i].p, c.link[i].n = 0, 0 - } - err, c.errStart, c.err = c.err, 0, nil - } - return dstL.n, srcL.p, err -} - -// Deprecated: Use runes.Remove instead. -func RemoveFunc(f func(r rune) bool) Transformer { - return removeF(f) -} - -type removeF func(r rune) bool - -func (removeF) Reset() {} - -// Transform implements the Transformer interface. -func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] { - - if r = rune(src[0]); r < utf8.RuneSelf { - sz = 1 - } else { - r, sz = utf8.DecodeRune(src) - - if sz == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src) { - err = ErrShortSrc - break - } - // We replace illegal bytes with RuneError. Not doing so might - // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. - // The resulting byte sequence may subsequently contain runes - // for which t(r) is true that were passed unnoticed. - if !t(r) { - if nDst+3 > len(dst) { - err = ErrShortDst - break - } - nDst += copy(dst[nDst:], "\uFFFD") - } - nSrc++ - continue - } - } - - if !t(r) { - if nDst+sz > len(dst) { - err = ErrShortDst - break - } - nDst += copy(dst[nDst:], src[:sz]) - } - nSrc += sz - } - return -} - -// grow returns a new []byte that is longer than b, and copies the first n bytes -// of b to the start of the new slice. -func grow(b []byte, n int) []byte { - m := len(b) - if m <= 32 { - m = 64 - } else if m <= 256 { - m *= 2 - } else { - m += m >> 1 - } - buf := make([]byte, m) - copy(buf, b[:n]) - return buf -} - -const initialBufSize = 128 - -// String returns a string with the result of converting s[:n] using t, where -// n <= len(s). If err == nil, n will be len(s). It calls Reset on t. -func String(t Transformer, s string) (result string, n int, err error) { - t.Reset() - if s == "" { - // Fast path for the common case for empty input. Results in about a - // 86% reduction of running time for BenchmarkStringLowerEmpty. - if _, _, err := t.Transform(nil, nil, true); err == nil { - return "", 0, nil - } - } - - // Allocate only once. Note that both dst and src escape when passed to - // Transform. - buf := [2 * initialBufSize]byte{} - dst := buf[:initialBufSize:initialBufSize] - src := buf[initialBufSize : 2*initialBufSize] - - // The input string s is transformed in multiple chunks (starting with a - // chunk size of initialBufSize). nDst and nSrc are per-chunk (or - // per-Transform-call) indexes, pDst and pSrc are overall indexes. - nDst, nSrc := 0, 0 - pDst, pSrc := 0, 0 - - // pPrefix is the length of a common prefix: the first pPrefix bytes of the - // result will equal the first pPrefix bytes of s. It is not guaranteed to - // be the largest such value, but if pPrefix, len(result) and len(s) are - // all equal after the final transform (i.e. calling Transform with atEOF - // being true returned nil error) then we don't need to allocate a new - // result string. - pPrefix := 0 - for { - // Invariant: pDst == pPrefix && pSrc == pPrefix. - - n := copy(src, s[pSrc:]) - nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s)) - pDst += nDst - pSrc += nSrc - - // TODO: let transformers implement an optional Spanner interface, akin - // to norm's QuickSpan. This would even allow us to avoid any allocation. - if !bytes.Equal(dst[:nDst], src[:nSrc]) { - break - } - pPrefix = pSrc - if err == ErrShortDst { - // A buffer can only be short if a transformer modifies its input. - break - } else if err == ErrShortSrc { - if nSrc == 0 { - // No progress was made. - break - } - // Equal so far and !atEOF, so continue checking. - } else if err != nil || pPrefix == len(s) { - return string(s[:pPrefix]), pPrefix, err - } - } - // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc. - - // We have transformed the first pSrc bytes of the input s to become pDst - // transformed bytes. Those transformed bytes are discontiguous: the first - // pPrefix of them equal s[:pPrefix] and the last nDst of them equal - // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so - // that they become one contiguous slice: dst[:pDst]. - if pPrefix != 0 { - newDst := dst - if pDst > len(newDst) { - newDst = make([]byte, len(s)+nDst-nSrc) - } - copy(newDst[pPrefix:pDst], dst[:nDst]) - copy(newDst[:pPrefix], s[:pPrefix]) - dst = newDst - } - - // Prevent duplicate Transform calls with atEOF being true at the end of - // the input. Also return if we have an unrecoverable error. - if (err == nil && pSrc == len(s)) || - (err != nil && err != ErrShortDst && err != ErrShortSrc) { - return string(dst[:pDst]), pSrc, err - } - - // Transform the remaining input, growing dst and src buffers as necessary. - for { - n := copy(src, s[pSrc:]) - atEOF := pSrc+n == len(s) - nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF) - pDst += nDst - pSrc += nSrc - - // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can - // make progress. This may avoid excessive allocations. - if err == ErrShortDst { - if nDst == 0 { - dst = grow(dst, pDst) - } - } else if err == ErrShortSrc { - if atEOF { - return string(dst[:pDst]), pSrc, err - } - if nSrc == 0 { - src = grow(src, 0) - } - } else if err != nil || pSrc == len(s) { - return string(dst[:pDst]), pSrc, err - } - } -} - -// Bytes returns a new byte slice with the result of converting b[:n] using t, -// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t. -func Bytes(t Transformer, b []byte) (result []byte, n int, err error) { - return doAppend(t, 0, make([]byte, len(b)), b) -} - -// Append appends the result of converting src[:n] using t to dst, where -// n <= len(src), If err == nil, n will be len(src). It calls Reset on t. -func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) { - if len(dst) == cap(dst) { - n := len(src) + len(dst) // It is okay for this to be 0. - b := make([]byte, n) - dst = b[:copy(b, dst)] - } - return doAppend(t, len(dst), dst[:cap(dst)], src) -} - -func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) { - t.Reset() - pSrc := 0 - for { - nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true) - pDst += nDst - pSrc += nSrc - if err != ErrShortDst { - return dst[:pDst], pSrc, err - } - - // Grow the destination buffer, but do not grow as long as we can make - // progress. This may avoid excessive allocations. - if nDst == 0 { - dst = grow(dst, pDst) - } - } -} diff --git a/vendor/gopkg.in/yaml.v3/LICENSE b/vendor/gopkg.in/yaml.v3/LICENSE deleted file mode 100644 index 2683e4b..0000000 --- a/vendor/gopkg.in/yaml.v3/LICENSE +++ /dev/null @@ -1,50 +0,0 @@ - -This project is covered by two different licenses: MIT and Apache. - -#### MIT License #### - -The following files were ported to Go from C files of libyaml, and thus -are still covered by their original MIT license, with the additional -copyright staring in 2011 when the project was ported over: - - apic.go emitterc.go parserc.go readerc.go scannerc.go - writerc.go yamlh.go yamlprivateh.go - -Copyright (c) 2006-2010 Kirill Simonov -Copyright (c) 2006-2011 Kirill Simonov - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -### Apache License ### - -All the remaining project files are covered by the Apache license: - -Copyright (c) 2011-2019 Canonical Ltd - -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. diff --git a/vendor/gopkg.in/yaml.v3/NOTICE b/vendor/gopkg.in/yaml.v3/NOTICE deleted file mode 100644 index 866d74a..0000000 --- a/vendor/gopkg.in/yaml.v3/NOTICE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2011-2016 Canonical Ltd. - -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. diff --git a/vendor/gopkg.in/yaml.v3/README.md b/vendor/gopkg.in/yaml.v3/README.md deleted file mode 100644 index 08eb1ba..0000000 --- a/vendor/gopkg.in/yaml.v3/README.md +++ /dev/null @@ -1,150 +0,0 @@ -# YAML support for the Go language - -Introduction ------------- - -The yaml package enables Go programs to comfortably encode and decode YAML -values. It was developed within [Canonical](https://www.canonical.com) as -part of the [juju](https://juju.ubuntu.com) project, and is based on a -pure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML) -C library to parse and generate YAML data quickly and reliably. - -Compatibility -------------- - -The yaml package supports most of YAML 1.2, but preserves some behavior -from 1.1 for backwards compatibility. - -Specifically, as of v3 of the yaml package: - - - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being - decoded into a typed bool value. Otherwise they behave as a string. Booleans - in YAML 1.2 are _true/false_ only. - - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_ - as specified in YAML 1.2, because most parsers still use the old format. - Octals in the _0o777_ format are supported though, so new files work. - - Does not support base-60 floats. These are gone from YAML 1.2, and were - actually never supported by this package as it's clearly a poor choice. - -and offers backwards -compatibility with YAML 1.1 in some cases. -1.2, including support for -anchors, tags, map merging, etc. Multi-document unmarshalling is not yet -implemented, and base-60 floats from YAML 1.1 are purposefully not -supported since they're a poor design and are gone in YAML 1.2. - -Installation and usage ----------------------- - -The import path for the package is *gopkg.in/yaml.v3*. - -To install it, run: - - go get gopkg.in/yaml.v3 - -API documentation ------------------ - -If opened in a browser, the import path itself leads to the API documentation: - - - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3) - -API stability -------------- - -The package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in). - - -License -------- - -The yaml package is licensed under the MIT and Apache License 2.0 licenses. -Please see the LICENSE file for details. - - -Example -------- - -```Go -package main - -import ( - "fmt" - "log" - - "gopkg.in/yaml.v3" -) - -var data = ` -a: Easy! -b: - c: 2 - d: [3, 4] -` - -// Note: struct fields must be public in order for unmarshal to -// correctly populate the data. -type T struct { - A string - B struct { - RenamedC int `yaml:"c"` - D []int `yaml:",flow"` - } -} - -func main() { - t := T{} - - err := yaml.Unmarshal([]byte(data), &t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t:\n%v\n\n", t) - - d, err := yaml.Marshal(&t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t dump:\n%s\n\n", string(d)) - - m := make(map[interface{}]interface{}) - - err = yaml.Unmarshal([]byte(data), &m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m:\n%v\n\n", m) - - d, err = yaml.Marshal(&m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m dump:\n%s\n\n", string(d)) -} -``` - -This example will generate the following output: - -``` ---- t: -{Easy! {2 [3 4]}} - ---- t dump: -a: Easy! -b: - c: 2 - d: [3, 4] - - ---- m: -map[a:Easy! b:map[c:2 d:[3 4]]] - ---- m dump: -a: Easy! -b: - c: 2 - d: - - 3 - - 4 -``` - diff --git a/vendor/gopkg.in/yaml.v3/apic.go b/vendor/gopkg.in/yaml.v3/apic.go deleted file mode 100644 index ae7d049..0000000 --- a/vendor/gopkg.in/yaml.v3/apic.go +++ /dev/null @@ -1,747 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "io" -) - -func yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) { - //fmt.Println("yaml_insert_token", "pos:", pos, "typ:", token.typ, "head:", parser.tokens_head, "len:", len(parser.tokens)) - - // Check if we can move the queue at the beginning of the buffer. - if parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) { - if parser.tokens_head != len(parser.tokens) { - copy(parser.tokens, parser.tokens[parser.tokens_head:]) - } - parser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head] - parser.tokens_head = 0 - } - parser.tokens = append(parser.tokens, *token) - if pos < 0 { - return - } - copy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:]) - parser.tokens[parser.tokens_head+pos] = *token -} - -// Create a new parser object. -func yaml_parser_initialize(parser *yaml_parser_t) bool { - *parser = yaml_parser_t{ - raw_buffer: make([]byte, 0, input_raw_buffer_size), - buffer: make([]byte, 0, input_buffer_size), - } - return true -} - -// Destroy a parser object. -func yaml_parser_delete(parser *yaml_parser_t) { - *parser = yaml_parser_t{} -} - -// String read handler. -func yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - if parser.input_pos == len(parser.input) { - return 0, io.EOF - } - n = copy(buffer, parser.input[parser.input_pos:]) - parser.input_pos += n - return n, nil -} - -// Reader read handler. -func yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - return parser.input_reader.Read(buffer) -} - -// Set a string input. -func yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_string_read_handler - parser.input = input - parser.input_pos = 0 -} - -// Set a file input. -func yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_reader_read_handler - parser.input_reader = r -} - -// Set the source encoding. -func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) { - if parser.encoding != yaml_ANY_ENCODING { - panic("must set the encoding only once") - } - parser.encoding = encoding -} - -// Create a new emitter object. -func yaml_emitter_initialize(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{ - buffer: make([]byte, output_buffer_size), - raw_buffer: make([]byte, 0, output_raw_buffer_size), - states: make([]yaml_emitter_state_t, 0, initial_stack_size), - events: make([]yaml_event_t, 0, initial_queue_size), - best_width: -1, - } -} - -// Destroy an emitter object. -func yaml_emitter_delete(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{} -} - -// String write handler. -func yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - *emitter.output_buffer = append(*emitter.output_buffer, buffer...) - return nil -} - -// yaml_writer_write_handler uses emitter.output_writer to write the -// emitted text. -func yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - _, err := emitter.output_writer.Write(buffer) - return err -} - -// Set a string output. -func yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_string_write_handler - emitter.output_buffer = output_buffer -} - -// Set a file output. -func yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_writer_write_handler - emitter.output_writer = w -} - -// Set the output encoding. -func yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) { - if emitter.encoding != yaml_ANY_ENCODING { - panic("must set the output encoding only once") - } - emitter.encoding = encoding -} - -// Set the canonical output style. -func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { - emitter.canonical = canonical -} - -// Set the indentation increment. -func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { - if indent < 2 || indent > 9 { - indent = 2 - } - emitter.best_indent = indent -} - -// Set the preferred line width. -func yaml_emitter_set_width(emitter *yaml_emitter_t, width int) { - if width < 0 { - width = -1 - } - emitter.best_width = width -} - -// Set if unescaped non-ASCII characters are allowed. -func yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) { - emitter.unicode = unicode -} - -// Set the preferred line break character. -func yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) { - emitter.line_break = line_break -} - -///* -// * Destroy a token object. -// */ -// -//YAML_DECLARE(void) -//yaml_token_delete(yaml_token_t *token) -//{ -// assert(token); // Non-NULL token object expected. -// -// switch (token.type) -// { -// case YAML_TAG_DIRECTIVE_TOKEN: -// yaml_free(token.data.tag_directive.handle); -// yaml_free(token.data.tag_directive.prefix); -// break; -// -// case YAML_ALIAS_TOKEN: -// yaml_free(token.data.alias.value); -// break; -// -// case YAML_ANCHOR_TOKEN: -// yaml_free(token.data.anchor.value); -// break; -// -// case YAML_TAG_TOKEN: -// yaml_free(token.data.tag.handle); -// yaml_free(token.data.tag.suffix); -// break; -// -// case YAML_SCALAR_TOKEN: -// yaml_free(token.data.scalar.value); -// break; -// -// default: -// break; -// } -// -// memset(token, 0, sizeof(yaml_token_t)); -//} -// -///* -// * Check if a string is a valid UTF-8 sequence. -// * -// * Check 'reader.c' for more details on UTF-8 encoding. -// */ -// -//static int -//yaml_check_utf8(yaml_char_t *start, size_t length) -//{ -// yaml_char_t *end = start+length; -// yaml_char_t *pointer = start; -// -// while (pointer < end) { -// unsigned char octet; -// unsigned int width; -// unsigned int value; -// size_t k; -// -// octet = pointer[0]; -// width = (octet & 0x80) == 0x00 ? 1 : -// (octet & 0xE0) == 0xC0 ? 2 : -// (octet & 0xF0) == 0xE0 ? 3 : -// (octet & 0xF8) == 0xF0 ? 4 : 0; -// value = (octet & 0x80) == 0x00 ? octet & 0x7F : -// (octet & 0xE0) == 0xC0 ? octet & 0x1F : -// (octet & 0xF0) == 0xE0 ? octet & 0x0F : -// (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; -// if (!width) return 0; -// if (pointer+width > end) return 0; -// for (k = 1; k < width; k ++) { -// octet = pointer[k]; -// if ((octet & 0xC0) != 0x80) return 0; -// value = (value << 6) + (octet & 0x3F); -// } -// if (!((width == 1) || -// (width == 2 && value >= 0x80) || -// (width == 3 && value >= 0x800) || -// (width == 4 && value >= 0x10000))) return 0; -// -// pointer += width; -// } -// -// return 1; -//} -// - -// Create STREAM-START. -func yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) { - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - encoding: encoding, - } -} - -// Create STREAM-END. -func yaml_stream_end_event_initialize(event *yaml_event_t) { - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - } -} - -// Create DOCUMENT-START. -func yaml_document_start_event_initialize( - event *yaml_event_t, - version_directive *yaml_version_directive_t, - tag_directives []yaml_tag_directive_t, - implicit bool, -) { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: implicit, - } -} - -// Create DOCUMENT-END. -func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - implicit: implicit, - } -} - -// Create ALIAS. -func yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool { - *event = yaml_event_t{ - typ: yaml_ALIAS_EVENT, - anchor: anchor, - } - return true -} - -// Create SCALAR. -func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - anchor: anchor, - tag: tag, - value: value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-START. -func yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-END. -func yaml_sequence_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - } - return true -} - -// Create MAPPING-START. -func yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) { - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } -} - -// Create MAPPING-END. -func yaml_mapping_end_event_initialize(event *yaml_event_t) { - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - } -} - -// Destroy an event object. -func yaml_event_delete(event *yaml_event_t) { - *event = yaml_event_t{} -} - -///* -// * Create a document object. -// */ -// -//YAML_DECLARE(int) -//yaml_document_initialize(document *yaml_document_t, -// version_directive *yaml_version_directive_t, -// tag_directives_start *yaml_tag_directive_t, -// tag_directives_end *yaml_tag_directive_t, -// start_implicit int, end_implicit int) -//{ -// struct { -// error yaml_error_type_t -// } context -// struct { -// start *yaml_node_t -// end *yaml_node_t -// top *yaml_node_t -// } nodes = { NULL, NULL, NULL } -// version_directive_copy *yaml_version_directive_t = NULL -// struct { -// start *yaml_tag_directive_t -// end *yaml_tag_directive_t -// top *yaml_tag_directive_t -// } tag_directives_copy = { NULL, NULL, NULL } -// value yaml_tag_directive_t = { NULL, NULL } -// mark yaml_mark_t = { 0, 0, 0 } -// -// assert(document) // Non-NULL document object is expected. -// assert((tag_directives_start && tag_directives_end) || -// (tag_directives_start == tag_directives_end)) -// // Valid tag directives are expected. -// -// if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error -// -// if (version_directive) { -// version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t)) -// if (!version_directive_copy) goto error -// version_directive_copy.major = version_directive.major -// version_directive_copy.minor = version_directive.minor -// } -// -// if (tag_directives_start != tag_directives_end) { -// tag_directive *yaml_tag_directive_t -// if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE)) -// goto error -// for (tag_directive = tag_directives_start -// tag_directive != tag_directives_end; tag_directive ++) { -// assert(tag_directive.handle) -// assert(tag_directive.prefix) -// if (!yaml_check_utf8(tag_directive.handle, -// strlen((char *)tag_directive.handle))) -// goto error -// if (!yaml_check_utf8(tag_directive.prefix, -// strlen((char *)tag_directive.prefix))) -// goto error -// value.handle = yaml_strdup(tag_directive.handle) -// value.prefix = yaml_strdup(tag_directive.prefix) -// if (!value.handle || !value.prefix) goto error -// if (!PUSH(&context, tag_directives_copy, value)) -// goto error -// value.handle = NULL -// value.prefix = NULL -// } -// } -// -// DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, -// tag_directives_copy.start, tag_directives_copy.top, -// start_implicit, end_implicit, mark, mark) -// -// return 1 -// -//error: -// STACK_DEL(&context, nodes) -// yaml_free(version_directive_copy) -// while (!STACK_EMPTY(&context, tag_directives_copy)) { -// value yaml_tag_directive_t = POP(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// } -// STACK_DEL(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// -// return 0 -//} -// -///* -// * Destroy a document object. -// */ -// -//YAML_DECLARE(void) -//yaml_document_delete(document *yaml_document_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// tag_directive *yaml_tag_directive_t -// -// context.error = YAML_NO_ERROR // Eliminate a compiler warning. -// -// assert(document) // Non-NULL document object is expected. -// -// while (!STACK_EMPTY(&context, document.nodes)) { -// node yaml_node_t = POP(&context, document.nodes) -// yaml_free(node.tag) -// switch (node.type) { -// case YAML_SCALAR_NODE: -// yaml_free(node.data.scalar.value) -// break -// case YAML_SEQUENCE_NODE: -// STACK_DEL(&context, node.data.sequence.items) -// break -// case YAML_MAPPING_NODE: -// STACK_DEL(&context, node.data.mapping.pairs) -// break -// default: -// assert(0) // Should not happen. -// } -// } -// STACK_DEL(&context, document.nodes) -// -// yaml_free(document.version_directive) -// for (tag_directive = document.tag_directives.start -// tag_directive != document.tag_directives.end -// tag_directive++) { -// yaml_free(tag_directive.handle) -// yaml_free(tag_directive.prefix) -// } -// yaml_free(document.tag_directives.start) -// -// memset(document, 0, sizeof(yaml_document_t)) -//} -// -///** -// * Get a document node. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_node(document *yaml_document_t, index int) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (index > 0 && document.nodes.start + index <= document.nodes.top) { -// return document.nodes.start + index - 1 -// } -// return NULL -//} -// -///** -// * Get the root object. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_root_node(document *yaml_document_t) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (document.nodes.top != document.nodes.start) { -// return document.nodes.start -// } -// return NULL -//} -// -///* -// * Add a scalar node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_scalar(document *yaml_document_t, -// tag *yaml_char_t, value *yaml_char_t, length int, -// style yaml_scalar_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// value_copy *yaml_char_t = NULL -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// assert(value) // Non-NULL value is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (length < 0) { -// length = strlen((char *)value) -// } -// -// if (!yaml_check_utf8(value, length)) goto error -// value_copy = yaml_malloc(length+1) -// if (!value_copy) goto error -// memcpy(value_copy, value, length) -// value_copy[length] = '\0' -// -// SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// yaml_free(tag_copy) -// yaml_free(value_copy) -// -// return 0 -//} -// -///* -// * Add a sequence node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_sequence(document *yaml_document_t, -// tag *yaml_char_t, style yaml_sequence_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_item_t -// end *yaml_node_item_t -// top *yaml_node_item_t -// } items = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error -// -// SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, items) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Add a mapping node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_mapping(document *yaml_document_t, -// tag *yaml_char_t, style yaml_mapping_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_pair_t -// end *yaml_node_pair_t -// top *yaml_node_pair_t -// } pairs = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error -// -// MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, pairs) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Append an item to a sequence node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_sequence_item(document *yaml_document_t, -// sequence int, item int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// assert(document) // Non-NULL document is required. -// assert(sequence > 0 -// && document.nodes.start + sequence <= document.nodes.top) -// // Valid sequence id is required. -// assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE) -// // A sequence node is required. -// assert(item > 0 && document.nodes.start + item <= document.nodes.top) -// // Valid item id is required. -// -// if (!PUSH(&context, -// document.nodes.start[sequence-1].data.sequence.items, item)) -// return 0 -// -// return 1 -//} -// -///* -// * Append a pair of a key and a value to a mapping node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_mapping_pair(document *yaml_document_t, -// mapping int, key int, value int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// pair yaml_node_pair_t -// -// assert(document) // Non-NULL document is required. -// assert(mapping > 0 -// && document.nodes.start + mapping <= document.nodes.top) -// // Valid mapping id is required. -// assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE) -// // A mapping node is required. -// assert(key > 0 && document.nodes.start + key <= document.nodes.top) -// // Valid key id is required. -// assert(value > 0 && document.nodes.start + value <= document.nodes.top) -// // Valid value id is required. -// -// pair.key = key -// pair.value = value -// -// if (!PUSH(&context, -// document.nodes.start[mapping-1].data.mapping.pairs, pair)) -// return 0 -// -// return 1 -//} -// -// diff --git a/vendor/gopkg.in/yaml.v3/decode.go b/vendor/gopkg.in/yaml.v3/decode.go deleted file mode 100644 index 0173b69..0000000 --- a/vendor/gopkg.in/yaml.v3/decode.go +++ /dev/null @@ -1,1000 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml - -import ( - "encoding" - "encoding/base64" - "fmt" - "io" - "math" - "reflect" - "strconv" - "time" -) - -// ---------------------------------------------------------------------------- -// Parser, produces a node tree out of a libyaml event stream. - -type parser struct { - parser yaml_parser_t - event yaml_event_t - doc *Node - anchors map[string]*Node - doneInit bool - textless bool -} - -func newParser(b []byte) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - if len(b) == 0 { - b = []byte{'\n'} - } - yaml_parser_set_input_string(&p.parser, b) - return &p -} - -func newParserFromReader(r io.Reader) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - yaml_parser_set_input_reader(&p.parser, r) - return &p -} - -func (p *parser) init() { - if p.doneInit { - return - } - p.anchors = make(map[string]*Node) - p.expect(yaml_STREAM_START_EVENT) - p.doneInit = true -} - -func (p *parser) destroy() { - if p.event.typ != yaml_NO_EVENT { - yaml_event_delete(&p.event) - } - yaml_parser_delete(&p.parser) -} - -// expect consumes an event from the event stream and -// checks that it's of the expected type. -func (p *parser) expect(e yaml_event_type_t) { - if p.event.typ == yaml_NO_EVENT { - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } - } - if p.event.typ == yaml_STREAM_END_EVENT { - failf("attempted to go past the end of stream; corrupted value?") - } - if p.event.typ != e { - p.parser.problem = fmt.Sprintf("expected %s event but got %s", e, p.event.typ) - p.fail() - } - yaml_event_delete(&p.event) - p.event.typ = yaml_NO_EVENT -} - -// peek peeks at the next event in the event stream, -// puts the results into p.event and returns the event type. -func (p *parser) peek() yaml_event_type_t { - if p.event.typ != yaml_NO_EVENT { - return p.event.typ - } - // It's curious choice from the underlying API to generally return a - // positive result on success, but on this case return true in an error - // scenario. This was the source of bugs in the past (issue #666). - if !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR { - p.fail() - } - return p.event.typ -} - -func (p *parser) fail() { - var where string - var line int - if p.parser.context_mark.line != 0 { - line = p.parser.context_mark.line - // Scanner errors don't iterate line before returning error - if p.parser.error == yaml_SCANNER_ERROR { - line++ - } - } else if p.parser.problem_mark.line != 0 { - line = p.parser.problem_mark.line - // Scanner errors don't iterate line before returning error - if p.parser.error == yaml_SCANNER_ERROR { - line++ - } - } - if line != 0 { - where = "line " + strconv.Itoa(line) + ": " - } - var msg string - if len(p.parser.problem) > 0 { - msg = p.parser.problem - } else { - msg = "unknown problem parsing YAML content" - } - failf("%s%s", where, msg) -} - -func (p *parser) anchor(n *Node, anchor []byte) { - if anchor != nil { - n.Anchor = string(anchor) - p.anchors[n.Anchor] = n - } -} - -func (p *parser) parse() *Node { - p.init() - switch p.peek() { - case yaml_SCALAR_EVENT: - return p.scalar() - case yaml_ALIAS_EVENT: - return p.alias() - case yaml_MAPPING_START_EVENT: - return p.mapping() - case yaml_SEQUENCE_START_EVENT: - return p.sequence() - case yaml_DOCUMENT_START_EVENT: - return p.document() - case yaml_STREAM_END_EVENT: - // Happens when attempting to decode an empty buffer. - return nil - case yaml_TAIL_COMMENT_EVENT: - panic("internal error: unexpected tail comment event (please report)") - default: - panic("internal error: attempted to parse unknown event (please report): " + p.event.typ.String()) - } -} - -func (p *parser) node(kind Kind, defaultTag, tag, value string) *Node { - var style Style - if tag != "" && tag != "!" { - tag = shortTag(tag) - style = TaggedStyle - } else if defaultTag != "" { - tag = defaultTag - } else if kind == ScalarNode { - tag, _ = resolve("", value) - } - n := &Node{ - Kind: kind, - Tag: tag, - Value: value, - Style: style, - } - if !p.textless { - n.Line = p.event.start_mark.line + 1 - n.Column = p.event.start_mark.column + 1 - n.HeadComment = string(p.event.head_comment) - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - } - return n -} - -func (p *parser) parseChild(parent *Node) *Node { - child := p.parse() - parent.Content = append(parent.Content, child) - return child -} - -func (p *parser) document() *Node { - n := p.node(DocumentNode, "", "", "") - p.doc = n - p.expect(yaml_DOCUMENT_START_EVENT) - p.parseChild(n) - if p.peek() == yaml_DOCUMENT_END_EVENT { - n.FootComment = string(p.event.foot_comment) - } - p.expect(yaml_DOCUMENT_END_EVENT) - return n -} - -func (p *parser) alias() *Node { - n := p.node(AliasNode, "", "", string(p.event.anchor)) - n.Alias = p.anchors[n.Value] - if n.Alias == nil { - failf("unknown anchor '%s' referenced", n.Value) - } - p.expect(yaml_ALIAS_EVENT) - return n -} - -func (p *parser) scalar() *Node { - var parsedStyle = p.event.scalar_style() - var nodeStyle Style - switch { - case parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0: - nodeStyle = DoubleQuotedStyle - case parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0: - nodeStyle = SingleQuotedStyle - case parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0: - nodeStyle = LiteralStyle - case parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0: - nodeStyle = FoldedStyle - } - var nodeValue = string(p.event.value) - var nodeTag = string(p.event.tag) - var defaultTag string - if nodeStyle == 0 { - if nodeValue == "<<" { - defaultTag = mergeTag - } - } else { - defaultTag = strTag - } - n := p.node(ScalarNode, defaultTag, nodeTag, nodeValue) - n.Style |= nodeStyle - p.anchor(n, p.event.anchor) - p.expect(yaml_SCALAR_EVENT) - return n -} - -func (p *parser) sequence() *Node { - n := p.node(SequenceNode, seqTag, string(p.event.tag), "") - if p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 { - n.Style |= FlowStyle - } - p.anchor(n, p.event.anchor) - p.expect(yaml_SEQUENCE_START_EVENT) - for p.peek() != yaml_SEQUENCE_END_EVENT { - p.parseChild(n) - } - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - p.expect(yaml_SEQUENCE_END_EVENT) - return n -} - -func (p *parser) mapping() *Node { - n := p.node(MappingNode, mapTag, string(p.event.tag), "") - block := true - if p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 { - block = false - n.Style |= FlowStyle - } - p.anchor(n, p.event.anchor) - p.expect(yaml_MAPPING_START_EVENT) - for p.peek() != yaml_MAPPING_END_EVENT { - k := p.parseChild(n) - if block && k.FootComment != "" { - // Must be a foot comment for the prior value when being dedented. - if len(n.Content) > 2 { - n.Content[len(n.Content)-3].FootComment = k.FootComment - k.FootComment = "" - } - } - v := p.parseChild(n) - if k.FootComment == "" && v.FootComment != "" { - k.FootComment = v.FootComment - v.FootComment = "" - } - if p.peek() == yaml_TAIL_COMMENT_EVENT { - if k.FootComment == "" { - k.FootComment = string(p.event.foot_comment) - } - p.expect(yaml_TAIL_COMMENT_EVENT) - } - } - n.LineComment = string(p.event.line_comment) - n.FootComment = string(p.event.foot_comment) - if n.Style&FlowStyle == 0 && n.FootComment != "" && len(n.Content) > 1 { - n.Content[len(n.Content)-2].FootComment = n.FootComment - n.FootComment = "" - } - p.expect(yaml_MAPPING_END_EVENT) - return n -} - -// ---------------------------------------------------------------------------- -// Decoder, unmarshals a node into a provided value. - -type decoder struct { - doc *Node - aliases map[*Node]bool - terrors []string - - stringMapType reflect.Type - generalMapType reflect.Type - - knownFields bool - uniqueKeys bool - decodeCount int - aliasCount int - aliasDepth int - - mergedFields map[interface{}]bool -} - -var ( - nodeType = reflect.TypeOf(Node{}) - durationType = reflect.TypeOf(time.Duration(0)) - stringMapType = reflect.TypeOf(map[string]interface{}{}) - generalMapType = reflect.TypeOf(map[interface{}]interface{}{}) - ifaceType = generalMapType.Elem() - timeType = reflect.TypeOf(time.Time{}) - ptrTimeType = reflect.TypeOf(&time.Time{}) -) - -func newDecoder() *decoder { - d := &decoder{ - stringMapType: stringMapType, - generalMapType: generalMapType, - uniqueKeys: true, - } - d.aliases = make(map[*Node]bool) - return d -} - -func (d *decoder) terror(n *Node, tag string, out reflect.Value) { - if n.Tag != "" { - tag = n.Tag - } - value := n.Value - if tag != seqTag && tag != mapTag { - if len(value) > 10 { - value = " `" + value[:7] + "...`" - } else { - value = " `" + value + "`" - } - } - d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.Line, shortTag(tag), value, out.Type())) -} - -func (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) { - err := u.UnmarshalYAML(n) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -func (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) { - terrlen := len(d.terrors) - err := u.UnmarshalYAML(func(v interface{}) (err error) { - defer handleErr(&err) - d.unmarshal(n, reflect.ValueOf(v)) - if len(d.terrors) > terrlen { - issues := d.terrors[terrlen:] - d.terrors = d.terrors[:terrlen] - return &TypeError{issues} - } - return nil - }) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -// d.prepare initializes and dereferences pointers and calls UnmarshalYAML -// if a value is found to implement it. -// It returns the initialized and dereferenced out value, whether -// unmarshalling was already done by UnmarshalYAML, and if so whether -// its types unmarshalled appropriately. -// -// If n holds a null value, prepare returns before doing anything. -func (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { - if n.ShortTag() == nullTag { - return out, false, false - } - again := true - for again { - again = false - if out.Kind() == reflect.Ptr { - if out.IsNil() { - out.Set(reflect.New(out.Type().Elem())) - } - out = out.Elem() - again = true - } - if out.CanAddr() { - outi := out.Addr().Interface() - if u, ok := outi.(Unmarshaler); ok { - good = d.callUnmarshaler(n, u) - return out, true, good - } - if u, ok := outi.(obsoleteUnmarshaler); ok { - good = d.callObsoleteUnmarshaler(n, u) - return out, true, good - } - } - } - return out, false, false -} - -func (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) { - if n.ShortTag() == nullTag { - return reflect.Value{} - } - for _, num := range index { - for { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - continue - } - break - } - v = v.Field(num) - } - return v -} - -const ( - // 400,000 decode operations is ~500kb of dense object declarations, or - // ~5kb of dense object declarations with 10000% alias expansion - alias_ratio_range_low = 400000 - - // 4,000,000 decode operations is ~5MB of dense object declarations, or - // ~4.5MB of dense object declarations with 10% alias expansion - alias_ratio_range_high = 4000000 - - // alias_ratio_range is the range over which we scale allowed alias ratios - alias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low) -) - -func allowedAliasRatio(decodeCount int) float64 { - switch { - case decodeCount <= alias_ratio_range_low: - // allow 99% to come from alias expansion for small-to-medium documents - return 0.99 - case decodeCount >= alias_ratio_range_high: - // allow 10% to come from alias expansion for very large documents - return 0.10 - default: - // scale smoothly from 99% down to 10% over the range. - // this maps to 396,000 - 400,000 allowed alias-driven decodes over the range. - // 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps). - return 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range) - } -} - -func (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) { - d.decodeCount++ - if d.aliasDepth > 0 { - d.aliasCount++ - } - if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) { - failf("document contains excessive aliasing") - } - if out.Type() == nodeType { - out.Set(reflect.ValueOf(n).Elem()) - return true - } - switch n.Kind { - case DocumentNode: - return d.document(n, out) - case AliasNode: - return d.alias(n, out) - } - out, unmarshaled, good := d.prepare(n, out) - if unmarshaled { - return good - } - switch n.Kind { - case ScalarNode: - good = d.scalar(n, out) - case MappingNode: - good = d.mapping(n, out) - case SequenceNode: - good = d.sequence(n, out) - case 0: - if n.IsZero() { - return d.null(out) - } - fallthrough - default: - failf("cannot decode node with unknown kind %d", n.Kind) - } - return good -} - -func (d *decoder) document(n *Node, out reflect.Value) (good bool) { - if len(n.Content) == 1 { - d.doc = n - d.unmarshal(n.Content[0], out) - return true - } - return false -} - -func (d *decoder) alias(n *Node, out reflect.Value) (good bool) { - if d.aliases[n] { - // TODO this could actually be allowed in some circumstances. - failf("anchor '%s' value contains itself", n.Value) - } - d.aliases[n] = true - d.aliasDepth++ - good = d.unmarshal(n.Alias, out) - d.aliasDepth-- - delete(d.aliases, n) - return good -} - -var zeroValue reflect.Value - -func resetMap(out reflect.Value) { - for _, k := range out.MapKeys() { - out.SetMapIndex(k, zeroValue) - } -} - -func (d *decoder) null(out reflect.Value) bool { - if out.CanAddr() { - switch out.Kind() { - case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice: - out.Set(reflect.Zero(out.Type())) - return true - } - } - return false -} - -func (d *decoder) scalar(n *Node, out reflect.Value) bool { - var tag string - var resolved interface{} - if n.indicatedString() { - tag = strTag - resolved = n.Value - } else { - tag, resolved = resolve(n.Tag, n.Value) - if tag == binaryTag { - data, err := base64.StdEncoding.DecodeString(resolved.(string)) - if err != nil { - failf("!!binary value contains invalid base64 data") - } - resolved = string(data) - } - } - if resolved == nil { - return d.null(out) - } - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - // We've resolved to exactly the type we want, so use that. - out.Set(resolvedv) - return true - } - // Perhaps we can use the value as a TextUnmarshaler to - // set its value. - if out.CanAddr() { - u, ok := out.Addr().Interface().(encoding.TextUnmarshaler) - if ok { - var text []byte - if tag == binaryTag { - text = []byte(resolved.(string)) - } else { - // We let any value be unmarshaled into TextUnmarshaler. - // That might be more lax than we'd like, but the - // TextUnmarshaler itself should bowl out any dubious values. - text = []byte(n.Value) - } - err := u.UnmarshalText(text) - if err != nil { - fail(err) - } - return true - } - } - switch out.Kind() { - case reflect.String: - if tag == binaryTag { - out.SetString(resolved.(string)) - return true - } - out.SetString(n.Value) - return true - case reflect.Interface: - out.Set(reflect.ValueOf(resolved)) - return true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - // This used to work in v2, but it's very unfriendly. - isDuration := out.Type() == durationType - - switch resolved := resolved.(type) { - case int: - if !isDuration && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case int64: - if !isDuration && !out.OverflowInt(resolved) { - out.SetInt(resolved) - return true - } - case uint64: - if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case float64: - if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - return true - } - case string: - if out.Type() == durationType { - d, err := time.ParseDuration(resolved) - if err == nil { - out.SetInt(int64(d)) - return true - } - } - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - switch resolved := resolved.(type) { - case int: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case int64: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case uint64: - if !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - case float64: - if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - return true - } - } - case reflect.Bool: - switch resolved := resolved.(type) { - case bool: - out.SetBool(resolved) - return true - case string: - // This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html). - // It only works if explicitly attempting to unmarshal into a typed bool value. - switch resolved { - case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON": - out.SetBool(true) - return true - case "n", "N", "no", "No", "NO", "off", "Off", "OFF": - out.SetBool(false) - return true - } - } - case reflect.Float32, reflect.Float64: - switch resolved := resolved.(type) { - case int: - out.SetFloat(float64(resolved)) - return true - case int64: - out.SetFloat(float64(resolved)) - return true - case uint64: - out.SetFloat(float64(resolved)) - return true - case float64: - out.SetFloat(resolved) - return true - } - case reflect.Struct: - if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { - out.Set(resolvedv) - return true - } - case reflect.Ptr: - panic("yaml internal error: please report the issue") - } - d.terror(n, tag, out) - return false -} - -func settableValueOf(i interface{}) reflect.Value { - v := reflect.ValueOf(i) - sv := reflect.New(v.Type()).Elem() - sv.Set(v) - return sv -} - -func (d *decoder) sequence(n *Node, out reflect.Value) (good bool) { - l := len(n.Content) - - var iface reflect.Value - switch out.Kind() { - case reflect.Slice: - out.Set(reflect.MakeSlice(out.Type(), l, l)) - case reflect.Array: - if l != out.Len() { - failf("invalid array: want %d elements but got %d", out.Len(), l) - } - case reflect.Interface: - // No type hints. Will have to use a generic sequence. - iface = out - out = settableValueOf(make([]interface{}, l)) - default: - d.terror(n, seqTag, out) - return false - } - et := out.Type().Elem() - - j := 0 - for i := 0; i < l; i++ { - e := reflect.New(et).Elem() - if ok := d.unmarshal(n.Content[i], e); ok { - out.Index(j).Set(e) - j++ - } - } - if out.Kind() != reflect.Array { - out.Set(out.Slice(0, j)) - } - if iface.IsValid() { - iface.Set(out) - } - return true -} - -func (d *decoder) mapping(n *Node, out reflect.Value) (good bool) { - l := len(n.Content) - if d.uniqueKeys { - nerrs := len(d.terrors) - for i := 0; i < l; i += 2 { - ni := n.Content[i] - for j := i + 2; j < l; j += 2 { - nj := n.Content[j] - if ni.Kind == nj.Kind && ni.Value == nj.Value { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: mapping key %#v already defined at line %d", nj.Line, nj.Value, ni.Line)) - } - } - } - if len(d.terrors) > nerrs { - return false - } - } - switch out.Kind() { - case reflect.Struct: - return d.mappingStruct(n, out) - case reflect.Map: - // okay - case reflect.Interface: - iface := out - if isStringMap(n) { - out = reflect.MakeMap(d.stringMapType) - } else { - out = reflect.MakeMap(d.generalMapType) - } - iface.Set(out) - default: - d.terror(n, mapTag, out) - return false - } - - outt := out.Type() - kt := outt.Key() - et := outt.Elem() - - stringMapType := d.stringMapType - generalMapType := d.generalMapType - if outt.Elem() == ifaceType { - if outt.Key().Kind() == reflect.String { - d.stringMapType = outt - } else if outt.Key() == ifaceType { - d.generalMapType = outt - } - } - - mergedFields := d.mergedFields - d.mergedFields = nil - - var mergeNode *Node - - mapIsNew := false - if out.IsNil() { - out.Set(reflect.MakeMap(outt)) - mapIsNew = true - } - for i := 0; i < l; i += 2 { - if isMerge(n.Content[i]) { - mergeNode = n.Content[i+1] - continue - } - k := reflect.New(kt).Elem() - if d.unmarshal(n.Content[i], k) { - if mergedFields != nil { - ki := k.Interface() - if mergedFields[ki] { - continue - } - mergedFields[ki] = true - } - kkind := k.Kind() - if kkind == reflect.Interface { - kkind = k.Elem().Kind() - } - if kkind == reflect.Map || kkind == reflect.Slice { - failf("invalid map key: %#v", k.Interface()) - } - e := reflect.New(et).Elem() - if d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) { - out.SetMapIndex(k, e) - } - } - } - - d.mergedFields = mergedFields - if mergeNode != nil { - d.merge(n, mergeNode, out) - } - - d.stringMapType = stringMapType - d.generalMapType = generalMapType - return true -} - -func isStringMap(n *Node) bool { - if n.Kind != MappingNode { - return false - } - l := len(n.Content) - for i := 0; i < l; i += 2 { - shortTag := n.Content[i].ShortTag() - if shortTag != strTag && shortTag != mergeTag { - return false - } - } - return true -} - -func (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) { - sinfo, err := getStructInfo(out.Type()) - if err != nil { - panic(err) - } - - var inlineMap reflect.Value - var elemType reflect.Type - if sinfo.InlineMap != -1 { - inlineMap = out.Field(sinfo.InlineMap) - elemType = inlineMap.Type().Elem() - } - - for _, index := range sinfo.InlineUnmarshalers { - field := d.fieldByIndex(n, out, index) - d.prepare(n, field) - } - - mergedFields := d.mergedFields - d.mergedFields = nil - var mergeNode *Node - var doneFields []bool - if d.uniqueKeys { - doneFields = make([]bool, len(sinfo.FieldsList)) - } - name := settableValueOf("") - l := len(n.Content) - for i := 0; i < l; i += 2 { - ni := n.Content[i] - if isMerge(ni) { - mergeNode = n.Content[i+1] - continue - } - if !d.unmarshal(ni, name) { - continue - } - sname := name.String() - if mergedFields != nil { - if mergedFields[sname] { - continue - } - mergedFields[sname] = true - } - if info, ok := sinfo.FieldsMap[sname]; ok { - if d.uniqueKeys { - if doneFields[info.Id] { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.Line, name.String(), out.Type())) - continue - } - doneFields[info.Id] = true - } - var field reflect.Value - if info.Inline == nil { - field = out.Field(info.Num) - } else { - field = d.fieldByIndex(n, out, info.Inline) - } - d.unmarshal(n.Content[i+1], field) - } else if sinfo.InlineMap != -1 { - if inlineMap.IsNil() { - inlineMap.Set(reflect.MakeMap(inlineMap.Type())) - } - value := reflect.New(elemType).Elem() - d.unmarshal(n.Content[i+1], value) - inlineMap.SetMapIndex(name, value) - } else if d.knownFields { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.Line, name.String(), out.Type())) - } - } - - d.mergedFields = mergedFields - if mergeNode != nil { - d.merge(n, mergeNode, out) - } - return true -} - -func failWantMap() { - failf("map merge requires map or sequence of maps as the value") -} - -func (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) { - mergedFields := d.mergedFields - if mergedFields == nil { - d.mergedFields = make(map[interface{}]bool) - for i := 0; i < len(parent.Content); i += 2 { - k := reflect.New(ifaceType).Elem() - if d.unmarshal(parent.Content[i], k) { - d.mergedFields[k.Interface()] = true - } - } - } - - switch merge.Kind { - case MappingNode: - d.unmarshal(merge, out) - case AliasNode: - if merge.Alias != nil && merge.Alias.Kind != MappingNode { - failWantMap() - } - d.unmarshal(merge, out) - case SequenceNode: - for i := 0; i < len(merge.Content); i++ { - ni := merge.Content[i] - if ni.Kind == AliasNode { - if ni.Alias != nil && ni.Alias.Kind != MappingNode { - failWantMap() - } - } else if ni.Kind != MappingNode { - failWantMap() - } - d.unmarshal(ni, out) - } - default: - failWantMap() - } - - d.mergedFields = mergedFields -} - -func isMerge(n *Node) bool { - return n.Kind == ScalarNode && n.Value == "<<" && (n.Tag == "" || n.Tag == "!" || shortTag(n.Tag) == mergeTag) -} diff --git a/vendor/gopkg.in/yaml.v3/emitterc.go b/vendor/gopkg.in/yaml.v3/emitterc.go deleted file mode 100644 index 0f47c9c..0000000 --- a/vendor/gopkg.in/yaml.v3/emitterc.go +++ /dev/null @@ -1,2020 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" - "fmt" -) - -// Flush the buffer if needed. -func flush(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) { - return yaml_emitter_flush(emitter) - } - return true -} - -// Put a character to the output buffer. -func put(emitter *yaml_emitter_t, value byte) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - emitter.buffer[emitter.buffer_pos] = value - emitter.buffer_pos++ - emitter.column++ - return true -} - -// Put a line break to the output buffer. -func put_break(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - switch emitter.line_break { - case yaml_CR_BREAK: - emitter.buffer[emitter.buffer_pos] = '\r' - emitter.buffer_pos += 1 - case yaml_LN_BREAK: - emitter.buffer[emitter.buffer_pos] = '\n' - emitter.buffer_pos += 1 - case yaml_CRLN_BREAK: - emitter.buffer[emitter.buffer_pos+0] = '\r' - emitter.buffer[emitter.buffer_pos+1] = '\n' - emitter.buffer_pos += 2 - default: - panic("unknown line break setting") - } - if emitter.column == 0 { - emitter.space_above = true - } - emitter.column = 0 - emitter.line++ - // [Go] Do this here and below and drop from everywhere else (see commented lines). - emitter.indention = true - return true -} - -// Copy a character from a string into buffer. -func write(emitter *yaml_emitter_t, s []byte, i *int) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - p := emitter.buffer_pos - w := width(s[*i]) - switch w { - case 4: - emitter.buffer[p+3] = s[*i+3] - fallthrough - case 3: - emitter.buffer[p+2] = s[*i+2] - fallthrough - case 2: - emitter.buffer[p+1] = s[*i+1] - fallthrough - case 1: - emitter.buffer[p+0] = s[*i+0] - default: - panic("unknown character width") - } - emitter.column++ - emitter.buffer_pos += w - *i += w - return true -} - -// Write a whole string into buffer. -func write_all(emitter *yaml_emitter_t, s []byte) bool { - for i := 0; i < len(s); { - if !write(emitter, s, &i) { - return false - } - } - return true -} - -// Copy a line break character from a string into buffer. -func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { - if s[*i] == '\n' { - if !put_break(emitter) { - return false - } - *i++ - } else { - if !write(emitter, s, i) { - return false - } - if emitter.column == 0 { - emitter.space_above = true - } - emitter.column = 0 - emitter.line++ - // [Go] Do this here and above and drop from everywhere else (see commented lines). - emitter.indention = true - } - return true -} - -// Set an emitter error and return false. -func yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_EMITTER_ERROR - emitter.problem = problem - return false -} - -// Emit an event. -func yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.events = append(emitter.events, *event) - for !yaml_emitter_need_more_events(emitter) { - event := &emitter.events[emitter.events_head] - if !yaml_emitter_analyze_event(emitter, event) { - return false - } - if !yaml_emitter_state_machine(emitter, event) { - return false - } - yaml_event_delete(event) - emitter.events_head++ - } - return true -} - -// Check if we need to accumulate more events before emitting. -// -// We accumulate extra -// - 1 event for DOCUMENT-START -// - 2 events for SEQUENCE-START -// - 3 events for MAPPING-START -// -func yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool { - if emitter.events_head == len(emitter.events) { - return true - } - var accumulate int - switch emitter.events[emitter.events_head].typ { - case yaml_DOCUMENT_START_EVENT: - accumulate = 1 - break - case yaml_SEQUENCE_START_EVENT: - accumulate = 2 - break - case yaml_MAPPING_START_EVENT: - accumulate = 3 - break - default: - return false - } - if len(emitter.events)-emitter.events_head > accumulate { - return false - } - var level int - for i := emitter.events_head; i < len(emitter.events); i++ { - switch emitter.events[i].typ { - case yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT: - level++ - case yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT: - level-- - } - if level == 0 { - return false - } - } - return true -} - -// Append a directive to the directives stack. -func yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool { - for i := 0; i < len(emitter.tag_directives); i++ { - if bytes.Equal(value.handle, emitter.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_emitter_set_emitter_error(emitter, "duplicate %TAG directive") - } - } - - // [Go] Do we actually need to copy this given garbage collection - // and the lack of deallocating destructors? - tag_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(tag_copy.handle, value.handle) - copy(tag_copy.prefix, value.prefix) - emitter.tag_directives = append(emitter.tag_directives, tag_copy) - return true -} - -// Increase the indentation level. -func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool { - emitter.indents = append(emitter.indents, emitter.indent) - if emitter.indent < 0 { - if flow { - emitter.indent = emitter.best_indent - } else { - emitter.indent = 0 - } - } else if !indentless { - // [Go] This was changed so that indentations are more regular. - if emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE { - // The first indent inside a sequence will just skip the "- " indicator. - emitter.indent += 2 - } else { - // Everything else aligns to the chosen indentation. - emitter.indent = emitter.best_indent*((emitter.indent+emitter.best_indent)/emitter.best_indent) - } - } - return true -} - -// State dispatcher. -func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool { - switch emitter.state { - default: - case yaml_EMIT_STREAM_START_STATE: - return yaml_emitter_emit_stream_start(emitter, event) - - case yaml_EMIT_FIRST_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, true) - - case yaml_EMIT_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, false) - - case yaml_EMIT_DOCUMENT_CONTENT_STATE: - return yaml_emitter_emit_document_content(emitter, event) - - case yaml_EMIT_DOCUMENT_END_STATE: - return yaml_emitter_emit_document_end(emitter, event) - - case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, true, false) - - case yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false, true) - - case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false, false) - - case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, true, false) - - case yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false, true) - - case yaml_EMIT_FLOW_MAPPING_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false, false) - - case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, true) - - case yaml_EMIT_FLOW_MAPPING_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, false) - - case yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, true) - - case yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, false) - - case yaml_EMIT_END_STATE: - return yaml_emitter_set_emitter_error(emitter, "expected nothing after STREAM-END") - } - panic("invalid emitter state") -} - -// Expect STREAM-START. -func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_STREAM_START_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected STREAM-START") - } - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = event.encoding - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = yaml_UTF8_ENCODING - } - } - if emitter.best_indent < 2 || emitter.best_indent > 9 { - emitter.best_indent = 2 - } - if emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 { - emitter.best_width = 80 - } - if emitter.best_width < 0 { - emitter.best_width = 1<<31 - 1 - } - if emitter.line_break == yaml_ANY_BREAK { - emitter.line_break = yaml_LN_BREAK - } - - emitter.indent = -1 - emitter.line = 0 - emitter.column = 0 - emitter.whitespace = true - emitter.indention = true - emitter.space_above = true - emitter.foot_indent = -1 - - if emitter.encoding != yaml_UTF8_ENCODING { - if !yaml_emitter_write_bom(emitter) { - return false - } - } - emitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE - return true -} - -// Expect DOCUMENT-START or STREAM-END. -func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - - if event.typ == yaml_DOCUMENT_START_EVENT { - - if event.version_directive != nil { - if !yaml_emitter_analyze_version_directive(emitter, event.version_directive) { - return false - } - } - - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_analyze_tag_directive(emitter, tag_directive) { - return false - } - if !yaml_emitter_append_tag_directive(emitter, tag_directive, false) { - return false - } - } - - for i := 0; i < len(default_tag_directives); i++ { - tag_directive := &default_tag_directives[i] - if !yaml_emitter_append_tag_directive(emitter, tag_directive, true) { - return false - } - } - - implicit := event.implicit - if !first || emitter.canonical { - implicit = false - } - - if emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if event.version_directive != nil { - implicit = false - if !yaml_emitter_write_indicator(emitter, []byte("%YAML"), true, false, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("1.1"), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if len(event.tag_directives) > 0 { - implicit = false - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_write_indicator(emitter, []byte("%TAG"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) { - return false - } - if !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - if yaml_emitter_check_empty_document(emitter) { - implicit = false - } - if !implicit { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { - return false - } - if emitter.canonical || true { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - if len(emitter.head_comment) > 0 { - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !put_break(emitter) { - return false - } - } - - emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE - return true - } - - if event.typ == yaml_STREAM_END_EVENT { - if emitter.open_ended { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_END_STATE - return true - } - - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-START or STREAM-END") -} - -// Expect the root node. -func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !yaml_emitter_emit_node(emitter, event, true, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect DOCUMENT-END. -func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_DOCUMENT_END_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") - } - // [Go] Force document foot separation. - emitter.foot_indent = 0 - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.foot_indent = -1 - if !yaml_emitter_write_indent(emitter) { - return false - } - if !event.implicit { - // [Go] Allocate the slice elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_DOCUMENT_START_STATE - emitter.tag_directives = emitter.tag_directives[:0] - return true -} - -// Expect a flow item node. -func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_SEQUENCE_END_EVENT { - if emitter.canonical && !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.column == 0 || emitter.canonical && !first { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - - return true - } - - if !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if emitter.column == 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE) - } else { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) - } - if !yaml_emitter_emit_node(emitter, event, false, true, false, false) { - return false - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a flow key node. -func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_MAPPING_END_EVENT { - if (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.canonical && !first { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - - if !first && !trail { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - - if !yaml_emitter_process_head_comment(emitter) { - return false - } - - if emitter.column == 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if !emitter.canonical && yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a flow value node. -func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) { - return false - } - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE) - } else { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) - } - if !yaml_emitter_emit_node(emitter, event, false, false, true, false) { - return false - } - if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a block item node. -func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, false) { - return false - } - } - if event.typ == yaml_SEQUENCE_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) - if !yaml_emitter_emit_node(emitter, event, false, true, false, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -// Expect a block key node. -func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, false) { - return false - } - } - if !yaml_emitter_process_head_comment(emitter) { - return false - } - if event.typ == yaml_MAPPING_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if len(emitter.line_comment) > 0 { - // [Go] A line comment was provided for the key. That's unusual as the - // scanner associates line comments with the value. Either way, - // save the line comment and render it appropriately later. - emitter.key_line_comment = emitter.line_comment - emitter.line_comment = nil - } - if yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a block value node. -func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) { - return false - } - } - if len(emitter.key_line_comment) > 0 { - // [Go] Line comments are generally associated with the value, but when there's - // no value on the same line as a mapping key they end up attached to the - // key itself. - if event.typ == yaml_SCALAR_EVENT { - if len(emitter.line_comment) == 0 { - // A scalar is coming and it has no line comments by itself yet, - // so just let it handle the line comment as usual. If it has a - // line comment, we can't have both so the one from the key is lost. - emitter.line_comment = emitter.key_line_comment - emitter.key_line_comment = nil - } - } else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) { - // An indented block follows, so write the comment right now. - emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment - if !yaml_emitter_process_line_comment(emitter) { - return false - } - emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment - } - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) - if !yaml_emitter_emit_node(emitter, event, false, false, true, false) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - if !yaml_emitter_process_foot_comment(emitter) { - return false - } - return true -} - -func yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { - return event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0 -} - -// Expect a node. -func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t, - root bool, sequence bool, mapping bool, simple_key bool) bool { - - emitter.root_context = root - emitter.sequence_context = sequence - emitter.mapping_context = mapping - emitter.simple_key_context = simple_key - - switch event.typ { - case yaml_ALIAS_EVENT: - return yaml_emitter_emit_alias(emitter, event) - case yaml_SCALAR_EVENT: - return yaml_emitter_emit_scalar(emitter, event) - case yaml_SEQUENCE_START_EVENT: - return yaml_emitter_emit_sequence_start(emitter, event) - case yaml_MAPPING_START_EVENT: - return yaml_emitter_emit_mapping_start(emitter, event) - default: - return yaml_emitter_set_emitter_error(emitter, - fmt.Sprintf("expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v", event.typ)) - } -} - -// Expect ALIAS. -func yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SCALAR. -func yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_select_scalar_style(emitter, event) { - return false - } - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - if !yaml_emitter_process_scalar(emitter) { - return false - } - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SEQUENCE-START. -func yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE || - yaml_emitter_check_empty_sequence(emitter) { - emitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE - } - return true -} - -// Expect MAPPING-START. -func yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE || - yaml_emitter_check_empty_mapping(emitter) { - emitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE - } - return true -} - -// Check if the document content is an empty scalar. -func yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool { - return false // [Go] Huh? -} - -// Check if the next events represent an empty sequence. -func yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT -} - -// Check if the next events represent an empty mapping. -func yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT -} - -// Check if the next node can be expressed as a simple key. -func yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool { - length := 0 - switch emitter.events[emitter.events_head].typ { - case yaml_ALIAS_EVENT: - length += len(emitter.anchor_data.anchor) - case yaml_SCALAR_EVENT: - if emitter.scalar_data.multiline { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) + - len(emitter.scalar_data.value) - case yaml_SEQUENCE_START_EVENT: - if !yaml_emitter_check_empty_sequence(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - case yaml_MAPPING_START_EVENT: - if !yaml_emitter_check_empty_mapping(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - default: - return false - } - return length <= 128 -} - -// Determine an acceptable scalar style. -func yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - no_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 - if no_tag && !event.implicit && !event.quoted_implicit { - return yaml_emitter_set_emitter_error(emitter, "neither tag nor implicit flags are specified") - } - - style := event.scalar_style() - if style == yaml_ANY_SCALAR_STYLE { - style = yaml_PLAIN_SCALAR_STYLE - } - if emitter.canonical { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - if emitter.simple_key_context && emitter.scalar_data.multiline { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - - if style == yaml_PLAIN_SCALAR_STYLE { - if emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed || - emitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if no_tag && !event.implicit { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_SINGLE_QUOTED_SCALAR_STYLE { - if !emitter.scalar_data.single_quoted_allowed { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE { - if !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - - if no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE { - emitter.tag_data.handle = []byte{'!'} - } - emitter.scalar_data.style = style - return true -} - -// Write an anchor. -func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { - if emitter.anchor_data.anchor == nil { - return true - } - c := []byte{'&'} - if emitter.anchor_data.alias { - c[0] = '*' - } - if !yaml_emitter_write_indicator(emitter, c, true, false, false) { - return false - } - return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) -} - -// Write a tag. -func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { - if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { - return true - } - if len(emitter.tag_data.handle) > 0 { - if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { - return false - } - if len(emitter.tag_data.suffix) > 0 { - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - } - } else { - // [Go] Allocate these slices elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { - return false - } - } - return true -} - -// Write a scalar. -func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { - switch emitter.scalar_data.style { - case yaml_PLAIN_SCALAR_STYLE: - return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_SINGLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_DOUBLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_LITERAL_SCALAR_STYLE: - return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) - - case yaml_FOLDED_SCALAR_STYLE: - return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) - } - panic("unknown scalar style") -} - -// Write a head comment. -func yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool { - if len(emitter.tail_comment) > 0 { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.tail_comment) { - return false - } - emitter.tail_comment = emitter.tail_comment[:0] - emitter.foot_indent = emitter.indent - if emitter.foot_indent < 0 { - emitter.foot_indent = 0 - } - } - - if len(emitter.head_comment) == 0 { - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.head_comment) { - return false - } - emitter.head_comment = emitter.head_comment[:0] - return true -} - -// Write an line comment. -func yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool { - if len(emitter.line_comment) == 0 { - return true - } - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !yaml_emitter_write_comment(emitter, emitter.line_comment) { - return false - } - emitter.line_comment = emitter.line_comment[:0] - return true -} - -// Write a foot comment. -func yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool { - if len(emitter.foot_comment) == 0 { - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_comment(emitter, emitter.foot_comment) { - return false - } - emitter.foot_comment = emitter.foot_comment[:0] - emitter.foot_indent = emitter.indent - if emitter.foot_indent < 0 { - emitter.foot_indent = 0 - } - return true -} - -// Check if a %YAML directive is valid. -func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { - if version_directive.major != 1 || version_directive.minor != 1 { - return yaml_emitter_set_emitter_error(emitter, "incompatible %YAML directive") - } - return true -} - -// Check if a %TAG directive is valid. -func yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool { - handle := tag_directive.handle - prefix := tag_directive.prefix - if len(handle) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag handle must not be empty") - } - if handle[0] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must start with '!'") - } - if handle[len(handle)-1] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must end with '!'") - } - for i := 1; i < len(handle)-1; i += width(handle[i]) { - if !is_alpha(handle, i) { - return yaml_emitter_set_emitter_error(emitter, "tag handle must contain alphanumerical characters only") - } - } - if len(prefix) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag prefix must not be empty") - } - return true -} - -// Check if an anchor is valid. -func yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool { - if len(anchor) == 0 { - problem := "anchor value must not be empty" - if alias { - problem = "alias value must not be empty" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - for i := 0; i < len(anchor); i += width(anchor[i]) { - if !is_alpha(anchor, i) { - problem := "anchor value must contain alphanumerical characters only" - if alias { - problem = "alias value must contain alphanumerical characters only" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - } - emitter.anchor_data.anchor = anchor - emitter.anchor_data.alias = alias - return true -} - -// Check if a tag is valid. -func yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool { - if len(tag) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag value must not be empty") - } - for i := 0; i < len(emitter.tag_directives); i++ { - tag_directive := &emitter.tag_directives[i] - if bytes.HasPrefix(tag, tag_directive.prefix) { - emitter.tag_data.handle = tag_directive.handle - emitter.tag_data.suffix = tag[len(tag_directive.prefix):] - return true - } - } - emitter.tag_data.suffix = tag - return true -} - -// Check if a scalar is valid. -func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { - var ( - block_indicators = false - flow_indicators = false - line_breaks = false - special_characters = false - tab_characters = false - - leading_space = false - leading_break = false - trailing_space = false - trailing_break = false - break_space = false - space_break = false - - preceded_by_whitespace = false - followed_by_whitespace = false - previous_space = false - previous_break = false - ) - - emitter.scalar_data.value = value - - if len(value) == 0 { - emitter.scalar_data.multiline = false - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = false - return true - } - - if len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) { - block_indicators = true - flow_indicators = true - } - - preceded_by_whitespace = true - for i, w := 0, 0; i < len(value); i += w { - w = width(value[i]) - followed_by_whitespace = i+w >= len(value) || is_blank(value, i+w) - - if i == 0 { - switch value[i] { - case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': - flow_indicators = true - block_indicators = true - case '?', ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '-': - if followed_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } else { - switch value[i] { - case ',', '?', '[', ']', '{', '}': - flow_indicators = true - case ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '#': - if preceded_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } - - if value[i] == '\t' { - tab_characters = true - } else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { - special_characters = true - } - if is_space(value, i) { - if i == 0 { - leading_space = true - } - if i+width(value[i]) == len(value) { - trailing_space = true - } - if previous_break { - break_space = true - } - previous_space = true - previous_break = false - } else if is_break(value, i) { - line_breaks = true - if i == 0 { - leading_break = true - } - if i+width(value[i]) == len(value) { - trailing_break = true - } - if previous_space { - space_break = true - } - previous_space = false - previous_break = true - } else { - previous_space = false - previous_break = false - } - - // [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition. - preceded_by_whitespace = is_blankz(value, i) - } - - emitter.scalar_data.multiline = line_breaks - emitter.scalar_data.flow_plain_allowed = true - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = true - - if leading_space || leading_break || trailing_space || trailing_break { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if trailing_space { - emitter.scalar_data.block_allowed = false - } - if break_space { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - } - if space_break || tab_characters || special_characters { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - } - if space_break || special_characters { - emitter.scalar_data.block_allowed = false - } - if line_breaks { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if flow_indicators { - emitter.scalar_data.flow_plain_allowed = false - } - if block_indicators { - emitter.scalar_data.block_plain_allowed = false - } - return true -} - -// Check if the event data is valid. -func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - emitter.anchor_data.anchor = nil - emitter.tag_data.handle = nil - emitter.tag_data.suffix = nil - emitter.scalar_data.value = nil - - if len(event.head_comment) > 0 { - emitter.head_comment = event.head_comment - } - if len(event.line_comment) > 0 { - emitter.line_comment = event.line_comment - } - if len(event.foot_comment) > 0 { - emitter.foot_comment = event.foot_comment - } - if len(event.tail_comment) > 0 { - emitter.tail_comment = event.tail_comment - } - - switch event.typ { - case yaml_ALIAS_EVENT: - if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { - return false - } - - case yaml_SCALAR_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - if !yaml_emitter_analyze_scalar(emitter, event.value) { - return false - } - - case yaml_SEQUENCE_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - - case yaml_MAPPING_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - } - return true -} - -// Write the BOM character. -func yaml_emitter_write_bom(emitter *yaml_emitter_t) bool { - if !flush(emitter) { - return false - } - pos := emitter.buffer_pos - emitter.buffer[pos+0] = '\xEF' - emitter.buffer[pos+1] = '\xBB' - emitter.buffer[pos+2] = '\xBF' - emitter.buffer_pos += 3 - return true -} - -func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { - indent := emitter.indent - if indent < 0 { - indent = 0 - } - if !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) { - if !put_break(emitter) { - return false - } - } - if emitter.foot_indent == indent { - if !put_break(emitter) { - return false - } - } - for emitter.column < indent { - if !put(emitter, ' ') { - return false - } - } - emitter.whitespace = true - //emitter.indention = true - emitter.space_above = false - emitter.foot_indent = -1 - return true -} - -func yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, indicator) { - return false - } - emitter.whitespace = is_whitespace - emitter.indention = (emitter.indention && is_indention) - emitter.open_ended = false - return true -} - -func yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool { - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool { - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - for i := 0; i < len(value); { - var must_write bool - switch value[i] { - case ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\'', '(', ')', '[', ']': - must_write = true - default: - must_write = is_alpha(value, i) - } - if must_write { - if !write(emitter, value, &i) { - return false - } - } else { - w := width(value[i]) - for k := 0; k < w; k++ { - octet := value[i] - i++ - if !put(emitter, '%') { - return false - } - - c := octet >> 4 - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - - c = octet & 0x0f - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - } - } - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - if len(value) > 0 && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - - if len(value) > 0 { - emitter.whitespace = false - } - emitter.indention = false - if emitter.root_context { - emitter.open_ended = true - } - - return true -} - -func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, true, false, false) { - return false - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if value[i] == '\'' { - if !put(emitter, '\'') { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - spaces := false - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, true, false, false) { - return false - } - - for i := 0; i < len(value); { - if !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) || - is_bom(value, i) || is_break(value, i) || - value[i] == '"' || value[i] == '\\' { - - octet := value[i] - - var w int - var v rune - switch { - case octet&0x80 == 0x00: - w, v = 1, rune(octet&0x7F) - case octet&0xE0 == 0xC0: - w, v = 2, rune(octet&0x1F) - case octet&0xF0 == 0xE0: - w, v = 3, rune(octet&0x0F) - case octet&0xF8 == 0xF0: - w, v = 4, rune(octet&0x07) - } - for k := 1; k < w; k++ { - octet = value[i+k] - v = (v << 6) + (rune(octet) & 0x3F) - } - i += w - - if !put(emitter, '\\') { - return false - } - - var ok bool - switch v { - case 0x00: - ok = put(emitter, '0') - case 0x07: - ok = put(emitter, 'a') - case 0x08: - ok = put(emitter, 'b') - case 0x09: - ok = put(emitter, 't') - case 0x0A: - ok = put(emitter, 'n') - case 0x0b: - ok = put(emitter, 'v') - case 0x0c: - ok = put(emitter, 'f') - case 0x0d: - ok = put(emitter, 'r') - case 0x1b: - ok = put(emitter, 'e') - case 0x22: - ok = put(emitter, '"') - case 0x5c: - ok = put(emitter, '\\') - case 0x85: - ok = put(emitter, 'N') - case 0xA0: - ok = put(emitter, '_') - case 0x2028: - ok = put(emitter, 'L') - case 0x2029: - ok = put(emitter, 'P') - default: - if v <= 0xFF { - ok = put(emitter, 'x') - w = 2 - } else if v <= 0xFFFF { - ok = put(emitter, 'u') - w = 4 - } else { - ok = put(emitter, 'U') - w = 8 - } - for k := (w - 1) * 4; ok && k >= 0; k -= 4 { - digit := byte((v >> uint(k)) & 0x0F) - if digit < 10 { - ok = put(emitter, digit+'0') - } else { - ok = put(emitter, digit+'A'-10) - } - } - } - if !ok { - return false - } - spaces = false - } else if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 { - if !yaml_emitter_write_indent(emitter) { - return false - } - if is_space(value, i+1) { - if !put(emitter, '\\') { - return false - } - } - i += width(value[i]) - } else if !write(emitter, value, &i) { - return false - } - spaces = true - } else { - if !write(emitter, value, &i) { - return false - } - spaces = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool { - if is_space(value, 0) || is_break(value, 0) { - indent_hint := []byte{'0' + byte(emitter.best_indent)} - if !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) { - return false - } - } - - emitter.open_ended = false - - var chomp_hint [1]byte - if len(value) == 0 { - chomp_hint[0] = '-' - } else { - i := len(value) - 1 - for value[i]&0xC0 == 0x80 { - i-- - } - if !is_break(value, i) { - chomp_hint[0] = '-' - } else if i == 0 { - chomp_hint[0] = '+' - emitter.open_ended = true - } else { - i-- - for value[i]&0xC0 == 0x80 { - i-- - } - if is_break(value, i) { - chomp_hint[0] = '+' - emitter.open_ended = true - } - } - } - if chomp_hint[0] != 0 { - if !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) { - return false - } - } - return true -} - -func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - //emitter.indention = true - emitter.whitespace = true - breaks := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - breaks = false - } - } - - return true -} - -func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - if !yaml_emitter_process_line_comment(emitter) { - return false - } - - //emitter.indention = true - emitter.whitespace = true - - breaks := true - leading_spaces := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !breaks && !leading_spaces && value[i] == '\n' { - k := 0 - for is_break(value, k) { - k += width(value[k]) - } - if !is_blankz(value, k) { - if !put_break(emitter) { - return false - } - } - } - if !write_break(emitter, value, &i) { - return false - } - //emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - leading_spaces = is_blank(value, i) - } - if !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - emitter.indention = false - breaks = false - } - } - return true -} - -func yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool { - breaks := false - pound := false - for i := 0; i < len(comment); { - if is_break(comment, i) { - if !write_break(emitter, comment, &i) { - return false - } - //emitter.indention = true - breaks = true - pound = false - } else { - if breaks && !yaml_emitter_write_indent(emitter) { - return false - } - if !pound { - if comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) { - return false - } - pound = true - } - if !write(emitter, comment, &i) { - return false - } - emitter.indention = false - breaks = false - } - } - if !breaks && !put_break(emitter) { - return false - } - - emitter.whitespace = true - //emitter.indention = true - return true -} diff --git a/vendor/gopkg.in/yaml.v3/encode.go b/vendor/gopkg.in/yaml.v3/encode.go deleted file mode 100644 index de9e72a..0000000 --- a/vendor/gopkg.in/yaml.v3/encode.go +++ /dev/null @@ -1,577 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml - -import ( - "encoding" - "fmt" - "io" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -type encoder struct { - emitter yaml_emitter_t - event yaml_event_t - out []byte - flow bool - indent int - doneInit bool -} - -func newEncoder() *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_string(&e.emitter, &e.out) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func newEncoderWithWriter(w io.Writer) *encoder { - e := &encoder{} - yaml_emitter_initialize(&e.emitter) - yaml_emitter_set_output_writer(&e.emitter, w) - yaml_emitter_set_unicode(&e.emitter, true) - return e -} - -func (e *encoder) init() { - if e.doneInit { - return - } - if e.indent == 0 { - e.indent = 4 - } - e.emitter.best_indent = e.indent - yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING) - e.emit() - e.doneInit = true -} - -func (e *encoder) finish() { - e.emitter.open_ended = false - yaml_stream_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) destroy() { - yaml_emitter_delete(&e.emitter) -} - -func (e *encoder) emit() { - // This will internally delete the e.event value. - e.must(yaml_emitter_emit(&e.emitter, &e.event)) -} - -func (e *encoder) must(ok bool) { - if !ok { - msg := e.emitter.problem - if msg == "" { - msg = "unknown problem generating YAML content" - } - failf("%s", msg) - } -} - -func (e *encoder) marshalDoc(tag string, in reflect.Value) { - e.init() - var node *Node - if in.IsValid() { - node, _ = in.Interface().(*Node) - } - if node != nil && node.Kind == DocumentNode { - e.nodev(in) - } else { - yaml_document_start_event_initialize(&e.event, nil, nil, true) - e.emit() - e.marshal(tag, in) - yaml_document_end_event_initialize(&e.event, true) - e.emit() - } -} - -func (e *encoder) marshal(tag string, in reflect.Value) { - tag = shortTag(tag) - if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() { - e.nilv() - return - } - iface := in.Interface() - switch value := iface.(type) { - case *Node: - e.nodev(in) - return - case Node: - if !in.CanAddr() { - var n = reflect.New(in.Type()).Elem() - n.Set(in) - in = n - } - e.nodev(in.Addr()) - return - case time.Time: - e.timev(tag, in) - return - case *time.Time: - e.timev(tag, in.Elem()) - return - case time.Duration: - e.stringv(tag, reflect.ValueOf(value.String())) - return - case Marshaler: - v, err := value.MarshalYAML() - if err != nil { - fail(err) - } - if v == nil { - e.nilv() - return - } - e.marshal(tag, reflect.ValueOf(v)) - return - case encoding.TextMarshaler: - text, err := value.MarshalText() - if err != nil { - fail(err) - } - in = reflect.ValueOf(string(text)) - case nil: - e.nilv() - return - } - switch in.Kind() { - case reflect.Interface: - e.marshal(tag, in.Elem()) - case reflect.Map: - e.mapv(tag, in) - case reflect.Ptr: - e.marshal(tag, in.Elem()) - case reflect.Struct: - e.structv(tag, in) - case reflect.Slice, reflect.Array: - e.slicev(tag, in) - case reflect.String: - e.stringv(tag, in) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - e.intv(tag, in) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - e.uintv(tag, in) - case reflect.Float32, reflect.Float64: - e.floatv(tag, in) - case reflect.Bool: - e.boolv(tag, in) - default: - panic("cannot marshal type: " + in.Type().String()) - } -} - -func (e *encoder) mapv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - keys := keyList(in.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - e.marshal("", k) - e.marshal("", in.MapIndex(k)) - } - }) -} - -func (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) { - for _, num := range index { - for { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - return reflect.Value{} - } - v = v.Elem() - continue - } - break - } - v = v.Field(num) - } - return v -} - -func (e *encoder) structv(tag string, in reflect.Value) { - sinfo, err := getStructInfo(in.Type()) - if err != nil { - panic(err) - } - e.mappingv(tag, func() { - for _, info := range sinfo.FieldsList { - var value reflect.Value - if info.Inline == nil { - value = in.Field(info.Num) - } else { - value = e.fieldByIndex(in, info.Inline) - if !value.IsValid() { - continue - } - } - if info.OmitEmpty && isZero(value) { - continue - } - e.marshal("", reflect.ValueOf(info.Key)) - e.flow = info.Flow - e.marshal("", value) - } - if sinfo.InlineMap >= 0 { - m := in.Field(sinfo.InlineMap) - if m.Len() > 0 { - e.flow = false - keys := keyList(m.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - if _, found := sinfo.FieldsMap[k.String()]; found { - panic(fmt.Sprintf("cannot have key %q in inlined map: conflicts with struct field", k.String())) - } - e.marshal("", k) - e.flow = false - e.marshal("", m.MapIndex(k)) - } - } - } - }) -} - -func (e *encoder) mappingv(tag string, f func()) { - implicit := tag == "" - style := yaml_BLOCK_MAPPING_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_MAPPING_STYLE - } - yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style) - e.emit() - f() - yaml_mapping_end_event_initialize(&e.event) - e.emit() -} - -func (e *encoder) slicev(tag string, in reflect.Value) { - implicit := tag == "" - style := yaml_BLOCK_SEQUENCE_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) - e.emit() - n := in.Len() - for i := 0; i < n; i++ { - e.marshal("", in.Index(i)) - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.emit() -} - -// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. -// -// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported -// in YAML 1.2 and by this package, but these should be marshalled quoted for -// the time being for compatibility with other parsers. -func isBase60Float(s string) (result bool) { - // Fast path. - if s == "" { - return false - } - c := s[0] - if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { - return false - } - // Do the full match. - return base60float.MatchString(s) -} - -// From http://yaml.org/type/float.html, except the regular expression there -// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. -var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) - -// isOldBool returns whether s is bool notation as defined in YAML 1.1. -// -// We continue to force strings that YAML 1.1 would interpret as booleans to be -// rendered as quotes strings so that the marshalled output valid for YAML 1.1 -// parsing. -func isOldBool(s string) (result bool) { - switch s { - case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON", - "n", "N", "no", "No", "NO", "off", "Off", "OFF": - return true - default: - return false - } -} - -func (e *encoder) stringv(tag string, in reflect.Value) { - var style yaml_scalar_style_t - s := in.String() - canUsePlain := true - switch { - case !utf8.ValidString(s): - if tag == binaryTag { - failf("explicitly tagged !!binary data must be base64-encoded") - } - if tag != "" { - failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) - } - // It can't be encoded directly as YAML so use a binary tag - // and encode it as base64. - tag = binaryTag - s = encodeBase64(s) - case tag == "": - // Check to see if it would resolve to a specific - // tag when encoded unquoted. If it doesn't, - // there's no need to quote it. - rtag, _ := resolve("", s) - canUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s)) - } - // Note: it's possible for user code to emit invalid YAML - // if they explicitly specify a tag and a string containing - // text that's incompatible with that tag. - switch { - case strings.Contains(s, "\n"): - if e.flow { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } else { - style = yaml_LITERAL_SCALAR_STYLE - } - case canUsePlain: - style = yaml_PLAIN_SCALAR_STYLE - default: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - e.emitScalar(s, "", tag, style, nil, nil, nil, nil) -} - -func (e *encoder) boolv(tag string, in reflect.Value) { - var s string - if in.Bool() { - s = "true" - } else { - s = "false" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) intv(tag string, in reflect.Value) { - s := strconv.FormatInt(in.Int(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) uintv(tag string, in reflect.Value) { - s := strconv.FormatUint(in.Uint(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) timev(tag string, in reflect.Value) { - t := in.Interface().(time.Time) - s := t.Format(time.RFC3339Nano) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) floatv(tag string, in reflect.Value) { - // Issue #352: When formatting, use the precision of the underlying value - precision := 64 - if in.Kind() == reflect.Float32 { - precision = 32 - } - - s := strconv.FormatFloat(in.Float(), 'g', -1, precision) - switch s { - case "+Inf": - s = ".inf" - case "-Inf": - s = "-.inf" - case "NaN": - s = ".nan" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) nilv() { - e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil) -} - -func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) { - // TODO Kill this function. Replace all initialize calls by their underlining Go literals. - implicit := tag == "" - if !implicit { - tag = longTag(tag) - } - e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) - e.event.head_comment = head - e.event.line_comment = line - e.event.foot_comment = foot - e.event.tail_comment = tail - e.emit() -} - -func (e *encoder) nodev(in reflect.Value) { - e.node(in.Interface().(*Node), "") -} - -func (e *encoder) node(node *Node, tail string) { - // Zero nodes behave as nil. - if node.Kind == 0 && node.IsZero() { - e.nilv() - return - } - - // If the tag was not explicitly requested, and dropping it won't change the - // implicit tag of the value, don't include it in the presentation. - var tag = node.Tag - var stag = shortTag(tag) - var forceQuoting bool - if tag != "" && node.Style&TaggedStyle == 0 { - if node.Kind == ScalarNode { - if stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 { - tag = "" - } else { - rtag, _ := resolve("", node.Value) - if rtag == stag { - tag = "" - } else if stag == strTag { - tag = "" - forceQuoting = true - } - } - } else { - var rtag string - switch node.Kind { - case MappingNode: - rtag = mapTag - case SequenceNode: - rtag = seqTag - } - if rtag == stag { - tag = "" - } - } - } - - switch node.Kind { - case DocumentNode: - yaml_document_start_event_initialize(&e.event, nil, nil, true) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - for _, node := range node.Content { - e.node(node, "") - } - yaml_document_end_event_initialize(&e.event, true) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case SequenceNode: - style := yaml_BLOCK_SEQUENCE_STYLE - if node.Style&FlowStyle != 0 { - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style)) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - for _, node := range node.Content { - e.node(node, "") - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case MappingNode: - style := yaml_BLOCK_MAPPING_STYLE - if node.Style&FlowStyle != 0 { - style = yaml_FLOW_MAPPING_STYLE - } - yaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style) - e.event.tail_comment = []byte(tail) - e.event.head_comment = []byte(node.HeadComment) - e.emit() - - // The tail logic below moves the foot comment of prior keys to the following key, - // since the value for each key may be a nested structure and the foot needs to be - // processed only the entirety of the value is streamed. The last tail is processed - // with the mapping end event. - var tail string - for i := 0; i+1 < len(node.Content); i += 2 { - k := node.Content[i] - foot := k.FootComment - if foot != "" { - kopy := *k - kopy.FootComment = "" - k = &kopy - } - e.node(k, tail) - tail = foot - - v := node.Content[i+1] - e.node(v, "") - } - - yaml_mapping_end_event_initialize(&e.event) - e.event.tail_comment = []byte(tail) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case AliasNode: - yaml_alias_event_initialize(&e.event, []byte(node.Value)) - e.event.head_comment = []byte(node.HeadComment) - e.event.line_comment = []byte(node.LineComment) - e.event.foot_comment = []byte(node.FootComment) - e.emit() - - case ScalarNode: - value := node.Value - if !utf8.ValidString(value) { - if stag == binaryTag { - failf("explicitly tagged !!binary data must be base64-encoded") - } - if stag != "" { - failf("cannot marshal invalid UTF-8 data as %s", stag) - } - // It can't be encoded directly as YAML so use a binary tag - // and encode it as base64. - tag = binaryTag - value = encodeBase64(value) - } - - style := yaml_PLAIN_SCALAR_STYLE - switch { - case node.Style&DoubleQuotedStyle != 0: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - case node.Style&SingleQuotedStyle != 0: - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - case node.Style&LiteralStyle != 0: - style = yaml_LITERAL_SCALAR_STYLE - case node.Style&FoldedStyle != 0: - style = yaml_FOLDED_SCALAR_STYLE - case strings.Contains(value, "\n"): - style = yaml_LITERAL_SCALAR_STYLE - case forceQuoting: - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - - e.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail)) - default: - failf("cannot encode node with unknown kind %d", node.Kind) - } -} diff --git a/vendor/gopkg.in/yaml.v3/parserc.go b/vendor/gopkg.in/yaml.v3/parserc.go deleted file mode 100644 index 268558a..0000000 --- a/vendor/gopkg.in/yaml.v3/parserc.go +++ /dev/null @@ -1,1258 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" -) - -// The parser implements the following grammar: -// -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// implicit_document ::= block_node DOCUMENT-END* -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// block_node_or_indentless_sequence ::= -// ALIAS -// | properties (block_content | indentless_block_sequence)? -// | block_content -// | indentless_block_sequence -// block_node ::= ALIAS -// | properties block_content? -// | block_content -// flow_node ::= ALIAS -// | properties flow_content? -// | flow_content -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// block_content ::= block_collection | flow_collection | SCALAR -// flow_content ::= flow_collection | SCALAR -// block_collection ::= block_sequence | block_mapping -// flow_collection ::= flow_sequence | flow_mapping -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// block_mapping ::= BLOCK-MAPPING_START -// ((KEY block_node_or_indentless_sequence?)? -// (VALUE block_node_or_indentless_sequence?)?)* -// BLOCK-END -// flow_sequence ::= FLOW-SEQUENCE-START -// (flow_sequence_entry FLOW-ENTRY)* -// flow_sequence_entry? -// FLOW-SEQUENCE-END -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// flow_mapping ::= FLOW-MAPPING-START -// (flow_mapping_entry FLOW-ENTRY)* -// flow_mapping_entry? -// FLOW-MAPPING-END -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? - -// Peek the next token in the token queue. -func peek_token(parser *yaml_parser_t) *yaml_token_t { - if parser.token_available || yaml_parser_fetch_more_tokens(parser) { - token := &parser.tokens[parser.tokens_head] - yaml_parser_unfold_comments(parser, token) - return token - } - return nil -} - -// yaml_parser_unfold_comments walks through the comments queue and joins all -// comments behind the position of the provided token into the respective -// top-level comment slices in the parser. -func yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) { - for parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index { - comment := &parser.comments[parser.comments_head] - if len(comment.head) > 0 { - if token.typ == yaml_BLOCK_END_TOKEN { - // No heads on ends, so keep comment.head for a follow up token. - break - } - if len(parser.head_comment) > 0 { - parser.head_comment = append(parser.head_comment, '\n') - } - parser.head_comment = append(parser.head_comment, comment.head...) - } - if len(comment.foot) > 0 { - if len(parser.foot_comment) > 0 { - parser.foot_comment = append(parser.foot_comment, '\n') - } - parser.foot_comment = append(parser.foot_comment, comment.foot...) - } - if len(comment.line) > 0 { - if len(parser.line_comment) > 0 { - parser.line_comment = append(parser.line_comment, '\n') - } - parser.line_comment = append(parser.line_comment, comment.line...) - } - *comment = yaml_comment_t{} - parser.comments_head++ - } -} - -// Remove the next token from the queue (must be called after peek_token). -func skip_token(parser *yaml_parser_t) { - parser.token_available = false - parser.tokens_parsed++ - parser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN - parser.tokens_head++ -} - -// Get the next event. -func yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool { - // Erase the event object. - *event = yaml_event_t{} - - // No events after the end of the stream or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE { - return true - } - - // Generate the next event. - return yaml_parser_state_machine(parser, event) -} - -// Set parser error. -func yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -func yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -// State dispatcher. -func yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool { - //trace("yaml_parser_state_machine", "state:", parser.state.String()) - - switch parser.state { - case yaml_PARSE_STREAM_START_STATE: - return yaml_parser_parse_stream_start(parser, event) - - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, true) - - case yaml_PARSE_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, false) - - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return yaml_parser_parse_document_content(parser, event) - - case yaml_PARSE_DOCUMENT_END_STATE: - return yaml_parser_parse_document_end(parser, event) - - case yaml_PARSE_BLOCK_NODE_STATE: - return yaml_parser_parse_node(parser, event, true, false) - - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return yaml_parser_parse_node(parser, event, true, true) - - case yaml_PARSE_FLOW_NODE_STATE: - return yaml_parser_parse_node(parser, event, false, false) - - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, true) - - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, false) - - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_indentless_sequence_entry(parser, event) - - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, true) - - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, false) - - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return yaml_parser_parse_block_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, true) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, false) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event) - - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, true) - - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, true) - - default: - panic("invalid parser state") - } -} - -// Parse the production: -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// ************ -func yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_STREAM_START_TOKEN { - return yaml_parser_set_parser_error(parser, "did not find expected ", token.start_mark) - } - parser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - encoding: token.encoding, - } - skip_token(parser) - return true -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// * -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// ************************* -func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool { - - token := peek_token(parser) - if token == nil { - return false - } - - // Parse extra document end indicators. - if !implicit { - for token.typ == yaml_DOCUMENT_END_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - if implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN && - token.typ != yaml_TAG_DIRECTIVE_TOKEN && - token.typ != yaml_DOCUMENT_START_TOKEN && - token.typ != yaml_STREAM_END_TOKEN { - // Parse an implicit document. - if !yaml_parser_process_directives(parser, nil, nil) { - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_BLOCK_NODE_STATE - - var head_comment []byte - if len(parser.head_comment) > 0 { - // [Go] Scan the header comment backwards, and if an empty line is found, break - // the header so the part before the last empty line goes into the - // document header, while the bottom of it goes into a follow up event. - for i := len(parser.head_comment) - 1; i > 0; i-- { - if parser.head_comment[i] == '\n' { - if i == len(parser.head_comment)-1 { - head_comment = parser.head_comment[:i] - parser.head_comment = parser.head_comment[i+1:] - break - } else if parser.head_comment[i-1] == '\n' { - head_comment = parser.head_comment[:i-1] - parser.head_comment = parser.head_comment[i+1:] - break - } - } - } - } - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - - head_comment: head_comment, - } - - } else if token.typ != yaml_STREAM_END_TOKEN { - // Parse an explicit document. - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - start_mark := token.start_mark - if !yaml_parser_process_directives(parser, &version_directive, &tag_directives) { - return false - } - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_DOCUMENT_START_TOKEN { - yaml_parser_set_parser_error(parser, - "did not find expected ", token.start_mark) - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE - end_mark := token.end_mark - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: false, - } - skip_token(parser) - - } else { - // Parse the stream end. - parser.state = yaml_PARSE_END_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - } - - return true -} - -// Parse the productions: -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// *********** -// -func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || - token.typ == yaml_TAG_DIRECTIVE_TOKEN || - token.typ == yaml_DOCUMENT_START_TOKEN || - token.typ == yaml_DOCUMENT_END_TOKEN || - token.typ == yaml_STREAM_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - return yaml_parser_process_empty_scalar(parser, event, - token.start_mark) - } - return yaml_parser_parse_node(parser, event, true, false) -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// ************* -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// -func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - start_mark := token.start_mark - end_mark := token.start_mark - - implicit := true - if token.typ == yaml_DOCUMENT_END_TOKEN { - end_mark = token.end_mark - skip_token(parser) - implicit = false - } - - parser.tag_directives = parser.tag_directives[:0] - - parser.state = yaml_PARSE_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - start_mark: start_mark, - end_mark: end_mark, - implicit: implicit, - } - yaml_parser_set_event_comments(parser, event) - if len(event.head_comment) > 0 && len(event.foot_comment) == 0 { - event.foot_comment = event.head_comment - event.head_comment = nil - } - return true -} - -func yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) { - event.head_comment = parser.head_comment - event.line_comment = parser.line_comment - event.foot_comment = parser.foot_comment - parser.head_comment = nil - parser.line_comment = nil - parser.foot_comment = nil - parser.tail_comment = nil - parser.stem_comment = nil -} - -// Parse the productions: -// block_node_or_indentless_sequence ::= -// ALIAS -// ***** -// | properties (block_content | indentless_block_sequence)? -// ********** * -// | block_content | indentless_block_sequence -// * -// block_node ::= ALIAS -// ***** -// | properties block_content? -// ********** * -// | block_content -// * -// flow_node ::= ALIAS -// ***** -// | properties flow_content? -// ********** * -// | flow_content -// * -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// ************************* -// block_content ::= block_collection | flow_collection | SCALAR -// ****** -// flow_content ::= flow_collection | SCALAR -// ****** -func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool { - //defer trace("yaml_parser_parse_node", "block:", block, "indentless_sequence:", indentless_sequence)() - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_ALIAS_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - *event = yaml_event_t{ - typ: yaml_ALIAS_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - anchor: token.value, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - - start_mark := token.start_mark - end_mark := token.start_mark - - var tag_token bool - var tag_handle, tag_suffix, anchor []byte - var tag_mark yaml_mark_t - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - start_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } else if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - start_mark = token.start_mark - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - var tag []byte - if tag_token { - if len(tag_handle) == 0 { - tag = tag_suffix - tag_suffix = nil - } else { - for i := range parser.tag_directives { - if bytes.Equal(parser.tag_directives[i].handle, tag_handle) { - tag = append([]byte(nil), parser.tag_directives[i].prefix...) - tag = append(tag, tag_suffix...) - break - } - } - if len(tag) == 0 { - yaml_parser_set_parser_error_context(parser, - "while parsing a node", start_mark, - "found undefined tag handle", tag_mark) - return false - } - } - } - - implicit := len(tag) == 0 - if indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - return true - } - if token.typ == yaml_SCALAR_TOKEN { - var plain_implicit, quoted_implicit bool - end_mark = token.end_mark - if (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') { - plain_implicit = true - } else if len(tag) == 0 { - quoted_implicit = true - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - value: token.value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(token.style), - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - if token.typ == yaml_FLOW_SEQUENCE_START_TOKEN { - // [Go] Some of the events below can be merged as they differ only on style. - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), - } - yaml_parser_set_event_comments(parser, event) - return true - } - if token.typ == yaml_FLOW_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - yaml_parser_set_event_comments(parser, event) - return true - } - if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - if parser.stem_comment != nil { - event.head_comment = parser.stem_comment - parser.stem_comment = nil - } - return true - } - if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), - } - if parser.stem_comment != nil { - event.head_comment = parser.stem_comment - parser.stem_comment = nil - } - return true - } - if len(anchor) > 0 || len(tag) > 0 { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - quoted_implicit: false, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true - } - - context := "while parsing a flow node" - if block { - context = "while parsing a block node" - } - yaml_parser_set_parser_error_context(parser, context, start_mark, - "did not find expected node content", token.start_mark) - return false -} - -// Parse the productions: -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// ******************** *********** * ********* -// -func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - prior_head_len := len(parser.head_comment) - skip_token(parser) - yaml_parser_split_stem_comment(parser, prior_head_len) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } else { - parser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } - if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block collection", context_mark, - "did not find expected '-' indicator", token.start_mark) -} - -// Parse the productions: -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// *********** * -func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - prior_head_len := len(parser.head_comment) - skip_token(parser) - yaml_parser_split_stem_comment(parser, prior_head_len) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && - token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be token.end_mark? - } - return true -} - -// Split stem comment from head comment. -// -// When a sequence or map is found under a sequence entry, the former head comment -// is assigned to the underlying sequence or map as a whole, not the individual -// sequence or map entry as would be expected otherwise. To handle this case the -// previous head comment is moved aside as the stem comment. -func yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) { - if stem_len == 0 { - return - } - - token := peek_token(parser) - if token == nil || token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN { - return - } - - parser.stem_comment = parser.head_comment[:stem_len] - if len(parser.head_comment) == stem_len { - parser.head_comment = nil - } else { - // Copy suffix to prevent very strange bugs if someone ever appends - // further bytes to the prefix in the stem_comment slice above. - parser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...) - } -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// ******************* -// ((KEY block_node_or_indentless_sequence?)? -// *** * -// (VALUE block_node_or_indentless_sequence?)?)* -// -// BLOCK-END -// ********* -// -func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - // [Go] A tail comment was left from the prior mapping value processed. Emit an event - // as it needs to be processed with that value and not the following key. - if len(parser.tail_comment) > 0 { - *event = yaml_event_t{ - typ: yaml_TAIL_COMMENT_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - foot_comment: parser.tail_comment, - } - parser.tail_comment = nil - return true - } - - if token.typ == yaml_KEY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } else { - parser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } else if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block mapping", context_mark, - "did not find expected key", token.start_mark) -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// -// ((KEY block_node_or_indentless_sequence?)? -// -// (VALUE block_node_or_indentless_sequence?)?)* -// ***** * -// BLOCK-END -// -// -func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence ::= FLOW-SEQUENCE-START -// ******************* -// (flow_sequence_entry FLOW-ENTRY)* -// * ********** -// flow_sequence_entry? -// * -// FLOW-SEQUENCE-END -// ***************** -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * -// -func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - if token == nil { - return false - } - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow sequence", context_mark, - "did not find expected ',' or ']'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - implicit: true, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - skip_token(parser) - return true - } else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - - skip_token(parser) - return true -} - -// -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// *** * -// -func yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - mark := token.end_mark - skip_token(parser) - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// ***** * -// -func yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * -// -func yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be end_mark? - } - return true -} - -// Parse the productions: -// flow_mapping ::= FLOW-MAPPING-START -// ****************** -// (flow_mapping_entry FLOW-ENTRY)* -// * ********** -// flow_mapping_entry? -// ****************** -// FLOW-MAPPING-END -// **************** -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * *** * -// -func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow mapping", context_mark, - "did not find expected ',' or '}'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } else { - parser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - } else if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - yaml_parser_set_event_comments(parser, event) - skip_token(parser) - return true -} - -// Parse the productions: -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * ***** * -// -func yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool { - token := peek_token(parser) - if token == nil { - return false - } - if empty { - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Generate an empty scalar event. -func yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: mark, - end_mark: mark, - value: nil, // Empty - implicit: true, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true -} - -var default_tag_directives = []yaml_tag_directive_t{ - {[]byte("!"), []byte("!")}, - {[]byte("!!"), []byte("tag:yaml.org,2002:")}, -} - -// Parse directives. -func yaml_parser_process_directives(parser *yaml_parser_t, - version_directive_ref **yaml_version_directive_t, - tag_directives_ref *[]yaml_tag_directive_t) bool { - - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - - token := peek_token(parser) - if token == nil { - return false - } - - for token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN { - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN { - if version_directive != nil { - yaml_parser_set_parser_error(parser, - "found duplicate %YAML directive", token.start_mark) - return false - } - if token.major != 1 || token.minor != 1 { - yaml_parser_set_parser_error(parser, - "found incompatible YAML document", token.start_mark) - return false - } - version_directive = &yaml_version_directive_t{ - major: token.major, - minor: token.minor, - } - } else if token.typ == yaml_TAG_DIRECTIVE_TOKEN { - value := yaml_tag_directive_t{ - handle: token.value, - prefix: token.prefix, - } - if !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) { - return false - } - tag_directives = append(tag_directives, value) - } - - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - - for i := range default_tag_directives { - if !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) { - return false - } - } - - if version_directive_ref != nil { - *version_directive_ref = version_directive - } - if tag_directives_ref != nil { - *tag_directives_ref = tag_directives - } - return true -} - -// Append a tag directive to the directives stack. -func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool { - for i := range parser.tag_directives { - if bytes.Equal(value.handle, parser.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark) - } - } - - // [Go] I suspect the copy is unnecessary. This was likely done - // because there was no way to track ownership of the data. - value_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(value_copy.handle, value.handle) - copy(value_copy.prefix, value.prefix) - parser.tag_directives = append(parser.tag_directives, value_copy) - return true -} diff --git a/vendor/gopkg.in/yaml.v3/readerc.go b/vendor/gopkg.in/yaml.v3/readerc.go deleted file mode 100644 index b7de0a8..0000000 --- a/vendor/gopkg.in/yaml.v3/readerc.go +++ /dev/null @@ -1,434 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "io" -) - -// Set the reader error and return 0. -func yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool { - parser.error = yaml_READER_ERROR - parser.problem = problem - parser.problem_offset = offset - parser.problem_value = value - return false -} - -// Byte order marks. -const ( - bom_UTF8 = "\xef\xbb\xbf" - bom_UTF16LE = "\xff\xfe" - bom_UTF16BE = "\xfe\xff" -) - -// Determine the input stream encoding by checking the BOM symbol. If no BOM is -// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. -func yaml_parser_determine_encoding(parser *yaml_parser_t) bool { - // Ensure that we had enough bytes in the raw buffer. - for !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 { - if !yaml_parser_update_raw_buffer(parser) { - return false - } - } - - // Determine the encoding. - buf := parser.raw_buffer - pos := parser.raw_buffer_pos - avail := len(buf) - pos - if avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] { - parser.encoding = yaml_UTF16LE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] { - parser.encoding = yaml_UTF16BE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] { - parser.encoding = yaml_UTF8_ENCODING - parser.raw_buffer_pos += 3 - parser.offset += 3 - } else { - parser.encoding = yaml_UTF8_ENCODING - } - return true -} - -// Update the raw buffer. -func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { - size_read := 0 - - // Return if the raw buffer is full. - if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { - return true - } - - // Return on EOF. - if parser.eof { - return true - } - - // Move the remaining bytes in the raw buffer to the beginning. - if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { - copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) - } - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] - parser.raw_buffer_pos = 0 - - // Call the read handler to fill the buffer. - size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] - if err == io.EOF { - parser.eof = true - } else if err != nil { - return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) - } - return true -} - -// Ensure that the buffer contains at least `length` characters. -// Return true on success, false on failure. -// -// The length is supposed to be significantly less that the buffer size. -func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { - if parser.read_handler == nil { - panic("read handler must be set") - } - - // [Go] This function was changed to guarantee the requested length size at EOF. - // The fact we need to do this is pretty awful, but the description above implies - // for that to be the case, and there are tests - - // If the EOF flag is set and the raw buffer is empty, do nothing. - if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { - // [Go] ACTUALLY! Read the documentation of this function above. - // This is just broken. To return true, we need to have the - // given length in the buffer. Not doing that means every single - // check that calls this function to make sure the buffer has a - // given length is Go) panicking; or C) accessing invalid memory. - //return true - } - - // Return if the buffer contains enough characters. - if parser.unread >= length { - return true - } - - // Determine the input encoding if it is not known yet. - if parser.encoding == yaml_ANY_ENCODING { - if !yaml_parser_determine_encoding(parser) { - return false - } - } - - // Move the unread characters to the beginning of the buffer. - buffer_len := len(parser.buffer) - if parser.buffer_pos > 0 && parser.buffer_pos < buffer_len { - copy(parser.buffer, parser.buffer[parser.buffer_pos:]) - buffer_len -= parser.buffer_pos - parser.buffer_pos = 0 - } else if parser.buffer_pos == buffer_len { - buffer_len = 0 - parser.buffer_pos = 0 - } - - // Open the whole buffer for writing, and cut it before returning. - parser.buffer = parser.buffer[:cap(parser.buffer)] - - // Fill the buffer until it has enough characters. - first := true - for parser.unread < length { - - // Fill the raw buffer if necessary. - if !first || parser.raw_buffer_pos == len(parser.raw_buffer) { - if !yaml_parser_update_raw_buffer(parser) { - parser.buffer = parser.buffer[:buffer_len] - return false - } - } - first = false - - // Decode the raw buffer. - inner: - for parser.raw_buffer_pos != len(parser.raw_buffer) { - var value rune - var width int - - raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos - - // Decode the next character. - switch parser.encoding { - case yaml_UTF8_ENCODING: - // Decode a UTF-8 character. Check RFC 3629 - // (http://www.ietf.org/rfc/rfc3629.txt) for more details. - // - // The following table (taken from the RFC) is used for - // decoding. - // - // Char. number range | UTF-8 octet sequence - // (hexadecimal) | (binary) - // --------------------+------------------------------------ - // 0000 0000-0000 007F | 0xxxxxxx - // 0000 0080-0000 07FF | 110xxxxx 10xxxxxx - // 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx - // 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - // - // Additionally, the characters in the range 0xD800-0xDFFF - // are prohibited as they are reserved for use with UTF-16 - // surrogate pairs. - - // Determine the length of the UTF-8 sequence. - octet := parser.raw_buffer[parser.raw_buffer_pos] - switch { - case octet&0x80 == 0x00: - width = 1 - case octet&0xE0 == 0xC0: - width = 2 - case octet&0xF0 == 0xE0: - width = 3 - case octet&0xF8 == 0xF0: - width = 4 - default: - // The leading octet is invalid. - return yaml_parser_set_reader_error(parser, - "invalid leading UTF-8 octet", - parser.offset, int(octet)) - } - - // Check if the raw buffer contains an incomplete character. - if width > raw_unread { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-8 octet sequence", - parser.offset, -1) - } - break inner - } - - // Decode the leading octet. - switch { - case octet&0x80 == 0x00: - value = rune(octet & 0x7F) - case octet&0xE0 == 0xC0: - value = rune(octet & 0x1F) - case octet&0xF0 == 0xE0: - value = rune(octet & 0x0F) - case octet&0xF8 == 0xF0: - value = rune(octet & 0x07) - default: - value = 0 - } - - // Check and decode the trailing octets. - for k := 1; k < width; k++ { - octet = parser.raw_buffer[parser.raw_buffer_pos+k] - - // Check if the octet is valid. - if (octet & 0xC0) != 0x80 { - return yaml_parser_set_reader_error(parser, - "invalid trailing UTF-8 octet", - parser.offset+k, int(octet)) - } - - // Decode the octet. - value = (value << 6) + rune(octet&0x3F) - } - - // Check the length of the sequence against the value. - switch { - case width == 1: - case width == 2 && value >= 0x80: - case width == 3 && value >= 0x800: - case width == 4 && value >= 0x10000: - default: - return yaml_parser_set_reader_error(parser, - "invalid length of a UTF-8 sequence", - parser.offset, -1) - } - - // Check the range of the value. - if value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF { - return yaml_parser_set_reader_error(parser, - "invalid Unicode character", - parser.offset, int(value)) - } - - case yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING: - var low, high int - if parser.encoding == yaml_UTF16LE_ENCODING { - low, high = 0, 1 - } else { - low, high = 1, 0 - } - - // The UTF-16 encoding is not as simple as one might - // naively think. Check RFC 2781 - // (http://www.ietf.org/rfc/rfc2781.txt). - // - // Normally, two subsequent bytes describe a Unicode - // character. However a special technique (called a - // surrogate pair) is used for specifying character - // values larger than 0xFFFF. - // - // A surrogate pair consists of two pseudo-characters: - // high surrogate area (0xD800-0xDBFF) - // low surrogate area (0xDC00-0xDFFF) - // - // The following formulas are used for decoding - // and encoding characters using surrogate pairs: - // - // U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) - // U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) - // W1 = 110110yyyyyyyyyy - // W2 = 110111xxxxxxxxxx - // - // where U is the character value, W1 is the high surrogate - // area, W2 is the low surrogate area. - - // Check for incomplete UTF-16 character. - if raw_unread < 2 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 character", - parser.offset, -1) - } - break inner - } - - // Get the character. - value = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8) - - // Check for unexpected low surrogate area. - if value&0xFC00 == 0xDC00 { - return yaml_parser_set_reader_error(parser, - "unexpected low surrogate area", - parser.offset, int(value)) - } - - // Check for a high surrogate area. - if value&0xFC00 == 0xD800 { - width = 4 - - // Check for incomplete surrogate pair. - if raw_unread < 4 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 surrogate pair", - parser.offset, -1) - } - break inner - } - - // Get the next character. - value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8) - - // Check for a low surrogate area. - if value2&0xFC00 != 0xDC00 { - return yaml_parser_set_reader_error(parser, - "expected low surrogate area", - parser.offset+2, int(value2)) - } - - // Generate the value of the surrogate pair. - value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF) - } else { - width = 2 - } - - default: - panic("impossible") - } - - // Check if the character is in the allowed range: - // #x9 | #xA | #xD | [#x20-#x7E] (8 bit) - // | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) - // | [#x10000-#x10FFFF] (32 bit) - switch { - case value == 0x09: - case value == 0x0A: - case value == 0x0D: - case value >= 0x20 && value <= 0x7E: - case value == 0x85: - case value >= 0xA0 && value <= 0xD7FF: - case value >= 0xE000 && value <= 0xFFFD: - case value >= 0x10000 && value <= 0x10FFFF: - default: - return yaml_parser_set_reader_error(parser, - "control characters are not allowed", - parser.offset, int(value)) - } - - // Move the raw pointers. - parser.raw_buffer_pos += width - parser.offset += width - - // Finally put the character into the buffer. - if value <= 0x7F { - // 0000 0000-0000 007F . 0xxxxxxx - parser.buffer[buffer_len+0] = byte(value) - buffer_len += 1 - } else if value <= 0x7FF { - // 0000 0080-0000 07FF . 110xxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6)) - parser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F)) - buffer_len += 2 - } else if value <= 0xFFFF { - // 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F)) - buffer_len += 3 - } else { - // 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F)) - buffer_len += 4 - } - - parser.unread++ - } - - // On EOF, put NUL into the buffer and return. - if parser.eof { - parser.buffer[buffer_len] = 0 - buffer_len++ - parser.unread++ - break - } - } - // [Go] Read the documentation of this function above. To return true, - // we need to have the given length in the buffer. Not doing that means - // every single check that calls this function to make sure the buffer - // has a given length is Go) panicking; or C) accessing invalid memory. - // This happens here due to the EOF above breaking early. - for buffer_len < length { - parser.buffer[buffer_len] = 0 - buffer_len++ - } - parser.buffer = parser.buffer[:buffer_len] - return true -} diff --git a/vendor/gopkg.in/yaml.v3/resolve.go b/vendor/gopkg.in/yaml.v3/resolve.go deleted file mode 100644 index 64ae888..0000000 --- a/vendor/gopkg.in/yaml.v3/resolve.go +++ /dev/null @@ -1,326 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml - -import ( - "encoding/base64" - "math" - "regexp" - "strconv" - "strings" - "time" -) - -type resolveMapItem struct { - value interface{} - tag string -} - -var resolveTable = make([]byte, 256) -var resolveMap = make(map[string]resolveMapItem) - -func init() { - t := resolveTable - t[int('+')] = 'S' // Sign - t[int('-')] = 'S' - for _, c := range "0123456789" { - t[int(c)] = 'D' // Digit - } - for _, c := range "yYnNtTfFoO~" { - t[int(c)] = 'M' // In map - } - t[int('.')] = '.' // Float (potentially in map) - - var resolveMapList = []struct { - v interface{} - tag string - l []string - }{ - {true, boolTag, []string{"true", "True", "TRUE"}}, - {false, boolTag, []string{"false", "False", "FALSE"}}, - {nil, nullTag, []string{"", "~", "null", "Null", "NULL"}}, - {math.NaN(), floatTag, []string{".nan", ".NaN", ".NAN"}}, - {math.Inf(+1), floatTag, []string{".inf", ".Inf", ".INF"}}, - {math.Inf(+1), floatTag, []string{"+.inf", "+.Inf", "+.INF"}}, - {math.Inf(-1), floatTag, []string{"-.inf", "-.Inf", "-.INF"}}, - {"<<", mergeTag, []string{"<<"}}, - } - - m := resolveMap - for _, item := range resolveMapList { - for _, s := range item.l { - m[s] = resolveMapItem{item.v, item.tag} - } - } -} - -const ( - nullTag = "!!null" - boolTag = "!!bool" - strTag = "!!str" - intTag = "!!int" - floatTag = "!!float" - timestampTag = "!!timestamp" - seqTag = "!!seq" - mapTag = "!!map" - binaryTag = "!!binary" - mergeTag = "!!merge" -) - -var longTags = make(map[string]string) -var shortTags = make(map[string]string) - -func init() { - for _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} { - ltag := longTag(stag) - longTags[stag] = ltag - shortTags[ltag] = stag - } -} - -const longTagPrefix = "tag:yaml.org,2002:" - -func shortTag(tag string) string { - if strings.HasPrefix(tag, longTagPrefix) { - if stag, ok := shortTags[tag]; ok { - return stag - } - return "!!" + tag[len(longTagPrefix):] - } - return tag -} - -func longTag(tag string) string { - if strings.HasPrefix(tag, "!!") { - if ltag, ok := longTags[tag]; ok { - return ltag - } - return longTagPrefix + tag[2:] - } - return tag -} - -func resolvableTag(tag string) bool { - switch tag { - case "", strTag, boolTag, intTag, floatTag, nullTag, timestampTag: - return true - } - return false -} - -var yamlStyleFloat = regexp.MustCompile(`^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$`) - -func resolve(tag string, in string) (rtag string, out interface{}) { - tag = shortTag(tag) - if !resolvableTag(tag) { - return tag, in - } - - defer func() { - switch tag { - case "", rtag, strTag, binaryTag: - return - case floatTag: - if rtag == intTag { - switch v := out.(type) { - case int64: - rtag = floatTag - out = float64(v) - return - case int: - rtag = floatTag - out = float64(v) - return - } - } - } - failf("cannot decode %s `%s` as a %s", shortTag(rtag), in, shortTag(tag)) - }() - - // Any data is accepted as a !!str or !!binary. - // Otherwise, the prefix is enough of a hint about what it might be. - hint := byte('N') - if in != "" { - hint = resolveTable[in[0]] - } - if hint != 0 && tag != strTag && tag != binaryTag { - // Handle things we can lookup in a map. - if item, ok := resolveMap[in]; ok { - return item.tag, item.value - } - - // Base 60 floats are a bad idea, were dropped in YAML 1.2, and - // are purposefully unsupported here. They're still quoted on - // the way out for compatibility with other parser, though. - - switch hint { - case 'M': - // We've already checked the map above. - - case '.': - // Not in the map, so maybe a normal float. - floatv, err := strconv.ParseFloat(in, 64) - if err == nil { - return floatTag, floatv - } - - case 'D', 'S': - // Int, float, or timestamp. - // Only try values as a timestamp if the value is unquoted or there's an explicit - // !!timestamp tag. - if tag == "" || tag == timestampTag { - t, ok := parseTimestamp(in) - if ok { - return timestampTag, t - } - } - - plain := strings.Replace(in, "_", "", -1) - intv, err := strconv.ParseInt(plain, 0, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain, 0, 64) - if err == nil { - return intTag, uintv - } - if yamlStyleFloat.MatchString(plain) { - floatv, err := strconv.ParseFloat(plain, 64) - if err == nil { - return floatTag, floatv - } - } - if strings.HasPrefix(plain, "0b") { - intv, err := strconv.ParseInt(plain[2:], 2, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain[2:], 2, 64) - if err == nil { - return intTag, uintv - } - } else if strings.HasPrefix(plain, "-0b") { - intv, err := strconv.ParseInt("-"+plain[3:], 2, 64) - if err == nil { - if true || intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - } - // Octals as introduced in version 1.2 of the spec. - // Octals from the 1.1 spec, spelled as 0777, are still - // decoded by default in v3 as well for compatibility. - // May be dropped in v4 depending on how usage evolves. - if strings.HasPrefix(plain, "0o") { - intv, err := strconv.ParseInt(plain[2:], 8, 64) - if err == nil { - if intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - uintv, err := strconv.ParseUint(plain[2:], 8, 64) - if err == nil { - return intTag, uintv - } - } else if strings.HasPrefix(plain, "-0o") { - intv, err := strconv.ParseInt("-"+plain[3:], 8, 64) - if err == nil { - if true || intv == int64(int(intv)) { - return intTag, int(intv) - } else { - return intTag, intv - } - } - } - default: - panic("internal error: missing handler for resolver table: " + string(rune(hint)) + " (with " + in + ")") - } - } - return strTag, in -} - -// encodeBase64 encodes s as base64 that is broken up into multiple lines -// as appropriate for the resulting length. -func encodeBase64(s string) string { - const lineLen = 70 - encLen := base64.StdEncoding.EncodedLen(len(s)) - lines := encLen/lineLen + 1 - buf := make([]byte, encLen*2+lines) - in := buf[0:encLen] - out := buf[encLen:] - base64.StdEncoding.Encode(in, []byte(s)) - k := 0 - for i := 0; i < len(in); i += lineLen { - j := i + lineLen - if j > len(in) { - j = len(in) - } - k += copy(out[k:], in[i:j]) - if lines > 1 { - out[k] = '\n' - k++ - } - } - return string(out[:k]) -} - -// This is a subset of the formats allowed by the regular expression -// defined at http://yaml.org/type/timestamp.html. -var allowedTimestampFormats = []string{ - "2006-1-2T15:4:5.999999999Z07:00", // RCF3339Nano with short date fields. - "2006-1-2t15:4:5.999999999Z07:00", // RFC3339Nano with short date fields and lower-case "t". - "2006-1-2 15:4:5.999999999", // space separated with no time zone - "2006-1-2", // date only - // Notable exception: time.Parse cannot handle: "2001-12-14 21:59:43.10 -5" - // from the set of examples. -} - -// parseTimestamp parses s as a timestamp string and -// returns the timestamp and reports whether it succeeded. -// Timestamp formats are defined at http://yaml.org/type/timestamp.html -func parseTimestamp(s string) (time.Time, bool) { - // TODO write code to check all the formats supported by - // http://yaml.org/type/timestamp.html instead of using time.Parse. - - // Quick check: all date formats start with YYYY-. - i := 0 - for ; i < len(s); i++ { - if c := s[i]; c < '0' || c > '9' { - break - } - } - if i != 4 || i == len(s) || s[i] != '-' { - return time.Time{}, false - } - for _, format := range allowedTimestampFormats { - if t, err := time.Parse(format, s); err == nil { - return t, true - } - } - return time.Time{}, false -} diff --git a/vendor/gopkg.in/yaml.v3/scannerc.go b/vendor/gopkg.in/yaml.v3/scannerc.go deleted file mode 100644 index ca00701..0000000 --- a/vendor/gopkg.in/yaml.v3/scannerc.go +++ /dev/null @@ -1,3038 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "bytes" - "fmt" -) - -// Introduction -// ************ -// -// The following notes assume that you are familiar with the YAML specification -// (http://yaml.org/spec/1.2/spec.html). We mostly follow it, although in -// some cases we are less restrictive that it requires. -// -// The process of transforming a YAML stream into a sequence of events is -// divided on two steps: Scanning and Parsing. -// -// The Scanner transforms the input stream into a sequence of tokens, while the -// parser transform the sequence of tokens produced by the Scanner into a -// sequence of parsing events. -// -// The Scanner is rather clever and complicated. The Parser, on the contrary, -// is a straightforward implementation of a recursive-descendant parser (or, -// LL(1) parser, as it is usually called). -// -// Actually there are two issues of Scanning that might be called "clever", the -// rest is quite straightforward. The issues are "block collection start" and -// "simple keys". Both issues are explained below in details. -// -// Here the Scanning step is explained and implemented. We start with the list -// of all the tokens produced by the Scanner together with short descriptions. -// -// Now, tokens: -// -// STREAM-START(encoding) # The stream start. -// STREAM-END # The stream end. -// VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. -// TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. -// DOCUMENT-START # '---' -// DOCUMENT-END # '...' -// BLOCK-SEQUENCE-START # Indentation increase denoting a block -// BLOCK-MAPPING-START # sequence or a block mapping. -// BLOCK-END # Indentation decrease. -// FLOW-SEQUENCE-START # '[' -// FLOW-SEQUENCE-END # ']' -// BLOCK-SEQUENCE-START # '{' -// BLOCK-SEQUENCE-END # '}' -// BLOCK-ENTRY # '-' -// FLOW-ENTRY # ',' -// KEY # '?' or nothing (simple keys). -// VALUE # ':' -// ALIAS(anchor) # '*anchor' -// ANCHOR(anchor) # '&anchor' -// TAG(handle,suffix) # '!handle!suffix' -// SCALAR(value,style) # A scalar. -// -// The following two tokens are "virtual" tokens denoting the beginning and the -// end of the stream: -// -// STREAM-START(encoding) -// STREAM-END -// -// We pass the information about the input stream encoding with the -// STREAM-START token. -// -// The next two tokens are responsible for tags: -// -// VERSION-DIRECTIVE(major,minor) -// TAG-DIRECTIVE(handle,prefix) -// -// Example: -// -// %YAML 1.1 -// %TAG ! !foo -// %TAG !yaml! tag:yaml.org,2002: -// --- -// -// The correspoding sequence of tokens: -// -// STREAM-START(utf-8) -// VERSION-DIRECTIVE(1,1) -// TAG-DIRECTIVE("!","!foo") -// TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") -// DOCUMENT-START -// STREAM-END -// -// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole -// line. -// -// The document start and end indicators are represented by: -// -// DOCUMENT-START -// DOCUMENT-END -// -// Note that if a YAML stream contains an implicit document (without '---' -// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be -// produced. -// -// In the following examples, we present whole documents together with the -// produced tokens. -// -// 1. An implicit document: -// -// 'a scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// STREAM-END -// -// 2. An explicit document: -// -// --- -// 'a scalar' -// ... -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// SCALAR("a scalar",single-quoted) -// DOCUMENT-END -// STREAM-END -// -// 3. Several documents in a stream: -// -// 'a scalar' -// --- -// 'another scalar' -// --- -// 'yet another scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// DOCUMENT-START -// SCALAR("another scalar",single-quoted) -// DOCUMENT-START -// SCALAR("yet another scalar",single-quoted) -// STREAM-END -// -// We have already introduced the SCALAR token above. The following tokens are -// used to describe aliases, anchors, tag, and scalars: -// -// ALIAS(anchor) -// ANCHOR(anchor) -// TAG(handle,suffix) -// SCALAR(value,style) -// -// The following series of examples illustrate the usage of these tokens: -// -// 1. A recursive sequence: -// -// &A [ *A ] -// -// Tokens: -// -// STREAM-START(utf-8) -// ANCHOR("A") -// FLOW-SEQUENCE-START -// ALIAS("A") -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A tagged scalar: -// -// !!float "3.14" # A good approximation. -// -// Tokens: -// -// STREAM-START(utf-8) -// TAG("!!","float") -// SCALAR("3.14",double-quoted) -// STREAM-END -// -// 3. Various scalar styles: -// -// --- # Implicit empty plain scalars do not produce tokens. -// --- a plain scalar -// --- 'a single-quoted scalar' -// --- "a double-quoted scalar" -// --- |- -// a literal scalar -// --- >- -// a folded -// scalar -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// DOCUMENT-START -// SCALAR("a plain scalar",plain) -// DOCUMENT-START -// SCALAR("a single-quoted scalar",single-quoted) -// DOCUMENT-START -// SCALAR("a double-quoted scalar",double-quoted) -// DOCUMENT-START -// SCALAR("a literal scalar",literal) -// DOCUMENT-START -// SCALAR("a folded scalar",folded) -// STREAM-END -// -// Now it's time to review collection-related tokens. We will start with -// flow collections: -// -// FLOW-SEQUENCE-START -// FLOW-SEQUENCE-END -// FLOW-MAPPING-START -// FLOW-MAPPING-END -// FLOW-ENTRY -// KEY -// VALUE -// -// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and -// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' -// correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the -// indicators '?' and ':', which are used for denoting mapping keys and values, -// are represented by the KEY and VALUE tokens. -// -// The following examples show flow collections: -// -// 1. A flow sequence: -// -// [item 1, item 2, item 3] -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-SEQUENCE-START -// SCALAR("item 1",plain) -// FLOW-ENTRY -// SCALAR("item 2",plain) -// FLOW-ENTRY -// SCALAR("item 3",plain) -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A flow mapping: -// -// { -// a simple key: a value, # Note that the KEY token is produced. -// ? a complex key: another value, -// } -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// FLOW-ENTRY -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// FLOW-ENTRY -// FLOW-MAPPING-END -// STREAM-END -// -// A simple key is a key which is not denoted by the '?' indicator. Note that -// the Scanner still produce the KEY token whenever it encounters a simple key. -// -// For scanning block collections, the following tokens are used (note that we -// repeat KEY and VALUE here): -// -// BLOCK-SEQUENCE-START -// BLOCK-MAPPING-START -// BLOCK-END -// BLOCK-ENTRY -// KEY -// VALUE -// -// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation -// increase that precedes a block collection (cf. the INDENT token in Python). -// The token BLOCK-END denote indentation decrease that ends a block collection -// (cf. the DEDENT token in Python). However YAML has some syntax pecularities -// that makes detections of these tokens more complex. -// -// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators -// '-', '?', and ':' correspondingly. -// -// The following examples show how the tokens BLOCK-SEQUENCE-START, -// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: -// -// 1. Block sequences: -// -// - item 1 -// - item 2 -// - -// - item 3.1 -// - item 3.2 -// - -// key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 3.1",plain) -// BLOCK-ENTRY -// SCALAR("item 3.2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Block mappings: -// -// a simple key: a value # The KEY token is produced here. -// ? a complex key -// : another value -// a mapping: -// key 1: value 1 -// key 2: value 2 -// a sequence: -// - item 1 -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// KEY -// SCALAR("a mapping",plain) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML does not always require to start a new block collection from a new -// line. If the current line contains only '-', '?', and ':' indicators, a new -// block collection may start at the current line. The following examples -// illustrate this case: -// -// 1. Collections in a sequence: -// -// - - item 1 -// - item 2 -// - key 1: value 1 -// key 2: value 2 -// - ? complex key -// : complex value -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("complex key") -// VALUE -// SCALAR("complex value") -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Collections in a mapping: -// -// ? a sequence -// : - item 1 -// - item 2 -// ? a mapping -// : key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// KEY -// SCALAR("a mapping",plain) -// VALUE -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML also permits non-indented sequences if they are included into a block -// mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: -// -// key: -// - item 1 # BLOCK-SEQUENCE-START is NOT produced here. -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key",plain) -// VALUE -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// - -// Ensure that the buffer contains the required number of characters. -// Return true on success, false on failure (reader error or memory error). -func cache(parser *yaml_parser_t, length int) bool { - // [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B) - return parser.unread >= length || yaml_parser_update_buffer(parser, length) -} - -// Advance the buffer pointer. -func skip(parser *yaml_parser_t) { - if !is_blank(parser.buffer, parser.buffer_pos) { - parser.newlines = 0 - } - parser.mark.index++ - parser.mark.column++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) -} - -func skip_line(parser *yaml_parser_t) { - if is_crlf(parser.buffer, parser.buffer_pos) { - parser.mark.index += 2 - parser.mark.column = 0 - parser.mark.line++ - parser.unread -= 2 - parser.buffer_pos += 2 - parser.newlines++ - } else if is_break(parser.buffer, parser.buffer_pos) { - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) - parser.newlines++ - } -} - -// Copy a character to a string buffer and advance pointers. -func read(parser *yaml_parser_t, s []byte) []byte { - if !is_blank(parser.buffer, parser.buffer_pos) { - parser.newlines = 0 - } - w := width(parser.buffer[parser.buffer_pos]) - if w == 0 { - panic("invalid character sequence") - } - if len(s) == 0 { - s = make([]byte, 0, 32) - } - if w == 1 && len(s)+w <= cap(s) { - s = s[:len(s)+1] - s[len(s)-1] = parser.buffer[parser.buffer_pos] - parser.buffer_pos++ - } else { - s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...) - parser.buffer_pos += w - } - parser.mark.index++ - parser.mark.column++ - parser.unread-- - return s -} - -// Copy a line break character to a string buffer and advance pointers. -func read_line(parser *yaml_parser_t, s []byte) []byte { - buf := parser.buffer - pos := parser.buffer_pos - switch { - case buf[pos] == '\r' && buf[pos+1] == '\n': - // CR LF . LF - s = append(s, '\n') - parser.buffer_pos += 2 - parser.mark.index++ - parser.unread-- - case buf[pos] == '\r' || buf[pos] == '\n': - // CR|LF . LF - s = append(s, '\n') - parser.buffer_pos += 1 - case buf[pos] == '\xC2' && buf[pos+1] == '\x85': - // NEL . LF - s = append(s, '\n') - parser.buffer_pos += 2 - case buf[pos] == '\xE2' && buf[pos+1] == '\x80' && (buf[pos+2] == '\xA8' || buf[pos+2] == '\xA9'): - // LS|PS . LS|PS - s = append(s, buf[parser.buffer_pos:pos+3]...) - parser.buffer_pos += 3 - default: - return s - } - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - parser.newlines++ - return s -} - -// Get the next token. -func yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool { - // Erase the token object. - *token = yaml_token_t{} // [Go] Is this necessary? - - // No tokens after STREAM-END or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR { - return true - } - - // Ensure that the tokens queue contains enough tokens. - if !parser.token_available { - if !yaml_parser_fetch_more_tokens(parser) { - return false - } - } - - // Fetch the next token from the queue. - *token = parser.tokens[parser.tokens_head] - parser.tokens_head++ - parser.tokens_parsed++ - parser.token_available = false - - if token.typ == yaml_STREAM_END_TOKEN { - parser.stream_end_produced = true - } - return true -} - -// Set the scanner error and return false. -func yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool { - parser.error = yaml_SCANNER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = parser.mark - return false -} - -func yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool { - context := "while parsing a tag" - if directive { - context = "while parsing a %TAG directive" - } - return yaml_parser_set_scanner_error(parser, context, context_mark, problem) -} - -func trace(args ...interface{}) func() { - pargs := append([]interface{}{"+++"}, args...) - fmt.Println(pargs...) - pargs = append([]interface{}{"---"}, args...) - return func() { fmt.Println(pargs...) } -} - -// Ensure that the tokens queue contains at least one token which can be -// returned to the Parser. -func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { - // While we need more tokens to fetch, do it. - for { - // [Go] The comment parsing logic requires a lookahead of two tokens - // so that foot comments may be parsed in time of associating them - // with the tokens that are parsed before them, and also for line - // comments to be transformed into head comments in some edge cases. - if parser.tokens_head < len(parser.tokens)-2 { - // If a potential simple key is at the head position, we need to fetch - // the next token to disambiguate it. - head_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed] - if !ok { - break - } else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok { - return false - } else if !valid { - break - } - } - // Fetch the next token. - if !yaml_parser_fetch_next_token(parser) { - return false - } - } - - parser.token_available = true - return true -} - -// The dispatcher for token fetchers. -func yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) { - // Ensure that the buffer is initialized. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we just started scanning. Fetch STREAM-START then. - if !parser.stream_start_produced { - return yaml_parser_fetch_stream_start(parser) - } - - scan_mark := parser.mark - - // Eat whitespaces and comments until we reach the next token. - if !yaml_parser_scan_to_next_token(parser) { - return false - } - - // [Go] While unrolling indents, transform the head comments of prior - // indentation levels observed after scan_start into foot comments at - // the respective indexes. - - // Check the indentation level against the current column. - if !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) { - return false - } - - // Ensure that the buffer contains at least 4 characters. 4 is the length - // of the longest indicators ('--- ' and '... '). - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - // Is it the end of the stream? - if is_z(parser.buffer, parser.buffer_pos) { - return yaml_parser_fetch_stream_end(parser) - } - - // Is it a directive? - if parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' { - return yaml_parser_fetch_directive(parser) - } - - buf := parser.buffer - pos := parser.buffer_pos - - // Is it the document start indicator? - if parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN) - } - - // Is it the document end indicator? - if parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) - } - - comment_mark := parser.mark - if len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') { - // Associate any following comments with the prior token. - comment_mark = parser.tokens[len(parser.tokens)-1].start_mark - } - defer func() { - if !ok { - return - } - if len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN { - // Sequence indicators alone have no line comments. It becomes - // a head comment for whatever follows. - return - } - if !yaml_parser_scan_line_comment(parser, comment_mark) { - ok = false - return - } - }() - - // Is it the flow sequence start indicator? - if buf[pos] == '[' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) - } - - // Is it the flow mapping start indicator? - if parser.buffer[parser.buffer_pos] == '{' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN) - } - - // Is it the flow sequence end indicator? - if parser.buffer[parser.buffer_pos] == ']' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_SEQUENCE_END_TOKEN) - } - - // Is it the flow mapping end indicator? - if parser.buffer[parser.buffer_pos] == '}' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_MAPPING_END_TOKEN) - } - - // Is it the flow entry indicator? - if parser.buffer[parser.buffer_pos] == ',' { - return yaml_parser_fetch_flow_entry(parser) - } - - // Is it the block entry indicator? - if parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) { - return yaml_parser_fetch_block_entry(parser) - } - - // Is it the key indicator? - if parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_key(parser) - } - - // Is it the value indicator? - if parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_value(parser) - } - - // Is it an alias? - if parser.buffer[parser.buffer_pos] == '*' { - return yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN) - } - - // Is it an anchor? - if parser.buffer[parser.buffer_pos] == '&' { - return yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN) - } - - // Is it a tag? - if parser.buffer[parser.buffer_pos] == '!' { - return yaml_parser_fetch_tag(parser) - } - - // Is it a literal scalar? - if parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, true) - } - - // Is it a folded scalar? - if parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, false) - } - - // Is it a single-quoted scalar? - if parser.buffer[parser.buffer_pos] == '\'' { - return yaml_parser_fetch_flow_scalar(parser, true) - } - - // Is it a double-quoted scalar? - if parser.buffer[parser.buffer_pos] == '"' { - return yaml_parser_fetch_flow_scalar(parser, false) - } - - // Is it a plain scalar? - // - // A plain scalar may start with any non-blank characters except - // - // '-', '?', ':', ',', '[', ']', '{', '}', - // '#', '&', '*', '!', '|', '>', '\'', '\"', - // '%', '@', '`'. - // - // In the block context (and, for the '-' indicator, in the flow context - // too), it may also start with the characters - // - // '-', '?', ':' - // - // if it is followed by a non-space character. - // - // The last rule is more restrictive than the specification requires. - // [Go] TODO Make this logic more reasonable. - //switch parser.buffer[parser.buffer_pos] { - //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': - //} - if !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' || - parser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '"' || parser.buffer[parser.buffer_pos] == '%' || - parser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') || - (parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level == 0 && - (parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') && - !is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_plain_scalar(parser) - } - - // If we don't determine the token type so far, it is an error. - return yaml_parser_set_scanner_error(parser, - "while scanning for the next token", parser.mark, - "found character that cannot start any token") -} - -func yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) { - if !simple_key.possible { - return false, true - } - - // The 1.2 specification says: - // - // "If the ? indicator is omitted, parsing needs to see past the - // implicit key to recognize it as such. To limit the amount of - // lookahead required, the “:” indicator must appear at most 1024 - // Unicode characters beyond the start of the key. In addition, the key - // is restricted to a single line." - // - if simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index { - // Check if the potential simple key to be removed is required. - if simple_key.required { - return false, yaml_parser_set_scanner_error(parser, - "while scanning a simple key", simple_key.mark, - "could not find expected ':'") - } - simple_key.possible = false - return false, true - } - return true, true -} - -// Check if a simple key may start at the current position and add it if -// needed. -func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { - // A simple key is required at the current position if the scanner is in - // the block context and the current column coincides with the indentation - // level. - - required := parser.flow_level == 0 && parser.indent == parser.mark.column - - // - // If the current position may start a simple key, save it. - // - if parser.simple_key_allowed { - simple_key := yaml_simple_key_t{ - possible: true, - required: required, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - mark: parser.mark, - } - - if !yaml_parser_remove_simple_key(parser) { - return false - } - parser.simple_keys[len(parser.simple_keys)-1] = simple_key - parser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1 - } - return true -} - -// Remove a potential simple key at the current flow level. -func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { - i := len(parser.simple_keys) - 1 - if parser.simple_keys[i].possible { - // If the key is required, it is an error. - if parser.simple_keys[i].required { - return yaml_parser_set_scanner_error(parser, - "while scanning a simple key", parser.simple_keys[i].mark, - "could not find expected ':'") - } - // Remove the key from the stack. - parser.simple_keys[i].possible = false - delete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number) - } - return true -} - -// max_flow_level limits the flow_level -const max_flow_level = 10000 - -// Increase the flow level and resize the simple key list if needed. -func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { - // Reset the simple key on the next level. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{ - possible: false, - required: false, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - mark: parser.mark, - }) - - // Increase the flow level. - parser.flow_level++ - if parser.flow_level > max_flow_level { - return yaml_parser_set_scanner_error(parser, - "while increasing flow level", parser.simple_keys[len(parser.simple_keys)-1].mark, - fmt.Sprintf("exceeded max depth of %d", max_flow_level)) - } - return true -} - -// Decrease the flow level. -func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { - if parser.flow_level > 0 { - parser.flow_level-- - last := len(parser.simple_keys) - 1 - delete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number) - parser.simple_keys = parser.simple_keys[:last] - } - return true -} - -// max_indents limits the indents stack size -const max_indents = 10000 - -// Push the current indentation level to the stack and set the new level -// the current column is greater than the indentation level. In this case, -// append or insert the specified token into the token queue. -func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - if parser.indent < column { - // Push the current indentation level to the stack and set the new - // indentation level. - parser.indents = append(parser.indents, parser.indent) - parser.indent = column - if len(parser.indents) > max_indents { - return yaml_parser_set_scanner_error(parser, - "while increasing indent level", parser.simple_keys[len(parser.simple_keys)-1].mark, - fmt.Sprintf("exceeded max depth of %d", max_indents)) - } - - // Create a token and insert it into the queue. - token := yaml_token_t{ - typ: typ, - start_mark: mark, - end_mark: mark, - } - if number > -1 { - number -= parser.tokens_parsed - } - yaml_insert_token(parser, number, &token) - } - return true -} - -// Pop indentation levels from the indents stack until the current level -// becomes less or equal to the column. For each indentation level, append -// the BLOCK-END token. -func yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - block_mark := scan_mark - block_mark.index-- - - // Loop through the indentation levels in the stack. - for parser.indent > column { - - // [Go] Reposition the end token before potential following - // foot comments of parent blocks. For that, search - // backwards for recent comments that were at the same - // indent as the block that is ending now. - stop_index := block_mark.index - for i := len(parser.comments) - 1; i >= 0; i-- { - comment := &parser.comments[i] - - if comment.end_mark.index < stop_index { - // Don't go back beyond the start of the comment/whitespace scan, unless column < 0. - // If requested indent column is < 0, then the document is over and everything else - // is a foot anyway. - break - } - if comment.start_mark.column == parser.indent+1 { - // This is a good match. But maybe there's a former comment - // at that same indent level, so keep searching. - block_mark = comment.start_mark - } - - // While the end of the former comment matches with - // the start of the following one, we know there's - // nothing in between and scanning is still safe. - stop_index = comment.scan_mark.index - } - - // Create a token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_END_TOKEN, - start_mark: block_mark, - end_mark: block_mark, - } - yaml_insert_token(parser, -1, &token) - - // Pop the indentation level. - parser.indent = parser.indents[len(parser.indents)-1] - parser.indents = parser.indents[:len(parser.indents)-1] - } - return true -} - -// Initialize the scanner and produce the STREAM-START token. -func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { - - // Set the initial indentation. - parser.indent = -1 - - // Initialize the simple key stack. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) - - parser.simple_keys_by_tok = make(map[int]int) - - // A simple key is allowed at the beginning of the stream. - parser.simple_key_allowed = true - - // We have started. - parser.stream_start_produced = true - - // Create the STREAM-START token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_START_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - encoding: parser.encoding, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the STREAM-END token and shut down the scanner. -func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { - - // Force new line. - if parser.mark.column != 0 { - parser.mark.column = 0 - parser.mark.line++ - } - - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the STREAM-END token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_END_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. -func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. - token := yaml_token_t{} - if !yaml_parser_scan_directive(parser, &token) { - return false - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the DOCUMENT-START or DOCUMENT-END token. -func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1, parser.mark) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Consume the token. - start_mark := parser.mark - - skip(parser) - skip(parser) - skip(parser) - - end_mark := parser.mark - - // Create the DOCUMENT-START or DOCUMENT-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. -func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { - - // The indicators '[' and '{' may start a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // Increase the flow level. - if !yaml_parser_increase_flow_level(parser) { - return false - } - - // A simple key may follow the indicators '[' and '{'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. -func yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset any potential simple key on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Decrease the flow level. - if !yaml_parser_decrease_flow_level(parser) { - return false - } - - // No simple keys after the indicators ']' and '}'. - parser.simple_key_allowed = false - - // Consume the token. - - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-ENTRY token. -func yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool { - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after ','. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_FLOW_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the BLOCK-ENTRY token. -func yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool { - // Check if the scanner is in the block context. - if parser.flow_level == 0 { - // Check if we are allowed to start a new entry. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "block sequence entries are not allowed in this context") - } - // Add the BLOCK-SEQUENCE-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) { - return false - } - } else { - // It is an error for the '-' indicator to occur in the flow context, - // but we let the Parser detect and report about it because the Parser - // is able to point to the context. - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '-'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the BLOCK-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the KEY token. -func yaml_parser_fetch_key(parser *yaml_parser_t) bool { - - // In the block context, additional checks are required. - if parser.flow_level == 0 { - // Check if we are allowed to start a new key (not nessesary simple). - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping keys are not allowed in this context") - } - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '?' in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the KEY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the VALUE token. -func yaml_parser_fetch_value(parser *yaml_parser_t) bool { - - simple_key := &parser.simple_keys[len(parser.simple_keys)-1] - - // Have we found a simple key? - if valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok { - return false - - } else if valid { - - // Create the KEY token and insert it into the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: simple_key.mark, - end_mark: simple_key.mark, - } - yaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token) - - // In the block context, we may need to add the BLOCK-MAPPING-START token. - if !yaml_parser_roll_indent(parser, simple_key.mark.column, - simple_key.token_number, - yaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) { - return false - } - - // Remove the simple key. - simple_key.possible = false - delete(parser.simple_keys_by_tok, simple_key.token_number) - - // A simple key cannot follow another simple key. - parser.simple_key_allowed = false - - } else { - // The ':' indicator follows a complex key. - - // In the block context, extra checks are required. - if parser.flow_level == 0 { - - // Check if we are allowed to start a complex value. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping values are not allowed in this context") - } - - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Simple keys after ':' are allowed in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - } - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the VALUE token and append it to the queue. - token := yaml_token_t{ - typ: yaml_VALUE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the ALIAS or ANCHOR token. -func yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // An anchor or an alias could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow an anchor or an alias. - parser.simple_key_allowed = false - - // Create the ALIAS or ANCHOR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_anchor(parser, &token, typ) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the TAG token. -func yaml_parser_fetch_tag(parser *yaml_parser_t) bool { - // A tag could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a tag. - parser.simple_key_allowed = false - - // Create the TAG token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_tag(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. -func yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool { - // Remove any potential simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // A simple key may follow a block scalar. - parser.simple_key_allowed = true - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_block_scalar(parser, &token, literal) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. -func yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_flow_scalar(parser, &token, single) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,plain) token. -func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_plain_scalar(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Eat whitespaces and comments until the next token is found. -func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { - - scan_mark := parser.mark - - // Until the next token is not found. - for { - // Allow the BOM mark to start a line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) { - skip(parser) - } - - // Eat whitespaces. - // Tabs are allowed: - // - in the flow context - // - in the block context, but not at the beginning of the line or - // after '-', '?', or ':' (complex value). - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\t') { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if we just had a line comment under a sequence entry that - // looks more like a header to the following content. Similar to this: - // - // - # The comment - // - Some data - // - // If so, transform the line comment to a head comment and reposition. - if len(parser.comments) > 0 && len(parser.tokens) > 1 { - tokenA := parser.tokens[len(parser.tokens)-2] - tokenB := parser.tokens[len(parser.tokens)-1] - comment := &parser.comments[len(parser.comments)-1] - if tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) { - // If it was in the prior line, reposition so it becomes a - // header of the follow up token. Otherwise, keep it in place - // so it becomes a header of the former. - comment.head = comment.line - comment.line = nil - if comment.start_mark.line == parser.mark.line-1 { - comment.token_mark = parser.mark - } - } - } - - // Eat a comment until a line break. - if parser.buffer[parser.buffer_pos] == '#' { - if !yaml_parser_scan_comments(parser, scan_mark) { - return false - } - } - - // If it is a line break, eat it. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - - // In the block context, a new line may start a simple key. - if parser.flow_level == 0 { - parser.simple_key_allowed = true - } - } else { - break // We have found a token. - } - } - - return true -} - -// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// -func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool { - // Eat '%'. - start_mark := parser.mark - skip(parser) - - // Scan the directive name. - var name []byte - if !yaml_parser_scan_directive_name(parser, start_mark, &name) { - return false - } - - // Is it a YAML directive? - if bytes.Equal(name, []byte("YAML")) { - // Scan the VERSION directive value. - var major, minor int8 - if !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) { - return false - } - end_mark := parser.mark - - // Create a VERSION-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_VERSION_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - major: major, - minor: minor, - } - - // Is it a TAG directive? - } else if bytes.Equal(name, []byte("TAG")) { - // Scan the TAG directive value. - var handle, prefix []byte - if !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) { - return false - } - end_mark := parser.mark - - // Create a TAG-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_TAG_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - prefix: prefix, - } - - // Unknown directive. - } else { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unknown directive name") - return false - } - - // Eat the rest of the line including any comments. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - if parser.buffer[parser.buffer_pos] == '#' { - // [Go] Discard this inline comment for the time being. - //if !yaml_parser_scan_line_comment(parser, start_mark) { - // return false - //} - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - return true -} - -// Scan the directive name. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^ -// -func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool { - // Consume the directive name. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - var s []byte - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the name is empty. - if len(s) == 0 { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "could not find expected directive name") - return false - } - - // Check for an blank character after the name. - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unexpected non-alphabetical character") - return false - } - *name = s - return true -} - -// Scan the value of VERSION-DIRECTIVE. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^^^ -func yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool { - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the major version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, major) { - return false - } - - // Eat '.'. - if parser.buffer[parser.buffer_pos] != '.' { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected digit or '.' character") - } - - skip(parser) - - // Consume the minor version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, minor) { - return false - } - return true -} - -const max_number_length = 2 - -// Scan the version number of VERSION-DIRECTIVE. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^ -// %YAML 1.1 # a comment \n -// ^ -func yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool { - - // Repeat while the next character is digit. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var value, length int8 - for is_digit(parser.buffer, parser.buffer_pos) { - // Check if the number is too long. - length++ - if length > max_number_length { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "found extremely long version number") - } - value = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos)) - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the number was present. - if length == 0 { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected version number") - } - *number = value - return true -} - -// Scan the value of a TAG-DIRECTIVE token. -// -// Scope: -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// -func yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool { - var handle_value, prefix_value []byte - - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a handle. - if !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) { - return false - } - - // Expect a whitespace. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blank(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace") - return false - } - - // Eat whitespaces. - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a prefix. - if !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) { - return false - } - - // Expect a whitespace or line break. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace or line break") - return false - } - - *handle = handle_value - *prefix = prefix_value - return true -} - -func yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool { - var s []byte - - // Eat the indicator character. - start_mark := parser.mark - skip(parser) - - // Consume the value. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - end_mark := parser.mark - - /* - * Check if length of the anchor is greater than 0 and it is followed by - * a whitespace character or one of the indicators: - * - * '?', ':', ',', ']', '}', '%', '@', '`'. - */ - - if len(s) == 0 || - !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' || - parser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '`') { - context := "while scanning an alias" - if typ == yaml_ANCHOR_TOKEN { - context = "while scanning an anchor" - } - yaml_parser_set_scanner_error(parser, context, start_mark, - "did not find expected alphabetic or numeric character") - return false - } - - // Create a token. - *token = yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - value: s, - } - - return true -} - -/* - * Scan a TAG token. - */ - -func yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool { - var handle, suffix []byte - - start_mark := parser.mark - - // Check if the tag is in the canonical form. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - if parser.buffer[parser.buffer_pos+1] == '<' { - // Keep the handle as '' - - // Eat '!<' - skip(parser) - skip(parser) - - // Consume the tag value. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - - // Check for '>' and eat it. - if parser.buffer[parser.buffer_pos] != '>' { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find the expected '>'") - return false - } - - skip(parser) - } else { - // The tag has either the '!suffix' or the '!handle!suffix' form. - - // First, try to scan a handle. - if !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) { - return false - } - - // Check if it is, indeed, handle. - if handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' { - // Scan the suffix now. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - } else { - // It wasn't a handle after all. Scan the rest of the tag. - if !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) { - return false - } - - // Set the handle to '!'. - handle = []byte{'!'} - - // A special case: the '!' tag. Set the handle to '' and the - // suffix to '!'. - if len(suffix) == 0 { - handle, suffix = suffix, handle - } - } - } - - // Check the character which ends the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find expected whitespace or line break") - return false - } - - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_TAG_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - suffix: suffix, - } - return true -} - -// Scan a tag handle. -func yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool { - // Check the initial '!' character. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] != '!' { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - - var s []byte - - // Copy the '!' character. - s = read(parser, s) - - // Copy all subsequent alphabetical and numerical characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the trailing character is '!' and copy it. - if parser.buffer[parser.buffer_pos] == '!' { - s = read(parser, s) - } else { - // It's either the '!' tag or not really a tag handle. If it's a %TAG - // directive, it's an error. If it's a tag token, it must be a part of URI. - if directive && string(s) != "!" { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - } - - *handle = s - return true -} - -// Scan a tag. -func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool { - //size_t length = head ? strlen((char *)head) : 0 - var s []byte - hasTag := len(head) > 0 - - // Copy the head if needed. - // - // Note that we don't copy the leading '!' character. - if len(head) > 1 { - s = append(s, head[1:]...) - } - - // Scan the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // The set of characters that may appear in URI is as follows: - // - // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', - // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', - // '%'. - // [Go] TODO Convert this into more reasonable logic. - for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || - parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' || - parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' || - parser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' || - parser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' || - parser.buffer[parser.buffer_pos] == '%' { - // Check if it is a URI-escape sequence. - if parser.buffer[parser.buffer_pos] == '%' { - if !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) { - return false - } - } else { - s = read(parser, s) - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - hasTag = true - } - - if !hasTag { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected tag URI") - return false - } - *uri = s - return true -} - -// Decode an URI-escape sequence corresponding to a single UTF-8 character. -func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool { - - // Decode the required number of characters. - w := 1024 - for w > 0 { - // Check for a URI-escaped octet. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - - if !(parser.buffer[parser.buffer_pos] == '%' && - is_hex(parser.buffer, parser.buffer_pos+1) && - is_hex(parser.buffer, parser.buffer_pos+2)) { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find URI escaped octet") - } - - // Get the octet. - octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2)) - - // If it is the leading octet, determine the length of the UTF-8 sequence. - if w == 1024 { - w = width(octet) - if w == 0 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect leading UTF-8 octet") - } - } else { - // Check if the trailing octet is correct. - if octet&0xC0 != 0x80 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect trailing UTF-8 octet") - } - } - - // Copy the octet and move the pointers. - *s = append(*s, octet) - skip(parser) - skip(parser) - skip(parser) - w-- - } - return true -} - -// Scan a block scalar. -func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool { - // Eat the indicator '|' or '>'. - start_mark := parser.mark - skip(parser) - - // Scan the additional block scalar indicators. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check for a chomping indicator. - var chomping, increment int - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - // Set the chomping method and eat the indicator. - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - - // Check for an indentation indicator. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_digit(parser.buffer, parser.buffer_pos) { - // Check that the indentation is greater than 0. - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - - // Get the indentation level and eat the indicator. - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - } - - } else if is_digit(parser.buffer, parser.buffer_pos) { - // Do the same as above, but in the opposite order. - - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - } - } - - // Eat whitespaces and comments to the end of the line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.buffer[parser.buffer_pos] == '#' { - if !yaml_parser_scan_line_comment(parser, start_mark) { - return false - } - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - end_mark := parser.mark - - // Set the indentation level if it was specified. - var indent int - if increment > 0 { - if parser.indent >= 0 { - indent = parser.indent + increment - } else { - indent = increment - } - } - - // Scan the leading line breaks and determine the indentation level if needed. - var s, leading_break, trailing_breaks []byte - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - - // Scan the block scalar content. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var leading_blank, trailing_blank bool - for parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) { - // We are at the beginning of a non-empty line. - - // Is it a trailing whitespace? - trailing_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Check if we need to fold the leading line break. - if !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\n' { - // Do we need to join the lines by space? - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } - } else { - s = append(s, leading_break...) - } - leading_break = leading_break[:0] - - // Append the remaining line breaks. - s = append(s, trailing_breaks...) - trailing_breaks = trailing_breaks[:0] - - // Is it a leading whitespace? - leading_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Consume the current line. - for !is_breakz(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - leading_break = read_line(parser, leading_break) - - // Eat the following indentation spaces and line breaks. - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - } - - // Chomp the tail. - if chomping != -1 { - s = append(s, leading_break...) - } - if chomping == 1 { - s = append(s, trailing_breaks...) - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_LITERAL_SCALAR_STYLE, - } - if !literal { - token.style = yaml_FOLDED_SCALAR_STYLE - } - return true -} - -// Scan indentation spaces and line breaks for a block scalar. Determine the -// indentation level if needed. -func yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool { - *end_mark = parser.mark - - // Eat the indentation spaces and line breaks. - max_indent := 0 - for { - // Eat the indentation spaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.mark.column > max_indent { - max_indent = parser.mark.column - } - - // Check for a tab character messing the indentation. - if (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) { - return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found a tab character where an indentation space is expected") - } - - // Have we found a non-empty line? - if !is_break(parser.buffer, parser.buffer_pos) { - break - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - // [Go] Should really be returning breaks instead. - *breaks = read_line(parser, *breaks) - *end_mark = parser.mark - } - - // Determine the indentation level if needed. - if *indent == 0 { - *indent = max_indent - if *indent < parser.indent+1 { - *indent = parser.indent + 1 - } - if *indent < 1 { - *indent = 1 - } - } - return true -} - -// Scan a quoted scalar. -func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool { - // Eat the left quote. - start_mark := parser.mark - skip(parser) - - // Consume the content of the quoted scalar. - var s, leading_break, trailing_breaks, whitespaces []byte - for { - // Check that there are no document indicators at the beginning of the line. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected document indicator") - return false - } - - // Check for EOF. - if is_z(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected end of stream") - return false - } - - // Consume non-blank characters. - leading_blanks := false - for !is_blankz(parser.buffer, parser.buffer_pos) { - if single && parser.buffer[parser.buffer_pos] == '\'' && parser.buffer[parser.buffer_pos+1] == '\'' { - // Is is an escaped single quote. - s = append(s, '\'') - skip(parser) - skip(parser) - - } else if single && parser.buffer[parser.buffer_pos] == '\'' { - // It is a right single quote. - break - } else if !single && parser.buffer[parser.buffer_pos] == '"' { - // It is a right double quote. - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' && is_break(parser.buffer, parser.buffer_pos+1) { - // It is an escaped line break. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - skip(parser) - skip_line(parser) - leading_blanks = true - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' { - // It is an escape sequence. - code_length := 0 - - // Check the escape character. - switch parser.buffer[parser.buffer_pos+1] { - case '0': - s = append(s, 0) - case 'a': - s = append(s, '\x07') - case 'b': - s = append(s, '\x08') - case 't', '\t': - s = append(s, '\x09') - case 'n': - s = append(s, '\x0A') - case 'v': - s = append(s, '\x0B') - case 'f': - s = append(s, '\x0C') - case 'r': - s = append(s, '\x0D') - case 'e': - s = append(s, '\x1B') - case ' ': - s = append(s, '\x20') - case '"': - s = append(s, '"') - case '\'': - s = append(s, '\'') - case '\\': - s = append(s, '\\') - case 'N': // NEL (#x85) - s = append(s, '\xC2') - s = append(s, '\x85') - case '_': // #xA0 - s = append(s, '\xC2') - s = append(s, '\xA0') - case 'L': // LS (#x2028) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA8') - case 'P': // PS (#x2029) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA9') - case 'x': - code_length = 2 - case 'u': - code_length = 4 - case 'U': - code_length = 8 - default: - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found unknown escape character") - return false - } - - skip(parser) - skip(parser) - - // Consume an arbitrary escape code. - if code_length > 0 { - var value int - - // Scan the character value. - if parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) { - return false - } - for k := 0; k < code_length; k++ { - if !is_hex(parser.buffer, parser.buffer_pos+k) { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "did not find expected hexdecimal number") - return false - } - value = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k) - } - - // Check the value and write the character. - if (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found invalid Unicode character escape code") - return false - } - if value <= 0x7F { - s = append(s, byte(value)) - } else if value <= 0x7FF { - s = append(s, byte(0xC0+(value>>6))) - s = append(s, byte(0x80+(value&0x3F))) - } else if value <= 0xFFFF { - s = append(s, byte(0xE0+(value>>12))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } else { - s = append(s, byte(0xF0+(value>>18))) - s = append(s, byte(0x80+((value>>12)&0x3F))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } - - // Advance the pointer. - for k := 0; k < code_length; k++ { - skip(parser) - } - } - } else { - // It is a non-escaped non-blank character. - s = read(parser, s) - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we are at the end of the scalar. - if single { - if parser.buffer[parser.buffer_pos] == '\'' { - break - } - } else { - if parser.buffer[parser.buffer_pos] == '"' { - break - } - } - - // Consume blank characters. - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Join the whitespaces or fold line breaks. - if leading_blanks { - // Do we need to fold line breaks? - if len(leading_break) > 0 && leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Eat the right quote. - skip(parser) - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_SINGLE_QUOTED_SCALAR_STYLE, - } - if !single { - token.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - return true -} - -// Scan a plain scalar. -func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool { - - var s, leading_break, trailing_breaks, whitespaces []byte - var leading_blanks bool - var indent = parser.indent + 1 - - start_mark := parser.mark - end_mark := parser.mark - - // Consume the content of the plain scalar. - for { - // Check for a document indicator. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - break - } - - // Check for a comment. - if parser.buffer[parser.buffer_pos] == '#' { - break - } - - // Consume non-blank characters. - for !is_blankz(parser.buffer, parser.buffer_pos) { - - // Check for indicators that may end a plain scalar. - if (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level > 0 && - (parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}')) { - break - } - - // Check if we need to join whitespaces and breaks. - if leading_blanks || len(whitespaces) > 0 { - if leading_blanks { - // Do we need to fold line breaks? - if leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - leading_blanks = false - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Copy the character. - s = read(parser, s) - - end_mark = parser.mark - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - // Is it the end? - if !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) { - break - } - - // Consume blank characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - - // Check for tab characters that abuse indentation. - if leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", - start_mark, "found a tab character that violates indentation") - return false - } - - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check indentation level. - if parser.flow_level == 0 && parser.mark.column < indent { - break - } - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_PLAIN_SCALAR_STYLE, - } - - // Note that we change the 'simple_key_allowed' flag. - if leading_blanks { - parser.simple_key_allowed = true - } - return true -} - -func yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool { - if parser.newlines > 0 { - return true - } - - var start_mark yaml_mark_t - var text []byte - - for peek := 0; peek < 512; peek++ { - if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) { - break - } - if is_blank(parser.buffer, parser.buffer_pos+peek) { - continue - } - if parser.buffer[parser.buffer_pos+peek] == '#' { - seen := parser.mark.index+peek - for { - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_breakz(parser.buffer, parser.buffer_pos) { - if parser.mark.index >= seen { - break - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } else if parser.mark.index >= seen { - if len(text) == 0 { - start_mark = parser.mark - } - text = read(parser, text) - } else { - skip(parser) - } - } - } - break - } - if len(text) > 0 { - parser.comments = append(parser.comments, yaml_comment_t{ - token_mark: token_mark, - start_mark: start_mark, - line: text, - }) - } - return true -} - -func yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool { - token := parser.tokens[len(parser.tokens)-1] - - if token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 { - token = parser.tokens[len(parser.tokens)-2] - } - - var token_mark = token.start_mark - var start_mark yaml_mark_t - var next_indent = parser.indent - if next_indent < 0 { - next_indent = 0 - } - - var recent_empty = false - var first_empty = parser.newlines <= 1 - - var line = parser.mark.line - var column = parser.mark.column - - var text []byte - - // The foot line is the place where a comment must start to - // still be considered as a foot of the prior content. - // If there's some content in the currently parsed line, then - // the foot is the line below it. - var foot_line = -1 - if scan_mark.line > 0 { - foot_line = parser.mark.line-parser.newlines+1 - if parser.newlines == 0 && parser.mark.column > 1 { - foot_line++ - } - } - - var peek = 0 - for ; peek < 512; peek++ { - if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) { - break - } - column++ - if is_blank(parser.buffer, parser.buffer_pos+peek) { - continue - } - c := parser.buffer[parser.buffer_pos+peek] - var close_flow = parser.flow_level > 0 && (c == ']' || c == '}') - if close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) { - // Got line break or terminator. - if close_flow || !recent_empty { - if close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) { - // This is the first empty line and there were no empty lines before, - // so this initial part of the comment is a foot of the prior token - // instead of being a head for the following one. Split it up. - // Alternatively, this might also be the last comment inside a flow - // scope, so it must be a footer. - if len(text) > 0 { - if start_mark.column-1 < next_indent { - // If dedented it's unrelated to the prior token. - token_mark = start_mark - } - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: token_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek, line, column}, - foot: text, - }) - scan_mark = yaml_mark_t{parser.mark.index + peek, line, column} - token_mark = scan_mark - text = nil - } - } else { - if len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 { - text = append(text, '\n') - } - } - } - if !is_break(parser.buffer, parser.buffer_pos+peek) { - break - } - first_empty = false - recent_empty = true - column = 0 - line++ - continue - } - - if len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) { - // The comment at the different indentation is a foot of the - // preceding data rather than a head of the upcoming one. - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: token_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek, line, column}, - foot: text, - }) - scan_mark = yaml_mark_t{parser.mark.index + peek, line, column} - token_mark = scan_mark - text = nil - } - - if parser.buffer[parser.buffer_pos+peek] != '#' { - break - } - - if len(text) == 0 { - start_mark = yaml_mark_t{parser.mark.index + peek, line, column} - } else { - text = append(text, '\n') - } - - recent_empty = false - - // Consume until after the consumed comment line. - seen := parser.mark.index+peek - for { - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_breakz(parser.buffer, parser.buffer_pos) { - if parser.mark.index >= seen { - break - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } else if parser.mark.index >= seen { - text = read(parser, text) - } else { - skip(parser) - } - } - - peek = 0 - column = 0 - line = parser.mark.line - next_indent = parser.indent - if next_indent < 0 { - next_indent = 0 - } - } - - if len(text) > 0 { - parser.comments = append(parser.comments, yaml_comment_t{ - scan_mark: scan_mark, - token_mark: start_mark, - start_mark: start_mark, - end_mark: yaml_mark_t{parser.mark.index + peek - 1, line, column}, - head: text, - }) - } - return true -} diff --git a/vendor/gopkg.in/yaml.v3/sorter.go b/vendor/gopkg.in/yaml.v3/sorter.go deleted file mode 100644 index 9210ece..0000000 --- a/vendor/gopkg.in/yaml.v3/sorter.go +++ /dev/null @@ -1,134 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml - -import ( - "reflect" - "unicode" -) - -type keyList []reflect.Value - -func (l keyList) Len() int { return len(l) } -func (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } -func (l keyList) Less(i, j int) bool { - a := l[i] - b := l[j] - ak := a.Kind() - bk := b.Kind() - for (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() { - a = a.Elem() - ak = a.Kind() - } - for (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() { - b = b.Elem() - bk = b.Kind() - } - af, aok := keyFloat(a) - bf, bok := keyFloat(b) - if aok && bok { - if af != bf { - return af < bf - } - if ak != bk { - return ak < bk - } - return numLess(a, b) - } - if ak != reflect.String || bk != reflect.String { - return ak < bk - } - ar, br := []rune(a.String()), []rune(b.String()) - digits := false - for i := 0; i < len(ar) && i < len(br); i++ { - if ar[i] == br[i] { - digits = unicode.IsDigit(ar[i]) - continue - } - al := unicode.IsLetter(ar[i]) - bl := unicode.IsLetter(br[i]) - if al && bl { - return ar[i] < br[i] - } - if al || bl { - if digits { - return al - } else { - return bl - } - } - var ai, bi int - var an, bn int64 - if ar[i] == '0' || br[i] == '0' { - for j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- { - if ar[j] != '0' { - an = 1 - bn = 1 - break - } - } - } - for ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ { - an = an*10 + int64(ar[ai]-'0') - } - for bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ { - bn = bn*10 + int64(br[bi]-'0') - } - if an != bn { - return an < bn - } - if ai != bi { - return ai < bi - } - return ar[i] < br[i] - } - return len(ar) < len(br) -} - -// keyFloat returns a float value for v if it is a number/bool -// and whether it is a number/bool or not. -func keyFloat(v reflect.Value) (f float64, ok bool) { - switch v.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return float64(v.Int()), true - case reflect.Float32, reflect.Float64: - return v.Float(), true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return float64(v.Uint()), true - case reflect.Bool: - if v.Bool() { - return 1, true - } - return 0, true - } - return 0, false -} - -// numLess returns whether a < b. -// a and b must necessarily have the same kind. -func numLess(a, b reflect.Value) bool { - switch a.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return a.Int() < b.Int() - case reflect.Float32, reflect.Float64: - return a.Float() < b.Float() - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return a.Uint() < b.Uint() - case reflect.Bool: - return !a.Bool() && b.Bool() - } - panic("not a number") -} diff --git a/vendor/gopkg.in/yaml.v3/writerc.go b/vendor/gopkg.in/yaml.v3/writerc.go deleted file mode 100644 index b8a116b..0000000 --- a/vendor/gopkg.in/yaml.v3/writerc.go +++ /dev/null @@ -1,48 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -// Set the writer error and return false. -func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_WRITER_ERROR - emitter.problem = problem - return false -} - -// Flush the output buffer. -func yaml_emitter_flush(emitter *yaml_emitter_t) bool { - if emitter.write_handler == nil { - panic("write handler not set") - } - - // Check if the buffer is empty. - if emitter.buffer_pos == 0 { - return true - } - - if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { - return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) - } - emitter.buffer_pos = 0 - return true -} diff --git a/vendor/gopkg.in/yaml.v3/yaml.go b/vendor/gopkg.in/yaml.v3/yaml.go deleted file mode 100644 index 8cec6da..0000000 --- a/vendor/gopkg.in/yaml.v3/yaml.go +++ /dev/null @@ -1,698 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// -// 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 yaml implements YAML support for the Go language. -// -// Source code and other details for the project are available at GitHub: -// -// https://github.com/go-yaml/yaml -// -package yaml - -import ( - "errors" - "fmt" - "io" - "reflect" - "strings" - "sync" - "unicode/utf8" -) - -// The Unmarshaler interface may be implemented by types to customize their -// behavior when being unmarshaled from a YAML document. -type Unmarshaler interface { - UnmarshalYAML(value *Node) error -} - -type obsoleteUnmarshaler interface { - UnmarshalYAML(unmarshal func(interface{}) error) error -} - -// The Marshaler interface may be implemented by types to customize their -// behavior when being marshaled into a YAML document. The returned value -// is marshaled in place of the original value implementing Marshaler. -// -// If an error is returned by MarshalYAML, the marshaling procedure stops -// and returns with the provided error. -type Marshaler interface { - MarshalYAML() (interface{}, error) -} - -// Unmarshal decodes the first document found within the in byte slice -// and assigns decoded values into the out value. -// -// Maps and pointers (to a struct, string, int, etc) are accepted as out -// values. If an internal pointer within a struct is not initialized, -// the yaml package will initialize it if necessary for unmarshalling -// the provided data. The out parameter must not be nil. -// -// The type of the decoded values should be compatible with the respective -// values in out. If one or more values cannot be decoded due to a type -// mismatches, decoding continues partially until the end of the YAML -// content, and a *yaml.TypeError is returned with details for all -// missed values. -// -// Struct fields are only unmarshalled if they are exported (have an -// upper case first letter), and are unmarshalled using the field name -// lowercased as the default key. Custom keys may be defined via the -// "yaml" name in the field tag: the content preceding the first comma -// is used as the key, and the following comma-separated options are -// used to tweak the marshalling process (see Marshal). -// Conflicting names result in a runtime error. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// var t T -// yaml.Unmarshal([]byte("a: 1\nb: 2"), &t) -// -// See the documentation of Marshal for the format of tags and a list of -// supported tag options. -// -func Unmarshal(in []byte, out interface{}) (err error) { - return unmarshal(in, out, false) -} - -// A Decoder reads and decodes YAML values from an input stream. -type Decoder struct { - parser *parser - knownFields bool -} - -// NewDecoder returns a new decoder that reads from r. -// -// The decoder introduces its own buffering and may read -// data from r beyond the YAML values requested. -func NewDecoder(r io.Reader) *Decoder { - return &Decoder{ - parser: newParserFromReader(r), - } -} - -// KnownFields ensures that the keys in decoded mappings to -// exist as fields in the struct being decoded into. -func (dec *Decoder) KnownFields(enable bool) { - dec.knownFields = enable -} - -// Decode reads the next YAML-encoded value from its input -// and stores it in the value pointed to by v. -// -// See the documentation for Unmarshal for details about the -// conversion of YAML into a Go value. -func (dec *Decoder) Decode(v interface{}) (err error) { - d := newDecoder() - d.knownFields = dec.knownFields - defer handleErr(&err) - node := dec.parser.parse() - if node == nil { - return io.EOF - } - out := reflect.ValueOf(v) - if out.Kind() == reflect.Ptr && !out.IsNil() { - out = out.Elem() - } - d.unmarshal(node, out) - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -// Decode decodes the node and stores its data into the value pointed to by v. -// -// See the documentation for Unmarshal for details about the -// conversion of YAML into a Go value. -func (n *Node) Decode(v interface{}) (err error) { - d := newDecoder() - defer handleErr(&err) - out := reflect.ValueOf(v) - if out.Kind() == reflect.Ptr && !out.IsNil() { - out = out.Elem() - } - d.unmarshal(n, out) - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -func unmarshal(in []byte, out interface{}, strict bool) (err error) { - defer handleErr(&err) - d := newDecoder() - p := newParser(in) - defer p.destroy() - node := p.parse() - if node != nil { - v := reflect.ValueOf(out) - if v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - d.unmarshal(node, v) - } - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -// Marshal serializes the value provided into a YAML document. The structure -// of the generated document will reflect the structure of the value itself. -// Maps and pointers (to struct, string, int, etc) are accepted as the in value. -// -// Struct fields are only marshalled if they are exported (have an upper case -// first letter), and are marshalled using the field name lowercased as the -// default key. Custom keys may be defined via the "yaml" name in the field -// tag: the content preceding the first comma is used as the key, and the -// following comma-separated options are used to tweak the marshalling process. -// Conflicting names result in a runtime error. -// -// The field tag format accepted is: -// -// `(...) yaml:"[][,[,]]" (...)` -// -// The following flags are currently supported: -// -// omitempty Only include the field if it's not set to the zero -// value for the type or to empty slices or maps. -// Zero valued structs will be omitted if all their public -// fields are zero, unless they implement an IsZero -// method (see the IsZeroer interface type), in which -// case the field will be excluded if IsZero returns true. -// -// flow Marshal using a flow style (useful for structs, -// sequences and maps). -// -// inline Inline the field, which must be a struct or a map, -// causing all of its fields or keys to be processed as if -// they were part of the outer struct. For maps, keys must -// not conflict with the yaml keys of other struct fields. -// -// In addition, if the key is "-", the field is ignored. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// yaml.Marshal(&T{B: 2}) // Returns "b: 2\n" -// yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n" -// -func Marshal(in interface{}) (out []byte, err error) { - defer handleErr(&err) - e := newEncoder() - defer e.destroy() - e.marshalDoc("", reflect.ValueOf(in)) - e.finish() - out = e.out - return -} - -// An Encoder writes YAML values to an output stream. -type Encoder struct { - encoder *encoder -} - -// NewEncoder returns a new encoder that writes to w. -// The Encoder should be closed after use to flush all data -// to w. -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{ - encoder: newEncoderWithWriter(w), - } -} - -// Encode writes the YAML encoding of v to the stream. -// If multiple items are encoded to the stream, the -// second and subsequent document will be preceded -// with a "---" document separator, but the first will not. -// -// See the documentation for Marshal for details about the conversion of Go -// values to YAML. -func (e *Encoder) Encode(v interface{}) (err error) { - defer handleErr(&err) - e.encoder.marshalDoc("", reflect.ValueOf(v)) - return nil -} - -// Encode encodes value v and stores its representation in n. -// -// See the documentation for Marshal for details about the -// conversion of Go values into YAML. -func (n *Node) Encode(v interface{}) (err error) { - defer handleErr(&err) - e := newEncoder() - defer e.destroy() - e.marshalDoc("", reflect.ValueOf(v)) - e.finish() - p := newParser(e.out) - p.textless = true - defer p.destroy() - doc := p.parse() - *n = *doc.Content[0] - return nil -} - -// SetIndent changes the used indentation used when encoding. -func (e *Encoder) SetIndent(spaces int) { - if spaces < 0 { - panic("yaml: cannot indent to a negative number of spaces") - } - e.encoder.indent = spaces -} - -// Close closes the encoder by writing any remaining data. -// It does not write a stream terminating string "...". -func (e *Encoder) Close() (err error) { - defer handleErr(&err) - e.encoder.finish() - return nil -} - -func handleErr(err *error) { - if v := recover(); v != nil { - if e, ok := v.(yamlError); ok { - *err = e.err - } else { - panic(v) - } - } -} - -type yamlError struct { - err error -} - -func fail(err error) { - panic(yamlError{err}) -} - -func failf(format string, args ...interface{}) { - panic(yamlError{fmt.Errorf("yaml: "+format, args...)}) -} - -// A TypeError is returned by Unmarshal when one or more fields in -// the YAML document cannot be properly decoded into the requested -// types. When this error is returned, the value is still -// unmarshaled partially. -type TypeError struct { - Errors []string -} - -func (e *TypeError) Error() string { - return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) -} - -type Kind uint32 - -const ( - DocumentNode Kind = 1 << iota - SequenceNode - MappingNode - ScalarNode - AliasNode -) - -type Style uint32 - -const ( - TaggedStyle Style = 1 << iota - DoubleQuotedStyle - SingleQuotedStyle - LiteralStyle - FoldedStyle - FlowStyle -) - -// Node represents an element in the YAML document hierarchy. While documents -// are typically encoded and decoded into higher level types, such as structs -// and maps, Node is an intermediate representation that allows detailed -// control over the content being decoded or encoded. -// -// It's worth noting that although Node offers access into details such as -// line numbers, colums, and comments, the content when re-encoded will not -// have its original textual representation preserved. An effort is made to -// render the data plesantly, and to preserve comments near the data they -// describe, though. -// -// Values that make use of the Node type interact with the yaml package in the -// same way any other type would do, by encoding and decoding yaml data -// directly or indirectly into them. -// -// For example: -// -// var person struct { -// Name string -// Address yaml.Node -// } -// err := yaml.Unmarshal(data, &person) -// -// Or by itself: -// -// var person Node -// err := yaml.Unmarshal(data, &person) -// -type Node struct { - // Kind defines whether the node is a document, a mapping, a sequence, - // a scalar value, or an alias to another node. The specific data type of - // scalar nodes may be obtained via the ShortTag and LongTag methods. - Kind Kind - - // Style allows customizing the apperance of the node in the tree. - Style Style - - // Tag holds the YAML tag defining the data type for the value. - // When decoding, this field will always be set to the resolved tag, - // even when it wasn't explicitly provided in the YAML content. - // When encoding, if this field is unset the value type will be - // implied from the node properties, and if it is set, it will only - // be serialized into the representation if TaggedStyle is used or - // the implicit tag diverges from the provided one. - Tag string - - // Value holds the unescaped and unquoted represenation of the value. - Value string - - // Anchor holds the anchor name for this node, which allows aliases to point to it. - Anchor string - - // Alias holds the node that this alias points to. Only valid when Kind is AliasNode. - Alias *Node - - // Content holds contained nodes for documents, mappings, and sequences. - Content []*Node - - // HeadComment holds any comments in the lines preceding the node and - // not separated by an empty line. - HeadComment string - - // LineComment holds any comments at the end of the line where the node is in. - LineComment string - - // FootComment holds any comments following the node and before empty lines. - FootComment string - - // Line and Column hold the node position in the decoded YAML text. - // These fields are not respected when encoding the node. - Line int - Column int -} - -// IsZero returns whether the node has all of its fields unset. -func (n *Node) IsZero() bool { - return n.Kind == 0 && n.Style == 0 && n.Tag == "" && n.Value == "" && n.Anchor == "" && n.Alias == nil && n.Content == nil && - n.HeadComment == "" && n.LineComment == "" && n.FootComment == "" && n.Line == 0 && n.Column == 0 -} - - -// LongTag returns the long form of the tag that indicates the data type for -// the node. If the Tag field isn't explicitly defined, one will be computed -// based on the node properties. -func (n *Node) LongTag() string { - return longTag(n.ShortTag()) -} - -// ShortTag returns the short form of the YAML tag that indicates data type for -// the node. If the Tag field isn't explicitly defined, one will be computed -// based on the node properties. -func (n *Node) ShortTag() string { - if n.indicatedString() { - return strTag - } - if n.Tag == "" || n.Tag == "!" { - switch n.Kind { - case MappingNode: - return mapTag - case SequenceNode: - return seqTag - case AliasNode: - if n.Alias != nil { - return n.Alias.ShortTag() - } - case ScalarNode: - tag, _ := resolve("", n.Value) - return tag - case 0: - // Special case to make the zero value convenient. - if n.IsZero() { - return nullTag - } - } - return "" - } - return shortTag(n.Tag) -} - -func (n *Node) indicatedString() bool { - return n.Kind == ScalarNode && - (shortTag(n.Tag) == strTag || - (n.Tag == "" || n.Tag == "!") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0) -} - -// SetString is a convenience function that sets the node to a string value -// and defines its style in a pleasant way depending on its content. -func (n *Node) SetString(s string) { - n.Kind = ScalarNode - if utf8.ValidString(s) { - n.Value = s - n.Tag = strTag - } else { - n.Value = encodeBase64(s) - n.Tag = binaryTag - } - if strings.Contains(n.Value, "\n") { - n.Style = LiteralStyle - } -} - -// -------------------------------------------------------------------------- -// Maintain a mapping of keys to structure field indexes - -// The code in this section was copied from mgo/bson. - -// structInfo holds details for the serialization of fields of -// a given struct. -type structInfo struct { - FieldsMap map[string]fieldInfo - FieldsList []fieldInfo - - // InlineMap is the number of the field in the struct that - // contains an ,inline map, or -1 if there's none. - InlineMap int - - // InlineUnmarshalers holds indexes to inlined fields that - // contain unmarshaler values. - InlineUnmarshalers [][]int -} - -type fieldInfo struct { - Key string - Num int - OmitEmpty bool - Flow bool - // Id holds the unique field identifier, so we can cheaply - // check for field duplicates without maintaining an extra map. - Id int - - // Inline holds the field index if the field is part of an inlined struct. - Inline []int -} - -var structMap = make(map[reflect.Type]*structInfo) -var fieldMapMutex sync.RWMutex -var unmarshalerType reflect.Type - -func init() { - var v Unmarshaler - unmarshalerType = reflect.ValueOf(&v).Elem().Type() -} - -func getStructInfo(st reflect.Type) (*structInfo, error) { - fieldMapMutex.RLock() - sinfo, found := structMap[st] - fieldMapMutex.RUnlock() - if found { - return sinfo, nil - } - - n := st.NumField() - fieldsMap := make(map[string]fieldInfo) - fieldsList := make([]fieldInfo, 0, n) - inlineMap := -1 - inlineUnmarshalers := [][]int(nil) - for i := 0; i != n; i++ { - field := st.Field(i) - if field.PkgPath != "" && !field.Anonymous { - continue // Private field - } - - info := fieldInfo{Num: i} - - tag := field.Tag.Get("yaml") - if tag == "" && strings.Index(string(field.Tag), ":") < 0 { - tag = string(field.Tag) - } - if tag == "-" { - continue - } - - inline := false - fields := strings.Split(tag, ",") - if len(fields) > 1 { - for _, flag := range fields[1:] { - switch flag { - case "omitempty": - info.OmitEmpty = true - case "flow": - info.Flow = true - case "inline": - inline = true - default: - return nil, errors.New(fmt.Sprintf("unsupported flag %q in tag %q of type %s", flag, tag, st)) - } - } - tag = fields[0] - } - - if inline { - switch field.Type.Kind() { - case reflect.Map: - if inlineMap >= 0 { - return nil, errors.New("multiple ,inline maps in struct " + st.String()) - } - if field.Type.Key() != reflect.TypeOf("") { - return nil, errors.New("option ,inline needs a map with string keys in struct " + st.String()) - } - inlineMap = info.Num - case reflect.Struct, reflect.Ptr: - ftype := field.Type - for ftype.Kind() == reflect.Ptr { - ftype = ftype.Elem() - } - if ftype.Kind() != reflect.Struct { - return nil, errors.New("option ,inline may only be used on a struct or map field") - } - if reflect.PtrTo(ftype).Implements(unmarshalerType) { - inlineUnmarshalers = append(inlineUnmarshalers, []int{i}) - } else { - sinfo, err := getStructInfo(ftype) - if err != nil { - return nil, err - } - for _, index := range sinfo.InlineUnmarshalers { - inlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...)) - } - for _, finfo := range sinfo.FieldsList { - if _, found := fieldsMap[finfo.Key]; found { - msg := "duplicated key '" + finfo.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - if finfo.Inline == nil { - finfo.Inline = []int{i, finfo.Num} - } else { - finfo.Inline = append([]int{i}, finfo.Inline...) - } - finfo.Id = len(fieldsList) - fieldsMap[finfo.Key] = finfo - fieldsList = append(fieldsList, finfo) - } - } - default: - return nil, errors.New("option ,inline may only be used on a struct or map field") - } - continue - } - - if tag != "" { - info.Key = tag - } else { - info.Key = strings.ToLower(field.Name) - } - - if _, found = fieldsMap[info.Key]; found { - msg := "duplicated key '" + info.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - - info.Id = len(fieldsList) - fieldsList = append(fieldsList, info) - fieldsMap[info.Key] = info - } - - sinfo = &structInfo{ - FieldsMap: fieldsMap, - FieldsList: fieldsList, - InlineMap: inlineMap, - InlineUnmarshalers: inlineUnmarshalers, - } - - fieldMapMutex.Lock() - structMap[st] = sinfo - fieldMapMutex.Unlock() - return sinfo, nil -} - -// IsZeroer is used to check whether an object is zero to -// determine whether it should be omitted when marshaling -// with the omitempty flag. One notable implementation -// is time.Time. -type IsZeroer interface { - IsZero() bool -} - -func isZero(v reflect.Value) bool { - kind := v.Kind() - if z, ok := v.Interface().(IsZeroer); ok { - if (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() { - return true - } - return z.IsZero() - } - switch kind { - case reflect.String: - return len(v.String()) == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - case reflect.Slice: - return v.Len() == 0 - case reflect.Map: - return v.Len() == 0 - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Struct: - vt := v.Type() - for i := v.NumField() - 1; i >= 0; i-- { - if vt.Field(i).PkgPath != "" { - continue // Private field - } - if !isZero(v.Field(i)) { - return false - } - } - return true - } - return false -} diff --git a/vendor/gopkg.in/yaml.v3/yamlh.go b/vendor/gopkg.in/yaml.v3/yamlh.go deleted file mode 100644 index 7c6d007..0000000 --- a/vendor/gopkg.in/yaml.v3/yamlh.go +++ /dev/null @@ -1,807 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -import ( - "fmt" - "io" -) - -// The version directive data. -type yaml_version_directive_t struct { - major int8 // The major version number. - minor int8 // The minor version number. -} - -// The tag directive data. -type yaml_tag_directive_t struct { - handle []byte // The tag handle. - prefix []byte // The tag prefix. -} - -type yaml_encoding_t int - -// The stream encoding. -const ( - // Let the parser choose the encoding. - yaml_ANY_ENCODING yaml_encoding_t = iota - - yaml_UTF8_ENCODING // The default UTF-8 encoding. - yaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM. - yaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM. -) - -type yaml_break_t int - -// Line break types. -const ( - // Let the parser choose the break type. - yaml_ANY_BREAK yaml_break_t = iota - - yaml_CR_BREAK // Use CR for line breaks (Mac style). - yaml_LN_BREAK // Use LN for line breaks (Unix style). - yaml_CRLN_BREAK // Use CR LN for line breaks (DOS style). -) - -type yaml_error_type_t int - -// Many bad things could happen with the parser and emitter. -const ( - // No error is produced. - yaml_NO_ERROR yaml_error_type_t = iota - - yaml_MEMORY_ERROR // Cannot allocate or reallocate a block of memory. - yaml_READER_ERROR // Cannot read or decode the input stream. - yaml_SCANNER_ERROR // Cannot scan the input stream. - yaml_PARSER_ERROR // Cannot parse the input stream. - yaml_COMPOSER_ERROR // Cannot compose a YAML document. - yaml_WRITER_ERROR // Cannot write to the output stream. - yaml_EMITTER_ERROR // Cannot emit a YAML stream. -) - -// The pointer position. -type yaml_mark_t struct { - index int // The position index. - line int // The position line. - column int // The position column. -} - -// Node Styles - -type yaml_style_t int8 - -type yaml_scalar_style_t yaml_style_t - -// Scalar styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0 - - yaml_PLAIN_SCALAR_STYLE yaml_scalar_style_t = 1 << iota // The plain scalar style. - yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. - yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. - yaml_LITERAL_SCALAR_STYLE // The literal scalar style. - yaml_FOLDED_SCALAR_STYLE // The folded scalar style. -) - -type yaml_sequence_style_t yaml_style_t - -// Sequence styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota - - yaml_BLOCK_SEQUENCE_STYLE // The block sequence style. - yaml_FLOW_SEQUENCE_STYLE // The flow sequence style. -) - -type yaml_mapping_style_t yaml_style_t - -// Mapping styles. -const ( - // Let the emitter choose the style. - yaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota - - yaml_BLOCK_MAPPING_STYLE // The block mapping style. - yaml_FLOW_MAPPING_STYLE // The flow mapping style. -) - -// Tokens - -type yaml_token_type_t int - -// Token types. -const ( - // An empty token. - yaml_NO_TOKEN yaml_token_type_t = iota - - yaml_STREAM_START_TOKEN // A STREAM-START token. - yaml_STREAM_END_TOKEN // A STREAM-END token. - - yaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token. - yaml_TAG_DIRECTIVE_TOKEN // A TAG-DIRECTIVE token. - yaml_DOCUMENT_START_TOKEN // A DOCUMENT-START token. - yaml_DOCUMENT_END_TOKEN // A DOCUMENT-END token. - - yaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token. - yaml_BLOCK_MAPPING_START_TOKEN // A BLOCK-SEQUENCE-END token. - yaml_BLOCK_END_TOKEN // A BLOCK-END token. - - yaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token. - yaml_FLOW_SEQUENCE_END_TOKEN // A FLOW-SEQUENCE-END token. - yaml_FLOW_MAPPING_START_TOKEN // A FLOW-MAPPING-START token. - yaml_FLOW_MAPPING_END_TOKEN // A FLOW-MAPPING-END token. - - yaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token. - yaml_FLOW_ENTRY_TOKEN // A FLOW-ENTRY token. - yaml_KEY_TOKEN // A KEY token. - yaml_VALUE_TOKEN // A VALUE token. - - yaml_ALIAS_TOKEN // An ALIAS token. - yaml_ANCHOR_TOKEN // An ANCHOR token. - yaml_TAG_TOKEN // A TAG token. - yaml_SCALAR_TOKEN // A SCALAR token. -) - -func (tt yaml_token_type_t) String() string { - switch tt { - case yaml_NO_TOKEN: - return "yaml_NO_TOKEN" - case yaml_STREAM_START_TOKEN: - return "yaml_STREAM_START_TOKEN" - case yaml_STREAM_END_TOKEN: - return "yaml_STREAM_END_TOKEN" - case yaml_VERSION_DIRECTIVE_TOKEN: - return "yaml_VERSION_DIRECTIVE_TOKEN" - case yaml_TAG_DIRECTIVE_TOKEN: - return "yaml_TAG_DIRECTIVE_TOKEN" - case yaml_DOCUMENT_START_TOKEN: - return "yaml_DOCUMENT_START_TOKEN" - case yaml_DOCUMENT_END_TOKEN: - return "yaml_DOCUMENT_END_TOKEN" - case yaml_BLOCK_SEQUENCE_START_TOKEN: - return "yaml_BLOCK_SEQUENCE_START_TOKEN" - case yaml_BLOCK_MAPPING_START_TOKEN: - return "yaml_BLOCK_MAPPING_START_TOKEN" - case yaml_BLOCK_END_TOKEN: - return "yaml_BLOCK_END_TOKEN" - case yaml_FLOW_SEQUENCE_START_TOKEN: - return "yaml_FLOW_SEQUENCE_START_TOKEN" - case yaml_FLOW_SEQUENCE_END_TOKEN: - return "yaml_FLOW_SEQUENCE_END_TOKEN" - case yaml_FLOW_MAPPING_START_TOKEN: - return "yaml_FLOW_MAPPING_START_TOKEN" - case yaml_FLOW_MAPPING_END_TOKEN: - return "yaml_FLOW_MAPPING_END_TOKEN" - case yaml_BLOCK_ENTRY_TOKEN: - return "yaml_BLOCK_ENTRY_TOKEN" - case yaml_FLOW_ENTRY_TOKEN: - return "yaml_FLOW_ENTRY_TOKEN" - case yaml_KEY_TOKEN: - return "yaml_KEY_TOKEN" - case yaml_VALUE_TOKEN: - return "yaml_VALUE_TOKEN" - case yaml_ALIAS_TOKEN: - return "yaml_ALIAS_TOKEN" - case yaml_ANCHOR_TOKEN: - return "yaml_ANCHOR_TOKEN" - case yaml_TAG_TOKEN: - return "yaml_TAG_TOKEN" - case yaml_SCALAR_TOKEN: - return "yaml_SCALAR_TOKEN" - } - return "" -} - -// The token structure. -type yaml_token_t struct { - // The token type. - typ yaml_token_type_t - - // The start/end of the token. - start_mark, end_mark yaml_mark_t - - // The stream encoding (for yaml_STREAM_START_TOKEN). - encoding yaml_encoding_t - - // The alias/anchor/scalar value or tag/tag directive handle - // (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN). - value []byte - - // The tag suffix (for yaml_TAG_TOKEN). - suffix []byte - - // The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN). - prefix []byte - - // The scalar style (for yaml_SCALAR_TOKEN). - style yaml_scalar_style_t - - // The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN). - major, minor int8 -} - -// Events - -type yaml_event_type_t int8 - -// Event types. -const ( - // An empty event. - yaml_NO_EVENT yaml_event_type_t = iota - - yaml_STREAM_START_EVENT // A STREAM-START event. - yaml_STREAM_END_EVENT // A STREAM-END event. - yaml_DOCUMENT_START_EVENT // A DOCUMENT-START event. - yaml_DOCUMENT_END_EVENT // A DOCUMENT-END event. - yaml_ALIAS_EVENT // An ALIAS event. - yaml_SCALAR_EVENT // A SCALAR event. - yaml_SEQUENCE_START_EVENT // A SEQUENCE-START event. - yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. - yaml_MAPPING_START_EVENT // A MAPPING-START event. - yaml_MAPPING_END_EVENT // A MAPPING-END event. - yaml_TAIL_COMMENT_EVENT -) - -var eventStrings = []string{ - yaml_NO_EVENT: "none", - yaml_STREAM_START_EVENT: "stream start", - yaml_STREAM_END_EVENT: "stream end", - yaml_DOCUMENT_START_EVENT: "document start", - yaml_DOCUMENT_END_EVENT: "document end", - yaml_ALIAS_EVENT: "alias", - yaml_SCALAR_EVENT: "scalar", - yaml_SEQUENCE_START_EVENT: "sequence start", - yaml_SEQUENCE_END_EVENT: "sequence end", - yaml_MAPPING_START_EVENT: "mapping start", - yaml_MAPPING_END_EVENT: "mapping end", - yaml_TAIL_COMMENT_EVENT: "tail comment", -} - -func (e yaml_event_type_t) String() string { - if e < 0 || int(e) >= len(eventStrings) { - return fmt.Sprintf("unknown event %d", e) - } - return eventStrings[e] -} - -// The event structure. -type yaml_event_t struct { - - // The event type. - typ yaml_event_type_t - - // The start and end of the event. - start_mark, end_mark yaml_mark_t - - // The document encoding (for yaml_STREAM_START_EVENT). - encoding yaml_encoding_t - - // The version directive (for yaml_DOCUMENT_START_EVENT). - version_directive *yaml_version_directive_t - - // The list of tag directives (for yaml_DOCUMENT_START_EVENT). - tag_directives []yaml_tag_directive_t - - // The comments - head_comment []byte - line_comment []byte - foot_comment []byte - tail_comment []byte - - // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). - anchor []byte - - // The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - tag []byte - - // The scalar value (for yaml_SCALAR_EVENT). - value []byte - - // Is the document start/end indicator implicit, or the tag optional? - // (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT). - implicit bool - - // Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT). - quoted_implicit bool - - // The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - style yaml_style_t -} - -func (e *yaml_event_t) scalar_style() yaml_scalar_style_t { return yaml_scalar_style_t(e.style) } -func (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) } -func (e *yaml_event_t) mapping_style() yaml_mapping_style_t { return yaml_mapping_style_t(e.style) } - -// Nodes - -const ( - yaml_NULL_TAG = "tag:yaml.org,2002:null" // The tag !!null with the only possible value: null. - yaml_BOOL_TAG = "tag:yaml.org,2002:bool" // The tag !!bool with the values: true and false. - yaml_STR_TAG = "tag:yaml.org,2002:str" // The tag !!str for string values. - yaml_INT_TAG = "tag:yaml.org,2002:int" // The tag !!int for integer values. - yaml_FLOAT_TAG = "tag:yaml.org,2002:float" // The tag !!float for float values. - yaml_TIMESTAMP_TAG = "tag:yaml.org,2002:timestamp" // The tag !!timestamp for date and time values. - - yaml_SEQ_TAG = "tag:yaml.org,2002:seq" // The tag !!seq is used to denote sequences. - yaml_MAP_TAG = "tag:yaml.org,2002:map" // The tag !!map is used to denote mapping. - - // Not in original libyaml. - yaml_BINARY_TAG = "tag:yaml.org,2002:binary" - yaml_MERGE_TAG = "tag:yaml.org,2002:merge" - - yaml_DEFAULT_SCALAR_TAG = yaml_STR_TAG // The default scalar tag is !!str. - yaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq. - yaml_DEFAULT_MAPPING_TAG = yaml_MAP_TAG // The default mapping tag is !!map. -) - -type yaml_node_type_t int - -// Node types. -const ( - // An empty node. - yaml_NO_NODE yaml_node_type_t = iota - - yaml_SCALAR_NODE // A scalar node. - yaml_SEQUENCE_NODE // A sequence node. - yaml_MAPPING_NODE // A mapping node. -) - -// An element of a sequence node. -type yaml_node_item_t int - -// An element of a mapping node. -type yaml_node_pair_t struct { - key int // The key of the element. - value int // The value of the element. -} - -// The node structure. -type yaml_node_t struct { - typ yaml_node_type_t // The node type. - tag []byte // The node tag. - - // The node data. - - // The scalar parameters (for yaml_SCALAR_NODE). - scalar struct { - value []byte // The scalar value. - length int // The length of the scalar value. - style yaml_scalar_style_t // The scalar style. - } - - // The sequence parameters (for YAML_SEQUENCE_NODE). - sequence struct { - items_data []yaml_node_item_t // The stack of sequence items. - style yaml_sequence_style_t // The sequence style. - } - - // The mapping parameters (for yaml_MAPPING_NODE). - mapping struct { - pairs_data []yaml_node_pair_t // The stack of mapping pairs (key, value). - pairs_start *yaml_node_pair_t // The beginning of the stack. - pairs_end *yaml_node_pair_t // The end of the stack. - pairs_top *yaml_node_pair_t // The top of the stack. - style yaml_mapping_style_t // The mapping style. - } - - start_mark yaml_mark_t // The beginning of the node. - end_mark yaml_mark_t // The end of the node. - -} - -// The document structure. -type yaml_document_t struct { - - // The document nodes. - nodes []yaml_node_t - - // The version directive. - version_directive *yaml_version_directive_t - - // The list of tag directives. - tag_directives_data []yaml_tag_directive_t - tag_directives_start int // The beginning of the tag directives list. - tag_directives_end int // The end of the tag directives list. - - start_implicit int // Is the document start indicator implicit? - end_implicit int // Is the document end indicator implicit? - - // The start/end of the document. - start_mark, end_mark yaml_mark_t -} - -// The prototype of a read handler. -// -// The read handler is called when the parser needs to read more bytes from the -// source. The handler should write not more than size bytes to the buffer. -// The number of written bytes should be set to the size_read variable. -// -// [in,out] data A pointer to an application data specified by -// yaml_parser_set_input(). -// [out] buffer The buffer to write the data from the source. -// [in] size The size of the buffer. -// [out] size_read The actual number of bytes read from the source. -// -// On success, the handler should return 1. If the handler failed, -// the returned value should be 0. On EOF, the handler should set the -// size_read to 0 and return 1. -type yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error) - -// This structure holds information about a potential simple key. -type yaml_simple_key_t struct { - possible bool // Is a simple key possible? - required bool // Is a simple key required? - token_number int // The number of the token. - mark yaml_mark_t // The position mark. -} - -// The states of the parser. -type yaml_parser_state_t int - -const ( - yaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota - - yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE // Expect the beginning of an implicit document. - yaml_PARSE_DOCUMENT_START_STATE // Expect DOCUMENT-START. - yaml_PARSE_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_PARSE_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_PARSE_BLOCK_NODE_STATE // Expect a block node. - yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence. - yaml_PARSE_FLOW_NODE_STATE // Expect a flow node. - yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a block sequence. - yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE // Expect an entry of a block sequence. - yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE // Expect an entry of an indentless sequence. - yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_PARSE_BLOCK_MAPPING_KEY_STATE // Expect a block mapping key. - yaml_PARSE_BLOCK_MAPPING_VALUE_STATE // Expect a block mapping value. - yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE // Expect an entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE // Expect a key of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE // Expect the and of an ordered mapping entry. - yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE // Expect an empty value of a flow mapping. - yaml_PARSE_END_STATE // Expect nothing. -) - -func (ps yaml_parser_state_t) String() string { - switch ps { - case yaml_PARSE_STREAM_START_STATE: - return "yaml_PARSE_STREAM_START_STATE" - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return "yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_START_STATE: - return "yaml_PARSE_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return "yaml_PARSE_DOCUMENT_CONTENT_STATE" - case yaml_PARSE_DOCUMENT_END_STATE: - return "yaml_PARSE_DOCUMENT_END_STATE" - case yaml_PARSE_BLOCK_NODE_STATE: - return "yaml_PARSE_BLOCK_NODE_STATE" - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return "yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE" - case yaml_PARSE_FLOW_NODE_STATE: - return "yaml_PARSE_FLOW_NODE_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return "yaml_PARSE_BLOCK_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE" - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE" - case yaml_PARSE_END_STATE: - return "yaml_PARSE_END_STATE" - } - return "" -} - -// This structure holds aliases data. -type yaml_alias_data_t struct { - anchor []byte // The anchor. - index int // The node id. - mark yaml_mark_t // The anchor mark. -} - -// The parser structure. -// -// All members are internal. Manage the structure using the -// yaml_parser_ family of functions. -type yaml_parser_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - - problem string // Error description. - - // The byte about which the problem occurred. - problem_offset int - problem_value int - problem_mark yaml_mark_t - - // The error context. - context string - context_mark yaml_mark_t - - // Reader stuff - - read_handler yaml_read_handler_t // Read handler. - - input_reader io.Reader // File input data. - input []byte // String input data. - input_pos int - - eof bool // EOF flag - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - unread int // The number of unread characters in the buffer. - - newlines int // The number of line breaks since last non-break/non-blank character - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The input encoding. - - offset int // The offset of the current position (in bytes). - mark yaml_mark_t // The mark of the current position. - - // Comments - - head_comment []byte // The current head comments - line_comment []byte // The current line comments - foot_comment []byte // The current foot comments - tail_comment []byte // Foot comment that happens at the end of a block. - stem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc) - - comments []yaml_comment_t // The folded comments for all parsed tokens - comments_head int - - // Scanner stuff - - stream_start_produced bool // Have we started to scan the input stream? - stream_end_produced bool // Have we reached the end of the input stream? - - flow_level int // The number of unclosed '[' and '{' indicators. - - tokens []yaml_token_t // The tokens queue. - tokens_head int // The head of the tokens queue. - tokens_parsed int // The number of tokens fetched from the queue. - token_available bool // Does the tokens queue contain a token ready for dequeueing. - - indent int // The current indentation level. - indents []int // The indentation levels stack. - - simple_key_allowed bool // May a simple key occur at the current position? - simple_keys []yaml_simple_key_t // The stack of simple keys. - simple_keys_by_tok map[int]int // possible simple_key indexes indexed by token_number - - // Parser stuff - - state yaml_parser_state_t // The current parser state. - states []yaml_parser_state_t // The parser states stack. - marks []yaml_mark_t // The stack of marks. - tag_directives []yaml_tag_directive_t // The list of TAG directives. - - // Dumper stuff - - aliases []yaml_alias_data_t // The alias data. - - document *yaml_document_t // The currently parsed document. -} - -type yaml_comment_t struct { - - scan_mark yaml_mark_t // Position where scanning for comments started - token_mark yaml_mark_t // Position after which tokens will be associated with this comment - start_mark yaml_mark_t // Position of '#' comment mark - end_mark yaml_mark_t // Position where comment terminated - - head []byte - line []byte - foot []byte -} - -// Emitter Definitions - -// The prototype of a write handler. -// -// The write handler is called when the emitter needs to flush the accumulated -// characters to the output. The handler should write @a size bytes of the -// @a buffer to the output. -// -// @param[in,out] data A pointer to an application data specified by -// yaml_emitter_set_output(). -// @param[in] buffer The buffer with bytes to be written. -// @param[in] size The size of the buffer. -// -// @returns On success, the handler should return @c 1. If the handler failed, -// the returned value should be @c 0. -// -type yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error - -type yaml_emitter_state_t int - -// The emitter states. -const ( - // Expect STREAM-START. - yaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota - - yaml_EMIT_FIRST_DOCUMENT_START_STATE // Expect the first DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_START_STATE // Expect DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. - yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE // Expect the next item of a flow sequence, with the comma already written out - yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. - yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE // Expect the next key of a flow mapping, with the comma already written out - yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a block sequence. - yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE // Expect an item of a block sequence. - yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_KEY_STATE // Expect the key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_VALUE_STATE // Expect a value of a block mapping. - yaml_EMIT_END_STATE // Expect nothing. -) - -// The emitter structure. -// -// All members are internal. Manage the structure using the @c yaml_emitter_ -// family of functions. -type yaml_emitter_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - problem string // Error description. - - // Writer stuff - - write_handler yaml_write_handler_t // Write handler. - - output_buffer *[]byte // String output data. - output_writer io.Writer // File output data. - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The stream encoding. - - // Emitter stuff - - canonical bool // If the output is in the canonical style? - best_indent int // The number of indentation spaces. - best_width int // The preferred width of the output lines. - unicode bool // Allow unescaped non-ASCII characters? - line_break yaml_break_t // The preferred line break. - - state yaml_emitter_state_t // The current emitter state. - states []yaml_emitter_state_t // The stack of states. - - events []yaml_event_t // The event queue. - events_head int // The head of the event queue. - - indents []int // The stack of indentation levels. - - tag_directives []yaml_tag_directive_t // The list of tag directives. - - indent int // The current indentation level. - - flow_level int // The current flow level. - - root_context bool // Is it the document root context? - sequence_context bool // Is it a sequence context? - mapping_context bool // Is it a mapping context? - simple_key_context bool // Is it a simple mapping key context? - - line int // The current line. - column int // The current column. - whitespace bool // If the last character was a whitespace? - indention bool // If the last character was an indentation character (' ', '-', '?', ':')? - open_ended bool // If an explicit document end is required? - - space_above bool // Is there's an empty line above? - foot_indent int // The indent used to write the foot comment above, or -1 if none. - - // Anchor analysis. - anchor_data struct { - anchor []byte // The anchor value. - alias bool // Is it an alias? - } - - // Tag analysis. - tag_data struct { - handle []byte // The tag handle. - suffix []byte // The tag suffix. - } - - // Scalar analysis. - scalar_data struct { - value []byte // The scalar value. - multiline bool // Does the scalar contain line breaks? - flow_plain_allowed bool // Can the scalar be expessed in the flow plain style? - block_plain_allowed bool // Can the scalar be expressed in the block plain style? - single_quoted_allowed bool // Can the scalar be expressed in the single quoted style? - block_allowed bool // Can the scalar be expressed in the literal or folded styles? - style yaml_scalar_style_t // The output style. - } - - // Comments - head_comment []byte - line_comment []byte - foot_comment []byte - tail_comment []byte - - key_line_comment []byte - - // Dumper stuff - - opened bool // If the stream was already opened? - closed bool // If the stream was already closed? - - // The information associated with the document nodes. - anchors *struct { - references int // The number of references. - anchor int // The anchor id. - serialized bool // If the node has been emitted? - } - - last_anchor_id int // The last assigned anchor id. - - document *yaml_document_t // The currently emitted document. -} diff --git a/vendor/gopkg.in/yaml.v3/yamlprivateh.go b/vendor/gopkg.in/yaml.v3/yamlprivateh.go deleted file mode 100644 index e88f9c5..0000000 --- a/vendor/gopkg.in/yaml.v3/yamlprivateh.go +++ /dev/null @@ -1,198 +0,0 @@ -// -// Copyright (c) 2011-2019 Canonical Ltd -// Copyright (c) 2006-2010 Kirill Simonov -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package yaml - -const ( - // The size of the input raw buffer. - input_raw_buffer_size = 512 - - // The size of the input buffer. - // It should be possible to decode the whole raw buffer. - input_buffer_size = input_raw_buffer_size * 3 - - // The size of the output buffer. - output_buffer_size = 128 - - // The size of the output raw buffer. - // It should be possible to encode the whole output buffer. - output_raw_buffer_size = (output_buffer_size*2 + 2) - - // The size of other stacks and queues. - initial_stack_size = 16 - initial_queue_size = 16 - initial_string_size = 16 -) - -// Check if the character at the specified position is an alphabetical -// character, a digit, '_', or '-'. -func is_alpha(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-' -} - -// Check if the character at the specified position is a digit. -func is_digit(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' -} - -// Get the value of a digit. -func as_digit(b []byte, i int) int { - return int(b[i]) - '0' -} - -// Check if the character at the specified position is a hex-digit. -func is_hex(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f' -} - -// Get the value of a hex-digit. -func as_hex(b []byte, i int) int { - bi := b[i] - if bi >= 'A' && bi <= 'F' { - return int(bi) - 'A' + 10 - } - if bi >= 'a' && bi <= 'f' { - return int(bi) - 'a' + 10 - } - return int(bi) - '0' -} - -// Check if the character is ASCII. -func is_ascii(b []byte, i int) bool { - return b[i] <= 0x7F -} - -// Check if the character at the start of the buffer can be printed unescaped. -func is_printable(b []byte, i int) bool { - return ((b[i] == 0x0A) || // . == #x0A - (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E - (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF - (b[i] > 0xC2 && b[i] < 0xED) || - (b[i] == 0xED && b[i+1] < 0xA0) || - (b[i] == 0xEE) || - (b[i] == 0xEF && // #xE000 <= . <= #xFFFD - !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF - !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF)))) -} - -// Check if the character at the specified position is NUL. -func is_z(b []byte, i int) bool { - return b[i] == 0x00 -} - -// Check if the beginning of the buffer is a BOM. -func is_bom(b []byte, i int) bool { - return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF -} - -// Check if the character at the specified position is space. -func is_space(b []byte, i int) bool { - return b[i] == ' ' -} - -// Check if the character at the specified position is tab. -func is_tab(b []byte, i int) bool { - return b[i] == '\t' -} - -// Check if the character at the specified position is blank (space or tab). -func is_blank(b []byte, i int) bool { - //return is_space(b, i) || is_tab(b, i) - return b[i] == ' ' || b[i] == '\t' -} - -// Check if the character at the specified position is a line break. -func is_break(b []byte, i int) bool { - return (b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029) -} - -func is_crlf(b []byte, i int) bool { - return b[i] == '\r' && b[i+1] == '\n' -} - -// Check if the character is a line break or NUL. -func is_breakz(b []byte, i int) bool { - //return is_break(b, i) || is_z(b, i) - return ( - // is_break: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - // is_z: - b[i] == 0) -} - -// Check if the character is a line break, space, or NUL. -func is_spacez(b []byte, i int) bool { - //return is_space(b, i) || is_breakz(b, i) - return ( - // is_space: - b[i] == ' ' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Check if the character is a line break, space, tab, or NUL. -func is_blankz(b []byte, i int) bool { - //return is_blank(b, i) || is_breakz(b, i) - return ( - // is_blank: - b[i] == ' ' || b[i] == '\t' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Determine the width of the character. -func width(b byte) int { - // Don't replace these by a switch without first - // confirming that it is being inlined. - if b&0x80 == 0x00 { - return 1 - } - if b&0xE0 == 0xC0 { - return 2 - } - if b&0xF0 == 0xE0 { - return 3 - } - if b&0xF8 == 0xF0 { - return 4 - } - return 0 - -} diff --git a/vendor/modules.txt b/vendor/modules.txt deleted file mode 100644 index 94dca17..0000000 --- a/vendor/modules.txt +++ /dev/null @@ -1,196 +0,0 @@ -# github.com/alecthomas/participle/v2 v2.1.4 => ../participle -## explicit; go 1.18 -github.com/alecthomas/participle/v2 -github.com/alecthomas/participle/v2/lexer -# github.com/aymanbagabas/go-osc52/v2 v2.0.1 -## explicit; go 1.16 -github.com/aymanbagabas/go-osc52/v2 -# github.com/charmbracelet/bubbles v0.21.0 -## explicit; go 1.23.0 -github.com/charmbracelet/bubbles/spinner -# github.com/charmbracelet/bubbletea v1.3.10 -## explicit; go 1.24.0 -github.com/charmbracelet/bubbletea -# github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc -## explicit; go 1.18 -github.com/charmbracelet/colorprofile -# github.com/charmbracelet/lipgloss v1.1.0 -## explicit; go 1.18 -github.com/charmbracelet/lipgloss -# github.com/charmbracelet/x/ansi v0.10.1 -## explicit; go 1.23.0 -github.com/charmbracelet/x/ansi -github.com/charmbracelet/x/ansi/parser -# github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd -## explicit; go 1.18 -github.com/charmbracelet/x/cellbuf -# github.com/charmbracelet/x/term v0.2.1 -## explicit; go 1.18 -github.com/charmbracelet/x/term -# github.com/davecgh/go-spew v1.1.1 -## explicit -github.com/davecgh/go-spew/spew -# github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f -## explicit; go 1.16 -github.com/erikgeiser/coninput -# github.com/expr-lang/expr v1.17.6 -## explicit; go 1.18 -github.com/expr-lang/expr -github.com/expr-lang/expr/ast -github.com/expr-lang/expr/builtin -github.com/expr-lang/expr/checker -github.com/expr-lang/expr/checker/nature -github.com/expr-lang/expr/compiler -github.com/expr-lang/expr/conf -github.com/expr-lang/expr/file -github.com/expr-lang/expr/internal/deref -github.com/expr-lang/expr/internal/ring -github.com/expr-lang/expr/optimizer -github.com/expr-lang/expr/parser -github.com/expr-lang/expr/parser/lexer -github.com/expr-lang/expr/parser/operator -github.com/expr-lang/expr/parser/utils -github.com/expr-lang/expr/patcher -github.com/expr-lang/expr/types -github.com/expr-lang/expr/vm -github.com/expr-lang/expr/vm/runtime -# github.com/google/go-cmp v0.7.0 -## explicit; go 1.21 -github.com/google/go-cmp/cmp -github.com/google/go-cmp/cmp/cmpopts -github.com/google/go-cmp/cmp/internal/diff -github.com/google/go-cmp/cmp/internal/flags -github.com/google/go-cmp/cmp/internal/function -github.com/google/go-cmp/cmp/internal/value -# github.com/lucasb-eyer/go-colorful v1.2.0 -## explicit; go 1.12 -github.com/lucasb-eyer/go-colorful -# github.com/mattn/go-isatty v0.0.20 -## explicit; go 1.15 -github.com/mattn/go-isatty -# github.com/mattn/go-localereader v0.0.1 -## explicit -github.com/mattn/go-localereader -# github.com/mattn/go-runewidth v0.0.16 -## explicit; go 1.9 -github.com/mattn/go-runewidth -# github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 -## explicit; go 1.17 -github.com/muesli/ansi -github.com/muesli/ansi/compressor -# github.com/muesli/cancelreader v0.2.2 -## explicit; go 1.17 -github.com/muesli/cancelreader -# github.com/muesli/termenv v0.16.0 -## explicit; go 1.17 -github.com/muesli/termenv -# github.com/neo4j/neo4j-go-driver/v5 v5.28.4 -## explicit; go 1.18 -github.com/neo4j/neo4j-go-driver/v5/neo4j -github.com/neo4j/neo4j-go-driver/v5/neo4j/auth -github.com/neo4j/neo4j-go-driver/v5/neo4j/config -github.com/neo4j/neo4j-go-driver/v5/neo4j/db -github.com/neo4j/neo4j-go-driver/v5/neo4j/dbtype -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/auth -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/bolt -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/boltagent -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/collections -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/connector -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/db -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/errorutil -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/gql -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/homedb -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/metadata -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/notifications -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/packstream -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/pool -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/racing -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/retry -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/router -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/telemetry -github.com/neo4j/neo4j-go-driver/v5/neo4j/internal/time -github.com/neo4j/neo4j-go-driver/v5/neo4j/log -github.com/neo4j/neo4j-go-driver/v5/neo4j/notifications -# github.com/oklog/ulid/v2 v2.1.0 -## explicit; go 1.15 -github.com/oklog/ulid/v2 -# github.com/pmezard/go-difflib v1.0.0 -## explicit -github.com/pmezard/go-difflib/difflib -# github.com/rivo/uniseg v0.4.7 -## explicit; go 1.18 -github.com/rivo/uniseg -# github.com/rlch/neogo v0.0.0 => ../neogo -## explicit; go 1.24.0 -github.com/rlch/neogo -github.com/rlch/neogo/internal -github.com/rlch/neogo/internal/codec -# github.com/segmentio/asm v1.1.3 -## explicit; go 1.17 -github.com/segmentio/asm/ascii -github.com/segmentio/asm/base64 -github.com/segmentio/asm/cpu -github.com/segmentio/asm/cpu/arm -github.com/segmentio/asm/cpu/arm64 -github.com/segmentio/asm/cpu/cpuid -github.com/segmentio/asm/cpu/x86 -github.com/segmentio/asm/internal/unsafebytes -github.com/segmentio/asm/keyset -# github.com/segmentio/encoding v0.3.4 -## explicit; go 1.14 -github.com/segmentio/encoding/ascii -github.com/segmentio/encoding/iso8601 -github.com/segmentio/encoding/json -# github.com/stretchr/testify v1.11.1 -## explicit; go 1.17 -github.com/stretchr/testify/assert -github.com/stretchr/testify/assert/yaml -github.com/stretchr/testify/require -# github.com/urfave/cli/v3 v3.6.1 -## explicit; go 1.22 -github.com/urfave/cli/v3 -# github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e -## explicit; go 1.19 -github.com/xo/terminfo -# go.lsp.dev/jsonrpc2 v0.10.0 -## explicit; go 1.17 -go.lsp.dev/jsonrpc2 -# go.lsp.dev/pkg v0.0.0-20210717090340-384b27a52fb2 -## explicit; go 1.15 -go.lsp.dev/pkg/xcontext -# go.lsp.dev/protocol v0.12.0 -## explicit; go 1.17 -go.lsp.dev/protocol -# go.lsp.dev/uri v0.3.0 -## explicit; go 1.13 -go.lsp.dev/uri -# go.uber.org/multierr v1.10.0 -## explicit; go 1.19 -go.uber.org/multierr -# go.uber.org/zap v1.27.1 -## explicit; go 1.19 -go.uber.org/zap -go.uber.org/zap/buffer -go.uber.org/zap/internal -go.uber.org/zap/internal/bufferpool -go.uber.org/zap/internal/color -go.uber.org/zap/internal/exit -go.uber.org/zap/internal/pool -go.uber.org/zap/internal/stacktrace -go.uber.org/zap/zapcore -# golang.org/x/sync v0.16.0 -## explicit; go 1.23.0 -golang.org/x/sync/semaphore -# golang.org/x/sys v0.37.0 -## explicit; go 1.24.0 -golang.org/x/sys/cpu -golang.org/x/sys/unix -golang.org/x/sys/windows -# golang.org/x/text v0.25.0 -## explicit; go 1.23.0 -golang.org/x/text/transform -# gopkg.in/yaml.v3 v3.0.1 -## explicit -gopkg.in/yaml.v3 -# github.com/rlch/neogo => ../neogo -# github.com/alecthomas/participle/v2 => ../participle